summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.codecov.yml18
-rw-r--r--.coveragerc38
-rw-r--r--.dockerignore2
-rw-r--r--.flake843
-rw-r--r--.flake8_packages24
-rw-r--r--.gitattributes2
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md42
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.yml58
-rw-r--r--.github/ISSUE_TEMPLATE/build_error.md43
-rw-r--r--.github/ISSUE_TEMPLATE/build_error.yml64
-rw-r--r--.github/ISSUE_TEMPLATE/config.yml1
-rw-r--r--.github/ISSUE_TEMPLATE/feature_request.md33
-rw-r--r--.github/ISSUE_TEMPLATE/feature_request.yml41
-rw-r--r--.github/actions/add-maintainers-as-reviewers/Dockerfile6
-rwxr-xr-x.github/actions/add-maintainers-as-reviewers/entrypoint.py85
-rw-r--r--.github/dependabot.yml7
-rw-r--r--.github/workflows/bootstrap.yml161
-rw-r--r--.github/workflows/build-containers.yml72
-rw-r--r--.github/workflows/linux_build_tests.yaml65
-rw-r--r--.github/workflows/linux_unit_tests.yaml150
-rw-r--r--.github/workflows/macos_unit_tests.yaml44
-rw-r--r--.github/workflows/style_and_docs.yaml65
-rw-r--r--.github/workflows/unit_tests.yaml367
-rw-r--r--.gitignore520
-rw-r--r--.mailmap3
-rw-r--r--CHANGELOG.md12
-rw-r--r--README.md15
-rw-r--r--SECURITY.md24
-rwxr-xr-xbin/sbang2
-rwxr-xr-xbin/spack58
-rwxr-xr-xbin/spack-python2
-rw-r--r--etc/spack/defaults/bootstrap.yaml32
-rw-r--r--etc/spack/defaults/config.yaml39
-rw-r--r--etc/spack/defaults/cray/modules.yaml21
-rw-r--r--etc/spack/defaults/darwin/packages.yaml15
-rw-r--r--etc/spack/defaults/modules.yaml33
-rw-r--r--etc/spack/defaults/packages.yaml17
-rw-r--r--lib/spack/docs/Makefile2
-rw-r--r--lib/spack/docs/analyze.rst162
-rw-r--r--lib/spack/docs/basic_usage.rst186
-rw-r--r--lib/spack/docs/binary_caches.rst109
-rw-r--r--lib/spack/docs/build_settings.rst2
-rw-r--r--lib/spack/docs/build_systems.rst5
-rw-r--r--lib/spack/docs/build_systems/autotoolspackage.rst27
-rw-r--r--lib/spack/docs/build_systems/bundlepackage.rst2
-rw-r--r--lib/spack/docs/build_systems/cmakepackage.rst6
-rw-r--r--lib/spack/docs/build_systems/cudapackage.rst119
-rw-r--r--lib/spack/docs/build_systems/custompackage.rst24
-rw-r--r--lib/spack/docs/build_systems/inteloneapipackage.rst155
-rw-r--r--lib/spack/docs/build_systems/intelpackage.rst79
-rw-r--r--lib/spack/docs/build_systems/makefilepackage.rst8
-rw-r--r--lib/spack/docs/build_systems/mavenpackage.rst2
-rw-r--r--lib/spack/docs/build_systems/mesonpackage.rst8
-rw-r--r--lib/spack/docs/build_systems/multiplepackage.rst350
-rw-r--r--lib/spack/docs/build_systems/octavepackage.rst2
-rw-r--r--lib/spack/docs/build_systems/perlpackage.rst4
-rw-r--r--lib/spack/docs/build_systems/pythonpackage.rst197
-rw-r--r--lib/spack/docs/build_systems/qmakepackage.rst15
-rw-r--r--lib/spack/docs/build_systems/rocmpackage.rst122
-rw-r--r--lib/spack/docs/build_systems/rpackage.rst78
-rw-r--r--lib/spack/docs/build_systems/rubypackage.rst3
-rw-r--r--lib/spack/docs/build_systems/sconspackage.rst2
-rw-r--r--lib/spack/docs/build_systems/sippackage.rst33
-rw-r--r--lib/spack/docs/build_systems/wafpackage.rst2
-rw-r--r--lib/spack/docs/chain.rst2
-rw-r--r--lib/spack/docs/conf.py50
-rw-r--r--lib/spack/docs/config_yaml.rst18
-rw-r--r--lib/spack/docs/configuration.rst18
-rw-r--r--lib/spack/docs/containers.rst7
-rw-r--r--lib/spack/docs/contribution_guide.rst24
-rw-r--r--lib/spack/docs/developer_guide.rst854
-rw-r--r--lib/spack/docs/environments.rst47
-rw-r--r--lib/spack/docs/extensions.rst2
-rw-r--r--lib/spack/docs/features.rst2
-rw-r--r--lib/spack/docs/getting_started.rst323
-rw-r--r--lib/spack/docs/index.rst11
-rw-r--r--lib/spack/docs/known_issues.rst2
-rw-r--r--lib/spack/docs/mirrors.rst23
-rw-r--r--lib/spack/docs/module_file_support.rst155
-rw-r--r--lib/spack/docs/monitoring.rst265
-rw-r--r--lib/spack/docs/package_list.rst2
-rw-r--r--lib/spack/docs/packaging_guide.rst1264
-rw-r--r--lib/spack/docs/pipelines.rst496
-rw-r--r--lib/spack/docs/repositories.rst4
-rw-r--r--lib/spack/docs/requirements.txt2
-rw-r--r--lib/spack/docs/spack.yaml14
-rw-r--r--lib/spack/docs/tables/system_prerequisites.csv18
-rw-r--r--lib/spack/docs/workflows.rst7
-rwxr-xr-xlib/spack/env/cc101
l---------lib/spack/env/ld.gold1
l---------lib/spack/env/ld.lld1
-rw-r--r--lib/spack/external/__init__.py4
-rw-r--r--lib/spack/external/archspec/__init__.py2
-rw-r--r--lib/spack/external/archspec/cpu/detect.py39
-rw-r--r--lib/spack/external/archspec/json/cpu/microarchitectures.json426
-rw-r--r--lib/spack/external/ordereddict_backport.py2
-rw-r--r--lib/spack/external/py2/argparse.py (renamed from lib/spack/external/argparse.py)0
-rw-r--r--lib/spack/external/py2/typing.py84
-rw-r--r--lib/spack/llnl/__init__.py2
-rw-r--r--lib/spack/llnl/util/__init__.py2
-rw-r--r--lib/spack/llnl/util/argparsewriter.py6
-rw-r--r--lib/spack/llnl/util/filesystem.py98
-rw-r--r--lib/spack/llnl/util/lang.py297
-rw-r--r--lib/spack/llnl/util/link_tree.py6
-rw-r--r--lib/spack/llnl/util/lock.py41
-rw-r--r--lib/spack/llnl/util/multiproc.py2
-rw-r--r--lib/spack/llnl/util/tty/__init__.py64
-rw-r--r--lib/spack/llnl/util/tty/colify.py29
-rw-r--r--lib/spack/llnl/util/tty/color.py4
-rw-r--r--lib/spack/llnl/util/tty/log.py109
-rw-r--r--lib/spack/llnl/util/tty/pty.py6
-rw-r--r--lib/spack/spack/__init__.py5
-rw-r--r--lib/spack/spack/abi.py4
-rw-r--r--lib/spack/spack/analyzers/__init__.py42
-rw-r--r--lib/spack/spack/analyzers/analyzer_base.py116
-rw-r--r--lib/spack/spack/analyzers/config_args.py33
-rw-r--r--lib/spack/spack/analyzers/environment_variables.py51
-rw-r--r--lib/spack/spack/analyzers/install_files.py31
-rw-r--r--lib/spack/spack/analyzers/libabigail.py116
-rw-r--r--lib/spack/spack/architecture.py517
-rw-r--r--lib/spack/spack/audit.py438
-rw-r--r--lib/spack/spack/binary_distribution.py503
-rw-r--r--lib/spack/spack/bootstrap.py463
-rw-r--r--lib/spack/spack/build_environment.py525
-rw-r--r--lib/spack/spack/build_systems/__init__.py2
-rw-r--r--lib/spack/spack/build_systems/aspell_dict.py3
-rw-r--r--lib/spack/spack/build_systems/autotools.py85
-rw-r--r--lib/spack/spack/build_systems/cached_cmake.py234
-rw-r--r--lib/spack/spack/build_systems/cmake.py29
-rw-r--r--lib/spack/spack/build_systems/cuda.py209
-rw-r--r--lib/spack/spack/build_systems/gnu.py4
-rw-r--r--lib/spack/spack/build_systems/intel.py43
-rw-r--r--lib/spack/spack/build_systems/makefile.py6
-rw-r--r--lib/spack/spack/build_systems/maven.py3
-rw-r--r--lib/spack/spack/build_systems/meson.py26
-rw-r--r--lib/spack/spack/build_systems/octave.py5
-rw-r--r--lib/spack/spack/build_systems/oneapi.py123
-rw-r--r--lib/spack/spack/build_systems/perl.py9
-rw-r--r--lib/spack/spack/build_systems/python.py268
-rw-r--r--lib/spack/spack/build_systems/qmake.py25
-rw-r--r--lib/spack/spack/build_systems/r.py43
-rw-r--r--lib/spack/spack/build_systems/rocm.py16
-rw-r--r--lib/spack/spack/build_systems/ruby.py6
-rw-r--r--lib/spack/spack/build_systems/scons.py2
-rw-r--r--lib/spack/spack/build_systems/sip.py67
-rw-r--r--lib/spack/spack/build_systems/sourceforge.py4
-rw-r--r--lib/spack/spack/build_systems/sourceware.py4
-rw-r--r--lib/spack/spack/build_systems/waf.py6
-rw-r--r--lib/spack/spack/build_systems/xorg.py4
-rw-r--r--lib/spack/spack/caches.py18
-rw-r--r--lib/spack/spack/ci.py904
-rw-r--r--lib/spack/spack/ci_needs_workaround.py2
-rw-r--r--lib/spack/spack/ci_optimization.py2
-rw-r--r--lib/spack/spack/cmd/__init__.py129
-rw-r--r--lib/spack/spack/cmd/activate.py5
-rw-r--r--lib/spack/spack/cmd/add.py6
-rw-r--r--lib/spack/spack/cmd/analyze.py117
-rw-r--r--lib/spack/spack/cmd/arch.py4
-rw-r--r--lib/spack/spack/cmd/audit.py105
-rw-r--r--lib/spack/spack/cmd/blame.py74
-rw-r--r--lib/spack/spack/cmd/bootstrap.py220
-rw-r--r--lib/spack/spack/cmd/build_env.py2
-rw-r--r--lib/spack/spack/cmd/buildcache.py330
-rw-r--r--lib/spack/spack/cmd/cd.py2
-rw-r--r--lib/spack/spack/cmd/checksum.py14
-rw-r--r--lib/spack/spack/cmd/ci.py742
-rw-r--r--lib/spack/spack/cmd/clean.py12
-rw-r--r--lib/spack/spack/cmd/clone.py2
-rw-r--r--lib/spack/spack/cmd/commands.py20
-rw-r--r--lib/spack/spack/cmd/common/__init__.py11
-rw-r--r--lib/spack/spack/cmd/common/arguments.py27
-rw-r--r--lib/spack/spack/cmd/common/env_utility.py8
-rw-r--r--lib/spack/spack/cmd/compiler.py38
-rw-r--r--lib/spack/spack/cmd/compilers.py2
-rw-r--r--lib/spack/spack/cmd/concretize.py21
-rw-r--r--lib/spack/spack/cmd/config.py161
-rw-r--r--lib/spack/spack/cmd/containerize.py15
-rw-r--r--lib/spack/spack/cmd/create.py99
-rw-r--r--lib/spack/spack/cmd/deactivate.py4
-rw-r--r--lib/spack/spack/cmd/debug.py5
-rw-r--r--lib/spack/spack/cmd/dependencies.py4
-rw-r--r--lib/spack/spack/cmd/dependents.py6
-rw-r--r--lib/spack/spack/cmd/deprecate.py10
-rw-r--r--lib/spack/spack/cmd/dev_build.py11
-rw-r--r--lib/spack/spack/cmd/develop.py6
-rw-r--r--lib/spack/spack/cmd/diff.py197
-rw-r--r--lib/spack/spack/cmd/docs.py2
-rw-r--r--lib/spack/spack/cmd/edit.py4
-rw-r--r--lib/spack/spack/cmd/env.py56
-rw-r--r--lib/spack/spack/cmd/extensions.py6
-rw-r--r--lib/spack/spack/cmd/external.py29
-rw-r--r--lib/spack/spack/cmd/fetch.py9
-rw-r--r--lib/spack/spack/cmd/find.py40
-rw-r--r--lib/spack/spack/cmd/flake8.py318
-rw-r--r--lib/spack/spack/cmd/gc.py6
-rw-r--r--lib/spack/spack/cmd/gpg.py27
-rw-r--r--lib/spack/spack/cmd/graph.py14
-rw-r--r--lib/spack/spack/cmd/help.py3
-rw-r--r--lib/spack/spack/cmd/info.py62
-rw-r--r--lib/spack/spack/cmd/install.py168
-rw-r--r--lib/spack/spack/cmd/license.py54
-rw-r--r--lib/spack/spack/cmd/list.py11
-rw-r--r--lib/spack/spack/cmd/load.py10
-rw-r--r--lib/spack/spack/cmd/location.py20
-rw-r--r--lib/spack/spack/cmd/log_parse.py5
-rw-r--r--lib/spack/spack/cmd/maintainers.py3
-rw-r--r--lib/spack/spack/cmd/mark.py8
-rw-r--r--lib/spack/spack/cmd/mirror.py81
-rw-r--r--lib/spack/spack/cmd/module.py49
-rw-r--r--lib/spack/spack/cmd/modules/__init__.py47
-rw-r--r--lib/spack/spack/cmd/modules/lmod.py6
-rw-r--r--lib/spack/spack/cmd/modules/tcl.py2
-rw-r--r--lib/spack/spack/cmd/monitor.py34
-rw-r--r--lib/spack/spack/cmd/patch.py11
-rw-r--r--lib/spack/spack/cmd/pkg.py4
-rw-r--r--lib/spack/spack/cmd/providers.py5
-rw-r--r--lib/spack/spack/cmd/pydoc.py2
-rw-r--r--lib/spack/spack/cmd/python.py75
-rw-r--r--lib/spack/spack/cmd/reindex.py2
-rw-r--r--lib/spack/spack/cmd/remove.py6
-rw-r--r--lib/spack/spack/cmd/repo.py3
-rw-r--r--lib/spack/spack/cmd/resource.py4
-rw-r--r--lib/spack/spack/cmd/restage.py2
-rw-r--r--lib/spack/spack/cmd/setup.py163
-rw-r--r--lib/spack/spack/cmd/solve.py52
-rw-r--r--lib/spack/spack/cmd/spec.py15
-rw-r--r--lib/spack/spack/cmd/stage.py38
-rw-r--r--lib/spack/spack/cmd/style.py426
-rw-r--r--lib/spack/spack/cmd/test.py52
-rw-r--r--lib/spack/spack/cmd/test_env.py2
-rw-r--r--lib/spack/spack/cmd/tutorial.py5
-rw-r--r--lib/spack/spack/cmd/undevelop.py6
-rw-r--r--lib/spack/spack/cmd/uninstall.py43
-rw-r--r--lib/spack/spack/cmd/unit_test.py12
-rw-r--r--lib/spack/spack/cmd/unload.py8
-rw-r--r--lib/spack/spack/cmd/url.py74
-rw-r--r--lib/spack/spack/cmd/verify.py7
-rw-r--r--lib/spack/spack/cmd/versions.py59
-rw-r--r--lib/spack/spack/cmd/view.py19
-rw-r--r--lib/spack/spack/compiler.py35
-rw-r--r--lib/spack/spack/compilers/__init__.py69
-rw-r--r--lib/spack/spack/compilers/aocc.py36
-rw-r--r--lib/spack/spack/compilers/apple_clang.py5
-rw-r--r--lib/spack/spack/compilers/arm.py5
-rw-r--r--lib/spack/spack/compilers/cce.py14
-rw-r--r--lib/spack/spack/compilers/clang.py3
-rw-r--r--lib/spack/spack/compilers/fj.py12
-rw-r--r--lib/spack/spack/compilers/gcc.py3
-rw-r--r--lib/spack/spack/compilers/intel.py2
-rw-r--r--lib/spack/spack/compilers/nag.py18
-rw-r--r--lib/spack/spack/compilers/nvhpc.py2
-rw-r--r--lib/spack/spack/compilers/oneapi.py9
-rw-r--r--lib/spack/spack/compilers/pgi.py6
-rw-r--r--lib/spack/spack/compilers/xl.py2
-rw-r--r--lib/spack/spack/compilers/xl_r.py2
-rw-r--r--lib/spack/spack/concretize.py53
-rw-r--r--lib/spack/spack/config.py159
-rw-r--r--lib/spack/spack/container/__init__.py7
-rw-r--r--lib/spack/spack/container/images.json7
-rw-r--r--lib/spack/spack/container/images.py2
-rw-r--r--lib/spack/spack/container/writers/__init__.py36
-rw-r--r--lib/spack/spack/container/writers/docker.py4
-rw-r--r--lib/spack/spack/container/writers/singularity.py5
-rw-r--r--lib/spack/spack/database.py154
-rw-r--r--lib/spack/spack/dependency.py3
-rw-r--r--lib/spack/spack/directives.py81
-rw-r--r--lib/spack/spack/directory_layout.py400
-rw-r--r--lib/spack/spack/environment.py592
-rw-r--r--lib/spack/spack/error.py5
-rw-r--r--lib/spack/spack/extensions.py3
-rw-r--r--lib/spack/spack/fetch_strategy.py337
-rw-r--r--lib/spack/spack/filesystem_view.py55
-rw-r--r--lib/spack/spack/graph.py26
-rw-r--r--lib/spack/spack/hash_types.py36
-rw-r--r--lib/spack/spack/hooks/__init__.py59
-rw-r--r--lib/spack/spack/hooks/extensions.py2
-rw-r--r--lib/spack/spack/hooks/licensing.py2
-rw-r--r--lib/spack/spack/hooks/module_file_generation.py52
-rw-r--r--lib/spack/spack/hooks/monitor.py74
-rw-r--r--lib/spack/spack/hooks/permissions_setters.py3
-rw-r--r--lib/spack/spack/hooks/sbang.py7
-rw-r--r--lib/spack/spack/hooks/write_install_manifest.py2
-rw-r--r--lib/spack/spack/install_test.py31
-rw-r--r--lib/spack/spack/installer.py530
-rw-r--r--lib/spack/spack/main.py100
-rw-r--r--lib/spack/spack/mirror.py67
-rw-r--r--lib/spack/spack/mixins.py28
-rw-r--r--lib/spack/spack/modules/__init__.py8
-rw-r--r--lib/spack/spack/modules/common.py134
-rw-r--r--lib/spack/spack/modules/lmod.py63
-rw-r--r--lib/spack/spack/modules/tcl.py35
-rw-r--r--lib/spack/spack/monitor.py676
-rw-r--r--lib/spack/spack/multimethod.py139
-rw-r--r--lib/spack/spack/operating_systems/__init__.py18
-rw-r--r--lib/spack/spack/operating_systems/_operating_system.py36
-rw-r--r--lib/spack/spack/operating_systems/cray_backend.py5
-rw-r--r--lib/spack/spack/operating_systems/cray_frontend.py5
-rw-r--r--lib/spack/spack/operating_systems/linux_distro.py6
-rw-r--r--lib/spack/spack/operating_systems/mac_os.py10
-rw-r--r--lib/spack/spack/package.py209
-rw-r--r--lib/spack/spack/package_prefs.py8
-rw-r--r--lib/spack/spack/package_test.py5
-rw-r--r--lib/spack/spack/parse.py5
-rw-r--r--lib/spack/spack/patch.py13
-rw-r--r--lib/spack/spack/paths.py14
-rw-r--r--lib/spack/spack/pkgkit.py84
-rw-r--r--lib/spack/spack/platforms/__init__.py53
-rw-r--r--lib/spack/spack/platforms/_platform.py126
-rw-r--r--lib/spack/spack/platforms/cray.py19
-rw-r--r--lib/spack/spack/platforms/darwin.py8
-rw-r--r--lib/spack/spack/platforms/linux.py8
-rw-r--r--lib/spack/spack/platforms/test.py18
-rw-r--r--lib/spack/spack/projections.py2
-rw-r--r--lib/spack/spack/provider_index.py3
-rw-r--r--lib/spack/spack/relocate.py16
-rw-r--r--lib/spack/spack/repo.py55
-rw-r--r--lib/spack/spack/report.py5
-rw-r--r--lib/spack/spack/reporter.py2
-rw-r--r--lib/spack/spack/reporters/__init__.py2
-rw-r--r--lib/spack/spack/reporters/cdash.py69
-rw-r--r--lib/spack/spack/reporters/junit.py2
-rw-r--r--lib/spack/spack/resource.py2
-rw-r--r--lib/spack/spack/s3_handler.py6
-rw-r--r--lib/spack/spack/schema/__init__.py3
-rw-r--r--lib/spack/spack/schema/bootstrap.py47
-rw-r--r--lib/spack/spack/schema/buildcache_spec.py10
-rw-r--r--lib/spack/spack/schema/cdash.py2
-rw-r--r--lib/spack/spack/schema/compilers.py2
-rw-r--r--lib/spack/spack/schema/config.py15
-rw-r--r--lib/spack/spack/schema/container.py5
-rw-r--r--lib/spack/spack/schema/database_index.py2
-rw-r--r--lib/spack/spack/schema/env.py5
-rw-r--r--lib/spack/spack/schema/environment.py10
-rw-r--r--lib/spack/spack/schema/gitlab_ci.py208
-rw-r--r--lib/spack/spack/schema/merged.py5
-rw-r--r--lib/spack/spack/schema/mirrors.py2
-rw-r--r--lib/spack/spack/schema/modules.py141
-rw-r--r--lib/spack/spack/schema/packages.py5
-rw-r--r--lib/spack/spack/schema/projections.py2
-rw-r--r--lib/spack/spack/schema/repos.py2
-rw-r--r--lib/spack/spack/schema/spec.py190
-rw-r--r--lib/spack/spack/schema/upstreams.py2
-rw-r--r--lib/spack/spack/solver/__init__.py2
-rw-r--r--lib/spack/spack/solver/asp.py328
-rw-r--r--lib/spack/spack/solver/concretize.lp293
-rw-r--r--lib/spack/spack/solver/display.lp22
-rw-r--r--lib/spack/spack/spec.py845
-rw-r--r--lib/spack/spack/spec_list.py5
-rw-r--r--lib/spack/spack/stage.py60
-rw-r--r--lib/spack/spack/store.py63
-rw-r--r--lib/spack/spack/subprocess_context.py52
-rw-r--r--lib/spack/spack/target.py162
-rw-r--r--lib/spack/spack/tengine.py8
-rw-r--r--lib/spack/spack/test/__init__.py2
-rw-r--r--lib/spack/spack/test/abi.py2
-rw-r--r--lib/spack/spack/test/architecture.py207
-rw-r--r--lib/spack/spack/test/audit.py85
-rw-r--r--lib/spack/spack/test/bindist.py670
-rw-r--r--lib/spack/spack/test/bootstrap.py79
-rw-r--r--lib/spack/spack/test/build_distribution.py10
-rw-r--r--lib/spack/spack/test/build_environment.py43
-rw-r--r--lib/spack/spack/test/build_system_guess.py5
-rw-r--r--lib/spack/spack/test/build_systems.py8
-rw-r--r--lib/spack/spack/test/buildrequest.py2
-rw-r--r--lib/spack/spack/test/buildtask.py2
-rw-r--r--lib/spack/spack/test/cache_fetch.py34
-rw-r--r--lib/spack/spack/test/cc.py88
-rw-r--r--lib/spack/spack/test/ci.py315
-rw-r--r--lib/spack/spack/test/cmd/__init__.py2
-rw-r--r--lib/spack/spack/test/cmd/activate.py2
-rw-r--r--lib/spack/spack/test/cmd/analyze.py176
-rw-r--r--lib/spack/spack/test/cmd/arch.py3
-rw-r--r--lib/spack/spack/test/cmd/audit.py53
-rw-r--r--lib/spack/spack/test/cmd/blame.py28
-rw-r--r--lib/spack/spack/test/cmd/bootstrap.py147
-rw-r--r--lib/spack/spack/test/cmd/build_env.py33
-rw-r--r--lib/spack/spack/test/cmd/buildcache.py112
-rw-r--r--lib/spack/spack/test/cmd/cd.py3
-rw-r--r--lib/spack/spack/test/cmd/ci.py1016
-rw-r--r--lib/spack/spack/test/cmd/clean.py5
-rw-r--r--lib/spack/spack/test/cmd/commands.py33
-rw-r--r--lib/spack/spack/test/cmd/common/__init__.py2
-rw-r--r--lib/spack/spack/test/cmd/common/arguments.py41
-rw-r--r--lib/spack/spack/test/cmd/compiler.py15
-rw-r--r--lib/spack/spack/test/cmd/concretize.py55
-rw-r--r--lib/spack/spack/test/cmd/config.py80
-rw-r--r--lib/spack/spack/test/cmd/create.py6
-rw-r--r--lib/spack/spack/test/cmd/debug.py15
-rw-r--r--lib/spack/spack/test/cmd/dependencies.py17
-rw-r--r--lib/spack/spack/test/cmd/dependents.py2
-rw-r--r--lib/spack/spack/test/cmd/deprecate.py5
-rw-r--r--lib/spack/spack/test/cmd/dev_build.py24
-rw-r--r--lib/spack/spack/test/cmd/develop.py8
-rw-r--r--lib/spack/spack/test/cmd/diff.py85
-rw-r--r--lib/spack/spack/test/cmd/env.py298
-rw-r--r--lib/spack/spack/test/cmd/extensions.py3
-rw-r--r--lib/spack/spack/test/cmd/external.py29
-rw-r--r--lib/spack/spack/test/cmd/fetch.py4
-rw-r--r--lib/spack/spack/test/cmd/find.py18
-rw-r--r--lib/spack/spack/test/cmd/flake8.py75
-rw-r--r--lib/spack/spack/test/cmd/gc.py4
-rw-r--r--lib/spack/spack/test/cmd/gpg.py34
-rw-r--r--lib/spack/spack/test/cmd/graph.py5
-rw-r--r--lib/spack/spack/test/cmd/help.py2
-rw-r--r--lib/spack/spack/test/cmd/info.py21
-rw-r--r--lib/spack/spack/test/cmd/init_py_functions.py13
-rw-r--r--lib/spack/spack/test/cmd/install.py273
-rw-r--r--lib/spack/spack/test/cmd/is_git_repo.py7
-rw-r--r--lib/spack/spack/test/cmd/license.py36
-rw-r--r--lib/spack/spack/test/cmd/list.py8
-rw-r--r--lib/spack/spack/test/cmd/load.py10
-rw-r--r--lib/spack/spack/test/cmd/location.py29
-rw-r--r--lib/spack/spack/test/cmd/maintainers.py5
-rw-r--r--lib/spack/spack/test/cmd/mark.py11
-rw-r--r--lib/spack/spack/test/cmd/mirror.py48
-rw-r--r--lib/spack/spack/test/cmd/module.py23
-rw-r--r--lib/spack/spack/test/cmd/pkg.py7
-rw-r--r--lib/spack/spack/test/cmd/print_shell_vars.py2
-rw-r--r--lib/spack/spack/test/cmd/providers.py4
-rw-r--r--lib/spack/spack/test/cmd/python.py8
-rw-r--r--lib/spack/spack/test/cmd/reindex.py5
-rw-r--r--lib/spack/spack/test/cmd/repo.py3
-rw-r--r--lib/spack/spack/test/cmd/resource.py3
-rw-r--r--lib/spack/spack/test/cmd/spec.py3
-rw-r--r--lib/spack/spack/test/cmd/stage.py119
-rw-r--r--lib/spack/spack/test/cmd/style.py311
-rw-r--r--lib/spack/spack/test/cmd/test.py34
-rw-r--r--lib/spack/spack/test/cmd/undevelop.py8
-rw-r--r--lib/spack/spack/test/cmd/uninstall.py15
-rw-r--r--lib/spack/spack/test/cmd/unit_test.py2
-rw-r--r--lib/spack/spack/test/cmd/url.py50
-rw-r--r--lib/spack/spack/test/cmd/verify.py6
-rw-r--r--lib/spack/spack/test/cmd/versions.py57
-rw-r--r--lib/spack/spack/test/cmd/view.py5
-rw-r--r--lib/spack/spack/test/cmd_extensions.py6
-rw-r--r--lib/spack/spack/test/compilers/__init__.py2
-rw-r--r--lib/spack/spack/test/compilers/basics.py25
-rw-r--r--lib/spack/spack/test/compilers/detection.py61
-rw-r--r--lib/spack/spack/test/concretize.py120
-rw-r--r--lib/spack/spack/test/concretize_preferences.py19
-rw-r--r--lib/spack/spack/test/config.py102
-rw-r--r--lib/spack/spack/test/config_values.py62
-rw-r--r--lib/spack/spack/test/conftest.py430
-rw-r--r--lib/spack/spack/test/container/cli.py4
-rw-r--r--lib/spack/spack/test/container/conftest.py2
-rw-r--r--lib/spack/spack/test/container/docker.py2
-rw-r--r--lib/spack/spack/test/container/images.py2
-rw-r--r--lib/spack/spack/test/container/schema.py2
-rw-r--r--lib/spack/spack/test/container/singularity.py2
-rw-r--r--lib/spack/spack/test/cvs_fetch.py110
-rw-r--r--lib/spack/spack/test/data/ci/gitlab/artifacts.zipbin0 -> 18269 bytes
-rw-r--r--lib/spack/spack/test/data/config/bootstrap.yaml12
-rw-r--r--lib/spack/spack/test/data/config/config.yaml3
-rw-r--r--lib/spack/spack/test/data/config/modules.yaml5
-rw-r--r--lib/spack/spack/test/data/config/packages.yaml3
-rw-r--r--lib/spack/spack/test/data/mirrors/legacy_yaml/build_cache/test-debian6-core2-gcc-4.5.0-zlib-1.2.11-t5mczux3tfqpxwmg7egp7axy2jvyulqk.spec.yaml41
-rw-r--r--lib/spack/spack/test/data/mirrors/legacy_yaml/build_cache/test-debian6-core2/gcc-4.5.0/zlib-1.2.11/test-debian6-core2-gcc-4.5.0-zlib-1.2.11-t5mczux3tfqpxwmg7egp7axy2jvyulqk.spackbin0 -> 37265 bytes
-rw-r--r--lib/spack/spack/test/data/modules/lmod/alter_environment.yaml2
-rw-r--r--lib/spack/spack/test/data/modules/lmod/with_view.yaml6
-rw-r--r--lib/spack/spack/test/data/modules/tcl/alter_environment.yaml2
-rw-r--r--lib/spack/spack/test/data/modules/tcl/invalid_token_in_env_var_name.yaml2
-rw-r--r--lib/spack/spack/test/data/sourceme_first.sh2
-rw-r--r--lib/spack/spack/test/data/sourceme_lmod.sh2
-rw-r--r--lib/spack/spack/test/data/sourceme_parameters.sh2
-rw-r--r--lib/spack/spack/test/data/sourceme_second.sh2
-rw-r--r--lib/spack/spack/test/data/sourceme_unicode.sh2
-rw-r--r--lib/spack/spack/test/data/sourceme_unset.sh2
-rw-r--r--lib/spack/spack/test/data/style/broken.dummy12
-rw-r--r--lib/spack/spack/test/data/style/fixed.py14
-rw-r--r--lib/spack/spack/test/database.py50
-rw-r--r--lib/spack/spack/test/directives.py12
-rw-r--r--lib/spack/spack/test/directory_layout.py58
-rw-r--r--lib/spack/spack/test/env.py38
-rw-r--r--lib/spack/spack/test/environment.py15
-rw-r--r--lib/spack/spack/test/environment_modifications.py18
-rw-r--r--lib/spack/spack/test/fetch_strategy.py2
-rw-r--r--lib/spack/spack/test/flag_handlers.py12
-rw-r--r--lib/spack/spack/test/git_fetch.py15
-rw-r--r--lib/spack/spack/test/graph.py13
-rw-r--r--lib/spack/spack/test/hg_fetch.py11
-rw-r--r--lib/spack/spack/test/install.py181
-rw-r--r--lib/spack/spack/test/installer.py141
-rw-r--r--lib/spack/spack/test/link_paths.py5
-rw-r--r--lib/spack/spack/test/llnl/util/__init__.py2
-rw-r--r--lib/spack/spack/test/llnl/util/argparsewriter.py3
-rw-r--r--lib/spack/spack/test/llnl/util/file_list.py15
-rw-r--r--lib/spack/spack/test/llnl/util/filesystem.py24
-rw-r--r--lib/spack/spack/test/llnl/util/lang.py78
-rw-r--r--lib/spack/spack/test/llnl/util/link_tree.py6
-rw-r--r--lib/spack/spack/test/llnl/util/lock.py15
-rw-r--r--lib/spack/spack/test/llnl/util/tty/__init__.py2
-rw-r--r--lib/spack/spack/test/llnl/util/tty/log.py74
-rw-r--r--lib/spack/spack/test/llnl/util/tty/tty.py3
-rw-r--r--lib/spack/spack/test/main.py2
-rw-r--r--lib/spack/spack/test/make_executable.py2
-rw-r--r--lib/spack/spack/test/mirror.py9
-rw-r--r--lib/spack/spack/test/module_parsing.py11
-rw-r--r--lib/spack/spack/test/modules/__init__.py2
-rw-r--r--lib/spack/spack/test/modules/common.py12
-rw-r--r--lib/spack/spack/test/modules/conftest.py12
-rw-r--r--lib/spack/spack/test/modules/lmod.py42
-rw-r--r--lib/spack/spack/test/modules/tcl.py25
-rw-r--r--lib/spack/spack/test/monitor.py282
-rw-r--r--lib/spack/spack/test/multimethod.py3
-rw-r--r--lib/spack/spack/test/namespace_trie.py2
-rw-r--r--lib/spack/spack/test/operating_system.py2
-rw-r--r--lib/spack/spack/test/optional_deps.py3
-rw-r--r--lib/spack/spack/test/package_class.py5
-rw-r--r--lib/spack/spack/test/package_hash.py4
-rw-r--r--lib/spack/spack/test/package_sanity.py18
-rw-r--r--lib/spack/spack/test/packages.py29
-rw-r--r--lib/spack/spack/test/packaging.py38
-rw-r--r--lib/spack/spack/test/patch.py41
-rw-r--r--lib/spack/spack/test/pattern.py3
-rw-r--r--lib/spack/spack/test/permissions.py10
-rw-r--r--lib/spack/spack/test/provider_index.py2
-rw-r--r--lib/spack/spack/test/relocate.py6
-rw-r--r--lib/spack/spack/test/repo.py17
-rw-r--r--lib/spack/spack/test/s3_fetch.py50
-rw-r--r--lib/spack/spack/test/sbang.py14
-rw-r--r--lib/spack/spack/test/schema.py2
-rw-r--r--lib/spack/spack/test/spack_yaml.py2
-rw-r--r--lib/spack/spack/test/spec_dag.py13
-rw-r--r--lib/spack/spack/test/spec_list.py8
-rw-r--r--lib/spack/spack/test/spec_semantics.py203
-rw-r--r--lib/spack/spack/test/spec_syntax.py37
-rw-r--r--lib/spack/spack/test/spec_yaml.py157
-rw-r--r--lib/spack/spack/test/stage.py19
-rw-r--r--lib/spack/spack/test/svn_fetch.py11
-rw-r--r--lib/spack/spack/test/tengine.py6
-rw-r--r--lib/spack/spack/test/test_activations.py20
-rw-r--r--lib/spack/spack/test/test_suite.py34
-rw-r--r--lib/spack/spack/test/url_fetch.py219
-rw-r--r--lib/spack/spack/test/url_parse.py18
-rw-r--r--lib/spack/spack/test/url_substitution.py3
-rw-r--r--lib/spack/spack/test/util/__init__.py2
-rw-r--r--lib/spack/spack/test/util/editor.py4
-rw-r--r--lib/spack/spack/test/util/environment.py6
-rw-r--r--lib/spack/spack/test/util/executable.py4
-rw-r--r--lib/spack/spack/test/util/file_cache.py3
-rw-r--r--lib/spack/spack/test/util/log_parser.py2
-rw-r--r--lib/spack/spack/test/util/mock_package.py2
-rw-r--r--lib/spack/spack/test/util/path.py99
-rw-r--r--lib/spack/spack/test/util/prefix.py2
-rw-r--r--lib/spack/spack/test/util/spack_lock_wrapper.py2
-rw-r--r--lib/spack/spack/test/util/spack_yaml.py30
-rw-r--r--lib/spack/spack/test/util/util_gpg.py37
-rw-r--r--lib/spack/spack/test/util/util_string.py2
-rw-r--r--lib/spack/spack/test/util/util_url.py75
-rw-r--r--lib/spack/spack/test/variant.py24
-rw-r--r--lib/spack/spack/test/verification.py6
-rw-r--r--lib/spack/spack/test/versions.py42
-rw-r--r--lib/spack/spack/test/views.py8
-rw-r--r--lib/spack/spack/test/web.py91
-rw-r--r--lib/spack/spack/url.py33
-rw-r--r--lib/spack/spack/user_environment.py16
-rw-r--r--lib/spack/spack/util/__init__.py2
-rw-r--r--lib/spack/spack/util/classes.py41
-rw-r--r--lib/spack/spack/util/compression.py26
-rw-r--r--lib/spack/spack/util/cpus.py20
-rw-r--r--lib/spack/spack/util/crypto.py8
-rw-r--r--lib/spack/spack/util/debug.py6
-rw-r--r--lib/spack/spack/util/editor.py5
-rw-r--r--lib/spack/spack/util/environment.py79
-rw-r--r--lib/spack/spack/util/executable.py32
-rw-r--r--lib/spack/spack/util/file_cache.py2
-rw-r--r--lib/spack/spack/util/file_permissions.py4
-rw-r--r--lib/spack/spack/util/gpg.py631
-rw-r--r--lib/spack/spack/util/hash.py31
-rw-r--r--lib/spack/spack/util/imp/__init__.py2
-rw-r--r--lib/spack/spack/util/imp/imp_importer.py6
-rw-r--r--lib/spack/spack/util/imp/importlib_importer.py6
-rw-r--r--lib/spack/spack/util/lock.py7
-rw-r--r--lib/spack/spack/util/log_parse.py14
-rw-r--r--lib/spack/spack/util/mock_package.py12
-rw-r--r--lib/spack/spack/util/module_cmd.py14
-rw-r--r--lib/spack/spack/util/naming.py6
-rw-r--r--lib/spack/spack/util/package_hash.py10
-rw-r--r--lib/spack/spack/util/path.py131
-rw-r--r--lib/spack/spack/util/pattern.py7
-rw-r--r--lib/spack/spack/util/prefix.py2
-rw-r--r--lib/spack/spack/util/s3.py19
-rw-r--r--lib/spack/spack/util/spack_json.py20
-rw-r--r--lib/spack/spack/util/spack_yaml.py36
-rw-r--r--lib/spack/spack/util/string.py4
-rw-r--r--lib/spack/spack/util/timer.py61
-rw-r--r--lib/spack/spack/util/url.py55
-rw-r--r--lib/spack/spack/util/web.py104
-rw-r--r--lib/spack/spack/variant.py40
-rw-r--r--lib/spack/spack/verify.py12
-rw-r--r--lib/spack/spack/version.py405
-rw-r--r--pyproject.toml94
-rw-r--r--pytest.ini10
-rwxr-xr-xshare/spack/bash/spack-completion.in19
-rw-r--r--share/spack/bootstrap/github-actions/clingo.json257
-rw-r--r--share/spack/csh/pathadd.csh2
-rw-r--r--share/spack/csh/spack.csh2
-rw-r--r--share/spack/docker/amazonlinux-2.dockerfile70
-rw-r--r--share/spack/docker/centos-6.dockerfile74
-rwxr-xr-xshare/spack/docker/entrypoint.bash2
-rw-r--r--share/spack/docker/leap-15.dockerfile61
-rwxr-xr-xshare/spack/docker/package-index/split.sh2
-rw-r--r--share/spack/docker/ubuntu-1804.dockerfile2
-rw-r--r--share/spack/docs/docker/module-file-tutorial/spack.sh2
-rw-r--r--share/spack/gitlab/cloud_e4s_pipelines.yml24
-rw-r--r--share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml252
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml61
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml63
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml371
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml385
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml96
-rw-r--r--share/spack/gitlab/nersc_pipeline.yml (renamed from share/spack/gitlab/ascent_pipeline.yml)2
-rwxr-xr-xshare/spack/qa/bashcov5
-rwxr-xr-xshare/spack/qa/completion-test.sh78
-rw-r--r--share/spack/qa/flake8_formatter.py148
-rwxr-xr-xshare/spack/qa/run-build-tests2
-rwxr-xr-xshare/spack/qa/run-doc-tests2
-rwxr-xr-xshare/spack/qa/run-shell-tests19
-rwxr-xr-xshare/spack/qa/run-style-tests (renamed from share/spack/qa/run-flake8-tests)10
-rwxr-xr-xshare/spack/qa/run-unit-tests16
-rwxr-xr-xshare/spack/qa/setup-env-test.csh2
-rwxr-xr-xshare/spack/qa/setup-env-test.fish52
-rwxr-xr-xshare/spack/qa/setup-env-test.sh7
-rwxr-xr-xshare/spack/qa/setup.sh10
-rwxr-xr-xshare/spack/qa/test-framework.sh2
-rwxr-xr-xshare/spack/setup-env.csh14
-rwxr-xr-xshare/spack/setup-env.fish109
-rwxr-xr-xshare/spack/setup-env.sh100
-rwxr-xr-xshare/spack/setup-tutorial-env.sh10
-rwxr-xr-xshare/spack/spack-completion.bash268
-rw-r--r--share/spack/templates/container/Dockerfile5
-rw-r--r--share/spack/templates/container/singularity.def2
-rw-r--r--share/spack/templates/misc/coconcretization.pyt2
-rw-r--r--var/spack/repos/builtin.mock/packages/a/package.py6
-rw-r--r--var/spack/repos/builtin.mock/packages/archive-files/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/b/package.py3
-rw-r--r--var/spack/repos/builtin.mock/packages/boost/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/both-link-and-build-dep-a/package.py24
-rw-r--r--var/spack/repos/builtin.mock/packages/both-link-and-build-dep-b/package.py23
-rw-r--r--var/spack/repos/builtin.mock/packages/both-link-and-build-dep-c/package.py21
-rw-r--r--var/spack/repos/builtin.mock/packages/bowtie/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/brillig/package.py17
-rw-r--r--var/spack/repos/builtin.mock/packages/build-error/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/build-warnings/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/c/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/callpath/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/canfail/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/cmake-client/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/cmake/package.py5
-rw-r--r--var/spack/repos/builtin.mock/packages/conditional-constrained-dependencies/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/conditional-provider/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/conditional-virtual-dependency/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/conditionally-patch-dependency/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/configure-warning/package.py33
-rw-r--r--var/spack/repos/builtin.mock/packages/conflict-parent/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/conflict/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/conflicting-dependent/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/corge/package.py11
-rw-r--r--var/spack/repos/builtin.mock/packages/cumulative-vrange-bottom/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/cumulative-vrange-middle/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/cumulative-vrange-root/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/cvs-test/package.py13
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop-root/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-with-variants/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/depb/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dependency-install/package.py6
-rw-r--r--var/spack/repos/builtin.mock/packages/dependent-install/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/depends-on-run-env/package.py22
-rw-r--r--var/spack/repos/builtin.mock/packages/deprecated-versions/package.py12
-rw-r--r--var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py30
-rw-r--r--var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/develop-test/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/develop-test2/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/direct-mpich/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dt-diamond/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtbuild1/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtbuild2/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtbuild3/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtlink1/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtlink2/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtlink3/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtlink4/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtlink5/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtrun1/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtrun2/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtrun3/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dttop/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dtuse/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/dyninst/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/e/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/ecp-viz-sdk/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/extendee/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/extension1/package.py9
-rw-r--r--var/spack/repos/builtin.mock/packages/extension2/package.py7
-rw-r--r--var/spack/repos/builtin.mock/packages/external-buildable-with-variant/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/external-common-gdbm/package.py13
-rw-r--r--var/spack/repos/builtin.mock/packages/external-common-openssl/package.py14
-rw-r--r--var/spack/repos/builtin.mock/packages/external-common-perl/package.py14
-rw-r--r--var/spack/repos/builtin.mock/packages/external-common-python/package.py15
-rw-r--r--var/spack/repos/builtin.mock/packages/externalmodule/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/externalprereq/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/externaltest/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/externaltool/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/externalvirtual/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/failing-build/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/fake/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/fetch-options/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/fftw/package.py6
-rw-r--r--var/spack/repos/builtin.mock/packages/find-externals1/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/flake8/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/flatten-deps/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/garply/package.py11
-rw-r--r--var/spack/repos/builtin.mock/packages/gcc/package.py6
-rw-r--r--var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/git-test-commit/package.py24
-rw-r--r--var/spack/repos/builtin.mock/packages/git-test/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/git-top-level/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/git-url-top-level/package.py40
-rw-r--r--var/spack/repos/builtin.mock/packages/gmt/package.py12
-rw-r--r--var/spack/repos/builtin.mock/packages/hash-test1/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/hash-test2/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/hash-test3/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/hash-test4/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/hdf5/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/hg-test/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/hg-top-level/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/hypre/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/impossible-concretization/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/indirect-mpich/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py12
-rw-r--r--var/spack/repos/builtin.mock/packages/libdwarf/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/libelf/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/libtool-deletion/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/maintainers-1/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/maintainers-2/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py11
-rw-r--r--var/spack/repos/builtin.mock/packages/mirror-gnu-broken/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/mirror-gnu/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/mirror-sourceforge-broken/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/mirror-sourceforge/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/mirror-gnu-broken/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/mirror-sourceware/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/mirror-xorg-broken/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/mirror-xorg/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/missing-dependency/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/mixedversions/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/modifies-run-env/package.py21
-rw-r--r--var/spack/repos/builtin.mock/packages/module-path-separator/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/mpich/package.py12
-rw-r--r--var/spack/repos/builtin.mock/packages/mpich2/package.py12
-rw-r--r--var/spack/repos/builtin.mock/packages/mpileaks/package.py10
-rw-r--r--var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py16
-rw-r--r--var/spack/repos/builtin.mock/packages/multimethod-base/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/multimethod-diamond-parent/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/multimethod-diamond/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/multimethod-inheritor/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/multimethod/package.py5
-rw-r--r--var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/multivalue-variant/package.py15
-rw-r--r--var/spack/repos/builtin.mock/packages/mvdefaults/package.py12
-rw-r--r--var/spack/repos/builtin.mock/packages/needs-relocation/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/netlib-blas/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/netlib-lapack/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/nosource-install/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/nosource/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/noversion-bundle/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/noversion/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/old-sbang/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/openblas/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/optional-dep-test/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/othervirtual/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/override-context-templates/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/override-module-templates/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/patch-a-dependency/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/patch-inheritance/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/patch-several-dependencies/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/patch/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/patchelf/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/perl-extension/package.py9
-rw-r--r--var/spack/repos/builtin.mock/packages/perl/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/preferred-test/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/printing-package/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/py-extension1/package.py12
-rw-r--r--var/spack/repos/builtin.mock/packages/py-extension2/package.py10
-rw-r--r--var/spack/repos/builtin.mock/packages/py-extension3/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/python/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/quantum-espresso/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/quux/package.py12
-rw-r--r--var/spack/repos/builtin.mock/packages/raiser/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/requires-virtual/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py11
-rw-r--r--var/spack/repos/builtin.mock/packages/root/package.py11
-rw-r--r--var/spack/repos/builtin.mock/packages/simple-inheritance/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/splice-h/package.py22
-rw-r--r--var/spack/repos/builtin.mock/packages/splice-t/package.py18
-rw-r--r--var/spack/repos/builtin.mock/packages/splice-z/package.py18
-rw-r--r--var/spack/repos/builtin.mock/packages/svn-test/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/svn-top-level/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/test-dependency/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/test-error/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/test-fail/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/transitive-conditional-virtual-dependency/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py25
-rw-r--r--var/spack/repos/builtin.mock/packages/trivial-smoke-test/test/test_file.in0
-rw-r--r--var/spack/repos/builtin.mock/packages/unsat-provider/package.py15
-rw-r--r--var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py12
-rw-r--r--var/spack/repos/builtin.mock/packages/url-list-test/package.py19
-rw-r--r--var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py19
-rw-r--r--var/spack/repos/builtin.mock/packages/url-only-override/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/url-test/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/url_override/package.py8
-rw-r--r--var/spack/repos/builtin.mock/packages/v1-provider/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-a/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-b/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-root/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/vdefault-or-external-root/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/vdefault-or-external/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py16
-rw-r--r--var/spack/repos/builtin.mock/packages/version-test-pkg/package.py19
-rw-r--r--var/spack/repos/builtin.mock/packages/version-test-root/package.py11
-rw-r--r--var/spack/repos/builtin.mock/packages/when-directives-false/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/when-directives-true/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/with-constraint-met/package.py20
-rw-r--r--var/spack/repos/builtin.mock/packages/zlib/package.py55
-rw-r--r--var/spack/repos/builtin.mock/packages/zlib/w_patch.patch13
-rw-r--r--var/spack/repos/builtin.mock/packages/zmpi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/3dtk/homebrew.patch18
-rw-r--r--var/spack/repos/builtin/packages/3dtk/package.py92
-rw-r--r--var/spack/repos/builtin/packages/3proxy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/abduco/package.py2
-rw-r--r--var/spack/repos/builtin/packages/abi-compliance-checker/package.py2
-rw-r--r--var/spack/repos/builtin/packages/abi-dumper/package.py9
-rw-r--r--var/spack/repos/builtin/packages/abinit/fix_for_fujitsu.patch352
-rw-r--r--var/spack/repos/builtin/packages/abinit/package.py241
-rw-r--r--var/spack/repos/builtin/packages/abinit/rm_march_settings.patch74
-rw-r--r--var/spack/repos/builtin/packages/abinit/rm_march_settings_v9.patch44
-rw-r--r--var/spack/repos/builtin/packages/abseil-cpp/package.py22
-rw-r--r--var/spack/repos/builtin/packages/abyss/package.py10
-rw-r--r--var/spack/repos/builtin/packages/accfft/package.py2
-rw-r--r--var/spack/repos/builtin/packages/acct/package.py4
-rw-r--r--var/spack/repos/builtin/packages/accumulo/package.py5
-rw-r--r--var/spack/repos/builtin/packages/ace/package.py6
-rw-r--r--var/spack/repos/builtin/packages/ack/package.py6
-rw-r--r--var/spack/repos/builtin/packages/acl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/acpica-tools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/acpid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/activeharmony/package.py6
-rw-r--r--var/spack/repos/builtin/packages/activemq/package.py2
-rw-r--r--var/spack/repos/builtin/packages/acts/package.py55
-rw-r--r--var/spack/repos/builtin/packages/addrwatch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/adept-utils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/adf/package.py7
-rw-r--r--var/spack/repos/builtin/packages/adiak/package.py9
-rw-r--r--var/spack/repos/builtin/packages/adios/package.py4
-rw-r--r--var/spack/repos/builtin/packages/adios2/2.7-fix-python-test-deps.patch175
-rw-r--r--var/spack/repos/builtin/packages/adios2/package.py113
-rw-r--r--var/spack/repos/builtin/packages/adlbx/package.py6
-rw-r--r--var/spack/repos/builtin/packages/admixtools/package.py15
-rw-r--r--var/spack/repos/builtin/packages/adms/package.py28
-rw-r--r--var/spack/repos/builtin/packages/adol-c/package.py2
-rw-r--r--var/spack/repos/builtin/packages/advancecomp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/adwaita-icon-theme/package.py30
-rw-r--r--var/spack/repos/builtin/packages/aegean/package.py4
-rw-r--r--var/spack/repos/builtin/packages/aeskeyfind/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aespipe/package.py2
-rw-r--r--var/spack/repos/builtin/packages/agrep/package.py4
-rw-r--r--var/spack/repos/builtin/packages/aida/package.py6
-rw-r--r--var/spack/repos/builtin/packages/akantu/package.py2
-rw-r--r--var/spack/repos/builtin/packages/alan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/albany/package.py49
-rw-r--r--var/spack/repos/builtin/packages/albert/package.py3
-rw-r--r--var/spack/repos/builtin/packages/alembic/package.py38
-rw-r--r--var/spack/repos/builtin/packages/alglib/package.py6
-rw-r--r--var/spack/repos/builtin/packages/allpaths-lg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/alluxio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/alpaka/package.py79
-rw-r--r--var/spack/repos/builtin/packages/alps/alps_climit.patch11
-rw-r--r--var/spack/repos/builtin/packages/alps/alps_cmake_time.patch11
-rw-r--r--var/spack/repos/builtin/packages/alps/alps_newgcc.patch59
-rw-r--r--var/spack/repos/builtin/packages/alps/package.py47
-rw-r--r--var/spack/repos/builtin/packages/alps/test/spin_one_half9
-rw-r--r--var/spack/repos/builtin/packages/alquimia/package.py7
-rw-r--r--var/spack/repos/builtin/packages/alsa-lib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aluminum/package.py45
-rw-r--r--var/spack/repos/builtin/packages/ambari/package.py2
-rw-r--r--var/spack/repos/builtin/packages/amber/package.py73
-rw-r--r--var/spack/repos/builtin/packages/amdblis/package.py17
-rw-r--r--var/spack/repos/builtin/packages/amdfftw/package.py79
-rw-r--r--var/spack/repos/builtin/packages/amdlibflame/cray-compiler-wrapper.patch28
-rw-r--r--var/spack/repos/builtin/packages/amdlibflame/package.py16
-rwxr-xr-xvar/spack/repos/builtin/packages/amdlibm/0001-libm-ose-Scripts-cleanup-pyc-files.patch601
-rwxr-xr-xvar/spack/repos/builtin/packages/amdlibm/0002-libm-ose-prevent-log-v3.c-from-building.patch25
-rw-r--r--var/spack/repos/builtin/packages/amdlibm/package.py71
-rw-r--r--var/spack/repos/builtin/packages/amdscalapack/package.py17
-rw-r--r--var/spack/repos/builtin/packages/amg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/amg2013/package.py2
-rw-r--r--var/spack/repos/builtin/packages/amgx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aml/package.py60
-rw-r--r--var/spack/repos/builtin/packages/amp/package.py168
-rw-r--r--var/spack/repos/builtin/packages/ampl/package.py69
-rw-r--r--var/spack/repos/builtin/packages/ampliconnoise/package.py4
-rw-r--r--var/spack/repos/builtin/packages/amr-wind/package.py108
-rw-r--r--var/spack/repos/builtin/packages/amrex/package.py168
-rw-r--r--var/spack/repos/builtin/packages/amrvis/package.py2
-rw-r--r--var/spack/repos/builtin/packages/anaconda2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/anaconda3/package.py7
-rw-r--r--var/spack/repos/builtin/packages/andi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/angsd/package.py20
-rw-r--r--var/spack/repos/builtin/packages/ant/package.py4
-rw-r--r--var/spack/repos/builtin/packages/antimony/package.py2
-rw-r--r--var/spack/repos/builtin/packages/antlr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ants/package.py12
-rwxr-xr-xvar/spack/repos/builtin/packages/aocc/package.py19
-rw-r--r--var/spack/repos/builtin/packages/aocl-sparse/package.py105
-rw-r--r--var/spack/repos/builtin/packages/aoflagger/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aom/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aomp/0001-Add-cmake-option-for-copying-source-for-debugging.patch28
-rw-r--r--var/spack/repos/builtin/packages/aomp/package.py468
-rw-r--r--var/spack/repos/builtin/packages/apachetop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/apcomp/package.py8
-rw-r--r--var/spack/repos/builtin/packages/ape/package.py4
-rw-r--r--var/spack/repos/builtin/packages/aperture-photometry/package.py5
-rw-r--r--var/spack/repos/builtin/packages/apex/package.py120
-rw-r--r--var/spack/repos/builtin/packages/apfel/package.py37
-rw-r--r--var/spack/repos/builtin/packages/apple-libunwind/package.py2
-rw-r--r--var/spack/repos/builtin/packages/apple-libuuid/package.py45
-rw-r--r--var/spack/repos/builtin/packages/applewmproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/appres/package.py6
-rw-r--r--var/spack/repos/builtin/packages/apr-util/package.py10
-rw-r--r--var/spack/repos/builtin/packages/apr/package.py12
-rw-r--r--var/spack/repos/builtin/packages/aragorn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/arbor/package.py106
-rw-r--r--var/spack/repos/builtin/packages/arborx/package.py60
-rw-r--r--var/spack/repos/builtin/packages/archer/package.py36
-rw-r--r--var/spack/repos/builtin/packages/argobots/package.py32
-rw-r--r--var/spack/repos/builtin/packages/argon2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/argp-standalone/package.py2
-rw-r--r--var/spack/repos/builtin/packages/args/package.py20
-rw-r--r--var/spack/repos/builtin/packages/argtable/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aria2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/arm-forge/package.py144
-rw-r--r--var/spack/repos/builtin/packages/arm/package.py87
-rw-r--r--var/spack/repos/builtin/packages/armadillo/package.py30
-rw-r--r--var/spack/repos/builtin/packages/arpack-ng/package.py13
-rw-r--r--var/spack/repos/builtin/packages/arpack-ng/xlf.patch50
-rw-r--r--var/spack/repos/builtin/packages/arrayfire/package.py38
-rw-r--r--var/spack/repos/builtin/packages/arrow/package.py9
-rw-r--r--var/spack/repos/builtin/packages/asagi/package.py18
-rw-r--r--var/spack/repos/builtin/packages/ascent/package.py232
-rw-r--r--var/spack/repos/builtin/packages/asciidoc-py3/package.py5
-rw-r--r--var/spack/repos/builtin/packages/asciidoc/package.py38
-rw-r--r--var/spack/repos/builtin/packages/asdcplib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/asdf-cxx/package.py9
-rw-r--r--var/spack/repos/builtin/packages/asio/package.py82
-rw-r--r--var/spack/repos/builtin/packages/aspa/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aspcud/package.py5
-rw-r--r--var/spack/repos/builtin/packages/aspect/package.py6
-rw-r--r--var/spack/repos/builtin/packages/aspell/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aspell6-de/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aspell6-en/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aspell6-es/package.py2
-rw-r--r--var/spack/repos/builtin/packages/aspera-cli/package.py5
-rw-r--r--var/spack/repos/builtin/packages/assimp/package.py8
-rw-r--r--var/spack/repos/builtin/packages/astra/package.py18
-rw-r--r--var/spack/repos/builtin/packages/astral/package.py5
-rw-r--r--var/spack/repos/builtin/packages/astyle/package.py11
-rw-r--r--var/spack/repos/builtin/packages/at-spi2-atk/package.py5
-rw-r--r--var/spack/repos/builtin/packages/at-spi2-core/package.py5
-rw-r--r--var/spack/repos/builtin/packages/atf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/athena/package.py2
-rw-r--r--var/spack/repos/builtin/packages/atk/package.py6
-rw-r--r--var/spack/repos/builtin/packages/atlas/package.py6
-rw-r--r--var/spack/repos/builtin/packages/atmi/package.py15
-rw-r--r--var/spack/repos/builtin/packages/atom-dft/package.py2
-rw-r--r--var/spack/repos/builtin/packages/atompaw/atompaw-4.1.1.0-fix-ifort.patch15
-rw-r--r--var/spack/repos/builtin/packages/atompaw/package.py14
-rw-r--r--var/spack/repos/builtin/packages/atop/package.py6
-rw-r--r--var/spack/repos/builtin/packages/attr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/audacious/package.py2
-rw-r--r--var/spack/repos/builtin/packages/audacity/package.py2
-rw-r--r--var/spack/repos/builtin/packages/audit-userspace/package.py2
-rw-r--r--var/spack/repos/builtin/packages/augustus/bam2wig_Makefile.patch23
-rw-r--r--var/spack/repos/builtin/packages/augustus/package.py138
-rw-r--r--var/spack/repos/builtin/packages/authd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/authselect/package.py2
-rw-r--r--var/spack/repos/builtin/packages/autoconf-archive/package.py2
-rw-r--r--var/spack/repos/builtin/packages/autoconf/package.py47
-rw-r--r--var/spack/repos/builtin/packages/autodock-gpu/package.py2
-rw-r--r--var/spack/repos/builtin/packages/autodock-vina/package.py5
-rw-r--r--var/spack/repos/builtin/packages/autofact/package.py9
-rw-r--r--var/spack/repos/builtin/packages/autogen/package.py2
-rw-r--r--var/spack/repos/builtin/packages/automaded/package.py2
-rw-r--r--var/spack/repos/builtin/packages/automake/package.py14
-rw-r--r--var/spack/repos/builtin/packages/avizo/package.py7
-rw-r--r--var/spack/repos/builtin/packages/aws-parallelcluster/package.py45
-rw-r--r--var/spack/repos/builtin/packages/awscli/package.py5
-rw-r--r--var/spack/repos/builtin/packages/axel/package.py2
-rw-r--r--var/spack/repos/builtin/packages/axl/package.py44
-rw-r--r--var/spack/repos/builtin/packages/axom/package.py589
-rw-r--r--var/spack/repos/builtin/packages/babelflow/package.py12
-rw-r--r--var/spack/repos/builtin/packages/babeltrace/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bacio/package.py19
-rw-r--r--var/spack/repos/builtin/packages/backupninja/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bam-readcount/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bamaddrg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bamdst/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bamtools/package.py5
-rw-r--r--var/spack/repos/builtin/packages/bamutil/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bannergrab/package.py2
-rw-r--r--var/spack/repos/builtin/packages/barrnap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bart/Makefile-0.7.00.patch30
-rw-r--r--var/spack/repos/builtin/packages/bart/package.py14
-rw-r--r--var/spack/repos/builtin/packages/barvinok/package.py31
-rw-r--r--var/spack/repos/builtin/packages/bash-completion/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bash/package.py12
-rw-r--r--var/spack/repos/builtin/packages/bashtop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/batctl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bats/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bazel/linux_ppc-0.29.1.patch61
-rw-r--r--var/spack/repos/builtin/packages/bazel/package.py19
-rw-r--r--var/spack/repos/builtin/packages/bbcp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bbmap/package.py4
-rw-r--r--var/spack/repos/builtin/packages/bc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bcache/package.py5
-rw-r--r--var/spack/repos/builtin/packages/bcftools/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bcl2fastq2/package.py10
-rw-r--r--var/spack/repos/builtin/packages/bdftopcf/package.py8
-rw-r--r--var/spack/repos/builtin/packages/bdii/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bdw-gc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/beagle/package.py9
-rw-r--r--var/spack/repos/builtin/packages/beakerlib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bear/package.py2
-rw-r--r--var/spack/repos/builtin/packages/beast-tracer/package.py7
-rw-r--r--var/spack/repos/builtin/packages/beast1/package.py4
-rw-r--r--var/spack/repos/builtin/packages/beast2/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bedops/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bedtools2/package.py8
-rw-r--r--var/spack/repos/builtin/packages/beforelight/package.py4
-rw-r--r--var/spack/repos/builtin/packages/benchmark/package.py8
-rw-r--r--var/spack/repos/builtin/packages/berkeley-db/drop-docs.patch25
-rw-r--r--var/spack/repos/builtin/packages/berkeley-db/package.py34
-rw-r--r--var/spack/repos/builtin/packages/bertini/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bgpdump/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bib2xhtml/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bigreqsproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/bind9/package.py10
-rw-r--r--var/spack/repos/builtin/packages/binutils/package.py91
-rw-r--r--var/spack/repos/builtin/packages/bioawk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/biobambam2/package.py49
-rw-r--r--var/spack/repos/builtin/packages/biobloom/package.py2
-rw-r--r--var/spack/repos/builtin/packages/biopieces/package.py4
-rw-r--r--var/spack/repos/builtin/packages/bird/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bismark/package.py5
-rw-r--r--var/spack/repos/builtin/packages/bison/nvhpc-3.6.patch (renamed from var/spack/repos/builtin/packages/bison/nvhpc.patch)0
-rw-r--r--var/spack/repos/builtin/packages/bison/nvhpc-3.7.patch38
-rw-r--r--var/spack/repos/builtin/packages/bison/package.py20
-rw-r--r--var/spack/repos/builtin/packages/bitlbee/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bitmap/package.py8
-rw-r--r--var/spack/repos/builtin/packages/bitsery/package.py2
-rw-r--r--var/spack/repos/builtin/packages/blaspp/package.py39
-rw-r--r--var/spack/repos/builtin/packages/blasr-libcpp/package.py5
-rw-r--r--var/spack/repos/builtin/packages/blasr/package.py5
-rw-r--r--var/spack/repos/builtin/packages/blast-legacy/package.py7
-rw-r--r--var/spack/repos/builtin/packages/blast-plus/package.py10
-rw-r--r--var/spack/repos/builtin/packages/blast2go/package.py8
-rw-r--r--var/spack/repos/builtin/packages/blat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/blaze/package.py2
-rw-r--r--var/spack/repos/builtin/packages/blis/package.py20
-rw-r--r--var/spack/repos/builtin/packages/bliss/package.py2
-rw-r--r--var/spack/repos/builtin/packages/blitz/package.py10
-rw-r--r--var/spack/repos/builtin/packages/blktrace/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bloaty/package.py18
-rw-r--r--var/spack/repos/builtin/packages/blogbench/package.py4
-rw-r--r--var/spack/repos/builtin/packages/blt/package.py12
-rw-r--r--var/spack/repos/builtin/packages/bmake/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bmi/package.py8
-rw-r--r--var/spack/repos/builtin/packages/bml/package.py7
-rw-r--r--var/spack/repos/builtin/packages/bohrium/package.py10
-rw-r--r--var/spack/repos/builtin/packages/bohrium/pyadd.py1
-rw-r--r--var/spack/repos/builtin/packages/boinc-client/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bolt/package.py44
-rw-r--r--var/spack/repos/builtin/packages/bonniepp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bookleaf-cpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/boost/boost_218.patch10
-rw-r--r--var/spack/repos/builtin/packages/boost/bootstrap-toolset.patch11
-rw-r--r--var/spack/repos/builtin/packages/boost/context-macho-gcc.patch22
-rw-r--r--var/spack/repos/builtin/packages/boost/nvhpc-1.74.patch (renamed from var/spack/repos/builtin/packages/boost/nvhpc.patch)0
-rw-r--r--var/spack/repos/builtin/packages/boost/nvhpc-1.76.patch27
-rw-r--r--var/spack/repos/builtin/packages/boost/nvhpc-find_address.patch11
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py94
-rw-r--r--var/spack/repos/builtin/packages/boostmplcartesianproduct/package.py2
-rw-r--r--var/spack/repos/builtin/packages/botan/package.py8
-rw-r--r--var/spack/repos/builtin/packages/bowtie/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bowtie2/package.py67
-rw-r--r--var/spack/repos/builtin/packages/boxlib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bpp-core/package.py3
-rw-r--r--var/spack/repos/builtin/packages/bpp-phyl-omics/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bpp-phyl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bpp-seq-omics/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bpp-seq/package.py3
-rw-r--r--var/spack/repos/builtin/packages/bpp-suite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bracken/package.py5
-rw-r--r--var/spack/repos/builtin/packages/braker/package.py5
-rw-r--r--var/spack/repos/builtin/packages/branson/package.py4
-rw-r--r--var/spack/repos/builtin/packages/breakdancer/package.py4
-rw-r--r--var/spack/repos/builtin/packages/bref3/package.py11
-rw-r--r--var/spack/repos/builtin/packages/breseq/package.py4
-rw-r--r--var/spack/repos/builtin/packages/bridger/package.py5
-rw-r--r--var/spack/repos/builtin/packages/brigand/package.py2
-rw-r--r--var/spack/repos/builtin/packages/brltty/package.py4
-rw-r--r--var/spack/repos/builtin/packages/brotli/package.py2
-rw-r--r--var/spack/repos/builtin/packages/brpc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/brynet/package.py25
-rw-r--r--var/spack/repos/builtin/packages/bsseeker2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bubblewrap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bucky/package.py4
-rw-r--r--var/spack/repos/builtin/packages/buddy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/bufr/package.py23
-rw-r--r--var/spack/repos/builtin/packages/bumpversion/package.py5
-rw-r--r--var/spack/repos/builtin/packages/busco/package.py4
-rw-r--r--var/spack/repos/builtin/packages/busybox/package.py2
-rw-r--r--var/spack/repos/builtin/packages/butter/package.py2
-rw-r--r--var/spack/repos/builtin/packages/butterflypack/package.py7
-rw-r--r--var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch2
-rw-r--r--var/spack/repos/builtin/packages/bwa/package.py12
-rw-r--r--var/spack/repos/builtin/packages/bwtool/package.py2
-rw-r--r--var/spack/repos/builtin/packages/byacc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/byobu/package.py4
-rw-r--r--var/spack/repos/builtin/packages/byte-unixbench/package.py4
-rw-r--r--var/spack/repos/builtin/packages/byteman/package.py4
-rw-r--r--var/spack/repos/builtin/packages/bzip2/package.py19
-rw-r--r--var/spack/repos/builtin/packages/c-ares/package.py2
-rw-r--r--var/spack/repos/builtin/packages/c-blosc/package.py5
-rw-r--r--var/spack/repos/builtin/packages/c-blosc2/package.py18
-rw-r--r--var/spack/repos/builtin/packages/c-lime/package.py2
-rw-r--r--var/spack/repos/builtin/packages/c/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py39
-rw-r--r--var/spack/repos/builtin/packages/cabana/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cachefilesd/package.py6
-rw-r--r--var/spack/repos/builtin/packages/caffe/package.py14
-rw-r--r--var/spack/repos/builtin/packages/cairo/disable-gtk-docs.patch17
-rw-r--r--var/spack/repos/builtin/packages/cairo/package.py11
-rw-r--r--var/spack/repos/builtin/packages/cairomm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/caliper/package.py103
-rw-r--r--var/spack/repos/builtin/packages/callflow/package.py43
-rw-r--r--var/spack/repos/builtin/packages/callpath/package.py2
-rw-r--r--var/spack/repos/builtin/packages/camellia/package.py4
-rw-r--r--var/spack/repos/builtin/packages/camp/package.py16
-rw-r--r--var/spack/repos/builtin/packages/camx/package.py4
-rw-r--r--var/spack/repos/builtin/packages/canal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/candle-benchmarks/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cantera/package.py11
-rw-r--r--var/spack/repos/builtin/packages/canu/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cap3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/capnproto/package.py3
-rw-r--r--var/spack/repos/builtin/packages/capstone/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cardioid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/care/package.py131
-rw-r--r--var/spack/repos/builtin/packages/casacore/package.py42
-rw-r--r--var/spack/repos/builtin/packages/cask/package.py7
-rw-r--r--var/spack/repos/builtin/packages/casper/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cassandra/package.py2
-rw-r--r--var/spack/repos/builtin/packages/catalyst/package.py20
-rw-r--r--var/spack/repos/builtin/packages/catch2/package.py17
-rw-r--r--var/spack/repos/builtin/packages/cbc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cbench/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cbflib/cbf_f16.patch17
-rw-r--r--var/spack/repos/builtin/packages/cbflib/cbf_int.patch11
-rw-r--r--var/spack/repos/builtin/packages/cbflib/checkint.c4
-rw-r--r--var/spack/repos/builtin/packages/cbflib/package.py44
-rw-r--r--var/spack/repos/builtin/packages/cblas/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py15
-rw-r--r--var/spack/repos/builtin/packages/cbtf-argonavis/package.py71
-rw-r--r--var/spack/repos/builtin/packages/cbtf-krell/package.py53
-rw-r--r--var/spack/repos/builtin/packages/cbtf-lanl/package.py33
-rw-r--r--var/spack/repos/builtin/packages/cbtf/package.py25
-rw-r--r--var/spack/repos/builtin/packages/cc65/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ccache/package.py45
-rw-r--r--var/spack/repos/builtin/packages/ccfits/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ccls/package.py25
-rw-r--r--var/spack/repos/builtin/packages/ccs-qcd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cctools/package.py9
-rw-r--r--var/spack/repos/builtin/packages/cdbfasta/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cdd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cddlib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cdecimal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cdhit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cdo/package.py99
-rw-r--r--var/spack/repos/builtin/packages/ceed/package.py76
-rw-r--r--var/spack/repos/builtin/packages/cereal/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ceres-solver/package.py3
-rw-r--r--var/spack/repos/builtin/packages/cfitsio/package.py22
-rw-r--r--var/spack/repos/builtin/packages/cgal/package.py14
-rw-r--r--var/spack/repos/builtin/packages/cgdb/package.py5
-rw-r--r--var/spack/repos/builtin/packages/cgdcbxd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cget/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cgl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cgm/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cgns/package.py44
-rw-r--r--var/spack/repos/builtin/packages/chai/package.py183
-rw-r--r--var/spack/repos/builtin/packages/changa/package.py4
-rw-r--r--var/spack/repos/builtin/packages/channelflow/package.py2
-rw-r--r--var/spack/repos/builtin/packages/chapel/package.py10
-rw-r--r--var/spack/repos/builtin/packages/chaplin/package.py22
-rw-r--r--var/spack/repos/builtin/packages/charliecloud/package.py10
-rw-r--r--var/spack/repos/builtin/packages/charmpp/charm_6.7.1_aocc.patch188
-rw-r--r--var/spack/repos/builtin/packages/charmpp/charm_6.8.2_aocc.patch165
-rw-r--r--var/spack/repos/builtin/packages/charmpp/package.py57
-rw-r--r--var/spack/repos/builtin/packages/chatterbug/package.py2
-rw-r--r--var/spack/repos/builtin/packages/check/package.py2
-rw-r--r--var/spack/repos/builtin/packages/chgcentre/package.py2
-rw-r--r--var/spack/repos/builtin/packages/chill/package.py4
-rw-r--r--var/spack/repos/builtin/packages/chlorop/package.py8
-rw-r--r--var/spack/repos/builtin/packages/chombo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/chrony/package.py3
-rw-r--r--var/spack/repos/builtin/packages/chrpath/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cinch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/circos/package.py5
-rw-r--r--var/spack/repos/builtin/packages/cistem/package.py2
-rw-r--r--var/spack/repos/builtin/packages/citcoms/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cityhash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ck/package.py2
-rw-r--r--var/spack/repos/builtin/packages/clamav/package.py2
-rw-r--r--var/spack/repos/builtin/packages/clamr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/clapack/package.py6
-rw-r--r--var/spack/repos/builtin/packages/clara/package.py2
-rw-r--r--var/spack/repos/builtin/packages/claw/package.py46
-rw-r--r--var/spack/repos/builtin/packages/cleaveland4/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cleverleaf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/clfft/package.py10
-rw-r--r--var/spack/repos/builtin/packages/clhep/package.py9
-rw-r--r--var/spack/repos/builtin/packages/cli11/package.py26
-rw-r--r--var/spack/repos/builtin/packages/clinfo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/clingo-bootstrap/package.py5
-rw-r--r--var/spack/repos/builtin/packages/clingo/package.py16
-rw-r--r--var/spack/repos/builtin/packages/cln/package.py7
-rw-r--r--var/spack/repos/builtin/packages/cloc/package.py5
-rw-r--r--var/spack/repos/builtin/packages/cloog/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cloverleaf/package.py25
-rw-r--r--var/spack/repos/builtin/packages/cloverleaf3d/package.py102
-rw-r--r--var/spack/repos/builtin/packages/clp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/clustal-omega/package.py2
-rw-r--r--var/spack/repos/builtin/packages/clustalw/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cmake/5882-enable-cce-fortran-preprocessing.patch31
-rw-r--r--var/spack/repos/builtin/packages/cmake/package.py73
-rw-r--r--var/spack/repos/builtin/packages/cmaq/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cmark/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cminpack/package.py5
-rw-r--r--var/spack/repos/builtin/packages/cmocka/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cmockery/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cmor/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cnmem/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cnpy/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cntk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cntk1bitsgd/package.py5
-rw-r--r--var/spack/repos/builtin/packages/cnvnator/package.py4
-rw-r--r--var/spack/repos/builtin/packages/codar-cheetah/package.py2
-rw-r--r--var/spack/repos/builtin/packages/code-server/package.py2
-rw-r--r--var/spack/repos/builtin/packages/codec2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/codes/package.py6
-rw-r--r--var/spack/repos/builtin/packages/coevp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cohmm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/coin3d/package.py8
-rw-r--r--var/spack/repos/builtin/packages/coinhsl/package.py14
-rw-r--r--var/spack/repos/builtin/packages/coinutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/collectd/package.py16
-rw-r--r--var/spack/repos/builtin/packages/collier/package.py10
-rw-r--r--var/spack/repos/builtin/packages/colm/package.py6
-rw-r--r--var/spack/repos/builtin/packages/colordiff/package.py2
-rw-r--r--var/spack/repos/builtin/packages/comd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/comgr/hip-tests.patch11
-rw-r--r--var/spack/repos/builtin/packages/comgr/package.py40
-rw-r--r--var/spack/repos/builtin/packages/commons-lang/package.py4
-rw-r--r--var/spack/repos/builtin/packages/commons-lang3/package.py4
-rw-r--r--var/spack/repos/builtin/packages/commons-logging/package.py6
-rw-r--r--var/spack/repos/builtin/packages/compadre/package.py58
-rw-r--r--var/spack/repos/builtin/packages/compiz/package.py2
-rw-r--r--var/spack/repos/builtin/packages/compositeproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/conda4aarch64/package.py2
-rw-r--r--var/spack/repos/builtin/packages/conduit/package.py187
-rw-r--r--var/spack/repos/builtin/packages/connect-proxy/package.py8
-rw-r--r--var/spack/repos/builtin/packages/conserver/package.py2
-rw-r--r--var/spack/repos/builtin/packages/console-bridge/package.py2
-rw-r--r--var/spack/repos/builtin/packages/constype/package.py4
-rw-r--r--var/spack/repos/builtin/packages/consul/package.py2
-rw-r--r--var/spack/repos/builtin/packages/converge/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cool/cool.patch19
-rw-r--r--var/spack/repos/builtin/packages/cool/package.py64
-rw-r--r--var/spack/repos/builtin/packages/coral/package.py59
-rw-r--r--var/spack/repos/builtin/packages/corenlp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/coreutils/package.py9
-rw-r--r--var/spack/repos/builtin/packages/corset/package.py5
-rw-r--r--var/spack/repos/builtin/packages/cosbench/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cosma/package.py3
-rw-r--r--var/spack/repos/builtin/packages/cosmoflow-benchmark/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cosmomc/package.py7
-rw-r--r--var/spack/repos/builtin/packages/cosp2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cotter/package.py2
-rw-r--r--var/spack/repos/builtin/packages/couchdb/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cowsay/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cp2k/package.py262
-rw-r--r--var/spack/repos/builtin/packages/cpio/package.py7
-rw-r--r--var/spack/repos/builtin/packages/cpmd/package.py106
-rw-r--r--var/spack/repos/builtin/packages/cpmd/test/1-h2o-pbc-geoopt.inp51
-rw-r--r--var/spack/repos/builtin/packages/cpmd/test/H_CVB_BLYP.psp28
-rw-r--r--var/spack/repos/builtin/packages/cpmd/test/O_MT_BLYP.psp1301
-rw-r--r--var/spack/repos/builtin/packages/cpp-httplib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cpp-termcolor/package.py27
-rw-r--r--var/spack/repos/builtin/packages/cppad/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cppcheck/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cppgsl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cpprestsdk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cppunit/package.py8
-rw-r--r--var/spack/repos/builtin/packages/cppzmq/package.py12
-rw-r--r--var/spack/repos/builtin/packages/cpu-features/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cpuinfo/package.py39
-rw-r--r--var/spack/repos/builtin/packages/cqrlib/cqr.patch20
-rw-r--r--var/spack/repos/builtin/packages/cqrlib/package.py28
-rw-r--r--var/spack/repos/builtin/packages/cquery/fix-gcc10.patch10
-rw-r--r--var/spack/repos/builtin/packages/cquery/package.py5
-rw-r--r--var/spack/repos/builtin/packages/cracklib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cradl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cram/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cray-fftw/package.py75
-rwxr-xr-xvar/spack/repos/builtin/packages/cray-libsci/package.py26
-rw-r--r--var/spack/repos/builtin/packages/cray-mpich/package.py126
-rw-r--r--var/spack/repos/builtin/packages/creduce/package.py32
-rw-r--r--var/spack/repos/builtin/packages/cromwell-womtool/package.py5
-rw-r--r--var/spack/repos/builtin/packages/cromwell/package.py7
-rw-r--r--var/spack/repos/builtin/packages/cronie/package.py2
-rw-r--r--var/spack/repos/builtin/packages/crtm/package.py20
-rw-r--r--var/spack/repos/builtin/packages/cryptopp/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cryptsetup/package.py8
-rw-r--r--var/spack/repos/builtin/packages/csa-c/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cscope/package.py2
-rw-r--r--var/spack/repos/builtin/packages/csdp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ctffind/package.py8
-rw-r--r--var/spack/repos/builtin/packages/ctpl/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ctre/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cub/package.py11
-rw-r--r--var/spack/repos/builtin/packages/cube-blade/package.py23
-rw-r--r--var/spack/repos/builtin/packages/cube-blade/return-bool.patch9
-rw-r--r--var/spack/repos/builtin/packages/cube/package.py17
-rw-r--r--var/spack/repos/builtin/packages/cubelib/package.py7
-rw-r--r--var/spack/repos/builtin/packages/cubew/package.py7
-rw-r--r--var/spack/repos/builtin/packages/cubist/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cuda-memtest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cuda/package.py98
-rw-r--r--var/spack/repos/builtin/packages/cudnn/package.py370
-rw-r--r--var/spack/repos/builtin/packages/cufflinks/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cunit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cupla/package.py42
-rw-r--r--var/spack/repos/builtin/packages/cups/package.py2
-rw-r--r--var/spack/repos/builtin/packages/curl/package.py123
-rw-r--r--var/spack/repos/builtin/packages/cusz/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cvector/package.py25
-rw-r--r--var/spack/repos/builtin/packages/cvs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cxx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cxxopts/package.py20
-rw-r--r--var/spack/repos/builtin/packages/cxxtest/package.py18
-rw-r--r--var/spack/repos/builtin/packages/cyrus-sasl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/czmq/package.py4
-rw-r--r--var/spack/repos/builtin/packages/dakota/package.py6
-rw-r--r--var/spack/repos/builtin/packages/daligner/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dalton/package.py46
-rw-r--r--var/spack/repos/builtin/packages/damageproto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/damaris/package.py2
-rw-r--r--var/spack/repos/builtin/packages/damselfly/package.py2
-rw-r--r--var/spack/repos/builtin/packages/darshan-runtime/package.py171
-rw-r--r--var/spack/repos/builtin/packages/darshan-util/package.py97
-rw-r--r--var/spack/repos/builtin/packages/dash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/datamash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dataspaces/package.py19
-rw-r--r--var/spack/repos/builtin/packages/datatransferkit/package.py15
-rw-r--r--var/spack/repos/builtin/packages/date/package.py3
-rw-r--r--var/spack/repos/builtin/packages/dateutils/package.py4
-rw-r--r--var/spack/repos/builtin/packages/davix/package.py11
-rw-r--r--var/spack/repos/builtin/packages/dbcsr/package.py94
-rw-r--r--var/spack/repos/builtin/packages/dbow2/package.py22
-rw-r--r--var/spack/repos/builtin/packages/dbus-glib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dbus/package.py6
-rw-r--r--var/spack/repos/builtin/packages/dbxtool/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dcap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dcm2niix/package.py16
-rw-r--r--var/spack/repos/builtin/packages/dcmtk/package.py5
-rw-r--r--var/spack/repos/builtin/packages/dd4hep/cmake_language.patch12
-rw-r--r--var/spack/repos/builtin/packages/dd4hep/package.py90
-rw-r--r--var/spack/repos/builtin/packages/ddd/package.py8
-rw-r--r--var/spack/repos/builtin/packages/dealii-parameter-gui/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dealii/package.py73
-rw-r--r--var/spack/repos/builtin/packages/debbuild/package.py4
-rw-r--r--var/spack/repos/builtin/packages/debugedit/package.py35
-rw-r--r--var/spack/repos/builtin/packages/decentralized-internet/package.py2
-rw-r--r--var/spack/repos/builtin/packages/deconseq-standalone/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dejagnu/package.py2
-rw-r--r--var/spack/repos/builtin/packages/delly2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/delphes/package.py9
-rw-r--r--var/spack/repos/builtin/packages/delta/package.py4
-rw-r--r--var/spack/repos/builtin/packages/denovogear/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dftbplus/package.py5
-rw-r--r--var/spack/repos/builtin/packages/dftd3-lib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dftd4/package.py45
-rw-r--r--var/spack/repos/builtin/packages/dftfe/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dhpmm-f/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dhtest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dia/package.py4
-rw-r--r--var/spack/repos/builtin/packages/dialign-tx/package.py6
-rw-r--r--var/spack/repos/builtin/packages/dialign/package.py2
-rw-r--r--var/spack/repos/builtin/packages/diamond/package.py7
-rw-r--r--var/spack/repos/builtin/packages/diffmark/package.py3
-rw-r--r--var/spack/repos/builtin/packages/diffsplice/package.py4
-rw-r--r--var/spack/repos/builtin/packages/diffutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dihydrogen/package.py126
-rw-r--r--var/spack/repos/builtin/packages/dimemas/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ding-libs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dire/package.py12
-rw-r--r--var/spack/repos/builtin/packages/direnv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/discovar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/discovardenovo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/disktype/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dislin/package.py4
-rw-r--r--var/spack/repos/builtin/packages/distcc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/diy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dlib/package.py21
-rw-r--r--var/spack/repos/builtin/packages/dlpack/package.py10
-rw-r--r--var/spack/repos/builtin/packages/dmd/package.py5
-rw-r--r--var/spack/repos/builtin/packages/dmidecode/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dmlc-core/package.py5
-rw-r--r--var/spack/repos/builtin/packages/dmtcp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dmxproto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dnsmap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dnsmasq/package.py4
-rw-r--r--var/spack/repos/builtin/packages/dnstop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dnstracer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/docbook-xml/package.py176
-rw-r--r--var/spack/repos/builtin/packages/docbook-xsl/package.py36
-rw-r--r--var/spack/repos/builtin/packages/dock/package.py6
-rw-r--r--var/spack/repos/builtin/packages/dos2unix/package.py4
-rw-r--r--var/spack/repos/builtin/packages/dosfstools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dotconf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dotnet-core-sdk/package.py11
-rw-r--r--var/spack/repos/builtin/packages/double-conversion/package.py4
-rw-r--r--var/spack/repos/builtin/packages/doxygen/cpp17_namespaces.patch30
-rw-r--r--var/spack/repos/builtin/packages/doxygen/gcc-partial-inlining-bug.patch14
-rw-r--r--var/spack/repos/builtin/packages/doxygen/package.py39
-rw-r--r--var/spack/repos/builtin/packages/dpdk/package.py12
-rw-r--r--var/spack/repos/builtin/packages/draco/package.py24
-rw-r--r--var/spack/repos/builtin/packages/dracut/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dramsim2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dramsim3/package.py41
-rw-r--r--var/spack/repos/builtin/packages/dray/package.py92
-rw-r--r--var/spack/repos/builtin/packages/dri2proto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dri3proto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/drill/package.py4
-rw-r--r--var/spack/repos/builtin/packages/dropwatch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/druid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ds/package.py7
-rw-r--r--var/spack/repos/builtin/packages/dsdp/package.py9
-rw-r--r--var/spack/repos/builtin/packages/dsqss/ctest.patch24
-rw-r--r--var/spack/repos/builtin/packages/dsqss/package.py73
-rw-r--r--var/spack/repos/builtin/packages/dsqss/spackpip.patch30
-rw-r--r--var/spack/repos/builtin/packages/dsrc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dssp/package.py25
-rw-r--r--var/spack/repos/builtin/packages/dtc/package.py32
-rw-r--r--var/spack/repos/builtin/packages/dtcmp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dtf/package.py64
-rw-r--r--var/spack/repos/builtin/packages/duperemove/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dyninst/package.py17
-rw-r--r--var/spack/repos/builtin/packages/dysco/package.py2
-rw-r--r--var/spack/repos/builtin/packages/e2fsprogs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ea-utils/package.py4
-rw-r--r--var/spack/repos/builtin/packages/eagle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/earlyoom/package.py2
-rw-r--r--var/spack/repos/builtin/packages/easybuild/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ebms/package.py6
-rw-r--r--var/spack/repos/builtin/packages/ecbuild/package.py26
-rw-r--r--var/spack/repos/builtin/packages/eccodes/package.py19
-rw-r--r--var/spack/repos/builtin/packages/ecdsautils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ecflow/package.py2
-rw-r--r--var/spack/repos/builtin/packages/eckit/package.py137
-rw-r--r--var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py5
-rw-r--r--var/spack/repos/builtin/packages/ecos/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py120
-rw-r--r--var/spack/repos/builtin/packages/ecp-io-sdk/package.py34
-rw-r--r--var/spack/repos/builtin/packages/ecp-proxy-apps/package.py10
-rw-r--r--var/spack/repos/builtin/packages/ecp-viz-sdk/package.py39
-rw-r--r--var/spack/repos/builtin/packages/ed/package.py2
-rw-r--r--var/spack/repos/builtin/packages/editline/package.py4
-rw-r--r--var/spack/repos/builtin/packages/editres/package.py4
-rw-r--r--var/spack/repos/builtin/packages/edm4hep/package.py73
-rw-r--r--var/spack/repos/builtin/packages/eem/package.py2
-rw-r--r--var/spack/repos/builtin/packages/efivar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/eigen/package.py10
-rw-r--r--var/spack/repos/builtin/packages/eigenexa/fj_compiler.patch64
-rw-r--r--var/spack/repos/builtin/packages/eigenexa/gcc_compiler.patch29
-rw-r--r--var/spack/repos/builtin/packages/eigenexa/package.py84
-rw-r--r--var/spack/repos/builtin/packages/eigenexa/test/result-check.sh36
-rw-r--r--var/spack/repos/builtin/packages/eigenexa/test/run-test.sh4
-rw-r--r--var/spack/repos/builtin/packages/elasticsearch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/elemental/package.py15
-rw-r--r--var/spack/repos/builtin/packages/elfio/package.py30
-rw-r--r--var/spack/repos/builtin/packages/elfutils/package.py14
-rw-r--r--var/spack/repos/builtin/packages/elk/package.py155
-rw-r--r--var/spack/repos/builtin/packages/elmerfem/package.py30
-rw-r--r--var/spack/repos/builtin/packages/elpa/package.py104
-rw-r--r--var/spack/repos/builtin/packages/elpa/python_shebang.patch8
-rw-r--r--var/spack/repos/builtin/packages/elsd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/elsdc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/elsi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/emacs/package.py20
-rw-r--r--var/spack/repos/builtin/packages/ember/package.py6
-rw-r--r--var/spack/repos/builtin/packages/emboss/package.py2
-rw-r--r--var/spack/repos/builtin/packages/embree/package.py60
-rw-r--r--var/spack/repos/builtin/packages/enca/package.py2
-rw-r--r--var/spack/repos/builtin/packages/enchant/package.py2
-rw-r--r--var/spack/repos/builtin/packages/energyplus/package.py5
-rw-r--r--var/spack/repos/builtin/packages/entrezdirect/package.py2
-rw-r--r--var/spack/repos/builtin/packages/entt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/environment-modules/package.py39
-rw-r--r--var/spack/repos/builtin/packages/enzo/for_aarch64.patch11
-rw-r--r--var/spack/repos/builtin/packages/enzo/package.py68
-rw-r--r--var/spack/repos/builtin/packages/enzyme/package.py69
-rw-r--r--var/spack/repos/builtin/packages/eospac/cpuinfo_comp_flags_key.patch23
-rw-r--r--var/spack/repos/builtin/packages/eospac/package.py25
-rw-r--r--var/spack/repos/builtin/packages/eq-r/package.py5
-rw-r--r--var/spack/repos/builtin/packages/er/package.py25
-rw-r--r--var/spack/repos/builtin/packages/erfa/package.py2
-rw-r--r--var/spack/repos/builtin/packages/erlang/package.py9
-rw-r--r--var/spack/repos/builtin/packages/ermod/package.py2
-rw-r--r--var/spack/repos/builtin/packages/erne/package.py2
-rw-r--r--var/spack/repos/builtin/packages/es-shell/package.py5
-rw-r--r--var/spack/repos/builtin/packages/esmf/package.py28
-rw-r--r--var/spack/repos/builtin/packages/espanso/package.py2
-rw-r--r--var/spack/repos/builtin/packages/essl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/etcd/package.py5
-rw-r--r--var/spack/repos/builtin/packages/ethminer/package.py10
-rw-r--r--var/spack/repos/builtin/packages/ethtool/package.py2
-rw-r--r--var/spack/repos/builtin/packages/etsf-io/package.py8
-rw-r--r--var/spack/repos/builtin/packages/evemu/package.py2
-rw-r--r--var/spack/repos/builtin/packages/everytrace-example/package.py2
-rw-r--r--var/spack/repos/builtin/packages/everytrace/package.py9
-rw-r--r--var/spack/repos/builtin/packages/evieext/package.py4
-rw-r--r--var/spack/repos/builtin/packages/evtgen/package.py67
-rw-r--r--var/spack/repos/builtin/packages/exa/package.py2
-rw-r--r--var/spack/repos/builtin/packages/exabayes/package.py7
-rwxr-xr-xvar/spack/repos/builtin/packages/exago/package.py89
-rw-r--r--var/spack/repos/builtin/packages/examinimd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/examl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/exampm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/exasp2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/exawind/package.py40
-rw-r--r--var/spack/repos/builtin/packages/exciting/dfgather.patch27
-rw-r--r--var/spack/repos/builtin/packages/exciting/for_aarch64.patch12
-rw-r--r--var/spack/repos/builtin/packages/exciting/package.py120
-rw-r--r--var/spack/repos/builtin/packages/exempi/package.py35
-rw-r--r--var/spack/repos/builtin/packages/exiv2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/exmcutils/package.py5
-rw-r--r--var/spack/repos/builtin/packages/exodusii/package.py22
-rw-r--r--var/spack/repos/builtin/packages/exonerate-gff3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/exonerate/package.py6
-rw-r--r--var/spack/repos/builtin/packages/expat/package.py26
-rw-r--r--var/spack/repos/builtin/packages/expect/package.py17
-rw-r--r--var/spack/repos/builtin/packages/expect/xcode_12.patch282
-rw-r--r--var/spack/repos/builtin/packages/express/package.py7
-rw-r--r--var/spack/repos/builtin/packages/extrae/package.py34
-rw-r--r--var/spack/repos/builtin/packages/exuberant-ctags/package.py2
-rw-r--r--var/spack/repos/builtin/packages/eztrace/package.py4
-rw-r--r--var/spack/repos/builtin/packages/f2c/package.py8
-rw-r--r--var/spack/repos/builtin/packages/f77-zmq/package.py5
-rw-r--r--var/spack/repos/builtin/packages/f90cache/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fabtests/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fairlogger/package.py5
-rw-r--r--var/spack/repos/builtin/packages/faiss/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fakechroot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fakexrandr/package.py46
-rw-r--r--var/spack/repos/builtin/packages/falcon/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fann/package.py4
-rw-r--r--var/spack/repos/builtin/packages/faodel/package.py44
-rw-r--r--var/spack/repos/builtin/packages/fasd/package.py21
-rw-r--r--var/spack/repos/builtin/packages/fast-global-file-status/package.py12
-rw-r--r--var/spack/repos/builtin/packages/fasta/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fastdb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fastdfs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fastjar/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fastjet/atlas.patch22
-rw-r--r--var/spack/repos/builtin/packages/fastjet/package.py7
-rw-r--r--var/spack/repos/builtin/packages/fastjson/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fastmath/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fastme/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fastp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fastphase/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fastq-screen/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fastqc/package.py6
-rw-r--r--var/spack/repos/builtin/packages/fastqvalidator/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fasttext/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fasttransforms/package.py3
-rw-r--r--var/spack/repos/builtin/packages/fasttree/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fastx-toolkit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/faust/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fbgemm/package.py46
-rw-r--r--var/spack/repos/builtin/packages/fca/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fcgi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fd-find/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fdb/metkit_1.7.0.patch11
-rw-r--r--var/spack/repos/builtin/packages/fdb/package.py73
-rw-r--r--var/spack/repos/builtin/packages/fdupes/package.py3
-rw-r--r--var/spack/repos/builtin/packages/feh/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fenics-basix/package.py25
-rw-r--r--var/spack/repos/builtin/packages/fenics-dolfinx/package.py29
-rw-r--r--var/spack/repos/builtin/packages/fenics/header_fix.patch36
-rw-r--r--var/spack/repos/builtin/packages/fenics/package.py232
-rw-r--r--var/spack/repos/builtin/packages/fenics/petsc_3_11.patch31
-rw-r--r--var/spack/repos/builtin/packages/feq-parse/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fermi/ksw_for_aarch64.patch2
-rw-r--r--var/spack/repos/builtin/packages/fermi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fermikit/ksw_for_aarch64.patch8
-rw-r--r--var/spack/repos/builtin/packages/fermikit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fermisciencetools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ferret/package.py7
-rw-r--r--var/spack/repos/builtin/packages/ffb/package.py15
-rw-r--r--var/spack/repos/builtin/packages/ffmpeg/package.py8
-rw-r--r--var/spack/repos/builtin/packages/ffr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ffsb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fftw/package.py38
-rw-r--r--var/spack/repos/builtin/packages/fftw/pfft-3.3.9.patch858
-rw-r--r--var/spack/repos/builtin/packages/fgsl/package.py3
-rw-r--r--var/spack/repos/builtin/packages/fides/package.py40
-rw-r--r--var/spack/repos/builtin/packages/figlet/package.py6
-rw-r--r--var/spack/repos/builtin/packages/figtree/package.py5
-rw-r--r--var/spack/repos/builtin/packages/file/package.py18
-rw-r--r--var/spack/repos/builtin/packages/filebench/package.py2
-rw-r--r--var/spack/repos/builtin/packages/filo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/filtlong/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fimpute/package.py2
-rw-r--r--var/spack/repos/builtin/packages/find-circ/package.py2
-rw-r--r--var/spack/repos/builtin/packages/findbugs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/findutils/nvhpc-long-width.patch17
-rw-r--r--var/spack/repos/builtin/packages/findutils/package.py55
-rw-r--r--var/spack/repos/builtin/packages/fio/package.py6
-rw-r--r--var/spack/repos/builtin/packages/fipscheck/package.py3
-rw-r--r--var/spack/repos/builtin/packages/fish/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fixesproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fj/package.py3
-rw-r--r--var/spack/repos/builtin/packages/fjcontrib/package.py7
-rw-r--r--var/spack/repos/builtin/packages/fl/package.py5
-rw-r--r--var/spack/repos/builtin/packages/flac/package.py3
-rw-r--r--var/spack/repos/builtin/packages/flann/package.py4
-rw-r--r--var/spack/repos/builtin/packages/flap/package.py25
-rw-r--r--var/spack/repos/builtin/packages/flash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/flashdimmsim/package.py30
-rw-r--r--var/spack/repos/builtin/packages/flatbuffers/package.py37
-rw-r--r--var/spack/repos/builtin/packages/flatcc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/flcl/package.py5
-rw-r--r--var/spack/repos/builtin/packages/flecsale/package.py2
-rw-r--r--var/spack/repos/builtin/packages/flecsi/package.py190
-rw-r--r--var/spack/repos/builtin/packages/flecsph/package.py6
-rw-r--r--var/spack/repos/builtin/packages/flex/package.py20
-rw-r--r--var/spack/repos/builtin/packages/flexi/for_aarch64.patch9
-rw-r--r--var/spack/repos/builtin/packages/flexi/package.py95
-rw-r--r--var/spack/repos/builtin/packages/flexiblas/package.py3
-rw-r--r--var/spack/repos/builtin/packages/flibcpp/package.py55
-rw-r--r--var/spack/repos/builtin/packages/flink/package.py4
-rw-r--r--var/spack/repos/builtin/packages/flint/package.py6
-rw-r--r--var/spack/repos/builtin/packages/flit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fltk/package.py15
-rw-r--r--var/spack/repos/builtin/packages/flume/package.py2
-rw-r--r--var/spack/repos/builtin/packages/flux-core/package.py77
-rw-r--r--var/spack/repos/builtin/packages/flux-sched/package.py37
-rw-r--r--var/spack/repos/builtin/packages/fluxbox/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fmt/package.py14
-rw-r--r--var/spack/repos/builtin/packages/foam-extend/package.py17
-rw-r--r--var/spack/repos/builtin/packages/folly/package.py40
-rw-r--r--var/spack/repos/builtin/packages/font-util/package.py14
-rw-r--r--var/spack/repos/builtin/packages/fontcacheproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fontconfig/package.py15
-rw-r--r--var/spack/repos/builtin/packages/fontsproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fonttosfnt/package.py6
-rw-r--r--var/spack/repos/builtin/packages/form/package.py24
-rw-r--r--var/spack/repos/builtin/packages/formetis/package.py81
-rw-r--r--var/spack/repos/builtin/packages/fortran/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fortrilinos/package.py63
-rw-r--r--var/spack/repos/builtin/packages/foundationdb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fox/package.py3
-rw-r--r--var/spack/repos/builtin/packages/fp16/package.py48
-rw-r--r--var/spack/repos/builtin/packages/fpc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fpchecker/package.py28
-rw-r--r--var/spack/repos/builtin/packages/fping/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fplll/package.py33
-rw-r--r--var/spack/repos/builtin/packages/fpm/package.py56
-rw-r--r--var/spack/repos/builtin/packages/fpocket/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fqtrim/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fr-hit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fraggenescan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/freebayes/package.py32
-rw-r--r--var/spack/repos/builtin/packages/freefem/acmpi.patch11
-rw-r--r--var/spack/repos/builtin/packages/freefem/acmpi4.8.patch11
-rw-r--r--var/spack/repos/builtin/packages/freefem/package.py64
-rw-r--r--var/spack/repos/builtin/packages/freeglut/common-gcc10.patch11
-rw-r--r--var/spack/repos/builtin/packages/freeglut/package.py27
-rw-r--r--var/spack/repos/builtin/packages/freeimage/package.py2
-rw-r--r--var/spack/repos/builtin/packages/freeipmi/package.py9
-rw-r--r--var/spack/repos/builtin/packages/freetype/package.py7
-rw-r--r--var/spack/repos/builtin/packages/freexl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fribidi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/frontier-client/frontier-client.patch13
-rw-r--r--var/spack/repos/builtin/packages/frontier-client/package.py38
-rw-r--r--var/spack/repos/builtin/packages/frontistr/package.py5
-rw-r--r--var/spack/repos/builtin/packages/fseq/package.py4
-rw-r--r--var/spack/repos/builtin/packages/fsl/build_log.patch11
-rw-r--r--var/spack/repos/builtin/packages/fsl/eddy_Makefile.patch11
-rw-r--r--var/spack/repos/builtin/packages/fsl/fsl_sub_v5.patch66
-rw-r--r--var/spack/repos/builtin/packages/fsl/fsl_sub_v6.patch86
-rw-r--r--var/spack/repos/builtin/packages/fsl/fslpython_install_v5.patch18
-rw-r--r--var/spack/repos/builtin/packages/fsl/fslpython_install_v6.patch39
-rw-r--r--var/spack/repos/builtin/packages/fsl/iconv.patch28
-rw-r--r--var/spack/repos/builtin/packages/fsl/package.py189
-rw-r--r--var/spack/repos/builtin/packages/fslsfonts/package.py6
-rw-r--r--var/spack/repos/builtin/packages/fstobdf/package.py6
-rw-r--r--var/spack/repos/builtin/packages/fstrack/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ftgl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ftk/package.py62
-rw-r--r--var/spack/repos/builtin/packages/ftobjectlibrary/package.py19
-rw-r--r--var/spack/repos/builtin/packages/fujitsu-fftw/package.py113
-rw-r--r--var/spack/repos/builtin/packages/fujitsu-mpi/package.py5
-rw-r--r--var/spack/repos/builtin/packages/fujitsu-ssl2/package.py27
-rw-r--r--var/spack/repos/builtin/packages/fullock/package.py31
-rw-r--r--var/spack/repos/builtin/packages/funhpc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fuse-overlayfs/package.py8
-rw-r--r--var/spack/repos/builtin/packages/fxdiv/package.py47
-rw-r--r--var/spack/repos/builtin/packages/fyba/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fzf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g2/package.py22
-rw-r--r--var/spack/repos/builtin/packages/g2o/package.py44
-rw-r--r--var/spack/repos/builtin/packages/g2tmpl/package.py17
-rw-r--r--var/spack/repos/builtin/packages/g4abla/package.py8
-rw-r--r--var/spack/repos/builtin/packages/g4emlow/package.py11
-rw-r--r--var/spack/repos/builtin/packages/g4ensdfstate/package.py9
-rw-r--r--var/spack/repos/builtin/packages/g4incl/package.py10
-rw-r--r--var/spack/repos/builtin/packages/g4ndl/package.py8
-rw-r--r--var/spack/repos/builtin/packages/g4neutronxs/package.py8
-rw-r--r--var/spack/repos/builtin/packages/g4particlexs/package.py12
-rw-r--r--var/spack/repos/builtin/packages/g4photonevaporation/package.py9
-rw-r--r--var/spack/repos/builtin/packages/g4pii/package.py10
-rw-r--r--var/spack/repos/builtin/packages/g4radioactivedecay/package.py9
-rw-r--r--var/spack/repos/builtin/packages/g4realsurface/package.py9
-rw-r--r--var/spack/repos/builtin/packages/g4saiddata/package.py8
-rw-r--r--var/spack/repos/builtin/packages/g4tendl/package.py8
-rw-r--r--var/spack/repos/builtin/packages/gamess-ri-mp2-miniapp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gams/package.py5
-rw-r--r--var/spack/repos/builtin/packages/ganglia/package.py4
-rw-r--r--var/spack/repos/builtin/packages/gapbs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gapcloser/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gapfiller/package.py9
-rw-r--r--var/spack/repos/builtin/packages/garfieldpp/package.py25
-rw-r--r--var/spack/repos/builtin/packages/gasnet/package.py225
-rw-r--r--var/spack/repos/builtin/packages/gate/package.py14
-rw-r--r--var/spack/repos/builtin/packages/gatepet2stir/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gatetools/package.py36
-rw-r--r--var/spack/repos/builtin/packages/gatk/package.py111
-rw-r--r--var/spack/repos/builtin/packages/gaudi/package.py14
-rw-r--r--var/spack/repos/builtin/packages/gaussian-src/package.py10
-rw-r--r--var/spack/repos/builtin/packages/gaussian-view/package.py29
-rw-r--r--var/spack/repos/builtin/packages/gaussian/package.py5
-rw-r--r--var/spack/repos/builtin/packages/gawk/package.py16
-rw-r--r--var/spack/repos/builtin/packages/gblocks/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gcc/package.py153
-rw-r--r--var/spack/repos/builtin/packages/gccmakedep/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gccxml/package.py4
-rw-r--r--var/spack/repos/builtin/packages/gchp/for_aarch64.patch24
-rw-r--r--var/spack/repos/builtin/packages/gchp/package.py64
-rw-r--r--var/spack/repos/builtin/packages/gconf/package.py12
-rw-r--r--var/spack/repos/builtin/packages/gcta/package.py4
-rw-r--r--var/spack/repos/builtin/packages/gdal/package.py78
-rw-r--r--var/spack/repos/builtin/packages/gdb/gdb-libintl-10.patch12
-rw-r--r--var/spack/repos/builtin/packages/gdb/gdb-libintl-11.patch12
-rw-r--r--var/spack/repos/builtin/packages/gdb/importlib.patch18
-rw-r--r--var/spack/repos/builtin/packages/gdb/package.py62
-rw-r--r--var/spack/repos/builtin/packages/gdbm/macOS.patch14
-rw-r--r--var/spack/repos/builtin/packages/gdbm/package.py29
-rw-r--r--var/spack/repos/builtin/packages/gdk-pixbuf/package.py23
-rw-r--r--var/spack/repos/builtin/packages/gdl/package.py5
-rw-r--r--var/spack/repos/builtin/packages/gdrcopy/package.py19
-rw-r--r--var/spack/repos/builtin/packages/geant4-data/package.py26
-rw-r--r--var/spack/repos/builtin/packages/geant4-vmc/package.py11
-rw-r--r--var/spack/repos/builtin/packages/geant4/package.py29
-rw-r--r--var/spack/repos/builtin/packages/gearshifft/gearshifft-v0.4.0-cmake-variable-name.patch26
-rw-r--r--var/spack/repos/builtin/packages/gearshifft/package.py41
-rw-r--r--var/spack/repos/builtin/packages/gemmlowp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/genemark-et/package.py21
-rw-r--r--var/spack/repos/builtin/packages/genesis/fj_compiler.patch342
-rw-r--r--var/spack/repos/builtin/packages/genesis/fj_compiler_1.5.1.patch286
-rw-r--r--var/spack/repos/builtin/packages/genesis/package.py141
-rw-r--r--var/spack/repos/builtin/packages/genfit/package.py41
-rw-r--r--var/spack/repos/builtin/packages/gengeo/package.py45
-rw-r--r--var/spack/repos/builtin/packages/gengetopt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/genie/genie_disable_gopt_with_compiler_check.patch26
-rw-r--r--var/spack/repos/builtin/packages/genie/package.py168
-rw-r--r--var/spack/repos/builtin/packages/genomefinisher/package.py5
-rw-r--r--var/spack/repos/builtin/packages/genometools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/genomeworks/package.py2
-rw-r--r--var/spack/repos/builtin/packages/genrich/package.py2
-rw-r--r--var/spack/repos/builtin/packages/geode/package.py2
-rw-r--r--var/spack/repos/builtin/packages/geoip-api-c/package.py2
-rw-r--r--var/spack/repos/builtin/packages/geoip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/geopm/package.py7
-rw-r--r--var/spack/repos/builtin/packages/geos/geos_python3_config.patch67
-rw-r--r--var/spack/repos/builtin/packages/geos/package.py44
-rw-r--r--var/spack/repos/builtin/packages/gettext/package.py6
-rw-r--r--var/spack/repos/builtin/packages/gflags/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gfsio/package.py20
-rw-r--r--var/spack/repos/builtin/packages/ghost/package.py19
-rw-r--r--var/spack/repos/builtin/packages/ghostscript-fonts/package.py7
-rw-r--r--var/spack/repos/builtin/packages/ghostscript/package.py36
-rw-r--r--var/spack/repos/builtin/packages/giblib/package.py20
-rw-r--r--var/spack/repos/builtin/packages/giflib/package.py40
-rw-r--r--var/spack/repos/builtin/packages/ginac/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ginkgo/1.4.0_skip_invalid_smoke_tests.patch95
-rw-r--r--var/spack/repos/builtin/packages/ginkgo/package.py111
-rw-r--r--var/spack/repos/builtin/packages/giraph/package.py2
-rw-r--r--var/spack/repos/builtin/packages/git-annex/package.py79
-rw-r--r--var/spack/repos/builtin/packages/git-fat-git/package.py2
-rw-r--r--var/spack/repos/builtin/packages/git-imerge/package.py2
-rw-r--r--var/spack/repos/builtin/packages/git-lfs/package.py3
-rw-r--r--var/spack/repos/builtin/packages/git/package.py97
-rw-r--r--var/spack/repos/builtin/packages/gitconddb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gl2ps/package.py10
-rw-r--r--var/spack/repos/builtin/packages/glew/package.py2
-rw-r--r--var/spack/repos/builtin/packages/glfmultiples/package.py2
-rw-r--r--var/spack/repos/builtin/packages/glfw/package.py29
-rw-r--r--var/spack/repos/builtin/packages/glib-networking/package.py2
-rw-r--r--var/spack/repos/builtin/packages/glib/package.py37
-rw-r--r--var/spack/repos/builtin/packages/glibmm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/glimmer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/glm/package.py23
-rw-r--r--var/spack/repos/builtin/packages/global/package.py11
-rw-r--r--var/spack/repos/builtin/packages/globalarrays/package.py61
-rw-r--r--var/spack/repos/builtin/packages/glog/package.py8
-rw-r--r--var/spack/repos/builtin/packages/gloo/package.py24
-rw-r--r--var/spack/repos/builtin/packages/glpk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/glproto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/glusterfs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/glvis/package.py111
-rw-r--r--var/spack/repos/builtin/packages/gmake/package.py5
-rw-r--r--var/spack/repos/builtin/packages/gmap-gsnap/package.py3
-rw-r--r--var/spack/repos/builtin/packages/gmime/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gmodel/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gmp/package.py3
-rw-r--r--var/spack/repos/builtin/packages/gmsh/package.py181
-rw-r--r--var/spack/repos/builtin/packages/gmt/package.py6
-rw-r--r--var/spack/repos/builtin/packages/gmtsar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gnat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gnome-common/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gnuconfig/package.py28
-rw-r--r--var/spack/repos/builtin/packages/gnupg/package.py22
-rw-r--r--var/spack/repos/builtin/packages/gnuplot/package.py5
-rw-r--r--var/spack/repos/builtin/packages/gnuradio/package.py28
-rw-r--r--var/spack/repos/builtin/packages/gnutls/package.py6
-rw-r--r--var/spack/repos/builtin/packages/go-bootstrap/package.py29
-rw-r--r--var/spack/repos/builtin/packages/go-md2man/package.py2
-rw-r--r--var/spack/repos/builtin/packages/go/package.py124
-rw-r--r--var/spack/repos/builtin/packages/gobject-introspection/package.py14
-rw-r--r--var/spack/repos/builtin/packages/goblin-hmc-sim/package.py2
-rw-r--r--var/spack/repos/builtin/packages/googletest/package.py10
-rw-r--r--var/spack/repos/builtin/packages/gosam-contrib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/gotcha/package.py9
-rw-r--r--var/spack/repos/builtin/packages/gource/package.py4
-rw-r--r--var/spack/repos/builtin/packages/gpdb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gperf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gperftools/package.py5
-rw-r--r--var/spack/repos/builtin/packages/gpgme/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gpi-2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gplates/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gprolog/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gptl/package.py47
-rw-r--r--var/spack/repos/builtin/packages/gpu-burn/Makefile.patch18
-rw-r--r--var/spack/repos/builtin/packages/gpu-burn/package.py45
-rw-r--r--var/spack/repos/builtin/packages/gqrx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gr-osmosdr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/grabix/package.py30
-rw-r--r--var/spack/repos/builtin/packages/grace/package.py54
-rw-r--r--var/spack/repos/builtin/packages/grackle/package.py4
-rw-r--r--var/spack/repos/builtin/packages/gradle/package.py41
-rw-r--r--var/spack/repos/builtin/packages/grads/package.py2
-rw-r--r--var/spack/repos/builtin/packages/grafana/package.py2
-rw-r--r--var/spack/repos/builtin/packages/grandr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/graph500/package.py2
-rw-r--r--var/spack/repos/builtin/packages/graphblast/package.py2
-rw-r--r--var/spack/repos/builtin/packages/graphicsmagick/package.py2
-rw-r--r--var/spack/repos/builtin/packages/graphite2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/graphlib/package.py3
-rw-r--r--var/spack/repos/builtin/packages/graphmap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/graphviz/package.py68
-rw-r--r--var/spack/repos/builtin/packages/grass/package.py9
-rw-r--r--var/spack/repos/builtin/packages/graylog2-server/package.py2
-rw-r--r--var/spack/repos/builtin/packages/grep/package.py2
-rw-r--r--var/spack/repos/builtin/packages/grib-api/package.py16
-rw-r--r--var/spack/repos/builtin/packages/gridlab-d/package.py3
-rw-r--r--var/spack/repos/builtin/packages/grnboost/package.py2
-rw-r--r--var/spack/repos/builtin/packages/groff/BuildFoundries.patch11
-rw-r--r--var/spack/repos/builtin/packages/groff/gropdf.patch13
-rw-r--r--var/spack/repos/builtin/packages/groff/package.py58
-rw-r--r--var/spack/repos/builtin/packages/groff/pdfmom.patch11
-rw-r--r--var/spack/repos/builtin/packages/gromacs/package.py247
-rw-r--r--var/spack/repos/builtin/packages/grpc/package.py17
-rw-r--r--var/spack/repos/builtin/packages/gsettings-desktop-schemas/package.py14
-rw-r--r--var/spack/repos/builtin/packages/gsl/gsl-2.6-cblas.patch323
-rw-r--r--var/spack/repos/builtin/packages/gsl/package.py12
-rw-r--r--var/spack/repos/builtin/packages/gslib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gtk-doc/build.patch25
-rw-r--r--var/spack/repos/builtin/packages/gtk-doc/package.py30
-rw-r--r--var/spack/repos/builtin/packages/gtkmm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gtkorvo-atl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gtkorvo-dill/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gtkorvo-enet/package.py6
-rw-r--r--var/spack/repos/builtin/packages/gtkplus/package.py107
-rw-r--r--var/spack/repos/builtin/packages/gtksourceview/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gts/package.py2
-rw-r--r--var/spack/repos/builtin/packages/guacamole-client/package.py2
-rw-r--r--var/spack/repos/builtin/packages/guacamole-server/package.py4
-rw-r--r--var/spack/repos/builtin/packages/guidance/package.py5
-rw-r--r--var/spack/repos/builtin/packages/guile/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gunrock/package.py30
-rw-r--r--var/spack/repos/builtin/packages/gurobi/package.py44
-rw-r--r--var/spack/repos/builtin/packages/gxsview/package.py46
-rw-r--r--var/spack/repos/builtin/packages/gzip/package.py3
-rw-r--r--var/spack/repos/builtin/packages/h2database/package.py2
-rw-r--r--var/spack/repos/builtin/packages/h5bench/package.py29
-rw-r--r--var/spack/repos/builtin/packages/h5cpp/package.py12
-rw-r--r--var/spack/repos/builtin/packages/h5hut/package.py4
-rw-r--r--var/spack/repos/builtin/packages/h5part/package.py4
-rw-r--r--var/spack/repos/builtin/packages/h5utils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/h5z-zfp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/hacckernels/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hackrf-host/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hadoop/package.py7
-rw-r--r--var/spack/repos/builtin/packages/hal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/halc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/half/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hama/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hapcut2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hapdip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/haploview/package.py7
-rw-r--r--var/spack/repos/builtin/packages/haproxy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hardlink/package.py2
-rw-r--r--var/spack/repos/builtin/packages/harfbuzz/package.py17
-rw-r--r--var/spack/repos/builtin/packages/harminv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hashcat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/haveged/package.py15
-rw-r--r--var/spack/repos/builtin/packages/hazelcast/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hbase/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hbm-dramsim2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hcol/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hcoll/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hdf-eos2/hdf-eos2.nondarwin-no-single_module.patch27
-rw-r--r--var/spack/repos/builtin/packages/hdf-eos2/package.py100
-rw-r--r--var/spack/repos/builtin/packages/hdf-eos5/hdf-eos5.nondarwin-no-single_module.patch28
-rw-r--r--var/spack/repos/builtin/packages/hdf-eos5/package.py105
-rw-r--r--var/spack/repos/builtin/packages/hdf/package.py26
-rw-r--r--var/spack/repos/builtin/packages/hdf5-blosc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hdf5/hdf5_1.8_gcc10.patch12
-rw-r--r--var/spack/repos/builtin/packages/hdf5/package.py358
-rw-r--r--var/spack/repos/builtin/packages/hdfview/package.py5
-rw-r--r--var/spack/repos/builtin/packages/healpix-cxx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/heaptrack/package.py4
-rw-r--r--var/spack/repos/builtin/packages/heffte/package.py99
-rw-r--r--var/spack/repos/builtin/packages/helics/package.py41
-rw-r--r--var/spack/repos/builtin/packages/help2man/package.py4
-rw-r--r--var/spack/repos/builtin/packages/henson/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hepmc/package.py11
-rw-r--r--var/spack/repos/builtin/packages/hepmc3/package.py9
-rw-r--r--var/spack/repos/builtin/packages/hepmcanalysis/package.py4
-rw-r--r--var/spack/repos/builtin/packages/heppdt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/heputils/package.py4
-rw-r--r--var/spack/repos/builtin/packages/hercules/package.py2
-rw-r--r--var/spack/repos/builtin/packages/herwig3/package.py7
-rw-r--r--var/spack/repos/builtin/packages/herwigpp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/hevea/package.py29
-rw-r--r--var/spack/repos/builtin/packages/hibench/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hic-pro/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hicolor-icon-theme/package.py26
-rw-r--r--var/spack/repos/builtin/packages/highfive/package.py2
-rw-r--r--var/spack/repos/builtin/packages/highwayhash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hiop/package.py121
-rw-r--r--var/spack/repos/builtin/packages/hip-rocclr/package.py76
-rw-r--r--var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host.4.2.0.patch47
-rw-r--r--var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.3.10.0.patch56
-rw-r--r--var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.3.7.0.patch56
-rw-r--r--var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.4.1.0.patch44
-rw-r--r--var/spack/repos/builtin/packages/hip/0004-Drop-clang-rt-builtins-linking-on-hip-host.3.10.0.patch32
-rw-r--r--var/spack/repos/builtin/packages/hip/0004-Drop-clang-rt-builtins-linking-on-hip-host.3.7.0.patch35
-rw-r--r--var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.5.0.patch53
-rw-r--r--var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.6.0.patch65
-rw-r--r--var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.9.0.patch68
-rw-r--r--var/spack/repos/builtin/packages/hip/0005-Disable-tests-4.1.0.patch42
-rw-r--r--var/spack/repos/builtin/packages/hip/Add_missing_open_cl_header_file_for_4.3.0.patch125
-rw-r--r--var/spack/repos/builtin/packages/hip/package.py259
-rw-r--r--var/spack/repos/builtin/packages/hipace/package.py70
-rw-r--r--var/spack/repos/builtin/packages/hipblas/package.py38
-rw-r--r--var/spack/repos/builtin/packages/hipcub/package.py30
-rw-r--r--var/spack/repos/builtin/packages/hipfft/package.py50
-rw-r--r--var/spack/repos/builtin/packages/hipfort/package.py24
-rw-r--r--var/spack/repos/builtin/packages/hipify-clang/package.py15
-rw-r--r--var/spack/repos/builtin/packages/hipsparse/package.py40
-rw-r--r--var/spack/repos/builtin/packages/hipsycl/package.py20
-rw-r--r--var/spack/repos/builtin/packages/hiredis/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hisat2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hisea/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hive/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hivex/package.py19
-rw-r--r--var/spack/repos/builtin/packages/hmmer/package.py5
-rw-r--r--var/spack/repos/builtin/packages/hohqmesh/package.py23
-rw-r--r--var/spack/repos/builtin/packages/homer/package.py5
-rw-r--r--var/spack/repos/builtin/packages/hoomd-blue/package.py7
-rw-r--r--var/spack/repos/builtin/packages/hotspot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hpcc/package.py11
-rw-r--r--var/spack/repos/builtin/packages/hpccg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/hpcg/package.py13
-rw-r--r--var/spack/repos/builtin/packages/hpctoolkit/gcc10-enum.patch15
-rw-r--r--var/spack/repos/builtin/packages/hpctoolkit/package.py84
-rw-r--r--var/spack/repos/builtin/packages/hpcviewer/package.py51
-rw-r--r--var/spack/repos/builtin/packages/hpcx-mpi/package.py43
-rw-r--r--var/spack/repos/builtin/packages/hpddm/package.py75
-rw-r--r--var/spack/repos/builtin/packages/hpgmg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hping/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hpl/package.py10
-rw-r--r--var/spack/repos/builtin/packages/hpx/package.py128
-rw-r--r--var/spack/repos/builtin/packages/hpx5/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hsa-rocr-dev/package.py52
-rw-r--r--var/spack/repos/builtin/packages/hsakmt-roct/package.py18
-rw-r--r--var/spack/repos/builtin/packages/hsakmt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hsf-cmaketools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hssp/package.py22
-rw-r--r--var/spack/repos/builtin/packages/hstr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/htop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/htslib/package.py6
-rw-r--r--var/spack/repos/builtin/packages/http-get/package.py13
-rw-r--r--var/spack/repos/builtin/packages/http-load/package.py13
-rw-r--r--var/spack/repos/builtin/packages/http-parser/package.py2
-rw-r--r--var/spack/repos/builtin/packages/http-ping/package.py13
-rw-r--r--var/spack/repos/builtin/packages/http-post/package.py13
-rw-r--r--var/spack/repos/builtin/packages/httpd/package.py6
-rw-r--r--var/spack/repos/builtin/packages/httperf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/httpie/package.py13
-rw-r--r--var/spack/repos/builtin/packages/httping/package.py4
-rw-r--r--var/spack/repos/builtin/packages/httpress/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hub/package.py5
-rw-r--r--var/spack/repos/builtin/packages/hudi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hugo/package.py3
-rw-r--r--var/spack/repos/builtin/packages/hunspell/package.py4
-rw-r--r--var/spack/repos/builtin/packages/hw-probe/package.py20
-rw-r--r--var/spack/repos/builtin/packages/hwdata/package.py16
-rw-r--r--var/spack/repos/builtin/packages/hwloc/0001-Try-linking-to-libtinfo.patch25
-rw-r--r--var/spack/repos/builtin/packages/hwloc/package.py50
-rw-r--r--var/spack/repos/builtin/packages/hybpiper/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hybrid-lambda/package.py39
-rw-r--r--var/spack/repos/builtin/packages/hybridsim/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hydra/package.py8
-rw-r--r--var/spack/repos/builtin/packages/hydrogen/package.py65
-rw-r--r--var/spack/repos/builtin/packages/hyperscan/package.py5
-rw-r--r--var/spack/repos/builtin/packages/hyphen/package.py22
-rw-r--r--var/spack/repos/builtin/packages/hyphy/package.py6
-rw-r--r--var/spack/repos/builtin/packages/hypre/package.py89
-rw-r--r--var/spack/repos/builtin/packages/i3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ibm-databroker/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ibm-java/package.py9
-rw-r--r--var/spack/repos/builtin/packages/ibmisc/package.py18
-rw-r--r--var/spack/repos/builtin/packages/icarus/package.py2
-rw-r--r--var/spack/repos/builtin/packages/iceauth/package.py6
-rw-r--r--var/spack/repos/builtin/packages/icedtea/package.py29
-rw-r--r--var/spack/repos/builtin/packages/icet/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ico/package.py6
-rw-r--r--var/spack/repos/builtin/packages/icu4c/package.py2
-rw-r--r--var/spack/repos/builtin/packages/id3lib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/idba/package.py4
-rw-r--r--var/spack/repos/builtin/packages/idl/package.py5
-rw-r--r--var/spack/repos/builtin/packages/iegenlib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ignite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/igprof/igprof-5.9.16.patch131
-rw-r--r--var/spack/repos/builtin/packages/igprof/package.py34
-rw-r--r--var/spack/repos/builtin/packages/igraph/package.py4
-rw-r--r--var/spack/repos/builtin/packages/igv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/igvtools/package.py7
-rw-r--r--var/spack/repos/builtin/packages/ike-scan/package.py15
-rw-r--r--var/spack/repos/builtin/packages/ilmbase/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ima-evm-utils/package.py23
-rw-r--r--var/spack/repos/builtin/packages/imagemagick/package.py10
-rw-r--r--var/spack/repos/builtin/packages/imake/package.py11
-rw-r--r--var/spack/repos/builtin/packages/imlib2/package.py7
-rw-r--r--var/spack/repos/builtin/packages/imp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/impute2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/infernal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/influxdb/package.py5
-rw-r--r--var/spack/repos/builtin/packages/iniparser/package.py2
-rw-r--r--var/spack/repos/builtin/packages/inputproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/intel-daal/package.py28
-rw-r--r--var/spack/repos/builtin/packages/intel-gpu-tools/package.py5
-rw-r--r--var/spack/repos/builtin/packages/intel-ipp/package.py28
-rw-r--r--var/spack/repos/builtin/packages/intel-llvm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/intel-mkl/package.py34
-rw-r--r--var/spack/repos/builtin/packages/intel-mpi-benchmarks/add_const.patch13
-rw-r--r--var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py7
-rw-r--r--var/spack/repos/builtin/packages/intel-mpi-benchmarks/reorder_benchmark_macros.patch108
-rw-r--r--var/spack/repos/builtin/packages/intel-mpi/package.py32
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py33
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py125
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-dal/package.py37
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py44
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py37
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py31
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py32
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py62
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py94
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py50
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py27
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py29
-rw-r--r--var/spack/repos/builtin/packages/intel-parallel-studio/package.py95
-rw-r--r--var/spack/repos/builtin/packages/intel-pin/package.py5
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2017.patch41
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.1.patch41
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.7.patch41
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.9.patch43
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.patch41
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-version-script-fix.2017.patch14
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/macos-arm64.patch32
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/package.py91
-rw-r--r--var/spack/repos/builtin/packages/intel-xed/1201-segv.patch18
-rw-r--r--var/spack/repos/builtin/packages/intel-xed/package.py72
-rw-r--r--var/spack/repos/builtin/packages/intel/package.py35
-rw-r--r--var/spack/repos/builtin/packages/interproscan/package.py4
-rw-r--r--var/spack/repos/builtin/packages/intltool/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ioapi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ior/package.py7
-rw-r--r--var/spack/repos/builtin/packages/iozone/package.py14
-rw-r--r--var/spack/repos/builtin/packages/ip/package.py21
-rw-r--r--var/spack/repos/builtin/packages/ip2/package.py24
-rw-r--r--var/spack/repos/builtin/packages/ipcalc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/iperf2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/iperf3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ipopt/package.py78
-rw-r--r--var/spack/repos/builtin/packages/iproute2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/iptraf-ng/package.py22
-rw-r--r--var/spack/repos/builtin/packages/iq-tree/package.py11
-rw-r--r--var/spack/repos/builtin/packages/irep/package.py18
-rw-r--r--var/spack/repos/builtin/packages/isaac-server/package.py9
-rw-r--r--var/spack/repos/builtin/packages/isaac/package.py6
-rw-r--r--var/spack/repos/builtin/packages/isc-dhcp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/isescan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/isl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/iso-codes/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ispc/package.py26
-rw-r--r--var/spack/repos/builtin/packages/istio/package.py5
-rw-r--r--var/spack/repos/builtin/packages/itensor/package.py133
-rw-r--r--var/spack/repos/builtin/packages/itk/package.py3
-rw-r--r--var/spack/repos/builtin/packages/itstool/package.py2
-rw-r--r--var/spack/repos/builtin/packages/itsx/package.py6
-rw-r--r--var/spack/repos/builtin/packages/iwyu/package.py13
-rw-r--r--var/spack/repos/builtin/packages/jackcess/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jafka/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jags/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jali/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jansi-native/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jansi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/jansson/package.py7
-rw-r--r--var/spack/repos/builtin/packages/jasper/package.py10
-rw-r--r--var/spack/repos/builtin/packages/jbigkit/package.py12
-rw-r--r--var/spack/repos/builtin/packages/jblob/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jchronoss/package.py6
-rw-r--r--var/spack/repos/builtin/packages/jdk/package.py5
-rw-r--r--var/spack/repos/builtin/packages/jellyfish/package.py8
-rw-r--r--var/spack/repos/builtin/packages/jemalloc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/jetty-project/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jhpcn-df/package.py4
-rw-r--r--var/spack/repos/builtin/packages/jimtcl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jline3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jmol/package.py5
-rw-r--r--var/spack/repos/builtin/packages/jose/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jpegoptim/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jq/package.py5
-rw-r--r--var/spack/repos/builtin/packages/json-c/package.py35
-rw-r--r--var/spack/repos/builtin/packages/json-cwx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/json-fortran/package.py5
-rw-r--r--var/spack/repos/builtin/packages/json-glib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jsoncpp/package.py3
-rw-r--r--var/spack/repos/builtin/packages/jstorm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jube/package.py2
-rw-r--r--var/spack/repos/builtin/packages/judy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/julea/package.py2
-rw-r--r--var/spack/repos/builtin/packages/julia/package.py14
-rw-r--r--var/spack/repos/builtin/packages/junit4/package.py2
-rw-r--r--var/spack/repos/builtin/packages/k8/package.py5
-rw-r--r--var/spack/repos/builtin/packages/kadath/package.py88
-rw-r--r--var/spack/repos/builtin/packages/kafka/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kahip/package.py8
-rw-r--r--var/spack/repos/builtin/packages/kaiju/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kaks-calculator/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kaldi/package.py11
-rw-r--r--var/spack/repos/builtin/packages/kallisto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/karma/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kassiopeia/package.py33
-rw-r--r--var/spack/repos/builtin/packages/kbd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/kbproto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kcov/package.py6
-rw-r--r--var/spack/repos/builtin/packages/kdiff3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kea/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kealib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/keepalived/package.py11
-rw-r--r--var/spack/repos/builtin/packages/keepassxc/package.py78
-rw-r--r--var/spack/repos/builtin/packages/kentutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/keyutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kibana/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kicad/package.py84
-rw-r--r--var/spack/repos/builtin/packages/kim-api/package.py11
-rw-r--r--var/spack/repos/builtin/packages/kinesis/package.py4
-rw-r--r--var/spack/repos/builtin/packages/kineto/package.py28
-rw-r--r--var/spack/repos/builtin/packages/kitty/package.py5
-rw-r--r--var/spack/repos/builtin/packages/kmergenie/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kmod/package.py8
-rw-r--r--var/spack/repos/builtin/packages/knem/package.py8
-rw-r--r--var/spack/repos/builtin/packages/kokkos-kernels-legacy/package.py8
-rw-r--r--var/spack/repos/builtin/packages/kokkos-kernels/package.py3
-rw-r--r--var/spack/repos/builtin/packages/kokkos-legacy/package.py28
-rw-r--r--var/spack/repos/builtin/packages/kokkos-nvcc-wrapper/package.py7
-rw-r--r--var/spack/repos/builtin/packages/kokkos/package.py187
-rw-r--r--var/spack/repos/builtin/packages/kraken/package.py5
-rw-r--r--var/spack/repos/builtin/packages/kraken2/package.py8
-rw-r--r--var/spack/repos/builtin/packages/krb5/mit-krb5-1.17-static-libs.patch15
-rw-r--r--var/spack/repos/builtin/packages/krb5/package.py18
-rw-r--r--var/spack/repos/builtin/packages/krims/package.py4
-rw-r--r--var/spack/repos/builtin/packages/kripke/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kubernetes/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kvasir-mpl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kvtree/package.py26
-rw-r--r--var/spack/repos/builtin/packages/kylin/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ladot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/laghos/package.py10
-rw-r--r--var/spack/repos/builtin/packages/lame/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lammps/package.py97
-rw-r--r--var/spack/repos/builtin/packages/lapackpp/package.py27
-rw-r--r--var/spack/repos/builtin/packages/last/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lastz/package.py2
-rw-r--r--var/spack/repos/builtin/packages/laszip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/latex2html/package.py93
-rw-r--r--var/spack/repos/builtin/packages/latte/package.py2
-rw-r--r--var/spack/repos/builtin/packages/launchmon/package.py3
-rw-r--r--var/spack/repos/builtin/packages/lazyten/package.py7
-rw-r--r--var/spack/repos/builtin/packages/lbann/package.py268
-rw-r--r--var/spack/repos/builtin/packages/lbxproxy/package.py10
-rw-r--r--var/spack/repos/builtin/packages/lbzip2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/lcals/package.py5
-rw-r--r--var/spack/repos/builtin/packages/lcio/package.py10
-rw-r--r--var/spack/repos/builtin/packages/lcms/package.py4
-rw-r--r--var/spack/repos/builtin/packages/lcov/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ldak/package.py26
-rw-r--r--var/spack/repos/builtin/packages/ldc-bootstrap/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ldc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/legion/README.md153
-rw-r--r--var/spack/repos/builtin/packages/legion/package.py398
-rw-r--r--var/spack/repos/builtin/packages/lemon/package.py6
-rw-r--r--var/spack/repos/builtin/packages/leptonica/package.py12
-rw-r--r--var/spack/repos/builtin/packages/less/package.py6
-rw-r--r--var/spack/repos/builtin/packages/lesstif/package.py2
-rw-r--r--var/spack/repos/builtin/packages/leveldb/package.py8
-rw-r--r--var/spack/repos/builtin/packages/lftp/package.py6
-rw-r--r--var/spack/repos/builtin/packages/lhapdf/package.py12
-rw-r--r--var/spack/repos/builtin/packages/lhapdf5/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libabigail/package.py28
-rw-r--r--var/spack/repos/builtin/packages/libaec/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libaio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libao/package.py23
-rw-r--r--var/spack/repos/builtin/packages/libapplewm/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libapreq2/package.py25
-rw-r--r--var/spack/repos/builtin/packages/libarchive/package.py55
-rw-r--r--var/spack/repos/builtin/packages/libasr/package.py16
-rw-r--r--var/spack/repos/builtin/packages/libassuan/package.py13
-rw-r--r--var/spack/repos/builtin/packages/libatasmart/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libatomic-ops/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libbacktrace/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libbeagle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libbeato/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libbinio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libblastrampoline/package.py26
-rw-r--r--var/spack/repos/builtin/packages/libbsd/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libbson/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libbytesize/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libc/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libcanberra/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libcap-ng/package.py25
-rw-r--r--var/spack/repos/builtin/packages/libcap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libcatalyst/package.py40
-rw-r--r--var/spack/repos/builtin/packages/libceed/libceed-v0.8-hip.patch14
-rw-r--r--var/spack/repos/builtin/packages/libceed/package.py33
-rw-r--r--var/spack/repos/builtin/packages/libcerf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libcgroup/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libcint/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libcircle/CrayPE_configure-ac.patch17
-rw-r--r--var/spack/repos/builtin/packages/libcircle/package.py12
-rw-r--r--var/spack/repos/builtin/packages/libconfig/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libconfuse/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libcroco/package.py9
-rw-r--r--var/spack/repos/builtin/packages/libctl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libcudf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libcuml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libcumlprims/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libcxxwrap-julia/package.py23
-rw-r--r--var/spack/repos/builtin/packages/libcyaml/package.py24
-rw-r--r--var/spack/repos/builtin/packages/libdaemon/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libdap4/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libdatrie/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libdc1394/package.py26
-rw-r--r--var/spack/repos/builtin/packages/libdeflate/package.py23
-rw-r--r--var/spack/repos/builtin/packages/libdivsufsort/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libdmx/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libdrm/package.py12
-rw-r--r--var/spack/repos/builtin/packages/libdwarf/package.py11
-rw-r--r--var/spack/repos/builtin/packages/libeatmydata/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libecpint/package.py31
-rw-r--r--var/spack/repos/builtin/packages/libedit/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libelf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libemos/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libepoxy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libestr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libev/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libevdev/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libevent/package.py21
-rw-r--r--var/spack/repos/builtin/packages/libevpath/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libexif/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libfabric/package.py37
-rw-r--r--var/spack/repos/builtin/packages/libfastcommon/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libfastjson/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libffi/package.py7
-rw-r--r--var/spack/repos/builtin/packages/libffs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libfive/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libflame/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libfontenc/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libfs/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libfuse/0001-Do-not-run-install-script.patch27
-rw-r--r--var/spack/repos/builtin/packages/libfuse/package.py80
-rw-r--r--var/spack/repos/builtin/packages/libfyaml/package.py18
-rw-r--r--var/spack/repos/builtin/packages/libgcrypt/package.py9
-rw-r--r--var/spack/repos/builtin/packages/libgd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libgeotiff/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libgff/package.py19
-rw-r--r--var/spack/repos/builtin/packages/libgit2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libgpg-error/package.py22
-rw-r--r--var/spack/repos/builtin/packages/libgpuarray/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libgridxc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libgssglue/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libgtextutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libharu/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libhbaapi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libhio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libhugetlbfs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libiberty/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libibumad/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libical/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libice/package.py13
-rw-r--r--var/spack/repos/builtin/packages/libiconv/package.py7
-rw-r--r--var/spack/repos/builtin/packages/libid3tag/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libidl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libidn2/package.py7
-rw-r--r--var/spack/repos/builtin/packages/libimagequant/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libimobiledevice/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libinih/package.py18
-rw-r--r--var/spack/repos/builtin/packages/libint/package.py37
-rw-r--r--var/spack/repos/builtin/packages/libisal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libiscsi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libjpeg-turbo/package.py11
-rw-r--r--var/spack/repos/builtin/packages/libjpeg/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libjson/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libjwt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libkcapi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libkml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libksba/package.py13
-rw-r--r--var/spack/repos/builtin/packages/liblas/package.py2
-rw-r--r--var/spack/repos/builtin/packages/liblbfgs/package.py29
-rw-r--r--var/spack/repos/builtin/packages/liblbxutil/package.py8
-rw-r--r--var/spack/repos/builtin/packages/liblockfile/package.py2
-rw-r--r--var/spack/repos/builtin/packages/liblognorm/package.py27
-rw-r--r--var/spack/repos/builtin/packages/liblouis/package.py21
-rw-r--r--var/spack/repos/builtin/packages/libluv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libmacaroons/package.py26
-rw-r--r--var/spack/repos/builtin/packages/libmad/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libmatheval/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libmaus2/package.py27
-rw-r--r--var/spack/repos/builtin/packages/libmaxminddb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libmbim/package.py32
-rw-r--r--var/spack/repos/builtin/packages/libmcrypt/package.py17
-rw-r--r--var/spack/repos/builtin/packages/libmd/package.py22
-rw-r--r--var/spack/repos/builtin/packages/libmesh/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libmetalink/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libmicrodns/package.py17
-rw-r--r--var/spack/repos/builtin/packages/libmicrohttpd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libmmtf-cpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libmng/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libmnl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libmo-unpack/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libmodbus/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libmonitor/add-monitor-comm-rank-notification.patch77
-rw-r--r--var/spack/repos/builtin/packages/libmonitor/libmonitorkrell-0000.patch18
-rw-r--r--var/spack/repos/builtin/packages/libmonitor/package.py26
-rw-r--r--var/spack/repos/builtin/packages/libmpdclient/package.py20
-rw-r--r--var/spack/repos/builtin/packages/libnbc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libndp/package.py24
-rw-r--r--var/spack/repos/builtin/packages/libnet/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libnetfilter-conntrack/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libnetfilter-cthelper/package.py21
-rw-r--r--var/spack/repos/builtin/packages/libnetfilter-cttimeout/package.py22
-rw-r--r--var/spack/repos/builtin/packages/libnetfilter-queue/package.py23
-rw-r--r--var/spack/repos/builtin/packages/libnetworkit/0001-Name-agnostic-import-of-tlx-library-90.patch17
-rw-r--r--var/spack/repos/builtin/packages/libnetworkit/package.py11
-rw-r--r--var/spack/repos/builtin/packages/libnfnetlink/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libnfs/package.py19
-rw-r--r--var/spack/repos/builtin/packages/libnfsidmap/package.py25
-rw-r--r--var/spack/repos/builtin/packages/libnftnl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libnids/package.py23
-rw-r--r--var/spack/repos/builtin/packages/libnl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libnotify/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libnova/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libnrm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libnsl/package.py7
-rw-r--r--var/spack/repos/builtin/packages/libogg/package.py3
-rw-r--r--var/spack/repos/builtin/packages/liboldx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libopts/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libp11/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libpam/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libpaper/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libpcap/package.py12
-rw-r--r--var/spack/repos/builtin/packages/libpciaccess/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libpeas/package.py9
-rw-r--r--var/spack/repos/builtin/packages/libpfm4/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libpipeline/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libplist/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libpmemobj-cpp/package.py28
-rw-r--r--var/spack/repos/builtin/packages/libpng/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libproxy/package.py12
-rw-r--r--var/spack/repos/builtin/packages/libpsl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libpthread-stubs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libpulsar/package.py33
-rw-r--r--var/spack/repos/builtin/packages/libqglviewer/package.py37
-rw-r--r--var/spack/repos/builtin/packages/libqrencode/package.py44
-rw-r--r--var/spack/repos/builtin/packages/libquo/package.py15
-rw-r--r--var/spack/repos/builtin/packages/librdkafka/package.py2
-rw-r--r--var/spack/repos/builtin/packages/librelp/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libristra/package.py42
-rw-r--r--var/spack/repos/builtin/packages/librmm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/librom/package.py2
-rw-r--r--var/spack/repos/builtin/packages/librsb/package.py5
-rw-r--r--var/spack/repos/builtin/packages/librsvg/package.py5
-rw-r--r--var/spack/repos/builtin/packages/librtlsdr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libsakura/cmakelists.patch38
-rw-r--r--var/spack/repos/builtin/packages/libsakura/package.py32
-rw-r--r--var/spack/repos/builtin/packages/libsamplerate/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libseccomp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libsecret/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libsharp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libshm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libsigcpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libsigsegv/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libsm/package.py16
-rw-r--r--var/spack/repos/builtin/packages/libsndfile/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libsodium/package.py21
-rw-r--r--var/spack/repos/builtin/packages/libspatialindex/package.py15
-rw-r--r--var/spack/repos/builtin/packages/libspatialite/package.py16
-rw-r--r--var/spack/repos/builtin/packages/libspiro/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libsplash/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libssh/package.py5
-rw-r--r--var/spack/repos/builtin/packages/libssh2/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libsvm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libszip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libtar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libtasn1/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libtermkey/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libthai/package.py23
-rw-r--r--var/spack/repos/builtin/packages/libtheora/exit-prior-to-running-configure.patch23
-rw-r--r--var/spack/repos/builtin/packages/libtheora/fix_encoding.patch12
-rw-r--r--var/spack/repos/builtin/packages/libtheora/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libtiff/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libtirpc/libtirpc-remove-pipe-flag-for-nvhpc.patch24
-rw-r--r--var/spack/repos/builtin/packages/libtirpc/package.py17
-rw-r--r--var/spack/repos/builtin/packages/libtlx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libtomlc99/package.py3
-rw-r--r--var/spack/repos/builtin/packages/libtommath/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libtool/package.py54
-rw-r--r--var/spack/repos/builtin/packages/libtorrent/package.py20
-rw-r--r--var/spack/repos/builtin/packages/libtree/package.py47
-rw-r--r--var/spack/repos/builtin/packages/libuecc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libunistring/package.py22
-rw-r--r--var/spack/repos/builtin/packages/libunwind/package.py22
-rw-r--r--var/spack/repos/builtin/packages/libusb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libusbmuxd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libuser/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libuuid/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libuv/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libvdwxc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libverto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libvips/package.py7
-rw-r--r--var/spack/repos/builtin/packages/libvorbis/package.py3
-rw-r--r--var/spack/repos/builtin/packages/libvori/package.py20
-rw-r--r--var/spack/repos/builtin/packages/libvpx/package.py31
-rw-r--r--var/spack/repos/builtin/packages/libvterm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libwebp/package.py48
-rw-r--r--var/spack/repos/builtin/packages/libwebsockets/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libwhich/package.py27
-rw-r--r--var/spack/repos/builtin/packages/libwindowswm/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libx11/package.py16
-rw-r--r--var/spack/repos/builtin/packages/libxau/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libxaw/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libxaw3d/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libxc/package.py26
-rw-r--r--var/spack/repos/builtin/packages/libxcb/package.py24
-rw-r--r--var/spack/repos/builtin/packages/libxcomposite/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libxcrypt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libxcursor/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libxdamage/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libxdmcp/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libxevie/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libxext/package.py13
-rw-r--r--var/spack/repos/builtin/packages/libxfixes/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libxfont/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libxfont2/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libxfontcache/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libxft/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libxi/package.py20
-rw-r--r--var/spack/repos/builtin/packages/libxinerama/package.py13
-rw-r--r--var/spack/repos/builtin/packages/libxkbcommon/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libxkbfile/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libxkbui/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libxml2/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libxmu/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libxp/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libxpm/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libxpresent/package.py12
-rw-r--r--var/spack/repos/builtin/packages/libxprintapputil/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libxprintutil/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libxrandr/package.py15
-rw-r--r--var/spack/repos/builtin/packages/libxrender/package.py11
-rw-r--r--var/spack/repos/builtin/packages/libxres/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libxscrnsaver/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libxshmfence/package.py4
-rw-r--r--var/spack/repos/builtin/packages/libxslt/package.py7
-rw-r--r--var/spack/repos/builtin/packages/libxsmm/package.py9
-rw-r--r--var/spack/repos/builtin/packages/libxstream/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libxt/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libxtrap/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libxtst/package.py12
-rw-r--r--var/spack/repos/builtin/packages/libxv/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libxvmc/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libxxf86dga/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libxxf86misc/package.py10
-rw-r--r--var/spack/repos/builtin/packages/libxxf86vm/package.py15
-rw-r--r--var/spack/repos/builtin/packages/libyaml/package.py3
-rw-r--r--var/spack/repos/builtin/packages/libyogrt/package.py42
-rw-r--r--var/spack/repos/builtin/packages/libzip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libzmq/package.py19
-rw-r--r--var/spack/repos/builtin/packages/liggghts/package.py7
-rw-r--r--var/spack/repos/builtin/packages/lighttpd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ligra/package.py4
-rw-r--r--var/spack/repos/builtin/packages/likwid/package.py77
-rw-r--r--var/spack/repos/builtin/packages/linkphase3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/linktest/package.py36
-rw-r--r--var/spack/repos/builtin/packages/linsys-v/package.py2
-rw-r--r--var/spack/repos/builtin/packages/linux-headers/package.py2
-rw-r--r--var/spack/repos/builtin/packages/linux-pam/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lis/package.py37
-rw-r--r--var/spack/repos/builtin/packages/listres/package.py6
-rw-r--r--var/spack/repos/builtin/packages/lizard/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lksctp-tools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/llvm-amdgpu/fix-ncurses-3.9.0.patch25
-rw-r--r--var/spack/repos/builtin/packages/llvm-amdgpu/fix-spack-detection-4.2.0.patch94
-rw-r--r--var/spack/repos/builtin/packages/llvm-amdgpu/package.py113
-rw-r--r--var/spack/repos/builtin/packages/llvm-doe/constexpr_longdouble_9.0.patch12
-rw-r--r--var/spack/repos/builtin/packages/llvm-doe/lldb_external_ncurses-10.patch31
-rw-r--r--var/spack/repos/builtin/packages/llvm-doe/llvm_python_path.patch14
-rw-r--r--var/spack/repos/builtin/packages/llvm-doe/package.py562
-rw-r--r--var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py4
-rwxr-xr-xvar/spack/repos/builtin/packages/llvm-openmp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/llvm/llvm7_intel.patch50
-rw-r--r--var/spack/repos/builtin/packages/llvm/llvm_python_path.patch14
-rw-r--r--var/spack/repos/builtin/packages/llvm/package.py111
-rw-r--r--var/spack/repos/builtin/packages/lm-sensors/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lmbench/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lmdb/package.py7
-rw-r--r--var/spack/repos/builtin/packages/lmod/package.py5
-rw-r--r--var/spack/repos/builtin/packages/lndir/package.py6
-rw-r--r--var/spack/repos/builtin/packages/log4c/package.py2
-rw-r--r--var/spack/repos/builtin/packages/log4cplus/package.py2
-rw-r--r--var/spack/repos/builtin/packages/log4cpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/log4cxx/package.py25
-rw-r--r--var/spack/repos/builtin/packages/logrotate/package.py2
-rw-r--r--var/spack/repos/builtin/packages/logstash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/loki/package.py2
-rw-r--r--var/spack/repos/builtin/packages/looptools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lordec/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lorene/local_settings.template20
-rw-r--r--var/spack/repos/builtin/packages/lorene/package.py111
-rw-r--r--var/spack/repos/builtin/packages/lp-solve/package.py32
-rw-r--r--var/spack/repos/builtin/packages/lrslib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lrzip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lsf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lshw/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lsof/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lsscsi/package.py6
-rw-r--r--var/spack/repos/builtin/packages/ltp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ltr-retriever/package.py5
-rw-r--r--var/spack/repos/builtin/packages/ltrace/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lua-bitlib/package.py5
-rw-r--r--var/spack/repos/builtin/packages/lua-lpeg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lua-luafilesystem/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lua-luajit/package.py36
-rw-r--r--var/spack/repos/builtin/packages/lua-luaposix/package.py7
-rw-r--r--var/spack/repos/builtin/packages/lua-mpack/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lua-sol2/package.py29
-rw-r--r--var/spack/repos/builtin/packages/lua/package.py26
-rw-r--r--var/spack/repos/builtin/packages/lucene/package.py6
-rw-r--r--var/spack/repos/builtin/packages/luit/package.py6
-rw-r--r--var/spack/repos/builtin/packages/lulesh/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lumpy-sv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lustre/package.py5
-rw-r--r--var/spack/repos/builtin/packages/lvarray/package.py317
-rw-r--r--var/spack/repos/builtin/packages/lvm2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lwgrp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lwm2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lxc/package.py8
-rw-r--r--var/spack/repos/builtin/packages/lynx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lz4/package.py18
-rw-r--r--var/spack/repos/builtin/packages/lzma/package.py6
-rw-r--r--var/spack/repos/builtin/packages/lzo/package.py14
-rw-r--r--var/spack/repos/builtin/packages/lzop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/m4/nvhpc-1.4.19.patch14
-rw-r--r--var/spack/repos/builtin/packages/m4/nvhpc-long-width.patch17
-rw-r--r--var/spack/repos/builtin/packages/m4/oneapi.patch18
-rw-r--r--var/spack/repos/builtin/packages/m4/package.py43
-rw-r--r--var/spack/repos/builtin/packages/macfuse/package.py46
-rw-r--r--var/spack/repos/builtin/packages/macsio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mad-numdiff/package.py2
-rw-r--r--var/spack/repos/builtin/packages/madgraph5amc/package.py9
-rw-r--r--var/spack/repos/builtin/packages/mafft/package.py11
-rw-r--r--var/spack/repos/builtin/packages/magics/package.py5
-rw-r--r--var/spack/repos/builtin/packages/magma/cmake-W.patch12
-rw-r--r--var/spack/repos/builtin/packages/magma/package.py90
-rw-r--r--var/spack/repos/builtin/packages/magma/sm_37.patch27
-rw-r--r--var/spack/repos/builtin/packages/mahout/package.py2
-rw-r--r--var/spack/repos/builtin/packages/makedepend/package.py6
-rw-r--r--var/spack/repos/builtin/packages/maker/package.py13
-rw-r--r--var/spack/repos/builtin/packages/mallocmc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/maloc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/man-db/package.py6
-rw-r--r--var/spack/repos/builtin/packages/manta/for_aarch64.patch11
-rw-r--r--var/spack/repos/builtin/packages/manta/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mapnik/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mapserver/package.py7
-rw-r--r--var/spack/repos/builtin/packages/mapsplice2/Makefile.patch53
-rw-r--r--var/spack/repos/builtin/packages/mapsplice2/mapsplice_ebwt.patch20
-rw-r--r--var/spack/repos/builtin/packages/mapsplice2/package.py54
-rw-r--r--var/spack/repos/builtin/packages/maq/package.py2
-rw-r--r--var/spack/repos/builtin/packages/margo/package.py79
-rw-r--r--var/spack/repos/builtin/packages/mariadb-c-client/package.py15
-rw-r--r--var/spack/repos/builtin/packages/mariadb/package.py8
-rw-r--r--var/spack/repos/builtin/packages/mark/package.py8
-rw-r--r--var/spack/repos/builtin/packages/masa/package.py9
-rw-r--r--var/spack/repos/builtin/packages/mash/package.py34
-rw-r--r--var/spack/repos/builtin/packages/masurca/package.py10
-rw-r--r--var/spack/repos/builtin/packages/mathematica/package.py11
-rw-r--r--var/spack/repos/builtin/packages/matio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/matlab/package.py7
-rw-r--r--var/spack/repos/builtin/packages/maven/package.py2
-rw-r--r--var/spack/repos/builtin/packages/maverick/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mawk/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mbdyn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mbedtls/package.py74
-rw-r--r--var/spack/repos/builtin/packages/mc/package.py3
-rw-r--r--var/spack/repos/builtin/packages/mcl/package.py7
-rw-r--r--var/spack/repos/builtin/packages/mcpp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mcutils/package.py39
-rw-r--r--var/spack/repos/builtin/packages/mdsplus/package.py55
-rw-r--r--var/spack/repos/builtin/packages/mdtest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/med/package.py63
-rw-r--r--var/spack/repos/builtin/packages/meep/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mefit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/megadock/package.py9
-rw-r--r--var/spack/repos/builtin/packages/megahit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/melissa/package.py42
-rw-r--r--var/spack/repos/builtin/packages/memaxes/package.py2
-rw-r--r--var/spack/repos/builtin/packages/memcached/package.py2
-rw-r--r--var/spack/repos/builtin/packages/meme/package.py6
-rw-r--r--var/spack/repos/builtin/packages/memkind/package.py9
-rw-r--r--var/spack/repos/builtin/packages/memsurfer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/memtester/package.py2
-rw-r--r--var/spack/repos/builtin/packages/meraculous/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mercurial/package.py20
-rw-r--r--var/spack/repos/builtin/packages/mercury/package.py13
-rw-r--r--var/spack/repos/builtin/packages/mesa-demos/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mesa-glu/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mesa/package.py58
-rw-r--r--var/spack/repos/builtin/packages/mesa18/package.py68
-rw-r--r--var/spack/repos/builtin/packages/meshkit/package.py6
-rw-r--r--var/spack/repos/builtin/packages/meson/package.py17
-rw-r--r--var/spack/repos/builtin/packages/meson/rpath-0.58.patch12
-rw-r--r--var/spack/repos/builtin/packages/mesquite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/metabat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/metall/package.py50
-rw-r--r--var/spack/repos/builtin/packages/metaphysicl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/metis/package.py33
-rw-r--r--var/spack/repos/builtin/packages/metkit/package.py51
-rw-r--r--var/spack/repos/builtin/packages/mfem/mfem-4.2-petsc-3.15.0.patch32
-rw-r--r--var/spack/repos/builtin/packages/mfem/mfem-4.2-slepc.patch40
-rw-r--r--var/spack/repos/builtin/packages/mfem/mfem-4.2-umpire.patch24
-rw-r--r--var/spack/repos/builtin/packages/mfem/package.py258
-rwxr-xr-xvar/spack/repos/builtin/packages/mfem/test_builds.sh102
-rw-r--r--var/spack/repos/builtin/packages/mg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mgis/package.py10
-rw-r--r--var/spack/repos/builtin/packages/microbiomeutil/package.py2
-rw-r--r--var/spack/repos/builtin/packages/migraphx/0001-Adding-nlohmann-json-include-directory.patch13
-rw-r--r--var/spack/repos/builtin/packages/migraphx/package.py64
-rw-r--r--var/spack/repos/builtin/packages/migrate/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mii/package.py7
-rw-r--r--var/spack/repos/builtin/packages/minc-toolkit/package.py38
-rw-r--r--var/spack/repos/builtin/packages/minced/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mindthegap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/miniaero/package.py4
-rw-r--r--var/spack/repos/builtin/packages/miniamr/package.py18
-rw-r--r--var/spack/repos/builtin/packages/miniapp-ascent/package.py22
-rw-r--r--var/spack/repos/builtin/packages/miniasm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/miniconda2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/miniconda3/package.py46
-rw-r--r--var/spack/repos/builtin/packages/minife/package.py4
-rw-r--r--var/spack/repos/builtin/packages/miniforge3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/minigan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/minighost/package.py6
-rw-r--r--var/spack/repos/builtin/packages/minigmg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/minimap2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/minimd/package.py6
-rw-r--r--var/spack/repos/builtin/packages/minio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/miniqmc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/minisign/package.py13
-rw-r--r--var/spack/repos/builtin/packages/minismac2d/package.py6
-rw-r--r--var/spack/repos/builtin/packages/minitri/package.py2
-rw-r--r--var/spack/repos/builtin/packages/minivite/package.py4
-rw-r--r--var/spack/repos/builtin/packages/minixyce/package.py4
-rw-r--r--var/spack/repos/builtin/packages/minizip/implicit.patch10
-rw-r--r--var/spack/repos/builtin/packages/minizip/package.py12
-rw-r--r--var/spack/repos/builtin/packages/minizip/static.patch26
-rw-r--r--var/spack/repos/builtin/packages/minuit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/miopen-hip/0001-Add-rocm-path-and-rocm-device-lib-path-flags.patch14
-rw-r--r--var/spack/repos/builtin/packages/miopen-hip/package.py68
-rw-r--r--var/spack/repos/builtin/packages/miopen-opencl/package.py51
-rw-r--r--var/spack/repos/builtin/packages/miopengemm/package.py19
-rw-r--r--var/spack/repos/builtin/packages/mira/package.py4
-rw-r--r--var/spack/repos/builtin/packages/miranda/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mirdeep2/package.py7
-rw-r--r--var/spack/repos/builtin/packages/mitofates/package.py5
-rw-r--r--var/spack/repos/builtin/packages/mitos/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mivisionx/package.py50
-rw-r--r--var/spack/repos/builtin/packages/mixcr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mkfontdir/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mkfontscale/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mlhka/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mlocate/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mlperf-deepcam/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mmg/package.py5
-rw-r--r--var/spack/repos/builtin/packages/mmv/better-diagnostics-for-directories-584850.diff22
-rw-r--r--var/spack/repos/builtin/packages/mmv/format-security.diff17
-rw-r--r--var/spack/repos/builtin/packages/mmv/man-page-examples.diff54
-rw-r--r--var/spack/repos/builtin/packages/mmv/man-page-fixes.diff361
-rw-r--r--var/spack/repos/builtin/packages/mmv/man-page-warning-149873.diff45
-rw-r--r--var/spack/repos/builtin/packages/mmv/package.py45
-rw-r--r--var/spack/repos/builtin/packages/mmv/patches-as-of-mmv-1.01b-15.diff368
-rw-r--r--var/spack/repos/builtin/packages/mmv/utime.diff21
-rw-r--r--var/spack/repos/builtin/packages/moab/package.py12
-rw-r--r--var/spack/repos/builtin/packages/mochi-margo/package.py57
-rw-r--r--var/spack/repos/builtin/packages/model-traits/package.py56
-rw-r--r--var/spack/repos/builtin/packages/modeltest-ng/package.py29
-rw-r--r--var/spack/repos/builtin/packages/modern-wheel/package.py12
-rw-r--r--var/spack/repos/builtin/packages/modylas/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mofem-cephas/package.py8
-rw-r--r--var/spack/repos/builtin/packages/mofem-fracture-module/package.py24
-rw-r--r--var/spack/repos/builtin/packages/mofem-minimal-surface-equation/package.py9
-rw-r--r--var/spack/repos/builtin/packages/mofem-users-modules/package.py9
-rw-r--r--var/spack/repos/builtin/packages/mokutil/package.py2
-rw-r--r--var/spack/repos/builtin/packages/molcas/package.py7
-rw-r--r--var/spack/repos/builtin/packages/molden/for_aarch64.patch8
-rw-r--r--var/spack/repos/builtin/packages/molden/package.py13
-rw-r--r--var/spack/repos/builtin/packages/mongo-c-driver/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mongo-cxx-driver/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mongodb-async-driver/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mono/package.py7
-rw-r--r--var/spack/repos/builtin/packages/montage/package.py2
-rw-r--r--var/spack/repos/builtin/packages/moosefs/package.py7
-rw-r--r--var/spack/repos/builtin/packages/moreutils/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mosh/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mothur/package.py3
-rw-r--r--var/spack/repos/builtin/packages/motif/package.py6
-rw-r--r--var/spack/repos/builtin/packages/motioncor2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mount-point-attributes/package.py12
-rw-r--r--var/spack/repos/builtin/packages/mozjs/package.py14
-rw-r--r--var/spack/repos/builtin/packages/mpark-variant/icpc.patch33
-rw-r--r--var/spack/repos/builtin/packages/mpark-variant/package.py11
-rw-r--r--var/spack/repos/builtin/packages/mpark-variant/version.patch11
-rw-r--r--var/spack/repos/builtin/packages/mpas-model/makefile.patch13
-rw-r--r--var/spack/repos/builtin/packages/mpas-model/package.py102
-rw-r--r--var/spack/repos/builtin/packages/mpc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mpdecimal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mpe2/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mpest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mpfi/package.py31
-rw-r--r--var/spack/repos/builtin/packages/mpfr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mpi-bash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mpi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mpibind/package.py47
-rw-r--r--var/spack/repos/builtin/packages/mpich/package.py71
-rw-r--r--var/spack/repos/builtin/packages/mpifileutils/package.py13
-rw-r--r--var/spack/repos/builtin/packages/mpilander/package.py8
-rw-r--r--var/spack/repos/builtin/packages/mpileaks/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mpip/package.py7
-rw-r--r--var/spack/repos/builtin/packages/mpir/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mpitrampoline/package.py48
-rw-r--r--var/spack/repos/builtin/packages/mpix-launch-swift/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mpt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mptensor/package.py96
-rw-r--r--var/spack/repos/builtin/packages/mrbayes/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mrbench/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mrchem/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mrcpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mrnet/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mrtrix3/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mscgen/package.py6
-rw-r--r--var/spack/repos/builtin/packages/msgpack-c/package.py5
-rw-r--r--var/spack/repos/builtin/packages/mshadow/package.py2
-rw-r--r--var/spack/repos/builtin/packages/msmc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/msmc2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mstk/package.py5
-rw-r--r--var/spack/repos/builtin/packages/mt-metis/package.py2
-rw-r--r--var/spack/repos/builtin/packages/multitail/package.py2
-rw-r--r--var/spack/repos/builtin/packages/multitime/package.py2
-rw-r--r--var/spack/repos/builtin/packages/multiverso/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mumax/package.py9
-rw-r--r--var/spack/repos/builtin/packages/mummer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mummer4/package.py3
-rw-r--r--var/spack/repos/builtin/packages/mumps/mumps.src-makefile.5.2.patch29
-rw-r--r--var/spack/repos/builtin/packages/mumps/mumps.src-makefile.5.3.patch24
-rw-r--r--var/spack/repos/builtin/packages/mumps/package.py131
-rw-r--r--var/spack/repos/builtin/packages/munge/package.py5
-rw-r--r--var/spack/repos/builtin/packages/muparser/package.py4
-rw-r--r--var/spack/repos/builtin/packages/muscle/package.py4
-rw-r--r--var/spack/repos/builtin/packages/muse/package.py4
-rw-r--r--var/spack/repos/builtin/packages/musl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/muster/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mutationpp/package.py5
-rwxr-xr-xvar/spack/repos/builtin/packages/mvapich2-gdr/package.py57
-rw-r--r--var/spack/repos/builtin/packages/mvapich2/package.py21
-rwxr-xr-xvar/spack/repos/builtin/packages/mvapich2x/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mxm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mxml/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mxnet/cmake_cuda_flags.patch14
-rw-r--r--var/spack/repos/builtin/packages/mxnet/makefile.opencv.patch35
-rw-r--r--var/spack/repos/builtin/packages/mxnet/makefile.patch81
-rw-r--r--var/spack/repos/builtin/packages/mxnet/openblas-1.6.0.patch14
-rw-r--r--var/spack/repos/builtin/packages/mxnet/openblas-1.7.0.patch16
-rw-r--r--var/spack/repos/builtin/packages/mxnet/package.py227
-rw-r--r--var/spack/repos/builtin/packages/mysql/package.py8
-rw-r--r--var/spack/repos/builtin/packages/mysqlpp/package.py35
-rw-r--r--var/spack/repos/builtin/packages/n2p2/interface-makefile.patch18
-rw-r--r--var/spack/repos/builtin/packages/n2p2/interface-makefile211.patch17
-rw-r--r--var/spack/repos/builtin/packages/n2p2/libnnp-makefile.patch30
-rw-r--r--var/spack/repos/builtin/packages/n2p2/libnnp-makefile212.patch30
-rw-r--r--var/spack/repos/builtin/packages/n2p2/nnp_test.h.patch10
-rw-r--r--var/spack/repos/builtin/packages/n2p2/package.py143
-rw-r--r--var/spack/repos/builtin/packages/n2p2/test/expected-result-2.1.0.txt271
-rw-r--r--var/spack/repos/builtin/packages/n2p2/test/expected-result-2.1.1.txt272
-rwxr-xr-xvar/spack/repos/builtin/packages/n2p2/test/result-check.sh12
-rw-r--r--var/spack/repos/builtin/packages/nacos/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nag/package.py9
-rw-r--r--var/spack/repos/builtin/packages/nalu-wind/package.py157
-rw-r--r--var/spack/repos/builtin/packages/nalu/package.py12
-rw-r--r--var/spack/repos/builtin/packages/namd/package.py44
-rw-r--r--var/spack/repos/builtin/packages/nano/package.py4
-rw-r--r--var/spack/repos/builtin/packages/nanoflann/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nanomsg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nanopb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nasm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/nauty/package.py9
-rw-r--r--var/spack/repos/builtin/packages/nbdkit/package.py7
-rw-r--r--var/spack/repos/builtin/packages/ncbi-magicblast/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ncbi-rmblastn/isb-2.9.0+-rmblast-p1.patch238
-rw-r--r--var/spack/repos/builtin/packages/ncbi-rmblastn/package.py31
-rw-r--r--var/spack/repos/builtin/packages/ncbi-toolkit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nccl-tests/package.py7
-rw-r--r--var/spack/repos/builtin/packages/nccl/package.py11
-rw-r--r--var/spack/repos/builtin/packages/nccmp/package.py22
-rw-r--r--var/spack/repos/builtin/packages/ncdu/package.py9
-rw-r--r--var/spack/repos/builtin/packages/ncep-post/cmake_findnetcdf.patch350
-rw-r--r--var/spack/repos/builtin/packages/ncep-post/package.py49
-rw-r--r--var/spack/repos/builtin/packages/ncftp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ncl/for_aarch64.patch10
-rw-r--r--var/spack/repos/builtin/packages/ncl/package.py9
-rw-r--r--var/spack/repos/builtin/packages/nco/package.py5
-rw-r--r--var/spack/repos/builtin/packages/ncompress/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ncurses/package.py24
-rw-r--r--var/spack/repos/builtin/packages/ncview/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ndiff/package.py6
-rw-r--r--var/spack/repos/builtin/packages/neartree/package.py27
-rw-r--r--var/spack/repos/builtin/packages/nek5000/package.py12
-rw-r--r--var/spack/repos/builtin/packages/nekbone/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nekcem/package.py7
-rw-r--r--var/spack/repos/builtin/packages/nekrs/package.py133
-rw-r--r--var/spack/repos/builtin/packages/nektar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nektools/package.py9
-rw-r--r--var/spack/repos/builtin/packages/nemsio/package.py26
-rw-r--r--var/spack/repos/builtin/packages/neo4j/package.py4
-rw-r--r--var/spack/repos/builtin/packages/neovim/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nest/package.py28
-rw-r--r--var/spack/repos/builtin/packages/net-snmp/package.py22
-rw-r--r--var/spack/repos/builtin/packages/netcdf-c/4.7.3-spectrum-mpi-pnetcdf-detect.patch44
-rw-r--r--var/spack/repos/builtin/packages/netcdf-c/package.py13
-rw-r--r--var/spack/repos/builtin/packages/netcdf-cxx/package.py6
-rw-r--r--var/spack/repos/builtin/packages/netcdf-cxx4/package.py2
-rw-r--r--var/spack/repos/builtin/packages/netcdf-fortran/package.py57
-rw-r--r--var/spack/repos/builtin/packages/netdata/package.py33
-rw-r--r--var/spack/repos/builtin/packages/netgauge/package.py3
-rw-r--r--var/spack/repos/builtin/packages/netgen/package.py2
-rw-r--r--var/spack/repos/builtin/packages/netkit-ftp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/netlib-lapack/ibm-xl-3.9.1.patch94
-rw-r--r--var/spack/repos/builtin/packages/netlib-lapack/package.py27
-rw-r--r--var/spack/repos/builtin/packages/netlib-scalapack/package.py9
-rw-r--r--var/spack/repos/builtin/packages/netlib-xblas/package.py6
-rw-r--r--var/spack/repos/builtin/packages/netpbm/package.py208
-rw-r--r--var/spack/repos/builtin/packages/netperf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nettle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/neuron/package.py283
-rw-r--r--var/spack/repos/builtin/packages/neuron/patch-v782-git-cmake-avx512.patch139
-rw-r--r--var/spack/repos/builtin/packages/newt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nextflow/package.py5
-rw-r--r--var/spack/repos/builtin/packages/nfft/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nfs-ganesha/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nfs-utils/package.py3
-rw-r--r--var/spack/repos/builtin/packages/nghttp2/package.py42
-rw-r--r--var/spack/repos/builtin/packages/nginx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ngmerge/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ngmlr/for_aarch64.patch6
-rw-r--r--var/spack/repos/builtin/packages/ngmlr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ngspice/package.py132
-rw-r--r--var/spack/repos/builtin/packages/nicstat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nim/package.py40
-rw-r--r--var/spack/repos/builtin/packages/ninja-fortran/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ninja/package.py3
-rw-r--r--var/spack/repos/builtin/packages/nix/package.py4
-rw-r--r--var/spack/repos/builtin/packages/njet/njet-2.0.0.patch17
-rw-r--r--var/spack/repos/builtin/packages/njet/package.py7
-rw-r--r--var/spack/repos/builtin/packages/nlcglib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nlohmann-json-schema-validator/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nlohmann-json/package.py41
-rw-r--r--var/spack/repos/builtin/packages/nlopt/package.py14
-rw-r--r--var/spack/repos/builtin/packages/nmap/package.py36
-rw-r--r--var/spack/repos/builtin/packages/nn-c/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nnpack/package.py118
-rw-r--r--var/spack/repos/builtin/packages/nnvm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/node-js/package.py11
-rw-r--r--var/spack/repos/builtin/packages/notmuch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/npb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/npm/package.py6
-rw-r--r--var/spack/repos/builtin/packages/npth/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nrm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ns-3-dev/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nseg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nsimd/package.py63
-rw-r--r--var/spack/repos/builtin/packages/nspr/package.py16
-rw-r--r--var/spack/repos/builtin/packages/nss/package.py69
-rw-r--r--var/spack/repos/builtin/packages/ntirpc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ntpoly/package.py2
-rw-r--r--var/spack/repos/builtin/packages/numactl/fix-empty-block.patch13
-rw-r--r--var/spack/repos/builtin/packages/numactl/package.py24
-rw-r--r--var/spack/repos/builtin/packages/numamma/package.py2
-rw-r--r--var/spack/repos/builtin/packages/numap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/numdiff/package.py4
-rw-r--r--var/spack/repos/builtin/packages/nut/package.py8
-rw-r--r--var/spack/repos/builtin/packages/nvdimmsim/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nvhpc/package.py50
-rw-r--r--var/spack/repos/builtin/packages/nvptx-tools/package.py3
-rw-r--r--var/spack/repos/builtin/packages/nvshmem/package.py70
-rw-r--r--var/spack/repos/builtin/packages/nvtop/package.py22
-rw-r--r--var/spack/repos/builtin/packages/nwchem/package.py11
-rw-r--r--var/spack/repos/builtin/packages/nyancat/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ocaml/package.py9
-rw-r--r--var/spack/repos/builtin/packages/ocamlbuild/package.py41
-rw-r--r--var/spack/repos/builtin/packages/occa/package.py4
-rw-r--r--var/spack/repos/builtin/packages/oce/package.py7
-rw-r--r--var/spack/repos/builtin/packages/oci-systemd-hook/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ocl-icd/package.py16
-rw-r--r--var/spack/repos/builtin/packages/oclgrind/package.py2
-rw-r--r--var/spack/repos/builtin/packages/oclint/package.py6
-rw-r--r--var/spack/repos/builtin/packages/oclock/package.py4
-rw-r--r--var/spack/repos/builtin/packages/octave-arduino/package.py19
-rw-r--r--var/spack/repos/builtin/packages/octave-control/package.py18
-rw-r--r--var/spack/repos/builtin/packages/octave-gsl/package.py21
-rw-r--r--var/spack/repos/builtin/packages/octave-instrctl/package.py18
-rw-r--r--var/spack/repos/builtin/packages/octave-io/package.py22
-rw-r--r--var/spack/repos/builtin/packages/octave-optim/package.py7
-rw-r--r--var/spack/repos/builtin/packages/octave-quaternion/package.py20
-rw-r--r--var/spack/repos/builtin/packages/octave-signal/package.py18
-rw-r--r--var/spack/repos/builtin/packages/octave-splines/package.py3
-rw-r--r--var/spack/repos/builtin/packages/octave-statistics/package.py18
-rw-r--r--var/spack/repos/builtin/packages/octave-struct/package.py3
-rw-r--r--var/spack/repos/builtin/packages/octave-symbolic/package.py21
-rw-r--r--var/spack/repos/builtin/packages/octave/package.py14
-rw-r--r--var/spack/repos/builtin/packages/octopus/package.py27
-rw-r--r--var/spack/repos/builtin/packages/odc/package.py33
-rw-r--r--var/spack/repos/builtin/packages/of-catalyst/package.py2
-rw-r--r--var/spack/repos/builtin/packages/of-precice/package.py4
-rw-r--r--var/spack/repos/builtin/packages/omega-h/package.py13
-rw-r--r--var/spack/repos/builtin/packages/ompss/package.py11
-rw-r--r--var/spack/repos/builtin/packages/ompt-openmp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/onednn/package.py8
-rw-r--r--var/spack/repos/builtin/packages/oniguruma/package.py2
-rw-r--r--var/spack/repos/builtin/packages/onnx/package.py38
-rw-r--r--var/spack/repos/builtin/packages/ont-albacore/package.py2
-rw-r--r--var/spack/repos/builtin/packages/opa-psm2/opa-psm2-install-prefix.patch78
-rw-r--r--var/spack/repos/builtin/packages/opa-psm2/package.py19
-rw-r--r--var/spack/repos/builtin/packages/opam/package.py2
-rw-r--r--var/spack/repos/builtin/packages/opari2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/open-iscsi/package.py3
-rw-r--r--var/spack/repos/builtin/packages/open-isns/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openal-soft/package.py29
-rw-r--r--var/spack/repos/builtin/packages/openbabel/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openblas/0001-use-usr-bin-env-perl.patch55
-rw-r--r--var/spack/repos/builtin/packages/openblas/package.py59
-rw-r--r--var/spack/repos/builtin/packages/opencascade/package.py12
-rw-r--r--var/spack/repos/builtin/packages/opencl-c-headers/package.py9
-rw-r--r--var/spack/repos/builtin/packages/opencl-clhpp/package.py9
-rw-r--r--var/spack/repos/builtin/packages/opencl-headers/package.py9
-rw-r--r--var/spack/repos/builtin/packages/opencoarrays/package.py2
-rw-r--r--var/spack/repos/builtin/packages/opencv/opencv3.2_compiler_cmake.patch14
-rw-r--r--var/spack/repos/builtin/packages/opencv/package.py598
-rw-r--r--var/spack/repos/builtin/packages/opendx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openexr/package.py18
-rw-r--r--var/spack/repos/builtin/packages/openfast/package.py29
-rw-r--r--var/spack/repos/builtin/packages/openfdtd/package.py6
-rw-r--r--var/spack/repos/builtin/packages/openfoam-org/isnan.patch31
-rw-r--r--var/spack/repos/builtin/packages/openfoam-org/package.py26
-rw-r--r--var/spack/repos/builtin/packages/openfoam/package.py62
-rw-r--r--var/spack/repos/builtin/packages/openfst/package.py19
-rw-r--r--var/spack/repos/builtin/packages/opengl/package.py9
-rw-r--r--var/spack/repos/builtin/packages/openglu/package.py9
-rw-r--r--var/spack/repos/builtin/packages/openimageio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/openipmi/package.py15
-rw-r--r--var/spack/repos/builtin/packages/openipmi/readline.patch11
-rw-r--r--var/spack/repos/builtin/packages/openjdk/package.py23
-rw-r--r--var/spack/repos/builtin/packages/openjpeg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openkim-models/package.py16
-rw-r--r--var/spack/repos/builtin/packages/openldap/package.py8
-rw-r--r--var/spack/repos/builtin/packages/openloops/get-process-list.py47
-rw-r--r--var/spack/repos/builtin/packages/openloops/package.py102
-rw-r--r--var/spack/repos/builtin/packages/openloops/sft3.coll171
-rw-r--r--var/spack/repos/builtin/packages/openmc/package.py39
-rw-r--r--var/spack/repos/builtin/packages/openmm/package.py5
-rw-r--r--var/spack/repos/builtin/packages/openmolcas/package.py26
-rw-r--r--var/spack/repos/builtin/packages/openmpi/opal_assembly_arch.patch27
-rw-r--r--var/spack/repos/builtin/packages/openmpi/package.py132
-rw-r--r--var/spack/repos/builtin/packages/openmx/for_aarch64.patch11
-rw-r--r--var/spack/repos/builtin/packages/openmx/package.py7
-rw-r--r--var/spack/repos/builtin/packages/opennurbs/package.py5
-rw-r--r--var/spack/repos/builtin/packages/openpa/package.py4
-rw-r--r--var/spack/repos/builtin/packages/openpbs/package.py17
-rw-r--r--var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch44
-rw-r--r--var/spack/repos/builtin/packages/openpmd-api/package.py137
-rw-r--r--var/spack/repos/builtin/packages/openrasmol/package.py68
-rw-r--r--var/spack/repos/builtin/packages/openrasmol/rasmol_help.patch22
-rw-r--r--var/spack/repos/builtin/packages/openrasmol/rasmol_noqa.patch26
-rw-r--r--var/spack/repos/builtin/packages/openrasmol/test/test.rsc3
-rw-r--r--var/spack/repos/builtin/packages/openresty/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openscenegraph/package.py4
-rw-r--r--var/spack/repos/builtin/packages/openslide/package.py4
-rw-r--r--var/spack/repos/builtin/packages/openslp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop-utils/package.py81
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop/package.py115
-rw-r--r--var/spack/repos/builtin/packages/openssh/package.py90
-rw-r--r--var/spack/repos/builtin/packages/openssl/package.py123
-rw-r--r--var/spack/repos/builtin/packages/openstf/package.py6
-rw-r--r--var/spack/repos/builtin/packages/opensubdiv/package.py11
-rw-r--r--var/spack/repos/builtin/packages/opentsdb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openvdb/package.py91
-rw-r--r--var/spack/repos/builtin/packages/openvslam/package.py33
-rw-r--r--var/spack/repos/builtin/packages/openwsman/package.py68
-rw-r--r--var/spack/repos/builtin/packages/opium/package.py31
-rw-r--r--var/spack/repos/builtin/packages/optional-lite/package.py5
-rw-r--r--var/spack/repos/builtin/packages/optipng/package.py2
-rw-r--r--var/spack/repos/builtin/packages/opus/package.py5
-rw-r--r--var/spack/repos/builtin/packages/oracle-instant-client/package.py108
-rw-r--r--var/spack/repos/builtin/packages/orbit2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/orc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/orca/package.py8
-rw-r--r--var/spack/repos/builtin/packages/orfm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/orientdb/package.py4
-rw-r--r--var/spack/repos/builtin/packages/orthofiller/package.py5
-rw-r--r--var/spack/repos/builtin/packages/orthofinder/package.py36
-rw-r--r--var/spack/repos/builtin/packages/orthomcl/package.py6
-rw-r--r--var/spack/repos/builtin/packages/osi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/osmctools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/osqp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ossp-uuid/package.py (renamed from var/spack/repos/builtin/packages/uuid/package.py)16
-rw-r--r--var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py16
-rw-r--r--var/spack/repos/builtin/packages/otf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/otf2/collective_callbacks.patch13
-rw-r--r--var/spack/repos/builtin/packages/otf2/cray_ac_scorep_sys_detection-m4.patch11
-rw-r--r--var/spack/repos/builtin/packages/otf2/package.py22
-rw-r--r--var/spack/repos/builtin/packages/p11-kit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/p3dfft3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/p4est/package.py22
-rw-r--r--var/spack/repos/builtin/packages/p7zip/gcc10.patch13
-rw-r--r--var/spack/repos/builtin/packages/p7zip/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pacbio-daligner/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pacbio-damasker/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pacbio-dazz-db/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pacbio-dextractor/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pacifica-cli/package.py23
-rw-r--r--var/spack/repos/builtin/packages/packmol/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pacparser/package.py32
-rw-r--r--var/spack/repos/builtin/packages/pacvim/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pagit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pagmo/package.py26
-rw-r--r--var/spack/repos/builtin/packages/pajeng/package.py69
-rw-r--r--var/spack/repos/builtin/packages/pal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/paml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/panda/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pandaseq/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pandoc/package.py27
-rw-r--r--var/spack/repos/builtin/packages/pango/package.py8
-rw-r--r--var/spack/repos/builtin/packages/pangolin/package.py23
-rw-r--r--var/spack/repos/builtin/packages/pangomm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/papi/crayftn-fixes.patch57
-rw-r--r--var/spack/repos/builtin/packages/papi/package.py11
-rw-r--r--var/spack/repos/builtin/packages/papyrus/package.py70
-rw-r--r--var/spack/repos/builtin/packages/paradiseo/package.py23
-rw-r--r--var/spack/repos/builtin/packages/parallel-netcdf/package.py36
-rw-r--r--var/spack/repos/builtin/packages/parallel/package.py4
-rw-r--r--var/spack/repos/builtin/packages/parallelio/package.py53
-rw-r--r--var/spack/repos/builtin/packages/parallelmergetree/package.py30
-rw-r--r--var/spack/repos/builtin/packages/paraver/package.py26
-rw-r--r--var/spack/repos/builtin/packages/paraview/package.py109
-rw-r--r--var/spack/repos/builtin/packages/paraview/paraview-gcc11-limits.patch49
-rw-r--r--var/spack/repos/builtin/packages/paraview/vtkm-findmpi-downstream.patch51
-rw-r--r--var/spack/repos/builtin/packages/parflow/package.py82
-rw-r--r--var/spack/repos/builtin/packages/parmetis/package.py5
-rw-r--r--var/spack/repos/builtin/packages/parmgridgen/package.py4
-rw-r--r--var/spack/repos/builtin/packages/parmmg/package.py35
-rw-r--r--var/spack/repos/builtin/packages/parquet-cpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/parquet-format/package.py2
-rw-r--r--var/spack/repos/builtin/packages/parsec/package.py91
-rw-r--r--var/spack/repos/builtin/packages/parsimonator/package.py2
-rw-r--r--var/spack/repos/builtin/packages/parsplice/package.py2
-rw-r--r--var/spack/repos/builtin/packages/partitionfinder/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pasta/package.py2
-rw-r--r--var/spack/repos/builtin/packages/patch/package.py4
-rw-r--r--var/spack/repos/builtin/packages/patchelf/package.py20
-rw-r--r--var/spack/repos/builtin/packages/patchutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pathfinder/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pax-utils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pbbam/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pbmpi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pbsuite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pciutils/package.py12
-rw-r--r--var/spack/repos/builtin/packages/pcl/package.py21
-rw-r--r--var/spack/repos/builtin/packages/pcma/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pcre/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pcre2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/pdc/package.py42
-rw-r--r--var/spack/repos/builtin/packages/pdf2svg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pdftk/package.py5
-rw-r--r--var/spack/repos/builtin/packages/pdsh/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pdt/cray_configure.patch14
-rw-r--r--var/spack/repos/builtin/packages/pdt/package.py12
-rw-r--r--var/spack/repos/builtin/packages/pegtl/package.py30
-rw-r--r--var/spack/repos/builtin/packages/pennant/package.py2
-rw-r--r--var/spack/repos/builtin/packages/percept/package.py4
-rw-r--r--var/spack/repos/builtin/packages/percona-server/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perfstubs/package.py7
-rw-r--r--var/spack/repos/builtin/packages/perl-acme-damn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-algorithm-diff/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-alien-build/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-alien-libxml2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-alien-svn/package.py42
-rw-r--r--var/spack/repos/builtin/packages/perl-app-cmd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-array-utils/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-b-hooks-endofscope/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-bio-searchio-hmmer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-bioperl/package.py7
-rw-r--r--var/spack/repos/builtin/packages/perl-bit-vector/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-cairo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-capture-tiny/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-carp-clan/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-cgi/package.py3
-rw-r--r--var/spack/repos/builtin/packages/perl-class-data-inheritable/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-class-inspector/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-class-load-xs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-class-load/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-clone-choose/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-clone/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-compress-raw-bzip2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-config-general/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-contextual-return/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-cpan-meta-check/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-data-dumper/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-data-optlist/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-data-stag/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-date-manip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-db-file/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-dbd-mysql/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-dbd-pg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-dbd-sqlite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-dbi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-devel-cycle/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-devel-globaldestruction/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-devel-overloadinfo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-devel-stacktrace/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-devel-symdump/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-digest-md5/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-dist-checkconflicts/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-encode-locale/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-error/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-eval-closure/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-exception-class/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-exporter-lite/package.py16
-rw-r--r--var/spack/repos/builtin/packages/perl-exporter-tiny/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-extutils-config/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-extutils-depends/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-extutils-helpers/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-extutils-installpaths/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-extutils-makemaker/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-extutils-pkgconfig/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-ffi-checklib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-file-chdir/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-file-copy-recursive/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-file-homedir/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-file-listing/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-file-pushd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-file-sharedir-install/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-file-slurp-tiny/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-file-slurp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-file-slurper/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-file-which/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-font-ttf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-forks/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch10
-rw-r--r--var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch10
-rw-r--r--var/spack/repos/builtin/packages/perl-fth/package.py120
-rw-r--r--var/spack/repos/builtin/packages/perl-gd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-gdgraph-histogram/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-gdgraph/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-gdtextutil/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-getopt-tabular/package.py15
-rw-r--r--var/spack/repos/builtin/packages/perl-graph-readwrite/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-graph/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-hash-merge/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-html-parser/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-html-tagset/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-http-cookies/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-http-daemon/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-http-date/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-http-message/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-http-negotiate/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-inline-c/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-inline/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-io-all/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-io-compress/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-io-html/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-io-prompt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-io-sessiondata/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-io-socket-ssl/package.py7
-rw-r--r--var/spack/repos/builtin/packages/perl-io-string/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-io-stringy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-io-tty/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-ipc-run/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-json/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-libwww-perl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-libxml-perl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-list-moreutils-xs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-list-moreutils/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-log-log4perl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-logger-simple/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-lwp-mediatypes/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-mailtools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-math-bezier/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-math-cdf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-math-cephes/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-math-matrixreal/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-math-round/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-math-vecstat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-mce/package.py22
-rw-r--r--var/spack/repos/builtin/packages/perl-module-build-tiny/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-module-build/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-module-implementation/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-module-runtime-conflicts/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-module-runtime/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-moose/package.py6
-rw-r--r--var/spack/repos/builtin/packages/perl-mozilla-ca/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-mro-compat/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-namespace-clean/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-net-http/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-net-scp-expect/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-net-ssleay/package.py7
-rw-r--r--var/spack/repos/builtin/packages/perl-number-format/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-object-insideout/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-package-deprecationmanager/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-package-stash-xs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-package-stash/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-padwalker/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-parallel-forkmanager/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-params-util/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-params-validate/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-parse-recdescent/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-path-tiny/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-pdf-api2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-pegex/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-perl-unsafe-signals/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-perl-version/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-perl4-corelibs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-perl6-slurp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-perlio-gzip/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-perlio-utf8-strict/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-readonly/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-regexp-common/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-scalar-list-utils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-scalar-util-numeric/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-set-intervaltree/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-set-intspan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-set-scalar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-soap-lite/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-star-fusion/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-statistics-basic/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-statistics-descriptive/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-statistics-pca/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-sub-exporter-progressive/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-sub-exporter/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-sub-identify/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-sub-install/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-sub-name/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-sub-uplevel/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-svg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-swissknife/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-sys-sigaction/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-task-weaken/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-term-readline-gnu/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-termreadkey/package.py6
-rw-r--r--var/spack/repos/builtin/packages/perl-test-cleannamespaces/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-test-deep/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-test-differences/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-test-exception/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-test-fatal/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-test-memory-cycle/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-test-more/package.py19
-rw-r--r--var/spack/repos/builtin/packages/perl-test-most/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-test-needs/package.py6
-rw-r--r--var/spack/repos/builtin/packages/perl-test-output/package.py20
-rw-r--r--var/spack/repos/builtin/packages/perl-test-requires/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-test-requiresinternet/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-test-warn/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-test-warnings/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-text-csv/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-text-diff/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-text-format/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-text-simpletable/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-text-soundex/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-text-unidecode/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-thread-queue/package.py18
-rw-r--r--var/spack/repos/builtin/packages/perl-threads/package.py15
-rw-r--r--var/spack/repos/builtin/packages/perl-time-hires/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-time-piece/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-timedate/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-tk/package.py18
-rw-r--r--var/spack/repos/builtin/packages/perl-try-tiny/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-uri/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-want/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-www-robotrules/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-dom-xpath/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-dom/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-filter-buffertext/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-libxml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-libxslt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-parser-lite/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-parser/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-quote/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-regexp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-sax-base/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-sax-writer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-sax/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-simple/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-twig/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-writer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-xml-xpathengine/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl-yaml-libyaml/package.py4
-rw-r--r--var/spack/repos/builtin/packages/perl-yaml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/perl/nvhpc-5.30.patch (renamed from var/spack/repos/builtin/packages/perl/nvhpc.patch)0
-rw-r--r--var/spack/repos/builtin/packages/perl/nvhpc-5.32.patch42
-rw-r--r--var/spack/repos/builtin/packages/perl/package.py60
-rw-r--r--var/spack/repos/builtin/packages/pestpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/petsc/package.py362
-rw-r--r--var/spack/repos/builtin/packages/pexsi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pfapack/package.py66
-rw-r--r--var/spack/repos/builtin/packages/pfft/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pflask/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pflotran/package.py8
-rw-r--r--var/spack/repos/builtin/packages/pfunit/package.py22
-rw-r--r--var/spack/repos/builtin/packages/pgdspider/package.py5
-rw-r--r--var/spack/repos/builtin/packages/pgi/package.py10
-rw-r--r--var/spack/repos/builtin/packages/pgplot/g77_gcc.conf.patch55
-rw-r--r--var/spack/repos/builtin/packages/pgplot/package.py92
-rw-r--r--var/spack/repos/builtin/packages/phantompeakqualtools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/phast/package.py2
-rw-r--r--var/spack/repos/builtin/packages/phasta/package.py2
-rw-r--r--var/spack/repos/builtin/packages/phist/package.py32
-rw-r--r--var/spack/repos/builtin/packages/phist/sbang.patch8
-rw-r--r--var/spack/repos/builtin/packages/phoenix/package.py2
-rw-r--r--var/spack/repos/builtin/packages/photos/package.py20
-rw-r--r--var/spack/repos/builtin/packages/php/package.py5
-rw-r--r--var/spack/repos/builtin/packages/phrap-crossmatch-swat/package.py6
-rw-r--r--var/spack/repos/builtin/packages/phred/package.py6
-rw-r--r--var/spack/repos/builtin/packages/phylip/package.py6
-rw-r--r--var/spack/repos/builtin/packages/phylobayesmpi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/phyluce/package.py2
-rw-r--r--var/spack/repos/builtin/packages/picard/package.py19
-rw-r--r--var/spack/repos/builtin/packages/picsar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/picsarlite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pidx/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pig/package.py6
-rw-r--r--var/spack/repos/builtin/packages/pigz/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pilon/package.py5
-rw-r--r--var/spack/repos/builtin/packages/pindel/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pinentry/package.py77
-rw-r--r--var/spack/repos/builtin/packages/pinfo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pipework/package.py2
-rw-r--r--var/spack/repos/builtin/packages/piranha/package.py8
-rw-r--r--var/spack/repos/builtin/packages/pism/package.py35
-rw-r--r--var/spack/repos/builtin/packages/pixman/package.py7
-rw-r--r--var/spack/repos/builtin/packages/pixz/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pkg-config/package.py9
-rw-r--r--var/spack/repos/builtin/packages/pkgconf/package.py14
-rw-r--r--var/spack/repos/builtin/packages/pktools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/planck-likelihood/package.py16
-rw-r--r--var/spack/repos/builtin/packages/plasma/package.py11
-rw-r--r--var/spack/repos/builtin/packages/platypus/package.py4
-rw-r--r--var/spack/repos/builtin/packages/plink-ng/package.py2
-rw-r--r--var/spack/repos/builtin/packages/plink/package.py6
-rw-r--r--var/spack/repos/builtin/packages/plplot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/plumed/package.py52
-rw-r--r--var/spack/repos/builtin/packages/ply/package.py26
-rw-r--r--var/spack/repos/builtin/packages/pmdk/package.py20
-rw-r--r--var/spack/repos/builtin/packages/pmemkv/package.py88
-rw-r--r--var/spack/repos/builtin/packages/pmerge/package.py29
-rw-r--r--var/spack/repos/builtin/packages/pmgr-collective/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pmix/package.py20
-rw-r--r--var/spack/repos/builtin/packages/pmlib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pnfft/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pngquant/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pngwriter/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pnmpi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/poamsa/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pocl/package.py11
-rw-r--r--var/spack/repos/builtin/packages/podio/package.py63
-rw-r--r--var/spack/repos/builtin/packages/poke/package.py21
-rw-r--r--var/spack/repos/builtin/packages/polymake/package.py2
-rw-r--r--var/spack/repos/builtin/packages/poplddecay/package.py4
-rw-r--r--var/spack/repos/builtin/packages/poppler-data/package.py2
-rw-r--r--var/spack/repos/builtin/packages/poppler/package.py15
-rw-r--r--var/spack/repos/builtin/packages/popt/package.py6
-rw-r--r--var/spack/repos/builtin/packages/porta/package.py6
-rw-r--r--var/spack/repos/builtin/packages/portage/package.py112
-rw-r--r--var/spack/repos/builtin/packages/portcullis/package.py2
-rw-r--r--var/spack/repos/builtin/packages/postgis/package.py2
-rw-r--r--var/spack/repos/builtin/packages/postgresql/package.py15
-rw-r--r--var/spack/repos/builtin/packages/povray/fix_prebuild.sh.patch15
-rw-r--r--var/spack/repos/builtin/packages/povray/package.py159
-rw-r--r--var/spack/repos/builtin/packages/powerapi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/powertop/package.py7
-rw-r--r--var/spack/repos/builtin/packages/ppl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pplacer/package.py4
-rwxr-xr-xvar/spack/repos/builtin/packages/ppopen-appl-amr-fdm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ppopen-appl-bem-at/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ppopen-appl-bem/package.py5
-rwxr-xr-xvar/spack/repos/builtin/packages/ppopen-appl-dem-util/package.py2
-rwxr-xr-xvar/spack/repos/builtin/packages/ppopen-appl-fdm-at/package.py2
-rwxr-xr-xvar/spack/repos/builtin/packages/ppopen-appl-fdm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ppopen-appl-fem/package.py5
-rw-r--r--var/spack/repos/builtin/packages/ppopen-appl-fvm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ppopen-at/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ppopen-math-mp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ppopen-math-vis/package.py2
-rw-r--r--var/spack/repos/builtin/packages/prank/package.py2
-rw-r--r--var/spack/repos/builtin/packages/precice/package.py17
-rw-r--r--var/spack/repos/builtin/packages/predixy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/premake-core/package.py2
-rw-r--r--var/spack/repos/builtin/packages/presentproto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/preseq/package.py2
-rw-r--r--var/spack/repos/builtin/packages/presto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/price/package.py4
-rw-r--r--var/spack/repos/builtin/packages/primer3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/prinseq-lite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/printproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/prism/package.py2
-rw-r--r--var/spack/repos/builtin/packages/prmon/package.py8
-rw-r--r--var/spack/repos/builtin/packages/prng/package.py6
-rw-r--r--var/spack/repos/builtin/packages/probconsrna/package.py2
-rw-r--r--var/spack/repos/builtin/packages/procenv/7cafed1316ddb16fe0689d54ba10c05dd2edd347.patch34
-rw-r--r--var/spack/repos/builtin/packages/procenv/package.py29
-rw-r--r--var/spack/repos/builtin/packages/process-in-process/package.py178
-rw-r--r--var/spack/repos/builtin/packages/procps-ng/package.py2
-rw-r--r--var/spack/repos/builtin/packages/procps/package.py2
-rw-r--r--var/spack/repos/builtin/packages/prodigal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/professor/package.py28
-rw-r--r--var/spack/repos/builtin/packages/profugusmc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/proj/package.py39
-rw-r--r--var/spack/repos/builtin/packages/prokka/package.py2
-rw-r--r--var/spack/repos/builtin/packages/prometheus/package.py2
-rw-r--r--var/spack/repos/builtin/packages/protobuf-c/package.py2
-rw-r--r--var/spack/repos/builtin/packages/protobuf/package.py72
-rw-r--r--var/spack/repos/builtin/packages/proxymngr/package.py8
-rw-r--r--var/spack/repos/builtin/packages/prrte/package.py3
-rw-r--r--var/spack/repos/builtin/packages/pruners-ninja/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ps-lite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/psi4/package.py7
-rw-r--r--var/spack/repos/builtin/packages/psimd/package.py24
-rw-r--r--var/spack/repos/builtin/packages/pslib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/psm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/psmc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pstreams/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pthreadpool/package.py60
-rw-r--r--var/spack/repos/builtin/packages/pugixml/package.py25
-rw-r--r--var/spack/repos/builtin/packages/pulseaudio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pumi/package.py16
-rw-r--r--var/spack/repos/builtin/packages/pv/package.py6
-rw-r--r--var/spack/repos/builtin/packages/pvm/package.py36
-rw-r--r--var/spack/repos/builtin/packages/pxz/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-3to2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-4suite-xml/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-abcpy/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-abipy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-absl-py/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-accimage/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-acme-tiny/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-adal/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-adb-enhanced/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-addict/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-adios/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-advancedhtmlparser/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-aenum/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-affine/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-agate-dbf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-agate-excel/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-agate-sql/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-agate/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-aiobotocore/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-aiodns/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-aiofiles/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-aiohttp-cors/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-aiohttp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-aioitertools/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-aioredis/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-alabaster/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-alembic/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-altgraph/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-amqp/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-angel/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-aniso8601/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-annexremote/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-ansi2html/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-ansible/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-antlr4-python3-runtime/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-anuga/package.py32
-rw-r--r--var/spack/repos/builtin/packages/py-anyio/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-anytree/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-apache-beam/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-apache-libcloud/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-apex/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-apipkg/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-appdirs/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-applicationinsights/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-appnope/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-apptools/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-apscheduler/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-arcgis/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-archspec/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-argcomplete/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-argh/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-argon2-cffi/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-argparse/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-args/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-arrow/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-arviz/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-asciitree/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-asdf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-ase/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-asgiref/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-asn1crypto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-aspy-yaml/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-asserts/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-asteval/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-astor/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-astpretty/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-astroid/PR546.patch129
-rw-r--r--var/spack/repos/builtin/packages/py-astroid/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-astropy-healpix/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-astropy-helpers/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-astropy/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-astunparse/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-async-generator/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-async-timeout/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-asyncio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-atomicwrites/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-atpublic/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-atropos/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-attrs/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-audioread/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-autograd-gamma/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-autograd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-autopep8/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-auxlib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-avro-json-serializer/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-avro-python3/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-avro/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-awesome-slugify/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-awkward/package.py34
-rw-r--r--var/spack/repos/builtin/packages/py-awkward/pybind11.patch14
-rw-r--r--var/spack/repos/builtin/packages/py-awkward/pybind11_02.patch14
-rw-r--r--var/spack/repos/builtin/packages/py-awkward0/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-awkward1/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-azote/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-azure-batch/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cli-core/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cli/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-azure-common/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-core/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cosmos/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-datalake-store/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-graphrbac/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-identity/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-keyvault/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-loganalytics/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py4
-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.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-keyvault/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-nspkg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-resource/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-nspkg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-storage-common/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-automl-core/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-core/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-dataprep-native/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-dataprep-rslex/package.py79
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-dataprep/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-dataset-runtime/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-pipeline-core/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-pipeline-steps/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-pipeline/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-sdk/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-telemetry/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-train-automl-client/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-train-core/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-train-restclients-hyperdrive/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-azureml-train/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-babel/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-backcall/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-backports-abc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-backports-functools-lru-cache/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-backports-lzma/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-backports-shutil-get-terminal-size/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-backports-ssl-match-hostname/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-backports-tempfile/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-backports-weakref/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-bandit/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-basemap/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-bash-kernel/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-basis-set-exchange/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-batchspawner/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-bayesian-optimization/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-bcbio-gff/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-bcolz/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-bcrypt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-beancount/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-beautifulsoup4/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-beniget/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-bids-validator/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-bigfloat/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-billiard/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-binaryornot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-bintrees/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-binwalk/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-biom-format/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-biomine/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-biopandas/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-biopython/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-bitarray/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-bitstring/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-black/package.py47
-rw-r--r--var/spack/repos/builtin/packages/py-bleach/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-blessed/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-blessings/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-blinker/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-blis/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-blosc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-bmap-tools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-bokeh/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-boltons/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-boom-boot-manager/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-boto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-boto3/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-botocore/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-bottle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-bottleneck/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-breakseq2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-breathe/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-brian/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-brian2/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-brotlipy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-bsddb3/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-bx-python/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-bz2file/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cached-property/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-cachetools/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cairocffi/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-cantoolz/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-cartopy/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-catalogue/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-catkin-pkg/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-cclib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-cdat-lite/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cdo/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-cdsapi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cekit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-celery/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-certifi/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-certipy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-cf-units/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cffi/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-cfgrib/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-cfgv/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cftime/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-chai/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-chainer/package.py52
-rw-r--r--var/spack/repos/builtin/packages/py-chainmap/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-chalice/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-chardet/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-charm4py/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-checkm-genome/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-cheetah/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-cheetah3/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-cheroot/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-cherrypy/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-chronyk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-ci-info/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-cinema-lib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cinemasci/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-citeproc-py/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-click-didyoumean/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-click-plugins/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-click-repl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-click/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-cligj/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-clint/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-clipboard/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cloudpickle/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-clustershell/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cmake-format/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-cmake/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cmocean/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-cnvkit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-coapthon3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-codecov/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-cogent/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-coilmq/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-colorama/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-colorclass/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-colored-traceback/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-colored/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-coloredlogs/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-colorful/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-colorlog/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-colormath/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-colorpy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-colorspacious/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-commonmark/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-configargparse/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-configobj/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-configparser/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-contextily/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-contextlib2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-contextvars/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-convertdate/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cookiecutter/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-cookies/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-counter/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-cov-core/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-coverage/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-coveralls/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-cppheaderparser/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-crcmod/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-crispresso/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-crossmap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-cryolobm/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-cryptography/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-cssselect/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-csvkit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cudf/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-cuml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-cupy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-current/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-cutadapt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cvxopt/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-cvxpy/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-cycler/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cymem/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cyordereddict/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-cython-bbox/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-cython/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-cyvcf2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-d2to1/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dadi/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-dask-glm/package.py47
-rw-r--r--var/spack/repos/builtin/packages/py-dask-ml/package.py65
-rw-r--r--var/spack/repos/builtin/packages/py-dask-ml/xgboost_dependency.patch23
-rw-r--r--var/spack/repos/builtin/packages/py-dask-sphinx-theme/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-dask-xgboost/package.py28
-rw-r--r--var/spack/repos/builtin/packages/py-dask/package.py77
-rw-r--r--var/spack/repos/builtin/packages/py-dataclasses/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-datacube/package.py49
-rw-r--r--var/spack/repos/builtin/packages/py-datalad/package.py108
-rw-r--r--var/spack/repos/builtin/packages/py-datasets/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-dateparser/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-dbf/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-dbfread/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-deap/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-debtcollector/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-debugpy/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-decorator/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-deeptools/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-deeptoolsintervals/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-defusedxml/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-dendropy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-deprecated/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-deprecation/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-descartes/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-devlib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dgl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dictdiffer/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-dill/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-discover/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-diskcache/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-distributed/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-distro/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-django/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dlcpar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dm-tree/package.py59
-rw-r--r--var/spack/repos/builtin/packages/py-dnaio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-docker/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-dockerpy-creds/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-docopt/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-docutils-stubs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-docutils/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-dominate/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-dotnetcore2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-doxypy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-doxypypy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-dpath/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-drmaa/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-dryscrape/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-duecredit/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-dulwich/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-dvc/package.py69
-rw-r--r--var/spack/repos/builtin/packages/py-dxchange/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-dxfile/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-earthengine-api/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-easybuild-easyblocks/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-easybuild-easyconfigs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-easybuild-framework/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-eccodes/package.py49
-rw-r--r--var/spack/repos/builtin/packages/py-ecdsa/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-ecos/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-edffile/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-editdistance/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-efficientnet-pytorch/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-eg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-einops/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-elasticsearch/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-elephant/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-emcee/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-empy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-entrypoints/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-enum34/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-envisage/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-ephem/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-epydoc/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-espresso/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-espressopp/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-et-xmlfile/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-etelemetry/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-eventlet/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-execnet/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-exifread/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-exodus-bundler/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-extension-helpers/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-extras/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-ez-setup/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-f90wrap/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-fabric/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-falcon/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-fallocate/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-fastaindex/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-fastavro/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-fastcache/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-fastcluster/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-fastcov/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-fastdtw/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-fasteners/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-fastrlock/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-faststructure/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-fava/package.py43
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-basix/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-dijitso/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-ffc/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-ffcx/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-fiat/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-instant/package.py28
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-ufl/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-filelock/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-filemagic/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-filterpy/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-findlibs/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-fiona/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-fiscalyear/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-fisher/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-fits-tools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-fixtures/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-flake8-import-order/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-flake8-polyfill/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-flake8/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-flameprof/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-flask-babel/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-flask-compress/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-flask-cors/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-flask-restful/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-flask-socketio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-flask/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-flatten-dict/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-flexmock/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-flexx/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-flit-core/package.py32
-rw-r--r--var/spack/repos/builtin/packages/py-flit/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-flufl-lock/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-flye/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-fn-py/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-fortran-language-server/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-fortranformat/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-fparser/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-fprettify/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-freezegun/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-fsspec/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-ftfy/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-funcsigs/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-functools32/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-funcy/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-fusepy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-future/package.py30
-rw-r--r--var/spack/repos/builtin/packages/py-futures/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-fuzzywuzzy/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-fypp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-gast/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-gcovr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-gcs-oauth2-boto-plugin/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-gdbgui/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-gdc-client/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-gee-asset-manager/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-geeadd/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-geeup/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-gemini/package.py58
-rw-r--r--var/spack/repos/builtin/packages/py-genders/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-geneimpacts/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-genshi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-gensim/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-geoalchemy2/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-geocube/package.py28
-rw-r--r--var/spack/repos/builtin/packages/py-geographiclib/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-geopandas/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-geoplot/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-geopy/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-getorganelle/package.py33
-rw-r--r--var/spack/repos/builtin/packages/py-gevent/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-gf256/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-gffutils/package.py30
-rw-r--r--var/spack/repos/builtin/packages/py-git-review/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-gitdb/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-gitpython/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-glmnet/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-gluoncv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-gnuplot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-goatools/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-gooey/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-google-api-core/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-google-api-python-client/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-google-apitools/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-google-auth-httplib2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-google-auth-oauthlib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-google-auth/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-google-cloud-core/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-google-cloud-storage/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-google-pasta/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-google-resumable-media/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-google/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-googleapis-common-protos/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-googledrivedownloader/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-gosam/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-gpaw/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-gpustat/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-gputil/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-gpy/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-gpytorch/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-gql/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-grandalf/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-graphql-core/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-graphviz/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-greenlet/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-grequests/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-griddataformats/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-grpcio/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-gsd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-gsi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-gsutil/package.py32
-rw-r--r--var/spack/repos/builtin/packages/py-guidata/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-guiqwt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-gym/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-h11/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-h2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-h5glance/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-h5netcdf/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-h5py/package.py59
-rw-r--r--var/spack/repos/builtin/packages/py-h5sh/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-hacking/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-haphpipe/package.py49
-rw-r--r--var/spack/repos/builtin/packages/py-hatchet/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-hdbscan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-hdfs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-healpy/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-heapdict/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-hepdata-validator/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-hepunits/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-hieroglyph/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-hiredis/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-holland-backup/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-horovod/package.py75
-rw-r--r--var/spack/repos/builtin/packages/py-hpack/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-hpcbench/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-hpccm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-hstspreload/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-html2text/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-html5lib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-htmlgen/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-htseq/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-httpbin/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-httpcore/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-httplib2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-httpretty/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-httptools/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-httpx/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-huggingface-hub/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-humanfriendly/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-humanize/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-hvac/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-hyperframe/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-hyperopt/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-hypothesis/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-ibm-cloud-sdk-core/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-ibm-watson/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-ics/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-identify/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-idna-ssl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-idna/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-illumina-utils/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-ilmbase/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-imageio-ffmpeg/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-imageio/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-imagesize/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-imgaug/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-iminuit/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-immutables/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-importlib-metadata/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-importlib-resources/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-importlib/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-inference-schema/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-inheritance/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-iniconfig/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-iniparse/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-intel-openmp/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-intervaltree/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-invoke/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-iocapture/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-ipaddress/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-ipdb/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-ipykernel/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-ipyparallel/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-ipython-cluster-helper/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-ipython-genutils/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-ipython/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-ipywidgets/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-irpf90/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-iso8601/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-isodate/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-isort/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-itk/package.py107
-rw-r--r--var/spack/repos/builtin/packages/py-itsdangerous/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-jaraco-functools/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-javaproperties/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jdatetime/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jdcal/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-jedi/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-jeepney/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-jellyfish/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-jinja2-time/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-jinja2/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-jmespath/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-joblib/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-jplephem/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-jprops/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jpype1/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jsmin/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-json-get/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-json5/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jsondiff/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jsonpatch/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jsonpath-ng/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-jsonpickle/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-jsonpointer/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-jsonref/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jsonschema/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-junit-xml/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-client/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-console/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-core/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-packaging/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-server/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter-telemetry/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-jupyter/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jupyterhub/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-jupyterlab-pygments/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-jupyterlab-server/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-jupyterlab/package.py43
-rw-r--r--var/spack/repos/builtin/packages/py-keras-applications/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-keras-preprocessing/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-keras/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-kerberos/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-keyboard/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-keyring/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-keyrings-alt/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-keystoneauth1/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-kitchen/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-kiwisolver/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-kmodes/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-knack/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-kombu/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-kornia/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-kubernetes/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-labours/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-lap/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-lark-parser/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-latexcodec/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-lazy-object-proxy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-lazy-property/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-lazy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-lazyarray/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-leather/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-lerc/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-libconf/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-libensemble/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-librosa/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-lifelines/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-lightgbm/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-ligo-segments/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-line-profiler/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-linecache2/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-lineenhancer/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-lit/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-llvmlite/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-lmfit/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-lmodule/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-localcider/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-locket/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-lockfile/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-logilab-common/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-louie/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-lru-dict/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-lscsoft-glue/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-luigi/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-lxml/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-lz4/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-lzstring/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-m2r/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-macholib/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-machotools/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-macs2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-maestrowf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-magic/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mailchecker/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-mako/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-mapclassify/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-markdown/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-markdown2/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-markovify/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-markupsafe/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-matplotlib-inline/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-matplotlib/package.py55
-rw-r--r--var/spack/repos/builtin/packages/py-mayavi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-mccabe/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-mdanalysis/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-mechanize/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-memory-profiler/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-memprof/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-mercantile/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-merlin/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-meshio/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-meshio/setup.patch10
-rw-r--r--var/spack/repos/builtin/packages/py-metasv/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-methylcode/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-metpy/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-mg-rast-tools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mido/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mikado/package.py41
-rw-r--r--var/spack/repos/builtin/packages/py-minrpc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-misopy/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-mistune/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-mixedhtseq/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-mlperf-logging/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mlxtend/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-mmcv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mmtf-python/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-mo-pack/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-mock/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-modred/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-moltemplate/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-monotonic/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-monty/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-more-itertools/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-motmetrics/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-mouseinfo/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-moviepy/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-mpi4py/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-mpld3/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-mpmath/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-mrcfile/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-msal-extensions/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-msal/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-msgpack-numpy/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-msgpack/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-msrest/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-msrestazure/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-multi-key-dict/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-multidict/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-multipledispatch/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-multiprocess/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-multiqc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-munch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-murmurhash/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-mutagen/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-mx/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-myhdl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-mypy-extensions/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-mypy/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-mysql-connector-python/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mysqlclient/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-mysqldb1/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-nanotime/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-natsort/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-nbclassic/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-nbclient/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-nbconvert/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-nbformat/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-nbmake/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-nbsphinx/package.py34
-rw-r--r--var/spack/repos/builtin/packages/py-nc-time-axis/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-ndg-httpsclient/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-neo/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-neobolt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-neotime/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-nest-asyncio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-nestle/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-netaddr/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-netcdf4/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-netifaces/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-netket/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-networkit/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-networkx/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-neurokit2/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-nibabel/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-nilearn/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-nipype/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-nltk/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-nltk/resourcegen.py3
-rw-r--r--var/spack/repos/builtin/packages/py-nodeenv/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-nose-cov/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-nose/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-nose2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-nosexcover/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-notebook/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-ntlm-auth/package.py19
-rwxr-xr-xvar/spack/repos/builtin/packages/py-ntplib/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-num2words/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-numba/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-numcodecs/apple-clang-12.patch14
-rw-r--r--var/spack/repos/builtin/packages/py-numcodecs/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-numexpr/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-numexpr3/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/add_fj_compiler.patch20
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/add_fj_compiler2.patch20
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/add_fj_compiler3.patch20
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/add_fj_compiler4.patch20
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/check_executables.patch16
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/check_executables2.patch16
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/check_executables3.patch16
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/check_executables4.patch16
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/check_executables5.patch16
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/package.py92
-rw-r--r--var/spack/repos/builtin/packages/py-numpydoc/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-nvidia-ml-py/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-nvidia-ml-py3/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-oauth2client/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-oauthlib/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-olefile/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-omegaconf/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-onnx/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-ont-fast5-api/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-opcodes/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-opencensus-context/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-opencensus/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-openidc-client/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-openmc/package.py58
-rw-r--r--var/spack/repos/builtin/packages/py-openpmd-validator/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-openpyxl/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-openslide-python/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-opentuner/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-opppy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-opt-einsum/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-or-tools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-ordered-set/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-ordereddict/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-os-service-types/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-oset/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-oslo-config/package.py33
-rw-r--r--var/spack/repos/builtin/packages/py-oslo-i18n/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-oslo-serialization/package.py28
-rw-r--r--var/spack/repos/builtin/packages/py-oslo-utils/package.py34
-rw-r--r--var/spack/repos/builtin/packages/py-osqp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-overpy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-owslib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pacifica-downloader/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-pacifica-namespace/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-pacifica-uploader/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-packaging/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-pager/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-palettable/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pamela/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pandas/package.py51
-rw-r--r--var/spack/repos/builtin/packages/py-pandocfilters/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-parameterized/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-paramiko/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-paramz/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-parse/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-parsedatetime/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-parso/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-partd/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-particle/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-path-py/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pathlib/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-pathlib2/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-pathos/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-pathspec/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-pathtools/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-patool/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-patsy/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pauvre/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pbr/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-peachpy/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-pem/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-pep8-naming/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pep8/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-performance/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-periodictable/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-petastorm/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-petsc4py/ldshared-dev.patch13
-rw-r--r--var/spack/repos/builtin/packages/py-petsc4py/ldshared.patch13
-rw-r--r--var/spack/repos/builtin/packages/py-petsc4py/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-pexpect/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-phonenumbers/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-phonopy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pickleshare/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-picmistandard/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-picrust/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-picrust2/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-pid/package.py4
-rwxr-xr-xvar/spack/repos/builtin/packages/py-pika/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-pil/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pillow-simd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pillow/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-pint/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-pip/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-pipits/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pispino/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pkgconfig/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-pkginfo/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-plac/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-planar/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-planet/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-plotly/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-pluggy/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-ply/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pmw/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pomegranate/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pooch/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-portalocker/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-portend/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-poster/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pot/175.patch59
-rw-r--r--var/spack/repos/builtin/packages/py-pot/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-pox/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-poyo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-ppft/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-pre-commit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-preshed/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pretrainedmodels/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-prettytable/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-profilehooks/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-proglog/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-progress/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-progressbar2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-projectq/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-prometheus-client/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-promise/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-prompt-toolkit/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-protobuf/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-prov/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-psutil/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-psyclone/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-psycopg2/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-ptyprocess/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pudb/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pure-eval/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pure-sasl/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-py-cpuinfo/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-py-spy/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-py/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-py2bit/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-py2cairo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-py2neo/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-py4j/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-py6s/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pyaestro/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-pyamg/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-pyani/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pyarrow/for_aarch64.patch14
-rw-r--r--var/spack/repos/builtin/packages/py-pyarrow/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-pyasn1-modules/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyasn1/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyautogui/package.py32
-rw-r--r--var/spack/repos/builtin/packages/py-pybedtools/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-pybids/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-pybigwig/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pybind11-stubgen/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-pybind11/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-pybtex-docutils/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-pybtex/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-pycairo/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-pycares/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pycbc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pychecker/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pycifrw/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pycmd/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pycocotools/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-pycodestyle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pycosat/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pycparser/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pycrypto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pycuda/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-pycurl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pydantic/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-pydap/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-pydatalog/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pydeprecate/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-pydeps/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pydicom/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-pydispatcher/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pydmd/isuue-133.patch31
-rw-r--r--var/spack/repos/builtin/packages/py-pydmd/package.py49
-rw-r--r--var/spack/repos/builtin/packages/py-pydocstyle/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-pydot/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pydot2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pydotplus/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pydv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyeda/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyelftools/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pyem/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-pyepsg/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pyface/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyfaidx/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pyfasta/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pyfftw/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-pyfiglet/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-pyfits/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyflakes/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pygdal/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pygdbmi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pygelf/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pygeos/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-pygetwindow/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-pygit2/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-pygithub/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-pyglet/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pygments-pytest/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pygments/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-pygobject/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pygps/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pygpu/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-pygresql/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pygtk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pygtrie/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-pyheadtail/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pyinstrument/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-pyjnius/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-pyjwt/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-pyke/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pykml/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pykokkos-base/package.py62
-rw-r--r--var/spack/repos/builtin/packages/py-pykwalify/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyliblzma/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pylikwid/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-pylint/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-pylops/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-pymatgen/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pymc3/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pymeeus/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyminifier/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pymol/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pymongo/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pymorph/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pympler/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pymsgbox/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-pymumps/package.py46
-rw-r--r--var/spack/repos/builtin/packages/py-pymumps/py-pymumps.setup.patch15
-rw-r--r--var/spack/repos/builtin/packages/py-pymysql/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pynacl/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pynio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pynn/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-pynvml/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-pyodbc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyomo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyopencl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyopenssl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pypar/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyparsing/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-pypeflow/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pypeg2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyperclip/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pyperf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyprecice/deactivate-version-check-via-pip.patch32
-rw-r--r--var/spack/repos/builtin/packages/py-pyprecice/package.py49
-rw-r--r--var/spack/repos/builtin/packages/py-pyprof2html/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pyproj/package.py55
-rw-r--r--var/spack/repos/builtin/packages/py-pyqi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyqt4/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-pyqt5/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-pyquaternion/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyrad/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyrect/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-pyrosar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyrsistent/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-pysam/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pyscaf/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pyscf/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-pyscreeze/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-pyserial/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyshp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyside/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-pyside2/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-pysmartdl/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pysocks/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pysolar/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pyspark/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-pysqlite/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pystac/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-pytailf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-arraydiff/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-benchmark/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-cache/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-check-links/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-cov/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-cpp/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-doctestplus/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-flake8/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-flakes/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-forked/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-html/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-httpbin/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-isort/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-metadata/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-mock/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-mypy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-openfiles/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-pep8/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-qt/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-runner/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-timeout/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-xdist/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pytest/package.py61
-rw-r--r--var/spack/repos/builtin/packages/py-python-benedict/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-python-box/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-python-certifi-win32/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-python-daemon/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-python-dateutil/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-python-docs-theme/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-editor/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-python-engineio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-fmask/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-fsutil/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-python-gitlab/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-igraph/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-python-jenkins/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-json-logger/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-keystoneclient/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-python-ldap/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-python-levenshtein/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-logstash/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-louvain/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-python-lzo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-magic/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-mapnik/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-python-meep/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-python-memcached/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-python-oauth2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-python-rapidjson/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-slugify/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-socketio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-subunit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-python-swiftclient/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-python-utils/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-python-xlib/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-python-xmp-toolkit/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-python3-xlib/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-pythonqwt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pythonsollya/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-pythran/omp.patch70
-rw-r--r--var/spack/repos/builtin/packages/py-pythran/package.py75
-rw-r--r--var/spack/repos/builtin/packages/py-pytimeparse/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pytools/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pytorch-gradual-warmup-lr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pytorch-lightning/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-pytorch-sphinx-theme/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-pytweening/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-pytz/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-pyudev/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyugrid/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pyusb/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-pyutilib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyvcf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pywavelets/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pywcs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyyaml/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-pyzmq/package.py28
-rw-r--r--var/spack/repos/builtin/packages/py-qsymm/package.py30
-rw-r--r--var/spack/repos/builtin/packages/py-qtawesome/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-qtconsole/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-qtpy/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-quantities/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-quast/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-queryablelist/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-questionary/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-radiant-mlhub/package.py24
-rwxr-xr-xvar/spack/repos/builtin/packages/py-radical-entk/package.py27
-rwxr-xr-xvar/spack/repos/builtin/packages/py-radical-gtod/package.py25
-rwxr-xr-xvar/spack/repos/builtin/packages/py-radical-pilot/package.py29
-rwxr-xr-xvar/spack/repos/builtin/packages/py-radical-saga/package.py30
-rwxr-xr-x[-rw-r--r--]var/spack/repos/builtin/packages/py-radical-utils/package.py34
-rw-r--r--var/spack/repos/builtin/packages/py-ranger-fm/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-rarfile/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-rasterio/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-ratelim/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-raven/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-ray/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-rbtools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-rdflib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-readme-renderer/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-recommonmark/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-redis/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-regex/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-reindent/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-reportlab/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-repoze-lru/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-reproject/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-requests-ftp/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-requests-futures/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-requests-mock/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-requests-ntlm/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-requests-oauthlib/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-requests-toolbelt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-requests-unixsocket/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-requests/package.py31
-rw-r--r--var/spack/repos/builtin/packages/py-resampy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-responses/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-restview/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-resultsfile/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-retry-decorator/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-retrying/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-rfc3986/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-rich/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-rios/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-rioxarray/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-rise/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-rmm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-rnacocktail/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-rnc2rng/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-robotframework/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-rope/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-rosdep/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-rosdistro/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-rosinstall-generator/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-rosinstall/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-rospkg/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-rply/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-rpy2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-rq/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-rsa/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-rseqc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-rtree/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-ruamel-ordereddict/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-ruamel-yaml/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-rx/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-s3cmd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-s3fs/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-s3transfer/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-sacremoses/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-saga-python/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-salib/package.py28
-rw-r--r--var/spack/repos/builtin/packages/py-sanic/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-scandir/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-scientificpython/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-build/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-fmm/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-image/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-learn/package.py32
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-optimize/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-scipy/package.py92
-rw-r--r--var/spack/repos/builtin/packages/py-scipy/scipy-clang.patch13
-rw-r--r--var/spack/repos/builtin/packages/py-scoop/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-scp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-scs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-seaborn/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-secretstorage/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-segmentation-models-pytorch/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-selenium/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-semantic-version/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-semver/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-send2trash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-sentencepiece/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sentry-sdk/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-seqeval/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-seriate/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-setproctitle/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-setuptools-git/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-setuptools-rust/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-setuptools-scm-git-archive/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-setuptools-scm/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-setuptools/package.py50
-rw-r--r--var/spack/repos/builtin/packages/py-sfepy/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-sgp4/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sh/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-shapely/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-shiboken/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-shortuuid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-shroud/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-shtab/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-sierrapy/package.py33
-rw-r--r--var/spack/repos/builtin/packages/py-simplegeneric/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-simplejson/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-simplekml/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-singledispatch/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-sip/package.py27
-rw-r--r--var/spack/repos/builtin/packages/py-six/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-slepc4py/ldshared-dev.patch13
-rw-r--r--var/spack/repos/builtin/packages/py-slepc4py/ldshared.patch13
-rw-r--r--var/spack/repos/builtin/packages/py-slepc4py/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-slurm-pipeline/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-smart-open/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-smmap/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-snappy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-sncosmo/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-sniffio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-snowballstemmer/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-snuggs/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-sonlib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-sortedcollections/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-sortedcontainers/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-soundfile/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-soupsieve/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-spacy-models-en-core-web-sm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-spacy-models-en-vectors-web-lg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-spacy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sparse/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-spatialist/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-spatialite/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-spdlog/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-spectra/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-speech-recognition/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-spefile/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-spgl1/package.py30
-rw-r--r--var/spack/repos/builtin/packages/py-spglib/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-sphinx-bootstrap-theme/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-sphinx-copybutton/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sphinx-gallery/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-sphinx/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-applehelp/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py33
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-devhelp/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-htmlhelp/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-issuetracker/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-jsmath/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-programoutput/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-qthelp/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-serializinghtml/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-websupport/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-sphobjinv/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-spyder/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-spykeutils/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sqlalchemy-utils/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-sqlalchemy/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-sqlparse/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-srsly/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-sshtunnel/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-statsmodels/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-stdlib-list/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-stestr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-stevedore/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-stopit/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-storm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-stratify/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-stsci-distutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-submitit/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-subprocess32/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-subrosa/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-svgpathtools/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-svgwrite/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-symengine/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-symfit/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-sympy/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-syned/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-systemd-python/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tables/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-tabulate/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tap-py/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tatsu/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-tblib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tempora/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tenacity/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-tensorboard-plugin-wit/package.py34
-rw-r--r--var/spack/repos/builtin/packages/py-tensorboard/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-tensorboardx/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-tensorflow-estimator/package.py34
-rw-r--r--var/spack/repos/builtin/packages/py-tensorflow-hub/package.py75
-rw-r--r--var/spack/repos/builtin/packages/py-tensorflow-probability/package.py84
-rw-r--r--var/spack/repos/builtin/packages/py-tensorflow/package.py142
-rw-r--r--var/spack/repos/builtin/packages/py-termcolor/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-terminado/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-terminaltables/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-testfixtures/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-testinfra/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-testpath/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-testrepository/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-testresources/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-testscenarios/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-testtools/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tetoolkit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-text-unidecode/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-textblob/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-texttable/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tfdlpack/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-theano/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-thinc/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-thirdorder/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-threadpoolctl/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-tifffile/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-timm/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-tinyarray/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-tokenizers/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-toml/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-tomli/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-tomlkit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tomopy/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-toolz/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-torch-cluster/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-torch-geometric/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-torch-nvidia-apex/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-torch-scatter/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-torch-sparse/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-torch-spline-conv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-torch/cusparseGetErrorString.patch53
-rw-r--r--var/spack/repos/builtin/packages/py-torch/package.py442
-rw-r--r--var/spack/repos/builtin/packages/py-torch/sleef.patch12
-rw-r--r--var/spack/repos/builtin/packages/py-torchaudio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-torchfile/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-torchgeo/package.py77
-rw-r--r--var/spack/repos/builtin/packages/py-torchmeta/package.py28
-rw-r--r--var/spack/repos/builtin/packages/py-torchmetrics/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-torchsummary/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-torchtext/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-torchvision/package.py32
-rw-r--r--var/spack/repos/builtin/packages/py-tornado/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-tox/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tpot/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-tqdm/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-traceback2/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-traitlets/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-traits/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-traitsui/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-transformers/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-treehash/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tuiview/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-twine/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-twisted/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-typed-ast/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-typesentry/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-typing-extensions/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-typing/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-tzlocal/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-ucsf-pyem/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-ucx-py/package.py25
-rw-r--r--var/spack/repos/builtin/packages/py-ujson/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-umalqurra/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-umi-tools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-uncertainties/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-unicycler/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-unidecode/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-unittest2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-unittest2py3k/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-unshare/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-update-checker/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-uproot/package.py52
-rw-r--r--var/spack/repos/builtin/packages/py-uproot3-methods/package.py26
-rw-r--r--var/spack/repos/builtin/packages/py-uproot3/package.py30
-rw-r--r--var/spack/repos/builtin/packages/py-uproot4/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-uritemplate/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-urllib3/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-urwid/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-us/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-usgs/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-utils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-uvloop/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-uvw/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-uwsgi/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-vcf-kit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-vcrpy/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-vcstool/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-vcstools/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-vcversioner/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-vermin/package.py14
-rw-r--r--var/spack/repos/builtin/packages/py-versioneer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-vine/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-virtualenv-clone/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-virtualenv/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-virtualenvwrapper/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-visdom/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-voluptuous/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-vsc-base/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-vsc-install/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-vsts/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-walinuxagent/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-wand/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-wandb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-warlock/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-warpx/package.py54
-rw-r--r--var/spack/repos/builtin/packages/py-wasabi/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-watchdog/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-wcsaxes/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-wcwidth/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-weave/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-webencodings/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-webkit-server/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-weblogo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-webob/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-websocket-client/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-websockets/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-werkzeug/package.py13
-rw-r--r--var/spack/repos/builtin/packages/py-wget/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-whatshap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-wheel/package.py9
-rw-r--r--var/spack/repos/builtin/packages/py-whichcraft/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-whoosh/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-widgetsnbextension/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-wincertstore/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-word2number/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-workload-automation/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-wradlib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-wrapt/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-wstool/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-wub/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-wxmplot/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-wxpython/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-xarray/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-xattr/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-xdot/package.py7
-rw-r--r--var/spack/repos/builtin/packages/py-xenv/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-xgboost/package.py90
-rw-r--r--var/spack/repos/builtin/packages/py-xlrd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-xlsxwriter/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-xlwt/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-xmlrunner/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-xmltodict/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-xopen/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-xpyb/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-xvfbwrapper/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-xxhash/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-yacs/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-yahmm/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-yajl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-yamlreader/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-yapf/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-yarl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-yolk3k/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-youtube-dl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-yt/package.py29
-rw-r--r--var/spack/repos/builtin/packages/py-ytopt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-zarr/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-zc-buildout/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-zc-lockfile/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-zict/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-zipp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-zope-event/package.py10
-rw-r--r--var/spack/repos/builtin/packages/py-zope-interface/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-zxcvbn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/pythia6/package.py15
-rw-r--r--var/spack/repos/builtin/packages/pythia6/pythia6-root.patch8
-rw-r--r--var/spack/repos/builtin/packages/pythia6/pythia6.patch13
-rw-r--r--var/spack/repos/builtin/packages/pythia8/package.py9
-rw-r--r--var/spack/repos/builtin/packages/python/package.py451
-rw-r--r--var/spack/repos/builtin/packages/q-e-sirius/package.py337
-rw-r--r--var/spack/repos/builtin/packages/qbank/package.py7
-rw-r--r--var/spack/repos/builtin/packages/qbox/package.py2
-rw-r--r--var/spack/repos/builtin/packages/qca/package.py2
-rw-r--r--var/spack/repos/builtin/packages/qcachegrind/package.py3
-rw-r--r--var/spack/repos/builtin/packages/qd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/qemu/package.py2
-rw-r--r--var/spack/repos/builtin/packages/qgis/package.py28
-rw-r--r--var/spack/repos/builtin/packages/qgis/pyqt5_3165x.patch29
-rw-r--r--var/spack/repos/builtin/packages/qgraf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/qhull/package.py2
-rw-r--r--var/spack/repos/builtin/packages/qjson/package.py2
-rw-r--r--var/spack/repos/builtin/packages/qmcpack/package.py62
-rw-r--r--var/spack/repos/builtin/packages/qmd-progress/package.py2
-rw-r--r--var/spack/repos/builtin/packages/qnnpack/package.py37
-rw-r--r--var/spack/repos/builtin/packages/qorts/package.py5
-rw-r--r--var/spack/repos/builtin/packages/qperf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/qrupdate/package.py27
-rw-r--r--var/spack/repos/builtin/packages/qscintilla/package.py32
-rw-r--r--var/spack/repos/builtin/packages/qt-creator/package.py8
-rw-r--r--var/spack/repos/builtin/packages/qt/package.py376
-rw-r--r--var/spack/repos/builtin/packages/qt/qt5-15-gcc-10.patch39
-rw-r--r--var/spack/repos/builtin/packages/qt/qt514-isystem.patch107
-rw-r--r--var/spack/repos/builtin/packages/qt/qt514.patch9
-rw-r--r--var/spack/repos/builtin/packages/qtgraph/package.py5
-rw-r--r--var/spack/repos/builtin/packages/qthreads/package.py60
-rw-r--r--var/spack/repos/builtin/packages/qtkeychain/package.py2
-rw-r--r--var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch72
-rw-r--r--var/spack/repos/builtin/packages/quantum-espresso/fj-fox.patch10
-rw-r--r--var/spack/repos/builtin/packages/quantum-espresso/fj-intent.6.4.1.patch11
-rw-r--r--var/spack/repos/builtin/packages/quantum-espresso/fj.6.5.patch23
-rw-r--r--var/spack/repos/builtin/packages/quantum-espresso/fj.6.6.patch23
-rw-r--r--var/spack/repos/builtin/packages/quantum-espresso/package.py140
-rw-r--r--var/spack/repos/builtin/packages/quartz/package.py4
-rw-r--r--var/spack/repos/builtin/packages/qucs/package.py64
-rw-r--r--var/spack/repos/builtin/packages/quicksilver/package.py2
-rw-r--r--var/spack/repos/builtin/packages/quinoa/package.py6
-rw-r--r--var/spack/repos/builtin/packages/quota/package.py4
-rw-r--r--var/spack/repos/builtin/packages/qwt/package.py5
-rw-r--r--var/spack/repos/builtin/packages/qwtpolar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-a4/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-a4base/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-a4classif/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-a4core/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-a4preproc/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-a4reporting/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-abadata/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-abaenrichment/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-abind/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-absseq/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-acde/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-acepack/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-acgh/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-acme/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-ada/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-adabag/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ade4/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-adegenet/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-adegraphics/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-adephylo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-adespatial/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-adgoftest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-adsplit/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-aer/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-afex/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-affxparser/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-affy/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-affycomp/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-affycompatible/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-affycontam/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-affycoretools/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-affydata/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-affyexpress/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-affyilm/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-affyio/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-affypdnn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-affyplm/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-affyqcreport/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-affyrnadegradation/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-agdex/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-agilp/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-agimicrorna/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-aims/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-aldex2/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-allelicimbalance/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-alpine/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-als/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-alsace/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-altcdfenvs/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-amap/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-amelia/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-ampliqueso/package.py3
-rw-r--r--var/spack/repos/builtin/packages/r-analysispageserver/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-anaquin/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-aneufinder/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-aneufinderdata/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-animation/package.py3
-rw-r--r--var/spack/repos/builtin/packages/r-annaffy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-annotate/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-annotationdbi/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-annotationfilter/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-annotationforge/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-annotationhub/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-anytime/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-aod/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ape/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-argparse/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-aroma-light/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-askpass/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-base/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-code/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-data-uk/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-data-us/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-data/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-datetimes/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-files/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-matrices/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-models/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-numbers/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-properties/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-reflection/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-sets/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-strings/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-assertive-types/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-assertive/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-assertthat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-backports/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-bamsignals/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-base64/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-base64enc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-bayesm/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-bayesplot/package.py34
-rw-r--r--var/spack/repos/builtin/packages/r-bbmisc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-beachmat/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-beanplot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-beeswarm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-bfast/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-bfastspatial/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-bglr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-bh/package.py3
-rw-r--r--var/spack/repos/builtin/packages/r-biasedurn/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-bibtex/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-bigalgebra/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-bigmemory-sri/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-bigmemory/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-bindr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-bindrcpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-bio3d/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-biobase/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-biocfilecache/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-biocgenerics/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-biocinstaller/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-biocmanager/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-biocneighbors/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-biocparallel/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-biocsingular/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-biocstyle/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-biocversion/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-biom-utils/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-biomart/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-biomartr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-biomformat/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-biostrings/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-biovizbase/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-bit/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-bit64/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-bitops/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-blavaan/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-blob/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-blockmodeling/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-bmp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-bookdown/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-boot/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-boruta/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-brew/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-bridgesampling/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-brio/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-brms/package.py52
-rw-r--r--var/spack/repos/builtin/packages/r-brobdingnag/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-broom/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-bsgenome-hsapiens-ucsc-hg19/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-bsgenome/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-bsseq/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-bumphunter/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-c50/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-ca/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-cairo/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-callr/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-car/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-caracas/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-cardata/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-caret/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-caretensemble/package.py33
-rw-r--r--var/spack/repos/builtin/packages/r-caroline/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-category/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-catools/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-cdcfluview/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-cellranger/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-champ/package.py60
-rw-r--r--var/spack/repos/builtin/packages/r-champdata/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-checkmate/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-checkpoint/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-chemometrics/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-chipseq/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-chron/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-circlize/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-circstats/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-class/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-classint/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-cli/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-clipr/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-clisymbols/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-clue/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-cluster/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-clustergeneration/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-clusterprofiler/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-cner/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-coda/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-codetools/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-codex/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-coin/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-colorspace/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-colourpicker/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-combinat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-commonmark/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-complexheatmap/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-compositions/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-compquadform/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-condop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-conquer/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-construct/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-convevol/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-copula/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-corhmm/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-corpcor/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-corrplot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-countrycode/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-covr/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-cowplot/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-cpp11/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-crayon/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-credentials/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-crosstalk/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-crul/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-ctc/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-cubature/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-cubist/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-curl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-dada2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-data-table/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-dbi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-dbplyr/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-debugme/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-decipher/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-delayedarray/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-delayedmatrixstats/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-deldir/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-dendextend/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-deoptim/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-deoptimr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-deriv/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-desc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-deseq/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-deseq2/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-desolve/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-devtools/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-dexseq/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-diagrammer/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-dicekriging/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-dichromat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-diffobj/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-diffusionmap/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-digest/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-diptest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-dirichletmultinomial/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-dismo/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-diversitree/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-dmrcate/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-dnacopy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-do-db/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-domc/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-doparallel/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-dorng/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-dose/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-dosnow/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-dotcall64/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-downloader/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-dplyr/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-dqrng/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-dss/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-dt/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-dtw/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-dygraphs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-dynamictreecut/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-e1071/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-earth/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-ecp/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-edger/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-effects/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-elemstatlearn/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-ellipse/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-ellipsis/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-emmeans/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-emmli/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-energy/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-enrichplot/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-ensembldb/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-envstats/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-ergm/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-estimability/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-europepmc/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-evaluate/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-evd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-exactextractr/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-exomecopy/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-exomedepth/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-experimenthub/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-expint/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-expm/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-factoextra/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-factominer/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-fansi/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-farver/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-fastcluster/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-fastdigest/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-fastica/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-fastmap/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-fastmatch/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-fastmatrix/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg18/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg19/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-ff/package.py51
-rw-r--r--var/spack/repos/builtin/packages/r-fftwtools/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-fgsea/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-fields/package.py32
-rw-r--r--var/spack/repos/builtin/packages/r-filehash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-findpython/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-fit-models/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-fitdistrplus/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-flashclust/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-flexclust/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-flexmix/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-fnn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-forcats/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-foreach/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-forecast/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-foreign/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-formatr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-formula/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-fpc/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-fpcompare/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-fracdiff/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-fs/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-futile-logger/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-futile-options/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-future-apply/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-future/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-gamlss-data/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gamlss-dist/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-gamlss/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-gamm4/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-gbm/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-gbrd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gcrma/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-gdalutils/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-gdata/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gdsfmt/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-geiger/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-genefilter/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-genelendatabase/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-genemeta/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-geneplotter/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-generics/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-genetics/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-genie3/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-genomeinfodb/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-genomeinfodbdata/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-genomicalignments/package.py34
-rw-r--r--var/spack/repos/builtin/packages/r-genomicfeatures/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-genomicranges/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-gensa/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-geomorph/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-geonames/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-geoquery/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-geor/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-geosphere/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gert/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-getopt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-getoptlong/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-ggally/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-ggbeeswarm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ggbio/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-ggdendro/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-ggforce/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-ggjoy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ggmap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ggplot2/package.py32
-rw-r--r--var/spack/repos/builtin/packages/r-ggplotify/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-ggpubr/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-ggraph/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-ggrepel/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-ggridges/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-ggsci/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ggsignif/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ggthemes/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-ggvis/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-gh/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-gistr/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-git2r/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-gitcreds/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-glimma/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-glmnet/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-globaloptions/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-globals/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-globaltest/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-glue/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-gmodels/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-gmp/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-go-db/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-goftest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gofuncr/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-googlevis/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-goplot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gosemsim/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-goseq/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-gostats/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-gower/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-gparotation/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-gplots/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-graph/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-graphlayouts/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-grbase/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-gridbase/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gridextra/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gridgraphics/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-gsa/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-gsalib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gseabase/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-gsl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gsodr/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-gss/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-gstat/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-gsubfn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gtable/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-gtools/package.py62
-rw-r--r--var/spack/repos/builtin/packages/r-gtrellis/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-gviz/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-gwmodel/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-haven/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-hdf5array/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-hdf5r/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-hexbin/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-hh/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-highr/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-hmisc/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-hms/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-hoardr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-htmltable/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-htmltools/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-htmlwidgets/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-httpcode/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-httpuv/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-httr/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-hwriter/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-hypergraph/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-ica/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-igraph/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-illumina450probevariants-db/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-illuminahumanmethylation450kanno-ilmn12-hg19/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-illuminahumanmethylation450kmanifest/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-illuminahumanmethylationepicanno-ilm10b4-hg19/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-illuminahumanmethylationepicmanifest/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-illuminaio/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-imager/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-impute/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-influencer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ini/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-inline/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-insight/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-interactivedisplaybase/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-intervals/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-inum/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ipred/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-iranges/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-irdisplay/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-irkernel/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-irlba/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-isdparser/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-islr/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-iso/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-isoband/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-isva/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-iterators/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-jade/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-janitor/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-jaspar2018/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-jomo/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-jpeg/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-jsonlite/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-kegg-db/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-kegggraph/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-keggrest/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-kernlab/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-kernsmooth/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-kknn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-knitr/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-kpmt/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-ks/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-labeling/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-labelled/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-lambda-r/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-laplacesdemon/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-lars/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-later/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-lattice/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-latticeextra/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-lava/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-lavaan/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-lazyeval/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ldheatmap/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-leafem/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-leaflet-providers/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-leaflet/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-leafpop/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-leaps/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-learnbayes/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-leiden/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-lfe/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-lhs/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-libcoin/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-lifecycle/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-limma/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-limsolve/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-listenv/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-lme4/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-lmertest/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-lmtest/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-lobstr/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-locfit/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-log4r/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-loo/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-lpsolve/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-lsei/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-lubridate/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-lumi/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-lwgeom/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-magic/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-magick/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-magrittr/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-makecdfenv/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-maldiquant/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-manipulatewidget/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-mapplots/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-mapproj/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-maps/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-maptools/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-mapview/package.py38
-rw-r--r--var/spack/repos/builtin/packages/r-markdown/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-marray/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-mass/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-mathjaxr/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-matlab/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-matr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-matrix/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-matrixgenerics/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-matrixmodels/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-matrixstats/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-mclust/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-mcmc/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-mcmcglmm/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-mcmcpack/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-mco/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-mda/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-memoise/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-memuse/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-mergemaid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-metap/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-methylumi/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-mgcv/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-mgraster/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-mice/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-microbenchmark/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-mime/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-minfi/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-miniui/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-minqa/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-misc3d/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-missmethyl/package.py48
-rw-r--r--var/spack/repos/builtin/packages/r-mitml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-mitools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-mixtools/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-mlbench/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-mlinterfaces/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-mlr/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-mlrmbo/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-mmwrweek/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-mnormt/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-mockery/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-modelmetrics/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-modelr/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-modeltools/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-mpm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-msnbase/package.py33
-rw-r--r--var/spack/repos/builtin/packages/r-multcomp/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-multicool/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-multitaper/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-multtest/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-munsell/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-mutoss/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-mvtnorm/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-mzid/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-mzr/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-nada/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-nanotime/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-ncbit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ncdf4/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-network/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-networkd3/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-neuralnet/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-nfactors/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-nimble/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-nleqslv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-nlme/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-nloptr/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-nmf/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-nmof/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-nnet/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-nnls/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-nonnest2/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-nor1mix/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-nortest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-np/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-npsurv/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-numderiv/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-oligoclasses/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-openssl/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-openxlsx/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-optimx/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-optparse/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-ordinal/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-org-hs-eg-db/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-organismdbi/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-packrat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-pacman/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-paleotree/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-pamr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-pan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-parallelly/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-parallelmap/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-paramhelpers/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-party/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-partykit/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-patchwork/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-pathview/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-pbapply/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-pbdzmq/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-pbivnorm/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-pbkrtest/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-pcamethods/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-pcapp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-pegas/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-permute/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-pfam-db/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-phangorn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-phantompeakqualtools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-pheatmap/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-philentropy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-phylobase/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-phyloseq/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-phylostratr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-phytools/package.py33
-rw-r--r--var/spack/repos/builtin/packages/r-picante/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-pillar/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-pinfsc50/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-pixmap/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-pkgbuild/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-pkgconfig/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-pkgload/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-pkgmaker/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-plogr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-plot3d/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-plotly/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-plotmo/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-plotrix/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-pls/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-plyr/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-pmcmr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-png/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-polspline/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-polyclip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-polynom/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-pool/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-popgenome/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-popvar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-powerlaw/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-prabclus/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-pracma/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-praise/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-preprocesscore/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-prettydoc/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-prettyunits/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-proc/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-processx/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-prodlim/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-progress/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-proj/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-proj4/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-projpred/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-promises/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-protgenerics/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-proto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-proxy/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-pryr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ps/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-pscbs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-pspline/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-psych/package.py41
-rw-r--r--var/spack/repos/builtin/packages/r-ptw/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-purrr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-pvclust/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-qs/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-qtl/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-quadprog/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-quantmod/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-quantreg/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-quantro/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-quickplot/package.py36
-rw-r--r--var/spack/repos/builtin/packages/r-qvalue/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-r-cache/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-r-methodss3/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-r-oo/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-r-utils/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-r6/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-randomfields/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-randomfieldsutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-randomforest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-randomglm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ranger/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-rann/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rapiserialize/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-rappdirs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-raster/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-rbgl/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-rbibutils/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-rbokeh/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-rcmdcheck/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rcolorbrewer/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-rcpp/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-rcppannoy/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-rcpparmadillo/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-rcppblaze/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rcppcctz/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-rcppcnpy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rcppdate/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-rcppeigen/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-rcpphnsw/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-rcppparallel/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-rcppprogress/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-rcurl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rda/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-rdpack/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-readbitmap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-readr/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-readxl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-reams/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-recipes/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-registry/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rematch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rematch2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-remotes/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-renv/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-reordercluster/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-reportingtools/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-repr/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-reprex/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-reproducible/package.py45
-rw-r--r--var/spack/repos/builtin/packages/r-require/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-reshape/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-reshape2/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-reticulate/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-rex/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-rferns/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-rgdal/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-rgenoud/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-rgeos/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-rgexf/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-rgl/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-rgooglemaps/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-rgraphviz/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-rhdf5/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-rhdf5filters/package.py27
-rw-r--r--var/spack/repos/builtin/packages/r-rhdf5lib/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-rhmmer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rhtslib/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-rinside/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-rio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rjags/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-rjava/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-rjson/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rjsonio/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-rlang/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-rle/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-rmariadb/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-rmarkdown/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-rminer/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-rmpfr/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-rmpi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-rms/package.py45
-rw-r--r--var/spack/repos/builtin/packages/r-rmutil/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-rmysql/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-rnaseqmap/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-rncl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rnexml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rngtools/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-rnoaa/package.py34
-rw-r--r--var/spack/repos/builtin/packages/r-robust/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-robustbase/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-roc/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-rocr/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-rodbc/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-rook/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rots/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-roxygen2/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-rpart-plot/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-rpart/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rpmm/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-rpostgres/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-rpostgresql/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-rprojroot/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-rrblup/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-rrcov/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-rrpp/package.py32
-rw-r--r--var/spack/repos/builtin/packages/r-rsamtools/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-rsconnect/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-rsnns/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-rsolnp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rspectra/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-rsqlite/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-rstan/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-rstantools/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-rstatix/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-rstudioapi/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-rsvd/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-rtracklayer/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-rtsne/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-runit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-runjags/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-ruv/package.py32
-rw-r--r--var/spack/repos/builtin/packages/r-rvcheck/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-rversions/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-rvest/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-rviennacl/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-rzmq/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-s2/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-s4vectors/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-samr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-sandwich/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-satellite/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-scales/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-scater/package.py50
-rw-r--r--var/spack/repos/builtin/packages/r-scattermore/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-scatterpie/package.py25
-rw-r--r--var/spack/repos/builtin/packages/r-scatterplot3d/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-scrime/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-sctransform/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-scuttle/package.py32
-rw-r--r--var/spack/repos/builtin/packages/r-sdmtools/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-segmented/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-selectr/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-seqinr/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-seqlogo/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-servr/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-sessioninfo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-seurat/package.py103
-rw-r--r--var/spack/repos/builtin/packages/r-sf/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-sfsmisc/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-shadowtext/package.py23
-rw-r--r--var/spack/repos/builtin/packages/r-shape/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-shiny/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-shinydashboard/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-shinyfiles/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-shinyjs/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-shinystan/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-shinythemes/package.py22
-rw-r--r--var/spack/repos/builtin/packages/r-shortread/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-siggenes/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-simpleaffy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-singlecellexperiment/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-sitmo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-sm/package.py3
-rw-r--r--var/spack/repos/builtin/packages/r-smoof/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-sn/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-snakecase/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-snow/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-snowfall/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-snprelate/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-snpstats/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-som/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-somaticsignatures/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-sourcetools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-sp/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-spacetime/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-spades-addins/package.py31
-rw-r--r--var/spack/repos/builtin/packages/r-spades-core/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-spades-tools/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-spades/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-spam/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-sparsem/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-sparsematrixstats/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-spatial/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-spatialeco/package.py43
-rw-r--r--var/spack/repos/builtin/packages/r-spatialpack/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-spatialreg/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-spatstat-data/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-spatstat-utils/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-spatstat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-spdata/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-spdep/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-speedglm/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-spem/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-splancs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-splitstackshape/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-sqldf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-squarem/package.py14
-rw-r--r--var/spack/repos/builtin/packages/r-squash/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-sseq/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-stabledist/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-stanheaders/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-stargazer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-statmod/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-statnet-common/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-stringfish/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-stringi/package.py33
-rw-r--r--var/spack/repos/builtin/packages/r-stringr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-strucchange/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-subplex/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-summarizedexperiment/package.py29
-rw-r--r--var/spack/repos/builtin/packages/r-suppdists/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-survey/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-survival/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-sva/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-svglite/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-sys/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-systemfonts/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-tarifx/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-taxizedb/package.py17
-rw-r--r--var/spack/repos/builtin/packages/r-tclust/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-teachingdemos/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-tensor/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-tensora/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-tester/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-testit/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-testthat/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-tfbstools/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-tfisher/package.py30
-rw-r--r--var/spack/repos/builtin/packages/r-tfmpvalue/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-th-data/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-threejs/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-tibble/package.py35
-rw-r--r--var/spack/repos/builtin/packages/r-tictoc/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-tidycensus/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-tidygraph/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-tidyr/package.py32
-rw-r--r--var/spack/repos/builtin/packages/r-tidyselect/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-tidyverse/package.py44
-rw-r--r--var/spack/repos/builtin/packages/r-tiff/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-tigris/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-timedate/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-tinytex/package.py13
-rw-r--r--var/spack/repos/builtin/packages/r-tmixclust/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-tmvnsim/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-topgo/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-triebeard/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-trimcluster/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-truncdist/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-truncnorm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-trust/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-tseries/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-tsne/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-ttr/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-tweenr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg18-knowngene/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg19-knowngene/package.py6
-rw-r--r--var/spack/repos/builtin/packages/r-tximport/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-tximportdata/package.py18
-rw-r--r--var/spack/repos/builtin/packages/r-ucminf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-udunits2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-units/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-upsetr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-urca/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-urltools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-usethis/package.py21
-rw-r--r--var/spack/repos/builtin/packages/r-utf8/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-uuid/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-uwot/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-v8/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-variantannotation/package.py42
-rw-r--r--var/spack/repos/builtin/packages/r-varselrf/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-vcd/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-vcfr/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-vctrs/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-vegan/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-vfs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-vgam/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-vioplot/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-vipor/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-viridis/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-viridislite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-visnetwork/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-vsn/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-waldo/package.py28
-rw-r--r--var/spack/repos/builtin/packages/r-watermelon/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-webshot/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-wgcna/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-whisker/package.py10
-rw-r--r--var/spack/repos/builtin/packages/r-withr/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-wk/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-xde/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-xfun/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-xgboost/package.py12
-rw-r--r--var/spack/repos/builtin/packages/r-xlconnect/package.py15
-rw-r--r--var/spack/repos/builtin/packages/r-xlconnectjars/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-xlsx/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r-xlsxjars/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-xmapbridge/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-xml/package.py8
-rw-r--r--var/spack/repos/builtin/packages/r-xml2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-xnomial/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-xopen/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-xtable/package.py4
-rw-r--r--var/spack/repos/builtin/packages/r-xts/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-xvector/package.py20
-rw-r--r--var/spack/repos/builtin/packages/r-yaimpute/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-yaml/package.py9
-rw-r--r--var/spack/repos/builtin/packages/r-yapsa/package.py16
-rw-r--r--var/spack/repos/builtin/packages/r-yaqcaffy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-yarn/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-zcompositions/package.py26
-rw-r--r--var/spack/repos/builtin/packages/r-zeallot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-zip/package.py7
-rw-r--r--var/spack/repos/builtin/packages/r-zlibbioc/package.py5
-rw-r--r--var/spack/repos/builtin/packages/r-zoo/package.py11
-rw-r--r--var/spack/repos/builtin/packages/r/package.py91
-rw-r--r--var/spack/repos/builtin/packages/r3d/package.py41
-rw-r--r--var/spack/repos/builtin/packages/rabbitmq/package.py4
-rw-r--r--var/spack/repos/builtin/packages/racon/aarch64.patch2791
-rw-r--r--var/spack/repos/builtin/packages/racon/package.py3
-rw-r--r--var/spack/repos/builtin/packages/raft/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ragel/package.py6
-rw-r--r--var/spack/repos/builtin/packages/raja/package.py120
-rw-r--r--var/spack/repos/builtin/packages/ramulator/package.py2
-rw-r--r--var/spack/repos/builtin/packages/randfold/package.py2
-rw-r--r--var/spack/repos/builtin/packages/random123/package.py6
-rw-r--r--var/spack/repos/builtin/packages/random123/v1132-xl161.patch17
-rw-r--r--var/spack/repos/builtin/packages/randrproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/range-v3/package.py8
-rw-r--r--var/spack/repos/builtin/packages/rankstr/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rapidjson/package.py4
-rw-r--r--var/spack/repos/builtin/packages/raptor2/package.py17
-rw-r--r--var/spack/repos/builtin/packages/rasdaemon/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rasqal/package.py22
-rw-r--r--var/spack/repos/builtin/packages/ravel/package.py6
-rw-r--r--var/spack/repos/builtin/packages/ravel/qpainterpath.patch9
-rw-r--r--var/spack/repos/builtin/packages/raxml-ng/package.py35
-rw-r--r--var/spack/repos/builtin/packages/raxml/package.py5
-rw-r--r--var/spack/repos/builtin/packages/ray/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rccl/package.py39
-rw-r--r--var/spack/repos/builtin/packages/rclone/package.py12
-rw-r--r--var/spack/repos/builtin/packages/rdc/package.py25
-rw-r--r--var/spack/repos/builtin/packages/rdkit/package.py41
-rw-r--r--var/spack/repos/builtin/packages/rdma-core/package.py14
-rw-r--r--var/spack/repos/builtin/packages/rdp-classifier/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rdptools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/re2/package.py12
-rw-r--r--var/spack/repos/builtin/packages/re2c/package.py23
-rw-r--r--var/spack/repos/builtin/packages/readfq/package.py2
-rw-r--r--var/spack/repos/builtin/packages/readline/package.py13
-rw-r--r--var/spack/repos/builtin/packages/recola-sm/package.py26
-rw-r--r--var/spack/repos/builtin/packages/recola/package.py37
-rw-r--r--var/spack/repos/builtin/packages/recon/package.py5
-rw-r--r--var/spack/repos/builtin/packages/recorder/package.py7
-rw-r--r--var/spack/repos/builtin/packages/recordproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/redis/package.py15
-rw-r--r--var/spack/repos/builtin/packages/reditools/REDItoolDenovo.py.patch11
-rw-r--r--var/spack/repos/builtin/packages/reditools/batch_sort.patch168
-rw-r--r--var/spack/repos/builtin/packages/reditools/package.py61
-rw-r--r--var/spack/repos/builtin/packages/reditools/python2to3.patch926
-rw-r--r--var/spack/repos/builtin/packages/reditools/setup.py.patch16
-rw-r--r--var/spack/repos/builtin/packages/redland-bindings/package.py35
-rw-r--r--var/spack/repos/builtin/packages/redland/package.py21
-rw-r--r--var/spack/repos/builtin/packages/redset/package.py10
-rw-r--r--var/spack/repos/builtin/packages/redundans/package.py2
-rw-r--r--var/spack/repos/builtin/packages/reframe/package.py105
-rw-r--r--var/spack/repos/builtin/packages/regcm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/relax/package.py4
-rw-r--r--var/spack/repos/builtin/packages/relion/0002-Simple-patch-to-fix-intel-mkl-linking.patch31
-rw-r--r--var/spack/repos/builtin/packages/relion/package.py28
-rw-r--r--var/spack/repos/builtin/packages/remhos/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rempi/package.py9
-rw-r--r--var/spack/repos/builtin/packages/rename/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rendercheck/package.py6
-rw-r--r--var/spack/repos/builtin/packages/renderproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/repeatmasker/package.py42
-rw-r--r--var/spack/repos/builtin/packages/repeatmodeler/package.py6
-rw-r--r--var/spack/repos/builtin/packages/repeatscout/package.py6
-rw-r--r--var/spack/repos/builtin/packages/reprimand/include.patch32
-rw-r--r--var/spack/repos/builtin/packages/reprimand/package.py57
-rw-r--r--var/spack/repos/builtin/packages/resourceproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/revbayes/package.py3
-rw-r--r--var/spack/repos/builtin/packages/revocap-coupler/package.py5
-rw-r--r--var/spack/repos/builtin/packages/revocap-refiner/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rgb/package.py6
-rw-r--r--var/spack/repos/builtin/packages/rhash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rinetd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ripgrep/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rivet/package.py126
-rw-r--r--var/spack/repos/builtin/packages/rlwrap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rmats/package.py5
-rw-r--r--var/spack/repos/builtin/packages/rmgdft/package.py96
-rw-r--r--var/spack/repos/builtin/packages/rmlab/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rna-seqc/package.py5
-rw-r--r--var/spack/repos/builtin/packages/rnaquast/package.py38
-rw-r--r--var/spack/repos/builtin/packages/rnaz/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rng-tools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rngstreams/package.py6
-rw-r--r--var/spack/repos/builtin/packages/rnpletal/corrections.diff863
-rw-r--r--var/spack/repos/builtin/packages/rnpletal/package.py83
-rw-r--r--var/spack/repos/builtin/packages/rocalution/0001-fix-hip-build-error.patch926
-rw-r--r--var/spack/repos/builtin/packages/rocalution/package.py51
-rw-r--r--var/spack/repos/builtin/packages/rocblas/package.py108
-rw-r--r--var/spack/repos/builtin/packages/rocfft/package.py47
-rw-r--r--var/spack/repos/builtin/packages/rocketmq/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rocksdb/package.py23
-rw-r--r--var/spack/repos/builtin/packages/rocksdb/pkg-config.patch14
-rw-r--r--var/spack/repos/builtin/packages/rockstar/package.py3
-rw-r--r--var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py19
-rw-r--r--var/spack/repos/builtin/packages/rocm-clang-ocl/package.py23
-rw-r--r--var/spack/repos/builtin/packages/rocm-cmake/package.py17
-rw-r--r--var/spack/repos/builtin/packages/rocm-dbgapi/package.py15
-rw-r--r--var/spack/repos/builtin/packages/rocm-debug-agent/0002-add-hip-architecture.patch12
-rw-r--r--var/spack/repos/builtin/packages/rocm-debug-agent/package.py30
-rw-r--r--var/spack/repos/builtin/packages/rocm-device-libs/package.py37
-rw-r--r--var/spack/repos/builtin/packages/rocm-gdb/package.py20
-rw-r--r--var/spack/repos/builtin/packages/rocm-opencl/package.py18
-rw-r--r--var/spack/repos/builtin/packages/rocm-openmp-extras/package.py396
-rw-r--r--var/spack/repos/builtin/packages/rocm-smi-lib/package.py26
-rw-r--r--var/spack/repos/builtin/packages/rocm-smi/package.py10
-rw-r--r--var/spack/repos/builtin/packages/rocm-tensile/0002-require-openmp-when-tensile-use-openmp-is-on.patch90
-rw-r--r--var/spack/repos/builtin/packages/rocm-tensile/package.py86
-rw-r--r--var/spack/repos/builtin/packages/rocm-validation-suite/002-remove-force-setting-hip-inc-path.patch14
-rw-r--r--var/spack/repos/builtin/packages/rocm-validation-suite/003-cmake-change-to-remove-installs-and-sudo.patch88
-rw-r--r--var/spack/repos/builtin/packages/rocm-validation-suite/package.py39
-rw-r--r--var/spack/repos/builtin/packages/rocminfo/package.py28
-rw-r--r--var/spack/repos/builtin/packages/rocprim/package.py39
-rw-r--r--var/spack/repos/builtin/packages/rocprofiler-dev/fix-includes.patch25
-rw-r--r--var/spack/repos/builtin/packages/rocprofiler-dev/package.py67
-rw-r--r--var/spack/repos/builtin/packages/rocrand/package.py51
-rw-r--r--var/spack/repos/builtin/packages/rocsolver/package.py57
-rw-r--r--var/spack/repos/builtin/packages/rocsparse/package.py32
-rw-r--r--var/spack/repos/builtin/packages/rocthrust/package.py35
-rw-r--r--var/spack/repos/builtin/packages/roctracer-dev-api/package.py41
-rw-r--r--var/spack/repos/builtin/packages/roctracer-dev/package.py33
-rw-r--r--var/spack/repos/builtin/packages/rodinia/package.py4
-rw-r--r--var/spack/repos/builtin/packages/roms/package.py141
-rw-r--r--var/spack/repos/builtin/packages/root/README.md8
-rw-r--r--var/spack/repos/builtin/packages/root/package.py156
-rw-r--r--var/spack/repos/builtin/packages/rose/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ross/package.py4
-rw-r--r--var/spack/repos/builtin/packages/routino/package.py4
-rw-r--r--var/spack/repos/builtin/packages/rpcsvc-proto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rpm/package.py151
-rw-r--r--var/spack/repos/builtin/packages/rr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/rrdtool/package.py8
-rw-r--r--var/spack/repos/builtin/packages/rsbench/package.py20
-rw-r--r--var/spack/repos/builtin/packages/rsem/package.py4
-rw-r--r--var/spack/repos/builtin/packages/rstart/package.py6
-rw-r--r--var/spack/repos/builtin/packages/rstudio/package.py124
-rw-r--r--var/spack/repos/builtin/packages/rsync/package.py13
-rw-r--r--var/spack/repos/builtin/packages/rsyslog/package.py9
-rw-r--r--var/spack/repos/builtin/packages/rt-tests/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rtags/package.py3
-rw-r--r--var/spack/repos/builtin/packages/rtax/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-asciidoctor/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-erubis/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-gnuplot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-hpricot/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-mustache/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-narray/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-rake/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-rdiscount/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-ronn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-rubyinline/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-svn2git/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-terminal-table/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-thor/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-tmuxinator/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-unicode-display-width/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-xdg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby-zentest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ruby/package.py23
-rw-r--r--var/spack/repos/builtin/packages/rust-bindgen/package.py7
-rw-r--r--var/spack/repos/builtin/packages/rust/package.py43
-rw-r--r--var/spack/repos/builtin/packages/sabre/package.py2
-rw-r--r--var/spack/repos/builtin/packages/saga-gis/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sailfish/package.py4
-rwxr-xr-xvar/spack/repos/builtin/packages/salmon-tddft/cmakefix.patch108
-rwxr-xr-xvar/spack/repos/builtin/packages/salmon-tddft/fjmpi.patch67
-rwxr-xr-xvar/spack/repos/builtin/packages/salmon-tddft/package.py98
-rwxr-xr-xvar/spack/repos/builtin/packages/salmon-tddft/v2.0.libxc-5.0.patch312
-rw-r--r--var/spack/repos/builtin/packages/salmon/package.py70
-rw-r--r--var/spack/repos/builtin/packages/sambamba/package.py4
-rw-r--r--var/spack/repos/builtin/packages/samblaster/package.py2
-rw-r--r--var/spack/repos/builtin/packages/samrai/package.py2
-rw-r--r--var/spack/repos/builtin/packages/samtools/package.py11
-rw-r--r--var/spack/repos/builtin/packages/sandbox/package.py4
-rw-r--r--var/spack/repos/builtin/packages/satsuma2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/savanna/package.py2
-rw-r--r--var/spack/repos/builtin/packages/saws/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sblim-sfcc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sbml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sbp/package.py27
-rw-r--r--var/spack/repos/builtin/packages/sbt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/scala/package.py3
-rw-r--r--var/spack/repos/builtin/packages/scalasca/package.py9
-rw-r--r--var/spack/repos/builtin/packages/scallop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/scalpel/package.py2
-rw-r--r--var/spack/repos/builtin/packages/scan-for-matches/package.py6
-rw-r--r--var/spack/repos/builtin/packages/scantailor/package.py4
-rw-r--r--var/spack/repos/builtin/packages/scipoptsuite/package.py4
-rw-r--r--var/spack/repos/builtin/packages/scons/package.py7
-rw-r--r--var/spack/repos/builtin/packages/scons/py3-hashbang.patch40
-rw-r--r--var/spack/repos/builtin/packages/scorec-core/package.py2
-rw-r--r--var/spack/repos/builtin/packages/scorep/package.py25
-rw-r--r--var/spack/repos/builtin/packages/scotch/package.py37
-rw-r--r--var/spack/repos/builtin/packages/scr/package.py104
-rw-r--r--var/spack/repos/builtin/packages/screen/package.py2
-rw-r--r--var/spack/repos/builtin/packages/scripts/package.py4
-rw-r--r--var/spack/repos/builtin/packages/scrnsaverproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/scrot/package.py25
-rw-r--r--var/spack/repos/builtin/packages/scs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sctk/package.py12
-rw-r--r--var/spack/repos/builtin/packages/sdl2-image/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sdl2/package.py3
-rw-r--r--var/spack/repos/builtin/packages/sdsl-lite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/seacas/package.py95
-rw-r--r--var/spack/repos/builtin/packages/sed/package.py15
-rw-r--r--var/spack/repos/builtin/packages/sensei/package.py147
-rw-r--r--var/spack/repos/builtin/packages/sentencepiece/package.py3
-rw-r--r--var/spack/repos/builtin/packages/sentieon-genomics/package.py6
-rw-r--r--var/spack/repos/builtin/packages/seqan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/seqkit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/seqprep/package.py2
-rw-r--r--var/spack/repos/builtin/packages/seqtk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/serf/package.py62
-rw-r--r--var/spack/repos/builtin/packages/serf/py3-hashbang.patch20
-rw-r--r--var/spack/repos/builtin/packages/sessreg/package.py6
-rw-r--r--var/spack/repos/builtin/packages/setserial/package.py4
-rw-r--r--var/spack/repos/builtin/packages/setxkbmap/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sfcgal/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sfcio/package.py20
-rw-r--r--var/spack/repos/builtin/packages/sga/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sgpp/package.py36
-rw-r--r--var/spack/repos/builtin/packages/shadow/package.py7
-rw-r--r--var/spack/repos/builtin/packages/shapeit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/shapeit4/package.py2
-rw-r--r--var/spack/repos/builtin/packages/shapelib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/shared-mime-info/package.py2
-rw-r--r--var/spack/repos/builtin/packages/shark/package.py4
-rw-r--r--var/spack/repos/builtin/packages/shc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/shengbte/package.py2
-rw-r--r--var/spack/repos/builtin/packages/shiny-server/package.py4
-rw-r--r--var/spack/repos/builtin/packages/shiro/package.py2
-rw-r--r--var/spack/repos/builtin/packages/shocklibs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/shoremap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/shortbred/package.py2
-rw-r--r--var/spack/repos/builtin/packages/shortstack/package.py4
-rw-r--r--var/spack/repos/builtin/packages/showfont/package.py4
-rw-r--r--var/spack/repos/builtin/packages/shtools/package.py18
-rw-r--r--var/spack/repos/builtin/packages/shuffile/package.py11
-rw-r--r--var/spack/repos/builtin/packages/sickle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/siesta/package.py19
-rw-r--r--var/spack/repos/builtin/packages/sigio/package.py20
-rw-r--r--var/spack/repos/builtin/packages/signalp/package.py9
-rw-r--r--var/spack/repos/builtin/packages/signify/package.py2
-rw-r--r--var/spack/repos/builtin/packages/silo/H5FD_class_t-terminate.patch12
-rw-r--r--var/spack/repos/builtin/packages/silo/package.py76
-rw-r--r--var/spack/repos/builtin/packages/simde/package.py25
-rw-r--r--var/spack/repos/builtin/packages/simde/sve-gcc.patch18
-rw-r--r--var/spack/repos/builtin/packages/simgrid/package.py49
-rw-r--r--var/spack/repos/builtin/packages/simmetrix-simmodsuite/package.py185
-rw-r--r--var/spack/repos/builtin/packages/simplemoc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/simsipm/package.py38
-rw-r--r--var/spack/repos/builtin/packages/simul/package.py2
-rw-r--r--var/spack/repos/builtin/packages/simulationio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sina/package.py78
-rw-r--r--var/spack/repos/builtin/packages/singularity-legacy/package.py16
-rw-r--r--var/spack/repos/builtin/packages/singularity/package.py158
-rw-r--r--var/spack/repos/builtin/packages/singularityce/package.py169
-rw-r--r--var/spack/repos/builtin/packages/singularityce/spack_perms_fix.sh.j211
-rw-r--r--var/spack/repos/builtin/packages/sio/package.py22
-rw-r--r--var/spack/repos/builtin/packages/sionlib/for_aarch64.patch11
-rw-r--r--var/spack/repos/builtin/packages/sionlib/package.py31
-rw-r--r--var/spack/repos/builtin/packages/sirius/package.py172
-rw-r--r--var/spack/repos/builtin/packages/skilion-onedrive/package.py2
-rw-r--r--var/spack/repos/builtin/packages/skopeo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/slang/package.py2
-rw-r--r--var/spack/repos/builtin/packages/slate/package.py58
-rw-r--r--var/spack/repos/builtin/packages/sleef/package.py37
-rw-r--r--var/spack/repos/builtin/packages/slepc/package.py65
-rw-r--r--var/spack/repos/builtin/packages/slepc/test/hello.c14
-rw-r--r--var/spack/repos/builtin/packages/slf4j/package.py2
-rw-r--r--var/spack/repos/builtin/packages/slider/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sloccount/package.py2
-rw-r--r--var/spack/repos/builtin/packages/slurm/package.py5
-rw-r--r--var/spack/repos/builtin/packages/smalt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/smartdenovo/aarch64.patch2
-rw-r--r--var/spack/repos/builtin/packages/smartdenovo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/smartmontools/package.py4
-rw-r--r--var/spack/repos/builtin/packages/smof/package.py5
-rw-r--r--var/spack/repos/builtin/packages/smproxy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/snakemake/package.py4
-rw-r--r--var/spack/repos/builtin/packages/snap-berkeley/package.py4
-rw-r--r--var/spack/repos/builtin/packages/snap-korf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/snap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/snappy/package.py17
-rw-r--r--var/spack/repos/builtin/packages/snbone/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sniffles/package.py2
-rw-r--r--var/spack/repos/builtin/packages/snpeff/package.py5
-rw-r--r--var/spack/repos/builtin/packages/snphylo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/snptest/package.py4
-rw-r--r--var/spack/repos/builtin/packages/soapdenovo-trans/package.py4
-rw-r--r--var/spack/repos/builtin/packages/soapdenovo2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/soci/package.py42
-rw-r--r--var/spack/repos/builtin/packages/sofa-c/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sollve/package.py7
-rw-r--r--var/spack/repos/builtin/packages/sollya/package.py33
-rw-r--r--var/spack/repos/builtin/packages/solr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/somatic-sniper/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sombrero/package.py52
-rw-r--r--var/spack/repos/builtin/packages/sonlib/package.py5
-rw-r--r--var/spack/repos/builtin/packages/sortmerna/for_aarch64.patch22
-rw-r--r--var/spack/repos/builtin/packages/sortmerna/package.py9
-rw-r--r--var/spack/repos/builtin/packages/sos/package.py59
-rw-r--r--var/spack/repos/builtin/packages/sosflow/package.py2
-rw-r--r--var/spack/repos/builtin/packages/source-highlight/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sowing/package.py6
-rw-r--r--var/spack/repos/builtin/packages/sox/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sp/package.py19
-rw-r--r--var/spack/repos/builtin/packages/spades/package.py8
-rw-r--r--var/spack/repos/builtin/packages/span-lite/package.py5
-rw-r--r--var/spack/repos/builtin/packages/spark/package.py10
-rw-r--r--var/spack/repos/builtin/packages/sparse/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sparsehash/package.py5
-rw-r--r--var/spack/repos/builtin/packages/sparskit/package.py77
-rw-r--r--var/spack/repos/builtin/packages/sparta/package.py2
-rw-r--r--var/spack/repos/builtin/packages/spath/package.py8
-rw-r--r--var/spack/repos/builtin/packages/spdlog/package.py25
-rw-r--r--var/spack/repos/builtin/packages/specfem3d-globe/gcc_rm_werror.patch11
-rw-r--r--var/spack/repos/builtin/packages/specfem3d-globe/package.py63
-rw-r--r--var/spack/repos/builtin/packages/spectrum-mpi/package.py4
-rw-r--r--var/spack/repos/builtin/packages/speex/package.py2
-rw-r--r--var/spack/repos/builtin/packages/speexdsp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/spfft/0001-fix-missing-limits-include.patch37
-rw-r--r--var/spack/repos/builtin/packages/spfft/package.py47
-rw-r--r--var/spack/repos/builtin/packages/spglib/package.py28
-rw-r--r--var/spack/repos/builtin/packages/sph2pipe/package.py4
-rw-r--r--var/spack/repos/builtin/packages/spherepack/package.py2
-rw-r--r--var/spack/repos/builtin/packages/spindle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/spiral/package.py2
-rw-r--r--var/spack/repos/builtin/packages/spla/0001-amd_blis.patch13
-rw-r--r--var/spack/repos/builtin/packages/spla/package.py35
-rw-r--r--var/spack/repos/builtin/packages/spm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/spot/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sprng/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sqlcipher/package.py33
-rw-r--r--var/spack/repos/builtin/packages/sqlite-jdbc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sqlite/package.py29
-rw-r--r--var/spack/repos/builtin/packages/sqlitebrowser/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sqoop/package.py4
-rw-r--r--var/spack/repos/builtin/packages/squashfs/gcc-10.patch13
-rw-r--r--var/spack/repos/builtin/packages/squashfs/package.py35
-rw-r--r--var/spack/repos/builtin/packages/squashfuse/package.py71
-rw-r--r--var/spack/repos/builtin/packages/squid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sratoolkit/package.py5
-rw-r--r--var/spack/repos/builtin/packages/srilm/package.py93
-rw-r--r--var/spack/repos/builtin/packages/sse2neon/package.py10
-rw-r--r--var/spack/repos/builtin/packages/sshfs/package.py25
-rw-r--r--var/spack/repos/builtin/packages/sshpass/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ssht/package.py42
-rw-r--r--var/spack/repos/builtin/packages/ssmtp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sspace-longread/package.py7
-rw-r--r--var/spack/repos/builtin/packages/sspace-standard/package.py9
-rw-r--r--var/spack/repos/builtin/packages/sst-core/package.py13
-rw-r--r--var/spack/repos/builtin/packages/sst-dumpi/package.py5
-rw-r--r--var/spack/repos/builtin/packages/sst-elements/package.py119
-rw-r--r--var/spack/repos/builtin/packages/sst-macro/package.py5
-rw-r--r--var/spack/repos/builtin/packages/sst-transports/package.py2
-rw-r--r--var/spack/repos/builtin/packages/stacks/package.py6
-rw-r--r--var/spack/repos/builtin/packages/staden-io-lib/package.py13
-rw-r--r--var/spack/repos/builtin/packages/star-ccm-plus/package.py7
-rw-r--r--var/spack/repos/builtin/packages/star/package.py2
-rw-r--r--var/spack/repos/builtin/packages/startup-notification/package.py4
-rw-r--r--var/spack/repos/builtin/packages/stat/package.py39
-rw-r--r--var/spack/repos/builtin/packages/stata/package.py6
-rw-r--r--var/spack/repos/builtin/packages/static-analysis-suite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/stc/package.py5
-rw-r--r--var/spack/repos/builtin/packages/steps/package.py2
-rw-r--r--var/spack/repos/builtin/packages/stinger/package.py2
-rw-r--r--var/spack/repos/builtin/packages/storm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/stow/package.py2
-rw-r--r--var/spack/repos/builtin/packages/strace/package.py7
-rw-r--r--var/spack/repos/builtin/packages/stream/package.py2
-rw-r--r--var/spack/repos/builtin/packages/strelka/package.py4
-rw-r--r--var/spack/repos/builtin/packages/stress-ng/package.py46
-rw-r--r--var/spack/repos/builtin/packages/stress/package.py2
-rw-r--r--var/spack/repos/builtin/packages/string-view-lite/package.py5
-rw-r--r--var/spack/repos/builtin/packages/stringtie/package.py2
-rw-r--r--var/spack/repos/builtin/packages/stripack/package.py69
-rw-r--r--var/spack/repos/builtin/packages/structure/package.py6
-rw-r--r--var/spack/repos/builtin/packages/strumpack/package.py167
-rw-r--r--var/spack/repos/builtin/packages/strumpack/shared-rocm.patch141
-rw-r--r--var/spack/repos/builtin/packages/su2/package.py11
-rw-r--r--var/spack/repos/builtin/packages/sublime-text/package.py4
-rw-r--r--var/spack/repos/builtin/packages/subread/package.py6
-rw-r--r--var/spack/repos/builtin/packages/subversion/package.py4
-rw-r--r--var/spack/repos/builtin/packages/suite-sparse/fix_cuda11.patch10
-rw-r--r--var/spack/repos/builtin/packages/suite-sparse/package.py16
-rw-r--r--var/spack/repos/builtin/packages/sumaclust/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sumo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sundials/0001-add-missing-README-to-examples-cvode-hip.patch22
-rw-r--r--var/spack/repos/builtin/packages/sundials/package.py192
-rw-r--r--var/spack/repos/builtin/packages/sundials/remove-links-to-OpenMP-vector.patch34
-rw-r--r--var/spack/repos/builtin/packages/superchic/package.py51
-rw-r--r--var/spack/repos/builtin/packages/superlu-dist/package.py55
-rw-r--r--var/spack/repos/builtin/packages/superlu-mt/package.py7
-rw-r--r--var/spack/repos/builtin/packages/superlu/package.py137
-rw-r--r--var/spack/repos/builtin/packages/supernova/package.py7
-rw-r--r--var/spack/repos/builtin/packages/sw4lite/package.py6
-rw-r--r--var/spack/repos/builtin/packages/swap-assembler/package.py2
-rw-r--r--var/spack/repos/builtin/packages/swarm/package.py5
-rw-r--r--var/spack/repos/builtin/packages/swfft/package.py2
-rw-r--r--var/spack/repos/builtin/packages/swftools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/swiftsim/package.py5
-rw-r--r--var/spack/repos/builtin/packages/swig/package.py48
-rw-r--r--var/spack/repos/builtin/packages/swipl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/symengine/package.py27
-rw-r--r--var/spack/repos/builtin/packages/symlinks/package.py9
-rw-r--r--var/spack/repos/builtin/packages/sympol/package.py6
-rw-r--r--var/spack/repos/builtin/packages/sysbench/package.py2
-rw-r--r--var/spack/repos/builtin/packages/syscalc/package.py16
-rw-r--r--var/spack/repos/builtin/packages/sysfsutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sysget/package.py5
-rw-r--r--var/spack/repos/builtin/packages/sysstat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/systemc/package.py28
-rw-r--r--var/spack/repos/builtin/packages/systemtap/package.py7
-rw-r--r--var/spack/repos/builtin/packages/sz/package.py12
-rw-r--r--var/spack/repos/builtin/packages/tabix/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tajo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/talass/package.py9
-rw-r--r--var/spack/repos/builtin/packages/talloc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tangram/package.py6
-rw-r--r--var/spack/repos/builtin/packages/tantan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tar/nvhpc-1.30.patch (renamed from var/spack/repos/builtin/packages/tar/nvhpc.patch)0
-rw-r--r--var/spack/repos/builtin/packages/tar/nvhpc-1.34.patch35
-rw-r--r--var/spack/repos/builtin/packages/tar/nvhpc-long-width.patch17
-rw-r--r--var/spack/repos/builtin/packages/tar/package.py10
-rw-r--r--var/spack/repos/builtin/packages/targetp/package.py9
-rw-r--r--var/spack/repos/builtin/packages/task/package.py8
-rw-r--r--var/spack/repos/builtin/packages/taskd/package.py8
-rw-r--r--var/spack/repos/builtin/packages/taskflow/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tasmanian/package.py55
-rw-r--r--var/spack/repos/builtin/packages/tassel/package.py4
-rw-r--r--var/spack/repos/builtin/packages/tau/package.py85
-rw-r--r--var/spack/repos/builtin/packages/tauola/package.py34
-rw-r--r--var/spack/repos/builtin/packages/tbl2asn/package.py5
-rw-r--r--var/spack/repos/builtin/packages/tcl-itcl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tcl-tcllib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tcl-tclxml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tcl/package.py108
-rw-r--r--var/spack/repos/builtin/packages/tclap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tcoffee/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tcpdump/package.py10
-rw-r--r--var/spack/repos/builtin/packages/tcptrace/package.py5
-rw-r--r--var/spack/repos/builtin/packages/tcsh/package.py6
-rw-r--r--var/spack/repos/builtin/packages/tdengine/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tealeaf/package.py6
-rw-r--r--var/spack/repos/builtin/packages/teckit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tecplot/package.py5
-rw-r--r--var/spack/repos/builtin/packages/tempestremap/package.py45
-rw-r--r--var/spack/repos/builtin/packages/templight-tools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/templight/package.py5
-rw-r--r--var/spack/repos/builtin/packages/tengine/package.py4
-rw-r--r--var/spack/repos/builtin/packages/tensorflow-serving-client/package.py7
-rw-r--r--var/spack/repos/builtin/packages/tensorpipe/package.py26
-rw-r--r--var/spack/repos/builtin/packages/termcap/package.py6
-rw-r--r--var/spack/repos/builtin/packages/tesseract/java_Makefile.patch28
-rw-r--r--var/spack/repos/builtin/packages/tesseract/package.py65
-rw-r--r--var/spack/repos/builtin/packages/testdfsio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tetgen/package.py11
-rw-r--r--var/spack/repos/builtin/packages/tethex/package.py2
-rw-r--r--var/spack/repos/builtin/packages/texinfo/package.py5
-rw-r--r--var/spack/repos/builtin/packages/texlive/package.py63
-rw-r--r--var/spack/repos/builtin/packages/texstudio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/textparser/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tfel/package.py13
-rw-r--r--var/spack/repos/builtin/packages/the-platinum-searcher/package.py4
-rw-r--r--var/spack/repos/builtin/packages/the-silver-searcher/package.py6
-rw-r--r--var/spack/repos/builtin/packages/thepeg/package.py4
-rw-r--r--var/spack/repos/builtin/packages/thornado-mini/package.py5
-rw-r--r--var/spack/repos/builtin/packages/thrift/package.py4
-rw-r--r--var/spack/repos/builtin/packages/thrust/package.py18
-rw-r--r--var/spack/repos/builtin/packages/tidy-html5/package.py20
-rw-r--r--var/spack/repos/builtin/packages/tig/package.py2
-rw-r--r--var/spack/repos/builtin/packages/time/package.py2
-rw-r--r--var/spack/repos/builtin/packages/timedatex/package.py2
-rw-r--r--var/spack/repos/builtin/packages/timemory/package.py456
-rw-r--r--var/spack/repos/builtin/packages/tinker/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tinyxml/package.py9
-rw-r--r--var/spack/repos/builtin/packages/tinyxml2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tioga/package.py54
-rw-r--r--var/spack/repos/builtin/packages/tippecanoe/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tiptop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tix/package.py70
-rw-r--r--var/spack/repos/builtin/packages/tix/test/test.tcl5
-rw-r--r--var/spack/repos/builtin/packages/tixi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tk/package.py111
-rw-r--r--var/spack/repos/builtin/packages/tk/test/test.tcl5
-rw-r--r--var/spack/repos/builtin/packages/tkrzw/package.py88
-rw-r--r--var/spack/repos/builtin/packages/tldd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tmalign/package.py4
-rw-r--r--var/spack/repos/builtin/packages/tmhmm/package.py7
-rw-r--r--var/spack/repos/builtin/packages/tmux/package.py11
-rw-r--r--var/spack/repos/builtin/packages/tomcat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/toml11/package.py28
-rw-r--r--var/spack/repos/builtin/packages/tophat/package.py7
-rw-r--r--var/spack/repos/builtin/packages/torque/package.py37
-rw-r--r--var/spack/repos/builtin/packages/totalview/package.py6
-rw-r--r--var/spack/repos/builtin/packages/tpm2-tss/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tppred/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tracer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/transabyss/package.py6
-rw-r--r--var/spack/repos/builtin/packages/transdecoder/package.py4
-rw-r--r--var/spack/repos/builtin/packages/transposome/package.py2
-rw-r--r--var/spack/repos/builtin/packages/transrate/package.py7
-rw-r--r--var/spack/repos/builtin/packages/transset/package.py6
-rw-r--r--var/spack/repos/builtin/packages/trapproto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tree/package.py5
-rw-r--r--var/spack/repos/builtin/packages/treelite/package.py3
-rw-r--r--var/spack/repos/builtin/packages/treesub/package.py5
-rw-r--r--var/spack/repos/builtin/packages/trf/package.py38
-rw-r--r--var/spack/repos/builtin/packages/triangle/package.py6
-rw-r--r--var/spack/repos/builtin/packages/trident/package.py2
-rw-r--r--var/spack/repos/builtin/packages/trilinos-catalyst-ioss-adapter/package.py2
-rw-r--r--var/spack/repos/builtin/packages/trilinos/fix_cxx14_cuda11.patch110
-rw-r--r--var/spack/repos/builtin/packages/trilinos/package.py922
-rw-r--r--var/spack/repos/builtin/packages/trimal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/trimgalore/package.py2
-rw-r--r--var/spack/repos/builtin/packages/trimmomatic/package.py5
-rw-r--r--var/spack/repos/builtin/packages/trinity/package.py15
-rw-r--r--var/spack/repos/builtin/packages/trinotate/package.py7
-rw-r--r--var/spack/repos/builtin/packages/trnascan-se/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tskit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/tulip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/turbine/package.py10
-rw-r--r--var/spack/repos/builtin/packages/turbomole/package.py7
-rw-r--r--var/spack/repos/builtin/packages/turnserver/package.py2
-rw-r--r--var/spack/repos/builtin/packages/tut/package.py8
-rw-r--r--var/spack/repos/builtin/packages/twm/package.py6
-rw-r--r--var/spack/repos/builtin/packages/tycho2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/typhon/package.py2
-rw-r--r--var/spack/repos/builtin/packages/typhonio/package.py8
-rw-r--r--var/spack/repos/builtin/packages/uchardet/package.py16
-rw-r--r--var/spack/repos/builtin/packages/ucx/package.py46
-rw-r--r--var/spack/repos/builtin/packages/udunits/package.py7
-rw-r--r--var/spack/repos/builtin/packages/ufo-core/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ufo-filters/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ufs-utils/package.py43
-rw-r--r--var/spack/repos/builtin/packages/ufs-weather-model/package.py94
-rw-r--r--var/spack/repos/builtin/packages/uftrace/package.py71
-rw-r--r--var/spack/repos/builtin/packages/umap/package.py7
-rw-r--r--var/spack/repos/builtin/packages/umesimd/package.py25
-rw-r--r--var/spack/repos/builtin/packages/umoci/package.py2
-rw-r--r--var/spack/repos/builtin/packages/umpire/missing_header_for_numeric_limits.patch12
-rw-r--r--var/spack/repos/builtin/packages/umpire/package.py424
-rw-r--r--var/spack/repos/builtin/packages/unblur/package.py4
-rw-r--r--var/spack/repos/builtin/packages/uncrustify/package.py2
-rw-r--r--var/spack/repos/builtin/packages/unibilium/package.py2
-rw-r--r--var/spack/repos/builtin/packages/unifdef/package.py2
-rw-r--r--var/spack/repos/builtin/packages/unifyfs/auto-mount.patch25
-rw-r--r--var/spack/repos/builtin/packages/unifyfs/include-sys-sysmacros.h.patch43
-rw-r--r--var/spack/repos/builtin/packages/unifyfs/package.py45
-rw-r--r--var/spack/repos/builtin/packages/unifyfs/unifyfs-sysio.c.patch11
-rw-r--r--var/spack/repos/builtin/packages/unigen/package.py33
-rw-r--r--var/spack/repos/builtin/packages/unigen/unigen-2.3.patch127
-rw-r--r--var/spack/repos/builtin/packages/unison/package.py2
-rw-r--r--var/spack/repos/builtin/packages/units/package.py2
-rw-r--r--var/spack/repos/builtin/packages/unittest-cpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/universal-ctags/package.py7
-rw-r--r--var/spack/repos/builtin/packages/unixodbc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/unqlite/package.py2
-rw-r--r--var/spack/repos/builtin/packages/unrar/package.py2
-rw-r--r--var/spack/repos/builtin/packages/unuran/package.py6
-rw-r--r--var/spack/repos/builtin/packages/unzip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/upcxx/package.py39
-rw-r--r--var/spack/repos/builtin/packages/uqtk/package.py31
-rw-r--r--var/spack/repos/builtin/packages/uriparser/package.py3
-rw-r--r--var/spack/repos/builtin/packages/usbutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/usearch/package.py9
-rw-r--r--var/spack/repos/builtin/packages/userspace-rcu/package.py4
-rw-r--r--var/spack/repos/builtin/packages/utf8proc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/util-linux-uuid/package.py46
-rw-r--r--var/spack/repos/builtin/packages/util-linux/package.py20
-rw-r--r--var/spack/repos/builtin/packages/util-macros/package.py8
-rw-r--r--var/spack/repos/builtin/packages/uvw/package.py2
-rw-r--r--var/spack/repos/builtin/packages/valgrind/package.py9
-rw-r--r--var/spack/repos/builtin/packages/vampirtrace/package.py4
-rw-r--r--var/spack/repos/builtin/packages/vapor/package.py50
-rw-r--r--var/spack/repos/builtin/packages/vardictjava/package.py2
-rw-r--r--var/spack/repos/builtin/packages/variorum/package.py8
-rw-r--r--var/spack/repos/builtin/packages/varnish-cache/package.py2
-rw-r--r--var/spack/repos/builtin/packages/varscan/package.py7
-rw-r--r--var/spack/repos/builtin/packages/vasp/package.py29
-rw-r--r--var/spack/repos/builtin/packages/vbfnlo/package.py8
-rw-r--r--var/spack/repos/builtin/packages/vc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vcftools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vcsh/package.py3
-rw-r--r--var/spack/repos/builtin/packages/vdt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/veccore/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vecgeom/package.py10
-rw-r--r--var/spack/repos/builtin/packages/veclibfort/package.py5
-rw-r--r--var/spack/repos/builtin/packages/vegas2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/veloc/package.py16
-rw-r--r--var/spack/repos/builtin/packages/velvet/package.py6
-rw-r--r--var/spack/repos/builtin/packages/velvetoptimiser/package.py2
-rw-r--r--var/spack/repos/builtin/packages/verilator/package.py4
-rw-r--r--var/spack/repos/builtin/packages/verrou/package.py5
-rw-r--r--var/spack/repos/builtin/packages/vesta/package.py4
-rw-r--r--var/spack/repos/builtin/packages/vgm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/videoproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/viennarna/package.py2
-rw-r--r--var/spack/repos/builtin/packages/viewres/package.py4
-rw-r--r--var/spack/repos/builtin/packages/vifi/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vigra/package.py4
-rw-r--r--var/spack/repos/builtin/packages/vim/package.py123
-rw-r--r--var/spack/repos/builtin/packages/virtualgl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/virtuoso/package.py58
-rw-r--r--var/spack/repos/builtin/packages/visit-cgns/package.py99
-rw-r--r--var/spack/repos/builtin/packages/visit-ffp/package.py82
-rw-r--r--var/spack/repos/builtin/packages/visit-mfem/package.py97
-rw-r--r--var/spack/repos/builtin/packages/visit-silo/package.py102
-rw-r--r--var/spack/repos/builtin/packages/visit-unv/package.py83
-rw-r--r--var/spack/repos/builtin/packages/visit/package.py11
-rw-r--r--var/spack/repos/builtin/packages/vizglow/package.py9
-rw-r--r--var/spack/repos/builtin/packages/vmatch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vmc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vmd/package.py22
-rw-r--r--var/spack/repos/builtin/packages/volk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/voropp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/votca-csg-tutorials/package.py12
-rw-r--r--var/spack/repos/builtin/packages/votca-csg/package.py12
-rw-r--r--var/spack/repos/builtin/packages/votca-csgapps/package.py10
-rw-r--r--var/spack/repos/builtin/packages/votca-ctp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/votca-tools/package.py13
-rw-r--r--var/spack/repos/builtin/packages/votca-xtp/package.py12
-rw-r--r--var/spack/repos/builtin/packages/vpfft/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vpic/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vsearch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vsftpd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vt/package.py4
-rw-r--r--var/spack/repos/builtin/packages/vtable-dumper/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vtk-h/package.py38
-rw-r--r--var/spack/repos/builtin/packages/vtk-m/package.py224
-rw-r--r--var/spack/repos/builtin/packages/vtk/package.py43
-rw-r--r--var/spack/repos/builtin/packages/vtk/vtkm-findmpi-downstream.patch185
-rwxr-xr-xvar/spack/repos/builtin/packages/vvtest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/w3emc/package.py20
-rw-r--r--var/spack/repos/builtin/packages/w3m/fix_gc.patch20
-rw-r--r--var/spack/repos/builtin/packages/w3m/fix_redef.patch58
-rw-r--r--var/spack/repos/builtin/packages/w3m/package.py76
-rw-r--r--var/spack/repos/builtin/packages/w3nco/package.py21
-rw-r--r--var/spack/repos/builtin/packages/wannier90/package.py2
-rw-r--r--var/spack/repos/builtin/packages/warpx/package.py266
-rw-r--r--var/spack/repos/builtin/packages/watch/package.py2
-rw-r--r--var/spack/repos/builtin/packages/wayland-protocols/package.py29
-rw-r--r--var/spack/repos/builtin/packages/wayland/package.py4
-rw-r--r--var/spack/repos/builtin/packages/wcs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/wcslib/package.py4
-rw-r--r--var/spack/repos/builtin/packages/webbench/package.py2
-rw-r--r--var/spack/repos/builtin/packages/weechat/package.py2
-rw-r--r--var/spack/repos/builtin/packages/weighttp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/wget/package.py7
-rw-r--r--var/spack/repos/builtin/packages/wgrib2/package.py29
-rw-r--r--var/spack/repos/builtin/packages/wgsim/package.py2
-rw-r--r--var/spack/repos/builtin/packages/which/package.py2
-rw-r--r--var/spack/repos/builtin/packages/whizard/package.py7
-rw-r--r--var/spack/repos/builtin/packages/windowswmproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/wireshark/package.py2
-rw-r--r--var/spack/repos/builtin/packages/wonton/package.py6
-rw-r--r--var/spack/repos/builtin/packages/wordnet/package.py4
-rw-r--r--var/spack/repos/builtin/packages/workrave/package.py8
-rw-r--r--var/spack/repos/builtin/packages/wps/for_aarch64.patch11
-rw-r--r--var/spack/repos/builtin/packages/wps/package.py8
-rw-r--r--var/spack/repos/builtin/packages/wrf-io/package.py22
-rw-r--r--var/spack/repos/builtin/packages/wrf/package.py79
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/3.9/aocc_lmvec.patch130
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_2.3.patch53
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.0.patch53
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.1.patch53
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/4.2/configure_aocc_2.3.patch53
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/4.2/configure_aocc_3.0.patch53
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/4.2/derf_fix.patch11
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/4.2/hdf5_fix.patch20
-rw-r--r--var/spack/repos/builtin/packages/wrk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/wsmancli/package.py2
-rw-r--r--var/spack/repos/builtin/packages/wt/package.py24
-rw-r--r--var/spack/repos/builtin/packages/wtdbg2/for_aarch64.patch23
-rw-r--r--var/spack/repos/builtin/packages/wtdbg2/package.py10
-rw-r--r--var/spack/repos/builtin/packages/wxparaver/package.py46
-rw-r--r--var/spack/repos/builtin/packages/wxpropgrid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/wxwidgets/package.py9
-rw-r--r--var/spack/repos/builtin/packages/x11perf/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xabclib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xapian-core/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xauth/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xbacklight/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xbiff/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xbitmaps/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xbraid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xcalc/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xcb-demo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xcb-proto/package.py16
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-cursor/package.py3
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-errors/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-image/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-keysyms/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-renderutil/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-wm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xcb-util-xrm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xcb-util/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xcfun/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xclip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xclipboard/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xclock/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xcmiscproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xcmsdb/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xcompmgr/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xconsole/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xcursor-themes/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xcursorgen/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xdbedizzy/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xdelta/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xditview/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xdm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xdmf3/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xdotool/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xdpyinfo/package.py12
-rw-r--r--var/spack/repos/builtin/packages/xdriinfo/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xedit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xerces-c/package.py5
-rw-r--r--var/spack/repos/builtin/packages/xeus/package.py42
-rw-r--r--var/spack/repos/builtin/packages/xev/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xextproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xeyes/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xf86bigfontproto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xf86dga/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xf86dgaproto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xf86driproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xf86miscproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xf86rushproto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xf86vidmodeproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xfd/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xfindproxy/package.py8
-rw-r--r--var/spack/repos/builtin/packages/xfontsel/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xforms/package.py26
-rw-r--r--var/spack/repos/builtin/packages/xfs/package.py10
-rw-r--r--var/spack/repos/builtin/packages/xfsdump/package.py45
-rw-r--r--var/spack/repos/builtin/packages/xfsinfo/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xfsprogs/package.py24
-rw-r--r--var/spack/repos/builtin/packages/xfwp/package.py8
-rw-r--r--var/spack/repos/builtin/packages/xgamma/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xgboost/package.py54
-rw-r--r--var/spack/repos/builtin/packages/xgc/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xhmm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xhost/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xineramaproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xinit/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xinput/package.py12
-rw-r--r--var/spack/repos/builtin/packages/xios/package.py7
-rw-r--r--var/spack/repos/builtin/packages/xkbcomp/package.py5
-rw-r--r--var/spack/repos/builtin/packages/xkbdata/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xkbevd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xkbprint/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xkbutils/package.py8
-rw-r--r--var/spack/repos/builtin/packages/xkeyboard-config/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xkill/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xlc/package.py82
-rw-r--r--var/spack/repos/builtin/packages/xlf/package.py70
-rw-r--r--var/spack/repos/builtin/packages/xload/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xlogo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xlsatoms/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xlsclients/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xlsfonts/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xmag/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xman/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xmessage/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xmh/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xmlf90/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xmlrpc-c/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xmlto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xmodmap/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xmore/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xnnpack/package.py104
-rw-r--r--var/spack/repos/builtin/packages/xorg-cf-files/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xorg-docs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xorg-gtest/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xorg-server/package.py10
-rw-r--r--var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xphelloworld/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xplor-nih/package.py7
-rw-r--r--var/spack/repos/builtin/packages/xplsprinters/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xpmem/package.py9
-rw-r--r--var/spack/repos/builtin/packages/xpmem/xpmem_v2.6.5-36.patch15
-rw-r--r--var/spack/repos/builtin/packages/xpr/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xprehashprinterlist/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xprop/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xproperty/package.py25
-rw-r--r--var/spack/repos/builtin/packages/xproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xqilla/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xrandr/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xrdb/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xrefresh/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xrootd/package.py9
-rw-r--r--var/spack/repos/builtin/packages/xrx/package.py8
-rw-r--r--var/spack/repos/builtin/packages/xsbench/package.py8
-rw-r--r--var/spack/repos/builtin/packages/xscope/package.py8
-rw-r--r--var/spack/repos/builtin/packages/xsd/package.py8
-rw-r--r--var/spack/repos/builtin/packages/xsdk-examples/package.py37
-rw-r--r--var/spack/repos/builtin/packages/xsdk/package.py84
-rw-r--r--var/spack/repos/builtin/packages/xsdktrilinos/package.py80
-rw-r--r--var/spack/repos/builtin/packages/xset/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xsetmode/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xsetpointer/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xsetroot/package.py8
-rw-r--r--var/spack/repos/builtin/packages/xsimd/package.py10
-rw-r--r--var/spack/repos/builtin/packages/xsm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xstdcmap/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xtensor-python/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xtensor/package.py21
-rw-r--r--var/spack/repos/builtin/packages/xterm/package.py5
-rw-r--r--var/spack/repos/builtin/packages/xtl/package.py3
-rw-r--r--var/spack/repos/builtin/packages/xtrans/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xtrap/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xts/package.py10
-rw-r--r--var/spack/repos/builtin/packages/xvidtune/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xvinfo/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xwd/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xwidgets/package.py24
-rw-r--r--var/spack/repos/builtin/packages/xwininfo/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xwud/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xxd-standalone/package.py28
-rw-r--r--var/spack/repos/builtin/packages/xxhash/package.py6
-rw-r--r--var/spack/repos/builtin/packages/xyce/package.py94
-rw-r--r--var/spack/repos/builtin/packages/xz/package.py12
-rw-r--r--var/spack/repos/builtin/packages/yajl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/yambo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/yaml-cpp/package.py5
-rw-r--r--var/spack/repos/builtin/packages/yara/package.py4
-rw-r--r--var/spack/repos/builtin/packages/yarn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/yasm/package.py6
-rw-r--r--var/spack/repos/builtin/packages/ycsb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/yoda/package.py23
-rw-r--r--var/spack/repos/builtin/packages/yorick/package.py4
-rw-r--r--var/spack/repos/builtin/packages/z-checker/package.py6
-rw-r--r--var/spack/repos/builtin/packages/z3/package.py36
-rw-r--r--var/spack/repos/builtin/packages/zabbix/package.py4
-rw-r--r--var/spack/repos/builtin/packages/zfp/package.py117
-rw-r--r--var/spack/repos/builtin/packages/zfs/package.py4
-rw-r--r--var/spack/repos/builtin/packages/zig/package.py22
-rw-r--r--var/spack/repos/builtin/packages/zip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/zipkin/package.py2
-rw-r--r--var/spack/repos/builtin/packages/zlib-ng/package.py28
-rw-r--r--var/spack/repos/builtin/packages/zlib/package.py6
-rw-r--r--var/spack/repos/builtin/packages/zoltan/package.py23
-rw-r--r--var/spack/repos/builtin/packages/zookeeper-benchmark/package.py4
-rw-r--r--var/spack/repos/builtin/packages/zookeeper/package.py2
-rw-r--r--var/spack/repos/builtin/packages/zsh/package.py4
-rw-r--r--var/spack/repos/builtin/packages/zstd/package.py53
-rw-r--r--var/spack/repos/builtin/packages/zstr/package.py30
-rw-r--r--var/spack/repos/builtin/packages/zziplib/package.py37
-rw-r--r--var/spack/repos/tutorial/packages/armadillo/package.py2
-rw-r--r--var/spack/repos/tutorial/packages/elpa/package.py2
-rw-r--r--var/spack/repos/tutorial/packages/hdf5/h5public-skip-mpicxx.patch11
-rw-r--r--var/spack/repos/tutorial/packages/hdf5/hdf5_1.8_gcc10.patch12
-rw-r--r--var/spack/repos/tutorial/packages/hdf5/package.py468
-rw-r--r--var/spack/repos/tutorial/packages/hdf5/test/dump.out45
-rw-r--r--var/spack/repos/tutorial/packages/hdf5/test/spack.h5bin0 -> 8928 bytes
-rw-r--r--var/spack/repos/tutorial/packages/mpich/package.py5
-rw-r--r--var/spack/repos/tutorial/packages/netlib-lapack/package.py2
7037 files changed, 116409 insertions, 38874 deletions
diff --git a/.codecov.yml b/.codecov.yml
index 230afe39b2..fead3ad004 100644
--- a/.codecov.yml
+++ b/.codecov.yml
@@ -14,3 +14,21 @@ ignore:
- share/spack/qa/.*
comment: off
+
+# Inline codecov annotations make the code hard to read, and they add
+# annotations in files that seemingly have nothing to do with the PR.
+github_checks:
+ annotations: false
+
+# Attempt to fix "Missing base commit" messages in the codecov UI.
+# Because we do not run full tests on package PRs, package PRs' merge
+# commits on `develop` don't have coverage info. It appears that
+# codecov will give you an error if the pseudo-base's coverage data
+# doesn't all apply properly to the real PR base.
+#
+# See here for docs:
+# https://docs.codecov.com/docs/comparing-commits#pseudo-comparison
+# See here for another potential solution:
+# https://community.codecov.com/t/2480/15
+codecov:
+ allow_coverage_offsets: true
diff --git a/.coveragerc b/.coveragerc
deleted file mode 100644
index 94d38d7a2e..0000000000
--- a/.coveragerc
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- conf -*-
-# .coveragerc to control coverage.py
-[run]
-parallel = True
-concurrency = multiprocessing
-branch = True
-source =
- bin
- lib
-omit =
- lib/spack/spack/test/*
- lib/spack/docs/*
- lib/spack/external/*
- share/spack/qa/*
-
-[report]
-# Regexes for lines to exclude from consideration
-exclude_lines =
- # Have to re-enable the standard pragma
- pragma: no cover
-
- # Don't complain about missing debug-only code:
- def __repr__
- if self\.debug
-
- # Don't complain if tests don't hit defensive assertion code:
- raise AssertionError
- raise NotImplementedError
-
- # Don't complain if non-runnable code isn't run:
- if 0:
- if False:
- if __name__ == .__main__.:
-
-ignore_errors = True
-
-[html]
-directory = htmlcov
diff --git a/.dockerignore b/.dockerignore
index f836955e30..e6ad1f1d1e 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -8,4 +8,4 @@ share/spack/dotkit/*
share/spack/lmod/*
share/spack/modules/*
lib/spack/spack/test/*
-
+var/spack/cache/*
diff --git a/.flake8 b/.flake8
index b4f0488428..a4c8aa2fbc 100644
--- a/.flake8
+++ b/.flake8
@@ -27,6 +27,47 @@
# - N813: camelcase imported as lowercase
# - N814: camelcase imported as constant
#
+# F4: pyflakes import checks, these are now checked by mypy more precisely
+# - F403: from module import *
+# - F405: undefined name or from *
+#
+# Black ignores, these are incompatible with black style and do not follow PEP-8
+# - E203: white space around slice operators can be required, ignore : warn
+# - W503: see above, already ignored for line-breaks
+#
[flake8]
-ignore = E129,E221,E241,E272,E731,W503,W504,F999,N801,N813,N814
+ignore = E129,E221,E241,E272,E731,W503,W504,F999,N801,N813,N814,F403,F405
max-line-length = 88
+
+# F4: Import
+# - F405: `name` may be undefined, or undefined from star imports: `module`
+#
+# F8: Name
+# - F821: undefined name `name`
+#
+per-file-ignores =
+ var/spack/repos/*/package.py:F405,F821
+
+# exclude things we usually do not want linting for.
+# These still get linted when passed explicitly, as when spack flake8 passes
+# them on the command line.
+exclude =
+ .git
+ etc/
+ opt/
+ share/
+ var/spack/cache/
+ var/spack/gpg*/
+ var/spack/junit-report/
+ var/spack/mock-configs/
+ lib/spack/external
+ __pycache__
+ var
+
+format = spack
+
+[flake8:local-plugins]
+report =
+ spack = flake8_formatter:SpackFormatter
+paths =
+ ./share/spack/qa/
diff --git a/.flake8_packages b/.flake8_packages
deleted file mode 100644
index fc2dbf98af..0000000000
--- a/.flake8_packages
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- conf -*-
-# flake8 settings for Spack package files.
-#
-# This should include all the same exceptions that we use for core files.
-#
-# In Spack packages, we also allow the single `from spack import *`
-# wildcard import and dependencies can set globals for their
-# dependents. So we add exceptions for checks related to undefined names.
-#
-# Note that we also add *per-line* exemptions for certain patterns in the
-# `spack flake8` command. This is where F403 for `from spack import *`
-# is added (because we *only* allow that wildcard).
-#
-# See .flake8 for regular exceptions.
-#
-# F4: Import
-# - F405: `name` may be undefined, or undefined from star imports: `module`
-#
-# F8: Name
-# - F821: undefined name `name`
-#
-[flake8]
-ignore = E129,E221,E241,E272,E731,W503,W504,F405,F821,F999,N801,N813,N814
-max-line-length = 79
diff --git a/.gitattributes b/.gitattributes
index 95105a3731..5299044761 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1 +1,3 @@
*.py diff=python
+*.lp linguist-language=Prolog
+lib/spack/external/* linguist-vendored
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 9a568285ea..0000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-name: "\U0001F41E Bug report"
-about: Report a bug in the core of Spack (command not working as expected, etc.)
-labels: "bug,triage"
----
-
-<!-- Explain, in a clear and concise way, the command you ran and the result you were trying to achieve.
-Example: "I ran `spack find` to list all the installed packages and ..." -->
-
-### Steps to reproduce the issue
-
-```console
-$ spack <command1> <spec>
-$ spack <command2> <spec>
-...
-```
-
-### Error Message
-
-<!-- If Spack reported an error, provide the error message. If it did not report an error but the output appears incorrect, provide the incorrect output. If there was no error message and no output but the result is incorrect, describe how it does not match what you expect. -->
-```console
-$ spack --debug --stacktrace <command>
-```
-
-### Information on your system
-
-<!-- Please include the output of `spack debug report` -->
-
-<!-- If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well. -->
-
-### Additional information
-
-<!-- These boxes can be checked by replacing [ ] with [x] or by clicking them after submitting the issue. -->
-- [ ] I have run `spack debug report` and reported the version of Spack/Python/Platform
-- [ ] I have searched the issues of this repo and believe this is not a duplicate
-- [ ] I have run the failing commands in debug mode and reported the output
-
-<!-- We encourage you to try, as much as possible, to reduce your problem to the minimal example that still reproduces the issue. That would help us a lot in fixing it quickly and effectively!
-
-If you want to ask a question about the tool (how to use it, what it can currently do, etc.), try the `#general` channel on our Slack first. We have a welcoming community and chances are you'll get your reply faster and without opening an issue.
-
-Other than that, thanks for taking the time to contribute to Spack! -->
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000000..e94915f017
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,58 @@
+name: "\U0001F41E Bug report"
+description: Report a bug in the core of Spack (command not working as expected, etc.)
+labels: [bug, triage]
+body:
+ - type: textarea
+ id: reproduce
+ attributes:
+ label: Steps to reproduce
+ description: |
+ Explain, in a clear and concise way, the command you ran and the result you were trying to achieve.
+ Example: "I ran `spack find` to list all the installed packages and ..."
+ placeholder: |
+ ```console
+ $ spack <command1> <spec>
+ $ spack <command2> <spec>
+ ...
+ ```
+ validations:
+ required: true
+ - type: textarea
+ id: error
+ attributes:
+ label: Error message
+ description: |
+ If Spack reported an error, provide the error message. If it did not report an error but the output appears incorrect, provide the incorrect output. If there was no error message and no output but the result is incorrect, describe how it does not match what you expect.
+ placeholder: |
+ ```console
+ $ spack --debug --stacktrace <command>
+ ```
+ - type: textarea
+ id: information
+ attributes:
+ label: Information on your system
+ description: Please include the output of `spack debug report`
+ validations:
+ required: true
+ - type: markdown
+ attributes:
+ value: |
+ If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well.
+ - type: checkboxes
+ id: checks
+ attributes:
+ label: General information
+ options:
+ - label: I have run `spack debug report` and reported the version of Spack/Python/Platform
+ required: true
+ - label: I have searched the issues of this repo and believe this is not a duplicate
+ required: true
+ - label: I have run the failing commands in debug mode and reported the output
+ required: true
+ - type: markdown
+ attributes:
+ value: |
+ We encourage you to try, as much as possible, to reduce your problem to the minimal example that still reproduces the issue. That would help us a lot in fixing it quickly and effectively!
+ If you want to ask a question about the tool (how to use it, what it can currently do, etc.), try the `#general` channel on [our Slack](https://slack.spack.io/) first. We have a welcoming community and chances are you'll get your reply faster and without opening an issue.
+
+ Other than that, thanks for taking the time to contribute to Spack!
diff --git a/.github/ISSUE_TEMPLATE/build_error.md b/.github/ISSUE_TEMPLATE/build_error.md
deleted file mode 100644
index d26db233d3..0000000000
--- a/.github/ISSUE_TEMPLATE/build_error.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-name: "\U0001F4A5 Build error"
-about: Some package in Spack didn't build correctly
-title: "Installation issue: "
-labels: "build-error"
----
-
-<!-- Thanks for taking the time to report this build failure. To proceed with the report please:
-
-1. Title the issue "Installation issue: <name-of-the-package>".
-2. Provide the information required below.
-
-We encourage you to try, as much as possible, to reduce your problem to the minimal example that still reproduces the issue. That would help us a lot in fixing it quickly and effectively! -->
-
-### Steps to reproduce the issue
-
-<!-- Fill in the exact spec you are trying to build and the relevant part of the error message -->
-```console
-$ spack install <spec>
-...
-```
-
-### Information on your system
-
-<!-- Please include the output of `spack debug report` -->
-
-<!-- If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well. -->
-
-### Additional information
-
-<!-- Please upload the following files. They should be present in the stage directory of the failing build. Also upload any config.log or similar file if one exists. -->
-* [spack-build-out.txt]()
-* [spack-build-env.txt]()
-
-<!-- Some packages have maintainers who have volunteered to debug build failures. Run `spack maintainers <name-of-the-package>` and @mention them here if they exist. -->
-
-### General information
-
-<!-- These boxes can be checked by replacing [ ] with [x] or by clicking them after submitting the issue. -->
-- [ ] I have run `spack debug report` and reported the version of Spack/Python/Platform
-- [ ] I have run `spack maintainers <name-of-the-package>` and @mentioned any maintainers
-- [ ] I have uploaded the build log and environment files
-- [ ] I have searched the issues of this repo and believe this is not a duplicate
diff --git a/.github/ISSUE_TEMPLATE/build_error.yml b/.github/ISSUE_TEMPLATE/build_error.yml
new file mode 100644
index 0000000000..cf5d867ffe
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/build_error.yml
@@ -0,0 +1,64 @@
+name: "\U0001F4A5 Build error"
+description: Some package in Spack didn't build correctly
+title: "Installation issue: "
+labels: [build-error]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to report this build failure. To proceed with the report please:
+ 1. Title the issue `Installation issue: <name-of-the-package>`.
+ 2. Provide the information required below.
+
+ We encourage you to try, as much as possible, to reduce your problem to the minimal example that still reproduces the issue. That would help us a lot in fixing it quickly and effectively!
+ - type: textarea
+ id: reproduce
+ attributes:
+ label: Steps to reproduce the issue
+ description: |
+ Fill in the exact spec you are trying to build and the relevant part of the error message
+ placeholder: |
+ ```console
+ $ spack install <spec>
+ ...
+ ```
+ validations:
+ required: true
+ - type: textarea
+ id: information
+ attributes:
+ label: Information on your system
+ description: Please include the output of `spack debug report`
+ validations:
+ required: true
+ - type: markdown
+ attributes:
+ value: |
+ If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well.
+ - type: textarea
+ id: additional_information
+ attributes:
+ label: Additional information
+ description: |
+ Please upload the following files:
+ * **`spack-build-out.txt`**
+ * **`spack-build-env.txt`**
+
+ They should be present in the stage directory of the failing build. Also upload any `config.log` or similar file if one exists.
+ - type: markdown
+ attributes:
+ value: |
+ Some packages have maintainers who have volunteered to debug build failures. Run `spack maintainers <name-of-the-package>` and **@mention** them here if they exist.
+ - type: checkboxes
+ id: checks
+ attributes:
+ label: General information
+ options:
+ - label: I have run `spack debug report` and reported the version of Spack/Python/Platform
+ required: true
+ - label: I have run `spack maintainers <name-of-the-package>` and **@mentioned** any maintainers
+ required: true
+ - label: I have uploaded the build log and environment files
+ required: true
+ - label: I have searched the issues of this repo and believe this is not a duplicate
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000..a49eab2f6b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1 @@
+blank_issues_enabled: true \ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index b6e5e27e6f..0000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-name: "\U0001F38A Feature request"
-about: Suggest adding a feature that is not yet in Spack
-labels: feature
-
----
-
-<!--*Please add a concise summary of your suggestion here.*-->
-
-### Rationale
-
-<!--*Is your feature request related to a problem? Please describe it!*-->
-
-### Description
-
-<!--*Describe the solution you'd like and the alternatives you have considered.*-->
-
-
-### Additional information
-<!--*Add any other context about the feature request here.*-->
-
-
-### General information
-
-- [ ] I have run `spack --version` and reported the version of Spack
-- [ ] I have searched the issues of this repo and believe this is not a duplicate
-
-
-
-<!--If you want to ask a question about the tool (how to use it, what it can currently do, etc.), try the `#general` channel on our Slack first. We have a welcoming community and chances are you'll get your reply faster and without opening an issue.
-
-Other than that, thanks for taking the time to contribute to Spack!
---> \ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000000..a247d9395a
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,41 @@
+name: "\U0001F38A Feature request"
+description: Suggest adding a feature that is not yet in Spack
+labels: [feature]
+body:
+ - type: textarea
+ id: summary
+ attributes:
+ label: Summary
+ description: Please add a concise summary of your suggestion here.
+ validations:
+ required: true
+ - type: textarea
+ id: rationale
+ attributes:
+ label: Rationale
+ description: Is your feature request related to a problem? Please describe it!
+ - type: textarea
+ id: description
+ attributes:
+ label: Description
+ description: Describe the solution you'd like and the alternatives you have considered.
+ - type: textarea
+ id: additional_information
+ attributes:
+ label: Additional information
+ description: Add any other context about the feature request here.
+ - type: checkboxes
+ id: checks
+ attributes:
+ label: General information
+ options:
+ - label: I have run `spack --version` and reported the version of Spack
+ required: true
+ - label: I have searched the issues of this repo and believe this is not a duplicate
+ required: true
+ - type: markdown
+ attributes:
+ value: |
+ If you want to ask a question about the tool (how to use it, what it can currently do, etc.), try the `#general` channel on [our Slack](https://slack.spack.io/) first. We have a welcoming community and chances are you'll get your reply faster and without opening an issue.
+
+ Other than that, thanks for taking the time to contribute to Spack!
diff --git a/.github/actions/add-maintainers-as-reviewers/Dockerfile b/.github/actions/add-maintainers-as-reviewers/Dockerfile
deleted file mode 100644
index 9370cfed83..0000000000
--- a/.github/actions/add-maintainers-as-reviewers/Dockerfile
+++ /dev/null
@@ -1,6 +0,0 @@
-FROM python:3.7-alpine
-
-RUN pip install pygithub
-
-ADD entrypoint.py /entrypoint.py
-ENTRYPOINT ["/entrypoint.py"]
diff --git a/.github/actions/add-maintainers-as-reviewers/entrypoint.py b/.github/actions/add-maintainers-as-reviewers/entrypoint.py
deleted file mode 100755
index aa89fcd468..0000000000
--- a/.github/actions/add-maintainers-as-reviewers/entrypoint.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env python
-#
-# 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)
-
-"""Maintainer review action.
-
-This action checks which packages have changed in a PR, and adds their
-maintainers to the pull request for review.
-"""
-
-import json
-import os
-import re
-import subprocess
-
-from github import Github
-
-
-def spack(*args):
- """Run the spack executable with arguments, and return the output split.
-
- This does just enough to run `spack pkg` and `spack maintainers`, the
- two commands used by this action.
- """
- github_workspace = os.environ['GITHUB_WORKSPACE']
- spack = os.path.join(github_workspace, 'bin', 'spack')
- output = subprocess.check_output([spack] + list(args))
- split = re.split(r'\s*', output.decode('utf-8').strip())
- return [s for s in split if s]
-
-
-def main():
- # get these first so that we'll fail early
- token = os.environ['GITHUB_TOKEN']
- event_path = os.environ['GITHUB_EVENT_PATH']
-
- with open(event_path) as file:
- data = json.load(file)
-
- # make sure it's a pull_request event
- assert 'pull_request' in data
-
- # only request reviews on open, edit, or reopen
- action = data['action']
- if action not in ('opened', 'edited', 'reopened'):
- return
-
- # get data from the event payload
- pr_data = data['pull_request']
- base_branch_name = pr_data['base']['ref']
- full_repo_name = pr_data['base']['repo']['full_name']
- pr_number = pr_data['number']
- requested_reviewers = pr_data['requested_reviewers']
- author = pr_data['user']['login']
-
- # get a list of packages that this PR modified
- changed_pkgs = spack(
- 'pkg', 'changed', '--type', 'ac', '%s...' % base_branch_name)
-
- # get maintainers for all modified packages
- maintainers = set()
- for pkg in changed_pkgs:
- pkg_maintainers = set(spack('maintainers', pkg))
- maintainers |= pkg_maintainers
-
- # remove any maintainers who are already on the PR, and the author,
- # as you can't review your own PR)
- maintainers -= set(requested_reviewers)
- maintainers -= set([author])
-
- if not maintainers:
- return
-
- # request reviews from each maintainer
- gh = Github(token)
- repo = gh.get_repo(full_repo_name)
- pr = repo.get_pull(pr_number)
- pr.create_review_request(list(maintainers))
-
-
-if __name__ == "__main__":
- main()
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000000..2c7d170839
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,7 @@
+version: 2
+updates:
+ # Maintain dependencies for GitHub Actions
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "daily"
diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml
new file mode 100644
index 0000000000..ac2215a768
--- /dev/null
+++ b/.github/workflows/bootstrap.yml
@@ -0,0 +1,161 @@
+name: Bootstrapping
+
+on:
+ pull_request:
+ branches:
+ - develop
+ - releases/**
+ paths-ignore:
+ # Don't run if we only modified packages in the
+ # built-in repository or documentation
+ - 'var/spack/repos/builtin/**'
+ - '!var/spack/repos/builtin/packages/clingo-bootstrap/**'
+ - '!var/spack/repos/builtin/packages/python/**'
+ - '!var/spack/repos/builtin/packages/re2c/**'
+ - 'lib/spack/docs/**'
+ schedule:
+ # nightly at 2:16 AM
+ - cron: '16 2 * * *'
+
+jobs:
+
+ fedora-sources:
+ runs-on: ubuntu-latest
+ container: "fedora:latest"
+ steps:
+ - name: Install dependencies
+ run: |
+ dnf install -y \
+ bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
+ make patch unzip which xz python3 python3-devel tree \
+ cmake bison bison-devel libstdc++-static
+ - uses: actions/checkout@v2
+ - name: Setup repo and non-root user
+ run: |
+ git --version
+ git fetch --unshallow
+ . .github/workflows/setup_git.sh
+ useradd spack-test
+ chown -R spack-test .
+ - name: Bootstrap clingo
+ shell: runuser -u spack-test -- bash {0}
+ run: |
+ source share/spack/setup-env.sh
+ spack bootstrap untrust github-actions
+ spack external find cmake bison
+ spack -d solve zlib
+ tree ~/.spack/bootstrap/store/
+
+ ubuntu-sources:
+ runs-on: ubuntu-latest
+ container: "ubuntu:latest"
+ steps:
+ - name: Install dependencies
+ env:
+ DEBIAN_FRONTEND: noninteractive
+ run: |
+ apt-get update -y && apt-get upgrade -y
+ apt-get install -y \
+ bzip2 curl file g++ gcc gfortran git gnupg2 gzip \
+ make patch unzip xz-utils python3 python3-dev tree \
+ cmake bison
+ - uses: actions/checkout@v2
+ - name: Setup repo and non-root user
+ run: |
+ git --version
+ git fetch --unshallow
+ . .github/workflows/setup_git.sh
+ useradd -m spack-test
+ chown -R spack-test .
+ - name: Bootstrap clingo
+ shell: runuser -u spack-test -- bash {0}
+ run: |
+ source share/spack/setup-env.sh
+ spack bootstrap untrust github-actions
+ spack external find cmake bison
+ spack -d solve zlib
+ tree ~/.spack/bootstrap/store/
+
+ opensuse-sources:
+ runs-on: ubuntu-latest
+ container: "opensuse/tumbleweed:latest"
+ steps:
+ - name: Install dependencies
+ run: |
+ zypper update -y
+ zypper install -y \
+ bzip2 curl file gcc-c++ gcc gcc-fortran tar git gpg2 gzip \
+ make patch unzip which xz python3 python3-devel tree \
+ cmake bison
+ - uses: actions/checkout@v2
+ - name: Setup repo and non-root user
+ run: |
+ git --version
+ git fetch --unshallow
+ . .github/workflows/setup_git.sh
+ - name: Bootstrap clingo
+ run: |
+ source share/spack/setup-env.sh
+ spack bootstrap untrust github-actions
+ spack external find cmake bison
+ spack -d solve zlib
+ tree ~/.spack/bootstrap/store/
+
+ macos-sources:
+ runs-on: macos-latest
+ steps:
+ - name: Install dependencies
+ run: |
+ brew install cmake bison@2.7 tree
+ - uses: actions/checkout@v2
+ - name: Bootstrap clingo
+ run: |
+ source share/spack/setup-env.sh
+ export PATH=/usr/local/opt/bison@2.7/bin:$PATH
+ spack bootstrap untrust github-actions
+ spack external find --not-buildable cmake bison
+ spack -d solve zlib
+ tree ~/.spack/bootstrap/store/
+
+ macos-clingo-binaries:
+ runs-on: macos-latest
+ strategy:
+ matrix:
+ python-version: ['3.5', '3.6', '3.7', '3.8', '3.9']
+ steps:
+ - name: Install dependencies
+ run: |
+ brew install tree
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Bootstrap clingo
+ run: |
+ source share/spack/setup-env.sh
+ spack bootstrap untrust spack-install
+ spack -d solve zlib
+ tree ~/.spack/bootstrap/store/
+
+
+ ubuntu-clingo-binaries:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: ['2.7', '3.5', '3.6', '3.7', '3.8', '3.9']
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Setup repo and non-root user
+ run: |
+ git --version
+ git fetch --unshallow
+ . .github/workflows/setup_git.sh
+ - name: Bootstrap clingo
+ run: |
+ source share/spack/setup-env.sh
+ spack bootstrap untrust spack-install
+ spack -d solve zlib
+ tree ~/.spack/bootstrap/store/
diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml
new file mode 100644
index 0000000000..d2dd2d825e
--- /dev/null
+++ b/.github/workflows/build-containers.yml
@@ -0,0 +1,72 @@
+name: Build & Deploy Docker Containers
+on:
+ # Build new Spack develop containers nightly.
+ schedule:
+ - cron: '34 0 * * *'
+ # Let's also build & tag Spack containers on releases.
+ release:
+ types: [published]
+
+jobs:
+ deploy-images:
+ runs-on: ubuntu-latest
+ strategy:
+ # Even if one container fails to build we still want the others
+ # to continue their builds.
+ fail-fast: false
+ # A matrix of Dockerfile paths, associated tags, and which architectures
+ # they support.
+ matrix:
+ dockerfile: [[amazon-linux, amazonlinux-2.dockerfile, 'linux/amd64,linux/arm64'],
+ [centos7, centos-7.dockerfile, 'linux/amd64,linux/arm64'],
+ [leap15, leap-15.dockerfile, 'linux/amd64,linux/arm64'],
+ [ubuntu-xenial, ubuntu-1604.dockerfile, 'linux/amd64,linux/arm64'],
+ [ubuntu-bionic, ubuntu-1804.dockerfile, 'linux/amd64,linux/arm64']]
+ name: Build ${{ matrix.dockerfile[0] }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Set Container Tag Normal (Nightly)
+ run: |
+ container="ghcr.io/spack/${{ matrix.dockerfile[0]}}:latest"
+ echo "container=${container}" >> $GITHUB_ENV
+ echo "versioned=${container}" >> $GITHUB_ENV
+
+ # On a new release create a container with the same tag as the release.
+ - name: Set Container Tag on Release
+ if: github.event_name == 'release'
+ run: |
+ versioned="ghcr.io/spack/${{matrix.dockerfile[0]}}:${GITHUB_REF##*/}"
+ echo "versioned=${versioned}" >> $GITHUB_ENV
+
+ - name: Check ${{ matrix.dockerfile[1] }} Exists
+ run: |
+ printf "Preparing to build ${{ env.container }} from ${{ matrix.dockerfile[1] }}"
+ if [ ! -f "share/spack/docker/${{ matrix.dockerfile[1]}}" ]; then
+ printf "Dockerfile ${{ matrix.dockerfile[0]}} does not exist"
+ exit 1;
+ fi
+
+ - name: Log in to GitHub Container Registry
+ uses: docker/login-action@v1
+ with:
+ registry: ghcr.io
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+
+ - name: Build & Deploy ${{ matrix.dockerfile[1] }}
+ uses: docker/build-push-action@v2
+ with:
+ file: share/spack/docker/${{matrix.dockerfile[1]}}
+ platforms: ${{ matrix.dockerfile[2] }}
+ push: true
+ tags: |
+ ${{ env.container }}
+ ${{ env.versioned }}
diff --git a/.github/workflows/linux_build_tests.yaml b/.github/workflows/linux_build_tests.yaml
deleted file mode 100644
index 0a2946f63f..0000000000
--- a/.github/workflows/linux_build_tests.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-name: linux builds
-
-on:
- push:
- branches:
- - develop
- - releases/**
- pull_request:
- branches:
- - develop
- - releases/**
- paths-ignore:
- # Don't run if we only modified packages in the built-in repository
- - 'var/spack/repos/builtin/**'
- - '!var/spack/repos/builtin/packages/lz4/**'
- - '!var/spack/repos/builtin/packages/mpich/**'
- - '!var/spack/repos/builtin/packages/tut/**'
- - '!var/spack/repos/builtin/packages/py-setuptools/**'
- - '!var/spack/repos/builtin/packages/openjpeg/**'
- - '!var/spack/repos/builtin/packages/r-rcpp/**'
- - '!var/spack/repos/builtin/packages/ruby-rake/**'
- # Don't run if we only modified documentation
- - 'lib/spack/docs/**'
-
-jobs:
- build:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- package:
- - lz4 # MakefilePackage
- - mpich~fortran # AutotoolsPackage
- - tut # WafPackage
- - py-setuptools # PythonPackage
- - openjpeg # CMakePackage
- - r-rcpp # RPackage
- - ruby-rake # RubyPackage
- steps:
- - uses: actions/checkout@v2
- - uses: actions/cache@v2
- with:
- path: ~/.ccache
- key: ccache-build-${{ matrix.package }}
- restore-keys: |
- ccache-build-${{ matrix.package }}
- - uses: actions/setup-python@v2
- with:
- python-version: 3.9
- - name: Install System Packages
- run: |
- sudo apt-get update
- sudo apt-get -yqq install ccache gfortran perl perl-base r-base r-base-core r-base-dev ruby findutils openssl libssl-dev libpciaccess-dev
- R --version
- perl --version
- ruby --version
- - name: Copy Configuration
- run: |
- ccache -M 300M && ccache -z
- # Set up external deps for build tests, b/c they take too long to compile
- cp share/spack/qa/configuration/*.yaml etc/spack/
- - name: Run the build test
- run: |
- . share/spack/setup-env.sh
- SPEC=${{ matrix.package }} share/spack/qa/run-build-tests
- ccache -s
diff --git a/.github/workflows/linux_unit_tests.yaml b/.github/workflows/linux_unit_tests.yaml
deleted file mode 100644
index f21f9cd0ab..0000000000
--- a/.github/workflows/linux_unit_tests.yaml
+++ /dev/null
@@ -1,150 +0,0 @@
-name: linux tests
-
-on:
- push:
- branches:
- - develop
- - releases/**
- pull_request:
- branches:
- - develop
- - releases/**
-jobs:
- unittests:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]
- concretizer: ['original', 'clingo']
-
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0
- - uses: actions/setup-python@v2
- with:
- python-version: ${{ matrix.python-version }}
- - name: Install System packages
- run: |
- sudo apt-get -y update
- # Needed for unit tests
- sudo apt-get install -y coreutils gfortran graphviz gnupg2 mercurial
- sudo apt-get install -y ninja-build patchelf
- # Needed for kcov
- sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev
- sudo apt-get -y install 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
- . .github/workflows/setup_git.sh
- - name: Install kcov for bash script coverage
- env:
- KCOV_VERSION: 34
- 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: Bootstrap clingo from sources
- if: ${{ matrix.concretizer == 'clingo' }}
- run: |
- . share/spack/setup-env.sh
- spack external find --not-buildable cmake bison
- spack -v solve zlib
- - name: Run unit tests
- env:
- COVERAGE: true
- SPACK_TEST_SOLVER: ${{ matrix.concretizer }}
- run: |
- share/spack/qa/run-unit-tests
- coverage combine
- coverage xml
- - uses: codecov/codecov-action@v1
- with:
- flags: unittests,linux,${{ matrix.concretizer }}
- shell:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0
- - uses: actions/setup-python@v2
- with:
- python-version: 3.9
- - name: Install System packages
- run: |
- sudo apt-get -y update
- # Needed for shell tests
- sudo apt-get install -y coreutils csh zsh tcsh fish dash bash
- # Needed for kcov
- sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev
- sudo apt-get -y install 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
- . .github/workflows/setup_git.sh
- - 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
- - uses: codecov/codecov-action@v1
- with:
- flags: shelltests,linux
-
- centos6:
- # Test for Python2.6 run on Centos 6
- runs-on: ubuntu-latest
- container: spack/github-actions:centos6
- steps:
- - name: Run unit tests
- env:
- HOME: /home/spack-test
- run: |
- whoami && echo $HOME && cd $HOME
- git clone https://github.com/spack/spack.git && cd spack
- git fetch origin ${{ github.ref }}:test-branch
- git checkout test-branch
- share/spack/qa/run-unit-tests
-
- clingo-cffi:
- # Test for the clingo based solver (using clingo-cffi)
- runs-on: ubuntu-latest
- container: spack/github-actions:clingo-cffi
- steps:
- - name: Run unit tests
- run: |
- whoami && echo PWD=$PWD && echo HOME=$HOME && echo SPACK_TEST_SOLVER=$SPACK_TEST_SOLVER
- python3 -c "import clingo; print(hasattr(clingo.Symbol, '_rep'), clingo.__version__)"
- git clone https://github.com/spack/spack.git && cd spack
- git fetch origin ${{ github.ref }}:test-branch
- git checkout test-branch
- . share/spack/setup-env.sh
- spack compiler find
- spack solve mpileaks%gcc
- coverage run $(which spack) unit-test -v
- coverage combine
- coverage xml
- - uses: codecov/codecov-action@v1
- with:
- flags: unittests,linux,clingo
diff --git a/.github/workflows/macos_unit_tests.yaml b/.github/workflows/macos_unit_tests.yaml
deleted file mode 100644
index 29caaa2e08..0000000000
--- a/.github/workflows/macos_unit_tests.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-name: macos tests
-
-on:
- push:
- branches:
- - develop
- - releases/**
- pull_request:
- branches:
- - develop
- - releases/**
-jobs:
- build:
- runs-on: macos-latest
- strategy:
- matrix:
- python-version: [3.8]
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0
- - uses: actions/setup-python@v2
- with:
- python-version: ${{ matrix.python-version }}
- - name: Install Python packages
- run: |
- pip install --upgrade pip six setuptools
- pip install --upgrade codecov coverage
- pip install --upgrade flake8 pep8-naming
- - name: Setup Homebrew packages
- run: |
- brew install dash fish gcc gnupg2 kcov
- - name: Run unit tests
- run: |
- git --version
- . .github/workflows/setup_git.sh
- . share/spack/setup-env.sh
- coverage run $(which spack) unit-test
- coverage combine
- coverage xml
- - uses: codecov/codecov-action@v1
- with:
- file: ./coverage.xml
- flags: unittests,macos
diff --git a/.github/workflows/style_and_docs.yaml b/.github/workflows/style_and_docs.yaml
deleted file mode 100644
index 5abedab784..0000000000
--- a/.github/workflows/style_and_docs.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-name: style and docs
-
-on:
- push:
- branches:
- - develop
- - releases/**
- pull_request:
- branches:
- - develop
- - releases/**
-jobs:
- validate:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-python@v2
- with:
- python-version: 3.9
- - name: Install Python Packages
- run: |
- pip install --upgrade pip
- pip install --upgrade vermin
- - name: Minimum Version (Spack's Core)
- run: vermin --backport argparse -t=2.6- -t=3.5- -v lib/spack/spack/ lib/spack/llnl/ bin/
- - name: Minimum Version (Repositories)
- run: vermin --backport argparse -t=2.6- -t=3.5- -v var/spack/repos
- flake8:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0
- - uses: actions/setup-python@v2
- with:
- python-version: 3.9
- - 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
- . .github/workflows/setup_git.sh
- - name: Run flake8 tests
- run: |
- share/spack/qa/run-flake8-tests
- documentation:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-python@v2
- with:
- python-version: 3.9
- - 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/unit_tests.yaml b/.github/workflows/unit_tests.yaml
new file mode 100644
index 0000000000..b6a3d58934
--- /dev/null
+++ b/.github/workflows/unit_tests.yaml
@@ -0,0 +1,367 @@
+name: linux tests
+
+on:
+ push:
+ branches:
+ - develop
+ - releases/**
+ pull_request:
+ branches:
+ - develop
+ - releases/**
+jobs:
+ # Validate that the code can be run on all the Python versions
+ # supported by Spack
+ validate:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install Python Packages
+ run: |
+ pip install --upgrade pip
+ pip install --upgrade vermin
+ - name: vermin (Spack's Core)
+ run: vermin --backport argparse --violations --backport typing -t=2.6- -t=3.5- -vvv lib/spack/spack/ lib/spack/llnl/ bin/
+ - name: vermin (Repositories)
+ run: vermin --backport argparse --violations --backport typing -t=2.6- -t=3.5- -vvv var/spack/repos
+ # Run style checks on the files that have been changed
+ style:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install Python packages
+ run: |
+ pip install --upgrade pip six setuptools types-six
+ - name: Setup git configuration
+ run: |
+ # Need this for the git tests to succeed.
+ git --version
+ . .github/workflows/setup_git.sh
+ - name: Run style tests
+ run: |
+ share/spack/qa/run-style-tests
+ # Build the documentation
+ documentation:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - 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
+
+ # Check which files have been updated by the PR
+ changes:
+ runs-on: ubuntu-latest
+ # Set job outputs to values from filter step
+ outputs:
+ core: ${{ steps.filter.outputs.core }}
+ packages: ${{ steps.filter.outputs.packages }}
+ with_coverage: ${{ steps.coverage.outputs.with_coverage }}
+ steps:
+ - uses: actions/checkout@v2
+ if: ${{ github.event_name == 'push' }}
+ with:
+ fetch-depth: 0
+ # For pull requests it's not necessary to checkout the code
+ - uses: dorny/paths-filter@v2
+ id: filter
+ with:
+ # See https://github.com/dorny/paths-filter/issues/56 for the syntax used below
+ filters: |
+ core:
+ - './!(var/**)/**'
+ packages:
+ - 'var/**'
+ # Some links for easier reference:
+ #
+ # "github" context: https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context
+ # job outputs: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idoutputs
+ # setting environment variables from earlier steps: https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable
+ #
+ - id: coverage
+ # Run the subsequent jobs with coverage if core has been modified,
+ # regardless of whether this is a pull request or a push to a branch
+ run: |
+ echo Core changes: ${{ steps.filter.outputs.core }}
+ echo Event name: ${{ github.event_name }}
+ if [ "${{ steps.filter.outputs.core }}" == "true" ]
+ then
+ echo "::set-output name=with_coverage::true"
+ else
+ echo "::set-output name=with_coverage::false"
+ fi
+
+ # Run unit tests with different configurations on linux
+ unittests:
+ needs: [ validate, style, documentation, changes ]
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]
+ concretizer: ['original', 'clingo']
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install System packages
+ run: |
+ sudo apt-get -y update
+ # Needed for unit tests
+ sudo apt-get -y install \
+ coreutils cvs gfortran graphviz gnupg2 mercurial ninja-build \
+ patchelf cmake bison libbison-dev kcov
+ - name: Install Python packages
+ run: |
+ pip install --upgrade pip six setuptools codecov coverage[toml]
+ # ensure style checks are not skipped in unit tests for python >= 3.6
+ # note that true/false (i.e., 1/0) are opposite in conditions in python and bash
+ if python -c 'import sys; sys.exit(not sys.version_info >= (3, 6))'; then
+ pip install --upgrade flake8 isort>=4.3.5 mypy>=0.900 black
+ fi
+ - name: Setup git configuration
+ run: |
+ # Need this for the git tests to succeed.
+ git --version
+ . .github/workflows/setup_git.sh
+ - name: Bootstrap clingo
+ if: ${{ matrix.concretizer == 'clingo' }}
+ env:
+ SPACK_PYTHON: python
+ run: |
+ . share/spack/setup-env.sh
+ spack bootstrap untrust spack-install
+ spack -v solve zlib
+ - name: Run unit tests (full suite with coverage)
+ if: ${{ needs.changes.outputs.with_coverage == 'true' }}
+ env:
+ SPACK_PYTHON: python
+ COVERAGE: true
+ SPACK_TEST_SOLVER: ${{ matrix.concretizer }}
+ run: |
+ share/spack/qa/run-unit-tests
+ coverage combine
+ coverage xml
+ - name: Run unit tests (reduced suite without coverage)
+ if: ${{ needs.changes.outputs.with_coverage == 'false' }}
+ env:
+ SPACK_PYTHON: python
+ ONLY_PACKAGES: true
+ SPACK_TEST_SOLVER: ${{ matrix.concretizer }}
+ run: |
+ share/spack/qa/run-unit-tests
+ - uses: codecov/codecov-action@v2.1.0
+ if: ${{ needs.changes.outputs.with_coverage == 'true' }}
+ with:
+ flags: unittests,linux,${{ matrix.concretizer }}
+ # Test shell integration
+ shell:
+ needs: [ validate, style, documentation, changes ]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install System packages
+ run: |
+ sudo apt-get -y update
+ # Needed for shell tests
+ sudo apt-get install -y coreutils kcov csh zsh tcsh fish dash bash
+ - name: Install Python packages
+ run: |
+ pip install --upgrade pip six setuptools codecov coverage[toml]
+ - name: Setup git configuration
+ run: |
+ # Need this for the git tests to succeed.
+ git --version
+ . .github/workflows/setup_git.sh
+ - name: Run shell tests (without coverage)
+ if: ${{ needs.changes.outputs.with_coverage == 'false' }}
+ run: |
+ share/spack/qa/run-shell-tests
+ - name: Run shell tests (with coverage)
+ if: ${{ needs.changes.outputs.with_coverage == 'true' }}
+ env:
+ COVERAGE: true
+ run: |
+ share/spack/qa/run-shell-tests
+ - uses: codecov/codecov-action@v2.1.0
+ if: ${{ needs.changes.outputs.with_coverage == 'true' }}
+ with:
+ flags: shelltests,linux
+ # Test for Python2.6 run on Centos 6
+ centos6:
+ needs: [ validate, style, documentation, changes ]
+ runs-on: ubuntu-latest
+ container: spack/github-actions:centos6
+ steps:
+ - name: Run unit tests (full test-suite)
+ # The CentOS 6 container doesn't run with coverage, but
+ # under the same conditions it runs the full test suite
+ if: ${{ needs.changes.outputs.with_coverage == 'true' }}
+ env:
+ HOME: /home/spack-test
+ SPACK_TEST_SOLVER: original
+ run: |
+ whoami && echo $HOME && cd $HOME
+ git clone https://github.com/spack/spack.git && cd spack
+ git fetch origin ${{ github.ref }}:test-branch
+ git checkout test-branch
+ bin/spack unit-test -x
+ - name: Run unit tests (only package tests)
+ if: ${{ needs.changes.outputs.with_coverage == 'false' }}
+ env:
+ HOME: /home/spack-test
+ ONLY_PACKAGES: true
+ SPACK_TEST_SOLVER: original
+ run: |
+ whoami && echo $HOME && cd $HOME
+ git clone https://github.com/spack/spack.git && cd spack
+ git fetch origin ${{ github.ref }}:test-branch
+ git checkout test-branch
+ bin/spack unit-test -x -m "not maybeslow" -k "package_sanity"
+
+ # Test RHEL8 UBI with platform Python. This job is run
+ # only on PRs modifying core Spack
+ rhel8-platform-python:
+ needs: [ validate, style, documentation, changes ]
+ runs-on: ubuntu-latest
+ if: ${{ needs.changes.outputs.with_coverage == 'true' }}
+ container: registry.access.redhat.com/ubi8/ubi
+ steps:
+ - name: Install dependencies
+ run: |
+ dnf install -y \
+ bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
+ make patch tcl unzip which xz
+ - uses: actions/checkout@v2
+ - name: Setup repo and non-root user
+ run: |
+ git --version
+ git fetch --unshallow
+ . .github/workflows/setup_git.sh
+ useradd spack-test
+ chown -R spack-test .
+ - name: Run unit tests
+ shell: runuser -u spack-test -- bash {0}
+ run: |
+ source share/spack/setup-env.sh
+ spack -d solve zlib
+ spack unit-test -k 'not cvs and not svn and not hg' -x --verbose
+ # Test for the clingo based solver (using clingo-cffi)
+ clingo-cffi:
+ needs: [ validate, style, documentation, changes ]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install System packages
+ run: |
+ sudo apt-get -y update
+ # Needed for unit tests
+ sudo apt-get -y install \
+ coreutils cvs gfortran graphviz gnupg2 mercurial ninja-build \
+ patchelf kcov
+ - name: Install Python packages
+ run: |
+ pip install --upgrade pip six setuptools codecov coverage[toml] clingo
+ - name: Setup git configuration
+ run: |
+ # Need this for the git tests to succeed.
+ git --version
+ . .github/workflows/setup_git.sh
+ - name: Run unit tests (full suite with coverage)
+ if: ${{ needs.changes.outputs.with_coverage == 'true' }}
+ env:
+ COVERAGE: true
+ SPACK_TEST_SOLVER: clingo
+ run: |
+ share/spack/qa/run-unit-tests
+ coverage combine
+ coverage xml
+ - name: Run unit tests (reduced suite without coverage)
+ if: ${{ needs.changes.outputs.with_coverage == 'false' }}
+ env:
+ ONLY_PACKAGES: true
+ SPACK_TEST_SOLVER: clingo
+ run: |
+ share/spack/qa/run-unit-tests
+ - uses: codecov/codecov-action@v2.1.0
+ if: ${{ needs.changes.outputs.with_coverage == 'true' }}
+ with:
+ flags: unittests,linux,clingo
+ # Run unit tests on MacOS
+ build:
+ needs: [ validate, style, documentation, changes ]
+ runs-on: macos-latest
+ strategy:
+ matrix:
+ python-version: [3.8]
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install Python packages
+ run: |
+ pip install --upgrade pip six setuptools
+ pip install --upgrade codecov coverage[toml]
+ - name: Setup Homebrew packages
+ run: |
+ brew install dash fish gcc gnupg2 kcov
+ - name: Run unit tests
+ env:
+ SPACK_TEST_SOLVER: clingo
+ run: |
+ git --version
+ . .github/workflows/setup_git.sh
+ . share/spack/setup-env.sh
+ $(which spack) bootstrap untrust spack-install
+ $(which spack) solve zlib
+ if [ "${{ needs.changes.outputs.with_coverage }}" == "true" ]
+ then
+ coverage run $(which spack) unit-test -x
+ coverage combine
+ coverage xml
+ # Delete the symlink going from ./lib/spack/docs/_spack_root back to
+ # the initial directory, since it causes ELOOP errors with codecov/actions@2
+ rm lib/spack/docs/_spack_root
+ else
+ echo "ONLY PACKAGE RECIPES CHANGED [skipping coverage]"
+ $(which spack) unit-test -x -m "not maybeslow" -k "package_sanity"
+ fi
+ - uses: codecov/codecov-action@v2.1.0
+ if: ${{ needs.changes.outputs.with_coverage == 'true' }}
+ with:
+ files: ./coverage.xml
+ flags: unittests,macos
diff --git a/.gitignore b/.gitignore
index e2f485ab92..c75b98089c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,40 +1,512 @@
-/db
+##########################
+# Spack-specific ignores #
+##########################
+
/var/spack/stage
/var/spack/cache
/var/spack/environments
/var/spack/repos/*/index.yaml
/var/spack/repos/*/lock
-__pycache__/
-*.pyc
/opt
-*~
-.DS_Store
-.idea
# Ignore everything in /etc/spack except /etc/spack/defaults
/etc/spack/*
!/etc/spack/defaults
-/etc/spackconfig
-/share/spack/dotkit
/share/spack/modules
/share/spack/lmod
-/TAGS
-*.swp
-/htmlcov
-.coverage
-\#*
-.#*
-.cache
-lib/spack/spack/test/.cache
-/bin/spackc
+# Debug logs
+spack-db.*
*.in.log
*.out.log
-*.orig
-# Eclipse files
-.project
+###########################
+# Python-specific ignores #
+###########################
+
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+#lib/
+#lib64/
+parts/
+sdist/
+#var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+!/lib/spack/env
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+########################
+# Vim-specific ignores #
+########################
+
+# Swap
+[._]*.s[a-v][a-z]
+!*.svg # comment out if you don't need vector files
+[._]*.sw[a-p]
+[._]s[a-rt-v][a-z]
+[._]ss[a-gi-z]
+[._]sw[a-p]
+
+# Session
+Session.vim
+Sessionx.vim
+
+# Temporary
+.netrwhist
+*~
+# Auto-generated tag files
+tags
+# Persistent undo
+[._]*.un~
+
+##########################
+# Emacs-specific ignores #
+##########################
+
+*~
+\#*\#
+/.emacs.desktop
+/.emacs.desktop.lock
+*.elc
+auto-save-list
+tramp
+.\#*
+
+# Org-mode
+.org-id-locations
+*_archive
+
+# flymake-mode
+*_flymake.*
+
+# eshell files
+/eshell/history
+/eshell/lastdir
+
+# elpa packages
+/elpa/
+
+# reftex files
+*.rel
+
+# AUCTeX auto folder
+/auto/
+
+# cask packages
+.cask/
+dist/
+
+# Flycheck
+flycheck_*.el
+
+# server auth directory
+/server/
+
+# projectiles files
+.projectile
+
+# directory configuration
+.dir-locals.el
+
+# network security
+/network-security.data
+
+############################
+# Eclipse-specific ignores #
+############################
+
+.metadata
+#bin/
+tmp/
+*.tmp
+*.bak
+*.swp
+*~.nib
+local.properties
+.settings/
+.loadpath
+.recommenders
+
+# External tool builders
+.externalToolBuilders/
+
+# Locally stored "Eclipse launch configurations"
+*.launch
+
+# PyDev specific (Python IDE for Eclipse)
+*.pydevproject
+
+# CDT-specific (C/C++ Development Tooling)
.cproject
-.pydevproject
-# VSCode files
-.vscode
-.devcontainer
+# CDT- autotools
+.autotools
+
+# Java annotation processor (APT)
+.factorypath
+
+# PDT-specific (PHP Development Tools)
+.buildpath
+
+# sbteclipse plugin
+.target
+
+# Tern plugin
+.tern-project
+
+# TeXlipse plugin
+.texlipse
+
+# STS (Spring Tool Suite)
+.springBeans
+
+# Code Recommenders
+.recommenders/
+
+# Annotation Processing
+.apt_generated/
+.apt_generated_test/
+
+# Scala IDE specific (Scala & Java development for Eclipse)
+.cache-main
+.scala_dependencies
+.worksheet
+
+# Uncomment this line if you wish to ignore the project description file.
+# Typically, this file would be tracked if it contains build/dependency configurations:
+#.project
+
+##################################
+# Visual Studio-specific ignores #
+##################################
+
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+*.code-workspace
+
+# Local History for Visual Studio Code
+.history/
+
+#################################
+# Sublime Text-specific ignores #
+#################################
+
+# Cache files for Sublime Text
+*.tmlanguage.cache
+*.tmPreferences.cache
+*.stTheme.cache
+
+# Workspace files are user-specific
+*.sublime-workspace
+
+# Project files should be checked into the repository, unless a significant
+# proportion of contributors will probably not be using Sublime Text
+# *.sublime-project
+
+# SFTP configuration file
+sftp-config.json
+sftp-config-alt*.json
+
+# Package control specific files
+Package Control.last-run
+Package Control.ca-list
+Package Control.ca-bundle
+Package Control.system-ca-bundle
+Package Control.cache/
+Package Control.ca-certs/
+Package Control.merged-ca-bundle
+Package Control.user-ca-bundle
+oscrypto-ca-bundle.crt
+bh_unicode_properties.cache
+
+# Sublime-github package stores a github token in this file
+# https://packagecontrol.io/packages/sublime-github
+GitHub.sublime-settings
+
+##############################
+# JetBrains-specific ignores #
+##############################
+
+# Ignore the entire folder since it may conatin more files than
+# just the ones listed below
+.idea/
+
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/artifacts
+# .idea/compiler.xml
+# .idea/jarRepositories.xml
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+##########################
+# macOS-specific ignores #
+##########################
+
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+##########################
+# Linux-specific ignores #
+##########################
+
+*~
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+
+############################
+# Windows-specific ignores #
+############################
+
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
diff --git a/.mailmap b/.mailmap
index 9940532a10..d9ca503d93 100644
--- a/.mailmap
+++ b/.mailmap
@@ -3,7 +3,8 @@ Adam Moody <moody20@llnl.gov> Adam T. Moody
Alfredo Gimenez <gimenez1@llnl.gov> Alfredo Gimenez <alfredo.gimenez@gmail.com>
Alfredo Gimenez <gimenez1@llnl.gov> Alfredo Adolfo Gimenez <alfredo.gimenez@gmail.com>
Andrew Williams <williamsa89@cardiff.ac.uk> Andrew Williams <andrew@alshain.org.uk>
-Axel Huebl <a.huebl@hzdr.de> Axel Huebl <axel.huebl@plasma.ninja>
+Axel Huebl <axelhuebl@lbl.gov> Axel Huebl <a.huebl@hzdr.de>
+Axel Huebl <axelhuebl@lbl.gov> Axel Huebl <axel.huebl@plasma.ninja>
Ben Boeckel <ben.boeckel@kitware.com> Ben Boeckel <mathstuf@gmail.com>
Ben Boeckel <ben.boeckel@kitware.com> Ben Boeckel <mathstuf@users.noreply.github.com>
Benedikt Hegner <hegner@cern.ch> Benedikt Hegner <benedikt.hegner@cern.ch>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cad069d2c3..d67ac073d6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,15 +1,3 @@
-# v0.16.3 (2021-09-21)
-
-* clang/llvm: fix version detection (#19978)
-* Fix use of quotes in Python build system (#22279)
-* Cray: fix extracting paths from module files (#23472)
-* Use AWS CloudFront for source mirror (#23978)
-* Ensure all roots of an installed environment are marked explicit in db (#24277)
-* Fix fetching for Python 3.8 and 3.9 (#24686)
-* locks: only open lockfiles once instead of for every lock held (#24794)
-* Remove the EOL centos:6 docker image
-
-
# v0.16.2 (2021-05-22)
* Major performance improvement for `spack load` and other commands. (#23661)
diff --git a/README.md b/README.md
index d4bf01005c..7e3fe88a43 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,11 @@
# <img src="https://cdn.rawgit.com/spack/spack/develop/share/spack/logo/spack-logo.svg" width="64" valign="middle" alt="Spack"/> Spack
-[![MacOS Tests](https://github.com/spack/spack/workflows/macos%20tests/badge.svg)](https://github.com/spack/spack/actions)
-[![Linux Tests](https://github.com/spack/spack/workflows/linux%20tests/badge.svg)](https://github.com/spack/spack/actions)
-[![Linux Builds](https://github.com/spack/spack/workflows/linux%20builds/badge.svg)](https://github.com/spack/spack/actions)
+[![Unit Tests](https://github.com/spack/spack/workflows/linux%20tests/badge.svg)](https://github.com/spack/spack/actions)
+[![Bootstrapping](https://github.com/spack/spack/actions/workflows/bootstrap.yml/badge.svg)](https://github.com/spack/spack/actions/workflows/bootstrap.yml)
[![macOS Builds (nightly)](https://github.com/spack/spack/workflows/macOS%20builds%20nightly/badge.svg?branch=develop)](https://github.com/spack/spack/actions?query=workflow%3A%22macOS+builds+nightly%22)
[![codecov](https://codecov.io/gh/spack/spack/branch/develop/graph/badge.svg)](https://codecov.io/gh/spack/spack)
[![Read the Docs](https://readthedocs.org/projects/spack/badge/?version=latest)](https://spack.readthedocs.io)
-[![Slack](https://spackpm.herokuapp.com/badge.svg)](https://spackpm.herokuapp.com)
+[![Slack](https://slack.spack.io/badge.svg)](https://slack.spack.io)
Spack is a multi-platform package manager that builds and installs
multiple versions and configurations of software. It works on Linux,
@@ -27,7 +26,7 @@ for examples and highlights.
To install spack and your first package, make sure you have Python.
Then:
- $ git clone https://github.com/spack/spack.git
+ $ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
$ cd spack/bin
$ ./spack install zlib
@@ -37,6 +36,8 @@ Documentation
[**Full documentation**](https://spack.readthedocs.io/) is available, or
run `spack help` or `spack help --all`.
+For a cheat sheet on Spack syntax, run `spack help --spec`.
+
Tutorial
----------------
@@ -59,7 +60,7 @@ packages to bugfixes, documentation, or even new core features.
Resources:
* **Slack workspace**: [spackpm.slack.com](https://spackpm.slack.com).
- To get an invitation, [**click here**](https://spackpm.herokuapp.com).
+ To get an invitation, visit [slack.spack.io](https://slack.spack.io).
* **Mailing list**: [groups.google.com/d/forum/spack](https://groups.google.com/d/forum/spack)
* **Twitter**: [@spackpm](https://twitter.com/spackpm). Be sure to
`@mention` us!
@@ -73,7 +74,7 @@ When you send your request, make ``develop`` the destination branch on the
Your PR must pass Spack's unit tests and documentation tests, and must be
[PEP 8](https://www.python.org/dev/peps/pep-0008/) compliant. We enforce
-these guidelines with our CI process. To run these tests locally, and for
+these guidelines with our CI process. To run these tests locally, and for
helpful tips on git, see our
[Contribution Guide](https://spack.readthedocs.io/en/latest/contribution_guide.html).
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000000..f6a5230087
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,24 @@
+# Security Policy
+
+## Supported Versions
+
+We provide security updates for the following releases.
+For more on Spack's release structure, see
+[`README.md`](https://github.com/spack/spack#releases).
+
+
+| Version | Supported |
+| ------- | ------------------ |
+| develop | :white_check_mark: |
+| 0.16.x | :white_check_mark: |
+
+## Reporting a Vulnerability
+
+To report a vulnerability or other security
+issue, email maintainers@spack.io.
+
+You can expect to hear back within two days.
+If your security issue is accepted, we will do
+our best to release a fix within a week. If
+fixing the issue will take longer than this,
+we will discuss timeline options with you.
diff --git a/bin/sbang b/bin/sbang
index c8f1c7c39c..806bc3a4af 100755
--- a/bin/sbang
+++ b/bin/sbang
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# sbang project developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
diff --git a/bin/spack b/bin/spack
index 7e2e7e06de..dffcbd2026 100755
--- a/bin/spack
+++ b/bin/spack
@@ -1,7 +1,7 @@
#!/bin/sh
# -*- python -*-
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,13 @@
# Following line is a shell no-op, and starts a multi-line Python comment.
# See https://stackoverflow.com/a/47886254
""":"
-# prefer python3, then python, then python2
-for cmd in python3 python python2; do
- command -v > /dev/null $cmd && exec $cmd $0 "$@"
+# prefer SPACK_PYTHON environment variable, python3, python, then python2
+SPACK_PREFERRED_PYTHONS="python3 python python2 /usr/libexec/platform-python"
+for cmd in "${SPACK_PYTHON:-}" ${SPACK_PREFERRED_PYTHONS}; do
+ if command -v > /dev/null "$cmd"; then
+ export SPACK_PYTHON="$(command -v "$cmd")"
+ exec "${SPACK_PYTHON}" "$0" "$@"
+ fi
done
echo "==> Error: spack could not find a python interpreter!" >&2
@@ -24,12 +28,18 @@ exit 1
from __future__ import print_function
import os
+import os.path
import sys
-if sys.version_info[:2] < (2, 6):
+min_python3 = (3, 5)
+
+if sys.version_info[:2] < (2, 6) or (
+ sys.version_info[:2] >= (3, 0) and sys.version_info[:2] < min_python3
+):
v_info = sys.version_info[:3]
- sys.exit("Spack requires Python 2.6 or higher."
- "This is Python %d.%d.%d." % v_info)
+ msg = "Spack requires Python 2.6, 2.7 or %d.%d or higher " % min_python3
+ msg += "You are running spack with Python %d.%d.%d." % v_info
+ sys.exit(msg)
# Find spack's location and its prefix.
spack_file = os.path.realpath(os.path.expanduser(__file__))
@@ -42,8 +52,10 @@ sys.path.insert(0, spack_lib_path)
# Add external libs
spack_external_libs = os.path.join(spack_lib_path, "external")
+if sys.version_info[:2] <= (2, 7):
+ sys.path.insert(0, os.path.join(spack_external_libs, "py2"))
if sys.version_info[:2] == (2, 6):
- sys.path.insert(0, os.path.join(spack_external_libs, 'py26'))
+ sys.path.insert(0, os.path.join(spack_external_libs, "py26"))
sys.path.insert(0, spack_external_libs)
@@ -53,11 +65,33 @@ sys.path.insert(0, spack_external_libs)
# Briefly: ruamel.yaml produces a .pth file when installed with pip that
# makes the site installed package the preferred one, even though sys.path
# is modified to point to another version of ruamel.yaml.
-if 'ruamel.yaml' in sys.modules:
- del sys.modules['ruamel.yaml']
+if "ruamel.yaml" in sys.modules:
+ del sys.modules["ruamel.yaml"]
+
+if "ruamel" in sys.modules:
+ del sys.modules["ruamel"]
+
+# The following code is here to avoid failures when updating
+# the develop version, due to spurious argparse.pyc files remaining
+# in the libs/spack/external directory, see:
+# https://github.com/spack/spack/pull/25376
+# TODO: Remove in v0.18.0 or later
+try:
+ import argparse
+except ImportError:
+ argparse_pyc = os.path.join(spack_external_libs, 'argparse.pyc')
+ if not os.path.exists(argparse_pyc):
+ raise
+ try:
+ os.remove(argparse_pyc)
+ import argparse # noqa
+ except Exception:
+ msg = ('The file\n\n\t{0}\n\nis corrupted and cannot be deleted by Spack. '
+ 'Either delete it manually or ask some administrator to '
+ 'delete it for you.')
+ print(msg.format(argparse_pyc))
+ sys.exit(1)
-if 'ruamel' in sys.modules:
- del sys.modules['ruamel']
import spack.main # noqa
diff --git a/bin/spack-python b/bin/spack-python
index 22141b46d6..923f7380ba 100755
--- a/bin/spack-python
+++ b/bin/spack-python
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/etc/spack/defaults/bootstrap.yaml b/etc/spack/defaults/bootstrap.yaml
new file mode 100644
index 0000000000..392c48b7bb
--- /dev/null
+++ b/etc/spack/defaults/bootstrap.yaml
@@ -0,0 +1,32 @@
+bootstrap:
+ # If set to false Spack will not bootstrap missing software,
+ # but will instead raise an error.
+ enable: true
+ # Root directory for bootstrapping work. The software bootstrapped
+ # by Spack is installed in a "store" subfolder of this root directory
+ root: ~/.spack/bootstrap
+ # Methods that can be used to bootstrap software. Each method may or
+ # may not be able to bootstrap all of the software that Spack needs,
+ # depending on its type.
+ sources:
+ - name: 'github-actions'
+ type: buildcache
+ description: |
+ Buildcache generated from a public workflow using Github Actions.
+ The sha256 checksum of binaries is checked before installation.
+ info:
+ url: https://mirror.spack.io/bootstrap/github-actions/v0.1
+ homepage: https://github.com/alalazo/spack-bootstrap-mirrors
+ releases: https://github.com/alalazo/spack-bootstrap-mirrors/releases
+ # This method is just Spack bootstrapping the software it needs from sources.
+ # It has been added here so that users can selectively disable bootstrapping
+ # from sources by "untrusting" it.
+ - name: spack-install
+ type: install
+ description: |
+ Specs built from sources by Spack. May take a long time.
+ trusted:
+ # By default we trust bootstrapping from sources and from binaries
+ # produced on Github via the workflow
+ github-actions: true
+ spack-install: true \ No newline at end of file
diff --git a/etc/spack/defaults/config.yaml b/etc/spack/defaults/config.yaml
index d1a7f35a6d..88a19d3222 100644
--- a/etc/spack/defaults/config.yaml
+++ b/etc/spack/defaults/config.yaml
@@ -33,13 +33,6 @@ config:
template_dirs:
- $spack/share/spack/templates
-
- # Locations where different types of modules should be installed.
- module_roots:
- tcl: $spack/share/spack/modules
- lmod: $spack/share/spack/lmod
-
-
# Temporary locations Spack can try to use for builds.
#
# Recommended options are given below.
@@ -107,7 +100,7 @@ config:
# If set to true, Spack will attempt to build any compiler on the spec
# that is not already available. If set to False, Spack will only use
# compilers already configured in compilers.yaml
- install_missing_compilers: False
+ install_missing_compilers: false
# If set to true, Spack will always check checksums after downloading
@@ -115,6 +108,11 @@ config:
checksum: true
+ # If set to true, Spack will fetch deprecated versions without warning.
+ # If false, Spack will raise an error when trying to install a deprecated version.
+ deprecated: false
+
+
# If set to true, `spack install` and friends will NOT clean
# potentially harmful variables from the build environment. Use wisely.
dirty: false
@@ -136,12 +134,18 @@ config:
# enabling locks.
locks: true
-
- # The maximum number of jobs to use when running `make` in parallel,
- # always limited by the number of cores available. For instance:
- # - If set to 16 on a 4 cores machine `spack install` will run `make -j4`
- # - If set to 16 on a 18 cores machine `spack install` will run `make -j16`
- # If not set, Spack will use all available cores up to 16.
+ # The default url fetch method to use.
+ # If set to 'curl', Spack will require curl on the user's system
+ # If set to 'urllib', Spack will use python built-in libs to fetch
+ url_fetch_method: urllib
+
+ # The maximum number of jobs to use for the build system (e.g. `make`), when
+ # the -j flag is not given on the command line. Defaults to 16 when not set.
+ # Note that the maximum number of jobs is limited by the number of cores
+ # available, taking thread affinity into account when supported. For instance:
+ # - With `build_jobs: 16` and 4 cores available `spack install` will run `make -j4`
+ # - With `build_jobs: 16` and 32 cores available `spack install` will run `make -j16`
+ # - With `build_jobs: 2` and 4 cores available `spack install -j6` will run `make -j6`
# build_jobs: 16
@@ -156,11 +160,10 @@ config:
# sufficiently for many specs.
#
# 'clingo': Uses a logic solver under the hood to solve DAGs with full
- # backtracking and optimization for user preferences.
+ # backtracking and optimization for user preferences. Spack will
+ # try to bootstrap the logic solver, if not already available.
#
- # 'clingo' currently requires the clingo ASP solver to be installed and
- # built with python bindings. 'original' is built in.
- concretizer: original
+ concretizer: clingo
# How long to wait to lock the Spack installation database. This lock is used
diff --git a/etc/spack/defaults/cray/modules.yaml b/etc/spack/defaults/cray/modules.yaml
new file mode 100644
index 0000000000..a86a4794f1
--- /dev/null
+++ b/etc/spack/defaults/cray/modules.yaml
@@ -0,0 +1,21 @@
+# -------------------------------------------------------------------------
+# This is the default configuration for Spack's module file generation.
+#
+# Settings here are versioned with Spack and are intended to provide
+# sensible defaults out of the box. Spack maintainers should edit this
+# file to keep it current.
+#
+# Users can override these settings by editing the following files.
+#
+# Per-spack-instance settings (overrides defaults):
+# $SPACK_ROOT/etc/spack/modules.yaml
+#
+# Per-user settings (overrides default and site settings):
+# ~/.spack/modules.yaml
+# -------------------------------------------------------------------------
+modules:
+ prefix_inspections:
+ lib:
+ - LD_LIBRARY_PATH
+ lib64:
+ - LD_LIBRARY_PATH
diff --git a/etc/spack/defaults/darwin/packages.yaml b/etc/spack/defaults/darwin/packages.yaml
index 948e90ea5a..cd3dca60a3 100644
--- a/etc/spack/defaults/darwin/packages.yaml
+++ b/etc/spack/defaults/darwin/packages.yaml
@@ -21,10 +21,10 @@ packages:
- gcc
- intel
providers:
- elf:
- - libelf
- unwind:
- - apple-libunwind
+ elf: [libelf]
+ fuse: [macfuse]
+ unwind: [apple-libunwind]
+ uuid: [apple-libuuid]
apple-libunwind:
buildable: false
externals:
@@ -32,3 +32,10 @@ packages:
# although the version number used here isn't critical
- spec: apple-libunwind@35.3
prefix: /usr
+ apple-libuuid:
+ buildable: false
+ externals:
+ # Apple bundles libuuid in libsystem_c version 1353.100.2,
+ # although the version number used here isn't critical
+ - spec: apple-libuuid@1353.100.2
+ prefix: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
diff --git a/etc/spack/defaults/modules.yaml b/etc/spack/defaults/modules.yaml
index 5ae1b50fda..27b7c45f66 100644
--- a/etc/spack/defaults/modules.yaml
+++ b/etc/spack/defaults/modules.yaml
@@ -14,8 +14,7 @@
# ~/.spack/modules.yaml
# -------------------------------------------------------------------------
modules:
- enable:
- - tcl
+ # Paths to check when creating modules for all module sets
prefix_inspections:
bin:
- PATH
@@ -25,16 +24,6 @@ modules:
- MANPATH
share/aclocal:
- ACLOCAL_PATH
- lib:
- - LIBRARY_PATH
- lib64:
- - LIBRARY_PATH
- include:
- - C_INCLUDE_PATH
- - CPLUS_INCLUDE_PATH
- # The INCLUDE env variable specifies paths to look for
- # .mod file for Intel Fortran compilers
- - INCLUDE
lib/pkgconfig:
- PKG_CONFIG_PATH
lib64/pkgconfig:
@@ -44,6 +33,20 @@ modules:
'':
- CMAKE_PREFIX_PATH
- lmod:
- hierarchy:
- - mpi
+ # These are configurations for the module set named "default"
+ default:
+ # These values are defaulted in the code. They are not defaulted here so
+ # that we can enable backwards compatibility with the old syntax more
+ # easily (old value is in the config yaml, config:module_roots)
+ # Where to install modules
+ # roots:
+ # tcl: $spack/share/spack/modules
+ # lmod: $spack/share/spack/lmod
+ # What type of modules to use
+ enable:
+ - tcl
+
+ # Default configurations if lmod is enabled
+ lmod:
+ hierarchy:
+ - mpi
diff --git a/etc/spack/defaults/packages.yaml b/etc/spack/defaults/packages.yaml
index 06aa41b2d8..aeed54fd08 100644
--- a/etc/spack/defaults/packages.yaml
+++ b/etc/spack/defaults/packages.yaml
@@ -17,38 +17,45 @@ packages:
all:
compiler: [gcc, intel, pgi, clang, xl, nag, fj, aocc]
providers:
- D: [ldc]
awk: [gawk]
blas: [openblas, amdblis]
+ D: [ldc]
daal: [intel-daal]
elf: [elfutils]
fftw-api: [fftw, amdfftw]
- gl: [mesa+opengl, mesa18+opengl, opengl]
- glx: [mesa+glx, mesa18+glx, opengl]
+ flame: [libflame, amdlibflame]
+ fuse: [libfuse]
+ gl: [mesa+opengl, mesa18, opengl]
glu: [mesa-glu, openglu]
+ glx: [mesa+glx, mesa18+glx, opengl]
golang: [gcc]
iconv: [libiconv]
ipp: [intel-ipp]
java: [openjdk, jdk, ibm-java]
jpeg: [libjpeg-turbo, libjpeg]
lapack: [openblas, amdlibflame]
+ lua-lang: [lua, lua-luajit]
mariadb-client: [mariadb-c-client, mariadb]
mkl: [intel-mkl]
mpe: [mpe2]
mpi: [openmpi, mpich]
mysql-client: [mysql, mariadb-c-client]
opencl: [pocl]
+ onedal: [intel-oneapi-dal]
osmesa: [mesa+osmesa, mesa18+osmesa]
+ pbs: [openpbs, torque]
pil: [py-pillow]
pkgconfig: [pkgconf, pkg-config]
rpc: [libtirpc]
scalapack: [netlib-scalapack, amdscalapack]
sycl: [hipsycl]
- szip: [libszip, libaec]
+ szip: [libaec, libszip]
tbb: [intel-tbb]
unwind: [libunwind]
+ uuid: [util-linux-uuid, libuuid]
+ xxd: [xxd-standalone, vim]
yacc: [bison, byacc]
- flame: [libflame, amdlibflame]
+ ziglang: [zig]
permissions:
read: world
write: user
diff --git a/lib/spack/docs/Makefile b/lib/spack/docs/Makefile
index 1a8c13e8fb..d86faa6ad4 100644
--- a/lib/spack/docs/Makefile
+++ b/lib/spack/docs/Makefile
@@ -2,7 +2,7 @@
#
# You can set these variables from the command line.
-SPHINXOPTS = -W
+SPHINXOPTS = -W --keep-going
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
diff --git a/lib/spack/docs/analyze.rst b/lib/spack/docs/analyze.rst
new file mode 100644
index 0000000000..38af77cd7f
--- /dev/null
+++ b/lib/spack/docs/analyze.rst
@@ -0,0 +1,162 @@
+.. Copyright 2013-2021 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)
+
+.. _analyze:
+
+=======
+Analyze
+=======
+
+
+The analyze command is a front-end to various tools that let us analyze
+package installations. Each analyzer is a module for a different kind
+of analysis that can be done on a package installation, including (but not
+limited to) binary, log, or text analysis. Thus, the analyze command group
+allows you to take an existing package install, choose an analyzer,
+and extract some output for the package using it.
+
+
+-----------------
+Analyzer Metadata
+-----------------
+
+For all analyzers, we write to an ``analyzers`` folder in ``~/.spack``, or the
+value that you specify in your spack config at ``config:analyzers_dir``.
+For example, here we see the results of running an analysis on zlib:
+
+.. code-block:: console
+
+ $ tree ~/.spack/analyzers/
+ └── linux-ubuntu20.04-skylake
+ └── gcc-9.3.0
+ └── zlib-1.2.11-sl7m27mzkbejtkrajigj3a3m37ygv4u2
+ ├── environment_variables
+ │   └── spack-analyzer-environment-variables.json
+ ├── install_files
+ │   └── spack-analyzer-install-files.json
+ └── libabigail
+ └── spack-analyzer-libabigail-libz.so.1.2.11.xml
+
+
+This means that you can always find analyzer output in this folder, and it
+is organized with the same logic as the package install it was run for.
+If you want to customize this top level folder, simply provide the ``--path``
+argument to ``spack analyze run``. The nested organization will be maintained
+within your custom root.
+
+-----------------
+Listing Analyzers
+-----------------
+
+If you aren't familiar with Spack's analyzers, you can quickly list those that
+are available:
+
+.. code-block:: console
+
+ $ spack analyze list-analyzers
+ install_files : install file listing read from install_manifest.json
+ environment_variables : environment variables parsed from spack-build-env.txt
+ config_args : config args loaded from spack-configure-args.txt
+ abigail : Application Binary Interface (ABI) features for objects
+
+
+In the above, the first three are fairly simple - parsing metadata files from
+a package install directory to save
+
+-------------------
+Analyzing a Package
+-------------------
+
+The analyze command, akin to install, will accept a package spec to perform
+an analysis for. The package must be installed. Let's walk through an example
+with zlib. We first ask to analyze it. However, since we have more than one
+install, we are asked to disambiguate:
+
+.. code-block:: console
+
+ $ spack analyze run zlib
+ ==> Error: zlib matches multiple packages.
+ Matching packages:
+ fz2bs56 zlib@1.2.11%gcc@7.5.0 arch=linux-ubuntu18.04-skylake
+ sl7m27m zlib@1.2.11%gcc@9.3.0 arch=linux-ubuntu20.04-skylake
+ Use a more specific spec.
+
+
+We can then specify the spec version that we want to analyze:
+
+.. code-block:: console
+
+ $ spack analyze run zlib/fz2bs56
+
+If you don't provide any specific analyzer names, by default all analyzers
+(shown in the ``list-analyzers`` subcommand list) will be run. If an analyzer does not
+have any result, it will be skipped. For example, here is a result running for
+zlib:
+
+.. code-block:: console
+
+ $ ls ~/.spack/analyzers/linux-ubuntu20.04-skylake/gcc-9.3.0/zlib-1.2.11-sl7m27mzkbejtkrajigj3a3m37ygv4u2/
+ spack-analyzer-environment-variables.json
+ spack-analyzer-install-files.json
+ spack-analyzer-libabigail-libz.so.1.2.11.xml
+
+If you want to run a specific analyzer, ask for it with `--analyzer`. Here we run
+spack analyze on libabigail (already installed) _using_ libabigail1
+
+.. code-block:: console
+
+ $ spack analyze run --analyzer abigail libabigail
+
+
+.. _analyze_monitoring:
+
+----------------------
+Monitoring An Analysis
+----------------------
+
+For any kind of analysis, you can
+use a `spack monitor <https://github.com/spack/spack-monitor>`_ "Spackmon"
+as a server to upload the same run metadata to. You can
+follow the instructions in the `spack monitor documentation <https://spack-monitor.readthedocs.org>`_
+to first create a server along with a username and token for yourself.
+You can then use this guide to interact with the server.
+
+You should first export our spack monitor token and username to the environment:
+
+.. code-block:: console
+
+ $ export SPACKMON_TOKEN=50445263afd8f67e59bd79bff597836ee6c05438
+ $ export SPACKMON_USER=spacky
+
+
+By default, the host for your server is expected to be at ``http://127.0.0.1``
+with a prefix of ``ms1``, and if this is the case, you can simply add the
+``--monitor`` flag to the install command:
+
+.. code-block:: console
+
+ $ spack analyze run --monitor wget
+
+If you need to customize the host or the prefix, you can do that as well:
+
+.. code-block:: console
+
+ $ spack analyze run --monitor --monitor-prefix monitor --monitor-host https://monitor-service.io wget
+
+If your server doesn't have authentication, you can skip it:
+
+.. code-block:: console
+
+ $ spack analyze run --monitor --monitor-disable-auth wget
+
+Regardless of your choice, when you run analyze on an installed package (whether
+it was installed with ``--monitor`` or not, you'll see the results generating as they did
+before, and a message that the monitor server was pinged:
+
+.. code-block:: console
+
+ $ spack analyze --monitor wget
+ ...
+ ==> Sending result for wget bin/wget to monitor.
diff --git a/lib/spack/docs/basic_usage.rst b/lib/spack/docs/basic_usage.rst
index f7def9d439..38c4f42571 100644
--- a/lib/spack/docs/basic_usage.rst
+++ b/lib/spack/docs/basic_usage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -27,12 +27,18 @@ It is recommended that the following be put in your ``.bashrc`` file:
If you do not see colorized output when using ``less -R`` it is because color
is being disabled in the piped output. In this case, tell spack to force
-colorized output.
+colorized output with a flag
.. code-block:: console
$ spack --color always | less -R
+or an environment variable
+
+.. code-block:: console
+
+ $ SPACK_COLOR=always spack | less -R
+
--------------------------
Listing available packages
--------------------------
@@ -133,8 +139,7 @@ dependencies first. It then fetches the ``mpileaks`` tarball, expands
it, verifies that it was downloaded without errors, builds it, and
installs it in its own directory under ``$SPACK_ROOT/opt``. You'll see
a number of messages from Spack, a lot of build output, and a message
-that the package is installed. Add one or more debug options (``-d``)
-to get increasingly detailed output.
+that the package is installed.
.. code-block:: console
@@ -151,8 +156,8 @@ to get increasingly detailed output.
The last line, with the ``[+]``, indicates where the package is
installed.
-Add the debug option -- ``spack install -d mpileaks`` -- to get additional
-output.
+Add the Spack debug option (one or more times) -- ``spack -d install
+mpileaks`` -- to get additional (and even more verbose) output.
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Building a specific version
@@ -690,6 +695,136 @@ structured the way you want:
}
+^^^^^^^^^^^^^^
+``spack diff``
+^^^^^^^^^^^^^^
+
+It's often the case that you have two versions of a spec that you need to
+disambiguate. Let's say that we've installed two variants of zlib, one with
+and one without the optimize variant:
+
+.. code-block:: console
+
+ $ spack install zlib
+ $ spack install zlib -optimize
+
+When we do ``spack find`` we see the two versions.
+
+.. code-block:: console
+
+ $ spack find zlib
+ ==> 2 installed packages
+ -- linux-ubuntu20.04-skylake / gcc@9.3.0 ------------------------
+ zlib@1.2.11 zlib@1.2.11
+
+
+Let's now say that we want to uninstall zlib. We run the command, and hit a problem
+real quickly since we have two!
+
+.. code-block:: console
+
+ $ spack uninstall zlib
+ ==> Error: zlib matches multiple packages:
+
+ -- linux-ubuntu20.04-skylake / gcc@9.3.0 ------------------------
+ efzjziy zlib@1.2.11 sl7m27m zlib@1.2.11
+
+ ==> Error: You can either:
+ a) use a more specific spec, or
+ b) specify the spec by its hash (e.g. `spack uninstall /hash`), or
+ c) use `spack uninstall --all` to uninstall ALL matching specs.
+
+Oh no! We can see from the above that we have two different versions of zlib installed,
+and the only difference between the two is the hash. This is a good use case for
+``spack diff``, which can easily show us the "diff" or set difference
+between properties for two packages. Let's try it out.
+Since the only difference we see in the ``spack find`` view is the hash, let's use
+``spack diff`` to look for more detail. We will provide the two hashes:
+
+.. code-block:: console
+
+ $ spack diff /efzjziy /sl7m27m
+ ==> Warning: This interface is subject to change.
+
+ --- zlib@1.2.11efzjziyc3dmb5h5u5azsthgbgog5mj7g
+ +++ zlib@1.2.11sl7m27mzkbejtkrajigj3a3m37ygv4u2
+ @@ variant_value @@
+ - zlib optimize False
+ + zlib optimize True
+
+
+The output is colored, and written in the style of a git diff. This means that you
+can copy and paste it into a GitHub markdown as a code block with language "diff"
+and it will render nicely! Here is an example:
+
+.. code-block:: md
+
+ ```diff
+ --- zlib@1.2.11/efzjziyc3dmb5h5u5azsthgbgog5mj7g
+ +++ zlib@1.2.11/sl7m27mzkbejtkrajigj3a3m37ygv4u2
+ @@ variant_value @@
+ - zlib optimize False
+ + zlib optimize True
+ ```
+
+Awesome! Now let's read the diff. It tells us that our first zlib was built with ``~optimize``
+(``False``) and the second was built with ``+optimize`` (``True``). You can't see it in the docs
+here, but the output above is also colored based on the content being an addition (+) or
+subtraction (-).
+
+This is a small example, but you will be able to see differences for any attributes on the
+installation spec. Running ``spack diff A B`` means we'll see which spec attributes are on
+``B`` but not on ``A`` (green) and which are on ``A`` but not on ``B`` (red). Here is another
+example with an additional difference type, ``version``:
+
+.. code-block:: console
+
+ $ spack diff python@2.7.8 python@3.8.11
+ ==> Warning: This interface is subject to change.
+
+ --- python@2.7.8/tsxdi6gl4lihp25qrm4d6nys3nypufbf
+ +++ python@3.8.11/yjtseru4nbpllbaxb46q7wfkyxbuvzxx
+ @@ variant_value @@
+ - python patches a8c52415a8b03c0e5f28b5d52ae498f7a7e602007db2b9554df28cd5685839b8
+ + python patches 0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87
+ @@ version @@
+ - openssl 1.0.2u
+ + openssl 1.1.1k
+ - python 2.7.8
+ + python 3.8.11
+
+Let's say that we were only interested in one kind of attribute above, ``version``.
+We can ask the command to only output this attribute. To do this, you'd add
+the ``--attribute`` for attribute parameter, which defaults to all. Here is how you
+would filter to show just versions:
+
+.. code-block:: console
+
+ $ spack diff --attribute version python@2.7.8 python@3.8.11
+ ==> Warning: This interface is subject to change.
+
+ --- python@2.7.8/tsxdi6gl4lihp25qrm4d6nys3nypufbf
+ +++ python@3.8.11/yjtseru4nbpllbaxb46q7wfkyxbuvzxx
+ @@ version @@
+ - openssl 1.0.2u
+ + openssl 1.1.1k
+ - python 2.7.8
+ + python 3.8.11
+
+And you can add as many attributes as you'd like with multiple `--attribute` arguments
+(for lots of attributes, you can use ``-a`` for short). Finally, if you want to view the
+data as json (and possibly pipe into an output file) just add ``--json``:
+
+
+.. code-block:: console
+
+ $ spack diff --json python@2.7.8 python@3.8.11
+
+
+This data will be much longer because along with the differences for ``A`` vs. ``B`` and
+``B`` vs. ``A``, the JSON output also showsthe intersection.
+
+
------------------------
Using installed packages
------------------------
@@ -964,7 +1099,7 @@ Variants are named options associated with a particular package. They are
optional, as each package must provide default values for each variant it
makes available. Variants can be specified using
a flexible parameter syntax ``name=<value>``. For example,
-``spack install libelf debug=True`` will install libelf built with debug
+``spack install mercury debug=True`` will install mercury built with debug
flags. The names of particular variants available for a package depend on
what was provided by the package author. ``spack info <package>`` will
provide information on what build variants are available.
@@ -972,11 +1107,11 @@ provide information on what build variants are available.
For compatibility with earlier versions, variants which happen to be
boolean in nature can be specified by a syntax that represents turning
options on and off. For example, in the previous spec we could have
-supplied ``libelf +debug`` with the same effect of enabling the debug
+supplied ``mercury +debug`` with the same effect of enabling the debug
compile time option for the libelf package.
Depending on the package a variant may have any default value. For
-``libelf`` here, ``debug`` is ``False`` by default, and we turned it on
+``mercury`` here, ``debug`` is ``False`` by default, and we turned it on
with ``debug=True`` or ``+debug``. If a variant is ``True`` by default
you can turn it off by either adding ``-name`` or ``~name`` to the spec.
@@ -1725,6 +1860,39 @@ This issue typically manifests with the error below:
A nicer error message is TBD in future versions of Spack.
+---------------
+Troubleshooting
+---------------
+
+The ``spack audit`` command:
+
+.. command-output:: spack audit -h
+
+can be used to detect a number of configuration issues. This command detects
+configuration settings which might not be strictly wrong but are not likely
+to be useful outside of special cases.
+
+It can also be used to detect dependency issues with packages - for example
+cases where a package constrains a dependency with a variant that doesn't
+exist (in this case Spack could report the problem ahead of time but
+automatically performing the check would slow down most runs of Spack).
+
+A detailed list of the checks currently implemented for each subcommand can be
+printed with:
+
+.. command-output:: spack -v audit list
+
+Depending on the use case, users might run the appropriate subcommands to obtain
+diagnostics. Issues, if found, are reported to stdout:
+
+.. code-block:: console
+
+ % spack audit packages lammps
+ PKG-DIRECTIVES: 1 issue found
+ 1. lammps: wrong variant in "conflicts" directive
+ the variant 'adios' does not exist
+ in /home/spack/spack/var/spack/repos/builtin/packages/lammps/package.py
+
------------
Getting Help
diff --git a/lib/spack/docs/binary_caches.rst b/lib/spack/docs/binary_caches.rst
index 6e8c91c943..095023b3a9 100644
--- a/lib/spack/docs/binary_caches.rst
+++ b/lib/spack/docs/binary_caches.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -31,9 +31,25 @@ Build caches are created via:
.. code-block:: console
- $ spack buildcache create spec
+ $ spack buildcache create <spec>
+If you wanted to create a build cache in a local directory, you would provide
+the ``-d`` argument to target that directory, again also specifying the spec.
+Here is an example creating a local directory, "spack-cache" and creating
+build cache files for the "ninja" spec:
+
+.. code-block:: console
+
+ $ mkdir -p ./spack-cache
+ $ spack buildcache create -d ./spack-cache ninja
+ ==> Buildcache files will be output to file:///home/spackuser/spack/spack-cache/build_cache
+ gpgconf: socketdir is '/run/user/1000/gnupg'
+ gpg: using "E6DF6A8BD43208E4D6F392F23777740B7DBD643D" as default secret key for signing
+
+Note that the targeted spec must already be installed. Once you have a build cache,
+you can add it as a mirror, discussed next.
+
---------------------------------------
Finding or installing build cache files
---------------------------------------
@@ -43,19 +59,98 @@ with:
.. code-block:: console
- $ spack mirror add <name> <url>
+ $ spack mirror add <name> <url>
+
+
+Note that the url can be a web url _or_ a local filesystem location. In the previous
+example, you might add the directory "spack-cache" and call it ``mymirror``:
-Build caches are found via:
.. code-block:: console
- $ spack buildcache list
+ $ spack mirror add mymirror ./spack-cache
+
-Build caches are installed via:
+You can see that the mirror is added with ``spack mirror list`` as follows:
.. code-block:: console
- $ spack buildcache install
+
+ $ spack mirror list
+ mymirror file:///home/spackuser/spack/spack-cache
+ spack-public https://spack-llnl-mirror.s3-us-west-2.amazonaws.com/
+
+
+At this point, you've create a buildcache, but spack hasn't indexed it, so if
+you run ``spack buildcache list`` you won't see any results. You need to index
+this new build cache as follows:
+
+.. code-block:: console
+
+ $ spack buildcache update-index -d spack-cache/
+
+Now you can use list:
+
+.. code-block:: console
+
+ $ spack buildcache list
+ ==> 1 cached build.
+ -- linux-ubuntu20.04-skylake / gcc@9.3.0 ------------------------
+ ninja@1.10.2
+
+
+Great! So now let's say you have a different spack installation, or perhaps just
+a different environment for the same one, and you want to install a package from
+that build cache. Let's first uninstall the actual library "ninja" to see if we can
+re-install it from the cache.
+
+.. code-block:: console
+
+ $ spack uninstall ninja
+
+
+And now reinstall from the buildcache
+
+.. code-block:: console
+
+ $ spack buildcache install ninja
+ ==> buildcache spec(s) matching ninja
+ ==> Fetching file:///home/spackuser/spack/spack-cache/build_cache/linux-ubuntu20.04-skylake/gcc-9.3.0/ninja-1.10.2/linux-ubuntu20.04-skylake-gcc-9.3.0-ninja-1.10.2-i4e5luour7jxdpc3bkiykd4imke3mkym.spack
+ ####################################################################################################################################### 100.0%
+ ==> Installing buildcache for spec ninja@1.10.2%gcc@9.3.0 arch=linux-ubuntu20.04-skylake
+ gpgconf: socketdir is '/run/user/1000/gnupg'
+ gpg: Signature made Tue 23 Mar 2021 10:16:29 PM MDT
+ gpg: using RSA key E6DF6A8BD43208E4D6F392F23777740B7DBD643D
+ gpg: Good signature from "spackuser (GPG created for Spack) <spackuser@noreply.users.github.com>" [ultimate]
+
+
+It worked! You've just completed a full example of creating a build cache with
+a spec of interest, adding it as a mirror, updating it's index, listing the contents,
+and finally, installing from it.
+
+
+Note that the above command is intended to install a particular package to a
+build cache you have created, and not to install a package from a build cache.
+For the latter, once a mirror is added, by default when you do ``spack install`` the ``--use-cache``
+flag is set, and you will install a package from a build cache if it is available.
+If you want to always use the cache, you can do:
+
+.. code-block:: console
+
+ $ spack install --cache-only <package>
+
+For example, to combine all of the commands above to add the E4S build cache
+and then install from it exclusively, you would do:
+
+.. code-block:: console
+
+ $ spack mirror add E4S https://cache.e4s.io
+ $ spack buildcache keys --install --trust
+ $ spack install --cache-only <package>
+
+We use ``--install`` and ``--trust`` to say that we are installing keys to our
+keyring, and trusting all downloaded keys.
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
List of popular build caches
diff --git a/lib/spack/docs/build_settings.rst b/lib/spack/docs/build_settings.rst
index 3e7a21c3e8..a0d4445d3f 100644
--- a/lib/spack/docs/build_settings.rst
+++ b/lib/spack/docs/build_settings.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/build_systems.rst b/lib/spack/docs/build_systems.rst
index 84c608077f..0411ce75bc 100644
--- a/lib/spack/docs/build_systems.rst
+++ b/lib/spack/docs/build_systems.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -59,8 +59,11 @@ on these ideas for each distinct build system that Spack supports:
build_systems/bundlepackage
build_systems/cudapackage
+ build_systems/inteloneapipackage
build_systems/intelpackage
+ build_systems/rocmpackage
build_systems/custompackage
+ build_systems/multiplepackage
For reference, the :py:mod:`Build System API docs <spack.build_systems>`
provide a list of build systems and methods/attributes that can be
diff --git a/lib/spack/docs/build_systems/autotoolspackage.rst b/lib/spack/docs/build_systems/autotoolspackage.rst
index a4c15e5155..558c56da0f 100644
--- a/lib/spack/docs/build_systems/autotoolspackage.rst
+++ b/lib/spack/docs/build_systems/autotoolspackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -155,7 +155,7 @@ version, this can be done like so:
@property
def force_autoreconf(self):
- return self.version == Version('1.2.3'):
+ return self.version == Version('1.2.3')
^^^^^^^^^^^^^^^^^^^^^^^
Finding configure flags
@@ -324,8 +324,29 @@ options:
--with-libfabric=</path/to/libfabric>
+"""""""""""""""""""""""
+The ``variant`` keyword
+"""""""""""""""""""""""
+
+When Spack variants and configure flags do not correspond one-to-one, the
+``variant`` keyword can be passed to ``with_or_without`` and
+``enable_or_disable``. For example:
+
+.. code-block:: python
+
+ variant('debug_tools', default=False)
+ config_args += self.enable_or_disable('debug-tools', variant='debug_tools')
+
+Or when one variant controls multiple flags:
+
+.. code-block:: python
+
+ variant('debug_tools', default=False)
+ config_args += self.with_or_without('memchecker', variant='debug_tools')
+ config_args += self.with_or_without('profiler', variant='debug_tools')
+
""""""""""""""""""""
-activation overrides
+Activation overrides
""""""""""""""""""""
Finally, the behavior of either ``with_or_without`` or
diff --git a/lib/spack/docs/build_systems/bundlepackage.rst b/lib/spack/docs/build_systems/bundlepackage.rst
index e22e4b26be..d6429c2519 100644
--- a/lib/spack/docs/build_systems/bundlepackage.rst
+++ b/lib/spack/docs/build_systems/bundlepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/build_systems/cmakepackage.rst b/lib/spack/docs/build_systems/cmakepackage.rst
index 76e89c80b1..3c3c96f92c 100644
--- a/lib/spack/docs/build_systems/cmakepackage.rst
+++ b/lib/spack/docs/build_systems/cmakepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -130,8 +130,8 @@ Adding flags to cmake
To add additional flags to the ``cmake`` call, simply override the
``cmake_args`` function. The following example defines values for the flags
``WHATEVER``, ``ENABLE_BROKEN_FEATURE``, ``DETECT_HDF5``, and ``THREADS`` with
-and without the :py:meth:`~.CMakePackage.define` and
-:py:meth:`~.CMakePackage.define_from_variant` helper functions:
+and without the :meth:`~spack.build_systems.cmake.CMakePackage.define` and
+:meth:`~spack.build_systems.cmake.CMakePackage.define_from_variant` helper functions:
.. code-block:: python
diff --git a/lib/spack/docs/build_systems/cudapackage.rst b/lib/spack/docs/build_systems/cudapackage.rst
index 15150599d3..119d296ced 100644
--- a/lib/spack/docs/build_systems/cudapackage.rst
+++ b/lib/spack/docs/build_systems/cudapackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -9,35 +9,120 @@
CudaPackage
-----------
-Different from other packages, ``CudaPackage`` does not represent a build
-system. Instead its goal is to simplify and unify usage of ``CUDA`` in other
-packages.
+Different from other packages, ``CudaPackage`` does not represent a build system.
+Instead its goal is to simplify and unify usage of ``CUDA`` in other packages by providing a `mixin-class <https://en.wikipedia.org/wiki/Mixin>`_.
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Provided variants and dependencies
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+You can find source for the package at
+`<https://github.com/spack/spack/blob/develop/lib/spack/spack/build_systems/cuda.py>`__.
-``CudaPackage`` provides ``cuda`` variant (default to ``off``) to enable/disable
-``CUDA``, and ``cuda_arch`` variant to optionally specify the architecture.
-It also declares dependencies on the ``CUDA`` package ``depends_on('cuda@...')``
-based on the architecture as well as specifies conflicts for certain compiler versions.
+^^^^^^^^
+Variants
+^^^^^^^^
+
+This package provides the following variants:
+
+* **cuda**
+
+ This variant is used to enable/disable building with ``CUDA``. The default
+ is disabled (or ``False``).
+
+* **cuda_arch**
+
+ This variant supports the optional specification of the architecture.
+ Valid values are maintained in the ``cuda_arch_values`` property and
+ are the numeric character equivalent of the compute capability version
+ (e.g., '10' for version 1.0). Each provided value affects associated
+ ``CUDA`` dependencies and compiler conflicts.
+
+ GPUs and their compute capability versions are listed at
+ https://developer.nvidia.com/cuda-gpus .
+
+^^^^^^^^^
+Conflicts
+^^^^^^^^^
+
+Conflicts are used to prevent builds with known bugs or issues. While
+base ``CUDA`` conflicts have been included with this package, you may
+want to add more for your software.
+
+For example, if your package requires ``cuda_arch`` to be specified when
+``cuda`` is enabled, you can add the following conflict to your package
+to terminate such build attempts with a suitable message:
+
+.. code-block:: python
+
+ conflicts('cuda_arch=none', when='+cuda',
+ msg='CUDA architecture is required')
+
+Similarly, if your software does not support all versions of the property,
+you could add ``conflicts`` to your package for those versions. For example,
+suppose your software does not work with CUDA compute capability versions
+prior to SM 5.0 (``50``). You can add the following code to display a
+custom message should a user attempt such a build:
+
+.. code-block:: python
+
+ unsupported_cuda_archs = [
+ '10', '11', '12', '13',
+ '20', '21',
+ '30', '32', '35', '37'
+ ]
+ for value in unsupported_cuda_archs:
+ conflicts('cuda_arch={0}'.format(value), when='+cuda',
+ msg='CUDA architecture {0} is not supported'.format(value))
+
+^^^^^^^
+Methods
+^^^^^^^
+
+This package provides one custom helper method, which is used to build
+standard CUDA compiler flags.
+
+**cuda_flags**
+
+ This built-in static method returns a list of command line flags
+ for the chosen ``cuda_arch`` value(s). The flags are intended to
+ be passed to the CUDA compiler driver (i.e., ``nvcc``).
+
+ This method must be explicitly called when you are creating the
+ arguments for your build in order to use the values.
^^^^^
Usage
^^^^^
-In order to use it, just add another base class to your package, for example:
+This helper package can be added to your package by adding it as a base
+class of your package. For example, you can add it to your
+:ref:`CMakePackage <cmakepackage>`-based package as follows:
.. code-block:: python
+ :emphasize-lines: 1,7-16
- class MyPackage(CMakePackage, CudaPackage):
+ class MyCudaPackage(CMakePackage, CudaPackage):
...
def cmake_args(self):
spec = self.spec
+ args = []
+ ...
if '+cuda' in spec:
- options.append('-DWITH_CUDA=ON')
- cuda_arch = spec.variants['cuda_arch'].value
+ # Set up the cuda macros needed by the build
+ args.append('-DWITH_CUDA=ON')
+ cuda_arch_list = spec.variants['cuda_arch'].value
+ cuda_arch = cuda_arch_list[0]
if cuda_arch != 'none':
- options.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0]))
+ args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch))
else:
- options.append('-DWITH_CUDA=OFF')
+ # Ensure build with cuda is disabled
+ args.append('-DWITH_CUDA=OFF')
+ ...
+ return args
+
+assuming only the ``WITH_CUDA`` and ``CUDA_FLAGS`` flags are required.
+You will need to customize options as needed for your build.
+
+This example also illustrates how to check for the ``cuda`` variant using
+``self.spec`` and how to retrieve the ``cuda_arch`` variant's value, which
+is a list, using ``self.spec.variants['cuda_arch'].value``.
+
+With over 70 packages using ``CudaPackage`` as of January 2021 there are
+lots of examples to choose from to get more ideas for using this package.
diff --git a/lib/spack/docs/build_systems/custompackage.rst b/lib/spack/docs/build_systems/custompackage.rst
index 8a20dada92..4cb506acd7 100644
--- a/lib/spack/docs/build_systems/custompackage.rst
+++ b/lib/spack/docs/build_systems/custompackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -9,7 +9,7 @@
Custom Build Systems
--------------------
-While the build systems listed above should meet your needs for the
+While the built-in build systems should meet your needs for the
vast majority of packages, some packages provide custom build scripts.
This guide is intended for the following use cases:
@@ -31,7 +31,7 @@ installation. Both of these packages require custom build systems.
Base class
^^^^^^^^^^
-If your package does not belong to any of the aforementioned build
+If your package does not belong to any of the built-in build
systems that Spack already supports, you should inherit from the
``Package`` base class. ``Package`` is a simple base class with a
single phase: ``install``. If your package is simple, you may be able
@@ -168,7 +168,8 @@ if and only if this flag is set, we would use the following line:
Testing
^^^^^^^
-Let's put everything together and add unit tests to our package.
+Let's put everything together and add unit tests to be optionally run
+during the installation of our package.
In the ``perl`` package, we can see:
.. code-block:: python
@@ -182,12 +183,6 @@ As you can guess, this runs ``make test`` *after* building the package,
if and only if testing is requested. Again, this is not specific to
custom build systems, it can be added to existing build systems as well.
-Ideally, every package in Spack will have some sort of test to ensure
-that it was built correctly. It is up to the package authors to make
-sure this happens. If you are adding a package for some software and
-the developers list commands to test the installation, please add these
-tests to your ``package.py``.
-
.. warning::
The order of decorators matters. The following ordering:
@@ -207,3 +202,12 @@ tests to your ``package.py``.
the tests will always be run regardless of whether or not
``--test=root`` is requested. See https://github.com/spack/spack/issues/3833
for more information
+
+Ideally, every package in Spack will have some sort of test to ensure
+that it was built correctly. It is up to the package authors to make
+sure this happens. If you are adding a package for some software and
+the developers list commands to test the installation, please add these
+tests to your ``package.py``.
+
+For more information on other forms of package testing, refer to
+:ref:`Checking an installation <checking_an_installation>`.
diff --git a/lib/spack/docs/build_systems/inteloneapipackage.rst b/lib/spack/docs/build_systems/inteloneapipackage.rst
new file mode 100644
index 0000000000..c99a790666
--- /dev/null
+++ b/lib/spack/docs/build_systems/inteloneapipackage.rst
@@ -0,0 +1,155 @@
+.. Copyright 2013-2021 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)
+
+.. _inteloneapipackage:
+
+
+====================
+ IntelOneapiPackage
+====================
+
+
+.. contents::
+
+
+oneAPI packages in Spack
+========================
+
+Spack can install and use the Intel oneAPI products. You may either
+use spack to install the oneAPI tools or use the `Intel
+installers`_. After installation, you may use the tools directly, or
+use Spack to build packages with the tools.
+
+The Spack Python class ``IntelOneapiPackage`` is a base class that is
+used by ``IntelOneapiCompilers``, ``IntelOneapiMkl``,
+``IntelOneapiTbb`` and other classes to implement the oneAPI
+packages. See the :ref:`package-list` for the full list of available
+oneAPI packages or use::
+
+ spack list -d oneAPI
+
+For more information on a specific package, do::
+
+ spack info <package-name>
+
+Intel no longer releases new versions of Parallel Studio, which can be
+used in Spack via the :ref:`intelpackage`. All of its components can
+now be found in oneAPI.
+
+Examples
+========
+
+Building a Package With icx
+---------------------------
+
+In this example, we build patchelf with ``icc`` and ``icx``. The
+compilers are installed with spack.
+
+Install the oneAPI compilers::
+
+ spack install intel-oneapi-compilers
+
+Add the compilers to your ``compilers.yaml`` so spack can use them::
+
+ spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin/intel64
+ spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin
+
+Verify that the compilers are available::
+
+ spack compiler list
+
+The ``intel-oneapi-compilers`` package includes 2 families of
+compilers:
+
+* ``intel``: ``icc``, ``icpc``, ``ifort``. Intel's *classic*
+ compilers.
+* ``oneapi``: ``icx``, ``icpx``, ``ifx``. Intel's new generation of
+ compilers based on LLVM.
+
+To build the ``patchelf`` Spack package with ``icc``, do::
+
+ spack install patchelf%intel
+
+To build with with ``icx``, do ::
+
+ spack install patchelf%oneapi
+
+Using oneAPI MPI to Satisfy a Virtual Dependence
+------------------------------------------------------
+
+The ``hdf5`` package works with any compatible MPI implementation. To
+build ``hdf5`` with Intel oneAPI MPI do::
+
+ spack install hdf5 +mpi ^intel-oneapi-mpi
+
+Using an Externally Installed oneAPI
+====================================
+
+Spack can also use oneAPI tools that are manually installed with
+`Intel Installers`_. The procedures for configuring Spack to use
+external compilers and libraries are different.
+
+Compilers
+---------
+
+To use the compilers, add some information about the installation to
+``compilers.yaml``. For most users, it is sufficient to do::
+
+ spack compiler add /opt/intel/oneapi/compiler/latest/linux/bin/intel64
+ spack compiler add /opt/intel/oneapi/compiler/latest/linux/bin
+
+Adapt the paths above if you did not install the tools in the default
+location. After adding the compilers, using them is the same
+as if you had installed the ``intel-oneapi-compilers`` package.
+Another option is to manually add the configuration to
+``compilers.yaml`` as described in :ref:`Compiler configuration
+<compiler-config>`.
+
+Libraries
+---------
+
+If you want Spack to use MKL that you have installed without Spack in
+the default location, then add the following to
+``~/.spack/packages.yaml``, adjusting the version as appropriate::
+
+ intel-oneapi-mkl:
+ externals:
+ - spec: intel-oneapi-mkl@2021.1.1
+ prefix: /opt/intel/oneapi/
+
+
+Using oneAPI Tools Installed by Spack
+=====================================
+
+Spack can be a convenient way to install and configure compilers and
+libaries, even if you do not intend to build a Spack package. If you
+want to build a Makefile project using Spack-installed oneAPI compilers,
+then use spack to configure your environment::
+
+ spack load intel-oneapi-compilers
+
+And then you can build with::
+
+ CXX=icpx make
+
+You can also use Spack-installed libraries. For example::
+
+ spack load intel-oneapi-mkl
+
+Will update your environment CPATH, LIBRARY_PATH, and other
+environment variables for building an application with MKL.
+
+More information
+================
+
+This section describes basic use of oneAPI, especially if it has
+changed compared to Parallel Studio. See :ref:`intelpackage` for more
+information on :ref:`intel-virtual-packages`,
+:ref:`intel-unrelated-packages`,
+:ref:`intel-integrating-external-libraries`, and
+:ref:`using-mkl-tips`.
+
+
+.. _`Intel installers`: https://software.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top.html
diff --git a/lib/spack/docs/build_systems/intelpackage.rst b/lib/spack/docs/build_systems/intelpackage.rst
index 8594c8d425..9a157c3bb3 100644
--- a/lib/spack/docs/build_systems/intelpackage.rst
+++ b/lib/spack/docs/build_systems/intelpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -137,6 +137,7 @@ If you need to save disk space or installation time, you could install the
``intel`` compilers-only subset (0.6 GB) and just the library packages you
need, for example ``intel-mpi`` (0.5 GB) and ``intel-mkl`` (2.5 GB).
+.. _intel-unrelated-packages:
""""""""""""""""""""
Unrelated packages
@@ -358,6 +359,8 @@ affected by an advanced third method:
Next, visit section `Selecting Intel Compilers`_ to learn how to tell
Spack to use the newly configured compilers.
+.. _intel-integrating-external-libraries:
+
""""""""""""""""""""""""""""""""""
Integrating external libraries
""""""""""""""""""""""""""""""""""
@@ -558,43 +561,29 @@ follow `the next section <intel-install-libs_>`_ instead.
modules: []
spec: intel@18.0.3
paths:
- cc: stub
- cxx: stub
- f77: stub
- fc: stub
+ cc: /usr/bin/true
+ cxx: /usr/bin/true
+ f77: /usr/bin/true
+ fc: /usr/bin/true
Replace ``18.0.3`` with the version that you determined in the preceding
- step. The contents under ``paths:`` do not matter yet.
-
- You are right to ask: "Why on earth is that necessary?" [fn8]_.
- The answer lies in Spack striving for strict compiler consistency.
- Consider what happens without such a pre-declared compiler stub:
- Say, you ask Spack to install a particular version
- ``intel-parallel-studio@edition.V``. Spack will apply an unrelated compiler
- spec to concretize and install your request, resulting in
- ``intel-parallel-studio@edition.V %X``. That compiler ``%X`` is not going to
- be the version that this new package itself provides. Rather, it would
- typically be ``%gcc@...`` in a default Spack installation or possibly indeed
- ``%intel@...``, but at a version that precedes ``V``.
-
- The problem comes to the fore as soon as you try to use any virtual ``mkl``
- or ``mpi`` packages that you would expect to now be provided by
- ``intel-parallel-studio@edition.V``. Spack will indeed see those virtual
- packages, but only as being tied to the compiler that the package
- ``intel-parallel-studio@edition.V`` was concretized with *at installation*.
- If you were to install a client package with the new compilers now available
- to you, you would naturally run ``spack install foo +mkl %intel@V``, yet
- Spack will either complain about ``mkl%intel@V`` being missing (because it
- only knows about ``mkl%X``) or it will go and attempt to install *another
- instance* of ``intel-parallel-studio@edition.V %intel@V`` so as to match the
- compiler spec ``%intel@V`` that you gave for your client package ``foo``.
- This will be unexpected and will quickly get annoying because each
- reinstallation takes up time and extra disk space.
-
- To escape this trap, put the compiler stub declaration shown here in place,
- then use that pre-declared compiler spec to install the actual package, as
- shown next. This approach works because during installation only the
- package's own self-sufficient installer will be used, not any compiler.
+ step. The exact contents under ``paths:`` do not matter yet, but the paths must exist.
+
+ This temporary stub is required such that the ``intel-parallel-studio`` package
+ can be installed for the ``intel`` compiler (which the package itself is going
+ to provide after the installation) rather than an arbitrary system compiler.
+ The paths given in ``cc``, ``cxx``, ``f77``, ``fc`` must exist, but will
+ never be used to build anything during the installation of ``intel-parallel-studio``.
+
+ The reason for this stub is that ``intel-parallel-studio`` also provides the
+ ``mpi`` and ``mkl`` packages and when concretizing a spec, Spack ensures
+ strong consistency of the used compiler across all dependencies: [fn8]_.
+ Installing a package ``foo +mkl %intel`` will make Spack look for a package
+ ``mkl %intel``, which can be provided by ``intel-parallel-studio+mkl %intel``,
+ but not by ``intel-parallel-studio+mkl %gcc``.
+
+ Failure to do so may result in additional installations of ``mkl``, ``intel-mpi`` or
+ even ``intel-parallel-studio`` as dependencies for other packages.
.. _`verify-compiler-anticipated`:
@@ -645,11 +634,25 @@ follow `the next section <intel-install-libs_>`_ instead.
want to use the ``intel64`` variant. The ``icpc`` and ``ifort`` compilers
will be located in the same directory as ``icc``.
- * Use the ``modules:`` and/or ``cflags:`` tokens to specify a suitable accompanying
+ * Make sure to specify ``modules: ['intel-parallel-studio-cluster2018.3-intel-18.0.3-HASH']``
+ (with ``HASH`` being the short hash as displayed when running
+ ``spack find -l intel-parallel-studio@cluster.2018.3`` and the versions adapted accordingly)
+ to ensure that the correct and complete environment for the Intel compilers gets
+ loaded when running them. With modern versions of the Intel compiler you may otherwise see
+ issues about missing libraries. Please also note that module name must exactly match
+ the name as returned by ``module avail`` (and shown in the example above).
+
+ * Use the ``modules:`` and/or ``cflags:`` tokens to further specify a suitable accompanying
``gcc`` version to help pacify picky client packages that ask for C++
standards more recent than supported by your system-provided ``gcc`` and its
``libstdc++.so``.
+ * If you specified a custom variant (for example ``+vtune``) you may want to add this as your
+ preferred variant in the packages configuration for the ``intel-parallel-studio`` package
+ as described in :ref:`concretization-preferences`. Otherwise you will have to specify
+ the variant everytime ``intel-parallel-studio`` is being used as ``mkl``, ``fftw`` or ``mpi``
+ implementation to avoid pulling in a different variant.
+
* To set the Intel compilers for default use in Spack, instead of the usual ``%gcc``,
follow section `Selecting Intel compilers`_.
@@ -834,6 +837,7 @@ for example:
compiler: [ intel@18, intel@17, gcc@4.4.7, gcc@4.9.3, gcc@7.3.0, ]
+.. _intel-virtual-packages:
""""""""""""""""""""""""""""""""""""""""""""""""
Selecting libraries to satisfy virtual packages
@@ -907,6 +911,7 @@ With the proper installation as detailed above, no special steps should be
required when a client package specifically (and thus deliberately) requests an
Intel package as dependency, this being one of the target use cases for Spack.
+.. _using-mkl-tips:
"""""""""""""""""""""""""""""""""""""""""""""""
Tips for configuring client packages to use MKL
diff --git a/lib/spack/docs/build_systems/makefilepackage.rst b/lib/spack/docs/build_systems/makefilepackage.rst
index 406ec8ce89..e78c558a5a 100644
--- a/lib/spack/docs/build_systems/makefilepackage.rst
+++ b/lib/spack/docs/build_systems/makefilepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -147,8 +147,10 @@ and a ``filter_file`` method to help with this. For example:
def edit(self, spec, prefix):
makefile = FileFilter('Makefile')
- makefile.filter('CC = gcc', 'CC = cc')
- makefile.filter('CXX = g++', 'CC = c++')
+ makefile.filter(r'^\s*CC\s*=.*', 'CC = ' + spack_cc)
+ makefile.filter(r'^\s*CXX\s*=.*', 'CXX = ' + spack_cxx)
+ makefile.filter(r'^\s*F77\s*=.*', 'F77 = ' + spack_f77)
+ makefile.filter(r'^\s*FC\s*=.*', 'FC = ' + spack_fc)
`stream <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/stream/package.py>`_
diff --git a/lib/spack/docs/build_systems/mavenpackage.rst b/lib/spack/docs/build_systems/mavenpackage.rst
index 6f833e8bec..7c8c0e3741 100644
--- a/lib/spack/docs/build_systems/mavenpackage.rst
+++ b/lib/spack/docs/build_systems/mavenpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/build_systems/mesonpackage.rst b/lib/spack/docs/build_systems/mesonpackage.rst
index 75b0e1caae..a7dd7a76fb 100644
--- a/lib/spack/docs/build_systems/mesonpackage.rst
+++ b/lib/spack/docs/build_systems/mesonpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -121,11 +121,15 @@ override the ``meson_args`` method like so:
.. code-block:: python
def meson_args(self):
- return ['--default-library=both']
+ return ['--warnlevel=3']
This method can be used to pass flags as well as variables.
+Note that the ``MesonPackage`` base class already defines variants for
+``buildtype``, ``default_library`` and ``strip``, which are mapped to default
+Meson arguments, meaning that you don't have to specify these.
+
^^^^^^^^^^^^^^^^^^^^^^
External documentation
^^^^^^^^^^^^^^^^^^^^^^
diff --git a/lib/spack/docs/build_systems/multiplepackage.rst b/lib/spack/docs/build_systems/multiplepackage.rst
new file mode 100644
index 0000000000..ae3b4adaf3
--- /dev/null
+++ b/lib/spack/docs/build_systems/multiplepackage.rst
@@ -0,0 +1,350 @@
+.. Copyright 2013-2021 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)
+
+.. _multiplepackage:
+
+----------------------
+Multiple Build Systems
+----------------------
+
+Quite frequently, a package will change build systems from one version to the
+next. For example, a small project that once used a single Makefile to build
+may now require Autotools to handle the increased number of files that need to
+be compiled. Or, a package that once used Autotools may switch to CMake for
+Windows support. In this case, it becomes a bit more challenging to write a
+single build recipe for this package in Spack.
+
+There are several ways that this can be handled in Spack:
+
+#. Subclass the new build system, and override phases as needed (preferred)
+#. Subclass ``Package`` and implement ``install`` as needed
+#. Create separate ``*-cmake``, ``*-autotools``, etc. packages for each build system
+#. Rename the old package to ``*-legacy`` and create a new package
+#. Move the old package to a ``legacy`` repository and create a new package
+#. Drop older versions that only support the older build system
+
+Of these options, 1 is preferred, and will be demonstrated in this
+documentation. Options 3-5 have issues with concretization, so shouldn't be
+used. Options 4-5 also don't support more than two build systems. Option 6 only
+works if the old versions are no longer needed. Option 1 is preferred over 2
+because it makes it easier to drop the old build system entirely.
+
+The exact syntax of the package depends on which build systems you need to
+support. Below are a couple of common examples.
+
+^^^^^^^^^^^^^^^^^^^^^
+Makefile -> Autotools
+^^^^^^^^^^^^^^^^^^^^^
+
+Let's say we have the following package:
+
+.. code-block:: python
+
+ class Foo(MakefilePackage):
+ version("1.2.0", sha256="...")
+
+ def edit(self, spec, prefix):
+ filter_file("CC=", "CC=" + spack_cc, "Makefile")
+
+ def install(self, spec, prefix):
+ install_tree(".", prefix)
+
+
+The package subclasses from :ref:`makefilepackage`, which has three phases:
+
+#. ``edit`` (does nothing by default)
+#. ``build`` (runs ``make`` by default)
+#. ``install`` (runs ``make install`` by default)
+
+In this case, the ``install`` phase needed to be overridden because the
+Makefile did not have an install target. We also modify the Makefile to use
+Spack's compiler wrappers. The default ``build`` phase is not changed.
+
+Starting with version 1.3.0, we want to use Autotools to build instead.
+:ref:`autotoolspackage` has four phases:
+
+#. ``autoreconf`` (does not if a configure script already exists)
+#. ``configure`` (runs ``./configure --prefix=...`` by default)
+#. ``build`` (runs ``make`` by default)
+#. ``install`` (runs ``make install`` by default)
+
+If the only version we need to support is 1.3.0, the package would look as
+simple as:
+
+.. code-block:: python
+
+ class Foo(AutotoolsPackage):
+ version("1.3.0", sha256="...")
+
+ def configure_args(self):
+ return ["--enable-shared"]
+
+
+In this case, we use the default methods for each phase and only override
+``configure_args`` to specify additional flags to pass to ``./configure``.
+
+If we wanted to write a single package that supports both versions 1.2.0 and
+1.3.0, it would look something like:
+
+.. code-block:: python
+
+ class Foo(AutotoolsPackage):
+ version("1.3.0", sha256="...")
+ version("1.2.0", sha256="...", deprecated=True)
+
+ def configure_args(self):
+ return ["--enable-shared"]
+
+ # Remove the following once version 1.2.0 is dropped
+ @when("@:1.2")
+ def patch(self):
+ filter_file("CC=", "CC=" + spack_cc, "Makefile")
+
+ @when("@:1.2")
+ def autoreconf(self, spec, prefix):
+ pass
+
+ @when("@:1.2")
+ def configure(self, spec, prefix):
+ pass
+
+ @when("@:1.2")
+ def install(self, spec, prefix):
+ install_tree(".", prefix)
+
+
+There are a few interesting things to note here:
+
+* We added ``deprecated=True`` to version 1.2.0. This signifies that version
+ 1.2.0 is deprecated and shouldn't be used. However, if a user still relies
+ on version 1.2.0, it's still there and builds just fine.
+* We moved the contents of the ``edit`` phase to the ``patch`` function. Since
+ ``AutotoolsPackage`` doesn't have an ``edit`` phase, the only way for this
+ step to be executed is to move it to the ``patch`` function, which always
+ gets run.
+* The ``autoreconf`` and ``configure`` phases become no-ops. Since the old
+ Makefile-based build system doesn't use these, we ignore these phases when
+ building ``foo@1.2.0``.
+* The ``@when`` decorator is used to override these phases only for older
+ versions. The default methods are used for ``foo@1.3:``.
+
+Once a new Spack release comes out, version 1.2.0 and everything below the
+comment can be safely deleted. The result is the same as if we had written a
+package for version 1.3.0 from scratch.
+
+^^^^^^^^^^^^^^^^^^
+Autotools -> CMake
+^^^^^^^^^^^^^^^^^^
+
+Let's say we have the following package:
+
+.. code-block:: python
+
+ class Bar(AutotoolsPackage):
+ version("1.2.0", sha256="...")
+
+ def configure_args(self):
+ return ["--enable-shared"]
+
+
+The package subclasses from :ref:`autotoolspackage`, which has four phases:
+
+#. ``autoreconf`` (does not if a configure script already exists)
+#. ``configure`` (runs ``./configure --prefix=...`` by default)
+#. ``build`` (runs ``make`` by default)
+#. ``install`` (runs ``make install`` by default)
+
+In this case, we use the default methods for each phase and only override
+``configure_args`` to specify additional flags to pass to ``./configure``.
+
+Starting with version 1.3.0, we want to use CMake to build instead.
+:ref:`cmakepackage` has three phases:
+
+#. ``cmake`` (runs ``cmake ...`` by default)
+#. ``build`` (runs ``make`` by default)
+#. ``install`` (runs ``make install`` by default)
+
+If the only version we need to support is 1.3.0, the package would look as
+simple as:
+
+.. code-block:: python
+
+ class Bar(CMakePackage):
+ version("1.3.0", sha256="...")
+
+ def cmake_args(self):
+ return [self.define("BUILD_SHARED_LIBS", True)]
+
+
+In this case, we use the default methods for each phase and only override
+``cmake_args`` to specify additional flags to pass to ``cmake``.
+
+If we wanted to write a single package that supports both versions 1.2.0 and
+1.3.0, it would look something like:
+
+.. code-block:: python
+
+ class Bar(CMakePackage):
+ version("1.3.0", sha256="...")
+ version("1.2.0", sha256="...", deprecated=True)
+
+ def cmake_args(self):
+ return [self.define("BUILD_SHARED_LIBS", True)]
+
+ # Remove the following once version 1.2.0 is dropped
+ def configure_args(self):
+ return ["--enable-shared"]
+
+ @when("@:1.2")
+ def cmake(self, spec, prefix):
+ configure("--prefix=" + prefix, *self.configure_args())
+
+
+There are a few interesting things to note here:
+
+* We added ``deprecated=True`` to version 1.2.0. This signifies that version
+ 1.2.0 is deprecated and shouldn't be used. However, if a user still relies
+ on version 1.2.0, it's still there and builds just fine.
+* Since CMake and Autotools are so similar, we only need to override the
+ ``cmake`` phase, we can use the default ``build`` and ``install`` phases.
+* We override ``cmake`` to run ``./configure`` for older versions.
+ ``configure_args`` remains the same.
+* The ``@when`` decorator is used to override these phases only for older
+ versions. The default methods are used for ``bar@1.3:``.
+
+Once a new Spack release comes out, version 1.2.0 and everything below the
+comment can be safely deleted. The result is the same as if we had written a
+package for version 1.3.0 from scratch.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Multiple build systems for the same version
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+During the transition from one build system to another, developers often
+support multiple build systems at the same time. Spack can only use a single
+build system for a single version. To decide which build system to use for a
+particular version, take the following things into account:
+
+1. If the developers explicitly state that one build system is preferred over
+ another, use that one.
+2. If one build system is considered "experimental" while another is considered
+ "stable", use the stable build system.
+3. Otherwise, use the newer build system.
+
+The developer preference for which build system to use can change over time as
+a newer build system becomes stable/recommended.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Dropping support for old build systems
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When older versions of a package don't support a newer build system, it can be
+tempting to simply delete them from a package. This significantly reduces
+package complexity and makes the build recipe much easier to maintain. However,
+other packages or Spack users may rely on these older versions. The recommended
+approach is to first support both build systems (as demonstrated above),
+:ref:`deprecate <deprecate>` versions that rely on the old build system, and
+remove those versions and any phases that needed to be overridden in the next
+Spack release.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Three or more build systems
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In rare cases, a package may change build systems multiple times. For example,
+a package may start with Makefiles, then switch to Autotools, then switch to
+CMake. The same logic used above can be extended to any number of build systems.
+For example:
+
+.. code-block:: python
+
+ class Baz(CMakePackage):
+ version("1.4.0", sha256="...") # CMake
+ version("1.3.0", sha256="...") # Autotools
+ version("1.2.0", sha256="...") # Makefile
+
+ def cmake_args(self):
+ return [self.define("BUILD_SHARED_LIBS", True)]
+
+ # Remove the following once version 1.3.0 is dropped
+ def configure_args(self):
+ return ["--enable-shared"]
+
+ @when("@1.3")
+ def cmake(self, spec, prefix):
+ configure("--prefix=" + prefix, *self.configure_args())
+
+ # Remove the following once version 1.2.0 is dropped
+ @when("@:1.2")
+ def patch(self):
+ filter_file("CC=", "CC=" + spack_cc, "Makefile")
+
+ @when("@:1.2")
+ def cmake(self, spec, prefix):
+ pass
+
+ @when("@:1.2")
+ def install(self, spec, prefix):
+ install_tree(".", prefix)
+
+
+^^^^^^^^^^^^^^^^^^^
+Additional examples
+^^^^^^^^^^^^^^^^^^^
+
+When writing new packages, it often helps to see examples of existing packages.
+Here is an incomplete list of existing Spack packages that have changed build
+systems before:
+
+================ ===================== ================
+Package Previous Build System New Build System
+================ ===================== ================
+amber custom CMake
+arpack-ng Autotools CMake
+atk Autotools Meson
+blast None Autotools
+dyninst Autotools CMake
+evtgen Autotools CMake
+fish Autotools CMake
+gdk-pixbuf Autotools Meson
+glib Autotools Meson
+glog Autotools CMake
+gmt Autotools CMake
+gtkplus Autotools Meson
+hpl Makefile Autotools
+interproscan Perl Maven
+jasper Autotools CMake
+kahip SCons CMake
+kokkos Makefile CMake
+kokkos-kernels Makefile CMake
+leveldb Makefile CMake
+libdrm Autotools Meson
+libjpeg-turbo Autotools CMake
+mesa Autotools Meson
+metis None CMake
+mpifileutils Autotools CMake
+muparser Autotools CMake
+mxnet Makefile CMake
+nest Autotools CMake
+neuron Autotools CMake
+nsimd CMake nsconfig
+opennurbs Makefile CMake
+optional-lite None CMake
+plasma Makefile CMake
+preseq Makefile Autotools
+protobuf Autotools CMake
+py-pygobject Autotools Python
+singularity Autotools Makefile
+span-lite None CMake
+ssht Makefile CMake
+string-view-lite None CMake
+superlu Makefile CMake
+superlu-dist Makefile CMake
+uncrustify Autotools CMake
+================ ===================== ================
+
+Packages that support multiple build systems can be a bit confusing to write.
+Don't hesitate to open an issue or draft pull request and ask for advice from
+other Spack developers!
diff --git a/lib/spack/docs/build_systems/octavepackage.rst b/lib/spack/docs/build_systems/octavepackage.rst
index 90e582e36c..baccd0c0e7 100644
--- a/lib/spack/docs/build_systems/octavepackage.rst
+++ b/lib/spack/docs/build_systems/octavepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/build_systems/perlpackage.rst b/lib/spack/docs/build_systems/perlpackage.rst
index 11968e1560..9fc57f6337 100644
--- a/lib/spack/docs/build_systems/perlpackage.rst
+++ b/lib/spack/docs/build_systems/perlpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -120,8 +120,6 @@ so ``PerlPackage`` contains:
extends('perl')
- depends_on('perl', type=('build', 'run'))
-
If your package requires a specific version of Perl, you should
specify this.
diff --git a/lib/spack/docs/build_systems/pythonpackage.rst b/lib/spack/docs/build_systems/pythonpackage.rst
index ef06725e01..931c58724a 100644
--- a/lib/spack/docs/build_systems/pythonpackage.rst
+++ b/lib/spack/docs/build_systems/pythonpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -23,20 +23,11 @@ can be overridden:
* ``build_ext``
* ``build_clib``
* ``build_scripts``
-* ``clean``
* ``install``
* ``install_lib``
* ``install_headers``
* ``install_scripts``
* ``install_data``
-* ``sdist``
-* ``register``
-* ``bdist``
-* ``bdist_dumb``
-* ``bdist_rpm``
-* ``bdist_wininst``
-* ``upload``
-* ``check``
These are all standard ``setup.py`` commands and can be found by running:
@@ -55,7 +46,7 @@ If for whatever reason you need to run more phases, simply modify your
.. code-block:: python
- phases = ['build_ext', 'install', 'bdist']
+ phases = ['build_ext', 'install']
Each phase provides a function ``<phase>`` that runs:
@@ -90,7 +81,7 @@ Instead of using the ``PythonPackage`` base class, you should extend
the ``Package`` base class and implement the following custom installation
procedure:
-.. code-block::
+.. code-block:: python
def install(self, spec, prefix):
pip = which('pip')
@@ -134,9 +125,9 @@ The zip file will not contain a ``setup.py``, but it will contain a
``METADATA`` file which contains all the information you need to
write a ``package.py`` build recipe.
-^^^^^^^^^^^^^^^^^^^^^^^
-Finding Python packages
-^^^^^^^^^^^^^^^^^^^^^^^
+^^^^
+PyPI
+^^^^
The vast majority of Python packages are hosted on PyPI - The Python
Package Index. ``pip`` only supports packages hosted on PyPI, making
@@ -148,6 +139,26 @@ if a newer version is available. The download page is usually at::
https://pypi.org/project/<package-name>
+
+Since PyPI is so common, the ``PythonPackage`` base class has a
+``pypi`` attribute that can be set. Once set, ``pypi`` will be used
+to define the ``homepage``, ``url``, and ``list_url``. For example,
+the following:
+
+.. code-block:: python
+
+ homepage = 'https://pypi.org/project/setuptools/'
+ url = 'https://pypi.org/packages/source/s/setuptools/setuptools-49.2.0.zip'
+ list_url = 'https://pypi.org/simple/setuptools/'
+
+
+is equivalent to:
+
+.. code-block:: python
+
+ pypi = 'setuptools/setuptools-49.2.0.zip'
+
+
^^^^^^^^^^^
Description
^^^^^^^^^^^
@@ -184,50 +195,11 @@ also get the homepage on the command-line by running:
URL
^^^
-You may have noticed that Spack allows you to add multiple versions of
-the same package without adding multiple versions of the download URL.
-It does this by guessing what the version string in the URL is and
-replacing this with the requested version. Obviously, if Spack cannot
-guess the version correctly, or if non-version-related things change
-in the URL, Spack cannot substitute the version properly.
-
-Once upon a time, PyPI offered nice, simple download URLs like::
-
- https://pypi.python.org/packages/source/n/numpy/numpy-1.13.1.zip
-
-
-As you can see, the version is 1.13.1. It probably isn't hard to guess
-what URL to use to download version 1.12.0, and Spack was perfectly
-capable of performing this calculation.
-
-However, PyPI switched to a new download URL format::
-
- https://pypi.python.org/packages/c0/3a/40967d9f5675fbb097ffec170f59c2ba19fc96373e73ad47c2cae9a30aed/numpy-1.13.1.zip#md5=2c3c0f4edf720c3a7b525dacc825b9ae
-
-
-and more recently::
-
- https://files.pythonhosted.org/packages/b0/2b/497c2bb7c660b2606d4a96e2035e92554429e139c6c71cdff67af66b58d2/numpy-1.14.3.zip
-
-
-As you can imagine, it is impossible for Spack to guess what URL to
-use to download version 1.12.0 given this URL. There is a solution,
-however. PyPI offers a new hidden interface for downloading
-Python packages that does not include a hash in the URL::
-
- https://pypi.io/packages/source/n/numpy/numpy-1.13.1.zip
-
-
-This URL redirects to the https://files.pythonhosted.org URL. The general
-syntax for this https://pypi.io URL is::
-
- https://pypi.io/packages/<type>/<first-letter-of-name>/<name>/<name>-<version>.<extension>
-
-
-Please use the https://pypi.io URL instead of the https://pypi.python.org
-URL. If both ``.tar.gz`` and ``.zip`` versions are available, ``.tar.gz``
-is preferred. If some releases offer both ``.tar.gz`` and ``.zip`` versions,
-but some only offer ``.zip`` versions, use ``.zip``.
+If ``pypi`` is set as mentioned above, ``url`` and ``list_url`` will
+be automatically set for you. If both ``.tar.gz`` and ``.zip`` versions
+are available, ``.tar.gz`` is preferred. If some releases offer both
+``.tar.gz`` and ``.zip`` versions, but some only offer ``.zip`` versions,
+use ``.zip``.
Some Python packages are closed-source and do not ship ``.tar.gz`` or ``.zip``
files on either PyPI or GitHub. If this is the case, you can still download
@@ -237,10 +209,9 @@ and can be downloaded from::
https://pypi.io/packages/py3/a/azureml_sdk/azureml_sdk-1.11.0-py3-none-any.whl
-Note that instead of ``<type>`` being ``source``, it is now ``py3`` since this
-wheel will work for any generic version of Python 3. You may see Python-specific
-or OS-specific URLs. Note that when you add a ``.whl`` URL, you should add
-``expand=False`` to ensure that Spack doesn't try to extract the wheel:
+You may see Python-specific or OS-specific URLs. Note that when you add a
+``.whl`` URL, you should add ``expand=False`` to ensure that Spack doesn't
+try to extract the wheel:
.. code-block:: python
@@ -255,7 +226,7 @@ Many packages are hosted on PyPI, but are developed on GitHub or another
version control systems. The tarball can be downloaded from either
location, but PyPI is preferred for the following reasons:
-#. PyPI contains the bare minimum of files to install the package.
+#. PyPI contains the bare minimum number of files needed to install the package.
You may notice that the tarball you download from PyPI does not
have the same checksum as the tarball you download from GitHub.
@@ -292,19 +263,6 @@ location, but PyPI is preferred for the following reasons:
PyPI is nice because it makes it physically impossible to
re-release the same version of a package with a different checksum.
-There are some reasons to prefer downloading from GitHub:
-
-#. The GitHub tarball may contain unit tests.
-
- As previously mentioned, the PyPI tarball contains the bare minimum
- of files to install the package. Unless explicitly specified by the
- developers, it will not contain development files like unit tests.
- If you desire to run the unit tests during installation, you should
- use the GitHub tarball instead.
-
-If you really want to run these unit tests, no one will stop you from
-submitting a PR for a new package that downloads from GitHub.
-
^^^^^^^^^^^^^^^^^^^^^^^^^
Build system dependencies
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -569,7 +527,8 @@ If the package uses ``setuptools``, check for the following clues:
These are packages that are required to run the unit tests for the
package. These dependencies can be specified using the
- ``type='test'`` dependency type.
+ ``type='test'`` dependency type. However, the PyPI tarballs rarely
+ contain unit tests, so there is usually no reason to add these.
In the root directory of the package, you may notice a
``requirements.txt`` file. It may look like this file contains a list
@@ -625,7 +584,8 @@ add run-time dependencies if they aren't needed, so you need to
determine whether or not setuptools is needed. Grep the installation
directory for any files containing a reference to ``setuptools`` or
``pkg_resources``. Both modules come from ``py-setuptools``.
-``pkg_resources`` is particularly common in scripts in ``prefix/bin``.
+``pkg_resources`` is particularly common in scripts found in
+``prefix/bin``.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Passing arguments to setup.py
@@ -667,7 +627,8 @@ adds:
Testing
^^^^^^^
-``PythonPackage`` provides a couple of options for testing packages.
+``PythonPackage`` provides a couple of options for testing packages
+both during and after the installation process.
""""""""""""
Import tests
@@ -699,48 +660,74 @@ a "package" is a directory containing files like:
foo/baz.py
-whereas a "module" is a single Python file. Since ``find_packages``
-only returns packages, you'll have to determine the correct module
-names yourself. You can now add these packages and modules to the
-package like so:
+whereas a "module" is a single Python file.
+
+The ``PythonPackage`` base class automatically detects these module
+names for you. If, for whatever reason, the module names detected
+are wrong, you can provide the names yourself by overriding
+``import_modules`` like so:
.. code-block:: python
import_modules = ['six']
-When you run ``spack install --test=root py-six``, Spack will attempt
-to import the ``six`` module after installation.
+Sometimes the list of module names to import depends on how the
+package was built. For example, the ``py-pyyaml`` package has a
+``+libyaml`` variant that enables the build of a faster optimized
+version of the library. If the user chooses ``~libyaml``, only the
+``yaml`` library will be importable. If the user chooses ``+libyaml``,
+both the ``yaml`` and ``yaml.cyaml`` libraries will be available.
+This can be expressed like so:
+
+.. code-block:: python
-These tests most often catch missing dependencies and non-RPATHed
+ @property
+ def import_modules(self):
+ modules = ['yaml']
+
+ if '+libyaml' in self.spec:
+ modules.append('yaml.cyaml')
+
+ return modules
+
+
+These tests often catch missing dependencies and non-RPATHed
libraries. Make sure not to add modules/packages containing the word
-"test", as these likely won't end up in installation directory.
+"test", as these likely won't end up in the installation directory,
+or may require test dependencies like pytest to be installed.
+
+Import tests can be run during the installation using ``spack install
+--test=root`` or at any time after the installation using
+``spack test run``.
""""""""""
Unit tests
""""""""""
-The package you want to install may come with additional unit tests.
-By default, Spack runs:
+The package may have its own unit or regression tests. Spack can
+run these tests during the installation by adding phase-appropriate
+test methods.
-.. code-block:: console
+For example, ``py-numpy`` adds the following as a check to run
+after the ``install`` phase:
- $ python setup.py test
+.. code-block:: python
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
+ def install_test(self):
+ with working_dir('spack-test', create=True):
+ python('-c', 'import numpy; numpy.test("full", verbose=2)')
-if it detects that the ``setup.py`` file supports a ``test`` phase.
-You can add additional build-time or install-time tests by overriding
-``test`` or adding a custom install-time test function. For example,
-``py-numpy`` adds:
-.. code-block:: python
+when testing is enabled during the installation (i.e., ``spack install
+--test=root``).
- install_time_test_callbacks = ['install_test', 'import_module_test']
-
- def install_test(self):
- with working_dir('..'):
- python('-c', 'import numpy; numpy.test("full", verbose=2)')
+.. note::
+ Additional information is available on :ref:`install phase tests
+ <install_phase-tests>`.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Setup file in a sub-directory
@@ -781,7 +768,7 @@ PythonPackage vs. packages that use Python
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There are many packages that make use of Python, but packages that depend
-on Python are not necessarily ``PythonPackages``.
+on Python are not necessarily ``PythonPackage``'s.
"""""""""""""""""""""""
Choosing a build system
@@ -878,8 +865,8 @@ and ``pip`` may be a perfectly valid alternative to using Spack. The
main advantage of Spack over ``pip`` is its ability to compile
non-Python dependencies. It can also build cythonized versions of a
package or link to an optimized BLAS/LAPACK library like MKL,
-resulting in calculations that run orders of magnitude faster.
-Spack does not offer a significant advantage to other python-management
+resulting in calculations that run orders of magnitudes faster.
+Spack does not offer a significant advantage over other python-management
systems for installing and using tools like flake8 and sphinx.
But if you need packages with non-Python dependencies like
numpy and scipy, Spack will be very valuable to you.
diff --git a/lib/spack/docs/build_systems/qmakepackage.rst b/lib/spack/docs/build_systems/qmakepackage.rst
index 81d0f7f798..6e85d2bbcd 100644
--- a/lib/spack/docs/build_systems/qmakepackage.rst
+++ b/lib/spack/docs/build_systems/qmakepackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -108,6 +108,19 @@ override the ``qmake_args`` method like so:
This method can be used to pass flags as well as variables.
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+``*.pro`` file in a sub-directory
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If the ``*.pro`` file used to tell QMake how to build the package is
+found in a sub-directory, you can tell Spack to run all phases in this
+sub-directory by adding the following to the package:
+
+.. code-block:: python
+
+ build_directory = 'src'
+
+
^^^^^^^^^^^^^^^^^^^^^^
External documentation
^^^^^^^^^^^^^^^^^^^^^^
diff --git a/lib/spack/docs/build_systems/rocmpackage.rst b/lib/spack/docs/build_systems/rocmpackage.rst
new file mode 100644
index 0000000000..e322194adf
--- /dev/null
+++ b/lib/spack/docs/build_systems/rocmpackage.rst
@@ -0,0 +1,122 @@
+.. Copyright 2013-2021 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)
+
+.. _rocmpackage:
+
+-----------
+ROCmPackage
+-----------
+
+The ``ROCmPackage`` is not a build system but a helper package. Like ``CudaPackage``,
+it provides standard variants, dependencies, and conflicts to facilitate building
+packages using GPUs though for AMD in this case.
+
+You can find the source for this package (and suggestions for setting up your
+``compilers.yaml`` and ``packages.yaml`` files) at
+`<https://github.com/spack/spack/blob/develop/lib/spack/spack/build_systems/rocm.py>`__.
+
+^^^^^^^^
+Variants
+^^^^^^^^
+
+This package provides the following variants:
+
+* **rocm**
+
+ This variant is used to enable/disable building with ``rocm``.
+ The default is disabled (or ``False``).
+
+* **amdgpu_target**
+
+ This variant supports the optional specification of the AMD GPU architecture.
+ Valid values are the names of the GPUs (e.g., ``gfx701``), which are maintained
+ in the ``amdgpu_targets`` property.
+
+^^^^^^^^^^^^
+Dependencies
+^^^^^^^^^^^^
+
+This package defines basic ``rocm`` dependencies, including ``llvm`` and ``hip``.
+
+^^^^^^^^^
+Conflicts
+^^^^^^^^^
+
+Conflicts are used to prevent builds with known bugs or issues. This package
+already requires that the ``amdgpu_target`` always be specified for ``rocm``
+builds. It also defines a conflict that prevents builds with an ``amdgpu_target``
+when ``rocm`` is disabled.
+
+Refer to `Conflicts <https://spack.readthedocs.io/en/latest/packaging_guide.html?highlight=conflicts#conflicts>`__
+for more information on package conflicts.
+
+^^^^^^^
+Methods
+^^^^^^^
+
+This package provides one custom helper method, which is used to build
+standard AMD hip compiler flags.
+
+**hip_flags**
+
+ This built-in static method returns the appropriately formatted
+ ``--amdgpu-target`` build option for ``hipcc``.
+
+ This method must be explicitly called when you are creating the
+ arguments for your build in order to use the values.
+
+^^^^^
+Usage
+^^^^^
+
+This helper package can be added to your package by adding it as a base
+class of your package. For example, you can add it to your
+:ref:`CMakePackage <cmakepackage>`-based package as follows:
+
+.. code-block:: python
+ :emphasize-lines: 1,3-7,14-25
+
+ class MyRocmPackage(CMakePackage, ROCmPackage):
+ ...
+ # Ensure +rocm and amdgpu_targets are passed to dependencies
+ depends_on('mydeppackage', when='+rocm')
+ for val in ROCmPackage.amdgpu_targets:
+ depends_on('mydeppackage amdgpu_target={0}'.format(val),
+ when='amdgpu_target={0}'.format(val))
+ ...
+
+ def cmake_args(self):
+ spec = self.spec
+ args = []
+ ...
+ if '+rocm' in spec:
+ # Set up the hip macros needed by the build
+ args.extend([
+ '-DENABLE_HIP=ON',
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix])
+ rocm_archs = spec.variants['amdgpu_target'].value
+ if 'none' not in rocm_archs:
+ args.append('-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'
+ .format(",".join(rocm_archs)))
+ else:
+ # Ensure build with hip is disabled
+ args.append('-DENABLE_HIP=OFF')
+ ...
+ return args
+ ...
+
+assuming only on the ``ENABLE_HIP``, ``HIP_ROOT_DIR``, and ``HIP_HIPCC_FLAGS``
+macros are required to be set and the only dependency needing rocm options
+is ``mydeppackage``. You will need to customize the flags as needed for your
+build.
+
+This example also illustrates how to check for the ``rocm`` variant using
+``self.spec`` and how to retrieve the ``amdgpu_target`` variant's value
+using ``self.spec.variants['amdgpu_target'].value``.
+
+All five packages using ``ROCmPackage`` as of January 2021 also use the
+:ref:`CudaPackage <cudapackage>`. So it is worth looking at those packages
+to get ideas for creating a package that can support both ``cuda`` and
+``rocm``.
diff --git a/lib/spack/docs/build_systems/rpackage.rst b/lib/spack/docs/build_systems/rpackage.rst
index 60c76816c5..a375b5328c 100644
--- a/lib/spack/docs/build_systems/rpackage.rst
+++ b/lib/spack/docs/build_systems/rpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -79,12 +79,14 @@ Description
The first thing you'll need to add to your new package is a description.
The top of the homepage for ``caret`` lists the following description:
- caret: Classification and Regression Training
+ Classification and Regression Training
Misc functions for training and plotting classification and regression models.
-You can either use the short description (first line), long description
-(second line), or both depending on what you feel is most appropriate.
+The first line is a short description (title) and the second line is a long
+description. In this case the description is only one line but often the
+description is several lines. Spack makes use of both short and long
+descriptions and convention is to use both when creating an R package.
^^^^^^^^
Homepage
@@ -124,6 +126,67 @@ If you only specify the URL for the latest release, your package will
no longer be able to fetch that version as soon as a new release comes
out. To get around this, add the archive directory as a ``list_url``.
+^^^^^^^^^^^^^^^^^^^^^
+Bioconductor packages
+^^^^^^^^^^^^^^^^^^^^^
+
+Bioconductor packages are set up in a similar way to CRAN packages, but there
+are some very important distinctions. Bioconductor packages can be found at:
+https://bioconductor.org/. Bioconductor packages are R packages and so follow
+the same packaging scheme as CRAN packages. What is different is that
+Bioconductor itself is versioned and released. This scheme, using the
+Bioconductor package installer, allows further specification of the minimum
+version of R as well as further restrictions on the dependencies between
+packages than what is possible with the native R packaging system. Spack can
+not replicate these extra features and thus Bioconductor packages in Spack need
+to be managed as a group during updates in order to maintain package
+consistency with Bioconductor itself.
+
+Another key difference is that, while previous versions of packages are
+available, they are not available from a site that can be programmatically set,
+thus a ``list_url`` attribute can not be used. However, each package is also
+available in a git repository, with branches corresponding to each Bioconductor
+release. Thus, it is always possible to retrieve the version of any package
+corresponding to a Bioconductor release simply by fetching the branch that
+corresponds to the Bioconductor release of the package repository. For this
+reason, spack Bioconductor R packages use the git repository, with the commit
+of the respective branch used in the ``version()`` attribute of the package.
+
+^^^^^^^^^^^^^^^^^^^^^^^^
+cran and bioc attributes
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+Much like the ``pypi`` attribute for python packages, due to the fact that R
+packages are obtained from specific repositories, it is possible to set up shortcut
+attributes that can be used to set ``homepage``, ``url``, ``list_url``, and
+``git``. For example, the following ``cran`` attribute:
+
+.. code-block:: python
+
+ cran = 'caret'
+
+is equivalent to:
+
+.. code-block:: python
+
+ homepage = 'https://cloud.r-project.org/package=caret'
+ url = 'https://cloud.r-project.org/src/contrib/caret_6.0-86.tar.gz'
+ list_url = 'https://cloud.r-project.org/src/contrib/Archive/caret'
+
+Likewise, the following ``bioc`` attribute:
+
+.. code-block:: python
+
+ bioc = 'BiocVersion'
+
+is equivalent to:
+
+.. code-block:: python
+
+ homepage = 'https://bioconductor.org/packages/BiocVersion/'
+ git = 'https://git.bioconductor.org/packages/BiocVersion'
+
+
^^^^^^^^^^^^^^^^^^^^^^^^^
Build system dependencies
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -138,7 +201,6 @@ every R package needs this, the ``RPackage`` base class contains:
.. code-block:: python
extends('r')
- depends_on('r', type=('build', 'run'))
Take a close look at the homepage for ``caret``. If you look at the
@@ -157,7 +219,7 @@ R dependencies
R packages are often small and follow the classic Unix philosophy
of doing one thing well. They are modular and usually depend on
several other packages. You may find a single package with over a
-hundred dependencies. Luckily, CRAN packages are well-documented
+hundred dependencies. Luckily, R packages are well-documented
and list all of their dependencies in the following sections:
* Depends
@@ -298,8 +360,8 @@ like so:
.. code-block:: python
- def configure_args(self, spec, prefix):
- mpi_name = spec['mpi'].name
+ def configure_args(self):
+ mpi_name = self.spec['mpi'].name
# The type of MPI. Supported values are:
# OPENMPI, LAM, MPICH, MPICH2, or CRAY
diff --git a/lib/spack/docs/build_systems/rubypackage.rst b/lib/spack/docs/build_systems/rubypackage.rst
index d1deaf6fa7..226d0bc4a2 100644
--- a/lib/spack/docs/build_systems/rubypackage.rst
+++ b/lib/spack/docs/build_systems/rubypackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -113,7 +113,6 @@ the base class contains:
.. code-block:: python
extends('ruby')
- depends_on('ruby', type=('build', 'run'))
The ``*.gemspec`` file may contain something like:
diff --git a/lib/spack/docs/build_systems/sconspackage.rst b/lib/spack/docs/build_systems/sconspackage.rst
index f29d6c5f45..f1f67b76b4 100644
--- a/lib/spack/docs/build_systems/sconspackage.rst
+++ b/lib/spack/docs/build_systems/sconspackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/build_systems/sippackage.rst b/lib/spack/docs/build_systems/sippackage.rst
index ddf9a26ab9..f72d83ca30 100644
--- a/lib/spack/docs/build_systems/sippackage.rst
+++ b/lib/spack/docs/build_systems/sippackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -93,10 +93,17 @@ in the site-packages directory:
$ python
>>> import setuptools
>>> setuptools.find_packages()
- ['QtPy5']
+ [
+ 'PyQt5', 'PyQt5.QtCore', 'PyQt5.QtGui', 'PyQt5.QtHelp',
+ 'PyQt5.QtMultimedia', 'PyQt5.QtMultimediaWidgets', 'PyQt5.QtNetwork',
+ 'PyQt5.QtOpenGL', 'PyQt5.QtPrintSupport', 'PyQt5.QtQml',
+ 'PyQt5.QtQuick', 'PyQt5.QtSvg', 'PyQt5.QtTest', 'PyQt5.QtWebChannel',
+ 'PyQt5.QtWebSockets', 'PyQt5.QtWidgets', 'PyQt5.QtXml',
+ 'PyQt5.QtXmlPatterns'
+ ]
-Large, complex packages like ``QtPy5`` will return a long list of
+Large, complex packages like ``py-pyqt5`` will return a long list of
packages, while other packages may return an empty list. These packages
only install a single ``foo.py`` file. In Python packaging lingo,
a "package" is a directory containing files like:
@@ -108,21 +115,25 @@ a "package" is a directory containing files like:
foo/baz.py
-whereas a "module" is a single Python file. Since ``find_packages``
-only returns packages, you'll have to determine the correct module
-names yourself. You can now add these packages and modules to the
-package like so:
+whereas a "module" is a single Python file.
+
+The ``SIPPackage`` base class automatically detects these module
+names for you. If, for whatever reason, the module names detected
+are wrong, you can provide the names yourself by overriding
+``import_modules`` like so:
.. code-block:: python
import_modules = ['PyQt5']
-When you run ``spack install --test=root py-pyqt5``, Spack will attempt
-to import the ``PyQt5`` module after installation.
+These tests often catch missing dependencies and non-RPATHed
+libraries. Make sure not to add modules/packages containing the word
+"test", as these likely won't end up in the installation directory,
+or may require test dependencies like pytest to be installed.
-These tests most often catch missing dependencies and non-RPATHed
-libraries.
+These tests can be triggered by running ``spack install --test=root``
+or by running ``spack test run`` after the installation has finished.
^^^^^^^^^^^^^^^^^^^^^^
External documentation
diff --git a/lib/spack/docs/build_systems/wafpackage.rst b/lib/spack/docs/build_systems/wafpackage.rst
index 36fc21a772..1bb879e4f2 100644
--- a/lib/spack/docs/build_systems/wafpackage.rst
+++ b/lib/spack/docs/build_systems/wafpackage.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/chain.rst b/lib/spack/docs/chain.rst
index d84db87ff3..ddebbbeec3 100644
--- a/lib/spack/docs/chain.rst
+++ b/lib/spack/docs/chain.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/conf.py b/lib/spack/docs/conf.py
index e19dd05511..2b58223e1d 100644
--- a/lib/spack/docs/conf.py
+++ b/lib/spack/docs/conf.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,10 +17,10 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
-import sys
import os
import re
import subprocess
+import sys
from glob import glob
from sphinx.ext.apidoc import main as sphinx_apidoc
@@ -82,6 +82,8 @@ todo_include_todos = True
# Disable duplicate cross-reference warnings.
#
from sphinx.domains.python import PythonDomain
+
+
class PatchedPythonDomain(PythonDomain):
def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):
if 'refspecific' in node:
@@ -95,15 +97,19 @@ def setup(sphinx):
# -- General configuration -----------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
-needs_sphinx = '1.8'
+needs_sphinx = '3.4'
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc',
- 'sphinx.ext.graphviz',
- 'sphinx.ext.napoleon',
- 'sphinx.ext.todo',
- 'sphinxcontrib.programoutput']
+extensions = [
+ 'sphinx.ext.autodoc',
+ 'sphinx.ext.graphviz',
+ 'sphinx.ext.intersphinx',
+ 'sphinx.ext.napoleon',
+ 'sphinx.ext.todo',
+ 'sphinx.ext.viewcode',
+ 'sphinxcontrib.programoutput',
+]
# Set default graphviz options
graphviz_dot_args = [
@@ -128,7 +134,7 @@ master_doc = 'index'
# General information about the project.
project = u'Spack'
-copyright = u'2013-2019, Lawrence Livermore National Laboratory.'
+copyright = u'2013-2021, Lawrence Livermore National Laboratory.'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -136,6 +142,7 @@ copyright = u'2013-2019, Lawrence Livermore National Laboratory.'
#
# The short X.Y version.
import spack
+
version = '.'.join(str(s) for s in spack.spack_version_info[:2])
# The full version, including alpha/beta/rc tags.
release = spack.spack_version
@@ -161,6 +168,19 @@ gettext_uuid = False
# directories to ignore when looking for source files.
exclude_patterns = ['_build', '_spack_root', '.spack-env']
+nitpicky = True
+nitpick_ignore = [
+ # Python classes that intersphinx is unable to resolve
+ ('py:class', 'argparse.HelpFormatter'),
+ ('py:class', 'contextlib.contextmanager'),
+ ('py:class', 'module'),
+ ('py:class', '_io.BufferedReader'),
+ ('py:class', 'unittest.case.TestCase'),
+ ('py:class', '_frozen_importlib_external.SourceFileLoader'),
+ # Spack classes that are private and we don't want to expose
+ ('py:class', 'spack.provider_index._IndexBase'),
+]
+
# The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None
@@ -179,7 +199,8 @@ exclude_patterns = ['_build', '_spack_root', '.spack-env']
# We use our own extension of the default style with a few modifications
from pygments.style import Style
from pygments.styles.default import DefaultStyle
-from pygments.token import Generic, Comment, Text
+from pygments.token import Comment, Generic, Text
+
class SpackStyle(DefaultStyle):
styles = DefaultStyle.styles.copy()
@@ -188,6 +209,7 @@ class SpackStyle(DefaultStyle):
styles[Generic.Prompt] = "bold #346ec9"
import pkg_resources
+
dist = pkg_resources.Distribution(__file__)
sys.path.append('.') # make 'conf' module findable
ep = pkg_resources.EntryPoint.parse('spack = conf:SpackStyle', dist=dist)
@@ -353,3 +375,11 @@ texinfo_documents = [
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote'
+
+
+# -- Extension configuration -------------------------------------------------
+
+# sphinx.ext.intersphinx
+intersphinx_mapping = {
+ "python": ("https://docs.python.org/3", None),
+}
diff --git a/lib/spack/docs/config_yaml.rst b/lib/spack/docs/config_yaml.rst
index bcb41527a9..631b8f6b1b 100644
--- a/lib/spack/docs/config_yaml.rst
+++ b/lib/spack/docs/config_yaml.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -202,21 +202,23 @@ of builds.
Unless overridden in a package or on the command line, Spack builds all
packages in parallel. The default parallelism is equal to the number of
-cores on your machine, up to 16. Parallelism cannot exceed the number of
-cores available on the host. For a build system that uses Makefiles, this
-means running:
+cores available to the process, up to 16 (the default of ``build_jobs``).
+For a build system that uses Makefiles, this ``spack install`` runs:
- ``make -j<build_jobs>``, when ``build_jobs`` is less than the number of
- cores on the machine
+ cores available
- ``make -j<ncores>``, when ``build_jobs`` is greater or equal to the
- number of cores on the machine
+ number of cores available
If you work on a shared login node or have a strict ulimit, it may be
necessary to set the default to a lower value. By setting ``build_jobs``
to 4, for example, commands like ``spack install`` will run ``make -j4``
-instead of hogging every core.
+instead of hogging every core. To build all software in serial,
+set ``build_jobs`` to 1.
-To build all software in serial, set ``build_jobs`` to 1.
+Note that specifying the number of jobs on the command line always takes
+priority, so that ``spack install -j<n>`` always runs `make -j<n>`, even
+when that exceeds the number of cores available.
--------------------
``ccache``
diff --git a/lib/spack/docs/configuration.rst b/lib/spack/docs/configuration.rst
index 41c9de79f9..10b442ab74 100644
--- a/lib/spack/docs/configuration.rst
+++ b/lib/spack/docs/configuration.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -78,6 +78,13 @@ are six configuration scopes. From lowest to highest:
If multiple scopes are listed on the command line, they are ordered
from lowest to highest precedence.
+#. **environment**: When using Spack :ref:`environments`, Spack reads
+ additional configuration from the environment file. See
+ :ref:`environment-configuration` for further details on these
+ scopes. Environment scopes can be referenced from the command line
+ as ``env:name`` (to reference environment ``foo``, use
+ ``env:foo``).
+
#. **command line**: Build settings specified on the command line take
precedence over all other scopes.
@@ -192,10 +199,11 @@ with MPICH. You can create different configuration scopes for use with
Platform-specific Scopes
------------------------
-For each scope above, there can also be platform-specific settings.
-For example, on most platforms, GCC is the preferred compiler.
-However, on macOS (darwin), Clang often works for more packages,
-and is set as the default compiler. This configuration is set in
+For each scope above (excluding environment scopes), there can also be
+platform-specific settings. For example, on most platforms, GCC is
+the preferred compiler. However, on macOS (darwin), Clang often works
+for more packages, and is set as the default compiler. This
+configuration is set in
``$(prefix)/etc/spack/defaults/darwin/packages.yaml``. It will take
precedence over settings in the ``defaults`` scope, but can still be
overridden by settings in ``system``, ``system/darwin``, ``site``,
diff --git a/lib/spack/docs/containers.rst b/lib/spack/docs/containers.rst
index 67e70421da..e88b55a226 100644
--- a/lib/spack/docs/containers.rst
+++ b/lib/spack/docs/containers.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -126,6 +126,9 @@ are currently supported are summarized in the table below:
* - Ubuntu 18.04
- ``ubuntu:18.04``
- ``spack/ubuntu-bionic``
+ * - CentOS 6
+ - ``centos:6``
+ - ``spack/centos6``
* - CentOS 7
- ``centos:7``
- ``spack/centos7``
@@ -224,7 +227,7 @@ following ``spack.yaml``:
container:
images:
- os: centos/7
+ os: centos:7
spack: 0.15.4
uses ``spack/centos7:0.15.4`` and ``centos:7`` for the stages where the
diff --git a/lib/spack/docs/contribution_guide.rst b/lib/spack/docs/contribution_guide.rst
index 8df8ad65ba..f4527355c4 100644
--- a/lib/spack/docs/contribution_guide.rst
+++ b/lib/spack/docs/contribution_guide.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -179,24 +179,26 @@ how to write tests!
run the unit tests yourself, we suggest you use ``spack unit-test``.
^^^^^^^^^^^^
-Flake8 Tests
+Style Tests
^^^^^^^^^^^^
Spack uses `Flake8 <http://flake8.pycqa.org/en/latest/>`_ to test for
-`PEP 8 <https://www.python.org/dev/peps/pep-0008/>`_ conformance. PEP 8 is
+`PEP 8 <https://www.python.org/dev/peps/pep-0008/>`_ conformance and
+`mypy <https://mypy.readthedocs.io/en/stable/>` for type checking. PEP 8 is
a series of style guides for Python that provide suggestions for everything
from variable naming to indentation. In order to limit the number of PRs that
were mostly style changes, we decided to enforce PEP 8 conformance. Your PR
-needs to comply with PEP 8 in order to be accepted.
+needs to comply with PEP 8 in order to be accepted, and if it modifies the
+spack library it needs to successfully type-check with mypy as well.
-Testing for PEP 8 compliance is easy. Simply run the ``spack flake8``
+Testing for compliance with spack's style is easy. Simply run the ``spack style``
command:
.. code-block:: console
- $ spack flake8
+ $ spack style
-``spack flake8`` has a couple advantages over running ``flake8`` by hand:
+``spack style`` has a couple advantages over running the tools by hand:
#. It only tests files that you have modified since branching off of
``develop``.
@@ -207,7 +209,9 @@ command:
checks. For example, URLs are often longer than 80 characters, so we
exempt them from line length checks. We also exempt lines that start
with "homepage", "url", "version", "variant", "depends_on", and
- "extends" in ``package.py`` files.
+ "extends" in ``package.py`` files. This is now also possible when directly
+ running flake8 if you can use the ``spack`` formatter plugin included with
+ spack.
More approved flake8 exemptions can be found
`here <https://github.com/spack/spack/blob/develop/.flake8>`_.
@@ -240,13 +244,13 @@ However, if you aren't compliant with PEP 8, flake8 will complain:
Most of the error messages are straightforward, but if you don't understand what
they mean, just ask questions about them when you submit your PR. The line numbers
-will change if you add or delete lines, so simply run ``spack flake8`` again
+will change if you add or delete lines, so simply run ``spack style`` again
to update them.
.. tip::
Try fixing flake8 errors in reverse order. This eliminates the need for
- multiple runs of ``spack flake8`` just to re-compute line numbers and
+ multiple runs of ``spack style`` just to re-compute line numbers and
makes it much easier to fix errors directly off of the CI output.
.. warning::
diff --git a/lib/spack/docs/developer_guide.rst b/lib/spack/docs/developer_guide.rst
index b4b8b5d321..cc77666846 100644
--- a/lib/spack/docs/developer_guide.rst
+++ b/lib/spack/docs/developer_guide.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -106,11 +106,21 @@ with a high level view of Spack's directory structure:
external/ <- external libs included in Spack distro
llnl/ <- some general-use libraries
- spack/ <- spack module; contains Python code
- cmd/ <- each file in here is a spack subcommand
- compilers/ <- compiler description files
- test/ <- unit test modules
- util/ <- common code
+ spack/ <- spack module; contains Python code
+ analyzers/ <- modules to run analysis on installed packages
+ build_systems/ <- modules for different build systems
+ cmd/ <- each file in here is a spack subcommand
+ compilers/ <- compiler description files
+ container/ <- module for spack containerize
+ hooks/ <- hook modules to run at different points
+ modules/ <- modules for lmod, tcl, etc.
+ operating_systems/ <- operating system modules
+ platforms/ <- different spack platforms
+ reporters/ <- reporters like cdash, junit
+ schema/ <- schemas to validate data structures
+ solver/ <- the spack solver
+ test/ <- unit test modules
+ util/ <- common code
Spack is designed so that it could live within a `standard UNIX
directory hierarchy <http://linux.die.net/man/7/hier>`_, so ``lib``,
@@ -141,24 +151,22 @@ Package-related modules
^^^^^^^^^^^^^^^^^^^^^^^
:mod:`spack.package`
- Contains the :class:`Package <spack.package.Package>` class, which
+ Contains the :class:`~spack.package.Package` class, which
is the superclass for all packages in Spack. Methods on ``Package``
implement all phases of the :ref:`package lifecycle
<package-lifecycle>` and manage the build process.
-:mod:`spack.packages`
- Contains all of the packages in Spack and methods for managing them.
- Functions like :func:`packages.get <spack.packages.get>` and
- :func:`class_name_for_package_name
- <packages.class_name_for_package_name>` handle mapping package module
- names to class names and dynamically instantiating packages by name
- from module files.
+:mod:`spack.util.naming`
+ Contains functions for mapping between Spack package names,
+ Python module names, and Python class names. Functions like
+ :func:`~spack.util.naming.mod_to_class` handle mapping package
+ module names to class names.
-:mod:`spack.relations`
- *Relations* are relationships between packages, like
- :func:`depends_on <spack.relations.depends_on>` and :func:`provides
- <spack.relations.provides>`. See :ref:`dependencies` and
- :ref:`virtual-dependencies`.
+:mod:`spack.directives`
+ *Directives* are functions that can be called inside a package definition
+ to modify the package, like :func:`~spack.directives.depends_on`
+ and :func:`~spack.directives.provides`. See :ref:`dependencies`
+ and :ref:`virtual-dependencies`.
:mod:`spack.multimethod`
Implementation of the :func:`@when <spack.multimethod.when>`
@@ -170,31 +178,27 @@ Spec-related modules
^^^^^^^^^^^^^^^^^^^^
:mod:`spack.spec`
- Contains :class:`Spec <spack.spec.Spec>` and :class:`SpecParser
- <spack.spec.SpecParser>`. Also implements most of the logic for
- normalization and concretization of specs.
+ Contains :class:`~spack.spec.Spec` and :class:`~spack.spec.SpecParser`.
+ Also implements most of the logic for normalization and concretization
+ of specs.
:mod:`spack.parse`
Contains some base classes for implementing simple recursive descent
- parsers: :class:`Parser <spack.parse.Parser>` and :class:`Lexer
- <spack.parse.Lexer>`. Used by :class:`SpecParser
- <spack.spec.SpecParser>`.
+ parsers: :class:`~spack.parse.Parser` and :class:`~spack.parse.Lexer`.
+ Used by :class:`~spack.spec.SpecParser`.
:mod:`spack.concretize`
- Contains :class:`DefaultConcretizer
- <spack.concretize.DefaultConcretizer>` implementation, which allows
- site administrators to change Spack's :ref:`concretization-policies`.
+ Contains :class:`~spack.concretize.Concretizer` implementation,
+ which allows site administrators to change Spack's :ref:`concretization-policies`.
:mod:`spack.version`
- Implements a simple :class:`Version <spack.version.Version>` class
- with simple comparison semantics. Also implements
- :class:`VersionRange <spack.version.VersionRange>` and
- :class:`VersionList <spack.version.VersionList>`. All three are
- comparable with each other and offer union and intersection
- operations. Spack uses these classes to compare versions and to
- manage version constraints on specs. Comparison semantics are
- similar to the ``LooseVersion`` class in ``distutils`` and to the
- way RPM compares version strings.
+ Implements a simple :class:`~spack.version.Version` class with simple
+ comparison semantics. Also implements :class:`~spack.version.VersionRange`
+ and :class:`~spack.version.VersionList`. All three are comparable with each
+ other and offer union and intersection operations. Spack uses these classes
+ to compare versions and to manage version constraints on specs. Comparison
+ semantics are similar to the ``LooseVersion`` class in ``distutils`` and to
+ the way RPM compares version strings.
:mod:`spack.compilers`
Submodules contains descriptors for all valid compilers in Spack.
@@ -207,7 +211,7 @@ Spec-related modules
yet.
:mod:`spack.architecture`
- :func:`architecture.sys_type <spack.architecture.sys_type>` is used
+ :func:`architecture.default_arch <spack.architecture.default_arch>` is used
to determine the host architecture while building.
.. warning::
@@ -222,7 +226,7 @@ Build environment
:mod:`spack.stage`
Handles creating temporary directories for builds.
-:mod:`spack.compilation`
+:mod:`spack.build_environment`
This contains utility functions used by the compiler wrapper script,
``cc``.
@@ -247,9 +251,22 @@ Unit tests
Implements Spack's test suite. Add a module and put its name in
the test suite in ``__init__.py`` to add more unit tests.
-:mod:`spack.test.mock_packages`
- This is a fake package hierarchy used to mock up packages for
- Spack's test suite.
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Research and Monitoring Modules
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:mod:`spack.monitor`
+ Contains :class:`~spack.monitor.SpackMonitorClient`. This is accessed from
+ the ``spack install`` and ``spack analyze`` commands to send build and
+ package metadata up to a `Spack Monitor
+ <https://github.com/spack/spack-monitor>`_ server.
+
+
+:mod:`spack.analyzers`
+ A module folder with a :class:`~spack.analyzers.analyzer_base.AnalyzerBase`
+ that provides base functions to run, save, and (optionally) upload analysis
+ results to a `Spack Monitor <https://github.com/spack/spack-monitor>`_ server.
+
^^^^^^^^^^^^^
Other Modules
@@ -260,7 +277,7 @@ Other Modules
tarball URLs.
:mod:`spack.error`
- :class:`SpackError <spack.error.SpackError>`, the base class for
+ :class:`~spack.error.SpackError`, the base class for
Spack's exception hierarchy.
:mod:`llnl.util.tty`
@@ -299,6 +316,235 @@ Conceptually, packages are overloaded. They contain:
Stage objects
-------------
+
+.. _writing-analyzers:
+
+-----------------
+Writing analyzers
+-----------------
+
+To write an analyzer, you should add a new python file to the
+analyzers module directory at ``lib/spack/spack/analyzers`` .
+Your analyzer should be a subclass of the :class:`AnalyzerBase <spack.analyzers.analyzer_base.AnalyzerBase>`. For example, if you want
+to add an analyzer class ``Myanalyzer`` you would write to
+``spack/analyzers/myanalyzer.py`` and import and
+use the base as follows:
+
+.. code-block:: python
+
+ from .analyzer_base import AnalyzerBase
+
+ class Myanalyzer(AnalyzerBase):
+
+
+Note that the class name is your module file name, all lowercase
+except for the first capital letter. You can look at other analyzers in
+that analyzer directory for examples. The guide here will tell you about the basic functions needed.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^
+Analyzer Output Directory
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+By default, when you run ``spack analyze run`` an analyzer output directory will
+be created in your spack user directory in your ``$HOME``. The reason we output here
+is because the install directory might not always be writable.
+
+.. code-block:: console
+
+ ~/.spack/
+ analyzers
+
+Result files will be written here, organized in subfolders in the same structure
+as the package, with each analyzer owning it's own subfolder. for example:
+
+
+.. code-block:: console
+
+ $ tree ~/.spack/analyzers/
+ /home/spackuser/.spack/analyzers/
+ └── linux-ubuntu20.04-skylake
+ └── gcc-9.3.0
+ └── zlib-1.2.11-sl7m27mzkbejtkrajigj3a3m37ygv4u2
+ ├── environment_variables
+ │   └── spack-analyzer-environment-variables.json
+ ├── install_files
+ │   └── spack-analyzer-install-files.json
+ └── libabigail
+ └── lib
+ └── spack-analyzer-libabigail-libz.so.1.2.11.xml
+
+
+Notice that for the libabigail analyzer, since results are generated per object,
+we honor the object's folder in case there are equivalently named files in
+different folders. The result files are typically written as json so they can be easily read and uploaded in a future interaction with a monitor.
+
+
+^^^^^^^^^^^^^^^^^
+Analyzer Metadata
+^^^^^^^^^^^^^^^^^
+
+Your analyzer is required to have the class attributes ``name``, ``outfile``,
+and ``description``. These are printed to the user with they use the subcommand
+``spack analyze list-analyzers``. Here is an example.
+As we mentioned above, note that this analyzer would live in a module named
+``libabigail.py`` in the analyzers folder so that the class can be discovered.
+
+
+.. code-block:: python
+
+ class Libabigail(AnalyzerBase):
+
+ name = "libabigail"
+ outfile = "spack-analyzer-libabigail.json"
+ description = "Application Binary Interface (ABI) features for objects"
+
+
+This means that the name and output file should be unique for your analyzer.
+Note that "all" cannot be the name of an analyzer, as this key is used to indicate
+that the user wants to run all analyzers.
+
+.. _analyzer_run_function:
+
+
+^^^^^^^^^^^^^^^^^^^^^^^^
+An analyzer run Function
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+The core of an analyzer is its ``run()`` function, which should accept no
+arguments. You can assume your analyzer has the package spec of interest at ``self.spec``
+and it's up to the run function to generate whatever analysis data you need,
+and then return the object with a key as the analyzer name. The result data
+should be a list of objects, each with a name, ``analyzer_name``, ``install_file``,
+and one of ``value`` or ``binary_value``. The install file should be for a relative
+path, and not the absolute path. For example, let's say we extract a metric called
+``metric`` for ``bin/wget`` using our analyzer ``thebest-analyzer``.
+We might have data that looks like this:
+
+.. code-block:: python
+
+ result = {"name": "metric", "analyzer_name": "thebest-analyzer", "value": "1", "install_file": "bin/wget"}
+
+
+We'd then return it as follows - note that they key is the analyzer name at ``self.name``.
+
+.. code-block:: python
+
+ return {self.name: result}
+
+This will save the complete result to the analyzer metadata folder, as described
+previously. If you want support for adding a different kind of metadata (e.g.,
+not associated with an install file) then the monitor server would need to be updated
+to support this first.
+
+
+^^^^^^^^^^^^^^^^^^^^^^^^^
+An analyzer init Function
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you don't need any extra dependencies or checks, you can skip defining an analyzer
+init function, as the base class will handle it. Typically, it will accept
+a spec, and an optional output directory (if the user does not want the default
+metadata folder for analyzer results). The analyzer init function should call
+it's parent init, and then do any extra checks or validation that are required to
+work. For example:
+
+.. code-block:: python
+
+ def __init__(self, spec, dirname=None):
+ super(Myanalyzer, self).__init__(spec, dirname)
+
+ # install extra dependencies, do extra preparation and checks here
+
+
+At the end of the init, you will have available to you:
+
+ - **self.spec**: the spec object
+ - **self.dirname**: an optional directory name the user as provided at init to save
+ - **self.output_dir**: the analyzer metadata directory, where we save by default
+ - **self.meta_dir**: the path to the package metadata directory (.spack) if you need it
+
+And can proceed to write your analyzer.
+
+
+^^^^^^^^^^^^^^^^^^^^^^^
+Saving Analyzer Results
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The analyzer will have ``save_result`` called, with the result object generated
+to save it to the filesystem, and if the user has added the ``--monitor`` flag
+to upload it to a monitor server. If your result follows an accepted result
+format and you don't need to parse it further, you don't need to add this
+function to your class. However, if your result data is large or otherwise
+needs additional parsing, you can define it. If you define the function, it
+is useful to know about the ``output_dir`` property, which you can join
+with your output file relative path of choice:
+
+.. code-block:: python
+
+ outfile = os.path.join(self.output_dir, "my-output-file.txt")
+
+
+The directory will be provided by the ``output_dir`` property but it won't exist,
+so you should create it:
+
+
+.. code::block:: python
+
+ # Create the output directory
+ if not os.path.exists(self._output_dir):
+ os.makedirs(self._output_dir)
+
+
+If you are generating results that match to specific files in the package
+install directory, you should try to maintain those paths in the case that
+there are equivalently named files in different directories that would
+overwrite one another. As an example of an analyzer with a custom save,
+the Libabigail analyzer saves ``*.xml`` files to the analyzer metadata
+folder in ``run()``, as they are either binaries, or as xml (text) would
+usually be too big to pass in one request. For this reason, the files
+are saved during ``run()`` and the filenames added to the result object,
+and then when the result object is passed back into ``save_result()``,
+we skip saving to the filesystem, and instead read the file and send
+each one (separately) to the monitor:
+
+
+.. code-block:: python
+
+ def save_result(self, result, monitor=None, overwrite=False):
+ """ABI results are saved to individual files, so each one needs to be
+ read and uploaded. Result here should be the lookup generated in run(),
+ the key is the analyzer name, and each value is the result file.
+ We currently upload the entire xml as text because libabigail can't
+ easily read gzipped xml, but this will be updated when it can.
+ """
+ if not monitor:
+ return
+
+ name = self.spec.package.name
+
+ for obj, filename in result.get(self.name, {}).items():
+
+ # Don't include the prefix
+ rel_path = obj.replace(self.spec.prefix + os.path.sep, "")
+
+ # We've already saved the results to file during run
+ content = spack.monitor.read_file(filename)
+
+ # A result needs an analyzer, value or binary_value, and name
+ data = {"value": content, "install_file": rel_path, "name": "abidw-xml"}
+ tty.info("Sending result for %s %s to monitor." % (name, rel_path))
+ monitor.send_analyze_metadata(self.spec.package, {"libabigail": [data]})
+
+
+
+Notice that this function, if you define it, requires a result object (generated by
+``run()``, a monitor (if you want to send), and a boolean ``overwrite`` to be used
+to check if a result exists first, and not write to it if the result exists and
+overwrite is False. Also notice that since we already saved these files to the analyzer metadata folder, we return early if a monitor isn't defined, because this function serves to send results to the monitor. If you haven't saved anything to the analyzer metadata folder
+yet, you might want to do that here. You should also use ``tty.info`` to give
+the user a message of "Writing result to $DIRNAME."
+
+
.. _writing-commands:
----------------
@@ -345,6 +591,183 @@ Whenever you add/remove/rename a command or flags for an existing command,
make sure to update Spack's `Bash tab completion script
<https://github.com/adamjstewart/spack/blob/develop/share/spack/spack-completion.bash>`_.
+
+-------------
+Writing Hooks
+-------------
+
+A hook is a callback that makes it easy to design functions that run
+for different events. We do this by way of defining hook types, and then
+inserting them at different places in the spack code base. Whenever a hook
+type triggers by way of a function call, we find all the hooks of that type,
+and run them.
+
+Spack defines hooks by way of a module at ``lib/spack/spack/hooks`` where we can define
+types of hooks in the ``__init__.py``, and then python files in that folder
+can use hook functions. The files are automatically parsed, so if you write
+a new file for some integration (e.g., ``lib/spack/spack/hooks/myintegration.py``
+you can then write hook functions in that file that will be automatically detected,
+and run whenever your hook is called. This section will cover the basic kind
+of hooks, and how to write them.
+
+^^^^^^^^^^^^^^
+Types of Hooks
+^^^^^^^^^^^^^^
+
+The following hooks are currently implemented to make it easy for you,
+the developer, to add hooks at different stages of a spack install or similar.
+If there is a hook that you would like and is missing, you can propose to add a new one.
+
+"""""""""""""""""""""
+``pre_install(spec)``
+"""""""""""""""""""""
+
+A ``pre_install`` hook is run within an install subprocess, directly before
+the install starts. It expects a single argument of a spec, and is run in
+a multiprocessing subprocess. Note that if you see ``pre_install`` functions associated with packages these are not hooks
+as we have defined them here, but rather callback functions associated with
+a package install.
+
+
+""""""""""""""""""""""
+``post_install(spec)``
+""""""""""""""""""""""
+
+A ``post_install`` hook is run within an install subprocess, directly after
+the install finishes, but before the build stage is removed. If you
+write one of these hooks, you should expect it to accept a spec as the only
+argument. This is run in a multiprocessing subprocess. This ``post_install`` is
+also seen in packages, but in this context not related to the hooks described
+here.
+
+
+""""""""""""""""""""""""""
+``on_install_start(spec)``
+""""""""""""""""""""""""""
+
+This hook is run at the beginning of ``lib/spack/spack/installer.py``,
+in the install function of a ``PackageInstaller``,
+and importantly is not part of a build process, but before it. This is when
+we have just newly grabbed the task, and are preparing to install. If you
+write a hook of this type, you should provide the spec to it.
+
+.. code-block:: python
+
+ def on_install_start(spec):
+ """On start of an install, we want to...
+ """
+ print('on_install_start')
+
+
+""""""""""""""""""""""""""""
+``on_install_success(spec)``
+""""""""""""""""""""""""""""
+
+This hook is run on a successful install, and is also run inside the build
+process, akin to ``post_install``. The main difference is that this hook
+is run outside of the context of the stage directory, meaning after the
+build stage has been removed and the user is alerted that the install was
+successful. If you need to write a hook that is run on success of a particular
+phase, you should use ``on_phase_success``.
+
+""""""""""""""""""""""""""""
+``on_install_failure(spec)``
+""""""""""""""""""""""""""""
+
+This hook is run given an install failure that happens outside of the build
+subprocess, but somewhere in ``installer.py`` when something else goes wrong.
+If you need to write a hook that is relevant to a failure within a build
+process, you would want to instead use ``on_phase_failure``.
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""
+``on_phase_success(pkg, phase_name, log_file)``
+"""""""""""""""""""""""""""""""""""""""""""""""
+
+This hook is run within the install subprocess, and specifically when a phase
+successfully finishes. Since we are interested in the package, the name of
+the phase, and any output from it, we require:
+
+ - **pkg**: the package variable, which also has the attached spec at ``pkg.spec``
+ - **phase_name**: the name of the phase that was successful (e.g., configure)
+ - **log_file**: the path to the file with output, in case you need to inspect or otherwise interact with it.
+
+"""""""""""""""""""""""""""""""""""""""""""""
+``on_phase_error(pkg, phase_name, log_file)``
+"""""""""""""""""""""""""""""""""""""""""""""
+
+In the case of an error during a phase, we might want to trigger some event
+with a hook, and this is the purpose of this particular hook. Akin to
+``on_phase_success`` we require the same variables - the package that failed,
+the name of the phase, and the log file where we might find errors.
+
+"""""""""""""""""""""""""""""""""
+``on_analyzer_save(pkg, result)``
+"""""""""""""""""""""""""""""""""
+
+After an analyzer has saved some result for a package, this hook is called,
+and it provides the package that we just ran the analysis for, along with
+the loaded result. Typically, a result is structured to have the name
+of the analyzer as key, and the result object that is defined in detail in
+:ref:`analyzer_run_function`.
+
+.. code-block:: python
+
+ def on_analyzer_save(pkg, result):
+ """given a package and a result...
+ """
+ print('Do something extra with a package analysis result here')
+
+
+^^^^^^^^^^^^^^^^^^^^^^
+Adding a New Hook Type
+^^^^^^^^^^^^^^^^^^^^^^
+
+Adding a new hook type is very simple! In ``lib/spack/spack/hooks/__init__.py``
+you can simply create a new ``HookRunner`` that is named to match your new hook.
+For example, let's say you want to add a new hook called ``post_log_write``
+to trigger after anything is written to a logger. You would add it as follows:
+
+.. code-block:: python
+
+ # pre/post install and run by the install subprocess
+ pre_install = HookRunner('pre_install')
+ post_install = HookRunner('post_install')
+
+ # hooks related to logging
+ post_log_write = HookRunner('post_log_write') # <- here is my new hook!
+
+
+You then need to decide what arguments my hook would expect. Since this is
+related to logging, let's say that you want a message and level. That means
+that when you add a python file to the ``lib/spack/spack/hooks``
+folder with one or more callbacks intended to be triggered by this hook. You might
+use my new hook as follows:
+
+.. code-block:: python
+
+ def post_log_write(message, level):
+ """Do something custom with the messsage and level every time we write
+ to the log
+ """
+ print('running post_log_write!')
+
+
+To use the hook, we would call it as follows somewhere in the logic to do logging.
+In this example, we use it outside of a logger that is already defined:
+
+.. code-block:: python
+
+ import spack.hooks
+
+ # We do something here to generate a logger and message
+ spack.hooks.post_log_write(message, logger.level)
+
+
+This is not to say that this would be the best way to implement an integration
+with the logger (you'd probably want to write a custom logger, or you could
+have the hook defined within the logger) but serves as an example of writing a hook.
+
----------
Unit tests
----------
@@ -353,6 +776,38 @@ Unit tests
Unit testing
------------
+---------------------
+Developer environment
+---------------------
+
+.. warning::
+
+ This is an experimental feature. It is expected to change and you should
+ not use it in a production environment.
+
+
+When installing a package, we currently have support to export environment
+variables to specify adding debug flags to the build. By default, a package
+install will build without any debug flag. However, if you want to add them,
+you can export:
+
+.. code-block:: console
+
+ export SPACK_ADD_DEBUG_FLAGS=true
+ spack install zlib
+
+
+If you want to add custom flags, you should export an additional variable:
+
+.. code-block:: console
+
+ export SPACK_ADD_DEBUG_FLAGS=true
+ export SPACK_DEBUG_FLAGS="-g"
+ spack install zlib
+
+These environment variables will eventually be integrated into spack so
+they are set from the command line.
+
------------------
Developer commands
------------------
@@ -363,6 +818,29 @@ Developer commands
``spack doc``
^^^^^^^^^^^^^
+.. _cmd-spack-style:
+
+^^^^^^^^^^^^^^^
+``spack style``
+^^^^^^^^^^^^^^^
+
+spack style exists to help the developer user to check imports and style with
+mypy, flake8, isort, and (soon) black. To run all style checks, simply do:
+
+.. code-block:: console
+
+ $ spack style
+
+To run automatic fixes for isort you can do:
+
+.. code-block:: console
+
+ $ spack style --fix
+
+You do not need any of these Python packages installed on your system for
+the checks to work! Spack will bootstrap install them from packages for
+your use.
+
^^^^^^^^^^^^^^^^^^^
``spack unit-test``
^^^^^^^^^^^^^^^^^^^
@@ -396,23 +874,89 @@ other Spack modules:
True
>>>
-You can also run a single command:
+If you prefer using an IPython interpreter, given that IPython is installed
+you can specify the interpreter with ``-i``:
+
+.. code-block:: console
+
+ $ spack python -i ipython
+ Python 3.8.3 (default, May 19 2020, 18:47:26)
+ Type 'copyright', 'credits' or 'license' for more information
+ IPython 7.17.0 -- An enhanced Interactive Python. Type '?' for help.
+
+
+ Spack version 0.16.0
+ Python 3.8.3, Linux x86_64
+
+ In [1]:
+
+
+With either interpreter you can run a single command:
.. code-block:: console
$ spack python -c 'import distro; distro.linux_distribution()'
- ('Fedora', '25', 'Workstation Edition')
+ ('Ubuntu', '18.04', 'Bionic Beaver')
+
+ $ spack python -i ipython -c 'import distro; distro.linux_distribution()'
+ Out[1]: ('Ubuntu', '18.04', 'Bionic Beaver')
or a file:
.. code-block:: console
$ spack python ~/test_fetching.py
+ $ spack python -i ipython ~/test_fetching.py
just like you would with the normal ``python`` command.
+
.. _cmd-spack-url:
+
+^^^^^^^^^^^^^^^
+``spack blame``
+^^^^^^^^^^^^^^^
+
+Spack blame is a way to quickly see contributors to packages or files
+in the spack repository. You should provide a target package name or
+file name to the command. Here is an example asking to see contributions
+for the package "python":
+
+.. code-block:: console
+
+ $ spack blame python
+ LAST_COMMIT LINES % AUTHOR EMAIL
+ 2 weeks ago 3 0.3 Mickey Mouse <cheddar@gmouse.org>
+ a month ago 927 99.7 Minnie Mouse <swiss@mouse.org>
+
+ 2 weeks ago 930 100.0
+
+
+By default, you will get a table view (shown above) sorted by date of contribution,
+with the most recent contribution at the top. If you want to sort instead
+by percentage of code contribution, then add ``-p``:
+
+.. code-block:: console
+
+ $ spack blame -p python
+
+
+And to see the git blame view, add ``-g`` instead:
+
+
+.. code-block:: console
+
+ $ spack blame -g python
+
+
+Finally, to get a json export of the data, add ``--json``:
+
+.. code-block:: console
+
+ $ spack blame --json python
+
+
^^^^^^^^^^^^^
``spack url``
^^^^^^^^^^^^^
@@ -553,8 +1097,10 @@ 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
+**should not** make changes that would change the concretization of
packages. They should generally only contain fixes to the Spack core.
+However, sometimes priorities are such that new functionality needs to
+be added to a minor release.
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
@@ -563,50 +1109,51 @@ 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
+several open release projects. For example, below 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
+This image shows 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
+Spack's project boards are not firm commitments so 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
+yet done, we will simply move them to the 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
+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:
+Assuming a project board has already been created and all required work
+completed, the steps to make the major release are:
#. 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.
+#. Move any optional tasks that are not done to one of the new project boards.
+
+ In general, 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``:
@@ -618,11 +1165,14 @@ for a major release, the steps to make the release are as follows:
``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
+#. Bump the version in ``lib/spack/spack/__init__.py``.
+
+ See `this example from 0.13.0
<https://github.com/spack/spack/commit/8eeb64096c98b8a43d1c587f13ece743c864fba9>`_
-#. Update ``CHANGELOG.md`` with major highlights in bullet form. Use
- proper markdown formatting, like `this example from 0.15.0
+#. 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.
@@ -646,33 +1196,33 @@ for a major release, the steps to make the release are as follows:
.. _point-releases:
^^^^^^^^^^^^^^^^^^^^^
-Making 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:
+Assuming a project board has already been created and all required work
+completed, the steps to make the point release are:
-#. Create one new project board for the next point release.
+#. Create a new project board for the next point release.
-#. Move any cards that aren't done yet to the next project board.
+#. Move any optional tasks that are not done 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``:
+#. 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.
+ project board 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
+ vast majority of pull requests. That 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
+ they were squashed into a single commit on merge. You can see the
commit that was created here:
.. image:: images/pr-commit.png
@@ -684,9 +1234,8 @@ release:
$ 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.
+ For pull requests that were rebased (or not squashed), you'll need to
+ cherry-pick each associated commit individually.
.. warning::
@@ -699,30 +1248,35 @@ release:
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:
+ call regarding those pull requests. Consider the number of affected
+ files and or the resulting differences.
- 1. If the dependency is small, you might just cherry-pick it, too.
- If you do this, add it to the release board.
+ 1. If the dependency changes are small, you might just cherry-pick it,
+ too. If you do this, add the task 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.
+ 2. If the changes are large, then you may decide that this fix is not
+ worth including in a point release, in which case you should remove
+ the task 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
+#. Bump the version in ``lib/spack/spack/__init__.py``.
+
+ See `this example from 0.14.1
<https://github.com/spack/spack/commit/ff0abb9838121522321df2a054d18e54b566b44a>`_.
-#. 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
+#. Update ``CHANGELOG.md`` with a list of the changes.
+
+ This is typically 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>`_
@@ -745,23 +1299,26 @@ release:
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:
+#. Create the release in GitHub.
+
+ * Go to
+ `github.com/spack/spack/releases <https://github.com/spack/spack/releases>`_
+ and click ``Draft a new release``.
- * ``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.
+ * Set ``Tag version`` to the name of the tag that will be created.
- * ``Target`` should be the ``releases/vX.Y`` branch (e.g., ``releases/v0.15``).
+ The name should start with ``v`` and contain *all three*
+ parts of the version (e.g. ``v0.15.0`` or ``v0.15.1``).
- * ``Release title`` should be ``vX.Y.Z`` (To match the tag, e.g., ``v0.15.1``).
+ * Set ``Target`` to the ``releases/vX.Y`` branch (e.g., ``releases/v0.15``).
- * For the text, paste the latest release markdown from your ``CHANGELOG.md``.
+ * Set ``Release title`` to ``vX.Y.Z`` to match the tag (e.g., ``v0.15.1``).
- You can save the draft and keep coming back to this as you prepare the release.
+ * Paste the latest release markdown from your ``CHANGELOG.md`` file as the text.
-#. When you are done, click ``Publish release``.
+ * Save the draft so you can keep coming back to it as you prepare the release.
+
+#. When you are ready to finalize the release, click ``Publish release``.
#. Immediately after publishing, go back to
`github.com/spack/spack/releases
@@ -769,22 +1326,26 @@ Publishing a release on GitHub
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
+#. Click ``Edit`` on the release you just made 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
+ #. Makes sure that the hash of our releases does not change over time.
+
+ GitHub sometimes annoyingly changes the way they generate tarballs
+ that can result in the hashes changing 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
+ #. Gets 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.
-#. Go to `readthedocs.org <https://readthedocs.org/projects/spack>`_ and activate
- the release tag. This builds the documentation and makes the released version
+#. Go to `readthedocs.org <https://readthedocs.org/projects/spack>`_ and
+ activate the release tag.
+
+ This builds the documentation and makes the released version
selectable in the versions menu.
@@ -798,23 +1359,23 @@ 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 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).
+* 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:
+To tag ``releases/latest``, do this:
- .. code-block:: console
+.. code-block:: console
- $ git checkout releases/vX.Y # vX.Y is the new release's branch
- $ git tag --force releases/latest
- $ git push --tags
+ $ git checkout releases/vX.Y # vX.Y is the new release's branch
+ $ git tag --force releases/latest
+ $ git push --force --tags
- The ``--force`` argument makes ``git`` overwrite the existing
- ``releases/latest`` tag with the new one.
+The ``--force`` argument to ``git tag`` 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:
@@ -822,17 +1383,17 @@ 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 merge --no-ff -s ours 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``.
+ * updates the version and ``CHANGELOG.md`` on ``develop``; and
* ensures that your release tag is reachable from the head of
- ``develop``
+ ``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``.
+We *must* use a real merge commit (via the ``--no-ff`` option) to
+ensure 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:
@@ -850,6 +1411,7 @@ 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:
^^^^^^^^^^^^^^^^^^^^
@@ -860,20 +1422,40 @@ 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>`_.
+#. Announce the release on Twitter.
+
+ * Compose the tweet on the ``@spackpm`` account per the
+ ``spack-twitter`` slack channel.
+
+ * Be sure to include a link to the release's page on GitHub.
+
+ You can base the tweet on `this
+ example <https://twitter.com/spackpm/status/1231761858182307840>`_.
+
+#. Announce the release on Slack.
+
+ * Compose a message in the ``#general`` Slack channel
+ (`spackpm.slack.com <https://spackpm.slack.com>`_).
+
+ * Preface the message with ``@channel`` to notify even those
+ people not currently logged in.
+
+ * Be sure to include a link to the tweet above.
+
+ The tweet will be shown inline so that you do not have to retype
+ your release announcement.
+
+#. Announce the release on the Spack mailing list.
+
+ * Compose an email to the Spack mailing list.
+
+ * Be sure to include a link to the release's page on GitHub.
-#. 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.
+ * It is also helpful to include some information directly in the
+ email.
-#. 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>`_.
+ You can base your announcement 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!
+Once you've completed the above steps, congratulations, you're done!
+You've finished making the release!
diff --git a/lib/spack/docs/environments.rst b/lib/spack/docs/environments.rst
index 1710ec6b5a..fd96698e97 100644
--- a/lib/spack/docs/environments.rst
+++ b/lib/spack/docs/environments.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -248,9 +248,9 @@ Users can add abstract specs to an Environment using the ``spack add``
command. The most important component of an Environment is a list of
abstract specs.
-Adding a spec adds to the manifest (the ``spack.yaml`` file) and to
-the roots of the Environment, but does not affect the concrete specs
-in the lockfile, nor does it install the spec.
+Adding a spec adds to the manifest (the ``spack.yaml`` file), which is
+used to define the roots of the Environment, but does not affect the
+concrete specs in the lockfile, nor does it install the spec.
The ``spack add`` command is environment aware. It adds to the
currently active environment. All environment aware commands can also
@@ -356,6 +356,18 @@ command also stores a Spack repo containing the ``package.py`` file
used at install time for each package in the ``repos/`` directory in
the Environment.
+The ``--no-add`` option can be used in a concrete environment to tell
+spack to install specs already present in the environment but not to
+add any new root specs to the environment. For root specs provided
+to ``spack install`` on the command line, ``--no-add`` is the default,
+while for dependency specs on the other hand, it is optional. In other
+words, if there is an unambiguous match in the active concrete environment
+for a root spec provided to ``spack install`` on the command line, spack
+does not require you to specify the ``--no-add`` option to prevent the spec
+from being added again. At the same time, a spec that already exists in the
+environment, but only as a dependency, will be added to the environment as a
+root spec without the ``--no-add`` option.
+
^^^^^^^
Loading
^^^^^^^
@@ -399,6 +411,12 @@ There are two ways to include configuration information in a Spack Environment:
#. Included in the ``spack.yaml`` file from another file.
+Many Spack commands also affect configuration information in files
+automatically. Those commands take a ``--scope`` argument, and the
+environment can be specified by ``env:NAME`` (to affect environment
+``foo``, set ``--scope env:foo``). These commands will automatically
+manipulate configuration inline in the ``spack.yaml`` file.
+
"""""""""""""""""""""
Inline configurations
"""""""""""""""""""""
@@ -441,8 +459,8 @@ Environments can include files with either relative or absolute
paths. Inline configurations take precedence over included
configurations, so you don't have to change shared configuration files
to make small changes to an individual Environment. Included configs
-listed later will have higher precedence, as the included configs are
-applied in order.
+listed earlier will have higher precedence, as the included configs are
+applied in reverse order.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Manually Editing the Specs List
@@ -705,6 +723,8 @@ Spack Environment managed views are updated every time the environment
is written out to the lock file ``spack.lock``, so the concrete
environment and the view are always compatible.
+.. _configuring_environment_views:
+
"""""""""""""""""""""""""""""
Configuring environment views
"""""""""""""""""""""""""""""
@@ -712,13 +732,17 @@ Configuring environment views
The Spack Environment manifest file has a top-level keyword
``view``. Each entry under that heading is a view descriptor, headed
by a name. The view descriptor contains the root of the view, and
-optionally the projections for the view, and ``select`` and
-``exclude`` lists for the view. For example, in the following manifest
+optionally the projections for the view, ``select`` and
+``exclude`` lists for the view and link information via ``link`` and
+``link_type``. For example, in the following manifest
file snippet we define a view named ``mpis``, rooted at
``/path/to/view`` in which all projections use the package name,
version, and compiler name to determine the path for a given
package. This view selects all packages that depend on MPI, and
excludes those built with the PGI compiler at version 18.5.
+All the dependencies of each root spec in the environment will be linked
+in the view due to the command ``link: all`` and the files in the view will
+be symlinks to the spack install directories.
.. code-block:: yaml
@@ -731,11 +755,16 @@ excludes those built with the PGI compiler at version 18.5.
exclude: ['%pgi@18.5']
projections:
all: {name}/{version}-{compiler.name}
+ link: all
+ link_type: symlink
For more information on using view projections, see the section on
:ref:`adding_projections_to_views`. The default for the ``select`` and
``exclude`` values is to select everything and exclude nothing. The
-default projection is the default view projection (``{}``).
+default projection is the default view projection (``{}``). The ``link``
+defaults to ``all`` but can also be ``roots`` when only the root specs
+in the environment are desired in the view. The ``link_type`` defaults
+to ``symlink`` but can also take the value of ``hardlink`` or ``copy``.
Any number of views may be defined under the ``view`` heading in a
Spack Environment.
diff --git a/lib/spack/docs/extensions.rst b/lib/spack/docs/extensions.rst
index 15c59c76ef..b0cb38d00b 100644
--- a/lib/spack/docs/extensions.rst
+++ b/lib/spack/docs/extensions.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/features.rst b/lib/spack/docs/features.rst
index df212c11fc..7edfba01cc 100644
--- a/lib/spack/docs/features.rst
+++ b/lib/spack/docs/features.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/getting_started.rst b/lib/spack/docs/getting_started.rst
index 09cc2c488a..ba5b93a567 100644
--- a/lib/spack/docs/getting_started.rst
+++ b/lib/spack/docs/getting_started.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -9,21 +9,16 @@
Getting Started
===============
--------------
-Prerequisites
--------------
+--------------------
+System Prerequisites
+--------------------
-Spack has the following minimum requirements, which must be installed
-before Spack is run:
+Spack has the following minimum system requirements, which are assumed to
+be present on the machine where Spack is run:
-#. Python 2 (2.6 or 2.7) or 3 (3.5 - 3.9) to run Spack
-#. A C/C++ compiler for building
-#. The ``make`` executable for building
-#. The ``tar``, ``gzip``, ``bzip2``, ``xz`` and optionally ``zstd``
- executables for extracting source code
-#. The ``patch`` command to apply patches
-#. The ``git`` and ``curl`` commands for fetching
-#. If using the ``gpg`` subcommand, ``gnupg2`` is required
+.. csv-table:: System prerequisites for Spack
+ :file: tables/system_prerequisites.csv
+ :header-rows: 1
These requirements can be easily installed on most modern Linux systems;
on macOS, XCode is required. Spack is designed to run on HPC
@@ -40,7 +35,7 @@ Getting Spack is easy. You can clone it from the `github repository
.. code-block:: console
- $ git clone https://github.com/spack/spack.git
+ $ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
This will create a directory called ``spack``.
@@ -70,67 +65,152 @@ Sourcing these files will put the ``spack`` command in your ``PATH``, set
up your ``MODULEPATH`` to use Spack's packages, and add other useful
shell integration for :ref:`certain commands <packaging-shell-support>`,
:ref:`environments <environments>`, and :ref:`modules <modules>`. For
-``bash``, it also sets up tab completion.
+``bash`` and ``zsh``, it also sets up tab completion.
+
+In order to know which directory to add to your ``MODULEPATH``, these scripts
+query the ``spack`` command. On shared filesystems, this can be a bit slow,
+especially if you log in frequently. If you don't use modules, or want to set
+``MODULEPATH`` manually instead, you can set the ``SPACK_SKIP_MODULES``
+environment variable to skip this step and speed up sourcing the file.
If you do not want to use Spack's shell support, you can always just run
the ``spack`` command directly from ``spack/bin/spack``.
+When the ``spack`` command is executed it searches for an appropriate
+Python interpreter to use, which can be explicitly overridden by setting
+the ``SPACK_PYTHON`` environment variable. When sourcing the appropriate shell
+setup script, ``SPACK_PYTHON`` will be set to the interpreter found at
+sourcing time, ensuring future invocations of the ``spack`` command will
+continue to use the same consistent python version regardless of changes in
+the environment.
-^^^^^^^^^^^^^^^^^^
-Check Installation
-^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^
+Bootstrapping clingo
+^^^^^^^^^^^^^^^^^^^^
-With Spack installed, you should be able to run some basic Spack
-commands. For example:
+Spack uses ``clingo`` under the hood to resolve optimal versions and variants of
+dependencies when installing a package. Since ``clingo`` itself is a binary,
+Spack has to install it on initial use, which is called bootstrapping.
-.. command-output:: spack spec netcdf-c
+Spack provides two ways of bootstrapping ``clingo``: from pre-built binaries
+(default), or from sources. The fastest way to get started is to bootstrap from
+pre-built binaries.
-In theory, Spack doesn't need any additional installation; just
-download and run! But in real life, additional steps are usually
-required before Spack can work in a practical sense. Read on...
+.. note::
-^^^^^^^^^^^^^^^^^
-Clean Environment
-^^^^^^^^^^^^^^^^^
+ When bootstrapping from pre-built binaries, Spack currently requires
+ ``patchelf`` on Linux and ``otool`` on macOS. If ``patchelf`` is not in the
+ ``PATH``, Spack will build it from sources, and a C++ compiler is required.
-Many packages' installs can be broken by changing environment
-variables. For example, a package might pick up the wrong build-time
-dependencies (most of them not specified) depending on the setting of
-``PATH``. ``GCC`` seems to be particularly vulnerable to these issues.
+The first time you concretize a spec, Spack will bootstrap in the background:
-Therefore, it is recommended that Spack users run with a *clean
-environment*, especially for ``PATH``. Only software that comes with
-the system, or that you know you wish to use with Spack, should be
-included. This procedure will avoid many strange build errors.
+.. code-block:: console
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Optional: Bootstrapping clingo
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ $ time spack spec zlib
+ Input spec
+ --------------------------------
+ zlib
+
+ Concretized
+ --------------------------------
+ zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-zen
-Spack supports using clingo as an external solver to compute which software
-needs to be installed. If you have a default compiler supporting C++14 Spack
-can automatically bootstrap this tool from sources the first time it is
-needed:
+ real 0m20.023s
+ user 0m18.351s
+ sys 0m0.784s
+
+After this command you'll see that ``clingo`` has been installed for Spack's own use:
.. code-block:: console
- $ spack solve zlib
+ $ spack find -b
+ ==> Showing internal bootstrap store at "/root/.spack/bootstrap/store"
+ ==> 3 installed packages
+ -- linux-rhel5-x86_64 / gcc@9.3.0 -------------------------------
+ clingo-bootstrap@spack python@3.6
+
+ -- linux-ubuntu18.04-zen / gcc@7.5.0 ----------------------------
+ patchelf@0.13
+
+Subsequent calls to the concretizer will then be much faster:
+
+.. code-block:: console
+
+ $ time spack spec zlib
+ [ ... ]
+ real 0m0.490s
+ user 0m0.431s
+ sys 0m0.041s
+
+
+If for security concerns you cannot bootstrap ``clingo`` from pre-built
+binaries, you have to mark this bootstrapping method as untrusted. This makes
+Spack fall back to bootstrapping from sources:
+
+.. code-block:: console
+
+ $ spack bootstrap untrust github-actions
+ ==> "github-actions" is now untrusted and will not be used for bootstrapping
+
+You can verify that the new settings are effective with:
+
+.. code-block:: console
+
+ $ spack bootstrap list
+ Name: github-actions UNTRUSTED
+
+ Type: buildcache
+
+ Info:
+ url: https://mirror.spack.io/bootstrap/github-actions/v0.1
+ homepage: https://github.com/alalazo/spack-bootstrap-mirrors
+ releases: https://github.com/alalazo/spack-bootstrap-mirrors/releases
+
+ Description:
+ Buildcache generated from a public workflow using Github Actions.
+ The sha256 checksum of binaries is checked before installation.
+
+
+ Name: spack-install TRUSTED
+
+ Type: install
+
+ Description:
+ Specs built from sources by Spack. May take a long time.
+
+.. note::
+
+ When bootstrapping from sources, Spack requires a full install of Python
+ including header files (e.g. ``python3-dev`` on Debian), and a compiler
+ with support for C++14 (GCC on Linux, Apple Clang on macOS) and static C++
+ standard libraries on Linux.
+
+Spack will build the required software on the first request to concretize a spec:
+
+.. code-block:: console
+
+ $ spack spec zlib
[+] /usr (external bison-3.0.4-wu5pgjchxzemk5ya2l3ddqug2d7jv6eb)
[+] /usr (external cmake-3.19.4-a4kmcfzxxy45mzku4ipmj5kdiiz5a57b)
[+] /usr (external python-3.6.9-x4fou4iqqlh5ydwddx3pvfcwznfrqztv)
==> Installing re2c-1.2.1-e3x6nxtk3ahgd63ykgy44mpuva6jhtdt
[ ... ]
- ==> Optimization: [0, 0, 0, 0, 0, 1, 0, 0, 0]
zlib@1.2.11%gcc@10.1.0+optimize+pic+shared arch=linux-ubuntu18.04-broadwell
-If you want to speed-up bootstrapping, you may try to search for ``cmake`` and ``bison``
-on your system:
+.. tip::
-.. code-block:: console
+ If you want to speed-up bootstrapping ``clingo`` from sources, you may try to
+ search for ``cmake`` and ``bison`` on your system:
- $ spack external find cmake bison
- ==> The following specs have been detected on this system and added to /home/spack/.spack/packages.yaml
- bison@3.0.4 cmake@3.19.4
+ .. code-block:: console
+
+ $ spack external find cmake bison
+ ==> The following specs have been detected on this system and added to /home/spack/.spack/packages.yaml
+ bison@3.0.4 cmake@3.19.4
+
+"""""""""""""""""""
+The Bootstrap Store
+"""""""""""""""""""
All the tools Spack needs for its own functioning are installed in a separate store, which lives
under the ``${HOME}/.spack`` directory. The software installed there can be queried with:
@@ -150,6 +230,33 @@ In case it's needed the bootstrap store can also be cleaned with:
$ spack clean -b
==> Removing software in "/home/spack/.spack/bootstrap/store"
+^^^^^^^^^^^^^^^^^^
+Check Installation
+^^^^^^^^^^^^^^^^^^
+
+With Spack installed, you should be able to run some basic Spack
+commands. For example:
+
+.. command-output:: spack spec netcdf-c
+
+In theory, Spack doesn't need any additional installation; just
+download and run! But in real life, additional steps are usually
+required before Spack can work in a practical sense. Read on...
+
+^^^^^^^^^^^^^^^^^
+Clean Environment
+^^^^^^^^^^^^^^^^^
+
+Many packages' installs can be broken by changing environment
+variables. For example, a package might pick up the wrong build-time
+dependencies (most of them not specified) depending on the setting of
+``PATH``. ``GCC`` seems to be particularly vulnerable to these issues.
+
+Therefore, it is recommended that Spack users run with a *clean
+environment*, especially for ``PATH``. Only software that comes with
+the system, or that you know you wish to use with Spack, should be
+included. This procedure will avoid many strange build errors.
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
Optional: Alternate Prefix
^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -353,6 +460,34 @@ then inject those flags into the compiler command. Compiler flags
entered from the command line will be discussed in more detail in the
following section.
+Some compilers also require additional environment configuration.
+Examples include Intels oneAPI and AMDs AOCC compiler suites,
+which have custom scripts for loading environment variables and setting paths.
+These variables should be specified in the ``environment`` section of the compiler
+specification. The operations available to modify the environment are ``set``, ``unset``,
+``prepend_path``, ``append_path``, and ``remove_path``. For example:
+
+.. code-block:: yaml
+
+ compilers:
+ - compiler:
+ modules: []
+ operating_system: centos6
+ paths:
+ cc: /opt/intel/oneapi/compiler/latest/linux/bin/icx
+ cxx: /opt/intel/oneapi/compiler/latest/linux/bin/icpx
+ f77: /opt/intel/oneapi/compiler/latest/linux/bin/ifx
+ fc: /opt/intel/oneapi/compiler/latest/linux/bin/ifx
+ spec: oneapi@latest
+ environment:
+ set:
+ MKL_ROOT: "/path/to/mkl/root"
+ unset: # A list of environment variables to unset
+ - CC
+ prepend_path: # Similar for append|remove_path
+ LD_LIBRARY_PATH: /ld/paths/added/by/setvars/sh
+
+
^^^^^^^^^^^^^^^^^^^^^^^
Build Your Own Compiler
^^^^^^^^^^^^^^^^^^^^^^^
@@ -507,8 +642,9 @@ Fortran.
#. Run ``spack compiler find`` to locate Clang.
#. There are different ways to get ``gfortran`` on macOS. For example, you can
- install GCC with Spack (``spack install gcc``) or with Homebrew
- (``brew install gcc``).
+ install GCC with Spack (``spack install gcc``), with Homebrew (``brew install
+ gcc``), or from a `DMG installer
+ <https://github.com/fxcoudert/gfortran-for-macOS/releases>`_.
#. The only thing left to do is to edit ``~/.spack/darwin/compilers.yaml`` to provide
the path to ``gfortran``:
@@ -529,7 +665,8 @@ Fortran.
If you used Spack to install GCC, you can get the installation prefix by
``spack location -i gcc`` (this will only work if you have a single version
of GCC installed). Whereas for Homebrew, GCC is installed in
- ``/usr/local/Cellar/gcc/x.y.z``.
+ ``/usr/local/Cellar/gcc/x.y.z``. With the DMG installer, the correct path
+ will be ``/usr/local/gfortran``.
^^^^^^^^^^^^^^^^^^^^^
Compiler Verification
@@ -763,7 +900,7 @@ an OpenMPI installed in /opt/local, one would use:
buildable: False
In general, Spack is easier to use and more reliable if it builds all of
-its own dependencies. However, there are two packages for which one
+its own dependencies. However, there are several packages for which one
commonly needs to use system versions:
^^^
@@ -1111,6 +1248,33 @@ Secret keys may also be later exported using the
<https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged>`_
provides a good overview of sources of randomness.
+Here is an example of creating a key. Note that we provide a name for the key first
+(which we can use to reference the key later) and an email address:
+
+.. code-block:: console
+
+ $ spack gpg create dinosaur dinosaur@thedinosaurthings.com
+
+
+If you want to export the key as you create it:
+
+
+.. code-block:: console
+
+ $ spack gpg create --export key.pub dinosaur dinosaur@thedinosaurthings.com
+
+Or the private key:
+
+
+.. code-block:: console
+
+ $ spack gpg create --export-secret key.priv dinosaur dinosaur@thedinosaurthings.com
+
+
+You can include both ``--export`` and ``--export-secret``, each with
+an output file of choice, to export both.
+
+
^^^^^^^^^^^^
Listing keys
^^^^^^^^^^^^
@@ -1119,7 +1283,22 @@ In order to list the keys available in the keyring, the
``spack gpg list`` command will list trusted keys with the ``--trusted`` flag
and keys available for signing using ``--signing``. If you would like to
remove keys from your keyring, ``spack gpg untrust <keyid>``. Key IDs can be
-email addresses, names, or (best) fingerprints.
+email addresses, names, or (best) fingerprints. Here is an example of listing
+the key that we just created:
+
+.. code-block:: console
+
+ gpgconf: socketdir is '/run/user/1000/gnupg'
+ /home/spackuser/spack/opt/spack/gpg/pubring.kbx
+ ----------------------------------------------------------
+ pub rsa4096 2021-03-25 [SC]
+ 60D2685DAB647AD4DB54125961E09BB6F2A0ADCB
+ uid [ultimate] dinosaur (GPG created for Spack) <dinosaur@thedinosaurthings.com>
+
+
+Note that the name "dinosaur" can be seen under the uid, which is the unique
+id. We might need this reference if we want to export or otherwise reference the key.
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Signing and Verifying Packages
@@ -1134,6 +1313,38 @@ may also be used to create a signed file which contains the contents, but it
is not recommended. Signed packages may be verified by using
``spack gpg verify <file>``.
+
+^^^^^^^^^^^^^^
+Exporting Keys
+^^^^^^^^^^^^^^
+
+You likely might want to export a public key, and that looks like this. Let's
+use the previous example and ask spack to export the key with uid "dinosaur."
+We will provide an output location (typically a `*.pub` file) and the name of
+the key.
+
+.. code-block:: console
+
+ $ spack gpg export dinosaur.pub dinosaur
+
+You can then look at the created file, `dinosaur.pub`, to see the exported key.
+If you want to include the private key, then just add `--secret`:
+
+.. code-block:: console
+
+ $ spack gpg export --secret dinosaur.priv dinosaur
+
+This will write the private key to the file `dinosaur.priv`.
+
+.. warning::
+
+ You should be very careful about exporting private keys. You likely would
+ only want to do this in the context of moving your spack installation to
+ a different server, and wanting to preserve keys for a buildcache. If you
+ are unsure about exporting, you can ask your local system administrator
+ or for help on an issue or the Spack slack.
+
+
.. _cray-support:
-------------
diff --git a/lib/spack/docs/index.rst b/lib/spack/docs/index.rst
index 39fee81387..dcebcdfb33 100644
--- a/lib/spack/docs/index.rst
+++ b/lib/spack/docs/index.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -39,7 +39,7 @@ package:
.. code-block:: console
- $ git clone https://github.com/spack/spack.git
+ $ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
$ cd spack/bin
$ ./spack install libelf
@@ -67,6 +67,7 @@ or refer to the full manual below.
build_settings
environments
containers
+ monitoring
mirrors
module_file_support
repositories
@@ -79,6 +80,12 @@ or refer to the full manual below.
.. toctree::
:maxdepth: 2
+ :caption: Research
+
+ analyze
+
+.. toctree::
+ :maxdepth: 2
:caption: Contributing
contribution_guide
diff --git a/lib/spack/docs/known_issues.rst b/lib/spack/docs/known_issues.rst
index accec2422b..b9c4dd088f 100644
--- a/lib/spack/docs/known_issues.rst
+++ b/lib/spack/docs/known_issues.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/mirrors.rst b/lib/spack/docs/mirrors.rst
index 5268c87067..83d4fd9512 100644
--- a/lib/spack/docs/mirrors.rst
+++ b/lib/spack/docs/mirrors.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -159,6 +159,27 @@ can supply a file with specs in it, one per line:
This is useful if there is a specific suite of software managed by
your site.
+^^^^^^^^^^^^^^^^^^
+Mirror environment
+^^^^^^^^^^^^^^^^^^
+
+To create a mirror of all packages required by a concerte environment, activate the environment and call ``spack mirror create -a``.
+This is especially useful to create a mirror of an environment concretized on another machine.
+
+.. code-block:: console
+
+ [remote] $ spack env create myenv
+ [remote] $ spack env activate myenv
+ [remote] $ spack add ...
+ [remote] $ spack concretize
+
+ $ sftp remote:/spack/var/environment/myenv/spack.lock
+ $ spack env create myenv spack.lock
+ $ spack env activate myenv
+ $ spack mirror create -a
+
+
+
.. _cmd-spack-mirror-add:
--------------------
diff --git a/lib/spack/docs/module_file_support.rst b/lib/spack/docs/module_file_support.rst
index 721b18d5fc..029c6dbbbd 100644
--- a/lib/spack/docs/module_file_support.rst
+++ b/lib/spack/docs/module_file_support.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -71,9 +71,24 @@ Module file customization
-------------------------
Module files are generated by post-install hooks after the successful
-installation of a package. The table below summarizes the essential
-information associated with the different file formats
-that can be generated by Spack:
+installation of a package.
+
+.. note::
+
+ Spack only generates modulefiles when a package is installed. If
+ you attempt to install a package and it is already installed, Spack
+ will not regenerate modulefiles for the package. This may to
+ inconsistent modulefiles if the Spack module configuration has
+ changed since the package was installed, either by editing a file
+ or changing scopes or environments.
+
+ Later in this section there is a subsection on :ref:`regenerating
+ modules <cmd-spack-module-refresh>` that will allow you to bring
+ your modules to a consistent state.
+
+The table below summarizes the essential information associated with
+the different file formats that can be generated by Spack:
+
+-----------------------------+--------------------+-------------------------------+----------------------------------------------+----------------------+
| | **Hook name** | **Default root directory** | **Default template file** | **Compatible tools** |
@@ -130,9 +145,8 @@ list of environment modifications.
to the corresponding environment variables:
================== =================================
- LIBRARY_PATH ``self.prefix/rlib/R/lib``
LD_LIBRARY_PATH ``self.prefix/rlib/R/lib``
- CPATH ``self.prefix/rlib/R/include``
+ PKG_CONFIG_PATH ``self.prefix/rlib/pkgconfig``
================== =================================
with the following snippet:
@@ -164,6 +178,46 @@ the installation folder of each package for the presence of a set of subdirector
(``bin``, ``man``, ``share/man``, etc.). If any is found its full path is prepended
to the environment variables listed below the folder name.
+Spack modules can be configured for multiple module sets. The default
+module set is named ``default``. All Spack commands which operate on
+modules default to apply the ``default`` module set, but can be
+applied to any module set in the configuration. Settings applied at
+the root of the configuration (e.g. ``modules:enable`` rather than
+``modules:default:enable``) are applied to the default module set for
+backwards compatibility.
+
+"""""""""""""""""""""""""
+Changing the modules root
+"""""""""""""""""""""""""
+
+As shown in the table above, the default module root for ``lmod`` is
+``$spack/share/spack/lmod`` and the default root for ``tcl`` is
+``$spack/share/spack/modules``. This can be overridden for any module
+set by changing the ``roots`` key of the configuration.
+
+.. code-block:: yaml
+
+ modules:
+ default:
+ roots:
+ tcl: /path/to/install/tcl/modules
+ my_custom_lmod_modules:
+ roots:
+ lmod: /path/to/install/custom/lmod/modules
+ ...
+
+This configuration will create two module sets. The default module set
+will install its ``tcl`` modules to ``/path/to/install/tcl/modules``
+(and still install its lmod modules, if any, to the default
+location). The set ``my_custom_lmod_modules`` will install its lmod
+modules to ``/path/to/install/custom/lmod/modules`` (and still install
+its tcl modules, if any, to the default location).
+
+Obviously, having multiple module sets install modules to the default
+location could be confusing to users of your modules. In the next
+section, we will discuss enabling and disabling module types (module
+file generators) for each module set.
+
""""""""""""""""""""
Activate other hooks
""""""""""""""""""""
@@ -179,13 +233,14 @@ to the generator being customized:
.. code-block:: yaml
modules:
- enable:
- - tcl
- - lmod
- tcl:
- # contains environment modules specific customizations
- lmod:
- # contains lmod specific customizations
+ default:
+ enable:
+ - tcl
+ - lmod
+ tcl:
+ # contains environment modules specific customizations
+ lmod:
+ # contains lmod specific customizations
In general, the configuration options that you can use in ``modules.yaml`` will
either change the layout of the module files on the filesystem, or they will affect
@@ -400,10 +455,16 @@ that are already in the LMod hierarchy.
Customize environment modifications
"""""""""""""""""""""""""""""""""""
-You can control which prefixes in a Spack package are added to environment
-variables with the ``prefix_inspections`` section; this section maps relative
-prefixes to the list of environment variables which should be updated with
-those prefixes.
+You can control which prefixes in a Spack package are added to
+environment variables with the ``prefix_inspections`` section; this
+section maps relative prefixes to the list of environment variables
+which should be updated with those prefixes.
+
+The ``prefix_inspections`` configuration is different from other
+settings in that a ``prefix_inspections`` configuration at the
+``modules`` level of the configuration file applies to all module
+sets. This allows users to make general overrides to the default
+inspections and customize them per-module-set.
.. code-block:: yaml
@@ -416,10 +477,66 @@ those prefixes.
'':
- CMAKE_PREFIX_PATH
-In this case, for a Spack package ``foo`` installed to ``/spack/prefix/foo``,
-the generated module file for ``foo`` would update ``PATH`` to contain
+Prefix inspections are only applied if the relative path inside the
+installation prefix exists. In this case, for a Spack package ``foo``
+installed to ``/spack/prefix/foo``, if ``foo`` installs executables to
+``bin`` but no libraries in ``lib``, the generated module file for
+``foo`` would update ``PATH`` to contain ``/spack/prefix/foo/bin`` and
+``CMAKE_PREFIX_PATH`` to contain ``/spack/prefix/foo``, but would not
+update ``LIBRARY_PATH``.
+
+There is a special case for prefix inspections relative to environment
+views. If all of the following conditions hold for a module set
+configuration:
+
+#. The configuration is for an :ref:`environment <environments>` and
+ will never be applied outside the environment,
+#. The environment in question is configured to use a :ref:`view
+ <filesystem-views>`,
+#. The :ref:`environment view is configured
+ <configuring_environment_views>` with a projection that ensures
+ every package is linked to a unique directory,
+
+then the module set may be configured to create modules relative to
+the environment view. This is specified by the ``use_view``
+configuration option in the module set. If ``True``, the module set is
+constructed relative to the default view of the
+environment. Otherwise, the value must be the name of the environment
+view relative to which to construct modules, or ``False-ish`` to
+disable the feature explicitly (the default is ``False``).
+
+If the ``use_view`` value is set in the config, then the prefix
+inspections for the package are done relative to the package's path in
+the view.
+
+.. code-block:: yaml
+
+ spack:
+ modules:
+ view_relative_modules:
+ use_view: my_view
+ prefix_inspections:
+ bin:
+ - PATH
+ view:
+ my_view:
+ projections:
+ root: /path/to/my/view
+ all: '{name}-{hash}'
+
+The ``spack`` key is relevant to :ref:`environment <environments>`
+configuration, and the view key is discussed in detail in the section
+on :ref:`Configuring environment views
+<configuring_environment_views>`. With this configuration the
+generated module for package ``foo`` would set ``PATH`` to include
+``/path/to/my/view/foo-<hash>/bin`` instead of
``/spack/prefix/foo/bin``.
+The ``use_view`` option is useful when deploying a large software
+stack to users who are likely to inspect the modules to find full
+paths to software, when it is desirable to present the users with a
+simpler set of paths than those generated by the Spack install tree.
+
""""""""""""""""""""""""""""""""""""
Filter out environment modifications
""""""""""""""""""""""""""""""""""""
diff --git a/lib/spack/docs/monitoring.rst b/lib/spack/docs/monitoring.rst
new file mode 100644
index 0000000000..41c79cf2b6
--- /dev/null
+++ b/lib/spack/docs/monitoring.rst
@@ -0,0 +1,265 @@
+.. Copyright 2013-2021 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)
+
+.. _monitoring:
+
+==========
+Monitoring
+==========
+
+You can use a `spack monitor <https://github.com/spack/spack-monitor>`_ "Spackmon"
+server to store a database of your packages, builds, and associated metadata
+for provenance, research, or some other kind of development. You should
+follow the instructions in the `spack monitor documentation <https://spack-monitor.readthedocs.org>`_
+to first create a server along with a username and token for yourself.
+You can then use this guide to interact with the server.
+
+-------------------
+Analysis Monitoring
+-------------------
+
+To read about how to monitor an analysis (meaning you want to send analysis results
+to a server) see :ref:`analyze_monitoring`.
+
+---------------------
+Monitoring An Install
+---------------------
+
+Since an install is typically when you build packages, we logically want
+to tell spack to monitor during this step. Let's start with an example
+where we want to monitor the install of hdf5. Unless you have disabled authentication
+for the server, we first want to export our spack monitor token and username to the environment:
+
+.. code-block:: console
+
+ $ export SPACKMON_TOKEN=50445263afd8f67e59bd79bff597836ee6c05438
+ $ export SPACKMON_USER=spacky
+
+
+By default, the host for your server is expected to be at ``http://127.0.0.1``
+with a prefix of ``ms1``, and if this is the case, you can simply add the
+``--monitor`` flag to the install command:
+
+.. code-block:: console
+
+ $ spack install --monitor hdf5
+
+
+If you need to customize the host or the prefix, you can do that as well:
+
+.. code-block:: console
+
+ $ spack install --monitor --monitor-prefix monitor --monitor-host https://monitor-service.io hdf5
+
+
+As a precaution, we cut out early in the spack client if you have not provided
+authentication credentials. For example, if you run the command above without
+exporting your username or token, you'll see:
+
+.. code-block:: console
+
+ ==> Error: You are required to export SPACKMON_TOKEN and SPACKMON_USER
+
+This extra check is to ensure that we don't start any builds,
+and then discover that you forgot to export your token. However, if
+your monitoring server has authentication disabled, you can tell this to
+the client to skip this step:
+
+.. code-block:: console
+
+ $ spack install --monitor --monitor-disable-auth hdf5
+
+If the service is not running, you'll cleanly exit early - the install will
+not continue if you've asked it to monitor and there is no service.
+For example, here is what you'll see if the monitoring service is not running:
+
+.. code-block:: console
+
+ [Errno 111] Connection refused
+
+
+If you want to continue builds (and stop monitoring) you can set the ``--monitor-keep-going``
+flag.
+
+.. code-block:: console
+
+ $ spack install --monitor --monitor-keep-going hdf5
+
+This could mean that if a request fails, you only have partial or no data
+added to your monitoring database. This setting will not be applied to the
+first request to check if the server is running, but to subsequent requests.
+If you don't have a monitor server running and you want to build, simply
+don't provide the ``--monitor`` flag! Finally, if you want to provide one or
+more tags to your build, you can do:
+
+.. code-block:: console
+
+ # Add one tag, "pizza"
+ $ spack install --monitor --monitor-tags pizza hdf5
+
+ # Add two tags, "pizza" and "pasta"
+ $ spack install --monitor --monitor-tags pizza,pasta hdf5
+
+
+----------------------------
+Monitoring with Containerize
+----------------------------
+
+The same argument group is available to add to a containerize command.
+
+^^^^^^
+Docker
+^^^^^^
+
+To add monitoring to a Docker container recipe generation using the defaults,
+and assuming a monitor server running on localhost, you would
+start with a spack.yaml in your present working directory:
+
+.. code-block:: yaml
+
+ spack:
+ specs:
+ - samtools
+
+And then do:
+
+.. code-block:: console
+
+ # preview first
+ spack containerize --monitor
+
+ # and then write to a Dockerfile
+ spack containerize --monitor > Dockerfile
+
+
+The install command will be edited to include commands for enabling monitoring.
+However, getting secrets into the container for your monitor server is something
+that should be done carefully. Specifically you should:
+
+ - Never try to define secrets as ENV, ARG, or using ``--build-arg``
+ - Do not try to get the secret into the container via a "temporary" file that you remove (it in fact will still exist in a layer)
+
+Instead, it's recommended to use buildkit `as explained here <https://pythonspeed.com/articles/docker-build-secrets/>`_.
+You'll need to again export environment variables for your spack monitor server:
+
+.. code-block:: console
+
+ $ export SPACKMON_TOKEN=50445263afd8f67e59bd79bff597836ee6c05438
+ $ export SPACKMON_USER=spacky
+
+And then use buildkit along with your build and identifying the name of the secret:
+
+.. code-block:: console
+
+ $ DOCKER_BUILDKIT=1 docker build --secret id=st,env=SPACKMON_TOKEN --secret id=su,env=SPACKMON_USER -t spack/container .
+
+The secrets are expected to come from your environment, and then will be temporarily mounted and available
+at ``/run/secrets/<name>``. If you forget to supply them (and authentication is required) the build
+will fail. If you need to build on your host (and interact with a spack monitor at localhost) you'll
+need to tell Docker to use the host network:
+
+.. code-block:: console
+
+ $ DOCKER_BUILDKIT=1 docker build --network="host" --secret id=st,env=SPACKMON_TOKEN --secret id=su,env=SPACKMON_USER -t spack/container .
+
+
+^^^^^^^^^^^
+Singularity
+^^^^^^^^^^^
+
+To add monitoring to a Singularity container build, the spack.yaml needs to
+be modified slightly to specify wanting a different format:
+
+
+.. code-block:: yaml
+
+ spack:
+ specs:
+ - samtools
+ container:
+ format: singularity
+
+
+Again, generate the recipe:
+
+
+.. code-block:: console
+
+ # preview first
+ $ spack containerize --monitor
+
+ # then write to a Singularity recipe
+ $ spack containerize --monitor > Singularity
+
+
+Singularity doesn't have a direct way to define secrets at build time, so we have
+to do a bit of a manual command to add a file, source secrets in it, and remove it.
+Since Singularity doesn't have layers like Docker, deleting a file will truly
+remove it from the container and history. So let's say we have this file,
+``secrets.sh``:
+
+.. code-block:: console
+
+ # secrets.sh
+ export SPACKMON_USER=spack
+ export SPACKMON_TOKEN=50445263afd8f67e59bd79bff597836ee6c05438
+
+
+We would then generate the Singularity recipe, and add a files section,
+a source of that file at the start of ``%post``, and **importantly**
+a removal of the final at the end of that same section.
+
+.. code-block::
+
+ Bootstrap: docker
+ From: spack/ubuntu-bionic:latest
+ Stage: build
+
+ %files
+ secrets.sh /opt/secrets.sh
+
+ %post
+ . /opt/secrets.sh
+
+ # spack install commands are here
+ ...
+
+ # Don't forget to remove here!
+ rm /opt/secrets.sh
+
+
+You can then build the container as your normally would.
+
+.. code-block:: console
+
+ $ sudo singularity build container.sif Singularity
+
+
+------------------
+Monitoring Offline
+------------------
+
+In the case that you want to save monitor results to your filesystem
+and then upload them later (perhaps you are in an environment where you don't
+have credentials or it isn't safe to use them) you can use the ``--monitor-save-local``
+flag.
+
+.. code-block:: console
+
+ $ spack install --monitor --monitor-save-local hdf5
+
+This will save results in a subfolder, "monitor" in your designated spack
+reports folder, which defaults to ``$HOME/.spack/reports/monitor``. When
+you are ready to upload them to a spack monitor server:
+
+
+.. code-block:: console
+
+ $ spack monitor upload ~/.spack/reports/monitor
+
+
+You can choose the root directory of results as shown above, or a specific
+subdirectory. The command accepts other arguments to specify configuration
+for the monitor.
diff --git a/lib/spack/docs/package_list.rst b/lib/spack/docs/package_list.rst
index 67f78e202d..b0607edb86 100644
--- a/lib/spack/docs/package_list.rst
+++ b/lib/spack/docs/package_list.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
diff --git a/lib/spack/docs/packaging_guide.rst b/lib/spack/docs/packaging_guide.rst
index ec83679a47..3239438bcc 100644
--- a/lib/spack/docs/packaging_guide.rst
+++ b/lib/spack/docs/packaging_guide.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -612,6 +612,63 @@ it executable, then runs it with some arguments.
installer = Executable(self.stage.archive_file)
installer('--prefix=%s' % prefix, 'arg1', 'arg2', 'etc.')
+.. _deprecate:
+
+^^^^^^^^^^^^^^^^^^^^^^^^
+Deprecating old versions
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+There are many reasons to remove old versions of software:
+
+#. Security vulnerabilities (most serious reason)
+#. Changing build systems that increase package complexity
+#. Changing dependencies/patches/resources/flags that increase package complexity
+#. Maintainer/developer inability/unwillingness to support old versions
+#. No longer available for download (right to be forgotten)
+#. Package or version rename
+
+At the same time, there are many reasons to keep old versions of software:
+
+#. Reproducibility
+#. Requirements for older packages (e.g. some packages still rely on Qt 3)
+
+In general, you should not remove old versions from a ``package.py``. Instead,
+you should first deprecate them using the following syntax:
+
+.. code-block:: python
+
+ version('1.2.3', sha256='...', deprecated=True)
+
+
+This has two effects. First, ``spack info`` will no longer advertise that
+version. Second, commands like ``spack install`` that fetch the package will
+require user approval:
+
+.. code-block:: console
+
+ $ spack install openssl@1.0.1e
+ ==> Warning: openssl@1.0.1e is deprecated and may be removed in a future Spack release.
+ ==> Fetch anyway? [y/N]
+
+
+If you use ``spack install --deprecated``, this check can be skipped.
+
+This also applies to package recipes that are renamed or removed. You should
+first deprecate all versions before removing a package. If you need to rename
+it, you can deprecate the old package and create a new package at the same
+time.
+
+Version deprecations should always last at least one Spack minor release cycle
+before the version is completely removed. For example, if a version is
+deprecated in Spack 0.16.0, it should not be removed until Spack 0.17.0. No
+version should be removed without such a deprecation process. This gives users
+a chance to complain about the deprecation in case the old version is needed
+for some application. If you require a deprecated version of a package, simply
+submit a PR to remove ``deprecated=True`` from the package. However, you may be
+asked to help maintain this version of the package if the current maintainers
+are unwilling to support this older version.
+
+
^^^^^^^^^^^^^^^^
Download caching
^^^^^^^^^^^^^^^^
@@ -864,12 +921,13 @@ For some packages, source code is provided in a Version Control System
(VCS) repository rather than in a tarball. Spack can fetch packages
from VCS repositories. Currently, Spack supports fetching with `Git
<git-fetch_>`_, `Mercurial (hg) <hg-fetch_>`_, `Subversion (svn)
-<svn-fetch_>`_, and `Go <go-fetch_>`_. In all cases, the destination
+<svn-fetch_>`_, `CVS (cvs) <cvs-fetch_>`_, and `Go <go-fetch_>`_.
+In all cases, the destination
is the standard stage source path.
To fetch a package from a source repository, Spack needs to know which
VCS to use and where to download from. Much like with ``url``, package
-authors can specify a class-level ``git``, ``hg``, ``svn``, or ``go``
+authors can specify a class-level ``git``, ``hg``, ``svn``, ``cvs``, or ``go``
attribute containing the correct download location.
Many packages developed with Git have both a Git repository as well as
@@ -1117,6 +1175,55 @@ you can check out a branch or tag by changing the URL. If you want to
package multiple branches, simply add a ``svn`` argument to each
version directive.
+.. _cvs-fetch:
+
+^^^
+CVS
+^^^
+
+CVS (Concurrent Versions System) is an old centralized version control
+system. It is a predecessor of Subversion.
+
+To fetch with CVS, use the ``cvs``, branch, and ``date`` parameters.
+The destination directory will be the standard stage source path.
+
+Fetching the head
+ Simply add a ``cvs`` parameter to the package:
+
+ .. code-block:: python
+
+ class Example(Package):
+
+ cvs = ":pserver:outreach.scidac.gov/cvsroot%module=modulename"
+
+ version('1.1.2.4')
+
+ CVS repository locations are described using an older syntax that
+ is different from today's ubiquitous URL syntax. ``:pserver:``
+ denotes the transport method. CVS servers can host multiple
+ repositories (called "modules") at the same location, and one needs
+ to specify both the server location and the module name to access.
+ Spack combines both into one string using the ``%module=modulename``
+ suffix shown above.
+
+ This download method is untrusted.
+
+Fetching a date
+ Versions in CVS are commonly specified by date. To fetch a
+ particular branch or date, add a ``branch`` and/or ``date`` argument
+ to the version directive:
+
+ .. code-block:: python
+
+ version('2021.4.22', branch='branchname', date='2021-04-22')
+
+ Unfortunately, CVS does not identify repository-wide commits via a
+ revision or hash like Subversion, Git, or Mercurial do. This makes
+ it impossible to specify an exact commit to check out.
+
+CVS has more features, but since CVS is rarely used these days, Spack
+does not support all of them.
+
.. _go-fetch:
^^
@@ -1150,8 +1257,8 @@ Variants
Many software packages can be configured to enable optional
features, which often come at the expense of additional dependencies or
-longer build-times. To be flexible enough and support a wide variety of
-use cases, Spack permits to expose to the end-user the ability to choose
+longer build times. To be flexible enough and support a wide variety of
+use cases, Spack allows you to expose to the end-user the ability to choose
which features should be activated in a package at the time it is installed.
The mechanism to be employed is the :py:func:`spack.directives.variant` directive.
@@ -1864,14 +1971,21 @@ of ``mpich`` using the following command:
$ srun -N 2 -n 8 spack install -j 4 mpich@3.3.2
-This will create eight concurrent four-job installation on two different
+This will create eight concurrent, four-job installs on two different
nodes.
+Alternatively, you could run the same installs on one node by entering
+the following at the command line of a bash shell:
+
+.. code-block:: console
+
+ $ for i in {1..12}; do nohup spack install -j 4 mpich@3.3.2 >> mpich_install.txt 2>&1 &; done
+
.. note::
- The effective parallelism will be based on the maximum number of
- packages that can be installed at the same time, which will limited
- by the number of packages with no (remaining) uninstalled dependencies.
+ The effective parallelism is based on the maximum number of packages
+ that can be installed at the same time, which is limited by the
+ number of packages with no (remaining) uninstalled dependencies.
.. _dependencies:
@@ -2662,6 +2776,57 @@ packages be built with MVAPICH and GCC.
See the :ref:`concretization-preferences` section for more details.
+
+.. _group_when_spec:
+
+----------------------------
+Common ``when=`` constraints
+----------------------------
+
+In case a package needs many directives to share the whole ``when=``
+argument, or just part of it, Spack allows you to group the common part
+under a context manager:
+
+.. code-block:: python
+
+ class Gcc(AutotoolsPackage):
+
+ with when('+nvptx'):
+ depends_on('cuda')
+ conflicts('@:6', msg='NVPTX only supported in gcc 7 and above')
+ conflicts('languages=ada')
+ conflicts('languages=brig')
+ conflicts('languages=go')
+
+The snippet above is equivalent to the more verbose:
+
+.. code-block:: python
+
+ class Gcc(AutotoolsPackage):
+
+ depends_on('cuda', when='+nvptx')
+ conflicts('@:6', when='+nvptx', msg='NVPTX only supported in gcc 7 and above')
+ conflicts('languages=ada', when='+nvptx')
+ conflicts('languages=brig', when='+nvptx')
+ conflicts('languages=go', when='+nvptx')
+
+Constraints stemming from the context are added to what is explicitly present in the
+``when=`` argument of a directive, so:
+
+.. code-block:: python
+
+ with when('+elpa'):
+ depends_on('elpa+openmp', when='+openmp')
+
+is equivalent to:
+
+.. code-block:: python
+
+ depends_on('elpa+openmp', when='+openmp+elpa')
+
+Constraints from nested context managers are also added together, but they are rarely
+needed or recommended.
+
.. _install-method:
------------------
@@ -2720,50 +2885,52 @@ The package base class, usually specialized for a given build system, determines
actual set of entities available for overriding.
The classes that are currently provided by Spack are:
- +-------------------------------+----------------------------------+
- | **Base Class** | **Purpose** |
- +===============================+==================================+
- | :py:class:`.Package` | General base class not |
- | | specialized for any build system |
- +-------------------------------+----------------------------------+
- | :py:class:`.MakefilePackage` | Specialized class for packages |
- | | built invoking |
- | | hand-written Makefiles |
- +-------------------------------+----------------------------------+
- | :py:class:`.AutotoolsPackage` | Specialized class for packages |
- | | built using GNU Autotools |
- +-------------------------------+----------------------------------+
- | :py:class:`.CMakePackage` | Specialized class for packages |
- | | built using CMake |
- +-------------------------------+----------------------------------+
- | :py:class:`.CudaPackage` | A helper class for packages that |
- | | use CUDA. It is intended to be |
- | | used in combination with others |
- +-------------------------------+----------------------------------+
- | :py:class:`.QMakePackage` | Specialized class for packages |
- | | build using QMake |
- +-------------------------------+----------------------------------+
- | :py:class:`.SConsPackage` | Specialized class for packages |
- | | built using SCons |
- +-------------------------------+----------------------------------+
- | :py:class:`.WafPackage` | Specialized class for packages |
- | | built using Waf |
- +-------------------------------+----------------------------------+
- | :py:class:`.RPackage` | Specialized class for |
- | | :py:class:`.R` extensions |
- +-------------------------------+----------------------------------+
- | :py:class:`.OctavePackage` | Specialized class for |
- | | :py:class:`.Octave` packages |
- +-------------------------------+----------------------------------+
- | :py:class:`.PythonPackage` | Specialized class for |
- | | :py:class:`.Python` extensions |
- +-------------------------------+----------------------------------+
- | :py:class:`.PerlPackage` | Specialized class for |
- | | :py:class:`.Perl` extensions |
- +-------------------------------+----------------------------------+
- | :py:class:`.IntelPackage` | Specialized class for licensed |
- | | Intel software |
- +-------------------------------+----------------------------------+
++-------------------------=--------------------------------+----------------------------------+
+| **Base Class** | **Purpose** |
++==========================================================+==================================+
+| :class:`~spack.package.Package` | General base class not |
+| | specialized for any build system |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.makefile.MakefilePackage` | Specialized class for packages |
+| | built invoking |
+| | hand-written Makefiles |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.autotools.AutotoolsPackage` | Specialized class for packages |
+| | built using GNU Autotools |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.cmake.CMakePackage` | Specialized class for packages |
+| | built using CMake |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.cuda.CudaPackage` | A helper class for packages that |
+| | use CUDA |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.qmake.QMakePackage` | Specialized class for packages |
+| | built using QMake |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.rocm.ROCmPackage` | A helper class for packages that |
+| | use ROCm |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.scons.SConsPackage` | Specialized class for packages |
+| | built using SCons |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.waf.WafPackage` | Specialized class for packages |
+| | built using Waf |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.r.RPackage` | Specialized class for |
+| | R extensions |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.octave.OctavePackage` | Specialized class for |
+| | Octave packages |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.python.PythonPackage` | Specialized class for |
+| | Python extensions |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.perl.PerlPackage` | Specialized class for |
+| | Perl extensions |
++----------------------------------------------------------+----------------------------------+
+| :class:`~spack.build_systems.intel.IntelPackage` | Specialized class for licensed |
+| | Intel software |
++----------------------------------------------------------+----------------------------------+
.. note::
@@ -2773,7 +2940,7 @@ The classes that are currently provided by Spack are:
rare cases where manual intervention is needed we need to stress that a
package base class depends on the *build system* being used, not the language of the package.
For example, a Python extension installed with CMake would ``extends('python')`` and
- subclass from :py:class:`.CMakePackage`.
+ subclass from :class:`~spack.build_systems.cmake.CMakePackage`.
^^^^^^^^^^^^^^^^^^^^^
Installation pipeline
@@ -3846,219 +4013,872 @@ using MPI wrappers will work, even on even on a Cray:
This is because on Cray, ``spec['mpi'].mpicc`` is just ``spack_cc``.
-.. _sanity-checks:
+.. _checking_an_installation:
------------------------
Checking an installation
------------------------
-By default, Spack assumes that a build has failed if nothing is
-written to the install prefix, and that it has succeeded if anything
-(a file, a directory, etc.) is written to the install prefix after
-``install()`` completes.
+A package that *appears* to install successfully does not mean
+it is actually installed correctly or will continue to work indefinitely.
+There are a number of possible points of failure so Spack provides
+features for checking the software along the way.
+
+Failures can occur during and after the installation process. The
+build may start but the software not end up fully installed. The
+installed software may not work at all or as expected. The software
+may work after being installed but, due to changes on the system,
+may stop working days, weeks, or months after being installed.
+
+This section describes Spack's support for checks that can be performed
+during and after its installation. The former checks are referred to as
+``build-time tests`` and the latter as ``stand-alone (or smoke) tests``.
+
+.. _build_time-tests:
+
+^^^^^^^^^^^^^^^^
+Build-time tests
+^^^^^^^^^^^^^^^^
-Consider a simple autotools build like this:
+Spack infers the status of a build based on the contents of the install
+prefix. Success is assumed if anything (e.g., a file, directory) is
+written after ``install()`` completes. Otherwise, the build is assumed
+to have failed. However, the presence of install prefix contents
+is not a sufficient indicator of success.
+
+Consider a simple autotools build using the following commands:
+
+.. code-block:: console
+
+ $ ./configure --prefix=/path/to/installation/prefix
+ $ make
+ $ make install
+
+Standard Autotools and CMake do not write anything to the prefix from
+the ``configure`` and ``make`` commands. Files are only written from
+the ``make install`` after the build completes.
+
+.. note::
+
+ If you want to learn more about ``Autotools`` and ``CMake`` packages
+ in Spack, refer to :ref:`AutotoolsPackage <autotoolspackage>` and
+ :ref:`CMakePackage <cmakepackage>`, respectively.
+
+What can you do to check that the build is progressing satisfactorily?
+If there are specific files and or directories expected of a successful
+installation, you can add basic, fast ``sanity checks``. You can also add
+checks to be performed after one or more installation phases.
+
+.. _sanity-checks:
+
+""""""""""""""""""""
+Adding sanity checks
+""""""""""""""""""""
+
+Unfortunately, many builds of scientific software modify the installation
+prefix **before** ``make install``. Builds like this can falsely report
+success when an error occurs before the installation is complete. Simple
+sanity checks can be used to identify files and or directories that are
+required of a successful installation. Spack checks for the presence of
+the files and directories after ``install()`` runs.
+
+If any of the listed files or directories are missing, then the build will
+fail and the install prefix will be removed. If they all exist, then Spack
+considers the build successful from a sanity check perspective and keeps
+the prefix in place.
+
+For example, the sanity checks for the ``reframe`` package below specify
+that eight paths must exist within the installation prefix after the
+``install`` method completes.
.. code-block:: python
- def install(self, spec, prefix):
- configure("--prefix={0}".format(prefix))
- make()
- make("install")
+ class Reframe(Package):
+ ...
+
+ # sanity check
+ sanity_check_is_file = [join_path('bin', 'reframe')]
+ sanity_check_is_dir = ['bin', 'config', 'docs', 'reframe', 'tutorials',
+ 'unittests', 'cscs-checks']
+
+Spack will then ensure the installation created the **file**:
+
+* ``self.prefix/bin/reframe``
+
+It will also check for the existence of the following **directories**:
+
+* ``self.prefix/bin``
+* ``self.prefix/config``
+* ``self.prefix/docs``
+* ``self.prefix/reframe``
+* ``self.prefix/tutorials``
+* ``self.prefix/unittests``
+* ``self.prefix/cscs-checks``
+
+.. note::
+
+ You **MUST** use ``sanity_check_is_file`` to specify required
+ files and ``sanity_check_is_dir`` for required directories.
+
+.. _install_phase-tests:
+
+"""""""""""""""""""""""""""""""
+Adding installation phase tests
+"""""""""""""""""""""""""""""""
+
+Sometimes packages appear to build "correctly" only to have run-time
+behavior issues discovered at a later stage, such as after a full
+software stack relying on them has been built. Checks can be performed
+at different phases of the package installation to possibly avoid
+these types of problems. Some checks are built-in to different build
+systems, while others will need to be added to the package.
+
+Built-in installation phase tests are provided by packages inheriting
+from select :ref:`build systems <build-systems>`, where naming conventions
+are used to identify typical test identifiers for those systems. In
+general, you won't need to add anything to your package to take advantage
+of these tests if your software's build system complies with the convention;
+otherwise, you'll want or need to override the post-phase method to perform
+other checks.
+
+.. list-table:: Built-in installation phase tests
+ :header-rows: 1
+
+ * - Build System Class
+ - Post-Build Phase Method (Runs)
+ - Post-Install Phase Method (Runs)
+ * - :ref:`AutotoolsPackage <autotoolspackage>`
+ - ``check`` (``make test``, ``make check``)
+ - ``installcheck`` (``make installcheck``)
+ * - :ref:`CMakePackage <cmakepackage>`
+ - ``check`` (``make check``, ``make test``)
+ - Not applicable
+ * - :ref:`MakefilePackage <makefilepackage>`
+ - ``check`` (``make test``, ``make check``)
+ - ``installcheck`` (``make installcheck``)
+ * - :ref:`MesonPackage <mesonpackage>`
+ - ``check`` (``make test``, ``make check``)
+ - Not applicable
+ * - :ref:`PerlPackage <perlpackage>`
+ - ``check`` (``make test``)
+ - Not applicable
+ * - :ref:`PythonPackage <pythonpackage>`
+ - Not applicable
+ - ``test`` (module imports)
+ * - :ref:`QMakePackage <qmakepackage>`
+ - ``check`` (``make check``)
+ - Not applicable
+ * - :ref:`SConsPackage <sconspackage>`
+ - ``build_test`` (must be overridden)
+ - Not applicable
+ * - :ref:`SIPPackage <sippackage>`
+ - Not applicable
+ - ``test`` (module imports)
+
+For example, the ``Libelf`` package inherits from ``AutotoolsPackage``
+and its ``Makefile`` has a standard ``check`` target. So Spack will
+automatically run ``make check`` after the ``build`` phase when it
+is installed using the ``--test`` option, such as:
+
+.. code-block:: console
+
+ $ spack install --test=root libelf
+
+In addition to overriding any built-in build system installation
+phase tests, you can write your own install phase tests. You will
+need to use two decorators for each phase test method:
+
+* ``run_after``
+* ``on_package_attributes``
+
+The first decorator tells Spack when in the installation process to
+run your test method installation process; namely *after* the provided
+installation phase. The second decorator tells Spack to only run the
+checks when the ``--test`` option is provided on the command line.
+
+.. note::
+
+ Be sure to place the directives above your test method in the order
+ ``run_after`` *then* ``on_package_attributes``.
+
+.. note::
+
+ You also want to be sure the package supports the phase you use
+ in the ``run_after`` directive. For example, ``PackageBase`` only
+ supports the ``install`` phase while the ``AutotoolsPackage`` and
+ ``MakefilePackage`` support both ``install`` and ``build`` phases.
+
+Assuming both ``build`` and ``install`` phases are available to you,
+you could add additional checks to be performed after each of those
+phases based on the skeleton provided below.
+
+.. code-block:: python
+
+ class YourMakefilePackage(MakefilePackage):
+ ...
+
+ @run_after('build')
+ @on_package_attributes(run_tests=True)
+ def check_build(self):
+ # Add your custom post-build phase tests
+ pass
+
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
+ def check_install(self):
+ # Add your custom post-install phase tests
+ pass
+
+.. note::
+
+ You could also schedule work to be done **before** a given phase
+ using the ``run_before`` decorator.
+
+By way of a concrete example, the ``reframe`` package mentioned
+previously has a simple installation phase check that runs the
+installed executable. The check is implemented as follows:
+
+.. code-block:: python
+
+ class Reframe(Package):
+ ...
+
+ # check if we can run reframe
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
+ def check_list(self):
+ with working_dir(self.stage.source_path):
+ reframe = Executable(join_path(self.prefix, 'bin', 'reframe'))
+ reframe('-l')
+
+.. warning::
+
+ The API for adding tests is not yet considered stable and may change
+ in future releases.
+
+.. _cmd-spack-test:
-If you are using using standard autotools or CMake, ``configure`` and
-``make`` will not write anything to the install prefix. Only ``make
-install`` writes the files, and only once the build is already
-complete.
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Stand-alone (or smoke) tests
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-``sanity_check_is_file`` and ``sanity_check_is_dir``
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+While build-time tests are integrated with the installation process,
+stand-alone tests are independent of that process. Consequently, such
+tests can be performed days, even weeks, after the software is installed.
-Unfortunately, many builds of scientific
-software modify the install prefix *before* ``make install``. Builds
-like this can falsely report that they were successfully installed if
-an error occurs before the install is complete but after files have
-been written to the ``prefix``.
+Stand-alone tests are checks that should run relatively quickly -- as
+in on the order of at most a few minutes -- and ideally execute all
+aspects of the installed software, or at least key functionality.
-You can optionally specify *sanity checks* to deal with this problem.
-Add properties like this to your package:
+.. note::
+
+ Execution speed is important because these tests are intended
+ to quickly assess whether the installed software works on the
+ system.
+
+ Failing stand-alone tests indicate that there is no reason to
+ proceed with more resource-intensive tests.
+
+ Passing stand-alone (or smoke) tests can lead to more thorough
+ testing, such as extensive unit or regression tests, or tests
+ that run at scale. Spack support for more thorough testing is
+ a work in progress.
+
+Stand-alone tests have their own test stage directory, which can be
+configured. These tests can compile or build software with the compiler
+used to build the package. They can use files cached from the build for
+testing the installation. Custom files, such as source, data, or expected
+outputs can be added for use in these tests.
+
+""""""""""""""""""""""""""""""""""""
+Configuring the test stage directory
+""""""""""""""""""""""""""""""""""""
+
+Stand-alone tests rely on a stage directory for building, running,
+and tracking results.
+The default directory, ``~/.spack/test``, is defined in
+:ref:`etc/spack/defaults/config.yaml <config-yaml>`.
+You can configure the location in the high-level ``config`` by adding
+or changing the ``test_stage`` path in the appropriate ``config.yaml``
+file such that:
+
+.. code-block:: yaml
+
+ config:
+ test_stage: /path/to/stage
+
+The package can access this path **during test processing** using
+`self.test_suite.stage`.
+
+.. note::
+
+ The test stage path is established for the entire suite. That
+ means it is the root directory for all specs being installed
+ with the same `spack test run` command. Each spec gets its
+ own stage subdirectory.
+
+"""""""""""""""""""""""""
+Enabling test compilation
+"""""""""""""""""""""""""
+
+Some stand-alone tests will require access to the compiler with which
+the package was built, especially for library-only packages. You must
+enable loading the package's compiler configuration by setting the
+``test_requires_compiler`` property to ``True`` for your package.
+For example:
.. code-block:: python
class MyPackage(Package):
...
- sanity_check_is_file = ['include/libelf.h']
- sanity_check_is_dir = [lib]
+ test_requires_compiler = True
- def install(self, spec, prefix):
- configure("--prefix=" + prefix)
- make()
- make("install")
+Setting this property to ``True`` makes the compiler available in the
+test environment through the canonical environment variables (e.g.,
+``CC``, ``CXX``, ``FC``, ``F77``).
-Now, after ``install()`` runs, Spack will check whether
-``$prefix/include/libelf.h`` exists and is a file, and whether
-``$prefix/lib`` exists and is a directory. If the checks fail, then
-the build will fail and the install prefix will be removed. If they
-succeed, Spack considers the build successful and keeps the prefix in
-place.
+.. note::
-^^^^^^^^^^^^^^^^
-Build-time tests
-^^^^^^^^^^^^^^^^
+ We recommend adding the property at the top of the package with the
+ other attributes, such as ``homepage`` and ``url``.
-Sometimes packages finish to build "correctly" and issues with their run-time
-behavior are discovered only at a later stage, maybe after a full software stack
-relying on them has already been built. To avoid situations of that kind it's possible
-to write build-time tests that will be executed only if the option ``--run-tests``
-of ``spack install`` has been activated.
+.. _cache_extra_test_sources:
-The proper way to write these tests is relying on two decorators that come with
-any base class listed in :ref:`installation_procedure`.
+"""""""""""""""""""""""
+Adding build-time files
+"""""""""""""""""""""""
+
+.. note::
+
+ We highly recommend re-using build-time tests and input files
+ for testing installed software. These files are easier to keep
+ synchronized since they reside within the software's repository
+ than maintaining custom install test files with the Spack package.
+
+You can use the ``cache_extra_test_sources`` method to copy directories
+and or files from the build stage directory to the package's installation
+directory.
+
+The signature for ``cache_extra_test_sources`` is:
.. code-block:: python
- @run_after('build')
- @on_package_attributes(run_tests=True)
- def check_build(self):
- # Custom implementation goes here
- pass
+ def cache_extra_test_sources(self, srcs):
+
+where ``srcs`` is a string or a list of strings corresponding to
+the paths for the files and or subdirectories, relative to the staged
+source, that are to be copied to the corresponding relative test path
+under the prefix. All of the contents within each subdirectory will
+also be copied.
-The first decorator ``run_after('build')`` schedules this
-function to be invoked after the ``build`` phase has been executed, while the
-second one makes the invocation conditional on the fact that ``self.run_tests == True``.
-It is also possible to schedule a function to be invoked *before* a given phase
-using the ``run_before`` decorator.
+For example, a package method for copying everything in the ``tests``
+subdirectory plus the ``foo.c`` and ``bar.c`` files from ``examples``
+can be implemented as shown below.
.. note::
- Default implementations for build-time tests
+ The method name ``copy_test_sources`` here is for illustration
+ purposes. You are free to use a name that is more suited to your
+ package.
- Packages that are built using specific build systems may already have a
- default implementation for build-time tests. For instance :py:class:`~.AutotoolsPackage`
- based packages will try to invoke ``make test`` and ``make check`` if
- Spack is asked to run tests.
- More information on each class is available in the the :py:mod:`~.spack.build_systems`
- documentation.
+ The key to copying the files at build time for stand-alone testing
+ is use of the ``run_after`` directive, which ensures the associated
+ files are copied **after** the provided build stage.
-.. warning::
+.. code-block:: python
- The API for adding tests is not yet considered stable and may change drastically in future releases.
+ class MyPackage(Package):
+ ...
-.. _file-manipulation:
+ @run_after('install')
+ def copy_test_sources(self):
+ srcs = ['tests',
+ join_path('examples', 'foo.c'),
+ join_path('examples', 'bar.c')]
+ self.cache_extra_test_sources(srcs)
-^^^^^^^^^^^^^
-Install Tests
-^^^^^^^^^^^^^
+In this case, the method copies the associated files from the build
+stage **after** the software is installed to the package's metadata
+directory. The result is the directory and files will be cached in
+a special test subdirectory under the installation prefix.
-.. warning::
+These paths are **automatically copied** to the test stage directory
+during stand-alone testing. The package's ``test`` method can access
+them using the ``self.test_suite.current_test_cache_dir`` property.
+In our example, the method would use the following paths to reference
+the copy of each entry listed in ``srcs``, respectively:
- The API for adding and running install tests is not yet considered
- stable and may change drastically in future releases. Packages with
- upstreamed tests will be refactored to match changes to the API.
+* ``join_path(self.test_suite.current_test_cache_dir, 'tests')``
+* ``join_path(self.test_suite.current_test_cache_dir, 'examples', 'foo.c')``
+* ``join_path(self.test_suite.current_test_cache_dir, 'examples', 'bar.c')``
+
+.. note::
+
+ Library developers will want to build the associated tests
+ against their **installed** libraries before running them.
+
+.. note::
+
+ While source and input files are generally recommended, binaries
+ **may** also be cached by the build process for install testing.
+ Only you, as the package writer or maintainer, know whether these
+ would be appropriate for ensuring the installed software continues
+ to work as the underlying system evolves.
+
+.. _cache_custom_files:
+
+"""""""""""""""""""
+Adding custom files
+"""""""""""""""""""
+
+Some tests may require additional files not available from the build.
+Examples include:
+
+- test source files
+- test input files
+- test build scripts
+- expected test output
-While build-tests are integrated with the build system, install tests
-may be added to Spack packages to be run independently of the install
-method.
+These extra files should be added to the ``test`` subdirectory of the
+package in the Spack repository.
-Install tests may be added by defining a ``test`` method with the following signature:
+Spack will **automatically copy** the contents of that directory to the
+test staging directory for stand-alone testing. The ``test`` method can
+access those files using the ``self.test_suite.current_test_data_dir``
+property.
+
+.. _expected_test_output_from_file:
+
+"""""""""""""""""""""""""""""""""""
+Reading expected output from a file
+"""""""""""""""""""""""""""""""""""
+
+The helper function ``get_escaped_text_output`` is available for packages
+to retrieve and properly format the text from a file that contains the
+output that is expected when an executable is run using ``self.run_test``.
+
+The signature for ``get_escaped_text_output`` is:
.. code-block:: python
- def test(self):
+ def get_escaped_text_output(filename):
-These tests will be run in an environment set up to provide access to
-this package and all of its dependencies, including ``test``-type
-dependencies. Inside the ``test`` method, standard python ``assert``
-statements and other error reporting mechanisms can be used. Spack
-will report any errors as a test failure.
+where ``filename`` is the path to the file containing the expected output.
-Inside the test method, individual tests can be run separately (and
-continue transparently after a test failure) using the ``run_test``
-method. The signature for the ``run_test`` method is:
+The ``filename`` for a :ref:`custom file <cache_custom_files>` can be
+accessed and used as illustrated by a simplified version of an ``sqlite``
+package check:
.. code-block:: python
- def run_test(self, exe, options=[], expected=[], status=0, installed=False,
- purpose='', skip_missing=False, work_dir=None):
-
-This method will operate in ``work_dir`` if one is specified. It will
-search for an executable in the ``PATH`` variable named ``exe``, and
-if ``installed=True`` it will fail if that executable does not come
-from the prefix of the package being tested. If the executable is not
-found, it will fail the test unless ``skip_missing`` is set to
-``True``. The executable will be run with the options specified, and
-the return code will be checked against the ``status`` argument, which
-can be an integer or list of integers. Spack will also check that
-every string in ``expected`` is a regex matching part of the output of
-the executable. The ``purpose`` argument is recorded in the test log
-for debugging purposes.
-
-""""""""""""""""""""""""""""""""""""""
-Install tests that require compilation
-""""""""""""""""""""""""""""""""""""""
-
-Some tests may require access to the compiler with which the package
-was built, especially to test library-only packages. To ensure the
-compiler is configured as part of the test environment, set the
-attribute ``tests_require_compiler = True`` on the package. The
-compiler will be available through the canonical environment variables
-(``CC``, ``CXX``, ``FC``, ``F77``) in the test environment.
-
-""""""""""""""""""""""""""""""""""""""""""""""""
-Install tests that require build-time components
-""""""""""""""""""""""""""""""""""""""""""""""""
-
-Some packages cannot be easily tested without components from the
-build-time test suite. For those packages, the
-``cache_extra_test_sources`` method can be used.
+ class Sqlite(AutotoolsPackage):
+ ...
+
+ def test(self):
+ test_data_dir = self.test_suite.current_test_data_dir
+ db_filename = test_data_dir.join('packages.db')
+ ..
+
+ expected = get_escaped_text_output(test_data_dir.join('dump.out'))
+ self.run_test('sqlite3',
+ [db_filename, '.dump'],
+ expected,
+ installed=True,
+ purpose='test: checking dump output',
+ skip_missing=False)
+
+Expected outputs do not have to be stored with the Spack package.
+Maintaining them with the source is actually preferable.
+
+Suppose a package's source has ``examples/foo.c`` and ``examples/foo.out``
+files that are copied for stand-alone test purposes using
+:ref:`cache_extra_test_sources <cache_extra_test_sources>` and the
+`run_test` method builds the executable ``examples/foo``. The package
+can retrieve the expected output from ``examples/foo.out`` using:
.. code-block:: python
- @run_after('install')
- def cache_test_sources(self):
- srcs = ['./tests/foo.c', './tests/bar.c']
- self.cache_extra_test_sources(srcs)
+ class MyFooPackage(Package):
+ ...
-This method will copy the listed methods into the metadata directory
-of the package at the end of the install phase of the build. They will
-be available to the test method in the directory
-``self._extra_tests_path``.
+ def test(self):
+ ..
+ filename = join_path(self.test_suite.current_test_cache_dir,
+ 'examples', 'foo.out')
+ expected = get_escaped_text_output(filename)
+ ..
-While source files are generally recommended, for many packages
-binaries may also technically be cached in this way for later testing.
+Alternatively, suppose ``MyFooPackage`` installs tests in ``share/tests``
+and their outputs in ``share/tests/outputs``. The expected output for
+``foo``, assuming it is still called ``foo.out``, can be retrieved as
+follows:
-"""""""""""""""""""""
-Running install tests
-"""""""""""""""""""""
+.. code-block:: python
-Install tests can be run using the ``spack test run`` command. The
-``spack test run`` command will create a ``test suite`` out of the
-specs provided to it, or if no specs are provided it will test all
-specs in the active environment, or all specs installed in Spack if no
-environment is active. Test suites can be named using the ``--alias``
-option; test suites not aliased will use the content hash of their
-specs as their name.
+ class MyFooPackage(Package):
+ ...
-Packages to install test can be queried using the ``spack test list``
-command, which outputs all installed packages with defined ``test``
-methods.
+ def test(self):
+ ..
+ filename = join_path(self.prefix.share.tests.outputs, 'foo.out')
+ expected = get_escaped_text_output(filename)
+ ..
-Test suites can be found using the ``spack test find`` command. It
-will list all test suites that have been run and have not been removed
-using the ``spack test remove`` command. The ``spack test remove``
-command will remove tests to declutter the test stage. The ``spack
-test results`` command will show results for completed test suites.
-The test stage is the working directory for all install tests run with
-Spack. By default, Spack uses ``~/.spack/test`` as the test stage. The
-test stage can be set in the high-level config:
+""""""""""""""""""""""""
+Adding stand-alone tests
+""""""""""""""""""""""""
-.. code-block:: yaml
+Stand-alone tests are defined in the package's ``test`` method. The
+default ``test`` method is a no-op so you'll want to override it to
+implement the tests.
- config:
- test_stage: /path/to/stage
+.. note::
+
+ Any package method named ``test`` is automatically executed by
+ Spack when the ``spack test run`` command is performed.
+
+For example, the ``MyPackage`` package below provides a skeleton for
+the test method.
+
+.. code-block:: python
+
+ class MyPackage(Package):
+ ...
+
+ def test(self):
+ # TODO: Add quick checks of the installed software
+ pass
+
+Stand-alone tests run in an environment that provides access to the
+package and all of its dependencies, including ``test``-type
+dependencies.
+
+Standard python ``assert`` statements and other error reporting
+mechanisms can be used in the ``test`` method. Spack will report
+such errors as test failures.
+
+You can implement multiple tests (or test parts) within the ``test``
+method using the ``run_test`` method. Each invocation is run separately
+in a manner that allows testing to continue after failures.
+
+The signature for ``run_test`` is:
+
+.. code-block:: python
+
+ def run_test(self, exe, options=[], expected=[], status=0,
+ installed=False, purpose='', skip_missing=False,
+ work_dir=None):
+
+where each argument has the following meaning:
+
+* ``exe`` is the executable to run.
+
+ If a name, the ``exe`` is required to be found in one of the paths
+ in the ``PATH`` environment variable **unless** ``skip_missing`` is
+ ``True``. Alternatively, a relative (to ``work_dir``) or fully
+ qualified path for the executable can be provided in ``exe``.
+
+ The test will fail if the resulting path is not within the prefix
+ of the package being tested **unless** ``installed`` is ``False``.
+
+* ``options`` is a list of the command line options.
+
+ Options are a list of strings to be passed to the executable when
+ it runs.
+
+ The default is ``[]``, which means no options are provided to the
+ executable.
+
+* ``expected`` is an optional list of expected output strings.
+
+ Spack requires every string in ``expected`` to be a regex matching
+ part of the output from the test run (e.g.,
+ ``expected=['completed successfully', 'converged in']``). The
+ output can also include expected failure outputs (e.g.,
+ ``expected=['failed to converge']``).
+
+ The expected output can be :ref:`read from a file
+ <expected_test_output_from_file>`.
+
+ The default is ``expected=[]``, so Spack will not check the output.
+
+* ``status`` is the optional expected return code(s).
+
+ A list of return codes corresponding to successful execution can
+ be provided (e.g., ``status=[0,3,7]``). Support for non-zero return
+ codes allows for basic **expected failure** tests as well as different
+ return codes across versions of the software.
+
+ The default is ``status=[0]``, which corresponds to **successful**
+ execution in the sense that the executable does not exit with a
+ failure code or raise an exception.
+
+* ``installed`` is used to require ``exe`` to be within the package
+ prefix.
+
+ If ``True``, then the path for ``exe`` is required to be within the
+ package prefix; otherwise, the path is not constrained.
+
+ The default is ``False``, so the fully qualified path for ``exe``
+ does **not** need to be within the installation directory.
+
+* ``purpose`` is an optional heading describing the the test part.
+
+ Output from the test is written to a test log file so this argument
+ serves as a searchable heading in text logs to highlight the start
+ of the test part. Having a description can be helpful when debugging
+ failing tests.
+
+* ``skip_missing`` is used to determine if the test should be skipped.
+
+ If ``True``, then the test part should be skipped if the executable
+ is missing; otherwise, the executable must exist. This option can
+ be useful when test executables are removed or change as the software
+ evolves in subsequent versions.
+
+ The default is ``False``, which means the test executable must be
+ present for any installable version of the software.
+
+* ``work_dir`` is the path to the directory from which the executable
+ will run.
+
+ The default of ``None`` corresponds to the current directory (``'.'``).
+
+"""""""""""""""""""""""""""""""""""""""""
+Accessing package- and test-related files
+"""""""""""""""""""""""""""""""""""""""""
+
+You may need to access files from one or more locations when writing
+stand-alone tests. This can happen if the software's repository does not
+include test source files or includes files but no way to build the
+executables using the installed headers and libraries. In these
+cases, you may need to reference the files relative to one or more
+root directory. The properties containing package- and test-related
+directory paths are provided in the table below.
+
+.. list-table:: Directory-to-property mapping
+ :header-rows: 1
+
+ * - Root Directory
+ - Package Property
+ - Example(s)
+ * - Package Installation Files
+ - ``self.prefix``
+ - ``self.prefix.include``, ``self.prefix.lib``
+ * - Package Dependency's Files
+ - ``self.spec['<dependency-package>'].prefix``
+ - ``self.spec['trilinos'].prefix.include``
+ * - Test Suite Stage Files
+ - ``self.test_suite.stage``
+ - ``join_path(self.test_suite.stage, 'results.txt')``
+ * - Staged Cached Build-time Files
+ - ``self.test_suite.current_test_cache_dir``
+ - ``join_path(self.test_suite.current_test_cache_dir, 'examples', 'foo.c')``
+ * - Staged Custom Package Files
+ - ``self.test_suite.current_test_data_dir``
+ - ``join_path(self.test_suite.current_test_data_dir, 'hello.f90')``
+
+""""""""""""""""""""""""""""
+Inheriting stand-alone tests
+""""""""""""""""""""""""""""
+
+Stand-alone tests defined in parent (.e.g., :ref:`build-systems`) and
+virtual (e.g., :ref:`virtual-dependencies`) packages are available to
+packages that inherit from or provide interfaces for those packages,
+respectively. The table below summarizes the tests that will be included
+with those provided in the package itself when executing stand-alone tests.
+
+.. list-table:: Inherited/provided stand-alone tests
+ :header-rows: 1
+
+ * - Parent/Provider Package
+ - Stand-alone Tests
+ * - `C
+ <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/c>`_
+ - Compiles ``hello.c`` and runs it
+ * - `Cxx
+ <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/cxx>`_
+ - Compiles and runs several ``hello`` programs
+ * - `Fortan
+ <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/fortran>`_
+ - Compiles and runs ``hello`` programs (``F`` and ``f90``)
+ * - `Mpi
+ <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/mpi>`_
+ - Compiles and runs ``mpi_hello`` (``c``, ``fortran``)
+ * - `PythonPackage <build_systems/pythonpackage>`
+ - Imports installed modules
+
+These tests are very generic so it is important that package
+developers and maintainers provide additional stand-alone tests
+customized to the package.
+
+One example of a package that adds its own stand-alone (or smoke)
+tests is the `Openmpi package
+<https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/openmpi/package.py>`_.
+The preliminary set of tests for the package performed the
+following checks:
+
+- installed binaries with the ``--version`` option return the expected
+ version;
+- outputs from (selected) installed binaries match expectations;
+- ``make all`` succeeds when building examples that were copied from the
+ source directory during package installation; and
+- outputs from running the copied and built examples match expectations.
+
+Below is an example of running and viewing the stand-alone tests,
+where only the outputs for the first of each set are shown:
+
+.. code-block:: console
+
+ $ spack test run --alias openmpi-4.0.5 openmpi@4.0.5
+ ==> Spack test openmpi-4.0.5
+ ==> Testing package openmpi-4.0.5-eygjgve
+ $ spack test results -l openmpi-4.0.5
+ ==> Spack test openmpi-4.0.5
+ ==> Testing package openmpi-4.0.5-eygjgve
+ ==> Results for test suite 'openmpi-4.0.5':
+ ==> openmpi-4.0.5-eygjgve PASSED
+ ==> Testing package openmpi-4.0.5-eygjgve
+ ==> [2021-04-26-17:35:20.259650] test: ensuring version of mpiCC is 8.3.1
+ ==> [2021-04-26-17:35:20.260155] '$SPACK_ROOT/opt/spack/linux-rhel7-broadwell/gcc-8.3.1/openmpi-4.0.5-eygjgvek35awfor2qaljltjind2oa67r/bin/mpiCC' '--version'
+ g++ (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
+ Copyright (C) 2018 Free Software Foundation, Inc.
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ PASSED
+ ...
+ ==> [2021-04-26-17:35:20.493921] test: checking mpirun output
+ ==> [2021-04-26-17:35:20.494461] '$SPACK_ROOT/opt/spack/linux-rhel7-broadwell/gcc-8.3.1/openmpi-4.0.5-eygjgvek35awfor2qaljltjind2oa67r/bin/mpirun' '-n' '1' 'ls' '..'
+ openmpi-4.0.5-eygjgve repo test_suite.lock
+ openmpi-4.0.5-eygjgve-test-out.txt results.txt
+ PASSED
+ ...
+ ==> [2021-04-26-17:35:20.630452] test: ensuring ability to build the examples
+ ==> [2021-04-26-17:35:20.630943] '/usr/bin/make' 'all'
+ mpicc -g hello_c.c -o hello_c
+ mpicc -g ring_c.c -o ring_c
+ mpicc -g connectivity_c.c -o connectivity_c
+ mpicc -g spc_example.c -o spc_example
+ ...
+ PASSED
+ ==> [2021-04-26-17:35:23.291214] test: checking hello_c example output and status (0)
+ ==> [2021-04-26-17:35:23.291841] './hello_c'
+ Hello, world, I am 0 of 1, (Open MPI v4.0.5, package: Open MPI dahlgren@quartz2300 Distribution, ident: 4.0.5, repo rev: v4.0.5, Aug 26, 2020, 114)
+ PASSED
+ ...
+ ==> [2021-04-26-17:35:24.603152] test: ensuring copied examples cleaned up
+ ==> [2021-04-26-17:35:24.603807] '/usr/bin/make' 'clean'
+ rm -f hello_c hello_cxx hello_mpifh hello_usempi hello_usempif08 hello_oshmem hello_oshmemcxx hello_oshmemfh Hello.class ring_c ring_cxx ring_mpifh ring_usempi ring_usempif08 ring_oshmem ring_oshmemfh Ring.class connectivity_c oshmem_shmalloc oshmem_circular_shift oshmem_max_reduction oshmem_strided_puts oshmem_symmetric_data spc_example *~ *.o
+ PASSED
+ ==> [2021-04-26-17:35:24.643360] test: mpicc: expect command status in [0]
+ ==> [2021-04-26-17:35:24.643834] '$SPACK_ROOT/opt/spack/linux-rhel7-broadwell/gcc-8.3.1/openmpi-4.0.5-eygjgvek35awfor2qaljltjind2oa67r/bin/mpicc' '-o' 'mpi_hello_c' '$HOME/.spack/test/hyzq5eqlqfog6fawlzxwg3prqy5vjhms/openmpi-4.0.5-eygjgve/data/mpi/mpi_hello.c'
+ PASSED
+ ==> [2021-04-26-17:35:24.776765] test: mpirun: expect command status in [0]
+ ==> [2021-04-26-17:35:24.777194] '$SPACK_ROOT/opt/spack/linux-rhel7-broadwell/gcc-8.3.1/openmpi-4.0.5-eygjgvek35awfor2qaljltjind2oa67r/bin/mpirun' '-np' '1' 'mpi_hello_c'
+ Hello world! From rank 0 of 1
+ PASSED
+ ...
+
+
+.. warning::
+
+ The API for adding and running stand-alone tests is not yet considered
+ stable and may change drastically in future releases. Packages with
+ stand-alone tests will be refactored to match changes to the API.
+
+.. _cmd-spack-test-list:
+
+"""""""""""""""""""
+``spack test list``
+"""""""""""""""""""
+
+Packages available for install testing can be found using the
+``spack test list`` command. The command outputs all installed
+packages that have defined ``test`` methods.
+
+Alternatively you can use the ``--all`` option to get a list of
+all packages that have defined ``test`` methods even if they are
+not installed.
+
+For more information, refer to `spack test list
+<https://spack.readthedocs.io/en/latest/command_index.html#spack-test-list>`_.
+
+.. _cmd-spack-test-run:
+
+""""""""""""""""""
+``spack test run``
+""""""""""""""""""
+
+Install tests can be run for one or more installed packages using
+the ``spack test run`` command. A ``test suite`` is created from
+the provided specs. If no specs are provided it will test all specs
+in the active environment or all specs installed in Spack if no
+environment is active.
+
+Test suites can be named using the ``--alias`` option. Unaliased
+Test suites will use the content hash of their specs as their name.
+
+Some of the more commonly used debugging options are:
+
+- ``--fail-fast`` stops testing each package after the first failure
+- ``--fail-first`` stops testing packages after the first failure
+
+Test output is written to a text log file by default but ``junit``
+and ``cdash`` are outputs are available through the ``--log-format``
+option.
+
+For more information, refer to `spack test run
+<https://spack.readthedocs.io/en/latest/command_index.html#spack-test-run>`_.
+
+
+.. _cmd-spack-test-results:
+
+""""""""""""""""""""""
+``spack test results``
+""""""""""""""""""""""
+
+The ``spack test results`` command shows results for all completed
+test suites. Providing the alias or content hash limits reporting
+to the corresponding test suite.
+
+The ``--logs`` option includes the output generated by the associated
+test(s) to facilitate debugging.
+
+The ``--failed`` option limits results shown to that of the failed
+tests, if any, of matching packages.
+
+For more information, refer to `spack test results
+<https://spack.readthedocs.io/en/latest/command_index.html#spack-test-results>`_.
+
+.. _cmd-spack-test-find:
+
+"""""""""""""""""""
+``spack test find``
+"""""""""""""""""""
+
+The ``spack test find`` command lists the aliases or content hashes
+of all test suites whose results are available.
+
+For more information, refer to `spack test find
+<https://spack.readthedocs.io/en/latest/command_index.html#spack-test-find>`_.
+
+.. _cmd-spack-test-remove:
+
+"""""""""""""""""""""
+``spack test remove``
+"""""""""""""""""""""
+
+The ``spack test remove`` command removes test suites to declutter
+the test results directory. You are prompted to confirm the removal
+of each test suite **unless** you use the ``--yes-to-all`` option.
+
+For more information, refer to `spack test remove
+<https://spack.readthedocs.io/en/latest/command_index.html#spack-test-remove>`_.
+
+.. _file-manipulation:
---------------------------
File manipulation functions
@@ -4070,9 +4890,9 @@ ways of setting compilers and options, you may need to edit files or
install some files yourself to get them working with Spack.
You can do this with standard Python code, and Python has rich
-libraries with functions for file manipulation and filtering. Spack
+libraries with functions for file manipulation and filtering. Spack
also provides a number of convenience functions of its own to make
-your life even easier. These functions are described in this section.
+your life even easier. These functions are described in this section.
All of the functions in this section can be included by simply
running:
@@ -4088,7 +4908,7 @@ This is already part of the boilerplate for packages created with
Filtering functions
^^^^^^^^^^^^^^^^^^^
-:py:func:`filter_file(regex, repl, *filenames, **kwargs) <spack.filter_file>`
+:py:func:`filter_file(regex, repl, *filenames, **kwargs) <llnl.util.filesystem.filter_file>`
Works like ``sed`` but with Python regular expression syntax. Takes
a regular expression, a replacement, and a set of files. ``repl``
can be a raw string or a callable function. If it is a raw string,
@@ -4103,10 +4923,10 @@ Filtering functions
.. code-block:: python
- filter_file(r'^CC\s*=.*', spack_cc, 'Makefile')
- filter_file(r'^CXX\s*=.*', spack_cxx, 'Makefile')
- filter_file(r'^F77\s*=.*', spack_f77, 'Makefile')
- filter_file(r'^FC\s*=.*', spack_fc, 'Makefile')
+ filter_file(r'^\s*CC\s*=.*', 'CC = ' + spack_cc, 'Makefile')
+ filter_file(r'^\s*CXX\s*=.*', 'CXX = ' + spack_cxx, 'Makefile')
+ filter_file(r'^\s*F77\s*=.*', 'F77 = ' + spack_f77, 'Makefile')
+ filter_file(r'^\s*FC\s*=.*', 'FC = ' + spack_fc, 'Makefile')
#. Replacing ``#!/usr/bin/perl`` with ``#!/usr/bin/env perl`` in ``bib2xhtml``:
@@ -4126,7 +4946,7 @@ Filtering functions
filter_file('CXX="c++"', 'CXX="%s"' % self.compiler.cxx,
prefix.bin.mpicxx)
-:py:func:`change_sed_delimiter(old_delim, new_delim, *filenames) <spack.change_sed_delim>`
+:py:func:`change_sed_delimiter(old_delim, new_delim, *filenames) <llnl.util.filesystem.change_sed_delimiter>`
Some packages, like TAU, have a build system that can't install
into directories with, e.g. '@' in the name, because they use
hard-coded ``sed`` commands in their build.
@@ -4148,14 +4968,14 @@ Filtering functions
File functions
^^^^^^^^^^^^^^
-:py:func:`ancestor(dir, n=1) <spack.ancestor>`
+:py:func:`ancestor(dir, n=1) <llnl.util.filesystem.ancestor>`
Get the n\ :sup:`th` ancestor of the directory ``dir``.
-:py:func:`can_access(path) <spack.can_access>`
+:py:func:`can_access(path) <llnl.util.filesystem.can_access>`
True if we can read and write to the file at ``path``. Same as
native python ``os.access(file_name, os.R_OK|os.W_OK)``.
-:py:func:`install(src, dest) <spack.install>`
+:py:func:`install(src, dest) <llnl.util.filesystem.install>`
Install a file to a particular location. For example, install a
header into the ``include`` directory under the install ``prefix``:
@@ -4163,14 +4983,14 @@ File functions
install('my-header.h', prefix.include)
-:py:func:`join_path(*paths) <spack.join_path>`
+:py:func:`join_path(*paths) <llnl.util.filesystem.join_path>`
An alias for ``os.path.join``. This joins paths using the OS path separator.
-:py:func:`mkdirp(*paths) <spack.mkdirp>`
+:py:func:`mkdirp(*paths) <llnl.util.filesystem.mkdirp>`
Create each of the directories in ``paths``, creating any parent
directories if they do not exist.
-:py:func:`working_dir(dirname, kwargs) <spack.working_dir>`
+:py:func:`working_dir(dirname, kwargs) <llnl.util.filesystem.working_dir>`
This is a Python `Context Manager
<https://docs.python.org/2/library/contextlib.html>`_ that makes it
easier to work with subdirectories in builds. You use this with the
@@ -4212,7 +5032,7 @@ File functions
The ``create=True`` keyword argument causes the command to create
the directory if it does not exist.
-:py:func:`touch(path) <spack.touch>`
+:py:func:`touch(path) <llnl.util.filesystem.touch>`
Create an empty file at ``path``.
.. _make-package-findable:
diff --git a/lib/spack/docs/pipelines.rst b/lib/spack/docs/pipelines.rst
index d0cb6fa670..884fe44862 100644
--- a/lib/spack/docs/pipelines.rst
+++ b/lib/spack/docs/pipelines.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -30,52 +30,18 @@ at least one `runner <https://docs.gitlab.com/runner/>`_. Then the basic steps
for setting up a build pipeline are as follows:
#. Create a repository on your gitlab instance
-#. Add a ``spack.yaml`` at the root containing your pipeline environment (see
- below for details)
+#. Add a ``spack.yaml`` at the root containing your pipeline environment
#. Add a ``.gitlab-ci.yml`` at the root containing two jobs (one to generate
- the pipeline dynamically, and one to run the generated jobs), similar to
- this one:
-
- .. code-block:: yaml
-
- stages: [generate, build]
-
- generate-pipeline:
- stage: generate
- tags:
- - <custom-tag>
- script:
- - spack env activate --without-view .
- - spack ci generate
- --output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
- artifacts:
- paths:
- - "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
-
- build-jobs:
- stage: build
- trigger:
- include:
- - artifact: "jobs_scratch_dir/pipeline.yml"
- job: generate-pipeline
- strategy: depend
-
-
-#. Add any secrets required by the CI process to environment variables using the
- CI web ui
+ the pipeline dynamically, and one to run the generated jobs).
#. Push a commit containing the ``spack.yaml`` and ``.gitlab-ci.yml`` mentioned above
to the gitlab repository
-The ``<custom-tag>``, above, is used to pick one of your configured runners to
-run the pipeline generation phase (this is implemented in the ``spack ci generate``
-command, which assumes the runner has an appropriate version of spack installed
-and configured for use). Of course, there are many ways to customize the process.
-You can configure CDash reporting on the progress of your builds, set up S3 buckets
-to mirror binaries built by the pipeline, clone a custom spack repository/ref for
-use by the pipeline, and more.
+See the :ref:`functional_example` section for a minimal working example. See also
+the :ref:`custom_Workflow` section for a link to an example of a custom workflow
+based on spack pipelines.
-While it is possible to set up pipelines on gitlab.com, the builds there are
-limited to 60 minutes and generic hardware. It is also possible to
+While it is possible to set up pipelines on gitlab.com, as illustrated above, the
+builds there are limited to 60 minutes and generic hardware. It is also possible to
`hook up <https://about.gitlab.com/blog/2018/04/24/getting-started-gitlab-ci-gcp>`_
Gitlab to Google Kubernetes Engine (`GKE <https://cloud.google.com/kubernetes-engine/>`_)
or Amazon Elastic Kubernetes Service (`EKS <https://aws.amazon.com/eks>`_), though those
@@ -88,21 +54,144 @@ dynamically generated
Note that the use of dynamic child pipelines requires running Gitlab version
``>= 12.9``.
+.. _functional_example:
+
+------------------
+Functional Example
+------------------
+
+The simplest fully functional standalone example of a working pipeline can be
+examined live at this example `project <https://gitlab.com/scott.wittenburg/spack-pipeline-demo>`_
+on gitlab.com.
+
+Here's the ``.gitlab-ci.yml`` file from that example that builds and runs the
+pipeline:
+
+.. code-block:: yaml
+
+ stages: [generate, build]
+
+ variables:
+ SPACK_REPO: https://github.com/scottwittenburg/spack.git
+ SPACK_REF: pipelines-reproducible-builds
+
+ generate-pipeline:
+ stage: generate
+ tags:
+ - docker
+ image:
+ name: ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01
+ entrypoint: [""]
+ before_script:
+ - git clone ${SPACK_REPO}
+ - pushd spack && git checkout ${SPACK_REF} && popd
+ - . "./spack/share/spack/setup-env.sh"
+ script:
+ - spack env activate --without-view .
+ - spack -d ci generate
+ --artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir"
+ --output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
+ artifacts:
+ paths:
+ - "${CI_PROJECT_DIR}/jobs_scratch_dir"
+
+ build-jobs:
+ stage: build
+ trigger:
+ include:
+ - artifact: "jobs_scratch_dir/pipeline.yml"
+ job: generate-pipeline
+ strategy: depend
+
+The key thing to note above is that there are two jobs: The first job to run,
+``generate-pipeline``, runs the ``spack ci generate`` command to generate a
+dynamic child pipeline and write it to a yaml file, which is then picked up
+by the second job, ``build-jobs``, and used to trigger the downstream pipeline.
+
+And here's the spack environment built by the pipeline represented as a
+``spack.yaml`` file:
+
+.. code-block:: yaml
+
+ spack:
+ view: false
+ concretization: separately
+
+ definitions:
+ - pkgs:
+ - zlib
+ - bzip2
+ - arch:
+ - '%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64'
+
+ specs:
+ - matrix:
+ - - $pkgs
+ - - $arch
+
+ mirrors: { "mirror": "s3://spack-public/mirror" }
+
+ gitlab-ci:
+ before_script:
+ - git clone ${SPACK_REPO}
+ - pushd spack && git checkout ${SPACK_CHECKOUT_VERSION} && popd
+ - . "./spack/share/spack/setup-env.sh"
+ script:
+ - pushd ${SPACK_CONCRETE_ENV_DIR} && spack env activate --without-view . && popd
+ - spack -d ci rebuild
+ mappings:
+ - match: ["os=ubuntu18.04"]
+ runner-attributes:
+ image:
+ name: ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01
+ entrypoint: [""]
+ tags:
+ - docker
+ enable-artifacts-buildcache: True
+ rebuild-index: False
+
+The elements of this file important to spack ci pipelines are described in more
+detail below, but there are a couple of things to note about the above working
+example:
+
+Normally ``enable-artifacts-buildcache`` is not recommended in production as it
+results in large binary artifacts getting transferred back and forth between
+gitlab and the runners. But in this example on gitlab.com where there is no
+shared, persistent file system, and where no secrets are stored for giving
+permission to write to an S3 bucket, ``enabled-buildcache-artifacts`` is the only
+way to propagate binaries from jobs to their dependents.
+
+Also, it is usually a good idea to let the pipeline generate a final "rebuild the
+buildcache index" job, so that subsequent pipeline generation can quickly determine
+which specs are up to date and which need to be rebuilt (it's a good idea for other
+reasons as well, but those are out of scope for this discussion). In this case we
+have disabled it (using ``rebuild-index: False``) because the index would only be
+generated in the artifacts mirror anyway, and consequently would not be available
+during subesequent pipeline runs.
+
+.. note::
+ With the addition of reproducible builds (#22887) a previously working
+ pipeline will require some changes:
+
+ * In the build jobs (``runner-attributes``), the environment location changed.
+ This will typically show as a ``KeyError`` in the failing job. Be sure to
+ point to ``${SPACK_CONCRETE_ENV_DIR}``.
+
+ * When using ``include`` in your environment, be sure to make the included
+ files available in the build jobs. This means adding those files to the
+ artifact directory. Those files will also be missing in the reproducibility
+ artifact.
+
+ * Because the location of the environment changed, including files with
+ relative path may have to be adapted to work both in the project context
+ (generation job) and in the concrete env dir context (build job).
+
-----------------------------------
Spack commands supporting pipelines
-----------------------------------
-Spack provides a command ``ci`` with two sub-commands: ``spack ci generate`` generates
-a pipeline (a .gitlab-ci.yml file) from a spack environment, and ``spack ci rebuild``
-checks a spec against a remote mirror and possibly rebuilds it from source and updates
-the binary mirror with the latest built package. Both ``spack ci ...`` commands must
-be run from within the same environment, as each one makes use of the environment for
-different purposes. Additionally, some options to the commands (or conditions present
-in the spack environment file) may require particular environment variables to be
-set in order to function properly. Examples of these are typically secrets
-needed for pipeline operation that should not be visible in a spack environment
-file. These environment variables are described in more detail
-:ref:`ci_environment_variables`.
+Spack provides a ``ci`` command with a few sub-commands supporting spack
+ci pipelines. These commands are covered in more detail in this section.
.. _cmd-spack-ci:
@@ -121,24 +210,107 @@ pipeline jobs.
Concretizes the specs in the active environment, stages them (as described in
:ref:`staging_algorithm`), and writes the resulting ``.gitlab-ci.yml`` to disk.
-
-This sub-command takes two arguments, but the most useful is ``--output-file``,
-which should be an absolute path (including file name) to the generated
-pipeline, if the default (``./.gitlab-ci.yml``) is not desired.
+During concretization of the environment, ``spack ci generate`` also writes a
+``spack.lock`` file which is then provided to generated child jobs and made
+available in all generated job artifacts to aid in reproducing failed builds
+in a local environment. This means there are two artifacts that need to be
+exported in your pipeline generation job (defined in your ``.gitlab-ci.yml``).
+The first is the output yaml file of ``spack ci generate``, and the other is
+the directory containing the concrete environment files. In the
+:ref:`functional_example` section, we only mentioned one path in the
+``artifacts`` ``paths`` list because we used ``--artifacts-root`` as the
+top level directory containing both the generated pipeline yaml and the
+concrete environment.
+
+Using ``--prune-dag`` or ``--no-prune-dag`` configures whether or not jobs are
+generated for specs that are already up to date on the mirror. If enabling
+DAG pruning using ``--prune-dag``, more information may be required in your
+``spack.yaml`` file, see the :ref:`noop_jobs` section below regarding
+``service-job-attributes``.
+
+The optional ``--check-index-only`` argument can be used to speed up pipeline
+generation by telling spack to consider only remote buildcache indices when
+checking the remote mirror to determine if each spec in the DAG is up to date
+or not. The default behavior is for spack to fetch the index and check it,
+but if the spec is not found in the index, to also perform a direct check for
+the spec on the mirror. If the remote buildcache index is out of date, which
+can easily happen if it is not updated frequently, this behavior ensures that
+spack has a way to know for certain about the status of any concrete spec on
+the remote mirror, but can slow down pipeline generation significantly.
+
+The ``--optimize`` argument is experimental and runs the generated pipeline
+document through a series of optimization passes designed to reduce the size
+of the generated file.
+
+The ``--dependencies`` is also experimental and disables what in Gitlab is
+referred to as DAG scheduling, internally using the ``dependencies`` keyword
+rather than ``needs`` to list dependency jobs. The drawback of using this option
+is that before any job can begin, all jobs in previous stages must first
+complete. The benefit is that Gitlab allows more dependencies to be listed
+when using ``dependencies`` instead of ``needs``.
+
+The optional ``--output-file`` argument should be an absolute path (including
+file name) to the generated pipeline, and if not given, the default is
+``./.gitlab-ci.yml``.
+
+While optional, the ``--artifacts-root`` argument is used to determine where
+the concretized environment directory should be located. This directory will
+be created by ``spack ci generate`` and will contain the ``spack.yaml`` and
+generated ``spack.lock`` which are then passed to all child jobs as an
+artifact. This directory will also be the root directory for all artifacts
+generated by jobs in the pipeline.
.. _cmd-spack-ci-rebuild:
-^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^
``spack ci rebuild``
-^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^
+
+The purpose of the ``spack ci rebuild`` is straightforward: take its assigned
+spec job, check whether the target mirror already has a binary for that spec,
+and if not, build the spec from source and push the binary to the mirror. To
+accomplish this in a reproducible way, the sub-command prepares a ``spack install``
+command line to build a single spec in the DAG, saves that command in a
+shell script, ``install.sh``, in the current working directory, and then runs
+it to install the spec. The shell script is also exported as an artifact to
+aid in reproducing the build outside of the CI environment.
-This sub-command is responsible for ensuring a single spec from the release
-environment is up to date on the remote mirror configured in the environment,
-and as such, corresponds to a single job in the ``.gitlab-ci.yml`` file.
+If it was necessary to install the spec from source, ``spack ci rebuild`` will
+also subsequently create a binary package for the spec and try to push it to the
+mirror.
-Rather than taking command-line arguments, this sub-command expects information
-to be communicated via environment variables, which will typically come via the
-``.gitlab-ci.yml`` job as ``variables``.
+The ``spack ci rebuild`` sub-command mainly expects its "input" to come either
+from environment variables or from the ``gitlab-ci`` section of the ``spack.yaml``
+environment file. There are two main sources of the environment variables, some
+are written into ``.gitlab-ci.yml`` by ``spack ci generate``, and some are
+provided by the GitLab CI runtime.
+
+.. _cmd-spack-ci-rebuild-index:
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+``spack ci rebuild-index``
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This is a convenience command to rebuild the buildcache index associated with
+the mirror in the active, gitlab-enabled environment (specifying the mirror
+url or name is not required).
+
+.. _cmd-spack-ci-reproduce-build:
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+``spack ci reproduce-build``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Given the url to a gitlab pipeline rebuild job, downloads and unzips the
+artifacts into a local directory (which can be specified with the optional
+``--working-dir`` argument), then finds the target job in the generated
+pipeline to extract details about how it was run. Assuming the job used a
+docker image, the command prints a ``docker run`` command line and some basic
+instructions on how to reproduce the build locally.
+
+Note that jobs failing in the pipeline will print messages giving the
+arguments you can pass to ``spack ci reproduce-build`` in order to reproduce
+a particular build locally.
------------------------------------
A pipeline-enabled spack environment
@@ -223,20 +395,12 @@ takes a boolean and determines whether the pipeline uses artifacts to store and
pass along the buildcaches from one stage to the next (the default if you don't
provide this option is ``False``).
-The
-``final-stage-rebuild-index`` section controls whether an extra job is added to the
-end of your pipeline (in a stage by itself) which will regenerate the mirror's
-buildcache index. Under normal operation, each pipeline job that rebuilds a package
-will re-generate the mirror's buildcache index after the buildcache entry for that
-job has been created and pushed to the mirror. Since jobs in the same stage can run in
-parallel, there is the possibility that at the end of some stage, the index may not
-reflect all the binaries in the buildcache. Adding the ``final-stage-rebuild-index``
-section ensures that at the end of the pipeline, the index will be in sync with the
-binaries on the mirror. If the mirror lives in an S3 bucket, this job will need to
-run on a machine with the Python ``boto3`` module installed, and consequently the
-``final-stage-rebuild-index`` needs to specify a list of ``tags`` to pick a runner
-satisfying that condition. It can also take an ``image`` key so Docker executor type
-runners can pick the right image for the index regeneration job.
+The optional ``broken-specs-url`` key tells Spack to check against a list of
+specs that are known to be currently broken in ``develop``. If any such specs
+are found, the ``spack ci generate`` command will fail with an error message
+informing the user what broken specs were encountered. This allows the pipeline
+to fail early and avoid wasting compute resources attempting to build packages
+that will not succeed.
The optional ``cdash`` section provides information that will be used by the
``spack ci generate`` command (invoked by ``spack ci start``) for reporting
@@ -251,6 +415,76 @@ Take a look at the
for the gitlab-ci section of the spack environment file, to see precisely what
syntax is allowed there.
+.. _rebuild_index:
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Note about rebuilding buildcache index
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+By default, while a pipeline job may rebuild a package, create a buildcache
+entry, and push it to the mirror, it does not automatically re-generate the
+mirror's buildcache index afterward. Because the index is not needed by the
+default rebuild jobs in the pipeline, not updating the index at the end of
+each job avoids possible race conditions between simultaneous jobs, and it
+avoids the computational expense of regenerating the index. This potentially
+saves minutes per job, depending on the number of binary packages in the
+mirror. As a result, the default is that the mirror's buildcache index may
+not correctly reflect the mirror's contents at the end of a pipeline.
+
+To make sure the buildcache index is up to date at the end of your pipeline,
+spack generates a job to update the buildcache index of the target mirror
+at the end of each pipeline by default. You can disable this behavior by
+adding ``rebuild-index: False`` inside the ``gitlab-ci`` section of your
+spack environment. Spack will assign the job any runner attributes found
+on the ``service-job-attributes``, if you have provided that in your
+``spack.yaml``.
+
+.. _noop_jobs:
+
+^^^^^^^^^^^^^^^^^^^^^^^
+Note about "no-op" jobs
+^^^^^^^^^^^^^^^^^^^^^^^
+
+If no specs in an environment need to be rebuilt during a given pipeline run
+(meaning all are already up to date on the mirror), a single succesful job
+(a NO-OP) is still generated to avoid an empty pipeline (which GitLab
+considers to be an error). An optional ``service-job-attributes`` section
+can be added to your ``spack.yaml`` where you can provide ``tags`` and
+``image`` or ``variables`` for the generated NO-OP job. This section also
+supports providing ``before_script``, ``script``, and ``after_script``, in
+case you want to take some custom actions in the case of any empty pipeline.
+
+Following is an example of this section added to a ``spack.yaml``:
+
+.. code-block:: yaml
+
+ spack:
+ specs:
+ - openmpi
+ mirrors:
+ cloud_gitlab: https://mirror.spack.io
+ gitlab-ci:
+ mappings:
+ - match:
+ - os=centos8
+ runner-attributes:
+ tags:
+ - custom
+ - tag
+ image: spack/centos7
+ service-job-attributes:
+ tags: ['custom', 'tag']
+ image:
+ name: 'some.image.registry/custom-image:latest'
+ entrypoint: ['/bin/bash']
+ script:
+ - echo "Custom message in a custom script"
+
+The example above illustrates how you can provide the attributes used to run
+the NO-OP job in the case of an empty pipeline. The only field for the NO-OP
+job that might be generated for you is ``script``, but that will only happen
+if you do not provide one yourself.
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Assignment of specs to runners
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -285,8 +519,9 @@ scheduled on that runner. This allows users to do any custom preparation or
cleanup tasks that fit their particular workflow, as well as completely
customize the rebuilding of a spec if they so choose. Spack will not generate
a ``before_script`` or ``after_script`` for jobs, but if you do not provide
-a custom ``script``, spack will generate one for you that assumes your
-``spack.yaml`` is at the root of the repository, activates that environment for
+a custom ``script``, spack will generate one for you that assumes the concrete
+environment directory is located within your ``--artifacts_root`` (or if not
+provided, within your ``$CI_PROJECT_DIR``), activates that environment for
you, and invokes ``spack ci rebuild``.
.. _staging_algorithm:
@@ -411,14 +646,15 @@ Using a custom spack in your pipeline
If your runners will not have a version of spack ready to invoke, or if for some
other reason you want to use a custom version of spack to run your pipelines,
this section provides an example of how you could take advantage of
-user-provided pipeline scripts to accomplish this fairly simply. First, you
-could use the GitLab user interface to create CI environment variables
-containing the url and branch or tag you want to use (calling them, for
-example, ``SPACK_REPO`` and ``SPACK_REF``), then refer to those in a custom shell
-script invoked both from your pipeline generation job, as well as in your rebuild
+user-provided pipeline scripts to accomplish this fairly simply. First, consider
+specifying the source and version of spack you want to use with variables, either
+written directly into your ``.gitlab-ci.yml``, or provided by CI variables defined
+in the gitlab UI or from some upstream pipeline. Let's say you choose the variable
+names ``SPACK_REPO`` and ``SPACK_REF`` to refer to the particular fork of spack
+and branch you want for running your pipeline. You can then refer to those in a
+custom shell script invoked both from your pipeline generation job and your rebuild
jobs. Here's the ``generate-pipeline`` job from the top of this document,
-updated to invoke a custom shell script that will clone and source a custom
-spack:
+updated to clone and source a custom spack:
.. code-block:: yaml
@@ -426,34 +662,24 @@ spack:
tags:
- <some-other-tag>
before_script:
- - ./cloneSpack.sh
+ - git clone ${SPACK_REPO}
+ - pushd spack && git checkout ${SPACK_REF} && popd
+ - . "./spack/share/spack/setup-env.sh"
script:
- spack env activate --without-view .
- - spack ci generate
+ - spack ci generate --check-index-only
+ --artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir"
--output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
after_script:
- rm -rf ./spack
artifacts:
paths:
- - "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
-
-And the ``cloneSpack.sh`` script could contain:
-
-.. code-block:: bash
-
- #!/bin/bash
+ - "${CI_PROJECT_DIR}/jobs_scratch_dir"
- git clone ${SPACK_REPO}
- pushd ./spack
- git checkout ${SPACK_REF}
- popd
-
- . "./spack/share/spack/setup-env.sh"
-
- spack --version
-
-Finally, you would also want your generated rebuild jobs to clone that version
-of spack, so you would update your ``spack.yaml`` from above as follows:
+That takes care of getting the desired version of spack when your pipeline is
+generated by ``spack ci generate``. You also want your generated rebuild jobs
+(all of them) to clone that version of spack, so next you would update your
+``spack.yaml`` from above as follows:
.. code-block:: yaml
@@ -468,21 +694,21 @@ of spack, so you would update your ``spack.yaml`` from above as follows:
- spack-kube
image: spack/ubuntu-bionic
before_script:
- - ./cloneSpack.sh
+ - git clone ${SPACK_REPO}
+ - pushd spack && git checkout ${SPACK_REF} && popd
+ - . "./spack/share/spack/setup-env.sh"
script:
- - spack env activate --without-view .
+ - spack env activate --without-view ${SPACK_CONCRETE_ENV_DIR}
- spack -d ci rebuild
after_script:
- rm -rf ./spack
Now all of the generated rebuild jobs will use the same shell script to clone
-spack before running their actual workload. Note in the above example the
-provision of a custom ``script`` section. The reason for this is to run
-``spack ci rebuild`` in debug mode to get more information when builds fail.
+spack before running their actual workload.
Now imagine you have long pipelines with many specs to be built, and you
are pointing to a spack repository and branch that has a tendency to change
-frequently, such as the main repo and it's ``develop`` branch. If each child
+frequently, such as the main repo and its ``develop`` branch. If each child
job checks out the ``develop`` branch, that could result in some jobs running
with one SHA of spack, while later jobs run with another. To help avoid this
issue, the pipeline generation process saves global variables called
@@ -492,13 +718,32 @@ simply contains the human-readable value produced by ``spack -V`` at pipeline
generation time, the ``SPACK_CHECKOUT_VERSION`` variable can be used in a
``git checkout`` command to make sure all child jobs checkout the same version
of spack used to generate the pipeline. To take advantage of this, you could
-simply replace ``git checkout ${SPACK_REF}`` in the example ``cloneSpack.sh``
-script above with ``git checkout ${SPACK_CHECKOUT_VERSION}``.
+simply replace ``git checkout ${SPACK_REF}`` in the example ``spack.yaml``
+above with ``git checkout ${SPACK_CHECKOUT_VERSION}``.
On the other hand, if you're pointing to a spack repository and branch under your
control, there may be no benefit in using the captured ``SPACK_CHECKOUT_VERSION``,
-and you can instead just clone using the project CI variables you set (in the
-earlier example these were ``SPACK_REPO`` and ``SPACK_REF``).
+and you can instead just clone using the variables you define (``SPACK_REPO``
+and ``SPACK_REF`` in the example aboves).
+
+.. _custom_workflow:
+
+---------------
+Custom Workflow
+---------------
+
+There are many ways to take advantage of spack CI pipelines to achieve custom
+workflows for building packages or other resources. One example of a custom
+pipelines workflow is the spack tutorial container
+`repo <https://github.com/spack/spack-tutorial-container>`_. This project uses
+GitHub (for source control), GitLab (for automated spack ci pipelines), and
+DockerHub automated builds to build Docker images (complete with fully populate
+binary mirror) used by instructors and participants of a spack tutorial.
+
+Take a look a the repo to see how it is accomplished using spack CI pipelines,
+and see the following markdown files at the root of the repository for
+descriptions and documentation describing the workflow: ``DESCRIPTION.md``,
+``DOCKERHUB_SETUP.md``, ``GITLAB_SETUP.md``, and ``UPDATING.md``.
.. _ci_environment_variables:
@@ -515,28 +760,33 @@ environment variables used by the pipeline infrastructure are described here.
AWS_ACCESS_KEY_ID
^^^^^^^^^^^^^^^^^
-Needed when binary mirror is an S3 bucket.
+Optional. Only needed when binary mirror is an S3 bucket.
^^^^^^^^^^^^^^^^^^^^^
AWS_SECRET_ACCESS_KEY
^^^^^^^^^^^^^^^^^^^^^
-Needed when binary mirror is an S3 bucket.
+Optional. Only needed when binary mirror is an S3 bucket.
^^^^^^^^^^^^^^^
S3_ENDPOINT_URL
^^^^^^^^^^^^^^^
-Needed when binary mirror is an S3 bucket that is *not* on AWS.
+Optional. Only needed when binary mirror is an S3 bucket that is *not* on AWS.
^^^^^^^^^^^^^^^^^
CDASH_AUTH_TOKEN
^^^^^^^^^^^^^^^^^
-Needed in order to report build groups to CDash.
+Optional. Only needed in order to report build groups to CDash.
^^^^^^^^^^^^^^^^^
SPACK_SIGNING_KEY
^^^^^^^^^^^^^^^^^
-Needed to sign/verify binary packages from the remote binary mirror.
+Optional. Only needed if you want ``spack ci rebuild`` to trust the key you
+store in this variable, in which case, it will subsequently be used to sign and
+verify binary packages (when installing or creating buildcaches). You could
+also have already trusted a key spack know about, or if no key is present anywhere,
+spack will install specs using ``--no-check-signature`` and create buildcaches
+using ``-u`` (for unsigned binaries).
diff --git a/lib/spack/docs/repositories.rst b/lib/spack/docs/repositories.rst
index 4a2c163886..3368c26a28 100644
--- a/lib/spack/docs/repositories.rst
+++ b/lib/spack/docs/repositories.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -9,7 +9,7 @@
Package Repositories
=============================
-Spack comes with over 1,000 built-in package recipes in
+Spack comes with thousands of built-in package recipes in
``var/spack/repos/builtin/``. This is a **package repository** -- a
directory that Spack searches when it needs to find a package by name.
You may need to maintain packages for restricted, proprietary or
diff --git a/lib/spack/docs/requirements.txt b/lib/spack/docs/requirements.txt
index f5c50b0199..5eee3b8b5a 100644
--- a/lib/spack/docs/requirements.txt
+++ b/lib/spack/docs/requirements.txt
@@ -1,7 +1,7 @@
# These dependencies should be installed using pip in order
# to build the documentation.
-sphinx
+sphinx>=3.4,!=4.1.2
sphinxcontrib-programoutput
sphinx-rtd-theme
python-levenshtein
diff --git a/lib/spack/docs/spack.yaml b/lib/spack/docs/spack.yaml
index 3c8cd14d10..8f3fd53e8b 100644
--- a/lib/spack/docs/spack.yaml
+++ b/lib/spack/docs/spack.yaml
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,20 @@
# these commands in this directory to install Sphinx and its plugins,
# then build the docs:
#
-# spack install
# spack env activate .
+# spack install
# make
#
spack:
specs:
- - py-sphinx
+ # Sphinx
+ - "py-sphinx@3.4:4.1.1,4.1.3:"
- py-sphinxcontrib-programoutput
- py-sphinx-rtd-theme
+ # VCS
+ - git
+ - mercurial
+ - subversion
+ # Plotting
+ - graphviz
+ concretization: together
diff --git a/lib/spack/docs/tables/system_prerequisites.csv b/lib/spack/docs/tables/system_prerequisites.csv
new file mode 100644
index 0000000000..074be4bffb
--- /dev/null
+++ b/lib/spack/docs/tables/system_prerequisites.csv
@@ -0,0 +1,18 @@
+Name, Supported Versions, Notes, Requirement Reason
+Python, 2.6/2.7/3.5-3.9, , Interpreter for Spack
+C/C++ Compilers, , , Building software
+make, , , Build software
+patch, , , Build software
+bash, , , Compiler wrappers
+tar, , , Extract/create archives
+gzip, , , Compress/Decompress archives
+unzip, , , Compress/Decompress archives
+bzip, , , Compress/Decompress archives
+xz, , , Compress/Decompress archives
+zstd, , Optional, Compress/Decompress archives
+file, , , Create/Use Buildcaches
+gnupg2, , , Sign/Verify Buildcaches
+git, , , Manage Software Repositories
+svn, , Optional, Manage Software Repositories
+hg, , Optional, Manage Software Repositories
+Python header files, , Optional (e.g. ``python3-dev`` on Debian), Bootstrapping from sources \ No newline at end of file
diff --git a/lib/spack/docs/workflows.rst b/lib/spack/docs/workflows.rst
index 4d3a97012c..c3f0e6c423 100644
--- a/lib/spack/docs/workflows.rst
+++ b/lib/spack/docs/workflows.rst
@@ -1,4 +1,4 @@
-.. Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+.. Copyright 2013-2021 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)
@@ -387,7 +387,7 @@ some nice features:
Spack-built compiler can be given to an IDE without requiring the
IDE to load that compiler's module.
-Unfortunately, Spack's RPATH support does not work in all case. For example:
+Unfortunately, Spack's RPATH support does not work in every case. For example:
#. Software comes in many forms --- not just compiled ELF binaries,
but also as interpreted code in Python, R, JVM bytecode, etc.
@@ -543,7 +543,8 @@ specified from the command line using the ``--projection-file`` option
to the ``spack view`` command.
The projections configuration file is a mapping of partial specs to
-spec format strings, as shown in the example below.
+spec format strings, defined by the :meth:`~spack.spec.Spec.format`
+function, as shown in the example below.
.. code-block:: yaml
diff --git a/lib/spack/env/cc b/lib/spack/env/cc
index 5efe015c9e..b603c3bc32 100755
--- a/lib/spack/env/cc
+++ b/lib/spack/env/cc
@@ -1,6 +1,6 @@
#!/bin/bash
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -40,6 +40,14 @@ parameters=(
SPACK_SYSTEM_DIRS
)
+# Optional parameters that aren't required to be set
+
+# Boolean (true/false/custom) if we want to add debug flags
+# SPACK_ADD_DEBUG_FLAGS
+
+# If a custom flag is requested, it will be defined
+# SPACK_DEBUG_FLAGS
+
# The compiler input variables are checked for sanity later:
# SPACK_CC, SPACK_CXX, SPACK_F77, SPACK_FC
# The default compiler flags are passed from these variables:
@@ -87,6 +95,25 @@ for param in "${parameters[@]}"; do
fi
done
+# Check if optional parameters are defined
+# If we aren't asking for debug flags, don't add them
+if [[ -z ${SPACK_ADD_DEBUG_FLAGS+x} ]]; then
+ SPACK_ADD_DEBUG_FLAGS="false"
+fi
+
+# SPACK_ADD_DEBUG_FLAGS must be true/false/custom
+is_valid="false"
+for param in "true" "false" "custom"; do
+ if [ "$param" == "$SPACK_ADD_DEBUG_FLAGS" ]; then
+ is_valid="true"
+ fi
+done
+
+# Exit with error if we are given an incorrect value
+if [ "$is_valid" == "false" ]; then
+ die "SPACK_ADD_DEBUG_FLAGS, if defined, must be one of 'true' 'false' or 'custom'"
+fi
+
# Figure out the type of compiler, the language, and the mode so that
# the compiler script knows what to do.
#
@@ -101,37 +128,42 @@ done
# ld link
# ccld compile & link
-command=$(basename "$0")
+command="${0##*/}"
comp="CC"
case "$command" in
cpp)
mode=cpp
+ debug_flags="-g"
;;
cc|c89|c99|gcc|clang|armclang|icc|icx|pgcc|nvc|xlc|xlc_r|fcc)
command="$SPACK_CC"
language="C"
comp="CC"
lang_flags=C
+ debug_flags="-g"
;;
c++|CC|g++|clang++|armclang++|icpc|icpx|pgc++|nvc++|xlc++|xlc++_r|FCC)
command="$SPACK_CXX"
language="C++"
comp="CXX"
lang_flags=CXX
+ debug_flags="-g"
;;
ftn|f90|fc|f95|gfortran|flang|armflang|ifort|ifx|pgfortran|nvfortran|xlf90|xlf90_r|nagfor|frt)
command="$SPACK_FC"
language="Fortran 90"
comp="FC"
lang_flags=F
+ debug_flags="-g"
;;
- f77|xlf|xlf_r|pgf77|frt|flang)
+ f77|xlf|xlf_r|pgf77)
command="$SPACK_F77"
language="Fortran 77"
comp="F77"
lang_flags=F
+ debug_flags="-g"
;;
- ld)
+ ld|ld.gold|ld.lld)
mode=ld
;;
*)
@@ -215,7 +247,7 @@ export PATH=""
for dir in "${env_path[@]}"; do
addpath=true
for env_dir in "${spack_env_dirs[@]}"; do
- if [[ "$dir" == "$env_dir" ]]; then
+ if [[ "${dir%%/}" == "$env_dir" ]]; then
addpath=false
break
fi
@@ -277,14 +309,22 @@ other_args=()
isystem_system_includes=()
isystem_includes=()
-while [ -n "$1" ]; do
+while [ $# -ne 0 ]; do
+
# an RPATH to be added after the case statement.
rp=""
+ # Multiple consecutive spaces in the command line can
+ # result in blank arguments
+ if [ -z "$1" ]; then
+ shift
+ continue
+ fi
+
case "$1" in
-isystem*)
arg="${1#-isystem}"
- isystem_was_used=true
+ isystem_was_used=true
if [ -z "$arg" ]; then shift; arg="$1"; fi
if system_dir "$arg"; then
isystem_system_includes+=("$arg")
@@ -311,6 +351,16 @@ while [ -n "$1" ]; do
fi
;;
-l*)
+ # -loopopt=0 is generated erroneously in autoconf <= 2.69,
+ # and passed by ifx to the linker, which confuses it with a
+ # library. Filter it out.
+ # TODO: generalize filtering of args with an env var, so that
+ # TODO: we do not have to special case this here.
+ if { [ "$mode" = "ccld" ] || [ $mode = "ld" ]; } \
+ && [ "$1" != "${1#-loopopt}" ]; then
+ shift
+ continue
+ fi
arg="${1#-l}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
other_args+=("-l$arg")
@@ -320,9 +370,13 @@ while [ -n "$1" ]; do
if [ -z "$arg" ]; then shift; arg="$1"; fi
if [[ "$arg" = -rpath=* ]]; then
rp="${arg#-rpath=}"
+ elif [[ "$arg" = --rpath=* ]]; then
+ rp="${arg#--rpath=}"
elif [[ "$arg" = -rpath,* ]]; then
rp="${arg#-rpath,}"
- elif [[ "$arg" = -rpath ]]; then
+ elif [[ "$arg" = --rpath,* ]]; then
+ rp="${arg#--rpath,}"
+ elif [[ "$arg" =~ ^-?-rpath$ ]]; then
shift; arg="$1"
if [[ "$arg" != -Wl,* ]]; then
die "-Wl,-rpath was not followed by -Wl,*"
@@ -339,7 +393,9 @@ while [ -n "$1" ]; do
if [ -z "$arg" ]; then shift; arg="$1"; fi
if [[ "$arg" = -rpath=* ]]; then
rp="${arg#-rpath=}"
- elif [[ "$arg" = -rpath ]]; then
+ elif [[ "$arg" = --rpath=* ]]; then
+ rp="${arg#--rpath=}"
+ elif [[ "$arg" = -rpath ]] || [[ "$arg" = --rpath ]]; then
shift; arg="$1"
if [[ "$arg" != -Xlinker,* ]]; then
die "-Xlinker,-rpath was not followed by -Xlinker,*"
@@ -391,6 +447,16 @@ done
#
flags=()
+# Add debug flags
+if [ "${SPACK_ADD_DEBUG_FLAGS}" == "true" ]; then
+ flags=("${flags[@]}" "${debug_flags}")
+
+# If a custom flag is requested, derive from environment
+elif [ "$SPACK_ADD_DEBUG_FLAGS" == "custom" ]; then
+ IFS=' ' read -ra SPACK_DEBUG_FLAGS <<< "$SPACK_DEBUG_FLAGS"
+ flags=("${flags[@]}" "${SPACK_DEBUG_FLAGS[@]}")
+fi
+
# Fortran flags come before CPPFLAGS
case "$mode" in
cc|ccld)
@@ -434,7 +500,7 @@ then
ld)
flags=("${flags[@]}" -headerpad_max_install_names) ;;
ccld)
- flags=("${flags[@]}" -Wl,-headerpad_max_install_names) ;;
+ flags=("${flags[@]}" "-Wl,-headerpad_max_install_names") ;;
esac
fi
@@ -491,19 +557,19 @@ args+=("${flags[@]}")
# Insert include directories just prior to any system include directories
for dir in "${includes[@]}"; do args+=("-I$dir"); done
-for dir in "${isystem_includes[@]}"; do args+=("-isystem$dir"); done
+for dir in "${isystem_includes[@]}"; do args+=("-isystem" "$dir"); done
IFS=':' read -ra spack_include_dirs <<< "$SPACK_INCLUDE_DIRS"
if [[ $mode == cpp || $mode == cc || $mode == as || $mode == ccld ]]; then
if [[ "$isystem_was_used" == "true" ]] ; then
- for dir in "${spack_include_dirs[@]}"; do args+=("-isystem$dir"); done
+ for dir in "${spack_include_dirs[@]}"; do args+=("-isystem" "$dir"); done
else
- for dir in "${spack_include_dirs[@]}"; do args+=("-I$dir"); done
+ for dir in "${spack_include_dirs[@]}"; do args+=("-I$dir"); done
fi
fi
for dir in "${system_includes[@]}"; do args+=("-I$dir"); done
-for dir in "${isystem_system_includes[@]}"; do args+=("-isystem$dir"); done
+for dir in "${isystem_system_includes[@]}"; do args+=("-isystem" "$dir"); done
# Library search paths
for dir in "${libdirs[@]}"; do args+=("-L$dir"); done
@@ -512,12 +578,12 @@ for dir in "${system_libdirs[@]}"; do args+=("-L$dir"); done
# RPATHs arguments
case "$mode" in
ccld)
- if [ ! -z "$dtags_to_add" ] ; then args+=("$linker_arg$dtags_to_add") ; fi
+ if [ -n "$dtags_to_add" ] ; then args+=("$linker_arg$dtags_to_add") ; fi
for dir in "${rpaths[@]}"; do args+=("$rpath$dir"); done
for dir in "${system_rpaths[@]}"; do args+=("$rpath$dir"); done
;;
ld)
- if [ ! -z "$dtags_to_add" ] ; then args+=("$dtags_to_add") ; fi
+ if [ -n "$dtags_to_add" ] ; then args+=("$dtags_to_add") ; fi
for dir in "${rpaths[@]}"; do args+=("-rpath" "$dir"); done
for dir in "${system_rpaths[@]}"; do args+=("-rpath" "$dir"); done
;;
@@ -550,6 +616,9 @@ if [[ $SPACK_TEST_COMMAND == dump-args ]]; then
IFS="
" && echo "${full_command[*]}"
exit
+elif [[ $SPACK_TEST_COMMAND =~ dump-env-* ]]; then
+ var=${SPACK_TEST_COMMAND#dump-env-}
+ echo "$0: $var: ${!var}"
elif [[ -n $SPACK_TEST_COMMAND ]]; then
die "ERROR: Unknown test command"
fi
diff --git a/lib/spack/env/ld.gold b/lib/spack/env/ld.gold
new file mode 120000
index 0000000000..2652f5f42c
--- /dev/null
+++ b/lib/spack/env/ld.gold
@@ -0,0 +1 @@
+cc \ No newline at end of file
diff --git a/lib/spack/env/ld.lld b/lib/spack/env/ld.lld
new file mode 120000
index 0000000000..2652f5f42c
--- /dev/null
+++ b/lib/spack/env/ld.lld
@@ -0,0 +1 @@
+cc \ No newline at end of file
diff --git a/lib/spack/external/__init__.py b/lib/spack/external/__init__.py
index 1c98852eb6..7ae506a46b 100644
--- a/lib/spack/external/__init__.py
+++ b/lib/spack/external/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ archspec
* Homepage: https://pypi.python.org/pypi/archspec
* Usage: Labeling, comparison and detection of microarchitectures
-* Version: 0.1.2 (commit 2846749dc5b12ae2b30ff1d3f0270a4a5954710d)
+* Version: 0.1.2 (commit 4dbf253daf37e4a008e4beb6489f347b4a35aed4)
argparse
--------
diff --git a/lib/spack/external/archspec/__init__.py b/lib/spack/external/archspec/__init__.py
index 1349425634..1188c6cecc 100644
--- a/lib/spack/external/archspec/__init__.py
+++ b/lib/spack/external/archspec/__init__.py
@@ -1,2 +1,2 @@
"""Init file to avoid namespace packages"""
-__version__ = "0.1.1"
+__version__ = "0.1.2"
diff --git a/lib/spack/external/archspec/cpu/detect.py b/lib/spack/external/archspec/cpu/detect.py
index e65076c788..eb75cdfb0e 100644
--- a/lib/spack/external/archspec/cpu/detect.py
+++ b/lib/spack/external/archspec/cpu/detect.py
@@ -99,17 +99,29 @@ def sysctl_info_dict():
def sysctl(*args):
return _check_output(["sysctl"] + list(args), env=child_environment).strip()
- flags = (
- sysctl("-n", "machdep.cpu.features").lower()
- + " "
- + sysctl("-n", "machdep.cpu.leaf7_features").lower()
- )
- info = {
- "vendor_id": sysctl("-n", "machdep.cpu.vendor"),
- "flags": flags,
- "model": sysctl("-n", "machdep.cpu.model"),
- "model name": sysctl("-n", "machdep.cpu.brand_string"),
- }
+ if platform.machine() == "x86_64":
+ flags = (
+ sysctl("-n", "machdep.cpu.features").lower()
+ + " "
+ + sysctl("-n", "machdep.cpu.leaf7_features").lower()
+ )
+ info = {
+ "vendor_id": sysctl("-n", "machdep.cpu.vendor"),
+ "flags": flags,
+ "model": sysctl("-n", "machdep.cpu.model"),
+ "model name": sysctl("-n", "machdep.cpu.brand_string"),
+ }
+ else:
+ model = (
+ "m1" if "Apple" in sysctl("-n", "machdep.cpu.brand_string") else "unknown"
+ )
+ info = {
+ "vendor_id": "Apple",
+ "flags": [],
+ "model": model,
+ "CPU implementer": "Apple",
+ "model name": sysctl("-n", "machdep.cpu.brand_string"),
+ }
return info
@@ -173,6 +185,11 @@ def compatible_microarchitectures(info):
info (dict): dictionary containing information on the host cpu
"""
architecture_family = platform.machine()
+ # On Apple M1 platform.machine() returns "arm64" instead of "aarch64"
+ # so we should normalize the name here
+ if architecture_family == "arm64":
+ architecture_family = "aarch64"
+
# If a tester is not registered, be conservative and assume no known
# target is compatible with the host
tester = COMPATIBILITY_CHECKS.get(architecture_family, lambda x, y: False)
diff --git a/lib/spack/external/archspec/json/cpu/microarchitectures.json b/lib/spack/external/archspec/json/cpu/microarchitectures.json
index 889848c8ec..40f59bfd9e 100644
--- a/lib/spack/external/archspec/json/cpu/microarchitectures.json
+++ b/lib/spack/external/archspec/json/cpu/microarchitectures.json
@@ -75,6 +75,13 @@
"flags": "-march={name} -mtune=generic"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "x86-64",
+ "flags": "-march={name} -mtune=generic"
+ }
+ ],
"intel": [
{
"versions": ":",
@@ -84,6 +91,166 @@
]
}
},
+ "x86_64_v2": {
+ "from": ["x86_64"],
+ "vendor": "generic",
+ "features": [
+ "cx16",
+ "lahf_lm",
+ "mmx",
+ "sse",
+ "sse2",
+ "ssse3",
+ "sse4_1",
+ "sse4_2",
+ "popcnt"
+ ],
+ "compilers": {
+ "gcc": [
+ {
+ "versions": "11.1:",
+ "name": "x86-64-v2",
+ "flags": "-march={name} -mtune=generic"
+ },
+ {
+ "versions": "4.6:11.0",
+ "name": "x86-64",
+ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3"
+ }
+ ],
+ "clang": [
+ {
+ "versions": "12.0:",
+ "name": "x86-64-v2",
+ "flags": "-march={name} -mtune=generic"
+ },
+ {
+ "versions": "3.9:11.1",
+ "name": "x86-64",
+ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3"
+ }
+ ]
+ }
+ },
+ "x86_64_v3": {
+ "from": ["x86_64_v2"],
+ "vendor": "generic",
+ "features": [
+ "cx16",
+ "lahf_lm",
+ "mmx",
+ "sse",
+ "sse2",
+ "ssse3",
+ "sse4_1",
+ "sse4_2",
+ "popcnt",
+ "avx",
+ "avx2",
+ "bmi1",
+ "bmi2",
+ "f16c",
+ "fma",
+ "abm",
+ "movbe",
+ "xsave"
+ ],
+ "compilers": {
+ "gcc": [
+ {
+ "versions": "11.1:",
+ "name": "x86-64-v3",
+ "flags": "-march={name} -mtune=generic"
+ },
+ {
+ "versions": "4.8:11.0",
+ "name": "x86-64",
+ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave"
+ }
+ ],
+ "clang": [
+ {
+ "versions": "12.0:",
+ "name": "x86-64-v3",
+ "flags": "-march={name} -mtune=generic"
+ },
+ {
+ "versions": "3.9:11.1",
+ "name": "x86-64",
+ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave"
+ }
+ ],
+ "apple-clang": [
+ {
+ "versions": "8.0:",
+ "name": "x86-64",
+ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave"
+ }
+ ]
+ }
+ },
+ "x86_64_v4": {
+ "from": ["x86_64_v3"],
+ "vendor": "generic",
+ "features": [
+ "cx16",
+ "lahf_lm",
+ "mmx",
+ "sse",
+ "sse2",
+ "ssse3",
+ "sse4_1",
+ "sse4_2",
+ "popcnt",
+ "avx",
+ "avx2",
+ "bmi1",
+ "bmi2",
+ "f16c",
+ "fma",
+ "abm",
+ "movbe",
+ "xsave",
+ "avx512f",
+ "avx512bw",
+ "avx512cd",
+ "avx512dq",
+ "avx512vl"
+ ],
+ "compilers": {
+ "gcc": [
+ {
+ "versions": "11.1:",
+ "name": "x86-64-v4",
+ "flags": "-march={name} -mtune=generic"
+ },
+ {
+ "versions": "6.0:11.0",
+ "name": "x86-64",
+ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave -mavx512f -mavx512bw -mavx512cd -mavx512dq -mavx512vl"
+ }
+ ],
+ "clang": [
+ {
+ "versions": "12.0:",
+ "name": "x86-64-v4",
+ "flags": "-march={name} -mtune=generic"
+ },
+ {
+ "versions": "3.9:11.1",
+ "name": "x86-64",
+ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave -mavx512f -mavx512bw -mavx512cd -mavx512dq -mavx512vl"
+ }
+ ],
+ "apple-clang": [
+ {
+ "versions": "8.0:",
+ "name": "x86-64",
+ "flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave -mavx512f -mavx512bw -mavx512cd -mavx512dq -mavx512vl"
+ }
+ ]
+ }
+ },
"nocona": {
"from": ["x86_64"],
"vendor": "GenuineIntel",
@@ -106,6 +273,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune=generic"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -143,6 +316,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune=generic"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -152,13 +331,13 @@
"intel": [
{
"versions": "16.0:",
- "flags": "-march={name} -mtune={name}}"
+ "flags": "-march={name} -mtune={name}"
}
]
}
},
"nehalem": {
- "from": ["core2"],
+ "from": ["core2", "x86_64_v2"],
"vendor": "GenuineIntel",
"features": [
"mmx",
@@ -187,6 +366,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune=generic"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -229,6 +414,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune=generic"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -277,6 +468,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -331,6 +528,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -351,7 +554,7 @@
}
},
"haswell": {
- "from": ["ivybridge"],
+ "from": ["ivybridge", "x86_64_v3"],
"vendor": "GenuineIntel",
"features": [
"mmx",
@@ -390,6 +593,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -446,6 +655,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -500,6 +715,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -558,6 +779,13 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "knl",
+ "flags": "-march={name} -mtune=generic"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -574,7 +802,7 @@
}
},
"skylake_avx512": {
- "from": ["skylake"],
+ "from": ["skylake", "x86_64_v4"],
"vendor": "GenuineIntel",
"features": [
"mmx",
@@ -621,6 +849,13 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "skylake-avx512",
+ "flags": "-march={name} -mtune=generic"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -685,6 +920,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"apple-clang": [
{
"versions": "8.0:",
@@ -746,6 +987,12 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"apple-clang": [
{
"versions": "11.0:",
@@ -754,7 +1001,7 @@
],
"intel": [
{
- "versions": "19.0:",
+ "versions": "19.0.1:",
"flags": "-march={name} -mtune={name}"
}
]
@@ -827,6 +1074,13 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "icelake-client",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"apple-clang": [
{
"versions": "10.0.1:",
@@ -875,6 +1129,13 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "amdfam10",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"intel": [
{
"versions": "16.0:",
@@ -885,7 +1146,7 @@
}
},
"bulldozer": {
- "from": ["x86_64"],
+ "from": ["x86_64_v2"],
"vendor": "AuthenticAMD",
"features": [
"mmx",
@@ -918,6 +1179,13 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "bdver1",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"intel": [
{
"versions": "16.0:",
@@ -965,6 +1233,13 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "bdver2",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"intel": [
{
"versions": "16.0:",
@@ -1013,6 +1288,13 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "bdver3",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"intel": [
{
"versions": "16.0:",
@@ -1023,7 +1305,7 @@
}
},
"excavator": {
- "from": ["steamroller"],
+ "from": ["steamroller", "x86_64_v3"],
"vendor": "AuthenticAMD",
"features": [
"mmx",
@@ -1064,6 +1346,13 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "bdver4",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"intel": [
{
"versions": "16.0:",
@@ -1075,7 +1364,7 @@
}
},
"zen": {
- "from": ["x86_64"],
+ "from": ["x86_64_v3"],
"vendor": "AuthenticAMD",
"features": [
"bmi1",
@@ -1119,6 +1408,13 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "znver1",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"intel": [
{
"versions": "16.0:",
@@ -1175,6 +1471,13 @@
"flags": "-march={name} -mtune={name}"
}
],
+ "aocc": [
+ {
+ "versions": "2.2:",
+ "name": "znver2",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
"intel": [
{
"versions": "16.0:",
@@ -1185,6 +1488,64 @@
]
}
},
+ "zen3": {
+ "from": ["zen2"],
+ "vendor": "AuthenticAMD",
+ "features": [
+ "bmi1",
+ "bmi2",
+ "f16c",
+ "fma",
+ "fsgsbase",
+ "avx",
+ "avx2",
+ "rdseed",
+ "clzero",
+ "aes",
+ "pclmulqdq",
+ "cx16",
+ "movbe",
+ "mmx",
+ "sse",
+ "sse2",
+ "sse4a",
+ "ssse3",
+ "sse4_1",
+ "sse4_2",
+ "abm",
+ "xsavec",
+ "xsaveopt",
+ "clflushopt",
+ "popcnt",
+ "clwb",
+ "vaes",
+ "vpclmulqdq",
+ "pku"
+ ],
+ "compilers": {
+ "gcc": [
+ {
+ "versions": "10.3:",
+ "name": "znver3",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
+ "clang": [
+ {
+ "versions": "12.0:",
+ "name": "znver3",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ],
+ "aocc": [
+ {
+ "versions": "3.0:",
+ "name": "znver3",
+ "flags": "-march={name} -mtune={name}"
+ }
+ ]
+ }
+ },
"ppc64": {
"from": [],
"vendor": "generic",
@@ -1358,6 +1719,18 @@
"versions": ":",
"flags": "-march=armv8-a -mtune=generic"
}
+ ],
+ "apple-clang": [
+ {
+ "versions": ":",
+ "flags": "-march=armv8-a -mtune=generic"
+ }
+ ],
+ "arm": [
+ {
+ "versions": ":",
+ "flags": "-march=armv8-a -mtune=generic"
+ }
]
}
},
@@ -1461,6 +1834,12 @@
"versions": "5:",
"flags": "-march=armv8.2-a+crc+crypto+fp16+sve"
}
+ ],
+ "arm": [
+ {
+ "versions": "20:",
+ "flags": "-march=armv8.2-a+crc+crypto+fp16+sve"
+ }
]
}
},
@@ -1563,9 +1942,40 @@
"versions": "5:",
"flags" : "-march=armv8.2-a+fp16+rcpc+dotprod+crypto"
}
+ ],
+ "arm" : [
+ {
+ "versions": "20:",
+ "flags" : "-march=armv8.2-a+fp16+rcpc+dotprod+crypto"
+ }
]
}
},
+ "m1": {
+ "from": ["aarch64"],
+ "vendor": "Apple",
+ "features": [],
+ "compilers": {
+ "gcc": [
+ {
+ "versions": "8.0:",
+ "flags" : "-march=armv8.4-a -mtune=generic"
+ }
+ ],
+ "clang" : [
+ {
+ "versions": "9.0:",
+ "flags" : "-march=armv8.4-a"
+ }
+ ],
+ "apple-clang": [
+ {
+ "versions": "11.0:",
+ "flags" : "-march=armv8.4-a"
+ }
+ ]
+ }
+ },
"arm": {
"from": [],
"vendor": "generic",
diff --git a/lib/spack/external/ordereddict_backport.py b/lib/spack/external/ordereddict_backport.py
index 5ec8493cc9..3c7f012e9e 100644
--- a/lib/spack/external/ordereddict_backport.py
+++ b/lib/spack/external/ordereddict_backport.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/external/argparse.py b/lib/spack/external/py2/argparse.py
index d2d232d51e..d2d232d51e 100644
--- a/lib/spack/external/argparse.py
+++ b/lib/spack/external/py2/argparse.py
diff --git a/lib/spack/external/py2/typing.py b/lib/spack/external/py2/typing.py
new file mode 100644
index 0000000000..cc32de8844
--- /dev/null
+++ b/lib/spack/external/py2/typing.py
@@ -0,0 +1,84 @@
+# Copyright 2013-2021 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 is a fake set of symbols to allow spack to import typing in python
+versions where we do not support type checking (<3)
+"""
+Annotated = None
+Any = None
+Callable = None
+ForwardRef = None
+Generic = None
+Literal = None
+Optional = None
+Tuple = None
+TypeVar = None
+Union = None
+AbstractSet = None
+ByteString = None
+Container = None
+Hashable = None
+ItemsView = None
+Iterable = None
+Iterator = None
+KeysView = None
+Mapping = None
+MappingView = None
+MutableMapping = None
+MutableSequence = None
+MutableSet = None
+Sequence = None
+Sized = None
+ValuesView = None
+Awaitable = None
+AsyncIterator = None
+AsyncIterable = None
+Coroutine = None
+Collection = None
+AsyncGenerator = None
+AsyncContextManager = None
+Reversible = None
+SupportsAbs = None
+SupportsBytes = None
+SupportsComplex = None
+SupportsFloat = None
+SupportsInt = None
+SupportsRound = None
+ChainMap = None
+Dict = None
+List = None
+OrderedDict = None
+Set = None
+FrozenSet = None
+NamedTuple = None
+Generator = None
+AnyStr = None
+cast = None
+get_args = None
+get_origin = None
+get_type_hints = None
+no_type_check = None
+no_type_check_decorator = None
+NoReturn = None
+
+# these are the typing extension symbols
+ClassVar = None
+Final = None
+Protocol = None
+Type = None
+TypedDict = None
+ContextManager = None
+Counter = None
+Deque = None
+DefaultDict = None
+SupportsIndex = None
+final = None
+IntVar = None
+Literal = None
+NewType = None
+overload = None
+runtime_checkable = None
+Text = None
+TYPE_CHECKING = None
diff --git a/lib/spack/llnl/__init__.py b/lib/spack/llnl/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/llnl/__init__.py
+++ b/lib/spack/llnl/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/llnl/util/__init__.py b/lib/spack/llnl/util/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/llnl/util/__init__.py
+++ b/lib/spack/llnl/util/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/llnl/util/argparsewriter.py b/lib/spack/llnl/util/argparsewriter.py
index 8ecf6acc88..1ba5bd5c37 100644
--- a/lib/spack/llnl/util/argparsewriter.py
+++ b/lib/spack/llnl/util/argparsewriter.py
@@ -1,13 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-import re
import argparse
import errno
+import re
import sys
from six import StringIO
@@ -326,7 +326,7 @@ class ArgparseCompletionWriter(ArgparseWriter):
"""Returns the syntax needed to end a function definition.
Parameters:
- prog (str, optional): the command name
+ prog (str or None): the command name
Returns:
str: the function definition ending
diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py
index bc55d29be0..e44f8c608f 100644
--- a/lib/spack/llnl/util/filesystem.py
+++ b/lib/spack/llnl/util/filesystem.py
@@ -1,12 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import collections
import errno
-import hashlib
import glob
import grp
+import hashlib
import itertools
import numbers
import os
@@ -19,10 +19,11 @@ import tempfile
from contextlib import contextmanager
import six
+
from llnl.util import tty
from llnl.util.lang import dedupe, memoized
-from spack.util.executable import Executable
+from spack.util.executable import Executable
if sys.version_info >= (3, 3):
from collections.abc import Sequence # novm
@@ -69,7 +70,8 @@ __all__ = [
'touchp',
'traverse_tree',
'unset_executable_mode',
- 'working_dir'
+ 'working_dir',
+ 'keep_modification_time'
]
@@ -442,7 +444,7 @@ def copy_tree(src, dest, symlinks=True, ignore=None, _permissions=False):
src (str): the directory to copy
dest (str): the destination directory
symlinks (bool): whether or not to preserve symlinks
- ignore (function): function indicating which files to ignore
+ ignore (typing.Callable): function indicating which files to ignore
_permissions (bool): for internal use only
Raises:
@@ -516,7 +518,7 @@ def install_tree(src, dest, symlinks=True, ignore=None):
src (str): the directory to install
dest (str): the destination directory
symlinks (bool): whether or not to preserve symlinks
- ignore (function): function indicating which files to ignore
+ ignore (typing.Callable): function indicating which files to ignore
Raises:
IOError: if *src* does not match any files or directories
@@ -555,12 +557,12 @@ def mkdirp(*paths, **kwargs):
paths (str): paths to create with mkdirp
Keyword Aguments:
- mode (permission bits or None, optional): optional permissions to set
+ mode (permission bits or None): optional permissions to set
on the created directory -- use OS default if not provided
- group (group name or None, optional): optional group for permissions of
+ group (group name or None): optional group for permissions of
final created directory -- use OS default if not provided. Only
used if world write permissions are not set
- default_perms ('parents' or 'args', optional): The default permissions
+ default_perms (str or None): one of 'parents' or 'args'. The default permissions
that are set for directories that are not themselves an argument
for mkdirp. 'parents' means intermediate directories get the
permissions of their direct parent directory, 'args' means
@@ -690,7 +692,7 @@ def replace_directory_transaction(directory_name, tmp_root=None):
try:
yield tmp_dir
- except (Exception, KeyboardInterrupt, SystemExit) as e:
+ except (Exception, KeyboardInterrupt, SystemExit):
# Delete what was there, before copying back the original content
if os.path.exists(directory_name):
shutil.rmtree(directory_name)
@@ -699,10 +701,7 @@ def replace_directory_transaction(directory_name, tmp_root=None):
dst=os.path.dirname(directory_name)
)
tty.debug('DIRECTORY RECOVERED [{0}]'.format(directory_name))
-
- msg = 'the transactional move of "{0}" failed.'
- msg += '\n ' + str(e)
- raise RuntimeError(msg.format(directory_name))
+ raise
else:
# Otherwise delete the temporary directory
shutil.rmtree(tmp_dir)
@@ -864,7 +863,7 @@ def traverse_tree(source_root, dest_root, rel_path='', **kwargs):
Keyword Arguments:
order (str): Whether to do pre- or post-order traversal. Accepted
values are 'pre' and 'post'
- ignore (function): function indicating which files to ignore
+ ignore (typing.Callable): function indicating which files to ignore
follow_nonexisting (bool): Whether to descend into directories in
``src`` that do not exit in ``dest``. Default is True
follow_links (bool): Whether to descend into symlinks in ``src``
@@ -1100,23 +1099,23 @@ def find(root, files, recursive=True):
Accepts any glob characters accepted by fnmatch:
- ======= ====================================
- Pattern Meaning
- ======= ====================================
- * matches everything
- ? matches any single character
- [seq] matches any character in ``seq``
- [!seq] matches any character not in ``seq``
- ======= ====================================
+ ========== ====================================
+ Pattern Meaning
+ ========== ====================================
+ ``*`` matches everything
+ ``?`` matches any single character
+ ``[seq]`` matches any character in ``seq``
+ ``[!seq]`` matches any character not in ``seq``
+ ========== ====================================
Parameters:
root (str): The root directory to start searching from
files (str or Sequence): Library name(s) to search for
- recurse (bool, optional): if False search only root folder,
+ recursive (bool): if False search only root folder,
if True descends top-down from the root. Defaults to True.
Returns:
- list of strings: The files that have been found
+ list: The files that have been found
"""
if isinstance(files, six.string_types):
files = [files]
@@ -1198,7 +1197,7 @@ class FileList(Sequence):
['/dir1', '/dir2']
Returns:
- list of strings: A list of directories
+ list: A list of directories
"""
return list(dedupe(
os.path.dirname(x) for x in self.files if os.path.dirname(x)
@@ -1216,7 +1215,7 @@ class FileList(Sequence):
['a.h', 'b.h']
Returns:
- list of strings: A list of base-names
+ list: A list of base-names
"""
return list(dedupe(os.path.basename(x) for x in self.files))
@@ -1303,7 +1302,7 @@ class HeaderList(FileList):
"""Stable de-duplication of the headers.
Returns:
- list of strings: A list of header files
+ list: A list of header files
"""
return self.files
@@ -1316,7 +1315,7 @@ class HeaderList(FileList):
['a', 'b']
Returns:
- list of strings: A list of files without extensions
+ list: A list of files without extensions
"""
names = []
@@ -1407,9 +1406,9 @@ def find_headers(headers, root, recursive=False):
======= ====================================
Parameters:
- headers (str or list of str): Header name(s) to search for
+ headers (str or list): Header name(s) to search for
root (str): The root directory to start searching from
- recursive (bool, optional): if False search only root folder,
+ recursive (bool): if False search only root folder,
if True descends top-down from the root. Defaults to False.
Returns:
@@ -1445,7 +1444,7 @@ def find_all_headers(root):
in the directory passed as argument.
Args:
- root (path): directory where to look recursively for header files
+ root (str): directory where to look recursively for header files
Returns:
List of all headers found in ``root`` and subdirectories.
@@ -1465,7 +1464,7 @@ class LibraryList(FileList):
"""Stable de-duplication of library files.
Returns:
- list of strings: A list of library files
+ list: A list of library files
"""
return self.files
@@ -1478,7 +1477,7 @@ class LibraryList(FileList):
['a', 'b']
Returns:
- list of strings: A list of library names
+ list: A list of library names
"""
names = []
@@ -1563,8 +1562,8 @@ def find_system_libraries(libraries, shared=True):
======= ====================================
Parameters:
- libraries (str or list of str): Library name(s) to search for
- shared (bool, optional): if True searches for shared libraries,
+ libraries (str or list): Library name(s) to search for
+ shared (bool): if True searches for shared libraries,
otherwise for static. Defaults to True.
Returns:
@@ -1614,11 +1613,11 @@ def find_libraries(libraries, root, shared=True, recursive=False):
======= ====================================
Parameters:
- libraries (str or list of str): Library name(s) to search for
+ libraries (str or list): Library name(s) to search for
root (str): The root directory to start searching from
- shared (bool, optional): if True searches for shared libraries,
+ shared (bool): if True searches for shared libraries,
otherwise for static. Defaults to True.
- recursive (bool, optional): if False search only root folder,
+ recursive (bool): if False search only root folder,
if True descends top-down from the root. Defaults to False.
Returns:
@@ -1825,3 +1824,24 @@ def remove_directory_contents(dir):
os.unlink(entry)
else:
shutil.rmtree(entry)
+
+
+@contextmanager
+def keep_modification_time(*filenames):
+ """
+ Context manager to keep the modification timestamps of the input files.
+ Tolerates and has no effect on non-existent files and files that are
+ deleted by the nested code.
+
+ Parameters:
+ *filenames: one or more files that must have their modification
+ timestamps unchanged
+ """
+ mtimes = {}
+ for f in filenames:
+ if os.path.exists(f):
+ mtimes[f] = os.path.getmtime(f)
+ yield
+ for f, mtime in mtimes.items():
+ if os.path.exists(f):
+ os.utime(f, (os.path.getatime(f), mtime))
diff --git a/lib/spack/llnl/util/lang.py b/lib/spack/llnl/util/lang.py
index 471f90490f..ac431ecbaf 100644
--- a/lib/spack/llnl/util/lang.py
+++ b/lib/spack/llnl/util/lang.py
@@ -1,19 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import division
-import multiprocessing
-import os
-import re
import functools
import inspect
+import os
+import re
+import sys
from datetime import datetime, timedelta
+
from six import string_types
-import sys
+if sys.version_info < (3, 0):
+ from itertools import izip_longest # novm
+ zip_longest = izip_longest
+else:
+ from itertools import zip_longest # novm
if sys.version_info >= (3, 3):
from collections.abc import Hashable, MutableMapping # novm
@@ -25,23 +30,6 @@ else:
ignore_modules = [r'^\.#', '~$']
-# On macOS, Python 3.8 multiprocessing now defaults to the 'spawn' start
-# method. Spack cannot currently handle this, so force the process to start
-# using the 'fork' start method.
-#
-# TODO: This solution is not ideal, as the 'fork' start method can lead to
-# crashes of the subprocess. Figure out how to make 'spawn' work.
-#
-# See:
-# * https://github.com/spack/spack/pull/18124
-# * https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods # noqa: E501
-# * https://bugs.python.org/issue33725
-if sys.version_info >= (3,): # novm
- fork_context = multiprocessing.get_context('fork')
-else:
- fork_context = multiprocessing
-
-
def index_by(objects, *funcs):
"""Create a hierarchy of dictionaries by splitting the supplied
set of objects on unique values of the supplied functions.
@@ -227,6 +215,31 @@ def list_modules(directory, **kwargs):
yield re.sub('.py$', '', name)
+def decorator_with_or_without_args(decorator):
+ """Allows a decorator to be used with or without arguments, e.g.::
+
+ # Calls the decorator function some args
+ @decorator(with, arguments, and=kwargs)
+
+ or::
+
+ # Calls the decorator function with zero arguments
+ @decorator
+
+ """
+ # See https://stackoverflow.com/questions/653368 for more on this
+ @functools.wraps(decorator)
+ def new_dec(*args, **kwargs):
+ if len(args) == 1 and len(kwargs) == 0 and callable(args[0]):
+ # actual decorated function
+ return decorator(args[0])
+ else:
+ # decorator arguments
+ return lambda realf: decorator(realf, *args, **kwargs)
+
+ return new_dec
+
+
def key_ordering(cls):
"""Decorates a class with extra methods that implement rich comparison
operations and ``__hash__``. The decorator assumes that the class
@@ -268,7 +281,197 @@ def key_ordering(cls):
return cls
-@key_ordering
+#: sentinel for testing that iterators are done in lazy_lexicographic_ordering
+done = object()
+
+
+def tuplify(seq):
+ """Helper for lazy_lexicographic_ordering()."""
+ return tuple((tuplify(x) if callable(x) else x) for x in seq())
+
+
+def lazy_eq(lseq, rseq):
+ """Equality comparison for two lazily generated sequences.
+
+ See ``lazy_lexicographic_ordering``.
+ """
+ liter = lseq() # call generators
+ riter = rseq()
+
+ # zip_longest is implemented in native code, so use it for speed.
+ # use zip_longest instead of zip because it allows us to tell
+ # which iterator was longer.
+ for left, right in zip_longest(liter, riter, fillvalue=done):
+ if (left is done) or (right is done):
+ return False
+
+ # recursively enumerate any generators, otherwise compare
+ equal = lazy_eq(left, right) if callable(left) else left == right
+ if not equal:
+ return False
+
+ return True
+
+
+def lazy_lt(lseq, rseq):
+ """Less-than comparison for two lazily generated sequences.
+
+ See ``lazy_lexicographic_ordering``.
+ """
+ liter = lseq()
+ riter = rseq()
+
+ for left, right in zip_longest(liter, riter, fillvalue=done):
+ if (left is done) or (right is done):
+ return left is done # left was shorter than right
+
+ sequence = callable(left)
+ equal = lazy_eq(left, right) if sequence else left == right
+ if equal:
+ continue
+
+ if sequence:
+ return lazy_lt(left, right)
+ if left is None:
+ return True
+ if right is None:
+ return False
+
+ return left < right
+
+ return False # if equal, return False
+
+
+@decorator_with_or_without_args
+def lazy_lexicographic_ordering(cls, set_hash=True):
+ """Decorates a class with extra methods that implement rich comparison.
+
+ This is a lazy version of the tuple comparison used frequently to
+ implement comparison in Python. Given some objects with fields, you
+ might use tuple keys to implement comparison, e.g.::
+
+ class Widget:
+ def _cmp_key(self):
+ return (
+ self.a,
+ self.b,
+ (self.c, self.d),
+ self.e
+ )
+
+ def __eq__(self, other):
+ return self._cmp_key() == other._cmp_key()
+
+ def __lt__(self):
+ return self._cmp_key() < other._cmp_key()
+
+ # etc.
+
+ Python would compare ``Widgets`` lexicographically based on their
+ tuples. The issue there for simple comparators is that we have to
+ bulid the tuples *and* we have to generate all the values in them up
+ front. When implementing comparisons for large data structures, this
+ can be costly.
+
+ Lazy lexicographic comparison maps the tuple comparison shown above
+ to generator functions. Instead of comparing based on pre-constructed
+ tuple keys, users of this decorator can compare using elements from a
+ generator. So, you'd write::
+
+ @lazy_lexicographic_ordering
+ class Widget:
+ def _cmp_iter(self):
+ yield a
+ yield b
+ def cd_fun():
+ yield c
+ yield d
+ yield cd_fun
+ yield e
+
+ # operators are added by decorator
+
+ There are no tuples preconstructed, and the generator does not have
+ to complete. Instead of tuples, we simply make functions that lazily
+ yield what would've been in the tuple. The
+ ``@lazy_lexicographic_ordering`` decorator handles the details of
+ implementing comparison operators, and the ``Widget`` implementor
+ only has to worry about writing ``_cmp_iter``, and making sure the
+ elements in it are also comparable.
+
+ Some things to note:
+
+ * If a class already has ``__eq__``, ``__ne__``, ``__lt__``,
+ ``__le__``, ``__gt__``, ``__ge__``, or ``__hash__`` defined, this
+ decorator will overwrite them.
+
+ * If ``set_hash`` is ``False``, this will not overwrite
+ ``__hash__``.
+
+ * This class uses Python 2 None-comparison semantics. If you yield
+ None and it is compared to a non-None type, None will always be
+ less than the other object.
+
+ Raises:
+ TypeError: If the class does not have a ``_cmp_iter`` method
+
+ """
+ if not has_method(cls, "_cmp_iter"):
+ raise TypeError("'%s' doesn't define _cmp_iter()." % cls.__name__)
+
+ # comparison operators are implemented in terms of lazy_eq and lazy_lt
+ def eq(self, other):
+ if self is other:
+ return True
+ return (other is not None) and lazy_eq(self._cmp_iter, other._cmp_iter)
+
+ def lt(self, other):
+ if self is other:
+ return False
+ return (other is not None) and lazy_lt(self._cmp_iter, other._cmp_iter)
+
+ def ne(self, other):
+ if self is other:
+ return False
+ return (other is None) or not lazy_eq(self._cmp_iter, other._cmp_iter)
+
+ def gt(self, other):
+ if self is other:
+ return False
+ return (other is None) or lazy_lt(other._cmp_iter, self._cmp_iter)
+
+ def le(self, other):
+ if self is other:
+ return True
+ return (other is not None) and not lazy_lt(other._cmp_iter,
+ self._cmp_iter)
+
+ def ge(self, other):
+ if self is other:
+ return True
+ return (other is None) or not lazy_lt(self._cmp_iter, other._cmp_iter)
+
+ def h(self):
+ return hash(tuplify(self._cmp_iter))
+
+ def add_func_to_class(name, func):
+ """Add a function to a class with a particular name."""
+ func.__name__ = name
+ setattr(cls, name, func)
+
+ add_func_to_class("__eq__", eq)
+ add_func_to_class("__ne__", ne)
+ add_func_to_class("__lt__", lt)
+ add_func_to_class("__le__", le)
+ add_func_to_class("__gt__", gt)
+ add_func_to_class("__ge__", ge)
+ if set_hash:
+ add_func_to_class("__hash__", h)
+
+ return cls
+
+
+@lazy_lexicographic_ordering
class HashableMap(MutableMapping):
"""This is a hashable, comparable dictionary. Hash is performed on
a tuple of the values in the dictionary."""
@@ -291,8 +494,9 @@ class HashableMap(MutableMapping):
def __delitem__(self, key):
del self.dict[key]
- def _cmp_key(self):
- return tuple(sorted(self.values()))
+ def _cmp_iter(self):
+ for _, v in sorted(self.items()):
+ yield v
def copy(self):
"""Type-agnostic clone method. Preserves subclass type."""
@@ -392,8 +596,8 @@ def pretty_date(time, now=None):
"""Convert a datetime or timestamp to a pretty, relative date.
Args:
- time (datetime or int): date to print prettily
- now (datetime): dateimte for 'now', i.e. the date the pretty date
+ time (datetime.datetime or int): date to print prettily
+ now (datetime.datetime): datetime for 'now', i.e. the date the pretty date
is relative to (default is datetime.now())
Returns:
@@ -467,7 +671,7 @@ def pretty_string_to_date(date_str, now=None):
or be a *pretty date* (like ``yesterday`` or ``two months ago``)
Returns:
- (datetime): datetime object corresponding to ``date_str``
+ (datetime.datetime): datetime object corresponding to ``date_str``
"""
pattern = {}
@@ -624,6 +828,9 @@ class LazyReference(object):
def load_module_from_file(module_name, module_path):
"""Loads a python module from the path of the corresponding file.
+ If the module is already in ``sys.modules`` it will be returned as
+ is and not reloaded.
+
Args:
module_name (str): namespace where the python module will be loaded,
e.g. ``foo.bar``
@@ -636,12 +843,28 @@ def load_module_from_file(module_name, module_path):
ImportError: when the module can't be loaded
FileNotFoundError: when module_path doesn't exist
"""
+ if module_name in sys.modules:
+ return sys.modules[module_name]
+
+ # This recipe is adapted from https://stackoverflow.com/a/67692/771663
if sys.version_info[0] == 3 and sys.version_info[1] >= 5:
import importlib.util
spec = importlib.util.spec_from_file_location( # novm
module_name, module_path)
module = importlib.util.module_from_spec(spec) # novm
- spec.loader.exec_module(module)
+ # The module object needs to exist in sys.modules before the
+ # loader executes the module code.
+ #
+ # See https://docs.python.org/3/reference/import.html#loading
+ sys.modules[spec.name] = module
+ try:
+ spec.loader.exec_module(module)
+ except BaseException:
+ try:
+ del sys.modules[spec.name]
+ except KeyError:
+ pass
+ raise
elif sys.version_info[0] == 3 and sys.version_info[1] < 5:
import importlib.machinery
loader = importlib.machinery.SourceFileLoader( # novm
@@ -692,3 +915,19 @@ class Devnull(object):
"""
def write(self, *_):
pass
+
+
+def elide_list(line_list, max_num=10):
+ """Takes a long list and limits it to a smaller number of elements,
+ replacing intervening elements with '...'. For example::
+
+ elide_list([1,2,3,4,5,6], 4)
+
+ gives::
+
+ [1, 2, 3, '...', 6]
+ """
+ if len(line_list) > max_num:
+ return line_list[:max_num - 1] + ['...'] + line_list[-1:]
+ else:
+ return line_list
diff --git a/lib/spack/llnl/util/link_tree.py b/lib/spack/llnl/util/link_tree.py
index d29b1289e3..f5a9e49fbb 100644
--- a/lib/spack/llnl/util/link_tree.py
+++ b/lib/spack/llnl/util/link_tree.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,12 @@
from __future__ import print_function
+import filecmp
import os
import shutil
-import filecmp
-from llnl.util.filesystem import traverse_tree, mkdirp, touch
import llnl.util.tty as tty
+from llnl.util.filesystem import mkdirp, touch, traverse_tree
__all__ = ['LinkTree']
diff --git a/lib/spack/llnl/util/lock.py b/lib/spack/llnl/util/lock.py
index 396f941616..c1544ab8ab 100644
--- a/lib/spack/llnl/util/lock.py
+++ b/lib/spack/llnl/util/lock.py
@@ -1,22 +1,33 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os
-import fcntl
import errno
-import time
+import fcntl
+import os
import socket
+import time
from datetime import datetime
+from typing import Dict, Tuple # novm
import llnl.util.tty as tty
-import spack.util.string
+import spack.util.string
-__all__ = ['Lock', 'LockTransaction', 'WriteTransaction', 'ReadTransaction',
- 'LockError', 'LockTimeoutError',
- 'LockPermissionError', 'LockROFileError', 'CantCreateLockError']
+__all__ = [
+ 'Lock',
+ 'LockDowngradeError',
+ 'LockUpgradeError',
+ 'LockTransaction',
+ 'WriteTransaction',
+ 'ReadTransaction',
+ 'LockError',
+ 'LockTimeoutError',
+ 'LockPermissionError',
+ 'LockROFileError',
+ 'CantCreateLockError'
+]
#: Mapping of supported locks to description
lock_type = {fcntl.LOCK_SH: 'read', fcntl.LOCK_EX: 'write'}
@@ -66,7 +77,7 @@ class OpenFileTracker(object):
def __init__(self):
"""Create a new ``OpenFileTracker``."""
- self._descriptors = {}
+ self._descriptors = {} # type: Dict[Tuple[int, int], OpenFile]
def get_fh(self, path):
"""Get a filehandle for a lockfile.
@@ -370,7 +381,7 @@ class Lock(object):
self.old_host = self.host
self.pid = os.getpid()
- self.host = socket.getfqdn()
+ self.host = socket.gethostname()
# write pid, host to disk to sync over FS
self._file.seek(0)
@@ -508,7 +519,7 @@ class Lock(object):
"""Releases a read lock.
Arguments:
- release_fn (callable): function to call *before* the last recursive
+ release_fn (typing.Callable): function to call *before* the last recursive
lock (read or write) is released.
If the last recursive lock will be released, then this will call
@@ -544,7 +555,7 @@ class Lock(object):
"""Releases a write lock.
Arguments:
- release_fn (callable): function to call before the last recursive
+ release_fn (typing.Callable): function to call before the last recursive
write is released.
If the last recursive *write* lock will be released, then this
@@ -640,10 +651,10 @@ class LockTransaction(object):
Arguments:
lock (Lock): underlying lock for this transaction to be accquired on
enter and released on exit
- acquire (callable or contextmanager): function to be called after lock
- is acquired, or contextmanager to enter after acquire and leave
+ acquire (typing.Callable or contextlib.contextmanager): function to be called
+ after lock is acquired, or contextmanager to enter after acquire and leave
before release.
- release (callable): function to be called before release. If
+ release (typing.Callable): function to be called before release. If
``acquire`` is a contextmanager, this will be called *after*
exiting the nexted context and before the lock is released.
timeout (float): number of seconds to set for the timeout when
diff --git a/lib/spack/llnl/util/multiproc.py b/lib/spack/llnl/util/multiproc.py
index f87b32c307..c73ebaed20 100644
--- a/lib/spack/llnl/util/multiproc.py
+++ b/lib/spack/llnl/util/multiproc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/llnl/util/tty/__init__.py b/lib/spack/llnl/util/tty/__init__.py
index 79ca5a9929..ca3b5c4b8d 100644
--- a/lib/spack/llnl/util/tty/__init__.py
+++ b/lib/spack/llnl/util/tty/__init__.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import unicode_literals
+import contextlib
import fcntl
import os
import struct
@@ -12,12 +13,13 @@ import sys
import termios
import textwrap
import traceback
-import six
from datetime import datetime
+
+import six
from six import StringIO
from six.moves import input
-from llnl.util.tty.color import cprint, cwrite, cescape, clen
+from llnl.util.tty.color import cescape, clen, cprint, cwrite
# Globals
_debug = 0
@@ -27,6 +29,7 @@ _timestamp = False
_msg_enabled = True
_warn_enabled = True
_error_enabled = True
+_output_filter = lambda s: s
indent = " "
@@ -89,6 +92,18 @@ def error_enabled():
return _error_enabled
+@contextlib.contextmanager
+def output_filter(filter_fn):
+ """Context manager that applies a filter to all output."""
+ global _output_filter
+ saved_filter = _output_filter
+ try:
+ _output_filter = filter_fn
+ yield
+ finally:
+ _output_filter = saved_filter
+
+
class SuppressOutput:
"""Class for disabling output in a scope using 'with' keyword"""
@@ -165,13 +180,23 @@ def msg(message, *args, **kwargs):
if _stacktrace:
st_text = process_stacktrace(2)
if newline:
- cprint("@*b{%s==>} %s%s" % (
- st_text, get_timestamp(), cescape(message)))
+ cprint(
+ "@*b{%s==>} %s%s" % (
+ st_text,
+ get_timestamp(),
+ cescape(_output_filter(message))
+ )
+ )
else:
- cwrite("@*b{%s==>} %s%s" % (
- st_text, get_timestamp(), cescape(message)))
+ cwrite(
+ "@*b{%s==>} %s%s" % (
+ st_text,
+ get_timestamp(),
+ cescape(_output_filter(message))
+ )
+ )
for arg in args:
- print(indent + six.text_type(arg))
+ print(indent + _output_filter(six.text_type(arg)))
def info(message, *args, **kwargs):
@@ -187,18 +212,29 @@ def info(message, *args, **kwargs):
st_text = ""
if _stacktrace:
st_text = process_stacktrace(st_countback)
- cprint("@%s{%s==>} %s%s" % (
- format, st_text, get_timestamp(), cescape(six.text_type(message))
- ), stream=stream)
+ cprint(
+ "@%s{%s==>} %s%s" % (
+ format,
+ st_text,
+ get_timestamp(),
+ cescape(_output_filter(six.text_type(message)))
+ ),
+ stream=stream
+ )
for arg in args:
if wrap:
lines = textwrap.wrap(
- six.text_type(arg), initial_indent=indent,
- subsequent_indent=indent, break_long_words=break_long_words)
+ _output_filter(six.text_type(arg)),
+ initial_indent=indent,
+ subsequent_indent=indent,
+ break_long_words=break_long_words
+ )
for line in lines:
stream.write(line + '\n')
else:
- stream.write(indent + six.text_type(arg) + '\n')
+ stream.write(
+ indent + _output_filter(six.text_type(arg)) + '\n'
+ )
def verbose(message, *args, **kwargs):
diff --git a/lib/spack/llnl/util/tty/colify.py b/lib/spack/llnl/util/tty/colify.py
index e0b4a5fa05..22b824ac0c 100644
--- a/lib/spack/llnl/util/tty/colify.py
+++ b/lib/spack/llnl/util/tty/colify.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,11 @@ from __future__ import division, unicode_literals
import os
import sys
+
from six import StringIO, text_type
from llnl.util.tty import terminal_size
-from llnl.util.tty.color import clen, cextra
+from llnl.util.tty.color import cextra, clen
class ColumnConfig:
@@ -108,19 +109,17 @@ def colify(elts, **options):
using ``str()``.
Keyword Arguments:
- output (stream): A file object to write to. Default is ``sys.stdout``
- indent (int): Optionally indent all columns by some number of spaces
- padding (int): Spaces between columns. Default is 2
- width (int): Width of the output. Default is 80 if tty not detected
- cols (int): Force number of columns. Default is to size to
- terminal, or single-column if no tty
- tty (bool): Whether to attempt to write to a tty. Default is to
- autodetect a tty. Set to False to force single-column
- output
- method (str): Method to use to fit columns. Options are variable or
- uniform. Variable-width columns are tighter, uniform
- columns are all the same width and fit less data on
- the screen
+ output (typing.IO): A file object to write to. Default is ``sys.stdout``
+ indent (int): Optionally indent all columns by some number of spaces
+ padding (int): Spaces between columns. Default is 2
+ width (int): Width of the output. Default is 80 if tty not detected
+ cols (int): Force number of columns. Default is to size to terminal, or
+ single-column if no tty
+ tty (bool): Whether to attempt to write to a tty. Default is to autodetect a
+ tty. Set to False to force single-column output
+ method (str): Method to use to fit columns. Options are variable or uniform.
+ Variable-width columns are tighter, uniform columns are all the same width
+ and fit less data on the screen
"""
# Get keyword arguments or set defaults
cols = options.pop("cols", 0)
diff --git a/lib/spack/llnl/util/tty/color.py b/lib/spack/llnl/util/tty/color.py
index b6f5ec782f..78f0e75a97 100644
--- a/lib/spack/llnl/util/tty/color.py
+++ b/lib/spack/llnl/util/tty/color.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -60,9 +60,9 @@ The console can be reset later to plain text with '@.'.
To output an @, use '@@'. To output a } inside braces, use '}}'.
"""
from __future__ import unicode_literals
+
import re
import sys
-
from contextlib import contextmanager
import six
diff --git a/lib/spack/llnl/util/tty/log.py b/lib/spack/llnl/util/tty/log.py
index 658de5c596..bc79b32335 100644
--- a/lib/spack/llnl/util/tty/log.py
+++ b/lib/spack/llnl/util/tty/log.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,19 +13,23 @@ import multiprocessing
import os
import re
import select
+import signal
import sys
import traceback
-import signal
from contextlib import contextmanager
-from six import string_types
-from six import StringIO
+from types import ModuleType # novm
+from typing import Optional # novm
+
+from six import StringIO, string_types
import llnl.util.tty as tty
+termios = None # type: Optional[ModuleType]
try:
- import termios
+ import termios as term_mod
+ termios = term_mod
except ImportError:
- termios = None
+ pass
# Use this to strip escape sequences
@@ -316,7 +320,10 @@ class FileWrapper(object):
def unwrap(self):
if self.open:
if self.file_like:
- self.file = open(self.file_like, 'w')
+ if sys.version_info < (3,):
+ self.file = open(self.file_like, 'w')
+ else:
+ self.file = open(self.file_like, 'w', encoding='utf-8')
else:
self.file = StringIO()
return self.file
@@ -429,7 +436,7 @@ class log_output(object):
"""
def __init__(self, file_like=None, echo=False, debug=0, buffer=False,
- env=None):
+ env=None, filter_fn=None):
"""Create a new output log context manager.
Args:
@@ -439,6 +446,8 @@ class log_output(object):
debug (int): positive to enable tty debug mode during logging
buffer (bool): pass buffer=True to skip unbuffering output; note
this doesn't set up any *new* buffering
+ filter_fn (callable, optional): Callable[str] -> str to filter each
+ line of output
log_output can take either a file object or a filename. If a
filename is passed, the file will be opened and closed entirely
@@ -458,6 +467,7 @@ class log_output(object):
self.debug = debug
self.buffer = buffer
self.env = env # the environment to use for _writer_daemon
+ self.filter_fn = filter_fn
self._active = False # used to prevent re-entry
@@ -523,20 +533,22 @@ class log_output(object):
# Sets a daemon that writes to file what it reads from a pipe
try:
# need to pass this b/c multiprocessing closes stdin in child.
+ input_multiprocess_fd = None
try:
- input_multiprocess_fd = MultiProcessFd(
- os.dup(sys.stdin.fileno())
- )
+ if sys.stdin.isatty():
+ input_multiprocess_fd = MultiProcessFd(
+ os.dup(sys.stdin.fileno())
+ )
except BaseException:
# just don't forward input if this fails
- input_multiprocess_fd = None
+ pass
with replace_environment(self.env):
self.process = multiprocessing.Process(
target=_writer_daemon,
args=(
input_multiprocess_fd, read_multiprocess_fd, write_fd,
- self.echo, self.log_file, child_pipe
+ self.echo, self.log_file, child_pipe, self.filter_fn
)
)
self.process.daemon = True # must set before start()
@@ -660,7 +672,7 @@ class log_output(object):
def _writer_daemon(stdin_multiprocess_fd, read_multiprocess_fd, write_fd, echo,
- log_file_wrapper, control_pipe):
+ log_file_wrapper, control_pipe, filter_fn):
"""Daemon used by ``log_output`` to write to a log file and to ``stdout``.
The daemon receives output from the parent process and writes it both
@@ -705,6 +717,7 @@ def _writer_daemon(stdin_multiprocess_fd, read_multiprocess_fd, write_fd, echo,
log_file_wrapper (FileWrapper): file to log all output
control_pipe (Pipe): multiprocessing pipe on which to send control
information to the parent
+ filter_fn (callable, optional): function to filter each line of output
"""
# If this process was forked, then it will inherit file descriptors from
@@ -717,7 +730,11 @@ def _writer_daemon(stdin_multiprocess_fd, read_multiprocess_fd, write_fd, echo,
# Use line buffering (3rd param = 1) since Python 3 has a bug
# that prevents unbuffered text I/O.
- in_pipe = os.fdopen(read_multiprocess_fd.fd, 'r', 1)
+ if sys.version_info < (3,):
+ in_pipe = os.fdopen(read_multiprocess_fd.fd, 'r', 1)
+ else:
+ # Python 3.x before 3.7 does not open with UTF-8 encoding by default
+ in_pipe = os.fdopen(read_multiprocess_fd.fd, 'r', 1, encoding='utf-8')
if stdin_multiprocess_fd:
stdin = os.fdopen(stdin_multiprocess_fd.fd)
@@ -759,28 +776,42 @@ def _writer_daemon(stdin_multiprocess_fd, read_multiprocess_fd, write_fd, echo,
raise
if in_pipe in rlist:
- # Handle output from the calling process.
- line = _retry(in_pipe.readline)()
- if not line:
- break
-
- # find control characters and strip them.
- controls = control.findall(line)
- line = control.sub('', line)
-
- # Echo to stdout if requested or forced.
- if echo or force_echo:
- sys.stdout.write(line)
- sys.stdout.flush()
-
- # Stripped output to log file.
- log_file.write(_strip(line))
- log_file.flush()
-
- if xon in controls:
- force_echo = True
- if xoff in controls:
- force_echo = False
+ line_count = 0
+ try:
+ while line_count < 100:
+ # Handle output from the calling process.
+ line = _retry(in_pipe.readline)()
+ if not line:
+ return
+ line_count += 1
+
+ # find control characters and strip them.
+ clean_line, num_controls = control.subn('', line)
+
+ # Echo to stdout if requested or forced.
+ if echo or force_echo:
+ output_line = clean_line
+ if filter_fn:
+ output_line = filter_fn(clean_line)
+ sys.stdout.write(output_line)
+
+ # Stripped output to log file.
+ log_file.write(_strip(clean_line))
+
+ if num_controls > 0:
+ controls = control.findall(line)
+ if xon in controls:
+ force_echo = True
+ if xoff in controls:
+ force_echo = False
+
+ if not _input_available(in_pipe):
+ break
+ finally:
+ if line_count > 0:
+ if echo or force_echo:
+ sys.stdout.flush()
+ log_file.flush()
except BaseException:
tty.error("Exception occurred in writer daemon!")
@@ -832,3 +863,7 @@ def _retry(function):
continue
raise
return wrapped
+
+
+def _input_available(f):
+ return f in select.select([f], [], [], 0)[0]
diff --git a/lib/spack/llnl/util/tty/pty.py b/lib/spack/llnl/util/tty/pty.py
index 84c272a6e2..a0076a8b71 100644
--- a/lib/spack/llnl/util/tty/pty.py
+++ b/lib/spack/llnl/util/tty/pty.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,10 +14,10 @@ get tests done quickly, not to avoid high CPU usage.
"""
from __future__ import print_function
-import os
-import signal
import multiprocessing
+import os
import re
+import signal
import sys
import termios
import time
diff --git a/lib/spack/spack/__init__.py b/lib/spack/spack/__init__.py
index 0a014b3e30..8b5c7a94c6 100644
--- a/lib/spack/spack/__init__.py
+++ b/lib/spack/spack/__init__.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-
#: major, minor, patch version for Spack, in a tuple
-spack_version_info = (0, 16, 3)
+spack_version_info = (0, 16, 2)
#: String containing Spack version joined with .'s
spack_version = '.'.join(str(v) for v in spack_version_info)
diff --git a/lib/spack/spack/abi.py b/lib/spack/spack/abi.py
index 986583d270..cebf3f8192 100644
--- a/lib/spack/spack/abi.py
+++ b/lib/spack/spack/abi.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,9 @@ import os
from llnl.util.lang import memoized
import spack.spec
+from spack.compilers.clang import Clang
from spack.spec import CompilerSpec
from spack.util.executable import Executable, ProcessError
-from spack.compilers.clang import Clang
class ABI(object):
diff --git a/lib/spack/spack/analyzers/__init__.py b/lib/spack/spack/analyzers/__init__.py
new file mode 100644
index 0000000000..6eb63776c5
--- /dev/null
+++ b/lib/spack/spack/analyzers/__init__.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2021 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 package contains code for creating analyzers to extract Application
+Binary Interface (ABI) information, along with simple analyses that just load
+existing metadata.
+"""
+
+from __future__ import absolute_import
+
+import llnl.util.tty as tty
+
+import spack.paths
+import spack.util.classes
+
+mod_path = spack.paths.analyzers_path
+analyzers = spack.util.classes.list_classes("spack.analyzers", mod_path)
+
+# The base analyzer does not have a name, and cannot do dict comprehension
+analyzer_types = {}
+for a in analyzers:
+ if not hasattr(a, "name"):
+ continue
+ analyzer_types[a.name] = a
+
+
+def list_all():
+ """A helper function to list all analyzers and their descriptions
+ """
+ for name, analyzer in analyzer_types.items():
+ print("%-25s: %-35s" % (name, analyzer.description))
+
+
+def get_analyzer(name):
+ """Courtesy function to retrieve an analyzer, and exit on error if it
+ does not exist.
+ """
+ if name in analyzer_types:
+ return analyzer_types[name]
+ tty.die("Analyzer %s does not exist" % name)
diff --git a/lib/spack/spack/analyzers/analyzer_base.py b/lib/spack/spack/analyzers/analyzer_base.py
new file mode 100644
index 0000000000..f1f5b8a50c
--- /dev/null
+++ b/lib/spack/spack/analyzers/analyzer_base.py
@@ -0,0 +1,116 @@
+# Copyright 2013-2021 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)
+
+"""An analyzer base provides basic functions to run the analysis, save results,
+and (optionally) interact with a Spack Monitor
+"""
+
+import os
+
+import llnl.util.tty as tty
+
+import spack.config
+import spack.hooks
+import spack.monitor
+import spack.util.path
+
+
+def get_analyzer_dir(spec, analyzer_dir=None):
+ """
+ Given a spec, return the directory to save analyzer results.
+
+ We create the directory if it does not exist. We also check that the
+ spec has an associated package. An analyzer cannot be run if the spec isn't
+ associated with a package. If the user provides a custom analyzer_dir,
+ we use it over checking the config and the default at ~/.spack/analyzers
+ """
+ # An analyzer cannot be run if the spec isn't associated with a package
+ if not hasattr(spec, "package") or not spec.package:
+ tty.die("A spec can only be analyzed with an associated package.")
+
+ # The top level directory is in the user home, or a custom location
+ if not analyzer_dir:
+ analyzer_dir = spack.util.path.canonicalize_path(
+ spack.config.get('config:analyzers_dir', '~/.spack/analyzers'))
+
+ # We follow the same convention as the spec install (this could be better)
+ package_prefix = os.sep.join(spec.package.prefix.split('/')[-3:])
+ meta_dir = os.path.join(analyzer_dir, package_prefix)
+ return meta_dir
+
+
+class AnalyzerBase(object):
+
+ def __init__(self, spec, dirname=None):
+ """
+ Verify that the analyzer has correct metadata.
+
+ An Analyzer is intended to run on one spec install, so the spec
+ with its associated package is required on init. The child analyzer
+ class should define an init function that super's the init here, and
+ also check that the analyzer has all dependencies that it
+ needs. If an analyzer subclass does not have dependencies, it does not
+ need to define an init. An Analyzer should not be allowed to proceed
+ if one or more dependencies are missing. The dirname, if defined,
+ is an optional directory name to save to (instead of the default meta
+ spack directory).
+ """
+ self.spec = spec
+ self.dirname = dirname
+ self.meta_dir = os.path.dirname(spec.package.install_log_path)
+
+ for required in ["name", "outfile", "description"]:
+ if not hasattr(self, required):
+ tty.die("Please add a %s attribute on the analyzer." % required)
+
+ def run(self):
+ """
+ Given a spec with an installed package, run the analyzer on it.
+ """
+ raise NotImplementedError
+
+ @property
+ def output_dir(self):
+ """
+ The full path to the output directory.
+
+ This includes the nested analyzer directory structure. This function
+ does not create anything.
+ """
+ if not hasattr(self, "_output_dir"):
+ output_dir = get_analyzer_dir(self.spec, self.dirname)
+ self._output_dir = os.path.join(output_dir, self.name)
+
+ return self._output_dir
+
+ def save_result(self, result, overwrite=False):
+ """
+ Save a result to the associated spack monitor, if defined.
+
+ This function is on the level of the analyzer because it might be
+ the case that the result is large (appropriate for a single request)
+ or that the data is organized differently (e.g., more than one
+ request per result). If an analyzer subclass needs to over-write
+ this function with a custom save, that is appropriate to do (see abi).
+ """
+ # We maintain the structure in json with the analyzer as key so
+ # that in the future, we could upload to a monitor server
+ if result[self.name]:
+
+ outfile = os.path.join(self.output_dir, self.outfile)
+
+ # Only try to create the results directory if we have a result
+ if not os.path.exists(self._output_dir):
+ os.makedirs(self._output_dir)
+
+ # Don't overwrite an existing result if overwrite is False
+ if os.path.exists(outfile) and not overwrite:
+ tty.info("%s exists and overwrite is False, skipping." % outfile)
+ else:
+ tty.info("Writing result to %s" % outfile)
+ spack.monitor.write_json(result[self.name], outfile)
+
+ # This hook runs after a save result
+ spack.hooks.on_analyzer_save(self.spec.package, result)
diff --git a/lib/spack/spack/analyzers/config_args.py b/lib/spack/spack/analyzers/config_args.py
new file mode 100644
index 0000000000..3a4aa01ce7
--- /dev/null
+++ b/lib/spack/spack/analyzers/config_args.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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)
+
+"""A configargs analyzer is a class of analyzer that typically just uploads
+already existing metadata about config args from a package spec install
+directory."""
+
+
+import os
+
+import spack.monitor
+
+from .analyzer_base import AnalyzerBase
+
+
+class ConfigArgs(AnalyzerBase):
+
+ name = "config_args"
+ outfile = "spack-analyzer-config-args.json"
+ description = "config args loaded from spack-configure-args.txt"
+
+ def run(self):
+ """
+ Load the configure-args.txt and save in json.
+
+ The run function will find the spack-config-args.txt file in the
+ package install directory, and read it into a json structure that has
+ the name of the analyzer as the key.
+ """
+ config_file = os.path.join(self.meta_dir, "spack-configure-args.txt")
+ return {self.name: spack.monitor.read_file(config_file)}
diff --git a/lib/spack/spack/analyzers/environment_variables.py b/lib/spack/spack/analyzers/environment_variables.py
new file mode 100644
index 0000000000..2d235e7a50
--- /dev/null
+++ b/lib/spack/spack/analyzers/environment_variables.py
@@ -0,0 +1,51 @@
+# Copyright 2013-2021 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)
+
+"""An environment analyzer will read and parse the environment variables
+file in the installed package directory, generating a json file that has
+an index of key, value pairs for environment variables."""
+
+
+import os
+
+from spack.util.environment import EnvironmentModifications
+
+from .analyzer_base import AnalyzerBase
+
+
+class EnvironmentVariables(AnalyzerBase):
+
+ name = "environment_variables"
+ outfile = "spack-analyzer-environment-variables.json"
+ description = "environment variables parsed from spack-build-env.txt"
+
+ def run(self):
+ """
+ Load, parse, and save spack-build-env.txt to analyzers.
+
+ Read in the spack-build-env.txt file from the package install
+ directory and parse the environment variables into key value pairs.
+ The result should have the key for the analyzer, the name.
+ """
+ env_file = os.path.join(self.meta_dir, "spack-build-env.txt")
+ return {self.name: self._read_environment_file(env_file)}
+
+ def _read_environment_file(self, filename):
+ """
+ Read and parse the environment file.
+
+ Given an environment file, we want to read it, split by semicolons
+ and new lines, and then parse down to the subset of SPACK_* variables.
+ We assume that all spack prefix variables are not secrets, and unlike
+ the install_manifest.json, we don't (at least to start) parse the values
+ to remove path prefixes specific to user systems.
+ """
+ if not os.path.exists(filename):
+ return
+
+ mods = EnvironmentModifications.from_sourcing_file(filename)
+ env = {}
+ mods.apply_modifications(env)
+ return env
diff --git a/lib/spack/spack/analyzers/install_files.py b/lib/spack/spack/analyzers/install_files.py
new file mode 100644
index 0000000000..1c2d38ce51
--- /dev/null
+++ b/lib/spack/spack/analyzers/install_files.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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)
+
+"""The install files json file (install_manifest.json) already exists in
+the package install folder, so this analyzer simply moves it to the user
+analyzer folder for further processing."""
+
+
+import os
+
+import spack.monitor
+
+from .analyzer_base import AnalyzerBase
+
+
+class InstallFiles(AnalyzerBase):
+
+ name = "install_files"
+ outfile = "spack-analyzer-install-files.json"
+ description = "install file listing read from install_manifest.json"
+
+ def run(self):
+ """
+ Load in the install_manifest.json and save to analyzers.
+
+ We write it out to the analyzers folder, with key as the analyzer name.
+ """
+ manifest_file = os.path.join(self.meta_dir, "install_manifest.json")
+ return {self.name: spack.monitor.read_json(manifest_file)}
diff --git a/lib/spack/spack/analyzers/libabigail.py b/lib/spack/spack/analyzers/libabigail.py
new file mode 100644
index 0000000000..9b26f3ca6f
--- /dev/null
+++ b/lib/spack/spack/analyzers/libabigail.py
@@ -0,0 +1,116 @@
+# Copyright 2013-2021 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)
+
+
+import os
+
+import llnl.util.tty as tty
+
+import spack
+import spack.binary_distribution
+import spack.bootstrap
+import spack.error
+import spack.hooks
+import spack.monitor
+import spack.package
+import spack.repo
+
+from .analyzer_base import AnalyzerBase
+
+
+class Libabigail(AnalyzerBase):
+
+ name = "libabigail"
+ outfile = "spack-analyzer-libabigail.json"
+ description = "Application Binary Interface (ABI) features for objects"
+
+ def __init__(self, spec, dirname=None):
+ """
+ init for an analyzer ensures we have all needed dependencies.
+
+ For the libabigail analyzer, this means Libabigail.
+ Since the output for libabigail is one file per object, we communicate
+ with the monitor multiple times.
+ """
+ super(Libabigail, self).__init__(spec, dirname)
+
+ # This doesn't seem to work to import on the module level
+ tty.debug("Preparing to use Libabigail, will install if missing.")
+
+ with spack.bootstrap.ensure_bootstrap_configuration():
+
+ # libabigail won't install lib/bin/share without docs
+ spec = spack.spec.Spec("libabigail+docs")
+ spec.concretize()
+
+ self.abidw = spack.bootstrap.get_executable(
+ "abidw", spec=spec, install=True)
+
+ def run(self):
+ """
+ Run libabigail, and save results to filename.
+
+ This run function differs in that we write as we generate and then
+ return a dict with the analyzer name as the key, and the value of a
+ dict of results, where the key is the object name, and the value is
+ the output file written to.
+ """
+ manifest = spack.binary_distribution.get_buildfile_manifest(self.spec)
+
+ # This result will store a path to each file
+ result = {}
+
+ # Generate an output file for each binary or object
+ for obj in manifest.get("binary_to_relocate_fullpath", []):
+
+ # We want to preserve the path in the install directory in case
+ # a library has an equivalenly named lib or executable, for example
+ outdir = os.path.dirname(obj.replace(self.spec.package.prefix,
+ '').strip(os.path.sep))
+ outfile = "spack-analyzer-libabigail-%s.xml" % os.path.basename(obj)
+ outfile = os.path.join(self.output_dir, outdir, outfile)
+ outdir = os.path.dirname(outfile)
+
+ # Create the output directory
+ if not os.path.exists(outdir):
+ os.makedirs(outdir)
+
+ # Sometimes libabigail segfaults and dumps
+ try:
+ self.abidw(obj, "--out-file", outfile)
+ result[obj] = outfile
+ tty.info("Writing result to %s" % outfile)
+ except spack.error.SpackError:
+ tty.warn("Issue running abidw for %s" % obj)
+
+ return {self.name: result}
+
+ def save_result(self, result, overwrite=False):
+ """
+ Read saved ABI results and upload to monitor server.
+
+ ABI results are saved to individual files, so each one needs to be
+ read and uploaded. Result here should be the lookup generated in run(),
+ the key is the analyzer name, and each value is the result file.
+ We currently upload the entire xml as text because libabigail can't
+ easily read gzipped xml, but this will be updated when it can.
+ """
+ if not spack.monitor.cli:
+ return
+
+ name = self.spec.package.name
+
+ for obj, filename in result.get(self.name, {}).items():
+
+ # Don't include the prefix
+ rel_path = obj.replace(self.spec.prefix + os.path.sep, "")
+
+ # We've already saved the results to file during run
+ content = spack.monitor.read_file(filename)
+
+ # A result needs an analyzer, value or binary_value, and name
+ data = {"value": content, "install_file": rel_path, "name": "abidw-xml"}
+ tty.info("Sending result for %s %s to monitor." % (name, rel_path))
+ spack.hooks.on_analyzer_save(self.spec.package, {"libabigail": [data]})
diff --git a/lib/spack/spack/architecture.py b/lib/spack/spack/architecture.py
index ece9040a7d..0ae99959bd 100644
--- a/lib/spack/spack/architecture.py
+++ b/lib/spack/spack/architecture.py
@@ -1,29 +1,25 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 module contains all the elements that are required to create an
-architecture object. These include, the target processor, the operating system,
-and the architecture platform (i.e. cray, darwin, linux, etc) classes.
+"""Aggregate the target processor, the operating system and the target
+platform into an architecture object.
On a multiple architecture machine, the architecture spec field can be set to
build a package against any target and operating system that is present on the
platform. On Cray platforms or any other architecture that has different front
and back end environments, the operating system will determine the method of
-compiler
-detection.
+compiler detection.
There are two different types of compiler detection:
+
1. Through the $PATH env variable (front-end detection)
- 2. Through the tcl module system. (back-end detection)
+ 2. Through the module system. (back-end detection)
Depending on which operating system is specified, the compiler will be detected
using one of those methods.
-For platforms such as linux and darwin, the operating system is autodetected
-and the target is set to be x86_64.
+For platforms such as linux and darwin, the operating system is autodetected.
The command line syntax for specifying an architecture is as follows:
@@ -33,10 +29,8 @@ If the user wishes to use the defaults, either target or os can be left out of
the command line and Spack will concretize using the default. These defaults
are set in the 'platforms/' directory which contains the different subclasses
for platforms. If the machine has multiple architectures, the user can
-also enter front-end, or fe or back-end or be. These settings will concretize
-to their respective front-end and back-end targets and operating systems.
-Additional platforms can be added by creating a subclass of Platform
-and adding it inside the platform directory.
+also enter frontend, or fe or backend or be. These settings will concretize
+to their respective frontend and backend targets and operating systems.
Platforms are an abstract class that are extended by subclasses. If the user
wants to add a new type of platform (such as cray_xe), they can create a
@@ -47,332 +41,33 @@ arbitrarily set and can be changed though often there isn't much need unless a
new platform is added and the user wants that to be detected first.
Targets are created inside the platform subclasses. Most architecture
-(like linux, and darwin) will have only one target (x86_64) but in the case of
+(like linux, and darwin) will have only one target family (x86_64) but in the case of
Cray machines, there is both a frontend and backend processor. The user can
specify which targets are present on front-end and back-end architecture
-Depending on the platform, operating systems are either auto-detected or are
-set. The user can set the front-end and back-end operating setting by the class
+Depending on the platform, operating systems are either autodetected or are
+set. The user can set the frontend and backend operating setting by the class
attributes front_os and back_os. The operating system as described earlier,
will be responsible for compiler detection.
"""
import contextlib
-import functools
-import inspect
-import warnings
import archspec.cpu
-import six
-import llnl.util.tty as tty
-from llnl.util.lang import memoized, list_modules, key_ordering
+import llnl.util.lang as lang
import spack.compiler
import spack.compilers
import spack.config
-import spack.paths
-import spack.error as serr
-import spack.util.executable
+import spack.operating_systems
+import spack.platforms
+import spack.spec
+import spack.target
+import spack.util.spack_yaml as syaml
import spack.version
-from spack.util.naming import mod_to_class
-from spack.util.spack_yaml import syaml_dict
-
-
-class NoPlatformError(serr.SpackError):
- def __init__(self):
- super(NoPlatformError, self).__init__(
- "Could not determine a platform for this machine.")
-
-
-def _ensure_other_is_target(method):
- """Decorator to be used in dunder methods taking a single argument to
- ensure that the argument is an instance of ``Target`` too.
- """
- @functools.wraps(method)
- def _impl(self, other):
- if isinstance(other, six.string_types):
- other = Target(other)
-
- if not isinstance(other, Target):
- return NotImplemented
-
- return method(self, other)
-
- return _impl
-
-
-class Target(object):
- def __init__(self, name, module_name=None):
- """Target models microarchitectures and their compatibility.
-
- Args:
- name (str or Microarchitecture):micro-architecture of the
- target
- module_name (str): optional module name to get access to the
- current target. This is typically used on machines
- like Cray (e.g. craype-compiler)
- """
- if not isinstance(name, archspec.cpu.Microarchitecture):
- name = archspec.cpu.TARGETS.get(
- name, archspec.cpu.generic_microarchitecture(name)
- )
- self.microarchitecture = name
- self.module_name = module_name
-
- @property
- def name(self):
- return self.microarchitecture.name
-
- @_ensure_other_is_target
- def __eq__(self, other):
- return self.microarchitecture == other.microarchitecture and \
- self.module_name == other.module_name
-
- def __ne__(self, other):
- # This method is necessary as long as we support Python 2. In Python 3
- # __ne__ defaults to the implementation below
- return not self == other
-
- @_ensure_other_is_target
- def __lt__(self, other):
- # TODO: In the future it would be convenient to say
- # TODO: `spec.architecture.target < other.architecture.target`
- # TODO: and change the semantic of the comparison operators
-
- # This is needed to sort deterministically specs in a list.
- # It doesn't implement a total ordering semantic.
- return self.microarchitecture.name < other.microarchitecture.name
-
- def __hash__(self):
- return hash((self.name, self.module_name))
-
- @staticmethod
- def from_dict_or_value(dict_or_value):
- # A string here represents a generic target (like x86_64 or ppc64) or
- # a custom micro-architecture
- if isinstance(dict_or_value, six.string_types):
- return Target(dict_or_value)
-
- # TODO: From a dict we actually retrieve much more information than
- # TODO: just the name. We can use that information to reconstruct an
- # TODO: "old" micro-architecture or check the current definition.
- target_info = dict_or_value
- return Target(target_info['name'])
-
- def to_dict_or_value(self):
- """Returns a dict or a value representing the current target.
-
- String values are used to keep backward compatibility with generic
- targets, like e.g. x86_64 or ppc64. More specific micro-architectures
- will return a dictionary which contains information on the name,
- features, vendor, generation and parents of the current target.
- """
- # Generic targets represent either an architecture
- # family (like x86_64) or a custom micro-architecture
- if self.microarchitecture.vendor == 'generic':
- return str(self)
-
- return syaml_dict(
- self.microarchitecture.to_dict(return_list_of_items=True)
- )
-
- def __repr__(self):
- cls_name = self.__class__.__name__
- fmt = cls_name + '({0}, {1})'
- return fmt.format(repr(self.microarchitecture),
- repr(self.module_name))
-
- def __str__(self):
- return str(self.microarchitecture)
-
- def __contains__(self, cpu_flag):
- return cpu_flag in self.microarchitecture
-
- def optimization_flags(self, compiler):
- """Returns the flags needed to optimize for this target using
- the compiler passed as argument.
-
- Args:
- compiler (CompilerSpec or Compiler): object that contains both the
- name and the version of the compiler we want to use
- """
- # Mixed toolchains are not supported yet
- import spack.compilers
- if isinstance(compiler, spack.compiler.Compiler):
- if spack.compilers.is_mixed_toolchain(compiler):
- msg = ('microarchitecture specific optimizations are not '
- 'supported yet on mixed compiler toolchains [check'
- ' {0.name}@{0.version} for further details]')
- warnings.warn(msg.format(compiler))
- return ''
-
- # Try to check if the current compiler comes with a version number or
- # has an unexpected suffix. If so, treat it as a compiler with a
- # custom spec.
- compiler_version = compiler.version
- version_number, suffix = archspec.cpu.version_components(
- compiler.version
- )
- if not version_number or suffix not in ('', 'apple'):
- # Try to deduce the underlying version of the compiler, regardless
- # of its name in compilers.yaml. Depending on where this function
- # is called we might get either a CompilerSpec or a fully fledged
- # compiler object.
- import spack.spec
- if isinstance(compiler, spack.spec.CompilerSpec):
- compiler = spack.compilers.compilers_for_spec(compiler).pop()
- try:
- compiler_version = compiler.real_version
- except spack.util.executable.ProcessError as e:
- # log this and just return compiler.version instead
- tty.debug(str(e))
-
- return self.microarchitecture.optimization_flags(
- compiler.name, str(compiler_version)
- )
-
-
-@key_ordering
-class Platform(object):
- """ Abstract class that each type of Platform will subclass.
- Will return a instance of it once it is returned.
- """
-
- priority = None # Subclass sets number. Controls detection order
-
- #: binary formats used on this platform; used by relocation logic
- binary_formats = ['elf']
-
- front_end = None
- back_end = None
- default = None # The default back end target.
-
- front_os = None
- back_os = None
- default_os = None
-
- reserved_targets = ['default_target', 'frontend', 'fe', 'backend', 'be']
- reserved_oss = ['default_os', 'frontend', 'fe', 'backend', 'be']
-
- def __init__(self, name):
- self.targets = {}
- self.operating_sys = {}
- self.name = name
-
- def add_target(self, name, target):
- """Used by the platform specific subclass to list available targets.
- Raises an error if the platform specifies a name
- that is reserved by spack as an alias.
- """
- if name in Platform.reserved_targets:
- raise ValueError(
- "%s is a spack reserved alias "
- "and cannot be the name of a target" % name)
- self.targets[name] = target
-
- def target(self, name):
- """This is a getter method for the target dictionary
- that handles defaulting based on the values provided by default,
- front-end, and back-end. This can be overwritten
- by a subclass for which we want to provide further aliasing options.
- """
- # TODO: Check if we can avoid using strings here
- name = str(name)
- if name == 'default_target':
- name = self.default
- elif name == 'frontend' or name == 'fe':
- name = self.front_end
- elif name == 'backend' or name == 'be':
- name = self.back_end
-
- return self.targets.get(name, None)
-
- def add_operating_system(self, name, os_class):
- """ Add the operating_system class object into the
- platform.operating_sys dictionary
- """
- if name in Platform.reserved_oss:
- raise ValueError(
- "%s is a spack reserved alias "
- "and cannot be the name of an OS" % name)
- self.operating_sys[name] = os_class
-
- def operating_system(self, name):
- if name == 'default_os':
- name = self.default_os
- if name == 'frontend' or name == "fe":
- name = self.front_os
- if name == 'backend' or name == 'be':
- name = self.back_os
-
- return self.operating_sys.get(name, None)
-
- @classmethod
- def setup_platform_environment(cls, pkg, env):
- """ Subclass can override this method if it requires any
- platform-specific build environment modifications.
- """
-
- @classmethod
- def detect(cls):
- """ Subclass is responsible for implementing this method.
- Returns True if the Platform class detects that
- it is the current platform
- and False if it's not.
- """
- raise NotImplementedError()
-
- def __repr__(self):
- return self.__str__()
-
- def __str__(self):
- return self.name
-
- def _cmp_key(self):
- t_keys = ''.join(str(t._cmp_key()) for t in
- sorted(self.targets.values()))
- o_keys = ''.join(str(o._cmp_key()) for o in
- sorted(self.operating_sys.values()))
- return (self.name,
- self.default,
- self.front_end,
- self.back_end,
- self.default_os,
- self.front_os,
- self.back_os,
- t_keys,
- o_keys)
-
-
-@key_ordering
-class OperatingSystem(object):
- """ Operating System will be like a class similar to platform extended
- by subclasses for the specifics. Operating System will contain the
- compiler finding logic. Instead of calling two separate methods to
- find compilers we call find_compilers method for each operating system
- """
- def __init__(self, name, version):
- self.name = name.replace('-', '_')
- self.version = str(version).replace('-', '_')
- def __str__(self):
- return "%s%s" % (self.name, self.version)
-
- def __repr__(self):
- return self.__str__()
-
- def _cmp_key(self):
- return (self.name, self.version)
-
- def to_dict(self):
- return syaml_dict([
- ('name', self.name),
- ('version', self.version)
- ])
-
-
-@key_ordering
+@lang.lazy_lexicographic_ordering
class Arch(object):
"""Architecture is now a class to help with setting attributes.
@@ -394,11 +89,13 @@ class Arch(object):
@property
def concrete(self):
- return all((self.platform is not None,
- isinstance(self.platform, Platform),
- self.os is not None,
- isinstance(self.os, OperatingSystem),
- self.target is not None, isinstance(self.target, Target)))
+ return all(
+ (self.platform is not None,
+ isinstance(self.platform, spack.platforms.Platform),
+ self.os is not None,
+ isinstance(self.os, spack.operating_systems.OperatingSystem),
+ self.target is not None, isinstance(self.target, spack.target.Target))
+ )
def __str__(self):
if self.platform or self.os or self.target:
@@ -422,28 +119,29 @@ class Arch(object):
self.target is not None)
__bool__ = __nonzero__
- def _cmp_key(self):
- if isinstance(self.platform, Platform):
- platform = self.platform.name
+ def _cmp_iter(self):
+ if isinstance(self.platform, spack.platforms.Platform):
+ yield self.platform.name
else:
- platform = self.platform
- if isinstance(self.os, OperatingSystem):
- os = self.os.name
+ yield self.platform
+
+ if isinstance(self.os, spack.operating_systems.OperatingSystem):
+ yield self.os.name
else:
- os = self.os
- if isinstance(self.target, Target):
- target = self.target.microarchitecture
+ yield self.os
+
+ if isinstance(self.target, spack.target.Target):
+ yield self.target.microarchitecture
else:
- target = self.target
- return (platform, os, target)
+ yield self.target
def to_dict(self):
str_or_none = lambda v: str(v) if v else None
- d = syaml_dict([
+ d = syaml.syaml_dict([
('platform', str_or_none(self.platform)),
('platform_os', str_or_none(self.os)),
('target', self.target.to_dict_or_value())])
- return syaml_dict([('arch', d)])
+ return syaml.syaml_dict([('arch', d)])
def to_spec(self):
"""Convert this Arch to an anonymous Spec with architecture defined."""
@@ -457,79 +155,25 @@ class Arch(object):
return arch_for_spec(spec)
-@memoized
-def get_platform(platform_name):
- """Returns a platform object that corresponds to the given name."""
- platform_list = all_platforms()
- for p in platform_list:
- if platform_name.replace("_", "").lower() == p.__name__.lower():
- return p()
-
-
-def verify_platform(platform_name):
- """ Determines whether or not the platform with the given name is supported
- in Spack. For more information, see the 'spack.platforms' submodule.
- """
- platform_name = platform_name.replace("_", "").lower()
- platform_names = [p.__name__.lower() for p in all_platforms()]
-
- if platform_name not in platform_names:
- tty.die("%s is not a supported platform; supported platforms are %s" %
- (platform_name, platform_names))
-
-
def arch_for_spec(arch_spec):
"""Transforms the given architecture spec into an architecture object."""
arch_spec = spack.spec.ArchSpec(arch_spec)
assert arch_spec.concrete
- arch_plat = get_platform(arch_spec.platform)
+ arch_plat = spack.platforms.by_name(arch_spec.platform)
if not (arch_plat.operating_system(arch_spec.os) and
arch_plat.target(arch_spec.target)):
- raise ValueError(
- "Can't recreate arch for spec %s on current arch %s; "
- "spec architecture is too different" % (arch_spec, sys_type()))
+ sys_type = str(default_arch())
+ msg = ("Can't recreate arch for spec {0} on current arch {1}; "
+ "spec architecture is too different")
+ raise ValueError(msg.format(arch_spec, sys_type))
return Arch(arch_plat, arch_spec.os, arch_spec.target)
-@memoized
-def _all_platforms():
- classes = []
- mod_path = spack.paths.platform_path
- parent_module = "spack.platforms"
-
- for name in list_modules(mod_path):
- mod_name = '%s.%s' % (parent_module, name)
- class_name = mod_to_class(name)
- mod = __import__(mod_name, fromlist=[class_name])
- if not hasattr(mod, class_name):
- tty.die('No class %s defined in %s' % (class_name, mod_name))
- cls = getattr(mod, class_name)
- if not inspect.isclass(cls):
- tty.die('%s.%s is not a class' % (mod_name, class_name))
-
- classes.append(cls)
-
- return classes
-
-
-@memoized
+@lang.memoized
def _platform():
- """Detects the platform for this machine.
-
- Gather a list of all available subclasses of platforms.
- Sorts the list according to their priority looking. Priority is
- an arbitrarily set number. Detects platform either using uname or
- a file path (/opt/cray...)
- """
- # Try to create a Platform object using the config file FIRST
- platform_list = _all_platforms()
- platform_list.sort(key=lambda a: a.priority)
-
- for platform_cls in platform_list:
- if platform_cls.detect():
- return platform_cls()
+ return spack.platforms.host()
#: The "real" platform of the host running Spack. This should not be changed
@@ -540,44 +184,23 @@ real_platform = _platform
#: context manager.
platform = _platform
-#: The list of all platform classes. May be swapped by the use_platform
-#: context manager.
-all_platforms = _all_platforms
-
-@memoized
+@lang.memoized
def default_arch():
- """Default ``Arch`` object for this machine.
-
- See ``sys_type()``.
- """
+ """Default ``Arch`` object for this machine"""
return Arch(platform(), 'default_os', 'default_target')
-def sys_type():
- """Print out the "default" platform-os-target tuple for this machine.
-
- On machines with only one target OS/target, prints out the
- platform-os-target for the frontend. For machines with a frontend
- and a backend, prints the default backend.
-
- TODO: replace with use of more explicit methods to get *all* the
- backends, as client code should really be aware of cross-compiled
- architectures.
-
- """
- return str(default_arch())
-
-
-@memoized
+@lang.memoized
def compatible_sys_types():
- """Returns a list of all the systypes compatible with the current host."""
- compatible_archs = []
+ """Return a list of all the platform-os-target tuples compatible
+ with the current host.
+ """
current_host = archspec.cpu.host()
compatible_targets = [current_host] + current_host.ancestors
- for target in compatible_targets:
- arch = Arch(platform(), 'default_os', target)
- compatible_archs.append(str(arch))
+ compatible_archs = [
+ str(Arch(platform(), 'default_os', target)) for target in compatible_targets
+ ]
return compatible_archs
@@ -595,23 +218,25 @@ class _PickleableCallable(object):
@contextlib.contextmanager
def use_platform(new_platform):
- global platform, all_platforms
+ global platform
msg = '"{0}" must be an instance of Platform'
- assert isinstance(new_platform, Platform), msg.format(new_platform)
+ assert isinstance(new_platform, spack.platforms.Platform), msg.format(new_platform)
+
+ original_platform_fn = platform
- original_platform_fn, original_all_platforms_fn = platform, all_platforms
- platform = _PickleableCallable(new_platform)
- all_platforms = _PickleableCallable([type(new_platform)])
+ try:
+ platform = _PickleableCallable(new_platform)
- # Clear configuration and compiler caches
- spack.config.config.clear_caches()
- spack.compilers._cache_config_files = []
+ # Clear configuration and compiler caches
+ spack.config.config.clear_caches()
+ spack.compilers._cache_config_files = []
- yield new_platform
+ yield new_platform
- platform, all_platforms = original_platform_fn, original_all_platforms_fn
+ finally:
+ platform = original_platform_fn
- # Clear configuration and compiler caches
- spack.config.config.clear_caches()
- spack.compilers._cache_config_files = []
+ # Clear configuration and compiler caches
+ spack.config.config.clear_caches()
+ spack.compilers._cache_config_files = []
diff --git a/lib/spack/spack/audit.py b/lib/spack/spack/audit.py
new file mode 100644
index 0000000000..47894383a5
--- /dev/null
+++ b/lib/spack/spack/audit.py
@@ -0,0 +1,438 @@
+# Copyright 2013-2021 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)
+"""Classes and functions to register audit checks for various parts of
+Spack and run them on-demand.
+
+To register a new class of sanity checks (e.g. sanity checks for
+compilers.yaml), the first action required is to create a new AuditClass
+object:
+
+.. code-block:: python
+
+ audit_cfgcmp = AuditClass(
+ tag='CFG-COMPILER',
+ description='Sanity checks on compilers.yaml',
+ kwargs=()
+ )
+
+This object is to be used as a decorator to register functions
+that will perform each a single check:
+
+.. code-block:: python
+
+ @audit_cfgcmp
+ def _search_duplicate_compilers(error_cls):
+ pass
+
+These functions need to take as argument the keywords declared when
+creating the decorator object plus an ``error_cls`` argument at the
+end, acting as a factory to create Error objects. It should return a
+(possibly empty) list of errors.
+
+Calls to each of these functions are triggered by the ``run`` method of
+the decorator object, that will forward the keyword arguments passed
+as input.
+"""
+import collections
+import itertools
+import re
+
+from six.moves.urllib.request import urlopen
+
+try:
+ from collections.abc import Sequence # novm
+except ImportError:
+ from collections import Sequence
+
+
+#: Map an audit tag to a list of callables implementing checks
+CALLBACKS = {}
+
+#: Map a group of checks to the list of related audit tags
+GROUPS = collections.defaultdict(list)
+
+
+class Error(object):
+ """Information on an error reported in a test."""
+ def __init__(self, summary, details):
+ self.summary = summary
+ self.details = tuple(details)
+
+ def __str__(self):
+ return self.summary + '\n' + '\n'.join([
+ ' ' + detail for detail in self.details
+ ])
+
+ def __eq__(self, other):
+ if self.summary != other.summary or self.details != other.details:
+ return False
+ return True
+
+ def __hash__(self):
+ value = (self.summary, self.details)
+ return hash(value)
+
+
+class AuditClass(Sequence):
+ def __init__(self, group, tag, description, kwargs):
+ """Return an object that acts as a decorator to register functions
+ associated with a specific class of sanity checks.
+
+ Args:
+ group (str): group in which this check is to be inserted
+ tag (str): tag uniquely identifying the class of sanity checks
+ description (str): description of the sanity checks performed
+ by this tag
+ kwargs (tuple of str): keyword arguments that each registered
+ function needs to accept
+ """
+ if tag in CALLBACKS:
+ msg = 'audit class "{0}" already registered'
+ raise ValueError(msg.format(tag))
+
+ self.group = group
+ self.tag = tag
+ self.description = description
+ self.kwargs = kwargs
+ self.callbacks = []
+
+ # Init the list of hooks
+ CALLBACKS[self.tag] = self
+
+ # Update the list of tags in the group
+ GROUPS[self.group].append(self.tag)
+
+ def __call__(self, func):
+ self.callbacks.append(func)
+
+ def __getitem__(self, item):
+ return self.callbacks[item]
+
+ def __len__(self):
+ return len(self.callbacks)
+
+ def run(self, **kwargs):
+ msg = 'please pass "{0}" as keyword arguments'
+ msg = msg.format(', '.join(self.kwargs))
+ assert set(self.kwargs) == set(kwargs), msg
+
+ errors = []
+ kwargs['error_cls'] = Error
+ for fn in self.callbacks:
+ errors.extend(fn(**kwargs))
+
+ return errors
+
+
+def run_group(group, **kwargs):
+ """Run the checks that are part of the group passed as argument.
+
+ Args:
+ group (str): group of checks to be run
+ **kwargs: keyword arguments forwarded to the checks
+
+ Returns:
+ List of (tag, errors) that failed.
+ """
+ reports = []
+ for check in GROUPS[group]:
+ errors = run_check(check, **kwargs)
+ reports.append((check, errors))
+ return reports
+
+
+def run_check(tag, **kwargs):
+ """Run the checks associated with a single tag.
+
+ Args:
+ tag (str): tag of the check
+ **kwargs: keyword arguments forwarded to the checks
+
+ Returns:
+ Errors occurred during the checks
+ """
+ return CALLBACKS[tag].run(**kwargs)
+
+
+# TODO: For the generic check to be useful for end users,
+# TODO: we need to implement hooks like described in
+# TODO: https://github.com/spack/spack/pull/23053/files#r630265011
+#: Generic checks relying on global state
+generic = AuditClass(
+ group='generic',
+ tag='GENERIC',
+ description='Generic checks relying on global variables',
+ kwargs=()
+)
+
+
+#: Sanity checks on compilers.yaml
+config_compiler = AuditClass(
+ group='configs',
+ tag='CFG-COMPILER',
+ description='Sanity checks on compilers.yaml',
+ kwargs=()
+)
+
+
+@config_compiler
+def _search_duplicate_compilers(error_cls):
+ """Report compilers with the same spec and two different definitions"""
+ import spack.config
+ errors = []
+
+ compilers = list(sorted(
+ spack.config.get('compilers'), key=lambda x: x['compiler']['spec']
+ ))
+ for spec, group in itertools.groupby(
+ compilers, key=lambda x: x['compiler']['spec']
+ ):
+ group = list(group)
+ if len(group) == 1:
+ continue
+
+ error_msg = 'Compiler defined multiple times: {0}'
+ try:
+ details = [str(x._start_mark).strip() for x in group]
+ except Exception:
+ details = []
+ errors.append(error_cls(
+ summary=error_msg.format(spec), details=details
+ ))
+
+ return errors
+
+
+#: Sanity checks on packages.yaml
+config_packages = AuditClass(
+ group='configs',
+ tag='CFG-PACKAGES',
+ description='Sanity checks on packages.yaml',
+ kwargs=()
+)
+
+
+@config_packages
+def _search_duplicate_specs_in_externals(error_cls):
+ """Search for duplicate specs declared as externals"""
+ import spack.config
+
+ errors, externals = [], collections.defaultdict(list)
+ packages_yaml = spack.config.get('packages')
+
+ for name, pkg_config in packages_yaml.items():
+ # No externals can be declared under all
+ if name == 'all' or 'externals' not in pkg_config:
+ continue
+
+ current_externals = pkg_config['externals']
+ for entry in current_externals:
+ # Ask for the string representation of the spec to normalize
+ # aspects of the spec that may be represented in multiple ways
+ # e.g. +foo or foo=true
+ key = str(spack.spec.Spec(entry['spec']))
+ externals[key].append(entry)
+
+ for spec, entries in sorted(externals.items()):
+ # If there's a single external for a spec we are fine
+ if len(entries) < 2:
+ continue
+
+ # Otherwise wwe need to report an error
+ error_msg = 'Multiple externals share the same spec: {0}'.format(spec)
+ try:
+ lines = [str(x._start_mark).strip() for x in entries]
+ details = [
+ 'Please remove all but one of the following entries:'
+ ] + lines + [
+ 'as they might result in non-deterministic hashes'
+ ]
+ except TypeError:
+ details = []
+
+ errors.append(error_cls(summary=error_msg, details=details))
+
+ return errors
+
+
+#: Sanity checks on package directives
+package_directives = AuditClass(
+ group='packages',
+ tag='PKG-DIRECTIVES',
+ description='Sanity checks on specs used in directives',
+ kwargs=('pkgs',)
+)
+
+#: Sanity checks on linting
+# This can take some time, so it's run separately from packages
+package_https_directives = AuditClass(
+ group='packages-https',
+ tag='PKG-HTTPS-DIRECTIVES',
+ description='Sanity checks on https checks of package urls, etc.',
+ kwargs=('pkgs',)
+)
+
+
+@package_https_directives
+def _linting_package_file(pkgs, error_cls):
+ """Check for correctness of links
+ """
+ import llnl.util.lang
+
+ import spack.repo
+ import spack.spec
+
+ errors = []
+ for pkg_name in pkgs:
+ pkg = spack.repo.get(pkg_name)
+
+ # Does the homepage have http, and if so, does https work?
+ if pkg.homepage.startswith('http://'):
+ https = re.sub("http", "https", pkg.homepage, 1)
+ try:
+ response = urlopen(https)
+ except Exception as e:
+ msg = 'Error with attempting https for "{0}": '
+ errors.append(error_cls(msg.format(pkg.name), [str(e)]))
+ continue
+
+ if response.getcode() == 200:
+ msg = 'Package "{0}" uses http but has a valid https endpoint.'
+ errors.append(msg.format(pkg.name))
+
+ return llnl.util.lang.dedupe(errors)
+
+
+@package_directives
+def _unknown_variants_in_directives(pkgs, error_cls):
+ """Report unknown or wrong variants in directives for this package"""
+ import llnl.util.lang
+
+ import spack.repo
+ import spack.spec
+
+ errors = []
+ for pkg_name in pkgs:
+ pkg = spack.repo.get(pkg_name)
+
+ # Check "conflicts" directive
+ for conflict, triggers in pkg.conflicts.items():
+ for trigger, _ in triggers:
+ vrn = spack.spec.Spec(conflict)
+ try:
+ vrn.constrain(trigger)
+ except Exception as e:
+ msg = 'Generic error in conflict for package "{0}": '
+ errors.append(error_cls(msg.format(pkg.name), [str(e)]))
+ continue
+ errors.extend(_analyze_variants_in_directive(
+ pkg, vrn, directive='conflicts', error_cls=error_cls
+ ))
+
+ # Check "depends_on" directive
+ for _, triggers in pkg.dependencies.items():
+ triggers = list(triggers)
+ for trigger in list(triggers):
+ vrn = spack.spec.Spec(trigger)
+ errors.extend(_analyze_variants_in_directive(
+ pkg, vrn, directive='depends_on', error_cls=error_cls
+ ))
+
+ # Check "patch" directive
+ for _, triggers in pkg.provided.items():
+ triggers = [spack.spec.Spec(x) for x in triggers]
+ for vrn in triggers:
+ errors.extend(_analyze_variants_in_directive(
+ pkg, vrn, directive='patch', error_cls=error_cls
+ ))
+
+ # Check "resource" directive
+ for vrn in pkg.resources:
+ errors.extend(_analyze_variants_in_directive(
+ pkg, vrn, directive='resource', error_cls=error_cls
+ ))
+
+ return llnl.util.lang.dedupe(errors)
+
+
+@package_directives
+def _unknown_variants_in_dependencies(pkgs, error_cls):
+ """Report unknown dependencies and wrong variants for dependencies"""
+ import spack.repo
+ import spack.spec
+
+ errors = []
+ for pkg_name in pkgs:
+ pkg = spack.repo.get(pkg_name)
+ filename = spack.repo.path.filename_for_package_name(pkg_name)
+ for dependency_name, dependency_data in pkg.dependencies.items():
+ # No need to analyze virtual packages
+ if spack.repo.path.is_virtual(dependency_name):
+ continue
+
+ try:
+ dependency_pkg = spack.repo.get(dependency_name)
+ except spack.repo.UnknownPackageError:
+ # This dependency is completely missing, so report
+ # and continue the analysis
+ summary = (pkg_name + ": unknown package '{0}' in "
+ "'depends_on' directive".format(dependency_name))
+ details = [
+ " in " + filename
+ ]
+ errors.append(error_cls(summary=summary, details=details))
+ continue
+
+ for _, dependency_edge in dependency_data.items():
+ dependency_variants = dependency_edge.spec.variants
+ for name, value in dependency_variants.items():
+ try:
+ dependency_pkg.variants[name].validate_or_raise(
+ value, pkg=dependency_pkg
+ )
+ except Exception as e:
+ summary = (pkg_name + ": wrong variant used for a "
+ "dependency in a 'depends_on' directive")
+ error_msg = str(e).strip()
+ if isinstance(e, KeyError):
+ error_msg = ('the variant {0} does not '
+ 'exist'.format(error_msg))
+ error_msg += " in package '" + dependency_name + "'"
+
+ errors.append(error_cls(
+ summary=summary, details=[error_msg, 'in ' + filename]
+ ))
+
+ return errors
+
+
+def _analyze_variants_in_directive(pkg, constraint, directive, error_cls):
+ import spack.variant
+ variant_exceptions = (
+ spack.variant.InconsistentValidationError,
+ spack.variant.MultipleValuesInExclusiveVariantError,
+ spack.variant.InvalidVariantValueError,
+ KeyError
+ )
+ errors = []
+ for name, v in constraint.variants.items():
+ try:
+ pkg.variants[name].validate_or_raise(v, pkg=pkg)
+ except variant_exceptions as e:
+ summary = pkg.name + ': wrong variant in "{0}" directive'
+ summary = summary.format(directive)
+ filename = spack.repo.path.filename_for_package_name(pkg.name)
+
+ error_msg = str(e).strip()
+ if isinstance(e, KeyError):
+ error_msg = 'the variant {0} does not exist'.format(error_msg)
+
+ err = error_cls(summary=summary, details=[
+ error_msg, 'in ' + filename
+ ])
+
+ errors.append(err)
+
+ return errors
diff --git a/lib/spack/spack/binary_distribution.py b/lib/spack/spack/binary_distribution.py
index 00fffdfe51..c8e866ff14 100644
--- a/lib/spack/spack/binary_distribution.py
+++ b/lib/spack/spack/binary_distribution.py
@@ -1,25 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import codecs
+import glob
+import hashlib
+import json
import os
import re
+import shutil
import sys
import tarfile
-import shutil
import tempfile
-import hashlib
-import glob
-from ordereddict_backport import OrderedDict
-
+import traceback
from contextlib import closing
-import ruamel.yaml as yaml
-import json
-
-from six.moves.urllib.error import URLError, HTTPError
+import ruamel.yaml as yaml
+from ordereddict_backport import OrderedDict
+from six.moves.urllib.error import HTTPError, URLError
import llnl.util.lang
import llnl.util.tty as tty
@@ -29,21 +28,21 @@ import spack.cmd
import spack.config as config
import spack.database as spack_db
import spack.fetch_strategy as fs
-import spack.util.file_cache as file_cache
+import spack.hash_types as ht
+import spack.hooks.sbang
+import spack.mirror
+import spack.platforms
import spack.relocate as relocate
+import spack.util.file_cache as file_cache
import spack.util.gpg
import spack.util.spack_json as sjson
import spack.util.spack_yaml as syaml
-import spack.mirror
import spack.util.url as url_util
import spack.util.web as web_util
+from spack.caches import misc_cache_location
from spack.spec import Spec
from spack.stage import Stage
-
-#: default root, relative to the Spack install path
-default_binary_index_root = os.path.join(spack.paths.opt_path, 'spack')
-
_build_cache_relative_path = 'build_cache'
_build_cache_keys_relative_path = '_pgp'
@@ -67,9 +66,8 @@ class BinaryCacheIndex(object):
mean we should have paid the price to update the cache earlier?
"""
- def __init__(self, cache_root=None):
- self._cache_root = cache_root or default_binary_index_root
- self._index_cache_root = os.path.join(self._cache_root, 'indices')
+ def __init__(self, cache_root):
+ self._index_cache_root = cache_root
# the key associated with the serialized _local_index_cache
self._index_contents_key = 'contents.json'
@@ -159,7 +157,7 @@ class BinaryCacheIndex(object):
with self._index_file_cache.read_transaction(cache_key):
db._read_from_file(cache_path)
- spec_list = db.query_local(installed=False)
+ spec_list = db.query_local(installed=False, in_buildcache=True)
for indexed_spec in spec_list:
dag_hash = indexed_spec.dag_hash()
@@ -210,7 +208,7 @@ class BinaryCacheIndex(object):
The cache can be updated by calling ``update()`` on the cache.
Args:
- spec (Spec): Concrete spec to find
+ spec (spack.spec.Spec): Concrete spec to find
Returns:
An list of objects containing the found specs and mirror url where
@@ -440,13 +438,15 @@ class BinaryCacheIndex(object):
return True
+def binary_index_location():
+ """Set up a BinaryCacheIndex for remote buildcache dbs in the user's homedir."""
+ cache_root = os.path.join(misc_cache_location(), 'indices')
+ return spack.util.path.canonicalize_path(cache_root)
+
+
def _binary_index():
"""Get the singleton store instance."""
- cache_root = spack.config.get(
- 'config:binary_index_root', default_binary_index_root)
- cache_root = spack.util.path.canonicalize_path(cache_root)
-
- return BinaryCacheIndex(cache_root)
+ return BinaryCacheIndex(binary_index_location())
#: Singleton binary_index instance
@@ -551,65 +551,82 @@ def read_buildinfo_file(prefix):
return buildinfo
-def write_buildinfo_file(spec, workdir, rel=False):
+def get_buildfile_manifest(spec):
"""
- Create a cache file containing information
- required for the relocation
+ Return a data structure with information about a build, including
+ text_to_relocate, binary_to_relocate, binary_to_relocate_fullpath
+ link_to_relocate, and other, which means it doesn't fit any of previous
+ checks (and should not be relocated). We blacklist docs (man) and
+ metadata (.spack). This can be used to find a particular kind of file
+ in spack, or to generate the build metadata.
"""
- prefix = spec.prefix
- text_to_relocate = []
- binary_to_relocate = []
- link_to_relocate = []
+ data = {"text_to_relocate": [], "binary_to_relocate": [],
+ "link_to_relocate": [], "other": [],
+ "binary_to_relocate_fullpath": []}
+
blacklist = (".spack", "man")
- prefix_to_hash = dict()
- prefix_to_hash[str(spec.package.prefix)] = spec.dag_hash()
- deps = spack.build_environment.get_rpath_deps(spec.package)
- for d in deps:
- prefix_to_hash[str(d.prefix)] = d.dag_hash()
+
# Do this at during tarball creation to save time when tarball unpacked.
# Used by make_package_relative to determine binaries to change.
- for root, dirs, files in os.walk(prefix, topdown=True):
+ for root, dirs, files in os.walk(spec.prefix, topdown=True):
dirs[:] = [d for d in dirs if d not in blacklist]
for filename in files:
path_name = os.path.join(root, filename)
m_type, m_subtype = relocate.mime_type(path_name)
+ rel_path_name = os.path.relpath(path_name, spec.prefix)
+ added = False
+
if os.path.islink(path_name):
link = os.readlink(path_name)
if os.path.isabs(link):
# Relocate absolute links into the spack tree
if link.startswith(spack.store.layout.root):
- rel_path_name = os.path.relpath(path_name, prefix)
- link_to_relocate.append(rel_path_name)
- else:
- msg = 'Absolute link %s to %s ' % (path_name, link)
- msg += 'outside of prefix %s ' % prefix
- msg += 'should not be relocated.'
- tty.warn(msg)
+ data['link_to_relocate'].append(rel_path_name)
+ added = True
if relocate.needs_binary_relocation(m_type, m_subtype):
- if ((m_subtype in ('x-executable', 'x-sharedlib')
+ if ((m_subtype in ('x-executable', 'x-sharedlib', 'x-pie-executable')
and sys.platform != 'darwin') or
(m_subtype in ('x-mach-binary')
and sys.platform == 'darwin') or
(not filename.endswith('.o'))):
- rel_path_name = os.path.relpath(path_name, prefix)
- binary_to_relocate.append(rel_path_name)
+ data['binary_to_relocate'].append(rel_path_name)
+ data['binary_to_relocate_fullpath'].append(path_name)
+ added = True
+
if relocate.needs_text_relocation(m_type, m_subtype):
- rel_path_name = os.path.relpath(path_name, prefix)
- text_to_relocate.append(rel_path_name)
+ data['text_to_relocate'].append(rel_path_name)
+ added = True
+
+ if not added:
+ data['other'].append(path_name)
+ return data
+
+
+def write_buildinfo_file(spec, workdir, rel=False):
+ """
+ Create a cache file containing information
+ required for the relocation
+ """
+ manifest = get_buildfile_manifest(spec)
+
+ prefix_to_hash = dict()
+ prefix_to_hash[str(spec.package.prefix)] = spec.dag_hash()
+ deps = spack.build_environment.get_rpath_deps(spec.package)
+ for d in deps:
+ prefix_to_hash[str(d.prefix)] = d.dag_hash()
# Create buildinfo data and write it to disk
- import spack.hooks.sbang as sbang
buildinfo = {}
- buildinfo['sbang_install_path'] = sbang.sbang_install_path()
+ buildinfo['sbang_install_path'] = spack.hooks.sbang.sbang_install_path()
buildinfo['relative_rpaths'] = rel
buildinfo['buildpath'] = spack.store.layout.root
buildinfo['spackprefix'] = spack.paths.prefix
buildinfo['relative_prefix'] = os.path.relpath(
- prefix, spack.store.layout.root)
- buildinfo['relocate_textfiles'] = text_to_relocate
- buildinfo['relocate_binaries'] = binary_to_relocate
- buildinfo['relocate_links'] = link_to_relocate
+ spec.prefix, spack.store.layout.root)
+ buildinfo['relocate_textfiles'] = manifest['text_to_relocate']
+ buildinfo['relocate_binaries'] = manifest['binary_to_relocate']
+ buildinfo['relocate_links'] = manifest['link_to_relocate']
buildinfo['prefix_to_hash'] = prefix_to_hash
filename = buildinfo_file_name(workdir)
with open(filename, 'w') as outfile:
@@ -692,20 +709,14 @@ def generate_package_index(cache_prefix):
"""Create the build cache index page.
Creates (or replaces) the "index.json" page at the location given in
- cache_prefix. This page contains a link for each binary package (.yaml)
- under cache_prefix.
+ cache_prefix. This page contains a link for each binary package (.yaml or
+ .json) under cache_prefix.
"""
- tmpdir = tempfile.mkdtemp()
- db_root_dir = os.path.join(tmpdir, 'db_root')
- db = spack_db.Database(None, db_dir=db_root_dir,
- enable_transaction_locking=False,
- record_fields=['spec', 'ref_count'])
-
try:
file_list = (
entry
for entry in web_util.list_url(cache_prefix)
- if entry.endswith('.yaml'))
+ if entry.endswith('.yaml') or entry.endswith('spec.json'))
except KeyError as inst:
msg = 'No packages at {0}: {1}'.format(cache_prefix, inst)
tty.warn(msg)
@@ -719,23 +730,97 @@ def generate_package_index(cache_prefix):
tty.warn(msg)
return
- tty.debug('Retrieving spec.yaml files from {0} to build index'.format(
+ tty.debug('Retrieving spec descriptor files from {0} to build index'.format(
cache_prefix))
+
+ all_mirror_specs = {}
+
for file_path in file_list:
try:
- yaml_url = url_util.join(cache_prefix, file_path)
- tty.debug('fetching {0}'.format(yaml_url))
- _, _, yaml_file = web_util.read_from_url(yaml_url)
- yaml_contents = codecs.getreader('utf-8')(yaml_file).read()
- # yaml_obj = syaml.load(yaml_contents)
- # s = Spec.from_yaml(yaml_obj)
- s = Spec.from_yaml(yaml_contents)
- db.add(s, None)
+ spec_url = url_util.join(cache_prefix, file_path)
+ tty.debug('fetching {0}'.format(spec_url))
+ _, _, spec_file = web_util.read_from_url(spec_url)
+ spec_file_contents = codecs.getreader('utf-8')(spec_file).read()
+ # Need full spec.json name or this gets confused with index.json.
+ if spec_url.endswith('.json'):
+ spec_dict = sjson.load(spec_file_contents)
+ s = Spec.from_json(spec_file_contents)
+ elif spec_url.endswith('.yaml'):
+ spec_dict = syaml.load(spec_file_contents)
+ s = Spec.from_yaml(spec_file_contents)
+ all_mirror_specs[s.dag_hash()] = {
+ 'spec_url': spec_url,
+ 'spec': s,
+ 'num_deps': len(list(s.traverse(root=False))),
+ 'binary_cache_checksum': spec_dict['binary_cache_checksum'],
+ 'buildinfo': spec_dict['buildinfo'],
+ }
except (URLError, web_util.SpackWebError) as url_err:
- tty.error('Error reading spec.yaml: {0}'.format(file_path))
+ tty.error('Error reading specfile: {0}'.format(file_path))
tty.error(url_err)
+ sorted_specs = sorted(all_mirror_specs.keys(),
+ key=lambda k: all_mirror_specs[k]['num_deps'])
+
+ tmpdir = tempfile.mkdtemp()
+ db_root_dir = os.path.join(tmpdir, 'db_root')
+ db = spack_db.Database(None, db_dir=db_root_dir,
+ enable_transaction_locking=False,
+ record_fields=['spec', 'ref_count', 'in_buildcache'])
+
try:
+ tty.debug('Specs sorted by number of dependencies:')
+ for dag_hash in sorted_specs:
+ spec_record = all_mirror_specs[dag_hash]
+ s = spec_record['spec']
+ num_deps = spec_record['num_deps']
+ tty.debug(' {0}/{1} -> {2}'.format(
+ s.name, dag_hash[:7], num_deps))
+ if num_deps > 0:
+ # Check each of this spec's dependencies (which we have already
+ # processed), as they are the source of truth for their own
+ # full hash. If the full hash we have for any deps does not
+ # match what those deps have themselves, then we need to splice
+ # this spec with those deps, and push this spliced spec
+ # (spec.json file) back to the mirror, as well as update the
+ # all_mirror_specs dictionary with this spliced spec.
+ to_splice = []
+ for dep in s.dependencies():
+ dep_dag_hash = dep.dag_hash()
+ if dep_dag_hash in all_mirror_specs:
+ true_dep = all_mirror_specs[dep_dag_hash]['spec']
+ if true_dep.full_hash() != dep.full_hash():
+ to_splice.append(true_dep)
+
+ if to_splice:
+ tty.debug(' needs the following deps spliced:')
+ for true_dep in to_splice:
+ tty.debug(' {0}/{1}'.format(
+ true_dep.name, true_dep.dag_hash()[:7]))
+ s = s.splice(true_dep, True)
+
+ # Push this spliced spec back to the mirror
+ spliced_spec_dict = s.to_dict(hash=ht.full_hash)
+ for key in ['binary_cache_checksum', 'buildinfo']:
+ spliced_spec_dict[key] = spec_record[key]
+
+ temp_json_path = os.path.join(tmpdir, 'spliced.spec.json')
+ with open(temp_json_path, 'w') as fd:
+ fd.write(sjson.dump(spliced_spec_dict))
+
+ spliced_spec_url = spec_record['spec_url']
+ web_util.push_to_url(
+ temp_json_path, spliced_spec_url, keep_original=False)
+ tty.debug(' spliced and wrote {0}'.format(
+ spliced_spec_url))
+ spec_record['spec'] = s
+
+ db.add(s, None)
+ db.mark(s, 'in_buildcache', True)
+
+ # Now that we have fixed any old specfiles that might have had the wrong
+ # full hash for their dependencies, we can generate the index, compute
+ # the hash, and push those files to the mirror.
index_json_path = os.path.join(db_root_dir, 'index.json')
with open(index_json_path, 'w') as f:
db._write_to_file(f)
@@ -763,6 +848,11 @@ def generate_package_index(cache_prefix):
url_util.join(cache_prefix, 'index.json.hash'),
keep_original=False,
extra_args={'ContentType': 'text/plain'})
+ except Exception as err:
+ msg = 'Encountered problem pushing package index to {0}: {1}'.format(
+ cache_prefix, err)
+ tty.warn(msg)
+ tty.debug('\n' + traceback.format_exc())
finally:
shutil.rmtree(tmpdir)
@@ -823,6 +913,10 @@ def generate_key_index(key_prefix, tmpdir=None):
url_util.join(key_prefix, 'index.json'),
keep_original=False,
extra_args={'ContentType': 'application/json'})
+ except Exception as err:
+ msg = 'Encountered problem pushing key index to {0}: {1}'.format(
+ key_prefix, err)
+ tty.warn(msg)
finally:
if remove_tmpdir:
shutil.rmtree(tmpdir)
@@ -860,19 +954,27 @@ def build_tarball(spec, outdir, force=False, rel=False, unsigned=False,
# need to copy the spec file so the build cache can be downloaded
# without concretizing with the current spack packages
# and preferences
- spec_file = os.path.join(spec.prefix, ".spack", "spec.yaml")
- specfile_name = tarball_name(spec, '.spec.yaml')
- specfile_path = os.path.realpath(
- os.path.join(cache_prefix, specfile_name))
+
+ spec_file = spack.store.layout.spec_file_path(spec)
+ specfile_name = tarball_name(spec, '.spec.json')
+ specfile_path = os.path.realpath(os.path.join(cache_prefix, specfile_name))
+ deprecated_specfile_path = specfile_path.replace('.spec.json', '.spec.yaml')
remote_specfile_path = url_util.join(
outdir, os.path.relpath(specfile_path, os.path.realpath(tmpdir)))
+ remote_specfile_path_deprecated = url_util.join(
+ outdir, os.path.relpath(deprecated_specfile_path,
+ os.path.realpath(tmpdir)))
- if web_util.url_exists(remote_specfile_path):
- if force:
+ # If force and exists, overwrite. Otherwise raise exception on collision.
+ if force:
+ if web_util.url_exists(remote_specfile_path):
web_util.remove_url(remote_specfile_path)
- else:
- raise NoOverwriteException(url_util.format(remote_specfile_path))
+ if web_util.url_exists(remote_specfile_path_deprecated):
+ web_util.remove_url(remote_specfile_path_deprecated)
+ elif (web_util.url_exists(remote_specfile_path) or
+ web_util.url_exists(remote_specfile_path_deprecated)):
+ raise NoOverwriteException(url_util.format(remote_specfile_path))
# make a copy of the install directory to work with
workdir = os.path.join(tmpdir, os.path.basename(spec.prefix))
@@ -920,15 +1022,23 @@ def build_tarball(spec, outdir, force=False, rel=False, unsigned=False,
# get the sha256 checksum of the tarball
checksum = checksum_tarball(tarfile_path)
- # add sha256 checksum to spec.yaml
+ # add sha256 checksum to spec.json
+
with open(spec_file, 'r') as inputfile:
content = inputfile.read()
- spec_dict = yaml.load(content)
+ if spec_file.endswith('.yaml'):
+ spec_dict = yaml.load(content)
+ elif spec_file.endswith('.json'):
+ spec_dict = sjson.load(content)
+ else:
+ raise ValueError(
+ '{0} not a valid spec file type (json or yaml)'.format(
+ spec_file))
bchecksum = {}
bchecksum['hash_algorithm'] = 'sha256'
bchecksum['hash'] = checksum
spec_dict['binary_cache_checksum'] = bchecksum
- # Add original install prefix relative to layout root to spec.yaml.
+ # Add original install prefix relative to layout root to spec.json.
# This will be used to determine is the directory layout has changed.
buildinfo = {}
buildinfo['relative_prefix'] = os.path.relpath(
@@ -937,7 +1047,7 @@ def build_tarball(spec, outdir, force=False, rel=False, unsigned=False,
spec_dict['buildinfo'] = buildinfo
with open(specfile_path, 'w') as outfile:
- outfile.write(syaml.dump(spec_dict))
+ outfile.write(sjson.dump(spec_dict))
# sign the tarball and spec file with gpg
if not unsigned:
@@ -991,14 +1101,14 @@ def download_tarball(spec, preferred_mirrors=None):
path to downloaded tarball if successful, None otherwise.
Args:
- spec (Spec): Concrete spec
+ spec (spack.spec.Spec): Concrete spec
preferred_mirrors (list): If provided, this is a list of preferred
- mirror urls. Other configured mirrors will only be used if the
- tarball can't be retrieved from one of these.
+ mirror urls. Other configured mirrors will only be used if the
+ tarball can't be retrieved from one of these.
Returns:
Path to the downloaded tarball, or ``None`` if the tarball could not
- be downloaded from any configured mirrors.
+ be downloaded from any configured mirrors.
"""
if not spack.mirror.MirrorCollection():
tty.die("Please add a spack mirror to allow " +
@@ -1047,7 +1157,7 @@ def make_package_relative(workdir, spec, allow_root):
orig_path_names.append(os.path.join(prefix, filename))
cur_path_names.append(os.path.join(workdir, filename))
- platform = spack.architecture.get_platform(spec.platform)
+ platform = spack.platforms.by_name(spec.platform)
if 'macho' in platform.binary_formats:
relocate.make_macho_binaries_relative(
cur_path_names, orig_path_names, old_layout_root)
@@ -1119,9 +1229,8 @@ def relocate_package(spec, allow_root):
prefix_to_prefix_bin = OrderedDict({})
if old_sbang_install_path:
- import spack.hooks.sbang as sbang
- prefix_to_prefix_text[old_sbang_install_path] = \
- sbang.sbang_install_path()
+ install_path = spack.hooks.sbang.sbang_install_path()
+ prefix_to_prefix_text[old_sbang_install_path] = install_path
prefix_to_prefix_text[old_prefix] = new_prefix
prefix_to_prefix_bin[old_prefix] = new_prefix
@@ -1134,9 +1243,8 @@ def relocate_package(spec, allow_root):
# sbang was a bash script, and it lived in the spack prefix. It is
# now a POSIX script that lives in the install prefix. Old packages
# will have the old sbang location in their shebangs.
- import spack.hooks.sbang as sbang
orig_sbang = '#!/bin/bash {0}/bin/sbang'.format(old_spack_prefix)
- new_sbang = sbang.sbang_shebang_line()
+ new_sbang = spack.hooks.sbang.sbang_shebang_line()
prefix_to_prefix_text[orig_sbang] = new_sbang
tty.debug("Relocating package from",
@@ -1153,14 +1261,14 @@ def relocate_package(spec, allow_root):
if not is_backup_file(text_name):
text_names.append(text_name)
-# If we are not installing back to the same install tree do the relocation
- if old_layout_root != new_layout_root:
+ # If we are not installing back to the same install tree do the relocation
+ if old_prefix != new_prefix:
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
- platform = spack.architecture.get_platform(spec.platform)
+ platform = spack.platforms.by_name(spec.platform)
if 'macho' in platform.binary_formats:
relocate.relocate_macho_binaries(files_to_relocate,
old_layout_root,
@@ -1219,15 +1327,26 @@ def extract_tarball(spec, filename, allow_root=False, unsigned=False,
spackfile_path = os.path.join(stagepath, spackfile_name)
tarfile_name = tarball_name(spec, '.tar.gz')
tarfile_path = os.path.join(tmpdir, tarfile_name)
- specfile_name = tarball_name(spec, '.spec.yaml')
- specfile_path = os.path.join(tmpdir, specfile_name)
-
+ specfile_is_json = True
+ deprecated_yaml_name = tarball_name(spec, '.spec.yaml')
+ deprecated_yaml_path = os.path.join(tmpdir, deprecated_yaml_name)
+ json_name = tarball_name(spec, '.spec.json')
+ json_path = os.path.join(tmpdir, json_name)
with closing(tarfile.open(spackfile_path, 'r')) as tar:
tar.extractall(tmpdir)
# some buildcache tarfiles use bzip2 compression
if not os.path.exists(tarfile_path):
tarfile_name = tarball_name(spec, '.tar.bz2')
tarfile_path = os.path.join(tmpdir, tarfile_name)
+
+ if os.path.exists(json_path):
+ specfile_path = json_path
+ elif os.path.exists(deprecated_yaml_path):
+ specfile_is_json = False
+ specfile_path = deprecated_yaml_path
+ else:
+ raise ValueError('Cannot find spec file for {0}.'.format(tmpdir))
+
if not unsigned:
if os.path.exists('%s.asc' % specfile_path):
try:
@@ -1250,7 +1369,10 @@ def extract_tarball(spec, filename, allow_root=False, unsigned=False,
spec_dict = {}
with open(specfile_path, 'r') as inputfile:
content = inputfile.read()
- spec_dict = syaml.load(content)
+ if specfile_is_json:
+ spec_dict = sjson.load(content)
+ else:
+ spec_dict = syaml.load(content)
bchecksum = spec_dict['binary_cache_checksum']
# if the checksums don't match don't install
@@ -1323,31 +1445,43 @@ def extract_tarball(spec, filename, allow_root=False, unsigned=False,
os.remove(filename)
-def try_direct_fetch(spec, force=False, full_hash_match=False, mirrors=None):
+def try_direct_fetch(spec, full_hash_match=False, mirrors=None):
"""
Try to find the spec directly on the configured mirrors
"""
- specfile_name = tarball_name(spec, '.spec.yaml')
+ deprecated_specfile_name = tarball_name(spec, '.spec.yaml')
+ specfile_name = tarball_name(spec, '.spec.json')
+ specfile_is_json = True
lenient = not full_hash_match
found_specs = []
spec_full_hash = spec.full_hash()
for mirror in spack.mirror.MirrorCollection(mirrors=mirrors).values():
- buildcache_fetch_url = url_util.join(
+ buildcache_fetch_url_yaml = url_util.join(
+ mirror.fetch_url, _build_cache_relative_path, deprecated_specfile_name)
+ buildcache_fetch_url_json = url_util.join(
mirror.fetch_url, _build_cache_relative_path, specfile_name)
-
try:
- _, _, fs = web_util.read_from_url(buildcache_fetch_url)
- fetched_spec_yaml = codecs.getreader('utf-8')(fs).read()
+ _, _, fs = web_util.read_from_url(buildcache_fetch_url_json)
except (URLError, web_util.SpackWebError, HTTPError) as url_err:
- tty.debug('Did not find {0} on {1}'.format(
- specfile_name, buildcache_fetch_url), url_err)
- continue
+ try:
+ _, _, fs = web_util.read_from_url(buildcache_fetch_url_yaml)
+ specfile_is_json = False
+ except (URLError, web_util.SpackWebError, HTTPError) as url_err_y:
+ tty.debug('Did not find {0} on {1}'.format(
+ specfile_name, buildcache_fetch_url_json), url_err)
+ tty.debug('Did not find {0} on {1}'.format(
+ specfile_name, buildcache_fetch_url_yaml), url_err_y)
+ continue
+ specfile_contents = codecs.getreader('utf-8')(fs).read()
# read the spec from the build cache file. All specs in build caches
# are concrete (as they are built) so we need to mark this spec
# concrete on read-in.
- fetched_spec = Spec.from_yaml(fetched_spec_yaml)
+ if specfile_is_json:
+ fetched_spec = Spec.from_json(specfile_contents)
+ else:
+ fetched_spec = Spec.from_yaml(specfile_contents)
fetched_spec._mark_concrete()
# Do not recompute the full hash for the fetched spec, instead just
@@ -1361,11 +1495,26 @@ def try_direct_fetch(spec, force=False, full_hash_match=False, mirrors=None):
return found_specs
-def get_mirrors_for_spec(spec=None, force=False, full_hash_match=False,
- mirrors_to_check=None):
+def get_mirrors_for_spec(spec=None, full_hash_match=False,
+ mirrors_to_check=None, index_only=False):
"""
Check if concrete spec exists on mirrors and return a list
indicating the mirrors on which it can be found
+
+ Args:
+ spec (spack.spec.Spec): The spec to look for in binary mirrors
+ full_hash_match (bool): If True, only includes mirrors where the spec
+ full hash matches the locally computed full hash of the ``spec``
+ argument. If False, any mirror which has a matching DAG hash
+ is included in the results.
+ mirrors_to_check (dict): Optionally override the configured mirrors
+ with the mirrors in this dictionary.
+ index_only (bool): Do not attempt direct fetching of ``spec.json``
+ files from remote mirrors, only consider the indices.
+
+ Return:
+ A list of objects, each containing a ``mirror_url`` and ``spec`` key
+ indicating all mirrors where the spec can be found.
"""
if spec is None:
return []
@@ -1391,10 +1540,9 @@ def get_mirrors_for_spec(spec=None, force=False, full_hash_match=False,
results = filter_candidates(candidates)
# Maybe we just didn't have the latest information from the mirror, so
- # try to fetch directly.
- if not results:
+ # try to fetch directly, unless we are only considering the indices.
+ if not results and not index_only:
results = try_direct_fetch(spec,
- force=force,
full_hash_match=full_hash_match,
mirrors=mirrors_to_check)
@@ -1519,7 +1667,9 @@ def push_keys(*mirrors, **kwargs):
filename = fingerprint + '.pub'
export_target = os.path.join(prefix, filename)
- spack.util.gpg.export_keys(export_target, fingerprint)
+
+ # Export public keys (private is set to False)
+ spack.util.gpg.export_keys(export_target, [fingerprint])
# If mirror is local, the above export writes directly to the
# mirror (export_target points directly to the mirror).
@@ -1556,57 +1706,91 @@ def needs_rebuild(spec, mirror_url, rebuild_on_errors=False):
pkg_name, pkg_version, pkg_hash, pkg_full_hash))
tty.debug(spec.tree())
- # Try to retrieve the .spec.yaml directly, based on the known
+ # Try to retrieve the specfile directly, based on the known
# format of the name, in order to determine if the package
# needs to be rebuilt.
cache_prefix = build_cache_prefix(mirror_url)
- spec_yaml_file_name = tarball_name(spec, '.spec.yaml')
- file_path = os.path.join(cache_prefix, spec_yaml_file_name)
+ specfile_is_json = True
+ specfile_name = tarball_name(spec, '.spec.json')
+ deprecated_specfile_name = tarball_name(spec, '.spec.yaml')
+ specfile_path = os.path.join(cache_prefix, specfile_name)
+ deprecated_specfile_path = os.path.join(cache_prefix,
+ deprecated_specfile_name)
result_of_error = 'Package ({0}) will {1}be rebuilt'.format(
spec.short_spec, '' if rebuild_on_errors else 'not ')
try:
- _, _, yaml_file = web_util.read_from_url(file_path)
- yaml_contents = codecs.getreader('utf-8')(yaml_file).read()
+ _, _, spec_file = web_util.read_from_url(specfile_path)
except (URLError, web_util.SpackWebError) as url_err:
- err_msg = [
- 'Unable to determine whether {0} needs rebuilding,',
- ' caught exception attempting to read from {1}.',
- ]
- tty.error(''.join(err_msg).format(spec.short_spec, file_path))
- tty.debug(url_err)
- tty.warn(result_of_error)
- return rebuild_on_errors
-
- if not yaml_contents:
- tty.error('Reading {0} returned nothing'.format(file_path))
+ try:
+ _, _, spec_file = web_util.read_from_url(deprecated_specfile_path)
+ specfile_is_json = False
+ except (URLError, web_util.SpackWebError) as url_err_y:
+ err_msg = [
+ 'Unable to determine whether {0} needs rebuilding,',
+ ' caught exception attempting to read from {1} or {2}.',
+ ]
+ tty.error(''.join(err_msg).format(
+ spec.short_spec,
+ specfile_path,
+ deprecated_specfile_path))
+ tty.debug(url_err)
+ tty.debug(url_err_y)
+ tty.warn(result_of_error)
+ return rebuild_on_errors
+
+ spec_file_contents = codecs.getreader('utf-8')(spec_file).read()
+ if not spec_file_contents:
+ tty.error('Reading {0} returned nothing'.format(
+ specfile_path if specfile_is_json else deprecated_specfile_path))
tty.warn(result_of_error)
return rebuild_on_errors
- spec_yaml = syaml.load(yaml_contents)
+ spec_dict = (sjson.load(spec_file_contents)
+ if specfile_is_json else syaml.load(spec_file_contents))
- yaml_spec = spec_yaml['spec']
+ try:
+ nodes = spec_dict['spec']['nodes']
+ except KeyError:
+ # Prior node dict format omitted 'nodes' key
+ nodes = spec_dict['spec']
name = spec.name
- # The "spec" key in the yaml is a list of objects, each with a single
+ # In the old format:
+ # The "spec" key represents a list of objects, each with a single
# key that is the package name. While the list usually just contains
# a single object, we iterate over the list looking for the object
# with the name of this concrete spec as a key, out of an abundance
# of caution.
- cached_pkg_specs = [item[name] for item in yaml_spec if name in item]
+ # In format version 2:
+ # ['spec']['nodes'] is still a list of objects, but with a
+ # multitude of keys. The list will commonly contain many objects, and in the
+ # case of build specs, it is highly likely that the same name will occur
+ # once as the actual package, and then again as the build provenance of that
+ # same package. Hence format version 2 matches on the dag hash, not name.
+ if nodes and 'name' not in nodes[0]:
+ # old style
+ cached_pkg_specs = [item[name] for item in nodes if name in item]
+ elif nodes and spec_dict['spec']['_meta']['version'] == 2:
+ cached_pkg_specs = [item for item in nodes
+ if item[ht.dag_hash.name] == spec.dag_hash()]
cached_target = cached_pkg_specs[0] if cached_pkg_specs else None
- # If either the full_hash didn't exist in the .spec.yaml file, or it
+ # If either the full_hash didn't exist in the specfile, or it
# did, but didn't match the one we computed locally, then we should
# just rebuild. This can be simplified once the dag_hash and the
# full_hash become the same thing.
rebuild = False
- if not cached_target or 'full_hash' not in cached_target:
- reason = 'full_hash was missing from remote spec.yaml'
+
+ if not cached_target:
+ reason = 'did not find spec in specfile contents'
+ rebuild = True
+ elif ht.full_hash.name not in cached_target:
+ reason = 'full_hash was missing from remote specfile'
rebuild = True
else:
- full_hash = cached_target['full_hash']
+ full_hash = cached_target[ht.full_hash.name]
if full_hash != pkg_full_hash:
reason = 'hash mismatch, remote = {0}, local = {1}'.format(
full_hash, pkg_full_hash)
@@ -1629,11 +1813,11 @@ def check_specs_against_mirrors(mirrors, specs, output_file=None,
Arguments:
mirrors (dict): Mirrors to check against
- specs (iterable): Specs to check against mirrors
- output_file (string): Path to output file to be written. If provided,
+ specs (typing.Iterable): Specs to check against mirrors
+ output_file (str): Path to output file to be written. If provided,
mirrors with missing or out-of-date specs will be formatted as a
JSON object and written to this file.
- rebuild_on_errors (boolean): Treat any errors encountered while
+ rebuild_on_errors (bool): Treat any errors encountered while
checking specs as a signal to rebuild package.
Returns: 1 if any spec was out-of-date on any mirror, 0 otherwise.
@@ -1668,24 +1852,23 @@ def check_specs_against_mirrors(mirrors, specs, output_file=None,
def _download_buildcache_entry(mirror_root, descriptions):
for description in descriptions:
- description_url = os.path.join(mirror_root, description['url'])
path = description['path']
- fail_if_missing = description['required']
-
mkdirp(path)
-
- stage = Stage(
- description_url, name="build_cache", path=path, keep=True)
-
- try:
- stage.fetch()
- except fs.FetchError as e:
- tty.debug(e)
+ fail_if_missing = description['required']
+ for url in description['url']:
+ description_url = os.path.join(mirror_root, url)
+ stage = Stage(
+ description_url, name="build_cache", path=path, keep=True)
+ try:
+ stage.fetch()
+ break
+ except fs.FetchError as e:
+ tty.debug(e)
+ else:
if fail_if_missing:
tty.error('Failed to download required url {0}'.format(
description_url))
return False
-
return True
diff --git a/lib/spack/spack/bootstrap.py b/lib/spack/spack/bootstrap.py
index f8d0703174..fbfeefe92f 100644
--- a/lib/spack/spack/bootstrap.py
+++ b/lib/spack/spack/bootstrap.py
@@ -1,10 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
+
import contextlib
+import fnmatch
+import json
import os
+import os.path
+import re
import sys
+
try:
import sysconfig # novm
except ImportError:
@@ -17,15 +24,295 @@ import llnl.util.filesystem as fs
import llnl.util.tty as tty
import spack.architecture
+import spack.binary_distribution
import spack.config
+import spack.environment
+import spack.main
+import spack.modules
import spack.paths
+import spack.platforms
import spack.repo
import spack.spec
import spack.store
import spack.user_environment as uenv
import spack.util.executable
+import spack.util.path
from spack.util.environment import EnvironmentModifications
+#: Map a bootstrapper type to the corresponding class
+_bootstrap_methods = {}
+
+
+def _bootstrapper(type):
+ """Decorator to register classes implementing bootstrapping
+ methods.
+
+ Args:
+ type (str): string identifying the class
+ """
+ def _register(cls):
+ _bootstrap_methods[type] = cls
+ return cls
+ return _register
+
+
+def _try_import_from_store(module, abstract_spec_str):
+ """Return True if the module can be imported from an already
+ installed spec, False otherwise.
+
+ Args:
+ module: Python module to be imported
+ abstract_spec_str: abstract spec that may provide the module
+ """
+ bincache_platform = spack.architecture.real_platform()
+ if str(bincache_platform) == 'cray':
+ bincache_platform = spack.platforms.linux.Linux()
+ with spack.architecture.use_platform(bincache_platform):
+ abstract_spec_str = str(spack.spec.Spec(abstract_spec_str))
+
+ # We have to run as part of this python interpreter
+ abstract_spec_str += ' ^' + spec_for_current_python()
+
+ installed_specs = spack.store.db.query(abstract_spec_str, installed=True)
+
+ for candidate_spec in installed_specs:
+ lib_spd = candidate_spec['python'].package.default_site_packages_dir
+ lib64_spd = lib_spd.replace('lib/', 'lib64/')
+ module_paths = [
+ os.path.join(candidate_spec.prefix, lib_spd),
+ os.path.join(candidate_spec.prefix, lib64_spd)
+ ]
+ sys.path.extend(module_paths)
+
+ try:
+ _fix_ext_suffix(candidate_spec)
+ if _python_import(module):
+ msg = ('[BOOTSTRAP MODULE {0}] The installed spec "{1}/{2}" '
+ 'provides the "{0}" Python module').format(
+ module, abstract_spec_str, candidate_spec.dag_hash()
+ )
+ tty.debug(msg)
+ return True
+ except Exception as e:
+ msg = ('unexpected error while trying to import module '
+ '"{0}" from spec "{1}" [error="{2}"]')
+ tty.warn(msg.format(module, candidate_spec, str(e)))
+ else:
+ msg = "Spec {0} did not provide module {1}"
+ tty.warn(msg.format(candidate_spec, module))
+
+ sys.path = sys.path[:-2]
+
+ return False
+
+
+def _fix_ext_suffix(candidate_spec):
+ """Fix the external suffixes of Python extensions on the fly for
+ platforms that may need it
+
+ Args:
+ candidate_spec (Spec): installed spec with a Python module
+ to be checked.
+ """
+ # Here we map target families to the patterns expected
+ # by pristine CPython. Only architectures with known issues
+ # are included. Known issues:
+ #
+ # [RHEL + ppc64le]: https://github.com/spack/spack/issues/25734
+ #
+ _suffix_to_be_checked = {
+ 'ppc64le': {
+ 'glob': '*.cpython-*-powerpc64le-linux-gnu.so',
+ 're': r'.cpython-[\w]*-powerpc64le-linux-gnu.so',
+ 'fmt': r'{module}.cpython-{major}{minor}m-powerpc64le-linux-gnu.so'
+ }
+ }
+
+ # If the current architecture is not problematic return
+ generic_target = archspec.cpu.host().family
+ if str(generic_target) not in _suffix_to_be_checked:
+ return
+
+ # If there's no EXT_SUFFIX (Python < 3.5) or the suffix matches
+ # the expectations, return since the package is surely good
+ ext_suffix = sysconfig.get_config_var('EXT_SUFFIX')
+ if ext_suffix is None:
+ return
+
+ expected = _suffix_to_be_checked[str(generic_target)]
+ if fnmatch.fnmatch(ext_suffix, expected['glob']):
+ return
+
+ # If we are here it means the current interpreter expects different names
+ # than pristine CPython. So:
+ # 1. Find what we have installed
+ # 2. Create symbolic links for the other names, it they're not there already
+
+ # Check if standard names are installed and if we have to create
+ # link for this interpreter
+ standard_extensions = fs.find(candidate_spec.prefix, expected['glob'])
+ link_names = [re.sub(expected['re'], ext_suffix, s) for s in standard_extensions]
+ for file_name, link_name in zip(standard_extensions, link_names):
+ if os.path.exists(link_name):
+ continue
+ os.symlink(file_name, link_name)
+
+ # Check if this interpreter installed something and we have to create
+ # links for a standard CPython interpreter
+ non_standard_extensions = fs.find(candidate_spec.prefix, '*' + ext_suffix)
+ for abs_path in non_standard_extensions:
+ directory, filename = os.path.split(abs_path)
+ module = filename.split('.')[0]
+ link_name = os.path.join(directory, expected['fmt'].format(
+ module=module, major=sys.version_info[0], minor=sys.version_info[1])
+ )
+ if os.path.exists(link_name):
+ continue
+ os.symlink(abs_path, link_name)
+
+
+@_bootstrapper(type='buildcache')
+class _BuildcacheBootstrapper(object):
+ """Install the software needed during bootstrapping from a buildcache."""
+ def __init__(self, conf):
+ self.name = conf['name']
+ self.url = conf['info']['url']
+
+ def try_import(self, module, abstract_spec_str):
+ if _try_import_from_store(module, abstract_spec_str):
+ return True
+
+ tty.info("Bootstrapping {0} from pre-built binaries".format(module))
+
+ # Try to install from an unsigned binary cache
+ abstract_spec = spack.spec.Spec(
+ abstract_spec_str + ' ^' + spec_for_current_python()
+ )
+
+ # On Cray we want to use Linux binaries if available from mirrors
+ bincache_platform = spack.architecture.real_platform()
+ if str(bincache_platform) == 'cray':
+ bincache_platform = spack.platforms.Linux()
+ with spack.architecture.use_platform(bincache_platform):
+ abstract_spec = spack.spec.Spec(
+ abstract_spec_str + ' ^' + spec_for_current_python()
+ )
+
+ # Read information on verified clingo binaries
+ json_filename = '{0}.json'.format(module)
+ json_path = os.path.join(
+ spack.paths.share_path, 'bootstrap', self.name, json_filename
+ )
+ with open(json_path) as f:
+ data = json.load(f)
+
+ buildcache = spack.main.SpackCommand('buildcache')
+ # Ensure we see only the buildcache being used to bootstrap
+ mirror_scope = spack.config.InternalConfigScope(
+ 'bootstrap', {'mirrors:': {self.name: self.url}}
+ )
+ with spack.config.override(mirror_scope):
+ # This index is currently needed to get the compiler used to build some
+ # specs that wwe know by dag hash.
+ spack.binary_distribution.binary_index.regenerate_spec_cache()
+ index = spack.binary_distribution.update_cache_and_get_specs()
+ for item in data['verified']:
+ candidate_spec = item['spec']
+ python_spec = item['python']
+ # Skip specs which are not compatible
+ if not abstract_spec.satisfies(candidate_spec):
+ continue
+
+ if python_spec not in abstract_spec:
+ continue
+
+ for pkg_name, pkg_hash, pkg_sha256 in item['binaries']:
+ msg = ('[BOOTSTRAP MODULE {0}] Try installing "{1}" from binary '
+ 'cache at "{2}"')
+ tty.debug(msg.format(module, pkg_name, self.url))
+ index_spec = next(x for x in index if x.dag_hash() == pkg_hash)
+ # Reconstruct the compiler that we need to use for bootstrapping
+ compiler_entry = {
+ "modules": [],
+ "operating_system": str(index_spec.os),
+ "paths": {
+ "cc": "/dev/null",
+ "cxx": "/dev/null",
+ "f77": "/dev/null",
+ "fc": "/dev/null"
+ },
+ "spec": str(index_spec.compiler),
+ "target": str(index_spec.target.family)
+ }
+ with spack.architecture.use_platform(bincache_platform):
+ with spack.config.override(
+ 'compilers', [{'compiler': compiler_entry}]
+ ):
+ spec_str = '/' + pkg_hash
+ install_args = [
+ 'install',
+ '--sha256', pkg_sha256,
+ '-a', '-u', '-o', '-f', spec_str
+ ]
+ buildcache(*install_args, fail_on_error=False)
+ # TODO: undo installations that didn't complete?
+
+ if _try_import_from_store(module, abstract_spec_str):
+ return True
+ return False
+
+
+@_bootstrapper(type='install')
+class _SourceBootstrapper(object):
+ """Install the software needed during bootstrapping from sources."""
+ def __init__(self, conf):
+ self.conf = conf
+
+ @staticmethod
+ def try_import(module, abstract_spec_str):
+ if _try_import_from_store(module, abstract_spec_str):
+ return True
+
+ # Try to build and install from sources
+ with spack_python_interpreter():
+ # Add hint to use frontend operating system on Cray
+ if str(spack.architecture.platform()) == 'cray':
+ abstract_spec_str += ' os=fe'
+
+ concrete_spec = spack.spec.Spec(
+ abstract_spec_str + ' ^' + spec_for_current_python()
+ )
+
+ if module == 'clingo':
+ # TODO: remove when the old concretizer is deprecated
+ concrete_spec._old_concretize()
+ else:
+ concrete_spec.concretize()
+
+ msg = "[BOOTSTRAP MODULE {0}] Try installing '{1}' from sources"
+ tty.debug(msg.format(module, abstract_spec_str))
+ tty.info("Bootstrapping {0} from sources".format(module))
+
+ # Install the spec that should make the module importable
+ concrete_spec.package.do_install()
+
+ return _try_import_from_store(module, abstract_spec_str=abstract_spec_str)
+
+
+def _make_bootstrapper(conf):
+ """Return a bootstrap object built according to the
+ configuration argument
+ """
+ btype = conf['type']
+ return _bootstrap_methods[btype](conf)
+
+
+def _source_is_trusted(conf):
+ trusted, name = spack.config.get('bootstrap:trusted'), conf['name']
+ if name not in trusted:
+ return False
+ return trusted[name]
+
def spec_for_current_python():
"""For bootstrapping purposes we are just interested in the Python
@@ -52,7 +339,7 @@ def spack_python_interpreter():
which Spack is currently running as the only Python external spec
available.
"""
- python_prefix = os.path.dirname(os.path.dirname(sys.executable))
+ python_prefix = sys.exec_prefix
external_python = spec_for_current_python()
entry = {
@@ -66,69 +353,58 @@ def spack_python_interpreter():
yield
-def make_module_available(module, spec=None, install=False):
- """Ensure module is importable"""
- # If we already can import it, that's great
- try:
- __import__(module)
+def ensure_module_importable_or_raise(module, abstract_spec=None):
+ """Make the requested module available for import, or raise.
+
+ This function tries to import a Python module in the current interpreter
+ using, in order, the methods configured in bootstrap.yaml.
+
+ If none of the methods succeed, an exception is raised. The function exits
+ on first success.
+
+ Args:
+ module (str): module to be imported in the current interpreter
+ abstract_spec (str): abstract spec that might provide the module. If not
+ given it defaults to "module"
+
+ Raises:
+ ImportError: if the module couldn't be imported
+ """
+ # If we can import it already, that's great
+ tty.debug("[BOOTSTRAP MODULE {0}] Try importing from Python".format(module))
+ if _python_import(module):
return
- except ImportError:
- pass
-
- # If it's already installed, use it
- # Search by spec
- spec = spack.spec.Spec(spec or module)
-
- # We have to run as part of this python
- # We can constrain by a shortened version in place of a version range
- # because this spec is only used for querying or as a placeholder to be
- # replaced by an external that already has a concrete version. This syntax
- # is not sufficient when concretizing without an external, as it will
- # concretize to python@X.Y instead of python@X.Y.Z
- python_requirement = '^' + spec_for_current_python()
- spec.constrain(python_requirement)
- installed_specs = spack.store.db.query(spec, installed=True)
- for ispec in installed_specs:
- # TODO: make sure run-environment is appropriate
- module_path = os.path.join(ispec.prefix,
- ispec['python'].package.site_packages_dir)
- module_path_64 = module_path.replace('/lib/', '/lib64/')
+ abstract_spec = abstract_spec or module
+ source_configs = spack.config.get('bootstrap:sources', [])
+ for current_config in source_configs:
+ if not _source_is_trusted(current_config):
+ msg = ('[BOOTSTRAP MODULE {0}] Skipping source "{1}" since it is '
+ 'not trusted').format(module, current_config['name'])
+ tty.debug(msg)
+ continue
+
+ b = _make_bootstrapper(current_config)
try:
- sys.path.append(module_path)
- sys.path.append(module_path_64)
- __import__(module)
- return
- except ImportError:
- tty.warn("Spec %s did not provide module %s" % (ispec, module))
- sys.path = sys.path[:-2]
-
- def _raise_error(module_name, module_spec):
- error_msg = 'cannot import module "{0}"'.format(module_name)
- if module_spec:
- error_msg += ' from spec "{0}'.format(module_spec)
- raise ImportError(error_msg)
+ if b.try_import(module, abstract_spec):
+ return
+ except Exception as e:
+ msg = '[BOOTSTRAP MODULE {0}] Unexpected error "{1}"'
+ tty.debug(msg.format(module, str(e)))
- if not install:
- _raise_error(module, spec)
+ # We couldn't import in any way, so raise an import error
+ msg = 'cannot bootstrap the "{0}" Python module'.format(module)
+ if abstract_spec:
+ msg += ' from spec "{0}"'.format(abstract_spec)
+ raise ImportError(msg)
- with spack_python_interpreter():
- # We will install for ourselves, using this python if needed
- # Concretize the spec
- spec.concretize()
- spec.package.do_install()
- module_path = os.path.join(spec.prefix,
- spec['python'].package.site_packages_dir)
- module_path_64 = module_path.replace('/lib/', '/lib64/')
+def _python_import(module):
try:
- sys.path.append(module_path)
- sys.path.append(module_path_64)
__import__(module)
- return
except ImportError:
- sys.path = sys.path[:-2]
- _raise_error(module, spec)
+ return False
+ return True
def get_executable(exe, spec=None, install=False):
@@ -136,13 +412,14 @@ def get_executable(exe, spec=None, install=False):
Args:
exe (str): needed executable name
- spec (Spec or str): spec to search for exe in (default exe)
+ spec (spack.spec.Spec or str): spec to search for exe in (default exe)
install (bool): install spec if not available
When ``install`` is True, Spack will use the python used to run Spack as an
external. The ``install`` option should only be used with packages that
install quickly (when using external python) or are guaranteed by Spack
- organization to be in a binary mirror (clingo)."""
+ organization to be in a binary mirror (clingo).
+ """
# Search the system first
runner = spack.util.executable.which(exe)
if runner:
@@ -198,9 +475,7 @@ def get_executable(exe, spec=None, install=False):
def _bootstrap_config_scopes():
tty.debug('[BOOTSTRAP CONFIG SCOPE] name=_builtin')
config_scopes = [
- spack.config.InternalConfigScope(
- '_builtin', spack.config.config_defaults
- )
+ spack.config.InternalConfigScope('_builtin', spack.config.config_defaults)
]
for name, path in spack.config.configuration_paths:
platform = spack.architecture.platform().name
@@ -215,17 +490,52 @@ def _bootstrap_config_scopes():
return config_scopes
+def _add_compilers_if_missing():
+ # Do not use spack.architecture.default_arch() since it memoize the result
+ arch = spack.architecture.Arch(
+ spack.architecture.real_platform(), 'default_os', 'default_target'
+ )
+ arch = spack.spec.ArchSpec(str(arch)) # The call below expects an ArchSpec object
+ if not spack.compilers.compilers_for_arch(arch):
+ new_compilers = spack.compilers.find_new_compilers()
+ if new_compilers:
+ spack.compilers.add_compilers_to_config(new_compilers, init_config=False)
+
+
@contextlib.contextmanager
def ensure_bootstrap_configuration():
- with spack.architecture.use_platform(spack.architecture.real_platform()):
- with spack.repo.use_repositories(spack.paths.packages_path):
- with spack.store.use_store(spack.paths.user_bootstrap_store):
- # Default configuration scopes excluding command line
- # and builtin but accounting for platform specific scopes
- config_scopes = _bootstrap_config_scopes()
- with spack.config.use_configuration(*config_scopes):
- with spack_python_interpreter():
- yield
+ bootstrap_store_path = store_path()
+ with spack.environment.deactivate_environment():
+ with spack.architecture.use_platform(spack.architecture.real_platform()):
+ with spack.repo.use_repositories(spack.paths.packages_path):
+ with spack.store.use_store(bootstrap_store_path):
+ # Default configuration scopes excluding command line
+ # and builtin but accounting for platform specific scopes
+ config_scopes = _bootstrap_config_scopes()
+ with spack.config.use_configuration(*config_scopes):
+ # We may need to compile code from sources, so ensure we have
+ # compilers for the current platform before switching parts.
+ _add_compilers_if_missing()
+ with spack.modules.disable_modules():
+ with spack_python_interpreter():
+ yield
+
+
+def store_path():
+ """Path to the store used for bootstrapped software"""
+ enabled = spack.config.get('bootstrap:enable', True)
+ if not enabled:
+ msg = ('bootstrapping is currently disabled. '
+ 'Use "spack bootstrap enable" to enable it')
+ raise RuntimeError(msg)
+
+ bootstrap_root_path = spack.config.get(
+ 'bootstrap:root', spack.paths.user_bootstrap_path
+ )
+ bootstrap_store_path = spack.util.path.canonicalize_path(
+ os.path.join(bootstrap_root_path, 'store')
+ )
+ return bootstrap_store_path
def clingo_root_spec():
@@ -239,14 +549,17 @@ def clingo_root_spec():
else:
spec_str += ' %gcc'
- # Add hint to use frontend operating system on Cray
- if str(spack.architecture.platform()) == 'cray':
- spec_str += ' os=fe'
-
# Add the generic target
generic_target = archspec.cpu.host().family
spec_str += ' target={0}'.format(str(generic_target))
tty.debug('[BOOTSTRAP ROOT SPEC] clingo: {0}'.format(spec_str))
- return spack.spec.Spec(spec_str)
+ return spec_str
+
+
+def ensure_clingo_importable_or_raise():
+ """Ensure that the clingo module is available for import."""
+ ensure_module_importable_or_raise(
+ module='clingo', abstract_spec=clingo_root_spec()
+ )
diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py
index 3cf02dcbb4..82baaee256 100644
--- a/lib/spack/spack/build_environment.py
+++ b/lib/spack/spack/build_environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -33,44 +33,53 @@ Skimming this module is a nice way to get acquainted with the types of
calls you can make from within the install() function.
"""
import inspect
-import re
import multiprocessing
import os
+import re
import shutil
import sys
import traceback
import types
+
from six import StringIO
import llnl.util.tty as tty
-from llnl.util.tty.color import cescape, colorize
-from llnl.util.filesystem import mkdirp, install, install_tree
+from llnl.util.filesystem import install, install_tree, mkdirp
from llnl.util.lang import dedupe
+from llnl.util.tty.color import cescape, colorize
from llnl.util.tty.log import MultiProcessFd
+import spack.architecture as arch
import spack.build_systems.cmake
import spack.build_systems.meson
import spack.config
+import spack.install_test
import spack.main
-import spack.paths
import spack.package
+import spack.paths
import spack.repo
import spack.schema.environment
import spack.store
-import spack.install_test
import spack.subprocess_context
-import spack.architecture as arch
+import spack.user_environment
import spack.util.path
-from spack.util.string import plural
+from spack.error import NoHeadersError, NoLibrariesError
+from spack.util.cpus import cpus_available
from spack.util.environment import (
- env_flag, filter_system_paths, get_path, is_system_path,
- EnvironmentModifications, validate, preserve_environment)
-from spack.util.environment import system_dirs
-from spack.error import NoLibrariesError, NoHeadersError
+ EnvironmentModifications,
+ env_flag,
+ filter_system_paths,
+ get_path,
+ inspect_path,
+ is_system_path,
+ preserve_environment,
+ system_dirs,
+ validate,
+)
from spack.util.executable import Executable
-from spack.util.module_cmd import load_module, path_from_modules, module
-from spack.util.log_parse import parse_log_events, make_log_context
-
+from spack.util.log_parse import make_log_context, parse_log_events
+from spack.util.module_cmd import load_module, module, path_from_modules
+from spack.util.string import plural
#
# This can be set by the user to globally disable parallel builds.
@@ -79,7 +88,7 @@ SPACK_NO_PARALLEL_MAKE = 'SPACK_NO_PARALLEL_MAKE'
#
# These environment variables are set by
-# set_build_environment_variables and used to pass parameters to
+# set_wrapper_variables and used to pass parameters to
# Spack's compiler wrappers.
#
SPACK_ENV_PATH = 'SPACK_ENV_PATH'
@@ -149,12 +158,30 @@ def clean_environment():
# can affect how some packages find libraries. We want to make
# sure that builds never pull in unintended external dependencies.
env.unset('LD_LIBRARY_PATH')
- env.unset('LIBRARY_PATH')
- env.unset('CPATH')
env.unset('LD_RUN_PATH')
env.unset('DYLD_LIBRARY_PATH')
env.unset('DYLD_FALLBACK_LIBRARY_PATH')
+ # These vars affect how the compiler finds libraries and include dirs.
+ env.unset('LIBRARY_PATH')
+ env.unset('CPATH')
+ env.unset('C_INCLUDE_PATH')
+ env.unset('CPLUS_INCLUDE_PATH')
+ env.unset('OBJC_INCLUDE_PATH')
+
+ env.unset('CMAKE_PREFIX_PATH')
+
+ # Affects GNU make, can e.g. indirectly inhibit enabling parallel build
+ env.unset('MAKEFLAGS')
+ # Could make testsuites attempt to color their output
+ env.unset('TERM')
+ # Tests of GUI widget libraries might try to connect to an X server
+ env.unset('DISPLAY')
+
+ # Avoid that libraries of build dependencies get hijacked.
+ env.unset('LD_PRELOAD')
+ env.unset('DYLD_INSERT_LIBRARIES')
+
# On Cray "cluster" systems, unset CRAY_LD_LIBRARY_PATH to avoid
# interference with Spack dependencies.
# CNL requires these variables to be set (or at least some of them,
@@ -302,113 +329,20 @@ def set_compiler_environment_variables(pkg, env):
return env
-def _place_externals_last(spec_container):
- """
- For a (possibly unordered) container of specs, return an ordered list
- where all external specs are at the end of the list. External packages
- may be installed in merged prefixes with other packages, and so
- they should be deprioritized for any search order (i.e. in PATH, or
- for a set of -L entries in a compiler invocation).
- """
- first = list(x for x in spec_container if not x.external)
- second = list(x for x in spec_container if x.external)
- return first + second
-
-
-def set_build_environment_variables(pkg, env, dirty):
- """Ensure a clean install environment when we build packages.
+def set_wrapper_variables(pkg, env):
+ """Set environment variables used by the Spack compiler wrapper
+ (which have the prefix `SPACK_`) and also add the compiler wrappers
+ to PATH.
- This involves unsetting pesky environment variables that may
- affect the build. It also involves setting environment variables
- used by Spack's compiler wrappers.
-
- Args:
- pkg: The package we are building
- env: The build environment
- dirty (bool): Skip unsetting the user's environment settings
+ This determines the injected -L/-I/-rpath options; each
+ of these specifies a search order and this function computes these
+ options in a manner that is intended to match the DAG traversal order
+ in `modifications_from_dependencies`: that method uses a post-order
+ traversal so that `PrependPath` actions from dependencies take lower
+ precedence; we use a post-order traversal here to match the visitation
+ order of `modifications_from_dependencies` (so we are visiting the
+ lowest priority packages first).
"""
- # Gather information about various types of dependencies
- build_deps = set(pkg.spec.dependencies(deptype=('build', 'test')))
- link_deps = set(pkg.spec.traverse(root=False, deptype=('link')))
- build_link_deps = build_deps | link_deps
- rpath_deps = get_rpath_deps(pkg)
- # This includes all build dependencies and any other dependencies that
- # should be added to PATH (e.g. supporting executables run by build
- # dependencies)
- build_and_supporting_deps = set()
- for build_dep in build_deps:
- build_and_supporting_deps.update(build_dep.traverse(deptype='run'))
-
- # Establish an arbitrary but fixed ordering of specs so that resulting
- # environment variable values are stable
- def _order(specs):
- return sorted(specs, key=lambda x: x.name)
-
- # External packages may be installed in a prefix which contains many other
- # package installs. To avoid having those installations override
- # Spack-installed packages, they are placed at the end of search paths.
- # System prefixes are removed entirely later on since they are already
- # searched.
- build_deps = _place_externals_last(_order(build_deps))
- link_deps = _place_externals_last(_order(link_deps))
- build_link_deps = _place_externals_last(_order(build_link_deps))
- rpath_deps = _place_externals_last(_order(rpath_deps))
- build_and_supporting_deps = _place_externals_last(
- _order(build_and_supporting_deps))
-
- link_dirs = []
- include_dirs = []
- rpath_dirs = []
-
- # The top-level package is always RPATHed. It hasn't been installed yet
- # so the RPATHs are added unconditionally (e.g. even though lib64/ may
- # not be created for the install).
- for libdir in ['lib', 'lib64']:
- lib_path = os.path.join(pkg.prefix, libdir)
- rpath_dirs.append(lib_path)
-
- # Set up link, include, RPATH directories that are passed to the
- # compiler wrapper
- for dep in link_deps:
- if is_system_path(dep.prefix):
- continue
- query = pkg.spec[dep.name]
- dep_link_dirs = list()
- try:
- dep_link_dirs.extend(query.libs.directories)
- except NoLibrariesError:
- tty.debug("No libraries found for {0}".format(dep.name))
-
- for default_lib_dir in ['lib', 'lib64']:
- default_lib_prefix = os.path.join(dep.prefix, default_lib_dir)
- if os.path.isdir(default_lib_prefix):
- dep_link_dirs.append(default_lib_prefix)
-
- link_dirs.extend(dep_link_dirs)
- if dep in rpath_deps:
- rpath_dirs.extend(dep_link_dirs)
-
- try:
- include_dirs.extend(query.headers.directories)
- except NoHeadersError:
- tty.debug("No headers found for {0}".format(dep.name))
-
- link_dirs = list(dedupe(filter_system_paths(link_dirs)))
- include_dirs = list(dedupe(filter_system_paths(include_dirs)))
- rpath_dirs = list(dedupe(filter_system_paths(rpath_dirs)))
-
- env.set(SPACK_LINK_DIRS, ':'.join(link_dirs))
- env.set(SPACK_INCLUDE_DIRS, ':'.join(include_dirs))
- env.set(SPACK_RPATH_DIRS, ':'.join(rpath_dirs))
-
- build_and_supporting_prefixes = filter_system_paths(
- x.prefix for x in build_and_supporting_deps)
- build_link_prefixes = filter_system_paths(
- x.prefix for x in build_link_deps)
-
- # Add dependencies to CMAKE_PREFIX_PATH
- env.set_path('CMAKE_PREFIX_PATH', build_link_prefixes)
-
# Set environment variables if specified for
# the given compiler
compiler = pkg.compiler
@@ -418,16 +352,6 @@ def set_build_environment_variables(pkg, env, dirty):
extra_rpaths = ':'.join(compiler.extra_rpaths)
env.set('SPACK_COMPILER_EXTRA_RPATHS', extra_rpaths)
- # Add bin directories from dependencies to the PATH for the build.
- # These directories are added to the beginning of the search path, and in
- # the order given by 'build_and_supporting_prefixes' (the iteration order
- # is reversed because each entry is prepended)
- for prefix in reversed(build_and_supporting_prefixes):
- for dirname in ['bin', 'bin64']:
- bin_dir = os.path.join(prefix, dirname)
- if os.path.isdir(bin_dir):
- env.prepend_path('PATH', bin_dir)
-
# Add spack build environment path with compiler wrappers first in
# the path. We add the compiler wrapper path, which includes default
# wrappers (cc, c++, f77, f90), AND a subdirectory containing
@@ -440,14 +364,14 @@ def set_build_environment_variables(pkg, env, dirty):
# directory. Add that to the path too.
env_paths = []
compiler_specific = os.path.join(
- spack.paths.build_env_path,
- os.path.dirname(pkg.compiler.link_paths['cc']))
+ spack.paths.build_env_path, os.path.dirname(pkg.compiler.link_paths['cc']))
for item in [spack.paths.build_env_path, compiler_specific]:
env_paths.append(item)
ci = os.path.join(item, 'case-insensitive')
if os.path.isdir(ci):
env_paths.append(ci)
+ tty.debug("Adding compiler bin/ paths: " + " ".join(env_paths))
for item in env_paths:
env.prepend_path('PATH', item)
env.set_path(SPACK_ENV_PATH, env_paths)
@@ -466,14 +390,101 @@ def set_build_environment_variables(pkg, env, dirty):
raise RuntimeError("No ccache binary found in PATH")
env.set(SPACK_CCACHE_BINARY, ccache)
- # Add any pkgconfig directories to PKG_CONFIG_PATH
- for prefix in reversed(build_link_prefixes):
- for directory in ('lib', 'lib64', 'share'):
- pcdir = os.path.join(prefix, directory, 'pkgconfig')
- if os.path.isdir(pcdir):
- env.prepend_path('PKG_CONFIG_PATH', pcdir)
+ # Gather information about various types of dependencies
+ link_deps = set(pkg.spec.traverse(root=False, deptype=('link')))
+ rpath_deps = get_rpath_deps(pkg)
+
+ link_dirs = []
+ include_dirs = []
+ rpath_dirs = []
+
+ def _prepend_all(list_to_modify, items_to_add):
+ # Update the original list (creating a new list would be faster but
+ # may not be convenient)
+ for item in reversed(list(items_to_add)):
+ list_to_modify.insert(0, item)
- return env
+ def update_compiler_args_for_dep(dep):
+ if dep in link_deps and (not is_system_path(dep.prefix)):
+ query = pkg.spec[dep.name]
+ dep_link_dirs = list()
+ try:
+ dep_link_dirs.extend(query.libs.directories)
+ except NoLibrariesError:
+ tty.debug("No libraries found for {0}".format(dep.name))
+
+ for default_lib_dir in ['lib', 'lib64']:
+ default_lib_prefix = os.path.join(
+ dep.prefix, default_lib_dir)
+ if os.path.isdir(default_lib_prefix):
+ dep_link_dirs.append(default_lib_prefix)
+
+ _prepend_all(link_dirs, dep_link_dirs)
+ if dep in rpath_deps:
+ _prepend_all(rpath_dirs, dep_link_dirs)
+
+ try:
+ _prepend_all(include_dirs, query.headers.directories)
+ except NoHeadersError:
+ tty.debug("No headers found for {0}".format(dep.name))
+
+ for dspec in pkg.spec.traverse(root=False, order='post'):
+ if dspec.external:
+ update_compiler_args_for_dep(dspec)
+
+ # Just above, we prepended entries for -L/-rpath for externals. We
+ # now do this for non-external packages so that Spack-built packages
+ # are searched first for libraries etc.
+ for dspec in pkg.spec.traverse(root=False, order='post'):
+ if not dspec.external:
+ update_compiler_args_for_dep(dspec)
+
+ # The top-level package is always RPATHed. It hasn't been installed yet
+ # so the RPATHs are added unconditionally (e.g. even though lib64/ may
+ # not be created for the install).
+ for libdir in ['lib64', 'lib']:
+ lib_path = os.path.join(pkg.prefix, libdir)
+ rpath_dirs.insert(0, lib_path)
+
+ link_dirs = list(dedupe(filter_system_paths(link_dirs)))
+ include_dirs = list(dedupe(filter_system_paths(include_dirs)))
+ rpath_dirs = list(dedupe(filter_system_paths(rpath_dirs)))
+
+ env.set(SPACK_LINK_DIRS, ':'.join(link_dirs))
+ env.set(SPACK_INCLUDE_DIRS, ':'.join(include_dirs))
+ env.set(SPACK_RPATH_DIRS, ':'.join(rpath_dirs))
+
+
+def determine_number_of_jobs(
+ parallel=False, command_line=None, config_default=None, max_cpus=None):
+ """
+ Packages that require sequential builds need 1 job. Otherwise we use the
+ number of jobs set on the command line. If not set, then we use the config
+ defaults (which is usually set through the builtin config scope), but we
+ cap to the number of CPUs available to avoid oversubscription.
+
+ Parameters:
+ parallel (bool or None): true when package supports parallel builds
+ command_line (int or None): command line override
+ config_default (int or None): config default number of jobs
+ max_cpus (int or None): maximum number of CPUs available. When None, this
+ value is automatically determined.
+ """
+ if not parallel:
+ return 1
+
+ if command_line is None and 'command_line' in spack.config.scopes():
+ command_line = spack.config.get('config:build_jobs', scope='command_line')
+
+ if command_line is not None:
+ return command_line
+
+ max_cpus = max_cpus or cpus_available()
+
+ # in some rare cases _builtin config may not be set, so default to max 16
+ config_default = config_default or spack.config.get('config:build_jobs', 16)
+
+ return min(max_cpus, config_default)
def _set_variables_for_single_module(pkg, module):
@@ -484,8 +495,7 @@ def _set_variables_for_single_module(pkg, module):
if getattr(module, marker, False):
return
- jobs = spack.config.get('config:build_jobs', 16) if pkg.parallel else 1
- jobs = min(jobs, multiprocessing.cpu_count())
+ jobs = determine_number_of_jobs(parallel=pkg.parallel)
m = module
m.make_jobs = jobs
@@ -684,14 +694,14 @@ def get_std_cmake_args(pkg):
"""List of standard arguments used if a package is a CMakePackage.
Returns:
- list of str: standard arguments that would be used if this
+ list: standard arguments that would be used if this
package were a CMakePackage instance.
Args:
- pkg (PackageBase): package under consideration
+ pkg (spack.package.PackageBase): package under consideration
Returns:
- list of str: arguments for cmake
+ list: arguments for cmake
"""
return spack.build_systems.cmake.CMakePackage._std_args(pkg)
@@ -700,14 +710,14 @@ def get_std_meson_args(pkg):
"""List of standard arguments used if a package is a MesonPackage.
Returns:
- list of str: standard arguments that would be used if this
+ list: standard arguments that would be used if this
package were a MesonPackage instance.
Args:
- pkg (PackageBase): package under consideration
+ pkg (spack.package.PackageBase): package under consideration
Returns:
- list of str: arguments for meson
+ list: arguments for meson
"""
return spack.build_systems.meson.MesonPackage._std_args(pkg)
@@ -737,7 +747,7 @@ def load_external_modules(pkg):
associated with them.
Args:
- pkg (PackageBase): package to load deps for
+ pkg (spack.package.PackageBase): package to load deps for
"""
for dep in list(pkg.spec.traverse()):
external_modules = dep.external_modules or []
@@ -747,42 +757,47 @@ def load_external_modules(pkg):
def setup_package(pkg, dirty, context='build'):
"""Execute all environment setup routines."""
+ if context not in ['build', 'test']:
+ raise ValueError(
+ "'context' must be one of ['build', 'test'] - got: {0}"
+ .format(context))
+
+ set_module_variables_for_package(pkg)
+
env = EnvironmentModifications()
if not dirty:
clean_environment()
- # setup compilers and build tools for build contexts
+ # setup compilers for build contexts
need_compiler = context == 'build' or (context == 'test' and
pkg.test_requires_compiler)
if need_compiler:
set_compiler_environment_variables(pkg, env)
- set_build_environment_variables(pkg, env, dirty)
+ set_wrapper_variables(pkg, env)
+
+ env.extend(modifications_from_dependencies(
+ pkg.spec, context, custom_mods_only=False))
# architecture specific setup
pkg.architecture.platform.setup_platform_environment(pkg, env)
if context == 'build':
- # recursive post-order dependency information
- env.extend(
- modifications_from_dependencies(pkg.spec, context=context)
- )
+ pkg.setup_build_environment(env)
if (not dirty) and (not env.is_unset('CPATH')):
tty.debug("A dependency has updated CPATH, this may lead pkg-"
"config to assume that the package is part of the system"
" includes and omit it when invoked with '--cflags'.")
-
- # setup package itself
- set_module_variables_for_package(pkg)
- pkg.setup_build_environment(env)
elif context == 'test':
- import spack.user_environment as uenv # avoid circular import
- env.extend(uenv.environment_modifications_for_spec(pkg.spec))
env.extend(
- modifications_from_dependencies(pkg.spec, context=context)
+ inspect_path(
+ pkg.spec.prefix,
+ spack.user_environment.prefix_inspections(pkg.spec.platform),
+ exclude=is_system_path
+ )
)
- set_module_variables_for_package(pkg)
+ pkg.setup_run_environment(env)
env.prepend_path('PATH', '.')
# Loading modules, in particular if they are meant to be used outside
@@ -824,39 +839,173 @@ def setup_package(pkg, dirty, context='build'):
env.apply_modifications()
-def modifications_from_dependencies(spec, context):
+def _make_runnable(pkg, env):
+ # Helper method which prepends a Package's bin/ prefix to the PATH
+ # environment variable
+ prefix = pkg.prefix
+
+ for dirname in ['bin', 'bin64']:
+ bin_dir = os.path.join(prefix, dirname)
+ if os.path.isdir(bin_dir):
+ env.prepend_path('PATH', bin_dir)
+
+
+def modifications_from_dependencies(spec, context, custom_mods_only=True):
"""Returns the environment modifications that are required by
the dependencies of a spec and also applies modifications
to this spec's package at module scope, if need be.
+ Environment modifications include:
+
+ - Updating PATH so that executables can be found
+ - Updating CMAKE_PREFIX_PATH and PKG_CONFIG_PATH so that their respective
+ tools can find Spack-built dependencies
+ - Running custom package environment modifications
+
+ Custom package modifications can conflict with the default PATH changes
+ we make (specifically for the PATH, CMAKE_PREFIX_PATH, and PKG_CONFIG_PATH
+ environment variables), so this applies changes in a fixed order:
+
+ - All modifications (custom and default) from external deps first
+ - All modifications from non-external deps afterwards
+
+ With that order, `PrependPath` actions from non-external default
+ environment modifications will take precedence over custom modifications
+ from external packages.
+
+ A secondary constraint is that custom and default modifications are
+ grouped on a per-package basis: combined with the post-order traversal this
+ means that default modifications of dependents can override custom
+ modifications of dependencies (again, this would only occur for PATH,
+ CMAKE_PREFIX_PATH, or PKG_CONFIG_PATH).
+
Args:
- spec (Spec): spec for which we want the modifications
+ spec (spack.spec.Spec): spec for which we want the modifications
context (str): either 'build' for build-time modifications or 'run'
for run-time modifications
"""
+ if context not in ['build', 'run', 'test']:
+ raise ValueError(
+ "Expecting context to be one of ['build', 'run', 'test'], "
+ "got: {0}".format(context))
+
env = EnvironmentModifications()
- pkg = spec.package
-
- # Maps the context to deptype and method to be called
- deptype_and_method = {
- 'build': (('build', 'link', 'test'),
- 'setup_dependent_build_environment'),
- 'run': (('link', 'run'), 'setup_dependent_run_environment'),
- 'test': (('link', 'run', 'test'), 'setup_dependent_run_environment')
- }
- deptype, method = deptype_and_method[context]
-
- root = context == 'test'
- for dspec in spec.traverse(order='post', root=root, deptype=deptype):
- dpkg = dspec.package
- set_module_variables_for_package(dpkg)
- # Allow dependencies to modify the module
- dpkg.setup_dependent_package(pkg.module, spec)
- getattr(dpkg, method)(env, spec)
+
+ # Note: see computation of 'custom_mod_deps' and 'exe_deps' later in this
+ # function; these sets form the building blocks of those collections.
+ build_deps = set(spec.dependencies(deptype=('build', 'test')))
+ link_deps = set(spec.traverse(root=False, deptype='link'))
+ build_link_deps = build_deps | link_deps
+ build_and_supporting_deps = set()
+ for build_dep in build_deps:
+ build_and_supporting_deps.update(build_dep.traverse(deptype='run'))
+ run_and_supporting_deps = set(
+ spec.traverse(root=False, deptype=('run', 'link')))
+ test_and_supporting_deps = set()
+ for test_dep in set(spec.dependencies(deptype='test')):
+ test_and_supporting_deps.update(test_dep.traverse(deptype='run'))
+
+ # All dependencies that might have environment modifications to apply
+ custom_mod_deps = set()
+ if context == 'build':
+ custom_mod_deps.update(build_and_supporting_deps)
+ # Tests may be performed after build
+ custom_mod_deps.update(test_and_supporting_deps)
+ else:
+ # test/run context
+ custom_mod_deps.update(run_and_supporting_deps)
+ if context == 'test':
+ custom_mod_deps.update(test_and_supporting_deps)
+ custom_mod_deps.update(link_deps)
+
+ # Determine 'exe_deps': the set of packages with binaries we want to use
+ if context == 'build':
+ exe_deps = build_and_supporting_deps | test_and_supporting_deps
+ elif context == 'run':
+ exe_deps = set(spec.traverse(deptype='run'))
+ elif context == 'test':
+ exe_deps = test_and_supporting_deps
+
+ def default_modifications_for_dep(dep):
+ if (dep in build_link_deps and
+ not is_system_path(dep.prefix) and
+ context == 'build'):
+ prefix = dep.prefix
+
+ env.prepend_path('CMAKE_PREFIX_PATH', prefix)
+
+ for directory in ('lib', 'lib64', 'share'):
+ pcdir = os.path.join(prefix, directory, 'pkgconfig')
+ if os.path.isdir(pcdir):
+ env.prepend_path('PKG_CONFIG_PATH', pcdir)
+
+ if dep in exe_deps and not is_system_path(dep.prefix):
+ _make_runnable(dep, env)
+
+ def add_modifications_for_dep(dep):
+ # Some callers of this function only want the custom modifications.
+ # For callers that want both custom and default modifications, we want
+ # to perform the default modifications here (this groups custom
+ # and default modifications together on a per-package basis).
+ if not custom_mods_only:
+ default_modifications_for_dep(dep)
+
+ # Perform custom modifications here (PrependPath actions performed in
+ # the custom method override the default environment modifications
+ # we do to help the build, namely for PATH, CMAKE_PREFIX_PATH, and
+ # PKG_CONFIG_PATH)
+ if dep in custom_mod_deps:
+ dpkg = dep.package
+ set_module_variables_for_package(dpkg)
+ # Allow dependencies to modify the module
+ dpkg.setup_dependent_package(spec.package.module, spec)
+ if context == 'build':
+ dpkg.setup_dependent_build_environment(env, spec)
+ else:
+ dpkg.setup_dependent_run_environment(env, spec)
+
+ # Note that we want to perform environment modifications in a fixed order.
+ # The Spec.traverse method provides this: i.e. in addition to
+ # the post-order semantics, it also guarantees a fixed traversal order
+ # among dependencies which are not constrained by post-order semantics.
+ for dspec in spec.traverse(root=False, order='post'):
+ if dspec.external:
+ add_modifications_for_dep(dspec)
+
+ for dspec in spec.traverse(root=False, order='post'):
+ # Default env modifications for non-external packages can override
+ # custom modifications of external packages (this can only occur
+ # for modifications to PATH, CMAKE_PREFIX_PATH, and PKG_CONFIG_PATH)
+ if not dspec.external:
+ add_modifications_for_dep(dspec)
return env
+def get_cmake_prefix_path(pkg):
+ # Note that unlike modifications_from_dependencies, this does not include
+ # any edits to CMAKE_PREFIX_PATH defined in custom
+ # setup_dependent_build_environment implementations of dependency packages
+ build_deps = set(pkg.spec.dependencies(deptype=('build', 'test')))
+ link_deps = set(pkg.spec.traverse(root=False, deptype=('link')))
+ build_link_deps = build_deps | link_deps
+ spack_built = []
+ externals = []
+ # modifications_from_dependencies updates CMAKE_PREFIX_PATH by first
+ # prepending all externals and then all non-externals
+ for dspec in pkg.spec.traverse(root=False, order='post'):
+ if dspec in build_link_deps:
+ if dspec.external:
+ externals.insert(0, dspec)
+ else:
+ spack_built.insert(0, dspec)
+
+ ordered_build_link_deps = spack_built + externals
+ build_link_prefixes = filter_system_paths(
+ x.prefix for x in ordered_build_link_deps)
+ return build_link_prefixes
+
+
def _setup_pkg_and_run(serialized_pkg, function, kwargs, child_pipe,
input_multiprocess_fd):
@@ -929,9 +1078,9 @@ def start_build_process(pkg, function, kwargs):
Args:
- pkg (PackageBase): package whose environment we should set up the
+ pkg (spack.package.PackageBase): package whose environment we should set up the
child process for.
- function (callable): argless function to run in the child
+ function (typing.Callable): argless function to run in the child
process.
Usage::
@@ -1016,7 +1165,7 @@ def get_package_context(traceback, context=3):
"""Return some context for an error message when the build fails.
Args:
- traceback (traceback): A traceback from some exception raised during
+ traceback: A traceback from some exception raised during
install
context (int): Lines of context to show before and after the line
diff --git a/lib/spack/spack/build_systems/__init__.py b/lib/spack/spack/build_systems/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/build_systems/__init__.py
+++ b/lib/spack/spack/build_systems/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/build_systems/aspell_dict.py b/lib/spack/spack/build_systems/aspell_dict.py
index 7da4d2f10c..286f955455 100644
--- a/lib/spack/spack/build_systems/aspell_dict.py
+++ b/lib/spack/spack/build_systems/aspell_dict.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,6 +6,7 @@
# Why doesn't this work for me?
# from spack import *
from llnl.util.filesystem import filter_file
+
from spack.build_systems.autotools import AutotoolsPackage
from spack.directives import extends
from spack.package import ExtensionError
diff --git a/lib/spack/spack/build_systems/autotools.py b/lib/spack/spack/build_systems/autotools.py
index ee9fb6884e..b12a1afc2e 100644
--- a/lib/spack/spack/build_systems/autotools.py
+++ b/lib/spack/spack/build_systems/autotools.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,12 +6,14 @@ import inspect
import itertools
import os
import os.path
-from subprocess import PIPE
-from subprocess import check_call
+import stat
+from subprocess import PIPE, check_call
+from typing import List # novm
-import llnl.util.tty as tty
import llnl.util.filesystem as fs
-from llnl.util.filesystem import working_dir, force_remove
+import llnl.util.tty as tty
+from llnl.util.filesystem import force_remove, working_dir
+
from spack.package import PackageBase, run_after, run_before
from spack.util.executable import Executable
@@ -28,7 +30,7 @@ class AutotoolsPackage(PackageBase):
They all have sensible defaults and for many packages the only thing
necessary will be to override the helper method
- :py:meth:`~.AutotoolsPackage.configure_args`.
+ :meth:`~spack.build_systems.autotools.AutotoolsPackage.configure_args`.
For a finer tuning you may also override:
+-----------------------------------------------+--------------------+
@@ -61,7 +63,7 @@ class AutotoolsPackage(PackageBase):
#: Targets for ``make`` during the :py:meth:`~.AutotoolsPackage.build`
#: phase
- build_targets = []
+ build_targets = [] # type: List[str]
#: Targets for ``make`` during the :py:meth:`~.AutotoolsPackage.install`
#: phase
install_targets = ['install']
@@ -75,7 +77,7 @@ class AutotoolsPackage(PackageBase):
#: Set to true to force the autoreconf step even if configure is present
force_autoreconf = False
#: Options to be passed to autoreconf when using the default implementation
- autoreconf_extra_args = []
+ autoreconf_extra_args = [] # type: List[str]
#: If False deletes all the .la files in the prefix folder
#: after the installation. If True instead it installs them.
@@ -173,7 +175,10 @@ class AutotoolsPackage(PackageBase):
# Copy the good files over the bad ones
for abs_path in to_be_patched:
name = os.path.basename(abs_path)
+ mode = os.stat(abs_path).st_mode
+ os.chmod(abs_path, stat.S_IWUSR)
fs.copy(substitutes[name], abs_path)
+ os.chmod(abs_path, mode)
@run_before('configure')
def _set_autotools_environment_variables(self):
@@ -326,7 +331,7 @@ class AutotoolsPackage(PackageBase):
def configure(self, spec, prefix):
"""Runs configure with the arguments specified in
- :py:meth:`~.AutotoolsPackage.configure_args`
+ :meth:`~spack.build_systems.autotools.AutotoolsPackage.configure_args`
and an appropriately set prefix.
"""
options = getattr(self, 'configure_flag_args', [])
@@ -340,8 +345,11 @@ class AutotoolsPackage(PackageBase):
"""Makes the build targets specified by
:py:attr:``~.AutotoolsPackage.build_targets``
"""
+ # See https://autotools.io/automake/silent.html
+ params = ['V=1']
+ params += self.build_targets
with working_dir(self.build_directory):
- inspect.getmodule(self).make(*self.build_targets)
+ inspect.getmodule(self).make(*params)
def install(self, spec, prefix):
"""Makes the install targets specified by
@@ -365,25 +373,28 @@ class AutotoolsPackage(PackageBase):
name,
activation_word,
deactivation_word,
- activation_value=None
+ activation_value=None,
+ variant=None
):
"""This function contains the current implementation details of
- :py:meth:`~.AutotoolsPackage.with_or_without` and
- :py:meth:`~.AutotoolsPackage.enable_or_disable`.
+ :meth:`~spack.build_systems.autotools.AutotoolsPackage.with_or_without` and
+ :meth:`~spack.build_systems.autotools.AutotoolsPackage.enable_or_disable`.
Args:
- name (str): name of the variant that is being processed
+ name (str): name of the option that is being activated or not
activation_word (str): the default activation word ('with' in the
case of ``with_or_without``)
deactivation_word (str): the default deactivation word ('without'
in the case of ``with_or_without``)
- activation_value (callable): callable that accepts a single
+ activation_value (typing.Callable): callable that accepts a single
value. This value is either one of the allowed values for a
multi-valued variant or the name of a bool-valued variant.
Returns the parameter to be used when the value is activated.
The special value 'prefix' can also be assigned and will return
``spec[name].prefix`` as activation parameter.
+ variant (str): name of the variant that is being processed
+ (if different from option name)
Examples:
@@ -393,6 +404,7 @@ class AutotoolsPackage(PackageBase):
variant('foo', values=('x', 'y'), description='')
variant('bar', default=True, description='')
+ variant('ba_z', default=True, description='')
calling this function like:
@@ -402,17 +414,18 @@ class AutotoolsPackage(PackageBase):
'foo', 'with', 'without', activation_value='prefix'
)
_activate_or_not('bar', 'with', 'without')
+ _activate_or_not('ba-z', 'with', 'without', variant='ba_z')
will generate the following configuration options:
.. code-block:: console
- --with-x=<prefix-to-x> --without-y --with-bar
+ --with-x=<prefix-to-x> --without-y --with-bar --with-ba-z
for ``<spec-name> foo=x +bar``
Returns:
- list of strings that corresponds to the activation/deactivation
+ list: list of strings that corresponds to the activation/deactivation
of the variant that has been processed
Raises:
@@ -424,32 +437,36 @@ class AutotoolsPackage(PackageBase):
if activation_value == 'prefix':
activation_value = lambda x: spec[x].prefix
+ variant = variant or name
+
# Defensively look that the name passed as argument is among
# variants
- if name not in self.variants:
+ if variant not in self.variants:
msg = '"{0}" is not a variant of "{1}"'
- raise KeyError(msg.format(name, self.name))
+ raise KeyError(msg.format(variant, self.name))
# Create a list of pairs. Each pair includes a configuration
# option and whether or not that option is activated
- if set(self.variants[name].values) == set((True, False)):
+ if set(self.variants[variant].values) == set((True, False)):
# BoolValuedVariant carry information about a single option.
# Nonetheless, for uniformity of treatment we'll package them
# in an iterable of one element.
- condition = '+{name}'.format(name=name)
+ condition = '+{name}'.format(name=variant)
options = [(name, condition in spec)]
else:
- condition = '{name}={value}'
+ condition = '{variant}={value}'
# "feature_values" is used to track values which correspond to
# features which can be enabled or disabled as understood by the
# package's build system. It excludes values which have special
# meanings and do not correspond to features (e.g. "none")
feature_values = getattr(
- self.variants[name].values, 'feature_values', None
- ) or self.variants[name].values
+ self.variants[variant].values, 'feature_values', None
+ ) or self.variants[variant].values
options = [
- (value, condition.format(name=name, value=value) in spec)
+ (value,
+ condition.format(variant=variant,
+ value=value) in spec)
for value in feature_values
]
@@ -477,7 +494,7 @@ class AutotoolsPackage(PackageBase):
args.append(line_generator(activated))
return args
- def with_or_without(self, name, activation_value=None):
+ def with_or_without(self, name, activation_value=None, variant=None):
"""Inspects a variant and returns the arguments that activate
or deactivate the selected feature(s) for the configure options.
@@ -493,7 +510,7 @@ class AutotoolsPackage(PackageBase):
Args:
name (str): name of a valid multi-valued variant
- activation_value (callable): callable that accepts a single
+ activation_value (typing.Callable): callable that accepts a single
value and returns the parameter to be used leading to an entry
of the type ``--with-{name}={parameter}``.
@@ -503,15 +520,17 @@ class AutotoolsPackage(PackageBase):
Returns:
list of arguments to configure
"""
- return self._activate_or_not(name, 'with', 'without', activation_value)
+ return self._activate_or_not(name, 'with', 'without', activation_value,
+ variant)
- def enable_or_disable(self, name, activation_value=None):
- """Same as :py:meth:`~.AutotoolsPackage.with_or_without` but substitute
- ``with`` with ``enable`` and ``without`` with ``disable``.
+ def enable_or_disable(self, name, activation_value=None, variant=None):
+ """Same as
+ :meth:`~spack.build_systems.autotools.AutotoolsPackage.with_or_without`
+ but substitute ``with`` with ``enable`` and ``without`` with ``disable``.
Args:
name (str): name of a valid multi-valued variant
- activation_value (callable): if present accepts a single value
+ activation_value (typing.Callable): if present accepts a single value
and returns the parameter to be used leading to an entry of the
type ``--enable-{name}={parameter}``
@@ -522,7 +541,7 @@ class AutotoolsPackage(PackageBase):
list of arguments to configure
"""
return self._activate_or_not(
- name, 'enable', 'disable', activation_value
+ name, 'enable', 'disable', activation_value, variant
)
run_after('install')(PackageBase._run_default_install_time_test_callbacks)
diff --git a/lib/spack/spack/build_systems/cached_cmake.py b/lib/spack/spack/build_systems/cached_cmake.py
new file mode 100644
index 0000000000..faaabb184f
--- /dev/null
+++ b/lib/spack/spack/build_systems/cached_cmake.py
@@ -0,0 +1,234 @@
+# Copyright 2013-2021 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)
+import os
+
+import llnl.util.tty as tty
+from llnl.util.filesystem import install, mkdirp
+
+from spack.build_systems.cmake import CMakePackage
+from spack.package import run_after
+
+
+def cmake_cache_path(name, value, comment=""):
+ """Generate a string for a cmake cache variable"""
+ return 'set({0} "{1}" CACHE PATH "{2}")\n'.format(name, value, comment)
+
+
+def cmake_cache_string(name, value, comment=""):
+ """Generate a string for a cmake cache variable"""
+ return 'set({0} "{1}" CACHE STRING "{2}")\n'.format(name, value, comment)
+
+
+def cmake_cache_option(name, boolean_value, comment=""):
+ """Generate a string for a cmake configuration option"""
+
+ value = "ON" if boolean_value else "OFF"
+ return 'set({0} {1} CACHE BOOL "{2}")\n'.format(name, value, comment)
+
+
+class CachedCMakePackage(CMakePackage):
+ """Specialized class for packages built using CMake initial cache.
+
+ This feature of CMake allows packages to increase reproducibility,
+ especially between Spack- and manual builds. It also allows packages to
+ sidestep certain parsing bugs in extremely long ``cmake`` commands, and to
+ avoid system limits on the length of the command line."""
+
+ phases = ['initconfig', 'cmake', 'build', 'install']
+
+ @property
+ def cache_name(self):
+ return "{0}-{1}-{2}@{3}.cmake".format(
+ self.name,
+ self.spec.architecture,
+ self.spec.compiler.name,
+ self.spec.compiler.version,
+ )
+
+ @property
+ def cache_path(self):
+ return os.path.join(self.stage.source_path, self.cache_name)
+
+ def flag_handler(self, name, flags):
+ if name in ('cflags', 'cxxflags', 'cppflags', 'fflags'):
+ return (None, None, None) # handled in the cmake cache
+ return (flags, None, None)
+
+ def initconfig_compiler_entries(self):
+ # This will tell cmake to use the Spack compiler wrappers when run
+ # through Spack, but use the underlying compiler when run outside of
+ # Spack
+ spec = self.spec
+
+ # Fortran compiler is optional
+ if "FC" in os.environ:
+ spack_fc_entry = cmake_cache_path(
+ "CMAKE_Fortran_COMPILER", os.environ['FC'])
+ system_fc_entry = cmake_cache_path(
+ "CMAKE_Fortran_COMPILER", self.compiler.fc)
+ else:
+ spack_fc_entry = "# No Fortran compiler defined in spec"
+ system_fc_entry = "# No Fortran compiler defined in spec"
+
+ entries = [
+ "#------------------{0}".format("-" * 60),
+ "# Compilers",
+ "#------------------{0}".format("-" * 60),
+ "# Compiler Spec: {0}".format(spec.compiler),
+ "#------------------{0}".format("-" * 60),
+ 'if(DEFINED ENV{SPACK_CC})\n',
+ ' ' + cmake_cache_path(
+ "CMAKE_C_COMPILER", os.environ['CC']),
+ ' ' + cmake_cache_path(
+ "CMAKE_CXX_COMPILER", os.environ['CXX']),
+ ' ' + spack_fc_entry,
+ 'else()\n',
+ ' ' + cmake_cache_path(
+ "CMAKE_C_COMPILER", self.compiler.cc),
+ ' ' + cmake_cache_path(
+ "CMAKE_CXX_COMPILER", self.compiler.cxx),
+ ' ' + system_fc_entry,
+ 'endif()\n'
+ ]
+
+ # use global spack compiler flags
+ cppflags = ' '.join(spec.compiler_flags['cppflags'])
+ if cppflags:
+ # avoid always ending up with ' ' with no flags defined
+ cppflags += ' '
+ cflags = cppflags + ' '.join(spec.compiler_flags['cflags'])
+ if cflags:
+ entries.append(cmake_cache_string("CMAKE_C_FLAGS", cflags))
+ cxxflags = cppflags + ' '.join(spec.compiler_flags['cxxflags'])
+ if cxxflags:
+ entries.append(cmake_cache_string("CMAKE_CXX_FLAGS", cxxflags))
+ fflags = ' '.join(spec.compiler_flags['fflags'])
+ if fflags:
+ entries.append(cmake_cache_string("CMAKE_Fortran_FLAGS", fflags))
+
+ return entries
+
+ def initconfig_mpi_entries(self):
+ spec = self.spec
+
+ if not spec.satisfies('^mpi'):
+ return []
+
+ entries = [
+ "#------------------{0}".format("-" * 60),
+ "# MPI",
+ "#------------------{0}\n".format("-" * 60),
+ ]
+
+ entries.append(cmake_cache_path("MPI_C_COMPILER",
+ spec['mpi'].mpicc))
+ entries.append(cmake_cache_path("MPI_CXX_COMPILER",
+ spec['mpi'].mpicxx))
+ entries.append(cmake_cache_path("MPI_Fortran_COMPILER",
+ spec['mpi'].mpifc))
+
+ # Check for slurm
+ using_slurm = False
+ slurm_checks = ['+slurm',
+ 'schedulers=slurm',
+ 'process_managers=slurm']
+ if any(spec['mpi'].satisfies(variant) for variant in slurm_checks):
+ using_slurm = True
+
+ # Determine MPIEXEC
+ if using_slurm:
+ if spec['mpi'].external:
+ # Heuristic until we have dependents on externals
+ mpiexec = '/usr/bin/srun'
+ else:
+ mpiexec = os.path.join(spec['slurm'].prefix.bin, 'srun')
+ else:
+ mpiexec = os.path.join(spec['mpi'].prefix.bin, 'mpirun')
+ if not os.path.exists(mpiexec):
+ mpiexec = os.path.join(spec['mpi'].prefix.bin, 'mpiexec')
+
+ if not os.path.exists(mpiexec):
+ msg = "Unable to determine MPIEXEC, %s tests may fail" % self.name
+ entries.append("# {0}\n".format(msg))
+ tty.warn(msg)
+ else:
+ # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE
+ # vs the older versions which expect MPIEXEC
+ if self.spec["cmake"].satisfies('@3.10:'):
+ entries.append(cmake_cache_path("MPIEXEC_EXECUTABLE",
+ mpiexec))
+ else:
+ entries.append(cmake_cache_path("MPIEXEC", mpiexec))
+
+ # Determine MPIEXEC_NUMPROC_FLAG
+ if using_slurm:
+ entries.append(cmake_cache_string("MPIEXEC_NUMPROC_FLAG", "-n"))
+ else:
+ entries.append(cmake_cache_string("MPIEXEC_NUMPROC_FLAG", "-np"))
+
+ return entries
+
+ def initconfig_hardware_entries(self):
+ spec = self.spec
+
+ entries = [
+ "#------------------{0}".format("-" * 60),
+ "# Hardware",
+ "#------------------{0}\n".format("-" * 60),
+ ]
+
+ if spec.satisfies('^cuda'):
+ entries.append("#------------------{0}".format("-" * 30))
+ entries.append("# Cuda")
+ entries.append("#------------------{0}\n".format("-" * 30))
+
+ cudatoolkitdir = spec['cuda'].prefix
+ entries.append(cmake_cache_path("CUDA_TOOLKIT_ROOT_DIR",
+ cudatoolkitdir))
+ cudacompiler = "${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc"
+ entries.append(cmake_cache_path("CMAKE_CUDA_COMPILER",
+ cudacompiler))
+
+ if spec.satisfies('^mpi'):
+ entries.append(cmake_cache_path("CMAKE_CUDA_HOST_COMPILER",
+ "${MPI_CXX_COMPILER}"))
+ else:
+ entries.append(cmake_cache_path("CMAKE_CUDA_HOST_COMPILER",
+ "${CMAKE_CXX_COMPILER}"))
+
+ return entries
+
+ def std_initconfig_entries(self):
+ return [
+ "#------------------{0}".format("-" * 60),
+ "# !!!! This is a generated file, edit at own risk !!!!",
+ "#------------------{0}".format("-" * 60),
+ "# CMake executable path: {0}".format(
+ self.spec['cmake'].command.path),
+ "#------------------{0}\n".format("-" * 60),
+ ]
+
+ def initconfig(self, spec, prefix):
+ cache_entries = (self.std_initconfig_entries() +
+ self.initconfig_compiler_entries() +
+ self.initconfig_mpi_entries() +
+ self.initconfig_hardware_entries() +
+ self.initconfig_package_entries())
+
+ with open(self.cache_name, 'w') as f:
+ for entry in cache_entries:
+ f.write('%s\n' % entry)
+ f.write('\n')
+
+ @property
+ def std_cmake_args(self):
+ args = super(CachedCMakePackage, self).std_cmake_args
+ args.extend(['-C', self.cache_path])
+ return args
+
+ @run_after('install')
+ def install_cmake_cache(self):
+ mkdirp(self.spec.prefix.share.cmake)
+ install(self.cache_path, self.spec.prefix.share.cmake)
diff --git a/lib/spack/spack/build_systems/cmake.py b/lib/spack/spack/build_systems/cmake.py
index 1336069846..bf431e139d 100644
--- a/lib/spack/spack/build_systems/cmake.py
+++ b/lib/spack/spack/build_systems/cmake.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,13 @@ import inspect
import os
import platform
import re
+from typing import List # novm
-import spack.build_environment
from llnl.util.filesystem import working_dir
-from spack.util.environment import filter_system_paths
-from spack.directives import depends_on, variant, conflicts
-from spack.package import PackageBase, InstallError, run_after
+
+import spack.build_environment
+from spack.directives import conflicts, depends_on, variant
+from spack.package import InstallError, PackageBase, run_after
# Regex to extract the primary generator from the CMake generator
# string.
@@ -74,7 +75,7 @@ class CMakePackage(PackageBase):
#: system base class
build_system_class = 'CMakePackage'
- build_targets = []
+ build_targets = [] # type: List[str]
install_targets = ['install']
build_time_test_callbacks = ['check']
@@ -184,13 +185,9 @@ class CMakePackage(PackageBase):
define('CMAKE_INSTALL_RPATH_USE_LINK_PATH', False),
define('CMAKE_INSTALL_RPATH',
spack.build_environment.get_rpaths(pkg)),
+ define('CMAKE_PREFIX_PATH',
+ spack.build_environment.get_cmake_prefix_path(pkg))
])
- # CMake's find_package() looks in CMAKE_PREFIX_PATH first, help CMake
- # to find immediate link dependencies in right places:
- deps = [d.prefix for d in
- pkg.spec.dependencies(deptype=('build', 'link'))]
- deps = filter_system_paths(deps)
- args.append(define('CMAKE_PREFIX_PATH', deps))
return args
@staticmethod
@@ -239,7 +236,7 @@ class CMakePackage(PackageBase):
of ``cmake_var``.
This utility function is similar to
- :py:meth:`~.AutotoolsPackage.with_or_without`.
+ :meth:`~spack.build_systems.autotools.AutotoolsPackage.with_or_without`.
Examples:
@@ -257,9 +254,9 @@ class CMakePackage(PackageBase):
.. code-block:: python
- [define_from_variant('BUILD_SHARED_LIBS', 'shared'),
- define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'),
- define_from_variant('SWR')]
+ [self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'),
+ self.define_from_variant('SWR')]
will generate the following configuration options:
diff --git a/lib/spack/spack/build_systems/cuda.py b/lib/spack/spack/build_systems/cuda.py
index 61007431a4..e7ae26f3c9 100644
--- a/lib/spack/spack/build_systems/cuda.py
+++ b/lib/spack/spack/build_systems/cuda.py
@@ -1,12 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.package import PackageBase
-from spack.directives import depends_on, variant, conflicts
-
import spack.variant
+from spack.directives import conflicts, depends_on, variant
+from spack.multimethod import when
+from spack.package import PackageBase
class CudaPackage(PackageBase):
@@ -79,108 +79,111 @@ class CudaPackage(PackageBase):
depends_on('cuda@11.0:', when='cuda_arch=80')
depends_on('cuda@11.1:', when='cuda_arch=86')
- # There are at least three cases to be aware of for compiler conflicts
- # 1. Linux x86_64
- # 2. Linux ppc64le
- # 3. Mac OS X
- # CUDA-compiler conflicts are version-to-version specific and are
- # difficult to express with the current Spack conflict syntax
+ # From the NVIDIA install guide we know of conflicts for particular
+ # platforms (linux, darwin), architectures (x86, powerpc) and compilers
+ # (gcc, clang). We don't restrict %gcc and %clang conflicts to
+ # platform=linux, since they should also apply to platform=cray, and may
+ # apply to platform=darwin. We currently do not provide conflicts for
+ # platform=darwin with %apple-clang.
+
+ # GCC
+ # According to
+ # https://github.com/spack/spack/pull/25054#issuecomment-886531664
+ # these conflicts are valid independently from the architecture
+
+ # minimum supported versions
+ conflicts('%gcc@:4', when='+cuda ^cuda@11.0:')
+ conflicts('%gcc@:5', when='+cuda ^cuda@11.4:')
+
+ # maximum supported version
+ # NOTE:
+ # in order to not constrain future cuda version to old gcc versions,
+ # it has been decided to use an upper bound for the latest version.
+ # This implies that the last one in the list has to be updated at
+ # each release of a new cuda minor version.
+ conflicts('%gcc@10:', when='+cuda ^cuda@:11.0')
+ conflicts('%gcc@11:', when='+cuda ^cuda@:11.4')
+
+ # https://gist.github.com/ax3l/9489132#gistcomment-3860114
+ conflicts('%gcc@10', when='+cuda ^cuda@:11.4.0')
# Linux x86_64 compiler conflicts from here:
# https://gist.github.com/ax3l/9489132
- arch_platform = ' target=x86_64: platform=linux'
- conflicts('%gcc@5:', when='+cuda ^cuda@:7.5' + arch_platform)
- conflicts('%gcc@6:', when='+cuda ^cuda@:8' + arch_platform)
- 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', when='+cuda ^cuda@11.0.2:' + arch_platform)
- conflicts('%gcc@10:', when='+cuda ^cuda@:11.0.2' + arch_platform)
- conflicts('%gcc@11:', when='+cuda ^cuda@:11.1.0' + 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,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,21:',
- when='+cuda ^cuda@11.0.2:11.1.0' + 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)
- conflicts('%clang@:3.7,4.1:',
- when='+cuda ^cuda@9.1' + arch_platform)
- conflicts('%clang@:3.7,5.1:', when='+cuda ^cuda@9.2' + arch_platform)
- conflicts('%clang@:3.7,6.1:', when='+cuda ^cuda@10.0.130' + arch_platform)
- 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:', when='+cuda ^cuda@10.2.89' + arch_platform)
- conflicts('%clang@:5', when='+cuda ^cuda@11.0.2:' + arch_platform)
- conflicts('%clang@10:', when='+cuda ^cuda@:11.0.2' + arch_platform)
- conflicts('%clang@11:', when='+cuda ^cuda@:11.1.0' + arch_platform)
-
- # x86_64 vs. ppc64le differ according to NVidia docs
- # Linux ppc64le compiler conflicts from Table from the docs below:
- # https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
- # https://docs.nvidia.com/cuda/archive/9.2/cuda-installation-guide-linux/index.html
- # https://docs.nvidia.com/cuda/archive/9.1/cuda-installation-guide-linux/index.html
- # https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html
- # https://docs.nvidia.com/cuda/archive/8.0/cuda-installation-guide-linux/index.html
-
- arch_platform = ' target=ppc64le: platform=linux'
- # information prior to CUDA 9 difficult to find
- 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', when='+cuda ^cuda@11.0.2:' + arch_platform)
- conflicts('%gcc@10:', when='+cuda ^cuda@:11.0.2' + arch_platform)
- conflicts('%gcc@11:', when='+cuda ^cuda@:11.1.0' + 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)
- conflicts('%clang@4:', when='+cuda ^cuda@:9.0.176' + arch_platform)
- conflicts('%clang@5:', when='+cuda ^cuda@:9.1' + arch_platform)
- conflicts('%clang@6:', when='+cuda ^cuda@:9.2' + arch_platform)
- 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', when='+cuda ^cuda@11.0.2:' + arch_platform)
- conflicts('%clang@10:', when='+cuda ^cuda@:11.0.2' + arch_platform)
- conflicts('%clang@11:', when='+cuda ^cuda@:11.1.0' + 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
- conflicts('%intel@:11.0', when='+cuda ^cuda@:3.1')
- conflicts('%intel@:12.0', when='+cuda ^cuda@5.5:')
- conflicts('%intel@:13.0', when='+cuda ^cuda@6.0:')
- conflicts('%intel@:13.2', when='+cuda ^cuda@6.5:')
- conflicts('%intel@:14.9', when='+cuda ^cuda@7:')
- # Intel 15.x is compatible with CUDA 7 thru current CUDA
- conflicts('%intel@16.0:', when='+cuda ^cuda@:8.0.43')
- 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.1.0')
-
- # 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@:12,17:', when='+cuda ^cuda@:11.1.0')
-
- # Mac OS X
- # platform = ' platform=darwin'
- # Apple XCode clang vs. LLVM clang are difficult to specify
- # with spack syntax. Xcode clang name is `clang@x.y.z-apple`
- # which precludes ranges being specified. We have proposed
- # rename XCode clang to `clang@apple-x.y.z` or even
- # `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.2:')
+ with when('~allow-unsupported-compilers'):
+ conflicts('%gcc@5:', when='+cuda ^cuda@:7.5 target=x86_64:')
+ conflicts('%gcc@6:', when='+cuda ^cuda@:8 target=x86_64:')
+ conflicts('%gcc@7:', when='+cuda ^cuda@:9.1 target=x86_64:')
+ conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130 target=x86_64:')
+ conflicts('%gcc@9:', when='+cuda ^cuda@:10.2.89 target=x86_64:')
+ conflicts('%pgi@:14.8', when='+cuda ^cuda@:7.0.27 target=x86_64:')
+ conflicts('%pgi@:15.3,15.5:', when='+cuda ^cuda@7.5 target=x86_64:')
+ conflicts('%pgi@:16.2,16.0:16.3', when='+cuda ^cuda@8 target=x86_64:')
+ conflicts('%pgi@:15,18:', when='+cuda ^cuda@9.0:9.1 target=x86_64:')
+ conflicts('%pgi@:16,19:', when='+cuda ^cuda@9.2.88:10 target=x86_64:')
+ conflicts('%pgi@:17,20:', when='+cuda ^cuda@10.1.105:10.2.89 target=x86_64:')
+ conflicts('%pgi@:17,21:', when='+cuda ^cuda@11.0.2:11.1.0 target=x86_64:')
+ conflicts('%clang@:3.4', when='+cuda ^cuda@:7.5 target=x86_64:')
+ conflicts('%clang@:3.7,4:', when='+cuda ^cuda@8.0:9.0 target=x86_64:')
+ conflicts('%clang@:3.7,4.1:', when='+cuda ^cuda@9.1 target=x86_64:')
+ conflicts('%clang@:3.7,5.1:', when='+cuda ^cuda@9.2 target=x86_64:')
+ conflicts('%clang@:3.7,6.1:', when='+cuda ^cuda@10.0.130 target=x86_64:')
+ conflicts('%clang@:3.7,7.1:', when='+cuda ^cuda@10.1.105 target=x86_64:')
+ conflicts('%clang@:3.7,8.1:',
+ when='+cuda ^cuda@10.1.105:10.1.243 target=x86_64:')
+ conflicts('%clang@:3.2,9:', when='+cuda ^cuda@10.2.89 target=x86_64:')
+ conflicts('%clang@:5', when='+cuda ^cuda@11.0.2: target=x86_64:')
+ conflicts('%clang@10:', when='+cuda ^cuda@:11.0.3 target=x86_64:')
+ conflicts('%clang@11:', when='+cuda ^cuda@:11.1.0 target=x86_64:')
+
+ # x86_64 vs. ppc64le differ according to NVidia docs
+ # Linux ppc64le compiler conflicts from Table from the docs below:
+ # https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
+ # https://docs.nvidia.com/cuda/archive/9.2/cuda-installation-guide-linux/index.html
+ # https://docs.nvidia.com/cuda/archive/9.1/cuda-installation-guide-linux/index.html
+ # https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html
+ # https://docs.nvidia.com/cuda/archive/8.0/cuda-installation-guide-linux/index.html
+
+ # information prior to CUDA 9 difficult to find
+ conflicts('%gcc@6:', when='+cuda ^cuda@:9 target=ppc64le:')
+ conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130 target=ppc64le:')
+ conflicts('%gcc@9:', when='+cuda ^cuda@:10.1.243 target=ppc64le:')
+ # officially, CUDA 11.0.2 only supports the system GCC 8.3 on ppc64le
+ conflicts('%pgi', when='+cuda ^cuda@:8 target=ppc64le:')
+ conflicts('%pgi@:16', when='+cuda ^cuda@:9.1.185 target=ppc64le:')
+ conflicts('%pgi@:17', when='+cuda ^cuda@:10 target=ppc64le:')
+ conflicts('%clang@4:', when='+cuda ^cuda@:9.0.176 target=ppc64le:')
+ conflicts('%clang@5:', when='+cuda ^cuda@:9.1 target=ppc64le:')
+ conflicts('%clang@6:', when='+cuda ^cuda@:9.2 target=ppc64le:')
+ conflicts('%clang@7:', when='+cuda ^cuda@10.0.130 target=ppc64le:')
+ conflicts('%clang@7.1:', when='+cuda ^cuda@:10.1.105 target=ppc64le:')
+ conflicts('%clang@8.1:', when='+cuda ^cuda@:10.2.89 target=ppc64le:')
+ conflicts('%clang@:5', when='+cuda ^cuda@11.0.2: target=ppc64le:')
+ conflicts('%clang@10:', when='+cuda ^cuda@:11.0.2 target=ppc64le:')
+ conflicts('%clang@11:', when='+cuda ^cuda@:11.1.0 target=ppc64le:')
+
+ # 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
+ conflicts('%intel@:11.0', when='+cuda ^cuda@:3.1')
+ conflicts('%intel@:12.0', when='+cuda ^cuda@5.5:')
+ conflicts('%intel@:13.0', when='+cuda ^cuda@6.0:')
+ conflicts('%intel@:13.2', when='+cuda ^cuda@6.5:')
+ conflicts('%intel@:14.9', when='+cuda ^cuda@7:')
+ # Intel 15.x is compatible with CUDA 7 thru current CUDA
+ conflicts('%intel@16.0:', when='+cuda ^cuda@:8.0.43')
+ 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.1.0')
+
+ # 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@:12,17:', when='+cuda ^cuda@:11.1.0')
+
+ # Darwin.
+ # TODO: add missing conflicts for %apple-clang cuda@:10
+ 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/build_systems/gnu.py b/lib/spack/spack/build_systems/gnu.py
index c5b5e74bb9..b027546974 100644
--- a/lib/spack/spack/build_systems/gnu.py
+++ b/lib/spack/spack/build_systems/gnu.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import spack.util.url
import spack.package
+import spack.util.url
class GNUMirrorPackage(spack.package.PackageBase):
diff --git a/lib/spack/spack/build_systems/intel.py b/lib/spack/spack/build_systems/intel.py
index 0e0bb9378b..427cb75e49 100644
--- a/lib/spack/spack/build_systems/intel.py
+++ b/lib/spack/spack/build_systems/intel.py
@@ -1,29 +1,35 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import glob
+import inspect
import os
+import re
import sys
-import glob
import tempfile
-import re
-import inspect
import xml.etree.ElementTree as ElementTree
-import llnl.util.tty as tty
-from llnl.util.filesystem import \
- install, ancestor, filter_file, \
- HeaderList, find_headers, \
- LibraryList, find_libraries, find_system_libraries
+import llnl.util.tty as tty
+from llnl.util.filesystem import (
+ HeaderList,
+ LibraryList,
+ ancestor,
+ filter_file,
+ find_headers,
+ find_libraries,
+ find_system_libraries,
+ install,
+)
-from spack.version import Version, ver
-from spack.package import PackageBase, run_after, InstallError
+from spack.build_environment import dso_suffix
+from spack.package import InstallError, PackageBase, run_after
from spack.util.environment import EnvironmentModifications
from spack.util.executable import Executable
from spack.util.prefix import Prefix
-from spack.build_environment import dso_suffix
+from spack.version import Version, ver
# A couple of utility functions that might be useful in general. If so, they
# should really be defined elsewhere, unless deemed heretical.
@@ -151,7 +157,7 @@ class IntelPackage(PackageBase):
'+advisor': 'advisor',
'+inspector': 'inspector',
'+itac': 'itac',
- '+vtune': 'vtune_amplifier',
+ '+vtune': 'vtune_profiler',
}.items():
if variant in self.spec:
dirs.append(self.normalize_path(
@@ -202,7 +208,8 @@ class IntelPackage(PackageBase):
'+itac': ' intel-itac intel-ta intel-tc'
' intel-trace-analyzer intel-trace-collector',
# Trace Analyzer and Collector
- '+vtune': ' intel-vtune-amplifier', # VTune
+ '+vtune': ' intel-vtune'
+ # VTune, ..-profiler since 2020, ..-amplifier before
}.items():
if variant in self.spec:
c += components_to_add
@@ -361,7 +368,7 @@ class IntelPackage(PackageBase):
toplevel psxevars.sh or equivalent file to source (and thus by
the modulefiles that Spack produces).
- version_globs (list of str): Suffix glob patterns (most specific
+ version_globs (list): Suffix glob patterns (most specific
first) expected to qualify suite_dir_name to its fully
version-specific install directory (as opposed to a
compatibility directory or symlink).
@@ -535,8 +542,9 @@ class IntelPackage(PackageBase):
[None, '2016:', 'compilers_and_libraries'],
['advisor', ':2016', 'advisor_xe'],
['inspector', ':2016', 'inspector_xe'],
- ['vtune_amplifier', ':2017', 'vtune_amplifier_xe'],
+ ['vtune_profiler', ':2017', 'vtune_amplifier_xe'],
['vtune', ':2017', 'vtune_amplifier_xe'], # alt.
+ ['vtune_profiler', ':2019', 'vtune_amplifier'],
['itac', ':', 'itac', [os.sep + standalone_glob]],
]:
if cs == rename_rule[0] and v.satisfies(ver(rename_rule[1])):
@@ -815,6 +823,7 @@ class IntelPackage(PackageBase):
# Was supported only up to 2015.
blacs_lib = 'libmkl_blacs'
elif ('^mpich@2:' in spec_root or
+ '^cray-mpich' in spec_root or
'^mvapich2' in spec_root or
'^intel-mpi' in spec_root or
'^intel-parallel-studio' in spec_root):
@@ -1086,7 +1095,7 @@ class IntelPackage(PackageBase):
# Intel MPI since 2019 depends on libfabric which is not in the
# lib directory but in a directory of its own which should be
# included in the rpath
- if self.version >= ver('2019'):
+ if self.version_yearlike >= ver('2019'):
d = ancestor(self.component_lib_dir('mpi'))
libfabrics_path = os.path.join(d, 'libfabric', 'lib')
env.append_path('SPACK_COMPILER_EXTRA_RPATHS',
diff --git a/lib/spack/spack/build_systems/makefile.py b/lib/spack/spack/build_systems/makefile.py
index 6cd05c7ad9..45c1432dd4 100644
--- a/lib/spack/spack/build_systems/makefile.py
+++ b/lib/spack/spack/build_systems/makefile.py
@@ -1,13 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import inspect
+from typing import List # novm
import llnl.util.tty as tty
from llnl.util.filesystem import working_dir
+
from spack.package import PackageBase, run_after
@@ -48,7 +50,7 @@ class MakefilePackage(PackageBase):
#: Targets for ``make`` during the :py:meth:`~.MakefilePackage.build`
#: phase
- build_targets = []
+ build_targets = [] # type: List[str]
#: Targets for ``make`` during the :py:meth:`~.MakefilePackage.install`
#: phase
install_targets = ['install']
diff --git a/lib/spack/spack/build_systems/maven.py b/lib/spack/spack/build_systems/maven.py
index e9df34e791..5be6c763bd 100644
--- a/lib/spack/spack/build_systems/maven.py
+++ b/lib/spack/spack/build_systems/maven.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 llnl.util.filesystem import install_tree, working_dir
+
from spack.directives import depends_on
from spack.package import PackageBase, run_after
from spack.util.executable import which
diff --git a/lib/spack/spack/build_systems/meson.py b/lib/spack/spack/build_systems/meson.py
index 825b4c98c3..21d703024f 100644
--- a/lib/spack/spack/build_systems/meson.py
+++ b/lib/spack/spack/build_systems/meson.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,8 +6,10 @@
import inspect
import os
+from typing import List # novm
from llnl.util.filesystem import working_dir
+
from spack.directives import depends_on, variant
from spack.package import PackageBase, run_after
@@ -46,14 +48,17 @@ class MesonPackage(PackageBase):
#: system base class
build_system_class = 'MesonPackage'
- build_targets = []
+ build_targets = [] # type: List[str]
install_targets = ['install']
build_time_test_callbacks = ['check']
- variant('buildtype', default='release',
+ variant('buildtype', default='debugoptimized',
description='Meson build type',
values=('plain', 'debug', 'debugoptimized', 'release', 'minsize'))
+ variant('default_library', default='shared', values=('shared', 'static'),
+ multi=True, description='Build shared libs, static libs or both')
+ variant('strip', default=False, description='Strip targets on install')
depends_on('meson', type='build')
depends_on('ninja', type='build')
@@ -95,6 +100,15 @@ class MesonPackage(PackageBase):
except KeyError:
build_type = 'release'
+ strip = 'true' if '+strip' in pkg.spec else 'false'
+
+ if 'default_library=static,shared' in pkg.spec:
+ default_library = 'both'
+ elif 'default_library=static' in pkg.spec:
+ default_library = 'static'
+ else:
+ default_library = 'shared'
+
args = [
'--prefix={0}'.format(pkg.prefix),
# If we do not specify libdir explicitly, Meson chooses something
@@ -102,8 +116,9 @@ class MesonPackage(PackageBase):
# find libraries and pkg-config files.
# See https://github.com/mesonbuild/meson/issues/2197
'--libdir={0}'.format(pkg.prefix.lib),
- '--buildtype={0}'.format(build_type),
- '--strip',
+ '-Dbuildtype={0}'.format(build_type),
+ '-Dstrip={0}'.format(strip),
+ '-Ddefault_library={0}'.format(default_library)
]
return args
@@ -130,6 +145,7 @@ class MesonPackage(PackageBase):
* ``--libdir``
* ``--buildtype``
* ``--strip``
+ * ``--default_library``
which will be set automatically.
diff --git a/lib/spack/spack/build_systems/octave.py b/lib/spack/spack/build_systems/octave.py
index 16d6a0a1b8..bedf717811 100644
--- a/lib/spack/spack/build_systems/octave.py
+++ b/lib/spack/spack/build_systems/octave.py
@@ -1,11 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import inspect
-from spack.directives import depends_on, extends
+from spack.directives import extends
from spack.package import PackageBase, run_after
@@ -27,7 +27,6 @@ class OctavePackage(PackageBase):
build_system_class = 'OctavePackage'
extends('octave')
- depends_on('octave', type=('build', 'run'))
def setup_build_environment(self, env):
# octave does not like those environment variables to be set:
diff --git a/lib/spack/spack/build_systems/oneapi.py b/lib/spack/spack/build_systems/oneapi.py
index ec8732bbd6..0ff77d729b 100644
--- a/lib/spack/spack/build_systems/oneapi.py
+++ b/lib/spack/spack/build_systems/oneapi.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,17 @@
"""
-from os.path import dirname, isdir
+import getpass
+import platform
+import shutil
+from os.path import basename, dirname, isdir
+
+from llnl.util.filesystem import find_headers, find_libraries, join_path
from spack.package import Package
+from spack.util.environment import EnvironmentModifications
from spack.util.executable import Executable
-from llnl.util.filesystem import find_headers, find_libraries
-
class IntelOneApiPackage(Package):
"""Base class for Intel oneAPI packages."""
@@ -22,46 +26,76 @@ class IntelOneApiPackage(Package):
phases = ['install']
- def component_info(self,
- dir_name,
- components,
- releases,
- url_name):
- self._dir_name = dir_name
- self._components = components
- self._releases = releases
- self._url_name = url_name
-
- def url_for_version(self, version):
- release = self._release(version)
- return 'https://registrationcenter-download.intel.com/akdlm/irc_nas/%s/%s' % (
- release['irc_id'], self._oneapi_file(version, release))
-
- def install(self, spec, prefix):
- bash = Executable('bash')
-
- # Installer writes files in ~/intel set HOME so it goes to prefix
- bash.add_default_env('HOME', prefix)
+ # oneAPI license does not allow mirroring outside of the
+ # organization (e.g. University/Company).
+ redistribute_source = False
- version = spec.versions.lowest()
- release = self._release(version)
- bash('./%s' % self._oneapi_file(version, release),
- '-s', '-a', '-s', '--action', 'install',
- '--eula', 'accept',
- '--components',
- self._components,
- '--install-dir', prefix)
-
- #
- # Helper functions
- #
-
- def _release(self, version):
- return self._releases[str(version)]
+ @property
+ def component_dir(self):
+ """Subdirectory for this component in the install prefix."""
+ raise NotImplementedError
- def _oneapi_file(self, version, release):
- return 'l_%s_p_%s.%s_offline.sh' % (
- self._url_name, version, release['build'])
+ @property
+ def component_path(self):
+ """Path to component <prefix>/<component>/<version>."""
+ return join_path(self.prefix, self.component_dir, str(self.spec.version))
+
+ def install(self, spec, prefix, installer_path=None):
+ """Shared install method for all oneapi packages."""
+
+ # intel-oneapi-compilers overrides the installer_path when
+ # installing fortran, which comes from a spack resource
+ if installer_path is None:
+ installer_path = basename(self.url_for_version(spec.version))
+
+ if platform.system() == 'Linux':
+ # Intel installer assumes and enforces that all components
+ # are installed into a single prefix. Spack wants to
+ # install each component in a separate prefix. The
+ # installer mechanism is implemented by saving install
+ # information in a directory called installercache for
+ # future runs. The location of the installercache depends
+ # on the userid. For root it is always in /var/intel. For
+ # non-root it is in $HOME/intel.
+ #
+ # The method for preventing this install from interfering
+ # with other install depends on the userid. For root, we
+ # delete the installercache before and after install. For
+ # non root we redefine the HOME environment variable.
+ if getpass.getuser() == 'root':
+ shutil.rmtree('/var/intel/installercache', ignore_errors=True)
+
+ bash = Executable('bash')
+
+ # Installer writes files in ~/intel set HOME so it goes to prefix
+ bash.add_default_env('HOME', prefix)
+ # Installer checks $XDG_RUNTIME_DIR/.bootstrapper_lock_file as well
+ bash.add_default_env('XDG_RUNTIME_DIR',
+ join_path(self.stage.path, 'runtime'))
+
+ bash(installer_path,
+ '-s', '-a', '-s', '--action', 'install',
+ '--eula', 'accept',
+ '--install-dir', prefix)
+
+ if getpass.getuser() == 'root':
+ shutil.rmtree('/var/intel/installercache', ignore_errors=True)
+
+ # Some installers have a bug and do not return an error code when failing
+ if not isdir(join_path(prefix, self.component_dir)):
+ raise RuntimeError('install failed')
+
+ def setup_run_environment(self, env):
+ """Adds environment variables to the generated module file.
+
+ These environment variables come from running:
+
+ .. code-block:: console
+
+ $ source {prefix}/{component}/{version}/env/vars.sh
+ """
+ env.extend(EnvironmentModifications.from_sourcing_file(
+ join_path(self.component_path, 'env', 'vars.sh')))
class IntelOneApiLibraryPackage(IntelOneApiPackage):
@@ -69,12 +103,11 @@ class IntelOneApiLibraryPackage(IntelOneApiPackage):
@property
def headers(self):
- include_path = '%s/%s/latest/include' % (
- self.prefix, self._dir_name)
+ include_path = join_path(self.component_path, 'include')
return find_headers('*', include_path, recursive=True)
@property
def libs(self):
- lib_path = '%s/%s/latest/lib/intel64' % (self.prefix, self._dir_name)
+ lib_path = join_path(self.component_path, 'lib', 'intel64')
lib_path = lib_path if isdir(lib_path) else dirname(lib_path)
return find_libraries('*', root=lib_path, shared=True, recursive=True)
diff --git a/lib/spack/spack/build_systems/perl.py b/lib/spack/spack/build_systems/perl.py
index d134dc06f2..56d9924994 100644
--- a/lib/spack/spack/build_systems/perl.py
+++ b/lib/spack/spack/build_systems/perl.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,11 @@
import inspect
import os
-from spack.directives import depends_on, extends
+from llnl.util.filesystem import filter_file
+
+from spack.directives import extends
from spack.package import PackageBase, run_after
from spack.util.executable import Executable
-from llnl.util.filesystem import filter_file
class PerlPackage(PackageBase):
@@ -45,8 +46,6 @@ class PerlPackage(PackageBase):
extends('perl')
- depends_on('perl', type=('build', 'run'))
-
def configure_args(self):
"""Produces a list containing the arguments that must be passed to
:py:meth:`~.PerlPackage.configure`. Arguments should not include
diff --git a/lib/spack/spack/build_systems/python.py b/lib/spack/spack/build_systems/python.py
index 83b50d6b37..fd772acfbb 100644
--- a/lib/spack/spack/build_systems/python.py
+++ b/lib/spack/spack/build_systems/python.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,13 +6,20 @@ import inspect
import os
import shutil
-from spack.directives import depends_on, extends
-from spack.package import PackageBase, run_after
-
-from llnl.util.filesystem import (working_dir, get_filetype, filter_file,
- path_contains_subdirectory, same_path)
+import llnl.util.tty as tty
+from llnl.util.filesystem import (
+ filter_file,
+ find,
+ get_filetype,
+ path_contains_subdirectory,
+ same_path,
+ working_dir,
+)
from llnl.util.lang import match_predicate
+from spack.directives import extends
+from spack.package import PackageBase, run_after
+
class PythonPackage(PackageBase):
"""Specialized class for packages that are built using Python
@@ -25,20 +32,11 @@ class PythonPackage(PackageBase):
* build_ext
* build_clib
* build_scripts
- * clean
* install
* install_lib
* install_headers
* install_scripts
* install_data
- * sdist
- * register
- * bdist
- * bdist_dumb
- * bdist_rpm
- * bdist_wininst
- * upload
- * check
These are all standard setup.py commands and can be found by running:
@@ -71,35 +69,85 @@ class PythonPackage(PackageBase):
def configure(self, spec, prefix):
self.setup_py('configure')
"""
+ #: Package name, version, and extension on PyPI
+ pypi = None
+
+ maintainers = ['adamjstewart']
+
# Default phases
phases = ['build', 'install']
- # Name of modules that the Python package provides
- # This is used to test whether or not the installation succeeded
- # These names generally come from running:
- #
- # >>> import setuptools
- # >>> setuptools.find_packages()
- #
- # in the source tarball directory
- import_modules = []
-
# To be used in UI queries that require to know which
# build-system class we are using
build_system_class = 'PythonPackage'
- #: Callback names for build-time test
- build_time_test_callbacks = ['build_test']
-
#: Callback names for install-time test
- install_time_test_callbacks = ['import_module_test']
+ install_time_test_callbacks = ['test']
extends('python')
- depends_on('python', type=('build', 'run'))
-
py_namespace = None
+ @property
+ def homepage(self):
+ if self.pypi:
+ name = self.pypi.split('/')[0]
+ return 'https://pypi.org/project/' + name + '/'
+
+ @property
+ def url(self):
+ if self.pypi:
+ return (
+ 'https://files.pythonhosted.org/packages/source/'
+ + self.pypi[0] + '/' + self.pypi
+ )
+
+ @property
+ def list_url(self):
+ if self.pypi:
+ name = self.pypi.split('/')[0]
+ return 'https://pypi.org/simple/' + name + '/'
+
+ @property
+ def import_modules(self):
+ """Names of modules that the Python package provides.
+
+ These are used to test whether or not the installation succeeded.
+ These names generally come from running:
+
+ .. code-block:: python
+
+ >> import setuptools
+ >> setuptools.find_packages()
+
+ in the source tarball directory. If the module names are incorrectly
+ detected, this property can be overridden by the package.
+
+ Returns:
+ list: list of strings of module names
+ """
+ modules = []
+ root = os.path.join(
+ self.prefix,
+ self.spec['python'].package.config_vars['python_lib']['true']['false'],
+ )
+
+ # Some Python libraries are packages: collections of modules
+ # distributed in directories containing __init__.py files
+ for path in find(root, '__init__.py', recursive=True):
+ modules.append(path.replace(root + os.sep, '', 1).replace(
+ os.sep + '__init__.py', '').replace('/', '.'))
+
+ # Some Python libraries are modules: individual *.py files
+ # found in the site-packages directory
+ for path in find(root, '*.py', recursive=False):
+ modules.append(path.replace(root + os.sep, '', 1).replace(
+ '.py', '').replace('/', '.'))
+
+ tty.debug('Detected the following modules: {0}'.format(modules))
+
+ return modules
+
def setup_file(self):
"""Returns the name of the setup file to use."""
return 'setup.py'
@@ -118,27 +166,6 @@ class PythonPackage(PackageBase):
with working_dir(self.build_directory):
self.python('-s', setup, '--no-user-cfg', *args, **kwargs)
- def _setup_command_available(self, command):
- """Determines whether or not a setup.py command exists.
-
- Args:
- command (str): The command to look for
-
- Returns:
- bool: True if the command is found, else False
- """
- kwargs = {
- 'output': os.devnull,
- 'error': os.devnull,
- 'fail_on_error': False
- }
-
- python = inspect.getmodule(self).python
- setup = self.setup_file()
-
- python('-s', setup, '--no-user-cfg', command, '--help', **kwargs)
- return python.returncode == 0
-
# The following phases and their descriptions come from:
# $ python setup.py --help-commands
@@ -194,16 +221,6 @@ class PythonPackage(PackageBase):
"""Arguments to pass to build_scripts."""
return []
- def clean(self, spec, prefix):
- """Clean up temporary files from 'build' command."""
- args = self.clean_args(spec, prefix)
-
- self.setup_py('clean', *args)
-
- def clean_args(self, spec, prefix):
- """Arguments to pass to clean."""
- return []
-
def install(self, spec, prefix):
"""Install everything from build directory."""
args = self.install_args(spec, prefix)
@@ -238,15 +255,11 @@ class PythonPackage(PackageBase):
# Get all relative paths since we set the root to `prefix`
# We query the python with which these will be used for the lib and inc
# directories. This ensures we use `lib`/`lib64` as expected by python.
- python = spec['python'].package.command
- command_start = 'print(distutils.sysconfig.'
- commands = ';'.join([
- 'import distutils.sysconfig',
- command_start + 'get_python_lib(plat_specific=False, prefix=""))',
- command_start + 'get_python_lib(plat_specific=True, prefix=""))',
- command_start + 'get_python_inc(plat_specific=True, prefix=""))'])
- pure_site_packages_dir, plat_site_packages_dir, inc_dir = python(
- '-c', commands, output=str, error=str).strip().split('\n')
+ pure_site_packages_dir = spec['python'].package.config_vars[
+ 'python_lib']['false']['false']
+ plat_site_packages_dir = spec['python'].package.config_vars[
+ 'python_lib']['true']['false']
+ inc_dir = spec['python'].package.config_vars['python_inc']['true']
args += ['--root=%s' % prefix,
'--install-purelib=%s' % pure_site_packages_dir,
@@ -298,115 +311,18 @@ class PythonPackage(PackageBase):
"""Arguments to pass to install_data."""
return []
- def sdist(self, spec, prefix):
- """Create a source distribution (tarball, zip file, etc.)."""
- args = self.sdist_args(spec, prefix)
-
- self.setup_py('sdist', *args)
-
- def sdist_args(self, spec, prefix):
- """Arguments to pass to sdist."""
- return []
-
- def register(self, spec, prefix):
- """Register the distribution with the Python package index."""
- args = self.register_args(spec, prefix)
-
- self.setup_py('register', *args)
-
- def register_args(self, spec, prefix):
- """Arguments to pass to register."""
- return []
-
- def bdist(self, spec, prefix):
- """Create a built (binary) distribution."""
- args = self.bdist_args(spec, prefix)
-
- self.setup_py('bdist', *args)
-
- def bdist_args(self, spec, prefix):
- """Arguments to pass to bdist."""
- return []
-
- def bdist_dumb(self, spec, prefix):
- '''Create a "dumb" built distribution.'''
- args = self.bdist_dumb_args(spec, prefix)
-
- self.setup_py('bdist_dumb', *args)
-
- def bdist_dumb_args(self, spec, prefix):
- """Arguments to pass to bdist_dumb."""
- return []
-
- def bdist_rpm(self, spec, prefix):
- """Create an RPM distribution."""
- args = self.bdist_rpm(spec, prefix)
-
- self.setup_py('bdist_rpm', *args)
-
- def bdist_rpm_args(self, spec, prefix):
- """Arguments to pass to bdist_rpm."""
- return []
-
- def bdist_wininst(self, spec, prefix):
- """Create an executable installer for MS Windows."""
- args = self.bdist_wininst_args(spec, prefix)
-
- self.setup_py('bdist_wininst', *args)
-
- def bdist_wininst_args(self, spec, prefix):
- """Arguments to pass to bdist_wininst."""
- return []
-
- def upload(self, spec, prefix):
- """Upload binary package to PyPI."""
- args = self.upload_args(spec, prefix)
-
- self.setup_py('upload', *args)
-
- def upload_args(self, spec, prefix):
- """Arguments to pass to upload."""
- return []
-
- def check(self, spec, prefix):
- """Perform some checks on the package."""
- args = self.check_args(spec, prefix)
-
- self.setup_py('check', *args)
-
- def check_args(self, spec, prefix):
- """Arguments to pass to check."""
- return []
-
# Testing
- def build_test(self):
- """Run unit tests after in-place build.
-
- These tests are only run if the package actually has a 'test' command.
- """
- if self._setup_command_available('test'):
- args = self.test_args(self.spec, self.prefix)
-
- self.setup_py('test', *args)
-
- def test_args(self, spec, prefix):
- """Arguments to pass to test."""
- return []
-
- run_after('build')(PackageBase._run_default_build_time_test_callbacks)
-
- def import_module_test(self):
- """Attempts to import the module that was just installed.
-
- This test is only run if the package overrides
- :py:attr:`import_modules` with a list of module names."""
+ def test(self):
+ """Attempts to import modules of the installed package."""
# Make sure we are importing the installed modules,
- # not the ones in the current directory
- with working_dir('spack-test', create=True):
- for module in self.import_modules:
- self.python('-c', 'import {0}'.format(module))
+ # not the ones in the source directory
+ for module in self.import_modules:
+ self.run_test(inspect.getmodule(self).python.path,
+ ['-c', 'import {0}'.format(module)],
+ purpose='checking import of {0}'.format(module),
+ work_dir='spack-test')
run_after('install')(PackageBase._run_default_install_time_test_callbacks)
diff --git a/lib/spack/spack/build_systems/qmake.py b/lib/spack/spack/build_systems/qmake.py
index 22914d4d3a..0a7de9b433 100644
--- a/lib/spack/spack/build_systems/qmake.py
+++ b/lib/spack/spack/build_systems/qmake.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,6 +6,8 @@
import inspect
+from llnl.util.filesystem import working_dir
+
from spack.directives import depends_on
from spack.package import PackageBase, run_after
@@ -37,6 +39,11 @@ class QMakePackage(PackageBase):
depends_on('qt', type='build')
+ @property
+ def build_directory(self):
+ """The directory containing the ``*.pro`` file."""
+ return self.stage.source_path
+
def qmake_args(self):
"""Produces a list containing all the arguments that must be passed to
qmake
@@ -45,22 +52,30 @@ class QMakePackage(PackageBase):
def qmake(self, spec, prefix):
"""Run ``qmake`` to configure the project and generate a Makefile."""
- inspect.getmodule(self).qmake(*self.qmake_args())
+
+ with working_dir(self.build_directory):
+ inspect.getmodule(self).qmake(*self.qmake_args())
def build(self, spec, prefix):
"""Make the build targets"""
- inspect.getmodule(self).make()
+
+ with working_dir(self.build_directory):
+ inspect.getmodule(self).make()
def install(self, spec, prefix):
"""Make the install targets"""
- inspect.getmodule(self).make('install')
+
+ with working_dir(self.build_directory):
+ inspect.getmodule(self).make('install')
# Tests
def check(self):
"""Searches the Makefile for a ``check:`` target and runs it if found.
"""
- self._if_make_target_execute('check')
+
+ with working_dir(self.build_directory):
+ self._if_make_target_execute('check')
run_after('build')(PackageBase._run_default_build_time_test_callbacks)
diff --git a/lib/spack/spack/build_systems/r.py b/lib/spack/spack/build_systems/r.py
index 6ee2668833..ac57672a39 100644
--- a/lib/spack/spack/build_systems/r.py
+++ b/lib/spack/spack/build_systems/r.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
import inspect
-from spack.directives import depends_on, extends
+from spack.directives import extends
from spack.package import PackageBase, run_after
@@ -25,13 +25,49 @@ class RPackage(PackageBase):
"""
phases = ['install']
+ # package attributes that can be expanded to set the homepage, url,
+ # list_url, and git values
+ # For CRAN packages
+ cran = None
+
+ # For Bioconductor packages
+ bioc = None
+
+ maintainers = ['glennpj']
+
#: This attribute is used in UI queries that need to know the build
#: system base class
build_system_class = 'RPackage'
extends('r')
- depends_on('r', type=('build', 'run'))
+ @property
+ def homepage(self):
+ if self.cran:
+ return 'https://cloud.r-project.org/package=' + self.cran
+ elif self.bioc:
+ return 'https://bioconductor.org/packages/' + self.bioc
+
+ @property
+ def url(self):
+ if self.cran:
+ return (
+ 'https://cloud.r-project.org/src/contrib/'
+ + self.cran + '_' + str(list(self.versions)[0]) + '.tar.gz'
+ )
+
+ @property
+ def list_url(self):
+ if self.cran:
+ return (
+ 'https://cloud.r-project.org/src/contrib/Archive/'
+ + self.cran + '/'
+ )
+
+ @property
+ def git(self):
+ if self.bioc:
+ return 'https://git.bioconductor.org/packages/' + self.bioc
def configure_args(self):
"""Arguments to pass to install via ``--configure-args``."""
@@ -48,6 +84,7 @@ class RPackage(PackageBase):
config_vars = self.configure_vars()
args = [
+ '--vanilla',
'CMD',
'INSTALL'
]
diff --git a/lib/spack/spack/build_systems/rocm.py b/lib/spack/spack/build_systems/rocm.py
index 0107c6376b..977db700db 100644
--- a/lib/spack/spack/build_systems/rocm.py
+++ b/lib/spack/spack/build_systems/rocm.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -30,6 +30,8 @@
# environment: {}
# extra_rpaths: []
#
+# It is advisable to replace /rocm/ in the paths above with /rocm-version/
+# and introduce spec version numbers to ensure reproducible results.
#
# 2. hip and its dependencies are currently NOT picked up by spack
# automatically, and should therefore be added to packages.yaml by hand:
@@ -37,7 +39,7 @@
# in packages.yaml:
# hip:
# externals:
-# - spec: hip@3.8.20371-d1886b0b
+# - spec: hip
# prefix: /opt/rocm/hip
# extra_attributes:
# compilers:
@@ -64,16 +66,18 @@
# cxx: /opt/rocm/llvm/bin/clang++
# buildable: false
#
+# It is advisable to replace /rocm/ in the paths above with /rocm-version/
+# and introduce spec version numbers to ensure reproducible results.
+#
# 3. In part 2, DO NOT list the path to hsa as /opt/rocm/hsa ! You want spack
# to find hsa in /opt/rocm/include/hsa/hsa.h . The directory of
# /opt/rocm/hsa also has an hsa.h file, but it won't be found because spack
# does not like its directory structure.
#
-from spack.package import PackageBase
-from spack.directives import depends_on, variant, conflicts
-
import spack.variant
+from spack.directives import conflicts, depends_on, variant
+from spack.package import PackageBase
class ROCmPackage(PackageBase):
@@ -102,6 +106,8 @@ class ROCmPackage(PackageBase):
depends_on('hsa-rocr-dev', when='+rocm')
depends_on('hip', when='+rocm')
+ conflicts('^blt@:0.3.6', when='+rocm')
+
# need amd gpu type for rocm builds
conflicts('amdgpu_target=none', when='+rocm')
diff --git a/lib/spack/spack/build_systems/ruby.py b/lib/spack/spack/build_systems/ruby.py
index 32d6633164..5736d0913a 100644
--- a/lib/spack/spack/build_systems/ruby.py
+++ b/lib/spack/spack/build_systems/ruby.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
import glob
import inspect
-from spack.directives import depends_on, extends
+from spack.directives import extends
from spack.package import PackageBase, run_after
@@ -27,8 +27,6 @@ class RubyPackage(PackageBase):
extends('ruby')
- depends_on('ruby', type=('build', 'run'))
-
def build(self, spec, prefix):
"""Build a Ruby gem."""
diff --git a/lib/spack/spack/build_systems/scons.py b/lib/spack/spack/build_systems/scons.py
index 5e17666b71..56ee08a113 100644
--- a/lib/spack/spack/build_systems/scons.py
+++ b/lib/spack/spack/build_systems/scons.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/build_systems/sip.py b/lib/spack/spack/build_systems/sip.py
index f814ef1837..d40be9d3c9 100644
--- a/lib/spack/spack/build_systems/sip.py
+++ b/lib/spack/spack/build_systems/sip.py
@@ -1,14 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import inspect
+import os
+
+import llnl.util.tty as tty
+from llnl.util.filesystem import find, join_path, working_dir
-from llnl.util.filesystem import working_dir, join_path
from spack.directives import depends_on, extends
from spack.package import PackageBase, run_after
-import os
class SIPPackage(PackageBase):
@@ -36,13 +38,53 @@ class SIPPackage(PackageBase):
sip_module = 'sip'
#: Callback names for install-time test
- install_time_test_callbacks = ['import_module_test']
+ install_time_test_callbacks = ['test']
extends('python')
depends_on('qt')
depends_on('py-sip')
+ @property
+ def import_modules(self):
+ """Names of modules that the Python package provides.
+
+ These are used to test whether or not the installation succeeded.
+ These names generally come from running:
+
+ .. code-block:: python
+
+ >> import setuptools
+ >> setuptools.find_packages()
+
+ in the source tarball directory. If the module names are incorrectly
+ detected, this property can be overridden by the package.
+
+ Returns:
+ list: list of strings of module names
+ """
+ modules = []
+ root = os.path.join(
+ self.prefix,
+ self.spec['python'].package.config_vars['python_lib']['true']['false'],
+ )
+
+ # Some Python libraries are packages: collections of modules
+ # distributed in directories containing __init__.py files
+ for path in find(root, '__init__.py', recursive=True):
+ modules.append(path.replace(root + os.sep, '', 1).replace(
+ os.sep + '__init__.py', '').replace('/', '.'))
+
+ # Some Python libraries are modules: individual *.py files
+ # found in the site-packages directory
+ for path in find(root, '*.py', recursive=False):
+ modules.append(path.replace(root + os.sep, '', 1).replace(
+ '.py', '').replace('/', '.'))
+
+ tty.debug('Detected the following modules: {0}'.format(modules))
+
+ return modules
+
def python(self, *args, **kwargs):
"""The python ``Executable``."""
inspect.getmodule(self).python(*args, **kwargs)
@@ -98,17 +140,16 @@ class SIPPackage(PackageBase):
# Testing
- def import_module_test(self):
- """Attempts to import the module that was just installed.
-
- This test is only run if the package overrides
- :py:attr:`import_modules` with a list of module names."""
+ def test(self):
+ """Attempts to import modules of the installed package."""
# Make sure we are importing the installed modules,
- # not the ones in the current directory
- with working_dir('spack-test', create=True):
- for module in self.import_modules:
- self.python('-c', 'import {0}'.format(module))
+ # not the ones in the source directory
+ for module in self.import_modules:
+ self.run_test(inspect.getmodule(self).python.path,
+ ['-c', 'import {0}'.format(module)],
+ purpose='checking import of {0}'.format(module),
+ work_dir='spack-test')
run_after('install')(PackageBase._run_default_install_time_test_callbacks)
diff --git a/lib/spack/spack/build_systems/sourceforge.py b/lib/spack/spack/build_systems/sourceforge.py
index 602a099c17..4558408b2c 100644
--- a/lib/spack/spack/build_systems/sourceforge.py
+++ b/lib/spack/spack/build_systems/sourceforge.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import spack.util.url
import spack.package
+import spack.util.url
class SourceforgePackage(spack.package.PackageBase):
diff --git a/lib/spack/spack/build_systems/sourceware.py b/lib/spack/spack/build_systems/sourceware.py
index b779b530dc..7e78054349 100644
--- a/lib/spack/spack/build_systems/sourceware.py
+++ b/lib/spack/spack/build_systems/sourceware.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import spack.util.url
import spack.package
+import spack.util.url
class SourcewarePackage(spack.package.PackageBase):
diff --git a/lib/spack/spack/build_systems/waf.py b/lib/spack/spack/build_systems/waf.py
index a6dbbbdb35..c33464b2a0 100644
--- a/lib/spack/spack/build_systems/waf.py
+++ b/lib/spack/spack/build_systems/waf.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,11 +6,11 @@
import inspect
+from llnl.util.filesystem import working_dir
+
from spack.directives import depends_on
from spack.package import PackageBase, run_after
-from llnl.util.filesystem import working_dir
-
class WafPackage(PackageBase):
"""Specialized class for packages that are built using the
diff --git a/lib/spack/spack/build_systems/xorg.py b/lib/spack/spack/build_systems/xorg.py
index ae28b30929..b27d875cec 100644
--- a/lib/spack/spack/build_systems/xorg.py
+++ b/lib/spack/spack/build_systems/xorg.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import spack.util.url
import spack.package
+import spack.util.url
class XorgPackage(spack.package.PackageBase):
diff --git a/lib/spack/spack/caches.py b/lib/spack/spack/caches.py
index 49624c06b2..67c93cb306 100644
--- a/lib/spack/spack/caches.py
+++ b/lib/spack/spack/caches.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,15 +9,15 @@ import os
import llnl.util.lang
from llnl.util.filesystem import mkdirp
-import spack.error
-import spack.paths
import spack.config
+import spack.error
import spack.fetch_strategy
+import spack.paths
import spack.util.file_cache
import spack.util.path
-def _misc_cache():
+def misc_cache_location():
"""The ``misc_cache`` is Spack's cache for small data.
Currently the ``misc_cache`` stores indexes for virtual dependency
@@ -27,7 +27,11 @@ def _misc_cache():
if not path:
path = os.path.join(spack.paths.user_config_path, 'cache')
path = spack.util.path.canonicalize_path(path)
+ return path
+
+def _misc_cache():
+ path = misc_cache_location()
return spack.util.file_cache.FileCache(path)
@@ -35,7 +39,7 @@ def _misc_cache():
misc_cache = llnl.util.lang.Singleton(_misc_cache)
-def _fetch_cache():
+def fetch_cache_location():
"""Filesystem cache of downloaded archives.
This prevents Spack from repeatedly fetch the same files when
@@ -45,7 +49,11 @@ def _fetch_cache():
if not path:
path = os.path.join(spack.paths.var_path, "cache")
path = spack.util.path.canonicalize_path(path)
+ return path
+
+def _fetch_cache():
+ path = fetch_cache_location()
return spack.fetch_strategy.FsCache(path)
diff --git a/lib/spack/spack/ci.py b/lib/spack/spack/ci.py
index f38ab95d96..b1dbfcaf0e 100644
--- a/lib/spack/spack/ci.py
+++ b/lib/spack/spack/ci.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,38 +10,44 @@ import json
import os
import re
import shutil
+import stat
import tempfile
-import zlib
+import zipfile
from six import iteritems
from six.moves.urllib.error import HTTPError, URLError
from six.moves.urllib.parse import urlencode
-from six.moves.urllib.request import build_opener, HTTPHandler, Request
+from six.moves.urllib.request import HTTPHandler, Request, build_opener
+import llnl.util.filesystem as fs
import llnl.util.tty as tty
import spack
import spack.binary_distribution as bindist
-import spack.cmd.buildcache as buildcache
+import spack.cmd
import spack.compilers as compilers
import spack.config as cfg
import spack.environment as ev
-from spack.error import SpackError
-import spack.hash_types as ht
import spack.main
+import spack.mirror
+import spack.paths
import spack.repo
-from spack.spec import Spec
-import spack.util.spack_yaml as syaml
-import spack.util.web as web_util
+import spack.util.executable as exe
import spack.util.gpg as gpg_util
+import spack.util.spack_yaml as syaml
import spack.util.url as url_util
-
+import spack.util.web as web_util
+from spack.error import SpackError
+from spack.spec import Spec
JOB_RETRY_CONDITIONS = [
'always',
]
-SPACK_PR_MIRRORS_ROOT_URL = 's3://spack-pr-mirrors'
+SPACK_PR_MIRRORS_ROOT_URL = 's3://spack-binaries-prs'
+SPACK_SHARED_PR_MIRROR_URL = url_util.join(SPACK_PR_MIRRORS_ROOT_URL,
+ 'shared_pr_mirror')
+TEMP_STORAGE_MIRROR_NAME = 'ci_temporary_mirror'
spack_gpg = spack.main.SpackCommand('gpg')
spack_compiler = spack.main.SpackCommand('compiler')
@@ -76,7 +82,8 @@ def _create_buildgroup(opener, headers, url, project, group_name, group_type):
if response_code != 200 and response_code != 201:
msg = 'Creating buildgroup failed (response code = {0}'.format(
response_code)
- raise SpackError(msg)
+ tty.warn(msg)
+ return None
response_text = response.read()
response_json = json.loads(response_text)
@@ -105,7 +112,8 @@ def populate_buildgroup(job_names, group_name, project, site,
if not parent_group_id or not group_id:
msg = 'Failed to create or retrieve buildgroups for {0}'.format(
group_name)
- raise SpackError(msg)
+ tty.warn(msg)
+ return
data = {
'project': project,
@@ -128,7 +136,7 @@ def populate_buildgroup(job_names, group_name, project, site,
if response_code != 200:
msg = 'Error response code ({0}) in populate_buildgroup'.format(
response_code)
- raise SpackError(msg)
+ tty.warn(msg)
def is_main_phase(phase_name):
@@ -196,14 +204,11 @@ def format_root_spec(spec, main_phase, strip_compiler):
return '{0}@{1} arch={2}'.format(
spec.name, spec.version, spec.architecture)
else:
- spec_yaml = spec.to_yaml(hash=ht.build_hash).encode('utf-8')
- return str(base64.b64encode(zlib.compress(spec_yaml)).decode('utf-8'))
- # return '{0}@{1}%{2} arch={3}'.format(
- # spec.name, spec.version, spec.compiler, spec.architecture)
+ return spec.build_hash()
-def spec_deps_key_label(s):
- return s.dag_hash(), "%s/%s" % (s.name, s.dag_hash(7))
+def spec_deps_key(s):
+ return '{0}/{1}'.format(s.name, s.dag_hash(7))
def _add_dependency(spec_label, dep_label, deps):
@@ -214,8 +219,8 @@ def _add_dependency(spec_label, dep_label, deps):
deps[spec_label].add(dep_label)
-def get_spec_dependencies(specs, deps, spec_labels):
- spec_deps_obj = compute_spec_deps(specs)
+def get_spec_dependencies(specs, deps, spec_labels, check_index_only=False):
+ spec_deps_obj = compute_spec_deps(specs, check_index_only=check_index_only)
if spec_deps_obj:
dependencies = spec_deps_obj['dependencies']
@@ -225,19 +230,25 @@ def get_spec_dependencies(specs, deps, spec_labels):
spec_labels[entry['label']] = {
'spec': Spec(entry['spec']),
'rootSpec': entry['root_spec'],
+ 'needs_rebuild': entry['needs_rebuild'],
}
for entry in dependencies:
_add_dependency(entry['spec'], entry['depends'], deps)
-def stage_spec_jobs(specs):
+def stage_spec_jobs(specs, check_index_only=False):
"""Take a set of release specs and generate a list of "stages", where the
jobs in any stage are dependent only on jobs in previous stages. This
allows us to maximize build parallelism within the gitlab-ci framework.
Arguments:
specs (Iterable): Specs to build
+ check_index_only (bool): Regardless of whether DAG pruning is enabled,
+ all configured mirrors are searched to see if binaries for specs
+ are up to date on those mirrors. This flag limits that search to
+ the binary cache indices on those mirrors to speed the process up,
+ even though there is no garantee the index is up to date.
Returns: A tuple of information objects describing the specs, dependencies
and stages:
@@ -274,7 +285,8 @@ def stage_spec_jobs(specs):
deps = {}
spec_labels = {}
- get_spec_dependencies(specs, deps, spec_labels)
+ get_spec_dependencies(
+ specs, deps, spec_labels, check_index_only=check_index_only)
# Save the original deps, as we need to return them at the end of the
# function. In the while loop below, the "dependencies" variable is
@@ -311,12 +323,15 @@ def print_staging_summary(spec_labels, dependencies, stages):
for job in sorted(stage):
s = spec_labels[job]['spec']
- tty.msg(' {0} -> {1}'.format(job, get_spec_string(s)))
+ tty.msg(' [{1}] {0} -> {2}'.format(
+ job,
+ 'x' if spec_labels[job]['needs_rebuild'] else ' ',
+ get_spec_string(s)))
stage_index += 1
-def compute_spec_deps(spec_list):
+def compute_spec_deps(spec_list, check_index_only=False):
"""
Computes all the dependencies for the spec(s) and generates a JSON
object which provides both a list of unique spec names as well as a
@@ -386,33 +401,35 @@ def compute_spec_deps(spec_list):
# root_spec = get_spec_string(spec)
root_spec = spec
- rkey, rlabel = spec_deps_key_label(spec)
-
for s in spec.traverse(deptype=all):
if s.external:
tty.msg('Will not stage external pkg: {0}'.format(s))
continue
- skey, slabel = spec_deps_key_label(s)
- spec_labels[slabel] = {
+ up_to_date_mirrors = bindist.get_mirrors_for_spec(
+ spec=s, full_hash_match=True, index_only=check_index_only)
+
+ skey = spec_deps_key(s)
+ spec_labels[skey] = {
'spec': get_spec_string(s),
'root': root_spec,
+ 'needs_rebuild': not up_to_date_mirrors,
}
- append_dep(rlabel, slabel)
for d in s.dependencies(deptype=all):
- dkey, dlabel = spec_deps_key_label(d)
+ dkey = spec_deps_key(d)
if d.external:
tty.msg('Will not stage external dep: {0}'.format(d))
continue
- append_dep(slabel, dlabel)
+ append_dep(skey, dkey)
for spec_label, spec_holder in spec_labels.items():
specs.append({
'label': spec_label,
'spec': spec_holder['spec'],
'root_spec': spec_holder['root'],
+ 'needs_rebuild': spec_holder['needs_rebuild'],
})
deps_json_obj = {
@@ -481,26 +498,33 @@ def pkg_name_from_spec_label(spec_label):
def format_job_needs(phase_name, strip_compilers, dep_jobs,
- osname, build_group, enable_artifacts_buildcache):
+ osname, build_group, prune_dag, stage_spec_dict,
+ enable_artifacts_buildcache):
needs_list = []
for dep_job in dep_jobs:
- needs_list.append({
- 'job': get_job_name(phase_name,
- strip_compilers,
- dep_job,
- osname,
- build_group),
- 'artifacts': enable_artifacts_buildcache,
- })
+ dep_spec_key = spec_deps_key(dep_job)
+ dep_spec_info = stage_spec_dict[dep_spec_key]
+
+ if not prune_dag or dep_spec_info['needs_rebuild']:
+ needs_list.append({
+ 'job': get_job_name(phase_name,
+ strip_compilers,
+ dep_job,
+ dep_job.architecture,
+ build_group),
+ 'artifacts': enable_artifacts_buildcache,
+ })
return needs_list
def generate_gitlab_ci_yaml(env, print_summary, output_file,
- run_optimizer=False, use_dependencies=False):
- # FIXME: What's the difference between one that opens with 'spack'
- # and one that opens with 'env'? This will only handle the former.
+ prune_dag=False, check_index_only=False,
+ run_optimizer=False, use_dependencies=False,
+ artifacts_root=None):
with spack.concretize.disable_compiler_existence_check():
- env.concretize()
+ with env.write_transaction():
+ env.concretize()
+ env.write()
yaml_root = ev.config_dict(env.yaml)
@@ -509,10 +533,6 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
gitlab_ci = yaml_root['gitlab-ci']
- final_job_config = None
- if 'final-stage-rebuild-index' in gitlab_ci:
- final_job_config = gitlab_ci['final-stage-rebuild-index']
-
build_group = None
enable_cdash_reporting = False
cdash_auth_token = None
@@ -529,9 +549,11 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
tty.verbose("Using CDash auth token from environment")
cdash_auth_token = os.environ.get('SPACK_CDASH_AUTH_TOKEN')
- is_pr_pipeline = (
- os.environ.get('SPACK_IS_PR_PIPELINE', '').lower() == 'true'
- )
+ generate_job_name = os.environ.get('CI_JOB_NAME', None)
+ parent_pipeline_id = os.environ.get('CI_PIPELINE_ID', None)
+
+ spack_pipeline_type = os.environ.get('SPACK_PIPELINE_TYPE', None)
+ is_pr_pipeline = spack_pipeline_type == 'spack_pull_request'
spack_pr_branch = os.environ.get('SPACK_PR_BRANCH', None)
pr_mirror_url = None
@@ -539,13 +561,32 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
pr_mirror_url = url_util.join(SPACK_PR_MIRRORS_ROOT_URL,
spack_pr_branch)
+ if 'mirrors' not in yaml_root or len(yaml_root['mirrors'].values()) < 1:
+ tty.die('spack ci generate requires an env containing a mirror')
+
ci_mirrors = yaml_root['mirrors']
mirror_urls = [url for url in ci_mirrors.values()]
+ remote_mirror_url = mirror_urls[0]
+
+ # Check for a list of "known broken" specs that we should not bother
+ # trying to build.
+ broken_specs_url = ''
+ known_broken_specs_encountered = []
+ if 'broken-specs-url' in gitlab_ci:
+ broken_specs_url = gitlab_ci['broken-specs-url']
enable_artifacts_buildcache = False
if 'enable-artifacts-buildcache' in gitlab_ci:
enable_artifacts_buildcache = gitlab_ci['enable-artifacts-buildcache']
+ rebuild_index_enabled = True
+ if 'rebuild-index' in gitlab_ci and gitlab_ci['rebuild-index'] is False:
+ rebuild_index_enabled = False
+
+ temp_storage_url_prefix = None
+ if 'temporary-storage-url-prefix' in gitlab_ci:
+ temp_storage_url_prefix = gitlab_ci['temporary-storage-url-prefix']
+
bootstrap_specs = []
phases = []
if 'bootstrap' in gitlab_ci:
@@ -573,19 +614,74 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
'strip-compilers': False,
})
- staged_phases = {}
- for phase in phases:
- phase_name = phase['name']
- with spack.concretize.disable_compiler_existence_check():
- staged_phases[phase_name] = stage_spec_jobs(
- env.spec_lists[phase_name])
+ # Add per-PR mirror (and shared PR mirror) if enabled, as some specs might
+ # be up to date in one of those and thus not need to be rebuilt.
+ if pr_mirror_url:
+ spack.mirror.add(
+ 'ci_pr_mirror', pr_mirror_url, cfg.default_modify_scope())
+ spack.mirror.add('ci_shared_pr_mirror',
+ SPACK_SHARED_PR_MIRROR_URL,
+ cfg.default_modify_scope())
+
+ pipeline_artifacts_dir = artifacts_root
+ if not pipeline_artifacts_dir:
+ proj_dir = os.environ.get('CI_PROJECT_DIR', os.getcwd())
+ pipeline_artifacts_dir = os.path.join(proj_dir, 'jobs_scratch_dir')
+
+ pipeline_artifacts_dir = os.path.abspath(pipeline_artifacts_dir)
+ concrete_env_dir = os.path.join(
+ pipeline_artifacts_dir, 'concrete_environment')
+
+ # Now that we've added the mirrors we know about, they should be properly
+ # reflected in the environment manifest file, so copy that into the
+ # concrete environment directory, along with the spack.lock file.
+ if not os.path.exists(concrete_env_dir):
+ os.makedirs(concrete_env_dir)
+ shutil.copyfile(env.manifest_path,
+ os.path.join(concrete_env_dir, 'spack.yaml'))
+ shutil.copyfile(env.lock_path,
+ os.path.join(concrete_env_dir, 'spack.lock'))
+
+ job_log_dir = os.path.join(pipeline_artifacts_dir, 'logs')
+ job_repro_dir = os.path.join(pipeline_artifacts_dir, 'reproduction')
+ local_mirror_dir = os.path.join(pipeline_artifacts_dir, 'mirror')
+ user_artifacts_dir = os.path.join(pipeline_artifacts_dir, 'user_data')
+
+ # We communicate relative paths to the downstream jobs to avoid issues in
+ # situations where the CI_PROJECT_DIR varies between the pipeline
+ # generation job and the rebuild jobs. This can happen when gitlab
+ # checks out the project into a runner-specific directory, for example,
+ # and different runners are picked for generate and rebuild jobs.
+ ci_project_dir = os.environ.get('CI_PROJECT_DIR')
+ rel_artifacts_root = os.path.relpath(
+ pipeline_artifacts_dir, ci_project_dir)
+ rel_concrete_env_dir = os.path.relpath(
+ concrete_env_dir, ci_project_dir)
+ rel_job_log_dir = os.path.relpath(
+ job_log_dir, ci_project_dir)
+ rel_job_repro_dir = os.path.relpath(
+ job_repro_dir, ci_project_dir)
+ rel_local_mirror_dir = os.path.relpath(
+ local_mirror_dir, ci_project_dir)
+ rel_user_artifacts_dir = os.path.relpath(
+ user_artifacts_dir, ci_project_dir)
+
+ # Speed up staging by first fetching binary indices from all mirrors
+ # (including the per-PR mirror we may have just added above).
+ bindist.binary_index.update()
- if print_summary:
+ staged_phases = {}
+ try:
for phase in phases:
phase_name = phase['name']
- tty.msg('Stages for phase "{0}"'.format(phase_name))
- phase_stages = staged_phases[phase_name]
- print_staging_summary(*phase_stages)
+ with spack.concretize.disable_compiler_existence_check():
+ staged_phases[phase_name] = stage_spec_jobs(
+ env.spec_lists[phase_name],
+ check_index_only=check_index_only)
+ finally:
+ # Clean up PR mirror if enabled
+ if pr_mirror_url:
+ spack.mirror.remove('ci_pr_mirror', cfg.default_modify_scope())
all_job_names = []
output_object = {}
@@ -611,9 +707,13 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
stage_id += 1
for spec_label in stage_jobs:
- root_spec = spec_labels[spec_label]['rootSpec']
+ spec_record = spec_labels[spec_label]
+ root_spec = spec_record['rootSpec']
pkg_name = pkg_name_from_spec_label(spec_label)
release_spec = root_spec[pkg_name]
+ release_spec_full_hash = release_spec.full_hash()
+ release_spec_dag_hash = release_spec.dag_hash()
+ release_spec_build_hash = release_spec.build_hash()
runner_attribs = find_matching_config(
release_spec, gitlab_ci)
@@ -640,10 +740,15 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
except AttributeError:
image_name = build_image
- job_script = [
- 'spack env activate --without-view .',
- 'spack ci rebuild',
- ]
+ job_script = ['spack env activate --without-view .']
+
+ if artifacts_root:
+ job_script.insert(0, 'cd {0}'.format(concrete_env_dir))
+
+ job_script.extend([
+ 'spack ci rebuild'
+ ])
+
if 'script' in runner_attribs:
job_script = [s for s in runner_attribs['script']]
@@ -670,19 +775,25 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
job_vars = {
'SPACK_ROOT_SPEC': format_root_spec(
root_spec, main_phase, strip_compilers),
+ 'SPACK_JOB_SPEC_DAG_HASH': release_spec_dag_hash,
+ 'SPACK_JOB_SPEC_BUILD_HASH': release_spec_build_hash,
+ 'SPACK_JOB_SPEC_FULL_HASH': release_spec_full_hash,
'SPACK_JOB_SPEC_PKG_NAME': release_spec.name,
- 'SPACK_COMPILER_ACTION': compiler_action,
- 'SPACK_IS_PR_PIPELINE': str(is_pr_pipeline),
+ 'SPACK_COMPILER_ACTION': compiler_action
}
job_dependencies = []
if spec_label in dependencies:
if enable_artifacts_buildcache:
+ # Get dependencies transitively, so they're all
+ # available in the artifacts buildcache.
dep_jobs = [
d for d in release_spec.traverse(deptype=all,
root=False)
]
else:
+ # In this case, "needs" is only used for scheduling
+ # purposes, so we only get the direct dependencies.
dep_jobs = []
for dep_label in dependencies[spec_label]:
dep_pkg = pkg_name_from_spec_label(dep_label)
@@ -690,10 +801,13 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
dep_jobs.append(dep_root[dep_pkg])
job_dependencies.extend(
- format_job_needs(phase_name, strip_compilers, dep_jobs,
- osname, build_group,
+ format_job_needs(phase_name, strip_compilers,
+ dep_jobs, osname, build_group,
+ prune_dag, spec_labels,
enable_artifacts_buildcache))
+ rebuild_spec = spec_record['needs_rebuild']
+
# This next section helps gitlab make sure the right
# bootstrapped compiler exists in the artifacts buildcache by
# creating an artificial dependency between this spec and its
@@ -709,11 +823,12 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
compiler_pkg_spec = compilers.pkg_spec_for_compiler(
release_spec.compiler)
for bs in bootstrap_specs:
- bs_arch = bs['spec'].architecture
+ c_spec = bs['spec']
+ bs_arch = c_spec.architecture
bs_arch_family = (bs_arch.target
.microarchitecture
.family)
- if (bs['spec'].satisfies(compiler_pkg_spec) and
+ if (c_spec.satisfies(compiler_pkg_spec) and
bs_arch_family == spec_arch_family):
# We found the bootstrap compiler this release spec
# should be built with, so for DAG scheduling
@@ -721,10 +836,24 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
# to the jobs "needs". But if artifact buildcache
# is enabled, we'll have to add all transtive deps
# of the compiler as well.
- dep_jobs = [bs['spec']]
+
+ # Here we check whether the bootstrapped compiler
+ # needs to be rebuilt. Until compilers are proper
+ # dependencies, we artificially force the spec to
+ # be rebuilt if the compiler targeted to build it
+ # needs to be rebuilt.
+ bs_specs, _, _ = staged_phases[bs['phase-name']]
+ c_spec_key = spec_deps_key(c_spec)
+ rbld_comp = bs_specs[c_spec_key]['needs_rebuild']
+ rebuild_spec = rebuild_spec or rbld_comp
+ # Also update record so dependents do not fail to
+ # add this spec to their "needs"
+ spec_record['needs_rebuild'] = rebuild_spec
+
+ dep_jobs = [c_spec]
if enable_artifacts_buildcache:
dep_jobs = [
- d for d in bs['spec'].traverse(deptype=all)
+ d for d in c_spec.traverse(deptype=all)
]
job_dependencies.extend(
@@ -733,6 +862,8 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
dep_jobs,
str(bs_arch),
build_group,
+ prune_dag,
+ bs_specs,
enable_artifacts_buildcache))
else:
debug_msg = ''.join([
@@ -741,9 +872,30 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
'not the compiler required by the spec, or ',
'because the target arch families of the ',
'spec and the compiler did not match'
- ]).format(bs['spec'], release_spec)
+ ]).format(c_spec, release_spec)
tty.debug(debug_msg)
+ if prune_dag and not rebuild_spec:
+ tty.debug('Pruning spec that does not need to be rebuilt.')
+ continue
+
+ # Check if this spec is in our list of known failures, now that
+ # we know this spec needs a rebuild
+ if broken_specs_url:
+ broken_spec_path = url_util.join(
+ broken_specs_url, release_spec_full_hash)
+ if web_util.url_exists(broken_spec_path):
+ known_broken_specs_encountered.append('{0} ({1})'.format(
+ release_spec, release_spec_full_hash))
+
+ if artifacts_root:
+ job_dependencies.append({
+ 'job': generate_job_name,
+ 'pipeline': '{0}'.format(parent_pipeline_id)
+ })
+
+ job_vars['SPACK_SPEC_NEEDS_REBUILD'] = str(rebuild_spec)
+
if enable_cdash_reporting:
cdash_build_name = get_cdash_build_name(
release_spec, build_group)
@@ -762,14 +914,16 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
variables.update(job_vars)
artifact_paths = [
- 'jobs_scratch_dir',
- 'cdash_report',
+ rel_job_log_dir,
+ rel_job_repro_dir,
+ rel_user_artifacts_dir
]
if enable_artifacts_buildcache:
- bc_root = 'local_mirror/build_cache'
+ bc_root = os.path.join(
+ local_mirror_dir, 'build_cache')
artifact_paths.extend([os.path.join(bc_root, p) for p in [
- bindist.tarball_name(release_spec, '.spec.yaml'),
+ bindist.tarball_name(release_spec, '.spec.json'),
bindist.tarball_name(release_spec, '.cdashid'),
bindist.tarball_directory_name(release_spec),
]])
@@ -787,7 +941,8 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
'retry': {
'max': 2,
'when': JOB_RETRY_CONDITIONS,
- }
+ },
+ 'interruptible': True
}
length_needs = len(job_dependencies)
@@ -812,11 +967,19 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
output_object[job_name] = job_object
job_id += 1
+ if print_summary:
+ for phase in phases:
+ phase_name = phase['name']
+ tty.msg('Stages for phase "{0}"'.format(phase_name))
+ phase_stages = staged_phases[phase_name]
+ print_staging_summary(*phase_stages)
+
tty.debug('{0} build jobs generated in {1} stages'.format(
job_id, stage_id))
- tty.debug('The max_needs_job is {0}, with {1} needs'.format(
- max_needs_job, max_length_needs))
+ if job_id > 0:
+ tty.debug('The max_needs_job is {0}, with {1} needs'.format(
+ max_needs_job, max_length_needs))
# Use "all_job_names" to populate the build group for this set
if enable_cdash_reporting and cdash_auth_token:
@@ -828,63 +991,138 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
else:
tty.warn('Unable to populate buildgroup without CDash credentials')
- if final_job_config and not is_pr_pipeline:
- # Add an extra, final job to regenerate the index
- final_stage = 'stage-rebuild-index'
- final_job = {
- 'stage': final_stage,
- 'script': 'spack buildcache update-index --keys -d {0}'.format(
- mirror_urls[0]),
- 'tags': final_job_config['tags'],
- 'when': 'always'
- }
- if 'image' in final_job_config:
- final_job['image'] = final_job_config['image']
- if before_script:
- final_job['before_script'] = before_script
- if after_script:
- final_job['after_script'] = after_script
- output_object['rebuild-index'] = final_job
- stage_names.append(final_stage)
-
- output_object['stages'] = stage_names
-
- # Capture the version of spack used to generate the pipeline, transform it
- # into a value that can be passed to "git checkout", and save it in a
- # global yaml variable
- spack_version = spack.main.get_version()
- version_to_clone = None
- v_match = re.match(r"^\d+\.\d+\.\d+$", spack_version)
- if v_match:
- version_to_clone = 'v{0}'.format(v_match.group(0))
- else:
- v_match = re.match(r"^[^-]+-[^-]+-([a-f\d]+)$", spack_version)
+ service_job_config = None
+ if 'service-job-attributes' in gitlab_ci:
+ service_job_config = gitlab_ci['service-job-attributes']
+
+ default_attrs = [
+ 'image',
+ 'tags',
+ 'variables',
+ 'before_script',
+ # 'script',
+ 'after_script',
+ ]
+
+ if job_id > 0:
+ if temp_storage_url_prefix:
+ # There were some rebuild jobs scheduled, so we will need to
+ # schedule a job to clean up the temporary storage location
+ # associated with this pipeline.
+ stage_names.append('cleanup-temp-storage')
+ cleanup_job = {}
+
+ if service_job_config:
+ copy_attributes(default_attrs,
+ service_job_config,
+ cleanup_job)
+
+ cleanup_job['stage'] = 'cleanup-temp-storage'
+ cleanup_job['script'] = [
+ 'spack -d mirror destroy --mirror-url {0}/$CI_PIPELINE_ID'.format(
+ temp_storage_url_prefix)
+ ]
+ cleanup_job['when'] = 'always'
+
+ output_object['cleanup'] = cleanup_job
+
+ if rebuild_index_enabled:
+ # Add a final job to regenerate the index
+ stage_names.append('stage-rebuild-index')
+ final_job = {}
+
+ if service_job_config:
+ copy_attributes(default_attrs,
+ service_job_config,
+ final_job)
+
+ index_target_mirror = mirror_urls[0]
+ if is_pr_pipeline:
+ index_target_mirror = pr_mirror_url
+
+ final_job['stage'] = 'stage-rebuild-index'
+ final_job['script'] = [
+ 'spack buildcache update-index --keys -d {0}'.format(
+ index_target_mirror)
+ ]
+ final_job['when'] = 'always'
+
+ if artifacts_root:
+ final_job['variables'] = {
+ 'SPACK_CONCRETE_ENV_DIR': concrete_env_dir
+ }
+
+ output_object['rebuild-index'] = final_job
+
+ output_object['stages'] = stage_names
+
+ # Capture the version of spack used to generate the pipeline, transform it
+ # into a value that can be passed to "git checkout", and save it in a
+ # global yaml variable
+ spack_version = spack.main.get_version()
+ version_to_clone = None
+ v_match = re.match(r"^\d+\.\d+\.\d+$", spack_version)
if v_match:
- version_to_clone = v_match.group(1)
+ version_to_clone = 'v{0}'.format(v_match.group(0))
else:
- version_to_clone = spack_version
-
- output_object['variables'] = {
- 'SPACK_VERSION': spack_version,
- 'SPACK_CHECKOUT_VERSION': version_to_clone,
- }
+ v_match = re.match(r"^[^-]+-[^-]+-([a-f\d]+)$", spack_version)
+ if v_match:
+ version_to_clone = v_match.group(1)
+ else:
+ version_to_clone = spack_version
+
+ output_object['variables'] = {
+ 'SPACK_ARTIFACTS_ROOT': rel_artifacts_root,
+ 'SPACK_CONCRETE_ENV_DIR': rel_concrete_env_dir,
+ 'SPACK_VERSION': spack_version,
+ 'SPACK_CHECKOUT_VERSION': version_to_clone,
+ 'SPACK_REMOTE_MIRROR_URL': remote_mirror_url,
+ 'SPACK_JOB_LOG_DIR': rel_job_log_dir,
+ 'SPACK_JOB_REPRO_DIR': rel_job_repro_dir,
+ 'SPACK_LOCAL_MIRROR_DIR': rel_local_mirror_dir,
+ 'SPACK_PIPELINE_TYPE': str(spack_pipeline_type)
+ }
- if pr_mirror_url:
- output_object['variables']['SPACK_PR_MIRROR_URL'] = pr_mirror_url
+ if pr_mirror_url:
+ output_object['variables']['SPACK_PR_MIRROR_URL'] = pr_mirror_url
- sorted_output = {}
- for output_key, output_value in sorted(output_object.items()):
- sorted_output[output_key] = output_value
+ sorted_output = {}
+ for output_key, output_value in sorted(output_object.items()):
+ sorted_output[output_key] = output_value
- # TODO(opadron): remove this or refactor
- if run_optimizer:
- import spack.ci_optimization as ci_opt
- sorted_output = ci_opt.optimizer(sorted_output)
+ # TODO(opadron): remove this or refactor
+ if run_optimizer:
+ import spack.ci_optimization as ci_opt
+ sorted_output = ci_opt.optimizer(sorted_output)
- # TODO(opadron): remove this or refactor
- if use_dependencies:
- import spack.ci_needs_workaround as cinw
- sorted_output = cinw.needs_to_dependencies(sorted_output)
+ # TODO(opadron): remove this or refactor
+ if use_dependencies:
+ import spack.ci_needs_workaround as cinw
+ sorted_output = cinw.needs_to_dependencies(sorted_output)
+ else:
+ # No jobs were generated
+ tty.debug('No specs to rebuild, generating no-op job')
+ noop_job = {}
+
+ if service_job_config:
+ copy_attributes(default_attrs,
+ service_job_config,
+ noop_job)
+
+ if 'script' not in noop_job:
+ noop_job['script'] = [
+ 'echo "All specs already up to date, nothing to rebuild."',
+ ]
+
+ sorted_output = {'no-specs-to-rebuild': noop_job}
+
+ if known_broken_specs_encountered:
+ error_msg = (
+ 'Pipeline generation failed due to the presence of the '
+ 'following specs that are known to be broken in develop:\n')
+ for broken_spec in known_broken_specs_encountered:
+ error_msg += '* {0}\n'.format(broken_spec)
+ tty.die(error_msg)
with open(output_file, 'w') as outf:
outf.write(syaml.dump_config(sorted_output, default_flow_style=True))
@@ -965,7 +1203,8 @@ def configure_compilers(compiler_action, scope=None):
return None
-def get_concrete_specs(root_spec, job_name, related_builds, compiler_action):
+def get_concrete_specs(env, root_spec, job_name, related_builds,
+ compiler_action):
spec_map = {
'root': None,
'deps': {},
@@ -987,8 +1226,7 @@ def get_concrete_specs(root_spec, job_name, related_builds, compiler_action):
# again. The reason we take this path in the first case (bootstrapped
# compiler), is that we can't concretize a spec at this point if we're
# going to ask spack to "install_missing_compilers".
- concrete_root = Spec.from_yaml(
- str(zlib.decompress(base64.b64decode(root_spec)).decode('utf-8')))
+ concrete_root = env.specs_by_hash[root_spec]
spec_map['root'] = concrete_root
spec_map[job_name] = concrete_root[job_name]
@@ -1029,7 +1267,8 @@ def register_cdash_build(build_name, base_url, project, site, track):
if response_code != 200 and response_code != 201:
msg = 'Adding build failed (response code = {0}'.format(response_code)
- raise SpackError(msg)
+ tty.warn(msg)
+ return (None, None)
response_text = response.read()
response_json = json.loads(response_text)
@@ -1039,7 +1278,7 @@ def register_cdash_build(build_name, base_url, project, site, track):
def relate_cdash_builds(spec_map, cdash_base_url, job_build_id, cdash_project,
- cdashids_mirror_url):
+ cdashids_mirror_urls):
if not job_build_id:
return
@@ -1055,7 +1294,20 @@ def relate_cdash_builds(spec_map, cdash_base_url, job_build_id, cdash_project,
for dep_pkg_name in dep_map:
tty.debug('Fetching cdashid file for {0}'.format(dep_pkg_name))
dep_spec = dep_map[dep_pkg_name]
- dep_build_id = read_cdashid_from_mirror(dep_spec, cdashids_mirror_url)
+ dep_build_id = None
+
+ for url in cdashids_mirror_urls:
+ try:
+ if url:
+ dep_build_id = read_cdashid_from_mirror(dep_spec, url)
+ break
+ except web_util.SpackWebError:
+ tty.debug('Did not find cdashid for {0} on {1}'.format(
+ dep_pkg_name, url))
+ else:
+ tty.warn('Did not find cdashid for {0} anywhere'.format(
+ dep_pkg_name))
+ return
payload = {
"project": cdash_project,
@@ -1070,16 +1322,20 @@ def relate_cdash_builds(spec_map, cdash_base_url, job_build_id, cdash_project,
request = Request(cdash_api_url, data=enc_data, headers=headers)
- response = opener.open(request)
- response_code = response.getcode()
+ try:
+ response = opener.open(request)
+ response_code = response.getcode()
- if response_code != 200 and response_code != 201:
- msg = 'Relate builds ({0} -> {1}) failed (resp code = {2})'.format(
- job_build_id, dep_build_id, response_code)
- raise SpackError(msg)
+ if response_code != 200 and response_code != 201:
+ msg = 'Relate builds ({0} -> {1}) failed (resp code = {2})'.format(
+ job_build_id, dep_build_id, response_code)
+ tty.warn(msg)
+ return
- response_text = response.read()
- tty.debug('Relate builds response: {0}'.format(response_text))
+ response_text = response.read()
+ tty.debug('Relate builds response: {0}'.format(response_text))
+ except Exception as e:
+ print("Relating builds in CDash failed: {0}".format(e))
def write_cdashid_to_mirror(cdashid, spec, mirror_url):
@@ -1099,7 +1355,16 @@ def write_cdashid_to_mirror(cdashid, spec, mirror_url):
tty.debug('pushing cdashid to url')
tty.debug(' local file path: {0}'.format(local_cdash_path))
tty.debug(' remote url: {0}'.format(remote_url))
- web_util.push_to_url(local_cdash_path, remote_url)
+
+ try:
+ web_util.push_to_url(local_cdash_path, remote_url)
+ except Exception as inst:
+ # No matter what went wrong here, don't allow the pipeline to fail
+ # just because there was an issue storing the cdashid on the mirror
+ msg = 'Failed to write cdashid {0} to mirror {1}'.format(
+ cdashid, mirror_url)
+ tty.warn(inst)
+ tty.warn(msg)
def read_cdashid_from_mirror(spec, mirror_url):
@@ -1117,19 +1382,34 @@ def read_cdashid_from_mirror(spec, mirror_url):
return int(contents)
-def push_mirror_contents(env, spec, yaml_path, mirror_url, build_id,
- sign_binaries):
- if mirror_url:
+def push_mirror_contents(env, spec, specfile_path, mirror_url, sign_binaries):
+ try:
unsigned = not sign_binaries
tty.debug('Creating buildcache ({0})'.format(
'unsigned' if unsigned else 'signed'))
- buildcache._createtarball(env, spec_yaml=yaml_path, add_deps=False,
- output_location=mirror_url, force=True,
- allow_root=True, unsigned=unsigned)
- if build_id:
- tty.debug('Writing cdashid ({0}) to remote mirror: {1}'.format(
- build_id, mirror_url))
- write_cdashid_to_mirror(build_id, spec, mirror_url)
+ spack.cmd.buildcache._createtarball(
+ env, spec_file=specfile_path, add_deps=False,
+ output_location=mirror_url, force=True, allow_root=True,
+ unsigned=unsigned)
+ except Exception as inst:
+ # If the mirror we're pushing to is on S3 and there's some
+ # permissions problem, for example, we can't just target
+ # that exception type here, since users of the
+ # `spack ci rebuild' may not need or want any dependency
+ # on boto3. So we use the first non-boto exception type
+ # in the heirarchy:
+ # boto3.exceptions.S3UploadFailedError
+ # boto3.exceptions.Boto3Error
+ # Exception
+ # BaseException
+ # object
+ err_msg = 'Error msg: {0}'.format(inst)
+ if any(x in err_msg for x in ['Access Denied', 'InvalidAccessKeyId']):
+ tty.msg('Permission problem writing to {0}'.format(
+ mirror_url))
+ tty.msg(err_msg)
+ else:
+ raise inst
def copy_stage_logs_to_artifacts(job_spec, job_log_dir):
@@ -1148,3 +1428,307 @@ def copy_stage_logs_to_artifacts(job_spec, job_log_dir):
msg = ('Unable to copy build logs from stage to artifacts '
'due to exception: {0}').format(inst)
tty.error(msg)
+
+
+def download_and_extract_artifacts(url, work_dir):
+ tty.msg('Fetching artifacts from: {0}\n'.format(url))
+
+ headers = {
+ 'Content-Type': 'application/zip',
+ }
+
+ token = os.environ.get('GITLAB_PRIVATE_TOKEN', None)
+ if token:
+ headers['PRIVATE-TOKEN'] = token
+
+ opener = build_opener(HTTPHandler)
+
+ request = Request(url, headers=headers)
+ request.get_method = lambda: 'GET'
+
+ response = opener.open(request)
+ response_code = response.getcode()
+
+ if response_code != 200:
+ msg = 'Error response code ({0}) in reproduce_ci_job'.format(
+ response_code)
+ raise SpackError(msg)
+
+ artifacts_zip_path = os.path.join(work_dir, 'artifacts.zip')
+
+ if not os.path.exists(work_dir):
+ os.makedirs(work_dir)
+
+ with open(artifacts_zip_path, 'wb') as out_file:
+ shutil.copyfileobj(response, out_file)
+
+ zip_file = zipfile.ZipFile(artifacts_zip_path)
+ zip_file.extractall(work_dir)
+ zip_file.close()
+
+ os.remove(artifacts_zip_path)
+
+
+def get_spack_info():
+ git_path = os.path.join(spack.paths.prefix, ".git")
+ if os.path.exists(git_path):
+ git = exe.which("git")
+ if git:
+ with fs.working_dir(spack.paths.prefix):
+ git_log = git("log", "-1",
+ output=str, error=os.devnull,
+ fail_on_error=False)
+
+ return git_log
+
+ return 'no git repo, use spack {0}'.format(spack.spack_version)
+
+
+def setup_spack_repro_version(repro_dir, checkout_commit, merge_commit=None):
+ # figure out the path to the spack git version being used for the
+ # reproduction
+ print('checkout_commit: {0}'.format(checkout_commit))
+ print('merge_commit: {0}'.format(merge_commit))
+
+ dot_git_path = os.path.join(spack.paths.prefix, ".git")
+ if not os.path.exists(dot_git_path):
+ tty.error('Unable to find the path to your local spack clone')
+ return False
+
+ spack_git_path = spack.paths.prefix
+
+ git = exe.which("git")
+ if not git:
+ tty.error("reproduction of pipeline job requires git")
+ return False
+
+ # Check if we can find the tested commits in your local spack repo
+ with fs.working_dir(spack_git_path):
+ git("log", "-1", checkout_commit, output=str, error=os.devnull,
+ fail_on_error=False)
+
+ if git.returncode != 0:
+ tty.error('Missing commit: {0}'.format(checkout_commit))
+ return False
+
+ if merge_commit:
+ git("log", "-1", merge_commit, output=str, error=os.devnull,
+ fail_on_error=False)
+
+ if git.returncode != 0:
+ tty.error('Missing commit: {0}'.format(merge_commit))
+ return False
+
+ # Next attempt to clone your local spack repo into the repro dir
+ with fs.working_dir(repro_dir):
+ clone_out = git("clone", spack_git_path,
+ output=str, error=os.devnull,
+ fail_on_error=False)
+
+ if git.returncode != 0:
+ tty.error('Unable to clone your local spac repo:')
+ tty.msg(clone_out)
+ return False
+
+ # Finally, attempt to put the cloned repo into the same state used during
+ # the pipeline build job
+ repro_spack_path = os.path.join(repro_dir, 'spack')
+ with fs.working_dir(repro_spack_path):
+ co_out = git("checkout", checkout_commit,
+ output=str, error=os.devnull,
+ fail_on_error=False)
+
+ if git.returncode != 0:
+ tty.error('Unable to checkout {0}'.format(checkout_commit))
+ tty.msg(co_out)
+ return False
+
+ if merge_commit:
+ merge_out = git("-c", "user.name=cirepro", "-c",
+ "user.email=user@email.org", "merge",
+ "--no-edit", merge_commit,
+ output=str, error=os.devnull,
+ fail_on_error=False)
+
+ if git.returncode != 0:
+ tty.error('Unable to merge {0}'.format(merge_commit))
+ tty.msg(merge_out)
+ return False
+
+ return True
+
+
+def reproduce_ci_job(url, work_dir):
+ download_and_extract_artifacts(url, work_dir)
+
+ lock_file = fs.find(work_dir, 'spack.lock')[0]
+ concrete_env_dir = os.path.dirname(lock_file)
+
+ tty.debug('Concrete environment directory: {0}'.format(
+ concrete_env_dir))
+
+ yaml_files = fs.find(work_dir, ['*.yaml', '*.yml'])
+
+ tty.debug('yaml files:')
+ for yaml_file in yaml_files:
+ tty.debug(' {0}'.format(yaml_file))
+
+ pipeline_yaml = None
+
+ # Try to find the dynamically generated pipeline yaml file in the
+ # reproducer. If the user did not put it in the artifacts root,
+ # but rather somewhere else and exported it as an artifact from
+ # that location, we won't be able to find it.
+ for yf in yaml_files:
+ with open(yf) as y_fd:
+ yaml_obj = syaml.load(y_fd)
+ if 'variables' in yaml_obj and 'stages' in yaml_obj:
+ pipeline_yaml = yaml_obj
+
+ if pipeline_yaml:
+ tty.debug('\n{0} is likely your pipeline file'.format(yf))
+
+ # Find the install script in the unzipped artifacts and make it executable
+ install_script = fs.find(work_dir, 'install.sh')[0]
+ st = os.stat(install_script)
+ os.chmod(install_script, st.st_mode | stat.S_IEXEC)
+
+ # Find the repro details file. This just includes some values we wrote
+ # during `spack ci rebuild` to make reproduction easier. E.g. the job
+ # name is written here so we can easily find the configuration of the
+ # job from the generated pipeline file.
+ repro_file = fs.find(work_dir, 'repro.json')[0]
+ repro_details = None
+ with open(repro_file) as fd:
+ repro_details = json.load(fd)
+
+ repro_dir = os.path.dirname(repro_file)
+ rel_repro_dir = repro_dir.replace(work_dir, '').lstrip(os.path.sep)
+
+ # Find the spack info text file that should contain the git log
+ # of the HEAD commit used during the CI build
+ spack_info_file = fs.find(work_dir, 'spack_info.txt')[0]
+ with open(spack_info_file) as fd:
+ spack_info = fd.read()
+
+ # Access the specific job configuration
+ job_name = repro_details['job_name']
+ job_yaml = None
+
+ if job_name in pipeline_yaml:
+ job_yaml = pipeline_yaml[job_name]
+
+ if job_yaml:
+ tty.debug('Found job:')
+ tty.debug(job_yaml)
+
+ job_image = None
+ setup_result = False
+ if 'image' in job_yaml:
+ job_image_elt = job_yaml['image']
+ if 'name' in job_image_elt:
+ job_image = job_image_elt['name']
+ else:
+ job_image = job_image_elt
+ tty.msg('Job ran with the following image: {0}'.format(job_image))
+
+ # Because we found this job was run with a docker image, so we will try
+ # to print a "docker run" command that bind-mounts the directory where
+ # we extracted the artifacts.
+
+ # Destination of bind-mounted reproduction directory. It makes for a
+ # more faithful reproducer if everything appears to run in the same
+ # absolute path used during the CI build.
+ mount_as_dir = '/work'
+ if repro_details:
+ mount_as_dir = repro_details['ci_project_dir']
+ mounted_repro_dir = os.path.join(mount_as_dir, rel_repro_dir)
+
+ # We will also try to clone spack from your local checkout and
+ # reproduce the state present during the CI build, and put that into
+ # the bind-mounted reproducer directory.
+
+ # Regular expressions for parsing that HEAD commit. If the pipeline
+ # was on the gitlab spack mirror, it will have been a merge commit made by
+ # gitub and pushed by the sync script. If the pipeline was run on some
+ # environment repo, then the tested spack commit will likely have been
+ # a regular commit.
+ commit_1 = None
+ commit_2 = None
+ commit_regex = re.compile(r"commit\s+([^\s]+)")
+ merge_commit_regex = re.compile(r"Merge\s+([^\s]+)\s+into\s+([^\s]+)")
+
+ # Try the more specific merge commit regex first
+ m = merge_commit_regex.search(spack_info)
+ if m:
+ # This was a merge commit and we captured the parents
+ commit_1 = m.group(1)
+ commit_2 = m.group(2)
+ else:
+ # Not a merge commit, just get the commit sha
+ m = commit_regex.search(spack_info)
+ if m:
+ commit_1 = m.group(1)
+
+ setup_result = False
+ if commit_1:
+ if commit_2:
+ setup_result = setup_spack_repro_version(
+ work_dir, commit_2, merge_commit=commit_1)
+ else:
+ setup_result = setup_spack_repro_version(work_dir, commit_1)
+
+ if not setup_result:
+ setup_msg = """
+ This can happen if the spack you are using to run this command is not a git
+ repo, or if it is a git repo, but it does not have the commits needed to
+ recreate the tested merge commit. If you are trying to reproduce a spack
+ PR pipeline job failure, try fetching the latest develop commits from
+ mainline spack and make sure you have the most recent commit of the PR
+ branch in your local spack repo. Then run this command again.
+ Alternatively, you can also manually clone spack if you know the version
+ you want to test.
+ """
+ tty.error('Failed to automatically setup the tested version of spack '
+ 'in your local reproduction directory.')
+ print(setup_msg)
+
+ # In cases where CI build was run on a shell runner, it might be useful
+ # to see what tags were applied to the job so the user knows what shell
+ # runner was used. But in that case in general, we cannot do nearly as
+ # much to set up the reproducer.
+ job_tags = None
+ if 'tags' in job_yaml:
+ job_tags = job_yaml['tags']
+ tty.msg('Job ran with the following tags: {0}'.format(job_tags))
+
+ inst_list = []
+
+ # Finally, print out some instructions to reproduce the build
+ if job_image:
+ inst_list.append('\nRun the following command:\n\n')
+ inst_list.append(' $ docker run --rm -v {0}:{1} -ti {2}\n'.format(
+ work_dir, mount_as_dir, job_image))
+ inst_list.append('\nOnce inside the container:\n\n')
+ else:
+ inst_list.append('\nOnce on the tagged runner:\n\n')
+
+ if not setup_result:
+ inst_list.append(' - Clone spack and acquire tested commit\n')
+ inst_list.append('{0}'.format(spack_info))
+ spack_root = '<spack-clone-path>'
+ else:
+ spack_root = '{0}/spack'.format(mount_as_dir)
+
+ inst_list.append(' - Activate the environment\n\n')
+ inst_list.append(' $ source {0}/share/spack/setup-env.sh\n'.format(
+ spack_root))
+ inst_list.append(
+ ' $ spack env activate --without-view {0}\n\n'.format(
+ mounted_repro_dir if job_image else repro_dir))
+ inst_list.append(' - Run the install script\n\n')
+ inst_list.append(' $ {0}\n'.format(
+ os.path.join(mounted_repro_dir, 'install.sh')
+ if job_image else install_script))
+
+ print(''.join(inst_list))
diff --git a/lib/spack/spack/ci_needs_workaround.py b/lib/spack/spack/ci_needs_workaround.py
index ba9f7c62af..ff3c621f97 100644
--- a/lib/spack/spack/ci_needs_workaround.py
+++ b/lib/spack/spack/ci_needs_workaround.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/ci_optimization.py b/lib/spack/spack/ci_optimization.py
index c5e69c649c..94528c856a 100644
--- a/lib/spack/spack/ci_optimization.py
+++ b/lib/spack/spack/ci_optimization.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/__init__.py b/lib/spack/spack/cmd/__init__.py
index d728325699..8e81f61c73 100644
--- a/lib/spack/spack/cmd/__init__.py
+++ b/lib/spack/spack/cmd/__init__.py
@@ -1,25 +1,27 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
+import argparse
import os
import re
import sys
-import argparse
-import ruamel.yaml as yaml
+import ruamel.yaml as yaml
import six
+from ruamel.yaml.error import MarkedYAMLError
import llnl.util.tty as tty
+from llnl.util.filesystem import join_path
from llnl.util.lang import attr_setdefault, index_by
from llnl.util.tty.colify import colify
from llnl.util.tty.color import colorize
-from llnl.util.filesystem import join_path
import spack.config
+import spack.environment as ev
import spack.error
import spack.extensions
import spack.paths
@@ -27,8 +29,6 @@ import spack.spec
import spack.store
import spack.util.spack_json as sjson
import spack.util.string
-from ruamel.yaml.error import MarkedYAMLError
-
# cmd has a submodule called "list" so preserve the python list module
python_list = list
@@ -187,29 +187,13 @@ def matching_spec_from_env(spec):
If no matching spec is found in the environment (or if no environment is
active), this will return the given spec but concretized.
"""
- env = spack.environment.get_env({}, cmd_name)
+ env = ev.active_environment()
if env:
return env.matching_spec(spec) or spec.concretized()
else:
return spec.concretized()
-def elide_list(line_list, max_num=10):
- """Takes a long list and limits it to a smaller number of elements,
- replacing intervening elements with '...'. For example::
-
- elide_list([1,2,3,4,5,6], 4)
-
- gives::
-
- [1, 2, 3, '...', 6]
- """
- if len(line_list) > max_num:
- return line_list[:max_num - 1] + ['...'] + line_list[-1:]
- else:
- return line_list
-
-
def disambiguate_spec(spec, env, local=False, installed=True, first=False):
"""Given a spec, figure out which installed package it refers to.
@@ -217,10 +201,10 @@ def disambiguate_spec(spec, env, local=False, installed=True, first=False):
spec (spack.spec.Spec): a spec to disambiguate
env (spack.environment.Environment): a spack environment,
if one is active, or None if no environment is active
- local (boolean, default False): do not search chained spack instances
- installed (boolean or any, or spack.database.InstallStatus or iterable
- of spack.database.InstallStatus): install status argument passed to
- database query. See ``spack.database.Database._query`` for details.
+ local (bool): do not search chained spack instances
+ installed (bool or spack.database.InstallStatus or typing.Iterable):
+ install status argument passed to database query.
+ See ``spack.database.Database._query`` for details.
"""
hashes = env.all_hashes() if env else None
return disambiguate_spec_from_hashes(spec, hashes, local, installed, first)
@@ -232,11 +216,11 @@ def disambiguate_spec_from_hashes(spec, hashes, local=False,
Arguments:
spec (spack.spec.Spec): a spec to disambiguate
- hashes (iterable): a set of hashes of specs among which to disambiguate
- local (boolean, default False): do not search chained spack instances
- installed (boolean or any, or spack.database.InstallStatus or iterable
- of spack.database.InstallStatus): install status argument passed to
- database query. See ``spack.database.Database._query`` for details.
+ hashes (typing.Iterable): a set of hashes of specs among which to disambiguate
+ local (bool): do not search chained spack instances
+ installed (bool or spack.database.InstallStatus or typing.Iterable):
+ install status argument passed to database query.
+ See ``spack.database.Database._query`` for details.
"""
if local:
matching_specs = spack.store.db.query_local(spec, hashes=hashes,
@@ -278,14 +262,14 @@ def display_specs_as_json(specs, deps=False):
if spec.dag_hash() in seen:
continue
seen.add(spec.dag_hash())
- records.append(spec.to_record_dict())
+ records.append(spec.to_node_dict())
if deps:
for dep in spec.traverse():
if dep.dag_hash() in seen:
continue
seen.add(dep.dag_hash())
- records.append(dep.to_record_dict())
+ records.append(dep.to_node_dict())
sjson.dump(records, sys.stdout)
@@ -334,9 +318,8 @@ def display_specs(specs, args=None, **kwargs):
namespace.
Args:
- specs (list of spack.spec.Spec): the specs to display
- args (optional argparse.Namespace): namespace containing
- formatting arguments
+ specs (list): the specs to display
+ args (argparse.Namespace or None): namespace containing formatting arguments
Keyword Args:
paths (bool): Show paths with each displayed spec
@@ -349,9 +332,9 @@ def display_specs(specs, args=None, **kwargs):
indent (int): indent each line this much
groups (bool): display specs grouped by arch/compiler (default True)
decorators (dict): dictionary mappng specs to decorators
- header_callback (function): called at start of arch/compiler groups
+ header_callback (typing.Callable): called at start of arch/compiler groups
all_headers (bool): show headers even when arch/compiler aren't defined
- output (stream): A file object to write to. Default is ``sys.stdout``
+ output (typing.IO): A file object to write to. Default is ``sys.stdout``
"""
def get_arg(name, default=None):
@@ -503,3 +486,71 @@ def extant_file(f):
if not os.path.isfile(f):
raise argparse.ArgumentTypeError('%s does not exist' % f)
return f
+
+
+def require_active_env(cmd_name):
+ """Used by commands to get the active environment
+
+ If an environment is not found, print an error message that says the calling
+ command *needs* an active environment.
+
+ Arguments:
+ cmd_name (str): name of calling command
+
+ Returns:
+ (spack.environment.Environment): the active environment
+ """
+ env = ev.active_environment()
+
+ if env:
+ return env
+ else:
+ tty.die(
+ '`spack %s` requires an environment' % cmd_name,
+ 'activate an environment first:',
+ ' spack env activate ENV',
+ 'or use:',
+ ' spack -e ENV %s ...' % cmd_name)
+
+
+def find_environment(args):
+ """Find active environment from args or environment variable.
+
+ Check for an environment in this order:
+ 1. via ``spack -e ENV`` or ``spack -D DIR`` (arguments)
+ 2. via a path in the spack.environment.spack_env_var environment variable.
+
+ If an environment is found, read it in. If not, return None.
+
+ Arguments:
+ args (argparse.Namespace): argparse namespace with command arguments
+
+ Returns:
+ (spack.environment.Environment): a found environment, or ``None``
+ """
+
+ # treat env as a name
+ env = args.env
+ if env:
+ if ev.exists(env):
+ return ev.read(env)
+
+ else:
+ # if env was specified, see if it is a directory otherwise, look
+ # at env_dir (env and env_dir are mutually exclusive)
+ env = args.env_dir
+
+ # if no argument, look for the environment variable
+ if not env:
+ env = os.environ.get(ev.spack_env_var)
+
+ # nothing was set; there's no active environment
+ if not env:
+ return None
+
+ # if we get here, env isn't the name of a spack environment; it has
+ # to be a path to an environment, or there is something wrong.
+ if ev.is_env_dir(env):
+ return ev.Environment(env)
+
+ raise ev.SpackEnvironmentError('no environment in %s' % env)
diff --git a/lib/spack/spack/cmd/activate.py b/lib/spack/spack/cmd/activate.py
index bfca9f5604..9b96733fae 100644
--- a/lib/spack/spack/cmd/activate.py
+++ b/lib/spack/spack/cmd/activate.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -30,8 +30,7 @@ def activate(parser, args):
if len(specs) != 1:
tty.die("activate requires one spec. %d given." % len(specs))
- env = ev.get_env(args, 'activate')
- spec = spack.cmd.disambiguate_spec(specs[0], env)
+ spec = spack.cmd.disambiguate_spec(specs[0], ev.active_environment())
if not spec.package.is_extension:
tty.die("%s is not an extension." % spec.name)
diff --git a/lib/spack/spack/cmd/add.py b/lib/spack/spack/cmd/add.py
index 94c8620dbb..631038ff2b 100644
--- a/lib/spack/spack/cmd/add.py
+++ b/lib/spack/spack/cmd/add.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,6 @@ import llnl.util.tty as tty
import spack.cmd
import spack.cmd.common.arguments as arguments
-import spack.environment as ev
-
description = 'add a spec to an environment'
section = "environments"
@@ -23,7 +21,7 @@ def setup_parser(subparser):
def add(parser, args):
- env = ev.get_env(args, 'add', required=True)
+ env = spack.cmd.require_active_env(cmd_name='add')
with env.write_transaction():
for spec in spack.cmd.parse_specs(args.specs):
diff --git a/lib/spack/spack/cmd/analyze.py b/lib/spack/spack/cmd/analyze.py
new file mode 100644
index 0000000000..f584674ae2
--- /dev/null
+++ b/lib/spack/spack/cmd/analyze.py
@@ -0,0 +1,117 @@
+# Copyright 2013-2021 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)
+
+import sys
+
+import llnl.util.tty as tty
+
+import spack.analyzers
+import spack.build_environment
+import spack.cmd
+import spack.cmd.common.arguments as arguments
+import spack.environment as ev
+import spack.fetch_strategy
+import spack.monitor
+import spack.paths
+import spack.report
+
+description = "run analyzers on installed packages"
+section = "analysis"
+level = "long"
+
+
+def setup_parser(subparser):
+ sp = subparser.add_subparsers(metavar='SUBCOMMAND', dest='analyze_command')
+
+ sp.add_parser('list-analyzers',
+ description="list available analyzers",
+ help="show list of analyzers that are available to run.")
+
+ # This adds the monitor group to the subparser
+ spack.monitor.get_monitor_group(subparser)
+
+ # Run Parser
+ run_parser = sp.add_parser('run', description="run an analyzer",
+ help="provide the name of the analyzer to run.")
+
+ run_parser.add_argument(
+ '--overwrite', action='store_true',
+ help="re-analyze even if the output file already exists.")
+ run_parser.add_argument(
+ '-p', '--path', default=None,
+ dest='path',
+ help="write output to a different directory than ~/.spack/analyzers")
+ run_parser.add_argument(
+ '-a', '--analyzers', default=None,
+ dest="analyzers", action="append",
+ help="add an analyzer (defaults to all available)")
+ arguments.add_common_arguments(run_parser, ['spec'])
+
+
+def analyze_spec(spec, analyzers=None, outdir=None, monitor=None, overwrite=False):
+ """
+ Do an analysis for a spec, optionally adding monitoring.
+
+ We also allow the user to specify a custom output directory.
+ analyze_spec(spec, args.analyzers, args.outdir, monitor)
+
+ Args:
+ spec (spack.spec.Spec): spec object of installed package
+ analyzers (list): list of analyzer (keys) to run
+ monitor (spack.monitor.SpackMonitorClient): a monitor client
+ overwrite (bool): overwrite result if already exists
+ """
+ analyzers = analyzers or list(spack.analyzers.analyzer_types.keys())
+
+ # Load the build environment from the spec install directory, and send
+ # the spec to the monitor if it's not known
+ if monitor:
+ monitor.load_build_environment(spec)
+ monitor.new_configuration([spec])
+
+ for name in analyzers:
+
+ # Instantiate the analyzer with the spec and outdir
+ analyzer = spack.analyzers.get_analyzer(name)(spec, outdir)
+
+ # Run the analyzer to get a json result - results are returned as
+ # a dictionary with a key corresponding to the analyzer type, so
+ # we can just update the data
+ result = analyzer.run()
+
+ # Send the result. We do them separately because:
+ # 1. each analyzer might have differently organized output
+ # 2. the size of a result can be large
+ analyzer.save_result(result, overwrite)
+
+
+def analyze(parser, args, **kwargs):
+
+ # If the user wants to list analyzers, do so and exit
+ if args.analyze_command == "list-analyzers":
+ spack.analyzers.list_all()
+ sys.exit(0)
+
+ # handle active environment, if any
+ env = ev.active_environment()
+
+ # Get an disambiguate spec (we should only have one)
+ specs = spack.cmd.parse_specs(args.spec)
+ if not specs:
+ tty.die("You must provide one or more specs to analyze.")
+ spec = spack.cmd.disambiguate_spec(specs[0], env)
+
+ # The user wants to monitor builds using github.com/spack/spack-monitor
+ # It is instantianted once here, and then available at spack.monitor.cli
+ monitor = None
+ if args.use_monitor:
+ monitor = spack.monitor.get_client(
+ host=args.monitor_host,
+ prefix=args.monitor_prefix,
+ disable_auth=args.monitor_disable_auth,
+ )
+
+ # Run the analysis
+ analyze_spec(spec, args.analyzers, args.path, monitor, args.overwrite)
diff --git a/lib/spack/spack/cmd/arch.py b/lib/spack/spack/cmd/arch.py
index 9751599b10..14be456e3f 100644
--- a/lib/spack/spack/cmd/arch.py
+++ b/lib/spack/spack/cmd/arch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,10 @@ from __future__ import print_function
import collections
import archspec.cpu
+
import llnl.util.tty.colify as colify
import llnl.util.tty.color as color
+
import spack.architecture as architecture
description = "print architecture information about this machine"
diff --git a/lib/spack/spack/cmd/audit.py b/lib/spack/spack/cmd/audit.py
new file mode 100644
index 0000000000..0e87925021
--- /dev/null
+++ b/lib/spack/spack/cmd/audit.py
@@ -0,0 +1,105 @@
+# Copyright 2013-2021 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)
+import llnl.util.tty as tty
+import llnl.util.tty.color as cl
+
+import spack.audit
+import spack.repo
+
+description = "audit configuration files, packages, etc."
+section = "system"
+level = "short"
+
+
+def setup_parser(subparser):
+ # Top level flags, valid for every audit class
+ sp = subparser.add_subparsers(metavar='SUBCOMMAND', dest='subcommand')
+
+ # Audit configuration files
+ sp.add_parser('configs', help='audit configuration files')
+
+ # Https and other linting
+ https_parser = sp.add_parser('packages-https', help='check https in packages')
+ https_parser.add_argument(
+ '--all',
+ action='store_true',
+ default=False,
+ dest='check_all',
+ help="audit all packages"
+ )
+
+ # Audit package recipes
+ pkg_parser = sp.add_parser('packages', help='audit package recipes')
+
+ for group in [pkg_parser, https_parser]:
+ group.add_argument(
+ 'name', metavar='PKG', nargs='*',
+ help='package to be analyzed (if none all packages will be processed)',
+ )
+
+ # List all checks
+ sp.add_parser('list', help='list available checks and exits')
+
+
+def configs(parser, args):
+ reports = spack.audit.run_group(args.subcommand)
+ _process_reports(reports)
+
+
+def packages(parser, args):
+ pkgs = args.name or spack.repo.path.all_package_names()
+ reports = spack.audit.run_group(args.subcommand, pkgs=pkgs)
+ _process_reports(reports)
+
+
+def packages_https(parser, args):
+
+ # Since packages takes a long time, --all is required without name
+ if not args.check_all and not args.name:
+ tty.die("Please specify one or more packages to audit, or --all.")
+
+ pkgs = args.name or spack.repo.path.all_package_names()
+ reports = spack.audit.run_group(args.subcommand, pkgs=pkgs)
+ _process_reports(reports)
+
+
+def list(parser, args):
+ for subcommand, check_tags in spack.audit.GROUPS.items():
+ print(cl.colorize('@*b{' + subcommand + '}:'))
+ for tag in check_tags:
+ audit_obj = spack.audit.CALLBACKS[tag]
+ print(' ' + audit_obj.description)
+ if args.verbose:
+ for idx, fn in enumerate(audit_obj.callbacks):
+ print(' {0}. '.format(idx + 1) + fn.__doc__)
+ print()
+ print()
+
+
+def audit(parser, args):
+ subcommands = {
+ 'configs': configs,
+ 'packages': packages,
+ 'packages-https': packages_https,
+ 'list': list
+ }
+ subcommands[args.subcommand](parser, args)
+
+
+def _process_reports(reports):
+ for check, errors in reports:
+ if errors:
+ msg = '{0}: {1} issue{2} found'.format(
+ check, len(errors), '' if len(errors) == 1 else 's'
+ )
+ header = '@*b{' + msg + '}'
+ print(cl.colorize(header))
+ for idx, error in enumerate(errors):
+ print(str(idx + 1) + '. ' + str(error))
+ raise SystemExit(1)
+ else:
+ msg = '{0}: 0 issues found.'.format(check)
+ header = '@*b{' + msg + '}'
+ print(cl.colorize(header))
diff --git a/lib/spack/spack/cmd/blame.py b/lib/spack/spack/cmd/blame.py
index b806058aec..f0d71d838e 100644
--- a/lib/spack/spack/cmd/blame.py
+++ b/lib/spack/spack/cmd/blame.py
@@ -1,21 +1,22 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import re
+import sys
import llnl.util.tty as tty
-from llnl.util.lang import pretty_date
from llnl.util.filesystem import working_dir
+from llnl.util.lang import pretty_date
from llnl.util.tty.colify import colify_table
import spack.paths
import spack.repo
-from spack.util.executable import which
+import spack.util.spack_json as sjson
from spack.cmd import spack_is_git_repo
-
+from spack.util.executable import which
description = "show contributors to packages"
section = "developer"
@@ -33,12 +34,57 @@ def setup_parser(subparser):
view_group.add_argument(
'-g', '--git', dest='view', action='store_const', const='git',
help='show git blame output instead of summary')
+ subparser.add_argument(
+ "--json", action="store_true", default=False,
+ help="output blame as machine-readable json records")
subparser.add_argument(
'package_or_file', help='name of package to show contributions for, '
'or path to a file in the spack repo')
+def print_table(rows, last_mod, total_lines, emails):
+ """
+ Given a set of rows with authors and lines, print a table.
+ """
+ table = [['LAST_COMMIT', 'LINES', '%', 'AUTHOR', 'EMAIL']]
+ for author, nlines in rows:
+ table += [[
+ pretty_date(last_mod[author]),
+ nlines,
+ round(nlines / float(total_lines) * 100, 1),
+ author,
+ emails[author]]]
+
+ table += [[''] * 5]
+ table += [[pretty_date(max(last_mod.values())), total_lines, '100.0'] +
+ [''] * 3]
+
+ colify_table(table)
+
+
+def dump_json(rows, last_mod, total_lines, emails):
+ """
+ Dump the blame as a json object to the terminal.
+ """
+ result = {}
+ authors = []
+ for author, nlines in rows:
+ authors.append({
+ "last_commit": pretty_date(last_mod[author]),
+ "lines": nlines,
+ "percentage": round(nlines / float(total_lines) * 100, 1),
+ "author": author,
+ "email": emails[author]
+ })
+
+ result['authors'] = authors
+ result["totals"] = {"last_commit": pretty_date(max(last_mod.values())),
+ "lines": total_lines, "percentage": "100.0"}
+
+ sjson.dump(result, sys.stdout)
+
+
def blame(parser, args):
# make sure this is a git repo
if not spack_is_git_repo():
@@ -96,18 +142,10 @@ def blame(parser, args):
else: # args.view == 'percent'
rows = sorted(counts.items(), key=lambda t: t[1], reverse=True)
- # Print a nice table with authors and emails
- table = [['LAST_COMMIT', 'LINES', '%', 'AUTHOR', 'EMAIL']]
- for author, nlines in rows:
- table += [[
- pretty_date(last_mod[author]),
- nlines,
- round(nlines / float(total_lines) * 100, 1),
- author,
- emails[author]]]
-
- table += [[''] * 5]
- table += [[pretty_date(max(last_mod.values())), total_lines, '100.0'] +
- [''] * 3]
+ # Dump as json
+ if args.json:
+ dump_json(rows, last_mod, total_lines, emails)
- colify_table(table)
+ # Print a nice table with authors and emails
+ else:
+ print_table(rows, last_mod, total_lines, emails)
diff --git a/lib/spack/spack/cmd/bootstrap.py b/lib/spack/spack/cmd/bootstrap.py
new file mode 100644
index 0000000000..ae3e1b7639
--- /dev/null
+++ b/lib/spack/spack/cmd/bootstrap.py
@@ -0,0 +1,220 @@
+# Copyright 2013-2021 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 __future__ import print_function
+
+import os.path
+import shutil
+
+import llnl.util.tty
+import llnl.util.tty.color
+
+import spack.cmd.common.arguments
+import spack.config
+import spack.main
+import spack.util.path
+
+description = "manage bootstrap configuration"
+section = "system"
+level = "long"
+
+
+def _add_scope_option(parser):
+ scopes = spack.config.scopes()
+ scopes_metavar = spack.config.scopes_metavar
+ parser.add_argument(
+ '--scope', choices=scopes, metavar=scopes_metavar,
+ help="configuration scope to read/modify"
+ )
+
+
+def setup_parser(subparser):
+ sp = subparser.add_subparsers(dest='subcommand')
+
+ enable = sp.add_parser('enable', help='enable bootstrapping')
+ _add_scope_option(enable)
+
+ disable = sp.add_parser('disable', help='disable bootstrapping')
+ _add_scope_option(disable)
+
+ reset = sp.add_parser(
+ 'reset', help='reset bootstrapping configuration to Spack defaults'
+ )
+ spack.cmd.common.arguments.add_common_arguments(
+ reset, ['yes_to_all']
+ )
+
+ root = sp.add_parser(
+ 'root', help='get/set the root bootstrap directory'
+ )
+ _add_scope_option(root)
+ root.add_argument(
+ 'path', nargs='?', default=None,
+ help='set the bootstrap directory to this value'
+ )
+
+ list = sp.add_parser(
+ 'list', help='list the methods available for bootstrapping'
+ )
+ _add_scope_option(list)
+
+ trust = sp.add_parser(
+ 'trust', help='trust a bootstrapping method'
+ )
+ _add_scope_option(trust)
+ trust.add_argument(
+ 'name', help='name of the method to be trusted'
+ )
+
+ untrust = sp.add_parser(
+ 'untrust', help='untrust a bootstrapping method'
+ )
+ _add_scope_option(untrust)
+ untrust.add_argument(
+ 'name', help='name of the method to be untrusted'
+ )
+
+
+def _enable_or_disable(args):
+ # Set to True if we called "enable", otherwise set to false
+ value = args.subcommand == 'enable'
+ spack.config.set('bootstrap:enable', value, scope=args.scope)
+
+
+def _reset(args):
+ if not args.yes_to_all:
+ msg = [
+ "Bootstrapping configuration is being reset to Spack's defaults. "
+ "Current configuration will be lost.\n",
+ "Do you want to continue?"
+ ]
+ ok_to_continue = llnl.util.tty.get_yes_or_no(
+ ''.join(msg), default=True
+ )
+ if not ok_to_continue:
+ raise RuntimeError('Aborting')
+
+ for scope in spack.config.config.file_scopes:
+ # The default scope should stay untouched
+ if scope.name == 'defaults':
+ continue
+
+ # If we are in an env scope we can't delete a file, but the best we
+ # can do is nullify the corresponding configuration
+ if (scope.name.startswith('env') and
+ spack.config.get('bootstrap', scope=scope.name)):
+ spack.config.set('bootstrap', {}, scope=scope.name)
+ continue
+
+ # If we are outside of an env scope delete the bootstrap.yaml file
+ bootstrap_yaml = os.path.join(scope.path, 'bootstrap.yaml')
+ backup_file = bootstrap_yaml + '.bkp'
+ if os.path.exists(bootstrap_yaml):
+ shutil.move(bootstrap_yaml, backup_file)
+
+
+def _root(args):
+ if args.path:
+ spack.config.set('bootstrap:root', args.path, scope=args.scope)
+
+ root = spack.config.get('bootstrap:root', default=None, scope=args.scope)
+ if root:
+ root = spack.util.path.canonicalize_path(root)
+ print(root)
+
+
+def _list(args):
+ sources = spack.config.get(
+ 'bootstrap:sources', default=None, scope=args.scope
+ )
+
+ if not sources:
+ llnl.util.tty.msg(
+ "No method available for bootstrapping Spack's dependencies"
+ )
+ return
+
+ def _print_method(source, trusted):
+ color = llnl.util.tty.color
+
+ def fmt(header, content):
+ header_fmt = "@*b{{{0}:}} {1}"
+ color.cprint(header_fmt.format(header, content))
+
+ trust_str = "@*y{UNKNOWN}"
+ if trusted is True:
+ trust_str = "@*g{TRUSTED}"
+ elif trusted is False:
+ trust_str = "@*r{UNTRUSTED}"
+
+ fmt("Name", source['name'] + ' ' + trust_str)
+ print()
+ fmt(" Type", source['type'])
+ print()
+
+ info_lines = ['\n']
+ for key, value in source.get('info', {}).items():
+ info_lines.append(' ' * 4 + '@*{{{0}}}: {1}\n'.format(key, value))
+ if len(info_lines) > 1:
+ fmt(" Info", ''.join(info_lines))
+
+ description_lines = ['\n']
+ for line in source['description'].split('\n'):
+ description_lines.append(' ' * 4 + line + '\n')
+
+ fmt(" Description", ''.join(description_lines))
+
+ trusted = spack.config.get('bootstrap:trusted', {})
+ for s in sources:
+ _print_method(s, trusted.get(s['name'], None))
+
+
+def _write_trust_state(args, value):
+ name = args.name
+ sources = spack.config.get('bootstrap:sources')
+
+ matches = [s for s in sources if s['name'] == name]
+ if not matches:
+ names = [s['name'] for s in sources]
+ msg = ('there is no bootstrapping method named "{0}". Valid '
+ 'method names are: {1}'.format(name, ', '.join(names)))
+ raise RuntimeError(msg)
+
+ if len(matches) > 1:
+ msg = ('there is more than one bootstrapping method named "{0}". '
+ 'Please delete all methods but one from bootstrap.yaml '
+ 'before proceeding').format(name)
+ raise RuntimeError(msg)
+
+ # Setting the scope explicitly is needed to not copy over to a new scope
+ # the entire default configuration for bootstrap.yaml
+ scope = args.scope or spack.config.default_modify_scope('bootstrap')
+ spack.config.add(
+ 'bootstrap:trusted:{0}:{1}'.format(name, str(value)), scope=scope
+ )
+
+
+def _trust(args):
+ _write_trust_state(args, value=True)
+ msg = '"{0}" is now trusted for bootstrapping'
+ llnl.util.tty.msg(msg.format(args.name))
+
+
+def _untrust(args):
+ _write_trust_state(args, value=False)
+ msg = '"{0}" is now untrusted and will not be used for bootstrapping'
+ llnl.util.tty.msg(msg.format(args.name))
+
+
+def bootstrap(parser, args):
+ callbacks = {
+ 'enable': _enable_or_disable,
+ 'disable': _enable_or_disable,
+ 'reset': _reset,
+ 'root': _root,
+ 'list': _list,
+ 'trust': _trust,
+ 'untrust': _untrust
+ }
+ callbacks[args.subcommand](args)
diff --git a/lib/spack/spack/cmd/build_env.py b/lib/spack/spack/cmd/build_env.py
index ef8b1f6e6b..fc9f95f5ba 100644
--- a/lib/spack/spack/cmd/build_env.py
+++ b/lib/spack/spack/cmd/build_env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/buildcache.py b/lib/spack/spack/cmd/buildcache.py
index 025de653c5..b14652aaee 100644
--- a/lib/spack/spack/cmd/buildcache.py
+++ b/lib/spack/spack/cmd/buildcache.py
@@ -1,35 +1,37 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-
+import argparse
import os
import shutil
import sys
+import tempfile
import llnl.util.tty as tty
+
import spack.architecture
import spack.binary_distribution as bindist
import spack.cmd
import spack.cmd.common.arguments as arguments
+import spack.config
import spack.environment as ev
+import spack.fetch_strategy as fs
import spack.hash_types as ht
import spack.mirror
import spack.relocate
import spack.repo
import spack.spec
import spack.store
-import spack.config
-import spack.repo
-import spack.store
+import spack.util.crypto
import spack.util.url as url_util
-
+import spack.util.web as web_util
+from spack.cmd import display_specs
from spack.error import SpecError
-from spack.spec import Spec, save_dependency_spec_yamls
+from spack.spec import Spec, save_dependency_specfiles
+from spack.stage import Stage
from spack.util.string import plural
-from spack.cmd import display_specs
-
description = "create, download and install binary packages"
section = "packaging"
level = "long"
@@ -73,8 +75,9 @@ def setup_parser(subparser):
create.add_argument('--rebuild-index', action='store_true',
default=False, help="Regenerate buildcache index " +
"after building package(s)")
- create.add_argument('-y', '--spec-yaml', default=None,
- help='Create buildcache entry for spec from yaml file')
+ create.add_argument('--spec-file', default=None,
+ help=('Create buildcache entry for spec from json or ' +
+ 'yaml file'))
create.add_argument('--only', default='package,dependencies',
dest='things_to_install',
choices=['package', 'dependencies'],
@@ -100,6 +103,8 @@ def setup_parser(subparser):
install.add_argument('-o', '--otherarch', action='store_true',
help="install specs from other architectures" +
" instead of default platform and OS")
+ # This argument is needed by the bootstrapping logic to verify checksums
+ install.add_argument('--sha256', help=argparse.SUPPRESS)
arguments.add_common_arguments(install, ['specs'])
install.set_defaults(func=installtarball)
@@ -159,8 +164,9 @@ def setup_parser(subparser):
help='Check single spec instead of release specs file')
check.add_argument(
- '-y', '--spec-yaml', default=None,
- help='Check single spec from yaml file instead of release specs file')
+ '--spec-file', default=None,
+ help=('Check single spec from json or yaml file instead of release ' +
+ 'specs file'))
check.add_argument(
'--rebuild-on-error', default=False, action='store_true',
@@ -169,14 +175,15 @@ def setup_parser(subparser):
check.set_defaults(func=check_binaries)
- # Download tarball and spec.yaml
+ # Download tarball and specfile
dltarball = subparsers.add_parser('download', help=get_tarball.__doc__)
dltarball.add_argument(
'-s', '--spec', default=None,
help="Download built tarball for spec from mirror")
dltarball.add_argument(
- '-y', '--spec-yaml', default=None,
- help="Download built tarball for spec (from yaml file) from mirror")
+ '--spec-file', default=None,
+ help=("Download built tarball for spec (from json or yaml file) " +
+ "from mirror"))
dltarball.add_argument(
'-p', '--path', default=None,
help="Path to directory where tarball should be downloaded")
@@ -192,26 +199,27 @@ def setup_parser(subparser):
'-s', '--spec', default=None,
help='Spec string for which buildcache name is desired')
getbuildcachename.add_argument(
- '-y', '--spec-yaml', default=None,
- help='Path to spec yaml file for which buildcache name is desired')
+ '--spec-file', default=None,
+ help=('Path to spec json or yaml file for which buildcache name is ' +
+ 'desired'))
getbuildcachename.set_defaults(func=get_buildcache_name)
# Given the root spec, save the yaml of the dependent spec to a file
- saveyaml = subparsers.add_parser('save-yaml',
- help=save_spec_yamls.__doc__)
- saveyaml.add_argument(
+ savespecfile = subparsers.add_parser('save-specfile',
+ help=save_specfiles.__doc__)
+ savespecfile.add_argument(
'--root-spec', default=None,
help='Root spec of dependent spec')
- saveyaml.add_argument(
- '--root-spec-yaml', default=None,
- help='Path to yaml file containing root spec of dependent spec')
- saveyaml.add_argument(
+ savespecfile.add_argument(
+ '--root-specfile', default=None,
+ help='Path to json or yaml file containing root spec of dependent spec')
+ savespecfile.add_argument(
'-s', '--specs', default=None,
help='List of dependent specs for which saved yaml is desired')
- saveyaml.add_argument(
- '-y', '--yaml-dir', default=None,
+ savespecfile.add_argument(
+ '--specfile-dir', default=None,
help='Path to directory where spec yamls should be saved')
- saveyaml.set_defaults(func=save_spec_yamls)
+ savespecfile.set_defaults(func=save_specfiles)
# Copy buildcache from some directory to another mirror url
copy = subparsers.add_parser('copy', help=buildcache_copy.__doc__)
@@ -219,13 +227,44 @@ def setup_parser(subparser):
'--base-dir', default=None,
help='Path to mirror directory (root of existing buildcache)')
copy.add_argument(
- '--spec-yaml', default=None,
- help='Path to spec yaml file representing buildcache entry to copy')
+ '--spec-file', default=None,
+ help=('Path to spec json or yaml file representing buildcache entry to' +
+ ' copy'))
copy.add_argument(
'--destination-url', default=None,
help='Destination mirror url')
copy.set_defaults(func=buildcache_copy)
+ # Sync buildcache entries from one mirror to another
+ sync = subparsers.add_parser('sync', help=buildcache_sync.__doc__)
+ source = sync.add_mutually_exclusive_group(required=True)
+ source.add_argument('--src-directory',
+ metavar='DIRECTORY',
+ type=str,
+ help="Source mirror as a local file path")
+ source.add_argument('--src-mirror-name',
+ metavar='MIRROR_NAME',
+ type=str,
+ help="Name of the source mirror")
+ source.add_argument('--src-mirror-url',
+ metavar='MIRROR_URL',
+ type=str,
+ help="URL of the source mirror")
+ dest = sync.add_mutually_exclusive_group(required=True)
+ dest.add_argument('--dest-directory',
+ metavar='DIRECTORY',
+ type=str,
+ help="Destination mirror as a local file path")
+ dest.add_argument('--dest-mirror-name',
+ metavar='MIRROR_NAME',
+ type=str,
+ help="Name of the destination mirror")
+ dest.add_argument('--dest-mirror-url',
+ metavar='MIRROR_URL',
+ type=str,
+ help="URL of the destination mirror")
+ sync.set_defaults(func=buildcache_sync)
+
# Update buildcache index without copying any additional packages
update_index = subparsers.add_parser(
'update-index', help=buildcache_update_index.__doc__)
@@ -242,12 +281,13 @@ def find_matching_specs(pkgs, allow_multiple_matches=False, env=None):
concretized specs given from cli
Args:
- pkgs (string): spec to be matched against installed packages
+ pkgs (str): spec to be matched against installed packages
allow_multiple_matches (bool): if True multiple matches are admitted
- env (Environment): active environment, or ``None`` if there is not one
+ env (spack.environment.Environment or None): active environment, or ``None``
+ if there is not one
Return:
- list of specs
+ list: list of specs
"""
hashes = env.all_hashes() if env else None
@@ -331,16 +371,19 @@ def match_downloaded_specs(pkgs, allow_multiple_matches=False, force=False,
return specs_from_cli
-def _createtarball(env, spec_yaml=None, packages=None, add_spec=True,
+def _createtarball(env, spec_file=None, packages=None, add_spec=True,
add_deps=True, output_location=os.getcwd(),
signing_key=None, force=False, make_relative=False,
unsigned=False, allow_root=False, rebuild_index=False):
- if spec_yaml:
- with open(spec_yaml, 'r') as fd:
- yaml_text = fd.read()
- tty.debug('createtarball read spec yaml:')
- tty.debug(yaml_text)
- s = Spec.from_yaml(yaml_text)
+ if spec_file:
+ with open(spec_file, 'r') as fd:
+ specfile_contents = fd.read()
+ tty.debug('createtarball read specfile contents:')
+ tty.debug(specfile_contents)
+ if spec_file.endswith('.json'):
+ s = Spec.from_json(specfile_contents)
+ else:
+ s = Spec.from_yaml(specfile_contents)
package = '/{0}'.format(s.dag_hash())
matches = find_matching_specs(package, env=env)
@@ -353,7 +396,7 @@ def _createtarball(env, spec_yaml=None, packages=None, add_spec=True,
else:
tty.die("build cache file creation requires at least one" +
" installed package spec, an active environment," +
- " or else a path to a yaml file containing a spec" +
+ " or else a path to a json or yaml file containing a spec" +
" to install")
specs = set()
@@ -422,7 +465,7 @@ def createtarball(args):
"""create a binary package from an existing install"""
# restrict matching to current environment if one is active
- env = ev.get_env(args, 'buildcache create')
+ env = ev.active_environment()
output_location = None
if args.directory:
@@ -462,7 +505,7 @@ def createtarball(args):
add_spec = ('package' in args.things_to_install)
add_deps = ('dependencies' in args.things_to_install)
- _createtarball(env, spec_yaml=args.spec_yaml, packages=args.specs,
+ _createtarball(env, spec_file=args.spec_file, packages=args.specs,
add_spec=add_spec, add_deps=add_deps,
output_location=output_location, signing_key=args.key,
force=args.force, make_relative=args.rel,
@@ -497,6 +540,15 @@ def install_tarball(spec, args):
else:
tarball = bindist.download_tarball(spec)
if tarball:
+ if args.sha256:
+ checker = spack.util.crypto.Checker(args.sha256)
+ msg = ('cannot verify checksum for "{0}"'
+ ' [expected={1}]')
+ msg = msg.format(tarball, args.sha256)
+ if not checker.check(tarball):
+ raise spack.binary_distribution.NoChecksumException(msg)
+ tty.debug('Verified SHA256 checksum of the build cache')
+
tty.msg('Installing buildcache for spec %s' % spec.format())
bindist.extract_tarball(spec, tarball, args.allow_root,
args.unsigned, args.force)
@@ -554,10 +606,10 @@ def check_binaries(args):
its result, specifically, if the exit code is non-zero, then at least
one of the indicated specs needs to be rebuilt.
"""
- if args.spec or args.spec_yaml:
+ if args.spec or args.spec_file:
specs = [get_concrete_spec(args)]
else:
- env = ev.get_env(args, 'buildcache', required=True)
+ env = spack.cmd.require_active_env(cmd_name='buildcache')
env.concretize()
specs = env.all_specs()
@@ -591,15 +643,16 @@ def download_buildcache_files(concrete_spec, local_dest, require_cdashid,
files_to_fetch = [
{
- 'url': tarball_path_name,
+ 'url': [tarball_path_name],
'path': local_tarball_path,
'required': True,
}, {
- 'url': bindist.tarball_name(concrete_spec, '.spec.yaml'),
+ 'url': [bindist.tarball_name(concrete_spec, '.spec.json'),
+ bindist.tarball_name(concrete_spec, '.spec.yaml')],
'path': local_dest,
'required': True,
}, {
- 'url': bindist.tarball_name(concrete_spec, '.cdashid'),
+ 'url': [bindist.tarball_name(concrete_spec, '.cdashid')],
'path': local_dest,
'required': require_cdashid,
},
@@ -613,9 +666,9 @@ def get_tarball(args):
command uses the process exit code to indicate its result, specifically,
a non-zero exit code indicates that the command failed to download at
least one of the required buildcache components. Normally, just the
- tarball and .spec.yaml files are required, but if the --require-cdashid
+ tarball and .spec.json files are required, but if the --require-cdashid
argument was provided, then a .cdashid file is also required."""
- if not args.spec and not args.spec_yaml:
+ if not args.spec and not args.spec_file:
tty.msg('No specs provided, exiting.')
sys.exit(0)
@@ -632,7 +685,7 @@ def get_tarball(args):
def get_concrete_spec(args):
spec_str = args.spec
- spec_yaml_path = args.spec_yaml
+ spec_yaml_path = args.spec_file
if not spec_str and not spec_yaml_path:
tty.msg('Must provide either spec string or path to ' +
@@ -664,14 +717,14 @@ def get_buildcache_name(args):
sys.exit(0)
-def save_spec_yamls(args):
+def save_specfiles(args):
"""Get full spec for dependencies, relative to root spec, and write them
to files in the specified output directory. Uses exit code to signal
success or failure. An exit code of zero means the command was likely
successful. If any errors or exceptions are encountered, or if expected
command-line arguments are not provided, then the exit code will be
non-zero."""
- if not args.root_spec and not args.root_spec_yaml:
+ if not args.root_spec and not args.root_specfile:
tty.msg('No root spec provided, exiting.')
sys.exit(1)
@@ -679,20 +732,20 @@ def save_spec_yamls(args):
tty.msg('No dependent specs provided, exiting.')
sys.exit(1)
- if not args.yaml_dir:
+ if not args.specfile_dir:
tty.msg('No yaml directory provided, exiting.')
sys.exit(1)
- if args.root_spec_yaml:
- with open(args.root_spec_yaml) as fd:
- root_spec_as_yaml = fd.read()
+ if args.root_specfile:
+ with open(args.root_specfile) as fd:
+ root_spec_as_json = fd.read()
else:
root_spec = Spec(args.root_spec)
root_spec.concretize()
- root_spec_as_yaml = root_spec.to_yaml(hash=ht.build_hash)
-
- save_dependency_spec_yamls(
- root_spec_as_yaml, args.yaml_dir, args.specs.split())
+ root_spec_as_json = root_spec.to_json(hash=ht.build_hash)
+ spec_format = 'yaml' if args.root_specfile.endswith('yaml') else 'json'
+ save_dependency_specfiles(
+ root_spec_as_json, args.specfile_dir, args.specs.split(), spec_format)
sys.exit(0)
@@ -701,10 +754,10 @@ def buildcache_copy(args):
"""Copy a buildcache entry and all its files from one mirror, given as
'--base-dir', to some other mirror, specified as '--destination-url'.
The specific buildcache entry to be copied from one location to the
- other is identified using the '--spec-yaml' argument."""
+ other is identified using the '--spec-file' argument."""
# TODO: This sub-command should go away once #11117 is merged
- if not args.spec_yaml:
+ if not args.spec_file:
tty.msg('No spec yaml provided, exiting.')
sys.exit(1)
@@ -724,12 +777,12 @@ def buildcache_copy(args):
sys.exit(1)
try:
- with open(args.spec_yaml, 'r') as fd:
+ with open(args.spec_file, 'r') as fd:
spec = Spec.from_yaml(fd.read())
except Exception as e:
tty.debug(e)
tty.error('Unable to concrectize spec from yaml {0}'.format(
- args.spec_yaml))
+ args.spec_file))
sys.exit(1)
dest_root_path = dest_url
@@ -744,10 +797,15 @@ def buildcache_copy(args):
tarball_dest_path = os.path.join(dest_root_path, tarball_rel_path)
specfile_rel_path = os.path.join(
- build_cache_dir, bindist.tarball_name(spec, '.spec.yaml'))
+ build_cache_dir, bindist.tarball_name(spec, '.spec.json'))
specfile_src_path = os.path.join(args.base_dir, specfile_rel_path)
specfile_dest_path = os.path.join(dest_root_path, specfile_rel_path)
+ specfile_rel_path_yaml = os.path.join(
+ build_cache_dir, bindist.tarball_name(spec, '.spec.yaml'))
+ specfile_src_path_yaml = os.path.join(args.base_dir, specfile_rel_path)
+ specfile_dest_path_yaml = os.path.join(dest_root_path, specfile_rel_path)
+
cdashidfile_rel_path = os.path.join(
build_cache_dir, bindist.tarball_name(spec, '.cdashid'))
cdashid_src_path = os.path.join(args.base_dir, cdashidfile_rel_path)
@@ -763,25 +821,142 @@ def buildcache_copy(args):
tty.msg('Copying {0}'.format(specfile_rel_path))
shutil.copyfile(specfile_src_path, specfile_dest_path)
+ tty.msg('Copying {0}'.format(specfile_rel_path_yaml))
+ shutil.copyfile(specfile_src_path_yaml, specfile_dest_path_yaml)
+
# Copy the cdashid file (if exists) to the destination mirror
if os.path.exists(cdashid_src_path):
tty.msg('Copying {0}'.format(cdashidfile_rel_path))
shutil.copyfile(cdashid_src_path, cdashid_dest_path)
-def buildcache_update_index(args):
- """Update a buildcache index."""
- outdir = '.'
- if args.mirror_url:
- outdir = args.mirror_url
+def buildcache_sync(args):
+ """ Syncs binaries (and associated metadata) from one mirror to another.
+ Requires an active environment in order to know which specs to sync.
+
+ Args:
+ src (str): Source mirror URL
+ dest (str): Destination mirror URL
+ """
+ # Figure out the source mirror
+ source_location = None
+ if args.src_directory:
+ source_location = args.src_directory
+ scheme = url_util.parse(source_location, scheme='<missing>').scheme
+ if scheme != '<missing>':
+ raise ValueError(
+ '"--src-directory" expected a local path; got a URL, instead')
+ # Ensure that the mirror lookup does not mistake this for named mirror
+ source_location = 'file://' + source_location
+ elif args.src_mirror_name:
+ source_location = args.src_mirror_name
+ result = spack.mirror.MirrorCollection().lookup(source_location)
+ if result.name == "<unnamed>":
+ raise ValueError(
+ 'no configured mirror named "{name}"'.format(
+ name=source_location))
+ elif args.src_mirror_url:
+ source_location = args.src_mirror_url
+ scheme = url_util.parse(source_location, scheme='<missing>').scheme
+ if scheme == '<missing>':
+ raise ValueError(
+ '"{url}" is not a valid URL'.format(url=source_location))
+
+ src_mirror = spack.mirror.MirrorCollection().lookup(source_location)
+ src_mirror_url = url_util.format(src_mirror.fetch_url)
+
+ # Figure out the destination mirror
+ dest_location = None
+ if args.dest_directory:
+ dest_location = args.dest_directory
+ scheme = url_util.parse(dest_location, scheme='<missing>').scheme
+ if scheme != '<missing>':
+ raise ValueError(
+ '"--dest-directory" expected a local path; got a URL, instead')
+ # Ensure that the mirror lookup does not mistake this for named mirror
+ dest_location = 'file://' + dest_location
+ elif args.dest_mirror_name:
+ dest_location = args.dest_mirror_name
+ result = spack.mirror.MirrorCollection().lookup(dest_location)
+ if result.name == "<unnamed>":
+ raise ValueError(
+ 'no configured mirror named "{name}"'.format(
+ name=dest_location))
+ elif args.dest_mirror_url:
+ dest_location = args.dest_mirror_url
+ scheme = url_util.parse(dest_location, scheme='<missing>').scheme
+ if scheme == '<missing>':
+ raise ValueError(
+ '"{url}" is not a valid URL'.format(url=dest_location))
+
+ dest_mirror = spack.mirror.MirrorCollection().lookup(dest_location)
+ dest_mirror_url = url_util.format(dest_mirror.fetch_url)
+
+ # Get the active environment
+ env = spack.cmd.require_active_env(cmd_name='buildcache sync')
+
+ tty.msg('Syncing environment buildcache files from {0} to {1}'.format(
+ src_mirror_url, dest_mirror_url))
- mirror = spack.mirror.MirrorCollection().lookup(outdir)
+ build_cache_dir = bindist.build_cache_relative_path()
+ buildcache_rel_paths = []
+
+ tty.debug('Syncing the following specs:')
+ for s in env.all_specs():
+ tty.debug(' {0}{1}: {2}'.format(
+ '* ' if s in env.roots() else ' ', s.name, s.dag_hash()))
+
+ buildcache_rel_paths.extend([
+ os.path.join(
+ build_cache_dir, bindist.tarball_path_name(s, '.spack')),
+ os.path.join(
+ build_cache_dir, bindist.tarball_name(s, '.spec.yaml')),
+ os.path.join(
+ build_cache_dir, bindist.tarball_name(s, '.spec.json')),
+ os.path.join(
+ build_cache_dir, bindist.tarball_name(s, '.cdashid'))
+ ])
+
+ tmpdir = tempfile.mkdtemp()
+
+ try:
+ for rel_path in buildcache_rel_paths:
+ src_url = url_util.join(src_mirror_url, rel_path)
+ local_path = os.path.join(tmpdir, rel_path)
+ dest_url = url_util.join(dest_mirror_url, rel_path)
+
+ tty.debug('Copying {0} to {1} via {2}'.format(
+ src_url, dest_url, local_path))
+
+ stage = Stage(src_url,
+ name="temporary_file",
+ path=os.path.dirname(local_path),
+ keep=True)
+
+ try:
+ stage.create()
+ stage.fetch()
+ web_util.push_to_url(
+ local_path,
+ dest_url,
+ keep_original=True)
+ except fs.FetchError as e:
+ tty.debug('spack buildcache unable to sync {0}'.format(rel_path))
+ tty.debug(e)
+ finally:
+ stage.destroy()
+ finally:
+ shutil.rmtree(tmpdir)
+
+
+def update_index(mirror_url, update_keys=False):
+ mirror = spack.mirror.MirrorCollection().lookup(mirror_url)
outdir = url_util.format(mirror.push_url)
bindist.generate_package_index(
url_util.join(outdir, bindist.build_cache_relative_path()))
- if args.keys:
+ if update_keys:
keys_url = url_util.join(outdir,
bindist.build_cache_relative_path(),
bindist.build_cache_keys_relative_path())
@@ -789,6 +964,15 @@ def buildcache_update_index(args):
bindist.generate_key_index(keys_url)
+def buildcache_update_index(args):
+ """Update a buildcache index."""
+ outdir = '.'
+ if args.mirror_url:
+ outdir = args.mirror_url
+
+ update_index(outdir, update_keys=args.keys)
+
+
def buildcache(parser, args):
if args.func:
args.func(args)
diff --git a/lib/spack/spack/cmd/cd.py b/lib/spack/spack/cmd/cd.py
index cbbe9db04d..f0f3ba9eb3 100644
--- a/lib/spack/spack/cmd/cd.py
+++ b/lib/spack/spack/cmd/cd.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/checksum.py b/lib/spack/spack/cmd/checksum.py
index 188deb1149..96e36b39b6 100644
--- a/lib/spack/spack/cmd/checksum.py
+++ b/lib/spack/spack/cmd/checksum.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ import spack.repo
import spack.stage
import spack.util.crypto
from spack.util.naming import valid_fully_qualified_module_name
-from spack.version import ver, Version
+from spack.version import Version, ver
description = "checksum available versions of a package"
section = "packaging"
@@ -63,6 +63,16 @@ def checksum(parser, args):
if not url_dict:
tty.die("Could not find any versions for {0}".format(pkg.name))
+ # And ensure the specified version URLs take precedence, if available
+ try:
+ explicit_dict = {}
+ for v in pkg.versions:
+ if not v.isdevelop():
+ explicit_dict[v] = pkg.url_for_version(v)
+ url_dict.update(explicit_dict)
+ except spack.package.NoURLError:
+ pass
+
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 or len(url_dict) == 1),
diff --git a/lib/spack/spack/cmd/ci.py b/lib/spack/spack/cmd/ci.py
index 3dd97e53b0..b8ed1fb27d 100644
--- a/lib/spack/spack/cmd/ci.py
+++ b/lib/spack/spack/cmd/ci.py
@@ -1,11 +1,15 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import json
import os
import shutil
+import stat
+import subprocess
import sys
+import tempfile
from six.moves.urllib.parse import urlencode
@@ -14,15 +18,21 @@ import llnl.util.tty as tty
import spack.binary_distribution as bindist
import spack.ci as spack_ci
import spack.cmd.buildcache as buildcache
+import spack.config as cfg
import spack.environment as ev
import spack.hash_types as ht
-import spack.util.executable as exe
-
+import spack.mirror
+import spack.util.spack_yaml as syaml
+import spack.util.url as url_util
+import spack.util.web as web_util
description = "manage continuous integration pipelines"
section = "build"
level = "long"
+CI_REBUILD_INSTALL_BASE_ARGS = ['spack', '-d', '-v']
+INSTALL_FAIL_CODE = 1
+
def get_env_var(variable_name):
if variable_name in os.environ:
@@ -54,13 +64,52 @@ def setup_parser(subparser):
'--dependencies', action='store_true', default=False,
help="(Experimental) disable DAG scheduling; use "
' "plain" dependencies.')
+ prune_group = generate.add_mutually_exclusive_group()
+ prune_group.add_argument(
+ '--prune-dag', action='store_true', dest='prune_dag',
+ default=True, help="""Do not generate jobs for specs already up to
+date on the mirror""")
+ prune_group.add_argument(
+ '--no-prune-dag', action='store_false', dest='prune_dag',
+ default=True, help="""Generate jobs for specs already up to date
+on the mirror""")
+ generate.add_argument(
+ '--check-index-only', action='store_true', dest='index_only',
+ default=False, help="""Spack always check specs against configured
+binary mirrors when generating the pipeline, regardless of whether or not
+DAG pruning is enabled. This flag controls whether it might attempt to
+fetch remote spec files directly (ensuring no spec is rebuilt if it
+is present on the mirror), or whether it should reduce pipeline generation time
+by assuming all remote buildcache indices are up to date and only use those
+to determine whether a given spec is up to date on mirrors. In the latter
+case, specs might be needlessly rebuilt if remote buildcache indices are out
+of date.""")
+ generate.add_argument(
+ '--artifacts-root', default=None,
+ help="""Path to root of artifacts directory. If provided, concrete
+environment files (spack.yaml, spack.lock) will be generated under this
+path and their location sent to generated child jobs via the custom job
+variable SPACK_CONCRETE_ENVIRONMENT_PATH.""")
generate.set_defaults(func=ci_generate)
- # Check a spec against mirror. Rebuild, create buildcache and push to
- # mirror (if necessary).
+ # Rebuild the buildcache index associated with the mirror in the
+ # active, gitlab-enabled environment.
+ index = subparsers.add_parser('rebuild-index', help=ci_reindex.__doc__)
+ index.set_defaults(func=ci_reindex)
+
+ # Handle steps of a ci build/rebuild
rebuild = subparsers.add_parser('rebuild', help=ci_rebuild.__doc__)
rebuild.set_defaults(func=ci_rebuild)
+ # Facilitate reproduction of a failed CI build job
+ reproduce = subparsers.add_parser('reproduce-build',
+ help=ci_reproduce.__doc__)
+ reproduce.add_argument('job_url', help='Url of job artifacts bundle')
+ reproduce.add_argument('--working-dir', help="Where to unpack artifacts",
+ default=os.path.join(os.getcwd(), 'ci_reproduction'))
+
+ reproduce.set_defaults(func=ci_reproduce)
+
def ci_generate(args):
"""Generate jobs file from a spack environment file containing CI info.
@@ -69,12 +118,15 @@ def ci_generate(args):
for creating a build group for the generated workload and registering
all generated jobs under that build group. If this environment
variable is not set, no build group will be created on CDash."""
- env = ev.get_env(args, 'ci generate', required=True)
+ env = spack.cmd.require_active_env(cmd_name='ci generate')
output_file = args.output_file
copy_yaml_to = args.copy_to
run_optimizer = args.optimize
use_dependencies = args.dependencies
+ prune_dag = args.prune_dag
+ index_only = args.index_only
+ artifacts_root = args.artifacts_root
if not output_file:
output_file = os.path.abspath(".gitlab-ci.yml")
@@ -86,8 +138,9 @@ def ci_generate(args):
# Generate the jobs
spack_ci.generate_gitlab_ci_yaml(
- env, True, output_file, run_optimizer=run_optimizer,
- use_dependencies=use_dependencies)
+ env, True, output_file, prune_dag=prune_dag,
+ check_index_only=index_only, run_optimizer=run_optimizer,
+ use_dependencies=use_dependencies, artifacts_root=artifacts_root)
if copy_yaml_to:
copy_to_dir = os.path.dirname(copy_yaml_to)
@@ -96,57 +149,77 @@ def ci_generate(args):
shutil.copyfile(output_file, copy_yaml_to)
+def ci_reindex(args):
+ """Rebuild the buildcache index associated with the mirror in the
+ active, gitlab-enabled environment. """
+ env = spack.cmd.require_active_env(cmd_name='ci rebuild-index')
+ yaml_root = ev.config_dict(env.yaml)
+
+ if 'mirrors' not in yaml_root or len(yaml_root['mirrors'].values()) < 1:
+ tty.die('spack ci rebuild-index requires an env containing a mirror')
+
+ ci_mirrors = yaml_root['mirrors']
+ mirror_urls = [url for url in ci_mirrors.values()]
+ remote_mirror_url = mirror_urls[0]
+
+ buildcache.update_index(remote_mirror_url, update_keys=True)
+
+
def ci_rebuild(args):
- """This command represents a gitlab-ci job, corresponding to a single
- release spec. As such it must first decide whether or not the spec it
- has been assigned to build is up to date on the remote binary mirror.
- If it is not (i.e. the full_hash of the spec as computed locally does
- not match the one stored in the metadata on the mirror), this script
- will build the package, create a binary cache for it, and then push all
- related files to the remote binary mirror. This script also
- communicates with a remote CDash instance to share status on the package
- build process.
-
- The spec to be built by this job is represented by essentially two
- pieces of information: 1) a root spec (possibly already concrete, but
- maybe still needing to be concretized) and 2) a package name used to
- index that root spec (once the root is, for certain, concrete)."""
- env = ev.get_env(args, 'ci rebuild', required=True)
+ """Check a single spec against the remote mirror, and rebuild it from
+ source if the mirror does not contain the full hash match of the spec
+ as computed locally. """
+ env = spack.cmd.require_active_env(cmd_name='ci rebuild')
+
+ # Make sure the environment is "gitlab-enabled", or else there's nothing
+ # to do.
yaml_root = ev.config_dict(env.yaml)
+ gitlab_ci = None
+ if 'gitlab-ci' in yaml_root:
+ gitlab_ci = yaml_root['gitlab-ci']
+
+ if not gitlab_ci:
+ tty.die('spack ci rebuild requires an env containing gitlab-ci cfg')
- # The following environment variables should defined in the CI
- # infrastructre (or some other external source) in the case that the
- # remote mirror is an S3 bucket. The AWS keys are used to upload
- # buildcache entries to S3 using the boto3 api.
- #
- # AWS_ACCESS_KEY_ID
- # AWS_SECRET_ACCESS_KEY
- # S3_ENDPOINT_URL (only needed for non-AWS S3 implementations)
- #
- # If present, we will import the SPACK_SIGNING_KEY using the
- # "spack gpg trust" command, so it can be used both for verifying
- # dependency buildcache entries and signing the buildcache entry we create
- # for our target pkg.
- #
- # SPACK_SIGNING_KEY
-
- ci_artifact_dir = get_env_var('CI_PROJECT_DIR')
+ # Grab the environment variables we need. These either come from the
+ # pipeline generation step ("spack ci generate"), where they were written
+ # out as variables, or else provided by GitLab itself.
+ pipeline_artifacts_dir = get_env_var('SPACK_ARTIFACTS_ROOT')
+ job_log_dir = get_env_var('SPACK_JOB_LOG_DIR')
+ repro_dir = get_env_var('SPACK_JOB_REPRO_DIR')
+ local_mirror_dir = get_env_var('SPACK_LOCAL_MIRROR_DIR')
+ concrete_env_dir = get_env_var('SPACK_CONCRETE_ENV_DIR')
+ ci_pipeline_id = get_env_var('CI_PIPELINE_ID')
+ ci_job_name = get_env_var('CI_JOB_NAME')
signing_key = get_env_var('SPACK_SIGNING_KEY')
root_spec = get_env_var('SPACK_ROOT_SPEC')
job_spec_pkg_name = get_env_var('SPACK_JOB_SPEC_PKG_NAME')
compiler_action = get_env_var('SPACK_COMPILER_ACTION')
cdash_build_name = get_env_var('SPACK_CDASH_BUILD_NAME')
related_builds = get_env_var('SPACK_RELATED_BUILDS_CDASH')
- pr_env_var = get_env_var('SPACK_IS_PR_PIPELINE')
+ spack_pipeline_type = get_env_var('SPACK_PIPELINE_TYPE')
pr_mirror_url = get_env_var('SPACK_PR_MIRROR_URL')
+ remote_mirror_url = get_env_var('SPACK_REMOTE_MIRROR_URL')
+
+ # Construct absolute paths relative to current $CI_PROJECT_DIR
+ ci_project_dir = get_env_var('CI_PROJECT_DIR')
+ pipeline_artifacts_dir = os.path.join(
+ ci_project_dir, pipeline_artifacts_dir)
+ job_log_dir = os.path.join(ci_project_dir, job_log_dir)
+ repro_dir = os.path.join(ci_project_dir, repro_dir)
+ local_mirror_dir = os.path.join(ci_project_dir, local_mirror_dir)
+ concrete_env_dir = os.path.join(ci_project_dir, concrete_env_dir)
+
+ # Debug print some of the key environment variables we should have received
+ tty.debug('pipeline_artifacts_dir = {0}'.format(pipeline_artifacts_dir))
+ tty.debug('root_spec = {0}'.format(root_spec))
+ tty.debug('remote_mirror_url = {0}'.format(remote_mirror_url))
+ tty.debug('job_spec_pkg_name = {0}'.format(job_spec_pkg_name))
+ tty.debug('compiler_action = {0}'.format(compiler_action))
- gitlab_ci = None
- if 'gitlab-ci' in yaml_root:
- gitlab_ci = yaml_root['gitlab-ci']
-
- if not gitlab_ci:
- tty.die('spack ci rebuild requires an env containing gitlab-ci cfg')
-
+ # Query the environment manifest to find out whether we're reporting to a
+ # CDash instance, and if so, gather some information from the manifest to
+ # support that task.
enable_cdash = False
if 'cdash' in yaml_root:
enable_cdash = True
@@ -166,248 +239,401 @@ def ci_rebuild(args):
tty.debug('related_builds = {0}'.format(related_builds))
tty.debug('job_spec_buildgroup = {0}'.format(job_spec_buildgroup))
- remote_mirror_url = None
- if 'mirrors' in yaml_root:
- ci_mirrors = yaml_root['mirrors']
- mirror_urls = [url for url in ci_mirrors.values()]
- remote_mirror_url = mirror_urls[0]
+ # Is this a pipeline run on a spack PR or a merge to develop? It might
+ # be neither, e.g. a pipeline run on some environment repository.
+ spack_is_pr_pipeline = spack_pipeline_type == 'spack_pull_request'
+ spack_is_develop_pipeline = spack_pipeline_type == 'spack_protected_branch'
- if not remote_mirror_url:
- tty.die('spack ci rebuild requires an env containing a mirror')
+ tty.debug('Pipeline type - PR: {0}, develop: {1}'.format(
+ spack_is_pr_pipeline, spack_is_develop_pipeline))
- tty.debug('ci_artifact_dir = {0}'.format(ci_artifact_dir))
- tty.debug('root_spec = {0}'.format(root_spec))
- tty.debug('remote_mirror_url = {0}'.format(remote_mirror_url))
- tty.debug('job_spec_pkg_name = {0}'.format(job_spec_pkg_name))
- tty.debug('compiler_action = {0}'.format(compiler_action))
+ # Figure out what is our temporary storage mirror: Is it artifacts
+ # buildcache? Or temporary-storage-url-prefix? In some cases we need to
+ # force something or pipelines might not have a way to propagate build
+ # artifacts from upstream to downstream jobs.
+ pipeline_mirror_url = None
- cdash_report_dir = os.path.join(ci_artifact_dir, 'cdash_report')
- temp_dir = os.path.join(ci_artifact_dir, 'jobs_scratch_dir')
- job_log_dir = os.path.join(temp_dir, 'logs')
- spec_dir = os.path.join(temp_dir, 'specs')
-
- local_mirror_dir = os.path.join(ci_artifact_dir, 'local_mirror')
- build_cache_dir = os.path.join(local_mirror_dir, 'build_cache')
-
- spack_is_pr_pipeline = True if pr_env_var == 'True' else False
+ temp_storage_url_prefix = None
+ if 'temporary-storage-url-prefix' in gitlab_ci:
+ temp_storage_url_prefix = gitlab_ci['temporary-storage-url-prefix']
+ pipeline_mirror_url = url_util.join(
+ temp_storage_url_prefix, ci_pipeline_id)
enable_artifacts_mirror = False
- artifact_mirror_url = None
if 'enable-artifacts-buildcache' in gitlab_ci:
enable_artifacts_mirror = gitlab_ci['enable-artifacts-buildcache']
- if enable_artifacts_mirror or spack_is_pr_pipeline:
- # If this is a PR pipeline, we will override the setting to
- # make sure that artifacts buildcache is enabled. Otherwise
- # jobs will not have binary deps available since we do not
- # allow pushing binaries to remote mirror during PR pipelines
+ if (enable_artifacts_mirror or (spack_is_pr_pipeline and
+ not enable_artifacts_mirror and not temp_storage_url_prefix)):
+ # If you explicitly enabled the artifacts buildcache feature, or
+ # if this is a PR pipeline but you did not enable either of the
+ # per-pipeline temporary storage features, we force the use of
+ # artifacts buildcache. Otherwise jobs will not have binary
+ # dependencies from previous stages available since we do not
+ # allow pushing binaries to the remote mirror during PR pipelines.
enable_artifacts_mirror = True
- artifact_mirror_url = 'file://' + local_mirror_dir
+ pipeline_mirror_url = 'file://' + local_mirror_dir
mirror_msg = 'artifact buildcache enabled, mirror url: {0}'.format(
- artifact_mirror_url)
+ pipeline_mirror_url)
tty.debug(mirror_msg)
- # Clean out scratch directory from last stage
- if os.path.exists(temp_dir):
- shutil.rmtree(temp_dir)
+ # Whatever form of root_spec we got, use it to get a map giving us concrete
+ # specs for this job and all of its dependencies.
+ spec_map = spack_ci.get_concrete_specs(
+ env, root_spec, job_spec_pkg_name, related_builds, compiler_action)
+ job_spec = spec_map[job_spec_pkg_name]
+
+ job_spec_yaml_file = '{0}.yaml'.format(job_spec_pkg_name)
+ job_spec_yaml_path = os.path.join(repro_dir, job_spec_yaml_file)
+
+ # To provide logs, cdash reports, etc for developer download/perusal,
+ # these things have to be put into artifacts. This means downstream
+ # jobs that "need" this job will get those artifacts too. So here we
+ # need to clean out the artifacts we may have got from upstream jobs.
+ cdash_report_dir = os.path.join(pipeline_artifacts_dir, 'cdash_report')
if os.path.exists(cdash_report_dir):
shutil.rmtree(cdash_report_dir)
- os.makedirs(job_log_dir)
- os.makedirs(spec_dir)
+ if os.path.exists(job_log_dir):
+ shutil.rmtree(job_log_dir)
+
+ if os.path.exists(repro_dir):
+ shutil.rmtree(repro_dir)
- job_spec_yaml_path = os.path.join(
- spec_dir, '{0}.yaml'.format(job_spec_pkg_name))
- job_log_file = os.path.join(job_log_dir, 'pipeline_log.txt')
+ # Now that we removed them if they existed, create the directories we
+ # need for storing artifacts. The cdash_report directory will be
+ # created internally if needed.
+ os.makedirs(job_log_dir)
+ os.makedirs(repro_dir)
+
+ # Copy the concrete environment files to the repro directory so we can
+ # expose them as artifacts and not conflict with the concrete environment
+ # files we got as artifacts from the upstream pipeline generation job.
+ # Try to cast a slightly wider net too, and hopefully get the generated
+ # pipeline yaml. If we miss it, the user will still be able to go to the
+ # pipeline generation job and get it from there.
+ target_dirs = [
+ concrete_env_dir,
+ pipeline_artifacts_dir
+ ]
+
+ for dir_to_list in target_dirs:
+ for file_name in os.listdir(dir_to_list):
+ src_file = os.path.join(dir_to_list, file_name)
+ if os.path.isfile(src_file):
+ dst_file = os.path.join(repro_dir, file_name)
+ shutil.copyfile(src_file, dst_file)
+
+ # If signing key was provided via "SPACK_SIGNING_KEY", then try to
+ # import it.
+ if signing_key:
+ spack_ci.import_signing_key(signing_key)
+
+ # Depending on the specifics of this job, we might need to turn on the
+ # "config:install_missing compilers" option (to build this job spec
+ # with a bootstrapped compiler), or possibly run "spack compiler find"
+ # (to build a bootstrap compiler or one of its deps in a
+ # compiler-agnostic way), or maybe do nothing at all (to build a spec
+ # using a compiler already installed on the target system).
+ spack_ci.configure_compilers(compiler_action)
+
+ # Write this job's spec yaml into the reproduction directory, and it will
+ # also be used in the generated "spack install" command to install the spec
+ tty.debug('job concrete spec path: {0}'.format(job_spec_yaml_path))
+ with open(job_spec_yaml_path, 'w') as fd:
+ fd.write(job_spec.to_yaml(hash=ht.build_hash))
+
+ # Write the concrete root spec yaml into the reproduction directory
+ root_spec_yaml_path = os.path.join(repro_dir, 'root.yaml')
+ with open(root_spec_yaml_path, 'w') as fd:
+ fd.write(spec_map['root'].to_yaml(hash=ht.build_hash))
+
+ # Write some other details to aid in reproduction into an artifact
+ repro_file = os.path.join(repro_dir, 'repro.json')
+ repro_details = {
+ 'job_name': ci_job_name,
+ 'job_spec_yaml': job_spec_yaml_file,
+ 'root_spec_yaml': 'root.yaml',
+ 'ci_project_dir': ci_project_dir
+ }
+ with open(repro_file, 'w') as fd:
+ fd.write(json.dumps(repro_details))
+
+ # Write information about spack into an artifact in the repro dir
+ spack_info = spack_ci.get_spack_info()
+ spack_info_file = os.path.join(repro_dir, 'spack_info.txt')
+ with open(spack_info_file, 'w') as fd:
+ fd.write('\n{0}\n'.format(spack_info))
+
+ # If we decided there should be a temporary storage mechanism, add that
+ # mirror now so it's used when we check for a full hash match already
+ # built for this spec.
+ if pipeline_mirror_url:
+ spack.mirror.add(spack_ci.TEMP_STORAGE_MIRROR_NAME,
+ pipeline_mirror_url,
+ cfg.default_modify_scope())
cdash_build_id = None
cdash_build_stamp = None
- with open(job_log_file, 'w') as log_fd:
- os.dup2(log_fd.fileno(), sys.stdout.fileno())
- os.dup2(log_fd.fileno(), sys.stderr.fileno())
+ # Check configured mirrors for a built spec with a matching full hash
+ matches = bindist.get_mirrors_for_spec(
+ job_spec, full_hash_match=True, index_only=False)
+
+ if matches:
+ # Got a full hash match on at least one configured mirror. All
+ # matches represent the fully up-to-date spec, so should all be
+ # equivalent. If artifacts mirror is enabled, we just pick one
+ # of the matches and download the buildcache files from there to
+ # the artifacts, so they're available to be used by dependent
+ # jobs in subsequent stages.
+ tty.msg('No need to rebuild {0}, found full hash match at: '.format(
+ job_spec_pkg_name))
+ for match in matches:
+ tty.msg(' {0}'.format(match['mirror_url']))
+ if enable_artifacts_mirror:
+ matching_mirror = matches[0]['mirror_url']
+ build_cache_dir = os.path.join(local_mirror_dir, 'build_cache')
+ tty.debug('Getting {0} buildcache from {1}'.format(
+ job_spec_pkg_name, matching_mirror))
+ tty.debug('Downloading to {0}'.format(build_cache_dir))
+ buildcache.download_buildcache_files(
+ job_spec, build_cache_dir, False, matching_mirror)
+
+ # Now we are done and successful
+ sys.exit(0)
+
+ # No full hash match anywhere means we need to rebuild spec
+
+ # Start with spack arguments
+ install_args = [base_arg for base_arg in CI_REBUILD_INSTALL_BASE_ARGS]
+
+ config = cfg.get('config')
+ if not config['verify_ssl']:
+ install_args.append('-k')
+
+ install_args.extend([
+ 'install',
+ '--keep-stage',
+ '--require-full-hash-match',
+ ])
+
+ can_verify = spack_ci.can_verify_binaries()
+ verify_binaries = can_verify and spack_is_pr_pipeline is False
+ if not verify_binaries:
+ install_args.append('--no-check-signature')
+
+ # If CDash reporting is enabled, we first register this build with
+ # the specified CDash instance, then relate the build to those of
+ # its dependencies.
+ if enable_cdash:
+ tty.debug('CDash: Registering build')
+ (cdash_build_id,
+ cdash_build_stamp) = spack_ci.register_cdash_build(
+ cdash_build_name, cdash_base_url, cdash_project,
+ cdash_site, job_spec_buildgroup)
+
+ if cdash_build_id is not None:
+ cdash_upload_url = '{0}/submit.php?project={1}'.format(
+ cdash_base_url, cdash_project_enc)
+
+ install_args.extend([
+ '--cdash-upload-url', cdash_upload_url,
+ '--cdash-build', cdash_build_name,
+ '--cdash-site', cdash_site,
+ '--cdash-buildstamp', cdash_build_stamp,
+ ])
+
+ tty.debug('CDash: Relating build with dependency builds')
+ spack_ci.relate_cdash_builds(
+ spec_map, cdash_base_url, cdash_build_id, cdash_project,
+ [pipeline_mirror_url, pr_mirror_url, remote_mirror_url])
+
+ # A compiler action of 'FIND_ANY' means we are building a bootstrap
+ # compiler or one of its deps.
+ # TODO: when compilers are dependencies, we should include --no-add
+ if compiler_action != 'FIND_ANY':
+ install_args.append('--no-add')
+
+ # TODO: once we have the concrete spec registry, use the DAG hash
+ # to identify the spec to install, rather than the concrete spec
+ # yaml file.
+ install_args.extend(['-f', job_spec_yaml_path])
+
+ tty.debug('Installing {0} from source'.format(job_spec.name))
+ tty.debug('spack install arguments: {0}'.format(
+ install_args))
+
+ # Write the install command to a shell script
+ with open('install.sh', 'w') as fd:
+ fd.write('#!/bin/bash\n\n')
+ fd.write('\n# spack install command\n')
+ fd.write(' '.join(['"{0}"'.format(i) for i in install_args]))
+ fd.write('\n')
+
+ st = os.stat('install.sh')
+ os.chmod('install.sh', st.st_mode | stat.S_IEXEC)
+
+ install_copy_path = os.path.join(repro_dir, 'install.sh')
+ shutil.copyfile('install.sh', install_copy_path)
+
+ # Run the generated install.sh shell script as if it were being run in
+ # a login shell.
+ try:
+ install_process = subprocess.Popen(['bash', '-l', './install.sh'])
+ install_process.wait()
+ install_exit_code = install_process.returncode
+ except (ValueError, subprocess.CalledProcessError, OSError) as inst:
+ tty.error('Encountered error running install script')
+ tty.error(inst)
+
+ # Now do the post-install tasks
+ tty.debug('spack install exited {0}'.format(install_exit_code))
+
+ # If a spec fails to build in a spack develop pipeline, we add it to a
+ # list of known broken full hashes. This allows spack PR pipelines to
+ # avoid wasting compute cycles attempting to build those hashes.
+ if install_exit_code == INSTALL_FAIL_CODE and spack_is_develop_pipeline:
+ tty.debug('Install failed on develop')
+ if 'broken-specs-url' in gitlab_ci:
+ broken_specs_url = gitlab_ci['broken-specs-url']
+ dev_fail_hash = job_spec.full_hash()
+ broken_spec_path = url_util.join(broken_specs_url, dev_fail_hash)
+ tty.msg('Reporting broken develop build as: {0}'.format(
+ broken_spec_path))
+ tmpdir = tempfile.mkdtemp()
+ empty_file_path = os.path.join(tmpdir, 'empty.txt')
+
+ broken_spec_details = {
+ 'broken-spec': {
+ 'job-url': get_env_var('CI_JOB_URL'),
+ 'pipeline-url': get_env_var('CI_PIPELINE_URL'),
+ 'concrete-spec-yaml': job_spec.to_dict(hash=ht.full_hash)
+ }
+ }
- current_directory = os.getcwd()
- tty.debug('Current working directory: {0}, Contents:'.format(
- current_directory))
- directory_list = os.listdir(current_directory)
- for next_entry in directory_list:
- tty.debug(' {0}'.format(next_entry))
+ try:
+ with open(empty_file_path, 'w') as efd:
+ efd.write(syaml.dump(broken_spec_details))
+ web_util.push_to_url(
+ empty_file_path,
+ broken_spec_path,
+ keep_original=False,
+ extra_args={'ContentType': 'text/plain'})
+ except Exception as err:
+ # If we got some kind of S3 (access denied or other connection
+ # error), the first non boto-specific class in the exception
+ # hierarchy is Exception. Just print a warning and return
+ msg = 'Error writing to broken specs list {0}: {1}'.format(
+ broken_spec_path, err)
+ tty.warn(msg)
+ finally:
+ shutil.rmtree(tmpdir)
- tty.debug('job concrete spec path: {0}'.format(job_spec_yaml_path))
+ # We generated the "spack install ..." command to "--keep-stage", copy
+ # any logs from the staging directory to artifacts now
+ spack_ci.copy_stage_logs_to_artifacts(job_spec, job_log_dir)
- if signing_key:
- spack_ci.import_signing_key(signing_key)
+ # Create buildcache on remote mirror, either on pr-specific mirror or
+ # on the main mirror defined in the gitlab-enabled spack environment
+ if spack_is_pr_pipeline:
+ buildcache_mirror_url = pr_mirror_url
+ else:
+ buildcache_mirror_url = remote_mirror_url
+ # If the install succeeded, create a buildcache entry for this job spec
+ # and push it to one or more mirrors. If the install did not succeed,
+ # print out some instructions on how to reproduce this build failure
+ # outside of the pipeline environment.
+ if install_exit_code == 0:
can_sign = spack_ci.can_sign_binaries()
sign_binaries = can_sign and spack_is_pr_pipeline is False
- can_verify = spack_ci.can_verify_binaries()
- verify_binaries = can_verify and spack_is_pr_pipeline is False
-
- spack_ci.configure_compilers(compiler_action)
-
- spec_map = spack_ci.get_concrete_specs(
- root_spec, job_spec_pkg_name, related_builds, compiler_action)
-
- job_spec = spec_map[job_spec_pkg_name]
-
- tty.debug('Here is the concrete spec: {0}'.format(job_spec))
-
- with open(job_spec_yaml_path, 'w') as fd:
- fd.write(job_spec.to_yaml(hash=ht.build_hash))
-
- tty.debug('Done writing concrete spec')
-
- # DEBUG
- with open(job_spec_yaml_path) as fd:
- tty.debug('Wrote spec file, read it back. Contents:')
- tty.debug(fd.read())
-
- # DEBUG the root spec
- root_spec_yaml_path = os.path.join(spec_dir, 'root.yaml')
- with open(root_spec_yaml_path, 'w') as fd:
- fd.write(spec_map['root'].to_yaml(hash=ht.build_hash))
-
- # TODO: Refactor the spack install command so it's easier to use from
- # python modules. Currently we use "exe.which('spack')" to make it
- # easier to install packages from here, but it introduces some
- # problems, e.g. if we want the spack command to have access to the
- # mirrors we're configuring, then we have to use the "spack" command
- # to add the mirrors too, which in turn means that any code here *not*
- # using the spack command does *not* have access to the mirrors.
- spack_cmd = exe.which('spack')
- mirrors_to_check = {
- 'ci_remote_mirror': remote_mirror_url,
- }
-
- def add_mirror(mirror_name, mirror_url):
- m_args = ['mirror', 'add', mirror_name, mirror_url]
- tty.debug('Adding mirror: spack {0}'.format(m_args))
- mirror_add_output = spack_cmd(*m_args)
- # Workaround: Adding the mirrors above, using "spack_cmd" makes
- # sure they're available later when we use "spack_cmd" to install
- # the package. But then we also need to add them to this dict
- # below, so they're available in this process (we end up having to
- # pass them to "bindist.get_mirrors_for_spec()")
- mirrors_to_check[mirror_name] = mirror_url
- tty.debug('spack mirror add output: {0}'.format(mirror_add_output))
-
- # Configure mirrors
- if pr_mirror_url:
- add_mirror('ci_pr_mirror', pr_mirror_url)
+ # Create buildcache in either the main remote mirror, or in the
+ # per-PR mirror, if this is a PR pipeline
+ if buildcache_mirror_url:
+ spack_ci.push_mirror_contents(
+ env, job_spec, job_spec_yaml_path, buildcache_mirror_url,
+ sign_binaries)
+
+ if cdash_build_id:
+ tty.debug('Writing cdashid ({0}) to remote mirror: {1}'.format(
+ cdash_build_id, buildcache_mirror_url))
+ spack_ci.write_cdashid_to_mirror(
+ cdash_build_id, job_spec, buildcache_mirror_url)
+
+ # Create another copy of that buildcache in the per-pipeline
+ # temporary storage mirror (this is only done if either
+ # artifacts buildcache is enabled or a temporary storage url
+ # prefix is set)
+ if pipeline_mirror_url:
+ spack_ci.push_mirror_contents(
+ env, job_spec, job_spec_yaml_path, pipeline_mirror_url,
+ sign_binaries)
+
+ if cdash_build_id:
+ tty.debug('Writing cdashid ({0}) to remote mirror: {1}'.format(
+ cdash_build_id, pipeline_mirror_url))
+ spack_ci.write_cdashid_to_mirror(
+ cdash_build_id, job_spec, pipeline_mirror_url)
+
+ # If this is a develop pipeline, check if the spec that we just built is
+ # on the broken-specs list. If so, remove it.
+ if spack_is_develop_pipeline and 'broken-specs-url' in gitlab_ci:
+ broken_specs_url = gitlab_ci['broken-specs-url']
+ just_built_hash = job_spec.full_hash()
+ broken_spec_path = url_util.join(broken_specs_url, just_built_hash)
+ if web_util.url_exists(broken_spec_path):
+ tty.msg('Removing {0} from the list of broken specs'.format(
+ broken_spec_path))
+ try:
+ web_util.remove_url(broken_spec_path)
+ except Exception as err:
+ # If we got some kind of S3 (access denied or other connection
+ # error), the first non boto-specific class in the exception
+ # hierarchy is Exception. Just print a warning and return
+ msg = 'Error removing {0} from broken specs list: {1}'.format(
+ broken_spec_path, err)
+ tty.warn(msg)
- if enable_artifacts_mirror:
- add_mirror('ci_artifact_mirror', artifact_mirror_url)
-
- tty.debug('listing spack mirrors:')
- spack_cmd('mirror', 'list')
- spack_cmd('config', 'blame', 'mirrors')
-
- # Checks all mirrors for a built spec with a matching full hash
- matches = bindist.get_mirrors_for_spec(
- job_spec, force=False, full_hash_match=True,
- mirrors_to_check=mirrors_to_check)
-
- if matches:
- # Got at full hash match on at least one configured mirror. All
- # matches represent the fully up-to-date spec, so should all be
- # equivalent. If artifacts mirror is enabled, we just pick one
- # of the matches and download the buildcache files from there to
- # the artifacts, so they're available to be used by dependent
- # jobs in subsequent stages.
- tty.debug('No need to rebuild {0}'.format(job_spec_pkg_name))
- if enable_artifacts_mirror:
- matching_mirror = matches[0]['mirror_url']
- tty.debug('Getting {0} buildcache from {1}'.format(
- job_spec_pkg_name, matching_mirror))
- tty.debug('Downloading to {0}'.format(build_cache_dir))
- buildcache.download_buildcache_files(
- job_spec, build_cache_dir, True, matching_mirror)
- else:
- # No full hash match anywhere means we need to rebuild spec
-
- # Build up common install arguments
- install_args = [
- '-d', '-v', '-k', 'install',
- '--keep-stage',
- '--require-full-hash-match',
- ]
-
- if not verify_binaries:
- install_args.append('--no-check-signature')
-
- # Add arguments to create + register a new build on CDash (if
- # enabled)
- if enable_cdash:
- tty.debug('Registering build with CDash')
- (cdash_build_id,
- cdash_build_stamp) = spack_ci.register_cdash_build(
- cdash_build_name, cdash_base_url, cdash_project,
- cdash_site, job_spec_buildgroup)
-
- cdash_upload_url = '{0}/submit.php?project={1}'.format(
- cdash_base_url, cdash_project_enc)
-
- install_args.extend([
- '--cdash-upload-url', cdash_upload_url,
- '--cdash-build', cdash_build_name,
- '--cdash-site', cdash_site,
- '--cdash-buildstamp', cdash_build_stamp,
- ])
-
- install_args.append(job_spec_yaml_path)
-
- tty.debug('Installing {0} from source'.format(job_spec.name))
+ else:
+ tty.debug('spack install exited non-zero, will not create buildcache')
- try:
- tty.debug('spack install arguments: {0}'.format(
- install_args))
- spack_cmd(*install_args)
- finally:
- spack_ci.copy_stage_logs_to_artifacts(job_spec, job_log_dir)
+ api_root_url = get_env_var('CI_API_V4_URL')
+ ci_project_id = get_env_var('CI_PROJECT_ID')
+ ci_job_id = get_env_var('CI_JOB_ID')
- # Create buildcache on remote mirror, either on pr-specific
- # mirror or on mirror defined in spack environment
- if spack_is_pr_pipeline:
- buildcache_mirror_url = pr_mirror_url
- else:
- buildcache_mirror_url = remote_mirror_url
+ repro_job_url = '{0}/projects/{1}/jobs/{2}/artifacts'.format(
+ api_root_url, ci_project_id, ci_job_id)
- try:
- spack_ci.push_mirror_contents(
- env, job_spec, job_spec_yaml_path, buildcache_mirror_url,
- cdash_build_id, sign_binaries)
- except Exception as inst:
- # If the mirror we're pushing to is on S3 and there's some
- # permissions problem, for example, we can't just target
- # that exception type here, since users of the
- # `spack ci rebuild' may not need or want any dependency
- # on boto3. So we use the first non-boto exception type
- # in the heirarchy:
- # boto3.exceptions.S3UploadFailedError
- # boto3.exceptions.Boto3Error
- # Exception
- # BaseException
- # object
- err_msg = 'Error msg: {0}'.format(inst)
- if 'Access Denied' in err_msg:
- tty.msg('Permission problem writing to mirror')
- tty.msg(err_msg)
-
- # Create another copy of that buildcache on "local artifact
- # mirror" (only done if artifacts buildcache is enabled)
- spack_ci.push_mirror_contents(env, job_spec, job_spec_yaml_path,
- artifact_mirror_url, cdash_build_id,
- sign_binaries)
-
- # Relate this build to its dependencies on CDash (if enabled)
- if enable_cdash:
- spack_ci.relate_cdash_builds(
- spec_map, cdash_base_url, cdash_build_id, cdash_project,
- artifact_mirror_url or pr_mirror_url or remote_mirror_url)
+ # Control characters cause this to be printed in blue so it stands out
+ reproduce_msg = """
+
+\033[34mTo reproduce this build locally, run:
+
+ spack ci reproduce-build {0} [--working-dir <dir>]
+
+If this project does not have public pipelines, you will need to first:
+
+ export GITLAB_PRIVATE_TOKEN=<generated_token>
+
+... then follow the printed instructions.\033[0;0m
+
+""".format(repro_job_url)
+
+ print(reproduce_msg)
+
+ # Tie job success/failure to the success/failure of building the spec
+ return install_exit_code
+
+
+def ci_reproduce(args):
+ job_url = args.job_url
+ work_dir = args.working_dir
+
+ return spack_ci.reproduce_ci_job(job_url, work_dir)
def ci(parser, args):
if args.func:
- args.func(args)
+ return args.func(args)
diff --git a/lib/spack/spack/cmd/clean.py b/lib/spack/spack/cmd/clean.py
index 2e1ec1255f..ebcf7cc862 100644
--- a/lib/spack/spack/cmd/clean.py
+++ b/lib/spack/spack/cmd/clean.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,16 +9,16 @@ import shutil
import llnl.util.tty as tty
+import spack.bootstrap
import spack.caches
-import spack.config
-import spack.cmd.test
import spack.cmd.common.arguments as arguments
+import spack.cmd.test
+import spack.config
import spack.main
import spack.repo
import spack.stage
from spack.paths import lib_path, var_path
-
description = "remove temporary build files and/or downloaded archives"
section = "build"
level = "long"
@@ -103,7 +103,7 @@ def clean(parser, args):
if args.bootstrap:
msg = 'Removing software in "{0}"'
- tty.msg(msg.format(spack.paths.user_bootstrap_store))
- with spack.store.use_store(spack.paths.user_bootstrap_store):
+ tty.msg(msg.format(spack.bootstrap.store_path()))
+ with spack.bootstrap.ensure_bootstrap_configuration():
uninstall = spack.main.SpackCommand('uninstall')
uninstall('-a', '-y')
diff --git a/lib/spack/spack/cmd/clone.py b/lib/spack/spack/cmd/clone.py
index ecf5855dab..0ea9cf7ef1 100644
--- a/lib/spack/spack/cmd/clone.py
+++ b/lib/spack/spack/cmd/clone.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/commands.py b/lib/spack/spack/cmd/commands.py
index be934e0048..f58c0aab4b 100644
--- a/lib/spack/spack/cmd/commands.py
+++ b/lib/spack/spack/cmd/commands.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,9 @@ import sys
import llnl.util.filesystem as fs
import llnl.util.tty as tty
from llnl.util.argparsewriter import (
- ArgparseWriter, ArgparseRstWriter, ArgparseCompletionWriter
+ ArgparseCompletionWriter,
+ ArgparseRstWriter,
+ ArgparseWriter,
)
from llnl.util.tty.colify import colify
@@ -23,7 +25,6 @@ import spack.main
import spack.paths
from spack.main import section_descriptions
-
description = "list available spack commands"
section = "developer"
level = "long"
@@ -262,20 +263,7 @@ def _commands(parser, args):
if args.header and not os.path.exists(args.header):
tty.die("No such file: '%s'" % args.header)
- # if we're updating an existing file, only write output if a command
- # or the header is newer than the file.
if args.update:
- if os.path.exists(args.update):
- files = [
- spack.cmd.get_module(command).__file__.rstrip('c') # pyc -> py
- for command in spack.cmd.all_commands()]
- if args.header:
- files.append(args.header)
- last_update = os.path.getmtime(args.update)
- if not any(os.path.getmtime(f) > last_update for f in files):
- tty.msg('File is up to date: %s' % args.update)
- return
-
tty.msg('Updating file: %s' % args.update)
with open(args.update, 'w') as f:
prepend_header(args, f)
diff --git a/lib/spack/spack/cmd/common/__init__.py b/lib/spack/spack/cmd/common/__init__.py
index 35b802db48..6ff4faba7c 100644
--- a/lib/spack/spack/cmd/common/__init__.py
+++ b/lib/spack/spack/cmd/common/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,7 +22,7 @@ def shell_init_instructions(cmd, equivalent):
shell_specific = "{sh_arg}" in equivalent
msg = [
- "`%s` requires spack's shell support." % cmd,
+ "`%s` requires Spack's shell support." % cmd,
"",
"To set up shell support, run the command below for your shell.",
"",
@@ -49,5 +49,12 @@ def shell_init_instructions(cmd, equivalent):
else:
msg += [" " + equivalent]
+ msg += [
+ "",
+ "If you have already set up Spack's shell support but still receive",
+ "this message, please make sure to call Spack via the `spack` command",
+ "without any path components (such as `bin/spack`).",
+ ]
+
msg += ['']
tty.error(*msg)
diff --git a/lib/spack/spack/cmd/common/arguments.py b/lib/spack/spack/cmd/common/arguments.py
index e5c4c0dde8..40a30a2618 100644
--- a/lib/spack/spack/cmd/common/arguments.py
+++ b/lib/spack/spack/cmd/common/arguments.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import argparse
-import multiprocessing
import spack.cmd
import spack.config
@@ -102,22 +101,10 @@ class SetParallelJobs(argparse.Action):
'[expected a positive integer, got "{1}"]'
raise ValueError(msg.format(option_string, jobs))
- jobs = min(jobs, multiprocessing.cpu_count())
spack.config.set('config:build_jobs', jobs, scope='command_line')
setattr(namespace, 'jobs', jobs)
- @property
- def default(self):
- # This default is coded as a property so that look-up
- # of this value is done only on demand
- return min(spack.config.get('config:build_jobs', 16),
- multiprocessing.cpu_count())
-
- @default.setter
- def default(self, value):
- pass
-
class DeptypeAction(argparse.Action):
"""Creates a tuple of valid dependency types from a deptype argument."""
@@ -250,8 +237,8 @@ def very_long():
@arg
def tags():
return Args(
- '-t', '--tags', action='append',
- help='filter a package query by tags')
+ '-t', '--tag', action='append', dest='tags', metavar='TAG',
+ help='filter a package query by tag (multiple use allowed)')
@arg
@@ -267,6 +254,7 @@ def install_status():
'-I', '--install-status', action='store_true', default=False,
help='show install status of packages. packages can be: '
'installed [+], missing and needed by an installed package [-], '
+ 'installed in and upstream instance [^], '
'or not installed (no annotation)')
@@ -277,6 +265,13 @@ def no_checksum():
help="do not use checksums to verify downloaded files (unsafe)")
+@arg
+def deprecated():
+ return Args(
+ '--deprecated', action='store_true', default=False,
+ help='fetch deprecated versions without warning')
+
+
def add_cdash_args(subparser, add_help):
cdash_help = {}
if add_help:
diff --git a/lib/spack/spack/cmd/common/env_utility.py b/lib/spack/spack/cmd/common/env_utility.py
index a16cc3ba0d..29b402ff13 100644
--- a/lib/spack/spack/cmd/common/env_utility.py
+++ b/lib/spack/spack/cmd/common/env_utility.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,10 +8,11 @@ import argparse
import os
import llnl.util.tty as tty
+
import spack.build_environment as build_environment
-import spack.paths
import spack.cmd
import spack.cmd.common.arguments as arguments
+import spack.paths
from spack.util.environment import dump_environment, pickle_environment
@@ -53,6 +54,9 @@ def emulate_env_utility(cmd_name, context, args):
spec = args.spec[0]
cmd = args.spec[1:]
+ if not spec:
+ tty.die("spack %s requires a spec." % cmd_name)
+
specs = spack.cmd.parse_specs(spec, concretize=False)
if len(specs) > 1:
tty.die("spack %s only takes one spec." % cmd_name)
diff --git a/lib/spack/spack/cmd/compiler.py b/lib/spack/spack/cmd/compiler.py
index fb9e24ea76..3543025cc0 100644
--- a/lib/spack/spack/cmd/compiler.py
+++ b/lib/spack/spack/cmd/compiler.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,17 @@ from __future__ import print_function
import argparse
import sys
+
from six import iteritems
import llnl.util.tty as tty
-import spack.compilers
-import spack.config
-import spack.spec
from llnl.util.lang import index_by
from llnl.util.tty.colify import colify
from llnl.util.tty.color import colorize
-from spack.spec import CompilerSpec, ArchSpec
+
+import spack.compilers
+import spack.config
+import spack.spec
description = "manage compilers"
section = "system"
@@ -76,24 +77,13 @@ def compiler_find(args):
# None signals spack.compiler.find_compilers to use its default logic
paths = args.add_paths or None
- # Don't initialize compilers config via compilers.get_compiler_config.
- # Just let compiler_find do the
- # entire process and return an empty config from all_compilers
- # Default for any other process is init_config=True
- compilers = [c for c in spack.compilers.find_compilers(paths)]
- new_compilers = []
- for c in compilers:
- arch_spec = ArchSpec((None, c.operating_system, c.target))
- same_specs = spack.compilers.compilers_for_spec(
- c.spec, arch_spec, init_config=False)
-
- if not same_specs:
- new_compilers.append(c)
-
+ # Below scope=None because we want new compilers that don't appear
+ # in any other configuration.
+ new_compilers = spack.compilers.find_new_compilers(paths, scope=None)
if new_compilers:
- spack.compilers.add_compilers_to_config(new_compilers,
- scope=args.scope,
- init_config=False)
+ spack.compilers.add_compilers_to_config(
+ new_compilers, scope=args.scope, init_config=False
+ )
n = len(new_compilers)
s = 's' if n > 1 else ''
@@ -108,7 +98,7 @@ def compiler_find(args):
def compiler_remove(args):
- cspec = CompilerSpec(args.compiler_spec)
+ cspec = spack.spec.CompilerSpec(args.compiler_spec)
compilers = spack.compilers.compilers_for_spec(cspec, scope=args.scope)
if not compilers:
tty.die("No compilers match spec %s" % cspec)
@@ -126,7 +116,7 @@ def compiler_remove(args):
def compiler_info(args):
"""Print info about all compilers matching a spec."""
- cspec = CompilerSpec(args.compiler_spec)
+ cspec = spack.spec.CompilerSpec(args.compiler_spec)
compilers = spack.compilers.compilers_for_spec(cspec, scope=args.scope)
if not compilers:
diff --git a/lib/spack/spack/cmd/compilers.py b/lib/spack/spack/cmd/compilers.py
index c29e2257b7..b30b27233f 100644
--- a/lib/spack/spack/cmd/compilers.py
+++ b/lib/spack/spack/cmd/compilers.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/concretize.py b/lib/spack/spack/cmd/concretize.py
index d28f7b4a5d..433236b238 100644
--- a/lib/spack/spack/cmd/concretize.py
+++ b/lib/spack/spack/cmd/concretize.py
@@ -1,8 +1,9 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import spack.cmd
import spack.environment as ev
description = 'concretize an environment and write a lockfile'
@@ -14,11 +15,25 @@ def setup_parser(subparser):
subparser.add_argument(
'-f', '--force', action='store_true',
help="Re-concretize even if already concretized.")
+ subparser.add_argument(
+ '--test', default=None,
+ choices=['root', 'all'],
+ help="""Concretize with test dependencies. When 'root' is chosen, test
+dependencies are only added for the environment's root specs. When 'all' is
+chosen, test dependencies are enabled for all packages in the environment.""")
def concretize(parser, args):
- env = ev.get_env(args, 'concretize', required=True)
+ env = spack.cmd.require_active_env(cmd_name='concretize')
+
+ if args.test == 'all':
+ tests = True
+ elif args.test == 'root':
+ tests = [spec.name for spec in env.user_specs]
+ else:
+ tests = False
+
with env.write_transaction():
- concretized_specs = env.concretize(force=args.force)
+ concretized_specs = env.concretize(force=args.force, tests=tests)
ev.display_specs(concretized_specs)
env.write()
diff --git a/lib/spack/spack/cmd/config.py b/lib/spack/spack/cmd/config.py
index 2cd914ef89..2fc57a52c5 100644
--- a/lib/spack/spack/cmd/config.py
+++ b/lib/spack/spack/cmd/config.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,11 +10,14 @@ import shutil
import llnl.util.filesystem as fs
import llnl.util.tty as tty
-import spack.config
+
import spack.cmd.common.arguments
-import spack.schema.env
+import spack.config
import spack.environment as ev
+import spack.repo
+import spack.schema.env
import spack.schema.packages
+import spack.store
import spack.util.spack_yaml as syaml
from spack.util.editor import editor
@@ -73,6 +76,16 @@ def setup_parser(subparser):
help="file from which to set all config values"
)
+ prefer_upstream_parser = sp.add_parser(
+ 'prefer-upstream',
+ help='set package preferences from upstream')
+
+ prefer_upstream_parser.add_argument(
+ '--local', action='store_true', default=False,
+ help="Set packages preferences based on local installs, rather "
+ "than upstream."
+ )
+
remove_parser = sp.add_parser('remove', aliases=['rm'],
help='remove configuration parameters')
remove_parser.add_argument(
@@ -105,7 +118,7 @@ def _get_scope_and_section(args):
# w/no args and an active environment, point to env manifest
if not section:
- env = ev.get_env(args, 'config edit')
+ env = ev.active_environment()
if env:
scope = env.env_file_config_scope_name()
@@ -188,71 +201,11 @@ def config_add(args):
scope, section = _get_scope_and_section(args)
- # Updates from file
if args.file:
- # Get file as config dict
- data = spack.config.read_config_file(args.file)
- if any(k in data for k in spack.schema.env.keys):
- data = ev.config_dict(data)
-
- # update all sections from config dict
- # We have to iterate on keys to keep overrides from the file
- for section in data.keys():
- if section in spack.config.section_schemas.keys():
- # Special handling for compiler scope difference
- # Has to be handled after we choose a section
- if scope is None:
- scope = spack.config.default_modify_scope(section)
-
- value = data[section]
- existing = spack.config.get(section, scope=scope)
- new = spack.config.merge_yaml(existing, value)
-
- spack.config.set(section, new, scope)
+ spack.config.add_from_file(args.file, scope=scope)
if args.path:
- components = spack.config.process_config_path(args.path)
-
- has_existing_value = True
- path = ''
- override = False
- for idx, name in enumerate(components[:-1]):
- # First handle double colons in constructing path
- colon = '::' if override else ':' if path else ''
- path += colon + name
- if getattr(name, 'override', False):
- override = True
- else:
- override = False
-
- # Test whether there is an existing value at this level
- existing = spack.config.get(path, scope=scope)
-
- if existing is None:
- has_existing_value = False
- # We've nested further than existing config, so we need the
- # type information for validation to know how to handle bare
- # values appended to lists.
- existing = spack.config.get_valid_type(path)
-
- # construct value from this point down
- value = syaml.load_config(components[-1])
- for component in reversed(components[idx + 1:-1]):
- value = {component: value}
- break
-
- if has_existing_value:
- path, _, value = args.path.rpartition(':')
- value = syaml.load_config(value)
- existing = spack.config.get(path, scope=scope)
-
- # append values to lists
- if isinstance(existing, list) and not isinstance(value, list):
- value = [value]
-
- # merge value into existing
- new = spack.config.merge_yaml(existing, value)
- spack.config.set(path, new, scope)
+ spack.config.add(args.path, scope=scope)
def config_remove(args):
@@ -431,6 +384,79 @@ def config_revert(args):
tty.msg(msg.format(cfg_file))
+def config_prefer_upstream(args):
+ """Generate a packages config based on the configuration of all upstream
+ installs."""
+
+ scope = args.scope
+ if scope is None:
+ scope = spack.config.default_modify_scope('packages')
+
+ all_specs = set(spack.store.db.query(installed=True))
+ local_specs = set(spack.store.db.query_local(installed=True))
+ pref_specs = local_specs if args.local else all_specs - local_specs
+
+ conflicting_variants = set()
+
+ pkgs = {}
+ for spec in pref_specs:
+ # Collect all the upstream compilers and versions for this package.
+ pkg = pkgs.get(spec.name, {
+ 'version': [],
+ 'compiler': [],
+ })
+ pkgs[spec.name] = pkg
+
+ # We have no existing variant if this is our first added version.
+ existing_variants = pkg.get('variants',
+ None if not pkg['version'] else '')
+
+ version = spec.version.string
+ if version not in pkg['version']:
+ pkg['version'].append(version)
+
+ compiler = str(spec.compiler)
+ if compiler not in pkg['compiler']:
+ pkg['compiler'].append(compiler)
+
+ # Get and list all the variants that differ from the default.
+ variants = []
+ for var_name, variant in spec.variants.items():
+ if (var_name in ['patches']
+ or var_name not in spec.package.variants):
+ continue
+
+ if variant.value != spec.package.variants[var_name].default:
+ variants.append(str(variant))
+ variants.sort()
+ variants = ' '.join(variants)
+
+ if spec.name not in conflicting_variants:
+ # Only specify the variants if there's a single variant
+ # set across all versions/compilers.
+ if existing_variants is not None and existing_variants != variants:
+ conflicting_variants.add(spec.name)
+ pkg.pop('variants', None)
+ elif variants:
+ pkg['variants'] = variants
+
+ if conflicting_variants:
+ tty.warn(
+ "The following packages have multiple conflicting upstream "
+ "specs. You may have to specify, by "
+ "concretized hash, which spec you want when building "
+ "packages that depend on them:\n - {0}"
+ .format("\n - ".join(sorted(conflicting_variants))))
+
+ # Simply write the config to the specified file.
+ existing = spack.config.get('packages', scope=scope)
+ new = spack.config.merge_yaml(existing, pkgs)
+ spack.config.set('packages', new, scope)
+ config_file = spack.config.config.get_config_filename(scope, section)
+
+ tty.msg("Updated config at {0}".format(config_file))
+
+
def config(parser, args):
action = {
'get': config_get,
@@ -441,6 +467,7 @@ def config(parser, args):
'rm': config_remove,
'remove': config_remove,
'update': config_update,
- 'revert': config_revert
+ 'revert': config_revert,
+ 'prefer-upstream': config_prefer_upstream,
}
action[args.config_command](args)
diff --git a/lib/spack/spack/cmd/containerize.py b/lib/spack/spack/cmd/containerize.py
index cc2c001560..ea90b24b87 100644
--- a/lib/spack/spack/cmd/containerize.py
+++ b/lib/spack/spack/cmd/containerize.py
@@ -1,10 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import os.path
+
import spack.container
+import spack.monitor
description = ("creates recipes to build images for different"
" container runtimes")
@@ -12,6 +14,10 @@ section = "container"
level = "long"
+def setup_parser(subparser):
+ monitor_group = spack.monitor.get_monitor_group(subparser) # noqa
+
+
def containerize(parser, args):
config_dir = args.env_dir or os.getcwd()
config_file = os.path.abspath(os.path.join(config_dir, 'spack.yaml'))
@@ -21,5 +27,12 @@ def containerize(parser, args):
config = spack.container.validate(config_file)
+ # If we have a monitor request, add monitor metadata to config
+ if args.use_monitor:
+ config['spack']['monitor'] = {"disable_auth": args.monitor_disable_auth,
+ "host": args.monitor_host,
+ "keep_going": args.monitor_keep_going,
+ "prefix": args.monitor_prefix,
+ "tags": args.monitor_tags}
recipe = spack.container.recipe(config)
print(recipe)
diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py
index a31b9537b6..bccf3bf66d 100644
--- a/lib/spack/spack/cmd/create.py
+++ b/lib/spack/spack/cmd/create.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,16 +11,23 @@ import re
import llnl.util.tty as tty
from llnl.util.filesystem import mkdirp
-import spack.util.web
import spack.repo
import spack.stage
+import spack.util.web
from spack.spec import Spec
+from spack.url import (
+ UndetectableNameError,
+ UndetectableVersionError,
+ parse_name,
+ parse_version,
+)
from spack.util.editor import editor
-from spack.util.executable import which, ProcessError
-from spack.util.naming import mod_to_class
-from spack.util.naming import simplify_name, valid_fully_qualified_module_name
-from spack.url import UndetectableNameError, UndetectableVersionError
-from spack.url import parse_name, parse_version
+from spack.util.executable import ProcessError, which
+from spack.util.naming import (
+ mod_to_class,
+ simplify_name,
+ valid_fully_qualified_module_name,
+)
description = "create a new package file"
section = "packaging"
@@ -28,7 +35,7 @@ level = "short"
package_template = '''\
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -117,7 +124,7 @@ class PackageTemplate(BundlePackageTemplate):
make()
make('install')"""
- url_line = """ url = \"{url}\""""
+ url_line = ' url = "{url}"'
def __init__(self, name, url, versions):
super(PackageTemplate, self).__init__(name, versions)
@@ -270,14 +277,47 @@ class PythonPackageTemplate(PackageTemplate):
args = []
return args"""
- def __init__(self, name, *args, **kwargs):
+ def __init__(self, name, url, *args, **kwargs):
# If the user provided `--name py-numpy`, don't rename it py-py-numpy
if not name.startswith('py-'):
# Make it more obvious that we are renaming the package
tty.msg("Changing package name from {0} to py-{0}".format(name))
name = 'py-{0}'.format(name)
- super(PythonPackageTemplate, self).__init__(name, *args, **kwargs)
+ # Simple PyPI URLs:
+ # https://<hostname>/packages/<type>/<first character of project>/<project>/<download file>
+ # e.g. https://pypi.io/packages/source/n/numpy/numpy-1.19.4.zip
+ # e.g. https://www.pypi.io/packages/source/n/numpy/numpy-1.19.4.zip
+ # e.g. https://pypi.org/packages/source/n/numpy/numpy-1.19.4.zip
+ # e.g. https://pypi.python.org/packages/source/n/numpy/numpy-1.19.4.zip
+ # e.g. https://files.pythonhosted.org/packages/source/n/numpy/numpy-1.19.4.zip
+
+ # PyPI URLs containing hash:
+ # https://<hostname>/packages/<two character hash>/<two character hash>/<longer hash>/<download file>
+ # e.g. https://pypi.io/packages/c5/63/a48648ebc57711348420670bb074998f79828291f68aebfff1642be212ec/numpy-1.19.4.zip
+ # e.g. https://files.pythonhosted.org/packages/c5/63/a48648ebc57711348420670bb074998f79828291f68aebfff1642be212ec/numpy-1.19.4.zip
+ # e.g. https://files.pythonhosted.org/packages/c5/63/a48648ebc57711348420670bb074998f79828291f68aebfff1642be212ec/numpy-1.19.4.zip#sha256=141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512
+
+ # PyPI URLs for wheels are too complicated, ignore them for now
+
+ match = re.search(
+ r'(?:pypi|pythonhosted)[^/]+/packages' + '/([^/#]+)' * 4,
+ url
+ )
+ if match:
+ if len(match.group(2)) == 1:
+ # Simple PyPI URL
+ url = '/'.join(match.group(3, 4))
+ else:
+ # PyPI URL containing hash
+ # Project name doesn't necessarily match download name, but it
+ # usually does, so this is the best we can do
+ project = parse_name(url)
+ url = '/'.join([project, match.group(4)])
+
+ self.url_line = ' pypi = "{url}"'
+
+ super(PythonPackageTemplate, self).__init__(name, url, *args, **kwargs)
class RPackageTemplate(PackageTemplate):
@@ -289,20 +329,40 @@ class RPackageTemplate(PackageTemplate):
# depends_on('r-foo', type=('build', 'run'))"""
body_def = """\
- def configure_args(self, spec, prefix):
+ def configure_args(self):
# FIXME: Add arguments to pass to install via --configure-args
# FIXME: If not needed delete this function
args = []
return args"""
- def __init__(self, name, *args, **kwargs):
+ def __init__(self, name, url, *args, **kwargs):
# If the user provided `--name r-rcpp`, don't rename it r-r-rcpp
if not name.startswith('r-'):
# Make it more obvious that we are renaming the package
tty.msg("Changing package name from {0} to r-{0}".format(name))
name = 'r-{0}'.format(name)
- super(RPackageTemplate, self).__init__(name, *args, **kwargs)
+ r_name = parse_name(url)
+
+ cran = re.search(
+ r'(?:r-project|rstudio)[^/]+/src' + '/([^/]+)' * 2,
+ url
+ )
+
+ if cran:
+ url = r_name
+ self.url_line = ' cran = "{url}"'
+
+ bioc = re.search(
+ r'(?:bioconductor)[^/]+/packages' + '/([^/]+)' * 5,
+ url
+ )
+
+ if bioc:
+ self.url_line = ' url = "{0}"\n'\
+ ' bioc = "{1}"'.format(url, r_name)
+
+ super(RPackageTemplate, self).__init__(name, url, *args, **kwargs)
class PerlmakePackageTemplate(PackageTemplate):
@@ -545,7 +605,8 @@ class BuildSystemGuesser:
]
# Peek inside the compressed file.
- if stage.archive_file.endswith('.zip'):
+ if (stage.archive_file.endswith('.zip') or
+ '.zip#' in stage.archive_file):
try:
unzip = which('unzip')
output = unzip('-lq', stage.archive_file, output=str)
@@ -575,7 +636,7 @@ def get_name(args):
provided, extract the name from that. Otherwise, use a default.
Args:
- args (param argparse.Namespace): The arguments given to
+ args (argparse.Namespace): The arguments given to
``spack create``
Returns:
@@ -648,8 +709,7 @@ def get_versions(args, name):
name (str): The name of the package
Returns:
- str and BuildSystemGuesser: Versions and hashes, and a
- BuildSystemGuesser object
+ tuple: versions and hashes, and a BuildSystemGuesser object
"""
# Default version with hash
@@ -733,7 +793,8 @@ def get_repository(args, name):
name (str): The name of the package to create
Returns:
- Repo: A Repo object capable of determining the path to the package file
+ spack.repo.Repo: A Repo object capable of determining the path to the
+ package file
"""
spec = Spec(name)
# Figure out namespace for spec
diff --git a/lib/spack/spack/cmd/deactivate.py b/lib/spack/spack/cmd/deactivate.py
index 3c72531a9c..d67981cd9e 100644
--- a/lib/spack/spack/cmd/deactivate.py
+++ b/lib/spack/spack/cmd/deactivate.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -36,7 +36,7 @@ def deactivate(parser, args):
if len(specs) != 1:
tty.die("deactivate requires one spec. %d given." % len(specs))
- env = ev.get_env(args, 'deactivate')
+ env = ev.active_environment()
spec = spack.cmd.disambiguate_spec(specs[0], env)
pkg = spec.package
diff --git a/lib/spack/spack/cmd/debug.py b/lib/spack/spack/cmd/debug.py
index 074e95209a..dff9cd6f8e 100644
--- a/lib/spack/spack/cmd/debug.py
+++ b/lib/spack/spack/cmd/debug.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,7 @@ import llnl.util.tty as tty
from llnl.util.filesystem import working_dir
import spack.architecture as architecture
+import spack.config
import spack.paths
from spack.main import get_version
from spack.util.executable import which
@@ -73,6 +74,7 @@ def create_db_tarball(args):
wd = os.path.dirname(str(spack.store.root))
with working_dir(wd):
files = [spack.store.db._index_path]
+ files += glob('%s/*/*/*/.spack/spec.json' % base)
files += glob('%s/*/*/*/.spack/spec.yaml' % base)
files = [os.path.relpath(f) for f in files]
@@ -89,6 +91,7 @@ def report(args):
print('* **Python:**', platform.python_version())
print('* **Platform:**', architecture.Arch(
architecture.platform(), 'frontend', 'frontend'))
+ print('* **Concretizer:**', spack.config.get('config:concretizer'))
def debug(parser, args):
diff --git a/lib/spack/spack/cmd/dependencies.py b/lib/spack/spack/cmd/dependencies.py
index bbccbe23ee..e4d6c3fe56 100644
--- a/lib/spack/spack/cmd/dependencies.py
+++ b/lib/spack/spack/cmd/dependencies.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -41,7 +41,7 @@ def dependencies(parser, args):
tty.die("spack dependencies takes only one spec.")
if args.installed:
- env = ev.get_env(args, 'dependencies')
+ env = ev.active_environment()
spec = spack.cmd.disambiguate_spec(specs[0], env)
format_string = '{name}{@version}{%compiler}{/hash:7}'
diff --git a/lib/spack/spack/cmd/dependents.py b/lib/spack/spack/cmd/dependents.py
index 5563701801..76b308c295 100644
--- a/lib/spack/spack/cmd/dependents.py
+++ b/lib/spack/spack/cmd/dependents.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -59,7 +59,7 @@ def get_dependents(pkg_name, ideps, transitive=False, dependents=None):
Args:
pkg_name (str): name of the package whose dependents should be returned
ideps (dict): dictionary of dependents, from inverted_dependencies()
- transitive (bool, optional): return transitive dependents when True
+ transitive (bool or None): return transitive dependents when True
"""
if dependents is None:
dependents = set()
@@ -82,7 +82,7 @@ def dependents(parser, args):
tty.die("spack dependents takes only one spec.")
if args.installed:
- env = ev.get_env(args, 'dependents')
+ env = ev.active_environment()
spec = spack.cmd.disambiguate_spec(specs[0], env)
format_string = '{name}{@version}{%compiler}{/hash:7}'
diff --git a/lib/spack/spack/cmd/deprecate.py b/lib/spack/spack/cmd/deprecate.py
index 6172033fa7..216095cb8e 100644
--- a/lib/spack/spack/cmd/deprecate.py
+++ b/lib/spack/spack/cmd/deprecate.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,18 +14,18 @@ It is up to the user to ensure binary compatibility between the deprecated
installation and its deprecator.
'''
from __future__ import print_function
+
import argparse
import os
import llnl.util.tty as tty
import spack.cmd
-import spack.store
import spack.cmd.common.arguments as arguments
import spack.environment as ev
-
-from spack.error import SpackError
+import spack.store
from spack.database import InstallStatuses
+from spack.error import SpackError
description = "Replace one package with another via symlinks"
section = "admin"
@@ -71,7 +71,7 @@ def setup_parser(sp):
def deprecate(parser, args):
"""Deprecate one spec in favor of another"""
- env = ev.get_env(args, 'deprecate')
+ env = ev.active_environment()
specs = spack.cmd.parse_specs(args.specs)
if len(specs) != 2:
diff --git a/lib/spack/spack/cmd/dev_build.py b/lib/spack/spack/cmd/dev_build.py
index 429ba07246..24c416e105 100644
--- a/lib/spack/spack/cmd/dev_build.py
+++ b/lib/spack/spack/cmd/dev_build.py
@@ -1,16 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import sys
import os
+import sys
import llnl.util.tty as tty
-import spack.config
import spack.cmd
import spack.cmd.common.arguments as arguments
+import spack.config
import spack.repo
description = "developer build: build from code in current working directory"
@@ -26,7 +26,7 @@ def setup_parser(subparser):
subparser.add_argument(
'-i', '--ignore-dependencies', action='store_true', dest='ignore_deps',
help="don't try to install dependencies of requested packages")
- arguments.add_common_arguments(subparser, ['no_checksum'])
+ arguments.add_common_arguments(subparser, ['no_checksum', 'deprecated'])
subparser.add_argument(
'--keep-prefix', action='store_true',
help="do not remove the install prefix if installation fails")
@@ -98,6 +98,9 @@ def dev_build(self, args):
if args.no_checksum:
spack.config.set('config:checksum', False, scope='command_line')
+ if args.deprecated:
+ spack.config.set('config:deprecated', True, scope='command_line')
+
tests = False
if args.test == 'all':
tests = True
diff --git a/lib/spack/spack/cmd/develop.py b/lib/spack/spack/cmd/develop.py
index 957060536d..efba1f2fd7 100644
--- a/lib/spack/spack/cmd/develop.py
+++ b/lib/spack/spack/cmd/develop.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,6 @@ import llnl.util.tty as tty
import spack.cmd
import spack.cmd.common.arguments as arguments
-import spack.environment as ev
-
from spack.error import SpackError
description = "add a spec to an environment's dev-build information"
@@ -38,7 +36,7 @@ def setup_parser(subparser):
def develop(parser, args):
- env = ev.get_env(args, 'develop', required=True)
+ env = spack.cmd.require_active_env(cmd_name='develop')
if not args.spec:
if args.clone is False:
diff --git a/lib/spack/spack/cmd/diff.py b/lib/spack/spack/cmd/diff.py
new file mode 100644
index 0000000000..85b73b6545
--- /dev/null
+++ b/lib/spack/spack/cmd/diff.py
@@ -0,0 +1,197 @@
+# Copyright 2013-2021 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)
+
+
+import sys
+
+import llnl.util.tty as tty
+from llnl.util.tty.color import cprint, get_color_when
+
+import spack.cmd
+import spack.cmd.common.arguments as arguments
+import spack.environment as ev
+import spack.solver.asp as asp
+import spack.util.environment
+import spack.util.spack_json as sjson
+
+description = "compare two specs"
+section = "basic"
+level = "long"
+
+
+def setup_parser(subparser):
+ arguments.add_common_arguments(
+ subparser, ['specs'])
+
+ subparser.add_argument(
+ '--json',
+ action='store_true',
+ default=False,
+ dest='dump_json',
+ help="Dump json output instead of pretty printing."
+ )
+ subparser.add_argument(
+ '--first',
+ action='store_true',
+ default=False,
+ dest='load_first',
+ help="load the first match if multiple packages match the spec"
+ )
+ subparser.add_argument(
+ '-a', '--attribute',
+ action='append',
+ help="select the attributes to show (defaults to all)"
+ )
+
+
+def compare_specs(a, b, to_string=False, color=None):
+ """
+ Generate a comparison, including diffs (for each side) and an intersection.
+
+ We can either print the result to the console, or parse
+ into a json object for the user to save. We return an object that shows
+ the differences, intersection, and names for a pair of specs a and b.
+
+ Arguments:
+ a (spack.spec.Spec): the first spec to compare
+ b (spack.spec.Spec): the second spec to compare
+ a_name (str): the name of spec a
+ b_name (str): the name of spec b
+ to_string (bool): return an object that can be json dumped
+ color (bool): whether to format the names for the console
+ """
+ if color is None:
+ color = get_color_when()
+
+ # Prepare a solver setup to parse differences
+ setup = asp.SpackSolverSetup()
+
+ a_facts = set(t for t in setup.spec_clauses(a, body=True))
+ b_facts = set(t for t in setup.spec_clauses(b, body=True))
+
+ # We want to present them to the user as simple key: values
+ intersect = sorted(a_facts.intersection(b_facts))
+ spec1_not_spec2 = sorted(a_facts.difference(b_facts))
+ spec2_not_spec1 = sorted(b_facts.difference(a_facts))
+
+ # Format the spec names to be colored
+ fmt = "{name}{@version}{/hash}"
+ a_name = a.format(fmt, color=color)
+ b_name = b.format(fmt, color=color)
+
+ # We want to show what is the same, and then difference for each
+ return {
+ "intersect": flatten(intersect) if to_string else intersect,
+ "a_not_b": flatten(spec1_not_spec2) if to_string else spec1_not_spec2,
+ "b_not_a": flatten(spec2_not_spec1) if to_string else spec2_not_spec1,
+ "a_name": a_name,
+ "b_name": b_name,
+ }
+
+
+def flatten(functions):
+ """
+ Given a list of ASP functions, convert into a list of key: value tuples.
+
+ We are squashing whatever is after the first index into one string for
+ easier parsing in the interface
+ """
+ updated = []
+ for fun in functions:
+ updated.append([fun.name, " ".join(str(a) for a in fun.args)])
+ return updated
+
+
+def print_difference(c, attributes="all", out=None):
+ """
+ Print the difference.
+
+ Given a diffset for A and a diffset for B, print red/green diffs to show
+ the differences.
+ """
+ # Default to standard out unless another stream is provided
+ out = out or sys.stdout
+
+ A = c['b_not_a']
+ B = c['a_not_b']
+
+ cprint("@R{--- %s}" % c["a_name"]) # bright red
+ cprint("@G{+++ %s}" % c["b_name"]) # bright green
+
+ # Cut out early if we don't have any differences!
+ if not A and not B:
+ print("No differences\n")
+ return
+
+ def group_by_type(diffset):
+ grouped = {}
+ for entry in diffset:
+ if entry[0] not in grouped:
+ grouped[entry[0]] = []
+ grouped[entry[0]].append(entry[1])
+
+ # Sort by second value to make comparison slightly closer
+ for key, values in grouped.items():
+ values.sort()
+ return grouped
+
+ A = group_by_type(A)
+ B = group_by_type(B)
+
+ # print a directionally relevant diff
+ keys = list(A) + list(B)
+
+ category = None
+ for key in keys:
+ if "all" not in attributes and key not in attributes:
+ continue
+
+ # Write the attribute, B is subtraction A is addition
+ subtraction = [] if key not in B else B[key]
+ addition = [] if key not in A else A[key]
+
+ # Bail out early if we don't have any entries
+ if not subtraction and not addition:
+ continue
+
+ # If we have a new category, create a new section
+ if category != key:
+ category = key
+
+ # print category in bold, colorized
+ cprint("@*b{@@ %s @@}" % category) # bold blue
+
+ # Print subtractions first
+ while subtraction:
+ cprint("@R{- %s}" % subtraction.pop(0)) # bright red
+ if addition:
+ cprint("@G{+ %s}" % addition.pop(0)) # bright green
+
+ # Any additions left?
+ while addition:
+ cprint("@G{+ %s}" % addition.pop(0))
+
+
+def diff(parser, args):
+ env = ev.active_environment()
+
+ if len(args.specs) != 2:
+ tty.die("You must provide two specs to diff.")
+
+ specs = [spack.cmd.disambiguate_spec(spec, env, first=args.load_first)
+ for spec in spack.cmd.parse_specs(args.specs)]
+
+ # Calculate the comparison (c)
+ color = False if args.dump_json else get_color_when()
+ c = compare_specs(specs[0], specs[1], to_string=True, color=color)
+
+ # Default to all attributes
+ attributes = args.attribute or ["all"]
+
+ if args.dump_json:
+ print(sjson.dump(c))
+ else:
+ tty.warn("This interface is subject to change.\n")
+ print_difference(c, attributes)
diff --git a/lib/spack/spack/cmd/docs.py b/lib/spack/spack/cmd/docs.py
index a7f2a641ee..ac3a91721e 100644
--- a/lib/spack/spack/cmd/docs.py
+++ b/lib/spack/spack/cmd/docs.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/edit.py b/lib/spack/spack/cmd/edit.py
index e01d50dd03..30eb8d6fd6 100644
--- a/lib/spack/spack/cmd/edit.py
+++ b/lib/spack/spack/cmd/edit.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os
import glob
+import os
import llnl.util.tty as tty
diff --git a/lib/spack/spack/cmd/env.py b/lib/spack/spack/cmd/env.py
index 4699efd26b..5d436624bd 100644
--- a/lib/spack/spack/cmd/env.py
+++ b/lib/spack/spack/cmd/env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,24 +6,22 @@
import os
import shutil
import sys
-from collections import namedtuple
-import llnl.util.tty as tty
import llnl.util.filesystem as fs
+import llnl.util.tty as tty
from llnl.util.tty.colify import colify
from llnl.util.tty.color import colorize
-import spack.config
-import spack.schema.env
import spack.cmd.common.arguments
+import spack.cmd.common.arguments as arguments
import spack.cmd.install
-import spack.cmd.uninstall
import spack.cmd.modules
-import spack.cmd.common.arguments as arguments
+import spack.cmd.uninstall
+import spack.config
import spack.environment as ev
+import spack.schema.env
import spack.util.string as string
-
description = "manage virtual environments"
section = "environments"
level = "short"
@@ -90,6 +88,11 @@ def env_activate(args):
)
return 1
+ # Error out when -e, -E, -D flags are given, cause they are ambiguous.
+ if args.env or args.no_env or args.env_dir:
+ tty.die('Calling spack env activate with --env, --env-dir and --no-env '
+ 'is ambiguous')
+
if ev.exists(env) and not args.dir:
spack_env = ev.root(env)
short_name = env
@@ -104,12 +107,11 @@ def env_activate(args):
tty.die("No such environment: '%s'" % env)
if spack_env == os.environ.get('SPACK_ENV'):
- tty.die("Environment %s is already active" % args.activate_env)
+ tty.debug("Environment %s is already active" % args.activate_env)
+ return
- active_env = ev.get_env(namedtuple('args', ['env'])(env),
- 'activate')
cmds = ev.activate(
- active_env, add_view=args.with_view, shell=args.shell,
+ ev.Environment(spack_env), add_view=args.with_view, shell=args.shell,
prompt=env_prompt if args.prompt else None
)
sys.stdout.write(cmds)
@@ -140,6 +142,11 @@ def env_deactivate(args):
)
return 1
+ # Error out when -e, -E, -D flags are given, cause they are ambiguous.
+ if args.env or args.no_env or args.env_dir:
+ tty.die('Calling spack env deactivate with --env, --env-dir and --no-env '
+ 'is ambiguous')
+
if 'SPACK_ENV' not in os.environ:
tty.die('No environment is currently active.')
@@ -157,6 +164,10 @@ def env_create_setup_parser(subparser):
subparser.add_argument(
'-d', '--dir', action='store_true',
help='create an environment in a specific directory')
+ subparser.add_argument(
+ '--keep-relative', action='store_true',
+ help='copy relative develop paths verbatim into the new environment'
+ ' when initializing from envfile')
view_opts = subparser.add_mutually_exclusive_group()
view_opts.add_argument(
'--without-view', action='store_true',
@@ -184,13 +195,14 @@ def env_create(args):
if args.envfile:
with open(args.envfile) as f:
_env_create(args.create_env, f, args.dir,
- with_view=with_view)
+ with_view=with_view, keep_relative=args.keep_relative)
else:
_env_create(args.create_env, None, args.dir,
with_view=with_view)
-def _env_create(name_or_path, init_file=None, dir=False, with_view=None):
+def _env_create(name_or_path, init_file=None, dir=False, with_view=None,
+ keep_relative=False):
"""Create a new environment, with an optional yaml description.
Arguments:
@@ -199,15 +211,18 @@ def _env_create(name_or_path, init_file=None, dir=False, with_view=None):
spack.yaml or spack.lock
dir (bool): if True, create an environment in a directory instead
of a named environment
+ keep_relative (bool): if True, develop paths are copied verbatim into
+ the new environment file, otherwise they may be made absolute if the
+ new environment is in a different location
"""
if dir:
- env = ev.Environment(name_or_path, init_file, with_view)
+ env = ev.Environment(name_or_path, init_file, with_view, keep_relative)
env.write()
tty.msg("Created environment in %s" % env.path)
tty.msg("You can activate this environment with:")
tty.msg(" spack env activate %s" % env.path)
else:
- env = ev.create(name_or_path, init_file, with_view)
+ env = ev.create(name_or_path, init_file, with_view, keep_relative)
env.write()
tty.msg("Created environment '%s' in %s" % (name_or_path, env.path))
tty.msg("You can activate this environment with:")
@@ -307,7 +322,7 @@ def env_view_setup_parser(subparser):
def env_view(args):
- env = ev.get_env(args, 'env view')
+ env = ev.active_environment()
if env:
if args.action == ViewAction.regenerate:
@@ -334,7 +349,7 @@ def env_status_setup_parser(subparser):
def env_status(args):
- env = ev.get_env(args, 'env status')
+ env = ev.active_environment()
if env:
if env.path == os.getcwd():
tty.msg('Using %s in current directory: %s'
@@ -356,13 +371,16 @@ def env_loads_setup_parser(subparser):
subparser.add_argument(
'env', nargs='?', help='name of env to generate loads file for')
subparser.add_argument(
+ '-n', '--module-set-name', default='default',
+ help='module set for which to generate load operations')
+ subparser.add_argument(
'-m', '--module-type', choices=('tcl', 'lmod'),
help='type of module system to generate loads for')
spack.cmd.modules.add_loads_arguments(subparser)
def env_loads(args):
- env = ev.get_env(args, 'env loads', required=True)
+ env = spack.cmd.require_active_env(cmd_name='env loads')
# Set the module types that have been selected
module_type = args.module_type
diff --git a/lib/spack/spack/cmd/extensions.py b/lib/spack/spack/cmd/extensions.py
index b4fb7faa1f..0ef2137b1d 100644
--- a/lib/spack/spack/cmd/extensions.py
+++ b/lib/spack/spack/cmd/extensions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,9 @@ import sys
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
-import spack.environment as ev
import spack.cmd as cmd
import spack.cmd.common.arguments as arguments
+import spack.environment as ev
import spack.repo
import spack.store
from spack.filesystem_view import YamlFilesystemView
@@ -67,7 +67,7 @@ def extensions(parser, args):
if not spec[0].package.extendable:
tty.die("%s is not an extendable package." % spec[0].name)
- env = ev.get_env(args, 'extensions')
+ env = ev.active_environment()
spec = cmd.disambiguate_spec(spec[0], env)
if not spec.package.extendable:
diff --git a/lib/spack/spack/cmd/external.py b/lib/spack/spack/cmd/external.py
index 52af72ed8f..a57f9a58a4 100644
--- a/lib/spack/spack/cmd/external.py
+++ b/lib/spack/spack/cmd/external.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,15 @@ import re
import sys
from collections import defaultdict, namedtuple
+import six
+
import llnl.util.filesystem
import llnl.util.tty as tty
import llnl.util.tty.colify as colify
-import six
+
import spack
import spack.cmd
+import spack.cmd.common.arguments
import spack.error
import spack.util.environment
import spack.util.spack_yaml as syaml
@@ -42,6 +45,7 @@ def setup_parser(subparser):
'--scope', choices=scopes, metavar=scopes_metavar,
default=spack.config.default_modify_scope('packages'),
help="configuration scope to modify")
+ spack.cmd.common.arguments.add_common_arguments(find_parser, ['tags'])
find_parser.add_argument('packages', nargs=argparse.REMAINDER)
sp.add_parser(
@@ -148,9 +152,28 @@ def _spec_is_valid(spec):
def external_find(args):
+ # Construct the list of possible packages to be detected
+ packages_to_check = []
+
+ # Add the packages that have been required explicitly
if args.packages:
packages_to_check = list(spack.repo.get(pkg) for pkg in args.packages)
- else:
+ if args.tags:
+ allowed = set(spack.repo.path.packages_with_tags(*args.tags))
+ packages_to_check = [x for x in packages_to_check if x in allowed]
+
+ if args.tags and not packages_to_check:
+ # If we arrived here we didn't have any explicit package passed
+ # as argument, which means to search all packages.
+ # Since tags are cached it's much faster to construct what we need
+ # to search directly, rather than filtering after the fact
+ packages_to_check = [
+ spack.repo.get(pkg) for pkg in
+ spack.repo.path.packages_with_tags(*args.tags)
+ ]
+
+ # If the list of packages is empty, search for every possible package
+ if not args.tags and not packages_to_check:
packages_to_check = spack.repo.path.all_packages()
pkg_to_entries = _get_external_packages(packages_to_check)
diff --git a/lib/spack/spack/cmd/fetch.py b/lib/spack/spack/cmd/fetch.py
index d2cd53c69f..4993c49912 100644
--- a/lib/spack/spack/cmd/fetch.py
+++ b/lib/spack/spack/cmd/fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,7 +17,7 @@ level = "long"
def setup_parser(subparser):
- arguments.add_common_arguments(subparser, ['no_checksum'])
+ arguments.add_common_arguments(subparser, ['no_checksum', 'deprecated'])
subparser.add_argument(
"-m",
"--missing",
@@ -47,7 +47,7 @@ def fetch(parser, args):
# fetch all uninstalled specs from it otherwise fetch all.
# If we are also not in an environment, complain to the
# user that we don't know what to do.
- env = ev.get_env(args, "fetch")
+ env = ev.active_environment()
if env:
if args.missing:
specs = env.uninstalled_specs()
@@ -64,6 +64,9 @@ def fetch(parser, args):
if args.no_checksum:
spack.config.set("config:checksum", False, scope="command_line")
+ if args.deprecated:
+ spack.config.set('config:deprecated', True, scope='command_line')
+
for spec in specs:
if args.missing or args.dependencies:
for s in spec.traverse():
diff --git a/lib/spack/spack/cmd/find.py b/lib/spack/spack/cmd/find.py
index f770a02b25..8378f6ef6e 100644
--- a/lib/spack/spack/cmd/find.py
+++ b/lib/spack/spack/cmd/find.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,17 +9,18 @@ import copy
import os
import sys
+import llnl.util.lang
import llnl.util.tty as tty
import llnl.util.tty.color as color
-import llnl.util.lang
-import spack.environment as ev
-import spack.repo
+import spack.bootstrap
import spack.cmd as cmd
import spack.cmd.common.arguments as arguments
+import spack.environment as ev
+import spack.repo
import spack.user_environment as uenv
-from spack.util.string import plural
from spack.database import InstallStatuses
+from spack.util.string import plural
description = "list and search installed packages"
section = "basic"
@@ -204,23 +205,24 @@ def display_env(env, args, decorator):
def find(parser, args):
- q_args = query_arguments(args)
- # Query the current store or the internal bootstrap store if required
if args.bootstrap:
- msg = 'Showing internal bootstrap store at "{0}"'
- tty.msg(msg.format(spack.paths.user_bootstrap_store))
- with spack.store.use_store(spack.paths.user_bootstrap_store):
- results = args.specs(**q_args)
- else:
- results = args.specs(**q_args)
+ bootstrap_store_path = spack.bootstrap.store_path()
+ with spack.bootstrap.ensure_bootstrap_configuration():
+ msg = 'Showing internal bootstrap store at "{0}"'
+ tty.msg(msg.format(bootstrap_store_path))
+ _find(parser, args)
+ return
+ _find(parser, args)
- decorator = lambda s, f: f
- added = set()
- removed = set()
- env = ev.get_env(args, 'find')
+def _find(parser, args):
+ q_args = query_arguments(args)
+ results = args.specs(**q_args)
+
+ env = ev.active_environment()
+ decorator = lambda s, f: f
if env:
- decorator, added, roots, removed = setup_env(env)
+ decorator, _, roots, _ = setup_env(env)
# use groups by default except with format.
if args.groups is None:
@@ -231,7 +233,7 @@ def find(parser, args):
msg = "No package matches the query: {0}"
msg = msg.format(' '.join(args.constraint))
tty.msg(msg)
- return 1
+ raise SystemExit(1)
# If tags have been specified on the command line, filter by tags
if args.tags:
diff --git a/lib/spack/spack/cmd/flake8.py b/lib/spack/spack/cmd/flake8.py
index cdfce2cab2..0579cb674a 100644
--- a/lib/spack/spack/cmd/flake8.py
+++ b/lib/spack/spack/cmd/flake8.py
@@ -1,321 +1,25 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-import re
-import os
-import sys
-import shutil
-import tempfile
-import argparse
+import llnl.util.tty as tty
-from llnl.util.filesystem import working_dir, mkdirp
+import spack.cmd.style
-import spack.paths
-from spack.util.executable import which
-
-
-description = "runs source code style checks on Spack. requires flake8"
-section = "developer"
-level = "long"
-
-
-def is_package(f):
- """Whether flake8 should consider a file as a core file or a package.
-
- We run flake8 with different exceptions for the core and for
- packages, since we allow `from spack import *` and poking globals
- into packages.
- """
- return f.startswith('var/spack/repos/') or 'docs/tutorial/examples' in f
-
-
-#: List of directories to exclude from checks.
-exclude_directories = [spack.paths.external_path]
-
-#: max line length we're enforcing (note: this duplicates what's in .flake8)
-max_line_length = 79
-
-#: This is a dict that maps:
-#: filename pattern ->
-#: flake8 exemption code ->
-#: list of patterns, for which matching lines should have codes applied.
-#:
-#: For each file, if the filename pattern matches, we'll add per-line
-#: exemptions if any patterns in the sub-dict match.
-pattern_exemptions = {
- # exemptions applied only to package.py files.
- r'package.py$': {
- # Allow 'from spack import *' in packages, but no other wildcards
- 'F403': [
- r'^from spack import \*$'
- ],
- # Exempt lines with urls and descriptions from overlong line errors.
- 'E501': [
- r'^\s*homepage\s*=',
- r'^\s*url\s*=',
- r'^\s*git\s*=',
- r'^\s*svn\s*=',
- r'^\s*hg\s*=',
- r'^\s*list_url\s*=',
- r'^\s*version\(',
- r'^\s*variant\(',
- r'^\s*provides\(',
- r'^\s*extends\(',
- r'^\s*depends_on\(',
- r'^\s*conflicts\(',
- r'^\s*resource\(',
- r'^\s*patch\(',
- ],
- # Exempt '@when' decorated functions from redefinition errors.
- 'F811': [
- r'^\s*@when\(.*\)',
- ],
- },
-
- # exemptions applied to all files.
- r'.py$': {
- 'E501': [
- r'(https?|ftp|file)\:', # URLs
- r'([\'"])[0-9a-fA-F]{32,}\1', # long hex checksums
- ]
- },
-}
-
-# compile all regular expressions.
-pattern_exemptions = dict(
- (re.compile(file_pattern),
- dict((code, [re.compile(p) for p in patterns])
- for code, patterns in error_dict.items()))
- for file_pattern, error_dict in pattern_exemptions.items())
-
-
-def changed_files(base=None, untracked=True, all_files=False):
- """Get list of changed files in the Spack repository."""
-
- git = which('git', required=True)
-
- if base is None:
- base = os.environ.get('TRAVIS_BRANCH', 'develop')
-
- range = "{0}...".format(base)
-
- git_args = [
- # Add changed files committed since branching off of develop
- ['diff', '--name-only', '--diff-filter=ACMR', range],
- # Add changed files that have been staged but not yet committed
- ['diff', '--name-only', '--diff-filter=ACMR', '--cached'],
- # Add changed files that are unstaged
- ['diff', '--name-only', '--diff-filter=ACMR'],
- ]
-
- # Add new files that are untracked
- if untracked:
- git_args.append(['ls-files', '--exclude-standard', '--other'])
-
- # add everything if the user asked for it
- if all_files:
- git_args.append(['ls-files', '--exclude-standard'])
-
- excludes = [os.path.realpath(f) for f in exclude_directories]
- changed = set()
-
- for arg_list in git_args:
- files = git(*arg_list, output=str).split('\n')
-
- for f in files:
- # Ignore non-Python files
- if not (f.endswith('.py') or f == 'bin/spack'):
- continue
-
- # Ignore files in the exclude locations
- if any(os.path.realpath(f).startswith(e) for e in excludes):
- continue
-
- changed.add(f)
-
- return sorted(changed)
-
-
-def add_pattern_exemptions(line, codes):
- """Add a flake8 exemption to a line."""
- if line.startswith('#'):
- return line
-
- line = line.rstrip('\n')
-
- # Line is already ignored
- if line.endswith('# noqa'):
- return line + '\n'
-
- orig_len = len(line)
- codes = set(codes)
-
- # don't add E501 unless the line is actually too long, as it can mask
- # other errors like trailing whitespace
- if orig_len <= max_line_length and "E501" in codes:
- codes.remove("E501")
- if not codes:
- return line + "\n"
-
- exemptions = ','.join(sorted(codes))
-
- # append exemption to line
- if '# noqa: ' in line:
- line += ',{0}'.format(exemptions)
- elif line: # ignore noqa on empty lines
- line += ' # noqa: {0}'.format(exemptions)
-
- # if THIS made the line too long, add an exemption for that
- if len(line) > max_line_length and orig_len <= max_line_length:
- line += ',E501'
-
- return line + '\n'
-
-
-def filter_file(source, dest, output=False):
- """Filter a single file through all the patterns in pattern_exemptions."""
-
- # Prior to Python 3.8, `noqa: F811` needed to be placed on the `@when` line
- # Starting with Python 3.8, it must be placed on the `def` line
- # https://gitlab.com/pycqa/flake8/issues/583
- ignore_f811_on_previous_line = False
-
- with open(source) as infile:
- parent = os.path.dirname(dest)
- mkdirp(parent)
-
- with open(dest, 'w') as outfile:
- for line in infile:
- line_errors = []
-
- # pattern exemptions
- for file_pattern, errors in pattern_exemptions.items():
- if not file_pattern.search(source):
- continue
-
- for code, patterns in errors.items():
- for pattern in patterns:
- if pattern.search(line):
- line_errors.append(code)
- break
-
- if 'F811' in line_errors:
- ignore_f811_on_previous_line = True
- elif ignore_f811_on_previous_line:
- line_errors.append('F811')
- ignore_f811_on_previous_line = False
-
- if line_errors:
- line = add_pattern_exemptions(line, line_errors)
-
- outfile.write(line)
- if output:
- sys.stdout.write(line)
+description = "alias for spack style (deprecated)"
+section = spack.cmd.style.section
+level = spack.cmd.style.level
def setup_parser(subparser):
- subparser.add_argument(
- '-b', '--base', action='store', default=None,
- help="select base branch for collecting list of modified files")
- subparser.add_argument(
- '-k', '--keep-temp', action='store_true',
- help="do not delete temporary directory where flake8 runs. "
- "use for debugging, to see filtered files")
- subparser.add_argument(
- '-a', '--all', action='store_true',
- help="check all files, not just changed files")
- subparser.add_argument(
- '-o', '--output', action='store_true',
- help="send filtered files to stdout as well as temp files")
- subparser.add_argument(
- '-r', '--root-relative', action='store_true', default=False,
- help="print root-relative paths (default: cwd-relative)")
- subparser.add_argument(
- '-U', '--no-untracked', dest='untracked', action='store_false',
- default=True, help="exclude untracked files from checks")
- subparser.add_argument(
- 'files', nargs=argparse.REMAINDER, help="specific files to check")
+ spack.cmd.style.setup_parser(subparser)
def flake8(parser, args):
- flake8 = which('flake8', required=True)
-
- temp = tempfile.mkdtemp()
- try:
- file_list = args.files
- if file_list:
- def prefix_relative(path):
- return os.path.relpath(
- os.path.abspath(os.path.realpath(path)),
- spack.paths.prefix)
-
- file_list = [prefix_relative(p) for p in file_list]
-
- with working_dir(spack.paths.prefix):
- if not file_list:
- file_list = changed_files(args.base, args.untracked, args.all)
-
- print('=======================================================')
- print('flake8: running flake8 code checks on spack.')
- print()
- print('Modified files:')
- for filename in file_list:
- print(' {0}'.format(filename.strip()))
- print('=======================================================')
-
- # filter files into a temporary directory with exemptions added.
- for filename in file_list:
- src_path = os.path.join(spack.paths.prefix, filename)
- dest_path = os.path.join(temp, filename)
- filter_file(src_path, dest_path, args.output)
-
- # run flake8 on the temporary tree, once for core, once for pkgs
- package_file_list = [f for f in file_list if is_package(f)]
- file_list = [f for f in file_list if not is_package(f)]
-
- returncode = 0
- with working_dir(temp):
- output = ''
- if file_list:
- output += flake8(
- '--format', 'pylint',
- '--config=%s' % os.path.join(spack.paths.prefix,
- '.flake8'),
- *file_list, fail_on_error=False, output=str)
- returncode |= flake8.returncode
- if package_file_list:
- output += flake8(
- '--format', 'pylint',
- '--config=%s' % os.path.join(spack.paths.prefix,
- '.flake8_packages'),
- *package_file_list, fail_on_error=False, output=str)
- returncode |= flake8.returncode
-
- if args.root_relative:
- # print results relative to repo root.
- print(output)
- else:
- # print results relative to current working directory
- def cwd_relative(path):
- return '{0}: ['.format(os.path.relpath(
- os.path.join(
- spack.paths.prefix, path.group(1)), os.getcwd()))
-
- for line in output.split('\n'):
- print(re.sub(r'^(.*): \[', cwd_relative, line))
-
- if returncode != 0:
- print('Flake8 found errors.')
- sys.exit(1)
- else:
- print('Flake8 checks were clean.')
-
- finally:
- if args.keep_temp:
- print('Temporary files are in: ', temp)
- else:
- shutil.rmtree(temp, ignore_errors=True)
+ tty.warn(
+ "spack flake8 is deprecated", "please use `spack style` to run style checks"
+ )
+ return spack.cmd.style.style(parser, args)
diff --git a/lib/spack/spack/cmd/gc.py b/lib/spack/spack/cmd/gc.py
index ca9d88169a..08fcd92873 100644
--- a/lib/spack/spack/cmd/gc.py
+++ b/lib/spack/spack/cmd/gc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ import llnl.util.tty as tty
import spack.cmd.common.arguments
import spack.cmd.uninstall
-import spack.environment
+import spack.environment as ev
import spack.store
description = "remove specs that are now no longer needed"
@@ -24,7 +24,7 @@ def gc(parser, args):
# Restrict garbage collection to the active environment
# speculating over roots that are yet to be installed
- env = spack.environment.get_env(args=None, cmd_name='gc')
+ env = ev.active_environment()
if env:
msg = 'Restricting the garbage collection to the "{0}" environment'
tty.msg(msg.format(env.name))
diff --git a/lib/spack/spack/cmd/gpg.py b/lib/spack/spack/cmd/gpg.py
index 59fba4a4df..ffe178aa91 100644
--- a/lib/spack/spack/cmd/gpg.py
+++ b/lib/spack/spack/cmd/gpg.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os
import argparse
+import os
import spack.binary_distribution
import spack.cmd.common.arguments as arguments
@@ -60,6 +60,9 @@ def setup_parser(subparser):
default='0', help='when the key should expire')
create.add_argument('--export', metavar='DEST', type=str,
help='export the public key to a file')
+ create.add_argument('--export-secret', metavar="DEST", type=str,
+ dest="secret",
+ help='export the private key to a file.')
create.set_defaults(func=gpg_create)
list = subparsers.add_parser('list', help=gpg_list.__doc__)
@@ -79,7 +82,9 @@ def setup_parser(subparser):
help='where to export keys')
export.add_argument('keys', nargs='*',
help='the keys to export; '
- 'all secret keys if unspecified')
+ 'all public keys if unspecified')
+ export.add_argument('--secret', action='store_true',
+ help='export secret keys')
export.set_defaults(func=gpg_export)
publish = subparsers.add_parser('publish', help=gpg_publish.__doc__)
@@ -112,22 +117,28 @@ def setup_parser(subparser):
def gpg_create(args):
"""create a new key"""
- if args.export:
+ if args.export or args.secret:
old_sec_keys = spack.util.gpg.signing_keys()
+
+ # Create the new key
spack.util.gpg.create(name=args.name, email=args.email,
comment=args.comment, expires=args.expires)
- if args.export:
+ if args.export or args.secret:
new_sec_keys = set(spack.util.gpg.signing_keys())
new_keys = new_sec_keys.difference(old_sec_keys)
- spack.util.gpg.export_keys(args.export, *new_keys)
+
+ if args.export:
+ spack.util.gpg.export_keys(args.export, new_keys)
+ if args.secret:
+ spack.util.gpg.export_keys(args.secret, new_keys, secret=True)
def gpg_export(args):
- """export a secret key"""
+ """export a gpg key, optionally including secret key."""
keys = args.keys
if not keys:
keys = spack.util.gpg.signing_keys()
- spack.util.gpg.export_keys(args.location, *keys)
+ spack.util.gpg.export_keys(args.location, keys, args.secret)
def gpg_list(args):
diff --git a/lib/spack/spack/cmd/graph.py b/lib/spack/spack/cmd/graph.py
index d0fbf8e6c6..0078149508 100644
--- a/lib/spack/spack/cmd/graph.py
+++ b/lib/spack/spack/cmd/graph.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ import llnl.util.tty as tty
import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config
+import spack.environment as ev
import spack.store
-from spack.graph import graph_dot, graph_ascii
+from spack.graph import graph_ascii, graph_dot
description = "generate graphs of package dependency relationships"
section = "basic"
@@ -35,7 +36,7 @@ def setup_parser(subparser):
subparser.add_argument(
'-i', '--installed', action='store_true',
- help="graph all installed specs in dot format (implies --dot)")
+ help="graph installed specs, or specs in the active env (implies --dot)")
arguments.add_common_arguments(subparser, ['deptype', 'specs'])
@@ -45,7 +46,12 @@ def graph(parser, args):
if args.specs:
tty.die("Can't specify specs with --installed")
args.dot = True
- specs = spack.store.db.query()
+
+ env = ev.active_environment()
+ if env:
+ specs = env.all_specs()
+ else:
+ specs = spack.store.db.query()
else:
specs = spack.cmd.parse_specs(args.specs, concretize=not args.static)
diff --git a/lib/spack/spack/cmd/help.py b/lib/spack/spack/cmd/help.py
index d730d4f0fe..0055c33719 100644
--- a/lib/spack/spack/cmd/help.py
+++ b/lib/spack/spack/cmd/help.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import sys
+
from llnl.util.tty.color import colorize
description = "get help on spack and its commands"
diff --git a/lib/spack/spack/cmd/info.py b/lib/spack/spack/cmd/info.py
index fa674317ab..7119a23dbc 100644
--- a/lib/spack/spack/cmd/info.py
+++ b/lib/spack/spack/cmd/info.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,6 +6,7 @@
from __future__ import print_function
import textwrap
+
from six.moves import zip_longest
import llnl.util.tty as tty
@@ -13,10 +14,9 @@ import llnl.util.tty.color as color
from llnl.util.tty.colify import colify
import spack.cmd.common.arguments as arguments
+import spack.fetch_strategy as fs
import spack.repo
import spack.spec
-import spack.fetch_strategy as fs
-
description = 'get detailed information on a particular package'
section = 'basic'
@@ -111,7 +111,7 @@ class VariantFormatter(object):
yield ' None'
else:
yield ' ' + self.fmt % self.headers
- underline = tuple([l * "=" for l in self.column_widths])
+ underline = tuple([w * "=" for w in self.column_widths])
yield ' ' + self.fmt % underline
yield ''
for k, v in sorted(self.variants.items()):
@@ -121,10 +121,12 @@ class VariantFormatter(object):
)
allowed = v.allowed_values.replace('True, False', 'on, off')
allowed = textwrap.wrap(allowed, width=self.column_widths[1])
- description = textwrap.wrap(
- v.description,
- width=self.column_widths[2]
- )
+ description = []
+ for d_line in v.description.split('\n'):
+ description += textwrap.wrap(
+ d_line,
+ width=self.column_widths[2]
+ )
for t in zip_longest(
name, allowed, description, fillvalue=''
):
@@ -154,6 +156,26 @@ def print_text_info(pkg):
color.cprint(section_title('Maintainers: ') + mnt)
color.cprint('')
+ color.cprint(section_title('Externally Detectable: '))
+
+ # If the package has an 'executables' field, it can detect an installation
+ if hasattr(pkg, 'executables'):
+ find_attributes = []
+ if hasattr(pkg, 'determine_version'):
+ find_attributes.append('version')
+
+ if hasattr(pkg, 'determine_variants'):
+ find_attributes.append('variants')
+
+ # If the package does not define 'determine_version' nor
+ # 'determine_variants', then it must use some custom detection
+ # mechanism. In this case, just inform the user it's detectable somehow.
+ color.cprint(' True{0}'.format(
+ ' (' + ', '.join(find_attributes) + ')' if find_attributes else ''))
+ else:
+ color.cprint(' False')
+
+ color.cprint('')
color.cprint(section_title("Tags: "))
if hasattr(pkg, 'tags'):
tags = sorted(pkg.tags)
@@ -169,6 +191,9 @@ def print_text_info(pkg):
color.cprint('')
color.cprint(section_title('Safe versions: '))
color.cprint(version(' None'))
+ color.cprint('')
+ color.cprint(section_title('Deprecated versions: '))
+ color.cprint(version(' None'))
else:
pad = padder(pkg.versions, 4)
@@ -185,14 +210,27 @@ def print_text_info(pkg):
line = version(' {0}'.format(pad(preferred))) + color.cescape(url)
color.cprint(line)
- color.cprint('')
- color.cprint(section_title('Safe versions: '))
+ safe = []
+ deprecated = []
for v in reversed(sorted(pkg.versions)):
if pkg.has_code:
url = fs.for_package_version(pkg, v)
- line = version(' {0}'.format(pad(v))) + color.cescape(url)
- color.cprint(line)
+ if pkg.versions[v].get('deprecated', False):
+ deprecated.append((v, url))
+ else:
+ safe.append((v, url))
+
+ for title, vers in [('Safe', safe), ('Deprecated', deprecated)]:
+ color.cprint('')
+ color.cprint(section_title('{0} versions: '.format(title)))
+ if not vers:
+ color.cprint(version(' None'))
+ continue
+
+ for v, url in vers:
+ line = version(' {0}'.format(pad(v))) + color.cescape(url)
+ color.cprint(line)
color.cprint('')
color.cprint(section_title('Variants:'))
diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py
index 8f3902d71c..5463132878 100644
--- a/lib/spack/spack/cmd/install.py
+++ b/lib/spack/spack/cmd/install.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,12 +17,12 @@ import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.fetch_strategy
+import spack.monitor
import spack.paths
import spack.report
from spack.error import SpackError
from spack.installer import PackageInstaller
-
description = "build and install packages"
section = "build"
level = "short"
@@ -43,6 +43,7 @@ def update_kwargs_from_args(args, kwargs):
'dirty': args.dirty,
'use_cache': args.use_cache,
'cache_only': args.cache_only,
+ 'include_build_deps': args.include_build_deps,
'explicit': True, # Always true for install command
'stop_at': args.until,
'unsigned': args.unsigned,
@@ -105,6 +106,13 @@ the dependencies"""
'--cache-only', action='store_true', dest='cache_only', default=False,
help="only install package from binary mirrors")
+ monitor_group = spack.monitor.get_monitor_group(subparser) # noqa
+
+ subparser.add_argument(
+ '--include-build-deps', action='store_true', dest='include_build_deps',
+ default=False, help="""include build deps when installing from cache,
+which is useful for CI pipeline troubleshooting""")
+
subparser.add_argument(
'--no-check-signature', action='store_true',
dest='unsigned', default=False,
@@ -120,7 +128,7 @@ remote spec matches that of the local spec""")
subparser.add_argument(
'--source', action='store_true', dest='install_source',
help="install source files in prefix")
- arguments.add_common_arguments(subparser, ['no_checksum'])
+ arguments.add_common_arguments(subparser, ['no_checksum', 'deprecated'])
subparser.add_argument(
'-v', '--verbose', action='store_true',
help="display verbose build output while installing")
@@ -131,6 +139,10 @@ remote spec matches that of the local spec""")
'--only-concrete', action='store_true', default=False,
help='(with environment) only install already concretized specs')
subparser.add_argument(
+ '--no-add', action='store_true', default=False,
+ help="""(with environment) only install specs provided as argument
+if they are already in the concretized environment""")
+ subparser.add_argument(
'-f', '--file', action='append', default=[],
dest='specfiles', metavar='SPEC_YAML_FILE',
help="install from file. Read specs to install from .yaml files")
@@ -177,7 +189,7 @@ def default_log_file(spec):
"""
fmt = 'test-{x.name}-{x.version}-{hash}.xml'
basename = fmt.format(x=spec, hash=spec.dag_hash())
- dirname = fs.os.path.join(spack.paths.var_path, 'junit-report')
+ dirname = fs.os.path.join(spack.paths.reports_path, 'junit')
fs.mkdirp(dirname)
return fs.os.path.join(dirname, basename)
@@ -186,21 +198,76 @@ def install_specs(cli_args, kwargs, specs):
"""Do the actual installation.
Args:
- cli_args (Namespace): argparse namespace with command arguments
+ cli_args (argparse.Namespace): argparse namespace with command arguments
kwargs (dict): keyword arguments
- specs (list of tuples): list of (abstract, concrete) spec tuples
+ specs (list): list of (abstract, concrete) spec tuples
"""
# handle active environment, if any
- env = ev.get_env(cli_args, 'install')
+ env = ev.active_environment()
try:
if env:
+ specs_to_install = []
+ specs_to_add = []
for abstract, concrete in specs:
- with env.write_transaction():
- concrete = env.concretize_and_add(abstract, concrete)
- env.write(regenerate_views=False)
- env.install_all(cli_args, **kwargs)
+ # This won't find specs added to the env since last
+ # concretize, therefore should we consider enforcing
+ # concretization of the env before allowing to install
+ # specs?
+ m_spec = env.matching_spec(abstract)
+
+ # If there is any ambiguity in the above call to matching_spec
+ # (i.e. if more than one spec in the environment matches), then
+ # SpackEnvironmentError is raised, with a message listing the
+ # the matches. Getting to this point means there were either
+ # no matches or exactly one match.
+
+ if not m_spec:
+ tty.debug('{0} matched nothing in the env'.format(
+ abstract.name))
+ # no matches in the env
+ if cli_args.no_add:
+ msg = ('You asked to install {0} without adding it ' +
+ '(--no-add), but no such spec exists in ' +
+ 'environment').format(abstract.name)
+ tty.die(msg)
+ else:
+ tty.debug('adding {0} as a root'.format(abstract.name))
+ specs_to_add.append((abstract, concrete))
+
+ continue
+
+ tty.debug('exactly one match for {0} in env -> {1}'.format(
+ m_spec.name, m_spec.dag_hash()))
+
+ if m_spec in env.roots() or cli_args.no_add:
+ # either the single match is a root spec (and --no-add is
+ # the default for roots) or --no-add was stated explicitly
+ tty.debug('just install {0}'.format(m_spec.name))
+ specs_to_install.append(m_spec)
+ else:
+ # the single match is not a root (i.e. it's a dependency),
+ # and --no-add was not specified, so we'll add it as a
+ # root before installing
+ tty.debug('add {0} then install it'.format(m_spec.name))
+ specs_to_add.append((abstract, concrete))
+
+ if specs_to_add:
+ tty.debug('Adding the following specs as roots:')
+ for abstract, concrete in specs_to_add:
+ tty.debug(' {0}'.format(abstract.name))
+ with env.write_transaction():
+ specs_to_install.append(
+ env.concretize_and_add(abstract, concrete))
+ env.write(regenerate=False)
+
+ # Install the validated list of cli specs
+ if specs_to_install:
+ tty.debug('Installing the following cli specs:')
+ for s in specs_to_install:
+ tty.debug(' {0}'.format(s.name))
+ env.install_specs(specs_to_install, args=cli_args, **kwargs)
else:
installs = [(concrete.package, kwargs) for _, concrete in specs]
builder = PackageInstaller(installs)
@@ -218,6 +285,7 @@ def install_specs(cli_args, kwargs, specs):
def install(parser, args, **kwargs):
+
if args.help_cdash:
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
@@ -230,40 +298,72 @@ environment variables:
parser.print_help()
return
+ # The user wants to monitor builds using github.com/spack/spack-monitor
+ if args.use_monitor:
+ monitor = spack.monitor.get_client(
+ host=args.monitor_host,
+ prefix=args.monitor_prefix,
+ disable_auth=args.monitor_disable_auth,
+ tags=args.monitor_tags,
+ save_local=args.monitor_save_local,
+ )
+
reporter = spack.report.collect_info(
spack.package.PackageInstaller, '_install_task', args.log_format, args)
if args.log_file:
reporter.filename = args.log_file
+ if args.run_tests:
+ tty.warn("Deprecated option: --run-tests: use --test=all instead")
+
+ def get_tests(specs):
+ if args.test == 'all' or args.run_tests:
+ return True
+ elif args.test == 'root':
+ return [spec.name for spec in specs]
+ else:
+ return False
+
+ # Parse cli arguments and construct a dictionary
+ # that will be passed to the package installer
+ update_kwargs_from_args(args, kwargs)
+
if not args.spec and not args.specfiles:
# if there are no args but an active environment
# then install the packages from it.
- env = ev.get_env(args, 'install')
+ env = ev.active_environment()
if env:
+ tests = get_tests(env.user_specs)
+ kwargs['tests'] = tests
+
if not args.only_concrete:
with env.write_transaction():
- concretized_specs = env.concretize()
+ concretized_specs = env.concretize(tests=tests)
ev.display_specs(concretized_specs)
# save view regeneration for later, so that we only do it
# once, as it can be slow.
- env.write(regenerate_views=False)
+ env.write(regenerate=False)
specs = env.all_specs()
if not args.log_file and not reporter.filename:
reporter.filename = default_log_file(specs[0])
reporter.specs = specs
+ # Tell the monitor about the specs
+ if args.use_monitor and specs:
+ monitor.new_configuration(specs)
+
tty.msg("Installing environment {0}".format(env.name))
with reporter('build'):
- env.install_all(args, **kwargs)
+ env.install_all(**kwargs)
tty.debug("Regenerating environment views for {0}"
.format(env.name))
with env.write_transaction():
- # It is not strictly required to synchronize view regeneration
- # but doing so can prevent redundant work in the filesystem.
- env.regenerate_views()
+ # write env to trigger view generation and modulefile
+ # generation
+ env.write()
return
else:
msg = "install requires a package argument or active environment"
@@ -282,20 +382,12 @@ environment variables:
if args.no_checksum:
spack.config.set('config:checksum', False, scope='command_line')
- # Parse cli arguments and construct a dictionary
- # that will be passed to the package installer
- update_kwargs_from_args(args, kwargs)
-
- if args.run_tests:
- tty.warn("Deprecated option: --run-tests: use --test=all instead")
+ if args.deprecated:
+ spack.config.set('config:deprecated', True, scope='command_line')
# 1. Abstract specs from cli
abstract_specs = spack.cmd.parse_specs(args.spec)
- tests = False
- if args.test == 'all' or args.run_tests:
- tests = True
- elif args.test == 'root':
- tests = [spec.name for spec in abstract_specs]
+ tests = get_tests(abstract_specs)
kwargs['tests'] = tests
try:
@@ -309,7 +401,10 @@ environment variables:
# 2. Concrete specs from yaml files
for file in args.specfiles:
with open(file, 'r') as f:
- s = spack.spec.Spec.from_yaml(f)
+ if file.endswith('yaml') or file.endswith('yml'):
+ s = spack.spec.Spec.from_yaml(f)
+ else:
+ s = spack.spec.Spec.from_json(f)
concretized = s.concretized()
if concretized.dag_hash() != s.dag_hash():
@@ -362,4 +457,17 @@ environment variables:
# overwrite all concrete explicit specs from this build
kwargs['overwrite'] = [spec.dag_hash() for spec in specs]
+ # Update install_args with the monitor args, needed for build task
+ kwargs.update({
+ "monitor_disable_auth": args.monitor_disable_auth,
+ "monitor_keep_going": args.monitor_keep_going,
+ "monitor_host": args.monitor_host,
+ "use_monitor": args.use_monitor,
+ "monitor_prefix": args.monitor_prefix,
+ })
+
+ # If we are using the monitor, we send configs. and create build
+ # The full_hash is the main package id, the build_hash for others
+ if args.use_monitor and specs:
+ monitor.new_configuration(specs)
install_specs(args, kwargs, zip(abstract_specs, specs))
diff --git a/lib/spack/spack/cmd/license.py b/lib/spack/spack/cmd/license.py
index 84a4a02282..3627b35391 100644
--- a/lib/spack/spack/cmd/license.py
+++ b/lib/spack/spack/cmd/license.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,6 +9,7 @@ import os
import re
from collections import defaultdict
+import llnl.util.filesystem as fs
import llnl.util.tty as tty
import spack.paths
@@ -36,12 +37,14 @@ licensed_files = [
# all of spack core
r'^lib/spack/spack/.*\.py$',
r'^lib/spack/spack/.*\.sh$',
+ r'^lib/spack/spack/.*\.lp$',
r'^lib/spack/llnl/.*\.py$',
r'^lib/spack/env/cc$',
# rst files in documentation
r'^lib/spack/docs/(?!command_index|spack|llnl).*\.rst$',
r'^lib/spack/docs/.*\.py$',
+ r'^lib/spack/docs/spack.yaml$',
# 2 files in external
r'^lib/spack/external/__init__.py$',
@@ -51,7 +54,13 @@ licensed_files = [
r'^share/spack/.*\.sh$',
r'^share/spack/.*\.bash$',
r'^share/spack/.*\.csh$',
+ r'^share/spack/.*\.fish$',
r'^share/spack/qa/run-[^/]*$',
+ r'^share/spack/bash/spack-completion.in$',
+ r'^share/spack/templates/misc/coconcretization.pyt$',
+
+ # action workflows
+ r'^.github/actions/.*\.py$',
# all packages
r'^var/spack/repos/.*/package.py$'
@@ -77,15 +86,15 @@ def _all_spack_files(root=spack.paths.prefix):
visited.add(path)
-def _licensed_files(root=spack.paths.prefix):
- for relpath in _all_spack_files(root):
+def _licensed_files(args):
+ for relpath in _all_spack_files(args.root):
if any(regex.match(relpath) for regex in licensed_files):
yield relpath
def list_files(args):
"""list files in spack that should have license headers"""
- for relpath in sorted(_licensed_files()):
+ for relpath in sorted(_licensed_files(args)):
print(os.path.join(spack.paths.spack_root, relpath))
@@ -93,6 +102,8 @@ def list_files(args):
# bool(value) evaluates to True
OLD_LICENSE, SPDX_MISMATCH, GENERAL_MISMATCH = range(1, 4)
+strict_date = r'Copyright 2013-2021'
+
class LicenseError(object):
def __init__(self):
@@ -118,17 +129,15 @@ class LicenseError(object):
def _check_license(lines, path):
license_lines = [
- r'Copyright 2013-(?:201[789]|202\d) Lawrence Livermore National Security, LLC and other', # noqa: E501
+ r'Copyright 2013-(?:202[01]) Lawrence Livermore National Security, LLC and other', # noqa: E501
r'Spack Project Developers\. See the top-level COPYRIGHT file for details.', # noqa: E501
r'SPDX-License-Identifier: \(Apache-2\.0 OR MIT\)'
]
- strict_date = r'Copyright 2013-2020'
-
found = []
for line in lines:
- line = re.sub(r'^[\s#\.]*', '', line)
+ line = re.sub(r'^[\s#\%\.]*', '', line)
line = line.rstrip()
for i, license_line in enumerate(license_lines):
if re.match(license_line, line):
@@ -166,7 +175,8 @@ def _check_license(lines, path):
if error:
return error
- print('{0}: the license does not match the expected format'.format(path))
+ print('{0}: the license header at the top of the file does not match the \
+ expected format'.format(path))
return GENERAL_MISMATCH
@@ -175,7 +185,7 @@ def verify(args):
license_errors = LicenseError()
- for relpath in _licensed_files(args.root):
+ for relpath in _licensed_files(args):
path = os.path.join(args.root, relpath)
with open(path) as f:
lines = [line for line in f][:license_lines]
@@ -190,15 +200,28 @@ def verify(args):
tty.msg('No license issues found.')
-def setup_parser(subparser):
- sp = subparser.add_subparsers(metavar='SUBCOMMAND', dest='license_command')
- sp.add_parser('list-files', help=list_files.__doc__)
+def update_copyright_year(args):
+ """update copyright for the current year in all licensed files"""
- verify_parser = sp.add_parser('verify', help=verify.__doc__)
- verify_parser.add_argument(
+ llns_and_other = ' Lawrence Livermore National Security, LLC and other'
+ for filename in _licensed_files(args):
+ fs.filter_file(
+ r'Copyright \d{4}-\d{4}' + llns_and_other,
+ strict_date + llns_and_other,
+ os.path.join(args.root, filename)
+ )
+
+
+def setup_parser(subparser):
+ subparser.add_argument(
'--root', action='store', default=spack.paths.prefix,
help='scan a different prefix for license issues')
+ sp = subparser.add_subparsers(metavar='SUBCOMMAND', dest='license_command')
+ sp.add_parser('list-files', help=list_files.__doc__)
+ sp.add_parser('verify', help=verify.__doc__)
+ sp.add_parser('update-copyright-year', help=update_copyright_year.__doc__)
+
def license(parser, args):
if not git:
@@ -209,5 +232,6 @@ def license(parser, args):
commands = {
'list-files': list_files,
'verify': verify,
+ 'update-copyright-year': update_copyright_year,
}
return commands[args.license_command](args)
diff --git a/lib/spack/spack/cmd/list.py b/lib/spack/spack/cmd/list.py
index a7d4cb0ac3..80f7e7a287 100644
--- a/lib/spack/spack/cmd/list.py
+++ b/lib/spack/spack/cmd/list.py
@@ -1,25 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-from __future__ import division
+from __future__ import division, print_function
import argparse
import fnmatch
+import json
+import math
import os
import re
import sys
-import math
-import json
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
+import spack.cmd.common.arguments as arguments
import spack.dependency
import spack.repo
-import spack.cmd.common.arguments as arguments
from spack.version import VersionList
if sys.version_info > (3, 1):
diff --git a/lib/spack/spack/cmd/load.py b/lib/spack/spack/cmd/load.py
index a8f59fef2f..8bfeac7e69 100644
--- a/lib/spack/spack/cmd/load.py
+++ b/lib/spack/spack/cmd/load.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,9 @@ import sys
import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev
-import spack.util.environment
-import spack.user_environment as uenv
import spack.store
+import spack.user_environment as uenv
+import spack.util.environment
description = "add package to the user environment"
section = "user environment"
@@ -55,7 +55,7 @@ the dependencies"""
def load(parser, args):
- env = ev.get_env(args, 'load')
+ env = ev.active_environment()
specs = [spack.cmd.disambiguate_spec(spec, env, first=args.load_first)
for spec in spack.cmd.parse_specs(args.specs)]
@@ -63,7 +63,7 @@ def load(parser, args):
specs_str = ' '.join(args.specs) or "SPECS"
spack.cmd.common.shell_init_instructions(
"spack load",
- " eval `spack load {sh_arg}` %s" % specs_str,
+ " eval `spack load {sh_arg} %s`" % specs_str,
)
return 1
diff --git a/lib/spack/spack/cmd/location.py b/lib/spack/spack/cmd/location.py
index 650e8a477a..f844f51ed6 100644
--- a/lib/spack/spack/cmd/location.py
+++ b/lib/spack/spack/cmd/location.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,12 +6,12 @@
from __future__ import print_function
import os
+
import llnl.util.tty as tty
-import spack.environment as ev
import spack.cmd
import spack.cmd.common.arguments as arguments
-import spack.environment
+import spack.environment as ev
import spack.paths
import spack.repo
import spack.stage
@@ -56,7 +56,7 @@ def setup_parser(subparser):
help="build directory for a spec "
"(requires it to be staged first)")
directories.add_argument(
- '-e', '--env', action='store',
+ '-e', '--env', action='store', dest='location_env',
help="location of an environment managed by spack")
arguments.add_common_arguments(subparser, ['spec'])
@@ -71,10 +71,10 @@ def location(parser, args):
print(spack.paths.prefix)
return
- if args.env:
- path = spack.environment.root(args.env)
+ if args.location_env:
+ path = ev.root(args.location_env)
if not os.path.isdir(path):
- tty.die("no such environment: '%s'" % args.env)
+ tty.die("no such environment: '%s'" % args.location_env)
print(path)
return
@@ -96,7 +96,7 @@ def location(parser, args):
# install_dir command matches against installed specs.
if args.install_dir:
- env = ev.get_env(args, 'location')
+ env = ev.active_environment()
spec = spack.cmd.disambiguate_spec(specs[0], env)
print(spec.prefix)
return
@@ -119,8 +119,8 @@ def location(parser, args):
if args.build_dir:
# Out of source builds have build_directory defined
if hasattr(pkg, 'build_directory'):
- # build_directory can be either absolute or relative to the
- # stage path in either case os.path.join makes it absolute
+ # build_directory can be either absolute or relative to the stage path
+ # in either case os.path.join makes it absolute
print(os.path.normpath(os.path.join(
pkg.stage.path,
pkg.build_directory
diff --git a/lib/spack/spack/cmd/log_parse.py b/lib/spack/spack/cmd/log_parse.py
index faa44a4ef0..64c034ae25 100644
--- a/lib/spack/spack/cmd/log_parse.py
+++ b/lib/spack/spack/cmd/log_parse.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,8 @@
import sys
import llnl.util.tty as tty
-from spack.util.log_parse import parse_log_events, make_log_context
+
+from spack.util.log_parse import make_log_context, parse_log_events
description = "filter errors and warnings from build logs"
section = "build"
diff --git a/lib/spack/spack/cmd/maintainers.py b/lib/spack/spack/cmd/maintainers.py
index a1cf477146..18d294da0d 100644
--- a/lib/spack/spack/cmd/maintainers.py
+++ b/lib/spack/spack/cmd/maintainers.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,6 @@ import llnl.util.tty as tty
import llnl.util.tty.color as color
from llnl.util.tty.colify import colify
-
import spack.repo
description = "get information about package maintainers"
diff --git a/lib/spack/spack/cmd/mark.py b/lib/spack/spack/cmd/mark.py
index 85a22b9741..3dfd075312 100644
--- a/lib/spack/spack/cmd/mark.py
+++ b/lib/spack/spack/cmd/mark.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,16 @@ from __future__ import print_function
import sys
+from llnl.util import tty
+
import spack.cmd
+import spack.cmd.common.arguments as arguments
import spack.error
import spack.package
-import spack.cmd.common.arguments as arguments
import spack.repo
import spack.store
from spack.database import InstallStatuses
-from llnl.util import tty
-
description = "mark packages as explicitly or implicitly installed"
section = "admin"
level = "long"
diff --git a/lib/spack/spack/cmd/mirror.py b/lib/spack/spack/cmd/mirror.py
index 2d338204d3..fa202f09f0 100644
--- a/lib/spack/spack/cmd/mirror.py
+++ b/lib/spack/spack/cmd/mirror.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,9 +17,8 @@ import spack.mirror
import spack.repo
import spack.util.url as url_util
import spack.util.web as web_util
-
-from spack.spec import Spec
from spack.error import SpackError
+from spack.spec import Spec
from spack.util.spack_yaml import syaml_dict
description = "manage mirrors (source and binary)"
@@ -28,7 +27,7 @@ level = "long"
def setup_parser(subparser):
- arguments.add_common_arguments(subparser, ['no_checksum'])
+ arguments.add_common_arguments(subparser, ['no_checksum', 'deprecated'])
sp = subparser.add_subparsers(
metavar='SUBCOMMAND', dest='mirror_command')
@@ -67,6 +66,19 @@ def setup_parser(subparser):
" retrieve all versions of each package")
arguments.add_common_arguments(create_parser, ['specs'])
+ # Destroy
+ destroy_parser = sp.add_parser('destroy', help=mirror_destroy.__doc__)
+
+ destroy_target = destroy_parser.add_mutually_exclusive_group(required=True)
+ destroy_target.add_argument('-m', '--mirror-name',
+ metavar='mirror_name',
+ type=str,
+ help="find mirror to destroy by name")
+ destroy_target.add_argument('--mirror-url',
+ metavar='mirror_url',
+ type=str,
+ help="find mirror to destroy by url")
+
# used to construct scope arguments below
scopes = spack.config.scopes()
scopes_metavar = spack.config.scopes_metavar
@@ -117,50 +129,12 @@ def setup_parser(subparser):
def mirror_add(args):
"""Add a mirror to Spack."""
url = url_util.format(args.url)
-
- mirrors = spack.config.get('mirrors', scope=args.scope)
- if not mirrors:
- mirrors = syaml_dict()
-
- if args.name in mirrors:
- tty.die("Mirror with name %s already exists." % args.name)
-
- items = [(n, u) for n, u in mirrors.items()]
- items.insert(0, (args.name, url))
- mirrors = syaml_dict(items)
- spack.config.set('mirrors', mirrors, scope=args.scope)
+ spack.mirror.add(args.name, url, args.scope)
def mirror_remove(args):
"""Remove a mirror by name."""
- name = args.name
-
- mirrors = spack.config.get('mirrors', scope=args.scope)
- if not mirrors:
- mirrors = syaml_dict()
-
- if name not in mirrors:
- tty.die("No mirror with name %s" % name)
-
- old_value = mirrors.pop(name)
- spack.config.set('mirrors', mirrors, scope=args.scope)
-
- debug_msg_url = "url %s"
- debug_msg = ["Removed mirror %s with"]
- values = [name]
-
- try:
- fetch_value = old_value['fetch']
- push_value = old_value['push']
-
- debug_msg.extend(("fetch", debug_msg_url, "and push", debug_msg_url))
- values.extend((fetch_value, push_value))
- except TypeError:
- debug_msg.append(debug_msg_url)
- values.append(old_value)
-
- tty.debug(" ".join(debug_msg) % tuple(values))
- tty.msg("Removed mirror %s." % name)
+ spack.mirror.remove(args.name, args.scope)
def mirror_set_url(args):
@@ -279,7 +253,7 @@ def _determine_specs_to_mirror(args):
"To mirror all packages, use the '--all' option"
" (this will require significant time and space).")
- env = ev.get_env(args, 'mirror')
+ env = ev.active_environment()
if env:
env_specs = env.all_specs()
else:
@@ -360,8 +334,22 @@ def mirror_create(args):
sys.exit(1)
+def mirror_destroy(args):
+ """Given a url, recursively delete everything under it."""
+ mirror_url = None
+
+ if args.mirror_name:
+ result = spack.mirror.MirrorCollection().lookup(args.mirror_name)
+ mirror_url = result.push_url
+ elif args.mirror_url:
+ mirror_url = args.mirror_url
+
+ web_util.remove_url(mirror_url, recursive=True)
+
+
def mirror(parser, args):
action = {'create': mirror_create,
+ 'destroy': mirror_destroy,
'add': mirror_add,
'remove': mirror_remove,
'rm': mirror_remove,
@@ -371,4 +359,7 @@ def mirror(parser, args):
if args.no_checksum:
spack.config.set('config:checksum', False, scope='command_line')
+ if args.deprecated:
+ spack.config.set('config:deprecated', True, scope='command_line')
+
action[args.mirror_command](args)
diff --git a/lib/spack/spack/cmd/module.py b/lib/spack/spack/cmd/module.py
index f86f3e5f25..1df0bf920a 100644
--- a/lib/spack/spack/cmd/module.py
+++ b/lib/spack/spack/cmd/module.py
@@ -1,23 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import argparse
-
-import llnl.util.tty as tty
+from typing import Callable, Dict # novm
import spack.cmd.modules.lmod
import spack.cmd.modules.tcl
-description = "manipulate module files"
+description = "generate/manage module files"
section = "user environment"
level = "short"
-_subcommands = {}
-
-_deprecated_commands = ('refresh', 'find', 'rm', 'loads')
+_subcommands = {} # type: Dict[str, Callable]
def setup_parser(subparser):
@@ -25,41 +21,6 @@ def setup_parser(subparser):
spack.cmd.modules.lmod.add_command(sp, _subcommands)
spack.cmd.modules.tcl.add_command(sp, _subcommands)
- for name in _deprecated_commands:
- add_deprecated_command(sp, name)
-
-
-def add_deprecated_command(subparser, name):
- parser = subparser.add_parser(name)
- parser.add_argument(
- '-m', '--module-type', help=argparse.SUPPRESS,
- choices=spack.modules.module_types.keys(), action='append'
- )
-
-
-def handle_deprecated_command(args, unknown_args):
- command = args.module_command
- unknown = ' '.join(unknown_args)
-
- module_types = args.module_type or ['tcl']
-
- msg = '`spack module {0} {1}` has moved. Use these commands instead:\n'
- msg = msg.format(command, ' '.join('-m ' + x for x in module_types))
- for x in module_types:
- msg += '\n\t$ spack module {0} {1} {2}'.format(x, command, unknown)
- msg += '\n'
- tty.die(msg)
-
-
-def module(parser, args, unknown_args):
-
- # Here we permit unknown arguments to intercept deprecated calls
- if args.module_command in _deprecated_commands:
- handle_deprecated_command(args, unknown_args)
-
- # Fail if unknown arguments are present, once we excluded a deprecated
- # command
- if unknown_args:
- tty.die('unrecognized arguments: {0}'.format(' '.join(unknown_args)))
+def module(parser, args):
_subcommands[args.module_command](parser, args)
diff --git a/lib/spack/spack/cmd/modules/__init__.py b/lib/spack/spack/cmd/modules/__init__.py
index 7f3dd29ef1..2098e67b73 100644
--- a/lib/spack/spack/cmd/modules/__init__.py
+++ b/lib/spack/spack/cmd/modules/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,11 +13,11 @@ import sys
from llnl.util import filesystem, tty
import spack.cmd
+import spack.cmd.common.arguments as arguments
+import spack.config
import spack.modules
-import spack.repo
import spack.modules.common
-
-import spack.cmd.common.arguments as arguments
+import spack.repo
description = "manipulate module files"
section = "environment"
@@ -25,6 +25,11 @@ level = "short"
def setup_parser(subparser):
+ subparser.add_argument(
+ '-n', '--name',
+ action='store', dest='module_set_name', default='default',
+ help="Named module set to use from modules configuration."
+ )
sp = subparser.add_subparsers(metavar='SUBCOMMAND', dest='subparser_name')
refresh_parser = sp.add_parser('refresh', help='regenerate module files')
@@ -111,6 +116,19 @@ def one_spec_or_raise(specs):
return specs[0]
+def check_module_set_name(name):
+ modules_config = spack.config.get('modules')
+ valid_names = set([key for key, value in modules_config.items()
+ if isinstance(value, dict) and value.get('enable', [])])
+ if 'enable' in modules_config and modules_config['enable']:
+ valid_names.add('default')
+
+ if name not in valid_names:
+ msg = "Cannot use invalid module set %s." % name
+ msg += " Valid module set names are %s" % list(valid_names)
+ raise spack.config.ConfigError(msg)
+
+
_missing_modules_warning = (
"Modules have been omitted for one or more specs, either"
" because they were blacklisted or because the spec is"
@@ -121,6 +139,7 @@ _missing_modules_warning = (
def loads(module_type, specs, args, out=None):
"""Prompt the list of modules associated with a list of specs"""
+ check_module_set_name(args.module_set_name)
out = sys.stdout if out is None else out
# Get a comprehensive list of specs
@@ -142,7 +161,8 @@ def loads(module_type, specs, args, out=None):
modules = list(
(spec,
spack.modules.common.get_module(
- module_type, spec, get_full_path=False, required=False))
+ module_type, spec, get_full_path=False,
+ module_set_name=args.module_set_name, required=False))
for spec in specs)
module_commands = {
@@ -177,6 +197,7 @@ def loads(module_type, specs, args, out=None):
def find(module_type, specs, args):
"""Retrieve paths or use names of module files"""
+ check_module_set_name(args.module_set_name)
single_spec = one_spec_or_raise(specs)
@@ -190,12 +211,14 @@ def find(module_type, specs, args):
try:
modules = [
spack.modules.common.get_module(
- module_type, spec, args.full_path, required=False)
+ module_type, spec, args.full_path,
+ module_set_name=args.module_set_name, required=False)
for spec in dependency_specs_to_retrieve]
modules.append(
spack.modules.common.get_module(
- module_type, single_spec, args.full_path, required=True))
+ module_type, single_spec, args.full_path,
+ module_set_name=args.module_set_name, required=True))
except spack.modules.common.ModuleNotFoundError as e:
tty.die(e.message)
@@ -209,13 +232,16 @@ def rm(module_type, specs, args):
"""Deletes the module files associated with every spec in specs, for every
module type in module types.
"""
+ check_module_set_name(args.module_set_name)
module_cls = spack.modules.module_types[module_type]
- module_exist = lambda x: os.path.exists(module_cls(x).layout.filename)
+ module_exist = lambda x: os.path.exists(
+ module_cls(x, args.module_set_name).layout.filename)
specs_with_modules = [spec for spec in specs if module_exist(spec)]
- modules = [module_cls(spec) for spec in specs_with_modules]
+ modules = [module_cls(spec, args.module_set_name)
+ for spec in specs_with_modules]
if not modules:
tty.die('No module file matches your query')
@@ -239,6 +265,7 @@ def refresh(module_type, specs, args):
"""Regenerates the module files for every spec in specs and every module
type in module types.
"""
+ check_module_set_name(args.module_set_name)
# Prompt a message to the user about what is going to change
if not specs:
@@ -263,7 +290,7 @@ def refresh(module_type, specs, args):
# Skip unknown packages.
writers = [
- cls(spec) for spec in specs
+ cls(spec, args.module_set_name) for spec in specs
if spack.repo.path.exists(spec.name)]
# Filter blacklisted packages early
diff --git a/lib/spack/spack/cmd/modules/lmod.py b/lib/spack/spack/cmd/modules/lmod.py
index d3610bf333..d28ccb3eaf 100644
--- a/lib/spack/spack/cmd/modules/lmod.py
+++ b/lib/spack/spack/cmd/modules/lmod.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,6 +7,7 @@ import functools
import os
import llnl.util.filesystem
+
import spack.cmd.common.arguments
import spack.cmd.modules
@@ -40,7 +41,8 @@ def setdefault(module_type, specs, args):
# https://lmod.readthedocs.io/en/latest/060_locating.html#marking-a-version-as-default
#
spack.cmd.modules.one_spec_or_raise(specs)
- writer = spack.modules.module_types['lmod'](specs[0])
+ writer = spack.modules.module_types['lmod'](
+ specs[0], args.module_set_name)
module_folder = os.path.dirname(writer.layout.filename)
module_basename = os.path.basename(writer.layout.filename)
diff --git a/lib/spack/spack/cmd/modules/tcl.py b/lib/spack/spack/cmd/modules/tcl.py
index cdde21e821..a9486b9de4 100644
--- a/lib/spack/spack/cmd/modules/tcl.py
+++ b/lib/spack/spack/cmd/modules/tcl.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/monitor.py b/lib/spack/spack/cmd/monitor.py
new file mode 100644
index 0000000000..90371f446f
--- /dev/null
+++ b/lib/spack/spack/cmd/monitor.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2021 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)
+
+import spack.monitor
+
+description = "interact with a monitor server"
+section = "analysis"
+level = "long"
+
+
+def setup_parser(subparser):
+ sp = subparser.add_subparsers(metavar='SUBCOMMAND', dest='monitor_command')
+
+ # This adds the monitor group to the subparser
+ spack.monitor.get_monitor_group(subparser)
+
+ # Spack Monitor Uploads
+ monitor_parser = sp.add_parser('upload', description="upload to spack monitor")
+ monitor_parser.add_argument("upload_dir", help="directory root to upload")
+
+
+def monitor(parser, args, **kwargs):
+
+ if args.monitor_command == "upload":
+ monitor = spack.monitor.get_client(
+ host=args.monitor_host,
+ prefix=args.monitor_prefix,
+ disable_auth=args.monitor_disable_auth,
+ )
+
+ # Upload the directory
+ monitor.upload_local_save(args.upload_dir)
diff --git a/lib/spack/spack/cmd/patch.py b/lib/spack/spack/cmd/patch.py
index 8f91edb8f1..bc1ef10afb 100644
--- a/lib/spack/spack/cmd/patch.py
+++ b/lib/spack/spack/cmd/patch.py
@@ -1,14 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import llnl.util.tty as tty
-import spack.repo
import spack.cmd
import spack.cmd.common.arguments as arguments
-
+import spack.repo
description = "patch expanded archive sources in preparation for install"
section = "build"
@@ -16,7 +15,8 @@ level = "long"
def setup_parser(subparser):
- arguments.add_common_arguments(subparser, ['no_checksum', 'specs'])
+ arguments.add_common_arguments(
+ subparser, ['no_checksum', 'deprecated', 'specs'])
def patch(parser, args):
@@ -26,6 +26,9 @@ def patch(parser, args):
if args.no_checksum:
spack.config.set('config:checksum', False, scope='command_line')
+ if args.deprecated:
+ spack.config.set('config:deprecated', True, scope='command_line')
+
specs = spack.cmd.parse_specs(args.specs, concretize=True)
for spec in specs:
package = spack.repo.get(spec)
diff --git a/lib/spack/spack/cmd/pkg.py b/lib/spack/spack/cmd/pkg.py
index b988d6a848..8440cbd82c 100644
--- a/lib/spack/spack/cmd/pkg.py
+++ b/lib/spack/spack/cmd/pkg.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ import os
import re
import llnl.util.tty as tty
-from llnl.util.tty.colify import colify
from llnl.util.filesystem import working_dir
+from llnl.util.tty.colify import colify
import spack.cmd
import spack.cmd.common.arguments as arguments
diff --git a/lib/spack/spack/cmd/providers.py b/lib/spack/spack/cmd/providers.py
index 8ca34542eb..0faeb41bdd 100644
--- a/lib/spack/spack/cmd/providers.py
+++ b/lib/spack/spack/cmd/providers.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import six
import sys
+import six
+
import llnl.util.tty.colify as colify
import spack.cmd
diff --git a/lib/spack/spack/cmd/pydoc.py b/lib/spack/spack/cmd/pydoc.py
index 1f81718e38..6e834932d0 100644
--- a/lib/spack/spack/cmd/pydoc.py
+++ b/lib/spack/spack/cmd/pydoc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/python.py b/lib/spack/spack/cmd/python.py
index 019e0cf27e..156e01b4ba 100644
--- a/lib/spack/spack/cmd/python.py
+++ b/lib/spack/spack/cmd/python.py
@@ -1,16 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-import os
-import sys
-import code
import argparse
+import code
+import os
import platform
import runpy
+import sys
import llnl.util.tty as tty
@@ -28,9 +28,15 @@ def setup_parser(subparser):
subparser.add_argument(
'-c', dest='python_command', help='command to execute')
subparser.add_argument(
+ '-i', dest='python_interpreter', help='python interpreter',
+ choices=['python', 'ipython'], default='python')
+ subparser.add_argument(
'-m', dest='module', action='store',
help='run library module as a script')
subparser.add_argument(
+ '--path', action='store_true', dest='show_path',
+ help='show path to python interpreter that spack uses')
+ subparser.add_argument(
'python_args', nargs=argparse.REMAINDER,
help="file to run plus arguments")
@@ -40,6 +46,10 @@ def python(parser, args, unknown_args):
print('Python', platform.python_version())
return
+ if args.show_path:
+ print(sys.executable)
+ return
+
if args.module:
sys.argv = ['spack-python'] + unknown_args + args.python_args
runpy.run_module(args.module, run_name="__main__", alter_sys=True)
@@ -48,24 +58,63 @@ def python(parser, args, unknown_args):
if unknown_args:
tty.die("Unknown arguments:", " ".join(unknown_args))
+ # Unexpected behavior from supplying both
+ if args.python_command and args.python_args:
+ tty.die("You can only specify a command OR script, but not both.")
+
+ # Run user choice of interpreter
+ if args.python_interpreter == "ipython":
+ return spack.cmd.python.ipython_interpreter(args)
+ return spack.cmd.python.python_interpreter(args)
+
+
+def ipython_interpreter(args):
+ """An ipython interpreter is intended to be interactive, so it doesn't
+ support running a script or arguments
+ """
+ try:
+ import IPython
+ except ImportError:
+ tty.die("ipython is not installed, install and try again.")
+
+ if "PYTHONSTARTUP" in os.environ:
+ startup_file = os.environ["PYTHONSTARTUP"]
+ if os.path.isfile(startup_file):
+ with open(startup_file) as startup:
+ exec(startup.read())
+
+ # IPython can also support running a script OR command, not both
+ if args.python_args:
+ IPython.start_ipython(argv=args.python_args)
+ elif args.python_command:
+ IPython.start_ipython(argv=['-c', args.python_command])
+ else:
+ header = ("Spack version %s\nPython %s, %s %s"
+ % (spack.spack_version, platform.python_version(),
+ platform.system(), platform.machine()))
+
+ __name__ = "__main__" # noqa
+ IPython.embed(module="__main__", header=header)
+
+
+def python_interpreter(args):
+ """A python interpreter is the default interpreter
+ """
# Fake a main python shell by setting __name__ to __main__.
console = code.InteractiveConsole({'__name__': '__main__',
'spack': spack})
-
if "PYTHONSTARTUP" in os.environ:
startup_file = os.environ["PYTHONSTARTUP"]
if os.path.isfile(startup_file):
with open(startup_file) as startup:
console.runsource(startup.read(), startup_file, 'exec')
- python_args = args.python_args
- python_command = args.python_command
- if python_command:
- console.runsource(python_command)
- elif python_args:
- sys.argv = python_args
- with open(python_args[0]) as file:
- console.runsource(file.read(), python_args[0], 'exec')
+ if args.python_command:
+ console.runsource(args.python_command)
+ elif args.python_args:
+ sys.argv = args.python_args
+ with open(args.python_args[0]) as file:
+ console.runsource(file.read(), args.python_args[0], 'exec')
else:
# Provides readline support, allowing user to use arrow keys
console.push('import readline')
diff --git a/lib/spack/spack/cmd/reindex.py b/lib/spack/spack/cmd/reindex.py
index b9f3a2ac3b..1ff5488f5b 100644
--- a/lib/spack/spack/cmd/reindex.py
+++ b/lib/spack/spack/cmd/reindex.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/remove.py b/lib/spack/spack/cmd/remove.py
index ef01052c29..a2417089db 100644
--- a/lib/spack/spack/cmd/remove.py
+++ b/lib/spack/spack/cmd/remove.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,6 @@ import llnl.util.tty as tty
import spack.cmd
import spack.cmd.common.arguments as arguments
-import spack.environment as ev
-
description = 'remove specs from an environment'
section = "environments"
@@ -29,7 +27,7 @@ def setup_parser(subparser):
def remove(parser, args):
- env = ev.get_env(args, 'remove', required=True)
+ env = spack.cmd.require_active_env(cmd_name='remove')
with env.write_transaction():
if args.all:
diff --git a/lib/spack/spack/cmd/repo.py b/lib/spack/spack/cmd/repo.py
index f271790994..250f57dcd7 100644
--- a/lib/spack/spack/cmd/repo.py
+++ b/lib/spack/spack/cmd/repo.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,6 +8,7 @@ from __future__ import print_function
import os
import llnl.util.tty as tty
+
import spack.config
import spack.repo
import spack.util.path
diff --git a/lib/spack/spack/cmd/resource.py b/lib/spack/spack/cmd/resource.py
index 0d26c39ab8..6d39991b42 100644
--- a/lib/spack/spack/cmd/resource.py
+++ b/lib/spack/spack/cmd/resource.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
+
import os
import llnl.util.tty as tty
@@ -11,7 +12,6 @@ import llnl.util.tty.color as color
import spack.repo
-
description = "list downloadable resources (tarballs, repos, patches, etc.)"
section = "basic"
level = "long"
diff --git a/lib/spack/spack/cmd/restage.py b/lib/spack/spack/cmd/restage.py
index 0f55884bfe..b0582498d6 100644
--- a/lib/spack/spack/cmd/restage.py
+++ b/lib/spack/spack/cmd/restage.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/setup.py b/lib/spack/spack/cmd/setup.py
deleted file mode 100644
index 45919893cc..0000000000
--- a/lib/spack/spack/cmd/setup.py
+++ /dev/null
@@ -1,163 +0,0 @@
-# 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)
-
-import argparse
-import copy
-import os
-import sys
-
-import llnl.util.tty as tty
-from llnl.util.filesystem import set_executable
-
-import spack.repo
-import spack.store
-import spack.build_systems.cmake
-import spack.cmd
-import spack.cmd.install as install
-import spack.cmd.common.arguments as arguments
-from spack.util.executable import which
-
-from spack.stage import DIYStage
-
-description = "create a configuration script and module, but don't build"
-section = "build"
-level = "long"
-
-
-def setup_parser(subparser):
- subparser.add_argument(
- '-i', '--ignore-dependencies', action='store_true', dest='ignore_deps',
- help="do not try to install dependencies of requested packages")
- arguments.add_common_arguments(subparser, ['no_checksum', 'spec'])
- subparser.add_argument(
- '-v', '--verbose', action='store_true', dest='verbose',
- help="display verbose build output while installing")
-
- cd_group = subparser.add_mutually_exclusive_group()
- arguments.add_common_arguments(cd_group, ['clean', 'dirty'])
- subparser.epilog = 'DEPRECATED: use `spack dev-build` instead'
-
-
-def write_spconfig(package, dirty):
- # Set-up the environment
- spack.build_environment.setup_package(package, dirty)
-
- cmd = [str(which('cmake'))] + package.std_cmake_args + package.cmake_args()
-
- env = dict()
-
- paths = os.environ['PATH'].split(':')
- paths = [item for item in paths if 'spack/env' not in item]
- env['PATH'] = ':'.join(paths)
- env['CMAKE_PREFIX_PATH'] = os.environ['CMAKE_PREFIX_PATH']
- env['SPACK_INCLUDE_DIRS'] = os.environ['SPACK_INCLUDE_DIRS']
- env['CC'] = os.environ['SPACK_CC']
- env['CXX'] = os.environ['SPACK_CXX']
- env['FC'] = os.environ['SPACK_FC']
-
- setup_fname = 'spconfig.py'
- with open(setup_fname, 'w') as fout:
- fout.write(
- r"""#!%s
-#
-
-import sys
-import os
-import subprocess
-
-def cmdlist(str):
- return list(x.strip().replace("'",'') for x in str.split('\n') if x)
-env = dict(os.environ)
-""" % sys.executable)
-
- env_vars = sorted(list(env.keys()))
- for name in env_vars:
- val = env[name]
- if name.find('PATH') < 0:
- fout.write('env[%s] = %s\n' % (repr(name), repr(val)))
- else:
- if name == 'SPACK_INCLUDE_DIRS':
- sep = ';'
- else:
- sep = ':'
-
- fout.write(
- 'env[%s] = "%s".join(cmdlist("""\n' % (repr(name), sep))
- for part in val.split(sep):
- fout.write(' %s\n' % part)
- fout.write('"""))\n')
-
- fout.write('\ncmd = cmdlist("""\n')
- fout.write('%s\n' % cmd[0])
- for arg in cmd[1:]:
- fout.write(' %s\n' % arg)
- fout.write('""") + sys.argv[1:]\n')
- fout.write('\nproc = subprocess.Popen(cmd, env=env)\nproc.wait()\n')
- set_executable(setup_fname)
-
-
-def setup(self, args):
- tty.warn('DEPRECATED: use `spack dev-build` instead')
-
- if not args.spec:
- tty.die("spack setup requires a package spec argument.")
-
- specs = spack.cmd.parse_specs(args.spec)
- if len(specs) > 1:
- tty.die("spack setup only takes one spec.")
-
- # Take a write lock before checking for existence.
- with spack.store.db.write_transaction():
- spec = specs[0]
- if not spack.repo.path.exists(spec.name):
- tty.die("No package for '{0}' was found.".format(spec.name),
- " Use `spack create` to create a new package")
- if not spec.versions.concrete:
- tty.die(
- "spack setup spec must have a single, concrete version. "
- "Did you forget a package version number?")
-
- spec.concretize()
- package = spack.repo.get(spec)
- if not isinstance(package, spack.build_systems.cmake.CMakePackage):
- tty.die(
- 'Support for {0} derived packages not yet implemented'.format(
- package.build_system_class))
-
- # It's OK if the package is already installed.
-
- # Forces the build to run out of the current directory.
- package.stage = DIYStage(os.getcwd())
-
- # disable checksumming if requested
- if args.no_checksum:
- spack.config.set('config:checksum', False, scope='command_line')
-
- # Install dependencies if requested to do so
- if not args.ignore_deps:
- parser = argparse.ArgumentParser()
- install.setup_parser(parser)
- inst_args = copy.deepcopy(args)
- inst_args = parser.parse_args(
- ['--only=dependencies'] + args.spec,
- namespace=inst_args
- )
- install.install(parser, inst_args)
-
- # Generate spconfig.py
- tty.msg(
- 'Generating spconfig.py [{0}]'.format(package.spec.cshort_spec)
- )
- dirty = args.dirty
- write_spconfig(package, dirty)
-
- # Install this package to register it in the DB and permit
- # module file regeneration
- inst_args = copy.deepcopy(args)
- inst_args = parser.parse_args(
- ['--only=package', '--fake'] + args.spec,
- namespace=inst_args
- )
- install.install(parser, inst_args)
diff --git a/lib/spack/spack/cmd/solve.py b/lib/spack/spack/cmd/solve.py
index ff6ab4e676..d276fa3a43 100644
--- a/lib/spack/spack/cmd/solve.py
+++ b/lib/spack/spack/cmd/solve.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,7 @@ import re
import sys
import llnl.util.tty as tty
+import llnl.util.tty.color as color
import spack
import spack.cmd
@@ -23,15 +24,20 @@ section = 'developer'
level = 'long'
#: output options
-show_options = ('asp', 'output', 'solutions')
+show_options = ('asp', 'opt', 'output', 'solutions')
def setup_parser(subparser):
# Solver arguments
subparser.add_argument(
- '--show', action='store', default=('solutions'),
- help="outputs: a list with any of: "
- "%s (default), all" % ', '.join(show_options))
+ '--show', action='store', default='opt,solutions',
+ help="select outputs: comma-separated list of: \n"
+ " asp asp program text\n"
+ " opt optimization criteria for best model\n"
+ " output raw clingo output\n"
+ " solutions models found by asp program\n"
+ " all all of the above"
+ )
subparser.add_argument(
'--models', action='store', type=int, default=0,
help="number of solutions to search (default 0 for all)")
@@ -41,10 +47,10 @@ def setup_parser(subparser):
subparser, ['long', 'very_long', 'install_status'])
subparser.add_argument(
'-y', '--yaml', action='store_const', dest='format', default=None,
- const='yaml', help='print concrete spec as YAML')
+ const='yaml', help='print concrete spec as yaml')
subparser.add_argument(
'-j', '--json', action='store_const', dest='format', default=None,
- const='json', help='print concrete spec as YAML')
+ const='json', help='print concrete spec as json')
subparser.add_argument(
'-c', '--cover', action='store',
default='nodes', choices=['nodes', 'edges', 'paths'],
@@ -110,23 +116,21 @@ def solve(parser, args):
# dump the solutions as concretized specs
if 'solutions' in dump:
- best = min(result.answers)
-
- opt, _, answer = best
- if not args.format:
- tty.msg("Best of %d answers." % result.nmodels)
- tty.msg("Optimization: %s" % opt)
-
- # iterate over roots from command line
- for input_spec in specs:
- key = input_spec.name
- if input_spec.virtual:
- providers = [spec.name for spec in answer.values()
- if spec.package.provides(key)]
- key = providers[0]
-
- spec = answer[key]
-
+ opt, _, _ = min(result.answers)
+ if ("opt" in dump) and (not args.format):
+ tty.msg("Best of %d considered solutions." % result.nmodels)
+ tty.msg("Optimization Criteria:")
+
+ maxlen = max(len(s) for s in result.criteria)
+ color.cprint(
+ "@*{ Priority Criterion %sValue}" % ((maxlen - 10) * " ")
+ )
+ for i, (name, val) in enumerate(zip(result.criteria, opt)):
+ fmt = " @K{%%-8d} %%-%ds%%5d" % maxlen
+ color.cprint(fmt % (i + 1, name, val))
+ print()
+
+ for spec in result.specs:
# With -y, just print YAML to output.
if args.format == 'yaml':
# use write because to_yaml already has a newline.
diff --git a/lib/spack/spack/cmd/spec.py b/lib/spack/spack/cmd/spec.py
index cbfd58ec1a..592da60388 100644
--- a/lib/spack/spack/cmd/spec.py
+++ b/lib/spack/spack/cmd/spec.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,9 +13,9 @@ import llnl.util.tty as tty
import spack
import spack.cmd
import spack.cmd.common.arguments as arguments
+import spack.hash_types as ht
import spack.spec
import spack.store
-import spack.hash_types as ht
description = "show what would be installed, given a spec"
section = "build"
@@ -43,6 +43,10 @@ for further documentation regarding the spec syntax, see:
'-N', '--namespaces', action='store_true', default=False,
help='show fully qualified package names')
subparser.add_argument(
+ '--hash-type', default="build_hash",
+ choices=['build_hash', 'full_hash', 'dag_hash'],
+ help='generate spec with a particular hash type.')
+ subparser.add_argument(
'-t', '--types', action='store_true', default=False,
help='show dependency types')
arguments.add_common_arguments(subparser, ['specs'])
@@ -83,11 +87,14 @@ def spec(parser, args):
if spec.name in spack.repo.path or spec.virtual:
spec.concretize()
+ # The user can specify the hash type to use
+ hash_type = getattr(ht, args.hash_type)
+
if args.format == 'yaml':
# use write because to_yaml already has a newline.
- sys.stdout.write(spec.to_yaml(hash=ht.build_hash))
+ sys.stdout.write(spec.to_yaml(hash=hash_type))
else:
- print(spec.to_json(hash=ht.build_hash))
+ print(spec.to_json(hash=hash_type))
continue
with tree_context():
diff --git a/lib/spack/spack/cmd/stage.py b/lib/spack/spack/cmd/stage.py
index 1acefb723c..8903cb83e5 100644
--- a/lib/spack/spack/cmd/stage.py
+++ b/lib/spack/spack/cmd/stage.py
@@ -1,14 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
import llnl.util.tty as tty
-import spack.environment as ev
-import spack.repo
import spack.cmd
import spack.cmd.common.arguments as arguments
+import spack.environment as ev
+import spack.repo
+import spack.stage
description = "expand downloaded archive in preparation for install"
section = "build"
@@ -16,20 +19,29 @@ level = "long"
def setup_parser(subparser):
- arguments.add_common_arguments(subparser, ['no_checksum', 'specs'])
+ arguments.add_common_arguments(
+ subparser, ['no_checksum', 'deprecated', 'specs'])
subparser.add_argument(
'-p', '--path', dest='path',
help="path to stage package, does not add to spack tree")
def stage(parser, args):
+ # We temporarily modify the working directory when setting up a stage, so we need to
+ # convert this to an absolute path here in order for it to remain valid later.
+ custom_path = os.path.abspath(args.path) if args.path else None
+ if custom_path:
+ spack.stage.create_stage_root(custom_path)
+
if not args.specs:
- env = ev.get_env(args, 'stage')
+ env = ev.active_environment()
if env:
tty.msg("Staging specs from environment %s" % env.name)
for spec in env.specs_by_hash.values():
for dep in spec.traverse():
dep.package.do_stage()
+ tty.msg("Staged {0} in {1}".format(dep.package.name,
+ dep.package.stage.path))
return
else:
tty.die("`spack stage` requires a spec or an active environment")
@@ -37,9 +49,19 @@ def stage(parser, args):
if args.no_checksum:
spack.config.set('config:checksum', False, scope='command_line')
- specs = spack.cmd.parse_specs(args.specs, concretize=True)
+ if args.deprecated:
+ spack.config.set('config:deprecated', True, scope='command_line')
+
+ specs = spack.cmd.parse_specs(args.specs, concretize=False)
+
+ # prevent multiple specs from extracting in the same folder
+ if len(specs) > 1 and custom_path:
+ tty.die("`--path` requires a single spec, but multiple were provided")
+
for spec in specs:
+ spec = spack.cmd.matching_spec_from_env(spec)
package = spack.repo.get(spec)
- if args.path:
- package.path = args.path
+ if custom_path:
+ package.path = custom_path
package.do_stage()
+ tty.msg("Staged {0} in {1}".format(package.name, package.stage.path))
diff --git a/lib/spack/spack/cmd/style.py b/lib/spack/spack/cmd/style.py
new file mode 100644
index 0000000000..eb95904dfb
--- /dev/null
+++ b/lib/spack/spack/cmd/style.py
@@ -0,0 +1,426 @@
+# Copyright 2013-2021 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 __future__ import print_function
+
+import argparse
+import os
+import re
+import sys
+
+import llnl.util.tty as tty
+import llnl.util.tty.color as color
+from llnl.util.filesystem import working_dir
+
+import spack.bootstrap
+import spack.paths
+from spack.util.executable import which
+
+if sys.version_info < (3, 0):
+ from itertools import izip_longest # novm
+
+ zip_longest = izip_longest
+else:
+ from itertools import zip_longest # novm
+
+
+description = "runs source code style checks on spack"
+section = "developer"
+level = "long"
+
+
+def grouper(iterable, n, fillvalue=None):
+ "Collect data into fixed-length chunks or blocks"
+ # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
+ args = [iter(iterable)] * n
+ for group in zip_longest(*args, fillvalue=fillvalue):
+ yield filter(None, group)
+
+
+#: List of directories to exclude from checks -- relative to spack root
+exclude_directories = [
+ os.path.relpath(spack.paths.external_path, spack.paths.prefix),
+]
+
+#: Order in which tools should be run. flake8 is last so that it can
+#: double-check the results of other tools (if, e.g., --fix was provided)
+#: The list maps an executable name to a spack spec needed to install it.
+tool_order = [
+ ("isort", "py-isort@4.3.5:"),
+ ("mypy", "py-mypy@0.900:"),
+ ("black", "py-black"),
+ ("flake8", "py-flake8"),
+]
+
+#: tools we run in spack style
+tools = {}
+
+
+def is_package(f):
+ """Whether flake8 should consider a file as a core file or a package.
+
+ We run flake8 with different exceptions for the core and for
+ packages, since we allow `from spack import *` and poking globals
+ into packages.
+ """
+ return f.startswith("var/spack/repos/")
+
+
+#: decorator for adding tools to the list
+class tool(object):
+ def __init__(self, name, required=False):
+ self.name = name
+ self.required = required
+
+ def __call__(self, fun):
+ tools[self.name] = (fun, self.required)
+ return fun
+
+
+def changed_files(base="develop", untracked=True, all_files=False, root=None):
+ """Get list of changed files in the Spack repository.
+
+ Arguments:
+ base (str): name of base branch to evaluate differences with.
+ untracked (bool): include untracked files in the list.
+ all_files (bool): list all files in the repository.
+ root (str): use this directory instead of the Spack prefix.
+ """
+ if root is None:
+ root = spack.paths.prefix
+
+ git = which("git", required=True)
+
+ # ensure base is in the repo
+ git("show-ref", "--verify", "--quiet", "refs/heads/%s" % base,
+ fail_on_error=False)
+ if git.returncode != 0:
+ tty.die(
+ "This repository does not have a '%s' branch." % base,
+ "spack style needs this branch to determine which files changed.",
+ "Ensure that '%s' exists, or specify files to check explicitly." % base
+ )
+
+ range = "{0}...".format(base)
+
+ git_args = [
+ # Add changed files committed since branching off of develop
+ ["diff", "--name-only", "--diff-filter=ACMR", range],
+ # Add changed files that have been staged but not yet committed
+ ["diff", "--name-only", "--diff-filter=ACMR", "--cached"],
+ # Add changed files that are unstaged
+ ["diff", "--name-only", "--diff-filter=ACMR"],
+ ]
+
+ # Add new files that are untracked
+ if untracked:
+ git_args.append(["ls-files", "--exclude-standard", "--other"])
+
+ # add everything if the user asked for it
+ if all_files:
+ git_args.append(["ls-files", "--exclude-standard"])
+
+ excludes = [
+ os.path.realpath(os.path.join(root, f))
+ for f in exclude_directories
+ ]
+ changed = set()
+
+ for arg_list in git_args:
+ files = git(*arg_list, output=str).split("\n")
+
+ for f in files:
+ # Ignore non-Python files
+ if not (f.endswith(".py") or f == "bin/spack"):
+ continue
+
+ # Ignore files in the exclude locations
+ if any(os.path.realpath(f).startswith(e) for e in excludes):
+ continue
+
+ changed.add(f)
+
+ return sorted(changed)
+
+
+def setup_parser(subparser):
+ subparser.add_argument(
+ "-b",
+ "--base",
+ action="store",
+ default="develop",
+ help="branch to compare against to determine changed files (default: develop)",
+ )
+ subparser.add_argument(
+ "-a",
+ "--all",
+ action="store_true",
+ help="check all files, not just changed files",
+ )
+ subparser.add_argument(
+ "-r",
+ "--root-relative",
+ action="store_true",
+ default=False,
+ help="print root-relative paths (default: cwd-relative)",
+ )
+ subparser.add_argument(
+ "-U",
+ "--no-untracked",
+ dest="untracked",
+ action="store_false",
+ default=True,
+ help="exclude untracked files from checks",
+ )
+ subparser.add_argument(
+ "-f",
+ "--fix",
+ action="store_true",
+ default=False,
+ help="format automatically if possible (e.g., with isort, black)",
+ )
+ subparser.add_argument(
+ "--no-isort",
+ dest="isort",
+ action="store_false",
+ help="do not run isort (default: run isort if available)",
+ )
+ subparser.add_argument(
+ "--no-flake8",
+ dest="flake8",
+ action="store_false",
+ help="do not run flake8 (default: run flake8 or fail)",
+ )
+ subparser.add_argument(
+ "--no-mypy",
+ dest="mypy",
+ action="store_false",
+ help="do not run mypy (default: run mypy if available)",
+ )
+ subparser.add_argument(
+ "--black",
+ dest="black",
+ action="store_true",
+ help="run black if available (default: skip black)",
+ )
+ subparser.add_argument(
+ "--root",
+ action="store",
+ default=None,
+ help="style check a different spack instance",
+ )
+ subparser.add_argument(
+ "files", nargs=argparse.REMAINDER, help="specific files to check"
+ )
+
+
+def cwd_relative(path, args):
+ """Translate prefix-relative path to current working directory-relative."""
+ return os.path.relpath(os.path.join(args.root, path), args.initial_working_dir)
+
+
+def rewrite_and_print_output(
+ output, args, re_obj=re.compile(r"^(.+):([0-9]+):"), replacement=r"{0}:{1}:"
+):
+ """rewrite ouput with <file>:<line>: format to respect path args"""
+ # print results relative to current working directory
+ def translate(match):
+ return replacement.format(
+ cwd_relative(match.group(1), args), *list(match.groups()[1:])
+ )
+
+ for line in output.split("\n"):
+ if not line:
+ continue
+ if not args.root_relative and re_obj:
+ line = re_obj.sub(translate, line)
+ print(" " + line)
+
+
+def print_style_header(file_list, args):
+ tools = [tool for tool, _ in tool_order if getattr(args, tool)]
+ tty.msg("Running style checks on spack", "selected: " + ", ".join(tools))
+
+ # translate modified paths to cwd_relative if needed
+ paths = [filename.strip() for filename in file_list]
+ if not args.root_relative:
+ paths = [cwd_relative(filename, args) for filename in paths]
+
+ tty.msg("Modified files", *paths)
+ sys.stdout.flush()
+
+
+def print_tool_header(tool):
+ sys.stdout.flush()
+ tty.msg("Running %s checks" % tool)
+ sys.stdout.flush()
+
+
+def print_tool_result(tool, returncode):
+ if returncode == 0:
+ color.cprint(" @g{%s checks were clean}" % tool)
+ else:
+ color.cprint(" @r{%s found errors}" % tool)
+
+
+@tool("flake8", required=True)
+def run_flake8(flake8_cmd, file_list, args):
+ returncode = 0
+ output = ""
+ # run in chunks of 100 at a time to avoid line length limit
+ # filename parameter in config *does not work* for this reliably
+ for chunk in grouper(file_list, 100):
+ output = flake8_cmd(
+ # always run with config from running spack prefix
+ "--config=%s" % os.path.join(spack.paths.prefix, ".flake8"),
+ *chunk,
+ fail_on_error=False,
+ output=str
+ )
+ returncode |= flake8_cmd.returncode
+
+ rewrite_and_print_output(output, args)
+
+ print_tool_result("flake8", returncode)
+ return returncode
+
+
+@tool("mypy")
+def run_mypy(mypy_cmd, file_list, args):
+ # always run with config from running spack prefix
+ mypy_args = [
+ "--config-file", os.path.join(spack.paths.prefix, "pyproject.toml"),
+ "--package", "spack",
+ "--package", "llnl",
+ "--show-error-codes",
+ ]
+ # not yet, need other updates to enable this
+ # if any([is_package(f) for f in file_list]):
+ # mypy_args.extend(["--package", "packages"])
+
+ output = mypy_cmd(*mypy_args, fail_on_error=False, output=str)
+ returncode = mypy_cmd.returncode
+
+ rewrite_and_print_output(output, args)
+
+ print_tool_result("mypy", returncode)
+ return returncode
+
+
+@tool("isort")
+def run_isort(isort_cmd, file_list, args):
+ # always run with config from running spack prefix
+ isort_args = ("--settings-path", os.path.join(spack.paths.prefix, "pyproject.toml"))
+ if not args.fix:
+ isort_args += ("--check", "--diff")
+
+ pat = re.compile("ERROR: (.*) Imports are incorrectly sorted")
+ replacement = "ERROR: {0} Imports are incorrectly sorted"
+ returncode = 0
+ for chunk in grouper(file_list, 100):
+ packed_args = isort_args + tuple(chunk)
+ output = isort_cmd(*packed_args, fail_on_error=False, output=str, error=str)
+ returncode |= isort_cmd.returncode
+
+ rewrite_and_print_output(output, args, pat, replacement)
+
+ print_tool_result("isort", returncode)
+ return returncode
+
+
+@tool("black")
+def run_black(black_cmd, file_list, args):
+ # always run with config from running spack prefix
+ black_args = ("--config", os.path.join(spack.paths.prefix, "pyproject.toml"))
+ if not args.fix:
+ black_args += ("--check", "--diff")
+ if color.get_color_when(): # only show color when spack would
+ black_args += ("--color",)
+
+ pat = re.compile("would reformat +(.*)")
+ replacement = "would reformat {0}"
+ returncode = 0
+ output = ""
+ # run in chunks of 100 at a time to avoid line length limit
+ # filename parameter in config *does not work* for this reliably
+ for chunk in grouper(file_list, 100):
+ packed_args = black_args + tuple(chunk)
+ output = black_cmd(*packed_args, fail_on_error=False, output=str, error=str)
+ returncode |= black_cmd.returncode
+
+ rewrite_and_print_output(output, args, pat, replacement)
+
+ print_tool_result("black", returncode)
+
+ return returncode
+
+
+def style(parser, args):
+ # ensure python version is new enough
+ if sys.version_info < (3, 6):
+ tty.die("spack style requires Python 3.6 or later.")
+
+ # save initial working directory for relativizing paths later
+ args.initial_working_dir = os.getcwd()
+
+ # ensure that the config files we need actually exist in the spack prefix.
+ # assertions b/c users should not ever see these errors -- they're checked in CI.
+ assert os.path.isfile(os.path.join(spack.paths.prefix, "pyproject.toml"))
+ assert os.path.isfile(os.path.join(spack.paths.prefix, ".flake8"))
+
+ # validate spack root if the user provided one
+ args.root = os.path.realpath(args.root) if args.root else spack.paths.prefix
+ spack_script = os.path.join(args.root, "bin", "spack")
+ if not os.path.exists(spack_script):
+ tty.die(
+ "This does not look like a valid spack root.",
+ "No such file: '%s'" % spack_script
+ )
+
+ file_list = args.files
+ if file_list:
+
+ def prefix_relative(path):
+ return os.path.relpath(os.path.abspath(os.path.realpath(path)), args.root)
+
+ file_list = [prefix_relative(p) for p in file_list]
+
+ returncode = 0
+ with working_dir(args.root):
+ if not file_list:
+ file_list = changed_files(args.base, args.untracked, args.all)
+ print_style_header(file_list, args)
+
+ # run tools in order defined in tool_order
+ returncode = 0
+ for tool_name, tool_spec in tool_order:
+ if getattr(args, tool_name):
+ run_function, required = tools[tool_name]
+ print_tool_header(tool_name)
+
+ try:
+ # Bootstrap tools so we don't need to require install
+ with spack.bootstrap.ensure_bootstrap_configuration():
+ spec = spack.spec.Spec(tool_spec)
+ cmd = None
+ cmd = spack.bootstrap.get_executable(
+ tool_name, spec=spec, install=True
+ )
+ if not cmd:
+ color.cprint(" @y{%s not in PATH, skipped}" % tool_name)
+ continue
+ returncode |= run_function(cmd, file_list, args)
+
+ except Exception as e:
+ raise spack.error.SpackError(
+ "Couldn't bootstrap %s:" % tool_name, str(e)
+ )
+
+ if returncode == 0:
+ tty.msg(color.colorize("@*{spack style checks were clean}"))
+ else:
+ tty.error(color.colorize("@*{spack style found errors}"))
+
+ return returncode
diff --git a/lib/spack/spack/cmd/test.py b/lib/spack/spack/cmd/test.py
index d164e26334..d2a5e7214b 100644
--- a/lib/spack/spack/cmd/test.py
+++ b/lib/spack/spack/cmd/test.py
@@ -1,24 +1,29 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-import os
+
import argparse
-import textwrap
import fnmatch
+import inspect
+import os
import re
import shutil
+import sys
+import textwrap
import llnl.util.tty as tty
+import llnl.util.tty.colify as colify
-import spack.install_test
-import spack.environment as ev
import spack.cmd
import spack.cmd.common.arguments as arguments
-import spack.report
+import spack.environment as ev
+import spack.install_test
import spack.package
+import spack.repo
+import spack.report
description = "run spack's tests for an install"
section = "admin"
@@ -78,8 +83,11 @@ def setup_parser(subparser):
arguments.add_common_arguments(run_parser, ['installed_specs'])
# List
- sp.add_parser('list', description=test_list.__doc__,
- help=first_line(test_list.__doc__))
+ list_parser = sp.add_parser('list', description=test_list.__doc__,
+ help=first_line(test_list.__doc__))
+ list_parser.add_argument(
+ "-a", "--all", action="store_true", dest="list_all",
+ help="list all packages with tests (not just installed)")
# Find
find_parser = sp.add_parser('find', description=test_find.__doc__,
@@ -147,7 +155,7 @@ environment variables:
spack.config.set('config:fail_fast', True, scope='command_line')
# Get specs to test
- env = ev.get_env(args, 'test')
+ env = ev.active_environment()
hashes = env.all_hashes() if env else None
specs = spack.cmd.parse_specs(args.specs) if args.specs else [None]
@@ -188,18 +196,36 @@ environment variables:
def has_test_method(pkg):
- return pkg.test.__func__ != spack.package.PackageBase.test
+ if not inspect.isclass(pkg):
+ tty.die('{0}: is not a class, it is {1}'.format(pkg, type(pkg)))
+
+ pkg_base = spack.package.PackageBase
+ return (
+ (issubclass(pkg, pkg_base) and pkg.test != pkg_base.test) or
+ (isinstance(pkg, pkg_base) and pkg.test.__func__ != pkg_base.test)
+ )
def test_list(args):
- """List all installed packages with available tests."""
+ """List installed packages with available tests."""
+ if args.list_all:
+ all_packages_with_tests = [
+ pkg_class.name
+ for pkg_class in spack.repo.path.all_package_classes()
+ if has_test_method(pkg_class)
+ ]
+ if sys.stdout.isatty():
+ tty.msg("%d packages with tests." % len(all_packages_with_tests))
+ colify.colify(all_packages_with_tests)
+ return
+
# TODO: This can be extended to have all of the output formatting options
# from `spack find`.
- env = ev.get_env(args, 'test')
+ env = ev.active_environment()
hashes = env.all_hashes() if env else None
specs = spack.store.db.query(hashes=hashes)
- specs = list(filter(lambda s: has_test_method(s.package), specs))
+ specs = list(filter(lambda s: has_test_method(s.package_class), specs))
spack.cmd.display_specs(specs, long=True)
diff --git a/lib/spack/spack/cmd/test_env.py b/lib/spack/spack/cmd/test_env.py
index a0f54d482f..3d3827a7da 100644
--- a/lib/spack/spack/cmd/test_env.py
+++ b/lib/spack/spack/cmd/test_env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/cmd/tutorial.py b/lib/spack/spack/cmd/tutorial.py
index 1912a6f4d3..e45d75b6f3 100644
--- a/lib/spack/spack/cmd/tutorial.py
+++ b/lib/spack/spack/cmd/tutorial.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,6 @@ import spack.util.gpg
from spack.util.executable import which
from spack.util.spack_yaml import syaml_dict
-
description = "set up spack for our tutorial (WARNING: modifies config!)"
section = "config"
level = "long"
@@ -73,7 +72,7 @@ def tutorial(parser, args):
tty.msg("Ensuring that we trust tutorial binaries",
"spack gpg trust %s" % tutorial_key)
- spack.util.gpg.Gpg().trust(tutorial_key)
+ spack.util.gpg.trust(tutorial_key)
# Note that checkout MUST be last. It changes Spack under our feet.
# If you don't put this last, you'll get import errors for the code
diff --git a/lib/spack/spack/cmd/undevelop.py b/lib/spack/spack/cmd/undevelop.py
index 6319b88e06..a26519ac38 100644
--- a/lib/spack/spack/cmd/undevelop.py
+++ b/lib/spack/spack/cmd/undevelop.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,6 @@ import llnl.util.tty as tty
import spack.cmd
import spack.cmd.common.arguments as arguments
-import spack.environment as ev
-
description = 'remove specs from an environment'
section = "environments"
@@ -23,7 +21,7 @@ def setup_parser(subparser):
def undevelop(parser, args):
- env = ev.get_env(args, 'undevelop', required=True)
+ env = spack.cmd.require_active_env(cmd_name='undevelop')
if args.all:
specs = env.dev_specs.keys()
diff --git a/lib/spack/spack/cmd/uninstall.py b/lib/spack/spack/cmd/uninstall.py
index e541eaf91b..fdd9986108 100644
--- a/lib/spack/spack/cmd/uninstall.py
+++ b/lib/spack/spack/cmd/uninstall.py
@@ -1,25 +1,25 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-import sys
import itertools
+import sys
+
+from llnl.util import tty
+from llnl.util.tty.colify import colify
import spack.cmd
+import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.error
import spack.package
-import spack.cmd.common.arguments as arguments
import spack.repo
import spack.store
from spack.database import InstallStatuses
-from llnl.util import tty
-from llnl.util.tty.colify import colify
-
description = "remove installed packages"
section = "build"
level = "short"
@@ -69,12 +69,13 @@ def find_matching_specs(env, specs, allow_multiple_matches=False, force=False):
concretized specs given from cli
Args:
- env (Environment): active environment, or ``None`` if there is not one
+ env (spack.environment.Environment): active environment, or ``None``
+ if there is not one
specs (list): list of specs to be matched against installed packages
allow_multiple_matches (bool): if True multiple matches are admitted
Return:
- list of specs
+ list: list of specs
"""
# constrain uninstall resolution to current environment if one is active
hashes = env.all_hashes() if env else None
@@ -118,15 +119,13 @@ def installed_dependents(specs, env):
Args:
specs (list): list of Specs
- env (Environment): the active environment, or None
+ env (spack.environment.Environment or None): the active environment, or None
Returns:
- (tuple of dicts): two mappings: one from specs to their dependent
- environments in the active environment (or global scope if
- there is no environment), and one from specs to their
- dependents in *inactive* environments (empty if there is no
- environment
-
+ tuple: two mappings: one from specs to their dependent environments in the
+ active environment (or global scope if there is no environment), and one from
+ specs to their dependents in *inactive* environments (empty if there is no
+ environment
"""
active_dpts = {}
inactive_dpts = {}
@@ -155,9 +154,9 @@ def dependent_environments(specs):
Args:
specs (list): list of Specs
- Returns:
- (dict): mapping from spec to lists of dependent Environments
+ Returns:
+ dict: mapping from spec to lists of dependent Environments
"""
dependents = {}
for env in ev.all_environments():
@@ -176,9 +175,10 @@ def inactive_dependent_environments(spec_envs):
have no dependent environments. Return the result.
Args:
- (dict): mapping from spec to lists of dependent Environments
+ spec_envs (dict): mapping from spec to lists of dependent Environments
+
Returns:
- (dict): mapping from spec to lists of *inactive* dependent Environments
+ dict: mapping from spec to lists of *inactive* dependent Environments
"""
spec_inactive_envs = {}
for spec, de_list in spec_envs.items():
@@ -203,7 +203,8 @@ def do_uninstall(env, specs, force):
"""Uninstalls all the specs in a list.
Args:
- env (Environment): active environment, or ``None`` if there is not one
+ env (spack.environment.Environment or None): active environment, or ``None``
+ if there is not one
specs (list): list of specs to be uninstalled
force (bool): force uninstallation (boolean)
"""
@@ -310,7 +311,7 @@ def get_uninstall_list(args, specs, env):
def uninstall_specs(args, specs):
- env = ev.get_env(args, 'uninstall')
+ env = ev.active_environment()
uninstall_list, remove_list = get_uninstall_list(args, specs, env)
anything_to_do = set(uninstall_list).union(set(remove_list))
diff --git a/lib/spack/spack/cmd/unit_test.py b/lib/spack/spack/cmd/unit_test.py
index 509211de04..ce4e2cbdbb 100644
--- a/lib/spack/spack/cmd/unit_test.py
+++ b/lib/spack/spack/cmd/unit_test.py
@@ -1,15 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-from __future__ import division
+from __future__ import division, print_function
+import argparse
import collections
-import sys
import re
-import argparse
+import sys
+
import pytest
from six import StringIO
@@ -146,7 +146,7 @@ def add_back_pytest_args(args, unknown_args):
def unit_test(parser, args, unknown_args):
if args.pytest_help:
# make the pytest.main help output more accurate
- sys.argv[0] = 'spack test'
+ sys.argv[0] = 'spack unit-test'
return pytest.main(['-h'])
# add back any parsed pytest args we need to pass to pytest
diff --git a/lib/spack/spack/cmd/unload.py b/lib/spack/spack/cmd/unload.py
index 8494453489..f1e10ba05a 100644
--- a/lib/spack/spack/cmd/unload.py
+++ b/lib/spack/spack/cmd/unload.py
@@ -1,16 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import sys
import os
+import sys
import spack.cmd
import spack.cmd.common.arguments as arguments
-import spack.util.environment
-import spack.user_environment as uenv
import spack.error
+import spack.user_environment as uenv
+import spack.util.environment
description = "remove package from the user environment"
section = "user environment"
diff --git a/lib/spack/spack/cmd/url.py b/lib/spack/spack/cmd/url.py
index db8f358887..e3182478ab 100644
--- a/lib/spack/spack/cmd/url.py
+++ b/lib/spack/spack/cmd/url.py
@@ -1,25 +1,34 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import division, print_function
+
from collections import defaultdict
import six.moves.urllib.parse as urllib_parse
+import llnl.util.tty.color as color
+from llnl.util import tty
+
import spack.fetch_strategy as fs
import spack.repo
import spack.util.crypto as crypto
-
-from llnl.util import tty
-from spack.url import parse_version_offset, parse_name_offset
-from spack.url import parse_name, parse_version, color_url
-from spack.url import substitute_version, substitution_offsets
-from spack.url import UndetectableNameError, UndetectableVersionError
-from spack.url import UrlParseError
-from spack.util.web import find_versions_of_archive
+from spack.url import (
+ UndetectableNameError,
+ UndetectableVersionError,
+ UrlParseError,
+ color_url,
+ parse_name,
+ parse_name_offset,
+ parse_version,
+ parse_version_offset,
+ substitute_version,
+ substitution_offsets,
+)
from spack.util.naming import simplify_name
+from spack.util.web import find_versions_of_archive
description = "debugging tool for url parsing"
section = "developer"
@@ -72,9 +81,13 @@ def setup_parser(subparser):
help='print a summary of how well we are parsing package urls')
# Stats
- sp.add_parser(
+ stats_parser = sp.add_parser(
'stats',
help='print statistics on versions and checksums for all packages')
+ stats_parser.add_argument(
+ "--show-issues", action="store_true",
+ help="show packages with issues (md5 hashes, http urls)"
+ )
def url(parser, args):
@@ -254,6 +267,9 @@ def url_summary(args):
def url_stats(args):
+ # dictionary of issue type -> package -> descriptions
+ issues = defaultdict(lambda: defaultdict(lambda: []))
+
class UrlStats(object):
def __init__(self):
self.total = 0
@@ -262,7 +278,7 @@ def url_stats(args):
self.url_type = defaultdict(lambda: 0)
self.git_type = defaultdict(lambda: 0)
- def add(self, fetcher):
+ def add(self, pkg_name, fetcher):
self.total += 1
url_type = fetcher.url_attr
@@ -276,10 +292,18 @@ def url_stats(args):
algo = 'no checksum'
self.checksums[algo] += 1
+ if algo == "md5":
+ md5_hashes = issues["md5 hashes"]
+ md5_hashes[pkg_name].append(fetcher.url)
+
# parse out the URL scheme (https/http/ftp/etc.)
urlinfo = urllib_parse.urlparse(fetcher.url)
self.schemes[urlinfo.scheme] += 1
+ if urlinfo.scheme == "http":
+ http_urls = issues["http urls"]
+ http_urls[pkg_name].append(fetcher.url)
+
elif url_type == 'git':
if getattr(fetcher, 'commit', None):
self.git_type['commit'] += 1
@@ -297,13 +321,16 @@ def url_stats(args):
for pkg in spack.repo.path.all_packages():
npkgs += 1
- for v, args in pkg.versions.items():
- fetcher = fs.for_package_version(pkg, v)
- version_stats.add(fetcher)
+ for v in pkg.versions:
+ try:
+ fetcher = fs.for_package_version(pkg, v)
+ except (fs.InvalidArgsError, fs.FetcherConflict):
+ continue
+ version_stats.add(pkg.name, fetcher)
for _, resources in pkg.resources.items():
for resource in resources:
- resource_stats.add(resource.fetcher)
+ resource_stats.add(pkg.name, resource.fetcher)
# print a nice summary table
tty.msg("URL stats for %d packages:" % npkgs)
@@ -353,6 +380,21 @@ def url_stats(args):
print_stat(4, git_type, "git_type")
print_line()
+ if args.show_issues:
+ total_issues = sum(
+ len(issues)
+ for _, pkg_issues in issues.items()
+ for _, issues in pkg_issues.items()
+ )
+ print()
+ tty.msg("Found %d issues." % total_issues)
+ for issue_type, pkgs in issues.items():
+ tty.msg("Package URLs with %s" % issue_type)
+ for pkg, pkg_issues in pkgs.items():
+ color.cprint(" @*C{%s}" % pkg)
+ for issue in pkg_issues:
+ print(" %s" % issue)
+
def print_name_and_version(url):
"""Prints a URL. Underlines the detected name with dashes and
@@ -494,7 +536,7 @@ def remove_separators(version):
Unfortunately, this also means that 1.23 and 12.3 are equal.
Args:
- version (str or Version): A version
+ version (str or spack.version.Version): A version
Returns:
str: The version with all separator characters removed
diff --git a/lib/spack/spack/cmd/verify.py b/lib/spack/spack/cmd/verify.py
index b20d795ce5..a1d8acdf15 100644
--- a/lib/spack/spack/cmd/verify.py
+++ b/lib/spack/spack/cmd/verify.py
@@ -1,15 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
+
import argparse
import llnl.util.tty as tty
+import spack.environment as ev
import spack.store
import spack.verify
-import spack.environment as ev
description = "Check that all spack packages are on disk as installed"
section = "admin"
@@ -73,7 +74,7 @@ def verify(parser, args):
elif args.specs_or_files:
# construct disambiguated spec list
- env = ev.get_env(args, 'verify')
+ env = ev.active_environment()
specs = list(map(lambda x: spack.cmd.disambiguate_spec(x, env,
local=local),
spec_args))
diff --git a/lib/spack/spack/cmd/versions.py b/lib/spack/spack/cmd/versions.py
index 366307f0b2..8e9da05fe9 100644
--- a/lib/spack/spack/cmd/versions.py
+++ b/lib/spack/spack/cmd/versions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,12 @@ from __future__ import print_function
import sys
-from llnl.util.tty.colify import colify
import llnl.util.tty as tty
+from llnl.util.tty.colify import colify
import spack.cmd.common.arguments as arguments
import spack.repo
+from spack.version import infinity_versions, ver
description = "list available versions of a package"
section = "packaging"
@@ -19,8 +20,17 @@ level = "long"
def setup_parser(subparser):
- subparser.add_argument('-s', '--safe-only', action='store_true',
- help='only list safe versions of the package')
+ output = subparser.add_mutually_exclusive_group()
+ output.add_argument('-s', '--safe', action='store_true',
+ help='only list safe versions of the package')
+ output.add_argument('--safe-only', action='store_true',
+ help='[deprecated] only list safe versions '
+ 'of the package')
+ output.add_argument('-r', '--remote', action='store_true',
+ help='only list remote versions of the package')
+ output.add_argument('-n', '--new', action='store_true',
+ help='only list remote versions newer than '
+ 'the latest checksummed version')
subparser.add_argument(
'-c', '--concurrency', default=32, type=int,
help='number of concurrent requests'
@@ -31,26 +41,41 @@ def setup_parser(subparser):
def versions(parser, args):
pkg = spack.repo.get(args.package)
- if sys.stdout.isatty():
- tty.msg('Safe versions (already checksummed):')
-
safe_versions = pkg.versions
- if not safe_versions:
+ if args.safe_only:
+ tty.warn('"--safe-only" is deprecated. Use "--safe" instead.')
+ args.safe = args.safe_only
+
+ if not (args.remote or args.new):
if sys.stdout.isatty():
- tty.warn('Found no versions for {0}'.format(pkg.name))
- tty.debug('Manually add versions to the package.')
- else:
- colify(sorted(safe_versions, reverse=True), indent=2)
+ tty.msg('Safe versions (already checksummed):')
- if args.safe_only:
- return
+ if not safe_versions:
+ if sys.stdout.isatty():
+ tty.warn('Found no versions for {0}'.format(pkg.name))
+ tty.debug('Manually add versions to the package.')
+ else:
+ colify(sorted(safe_versions, reverse=True), indent=2)
- if sys.stdout.isatty():
- tty.msg('Remote versions (not yet checksummed):')
+ if args.safe:
+ return
fetched_versions = pkg.fetch_remote_versions(args.concurrency)
- remote_versions = set(fetched_versions).difference(safe_versions)
+
+ if args.new:
+ if sys.stdout.isatty():
+ tty.msg('New remote versions (not yet checksummed):')
+ numeric_safe_versions = list(filter(
+ lambda v: str(v) not in infinity_versions,
+ safe_versions))
+ highest_safe_version = max(numeric_safe_versions)
+ remote_versions = set([ver(v) for v in set(fetched_versions)
+ if v > highest_safe_version])
+ else:
+ if sys.stdout.isatty():
+ tty.msg('Remote versions (not yet checksummed):')
+ remote_versions = set(fetched_versions).difference(safe_versions)
if not remote_versions:
if sys.stdout.isatty():
diff --git a/lib/spack/spack/cmd/view.py b/lib/spack/spack/cmd/view.py
index 151f6c1564..fc0c30c7e2 100644
--- a/lib/spack/spack/cmd/view.py
+++ b/lib/spack/spack/cmd/view.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -37,13 +37,12 @@ import llnl.util.tty as tty
from llnl.util.link_tree import MergeConflictError
from llnl.util.tty.color import colorize
-import spack.environment as ev
import spack.cmd
-import spack.store
+import spack.environment as ev
import spack.schema.projections
+import spack.store
from spack.config import validate
-from spack.filesystem_view import YamlFilesystemView
-from spack.filesystem_view import view_symlink, view_hardlink, view_copy
+from spack.filesystem_view import YamlFilesystemView, view_func_parser
from spack.util import spack_yaml as s_yaml
description = "project packages to a compact naming scheme on the filesystem."
@@ -183,12 +182,10 @@ def view(parser, args):
ordered_projections = {}
# What method are we using for this view
- if args.action in ("hardlink", "hard"):
- link_fn = view_hardlink
- elif args.action in ("copy", "relocate"):
- link_fn = view_copy
+ if args.action in actions_link:
+ link_fn = view_func_parser(args.action)
else:
- link_fn = view_symlink
+ link_fn = view_func_parser('symlink')
view = YamlFilesystemView(
path, spack.store.layout,
@@ -205,7 +202,7 @@ def view(parser, args):
elif args.action in actions_link:
# only link commands need to disambiguate specs
- env = ev.get_env(args, 'view link')
+ env = ev.active_environment()
specs = [spack.cmd.disambiguate_spec(s, env) for s in specs]
elif args.action in actions_status:
diff --git a/lib/spack/spack/compiler.py b/lib/spack/spack/compiler.py
index d498803633..d3410bba2d 100644
--- a/lib/spack/spack/compiler.py
+++ b/lib/spack/spack/compiler.py
@@ -1,28 +1,28 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import contextlib
+import itertools
import os
import platform
import re
-import itertools
import shutil
import tempfile
+from typing import List, Sequence # novm
import llnl.util.lang
-from llnl.util.filesystem import (
- path_contains_subdirectory, paths_containing_libs)
import llnl.util.tty as tty
+from llnl.util.filesystem import path_contains_subdirectory, paths_containing_libs
+import spack.architecture
+import spack.compilers
import spack.error
import spack.spec
-import spack.version
-import spack.architecture
import spack.util.executable
import spack.util.module_cmd
-import spack.compilers
+import spack.version
from spack.util.environment import filter_system_paths
__all__ = ['Compiler']
@@ -190,20 +190,20 @@ class Compiler(object):
and how to identify the particular type of compiler."""
# Subclasses use possible names of C compiler
- cc_names = []
+ cc_names = [] # type: List[str]
# Subclasses use possible names of C++ compiler
- cxx_names = []
+ cxx_names = [] # type: List[str]
# Subclasses use possible names of Fortran 77 compiler
- f77_names = []
+ f77_names = [] # type: List[str]
# Subclasses use possible names of Fortran 90 compiler
- fc_names = []
+ fc_names = [] # type: List[str]
# Optional prefix regexes for searching for this type of compiler.
# Prefixes are sometimes used for toolchains
- prefixes = []
+ prefixes = [] # type: List[str]
# Optional suffix regexes for searching for this type of compiler.
# Suffixes are used by some frameworks, e.g. macports uses an '-mp-X.Y'
@@ -214,7 +214,7 @@ class Compiler(object):
version_argument = '-dumpversion'
#: Return values to ignore when invoking the compiler to get its version
- ignore_version_errors = ()
+ ignore_version_errors = () # type: Sequence[int]
#: Regex used to extract version from compiler's output
version_regex = '(.*)'
@@ -266,9 +266,9 @@ class Compiler(object):
return ['-O', '-O0', '-O1', '-O2', '-O3']
# Cray PrgEnv name that can be used to load this compiler
- PrgEnv = None
+ PrgEnv = None # type: str
# Name of module used to switch versions of this compiler
- PrgEnv_compiler = None
+ PrgEnv_compiler = None # type: str
def __init__(self, cspec, operating_system, target,
paths, modules=None, alias=None, environment=None,
@@ -344,8 +344,11 @@ class Compiler(object):
"""
if not self._real_version:
try:
- self._real_version = spack.version.Version(
+ real_version = spack.version.Version(
self.get_real_version())
+ if real_version == spack.version.Version('unknown'):
+ return self.version
+ self._real_version = real_version
except spack.util.executable.ProcessError:
self._real_version = self.version
return self._real_version
diff --git a/lib/spack/spack/compilers/__init__.py b/lib/spack/spack/compilers/__init__.py
index 85e0275a29..9ecfa69393 100644
--- a/lib/spack/spack/compilers/__init__.py
+++ b/lib/spack/spack/compilers/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,19 +10,22 @@ import collections
import itertools
import multiprocessing.pool
import os
+from typing import Dict # novm
+
import six
-import llnl.util.lang
+import archspec.cpu
+
import llnl.util.filesystem as fs
+import llnl.util.lang
import llnl.util.tty as tty
-import archspec.cpu
-import spack.paths
+import spack.architecture
+import spack.compiler
+import spack.config
import spack.error
+import spack.paths
import spack.spec
-import spack.config
-import spack.architecture
-
from spack.util.environment import get_path
from spack.util.naming import mod_to_class
@@ -35,7 +38,7 @@ _cache_config_file = []
# TODO: Caches at module level make it difficult to mock configurations in
# TODO: unit tests. It might be worth reworking their implementation.
#: cache of compilers constructed from config data, keyed by config entry id.
-_compiler_cache = {}
+_compiler_cache = {} # type: Dict[str, spack.compiler.Compiler]
_compiler_to_pkg = {
'clang': 'llvm+clang',
@@ -132,8 +135,8 @@ def add_compilers_to_config(compilers, scope=None, init_config=True):
"""Add compilers to the config for the specified architecture.
Arguments:
- - compilers: a list of Compiler objects.
- - scope: configuration scope to modify.
+ compilers: a list of Compiler objects.
+ scope: configuration scope to modify.
"""
compiler_config = get_compiler_config(scope, init_config)
for compiler in compilers:
@@ -148,8 +151,8 @@ def remove_compiler_from_config(compiler_spec, scope=None):
"""Remove compilers from the config, by spec.
Arguments:
- - compiler_specs: a list of CompilerSpec objects.
- - scope: configuration scope to modify.
+ compiler_specs: a list of CompilerSpec objects.
+ scope: configuration scope to modify.
"""
# Need a better way for this
global _cache_config_file
@@ -189,15 +192,12 @@ def all_compiler_specs(scope=None, init_config=True):
def find_compilers(path_hints=None):
- """Returns the list of compilers found in the paths given as arguments.
+ """Return the list of compilers found in the paths given as arguments.
Args:
path_hints (list or None): list of path hints where to look for.
A sensible default based on the ``PATH`` environment variable
will be used if the value is None
-
- Returns:
- List of compilers found
"""
if path_hints is None:
path_hints = get_path('PATH')
@@ -239,6 +239,30 @@ def find_compilers(path_hints=None):
)
+def find_new_compilers(path_hints=None, scope=None):
+ """Same as ``find_compilers`` but return only the compilers that are not
+ already in compilers.yaml.
+
+ Args:
+ path_hints (list or None): list of path hints where to look for.
+ A sensible default based on the ``PATH`` environment variable
+ will be used if the value is None
+ scope (str): scope to look for a compiler. If None consider the
+ merged configuration.
+ """
+ compilers = find_compilers(path_hints)
+ compilers_not_in_config = []
+ for c in compilers:
+ arch_spec = spack.spec.ArchSpec((None, c.operating_system, c.target))
+ same_specs = compilers_for_spec(
+ c.spec, arch_spec, scope=scope, init_config=False
+ )
+ if not same_specs:
+ compilers_not_in_config.append(c)
+
+ return compilers_not_in_config
+
+
def supported_compilers():
"""Return a set of names of compilers supported by Spack.
@@ -286,8 +310,9 @@ def all_compilers(scope=None):
@_auto_compiler_spec
-def compilers_for_spec(compiler_spec, arch_spec=None, scope=None,
- use_cache=True, init_config=True):
+def compilers_for_spec(
+ compiler_spec, arch_spec=None, scope=None, use_cache=True, init_config=True
+):
"""This gets all compilers that satisfy the supplied CompilerSpec.
Returns an empty list if none are found.
"""
@@ -541,8 +566,8 @@ def arguments_to_detect_version_fn(operating_system, paths):
function by providing a method called with the same name.
Args:
- operating_system (OperatingSystem): the operating system on which
- we are looking for compilers
+ operating_system (spack.operating_systems.OperatingSystem): the operating system
+ on which we are looking for compilers
paths: paths to search for compilers
Returns:
@@ -646,7 +671,7 @@ def make_compiler_list(detected_versions):
valid version
Returns:
- list of Compiler objects
+ list: list of Compiler objects
"""
group_fn = lambda x: (x.id, x.variation, x.language)
sorted_compilers = sorted(detected_versions, key=group_fn)
@@ -712,7 +737,7 @@ def is_mixed_toolchain(compiler):
False otherwise.
Args:
- compiler (Compiler): a valid compiler object
+ compiler (spack.compiler.Compiler): a valid compiler object
"""
cc = os.path.basename(compiler.cc or '')
cxx = os.path.basename(compiler.cxx or '')
diff --git a/lib/spack/spack/compilers/aocc.py b/lib/spack/spack/compilers/aocc.py
index 5c9e885490..b544a42e79 100644
--- a/lib/spack/spack/compilers/aocc.py
+++ b/lib/spack/spack/compilers/aocc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,6 +9,7 @@ import sys
import llnl.util.lang
from spack.compiler import Compiler
+from spack.version import ver
class Aocc(Compiler):
@@ -24,6 +25,9 @@ class Aocc(Compiler):
# Subclasses use possible names of Fortran 90 compiler
fc_names = ['flang']
+ PrgEnv = 'PrgEnv-aocc'
+ PrgEnv_compiler = 'aocc'
+
version_argument = '--version'
@property
@@ -94,15 +98,12 @@ class Aocc(Compiler):
@classmethod
@llnl.util.lang.memoized
def extract_version_from_output(cls, output):
- loc_ver = 'unknown'
-
match = re.search(
- r'AMD clang version ([^ )]+)',
+ r'AOCC_(\d+)[._](\d+)[._](\d+)',
output
)
if match:
- loc_ver = output.split('AOCC_')[1].split('-')[0]
- return loc_ver
+ return '.'.join(match.groups())
@classmethod
def fc_version(cls, fortran_compiler):
@@ -114,3 +115,26 @@ class Aocc(Compiler):
@classmethod
def f77_version(cls, f77):
return cls.fc_version(f77)
+
+ @property
+ def stdcxx_libs(self):
+ return ('-lstdc++', )
+
+ @property
+ def cflags(self):
+ return self._handle_default_flag_addtions()
+
+ @property
+ def cxxflags(self):
+ return self._handle_default_flag_addtions()
+
+ @property
+ def fflags(self):
+ return self._handle_default_flag_addtions()
+
+ def _handle_default_flag_addtions(self):
+ # This is a known issue for AOCC 3.0 see:
+ # https://developer.amd.com/wp-content/resources/AOCC-3.0-Install-Guide.pdf
+ if self.real_version == ver('3.0.0'):
+ return ("-Wno-unused-command-line-argument "
+ "-mllvm -eliminate-similar-expr=false")
diff --git a/lib/spack/spack/compilers/apple_clang.py b/lib/spack/spack/compilers/apple_clang.py
index e03117ae05..83cf0a15cd 100644
--- a/lib/spack/spack/compilers/apple_clang.py
+++ b/lib/spack/spack/compilers/apple_clang.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,8 +6,9 @@ import os.path
import re
import shutil
-import llnl.util.tty as tty
import llnl.util.lang
+import llnl.util.tty as tty
+
import spack.compiler
import spack.compilers.clang
import spack.util.executable
diff --git a/lib/spack/spack/compilers/arm.py b/lib/spack/spack/compilers/arm.py
index 59eb1714b8..f742623c6b 100644
--- a/lib/spack/spack/compilers/arm.py
+++ b/lib/spack/spack/compilers/arm.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import spack.compiler
import re
+import spack.compiler
+
class Arm(spack.compiler.Compiler):
# Subclasses use possible names of C compiler
diff --git a/lib/spack/spack/compilers/cce.py b/lib/spack/spack/compilers/cce.py
index a325bf3a45..66d8519f25 100644
--- a/lib/spack/spack/compilers/cce.py
+++ b/lib/spack/spack/compilers/cce.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -66,6 +66,12 @@ class Cce(Compiler):
return "-h std=c++11"
@property
+ def cxx14_flag(self):
+ if self.is_clang_based:
+ return '-std=c++14'
+ return "-h std=c++14"
+
+ @property
def c99_flag(self):
if self.is_clang_based:
return '-std=c99'
@@ -112,3 +118,9 @@ class Cce(Compiler):
if self.is_clang_based:
return "-fPIC"
return "-h PIC"
+
+ @property
+ def stdcxx_libs(self):
+ # Cray compiler wrappers link to the standard C++ library
+ # without additional flags.
+ return ()
diff --git a/lib/spack/spack/compilers/clang.py b/lib/spack/spack/compilers/clang.py
index 63aefdda72..6935301979 100644
--- a/lib/spack/spack/compilers/clang.py
+++ b/lib/spack/spack/compilers/clang.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,6 @@ import llnl.util.lang
from spack.compiler import Compiler, UnsupportedCompilerFlag
from spack.version import ver
-
#: compiler symlink mappings for mixed f77 compilers
f77_mapping = [
('gfortran', 'clang/gfortran'),
diff --git a/lib/spack/spack/compilers/fj.py b/lib/spack/spack/compilers/fj.py
index c2cc66e110..d53fa02fba 100644
--- a/lib/spack/spack/compilers/fj.py
+++ b/lib/spack/spack/compilers/fj.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -35,8 +35,12 @@ class Fj(spack.compiler.Compiler):
return "-v"
@property
+ def debug_flags(self):
+ return "-g"
+
+ @property
def opt_flags(self):
- return ['-O', '-O0', '-O1', '-O2', '-O3', '-O4']
+ return ['-O0', '-O1', '-O2', '-O3', '-Ofast']
@property
def openmp_flag(self):
@@ -55,6 +59,10 @@ class Fj(spack.compiler.Compiler):
return "-std=c++14"
@property
+ def cxx17_flag(self):
+ return "-std=c++17"
+
+ @property
def c99_flag(self):
return "-std=c99"
diff --git a/lib/spack/spack/compilers/gcc.py b/lib/spack/spack/compilers/gcc.py
index 02ee3e5db9..5047de3a0b 100644
--- a/lib/spack/spack/compilers/gcc.py
+++ b/lib/spack/spack/compilers/gcc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,6 @@ import re
import spack.compiler
import spack.compilers.apple_clang as apple_clang
-
from spack.version import ver
diff --git a/lib/spack/spack/compilers/intel.py b/lib/spack/spack/compilers/intel.py
index 5e64a1439e..a05b992a10 100644
--- a/lib/spack/spack/compilers/intel.py
+++ b/lib/spack/spack/compilers/intel.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/compilers/nag.py b/lib/spack/spack/compilers/nag.py
index 503a31e404..c72a980327 100644
--- a/lib/spack/spack/compilers/nag.py
+++ b/lib/spack/spack/compilers/nag.py
@@ -1,17 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 typing import List # novm
+
import spack.compiler
class Nag(spack.compiler.Compiler):
# Subclasses use possible names of C compiler
- cc_names = []
+ cc_names = [] # type: List[str]
# Subclasses use possible names of C++ compiler
- cxx_names = []
+ cxx_names = [] # type: List[str]
# Subclasses use possible names of Fortran 77 compiler
f77_names = ['nagfor']
@@ -100,3 +102,13 @@ class Nag(spack.compiler.Compiler):
@property
def linker_arg(self):
return '-Wl,-Wl,,'
+
+ @property
+ def disable_new_dtags(self):
+ # Disable RPATH/RUNPATH forcing for NAG/GCC mixed toolchains:
+ return ''
+
+ @property
+ def enable_new_dtags(self):
+ # Disable RPATH/RUNPATH forcing for NAG/GCC mixed toolchains:
+ return ''
diff --git a/lib/spack/spack/compilers/nvhpc.py b/lib/spack/spack/compilers/nvhpc.py
index c102320132..1929d50613 100644
--- a/lib/spack/spack/compilers/nvhpc.py
+++ b/lib/spack/spack/compilers/nvhpc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/compilers/oneapi.py b/lib/spack/spack/compilers/oneapi.py
index 1b029699b5..a28259c02c 100644
--- a/lib/spack/spack/compilers/oneapi.py
+++ b/lib/spack/spack/compilers/oneapi.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -29,14 +29,15 @@ class Oneapi(Compiler):
PrgEnv_compiler = 'oneapi'
version_argument = '--version'
- version_regex = r'(?:(?:oneAPI DPC\+\+ Compiler)|(?:ifx \(IFORT\))) (\S+)'
+ version_regex = r'(?:(?:oneAPI DPC\+\+(?:\/C\+\+)? Compiler)|(?:\(IFORT\))) (\S+)'
@property
def verbose_flag(self):
return "-v"
required_libs = ['libirc', 'libifcore', 'libifcoremt', 'libirng',
- 'libsvml', 'libintlc', 'libimf']
+ 'libsvml', 'libintlc', 'libimf', 'libsycl',
+ 'libOpenCL']
@property
def debug_flags(self):
@@ -48,7 +49,7 @@ class Oneapi(Compiler):
@property
def openmp_flag(self):
- return "-qopenmp"
+ return "-fiopenmp"
# There may be some additional options here for offload, e.g. :
# -fopenmp-simd Emit OpenMP code only for SIMD-based constructs.
# -fopenmp-targets=<value>
diff --git a/lib/spack/spack/compilers/pgi.py b/lib/spack/spack/compilers/pgi.py
index 383281a9f4..3de7b708c7 100644
--- a/lib/spack/spack/compilers/pgi.py
+++ b/lib/spack/spack/compilers/pgi.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -88,3 +88,7 @@ class Pgi(Compiler):
'the C11 standard',
'c11_flag',
'< 15.3')
+
+ @property
+ def stdcxx_libs(self):
+ return ('-pgc++libs',)
diff --git a/lib/spack/spack/compilers/xl.py b/lib/spack/spack/compilers/xl.py
index 66009646e3..7e39d1c530 100644
--- a/lib/spack/spack/compilers/xl.py
+++ b/lib/spack/spack/compilers/xl.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/compilers/xl_r.py b/lib/spack/spack/compilers/xl_r.py
index c9a785d5d8..81100e782a 100644
--- a/lib/spack/spack/compilers/xl_r.py
+++ b/lib/spack/spack/compilers/xl_r.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/concretize.py b/lib/spack/spack/concretize.py
index 48210f0959..fe7bf6406d 100644
--- a/lib/spack/spack/concretize.py
+++ b/lib/spack/spack/concretize.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,33 +16,33 @@ TODO: make this customizable and allow users to configure
"""
from __future__ import print_function
-import platform
import os.path
+import platform
import tempfile
+from contextlib import contextmanager
+from itertools import chain
+
+from functools_backport import reverse_order
import archspec.cpu
import llnl.util.filesystem as fs
-import llnl.util.tty as tty
-
-from itertools import chain
-from functools_backport import reverse_order
-from contextlib import contextmanager
-
import llnl.util.lang
+import llnl.util.tty as tty
-import spack.repo
import spack.abi
-import spack.spec
-import spack.compilers
import spack.architecture
+import spack.compilers
+import spack.environment
import spack.error
+import spack.repo
+import spack.spec
+import spack.target
import spack.tengine
import spack.variant as vt
from spack.config import config
-from spack.version import ver, Version, VersionList, VersionRange
-from spack.package_prefs import PackagePrefs, spec_externals, is_spec_buildable
-
+from spack.package_prefs import PackagePrefs, is_spec_buildable, spec_externals
+from spack.version import Version, VersionList, VersionRange, ver
#: impements rudimentary logic for ABI compatibility
_abi = llnl.util.lang.Singleton(lambda: spack.abi.ABI())
@@ -68,14 +68,12 @@ class Concretizer(object):
"""
Add ``dev_path=*`` variant to packages built from local source.
"""
- env = spack.environment.get_env(None, None)
+ env = spack.environment.active_environment()
dev_info = env.dev_specs.get(spec.name, {}) if env else {}
if not dev_info:
return False
- path = dev_info['path']
- path = path if os.path.isabs(path) else os.path.join(
- env.path, path)
+ path = os.path.normpath(os.path.join(env.path, dev_info['path']))
if 'dev_path' in spec.variants:
assert spec.variants['dev_path'].value == path
@@ -259,8 +257,7 @@ class Concretizer(object):
# Get platform of nearest spec with a platform, including spec
# If spec has a platform, easy
if spec.architecture.platform:
- new_plat = spack.architecture.get_platform(
- spec.architecture.platform)
+ new_plat = spack.platforms.by_name(spec.architecture.platform)
else:
# Else if anyone else has a platform, take the closest one
# Search up, then down, along build/link deps first
@@ -269,8 +266,7 @@ class Concretizer(object):
spec, lambda x: x.architecture and x.architecture.platform
)
if platform_spec:
- new_plat = spack.architecture.get_platform(
- platform_spec.architecture.platform)
+ new_plat = spack.platforms.by_name(platform_spec.architecture.platform)
else:
# If no platform anywhere in this spec, grab the default
new_plat = spack.architecture.platform()
@@ -615,9 +611,7 @@ class Concretizer(object):
# Try to adjust the target only if it is the default
# target for this platform
current_target = spec.architecture.target
- current_platform = spack.architecture.get_platform(
- spec.architecture.platform
- )
+ current_platform = spack.platforms.by_name(spec.architecture.platform)
default_target = current_platform.target('default_target')
if PackagePrefs.has_preferred_targets(spec.name):
@@ -636,7 +630,7 @@ class Concretizer(object):
for ancestor in microarchitecture.ancestors:
candidate = None
try:
- candidate = spack.architecture.Target(ancestor)
+ candidate = spack.target.Target(ancestor)
candidate.optimization_flags(spec.compiler)
except archspec.cpu.UnsupportedMicroarchitecture:
continue
@@ -718,6 +712,8 @@ def concretize_specs_together(*abstract_specs, **kwargs):
"""Given a number of specs as input, tries to concretize them together.
Args:
+ tests (bool or list or set): False to run no tests, True to test
+ all packages, or a list of package names to run tests for some
*abstract_specs: abstract specs to be concretized, given either
as Specs or strings
@@ -737,8 +733,7 @@ def _concretize_specs_together_new(*abstract_specs, **kwargs):
result.print_cores()
tty.die("Unsatisfiable spec.")
- opt, i, answer = min(result.answers)
- return [answer[s.name].copy() for s in abstract_specs]
+ return [s.copy() for s in result.specs]
def _concretize_specs_together_original(*abstract_specs, **kwargs):
@@ -775,7 +770,7 @@ def _concretize_specs_together_original(*abstract_specs, **kwargs):
with spack.repo.additional_repository(concretization_repository):
# Spec from a helper package that depends on all the abstract_specs
concretization_root = spack.spec.Spec('concretizationroot')
- concretization_root.concretize()
+ concretization_root.concretize(tests=kwargs.get('tests', False))
# Retrieve the direct dependencies
concrete_specs = [
concretization_root[spec.name].copy() for spec in abstract_specs
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index 8794072e96..fa519afec6 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,8 +17,8 @@ configuration system behaves. The scopes are:
And corresponding :ref:`per-platform scopes <platform-scopes>`. Important
functions in this module are:
-* :py:func:`get_config`
-* :py:func:`update_config`
+* :func:`~spack.config.Configuration.get_config`
+* :func:`~spack.config.Configuration.update_config`
``get_config`` reads in YAML data for a particular scope and returns
it. Callers can then modify the data and write it back with
@@ -35,34 +35,36 @@ import functools
import os
import re
import sys
-import multiprocessing
from contextlib import contextmanager
-from six import iteritems
-from ordereddict_backport import OrderedDict
+from typing import List # novm
import ruamel.yaml as yaml
+from ordereddict_backport import OrderedDict
from ruamel.yaml.error import MarkedYAMLError
+from six import iteritems
import llnl.util.lang
import llnl.util.tty as tty
from llnl.util.filesystem import mkdirp
-import spack.paths
import spack.architecture
import spack.compilers
+import spack.paths
import spack.schema
+import spack.schema.bootstrap
import spack.schema.compilers
+import spack.schema.config
+import spack.schema.env
import spack.schema.mirrors
-import spack.schema.repos
-import spack.schema.packages
import spack.schema.modules
-import spack.schema.config
+import spack.schema.packages
+import spack.schema.repos
import spack.schema.upstreams
-import spack.schema.env
-from spack.error import SpackError
# Hacked yaml for configuration files preserves line numbers.
import spack.util.spack_yaml as syaml
+from spack.error import SpackError
+from spack.util.cpus import cpus_available
#: Dict from section names -> schema for that section
section_schemas = {
@@ -73,6 +75,7 @@ section_schemas = {
'modules': spack.schema.modules.schema,
'config': spack.schema.config.schema,
'upstreams': spack.schema.upstreams.schema,
+ 'bootstrap': spack.schema.bootstrap.schema
}
# Same as above, but including keys for environments
@@ -109,7 +112,7 @@ config_defaults = {
'verify_ssl': True,
'checksum': True,
'dirty': False,
- 'build_jobs': min(16, multiprocessing.cpu_count()),
+ 'build_jobs': min(16, cpus_available()),
'build_stage': '$tempdir/spack-stage',
'concretizer': 'original',
}
@@ -128,7 +131,7 @@ def first_existing(dictionary, keys):
try:
return next(k for k in keys if k in dictionary)
except StopIteration:
- raise KeyError("None of %s is in dict!" % keys)
+ raise KeyError("None of %s is in dict!" % str(keys))
class ConfigScope(object):
@@ -439,7 +442,8 @@ class Configuration(object):
@_config_mutator
def remove_scope(self, scope_name):
- return self.scopes.pop(scope_name)
+ """Remove scope by name; has no effect when ``scope_name`` does not exist"""
+ return self.scopes.pop(scope_name, None)
@property
def file_scopes(self):
@@ -533,7 +537,7 @@ class Configuration(object):
msg = ('The "{0}" section of the configuration needs to be written'
' to disk, but is currently using a deprecated format. '
'Please update it using:\n\n'
- '\tspack config [--scope=<scope] update {0}\n\n'
+ '\tspack config [--scope=<scope>] update {0}\n\n'
'Note that previous versions of Spack will not be able to '
'use the updated configuration.')
msg = msg.format(section)
@@ -564,22 +568,23 @@ class Configuration(object):
If ``scope`` is ``None`` or not provided, return the merged contents
of all of Spack's configuration scopes. If ``scope`` is provided,
- return only the confiugration as specified in that scope.
+ return only the configuration as specified in that scope.
This off the top-level name from the YAML section. That is, for a
YAML config file that looks like this::
config:
- install_tree: $spack/opt/spack
- module_roots:
- lmod: $spack/share/spack/lmod
+ install_tree:
+ root: $spack/opt/spack
+ build_stage:
+ - $tmpdir/$user/spack-stage
``get_config('config')`` will return::
- { 'install_tree': '$spack/opt/spack',
- 'module_roots: {
- 'lmod': '$spack/share/spack/lmod'
+ { 'install_tree': {
+ 'root': '$spack/opt/spack',
}
+ 'build_stage': ['$tmpdir/$user/spack-stage']
}
"""
@@ -647,7 +652,11 @@ class Configuration(object):
while parts:
key = parts.pop(0)
- value = value.get(key, default)
+ # cannot use value.get(key, default) in case there is another part
+ # and default is not a dict
+ if key not in value:
+ return default
+ value = value[key]
return value
@@ -714,7 +723,7 @@ def override(path_or_scope, value=None):
Arguments:
path_or_scope (ConfigScope or str): scope or single option to override
- value (object, optional): value for the single option
+ value (object or None): value for the single option
Temporarily push a scope on the current configuration, then remove it
after the context completes. If a single option is provided, create
@@ -741,15 +750,16 @@ def override(path_or_scope, value=None):
config.push_scope(overrides)
config.set(path_or_scope, value, scope=scope_name)
- yield config
-
- scope = config.remove_scope(overrides.name)
- assert scope is overrides
+ try:
+ yield config
+ finally:
+ scope = config.remove_scope(overrides.name)
+ assert scope is overrides
#: configuration scopes added on the command line
#: set by ``spack.main.main()``.
-command_line_scopes = []
+command_line_scopes = [] # type: List[str]
def _add_platform_scope(cfg, scope_type, name, path):
@@ -817,6 +827,81 @@ def _config():
config = llnl.util.lang.Singleton(_config)
+def add_from_file(filename, scope=None):
+ """Add updates to a config from a filename
+ """
+ import spack.environment as ev
+
+ # Get file as config dict
+ data = read_config_file(filename)
+ if any(k in data for k in spack.schema.env.keys):
+ data = ev.config_dict(data)
+
+ # update all sections from config dict
+ # We have to iterate on keys to keep overrides from the file
+ for section in data.keys():
+ if section in section_schemas.keys():
+ # Special handling for compiler scope difference
+ # Has to be handled after we choose a section
+ if scope is None:
+ scope = default_modify_scope(section)
+
+ value = data[section]
+ existing = get(section, scope=scope)
+ new = merge_yaml(existing, value)
+
+ # We cannot call config.set directly (set is a type)
+ config.set(section, new, scope)
+
+
+def add(fullpath, scope=None):
+ """Add the given configuration to the specified config scope.
+ Add accepts a path. If you want to add from a filename, use add_from_file"""
+
+ components = process_config_path(fullpath)
+
+ has_existing_value = True
+ path = ''
+ override = False
+ for idx, name in enumerate(components[:-1]):
+ # First handle double colons in constructing path
+ colon = '::' if override else ':' if path else ''
+ path += colon + name
+ if getattr(name, 'override', False):
+ override = True
+ else:
+ override = False
+
+ # Test whether there is an existing value at this level
+ existing = get(path, scope=scope)
+
+ if existing is None:
+ has_existing_value = False
+ # We've nested further than existing config, so we need the
+ # type information for validation to know how to handle bare
+ # values appended to lists.
+ existing = get_valid_type(path)
+
+ # construct value from this point down
+ value = syaml.load_config(components[-1])
+ for component in reversed(components[idx + 1:-1]):
+ value = {component: value}
+ break
+
+ if has_existing_value:
+ path, _, value = fullpath.rpartition(':')
+ value = syaml.load_config(value)
+ existing = get(path, scope=scope)
+
+ # append values to lists
+ if isinstance(existing, list) and not isinstance(value, list):
+ value = [value]
+
+ # merge value into existing
+ new = merge_yaml(existing, value)
+ config.set(path, new, scope)
+
+
def get(path, default=None, scope=None):
"""Module-level wrapper for ``Configuration.get()``."""
return config.get(path, default, scope)
@@ -854,6 +939,7 @@ def validate(data, schema, filename=None):
on Spack YAML structures.
"""
import jsonschema
+
# validate a copy to avoid adding defaults
# This allows us to round-trip data without adding to it.
test_data = copy.deepcopy(data)
@@ -1079,7 +1165,7 @@ def default_modify_scope(section='config'):
priority scope.
Arguments:
- section (boolean): Section for which to get the default scope.
+ section (bool): Section for which to get the default scope.
If this is not 'compilers', a general (non-platform) scope is used.
"""
if section == 'compilers':
@@ -1154,11 +1240,12 @@ def use_configuration(*scopes_or_paths):
saved_config, config = config, configuration
- yield configuration
-
- # Restore previous config files
- spack.compilers._cache_config_file = saved_compiler_cache
- config = saved_config
+ try:
+ yield configuration
+ finally:
+ # Restore previous config files
+ spack.compilers._cache_config_file = saved_compiler_cache
+ config = saved_config
@llnl.util.lang.memoized
diff --git a/lib/spack/spack/container/__init__.py b/lib/spack/spack/container/__init__.py
index 8206efef01..f9212a574c 100644
--- a/lib/spack/spack/container/__init__.py
+++ b/lib/spack/spack/container/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,9 +7,10 @@ generate container recipes from a Spack environment
"""
import warnings
-import spack.environment
+import spack.environment as ev
import spack.schema.env as env
import spack.util.spack_yaml as syaml
+
from .writers import recipe
__all__ = ['validate', 'recipe']
@@ -35,7 +36,7 @@ def validate(configuration_file):
config = syaml.load(f)
# Ensure we have a "container" attribute with sensible defaults set
- env_dict = spack.environment.config_dict(config)
+ env_dict = ev.config_dict(config)
env_dict.setdefault('container', {
'format': 'docker',
'images': {'os': 'ubuntu:18.04', 'spack': 'develop'}
diff --git a/lib/spack/spack/container/images.json b/lib/spack/spack/container/images.json
index 9461d576d1..cb495908c9 100644
--- a/lib/spack/spack/container/images.json
+++ b/lib/spack/spack/container/images.json
@@ -21,6 +21,13 @@
"build_tags": {
"develop": "latest"
}
+ },
+ "centos:6": {
+ "os_package_manager": "yum",
+ "build": "spack/centos6",
+ "build_tags": {
+ "develop": "latest"
+ }
}
},
"os_package_managers": {
diff --git a/lib/spack/spack/container/images.py b/lib/spack/spack/container/images.py
index 32fcff2770..9d2e15f195 100644
--- a/lib/spack/spack/container/images.py
+++ b/lib/spack/spack/container/images.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/container/writers/__init__.py b/lib/spack/spack/container/writers/__init__.py
index 176dd7a50c..978e999605 100644
--- a/lib/spack/spack/container/writers/__init__.py
+++ b/lib/spack/spack/container/writers/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,13 +8,11 @@ convenience functions.
import collections
import copy
-import spack.environment
+import spack.environment as ev
import spack.schema.env
import spack.tengine as tengine
import spack.util.spack_yaml as syaml
-
-from spack.container.images import build_info, commands_for
-from spack.container.images import os_package_manager_for
+from spack.container.images import build_info, commands_for, os_package_manager_for
#: Caches all the writers that are currently supported
_writer_factory = {}
@@ -39,7 +37,7 @@ def create(configuration):
Args:
configuration: how to generate the current recipe
"""
- name = spack.environment.config_dict(configuration)['container']['format']
+ name = ev.config_dict(configuration)['container']['format']
return _writer_factory[name](configuration)
@@ -58,7 +56,7 @@ class PathContext(tengine.Context):
directly via PATH.
"""
def __init__(self, config):
- self.config = spack.environment.config_dict(config)
+ self.config = ev.config_dict(config)
self.container_config = self.config['container']
@tengine.context_property
@@ -111,12 +109,36 @@ class PathContext(tengine.Context):
)
@tengine.context_property
+ def monitor(self):
+ """Enable using spack monitor during build."""
+ Monitor = collections.namedtuple('Monitor', [
+ 'enabled', 'host', 'disable_auth', 'prefix', 'keep_going', 'tags'
+ ])
+ monitor = self.config.get("monitor")
+
+ # If we don't have a monitor group, cut out early.
+ if not monitor:
+ return Monitor(False, None, None, None, None, None)
+
+ return Monitor(
+ enabled=True,
+ host=monitor.get('host'),
+ prefix=monitor.get('prefix'),
+ disable_auth=monitor.get("disable_auth"),
+ keep_going=monitor.get("keep_going"),
+ tags=monitor.get('tags')
+ )
+
+ @tengine.context_property
def manifest(self):
"""The spack.yaml file that should be used in the image"""
import jsonschema
+
# Copy in the part of spack.yaml prescribed in the configuration file
manifest = copy.deepcopy(self.config)
manifest.pop('container')
+ if "monitor" in manifest:
+ manifest.pop("monitor")
# Ensure that a few paths are where they need to be
manifest.setdefault('config', syaml.syaml_dict())
diff --git a/lib/spack/spack/container/writers/docker.py b/lib/spack/spack/container/writers/docker.py
index 557d22c803..218b11727c 100644
--- a/lib/spack/spack/container/writers/docker.py
+++ b/lib/spack/spack/container/writers/docker.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import spack.tengine as tengine
-from . import writer, PathContext
+from . import PathContext, writer
@writer('docker')
diff --git a/lib/spack/spack/container/writers/singularity.py b/lib/spack/spack/container/writers/singularity.py
index 32f29eb83d..f40449ad2d 100644
--- a/lib/spack/spack/container/writers/singularity.py
+++ b/lib/spack/spack/container/writers/singularity.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import spack.tengine as tengine
-from . import writer, PathContext
+
+from . import PathContext, writer
@writer('singularity')
diff --git a/lib/spack/spack/database.py b/lib/spack/spack/database.py
index db1e6a636b..2dbcd51950 100644
--- a/lib/spack/spack/database.py
+++ b/lib/spack/spack/database.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,10 +23,13 @@ filesystem.
import contextlib
import datetime
import os
-import six
import socket
import sys
import time
+from typing import Dict # novm
+
+import six
+
try:
import uuid
_use_uuid = True
@@ -37,6 +40,7 @@ except ImportError:
import llnl.util.filesystem as fs
import llnl.util.tty as tty
+import spack.hash_types as ht
import spack.repo
import spack.spec
import spack.store
@@ -63,7 +67,7 @@ _db_dirname = '.spack-db'
# DB version. This is stuck in the DB file to track changes in format.
# Increment by one when the database format changes.
# Versions before 5 were not integers.
-_db_version = Version('5')
+_db_version = Version('6')
# For any version combinations here, skip reindex when upgrading.
# Reindexing can take considerable time and is not always necessary.
@@ -74,6 +78,7 @@ _skip_reindex = [
# fields. So, skip the reindex for this transition. The new
# version is saved to disk the first time the DB is written.
(Version('0.9.3'), Version('5')),
+ (Version('5'), Version('6'))
]
# Default timeout for spack database locks in seconds or None (no timeout).
@@ -168,13 +173,13 @@ class InstallRecord(object):
dependents left.
Args:
- spec (Spec): spec tracked by the install record
+ spec (spack.spec.Spec): spec tracked by the install record
path (str): path where the spec has been installed
installed (bool): whether or not the spec is currently installed
ref_count (int): number of specs that depend on this one
- explicit (bool, optional): whether or not this spec was explicitly
+ explicit (bool or None): whether or not this spec was explicitly
installed, or pulled-in as a dependency of something else
- installation_time (time, optional): time of the installation
+ installation_time (datetime.datetime or None): time of the installation
"""
def __init__(
@@ -185,7 +190,8 @@ class InstallRecord(object):
ref_count=0,
explicit=False,
installation_time=None,
- deprecated_for=None
+ deprecated_for=None,
+ in_buildcache=False,
):
self.spec = spec
self.path = str(path) if path else None
@@ -194,6 +200,7 @@ class InstallRecord(object):
self.explicit = explicit
self.installation_time = installation_time or _now()
self.deprecated_for = deprecated_for
+ self.in_buildcache = in_buildcache
def install_type_matches(self, installed):
installed = InstallStatuses.canonicalize(installed)
@@ -251,35 +258,40 @@ _query_docstring = """
database. If it is a spec, we'll evaluate
``spec.satisfies(query_spec)``
- known (bool or any, optional): Specs that are "known" are those
+ known (bool or None): Specs that are "known" are those
for which Spack can locate a ``package.py`` file -- i.e.,
Spack "knows" how to install them. Specs that are unknown may
represent packages that existed in a previous version of
Spack, but have since either changed their name or
been removed
- installed (bool or any, or InstallStatus or iterable of
- InstallStatus, optional): if ``True``, includes only installed
+ installed (bool or InstallStatus or typing.Iterable or None):
+ if ``True``, includes only installed
specs in the search; if ``False`` only missing specs, and if
``any``, all specs in database. If an InstallStatus or iterable
of InstallStatus, returns specs whose install status
(installed, deprecated, or missing) matches (one of) the
InstallStatus. (default: True)
- explicit (bool or any, optional): A spec that was installed
+ explicit (bool or None): A spec that was installed
following a specific user request is marked as explicit. If
instead it was pulled-in as a dependency of a user requested
spec it's considered implicit.
- start_date (datetime, optional): filters the query discarding
- specs that have been installed before ``start_date``.
+ start_date (datetime.datetime or None): filters the query
+ discarding specs that have been installed before ``start_date``.
- end_date (datetime, optional): filters the query discarding
+ end_date (datetime.datetime or None): filters the query discarding
specs that have been installed after ``end_date``.
- hashes (container): list or set of hashes that we can use to
+ hashes (typing.Container): list or set of hashes that we can use to
restrict the search
+ in_buildcache (bool or None): Specs that are marked in
+ this database as part of an associated binary cache are
+ ``in_buildcache``. All other specs are not. This field is used
+ for querying mirror indices. Default is ``any``.
+
Returns:
list of specs that match the query
@@ -289,10 +301,10 @@ _query_docstring = """
class Database(object):
"""Per-process lock objects for each install prefix."""
- _prefix_locks = {}
+ _prefix_locks = {} # type: Dict[str, lk.Lock]
"""Per-process failure (lock) objects for each install prefix."""
- _prefix_failures = {}
+ _prefix_failures = {} # type: Dict[str, lk.Lock]
def __init__(self, root, db_dir=None, upstream_dbs=None,
is_upstream=False, enable_transaction_locking=True,
@@ -373,6 +385,11 @@ class Database(object):
desc='database')
self._data = {}
+ # For every installed spec we keep track of its install prefix, so that
+ # we can answer the simple query whether a given path is already taken
+ # before installing a different spec.
+ self._installed_prefixes = set()
+
self.upstream_dbs = list(upstream_dbs) if upstream_dbs else []
# whether there was an error at the start of a read transaction
@@ -434,7 +451,7 @@ class Database(object):
see `mark_failed()`.
Args:
- spec (Spec): the spec whose failure indicators are being removed
+ spec (spack.spec.Spec): the spec whose failure indicators are being removed
force (bool): True if the failure information should be cleared
when a prefix failure lock exists for the file or False if
the failure should not be cleared (e.g., it may be
@@ -630,7 +647,7 @@ class Database(object):
except (TypeError, ValueError) as e:
raise sjson.SpackJSONError("error writing JSON database:", str(e))
- def _read_spec_from_dict(self, hash_key, installs):
+ def _read_spec_from_dict(self, hash_key, installs, hash=ht.dag_hash):
"""Recursively construct a spec from a hash in a YAML database.
Does not do any locking.
@@ -639,8 +656,13 @@ class Database(object):
# Install records don't include hash with spec, so we add it in here
# to ensure it is read properly.
- for name in spec_dict:
- spec_dict[name]['hash'] = hash_key
+ if 'name' not in spec_dict.keys():
+ # old format, can't update format here
+ for name in spec_dict:
+ spec_dict[name]['hash'] = hash_key
+ else:
+ # new format, already a singleton
+ spec_dict[hash.name] = hash_key
# Build spec from dict first.
spec = spack.spec.Spec.from_node_dict(spec_dict)
@@ -671,10 +693,13 @@ class Database(object):
# Add dependencies from other records in the install DB to
# form a full spec.
spec = data[hash_key].spec
- spec_dict = installs[hash_key]['spec']
- if 'dependencies' in spec_dict[spec.name]:
- yaml_deps = spec_dict[spec.name]['dependencies']
- for dname, dhash, dtypes in spack.spec.Spec.read_yaml_dep_specs(
+ spec_node_dict = installs[hash_key]['spec']
+ if 'name' not in spec_node_dict:
+ # old format
+ spec_node_dict = spec_node_dict[spec.name]
+ if 'dependencies' in spec_node_dict:
+ yaml_deps = spec_node_dict['dependencies']
+ for dname, dhash, dtypes, _ in spack.spec.Spec.read_yaml_dep_specs(
yaml_deps):
# It is important that we always check upstream installations
# in the same order, and that we always check the local
@@ -765,6 +790,7 @@ class Database(object):
# Pass 1: Iterate through database and build specs w/o dependencies
data = {}
+ installed_prefixes = set()
for hash_key, rec in installs.items():
try:
# This constructs a spec DAG from the list of all installs
@@ -775,6 +801,9 @@ class Database(object):
# TODO: would a more immmutable spec implementation simplify
# this?
data[hash_key] = InstallRecord.from_dict(spec, rec)
+
+ if not spec.external and 'installed' in rec and rec['installed']:
+ installed_prefixes.add(rec['path'])
except Exception as e:
invalid_record(hash_key, e)
@@ -793,9 +822,10 @@ class Database(object):
# do it *while* we're constructing specs,it causes hashes to be
# cached prematurely.
for hash_key, rec in data.items():
- rec.spec._mark_concrete()
+ rec.spec._mark_root_concrete()
self._data = data
+ self._installed_prefixes = installed_prefixes
def reindex(self, directory_layout):
"""Build database index from scratch based on a directory layout.
@@ -815,6 +845,7 @@ class Database(object):
except CorruptDatabaseError as e:
self._error = e
self._data = {}
+ self._installed_prefixes = set()
transaction = lk.WriteTransaction(
self.lock, acquire=_read_suppress_error, release=self._write
@@ -829,12 +860,14 @@ class Database(object):
self._error = None
old_data = self._data
+ old_installed_prefixes = self._installed_prefixes
try:
self._construct_from_directory_layout(
directory_layout, old_data)
except BaseException:
# If anything explodes, restore old data, skip write.
self._data = old_data
+ self._installed_prefixes = old_installed_prefixes
raise
def _construct_entry_from_directory_layout(self, directory_layout,
@@ -871,6 +904,7 @@ class Database(object):
with directory_layout.disable_upstream_check():
# Initialize data in the reconstructed DB
self._data = {}
+ self._installed_prefixes = set()
# Start inspecting the installed prefixes
processed_specs = set()
@@ -1078,6 +1112,8 @@ class Database(object):
path = None
if not spec.external and directory_layout:
path = directory_layout.path_for_spec(spec)
+ if path in self._installed_prefixes:
+ raise Exception("Install prefix collision.")
try:
directory_layout.check_installed(spec)
installed = True
@@ -1085,6 +1121,7 @@ class Database(object):
tty.warn(
'Dependency missing: may be deprecated or corrupted:',
path, str(e))
+ self._installed_prefixes.add(path)
elif spec.external_path:
path = spec.external_path
@@ -1164,6 +1201,7 @@ class Database(object):
if rec.ref_count == 0 and not rec.installed:
del self._data[key]
+
for dep in spec.dependencies(_tracked_deps):
self._decrement_ref_count(dep)
@@ -1181,11 +1219,17 @@ class Database(object):
key = self._get_matching_spec_key(spec)
rec = self._data[key]
+ # This install prefix is now free for other specs to use, even if the
+ # spec is only marked uninstalled.
+ if not rec.spec.external:
+ self._installed_prefixes.remove(rec.path)
+
if rec.ref_count > 0:
rec.installed = False
return rec.spec
del self._data[key]
+
for dep in rec.spec.dependencies(_tracked_deps):
# FIXME: the two lines below needs to be updated once #11983 is
# FIXME: fixed. The "if" statement should be deleted and specs are
@@ -1254,6 +1298,16 @@ class Database(object):
self._data[spec_key] = spec_rec
@_autospec
+ def mark(self, spec, key, value):
+ """Mark an arbitrary record on a spec."""
+ with self.write_transaction():
+ return self._mark(spec, key, value)
+
+ def _mark(self, spec, key, value):
+ record = self._data[self._get_matching_spec_key(spec)]
+ setattr(record, key, value)
+
+ @_autospec
def deprecate(self, spec, deprecator):
"""Marks a spec as deprecated in favor of its deprecator"""
with self.write_transaction():
@@ -1347,10 +1401,10 @@ class Database(object):
Arguments:
dag_hash (str): hash (or hash prefix) to look up
- default (object, optional): default value to return if dag_hash is
+ default (object or None): default value to return if dag_hash is
not in the DB (default: None)
- installed (bool or any, or InstallStatus or iterable of
- InstallStatus, optional): if ``True``, includes only installed
+ installed (bool or InstallStatus or typing.Iterable or None):
+ if ``True``, includes only installed
specs in the search; if ``False`` only missing specs, and if
``any``, all specs in database. If an InstallStatus or iterable
of InstallStatus, returns specs whose install status
@@ -1373,14 +1427,13 @@ class Database(object):
Arguments:
dag_hash (str): hash (or hash prefix) to look up
- default (object, optional): default value to return if dag_hash is
+ default (object or None): default value to return if dag_hash is
not in the DB (default: None)
- installed (bool or any, or InstallStatus or iterable of
- InstallStatus, optional): if ``True``, includes only installed
- specs in the search; if ``False`` only missing specs, and if
- ``any``, all specs in database. If an InstallStatus or iterable
- of InstallStatus, returns specs whose install status
- (installed, deprecated, or missing) matches (one of) the
+ installed (bool or InstallStatus or typing.Iterable or None):
+ if ``True``, includes only installed specs in the search; if ``False``
+ only missing specs, and if ``any``, all specs in database. If an
+ InstallStatus or iterable of InstallStatus, returns specs whose install
+ status (installed, deprecated, or missing) matches (one of) the
InstallStatus. (default: any)
``installed`` defaults to ``any`` so that we can refer to any
@@ -1413,7 +1466,8 @@ class Database(object):
explicit=any,
start_date=None,
end_date=None,
- hashes=None
+ hashes=None,
+ in_buildcache=any,
):
"""Run a query on the database."""
@@ -1445,6 +1499,9 @@ class Database(object):
if not rec.install_type_matches(installed):
continue
+ if in_buildcache is not any and rec.in_buildcache != in_buildcache:
+ continue
+
if explicit is not any and rec.explicit != explicit:
continue
@@ -1452,11 +1509,12 @@ class Database(object):
rec.spec.name) != known:
continue
- inst_date = datetime.datetime.fromtimestamp(
- rec.installation_time
- )
- if not (start_date < inst_date < end_date):
- continue
+ if start_date or end_date:
+ inst_date = datetime.datetime.fromtimestamp(
+ rec.installation_time
+ )
+ if not (start_date < inst_date < end_date):
+ continue
if (query_spec is any or
rec.spec.satisfies(query_spec, strict=True)):
@@ -1464,6 +1522,8 @@ class Database(object):
return results
+ if _query.__doc__ is None:
+ _query.__doc__ = ""
_query.__doc__ += _query_docstring
def query_local(self, *args, **kwargs):
@@ -1471,6 +1531,8 @@ class Database(object):
with self.read_transaction():
return sorted(self._query(*args, **kwargs))
+ if query_local.__doc__ is None:
+ query_local.__doc__ = ""
query_local.__doc__ += _query_docstring
def query(self, *args, **kwargs):
@@ -1489,6 +1551,8 @@ class Database(object):
return sorted(results)
+ if query.__doc__ is None:
+ query.__doc__ = ""
query.__doc__ += _query_docstring
def query_one(self, query_spec, known=any, installed=True):
@@ -1508,6 +1572,10 @@ class Database(object):
upstream, record = self.query_by_spec_hash(key)
return record and not record.installed
+ def is_occupied_install_prefix(self, path):
+ with self.read_transaction():
+ return path in self._installed_prefixes
+
@property
def unused_specs(self):
"""Return all the specs that are currently installed but not needed
@@ -1537,7 +1605,7 @@ class Database(object):
Update the spec's explicit state in the database.
Args:
- spec (Spec): the spec whose install record is being updated
+ spec (spack.spec.Spec): the spec whose install record is being updated
explicit (bool): ``True`` if the package was requested explicitly
by the user, ``False`` if it was pulled in as a dependency of
an explicit package.
diff --git a/lib/spack/spack/dependency.py b/lib/spack/spack/dependency.py
index fe7d6b5983..a798915980 100644
--- a/lib/spack/spack/dependency.py
+++ b/lib/spack/spack/dependency.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,6 @@ from six import string_types
import spack.spec
-
#: The types of dependency relationships that Spack understands.
all_deptypes = ('build', 'link', 'run', 'test')
diff --git a/lib/spack/spack/directives.py b/lib/spack/spack/directives.py
index b7793a893f..91deedbb5a 100644
--- a/lib/spack/spack/directives.py
+++ b/lib/spack/spack/directives.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -27,13 +27,13 @@ The available directives are:
* ``version``
"""
-
import functools
import os.path
import re
import sys
+from typing import List, Set # novm
-from six import string_types
+import six
import llnl.util.lang
import llnl.util.tty.color
@@ -43,19 +43,18 @@ import spack.patch
import spack.spec
import spack.url
import spack.variant
-from spack.dependency import Dependency, default_deptype, canonical_deptype
+from spack.dependency import Dependency, canonical_deptype, default_deptype
from spack.fetch_strategy import from_kwargs
from spack.resource import Resource
from spack.version import Version, VersionChecksumError
-
if sys.version_info >= (3, 3):
from collections.abc import Sequence # novm
else:
from collections import Sequence
-__all__ = []
+__all__ = ['DirectiveError', 'DirectiveMeta']
#: These are variant names used by Spack internally; packages can't use them
reserved_names = ['patches', 'dev_path']
@@ -86,7 +85,7 @@ def make_when_spec(value):
as part of concretization.
Arguments:
- value (Spec or bool): a conditional Spec or a constant ``bool``
+ value (spack.spec.Spec or bool): a conditional Spec or a constant ``bool``
value indicating when a directive should be applied.
"""
@@ -111,8 +110,9 @@ class DirectiveMeta(type):
"""
# Set of all known directives
- _directive_names = set()
- _directives_to_be_executed = []
+ _directive_names = set() # type: Set[str]
+ _directives_to_be_executed = [] # type: List[str]
+ _when_constraints_from_context = [] # type: List[str]
def __new__(cls, name, bases, attr_dict):
# Initialize the attribute containing the list of directives
@@ -167,6 +167,16 @@ class DirectiveMeta(type):
super(DirectiveMeta, cls).__init__(name, bases, attr_dict)
@staticmethod
+ def push_to_context(when_spec):
+ """Add a spec to the context constraints."""
+ DirectiveMeta._when_constraints_from_context.append(when_spec)
+
+ @staticmethod
+ def pop_from_context():
+ """Pop the last constraint from the context"""
+ return DirectiveMeta._when_constraints_from_context.pop()
+
+ @staticmethod
def directive(dicts=None):
"""Decorator for Spack directives.
@@ -177,12 +187,16 @@ class DirectiveMeta(type):
Here's an example directive:
+ .. code-block:: python
+
@directive(dicts='versions')
version(pkg, ...):
...
This directive allows you write:
+ .. code-block:: python
+
class Foo(Package):
version(...)
@@ -204,15 +218,16 @@ class DirectiveMeta(type):
This is just a modular way to add storage attributes to the
Package class, and it's how Spack gets information from the
packages to the core.
-
"""
global __all__
- if isinstance(dicts, string_types):
+ if isinstance(dicts, six.string_types):
dicts = (dicts, )
+
if not isinstance(dicts, Sequence):
message = "dicts arg must be list, tuple, or string. Found {0}"
raise TypeError(message.format(type(dicts)))
+
# Add the dictionary names if not already there
DirectiveMeta._directive_names |= set(dicts)
@@ -222,6 +237,23 @@ class DirectiveMeta(type):
@functools.wraps(decorated_function)
def _wrapper(*args, **kwargs):
+ # Inject when arguments from the context
+ if DirectiveMeta._when_constraints_from_context:
+ # Check that directives not yet supporting the when= argument
+ # are not used inside the context manager
+ if decorated_function.__name__ in ('version', 'variant'):
+ msg = ('directive "{0}" cannot be used within a "when"'
+ ' context since it does not support a "when=" '
+ 'argument')
+ msg = msg.format(decorated_function.__name__)
+ raise DirectiveError(msg)
+
+ when_spec_from_context = ' '.join(
+ DirectiveMeta._when_constraints_from_context
+ )
+ when_spec = kwargs.get('when', '') + ' ' + when_spec_from_context
+ kwargs['when'] = when_spec
+
# If any of the arguments are executors returned by a
# directive passed as an argument, don't execute them
# lazily. Instead, let the called directive handle them.
@@ -277,6 +309,9 @@ def version(ver, checksum=None, **kwargs):
The ``dict`` of arguments is turned into a valid fetch strategy for
code packages later. See ``spack.fetch_strategy.for_package_version()``.
+
+ Keyword Arguments:
+ deprecated (bool): whether or not this version is deprecated
"""
def _execute_version(pkg):
if checksum is not None:
@@ -327,7 +362,7 @@ def _depends_on(pkg, spec, when=None, type=default_deptype, patches=None):
patches = [patches]
# auto-call patch() directive on any strings in patch list
- patches = [patch(p) if isinstance(p, string_types) else p
+ patches = [patch(p) if isinstance(p, six.string_types) else p
for p in patches]
assert all(callable(p) for p in patches)
@@ -361,8 +396,8 @@ def conflicts(conflict_spec, when=None, msg=None):
conflicts('%intel', when='+foo')
Args:
- conflict_spec (Spec): constraint defining the known conflict
- when (Spec): optional constraint that triggers the conflict
+ conflict_spec (spack.spec.Spec): constraint defining the known conflict
+ when (spack.spec.Spec): optional constraint that triggers the conflict
msg (str): optional user defined message
"""
def _execute_conflicts(pkg):
@@ -382,11 +417,11 @@ def depends_on(spec, when=None, type=default_deptype, patches=None):
"""Creates a dict of deps with specs defining when they apply.
Args:
- spec (Spec or str): the package and constraints depended on
- when (Spec or str): when the dependent satisfies this, it has
+ spec (spack.spec.Spec or str): the package and constraints depended on
+ when (spack.spec.Spec or str): when the dependent satisfies this, it has
the dependency represented by ``spec``
- type (str or tuple of str): str or tuple of legal Spack deptypes
- patches (obj or list): single result of ``patch()`` directive, a
+ type (str or tuple): str or tuple of legal Spack deptypes
+ patches (typing.Callable or list): single result of ``patch()`` directive, a
``str`` to be passed to ``patch``, or a list of these
This directive is to be used inside a Package definition to declare
@@ -400,7 +435,7 @@ def depends_on(spec, when=None, type=default_deptype, patches=None):
@directive(('extendees', 'dependencies'))
-def extends(spec, **kwargs):
+def extends(spec, type=('build', 'run'), **kwargs):
"""Same as depends_on, but allows symlinking into dependency's
prefix tree.
@@ -421,7 +456,7 @@ def extends(spec, **kwargs):
if not when_spec:
return
- _depends_on(pkg, spec, when=when)
+ _depends_on(pkg, spec, when=when, type=type)
pkg.extendees[spec] = (spack.spec.Spec(spec), kwargs)
return _execute_extends
@@ -464,7 +499,7 @@ def patch(url_or_filename, level=1, when=None, working_dir=".", **kwargs):
Args:
url_or_filename (str): url or relative filename of the patch
level (int): patch level (as in the patch shell command)
- when (Spec): optional anonymous spec that specifies when to apply
+ when (spack.spec.Spec): optional anonymous spec that specifies when to apply
the patch
working_dir (str): dir to change to before applying
@@ -528,12 +563,12 @@ def variant(
specified otherwise the default will be False for a boolean
variant and 'nothing' for a multi-valued variant
description (str): description of the purpose of the variant
- values (tuple or callable): either a tuple of strings containing the
+ values (tuple or typing.Callable): either a tuple of strings containing the
allowed values, or a callable accepting one value and returning
True if it is valid
multi (bool): if False only one value per spec is allowed for
this variant
- validator (callable): optional group validator to enforce additional
+ validator (typing.Callable): optional group validator to enforce additional
logic. It receives the package name, the variant name and a tuple
of values and should raise an instance of SpackError if the group
doesn't meet the additional constraints
diff --git a/lib/spack/spack/directory_layout.py b/lib/spack/spack/directory_layout.py
index 06a652f450..563cf84f4c 100644
--- a/lib/spack/spack/directory_layout.py
+++ b/lib/spack/spack/directory_layout.py
@@ -1,23 +1,26 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import errno
+import glob
import os
import shutil
-import glob
import tempfile
from contextlib import contextmanager
import ruamel.yaml as yaml
-from llnl.util.filesystem import mkdirp
+import llnl.util.filesystem as fs
+import llnl.util.tty as tty
import spack.config
+import spack.hash_types as ht
import spack.spec
+import spack.util.spack_json as sjson
from spack.error import SpackError
-
default_projections = {'all': ('{architecture}/'
'{compiler.name}-{compiler.version}/'
'{name}-{version}-{hash}')}
@@ -31,164 +34,28 @@ def _check_concrete(spec):
class DirectoryLayout(object):
"""A directory layout is used to associate unique paths with specs.
- Different installations are going to want differnet layouts for their
- install, and they can use this to customize the nesting structure of
- spack installs.
- """
-
- def __init__(self, root):
- self.root = root
- self.check_upstream = True
-
- @property
- def hidden_file_paths(self):
- """Return a list of hidden files used by the directory layout.
-
- Paths are relative to the root of an install directory.
-
- If the directory layout uses no hidden files to maintain
- state, this should return an empty container, e.g. [] or (,).
-
- """
- raise NotImplementedError()
+ Different installations are going to want different layouts for their
+ install, and they can use this to customize the nesting structure of
+ spack installs. The default layout is:
- def all_specs(self):
- """To be implemented by subclasses to traverse all specs for which there is
- a directory within the root.
- """
- raise NotImplementedError()
+ * <install root>/
- def relative_path_for_spec(self, spec):
- """Implemented by subclasses to return a relative path from the install
- root to a unique location for the provided spec."""
- raise NotImplementedError()
+ * <platform-os-target>/
- def create_install_directory(self, spec):
- """Creates the installation directory for a spec."""
- raise NotImplementedError()
+ * <compiler>-<compiler version>/
- def check_installed(self, spec):
- """Checks whether a spec is installed.
+ * <name>-<version>-<hash>
- Return the spec's prefix, if it is installed, None otherwise.
-
- Raise an exception if the install is inconsistent or corrupt.
- """
- raise NotImplementedError()
-
- def path_for_spec(self, spec):
- """Return absolute path from the root to a directory for the spec."""
- _check_concrete(spec)
+ The hash here is a SHA-1 hash for the full DAG plus the build
+ spec.
- if spec.external:
- return spec.external_path
- if self.check_upstream:
- upstream, record = spack.store.db.query_by_spec_hash(
- spec.dag_hash())
- if upstream:
- raise SpackError(
- "Internal error: attempted to call path_for_spec on"
- " upstream-installed package.")
-
- path = self.relative_path_for_spec(spec)
- assert(not path.startswith(self.root))
- return os.path.join(self.root, path)
-
- def remove_install_directory(self, spec, deprecated=False):
- """Removes a prefix and any empty parent directories from the root.
- Raised RemoveFailedError if something goes wrong.
- """
- path = self.path_for_spec(spec)
- assert(path.startswith(self.root))
-
- if deprecated:
- if os.path.exists(path):
- try:
- metapath = self.deprecated_file_path(spec)
- os.unlink(path)
- os.remove(metapath)
- except OSError as e:
- raise RemoveFailedError(spec, path, e)
-
- elif os.path.exists(path):
- try:
- shutil.rmtree(path)
- except OSError as e:
- raise RemoveFailedError(spec, path, e)
-
- path = os.path.dirname(path)
- while path != self.root:
- if os.path.isdir(path):
- if os.listdir(path):
- return
- os.rmdir(path)
- path = os.path.dirname(path)
-
-
-class ExtensionsLayout(object):
- """A directory layout is used to associate unique paths with specs for
- package extensions.
- Keeps track of which extensions are activated for what package.
- Depending on the use case, this can mean globally activated extensions
- directly in the installation folder - or extensions activated in
- filesystem views.
- """
- def __init__(self, view, **kwargs):
- self.view = view
-
- def add_extension(self, spec, ext_spec):
- """Add to the list of currently installed extensions."""
- raise NotImplementedError()
-
- def check_activated(self, spec, ext_spec):
- """Ensure that ext_spec can be removed from spec.
-
- If not, raise NoSuchExtensionError.
- """
- raise NotImplementedError()
-
- def check_extension_conflict(self, spec, ext_spec):
- """Ensure that ext_spec can be activated in spec.
-
- If not, raise ExtensionAlreadyInstalledError or
- ExtensionConflictError.
- """
- raise NotImplementedError()
-
- def extension_map(self, spec):
- """Get a dict of currently installed extension packages for a spec.
-
- Dict maps { name : extension_spec }
- Modifying dict does not affect internals of this layout.
- """
- raise NotImplementedError()
-
- def extendee_target_directory(self, extendee):
- """Specify to which full path extendee should link all files
- from extensions."""
- raise NotImplementedError
-
- def remove_extension(self, spec, ext_spec):
- """Remove from the list of currently installed extensions."""
- raise NotImplementedError()
-
-
-class YamlDirectoryLayout(DirectoryLayout):
- """By default lays out installation directories like this::
- <install root>/
- <platform-os-target>/
- <compiler>-<compiler version>/
- <name>-<version>-<hash>
-
- The hash here is a SHA-1 hash for the full DAG plus the build
- spec. TODO: implement the build spec.
-
- The installation directory projections can be modified with the
- projections argument.
+ The installation directory projections can be modified with the
+ projections argument.
"""
def __init__(self, root, **kwargs):
- super(YamlDirectoryLayout, self).__init__(root)
+ self.root = root
+ self.check_upstream = True
projections = kwargs.get('projections') or default_projections
self.projections = dict((key, projection.lower())
for key, projection in projections.items())
@@ -213,7 +80,9 @@ class YamlDirectoryLayout(DirectoryLayout):
# locate files in older upstream databases
self.metadata_dir = '.spack'
self.deprecated_dir = 'deprecated'
- self.spec_file_name = 'spec.yaml'
+ self.spec_file_name = 'spec.json'
+ # Use for checking yaml and deprecated types
+ self._spec_file_name_yaml = 'spec.yaml'
self.extension_file_name = 'extensions.yaml'
self.packages_dir = 'repos' # archive of package.py files
self.manifest_file_name = 'install_manifest.json'
@@ -233,13 +102,38 @@ class YamlDirectoryLayout(DirectoryLayout):
"""Write a spec out to a file."""
_check_concrete(spec)
with open(path, 'w') as f:
- spec.to_yaml(f)
+ # The hash the the projection is the DAG hash but we write out the
+ # full provenance by full hash so it's availabe if we want it later
+ # extension = os.path.splitext(path)[-1].lower()
+ # if 'json' in extension:
+ spec.to_json(f, hash=ht.full_hash)
+ # elif 'yaml' in extension:
+ # spec.to_yaml(f, hash=ht.full_hash)
+
+ def write_host_environment(self, spec):
+ """The host environment is a json file with os, kernel, and spack
+ versioning. We use it in the case that an analysis later needs to
+ easily access this information.
+ """
+ from spack.util.environment import get_host_environment_metadata
+ env_file = self.env_metadata_path(spec)
+ environ = get_host_environment_metadata()
+ with open(env_file, 'w') as fd:
+ sjson.dump(environ, fd)
def read_spec(self, path):
"""Read the contents of a file and parse them as a spec"""
try:
with open(path) as f:
- spec = spack.spec.Spec.from_yaml(f)
+ extension = os.path.splitext(path)[-1].lower()
+ if extension == '.json':
+ spec = spack.spec.Spec.from_json(f)
+ elif extension == '.yaml':
+ # Too late for conversion; spec_file_path() already called.
+ spec = spack.spec.Spec.from_yaml(f)
+ else:
+ raise SpecReadError('Did not recognize spec file extension:'
+ ' {0}'.format(extension))
except Exception as e:
if spack.config.get('config:debug'):
raise
@@ -253,12 +147,21 @@ class YamlDirectoryLayout(DirectoryLayout):
def spec_file_path(self, spec):
"""Gets full path to spec file"""
_check_concrete(spec)
- return os.path.join(self.metadata_path(spec), self.spec_file_name)
-
- def deprecated_file_name(self, spec):
- """Gets name of deprecated spec file in deprecated dir"""
- _check_concrete(spec)
- return spec.dag_hash() + '_' + self.spec_file_name
+ # Attempts to convert to JSON if possible.
+ # Otherwise just returns the YAML.
+ yaml_path = os.path.join(
+ self.metadata_path(spec), self._spec_file_name_yaml)
+ json_path = os.path.join(self.metadata_path(spec), self.spec_file_name)
+ if os.path.exists(yaml_path) and fs.can_write_to_dir(yaml_path):
+ self.write_spec(spec, json_path)
+ try:
+ os.remove(yaml_path)
+ except OSError as err:
+ tty.debug('Could not remove deprecated {0}'.format(yaml_path))
+ tty.debug(err)
+ elif os.path.exists(yaml_path):
+ return yaml_path
+ return json_path
def deprecated_file_path(self, deprecated_spec, deprecator_spec=None):
"""Gets full path to spec file for deprecated spec
@@ -276,8 +179,25 @@ class YamlDirectoryLayout(DirectoryLayout):
deprecator_spec
) if deprecator_spec else os.readlink(deprecated_spec.prefix)
- return os.path.join(base_dir, self.metadata_dir, self.deprecated_dir,
- self.deprecated_file_name(deprecated_spec))
+ yaml_path = os.path.join(base_dir, self.metadata_dir,
+ self.deprecated_dir, deprecated_spec.dag_hash()
+ + '_' + self._spec_file_name_yaml)
+
+ json_path = os.path.join(base_dir, self.metadata_dir,
+ self.deprecated_dir, deprecated_spec.dag_hash()
+ + '_' + self.spec_file_name)
+
+ if (os.path.exists(yaml_path) and fs.can_write_to_dir(yaml_path)):
+ self.write_spec(deprecated_spec, json_path)
+ try:
+ os.remove(yaml_path)
+ except (IOError, OSError) as err:
+ tty.debug('Could not remove deprecated {0}'.format(yaml_path))
+ tty.debug(err)
+ elif os.path.exists(yaml_path):
+ return yaml_path
+
+ return json_path
@contextmanager
def disable_upstream_check(self):
@@ -288,20 +208,18 @@ class YamlDirectoryLayout(DirectoryLayout):
def metadata_path(self, spec):
return os.path.join(spec.prefix, self.metadata_dir)
+ def env_metadata_path(self, spec):
+ return os.path.join(self.metadata_path(spec), "install_environment.json")
+
def build_packages_path(self, spec):
return os.path.join(self.metadata_path(spec), self.packages_dir)
def create_install_directory(self, spec):
_check_concrete(spec)
- prefix = self.check_installed(spec)
- if prefix:
- raise InstallDirectoryAlreadyExistsError(prefix)
-
# Create install directory with properly configured permissions
# Cannot import at top of file
- from spack.package_prefs import get_package_dir_permissions
- from spack.package_prefs import get_package_group
+ from spack.package_prefs import get_package_dir_permissions, get_package_group
# Each package folder can have its own specific permissions, while
# intermediate folders (arch/compiler) are set with access permissions
@@ -309,8 +227,8 @@ class YamlDirectoryLayout(DirectoryLayout):
group = get_package_group(spec)
perms = get_package_dir_permissions(spec)
- mkdirp(spec.prefix, mode=perms, group=group, default_perms='parents')
- mkdirp(self.metadata_path(spec), mode=perms, group=group) # in prefix
+ fs.mkdirp(spec.prefix, mode=perms, group=group, default_perms='parents')
+ fs.mkdirp(self.metadata_path(spec), mode=perms, group=group) # in prefix
self.write_spec(spec, self.spec_file_path(spec))
@@ -324,7 +242,7 @@ class YamlDirectoryLayout(DirectoryLayout):
if not os.path.isfile(spec_file_path):
raise InconsistentInstallDirectoryError(
- 'Install prefix exists but contains no spec.yaml:',
+ 'Install prefix exists but contains no spec.json:',
" " + path)
installed_spec = self.read_spec(spec_file_path)
@@ -335,7 +253,13 @@ class YamlDirectoryLayout(DirectoryLayout):
#
# TODO: remove this when we do better concretization and don't
# ignore build-only deps in hashes.
- elif installed_spec == spec.copy(deps=('link', 'run')):
+ elif (installed_spec.copy(deps=('link', 'run')) ==
+ spec.copy(deps=('link', 'run'))):
+ # The directory layout prefix is based on the dag hash, so among
+ # specs with differing full-hash but matching dag-hash, only one
+ # may be installed. This means for example that for two instances
+ # that differ only in CMake version used to build, only one will
+ # be installed.
return path
if spec.dag_hash() == installed_spec.dag_hash():
@@ -351,9 +275,14 @@ class YamlDirectoryLayout(DirectoryLayout):
specs = []
for _, path_scheme in self.projections.items():
path_elems = ["*"] * len(path_scheme.split(os.sep))
- path_elems += [self.metadata_dir, self.spec_file_name]
+ # NOTE: Does not validate filename extension; should happen later
+ path_elems += [self.metadata_dir, 'spec.json']
pattern = os.path.join(self.root, *path_elems)
spec_files = glob.glob(pattern)
+ if not spec_files: # we're probably looking at legacy yaml...
+ path_elems += [self.metadata_dir, 'spec.yaml']
+ pattern = os.path.join(self.root, *path_elems)
+ spec_files = glob.glob(pattern)
specs.extend([self.read_spec(s) for s in spec_files])
return specs
@@ -364,8 +293,9 @@ class YamlDirectoryLayout(DirectoryLayout):
deprecated_specs = set()
for _, path_scheme in self.projections.items():
path_elems = ["*"] * len(path_scheme.split(os.sep))
+ # NOTE: Does not validate filename extension; should happen later
path_elems += [self.metadata_dir, self.deprecated_dir,
- '*_' + self.spec_file_name]
+ '*_spec.*'] # + self.spec_file_name]
pattern = os.path.join(self.root, *path_elems)
spec_files = glob.glob(pattern)
get_depr_spec_file = lambda x: os.path.join(
@@ -381,6 +311,110 @@ class YamlDirectoryLayout(DirectoryLayout):
by_hash[spec.dag_hash()] = spec
return by_hash
+ def path_for_spec(self, spec):
+ """Return absolute path from the root to a directory for the spec."""
+ _check_concrete(spec)
+
+ if spec.external:
+ return spec.external_path
+ if self.check_upstream:
+ upstream, record = spack.store.db.query_by_spec_hash(
+ spec.dag_hash())
+ if upstream:
+ raise SpackError(
+ "Internal error: attempted to call path_for_spec on"
+ " upstream-installed package.")
+
+ path = self.relative_path_for_spec(spec)
+ assert(not path.startswith(self.root))
+ return os.path.join(self.root, path)
+
+ def remove_install_directory(self, spec, deprecated=False):
+ """Removes a prefix and any empty parent directories from the root.
+ Raised RemoveFailedError if something goes wrong.
+ """
+ path = self.path_for_spec(spec)
+ assert(path.startswith(self.root))
+
+ if deprecated:
+ if os.path.exists(path):
+ try:
+ metapath = self.deprecated_file_path(spec)
+ os.unlink(path)
+ os.remove(metapath)
+ except OSError as e:
+ raise RemoveFailedError(spec, path, e)
+
+ elif os.path.exists(path):
+ try:
+ shutil.rmtree(path)
+ except OSError as e:
+ raise RemoveFailedError(spec, path, e)
+
+ path = os.path.dirname(path)
+ while path != self.root:
+ if os.path.isdir(path):
+ try:
+ os.rmdir(path)
+ except OSError as e:
+ if e.errno == errno.ENOENT:
+ # already deleted, continue with parent
+ pass
+ elif e.errno == errno.ENOTEMPTY:
+ # directory wasn't empty, done
+ return
+ else:
+ raise e
+ path = os.path.dirname(path)
+
+
+class ExtensionsLayout(object):
+ """A directory layout is used to associate unique paths with specs for
+ package extensions.
+ Keeps track of which extensions are activated for what package.
+ Depending on the use case, this can mean globally activated extensions
+ directly in the installation folder - or extensions activated in
+ filesystem views.
+ """
+ def __init__(self, view, **kwargs):
+ self.view = view
+
+ def add_extension(self, spec, ext_spec):
+ """Add to the list of currently installed extensions."""
+ raise NotImplementedError()
+
+ def check_activated(self, spec, ext_spec):
+ """Ensure that ext_spec can be removed from spec.
+
+ If not, raise NoSuchExtensionError.
+ """
+ raise NotImplementedError()
+
+ def check_extension_conflict(self, spec, ext_spec):
+ """Ensure that ext_spec can be activated in spec.
+
+ If not, raise ExtensionAlreadyInstalledError or
+ ExtensionConflictError.
+ """
+ raise NotImplementedError()
+
+ def extension_map(self, spec):
+ """Get a dict of currently installed extension packages for a spec.
+
+ Dict maps { name : extension_spec }
+ Modifying dict does not affect internals of this layout.
+ """
+ raise NotImplementedError()
+
+ def extendee_target_directory(self, extendee):
+ """Specify to which full path extendee should link all files
+ from extensions."""
+ raise NotImplementedError
+
+ def remove_extension(self, spec, ext_spec):
+ """Remove from the list of currently installed extensions."""
+ raise NotImplementedError()
+
class YamlViewExtensionsLayout(ExtensionsLayout):
"""Maintain extensions within a view.
@@ -411,8 +445,8 @@ class YamlViewExtensionsLayout(ExtensionsLayout):
def check_extension_conflict(self, spec, ext_spec):
exts = self._extension_map(spec)
if ext_spec.name in exts:
- installed_spec = exts[ext_spec.name]
- if ext_spec == installed_spec:
+ installed_spec = exts[ext_spec.name].copy(deps=('link', 'run'))
+ if ext_spec.copy(deps=('link', 'run')) == installed_spec:
raise ExtensionAlreadyInstalledError(spec, ext_spec)
else:
raise ExtensionConflictError(spec, ext_spec, installed_spec)
@@ -506,7 +540,7 @@ class YamlViewExtensionsLayout(ExtensionsLayout):
# Create a temp file in the same directory as the actual file.
dirname, basename = os.path.split(path)
- mkdirp(dirname)
+ fs.mkdirp(dirname)
tmp = tempfile.NamedTemporaryFile(
prefix=basename, dir=dirname, delete=False)
@@ -559,14 +593,6 @@ class InconsistentInstallDirectoryError(DirectoryLayoutError):
message, long_msg)
-class InstallDirectoryAlreadyExistsError(DirectoryLayoutError):
- """Raised when create_install_directory is called unnecessarily."""
-
- def __init__(self, path):
- super(InstallDirectoryAlreadyExistsError, self).__init__(
- "Install path %s already exists!" % path)
-
-
class SpecReadError(DirectoryLayoutError):
"""Raised when directory layout can't read a spec."""
diff --git a/lib/spack/spack/environment.py b/lib/spack/spack/environment.py
index 6d0033d646..7a9a4735fc 100644
--- a/lib/spack/spack/environment.py
+++ b/lib/spack/spack/environment.py
@@ -1,18 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-
import collections
+import contextlib
+import copy
import os
import re
-import sys
import shutil
-import copy
-import socket
+import sys
+import ruamel.yaml as yaml
import six
-
from ordereddict_backport import OrderedDict
import llnl.util.filesystem as fs
@@ -20,26 +19,32 @@ import llnl.util.tty as tty
from llnl.util.tty.color import colorize
import spack.concretize
+import spack.config
import spack.error
import spack.hash_types as ht
+import spack.hooks
import spack.repo
import spack.schema.env
import spack.spec
-import spack.store
import spack.stage
-import spack.util.spack_json as sjson
-import spack.util.spack_yaml as syaml
-import spack.config
+import spack.store
import spack.user_environment as uenv
-from spack.filesystem_view import YamlFilesystemView
import spack.util.environment
-import spack.architecture as architecture
-from spack.spec import Spec
-from spack.spec_list import SpecList, InvalidSpecConstraintError
-from spack.variant import UnknownVariantError
+import spack.util.hash
import spack.util.lock as lk
-from spack.util.path import substitute_path_variables
+import spack.util.path
+import spack.util.spack_json as sjson
+import spack.util.spack_yaml as syaml
+from spack.filesystem_view import (
+ YamlFilesystemView,
+ inverse_view_func_parser,
+ view_func_parser,
+)
from spack.installer import PackageInstaller
+from spack.spec import Spec
+from spack.spec_list import InvalidSpecConstraintError, SpecList
+from spack.util.path import substitute_path_variables
+from spack.variant import UnknownVariantError
#: environment variable used to indicate the active environment
spack_env_var = 'SPACK_ENV'
@@ -80,7 +85,7 @@ spack:
valid_environment_name_re = r'^\w[\w-]*$'
#: version of the lockfile format. Must increase monotonically.
-lockfile_format_version = 2
+lockfile_format_version = 3
# Magic names
# The name of the standalone spec list in the manifest yaml
@@ -117,11 +122,12 @@ def activate(
use_env_repo (bool): use the packages exactly as they appear in the
environment's repository
add_view (bool): generate commands to add view to path variables
- shell (string): One of `sh`, `csh`, `fish`.
- prompt (string): string to add to the users prompt, or None
+ shell (str): One of `sh`, `csh`, `fish`.
+ prompt (str): string to add to the users prompt, or None
Returns:
- cmds: Shell commands to activate environment.
+ str: Shell commands to activate environment.
+
TODO: environment to use the activated spack environment.
"""
global _active_environment
@@ -131,7 +137,7 @@ def activate(
if use_env_repo:
spack.repo.path.put_first(_active_environment.repo)
- tty.debug("Using environmennt '%s'" % _active_environment.name)
+ tty.debug("Using environment '%s'" % _active_environment.name)
# Construct the commands to run
cmds = ''
@@ -199,10 +205,10 @@ def deactivate(shell='sh'):
"""Undo any configuration or repo settings modified by ``activate()``.
Arguments:
- shell (string): One of `sh`, `csh`, `fish`. Shell style to use.
+ shell (str): One of `sh`, `csh`, `fish`. Shell style to use.
Returns:
- (string): shell commands for `shell` to undo environment variables
+ str: shell commands for `shell` to undo environment variables
"""
global _active_environment
@@ -253,106 +259,15 @@ def deactivate(shell='sh'):
tty.warn('Could not fully deactivate view due to missing package '
'or repo, shell environment may be corrupt.')
- tty.debug("Deactivated environmennt '%s'" % _active_environment.name)
+ tty.debug("Deactivated environment '%s'" % _active_environment.name)
_active_environment = None
return cmds
-def find_environment(args):
- """Find active environment from args, spack.yaml, or environment variable.
-
- This is called in ``spack.main`` to figure out which environment to
- activate.
-
- Check for an environment in this order:
- 1. via ``spack -e ENV`` or ``spack -D DIR`` (arguments)
- 2. as a spack.yaml file in the current directory, or
- 3. via a path in the SPACK_ENV environment variable.
-
- If an environment is found, read it in. If not, return None.
-
- Arguments:
- args (Namespace): argparse namespace wtih command arguments
-
- Returns:
- (Environment): a found environment, or ``None``
- """
- # try arguments
- env = getattr(args, 'env', None)
-
- # treat env as a name
- if env:
- if exists(env):
- return read(env)
-
- else:
- # if env was specified, see if it is a dirctory otherwise, look
- # at env_dir (env and env_dir are mutually exclusive)
- env = getattr(args, 'env_dir', None)
-
- # if no argument, look for the environment variable
- if not env:
- env = os.environ.get(spack_env_var)
-
- # nothing was set; there's no active environment
- if not env:
- return None
-
- # if we get here, env isn't the name of a spack environment; it has
- # to be a path to an environment, or there is something wrong.
- if is_env_dir(env):
- return Environment(env)
-
- raise SpackEnvironmentError('no environment in %s' % env)
-
-
-def get_env(args, cmd_name, required=False):
- """Used by commands to get the active environment.
-
- This first checks for an ``env`` argument, then looks at the
- ``active`` environment. We check args first because Spack's
- subcommand arguments are parsed *after* the ``-e`` and ``-D``
- arguments to ``spack``. So there may be an ``env`` argument that is
- *not* the active environment, and we give it precedence.
-
- This is used by a number of commands for determining whether there is
- an active environment.
-
- If an environment is not found *and* is required, print an error
- message that says the calling command *needs* an active environment.
-
- Arguments:
- args (Namespace): argparse namespace wtih command arguments
- cmd_name (str): name of calling command
- required (bool): if ``True``, raise an exception when no environment
- is found; if ``False``, just return ``None``
-
- Returns:
- (Environment): if there is an arg or active environment
- """
- # try argument first
- env = getattr(args, 'env', None)
- if env:
- if exists(env):
- return read(env)
- elif is_env_dir(env):
- return Environment(env)
- else:
- raise SpackEnvironmentError('no environment in %s' % env)
-
- # try the active environment. This is set by find_environment() (above)
- if _active_environment:
- return _active_environment
- elif not required:
- return None
- else:
- tty.die(
- '`spack %s` requires an environment' % cmd_name,
- 'activate an environment first:',
- ' spack env activate ENV',
- 'or use:',
- ' spack -e ENV %s ...' % cmd_name)
+def active_environment():
+ """Returns the active environment when there is any"""
+ return _active_environment
def _root(name):
@@ -392,12 +307,12 @@ def read(name):
return Environment(root(name))
-def create(name, init_file=None, with_view=None):
+def create(name, init_file=None, with_view=None, keep_relative=False):
"""Create a named environment in Spack."""
validate_env_name(name)
if exists(name):
raise SpackEnvironmentError("'%s': environment already exists" % name)
- return Environment(root(name), init_file, with_view)
+ return Environment(root(name), init_file, with_view, keep_relative)
def config_dict(yaml_data):
@@ -446,52 +361,54 @@ def _write_yaml(data, str_or_file):
def _eval_conditional(string):
"""Evaluate conditional definitions using restricted variable scope."""
- arch = architecture.Arch(
- architecture.platform(), 'default_os', 'default_target')
- arch_spec = spack.spec.Spec('arch=%s' % arch)
- valid_variables = {
- 'target': str(arch.target),
- 'os': str(arch.os),
- 'platform': str(arch.platform),
- 'arch': arch_spec,
- 'architecture': arch_spec,
- 'arch_str': str(arch),
+ valid_variables = spack.util.environment.get_host_environment()
+ valid_variables.update({
're': re,
'env': os.environ,
- 'hostname': socket.gethostname()
- }
-
+ })
return eval(string, valid_variables)
class ViewDescriptor(object):
def __init__(self, base_path, root, projections={}, select=[], exclude=[],
- link=default_view_link):
+ link=default_view_link, link_type='symlink'):
self.base = base_path
- self.root = root
+ self.root = spack.util.path.canonicalize_path(root)
self.projections = projections
self.select = select
- self.select_fn = lambda x: any(x.satisfies(s) for s in self.select)
self.exclude = exclude
- self.exclude_fn = lambda x: not any(x.satisfies(e)
- for e in self.exclude)
+ self.link_type = view_func_parser(link_type)
self.link = link
+ def select_fn(self, spec):
+ return any(spec.satisfies(s) for s in self.select)
+
+ def exclude_fn(self, spec):
+ return not any(spec.satisfies(e) for e in self.exclude)
+
def __eq__(self, other):
return all([self.root == other.root,
self.projections == other.projections,
self.select == other.select,
self.exclude == other.exclude,
- self.link == other.link])
+ self.link == other.link,
+ self.link_type == other.link_type])
def to_dict(self):
- ret = {'root': self.root}
+ ret = syaml.syaml_dict([('root', self.root)])
if self.projections:
+ # projections guaranteed to be ordered dict if true-ish
+ # for python2.6, may be syaml or ruamel.yaml implementation
+ # so we have to check for both
+ types = (OrderedDict, syaml.syaml_dict, yaml.comments.CommentedMap)
+ assert isinstance(self.projections, types)
ret['projections'] = self.projections
if self.select:
ret['select'] = self.select
if self.exclude:
ret['exclude'] = self.exclude
+ if self.link_type:
+ ret['link_type'] = inverse_view_func_parser(self.link_type)
if self.link != default_view_link:
ret['link'] = self.link
return ret
@@ -503,15 +420,73 @@ class ViewDescriptor(object):
d.get('projections', {}),
d.get('select', []),
d.get('exclude', []),
- d.get('link', default_view_link))
+ d.get('link', default_view_link),
+ d.get('link_type', 'symlink'))
+
+ @property
+ def _current_root(self):
+ if not os.path.islink(self.root):
+ return None
+
+ root = os.readlink(self.root)
+ if os.path.isabs(root):
+ return root
+
+ root_dir = os.path.dirname(self.root)
+ return os.path.join(root_dir, root)
+
+ def _next_root(self, specs):
+ content_hash = self.content_hash(specs)
+ root_dir = os.path.dirname(self.root)
+ root_name = os.path.basename(self.root)
+ return os.path.join(root_dir, '._%s' % root_name, content_hash)
+
+ def content_hash(self, specs):
+ d = syaml.syaml_dict([
+ ('descriptor', self.to_dict()),
+ ('specs', [(spec.full_hash(), spec.prefix) for spec in sorted(specs)])
+ ])
+ contents = sjson.dump(d)
+ return spack.util.hash.b32_hash(contents)
+
+ def get_projection_for_spec(self, spec):
+ """Get projection for spec relative to view root
+
+ Getting the projection from the underlying root will get the temporary
+ projection. This gives the permanent projection relative to the root
+ symlink.
+ """
+ view = self.view()
+ view_path = view.get_projection_for_spec(spec)
+ rel_path = os.path.relpath(view_path, self._current_root)
+ return os.path.join(self.root, rel_path)
+
+ def view(self, new=None):
+ """
+ Generate the FilesystemView object for this ViewDescriptor
+
+ By default, this method returns a FilesystemView object rooted at the
+ current underlying root of this ViewDescriptor (self._current_root)
+
+ Raise if new is None and there is no current view
- def view(self):
- root = self.root
- if not os.path.isabs(root):
- root = os.path.normpath(os.path.join(self.base, self.root))
+ Arguments:
+ new (str or None): If a string, create a FilesystemView
+ rooted at that path. Default None. This should only be used to
+ regenerate the view, and cannot be used to access specs.
+ """
+ root = self._current_root
+ if new:
+ root = new
+ if not root:
+ # This can only be hit if we write a future bug
+ msg = ("Attempting to get nonexistent view from environment. "
+ "View root is at %s" % self.root)
+ raise SpackEnvironmentViewError(msg)
return YamlFilesystemView(root, spack.store.layout,
ignore_conflicts=True,
- projections=self.projections)
+ projections=self.projections,
+ link=self.link_type)
def __contains__(self, spec):
"""Is the spec described by the view descriptor
@@ -530,9 +505,10 @@ class ViewDescriptor(object):
return True
- def regenerate(self, all_specs, roots):
+ def specs_for_view(self, all_specs, roots):
specs_for_view = []
specs = all_specs if self.link == 'all' else roots
+
for spec in specs:
# The view does not store build deps, so if we want it to
# recognize environment specs (which do store build deps),
@@ -544,6 +520,10 @@ class ViewDescriptor(object):
spec_copy._hash = spec._hash
spec_copy._normal = spec._normal
specs_for_view.append(spec_copy)
+ return specs_for_view
+
+ def regenerate(self, all_specs, roots):
+ specs_for_view = self.specs_for_view(all_specs, roots)
# regeneration queries the database quite a bit; this read
# transaction ensures that we don't repeatedly lock/unlock.
@@ -553,31 +533,60 @@ class ViewDescriptor(object):
# To ensure there are no conflicts with packages being installed
# that cannot be resolved or have repos that have been removed
- # we always regenerate the view from scratch. We must first make
- # sure the root directory exists for the very first time though.
- root = self.root
- if not os.path.isabs(root):
- root = os.path.normpath(os.path.join(self.base, self.root))
- fs.mkdirp(root)
- with fs.replace_directory_transaction(root):
- view = self.view()
-
- view.clean()
- specs_in_view = set(view.get_all_specs())
- tty.msg("Updating view at {0}".format(self.root))
+ # we always regenerate the view from scratch.
+ # We will do this by hashing the view contents and putting the view
+ # in a directory by hash, and then having a symlink to the real
+ # view in the root. The real root for a view at /dirname/basename
+ # will be /dirname/._basename_<hash>.
+ # This allows for atomic swaps when we update the view
+
+ # cache the roots because the way we determine which is which does
+ # not work while we are updating
+ new_root = self._next_root(installed_specs_for_view)
+ old_root = self._current_root
+
+ if new_root == old_root:
+ tty.debug("View at %s does not need regeneration." % self.root)
+ return
+
+ # construct view at new_root
+ tty.msg("Updating view at {0}".format(self.root))
+
+ view = self.view(new=new_root)
+ fs.mkdirp(new_root)
+ view.add_specs(*installed_specs_for_view,
+ with_dependencies=False)
+
+ # create symlink from tmpname to new_root
+ root_dirname = os.path.dirname(self.root)
+ tmp_symlink_name = os.path.join(root_dirname, '._view_link')
+ if os.path.exists(tmp_symlink_name):
+ os.unlink(tmp_symlink_name)
+ os.symlink(new_root, tmp_symlink_name)
+
+ # mv symlink atomically over root symlink to old_root
+ if os.path.exists(self.root) and not os.path.islink(self.root):
+ msg = "Cannot create view: "
+ msg += "file already exists and is not a link: %s" % self.root
+ raise SpackEnvironmentViewError(msg)
+ os.rename(tmp_symlink_name, self.root)
+
+ # remove old_root
+ if old_root and os.path.exists(old_root):
+ try:
+ shutil.rmtree(old_root)
+ except (IOError, OSError) as e:
+ msg = "Failed to remove old view at %s\n" % old_root
+ msg += str(e)
+ tty.warn(msg)
- rm_specs = specs_in_view - installed_specs_for_view
- add_specs = installed_specs_for_view - specs_in_view
- # pass all_specs in, as it's expensive to read all the
- # spec.yaml files twice.
- view.remove_specs(*rm_specs, with_dependents=False,
- all_specs=specs_in_view)
- view.add_specs(*add_specs, with_dependencies=False)
+def _create_environment(*args, **kwargs):
+ return Environment(*args, **kwargs)
class Environment(object):
- def __init__(self, path, init_file=None, with_view=None):
+ def __init__(self, path, init_file=None, with_view=None, keep_relative=False):
"""Create a new environment.
The environment can be optionally initialized with either a
@@ -590,8 +599,15 @@ class Environment(object):
with_view (str or bool): whether a view should be maintained for
the environment. If the value is a string, it specifies the
path to the view.
+ keep_relative (bool): if True, develop paths are copied verbatim
+ into the new environment file, otherwise they are made absolute
+ when the environment path is different from init_file's
+ directory.
"""
self.path = os.path.abspath(path)
+ self.init_file = init_file
+ self.with_view = with_view
+ self.keep_relative = keep_relative
self.txlock = lk.Lock(self._transaction_lock_path)
@@ -611,6 +627,13 @@ class Environment(object):
self._set_user_specs_from_lockfile()
else:
self._read_manifest(f, raw_yaml=default_manifest_yaml)
+
+ # Rewrite relative develop paths when initializing a new
+ # environment in a different location from the spack.yaml file.
+ if not keep_relative and hasattr(f, 'name') and \
+ f.name.endswith('.yaml'):
+ init_file_dir = os.path.abspath(os.path.dirname(f.name))
+ self._rewrite_relative_paths_on_relocation(init_file_dir)
else:
with lk.ReadTransaction(self.txlock):
self._read()
@@ -627,6 +650,32 @@ class Environment(object):
# If with_view is None, then defer to the view settings determined by
# the manifest file
+ def __reduce__(self):
+ return _create_environment, (
+ self.path, self.init_file, self.with_view, self.keep_relative
+ )
+
+ def _rewrite_relative_paths_on_relocation(self, init_file_dir):
+ """When initializing the environment from a manifest file and we plan
+ to store the environment in a different directory, we have to rewrite
+ relative paths to absolute ones."""
+ if init_file_dir == self.path:
+ return
+
+ for name, entry in self.dev_specs.items():
+ dev_path = entry['path']
+ expanded_path = os.path.normpath(os.path.join(
+ init_file_dir, entry['path']))
+
+ # Skip if the expanded path is the same (e.g. when absolute)
+ if dev_path == expanded_path:
+ continue
+
+ tty.debug("Expanding develop path for {0} to {1}".format(
+ name, expanded_path))
+
+ self.dev_specs[name]['path'] = expanded_path
+
def _re_read(self):
"""Reinitialize the environment object if it has been written (this
may not be true if the environment was just created in this running
@@ -634,7 +683,7 @@ class Environment(object):
if not os.path.exists(self.manifest_path):
return
- self.clear()
+ self.clear(re_read=True)
self._read()
def _read(self):
@@ -732,15 +781,26 @@ class Environment(object):
)
}
- def clear(self):
+ def clear(self, re_read=False):
+ """Clear the contents of the environment
+
+ Arguments:
+ re_read (bool): If True, do not clear ``new_specs`` nor
+ ``new_installs`` values. These values cannot be read from
+ yaml, and need to be maintained when re-reading an existing
+ environment.
+ """
self.spec_lists = {user_speclist_name: SpecList()} # specs from yaml
self.dev_specs = {} # dev-build specs from yaml
self.concretized_user_specs = [] # user specs from last concretize
self.concretized_order = [] # roots of last concretize, in order
self.specs_by_hash = {} # concretized specs by hash
- self.new_specs = [] # write packages for these on write()
self._repo = None # RepoPath for this env (memoized)
self._previous_active = None # previously active environment
+ if not re_read:
+ # things that cannot be recreated from file
+ self.new_specs = [] # write packages for these on write()
+ self.new_installs = [] # write modules for these on write()
@property
def internal(self):
@@ -993,11 +1053,11 @@ class Environment(object):
"""Add dev-build info for package
Args:
- spec (Spec): Set constraints on development specs. Must include a
+ spec (spack.spec.Spec): Set constraints on development specs. Must include a
concrete version.
- path (string): Path to find code for developer builds. Relative
+ path (str): Path to find code for developer builds. Relative
paths will be resolved relative to the environment.
- clone (bool, default False): Clone the package code to the path.
+ clone (bool): Clone the package code to the path.
If clone is False Spack will assume the code is already present
at ``path``.
@@ -1034,8 +1094,7 @@ class Environment(object):
if clone:
# "steal" the source code via staging API
- abspath = path if os.path.isabs(path) else os.path.join(
- self.path, path)
+ abspath = os.path.normpath(os.path.join(self.path, path))
stage = spec.package.stage
stage.steal_source(abspath)
@@ -1054,7 +1113,11 @@ class Environment(object):
return True
return False
- def concretize(self, force=False):
+ def is_develop(self, spec):
+ """Returns true when the spec is built from local sources"""
+ return spec.name in self.dev_specs
+
+ def concretize(self, force=False, tests=False):
"""Concretize user_specs in this environment.
Only concretizes specs that haven't been concretized yet unless
@@ -1066,6 +1129,8 @@ class Environment(object):
Arguments:
force (bool): re-concretize ALL specs, even those that were
already concretized
+ tests (bool or list or set): False to run no tests, True to test
+ all packages, or a list of package names to run tests for some
Returns:
List of specs that have been concretized. Each entry is a tuple of
@@ -1079,14 +1144,14 @@ class Environment(object):
# Pick the right concretization strategy
if self.concretization == 'together':
- return self._concretize_together()
+ return self._concretize_together(tests=tests)
if self.concretization == 'separately':
- return self._concretize_separately()
+ return self._concretize_separately(tests=tests)
msg = 'concretization strategy not implemented [{0}]'
raise SpackEnvironmentError(msg.format(self.concretization))
- def _concretize_together(self):
+ def _concretize_together(self, tests=False):
"""Concretization strategy that concretizes all the specs
in the same DAG.
"""
@@ -1119,14 +1184,13 @@ class Environment(object):
self.specs_by_hash = {}
concrete_specs = spack.concretize.concretize_specs_together(
- *self.user_specs
- )
+ *self.user_specs, tests=tests)
concretized_specs = [x for x in zip(self.user_specs, concrete_specs)]
for abstract, concrete in concretized_specs:
self._add_concrete_spec(abstract, concrete)
return concretized_specs
- def _concretize_separately(self):
+ def _concretize_separately(self, tests=False):
"""Concretization strategy that concretizes separately one
user spec after the other.
"""
@@ -1149,12 +1213,12 @@ class Environment(object):
for uspec, uspec_constraints in zip(
self.user_specs, self.user_specs.specs_as_constraints):
if uspec not in old_concretized_user_specs:
- concrete = _concretize_from_constraints(uspec_constraints)
+ concrete = _concretize_from_constraints(uspec_constraints, tests=tests)
self._add_concrete_spec(uspec, concrete)
concretized_specs.append((uspec, concrete))
return concretized_specs
- def concretize_and_add(self, user_spec, concrete_spec=None):
+ def concretize_and_add(self, user_spec, concrete_spec=None, tests=False):
"""Concretize and add a single spec to the environment.
Concretize the provided ``user_spec`` and add it along with the
@@ -1177,7 +1241,7 @@ class Environment(object):
spec = Spec(user_spec)
if self.add(spec):
- concrete = concrete_spec or spec.concretized()
+ concrete = concrete_spec or spec.concretized(tests=tests)
self._add_concrete_spec(spec, concrete)
else:
# spec might be in the user_specs, but not installed.
@@ -1187,7 +1251,7 @@ class Environment(object):
)
concrete = self.specs_by_hash.get(spec.build_hash())
if not concrete:
- concrete = spec.concretized()
+ concrete = spec.concretized(tests=tests)
self._add_concrete_spec(spec, concrete)
return concrete
@@ -1248,19 +1312,36 @@ class Environment(object):
def _env_modifications_for_default_view(self, reverse=False):
all_mods = spack.util.environment.EnvironmentModifications()
+ visited = set()
+
errors = []
- for _, spec in self.concretized_specs():
- if spec in self.default_view and spec.package.installed:
- try:
- mods = uenv.environment_modifications_for_spec(
- spec, self.default_view)
- except Exception as e:
- msg = ("couldn't get environment settings for %s"
- % spec.format("{name}@{version} /{hash:7}"))
- errors.append((msg, str(e)))
- continue
+ for _, root_spec in self.concretized_specs():
+ if root_spec in self.default_view and root_spec.package.installed:
+ for spec in root_spec.traverse(deptype='run', root=True):
+ if spec.name in visited:
+ # It is expected that only one instance of the package
+ # can be added to the environment - do not attempt to
+ # add multiple.
+ tty.debug(
+ "Not adding {0} to shell modifications: "
+ "this package has already been added".format(
+ spec.format("{name}/{hash:7}")
+ )
+ )
+ continue
+ else:
+ visited.add(spec.name)
- all_mods.extend(mods.reversed() if reverse else mods)
+ try:
+ mods = uenv.environment_modifications_for_spec(
+ spec, self.default_view)
+ except Exception as e:
+ msg = ("couldn't get environment settings for %s"
+ % spec.format("{name}@{version} /{hash:7}"))
+ errors.append((msg, str(e)))
+ continue
+
+ all_mods.extend(mods.reversed() if reverse else mods)
return all_mods, errors
@@ -1402,26 +1483,34 @@ class Environment(object):
uninstalled_specs.append(spec)
return uninstalled_specs
- def install_all(self, args=None, **install_args):
+ def install_all(self, **install_args):
"""Install all concretized specs in an environment.
Note: this does not regenerate the views for the environment;
that needs to be done separately with a call to write().
Args:
- args (Namespace): argparse namespace with command arguments
install_args (dict): keyword install arguments
"""
+ self.install_specs(None, **install_args)
+
+ def install_specs(self, specs=None, **install_args):
tty.debug('Assessing installation status of environment packages')
# If "spack install" is invoked repeatedly for a large environment
# where all specs are already installed, the operation can take
# a large amount of time due to repeatedly acquiring and releasing
# locks, this does an initial check across all specs within a single
- # DB read transaction to reduce time spent in this case.
- specs_to_install = self.uninstalled_specs()
+ # DB read transaction to reduce time spent in this case. In the next
+ # three lines we remove any already-installed root specs from the list
+ # to install. However, uninstalled_specs() only considers root specs,
+ # so this will allow dep specs to be unnecessarily re-installed.
+ uninstalled_roots = self.uninstalled_specs()
+ specs_to_install = specs or uninstalled_roots
+ specs_to_install = [s for s in specs_to_install
+ if s not in self.roots() or s in uninstalled_roots]
# ensure specs already installed are marked explicit
- all_specs = [cs for _, cs in self.concretized_specs()]
+ all_specs = specs or [cs for _, cs in self.concretized_specs()]
specs_installed = [s for s in all_specs if s.package.installed]
with spack.store.db.write_transaction(): # do all in one transaction
for spec in specs_installed:
@@ -1431,23 +1520,15 @@ class Environment(object):
tty.msg('All of the packages are already installed')
return
- tty.debug('Processing {0} uninstalled specs'
- .format(len(specs_to_install)))
+ tty.debug('Processing {0} uninstalled specs'.format(
+ len(specs_to_install)))
install_args['overwrite'] = install_args.get(
'overwrite', []) + self._get_overwrite_specs()
installs = []
for spec in specs_to_install:
- # Parse cli arguments and construct a dictionary
- # that will be passed to the package installer
- kwargs = dict()
- if install_args:
- kwargs.update(install_args)
- if args:
- spack.cmd.install.update_kwargs_from_args(args, kwargs)
-
- installs.append((spec.package, kwargs))
+ installs.append((spec.package, install_args))
try:
builder = PackageInstaller(installs)
@@ -1456,6 +1537,7 @@ class Environment(object):
# Ensure links are set appropriately
for spec in specs_to_install:
if spec.package.installed:
+ self.new_installs.append(spec)
try:
self._install_log_links(spec)
except OSError as e:
@@ -1533,7 +1615,22 @@ class Environment(object):
# Dependency-only specs will have value None
matches = {}
+ if not isinstance(spec, spack.spec.Spec):
+ spec = spack.spec.Spec(spec)
+
for user_spec, concretized_user_spec in self.concretized_specs():
+ # Deal with concrete specs differently
+ if spec.concrete:
+ # Matching a concrete spec is more restrictive
+ # than just matching the dag hash
+ is_match = (
+ spec in concretized_user_spec and
+ concretized_user_spec[spec.name].build_hash() == spec.build_hash()
+ )
+ if is_match:
+ matches[spec] = spec
+ continue
+
if concretized_user_spec.satisfies(spec):
matches[concretized_user_spec] = user_spec
for dep_spec in concretized_user_spec.traverse(root=False):
@@ -1552,7 +1649,7 @@ class Environment(object):
if abstract)
if len(root_matches) == 1:
- return root_matches[0][1]
+ return list(root_matches.items())[0][0]
# More than one spec matched, and either multiple roots matched or
# none of the matches were roots
@@ -1610,11 +1707,12 @@ class Environment(object):
concrete_specs = {}
for spec in self.specs_by_hash.values():
for s in spec.traverse():
- dag_hash_all = s.build_hash()
- if dag_hash_all not in concrete_specs:
+ build_hash = s.build_hash()
+ if build_hash not in concrete_specs:
spec_dict = s.to_node_dict(hash=ht.build_hash)
- spec_dict[s.name]['hash'] = s.dag_hash()
- concrete_specs[dag_hash_all] = spec_dict
+ # Assumes no legacy formats, since this was just created.
+ spec_dict[ht.dag_hash.name] = s.dag_hash()
+ concrete_specs[build_hash] = spec_dict
hash_spec_list = zip(
self.concretized_order, self.concretized_user_specs)
@@ -1625,6 +1723,7 @@ class Environment(object):
'_meta': {
'file-type': 'spack-lockfile',
'lockfile-version': lockfile_format_version,
+ 'specfile-version': spack.spec.specfile_format_version
},
# users specs + hashes are the 'roots' of the environment
@@ -1655,13 +1754,18 @@ class Environment(object):
root_hashes = set(self.concretized_order)
specs_by_hash = {}
- for dag_hash, node_dict in json_specs_by_hash.items():
- specs_by_hash[dag_hash] = Spec.from_node_dict(node_dict)
-
- for dag_hash, node_dict in json_specs_by_hash.items():
- for dep_name, dep_hash, deptypes in (
+ for build_hash, node_dict in json_specs_by_hash.items():
+ spec = Spec.from_node_dict(node_dict)
+ if d['_meta']['lockfile-version'] > 1:
+ # Build hash is stored as a key, but not as part of the node dict
+ # To ensure build hashes are not recomputed, we reattach here
+ setattr(spec, ht.build_hash.attr, build_hash)
+ specs_by_hash[build_hash] = spec
+
+ for build_hash, node_dict in json_specs_by_hash.items():
+ for _, dep_hash, deptypes, _ in (
Spec.dependencies_from_node_dict(node_dict)):
- specs_by_hash[dag_hash]._add_dependency(
+ specs_by_hash[build_hash]._add_dependency(
specs_by_hash[dep_hash], deptypes)
# If we are reading an older lockfile format (which uses dag hashes
@@ -1684,17 +1788,16 @@ class Environment(object):
self.concretized_order = [
old_hash_to_new.get(h, h) for h in self.concretized_order]
- def write(self, regenerate_views=True):
+ def write(self, regenerate=True):
"""Writes an in-memory environment to its location on disk.
Write out package files for each newly concretized spec. Also
- regenerate any views associated with the environment, if
- regenerate_views is True.
+ regenerate any views associated with the environment and run post-write
+ hooks, if regenerate is True.
Arguments:
- regenerate_views (bool): regenerate views as well as
- writing if True.
-
+ regenerate (bool): regenerate views and run post-write hooks as
+ well as writing if True.
"""
# Intercept environment not using the latest schema format and prevent
# them from being modified
@@ -1730,7 +1833,6 @@ class Environment(object):
fs.mkdirp(pkg_dir)
spack.repo.path.dump_provenance(dep, pkg_dir)
- self.new_specs = []
# write the lock file last
with fs.write_tmp_and_move(self.lock_path) as f:
@@ -1746,9 +1848,16 @@ class Environment(object):
# call. But, having it here makes the views consistent witht the
# concretized environment for most operations. Which is the
# special case?
- if regenerate_views:
+ if regenerate:
self.regenerate_views()
+ # Run post_env_hooks
+ spack.hooks.post_env_write(self)
+
+ # new specs and new installs reset at write time
+ self.new_specs = []
+ self.new_installs = []
+
def _update_and_write_manifest(self, raw_yaml_dict, yaml_dict):
"""Update YAML manifest for this environment based on changes to
spec lists and views and write it.
@@ -1901,7 +2010,7 @@ def display_specs(concretized_specs):
print('')
-def _concretize_from_constraints(spec_constraints):
+def _concretize_from_constraints(spec_constraints, tests=False):
# Accept only valid constraints from list and concretize spec
# Get the named spec even if out of order
root_spec = [s for s in spec_constraints if s.name]
@@ -1920,7 +2029,7 @@ def _concretize_from_constraints(spec_constraints):
if c not in invalid_constraints:
s.constrain(c)
try:
- return s.concretized()
+ return s.concretized(tests=tests)
except spack.spec.InvalidDependencyError as e:
invalid_deps_string = ['^' + d for d in e.invalid_deps]
invalid_deps = [c for c in spec_constraints
@@ -2055,5 +2164,20 @@ def is_latest_format(manifest):
return not changed
+@contextlib.contextmanager
+def deactivate_environment():
+ """Deactivate an active environment for the duration of the context."""
+ global _active_environment
+ current, _active_environment = _active_environment, None
+ try:
+ yield
+ finally:
+ _active_environment = current
+
+
class SpackEnvironmentError(spack.error.SpackError):
"""Superclass for all errors to do with Spack environments."""
+
+
+class SpackEnvironmentViewError(SpackEnvironmentError):
+ """Class for errors regarding view generation."""
diff --git a/lib/spack/spack/error.py b/lib/spack/spack/error.py
index f79744f6a5..f0283e27c1 100644
--- a/lib/spack/spack/error.py
+++ b/lib/spack/spack/error.py
@@ -1,16 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-import sys
import inspect
+import sys
import llnl.util.tty as tty
-
#: whether we should write stack traces or short error messages
#: this is module-scoped because it needs to be set very early
debug = False
diff --git a/lib/spack/spack/extensions.py b/lib/spack/spack/extensions.py
index 4358dcd52f..69a287fe85 100644
--- a/lib/spack/spack/extensions.py
+++ b/lib/spack/spack/extensions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,7 @@ import sys
import types
import llnl.util.lang
+
import spack.config
import spack.error
diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py
index 1b94206fbf..6db41e2328 100644
--- a/lib/spack/spack/fetch_strategy.py
+++ b/lib/spack/spack/fetch_strategy.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -29,22 +29,30 @@ import os.path
import re
import shutil
import sys
+from typing import List, Optional # novm
-import llnl.util.tty as tty
import six
import six.moves.urllib.parse as urllib_parse
+
+import llnl.util.tty as tty
+from llnl.util.filesystem import (
+ get_single_file,
+ mkdirp,
+ temp_cwd,
+ temp_rename,
+ working_dir,
+)
+
import spack.config
import spack.error
import spack.util.crypto as crypto
import spack.util.pattern as pattern
import spack.util.url as url_util
import spack.util.web as web_util
-from llnl.util.filesystem import (
- working_dir, mkdirp, temp_rename, temp_cwd, get_single_file)
+import spack.version
from spack.util.compression import decompressor_for, extension
-from spack.util.executable import which, CommandNotFoundError
+from spack.util.executable import CommandNotFoundError, which
from spack.util.string import comma_and, quote
-from spack.version import Version, ver
#: List of all fetch strategies, created by FetchStrategy metaclass.
all_strategies = []
@@ -92,11 +100,12 @@ class FetchStrategy(object):
#: The URL attribute must be specified either at the package class
#: level, or as a keyword argument to ``version()``. It is used to
#: distinguish fetchers for different versions in the package DSL.
- url_attr = None
+ url_attr = None # type: Optional[str]
#: Optional attributes can be used to distinguish fetchers when :
#: classes have multiple ``url_attrs`` at the top-level.
- optional_attrs = [] # optional attributes in version() args.
+ # optional attributes in version() args.
+ optional_attrs = [] # type: List[str]
def __init__(self, **kwargs):
# The stage is initialized late, so that fetch strategies can be
@@ -290,7 +299,15 @@ class URLFetchStrategy(FetchStrategy):
@property
def candidate_urls(self):
- return [self.url] + (self.mirrors or [])
+ urls = []
+
+ for url in [self.url] + (self.mirrors or []):
+ if url.startswith('file://'):
+ path = urllib_parse.quote(url[len('file://'):])
+ url = 'file://' + path
+ urls.append(url)
+
+ return urls
@_needs_stage
def fetch(self):
@@ -306,10 +323,10 @@ class URLFetchStrategy(FetchStrategy):
try:
partial_file, save_file = self._fetch_from_url(url)
- if save_file:
+ if save_file and (partial_file is not None):
os.rename(partial_file, save_file)
break
- except FetchError as e:
+ except FailedDownloadError as e:
errors.append(str(e))
for msg in errors:
@@ -320,16 +337,67 @@ class URLFetchStrategy(FetchStrategy):
def _existing_url(self, url):
tty.debug('Checking existence of {0}'.format(url))
- curl = self.curl
- # Telling curl to fetch the first byte (-r 0-0) is supposed to be
- # portable.
- curl_args = ['--stderr', '-', '-s', '-f', '-r', '0-0', url]
- if not spack.config.get('config:verify_ssl'):
- curl_args.append('-k')
- _ = curl(*curl_args, fail_on_error=False, output=os.devnull)
- return curl.returncode == 0
+
+ if spack.config.get('config:url_fetch_method') == 'curl':
+ curl = self.curl
+ # Telling curl to fetch the first byte (-r 0-0) is supposed to be
+ # portable.
+ curl_args = ['--stderr', '-', '-s', '-f', '-r', '0-0', url]
+ if not spack.config.get('config:verify_ssl'):
+ curl_args.append('-k')
+ _ = curl(*curl_args, fail_on_error=False, output=os.devnull)
+ return curl.returncode == 0
+ else:
+ # Telling urllib to check if url is accessible
+ try:
+ url, headers, response = web_util.read_from_url(url)
+ except web_util.SpackWebError:
+ msg = "Urllib fetch failed to verify url {0}".format(url)
+ raise FailedDownloadError(url, msg)
+ return (response.getcode() is None or response.getcode() == 200)
def _fetch_from_url(self, url):
+ if spack.config.get('config:url_fetch_method') == 'curl':
+ return self._fetch_curl(url)
+ else:
+ return self._fetch_urllib(url)
+
+ def _check_headers(self, headers):
+ # Check if we somehow got an HTML file rather than the archive we
+ # asked for. We only look at the last content type, to handle
+ # redirects properly.
+ content_types = re.findall(r'Content-Type:[^\r\n]+', headers,
+ flags=re.IGNORECASE)
+ if content_types and 'text/html' in content_types[-1]:
+ warn_content_type_mismatch(self.archive_file or "the archive")
+
+ @_needs_stage
+ def _fetch_urllib(self, url):
+ save_file = None
+ if self.stage.save_filename:
+ save_file = self.stage.save_filename
+ tty.msg('Fetching {0}'.format(url))
+
+ # Run urllib but grab the mime type from the http headers
+ try:
+ url, headers, response = web_util.read_from_url(url)
+ except web_util.SpackWebError as e:
+ # clean up archive on failure.
+ if self.archive_file:
+ os.remove(self.archive_file)
+ if save_file and os.path.exists(save_file):
+ os.remove(save_file)
+ msg = 'urllib failed to fetch with error {0}'.format(e)
+ raise FailedDownloadError(url, msg)
+
+ with open(save_file, 'wb') as _open_file:
+ shutil.copyfileobj(response, _open_file)
+
+ self._check_headers(str(headers))
+ return None, save_file
+
+ @_needs_stage
+ def _fetch_curl(self, url):
save_file = None
partial_file = None
if self.stage.save_filename:
@@ -413,16 +481,10 @@ class URLFetchStrategy(FetchStrategy):
url,
"Curl failed with error %d" % curl.returncode)
- # Check if we somehow got an HTML file rather than the archive we
- # asked for. We only look at the last content type, to handle
- # redirects properly.
- content_types = re.findall(r'Content-Type:[^\r\n]+', headers,
- flags=re.IGNORECASE)
- if content_types and 'text/html' in content_types[-1]:
- warn_content_type_mismatch(self.archive_file or "the archive")
+ self._check_headers(headers)
return partial_file, save_file
- @property
+ @property # type: ignore # decorated properties unsupported in mypy
@_needs_stage
def archive_file(self):
"""Path to the source archive within this stage directory."""
@@ -465,6 +527,8 @@ class URLFetchStrategy(FetchStrategy):
tarball_container = os.path.join(self.stage.path,
"spack-expanded-archive")
+ # Below we assume that the command to decompress expand the
+ # archive in the current working directory
mkdirp(tarball_container)
with working_dir(tarball_container):
decompress(self.archive_file)
@@ -686,7 +750,7 @@ class GoFetchStrategy(VCSFetchStrategy):
@property
def go_version(self):
vstring = self.go('version', output=str).split(' ')[2]
- return Version(vstring)
+ return spack.version.Version(vstring)
@property
def go(self):
@@ -754,6 +818,8 @@ class GitFetchStrategy(VCSFetchStrategy):
optional_attrs = ['tag', 'branch', 'commit', 'submodules',
'get_full_repo', 'submodules_delete']
+ git_version_re = r'git version (\S+)'
+
def __init__(self, **kwargs):
# Discards the keywords in kwargs that may conflict with the next call
# to __init__
@@ -768,14 +834,28 @@ class GitFetchStrategy(VCSFetchStrategy):
@property
def git_version(self):
- vstring = self.git('--version', output=str).lstrip('git version ')
- return Version(vstring)
+ return GitFetchStrategy.version_from_git(self.git)
+
+ @staticmethod
+ def version_from_git(git_exe):
+ """Given a git executable, return the Version (this will fail if
+ the output cannot be parsed into a valid Version).
+ """
+ version_output = git_exe('--version', output=str)
+ m = re.search(GitFetchStrategy.git_version_re, version_output)
+ return spack.version.Version(m.group(1))
@property
def git(self):
if not self._git:
self._git = which('git', required=True)
+ # Disable advice for a quieter fetch
+ # https://github.com/git/git/blob/master/Documentation/RelNotes/1.7.2.txt
+ if self.git_version >= spack.version.Version('1.7.2'):
+ self._git.add_default_arg('-c')
+ self._git.add_default_arg('advice.detachedHead=false')
+
# If the user asked for insecure fetching, make that work
# with git as well.
if not spack.config.get('config:verify_ssl'):
@@ -815,25 +895,52 @@ class GitFetchStrategy(VCSFetchStrategy):
tty.debug('Already fetched {0}'.format(self.stage.source_path))
return
+ self.clone(commit=self.commit, branch=self.branch, tag=self.tag)
+
+ def clone(self, dest=None, commit=None, branch=None, tag=None, bare=False):
+ """
+ Clone a repository to a path.
+
+ This method handles cloning from git, but does not require a stage.
+
+ Arguments:
+ dest (str or None): The path into which the code is cloned. If None,
+ requires a stage and uses the stage's source path.
+ commit (str or None): A commit to fetch from the remote. Only one of
+ commit, branch, and tag may be non-None.
+ branch (str or None): A branch to fetch from the remote.
+ tag (str or None): A tag to fetch from the remote.
+ bare (bool): Execute a "bare" git clone (--bare option to git)
+ """
+ # Default to spack source path
+ dest = dest or self.stage.source_path
tty.debug('Cloning git repository: {0}'.format(self._repo_info()))
git = self.git
- if self.commit:
+ debug = spack.config.get('config:debug')
+
+ if bare:
+ # We don't need to worry about which commit/branch/tag is checked out
+ clone_args = ['clone', '--bare']
+ if not debug:
+ clone_args.append('--quiet')
+ clone_args.extend([self.url, dest])
+ git(*clone_args)
+ elif commit:
# Need to do a regular clone and check out everything if
# they asked for a particular commit.
- debug = spack.config.get('config:debug')
-
clone_args = ['clone', self.url]
if not debug:
clone_args.insert(1, '--quiet')
with temp_cwd():
git(*clone_args)
repo_name = get_single_file('.')
- self.stage.srcdir = repo_name
- shutil.move(repo_name, self.stage.source_path)
+ if self.stage:
+ self.stage.srcdir = repo_name
+ shutil.move(repo_name, dest)
- with working_dir(self.stage.source_path):
- checkout_args = ['checkout', self.commit]
+ with working_dir(dest):
+ checkout_args = ['checkout', commit]
if not debug:
checkout_args.insert(1, '--quiet')
git(*checkout_args)
@@ -841,18 +948,18 @@ class GitFetchStrategy(VCSFetchStrategy):
else:
# Can be more efficient if not checking out a specific commit.
args = ['clone']
- if not spack.config.get('config:debug'):
+ if not debug:
args.append('--quiet')
# If we want a particular branch ask for it.
- if self.branch:
- args.extend(['--branch', self.branch])
- elif self.tag and self.git_version >= ver('1.8.5.2'):
- args.extend(['--branch', self.tag])
+ if branch:
+ args.extend(['--branch', branch])
+ elif tag and self.git_version >= spack.version.ver('1.8.5.2'):
+ args.extend(['--branch', tag])
# Try to be efficient if we're using a new enough git.
# This checks out only one branch's history
- if self.git_version >= ver('1.7.10'):
+ if self.git_version >= spack.version.ver('1.7.10'):
if self.get_full_repo:
args.append('--no-single-branch')
else:
@@ -862,7 +969,7 @@ class GitFetchStrategy(VCSFetchStrategy):
# Yet more efficiency: only download a 1-commit deep
# tree, if the in-use git and protocol permit it.
if (not self.get_full_repo) and \
- self.git_version >= ver('1.7.1') and \
+ self.git_version >= spack.version.ver('1.7.1') and \
self.protocol_supports_shallow_clone():
args.extend(['--depth', '1'])
@@ -870,14 +977,15 @@ class GitFetchStrategy(VCSFetchStrategy):
git(*args)
repo_name = get_single_file('.')
- self.stage.srcdir = repo_name
- shutil.move(repo_name, self.stage.source_path)
+ if self.stage:
+ self.stage.srcdir = repo_name
+ shutil.move(repo_name, dest)
- with working_dir(self.stage.source_path):
+ with working_dir(dest):
# For tags, be conservative and check them out AFTER
# cloning. Later git versions can do this with clone
# --branch, but older ones fail.
- if self.tag and self.git_version < ver('1.8.5.2'):
+ if tag and self.git_version < spack.version.ver('1.8.5.2'):
# pull --tags returns a "special" error code of 1 in
# older versions that we have to ignore.
# see: https://github.com/git/git/commit/19d122b
@@ -891,7 +999,7 @@ class GitFetchStrategy(VCSFetchStrategy):
git(*co_args)
if self.submodules_delete:
- with working_dir(self.stage.source_path):
+ with working_dir(dest):
for submodule_to_delete in self.submodules_delete:
args = ['rm', submodule_to_delete]
if not spack.config.get('config:debug'):
@@ -900,7 +1008,7 @@ class GitFetchStrategy(VCSFetchStrategy):
# Init submodules if the user asked for them.
if self.submodules:
- with working_dir(self.stage.source_path):
+ with working_dir(dest):
args = ['submodule', 'update', '--init', '--recursive']
if not spack.config.get('config:debug'):
args.insert(1, '--quiet')
@@ -933,6 +1041,117 @@ class GitFetchStrategy(VCSFetchStrategy):
@fetcher
+class CvsFetchStrategy(VCSFetchStrategy):
+ """Fetch strategy that gets source code from a CVS repository.
+ Use like this in a package:
+
+ version('name',
+ cvs=':pserver:anonymous@www.example.com:/cvsroot%module=modulename')
+
+ Optionally, you can provide a branch and/or a date for the URL:
+
+ version('name',
+ cvs=':pserver:anonymous@www.example.com:/cvsroot%module=modulename',
+ branch='branchname', date='date')
+
+ Repositories are checked out into the standard stage source path directory.
+ """
+ url_attr = 'cvs'
+ optional_attrs = ['branch', 'date']
+
+ def __init__(self, **kwargs):
+ # Discards the keywords in kwargs that may conflict with the next call
+ # to __init__
+ forwarded_args = copy.copy(kwargs)
+ forwarded_args.pop('name', None)
+ super(CvsFetchStrategy, self).__init__(**forwarded_args)
+
+ self._cvs = None
+ if self.branch is not None:
+ self.branch = str(self.branch)
+ if self.date is not None:
+ self.date = str(self.date)
+
+ @property
+ def cvs(self):
+ if not self._cvs:
+ self._cvs = which('cvs', required=True)
+ return self._cvs
+
+ @property
+ def cachable(self):
+ return self.cache_enabled and (bool(self.branch) or bool(self.date))
+
+ def source_id(self):
+ if not (self.branch or self.date):
+ # We need a branch or a date to make a checkout reproducible
+ return None
+ id = 'id'
+ if self.branch:
+ id += '-branch=' + self.branch
+ if self.date:
+ id += '-date=' + self.date
+ return id
+
+ def mirror_id(self):
+ if not (self.branch or self.date):
+ # We need a branch or a date to make a checkout reproducible
+ return None
+ repo_path = url_util.parse(self.url).path
+ result = os.path.sep.join(['cvs', repo_path])
+ if self.branch:
+ result += '%branch=' + self.branch
+ if self.date:
+ result += '%date=' + self.date
+ return result
+
+ @_needs_stage
+ def fetch(self):
+ if self.stage.expanded:
+ tty.debug('Already fetched {0}'.format(self.stage.source_path))
+ return
+
+ tty.debug('Checking out CVS repository: {0}'.format(self.url))
+
+ with temp_cwd():
+ url, module = self.url.split('%module=')
+ # Check out files
+ args = ['-z9', '-d', url, 'checkout']
+ if self.branch is not None:
+ args.extend(['-r', self.branch])
+ if self.date is not None:
+ args.extend(['-D', self.date])
+ args.append(module)
+ self.cvs(*args)
+ # Rename repo
+ repo_name = get_single_file('.')
+ self.stage.srcdir = repo_name
+ shutil.move(repo_name, self.stage.source_path)
+
+ def _remove_untracked_files(self):
+ """Removes untracked files in a CVS repository."""
+ with working_dir(self.stage.source_path):
+ status = self.cvs('-qn', 'update', output=str)
+ for line in status.split('\n'):
+ if re.match(r'^[?]', line):
+ path = line[2:].strip()
+ if os.path.isfile(path):
+ os.unlink(path)
+
+ def archive(self, destination):
+ super(CvsFetchStrategy, self).archive(destination, exclude='CVS')
+
+ @_needs_stage
+ def reset(self):
+ self._remove_untracked_files()
+ with working_dir(self.stage.source_path):
+ self.cvs('update', '-C', '.')
+
+ def __str__(self):
+ return "[cvs] %s" % self.url
+
+
+@fetcher
class SvnFetchStrategy(VCSFetchStrategy):
"""Fetch strategy that gets source code from a subversion repository.
@@ -1063,8 +1282,9 @@ class HgFetchStrategy(VCSFetchStrategy):
@property
def hg(self):
- """:returns: The hg executable
- :rtype: Executable
+ """
+ Returns:
+ Executable: the hg executable
"""
if not self._hg:
self._hg = which('hg', required=True)
@@ -1214,7 +1434,7 @@ def from_kwargs(**kwargs):
``version()`` directive in a package.
Returns:
- fetch_strategy: The fetch strategy that matches the args, based
+ typing.Callable: The fetch strategy that matches the args, based
on attribute names (e.g., ``git``, ``hg``, etc.)
Raises:
@@ -1310,8 +1530,15 @@ def for_package_version(pkg, version):
check_pkg_attributes(pkg)
- if not isinstance(version, Version):
- version = Version(version)
+ if not isinstance(version, spack.version.Version):
+ version = spack.version.Version(version)
+
+ # if it's a commit, we must use a GitFetchStrategy
+ if version.is_commit and hasattr(pkg, "git"):
+ # Populate the version with comparisons to other commits
+ version.generate_commit_lookup(pkg)
+ fetcher = GitFetchStrategy(git=pkg.git, commit=str(version))
+ return fetcher
# If it's not a known version, try to extrapolate one by URL
if version not in pkg.versions:
diff --git a/lib/spack/spack/filesystem_view.py b/lib/spack/spack/filesystem_view.py
index b6501064b9..68cf7c156c 100644
--- a/lib/spack/spack/filesystem_view.py
+++ b/lib/spack/spack/filesystem_view.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,33 +8,33 @@ import os
import re
import shutil
import sys
+
from ordereddict_backport import OrderedDict
-from llnl.util.link_tree import LinkTree, MergeConflictError
from llnl.util import tty
-from llnl.util.lang import match_predicate, index_by
+from llnl.util.filesystem import mkdirp, remove_dead_links, remove_empty_directories
+from llnl.util.lang import index_by, match_predicate
+from llnl.util.link_tree import LinkTree, MergeConflictError
from llnl.util.tty.color import colorize
-from llnl.util.filesystem import (
- mkdirp, remove_dead_links, remove_empty_directories)
-import spack.util.spack_yaml as s_yaml
-import spack.util.spack_json as s_json
-
-import spack.spec
-import spack.store
-import spack.schema.projections
-import spack.projections
import spack.config
+import spack.projections
import spack.relocate
+import spack.schema.projections
+import spack.spec
+import spack.store
+import spack.util.spack_json as s_json
+import spack.util.spack_yaml as s_yaml
+from spack.directory_layout import (
+ ExtensionAlreadyInstalledError,
+ YamlViewExtensionsLayout,
+)
from spack.error import SpackError
-from spack.directory_layout import ExtensionAlreadyInstalledError
-from spack.directory_layout import YamlViewExtensionsLayout
-
# compatability
if sys.version_info < (3, 0):
- from itertools import imap as map
from itertools import ifilter as filter
+ from itertools import imap as map
from itertools import izip as zip
__all__ = ["FilesystemView", "YamlFilesystemView"]
@@ -98,6 +98,29 @@ def view_copy(src, dst, view, spec=None):
)
+def view_func_parser(parsed_name):
+ # What method are we using for this view
+ if parsed_name in ("hardlink", "hard"):
+ return view_hardlink
+ elif parsed_name in ("copy", "relocate"):
+ return view_copy
+ elif parsed_name in ("add", "symlink", "soft"):
+ return view_symlink
+ else:
+ raise ValueError("invalid link type for view: '%s'" % parsed_name)
+
+
+def inverse_view_func_parser(view_type):
+ # get string based on view type
+ if view_type is view_hardlink:
+ link_name = 'hardlink'
+ elif view_type is view_copy:
+ link_name = 'copy'
+ else:
+ link_name = 'symlink'
+ return link_name
+
+
class FilesystemView(object):
"""
Governs a filesystem view that is located at certain root-directory.
diff --git a/lib/spack/spack/graph.py b/lib/spack/spack/graph.py
index b41c923a16..84acfd37ef 100644
--- a/lib/spack/spack/graph.py
+++ b/lib/spack/spack/graph.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -49,7 +49,6 @@ from llnl.util.tty.color import ColorStream
from spack.dependency import all_deptypes, canonical_deptype
-
__all__ = ['topological_sort', 'graph_ascii', 'AsciiGraph', 'graph_dot']
@@ -62,17 +61,16 @@ def topological_sort(spec, reverse=False, deptype='all'):
"""
deptype = canonical_deptype(deptype)
- if not reverse:
- parents = lambda s: s.dependents()
- children = lambda s: s.dependencies()
- else:
- parents = lambda s: s.dependencies()
- children = lambda s: s.dependents()
-
# Work on a copy so this is nondestructive.
spec = spec.copy(deps=deptype)
nodes = spec.index(deptype=deptype)
+ parents = lambda s: [p for p in s.dependents() if p.name in nodes]
+ children = lambda s: s.dependencies()
+
+ if reverse:
+ parents, children = children, parents
+
topo_order = []
par = dict((name, parents(nodes[name])) for name in nodes.keys())
remaining = [name for name in nodes.keys() if not parents(nodes[name])]
@@ -552,11 +550,21 @@ def graph_dot(specs, deptype='all', static=False, out=None):
out.write(' style="rounded,filled"')
out.write(' ]\n')
+ # write nodes
out.write('\n')
for key, label in nodes:
out.write(' "%s" [label="%s"]\n' % (key, label))
+ # write edges
out.write('\n')
for src, dest in edges:
out.write(' "%s" -> "%s"\n' % (src, dest))
+
+ # ensure that roots are all at the top of the plot
+ dests = set([d for _, d in edges])
+ roots = ['"%s"' % k for k, _ in nodes if k not in dests]
+ out.write('\n')
+ out.write(' { rank=min; %s; }' % "; ".join(roots))
+
+ out.write('\n')
out.write('}\n')
diff --git a/lib/spack/spack/hash_types.py b/lib/spack/spack/hash_types.py
index 9404076e81..12a57640bd 100644
--- a/lib/spack/spack/hash_types.py
+++ b/lib/spack/spack/hash_types.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,6 +7,8 @@
import spack.dependency as dp
+hashes = []
+
class SpecHashDescriptor(object):
"""This class defines how hashes are generated on Spec objects.
@@ -16,24 +18,38 @@ class SpecHashDescriptor(object):
include certain dependency types, and it may optionally include a
canonicalized hash of the package.py for each node in the graph.
- We currently use different hashes for different use cases.
- """
- def __init__(self, deptype=('link', 'run'), package_hash=False, attr=None):
+ We currently use different hashes for different use cases."""
+
+ def __init__(self, deptype, package_hash, name, override=None):
self.deptype = dp.canonical_deptype(deptype)
self.package_hash = package_hash
- self.attr = attr
+ self.name = name
+ hashes.append(self)
+ # Allow spec hashes to have an alternate computation method
+ self.override = override
+
+ @property
+ def attr(self):
+ """Private attribute stored on spec"""
+ return '_' + self.name
#: Default Hash descriptor, used by Spec.dag_hash() and stored in the DB.
-dag_hash = SpecHashDescriptor(deptype=('link', 'run'), package_hash=False,
- attr='_hash')
+dag_hash = SpecHashDescriptor(
+ deptype=('link', 'run'), package_hash=False, name='hash')
#: Hash descriptor that includes build dependencies.
build_hash = SpecHashDescriptor(
- deptype=('build', 'link', 'run'), package_hash=False, attr='_build_hash')
+ deptype=('build', 'link', 'run'), package_hash=False, name='build_hash')
#: Full hash used in build pipelines to determine when to rebuild packages.
-full_hash = SpecHashDescriptor(deptype=('link', 'run'), package_hash=True,
- attr='_full_hash')
+full_hash = SpecHashDescriptor(
+ deptype=('build', 'link', 'run'), package_hash=True, name='full_hash')
+
+
+#: Package hash used as part of full hash
+package_hash = SpecHashDescriptor(
+ deptype=(), package_hash=True, name='package_hash',
+ override=lambda s: s.package.content_hash())
diff --git a/lib/spack/spack/hooks/__init__.py b/lib/spack/spack/hooks/__init__.py
index 5a5a04b49f..e802fa0197 100644
--- a/lib/spack/spack/hooks/__init__.py
+++ b/lib/spack/spack/hooks/__init__.py
@@ -1,27 +1,35 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 package contains modules with hooks for various stages in the
-
- Spack install process. You can add modules here and they'll be
- executed by package at various times during the package lifecycle.
-
- Each hook is just a function that takes a package as a parameter.
- Hooks are not executed in any particular order.
-
- Currently the following hooks are supported:
-
- * pre_install(spec)
- * post_install(spec)
- * pre_uninstall(spec)
- * post_uninstall(spec)
-
- This can be used to implement support for things like module
- systems (e.g. modules, lmod, etc.) or to add other custom
- features.
+Spack install process. You can add modules here and they'll be
+executed by package at various times during the package lifecycle.
+
+Each hook is just a function that takes a package as a parameter.
+Hooks are not executed in any particular order.
+
+Currently the following hooks are supported:
+
+ * pre_install(spec)
+ * post_install(spec)
+ * pre_uninstall(spec)
+ * post_uninstall(spec)
+ * on_install_start(spec)
+ * on_install_success(spec)
+ * on_install_failure(spec)
+ * on_phase_success(pkg, phase_name, log_file)
+ * on_phase_error(pkg, phase_name, log_file)
+ * on_phase_error(pkg, phase_name, log_file)
+ * on_analyzer_save(pkg, result)
+ * post_env_write(env)
+
+This can be used to implement support for things like module
+systems (e.g. modules, lmod, etc.) or to add other custom
+features.
"""
import llnl.util.lang
+
import spack.paths
@@ -68,8 +76,23 @@ class _HookRunner(object):
hook(*args, **kwargs)
+# pre/post install and run by the install subprocess
pre_install = _HookRunner('pre_install')
post_install = _HookRunner('post_install')
+# These hooks are run within an install subprocess
pre_uninstall = _HookRunner('pre_uninstall')
post_uninstall = _HookRunner('post_uninstall')
+on_phase_success = _HookRunner('on_phase_success')
+on_phase_error = _HookRunner('on_phase_error')
+
+# These are hooks in installer.py, before starting install subprocess
+on_install_start = _HookRunner('on_install_start')
+on_install_success = _HookRunner('on_install_success')
+on_install_failure = _HookRunner('on_install_failure')
+
+# Analyzer hooks
+on_analyzer_save = _HookRunner('on_analyzer_save')
+
+# Environment hooks
+post_env_write = _HookRunner('post_env_write')
diff --git a/lib/spack/spack/hooks/extensions.py b/lib/spack/spack/hooks/extensions.py
index 05fce302ac..a639df6181 100644
--- a/lib/spack/spack/hooks/extensions.py
+++ b/lib/spack/spack/hooks/extensions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/hooks/licensing.py b/lib/spack/spack/hooks/licensing.py
index d4e5376cda..8e789d9635 100644
--- a/lib/spack/spack/hooks/licensing.py
+++ b/lib/spack/spack/hooks/licensing.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/hooks/module_file_generation.py b/lib/spack/spack/hooks/module_file_generation.py
index ba30561d86..fa04a5a3a5 100644
--- a/lib/spack/spack/hooks/module_file_generation.py
+++ b/lib/spack/spack/hooks/module_file_generation.py
@@ -1,34 +1,56 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import llnl.util.tty as tty
+
import spack.config
import spack.modules
import spack.modules.common
-import llnl.util.tty as tty
def _for_each_enabled(spec, method_name):
"""Calls a method for each enabled module"""
- enabled = spack.config.get('modules:enable')
- if not enabled:
- tty.debug('NO MODULE WRITTEN: list of enabled module files is empty')
- return
-
- for name in enabled:
- generator = spack.modules.module_types[name](spec)
- try:
- getattr(generator, method_name)()
- except RuntimeError as e:
- msg = 'cannot perform the requested {0} operation on module files'
- msg += ' [{1}]'
- tty.warn(msg.format(method_name, str(e)))
+ set_names = set(spack.config.get('modules', {}).keys())
+ # If we have old-style modules enabled, we put those in the default set
+ old_default_enabled = spack.config.get('modules:enable')
+ if old_default_enabled:
+ set_names.add('default')
+ for name in set_names:
+ enabled = spack.config.get('modules:%s:enable' % name)
+ if name == 'default':
+ # combine enabled modules from default and old format
+ enabled = spack.config.merge_yaml(old_default_enabled, enabled)
+ if not enabled:
+ tty.debug('NO MODULE WRITTEN: list of enabled module files is empty')
+ continue
+
+ for type in enabled:
+ generator = spack.modules.module_types[type](spec, name)
+ try:
+ getattr(generator, method_name)()
+ except RuntimeError as e:
+ msg = 'cannot perform the requested {0} operation on module files'
+ msg += ' [{1}]'
+ tty.warn(msg.format(method_name, str(e)))
def post_install(spec):
+ import spack.environment as ev # break import cycle
+ if ev.active_environment():
+ # If the installed through an environment, we skip post_install
+ # module generation and generate the modules on env_write so Spack
+ # can manage interactions between env views and modules
+ return
+
_for_each_enabled(spec, 'write')
def post_uninstall(spec):
_for_each_enabled(spec, 'remove')
+
+
+def post_env_write(env):
+ for spec in env.new_installs:
+ _for_each_enabled(spec, 'write')
diff --git a/lib/spack/spack/hooks/monitor.py b/lib/spack/spack/hooks/monitor.py
new file mode 100644
index 0000000000..5ddc1223e8
--- /dev/null
+++ b/lib/spack/spack/hooks/monitor.py
@@ -0,0 +1,74 @@
+# Copyright 2013-2021 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)
+
+import llnl.util.tty as tty
+
+import spack.monitor
+
+
+def on_install_start(spec):
+ """On start of an install, we want to ping the server if it exists
+ """
+ if not spack.monitor.cli:
+ return
+
+ tty.debug("Running on_install_start for %s" % spec)
+ build_id = spack.monitor.cli.new_build(spec)
+ tty.verbose("Build created with id %s" % build_id)
+
+
+def on_install_success(spec):
+ """On the success of an install (after everything is complete)
+ """
+ if not spack.monitor.cli:
+ return
+
+ tty.debug("Running on_install_success for %s" % spec)
+ result = spack.monitor.cli.update_build(spec, status="SUCCESS")
+ tty.verbose(result.get('message'))
+
+
+def on_install_failure(spec):
+ """Triggered on failure of an install
+ """
+ if not spack.monitor.cli:
+ return
+
+ tty.debug("Running on_install_failure for %s" % spec)
+ result = spack.monitor.cli.fail_task(spec)
+ tty.verbose(result.get('message'))
+
+
+def on_phase_success(pkg, phase_name, log_file):
+ """Triggered on a phase success
+ """
+ if not spack.monitor.cli:
+ return
+
+ tty.debug("Running on_phase_success %s, phase %s" % (pkg.name, phase_name))
+ result = spack.monitor.cli.send_phase(pkg, phase_name, log_file, "SUCCESS")
+ tty.verbose(result.get('message'))
+
+
+def on_phase_error(pkg, phase_name, log_file):
+ """Triggered on a phase error
+ """
+ if not spack.monitor.cli:
+ return
+
+ tty.debug("Running on_phase_error %s, phase %s" % (pkg.name, phase_name))
+ result = spack.monitor.cli.send_phase(pkg, phase_name, log_file, "ERROR")
+ tty.verbose(result.get('message'))
+
+
+def on_analyzer_save(pkg, result):
+ """given a package and a result, if we have a spack monitor, upload
+ the result to it.
+ """
+ if not spack.monitor.cli:
+ return
+
+ # This hook runs after a save result
+ spack.monitor.cli.send_analyze_metadata(pkg, result)
diff --git a/lib/spack/spack/hooks/permissions_setters.py b/lib/spack/spack/hooks/permissions_setters.py
index 0a3c2acf21..e09876d3fd 100644
--- a/lib/spack/spack/hooks/permissions_setters.py
+++ b/lib/spack/spack/hooks/permissions_setters.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
import spack.util.file_permissions as fp
diff --git a/lib/spack/spack/hooks/sbang.py b/lib/spack/spack/hooks/sbang.py
index 687cf651f4..7eff565618 100644
--- a/lib/spack/spack/hooks/sbang.py
+++ b/lib/spack/spack/hooks/sbang.py
@@ -1,18 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import filecmp
import os
-import stat
import re
+import stat
import sys
-import llnl.util.tty as tty
import llnl.util.filesystem as fs
+import llnl.util.tty as tty
-import spack.modules
import spack.paths
import spack.store
diff --git a/lib/spack/spack/hooks/write_install_manifest.py b/lib/spack/spack/hooks/write_install_manifest.py
index 5b678fed88..0fb6acdf35 100644
--- a/lib/spack/spack/hooks/write_install_manifest.py
+++ b/lib/spack/spack/hooks/write_install_manifest.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/install_test.py b/lib/spack/spack/install_test.py
index 6c2c095a2e..8217d2f538 100644
--- a/lib/spack/spack/install_test.py
+++ b/lib/spack/spack/install_test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,16 +8,14 @@ import os
import re
import shutil
import sys
-import tty
import llnl.util.filesystem as fs
-
-from spack.spec import Spec
+import llnl.util.tty as tty
import spack.error
import spack.util.prefix
import spack.util.spack_json as sjson
-
+from spack.spec import Spec
test_suite_filename = 'test_suite.lock'
results_filename = 'results.txt'
@@ -30,7 +28,7 @@ def get_escaped_text_output(filename):
filename (str): path to the file
Returns:
- (list of str): escaped text lines read from the file
+ list: escaped text lines read from the file
"""
with open(filename, 'r') as f:
# Ensure special characters are escaped as needed
@@ -89,6 +87,8 @@ class TestSuite(object):
self.alias = alias
self._hash = None
+ self.fails = 0
+
@property
def name(self):
return self.alias if self.alias else self.content_hash
@@ -137,6 +137,7 @@ class TestSuite(object):
shutil.rmtree(test_dir)
self.write_test_result(spec, 'PASSED')
except BaseException as exc:
+ self.fails += 1
if isinstance(exc, SyntaxError):
# Create the test log file and report the error.
self.ensure_stage()
@@ -152,6 +153,9 @@ class TestSuite(object):
self.current_test_spec = None
self.current_base_spec = None
+ if self.fails:
+ raise TestSuiteFailure(self.fails)
+
def ensure_stage(self):
if not os.path.exists(self.stage):
fs.mkdirp(self.stage)
@@ -188,6 +192,13 @@ class TestSuite(object):
return self.stage.join(self.test_pkg_id(spec))
@property
+ def current_test_cache_dir(self):
+ assert self.current_test_spec and self.current_base_spec
+ test_spec = self.current_test_spec
+ base_spec = self.current_base_spec
+ return self.test_dir_for_spec(base_spec).cache.join(test_spec.name)
+
+ @property
def current_test_data_dir(self):
assert self.current_test_spec and self.current_base_spec
test_spec = self.current_test_spec
@@ -264,3 +275,11 @@ class TestFailure(spack.error.SpackError):
msg += '\n%s\n' % message
super(TestFailure, self).__init__(msg)
+
+
+class TestSuiteFailure(spack.error.SpackError):
+ """Raised when one or more tests in a suite have failed."""
+ def __init__(self, num_failures):
+ msg = "%d test(s) in the suite failed.\n" % num_failures
+
+ super(TestSuiteFailure, self).__init__(msg)
diff --git a/lib/spack/spack/installer.py b/lib/spack/spack/installer.py
index 15bc23738b..d6a0bcabd7 100644
--- a/lib/spack/spack/installer.py
+++ b/lib/spack/spack/installer.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -33,29 +33,31 @@ import heapq
import itertools
import os
import shutil
-import six
import sys
import time
-
from collections import defaultdict
+import six
+
import llnl.util.filesystem as fs
import llnl.util.lock as lk
import llnl.util.tty as tty
+from llnl.util.tty.color import colorize
+from llnl.util.tty.log import log_output
+
import spack.binary_distribution as binary_distribution
import spack.compilers
import spack.error
import spack.hooks
+import spack.monitor
import spack.package
import spack.package_prefs as prefs
import spack.repo
import spack.store
-
-from llnl.util.tty.color import colorize
-from llnl.util.tty.log import log_output
+import spack.util.executable
from spack.util.environment import dump_environment
from spack.util.executable import which
-
+from spack.util.timer import Timer
#: Counter to support unique spec sequencing that is used to ensure packages
#: with the same priority are (initially) processed in the order in which they
@@ -92,7 +94,7 @@ def _check_last_phase(pkg):
package already.
Args:
- pkg (PackageBase): the package being installed
+ pkg (spack.package.PackageBase): the package being installed
Raises:
``BadInstallPhase`` if stop_before or last phase is invalid
@@ -114,10 +116,11 @@ def _handle_external_and_upstream(pkg, explicit):
database if it is external package.
Args:
- pkg (Package): the package whose installation is under consideration
+ pkg (spack.package.Package): the package whose installation is under
+ consideration
explicit (bool): the package was explicitly requested by the user
Return:
- (bool): ``True`` if the package is external or upstream (so not to
+ bool: ``True`` if the package is external or upstream (so not to
be installed locally), otherwise, ``True``
"""
# For external packages the workflow is simplified, and basically
@@ -142,14 +145,8 @@ def _handle_external_and_upstream(pkg, explicit):
def _do_fake_install(pkg):
+ """Make a fake install directory with fake executables, headers, and libraries.
"""
- Make a fake install directory containing fake executables, headers,
- and libraries.
-
- Args:
- pkg (PackageBase): the package whose installation is to be faked
- """
-
command = pkg.name
header = pkg.name
library = pkg.name
@@ -193,15 +190,14 @@ def _packages_needed_to_bootstrap_compiler(compiler, architecture, pkgs):
compiler (CompilerSpec): the compiler to bootstrap
architecture (ArchSpec): the architecture for which to boostrap the
compiler
- pkgs (list of PackageBase): the packages that may need their compiler
+ pkgs (list): the packages that may need their compiler
installed
Return:
- (list) list of tuples, (PackageBase, bool), for concretized compiler-
- -related packages that need to be installed and bool values
- specify whether the package is the bootstrap compiler
- (``True``) or one of its dependencies (``False``). The list
- will be empty if there are no compilers.
+ list: list of tuples, (PackageBase, bool), for concretized compiler-related
+ packages that need to be installed and bool values specify whether the
+ package is the bootstrap compiler (``True``) or one of its dependencies
+ (``False``). The list will be empty if there are no compilers.
"""
tty.debug('Bootstrapping {0} compiler'.format(compiler))
compilers = spack.compilers.compilers_for_spec(
@@ -259,7 +255,7 @@ def _install_from_cache(pkg, cache_only, explicit, unsigned=False,
Extract the package from binary cache
Args:
- pkg (PackageBase): the package to install from the binary cache
+ pkg (spack.package.PackageBase): the package to install from the binary cache
cache_only (bool): only extract from binary cache
explicit (bool): ``True`` if installing the package was explicitly
requested by the user, otherwise, ``False``
@@ -267,7 +263,7 @@ def _install_from_cache(pkg, cache_only, explicit, unsigned=False,
otherwise, ``False``
Return:
- (bool) ``True`` if the package was extract from binary cache,
+ bool: ``True`` if the package was extract from binary cache,
``False`` otherwise
"""
installed_from_cache = _try_install_from_binary_cache(
@@ -349,8 +345,8 @@ def _process_binary_cache_tarball(pkg, binary_spec, explicit, unsigned,
Process the binary cache tarball.
Args:
- pkg (PackageBase): the package being installed
- binary_spec (Spec): the spec whose cache has been confirmed
+ pkg (spack.package.PackageBase): the package being installed
+ binary_spec (spack.spec.Spec): the spec whose cache has been confirmed
explicit (bool): the package was explicitly requested by the user
unsigned (bool): ``True`` if binary package signatures to be checked,
otherwise, ``False``
@@ -358,7 +354,7 @@ def _process_binary_cache_tarball(pkg, binary_spec, explicit, unsigned,
attempting to download the tarball
Return:
- (bool) ``True`` if the package was extracted from binary cache,
+ bool: ``True`` if the package was extracted from binary cache,
else ``False``
"""
tarball = binary_distribution.download_tarball(
@@ -371,8 +367,13 @@ def _process_binary_cache_tarball(pkg, binary_spec, explicit, unsigned,
pkg_id = package_id(pkg)
tty.msg('Extracting {0} from binary cache'.format(pkg_id))
- binary_distribution.extract_tarball(binary_spec, tarball, allow_root=False,
- unsigned=unsigned, force=False)
+
+ # don't print long padded paths while extracting/relocating binaries
+ with spack.util.path.filter_padding():
+ binary_distribution.extract_tarball(
+ binary_spec, tarball, allow_root=False, unsigned=unsigned, force=False
+ )
+
pkg.installed_from_binary_cache = True
spack.store.db.add(pkg.spec, spack.store.layout, explicit=explicit)
return True
@@ -384,7 +385,7 @@ def _try_install_from_binary_cache(pkg, explicit, unsigned=False,
Try to extract the package from binary cache.
Args:
- pkg (PackageBase): the package to be extracted from binary cache
+ pkg (spack.package.PackageBase): the package to be extracted from binary cache
explicit (bool): the package was explicitly requested by the user
unsigned (bool): ``True`` if binary package signatures to be checked,
otherwise, ``False``
@@ -392,7 +393,7 @@ def _try_install_from_binary_cache(pkg, explicit, unsigned=False,
pkg_id = package_id(pkg)
tty.debug('Searching for binary cache of {0}'.format(pkg_id))
matches = binary_distribution.get_mirrors_for_spec(
- pkg.spec, force=False, full_hash_match=full_hash_match)
+ pkg.spec, full_hash_match=full_hash_match)
if not matches:
return False
@@ -412,6 +413,25 @@ def clear_failures():
spack.store.db.clear_all_failures()
+def combine_phase_logs(phase_log_files, log_path):
+ """
+ Read set or list of logs and combine them into one file.
+
+ Each phase will produce it's own log, so this function aims to cat all the
+ separate phase log output files into the pkg.log_path. It is written
+ generally to accept some list of files, and a log path to combine them to.
+
+ Args:
+ phase_log_files (list): a list or iterator of logs to combine
+ log_path (str): the path to combine them to
+ """
+
+ with open(log_path, 'w') as log_file:
+ for phase_log_file in phase_log_files:
+ with open(phase_log_file, 'r') as phase_log:
+ log_file.write(phase_log.read())
+
+
def dump_packages(spec, path):
"""
Dump all package information for a spec and its dependencies.
@@ -421,7 +441,7 @@ def dump_packages(spec, path):
node in the DAG.
Args:
- spec (Spec): the Spack spec whose package information is to be dumped
+ spec (spack.spec.Spec): the Spack spec whose package information is to be dumped
path (str): the path to the build packages directory
"""
fs.mkdirp(path)
@@ -478,10 +498,10 @@ def get_dependent_ids(spec):
Return a list of package ids for the spec's dependents
Args:
- spec (Spec): Concretized spec
+ spec (spack.spec.Spec): Concretized spec
Returns:
- (list of str): list of package ids
+ list: list of package ids
"""
return [package_id(d.package) for d in spec.dependents()]
@@ -492,10 +512,10 @@ def install_msg(name, pid):
Args:
name (str): Name/id of the package being installed
- pid (id): id of the installer process
+ pid (int): id of the installer process
Return:
- (str) Colorized installing message
+ str: Colorized installing message
"""
pre = '{0}: '.format(pid) if tty.show_pid() else ''
return pre + colorize('@*{Installing} @*g{%s}' % name)
@@ -506,7 +526,7 @@ def log(pkg):
Copy provenance into the install directory on success
Args:
- pkg (Package): the package that was built and installed
+ pkg (spack.package.Package): the package that was built and installed
"""
packages_dir = spack.store.layout.build_packages_path(pkg.spec)
@@ -521,6 +541,12 @@ def log(pkg):
# Archive the whole stdout + stderr for the package
fs.install(pkg.log_path, pkg.install_log_path)
+ # Archive all phase log paths
+ for phase_log in pkg.phase_log_files:
+ log_file = os.path.basename(phase_log)
+ log_file = os.path.join(os.path.dirname(packages_dir), log_file)
+ fs.install(phase_log, log_file)
+
# Archive the environment used for the build
fs.install(pkg.env_path, pkg.install_env_path)
@@ -582,7 +608,8 @@ def package_id(pkg):
and packages for combinatorial environments.
Args:
- pkg (PackageBase): the package from which the identifier is derived
+ pkg (spack.package.PackageBase): the package from which the identifier is
+ derived
"""
if not pkg.spec.concrete:
raise ValueError("Cannot provide a unique, readable id when "
@@ -605,11 +632,11 @@ class PackageInstaller(object):
""" Initialize the installer.
Args:
- installs (list of (pkg, install_args)): list of tuples, where each
+ installs (list): list of tuples, where each
tuple consists of a package (PackageBase) and its associated
install arguments (dict)
Return:
- (PackageInstaller) instance
+ PackageInstaller: instance
"""
# List of build requests
self.build_requests = [BuildRequest(pkg, install_args)
@@ -665,7 +692,8 @@ class PackageInstaller(object):
Args:
compiler: the compiler to boostrap
architecture: the architecture for which to bootstrap the compiler
- pkgs (PackageBase): the package with possible compiler dependencies
+ pkgs (spack.package.PackageBase): the package with possible compiler
+ dependencies
request (BuildRequest): the associated install request
all_deps (defaultdict(set)): dictionary of all dependencies and
associated dependents
@@ -681,7 +709,7 @@ class PackageInstaller(object):
Creates and queus the initial build task for the package.
Args:
- pkg (Package): the package to be built and installed
+ pkg (spack.package.Package): the package to be built and installed
request (BuildRequest or None): the associated install request
where ``None`` can be used to indicate the package was
explicitly requested by the user
@@ -700,7 +728,7 @@ class PackageInstaller(object):
"""Determine if the spec is flagged as installed in the database
Args:
- spec (Spec): spec whose database install status is being checked
+ spec (spack.spec.Spec): spec whose database install status is being checked
Return:
(rec, installed_in_db) tuple where rec is the database record, or
@@ -788,24 +816,29 @@ class PackageInstaller(object):
# Determine if the spec is flagged as installed in the database
rec, installed_in_db = self._check_db(task.pkg.spec)
- # Make sure the installation directory is in the desired state
- # for uninstalled specs.
- partial = False
- if not installed_in_db and os.path.isdir(task.pkg.spec.prefix):
- if not keep_prefix:
- task.pkg.remove_prefix()
- else:
- tty.debug('{0} is partially installed'
- .format(task.pkg_id))
- partial = True
+ if not installed_in_db:
+ # Ensure there is no other installed spec with the same prefix dir
+ if spack.store.db.is_occupied_install_prefix(task.pkg.spec.prefix):
+ raise InstallError(
+ "Install prefix collision for {0}".format(task.pkg_id),
+ long_msg="Prefix directory {0} already used by another "
+ "installed spec.".format(task.pkg.spec.prefix))
+
+ # Make sure the installation directory is in the desired state
+ # for uninstalled specs.
+ if os.path.isdir(task.pkg.spec.prefix):
+ if not keep_prefix:
+ task.pkg.remove_prefix()
+ else:
+ tty.debug('{0} is partially installed'.format(task.pkg_id))
# Destroy the stage for a locally installed, non-DIYStage, package
if restage and task.pkg.stage.managed_by_spack:
task.pkg.stage.destroy()
- if not partial and self.layout.check_installed(task.pkg.spec) and (
- rec.spec.dag_hash() not in task.request.overwrite or
- rec.installation_time > task.request.overwrite_time
+ if installed_in_db and (
+ rec.spec.dag_hash() not in task.request.overwrite or
+ rec.installation_time > task.request.overwrite_time
):
self._update_installed(task)
@@ -856,7 +889,7 @@ class PackageInstaller(object):
Cleanup the build task for the spec
Args:
- pkg (PackageBase): the package being installed
+ pkg (spack.package.PackageBase): the package being installed
"""
self._remove_task(package_id(pkg))
@@ -870,7 +903,7 @@ class PackageInstaller(object):
already locked.
Args:
- pkg (PackageBase): the package being locally installed
+ pkg (spack.package.PackageBase): the package being locally installed
"""
pkg_id = package_id(pkg)
pre = "{0} cannot be installed locally:".format(pkg_id)
@@ -902,7 +935,7 @@ class PackageInstaller(object):
Args:
lock_type (str): 'read' for a read lock, 'write' for a write lock
- pkg (PackageBase): the package whose spec is being installed
+ pkg (spack.package.PackageBase): the package whose spec is being installed
Return:
(lock_type, lock) tuple where lock will be None if it could not
@@ -1135,10 +1168,9 @@ class PackageInstaller(object):
except spack.build_environment.StopPhase as e:
# A StopPhase exception means that do_install was asked to
# stop early from clients, and is not an error at this point
- pid = '{0}: '.format(pkg.pid) if tty.show_pid() else ''
+ pid = '{0}: '.format(self.pid) if tty.show_pid() else ''
tty.debug('{0}{1}'.format(pid, str(e)))
- tty.debug('Package stage directory: {0}'
- .format(pkg.stage.source_path))
+ tty.debug('Package stage directory: {0}' .format(pkg.stage.source_path))
def _next_is_pri0(self):
"""
@@ -1250,8 +1282,8 @@ class PackageInstaller(object):
task (BuildTask): the installation build task for a package
"""
if task.status not in [STATUS_INSTALLED, STATUS_INSTALLING]:
- tty.msg('{0} {1}'.format(install_msg(task.pkg_id, self.pid),
- 'in progress by another process'))
+ tty.debug('{0} {1}'.format(install_msg(task.pkg_id, self.pid),
+ 'in progress by another process'))
new_task = task.next_attempt(self.installed)
new_task.status = STATUS_INSTALLING
@@ -1260,9 +1292,10 @@ class PackageInstaller(object):
def _setup_install_dir(self, pkg):
"""
Create and ensure proper access controls for the install directory.
+ Write a small metadata file with the current spack environment.
Args:
- pkg (Package): the package to be built and installed
+ pkg (spack.package.Package): the package to be built and installed
"""
if not os.path.exists(pkg.spec.prefix):
tty.verbose('Creating the installation directory {0}'
@@ -1285,6 +1318,9 @@ class PackageInstaller(object):
# Ensure the metadata path exists as well
fs.mkdirp(spack.store.layout.metadata_path(pkg.spec), mode=perms)
+ # Always write host environment - we assume this can change
+ spack.store.layout.write_host_environment(pkg.spec)
+
def _update_failed(self, task, mark=False, exc=None):
"""
Update the task and transitive dependents as failed; optionally mark
@@ -1334,9 +1370,9 @@ class PackageInstaller(object):
known dependents.
Args:
- pkg (Package): Package that has been installed locally, externally
- or upstream
- dependent_ids (list of str or None): list of the package's
+ pkg (spack.package.Package): Package that has been installed locally,
+ externally or upstream
+ dependent_ids (list or None): list of the package's
dependent ids, or None if the dependent ids are limited to
those maintained in the package (dependency DAG)
"""
@@ -1387,9 +1423,9 @@ class PackageInstaller(object):
Install the requested package(s) and or associated dependencies.
Args:
- pkg (Package): the package to be built and installed"""
- self._init_queue()
+ pkg (spack.package.Package): the package to be built and installed"""
+ self._init_queue()
fail_fast_err = 'Terminating after first install failure'
single_explicit_spec = len(self.build_requests) == 1
failed_explicits = []
@@ -1400,12 +1436,12 @@ class PackageInstaller(object):
if task is None:
continue
+ spack.hooks.on_install_start(task.request.pkg.spec)
install_args = task.request.install_args
keep_prefix = install_args.get('keep_prefix')
pkg, pkg_id, spec = task.pkg, task.pkg_id, task.pkg.spec
tty.verbose('Processing {0}: task={1}'.format(pkg_id, task))
-
# Ensure that the current spec has NO uninstalled dependencies,
# which is assumed to be reflected directly in its priority.
#
@@ -1423,6 +1459,10 @@ class PackageInstaller(object):
tty.warn('{0} does NOT actually have any uninstalled deps'
' left'.format(pkg_id))
dep_str = 'dependencies' if task.priority > 1 else 'dependency'
+
+ # Hook to indicate task failure, but without an exception
+ spack.hooks.on_install_failure(task.request.pkg.spec)
+
raise InstallError(
'Cannot proceed with {0}: {1} uninstalled {2}: {3}'
.format(pkg_id, task.priority, dep_str,
@@ -1442,6 +1482,11 @@ class PackageInstaller(object):
tty.warn('{0} failed to install'.format(pkg_id))
self._update_failed(task)
+ # Mark that the package failed
+ # TODO: this should also be for the task.pkg, but we don't
+ # model transitive yet.
+ spack.hooks.on_install_failure(task.request.pkg.spec)
+
if self.fail_fast:
raise InstallError(fail_fast_err)
@@ -1524,6 +1569,9 @@ class PackageInstaller(object):
if os.path.exists(rec.path):
with fs.replace_directory_transaction(
rec.path):
+ # fs transaction will put the old prefix
+ # back on failure, so make sure to keep it.
+ keep_prefix = True
self._install_task(task)
else:
tty.debug("Missing installation to overwrite")
@@ -1542,35 +1590,24 @@ class PackageInstaller(object):
keep_prefix = keep_prefix or \
(stop_before_phase is None and last_phase is None)
- except spack.directory_layout.InstallDirectoryAlreadyExistsError \
- as err:
- tty.debug('Install prefix for {0} exists, keeping {1} in '
- 'place.'.format(pkg.name, pkg.prefix))
- self._update_installed(task)
-
- # Only terminate at this point if a single build request was
- # made.
- if task.explicit and single_explicit_spec:
- raise
-
- if task.explicit:
- exists_errors.append((pkg_id, str(err)))
-
except KeyboardInterrupt as exc:
# The build has been terminated with a Ctrl-C so terminate
# regardless of the number of remaining specs.
err = 'Failed to install {0} due to {1}: {2}'
tty.error(err.format(pkg.name, exc.__class__.__name__,
str(exc)))
+ spack.hooks.on_install_failure(task.request.pkg.spec)
raise
except (Exception, SystemExit) as exc:
self._update_failed(task, True, exc)
+ spack.hooks.on_install_failure(task.request.pkg.spec)
# Best effort installs suppress the exception and mark the
# package as a failure.
if (not isinstance(exc, spack.error.SpackError) or
not exc.printed):
+ exc.printed = True
# SpackErrors can be printed by the build process or at
# lower levels -- skip printing if already printed.
# TODO: sort out this and SpackError.print_context()
@@ -1610,126 +1647,240 @@ class PackageInstaller(object):
self._cleanup_all_tasks()
# Ensure we properly report if one or more explicit specs failed
- if exists_errors or failed_explicits:
+ # or were not installed when should have been.
+ missing = [request.pkg_id for request in self.build_requests if
+ request.install_args.get('install_package') and
+ request.pkg_id not in self.installed]
+ if exists_errors or failed_explicits or missing:
for pkg_id, err in exists_errors:
tty.error('{0}: {1}'.format(pkg_id, err))
for pkg_id, err in failed_explicits:
tty.error('{0}: {1}'.format(pkg_id, err))
+ for pkg_id in missing:
+ tty.error('{0}: Package was not installed'.format(pkg_id))
+
raise InstallError('Installation request failed. Refer to '
- 'recent errors for specific package(s).')
+ 'reported errors for failing package(s).')
-def build_process(pkg, kwargs):
- """Perform the installation/build of the package.
+class BuildProcessInstaller(object):
+ """This class implements the part installation that happens in the child process."""
- This runs in a separate child process, and has its own process and
- python module space set up by build_environment.start_build_process().
+ def __init__(self, pkg, install_args):
+ """Create a new BuildProcessInstaller.
- This function's return value is returned to the parent process.
- """
- fake = kwargs.get('fake', False)
- install_source = kwargs.get('install_source', False)
- keep_stage = kwargs.get('keep_stage', False)
- skip_patch = kwargs.get('skip_patch', False)
- unmodified_env = kwargs.get('unmodified_env', {})
- verbose = kwargs.get('verbose', False)
-
- start_time = time.time()
- if not fake:
- if not skip_patch:
- pkg.do_patch()
- else:
- pkg.do_stage()
+ It is assumed that the lifecycle of this object is the same as the child
+ process in the build.
- pid = '{0}: '.format(pkg.pid) if tty.show_pid() else ''
- pre = '{0}{1}:'.format(pid, pkg.name)
- pkg_id = package_id(pkg)
+ Arguments:
+ pkg (spack.package.PackageBase) the package being installed.
+ install_args (dict) arguments to do_install() from parent process.
- tty.debug('{0} Building {1} [{2}]'
- .format(pre, pkg_id, pkg.build_system_class))
-
- # get verbosity from do_install() parameter or saved value
- echo = verbose
- if spack.package.PackageBase._verbose is not None:
- echo = spack.package.PackageBase._verbose
-
- pkg.stage.keep = keep_stage
- with pkg.stage:
- # Run the pre-install hook in the child process after
- # the directory is created.
- spack.hooks.pre_install(pkg.spec)
- if fake:
- _do_fake_install(pkg)
- else:
- source_path = pkg.stage.source_path
- if install_source and os.path.isdir(source_path):
- src_target = os.path.join(pkg.spec.prefix, 'share',
- pkg.name, 'src')
- tty.debug('{0} Copying source to {1}'
- .format(pre, src_target))
- fs.install_tree(pkg.stage.source_path, src_target)
-
- # Do the real install in the source directory.
- with fs.working_dir(pkg.stage.source_path):
- # Save the build environment in a file before building.
- dump_environment(pkg.env_path)
-
- for attr in ('configure_args', 'cmake_args'):
- try:
- configure_args = getattr(pkg, attr)()
- configure_args = ' '.join(configure_args)
-
- with open(pkg.configure_args_path, 'w') as \
- args_file:
- args_file.write(configure_args)
-
- break
- except Exception:
- pass
-
- # cache debug settings
- debug_level = tty.debug_level()
-
- # Spawn a daemon that reads from a pipe and redirects
- # everything to log_path
- with log_output(pkg.log_path, echo, True,
- env=unmodified_env) as logger:
-
- for phase_name, phase_attr in zip(
- pkg.phases, pkg._InstallPhase_phases):
+ """
+ self.pkg = pkg
+
+ # whether to do a fake install
+ self.fake = install_args.get('fake', False)
+
+ # whether to install source code with the packag
+ self.install_source = install_args.get('install_source', False)
+
+ # whether to keep the build stage after installation
+ self.keep_stage = install_args.get('keep_stage', False)
+
+ # whether to skip the patch phase
+ self.skip_patch = install_args.get('skip_patch', False)
+
+ # whether to enable echoing of build output initially or not
+ self.verbose = install_args.get('verbose', False)
+
+ # env before starting installation
+ self.unmodified_env = install_args.get('unmodified_env', {})
+
+ # timer for build phases
+ self.timer = Timer()
+
+ # If we are using a padded path, filter the output to compress padded paths
+ # The real log still has full-length paths.
+ filter_padding = spack.config.get("config:install_tree:padded_length", None)
+ self.filter_fn = spack.util.path.padding_filter if filter_padding else None
+
+ # info/debug information
+ pid = '{0}: '.format(os.getpid()) if tty.show_pid() else ''
+ self.pre = '{0}{1}:'.format(pid, pkg.name)
+ self.pkg_id = package_id(pkg)
+
+ def run(self):
+ """Main entry point from ``build_process`` to kick off install in child."""
+
+ if not self.fake:
+ if not self.skip_patch:
+ self.pkg.do_patch()
+ else:
+ self.pkg.do_stage()
+
+ tty.debug(
+ '{0} Building {1} [{2}]' .format(
+ self.pre,
+ self.pkg_id,
+ self.pkg.build_system_class
+ )
+ )
+
+ # get verbosity from do_install() parameter or saved value
+ self.echo = self.verbose
+ if spack.package.PackageBase._verbose is not None:
+ self.echo = spack.package.PackageBase._verbose
+
+ self.pkg.stage.keep = self.keep_stage
+
+ with self.pkg.stage:
+ # Run the pre-install hook in the child process after
+ # the directory is created.
+ spack.hooks.pre_install(self.pkg.spec)
+ if self.fake:
+ _do_fake_install(self.pkg)
+ else:
+ if self.install_source:
+ self._install_source()
+
+ self._real_install()
+
+ # Stop the timer and save results
+ self.timer.stop()
+ with open(self.pkg.times_log_path, 'w') as timelog:
+ self.timer.write_json(timelog)
+
+ # Run post install hooks before build stage is removed.
+ spack.hooks.post_install(self.pkg.spec)
+
+ build_time = self.timer.total - self.pkg._fetch_time
+ tty.msg('{0} Successfully installed {1}'.format(self.pre, self.pkg_id),
+ 'Fetch: {0}. Build: {1}. Total: {2}.'
+ .format(_hms(self.pkg._fetch_time), _hms(build_time),
+ _hms(self.timer.total)))
+ _print_installed_pkg(self.pkg.prefix)
+
+ # Send final status that install is successful
+ spack.hooks.on_install_success(self.pkg.spec)
+
+ # preserve verbosity across runs
+ return self.echo
+ def _install_source(self):
+ """Install source code from stage into share/pkg/src if necessary."""
+ pkg = self.pkg
+ if not os.path.isdir(pkg.stage.source_path):
+ return
+
+ src_target = os.path.join(pkg.spec.prefix, 'share', pkg.name, 'src')
+ tty.debug('{0} Copying source to {1}' .format(self.pre, src_target))
+
+ fs.install_tree(pkg.stage.source_path, src_target)
+
+ def _real_install(self):
+ pkg = self.pkg
+
+ # Do the real install in the source directory.
+ with fs.working_dir(pkg.stage.source_path):
+ # Save the build environment in a file before building.
+ dump_environment(pkg.env_path)
+
+ for attr in ('configure_args', 'cmake_args'):
+ try:
+ configure_args = getattr(pkg, attr)()
+ configure_args = ' '.join(configure_args)
+
+ with open(pkg.configure_args_path, 'w') as \
+ args_file:
+ args_file.write(configure_args)
+
+ break
+ except Exception:
+ pass
+
+ # cache debug settings
+ debug_level = tty.debug_level()
+
+ # Spawn a daemon that reads from a pipe and redirects
+ # everything to log_path, and provide the phase for logging
+ for i, (phase_name, phase_attr) in enumerate(zip(
+ pkg.phases, pkg._InstallPhase_phases)):
+
+ # Keep a log file for each phase
+ log_dir = os.path.dirname(pkg.log_path)
+ log_file = "spack-build-%02d-%s-out.txt" % (
+ i + 1, phase_name.lower()
+ )
+ log_file = os.path.join(log_dir, log_file)
+
+ try:
+ # DEBUGGING TIP - to debug this section, insert an IPython
+ # embed here, and run the sections below without log capture
+ log_contextmanager = log_output(
+ log_file,
+ self.echo,
+ True,
+ env=self.unmodified_env,
+ filter_fn=self.filter_fn
+ )
+
+ with log_contextmanager as logger:
with logger.force_echo():
inner_debug_level = tty.debug_level()
tty.set_debug(debug_level)
- tty.msg("{0} Executing phase: '{1}'"
- .format(pre, phase_name))
+ tty.msg(
+ "{0} Executing phase: '{1}'" .format(
+ self.pre,
+ phase_name
+ )
+ )
tty.set_debug(inner_debug_level)
# Redirect stdout and stderr to daemon pipe
phase = getattr(pkg, phase_attr)
+ self.timer.phase(phase_name)
+
+ # Catch any errors to report to logging
phase(pkg.spec, pkg.prefix)
+ spack.hooks.on_phase_success(pkg, phase_name, log_file)
+
+ except BaseException:
+ combine_phase_logs(pkg.phase_log_files, pkg.log_path)
+ spack.hooks.on_phase_error(pkg, phase_name, log_file)
+ raise
- echo = logger.echo
- log(pkg)
+ # We assume loggers share echo True/False
+ self.echo = logger.echo
- # Run post install hooks before build stage is removed.
- spack.hooks.post_install(pkg.spec)
+ # After log, we can get all output/error files from the package stage
+ combine_phase_logs(pkg.phase_log_files, pkg.log_path)
+ log(pkg)
- # Stop the timer
- pkg._total_time = time.time() - start_time
- build_time = pkg._total_time - pkg._fetch_time
- tty.debug('{0} Successfully installed {1}'
- .format(pre, pkg_id),
- 'Fetch: {0}. Build: {1}. Total: {2}.'
- .format(_hms(pkg._fetch_time), _hms(build_time),
- _hms(pkg._total_time)))
- _print_installed_pkg(pkg.prefix)
+def build_process(pkg, install_args):
+ """Perform the installation/build of the package.
+
+ This runs in a separate child process, and has its own process and
+ python module space set up by build_environment.start_build_process().
+
+ This essentially wraps an instance of ``BuildProcessInstaller`` so that we can
+ more easily create one in a subprocess.
+
+ This function's return value is returned to the parent process.
+
+ Arguments:
+ pkg (spack.package.PackageBase): the package being installed.
+ install_args (dict): arguments to do_install() from parent process.
+
+ """
+ installer = BuildProcessInstaller(pkg, install_args)
- # preserve verbosity across runs
- return echo
+ # don't print long padded paths in executable debug output.
+ with spack.util.path.filter_padding():
+ return installer.run()
class BuildTask(object):
@@ -1741,7 +1892,7 @@ class BuildTask(object):
Instantiate a build task for a package.
Args:
- pkg (Package): the package to be built and installed
+ pkg (spack.package.Package): the package to be built and installed
request (BuildRequest or None): the associated install request
where ``None`` can be used to indicate the package was
explicitly requested by the user
@@ -1749,7 +1900,7 @@ class BuildTask(object):
start (int): the initial start time for the package, in seconds
attempts (int): the number of attempts to install the package
status (str): the installation status
- installed (list of str): the identifiers of packages that have
+ installed (list): the identifiers of packages that have
been installed so far
"""
@@ -1891,7 +2042,7 @@ class BuildTask(object):
Ensure the dependency is not considered to still be uninstalled.
Args:
- installed (list of str): the identifiers of packages that have
+ installed (list): the identifiers of packages that have
been installed so far
"""
now_installed = self.uninstalled_deps & set(installed)
@@ -1932,7 +2083,7 @@ class BuildRequest(object):
Instantiate a build request for a package.
Args:
- pkg (Package): the package to be built and installed
+ pkg (spack.package.Package): the package to be built and installed
install_args (dict): the install arguments associated with ``pkg``
"""
# Ensure dealing with a package that has a concrete spec
@@ -2007,13 +2158,15 @@ class BuildRequest(object):
"""Determine the required dependency types for the associated package.
Args:
- pkg (PackageBase): explicit or implicit package being installed
+ pkg (spack.package.PackageBase): explicit or implicit package being
+ installed
Returns:
- (tuple) required dependency type(s) for the package
+ tuple: required dependency type(s) for the package
"""
deptypes = ['link', 'run']
- if not self.install_args.get('cache_only'):
+ include_build_deps = self.install_args.get('include_build_deps')
+ if not self.install_args.get('cache_only') or include_build_deps:
deptypes.append('build')
if self.run_tests(pkg):
deptypes.append('test')
@@ -2028,10 +2181,11 @@ class BuildRequest(object):
"""Determine if the tests should be run for the provided packages
Args:
- pkg (PackageBase): explicit or implicit package being installed
+ pkg (spack.package.PackageBase): explicit or implicit package being
+ installed
Returns:
- (bool) ``True`` if they should be run; ``False`` otherwise
+ bool: ``True`` if they should be run; ``False`` otherwise
"""
tests = self.install_args.get('tests', False)
return tests is True or (tests and pkg.name in tests)
diff --git a/lib/spack/spack/main.py b/lib/spack/spack/main.py
index f4265a5d68..8ead8c8f4e 100644
--- a/lib/spack/spack/main.py
+++ b/lib/spack/spack/main.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,37 +10,41 @@ after the system path is set up.
"""
from __future__ import print_function
-import sys
-import re
+import argparse
+import inspect
import os
import os.path
-import inspect
import pstats
-import argparse
+import re
+import signal
+import sys
import traceback
import warnings
+
from six import StringIO
import archspec.cpu
+
import llnl.util.filesystem as fs
import llnl.util.tty as tty
+import llnl.util.tty.colify
import llnl.util.tty.color as color
from llnl.util.tty.log import log_output
import spack
import spack.architecture
-import spack.config
import spack.cmd
+import spack.config
import spack.environment as ev
+import spack.modules
import spack.paths
import spack.repo
import spack.store
import spack.util.debug
-import spack.util.path
import spack.util.executable as exe
+import spack.util.path
from spack.error import SpackError
-
#: names of profile statistics
stat_names = pstats.Stats.sort_arg_dict_default
@@ -170,14 +174,16 @@ class SpackHelpFormatter(argparse.RawTextHelpFormatter):
usage = super(
SpackHelpFormatter, self)._format_actions_usage(actions, groups)
+ # Eliminate any occurrence of two or more consecutive spaces
+ usage = re.sub(r'[ ]{2,}', ' ', usage)
+
# compress single-character flags that are not mutually exclusive
# at the beginning of the usage string
chars = ''.join(re.findall(r'\[-(.)\]', usage))
usage = re.sub(r'\[-.\] ?', '', usage)
if chars:
- return '[-%s] %s' % (chars, usage)
- else:
- return usage
+ usage = '[-%s] %s' % (chars, usage)
+ return usage.strip()
class SpackArgumentParser(argparse.ArgumentParser):
@@ -290,7 +296,18 @@ class SpackArgumentParser(argparse.ArgumentParser):
def add_subparsers(self, **kwargs):
"""Ensure that sensible defaults are propagated to subparsers"""
kwargs.setdefault('metavar', 'SUBCOMMAND')
+
+ # From Python 3.7 we can require a subparser, earlier versions
+ # of argparse will error because required=True is unknown
+ if sys.version_info[:2] > (3, 6):
+ kwargs.setdefault('required', True)
+
sp = super(SpackArgumentParser, self).add_subparsers(**kwargs)
+ # This monkey patching is needed for Python 3.5 and 3.6, which support
+ # having a required subparser but don't expose the API used above
+ if sys.version_info[:2] == (3, 5) or sys.version_info[:2] == (3, 6):
+ sp.required = True
+
old_add_parser = sp.add_parser
def add_parser(name, **kwargs):
@@ -333,6 +350,15 @@ class SpackArgumentParser(argparse.ArgumentParser):
# in subparsers, self.prog is, e.g., 'spack install'
return super(SpackArgumentParser, self).format_help()
+ def _check_value(self, action, value):
+ # converted value must be one of the choices (if specified)
+ if action.choices is not None and value not in action.choices:
+ cols = llnl.util.tty.colify.colified(
+ sorted(action.choices), indent=4, tty=True
+ )
+ msg = 'invalid choice: %r choose from:\n%s' % (value, cols)
+ raise argparse.ArgumentError(action, msg)
+
def make_argument_parser(**kwargs):
"""Create an basic argument parser without any subcommands added."""
@@ -355,10 +381,14 @@ def make_argument_parser(**kwargs):
dest='help', action='store_const', const='long', default=None,
help="show help for all commands (same as spack help --all)")
parser.add_argument(
- '--color', action='store', default='auto',
+ '--color', action='store',
+ default=os.environ.get('SPACK_COLOR', 'auto'),
choices=('always', 'never', 'auto'),
help="when to colorize output (default: auto)")
parser.add_argument(
+ '-c', '--config', default=None, action="append", dest="config_vars",
+ help="add one or more custom, one off config settings.")
+ parser.add_argument(
'-C', '--config-scope', dest='config_scopes', action='append',
metavar='DIR', help="add a custom configuration scope")
parser.add_argument(
@@ -413,6 +443,7 @@ def make_argument_parser(**kwargs):
help="print additional output during builds")
parser.add_argument(
'--stacktrace', action='store_true',
+ default='SPACK_STACKTRACE' in os.environ,
help="add stacktraces to all printed statements")
parser.add_argument(
'-V', '--version', action='store_true',
@@ -463,6 +494,10 @@ def setup_main_options(args):
tty.warn("You asked for --insecure. Will NOT check SSL certificates.")
spack.config.set('config:verify_ssl', False, scope='command_line')
+ # Use the spack config command to handle parsing the config strings
+ for config_var in (args.config_vars or []):
+ spack.config.add(fullpath=config_var, scope="command_line")
+
# when to use color (takes always, auto, or never)
color.set_color_when(args.color)
@@ -518,10 +553,12 @@ class SpackCommand(object):
"""Invoke this SpackCommand.
Args:
- argv (list of str): command line arguments.
+ argv (list): command line arguments.
Keyword Args:
fail_on_error (optional bool): Don't raise an exception on error
+ global_args (optional list): List of global spack arguments:
+ simulates ``spack [global_args] [command] [*argv]``
Returns:
(str): combined output and error as a string
@@ -534,8 +571,10 @@ class SpackCommand(object):
self.returncode = None
self.error = None
+ prepend = kwargs['global_args'] if 'global_args' in kwargs else []
+
args, unknown = self.parser.parse_known_args(
- [self.command_name] + list(argv))
+ prepend + [self.command_name] + list(argv))
fail_on_error = kwargs.get('fail_on_error', True)
@@ -609,7 +648,7 @@ def print_setup_info(*info):
"""Print basic information needed by setup-env.[c]sh.
Args:
- info (list of str): list of things to print: comma-separated list
+ info (list): list of things to print: comma-separated list
of 'csh', 'sh', or 'modules'
This is in ``main.py`` to make it fast; the setup scripts need to
@@ -627,7 +666,7 @@ def print_setup_info(*info):
tty.die('shell must be sh or csh')
# print sys type
- shell_set('_sp_sys_type', spack.architecture.sys_type())
+ shell_set('_sp_sys_type', str(spack.architecture.default_arch()))
shell_set('_sp_compatible_sys_types',
':'.join(spack.architecture.compatible_sys_types()))
# print roots for all module systems
@@ -635,12 +674,8 @@ def print_setup_info(*info):
'tcl': list(),
'lmod': list()
}
- module_roots = spack.config.get('config:module_roots')
- module_roots = dict(
- (k, v) for k, v in module_roots.items() if k in module_to_roots
- )
- for name, path in module_roots.items():
- path = spack.util.path.canonicalize_path(path)
+ for name in module_to_roots.keys():
+ path = spack.modules.common.root_path(name, 'default')
module_to_roots[name].append(path)
other_spack_instances = spack.config.get(
@@ -677,7 +712,7 @@ def main(argv=None):
"""This is the entry point for the Spack command.
Args:
- argv (list of str or None): command line arguments, NOT including
+ argv (list or None): command line arguments, NOT including
the executable name. If None, parses from sys.argv.
"""
# Create a parser with a simple positional argument first. We'll
@@ -708,7 +743,7 @@ def main(argv=None):
# activate an environment if one was specified on the command line
if not args.no_env:
- env = ev.find_environment(args)
+ env = spack.cmd.find_environment(args)
if env:
ev.activate(env, args.use_env_repo, add_view=False)
@@ -765,22 +800,27 @@ def main(argv=None):
tty.debug(e)
e.die() # gracefully die on any SpackErrors
- except Exception as e:
- if spack.config.get('config:debug'):
- raise
- tty.die(e)
-
except KeyboardInterrupt:
if spack.config.get('config:debug'):
raise
sys.stderr.write('\n')
- tty.die("Keyboard interrupt.")
+ tty.error("Keyboard interrupt.")
+ if sys.version_info >= (3, 5):
+ return signal.SIGINT.value
+ else:
+ return signal.SIGINT
except SystemExit as e:
if spack.config.get('config:debug'):
traceback.print_exc()
return e.code
+ except Exception as e:
+ if spack.config.get('config:debug'):
+ raise
+ tty.error(e)
+ return 3
+
class SpackCommandError(Exception):
"""Raised when SpackCommand execution fails."""
diff --git a/lib/spack/spack/mirror.py b/lib/spack/spack/mirror.py
index 045ca5ffec..a4ec57ab5b 100644
--- a/lib/spack/spack/mirror.py
+++ b/lib/spack/spack/mirror.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,21 +11,19 @@ the main server for a particular package is down. Or, if the computer
where spack is run is not connected to the internet, it allows spack
to download packages directly from a mirror (e.g., on an intranet).
"""
-import sys
+import operator
import os
-import traceback
import os.path
-import operator
-
-import six
+import sys
+import traceback
import ruamel.yaml.error as yaml_error
-
+import six
from ordereddict_backport import OrderedDict
-try:
+if sys.version_info >= (3, 5):
from collections.abc import Mapping # novm
-except ImportError:
+else:
from collections import Mapping
import llnl.util.tty as tty
@@ -33,14 +31,14 @@ from llnl.util.filesystem import mkdirp
import spack.config
import spack.error
-import spack.url as url
import spack.fetch_strategy as fs
+import spack.spec
+import spack.url as url
import spack.util.spack_json as sjson
import spack.util.spack_yaml as syaml
import spack.util.url as url_util
-import spack.spec
-from spack.version import VersionList
from spack.util.spack_yaml import syaml_dict
+from spack.version import VersionList
def _display_mirror_entry(size, name, url, type_=None):
@@ -455,6 +453,51 @@ def create(path, specs, skip_unstable_versions=False):
return mirror_stats.stats()
+def add(name, url, scope):
+ """Add a named mirror in the given scope"""
+ mirrors = spack.config.get('mirrors', scope=scope)
+ if not mirrors:
+ mirrors = syaml_dict()
+
+ if name in mirrors:
+ tty.die("Mirror with name %s already exists." % name)
+
+ items = [(n, u) for n, u in mirrors.items()]
+ items.insert(0, (name, url))
+ mirrors = syaml_dict(items)
+ spack.config.set('mirrors', mirrors, scope=scope)
+
+
+def remove(name, scope):
+ """Remove the named mirror in the given scope"""
+ mirrors = spack.config.get('mirrors', scope=scope)
+ if not mirrors:
+ mirrors = syaml_dict()
+
+ if name not in mirrors:
+ tty.die("No mirror with name %s" % name)
+
+ old_value = mirrors.pop(name)
+ spack.config.set('mirrors', mirrors, scope=scope)
+
+ debug_msg_url = "url %s"
+ debug_msg = ["Removed mirror %s with"]
+ values = [name]
+
+ try:
+ fetch_value = old_value['fetch']
+ push_value = old_value['push']
+
+ debug_msg.extend(("fetch", debug_msg_url, "and push", debug_msg_url))
+ values.extend((fetch_value, push_value))
+ except TypeError:
+ debug_msg.append(debug_msg_url)
+ values.append(old_value)
+
+ tty.debug(" ".join(debug_msg) % tuple(values))
+ tty.msg("Removed mirror %s." % name)
+
+
class MirrorStats(object):
def __init__(self):
self.present = {}
diff --git a/lib/spack/spack/mixins.py b/lib/spack/spack/mixins.py
index 6da12e4dce..7a3c03d4e3 100644
--- a/lib/spack/spack/mixins.py
+++ b/lib/spack/spack/mixins.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,19 @@ package.
"""
import collections
import os
+import sys
+from typing import Callable, DefaultDict, Dict, List # novm
+
+if sys.version_info >= (3, 5):
+ CallbackDict = DefaultDict[str, List[Callable]]
+else:
+ CallbackDict = None
import llnl.util.filesystem
__all__ = [
- 'filter_compiler_wrappers'
+ 'filter_compiler_wrappers',
+ 'PackageMixinsMeta',
]
@@ -26,12 +34,12 @@ class PackageMixinsMeta(type):
gets implicitly attached to the package class by calling the mixin.
"""
- _methods_to_be_added = {}
- _add_method_before = collections.defaultdict(list)
- _add_method_after = collections.defaultdict(list)
+ _methods_to_be_added = {} # type: Dict[str, Callable]
+ _add_method_before = collections.defaultdict(list) # type: CallbackDict
+ _add_method_after = collections.defaultdict(list) # type: CallbackDict
@staticmethod
- def register_method_before(fn, phase):
+ def register_method_before(fn, phase): # type: (Callable, str) -> None
"""Registers a method to be run before a certain phase.
Args:
@@ -42,7 +50,7 @@ class PackageMixinsMeta(type):
PackageMixinsMeta._add_method_before[phase].append(fn)
@staticmethod
- def register_method_after(fn, phase):
+ def register_method_after(fn, phase): # type: (Callable, str) -> None
"""Registers a method to be run after a certain phase.
Args:
@@ -184,7 +192,11 @@ def filter_compiler_wrappers(*files, **kwargs):
]
for env_var, compiler_path in replacements:
if env_var in os.environ:
- x.filter(os.environ[env_var], compiler_path, **filter_kwargs)
+ # filter spack wrapper and links to spack wrapper in case
+ # build system runs realpath
+ wrapper = os.environ[env_var]
+ for wrapper_path in (wrapper, os.path.realpath(wrapper)):
+ x.filter(wrapper_path, compiler_path, **filter_kwargs)
# Remove this linking flag if present (it turns RPATH into RUNPATH)
x.filter('{0}--enable-new-dtags'.format(self.compiler.linker_arg), '',
diff --git a/lib/spack/spack/modules/__init__.py b/lib/spack/spack/modules/__init__.py
index 2fb4d94b05..04793fe7fc 100644
--- a/lib/spack/spack/modules/__init__.py
+++ b/lib/spack/spack/modules/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,14 @@ include TCL non-hierarchical modules, LUA hierarchical modules, and others.
from __future__ import absolute_import
-from .tcl import TclModulefileWriter
+from .common import disable_modules
from .lmod import LmodModulefileWriter
+from .tcl import TclModulefileWriter
__all__ = [
'TclModulefileWriter',
- 'LmodModulefileWriter'
+ 'LmodModulefileWriter',
+ 'disable_modules'
]
module_types = {
diff --git a/lib/spack/spack/modules/common.py b/lib/spack/spack/modules/common.py
index cbc064520c..21cb527b65 100644
--- a/lib/spack/spack/modules/common.py
+++ b/lib/spack/spack/modules/common.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -29,20 +29,25 @@ Each of the four classes needs to be sub-classed when implementing a new
module type.
"""
import collections
+import contextlib
import copy
import datetime
import inspect
import os.path
import re
+from typing import Optional # novm
import llnl.util.filesystem
-from llnl.util.lang import dedupe
import llnl.util.tty as tty
+from llnl.util.lang import dedupe
+
import spack.build_environment as build_environment
+import spack.config
+import spack.environment as ev
import spack.error
import spack.paths
-import spack.schema.environment
import spack.projections as proj
+import spack.schema.environment
import spack.tengine as tengine
import spack.util.environment
import spack.util.file_permissions as fp
@@ -51,8 +56,13 @@ import spack.util.spack_yaml as syaml
#: config section for this file
-def configuration():
- return spack.config.get('modules', {})
+def configuration(module_set_name):
+ config_path = 'modules:%s' % module_set_name
+ config = spack.config.get(config_path, {})
+ if not config and module_set_name == 'default':
+ # return old format for backward compatibility
+ return spack.config.get('modules', {})
+ return config
#: Valid tokens for naming scheme and env variable names
@@ -203,17 +213,31 @@ def merge_config_rules(configuration, spec):
return spec_configuration
-def root_path(name):
+def root_path(name, module_set_name):
"""Returns the root folder for module file installation.
Args:
name: name of the module system to be used (e.g. 'tcl')
+ module_set_name: name of the set of module configs to use
Returns:
root folder for module file installation
"""
+ defaults = {
+ 'lmod': '$spack/share/spack/lmod',
+ 'tcl': '$spack/share/spack/modules',
+ }
# Root folders where the various module files should be written
- roots = spack.config.get('config:module_roots', {})
+ roots = spack.config.get('modules:%s:roots' % module_set_name, {})
+
+ # For backwards compatibility, read the old module roots for default set
+ if module_set_name == 'default':
+ roots = spack.config.merge_yaml(
+ spack.config.get('config:module_roots', {}), roots)
+
+ # Merge config values into the defaults so we prefer configured values
+ roots = spack.config.merge_yaml(defaults, roots)
+
path = roots.get(name, os.path.join(spack.paths.share_path, name))
return spack.util.path.canonicalize_path(path)
@@ -325,7 +349,10 @@ class UpstreamModuleIndex(object):
return None
-def get_module(module_type, spec, get_full_path, required=True):
+def get_module(
+ module_type, spec, get_full_path,
+ module_set_name='default', required=True
+):
"""Retrieve the module file for a given spec and module type.
Retrieve the module file for the given spec if it is available. If the
@@ -341,6 +368,8 @@ def get_module(module_type, spec, get_full_path, required=True):
then an exception is raised (regardless of whether it is required)
get_full_path: if ``True``, this returns the full path to the module.
Otherwise, this returns the module name.
+ module_set_name: the named module configuration set from modules.yaml
+ for which to retrieve the module.
Returns:
The module name or path. May return ``None`` if the module is not
@@ -361,7 +390,7 @@ def get_module(module_type, spec, get_full_path, required=True):
else:
return module.use_name
else:
- writer = spack.modules.module_types[module_type](spec)
+ writer = spack.modules.module_types[module_type](spec, module_set_name)
if not os.path.isfile(writer.layout.filename):
if not writer.conf.blacklisted:
err_msg = "No module available for package {0} at {1}".format(
@@ -388,20 +417,22 @@ class BaseConfiguration(object):
default_projections = {
'all': '{name}-{version}-{compiler.name}-{compiler.version}'}
- def __init__(self, spec):
+ def __init__(self, spec, module_set_name):
# Module where type(self) is defined
self.module = inspect.getmodule(self)
# Spec for which we want to generate a module file
self.spec = spec
+ self.name = module_set_name
# Dictionary of configuration options that should be applied
# to the spec
- self.conf = merge_config_rules(self.module.configuration(), self.spec)
+ self.conf = merge_config_rules(
+ self.module.configuration(self.name), self.spec)
@property
def projections(self):
"""Projection from specs to module names"""
# backwards compatiblity for naming_scheme key
- conf = self.module.configuration()
+ conf = self.module.configuration(self.name)
if 'naming_scheme' in conf:
default = {'all': conf['naming_scheme']}
else:
@@ -459,7 +490,7 @@ class BaseConfiguration(object):
"""
# A few variables for convenience of writing the method
spec = self.spec
- conf = self.module.configuration()
+ conf = self.module.configuration(self.name)
# Compute the list of whitelist rules that match
wlrules = conf.get('whitelist', [])
@@ -521,7 +552,7 @@ class BaseConfiguration(object):
def _create_list_for(self, what):
whitelist = []
for item in self.conf[what]:
- conf = type(self)(item)
+ conf = type(self)(item, self.name)
if not conf.blacklisted:
whitelist.append(item)
return whitelist
@@ -540,7 +571,7 @@ class BaseFileLayout(object):
"""
#: This needs to be redefined
- extension = None
+ extension = None # type: Optional[str]
def __init__(self, configuration):
self.conf = configuration
@@ -550,11 +581,10 @@ class BaseFileLayout(object):
"""Spec under consideration"""
return self.conf.spec
- @classmethod
- def dirname(cls):
+ def dirname(self):
"""Root folder for module files of this type."""
- module_system = str(inspect.getmodule(cls).__name__).split('.')[-1]
- return root_path(module_system)
+ module_system = str(self.conf.module.__name__).split('.')[-1]
+ return root_path(module_system, self.conf.name)
@property
def use_name(self):
@@ -654,10 +684,34 @@ class BaseContext(tengine.Context):
@tengine.context_property
def environment_modifications(self):
"""List of environment modifications to be processed."""
- # Modifications guessed inspecting the spec prefix
+ # Modifications guessed by inspecting the spec prefix
+ std_prefix_inspections = spack.config.get(
+ 'modules:prefix_inspections', {})
+ set_prefix_inspections = spack.config.get(
+ 'modules:%s:prefix_inspections' % self.conf.name, {})
+ prefix_inspections = spack.config.merge_yaml(
+ std_prefix_inspections, set_prefix_inspections)
+
+ use_view = spack.config.get(
+ 'modules:%s:use_view' % self.conf.name, False)
+
+ spec = self.spec.copy() # defensive copy before setting prefix
+ if use_view:
+ if use_view is True:
+ use_view = ev.default_view_name
+
+ env = ev.active_environment()
+ if not env:
+ raise ev.SpackEnvironmentViewError("Module generation with views "
+ "requires active environment")
+
+ view = env.views[use_view]
+
+ spec.prefix = view.get_projection_for_spec(spec)
+
env = spack.util.environment.inspect_path(
- self.spec.prefix,
- spack.config.get('modules:prefix_inspections', {}),
+ spec.prefix,
+ prefix_inspections,
exclude=spack.util.environment.is_system_path
)
@@ -665,12 +719,12 @@ class BaseContext(tengine.Context):
# before asking for package-specific modifications
env.extend(
build_environment.modifications_from_dependencies(
- self.spec, context='run'
+ spec, context='run'
)
)
# Package specific modifications
- build_environment.set_module_variables_for_package(self.spec.package)
- self.spec.package.setup_run_environment(env)
+ build_environment.set_module_variables_for_package(spec.package)
+ spec.package.setup_run_environment(env)
# Modifications required from modules.yaml
env.extend(self.conf.env)
@@ -685,17 +739,17 @@ class BaseContext(tengine.Context):
# tokens uppercase.
transform = {}
for token in _valid_tokens:
- transform[token] = lambda spec, string: str.upper(string)
+ transform[token] = lambda s, string: str.upper(string)
for x in env:
# Ensure all the tokens are valid in this context
msg = 'some tokens cannot be expanded in an environment variable name' # noqa: E501
_check_tokens_are_valid(x.name, message=msg)
# Transform them
- x.name = self.spec.format(x.name, transform=transform)
+ x.name = spec.format(x.name, transform=transform)
try:
# Not every command has a value
- x.value = self.spec.format(x.value)
+ x.value = spec.format(x.value)
except AttributeError:
pass
x.name = str(x.name).replace('-', '_')
@@ -713,7 +767,8 @@ class BaseContext(tengine.Context):
def _create_module_list_of(self, what):
m = self.conf.module
- return [m.make_layout(x).use_name
+ name = self.conf.name
+ return [m.make_layout(x, name).use_name
for x in getattr(self.conf, what)]
@tengine.context_property
@@ -723,7 +778,7 @@ class BaseContext(tengine.Context):
class BaseModuleFileWriter(object):
- def __init__(self, spec):
+ def __init__(self, spec, module_set_name):
self.spec = spec
# This class is meant to be derived. Get the module of the
@@ -732,9 +787,9 @@ class BaseModuleFileWriter(object):
m = self.module
# Create the triplet of configuration/layout/context
- self.conf = m.make_configuration(spec)
- self.layout = m.make_layout(spec)
- self.context = m.make_context(spec)
+ self.conf = m.make_configuration(spec, module_set_name)
+ self.layout = m.make_layout(spec, module_set_name)
+ self.context = m.make_context(spec, module_set_name)
# Check if a default template has been defined,
# throw if not found
@@ -852,6 +907,19 @@ class BaseModuleFileWriter(object):
pass
+@contextlib.contextmanager
+def disable_modules():
+ """Disable the generation of modulefiles within the context manager."""
+ data = {
+ 'modules:': {
+ 'enable': []
+ }
+ }
+ disable_scope = spack.config.InternalConfigScope('disable_modules', data=data)
+ with spack.config.override(disable_scope):
+ yield
+
+
class ModulesError(spack.error.SpackError):
"""Base error for modules."""
diff --git a/lib/spack/spack/modules/lmod.py b/lib/spack/spack/modules/lmod.py
index 80f6933063..0dcd78c20c 100644
--- a/lib/spack/spack/modules/lmod.py
+++ b/lib/spack/spack/modules/lmod.py
@@ -1,56 +1,62 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import collections
+import itertools
import os.path
+from typing import Any, Dict # novm
import llnl.util.lang as lang
-import itertools
-import collections
-import spack.config
import spack.compilers
-import spack.spec
-import spack.repo
+import spack.config
import spack.error
+import spack.repo
+import spack.spec
import spack.tengine as tengine
-from .common import BaseConfiguration, BaseFileLayout
-from .common import BaseContext, BaseModuleFileWriter
+from .common import BaseConfiguration, BaseContext, BaseFileLayout, BaseModuleFileWriter
#: lmod specific part of the configuration
-def configuration():
- return spack.config.get('modules:lmod', {})
+def configuration(module_set_name):
+ config_path = 'modules:%s:lmod' % module_set_name
+ config = spack.config.get(config_path, {})
+ if not config and module_set_name == 'default':
+ # return old format for backward compatibility
+ return spack.config.get('modules:lmod', {})
+ return config
-#: Caches the configuration {spec_hash: configuration}
-configuration_registry = {}
+# Caches the configuration {spec_hash: configuration}
+configuration_registry = {} # type: Dict[str, Any]
-def make_configuration(spec):
+def make_configuration(spec, module_set_name):
"""Returns the lmod configuration for spec"""
- key = spec.dag_hash()
+ key = (spec.dag_hash(), module_set_name)
try:
return configuration_registry[key]
except KeyError:
- return configuration_registry.setdefault(key, LmodConfiguration(spec))
+ return configuration_registry.setdefault(
+ key, LmodConfiguration(spec, module_set_name))
-def make_layout(spec):
+def make_layout(spec, module_set_name):
"""Returns the layout information for spec """
- conf = make_configuration(spec)
+ conf = make_configuration(spec, module_set_name)
return LmodFileLayout(conf)
-def make_context(spec):
+def make_context(spec, module_set_name):
"""Returns the context information for spec"""
- conf = make_configuration(spec)
+ conf = make_configuration(spec, module_set_name)
return LmodContext(conf)
-def guess_core_compilers(store=False):
+def guess_core_compilers(name, store=False):
"""Guesses the list of core compilers installed in the system.
Args:
@@ -80,11 +86,12 @@ def guess_core_compilers(store=False):
# in the default modify scope (i.e. within the directory hierarchy
# of Spack itself)
modules_cfg = spack.config.get(
- 'modules', scope=spack.config.default_modify_scope()
+ 'modules:' + name, {}, scope=spack.config.default_modify_scope()
)
modules_cfg.setdefault('lmod', {})['core_compilers'] = core_compilers
spack.config.set(
- 'modules', modules_cfg, scope=spack.config.default_modify_scope()
+ 'modules:' + name, modules_cfg,
+ scope=spack.config.default_modify_scope()
)
return core_compilers or None
@@ -103,9 +110,9 @@ class LmodConfiguration(BaseConfiguration):
specified in the configuration file or the sequence
is empty
"""
- value = configuration().get(
+ value = configuration(self.name).get(
'core_compilers'
- ) or guess_core_compilers(store=True)
+ ) or guess_core_compilers(self.name, store=True)
if not value:
msg = 'the key "core_compilers" must be set in modules.yaml'
@@ -115,14 +122,14 @@ class LmodConfiguration(BaseConfiguration):
@property
def core_specs(self):
"""Returns the list of "Core" specs"""
- return configuration().get('core_specs', [])
+ return configuration(self.name).get('core_specs', [])
@property
def hierarchy_tokens(self):
"""Returns the list of tokens that are part of the modulefile
hierarchy. 'compiler' is always present.
"""
- tokens = configuration().get('hierarchy', [])
+ tokens = configuration(self.name).get('hierarchy', [])
# Check if all the tokens in the hierarchy are virtual specs.
# If not warn the user and raise an error.
@@ -406,7 +413,7 @@ class LmodContext(BaseContext):
@tengine.context_property
def unlocked_paths(self):
"""Returns the list of paths that are unlocked unconditionally."""
- layout = make_layout(self.spec)
+ layout = make_layout(self.spec, self.conf.name)
return [os.path.join(*parts) for parts in layout.unlocked_paths[None]]
@tengine.context_property
@@ -414,7 +421,7 @@ class LmodContext(BaseContext):
"""Returns the list of paths that are unlocked conditionally.
Each item in the list is a tuple with the structure (condition, path).
"""
- layout = make_layout(self.spec)
+ layout = make_layout(self.spec, self.conf.name)
value = []
conditional_paths = layout.unlocked_paths
conditional_paths.pop(None)
diff --git a/lib/spack/spack/modules/tcl.py b/lib/spack/spack/modules/tcl.py
index 0efc6332fe..ee6e31a7ee 100644
--- a/lib/spack/spack/modules/tcl.py
+++ b/lib/spack/spack/modules/tcl.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,43 +8,50 @@ non-hierarchical modules.
"""
import os.path
import string
+from typing import Any, Dict # novm
import llnl.util.tty as tty
import spack.config
import spack.projections as proj
import spack.tengine as tengine
-from .common import BaseConfiguration, BaseFileLayout
-from .common import BaseContext, BaseModuleFileWriter
+
+from .common import BaseConfiguration, BaseContext, BaseFileLayout, BaseModuleFileWriter
#: TCL specific part of the configuration
-def configuration():
- return spack.config.get('modules:tcl', {})
+def configuration(module_set_name):
+ config_path = 'modules:%s:tcl' % module_set_name
+ config = spack.config.get(config_path, {})
+ if not config and module_set_name == 'default':
+ # return old format for backward compatibility
+ return spack.config.get('modules:tcl', {})
+ return config
-#: Caches the configuration {spec_hash: configuration}
-configuration_registry = {}
+# Caches the configuration {spec_hash: configuration}
+configuration_registry = {} # type: Dict[str, Any]
-def make_configuration(spec):
+def make_configuration(spec, module_set_name):
"""Returns the tcl configuration for spec"""
- key = spec.dag_hash()
+ key = (spec.dag_hash(), module_set_name)
try:
return configuration_registry[key]
except KeyError:
- return configuration_registry.setdefault(key, TclConfiguration(spec))
+ return configuration_registry.setdefault(
+ key, TclConfiguration(spec, module_set_name))
-def make_layout(spec):
+def make_layout(spec, module_set_name):
"""Returns the layout information for spec """
- conf = make_configuration(spec)
+ conf = make_configuration(spec, module_set_name)
return TclFileLayout(conf)
-def make_context(spec):
+def make_context(spec, module_set_name):
"""Returns the context information for spec"""
- conf = make_configuration(spec)
+ conf = make_configuration(spec, module_set_name)
return TclContext(conf)
diff --git a/lib/spack/spack/monitor.py b/lib/spack/spack/monitor.py
new file mode 100644
index 0000000000..ac45fadb97
--- /dev/null
+++ b/lib/spack/spack/monitor.py
@@ -0,0 +1,676 @@
+# Copyright 2013-2021 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)
+
+"""Interact with a Spack Monitor Service. Derived from
+https://github.com/spack/spack-monitor/blob/main/script/spackmoncli.py
+"""
+
+import base64
+import hashlib
+import os
+import re
+from datetime import datetime
+
+try:
+ from urllib.error import URLError
+ from urllib.request import Request, urlopen
+except ImportError:
+ from urllib2 import urlopen, Request, URLError # type: ignore # novm
+
+from copy import deepcopy
+from glob import glob
+
+import llnl.util.tty as tty
+
+import spack
+import spack.config
+import spack.hash_types as ht
+import spack.main
+import spack.store
+import spack.util.path
+import spack.util.spack_json as sjson
+import spack.util.spack_yaml as syaml
+
+# A global client to instantiate once
+cli = None
+
+
+def get_client(host, prefix="ms1", disable_auth=False, allow_fail=False, tags=None,
+ save_local=False):
+ """
+ Get a monitor client for a particular host and prefix.
+
+ If the client is not running, we exit early, unless allow_fail is set
+ to true, indicating that we should continue the build even if the
+ server is not present. Note that this client is defined globally as "cli"
+ so we can istantiate it once (checking for credentials, etc.) and then
+ always have access to it via spack.monitor.cli. Also note that
+ typically, we call the monitor by way of hooks in spack.hooks.monitor.
+ So if you want the monitor to have a new interaction with some part of
+ the codebase, it's recommended to write a hook first, and then have
+ the monitor use it.
+ """
+ global cli
+ cli = SpackMonitorClient(host=host, prefix=prefix, allow_fail=allow_fail,
+ tags=tags, save_local=save_local)
+
+ # If we don't disable auth, environment credentials are required
+ if not disable_auth and not save_local:
+ cli.require_auth()
+
+ # We will exit early if the monitoring service is not running, but
+ # only if we aren't doing a local save
+ if not save_local:
+ info = cli.service_info()
+
+ # If we allow failure, the response will be done
+ if info:
+ tty.debug("%s v.%s has status %s" % (
+ info['id'],
+ info['version'],
+ info['status'])
+ )
+ return cli
+
+
+def get_monitor_group(subparser):
+ """
+ Retrieve the monitor group for the argument parser.
+
+ Since the monitor group is shared between commands, we provide a common
+ function to generate the group for it. The user can pass the subparser, and
+ the group is added, and returned.
+ """
+ # Monitoring via https://github.com/spack/spack-monitor
+ monitor_group = subparser.add_argument_group()
+ monitor_group.add_argument(
+ '--monitor', action='store_true', dest='use_monitor', default=False,
+ help="interact with a monitor server during builds.")
+ monitor_group.add_argument(
+ '--monitor-save-local', action='store_true', dest='monitor_save_local',
+ default=False, help="save monitor results to .spack instead of server.")
+ monitor_group.add_argument(
+ '--monitor-no-auth', action='store_true', dest='monitor_disable_auth',
+ default=False, help="the monitoring server does not require auth.")
+ monitor_group.add_argument(
+ '--monitor-tags', dest='monitor_tags', default=None,
+ help="One or more (comma separated) tags for a build.")
+ monitor_group.add_argument(
+ '--monitor-keep-going', action='store_true', dest='monitor_keep_going',
+ default=False, help="continue the build if a request to monitor fails.")
+ monitor_group.add_argument(
+ '--monitor-host', dest='monitor_host', default="http://127.0.0.1",
+ help="If using a monitor, customize the host.")
+ monitor_group.add_argument(
+ '--monitor-prefix', dest='monitor_prefix', default="ms1",
+ help="The API prefix for the monitor service.")
+ return monitor_group
+
+
+class SpackMonitorClient:
+ """Client to interact with a spack monitor server.
+
+ We require the host url, along with the prefix to discover the
+ service_info endpoint. If allow_fail is set to True, we will not exit
+ on error with tty.die given that a request is not successful. The spack
+ version is one of the fields to uniquely identify a spec, so we add it
+ to the client on init.
+ """
+
+ def __init__(self, host=None, prefix="ms1", allow_fail=False, tags=None,
+ save_local=False):
+ self.host = host or "http://127.0.0.1"
+ self.baseurl = "%s/%s" % (self.host, prefix.strip("/"))
+ self.token = os.environ.get("SPACKMON_TOKEN")
+ self.username = os.environ.get("SPACKMON_USER")
+ self.headers = {}
+ self.allow_fail = allow_fail
+ self.spack_version = spack.main.get_version()
+ self.capture_build_environment()
+ self.tags = tags
+ self.save_local = save_local
+
+ # We keey lookup of build_id by full_hash
+ self.build_ids = {}
+ self.setup_save()
+
+ def setup_save(self):
+ """Given a local save "save_local" ensure the output directory exists.
+ """
+ if not self.save_local:
+ return
+
+ save_dir = spack.util.path.canonicalize_path(
+ spack.config.get('config:monitor_dir', '~/.spack/reports/monitor'))
+
+ # Name based on timestamp
+ now = datetime.now().strftime('%Y-%m-%d-%H-%M-%S-%s')
+ self.save_dir = os.path.join(save_dir, now)
+ if not os.path.exists(self.save_dir):
+ os.makedirs(self.save_dir)
+
+ def save(self, obj, filename):
+ """
+ Save a monitor json result to the save directory.
+ """
+ filename = os.path.join(self.save_dir, filename)
+ write_json(obj, filename)
+ return {"message": "Build saved locally to %s" % filename}
+
+ def load_build_environment(self, spec):
+ """
+ Load a build environment from install_environment.json.
+
+ If we are running an analyze command, we will need to load previously
+ used build environment metadata from install_environment.json to capture
+ what was done during the build.
+ """
+ if not hasattr(spec, "package") or not spec.package:
+ tty.die("A spec must have a package to load the environment.")
+
+ pkg_dir = os.path.dirname(spec.package.install_log_path)
+ env_file = os.path.join(pkg_dir, "install_environment.json")
+ build_environment = read_json(env_file)
+ if not build_environment:
+ tty.warn(
+ "install_environment.json not found in package folder. "
+ " This means that the current environment metadata will be used."
+ )
+ else:
+ self.build_environment = build_environment
+
+ def capture_build_environment(self):
+ """
+ Capture the environment for the build.
+
+ This uses spack.util.environment.get_host_environment_metadata to do so.
+ This is important because it's a unique identifier, along with the spec,
+ for a Build. It should look something like this:
+
+ {'host_os': 'ubuntu20.04',
+ 'platform': 'linux',
+ 'host_target': 'skylake',
+ 'hostname': 'vanessa-ThinkPad-T490s',
+ 'spack_version': '0.16.1-1455-52d5b55b65',
+ 'kernel_version': '#73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021'}
+
+ This is saved to a package install's metadata folder as
+ install_environment.json, and can be loaded by the monitor for uploading
+ data relevant to a later analysis.
+ """
+ from spack.util.environment import get_host_environment_metadata
+ self.build_environment = get_host_environment_metadata()
+
+ def require_auth(self):
+ """
+ Require authentication.
+
+ The token and username must not be unset
+ """
+ if not self.save_local and (not self.token or not self.username):
+ tty.die("You are required to export SPACKMON_TOKEN and SPACKMON_USER")
+
+ def set_header(self, name, value):
+ self.headers.update({name: value})
+
+ def set_basic_auth(self, username, password):
+ """
+ A wrapper to adding basic authentication to the Request
+ """
+ auth_str = "%s:%s" % (username, password)
+ auth_header = base64.b64encode(auth_str.encode("utf-8"))
+ self.set_header("Authorization", "Basic %s" % auth_header.decode("utf-8"))
+
+ def reset(self):
+ """
+ Reset and prepare for a new request.
+ """
+ if "Authorization" in self.headers:
+ self.headers = {"Authorization": self.headers['Authorization']}
+ else:
+ self.headers = {}
+
+ def prepare_request(self, endpoint, data, headers):
+ """
+ Prepare a request given an endpoint, data, and headers.
+
+ If data is provided, urllib makes the request a POST
+ """
+ # Always reset headers for new request.
+ self.reset()
+
+ # Preserve previously used auth token
+ headers = headers or self.headers
+
+ # The calling function can provide a full or partial url
+ if not endpoint.startswith("http"):
+ endpoint = "%s/%s" % (self.baseurl, endpoint)
+
+ # If we have data, the request will be POST
+ if data:
+ if not isinstance(data, str):
+ data = sjson.dump(data)
+ data = data.encode('ascii')
+
+ return Request(endpoint, data=data, headers=headers)
+
+ def issue_request(self, request, retry=True):
+ """
+ Given a prepared request, issue it.
+
+ If we get an error, die. If
+ there are times when we don't want to exit on error (but instead
+ disable using the monitoring service) we could add that here.
+ """
+ try:
+ response = urlopen(request)
+ except URLError as e:
+
+ # If we have an authorization request, retry once with auth
+ if hasattr(e, "code") and e.code == 401 and retry:
+ if self.authenticate_request(e):
+ request = self.prepare_request(
+ e.url,
+ sjson.load(request.data.decode('utf-8')),
+ self.headers
+ )
+ return self.issue_request(request, False)
+
+ # Otherwise, relay the message and exit on error
+ msg = ""
+ if hasattr(e, 'reason'):
+ msg = e.reason
+ elif hasattr(e, 'code'):
+ msg = e.code
+
+ # If we can parse the message, try it
+ try:
+ msg += "\n%s" % e.read().decode("utf8", 'ignore')
+ except Exception:
+ pass
+
+ if self.allow_fail:
+ tty.warning("Request to %s was not successful, but continuing." % e.url)
+ return
+
+ tty.die(msg)
+
+ return response
+
+ def do_request(self, endpoint, data=None, headers=None, url=None):
+ """
+ Do the actual request.
+
+ If data is provided, it is POST, otherwise GET.
+ If an entire URL is provided, don't use the endpoint
+ """
+ request = self.prepare_request(endpoint, data, headers)
+
+ # If we have an authorization error, we retry with
+ response = self.issue_request(request)
+
+ # A 200/201 response incidates success
+ if response.code in [200, 201]:
+ return sjson.load(response.read().decode('utf-8'))
+
+ return response
+
+ def authenticate_request(self, originalResponse):
+ """
+ Authenticate the request.
+
+ Given a response (an HTTPError 401), look for a Www-Authenticate
+ header to parse. We return True/False to indicate if the request
+ should be retried.
+ """
+ authHeaderRaw = originalResponse.headers.get("Www-Authenticate")
+ if not authHeaderRaw:
+ return False
+
+ # If we have a username and password, set basic auth automatically
+ if self.token and self.username:
+ self.set_basic_auth(self.username, self.token)
+
+ headers = deepcopy(self.headers)
+ if "Authorization" not in headers:
+ tty.error(
+ "This endpoint requires a token. Please set "
+ "client.set_basic_auth(username, password) first "
+ "or export them to the environment."
+ )
+ return False
+
+ # Prepare request to retry
+ h = parse_auth_header(authHeaderRaw)
+ headers.update({
+ "service": h.Service,
+ "Accept": "application/json",
+ "User-Agent": "spackmoncli"}
+ )
+
+ # Currently we don't set a scope (it defaults to build)
+ authResponse = self.do_request(h.Realm, headers=headers)
+
+ # Request the token
+ token = authResponse.get("token")
+ if not token:
+ return False
+
+ # Set the token to the original request and retry
+ self.headers.update({"Authorization": "Bearer %s" % token})
+ return True
+
+ # Functions correspond to endpoints
+ def service_info(self):
+ """
+ Get the service information endpoint
+ """
+ # Base endpoint provides service info
+ return self.do_request("")
+
+ def new_configuration(self, specs):
+ """
+ Given a list of specs, generate a new configuration for each.
+
+ We return a lookup of specs with their package names. This assumes
+ that we are only installing one version of each package. We aren't
+ starting or creating any builds, so we don't need a build environment.
+ """
+ configs = {}
+
+ # There should only be one spec generally (what cases would have >1?)
+ for spec in specs:
+ # Not sure if this is needed here, but I see it elsewhere
+ if spec.name in spack.repo.path or spec.virtual:
+ spec.concretize()
+
+ # Remove extra level of nesting
+ as_dict = {"spec": spec.to_dict(hash=ht.full_hash)['spec'],
+ "spack_version": self.spack_version}
+
+ if self.save_local:
+ filename = "spec-%s-%s-config.json" % (spec.name, spec.version)
+ self.save(as_dict, filename)
+ else:
+ response = self.do_request("specs/new/", data=sjson.dump(as_dict))
+ configs[spec.package.name] = response.get('data', {})
+
+ return configs
+
+ def new_build(self, spec):
+ """
+ Create a new build.
+
+ This means sending the hash of the spec to be built,
+ along with the build environment. These two sets of data uniquely can
+ identify the build, and we will add objects (the binaries produced) to
+ it. We return the build id to the calling client.
+ """
+ return self.get_build_id(spec, return_response=True)
+
+ def get_build_id(self, spec, return_response=False, spec_exists=True):
+ """
+ Retrieve a build id, either in the local cache, or query the server.
+ """
+ full_hash = spec.full_hash()
+ if full_hash in self.build_ids:
+ return self.build_ids[full_hash]
+
+ # Prepare build environment data (including spack version)
+ data = self.build_environment.copy()
+ data['full_hash'] = full_hash
+
+ # If the build should be tagged, add it
+ if self.tags:
+ data['tags'] = self.tags
+
+ # If we allow the spec to not exist (meaning we create it) we need to
+ # include the full specfile here
+ if not spec_exists:
+ meta_dir = os.path.dirname(spec.package.install_log_path)
+ spec_file = os.path.join(meta_dir, "spec.json")
+ if os.path.exists(spec_file):
+ data['spec'] = sjson.load(read_file(spec_file))
+ else:
+ spec_file = os.path.join(meta_dir, "spec.yaml")
+ data['spec'] = syaml.load(read_file(spec_file))
+
+ if self.save_local:
+ return self.get_local_build_id(data, full_hash, return_response)
+ return self.get_server_build_id(data, full_hash, return_response)
+
+ def get_local_build_id(self, data, full_hash, return_response):
+ """
+ Generate a local build id based on hashing the expected data
+ """
+ hasher = hashlib.md5()
+ hasher.update(str(data).encode('utf-8'))
+ bid = hasher.hexdigest()
+ filename = "build-metadata-%s.json" % bid
+ response = self.save(data, filename)
+ if return_response:
+ return response
+ return bid
+
+ def get_server_build_id(self, data, full_hash, return_response=False):
+ """
+ Retrieve a build id from the spack monitor server
+ """
+ response = self.do_request("builds/new/", data=sjson.dump(data))
+
+ # Add the build id to the lookup
+ bid = self.build_ids[full_hash] = response['data']['build']['build_id']
+ self.build_ids[full_hash] = bid
+
+ # If the function is called directly, the user might want output
+ if return_response:
+ return response
+ return bid
+
+ def update_build(self, spec, status="SUCCESS"):
+ """
+ Update a build with a new status.
+
+ This typically updates the relevant package to indicate a
+ successful install. This endpoint can take a general status to update.
+ """
+ data = {"build_id": self.get_build_id(spec), "status": status}
+ if self.save_local:
+ filename = "build-%s-status.json" % data['build_id']
+ return self.save(data, filename)
+
+ return self.do_request("builds/update/", data=sjson.dump(data))
+
+ def fail_task(self, spec):
+ """Given a spec, mark it as failed. This means that Spack Monitor
+ marks all dependencies as cancelled, unless they are already successful
+ """
+ return self.update_build(spec, status="FAILED")
+
+ def send_analyze_metadata(self, pkg, metadata):
+ """
+ Send spack analyzer metadata to the spack monitor server.
+
+ Given a dictionary of analyzers (with key as analyzer type, and
+ value as the data) upload the analyzer output to Spack Monitor.
+ Spack Monitor should either have a known understanding of the analyzer,
+ or if not (the key is not recognized), it's assumed to be a dictionary
+ of objects/files, each with attributes to be updated. E.g.,
+
+ {"analyzer-name": {"object-file-path": {"feature1": "value1"}}}
+ """
+ # Prepare build environment data (including spack version)
+ # Since the build might not have been generated, we include the spec
+ data = {"build_id": self.get_build_id(pkg.spec, spec_exists=False),
+ "metadata": metadata}
+ return self.do_request("analyze/builds/", data=sjson.dump(data))
+
+ def send_phase(self, pkg, phase_name, phase_output_file, status):
+ """
+ Send the result of a phase during install.
+
+ Given a package, phase name, and status, update the monitor endpoint
+ to alert of the status of the stage. This includes parsing the package
+ metadata folder for phase output and error files
+ """
+ data = {"build_id": self.get_build_id(pkg.spec)}
+
+ # Send output specific to the phase (does this include error?)
+ data.update({"status": status,
+ "output": read_file(phase_output_file),
+ "phase_name": phase_name})
+
+ if self.save_local:
+ filename = "build-%s-phase-%s.json" % (data['build_id'], phase_name)
+ return self.save(data, filename)
+
+ return self.do_request("builds/phases/update/", data=sjson.dump(data))
+
+ def upload_specfile(self, filename):
+ """
+ Upload a spec file to the spack monitor server.
+
+ Given a spec file (must be json) upload to the UploadSpec endpoint.
+ This function is not used in the spack to server workflow, but could
+ be useful is Spack Monitor is intended to send an already generated
+ file in some kind of separate analysis. For the environment file, we
+ parse out SPACK_* variables to include.
+ """
+ # We load as json just to validate it
+ spec = read_json(filename)
+ data = {"spec": spec, "spack_verison": self.spack_version}
+
+ if self.save_local:
+ filename = "spec-%s-%s.json" % (spec.name, spec.version)
+ return self.save(data, filename)
+
+ return self.do_request("specs/new/", data=sjson.dump(data))
+
+ def iter_read(self, pattern):
+ """
+ A helper to read json from a directory glob and return it loaded.
+ """
+ for filename in glob(pattern):
+ basename = os.path.basename(filename)
+ tty.info("Reading %s" % basename)
+ yield read_json(filename)
+
+ def upload_local_save(self, dirname):
+ """
+ Upload results from a locally saved directory to spack monitor.
+
+ The general workflow will first include an install with save local:
+ spack install --monitor --monitor-save-local
+ And then a request to upload the root or specific directory.
+ spack upload monitor ~/.spack/reports/monitor/<date>/
+ """
+ dirname = os.path.abspath(dirname)
+ if not os.path.exists(dirname):
+ tty.die("%s does not exist." % dirname)
+
+ # We can't be sure the level of nesting the user has provided
+ # So we walk recursively through and look for build metadata
+ for subdir, dirs, files in os.walk(dirname):
+ root = os.path.join(dirname, subdir)
+
+ # A metadata file signals a monitor export
+ metadata = glob("%s%sbuild-metadata*" % (root, os.sep))
+ if not metadata or not files or not root or not subdir:
+ continue
+ self._upload_local_save(root)
+ tty.info("Upload complete")
+
+ def _upload_local_save(self, dirname):
+ """
+ Given a found metadata file, upload results to spack monitor.
+ """
+ # First find all the specs
+ for spec in self.iter_read("%s%sspec*" % (dirname, os.sep)):
+ self.do_request("specs/new/", data=sjson.dump(spec))
+
+ # Load build metadata to generate an id
+ metadata = glob("%s%sbuild-metadata*" % (dirname, os.sep))
+ if not metadata:
+ tty.die("Build metadata file(s) missing in %s" % dirname)
+
+ # Create a build_id lookup based on hash
+ hashes = {}
+ for metafile in metadata:
+ data = read_json(metafile)
+ build = self.do_request("builds/new/", data=sjson.dump(data))
+ localhash = os.path.basename(metafile).replace(".json", "")
+ hashes[localhash.replace('build-metadata-', "")] = build
+
+ # Next upload build phases
+ for phase in self.iter_read("%s%sbuild*phase*" % (dirname, os.sep)):
+ build_id = hashes[phase['build_id']]['data']['build']['build_id']
+ phase['build_id'] = build_id
+ self.do_request("builds/phases/update/", data=sjson.dump(phase))
+
+ # Next find the status objects
+ for status in self.iter_read("%s%sbuild*status*" % (dirname, os.sep)):
+ build_id = hashes[status['build_id']]['data']['build']['build_id']
+ status['build_id'] = build_id
+ self.do_request("builds/update/", data=sjson.dump(status))
+
+
+# Helper functions
+
+def parse_auth_header(authHeaderRaw):
+ """
+ Parse an authentication header into relevant pieces
+ """
+ regex = re.compile('([a-zA-z]+)="(.+?)"')
+ matches = regex.findall(authHeaderRaw)
+ lookup = dict()
+ for match in matches:
+ lookup[match[0]] = match[1]
+ return authHeader(lookup)
+
+
+class authHeader:
+ def __init__(self, lookup):
+ """Given a dictionary of values, match them to class attributes"""
+ for key in lookup:
+ if key in ["realm", "service", "scope"]:
+ setattr(self, key.capitalize(), lookup[key])
+
+
+def read_file(filename):
+ """
+ Read a file, if it exists. Otherwise return None
+ """
+ if not os.path.exists(filename):
+ return
+ with open(filename, 'r') as fd:
+ content = fd.read()
+ return content
+
+
+def write_file(content, filename):
+ """
+ Write content to file
+ """
+ with open(filename, 'w') as fd:
+ fd.writelines(content)
+ return content
+
+
+def write_json(obj, filename):
+ """
+ Write a json file, if the output directory exists.
+ """
+ if not os.path.exists(os.path.dirname(filename)):
+ return
+ return write_file(sjson.dump(obj), filename)
+
+
+def read_json(filename):
+ """
+ Read a file and load into json, if it exists. Otherwise return None.
+ """
+ if not os.path.exists(filename):
+ return
+ return sjson.load(read_file(filename))
diff --git a/lib/spack/spack/multimethod.py b/lib/spack/spack/multimethod.py
index 73cf342b5b..7fa4c42065 100644
--- a/lib/spack/spack/multimethod.py
+++ b/lib/spack/spack/multimethod.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,13 +24,12 @@ avoids overly complicated rat nests of if statements. Obviously,
depending on the scenario, regular old conditionals might be clearer,
so package authors should use their judgement.
"""
-
import functools
import inspect
from llnl.util.lang import caller_locals
-import spack.architecture
+import spack.directives
import spack.error
from spack.spec import Spec
@@ -156,72 +155,80 @@ class SpecMultiMethod(object):
class when(object):
- """This annotation lets packages declare multiple versions of
- methods like install() that depend on the package's spec.
- For example:
+ def __init__(self, condition):
+ """Can be used both as a decorator, for multimethods, or as a context
+ manager to group ``when=`` arguments together.
- .. code-block:: python
+ Examples are given in the docstrings below.
- class SomePackage(Package):
- ...
+ Args:
+ condition (str): condition to be met
+ """
+ if isinstance(condition, bool):
+ self.spec = Spec() if condition else None
+ else:
+ self.spec = Spec(condition)
- def install(self, prefix):
- # Do default install
+ def __call__(self, method):
+ """This annotation lets packages declare multiple versions of
+ methods like install() that depend on the package's spec.
- @when('target=x86_64:')
- def install(self, prefix):
- # This will be executed instead of the default install if
- # the package's target is in the x86_64 family.
+ For example:
- @when('target=ppc64:')
- def install(self, prefix):
- # This will be executed if the package's target is in
- # the ppc64 family
+ .. code-block:: python
- This allows each package to have a default version of install() AND
- specialized versions for particular platforms. The version that is
- called depends on the architecutre of the instantiated package.
+ class SomePackage(Package):
+ ...
- Note that this works for methods other than install, as well. So,
- if you only have part of the install that is platform specific, you
- could do this:
+ def install(self, prefix):
+ # Do default install
- .. code-block:: python
+ @when('target=x86_64:')
+ def install(self, prefix):
+ # This will be executed instead of the default install if
+ # the package's target is in the x86_64 family.
- class SomePackage(Package):
- ...
- # virtual dependence on MPI.
- # could resolve to mpich, mpich2, OpenMPI
- depends_on('mpi')
+ @when('target=ppc64:')
+ def install(self, prefix):
+ # This will be executed if the package's target is in
+ # the ppc64 family
- def setup(self):
- # do nothing in the default case
- pass
+ This allows each package to have a default version of install() AND
+ specialized versions for particular platforms. The version that is
+ called depends on the architecutre of the instantiated package.
- @when('^openmpi')
- def setup(self):
- # do something special when this is built with OpenMPI for
- # its MPI implementations.
+ Note that this works for methods other than install, as well. So,
+ if you only have part of the install that is platform specific, you
+ could do this:
+ .. code-block:: python
- def install(self, prefix):
- # Do common install stuff
- self.setup()
- # Do more common install stuff
+ class SomePackage(Package):
+ ...
+ # virtual dependence on MPI.
+ # could resolve to mpich, mpich2, OpenMPI
+ depends_on('mpi')
- Note that the default version of decorated methods must
- *always* come first. Otherwise it will override all of the
- platform-specific versions. There's not much we can do to get
- around this because of the way decorators work.
- """
+ def setup(self):
+ # do nothing in the default case
+ pass
- def __init__(self, condition):
- if isinstance(condition, bool):
- self.spec = Spec() if condition else None
- else:
- self.spec = Spec(condition)
+ @when('^openmpi')
+ def setup(self):
+ # do something special when this is built with OpenMPI for
+ # its MPI implementations.
- def __call__(self, method):
+
+ def install(self, prefix):
+ # Do common install stuff
+ self.setup()
+ # Do more common install stuff
+
+ Note that the default version of decorated methods must
+ *always* come first. Otherwise it will override all of the
+ platform-specific versions. There's not much we can do to get
+ around this because of the way decorators work.
+ """
# In Python 2, Get the first definition of the method in the
# calling scope by looking at the caller's locals. In Python 3,
# we handle this using MultiMethodMeta.__prepare__.
@@ -238,6 +245,32 @@ class when(object):
return original_method
+ def __enter__(self):
+ """Inject the constraint spec into the `when=` argument of directives
+ in the context.
+
+ This context manager allows you to write:
+
+ with when('+nvptx'):
+ conflicts('@:6', msg='NVPTX only supported from gcc 7')
+ conflicts('languages=ada')
+ conflicts('languages=brig')
+
+ instead of writing:
+
+ conflicts('@:6', when='+nvptx', msg='NVPTX only supported from gcc 7')
+ conflicts('languages=ada', when='+nvptx')
+ conflicts('languages=brig', when='+nvptx')
+
+ Context managers can be nested (but this is not recommended for readability)
+ and add their constraint to whatever may be already present in the directive
+ `when=` argument.
+ """
+ spack.directives.DirectiveMeta.push_to_context(str(self.spec))
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
+ spack.directives.DirectiveMeta.pop_from_context()
+
class MultiMethodError(spack.error.SpackError):
"""Superclass for multimethod dispatch errors"""
diff --git a/lib/spack/spack/operating_systems/__init__.py b/lib/spack/spack/operating_systems/__init__.py
index 9f87532b85..bd00df6b47 100644
--- a/lib/spack/spack/operating_systems/__init__.py
+++ b/lib/spack/spack/operating_systems/__init__.py
@@ -1,4 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 ._operating_system import OperatingSystem
+from .cray_backend import CrayBackend
+from .cray_frontend import CrayFrontend
+from .linux_distro import LinuxDistro
+from .mac_os import MacOs
+
+__all__ = [
+ 'OperatingSystem',
+ 'LinuxDistro',
+ 'MacOs',
+ 'CrayFrontend',
+ 'CrayBackend'
+]
+
+#: List of all the Operating Systems known to Spack
+operating_systems = [LinuxDistro, MacOs, CrayFrontend, CrayBackend]
diff --git a/lib/spack/spack/operating_systems/_operating_system.py b/lib/spack/spack/operating_systems/_operating_system.py
new file mode 100644
index 0000000000..d667dea4ab
--- /dev/null
+++ b/lib/spack/spack/operating_systems/_operating_system.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2021 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)
+import llnl.util.lang
+
+import spack.util.spack_yaml as syaml
+
+
+@llnl.util.lang.lazy_lexicographic_ordering
+class OperatingSystem(object):
+ """Base class for all the Operating Systems.
+
+ Each Operating System contain its own compiler finding logic, that is used
+ to detect compilers.
+ """
+
+ def __init__(self, name, version):
+ self.name = name.replace('-', '_')
+ self.version = str(version).replace('-', '_')
+
+ def __str__(self):
+ return "%s%s" % (self.name, self.version)
+
+ def __repr__(self):
+ return self.__str__()
+
+ def _cmp_iter(self):
+ yield self.name
+ yield self.version
+
+ def to_dict(self):
+ return syaml.syaml_dict([
+ ('name', self.name),
+ ('version', self.version)
+ ])
diff --git a/lib/spack/spack/operating_systems/cray_backend.py b/lib/spack/spack/operating_systems/cray_backend.py
index 5f113eba0b..8f71de9bb4 100644
--- a/lib/spack/spack/operating_systems/cray_backend.py
+++ b/lib/spack/spack/operating_systems/cray_backend.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,10 @@ import llnl.util.tty as tty
import spack.error
import spack.version
-from spack.operating_systems.linux_distro import LinuxDistro
from spack.util.module_cmd import module
+from .linux_distro import LinuxDistro
+
#: Possible locations of the Cray CLE release file,
#: which we look at to get the CNL OS version.
_cle_release_file = '/etc/opt/cray/release/cle-release'
diff --git a/lib/spack/spack/operating_systems/cray_frontend.py b/lib/spack/spack/operating_systems/cray_frontend.py
index d06920af43..5b74033daf 100644
--- a/lib/spack/spack/operating_systems/cray_frontend.py
+++ b/lib/spack/spack/operating_systems/cray_frontend.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,11 @@ import llnl.util.filesystem as fs
import llnl.util.lang
import llnl.util.tty as tty
-from spack.operating_systems.linux_distro import LinuxDistro
from spack.util.environment import get_path
from spack.util.module_cmd import module
+from .linux_distro import LinuxDistro
+
@contextlib.contextmanager
def unload_programming_environment():
diff --git a/lib/spack/spack/operating_systems/linux_distro.py b/lib/spack/spack/operating_systems/linux_distro.py
index a6608e6d3b..758e8bea47 100644
--- a/lib/spack/spack/operating_systems/linux_distro.py
+++ b/lib/spack/spack/operating_systems/linux_distro.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-
import re
-from spack.architecture import OperatingSystem
+
+from ._operating_system import OperatingSystem
class LinuxDistro(OperatingSystem):
diff --git a/lib/spack/spack/operating_systems/mac_os.py b/lib/spack/spack/operating_systems/mac_os.py
index 0efc298338..7fbeb8ff8f 100644
--- a/lib/spack/spack/operating_systems/mac_os.py
+++ b/lib/spack/spack/operating_systems/mac_os.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import platform as py_platform
-from spack.architecture import OperatingSystem
-from spack.version import Version
from spack.util.executable import Executable
+from spack.version import Version
+
+from ._operating_system import OperatingSystem
# FIXME: store versions inside OperatingSystem as a Version instead of string
@@ -55,7 +56,8 @@ class MacOs(OperatingSystem):
'10.14': 'mojave',
'10.15': 'catalina',
'10.16': 'bigsur',
- '11': 'bigsur',
+ '11': 'bigsur',
+ '12': 'monterey',
}
# Big Sur versions go 11.0, 11.0.1, 11.1 (vs. prior versions that
diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py
index 8aa86098e2..690ce075cb 100644
--- a/lib/spack/spack/package.py
+++ b/lib/spack/spack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,13 +8,14 @@
The spack package class structure is based strongly on Homebrew
(http://brew.sh/), mainly because Homebrew makes it very easy to create
packages.
-
"""
+
import base64
import collections
import contextlib
import copy
import functools
+import glob
import hashlib
import inspect
import os
@@ -24,17 +25,23 @@ import sys
import textwrap
import time
import traceback
-import six
import types
+from typing import Any, Callable, Dict, List, Optional # novm
+
+import six
+from ordereddict_backport import OrderedDict
import llnl.util.filesystem as fsys
import llnl.util.tty as tty
+from llnl.util.lang import memoized
+from llnl.util.link_tree import LinkTree
import spack.compilers
import spack.config
import spack.dependency
import spack.directives
import spack.directory_layout
+import spack.environment
import spack.error
import spack.fetch_strategy as fs
import spack.hooks
@@ -47,16 +54,13 @@ import spack.store
import spack.url
import spack.util.environment
import spack.util.web
-from llnl.util.lang import memoized
-from llnl.util.link_tree import LinkTree
-from ordereddict_backport import OrderedDict
from spack.filesystem_view import YamlFilesystemView
-from spack.installer import PackageInstaller, InstallError
from spack.install_test import TestFailure, TestSuite
-from spack.util.executable import which, ProcessError
-from spack.util.prefix import Prefix
-from spack.stage import stage_prefix, Stage, ResourceStage, StageComposite
+from spack.installer import InstallError, PackageInstaller
+from spack.stage import ResourceStage, Stage, StageComposite, stage_prefix
+from spack.util.executable import ProcessError, which
from spack.util.package_hash import package_hash
+from spack.util.prefix import Prefix
from spack.version import Version
"""Allowed URL schemes for spack packages."""
@@ -69,6 +73,9 @@ _spack_build_logfile = 'spack-build-out.txt'
# Filename for the Spack build/install environment file.
_spack_build_envfile = 'spack-build-env.txt'
+# Filename of json with total build and phase times (seconds)
+_spack_times_log = 'install_times.json'
+
# Filename for the Spack configure args file.
_spack_configure_argsfile = 'spack-configure-args.txt'
@@ -253,8 +260,9 @@ class PackageMeta(
"""
phase_fmt = '_InstallPhase_{0}'
- _InstallPhase_run_before = {}
- _InstallPhase_run_after = {}
+ # These are accessed only through getattr, by name
+ _InstallPhase_run_before = {} # type: Dict[str, List[Callable]]
+ _InstallPhase_run_after = {} # type: Dict[str, List[Callable]]
def __new__(cls, name, bases, attr_dict):
"""
@@ -458,7 +466,7 @@ def test_log_pathname(test_stage, spec):
Args:
test_stage (str): path to the test stage directory
- spec (Spec): instance of the spec under test
+ spec (spack.spec.Spec): instance of the spec under test
Returns:
(str): the pathname of the test log file
@@ -555,7 +563,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
#: A list or set of build time test functions to be called when tests
#: are executed or 'None' if there are no such test functions.
- build_time_test_callbacks = None
+ build_time_test_callbacks = None # type: Optional[List[str]]
#: By default, packages are not virtual
#: Virtual packages override this attribute
@@ -567,7 +575,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
#: A list or set of install time test functions to be called when tests
#: are executed or 'None' if there are no such test functions.
- install_time_test_callbacks = None
+ install_time_test_callbacks = None # type: Optional[List[str]]
#: By default we build in parallel. Subclasses can override this.
parallel = True
@@ -589,19 +597,19 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
#: List of prefix-relative file paths (or a single path). If these do
#: not exist after install, or if they exist but are not files,
#: sanity checks fail.
- sanity_check_is_file = []
+ sanity_check_is_file = [] # type: List[str]
#: List of prefix-relative directory paths (or a single path). If
#: these do not exist after install, or if they exist but are not
#: directories, sanity checks will fail.
- sanity_check_is_dir = []
+ sanity_check_is_dir = [] # type: List[str]
#: List of glob expressions. Each expression must either be
#: absolute or relative to the package source path.
#: Matching artifacts found at the end of the build process will be
#: copied in the same directory tree as _spack_build_logfile and
#: _spack_build_envfile.
- archive_files = []
+ archive_files = [] # type: List[str]
#: Boolean. Set to ``True`` for packages that require a manual download.
#: This is currently used by package sanity tests and generation of a
@@ -609,7 +617,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
manual_download = False
#: Set of additional options used when fetching package versions.
- fetch_options = {}
+ fetch_options = {} # type: Dict[str, Any]
#
# Set default licensing information
@@ -627,12 +635,12 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
#: looking for a license. All file paths must be relative to the
#: installation directory. More complex packages like Intel may require
#: multiple licenses for individual components. Defaults to the empty list.
- license_files = []
+ license_files = [] # type: List[str]
#: List of strings. Environment variables that can be set to tell the
#: software where to look for a license if it is not in the usual location.
#: Defaults to the empty list.
- license_vars = []
+ license_vars = [] # type: List[str]
#: String. A URL pointing to license setup instructions for the software.
#: Defaults to the empty string.
@@ -644,9 +652,18 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
#: index of patches by sha256 sum, built lazily
_patches_by_hash = None
+ #: Package homepage where users can find more information about the package
+ homepage = None # type: str
+
+ #: Default list URL (place to find available versions)
+ list_url = None # type: str
+
+ #: Link depth to which list_url should be searched for new versions
+ list_depth = 0
+
#: List of strings which contains GitHub usernames of package maintainers.
#: Do not include @ here in order not to unnecessarily ping the users.
- maintainers = []
+ maintainers = [] # type: List[str]
#: List of attributes to be excluded from a package's hash.
metadata_attrs = ['homepage', 'url', 'urls', 'list_url', 'extendable',
@@ -681,20 +698,12 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
msg += " [package '{0.name}' defines both]"
raise ValueError(msg.format(self))
- # Set a default list URL (place to find available versions)
- if not hasattr(self, 'list_url'):
- self.list_url = None
-
- if not hasattr(self, 'list_depth'):
- self.list_depth = 0
-
# init internal variables
self._stage = None
self._fetcher = None
# Set up timing variables
self._fetch_time = 0.0
- self._total_time = 0.0
if self.is_extension:
spack.repo.get(self.extendee_spec)._check_extendable()
@@ -717,14 +726,14 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
"""Return dict of possible dependencies of this package.
Args:
- transitive (bool, optional): return all transitive dependencies if
+ transitive (bool or None): return all transitive dependencies if
True, only direct dependencies if False (default True)..
- expand_virtuals (bool, optional): expand virtual dependencies into
+ expand_virtuals (bool or None): expand virtual dependencies into
all possible implementations (default True)
- deptype (str or tuple, optional): dependency types to consider
- visited (dicct, optional): dict of names of dependencies visited so
+ deptype (str or tuple or None): dependency types to consider
+ visited (dict or None): dict of names of dependencies visited so
far, mapped to their immediate dependencies' names.
- missing (dict, optional): dict to populate with packages and their
+ missing (dict or None): dict to populate with packages and their
*missing* dependencies.
virtuals (set): if provided, populate with virtuals seen so far.
@@ -1063,6 +1072,14 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
return os.path.join(self.stage.path, _spack_build_logfile)
@property
+ def phase_log_files(self):
+ """Find sorted phase log files written to the staging directory"""
+ logs_dir = os.path.join(self.stage.path, "spack-build-*-out.txt")
+ log_files = glob.glob(logs_dir)
+ log_files.sort()
+ return log_files
+
+ @property
def install_log_path(self):
"""Return the build log file path on successful installation."""
# Backward compatibility: Return the name of an existing install log.
@@ -1080,6 +1097,11 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
return os.path.join(self.stage.path, _spack_configure_argsfile)
@property
+ def times_log_path(self):
+ """Return the times log json file."""
+ return os.path.join(self.metadata_dir, _spack_times_log)
+
+ @property
def install_configure_args_path(self):
"""Return the configure args file path on successful installation."""
return os.path.join(self.metadata_dir, _spack_configure_argsfile)
@@ -1230,18 +1252,14 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
Returns:
True if the package has been installed, False otherwise.
"""
- has_prefix = os.path.isdir(self.prefix)
try:
# If the spec is in the DB, check the installed
# attribute of the record
- rec = spack.store.db.get_record(self.spec)
- db_says_installed = rec.installed
+ return spack.store.db.get_record(self.spec).installed
except KeyError:
# If the spec is not in the DB, the method
# above raises a Key error
- db_says_installed = False
-
- return has_prefix and db_says_installed
+ return False
@property
def prefix(self):
@@ -1256,11 +1274,13 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
raise ValueError("Can only get the arch for concrete package.")
return spack.architecture.arch_for_spec(self.spec.architecture)
- @property
+ @property # type: ignore
+ @memoized
def compiler(self):
"""Get the spack.compiler.Compiler object used to build this package"""
if not self.spec.concrete:
raise ValueError("Can only get a compiler for a concrete package.")
+
return spack.compilers.compiler_for_spec(self.spec.compiler,
self.spec.architecture)
@@ -1305,7 +1325,6 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
tty.debug('No fetch required for {0}: package has no code.'
.format(self.name))
- start_time = time.time()
checksum = spack.config.get('config:checksum')
fetch = self.stage.managed_by_spack
if checksum and fetch and self.version not in self.versions:
@@ -1327,8 +1346,34 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
raise FetchError("Will not fetch %s" %
self.spec.format('{name}{@version}'), ck_msg)
+ deprecated = spack.config.get('config:deprecated')
+ if not deprecated and self.versions.get(
+ self.version, {}).get('deprecated', False):
+ tty.warn("{0} is deprecated and may be removed in a future Spack "
+ "release.".format(
+ self.spec.format('{name}{@version}')))
+
+ # Ask the user whether to install deprecated version if we're
+ # interactive, but just fail if non-interactive.
+ dp_msg = ("If you are willing to be a maintainer for this version "
+ "of the package, submit a PR to remove `deprecated=False"
+ "`, or use `--deprecated` to skip this check.")
+ ignore_deprecation = False
+ if sys.stdout.isatty():
+ ignore_deprecation = tty.get_yes_or_no(" Fetch anyway?",
+ default=False)
+
+ if ignore_deprecation:
+ tty.debug("Fetching deprecated version. {0}".format(
+ dp_msg))
+
+ if not ignore_deprecation:
+ raise FetchError("Will not fetch {0}".format(
+ self.spec.format('{name}{@version}')), dp_msg)
+
self.stage.create()
err_msg = None if not self.manual_download else self.download_instr
+ start_time = time.time()
self.stage.fetch(mirror_only, err_msg=err_msg)
self._fetch_time = time.time() - start_time
@@ -1375,7 +1420,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
# If there are no patches, note it.
if not patches and not has_patch_fun:
- tty.debug('No patches needed for {0}'.format(self.name))
+ tty.msg('No patches needed for {0}'.format(self.name))
return
# Construct paths to special files in the archive dir used to
@@ -1393,10 +1438,10 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
# If this file exists, then we already applied all the patches.
if os.path.isfile(good_file):
- tty.debug('Already patched {0}'.format(self.name))
+ tty.msg('Already patched {0}'.format(self.name))
return
elif os.path.isfile(no_patches_file):
- tty.debug('No patches needed for {0}'.format(self.name))
+ tty.msg('No patches needed for {0}'.format(self.name))
return
# Apply all the patches for specs that match this one
@@ -1405,7 +1450,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
try:
with fsys.working_dir(self.stage.source_path):
patch.apply(self.stage)
- tty.debug('Applied patch {0}'.format(patch.path_or_url))
+ tty.msg('Applied patch {0}'.format(patch.path_or_url))
patched = True
except spack.error.SpackError as e:
tty.debug(e)
@@ -1419,7 +1464,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
try:
with fsys.working_dir(self.stage.source_path):
self.patch()
- tty.debug('Ran patch() for {0}'.format(self.name))
+ tty.msg('Ran patch() for {0}'.format(self.name))
patched = True
except spack.multimethod.NoSuchMethodError:
# We are running a multimethod without a default case.
@@ -1429,7 +1474,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
# directive, AND the patch function didn't apply, say
# no patches are needed. Otherwise, we already
# printed a message for each patch.
- tty.debug('No patches needed for {0}'.format(self.name))
+ tty.msg('No patches needed for {0}'.format(self.name))
except spack.error.SpackError as e:
tty.debug(e)
@@ -1489,18 +1534,27 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
# should this attempt to download the source and set one? This
# probably only happens for source repositories which are
# referenced by branch name rather than tag or commit ID.
- message = 'Missing a source id for {s.name}@{s.version}'
- tty.warn(message.format(s=self))
+ env = spack.environment.active_environment()
+ from_local_sources = env and env.is_develop(self.spec)
+ if not self.spec.external and not from_local_sources:
+ message = 'Missing a source id for {s.name}@{s.version}'
+ tty.warn(message.format(s=self))
hash_content.append(''.encode('utf-8'))
else:
hash_content.append(source_id.encode('utf-8'))
hash_content.extend(':'.join((p.sha256, str(p.level))).encode('utf-8')
for p in self.spec.patches)
hash_content.append(package_hash(self.spec, content))
- return base64.b32encode(
+ b32_hash = base64.b32encode(
hashlib.sha256(bytes().join(
sorted(hash_content))).digest()).lower()
+ # convert from bytes if running python 3
+ if sys.version_info[0] >= 3:
+ b32_hash = b32_hash.decode('utf-8')
+
+ return b32_hash
+
def _has_make_target(self, target):
"""Checks to see if 'target' is a valid target in a Makefile.
@@ -1701,7 +1755,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
during install testing.
Args:
- srcs (str or list of str): relative path for files and or
+ srcs (str or list): relative path for files and or
subdirectories located in the staged source path that are to
be copied to the corresponding location(s) under the install
testing directory.
@@ -1748,10 +1802,10 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
Args:
exe (str): the name of the executable
- options (str or list of str): list of options to pass to the runner
- expected (str or list of str): list of expected output strings.
+ options (str or list): list of options to pass to the runner
+ expected (str or list): list of expected output strings.
Each string is a regex expected to match part of the output.
- status (int or list of int): possible passing status values
+ status (int or list): possible passing status values
with 0 meaning the test is expected to succeed
installed (bool): if ``True``, the executable must be in the
install prefix
@@ -1761,7 +1815,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
work_dir (str or None): path to the smoke test directory
"""
wdir = '.' if work_dir is None else work_dir
- with fsys.working_dir(wdir):
+ with fsys.working_dir(wdir, create=True):
try:
runner = which(exe)
if runner is None and skip_missing:
@@ -1779,6 +1833,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
exc_type, _, tb = sys.exc_info()
print('FAILED: {0}'.format(e))
import traceback
+
# remove the current call frame to exclude the extract_stack
# call from the error
stack = traceback.extract_stack()[:-1]
@@ -1954,9 +2009,9 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
Spack's store.
Args:
- env (EnvironmentModifications): environment modifications to be
- applied when the package is built. Package authors can call
- methods on it to alter the build environment.
+ env (spack.util.environment.EnvironmentModifications): environment
+ modifications to be applied when the package is built. Package authors
+ can call methods on it to alter the build environment.
"""
legacy_fn = self._get_legacy_environment_method('setup_environment')
if legacy_fn:
@@ -1967,9 +2022,9 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
"""Sets up the run environment for a package.
Args:
- env (EnvironmentModifications): environment modifications to be
- applied when the package is run. Package authors can call
- methods on it to alter the run environment.
+ env (spack.util.environment.EnvironmentModifications): environment
+ modifications to be applied when the package is run. Package authors
+ can call methods on it to alter the run environment.
"""
legacy_fn = self._get_legacy_environment_method('setup_environment')
if legacy_fn:
@@ -1996,11 +2051,11 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
variable.
Args:
- env (EnvironmentModifications): environment modifications to be
- applied when the dependent package is built. Package authors
- can call methods on it to alter the build environment.
+ env (spack.util.environment.EnvironmentModifications): environment
+ modifications to be applied when the dependent package is built.
+ Package authors can call methods on it to alter the build environment.
- dependent_spec (Spec): the spec of the dependent package
+ dependent_spec (spack.spec.Spec): the spec of the dependent package
about to be built. This allows the extendee (self) to query
the dependent's state. Note that *this* package's spec is
available as ``self.spec``
@@ -2023,11 +2078,11 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
for dependencies.
Args:
- env (EnvironmentModifications): environment modifications to be
- applied when the dependent package is run. Package authors
- can call methods on it to alter the build environment.
+ env (spack.util.environment.EnvironmentModifications): environment
+ modifications to be applied when the dependent package is run.
+ Package authors can call methods on it to alter the build environment.
- dependent_spec (Spec): The spec of the dependent package
+ dependent_spec (spack.spec.Spec): The spec of the dependent package
about to be run. This allows the extendee (self) to query
the dependent's state. Note that *this* package's spec is
available as ``self.spec``
@@ -2069,7 +2124,7 @@ class PackageBase(six.with_metaclass(PackageMeta, PackageViewMixin, object)):
object of the dependent package. Packages can use this to set
module-scope variables for the dependent to use.
- dependent_spec (Spec): The spec of the dependent package
+ dependent_spec (spack.spec.Spec): The spec of the dependent package
about to be built. This allows the extendee (self) to
query the dependent's state. Note that *this*
package's spec is available as ``self.spec``.
@@ -2559,6 +2614,14 @@ def test_process(pkg, kwargs):
except spack.repo.UnknownPackageError:
continue
+ # copy installed test sources cache into test cache dir
+ if spec.concrete:
+ cache_source = spec_pkg.install_test_root
+ cache_dir = pkg.test_suite.current_test_cache_dir
+ if (os.path.isdir(cache_source) and
+ not os.path.exists(cache_dir)):
+ fsys.install_tree(cache_source, cache_dir)
+
# copy test data into test data dir
data_source = Prefix(spec_pkg.package_dir).test
data_dir = pkg.test_suite.current_test_data_dir
@@ -2596,7 +2659,7 @@ class BundlePackage(PackageBase):
"""General purpose bundle, or no-code, package class."""
#: There are no phases by default but the property is required to support
#: post-install hooks (e.g., for module generation).
- phases = []
+ phases = [] # type: List[str]
#: This attribute is used in UI queries that require to know which
#: build-system class we are using
build_system_class = 'BundlePackage'
diff --git a/lib/spack/spack/package_prefs.py b/lib/spack/spack/package_prefs.py
index 149e10ea26..f242956493 100644
--- a/lib/spack/spack/package_prefs.py
+++ b/lib/spack/spack/package_prefs.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,11 +6,11 @@ import stat
from six import string_types
-import spack.repo
import spack.error
+import spack.repo
+from spack.config import ConfigError
from spack.util.path import canonicalize_path
from spack.version import VersionList
-from spack.config import ConfigError
_lesser_spec_types = {'compiler': spack.spec.CompilerSpec,
'version': VersionList}
@@ -159,7 +159,7 @@ def spec_externals(spec):
"""Return a list of external specs (w/external directory path filled in),
one for each known external installation."""
# break circular import.
- from spack.util.module_cmd import path_from_modules # NOQA: ignore=F401
+ from spack.util.module_cmd import path_from_modules # NOQA: ignore=F401
allpkgs = spack.config.get('packages')
names = set([spec.name])
diff --git a/lib/spack/spack/package_test.py b/lib/spack/spack/package_test.py
index 6e9da9a985..16518fa316 100644
--- a/lib/spack/spack/package_test.py
+++ b/lib/spack/spack/package_test.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
-from spack.util.executable import which, Executable
+
+from spack.util.executable import Executable, which
def compile_c_and_execute(source_file, include_flags, link_flags):
diff --git a/lib/spack/spack/parse.py b/lib/spack/spack/parse.py
index 12bbcee588..a5d550961f 100644
--- a/lib/spack/spack/parse.py
+++ b/lib/spack/spack/parse.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import itertools
import re
import shlex
import sys
-import itertools
+
from six import string_types
import spack.error
diff --git a/lib/spack/spack/patch.py b/lib/spack/spack/patch.py
index 3a839c5b0f..a273514636 100644
--- a/lib/spack/spack/patch.py
+++ b/lib/spack/spack/patch.py
@@ -1,25 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import hashlib
+import inspect
import os
import os.path
-import inspect
import llnl.util.filesystem
import llnl.util.lang
+import spack
import spack.error
import spack.fetch_strategy as fs
import spack.repo
import spack.stage
import spack.util.spack_json as sjson
-import spack
-
from spack.util.compression import allowed_archive
-from spack.util.crypto import checksum, Checker
+from spack.util.crypto import Checker, checksum
from spack.util.executable import which
@@ -29,7 +28,7 @@ def apply_patch(stage, patch_path, level=1, working_dir='.'):
Args:
stage (spack.stage.Stage): stage with code that will be patched
patch_path (str): filesystem location for the patch to apply
- level (int, optional): patch level (default 1)
+ level (int or None): patch level (default 1)
working_dir (str): relative path *within* the stage to change to
(default '.')
"""
@@ -291,7 +290,7 @@ def from_dict(dictionary):
if not checker.check(patch.path):
raise fs.ChecksumError(
"sha256 checksum failed for %s" % patch.path,
- "Expected %s but got %s" % (sha256, checker.sum),
+ "Expected %s but got %s " % (sha256, checker.sum) +
"Patch may have changed since concretization.")
return patch
else:
diff --git a/lib/spack/spack/paths.py b/lib/spack/spack/paths.py
index 068a7a6fdb..627be54bd7 100644
--- a/lib/spack/spack/paths.py
+++ b/lib/spack/spack/paths.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,11 @@ throughout Spack and should bring in a minimal number of external
dependencies.
"""
import os
-from llnl.util.filesystem import ancestor
+
+import llnl.util.filesystem
#: This file lives in $prefix/lib/spack/spack/__file__
-prefix = ancestor(__file__, 4)
+prefix = llnl.util.filesystem.ancestor(__file__, 4)
#: synonym for prefix
spack_root = prefix
@@ -33,6 +34,7 @@ external_path = os.path.join(lib_path, "external")
build_env_path = os.path.join(lib_path, "env")
module_path = os.path.join(lib_path, "spack")
command_path = os.path.join(module_path, "cmd")
+analyzers_path = os.path.join(module_path, "analyzers")
platform_path = os.path.join(module_path, 'platforms')
compilers_path = os.path.join(module_path, "compilers")
build_systems_path = os.path.join(module_path, 'build_systems')
@@ -51,7 +53,11 @@ mock_packages_path = os.path.join(repos_path, "builtin.mock")
#: User configuration location
user_config_path = os.path.expanduser('~/.spack')
user_bootstrap_path = os.path.join(user_config_path, 'bootstrap')
-user_bootstrap_store = os.path.join(user_bootstrap_path, 'store')
+reports_path = os.path.join(user_config_path, "reports")
+monitor_path = os.path.join(reports_path, "monitor")
+
+# We cache repositories (git) in first, extracted metadata in second
+user_repos_cache_path = os.path.join(user_config_path, 'git_repos')
opt_path = os.path.join(prefix, "opt")
etc_path = os.path.join(prefix, "etc")
diff --git a/lib/spack/spack/pkgkit.py b/lib/spack/spack/pkgkit.py
index 423c0fb05f..fc056f14ad 100644
--- a/lib/spack/spack/pkgkit.py
+++ b/lib/spack/spack/pkgkit.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,58 +11,62 @@ Everything in this module is automatically imported into Spack package files.
import llnl.util.filesystem
from llnl.util.filesystem import *
-from spack.package import \
- Package, BundlePackage, \
- run_before, run_after, on_package_attributes
-from spack.package import inject_flags, env_flags, build_system_flags
-from spack.build_systems.makefile import MakefilePackage
+import spack.directives
+import spack.util.executable
from spack.build_systems.aspell_dict import AspellDictPackage
from spack.build_systems.autotools import AutotoolsPackage
+from spack.build_systems.cached_cmake import (
+ CachedCMakePackage,
+ cmake_cache_option,
+ cmake_cache_path,
+ cmake_cache_string,
+)
from spack.build_systems.cmake import CMakePackage
from spack.build_systems.cuda import CudaPackage
-from spack.build_systems.oneapi import IntelOneApiPackage
-from spack.build_systems.oneapi import IntelOneApiLibraryPackage
-from spack.build_systems.rocm import ROCmPackage
-from spack.build_systems.qmake import QMakePackage
+from spack.build_systems.gnu import GNUMirrorPackage
+from spack.build_systems.intel import IntelPackage
+from spack.build_systems.makefile import MakefilePackage
from spack.build_systems.maven import MavenPackage
-from spack.build_systems.scons import SConsPackage
-from spack.build_systems.waf import WafPackage
+from spack.build_systems.meson import MesonPackage
from spack.build_systems.octave import OctavePackage
+from spack.build_systems.oneapi import IntelOneApiLibraryPackage, IntelOneApiPackage
+from spack.build_systems.perl import PerlPackage
from spack.build_systems.python import PythonPackage
+from spack.build_systems.qmake import QMakePackage
from spack.build_systems.r import RPackage
-from spack.build_systems.perl import PerlPackage
+from spack.build_systems.rocm import ROCmPackage
from spack.build_systems.ruby import RubyPackage
-from spack.build_systems.intel import IntelPackage
-from spack.build_systems.meson import MesonPackage
+from spack.build_systems.scons import SConsPackage
from spack.build_systems.sip import SIPPackage
-from spack.build_systems.gnu import GNUMirrorPackage
from spack.build_systems.sourceforge import SourceforgePackage
from spack.build_systems.sourceware import SourcewarePackage
+from spack.build_systems.waf import WafPackage
from spack.build_systems.xorg import XorgPackage
-
-from spack.mixins import filter_compiler_wrappers
-
-from spack.version import Version, ver
-
-from spack.spec import Spec, InvalidSpecDetected
-
from spack.dependency import all_deptypes
-
-from spack.multimethod import when
-
-import spack.directives
from spack.directives import *
-
-import spack.util.executable
-from spack.util.executable import *
-
-from spack.package import \
- install_dependency_symlinks, flatten_dependencies, \
- DependencyConflictError
-
-from spack.installer import \
- ExternalPackageError, InstallError, InstallLockError, UpstreamPackageError
from spack.install_test import get_escaped_text_output
-
-from spack.variant import any_combination_of, auto_or_any_combination_of
-from spack.variant import disjoint_sets
+from spack.installer import (
+ ExternalPackageError,
+ InstallError,
+ InstallLockError,
+ UpstreamPackageError,
+)
+from spack.mixins import filter_compiler_wrappers
+from spack.multimethod import when
+from spack.package import (
+ BundlePackage,
+ DependencyConflictError,
+ Package,
+ build_system_flags,
+ env_flags,
+ flatten_dependencies,
+ inject_flags,
+ install_dependency_symlinks,
+ on_package_attributes,
+ run_after,
+ run_before,
+)
+from spack.spec import InvalidSpecDetected, Spec
+from spack.util.executable import *
+from spack.variant import any_combination_of, auto_or_any_combination_of, disjoint_sets
+from spack.version import Version, ver
diff --git a/lib/spack/spack/platforms/__init__.py b/lib/spack/spack/platforms/__init__.py
index 9f87532b85..799b9c3171 100644
--- a/lib/spack/spack/platforms/__init__.py
+++ b/lib/spack/spack/platforms/__init__.py
@@ -1,4 +1,55 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import llnl.util.lang
+
+from ._platform import Platform
+from .cray import Cray
+from .darwin import Darwin
+from .linux import Linux
+from .test import Test
+
+__all__ = [
+ 'Platform',
+ 'Cray',
+ 'Darwin',
+ 'Linux',
+ 'Test'
+]
+
+#: List of all the platform classes known to Spack
+platforms = [Cray, Darwin, Linux, Test]
+
+
+def host():
+ """Detect and return the platform for this machine or None if detection fails."""
+ for platform_cls in sorted(platforms, key=lambda plt: plt.priority):
+ if platform_cls.detect():
+ return platform_cls()
+ return None
+
+
+@llnl.util.lang.memoized
+def cls_by_name(name):
+ """Return a platform class that corresponds to the given name or None
+ if there is no match.
+
+ Args:
+ name (str): name of the platform
+ """
+ for platform_cls in sorted(platforms, key=lambda plt: plt.priority):
+ if name.replace("_", "").lower() == platform_cls.__name__.lower():
+ return platform_cls
+ return None
+
+
+def by_name(name):
+ """Return a platform object that corresponds to the given name or None
+ if there is no match.
+
+ Args:
+ name (str): name of the platform
+ """
+ platform_cls = cls_by_name(name)
+ return platform_cls() if platform_cls else None
diff --git a/lib/spack/spack/platforms/_platform.py b/lib/spack/spack/platforms/_platform.py
new file mode 100644
index 0000000000..c2ee536b2b
--- /dev/null
+++ b/lib/spack/spack/platforms/_platform.py
@@ -0,0 +1,126 @@
+# Copyright 2013-2021 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)
+import llnl.util.lang
+
+import spack.error
+
+
+class NoPlatformError(spack.error.SpackError):
+ def __init__(self):
+ msg = "Could not determine a platform for this machine"
+ super(NoPlatformError, self).__init__(msg)
+
+
+@llnl.util.lang.lazy_lexicographic_ordering
+class Platform(object):
+ """Base class for each type of Platform"""
+
+ # Subclass sets number. Controls detection order
+ priority = None # type: int
+
+ #: binary formats used on this platform; used by relocation logic
+ binary_formats = ['elf']
+
+ front_end = None # type: str
+ back_end = None # type: str
+ default = None # type: str # The default back end target.
+
+ front_os = None # type: str
+ back_os = None # type: str
+ default_os = None # type: str
+
+ reserved_targets = ['default_target', 'frontend', 'fe', 'backend', 'be']
+ reserved_oss = ['default_os', 'frontend', 'fe', 'backend', 'be']
+
+ def __init__(self, name):
+ self.targets = {}
+ self.operating_sys = {}
+ self.name = name
+
+ def add_target(self, name, target):
+ """Used by the platform specific subclass to list available targets.
+ Raises an error if the platform specifies a name
+ that is reserved by spack as an alias.
+ """
+ if name in Platform.reserved_targets:
+ msg = "{0} is a spack reserved alias and cannot be the name of a target"
+ raise ValueError(msg.format(name))
+ self.targets[name] = target
+
+ def target(self, name):
+ """This is a getter method for the target dictionary
+ that handles defaulting based on the values provided by default,
+ front-end, and back-end. This can be overwritten
+ by a subclass for which we want to provide further aliasing options.
+ """
+ # TODO: Check if we can avoid using strings here
+ name = str(name)
+ if name == 'default_target':
+ name = self.default
+ elif name == 'frontend' or name == 'fe':
+ name = self.front_end
+ elif name == 'backend' or name == 'be':
+ name = self.back_end
+
+ return self.targets.get(name, None)
+
+ def add_operating_system(self, name, os_class):
+ """Add the operating_system class object into the
+ platform.operating_sys dictionary.
+ """
+ if name in Platform.reserved_oss:
+ msg = "{0} is a spack reserved alias and cannot be the name of an OS"
+ raise ValueError(msg.format(name))
+ self.operating_sys[name] = os_class
+
+ def operating_system(self, name):
+ if name == 'default_os':
+ name = self.default_os
+ if name == 'frontend' or name == "fe":
+ name = self.front_os
+ if name == 'backend' or name == 'be':
+ name = self.back_os
+
+ return self.operating_sys.get(name, None)
+
+ @classmethod
+ def setup_platform_environment(cls, pkg, env):
+ """Subclass can override this method if it requires any
+ platform-specific build environment modifications.
+ """
+
+ @classmethod
+ def detect(cls):
+ """Return True if the the host platform is detected to be the current
+ Platform class, False otherwise.
+
+ Derived classes are responsible for implementing this method.
+ """
+ raise NotImplementedError()
+
+ def __repr__(self):
+ return self.__str__()
+
+ def __str__(self):
+ return self.name
+
+ def _cmp_iter(self):
+ yield self.name
+ yield self.default
+ yield self.front_end
+ yield self.back_end
+ yield self.default_os
+ yield self.front_os
+ yield self.back_os
+
+ def targets():
+ for t in sorted(self.targets.values()):
+ yield t._cmp_iter
+ yield targets
+
+ def oses():
+ for o in sorted(self.operating_sys.values()):
+ yield o._cmp_iter
+ yield oses
diff --git a/lib/spack/spack/platforms/cray.py b/lib/spack/spack/platforms/cray.py
index 091f8d3ffb..cc66d8aadc 100644
--- a/lib/spack/spack/platforms/cray.py
+++ b/lib/spack/spack/platforms/cray.py
@@ -1,22 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import os.path
-import re
import platform
+import re
import archspec.cpu
import llnl.util.tty as tty
+
+import spack.target
+from spack.operating_systems.cray_backend import CrayBackend
+from spack.operating_systems.cray_frontend import CrayFrontend
from spack.paths import build_env_path
from spack.util.executable import Executable
-from spack.architecture import Platform, Target, NoPlatformError
-from spack.operating_systems.cray_frontend import CrayFrontend
-from spack.operating_systems.cray_backend import CrayBackend
from spack.util.module_cmd import module
+from ._platform import NoPlatformError, Platform
_craype_name_to_target_name = {
'x86-cascadelake': 'cascadelake',
@@ -51,7 +53,7 @@ class Cray(Platform):
# Make all craype targets available.
for target in self._avail_targets():
name = _target_name_from_craype_target_name(target)
- self.add_target(name, Target(name, 'craype-%s' % target))
+ self.add_target(name, spack.target.Target(name, 'craype-%s' % target))
self.back_end = os.environ.get('SPACK_BACK_END',
self._default_target_from_env())
@@ -63,12 +65,12 @@ class Cray(Platform):
# Setup frontend targets
for name in archspec.cpu.TARGETS:
if name not in self.targets:
- self.add_target(name, Target(name))
+ self.add_target(name, spack.target.Target(name))
self.front_end = os.environ.get(
'SPACK_FRONT_END', archspec.cpu.host().name
)
if self.front_end not in self.targets:
- self.add_target(self.front_end, Target(self.front_end))
+ self.add_target(self.front_end, spack.target.Target(self.front_end))
front_distro = CrayFrontend()
back_distro = CrayBackend()
@@ -169,6 +171,7 @@ class Cray(Platform):
for mod in modules:
if 'craype-' in mod:
name = mod[7:]
+ name = name.split()[0]
_n = name.replace('-', '_') # test for mic-knl/mic_knl
is_target_name = (name in archspec.cpu.TARGETS or
_n in archspec.cpu.TARGETS)
diff --git a/lib/spack/spack/platforms/darwin.py b/lib/spack/spack/platforms/darwin.py
index e36722723b..2a6355db17 100644
--- a/lib/spack/spack/platforms/darwin.py
+++ b/lib/spack/spack/platforms/darwin.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,9 +7,11 @@ import platform
import archspec.cpu
-from spack.architecture import Platform, Target
+import spack.target
from spack.operating_systems.mac_os import MacOs
+from ._platform import Platform
+
class Darwin(Platform):
priority = 89
@@ -20,7 +22,7 @@ class Darwin(Platform):
super(Darwin, self).__init__('darwin')
for name in archspec.cpu.TARGETS:
- self.add_target(name, Target(name))
+ self.add_target(name, spack.target.Target(name))
self.default = archspec.cpu.host().name
self.front_end = self.default
diff --git a/lib/spack/spack/platforms/linux.py b/lib/spack/spack/platforms/linux.py
index c7e1def2d9..c11515fa79 100644
--- a/lib/spack/spack/platforms/linux.py
+++ b/lib/spack/spack/platforms/linux.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,9 +6,11 @@ import platform
import archspec.cpu
-from spack.architecture import Platform, Target
+import spack.target
from spack.operating_systems.linux_distro import LinuxDistro
+from ._platform import Platform
+
class Linux(Platform):
priority = 90
@@ -17,7 +19,7 @@ class Linux(Platform):
super(Linux, self).__init__('linux')
for name in archspec.cpu.TARGETS:
- self.add_target(name, Target(name))
+ self.add_target(name, spack.target.Target(name))
# Get specific default
self.default = archspec.cpu.host().name
diff --git a/lib/spack/spack/platforms/test.py b/lib/spack/spack/platforms/test.py
index f938eb749d..4d48619dfd 100644
--- a/lib/spack/spack/platforms/test.py
+++ b/lib/spack/spack/platforms/test.py
@@ -1,11 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-
import platform
-from spack.architecture import Platform, Target
-from spack.architecture import OperatingSystem
+
+import spack.operating_systems
+import spack.target
+
+from ._platform import Platform
class Test(Platform):
@@ -24,13 +26,13 @@ class Test(Platform):
def __init__(self):
super(Test, self).__init__('test')
- self.add_target(self.default, Target(self.default))
- self.add_target(self.front_end, Target(self.front_end))
+ self.add_target(self.default, spack.target.Target(self.default))
+ self.add_target(self.front_end, spack.target.Target(self.front_end))
self.add_operating_system(
- self.default_os, OperatingSystem('debian', 6))
+ self.default_os, spack.operating_systems.OperatingSystem('debian', 6))
self.add_operating_system(
- self.front_os, OperatingSystem('redhat', 6))
+ self.front_os, spack.operating_systems.OperatingSystem('redhat', 6))
@classmethod
def detect(cls):
diff --git a/lib/spack/spack/projections.py b/lib/spack/spack/projections.py
index b91d321436..9f78e24409 100644
--- a/lib/spack/spack/projections.py
+++ b/lib/spack/spack/projections.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/provider_index.py b/lib/spack/spack/provider_index.py
index 326f6aa8f1..39ab3f7145 100644
--- a/lib/spack/spack/provider_index.py
+++ b/lib/spack/spack/provider_index.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,6 +6,7 @@
import itertools
import six
+
import spack.error
import spack.util.spack_json as sjson
diff --git a/lib/spack/spack/relocate.py b/lib/spack/spack/relocate.py
index e1726b060e..107b7cc87a 100644
--- a/lib/spack/spack/relocate.py
+++ b/lib/spack/spack/relocate.py
@@ -1,20 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import multiprocessing.pool
import os
import platform
import re
import shutil
-import multiprocessing.pool
+
+import macholib.mach_o
+import macholib.MachO
from ordereddict_backport import OrderedDict
import llnl.util.lang
import llnl.util.tty as tty
-import macholib.MachO
-import macholib.mach_o
+
import spack.architecture
-import spack.cmd
import spack.repo
import spack.spec
import spack.util.executable as executable
@@ -86,7 +87,8 @@ def _patchelf():
return patchelf.path
# Check if patchelf spec is installed
- spec = spack.spec.Spec('patchelf').concretized()
+ spec = spack.spec.Spec('patchelf')
+ spec._old_concretize()
exe_path = os.path.join(spec.prefix.bin, "patchelf")
if spec.package.installed and os.path.exists(exe_path):
return exe_path
@@ -867,7 +869,7 @@ def is_relocatable(spec):
"""Returns True if an installed spec is relocatable.
Args:
- spec (Spec): spec to be analyzed
+ spec (spack.spec.Spec): spec to be analyzed
Returns:
True if the binaries of an installed spec
diff --git a/lib/spack/spack/repo.py b/lib/spack/spack/repo.py
index 1534054075..74c5cd2d87 100644
--- a/lib/spack/spack/repo.py
+++ b/lib/spack/spack/repo.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,29 +17,31 @@ import stat
import sys
import traceback
import types
+from typing import Dict # novm
-try:
+import six
+
+if sys.version_info >= (3, 5):
from collections.abc import Mapping # novm
-except ImportError:
+else:
from collections import Mapping
-import six
-
import ruamel.yaml as yaml
+import llnl.util.filesystem as fs
import llnl.util.lang
import llnl.util.tty as tty
-import llnl.util.filesystem as fs
-import spack.config
+
import spack.caches
+import spack.config
import spack.error
import spack.patch
+import spack.provider_index
import spack.spec
-import spack.util.spack_json as sjson
import spack.util.imp as simp
-import spack.provider_index
-import spack.util.path
import spack.util.naming as nm
+import spack.util.path
+import spack.util.spack_json as sjson
#: Super-namespace for all packages.
#: Package modules are imported as spack.pkg.<namespace>.<pkg-name>.
@@ -118,7 +120,11 @@ class SpackNamespace(types.ModuleType):
def __getattr__(self, name):
"""Getattr lazily loads modules if they're not already loaded."""
submodule = self.__package__ + '.' + name
- setattr(self, name, __import__(submodule))
+ try:
+ setattr(self, name, __import__(submodule))
+ except ImportError:
+ msg = "'{0}' object has no attribute {1}"
+ raise AttributeError(msg.format(type(self), name))
return getattr(self, name)
@@ -131,7 +137,7 @@ class FastPackageChecker(Mapping):
during instance initialization.
"""
#: Global cache, reused by every instance
- _paths_cache = {}
+ _paths_cache = {} # type: Dict[str, Dict[str, os.stat_result]]
def __init__(self, packages_path):
# The path of the repository managed by this instance
@@ -149,7 +155,7 @@ class FastPackageChecker(Mapping):
self._paths_cache[self.packages_path] = self._create_new_cache()
self._packages_to_stats = self._paths_cache[self.packages_path]
- def _create_new_cache(self):
+ def _create_new_cache(self): # type: () -> Dict[str, os.stat_result]
"""Create a new cache for packages in a repo.
The implementation here should try to minimize filesystem
@@ -159,7 +165,7 @@ class FastPackageChecker(Mapping):
"""
# Create a dictionary that will store the mapping between a
# package name and its stat info
- cache = {}
+ cache = {} # type: Dict[str, os.stat_result]
for pkg_name in os.listdir(self.packages_path):
# Skip non-directories in the package root.
pkg_dir = os.path.join(self.packages_path, pkg_name)
@@ -341,7 +347,7 @@ class PatchIndexer(Indexer):
def _create(self):
return spack.patch.PatchCache()
- def needs_update():
+ def needs_update(self):
# TODO: patches can change under a package and we should handle
# TODO: it, but we currently punt. This should be refactored to
# TODO: check whether patches changed each time a package loads,
@@ -656,7 +662,7 @@ class RepoPath(object):
if namespace:
fullspace = get_full_namespace(namespace)
if fullspace not in self.by_namespace:
- raise UnknownNamespaceError(spec.namespace)
+ raise UnknownNamespaceError(namespace)
return self.by_namespace[fullspace]
# If there's no namespace, search in the RepoPath.
@@ -1293,19 +1299,24 @@ def use_repositories(*paths_and_repos):
"""
global path
+ remove_from_meta = None
+
# Construct a temporary RepoPath object from
temporary_repositories = RepoPath(*paths_and_repos)
# Swap the current repository out
saved = path
- remove_from_meta = set_path(temporary_repositories)
- yield temporary_repositories
+ try:
+ remove_from_meta = set_path(temporary_repositories)
+
+ yield temporary_repositories
- # Restore _path and sys.meta_path
- if remove_from_meta:
- sys.meta_path.remove(temporary_repositories)
- path = saved
+ finally:
+ # Restore _path and sys.meta_path
+ if remove_from_meta:
+ sys.meta_path.remove(temporary_repositories)
+ path = saved
class RepoError(spack.error.SpackError):
diff --git a/lib/spack/spack/report.py b/lib/spack/spack/report.py
index ebae2d0adc..4685321bc8 100644
--- a/lib/spack/spack/report.py
+++ b/lib/spack/spack/report.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,12 @@
import codecs
import collections
import functools
+import os
import time
import traceback
-import os
import llnl.util.lang
+
import spack.build_environment
import spack.fetch_strategy
import spack.package
diff --git a/lib/spack/spack/reporter.py b/lib/spack/spack/reporter.py
index 6314054139..629051e223 100644
--- a/lib/spack/spack/reporter.py
+++ b/lib/spack/spack/reporter.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/reporters/__init__.py b/lib/spack/spack/reporters/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/reporters/__init__.py
+++ b/lib/spack/spack/reporters/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/reporters/cdash.py b/lib/spack/spack/reporters/cdash.py
index c1a220963e..cb9539b2d7 100644
--- a/lib/spack/spack/reporters/cdash.py
+++ b/lib/spack/spack/reporters/cdash.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,16 +12,19 @@ import re
import socket
import time
import xml.sax.saxutils
+
+from ordereddict_backport import OrderedDict
from six import iteritems, text_type
-from six.moves.urllib.request import build_opener, HTTPHandler, Request
from six.moves.urllib.parse import urlencode
+from six.moves.urllib.request import HTTPHandler, Request, build_opener
-from llnl.util.filesystem import working_dir
import llnl.util.tty as tty
-from ordereddict_backport import OrderedDict
+from llnl.util.filesystem import working_dir
+
import spack.build_environment
import spack.fetch_strategy
import spack.package
+from spack.error import SpackError
from spack.reporter import Reporter
from spack.util.crypto import checksum
from spack.util.executable import which
@@ -60,6 +63,7 @@ class CDash(Reporter):
def __init__(self, args):
Reporter.__init__(self, args)
tty.set_verbose(args.verbose)
+ self.success = True
self.template_dir = os.path.join('reports', 'cdash')
self.cdash_upload_url = args.cdash_upload_url
@@ -159,13 +163,21 @@ class CDash(Reporter):
report_data[phase]['log'] = \
'\n'.join(report_data[phase]['loglines'])
errors, warnings = parse_log_events(report_data[phase]['loglines'])
+
+ # Convert errors to warnings if the package reported success.
+ if package['result'] == 'success':
+ warnings = errors + warnings
+ errors = []
+
# Cap the number of errors and warnings at 50 each.
errors = errors[:50]
warnings = warnings[:50]
nerrors = len(errors)
- if phase == 'configure' and nerrors > 0:
- report_data[phase]['status'] = 1
+ if nerrors > 0:
+ self.success = False
+ if phase == 'configure':
+ report_data[phase]['status'] = 1
if phase == 'build':
# Convert log output from ASCII to Unicode and escape for XML.
@@ -186,11 +198,6 @@ class CDash(Reporter):
event['source_file'])
return event
- # Convert errors to warnings if the package reported success.
- if package['result'] == 'success':
- warnings = errors + warnings
- errors = []
-
report_data[phase]['errors'] = []
report_data[phase]['warnings'] = []
for error in errors:
@@ -254,7 +261,7 @@ class CDash(Reporter):
for package in spec['packages']:
self.build_report_for_package(
directory_name, package, duration)
- self.print_cdash_link()
+ self.finalize_report()
def test_report_for_package(self, directory_name, package, duration):
if 'stdout' not in package:
@@ -360,7 +367,7 @@ class CDash(Reporter):
for package in spec['packages']:
self.test_report_for_package(
directory_name, package, duration)
- self.print_cdash_link()
+ self.finalize_report()
def concretization_report(self, directory_name, msg):
self.buildname = self.base_buildname
@@ -381,7 +388,8 @@ class CDash(Reporter):
# errors so refer to this report with the base buildname instead.
self.current_package_name = self.base_buildname
self.upload(output_filename)
- self.print_cdash_link()
+ self.success = False
+ self.finalize_report()
def initialize_report(self, directory_name):
if not os.path.exists(directory_name):
@@ -417,20 +425,23 @@ class CDash(Reporter):
if self.authtoken:
request.add_header('Authorization',
'Bearer {0}'.format(self.authtoken))
- # By default, urllib2 only support GET and POST.
- # CDash needs expects this file to be uploaded via PUT.
- request.get_method = lambda: 'PUT'
- response = opener.open(request)
- if self.current_package_name not in self.buildIds:
- resp_value = response.read()
- if isinstance(resp_value, bytes):
- resp_value = resp_value.decode('utf-8')
- match = self.buildid_regexp.search(resp_value)
- if match:
- buildid = match.group(1)
- self.buildIds[self.current_package_name] = buildid
-
- def print_cdash_link(self):
+ try:
+ # By default, urllib2 only support GET and POST.
+ # CDash needs expects this file to be uploaded via PUT.
+ request.get_method = lambda: 'PUT'
+ response = opener.open(request)
+ if self.current_package_name not in self.buildIds:
+ resp_value = response.read()
+ if isinstance(resp_value, bytes):
+ resp_value = resp_value.decode('utf-8')
+ match = self.buildid_regexp.search(resp_value)
+ if match:
+ buildid = match.group(1)
+ self.buildIds[self.current_package_name] = buildid
+ except Exception as e:
+ print("Upload to CDash failed: {0}".format(e))
+
+ def finalize_report(self):
if self.buildIds:
print("View your build results here:")
for package_name, buildid in iteritems(self.buildIds):
@@ -440,3 +451,5 @@ class CDash(Reporter):
build_url = build_url[0:build_url.find("submit.php")]
build_url += "buildSummary.php?buildid={0}".format(buildid)
print("{0}: {1}".format(package_name, build_url))
+ if not self.success:
+ raise SpackError("Errors encountered, see above for more details")
diff --git a/lib/spack/spack/reporters/junit.py b/lib/spack/spack/reporters/junit.py
index 598b308934..9120850c4c 100644
--- a/lib/spack/spack/reporters/junit.py
+++ b/lib/spack/spack/reporters/junit.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/resource.py b/lib/spack/spack/resource.py
index 5cec54f6de..488c6a846d 100644
--- a/lib/spack/spack/resource.py
+++ b/lib/spack/spack/resource.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/s3_handler.py b/lib/spack/spack/s3_handler.py
index 24f0a46221..8f9322716a 100644
--- a/lib/spack/spack/s3_handler.py
+++ b/lib/spack/spack/s3_handler.py
@@ -1,13 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 io import BufferedReader
-import six.moves.urllib.response as urllib_response
-import six.moves.urllib.request as urllib_request
import six.moves.urllib.error as urllib_error
+import six.moves.urllib.request as urllib_request
+import six.moves.urllib.response as urllib_response
import spack.util.s3 as s3_util
import spack.util.url as url_util
diff --git a/lib/spack/spack/schema/__init__.py b/lib/spack/spack/schema/__init__.py
index 1ddca90cc6..0b584cf07b 100644
--- a/lib/spack/spack/schema/__init__.py
+++ b/lib/spack/spack/schema/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,6 +8,7 @@ import six
import llnl.util.lang
import llnl.util.tty
+
import spack.spec
diff --git a/lib/spack/spack/schema/bootstrap.py b/lib/spack/spack/schema/bootstrap.py
new file mode 100644
index 0000000000..bd3c6630fb
--- /dev/null
+++ b/lib/spack/spack/schema/bootstrap.py
@@ -0,0 +1,47 @@
+# Copyright 2013-2021 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)
+"""Schema for bootstrap.yaml configuration file."""
+
+#: Schema of a single source
+_source_schema = {
+ 'type': 'object',
+ 'properties': {
+ 'name': {'type': 'string'},
+ 'description': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'info': {'type': 'object'}
+ },
+ 'additionalProperties': False,
+ 'required': ['name', 'description', 'type']
+}
+
+properties = {
+ 'bootstrap': {
+ 'type': 'object',
+ 'properties': {
+ 'enable': {'type': 'boolean'},
+ 'root': {
+ 'type': 'string'
+ },
+ 'sources': {
+ 'type': 'array',
+ 'items': _source_schema
+ },
+ 'trusted': {
+ 'type': 'object',
+ 'patternProperties': {r'\w[\w-]*': {'type': 'boolean'}}
+ }
+ }
+ }
+}
+
+#: Full schema with metadata
+schema = {
+ '$schema': 'http://json-schema.org/schema#',
+ 'title': 'Spack bootstrap configuration file schema',
+ 'type': 'object',
+ 'additionalProperties': False,
+ 'properties': properties,
+}
diff --git a/lib/spack/spack/schema/buildcache_spec.py b/lib/spack/spack/schema/buildcache_spec.py
index 5ba07a27f1..563235c311 100644
--- a/lib/spack/spack/schema/buildcache_spec.py
+++ b/lib/spack/spack/schema/buildcache_spec.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,11 @@
"""
import spack.schema.spec
-
schema = {
'$schema': 'http://json-schema.org/schema#',
- 'title': 'Spack buildcache spec.yaml schema',
+ 'title': 'Spack buildcache specfile schema',
'type': 'object',
- # 'additionalProperties': True,
+ 'additionalProperties': False,
'properties': {
'buildinfo': {
'type': 'object',
@@ -27,7 +26,8 @@ schema = {
},
},
'spec': {
- 'type': 'array',
+ 'type': 'object',
+ 'additionalProperties': True,
'items': spack.schema.spec.properties,
},
'binary_cache_checksum': {
diff --git a/lib/spack/spack/schema/cdash.py b/lib/spack/spack/schema/cdash.py
index 2df2ea3f32..41c0146b1d 100644
--- a/lib/spack/spack/schema/cdash.py
+++ b/lib/spack/spack/schema/cdash.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/schema/compilers.py b/lib/spack/spack/schema/compilers.py
index c994bef819..91ace05f4e 100644
--- a/lib/spack/spack/schema/compilers.py
+++ b/lib/spack/spack/schema/compilers.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/schema/config.py b/lib/spack/spack/schema/config.py
index 0f83eb86f4..0cf533eb18 100644
--- a/lib/spack/spack/schema/config.py
+++ b/lib/spack/spack/schema/config.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,9 @@
:lines: 13-
"""
import six
+
from llnl.util.lang import union_dicts
+
import spack.schema.projections
#: Properties for inclusion in other schemas
@@ -78,6 +80,7 @@ properties = {
'install_missing_compilers': {'type': 'boolean'},
'debug': {'type': 'boolean'},
'checksum': {'type': 'boolean'},
+ 'deprecated': {'type': 'boolean'},
'locks': {'type': 'boolean'},
'dirty': {'type': 'boolean'},
'build_language': {'type': 'string'},
@@ -96,6 +99,10 @@ properties = {
},
'allow_sgid': {'type': 'boolean'},
'binary_index_root': {'type': 'string'},
+ 'url_fetch_method': {
+ 'type': 'string',
+ 'enum': ['urllib', 'curl']
+ },
},
},
}
@@ -150,4 +157,10 @@ def update(data):
update_data = spack.config.merge_yaml(update_data, projections_data)
data['install_tree'] = update_data
changed = True
+
+ use_curl = data.pop('use_curl', None)
+ if use_curl is not None:
+ data['url_fetch_method'] = 'curl' if use_curl else 'urllib'
+ changed = True
+
return changed
diff --git a/lib/spack/spack/schema/container.py b/lib/spack/spack/schema/container.py
index b9ee1dd538..5223efa041 100644
--- a/lib/spack/spack/schema/container.py
+++ b/lib/spack/spack/schema/container.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,8 @@ _stages_from_dockerhub = {
'type': 'string',
'enum': ['ubuntu:18.04',
'ubuntu:16.04',
- 'centos:7']
+ 'centos:7',
+ 'centos:6']
},
'spack': {
'type': 'string',
diff --git a/lib/spack/spack/schema/database_index.py b/lib/spack/spack/schema/database_index.py
index eec3d4ce02..105f6ad6a3 100644
--- a/lib/spack/spack/schema/database_index.py
+++ b/lib/spack/spack/schema/database_index.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/schema/env.py b/lib/spack/spack/schema/env.py
index a7e3dc608f..de6a5d9568 100644
--- a/lib/spack/spack/schema/env.py
+++ b/lib/spack/spack/schema/env.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -126,6 +126,9 @@ schema = {
'type': 'string',
'pattern': '(roots|all)',
},
+ 'link_type': {
+ 'type': 'string'
+ },
'select': {
'type': 'array',
'items': {
diff --git a/lib/spack/spack/schema/environment.py b/lib/spack/spack/schema/environment.py
index d251aeba96..3e1c0b3c3f 100644
--- a/lib/spack/spack/schema/environment.py
+++ b/lib/spack/spack/schema/environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -38,11 +38,13 @@ def parse(config_obj):
config_obj: a configuration dictionary conforming to the
schema definition for environment modifications
"""
+ import sys
+
import spack.util.environment as ev
- try:
- from collections import Sequence # novm
- except ImportError:
+ if sys.version_info >= (3, 5):
from collections.abc import Sequence # novm
+ else:
+ from collections import Sequence # novm
env = ev.EnvironmentModifications()
for command, variable in config_obj.items():
diff --git a/lib/spack/spack/schema/gitlab_ci.py b/lib/spack/spack/schema/gitlab_ci.py
index 79ffee2074..d6d8f564a3 100644
--- a/lib/spack/spack/schema/gitlab_ci.py
+++ b/lib/spack/spack/schema/gitlab_ci.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,6 +9,8 @@
:lines: 13-
"""
+from llnl.util.lang import union_dicts
+
image_schema = {
'oneOf': [
{
@@ -28,130 +30,126 @@ image_schema = {
],
}
-#: Properties for inclusion in other schemas
-properties = {
- 'gitlab-ci': {
+runner_attributes_schema_items = {
+ 'image': image_schema,
+ 'tags': {
+ 'type': 'array',
+ 'items': {'type': 'string'}
+ },
+ 'variables': {
'type': 'object',
- 'additionalProperties': False,
- 'required': ['mappings'],
'patternProperties': {
- 'bootstrap': {
- 'type': 'array',
- 'items': {
- 'anyOf': [
- {
- 'type': 'string',
- }, {
- 'type': 'object',
- 'additionalProperties': False,
- 'required': ['name'],
- 'properties': {
- 'name': {
- 'type': 'string',
- },
- 'compiler-agnostic': {
- 'type': 'boolean',
- 'default': False,
- },
- },
- },
- ],
- },
+ r'[\w\d\-_\.]+': {
+ 'type': 'string',
},
- 'mappings': {
- 'type': 'array',
- 'items': {
- 'type': 'object',
- 'additionalProperties': False,
- 'required': ['match'],
- 'properties': {
- 'match': {
- 'type': 'array',
- 'items': {
+ },
+ },
+ 'before_script': {
+ 'type': 'array',
+ 'items': {'type': 'string'}
+ },
+ 'script': {
+ 'type': 'array',
+ 'items': {'type': 'string'}
+ },
+ 'after_script': {
+ 'type': 'array',
+ 'items': {'type': 'string'}
+ },
+}
+
+runner_selector_schema = {
+ 'type': 'object',
+ 'additionalProperties': False,
+ 'required': ['tags'],
+ 'properties': runner_attributes_schema_items,
+}
+
+
+core_shared_properties = union_dicts(
+ runner_attributes_schema_items,
+ {
+ 'bootstrap': {
+ 'type': 'array',
+ 'items': {
+ 'anyOf': [
+ {
+ 'type': 'string',
+ }, {
+ 'type': 'object',
+ 'additionalProperties': False,
+ 'required': ['name'],
+ 'properties': {
+ 'name': {
'type': 'string',
},
- },
- 'runner-attributes': {
- 'type': 'object',
- 'additionalProperties': True,
- 'required': ['tags'],
- 'properties': {
- 'image': image_schema,
- 'tags': {
- 'type': 'array',
- 'items': {'type': 'string'}
- },
- 'variables': {
- 'type': 'object',
- 'patternProperties': {
- r'[\w\d\-_\.]+': {
- 'type': 'string',
- },
- },
- },
- 'before_script': {
- 'type': 'array',
- 'items': {'type': 'string'}
- },
- 'script': {
- 'type': 'array',
- 'items': {'type': 'string'}
- },
- 'after_script': {
- 'type': 'array',
- 'items': {'type': 'string'}
- },
+ 'compiler-agnostic': {
+ 'type': 'boolean',
+ 'default': False,
},
},
},
- },
+ ],
},
- 'image': image_schema,
- 'tags': {
- 'type': 'array',
- 'items': {'type': 'string'}
- },
- 'variables': {
- 'type': 'object',
- 'patternProperties': {
- r'[\w\d\-_\.]+': {
- 'type': 'string',
- },
- },
- },
- 'before_script': {
- 'type': 'array',
- 'items': {'type': 'string'}
- },
- 'script': {
- 'type': 'array',
- 'items': {'type': 'string'}
- },
- 'after_script': {
- 'type': 'array',
- 'items': {'type': 'string'}
- },
- 'enable-artifacts-buildcache': {
- 'type': 'boolean',
- 'default': False,
- },
- 'final-stage-rebuild-index': {
+ },
+ 'mappings': {
+ 'type': 'array',
+ 'items': {
'type': 'object',
'additionalProperties': False,
- 'required': ['tags'],
+ 'required': ['match'],
'properties': {
- 'image': image_schema,
- 'tags': {
+ 'match': {
'type': 'array',
- 'default': [],
- 'items': {'type': 'string'}
+ 'items': {
+ 'type': 'string',
+ },
},
+ 'runner-attributes': runner_selector_schema,
},
},
},
+ 'service-job-attributes': runner_selector_schema,
+ 'rebuild-index': {'type': 'boolean'},
+ 'broken-specs-url': {'type': 'string'},
},
+)
+
+gitlab_ci_properties = {
+ 'anyOf': [
+ {
+ 'type': 'object',
+ 'additionalProperties': False,
+ 'required': ['mappings'],
+ 'properties': union_dicts(
+ core_shared_properties,
+ {
+ 'enable-artifacts-buildcache': {
+ 'type': 'boolean',
+ },
+ },
+ ),
+ },
+ {
+ 'type': 'object',
+ 'additionalProperties': False,
+ 'required': ['mappings'],
+ 'properties': union_dicts(
+ core_shared_properties,
+ {
+ 'temporary-storage-url-prefix': {
+ 'type': 'string',
+ },
+ },
+ ),
+ },
+ ]
}
+#: Properties for inclusion in other schemas
+properties = {
+ 'gitlab-ci': gitlab_ci_properties,
+}
#: Full schema with metadata
schema = {
diff --git a/lib/spack/spack/schema/merged.py b/lib/spack/spack/schema/merged.py
index e118acf286..11db4f78df 100644
--- a/lib/spack/spack/schema/merged.py
+++ b/lib/spack/spack/schema/merged.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,7 @@
"""
from llnl.util.lang import union_dicts
+import spack.schema.bootstrap
import spack.schema.cdash
import spack.schema.compilers
import spack.schema.config
@@ -21,9 +22,9 @@ import spack.schema.packages
import spack.schema.repos
import spack.schema.upstreams
-
#: Properties for inclusion in other schemas
properties = union_dicts(
+ spack.schema.bootstrap.properties,
spack.schema.cdash.properties,
spack.schema.compilers.properties,
spack.schema.config.properties,
diff --git a/lib/spack/spack/schema/mirrors.py b/lib/spack/spack/schema/mirrors.py
index 5bb641df05..6dec5aac97 100644
--- a/lib/spack/spack/schema/mirrors.py
+++ b/lib/spack/spack/schema/mirrors.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/schema/modules.py b/lib/spack/spack/schema/modules.py
index f44ba7d97d..07a495af13 100644
--- a/lib/spack/spack/schema/modules.py
+++ b/lib/spack/spack/schema/modules.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,6 +20,10 @@ spec_regex = r'(?!hierarchy|core_specs|verbose|hash_length|whitelist|' \
r'blacklist|projections|naming_scheme|core_compilers|all)' \
r'(^\w[\w-]*)'
+#: Matches a valid name for a module set
+# Banned names are valid entries at that level in the previous schema
+set_regex = r'(?!enable|lmod|tcl|dotkit|prefix_inspections)^\w[\w-]*'
+
#: Matches an anonymous spec, i.e. a spec without a root name
anonymous_spec_regex = r'^[\^@%+~]'
@@ -112,74 +116,105 @@ module_type_configuration = {
}
-# Properties for inclusion into other schemas (requires definitions)
-properties = {
- 'modules': {
+#: The "real" module properties -- the actual configuration parameters.
+#: They are separate from ``properties`` because they can appear both
+#: at the top level of a Spack ``modules:`` config (old, deprecated format),
+#: and within a named module set (new format with multiple module sets).
+module_config_properties = {
+ 'use_view': {'anyOf': [
+ {'type': 'string'},
+ {'type': 'boolean'}
+ ]},
+ 'prefix_inspections': {
'type': 'object',
- 'default': {},
'additionalProperties': False,
+ 'patternProperties': {
+ # prefix-relative path to be inspected for existence
+ r'^[\w-]*': array_of_strings
+ }
+ },
+ 'roots': {
+ 'type': 'object',
'properties': {
- 'prefix_inspections': {
+ 'tcl': {'type': 'string'},
+ 'lmod': {'type': 'string'},
+ },
+ },
+ 'enable': {
+ 'type': 'array',
+ 'default': [],
+ 'items': {
+ 'type': 'string',
+ 'enum': ['tcl', 'dotkit', 'lmod']
+ },
+ 'deprecatedProperties': {
+ 'properties': ['dotkit'],
+ 'message': 'cannot enable "dotkit" in modules.yaml '
+ '[support for "dotkit" has been dropped '
+ 'in v0.13.0]',
+ 'error': False
+ },
+ },
+ 'lmod': {
+ 'allOf': [
+ # Base configuration
+ module_type_configuration,
+ {
'type': 'object',
- 'patternProperties': {
- # prefix-relative path to be inspected for existence
- r'\w[\w-]*': array_of_strings
- }
- },
- 'enable': {
- 'type': 'array',
- 'default': [],
- 'items': {
- 'type': 'string',
- 'enum': ['tcl', 'dotkit', 'lmod']
+ 'properties': {
+ 'core_compilers': array_of_strings,
+ 'hierarchy': array_of_strings,
+ 'core_specs': array_of_strings,
},
+ } # Specific lmod extensions
+ ]
+ },
+ 'tcl': {
+ 'allOf': [
+ # Base configuration
+ module_type_configuration,
+ {} # Specific tcl extensions
+ ]
+ },
+ 'dotkit': {
+ 'allOf': [
+ # Base configuration
+ module_type_configuration,
+ {} # Specific dotkit extensions
+ ]
+ },
+}
+
+
+# Properties for inclusion into other schemas (requires definitions)
+properties = {
+ 'modules': {
+ 'type': 'object',
+ 'patternProperties': {
+ set_regex: {
+ 'type': 'object',
+ 'default': {},
+ 'additionalProperties': False,
+ 'properties': module_config_properties,
'deprecatedProperties': {
'properties': ['dotkit'],
- 'message': 'cannot enable "dotkit" in modules.yaml '
- '[support for "dotkit" has been dropped '
- 'in v0.13.0]',
+ 'message': 'the "dotkit" section in modules.yaml has no effect'
+ ' [support for "dotkit" has been dropped in v0.13.0]',
'error': False
- },
- },
- 'lmod': {
- 'allOf': [
- # Base configuration
- module_type_configuration,
- {
- 'type': 'object',
- 'properties': {
- 'core_compilers': array_of_strings,
- 'hierarchy': array_of_strings,
- 'core_specs': array_of_strings,
- },
- } # Specific lmod extensions
- ]
- },
- 'tcl': {
- 'allOf': [
- # Base configuration
- module_type_configuration,
- {} # Specific tcl extensions
- ]
- },
- 'dotkit': {
- 'allOf': [
- # Base configuration
- module_type_configuration,
- {} # Specific dotkit extensions
- ]
+ }
},
},
+ # Available here for backwards compatibility
+ 'properties': module_config_properties,
'deprecatedProperties': {
'properties': ['dotkit'],
'message': 'the "dotkit" section in modules.yaml has no effect'
- ' [support for "dotkit" has been dropped in v0.13.0]',
+ ' [support for "dotkit" has been dropped in v0.13.0]',
'error': False
- },
- },
+ }
+ }
}
-
#: Full schema with metadata
schema = {
'$schema': 'http://json-schema.org/schema#',
diff --git a/lib/spack/spack/schema/packages.py b/lib/spack/spack/schema/packages.py
index f2626c83be..86aabc6649 100644
--- a/lib/spack/spack/schema/packages.py
+++ b/lib/spack/spack/schema/packages.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,8 +22,11 @@ def deprecate_paths_and_modules(instance, deprecated_properties):
"""
import copy
import os.path
+
import llnl.util.tty
+
import spack.util.spack_yaml as syaml
+
# Copy the instance to remove default attributes that are not related
# to the part that needs to be reported
instance_copy = copy.copy(instance)
diff --git a/lib/spack/spack/schema/projections.py b/lib/spack/spack/schema/projections.py
index bd0693f30e..cab512fe3b 100644
--- a/lib/spack/spack/schema/projections.py
+++ b/lib/spack/spack/schema/projections.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/schema/repos.py b/lib/spack/spack/schema/repos.py
index 6aa9bcf57e..44cf688a48 100644
--- a/lib/spack/spack/schema/repos.py
+++ b/lib/spack/spack/schema/repos.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/schema/spec.py b/lib/spack/spack/schema/spec.py
index e2c8efad4c..3dd84553f7 100644
--- a/lib/spack/spack/schema/spec.py
+++ b/lib/spack/spack/schema/spec.py
@@ -1,9 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-"""Schema for a spec found in spec.yaml or database index.json files
+"""Schema for a spec found in spec descriptor or database index.json files
+
+TODO: This needs to be updated? Especially the hashes under properties.
.. literalinclude:: _spack_root/lib/spack/spack/schema/spec.py
:lines: 13-
@@ -67,95 +69,127 @@ dependencies = {
},
}
+build_spec = {
+ 'type': 'object',
+ 'additionalProperties': False,
+ 'required': ['name', 'hash'],
+ 'properties': {
+ 'name': {'type': 'string'},
+ 'hash': {'type': 'string'}
+ }
+}
+
#: Properties for inclusion in other schemas
properties = {
- r'\w[\w-]*': { # package name
+ 'spec': {
'type': 'object',
'additionalProperties': False,
'required': [
- 'version',
- 'arch',
- 'compiler',
- 'namespace',
- 'parameters',
+ '_meta',
+ 'nodes'
],
'properties': {
- 'hash': {'type': 'string'},
- 'full_hash': {'type': 'string'},
- 'version': {
- 'oneOf': [
- {'type': 'string'},
- {'type': 'number'},
- ],
- },
- 'arch': arch,
- 'compiler': {
+ '_meta': {
'type': 'object',
- 'additionalProperties': False,
'properties': {
- 'name': {'type': 'string'},
- 'version': {'type': 'string'},
- },
- },
- 'develop': {
- 'anyOf': [
- {'type': 'boolean'},
- {'type': 'string'},
- ],
+ 'version': {'type': 'number'}
+ }
},
- 'namespace': {'type': 'string'},
- 'parameters': {
- 'type': 'object',
- 'required': [
- 'cflags',
- 'cppflags',
- 'cxxflags',
- 'fflags',
- 'ldflags',
- 'ldlibs',
- ],
- 'additionalProperties': True,
- 'properties': {
- 'patches': {
- 'type': 'array',
- 'items': {'type': 'string'},
- },
- 'cflags': {
- 'type': 'array',
- 'items': {'type': 'string'},
- },
- 'cppflags': {
- 'type': 'array',
- 'items': {'type': 'string'},
- },
- 'cxxflags': {
- 'type': 'array',
- 'items': {'type': 'string'},
- },
- 'fflags': {
- 'type': 'array',
- 'items': {'type': 'string'},
- },
- 'ldflags': {
- 'type': 'array',
- 'items': {'type': 'string'},
- },
- 'ldlib': {
- 'type': 'array',
- 'items': {'type': 'string'},
- },
- },
- },
- 'patches': {
+ 'nodes': {
'type': 'array',
- 'items': {},
- },
- 'dependencies': dependencies,
- },
- },
+ 'items': {
+ 'type': 'object',
+ 'additionalProperties': False,
+ 'required': [
+ 'version',
+ 'arch',
+ 'compiler',
+ 'namespace',
+ 'parameters',
+ ],
+ 'properties': {
+ 'name': {'type': 'string'},
+ 'hash': {'type': 'string'},
+ 'full_hash': {'type': 'string'},
+ 'build_hash': {'type': 'string'},
+ 'package_hash': {'type': 'string'},
+ 'version': {
+ 'oneOf': [
+ {'type': 'string'},
+ {'type': 'number'},
+ ],
+ },
+ 'arch': arch,
+ 'compiler': {
+ 'type': 'object',
+ 'additionalProperties': False,
+ 'properties': {
+ 'name': {'type': 'string'},
+ 'version': {'type': 'string'},
+ },
+ },
+ 'develop': {
+ 'anyOf': [
+ {'type': 'boolean'},
+ {'type': 'string'},
+ ],
+ },
+ 'namespace': {'type': 'string'},
+ 'parameters': {
+ 'type': 'object',
+ 'required': [
+ 'cflags',
+ 'cppflags',
+ 'cxxflags',
+ 'fflags',
+ 'ldflags',
+ 'ldlibs',
+ ],
+ 'additionalProperties': True,
+ 'properties': {
+ 'patches': {
+ 'type': 'array',
+ 'items': {'type': 'string'},
+ },
+ 'cflags': {
+ 'type': 'array',
+ 'items': {'type': 'string'},
+ },
+ 'cppflags': {
+ 'type': 'array',
+ 'items': {'type': 'string'},
+ },
+ 'cxxflags': {
+ 'type': 'array',
+ 'items': {'type': 'string'},
+ },
+ 'fflags': {
+ 'type': 'array',
+ 'items': {'type': 'string'},
+ },
+ 'ldflags': {
+ 'type': 'array',
+ 'items': {'type': 'string'},
+ },
+ 'ldlib': {
+ 'type': 'array',
+ 'items': {'type': 'string'},
+ },
+ },
+ },
+ 'patches': {
+ 'type': 'array',
+ 'items': {},
+ },
+ 'dependencies': dependencies,
+ 'build_spec': build_spec,
+ },
+ }
+ }
+ }
+ }
}
-
#: Full schema with metadata
schema = {
'$schema': 'http://json-schema.org/schema#',
diff --git a/lib/spack/spack/schema/upstreams.py b/lib/spack/spack/schema/upstreams.py
index f5192aa096..7d721332eb 100644
--- a/lib/spack/spack/schema/upstreams.py
+++ b/lib/spack/spack/schema/upstreams.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/solver/__init__.py b/lib/spack/spack/solver/__init__.py
index 94f8ac4d9e..103eae6134 100644
--- a/lib/spack/spack/solver/__init__.py
+++ b/lib/spack/spack/solver/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py
index dbfca6506d..790e545878 100644
--- a/lib/spack/spack/solver/asp.py
+++ b/lib/spack/spack/solver/asp.py
@@ -10,19 +10,20 @@ import itertools
import os
import pprint
import sys
-import time
import types
import warnings
+
from six import string_types
import archspec.cpu
try:
import clingo
+
# There may be a better way to detect this
clingo_cffi = hasattr(clingo.Symbol, '_rep')
except ImportError:
- clingo = None
+ clingo = None # type: ignore
clingo_cffi = False
import llnl.util.lang
@@ -30,46 +31,46 @@ import llnl.util.tty as tty
import spack
import spack.architecture
+import spack.bootstrap
import spack.cmd
import spack.compilers
import spack.config
import spack.dependency
import spack.directives
+import spack.environment as ev
import spack.error
-import spack.spec
import spack.package
import spack.package_prefs
import spack.repo
-import spack.bootstrap
+import spack.spec
+import spack.util.timer
import spack.variant
import spack.version
-
if sys.version_info >= (3, 3):
from collections.abc import Sequence # novm
else:
from collections import Sequence
-class Timer(object):
- """Simple timer for timing phases of a solve"""
- def __init__(self):
- self.start = time.time()
- self.last = self.start
- self.phases = {}
+#: Enumeration like object to mark version provenance
+version_provenance = collections.namedtuple( # type: ignore
+ 'VersionProvenance', ['external', 'packages_yaml', 'package_py', 'spec']
+)(spec=0, external=1, packages_yaml=2, package_py=3)
- def phase(self, name):
- last = self.last
- now = time.time()
- self.phases[name] = now - last
- self.last = now
+#: String representation of version origins, to emit legible
+# facts for the ASP solver
+version_origin_str = {
+ 0: 'spec',
+ 1: 'external',
+ 2: 'packages_yaml',
+ 3: 'package_py'
+}
- def write(self, out=sys.stdout):
- now = time.time()
- out.write("Time:\n")
- for phase, t in self.phases.items():
- out.write(" %-15s%.4f\n" % (phase + ":", t))
- out.write("Total: %.4f\n" % (now - self.start))
+#: Named tuple to contain information on declared versions
+DeclaredVersion = collections.namedtuple(
+ 'DeclaredVersion', ['version', 'idx', 'origin']
+)
def issequence(obj):
@@ -113,10 +114,14 @@ def _id(thing):
return '"%s"' % str(thing)
+@llnl.util.lang.key_ordering
class AspFunction(AspObject):
def __init__(self, name, args=None):
self.name = name
- self.args = [] if args is None else args
+ self.args = () if args is None else args
+
+ def _cmp_key(self):
+ return (self.name, self.args)
def __call__(self, *args):
return AspFunction(self.name, args)
@@ -132,10 +137,6 @@ class AspFunction(AspObject):
return clingo.Function(
self.name, [argify(arg) for arg in self.args], positive=positive)
- def __getitem___(self, *args):
- self.args[:] = args
- return self
-
def __str__(self):
return "%s(%s)" % (
self.name, ', '.join(str(_id(arg)) for arg in self.args))
@@ -197,7 +198,7 @@ def check_packages_exist(specs):
class Result(object):
"""Result of an ASP solve."""
- def __init__(self, asp=None):
+ def __init__(self, specs, asp=None):
self.asp = asp
self.satisfiable = None
self.optimal = None
@@ -208,12 +209,48 @@ class Result(object):
self.answers = []
self.cores = []
+ # names of optimization criteria
+ self.criteria = []
+
+ # Abstract user requests
+ self.abstract_specs = specs
+
+ # Concrete specs
+ self._concrete_specs = None
+
def print_cores(self):
for core in self.cores:
tty.msg(
"The following constraints are unsatisfiable:",
*sorted(str(symbol) for symbol in core))
+ @property
+ def specs(self):
+ """List of concretized specs satisfying the initial
+ abstract request.
+ """
+ # The specs were already computed, return them
+ if self._concrete_specs:
+ return self._concrete_specs
+
+ # Assert prerequisite
+ msg = 'cannot compute specs ["satisfiable" is not True ]'
+ assert self.satisfiable, msg
+
+ self._concrete_specs = []
+ best = min(self.answers)
+ opt, _, answer = best
+ for input_spec in self.abstract_specs:
+ key = input_spec.name
+ if input_spec.virtual:
+ providers = [spec.name for spec in answer.values()
+ if spec.package.provides(key)]
+ key = providers[0]
+
+ self._concrete_specs.append(answer[key])
+
+ return self._concrete_specs
+
def _normalize_packages_yaml(packages_yaml):
normalized_yaml = copy.copy(packages_yaml)
@@ -251,14 +288,8 @@ class PyclingoDriver(object):
"""
global clingo
if not clingo:
- # TODO: Find a way to vendor the concrete spec
- # in a cross-platform way
with spack.bootstrap.ensure_bootstrap_configuration():
- clingo_spec = spack.bootstrap.clingo_root_spec()
- clingo_spec._old_concretize()
- spack.bootstrap.make_module_available(
- 'clingo', spec=clingo_spec, install=True
- )
+ spack.bootstrap.ensure_clingo_importable_or_raise()
import clingo
self.out = asp or llnl.util.lang.Devnull()
self.cores = cores
@@ -295,7 +326,7 @@ class PyclingoDriver(object):
self, solver_setup, specs, dump=None, nmodels=0,
timers=False, stats=False, tests=False
):
- timer = Timer()
+ timer = spack.util.timer.Timer()
# Initialize the control object for the solver
self.control = clingo.Control()
@@ -326,7 +357,7 @@ class PyclingoDriver(object):
timer.phase("ground")
# With a grounded program, we can run the solve.
- result = Result()
+ result = Result(specs)
models = [] # stable models if things go well
cores = [] # unsatisfiable cores if they do not
@@ -355,6 +386,7 @@ class PyclingoDriver(object):
return x.string or str(x)
if result.satisfiable:
+ # build spec from the best model
builder = SpecBuilder(specs)
min_cost, best_model = min(models)
tuples = [
@@ -362,8 +394,20 @@ class PyclingoDriver(object):
for sym in best_model
]
answers = builder.build_specs(tuples)
+
+ # add best spec to the results
result.answers.append((list(min_cost), 0, answers))
+ # pull optimization criteria names out of the solution
+ criteria = [
+ (int(args[0]), args[1]) for name, args in tuples
+ if name == "opt_criterion"
+ ]
+ result.criteria = [t[1] for t in sorted(criteria, reverse=True)]
+
+ # record the number of models the solver considered
+ result.nmodels = len(models)
+
elif cores:
symbols = dict(
(a.literal, a.symbol)
@@ -379,7 +423,7 @@ class PyclingoDriver(object):
result.cores.append(core_symbols)
if timers:
- timer.write()
+ timer.write_tty()
print()
if stats:
print("Statistics:")
@@ -393,9 +437,11 @@ class SpackSolverSetup(object):
def __init__(self):
self.gen = None # set by setup()
+
+ self.declared_versions = {}
self.possible_versions = {}
- self.versions_in_package_py = {}
- self.versions_from_externals = {}
+ self.deprecated_versions = {}
+
self.possible_virtuals = None
self.possible_compilers = []
self.variant_values_from_specs = set()
@@ -416,54 +462,28 @@ class SpackSolverSetup(object):
This uses self.possible_versions so that we include any versions
that arise from a spec.
"""
+ def key_fn(version):
+ # Origins are sorted by order of importance:
+ # 1. Spec from command line
+ # 2. Externals
+ # 3. Package preferences
+ # 4. Directives in package.py
+ return version.origin, version.idx
+
pkg = packagize(pkg)
+ declared_versions = self.declared_versions[pkg.name]
+ most_to_least_preferred = sorted(declared_versions, key=key_fn)
- config = spack.config.get("packages")
- version_prefs = config.get(pkg.name, {}).get("version", {})
- priority = dict((v, i) for i, v in enumerate(version_prefs))
-
- # The keys below show the order of precedence of factors used
- # to select a version when concretizing. The item with
- # the "largest" key will be selected.
- #
- # NOTE: When COMPARING VERSIONS, the '@develop' version is always
- # larger than other versions. BUT when CONCRETIZING,
- # the largest NON-develop version is selected by default.
- keyfn = lambda v: (
- # ------- Special direction from the user
- # Respect order listed in packages.yaml
- -priority.get(v, 0),
-
- # The preferred=True flag (packages or packages.yaml or both?)
- pkg.versions.get(v, {}).get('preferred', False),
-
- # ------- Regular case: use latest non-develop version by default.
- # Avoid @develop version, which would otherwise be the "largest"
- # in straight version comparisons
- not v.isdevelop(),
-
- # Compare the version itself
- # This includes the logic:
- # a) develop > everything (disabled by "not v.isdevelop() above)
- # b) numeric > non-numeric
- # c) Numeric or string comparison
- v)
-
- # Compute which versions appear only in packages.yaml
- from_externals = self.versions_from_externals[pkg.name]
- from_package_py = self.versions_in_package_py[pkg.name]
- only_from_externals = from_externals - from_package_py
-
- # These versions don't need a default weight, as they are
- # already weighted in a more favorable way when accounting
- # for externals. Assigning them a default weight would be
- # equivalent to state that they are also declared in
- # the package.py file
- considered = self.possible_versions[pkg.name] - only_from_externals
- most_to_least_preferred = sorted(considered, key=keyfn, reverse=True)
-
- for i, v in enumerate(most_to_least_preferred):
- self.gen.fact(fn.version_declared(pkg.name, v, i))
+ for weight, declared_version in enumerate(most_to_least_preferred):
+ self.gen.fact(fn.version_declared(
+ pkg.name, declared_version.version, weight,
+ version_origin_str[declared_version.origin]
+ ))
+
+ # Declare deprecated versions for this package, if any
+ deprecated = self.deprecated_versions[pkg.name]
+ for v in sorted(deprecated):
+ self.gen.fact(fn.deprecated_version(pkg.name, v))
def spec_versions(self, spec):
"""Return list of clauses expressing spec's version constraints."""
@@ -492,9 +512,7 @@ class SpackSolverSetup(object):
def conflict_rules(self, pkg):
for trigger, constraints in pkg.conflicts.items():
- trigger_id = self.condition(
- spack.spec.Spec(trigger), name=pkg.name
- )
+ trigger_id = self.condition(spack.spec.Spec(trigger), name=pkg.name)
self.gen.fact(fn.conflict_trigger(trigger_id))
for constraint, _ in constraints:
@@ -646,14 +664,14 @@ class SpackSolverSetup(object):
"""Generate facts for a dependency or virtual provider condition.
Arguments:
- required_spec (Spec): the spec that triggers this condition
- imposed_spec (optional, Spec): the sepc with constraints that
+ required_spec (spack.spec.Spec): the spec that triggers this condition
+ imposed_spec (spack.spec.Spec or None): the sepc with constraints that
are imposed when this condition is triggered
- name (optional, str): name for `required_spec` (required if
+ name (str or None): name for `required_spec` (required if
required_spec is anonymous, ignored if not)
Returns:
- (int): id of the condition created by this function
+ int: id of the condition created by this function
"""
named_cond = required_spec.copy()
named_cond.name = named_cond.name or name
@@ -733,7 +751,8 @@ class SpackSolverSetup(object):
continue
for i, provider in enumerate(providers):
- func(vspec, provider, i + 10)
+ provider_name = spack.spec.Spec(provider).name
+ func(vspec, provider_name, i)
def provider_defaults(self):
self.gen.h2("Default virtual providers")
@@ -772,20 +791,22 @@ class SpackSolverSetup(object):
externals = data.get('externals', [])
external_specs = [spack.spec.Spec(x['spec']) for x in externals]
- # Compute versions with appropriate weights. This accounts for the
- # fact that we should prefer more recent versions, but specs in
- # packages.yaml may not be ordered in that sense.
+ # Order the external versions to prefer more recent versions
+ # even if specs in packages.yaml are not ordered that way
external_versions = [
- (x.version, local_idx)
- for local_idx, x in enumerate(external_specs)
+ (x.version, external_id)
+ for external_id, x in enumerate(external_specs)
]
external_versions = [
- (v, -(w + 1), local_idx)
- for w, (v, local_idx) in enumerate(sorted(external_versions))
+ (v, idx, external_id)
+ for idx, (v, external_id) in
+ enumerate(sorted(external_versions, reverse=True))
]
- for version, weight, id in external_versions:
- self.gen.fact(fn.external_version_declared(
- pkg_name, str(version), weight, id
+ for version, idx, external_id in external_versions:
+ self.declared_versions[pkg_name].append(DeclaredVersion(
+ version=version,
+ idx=idx,
+ origin=version_provenance.external
))
# Declare external conditions with a local index into packages.yaml
@@ -794,7 +815,6 @@ class SpackSolverSetup(object):
self.gen.fact(
fn.possible_external(condition_id, pkg_name, local_idx)
)
- self.versions_from_externals[spec.name].add(spec.version)
self.possible_versions[spec.name].add(spec.version)
self.gen.newline()
@@ -843,17 +863,6 @@ class SpackSolverSetup(object):
str(preferred.architecture.target), pkg_name, -30
))
- def preferred_versions(self, pkg_name):
- packages_yaml = spack.config.get('packages')
- versions = packages_yaml.get(pkg_name, {}).get('version', [])
- if not versions:
- return
-
- for idx, version in enumerate(reversed(versions)):
- self.gen.fact(
- fn.preferred_version_declared(pkg_name, version, -(idx + 1))
- )
-
def flag_defaults(self):
self.gen.h2("Compiler flag defaults")
@@ -888,7 +897,7 @@ class SpackSolverSetup(object):
"""Return a list of clauses for a spec mandates are true.
Arguments:
- spec (Spec): the spec to analyze
+ spec (spack.spec.Spec): the spec to analyze
body (bool): if True, generate clauses to be used in rule bodies
(final values) instead of rule heads (setters).
transitive (bool): if False, don't generate clauses from
@@ -950,16 +959,17 @@ class SpackSolverSetup(object):
if value == '*':
continue
- # validate variant value
- reserved_names = spack.directives.reserved_names
- if not spec.virtual and vname not in reserved_names:
- try:
- variant_def = spec.package.variants[vname]
- except KeyError:
- msg = 'variant "{0}" not found in package "{1}"'
- raise RuntimeError(msg.format(vname, spec.name))
- else:
- variant_def.validate_or_raise(variant, spec.package)
+ # validate variant value only if spec not concrete
+ if not spec.concrete:
+ reserved_names = spack.directives.reserved_names
+ if not spec.virtual and vname not in reserved_names:
+ try:
+ variant_def = spec.package.variants[vname]
+ except KeyError:
+ msg = 'variant "{0}" not found in package "{1}"'
+ raise RuntimeError(msg.format(vname, spec.name))
+ else:
+ variant_def.validate_or_raise(variant, spec.package)
clauses.append(f.variant_value(spec.name, vname, value))
@@ -1002,19 +1012,56 @@ class SpackSolverSetup(object):
def build_version_dict(self, possible_pkgs, specs):
"""Declare any versions in specs not declared in packages."""
+ self.declared_versions = collections.defaultdict(list)
self.possible_versions = collections.defaultdict(set)
- self.versions_in_package_py = collections.defaultdict(set)
- self.versions_from_externals = collections.defaultdict(set)
+ self.deprecated_versions = collections.defaultdict(set)
+ packages_yaml = spack.config.get("packages")
+ packages_yaml = _normalize_packages_yaml(packages_yaml)
for pkg_name in possible_pkgs:
pkg = spack.repo.get(pkg_name)
- for v in pkg.versions:
- self.versions_in_package_py[pkg_name].add(v)
+
+ # All the versions from the corresponding package.py file. Since concepts
+ # like being a "develop" version or being preferred exist only at a
+ # package.py level, sort them in this partial list here
+ def key_fn(item):
+ version, info = item
+ # When COMPARING VERSIONS, the '@develop' version is always
+ # larger than other versions. BUT when CONCRETIZING, the largest
+ # NON-develop version is selected by default.
+ return info.get('preferred', False), not version.isdevelop(), version
+
+ for idx, item in enumerate(sorted(
+ pkg.versions.items(), key=key_fn, reverse=True
+ )):
+ v, version_info = item
self.possible_versions[pkg_name].add(v)
+ self.declared_versions[pkg_name].append(DeclaredVersion(
+ version=v, idx=idx, origin=version_provenance.package_py
+ ))
+ deprecated = version_info.get('deprecated', False)
+ if deprecated:
+ self.deprecated_versions[pkg_name].add(v)
+
+ # All the preferred version from packages.yaml, versions in external
+ # specs will be computed later
+ version_preferences = packages_yaml.get(pkg_name, {}).get("version", [])
+ for idx, v in enumerate(version_preferences):
+ self.declared_versions[pkg_name].append(DeclaredVersion(
+ version=v, idx=idx, origin=version_provenance.packages_yaml
+ ))
for spec in specs:
for dep in spec.traverse():
if dep.versions.concrete:
+ # Concrete versions used in abstract specs from cli. They
+ # all have idx equal to 0, which is the best possible. In
+ # any case they will be used due to being set from the cli.
+ self.declared_versions[dep.name].append(DeclaredVersion(
+ version=dep.version,
+ idx=0,
+ origin=version_provenance.spec
+ ))
self.possible_versions[dep.name].add(dep.version)
def _supported_targets(self, compiler_name, compiler_version, targets):
@@ -1310,7 +1357,6 @@ class SpackSolverSetup(object):
Arguments:
specs (list): list of Specs to solve
-
"""
self._condition_id_counter = itertools.count()
@@ -1360,10 +1406,9 @@ class SpackSolverSetup(object):
self.gen.h2('Package preferences: %s' % pkg)
self.preferred_variants(pkg)
self.preferred_targets(pkg)
- self.preferred_versions(pkg)
# Inject dev_path from environment
- env = spack.environment.get_env(None, None)
+ env = ev.active_environment()
if env:
for spec in sorted(specs):
for dep in spec.traverse():
@@ -1378,7 +1423,10 @@ class SpackSolverSetup(object):
)
for clause in self.spec_clauses(spec):
self.gen.fact(clause)
-
+ if clause.name == 'variant_set':
+ self.gen.fact(fn.variant_default_value_from_cli(
+ *clause.args
+ ))
self.gen.h1("Variant Values defined in specs")
self.define_variant_values()
@@ -1535,6 +1583,10 @@ class SpecBuilder(object):
check_same_flags(spec.compiler_flags, flags)
spec.compiler_flags.update(flags)
+ def deprecated(self, pkg, version):
+ msg = 'using "{0}@{1}" which is a deprecated version'
+ tty.warn(msg.format(pkg, version))
+
def build_specs(self, function_tuples):
# Functions don't seem to be in particular order in output. Sort
# them here so that directives that build objects (like node and
@@ -1585,9 +1637,8 @@ class SpecBuilder(object):
for s in self._specs.values():
spack.spec.Spec.ensure_external_path_if_external(s)
- env = spack.environment.get_env(None, None)
for s in self._specs.values():
- _develop_specs_from_env(s, env)
+ _develop_specs_from_env(s, ev.active_environment())
for s in self._specs.values():
s._mark_concrete()
@@ -1603,8 +1654,7 @@ def _develop_specs_from_env(spec, env):
if not dev_info:
return
- path = dev_info['path']
- path = path if os.path.isabs(path) else os.path.join(env.path, path)
+ path = os.path.normpath(os.path.join(env.path, dev_info['path']))
if 'dev_path' in spec.variants:
assert spec.variants['dev_path'].value == path
diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp
index 145c00ab67..8006e5f94f 100644
--- a/lib/spack/spack/solver/concretize.lp
+++ b/lib/spack/spack/solver/concretize.lp
@@ -1,3 +1,8 @@
+% Copyright 2013-2021 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 logic program implements Spack's concretizer
%=============================================================================
@@ -6,6 +11,15 @@
% Version semantics
%-----------------------------------------------------------------------------
+% Versions are declared with a weight and an origin, which indicates where the
+% version was declared (e.g. "package_py" or "external").
+version_declared(Package, Version, Weight) :- version_declared(Package, Version, Weight, _).
+
+% We can't emit the same version **with the same weight** from two different sources
+:- version_declared(Package, Version, Weight, Origin1),
+ version_declared(Package, Version, Weight, Origin2),
+ Origin1 != Origin2.
+
% versions are declared w/priority -- declared with priority implies declared
version_declared(Package, Version) :- version_declared(Package, Version, _).
@@ -14,12 +28,12 @@ version_declared(Package, Version) :- version_declared(Package, Version, _).
1 { version(Package, Version) : version_declared(Package, Version) } 1
:- node(Package).
-possible_version_weight(Package, Weight)
- :- version(Package, Version), version_declared(Package, Version, Weight),
- not preferred_version_declared(Package, Version, _).
+% If we select a deprecated version, mark the package as deprecated
+deprecated(Package, Version) :- version(Package, Version), deprecated_version(Package, Version).
possible_version_weight(Package, Weight)
- :- version(Package, Version), preferred_version_declared(Package, Version, Weight).
+ :- version(Package, Version),
+ version_declared(Package, Version, Weight).
1 { version_weight(Package, Weight) : possible_version_weight(Package, Weight) } 1 :- node(Package).
@@ -30,8 +44,8 @@ possible_version_weight(Package, Weight)
version_satisfies(Package, Constraint)
:- version(Package, Version), version_satisfies(Package, Constraint, Version).
-#defined preferred_version_declared/3.
#defined version_satisfies/3.
+#defined deprecated_version/2.
%-----------------------------------------------------------------------------
% Spec conditions and imposed constraints
@@ -136,7 +150,7 @@ path(Parent, Descendant) :- path(Parent, A), depends_on(A, Descendant).
% provider for that virtual then it depends on the provider
depends_on(Package, Provider, Type)
:- dependency_holds(Package, Virtual, Type),
- provides_virtual(Provider, Virtual),
+ provider(Provider, Virtual),
not external(Package).
% dependencies on virtuals also imply that the virtual is a virtual node
@@ -144,14 +158,24 @@ virtual_node(Virtual)
:- dependency_holds(Package, Virtual, Type),
virtual(Virtual), not external(Package).
-% if there's a virtual node, we must select one provider
-1 { provides_virtual(Package, Virtual) : possible_provider(Package, Virtual) } 1
+% If there's a virtual node, we must select one and only one provider.
+% The provider must be selected among the possible providers.
+1 { provider(Package, Virtual) : possible_provider(Package, Virtual) } 1
:- virtual_node(Virtual).
% virtual roots imply virtual nodes, and that one provider is a root
virtual_node(Virtual) :- virtual_root(Virtual).
-1 { root(Package) : provides_virtual(Package, Virtual) } 1
- :- virtual_root(Virtual).
+
+% If we asked for a virtual root and we have a provider for that,
+% then the provider is the root package.
+root(Package) :- virtual_root(Virtual), provider(Package, Virtual).
+
+% If we asked for a root package and that root provides a virtual,
+% the root is a provider for that virtual. This rule is mostly relevant
+% for environments that are concretized together (e.g. where we
+% asks to install "mpich" and "hdf5+mpi" and we want "mpich" to
+% be the mpi provider)
+provider(Package, Virtual) :- root(Package), provides_virtual(Package, Virtual).
% The provider provides the virtual if some provider condition holds.
provides_virtual(Provider, Virtual) :-
@@ -159,58 +183,54 @@ provides_virtual(Provider, Virtual) :-
condition_holds(ID),
virtual(Virtual).
-% a node that provides a virtual is a provider
-provider(Package, Virtual)
- :- node(Package), provides_virtual(Package, Virtual).
+% A package cannot be the actual provider for a virtual if it does not
+% fulfill the conditions to provide that virtual
+:- provider(Package, Virtual), not provides_virtual(Package, Virtual).
-% for any virtual, there can be at most one provider in the DAG
-0 { node(Package) : provides_virtual(Package, Virtual) } 1 :- virtual(Virtual).
+% If a package is selected as a provider, it is provider of all
+% the virtuals it provides
+:- provides_virtual(Package, V1), provides_virtual(Package, V2), V1 != V2,
+ provider(Package, V1), not provider(Package, V2),
+ virtual_node(V1), virtual_node(V2).
#defined possible_provider/2.
%-----------------------------------------------------------------------------
% Virtual dependency weights
%-----------------------------------------------------------------------------
-% give dependents the virtuals they want
-provider_weight(Dependency, 0)
- :- virtual(Virtual), depends_on(Package, Dependency),
- provider(Dependency, Virtual),
- external(Dependency).
-
-provider_weight(Dependency, Weight)
- :- virtual(Virtual), depends_on(Package, Dependency),
- provider(Dependency, Virtual),
- pkg_provider_preference(Package, Virtual, Dependency, Weight),
- not external(Dependency).
-
-provider_weight(Dependency, Weight)
- :- virtual(Virtual), depends_on(Package, Dependency),
- provider(Dependency, Virtual),
- not pkg_provider_preference(Package, Virtual, Dependency, _),
- not external(Dependency),
- default_provider_preference(Virtual, Dependency, Weight).
-
-% if there's no preference for something, it costs 100 to discourage its
-% use with minimization
-provider_weight(Dependency, 100)
- :- virtual(Virtual),
- provider(Dependency, Virtual),
- depends_on(Package, Dependency),
- not external(Dependency),
- not pkg_provider_preference(Package, Virtual, Dependency, _),
- not default_provider_preference(Virtual, Dependency, _).
-
-% Do the same for virtual roots
-provider_weight(Package, Weight)
- :- virtual_root(Virtual),
- provider(Package, Virtual),
- default_provider_preference(Virtual, Package, Weight).
-
-provider_weight(Package, 100)
- :- virtual_root(Virtual),
- provider(Package, Virtual),
- not default_provider_preference(Virtual, Package, _).
+% A provider may have different possible weights depending on whether it's an external
+% or not, or on preferences expressed in packages.yaml etc. This rule ensures that
+% we select the weight, among the possible ones, that minimizes the overall objective function.
+1 { provider_weight(Dependency, Virtual, Weight, Reason) :
+ possible_provider_weight(Dependency, Virtual, Weight, Reason) } 1
+ :- provider(Dependency, Virtual).
+
+% Get rid or the reason for enabling the possible weight (useful for debugging)
+provider_weight(Dependency, Virtual, Weight) :- provider_weight(Dependency, Virtual, Weight, _).
+
+% A provider that is an external can use a weight of 0
+possible_provider_weight(Dependency, Virtual, 0, "external")
+ :- provider(Dependency, Virtual),
+ external(Dependency).
+
+% A provider mentioned in packages.yaml can use a weight
+% according to its priority in the list of providers
+possible_provider_weight(Dependency, Virtual, Weight, "packages_yaml")
+ :- provider(Dependency, Virtual),
+ depends_on(Package, Dependency),
+ pkg_provider_preference(Package, Virtual, Dependency, Weight).
+
+% A provider mentioned in the default configuration can use a weight
+% according to its priority in the list of providers
+possible_provider_weight(Dependency, Virtual, Weight, "default")
+ :- provider(Dependency, Virtual),
+ default_provider_preference(Virtual, Dependency, Weight).
+
+% Any provider can use 100 as a weight, which is very high and discourage its use
+possible_provider_weight(Dependency, Virtual, 100, "fallback") :- provider(Dependency, Virtual).
+
+#defined possible_provider/2.
#defined provider_condition/3.
#defined required_provider_condition/3.
#defined required_provider_condition/4.
@@ -279,11 +299,13 @@ attr("node_compiler_version_satisfies", Package, Compiler, Version)
% External semantics
%-----------------------------------------------------------------------------
-% if an external version is declared, it is also declared globally
-version_declared(Package, Version, Weight) :- external_version_declared(Package, Version, Weight, _).
-
% if a package is external its version must be one of the external versions
-1 { version(Package, Version): external_version_declared(Package, Version, _, _) } 1 :- external(Package).
+1 { external_version(Package, Version, Weight):
+ version_declared(Package, Version, Weight, "external") } 1
+ :- external(Package).
+
+version_weight(Package, Weight) :- external_version(Package, Version, Weight).
+version(Package, Version) :- external_version(Package, Version, Weight).
% if a package is not buildable (external_only), only externals are allowed
external(Package) :- external_only(Package), node(Package).
@@ -298,7 +320,7 @@ external(Package) :- external_spec_selected(Package, _).
% corresponding external spec.
:- version(Package, Version),
version_weight(Package, Weight),
- external_version_declared(Package, Version, Weight, ID),
+ version_declared(Package, Version, Weight, "external"),
not external(Package).
% determine if an external spec has been selected
@@ -397,14 +419,23 @@ variant_not_default(Package, Variant, Value, 0)
external_with_variant_set(Package, Variant, Value),
node(Package).
-% The default value for a variant in a package is what is written
-% in the package.py file, unless some preference is set in packages.yaml
+% The default value for a variant in a package is what is prescribed:
+%
+% 1. On the command line
+% 2. In packages.yaml (if there's no command line settings)
+% 3. In the package.py file (if there are no settings in
+% packages.yaml and the command line)
+%
variant_default_value(Package, Variant, Value)
:- variant_default_value_from_package_py(Package, Variant, Value),
- not variant_default_value_from_packages_yaml(Package, Variant, _).
+ not variant_default_value_from_packages_yaml(Package, Variant, _),
+ not variant_default_value_from_cli(Package, Variant, _).
variant_default_value(Package, Variant, Value)
- :- variant_default_value_from_packages_yaml(Package, Variant, Value).
+ :- variant_default_value_from_packages_yaml(Package, Variant, Value),
+ not variant_default_value_from_cli(Package, Variant, _).
+
+variant_default_value(Package, Variant, Value) :- variant_default_value_from_cli(Package, Variant, Value).
% Treat 'none' in a special way - it cannot be combined with other
% values even if the variant is multi-valued
@@ -429,6 +460,7 @@ variant_single_value(Package, "dev_path")
#defined variant_single_value/2.
#defined variant_default_value/3.
#defined variant_possible_value/3.
+#defined variant_default_value_from_cli/3.
#defined variant_default_value_from_packages_yaml/3.
#defined variant_default_value_from_package_py/3.
#defined variant_value_from_disjoint_sets/4.
@@ -529,29 +561,19 @@ node_target_weight(Package, Weight)
node_target(Package, Target),
target_weight(Target, Package, Weight).
-% compatibility rules for targets among nodes
-node_target_match_pref(Dependency, Target)
- :- depends_on(Package, Dependency),
- node_target_match_pref(Package, Target),
- not node_target_set(Dependency, _).
-
-node_target_match_pref(Dependency, Target)
- :- depends_on(Package, Dependency),
- node_target_set(Package, Target),
- not node_target_match_pref(Package, Target),
- not node_target_set(Dependency, _).
-
-node_target_match_pref(Dependency, Target)
- :- depends_on(Package, Dependency),
- root(Package), node_target(Package, Target),
- not node_target_match_pref(Package, _).
-
-node_target_match(Package, 1)
- :- node_target(Package, Target), node_target_match_pref(Package, Target).
-
derive_target_from_parent(Parent, Package)
- :- depends_on(Parent, Package), not package_target_weight(_, Package, _).
+ :- depends_on(Parent, Package),
+ not package_target_weight(_, Package, _).
+
+% compatibility rules for targets among nodes
+node_target_match(Parent, Dependency)
+ :- depends_on(Parent, Dependency),
+ node_target(Parent, Target),
+ node_target(Dependency, Target).
+node_target_mismatch(Parent, Dependency)
+ :- depends_on(Parent, Dependency),
+ not node_target_match(Parent, Dependency).
#defined node_target_set/2.
#defined package_target_weight/3.
@@ -599,22 +621,18 @@ node_compiler_version(Package, Compiler, Version) :- node_compiler_version_set(P
% If a package and one of its dependencies don't have the
% same compiler there's a mismatch.
-compiler_mismatch(Package, Dependency)
+compiler_match(Package, Dependency)
:- depends_on(Package, Dependency),
- node_compiler_version(Package, Compiler1, _),
- node_compiler_version(Dependency, Compiler2, _),
- Compiler1 != Compiler2.
+ node_compiler_version(Package, Compiler, Version),
+ node_compiler_version(Dependency, Compiler, Version).
compiler_mismatch(Package, Dependency)
:- depends_on(Package, Dependency),
- node_compiler_version(Package, Compiler, Version1),
- node_compiler_version(Dependency, Compiler, Version2),
- Version1 != Version2.
+ not compiler_match(Package, Dependency).
#defined node_compiler_set/2.
#defined node_compiler_version_set/3.
#defined compiler_supports_os/3.
-#defined compiler_version_match/2.
#defined allow_compiler/2.
% compilers weighted by preference according to packages.yaml
@@ -689,84 +707,101 @@ no_flags(Package, FlagType)
%-----------------------------------------------------------------------------
% How to optimize the spec (high to low priority)
%-----------------------------------------------------------------------------
-% weight root preferences higher
-%
-% TODO: how best to deal with this issue? It's not clear how best to
-% weight all the constraints. Without this root preference, `spack solve
-% hdf5` will pick mpich instead of openmpi, even if openmpi is the
-% preferred provider, because openmpi has a version constraint on hwloc.
-% It ends up choosing between settling for an old version of hwloc, or
-% picking the second-best provider. This workaround weights root
-% preferences higher so that hdf5's prefs are more important, but it's
-% not clear this is a general solution. It would be nice to weight by
-% distance to root, but that seems to slow down the solve a lot.
-%
-% One option is to make preferences hard constraints. Or maybe we need
-% to look more closely at where a constraint came from and factor that
-% into our weights. e.g., a non-default variant resulting from a version
-% constraint counts like a version constraint. Needs more thought later.
-%
+% Each criterion below has:
+% 1. an opt_criterion(ID, Name) fact that describes the criterion, and
+% 2. a `#minimize{ 0@2 : #true }.` statement that ensures the criterion
+% is displayed (clingo doesn't display sums over empty sets by default)
-root(Package, 2) :- root(Package), node(Package).
-root(Dependency, 1) :- not root(Dependency), node(Dependency).
+% Minimize the number of deprecated versions being used
+opt_criterion(16, "deprecated versions used").
+#minimize{ 0@16 : #true }.
+#minimize{ 1@16,Package : deprecated(Package, _)}.
% The highest priority is to minimize the:
% 1. Version weight
% 2. Number of variants with a non default value, if not set
% for the root(Package)
-#minimize { Weight@15 : root(Package),version_weight(Package, Weight)}.
+opt_criterion(15, "version weight").
+#minimize{ 0@15 : #true }.
+#minimize { Weight@15 : root(Package),version_weight(Package, Weight) }.
+
+opt_criterion(14, "number of non-default variants (roots)").
+#minimize{ 0@14 : #true }.
#minimize {
Weight@14,Package,Variant,Value
: variant_not_default(Package, Variant, Value, Weight), root(Package)
}.
+
% If the value is a multivalued variant there could be multiple
% values set as default. Since a default value has a weight of 0 we
% need to maximize their number below to ensure they're all set
+opt_criterion(13, "multi-valued variants").
+#minimize{ 0@13 : #true }.
#maximize {
1@13,Package,Variant,Value
: variant_not_default(Package, Variant, Value, Weight),
not variant_single_value(Package, Variant),
root(Package)
}.
+opt_criterion(12, "preferred providers for roots").
+#minimize{ 0@12 : #true }.
#minimize{
- Weight@13,Provider
- : provider_weight(Provider, Weight), root(Provider)
+ Weight@12,Provider,Virtual
+ : provider_weight(Provider, Virtual, Weight), root(Provider)
}.
% Try to use default variants or variants that have been set
+opt_criterion(11, "number of non-default variants (non-roots)").
+#minimize{ 0@11 : #true }.
#minimize {
Weight@11,Package,Variant,Value
: variant_not_default(Package, Variant, Value, Weight), not root(Package)
}.
+
% Minimize the weights of the providers, i.e. use as much as
% possible the most preferred providers
+opt_criterion(9, "preferred providers (non-roots)").
+#minimize{ 0@9 : #true }.
+#minimize{
+ Weight@9,Provider,Virtual
+ : provider_weight(Provider, Virtual, Weight), not root(Provider)
+}.
+
+% Try to minimize the number of compiler mismatches in the DAG.
+opt_criterion(8, "compiler mismatches").
+#minimize{ 0@8 : #true }.
+#minimize{ 1@8,Package,Dependency : compiler_mismatch(Package, Dependency) }.
+
+% Choose more recent versions for nodes
+opt_criterion(7, "version badness").
+#minimize{ 0@7 : #true }.
#minimize{
- Weight@9,Provider
- : provider_weight(Provider, Weight), not root(Provider)
+ Weight@7,Package : version_weight(Package, Weight)
}.
+
% If the value is a multivalued variant there could be multiple
% values set as default. Since a default value has a weight of 0 we
% need to maximize their number below to ensure they're all set
+opt_criterion(6, "count of non-root multi-valued variants").
+#minimize{ 0@6 : #true }.
#maximize {
- 1@8,Package,Variant,Value
- : variant_not_default(Package, Variant, Value, Weight),
+ 1@6,Package,Variant,Value
+ : variant_not_default(Package, Variant, Value, _),
not variant_single_value(Package, Variant),
not root(Package)
}.
-% Try to minimize the number of compiler mismatches in the DAG.
-#minimize{ 0@7 : #true }.
-#minimize{ 1@7,Package,Dependency : compiler_mismatch(Package, Dependency) }.
-
-% Choose more recent versions for nodes
-#minimize{
- Weight@6,Package : version_weight(Package, Weight)
-}.
-
% Try to use preferred compilers
+opt_criterion(5, "non-preferred compilers").
+#minimize{ 0@5 : #true }.
#minimize{ Weight@5,Package : compiler_weight(Package, Weight) }.
-% Maximize the number of matches for targets in the DAG, try
+% Minimize the number of mismatches for targets in the DAG, try
% to select the preferred target.
-#maximize{ Weight@4,Package : node_target_match(Package, Weight) }.
+opt_criterion(4, "target mismatches").
+#minimize{ 0@4 : #true }.
+#minimize{ 1@4,Package,Dependency : node_target_mismatch(Package, Dependency) }.
+
+opt_criterion(3, "non-preferred targets").
+#minimize{ 0@3 : #true }.
#minimize{ Weight@3,Package : node_target_weight(Package, Weight) }.
diff --git a/lib/spack/spack/solver/display.lp b/lib/spack/spack/solver/display.lp
index fdc4e4088c..818ce2d90a 100644
--- a/lib/spack/spack/solver/display.lp
+++ b/lib/spack/spack/solver/display.lp
@@ -1,8 +1,16 @@
+% Copyright 2013-2021 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)
+
%=============================================================================-
% Display Results
%
% This section determines what parts of the model are printed at the end
%==============================================================================
+
+% Spec-related functions.
+% Used to build the result of the solve.
#show node/1.
#show depends_on/3.
#show version/2.
@@ -16,12 +24,10 @@
#show node_flag_compiler_default/1.
#show node_flag_source/2.
#show no_flags/2.
-
-#show variant_not_default/4.
-#show provider_weight/2.
-#show version_weight/2.
-#show compiler_version_match/2.
-#show compiler_weight/2.
-#show node_target_match/2.
-#show node_target_weight/2.
#show external_spec_selected/2.
+
+% names of optimization criteria
+#show opt_criterion/2.
+
+% deprecated packages
+#show deprecated/2.
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index edb2c94300..dba4924144 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -76,38 +76,40 @@ thing. Spack uses ~variant in directory names and in the canonical form of
specs to avoid ambiguity. Both are provided because ~ can cause shell
expansion when it is the first character in an id typed on the command line.
"""
-import base64
-import sys
import collections
-import hashlib
import itertools
import operator
import os
import re
+import sys
+import warnings
-import six
import ruamel.yaml as yaml
+import six
import llnl.util.filesystem as fs
import llnl.util.lang as lang
-import llnl.util.tty.color as clr
import llnl.util.tty as tty
+import llnl.util.tty.color as clr
-import spack.paths
import spack.architecture
import spack.compiler
-import spack.compilers as compilers
+import spack.compilers
import spack.config
import spack.dependency as dp
import spack.error
import spack.hash_types as ht
import spack.parse
+import spack.paths
+import spack.platforms
import spack.provider_index
import spack.repo
import spack.solver
import spack.store
+import spack.target
import spack.util.crypto
import spack.util.executable
+import spack.util.hash
import spack.util.module_cmd as md
import spack.util.prefix
import spack.util.spack_json as sjson
@@ -116,7 +118,6 @@ import spack.util.string
import spack.variant as vt
import spack.version as vn
-
if sys.version_info >= (3, 3):
from collections.abc import Mapping # novm
else:
@@ -124,7 +125,9 @@ else:
__all__ = [
+ 'CompilerSpec',
'Spec',
+ 'SpecParser',
'parse',
'SpecParseError',
'DuplicateDependencyError',
@@ -145,7 +148,9 @@ __all__ = [
'AmbiguousHashError',
'InvalidHashError',
'NoSuchHashError',
- 'RedundantSpecError']
+ 'RedundantSpecError',
+ 'SpecDeprecatedError',
+]
#: Valid pattern for an identifier in Spack
identifier_re = r'\w[\w-]*'
@@ -182,6 +187,9 @@ default_format = '{name}{@version}'
default_format += '{%compiler.name}{@compiler.version}{compiler_flags}'
default_format += '{variants}{arch=architecture}'
+#: specfile format version. Must increase monotonically
+specfile_format_version = 2
+
def colorize_spec(spec):
"""Returns a spec colorized according to the colors specified in
@@ -203,7 +211,7 @@ def colorize_spec(spec):
return clr.colorize(re.sub(_separators, insert_color(), str(spec)) + '@.')
-@lang.key_ordering
+@lang.lazy_lexicographic_ordering
class ArchSpec(object):
def __init__(self, spec_or_platform_tuple=(None, None, None)):
""" Architecture specification a package should be built with.
@@ -252,8 +260,10 @@ class ArchSpec(object):
return spec_like
return ArchSpec(spec_like)
- def _cmp_key(self):
- return self.platform, self.os, self.target
+ def _cmp_iter(self):
+ yield self.platform
+ yield self.os
+ yield self.target
def _dup(self, other):
self.platform = other.platform
@@ -287,7 +297,7 @@ class ArchSpec(object):
# will assumed to be the host machine's platform.
value = str(value) if value is not None else None
- if value in spack.architecture.Platform.reserved_oss:
+ if value in spack.platforms.Platform.reserved_oss:
curr_platform = str(spack.architecture.platform())
self.platform = self.platform or curr_platform
@@ -297,7 +307,7 @@ class ArchSpec(object):
"arch platform (%s) isn't the current platform (%s)" %
(value, self.platform, curr_platform))
- spec_platform = spack.architecture.get_platform(self.platform)
+ spec_platform = spack.platforms.by_name(self.platform)
value = str(spec_platform.operating_system(value))
self._os = value
@@ -316,15 +326,15 @@ class ArchSpec(object):
# will assumed to be the host machine's platform.
def target_or_none(t):
- if isinstance(t, spack.architecture.Target):
+ if isinstance(t, spack.target.Target):
return t
if t and t != 'None':
- return spack.architecture.Target(t)
+ return spack.target.Target(t)
return None
value = target_or_none(value)
- if str(value) in spack.architecture.Platform.reserved_targets:
+ if str(value) in spack.platforms.Platform.reserved_targets:
curr_platform = str(spack.architecture.platform())
self.platform = self.platform or curr_platform
@@ -334,7 +344,7 @@ class ArchSpec(object):
"the arch platform (%s) isn't the current platform (%s)" %
(value, self.platform, curr_platform))
- spec_platform = spack.architecture.get_platform(self.platform)
+ spec_platform = spack.platforms.by_name(self.platform)
value = spec_platform.target(value)
self._target = value
@@ -412,7 +422,7 @@ class ArchSpec(object):
# s_target_range is a concrete target
# get a microarchitecture reference for at least one side
# of each comparison so we can use archspec comparators
- s_comp = spack.architecture.Target(s_min).microarchitecture
+ s_comp = spack.target.Target(s_min).microarchitecture
if not o_sep:
if s_min == o_min:
results.append(s_min)
@@ -421,22 +431,22 @@ class ArchSpec(object):
results.append(s_min)
elif not o_sep:
# "cast" to microarchitecture
- o_comp = spack.architecture.Target(o_min).microarchitecture
+ o_comp = spack.target.Target(o_min).microarchitecture
if (not s_min or o_comp >= s_min) and (
not s_max or o_comp <= s_max):
results.append(o_min)
else:
# Take intersection of two ranges
# Lots of comparisons needed
- _s_min = spack.architecture.Target(s_min).microarchitecture
- _s_max = spack.architecture.Target(s_max).microarchitecture
- _o_min = spack.architecture.Target(o_min).microarchitecture
- _o_max = spack.architecture.Target(o_max).microarchitecture
+ _s_min = spack.target.Target(s_min).microarchitecture
+ _s_max = spack.target.Target(s_max).microarchitecture
+ _o_min = spack.target.Target(o_min).microarchitecture
+ _o_max = spack.target.Target(o_max).microarchitecture
n_min = s_min if _s_min >= _o_min else o_min
n_max = s_max if _s_max <= _o_max else o_max
- _n_min = spack.architecture.Target(n_min).microarchitecture
- _n_max = spack.architecture.Target(n_max).microarchitecture
+ _n_min = spack.target.Target(n_min).microarchitecture
+ _n_max = spack.target.Target(n_max).microarchitecture
if _n_min == _n_max:
results.append(n_min)
elif not n_min or not n_max or _n_min < _n_max:
@@ -517,7 +527,7 @@ class ArchSpec(object):
d = d['arch']
operating_system = d.get('platform_os', None) or d['os']
- target = spack.architecture.Target.from_dict_or_value(d['target'])
+ target = spack.target.Target.from_dict_or_value(d['target'])
return ArchSpec((d['platform'], operating_system, target))
@@ -534,7 +544,7 @@ class ArchSpec(object):
return string in str(self) or string in self.target
-@lang.key_ordering
+@lang.lazy_lexicographic_ordering
class CompilerSpec(object):
"""The CompilerSpec field represents the compiler or range of compiler
versions that a package should be built with. CompilerSpecs have a
@@ -623,8 +633,9 @@ class CompilerSpec(object):
clone.versions = self.versions.copy()
return clone
- def _cmp_key(self):
- return (self.name, self.versions)
+ def _cmp_iter(self):
+ yield self.name
+ yield self.versions
def to_dict(self):
d = syaml.syaml_dict([('name', self.name)])
@@ -648,7 +659,7 @@ class CompilerSpec(object):
return str(self)
-@lang.key_ordering
+@lang.lazy_lexicographic_ordering
class DependencySpec(object):
"""DependencySpecs connect two nodes in the DAG, and contain deptypes.
@@ -686,10 +697,10 @@ class DependencySpec(object):
self.deptypes + dp.canonical_deptype(type)
)
- def _cmp_key(self):
- return (self.parent.name if self.parent else None,
- self.spec.name if self.spec else None,
- self.deptypes)
+ def _cmp_iter(self):
+ yield self.parent.name if self.parent else None
+ yield self.spec.name if self.spec else None
+ yield self.deptypes
def __str__(self):
return "%s %s--> %s" % (self.parent.name if self.parent else None,
@@ -747,8 +758,15 @@ class FlagMap(lang.HashableMap):
clone[name] = value
return clone
- def _cmp_key(self):
- return tuple((k, tuple(v)) for k, v in sorted(six.iteritems(self)))
+ def _cmp_iter(self):
+ for k, v in sorted(self.items()):
+ yield k
+
+ def flags():
+ for flag in v:
+ yield flag
+
+ yield flags
def __str__(self):
sorted_keys = [k for k in sorted(self.keys()) if self[k] != []]
@@ -1007,7 +1025,9 @@ class SpecBuildInterface(lang.ObjectWrapper):
def __init__(self, spec, name, query_parameters):
super(SpecBuildInterface, self).__init__(spec)
-
+ # Adding new attributes goes after super() call since the ObjectWrapper
+ # resets __dict__ to behave like the passed object
+ self.token = spec, name, query_parameters
is_virtual = spack.repo.path.is_virtual(name)
self.last_query = QueryState(
name=name,
@@ -1015,16 +1035,18 @@ class SpecBuildInterface(lang.ObjectWrapper):
isvirtual=is_virtual
)
+ def __reduce__(self):
+ return SpecBuildInterface, self.token
+
-@lang.key_ordering
+@lang.lazy_lexicographic_ordering(set_hash=False)
class Spec(object):
#: Cache for spec's prefix, computed lazily in the corresponding property
_prefix = None
- def __init__(self, spec_like=None,
- normal=False, concrete=False, external_path=None,
- external_modules=None, full_hash=None):
+ def __init__(self, spec_like=None, normal=False,
+ concrete=False, external_path=None, external_modules=None):
"""Create a new Spec.
Arguments:
@@ -1038,8 +1060,6 @@ class Spec(object):
self._concrete = concrete
self.external_path = external_path
self.external_module = external_module
- self._full_hash = full_hash
-
"""
# Copy if spec_like is a Spec.
@@ -1060,7 +1080,9 @@ class Spec(object):
self._hash = None
self._build_hash = None
- self._cmp_key_cache = None
+ self._full_hash = None
+ self._package_hash = None
+ self._dunder_hash = None
self._package = None
# Most of these are internal implementation details that can be
@@ -1074,7 +1096,6 @@ class Spec(object):
self._concrete = concrete
self.external_path = external_path
self.external_modules = Spec._format_module_list(external_modules)
- self._full_hash = full_hash
# Older spack versions did not compute full_hash or build_hash,
# and we may not have the necessary information to recompute them
@@ -1088,6 +1109,12 @@ class Spec(object):
# external specs. None signal that it was not set yet.
self.extra_attributes = None
+ # This attribute holds the original build copy of the spec if it is
+ # deployed differently than it was built. None signals that the spec
+ # is deployed "as built."
+ # Build spec should be the actual build spec unless marked dirty.
+ self._build_spec = None
+
if isinstance(spec_like, six.string_types):
spec_list = SpecParser(self).parse(spec_like)
if len(spec_list) > 1:
@@ -1302,6 +1329,13 @@ class Spec(object):
"""
return self._concrete
+ @property
+ def spliced(self):
+ """Returns whether or not this Spec is being deployed as built i.e.
+ whether or not this Spec has ever been spliced.
+ """
+ return any(s.build_spec is not s for s in self.traverse(root=True))
+
def traverse(self, **kwargs):
direction = kwargs.get('direction', 'children')
depth = kwargs.get('depth', False)
@@ -1369,7 +1403,16 @@ class Spec(object):
cover = kwargs.get('cover', 'nodes')
direction = kwargs.get('direction', 'children')
order = kwargs.get('order', 'pre')
- deptype = dp.canonical_deptype(deptype)
+
+ # we don't want to run canonical_deptype every time through
+ # traverse, because it is somewhat expensive. This ensures we
+ # canonicalize only once.
+ canonical_deptype = kwargs.get("canonical_deptype", None)
+ if canonical_deptype is None:
+ deptype = dp.canonical_deptype(deptype)
+ kwargs["canonical_deptype"] = deptype
+ else:
+ deptype = canonical_deptype
# Make sure kwargs have legal values; raise ValueError if not.
def validate(name, val, allowed_values):
@@ -1467,19 +1510,15 @@ class Spec(object):
"""Utility method for computing different types of Spec hashes.
Arguments:
- hash (SpecHashDescriptor): type of hash to generate.
+ hash (spack.hash_types.SpecHashDescriptor): type of hash to generate.
"""
- # TODO: curently we strip build dependencies by default. Rethink
+ # TODO: currently we strip build dependencies by default. Rethink
# this when we move to using package hashing on all specs.
+ if hash.override is not None:
+ return hash.override(self)
node_dict = self.to_node_dict(hash=hash)
- yaml_text = syaml.dump(node_dict, default_flow_style=True)
- sha = hashlib.sha1(yaml_text.encode('utf-8'))
- b32_hash = base64.b32encode(sha.digest()).lower()
-
- if sys.version_info[0] >= 3:
- b32_hash = b32_hash.decode('utf-8')
-
- return b32_hash
+ json_text = sjson.dump(node_dict)
+ return spack.util.hash.b32_hash(json_text)
def _cached_hash(self, hash, length=None):
"""Helper function for storing a cached hash on the spec.
@@ -1489,7 +1528,7 @@ class Spec(object):
in the supplied attribute on this spec.
Arguments:
- hash (SpecHashDescriptor): type of hash to generate.
+ hash (spack.hash_types.SpecHashDescriptor): type of hash to generate.
"""
if not hash.attr:
return self._spec_hash(hash)[:length]
@@ -1504,6 +1543,10 @@ class Spec(object):
return hash_string[:length]
+ def package_hash(self):
+ """Compute the hash of the contents of the package for this node"""
+ return self._cached_hash(ht.package_hash)
+
def dag_hash(self, length=None):
"""This is Spack's default hash, used to identify installations.
@@ -1535,7 +1578,7 @@ class Spec(object):
def dag_hash_bit_prefix(self, bits):
"""Get the first <bits> bits of the DAG hash as an integer type."""
- return base32_prefix_bits(self.dag_hash(), bits)
+ return spack.util.hash.base32_prefix_bits(self.dag_hash(), bits)
def to_node_dict(self, hash=ht.dag_hash):
"""Create a dictionary representing the state of this Spec.
@@ -1587,10 +1630,12 @@ class Spec(object):
hashes).
Arguments:
- hash (SpecHashDescriptor) type of hash to generate.
+ hash (spack.hash_types.SpecHashDescriptor) type of hash to generate.
"""
d = syaml.syaml_dict()
+ d['name'] = self.name
+
if self.versions:
d.update(self.versions.to_dict())
@@ -1629,61 +1674,96 @@ class Spec(object):
d['patches'] = variant._patches_in_order_of_appearance
if hash.package_hash:
- d['package_hash'] = self.package.content_hash()
+ package_hash = self.package_hash()
+ # Full hashes are in bytes
+ if (not isinstance(package_hash, six.text_type)
+ and isinstance(package_hash, six.binary_type)):
+ package_hash = package_hash.decode('utf-8')
+ d['package_hash'] = package_hash
+
+ # Note: Relies on sorting dict by keys later in algorithm.
deps = self.dependencies_dict(deptype=hash.deptype)
+
if deps:
- d['dependencies'] = syaml.syaml_dict([
- (name,
- syaml.syaml_dict([
- ('hash', dspec.spec._cached_hash(hash)),
- ('type', sorted(str(s) for s in dspec.deptypes))])
- ) for name, dspec in sorted(deps.items())
+ deps_list = []
+ for name, dspec in sorted(deps.items()):
+ name_tuple = ('name', name)
+ hash_tuple = (hash.name, dspec.spec._cached_hash(hash))
+ type_tuple = ('type', sorted(str(s) for s in dspec.deptypes))
+ deps_list.append(syaml.syaml_dict([name_tuple,
+ hash_tuple,
+ type_tuple]))
+ d['dependencies'] = deps_list
+
+ # Name is included in case this is replacing a virtual.
+ if self._build_spec:
+ d['build_spec'] = syaml.syaml_dict([
+ ('name', self.build_spec.name),
+ (hash.name, self.build_spec._cached_hash(hash))
])
-
- return syaml.syaml_dict([(self.name, d)])
+ return d
def to_dict(self, hash=ht.dag_hash):
"""Create a dictionary suitable for writing this spec to YAML or JSON.
This dictionaries like the one that is ultimately written to a
- ``spec.yaml`` file in each Spack installation directory. For
+ ``spec.json`` file in each Spack installation directory. For
example, for sqlite::
{
- 'spec': [
+ "spec": {
+ "_meta": {
+ "version": 2
+ },
+ "nodes": [
+ {
+ "name": "sqlite",
+ "version": "3.34.0",
+ "arch": {
+ "platform": "darwin",
+ "platform_os": "catalina",
+ "target": "x86_64"
+ },
+ "compiler": {
+ "name": "apple-clang",
+ "version": "11.0.0"
+ },
+ "namespace": "builtin",
+ "parameters": {
+ "column_metadata": true,
+ "fts": true,
+ "functions": false,
+ "rtree": false,
+ "cflags": [],
+ "cppflags": [],
+ "cxxflags": [],
+ "fflags": [],
+ "ldflags": [],
+ "ldlibs": []
+ },
+ "dependencies": [
{
- 'sqlite': {
- 'version': '3.28.0',
- 'arch': {
- 'platform': 'darwin',
- 'platform_os': 'mojave',
- 'target': 'x86_64',
- },
- 'compiler': {
- 'name': 'apple-clang',
- 'version': '10.0.0',
- },
- 'namespace': 'builtin',
- 'parameters': {
- 'fts': 'true',
- 'functions': 'false',
- 'cflags': [],
- 'cppflags': [],
- 'cxxflags': [],
- 'fflags': [],
- 'ldflags': [],
- 'ldlibs': [],
- },
- 'dependencies': {
- 'readline': {
- 'hash': 'zvaa4lhlhilypw5quj3akyd3apbq5gap',
- 'type': ['build', 'link'],
- }
- },
- 'hash': '722dzmgymxyxd6ovjvh4742kcetkqtfs'
- }
+ "name": "readline",
+ "build_hash": "4f47cggum7p4qmp3xna4hi547o66unva",
+ "type": [
+ "build",
+ "link"
+ ]
},
+ {
+ "name": "zlib",
+ "build_hash": "uvgh6p7rhll4kexqnr47bvqxb3t33jtq",
+ "type": [
+ "build",
+ "link"
+ ]
+ }
+ ],
+ "hash": "d2yzqp2highd7sn4nr5ndkw3ydcrlhtk",
+ "full_hash": "tve45xfqkfgmzwcyfetze2z6syrg7eaf",
+ "build_hash": "tsjnz7lgob7bu2wd4sqzzjenxewc2zha"
+ },
# ... more node dicts for readline and its dependencies ...
]
}
@@ -1708,18 +1788,31 @@ class Spec(object):
hashes in the dictionary.
"""
- node_list = []
+ node_list = [] # Using a list to preserve preorder traversal for hash.
+ hash_set = set()
for s in self.traverse(order='pre', deptype=hash.deptype):
- node_list.append(s.node_dict_with_hashes(hash))
-
- return syaml.syaml_dict([('spec', node_list)])
+ spec_hash = s.node_dict_with_hashes(hash)[hash.name]
+ if spec_hash not in hash_set:
+ node_list.append(s.node_dict_with_hashes(hash))
+ hash_set.add(spec_hash)
+ if s.build_spec is not s:
+ build_spec_list = s.build_spec.to_dict(hash)['spec']['nodes']
+ for node in build_spec_list:
+ node_hash = node[hash.name]
+ if node_hash not in hash_set:
+ node_list.append(node)
+ hash_set.add(node_hash)
+ meta_dict = syaml.syaml_dict([('version', specfile_format_version)])
+ inner_dict = syaml.syaml_dict([('_meta', meta_dict), ('nodes', node_list)])
+ spec_dict = syaml.syaml_dict([('spec', inner_dict)])
+ return spec_dict
def node_dict_with_hashes(self, hash=ht.dag_hash):
""" Returns a node_dict of this spec with the dag hash added. If this
spec is concrete, the full hash is added as well. If 'build' is in
the hash_type, the build hash is also added. """
node = self.to_node_dict(hash)
- node[self.name]['hash'] = self.dag_hash()
+ node[ht.dag_hash.name] = self.dag_hash()
# full_hash and build_hash are lazily computed -- but if we write
# a spec out, we want them to be included. This is effectively
@@ -1738,42 +1831,19 @@ class Spec(object):
write_full_hash = (
self._hashes_final and self._full_hash or # cached and final
not self._hashes_final) # lazily compute
+ if write_full_hash:
+ node[ht.full_hash.name] = self.full_hash()
write_build_hash = 'build' in hash.deptype and (
self._hashes_final and self._build_hash or # cached and final
not self._hashes_final) # lazily compute
-
- if write_full_hash:
- node[self.name]['full_hash'] = self.full_hash()
if write_build_hash:
- node[self.name]['build_hash'] = self.build_hash()
-
+ node[ht.build_hash.name] = self.build_hash()
+ else:
+ node['concrete'] = False
+ if hash.name == 'build_hash':
+ node[hash.name] = self.build_hash()
return node
- def to_record_dict(self):
- """Return a "flat" dictionary with name and hash as top-level keys.
-
- This is similar to ``to_node_dict()``, but the name and the hash
- are "flattened" into the dictionary for easiler parsing by tools
- like ``jq``. Instead of being keyed by name or hash, the
- dictionary "name" and "hash" fields, e.g.::
-
- {
- "name": "openssl"
- "hash": "3ws7bsihwbn44ghf6ep4s6h4y2o6eznv"
- "version": "3.28.0",
- "arch": {
- ...
- }
-
- But is otherwise the same as ``to_node_dict()``.
-
- """
- dictionary = syaml.syaml_dict()
- dictionary["name"] = self.name
- dictionary["hash"] = self.dag_hash()
- dictionary.update(self.to_node_dict()[self.name])
- return dictionary
-
def to_yaml(self, stream=None, hash=ht.dag_hash):
return syaml.dump(
self.to_dict(hash), stream=stream, default_flow_style=False)
@@ -1783,13 +1853,19 @@ class Spec(object):
@staticmethod
def from_node_dict(node):
- name = next(iter(node))
- node = node[name]
+ spec = Spec()
+ if 'name' in node.keys():
+ # New format
+ name = node['name']
+ else:
+ # Old format
+ name = next(iter(node))
+ node = node[name]
+ for h in ht.hashes:
+ setattr(spec, h.attr, node.get(h.name, None))
- spec = Spec(name, full_hash=node.get('full_hash', None))
+ spec.name = name
spec.namespace = node.get('namespace', None)
- spec._hash = node.get('hash', None)
- spec._build_hash = node.get('build_hash', None)
if 'version' in node or 'versions' in node:
spec.versions = vn.VersionList.from_dict(node)
@@ -1852,41 +1928,65 @@ class Spec(object):
mvar._patches_in_order_of_appearance = patches
# Don't read dependencies here; from_node_dict() is used by
- # from_yaml() to read the root *and* each dependency spec.
+ # from_yaml() and from_json() to read the root *and* each dependency
+ # spec.
return spec
@staticmethod
+ def build_spec_from_node_dict(node, hash_type=ht.dag_hash.name):
+ build_spec_dict = node['build_spec']
+ return build_spec_dict['name'], build_spec_dict[hash_type], hash_type
+
+ @staticmethod
def dependencies_from_node_dict(node):
- name = next(iter(node))
- node = node[name]
+ if 'name' in node.keys():
+ # New format
+ name = node['name']
+ else:
+ name = next(iter(node))
+ node = node[name]
if 'dependencies' not in node:
return
for t in Spec.read_yaml_dep_specs(node['dependencies']):
yield t
@staticmethod
- def read_yaml_dep_specs(dependency_dict):
+ def read_yaml_dep_specs(deps, hash_type=ht.dag_hash.name):
"""Read the DependencySpec portion of a YAML-formatted Spec.
This needs to be backward-compatible with older spack spec
formats so that reindex will work on old specs/databases.
"""
- for dep_name, elt in dependency_dict.items():
+ dep_iter = deps.items() if isinstance(deps, dict) else deps
+ for dep in dep_iter:
+ if isinstance(dep, tuple):
+ dep_name, elt = dep
+ else:
+ elt = dep
+ dep_name = dep['name']
if isinstance(elt, six.string_types):
# original format, elt is just the dependency hash.
- dag_hash, deptypes = elt, ['build', 'link']
+ dep_hash, deptypes = elt, ['build', 'link']
elif isinstance(elt, tuple):
# original deptypes format: (used tuples, not future-proof)
- dag_hash, deptypes = elt
+ dep_hash, deptypes = elt
elif isinstance(elt, dict):
# new format: elements of dependency spec are keyed.
- dag_hash, deptypes = elt['hash'], elt['type']
+ for key in (ht.full_hash.name,
+ ht.build_hash.name,
+ ht.dag_hash.name):
+ if key in elt:
+ dep_hash, deptypes = elt[key], elt['type']
+ hash_type = key
+ break
+ else: # We never determined a hash type...
+ raise spack.error.SpecError(
+ "Couldn't parse dependency spec.")
else:
raise spack.error.SpecError(
"Couldn't parse dependency types in spec.")
-
- yield dep_name, dag_hash, list(deptypes)
+ yield dep_name, dep_hash, list(deptypes), hash_type
@staticmethod
def from_literal(spec_dict, normal=True):
@@ -2042,33 +2142,13 @@ class Spec(object):
@staticmethod
def from_dict(data):
- """Construct a spec from YAML.
+ """Construct a spec from JSON/YAML.
Parameters:
data -- a nested dict/list data structure read from YAML or JSON.
"""
- nodes = data['spec']
-
- # Read nodes out of list. Root spec is the first element;
- # dependencies are the following elements.
- dep_list = [Spec.from_node_dict(node) for node in nodes]
- if not dep_list:
- raise spack.error.SpecError("YAML spec contains no nodes.")
- deps = dict((spec.name, spec) for spec in dep_list)
- spec = dep_list[0]
-
- for node in nodes:
- # get dependency dict from the node.
- name = next(iter(node))
-
- if 'dependencies' not in node[name]:
- continue
-
- yaml_deps = node[name]['dependencies']
- for dname, dhash, dtypes in Spec.read_yaml_dep_specs(yaml_deps):
- deps[name]._add_dependency(deps[dname], dtypes)
- return spec
+ return _spec_from_dict(data)
@staticmethod
def from_yaml(stream):
@@ -2263,6 +2343,8 @@ class Spec(object):
# If replacement is external then trim the dependencies
if replacement.external:
if (spec._dependencies):
+ for dep in spec.dependencies():
+ del dep._dependents[spec.name]
changed = True
spec._dependencies = DependencyMap()
replacement._dependencies = DependencyMap()
@@ -2318,6 +2400,13 @@ class Spec(object):
"""
import spack.concretize
+ # Add a warning message to inform users that the original concretizer
+ # will be removed in v0.18.0
+ msg = ('the original concretizer is currently being used.\n\tUpgrade to '
+ '"clingo" at your earliest convenience. The original concretizer '
+ 'will be removed from Spack starting at v0.18.0')
+ warnings.warn(msg)
+
if not self.name:
raise spack.error.SpecError(
"Attempting to concretize anonymous spec")
@@ -2536,17 +2625,27 @@ class Spec(object):
else:
self._old_concretize(tests)
+ def _mark_root_concrete(self, value=True):
+ """Mark just this spec (not dependencies) concrete."""
+ if (not value) and self.concrete and self.package.installed:
+ return
+ self._normal = value
+ self._concrete = value
+
def _mark_concrete(self, value=True):
"""Mark this spec and its dependencies as concrete.
Only for internal use -- client code should use "concretize"
unless there is a need to force a spec to be concrete.
"""
+ # if set to false, clear out all hashes (set to None or remove attr)
+ # may need to change references to respect None
for s in self.traverse():
if (not value) and s.concrete and s.package.installed:
continue
- s._normal = value
- s._concrete = value
+ elif not value:
+ s.clear_cached_hashes()
+ s._mark_root_concrete(value)
def concretized(self, tests=False):
"""This is a non-destructive version of concretize().
@@ -2559,7 +2658,7 @@ class Spec(object):
if a list of names activate them for the packages in the list,
if True activate 'test' dependencies for all packages.
"""
- clone = self.copy(caches=False)
+ clone = self.copy(caches=True)
clone.concretize(tests=tests)
return clone
@@ -2922,7 +3021,7 @@ class Spec(object):
# validate compiler in addition to the package name.
if spec.compiler:
- if not compilers.supported(spec.compiler):
+ if not spack.compilers.supported(spec.compiler):
raise UnsupportedCompilerError(spec.compiler.name)
# Ensure correctness of variants (if the spec is not virtual)
@@ -2938,7 +3037,7 @@ class Spec(object):
spec (Spec): spec to be analyzed
Raises:
- UnknownVariantError: on the first unknown variant found
+ spack.variant.UnknownVariantError: on the first unknown variant found
"""
pkg_cls = spec.package_class
pkg_variants = pkg_cls.variants
@@ -3142,6 +3241,7 @@ class Spec(object):
* `strict`: strict means that we *must* meet all the
constraints specified on other.
"""
+
other = self._autospec(other)
# The only way to satisfy a concrete spec is to match its hash exactly.
@@ -3274,7 +3374,7 @@ class Spec(object):
"""Return list of any virtual deps in this spec."""
return [spec for spec in self.traverse() if spec.virtual]
- @property
+ @property # type: ignore[misc] # decorated prop not supported in mypy
@lang.memoized
def patches(self):
"""Return patch objects for any patch sha256 sums on this Spec.
@@ -3320,7 +3420,7 @@ class Spec(object):
before possibly copying the dependencies of ``other`` onto
``self``
caches (bool or None): preserve cached fields such as
- ``_normal``, ``_hash``, and ``_cmp_key_cache``. By
+ ``_normal``, ``_hash``, and ``_dunder_hash``. By
default this is ``False`` if DAG structure would be
changed by the copy, ``True`` if it's an exact copy.
@@ -3357,6 +3457,7 @@ class Spec(object):
self.compiler_flags = other.compiler_flags.copy()
self.compiler_flags.spec = self
self.variants = other.variants.copy()
+ self._build_spec = other._build_spec
# FIXME: we manage _patches_in_order_of_appearance specially here
# to keep it from leaking out of spec.py, but we should figure
@@ -3393,15 +3494,17 @@ class Spec(object):
if caches:
self._hash = other._hash
self._build_hash = other._build_hash
- self._cmp_key_cache = other._cmp_key_cache
+ self._dunder_hash = other._dunder_hash
self._normal = other._normal
self._full_hash = other._full_hash
+ self._package_hash = other._package_hash
else:
self._hash = None
self._build_hash = None
- self._cmp_key_cache = None
+ self._dunder_hash = None
self._normal = False
self._full_hash = None
+ self._package_hash = None
return changed
@@ -3518,18 +3621,17 @@ class Spec(object):
else:
return any(s.satisfies(spec) for s in self.traverse(root=False))
- def sorted_deps(self):
- """Return a list of all dependencies sorted by name."""
- deps = self.flat_dependencies()
- return tuple(deps[name] for name in sorted(deps))
+ def eq_dag(self, other, deptypes=True, vs=None, vo=None):
+ """True if the full dependency DAGs of specs are equal."""
+ if vs is None:
+ vs = set()
+ if vo is None:
+ vo = set()
- def _eq_dag(self, other, vs, vo, deptypes):
- """Recursive helper for eq_dag and ne_dag. Does the actual DAG
- traversal."""
vs.add(id(self))
vo.add(id(other))
- if self.ne_node(other):
+ if not self.eq_node(other):
return False
if len(self._dependencies) != len(other._dependencies):
@@ -3557,58 +3659,38 @@ class Spec(object):
continue
# Recursive check for equality
- if not s._eq_dag(o, vs, vo, deptypes):
+ if not s.eq_dag(o, deptypes, vs, vo):
return False
return True
- def eq_dag(self, other, deptypes=True):
- """True if the full dependency DAGs of specs are equal."""
- return self._eq_dag(other, set(), set(), deptypes)
-
- def ne_dag(self, other, deptypes=True):
- """True if the full dependency DAGs of specs are not equal."""
- return not self.eq_dag(other, set(), set(), deptypes)
-
def _cmp_node(self):
- """Comparison key for just *this node* and not its deps."""
- # Name or namespace None will lead to invalid comparisons for abstract
- # specs. Replace them with the empty string, which is not a valid spec
- # name nor namespace so it will not create spurious equalities.
- return (self.name or '',
- self.namespace or '',
- tuple(self.versions),
- self.variants,
- self.architecture,
- self.compiler,
- self.compiler_flags)
+ """Yield comparable elements of just *this node* and not its deps."""
+ yield self.name
+ yield self.namespace
+ yield self.versions
+ yield self.variants
+ yield self.compiler
+ yield self.compiler_flags
+ yield self.architecture
def eq_node(self, other):
"""Equality with another spec, not including dependencies."""
- return self._cmp_node() == other._cmp_node()
-
- def ne_node(self, other):
- """Inequality with another spec, not including dependencies."""
- return self._cmp_node() != other._cmp_node()
-
- def _cmp_key(self):
- """This returns a key for the spec *including* DAG structure.
-
- The key is the concatenation of:
- 1. A tuple describing this node in the DAG.
- 2. The hash of each of this node's dependencies' cmp_keys.
- """
- if self._cmp_key_cache:
- return self._cmp_key_cache
+ return (other is not None) and lang.lazy_eq(
+ self._cmp_node, other._cmp_node
+ )
- dep_tuple = tuple(
- (d.spec.name, hash(d.spec), tuple(sorted(d.deptypes)))
- for name, d in sorted(self._dependencies.items()))
+ def _cmp_iter(self):
+ """Lazily yield components of self for comparison."""
+ for item in self._cmp_node():
+ yield item
- key = (self._cmp_node(), dep_tuple)
- if self._concrete:
- self._cmp_key_cache = key
- return key
+ def deps():
+ for _, dep in sorted(self._dependencies.items()):
+ yield dep.spec.name
+ yield tuple(sorted(dep.deptypes))
+ yield hash(dep.spec)
+ yield deps
def colorized(self):
return colorize_spec(self)
@@ -3848,7 +3930,9 @@ class Spec(object):
'Format string terminated while reading attribute.'
'Missing terminating }.'
)
- return out.getvalue()
+
+ formatted_spec = out.getvalue()
+ return formatted_spec.strip()
def old_format(self, format_string='$_$@$%@+$+$=', **kwargs):
"""
@@ -4104,12 +4188,12 @@ class Spec(object):
kwargs.setdefault('color', None)
return self.format(*args, **kwargs)
- def dep_string(self):
- return ''.join(" ^" + dep.format() for dep in self.sorted_deps())
-
def __str__(self):
- ret = self.format() + self.dep_string()
- return ret.strip()
+ sorted_nodes = [self] + sorted(
+ self.traverse(root=False), key=lambda x: x.name
+ )
+ spec_str = " ^".join(d.format() for d in sorted_nodes)
+ return spec_str.strip()
def install_status(self):
"""Helper for tree to print DB install status."""
@@ -4217,6 +4301,229 @@ class Spec(object):
# to give to the attribute the appropriate comparison semantic
return self.architecture.target.microarchitecture
+ @property
+ def build_spec(self):
+ return self._build_spec or self
+
+ @build_spec.setter
+ def build_spec(self, value):
+ self._build_spec = value
+
+ def splice(self, other, transitive):
+ """Splices dependency "other" into this ("target") Spec, and return the
+ result as a concrete Spec.
+ If transitive, then other and its dependencies will be extrapolated to
+ a list of Specs and spliced in accordingly.
+ For example, let there exist a dependency graph as follows:
+ T
+ | \
+ Z<-H
+ In this example, Spec T depends on H and Z, and H also depends on Z.
+ Suppose, however, that we wish to use a differently-built H, known as
+ H'. This function will splice in the new H' in one of two ways:
+ 1. transitively, where H' depends on the Z' it was built with, and the
+ new T* also directly depends on this new Z', or
+ 2. intransitively, where the new T* and H' both depend on the original
+ Z.
+ Since the Spec returned by this splicing function is no longer deployed
+ the same way it was built, any such changes are tracked by setting the
+ build_spec to point to the corresponding dependency from the original
+ Spec.
+ TODO: Extend this for non-concrete Specs.
+ """
+ assert self.concrete
+ assert other.concrete
+ assert other.name in self
+
+ # Multiple unique specs with the same name will collide, so the
+ # _dependents of these specs should not be trusted.
+ # Variants may also be ignored here for now...
+
+ # Keep all cached hashes because we will invalidate the ones that need
+ # invalidating later, and we don't want to invalidate unnecessarily
+
+ if transitive:
+ self_nodes = dict((s.name, s.copy(deps=False, caches=True))
+ for s in self.traverse(root=True)
+ if s.name not in other)
+ other_nodes = dict((s.name, s.copy(deps=False, caches=True))
+ for s in other.traverse(root=True))
+ else:
+ # If we're not doing a transitive splice, then we only want the
+ # root of other.
+ self_nodes = dict((s.name, s.copy(deps=False, caches=True))
+ for s in self.traverse(root=True)
+ if s.name != other.name)
+ other_nodes = {other.name: other.copy(deps=False, caches=True)}
+
+ nodes = other_nodes.copy()
+ nodes.update(self_nodes)
+
+ for name in nodes:
+ if name in self_nodes:
+ dependencies = self[name]._dependencies
+ for dep in dependencies:
+ nodes[name]._add_dependency(nodes[dep],
+ dependencies[dep].deptypes)
+ if any(dep not in self_nodes for dep in dependencies):
+ nodes[name].build_spec = self[name].build_spec
+ else:
+ dependencies = other[name]._dependencies
+ for dep in dependencies:
+ nodes[name]._add_dependency(nodes[dep],
+ dependencies[dep].deptypes)
+ if any(dep not in other_nodes for dep in dependencies):
+ nodes[name].build_spec = other[name].build_spec
+
+ ret = nodes[self.name]
+
+ # Clear cached hashes for all affected nodes
+ # Do not touch unaffected nodes
+ for dep in ret.traverse(root=True, order='post'):
+ opposite = other_nodes if dep.name in self_nodes else self_nodes
+ if any(name in dep for name in opposite.keys()):
+ # Record whether hashes are already cached
+ # So we don't try to compute a hash from insufficient
+ # provenance later
+ has_build_hash = getattr(dep, ht.build_hash.name, None)
+ has_full_hash = getattr(dep, ht.full_hash.name, None)
+
+ # package hash cannot be affected by splice
+ dep.clear_cached_hashes(ignore=['package_hash'])
+
+ # Since this is a concrete spec, we want to make sure hashes
+ # are cached writing specs only writes cached hashes in case
+ # the spec is too old to have full provenance for these hashes,
+ # so we can't rely on doing it at write time.
+ if has_build_hash:
+ _ = dep.build_hash()
+ if has_full_hash:
+ _ = dep.full_hash()
+
+ return nodes[self.name]
+
+ def clear_cached_hashes(self, ignore=()):
+ """
+ Clears all cached hashes in a Spec, while preserving other properties.
+ """
+ for h in ht.hashes:
+ if h.attr not in ignore:
+ if hasattr(self, h.attr):
+ setattr(self, h.attr, None)
+
+ def __hash__(self):
+ # If the spec is concrete, we leverage the DAG hash and just use
+ # a 64-bit prefix of it. The DAG hash has the advantage that it's
+ # computed once per concrete spec, and it's saved -- so if we
+ # read concrete specs we don't need to recompute the whole hash.
+ # This is good for large, unchanging specs.
+ if self.concrete:
+ if not self._dunder_hash:
+ self._dunder_hash = self.dag_hash_bit_prefix(64)
+ return self._dunder_hash
+
+ # This is the normal hash for lazy_lexicographic_ordering. It's
+ # slow for large specs because it traverses the whole spec graph,
+ # so we hope it only runs on abstract specs, which are small.
+ return hash(lang.tuplify(self._cmp_iter))
+
+ def __reduce__(self):
+ return _spec_from_dict, (self.to_dict(hash=ht.build_hash),)
+
+
+def _spec_from_old_dict(data):
+ """Construct a spec from JSON/YAML using the format version 1.
+ Note: Version 1 format has no notion of a build_spec, and names are
+ guaranteed to be unique.
+
+ Parameters:
+ data -- a nested dict/list data structure read from YAML or JSON.
+ """
+ nodes = data['spec']
+
+ # Read nodes out of list. Root spec is the first element;
+ # dependencies are the following elements.
+ dep_list = [Spec.from_node_dict(node) for node in nodes]
+ if not dep_list:
+ raise spack.error.SpecError("YAML spec contains no nodes.")
+ deps = dict((spec.name, spec) for spec in dep_list)
+ spec = dep_list[0]
+
+ for node in nodes:
+ # get dependency dict from the node.
+ name = next(iter(node))
+
+ if 'dependencies' not in node[name]:
+ continue
+
+ for dname, dhash, dtypes, _ in Spec.dependencies_from_node_dict(node):
+ deps[name]._add_dependency(deps[dname], dtypes)
+
+ return spec
+
+
+# Note: This function has been refactored from being a static method
+# of Spec to be a function at the module level. This was needed to
+# support its use in __reduce__ to pickle a Spec object in Python 2.
+# It can be moved back safely after we drop support for Python 2.7
+def _spec_from_dict(data):
+ """Construct a spec from YAML.
+
+ Parameters:
+ data -- a nested dict/list data structure read from YAML or JSON.
+ """
+ if isinstance(data['spec'], list): # Legacy specfile format
+ return _spec_from_old_dict(data)
+
+ # Current specfile format
+ nodes = data['spec']['nodes']
+ hash_type = None
+ any_deps = False
+
+ # Pass 0: Determine hash type
+ for node in nodes:
+ if 'dependencies' in node.keys():
+ any_deps = True
+ for _, _, _, dhash_type in Spec.dependencies_from_node_dict(node):
+ if dhash_type:
+ hash_type = dhash_type
+ break
+
+ if not any_deps: # If we never see a dependency...
+ hash_type = ht.dag_hash.name # use the full_hash provenance
+ elif not hash_type: # Seen a dependency, still don't know hash_type
+ raise spack.error.SpecError("Spec dictionary contains malformed "
+ "dependencies. Old format?")
+
+ hash_dict = {}
+ root_spec_hash = None
+
+ # Pass 1: Create a single lookup dictionary by hash
+ for i, node in enumerate(nodes):
+ if 'build_spec' in node.keys():
+ node_hash = node[hash_type]
+ else:
+ node_hash = node[hash_type]
+ node_spec = Spec.from_node_dict(node)
+ hash_dict[node_hash] = node
+ hash_dict[node_hash]['node_spec'] = node_spec
+ if i == 0:
+ root_spec_hash = node_hash
+ if not root_spec_hash:
+ raise spack.error.SpecError("Spec dictionary contains no nodes.")
+
+ # Pass 2: Finish construction of all DAG edges (including build specs)
+ for node_hash, node in hash_dict.items():
+ node_spec = node['node_spec']
+ for _, dhash, dtypes, _ in Spec.dependencies_from_node_dict(node):
+ node_spec._add_dependency(hash_dict[dhash]['node_spec'], dtypes)
+ if 'build_spec' in node.keys():
+ _, bhash, _ = Spec.build_spec_from_node_dict(node,
+ hash_type=hash_type)
+ node_spec._build_spec = hash_dict[bhash]['node_spec']
+
+ return hash_dict[root_spec_hash]['node_spec']
+
class LazySpecCache(collections.defaultdict):
"""Cache for Specs that uses a spec_like as key, and computes lazily
@@ -4255,8 +4562,8 @@ class SpecLexer(spack.parse.Lexer):
(r'\=', lambda scanner, val: self.token(EQ, val)),
# Filenames match before identifiers, so no initial filename
- # component is parsed as a spec (e.g., in subdir/spec.yaml)
- (r'[/\w.-]*/[/\w/-]+\.yaml[^\b]*',
+ # component is parsed as a spec (e.g., in subdir/spec.yaml/json)
+ (r'[/\w.-]*/[/\w/-]+\.(yaml|json)[^\b]*',
lambda scanner, v: self.token(FILE, v)),
# Hash match after filename. No valid filename can be a hash
@@ -4278,6 +4585,7 @@ _lexer = SpecLexer()
class SpecParser(spack.parse.Parser):
+ """Parses specs."""
def __init__(self, initial_spec=None):
"""Construct a new SpecParser.
@@ -4399,6 +4707,15 @@ class SpecParser(spack.parse.Parser):
except spack.parse.ParseError as e:
raise SpecParseError(e)
+ # Generate lookups for git-commit-based versions
+ for spec in specs:
+ # Cannot do lookups for versions in anonymous specs
+ # Only allow concrete versions using git for now
+ if spec.name and spec.versions.concrete and spec.version.is_commit:
+ pkg = spec.package
+ if hasattr(pkg, 'git'):
+ spec.version.generate_commit_lookup(pkg)
+
return specs
def spec_from_file(self):
@@ -4414,8 +4731,8 @@ class SpecParser(spack.parse.Parser):
1. We require that filenames end in .yaml, which means that no valid
filename can be interpreted as a hash (hashes can't have '.')
- 2. We avoid treating paths like /path/to/spec.yaml as hashes, or paths
- like subdir/spec.yaml as ids by lexing filenames before hashes.
+ 2. We avoid treating paths like /path/to/spec.json as hashes, or paths
+ like subdir/spec.json as ids by lexing filenames before hashes.
3. For spec names that match file and id regexes, like 'builtin.yaml',
we backtrack from spec_from_file() and treat them as spec names.
@@ -4430,14 +4747,16 @@ class SpecParser(spack.parse.Parser):
# The error is clearly an omitted space. To handle this, the FILE
# regex admits text *beyond* .yaml, and we raise a nice error for
# file names that don't end in .yaml.
- if not path.endswith(".yaml"):
+ if not (path.endswith(".yaml") or path.endswith(".json")):
raise SpecFilenameError(
- "Spec filename must end in .yaml: '{0}'".format(path))
+ "Spec filename must end in .yaml or .json: '{0}'".format(path))
if not os.path.exists(path):
raise NoSuchSpecFileError("No such spec file: '{0}'".format(path))
with open(path) as f:
+ if path.endswith(".json"):
+ return Spec.from_json(f)
return Spec.from_yaml(f)
def parse_compiler(self, text):
@@ -4600,16 +4919,24 @@ def parse(string):
return SpecParser().parse(string)
-def save_dependency_spec_yamls(
- root_spec_as_yaml, output_directory, dependencies=None):
+def save_dependency_specfiles(
+ root_spec_info, output_directory, dependencies=None,
+ spec_format='json'):
"""Given a root spec (represented as a yaml object), index it with a subset
of its dependencies, and write each dependency to a separate yaml file
in the output directory. By default, all dependencies will be written
out. To choose a smaller subset of dependencies to be written, pass a
- list of package names in the dependencies parameter. In case of any
- kind of error, SaveSpecDependenciesError is raised with a specific
- message about what went wrong."""
- root_spec = Spec.from_yaml(root_spec_as_yaml)
+ list of package names in the dependencies parameter. If the format of the
+ incoming spec is not json, that can be specified with the spec_format
+ parameter. This can be used to convert from yaml specfiles to the
+ json format."""
+ if spec_format == 'json':
+ root_spec = Spec.from_json(root_spec_info)
+ elif spec_format == 'yaml':
+ root_spec = Spec.from_yaml(root_spec_info)
+ else:
+ raise SpecParseError('Unrecognized spec format {0}.'.format(
+ spec_format))
dep_list = dependencies
if not dep_list:
@@ -4621,20 +4948,10 @@ def save_dependency_spec_yamls(
dep_name, root_spec.name)
raise SpecDependencyNotFoundError(msg)
dep_spec = root_spec[dep_name]
- yaml_path = os.path.join(output_directory, '{0}.yaml'.format(dep_name))
-
- with open(yaml_path, 'w') as fd:
- fd.write(dep_spec.to_yaml(hash=ht.build_hash))
-
-
-def base32_prefix_bits(hash_string, bits):
- """Return the first <bits> bits of a base32 string as an integer."""
- if bits > len(hash_string) * 5:
- raise ValueError("Too many bits! Requested %d bit prefix of '%s'."
- % (bits, hash_string))
+ json_path = os.path.join(output_directory, '{0}.json'.format(dep_name))
- hash_bytes = base64.b32decode(hash_string, casefold=True)
- return spack.util.crypto.prefix_bits(hash_bytes, bits)
+ with open(json_path, 'w') as fd:
+ fd.write(dep_spec.to_json(hash=ht.build_hash))
class SpecParseError(spack.error.SpecError):
diff --git a/lib/spack/spack/spec_list.py b/lib/spack/spack/spec_list.py
index 1aa0ab870e..e7b12e0996 100644
--- a/lib/spack/spack/spec_list.py
+++ b/lib/spack/spack/spec_list.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import itertools
+
from six import string_types
import spack.variant
-from spack.spec import Spec
from spack.error import SpackError
+from spack.spec import Spec
def spec_ordering_key(s):
diff --git a/lib/spack/spack/stage.py b/lib/spack/spack/stage.py
index 719d408d84..14413669f1 100644
--- a/lib/spack/spack/stage.py
+++ b/lib/spack/spack/stage.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,27 +14,32 @@ import shutil
import stat
import sys
import tempfile
-from six import string_types
-from six import iteritems
+from typing import Dict # novm
+from six import iteritems, string_types
+
+import llnl.util.lang
import llnl.util.tty as tty
-from llnl.util.filesystem import mkdirp, can_access, install, install_tree
-from llnl.util.filesystem import partition_path, remove_linked_tree
+from llnl.util.filesystem import (
+ can_access,
+ install,
+ install_tree,
+ mkdirp,
+ partition_path,
+ remove_linked_tree,
+)
-import spack.paths
import spack.caches
-import spack.cmd
import spack.config
import spack.error
+import spack.fetch_strategy as fs
import spack.mirror
+import spack.paths
import spack.util.lock
-import spack.fetch_strategy as fs
-import spack.util.pattern as pattern
import spack.util.path as sup
+import spack.util.pattern as pattern
import spack.util.url as url_util
-
-from spack.util.crypto import prefix_bits, bit_length
-
+from spack.util.crypto import bit_length, prefix_bits
# The well-known stage source subdirectory name.
_source_path_subdir = 'spack-src'
@@ -43,7 +48,8 @@ _source_path_subdir = 'spack-src'
stage_prefix = 'spack-stage-'
-def _create_stage_root(path):
+def create_stage_root(path):
+ # type: (str) -> None
"""Create the stage root directory and ensure appropriate access perms."""
assert path.startswith(os.path.sep) and len(path.strip()) > 1
@@ -98,6 +104,15 @@ def _create_stage_root(path):
tty.warn("Expected user {0} to own {1}, but it is owned by {2}"
.format(user_uid, p, p_stat.st_uid))
+ spack_src_subdir = os.path.join(path, _source_path_subdir)
+ # When staging into a user-specified directory with `spack stage -p <PATH>`, we need
+ # to ensure the `spack-src` subdirectory exists, as we can't rely on it being
+ # created automatically by spack. It's not clear why this is the case for `spack
+ # stage -p`, but since `mkdirp()` is idempotent, this should not change the behavior
+ # for any other code paths.
+ if not os.path.isdir(spack_src_subdir):
+ mkdirp(spack_src_subdir, mode=stat.S_IRWXU)
+
def _first_accessible_path(paths):
"""Find the first path that is accessible, creating it if necessary."""
@@ -109,7 +124,7 @@ def _first_accessible_path(paths):
return path
else:
# Now create the stage root with the proper group/perms.
- _create_stage_root(path)
+ create_stage_root(path)
return path
except OSError as e:
@@ -221,7 +236,7 @@ class Stage(object):
"""
"""Shared dict of all stage locks."""
- stage_locks = {}
+ stage_locks = {} # type: Dict[str, spack.util.lock.Lock]
"""Most staging is managed by Spack. DIYStage is one exception."""
managed_by_spack = True
@@ -550,8 +565,9 @@ class Stage(object):
"""Perform a fetch if the resource is not already cached
Arguments:
- mirror (MirrorCache): the mirror to cache this Stage's resource in
- stats (MirrorStats): this is updated depending on whether the
+ mirror (spack.caches.MirrorCache): the mirror to cache this Stage's
+ resource in
+ stats (spack.mirror.MirrorStats): this is updated depending on whether the
caching operation succeeded or failed
"""
if isinstance(self.default_fetcher, fs.BundleFetchStrategy):
@@ -602,12 +618,12 @@ class Stage(object):
"""
Ensures the top-level (config:build_stage) directory exists.
"""
- # Emulate file permissions for tempfile.mkdtemp.
+ # User has full permissions and group has only read permissions
if not os.path.exists(self.path):
- mkdirp(self.path, mode=stat.S_IRWXU)
+ mkdirp(self.path, mode=stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP)
elif not os.path.isdir(self.path):
os.remove(self.path)
- mkdirp(self.path, mode=stat.S_IRWXU)
+ mkdirp(self.path, mode=stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP)
# Make sure we can actually do something with the stage we made.
ensure_access(self.path)
@@ -820,7 +836,7 @@ def get_checksums_for_versions(
Args:
url_dict (dict): A dictionary of the form: version -> URL
name (str): The name of the package
- first_stage_function (callable): function that takes a Stage and a URL;
+ first_stage_function (typing.Callable): function that takes a Stage and a URL;
this is run on the stage of the first URL downloaded
keep_stage (bool): whether to keep staging area when command completes
batch (bool): whether to ask user how many versions to fetch (false)
@@ -841,7 +857,7 @@ def get_checksums_for_versions(
tty.msg('Found {0} version{1} of {2}:'.format(
num_ver, '' if num_ver == 1 else 's', name),
'',
- *spack.cmd.elide_list(
+ *llnl.util.lang.elide_list(
['{0:{1}} {2}'.format(str(v), max_len, url_dict[v])
for v in sorted_versions]))
print()
diff --git a/lib/spack/spack/store.py b/lib/spack/spack/store.py
index 157ba00be6..c60772e595 100644
--- a/lib/spack/spack/store.py
+++ b/lib/spack/spack/store.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,27 +16,21 @@ Spack. The simplest store could just contain prefixes named by DAG hash,
but we use a fancier directory layout to make browsing the store and
debugging easier.
-The directory layout is currently hard-coded to be a YAMLDirectoryLayout,
-so called because it stores build metadata within each prefix, in
-`spec.yaml` files. In future versions of Spack we may consider allowing
-install trees to define their own layouts with some per-tree
-configuration.
-
"""
import contextlib
import os
import re
+
import six
import llnl.util.lang
import llnl.util.tty as tty
-import spack.paths
import spack.config
-import spack.util.path
import spack.database
import spack.directory_layout
-
+import spack.paths
+import spack.util.path
#: default installation root, relative to the Spack install path
default_install_tree_root = os.path.join(spack.paths.opt_path, 'spack')
@@ -158,18 +152,42 @@ class Store(object):
):
self.root = root
self.unpadded_root = unpadded_root or root
+ self.projections = projections
+ self.hash_length = hash_length
self.db = spack.database.Database(
root, upstream_dbs=retrieve_upstream_dbs())
- self.layout = spack.directory_layout.YamlDirectoryLayout(
+ self.layout = spack.directory_layout.DirectoryLayout(
root, projections=projections, hash_length=hash_length)
def reindex(self):
"""Convenience function to reindex the store DB with its own layout."""
return self.db.reindex(self.layout)
+ def serialize(self):
+ """Return a pickle-able object that can be used to reconstruct
+ a store.
+ """
+ return (
+ self.root, self.unpadded_root, self.projections, self.hash_length
+ )
+
+ @staticmethod
+ def deserialize(token):
+ """Return a store reconstructed from a token created by
+ the serialize method.
+
+ Args:
+ token: return value of the serialize method
+
+ Returns:
+ Store object reconstructed from the token
+ """
+ return Store(*token)
+
def _store():
"""Get the singleton store instance."""
+ import spack.bootstrap
config_dict = spack.config.get('config')
root, unpadded_root, projections = parse_install_tree(config_dict)
hash_length = spack.config.get('config:install_hash_length')
@@ -178,7 +196,8 @@ def _store():
# reserved by Spack to bootstrap its own dependencies, since this would
# lead to bizarre behaviors (e.g. cleaning the bootstrap area would wipe
# user installed software)
- if spack.paths.user_bootstrap_store == root:
+ enable_bootstrap = spack.config.get('bootstrap:enable', True)
+ if enable_bootstrap and spack.bootstrap.store_path() == root:
msg = ('please change the install tree root "{0}" in your '
'configuration [path reserved for Spack internal use]')
raise ValueError(msg.format(root))
@@ -258,13 +277,12 @@ def use_store(store_or_path):
"""Use the store passed as argument within the context manager.
Args:
- store_or_path: either a Store object ot a path to where the
- store resides
+ store_or_path: either a Store object ot a path to where the store resides
Returns:
Store object associated with the context manager's store
"""
- global store
+ global store, db, layout, root, unpadded_root
# Normalize input arguments
temporary_store = store_or_path
@@ -272,8 +290,15 @@ def use_store(store_or_path):
temporary_store = Store(store_or_path)
# Swap the store with the one just constructed and return it
+ _ = store.db
original_store, store = store, temporary_store
- yield temporary_store
-
- # Restore the original store
- store = original_store
+ db, layout = store.db, store.layout
+ root, unpadded_root = store.root, store.unpadded_root
+
+ try:
+ yield temporary_store
+ finally:
+ # Restore the original store
+ store = original_store
+ db, layout = original_store.db, original_store.layout
+ root, unpadded_root = original_store.root, original_store.unpadded_root
diff --git a/lib/spack/spack/subprocess_context.py b/lib/spack/spack/subprocess_context.py
index b8e157740f..bfba6b0acc 100644
--- a/lib/spack/spack/subprocess_context.py
+++ b/lib/spack/spack/subprocess_context.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,18 +13,16 @@ modifications to global state in memory that must be replicated in the
child process.
"""
-from types import ModuleType
-
+import io
+import multiprocessing
import pickle
import pydoc
-import io
import sys
-import multiprocessing
+from types import ModuleType
import spack.architecture
import spack.config
-
_serialize = sys.version_info >= (3, 8) and sys.platform == 'darwin'
@@ -65,17 +63,25 @@ class PackageInstallContext(object):
needs to be transmitted to a child process.
"""
def __init__(self, pkg):
+ import spack.environment as ev # break import cycle
if _serialize:
self.serialized_pkg = serialize(pkg)
+ self.serialized_env = serialize(ev._active_environment)
else:
self.pkg = pkg
+ self.env = ev._active_environment
+ self.spack_working_dir = spack.main.spack_working_dir
self.test_state = TestState()
def restore(self):
+ import spack.environment as ev # break import cycle
self.test_state.restore()
+ spack.main.spack_working_dir = self.spack_working_dir
if _serialize:
+ ev._active_environment = pickle.load(self.serialized_env)
return pickle.load(self.serialized_pkg)
else:
+ ev._active_environment = self.env
return self.pkg
@@ -91,18 +97,21 @@ class TestState(object):
self.config = spack.config.config
self.platform = spack.architecture.platform
self.test_patches = store_patches()
-
- # TODO: transfer spack.store.store? note that you should not
- # transfer spack.store.store and spack.store.db: 'db' is a
- # shortcut that accesses the store (so transferring both can
- # create an inconsistency). Some tests set 'db' directly, and
- # others set 'store'
+ self.store_token = spack.store.store.serialize()
def restore(self):
if _serialize:
spack.repo.path = spack.repo._path(self.repo_dirs)
spack.config.config = self.config
spack.architecture.platform = self.platform
+
+ new_store = spack.store.Store.deserialize(self.store_token)
+ spack.store.store = new_store
+ spack.store.root = new_store.root
+ spack.store.unpadded_root = new_store.unpadded_root
+ spack.store.db = new_store.db
+ spack.store.layout = new_store.layout
+
self.test_patches.restore()
@@ -130,16 +139,15 @@ def store_patches():
class_patches = list()
if not patches:
return TestPatches(list(), list())
- for patch in patches:
- for target, name, _ in patches:
- if isinstance(target, ModuleType):
- new_val = getattr(target, name)
- module_name = target.__name__
- module_patches.append((module_name, name, new_val))
- elif isinstance(target, type):
- new_val = getattr(target, name)
- class_fqn = '.'.join([target.__module__, target.__name__])
- class_patches.append((class_fqn, name, new_val))
+ for target, name, _ in patches:
+ if isinstance(target, ModuleType):
+ new_val = getattr(target, name)
+ module_name = target.__name__
+ module_patches.append((module_name, name, new_val))
+ elif isinstance(target, type):
+ new_val = getattr(target, name)
+ class_fqn = '.'.join([target.__module__, target.__name__])
+ class_patches.append((class_fqn, name, new_val))
return TestPatches(module_patches, class_patches)
diff --git a/lib/spack/spack/target.py b/lib/spack/spack/target.py
new file mode 100644
index 0000000000..727df77e1b
--- /dev/null
+++ b/lib/spack/spack/target.py
@@ -0,0 +1,162 @@
+# Copyright 2013-2021 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)
+import functools
+import warnings
+
+import six
+
+import archspec.cpu
+
+import llnl.util.tty as tty
+
+import spack.compiler
+import spack.compilers
+import spack.spec
+import spack.util.spack_yaml as syaml
+
+
+def _ensure_other_is_target(method):
+ """In a single argument method, ensure that the argument is an
+ instance of ``Target``.
+ """
+ @functools.wraps(method)
+ def _impl(self, other):
+ if isinstance(other, six.string_types):
+ other = Target(other)
+
+ if not isinstance(other, Target):
+ return NotImplemented
+
+ return method(self, other)
+
+ return _impl
+
+
+class Target(object):
+ def __init__(self, name, module_name=None):
+ """Target models microarchitectures and their compatibility.
+
+ Args:
+ name (str or Microarchitecture): microarchitecture of the target
+ module_name (str): optional module name to get access to the
+ current target. This is typically used on machines
+ like Cray (e.g. craype-compiler)
+ """
+ if not isinstance(name, archspec.cpu.Microarchitecture):
+ name = archspec.cpu.TARGETS.get(
+ name, archspec.cpu.generic_microarchitecture(name)
+ )
+ self.microarchitecture = name
+ self.module_name = module_name
+
+ @property
+ def name(self):
+ return self.microarchitecture.name
+
+ @_ensure_other_is_target
+ def __eq__(self, other):
+ return (self.microarchitecture == other.microarchitecture and
+ self.module_name == other.module_name)
+
+ def __ne__(self, other):
+ # This method is necessary as long as we support Python 2. In Python 3
+ # __ne__ defaults to the implementation below
+ return not self == other
+
+ @_ensure_other_is_target
+ def __lt__(self, other):
+ # TODO: In the future it would be convenient to say
+ # TODO: `spec.architecture.target < other.architecture.target`
+ # TODO: and change the semantic of the comparison operators
+
+ # This is needed to sort deterministically specs in a list.
+ # It doesn't implement a total ordering semantic.
+ return self.microarchitecture.name < other.microarchitecture.name
+
+ def __hash__(self):
+ return hash((self.name, self.module_name))
+
+ @staticmethod
+ def from_dict_or_value(dict_or_value):
+ # A string here represents a generic target (like x86_64 or ppc64) or
+ # a custom micro-architecture
+ if isinstance(dict_or_value, six.string_types):
+ return Target(dict_or_value)
+
+ # TODO: From a dict we actually retrieve much more information than
+ # TODO: just the name. We can use that information to reconstruct an
+ # TODO: "old" micro-architecture or check the current definition.
+ target_info = dict_or_value
+ return Target(target_info['name'])
+
+ def to_dict_or_value(self):
+ """Returns a dict or a value representing the current target.
+
+ String values are used to keep backward compatibility with generic
+ targets, like e.g. x86_64 or ppc64. More specific micro-architectures
+ will return a dictionary which contains information on the name,
+ features, vendor, generation and parents of the current target.
+ """
+ # Generic targets represent either an architecture
+ # family (like x86_64) or a custom micro-architecture
+ if self.microarchitecture.vendor == 'generic':
+ return str(self)
+
+ return syaml.syaml_dict(
+ self.microarchitecture.to_dict(return_list_of_items=True)
+ )
+
+ def __repr__(self):
+ cls_name = self.__class__.__name__
+ fmt = cls_name + '({0}, {1})'
+ return fmt.format(repr(self.microarchitecture),
+ repr(self.module_name))
+
+ def __str__(self):
+ return str(self.microarchitecture)
+
+ def __contains__(self, cpu_flag):
+ return cpu_flag in self.microarchitecture
+
+ def optimization_flags(self, compiler):
+ """Returns the flags needed to optimize for this target using
+ the compiler passed as argument.
+
+ Args:
+ compiler (spack.spec.CompilerSpec or spack.compiler.Compiler): object that
+ contains both the name and the version of the compiler we want to use
+ """
+ # Mixed toolchains are not supported yet
+ if isinstance(compiler, spack.compiler.Compiler):
+ if spack.compilers.is_mixed_toolchain(compiler):
+ msg = ('microarchitecture specific optimizations are not '
+ 'supported yet on mixed compiler toolchains [check'
+ ' {0.name}@{0.version} for further details]')
+ warnings.warn(msg.format(compiler))
+ return ''
+
+ # Try to check if the current compiler comes with a version number or
+ # has an unexpected suffix. If so, treat it as a compiler with a
+ # custom spec.
+ compiler_version = compiler.version
+ version_number, suffix = archspec.cpu.version_components(
+ compiler.version
+ )
+ if not version_number or suffix not in ('', 'apple'):
+ # Try to deduce the underlying version of the compiler, regardless
+ # of its name in compilers.yaml. Depending on where this function
+ # is called we might get either a CompilerSpec or a fully fledged
+ # compiler object.
+ if isinstance(compiler, spack.spec.CompilerSpec):
+ compiler = spack.compilers.compilers_for_spec(compiler).pop()
+ try:
+ compiler_version = compiler.real_version
+ except spack.util.executable.ProcessError as e:
+ # log this and just return compiler.version instead
+ tty.debug(str(e))
+
+ return self.microarchitecture.optimization_flags(
+ compiler.name, str(compiler_version)
+ )
diff --git a/lib/spack/spack/tengine.py b/lib/spack/spack/tengine.py
index 15268e682d..7748555689 100644
--- a/lib/spack/spack/tengine.py
+++ b/lib/spack/spack/tengine.py
@@ -1,13 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import itertools
import textwrap
+from typing import List # novm
-import llnl.util.lang
import six
+import llnl.util.lang
+
import spack.config
from spack.util.path import canonicalize_path
@@ -18,7 +20,7 @@ class ContextMeta(type):
"""
#: Keeps track of the context properties that have been added
#: by the class that is being defined
- _new_context_properties = []
+ _new_context_properties = [] # type: List[str]
def __new__(cls, name, bases, attr_dict):
# Merge all the context properties that are coming from base classes
diff --git a/lib/spack/spack/test/__init__.py b/lib/spack/spack/test/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/test/__init__.py
+++ b/lib/spack/spack/test/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/abi.py b/lib/spack/spack/test/abi.py
index dd41228941..ee2aa1f3e6 100644
--- a/lib/spack/spack/test/abi.py
+++ b/lib/spack/spack/test/abi.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/architecture.py b/lib/spack/spack/test/architecture.py
index 47e1e25fe8..fd65c9558c 100644
--- a/lib/spack/spack/test/architecture.py
+++ b/lib/spack/spack/test/architecture.py
@@ -1,146 +1,119 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-
-""" Test checks if the architecture class is created correctly and also that
- the functions are looking for the correct architecture name
-"""
-import itertools
import os
-import platform as py_platform
+import platform
import pytest
import spack.architecture
import spack.concretize
-from spack.spec import Spec
-from spack.platforms.cray import Cray
-from spack.platforms.linux import Linux
-from spack.platforms.darwin import Darwin
+import spack.operating_systems
+import spack.platforms
+import spack.spec
+import spack.target
-def test_dict_functions_for_architecture():
+@pytest.fixture
+def sample_arch():
+ """Sample test architecture"""
arch = spack.architecture.Arch()
arch.platform = spack.architecture.platform()
arch.os = arch.platform.operating_system('default_os')
arch.target = arch.platform.target('default_target')
-
- new_arch = spack.architecture.Arch.from_dict(arch.to_dict())
-
- assert arch == new_arch
- assert isinstance(arch, spack.architecture.Arch)
- assert isinstance(arch.platform, spack.architecture.Platform)
- assert isinstance(arch.os, spack.architecture.OperatingSystem)
- assert isinstance(arch.target, spack.architecture.Target)
- assert isinstance(new_arch, spack.architecture.Arch)
- assert isinstance(new_arch.platform, spack.architecture.Platform)
- assert isinstance(new_arch.os, spack.architecture.OperatingSystem)
- assert isinstance(new_arch.target, spack.architecture.Target)
+ return arch
-def test_platform():
- output_platform_class = spack.architecture.real_platform()
+@pytest.fixture
+def current_host_platform():
+ """Return the platform of the current host as detected by the
+ 'platform' stdlib package.
+ """
if os.path.exists('/opt/cray/pe'):
- my_platform_class = Cray()
- elif 'Linux' in py_platform.system():
- my_platform_class = Linux()
- elif 'Darwin' in py_platform.system():
- my_platform_class = Darwin()
-
- assert str(output_platform_class) == str(my_platform_class)
+ current_platform = spack.platforms.Cray()
+ elif 'Linux' in platform.system():
+ current_platform = spack.platforms.Linux()
+ elif 'Darwin' in platform.system():
+ current_platform = spack.platforms.Darwin()
+ return current_platform
-def test_boolness():
- # Make sure architecture reports that it's False when nothing's set.
- arch = spack.architecture.Arch()
- assert not arch
+# Valid keywords for os=xxx or target=xxx
+valid_keywords = ["fe", "be", "frontend", "backend"]
- # Dummy architecture parts
- plat = spack.architecture.platform()
- plat_os = plat.operating_system('default_os')
- plat_target = plat.target('default_target')
- # Make sure architecture reports that it's True when anything is set.
- arch = spack.architecture.Arch()
- arch.platform = plat
- assert arch
+@pytest.fixture(
+ params=([x for x in spack.platforms.Test().targets]
+ + valid_keywords + ['default_target'])
+)
+def target_str(request):
+ """All the possible strings that can be used for targets"""
+ return str(request.param)
- arch = spack.architecture.Arch()
- arch.os = plat_os
- assert arch
- arch = spack.architecture.Arch()
- arch.target = plat_target
- assert arch
+@pytest.fixture(
+ params=([x for x in spack.platforms.Test().operating_sys]
+ + valid_keywords + ['default_os'])
+)
+def os_str(request):
+ """All the possible strings that can be used for operating systems"""
+ return str(request.param)
-def test_user_front_end_input(config):
- """Test when user inputs just frontend that both the frontend target
- and frontend operating system match
- """
- platform = spack.architecture.platform()
- frontend_os = str(platform.operating_system('frontend'))
- frontend_target = platform.target('frontend')
+def test_dict_round_trip(sample_arch):
+ """Check that a round trip through dict return an equivalent architecture"""
+ sample_arch_copy = spack.architecture.Arch.from_dict(sample_arch.to_dict())
- frontend_spec = Spec('libelf os=frontend target=frontend')
- frontend_spec.concretize()
+ assert sample_arch == sample_arch_copy
+ for current_arch in (sample_arch, sample_arch_copy):
+ assert isinstance(current_arch, spack.architecture.Arch)
+ assert isinstance(current_arch.platform, spack.platforms.Platform)
+ assert isinstance(current_arch.os, spack.operating_systems.OperatingSystem)
+ assert isinstance(current_arch.target, spack.target.Target)
- assert frontend_os == frontend_spec.architecture.os
- assert frontend_target == frontend_spec.architecture.target
+def test_platform(current_host_platform):
+ """Check that current host detection return the correct platform"""
+ detected_platform = spack.architecture.real_platform()
+ assert str(detected_platform) == str(current_host_platform)
-def test_user_back_end_input(config):
- """Test when user inputs backend that both the backend target and
- backend operating system match
- """
- platform = spack.architecture.platform()
- backend_os = str(platform.operating_system("backend"))
- backend_target = platform.target("backend")
-
- backend_spec = Spec("libelf os=backend target=backend")
- backend_spec.concretize()
-
- assert backend_os == backend_spec.architecture.os
- assert backend_target == backend_spec.architecture.target
-
-
-def test_user_defaults(config):
- platform = spack.architecture.platform()
- default_os = str(platform.operating_system("default_os"))
- default_target = platform.target("default_target")
-
- default_spec = Spec("libelf") # default is no args
- default_spec.concretize()
-
- assert default_os == default_spec.architecture.os
- assert default_target == default_spec.architecture.target
+@pytest.mark.parametrize('attribute_name,expected', [
+ # Make sure architecture reports that it's False when nothing's set.
+ (None, False),
+ # ... and it reports True otherwise
+ ('platform', True),
+ ('os', True),
+ ('target', True)
+])
+def test_boolness(sample_arch, attribute_name, expected):
+ """Boolean checks on an architecture object"""
+ arch = spack.architecture.Arch()
+ if attribute_name:
+ setattr(arch, attribute_name, getattr(sample_arch, attribute_name))
-def test_user_input_combination(config):
- valid_keywords = ["fe", "be", "frontend", "backend"]
+ assert bool(arch) is expected
- possible_targets = ([x for x in spack.architecture.platform().targets]
- + valid_keywords)
- possible_os = ([x for x in spack.architecture.platform().operating_sys]
- + valid_keywords)
+def test_user_input_combination(config, target_str, os_str):
+ """Test for all the valid user input combinations that both the target and
+ the operating system match.
+ """
+ platform = spack.platforms.Test()
+ spec_str = "libelf"
+ if os_str != "default_os":
+ spec_str += " os={0}".format(os_str)
+ if target_str != "default_target":
+ spec_str += " target={0}".format(target_str)
+ spec = spack.spec.Spec(spec_str).concretized()
- for target, operating_system in itertools.product(
- possible_targets, possible_os
- ):
- platform = spack.architecture.platform()
- spec_str = "libelf os={0} target={1}".format(operating_system, target)
- spec = Spec(spec_str)
- spec.concretize()
- assert spec.architecture.os == str(
- platform.operating_system(operating_system)
- )
- assert spec.architecture.target == platform.target(target)
+ assert spec.architecture.os == str(platform.operating_system(os_str))
+ assert spec.architecture.target == platform.target(target_str)
def test_operating_system_conversion_to_dict():
- operating_system = spack.architecture.OperatingSystem('os', '1.0')
+ operating_system = spack.operating_systems.OperatingSystem('os', '1.0')
assert operating_system.to_dict() == {
'name': 'os', 'version': '1.0'
}
@@ -158,7 +131,7 @@ def test_operating_system_conversion_to_dict():
('avx512', 'icelake'),
])
def test_target_container_semantic(cpu_flag, target_name):
- target = spack.architecture.Target(target_name)
+ target = spack.target.Target(target_name)
assert cpu_flag in target
@@ -188,7 +161,7 @@ def test_arch_spec_container_semantic(item, architecture_str):
def test_optimization_flags(
compiler_spec, target_name, expected_flags, config
):
- target = spack.architecture.Target(target_name)
+ target = spack.target.Target(target_name)
compiler = spack.compilers.compilers_for_spec(compiler_spec).pop()
opt_flags = target.optimization_flags(compiler)
assert opt_flags == expected_flags
@@ -211,7 +184,7 @@ def test_optimization_flags(
def test_optimization_flags_with_custom_versions(
compiler, real_version, target_str, expected_flags, monkeypatch, config
):
- target = spack.architecture.Target(target_str)
+ target = spack.target.Target(target_str)
if real_version:
monkeypatch.setattr(
spack.compiler.Compiler, 'get_real_version',
@@ -234,16 +207,15 @@ def test_satisfy_strict_constraint_when_not_concrete(
@pytest.mark.parametrize('root_target_range,dep_target_range,result', [
- (('x86_64:nocona', 'x86_64:core2', 'nocona')), # pref not in intersection
- (('x86_64:core2', 'x86_64:nocona', 'nocona')),
- (('x86_64:haswell', 'x86_64:mic_knl', 'core2')), # pref in intersection
- (('ivybridge', 'nocona:skylake', 'ivybridge')), # one side concrete
- (('haswell:icelake', 'broadwell', 'broadwell')),
+ ('x86_64:nocona', 'x86_64:core2', 'nocona'), # pref not in intersection
+ ('x86_64:core2', 'x86_64:nocona', 'nocona'),
+ ('x86_64:haswell', 'x86_64:mic_knl', 'core2'), # pref in intersection
+ ('ivybridge', 'nocona:skylake', 'ivybridge'), # one side concrete
+ ('haswell:icelake', 'broadwell', 'broadwell'),
# multiple ranges in lists with multiple overlaps
- (('x86_64:nocona,haswell:broadwell', 'nocona:haswell,skylake:',
- 'nocona')),
+ ('x86_64:nocona,haswell:broadwell', 'nocona:haswell,skylake:', 'nocona'),
# lists with concrete targets, lists compared to ranges
- (('x86_64,haswell', 'core2:broadwell', 'haswell'))
+ ('x86_64,haswell', 'core2:broadwell', 'haswell')
])
@pytest.mark.usefixtures('mock_packages', 'config')
def test_concretize_target_ranges(
@@ -251,8 +223,9 @@ def test_concretize_target_ranges(
):
# use foobar=bar to make the problem simpler for the old concretizer
# the new concretizer should not need that help
- spec = Spec('a %%gcc@10 foobar=bar target=%s ^b target=%s' %
+ spec_str = ('a %%gcc@10 foobar=bar target=%s ^b target=%s' %
(root_target_range, dep_target_range))
+ spec = spack.spec.Spec(spec_str)
with spack.concretize.disable_compiler_existence_check():
spec.concretize()
diff --git a/lib/spack/spack/test/audit.py b/lib/spack/spack/test/audit.py
new file mode 100644
index 0000000000..a2edff185e
--- /dev/null
+++ b/lib/spack/spack/test/audit.py
@@ -0,0 +1,85 @@
+# Copyright 2013-2021 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)
+import pytest
+
+import spack.audit
+import spack.config
+
+
+@pytest.mark.parametrize('packages,failing_check', [
+ # A non existing variant is used in a conflict directive
+ (['wrong-variant-in-conflicts'], 'PKG-DIRECTIVES'),
+ # The package declares a non-existing dependency
+ (['missing-dependency'], 'PKG-DIRECTIVES'),
+ # The package use a non existing variant in a depends_on directive
+ (['wrong-variant-in-depends-on'], 'PKG-DIRECTIVES'),
+ # This package has no issues
+ (['mpileaks'], None)
+])
+def test_package_audits(packages, failing_check, mock_packages):
+ reports = spack.audit.run_group('packages', pkgs=packages)
+
+ for check, errors in reports:
+ # Check that we have errors only if there is an expected failure
+ # and that the tag matches our expectations
+ if bool(failing_check):
+ assert check == failing_check
+ assert errors
+ else:
+ assert not errors
+
+
+# Data used in the test below to audit the double definition of a compiler
+_double_compiler_definition = [
+ {'compiler': {
+ 'spec': 'gcc@9.0.1',
+ 'paths': {
+ 'cc': '/usr/bin/gcc-9',
+ 'cxx': '/usr/bin/g++-9',
+ 'f77': '/usr/bin/gfortran-9',
+ 'fc': '/usr/bin/gfortran-9'
+ },
+ 'flags': {},
+ 'operating_system': 'ubuntu18.04',
+ 'target': 'x86_64',
+ 'modules': [],
+ 'environment': {},
+ 'extra_rpaths': []
+ }},
+ {'compiler': {
+ 'spec': 'gcc@9.0.1',
+ 'paths': {
+ 'cc': '/usr/bin/gcc-9',
+ 'cxx': '/usr/bin/g++-9',
+ 'f77': '/usr/bin/gfortran-9',
+ 'fc': '/usr/bin/gfortran-9'
+ },
+ 'flags': {"cflags": "-O3"},
+ 'operating_system': 'ubuntu18.04',
+ 'target': 'x86_64',
+ 'modules': [],
+ 'environment': {},
+ 'extra_rpaths': []
+ }}
+]
+
+
+@pytest.mark.parametrize('config_section,data,failing_check', [
+ # Double compiler definitions in compilers.yaml
+ ('compilers', _double_compiler_definition, 'CFG-COMPILER'),
+ # Multiple definitions of the same external spec in packages.yaml
+ ('packages', {
+ "mpileaks": {"externals": [
+ {"spec": "mpileaks@1.0.0", "prefix": "/"},
+ {"spec": "mpileaks@1.0.0", "prefix": "/usr"},
+ ]}
+ }, 'CFG-PACKAGES')
+])
+def test_config_audits(config_section, data, failing_check):
+ with spack.config.override(config_section, data):
+ reports = spack.audit.run_group('configs')
+ assert any(
+ (check == failing_check) and errors for check, errors in reports
+ )
diff --git a/lib/spack/spack/test/bindist.py b/lib/spack/spack/test/bindist.py
index 05cfda5019..abaa0905d0 100644
--- a/lib/spack/spack/test/bindist.py
+++ b/lib/spack/spack/test/bindist.py
@@ -1,96 +1,79 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+import platform
+import shutil
import sys
+
import py
import pytest
-import argparse
-import platform
-import spack.repo
-import spack.store
+
+import llnl.util.filesystem as fs
+
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
+import spack.config
import spack.hooks.sbang as sbang
-from spack.main import SpackCommand
+import spack.main
import spack.mirror
+import spack.repo
+import spack.spec as spec
+import spack.store
import spack.util.gpg
import spack.util.web as web_util
-from spack.directory_layout import YamlDirectoryLayout
+from spack.directory_layout import DirectoryLayout
+from spack.paths import test_path
from spack.spec import Spec
+mirror_cmd = spack.main.SpackCommand('mirror')
+install_cmd = spack.main.SpackCommand('install')
+uninstall_cmd = spack.main.SpackCommand('uninstall')
+buildcache_cmd = spack.main.SpackCommand('buildcache')
-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
-
-mirror_cmd = SpackCommand('mirror')
-install_cmd = SpackCommand('install')
-uninstall_cmd = SpackCommand('uninstall')
-buildcache_cmd = SpackCommand('buildcache')
+legacy_mirror_dir = os.path.join(test_path, 'data', 'mirrors', 'legacy_yaml')
@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()
+ fetch_cache_dir = tmpdir.ensure('fetch_cache', dir=True)
+ fsc = spack.fetch_strategy.FsCache(str(fetch_cache_dir))
+ spack.config.caches, old_cache_path = fsc, spack.caches.fetch_cache
+ yield spack.config.caches
-@pytest.fixture(scope='function')
-def mirror_directory_def(session_mirror_def):
- yield str(session_mirror_def)
+ fetch_cache_dir.remove()
+ spack.config.caches = old_cache_path
-@pytest.fixture(scope='session')
-def session_mirror_rel(tmpdir_factory):
+@pytest.fixture(scope='module')
+def mirror_dir(tmpdir_factory):
dir = tmpdir_factory.mktemp('mirror')
- global mirror_path_rel
- mirror_path_rel = dir
dir.ensure('build_cache', dir=True)
- yield dir
+ yield str(dir)
dir.join('build_cache').remove()
@pytest.fixture(scope='function')
-def mirror_directory_rel(session_mirror_rel):
- yield(session_mirror_rel)
+def test_mirror(mirror_dir):
+ mirror_url = 'file://%s' % mirror_dir
+ mirror_cmd('add', '--scope', 'site', 'test-mirror-func', mirror_url)
+ yield mirror_dir
+ mirror_cmd('rm', '--scope=site', 'test-mirror-func')
@pytest.fixture(scope='function')
-def function_mirror(tmpdir):
- mirror_dir = str(tmpdir.join('mirror'))
- mirror_cmd('add', '--scope', 'site', 'test-mirror-func',
- 'file://%s' % mirror_dir)
+def test_legacy_mirror(mutable_config, tmpdir):
+ mirror_dir = tmpdir.join('legacy_yaml_mirror')
+ shutil.copytree(legacy_mirror_dir, mirror_dir.strpath)
+ mirror_url = 'file://%s' % mirror_dir
+ mirror_cmd('add', '--scope', 'site', 'test-legacy-yaml', mirror_url)
yield mirror_dir
- mirror_cmd('rm', '--scope=site', 'test-mirror-func')
+ mirror_cmd('rm', '--scope=site', 'test-legacy-yaml')
-@pytest.fixture(scope='session')
+@pytest.fixture(scope='module')
def config_directory(tmpdir_factory):
tmpdir = tmpdir_factory.mktemp('test_configs')
# restore some sane defaults for packages and config
@@ -116,8 +99,14 @@ def config_directory(tmpdir_factory):
@pytest.fixture(scope='function')
-def default_config(tmpdir_factory, config_directory, monkeypatch):
-
+def default_config(
+ tmpdir_factory, config_directory, monkeypatch,
+ install_mockery_mutable_config
+):
+ # This fixture depends on install_mockery_mutable_config to ensure
+ # there is a clear order of initialization. The substitution of the
+ # config scopes here is done on top of the substitution that comes with
+ # install_mockery_mutable_config
mutable_dir = tmpdir_factory.mktemp('mutable_config').join('tmp')
config_directory.copy(mutable_dir)
@@ -126,7 +115,7 @@ def default_config(tmpdir_factory, config_directory, monkeypatch):
for name in ['site/%s' % platform.system().lower(),
'site', 'user']])
- monkeypatch.setattr(spack.config, 'config', cfg)
+ spack.config.config, old_config = cfg, spack.config.config
# This is essential, otherwise the cache will create weird side effects
# that will compromise subsequent tests if compilers.yaml is modified
@@ -148,18 +137,25 @@ def default_config(tmpdir_factory, config_directory, monkeypatch):
timeout = spack.config.get('config:connect_timeout')
if not timeout:
spack.config.set('config:connect_timeout', 10, scope='user')
+
yield spack.config.config
+
+ spack.config.config = old_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
+ scheme = os.path.join(
+ '${architecture}',
+ '${compiler.name}-${compiler.version}',
+ '${name}-${version}-${hash}'
+ )
+ real_store, real_layout = spack.store.store, spack.store.layout
+ opt_dir = tmpdir.join('opt')
+ spack.store.store = spack.store.Store(str(opt_dir))
+ spack.store.layout = DirectoryLayout(str(opt_dir), path_scheme=scheme)
try:
yield spack.store
finally:
@@ -170,11 +166,14 @@ def install_dir_default_layout(tmpdir):
@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
+ scheme = os.path.join(
+ '${name}', '${version}',
+ '${architecture}-${compiler.name}-${compiler.version}-${hash}'
+ )
+ real_store, real_layout = spack.store.store, spack.store.layout
+ opt_dir = tmpdir.join('opt')
+ spack.store.store = spack.store.Store(str(opt_dir))
+ spack.store.layout = DirectoryLayout(str(opt_dir), path_scheme=scheme)
try:
yield spack.store
finally:
@@ -190,312 +189,151 @@ else:
@pytest.mark.requires_executables(*args)
-@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):
+@pytest.mark.usefixtures(
+ 'default_config', 'cache_directory', 'install_dir_default_layout',
+ 'test_mirror'
+)
+def test_default_rpaths_create_install_default_layout(mirror_dir):
"""
Test the creation and installation of buildcaches with default rpaths
into the default directory layout scheme.
"""
+ gspec, cspec = Spec('garply').concretized(), Spec('corge').concretized()
- gspec = Spec('garply')
- gspec.concretize()
- cspec = Spec('corge')
- cspec.concretize()
-
- 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]
+ # Install 'corge' without using a cache
+ install_cmd('--no-cache', 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)
+ buildcache_cmd('create', '-au', '-d', mirror_dir, cspec.name)
+ # Test force overwrite create buildcache (-f option)
+ buildcache_cmd('create', '-auf', '-d', mirror_dir, cspec.name)
+
+ # Create mirror index
+ mirror_url = 'file://{0}'.format(mirror_dir)
+ buildcache_cmd('update-index', '-d', mirror_url)
+ # List the buildcaches in the mirror
+ buildcache_cmd('list', '-alv')
# Uninstall the package and deps
- uparser = argparse.ArgumentParser()
- uninstall.setup_parser(uparser)
- uargs = uparser.parse_args(['-y', '--dependents', gspec.name])
- uninstall.uninstall(uparser, uargs)
+ uninstall_cmd('-y', '--dependents', gspec.name)
- # test install
- args = parser.parse_args(install_args)
- buildcache.buildcache(parser, args)
+ # Test installing from build caches
+ buildcache_cmd('install', '-au', cspec.name)
# 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)
+ buildcache_cmd('install', '-au', cspec.name)
- args = parser.parse_args(['list'])
- buildcache.buildcache(parser, args)
+ # Test overwrite install
+ buildcache_cmd('install', '-afu', cspec.name)
- args = parser.parse_args(['list', '-a'])
- buildcache.buildcache(parser, args)
+ buildcache_cmd('keys', '-f')
+ buildcache_cmd('list')
- args = parser.parse_args(['list', '-l', '-v'])
- buildcache.buildcache(parser, args)
- bindist.clear_spec_cache()
- spack.stage.purge()
- margs = mparser.parse_args(
- ['rm', '--scope', 'site', 'test-mirror-def'])
- mirror.mirror(mparser, margs)
+ buildcache_cmd('list', '-a')
+ buildcache_cmd('list', '-l', '-v')
@pytest.mark.requires_executables(*args)
-@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):
+@pytest.mark.usefixtures(
+ 'default_config', 'cache_directory', 'install_dir_non_default_layout',
+ 'test_mirror'
+)
+def test_default_rpaths_install_nondefault_layout(mirror_dir):
"""
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]
+ cspec = Spec('corge').concretized()
# 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)
+ buildcache_cmd('install', '-au', cspec.name)
- bindist.clear_spec_cache()
- spack.stage.purge()
- margs = mparser.parse_args(
- ['rm', '--scope', 'site', 'test-mirror-def'])
- mirror.mirror(mparser, margs)
+ # Test force install in non-default install path scheme
+ buildcache_cmd('install', '-auf', cspec.name)
@pytest.mark.requires_executables(*args)
-@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):
+@pytest.mark.usefixtures(
+ 'default_config', 'cache_directory', 'install_dir_default_layout'
+)
+def test_relative_rpaths_create_default_layout(mirror_dir):
"""
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()
+ gspec, cspec = Spec('garply').concretized(), Spec('corge').concretized()
- 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)
+ # Install 'corge' without using a cache
+ install_cmd('--no-cache', cspec.name)
- bindist.clear_spec_cache()
- spack.stage.purge()
+ # Create build cache with relative rpaths
+ buildcache_cmd(
+ 'create', '-aur', '-d', mirror_dir, cspec.name
+ )
+
+ # Create mirror index
+ mirror_url = 'file://%s' % mirror_dir
+ buildcache_cmd('update-index', '-d', mirror_url)
+
+ # Uninstall the package and deps
+ uninstall_cmd('-y', '--dependents', gspec.name)
@pytest.mark.requires_executables(*args)
-@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):
+@pytest.mark.usefixtures(
+ 'default_config', 'cache_directory', 'install_dir_default_layout',
+ 'test_mirror'
+)
+def test_relative_rpaths_install_default_layout(mirror_dir):
"""
Test the creation and installation of buildcaches with relative
rpaths into the default directory layout scheme.
"""
+ gspec, cspec = Spec('garply').concretized(), Spec('corge').concretized()
- 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)
-
- 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', '-f',
- cspec.name]
-
- # install buildcache created with relativized rpaths
- args = parser.parse_args(install_args)
- buildcache.buildcache(parser, args)
+ # Install buildcache created with relativized rpaths
+ buildcache_cmd('install', '-auf', cspec.name)
# This gives warning that spec is already installed
- buildcache.buildcache(parser, args)
+ buildcache_cmd('install', '-auf', cspec.name)
# Uninstall the package and deps
- uparser = argparse.ArgumentParser()
- uninstall.setup_parser(uparser)
- uargs = uparser.parse_args(['-y', '--dependents', gspec.name])
- uninstall.uninstall(uparser, uargs)
+ uninstall_cmd('-y', '--dependents', gspec.name)
- # install build cache
- buildcache.buildcache(parser, args)
+ # Install build cache
+ buildcache_cmd('install', '-auf', cspec.name)
- # test overwrite install
- install_args.insert(install_args.index('-a'), '-f')
- args = parser.parse_args(install_args)
- buildcache.buildcache(parser, args)
-
- bindist.clear_spec_cache()
- spack.stage.purge()
- margs = mparser.parse_args(
- ['rm', '--scope', 'site', 'test-mirror-rel'])
- mirror.mirror(mparser, margs)
+ # Test overwrite install
+ buildcache_cmd('install', '-auf', cspec.name)
@pytest.mark.requires_executables(*args)
-@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):
+@pytest.mark.usefixtures(
+ 'default_config', 'cache_directory', 'install_dir_non_default_layout',
+ 'test_mirror'
+)
+def test_relative_rpaths_install_nondefault(mirror_dir):
"""
Test the installation of buildcaches with relativized rpaths
into the non-default directory layout scheme.
"""
+ cspec = Spec('corge').concretized()
- 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)
-
- 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', '-f', '%s' % cspec.name]
+ # Test install in non-default install path scheme and relative path
+ buildcache_cmd('install', '-auf', cspec.name)
- # test install in non-default install path scheme and relative path
- args = parser.parse_args(install_args)
- buildcache.buildcache(parser, args)
- bindist.clear_spec_cache()
- spack.stage.purge()
- margs = mparser.parse_args(
- ['rm', '--scope', 'site', 'test-mirror-rel'])
- mirror.mirror(mparser, margs)
-
-
-@pytest.mark.skipif(not spack.util.gpg.has_gpg(),
- reason='This test requires gpg')
def test_push_and_fetch_keys(mock_gnupghome):
testpath = str(mock_gnupghome)
@@ -509,7 +347,7 @@ def test_push_and_fetch_keys(mock_gnupghome):
# dir 1: create a new key, record its fingerprint, and push it to a new
# mirror
- with spack.util.gpg.gnupg_home_override(gpg_dir1):
+ with spack.util.gpg.gnupghome_override(gpg_dir1):
spack.util.gpg.create(name='test-key',
email='fake@test.key',
expires='0',
@@ -523,7 +361,7 @@ def test_push_and_fetch_keys(mock_gnupghome):
# dir 2: import the key from the mirror, and confirm that its fingerprint
# matches the one created above
- with spack.util.gpg.gnupg_home_override(gpg_dir2):
+ with spack.util.gpg.gnupghome_override(gpg_dir2):
assert len(spack.util.gpg.public_keys()) == 0
bindist.get_keys(mirrors=mirrors, install=True, trust=True, force=True)
@@ -534,38 +372,20 @@ def test_push_and_fetch_keys(mock_gnupghome):
@pytest.mark.requires_executables(*args)
-@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_built_spec_cache(tmpdir,
- install_mockery):
+@pytest.mark.usefixtures(
+ 'default_config', 'cache_directory', 'install_dir_non_default_layout',
+ 'test_mirror'
+)
+def test_built_spec_cache(mirror_dir):
""" Because the buildcache list command fetches the buildcache index
and uses it to populate the binary_distribution built spec cache, when
this test calls get_mirrors_for_spec, it is testing the popluation of
that cache from a buildcache index. """
- 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)
-
- # setup argument parser
- parser = argparse.ArgumentParser()
- buildcache.setup_parser(parser)
-
- list_args = ['list', '-a', '-l']
- args = parser.parse_args(list_args)
- buildcache.buildcache(parser, args)
-
- gspec = Spec('garply')
- gspec.concretize()
+ buildcache_cmd('list', '-a', '-l')
- cspec = Spec('corge')
- cspec.concretize()
+ gspec, cspec = Spec('garply').concretized(), Spec('corge').concretized()
full_hash_map = {
'garply': gspec.full_hash(),
@@ -590,12 +410,6 @@ def test_built_spec_cache(tmpdir,
assert(result['mirror_url'] not in cspec_mirrors)
cspec_mirrors[result['mirror_url']] = True
- bindist.clear_spec_cache()
-
- margs = mparser.parse_args(
- ['rm', '--scope', 'site', 'test-mirror-rel'])
- mirror.mirror(mparser, margs)
-
def fake_full_hash(spec):
# Generate an arbitrary hash that is intended to be different than
@@ -604,8 +418,11 @@ def fake_full_hash(spec):
return 'tal4c7h4z0gqmixb1eqa92mjoybxn5l6'
-def test_spec_needs_rebuild(install_mockery_mutable_config, mock_packages,
- mock_fetch, monkeypatch, tmpdir):
+@pytest.mark.usefixtures(
+ 'install_mockery_mutable_config', 'mock_packages', 'mock_fetch',
+ 'test_mirror'
+)
+def test_spec_needs_rebuild(monkeypatch, tmpdir):
"""Make sure needs_rebuild properly compares remote full_hash
against locally computed one, avoiding unnecessary rebuilds"""
@@ -613,8 +430,6 @@ def test_spec_needs_rebuild(install_mockery_mutable_config, mock_packages,
mirror_dir = tmpdir.join('mirror_dir')
mirror_url = 'file://{0}'.format(mirror_dir.strpath)
- mirror_cmd('add', 'test-mirror', mirror_url)
-
s = Spec('libdwarf').concretized()
# Install a package
@@ -635,6 +450,45 @@ def test_spec_needs_rebuild(install_mockery_mutable_config, mock_packages,
assert rebuild
+@pytest.mark.usefixtures(
+ 'install_mockery_mutable_config', 'mock_packages', 'mock_fetch',
+)
+def test_generate_index_missing(monkeypatch, tmpdir, mutable_config):
+ """Ensure spack buildcache index only reports available packages"""
+
+ # Create a temp mirror directory for buildcache usage
+ mirror_dir = tmpdir.join('mirror_dir')
+ mirror_url = 'file://{0}'.format(mirror_dir.strpath)
+ spack.config.set('mirrors', {'test': mirror_url})
+
+ s = Spec('libdwarf').concretized()
+
+ # Install a package
+ install_cmd('--no-cache', s.name)
+
+ # Create a buildcache and update index
+ buildcache_cmd('create', '-uad', mirror_dir.strpath, s.name)
+ buildcache_cmd('update-index', '-d', mirror_dir.strpath)
+
+ # Check package and dependency in buildcache
+ cache_list = buildcache_cmd('list', '--allarch')
+ assert 'libdwarf' in cache_list
+ assert 'libelf' in cache_list
+
+ # Remove dependency from cache
+ libelf_files = glob.glob(
+ os.path.join(mirror_dir.join('build_cache').strpath, '*libelf*'))
+ os.remove(*libelf_files)
+
+ # Update index
+ buildcache_cmd('update-index', '-d', mirror_dir.strpath)
+
+ # Check dependency not in buildcache
+ cache_list = buildcache_cmd('list', '--allarch')
+ assert 'libdwarf' in cache_list
+ assert 'libelf' not in cache_list
+
+
def test_generate_indices_key_error(monkeypatch, capfd):
def mock_list_url(url, recursive=False):
@@ -683,47 +537,49 @@ def test_generate_indices_exception(monkeypatch, capfd):
assert expect in err
-@pytest.mark.usefixtures('mock_fetch')
-def test_update_sbang(tmpdir, install_mockery, function_mirror):
- """
- Test the creation and installation of buildcaches with default rpaths
+@pytest.mark.usefixtures('mock_fetch', 'install_mockery')
+def test_update_sbang(tmpdir, test_mirror):
+ """Test the creation and installation of buildcaches with default rpaths
into the non-default directory layout scheme, triggering an update of the
sbang.
"""
-
- # Save the original store and layout before we touch ANYTHING.
- real_store = spack.store.store
- real_layout = spack.store.layout
-
+ scheme = os.path.join(
+ '${name}', '${version}',
+ '${architecture}-${compiler.name}-${compiler.version}-${hash}'
+ )
+ spec_str = 'old-sbang'
# Concretize a package with some old-fashioned sbang lines.
- sspec = Spec('old-sbang')
- sspec.concretize()
+ old_spec = Spec(spec_str).concretized()
+ old_spec_hash_str = '/{0}'.format(old_spec.dag_hash())
# Need a fake mirror with *function* scope.
- mirror_dir = function_mirror
+ mirror_dir = test_mirror
+ mirror_url = 'file://{0}'.format(mirror_dir)
- # Assumes all commands will concretize sspec the same way.
- install_cmd('--no-cache', sspec.name)
+ # Assume all commands will concretize old_spec the same way.
+ install_cmd('--no-cache', old_spec.name)
# Create a buildcache with the installed spec.
- buildcache_cmd('create', '-u', '-a', '-d', mirror_dir,
- '/%s' % sspec.dag_hash())
+ buildcache_cmd('create', '-u', '-a', '-d', mirror_dir, old_spec_hash_str)
# Need to force an update of the buildcache index
- buildcache_cmd('update-index', '-d', 'file://%s' % mirror_dir)
+ buildcache_cmd('update-index', '-d', mirror_url)
# Uninstall the original package.
- uninstall_cmd('-y', '/%s' % sspec.dag_hash())
+ uninstall_cmd('-y', old_spec_hash_str)
- try:
- # New install tree locations...
- # Too fine-grained to do be done in a fixture
- spack.store.store = spack.store.Store(str(tmpdir.join('newtree')))
- spack.store.layout = YamlDirectoryLayout(str(tmpdir.join('newtree')),
- path_scheme=ndef_install_path_scheme) # noqa: E501
+ # Switch the store to the new install tree locations
+ newtree_dir = tmpdir.join('newtree')
+ s = spack.store.Store(str(newtree_dir))
+ s.layout = DirectoryLayout(str(newtree_dir), path_scheme=scheme)
+
+ with spack.store.use_store(s):
+ new_spec = Spec('old-sbang')
+ new_spec.concretize()
+ assert new_spec.dag_hash() == old_spec.dag_hash()
# Install package from buildcache
- buildcache_cmd('install', '-a', '-u', '-f', sspec.name)
+ buildcache_cmd('install', '-a', '-u', '-f', new_spec.name)
# Continue blowing away caches
bindist.clear_spec_cache()
@@ -734,25 +590,79 @@ def test_update_sbang(tmpdir, install_mockery, function_mirror):
#!/usr/bin/env python
{1}
- '''.format(sbang.sbang_shebang_line(), sspec.prefix.bin)
+'''.format(sbang.sbang_shebang_line(), new_spec.prefix.bin)
sbang_style_2_expected = '''{0}
#!/usr/bin/env python
{1}
- '''.format(sbang.sbang_shebang_line(), sspec.prefix.bin)
+'''.format(sbang.sbang_shebang_line(), new_spec.prefix.bin)
- installed_script_style_1_path = \
- sspec.prefix.bin.join('sbang-style-1.sh')
+ installed_script_style_1_path = new_spec.prefix.bin.join('sbang-style-1.sh')
assert sbang_style_1_expected == \
open(str(installed_script_style_1_path)).read()
- installed_script_style_2_path = \
- sspec.prefix.bin.join('sbang-style-2.sh')
+ installed_script_style_2_path = new_spec.prefix.bin.join('sbang-style-2.sh')
assert sbang_style_2_expected == \
open(str(installed_script_style_2_path)).read()
- uninstall_cmd('-y', '/%s' % sspec.dag_hash())
+ uninstall_cmd('-y', '/%s' % new_spec.dag_hash())
- finally:
- spack.store.store = real_store
- spack.store.layout = real_layout
+
+# Need one where the platform has been changed to the test platform.
+def test_install_legacy_yaml(test_legacy_mirror, install_mockery_mutable_config,
+ mock_packages):
+ install_cmd('--no-check-signature', '--cache-only', '-f', legacy_mirror_dir
+ + '/build_cache/test-debian6-core2-gcc-4.5.0-zlib-' +
+ '1.2.11-t5mczux3tfqpxwmg7egp7axy2jvyulqk.spec.yaml')
+ uninstall_cmd('-y', '/t5mczux3tfqpxwmg7egp7axy2jvyulqk')
+
+
+@pytest.mark.usefixtures(
+ 'install_mockery_mutable_config', 'mock_packages', 'mock_fetch',
+)
+def test_update_index_fix_deps(monkeypatch, tmpdir, mutable_config):
+ """Ensure spack buildcache update-index properly fixes up spec descriptor
+ files on the mirror when updating the buildcache index."""
+
+ # Create a temp mirror directory for buildcache usage
+ mirror_dir = tmpdir.join('mirror_dir')
+ mirror_url = 'file://{0}'.format(mirror_dir.strpath)
+ spack.config.set('mirrors', {'test': mirror_url})
+
+ a = Spec('a').concretized()
+ b = Spec('b').concretized()
+ new_b_full_hash = 'abcdef'
+
+ # Install package a with dep b
+ install_cmd('--no-cache', a.name)
+
+ # Create a buildcache for a and its dep b, and update index
+ buildcache_cmd('create', '-uad', mirror_dir.strpath, a.name)
+ buildcache_cmd('update-index', '-d', mirror_dir.strpath)
+
+ # Simulate an update to b that only affects full hash by simply overwriting
+ # the full hash in the spec.json file on the mirror
+ b_spec_json_name = bindist.tarball_name(b, '.spec.json')
+ b_spec_json_path = os.path.join(mirror_dir.strpath,
+ bindist.build_cache_relative_path(),
+ b_spec_json_name)
+ fs.filter_file(r'"full_hash":\s"\S+"',
+ '"full_hash": "{0}"'.format(new_b_full_hash),
+ b_spec_json_path)
+ # When we update the index, spack should notice that a's notion of the
+ # full hash of b doesn't match b's notion of it's own full hash, and as
+ # a result, spack should fix the spec.json for a
+ buildcache_cmd('update-index', '-d', mirror_dir.strpath)
+
+ # Read in the concrete spec json of a
+ a_spec_json_name = bindist.tarball_name(a, '.spec.json')
+ a_spec_json_path = os.path.join(mirror_dir.strpath,
+ bindist.build_cache_relative_path(),
+ a_spec_json_name)
+
+ # Turn concrete spec json into a concrete spec (a)
+ with open(a_spec_json_path) as fd:
+ a_prime = spec.Spec.from_json(fd.read())
+
+ # Make sure the full hash of b in a's spec json matches the new value
+ assert(a_prime[b.name].full_hash() == new_b_full_hash)
diff --git a/lib/spack/spack/test/bootstrap.py b/lib/spack/spack/test/bootstrap.py
index 56083b327f..3aed7231f3 100644
--- a/lib/spack/spack/test/bootstrap.py
+++ b/lib/spack/spack/test/bootstrap.py
@@ -5,7 +5,16 @@
import pytest
import spack.bootstrap
+import spack.compilers
+import spack.environment
import spack.store
+import spack.util.path
+
+
+@pytest.fixture
+def active_mock_environment(mutable_config, mutable_mock_env_path):
+ with spack.environment.create('bootstrap-test') as env:
+ yield env
@pytest.mark.regression('22294')
@@ -22,5 +31,71 @@ def test_store_is_restored_correctly_after_bootstrap(mutable_config, tmpdir):
# Test that within the context manager we use the bootstrap store
# and that outside we restore the correct location
with spack.bootstrap.ensure_bootstrap_configuration():
- assert str(spack.store.root) == spack.paths.user_bootstrap_store
- assert str(spack.store.root) == user_path
+ assert spack.store.root == spack.bootstrap.store_path()
+ assert spack.store.root == user_path
+
+
+@pytest.mark.parametrize('config_value,expected', [
+ # Absolute path without expansion
+ ('/opt/spack/bootstrap', '/opt/spack/bootstrap/store'),
+ # Path with placeholder
+ ('$spack/opt/bootstrap', '$spack/opt/bootstrap/store'),
+])
+def test_store_path_customization(config_value, expected, mutable_config):
+ # Set the current configuration to a specific value
+ spack.config.set('bootstrap:root', config_value)
+
+ # Check the store path
+ current = spack.bootstrap.store_path()
+ assert current == spack.util.path.canonicalize_path(expected)
+
+
+def test_raising_exception_if_bootstrap_disabled(mutable_config):
+ # Disable bootstrapping in config.yaml
+ spack.config.set('bootstrap:enable', False)
+
+ # Check the correct exception is raised
+ with pytest.raises(RuntimeError, match='bootstrapping is currently disabled'):
+ spack.bootstrap.store_path()
+
+
+@pytest.mark.regression('25603')
+def test_bootstrap_deactivates_environments(active_mock_environment):
+ assert spack.environment.active_environment() == active_mock_environment
+ with spack.bootstrap.ensure_bootstrap_configuration():
+ assert spack.environment.active_environment() is None
+ assert spack.environment.active_environment() == active_mock_environment
+
+
+@pytest.mark.regression('25805')
+def test_bootstrap_disables_modulefile_generation(mutable_config):
+ # Be sure to enable both lmod and tcl in modules.yaml
+ spack.config.set('modules:enable', ['tcl', 'lmod'])
+
+ assert 'tcl' in spack.config.get('modules:enable')
+ assert 'lmod' in spack.config.get('modules:enable')
+ with spack.bootstrap.ensure_bootstrap_configuration():
+ assert 'tcl' not in spack.config.get('modules:enable')
+ assert 'lmod' not in spack.config.get('modules:enable')
+ assert 'tcl' in spack.config.get('modules:enable')
+ assert 'lmod' in spack.config.get('modules:enable')
+
+
+@pytest.mark.regression('25992')
+@pytest.mark.requires_executables('gcc')
+def test_bootstrap_search_for_compilers_with_no_environment(no_compilers_yaml):
+ assert not spack.compilers.all_compiler_specs(init_config=False)
+ with spack.bootstrap.ensure_bootstrap_configuration():
+ assert spack.compilers.all_compiler_specs(init_config=False)
+ assert not spack.compilers.all_compiler_specs(init_config=False)
+
+
+@pytest.mark.regression('25992')
+@pytest.mark.requires_executables('gcc')
+def test_bootstrap_search_for_compilers_with_environment_active(
+ no_compilers_yaml, active_mock_environment
+):
+ assert not spack.compilers.all_compiler_specs(init_config=False)
+ with spack.bootstrap.ensure_bootstrap_configuration():
+ assert spack.compilers.all_compiler_specs(init_config=False)
+ assert not spack.compilers.all_compiler_specs(init_config=False)
diff --git a/lib/spack/spack/test/build_distribution.py b/lib/spack/spack/test/build_distribution.py
index 2d567aee14..1514b3e903 100644
--- a/lib/spack/spack/test/build_distribution.py
+++ b/lib/spack/spack/test/build_distribution.py
@@ -1,15 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
-
import os
import os.path
-import spack.spec
+import pytest
+
import spack.binary_distribution
+import spack.spec
install = spack.main.SpackCommand('install')
@@ -31,7 +31,7 @@ def test_build_tarball_overwrite(
spec, '.', force=True, unsigned=True)
# Remove the tarball and try again.
- # This must *also* throw, because of the existing .spec.yaml file
+ # This must *also* throw, because of the existing .spec.json file
os.remove(os.path.join(
spack.binary_distribution.build_cache_prefix('.'),
spack.binary_distribution.tarball_directory_name(spec),
diff --git a/lib/spack/spack/test/build_environment.py b/lib/spack/spack/test/build_environment.py
index b374a7c8ce..b745eb228b 100644
--- a/lib/spack/spack/test/build_environment.py
+++ b/lib/spack/spack/test/build_environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,16 +8,20 @@ import platform
import pytest
+from llnl.util.filesystem import HeaderList, LibraryList
+
import spack.build_environment
import spack.config
import spack.spec
import spack.util.spack_yaml as syaml
+from spack.build_environment import (
+ _static_to_shared_library,
+ determine_number_of_jobs,
+ dso_suffix,
+)
from spack.paths import build_env_path
-from spack.build_environment import dso_suffix, _static_to_shared_library
-from spack.util.executable import Executable
from spack.util.environment import EnvironmentModifications
-
-from llnl.util.filesystem import LibraryList, HeaderList
+from spack.util.executable import Executable
@pytest.fixture
@@ -225,7 +229,7 @@ def test_package_inheritance_module_setup(config, mock_packages, working_env):
assert os.environ['TEST_MODULE_VAR'] == 'test_module_variable'
-def test_set_build_environment_variables(
+def test_wrapper_variables(
config, mock_packages, working_env, monkeypatch,
installation_dir_with_headers
):
@@ -264,8 +268,8 @@ def test_set_build_environment_variables(
try:
pkg = root.package
env_mods = EnvironmentModifications()
- spack.build_environment.set_build_environment_variables(
- pkg, env_mods, dirty=False)
+ spack.build_environment.set_wrapper_variables(
+ pkg, env_mods)
env_mods.apply_modifications()
@@ -324,8 +328,8 @@ dt-diamond-left:
)
env_mods = EnvironmentModifications()
- spack.build_environment.set_build_environment_variables(
- top.package, env_mods, False)
+ spack.build_environment.set_wrapper_variables(
+ top.package, env_mods)
env_mods.apply_modifications()
link_dir_var = os.environ['SPACK_LINK_DIRS']
@@ -379,3 +383,22 @@ def test_setting_dtags_based_on_config(
dtags_to_add = modifications['SPACK_DTAGS_TO_ADD'][0]
assert dtags_to_add.value == expected_flag
+
+
+def test_build_jobs_sequential_is_sequential():
+ assert determine_number_of_jobs(
+ parallel=False, command_line=8, config_default=8, max_cpus=8) == 1
+
+
+def test_build_jobs_command_line_overrides():
+ assert determine_number_of_jobs(
+ parallel=True, command_line=10, config_default=1, max_cpus=1) == 10
+ assert determine_number_of_jobs(
+ parallel=True, command_line=10, config_default=100, max_cpus=100) == 10
+
+
+def test_build_jobs_defaults():
+ assert determine_number_of_jobs(
+ parallel=True, command_line=None, config_default=1, max_cpus=10) == 1
+ assert determine_number_of_jobs(
+ parallel=True, command_line=None, config_default=100, max_cpus=10) == 10
diff --git a/lib/spack/spack/test/build_system_guess.py b/lib/spack/spack/test/build_system_guess.py
index 6c2e3c6be5..2d3487cb7a 100644
--- a/lib/spack/spack/test/build_system_guess.py
+++ b/lib/spack/spack/test/build_system_guess.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import pytest
+
import spack.cmd.create
-import spack.util.executable
import spack.stage
+import spack.util.executable
@pytest.fixture(
diff --git a/lib/spack/spack/test/build_systems.py b/lib/spack/spack/test/build_systems.py
index 1606ba8ebd..4675d37c38 100644
--- a/lib/spack/spack/test/build_systems.py
+++ b/lib/spack/spack/test/build_systems.py
@@ -1,19 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import glob
import os
+
import pytest
import llnl.util.filesystem as fs
+
import spack.repo
from spack.build_environment import get_std_cmake_args, setup_package
from spack.spec import Spec
from spack.util.executable import which
-
DATA_PATH = os.path.join(spack.paths.test_path, 'data')
@@ -168,6 +169,9 @@ class TestAutotoolsPackage(object):
options = pkg.with_or_without('bvv')
assert '--with-bvv' in options
+ options = pkg.with_or_without('lorem-ipsum', variant='lorem_ipsum')
+ assert '--without-lorem-ipsum' in options
+
def test_none_is_allowed(self):
s = Spec('a foo=none')
s.concretize()
diff --git a/lib/spack/spack/test/buildrequest.py b/lib/spack/spack/test/buildrequest.py
index 5918838edc..22d7b5fff1 100644
--- a/lib/spack/spack/test/buildrequest.py
+++ b/lib/spack/spack/test/buildrequest.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/buildtask.py b/lib/spack/spack/test/buildtask.py
index f82ff6861a..44faf6244d 100644
--- a/lib/spack/spack/test/buildtask.py
+++ b/lib/spack/spack/test/buildtask.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/cache_fetch.py b/lib/spack/spack/test/cache_fetch.py
index 3b4c3cb887..a3b9cafed8 100644
--- a/lib/spack/spack/test/cache_fetch.py
+++ b/lib/spack/spack/test/cache_fetch.py
@@ -1,36 +1,40 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
import pytest
from llnl.util.filesystem import mkdirp, touch
-from spack.stage import Stage
+import spack.config
from spack.fetch_strategy import CacheURLFetchStrategy, NoCacheError
+from spack.stage import Stage
-def test_fetch_missing_cache(tmpdir):
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_fetch_missing_cache(tmpdir, _fetch_method):
"""Ensure raise a missing cache file."""
testpath = str(tmpdir)
+ with spack.config.override('config:url_fetch_method', _fetch_method):
+ fetcher = CacheURLFetchStrategy(url='file:///not-a-real-cache-file')
+ with Stage(fetcher, path=testpath):
+ with pytest.raises(NoCacheError, match=r'No cache'):
+ fetcher.fetch()
- fetcher = CacheURLFetchStrategy(url='file:///not-a-real-cache-file')
- with Stage(fetcher, path=testpath):
- with pytest.raises(NoCacheError, match=r'No cache'):
- fetcher.fetch()
-
-def test_fetch(tmpdir):
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_fetch(tmpdir, _fetch_method):
"""Ensure a fetch after expanding is effectively a no-op."""
testpath = str(tmpdir)
cache = os.path.join(testpath, 'cache.tar.gz')
touch(cache)
url = 'file:///{0}'.format(cache)
-
- fetcher = CacheURLFetchStrategy(url=url)
- with Stage(fetcher, path=testpath) as stage:
- source_path = stage.source_path
- mkdirp(source_path)
- fetcher.fetch()
+ with spack.config.override('config:url_fetch_method', _fetch_method):
+ fetcher = CacheURLFetchStrategy(url=url)
+ with Stage(fetcher, path=testpath) as stage:
+ source_path = stage.source_path
+ mkdirp(source_path)
+ fetcher.fetch()
diff --git a/lib/spack/spack/test/cc.py b/lib/spack/spack/test/cc.py
index 7b8d34fbde..f202dcd62d 100644
--- a/lib/spack/spack/test/cc.py
+++ b/lib/spack/spack/test/cc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,10 +8,11 @@ This test checks that the Spack cc compiler wrapper is parsing
arguments correctly.
"""
import os
+
import pytest
from spack.paths import build_env_path
-from spack.util.environment import system_dirs, set_env
+from spack.util.environment import set_env, system_dirs
from spack.util.executable import Executable
#
@@ -28,6 +29,7 @@ test_args = [
'-Wl,--end-group',
'-Xlinker', '-rpath', '-Xlinker', '/third/rpath',
'-Xlinker', '-rpath', '-Xlinker', '/fourth/rpath',
+ '-Wl,--rpath,/fifth/rpath', '-Wl,--rpath', '-Wl,/sixth/rpath',
'-llib3', '-llib4',
'arg5', 'arg6']
@@ -45,11 +47,13 @@ test_library_paths = [
test_wl_rpaths = [
'-Wl,-rpath,/first/rpath', '-Wl,-rpath,/second/rpath',
- '-Wl,-rpath,/third/rpath', '-Wl,-rpath,/fourth/rpath']
+ '-Wl,-rpath,/third/rpath', '-Wl,-rpath,/fourth/rpath',
+ '-Wl,-rpath,/fifth/rpath', '-Wl,-rpath,/sixth/rpath']
test_rpaths = [
'-rpath', '/first/rpath', '-rpath', '/second/rpath',
- '-rpath', '/third/rpath', '-rpath', '/fourth/rpath']
+ '-rpath', '/third/rpath', '-rpath', '/fourth/rpath',
+ '-rpath', '/fifth/rpath', '-rpath', '/sixth/rpath']
test_args_without_paths = [
'arg1',
@@ -137,6 +141,17 @@ def check_args(cc, args, expected):
assert expected == cc_modified_args
+def check_env_var(executable, var, expected):
+ """Check environment variables updated by the passed compiler wrapper
+
+ This assumes that cc will print debug output when it's environment
+ contains SPACK_TEST_COMMAND=dump-env-<variable-to-debug>
+ """
+ with set_env(SPACK_TEST_COMMAND='dump-env-' + var):
+ output = executable(*test_args, output=str).strip()
+ assert output == executable.path + ': ' + var + ': ' + expected
+
+
def dump_mode(cc, args):
"""Make cc dump the mode it detects, and return it."""
with set_env(SPACK_TEST_COMMAND='dump-mode'):
@@ -270,6 +285,26 @@ def test_dep_include():
test_args_without_paths)
+def test_system_path_cleanup():
+ """Ensure SPACK_ENV_PATH is removed from PATH, even with trailing /
+
+ The compiler wrapper has to ensure that it is not called nested
+ like it would happen when gcc's collect2 looks in PATH for ld.
+
+ To prevent nested calls, the compiler wrapper removes the elements
+ of SPACK_ENV_PATH from PATH. Autotest's generated testsuite appends
+ a / to each element of PATH when adding AUTOTEST_PATH.
+ Thus, ensure that PATH cleanup works even with trailing /.
+ """
+ system_path = '/bin:/usr/bin:/usr/local/bin'
+ cc_dir = os.path.dirname(cc.path)
+ with set_env(SPACK_ENV_PATH=cc_dir, SPACK_CC='true'):
+ with set_env(PATH=cc_dir + ':' + system_path):
+ check_env_var(cc, 'PATH', system_path)
+ with set_env(PATH=cc_dir + '/:' + system_path):
+ check_env_var(cc, 'PATH', system_path)
+
+
def test_dep_lib():
"""Ensure a single dependency RPATH is added."""
with set_env(SPACK_LINK_DIRS='x',
@@ -347,15 +382,15 @@ def test_ccld_deps_isystem():
with set_env(SPACK_INCLUDE_DIRS='xinc:yinc:zinc',
SPACK_RPATH_DIRS='xlib:ylib:zlib',
SPACK_LINK_DIRS='xlib:ylib:zlib'):
- mytest_args = test_args + ['-isystemfooinc']
+ mytest_args = test_args + ['-isystem', 'fooinc']
check_args(
cc, mytest_args,
[real_cc] +
test_include_paths +
- ['-isystemfooinc',
- '-isystemxinc',
- '-isystemyinc',
- '-isystemzinc'] +
+ ['-isystem', 'fooinc',
+ '-isystem', 'xinc',
+ '-isystem', 'yinc',
+ '-isystem', 'zinc'] +
test_library_paths +
['-Lxlib',
'-Lylib',
@@ -429,20 +464,20 @@ def test_ccld_with_system_dirs_isystem():
SPACK_RPATH_DIRS='xlib:ylib:zlib',
SPACK_LINK_DIRS='xlib:ylib:zlib'):
- sys_path_args = ['-isystem/usr/include',
+ sys_path_args = ['-isystem', '/usr/include',
'-L/usr/local/lib',
'-Wl,-rpath,/usr/lib64',
- '-isystem/usr/local/include',
+ '-isystem', '/usr/local/include',
'-L/lib64/']
check_args(
cc, sys_path_args + test_args,
[real_cc] +
test_include_paths +
- ['-isystemxinc',
- '-isystemyinc',
- '-isystemzinc'] +
- ['-isystem/usr/include',
- '-isystem/usr/local/include'] +
+ ['-isystem', 'xinc',
+ '-isystem', 'yinc',
+ '-isystem', 'zinc'] +
+ ['-isystem', '/usr/include',
+ '-isystem', '/usr/local/include'] +
test_library_paths +
['-Lxlib',
'-Lylib',
@@ -619,3 +654,24 @@ def test_filter_enable_new_dtags(wrapper_flags):
result = cc(*(test_args + ['-Wl,--enable-new-dtags']), output=str)
result = result.strip().split('\n')
assert '-Wl,--enable-new-dtags' not in result
+
+
+@pytest.mark.regression('22643')
+def test_linker_strips_loopopt(wrapper_flags):
+ with set_env(SPACK_TEST_COMMAND='dump-args'):
+ # ensure that -loopopt=0 is not present in ld mode
+ result = ld(*(test_args + ["-loopopt=0"]), output=str)
+ result = result.strip().split('\n')
+ assert '-loopopt=0' not in result
+
+ # ensure that -loopopt=0 is not present in ccld mode
+ result = cc(*(test_args + ["-loopopt=0"]), output=str)
+ result = result.strip().split('\n')
+ assert '-loopopt=0' not in result
+
+ # ensure that -loopopt=0 *is* present in cc mode
+ # The "-c" argument is needed for cc to be detected
+ # as compile only (cc) mode.
+ result = cc(*(test_args + ["-loopopt=0", "-c", "x.c"]), output=str)
+ result = result.strip().split('\n')
+ assert '-loopopt=0' in result
diff --git a/lib/spack/spack/test/ci.py b/lib/spack/spack/test/ci.py
index f1986b34d0..628d77f42f 100644
--- a/lib/spack/spack/test/ci.py
+++ b/lib/spack/spack/test/ci.py
@@ -1,25 +1,29 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import collections
+import itertools as it
+import json
import os
+
import pytest
-from six.moves.urllib.error import URLError
+
+import llnl.util.filesystem as fs
import spack.ci as ci
-import spack.main as spack_main
+import spack.ci_needs_workaround as cinw
+import spack.ci_optimization as ci_opt
import spack.config as cfg
+import spack.environment as ev
+import spack.error
+import spack.main as spack_main
import spack.paths as spack_paths
import spack.spec as spec
-import spack.util.web as web_util
import spack.util.gpg
-
-import spack.ci_optimization as ci_opt
-import spack.ci_needs_workaround as cinw
import spack.util.spack_yaml as syaml
-import itertools as it
-import collections
+
try:
# dynamically import to keep vermin from complaining
collections_abc = __import__('collections.abc')
@@ -53,8 +57,6 @@ def test_urlencode_string():
assert(s_enc == 'Spack+Test+Project')
-@pytest.mark.skipif(not spack.util.gpg.has_gpg(),
- reason='This test requires gpg')
def test_import_signing_key(mock_gnupghome):
signing_key_dir = spack_paths.mock_gpg_keys_path
signing_key_path = os.path.join(signing_key_dir, 'package-signing-key')
@@ -88,69 +90,157 @@ def test_configure_compilers(mutable_config):
assert_present(last_config)
-def test_get_concrete_specs(config, mock_packages):
- root_spec = (
- 'eJztkk1uwyAQhfc5BbuuYjWObSKuUlURYP5aDBjjBPv0RU7iRI6qpKuqUtnxzZvRwHud'
- 'YxSt1oCMyuVoBdI5MN8paxDYZK/ZbkLYU3kqAuA0Dtz6BgGtTB8XdG87BCgzwXbwXArY'
- 'CxYQiLtqXxUTpLZxSjN/mWlwwxAQlJ7v8wpFtsvK1UXSOUyTjvRKB2Um7LBPhZD0l1md'
- 'xJ7VCATfszOiXGOR9np7vwDn7lCMS8SXQNf3RCtyBTVzzNTMUMXmfWrFeR+UngEAEncS'
- 'ASjKwZcid7ERNldthBxjX46mMD2PsJnlYXDs2rye3l+vroOkJJ54SXgZPklLRQmx61sm'
- 'cgKNVFRO0qlpf2pojq1Ro7OG56MY+Bgc1PkIo/WkaT8OVcrDYuvZkJdtBl/+XCZ+NQBJ'
- 'oKg1h6X/VdXRoyE2OWeH6lCXZdHGrauUZAWFw/YJ/0/39OefN3F4Kle3cXjYsF684ZqG'
- 'Tbap/uPwbRx+YPStIQ8bvgA7G6YE'
- )
+def test_get_concrete_specs(config, mutable_mock_env_path, mock_packages):
+ e = ev.create('test1')
+ e.add('dyninst')
+ e.concretize()
+
+ dyninst_hash = None
+ hash_dict = {}
+
+ with e as active_env:
+ for s in active_env.all_specs():
+ hash_dict[s.name] = s.build_hash()
+ if s.name == 'dyninst':
+ dyninst_hash = s.build_hash()
+
+ assert(dyninst_hash)
+
+ dep_builds = 'libdwarf;libelf'
+ spec_map = ci.get_concrete_specs(
+ active_env, dyninst_hash, 'dyninst', dep_builds, 'NONE')
+ assert('root' in spec_map and 'deps' in spec_map)
+
+ concrete_root = spec_map['root']
+ assert(concrete_root.build_hash() == dyninst_hash)
+
+ concrete_deps = spec_map['deps']
+ for key, obj in concrete_deps.items():
+ assert(obj.build_hash() == hash_dict[key])
- dep_builds = 'diffutils;libiconv'
- spec_map = ci.get_concrete_specs(root_spec, 'bzip2', dep_builds, 'NONE')
+ s = spec.Spec('dyninst')
+ print('nonconc spec name: {0}'.format(s.name))
- assert('root' in spec_map and 'deps' in spec_map)
+ spec_map = ci.get_concrete_specs(
+ active_env, s.name, s.name, dep_builds, 'FIND_ANY')
- nonconc_root_spec = 'archive-files'
- dep_builds = ''
- spec_map = ci.get_concrete_specs(
- nonconc_root_spec, 'archive-files', dep_builds, 'FIND_ANY')
+ assert('root' in spec_map and 'deps' in spec_map)
- assert('root' in spec_map and 'deps' in spec_map)
- assert('archive-files' in spec_map)
+class FakeWebResponder(object):
+ def __init__(self, response_code=200, content_to_read=[]):
+ self._resp_code = response_code
+ self._content = content_to_read
+ self._read = [False for c in content_to_read]
-def test_register_cdash_build():
+ def open(self, request):
+ return self
+
+ def getcode(self):
+ return self._resp_code
+
+ def read(self, length=None):
+
+ if len(self._content) <= 0:
+ return None
+
+ if not self._read[-1]:
+ return_content = self._content[-1]
+ if length:
+ self._read[-1] = True
+ else:
+ self._read.pop()
+ self._content.pop()
+ return return_content
+
+ self._read.pop()
+ self._content.pop()
+ return None
+
+
+@pytest.mark.maybeslow
+def test_register_cdash_build(monkeypatch):
build_name = 'Some pkg'
base_url = 'http://cdash.fake.org'
project = 'spack'
site = 'spacktests'
track = 'Experimental'
- with pytest.raises(URLError):
- ci.register_cdash_build(build_name, base_url, project, site, track)
-
-
-def test_relate_cdash_builds(config, mock_packages):
- root_spec = (
- 'eJztkk1uwyAQhfc5BbuuYjWObSKuUlURYP5aDBjjBPv0RU7iRI6qpKuqUtnxzZvRwHud'
- 'YxSt1oCMyuVoBdI5MN8paxDYZK/ZbkLYU3kqAuA0Dtz6BgGtTB8XdG87BCgzwXbwXArY'
- 'CxYQiLtqXxUTpLZxSjN/mWlwwxAQlJ7v8wpFtsvK1UXSOUyTjvRKB2Um7LBPhZD0l1md'
- 'xJ7VCATfszOiXGOR9np7vwDn7lCMS8SXQNf3RCtyBTVzzNTMUMXmfWrFeR+UngEAEncS'
- 'ASjKwZcid7ERNldthBxjX46mMD2PsJnlYXDs2rye3l+vroOkJJ54SXgZPklLRQmx61sm'
- 'cgKNVFRO0qlpf2pojq1Ro7OG56MY+Bgc1PkIo/WkaT8OVcrDYuvZkJdtBl/+XCZ+NQBJ'
- 'oKg1h6X/VdXRoyE2OWeH6lCXZdHGrauUZAWFw/YJ/0/39OefN3F4Kle3cXjYsF684ZqG'
- 'Tbap/uPwbRx+YPStIQ8bvgA7G6YE'
- )
-
- dep_builds = 'diffutils;libiconv'
- spec_map = ci.get_concrete_specs(root_spec, 'bzip2', dep_builds, 'NONE')
- cdash_api_url = 'http://cdash.fake.org'
- job_build_id = '42'
- cdash_project = 'spack'
- cdashids_mirror_url = 'https://my.fake.mirror'
-
- with pytest.raises(web_util.SpackWebError):
+ response_obj = {
+ 'buildid': 42
+ }
+
+ fake_responder = FakeWebResponder(
+ content_to_read=[json.dumps(response_obj)])
+ monkeypatch.setattr(ci, 'build_opener', lambda handler: fake_responder)
+ build_id, build_stamp = ci.register_cdash_build(
+ build_name, base_url, project, site, track)
+
+ assert(build_id == 42)
+
+
+def test_relate_cdash_builds(config, mutable_mock_env_path, mock_packages,
+ monkeypatch, capfd):
+ e = ev.create('test1')
+ e.add('dyninst')
+ e.concretize()
+
+ dyninst_hash = None
+ hash_dict = {}
+
+ with e as active_env:
+ for s in active_env.all_specs():
+ hash_dict[s.name] = s.build_hash()
+ if s.name == 'dyninst':
+ dyninst_hash = s.build_hash()
+
+ assert(dyninst_hash)
+
+ dep_builds = 'libdwarf;libelf'
+ spec_map = ci.get_concrete_specs(
+ active_env, dyninst_hash, 'dyninst', dep_builds, 'NONE')
+ assert('root' in spec_map and 'deps' in spec_map)
+
+ cdash_api_url = 'http://cdash.fake.org'
+ job_build_id = '42'
+ cdash_project = 'spack'
+ cdashids_mirror_url = 'https://my.fake.mirror'
+
+ dep_cdash_ids = {
+ 'libdwarf': 1,
+ 'libelf': 2
+ }
+
+ monkeypatch.setattr(ci, 'read_cdashid_from_mirror',
+ lambda s, u: dep_cdash_ids.pop(s.name))
+
+ fake_responder = FakeWebResponder(
+ content_to_read=['libdwarf', 'libelf'])
+ monkeypatch.setattr(ci, 'build_opener', lambda handler: fake_responder)
+
+ ci.relate_cdash_builds(spec_map, cdash_api_url, job_build_id,
+ cdash_project, [cdashids_mirror_url])
+
+ assert(not dep_cdash_ids)
+
+ dep_cdash_ids = {
+ 'libdwarf': 1,
+ 'libelf': 2
+ }
+
+ fake_responder._resp_code = 400
ci.relate_cdash_builds(spec_map, cdash_api_url, job_build_id,
- cdash_project, cdashids_mirror_url)
+ cdash_project, [cdashids_mirror_url])
+ out, err = capfd.readouterr()
+ assert('Warning: Relate builds' in err)
+ assert('failed' in err)
+
+ dep_cdash_ids = {}
- # Just make sure passing None for build id doesn't throw exceptions
- ci.relate_cdash_builds(spec_map, cdash_api_url, None, cdash_project,
- cdashids_mirror_url)
+ # Just make sure passing None for build id doesn't result in any
+ # calls to "read_cdashid_from_mirror"
+ ci.relate_cdash_builds(spec_map, cdash_api_url, None, cdash_project,
+ [cdashids_mirror_url])
def test_read_write_cdash_ids(config, tmp_scope, tmpdir, mock_packages):
@@ -172,6 +262,109 @@ def test_read_write_cdash_ids(config, tmp_scope, tmpdir, mock_packages):
assert(str(read_cdashid) == orig_cdashid)
+def test_download_and_extract_artifacts(tmpdir, monkeypatch):
+ os.environ['GITLAB_PRIVATE_TOKEN'] = 'faketoken'
+
+ url = 'https://www.nosuchurlexists.itsfake/artifacts.zip'
+ working_dir = os.path.join(tmpdir.strpath, 'repro')
+ test_artifacts_path = os.path.join(
+ spack_paths.test_path, 'data', 'ci', 'gitlab', 'artifacts.zip')
+
+ with open(test_artifacts_path, 'rb') as fd:
+ fake_responder = FakeWebResponder(content_to_read=[fd.read()])
+
+ monkeypatch.setattr(ci, 'build_opener', lambda handler: fake_responder)
+
+ ci.download_and_extract_artifacts(url, working_dir)
+
+ found_zip = fs.find(working_dir, 'artifacts.zip')
+ assert(len(found_zip) == 0)
+
+ found_install = fs.find(working_dir, 'install.sh')
+ assert(len(found_install) == 1)
+
+ fake_responder._resp_code = 400
+ with pytest.raises(spack.error.SpackError):
+ ci.download_and_extract_artifacts(url, working_dir)
+
+
+def test_setup_spack_repro_version(tmpdir, capfd, last_two_git_commits,
+ monkeypatch):
+ c1, c2 = last_two_git_commits
+ repro_dir = os.path.join(tmpdir.strpath, 'repro')
+ spack_dir = os.path.join(repro_dir, 'spack')
+ os.makedirs(spack_dir)
+
+ prefix_save = spack.paths.prefix
+ monkeypatch.setattr(spack.paths, 'prefix', '/garbage')
+
+ ret = ci.setup_spack_repro_version(repro_dir, c2, c1)
+ out, err = capfd.readouterr()
+
+ assert(not ret)
+ assert('Unable to find the path' in err)
+
+ monkeypatch.setattr(spack.paths, 'prefix', prefix_save)
+
+ monkeypatch.setattr(spack.util.executable, 'which', lambda cmd: None)
+
+ ret = ci.setup_spack_repro_version(repro_dir, c2, c1)
+ out, err = capfd.readouterr()
+
+ assert(not ret)
+ assert('requires git' in err)
+
+ class mock_git_cmd(object):
+ def __init__(self, *args, **kwargs):
+ self.returncode = 0
+ self.check = None
+
+ def __call__(self, *args, **kwargs):
+ if self.check:
+ self.returncode = self.check(*args, **kwargs)
+ else:
+ self.returncode = 0
+
+ git_cmd = mock_git_cmd()
+
+ monkeypatch.setattr(spack.util.executable, 'which', lambda cmd: git_cmd)
+
+ git_cmd.check = lambda *a, **k: 1 if len(a) > 2 and a[2] == c2 else 0
+ ret = ci.setup_spack_repro_version(repro_dir, c2, c1)
+ out, err = capfd.readouterr()
+
+ assert(not ret)
+ assert('Missing commit: {0}'.format(c2) in err)
+
+ git_cmd.check = lambda *a, **k: 1 if len(a) > 2 and a[2] == c1 else 0
+ ret = ci.setup_spack_repro_version(repro_dir, c2, c1)
+ out, err = capfd.readouterr()
+
+ assert(not ret)
+ assert('Missing commit: {0}'.format(c1) in err)
+
+ git_cmd.check = lambda *a, **k: 1 if a[0] == 'clone' else 0
+ ret = ci.setup_spack_repro_version(repro_dir, c2, c1)
+ out, err = capfd.readouterr()
+
+ assert(not ret)
+ assert('Unable to clone' in err)
+
+ git_cmd.check = lambda *a, **k: 1 if a[0] == 'checkout' else 0
+ ret = ci.setup_spack_repro_version(repro_dir, c2, c1)
+ out, err = capfd.readouterr()
+
+ assert(not ret)
+ assert('Unable to checkout' in err)
+
+ git_cmd.check = lambda *a, **k: 1 if 'merge' in a else 0
+ ret = ci.setup_spack_repro_version(repro_dir, c2, c1)
+ out, err = capfd.readouterr()
+
+ assert(not ret)
+ assert('Unable to merge {0}'.format(c1) in err)
+
+
def test_ci_workarounds():
fake_root_spec = 'x' * 544
fake_spack_ref = 'x' * 40
@@ -202,7 +395,7 @@ def test_ci_workarounds():
'paths': [
'jobs_scratch_dir',
'cdash_report',
- name + '.spec.yaml',
+ name + '.spec.json',
name + '.cdashid',
name
],
diff --git a/lib/spack/spack/test/cmd/__init__.py b/lib/spack/spack/test/cmd/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/test/cmd/__init__.py
+++ b/lib/spack/spack/test/cmd/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/cmd/activate.py b/lib/spack/spack/test/cmd/activate.py
index a3546230f1..48806c5833 100644
--- a/lib/spack/spack/test/cmd/activate.py
+++ b/lib/spack/spack/test/cmd/activate.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/cmd/analyze.py b/lib/spack/spack/test/cmd/analyze.py
new file mode 100644
index 0000000000..03a0df100b
--- /dev/null
+++ b/lib/spack/spack/test/cmd/analyze.py
@@ -0,0 +1,176 @@
+# Copyright 2013-2021 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)
+
+import os
+
+import pytest
+
+import spack.cmd.install
+import spack.config
+import spack.package
+import spack.util.spack_json as sjson
+from spack.main import SpackCommand
+from spack.spec import Spec
+
+install = SpackCommand('install')
+analyze = SpackCommand('analyze')
+
+
+def test_test_package_not_installed(mock_fetch, install_mockery_mutable_config):
+ # We cannot run an analysis for a package not installed
+ out = analyze('run', 'libdwarf', fail_on_error=False)
+ assert "==> Error: Spec 'libdwarf' matches no installed packages.\n" in out
+
+
+def test_analyzer_get_install_dir(mock_fetch, install_mockery_mutable_config):
+ """
+ Test that we cannot get an analyzer directory without a spec package.
+ """
+ spec = Spec('libdwarf').concretized()
+ assert 'libdwarf' in spack.analyzers.analyzer_base.get_analyzer_dir(spec)
+
+ # Case 1: spec is missing attribute for package
+ with pytest.raises(SystemExit):
+ spack.analyzers.analyzer_base.get_analyzer_dir(None)
+
+ class Packageless(object):
+ package = None
+
+ # Case 2: spec has package attribute, but it's None
+ with pytest.raises(SystemExit):
+ spack.analyzers.analyzer_base.get_analyzer_dir(Packageless())
+
+
+def test_malformed_analyzer(mock_fetch, install_mockery_mutable_config):
+ """
+ Test that an analyzer missing needed attributes is invalid.
+ """
+ from spack.analyzers.analyzer_base import AnalyzerBase
+
+ # Missing attribute description
+ class MyAnalyzer(AnalyzerBase):
+ name = "my_analyzer"
+ outfile = "my_analyzer_output.txt"
+
+ spec = Spec('libdwarf').concretized()
+ with pytest.raises(SystemExit):
+ MyAnalyzer(spec)
+
+
+def test_analyze_output(tmpdir, mock_fetch, install_mockery_mutable_config):
+ """
+ Test that an analyzer errors if requested name does not exist.
+ """
+ install('libdwarf')
+ install('python@3.8')
+ analyzer_dir = tmpdir.join('analyzers')
+
+ # An analyzer that doesn't exist should not work
+ out = analyze('run', '-a', 'pusheen', 'libdwarf', fail_on_error=False)
+ assert '==> Error: Analyzer pusheen does not exist\n' in out
+
+ # We will output to this analyzer directory
+ analyzer_dir = tmpdir.join('analyzers')
+ out = analyze('run', '-a', 'install_files', '-p', str(analyzer_dir), 'libdwarf')
+
+ # Ensure that if we run again without over write, we don't run
+ out = analyze('run', '-a', 'install_files', '-p', str(analyzer_dir), 'libdwarf')
+ assert "skipping" in out
+
+ # With overwrite it should run
+ out = analyze('run', '-a', 'install_files', '-p', str(analyzer_dir),
+ '--overwrite', 'libdwarf')
+ assert "==> Writing result to" in out
+
+
+def _run_analyzer(name, package, tmpdir):
+ """
+ A shared function to test that an analyzer runs.
+
+ We return the output file for further inspection.
+ """
+ analyzer = spack.analyzers.get_analyzer(name)
+ analyzer_dir = tmpdir.join('analyzers')
+ out = analyze('run', '-a', analyzer.name, '-p', str(analyzer_dir), package)
+
+ assert "==> Writing result to" in out
+ assert "/%s/%s\n" % (analyzer.name, analyzer.outfile) in out
+
+ # The output file should exist
+ output_file = out.strip('\n').split(' ')[-1].strip()
+ assert os.path.exists(output_file)
+ return output_file
+
+
+def test_installfiles_analyzer(tmpdir, mock_fetch, install_mockery_mutable_config):
+ """
+ test the install files analyzer
+ """
+ install('libdwarf')
+ output_file = _run_analyzer("install_files", "libdwarf", tmpdir)
+
+ # Ensure it's the correct content
+ with open(output_file, 'r') as fd:
+ content = sjson.load(fd.read())
+
+ basenames = set()
+ for key, attrs in content.items():
+ basenames.add(os.path.basename(key))
+
+ # Check for a few expected files
+ for key in ['.spack', 'libdwarf', 'packages', 'repo.yaml', 'repos']:
+ assert key in basenames
+
+
+def test_environment_analyzer(tmpdir, mock_fetch, install_mockery_mutable_config):
+ """
+ test the environment variables analyzer.
+ """
+ install('libdwarf')
+ output_file = _run_analyzer("environment_variables", "libdwarf", tmpdir)
+ with open(output_file, 'r') as fd:
+ content = sjson.load(fd.read())
+
+ # Check a few expected keys
+ for key in ['SPACK_CC', 'SPACK_COMPILER_SPEC', 'SPACK_ENV_PATH']:
+ assert key in content
+
+ # The analyzer should return no result if the output file does not exist.
+ spec = Spec('libdwarf').concretized()
+ env_file = os.path.join(spec.package.prefix, '.spack', 'spack-build-env.txt')
+ assert os.path.exists(env_file)
+ os.remove(env_file)
+ analyzer = spack.analyzers.get_analyzer("environment_variables")
+ analyzer_dir = tmpdir.join('analyzers')
+ result = analyzer(spec, analyzer_dir).run()
+ assert "environment_variables" in result
+ assert not result['environment_variables']
+
+
+def test_list_analyzers():
+ """
+ test that listing analyzers shows all the possible analyzers.
+ """
+ from spack.analyzers import analyzer_types
+
+ # all cannot be an analyzer
+ assert "all" not in analyzer_types
+
+ # All types should be present!
+ out = analyze('list-analyzers')
+ for analyzer_type in analyzer_types:
+ assert analyzer_type in out
+
+
+def test_configargs_analyzer(tmpdir, mock_fetch, install_mockery_mutable_config):
+ """
+ test the config args analyzer.
+
+ Since we don't have any, this should return an empty result.
+ """
+ install('libdwarf')
+ analyzer_dir = tmpdir.join('analyzers')
+ out = analyze('run', '-a', 'config_args', '-p', str(analyzer_dir), 'libdwarf')
+ assert out == ''
diff --git a/lib/spack/spack/test/cmd/arch.py b/lib/spack/spack/test/cmd/arch.py
index ec3c92a3d0..0b058a0112 100644
--- a/lib/spack/spack/test/cmd/arch.py
+++ b/lib/spack/spack/test/cmd/arch.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.main import SpackCommand
-
arch = SpackCommand('arch')
diff --git a/lib/spack/spack/test/cmd/audit.py b/lib/spack/spack/test/cmd/audit.py
new file mode 100644
index 0000000000..2c9dc6b124
--- /dev/null
+++ b/lib/spack/spack/test/cmd/audit.py
@@ -0,0 +1,53 @@
+# Copyright 2013-2021 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)
+import pytest
+
+from spack.main import SpackCommand
+
+audit = SpackCommand('audit')
+
+
+@pytest.mark.parametrize('pkgs,expected_returncode', [
+ # A single package with issues, should exit 1
+ (['wrong-variant-in-conflicts'], 1),
+ # A "sane" package should exit 0
+ (['mpileaks'], 0),
+ # A package with issues and a package without should exit 1
+ (['wrong-variant-in-conflicts', 'mpileaks'], 1),
+ (['mpileaks', 'wrong-variant-in-conflicts'], 1),
+])
+def test_audit_packages(
+ pkgs, expected_returncode, mutable_config, mock_packages
+):
+ """Sanity check ``spack audit packages`` to make sure it works."""
+ audit('packages', *pkgs, fail_on_error=False)
+ assert audit.returncode == expected_returncode
+
+
+def test_audit_configs(mutable_config, mock_packages):
+ """Sanity check ``spack audit packages`` to make sure it works."""
+ audit('configs', fail_on_error=False)
+ # The mock configuration has duplicate definitions of some compilers
+ assert audit.returncode == 1
+
+
+def test_audit_packages_https(mutable_config, mock_packages):
+
+ # Without providing --all should fail
+ audit('packages-https', fail_on_error=False)
+ # The mock configuration has duplicate definitions of some compilers
+ assert audit.returncode == 1
+
+ # This uses http and should fail
+ audit('packages-https', "preferred-test", fail_on_error=False)
+ assert audit.returncode == 1
+
+ # providing one or more package names with https should work
+ audit('packages-https', "cmake", fail_on_error=True)
+ assert audit.returncode == 0
+
+ # providing one or more package names with https should work
+ audit('packages-https', "cmake", "conflict", fail_on_error=True)
+ assert audit.returncode == 0
diff --git a/lib/spack/spack/test/cmd/blame.py b/lib/spack/spack/test/cmd/blame.py
index 61bdf41084..d90eea3ef7 100644
--- a/lib/spack/spack/test/cmd/blame.py
+++ b/lib/spack/spack/test/cmd/blame.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,9 @@ import pytest
from llnl.util.filesystem import working_dir
-import spack.paths
import spack.cmd
+import spack.paths
+import spack.util.spack_json as sjson
from spack.main import SpackCommand
from spack.util.executable import which
@@ -44,6 +45,29 @@ def test_blame_file(mock_packages):
assert 'EMAIL' in out
+def test_blame_json(mock_packages):
+ """Ensure that we can output json as a blame."""
+ with working_dir(spack.paths.prefix):
+ out = blame('--json', 'mpich')
+
+ # Test loading the json, and top level keys
+ loaded = sjson.load(out)
+ assert "authors" in out
+ assert "totals" in out
+
+ # Authors should be a list
+ assert len(loaded['authors']) > 0
+
+ # Each of authors and totals has these shared keys
+ keys = ["last_commit", "lines", "percentage"]
+ for key in keys:
+ assert key in loaded['totals']
+
+ # But authors is a list of multiple
+ for key in keys + ["author", "email"]:
+ assert key in loaded['authors'][0]
+
+
def test_blame_by_git(mock_packages, capfd):
"""Sanity check the blame command to make sure it works."""
with capfd.disabled():
diff --git a/lib/spack/spack/test/cmd/bootstrap.py b/lib/spack/spack/test/cmd/bootstrap.py
new file mode 100644
index 0000000000..3904b1019a
--- /dev/null
+++ b/lib/spack/spack/test/cmd/bootstrap.py
@@ -0,0 +1,147 @@
+# Copyright 2013-2021 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)
+import os.path
+
+import pytest
+
+import spack.config
+import spack.environment as ev
+import spack.main
+
+_bootstrap = spack.main.SpackCommand('bootstrap')
+
+
+@pytest.mark.parametrize('scope', [
+ None, 'site', 'system', 'user'
+])
+def test_enable_and_disable(mutable_config, scope):
+ scope_args = []
+ if scope:
+ scope_args = ['--scope={0}'.format(scope)]
+
+ _bootstrap('enable', *scope_args)
+ assert spack.config.get('bootstrap:enable', scope=scope) is True
+
+ _bootstrap('disable', *scope_args)
+ assert spack.config.get('bootstrap:enable', scope=scope) is False
+
+
+@pytest.mark.parametrize('scope', [
+ None, 'site', 'system', 'user'
+])
+def test_root_get_and_set(mutable_config, scope):
+ scope_args, path = [], '/scratch/spack/bootstrap'
+ if scope:
+ scope_args = ['--scope={0}'.format(scope)]
+
+ _bootstrap('root', path, *scope_args)
+ out = _bootstrap('root', *scope_args, output=str)
+ assert out.strip() == path
+
+
+@pytest.mark.parametrize('scopes', [
+ ('site',),
+ ('system', 'user')
+])
+def test_reset_in_file_scopes(mutable_config, scopes):
+ # Assert files are created in the right scopes
+ bootstrap_yaml_files = []
+ for s in scopes:
+ _bootstrap('disable', '--scope={0}'.format(s))
+ scope_path = spack.config.config.scopes[s].path
+ bootstrap_yaml = os.path.join(
+ scope_path, 'bootstrap.yaml'
+ )
+ assert os.path.exists(bootstrap_yaml)
+ bootstrap_yaml_files.append(bootstrap_yaml)
+
+ _bootstrap('reset', '-y')
+ for bootstrap_yaml in bootstrap_yaml_files:
+ assert not os.path.exists(bootstrap_yaml)
+
+
+def test_reset_in_environment(mutable_mock_env_path, mutable_config):
+ env = spack.main.SpackCommand('env')
+ env('create', 'bootstrap-test')
+ current_environment = ev.read('bootstrap-test')
+
+ with current_environment:
+ _bootstrap('disable')
+ assert spack.config.get('bootstrap:enable') is False
+ _bootstrap('reset', '-y')
+ # We have no default settings in tests
+ assert spack.config.get('bootstrap:enable') is None
+
+ # Check that reset didn't delete the entire file
+ spack_yaml = os.path.join(current_environment.path, 'spack.yaml')
+ assert os.path.exists(spack_yaml)
+
+
+def test_reset_in_file_scopes_overwrites_backup_files(mutable_config):
+ # Create a bootstrap.yaml with some config
+ _bootstrap('disable', '--scope=site')
+ scope_path = spack.config.config.scopes['site'].path
+ bootstrap_yaml = os.path.join(scope_path, 'bootstrap.yaml')
+ assert os.path.exists(bootstrap_yaml)
+
+ # Reset the bootstrap configuration
+ _bootstrap('reset', '-y')
+ backup_file = bootstrap_yaml + '.bkp'
+ assert not os.path.exists(bootstrap_yaml)
+ assert os.path.exists(backup_file)
+
+ # Iterate another time
+ _bootstrap('disable', '--scope=site')
+ assert os.path.exists(bootstrap_yaml)
+ assert os.path.exists(backup_file)
+ _bootstrap('reset', '-y')
+ assert not os.path.exists(bootstrap_yaml)
+ assert os.path.exists(backup_file)
+
+
+def test_list_sources(capsys):
+ # Get the merged list and ensure we get our defaults
+ with capsys.disabled():
+ output = _bootstrap('list')
+ assert "github-actions" in output
+
+ # Ask for a specific scope and check that the list of sources is empty
+ with capsys.disabled():
+ output = _bootstrap('list', '--scope', 'user')
+ assert "No method available" in output
+
+
+@pytest.mark.parametrize('command,value', [
+ ('trust', True),
+ ('untrust', False)
+])
+def test_trust_or_untrust_sources(mutable_config, command, value):
+ key = 'bootstrap:trusted:github-actions'
+ trusted = spack.config.get(key, default=None)
+ assert trusted is None
+
+ _bootstrap(command, 'github-actions')
+ trusted = spack.config.get(key, default=None)
+ assert trusted is value
+
+
+def test_trust_or_untrust_fails_with_no_method(mutable_config):
+ with pytest.raises(RuntimeError, match='no bootstrapping method'):
+ _bootstrap('trust', 'foo')
+
+
+def test_trust_or_untrust_fails_with_more_than_one_method(mutable_config):
+ wrong_config = {'sources': [
+ {'name': 'github-actions',
+ 'type': 'buildcache',
+ 'description': ''},
+ {'name': 'github-actions',
+ 'type': 'buildcache',
+ 'description': 'Another entry'}],
+ 'trusted': {}
+ }
+ with spack.config.override('bootstrap', wrong_config):
+ with pytest.raises(RuntimeError, match='more than one'):
+ _bootstrap('trust', 'github-actions')
diff --git a/lib/spack/spack/test/cmd/build_env.py b/lib/spack/spack/test/cmd/build_env.py
index b7de759a2e..d3d941f0b7 100644
--- a/lib/spack/spack/test/cmd/build_env.py
+++ b/lib/spack/spack/test/cmd/build_env.py
@@ -1,14 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 six.moves import cPickle
import pytest
+from six.moves import cPickle
-from spack.main import SpackCommand, SpackCommandError
+from spack.main import SpackCommand
-info = SpackCommand('build-env')
+build_env = SpackCommand('build-env')
@pytest.mark.parametrize('pkg', [
@@ -17,17 +17,24 @@ info = SpackCommand('build-env')
])
@pytest.mark.usefixtures('config')
def test_it_just_runs(pkg):
- info(*pkg)
+ build_env(*pkg)
+
+
+@pytest.mark.usefixtures('config')
+def test_error_when_multiple_specs_are_given():
+ output = build_env('libelf libdwarf', fail_on_error=False)
+ assert 'only takes one spec' in output
-@pytest.mark.parametrize('pkg,error_cls', [
- ('zlib libszip', SpackCommandError),
- ('', IndexError)
+@pytest.mark.parametrize('args', [
+ ('--', '/bin/bash', '-c', 'echo test'),
+ ('--',),
+ (),
])
@pytest.mark.usefixtures('config')
-def test_it_just_fails(pkg, error_cls):
- with pytest.raises(error_cls):
- info(pkg)
+def test_build_env_requires_a_spec(args):
+ output = build_env(*args, fail_on_error=False)
+ assert 'requires a spec' in output
_out_file = 'env.out'
@@ -36,7 +43,7 @@ _out_file = 'env.out'
@pytest.mark.usefixtures('config')
def test_dump(tmpdir):
with tmpdir.as_cwd():
- info('--dump', _out_file, 'zlib')
+ build_env('--dump', _out_file, 'zlib')
with open(_out_file) as f:
assert(any(line.startswith('PATH=') for line in f.readlines()))
@@ -44,7 +51,7 @@ def test_dump(tmpdir):
@pytest.mark.usefixtures('config')
def test_pickle(tmpdir):
with tmpdir.as_cwd():
- info('--pickle', _out_file, 'zlib')
+ build_env('--pickle', _out_file, 'zlib')
environment = cPickle.load(open(_out_file, 'rb'))
assert(type(environment) == dict)
assert('PATH' in environment)
diff --git a/lib/spack/spack/test/cmd/buildcache.py b/lib/spack/spack/test/cmd/buildcache.py
index dcd9b822c0..0e016f543d 100644
--- a/lib/spack/spack/test/cmd/buildcache.py
+++ b/lib/spack/spack/test/cmd/buildcache.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import errno
-import platform
import os
+import platform
+import shutil
import pytest
-import spack.main
import spack.binary_distribution
import spack.environment as ev
+import spack.main
import spack.spec
from spack.spec import Spec
@@ -89,7 +90,7 @@ def tests_buildcache_create(
spec = Spec(pkg).concretized()
tarball_path = spack.binary_distribution.tarball_path_name(spec, '.spack')
- tarball = spack.binary_distribution.tarball_name(spec, '.spec.yaml')
+ tarball = spack.binary_distribution.tarball_name(spec, '.spec.json')
assert os.path.exists(
os.path.join(str(tmpdir), 'build_cache', tarball_path))
assert os.path.exists(
@@ -111,7 +112,7 @@ def tests_buildcache_create_env(
spec = Spec(pkg).concretized()
tarball_path = spack.binary_distribution.tarball_path_name(spec, '.spack')
- tarball = spack.binary_distribution.tarball_name(spec, '.spec.yaml')
+ tarball = spack.binary_distribution.tarball_name(spec, '.spec.json')
assert os.path.exists(
os.path.join(str(tmpdir), 'build_cache', tarball_path))
assert os.path.exists(
@@ -125,10 +126,6 @@ def test_buildcache_create_fails_on_noargs(tmpdir):
buildcache('create', '-d', str(tmpdir), '--unsigned')
-@pytest.mark.skipif(
- os.environ.get('SPACK_TEST_SOLVER') == 'clingo',
- reason='Test for Clingo are run in a container with root permissions'
-)
def test_buildcache_create_fail_on_perm_denied(
install_mockery, mock_fetch, monkeypatch, tmpdir):
"""Ensure that buildcache create fails on permission denied error."""
@@ -142,8 +139,6 @@ def test_buildcache_create_fail_on_perm_denied(
tmpdir.chmod(0o700)
-@pytest.mark.skipif(not spack.util.gpg.has_gpg(),
- reason='This test requires gpg')
def test_update_key_index(tmpdir, mutable_mock_env_path,
install_mockery, mock_packages, mock_fetch,
mock_stage, mock_gnupghome):
@@ -178,3 +173,98 @@ def test_update_key_index(tmpdir, mutable_mock_env_path,
mirror('rm', 'test-mirror')
assert 'index.json' in key_dir_list
+
+
+def test_buildcache_sync(mutable_mock_env_path, install_mockery_mutable_config,
+ mock_packages, mock_fetch, mock_stage, tmpdir):
+ """
+ Make sure buildcache sync works in an environment-aware manner, ignoring
+ any specs that may be in the mirror but not in the environment.
+ """
+ working_dir = tmpdir.join('working_dir')
+
+ src_mirror_dir = working_dir.join('src_mirror').strpath
+ src_mirror_url = 'file://{0}'.format(src_mirror_dir)
+
+ dest_mirror_dir = working_dir.join('dest_mirror').strpath
+ dest_mirror_url = 'file://{0}'.format(dest_mirror_dir)
+
+ in_env_pkg = 'trivial-install-test-package'
+ out_env_pkg = 'libdwarf'
+
+ def verify_mirror_contents():
+ dest_list = os.listdir(
+ os.path.join(dest_mirror_dir, 'build_cache'))
+
+ found_pkg = False
+
+ for p in dest_list:
+ assert(out_env_pkg not in p)
+ if in_env_pkg in p:
+ found_pkg = True
+
+ if not found_pkg:
+ print('Expected to find {0} in {1}'.format(
+ in_env_pkg, dest_mirror_dir))
+ assert(False)
+
+ # Install a package and put it in the buildcache
+ s = Spec(out_env_pkg).concretized()
+ install(s.name)
+ buildcache(
+ 'create', '-u', '-f', '-a', '--mirror-url', src_mirror_url, s.name)
+
+ env('create', 'test')
+ with ev.read('test'):
+ add(in_env_pkg)
+ install()
+ buildcache(
+ 'create', '-u', '-f', '-a', '--mirror-url', src_mirror_url, in_env_pkg)
+
+ # Now run the spack buildcache sync command with all the various options
+ # for specifying mirrors
+
+ # Use urls to specify mirrors
+ buildcache('sync',
+ '--src-mirror-url', src_mirror_url,
+ '--dest-mirror-url', dest_mirror_url)
+
+ verify_mirror_contents()
+ shutil.rmtree(dest_mirror_dir)
+
+ # Use local directory paths to specify fs locations
+ buildcache('sync',
+ '--src-directory', src_mirror_dir,
+ '--dest-directory', dest_mirror_dir)
+
+ verify_mirror_contents()
+ shutil.rmtree(dest_mirror_dir)
+
+ # Use mirror names to specify mirrors
+ mirror('add', 'src', src_mirror_url)
+ mirror('add', 'dest', dest_mirror_url)
+
+ buildcache('sync',
+ '--src-mirror-name', 'src',
+ '--dest-mirror-name', 'dest')
+
+ verify_mirror_contents()
+
+
+def test_buildcache_create_install(mutable_mock_env_path,
+ install_mockery_mutable_config,
+ mock_packages, mock_fetch, mock_stage,
+ monkeypatch, tmpdir):
+ """"Ensure that buildcache create creates output files"""
+ pkg = 'trivial-install-test-package'
+ install(pkg)
+
+ buildcache('create', '-d', str(tmpdir), '--unsigned', pkg)
+
+ spec = Spec(pkg).concretized()
+ tarball_path = spack.binary_distribution.tarball_path_name(spec, '.spack')
+ tarball = spack.binary_distribution.tarball_name(spec, '.spec.json')
+ assert os.path.exists(
+ os.path.join(str(tmpdir), 'build_cache', tarball_path))
+ assert os.path.exists(
+ os.path.join(str(tmpdir), 'build_cache', tarball))
diff --git a/lib/spack/spack/test/cmd/cd.py b/lib/spack/spack/test/cmd/cd.py
index eda6994aec..95d2388284 100644
--- a/lib/spack/spack/test/cmd/cd.py
+++ b/lib/spack/spack/test/cmd/cd.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.main import SpackCommand
-
cd = SpackCommand('cd')
diff --git a/lib/spack/spack/test/cmd/ci.py b/lib/spack/spack/test/cmd/ci.py
index 16af0e99e6..d596e71401 100644
--- a/lib/spack/spack/test/cmd/ci.py
+++ b/lib/spack/spack/test/cmd/ci.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,39 +6,58 @@
import filecmp
import json
import os
+import shutil
+
import pytest
-from jsonschema import validate
+from jsonschema import ValidationError, validate
import spack
import spack.ci as ci
+import spack.cmd.buildcache as buildcache
+import spack.compilers as compilers
import spack.config
import spack.environment as ev
import spack.hash_types as ht
import spack.main
import spack.paths as spack_paths
import spack.repo as repo
-from spack.schema.buildcache_spec import schema as spec_yaml_schema
+import spack.util.gpg
+import spack.util.spack_json as sjson
+import spack.util.spack_yaml as syaml
+import spack.util.url as url_util
+from spack.schema.buildcache_spec import schema as specfile_schema
from spack.schema.database_index import schema as db_idx_schema
-from spack.spec import Spec
+from spack.schema.gitlab_ci import schema as gitlab_ci_schema
+from spack.spec import CompilerSpec, Spec
from spack.util.mock_package import MockPackageMultiRepo
-import spack.util.executable as exe
-import spack.util.spack_yaml as syaml
-import spack.util.gpg
-
ci_cmd = spack.main.SpackCommand('ci')
env_cmd = spack.main.SpackCommand('env')
mirror_cmd = spack.main.SpackCommand('mirror')
gpg_cmd = spack.main.SpackCommand('gpg')
install_cmd = spack.main.SpackCommand('install')
+uninstall_cmd = spack.main.SpackCommand('uninstall')
buildcache_cmd = spack.main.SpackCommand('buildcache')
-git = exe.which('git', required=True)
+
+
+pytestmark = pytest.mark.maybeslow
+
+
+@pytest.fixture()
+def project_dir_env():
+ def _set_project_dir(path):
+ os.environ['CI_PROJECT_DIR'] = path
+
+ yield _set_project_dir
+
+ if 'CI_PROJECT_DIR' in os.environ:
+ os.environ.pop('CI_PROJECT_DIR')
@pytest.fixture()
def env_deactivate():
yield
- spack.environment._active_environment = None
+ ev._active_environment = None
os.environ.pop('SPACK_ENV', None)
@@ -77,13 +96,13 @@ and then 'd', 'b', and 'a' to be put in the next three stages, respectively.
spec_a = Spec('a')
spec_a.concretize()
- spec_a_label = ci.spec_deps_key_label(spec_a)[1]
- spec_b_label = ci.spec_deps_key_label(spec_a['b'])[1]
- spec_c_label = ci.spec_deps_key_label(spec_a['c'])[1]
- spec_d_label = ci.spec_deps_key_label(spec_a['d'])[1]
- spec_e_label = ci.spec_deps_key_label(spec_a['e'])[1]
- spec_f_label = ci.spec_deps_key_label(spec_a['f'])[1]
- spec_g_label = ci.spec_deps_key_label(spec_a['g'])[1]
+ spec_a_label = ci.spec_deps_key(spec_a)
+ spec_b_label = ci.spec_deps_key(spec_a['b'])
+ spec_c_label = ci.spec_deps_key(spec_a['c'])
+ spec_d_label = ci.spec_deps_key(spec_a['d'])
+ spec_e_label = ci.spec_deps_key(spec_a['e'])
+ spec_f_label = ci.spec_deps_key(spec_a['f'])
+ spec_g_label = ci.spec_deps_key(spec_a['g'])
spec_labels, dependencies, stages = ci.stage_spec_jobs([spec_a])
@@ -106,9 +125,11 @@ and then 'd', 'b', and 'a' to be put in the next three stages, respectively.
def test_ci_generate_with_env(tmpdir, mutable_mock_env_path, env_deactivate,
- install_mockery, mock_packages):
+ install_mockery, mock_packages, project_dir_env):
"""Make sure we can get a .gitlab-ci.yml from an environment file
which has the gitlab-ci, cdash, and mirrors sections."""
+ project_dir_env(tmpdir.strpath)
+ mirror_url = 'https://my.fake.mirror'
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write("""\
@@ -128,7 +149,7 @@ spack:
- matrix:
- [$old-gcc-pkgs]
mirrors:
- some-mirror: https://my.fake.mirror
+ some-mirror: {0}
gitlab-ci:
bootstrap:
- name: bootstrap
@@ -140,7 +161,7 @@ spack:
tags:
- donotcare
image: donotcare
- final-stage-rebuild-index:
+ service-job-attributes:
image: donotcare
tags: [donotcare]
cdash:
@@ -148,7 +169,7 @@ spack:
url: https://my.fake.cdash
project: Not used
site: Nothing
-""")
+""".format(mirror_url))
with tmpdir.as_cwd():
env_cmd('create', 'test', './spack.yaml')
outputfile = str(tmpdir.join('.gitlab-ci.yml'))
@@ -170,24 +191,40 @@ spack:
assert(yaml_contents['stages'][0] == 'stage-0')
assert(yaml_contents['stages'][5] == 'stage-rebuild-index')
+ assert('rebuild-index' in yaml_contents)
+ rebuild_job = yaml_contents['rebuild-index']
+ expected = 'spack buildcache update-index --keys -d {0}'.format(
+ mirror_url)
+ assert(rebuild_job['script'][0] == expected)
+
+ assert('variables' in yaml_contents)
+ assert('SPACK_ARTIFACTS_ROOT' in yaml_contents['variables'])
+ artifacts_root = yaml_contents['variables']['SPACK_ARTIFACTS_ROOT']
+ assert(artifacts_root == 'jobs_scratch_dir')
+
def _validate_needs_graph(yaml_contents, needs_graph, artifacts):
for job_name, job_def in yaml_contents.items():
for needs_def_name, needs_list in needs_graph.items():
if job_name.startswith(needs_def_name):
# check job needs against the expected needs definition
+ j_needs = job_def['needs']
assert all([job_needs['job'][:job_needs['job'].index('/')]
- in needs_list for job_needs in job_def['needs']])
+ in needs_list for job_needs in j_needs])
+ assert(all([nl in
+ [n['job'][:n['job'].index('/')] for n in j_needs]
+ for nl in needs_list]))
assert all([job_needs['artifacts'] == artifacts
- for job_needs in job_def['needs']])
+ for job_needs in j_needs])
break
def test_ci_generate_bootstrap_gcc(tmpdir, mutable_mock_env_path,
env_deactivate, install_mockery,
- mock_packages):
+ mock_packages, project_dir_env):
"""Test that we can bootstrap a compiler and use it as the
compiler for a spec in the environment"""
+ project_dir_env(tmpdir.strpath)
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write("""\
@@ -248,9 +285,11 @@ def test_ci_generate_bootstrap_artifacts_buildcache(tmpdir,
mutable_mock_env_path,
env_deactivate,
install_mockery,
- mock_packages):
+ mock_packages,
+ project_dir_env):
"""Test that we can bootstrap a compiler when artifacts buildcache
is turned on"""
+ project_dir_env(tmpdir.strpath)
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write("""\
@@ -312,8 +351,9 @@ spack:
def test_ci_generate_with_env_missing_section(tmpdir, mutable_mock_env_path,
env_deactivate, install_mockery,
- mock_packages):
+ mock_packages, project_dir_env):
"""Make sure we get a reasonable message if we omit gitlab-ci section"""
+ project_dir_env(tmpdir.strpath)
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write("""\
@@ -336,8 +376,9 @@ spack:
def test_ci_generate_with_cdash_token(tmpdir, mutable_mock_env_path,
env_deactivate, install_mockery,
- mock_packages):
+ mock_packages, project_dir_env):
"""Make sure we it doesn't break if we configure cdash"""
+ project_dir_env(tmpdir.strpath)
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write("""\
@@ -369,7 +410,10 @@ spack:
fake_token = 'notreallyatokenbutshouldnotmatter'
os.environ['SPACK_CDASH_AUTH_TOKEN'] = fake_token
copy_to_file = str(tmpdir.join('backup-ci.yml'))
- output = ci_cmd('generate', '--copy-to', copy_to_file, output=str)
+ try:
+ output = ci_cmd('generate', '--copy-to', copy_to_file, output=str)
+ finally:
+ del os.environ['SPACK_CDASH_AUTH_TOKEN']
# That fake token should still have resulted in being unable to
# register build group with cdash, but the workload should
# still have been generated.
@@ -378,8 +422,6 @@ spack:
dir_contents = os.listdir(tmpdir.strpath)
- print(dir_contents)
-
assert('backup-ci.yml' in dir_contents)
orig_file = str(tmpdir.join('.gitlab-ci.yml'))
@@ -389,8 +431,10 @@ spack:
def test_ci_generate_with_custom_scripts(tmpdir, mutable_mock_env_path,
env_deactivate, install_mockery,
- mock_packages, monkeypatch):
+ mock_packages, monkeypatch,
+ project_dir_env):
"""Test use of user-provided scripts"""
+ project_dir_env(tmpdir.strpath)
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write("""\
@@ -478,8 +522,9 @@ spack:
def test_ci_generate_pkg_with_deps(tmpdir, mutable_mock_env_path,
env_deactivate, install_mockery,
- mock_packages):
+ mock_packages, project_dir_env):
"""Test pipeline generation for a package w/ dependencies"""
+ project_dir_env(tmpdir.strpath)
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write("""\
@@ -512,8 +557,6 @@ spack:
with open(outputfile) as f:
contents = f.read()
- print('generated contents: ')
- print(contents)
yaml_contents = syaml.load(contents)
found = []
for ci_key in yaml_contents.keys():
@@ -533,10 +576,12 @@ spack:
def test_ci_generate_for_pr_pipeline(tmpdir, mutable_mock_env_path,
env_deactivate, install_mockery,
- mock_packages):
+ mock_packages, monkeypatch,
+ project_dir_env):
"""Test that PR pipelines do not include a final stage job for
rebuilding the mirror index, even if that job is specifically
configured"""
+ project_dir_env(tmpdir.strpath)
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write("""\
@@ -558,9 +603,10 @@ spack:
runner-attributes:
tags:
- donotcare
- final-stage-rebuild-index:
+ service-job-attributes:
image: donotcare
tags: [donotcare]
+ rebuild-index: False
""")
with tmpdir.as_cwd():
@@ -568,22 +614,36 @@ spack:
outputfile = str(tmpdir.join('.gitlab-ci.yml'))
with ev.read('test'):
- os.environ['SPACK_IS_PR_PIPELINE'] = 'True'
- ci_cmd('generate', '--output-file', outputfile)
+ os.environ['SPACK_PIPELINE_TYPE'] = 'spack_pull_request'
+ os.environ['SPACK_PR_BRANCH'] = 'fake-test-branch'
+ monkeypatch.setattr(
+ ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror")
+ monkeypatch.setattr(
+ ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two")
+ try:
+ ci_cmd('generate', '--output-file', outputfile)
+ finally:
+ del os.environ['SPACK_PIPELINE_TYPE']
+ del os.environ['SPACK_PR_BRANCH']
with open(outputfile) as f:
contents = f.read()
- print('generated contents: ')
- print(contents)
yaml_contents = syaml.load(contents)
assert('rebuild-index' not in yaml_contents)
+ assert('variables' in yaml_contents)
+ pipeline_vars = yaml_contents['variables']
+ assert('SPACK_PIPELINE_TYPE' in pipeline_vars)
+ assert(pipeline_vars['SPACK_PIPELINE_TYPE'] == 'spack_pull_request')
+
def test_ci_generate_with_external_pkg(tmpdir, mutable_mock_env_path,
env_deactivate, install_mockery,
- mock_packages):
+ mock_packages, monkeypatch,
+ project_dir_env):
"""Make sure we do not generate jobs for external pkgs"""
+ project_dir_env(tmpdir.strpath)
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write("""\
@@ -609,6 +669,10 @@ spack:
outputfile = str(tmpdir.join('.gitlab-ci.yml'))
with ev.read('test'):
+ monkeypatch.setattr(
+ ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror")
+ monkeypatch.setattr(
+ ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two")
ci_cmd('generate', '--output-file', outputfile)
with open(outputfile) as f:
@@ -618,14 +682,26 @@ spack:
assert not any('externaltool' in key for key in yaml_contents)
-def test_ci_rebuild_basic(tmpdir, mutable_mock_env_path, env_deactivate,
- install_mockery, mock_packages,
- mock_gnupghome):
+def test_ci_rebuild(tmpdir, mutable_mock_env_path, env_deactivate,
+ install_mockery, mock_packages, monkeypatch,
+ mock_gnupghome, mock_fetch, project_dir_env):
+ project_dir_env(tmpdir.strpath)
working_dir = tmpdir.join('working_dir')
+ log_dir = os.path.join(working_dir.strpath, 'logs')
+ repro_dir = os.path.join(working_dir.strpath, 'repro')
+ env_dir = working_dir.join('concrete_env')
+
mirror_dir = working_dir.join('mirror')
mirror_url = 'file://{0}'.format(mirror_dir.strpath)
+ broken_specs_path = os.path.join(working_dir.strpath, 'naughty-list')
+ broken_specs_url = url_util.join('file://', broken_specs_path)
+ temp_storage_url = 'file:///path/to/per/pipeline/storage'
+
+ ci_job_url = 'https://some.domain/group/project/-/jobs/42'
+ ci_pipeline_url = 'https://some.domain/group/project/-/pipelines/7'
+
signing_key_dir = spack_paths.mock_gpg_keys_path
signing_key_path = os.path.join(signing_key_dir, 'package-signing-key')
with open(signing_key_path) as fd:
@@ -640,7 +716,8 @@ spack:
mirrors:
test-mirror: {0}
gitlab-ci:
- enable-artifacts-buildcache: True
+ broken-specs-url: {1}
+ temporary-storage-url-prefix: {2}
mappings:
- match:
- archive-files
@@ -653,9 +730,147 @@ spack:
url: https://my.fake.cdash
project: Not used
site: Nothing
+""".format(mirror_url, broken_specs_url, temp_storage_url)
+
+ filename = str(tmpdir.join('spack.yaml'))
+ with open(filename, 'w') as f:
+ f.write(spack_yaml_contents)
+
+ with tmpdir.as_cwd():
+ env_cmd('create', 'test', './spack.yaml')
+ with ev.read('test') as env:
+ with env.write_transaction():
+ env.concretize()
+ env.write()
+
+ if not os.path.exists(env_dir.strpath):
+ os.makedirs(env_dir.strpath)
+
+ shutil.copyfile(env.manifest_path,
+ os.path.join(env_dir.strpath, 'spack.yaml'))
+ shutil.copyfile(env.lock_path,
+ os.path.join(env_dir.strpath, 'spack.lock'))
+
+ root_spec_build_hash = None
+ job_spec_dag_hash = None
+ job_spec_full_hash = None
+
+ for h, s in env.specs_by_hash.items():
+ if s.name == 'archive-files':
+ root_spec_build_hash = h
+ job_spec_dag_hash = s.dag_hash()
+ job_spec_full_hash = s.full_hash()
+
+ assert root_spec_build_hash
+ assert job_spec_dag_hash
+ assert job_spec_full_hash
+
+ def fake_cdash_register(build_name, base_url, project, site, track):
+ return ('fakebuildid', 'fakestamp')
+
+ monkeypatch.setattr(ci, 'register_cdash_build', fake_cdash_register)
+
+ monkeypatch.setattr(spack.cmd.ci, 'CI_REBUILD_INSTALL_BASE_ARGS', [
+ 'notcommand'
+ ])
+ monkeypatch.setattr(spack.cmd.ci, 'INSTALL_FAIL_CODE', 127)
+
+ with env_dir.as_cwd():
+ env_cmd('activate', '--without-view', '--sh', '-d', '.')
+
+ # Create environment variables as gitlab would do it
+ set_env_var('SPACK_ARTIFACTS_ROOT', working_dir.strpath)
+ set_env_var('SPACK_JOB_LOG_DIR', log_dir)
+ set_env_var('SPACK_JOB_REPRO_DIR', repro_dir)
+ set_env_var('SPACK_LOCAL_MIRROR_DIR', mirror_dir.strpath)
+ set_env_var('SPACK_CONCRETE_ENV_DIR', env_dir.strpath)
+ set_env_var('CI_PIPELINE_ID', '7192')
+ set_env_var('SPACK_SIGNING_KEY', signing_key)
+ set_env_var('SPACK_ROOT_SPEC', root_spec_build_hash)
+ set_env_var('SPACK_JOB_SPEC_DAG_HASH', job_spec_dag_hash)
+ set_env_var('SPACK_JOB_SPEC_PKG_NAME', 'archive-files')
+ set_env_var('SPACK_COMPILER_ACTION', 'NONE')
+ set_env_var('SPACK_CDASH_BUILD_NAME', '(specs) archive-files')
+ set_env_var('SPACK_RELATED_BUILDS_CDASH', '')
+ set_env_var('SPACK_REMOTE_MIRROR_URL', mirror_url)
+ set_env_var('SPACK_PIPELINE_TYPE', 'spack_protected_branch')
+ set_env_var('CI_JOB_URL', ci_job_url)
+ set_env_var('CI_PIPELINE_URL', ci_pipeline_url)
+
+ ci_cmd('rebuild', fail_on_error=False)
+
+ expected_repro_files = [
+ 'install.sh',
+ 'root.yaml',
+ 'archive-files.yaml',
+ 'spack.yaml',
+ 'spack.lock'
+ ]
+ repro_files = os.listdir(repro_dir)
+ assert(all([f in repro_files for f in expected_repro_files]))
+
+ install_script_path = os.path.join(repro_dir, 'install.sh')
+ install_line = None
+ with open(install_script_path) as fd:
+ for line in fd:
+ if line.startswith('"notcommand"'):
+ install_line = line
+
+ assert(install_line)
+
+ def mystrip(s):
+ return s.strip('"').rstrip('\n').rstrip('"')
+
+ install_parts = [mystrip(s) for s in install_line.split(' ')]
+
+ assert('--keep-stage' in install_parts)
+ assert('--require-full-hash-match' in install_parts)
+ assert('--no-check-signature' not in install_parts)
+ assert('--no-add' in install_parts)
+ assert('-f' in install_parts)
+ flag_index = install_parts.index('-f')
+ assert('archive-files.yaml' in install_parts[flag_index + 1])
+
+ broken_spec_file = os.path.join(broken_specs_path, job_spec_full_hash)
+ with open(broken_spec_file) as fd:
+ broken_spec_content = fd.read()
+ assert(ci_job_url in broken_spec_content)
+ assert(ci_pipeline_url) in broken_spec_content
+
+ env_cmd('deactivate')
+
+
+def test_ci_nothing_to_rebuild(tmpdir, mutable_mock_env_path, env_deactivate,
+ install_mockery, mock_packages, monkeypatch,
+ mock_fetch, project_dir_env):
+ project_dir_env(tmpdir.strpath)
+ working_dir = tmpdir.join('working_dir')
+
+ mirror_dir = working_dir.join('mirror')
+ mirror_url = 'file://{0}'.format(mirror_dir.strpath)
+
+ spack_yaml_contents = """
+spack:
+ definitions:
+ - packages: [archive-files]
+ specs:
+ - $packages
+ mirrors:
+ test-mirror: {0}
+ gitlab-ci:
+ enable-artifacts-buildcache: True
+ mappings:
+ - match:
+ - archive-files
+ runner-attributes:
+ tags:
+ - donotcare
+ image: donotcare
""".format(mirror_url)
- print('spack.yaml:\n{0}\n'.format(spack_yaml_contents))
+ install_cmd('archive-files')
+ buildcache_cmd('create', '-a', '-f', '-u', '--mirror-url',
+ mirror_url, 'archive-files')
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
@@ -663,35 +878,48 @@ spack:
with tmpdir.as_cwd():
env_cmd('create', 'test', './spack.yaml')
- with ev.read('test'):
- root_spec = ('eJyNjsGOwyAMRO/5Ct96alRFFK34ldUqcohJ6BJAQFHUry9Nk66'
- 'UXNY3v5mxJ3qSojoDBjnqTGelDUVRQZlMIWpnBZya+nJa0Mv1Fg'
- 'G8waRcmAQkimkHWxcF9NRptHyVEoaBkoD5i7ecLVC6yZd/YTtpc'
- 'SIBg5Tr/mnA6mt9qTZL9CiLr7trk7StJyd/F81jKGoqoe2gVAaH'
- '0uT7ZwPeH9A875HaA9MfidHdHxgxjgJuTGVtIrvfHGtynjkGyzi'
- 'xRrkHy94t1lftvv1n4AkVK3kQ')
+ with ev.read('test') as env:
+ env.concretize()
+ root_spec_build_hash = None
+ job_spec_dag_hash = None
+
+ for h, s in env.specs_by_hash.items():
+ if s.name == 'archive-files':
+ root_spec_build_hash = h
+ job_spec_dag_hash = s.dag_hash()
# Create environment variables as gitlab would do it
- set_env_var('CI_PROJECT_DIR', working_dir.strpath)
- set_env_var('SPACK_SIGNING_KEY', signing_key)
- set_env_var('SPACK_ROOT_SPEC', root_spec)
+ set_env_var('SPACK_ARTIFACTS_ROOT', working_dir.strpath)
+ set_env_var('SPACK_JOB_LOG_DIR', 'log_dir')
+ set_env_var('SPACK_JOB_REPRO_DIR', 'repro_dir')
+ set_env_var('SPACK_LOCAL_MIRROR_DIR', mirror_dir.strpath)
+ set_env_var('SPACK_CONCRETE_ENV_DIR', tmpdir.strpath)
+ set_env_var('SPACK_ROOT_SPEC', root_spec_build_hash)
+ set_env_var('SPACK_JOB_SPEC_DAG_HASH', job_spec_dag_hash)
set_env_var('SPACK_JOB_SPEC_PKG_NAME', 'archive-files')
set_env_var('SPACK_COMPILER_ACTION', 'NONE')
- set_env_var('SPACK_CDASH_BUILD_NAME', '(specs) archive-files')
- set_env_var('SPACK_RELATED_BUILDS_CDASH', '')
+ set_env_var('SPACK_REMOTE_MIRROR_URL', mirror_url)
+
+ def fake_dl_method(spec, dest, require_cdashid, m_url=None):
+ print('fake download buildcache {0}'.format(spec.name))
+
+ monkeypatch.setattr(
+ buildcache, 'download_buildcache_files', fake_dl_method)
- rebuild_output = ci_cmd(
- 'rebuild', fail_on_error=False, output=str)
+ ci_out = ci_cmd('rebuild', output=str)
- print(rebuild_output)
+ assert('No need to rebuild archive-files' in ci_out)
+ assert('fake download buildcache archive-files' in ci_out)
+
+ env_cmd('deactivate')
@pytest.mark.disable_clean_stage_check
-@pytest.mark.skipif(not spack.util.gpg.has_gpg(),
- reason='This test requires gpg')
def test_push_mirror_contents(tmpdir, mutable_mock_env_path, env_deactivate,
- install_mockery, mock_packages, mock_fetch,
- mock_stage, mock_gnupghome):
+ install_mockery_mutable_config, mock_packages,
+ mock_fetch, mock_stage, mock_gnupghome,
+ project_dir_env):
+ project_dir_env(tmpdir.strpath)
working_dir = tmpdir.join('working_dir')
mirror_dir = working_dir.join('mirror')
@@ -712,10 +940,21 @@ spack:
- $packages
mirrors:
test-mirror: {0}
+ gitlab-ci:
+ enable-artifacts-buildcache: True
+ mappings:
+ - match:
+ - patchelf
+ runner-attributes:
+ tags:
+ - donotcare
+ image: donotcare
+ service-job-attributes:
+ tags:
+ - nonbuildtag
+ image: basicimage
""".format(mirror_url)
- print('spack.yaml:\n{0}\n'.format(spack_yaml_contents))
-
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write(spack_yaml_contents)
@@ -724,21 +963,65 @@ spack:
env_cmd('create', 'test', './spack.yaml')
with ev.read('test') as env:
spec_map = ci.get_concrete_specs(
- 'patchelf', 'patchelf', '', 'FIND_ANY')
+ env, 'patchelf', 'patchelf', '', 'FIND_ANY')
concrete_spec = spec_map['patchelf']
- spec_yaml = concrete_spec.to_yaml(hash=ht.build_hash)
- yaml_path = str(tmpdir.join('spec.yaml'))
- with open(yaml_path, 'w') as ypfd:
- ypfd.write(spec_yaml)
+ spec_json = concrete_spec.to_json(hash=ht.build_hash)
+ json_path = str(tmpdir.join('spec.json'))
+ with open(json_path, 'w') as ypfd:
+ ypfd.write(spec_json)
- install_cmd('--keep-stage', yaml_path)
+ install_cmd('--keep-stage', json_path)
- # env, spec, yaml_path, mirror_url, build_id, sign_binaries
+ # env, spec, json_path, mirror_url, build_id, sign_binaries
ci.push_mirror_contents(
- env, concrete_spec, yaml_path, mirror_url, '42', True)
+ env, concrete_spec, json_path, mirror_url, True)
+
+ ci.write_cdashid_to_mirror('42', concrete_spec, mirror_url)
buildcache_path = os.path.join(mirror_dir.strpath, 'build_cache')
+ # Now test the --prune-dag (default) option of spack ci generate
+ mirror_cmd('add', 'test-ci', mirror_url)
+
+ outputfile_pruned = str(tmpdir.join('pruned_pipeline.yml'))
+ ci_cmd('generate', '--output-file', outputfile_pruned)
+
+ with open(outputfile_pruned) as f:
+ contents = f.read()
+ yaml_contents = syaml.load(contents)
+ assert('no-specs-to-rebuild' in yaml_contents)
+ # Make sure there are no other spec jobs or rebuild-index
+ assert(len(yaml_contents.keys()) == 1)
+ the_elt = yaml_contents['no-specs-to-rebuild']
+ assert('tags' in the_elt)
+ assert('nonbuildtag' in the_elt['tags'])
+ assert('image' in the_elt)
+ assert(the_elt['image'] == 'basicimage')
+
+ outputfile_not_pruned = str(tmpdir.join('unpruned_pipeline.yml'))
+ ci_cmd('generate', '--no-prune-dag', '--output-file',
+ outputfile_not_pruned)
+
+ # Test the --no-prune-dag option of spack ci generate
+ with open(outputfile_not_pruned) as f:
+ contents = f.read()
+ yaml_contents = syaml.load(contents)
+
+ found_spec_job = False
+
+ for ci_key in yaml_contents.keys():
+ if '(specs) patchelf' in ci_key:
+ the_elt = yaml_contents[ci_key]
+ assert('variables' in the_elt)
+ job_vars = the_elt['variables']
+ assert('SPACK_SPEC_NEEDS_REBUILD' in job_vars)
+ assert(job_vars['SPACK_SPEC_NEEDS_REBUILD'] == 'False')
+ found_spec_job = True
+
+ assert(found_spec_job)
+
+ mirror_cmd('rm', 'test-ci')
+
# Test generating buildcache index while we have bin mirror
buildcache_cmd('update-index', '--mirror-url', mirror_url)
index_path = os.path.join(buildcache_path, 'index.json')
@@ -749,15 +1032,14 @@ spack:
# Now that index is regenerated, validate "buildcache list" output
buildcache_list_output = buildcache_cmd('list', output=str)
assert('patchelf' in buildcache_list_output)
-
# Also test buildcache_spec schema
bc_files_list = os.listdir(buildcache_path)
for file_name in bc_files_list:
- if file_name.endswith('.spec.yaml'):
- spec_yaml_path = os.path.join(buildcache_path, file_name)
- with open(spec_yaml_path) as yaml_fd:
- yaml_object = syaml.load(yaml_fd)
- validate(yaml_object, spec_yaml_schema)
+ if file_name.endswith('.spec.json'):
+ spec_json_path = os.path.join(buildcache_path, file_name)
+ with open(spec_json_path) as json_fd:
+ json_object = sjson.load(json_fd)
+ validate(json_object, specfile_schema)
logs_dir = working_dir.join('logs_dir')
if not os.path.exists(logs_dir.strpath):
@@ -776,22 +1058,42 @@ spack:
dl_dir = working_dir.join('download_dir')
if not os.path.exists(dl_dir.strpath):
os.makedirs(dl_dir.strpath)
-
- buildcache_cmd('download', '--spec-yaml', yaml_path, '--path',
+ buildcache_cmd('download', '--spec-file', json_path, '--path',
dl_dir.strpath, '--require-cdashid')
-
dl_dir_list = os.listdir(dl_dir.strpath)
assert(len(dl_dir_list) == 3)
+def test_push_mirror_contents_exceptions(monkeypatch, capsys):
+ def faked(env, spec_file=None, packages=None, add_spec=True,
+ add_deps=True, output_location=os.getcwd(),
+ signing_key=None, force=False, make_relative=False,
+ unsigned=False, allow_root=False, rebuild_index=False):
+ raise Exception('Error: Access Denied')
+
+ import spack.cmd.buildcache as buildcache
+ monkeypatch.setattr(buildcache, '_createtarball', faked)
+
+ url = 'fakejunk'
+ ci.push_mirror_contents(None, None, None, url, None)
+
+ captured = capsys.readouterr()
+ std_out = captured[0]
+ expect_msg = 'Permission problem writing to {0}'.format(url)
+
+ assert(expect_msg in std_out)
+
+
def test_ci_generate_override_runner_attrs(tmpdir, mutable_mock_env_path,
env_deactivate, install_mockery,
- mock_packages, monkeypatch):
+ mock_packages, monkeypatch,
+ project_dir_env):
"""Test that we get the behavior we want with respect to the provision
of runner attributes like tags, variables, and scripts, both when we
inherit them from the top level, as well as when we override one or
more at the runner level"""
+ project_dir_env(tmpdir.strpath)
filename = str(tmpdir.join('spack.yaml'))
with open(filename, 'w') as f:
f.write("""\
@@ -839,7 +1141,7 @@ spack:
- custom main step
after_script:
- custom post step one
- final-stage-rebuild-index:
+ service-job-attributes:
image: donotcare
tags: [donotcare]
""")
@@ -851,12 +1153,14 @@ spack:
with ev.read('test'):
monkeypatch.setattr(
spack.main, 'get_version', lambda: '0.15.3-416-12ad69eb1')
+ monkeypatch.setattr(
+ ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror")
+ monkeypatch.setattr(
+ ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two")
ci_cmd('generate', '--output-file', outputfile)
with open(outputfile) as f:
contents = f.read()
- print('generated contents: ')
- print(contents)
yaml_contents = syaml.load(contents)
assert('variables' in yaml_contents)
@@ -868,7 +1172,6 @@ spack:
for ci_key in yaml_contents.keys():
if '(specs) b' in ci_key:
- print('Should not have staged "b" w/out a match')
assert(False)
if '(specs) a' in ci_key:
# Make sure a's attributes override variables, and all the
@@ -925,3 +1228,538 @@ spack:
assert(the_elt['script'][0] == 'main step')
assert(len(the_elt['after_script']) == 1)
assert(the_elt['after_script'][0] == 'post step one')
+
+
+def test_ci_generate_with_workarounds(tmpdir, mutable_mock_env_path,
+ env_deactivate, install_mockery,
+ mock_packages, monkeypatch,
+ project_dir_env):
+ """Make sure the post-processing cli workarounds do what they should"""
+ project_dir_env(tmpdir.strpath)
+ filename = str(tmpdir.join('spack.yaml'))
+ with open(filename, 'w') as f:
+ f.write("""\
+spack:
+ specs:
+ - callpath%gcc@3.0
+ mirrors:
+ some-mirror: https://my.fake.mirror
+ gitlab-ci:
+ mappings:
+ - match: ['%gcc@3.0']
+ runner-attributes:
+ tags:
+ - donotcare
+ image: donotcare
+ enable-artifacts-buildcache: true
+""")
+
+ with tmpdir.as_cwd():
+ env_cmd('create', 'test', './spack.yaml')
+ outputfile = str(tmpdir.join('.gitlab-ci.yml'))
+
+ with ev.read('test'):
+ monkeypatch.setattr(
+ ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror")
+ monkeypatch.setattr(
+ ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two")
+ ci_cmd('generate', '--output-file', outputfile, '--dependencies')
+
+ with open(outputfile) as f:
+ contents = f.read()
+ yaml_contents = syaml.load(contents)
+
+ found_one = False
+
+ for ci_key in yaml_contents.keys():
+ if ci_key.startswith('(specs) '):
+ found_one = True
+ job_obj = yaml_contents[ci_key]
+ assert('needs' not in job_obj)
+ assert('dependencies' in job_obj)
+
+ assert(found_one is True)
+
+
+@pytest.mark.disable_clean_stage_check
+def test_ci_rebuild_index(tmpdir, mutable_mock_env_path, env_deactivate,
+ install_mockery, mock_packages, mock_fetch,
+ mock_stage):
+ working_dir = tmpdir.join('working_dir')
+
+ mirror_dir = working_dir.join('mirror')
+ mirror_url = 'file://{0}'.format(mirror_dir.strpath)
+
+ spack_yaml_contents = """
+spack:
+ specs:
+ - callpath
+ mirrors:
+ test-mirror: {0}
+ gitlab-ci:
+ mappings:
+ - match:
+ - patchelf
+ runner-attributes:
+ tags:
+ - donotcare
+ image: donotcare
+""".format(mirror_url)
+
+ filename = str(tmpdir.join('spack.yaml'))
+ with open(filename, 'w') as f:
+ f.write(spack_yaml_contents)
+
+ with tmpdir.as_cwd():
+ env_cmd('create', 'test', './spack.yaml')
+ with ev.read('test') as env:
+ spec_map = ci.get_concrete_specs(
+ env, 'callpath', 'callpath', '', 'FIND_ANY')
+ concrete_spec = spec_map['callpath']
+ spec_yaml = concrete_spec.to_yaml(hash=ht.build_hash)
+ yaml_path = str(tmpdir.join('spec.yaml'))
+ with open(yaml_path, 'w') as ypfd:
+ ypfd.write(spec_yaml)
+
+ install_cmd('--keep-stage', '-f', yaml_path)
+ buildcache_cmd('create', '-u', '-a', '-f', '--mirror-url',
+ mirror_url, 'callpath')
+ ci_cmd('rebuild-index')
+
+ buildcache_path = os.path.join(mirror_dir.strpath, 'build_cache')
+ index_path = os.path.join(buildcache_path, 'index.json')
+ with open(index_path) as idx_fd:
+ index_object = json.load(idx_fd)
+ validate(index_object, db_idx_schema)
+
+
+def test_ci_generate_bootstrap_prune_dag(
+ install_mockery_mutable_config, mock_packages, mock_fetch,
+ mock_archive, mutable_config, monkeypatch, tmpdir,
+ mutable_mock_env_path, env_deactivate, project_dir_env):
+ """Test compiler bootstrapping with DAG pruning. Specifically, make
+ sure that if we detect the bootstrapped compiler needs to be rebuilt,
+ we ensure the spec we want to build with that compiler is scheduled
+ for rebuild as well."""
+
+ # Create a temp mirror directory for buildcache usage
+ project_dir_env(tmpdir.strpath)
+ mirror_dir = tmpdir.join('mirror_dir')
+ mirror_url = 'file://{0}'.format(mirror_dir.strpath)
+
+ # Install a compiler, because we want to put it in a buildcache
+ install_cmd('gcc@10.1.0%gcc@4.5.0')
+
+ # Put installed compiler in the buildcache
+ buildcache_cmd('create', '-u', '-a', '-f', '-d', mirror_dir.strpath,
+ 'gcc@10.1.0%gcc@4.5.0')
+
+ # Now uninstall the compiler
+ uninstall_cmd('-y', 'gcc@10.1.0%gcc@4.5.0')
+
+ monkeypatch.setattr(spack.concretize.Concretizer,
+ 'check_for_compiler_existence', False)
+ spack.config.set('config:install_missing_compilers', True)
+ assert CompilerSpec('gcc@10.1.0') not in compilers.all_compiler_specs()
+
+ # Configure the mirror where we put that buildcache w/ the compiler
+ mirror_cmd('add', 'test-mirror', mirror_url)
+
+ install_cmd('--no-check-signature', 'a%gcc@10.1.0')
+
+ # Put spec built with installed compiler in the buildcache
+ buildcache_cmd('create', '-u', '-a', '-f', '-d', mirror_dir.strpath,
+ 'a%gcc@10.1.0')
+
+ # Now uninstall the spec
+ uninstall_cmd('-y', 'a%gcc@10.1.0')
+
+ filename = str(tmpdir.join('spack.yaml'))
+ with open(filename, 'w') as f:
+ f.write("""\
+spack:
+ definitions:
+ - bootstrap:
+ - gcc@10.1.0%gcc@4.5.0
+ specs:
+ - a%gcc@10.1.0
+ mirrors:
+ atestm: {0}
+ gitlab-ci:
+ bootstrap:
+ - name: bootstrap
+ compiler-agnostic: true
+ mappings:
+ - match:
+ - arch=test-debian6-x86_64
+ runner-attributes:
+ tags:
+ - donotcare
+ - match:
+ - arch=test-debian6-core2
+ runner-attributes:
+ tags:
+ - meh
+""".format(mirror_url))
+
+ # Without this monkeypatch, pipeline generation process would think that
+ # nothing in the environment needs rebuilding. With the monkeypatch, the
+ # process sees the compiler as needing a rebuild, which should then result
+ # in the specs built with that compiler needing a rebuild too.
+ def fake_get_mirrors_for_spec(spec=None, full_hash_match=False,
+ mirrors_to_check=None, index_only=False):
+ if spec.name == 'gcc':
+ return []
+ else:
+ return [{
+ 'spec': spec,
+ 'mirror_url': mirror_url,
+ }]
+
+ with tmpdir.as_cwd():
+ env_cmd('create', 'test', './spack.yaml')
+ outputfile = str(tmpdir.join('.gitlab-ci.yml'))
+
+ with ev.read('test'):
+ monkeypatch.setattr(
+ ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror")
+ monkeypatch.setattr(
+ ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two")
+
+ ci_cmd('generate', '--output-file', outputfile)
+
+ with open(outputfile) as of:
+ yaml_contents = of.read()
+ original_yaml_contents = syaml.load(yaml_contents)
+
+ # without the monkeypatch, everything appears up to date and no
+ # rebuild jobs are generated.
+ assert(original_yaml_contents)
+ assert('no-specs-to-rebuild' in original_yaml_contents)
+
+ monkeypatch.setattr(spack.binary_distribution,
+ 'get_mirrors_for_spec',
+ fake_get_mirrors_for_spec)
+
+ ci_cmd('generate', '--output-file', outputfile)
+
+ with open(outputfile) as of:
+ yaml_contents = of.read()
+ new_yaml_contents = syaml.load(yaml_contents)
+
+ assert(new_yaml_contents)
+
+ # This 'needs' graph reflects that even though specs 'a' and 'b' do
+ # not otherwise need to be rebuilt (thanks to DAG pruning), they
+ # both end up in the generated pipeline because the compiler they
+ # depend on is bootstrapped, and *does* need to be rebuilt.
+ needs_graph = {
+ '(bootstrap) gcc': [],
+ '(specs) b': [
+ '(bootstrap) gcc',
+ ],
+ '(specs) a': [
+ '(bootstrap) gcc',
+ '(specs) b',
+ ],
+ }
+
+ _validate_needs_graph(new_yaml_contents, needs_graph, False)
+
+
+def test_ci_subcommands_without_mirror(tmpdir, mutable_mock_env_path,
+ env_deactivate, mock_packages,
+ install_mockery, project_dir_env):
+ """Make sure we catch if there is not a mirror and report an error"""
+ project_dir_env(tmpdir.strpath)
+ filename = str(tmpdir.join('spack.yaml'))
+ with open(filename, 'w') as f:
+ f.write("""\
+spack:
+ specs:
+ - archive-files
+ gitlab-ci:
+ mappings:
+ - match:
+ - archive-files
+ runner-attributes:
+ tags:
+ - donotcare
+ image: donotcare
+""")
+
+ with tmpdir.as_cwd():
+ env_cmd('create', 'test', './spack.yaml')
+ outputfile = str(tmpdir.join('.gitlab-ci.yml'))
+
+ with ev.read('test'):
+ # Check the 'generate' subcommand
+ output = ci_cmd('generate', '--output-file', outputfile,
+ output=str, fail_on_error=False)
+ ex = 'spack ci generate requires an env containing a mirror'
+ assert(ex in output)
+
+ # Also check the 'rebuild-index' subcommand
+ output = ci_cmd('rebuild-index', output=str, fail_on_error=False)
+ ex = 'spack ci rebuild-index requires an env containing a mirror'
+ assert(ex in output)
+
+
+def test_ensure_only_one_temporary_storage():
+ """Make sure 'gitlab-ci' section of env does not allow specification of
+ both 'enable-artifacts-buildcache' and 'temporary-storage-url-prefix'."""
+ gitlab_ci_template = """
+ gitlab-ci:
+ {0}
+ mappings:
+ - match:
+ - notcheckedhere
+ runner-attributes:
+ tags:
+ - donotcare
+"""
+
+ enable_artifacts = 'enable-artifacts-buildcache: True'
+ temp_storage = 'temporary-storage-url-prefix: file:///temp/mirror'
+ specify_both = """{0}
+ {1}
+""".format(enable_artifacts, temp_storage)
+ specify_neither = ''
+
+ # User can specify "enable-artifacts-buildcache" (boolean)
+ yaml_obj = syaml.load(gitlab_ci_template.format(enable_artifacts))
+ validate(yaml_obj, gitlab_ci_schema)
+
+ # User can also specify "temporary-storage-url-prefix" (string)
+ yaml_obj = syaml.load(gitlab_ci_template.format(temp_storage))
+ validate(yaml_obj, gitlab_ci_schema)
+
+ # However, specifying both should fail to validate
+ yaml_obj = syaml.load(gitlab_ci_template.format(specify_both))
+ with pytest.raises(ValidationError):
+ validate(yaml_obj, gitlab_ci_schema)
+
+ # Specifying neither should be fine too, as neither of these properties
+ # should be required
+ yaml_obj = syaml.load(gitlab_ci_template.format(specify_neither))
+ validate(yaml_obj, gitlab_ci_schema)
+
+
+def test_ci_generate_temp_storage_url(tmpdir, mutable_mock_env_path,
+ env_deactivate, install_mockery,
+ mock_packages, monkeypatch,
+ project_dir_env, mock_binary_index):
+ """Verify correct behavior when using temporary-storage-url-prefix"""
+ project_dir_env(tmpdir.strpath)
+ filename = str(tmpdir.join('spack.yaml'))
+ with open(filename, 'w') as f:
+ f.write("""\
+spack:
+ specs:
+ - archive-files
+ mirrors:
+ some-mirror: https://my.fake.mirror
+ gitlab-ci:
+ temporary-storage-url-prefix: file:///work/temp/mirror
+ mappings:
+ - match:
+ - archive-files
+ runner-attributes:
+ tags:
+ - donotcare
+ image: donotcare
+""")
+
+ with tmpdir.as_cwd():
+ env_cmd('create', 'test', './spack.yaml')
+ outputfile = str(tmpdir.join('.gitlab-ci.yml'))
+
+ monkeypatch.setattr(
+ ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror")
+ monkeypatch.setattr(
+ ci, 'SPACK_SHARED_PR_MIRROR_URL', r"file:///fake/mirror_two")
+
+ with ev.read('test'):
+ ci_cmd('generate', '--output-file', outputfile)
+
+ with open(outputfile) as of:
+ pipeline_doc = syaml.load(of.read())
+
+ assert('cleanup' in pipeline_doc)
+ cleanup_job = pipeline_doc['cleanup']
+
+ assert('script' in cleanup_job)
+ cleanup_task = cleanup_job['script'][0]
+
+ assert(cleanup_task.startswith('spack -d mirror destroy'))
+
+ assert('stages' in pipeline_doc)
+ stages = pipeline_doc['stages']
+
+ # Cleanup job should be 2nd to last, just before rebuild-index
+ assert('stage' in cleanup_job)
+ assert(cleanup_job['stage'] == stages[-2])
+
+
+def test_ci_generate_read_broken_specs_url(tmpdir, mutable_mock_env_path,
+ env_deactivate, install_mockery,
+ mock_packages, monkeypatch,
+ project_dir_env):
+ """Verify that `broken-specs-url` works as intended"""
+ project_dir_env(tmpdir.strpath)
+ spec_a = Spec('a')
+ spec_a.concretize()
+ a_full_hash = spec_a.full_hash()
+
+ spec_flattendeps = Spec('flatten-deps')
+ spec_flattendeps.concretize()
+ flattendeps_full_hash = spec_flattendeps.full_hash()
+
+ # Mark 'a' as broken (but not 'flatten-deps')
+ broken_spec_a_path = str(tmpdir.join(a_full_hash))
+ with open(broken_spec_a_path, 'w') as bsf:
+ bsf.write('')
+
+ # Test that `spack ci generate` notices this broken spec and fails.
+ filename = str(tmpdir.join('spack.yaml'))
+ with open(filename, 'w') as f:
+ f.write("""\
+spack:
+ specs:
+ - flatten-deps
+ - a
+ mirrors:
+ some-mirror: https://my.fake.mirror
+ gitlab-ci:
+ broken-specs-url: "{0}"
+ mappings:
+ - match:
+ - a
+ - flatten-deps
+ - b
+ - dependency-install
+ runner-attributes:
+ tags:
+ - donotcare
+ image: donotcare
+""".format(tmpdir.strpath))
+
+ with tmpdir.as_cwd():
+ env_cmd('create', 'test', './spack.yaml')
+ with ev.read('test'):
+ # Check output of the 'generate' subcommand
+ output = ci_cmd('generate', output=str, fail_on_error=False)
+ assert('known to be broken' in output)
+
+ ex = '({0})'.format(a_full_hash)
+ assert(ex in output)
+
+ ex = '({0})'.format(flattendeps_full_hash)
+ assert(ex not in output)
+
+
+def test_ci_reproduce(tmpdir, mutable_mock_env_path, env_deactivate,
+ install_mockery, mock_packages, monkeypatch,
+ last_two_git_commits, project_dir_env, mock_binary_index):
+ project_dir_env(tmpdir.strpath)
+ working_dir = tmpdir.join('repro_dir')
+ image_name = 'org/image:tag'
+
+ spack_yaml_contents = """
+spack:
+ definitions:
+ - packages: [archive-files]
+ specs:
+ - $packages
+ mirrors:
+ test-mirror: file:///some/fake/mirror
+ gitlab-ci:
+ mappings:
+ - match:
+ - archive-files
+ runner-attributes:
+ tags:
+ - donotcare
+ image: {0}
+""".format(image_name)
+
+ filename = str(tmpdir.join('spack.yaml'))
+ with open(filename, 'w') as f:
+ f.write(spack_yaml_contents)
+
+ with tmpdir.as_cwd():
+ env_cmd('create', 'test', './spack.yaml')
+ with ev.read('test') as env:
+ with env.write_transaction():
+ env.concretize()
+ env.write()
+
+ if not os.path.exists(working_dir.strpath):
+ os.makedirs(working_dir.strpath)
+
+ shutil.copyfile(env.manifest_path,
+ os.path.join(working_dir.strpath, 'spack.yaml'))
+ shutil.copyfile(env.lock_path,
+ os.path.join(working_dir.strpath, 'spack.lock'))
+
+ root_spec = None
+ job_spec = None
+
+ for h, s in env.specs_by_hash.items():
+ if s.name == 'archive-files':
+ root_spec = s
+ job_spec = s
+
+ job_spec_yaml_path = os.path.join(
+ working_dir.strpath, 'archivefiles.yaml')
+ with open(job_spec_yaml_path, 'w') as fd:
+ fd.write(job_spec.to_yaml(hash=ht.full_hash))
+
+ root_spec_yaml_path = os.path.join(
+ working_dir.strpath, 'root.yaml')
+ with open(root_spec_yaml_path, 'w') as fd:
+ fd.write(root_spec.to_yaml(hash=ht.full_hash))
+
+ artifacts_root = os.path.join(working_dir.strpath, 'scratch_dir')
+ pipeline_path = os.path.join(artifacts_root, 'pipeline.yml')
+
+ ci_cmd('generate', '--output-file', pipeline_path,
+ '--artifacts-root', artifacts_root)
+
+ job_name = ci.get_job_name(
+ 'specs', False, job_spec, 'test-debian6-core2', None)
+
+ repro_file = os.path.join(working_dir.strpath, 'repro.json')
+ repro_details = {
+ 'job_name': job_name,
+ 'job_spec_yaml': 'archivefiles.yaml',
+ 'root_spec_yaml': 'root.yaml',
+ 'ci_project_dir': working_dir.strpath
+ }
+ with open(repro_file, 'w') as fd:
+ fd.write(json.dumps(repro_details))
+
+ install_script = os.path.join(working_dir.strpath, 'install.sh')
+ with open(install_script, 'w') as fd:
+ fd.write('#!/bin/bash\n\n#fake install\nspack install blah\n')
+
+ spack_info_file = os.path.join(
+ working_dir.strpath, 'spack_info.txt')
+ with open(spack_info_file, 'w') as fd:
+ fd.write('\nMerge {0} into {1}\n\n'.format(
+ last_two_git_commits[1], last_two_git_commits[0]))
+
+ def fake_download_and_extract_artifacts(url, work_dir):
+ pass
+
+ monkeypatch.setattr(ci, 'download_and_extract_artifacts',
+ fake_download_and_extract_artifacts)
+ rep_out = ci_cmd('reproduce-build',
+ 'https://some.domain/api/v1/projects/1/jobs/2/artifacts',
+ '--working-dir',
+ working_dir.strpath,
+ output=str)
+ expect_out = 'docker run --rm -v {0}:{0} -ti {1}'.format(
+ working_dir.strpath, image_name)
+
+ assert(expect_out in rep_out)
diff --git a/lib/spack/spack/test/cmd/clean.py b/lib/spack/spack/test/cmd/clean.py
index dcaf0c916c..ecc6c23b0a 100644
--- a/lib/spack/spack/test/cmd/clean.py
+++ b/lib/spack/spack/test/cmd/clean.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import pytest
-import spack.stage
+
import spack.caches
import spack.main
import spack.package
+import spack.stage
clean = spack.main.SpackCommand('clean')
diff --git a/lib/spack/spack/test/cmd/commands.py b/lib/spack/spack/test/cmd/commands.py
index 409dea7c51..24aac549b1 100644
--- a/lib/spack/spack/test/cmd/commands.py
+++ b/lib/spack/spack/test/cmd/commands.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,9 @@ import subprocess
import pytest
import spack.cmd
-from spack.cmd.commands import _positional_to_subroutine
import spack.main
import spack.paths
-
+from spack.cmd.commands import _positional_to_subroutine
commands = spack.main.SpackCommand('commands')
@@ -118,48 +117,21 @@ def test_rst_with_header(tmpdir):
def test_rst_update(tmpdir):
update_file = tmpdir.join('output')
- # not yet created when commands is run
commands('--update', str(update_file))
assert update_file.exists()
- with update_file.open() as f:
- assert f.read()
-
- # created but older than commands
- with update_file.open('w') as f:
- f.write('empty\n')
- update_file.setmtime(0)
- commands('--update', str(update_file))
- assert update_file.exists()
- with update_file.open() as f:
- assert f.read() != 'empty\n'
-
- # newer than commands
- with update_file.open('w') as f:
- f.write('empty\n')
- commands('--update', str(update_file))
- assert update_file.exists()
- with update_file.open() as f:
- assert f.read() == 'empty\n'
def test_update_with_header(tmpdir):
update_file = tmpdir.join('output')
- # not yet created when commands is run
commands('--update', str(update_file))
assert update_file.exists()
- with update_file.open() as f:
- assert f.read()
fake_header = 'this is a header!\n\n'
filename = tmpdir.join('header.txt')
with filename.open('w') as f:
f.write(fake_header)
- # created, newer than commands, but older than header
- commands('--update', str(update_file), '--header', str(filename))
-
- # newer than commands and header
commands('--update', str(update_file), '--header', str(filename))
@@ -229,7 +201,6 @@ def test_update_completion_arg(tmpdir, monkeypatch):
old_file = old.read()
with open(mock_args['bash']['update'], 'w') as mock:
mock.write(old_file.replace("--update-completion", ""))
- mock_bashfile.setmtime(0) # ensure mtime triggers update
monkeypatch.setattr(
spack.cmd.commands, 'update_completion_args', mock_args)
diff --git a/lib/spack/spack/test/cmd/common/__init__.py b/lib/spack/spack/test/cmd/common/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/test/cmd/common/__init__.py
+++ b/lib/spack/spack/test/cmd/common/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/cmd/common/arguments.py b/lib/spack/spack/test/cmd/common/arguments.py
index 4f6cd1a527..d327939978 100644
--- a/lib/spack/spack/test/cmd/common/arguments.py
+++ b/lib/spack/spack/test/cmd/common/arguments.py
@@ -1,14 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import argparse
-import multiprocessing
import pytest
-
import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config
@@ -27,20 +25,15 @@ def job_parser():
yield p
-@pytest.mark.parametrize("ncores", [1, 2, 4, 8, 16, 32])
-def test_setting_jobs_flag(job_parser, ncores, monkeypatch):
- monkeypatch.setattr(multiprocessing, 'cpu_count', lambda: ncores)
+def test_setting_jobs_flag(job_parser):
namespace = job_parser.parse_args(['-j', '24'])
- expected = min(24, ncores)
- assert namespace.jobs == expected
- assert spack.config.get('config:build_jobs') == expected
+ assert namespace.jobs == 24
+ assert spack.config.get('config:build_jobs', scope='command_line') == 24
-@pytest.mark.parametrize("ncores", [1, 2, 4, 8, 16, 32])
-def test_omitted_job_flag(job_parser, ncores, monkeypatch):
- monkeypatch.setattr(multiprocessing, 'cpu_count', lambda: ncores)
+def test_omitted_job_flag(job_parser):
namespace = job_parser.parse_args([])
- assert namespace.jobs == min(ncores, 16)
+ assert namespace.jobs is None
assert spack.config.get('config:build_jobs') is None
@@ -97,9 +90,25 @@ def test_multiple_env_match_raises_error(mock_packages, mutable_mock_env_path):
e.add('a foobar=fee')
e.concretize()
with e:
- with pytest.raises(
- spack.environment.SpackEnvironmentError) as exc_info:
-
+ with pytest.raises(ev.SpackEnvironmentError) as exc_info:
spack.cmd.matching_spec_from_env(spack.cmd.parse_specs(['a'])[0])
assert 'matches multiple specs' in exc_info.value.message
+
+
+@pytest.mark.usefixtures('config')
+def test_root_and_dep_match_returns_root(mock_packages, mutable_mock_env_path):
+ e = ev.create('test')
+ e.add('b@0.9')
+ e.add('a foobar=bar') # Depends on b, should choose b@1.0
+ e.concretize()
+ with e:
+ # This query matches the root b and b as a dependency of a. In that
+ # case the root instance should be preferred.
+ env_spec1 = spack.cmd.matching_spec_from_env(
+ spack.cmd.parse_specs(['b'])[0])
+ assert env_spec1.satisfies('@0.9')
+
+ env_spec2 = spack.cmd.matching_spec_from_env(
+ spack.cmd.parse_specs(['b@1.0'])[0])
+ assert env_spec2
diff --git a/lib/spack/spack/test/cmd/compiler.py b/lib/spack/spack/test/cmd/compiler.py
index c5c354221e..cb04e9bd27 100644
--- a/lib/spack/spack/test/cmd/compiler.py
+++ b/lib/spack/spack/test/cmd/compiler.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,6 +9,7 @@ import sys
import pytest
import llnl.util.filesystem
+
import spack.main
import spack.version
@@ -16,18 +17,6 @@ compiler = spack.main.SpackCommand('compiler')
@pytest.fixture
-def no_compilers_yaml(mutable_config):
- """Creates a temporary configuration without compilers.yaml"""
-
- for scope, local_config in mutable_config.scopes.items():
- compilers_yaml = os.path.join(
- local_config.path, scope, 'compilers.yaml'
- )
- if os.path.exists(compilers_yaml):
- os.remove(compilers_yaml)
-
-
-@pytest.fixture
def mock_compiler_version():
return '4.5.3'
diff --git a/lib/spack/spack/test/cmd/concretize.py b/lib/spack/spack/test/cmd/concretize.py
new file mode 100644
index 0000000000..e701b31319
--- /dev/null
+++ b/lib/spack/spack/test/cmd/concretize.py
@@ -0,0 +1,55 @@
+# Copyright 2013-2021 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)
+
+
+import pytest
+
+import spack.environment as ev
+from spack.main import SpackCommand
+
+# everything here uses the mock_env_path
+pytestmark = pytest.mark.usefixtures(
+ 'mutable_mock_env_path', 'config', 'mutable_mock_repo')
+
+env = SpackCommand('env')
+add = SpackCommand('add')
+concretize = SpackCommand('concretize')
+
+
+@pytest.mark.parametrize('concretization', ['separately', 'together'])
+def test_concretize_all_test_dependencies(concretization):
+ """Check all test dependencies are concretized."""
+ env('create', 'test')
+
+ with ev.read('test') as e:
+ e.concretization = concretization
+ add('depb')
+ concretize('--test', 'all')
+ assert e.matching_spec('test-dependency')
+
+
+@pytest.mark.parametrize('concretization', ['separately', 'together'])
+def test_concretize_root_test_dependencies_not_recursive(concretization):
+ """Check that test dependencies are not concretized recursively."""
+ env('create', 'test')
+
+ with ev.read('test') as e:
+ e.concretization = concretization
+ add('depb')
+ concretize('--test', 'root')
+ assert e.matching_spec('test-dependency') is None
+
+
+@pytest.mark.parametrize('concretization', ['separately', 'together'])
+def test_concretize_root_test_dependencies_are_concretized(concretization):
+ """Check that root test dependencies are concretized."""
+ env('create', 'test')
+
+ with ev.read('test') as e:
+ e.concretization = concretization
+ add('a')
+ add('b')
+ concretize('--test', 'root')
+ assert e.matching_spec('test-dependency')
diff --git a/lib/spack/spack/test/cmd/config.py b/lib/spack/spack/test/cmd/config.py
index 7830f1c4e2..acadbc761d 100644
--- a/lib/spack/spack/test/cmd/config.py
+++ b/lib/spack/spack/test/cmd/config.py
@@ -1,15 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import functools
import os
+
import pytest
import llnl.util.filesystem as fs
+
import spack.config
+import spack.database
import spack.environment as ev
import spack.main
+import spack.spec
+import spack.store
import spack.util.spack_yaml as syaml
config = spack.main.SpackCommand('config')
@@ -84,6 +89,7 @@ repos:
def test_config_edit():
"""Ensure `spack config edit` edits the right paths."""
+
dms = spack.config.default_modify_scope('compilers')
dms_path = spack.config.config.scopes[dms].path
user_path = spack.config.config.scopes['user'].path
@@ -201,20 +207,27 @@ def test_config_add_override_leaf(mutable_empty_config):
def test_config_add_update_dict(mutable_empty_config):
- config('add', 'packages:all:compiler:[gcc]')
- config('add', 'packages:all:version:1.0.0')
+ config('add', 'packages:all:version:[1.0.0]')
output = config('get', 'packages')
- expected = """packages:
- all:
- compiler: [gcc]
- version:
- - 1.0.0
-"""
-
+ expected = 'packages:\n all:\n version: [1.0.0]\n'
assert output == expected
+def test_config_with_c_argument(mutable_empty_config):
+
+ # I don't know how to add a spack argument to a Spack Command, so we test this way
+ config_file = 'config:install_root:root:/path/to/config.yaml'
+ parser = spack.main.make_argument_parser()
+ args = parser.parse_args(['-c', config_file])
+ assert config_file in args.config_vars
+
+ # Add the path to the config
+ config("add", args.config_vars[0], scope='command_line')
+ output = config("get", 'config')
+ assert "config:\n install_root:\n - root: /path/to/config.yaml" in output
+
+
def test_config_add_ordered_dict(mutable_empty_config):
config('add', 'mirrors:first:/path/to/first')
config('add', 'mirrors:second:/path/to/second')
@@ -645,3 +658,50 @@ def check_config_updated(data):
assert isinstance(data['install_tree'], dict)
assert data['install_tree']['root'] == '/fake/path'
assert data['install_tree']['projections'] == {'all': '{name}-{version}'}
+
+
+def test_config_prefer_upstream(tmpdir_factory, install_mockery, mock_fetch,
+ mutable_config, gen_mock_layout, monkeypatch):
+ """Check that when a dependency package is recorded as installed in
+ an upstream database that it is not reinstalled.
+ """
+
+ mock_db_root = str(tmpdir_factory.mktemp('mock_db_root'))
+ prepared_db = spack.database.Database(mock_db_root)
+
+ upstream_layout = gen_mock_layout('/a/')
+
+ for spec in [
+ 'hdf5 +mpi',
+ 'hdf5 ~mpi',
+ 'boost+debug~icu+graph',
+ 'dependency-install',
+ 'patch']:
+ dep = spack.spec.Spec(spec)
+ dep.concretize()
+ prepared_db.add(dep, upstream_layout)
+
+ downstream_db_root = str(
+ tmpdir_factory.mktemp('mock_downstream_db_root'))
+ db_for_test = spack.database.Database(
+ downstream_db_root, upstream_dbs=[prepared_db])
+ monkeypatch.setattr(spack.store, 'db', db_for_test)
+
+ output = config('prefer-upstream')
+ scope = spack.config.default_modify_scope('packages')
+ cfg_file = spack.config.config.get_config_filename(scope, 'packages')
+ packages = syaml.load(open(cfg_file))['packages']
+
+ # Make sure only the non-default variants are set.
+ assert packages['boost'] == {
+ 'compiler': ['gcc@4.5.0'],
+ 'variants': '+debug +graph',
+ 'version': ['1.63.0']}
+ assert packages['dependency-install'] == {
+ 'compiler': ['gcc@4.5.0'], 'version': ['2.0']}
+ # Ensure that neither variant gets listed for hdf5, since they conflict
+ assert packages['hdf5'] == {
+ 'compiler': ['gcc@4.5.0'], 'version': ['2.3']}
+
+ # Make sure a message about the conflicting hdf5's was given.
+ assert '- hdf5' in output
diff --git a/lib/spack/spack/test/cmd/create.py b/lib/spack/spack/test/cmd/create.py
index 4262744317..896d8e1fe1 100644
--- a/lib/spack/spack/test/cmd/create.py
+++ b/lib/spack/spack/test/cmd/create.py
@@ -1,17 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import argparse
import os
+
import pytest
import spack.cmd.create
import spack.util.editor
-from spack.url import UndetectableNameError
from spack.main import SpackCommand
-
+from spack.url import UndetectableNameError
create = SpackCommand('create')
diff --git a/lib/spack/spack/test/cmd/debug.py b/lib/spack/spack/test/cmd/debug.py
index 2898ad670e..bfb041b272 100644
--- a/lib/spack/spack/test/cmd/debug.py
+++ b/lib/spack/spack/test/cmd/debug.py
@@ -1,16 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+import os.path
import platform
import pytest
-import os
-import os.path
-
import spack.architecture as architecture
+import spack.config
from spack.main import SpackCommand, get_version
from spack.util.executable import which
@@ -36,13 +36,13 @@ def test_create_db_tarball(tmpdir, database):
# DB file is included
assert 'index.json' in contents
- # spec.yamls from all installs are included
+ # specfiles from all installs are included
for spec in database.query():
- # externals won't have a spec.yaml
+ # externals won't have a specfile
if spec.external:
continue
- spec_suffix = '%s/.spack/spec.yaml' % spec.dag_hash()
+ spec_suffix = '%s/.spack/spec.json' % spec.dag_hash()
assert spec_suffix in contents
@@ -53,3 +53,4 @@ def test_report():
assert get_version() in out
assert platform.python_version() in out
assert str(arch) in out
+ assert spack.config.get('config:concretizer') in out
diff --git a/lib/spack/spack/test/cmd/dependencies.py b/lib/spack/spack/test/cmd/dependencies.py
index 05d0556936..7ca1eae2e5 100644
--- a/lib/spack/spack/test/cmd/dependencies.py
+++ b/lib/spack/spack/test/cmd/dependencies.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import re
+
import pytest
from llnl.util.tty.color import color_when
@@ -51,8 +52,11 @@ def test_direct_installed_dependencies(mock_packages, database):
with color_when(False):
out = dependencies('--installed', 'mpileaks^mpich')
- lines = [l for l in out.strip().split('\n') if not l.startswith('--')]
- hashes = set([re.split(r'\s+', l)[0] for l in lines])
+ lines = [
+ line for line in out.strip().split('\n')
+ if not line.startswith('--')
+ ]
+ hashes = set([re.split(r'\s+', line)[0] for line in lines])
expected = set([spack.store.db.query_one(s).dag_hash(7)
for s in ['mpich', 'callpath^mpich']])
@@ -65,8 +69,11 @@ def test_transitive_installed_dependencies(mock_packages, database):
with color_when(False):
out = dependencies('--installed', '--transitive', 'mpileaks^zmpi')
- lines = [l for l in out.strip().split('\n') if not l.startswith('--')]
- hashes = set([re.split(r'\s+', l)[0] for l in lines])
+ lines = [
+ line for line in out.strip().split('\n')
+ if not line.startswith('--')
+ ]
+ hashes = set([re.split(r'\s+', line)[0] for line in lines])
expected = set([spack.store.db.query_one(s).dag_hash(7)
for s in ['zmpi', 'callpath^zmpi', 'fake',
diff --git a/lib/spack/spack/test/cmd/dependents.py b/lib/spack/spack/test/cmd/dependents.py
index bd87f92a65..376332cf88 100644
--- a/lib/spack/spack/test/cmd/dependents.py
+++ b/lib/spack/spack/test/cmd/dependents.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/cmd/deprecate.py b/lib/spack/spack/test/cmd/deprecate.py
index 7b38c177f5..204119155b 100644
--- a/lib/spack/spack/test/cmd/deprecate.py
+++ b/lib/spack/spack/test/cmd/deprecate.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import pytest
-from spack.main import SpackCommand
+
import spack.store
from spack.database import InstallStatuses
+from spack.main import SpackCommand
install = SpackCommand('install')
uninstall = SpackCommand('uninstall')
diff --git a/lib/spack/spack/test/cmd/dev_build.py b/lib/spack/spack/test/cmd/dev_build.py
index 3067f5a0dd..f8be2364d9 100644
--- a/lib/spack/spack/test/cmd/dev_build.py
+++ b/lib/spack/spack/test/cmd/dev_build.py
@@ -1,13 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
import pytest
-import spack.spec
+
import llnl.util.filesystem as fs
+
import spack.environment as ev
+import spack.spec
from spack.main import SpackCommand
dev_build = SpackCommand('dev-build')
@@ -89,7 +92,7 @@ def test_dev_build_until_last_phase(tmpdir, mock_packages, install_mockery):
assert os.path.exists(str(tmpdir))
-def test_dev_build_before_until(tmpdir, mock_packages, install_mockery):
+def test_dev_build_before_until(tmpdir, mock_packages, install_mockery, capsys):
spec = spack.spec.Spec('dev-build-test-install@0.0.0 dev_path=%s' % tmpdir)
spec.concretize()
@@ -103,13 +106,18 @@ def test_dev_build_before_until(tmpdir, mock_packages, install_mockery):
bad_phase = 'phase_that_does_not_exist'
not_allowed = 'is not a valid phase'
- out = dev_build('-u', bad_phase, 'dev-build-test-install@0.0.0')
+ not_installed = 'was not installed'
+ out = dev_build('-u', bad_phase, 'dev-build-test-install@0.0.0',
+ fail_on_error=False)
assert bad_phase in out
assert not_allowed in out
+ assert not_installed in out
- out = dev_build('-b', bad_phase, 'dev-build-test-install@0.0.0')
+ out = dev_build('-b', bad_phase, 'dev-build-test-install@0.0.0',
+ fail_on_error=False)
assert bad_phase in out
assert not_allowed in out
+ assert not_installed in out
def print_spack_cc(*args):
@@ -197,7 +205,7 @@ env:
dev-build-test-install:
spec: dev-build-test-install@0.0.0
path: %s
-""" % build_dir)
+""" % os.path.relpath(str(build_dir), start=str(envdir)))
env('create', 'test', './spack.yaml')
with ev.read('test'):
@@ -323,7 +331,7 @@ env:
dev-build-test-install:
spec: dev-build-test-install@0.0.0
path: %s
-""" % build_dir)
+""" % os.path.relpath(str(build_dir), start=str(envdir)))
env('create', 'test', './spack.yaml')
with ev.read('test'):
@@ -338,7 +346,7 @@ env:
assert dep_spec.package.filename in os.listdir(dep_spec.prefix)
assert os.path.exists(spec.prefix)
- # Ensure variants set properly
+ # Ensure variants set properly; ensure build_dir is absolute and normalized
for dep in (dep_spec, spec['dev-build-test-install']):
assert dep.satisfies('dev_path=%s' % build_dir)
assert spec.satisfies('^dev_path=*')
diff --git a/lib/spack/spack/test/cmd/develop.py b/lib/spack/spack/test/cmd/develop.py
index c539cd91c0..a1435eb706 100644
--- a/lib/spack/spack/test/cmd/develop.py
+++ b/lib/spack/spack/test/cmd/develop.py
@@ -1,14 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
import os
import shutil
+
+import pytest
+
import llnl.util.filesystem as fs
-import spack.spec
import spack.environment as ev
+import spack.spec
from spack.main import SpackCommand
develop = SpackCommand('develop')
diff --git a/lib/spack/spack/test/cmd/diff.py b/lib/spack/spack/test/cmd/diff.py
new file mode 100644
index 0000000000..9049b3f11b
--- /dev/null
+++ b/lib/spack/spack/test/cmd/diff.py
@@ -0,0 +1,85 @@
+# Copyright 2013-2021 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)
+
+import pytest
+
+import spack.cmd.diff
+import spack.config
+import spack.main
+import spack.store
+import spack.util.spack_json as sjson
+
+install_cmd = spack.main.SpackCommand('install')
+diff_cmd = spack.main.SpackCommand('diff')
+find_cmd = spack.main.SpackCommand('find')
+
+
+def test_diff_cmd(install_mockery, mock_fetch, mock_archive, mock_packages):
+ """Test that we can install two packages and diff them"""
+
+ specA = spack.spec.Spec('mpileaks').concretized()
+ specB = spack.spec.Spec('mpileaks+debug').concretized()
+
+ # Specs should be the same as themselves
+ c = spack.cmd.diff.compare_specs(specA, specA, to_string=True)
+ assert len(c['a_not_b']) == 0
+ assert len(c['b_not_a']) == 0
+
+ # Calculate the comparison (c)
+ c = spack.cmd.diff.compare_specs(specA, specB, to_string=True)
+ assert len(c['a_not_b']) == 1
+ assert len(c['b_not_a']) == 1
+ assert c['a_not_b'][0] == ['variant_value', 'mpileaks debug False']
+ assert c['b_not_a'][0] == ['variant_value', 'mpileaks debug True']
+
+
+def test_load_first(install_mockery, mock_fetch, mock_archive, mock_packages):
+ """Test with and without the --first option"""
+ install_cmd('mpileaks')
+
+ # Only one version of mpileaks will work
+ diff_cmd('mpileaks', 'mpileaks')
+
+ # 2 specs are required for a diff
+ with pytest.raises(spack.main.SpackCommandError):
+ diff_cmd('mpileaks')
+ with pytest.raises(spack.main.SpackCommandError):
+ diff_cmd('mpileaks', 'mpileaks', 'mpileaks')
+
+ # Ensure they are the same
+ assert "No differences" in diff_cmd('mpileaks', 'mpileaks')
+ output = diff_cmd('--json', 'mpileaks', 'mpileaks')
+ result = sjson.load(output)
+
+ assert len(result['a_not_b']) == 0
+ assert len(result['b_not_a']) == 0
+
+ assert 'mpileaks' in result['a_name']
+ assert 'mpileaks' in result['b_name']
+ assert "intersect" in result and len(result['intersect']) > 50
+
+ # After we install another version, it should ask us to disambiguate
+ install_cmd('mpileaks+debug')
+
+ # There are two versions of mpileaks
+ with pytest.raises(spack.main.SpackCommandError):
+ diff_cmd('mpileaks', 'mpileaks+debug')
+
+ # But if we tell it to use the first, it won't try to disambiguate
+ assert "variant" in diff_cmd('--first', 'mpileaks', 'mpileaks+debug')
+
+ # This matches them exactly
+ debug_hash = find_cmd('--format', '{hash}', 'mpileaks+debug').strip()
+ no_debug_hashes = find_cmd('--format', '{hash}', 'mpileaks~debug')
+ no_debug_hash = no_debug_hashes.split()[0]
+ output = diff_cmd("--json",
+ "mpileaks/{0}".format(debug_hash),
+ "mpileaks/{0}".format(no_debug_hash))
+ result = sjson.load(output)
+
+ assert len(result['a_not_b']) == 1
+ assert len(result['b_not_a']) == 1
+ assert result['a_not_b'][0] == ['variant_value', 'mpileaks debug True']
+ assert result['b_not_a'][0] == ['variant_value', 'mpileaks debug False']
diff --git a/lib/spack/spack/test/cmd/env.py b/lib/spack/spack/test/cmd/env.py
index ac96b5f606..d9d6f5483c 100644
--- a/lib/spack/spack/test/cmd/env.py
+++ b/lib/spack/spack/test/cmd/env.py
@@ -1,32 +1,34 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-
+import glob
import os
-from six import StringIO
+from argparse import Namespace
import pytest
+from six import StringIO
import llnl.util.filesystem as fs
+import llnl.util.link_tree
+import spack.cmd.env
+import spack.environment as ev
import spack.hash_types as ht
import spack.modules
-import spack.environment as ev
-
+import spack.util.spack_json as sjson
from spack.cmd.env import _env_create
-from spack.spec import Spec
from spack.main import SpackCommand, SpackCommandError
+from spack.spec import Spec
from spack.stage import stage_prefix
-
from spack.util.mock_package import MockPackageMultiRepo
-import spack.util.spack_json as sjson
from spack.util.path import substitute_path_variables
-
# everything here uses the mock_env_path
-pytestmark = pytest.mark.usefixtures(
- 'mutable_mock_env_path', 'config', 'mutable_mock_repo')
+pytestmark = [
+ pytest.mark.usefixtures('mutable_mock_env_path', 'config', 'mutable_mock_repo'),
+ pytest.mark.maybeslow
+]
env = SpackCommand('env')
install = SpackCommand('install')
@@ -53,7 +55,7 @@ def check_viewdir_removal(viewdir):
@pytest.fixture()
def env_deactivate():
yield
- spack.environment._active_environment = None
+ ev._active_environment = None
os.environ.pop('SPACK_ENV', None)
@@ -219,6 +221,19 @@ def test_env_modifications_error_on_activate(
assert "Warning: couldn't get environment settings" in err
+def test_activate_adds_transitive_run_deps_to_path(
+ install_mockery, mock_fetch, monkeypatch):
+ env('create', 'test')
+ install = SpackCommand('install')
+
+ e = ev.read('test')
+ with e:
+ install('depends-on-run-env')
+
+ cmds = ev.activate(e)
+ assert 'DEPENDENCY_ENV_VAR=1' in cmds
+
+
def test_env_install_same_spec_twice(install_mockery, mock_fetch):
env('create', 'test')
@@ -1103,7 +1118,7 @@ def test_store_different_build_deps():
def test_env_updates_view_install(
tmpdir, mock_stage, mock_fetch, install_mockery):
- view_dir = tmpdir.mkdir('view')
+ view_dir = tmpdir.join('view')
env('create', '--with-view=%s' % view_dir, 'test')
with ev.read('test'):
add('mpileaks')
@@ -1114,12 +1129,13 @@ def test_env_updates_view_install(
def test_env_view_fails(
tmpdir, mock_packages, mock_stage, mock_fetch, install_mockery):
- view_dir = tmpdir.mkdir('view')
+ view_dir = tmpdir.join('view')
env('create', '--with-view=%s' % view_dir, 'test')
with ev.read('test'):
add('libelf')
add('libelf cflags=-g')
- with pytest.raises(RuntimeError, match='merge blocked by file'):
+ with pytest.raises(llnl.util.link_tree.MergeConflictError,
+ match='merge blocked by file'):
install('--fake')
@@ -1129,10 +1145,10 @@ def test_env_without_view_install(
env('create', '--without-view', 'test')
test_env = ev.read('test')
- with pytest.raises(spack.environment.SpackEnvironmentError):
+ with pytest.raises(ev.SpackEnvironmentError):
test_env.default_view
- view_dir = tmpdir.mkdir('view')
+ view_dir = tmpdir.join('view')
with ev.read('test'):
add('mpileaks')
@@ -1167,7 +1183,7 @@ env:
def test_env_updates_view_install_package(
tmpdir, mock_stage, mock_fetch, install_mockery):
- view_dir = tmpdir.mkdir('view')
+ view_dir = tmpdir.join('view')
env('create', '--with-view=%s' % view_dir, 'test')
with ev.read('test'):
install('--fake', 'mpileaks')
@@ -1177,7 +1193,7 @@ def test_env_updates_view_install_package(
def test_env_updates_view_add_concretize(
tmpdir, mock_stage, mock_fetch, install_mockery):
- view_dir = tmpdir.mkdir('view')
+ view_dir = tmpdir.join('view')
env('create', '--with-view=%s' % view_dir, 'test')
install('--fake', 'mpileaks')
with ev.read('test'):
@@ -1189,7 +1205,7 @@ def test_env_updates_view_add_concretize(
def test_env_updates_view_uninstall(
tmpdir, mock_stage, mock_fetch, install_mockery):
- view_dir = tmpdir.mkdir('view')
+ view_dir = tmpdir.join('view')
env('create', '--with-view=%s' % view_dir, 'test')
with ev.read('test'):
install('--fake', 'mpileaks')
@@ -1204,7 +1220,7 @@ def test_env_updates_view_uninstall(
def test_env_updates_view_uninstall_referenced_elsewhere(
tmpdir, mock_stage, mock_fetch, install_mockery):
- view_dir = tmpdir.mkdir('view')
+ view_dir = tmpdir.join('view')
env('create', '--with-view=%s' % view_dir, 'test')
install('--fake', 'mpileaks')
with ev.read('test'):
@@ -1221,7 +1237,7 @@ def test_env_updates_view_uninstall_referenced_elsewhere(
def test_env_updates_view_remove_concretize(
tmpdir, mock_stage, mock_fetch, install_mockery):
- view_dir = tmpdir.mkdir('view')
+ view_dir = tmpdir.join('view')
env('create', '--with-view=%s' % view_dir, 'test')
install('--fake', 'mpileaks')
with ev.read('test'):
@@ -1239,7 +1255,7 @@ def test_env_updates_view_remove_concretize(
def test_env_updates_view_force_remove(
tmpdir, mock_stage, mock_fetch, install_mockery):
- view_dir = tmpdir.mkdir('view')
+ view_dir = tmpdir.join('view')
env('create', '--with-view=%s' % view_dir, 'test')
with ev.read('test'):
install('--fake', 'mpileaks')
@@ -1934,6 +1950,35 @@ env:
(spec.version, spec.compiler.name)))
+@pytest.mark.parametrize('link_type', ['hardlink', 'copy', 'symlink'])
+def test_view_link_type(link_type, tmpdir, mock_fetch, mock_packages, mock_archive,
+ install_mockery):
+ filename = str(tmpdir.join('spack.yaml'))
+ viewdir = str(tmpdir.join('view'))
+ with open(filename, 'w') as f:
+ f.write("""\
+env:
+ specs:
+ - mpileaks
+ view:
+ default:
+ root: %s
+ link_type: %s""" % (viewdir, link_type))
+ with tmpdir.as_cwd():
+ env('create', 'test', './spack.yaml')
+ with ev.read('test'):
+ install()
+
+ test = ev.read('test')
+
+ for spec in test.roots():
+ file_path = test.default_view.view()._root
+ file_to_test = os.path.join(
+ file_path, spec.name)
+ assert os.path.isfile(file_to_test)
+ assert os.path.islink(file_to_test) == (link_type == 'symlink')
+
+
def test_view_link_all(tmpdir, mock_fetch, mock_packages, mock_archive,
install_mockery):
filename = str(tmpdir.join('spack.yaml'))
@@ -2134,7 +2179,11 @@ def test_env_activate_default_view_root_unconditional(env_deactivate,
viewdir = e.default_view.root
out = env('activate', '--sh', 'test')
- assert 'PATH=%s' % os.path.join(viewdir, 'bin') in out
+ viewdir_bin = os.path.join(viewdir, 'bin')
+
+ assert "export PATH={0}".format(viewdir_bin) in out or \
+ "export PATH='{0}".format(viewdir_bin) in out or \
+ 'export PATH="{0}'.format(viewdir_bin) in out
def test_concretize_user_specs_together():
@@ -2392,6 +2441,85 @@ spack:
assert os.path.exists(str(spack_lock))
+def _setup_develop_packages(tmpdir):
+ """Sets up a structure ./init_env/spack.yaml, ./build_folder, ./dest_env
+ where spack.yaml has a relative develop path to build_folder"""
+ init_env = tmpdir.join('init_env')
+ build_folder = tmpdir.join('build_folder')
+ dest_env = tmpdir.join('dest_env')
+
+ fs.mkdirp(str(init_env))
+ fs.mkdirp(str(build_folder))
+ fs.mkdirp(str(dest_env))
+
+ raw_yaml = """
+spack:
+ specs: ['mypkg1', 'mypkg2']
+ develop:
+ mypkg1:
+ path: ../build_folder
+ spec: mypkg@main
+ mypkg2:
+ path: /some/other/path
+ spec: mypkg@main
+"""
+ spack_yaml = init_env.join('spack.yaml')
+ spack_yaml.write(raw_yaml)
+
+ return init_env, build_folder, dest_env, spack_yaml
+
+
+def test_rewrite_rel_dev_path_new_dir(tmpdir):
+ """Relative develop paths should be rewritten for new environments in
+ a different directory from the original manifest file"""
+ _, build_folder, dest_env, spack_yaml = _setup_develop_packages(tmpdir)
+
+ env('create', '-d', str(dest_env), str(spack_yaml))
+ with ev.Environment(str(dest_env)) as e:
+ assert e.dev_specs['mypkg1']['path'] == str(build_folder)
+ assert e.dev_specs['mypkg2']['path'] == '/some/other/path'
+
+
+def test_rewrite_rel_dev_path_named_env(tmpdir):
+ """Relative develop paths should by default be rewritten for new named
+ environment"""
+ _, build_folder, _, spack_yaml = _setup_develop_packages(tmpdir)
+ env('create', 'named_env', str(spack_yaml))
+ with ev.read('named_env') as e:
+ assert e.dev_specs['mypkg1']['path'] == str(build_folder)
+ assert e.dev_specs['mypkg2']['path'] == '/some/other/path'
+
+
+def test_rewrite_rel_dev_path_original_dir(tmpdir):
+ """Relative devevelop paths should not be rewritten when initializing an
+ environment with root path set to the same directory"""
+ init_env, _, _, spack_yaml = _setup_develop_packages(tmpdir)
+ with ev.Environment(str(init_env), str(spack_yaml)) as e:
+ assert e.dev_specs['mypkg1']['path'] == '../build_folder'
+ assert e.dev_specs['mypkg2']['path'] == '/some/other/path'
+
+
+def test_rewrite_rel_dev_path_create_original_dir(tmpdir):
+ """Relative develop paths should not be rewritten when creating an
+ environment in the original directory"""
+ init_env, _, _, spack_yaml = _setup_develop_packages(tmpdir)
+ env('create', '-d', str(init_env), str(spack_yaml))
+ with ev.Environment(str(init_env)) as e:
+ assert e.dev_specs['mypkg1']['path'] == '../build_folder'
+ assert e.dev_specs['mypkg2']['path'] == '/some/other/path'
+
+
+def test_does_not_rewrite_rel_dev_path_when_keep_relative_is_set(tmpdir):
+ """Relative develop paths should not be rewritten when --keep-relative is
+ passed to create"""
+ _, _, _, spack_yaml = _setup_develop_packages(tmpdir)
+ env('create', '--keep-relative', 'named_env', str(spack_yaml))
+ with ev.read('named_env') as e:
+ print(e.dev_specs)
+ assert e.dev_specs['mypkg1']['path'] == '../build_folder'
+ assert e.dev_specs['mypkg2']['path'] == '/some/other/path'
+
+
@pytest.mark.regression('23440')
def test_custom_version_concretize_together(tmpdir):
# Custom versions should be permitted in specs when
@@ -2405,3 +2533,125 @@ def test_custom_version_concretize_together(tmpdir):
e.concretize()
assert any('hdf5@myversion' in spec for _, spec in e.concretized_specs())
+
+
+def test_modules_relative_to_views(tmpdir, install_mockery, mock_fetch):
+ spack_yaml = """
+spack:
+ specs:
+ - trivial-install-test-package
+ modules:
+ default:
+ enable:: [tcl]
+ use_view: true
+ roots:
+ tcl: modules
+"""
+ _env_create('test', StringIO(spack_yaml))
+
+ with ev.read('test') as e:
+ install()
+
+ spec = e.specs_by_hash[e.concretized_order[0]]
+ view_prefix = e.default_view.get_projection_for_spec(spec)
+ modules_glob = '%s/modules/**/*' % e.path
+ modules = glob.glob(modules_glob)
+ assert len(modules) == 1
+ module = modules[0]
+
+ with open(module, 'r') as f:
+ contents = f.read()
+
+ assert view_prefix in contents
+ assert spec.prefix not in contents
+
+
+def test_multiple_modules_post_env_hook(tmpdir, install_mockery, mock_fetch):
+ spack_yaml = """
+spack:
+ specs:
+ - trivial-install-test-package
+ modules:
+ default:
+ enable:: [tcl]
+ use_view: true
+ roots:
+ tcl: modules
+ full:
+ enable:: [tcl]
+ roots:
+ tcl: full_modules
+"""
+ _env_create('test', StringIO(spack_yaml))
+
+ with ev.read('test') as e:
+ install()
+
+ spec = e.specs_by_hash[e.concretized_order[0]]
+ view_prefix = e.default_view.get_projection_for_spec(spec)
+ modules_glob = '%s/modules/**/*' % e.path
+ modules = glob.glob(modules_glob)
+ assert len(modules) == 1
+ module = modules[0]
+
+ full_modules_glob = '%s/full_modules/**/*' % e.path
+ full_modules = glob.glob(full_modules_glob)
+ assert len(full_modules) == 1
+ full_module = full_modules[0]
+
+ with open(module, 'r') as f:
+ contents = f.read()
+
+ with open(full_module, 'r') as f:
+ full_contents = f.read()
+
+ assert view_prefix in contents
+ assert spec.prefix not in contents
+
+ assert view_prefix not in full_contents
+ assert spec.prefix in full_contents
+
+
+@pytest.mark.regression('24148')
+def test_virtual_spec_concretize_together(tmpdir):
+ # An environment should permit to concretize "mpi"
+ e = ev.create('virtual_spec')
+ e.concretization = 'together'
+
+ e.add('mpi')
+ e.concretize()
+
+ assert any(s.package.provides('mpi') for _, s in e.concretized_specs())
+
+
+def test_query_develop_specs():
+ """Test whether a spec is develop'ed or not"""
+ env('create', 'test')
+ with ev.read('test') as e:
+ e.add('mpich')
+ e.add('mpileaks')
+ e.develop(Spec('mpich@1'), 'here', clone=False)
+
+ assert e.is_develop(Spec('mpich'))
+ assert not e.is_develop(Spec('mpileaks'))
+
+
+@pytest.mark.parametrize('method', [
+ spack.cmd.env.env_activate,
+ spack.cmd.env.env_deactivate
+])
+@pytest.mark.parametrize(
+ 'env,no_env,env_dir',
+ [
+ ('b', False, None),
+ (None, True, None),
+ (None, False, 'path/'),
+ ])
+def test_activation_and_deactiviation_ambiguities(method, env, no_env, env_dir, capsys):
+ """spack [-e x | -E | -D x/] env [activate | deactivate] y are ambiguous"""
+ args = Namespace(shell='sh', activate_env='a',
+ env=env, no_env=no_env, env_dir=env_dir)
+ with pytest.raises(SystemExit):
+ method(args)
+ _, err = capsys.readouterr()
+ assert 'is ambiguous' in err
diff --git a/lib/spack/spack/test/cmd/extensions.py b/lib/spack/spack/test/cmd/extensions.py
index ad993244ae..90f065550d 100644
--- a/lib/spack/spack/test/cmd/extensions.py
+++ b/lib/spack/spack/test/cmd/extensions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,6 @@ import pytest
from spack.main import SpackCommand, SpackCommandError
from spack.spec import Spec
-
extensions = SpackCommand('extensions')
diff --git a/lib/spack/spack/test/cmd/external.py b/lib/spack/spack/test/cmd/external.py
index 53e1f9eaf2..69f107b33f 100644
--- a/lib/spack/spack/test/cmd/external.py
+++ b/lib/spack/spack/test/cmd/external.py
@@ -1,14 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import os.path
+import pytest
+
import spack
-from spack.spec import Spec
from spack.cmd.external import ExternalPackageEntry
from spack.main import SpackCommand
+from spack.spec import Spec
def test_find_external_single_package(mock_executable):
@@ -242,3 +244,26 @@ def test_new_entries_are_reported_correctly(
# has been found
output = external('find', 'gcc')
assert 'No new external packages detected' in output
+
+
+@pytest.mark.parametrize('command_args', [
+ ('-t', 'build-tools'),
+ ('-t', 'build-tools', 'cmake'),
+])
+def test_use_tags_for_detection(
+ command_args, mock_executable, mutable_config, monkeypatch
+):
+ # Prepare an environment to detect a fake cmake
+ cmake_exe = mock_executable('cmake', output="echo cmake version 3.19.1")
+ prefix = os.path.dirname(cmake_exe)
+ monkeypatch.setenv('PATH', prefix)
+
+ openssl_exe = mock_executable('openssl', output="OpenSSL 2.8.3")
+ prefix = os.path.dirname(openssl_exe)
+ monkeypatch.setenv('PATH', prefix)
+
+ # Test that we detect specs
+ output = external('find', *command_args)
+ assert 'The following specs have been' in output
+ assert 'cmake' in output
+ assert 'openssl' not in output
diff --git a/lib/spack/spack/test/cmd/fetch.py b/lib/spack/spack/test/cmd/fetch.py
index d2f17eeb1b..212f0f58e7 100644
--- a/lib/spack/spack/test/cmd/fetch.py
+++ b/lib/spack/spack/test/cmd/fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,10 +6,8 @@
import pytest
import spack.environment as ev
-
from spack.main import SpackCommand, SpackCommandError
-
# everything here uses the mock_env_path
pytestmark = pytest.mark.usefixtures(
"mutable_mock_env_path", "config", "mutable_mock_repo"
diff --git a/lib/spack/spack/test/cmd/find.py b/lib/spack/spack/test/cmd/find.py
index 9d2203aaaf..ad20224677 100644
--- a/lib/spack/spack/test/cmd/find.py
+++ b/lib/spack/spack/test/cmd/find.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,14 +8,14 @@ import json
import os
import pytest
+
import spack.cmd as cmd
import spack.cmd.find
+import spack.environment as ev
import spack.user_environment as uenv
from spack.main import SpackCommand
from spack.spec import Spec
from spack.util.pattern import Bunch
-import spack.environment as ev
-
find = SpackCommand('find')
env = SpackCommand('env')
@@ -89,7 +89,7 @@ def test_query_arguments():
@pytest.mark.usefixtures('database', 'mock_display')
def test_tag1(parser, specs):
- args = parser.parse_args(['--tags', 'tag1'])
+ args = parser.parse_args(['--tag', 'tag1'])
spack.cmd.find.find(parser, args)
assert len(specs) == 2
@@ -100,7 +100,7 @@ def test_tag1(parser, specs):
@pytest.mark.db
@pytest.mark.usefixtures('database', 'mock_display')
def test_tag2(parser, specs):
- args = parser.parse_args(['--tags', 'tag2'])
+ args = parser.parse_args(['--tag', 'tag2'])
spack.cmd.find.find(parser, args)
assert len(specs) == 1
@@ -110,7 +110,7 @@ def test_tag2(parser, specs):
@pytest.mark.db
@pytest.mark.usefixtures('database', 'mock_display')
def test_tag2_tag3(parser, specs):
- args = parser.parse_args(['--tags', 'tag2', '--tags', 'tag3'])
+ args = parser.parse_args(['--tag', 'tag2', '--tag', 'tag3'])
spack.cmd.find.find(parser, args)
assert len(specs) == 0
@@ -130,9 +130,9 @@ def _check_json_output(spec_list):
assert all(spec["name"] == "mpileaks" for spec in spec_list)
deps = [spec["dependencies"] for spec in spec_list]
- assert sum(["zmpi" in d for d in deps]) == 1
- assert sum(["mpich" in d for d in deps]) == 1
- assert sum(["mpich2" in d for d in deps]) == 1
+ assert sum(["zmpi" in [node["name"] for d in deps for node in d]]) == 1
+ assert sum(["mpich" in [node["name"] for d in deps for node in d]]) == 1
+ assert sum(["mpich2" in [node["name"] for d in deps for node in d]]) == 1
def _check_json_output_deps(spec_list):
diff --git a/lib/spack/spack/test/cmd/flake8.py b/lib/spack/spack/test/cmd/flake8.py
deleted file mode 100644
index d4bfc5618d..0000000000
--- a/lib/spack/spack/test/cmd/flake8.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# 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)
-
-import argparse
-import os
-import pytest
-import sys
-
-from llnl.util.filesystem import FileFilter
-
-import spack.paths
-from spack.cmd.flake8 import flake8, setup_parser, changed_files
-from spack.repo import Repo
-from spack.util.executable import which
-
-
-@pytest.fixture(scope='module')
-def parser():
- """Returns the parser for the ``flake8`` command"""
- parser = argparse.ArgumentParser()
- setup_parser(parser)
- return parser
-
-
-@pytest.fixture(scope='module')
-def flake8_package():
- """Flake8 only checks files that have been modified.
- This fixture makes a small change to the ``flake8``
- mock package, yields the filename, then undoes the
- change on cleanup.
- """
- repo = Repo(spack.paths.mock_packages_path)
- filename = repo.filename_for_package_name('flake8')
- package = FileFilter(filename)
-
- # Make the change
- package.filter("state = 'unmodified'", "state = 'modified'", string=True)
-
- yield filename
-
- # Undo the change
- package.filter("state = 'modified'", "state = 'unmodified'", string=True)
-
-
-def test_changed_files(parser, flake8_package):
- args = parser.parse_args([])
-
- # changed_files returns file paths relative to the root
- # directory of Spack. Convert to absolute file paths.
- files = changed_files(args)
- files = [os.path.join(spack.paths.prefix, path) for path in files]
-
- # There will likely be other files that have changed
- # when these tests are run
- assert flake8_package in files
-
-
-# As of flake8 3.0.0, Python 2.6 and 3.3 are no longer supported
-# http://flake8.pycqa.org/en/latest/release-notes/3.0.0.html
-@pytest.mark.skipif(
- sys.version_info[:2] <= (2, 6) or
- (3, 0) <= sys.version_info[:2] <= (3, 3),
- reason='flake8 no longer supports Python 2.6 or 3.3 and older')
-@pytest.mark.skipif(not which('flake8'), reason='flake8 is not installed.')
-def test_flake8(parser, flake8_package):
- # Only test the flake8_package that we modified
- # Otherwise, the unit tests would fail every time
- # the flake8 tests fail
- args = parser.parse_args([flake8_package])
- flake8(parser, args)
- # Get even more coverage
- args = parser.parse_args(['--output', '--root-relative', flake8_package])
- flake8(parser, args)
diff --git a/lib/spack/spack/test/cmd/gc.py b/lib/spack/spack/test/cmd/gc.py
index 22c85a1d78..e00c35ea7d 100644
--- a/lib/spack/spack/test/cmd/gc.py
+++ b/lib/spack/spack/test/cmd/gc.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,8 +6,8 @@
import pytest
import spack.environment as ev
-import spack.spec
import spack.main
+import spack.spec
gc = spack.main.SpackCommand('gc')
diff --git a/lib/spack/spack/test/cmd/gpg.py b/lib/spack/spack/test/cmd/gpg.py
index 751790182b..6c9728d872 100644
--- a/lib/spack/spack/test/cmd/gpg.py
+++ b/lib/spack/spack/test/cmd/gpg.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,12 +11,10 @@ import llnl.util.filesystem as fs
import spack.util.executable
import spack.util.gpg
-
-from spack.paths import mock_gpg_data_path, mock_gpg_keys_path
from spack.main import SpackCommand
+from spack.paths import mock_gpg_data_path, mock_gpg_keys_path
from spack.util.executable import ProcessError
-
#: spack command used by tests below
gpg = SpackCommand('gpg')
@@ -41,24 +39,20 @@ def test_find_gpg(cmd_name, version, tmpdir, mock_gnupghome, monkeypatch):
monkeypatch.setitem(os.environ, "PATH", str(tmpdir))
if version == 'undetectable' or version.endswith('1.3.4'):
with pytest.raises(spack.util.gpg.SpackGPGError):
- spack.util.gpg.ensure_gpg(reevaluate=True)
+ spack.util.gpg.init(force=True)
else:
- spack.util.gpg.ensure_gpg(reevaluate=True)
- gpg_exe = spack.util.gpg.get_global_gpg_instance().gpg_exe
- assert isinstance(gpg_exe, spack.util.executable.Executable)
- gpgconf_exe = spack.util.gpg.get_global_gpg_instance().gpgconf_exe
- assert isinstance(gpgconf_exe, spack.util.executable.Executable)
+ spack.util.gpg.init(force=True)
+ assert spack.util.gpg.GPG is not None
+ assert spack.util.gpg.GPGCONF is not None
def test_no_gpg_in_path(tmpdir, mock_gnupghome, monkeypatch):
monkeypatch.setitem(os.environ, "PATH", str(tmpdir))
with pytest.raises(spack.util.gpg.SpackGPGError):
- spack.util.gpg.ensure_gpg(reevaluate=True)
+ spack.util.gpg.init(force=True)
@pytest.mark.maybeslow
-@pytest.mark.skipif(not spack.util.gpg.has_gpg(),
- reason='These tests require gnupg2')
def test_gpg(tmpdir, mock_gnupghome):
# Verify a file with an empty keyring.
with pytest.raises(ProcessError):
@@ -117,6 +111,20 @@ def test_gpg(tmpdir, mock_gnupghome):
export_path = tmpdir.join('export.testing.key')
gpg('export', str(export_path))
+ # Test exporting the private key
+ private_export_path = tmpdir.join('export-secret.testing.key')
+ gpg('export', '--secret', str(private_export_path))
+
+ # Ensure we exported the right content!
+ with open(str(private_export_path), 'r') as fd:
+ content = fd.read()
+ assert "BEGIN PGP PRIVATE KEY BLOCK" in content
+
+ # and for the public key
+ with open(str(export_path), 'r') as fd:
+ content = fd.read()
+ assert "BEGIN PGP PUBLIC KEY BLOCK" in content
+
# Create a second key for use in the tests.
gpg('create',
'--comment', 'Spack testing key',
diff --git a/lib/spack/spack/test/cmd/graph.py b/lib/spack/spack/test/cmd/graph.py
index c402f35a9f..ee0081d4b0 100644
--- a/lib/spack/spack/test/cmd/graph.py
+++ b/lib/spack/spack/test/cmd/graph.py
@@ -1,12 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.main import SpackCommand, SpackCommandError
-
import pytest
+from spack.main import SpackCommand, SpackCommandError
graph = SpackCommand('graph')
diff --git a/lib/spack/spack/test/cmd/help.py b/lib/spack/spack/test/cmd/help.py
index 00edfa187a..8e0f6d02c9 100644
--- a/lib/spack/spack/test/cmd/help.py
+++ b/lib/spack/spack/test/cmd/help.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/cmd/info.py b/lib/spack/spack/test/cmd/info.py
index b57ef3257b..01b9639f82 100644
--- a/lib/spack/spack/test/cmd/info.py
+++ b/lib/spack/spack/test/cmd/info.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,8 +6,8 @@
import argparse
import pytest
-import spack.cmd.info
+import spack.cmd.info
from spack.main import SpackCommand
info = SpackCommand('info')
@@ -48,6 +48,22 @@ def test_it_just_runs(pkg):
info(pkg)
+@pytest.mark.parametrize('pkg_query,expected', [
+ ('zlib', 'False'),
+ ('gcc', 'True (version, variants)'),
+])
+@pytest.mark.usefixtures('mock_print')
+def test_is_externally_detectable(pkg_query, expected, parser, info_lines):
+ args = parser.parse_args([pkg_query])
+ spack.cmd.info.info(parser, args)
+
+ line_iter = info_lines.__iter__()
+ for line in line_iter:
+ if 'Externally Detectable' in line:
+ is_externally_detectable = next(line_iter).strip()
+ assert is_externally_detectable == expected
+
+
@pytest.mark.parametrize('pkg_query', [
'hdf5',
'cloverleaf3d',
@@ -59,6 +75,7 @@ def test_info_fields(pkg_query, parser, info_lines):
expected_fields = (
'Description:',
'Homepage:',
+ 'Externally Detectable:',
'Safe versions:',
'Variants:',
'Installation Phases:',
diff --git a/lib/spack/spack/test/cmd/init_py_functions.py b/lib/spack/spack/test/cmd/init_py_functions.py
index 2e63106283..803cc4f13a 100644
--- a/lib/spack/spack/test/cmd/init_py_functions.py
+++ b/lib/spack/spack/test/cmd/init_py_functions.py
@@ -1,10 +1,17 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import pytest
-from spack.cmd import require_python_name, python_name, PythonNameError, \
- require_cmd_name, cmd_name, CommandNameError
+
+from spack.cmd import (
+ CommandNameError,
+ PythonNameError,
+ cmd_name,
+ python_name,
+ require_cmd_name,
+ require_python_name,
+)
def test_require_python_name():
diff --git a/lib/spack/spack/test/cmd/install.py b/lib/spack/spack/test/cmd/install.py
index 8e87f97c98..a8a8c8b556 100644
--- a/lib/spack/spack/test/cmd/install.py
+++ b/lib/spack/spack/test/cmd/install.py
@@ -1,30 +1,30 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import argparse
-import os
import filecmp
+import os
import re
-from six.moves import builtins
+import shutil
import time
import pytest
+from six.moves import builtins
import llnl.util.filesystem as fs
-import spack.config
+import spack.cmd.install
import spack.compilers as compilers
+import spack.config
+import spack.environment as ev
import spack.hash_types as ht
import spack.package
-import spack.cmd.install
+import spack.util.executable
from spack.error import SpackError
-from spack.spec import Spec, CompilerSpec
from spack.main import SpackCommand
-import spack.environment as ev
-
-from six.moves.urllib.error import HTTPError, URLError
+from spack.spec import CompilerSpec, Spec
install = SpackCommand('install')
env = SpackCommand('env')
@@ -32,6 +32,7 @@ add = SpackCommand('add')
mirror = SpackCommand('mirror')
uninstall = SpackCommand('uninstall')
buildcache = SpackCommand('buildcache')
+find = SpackCommand('find')
@pytest.fixture()
@@ -119,7 +120,9 @@ def test_install_dirty_flag(arguments, expected):
def test_package_output(tmpdir, capsys, install_mockery, mock_fetch):
- """Ensure output printed from pkgs is captured by output redirection."""
+ """
+ Ensure output printed from pkgs is captured by output redirection.
+ """
# we can't use output capture here because it interferes with Spack's
# logging. TODO: see whether we can get multiple log_outputs to work
# when nested AND in pytest
@@ -140,12 +143,15 @@ def test_package_output(tmpdir, capsys, install_mockery, mock_fetch):
@pytest.mark.disable_clean_stage_check
def test_install_output_on_build_error(mock_packages, mock_archive, mock_fetch,
config, install_mockery, capfd):
+ """
+ This test used to assume receiving full output, but since we've updated
+ spack to generate logs on the level of phases, it will only return the
+ last phase, install.
+ """
# capfd interferes with Spack's capturing
with capfd.disabled():
- out = install('build-error', fail_on_error=False)
- assert 'ProcessError' in out
- assert 'configure: error: in /path/to/some/file:' in out
- assert 'configure: error: cannot run C compiled programs.' in out
+ out = install('-v', 'build-error', fail_on_error=False)
+ assert 'Installing build-error' in out
@pytest.mark.disable_clean_stage_check
@@ -172,20 +178,17 @@ def test_install_with_source(
@pytest.mark.disable_clean_stage_check
def test_show_log_on_error(mock_packages, mock_archive, mock_fetch,
config, install_mockery, capfd):
- """Make sure --show-log-on-error works."""
+ """
+ Make sure --show-log-on-error works.
+ """
with capfd.disabled():
out = install('--show-log-on-error', 'build-error',
fail_on_error=False)
assert isinstance(install.error, spack.build_environment.ChildError)
assert install.error.pkg.name == 'build-error'
- assert 'Full build log:' in out
-
- print(out)
- # Message shows up for ProcessError (1) and output (1)
- errors = [line for line in out.split('\n')
- if 'configure: error: cannot run C compiled programs' in line]
- assert len(errors) == 2
+ assert '==> Installing build-error' in out
+ assert 'See build log for details:' in out
def test_install_overwrite(
@@ -197,30 +200,32 @@ def test_install_overwrite(
install('libdwarf')
+ # Ignore manifest and install times
manifest = os.path.join(spec.prefix, spack.store.layout.metadata_dir,
spack.store.layout.manifest_file_name)
+ ignores = [manifest, spec.package.times_log_path]
assert os.path.exists(spec.prefix)
- expected_md5 = fs.hash_directory(spec.prefix, ignore=[manifest])
+ expected_md5 = fs.hash_directory(spec.prefix, ignore=ignores)
# Modify the first installation to be sure the content is not the same
# as the one after we reinstalled
with open(os.path.join(spec.prefix, 'only_in_old'), 'w') as f:
f.write('This content is here to differentiate installations.')
- bad_md5 = fs.hash_directory(spec.prefix, ignore=[manifest])
+ bad_md5 = fs.hash_directory(spec.prefix, ignore=ignores)
assert bad_md5 != expected_md5
install('--overwrite', '-y', 'libdwarf')
assert os.path.exists(spec.prefix)
- assert fs.hash_directory(spec.prefix, ignore=[manifest]) == expected_md5
- assert fs.hash_directory(spec.prefix, ignore=[manifest]) != bad_md5
+ assert fs.hash_directory(spec.prefix, ignore=ignores) == expected_md5
+ assert fs.hash_directory(spec.prefix, ignore=ignores) != bad_md5
def test_install_overwrite_not_installed(
- mock_packages, mock_archive, mock_fetch, config, install_mockery
+ mock_packages, mock_archive, mock_fetch, config, install_mockery,
):
# Try to install a spec and then to reinstall it.
spec = Spec('libdwarf')
@@ -232,6 +237,32 @@ def test_install_overwrite_not_installed(
assert os.path.exists(spec.prefix)
+def test_install_commit(
+ mock_git_version_info, install_mockery, mock_packages, monkeypatch):
+ """
+ Test installing a git package from a commit.
+
+ This ensures Spack appropriately associates commit versions with their
+ packages in time to do version lookups. Details of version lookup tested elsewhere
+ """
+ repo_path, filename, commits = mock_git_version_info
+ monkeypatch.setattr(spack.package.PackageBase,
+ 'git', 'file://%s' % repo_path,
+ raising=False)
+
+ commit = commits[-1]
+ spec = spack.spec.Spec('git-test-commit@%s' % commit)
+ spec.concretize()
+ spec.package.do_install()
+
+ # Ensure first commit file contents were written
+ installed = os.listdir(spec.prefix.bin)
+ assert filename in installed
+ with open(spec.prefix.bin.join(filename), 'r') as f:
+ content = f.read().strip()
+ assert content == '[]' # contents are weird for another test
+
+
def test_install_overwrite_multiple(
mock_packages, mock_archive, mock_fetch, config, install_mockery
):
@@ -250,16 +281,19 @@ def test_install_overwrite_multiple(
spack.store.layout.metadata_dir,
spack.store.layout.manifest_file_name)
+ ld_ignores = [ld_manifest, libdwarf.package.times_log_path]
+
assert os.path.exists(libdwarf.prefix)
expected_libdwarf_md5 = fs.hash_directory(libdwarf.prefix,
- ignore=[ld_manifest])
+ ignore=ld_ignores)
cm_manifest = os.path.join(cmake.prefix,
spack.store.layout.metadata_dir,
spack.store.layout.manifest_file_name)
+ cm_ignores = [cm_manifest, cmake.package.times_log_path]
assert os.path.exists(cmake.prefix)
- expected_cmake_md5 = fs.hash_directory(cmake.prefix, ignore=[cm_manifest])
+ expected_cmake_md5 = fs.hash_directory(cmake.prefix, ignore=cm_ignores)
# Modify the first installation to be sure the content is not the same
# as the one after we reinstalled
@@ -268,8 +302,8 @@ def test_install_overwrite_multiple(
with open(os.path.join(cmake.prefix, 'only_in_old'), 'w') as f:
f.write('This content is here to differentiate installations.')
- bad_libdwarf_md5 = fs.hash_directory(libdwarf.prefix, ignore=[ld_manifest])
- bad_cmake_md5 = fs.hash_directory(cmake.prefix, ignore=[cm_manifest])
+ bad_libdwarf_md5 = fs.hash_directory(libdwarf.prefix, ignore=ld_ignores)
+ bad_cmake_md5 = fs.hash_directory(cmake.prefix, ignore=cm_ignores)
assert bad_libdwarf_md5 != expected_libdwarf_md5
assert bad_cmake_md5 != expected_cmake_md5
@@ -278,8 +312,8 @@ def test_install_overwrite_multiple(
assert os.path.exists(libdwarf.prefix)
assert os.path.exists(cmake.prefix)
- ld_hash = fs.hash_directory(libdwarf.prefix, ignore=[ld_manifest])
- cm_hash = fs.hash_directory(cmake.prefix, ignore=[cm_manifest])
+ ld_hash = fs.hash_directory(libdwarf.prefix, ignore=ld_ignores)
+ cm_hash = fs.hash_directory(cmake.prefix, ignore=cm_ignores)
assert ld_hash == expected_libdwarf_md5
assert cm_hash == expected_cmake_md5
assert ld_hash != bad_libdwarf_md5
@@ -304,7 +338,7 @@ def test_install_invalid_spec(invalid_spec):
install(invalid_spec)
-@pytest.mark.usefixtures('noop_install', 'config')
+@pytest.mark.usefixtures('noop_install', 'mock_packages', 'config')
@pytest.mark.parametrize('spec,concretize,error_code', [
(Spec('mpi'), False, 1),
(Spec('mpi'), True, 0),
@@ -408,7 +442,7 @@ def test_junit_output_with_errors(
assert 'error message="{0}"'.format(msg) in content
-@pytest.mark.usefixtures('noop_install', 'config')
+@pytest.mark.usefixtures('noop_install', 'mock_packages', 'config')
@pytest.mark.parametrize('clispecs,filespecs', [
[[], ['mpi']],
[[], ['mpi', 'boost']],
@@ -483,7 +517,7 @@ def test_cdash_upload_build_error(tmpdir, mock_fetch, install_mockery,
# capfd interferes with Spack's capturing
with capfd.disabled():
with tmpdir.as_cwd():
- with pytest.raises((HTTPError, URLError)):
+ with pytest.raises(SpackError):
install(
'--log-format=cdash',
'--log-file=cdash_reports',
@@ -629,10 +663,11 @@ def test_cache_only_fails(tmpdir, mock_fetch, install_mockery, capfd):
# libelf from cache fails to install, which automatically removes the
# the libdwarf build task
with capfd.disabled():
- out = install('--cache-only', 'libdwarf')
+ out = install('--cache-only', 'libdwarf', fail_on_error=False)
assert 'Failed to install libelf' in out
assert 'Skipping build of libdwarf' in out
+ assert 'was not installed' in out
# Check that failure prefix locks are still cached
failure_lock_prefixes = ','.join(spack.store.db._prefix_failures.keys())
@@ -709,8 +744,116 @@ def test_install_only_dependencies_of_all_in_env(
assert os.path.exists(dep.prefix)
+def test_install_no_add_in_env(tmpdir, mock_fetch, install_mockery,
+ mutable_mock_env_path):
+ # To test behavior of --no-add option, we create the following environment:
+ #
+ # mpileaks
+ # ^callpath
+ # ^dyninst
+ # ^libelf@0.8.13 # or latest, really
+ # ^libdwarf
+ # ^mpich
+ # libelf@0.8.10
+ # a~bvv
+ # ^b
+ # a
+ # ^b
+ e = ev.create('test')
+ e.add('mpileaks')
+ e.add('libelf@0.8.10') # so env has both root and dep libelf specs
+ e.add('a')
+ e.add('a ~bvv')
+ e.concretize()
+ env_specs = e.all_specs()
+
+ a_spec = None
+ b_spec = None
+ mpi_spec = None
+
+ # First find and remember some target concrete specs in the environment
+ for e_spec in env_specs:
+ if e_spec.satisfies(Spec('a ~bvv')):
+ a_spec = e_spec
+ elif e_spec.name == 'b':
+ b_spec = e_spec
+ elif e_spec.satisfies(Spec('mpi')):
+ mpi_spec = e_spec
+
+ assert(a_spec)
+ assert(a_spec.concrete)
+
+ assert(b_spec)
+ assert(b_spec.concrete)
+ assert(b_spec not in e.roots())
+
+ assert(mpi_spec)
+ assert(mpi_spec.concrete)
+
+ # Activate the environment
+ with e:
+ # Assert using --no-add with a spec not in the env fails
+ inst_out = install(
+ '--no-add', 'boost', fail_on_error=False, output=str)
+
+ assert('no such spec exists in environment' in inst_out)
+
+ # Ensure using --no-add with an ambiguous spec fails
+ with pytest.raises(ev.SpackEnvironmentError) as err:
+ inst_out = install(
+ '--no-add', 'a', output=str)
+
+ assert('a matches multiple specs in the env' in str(err))
+
+ # With "--no-add", install an unambiguous dependency spec (that already
+ # exists as a dep in the environment) using --no-add and make sure it
+ # gets installed (w/ deps), but is not added to the environment.
+ install('--no-add', 'dyninst')
+
+ find_output = find('-l', output=str)
+ assert('dyninst' in find_output)
+ assert('libdwarf' in find_output)
+ assert('libelf' in find_output)
+ assert('callpath' not in find_output)
+
+ post_install_specs = e.all_specs()
+ assert all([s in env_specs for s in post_install_specs])
+
+ # Make sure we can install a concrete dependency spec from a spec.yaml
+ # file on disk, using the ``--no-add` option, and the spec is installed
+ # but not added as a root
+ mpi_spec_yaml_path = tmpdir.join('{0}.yaml'.format(mpi_spec.name))
+ with open(mpi_spec_yaml_path.strpath, 'w') as fd:
+ fd.write(mpi_spec.to_yaml(hash=ht.full_hash))
+
+ install('--no-add', '-f', mpi_spec_yaml_path.strpath)
+ assert(mpi_spec not in e.roots())
+
+ find_output = find('-l', output=str)
+ assert(mpi_spec.name in find_output)
+
+ # Without "--no-add", install an unambiguous depependency spec (that
+ # already exists as a dep in the environment) without --no-add and make
+ # sure it is added as a root of the environment as well as installed.
+ assert(b_spec not in e.roots())
+
+ install('b')
+
+ assert(b_spec in e.roots())
+ assert(b_spec not in e.uninstalled_specs())
+
+ # Without "--no-add", install a novel spec and make sure it is added
+ # as a root and installed.
+ install('bowtie')
+
+ assert(any([s.name == 'bowtie' for s in e.roots()]))
+ assert(not any([s.name == 'bowtie' for s in e.uninstalled_specs()]))
+
+
def test_install_help_does_not_show_cdash_options(capsys):
- """Make sure `spack install --help` does not describe CDash arguments"""
+ """
+ Make sure `spack install --help` does not describe CDash arguments
+ """
with pytest.raises(SystemExit):
install('--help')
captured = capsys.readouterr()
@@ -738,6 +881,25 @@ def test_cdash_auth_token(tmpdir, install_mockery, capfd):
assert 'Using CDash auth token from environment' in out
+@pytest.mark.disable_clean_stage_check
+def test_cdash_configure_warning(tmpdir, mock_fetch, install_mockery, capfd):
+ # capfd interferes with Spack's capturing of e.g., Build.xml output
+ with capfd.disabled():
+ with tmpdir.as_cwd():
+ # Test would fail if install raised an error.
+ install(
+ '--log-file=cdash_reports',
+ '--log-format=cdash',
+ 'configure-warning')
+ # Verify Configure.xml exists with expected contents.
+ report_dir = tmpdir.join('cdash_reports')
+ assert report_dir in tmpdir.listdir()
+ report_file = report_dir.join('Configure.xml')
+ assert report_file in report_dir.listdir()
+ content = report_file.open().read()
+ assert 'foo: No such file or directory' in content
+
+
def test_compiler_bootstrap(
install_mockery_mutable_config, mock_packages, mock_fetch,
mock_archive, mutable_config, monkeypatch):
@@ -753,7 +915,9 @@ def test_compiler_bootstrap(
def test_compiler_bootstrap_from_binary_mirror(
install_mockery_mutable_config, mock_packages, mock_fetch,
mock_archive, mutable_config, monkeypatch, tmpdir):
- """Make sure installing compiler from buildcache registers compiler"""
+ """
+ Make sure installing compiler from buildcache registers compiler
+ """
# Create a temp mirror directory for buildcache usage
mirror_dir = tmpdir.join('mirror_dir')
@@ -825,11 +989,16 @@ def test_install_fails_no_args_suggests_env_activation(tmpdir):
assert 'using the `spack.yaml` in this directory' in output
+default_full_hash = spack.spec.Spec.full_hash
+
+
def fake_full_hash(spec):
# Generate an arbitrary hash that is intended to be different than
# whatever a Spec reported before (to test actions that trigger when
# the hash changes)
- return 'tal4c7h4z0gqmixb1eqa92mjoybxn5l6'
+ if spec.name == 'libdwarf':
+ return 'tal4c7h4z0gqmixb1eqa92mjoybxn5l6'
+ return default_full_hash(spec)
def test_cache_install_full_hash_match(
@@ -884,3 +1053,27 @@ def test_cache_install_full_hash_match(
uninstall('-y', s.name)
mirror('rm', 'test-mirror')
+
+ # Get rid of that libdwarf binary in the mirror so other tests don't try to
+ # use it and fail because of NoVerifyException
+ shutil.rmtree(mirror_dir.strpath)
+
+
+def test_install_env_with_tests_all(tmpdir, mock_packages, mock_fetch,
+ install_mockery, mutable_mock_env_path):
+ env('create', 'test')
+ with ev.read('test'):
+ test_dep = Spec('test-dependency').concretized()
+ add('depb')
+ install('--test', 'all')
+ assert os.path.exists(test_dep.prefix)
+
+
+def test_install_env_with_tests_root(tmpdir, mock_packages, mock_fetch,
+ install_mockery, mutable_mock_env_path):
+ env('create', 'test')
+ with ev.read('test'):
+ test_dep = Spec('test-dependency').concretized()
+ add('depb')
+ install('--test', 'root')
+ assert not os.path.exists(test_dep.prefix)
diff --git a/lib/spack/spack/test/cmd/is_git_repo.py b/lib/spack/spack/test/cmd/is_git_repo.py
index 724925e5e4..09c0ca0130 100644
--- a/lib/spack/spack/test/cmd/is_git_repo.py
+++ b/lib/spack/spack/test/cmd/is_git_repo.py
@@ -1,19 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-import spack
import pytest
from llnl.util.filesystem import mkdirp
+import spack
from spack.util.executable import which
from spack.version import ver
-
git = which("git")
git_required_version = '2.17.0'
@@ -28,7 +27,7 @@ def check_git_version():
Refer:
https://github.com/git/git/commit/cc73385cf6c5c229458775bc92e7dbbe24d11611
"""
- git_version = ver(git('--version', output=str).lstrip('git version '))
+ git_version = spack.fetch_strategy.GitFetchStrategy.version_from_git(git)
return git_version >= ver(git_required_version)
diff --git a/lib/spack/spack/test/cmd/license.py b/lib/spack/spack/test/cmd/license.py
index 614d093c5f..77207bbe6c 100644
--- a/lib/spack/spack/test/cmd/license.py
+++ b/lib/spack/spack/test/cmd/license.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,8 +6,9 @@
import os.path
import re
-from llnl.util.filesystem import touch, mkdirp
+from llnl.util.filesystem import mkdirp, touch
+import spack.cmd.license
import spack.paths
from spack.main import SpackCommand
@@ -31,7 +32,7 @@ def test_verify(tmpdir):
lgpl_header = source_dir.join('lgpl_header.py')
with lgpl_header.open('w') as f:
f.write("""\
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: LGPL-2.1-only
@@ -48,13 +49,13 @@ def test_verify(tmpdir):
correct_header = source_dir.join('correct_header.py')
with correct_header.open('w') as f:
f.write("""\
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
""")
- out = license('verify', '--root', str(tmpdir), fail_on_error=False)
+ out = license('--root', str(tmpdir), 'verify', fail_on_error=False)
assert str(no_header) in out
assert str(lgpl_header) in out
@@ -66,3 +67,28 @@ def test_verify(tmpdir):
assert re.search(r'files with old license header:\s*1', out)
assert license.returncode == 1
+
+
+def test_update_copyright_year(tmpdir):
+ source_dir = tmpdir.join('lib', 'spack', 'spack')
+ mkdirp(str(source_dir))
+
+ years = list(range(2018, 2021))
+
+ for year in years:
+ outdated = source_dir.join('header_%d.py' % year)
+ with outdated.open('w') as f:
+ f.write("""\
+# Copyright 2013-%d 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)
+""" % year)
+
+ license('--root', str(tmpdir), 'update-copyright-year')
+
+ for year in years:
+ outdated = source_dir.join('header_%d.py' % year)
+ first_line = outdated.open().read().split("\n")[0]
+ assert str(year) not in first_line
+ assert spack.cmd.license.strict_date in first_line
diff --git a/lib/spack/spack/test/cmd/list.py b/lib/spack/spack/test/cmd/list.py
index 17f5a1b493..f99b7420a4 100644
--- a/lib/spack/spack/test/cmd/list.py
+++ b/lib/spack/spack/test/cmd/list.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -33,15 +33,15 @@ def test_list_search_description():
def test_list_tags():
- output = list('--tags', 'proxy-app')
+ output = list('--tag', 'proxy-app')
assert 'cloverleaf3d' in output
assert 'hdf5' not in output
- output = list('--tags', 'hpc')
+ output = list('--tag', 'hpc')
assert 'nek5000' in output
assert 'mfem' in output
- output = list('--tags', 'HPC')
+ output = list('--tag', 'HPC')
assert 'nek5000' in output
assert 'mfem' in output
diff --git a/lib/spack/spack/test/cmd/load.py b/lib/spack/spack/test/cmd/load.py
index b1697bbfc4..ef014418c7 100644
--- a/lib/spack/spack/test/cmd/load.py
+++ b/lib/spack/spack/test/cmd/load.py
@@ -1,12 +1,14 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
import pytest
-from spack.main import SpackCommand, SpackCommandError
+
import spack.spec
import spack.user_environment as uenv
+from spack.main import SpackCommand, SpackCommandError
load = SpackCommand('load')
unload = SpackCommand('unload')
@@ -21,7 +23,9 @@ def test_load(install_mockery, mock_fetch, mock_archive, mock_packages):
CMAKE_PREFIX_PATH is the only prefix inspection guaranteed for fake
packages, since it keys on the prefix instead of a subdir."""
- install('mpileaks')
+ install_out = install('mpileaks', output=str, fail_on_error=False)
+ print('spack install mpileaks')
+ print(install_out)
mpileaks_spec = spack.spec.Spec('mpileaks').concretized()
sh_out = load('--sh', '--only', 'package', 'mpileaks')
diff --git a/lib/spack/spack/test/cmd/location.py b/lib/spack/spack/test/cmd/location.py
index 2cefbd558f..db7c9d526a 100644
--- a/lib/spack/spack/test/cmd/location.py
+++ b/lib/spack/spack/test/cmd/location.py
@@ -1,24 +1,26 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import shutil
+
import pytest
from llnl.util.filesystem import mkdirp
+
import spack.environment as ev
-from spack.main import SpackCommand, SpackCommandError
import spack.paths
import spack.stage
-
+from spack.main import SpackCommand, SpackCommandError
# Everything here uses (or can use) the mock config and database.
pytestmark = pytest.mark.usefixtures('config', 'database')
# location prints out "locations of packages and spack directories"
location = SpackCommand('location')
+env = SpackCommand('env')
@pytest.fixture
@@ -86,6 +88,27 @@ def test_location_env(mock_test_env):
assert location('--env', test_env_name).strip() == env_dir
+def test_location_env_flag_interference(mutable_mock_env_path, tmpdir):
+ """
+ Tests that specifying an active environment using `spack -e x location ...`
+ does not interfere with the location command flags.
+ """
+
+ # create two environments
+ env('create', 'first_env')
+ env('create', 'second_env')
+
+ global_args = ['-e', 'first_env']
+
+ # `spack -e first_env location -e second_env` should print the env
+ # path of second_env
+ assert 'first_env' not in location('-e', 'second_env', global_args=global_args)
+
+ # `spack -e first_env location --packages` should not print
+ # the environment path of first_env.
+ assert 'first_env' not in location('--packages', global_args=global_args)
+
+
def test_location_env_missing():
"""Tests spack location --env."""
missing_env_name = 'missing-env'
diff --git a/lib/spack/spack/test/cmd/maintainers.py b/lib/spack/spack/test/cmd/maintainers.py
index 4c566c7513..0e4c8c6469 100644
--- a/lib/spack/spack/test/cmd/maintainers.py
+++ b/lib/spack/spack/test/cmd/maintainers.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-import pytest
import re
+import pytest
+
import spack.main
import spack.repo
diff --git a/lib/spack/spack/test/cmd/mark.py b/lib/spack/spack/test/cmd/mark.py
index 5b488bbf3e..ff8283aa9f 100644
--- a/lib/spack/spack/test/cmd/mark.py
+++ b/lib/spack/spack/test/cmd/mark.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import pytest
+
import spack.store
from spack.main import SpackCommand, SpackCommandError
@@ -30,7 +31,7 @@ def test_mark_all_explicit(mutable_database):
mark('-e', '-a')
gc('-y')
all_specs = spack.store.layout.all_specs()
- assert len(all_specs) == 14
+ assert len(all_specs) == 15
@pytest.mark.db
@@ -47,7 +48,7 @@ def test_mark_one_explicit(mutable_database):
uninstall('-y', '-a', 'mpileaks')
gc('-y')
all_specs = spack.store.layout.all_specs()
- assert len(all_specs) == 2
+ assert len(all_specs) == 3
@pytest.mark.db
@@ -55,7 +56,7 @@ def test_mark_one_implicit(mutable_database):
mark('-i', 'externaltest')
gc('-y')
all_specs = spack.store.layout.all_specs()
- assert len(all_specs) == 13
+ assert len(all_specs) == 14
@pytest.mark.db
@@ -64,4 +65,4 @@ def test_mark_all_implicit_then_explicit(mutable_database):
mark('-e', '-a')
gc('-y')
all_specs = spack.store.layout.all_specs()
- assert len(all_specs) == 14
+ assert len(all_specs) == 15
diff --git a/lib/spack/spack/test/cmd/mirror.py b/lib/spack/spack/test/cmd/mirror.py
index 0957624cba..8716d59e05 100644
--- a/lib/spack/spack/test/cmd/mirror.py
+++ b/lib/spack/spack/test/cmd/mirror.py
@@ -1,19 +1,23 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
import os
-from spack.main import SpackCommand, SpackCommandError
-import spack.environment as ev
+import pytest
+
import spack.config
+import spack.environment as ev
+from spack.main import SpackCommand, SpackCommandError
mirror = SpackCommand('mirror')
env = SpackCommand('env')
add = SpackCommand('add')
concretize = SpackCommand('concretize')
+install = SpackCommand('install')
+buildcache = SpackCommand('buildcache')
+uninstall = SpackCommand('uninstall')
@pytest.fixture
@@ -183,3 +187,39 @@ def test_mirror_name_collision(tmp_scope):
with pytest.raises(SpackCommandError):
mirror('add', '--scope', tmp_scope, 'first', '1')
+
+
+def test_mirror_destroy(install_mockery_mutable_config,
+ mock_packages, mock_fetch, mock_archive,
+ mutable_config, monkeypatch, tmpdir):
+ # Create a temp mirror directory for buildcache usage
+ mirror_dir = tmpdir.join('mirror_dir')
+ mirror_url = 'file://{0}'.format(mirror_dir.strpath)
+ mirror('add', 'atest', mirror_url)
+
+ spec_name = 'libdwarf'
+
+ # Put a binary package in a buildcache
+ install('--no-cache', spec_name)
+ buildcache('create', '-u', '-a', '-f', '-d', mirror_dir.strpath, spec_name)
+
+ contents = os.listdir(mirror_dir.strpath)
+ assert('build_cache' in contents)
+
+ # Destroy mirror by name
+ mirror('destroy', '-m', 'atest')
+
+ assert(not os.path.exists(mirror_dir.strpath))
+
+ buildcache('create', '-u', '-a', '-f', '-d', mirror_dir.strpath, spec_name)
+
+ contents = os.listdir(mirror_dir.strpath)
+ assert('build_cache' in contents)
+
+ # Destroy mirror by url
+ mirror('destroy', '--mirror-url', mirror_url)
+
+ assert(not os.path.exists(mirror_dir.strpath))
+
+ uninstall('-y', spec_name)
+ mirror('remove', 'atest')
diff --git a/lib/spack/spack/test/cmd/module.py b/lib/spack/spack/test/cmd/module.py
index 8be6c129c7..3bced1d335 100644
--- a/lib/spack/spack/test/cmd/module.py
+++ b/lib/spack/spack/test/cmd/module.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,7 +23,7 @@ def ensure_module_files_are_there(
):
"""Generate module files for module tests."""
module = spack.main.SpackCommand('module')
- with spack.store.use_store(mock_store):
+ with spack.store.use_store(str(mock_store)):
with spack.config.use_configuration(*mock_configuration_scopes):
with spack.repo.use_repositories(mock_repo_path):
module('tcl', 'refresh', '-y')
@@ -32,7 +32,7 @@ def ensure_module_files_are_there(
def _module_files(module_type, *specs):
specs = [spack.spec.Spec(x).concretized() for x in specs]
writer_cls = spack.modules.module_types[module_type]
- return [writer_cls(spec).layout.filename for spec in specs]
+ return [writer_cls(spec, 'default').layout.filename for spec in specs]
@pytest.fixture(
@@ -66,17 +66,6 @@ def test_exit_with_failure(database, module_type, failure_args):
@pytest.mark.db
-@pytest.mark.parametrize('deprecated_command', [
- ('refresh', '-m', 'tcl', 'mpileaks'),
- ('rm', '-m', 'tcl', '-m', 'lmod', 'mpileaks'),
- ('find', 'mpileaks'),
-])
-def test_deprecated_command(database, deprecated_command):
- with pytest.raises(spack.main.SpackCommandError):
- module(*deprecated_command)
-
-
-@pytest.mark.db
def test_remove_and_add(database, module_type):
"""Tests adding and removing a tcl module file."""
@@ -200,8 +189,10 @@ def test_setdefault_command(
spack.spec.Spec(preferred).concretized().package.do_install(fake=True)
writers = {
- preferred: writer_cls(spack.spec.Spec(preferred).concretized()),
- other_spec: writer_cls(spack.spec.Spec(other_spec).concretized())
+ preferred: writer_cls(
+ spack.spec.Spec(preferred).concretized(), 'default'),
+ other_spec: writer_cls(
+ spack.spec.Spec(other_spec).concretized(), 'default')
}
# Create two module files for the same software
diff --git a/lib/spack/spack/test/cmd/pkg.py b/lib/spack/spack/test/cmd/pkg.py
index 5319e4e288..4036a33f95 100644
--- a/lib/spack/spack/test/cmd/pkg.py
+++ b/lib/spack/spack/test/cmd/pkg.py
@@ -1,18 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
-import pytest
import re
import shutil
+import pytest
+
from llnl.util.filesystem import mkdirp, working_dir
-import spack.main
import spack.cmd.pkg
+import spack.main
from spack.util.executable import which
pytestmark = pytest.mark.skipif(not which('git'),
diff --git a/lib/spack/spack/test/cmd/print_shell_vars.py b/lib/spack/spack/test/cmd/print_shell_vars.py
index 5f4f8164eb..3c56ee6e49 100644
--- a/lib/spack/spack/test/cmd/print_shell_vars.py
+++ b/lib/spack/spack/test/cmd/print_shell_vars.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/cmd/providers.py b/lib/spack/spack/test/cmd/providers.py
index dd0c8a9eb7..d1496a6255 100644
--- a/lib/spack/spack/test/cmd/providers.py
+++ b/lib/spack/spack/test/cmd/providers.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -25,8 +25,6 @@ def test_it_just_runs(pkg):
(('mpi',), ['intel-mpi',
'intel-parallel-studio',
'mpich',
- 'mpich@1:',
- 'mpich@3:',
'mpilander',
'mvapich2',
'openmpi',
diff --git a/lib/spack/spack/test/cmd/python.py b/lib/spack/spack/test/cmd/python.py
index b1c9d3db00..d2ef35a85e 100644
--- a/lib/spack/spack/test/cmd/python.py
+++ b/lib/spack/spack/test/cmd/python.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import platform
+import sys
import pytest
@@ -18,6 +19,11 @@ def test_python():
assert out.strip() == spack.spack_version
+def test_python_interpreter_path():
+ out = python('--path')
+ assert out.strip() == sys.executable
+
+
def test_python_version():
out = python('-V')
assert platform.python_version() in out
diff --git a/lib/spack/spack/test/cmd/reindex.py b/lib/spack/spack/test/cmd/reindex.py
index feb5545ae6..5f445081cc 100644
--- a/lib/spack/spack/test/cmd/reindex.py
+++ b/lib/spack/spack/test/cmd/reindex.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
-from spack.main import SpackCommand
+
import spack.store
+from spack.main import SpackCommand
install = SpackCommand('install')
deprecate = SpackCommand('deprecate')
diff --git a/lib/spack/spack/test/cmd/repo.py b/lib/spack/spack/test/cmd/repo.py
index 82fe872710..bd2981620b 100644
--- a/lib/spack/spack/test/cmd/repo.py
+++ b/lib/spack/spack/test/cmd/repo.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os.path
import pytest
+
import spack.main
repo = spack.main.SpackCommand('repo')
diff --git a/lib/spack/spack/test/cmd/resource.py b/lib/spack/spack/test/cmd/resource.py
index 4fc5fd5c50..6623819d5e 100644
--- a/lib/spack/spack/test/cmd/resource.py
+++ b/lib/spack/spack/test/cmd/resource.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.main import SpackCommand
-
resource = SpackCommand('resource')
#: these are hashes used in mock packages
diff --git a/lib/spack/spack/test/cmd/spec.py b/lib/spack/spack/test/cmd/spec.py
index 3c50a66ce7..f3b0f577b1 100644
--- a/lib/spack/spack/test/cmd/spec.py
+++ b/lib/spack/spack/test/cmd/spec.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import re
+
import pytest
import spack.spec
diff --git a/lib/spack/spack/test/cmd/stage.py b/lib/spack/spack/test/cmd/stage.py
new file mode 100644
index 0000000000..bf590b0ea6
--- /dev/null
+++ b/lib/spack/spack/test/cmd/stage.py
@@ -0,0 +1,119 @@
+# Copyright 2013-2021 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)
+
+import os
+
+import pytest
+
+import spack.environment as ev
+import spack.repo
+from spack.main import SpackCommand
+from spack.version import Version
+
+stage = SpackCommand('stage')
+env = SpackCommand('env')
+
+pytestmark = pytest.mark.usefixtures('install_mockery', 'mock_packages')
+
+
+def test_stage_spec(monkeypatch):
+ """Verify that staging specs works."""
+
+ expected = set(['trivial-install-test-package', 'mpileaks'])
+
+ def fake_stage(pkg, mirror_only=False):
+ expected.remove(pkg.name)
+
+ monkeypatch.setattr(spack.package.PackageBase, 'do_stage', fake_stage)
+
+ stage('trivial-install-test-package', 'mpileaks')
+
+ assert len(expected) == 0
+
+
+@pytest.fixture(scope='function')
+def check_stage_path(monkeypatch, tmpdir):
+ expected_path = os.path.join(str(tmpdir), 'x')
+
+ def fake_stage(pkg, mirror_only=False):
+ assert pkg.path == expected_path
+ assert os.path.isdir(expected_path), expected_path
+
+ monkeypatch.setattr(spack.package.PackageBase, 'do_stage', fake_stage)
+
+ return expected_path
+
+
+def test_stage_path(check_stage_path):
+ """Verify that --path only works with single specs."""
+ stage('--path={0}'.format(check_stage_path), 'trivial-install-test-package')
+
+
+def test_stage_path_errors_multiple_specs(check_stage_path):
+ """Verify that --path only works with single specs."""
+ with pytest.raises(spack.main.SpackCommandError):
+ stage('--path={0}'.format(check_stage_path),
+ 'trivial-install-test-package',
+ 'mpileaks')
+
+
+def test_stage_with_env_outside_env(mutable_mock_env_path, monkeypatch):
+ """Verify that stage concretizes specs not in environment instead of erroring."""
+
+ def fake_stage(pkg, mirror_only=False):
+ assert pkg.name == 'trivial-install-test-package'
+ assert pkg.path is None
+
+ monkeypatch.setattr(spack.package.PackageBase, 'do_stage', fake_stage)
+
+ e = ev.create('test')
+ e.add('mpileaks')
+ e.concretize()
+
+ with e:
+ stage('trivial-install-test-package')
+
+
+def test_stage_with_env_inside_env(mutable_mock_env_path, monkeypatch):
+ """Verify that stage filters specs in environment instead of reconcretizing."""
+
+ def fake_stage(pkg, mirror_only=False):
+ assert pkg.name == 'mpileaks'
+ assert pkg.version == Version('100.100')
+
+ monkeypatch.setattr(spack.package.PackageBase, 'do_stage', fake_stage)
+
+ e = ev.create('test')
+ e.add('mpileaks@100.100')
+ e.concretize()
+
+ with e:
+ stage('mpileaks')
+
+
+def test_stage_full_env(mutable_mock_env_path, monkeypatch):
+ """Verify that stage filters specs in environment."""
+
+ e = ev.create('test')
+ e.add('mpileaks@100.100')
+ e.concretize()
+
+ # list all the package names that should be staged
+ expected = set()
+ for spec in e.specs_by_hash.values():
+ for dep in spec.traverse():
+ expected.add(dep.name)
+
+ # pop the package name from the list instead of actually staging
+ def fake_stage(pkg, mirror_only=False):
+ expected.remove(pkg.name)
+
+ monkeypatch.setattr(spack.package.PackageBase, 'do_stage', fake_stage)
+
+ with e:
+ stage()
+
+ # assert that all were staged
+ assert len(expected) == 0
diff --git a/lib/spack/spack/test/cmd/style.py b/lib/spack/spack/test/cmd/style.py
new file mode 100644
index 0000000000..af0fc47d24
--- /dev/null
+++ b/lib/spack/spack/test/cmd/style.py
@@ -0,0 +1,311 @@
+# Copyright 2013-2021 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)
+
+import filecmp
+import os
+import shutil
+import sys
+
+import pytest
+
+from llnl.util.filesystem import FileFilter
+
+import spack.main
+import spack.paths
+import spack.repo
+from spack.cmd.style import changed_files
+from spack.util.executable import which
+
+#: directory with sample style files
+style_data = os.path.join(spack.paths.test_path, 'data', 'style')
+
+
+style = spack.main.SpackCommand("style")
+
+# spack style requires git to run -- skip the tests if it's not there
+pytestmark = pytest.mark.skipif(not which('git'), reason='requires git')
+
+# The style tools have requirements to use newer Python versions. We simplify by
+# requiring Python 3.6 or higher to run spack style.
+skip_old_python = pytest.mark.skipif(
+ sys.version_info < (3, 6), reason='requires Python 3.6 or higher')
+
+
+@pytest.fixture(scope="function")
+def flake8_package():
+ """Style only checks files that have been modified. This fixture makes a small
+ change to the ``flake8`` mock package, yields the filename, then undoes the
+ change on cleanup.
+ """
+ repo = spack.repo.Repo(spack.paths.mock_packages_path)
+ filename = repo.filename_for_package_name("flake8")
+ tmp = filename + ".tmp"
+
+ try:
+ shutil.copy(filename, tmp)
+ package = FileFilter(filename)
+ package.filter("state = 'unmodified'", "state = 'modified'", string=True)
+ yield filename
+ finally:
+ shutil.move(tmp, filename)
+
+
+@pytest.fixture
+def flake8_package_with_errors(scope="function"):
+ """A flake8 package with errors."""
+ repo = spack.repo.Repo(spack.paths.mock_packages_path)
+ filename = repo.filename_for_package_name("flake8")
+ tmp = filename + ".tmp"
+
+ try:
+ shutil.copy(filename, tmp)
+ package = FileFilter(filename)
+ package.filter("state = 'unmodified'", "state = 'modified'", string=True)
+ package.filter(
+ "from spack import *", "from spack import *\nimport os", string=True
+ )
+ yield filename
+ finally:
+ shutil.move(tmp, filename)
+
+
+def test_changed_files(flake8_package):
+ # changed_files returns file paths relative to the root
+ # directory of Spack. Convert to absolute file paths.
+ files = [os.path.join(spack.paths.prefix, path) for path in changed_files()]
+
+ # There will likely be other files that have changed
+ # when these tests are run
+ assert flake8_package in files
+
+
+def test_changed_no_base(tmpdir, capfd):
+ """Ensure that we fail gracefully with no base branch."""
+ tmpdir.join("bin").ensure("spack")
+ git = which("git", required=True)
+ with tmpdir.as_cwd():
+ git("init")
+ git("config", "user.name", "test user")
+ git("config", "user.email", "test@user.com")
+ git("add", ".")
+ git("commit", "-m", "initial commit")
+
+ with pytest.raises(SystemExit):
+ changed_files(base="foobar")
+
+ out, err = capfd.readouterr()
+ assert "This repository does not have a 'foobar' branch." in err
+
+
+def test_changed_files_all_files(flake8_package):
+ # it's hard to guarantee "all files", so do some sanity checks.
+ files = set([
+ os.path.join(spack.paths.prefix, path)
+ for path in changed_files(all_files=True)
+ ])
+
+ # spack has a lot of files -- check that we're in the right ballpark
+ assert len(files) > 6000
+
+ # a builtin package
+ zlib = spack.repo.path.get_pkg_class("zlib")
+ assert zlib.module.__file__ in files
+
+ # a core spack file
+ assert os.path.join(spack.paths.module_path, "spec.py") in files
+
+ # a mock package
+ assert flake8_package in files
+
+ # this test
+ assert __file__ in files
+
+ # ensure externals are excluded
+ assert not any(f.startswith(spack.paths.external_path) for f in files)
+
+
+@pytest.mark.skipif(sys.version_info >= (3, 6), reason="doesn't apply to newer python")
+def test_fail_on_old_python():
+ """Ensure that `spack style` runs but fails with older python."""
+ output = style(fail_on_error=False)
+ assert "spack style requires Python 3.6" in output
+
+
+@skip_old_python
+def test_bad_root(tmpdir):
+ """Ensure that `spack style` doesn't run on non-spack directories."""
+ output = style("--root", str(tmpdir), fail_on_error=False)
+ assert "This does not look like a valid spack root" in output
+ assert style.returncode != 0
+
+
+def test_style_is_package(tmpdir):
+ """Ensure the is_package() function works."""
+ assert spack.cmd.style.is_package(
+ "var/spack/repos/builtin/packages/hdf5/package.py"
+ )
+ assert spack.cmd.style.is_package(
+ "var/spack/repos/builtin/packages/zlib/package.py"
+ )
+ assert not spack.cmd.style.is_package("lib/spack/spack/spec.py")
+ assert not spack.cmd.style.is_package("lib/spack/external/pytest.py")
+
+
+@skip_old_python
+def test_bad_bootstrap(monkeypatch):
+ """Ensure we fail gracefully when we can't bootstrap spack style."""
+ monkeypatch.setattr(spack.cmd.style, "tool_order", [
+ ("isort", "py-isort@4.3:4.0"), # bad spec to force concretization failure
+ ])
+ # zero out path to ensure we don't find isort
+ with pytest.raises(spack.error.SpackError) as e:
+ style(env={"PATH": ""})
+ assert "Couldn't bootstrap isort" in str(e)
+
+
+@pytest.fixture
+def external_style_root(flake8_package_with_errors, tmpdir):
+ """Create a mock git repository for running spack style."""
+ git = which("git", required=True)
+
+ # create a sort-of spack-looking directory
+ script = tmpdir / "bin" / "spack"
+ script.ensure()
+ spack_dir = tmpdir / "lib" / "spack" / "spack"
+ spack_dir.ensure("__init__.py")
+ llnl_dir = tmpdir / "lib" / "spack" / "llnl"
+ llnl_dir.ensure("__init__.py")
+
+ # create a base develop branch
+ with tmpdir.as_cwd():
+ git("init")
+ git("config", "user.name", "test user")
+ git("config", "user.email", "test@user.com")
+ git("add", ".")
+ git("commit", "-m", "initial commit")
+ git("branch", "-m", "develop")
+ git("checkout", "-b", "feature")
+
+ # copy the buggy package in
+ py_file = spack_dir / "dummy.py"
+ py_file.ensure()
+ shutil.copy(flake8_package_with_errors, str(py_file))
+
+ # add the buggy file on the feature branch
+ with tmpdir.as_cwd():
+ git("add", str(py_file))
+ git("commit", "-m", "add new file")
+
+ yield tmpdir, py_file
+
+
+@skip_old_python
+@pytest.mark.skipif(not which("black"), reason="black is not installed.")
+@pytest.mark.skipif(not which("flake8"), reason="flake8 is not installed.")
+def test_fix_style(external_style_root):
+ """Make sure spack style --fix works."""
+ tmpdir, py_file = external_style_root
+
+ broken_dummy = os.path.join(style_data, "broken.dummy")
+ broken_py = str(tmpdir / "lib" / "spack" / "spack" / "broken.py")
+ fixed_py = os.path.join(style_data, "fixed.py")
+
+ shutil.copy(broken_dummy, broken_py)
+ assert not filecmp.cmp(broken_py, fixed_py)
+
+ output = style(
+ "--root", str(tmpdir),
+ "--no-mypy", # mypy doesn't fix, so skip it
+ "--no-flake8", # flake8 doesn't fix, so skip it
+ "--black",
+ "--fix",
+ )
+ print(output)
+ assert filecmp.cmp(broken_py, fixed_py)
+
+
+@skip_old_python
+@pytest.mark.skipif(not which("flake8"), reason="flake8 is not installed.")
+@pytest.mark.skipif(not which("isort"), reason="isort is not installed.")
+@pytest.mark.skipif(not which("mypy"), reason="mypy is not installed.")
+@pytest.mark.skipif(not which("black"), reason="black is not installed.")
+def test_external_root(external_style_root):
+ """Ensure we can run in a separate root directory w/o configuration files."""
+ tmpdir, py_file = external_style_root
+
+ # make sure tools are finding issues with external root,
+ # not the real one.
+ output = style(
+ "--root-relative", "--black", "--root", str(tmpdir),
+ fail_on_error=False
+ )
+
+ # make sure it failed
+ assert style.returncode != 0
+
+ # isort error
+ assert "%s Imports are incorrectly sorted" % str(py_file) in output
+
+ # mypy error
+ assert 'lib/spack/spack/dummy.py:10: error: Name "Package" is not defined' in output
+
+ # black error
+ assert "--- lib/spack/spack/dummy.py" in output
+ assert "+++ lib/spack/spack/dummy.py" in output
+
+ # flake8 error
+ assert "lib/spack/spack/dummy.py:7: [F401] 'os' imported but unused" in output
+
+
+@skip_old_python
+@pytest.mark.skipif(not which("flake8"), reason="flake8 is not installed.")
+def test_style(flake8_package, tmpdir):
+ root_relative = os.path.relpath(flake8_package, spack.paths.prefix)
+
+ # use a working directory to test cwd-relative paths, as tests run in
+ # the spack prefix by default
+ with tmpdir.as_cwd():
+ relative = os.path.relpath(flake8_package)
+
+ # no args
+ output = style()
+ assert relative in output
+ assert "spack style checks were clean" in output
+
+ # one specific arg
+ output = style(flake8_package)
+ assert relative in output
+ assert "spack style checks were clean" in output
+
+ # specific file that isn't changed
+ output = style(__file__)
+ assert relative not in output
+ assert __file__ in output
+ assert "spack style checks were clean" in output
+
+ # root-relative paths
+ output = style("--root-relative", flake8_package)
+ assert root_relative in output
+ assert "spack style checks were clean" in output
+
+
+@skip_old_python
+@pytest.mark.skipif(not which("flake8"), reason="flake8 is not installed.")
+def test_style_with_errors(flake8_package_with_errors):
+ root_relative = os.path.relpath(flake8_package_with_errors, spack.paths.prefix)
+ output = style("--root-relative", flake8_package_with_errors, fail_on_error=False)
+ assert root_relative in output
+ assert style.returncode != 0
+ assert "spack style found errors" in output
+
+
+@skip_old_python
+@pytest.mark.skipif(not which("flake8"), reason="flake8 is not installed.")
+@pytest.mark.skipif(not which("black"), reason="black is not installed.")
+def test_style_with_black(flake8_package_with_errors):
+ output = style("--black", flake8_package_with_errors, fail_on_error=False)
+ assert "black found errors" in output
+ assert style.returncode != 0
+ assert "spack style found errors" in output
diff --git a/lib/spack/spack/test/cmd/test.py b/lib/spack/spack/test/cmd/test.py
index 4163853274..33dd81816b 100644
--- a/lib/spack/spack/test/cmd/test.py
+++ b/lib/spack/spack/test/cmd/test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,10 @@ import os
import pytest
+import spack.cmd.install
import spack.config
import spack.package
-import spack.cmd.install
+from spack.cmd.test import has_test_method
from spack.main import SpackCommand
install = SpackCommand('install')
@@ -181,3 +182,32 @@ def test_test_help_cdash(mock_test_stage):
"""Make sure `spack test --help-cdash` describes CDash arguments"""
out = spack_test('run', '--help-cdash')
assert 'CDash URL' in out
+
+
+def test_test_list_all(mock_packages):
+ """make sure `spack test list --all` returns all packages with tests"""
+ pkgs = spack_test("list", "--all").strip().split()
+ assert set(pkgs) == set([
+ "printing-package",
+ "py-extension1",
+ "py-extension2",
+ "test-error",
+ "test-fail",
+ ])
+
+
+def test_test_list(
+ mock_packages, mock_archive, mock_fetch, install_mockery_mutable_config
+):
+ pkg_with_tests = 'printing-package'
+ install(pkg_with_tests)
+ output = spack_test("list")
+ assert pkg_with_tests in output
+
+
+def test_has_test_method_fails(capsys):
+ with pytest.raises(SystemExit):
+ has_test_method('printing-package')
+
+ captured = capsys.readouterr()[1]
+ assert 'is not a class' in captured
diff --git a/lib/spack/spack/test/cmd/undevelop.py b/lib/spack/spack/test/cmd/undevelop.py
index 2e897e77f3..583c24887a 100644
--- a/lib/spack/spack/test/cmd/undevelop.py
+++ b/lib/spack/spack/test/cmd/undevelop.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import spack.spec
import spack.environment as ev
+import spack.spec
from spack.main import SpackCommand
undevelop = SpackCommand('undevelop')
@@ -39,9 +39,7 @@ env:
assert not after.satisfies('dev_path=*')
-def test_undevelop_nonexistent(
- tmpdir, config, mock_packages, mutable_mock_env_path
-):
+def test_undevelop_nonexistent(tmpdir, config, mock_packages, mutable_mock_env_path):
# setup environment
envdir = tmpdir.mkdir('env')
with envdir.as_cwd():
diff --git a/lib/spack/spack/test/cmd/uninstall.py b/lib/spack/spack/test/cmd/uninstall.py
index a5adcdc74b..a3d26a5860 100644
--- a/lib/spack/spack/test/cmd/uninstall.py
+++ b/lib/spack/spack/test/cmd/uninstall.py
@@ -1,10 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import pytest
+
import llnl.util.tty as tty
+
import spack.store
from spack.main import SpackCommand, SpackCommandError
@@ -42,7 +44,7 @@ def test_recursive_uninstall(mutable_database):
uninstall('-y', '-a', '--dependents', 'callpath')
all_specs = spack.store.layout.all_specs()
- assert len(all_specs) == 8
+ assert len(all_specs) == 9
# query specs with multiple configurations
mpileaks_specs = [s for s in all_specs if s.satisfies('mpileaks')]
callpath_specs = [s for s in all_specs if s.satisfies('callpath')]
@@ -56,7 +58,7 @@ def test_recursive_uninstall(mutable_database):
@pytest.mark.db
@pytest.mark.regression('3690')
@pytest.mark.parametrize('constraint,expected_number_of_specs', [
- ('dyninst', 7), ('libelf', 5)
+ ('dyninst', 8), ('libelf', 6)
])
def test_uninstall_spec_with_multiple_roots(
constraint, expected_number_of_specs, mutable_database
@@ -69,7 +71,7 @@ def test_uninstall_spec_with_multiple_roots(
@pytest.mark.db
@pytest.mark.parametrize('constraint,expected_number_of_specs', [
- ('dyninst', 13), ('libelf', 13)
+ ('dyninst', 14), ('libelf', 14)
])
def test_force_uninstall_spec_with_ref_count_not_zero(
constraint, expected_number_of_specs, mutable_database
@@ -141,7 +143,8 @@ def test_force_uninstall_and_reinstall_by_hash(mutable_database):
[s for s in all_specs if s.satisfies('mpi')]
)
all_specs, mpileaks_specs, callpath_specs, mpi_specs = db_specs()
- assert len(all_specs) == 13
+ total_specs = len(all_specs)
+ assert total_specs == 14
assert len(mpileaks_specs) == 3
assert len(callpath_specs) == 2
assert len(mpi_specs) == 3
@@ -152,7 +155,7 @@ def test_force_uninstall_and_reinstall_by_hash(mutable_database):
validate_callpath_spec(True)
all_specs, mpileaks_specs, callpath_specs, mpi_specs = db_specs()
- assert len(all_specs) == 14 # back to 14
+ assert len(all_specs) == total_specs + 1 # back to total_specs+1
assert len(mpileaks_specs) == 3
assert len(callpath_specs) == 3 # back to 3
assert len(mpi_specs) == 3
diff --git a/lib/spack/spack/test/cmd/unit_test.py b/lib/spack/spack/test/cmd/unit_test.py
index c5b8eb765e..1a273ff244 100644
--- a/lib/spack/spack/test/cmd/unit_test.py
+++ b/lib/spack/spack/test/cmd/unit_test.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/cmd/url.py b/lib/spack/spack/test/cmd/url.py
index 2350fc5fdb..f9179720b1 100644
--- a/lib/spack/spack/test/cmd/url.py
+++ b/lib/spack/spack/test/cmd/url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,9 @@ import sys
import pytest
import spack.repo
-from spack.url import UndetectableVersionError
+from spack.cmd.url import name_parsed_correctly, url_summary, version_parsed_correctly
from spack.main import SpackCommand
-from spack.cmd.url import name_parsed_correctly, version_parsed_correctly
-from spack.cmd.url import url_summary
-
+from spack.url import UndetectableVersionError
url = SpackCommand('url')
@@ -71,13 +69,15 @@ def test_url_with_no_version_fails():
url('parse', 'http://www.netlib.org/voronoi/triangle.zip')
-@pytest.mark.network
-@pytest.mark.skipif(
+skip_python_26 = pytest.mark.skipif(
sys.version_info < (2, 7),
reason="Python 2.6 tests are run in a container, where "
"networking is super slow"
)
-def test_url_list():
+
+
+@skip_python_26
+def test_url_list(mock_packages):
out = url('list')
total_urls = len(out.split('\n'))
@@ -106,13 +106,8 @@ def test_url_list():
assert 0 < correct_version_urls < total_urls
-@pytest.mark.network
-@pytest.mark.skipif(
- sys.version_info < (2, 7),
- reason="Python 2.6 tests are run in a container, where "
- "networking is super slow"
-)
-def test_url_summary():
+@skip_python_26
+def test_url_summary(mock_packages):
"""Test the URL summary command."""
# test url_summary, the internal function that does the work
(total_urls, correct_names, correct_versions,
@@ -138,12 +133,8 @@ def test_url_summary():
assert out_correct_versions == correct_versions
-@pytest.mark.skipif(
- sys.version_info < (2, 7),
- reason="Python 2.6 tests are run in a container, where "
- "networking is super slow"
-)
-def test_url_stats(capfd):
+@skip_python_26
+def test_url_stats(capfd, mock_packages):
with capfd.disabled():
output = url('stats')
npkgs = '%d packages' % len(spack.repo.all_package_names())
@@ -153,3 +144,20 @@ def test_url_stats(capfd):
assert 'schemes' in output
assert 'versions' in output
assert 'resources' in output
+
+ output = url('stats', '--show-issues')
+ npkgs = '%d packages' % len(spack.repo.all_package_names())
+ assert npkgs in output
+ assert 'url' in output
+ assert 'git' in output
+ assert 'schemes' in output
+ assert 'versions' in output
+ assert 'resources' in output
+
+ assert 'Package URLs with md5 hashes' in output
+ assert 'needs-relocation' in output
+ assert 'https://cmake.org/files/v3.4/cmake-0.0.0.tar.gz' in output
+
+ assert 'Package URLs with http urls' in output
+ assert 'zmpi' in output
+ assert 'http://www.spack-fake-zmpi.org/downloads/zmpi-1.0.tar.gz' in output
diff --git a/lib/spack/spack/test/cmd/verify.py b/lib/spack/spack/test/cmd/verify.py
index dda992fe49..a72bfe85df 100644
--- a/lib/spack/spack/test/cmd/verify.py
+++ b/lib/spack/spack/test/cmd/verify.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,10 +8,10 @@ import os
import llnl.util.filesystem as fs
-import spack.util.spack_json as sjson
-import spack.verify
import spack.spec
import spack.store
+import spack.util.spack_json as sjson
+import spack.verify
from spack.main import SpackCommand
verify = SpackCommand('verify')
diff --git a/lib/spack/spack/test/cmd/versions.py b/lib/spack/spack/test/cmd/versions.py
index 1e2bcbedb3..97f1745085 100644
--- a/lib/spack/spack/test/cmd/versions.py
+++ b/lib/spack/spack/test/cmd/versions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,45 +6,88 @@
import pytest
from spack.main import SpackCommand
+from spack.version import Version
versions = SpackCommand('versions')
+def test_safe_only_versions():
+ """Only test the safe versions of a package.
+ (Using the deprecated command line argument)
+ """
+ versions('--safe-only', 'zlib')
+
+
def test_safe_versions():
"""Only test the safe versions of a package."""
- versions('--safe-only', 'zlib')
+ versions('--safe', 'zlib')
-@pytest.mark.network
+@pytest.mark.maybeslow
def test_remote_versions():
"""Test a package for which remote versions should be available."""
versions('zlib')
-@pytest.mark.network
+@pytest.mark.maybeslow
+def test_remote_versions_only():
+ """Test a package for which remote versions should be available."""
+
+ versions('--remote', 'zlib')
+
+
+@pytest.mark.usefixtures('mock_packages')
+def test_new_versions_only(monkeypatch):
+ """Test a package for which new versions should be available."""
+ from spack.pkg.builtin.mock.brillig import Brillig
+
+ def mock_fetch_remote_versions(*args, **kwargs):
+ mock_remote_versions = {
+ # new version, we expect this to be in output:
+ Version('99.99.99'): {},
+ # some packages use '3.2' equivalently to '3.2.0'
+ # thus '3.2.1' is considered to be a new version
+ # and expected in the output also
+ Version('3.2.1'): {}, # new version, we expect this to be in output
+ Version('3.2'): {},
+ Version('1.0.0'): {},
+ }
+ return mock_remote_versions
+ mock_versions = {
+ # already checksummed versions:
+ Version('3.2'): {},
+ Version('1.0.0'): {},
+ }
+ monkeypatch.setattr(Brillig, 'versions', mock_versions)
+ monkeypatch.setattr(Brillig, 'fetch_remote_versions', mock_fetch_remote_versions)
+ v = versions('--new', 'brillig')
+ assert(v.strip(' \n\t') == "99.99.99\n 3.2.1")
+
+
+@pytest.mark.maybeslow
def test_no_versions():
"""Test a package for which no remote versions are available."""
versions('converge')
-@pytest.mark.network
+@pytest.mark.maybeslow
def test_no_unchecksummed_versions():
"""Test a package for which no unchecksummed versions are available."""
versions('bzip2')
-@pytest.mark.network
+@pytest.mark.maybeslow
def test_versions_no_url():
"""Test a package with versions but without a ``url`` attribute."""
versions('graphviz')
-@pytest.mark.network
+@pytest.mark.maybeslow
def test_no_versions_no_url():
"""Test a package without versions or a ``url`` attribute."""
diff --git a/lib/spack/spack/test/cmd/view.py b/lib/spack/spack/test/cmd/view.py
index 4ff1592035..594a182901 100644
--- a/lib/spack/spack/test/cmd/view.py
+++ b/lib/spack/spack/test/cmd/view.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.main import SpackCommand
import os.path
+
import pytest
import spack.util.spack_yaml as s_yaml
+from spack.main import SpackCommand
activate = SpackCommand('activate')
extensions = SpackCommand('extensions')
diff --git a/lib/spack/spack/test/cmd_extensions.py b/lib/spack/spack/test/cmd_extensions.py
index cb16609278..18a231817e 100644
--- a/lib/spack/spack/test/cmd_extensions.py
+++ b/lib/spack/spack/test/cmd_extensions.py
@@ -1,14 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
-
import contextlib
import os
import sys
+import pytest
+
import spack.cmd
import spack.config
import spack.extensions
diff --git a/lib/spack/spack/test/compilers/__init__.py b/lib/spack/spack/test/compilers/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/test/compilers/__init__.py
+++ b/lib/spack/spack/test/compilers/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/compilers/basics.py b/lib/spack/spack/test/compilers/basics.py
index 78d8484b3b..9ad574ada9 100644
--- a/lib/spack/spack/test/compilers/basics.py
+++ b/lib/spack/spack/test/compilers/basics.py
@@ -1,25 +1,22 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
"""Test basic behavior of compilers in Spack"""
-import pytest
-
-import sys
import os
import shutil
-
+import sys
from copy import copy
+
+import pytest
from six import iteritems
import llnl.util.filesystem as fs
-import spack.spec
import spack.compiler
import spack.compilers as compilers
import spack.spec
import spack.util.environment
-
from spack.compiler import Compiler
from spack.util.executable import ProcessError
@@ -389,6 +386,7 @@ def test_cce_flags():
supported_flag_test("cxx_pic_flag", "-fPIC", "cce@9.1.0")
supported_flag_test("f77_pic_flag", "-fPIC", "cce@9.1.0")
supported_flag_test("fc_pic_flag", "-fPIC", "cce@9.1.0")
+ supported_flag_test("stdcxx_libs", (), "cce@1.0")
supported_flag_test("debug_flags", ['-g', '-G0', '-G1', '-G2', '-Gfast'],
'cce@1.0')
@@ -453,6 +451,8 @@ def test_aocc_flags():
'-Os', '-Oz', '-Og',
'-O', '-O4'],
'aocc@2.2.0')
+
+ supported_flag_test("stdcxx_libs", ("-lstdc++",), "aocc@2.2.0")
supported_flag_test("openmp_flag", "-fopenmp", "aocc@2.2.0")
supported_flag_test("cxx11_flag", "-std=c++11", "aocc@2.2.0")
supported_flag_test("cxx14_flag", "-std=c++14", "aocc@2.2.0")
@@ -464,6 +464,10 @@ def test_aocc_flags():
supported_flag_test("f77_pic_flag", "-fPIC", "aocc@2.2.0")
supported_flag_test("fc_pic_flag", "-fPIC", "aocc@2.2.0")
supported_flag_test("version_argument", "--version", "aocc@2.2.0")
+ flg = "-Wno-unused-command-line-argument -mllvm -eliminate-similar-expr=false"
+ supported_flag_test("cflags", flg, "aocc@3.0.0")
+ supported_flag_test("cxxflags", flg, "aocc@3.0.0")
+ supported_flag_test("fflags", flg, "aocc@3.0.0")
def test_fj_flags():
@@ -471,14 +475,16 @@ def test_fj_flags():
supported_flag_test("cxx98_flag", "-std=c++98", "fj@4.0.0")
supported_flag_test("cxx11_flag", "-std=c++11", "fj@4.0.0")
supported_flag_test("cxx14_flag", "-std=c++14", "fj@4.0.0")
+ supported_flag_test("cxx17_flag", "-std=c++17", "fj@4.0.0")
supported_flag_test("c99_flag", "-std=c99", "fj@4.0.0")
supported_flag_test("c11_flag", "-std=c11", "fj@4.0.0")
supported_flag_test("cc_pic_flag", "-KPIC", "fj@4.0.0")
supported_flag_test("cxx_pic_flag", "-KPIC", "fj@4.0.0")
supported_flag_test("f77_pic_flag", "-KPIC", "fj@4.0.0")
supported_flag_test("fc_pic_flag", "-KPIC", "fj@4.0.0")
- supported_flag_test("opt_flags", ['-O', '-O0', '-O1', '-O2', '-O3', '-O4'],
+ supported_flag_test("opt_flags", ['-O0', '-O1', '-O2', '-O3', '-Ofast'],
'fj@4.0.0')
+ supported_flag_test("debug_flags", "-g", "fj@4.0.0")
def test_gcc_flags():
@@ -541,7 +547,7 @@ def test_intel_flags():
def test_oneapi_flags():
- supported_flag_test("openmp_flag", "-qopenmp", "oneapi@2020.8.0.0827")
+ supported_flag_test("openmp_flag", "-fiopenmp", "oneapi@2020.8.0.0827")
supported_flag_test("cxx11_flag", "-std=c++11", "oneapi@2020.8.0.0827")
supported_flag_test("cxx14_flag", "-std=c++14", "oneapi@2020.8.0.0827")
supported_flag_test("c99_flag", "-std=c99", "oneapi@2020.8.0.0827")
@@ -604,6 +610,7 @@ def test_pgi_flags():
supported_flag_test("cxx_pic_flag", "-fpic", "pgi@1.0")
supported_flag_test("f77_pic_flag", "-fpic", "pgi@1.0")
supported_flag_test("fc_pic_flag", "-fpic", "pgi@1.0")
+ supported_flag_test("stdcxx_libs", ("-pgc++libs",), "pgi@1.0")
supported_flag_test("debug_flags", ['-g', '-gopt'], 'pgi@1.0')
supported_flag_test("opt_flags", ['-O', '-O0', '-O1', '-O2', '-O3', '-O4'],
'pgi@1.0')
diff --git a/lib/spack/spack/test/compilers/detection.py b/lib/spack/spack/test/compilers/detection.py
index 4652500b5d..06095c4bf4 100644
--- a/lib/spack/spack/test/compilers/detection.py
+++ b/lib/spack/spack/test/compilers/detection.py
@@ -1,29 +1,29 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
"""Test detection of compiler version"""
-import pytest
import os
+import pytest
+
import llnl.util.filesystem as fs
+import spack.compilers.aocc
import spack.compilers.arm
import spack.compilers.cce
import spack.compilers.clang
import spack.compilers.fj
import spack.compilers.gcc
import spack.compilers.intel
-import spack.compilers.oneapi
import spack.compilers.nag
import spack.compilers.nvhpc
+import spack.compilers.oneapi
import spack.compilers.pgi
import spack.compilers.xl
import spack.compilers.xl_r
-import spack.compilers.aocc
-
-from spack.operating_systems.cray_frontend import CrayFrontend
import spack.util.module_cmd
+from spack.operating_systems.cray_frontend import CrayFrontend
@pytest.mark.parametrize('version_str,expected_version', [
@@ -157,17 +157,41 @@ def test_intel_version_detection(version_str, expected_version):
@pytest.mark.parametrize('version_str,expected_version', [
( # ICX/ICPX
- 'Intel(R) oneAPI DPC++ Compiler 2021.1 (2020.10.0.1113)\n'
+ 'Intel(R) oneAPI DPC++ Compiler 2021.1.2 (2020.10.0.1214)\n'
+ 'Target: x86_64-unknown-linux-gnu\n'
+ 'Thread model: posix\n'
+ 'InstalledDir: /made/up/path',
+ '2021.1.2'
+ ),
+ ( # ICX/ICPX
+ 'Intel(R) oneAPI DPC++ Compiler 2021.2.0 (2021.2.0.20210317)\n'
'Target: x86_64-unknown-linux-gnu\n'
'Thread model: posix\n'
'InstalledDir: /made/up/path',
- '2021.1'
+ '2021.2.0'
+ ),
+ ( # ICX/ICPX
+ 'Intel(R) oneAPI DPC++/C++ Compiler 2021.3.0 (2021.3.0.20210619)\n'
+ 'Target: x86_64-unknown-linux-gnu\n'
+ 'Thread model: posix\n'
+ 'InstalledDir: /made/up/path',
+ '2021.3.0'
),
( # IFX
- 'ifx (IFORT) 2021.1 Beta 20201113\n'
+ 'ifx (IFORT) 2021.1.2 Beta 20201214\n'
'Copyright (C) 1985-2020 Intel Corporation. All rights reserved.',
- '2021.1'
- )
+ '2021.1.2'
+ ),
+ ( # IFX
+ 'ifx (IFORT) 2021.2.0 Beta 20210317\n'
+ 'Copyright (C) 1985-2020 Intel Corporation. All rights reserved.',
+ '2021.2.0'
+ ),
+ ( # IFX
+ 'ifx (IFORT) 2021.3.0 Beta 20210619\n'
+ 'Copyright (C) 1985-2020 Intel Corporation. All rights reserved.',
+ '2021.3.0'
+ ),
])
def test_oneapi_version_detection(version_str, expected_version):
version = spack.compilers.oneapi.Oneapi.extract_version_from_output(
@@ -321,6 +345,21 @@ def test_cray_frontend_compiler_detection(
@pytest.mark.parametrize('version_str,expected_version', [
# This applies to C,C++ and FORTRAN compiler
+ ('AMD clang version 12.0.0 (CLANG: AOCC_3_1_0-Build#126 2021_06_07)'
+ '(based on LLVM Mirror.Version.12.0.0)\n'
+ 'Target: x86_64-unknown-linux-gnu\n'
+ 'Thread model: posix\n', '3.1.0'
+ ),
+ ('AMD clang version 12.0.0 (CLANG: AOCC_3.0.0-Build#78 2020_12_10)'
+ '(based on LLVM Mirror.Version.12.0.0)\n'
+ 'Target: x86_64-unknown-linux-gnu\n'
+ 'Thread model: posix\n', '3.0.0'
+ ),
+ ('AMD clang version 11.0.0 (CLANG: AOCC_2.3.0-Build#85 2020_11_10)'
+ '(based on LLVM Mirror.Version.11.0.0)\n'
+ 'Target: x86_64-unknown-linux-gnu\n'
+ 'Thread model: posix\n', '2.3.0'
+ ),
('AMD clang version 10.0.0 (CLANG: AOCC_2.2.0-Build#93 2020_06_25)'
'(based on LLVM Mirror.Version.10.0.0)\n'
'Target: x86_64-unknown-linux-gnu\n'
diff --git a/lib/spack/spack/test/concretize.py b/lib/spack/spack/test/concretize.py
index 6f87381e3f..b7ae5dd926 100644
--- a/lib/spack/spack/test/concretize.py
+++ b/lib/spack/spack/test/concretize.py
@@ -1,27 +1,26 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import sys
-import pytest
import jinja2
+import pytest
import archspec.cpu
import llnl.util.lang
import spack.architecture
+import spack.compilers
import spack.concretize
import spack.error
+import spack.platforms
import spack.repo
-
from spack.concretize import find_spec
from spack.spec import Spec
-from spack.version import ver
from spack.util.mock_package import MockPackageMultiRepo
-import spack.compilers
-import spack.platforms.test
+from spack.version import ver
def check_spec(abstract, concrete):
@@ -99,11 +98,8 @@ def current_host(request, monkeypatch):
cpu, _, is_preference = request.param.partition('-')
target = archspec.cpu.TARGETS[cpu]
- # this function is memoized, so clear its state for testing
- spack.architecture.get_platform.cache.clear()
-
- monkeypatch.setattr(spack.platforms.test.Test, 'default', cpu)
- monkeypatch.setattr(spack.platforms.test.Test, 'front_end', cpu)
+ monkeypatch.setattr(spack.platforms.Test, 'default', cpu)
+ monkeypatch.setattr(spack.platforms.Test, 'front_end', cpu)
if not is_preference:
monkeypatch.setattr(archspec.cpu, 'host', lambda: target)
yield target
@@ -111,9 +107,6 @@ def current_host(request, monkeypatch):
with spack.config.override('packages:all', {'target': [cpu]}):
yield target
- # clear any test values fetched
- spack.architecture.get_platform.cache.clear()
-
@pytest.fixture()
def repo_with_changing_recipe(tmpdir_factory, mutable_mock_repo):
@@ -660,8 +653,7 @@ class TestConcretize(object):
abstract_specs = [Spec(x) for x in abstract_specs]
concrete_specs = spack.concretize.concretize_specs_together(
- *abstract_specs
- )
+ *abstract_specs)
# Check there's only one configuration of each package in the DAG
names = set(
@@ -690,7 +682,7 @@ class TestConcretize(object):
# Include targets to prevent regression on 20537
@pytest.mark.parametrize('spec, best_achievable', [
- ('mpileaks%gcc@4.4.7 target=x86_64:', 'core2'),
+ ('mpileaks%gcc@4.4.7 ^dyninst@10.2.1 target=x86_64:', 'core2'),
('mpileaks%gcc@4.8 target=x86_64:', 'haswell'),
('mpileaks%gcc@5.3.0 target=x86_64:', 'broadwell'),
('mpileaks%apple-clang@5.1.0 target=x86_64:', 'x86_64')
@@ -925,6 +917,35 @@ class TestConcretize(object):
assert s.external
assert s.satisfies(expected)
+ @pytest.mark.regression('20976')
+ @pytest.mark.parametrize('compiler,spec_str,expected,xfailold', [
+ ('gcc', 'external-common-python %clang',
+ '%clang ^external-common-openssl%gcc ^external-common-gdbm%clang', False),
+ ('clang', 'external-common-python',
+ '%clang ^external-common-openssl%clang ^external-common-gdbm%clang', True)
+ ])
+ def test_compiler_in_nonbuildable_external_package(
+ self, compiler, spec_str, expected, xfailold
+ ):
+ """Check that the compiler of a non-buildable external package does not
+ spread to other dependencies, unless no other commpiler is specified."""
+ packages_yaml = {
+ 'external-common-openssl': {
+ 'externals': [
+ {'spec': 'external-common-openssl@1.1.1i%' + compiler,
+ 'prefix': '/usr'}
+ ],
+ 'buildable': False
+ }
+ }
+ spack.config.set('packages', packages_yaml)
+
+ s = Spec(spec_str).concretized()
+ if xfailold and spack.config.get('config:concretizer') == 'original':
+ pytest.xfail('This only works on the ASP-based concretizer')
+ assert s.satisfies(expected)
+ assert 'external-common-perl' not in [d.name for d in s.dependencies()]
+
def test_external_packages_have_consistent_hash(self):
if spack.config.get('config:concretizer') == 'original':
pytest.skip('This tests needs the ASP-based concretizer')
@@ -1182,3 +1203,68 @@ class TestConcretize(object):
for node in s.traverse():
assert node.satisfies(expected_compiler)
+
+ @pytest.mark.parametrize('spec_str,expected_dict', [
+ # Check the defaults from the package (libs=shared)
+ ('multivalue-variant', {
+ 'libs=shared': True,
+ 'libs=static': False
+ }),
+ # Check that libs=static doesn't extend the default
+ ('multivalue-variant libs=static', {
+ 'libs=shared': False,
+ 'libs=static': True
+ }),
+ ])
+ def test_multivalued_variants_from_cli(self, spec_str, expected_dict):
+ s = Spec(spec_str).concretized()
+
+ for constraint, value in expected_dict.items():
+ assert s.satisfies(constraint) == value
+
+ @pytest.mark.regression('22351')
+ @pytest.mark.parametrize('spec_str,expected', [
+ # Version 1.1.0 is deprecated and should not be selected, unless we
+ # explicitly asked for that
+ ('deprecated-versions', ['deprecated-versions@1.0.0']),
+ ('deprecated-versions@1.1.0', ['deprecated-versions@1.1.0']),
+ ])
+ def test_deprecated_versions_not_selected(self, spec_str, expected):
+ if spack.config.get('config:concretizer') == 'original':
+ pytest.xfail('Known failure of the original concretizer')
+
+ s = Spec(spec_str).concretized()
+
+ for abstract_spec in expected:
+ assert abstract_spec in s
+
+ @pytest.mark.regression('24196')
+ def test_version_badness_more_important_than_default_mv_variants(self):
+ # If a dependency had an old version that for some reason pulls in
+ # a transitive dependency with a multi-valued variant, that old
+ # version was preferred because of the order of our optimization
+ # criteria.
+ s = spack.spec.Spec('root').concretized()
+ assert s['gmt'].satisfies('@2.0')
+
+ @pytest.mark.regression('24205')
+ def test_provider_must_meet_requirements(self):
+ # A package can be a provider of a virtual only if the underlying
+ # requirements are met.
+ s = spack.spec.Spec('unsat-virtual-dependency')
+ with pytest.raises((RuntimeError, spack.error.UnsatisfiableSpecError)):
+ s.concretize()
+
+ @pytest.mark.regression('23951')
+ def test_newer_dependency_adds_a_transitive_virtual(self):
+ # Ensure that a package doesn't concretize any of its transitive
+ # dependencies to an old version because newer versions pull in
+ # a new virtual dependency. The possible concretizations here are:
+ #
+ # root@1.0 <- middle@1.0 <- leaf@2.0 <- blas
+ # root@1.0 <- middle@1.0 <- leaf@1.0
+ #
+ # and "blas" is pulled in only by newer versions of "leaf"
+ s = spack.spec.Spec('root-adds-virtual').concretized()
+ assert s['leaf-adds-virtual'].satisfies('@2.0')
+ assert 'blas' in s
diff --git a/lib/spack/spack/test/concretize_preferences.py b/lib/spack/spack/test/concretize_preferences.py
index 9abac7221d..598e9d08fb 100644
--- a/lib/spack/spack/test/concretize_preferences.py
+++ b/lib/spack/spack/test/concretize_preferences.py
@@ -1,16 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
import stat
+import pytest
+
import spack.config
import spack.package_prefs
import spack.repo
import spack.util.spack_yaml as syaml
-from spack.config import ConfigScope, ConfigError
+from spack.config import ConfigError, ConfigScope
from spack.spec import Spec
from spack.version import Version
@@ -383,3 +384,15 @@ mpi:
assert '~external' in s['vdefault-or-external']
assert 'externaltool' not in s
+
+ @pytest.mark.regression('25585')
+ def test_dependencies_cant_make_version_parent_score_better(self):
+ """Test that a package can't select a worse version for a
+ dependent because doing so it can pull-in a dependency
+ that makes the overall version score even or better and maybe
+ has a better score in some lower priority criteria.
+ """
+ s = Spec('version-test-root').concretized()
+
+ assert s.satisfies('^version-test-pkg@2.4.6')
+ assert 'version-test-dependency-preferred' not in s
diff --git a/lib/spack/spack/test/config.py b/lib/spack/spack/test/config.py
index 9384eb5b47..704e9994ed 100644
--- a/lib/spack/spack/test/config.py
+++ b/lib/spack/spack/test/config.py
@@ -1,30 +1,30 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os
import collections
import getpass
+import os
import tempfile
-from six import StringIO
-
-from llnl.util.filesystem import touch, mkdirp
import pytest
+from six import StringIO
+
+from llnl.util.filesystem import mkdirp, touch
-import spack.paths
import spack.config
+import spack.environment as ev
import spack.main
+import spack.paths
import spack.schema.compilers
import spack.schema.config
import spack.schema.env
-import spack.schema.packages
import spack.schema.mirrors
+import spack.schema.packages
import spack.schema.repos
-import spack.util.spack_yaml as syaml
import spack.util.path as spack_path
-
+import spack.util.spack_yaml as syaml
# sample config data
config_low = {
@@ -276,6 +276,37 @@ def test_write_to_same_priority_file(mock_low_high_config, compiler_specs):
repos_low = {'repos': ["/some/path"]}
repos_high = {'repos': ["/some/other/path"]}
+# Test setting config values via path in filename
+
+
+def test_add_config_path():
+
+ # Try setting a new install tree root
+ path = "config:install_tree:root:/path/to/config.yaml"
+ spack.config.add(path, scope="command_line")
+ set_value = spack.config.get('config')['install_tree']['root']
+ assert set_value == '/path/to/config.yaml'
+
+ # Now a package:all setting
+ path = "packages:all:compiler:[gcc]"
+ spack.config.add(path, scope="command_line")
+ compilers = spack.config.get('packages')['all']['compiler']
+ assert "gcc" in compilers
+
+
+def test_add_config_filename(mock_low_high_config, tmpdir):
+
+ config_yaml = tmpdir.join('config-filename.yaml')
+ config_yaml.ensure()
+ with config_yaml.open('w') as f:
+ syaml.dump_config(config_low, f)
+
+ spack.config.add_from_file(str(config_yaml), scope="low")
+ assert "build_stage" in spack.config.get('config')
+ build_stages = spack.config.get('config')['build_stage']
+ for stage in config_low['config']['build_stage']:
+ assert stage in build_stages
+
# repos
def test_write_list_in_memory(mock_low_high_config):
@@ -286,7 +317,12 @@ def test_write_list_in_memory(mock_low_high_config):
assert config == repos_high['repos'] + repos_low['repos']
-def test_substitute_config_variables(mock_low_high_config):
+class MockEnv(object):
+ def __init__(self, path):
+ self.path = path
+
+
+def test_substitute_config_variables(mock_low_high_config, monkeypatch):
prefix = spack.paths.prefix.lstrip('/')
assert os.path.join(
@@ -317,6 +353,33 @@ def test_substitute_config_variables(mock_low_high_config):
'/foo/bar/baz', prefix, 'foo/bar/baz'
) != spack_path.canonicalize_path('/foo/bar/baz/${spack/foo/bar/baz/')
+ # $env replacement is a no-op when no environment is active
+ assert spack_path.canonicalize_path(
+ '/foo/bar/baz/$env'
+ ) == '/foo/bar/baz/$env'
+
+ # Fake an active environment and $env is replaced properly
+ fake_env_path = '/quux/quuux'
+ monkeypatch.setattr(ev, 'active_environment',
+ lambda: MockEnv(fake_env_path))
+ assert spack_path.canonicalize_path(
+ '$env/foo/bar/baz'
+ ) == os.path.join(fake_env_path, 'foo/bar/baz')
+
+ # relative paths without source information are relative to cwd
+ assert spack_path.canonicalize_path(
+ 'foo/bar/baz'
+ ) == os.path.abspath('foo/bar/baz')
+
+ # relative paths with source information are relative to the file
+ spack.config.set(
+ 'modules:default', {'roots': {'lmod': 'foo/bar/baz'}}, scope='low')
+ spack.config.config.clear_caches()
+ path = spack.config.get('modules:default:roots:lmod')
+ assert spack_path.canonicalize_path(path) == os.path.normpath(
+ os.path.join(mock_low_high_config.scopes['low'].path,
+ 'foo/bar/baz'))
+
packages_merge_low = {
'packages': {
@@ -444,6 +507,20 @@ def test_read_config_override_all(mock_low_high_config, write_config_file):
}
+@pytest.mark.regression('23663')
+def test_read_with_default(mock_low_high_config):
+ # this very synthetic example ensures that config.get(path, default)
+ # returns default if any element of path doesn't exist, regardless
+ # of the type of default.
+ spack.config.set('modules', {'enable': []})
+
+ default_conf = spack.config.get('modules:default', 'default')
+ assert default_conf == 'default'
+
+ default_enable = spack.config.get('modules:default:enable', [])
+ assert default_enable == []
+
+
def test_read_config_override_key(mock_low_high_config, write_config_file):
write_config_file('config', config_low, 'low')
write_config_file('config', config_override_key, 'high')
@@ -923,8 +1000,9 @@ def test_bad_config_yaml(tmpdir):
check_schema(spack.schema.config.schema, """\
config:
verify_ssl: False
- module_roots:
- fmod: /some/fake/location
+ install_tree:
+ root:
+ extra_level: foo
""")
diff --git a/lib/spack/spack/test/config_values.py b/lib/spack/spack/test/config_values.py
index a0bf7e52f8..4933c5b95f 100644
--- a/lib/spack/spack/test/config_values.py
+++ b/lib/spack/spack/test/config_values.py
@@ -1,37 +1,31 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import pytest
import spack.spec
+import spack.store
-def test_set_install_hash_length(mock_packages, mutable_config, monkeypatch,
- tmpdir):
- # spack.store.layout caches initial config values, so we monkeypatch
- mutable_config.set('config:install_hash_length', 5)
+@pytest.mark.parametrize('hash_length', [1, 2, 3, 4, 5, 9])
+@pytest.mark.usefixtures('mock_packages')
+def test_set_install_hash_length(hash_length, mutable_config, tmpdir):
+ mutable_config.set('config:install_hash_length', hash_length)
mutable_config.set('config:install_tree', {'root': str(tmpdir)})
- monkeypatch.setattr(spack.store, 'store', spack.store._store())
-
- spec = spack.spec.Spec('libelf').concretized()
- prefix = spec.prefix
- hash = prefix.rsplit('-')[-1]
-
- assert len(hash) == 5
-
- mutable_config.set('config:install_hash_length', 9)
- monkeypatch.setattr(spack.store, 'store', spack.store._store())
-
- spec = spack.spec.Spec('libelf').concretized()
- prefix = spec.prefix
- hash = prefix.rsplit('-')[-1]
-
- assert len(hash) == 9
-
-
-def test_set_install_hash_length_upper_case(mock_packages, mutable_config,
- monkeypatch, tmpdir):
- # spack.store.layout caches initial config values, so we monkeypatch
+ # The call below is to reinitialize the directory layout associated
+ # with the store according to the configuration changes above (i.e.
+ # with the shortened hash)
+ store = spack.store._store()
+ with spack.store.use_store(store):
+ spec = spack.spec.Spec('libelf').concretized()
+ prefix = spec.prefix
+ hash_str = prefix.rsplit('-')[-1]
+ assert len(hash_str) == hash_length
+
+
+@pytest.mark.usefixtures('mock_packages')
+def test_set_install_hash_length_upper_case(mutable_config, tmpdir):
mutable_config.set('config:install_hash_length', 5)
mutable_config.set(
'config:install_tree',
@@ -42,10 +36,12 @@ def test_set_install_hash_length_upper_case(mock_packages, mutable_config,
}
}
)
- monkeypatch.setattr(spack.store, 'store', spack.store._store())
-
- spec = spack.spec.Spec('libelf').concretized()
- prefix = spec.prefix
- hash = prefix.rsplit('-')[-1]
-
- assert len(hash) == 5
+ # The call below is to reinitialize the directory layout associated
+ # with the store according to the configuration changes above (i.e.
+ # with the shortened hash and projection)
+ store = spack.store._store()
+ with spack.store.use_store(store):
+ spec = spack.spec.Spec('libelf').concretized()
+ prefix = spec.prefix
+ hash_str = prefix.rsplit('-')[-1]
+ assert len(hash_str) == 5
diff --git a/lib/spack/spack/test/conftest.py b/lib/spack/spack/test/conftest.py
index 297ae0d4f2..7ef3429383 100644
--- a/lib/spack/spack/test/conftest.py
+++ b/lib/spack/spack/test/conftest.py
@@ -4,12 +4,14 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import collections
+import datetime
import errno
import inspect
import itertools
import json
import os
import os.path
+import re
import shutil
import tempfile
import xml.etree.ElementTree
@@ -19,30 +21,141 @@ import pytest
import archspec.cpu.microarchitecture
import archspec.cpu.schema
-from llnl.util.filesystem import mkdirp, remove_linked_tree
+
+from llnl.util.filesystem import mkdirp, remove_linked_tree, working_dir
import spack.architecture
+import spack.binary_distribution
+import spack.caches
import spack.compilers
import spack.config
-import spack.caches
import spack.database
import spack.directory_layout
import spack.environment as ev
import spack.package
import spack.package_prefs
import spack.paths
-import spack.platforms.test
+import spack.platforms
import spack.repo
import spack.stage
import spack.store
+import spack.subprocess_context
import spack.util.executable
import spack.util.gpg
-import spack.subprocess_context
import spack.util.spack_yaml as syaml
-
+from spack.fetch_strategy import FetchError, FetchStrategyComposite, URLFetchStrategy
from spack.util.pattern import Bunch
-from spack.fetch_strategy import FetchStrategyComposite, URLFetchStrategy
-from spack.fetch_strategy import FetchError
+
+
+#
+# Return list of shas for latest two git commits in local spack repo
+#
+@pytest.fixture
+def last_two_git_commits(scope='session'):
+ git = spack.util.executable.which('git', required=True)
+ spack_git_path = spack.paths.prefix
+ with working_dir(spack_git_path):
+ git_log_out = git('log', '-n', '2', output=str, error=os.devnull)
+
+ regex = re.compile(r"^commit\s([^\s]+$)", re.MULTILINE)
+ yield regex.findall(git_log_out)
+
+
+def write_file(filename, contents):
+ with open(filename, 'w') as f:
+ f.write(contents)
+
+
+commit_counter = 0
+
+
+@pytest.fixture
+def mock_git_version_info(tmpdir, scope="function"):
+ """Create a mock git repo with known structure
+
+ The structure of commits in this repo is as follows::
+
+ | o fourth 1.x commit (1.2)
+ | o third 1.x commit
+ | |
+ o | fourth main commit (v2.0)
+ o | third main commit
+ | |
+ | o second 1.x commit (v1.1)
+ | o first 1.x commit
+ | /
+ |/
+ o second commit (v1.0)
+ o first commit
+
+ The repo consists of a single file, in which the Version._cmp representation
+ of each commit is expressed as a string.
+
+ Important attributes of the repo for test coverage are: multiple branches,
+ version tags on multiple branches, and version order is not equal to time
+ order or topological order.
+ """
+ git = spack.util.executable.which('git', required=True)
+ repo_path = str(tmpdir.mkdir('git_repo'))
+ filename = 'file.txt'
+
+ def commit(message):
+ global commit_counter
+ git('commit', '--date', '2020-01-%02d 12:0:00 +0300' % commit_counter,
+ '-am', message)
+ commit_counter += 1
+
+ with working_dir(repo_path):
+ git("init")
+
+ git('config', 'user.name', 'Spack')
+ git('config', 'user.email', 'spack@spack.io')
+
+ # Add two commits on main branch
+ write_file(filename, '[]')
+ git('add', filename)
+ commit('first commit')
+
+ # Get name of default branch (differs by git version)
+ main = git('rev-parse', '--abbrev-ref', 'HEAD', output=str, error=str).strip()
+
+ # Tag second commit as v1.0
+ write_file(filename, "[1, 0]")
+ commit('second commit')
+ git('tag', 'v1.0')
+
+ # Add two commits and a tag on 1.x branch
+ git('checkout', '-b', '1.x')
+ write_file(filename, "[1, 0, '', 1]")
+ commit('first 1.x commit')
+
+ write_file(filename, "[1, 1]")
+ commit('second 1.x commit')
+ git('tag', 'v1.1')
+
+ # Add two commits and a tag on main branch
+ git('checkout', main)
+ write_file(filename, "[1, 0, '', 1]")
+ commit('third main commit')
+ write_file(filename, "[2, 0]")
+ commit('fourth main commit')
+ git('tag', 'v2.0')
+
+ # Add two more commits on 1.x branch to ensure we aren't cheating by using time
+ git('checkout', '1.x')
+ write_file(filename, "[1, 1, '', 1]")
+ commit('third 1.x commit')
+ write_file(filename, "[1, 2]")
+ commit('fourth 1.x commit')
+ git('tag', '1.2') # test robust parsing to different syntax, no v
+
+ # Get the commits in topo order
+ log = git('log', '--all', '--pretty=format:%H', '--topo-order',
+ output=str, error=str)
+ commits = [c for c in log.split('\n') if c]
+
+ # Return the git directory to install, the filename used, and the commits
+ yield repo_path, filename, commits
@pytest.fixture(autouse=True)
@@ -77,24 +190,24 @@ def no_path_access(monkeypatch):
#
-# Disable any activate Spack environment BEFORE all tests
+# Disable any active Spack environment BEFORE all tests
#
@pytest.fixture(scope='session', autouse=True)
def clean_user_environment():
- env_var = ev.spack_env_var in os.environ
- active = ev._active_environment
+ spack_env_value = os.environ.pop(ev.spack_env_var, None)
+ with ev.deactivate_environment():
+ yield
+ if spack_env_value:
+ os.environ[ev.spack_env_var] = spack_env_value
- if env_var:
- spack_env_value = os.environ.pop(ev.spack_env_var)
- if active:
- ev.deactivate()
+#
+# Make sure global state of active env does not leak between tests.
+#
+@pytest.fixture(scope='function', autouse=True)
+def clean_test_environment():
yield
-
- if env_var:
- os.environ[ev.spack_env_var] = spack_env_value
- if active:
- ev.activate(active)
+ ev.deactivate()
def _verify_executables_noop(*args):
@@ -300,6 +413,18 @@ def mock_fetch_cache(monkeypatch):
monkeypatch.setattr(spack.caches, 'fetch_cache', MockCache())
+@pytest.fixture()
+def mock_binary_index(monkeypatch, tmpdir_factory):
+ """Changes the directory for the binary index and creates binary index for
+ every test. Clears its own index when it's done.
+ """
+ tmpdir = tmpdir_factory.mktemp('mock_binary_index')
+ index_path = tmpdir.join('binary_index').strpath
+ mock_index = spack.binary_distribution.BinaryCacheIndex(index_path)
+ monkeypatch.setattr(spack.binary_distribution, 'binary_index', mock_index)
+ yield
+
+
@pytest.fixture(autouse=True)
def _skip_if_missing_executables(request):
"""Permits to mark tests with 'require_executables' and skip the
@@ -317,7 +442,7 @@ def _skip_if_missing_executables(request):
@pytest.fixture(scope='session')
def test_platform():
- return spack.platforms.test.Test()
+ return spack.platforms.Test()
@pytest.fixture(autouse=True, scope='session')
@@ -460,7 +585,7 @@ def configuration_dir(tmpdir_factory, linux_os):
tmpdir.ensure('user', dir=True)
# Slightly modify config.yaml and compilers.yaml
- solver = os.environ.get('SPACK_TEST_SOLVER', 'original')
+ solver = os.environ.get('SPACK_TEST_SOLVER', 'clingo')
config_yaml = test_config.join('config.yaml')
modules_root = tmpdir_factory.mktemp('share')
tcl_root = modules_root.ensure('modules', dir=True)
@@ -527,6 +652,15 @@ def mutable_empty_config(tmpdir_factory, configuration_dir):
yield cfg
+@pytest.fixture
+def no_compilers_yaml(mutable_config):
+ """Creates a temporary configuration without compilers.yaml"""
+ for scope, local_config in mutable_config.scopes.items():
+ compilers_yaml = os.path.join(local_config.path, 'compilers.yaml')
+ if os.path.exists(compilers_yaml):
+ os.remove(compilers_yaml)
+
+
@pytest.fixture()
def mock_low_high_config(tmpdir):
"""Mocks two configuration scopes: 'low' and 'high'."""
@@ -563,12 +697,11 @@ def _populate(mock_db):
pkg = spack.repo.get(s)
pkg.do_install(fake=True, explicit=True)
- # Transaction used to avoid repeated writes.
- with mock_db.write_transaction():
- _install('mpileaks ^mpich')
- _install('mpileaks ^mpich2')
- _install('mpileaks ^zmpi')
- _install('externaltest')
+ _install('mpileaks ^mpich')
+ _install('mpileaks ^mpich2')
+ _install('mpileaks ^zmpi')
+ _install('externaltest')
+ _install('trivial-smoke-test')
@pytest.fixture(scope='session')
@@ -605,38 +738,7 @@ def mock_store(tmpdir_factory, mock_repo_path, mock_configuration_scopes,
# Make the DB filesystem read-only to ensure we can't modify entries
store_path.join('.spack-db').chmod(mode=0o555, rec=1)
- yield store
-
- store_path.join('.spack-db').chmod(mode=0o755, rec=1)
-
-
-@pytest.fixture(scope='function')
-def mutable_mock_store(
- tmpdir_factory, mock_repo_path, mock_configuration_scopes,
- _store_dir_and_cache
-):
- """Creates a read-only mock database with some packages installed note
- that the ref count for dyninst here will be 3, as it's recycled
- across each install.
-
- This does not actually activate the store for use by Spack -- see the
- ``database`` fixture for that.
-
- """
- store_path, store_cache = _store_dir_and_cache
-
- # If the cache does not exist populate the store and create it
- if not os.path.exists(str(store_cache.join('.spack-db'))):
- with spack.config.use_configuration(*mock_configuration_scopes):
- with spack.store.use_store(str(store_path)) as store:
- with spack.repo.use_repositories(mock_repo_path):
- _populate(store.db)
- store_path.copy(store_cache, mode=True, stat=True)
-
- # Make the DB filesystem read-only to ensure we can't modify entries
- store_path.join('.spack-db').chmod(mode=0o555, rec=1)
-
- yield store
+ yield store_path
store_path.join('.spack-db').chmod(mode=0o755, rec=1)
@@ -644,10 +746,9 @@ def mutable_mock_store(
@pytest.fixture(scope='function')
def database(mock_store, mock_packages, config, monkeypatch):
"""This activates the mock store, packages, AND config."""
- monkeypatch.setattr(spack.store, 'store', mock_store)
- yield mock_store.db
- # Force reading the database again between tests
- mock_store.db.last_seen_verifier = ''
+ with spack.store.use_store(str(mock_store)) as store:
+ yield store.db
+ store.db.last_seen_verifier = ''
@pytest.fixture(scope='function')
@@ -718,20 +819,15 @@ def disable_compiler_execution(monkeypatch, request):
@pytest.fixture(scope='function')
-def install_mockery(tmpdir, config, mock_packages, monkeypatch):
+def install_mockery(temporary_store, config, mock_packages):
"""Hooks a fake install directory, DB, and stage directory into Spack."""
- monkeypatch.setattr(
- spack.store, 'store', spack.store.Store(str(tmpdir.join('opt'))))
-
# We use a fake package, so temporarily disable checksumming
with spack.config.override('config:checksum', False):
yield
- tmpdir.join('opt').remove()
-
# Also wipe out any cached prefix failure locks (associated with
# the session-scoped mock archive).
- for pkg_id in list(spack.store.db._prefix_failures.keys()):
+ for pkg_id in list(temporary_store.db._prefix_failures.keys()):
lock = spack.store.db._prefix_failures.pop(pkg_id, None)
if lock:
try:
@@ -741,23 +837,28 @@ def install_mockery(tmpdir, config, mock_packages, monkeypatch):
@pytest.fixture(scope='function')
+def temporary_store(tmpdir):
+ """Hooks a temporary empty store for the test function."""
+ temporary_store_path = tmpdir.join('opt')
+ with spack.store.use_store(str(temporary_store_path)) as s:
+ yield s
+ temporary_store_path.remove()
+
+
+@pytest.fixture(scope='function')
def install_mockery_mutable_config(
- tmpdir, mutable_config, mock_packages, monkeypatch):
+ temporary_store, mutable_config, mock_packages
+):
"""Hooks a fake install directory, DB, and stage directory into Spack.
This is specifically for tests which want to use 'install_mockery' but
also need to modify configuration (and hence would want to use
'mutable config'): 'install_mockery' does not support this.
"""
- monkeypatch.setattr(
- spack.store, 'store', spack.store.Store(str(tmpdir.join('opt'))))
-
# We use a fake package, so temporarily disable checksumming
with spack.config.override('config:checksum', False):
yield
- tmpdir.join('opt').remove()
-
@pytest.fixture()
def mock_fetch(mock_archive, monkeypatch):
@@ -774,7 +875,7 @@ class MockLayout(object):
self.root = root
def path_for_spec(self, spec):
- return '/'.join([self.root, spec.name])
+ return '/'.join([self.root, spec.name + '-' + spec.dag_hash()])
def check_installed(self, spec):
return True
@@ -797,11 +898,11 @@ class MockConfig(object):
self._configuration = configuration
self.writer_key = writer_key
- def configuration(self):
+ def configuration(self, module_set_name):
return self._configuration
- def writer_configuration(self):
- return self.configuration()[self.writer_key]
+ def writer_configuration(self, module_set_name):
+ return self.configuration(module_set_name)[self.writer_key]
class ConfigUpdate(object):
@@ -814,7 +915,9 @@ class ConfigUpdate(object):
def __call__(self, filename):
file = os.path.join(self.root_for_conf, filename + '.yaml')
with open(file) as f:
- mock_config = MockConfig(syaml.load_config(f), self.writer_key)
+ config_settings = syaml.load_config(f)
+ spack.config.set('modules:default', config_settings)
+ mock_config = MockConfig(config_settings, self.writer_key)
self.monkeypatch.setattr(
spack.modules.common,
@@ -858,8 +961,14 @@ def mock_gnupghome(monkeypatch):
# have to make our own tmpdir with a shorter name than pytest's.
# This comes up because tmp paths on macOS are already long-ish, and
# pytest makes them longer.
+ try:
+ spack.util.gpg.init()
+ except spack.util.gpg.SpackGPGError:
+ if not spack.util.gpg.GPG:
+ pytest.skip('This test requires gpg')
+
short_name_tmpdir = tempfile.mkdtemp()
- with spack.util.gpg.gnupg_home_override(short_name_tmpdir):
+ with spack.util.gpg.gnupghome_override(short_name_tmpdir):
yield short_name_tmpdir
# clean up, since we are doing this manually
@@ -918,6 +1027,155 @@ def mock_archive(request, tmpdir_factory):
expanded_archive_basedir=spack.stage._source_path_subdir)
+def _parse_cvs_date(line):
+ """Turn a CVS log date into a datetime.datetime"""
+ # dates in CVS logs can have slashes or dashes and may omit the time zone:
+ # date: 2021-07-07 02:43:33 -0700; ...
+ # date: 2021-07-07 02:43:33; ...
+ # date: 2021/07/07 02:43:33; ...
+ m = re.search(r'date:\s+(\d+)[/-](\d+)[/-](\d+)\s+(\d+):(\d+):(\d+)', line)
+ if not m:
+ return None
+ year, month, day, hour, minute, second = [int(g) for g in m.groups()]
+ return datetime.datetime(year, month, day, hour, minute, second)
+
+
+@pytest.fixture(scope='session')
+def mock_cvs_repository(tmpdir_factory):
+ """Creates a very simple CVS repository with two commits and a branch."""
+ cvs = spack.util.executable.which('cvs', required=True)
+
+ tmpdir = tmpdir_factory.mktemp('mock-cvs-repo-dir')
+ tmpdir.ensure(spack.stage._source_path_subdir, dir=True)
+ repodir = tmpdir.join(spack.stage._source_path_subdir)
+ cvsroot = str(repodir)
+
+ # The CVS repository and source tree need to live in a different directories
+ sourcedirparent = tmpdir_factory.mktemp('mock-cvs-source-dir')
+ module = spack.stage._source_path_subdir
+ url = cvsroot + "%module=" + module
+ sourcedirparent.ensure(module, dir=True)
+ sourcedir = sourcedirparent.join(module)
+
+ def format_date(date):
+ if date is None:
+ return None
+ return date.strftime('%Y-%m-%d %H:%M:%S')
+
+ def get_cvs_timestamp(output):
+ """Find the most recent CVS time stamp in a `cvs log` output"""
+ latest_timestamp = None
+ for line in output.splitlines():
+ timestamp = _parse_cvs_date(line)
+ if timestamp:
+ if latest_timestamp is None:
+ latest_timestamp = timestamp
+ else:
+ latest_timestamp = max(latest_timestamp, timestamp)
+ return latest_timestamp
+
+ # We use this to record the time stamps for when we create CVS revisions,
+ # so that we can later check that we retrieve the proper commits when
+ # specifying a date. (CVS guarantees checking out the lastest revision
+ # before or on the specified date). As we create each revision, we
+ # separately record the time by querying CVS.
+ revision_date = {}
+
+ # Initialize the repository
+ with sourcedir.as_cwd():
+ cvs('-d', cvsroot, 'init')
+ cvs('-d', cvsroot, 'import', '-m', 'initial mock repo commit',
+ module, 'mockvendor', 'mockrelease')
+ with sourcedirparent.as_cwd():
+ cvs('-d', cvsroot, 'checkout', module)
+
+ # Commit file r0
+ r0_file = 'r0_file'
+ sourcedir.ensure(r0_file)
+ cvs('-d', cvsroot, 'add', r0_file)
+ cvs('-d', cvsroot, 'commit', '-m', 'revision 0', r0_file)
+ output = cvs('log', '-N', r0_file, output=str)
+ revision_date['1.1'] = format_date(get_cvs_timestamp(output))
+
+ # Commit file r1
+ r1_file = 'r1_file'
+ sourcedir.ensure(r1_file)
+ cvs('-d', cvsroot, 'add', r1_file)
+ cvs('-d', cvsroot, 'commit', '-m' 'revision 1', r1_file)
+ output = cvs('log', '-N', r0_file, output=str)
+ revision_date['1.2'] = format_date(get_cvs_timestamp(output))
+
+ # Create branch 'mock-branch'
+ cvs('-d', cvsroot, 'tag', 'mock-branch-root')
+ cvs('-d', cvsroot, 'tag', '-b', 'mock-branch')
+
+ # CVS does not have the notion of a unique branch; branches and revisions
+ # are managed separately for every file
+ def get_branch():
+ """Return the branch name if all files are on the same branch, else
+ return None. Also return None if all files are on the trunk."""
+ lines = cvs('-d', cvsroot, 'status', '-v', output=str).splitlines()
+ branch = None
+ for line in lines:
+ m = re.search(r'(\S+)\s+[(]branch:', line)
+ if m:
+ tag = m.group(1)
+ if branch is None:
+ # First branch name found
+ branch = tag
+ elif tag == branch:
+ # Later branch name found; all branch names found so far
+ # agree
+ pass
+ else:
+ # Later branch name found; branch names differ
+ branch = None
+ break
+ return branch
+
+ # CVS does not have the notion of a unique revision; usually, one uses
+ # commit dates instead
+ def get_date():
+ """Return latest date of the revisions of all files"""
+ output = cvs('log', '-N', r0_file, output=str)
+ timestamp = get_cvs_timestamp(output)
+ if timestamp is None:
+ return None
+ return format_date(timestamp)
+
+ checks = {
+ 'default': Bunch(
+ file=r1_file,
+ branch=None,
+ date=None,
+ args={'cvs': url},
+ ),
+ 'branch': Bunch(
+ file=r1_file,
+ branch='mock-branch',
+ date=None,
+ args={'cvs': url, 'branch': 'mock-branch'},
+ ),
+ 'date': Bunch(
+ file=r0_file,
+ branch=None,
+ date=revision_date['1.1'],
+ args={'cvs': url,
+ 'date': revision_date['1.1']},
+ ),
+ }
+
+ test = Bunch(
+ checks=checks,
+ url=url,
+ get_branch=get_branch,
+ get_date=get_date,
+ path=str(repodir),
+ )
+
+ yield test
+
+
@pytest.fixture(scope='session')
def mock_git_repository(tmpdir_factory):
"""Creates a simple git repository with two branches,
@@ -1128,11 +1386,11 @@ def mock_svn_repository(tmpdir_factory):
@pytest.fixture()
def mutable_mock_env_path(tmpdir_factory):
"""Fixture for mocking the internal spack environments directory."""
- saved_path = spack.environment.env_path
+ saved_path = ev.env_path
mock_path = tmpdir_factory.mktemp('mock-env-path')
- spack.environment.env_path = str(mock_path)
+ ev.env_path = str(mock_path)
yield mock_path
- spack.environment.env_path = saved_path
+ ev.env_path = saved_path
@pytest.fixture()
@@ -1222,7 +1480,7 @@ repo:
class MockBundle(object):
has_code = False
name = 'mock-bundle'
- versions = {}
+ versions = {} # type: ignore
@pytest.fixture
diff --git a/lib/spack/spack/test/container/cli.py b/lib/spack/spack/test/container/cli.py
index f9b3b43f83..1dd0840d7f 100644
--- a/lib/spack/spack/test/container/cli.py
+++ b/lib/spack/spack/test/container/cli.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import llnl.util.filesystem as fs
-import spack.main
+import spack.main
containerize = spack.main.SpackCommand('containerize')
diff --git a/lib/spack/spack/test/container/conftest.py b/lib/spack/spack/test/container/conftest.py
index 70a1ae2547..43e16cd180 100644
--- a/lib/spack/spack/test/container/conftest.py
+++ b/lib/spack/spack/test/container/conftest.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/container/docker.py b/lib/spack/spack/test/container/docker.py
index 6392f97db2..43a32b0720 100644
--- a/lib/spack/spack/test/container/docker.py
+++ b/lib/spack/spack/test/container/docker.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/container/images.py b/lib/spack/spack/test/container/images.py
index 6cec1cc592..d04bf60b08 100644
--- a/lib/spack/spack/test/container/images.py
+++ b/lib/spack/spack/test/container/images.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/container/schema.py b/lib/spack/spack/test/container/schema.py
index e86f9d3fe8..4bb0d574a9 100644
--- a/lib/spack/spack/test/container/schema.py
+++ b/lib/spack/spack/test/container/schema.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/container/singularity.py b/lib/spack/spack/test/container/singularity.py
index ab342cacec..12245e935e 100644
--- a/lib/spack/spack/test/container/singularity.py
+++ b/lib/spack/spack/test/container/singularity.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/cvs_fetch.py b/lib/spack/spack/test/cvs_fetch.py
new file mode 100644
index 0000000000..07688bb6f4
--- /dev/null
+++ b/lib/spack/spack/test/cvs_fetch.py
@@ -0,0 +1,110 @@
+# Copyright 2013-2021 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)
+
+import os
+
+import pytest
+
+from llnl.util.filesystem import mkdirp, touch, working_dir
+
+import spack.config
+import spack.repo
+from spack.fetch_strategy import CvsFetchStrategy
+from spack.spec import Spec
+from spack.stage import Stage
+from spack.util.executable import which
+from spack.version import ver
+
+pytestmark = pytest.mark.skipif(
+ not which('cvs'),
+ reason='requires CVS to be installed')
+
+
+@pytest.mark.parametrize("type_of_test", ['default', 'branch', 'date'])
+def test_fetch(
+ type_of_test,
+ mock_cvs_repository,
+ config,
+ mutable_mock_repo
+):
+ """Tries to:
+
+ 1. Fetch the repo using a fetch strategy constructed with
+ supplied args (they depend on type_of_test).
+ 2. Check whether the checkout is on the correct branch or date
+ 3. Check if the test_file is in the checked out repository.
+ 4. Add and remove some files, then reset the repo, and
+ ensure it's all there again.
+
+ CVS does not have the notion of a unique branch; branches and revisions
+ are managed separately for every file.
+ """
+ # Retrieve the right test parameters
+ test = mock_cvs_repository.checks[type_of_test]
+ get_branch = mock_cvs_repository.get_branch
+ get_date = mock_cvs_repository.get_date
+
+ # Construct the package under test
+ spec = Spec('cvs-test')
+ spec.concretize()
+ pkg = spack.repo.get(spec)
+ pkg.versions[ver('cvs')] = test.args
+
+ # Enter the stage directory and check some properties
+ with pkg.stage:
+ pkg.do_stage()
+
+ with working_dir(pkg.stage.source_path):
+ # Check branch
+ if test.branch is not None:
+ assert get_branch() == test.branch
+
+ # Check date
+ if test.date is not None:
+ assert get_date() <= test.date
+
+ file_path = os.path.join(pkg.stage.source_path, test.file)
+ assert os.path.isdir(pkg.stage.source_path)
+ assert os.path.isfile(file_path)
+
+ os.unlink(file_path)
+ assert not os.path.isfile(file_path)
+
+ untracked_file = 'foobarbaz'
+ touch(untracked_file)
+ assert os.path.isfile(untracked_file)
+ pkg.do_restage()
+ assert not os.path.isfile(untracked_file)
+
+ assert os.path.isdir(pkg.stage.source_path)
+ assert os.path.isfile(file_path)
+
+
+def test_cvs_extra_fetch(tmpdir):
+ """Ensure a fetch after downloading is effectively a no-op."""
+ testpath = str(tmpdir)
+
+ fetcher = CvsFetchStrategy(
+ cvs=':pserver:not-a-real-cvs-repo%module=not-a-real-module')
+ assert fetcher is not None
+
+ with Stage(fetcher, path=testpath) as stage:
+ assert stage is not None
+
+ source_path = stage.source_path
+ mkdirp(source_path)
+
+ # TODO: This doesn't look as if it was testing what this function's
+ # comment says it is testing. However, the other `test_*_extra_fetch`
+ # functions (for svn, git, hg) use equivalent code.
+ #
+ # We're calling `fetcher.fetch` twice as this might be what we want to
+ # do, and it can't hurt. See
+ # <https://github.com/spack/spack/pull/23212> for a discussion on this.
+
+ # Fetch once
+ fetcher.fetch()
+ # Fetch a second time
+ fetcher.fetch()
diff --git a/lib/spack/spack/test/data/ci/gitlab/artifacts.zip b/lib/spack/spack/test/data/ci/gitlab/artifacts.zip
new file mode 100644
index 0000000000..bff88661eb
--- /dev/null
+++ b/lib/spack/spack/test/data/ci/gitlab/artifacts.zip
Binary files differ
diff --git a/lib/spack/spack/test/data/config/bootstrap.yaml b/lib/spack/spack/test/data/config/bootstrap.yaml
new file mode 100644
index 0000000000..9e78aa7946
--- /dev/null
+++ b/lib/spack/spack/test/data/config/bootstrap.yaml
@@ -0,0 +1,12 @@
+bootstrap:
+ sources:
+ - name: 'github-actions'
+ type: buildcache
+ description: |
+ Buildcache generated from a public workflow using Github Actions.
+ The sha256 checksum of binaries is checked before installation.
+ info:
+ url: file:///home/culpo/production/spack/mirrors/clingo
+ homepage: https://github.com/alalazo/spack-bootstrap-mirrors
+ releases: https://github.com/alalazo/spack-bootstrap-mirrors/releases
+ trusted: {}
diff --git a/lib/spack/spack/test/data/config/config.yaml b/lib/spack/spack/test/data/config/config.yaml
index 09ab7709a3..d5c5f914fb 100644
--- a/lib/spack/spack/test/data/config/config.yaml
+++ b/lib/spack/spack/test/data/config/config.yaml
@@ -14,6 +14,3 @@ config:
checksum: true
dirty: false
concretizer: {0}
- module_roots:
- tcl: {1}
- lmod: {2}
diff --git a/lib/spack/spack/test/data/config/modules.yaml b/lib/spack/spack/test/data/config/modules.yaml
index f610087fb1..e2ddd841c5 100644
--- a/lib/spack/spack/test/data/config/modules.yaml
+++ b/lib/spack/spack/test/data/config/modules.yaml
@@ -14,8 +14,9 @@
# ~/.spack/modules.yaml
# -------------------------------------------------------------------------
modules:
- enable:
- - tcl
+ default:
+ enable:
+ - tcl
prefix_inspections:
bin:
- PATH
diff --git a/lib/spack/spack/test/data/config/packages.yaml b/lib/spack/spack/test/data/config/packages.yaml
index 496c3623cc..84f470d208 100644
--- a/lib/spack/spack/test/data/config/packages.yaml
+++ b/lib/spack/spack/test/data/config/packages.yaml
@@ -2,6 +2,7 @@ packages:
all:
providers:
mpi: [openmpi, mpich]
+ blas: [openblas]
externaltool:
buildable: False
externals:
@@ -46,3 +47,5 @@ packages:
externals:
- spec: external-non-default-variant@3.8.7~foo~bar
prefix: /usr
+ version-test-dependency-preferred:
+ version: ['5.2.5'] \ No newline at end of file
diff --git a/lib/spack/spack/test/data/mirrors/legacy_yaml/build_cache/test-debian6-core2-gcc-4.5.0-zlib-1.2.11-t5mczux3tfqpxwmg7egp7axy2jvyulqk.spec.yaml b/lib/spack/spack/test/data/mirrors/legacy_yaml/build_cache/test-debian6-core2-gcc-4.5.0-zlib-1.2.11-t5mczux3tfqpxwmg7egp7axy2jvyulqk.spec.yaml
new file mode 100644
index 0000000000..d2168f8a25
--- /dev/null
+++ b/lib/spack/spack/test/data/mirrors/legacy_yaml/build_cache/test-debian6-core2-gcc-4.5.0-zlib-1.2.11-t5mczux3tfqpxwmg7egp7axy2jvyulqk.spec.yaml
@@ -0,0 +1,41 @@
+spec:
+- zlib:
+ version: 1.2.11
+ arch:
+ platform: test
+ platform_os: debian6
+ target:
+ name: core2
+ vendor: GenuineIntel
+ features:
+ - mmx
+ - sse
+ - sse2
+ - ssse3
+ generation: 0
+ parents:
+ - nocona
+ compiler:
+ name: gcc
+ version: 4.5.0
+ namespace: builtin.mock
+ parameters:
+ optimize: true
+ pic: true
+ shared: true
+ cflags: []
+ cppflags: []
+ cxxflags: []
+ fflags: []
+ ldflags: []
+ ldlibs: []
+ package_hash: eukp6mqxxlfuxslsodbwbqtsznajielhh4avm2vgteo4ifdsjgjq====
+ hash: t5mczux3tfqpxwmg7egp7axy2jvyulqk
+ full_hash: 6j4as6r3qd4qhf77yu44reyn2u6ggbuq
+ build_hash: t5mczux3tfqpxwmg7egp7axy2jvyulqk
+binary_cache_checksum:
+ hash_algorithm: sha256
+ hash: a62b50aee38bb5d6d1cbf9cd2b0badaf3eaa282cd6db0472b4468ff968a5e7f2
+buildinfo:
+ relative_prefix: test-debian6-core2/gcc-4.5.0/zlib-1.2.11-t5mczux3tfqpxwmg7egp7axy2jvyulqk
+ relative_rpaths: false
diff --git a/lib/spack/spack/test/data/mirrors/legacy_yaml/build_cache/test-debian6-core2/gcc-4.5.0/zlib-1.2.11/test-debian6-core2-gcc-4.5.0-zlib-1.2.11-t5mczux3tfqpxwmg7egp7axy2jvyulqk.spack b/lib/spack/spack/test/data/mirrors/legacy_yaml/build_cache/test-debian6-core2/gcc-4.5.0/zlib-1.2.11/test-debian6-core2-gcc-4.5.0-zlib-1.2.11-t5mczux3tfqpxwmg7egp7axy2jvyulqk.spack
new file mode 100644
index 0000000000..7996b497e4
--- /dev/null
+++ b/lib/spack/spack/test/data/mirrors/legacy_yaml/build_cache/test-debian6-core2/gcc-4.5.0/zlib-1.2.11/test-debian6-core2-gcc-4.5.0-zlib-1.2.11-t5mczux3tfqpxwmg7egp7axy2jvyulqk.spack
Binary files differ
diff --git a/lib/spack/spack/test/data/modules/lmod/alter_environment.yaml b/lib/spack/spack/test/data/modules/lmod/alter_environment.yaml
index f61c94362e..314dd1ddf5 100644
--- a/lib/spack/spack/test/data/modules/lmod/alter_environment.yaml
+++ b/lib/spack/spack/test/data/modules/lmod/alter_environment.yaml
@@ -9,7 +9,7 @@ lmod:
all:
filter:
- environment_blacklist':
+ environment_blacklist:
- CMAKE_PREFIX_PATH
environment:
set:
diff --git a/lib/spack/spack/test/data/modules/lmod/with_view.yaml b/lib/spack/spack/test/data/modules/lmod/with_view.yaml
new file mode 100644
index 0000000000..28220fe445
--- /dev/null
+++ b/lib/spack/spack/test/data/modules/lmod/with_view.yaml
@@ -0,0 +1,6 @@
+enable:
+ - lmod
+use_view: default
+lmod:
+ core_compilers:
+ - 'clang@3.3'
diff --git a/lib/spack/spack/test/data/modules/tcl/alter_environment.yaml b/lib/spack/spack/test/data/modules/tcl/alter_environment.yaml
index ecb0f56254..74d9724695 100644
--- a/lib/spack/spack/test/data/modules/tcl/alter_environment.yaml
+++ b/lib/spack/spack/test/data/modules/tcl/alter_environment.yaml
@@ -3,7 +3,7 @@ enable:
tcl:
all:
filter:
- environment_blacklist':
+ environment_blacklist:
- CMAKE_PREFIX_PATH
environment:
set:
diff --git a/lib/spack/spack/test/data/modules/tcl/invalid_token_in_env_var_name.yaml b/lib/spack/spack/test/data/modules/tcl/invalid_token_in_env_var_name.yaml
index bed866fe90..6012a2d3b0 100644
--- a/lib/spack/spack/test/data/modules/tcl/invalid_token_in_env_var_name.yaml
+++ b/lib/spack/spack/test/data/modules/tcl/invalid_token_in_env_var_name.yaml
@@ -3,7 +3,7 @@ enable:
tcl:
all:
filter:
- environment_blacklist':
+ environment_blacklist:
- CMAKE_PREFIX_PATH
environment:
set:
diff --git a/lib/spack/spack/test/data/sourceme_first.sh b/lib/spack/spack/test/data/sourceme_first.sh
index 8fa1774b17..6d473ea6d3 100644
--- a/lib/spack/spack/test/data/sourceme_first.sh
+++ b/lib/spack/spack/test/data/sourceme_first.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/data/sourceme_lmod.sh b/lib/spack/spack/test/data/sourceme_lmod.sh
index b71e338ec9..0ce370d09e 100644
--- a/lib/spack/spack/test/data/sourceme_lmod.sh
+++ b/lib/spack/spack/test/data/sourceme_lmod.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/data/sourceme_parameters.sh b/lib/spack/spack/test/data/sourceme_parameters.sh
index d11590d224..205a7006df 100644
--- a/lib/spack/spack/test/data/sourceme_parameters.sh
+++ b/lib/spack/spack/test/data/sourceme_parameters.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/data/sourceme_second.sh b/lib/spack/spack/test/data/sourceme_second.sh
index 3f16153627..79af1aea36 100644
--- a/lib/spack/spack/test/data/sourceme_second.sh
+++ b/lib/spack/spack/test/data/sourceme_second.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/data/sourceme_unicode.sh b/lib/spack/spack/test/data/sourceme_unicode.sh
index d819126bb6..b396dc43d7 100644
--- a/lib/spack/spack/test/data/sourceme_unicode.sh
+++ b/lib/spack/spack/test/data/sourceme_unicode.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/data/sourceme_unset.sh b/lib/spack/spack/test/data/sourceme_unset.sh
index 0366833838..2f1658529a 100644
--- a/lib/spack/spack/test/data/sourceme_unset.sh
+++ b/lib/spack/spack/test/data/sourceme_unset.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/data/style/broken.dummy b/lib/spack/spack/test/data/style/broken.dummy
new file mode 100644
index 0000000000..5044a2f476
--- /dev/null
+++ b/lib/spack/spack/test/data/style/broken.dummy
@@ -0,0 +1,12 @@
+# Copyright 2013-2021 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)
+
+import sys
+import os
+
+def this_is_a_function():
+ """This is a docstring."""
+ def this_should_be_offset():
+ sys.stdout.write(os.name)
diff --git a/lib/spack/spack/test/data/style/fixed.py b/lib/spack/spack/test/data/style/fixed.py
new file mode 100644
index 0000000000..76eec009c6
--- /dev/null
+++ b/lib/spack/spack/test/data/style/fixed.py
@@ -0,0 +1,14 @@
+# Copyright 2013-2021 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)
+
+import os
+import sys
+
+
+def this_is_a_function():
+ """This is a docstring."""
+
+ def this_should_be_offset():
+ sys.stdout.write(os.name)
diff --git a/lib/spack/spack/test/database.py b/lib/spack/spack/test/database.py
index 8e0eac7cc0..37d19d6794 100644
--- a/lib/spack/spack/test/database.py
+++ b/lib/spack/spack/test/database.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,11 @@ both in memory and in its file
"""
import datetime
import functools
+import json
import os
+
import pytest
-import json
+
try:
import uuid
_use_uuid = True
@@ -24,30 +26,19 @@ from jsonschema import validate
import llnl.util.lock as lk
from llnl.util.tty.colify import colify
-import spack.repo
-import spack.store
import spack.database
import spack.package
+import spack.repo
import spack.spec
-from spack.util.mock_package import MockPackageMultiRepo
-from spack.util.executable import Executable
+import spack.store
from spack.schema.database_index import schema
-
+from spack.util.executable import Executable
+from spack.util.mock_package import MockPackageMultiRepo
pytestmark = pytest.mark.db
@pytest.fixture()
-def test_store(tmpdir):
- real_store = spack.store.store
- spack.store.store = spack.store.Store(str(tmpdir.join('test_store')))
-
- yield
-
- spack.store.store = real_store
-
-
-@pytest.fixture()
def upstream_and_downstream_db(tmpdir_factory, gen_mock_layout):
mock_db_root = str(tmpdir_factory.mktemp('mock_db_root'))
upstream_write_db = spack.database.Database(mock_db_root)
@@ -180,8 +171,8 @@ def test_add_to_upstream_after_downstream(upstream_and_downstream_db):
spack.store.db = orig_db
-@pytest.mark.usefixtures('config')
-def test_cannot_write_upstream(tmpdir_factory, test_store, gen_mock_layout):
+@pytest.mark.usefixtures('config', 'temporary_store')
+def test_cannot_write_upstream(tmpdir_factory, gen_mock_layout):
roots = [str(tmpdir_factory.mktemp(x)) for x in ['a', 'b']]
layouts = [gen_mock_layout(x) for x in ['/ra/', '/rb/']]
@@ -205,8 +196,8 @@ def test_cannot_write_upstream(tmpdir_factory, test_store, gen_mock_layout):
upstream_dbs[0].add(spec, layouts[1])
-@pytest.mark.usefixtures('config')
-def test_recursive_upstream_dbs(tmpdir_factory, test_store, gen_mock_layout):
+@pytest.mark.usefixtures('config', 'temporary_store')
+def test_recursive_upstream_dbs(tmpdir_factory, gen_mock_layout):
roots = [str(tmpdir_factory.mktemp(x)) for x in ['a', 'b', 'c']]
layouts = [gen_mock_layout(x) for x in ['/ra/', '/rb/', '/rc/']]
@@ -434,7 +425,7 @@ def test_005_db_exists(database):
def test_010_all_install_sanity(database):
"""Ensure that the install layout reflects what we think it does."""
all_specs = spack.store.layout.all_specs()
- assert len(all_specs) == 14
+ assert len(all_specs) == 15
# Query specs with multiple configurations
mpileaks_specs = [s for s in all_specs if s.satisfies('mpileaks')]
@@ -555,7 +546,8 @@ def test_041_ref_counts_deprecate(mutable_database):
def test_050_basic_query(database):
"""Ensure querying database is consistent with what is installed."""
# query everything
- assert len(spack.store.db.query()) == 16
+ total_specs = len(spack.store.db.query())
+ assert total_specs == 17
# query specs with multiple configurations
mpileaks_specs = database.query('mpileaks')
@@ -581,10 +573,10 @@ def test_050_basic_query(database):
assert len(database.query('mpileaks ^zmpi')) == 1
# Query by date
- assert len(database.query(start_date=datetime.datetime.min)) == 16
+ assert len(database.query(start_date=datetime.datetime.min)) == total_specs
assert len(database.query(start_date=datetime.datetime.max)) == 0
assert len(database.query(end_date=datetime.datetime.min)) == 0
- assert len(database.query(end_date=datetime.datetime.max)) == 16
+ assert len(database.query(end_date=datetime.datetime.max)) == total_specs
def test_060_remove_and_add_root_package(mutable_database):
@@ -648,10 +640,6 @@ def test_090_non_root_ref_counts(mutable_database):
assert mpich_rec.ref_count == 0
-@pytest.mark.skipif(
- os.environ.get('SPACK_TEST_SOLVER') == 'clingo',
- reason='Test for Clingo are run in a container with root permissions'
-)
def test_100_no_write_with_exception_on_remove(database):
def fail_while_writing():
with database.write_transaction():
@@ -669,10 +657,6 @@ def test_100_no_write_with_exception_on_remove(database):
assert len(database.query('mpileaks ^zmpi', installed=any)) == 1
-@pytest.mark.skipif(
- os.environ.get('SPACK_TEST_SOLVER') == 'clingo',
- reason='Test for Clingo are run in a container with root permissions'
-)
def test_110_no_write_with_exception_on_install(database):
def fail_while_writing():
with database.write_transaction():
diff --git a/lib/spack/spack/test/directives.py b/lib/spack/spack/test/directives.py
index ae1b6b7e2a..a40eff6b71 100644
--- a/lib/spack/spack/test/directives.py
+++ b/lib/spack/spack/test/directives.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -32,3 +32,13 @@ def test_true_directives_exist(mock_packages):
assert cls.patches
assert Spec() in cls.patches
+
+
+def test_constraints_from_context(mock_packages):
+ pkg_cls = spack.repo.path.get_pkg_class('with-constraint-met')
+
+ assert pkg_cls.dependencies
+ assert Spec('@1.0') in pkg_cls.dependencies['b']
+
+ assert pkg_cls.conflicts
+ assert (Spec('@1.0'), None) in pkg_cls.conflicts['%gcc']
diff --git a/lib/spack/spack/test/directory_layout.py b/lib/spack/spack/test/directory_layout.py
index 3cb976a077..aed066575b 100644
--- a/lib/spack/spack/test/directory_layout.py
+++ b/lib/spack/spack/test/directory_layout.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,28 +7,22 @@
This test verifies that the Spack directory layout works properly.
"""
import os
+import os.path
+
import pytest
import spack.paths
import spack.repo
-from spack.directory_layout import YamlDirectoryLayout
-from spack.directory_layout import InvalidDirectoryLayoutParametersError
+from spack.directory_layout import (
+ DirectoryLayout,
+ InvalidDirectoryLayoutParametersError,
+)
from spack.spec import Spec
# number of packages to test (to reduce test time)
max_packages = 10
-@pytest.fixture()
-def layout_and_dir(tmpdir):
- """Returns a directory layout and the corresponding directory."""
- layout = YamlDirectoryLayout(str(tmpdir))
- old_layout = spack.store.layout
- spack.store.layout = layout
- yield layout, str(tmpdir)
- spack.store.layout = old_layout
-
-
def test_yaml_directory_layout_parameters(tmpdir, config):
"""This tests the various parameters that can be used to configure
the install location """
@@ -36,7 +30,7 @@ def test_yaml_directory_layout_parameters(tmpdir, config):
spec.concretize()
# Ensure default layout matches expected spec format
- layout_default = YamlDirectoryLayout(str(tmpdir))
+ layout_default = DirectoryLayout(str(tmpdir))
path_default = layout_default.relative_path_for_spec(spec)
assert(path_default == spec.format(
"{architecture}/"
@@ -44,9 +38,9 @@ def test_yaml_directory_layout_parameters(tmpdir, config):
"{name}-{version}-{hash}"))
# Test hash_length parameter works correctly
- layout_10 = YamlDirectoryLayout(str(tmpdir), hash_length=10)
+ layout_10 = DirectoryLayout(str(tmpdir), hash_length=10)
path_10 = layout_10.relative_path_for_spec(spec)
- layout_7 = YamlDirectoryLayout(str(tmpdir), hash_length=7)
+ layout_7 = DirectoryLayout(str(tmpdir), hash_length=7)
path_7 = layout_7.relative_path_for_spec(spec)
assert(len(path_default) - len(path_10) == 22)
@@ -55,8 +49,8 @@ def test_yaml_directory_layout_parameters(tmpdir, config):
# Test path_scheme
arch, compiler, package7 = path_7.split('/')
projections_package7 = {'all': "{name}-{version}-{hash:7}"}
- layout_package7 = YamlDirectoryLayout(str(tmpdir),
- projections=projections_package7)
+ layout_package7 = DirectoryLayout(str(tmpdir),
+ projections=projections_package7)
path_package7 = layout_package7.relative_path_for_spec(spec)
assert(package7 == path_package7)
@@ -68,7 +62,7 @@ def test_yaml_directory_layout_parameters(tmpdir, config):
ns_scheme = "${ARCHITECTURE}/${NAMESPACE}/${PACKAGE}-${VERSION}-${HASH:7}" # NOQA: ignore=E501
arch_ns_scheme_projections = {'all': arch_scheme,
'python': ns_scheme}
- layout_arch_ns = YamlDirectoryLayout(
+ layout_arch_ns = DirectoryLayout(
str(tmpdir), projections=arch_ns_scheme_projections)
arch_path_spec2 = layout_arch_ns.relative_path_for_spec(spec2)
@@ -79,19 +73,19 @@ def test_yaml_directory_layout_parameters(tmpdir, config):
# Ensure conflicting parameters caught
with pytest.raises(InvalidDirectoryLayoutParametersError):
- YamlDirectoryLayout(str(tmpdir),
- hash_length=20,
- projections=projections_package7)
+ DirectoryLayout(str(tmpdir),
+ hash_length=20,
+ projections=projections_package7)
-def test_read_and_write_spec(layout_and_dir, config, mock_packages):
+def test_read_and_write_spec(temporary_store, config, mock_packages):
"""This goes through each package in spack and creates a directory for
it. It then ensures that the spec for the directory's
installed package can be read back in consistently, and
finally that the directory can be removed by the directory
layout.
"""
- layout, tmpdir = layout_and_dir
+ layout = temporary_store.layout
packages = list(spack.repo.path.all_packages())[:max_packages]
for pkg in packages:
@@ -114,7 +108,7 @@ def test_read_and_write_spec(layout_and_dir, config, mock_packages):
# Ensure directory has been created in right place.
assert os.path.isdir(install_dir)
- assert install_dir.startswith(str(tmpdir))
+ assert install_dir.startswith(temporary_store.root)
# Ensure spec file exists when directory is created
assert os.path.isfile(spec_path)
@@ -129,7 +123,7 @@ def test_read_and_write_spec(layout_and_dir, config, mock_packages):
# TODO: fix this when we can concretize more loosely based on
# TODO: what is installed. We currently omit these to
# TODO: increase reuse of build dependencies.
- stored_deptypes = ('link', 'run')
+ stored_deptypes = spack.hash_types.full_hash
expected = spec.copy(deps=stored_deptypes)
expected._mark_concrete()
@@ -160,7 +154,7 @@ def test_read_and_write_spec(layout_and_dir, config, mock_packages):
assert not os.path.exists(install_dir)
-def test_handle_unknown_package(layout_and_dir, config, mock_packages):
+def test_handle_unknown_package(temporary_store, config, mock_packages):
"""This test ensures that spack can at least do *some*
operations with packages that are installed but that it
does not know about. This is actually not such an uncommon
@@ -171,7 +165,7 @@ def test_handle_unknown_package(layout_and_dir, config, mock_packages):
information about installed packages' specs to uninstall
or query them again if the package goes away.
"""
- layout, _ = layout_and_dir
+ layout = temporary_store.layout
mock_db = spack.repo.RepoPath(spack.paths.mock_packages_path)
not_in_mock = set.difference(
@@ -199,7 +193,7 @@ def test_handle_unknown_package(layout_and_dir, config, mock_packages):
# enough to read a spec from the spec file.
for spec, path in installed_specs.items():
spec_from_file = layout.read_spec(
- os.path.join(path, '.spack', 'spec.yaml'))
+ os.path.join(path, '.spack', 'spec.json'))
# To satisfy these conditions, directory layouts need to
# read in concrete specs from their install dirs somehow.
@@ -209,9 +203,9 @@ def test_handle_unknown_package(layout_and_dir, config, mock_packages):
assert spec.dag_hash() == spec_from_file.dag_hash()
-def test_find(layout_and_dir, config, mock_packages):
+def test_find(temporary_store, config, mock_packages):
"""Test that finding specs within an install layout works."""
- layout, _ = layout_and_dir
+ layout = temporary_store.layout
packages = list(spack.repo.path.all_packages())[:max_packages]
# Create install prefixes for all packages in the list
@@ -237,7 +231,7 @@ def test_yaml_directory_layout_build_path(tmpdir, config):
spec = Spec('python')
spec.concretize()
- layout = YamlDirectoryLayout(str(tmpdir))
+ layout = DirectoryLayout(str(tmpdir))
rel_path = os.path.join(layout.metadata_dir, layout.packages_dir)
assert layout.build_packages_path(spec) == os.path.join(spec.prefix,
rel_path)
diff --git a/lib/spack/spack/test/env.py b/lib/spack/spack/test/env.py
new file mode 100644
index 0000000000..023c621445
--- /dev/null
+++ b/lib/spack/spack/test/env.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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)
+
+"""Test environment internals without CLI"""
+
+import spack.environment as ev
+import spack.spec
+
+
+def test_hash_change_no_rehash_concrete(tmpdir, mock_packages, config):
+ # create an environment
+ env_path = tmpdir.mkdir('env_dir').strpath
+ env = ev.Environment(env_path)
+ env.write()
+
+ # add a spec with a rewritten build hash
+ spec = spack.spec.Spec('mpileaks')
+ env.add(spec)
+ env.concretize()
+
+ # rewrite the hash
+ old_hash = env.concretized_order[0]
+ new_hash = 'abc'
+ env.specs_by_hash[old_hash]._build_hash = new_hash
+ env.concretized_order[0] = new_hash
+ env.specs_by_hash[new_hash] = env.specs_by_hash[old_hash]
+ del env.specs_by_hash[old_hash]
+ env.write()
+
+ # Read environment
+ read_in = ev.Environment(env_path)
+
+ # Ensure read hashes are used (rewritten hash seen on read)
+ assert read_in.concretized_order
+ assert read_in.concretized_order[0] in read_in.specs_by_hash
+ assert read_in.specs_by_hash[read_in.concretized_order[0]]._build_hash == new_hash
diff --git a/lib/spack/spack/test/environment.py b/lib/spack/spack/test/environment.py
new file mode 100644
index 0000000000..145f390b28
--- /dev/null
+++ b/lib/spack/spack/test/environment.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2021 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)
+
+import pickle
+
+from spack.environment import Environment
+
+
+def test_environment_pickle(tmpdir):
+ env1 = Environment(str(tmpdir))
+ obj = pickle.dumps(env1)
+ env2 = pickle.loads(obj)
+ assert isinstance(env2, Environment)
diff --git a/lib/spack/spack/test/environment_modifications.py b/lib/spack/spack/test/environment_modifications.py
index d1f5a4b791..aa27132fbf 100644
--- a/lib/spack/spack/test/environment_modifications.py
+++ b/lib/spack/spack/test/environment_modifications.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,13 +6,19 @@
import os
import pytest
+
import spack.util.environment as environment
from spack.paths import spack_root
-from spack.util.environment import EnvironmentModifications
-from spack.util.environment import RemovePath, PrependPath, AppendPath
-from spack.util.environment import SetEnv, UnsetEnv
-from spack.util.environment import filter_system_paths, is_system_path
-
+from spack.util.environment import (
+ AppendPath,
+ EnvironmentModifications,
+ PrependPath,
+ RemovePath,
+ SetEnv,
+ UnsetEnv,
+ filter_system_paths,
+ is_system_path,
+)
datadir = os.path.join(spack_root, 'lib', 'spack', 'spack', 'test', 'data')
diff --git a/lib/spack/spack/test/fetch_strategy.py b/lib/spack/spack/test/fetch_strategy.py
index 5470d88c13..d7f770eac3 100644
--- a/lib/spack/spack/test/fetch_strategy.py
+++ b/lib/spack/spack/test/fetch_strategy.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/flag_handlers.py b/lib/spack/spack/test/flag_handlers.py
index 6c7651ad19..4ec849a266 100644
--- a/lib/spack/spack/test/flag_handlers.py
+++ b/lib/spack/spack/test/flag_handlers.py
@@ -1,16 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
import os
-import spack.spec
-import spack.repo
-import spack.build_environment
+import pytest
-from spack.pkgkit import inject_flags, env_flags, build_system_flags
+import spack.build_environment
+import spack.repo
+import spack.spec
+from spack.pkgkit import build_system_flags, env_flags, inject_flags
@pytest.fixture()
diff --git a/lib/spack/spack/test/git_fetch.py b/lib/spack/spack/test/git_fetch.py
index 8dc57da793..9c4c993953 100644
--- a/lib/spack/spack/test/git_fetch.py
+++ b/lib/spack/spack/test/git_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,15 +9,15 @@ import shutil
import pytest
-from llnl.util.filesystem import working_dir, touch, mkdirp
+from llnl.util.filesystem import mkdirp, touch, working_dir
-import spack.repo
import spack.config
+import spack.repo
+from spack.fetch_strategy import GitFetchStrategy
from spack.spec import Spec
from spack.stage import Stage
-from spack.version import ver
-from spack.fetch_strategy import GitFetchStrategy
from spack.util.executable import which
+from spack.version import ver
pytestmark = pytest.mark.skipif(
not which('git'), reason='requires git to be installed')
@@ -37,7 +37,8 @@ def git_version(request, monkeypatch):
use the backward-compatibility code paths with newer git versions.
"""
git = which('git', required=True)
- real_git_version = ver(git('--version', output=str).lstrip('git version '))
+ real_git_version = (
+ spack.fetch_strategy.GitFetchStrategy.version_from_git(git))
if request.param is None:
# Don't patch; run with the real git_version method.
@@ -211,7 +212,7 @@ def test_get_full_repo(get_full_repo, git_version, mock_git_repository,
ncommits = len(commits)
if get_full_repo:
- assert(nbranches == 5)
+ assert(nbranches >= 5)
assert(ncommits == 2)
else:
assert(nbranches == 2)
diff --git a/lib/spack/spack/test/graph.py b/lib/spack/spack/test/graph.py
index 7ad1a75a90..997d4ffe58 100644
--- a/lib/spack/spack/test/graph.py
+++ b/lib/spack/spack/test/graph.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,8 +6,8 @@
from six import StringIO
import spack.repo
+from spack.graph import AsciiGraph, graph_dot, topological_sort
from spack.spec import Spec
-from spack.graph import AsciiGraph, topological_sort, graph_dot
def test_topo_sort(mock_packages):
@@ -122,3 +122,12 @@ o dyninst
|/
o libelf
'''
+
+
+def test_topo_sort_filtered(mock_packages):
+ """Test topo sort gives correct order when filtering link deps."""
+ s = Spec('both-link-and-build-dep-a').normalized()
+
+ topo = topological_sort(s, deptype=('link',))
+
+ assert topo == ['both-link-and-build-dep-a', 'both-link-and-build-dep-c']
diff --git a/lib/spack/spack/test/hg_fetch.py b/lib/spack/spack/test/hg_fetch.py
index 2cdeace3e4..e3e5364904 100644
--- a/lib/spack/spack/test/hg_fetch.py
+++ b/lib/spack/spack/test/hg_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,15 @@ import os
import pytest
-from llnl.util.filesystem import working_dir, touch, mkdirp
+from llnl.util.filesystem import mkdirp, touch, working_dir
-import spack.repo
import spack.config
+import spack.repo
+from spack.fetch_strategy import HgFetchStrategy
from spack.spec import Spec
from spack.stage import Stage
-from spack.version import ver
-from spack.fetch_strategy import HgFetchStrategy
from spack.util.executable import which
-
+from spack.version import ver
pytestmark = pytest.mark.skipif(
not which('hg'), reason='requires mercurial to be installed')
diff --git a/lib/spack/spack/test/install.py b/lib/spack/spack/test/install.py
index c2a8d0b100..67d50d2273 100644
--- a/lib/spack/spack/test/install.py
+++ b/lib/spack/spack/test/install.py
@@ -1,22 +1,29 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
-import pytest
import shutil
+import pytest
+
import llnl.util.filesystem as fs
-from spack.package import InstallError, PackageBase, PackageStillNeededError
import spack.error
import spack.patch
import spack.repo
import spack.store
+import spack.util.spack_json as sjson
+from spack.package import (
+ InstallError,
+ PackageBase,
+ PackageStillNeededError,
+ _spack_build_envfile,
+ _spack_build_logfile,
+ _spack_configure_argsfile,
+)
from spack.spec import Spec
-from spack.package import (_spack_build_envfile, _spack_build_logfile,
- _spack_configure_argsfile)
def find_nothing(*args):
@@ -119,6 +126,31 @@ def test_partial_install_delete_prefix_and_stage(install_mockery, mock_fetch):
pkg.remove_prefix = instance_rm_prefix
+@pytest.mark.disable_clean_stage_check
+def test_failing_overwrite_install_should_keep_previous_installation(
+ mock_fetch, install_mockery
+):
+ """
+ Make sure that whenever `spack install --overwrite` fails, spack restores
+ the original install prefix instead of cleaning it.
+ """
+ # Do a successful install
+ spec = Spec('canfail').concretized()
+ pkg = spack.repo.get(spec)
+ pkg.succeed = True
+
+ # Do a failing overwrite install
+ pkg.do_install()
+ pkg.succeed = False
+ kwargs = {'overwrite': [spec.dag_hash()]}
+
+ with pytest.raises(Exception):
+ pkg.do_install(**kwargs)
+
+ assert pkg.installed
+ assert os.path.exists(spec.prefix)
+
+
def test_dont_add_patches_to_installed_package(install_mockery, mock_fetch):
dependency = Spec('dependency-install')
dependency.concretize()
@@ -161,6 +193,32 @@ def test_install_dependency_symlinks_pkg(
assert os.path.isdir(dependency_dir)
+def test_install_times(
+ install_mockery, mock_fetch, mutable_mock_repo):
+ """Test install times added."""
+ spec = Spec('dev-build-test-install-phases')
+ spec.concretize()
+ pkg = spec.package
+ pkg.do_install()
+
+ # Ensure dependency directory exists after the installation.
+ install_times = os.path.join(pkg.prefix, ".spack", 'install_times.json')
+ assert os.path.isfile(install_times)
+
+ # Ensure the phases are included
+ with open(install_times, 'r') as timefile:
+ times = sjson.load(timefile.read())
+
+ # The order should be maintained
+ phases = [x['name'] for x in times['phases']]
+ total = sum([x['seconds'] for x in times['phases']])
+ for name in ['one', 'two', 'three', 'install']:
+ assert name in phases
+
+ # Give a generous difference threshold
+ assert abs(total - times['total']['seconds']) < 5
+
+
def test_flatten_deps(
install_mockery, mock_fetch, mutable_mock_repo):
"""Explicitly test the flattening code for coverage purposes."""
@@ -183,70 +241,70 @@ def test_flatten_deps(
assert os.path.isdir(dependency_dir)
-def test_installed_upstream_external(
- tmpdir_factory, install_mockery, mock_fetch, gen_mock_layout,
- monkeypatch):
- """Check that when a dependency package is recorded as installed in
- an upstream database that it is not reinstalled.
+@pytest.fixture()
+def install_upstream(tmpdir_factory, gen_mock_layout, install_mockery):
+ """Provides a function that installs a specified set of specs to an
+ upstream database. The function returns a store which points to the
+ upstream, as well as the upstream layout (for verifying that dependent
+ installs are using the upstream installs).
"""
mock_db_root = str(tmpdir_factory.mktemp('mock_db_root'))
prepared_db = spack.database.Database(mock_db_root)
-
upstream_layout = gen_mock_layout('/a/')
- dependency = spack.spec.Spec('externaltool')
- dependency.concretize()
- prepared_db.add(dependency, upstream_layout)
-
- downstream_db_root = str(
- tmpdir_factory.mktemp('mock_downstream_db_root'))
- db_for_test = spack.database.Database(
- downstream_db_root, upstream_dbs=[prepared_db])
- monkeypatch.setattr(spack.store, 'db', db_for_test)
- dependent = spack.spec.Spec('externaltest')
- dependent.concretize()
+ def _install_upstream(*specs):
+ for spec_str in specs:
+ s = spack.spec.Spec(spec_str).concretized()
+ prepared_db.add(s, upstream_layout)
- new_dependency = dependent['externaltool']
- assert new_dependency.external
- assert new_dependency.prefix == '/path/to/external_tool'
+ downstream_root = str(tmpdir_factory.mktemp('mock_downstream_db_root'))
+ db_for_test = spack.database.Database(
+ downstream_root, upstream_dbs=[prepared_db]
+ )
+ store = spack.store.Store(downstream_root)
+ store.db = db_for_test
+ return store, upstream_layout
- dependent.package.do_install()
+ return _install_upstream
- assert not os.path.exists(new_dependency.prefix)
- assert os.path.exists(dependent.prefix)
-
-def test_installed_upstream(tmpdir_factory, install_mockery, mock_fetch,
- gen_mock_layout, monkeypatch):
+def test_installed_upstream_external(install_upstream, mock_fetch):
"""Check that when a dependency package is recorded as installed in
- an upstream database that it is not reinstalled.
+ an upstream database that it is not reinstalled.
"""
- mock_db_root = str(tmpdir_factory.mktemp('mock_db_root'))
- prepared_db = spack.database.Database(mock_db_root)
+ s, _ = install_upstream('externaltool')
+ with spack.store.use_store(s):
+ dependent = spack.spec.Spec('externaltest')
+ dependent.concretize()
- upstream_layout = gen_mock_layout('/a/')
+ new_dependency = dependent['externaltool']
+ assert new_dependency.external
+ assert new_dependency.prefix == '/path/to/external_tool'
- dependency = spack.spec.Spec('dependency-install')
- dependency.concretize()
- prepared_db.add(dependency, upstream_layout)
-
- downstream_db_root = str(
- tmpdir_factory.mktemp('mock_downstream_db_root'))
- db_for_test = spack.database.Database(
- downstream_db_root, upstream_dbs=[prepared_db])
- monkeypatch.setattr(spack.store, 'db', db_for_test)
- dependent = spack.spec.Spec('dependent-install')
- dependent.concretize()
+ dependent.package.do_install()
+
+ assert not os.path.exists(new_dependency.prefix)
+ assert os.path.exists(dependent.prefix)
- new_dependency = dependent['dependency-install']
- assert new_dependency.package.installed_upstream
- assert (new_dependency.prefix ==
- upstream_layout.path_for_spec(dependency))
- dependent.package.do_install()
+def test_installed_upstream(install_upstream, mock_fetch):
+ """Check that when a dependency package is recorded as installed in
+ an upstream database that it is not reinstalled.
+ """
+ s, upstream_layout = install_upstream('dependency-install')
+ with spack.store.use_store(s):
+ dependency = spack.spec.Spec('dependency-install').concretized()
+ dependent = spack.spec.Spec('dependent-install').concretized()
+
+ new_dependency = dependent['dependency-install']
+ assert new_dependency.package.installed_upstream
+ assert (new_dependency.prefix ==
+ upstream_layout.path_for_spec(dependency))
- assert not os.path.exists(new_dependency.prefix)
- assert os.path.exists(dependent.prefix)
+ dependent.package.do_install()
+
+ assert not os.path.exists(new_dependency.prefix)
+ assert os.path.exists(dependent.prefix)
@pytest.mark.disable_clean_stage_check
@@ -298,6 +356,23 @@ def test_second_install_no_overwrite_first(install_mockery, mock_fetch):
spack.package.Package.remove_prefix = remove_prefix
+def test_install_prefix_collision_fails(config, mock_fetch, mock_packages, tmpdir):
+ """
+ Test that different specs with coinciding install prefixes will fail
+ to install.
+ """
+ projections = {'all': 'all-specs-project-to-this-prefix'}
+ store = spack.store.Store(str(tmpdir), projections=projections)
+ with spack.store.use_store(store):
+ with spack.config.override('config:checksum', False):
+ pkg_a = Spec('libelf@0.8.13').concretized().package
+ pkg_b = Spec('libelf@0.8.12').concretized().package
+ pkg_a.do_install()
+
+ with pytest.raises(InstallError, match="Install prefix collision"):
+ pkg_b.do_install()
+
+
def test_store(install_mockery, mock_fetch):
spec = Spec('cmake-client').concretized()
pkg = spec.package
diff --git a/lib/spack/spack/test/installer.py b/lib/spack/spack/test/installer.py
index 590c4a4a1a..37ce6f5bdb 100644
--- a/lib/spack/spack/test/installer.py
+++ b/lib/spack/spack/test/installer.py
@@ -1,19 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
import py
import pytest
import llnl.util.filesystem as fs
-import llnl.util.tty as tty
import llnl.util.lock as ulk
+import llnl.util.tty as tty
import spack.binary_distribution
import spack.compilers
-import spack.directory_layout as dl
import spack.installer as inst
import spack.package_prefs as prefs
import spack.repo
@@ -64,7 +64,7 @@ def create_build_task(pkg, install_args={}):
Create a built task for the given (concretized) package
Args:
- pkg (PackageBase): concretized package associated with the task
+ pkg (spack.package.PackageBase): concretized package associated with the task
install_args (dict): dictionary of kwargs (or install args)
Return:
@@ -79,10 +79,10 @@ def create_installer(installer_args):
Create an installer using the concretized spec for each arg
Args:
- installer_args (list of tuples): the list of (spec name, kwargs) tuples
+ installer_args (list): the list of (spec name, kwargs) tuples
Return:
- installer (PackageInstaller): the associated package installer
+ spack.installer.PackageInstaller: the associated package installer
"""
const_arg = [(spec.package, kwargs) for spec, kwargs in installer_args]
return inst.PackageInstaller(const_arg)
@@ -92,11 +92,11 @@ def installer_args(spec_names, kwargs={}):
"""Return a the installer argument with each spec paired with kwargs
Args:
- spec_names (list of str): list of spec names
+ spec_names (list): list of spec names
kwargs (dict or None): install arguments to apply to all of the specs
Returns:
- list of (spec, kwargs): the installer constructor argument
+ list: list of (spec, kwargs), the installer constructor argument
"""
arg = []
for name in spec_names:
@@ -229,26 +229,32 @@ def test_process_binary_cache_tarball_tar(install_mockery, monkeypatch, capfd):
def test_try_install_from_binary_cache(install_mockery, mock_packages,
- monkeypatch, capsys):
- """Tests SystemExit path for_try_install_from_binary_cache."""
- def _mirrors_for_spec(spec, force, full_hash_match=False):
- spec = spack.spec.Spec('mpi').concretized()
- return [{
- 'mirror_url': 'notused',
- 'spec': spec,
- }]
+ monkeypatch):
+ """Tests SystemExit path for_try_install_from_binary_cache.
+
+ This test does not make sense. We tell spack there is a mirror
+ with a binary for this spec and then expect it to die because there
+ are no mirrors configured."""
+ # def _mirrors_for_spec(spec, full_hash_match=False):
+ # spec = spack.spec.Spec('mpi').concretized()
+ # return [{
+ # 'mirror_url': 'notused',
+ # 'spec': spec,
+ # }]
spec = spack.spec.Spec('mpich')
spec.concretize()
- monkeypatch.setattr(
- spack.binary_distribution, 'get_mirrors_for_spec', _mirrors_for_spec)
+ # monkeypatch.setattr(
+ # spack.binary_distribution, 'get_mirrors_for_spec', _mirrors_for_spec)
- with pytest.raises(SystemExit):
- inst._try_install_from_binary_cache(spec.package, False, False)
+ # with pytest.raises(SystemExit):
+ # inst._try_install_from_binary_cache(spec.package, False, False)
+ result = inst._try_install_from_binary_cache(spec.package, False, False)
+ assert(not result)
- captured = capsys.readouterr()
- assert 'add a spack mirror to allow download' in str(captured)
+ # captured = capsys.readouterr()
+ # assert 'add a spack mirror to allow download' in str(captured)
def test_installer_repr(install_mockery):
@@ -579,6 +585,32 @@ def test_clear_failures_errs(install_mockery, monkeypatch, capsys):
monkeypatch.setattr(os, 'remove', orig_fn)
+def test_combine_phase_logs(tmpdir):
+ """Write temporary files, and assert that combine phase logs works
+ to combine them into one file. We aren't currently using this function,
+ but it's available when the logs are refactored to be written separately.
+ """
+ log_files = ['configure-out.txt', 'install-out.txt', 'build-out.txt']
+ phase_log_files = []
+
+ # Create and write to dummy phase log files
+ for log_file in log_files:
+ phase_log_file = os.path.join(str(tmpdir), log_file)
+ with open(phase_log_file, 'w') as plf:
+ plf.write('Output from %s\n' % log_file)
+ phase_log_files.append(phase_log_file)
+
+ # This is the output log we will combine them into
+ combined_log = os.path.join(str(tmpdir), "combined-out.txt")
+ spack.installer.combine_phase_logs(phase_log_files, combined_log)
+ with open(combined_log, 'r') as log_file:
+ out = log_file.read()
+
+ # Ensure each phase log file is represented
+ for log_file in log_files:
+ assert "Output from %s\n" % log_file in out
+
+
def test_check_deps_status_install_failure(install_mockery, monkeypatch):
const_arg = installer_args(['a'], {})
installer = create_installer(const_arg)
@@ -751,7 +783,11 @@ def test_requeue_task(install_mockery, capfd):
installer = create_installer(const_arg)
task = create_build_task(installer.build_requests[0].pkg)
+ # temporarily set tty debug messages on so we can test output
+ current_debug_level = tty.debug_level()
+ tty.set_debug(1)
installer._requeue_task(task)
+ tty.set_debug(current_debug_level)
ids = list(installer.build_tasks)
assert len(ids) == 1
@@ -760,7 +796,7 @@ def test_requeue_task(install_mockery, capfd):
assert qtask.sequence > task.sequence
assert qtask.attempts == task.attempts + 1
- out = capfd.readouterr()[0]
+ out = capfd.readouterr()[1]
assert 'Installing a' in out
assert ' in progress by another process' in out
@@ -879,7 +915,8 @@ def test_install_failed(install_mockery, monkeypatch, capsys):
# Make sure the package is identified as failed
monkeypatch.setattr(spack.database.Database, 'prefix_failed', _true)
- installer.install()
+ with pytest.raises(inst.InstallError, match='request failed'):
+ installer.install()
out = str(capsys.readouterr())
assert installer.build_requests[0].pkg_id in out
@@ -894,7 +931,8 @@ def test_install_failed_not_fast(install_mockery, monkeypatch, capsys):
# Make sure the package is identified as failed
monkeypatch.setattr(spack.database.Database, 'prefix_failed', _true)
- installer.install()
+ with pytest.raises(inst.InstallError, match='request failed'):
+ installer.install()
out = str(capsys.readouterr())
assert 'failed to install' in out
@@ -1046,7 +1084,9 @@ def test_install_lock_failures(install_mockery, monkeypatch, capfd):
# Ensure don't continually requeue the task
monkeypatch.setattr(inst.PackageInstaller, '_requeue_task', _requeued)
- installer.install()
+ with pytest.raises(inst.InstallError, match='request failed'):
+ installer.install()
+
out = capfd.readouterr()[0]
expected = ['write locked', 'read locked', 'requeued']
for exp, ln in zip(expected, out.split('\n')):
@@ -1077,7 +1117,9 @@ def test_install_lock_installed_requeue(install_mockery, monkeypatch, capfd):
# Ensure don't continually requeue the task
monkeypatch.setattr(inst.PackageInstaller, '_requeue_task', _requeued)
- installer.install()
+ with pytest.raises(inst.InstallError, match='request failed'):
+ installer.install()
+
assert b_pkg_id not in installer.installed
out = capfd.readouterr()[0]
@@ -1113,7 +1155,9 @@ def test_install_read_locked_requeue(install_mockery, monkeypatch, capfd):
const_arg = installer_args(['b'], {})
installer = create_installer(const_arg)
- installer.install()
+ with pytest.raises(inst.InstallError, match='request failed'):
+ installer.install()
+
assert 'b' not in installer.installed
out = capfd.readouterr()[0]
@@ -1122,47 +1166,6 @@ def test_install_read_locked_requeue(install_mockery, monkeypatch, capfd):
assert exp in ln
-def test_install_dir_exists(install_mockery, monkeypatch):
- """Cover capture of install directory exists error."""
- def _install(installer, task):
- raise dl.InstallDirectoryAlreadyExistsError(task.pkg.prefix)
-
- # Ensure raise the desired exception
- monkeypatch.setattr(inst.PackageInstaller, '_install_task', _install)
-
- const_arg = installer_args(['b'], {})
- installer = create_installer(const_arg)
-
- err = 'already exists'
- with pytest.raises(dl.InstallDirectoryAlreadyExistsError, match=err):
- installer.install()
-
- b, _ = const_arg[0]
- assert inst.package_id(b.package) in installer.installed
-
-
-def test_install_dir_exists_multi(install_mockery, monkeypatch, capfd):
- """Cover capture of install directory exists error for multiple specs."""
- def _install(installer, task):
- raise dl.InstallDirectoryAlreadyExistsError(task.pkg.prefix)
-
- # Skip the actual installation though should never reach it
- monkeypatch.setattr(inst.PackageInstaller, '_install_task', _install)
-
- # Use two packages to ensure multiple specs
- const_arg = installer_args(['b', 'c'], {})
- installer = create_installer(const_arg)
-
- with pytest.raises(inst.InstallError, match='Installation request failed'):
- installer.install()
-
- err = capfd.readouterr()[1]
- assert 'already exists' in err
- for spec, install_args in const_arg:
- pkg_id = inst.package_id(spec.package)
- assert pkg_id in installer.installed
-
-
def test_install_skip_patch(install_mockery, mock_fetch):
"""Test the path skip_patch install path."""
spec_name = 'b'
diff --git a/lib/spack/spack/test/link_paths.py b/lib/spack/spack/test/link_paths.py
index 79a69942aa..c1ce12d73b 100644
--- a/lib/spack/spack/test/link_paths.py
+++ b/lib/spack/spack/test/link_paths.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
import os
+import pytest
+
import spack.paths
from spack.compiler import _parse_non_system_link_dirs
diff --git a/lib/spack/spack/test/llnl/util/__init__.py b/lib/spack/spack/test/llnl/util/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/test/llnl/util/__init__.py
+++ b/lib/spack/spack/test/llnl/util/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/llnl/util/argparsewriter.py b/lib/spack/spack/test/llnl/util/argparsewriter.py
index 127149bbaa..deba013363 100644
--- a/lib/spack/spack/test/llnl/util/argparsewriter.py
+++ b/lib/spack/spack/test/llnl/util/argparsewriter.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,6 @@ import llnl.util.argparsewriter as aw
import spack.main
-
parser = spack.main.make_argument_parser()
spack.main.add_all_commands(parser)
diff --git a/lib/spack/spack/test/llnl/util/file_list.py b/lib/spack/spack/test/llnl/util/file_list.py
index e4036fe492..964098ce1a 100644
--- a/lib/spack/spack/test/llnl/util/file_list.py
+++ b/lib/spack/spack/test/llnl/util/file_list.py
@@ -1,16 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os
import fnmatch
+import os
-import six
import pytest
+import six
-from llnl.util.filesystem import LibraryList, HeaderList
-from llnl.util.filesystem import find_libraries, find_headers, find
+from llnl.util.filesystem import (
+ HeaderList,
+ LibraryList,
+ find,
+ find_headers,
+ find_libraries,
+)
import spack.paths
diff --git a/lib/spack/spack/test/llnl/util/filesystem.py b/lib/spack/spack/test/llnl/util/filesystem.py
index 501c07a1f6..0db8e93ae8 100644
--- a/lib/spack/spack/test/llnl/util/filesystem.py
+++ b/lib/spack/spack/test/llnl/util/filesystem.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ import sys
import pytest
import llnl.util.filesystem as fs
+
import spack.paths
@@ -588,3 +589,24 @@ def test_content_of_files_with_same_name(tmpdir):
# and have not been mixed
assert file1.read().strip() == 'file1'
assert file2.read().strip() == 'file2'
+
+
+def test_keep_modification_time(tmpdir):
+ file1 = tmpdir.ensure('file1')
+ file2 = tmpdir.ensure('file2')
+
+ # Shift the modification time of the file 10 seconds back:
+ mtime1 = file1.mtime() - 10
+ file1.setmtime(mtime1)
+
+ with fs.keep_modification_time(file1.strpath,
+ file2.strpath,
+ 'non-existing-file'):
+ file1.write('file1')
+ file2.remove()
+
+ # Assert that the modifications took place the modification time has not
+ # changed;
+ assert file1.read().strip() == 'file1'
+ assert not file2.exists()
+ assert int(mtime1) == int(file1.mtime())
diff --git a/lib/spack/spack/test/llnl/util/lang.py b/lib/spack/spack/test/llnl/util/lang.py
index 83342dd6ed..d9561bb2a5 100644
--- a/lib/spack/spack/test/llnl/util/lang.py
+++ b/lib/spack/spack/test/llnl/util/lang.py
@@ -1,15 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
-
import os.path
+import sys
from datetime import datetime, timedelta
+import pytest
+
import llnl.util.lang
-from llnl.util.lang import pretty_date, match_predicate
+from llnl.util.lang import match_predicate, pretty_date
@pytest.fixture()
@@ -27,7 +28,12 @@ value = 1
path = os.path.join('/usr', 'bin')
"""
m.write(content)
- return str(m)
+
+ yield str(m)
+
+ # Don't leave garbage in the module system
+ if 'foo' in sys.modules:
+ del sys.modules['foo']
def test_pretty_date():
@@ -127,13 +133,75 @@ def test_match_predicate():
def test_load_modules_from_file(module_path):
+ # Check prerequisites
+ assert 'foo' not in sys.modules
+
+ # Check that the module is loaded correctly from file
foo = llnl.util.lang.load_module_from_file('foo', module_path)
+ assert 'foo' in sys.modules
assert foo.value == 1
assert foo.path == os.path.join('/usr', 'bin')
+ # Check that the module is not reloaded a second time on subsequent calls
+ foo.value = 2
+ foo = llnl.util.lang.load_module_from_file('foo', module_path)
+ assert 'foo' in sys.modules
+ assert foo.value == 2
+ assert foo.path == os.path.join('/usr', 'bin')
+
def test_uniq():
assert [1, 2, 3] == llnl.util.lang.uniq([1, 2, 3])
assert [1, 2, 3] == llnl.util.lang.uniq([1, 1, 1, 1, 2, 2, 2, 3, 3])
assert [1, 2, 1] == llnl.util.lang.uniq([1, 1, 1, 1, 2, 2, 2, 1, 1])
assert [] == llnl.util.lang.uniq([])
+
+
+def test_key_ordering():
+ """Ensure that key ordering works correctly."""
+
+ with pytest.raises(TypeError):
+ @llnl.util.lang.key_ordering
+ class ClassThatHasNoCmpKeyMethod(object):
+ # this will raise b/c it does not define _cmp_key
+ pass
+
+ @llnl.util.lang.key_ordering
+ class KeyComparable(object):
+ def __init__(self, t):
+ self.t = t
+
+ def _cmp_key(self):
+ return self.t
+
+ a = KeyComparable((1, 2, 3))
+ a2 = KeyComparable((1, 2, 3))
+ b = KeyComparable((2, 3, 4))
+ b2 = KeyComparable((2, 3, 4))
+
+ assert a == a
+ assert a == a2
+ assert a2 == a
+
+ assert b == b
+ assert b == b2
+ assert b2 == b
+
+ assert a != b
+
+ assert a < b
+ assert b > a
+
+ assert a <= b
+ assert b >= a
+
+ assert a <= a
+ assert a <= a2
+ assert b >= b
+ assert b >= b2
+
+ assert hash(a) != hash(b)
+ assert hash(a) == hash(a)
+ assert hash(a) == hash(a2)
+ assert hash(b) == hash(b)
+ assert hash(b) == hash(b2)
diff --git a/lib/spack/spack/test/llnl/util/link_tree.py b/lib/spack/spack/test/llnl/util/link_tree.py
index bebb3da805..84fa306135 100644
--- a/lib/spack/spack/test/llnl/util/link_tree.py
+++ b/lib/spack/spack/test/llnl/util/link_tree.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,8 +6,10 @@
import os
import pytest
-from llnl.util.filesystem import working_dir, mkdirp, touchp
+
+from llnl.util.filesystem import mkdirp, touchp, working_dir
from llnl.util.link_tree import LinkTree
+
from spack.stage import Stage
diff --git a/lib/spack/spack/test/llnl/util/lock.py b/lib/spack/spack/test/llnl/util/lock.py
index d4b61929c2..3d91ce075d 100644
--- a/lib/spack/spack/test/llnl/util/lock.py
+++ b/lib/spack/spack/test/llnl/util/lock.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -45,13 +45,13 @@ actually on a shared filesystem.
import collections
import errno
import fcntl
+import getpass
+import glob
import os
-import socket
import shutil
+import socket
import tempfile
import traceback
-import glob
-import getpass
from contextlib import contextmanager
from multiprocessing import Process, Queue
@@ -61,7 +61,6 @@ import llnl.util.lock as lk
import llnl.util.multiproc as mp
from llnl.util.filesystem import touch
-
#
# This test can be run with MPI. MPI is "enabled" if we can import
# mpi4py and the number of total MPI processes is greater than 1.
@@ -661,10 +660,6 @@ def test_upgrade_read_to_write(private_lock_path):
assert lock._file is None
-@pytest.mark.skipif(
- os.environ.get('SPACK_TEST_SOLVER') == 'clingo',
- reason='Test for Clingo are run in a container with root permissions'
-)
def test_upgrade_read_to_write_fails_with_readonly_file(private_lock_path):
"""Test that read-only file can be read-locked but not write-locked."""
# ensure lock file exists the first time
@@ -1192,7 +1187,7 @@ def test_nested_reads(lock_path):
class LockDebugOutput(object):
def __init__(self, lock_path):
self.lock_path = lock_path
- self.host = socket.getfqdn()
+ self.host = socket.gethostname()
def p1(self, barrier, q1, q2):
# exchange pids
diff --git a/lib/spack/spack/test/llnl/util/tty/__init__.py b/lib/spack/spack/test/llnl/util/tty/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/test/llnl/util/tty/__init__.py
+++ b/lib/spack/spack/test/llnl/util/tty/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/llnl/util/tty/log.py b/lib/spack/spack/test/llnl/util/tty/log.py
index 811b6c6642..78d4e24fa4 100644
--- a/lib/spack/spack/test/llnl/util/tty/log.py
+++ b/lib/spack/spack/test/llnl/util/tty/log.py
@@ -1,20 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 __future__ import print_function
+
import contextlib
import multiprocessing
import os
import signal
import sys
import time
-
-try:
- import termios
-except ImportError:
- termios = None
+from types import ModuleType # novm
+from typing import Optional # novm
import pytest
@@ -25,6 +23,13 @@ from llnl.util.tty.pty import PseudoShell
from spack.util.executable import which
+termios = None # type: Optional[ModuleType]
+try:
+ import termios as term_mod
+ termios = term_mod
+except ImportError:
+ pass
+
@contextlib.contextmanager
def nullcontext():
@@ -73,6 +78,39 @@ def test_log_python_output_and_echo_output(capfd, tmpdir):
assert capfd.readouterr()[0] == 'force echo\n'
+def _log_filter_fn(string):
+ return string.replace("foo", "bar")
+
+
+def test_log_output_with_filter(capfd, tmpdir):
+ with tmpdir.as_cwd():
+ with log_output('foo.txt', filter_fn=_log_filter_fn):
+ print('foo blah')
+ print('blah foo')
+ print('foo foo')
+
+ # foo.txt output is not filtered
+ with open('foo.txt') as f:
+ assert f.read() == 'foo blah\nblah foo\nfoo foo\n'
+
+ # output is not echoed
+ assert capfd.readouterr()[0] == ''
+
+ # now try with echo
+ with tmpdir.as_cwd():
+ with log_output('foo.txt', echo=True, filter_fn=_log_filter_fn):
+ print('foo blah')
+ print('blah foo')
+ print('foo foo')
+
+ # foo.txt output is still not filtered
+ with open('foo.txt') as f:
+ assert f.read() == 'foo blah\nblah foo\nfoo foo\n'
+
+ # echoed output is filtered.
+ assert capfd.readouterr()[0] == 'bar blah\nblah bar\nbar bar\n'
+
+
@pytest.mark.skipif(not which('echo'), reason="needs echo command")
def test_log_subproc_and_echo_output_no_capfd(capfd, tmpdir):
echo = which('echo')
@@ -112,12 +150,13 @@ def test_log_subproc_and_echo_output_capfd(capfd, tmpdir):
#
def simple_logger(**kwargs):
"""Mock logger (minion) process for testing log.keyboard_input."""
+ running = [True]
+
def handler(signum, frame):
running[0] = False
signal.signal(signal.SIGUSR1, handler)
log_path = kwargs["log_path"]
- running = [True]
with log_output(log_path):
while running[0]:
print("line")
@@ -305,6 +344,8 @@ def synchronized_logger(**kwargs):
toggle output. It is used in ``test_foreground_background_output`` below.
"""
+ running = [True]
+
def handler(signum, frame):
running[0] = False
signal.signal(signal.SIGUSR1, handler)
@@ -313,7 +354,6 @@ def synchronized_logger(**kwargs):
write_lock = kwargs["write_lock"]
v_lock = kwargs["v_lock"]
- running = [True]
sys.stderr.write(os.getcwd() + "\n")
with log_output(log_path) as logger:
with logger.force_echo():
@@ -432,20 +472,14 @@ def test_foreground_background_output(
with open(log_path) as log:
log = log.read().strip().split("\n")
- # 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 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 4 "off"'s in
- # the output to account for the race.
- #
- # Originally we only allowed 2, but GitHub's macOS runners seem to be
- # very slow, and frequently we get 3 "off"'s. Increased limit to 4 to
- # account for this. Real errors should still be caught with this limit.
+ # 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 "off"
+ # lines if the controller is slow. The important thing to observe
+ # here is that we started seeing 'on' in the end.
assert (
['forced output', 'on'] == uniq(output) or
- output.count("off") <= 4 # if controller_fd is a bit slow
+ ['forced output', 'off', 'on'] == uniq(output)
)
# log should be off for a while, then on, then off
diff --git a/lib/spack/spack/test/llnl/util/tty/tty.py b/lib/spack/spack/test/llnl/util/tty/tty.py
index b8366a9738..6bfea98be1 100644
--- a/lib/spack/spack/test/llnl/util/tty/tty.py
+++ b/lib/spack/spack/test/llnl/util/tty/tty.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,6 +6,7 @@
import os
import pytest
+
import llnl.util.tty as tty
diff --git a/lib/spack/spack/test/main.py b/lib/spack/spack/test/main.py
index c35a6e195b..068dce0bef 100644
--- a/lib/spack/spack/test/main.py
+++ b/lib/spack/spack/test/main.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/make_executable.py b/lib/spack/spack/test/make_executable.py
index f554fd038c..510487002a 100644
--- a/lib/spack/spack/test/make_executable.py
+++ b/lib/spack/spack/test/make_executable.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/mirror.py b/lib/spack/spack/test/mirror.py
index 8d3ec2d07b..5abc3c3e14 100644
--- a/lib/spack/spack/test/mirror.py
+++ b/lib/spack/spack/test/mirror.py
@@ -1,21 +1,22 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import filecmp
import os
+
import pytest
-import spack.repo
+from llnl.util.filesystem import resolve_link_target_relative_to_the_link
+
import spack.mirror
+import spack.repo
import spack.util.executable
from spack.spec import Spec
from spack.stage import Stage
from spack.util.executable import which
-from llnl.util.filesystem import resolve_link_target_relative_to_the_link
-
pytestmark = pytest.mark.usefixtures('mutable_config', 'mutable_mock_repo')
# paths in repos that shouldn't be in the mirror tarballs.
diff --git a/lib/spack/spack/test/module_parsing.py b/lib/spack/spack/test/module_parsing.py
index 068b40762b..bcaf292263 100644
--- a/lib/spack/spack/test/module_parsing.py
+++ b/lib/spack/spack/test/module_parsing.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
import os
-import spack
+import pytest
+
+import spack
from spack.util.module_cmd import (
+ get_path_args_from_module_line,
+ get_path_from_module_contents,
module,
path_from_modules,
- get_path_args_from_module_line,
- get_path_from_module_contents
)
test_module_lines = ['prepend-path LD_LIBRARY_PATH /path/to/lib',
diff --git a/lib/spack/spack/test/modules/__init__.py b/lib/spack/spack/test/modules/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/test/modules/__init__.py
+++ b/lib/spack/spack/test/modules/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/modules/common.py b/lib/spack/spack/test/modules/common.py
index f2cb60e1db..61303cc7a6 100644
--- a/lib/spack/spack/test/modules/common.py
+++ b/lib/spack/spack/test/modules/common.py
@@ -1,20 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import collections
import os
import stat
+
import pytest
-import collections
-import spack.spec
+import spack.error
import spack.modules.tcl
+import spack.spec
from spack.modules.common import UpstreamModuleIndex
from spack.spec import Spec
-import spack.error
-
def test_update_dictionary_extending_list():
target = {
@@ -70,7 +70,7 @@ def test_modules_written_with_proper_permissions(mock_module_filename,
# The code tested is common to all module types, but has to be tested from
# one. TCL picked at random
- generator = spack.modules.tcl.TclModulefileWriter(spec)
+ generator = spack.modules.tcl.TclModulefileWriter(spec, 'default')
generator.write()
assert mock_package_perms & os.stat(
diff --git a/lib/spack/spack/test/modules/conftest.py b/lib/spack/spack/test/modules/conftest.py
index 4ab129a5dd..2ac22fe3b4 100644
--- a/lib/spack/spack/test/modules/conftest.py
+++ b/lib/spack/spack/test/modules/conftest.py
@@ -1,13 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import pytest
import spack.config
+import spack.modules.common
import spack.paths
import spack.spec
-import spack.modules.common
import spack.util.path
@@ -19,11 +19,11 @@ def modulefile_content(request):
writer_cls = getattr(request.module, 'writer_cls')
- def _impl(spec_str):
+ def _impl(spec_str, module_set_name='default'):
# Write the module file
spec = spack.spec.Spec(spec_str)
spec.concretize()
- generator = writer_cls(spec)
+ generator = writer_cls(spec, module_set_name)
generator.write(overwrite=True)
# Get its filename
@@ -56,9 +56,9 @@ def factory(request):
# Class of the module file writer
writer_cls = getattr(request.module, 'writer_cls')
- def _mock(spec_string):
+ def _mock(spec_string, module_set_name='default'):
spec = spack.spec.Spec(spec_string)
spec.concretize()
- return writer_cls(spec), spec
+ return writer_cls(spec, module_set_name), spec
return _mock
diff --git a/lib/spack/spack/test/modules/lmod.py b/lib/spack/spack/test/modules/lmod.py
index 474277f239..861f78c7b8 100644
--- a/lib/spack/spack/test/modules/lmod.py
+++ b/lib/spack/spack/test/modules/lmod.py
@@ -1,16 +1,22 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import re
+
import pytest
+import spack.environment as ev
+import spack.main
import spack.modules.lmod
+import spack.spec
mpich_spec_string = 'mpich@3.0.4'
mpileaks_spec_string = 'mpileaks'
libdwarf_spec_string = 'libdwarf arch=x64-linux'
+install = spack.main.SpackCommand('install')
+
#: Class of the writer tested in this module
writer_cls = spack.modules.lmod.LmodModulefileWriter
@@ -314,3 +320,37 @@ class TestLmod(object):
assert writer.conf.projections == expected
projection = writer.spec.format(writer.conf.projections['all'])
assert projection in writer.layout.use_name
+
+ def test_config_backwards_compat(self, mutable_config):
+ settings = {
+ 'enable': ['lmod'],
+ 'lmod': {
+ 'core_compilers': ['%gcc@0.0.0']
+ }
+ }
+
+ spack.config.set('modules:default', settings)
+ new_format = spack.modules.lmod.configuration('default')
+
+ spack.config.set('modules', settings)
+ old_format = spack.modules.lmod.configuration('default')
+
+ assert old_format == new_format
+ assert old_format == settings['lmod']
+
+ def test_modules_relative_to_view(
+ self, tmpdir, modulefile_content, module_configuration, install_mockery,
+ mock_fetch
+ ):
+ with ev.Environment(str(tmpdir), with_view=True) as e:
+ module_configuration('with_view')
+ install('cmake')
+
+ spec = spack.spec.Spec('cmake').concretized()
+
+ content = modulefile_content('cmake')
+ expected = e.default_view.get_projection_for_spec(spec)
+ # Rather than parse all lines, ensure all prefixes in the content
+ # point to the right one
+ assert any(expected in line for line in content)
+ assert not any(spec.prefix in line for line in content)
diff --git a/lib/spack/spack/test/modules/tcl.py b/lib/spack/spack/test/modules/tcl.py
index 70e3fc6c56..464d91c278 100644
--- a/lib/spack/spack/test/modules/tcl.py
+++ b/lib/spack/spack/test/modules/tcl.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -359,14 +359,14 @@ class TestTcl(object):
# the tests database
mpileaks_specs = database.query('mpileaks')
for item in mpileaks_specs:
- writer = writer_cls(item)
+ writer = writer_cls(item, 'default')
assert not writer.conf.blacklisted
# callpath is a dependency of mpileaks, and has been pulled
# in implicitly
callpath_specs = database.query('callpath')
for item in callpath_specs:
- writer = writer_cls(item)
+ writer = writer_cls(item, 'default')
assert writer.conf.blacklisted
@pytest.mark.regression('9624')
@@ -385,3 +385,22 @@ class TestTcl(object):
# Test the mpileaks that should NOT have the autoloaded dependencies
content = modulefile_content('mpileaks ^mpich')
assert len([x for x in content if 'is-loaded' in x]) == 0
+
+ def test_config_backwards_compat(self, mutable_config):
+ settings = {
+ 'enable': ['tcl'],
+ 'tcl': {
+ 'all': {
+ 'conflict': ['{name}']
+ }
+ }
+ }
+
+ spack.config.set('modules:default', settings)
+ new_format = spack.modules.tcl.configuration('default')
+
+ spack.config.set('modules', settings)
+ old_format = spack.modules.tcl.configuration('default')
+
+ assert old_format == new_format
+ assert old_format == settings['tcl']
diff --git a/lib/spack/spack/test/monitor.py b/lib/spack/spack/test/monitor.py
new file mode 100644
index 0000000000..b060c725ee
--- /dev/null
+++ b/lib/spack/spack/test/monitor.py
@@ -0,0 +1,282 @@
+# Copyright 2013-2021 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)
+
+import os
+
+import pytest
+
+import llnl.util.tty as tty
+
+import spack.config
+import spack.monitor
+import spack.spec
+from spack.main import SpackCommand
+from spack.monitor import SpackMonitorClient
+
+install = SpackCommand('install')
+
+
+def get_client(host, prefix="ms1", disable_auth=False, allow_fail=False, tags=None,
+ save_local=False):
+ """
+ We replicate this function to not generate a global client.
+ """
+ cli = SpackMonitorClient(host=host, prefix=prefix, allow_fail=allow_fail,
+ tags=tags, save_local=save_local)
+
+ # If we don't disable auth, environment credentials are required
+ if not disable_auth and not save_local:
+ cli.require_auth()
+
+ # We will exit early if the monitoring service is not running, but
+ # only if we aren't doing a local save
+ if not save_local:
+ info = cli.service_info()
+
+ # If we allow failure, the response will be done
+ if info:
+ tty.debug("%s v.%s has status %s" % (
+ info['id'],
+ info['version'],
+ info['status'])
+ )
+ return cli
+
+
+@pytest.fixture
+def mock_monitor_request(monkeypatch):
+ """
+ Monitor requests that are shared across tests go here
+ """
+ def mock_do_request(self, endpoint, *args, **kwargs):
+
+ build = {"build_id": 1,
+ "spec_full_hash": "bpfvysmqndtmods4rmy6d6cfquwblngp",
+ "spec_name": "dttop"}
+
+ # Service Info
+ if endpoint == "":
+ organization = {"name": "spack", "url": "https://github.com/spack"}
+ return {"id": "spackmon", "status": "running",
+ "name": "Spack Monitor (Spackmon)",
+ "description": "The best spack monitor",
+ "organization": organization,
+ "contactUrl": "https://github.com/spack/spack-monitor/issues",
+ "documentationUrl": "https://spack-monitor.readthedocs.io",
+ "createdAt": "2021-04-09T21:54:51Z",
+ "updatedAt": "2021-05-24T15:06:46Z",
+ "environment": "test",
+ "version": "0.0.1",
+ "auth_instructions_url": "url"}
+
+ # New Build
+ elif endpoint == "builds/new/":
+ return {"message": "Build get or create was successful.",
+ "data": {
+ "build_created": True,
+ "build_environment_created": True,
+ "build": build
+ },
+ "code": 201}
+
+ # Update Build
+ elif endpoint == "builds/update/":
+ return {"message": "Status updated",
+ "data": {"build": build},
+ "code": 200}
+
+ # Send Analyze Metadata
+ elif endpoint == "analyze/builds/":
+ return {"message": "Metadata updated",
+ "data": {"build": build},
+ "code": 200}
+
+ # Update Build Phase
+ elif endpoint == "builds/phases/update/":
+ return {"message": "Phase autoconf was successfully updated.",
+ "code": 200,
+ "data": {
+ "build_phase": {
+ "id": 1,
+ "status": "SUCCESS",
+ "name": "autoconf"
+ }
+ }}
+
+ # Update Phase Status
+ elif endpoint == "phases/update/":
+ return {"message": "Status updated",
+ "data": {"build": build},
+ "code": 200}
+
+ # New Spec
+ elif endpoint == "specs/new/":
+ return {"message": "success",
+ "data": {
+ "full_hash": "bpfvysmqndtmods4rmy6d6cfquwblngp",
+ "name": "dttop",
+ "version": "1.0",
+ "spack_version": "0.16.0-1379-7a5351d495",
+ "specs": {
+ "dtbuild1": "btcmljubs4njhdjqt2ebd6nrtn6vsrks",
+ "dtlink1": "x4z6zv6lqi7cf6l4twz4bg7hj3rkqfmk",
+ "dtrun1": "i6inyro74p5yqigllqk5ivvwfjfsw6qz"
+ }
+ }}
+ else:
+ pytest.fail("bad endpoint: %s" % endpoint)
+ monkeypatch.setattr(spack.monitor.SpackMonitorClient, "do_request", mock_do_request)
+
+
+def test_spack_monitor_auth(mock_monitor_request):
+ with pytest.raises(SystemExit):
+ get_client(host="http://127.0.0.1")
+
+ os.environ["SPACKMON_TOKEN"] = "xxxxxxxxxxxxxxxxx"
+ os.environ["SPACKMON_USER"] = "spackuser"
+ get_client(host="http://127.0.0.1")
+
+
+def test_spack_monitor_without_auth(mock_monitor_request):
+ get_client(host="hostname", disable_auth=True)
+
+
+def test_spack_monitor_build_env(mock_monitor_request, install_mockery_mutable_config):
+ monitor = get_client(host="hostname", disable_auth=True)
+ assert hasattr(monitor, "build_environment")
+ for key in ["host_os", "platform", "host_target", "hostname", "spack_version",
+ "kernel_version"]:
+ assert key in monitor.build_environment
+
+ spec = spack.spec.Spec("dttop")
+ spec.concretize()
+ # Loads the build environment from the spec install folder
+ monitor.load_build_environment(spec)
+
+
+def test_spack_monitor_basic_auth(mock_monitor_request):
+ monitor = get_client(host="hostname", disable_auth=True)
+
+ # Headers should be empty
+ assert not monitor.headers
+ monitor.set_basic_auth("spackuser", "password")
+ assert "Authorization" in monitor.headers
+ assert monitor.headers['Authorization'].startswith("Basic")
+
+
+def test_spack_monitor_new_configuration(mock_monitor_request, install_mockery):
+ monitor = get_client(host="hostname", disable_auth=True)
+ spec = spack.spec.Spec("dttop")
+ spec.concretize()
+ response = monitor.new_configuration([spec])
+
+ # The response is a lookup of specs
+ assert "dttop" in response
+
+
+def test_spack_monitor_new_build(mock_monitor_request, install_mockery_mutable_config,
+ install_mockery):
+ monitor = get_client(host="hostname", disable_auth=True)
+ spec = spack.spec.Spec("dttop")
+ spec.concretize()
+ response = monitor.new_build(spec)
+ assert "message" in response and "data" in response and "code" in response
+ assert response['code'] == 201
+ # We should be able to get a build id
+ monitor.get_build_id(spec)
+
+
+def test_spack_monitor_update_build(mock_monitor_request, install_mockery,
+ install_mockery_mutable_config):
+ monitor = get_client(host="hostname", disable_auth=True)
+ spec = spack.spec.Spec("dttop")
+ spec.concretize()
+ response = monitor.update_build(spec, status="SUCCESS")
+ assert "message" in response and "data" in response and "code" in response
+ assert response['code'] == 200
+
+
+def test_spack_monitor_fail_task(mock_monitor_request, install_mockery,
+ install_mockery_mutable_config):
+ monitor = get_client(host="hostname", disable_auth=True)
+ spec = spack.spec.Spec("dttop")
+ spec.concretize()
+ response = monitor.fail_task(spec)
+ assert "message" in response and "data" in response and "code" in response
+ assert response['code'] == 200
+
+
+def test_spack_monitor_send_analyze_metadata(monkeypatch, mock_monitor_request,
+ install_mockery,
+ install_mockery_mutable_config):
+
+ def buildid(*args, **kwargs):
+ return 1
+ monkeypatch.setattr(spack.monitor.SpackMonitorClient, "get_build_id", buildid)
+ monitor = get_client(host="hostname", disable_auth=True)
+ spec = spack.spec.Spec("dttop")
+ spec.concretize()
+ response = monitor.send_analyze_metadata(spec.package, metadata={"boop": "beep"})
+ assert "message" in response and "data" in response and "code" in response
+ assert response['code'] == 200
+
+
+def test_spack_monitor_send_phase(mock_monitor_request, install_mockery,
+ install_mockery_mutable_config):
+
+ monitor = get_client(host="hostname", disable_auth=True)
+
+ def get_build_id(*args, **kwargs):
+ return 1
+
+ spec = spack.spec.Spec("dttop")
+ spec.concretize()
+ response = monitor.send_phase(spec.package, "autoconf",
+ spec.package.install_log_path,
+ "SUCCESS")
+ assert "message" in response and "data" in response and "code" in response
+ assert response['code'] == 200
+
+
+def test_spack_monitor_info(mock_monitor_request):
+ os.environ["SPACKMON_TOKEN"] = "xxxxxxxxxxxxxxxxx"
+ os.environ["SPACKMON_USER"] = "spackuser"
+ monitor = get_client(host="http://127.0.0.1")
+ info = monitor.service_info()
+
+ for key in ['id', 'status', 'name', 'description', 'organization',
+ 'contactUrl', 'documentationUrl', 'createdAt', 'updatedAt',
+ 'environment', 'version', 'auth_instructions_url']:
+ assert key in info
+
+
+@pytest.fixture(scope='session')
+def test_install_monitor_save_local(install_mockery_mutable_config,
+ mock_fetch, tmpdir_factory):
+ """
+ Mock installing and saving monitor results to file.
+ """
+ reports_dir = tmpdir_factory.mktemp('reports')
+ spack.config.set('config:monitor_dir', str(reports_dir))
+ out = install('--monitor', '--monitor-save-local', 'dttop')
+ assert "Successfully installed dttop" in out
+
+ # The reports directory should not be empty (timestamped folders)
+ assert os.listdir(str(reports_dir))
+
+ # Get the spec name
+ spec = spack.spec.Spec("dttop")
+ spec.concretize()
+ full_hash = spec.full_hash()
+
+ # Ensure we have monitor results saved
+ for dirname in os.listdir(str(reports_dir)):
+ dated_dir = os.path.join(str(reports_dir), dirname)
+ build_metadata = "build-metadata-%s.json" % full_hash
+ assert build_metadata in os.listdir(dated_dir)
+ spec_file = "spec-dttop-%s-config.json" % spec.version
+ assert spec_file in os.listdir(dated_dir)
+
+ spack.config.set('config:monitor_dir', "~/.spack/reports/monitor")
diff --git a/lib/spack/spack/test/multimethod.py b/lib/spack/spack/test/multimethod.py
index 0e5bd5dad5..6169584d96 100644
--- a/lib/spack/spack/test/multimethod.py
+++ b/lib/spack/spack/test/multimethod.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,6 @@ import pytest
import spack.repo
from spack.multimethod import NoSuchMethodError
-
pytestmark = pytest.mark.usefixtures('mock_packages')
diff --git a/lib/spack/spack/test/namespace_trie.py b/lib/spack/spack/test/namespace_trie.py
index 2bf83c59f2..afe3af7386 100644
--- a/lib/spack/spack/test/namespace_trie.py
+++ b/lib/spack/spack/test/namespace_trie.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/operating_system.py b/lib/spack/spack/test/operating_system.py
index 97def3feda..c2fa52fa3e 100644
--- a/lib/spack/spack/test/operating_system.py
+++ b/lib/spack/spack/test/operating_system.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/optional_deps.py b/lib/spack/spack/test/optional_deps.py
index d9268e7e14..9073a8ce19 100644
--- a/lib/spack/spack/test/optional_deps.py
+++ b/lib/spack/spack/test/optional_deps.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import pytest
+
from spack.spec import Spec
diff --git a/lib/spack/spack/test/package_class.py b/lib/spack/spack/test/package_class.py
index 33e5eb1c0a..22939105a4 100644
--- a/lib/spack/spack/test/package_class.py
+++ b/lib/spack/spack/test/package_class.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,10 @@ static DSL metadata for packages.
"""
import os
-import pytest
import shutil
+import pytest
+
import llnl.util.filesystem as fs
import spack.package
diff --git a/lib/spack/spack/test/package_hash.py b/lib/spack/spack/test/package_hash.py
index a8a160d96e..6e50fee5ce 100644
--- a/lib/spack/spack/test/package_hash.py
+++ b/lib/spack/spack/test/package_hash.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.util.package_hash import package_hash, package_content
from spack.spec import Spec
+from spack.util.package_hash import package_content, package_hash
def test_hash(tmpdir, mock_packages, config):
diff --git a/lib/spack/spack/test/package_sanity.py b/lib/spack/spack/test/package_sanity.py
index ded4d1c485..f65e008ef4 100644
--- a/lib/spack/spack/test/package_sanity.py
+++ b/lib/spack/spack/test/package_sanity.py
@@ -1,26 +1,26 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 does sanity checks on Spack's builtin package database."""
import os.path
+import pickle
import re
import pytest
+import llnl.util.tty as tty
+
+# A few functions from this module are used to
+# do sanity checks only on packagess modified by a PR
+import spack.cmd.style as style
import spack.fetch_strategy
import spack.package
import spack.paths
import spack.repo
+import spack.util.crypto as crypto
import spack.util.executable as executable
import spack.variant
-# A few functions from this module are used to
-# do sanity checks only on packagess modified by a PR
-import spack.cmd.flake8 as flake8
-import spack.util.crypto as crypto
-import pickle
-
-import llnl.util.tty as tty
def check_repo():
@@ -207,7 +207,7 @@ def test_prs_update_old_api():
deprecated calls to any method.
"""
changed_package_files = [
- x for x in flake8.changed_files() if flake8.is_package(x)
+ x for x in style.changed_files() if style.is_package(x)
]
failing = []
for file in changed_package_files:
diff --git a/lib/spack/spack/test/packages.py b/lib/spack/spack/test/packages.py
index ffaad396c1..4ebf1af69c 100644
--- a/lib/spack/spack/test/packages.py
+++ b/lib/spack/spack/test/packages.py
@@ -1,19 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os.path
+
import pytest
-import spack.repo
+import spack.directives
import spack.fetch_strategy
+import spack.repo
from spack.paths import mock_packages_path
-from spack.util.naming import mod_to_class
from spack.spec import Spec
+from spack.util.naming import mod_to_class
from spack.util.package_hash import package_content
from spack.version import VersionChecksumError
-import spack.directives
def _generate_content_strip_name(spec):
@@ -109,7 +110,6 @@ class TestPackage(object):
def test_import_package_as(self):
import spack.pkg.builtin.mock.mpich as mp # noqa
-
import spack.pkg.builtin.mock # noqa
import spack.pkg.builtin.mock as m # noqa
from spack.pkg.builtin import mock # noqa
@@ -161,11 +161,9 @@ class TestPackage(object):
import spack.pkg # noqa
import spack.pkg as p # noqa
from spack import pkg # noqa
-
import spack.pkg.builtin # noqa
import spack.pkg.builtin as b # noqa
from spack.pkg import builtin # noqa
-
import spack.pkg.builtin.mock # noqa
import spack.pkg.builtin.mock as m # noqa
from spack.pkg.builtin import mock # noqa
@@ -283,25 +281,28 @@ def test_git_url_top_level_url_versions(mock_packages, config):
pkg = spack.repo.get('git-url-top-level')
+ # leading 62 zeros of sha256 hash
+ leading_zeros = '0' * 62
+
fetcher = spack.fetch_strategy.for_package_version(pkg, '2.0')
assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy)
assert fetcher.url == 'https://example.com/some/tarball-2.0.tar.gz'
- assert fetcher.digest == 'abc20'
+ assert fetcher.digest == leading_zeros + '20'
fetcher = spack.fetch_strategy.for_package_version(pkg, '2.1')
assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy)
assert fetcher.url == 'https://example.com/some/tarball-2.1.tar.gz'
- assert fetcher.digest == 'abc21'
+ assert fetcher.digest == leading_zeros + '21'
fetcher = spack.fetch_strategy.for_package_version(pkg, '2.2')
assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy)
assert fetcher.url == 'https://www.example.com/foo2.2.tar.gz'
- assert fetcher.digest == 'abc22'
+ assert fetcher.digest == leading_zeros + '22'
fetcher = spack.fetch_strategy.for_package_version(pkg, '2.3')
assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy)
assert fetcher.url == 'https://www.example.com/foo2.3.tar.gz'
- assert fetcher.digest == 'abc23'
+ assert fetcher.digest == leading_zeros + '23'
def test_git_url_top_level_git_versions(mock_packages, config):
@@ -411,15 +412,15 @@ def test_fetch_options(mock_packages, config):
fetcher = spack.fetch_strategy.for_package_version(pkg, '1.0')
assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy)
- assert fetcher.digest == 'abc10'
+ assert fetcher.digest == '00000000000000000000000000000010'
assert fetcher.extra_options == {'timeout': 42, 'cookie': 'foobar'}
fetcher = spack.fetch_strategy.for_package_version(pkg, '1.1')
assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy)
- assert fetcher.digest == 'abc11'
+ assert fetcher.digest == '00000000000000000000000000000011'
assert fetcher.extra_options == {'timeout': 65}
fetcher = spack.fetch_strategy.for_package_version(pkg, '1.2')
assert isinstance(fetcher, spack.fetch_strategy.URLFetchStrategy)
- assert fetcher.digest == 'abc12'
+ assert fetcher.digest == '00000000000000000000000000000012'
assert fetcher.extra_options == {'cookie': 'baz'}
diff --git a/lib/spack/spack/test/packaging.py b/lib/spack/spack/test/packaging.py
index 31ad3f1a7a..cb3d146745 100644
--- a/lib/spack/spack/test/packaging.py
+++ b/lib/spack/spack/test/packaging.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,30 +6,36 @@
"""
This test checks the binary packaging infrastructure
"""
+import argparse
import os
-import stat
+import platform
+import re
import shutil
+import stat
+
import pytest
-import argparse
-import re
-import platform
from llnl.util.filesystem import mkdirp
-import spack.repo
-import spack.store
import spack.binary_distribution as bindist
import spack.cmd.buildcache as buildcache
+import spack.repo
+import spack.store
import spack.util.gpg
-from spack.spec import Spec
+from spack.fetch_strategy import FetchStrategyComposite, URLFetchStrategy
from spack.paths import mock_gpg_keys_path
-from spack.fetch_strategy import URLFetchStrategy, FetchStrategyComposite
-from spack.relocate import needs_binary_relocation, needs_text_relocation
-from spack.relocate import relocate_text, relocate_links
-from spack.relocate import macho_make_paths_relative
-from spack.relocate import macho_make_paths_normal
-from spack.relocate import _placeholder, macho_find_paths
-from spack.relocate import file_is_relocatable
+from spack.relocate import (
+ _placeholder,
+ file_is_relocatable,
+ macho_find_paths,
+ macho_make_paths_normal,
+ macho_make_paths_relative,
+ needs_binary_relocation,
+ needs_text_relocation,
+ relocate_links,
+ relocate_text,
+)
+from spack.spec import Spec
def fake_fetchify(url, pkg):
@@ -39,8 +45,6 @@ def fake_fetchify(url, pkg):
pkg.fetcher = fetcher
-@pytest.mark.skipif(not spack.util.gpg.has_gpg(),
- reason='This test requires gpg')
@pytest.mark.usefixtures('install_mockery', 'mock_gnupghome')
def test_buildcache(mock_archive, tmpdir):
# tweak patchelf to only do a download
diff --git a/lib/spack/spack/test/patch.py b/lib/spack/spack/test/patch.py
index 2dc781538a..8383100440 100644
--- a/lib/spack/spack/test/patch.py
+++ b/lib/spack/spack/test/patch.py
@@ -1,22 +1,23 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os
+import collections
import filecmp
+import os
+
import pytest
-import collections
-from llnl.util.filesystem import working_dir, mkdirp
+from llnl.util.filesystem import mkdirp, working_dir
import spack.patch
import spack.paths
import spack.repo
import spack.util.compression
-from spack.util.executable import Executable
-from spack.stage import Stage
from spack.spec import Spec
+from spack.stage import Stage
+from spack.util.executable import Executable
# various sha256 sums (using variables for legibility)
@@ -124,9 +125,9 @@ def test_patch_order(mock_packages, config):
spec = Spec('dep-diamond-patch-top')
spec.concretize()
- mid2_sha256 = 'mid21234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234' # noqa: E501
- mid1_sha256 = '0b62284961dab49887e31319843431ee5b037382ac02c4fe436955abef11f094' # noqa: E501
- top_sha256 = 'f7de2947c64cb6435e15fb2bef359d1ed5f6356b2aebb7b20535e3772904e6db' # noqa: E501
+ mid2_sha256 = 'mid21234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234'
+ mid1_sha256 = '0b62284961dab49887e31319843431ee5b037382ac02c4fe436955abef11f094'
+ top_sha256 = 'f7de2947c64cb6435e15fb2bef359d1ed5f6356b2aebb7b20535e3772904e6db'
dep = spec['patch']
patch_order = dep.variants['patches']._patches_in_order_of_appearance
@@ -328,9 +329,25 @@ def test_write_and_read_sub_dags_with_patched_deps(mock_packages, config):
spec.package.package_dir)
-def test_file_patch_no_file():
+def test_patch_no_file():
+ # Give it the attributes we need to construct the error message
+ FakePackage = collections.namedtuple(
+ 'FakePackage', ['name', 'namespace', 'fullname'])
+ fp = FakePackage('fake-package', 'test', 'fake-package')
+ with pytest.raises(ValueError, match='FilePatch:'):
+ spack.patch.FilePatch(fp, 'nonexistent_file', 0, '')
+
+ patch = spack.patch.Patch(fp, 'nonexistent_file', 0, '')
+ patch.path = 'test'
+ with pytest.raises(spack.patch.NoSuchPatchError, match='No such patch:'):
+ patch.apply('')
+
+
+@pytest.mark.parametrize('level', [-1, 0.0, '1'])
+def test_invalid_level(level):
# Give it the attributes we need to construct the error message
FakePackage = collections.namedtuple('FakePackage', ['name', 'namespace'])
fp = FakePackage('fake-package', 'test')
- with pytest.raises(ValueError, match=r'FilePatch:.*'):
- spack.patch.FilePatch(fp, 'nonexistent_file', 0, '')
+ with pytest.raises(ValueError,
+ match='Patch level needs to be a non-negative integer.'):
+ spack.patch.Patch(fp, 'nonexistent_file', level, '')
diff --git a/lib/spack/spack/test/pattern.py b/lib/spack/spack/test/pattern.py
index 582ece3d51..a12f5e4e4a 100644
--- a/lib/spack/spack/test/pattern.py
+++ b/lib/spack/spack/test/pattern.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import pytest
+
import spack.util.pattern as pattern
diff --git a/lib/spack/spack/test/permissions.py b/lib/spack/spack/test/permissions.py
index 26974c8096..e4c0eca8f8 100644
--- a/lib/spack/spack/test/permissions.py
+++ b/lib/spack/spack/test/permissions.py
@@ -1,17 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
-import pytest
import stat
-from spack.util.file_permissions import (
- set_permissions, InvalidPermissionsError
-)
+import pytest
+
import llnl.util.filesystem as fs
+from spack.util.file_permissions import InvalidPermissionsError, set_permissions
+
def test_chmod_real_entries_ignores_suid_sgid(tmpdir):
path = str(tmpdir.join('file').ensure())
diff --git a/lib/spack/spack/test/provider_index.py b/lib/spack/spack/test/provider_index.py
index 0855ac50ec..1f9f0a74e0 100644
--- a/lib/spack/spack/test/provider_index.py
+++ b/lib/spack/spack/test/provider_index.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/relocate.py b/lib/spack/spack/test/relocate.py
index afeb2162db..8f7e084e4d 100644
--- a/lib/spack/spack/test/relocate.py
+++ b/lib/spack/spack/test/relocate.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,10 @@ import platform
import re
import shutil
-import llnl.util.filesystem
import pytest
+
+import llnl.util.filesystem
+
import spack.architecture
import spack.concretize
import spack.paths
diff --git a/lib/spack/spack/test/repo.py b/lib/spack/spack/test/repo.py
index d10349e6ec..f4c83f630a 100644
--- a/lib/spack/spack/test/repo.py
+++ b/lib/spack/spack/test/repo.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
import pytest
-import spack.repo
import spack.paths
+import spack.repo
@pytest.fixture()
@@ -67,3 +68,15 @@ def test_repo_invisibles(mutable_mock_repo, extra_repo):
with open(os.path.join(extra_repo.root, 'packages', '.invisible'), 'w'):
pass
extra_repo.all_package_names()
+
+
+@pytest.mark.parametrize('attr_name,exists', [
+ ('cmake', True),
+ ('__sphinx_mock__', False)
+])
+@pytest.mark.regression('20661')
+def test_namespace_hasattr(attr_name, exists, mutable_mock_repo):
+ # Check that we don't fail on 'hasattr' checks because
+ # of a custom __getattr__ implementation
+ nms = spack.repo.SpackNamespace('spack.pkg.builtin.mock')
+ assert hasattr(nms, attr_name) == exists
diff --git a/lib/spack/spack/test/s3_fetch.py b/lib/spack/spack/test/s3_fetch.py
index 70efad19ce..fbff60033d 100644
--- a/lib/spack/spack/test/s3_fetch.py
+++ b/lib/spack/spack/test/s3_fetch.py
@@ -1,46 +1,54 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
import pytest
+import spack.config as spack_config
import spack.fetch_strategy as spack_fs
import spack.stage as spack_stage
-def test_s3fetchstrategy_sans_url():
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_s3fetchstrategy_sans_url(_fetch_method):
"""Ensure constructor with no URL fails."""
- with pytest.raises(ValueError):
- spack_fs.S3FetchStrategy(None)
+ with spack_config.override('config:url_fetch_method', _fetch_method):
+ with pytest.raises(ValueError):
+ spack_fs.S3FetchStrategy(None)
-def test_s3fetchstrategy_bad_url(tmpdir):
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_s3fetchstrategy_bad_url(tmpdir, _fetch_method):
"""Ensure fetch with bad URL fails as expected."""
testpath = str(tmpdir)
- fetcher = spack_fs.S3FetchStrategy(url='file:///does-not-exist')
- assert fetcher is not None
+ with spack_config.override('config:url_fetch_method', _fetch_method):
+ fetcher = spack_fs.S3FetchStrategy(url='file:///does-not-exist')
+ assert fetcher is not None
- with spack_stage.Stage(fetcher, path=testpath) as stage:
- assert stage is not None
- assert fetcher.archive_file is None
- with pytest.raises(spack_fs.FetchError):
- fetcher.fetch()
+ with spack_stage.Stage(fetcher, path=testpath) as stage:
+ assert stage is not None
+ assert fetcher.archive_file is None
+ with pytest.raises(spack_fs.FetchError):
+ fetcher.fetch()
-def test_s3fetchstrategy_downloaded(tmpdir):
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_s3fetchstrategy_downloaded(tmpdir, _fetch_method):
"""Ensure fetch with archive file already downloaded is a noop."""
testpath = str(tmpdir)
archive = os.path.join(testpath, 's3.tar.gz')
- class Archived_S3FS(spack_fs.S3FetchStrategy):
- @property
- def archive_file(self):
- return archive
+ with spack_config.override('config:url_fetch_method', _fetch_method):
+ class Archived_S3FS(spack_fs.S3FetchStrategy):
+ @property
+ def archive_file(self):
+ return archive
- url = 's3:///{0}'.format(archive)
- fetcher = Archived_S3FS(url=url)
- with spack_stage.Stage(fetcher, path=testpath):
- fetcher.fetch()
+ url = 's3:///{0}'.format(archive)
+ fetcher = Archived_S3FS(url=url)
+ with spack_stage.Stage(fetcher, path=testpath):
+ fetcher.fetch()
diff --git a/lib/spack/spack/test/sbang.py b/lib/spack/spack/test/sbang.py
index 9307d2bc4b..57ae2ba0f6 100644
--- a/lib/spack/spack/test/sbang.py
+++ b/lib/spack/spack/test/sbang.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,21 +6,21 @@
"""\
Test that Spack's shebang filtering works correctly.
"""
+import filecmp
import os
+import shutil
import stat
-import pytest
import tempfile
-import shutil
-import filecmp
+
+import pytest
import llnl.util.filesystem as fs
+import spack.hooks.sbang as sbang
import spack.paths
import spack.store
-import spack.hooks.sbang as sbang
from spack.util.executable import which
-
too_long = sbang.shebang_limit + 1
@@ -44,7 +44,7 @@ sbang_line = '#!/bin/sh %s/bin/sbang\n' % spack.store.store.unpadded_root
last_line = "last!\n"
-@pytest.fixture
+@pytest.fixture # type: ignore[no-redef]
def sbang_line():
yield '#!/bin/sh %s/bin/sbang\n' % spack.store.layout.root
diff --git a/lib/spack/spack/test/schema.py b/lib/spack/spack/test/schema.py
index 14c9014d61..1b9694a8e8 100644
--- a/lib/spack/spack/test/schema.py
+++ b/lib/spack/spack/test/schema.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/spack_yaml.py b/lib/spack/spack/test/spack_yaml.py
index fb4abbf1d8..8e4fe3c9f4 100644
--- a/lib/spack/spack/test/spack_yaml.py
+++ b/lib/spack/spack/test/spack_yaml.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/spec_dag.py b/lib/spack/spack/test/spec_dag.py
index 854495988b..080f26000d 100644
--- a/lib/spack/spack/test/spec_dag.py
+++ b/lib/spack/spack/test/spec_dag.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,12 +6,13 @@
These tests check Spec DAG operations using dummy packages.
"""
import pytest
+
import spack.architecture
import spack.error
import spack.package
-
+import spack.util.hash as hashutil
+from spack.dependency import Dependency, all_deptypes, canonical_deptype
from spack.spec import Spec
-from spack.dependency import all_deptypes, Dependency, canonical_deptype
from spack.util.mock_package import MockPackageMultiRepo
@@ -705,17 +706,17 @@ class TestSpecDag(object):
for c in test_hash])
for bits in (1, 2, 3, 4, 7, 8, 9, 16, 64, 117, 128, 160):
- actual_int = spack.spec.base32_prefix_bits(test_hash, bits)
+ actual_int = hashutil.base32_prefix_bits(test_hash, bits)
fmt = "#0%sb" % (bits + 2)
actual = format(actual_int, fmt).replace('0b', '')
assert expected[:bits] == actual
with pytest.raises(ValueError):
- spack.spec.base32_prefix_bits(test_hash, 161)
+ hashutil.base32_prefix_bits(test_hash, 161)
with pytest.raises(ValueError):
- spack.spec.base32_prefix_bits(test_hash, 256)
+ hashutil.base32_prefix_bits(test_hash, 256)
def test_traversal_directions(self):
"""Make sure child and parent traversals of specs work."""
diff --git a/lib/spack/spack/test/spec_list.py b/lib/spack/spack/test/spec_list.py
index 27567b4080..d6461b00d5 100644
--- a/lib/spack/spack/test/spec_list.py
+++ b/lib/spack/spack/test/spec_list.py
@@ -1,11 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
import itertools
-from spack.spec_list import SpecList
+
+import pytest
+
from spack.spec import Spec
+from spack.spec_list import SpecList
class TestSpecList(object):
diff --git a/lib/spack/spack/test/spec_semantics.py b/lib/spack/spack/test/spec_semantics.py
index b2161d4a0e..b9a48aa465 100644
--- a/lib/spack/spack/test/spec_semantics.py
+++ b/lib/spack/spack/test/spec_semantics.py
@@ -1,21 +1,28 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import sys
-import pytest
-from spack.error import SpecError, UnsatisfiableSpecError
-from spack.spec import UnconstrainableDependencySpecError
-from spack.spec import Spec, SpecFormatSigilError, SpecFormatStringError
-from spack.variant import InvalidVariantValueError, UnknownVariantError
-from spack.variant import MultipleValuesInExclusiveVariantError
-from spack.variant import substitute_abstract_variants
+import pytest
import spack.architecture
import spack.directives
import spack.error
+from spack.error import SpecError, UnsatisfiableSpecError
+from spack.spec import (
+ Spec,
+ SpecFormatSigilError,
+ SpecFormatStringError,
+ UnconstrainableDependencySpecError,
+)
+from spack.variant import (
+ InvalidVariantValueError,
+ MultipleValuesInExclusiveVariantError,
+ UnknownVariantError,
+ substitute_abstract_variants,
+)
def make_spec(spec_like, concrete):
@@ -776,7 +783,7 @@ class TestSpecSematics(object):
sigil_package_segments = [("{@VERSIONS}", '@' + str(spec.version)),
("{%compiler}", '%' + str(spec.compiler)),
("{arch=architecture}",
- ' arch=' + str(spec.architecture))]
+ 'arch=' + str(spec.architecture))]
compiler_segments = [("{compiler.name}", "name"),
("{compiler.version}", "versions")]
@@ -798,7 +805,7 @@ class TestSpecSematics(object):
for named_str, prop in package_segments:
expected = getattr(spec, prop, "")
actual = spec.format(named_str)
- assert str(expected) == actual
+ assert str(expected).strip() == actual
for named_str, expected in sigil_package_segments:
actual = spec.format(named_str)
@@ -985,6 +992,156 @@ class TestSpecSematics(object):
assert 'avx512' not in spec.target
assert spec.target < 'broadwell'
+ @pytest.mark.parametrize('transitive', [True, False])
+ def test_splice(self, transitive):
+ # Tests the new splice function in Spec using a somewhat simple case
+ # with a variant with a conditional dependency.
+ # TODO: Test being able to splice in different provider for a virtual.
+ # Example: mvapich for mpich.
+ spec = Spec('splice-t')
+ dep = Spec('splice-h+foo')
+ spec.concretize()
+ dep.concretize()
+ # Sanity checking that these are not the same thing.
+ assert dep.dag_hash() != spec['splice-h'].dag_hash()
+ assert dep.build_hash() != spec['splice-h'].build_hash()
+ # Do the splice.
+ out = spec.splice(dep, transitive)
+ # Returned spec should still be concrete.
+ assert out.concrete
+ # Traverse the spec and assert that all dependencies are accounted for.
+ for node in spec.traverse():
+ assert node.name in out
+ # If the splice worked, then the full hash of the spliced dep should
+ # now match the full hash of the build spec of the dependency from the
+ # returned spec.
+ out_h_build = out['splice-h'].build_spec
+ assert out_h_build.full_hash() == dep.full_hash()
+ # Transitivity should determine whether the transitive dependency was
+ # changed.
+ expected_z = dep['splice-z'] if transitive else spec['splice-z']
+ assert out['splice-z'].full_hash() == expected_z.full_hash()
+ # Sanity check build spec of out should be the original spec.
+ assert (out['splice-t'].build_spec.full_hash() ==
+ spec['splice-t'].full_hash())
+ # Finally, the spec should know it's been spliced:
+ assert out.spliced
+
+ @pytest.mark.parametrize('transitive', [True, False])
+ def test_splice_with_cached_hashes(self, transitive):
+ spec = Spec('splice-t')
+ dep = Spec('splice-h+foo')
+ spec.concretize()
+ dep.concretize()
+
+ # monkeypatch hashes so we can test that they are cached
+ spec._full_hash = 'aaaaaa'
+ spec._build_hash = 'aaaaaa'
+ dep._full_hash = 'bbbbbb'
+ dep._build_hash = 'bbbbbb'
+ spec['splice-h']._full_hash = 'cccccc'
+ spec['splice-h']._build_hash = 'cccccc'
+ spec['splice-z']._full_hash = 'dddddd'
+ spec['splice-z']._build_hash = 'dddddd'
+ dep['splice-z']._full_hash = 'eeeeee'
+ dep['splice-z']._build_hash = 'eeeeee'
+
+ out = spec.splice(dep, transitive=transitive)
+ out_z_expected = (dep if transitive else spec)['splice-z']
+
+ assert out.full_hash() != spec.full_hash()
+ assert (out['splice-h'].full_hash() == dep.full_hash()) == transitive
+ assert out['splice-z'].full_hash() == out_z_expected.full_hash()
+
+ assert out.build_hash() != spec.build_hash()
+ assert (out['splice-h'].build_hash() == dep.build_hash()) == transitive
+ assert out['splice-z'].build_hash() == out_z_expected.build_hash()
+
+ @pytest.mark.parametrize('transitive', [True, False])
+ def test_splice_input_unchanged(self, transitive):
+ spec = Spec('splice-t').concretized()
+ dep = Spec('splice-h+foo').concretized()
+ orig_spec_hash = spec.full_hash()
+ orig_dep_hash = dep.full_hash()
+ spec.splice(dep, transitive)
+ # Post-splice, dag hash should still be different; no changes should be
+ # made to these specs.
+ assert spec.full_hash() == orig_spec_hash
+ assert dep.full_hash() == orig_dep_hash
+
+ @pytest.mark.parametrize('transitive', [True, False])
+ def test_splice_subsequent(self, transitive):
+ spec = Spec('splice-t')
+ dep = Spec('splice-h+foo')
+ spec.concretize()
+ dep.concretize()
+ out = spec.splice(dep, transitive)
+ # Now we attempt a second splice.
+ dep = Spec('splice-z+bar')
+ dep.concretize()
+ # Transitivity shouldn't matter since Splice Z has no dependencies.
+ out2 = out.splice(dep, transitive)
+ assert out2.concrete
+ assert out2['splice-z'].build_hash() != spec['splice-z'].build_hash()
+ assert out2['splice-z'].build_hash() != out['splice-z'].build_hash()
+ assert out2['splice-z'].full_hash() != spec['splice-z'].full_hash()
+ assert out2['splice-z'].full_hash() != out['splice-z'].full_hash()
+ assert (out2['splice-t'].build_spec.full_hash() ==
+ spec['splice-t'].full_hash())
+ assert out2.spliced
+
+ @pytest.mark.parametrize('transitive', [True, False])
+ def test_splice_dict(self, transitive):
+ spec = Spec('splice-t')
+ dep = Spec('splice-h+foo')
+ spec.concretize()
+ dep.concretize()
+ out = spec.splice(dep, transitive)
+
+ # Sanity check all hashes are unique...
+ assert spec.full_hash() != dep.full_hash()
+ assert out.full_hash() != dep.full_hash()
+ assert out.full_hash() != spec.full_hash()
+ node_list = out.to_dict()['spec']['nodes']
+ root_nodes = [n for n in node_list if n['full_hash'] == out.full_hash()]
+ build_spec_nodes = [n for n in node_list if n['full_hash'] == spec.full_hash()]
+ assert spec.full_hash() == out.build_spec.full_hash()
+ assert len(root_nodes) == 1
+ assert len(build_spec_nodes) == 1
+
+ @pytest.mark.parametrize('transitive', [True, False])
+ def test_splice_dict_roundtrip(self, transitive):
+ spec = Spec('splice-t')
+ dep = Spec('splice-h+foo')
+ spec.concretize()
+ dep.concretize()
+ out = spec.splice(dep, transitive)
+
+ # Sanity check all hashes are unique...
+ assert spec.full_hash() != dep.full_hash()
+ assert out.full_hash() != dep.full_hash()
+ assert out.full_hash() != spec.full_hash()
+ out_rt_spec = Spec.from_dict(out.to_dict()) # rt is "round trip"
+ assert out_rt_spec.full_hash() == out.full_hash()
+ out_rt_spec_bld_hash = out_rt_spec.build_spec.full_hash()
+ out_rt_spec_h_bld_hash = out_rt_spec['splice-h'].build_spec.full_hash()
+ out_rt_spec_z_bld_hash = out_rt_spec['splice-z'].build_spec.full_hash()
+
+ # In any case, the build spec for splice-t (root) should point to the
+ # original spec, preserving build provenance.
+ assert spec.full_hash() == out_rt_spec_bld_hash
+ assert out_rt_spec.full_hash() != out_rt_spec_bld_hash
+
+ # The build spec for splice-h should always point to the introduced
+ # spec, since that is the spec spliced in.
+ assert dep['splice-h'].full_hash() == out_rt_spec_h_bld_hash
+
+ # The build spec for splice-z will depend on whether or not the splice
+ # was transitive.
+ expected_z_bld_hash = (dep['splice-z'].full_hash() if transitive else
+ spec['splice-z'].full_hash())
+ assert expected_z_bld_hash == out_rt_spec_z_bld_hash
+
@pytest.mark.parametrize('spec,constraint,expected_result', [
('libelf target=haswell', 'target=broadwell', False),
('libelf target=haswell', 'target=haswell', True),
@@ -1030,3 +1187,29 @@ def test_is_extension_after_round_trip_to_dict(config, spec_str):
# Using 'y' since the round-trip make us lose build dependencies
for d in y.traverse():
assert x[d.name].package.is_extension == y[d.name].package.is_extension
+
+
+def test_malformed_spec_dict():
+ with pytest.raises(SpecError, match='malformed'):
+ Spec.from_dict({'spec': {'nodes': [{'dependencies': {'name': 'foo'}}]}})
+
+
+def test_spec_dict_hashless_dep():
+ with pytest.raises(SpecError, match="Couldn't parse"):
+ Spec.from_dict(
+ {
+ 'spec': {
+ 'nodes': [
+ {
+ 'name': 'foo',
+ 'hash': 'thehash',
+ 'dependencies': [
+ {
+ 'name': 'bar'
+ }
+ ]
+ }
+ ]
+ }
+ }
+ )
diff --git a/lib/spack/spack/test/spec_syntax.py b/lib/spack/spack/test/spec_syntax.py
index b59828206f..58e8770628 100644
--- a/lib/spack/spack/test/spec_syntax.py
+++ b/lib/spack/spack/test/spec_syntax.py
@@ -1,29 +1,36 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import itertools
import os
-import pytest
import shlex
+import pytest
+
import llnl.util.filesystem as fs
import spack.hash_types as ht
import spack.repo
-import spack.store
import spack.spec as sp
+import spack.store
from spack.parse import Token
-from spack.spec import Spec
-from spack.spec import SpecParseError, RedundantSpecError
-from spack.spec import AmbiguousHashError, InvalidHashError, NoSuchHashError
-from spack.spec import DuplicateArchitectureError
-from spack.spec import DuplicateDependencyError, DuplicateCompilerSpecError
-from spack.spec import SpecFilenameError, NoSuchSpecFileError
-from spack.spec import MultipleVersionError
+from spack.spec import (
+ AmbiguousHashError,
+ DuplicateArchitectureError,
+ DuplicateCompilerSpecError,
+ DuplicateDependencyError,
+ InvalidHashError,
+ MultipleVersionError,
+ NoSuchHashError,
+ NoSuchSpecFileError,
+ RedundantSpecError,
+ Spec,
+ SpecFilenameError,
+ SpecParseError,
+)
from spack.variant import DuplicateVariantError
-
# Sample output for a complex lexing.
complex_lex = [Token(sp.ID, 'mvapich_foo'),
Token(sp.DEP),
@@ -352,10 +359,10 @@ class TestSpecSyntax(object):
def test_ambiguous_hash(self, mutable_database):
x1 = Spec('a')
x1.concretize()
- x1._hash = 'xy'
+ x1._hash = 'xyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
x2 = Spec('a')
x2.concretize()
- x2._hash = 'xx'
+ x2._hash = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
mutable_database.add(x1, spack.store.layout)
mutable_database.add(x2, spack.store.layout)
@@ -557,10 +564,6 @@ class TestSpecSyntax(object):
with specfile.open('w') as f:
f.write(s['libelf'].to_yaml(hash=ht.build_hash))
- print("")
- print("")
- print("PARSING HERE")
-
# Make sure we can use yaml path as dependency, e.g.:
# "spack spec libdwarf ^ /path/to/libelf.yaml"
specs = sp.parse('libdwarf ^ {0}'.format(specfile.strpath))
diff --git a/lib/spack/spack/test/spec_yaml.py b/lib/spack/spack/test/spec_yaml.py
index b32fe09e03..d297cb45a8 100644
--- a/lib/spack/spack/test/spec_yaml.py
+++ b/lib/spack/spack/test/spec_yaml.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,12 +21,10 @@ import spack.spec
import spack.util.spack_json as sjson
import spack.util.spack_yaml as syaml
import spack.version
-
from spack import repo
-from spack.spec import Spec, save_dependency_spec_yamls
-from spack.util.spack_yaml import syaml_dict
+from spack.spec import Spec, save_dependency_specfiles
from spack.util.mock_package import MockPackageMultiRepo
-
+from spack.util.spack_yaml import syaml_dict
if sys.version_info >= (3, 3):
from collections.abc import Iterable, Mapping # novm
@@ -40,52 +38,67 @@ def check_yaml_round_trip(spec):
assert spec.eq_dag(spec_from_yaml)
+def check_json_round_trip(spec):
+ json_text = spec.to_json()
+ spec_from_json = Spec.from_json(json_text)
+ assert spec.eq_dag(spec_from_json)
+
+
def test_simple_spec():
spec = Spec('mpileaks')
check_yaml_round_trip(spec)
+ check_json_round_trip(spec)
def test_normal_spec(mock_packages):
spec = Spec('mpileaks+debug~opt')
spec.normalize()
check_yaml_round_trip(spec)
+ check_json_round_trip(spec)
def test_external_spec(config, mock_packages):
spec = Spec('externaltool')
spec.concretize()
check_yaml_round_trip(spec)
+ check_json_round_trip(spec)
spec = Spec('externaltest')
spec.concretize()
check_yaml_round_trip(spec)
+ check_json_round_trip(spec)
def test_ambiguous_version_spec(mock_packages):
spec = Spec('mpileaks@1.0:5.0,6.1,7.3+debug~opt')
spec.normalize()
check_yaml_round_trip(spec)
+ check_json_round_trip(spec)
def test_concrete_spec(config, mock_packages):
spec = Spec('mpileaks+debug~opt')
spec.concretize()
check_yaml_round_trip(spec)
+ check_json_round_trip(spec)
def test_yaml_multivalue(config, mock_packages):
spec = Spec('multivalue-variant foo="bar,baz"')
spec.concretize()
check_yaml_round_trip(spec)
+ check_json_round_trip(spec)
def test_yaml_subdag(config, mock_packages):
spec = Spec('mpileaks^mpich+debug')
spec.concretize()
yaml_spec = Spec.from_yaml(spec.to_yaml())
+ json_spec = Spec.from_json(spec.to_json())
for dep in ('callpath', 'mpich', 'dyninst', 'libdwarf', 'libelf'):
assert spec[dep].eq_dag(yaml_spec[dep])
+ assert spec[dep].eq_dag(json_spec[dep])
def test_using_ordered_dict(mock_packages):
@@ -116,22 +129,13 @@ def test_using_ordered_dict(mock_packages):
assert level >= 5
-def test_to_record_dict(mock_packages, config):
- specs = ['mpileaks', 'zmpi', 'dttop']
- for name in specs:
- spec = Spec(name).concretized()
- record = spec.to_record_dict()
- assert record["name"] == name
- assert "hash" in record
-
- node = spec.to_node_dict()
- for key, value in node[name].items():
- assert key in record
- assert record[key] == value
-
-
+@pytest.mark.parametrize("hash_type", [
+ ht.dag_hash,
+ ht.build_hash,
+ ht.full_hash
+])
def test_ordered_read_not_required_for_consistent_dag_hash(
- config, mock_packages
+ hash_type, config, mock_packages
):
"""Make sure ordered serialization isn't required to preserve hashes.
@@ -148,15 +152,15 @@ def test_ordered_read_not_required_for_consistent_dag_hash(
#
# Dict & corresponding YAML & JSON from the original spec.
#
- spec_dict = spec.to_dict()
- spec_yaml = spec.to_yaml()
- spec_json = spec.to_json()
+ spec_dict = spec.to_dict(hash=hash_type)
+ spec_yaml = spec.to_yaml(hash=hash_type)
+ spec_json = spec.to_json(hash=hash_type)
#
# Make a spec with reversed OrderedDicts for every
# OrderedDict in the original.
#
- reversed_spec_dict = reverse_all_dicts(spec.to_dict())
+ reversed_spec_dict = reverse_all_dicts(spec.to_dict(hash=hash_type))
#
# Dump to YAML and JSON
@@ -190,11 +194,13 @@ def test_ordered_read_not_required_for_consistent_dag_hash(
reversed_json_string
)
- # TODO: remove this when build deps are in provenance.
- spec = spec.copy(deps=('link', 'run'))
+ # Strip spec if we stripped the yaml
+ spec = spec.copy(deps=hash_type.deptype)
+
# specs are equal to the original
assert spec == round_trip_yaml_spec
assert spec == round_trip_json_spec
+
assert spec == round_trip_reversed_yaml_spec
assert spec == round_trip_reversed_json_spec
assert round_trip_yaml_spec == round_trip_reversed_yaml_spec
@@ -204,16 +210,18 @@ def test_ordered_read_not_required_for_consistent_dag_hash(
assert spec.dag_hash() == round_trip_json_spec.dag_hash()
assert spec.dag_hash() == round_trip_reversed_yaml_spec.dag_hash()
assert spec.dag_hash() == round_trip_reversed_json_spec.dag_hash()
- # full_hashes are equal
- spec.concretize()
- round_trip_yaml_spec.concretize()
- round_trip_json_spec.concretize()
- round_trip_reversed_yaml_spec.concretize()
- round_trip_reversed_json_spec.concretize()
- assert spec.full_hash() == round_trip_yaml_spec.full_hash()
- assert spec.full_hash() == round_trip_json_spec.full_hash()
- assert spec.full_hash() == round_trip_reversed_yaml_spec.full_hash()
- assert spec.full_hash() == round_trip_reversed_json_spec.full_hash()
+
+ # full_hashes are equal if we round-tripped by build_hash or full_hash
+ if hash_type in (ht.build_hash, ht.full_hash):
+ spec.concretize()
+ round_trip_yaml_spec.concretize()
+ round_trip_json_spec.concretize()
+ round_trip_reversed_yaml_spec.concretize()
+ round_trip_reversed_json_spec.concretize()
+ assert spec.full_hash() == round_trip_yaml_spec.full_hash()
+ assert spec.full_hash() == round_trip_json_spec.full_hash()
+ assert spec.full_hash() == round_trip_reversed_yaml_spec.full_hash()
+ assert spec.full_hash() == round_trip_reversed_json_spec.full_hash()
@pytest.mark.parametrize("module", [
@@ -301,8 +309,8 @@ def check_specs_equal(original_spec, spec_yaml_path):
return original_spec.eq_dag(spec_from_yaml)
-def test_save_dependency_spec_yamls_subset(tmpdir, config):
- output_path = str(tmpdir.mkdir('spec_yamls'))
+def test_save_dependency_spec_jsons_subset(tmpdir, config):
+ output_path = str(tmpdir.mkdir('spec_jsons'))
default = ('build', 'link')
@@ -320,9 +328,70 @@ def test_save_dependency_spec_yamls_subset(tmpdir, config):
spec_a.concretize()
b_spec = spec_a['b']
c_spec = spec_a['c']
- spec_a_yaml = spec_a.to_yaml(hash=ht.build_hash)
-
- save_dependency_spec_yamls(spec_a_yaml, output_path, ['b', 'c'])
-
- assert check_specs_equal(b_spec, os.path.join(output_path, 'b.yaml'))
- assert check_specs_equal(c_spec, os.path.join(output_path, 'c.yaml'))
+ spec_a_json = spec_a.to_json(hash=ht.build_hash)
+
+ save_dependency_specfiles(spec_a_json, output_path, ['b', 'c'])
+
+ assert check_specs_equal(b_spec, os.path.join(output_path, 'b.json'))
+ assert check_specs_equal(c_spec, os.path.join(output_path, 'c.json'))
+
+
+def test_legacy_yaml(tmpdir, install_mockery, mock_packages):
+ """Tests a simple legacy YAML with a dependency and ensures spec survives
+ concretization."""
+ yaml = """
+spec:
+- a:
+ version: '2.0'
+ arch:
+ platform: linux
+ platform_os: rhel7
+ target: x86_64
+ compiler:
+ name: gcc
+ version: 8.3.0
+ namespace: builtin.mock
+ parameters:
+ bvv: true
+ foo:
+ - bar
+ foobar: bar
+ cflags: []
+ cppflags: []
+ cxxflags: []
+ fflags: []
+ ldflags: []
+ ldlibs: []
+ dependencies:
+ b:
+ hash: iaapywazxgetn6gfv2cfba353qzzqvhn
+ type:
+ - build
+ - link
+ hash: obokmcsn3hljztrmctbscmqjs3xclazz
+ full_hash: avrk2tqsnzxeabmxa6r776uq7qbpeufv
+ build_hash: obokmcsn3hljztrmctbscmqjs3xclazy
+- b:
+ version: '1.0'
+ arch:
+ platform: linux
+ platform_os: rhel7
+ target: x86_64
+ compiler:
+ name: gcc
+ version: 8.3.0
+ namespace: builtin.mock
+ parameters:
+ cflags: []
+ cppflags: []
+ cxxflags: []
+ fflags: []
+ ldflags: []
+ ldlibs: []
+ hash: iaapywazxgetn6gfv2cfba353qzzqvhn
+ full_hash: qvsxvlmjaothtpjluqijv7qfnni3kyyg
+ build_hash: iaapywazxgetn6gfv2cfba353qzzqvhy
+"""
+ spec = Spec.from_yaml(yaml)
+ concrete_spec = spec.concretized()
+ assert concrete_spec.eq_dag(spec)
diff --git a/lib/spack/spack/test/stage.py b/lib/spack/spack/test/stage.py
index 9dea091730..b337486e7f 100644
--- a/lib/spack/spack/test/stage.py
+++ b/lib/spack/spack/test/stage.py
@@ -1,16 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
"""Test that the Stage class works correctly."""
+import collections
import errno
+import getpass
import os
-import collections
import shutil
import stat
import tempfile
-import getpass
import pytest
@@ -19,9 +19,8 @@ from llnl.util.filesystem import mkdirp, partition_path, touch, working_dir
import spack.paths
import spack.stage
import spack.util.executable
-
from spack.resource import Resource
-from spack.stage import Stage, StageComposite, ResourceStage, DIYStage
+from spack.stage import DIYStage, ResourceStage, Stage, StageComposite
from spack.util.path import canonicalize_path
# The following values are used for common fetch and stage mocking fixtures:
@@ -691,14 +690,14 @@ class TestStage(object):
shutil.rmtree(str(name))
def test_create_stage_root(self, tmpdir, no_path_access):
- """Test _create_stage_root permissions."""
+ """Test create_stage_root permissions."""
test_dir = tmpdir.join('path')
test_path = str(test_dir)
try:
if getpass.getuser() in str(test_path).split(os.sep):
# Simply ensure directory created if tmpdir includes user
- spack.stage._create_stage_root(test_path)
+ spack.stage.create_stage_root(test_path)
assert os.path.exists(test_path)
p_stat = os.stat(test_path)
@@ -706,7 +705,7 @@ class TestStage(object):
else:
# Ensure an OS Error is raised on created, non-user directory
with pytest.raises(OSError) as exc_info:
- spack.stage._create_stage_root(test_path)
+ spack.stage.create_stage_root(test_path)
assert exc_info.value.errno == errno.EACCES
finally:
@@ -748,10 +747,10 @@ class TestStage(object):
#
# with monkeypatch.context() as m:
# m.setattr(os, 'stat', _stat)
- # spack.stage._create_stage_root(user_path)
+ # spack.stage.create_stage_root(user_path)
# assert os.stat(user_path).st_uid != os.getuid()
monkeypatch.setattr(os, 'stat', _stat)
- spack.stage._create_stage_root(user_path)
+ spack.stage.create_stage_root(user_path)
# The following check depends on the patched os.stat as a poor
# substitute for confirming the generated warnings.
diff --git a/lib/spack/spack/test/svn_fetch.py b/lib/spack/spack/test/svn_fetch.py
index f435b07db2..477aa5bc4a 100644
--- a/lib/spack/spack/test/svn_fetch.py
+++ b/lib/spack/spack/test/svn_fetch.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,15 @@ import os
import pytest
-from llnl.util.filesystem import touch, working_dir, mkdirp
+from llnl.util.filesystem import mkdirp, touch, working_dir
-import spack.repo
import spack.config
+import spack.repo
+from spack.fetch_strategy import SvnFetchStrategy
from spack.spec import Spec
from spack.stage import Stage
-from spack.version import ver
-from spack.fetch_strategy import SvnFetchStrategy
from spack.util.executable import which
-
+from spack.version import ver
pytestmark = pytest.mark.skipif(
not which('svn') or not which('svnadmin'),
diff --git a/lib/spack/spack/test/tengine.py b/lib/spack/spack/test/tengine.py
index 01f2d65780..c6098e40dd 100644
--- a/lib/spack/spack/test/tengine.py
+++ b/lib/spack/spack/test/tengine.py
@@ -1,13 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import pytest
-import spack.tengine as tengine
-import spack.config
+import spack.config
+import spack.tengine as tengine
from spack.util.path import canonicalize_path
diff --git a/lib/spack/spack/test/test_activations.py b/lib/spack/spack/test/test_activations.py
index e8ce6c55ed..1dfce91eba 100644
--- a/lib/spack/spack/test/test_activations.py
+++ b/lib/spack/spack/test/test_activations.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,14 @@
"""
import os
+
import pytest
-import spack.spec
-import spack.package
from llnl.util.link_tree import MergeConflictError
-from spack.directory_layout import YamlDirectoryLayout
+
+import spack.package
+import spack.spec
+from spack.directory_layout import DirectoryLayout
from spack.filesystem_view import YamlFilesystemView
from spack.repo import RepoPath
@@ -187,7 +189,7 @@ def test_python_activation_view(tmpdir, python_and_extension_dirs,
monkeypatch)
view_dir = str(tmpdir.join('view'))
- layout = YamlDirectoryLayout(view_dir)
+ layout = DirectoryLayout(view_dir)
view = YamlFilesystemView(view_dir, layout)
python_pkg = python_spec.package
@@ -214,7 +216,7 @@ def test_python_ignore_namespace_init_conflict(
monkeypatch, py_namespace)
view_dir = str(tmpdir.join('view'))
- layout = YamlDirectoryLayout(view_dir)
+ layout = DirectoryLayout(view_dir)
view = YamlFilesystemView(view_dir, layout)
python_pkg = python_spec.package
@@ -249,7 +251,7 @@ def test_python_keep_namespace_init(
monkeypatch, py_namespace)
view_dir = str(tmpdir.join('view'))
- layout = YamlDirectoryLayout(view_dir)
+ layout = DirectoryLayout(view_dir)
view = YamlFilesystemView(view_dir, layout)
python_pkg = python_spec.package
@@ -292,7 +294,7 @@ def test_python_namespace_conflict(tmpdir, namespace_extensions,
monkeypatch, other_namespace)
view_dir = str(tmpdir.join('view'))
- layout = YamlDirectoryLayout(view_dir)
+ layout = DirectoryLayout(view_dir)
view = YamlFilesystemView(view_dir, layout)
python_pkg = python_spec.package
@@ -399,7 +401,7 @@ def test_perl_activation_view(tmpdir, perl_and_extension_dirs,
'perl-extension', ext_prefix, perl_spec, monkeypatch)
view_dir = str(tmpdir.join('view'))
- layout = YamlDirectoryLayout(view_dir)
+ layout = DirectoryLayout(view_dir)
view = YamlFilesystemView(view_dir, layout)
perl_pkg = perl_spec.package
diff --git a/lib/spack/spack/test/test_suite.py b/lib/spack/spack/test/test_suite.py
index 1ec5106182..3a11d6ab39 100644
--- a/lib/spack/spack/test/test_suite.py
+++ b/lib/spack/spack/test/test_suite.py
@@ -1,8 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
+import llnl.util.filesystem as fs
+
import spack.install_test
import spack.spec
@@ -51,3 +54,32 @@ def test_write_test_result(mock_packages, mock_test_stage):
msg = lines[0]
assert result in msg
assert spec.name in msg
+
+
+def test_do_test(mock_packages, mock_test_stage, install_mockery):
+ """Perform a stand-alone test with files to copy."""
+ spec = spack.spec.Spec('trivial-smoke-test').concretized()
+ test_name = 'test_do_test'
+ test_filename = 'test_file.in'
+
+ pkg = spec.package
+ pkg.create_extra_test_source()
+
+ test_suite = spack.install_test.TestSuite([spec], test_name)
+ test_suite.current_test_spec = spec
+ test_suite.current_base_spec = spec
+ test_suite.ensure_stage()
+
+ # Save off target paths for current spec since test suite processing
+ # assumes testing multiple specs.
+ cached_filename = fs.join_path(test_suite.current_test_cache_dir,
+ pkg.test_source_filename)
+ data_filename = fs.join_path(test_suite.current_test_data_dir,
+ test_filename)
+
+ # Run the test, making sure to retain the test stage directory
+ # so we can ensure the files were copied.
+ test_suite(remove_directory=False)
+
+ assert os.path.exists(cached_filename)
+ assert os.path.exists(data_filename)
diff --git a/lib/spack/spack/test/url_fetch.py b/lib/spack/spack/test/url_fetch.py
index 28b6c87385..11a282dc2c 100644
--- a/lib/spack/spack/test/url_fetch.py
+++ b/lib/spack/spack/test/url_fetch.py
@@ -1,24 +1,26 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import collections
import os
-import pytest
import sys
-from llnl.util.filesystem import working_dir, is_exe
+import pytest
+
import llnl.util.tty as tty
+from llnl.util.filesystem import is_exe, working_dir
-import spack.repo
import spack.config
import spack.fetch_strategy as fs
+import spack.repo
+import spack.util.crypto as crypto
+import spack.util.executable
from spack.spec import Spec
from spack.stage import Stage
+from spack.util.executable import which
from spack.version import ver
-import spack.util.crypto as crypto
-import spack.util.executable
@pytest.fixture(params=list(crypto.hashes.keys()))
@@ -47,19 +49,36 @@ def pkg_factory():
return factory
-def test_urlfetchstrategy_sans_url():
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_urlfetchstrategy_sans_url(_fetch_method):
"""Ensure constructor with no URL fails."""
- with pytest.raises(ValueError):
- with fs.URLFetchStrategy(None):
- pass
+ with spack.config.override('config:url_fetch_method', _fetch_method):
+ with pytest.raises(ValueError):
+ with fs.URLFetchStrategy(None):
+ pass
-def test_urlfetchstrategy_bad_url(tmpdir):
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_urlfetchstrategy_bad_url(tmpdir, _fetch_method):
"""Ensure fetch with bad URL fails as expected."""
testpath = str(tmpdir)
+ with spack.config.override('config:url_fetch_method', _fetch_method):
+ with pytest.raises(fs.FailedDownloadError):
+ fetcher = fs.URLFetchStrategy(url='file:///does-not-exist')
+ assert fetcher is not None
+
+ with Stage(fetcher, path=testpath) as stage:
+ assert stage is not None
+ assert fetcher.archive_file is None
+ fetcher.fetch()
+
- with pytest.raises(fs.FailedDownloadError):
- fetcher = fs.URLFetchStrategy(url='file:///does-not-exist')
+def test_fetch_options(tmpdir, mock_archive):
+ testpath = str(tmpdir)
+ with spack.config.override('config:url_fetch_method', 'curl'):
+ fetcher = fs.URLFetchStrategy(url=mock_archive.url,
+ fetch_options={'cookie': 'True',
+ 'timeout': 10})
assert fetcher is not None
with Stage(fetcher, path=testpath) as stage:
@@ -68,7 +87,32 @@ def test_urlfetchstrategy_bad_url(tmpdir):
fetcher.fetch()
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_archive_file_errors(tmpdir, mock_archive, _fetch_method):
+ """Ensure FetchStrategy commands may only be used as intended"""
+ testpath = str(tmpdir)
+ with spack.config.override('config:url_fetch_method', _fetch_method):
+ fetcher = fs.URLFetchStrategy(url=mock_archive.url)
+ assert fetcher is not None
+ with pytest.raises(fs.FailedDownloadError):
+ with Stage(fetcher, path=testpath) as stage:
+ assert stage is not None
+ assert fetcher.archive_file is None
+ with pytest.raises(fs.NoArchiveFileError):
+ fetcher.archive(testpath)
+ with pytest.raises(fs.NoArchiveFileError):
+ fetcher.expand()
+ with pytest.raises(fs.NoArchiveFileError):
+ fetcher.reset()
+ stage.fetch()
+ with pytest.raises(fs.NoDigestError):
+ fetcher.check()
+ assert fetcher.archive_file is not None
+ fetcher._fetch_from_url('file:///does-not-exist')
+
+
@pytest.mark.parametrize('secure', [True, False])
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
@pytest.mark.parametrize('mock_archive',
[('.tar.gz', 'z'), ('.tgz', 'z'),
('.tar.bz2', 'j'), ('.tbz2', 'j'),
@@ -77,6 +121,7 @@ def test_urlfetchstrategy_bad_url(tmpdir):
def test_fetch(
mock_archive,
secure,
+ _fetch_method,
checksum_type,
config,
mutable_mock_repo
@@ -102,8 +147,8 @@ def test_fetch(
# Enter the stage directory and check some properties
with pkg.stage:
with spack.config.override('config:verify_ssl', secure):
- pkg.do_stage()
-
+ with spack.config.override('config:url_fetch_method', _fetch_method):
+ pkg.do_stage()
with working_dir(pkg.stage.source_path):
assert os.path.exists('configure')
assert is_exe('configure')
@@ -115,45 +160,57 @@ def test_fetch(
@pytest.mark.parametrize('spec,url,digest', [
- ('url-list-test @0.0.0', 'foo-0.0.0.tar.gz', 'abc000'),
- ('url-list-test @1.0.0', 'foo-1.0.0.tar.gz', 'abc100'),
- ('url-list-test @3.0', 'foo-3.0.tar.gz', 'abc30'),
- ('url-list-test @4.5', 'foo-4.5.tar.gz', 'abc45'),
- ('url-list-test @2.0.0b2', 'foo-2.0.0b2.tar.gz', 'abc200b2'),
- ('url-list-test @3.0a1', 'foo-3.0a1.tar.gz', 'abc30a1'),
- ('url-list-test @4.5-rc5', 'foo-4.5-rc5.tar.gz', 'abc45rc5'),
+ ('url-list-test @0.0.0', 'foo-0.0.0.tar.gz', '00000000000000000000000000000000'),
+ ('url-list-test @1.0.0', 'foo-1.0.0.tar.gz', '00000000000000000000000000000100'),
+ ('url-list-test @3.0', 'foo-3.0.tar.gz', '00000000000000000000000000000030'),
+ ('url-list-test @4.5', 'foo-4.5.tar.gz', '00000000000000000000000000000450'),
+ (
+ 'url-list-test @2.0.0b2',
+ 'foo-2.0.0b2.tar.gz',
+ '000000000000000000000000000200b2'
+ ),
+ ('url-list-test @3.0a1', 'foo-3.0a1.tar.gz', '000000000000000000000000000030a1'),
+ (
+ 'url-list-test @4.5-rc5',
+ 'foo-4.5-rc5.tar.gz',
+ '000000000000000000000000000045c5'
+ ),
])
-def test_from_list_url(mock_packages, config, spec, url, digest):
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_from_list_url(mock_packages, config, spec, url, digest, _fetch_method):
"""
Test URLs in the url-list-test package, which means they should
have checksums in the package.
"""
- specification = Spec(spec).concretized()
- pkg = spack.repo.get(specification)
- fetch_strategy = fs.from_list_url(pkg)
- assert isinstance(fetch_strategy, fs.URLFetchStrategy)
- assert os.path.basename(fetch_strategy.url) == url
- assert fetch_strategy.digest == digest
- assert fetch_strategy.extra_options == {}
- pkg.fetch_options = {'timeout': 60}
- fetch_strategy = fs.from_list_url(pkg)
- assert fetch_strategy.extra_options == {'timeout': 60}
-
-
-def test_from_list_url_unspecified(mock_packages, config):
+ with spack.config.override('config:url_fetch_method', _fetch_method):
+ specification = Spec(spec).concretized()
+ pkg = spack.repo.get(specification)
+ fetch_strategy = fs.from_list_url(pkg)
+ assert isinstance(fetch_strategy, fs.URLFetchStrategy)
+ assert os.path.basename(fetch_strategy.url) == url
+ assert fetch_strategy.digest == digest
+ assert fetch_strategy.extra_options == {}
+ pkg.fetch_options = {'timeout': 60}
+ fetch_strategy = fs.from_list_url(pkg)
+ assert fetch_strategy.extra_options == {'timeout': 60}
+
+
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_from_list_url_unspecified(mock_packages, config, _fetch_method):
"""Test non-specific URLs from the url-list-test package."""
- pkg = spack.repo.get('url-list-test')
+ with spack.config.override('config:url_fetch_method', _fetch_method):
+ pkg = spack.repo.get('url-list-test')
- spec = Spec('url-list-test @2.0.0').concretized()
- pkg = spack.repo.get(spec)
- fetch_strategy = fs.from_list_url(pkg)
- assert isinstance(fetch_strategy, fs.URLFetchStrategy)
- assert os.path.basename(fetch_strategy.url) == 'foo-2.0.0.tar.gz'
- assert fetch_strategy.digest is None
- assert fetch_strategy.extra_options == {}
- pkg.fetch_options = {'timeout': 60}
- fetch_strategy = fs.from_list_url(pkg)
- assert fetch_strategy.extra_options == {'timeout': 60}
+ spec = Spec('url-list-test @2.0.0').concretized()
+ pkg = spack.repo.get(spec)
+ fetch_strategy = fs.from_list_url(pkg)
+ assert isinstance(fetch_strategy, fs.URLFetchStrategy)
+ assert os.path.basename(fetch_strategy.url) == 'foo-2.0.0.tar.gz'
+ assert fetch_strategy.digest is None
+ assert fetch_strategy.extra_options == {}
+ pkg.fetch_options = {'timeout': 60}
+ fetch_strategy = fs.from_list_url(pkg)
+ assert fetch_strategy.extra_options == {'timeout': 60}
def test_nosource_from_list_url(mock_packages, config):
@@ -176,6 +233,8 @@ def test_unknown_hash(checksum_type):
crypto.Checker('a')
+@pytest.mark.skipif(which('curl') is None,
+ reason='Urllib does not have built-in status bar')
def test_url_with_status_bar(tmpdir, mock_archive, monkeypatch, capfd):
"""Ensure fetch with status bar option succeeds."""
def is_true():
@@ -185,26 +244,27 @@ def test_url_with_status_bar(tmpdir, mock_archive, monkeypatch, capfd):
monkeypatch.setattr(sys.stdout, 'isatty', is_true)
monkeypatch.setattr(tty, 'msg_enabled', is_true)
+ with spack.config.override('config:url_fetch_method', 'curl'):
+ fetcher = fs.URLFetchStrategy(mock_archive.url)
+ with Stage(fetcher, path=testpath) as stage:
+ assert fetcher.archive_file is None
+ stage.fetch()
- fetcher = fs.URLFetchStrategy(mock_archive.url)
- with Stage(fetcher, path=testpath) as stage:
- assert fetcher.archive_file is None
- stage.fetch()
-
- status = capfd.readouterr()[1]
- assert '##### 100' in status
+ status = capfd.readouterr()[1]
+ assert '##### 100' in status
-def test_url_extra_fetch(tmpdir, mock_archive):
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_url_extra_fetch(tmpdir, mock_archive, _fetch_method):
"""Ensure a fetch after downloading is effectively a no-op."""
- testpath = str(tmpdir)
-
- fetcher = fs.URLFetchStrategy(mock_archive.url)
- with Stage(fetcher, path=testpath) as stage:
- assert fetcher.archive_file is None
- stage.fetch()
- assert fetcher.archive_file is not None
- fetcher.fetch()
+ with spack.config.override('config:url_fetch_method', _fetch_method):
+ testpath = str(tmpdir)
+ fetcher = fs.URLFetchStrategy(mock_archive.url)
+ with Stage(fetcher, path=testpath) as stage:
+ assert fetcher.archive_file is None
+ stage.fetch()
+ assert fetcher.archive_file is not None
+ fetcher.fetch()
@pytest.mark.parametrize('url,urls,version,expected', [
@@ -215,17 +275,19 @@ def test_url_extra_fetch(tmpdir, mock_archive):
['https://ftpmirror.gnu.org/autoconf/autoconf-2.62.tar.gz',
'https://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz'])
])
-def test_candidate_urls(pkg_factory, url, urls, version, expected):
+@pytest.mark.parametrize('_fetch_method', ['curl', 'urllib'])
+def test_candidate_urls(pkg_factory, url, urls, version, expected, _fetch_method):
"""Tests that candidate urls include mirrors and that they go through
pattern matching and substitution for versions.
"""
- pkg = pkg_factory(url, urls)
- f = fs._from_merged_attrs(fs.URLFetchStrategy, pkg, version)
- assert f.candidate_urls == expected
- assert f.extra_options == {}
- pkg = pkg_factory(url, urls, fetch_options={'timeout': 60})
- f = fs._from_merged_attrs(fs.URLFetchStrategy, pkg, version)
- assert f.extra_options == {'timeout': 60}
+ with spack.config.override('config:url_fetch_method', _fetch_method):
+ pkg = pkg_factory(url, urls)
+ f = fs._from_merged_attrs(fs.URLFetchStrategy, pkg, version)
+ assert f.candidate_urls == expected
+ assert f.extra_options == {}
+ pkg = pkg_factory(url, urls, fetch_options={'timeout': 60})
+ f = fs._from_merged_attrs(fs.URLFetchStrategy, pkg, version)
+ assert f.extra_options == {'timeout': 60}
@pytest.mark.regression('19673')
@@ -244,11 +306,10 @@ def test_missing_curl(tmpdir, monkeypatch):
testpath = str(tmpdir)
url = 'http://github.com/spack/spack'
- fetcher = fs.URLFetchStrategy(url=url)
- assert fetcher is not None
-
- with pytest.raises(TypeError, match='object is not callable'):
- with Stage(fetcher, path=testpath) as stage:
- out = stage.fetch()
-
- assert err_fmt.format('curl') in out
+ with spack.config.override('config:url_fetch_method', 'curl'):
+ fetcher = fs.URLFetchStrategy(url=url)
+ assert fetcher is not None
+ with pytest.raises(TypeError, match='object is not callable'):
+ with Stage(fetcher, path=testpath) as stage:
+ out = stage.fetch()
+ assert err_fmt.format('curl') in out
diff --git a/lib/spack/spack/test/url_parse.py b/lib/spack/spack/test/url_parse.py
index 846e24d242..82c301c213 100644
--- a/lib/spack/spack/test/url_parse.py
+++ b/lib/spack/spack/test/url_parse.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,18 @@ based on its URL.
"""
import os
+
import pytest
-from spack.url import parse_name_offset, parse_version_offset
-from spack.url import parse_name_and_version, substitute_version
-from spack.url import strip_name_suffixes, strip_version_suffixes
-from spack.url import UndetectableVersionError
+from spack.url import (
+ UndetectableVersionError,
+ parse_name_and_version,
+ parse_name_offset,
+ parse_version_offset,
+ strip_name_suffixes,
+ strip_version_suffixes,
+ substitute_version,
+)
from spack.version import Version
@@ -429,6 +435,8 @@ def test_url_parse_offset(name, noffset, ver, voffset, path):
# .tgz
('ADOL-C', '2.6.1',
'http://www.coin-or.org/download/source/ADOL-C/ADOL-C-2.6.1.tgz'),
+ # .tbz
+ ('mpfr', '4.0.1', 'https://ftpmirror.gnu.org/mpfr/mpfr-4.0.1.tbz'),
# .tbz2
('mpfr', '4.0.1', 'https://ftpmirror.gnu.org/mpfr/mpfr-4.0.1.tbz2'),
# .txz
diff --git a/lib/spack/spack/test/url_substitution.py b/lib/spack/spack/test/url_substitution.py
index 08a3b99a4a..59dbace1a7 100644
--- a/lib/spack/spack/test/url_substitution.py
+++ b/lib/spack/spack/test/url_substitution.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,6 +8,7 @@
import os
import pytest
+
import spack.url
diff --git a/lib/spack/spack/test/util/__init__.py b/lib/spack/spack/test/util/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/test/util/__init__.py
+++ b/lib/spack/spack/test/util/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/util/editor.py b/lib/spack/spack/test/util/editor.py
index e1495a70cc..c36e7e6f6d 100644
--- a/lib/spack/spack/test/util/editor.py
+++ b/lib/spack/spack/test/util/editor.py
@@ -1,16 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
import pytest
from llnl.util.filesystem import set_executable
import spack.util.editor as ed
-
pytestmark = pytest.mark.usefixtures('working_env')
diff --git a/lib/spack/spack/test/util/environment.py b/lib/spack/spack/test/util/environment.py
index a555c35c9c..233fc0ba84 100644
--- a/lib/spack/spack/test/util/environment.py
+++ b/lib/spack/spack/test/util/environment.py
@@ -1,11 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
"""Test Spack's environment utility functions."""
-import pytest
import os
+
+import pytest
+
import spack.util.environment as envutil
diff --git a/lib/spack/spack/test/util/executable.py b/lib/spack/spack/test/util/executable.py
index ae2859ea4b..1b6ee0b295 100644
--- a/lib/spack/spack/test/util/executable.py
+++ b/lib/spack/spack/test/util/executable.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import sys
import os
+import sys
import pytest
diff --git a/lib/spack/spack/test/util/file_cache.py b/lib/spack/spack/test/util/file_cache.py
index 0fec1a5dc9..3730300689 100644
--- a/lib/spack/spack/test/util/file_cache.py
+++ b/lib/spack/spack/test/util/file_cache.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,6 +7,7 @@
import os
import pytest
+
from spack.util.file_cache import FileCache
diff --git a/lib/spack/spack/test/util/log_parser.py b/lib/spack/spack/test/util/log_parser.py
index 0f829082b6..911226f381 100644
--- a/lib/spack/spack/test/util/log_parser.py
+++ b/lib/spack/spack/test/util/log_parser.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/util/mock_package.py b/lib/spack/spack/test/util/mock_package.py
index cca55bb534..2609d849db 100644
--- a/lib/spack/spack/test/util/mock_package.py
+++ b/lib/spack/spack/test/util/mock_package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/util/path.py b/lib/spack/spack/test/util/path.py
new file mode 100644
index 0000000000..8795af3353
--- /dev/null
+++ b/lib/spack/spack/test/util/path.py
@@ -0,0 +1,99 @@
+# Copyright 2013-2021 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)
+
+import pytest
+
+import llnl.util.tty as tty
+
+import spack.config
+import spack.util.path as sup
+
+#: Some lines with lots of placeholders
+padded_lines = [
+ "==> [2021-06-23-15:59:05.020387] './configure' '--prefix=/Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga", # noqa: E501
+ "/Users/gamblin2/Workspace/spack/lib/spack/env/clang/clang -dynamiclib -install_name /Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.1.dylib -compatibility_version 1 -current_version 1.2.11 -fPIC -O2 -fPIC -DHAVE_HIDDEN -o libz.1.2.11.dylib adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc", # noqa: E501
+ "rm -f /Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.a", # noqa: E501
+]
+
+
+#: unpadded versions of padded_lines, with [padded-to-X-chars] replacing the padding
+fixed_lines = [
+ "==> [2021-06-23-15:59:05.020387] './configure' '--prefix=/Users/gamblin2/padding-log-test/opt/[padded-to-512-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga", # noqa: E501
+ "/Users/gamblin2/Workspace/spack/lib/spack/env/clang/clang -dynamiclib -install_name /Users/gamblin2/padding-log-test/opt/[padded-to-512-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.1.dylib -compatibility_version 1 -current_version 1.2.11 -fPIC -O2 -fPIC -DHAVE_HIDDEN -o libz.1.2.11.dylib adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc", # noqa: E501
+ "rm -f /Users/gamblin2/padding-log-test/opt/[padded-to-512-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.a", # noqa: E501
+]
+
+
+@pytest.mark.parametrize("padded,fixed", zip(padded_lines, fixed_lines))
+def test_padding_substitution(padded, fixed):
+ """Ensure that all padded lines are unpadded correctly."""
+ assert fixed == sup.padding_filter(padded)
+
+
+def test_no_substitution():
+ """Ensure that a line not containing one full path placeholder is not modified."""
+ partial = "--prefix=/Users/gamblin2/padding-log-test/opt/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga'" # noqa: E501
+ assert sup.padding_filter(partial) == partial
+
+
+def test_short_substitution():
+ """Ensure that a single placeholder path component is replaced"""
+ short = "--prefix=/Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga'" # noqa: E501
+ short_subst = "--prefix=/Users/gamblin2/padding-log-test/opt/[padded-to-63-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga'" # noqa: E501
+ assert short_subst == sup.padding_filter(short)
+
+
+def test_partial_substitution():
+ """Ensure that a single placeholder path component is replaced"""
+ short = "--prefix=/Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_p/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga'" # noqa: E501
+ short_subst = "--prefix=/Users/gamblin2/padding-log-test/opt/[padded-to-73-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga'" # noqa: E501
+ assert short_subst == sup.padding_filter(short)
+
+
+def test_longest_prefix_re():
+ """Test that longest_prefix_re generates correct regular expressions."""
+ assert "(s(?:t(?:r(?:i(?:ng?)?)?)?)?)" == sup.longest_prefix_re(
+ "string", capture=True
+ )
+ assert "(?:s(?:t(?:r(?:i(?:ng?)?)?)?)?)" == sup.longest_prefix_re(
+ "string", capture=False
+ )
+
+
+def test_output_filtering(capfd, install_mockery, mutable_config):
+ """Test filtering padding out of tty messages."""
+ long_path = "/" + "/".join([sup.SPACK_PATH_PADDING_CHARS] * 200)
+ padding_string = "[padded-to-%d-chars]" % len(long_path)
+
+ # test filtering when padding is enabled
+ with spack.config.override('config:install_tree', {"padded_length": 256}):
+ # tty.msg with filtering on the first argument
+ with sup.filter_padding():
+ tty.msg("here is a long path: %s/with/a/suffix" % long_path)
+ out, err = capfd.readouterr()
+ assert padding_string in out
+
+ # tty.msg with filtering on a laterargument
+ with sup.filter_padding():
+ tty.msg("here is a long path:", "%s/with/a/suffix" % long_path)
+ out, err = capfd.readouterr()
+ assert padding_string in out
+
+ # tty.error with filtering on the first argument
+ with sup.filter_padding():
+ tty.error("here is a long path: %s/with/a/suffix" % long_path)
+ out, err = capfd.readouterr()
+ assert padding_string in err
+
+ # tty.error with filtering on a later argument
+ with sup.filter_padding():
+ tty.error("here is a long path:", "%s/with/a/suffix" % long_path)
+ out, err = capfd.readouterr()
+ assert padding_string in err
+
+ # test no filtering
+ tty.msg("here is a long path: %s/with/a/suffix" % long_path)
+ out, err = capfd.readouterr()
+ assert padding_string not in out
diff --git a/lib/spack/spack/test/util/prefix.py b/lib/spack/spack/test/util/prefix.py
index cee3ad028b..d7724f616e 100644
--- a/lib/spack/spack/test/util/prefix.py
+++ b/lib/spack/spack/test/util/prefix.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/util/spack_lock_wrapper.py b/lib/spack/spack/test/util/spack_lock_wrapper.py
index d7819c84cb..73a2e41eb0 100644
--- a/lib/spack/spack/test/util/spack_lock_wrapper.py
+++ b/lib/spack/spack/test/util/spack_lock_wrapper.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/util/spack_yaml.py b/lib/spack/spack/test/util/spack_yaml.py
index 23e02d7be6..34a923093f 100644
--- a/lib/spack/spack/test/util/spack_yaml.py
+++ b/lib/spack/spack/test/util/spack_yaml.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -65,3 +65,31 @@ def test_config_blame_with_override(config):
check_blame('verify_ssl', config_file, 13)
check_blame('checksum', config_file, 14)
check_blame('dirty', config_file, 15)
+
+
+def test_config_blame_defaults():
+ """check blame for an element from an override scope"""
+ files = {}
+
+ def get_file_lines(filename):
+ if filename not in files:
+ with open(filename, "r") as f:
+ files[filename] = [""] + f.read().split("\n")
+ return files[filename]
+
+ config_blame = config_cmd("blame", "config")
+ for line in config_blame.split("\n"):
+ # currently checking only simple lines with dict keys
+ match = re.match(r"^([^:]+):(\d+)\s+([^:]+):\s+(.*)", line)
+
+ # check that matches are on the lines they say they are
+ if match:
+ filename, line, key, val = match.groups()
+ line = int(line)
+
+ if val.lower() in ("true", "false"):
+ val = val.lower()
+
+ lines = get_file_lines(filename)
+ assert key in lines[line]
+ assert val in lines[line]
diff --git a/lib/spack/spack/test/util/util_gpg.py b/lib/spack/spack/test/util/util_gpg.py
index 83fad508f9..31bbcd8e77 100644
--- a/lib/spack/spack/test/util/util_gpg.py
+++ b/lib/spack/spack/test/util/util_gpg.py
@@ -1,14 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
import pytest
import spack.util.gpg
+@pytest.fixture()
+def has_socket_dir():
+ spack.util.gpg.init()
+ return bool(spack.util.gpg.SOCKET_DIR)
+
+
def test_parse_gpg_output_case_one():
# Two keys, fingerprint for primary keys, but not subkeys
output = """sec::2048:1:AAAAAAAAAAAAAAAA:AAAAAAAAAA:AAAAAAAAAA:::::::::
@@ -20,7 +27,7 @@ fpr:::::::::YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY:
uid:::::::AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA::Joe (Test) <j.s@s.com>:
ssb::2048:1:AAAAAAAAAAAAAAAA:AAAAAAAAAA::::::::::
"""
- keys = spack.util.gpg.parse_secret_keys_output(output)
+ keys = spack.util.gpg._parse_secret_keys_output(output)
assert len(keys) == 2
assert keys[0] == 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
@@ -37,7 +44,7 @@ ssb:-:2048:1:AAAAAAAAA::::::esa:::+:::23:
fpr:::::::::YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY:
grp:::::::::AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:
"""
- keys = spack.util.gpg.parse_secret_keys_output(output)
+ keys = spack.util.gpg._parse_secret_keys_output(output)
assert len(keys) == 1
assert keys[0] == 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
@@ -56,18 +63,19 @@ uid:::::::AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA::Joe (Test) <j.s@s.com>:
ssb::2048:1:AAAAAAAAAAAAAAAA:AAAAAAAAAA::::::::::
fpr:::::::::ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ:"""
- keys = spack.util.gpg.parse_secret_keys_output(output)
+ keys = spack.util.gpg._parse_secret_keys_output(output)
assert len(keys) == 2
assert keys[0] == 'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW'
assert keys[1] == 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY'
-@pytest.mark.skipif(not spack.util.gpg.GpgConstants.user_run_dir,
- reason='This test requires /var/run/user/$(id -u)')
-def test_really_long_gnupg_home_dir(tmpdir):
- N = 960
+@pytest.mark.requires_executables('gpg2')
+def test_really_long_gnupghome_dir(tmpdir, has_socket_dir):
+ if not has_socket_dir:
+ pytest.skip('This test requires /var/run/user/$(id -u)')
+ N = 960
tdir = str(tmpdir)
while len(tdir) < N:
tdir = os.path.join(tdir, 'filler')
@@ -75,10 +83,11 @@ def test_really_long_gnupg_home_dir(tmpdir):
tdir = tdir[:N].rstrip(os.sep)
tdir += '0' * (N - len(tdir))
- with spack.util.gpg.gnupg_home_override(tdir):
- spack.util.gpg.create(name='Spack testing 1',
- email='test@spack.io',
- comment='Spack testing key',
- expires='0')
-
+ with spack.util.gpg.gnupghome_override(tdir):
+ spack.util.gpg.create(
+ name='Spack testing 1',
+ email='test@spack.io',
+ comment='Spack testing key',
+ expires='0'
+ )
spack.util.gpg.list(True, True)
diff --git a/lib/spack/spack/test/util/util_string.py b/lib/spack/spack/test/util/util_string.py
index bcaa7d6211..7c68895be2 100644
--- a/lib/spack/spack/test/util/util_string.py
+++ b/lib/spack/spack/test/util/util_string.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/test/util/util_url.py b/lib/spack/spack/test/util/util_url.py
index 5d0d9fa4eb..12b713ba4b 100644
--- a/lib/spack/spack/test/util/util_url.py
+++ b/lib/spack/spack/test/util/util_url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,6 +6,9 @@
"""Test Spack's URL handling utility functions."""
import os
import os.path
+
+import pytest
+
import spack.paths
import spack.util.url as url_util
@@ -302,3 +305,73 @@ def test_url_join_absolute_paths():
assert(url_util.join(*args, resolve_href=False) ==
'http://example.com/path/resource')
+
+
+@pytest.mark.parametrize("url,parts", [
+ ("ssh://user@host.xz:500/path/to/repo.git/",
+ ("ssh", "user", "host.xz", 500, "/path/to/repo.git")),
+ ("ssh://user@host.xz/path/to/repo.git/",
+ ("ssh", "user", "host.xz", None, "/path/to/repo.git")),
+ ("ssh://host.xz:500/path/to/repo.git/",
+ ("ssh", None, "host.xz", 500, "/path/to/repo.git")),
+ ("ssh://host.xz/path/to/repo.git/",
+ ("ssh", None, "host.xz", None, "/path/to/repo.git")),
+ ("ssh://user@host.xz/path/to/repo.git/",
+ ("ssh", "user", "host.xz", None, "/path/to/repo.git")),
+ ("ssh://host.xz/path/to/repo.git/",
+ ("ssh", None, "host.xz", None, "/path/to/repo.git")),
+ ("ssh://user@host.xz/~user/path/to/repo.git/",
+ ("ssh", "user", "host.xz", None, "~user/path/to/repo.git")),
+ ("ssh://host.xz/~user/path/to/repo.git/",
+ ("ssh", None, "host.xz", None, "~user/path/to/repo.git")),
+ ("ssh://user@host.xz/~/path/to/repo.git",
+ ("ssh", "user", "host.xz", None, "~/path/to/repo.git")),
+ ("ssh://host.xz/~/path/to/repo.git",
+ ("ssh", None, "host.xz", None, "~/path/to/repo.git")),
+ ("git@github.com:spack/spack.git",
+ (None, "git", "github.com", None, "spack/spack.git")),
+ ("user@host.xz:/path/to/repo.git/",
+ (None, "user", "host.xz", None, "/path/to/repo.git")),
+ ("host.xz:/path/to/repo.git/",
+ (None, None, "host.xz", None, "/path/to/repo.git")),
+ ("user@host.xz:~user/path/to/repo.git/",
+ (None, "user", "host.xz", None, "~user/path/to/repo.git")),
+ ("host.xz:~user/path/to/repo.git/",
+ (None, None, "host.xz", None, "~user/path/to/repo.git")),
+ ("user@host.xz:path/to/repo.git",
+ (None, "user", "host.xz", None, "path/to/repo.git")),
+ ("host.xz:path/to/repo.git",
+ (None, None, "host.xz", None, "path/to/repo.git")),
+ ("rsync://host.xz/path/to/repo.git/",
+ ("rsync", None, "host.xz", None, "/path/to/repo.git")),
+ ("git://host.xz/path/to/repo.git/",
+ ("git", None, "host.xz", None, "/path/to/repo.git")),
+ ("git://host.xz/~user/path/to/repo.git/",
+ ("git", None, "host.xz", None, "~user/path/to/repo.git")),
+ ("http://host.xz/path/to/repo.git/",
+ ("http", None, "host.xz", None, "/path/to/repo.git")),
+ ("https://host.xz/path/to/repo.git/",
+ ("https", None, "host.xz", None, "/path/to/repo.git")),
+ ("https://github.com/spack/spack",
+ ("https", None, "github.com", None, "/spack/spack")),
+ ("https://github.com/spack/spack/",
+ ("https", None, "github.com", None, "/spack/spack")),
+ ("file:///path/to/repo.git/",
+ ("file", None, None, None, "/path/to/repo.git")),
+ ("file://~/path/to/repo.git/",
+ ("file", None, None, None, "~/path/to/repo.git")),
+ # bad ports should give us None
+ ("ssh://host.xz:port/path/to/repo.git/", None),
+ # bad ports should give us None
+ ("ssh://host-foo.xz:port/path/to/repo.git/", None),
+ # regular file paths should give us None
+ ("/path/to/repo.git/", None),
+ ("path/to/repo.git/", None),
+ ("~/path/to/repo.git", None),
+])
+def test_git_url_parse(url, parts):
+ if parts is None:
+ with pytest.raises(ValueError):
+ url_util.parse_git_url(url)
+ else:
+ assert parts == url_util.parse_git_url(url)
diff --git a/lib/spack/spack/test/variant.py b/lib/spack/spack/test/variant.py
index 10e8ea7e7f..efbe8501a4 100644
--- a/lib/spack/spack/test/variant.py
+++ b/lib/spack/spack/test/variant.py
@@ -1,21 +1,27 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import pytest
import numbers
-from spack.variant import Variant, SingleValuedVariant, VariantMap
-from spack.variant import MultiValuedVariant, BoolValuedVariant
-from spack.variant import UnsatisfiableVariantSpecError
-from spack.variant import InconsistentValidationError
-from spack.variant import MultipleValuesInExclusiveVariantError
-from spack.variant import InvalidVariantValueError, DuplicateVariantError
-from spack.variant import disjoint_sets
+import pytest
import spack.error
+from spack.variant import (
+ BoolValuedVariant,
+ DuplicateVariantError,
+ InconsistentValidationError,
+ InvalidVariantValueError,
+ MultipleValuesInExclusiveVariantError,
+ MultiValuedVariant,
+ SingleValuedVariant,
+ UnsatisfiableVariantSpecError,
+ Variant,
+ VariantMap,
+ disjoint_sets,
+)
class TestMultiValuedVariant(object):
diff --git a/lib/spack/spack/test/verification.py b/lib/spack/spack/test/verification.py
index 009f407186..e7d8193e8e 100644
--- a/lib/spack/spack/test/verification.py
+++ b/lib/spack/spack/test/verification.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,10 @@ import shutil
import llnl.util.filesystem as fs
-import spack.util.spack_json as sjson
-import spack.verify
import spack.spec
import spack.store
+import spack.util.spack_json as sjson
+import spack.verify
def test_link_manifest_entry(tmpdir):
diff --git a/lib/spack/spack/test/versions.py b/lib/spack/spack/test/versions.py
index 315788f7f3..a3d11108ef 100644
--- a/lib/spack/spack/test/versions.py
+++ b/lib/spack/spack/test/versions.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,15 @@
We try to maintain compatibility with RPM's version semantics
where it makes sense.
"""
+import os
+
import pytest
+from llnl.util.filesystem import working_dir
+
+import spack.package
+import spack.spec
+from spack.util.executable import which
from spack.version import Version, VersionList, ver
@@ -373,6 +380,9 @@ def test_intersect_with_containment():
check_intersection('1.6:1.6.5', ':1.6.5', '1.6')
check_intersection('1.6:1.6.5', '1.6', ':1.6.5')
+ check_intersection('11.2', '11', '11.2')
+ check_intersection('11.2', '11.2', '11')
+
def test_union_with_containment():
check_union(':1.6', '1.6.5', ':1.6')
@@ -562,3 +572,33 @@ def test_list_highest():
assert vl2.highest_numeric() is None
assert vl2.preferred() == Version('develop')
assert vl2.lowest() == Version('master')
+
+
+@pytest.mark.parametrize('version_str', [
+ "foo 1.2.0",
+ "!",
+ "1!2"
+])
+def test_invalid_versions(version_str):
+ """Ensure invalid versions are rejected with a ValueError"""
+ with pytest.raises(ValueError):
+ Version(version_str)
+
+
+def test_versions_from_git(mock_git_version_info, monkeypatch, mock_packages):
+ repo_path, filename, commits = mock_git_version_info
+ monkeypatch.setattr(spack.package.PackageBase, 'git', 'file://%s' % repo_path,
+ raising=False)
+
+ for commit in commits:
+ spec = spack.spec.Spec('git-test-commit@%s' % commit)
+ version = spec.version
+ comparator = [str(v) if not isinstance(v, int) else v
+ for v in version._cmp(version.commit_lookup)]
+
+ with working_dir(repo_path):
+ which('git')('checkout', commit)
+ with open(os.path.join(repo_path, filename), 'r') as f:
+ expected = f.read()
+
+ assert str(comparator) == expected
diff --git a/lib/spack/spack/test/views.py b/lib/spack/spack/test/views.py
index e1dcec4c5c..ecc2d7cc28 100644
--- a/lib/spack/spack/test/views.py
+++ b/lib/spack/spack/test/views.py
@@ -1,13 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
-from spack.spec import Spec
-from spack.directory_layout import YamlDirectoryLayout
+from spack.directory_layout import DirectoryLayout
from spack.filesystem_view import YamlFilesystemView
+from spack.spec import Spec
def test_global_activation(install_mockery, mock_fetch):
@@ -33,7 +33,7 @@ def test_global_activation(install_mockery, mock_fetch):
def test_remove_extensions_ordered(install_mockery, mock_fetch, tmpdir):
view_dir = str(tmpdir.join('view'))
- layout = YamlDirectoryLayout(view_dir)
+ layout = DirectoryLayout(view_dir)
view = YamlFilesystemView(view_dir, layout)
e2 = Spec('extension2').concretized()
e2.package.do_install()
diff --git a/lib/spack/spack/test/web.py b/lib/spack/spack/test/web.py
index 472ab0dab7..2ccbf51225 100644
--- a/lib/spack/spack/test/web.py
+++ b/lib/spack/spack/test/web.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,12 @@ import os
import ordereddict_backport
import pytest
+
+import llnl.util.tty as tty
+
+import spack.config
import spack.paths
+import spack.util.s3
import spack.util.web
from spack.version import ver
@@ -195,3 +200,87 @@ def test_list_url(tmpdir):
'file-0.txt',
'file-1.txt',
'file-2.txt']
+
+
+class MockPages(object):
+ def search(self, *args, **kwargs):
+ return [
+ {'Key': 'keyone'},
+ {'Key': 'keytwo'},
+ {'Key': 'keythree'},
+ ]
+
+
+class MockPaginator(object):
+ def paginate(self, *args, **kwargs):
+ return MockPages()
+
+
+class MockClientError(Exception):
+ def __init__(self):
+ self.response = {'Error': {'Code': 'NoSuchKey'}}
+
+
+class MockS3Client(object):
+ def get_paginator(self, *args, **kwargs):
+ return MockPaginator()
+
+ def delete_objects(self, *args, **kwargs):
+ return {
+ 'Errors': [
+ {'Key': 'keyone', 'Message': 'Access Denied'}
+ ],
+ 'Deleted': [
+ {'Key': 'keytwo'},
+ {'Key': 'keythree'}
+ ],
+ }
+
+ def delete_object(self, *args, **kwargs):
+ pass
+
+ def get_object(self, Bucket=None, Key=None):
+ self.ClientError = MockClientError
+ if Bucket == 'my-bucket' and Key == 'subdirectory/my-file':
+ return True
+ raise self.ClientError
+
+
+def test_remove_s3_url(monkeypatch, capfd):
+ fake_s3_url = 's3://my-bucket/subdirectory/mirror'
+
+ def mock_create_s3_session(url):
+ return MockS3Client()
+
+ monkeypatch.setattr(
+ spack.util.s3, 'create_s3_session', mock_create_s3_session)
+
+ current_debug_level = tty.debug_level()
+ tty.set_debug(1)
+
+ spack.util.web.remove_url(fake_s3_url, recursive=True)
+ err = capfd.readouterr()[1]
+
+ tty.set_debug(current_debug_level)
+
+ assert('Failed to delete keyone (Access Denied)' in err)
+ assert('Deleted keythree' in err)
+ assert('Deleted keytwo' in err)
+
+
+def test_s3_url_exists(monkeypatch, capfd):
+ def mock_create_s3_session(url):
+ return MockS3Client()
+ monkeypatch.setattr(
+ spack.util.s3, 'create_s3_session', mock_create_s3_session)
+
+ fake_s3_url_exists = 's3://my-bucket/subdirectory/my-file'
+ assert(spack.util.web.url_exists(fake_s3_url_exists))
+
+ fake_s3_url_does_not_exist = 's3://my-bucket/subdirectory/my-notfound-file'
+ assert(not spack.util.web.url_exists(fake_s3_url_does_not_exist))
+
+
+def test_s3_url_parsing():
+ assert(spack.util.s3._parse_s3_endpoint_url("example.com") == 'https://example.com')
+ assert(spack.util.s3._parse_s3_endpoint_url("http://example.com") == 'http://example.com')
diff --git a/lib/spack/spack/url.py b/lib/spack/spack/url.py
index aa40524ae8..6e78bd6cb8 100644
--- a/lib/spack/spack/url.py
+++ b/lib/spack/spack/url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -27,6 +27,7 @@ it's never been told about that version before.
"""
import os
import re
+
from six import StringIO
from six.moves.urllib.parse import urlsplit, urlunsplit
@@ -35,7 +36,7 @@ from llnl.util.tty.color import cescape, colorize
import spack.error
import spack.util.compression as comp
-from spack.version import Version
+import spack.version
#
@@ -56,8 +57,12 @@ def find_list_urls(url):
GitLab https://gitlab.\*/<repo>/<name>/tags
BitBucket https://bitbucket.org/<repo>/<name>/downloads/?tab=tags
CRAN https://\*.r-project.org/src/contrib/Archive/<name>
+ PyPI https://pypi.org/simple/<name>/
========= =======================================================
+ Note: this function is called by `spack versions`, `spack checksum`,
+ and `spack create`, but not by `spack fetch` or `spack install`.
+
Parameters:
url (str): The download URL for the package
@@ -91,6 +96,16 @@ def find_list_urls(url):
# e.g. https://cloud.r-project.org/src/contrib/rgl_0.98.1.tar.gz
(r'(.*\.r-project\.org/src/contrib)/([^_]+)',
lambda m: m.group(1) + '/Archive/' + m.group(2)),
+
+ # PyPI
+ # e.g. https://pypi.io/packages/source/n/numpy/numpy-1.19.4.zip
+ # e.g. https://www.pypi.io/packages/source/n/numpy/numpy-1.19.4.zip
+ # e.g. https://pypi.org/packages/source/n/numpy/numpy-1.19.4.zip
+ # e.g. https://pypi.python.org/packages/source/n/numpy/numpy-1.19.4.zip
+ # e.g. https://files.pythonhosted.org/packages/source/n/numpy/numpy-1.19.4.zip
+ # e.g. https://pypi.io/packages/py2.py3/o/opencensus-context/opencensus_context-0.1.1-py2.py3-none-any.whl
+ (r'(?:pypi|pythonhosted)[^/]+/packages/[^/]+/./([^/]+)',
+ lambda m: 'https://pypi.org/simple/' + m.group(1) + '/'),
]
list_urls = set([os.path.dirname(url)])
@@ -402,11 +417,11 @@ def parse_version_offset(path):
path (str): The filename or URL for the package
Returns:
- tuple of (Version, int, int, int, str): A tuple containing:
+ tuple: A tuple containing:
version of the package,
first index of version,
length of version string,
- the index of the matching regex
+ the index of the matching regex,
the matching regex
Raises:
@@ -606,7 +621,7 @@ def parse_version(path):
UndetectableVersionError: If the URL does not match any regexes
"""
version, start, length, i, regex = parse_version_offset(path)
- return Version(version)
+ return spack.version.Version(version)
def parse_name_offset(path, v=None):
@@ -617,11 +632,11 @@ def parse_name_offset(path, v=None):
v (str): The version of the package
Returns:
- tuple of (str, int, int, int, str): A tuple containing:
+ tuple: A tuple containing:
name of the package,
first index of name,
length of name,
- the index of the matching regex
+ the index of the matching regex,
the matching regex
Raises:
@@ -759,9 +774,7 @@ def parse_name_and_version(path):
path (str): The filename or URL for the package
Returns:
- tuple of (str, Version)A tuple containing:
- The name of the package
- The version of the package
+ tuple: a tuple containing the package (name, version)
Raises:
UndetectableVersionError: If the URL does not match any regexes
diff --git a/lib/spack/spack/user_environment.py b/lib/spack/spack/user_environment.py
index f08f21e0ec..23fb6529d8 100644
--- a/lib/spack/spack/user_environment.py
+++ b/lib/spack/spack/user_environment.py
@@ -1,14 +1,14 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import sys
import os
+import sys
+import spack.build_environment as build_env
import spack.config
-import spack.util.prefix as prefix
import spack.util.environment as environment
-import spack.build_environment as build_env
+import spack.util.prefix as prefix
#: Environment variable name Spack uses to track individually loaded packages
spack_loaded_hashes_var = 'SPACK_LOADED_HASHES'
@@ -18,7 +18,7 @@ def prefix_inspections(platform):
"""Get list of prefix inspections for platform
Arguments:
- platform (string): the name of the platform to consider. The platform
+ platform (str): the name of the platform to consider. The platform
determines what environment variables Spack will use for some
inspections.
@@ -26,8 +26,8 @@ def prefix_inspections(platform):
A dictionary mapping subdirectory names to lists of environment
variables to modify with that directory if it exists.
"""
- inspections = spack.config.get('modules:prefix_inspections', None)
- if inspections is not None:
+ inspections = spack.config.get('modules:prefix_inspections', {})
+ if inspections:
return inspections
inspections = {
@@ -72,7 +72,7 @@ def environment_modifications_for_spec(spec, view=None):
the view."""
spec = spec.copy()
if view and not spec.external:
- spec.prefix = prefix.Prefix(view.view().get_projection_for_spec(spec))
+ spec.prefix = prefix.Prefix(view.get_projection_for_spec(spec))
# generic environment modifications determined by inspecting the spec
# prefix
diff --git a/lib/spack/spack/util/__init__.py b/lib/spack/spack/util/__init__.py
index 9f87532b85..103eae6134 100644
--- a/lib/spack/spack/util/__init__.py
+++ b/lib/spack/spack/util/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/util/classes.py b/lib/spack/spack/util/classes.py
new file mode 100644
index 0000000000..262e3cad8a
--- /dev/null
+++ b/lib/spack/spack/util/classes.py
@@ -0,0 +1,41 @@
+# Copyright 2013-2021 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)
+
+# Need this because of spack.util.string
+from __future__ import absolute_import
+
+import inspect
+
+import llnl.util.tty as tty
+from llnl.util.lang import list_modules, memoized
+
+from spack.util.naming import mod_to_class
+
+__all__ = [
+ 'list_classes'
+]
+
+
+@memoized
+def list_classes(parent_module, mod_path):
+ """Given a parent path (e.g., spack.platforms or spack.analyzers),
+ use list_modules to derive the module names, and then mod_to_class
+ to derive class names. Import the classes and return them in a list
+ """
+ classes = []
+
+ for name in list_modules(mod_path):
+ mod_name = '%s.%s' % (parent_module, name)
+ class_name = mod_to_class(name)
+ mod = __import__(mod_name, fromlist=[class_name])
+ if not hasattr(mod, class_name):
+ tty.die('No class %s defined in %s' % (class_name, mod_name))
+ cls = getattr(mod, class_name)
+ if not inspect.isclass(cls):
+ tty.die('%s.%s is not a class' % (mod_name, class_name))
+
+ classes.append(cls)
+
+ return classes
diff --git a/lib/spack/spack/util/compression.py b/lib/spack/spack/util/compression.py
index ebbe0519d0..4068a145ff 100644
--- a/lib/spack/spack/util/compression.py
+++ b/lib/spack/spack/util/compression.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import re
import os
+import re
from itertools import product
+
from spack.util.executable import which
# Supported archive extensions.
PRE_EXTS = ["tar", "TAR"]
EXTS = ["gz", "bz2", "xz", "Z"]
-NOTAR_EXTS = ["zip", "tgz", "tbz2", "txz"]
+NOTAR_EXTS = ["zip", "tgz", "tbz", "tbz2", "txz"]
# Add PRE_EXTS and EXTS last so that .tar.gz is matched *before* .tar or .gz
ALLOWED_ARCHIVE_TYPES = [".".join(ext) for ext in product(
@@ -22,6 +23,22 @@ def allowed_archive(path):
return any(path.endswith(t) for t in ALLOWED_ARCHIVE_TYPES)
+def _gunzip(archive_file):
+ """Like gunzip, but extracts in the current working directory
+ instead of in-place.
+
+ Args:
+ archive_file (str): absolute path of the file to be decompressed
+ """
+ import gzip
+ decompressed_file = os.path.basename(archive_file.strip('.gz'))
+ working_dir = os.getcwd()
+ destination_abspath = os.path.join(working_dir, decompressed_file)
+ with gzip.open(archive_file, "rb") as f_in:
+ with open(destination_abspath, "wb") as f_out:
+ f_out.write(f_in.read())
+
+
def decompressor_for(path, extension=None):
"""Get the appropriate decompressor for a path."""
if ((extension and re.match(r'\.?zip$', extension)) or
@@ -30,8 +47,7 @@ def decompressor_for(path, extension=None):
unzip.add_default_arg('-q')
return unzip
if extension and re.match(r'gz', extension):
- gunzip = which('gunzip', required=True)
- return gunzip
+ return _gunzip
if extension and re.match(r'bz2', extension):
bunzip2 = which('bunzip2', required=True)
return bunzip2
diff --git a/lib/spack/spack/util/cpus.py b/lib/spack/spack/util/cpus.py
new file mode 100644
index 0000000000..c24309fc2d
--- /dev/null
+++ b/lib/spack/spack/util/cpus.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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)
+
+import multiprocessing
+import os
+
+
+def cpus_available():
+ """
+ Returns the number of CPUs available for the current process, or the number
+ of phyiscal CPUs when that information cannot be retrieved. The number
+ of available CPUs might differ from the number of physical CPUs when
+ using spack through Slurm or container runtimes.
+ """
+ try:
+ return len(os.sched_getaffinity(0)) # novermin
+ except Exception:
+ return multiprocessing.cpu_count()
diff --git a/lib/spack/spack/util/crypto.py b/lib/spack/spack/util/crypto.py
index 7e264ff0c7..549216a4c6 100644
--- a/lib/spack/spack/util/crypto.py
+++ b/lib/spack/spack/util/crypto.py
@@ -1,14 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import sys
import hashlib
+import sys
+from typing import Any, Callable, Dict # novm
import llnl.util.tty as tty
-
#: Set of hash algorithms that Spack can use, mapped to digest size in bytes
hashes = {
'md5': 16,
@@ -30,7 +30,7 @@ _deprecated_hash_algorithms = ['md5']
#: cache of hash functions generated
-_hash_functions = {}
+_hash_functions = {} # type: Dict[str, Callable[[], Any]]
class DeprecatedHash(object):
diff --git a/lib/spack/spack/util/debug.py b/lib/spack/spack/util/debug.py
index 1ff74f24cf..5acc49fcb2 100644
--- a/lib/spack/spack/util/debug.py
+++ b/lib/spack/spack/util/debug.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,10 @@
a stack trace and drops the user into an interpreter.
"""
-import os
import code
-import traceback
+import os
import signal
+import traceback
def debug_handler(sig, frame):
diff --git a/lib/spack/spack/util/editor.py b/lib/spack/spack/util/editor.py
index 00a095252e..02e59a45f0 100644
--- a/lib/spack/spack/util/editor.py
+++ b/lib/spack/spack/util/editor.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,7 +20,6 @@ import llnl.util.tty as tty
import spack.config
from spack.util.executable import which_string
-
#: editors to try if VISUAL and EDITOR are not set
_default_editors = ['vim', 'vi', 'emacs', 'nano']
@@ -65,7 +64,7 @@ def editor(*args, **kwargs):
searching the full list above, we'll raise an error.
Arguments:
- args (list of str): args to pass to editor
+ args (list): args to pass to editor
Optional Arguments:
_exec_func (function): invoke this function instead of ``os.execv()``
diff --git a/lib/spack/spack/util/environment.py b/lib/spack/spack/util/environment.py
index 6d299fa7ef..073f60334e 100644
--- a/lib/spack/spack/util/environment.py
+++ b/lib/spack/spack/util/environment.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,19 +9,20 @@ import contextlib
import inspect
import json
import os
+import os.path
+import platform
import re
+import socket
import sys
-import os.path
import six
+from six.moves import cPickle
+from six.moves import shlex_quote as cmd_quote
import llnl.util.tty as tty
-import spack.util.executable as executable
-
from llnl.util.lang import dedupe
-from six.moves import shlex_quote as cmd_quote
-from six.moves import cPickle
+import spack.util.executable as executable
system_paths = ['/', '/usr', '/usr/local']
suffixes = ['bin', 'bin64', 'include', 'lib', 'lib64']
@@ -139,6 +140,40 @@ def pickle_environment(path, environment=None):
open(path, 'wb'), protocol=2)
+def get_host_environment_metadata():
+ """Get the host environment, reduce to a subset that we can store in
+ the install directory, and add the spack version.
+ """
+ import spack.main
+ environ = get_host_environment()
+ return {"host_os": environ['os'],
+ "platform": environ['platform'],
+ "host_target": environ['target'],
+ "hostname": environ['hostname'],
+ "spack_version": spack.main.get_version(),
+ "kernel_version": platform.version()}
+
+
+def get_host_environment():
+ """Return a dictionary (lookup) with host information (not including the
+ os.environ).
+ """
+ import spack.architecture as architecture
+ import spack.spec
+ arch = architecture.Arch(
+ architecture.platform(), 'default_os', 'default_target')
+ arch_spec = spack.spec.Spec('arch=%s' % arch)
+ return {
+ 'target': str(arch.target),
+ 'os': str(arch.os),
+ 'platform': str(arch.platform),
+ 'arch': arch_spec,
+ 'architecture': arch_spec,
+ 'arch_str': str(arch),
+ 'hostname': socket.gethostname()
+ }
+
+
@contextlib.contextmanager
def set_env(**kwargs):
"""Temporarily sets and restores environment variables.
@@ -209,12 +244,16 @@ class NameValueModifier(object):
class SetEnv(NameValueModifier):
def execute(self, env):
+ tty.debug("SetEnv: {0}={1}".format(self.name, str(self.value)),
+ level=3)
env[self.name] = str(self.value)
class AppendFlagsEnv(NameValueModifier):
def execute(self, env):
+ tty.debug("AppendFlagsEnv: {0}={1}".format(self.name, str(self.value)),
+ level=3)
if self.name in env and env[self.name]:
env[self.name] += self.separator + str(self.value)
else:
@@ -224,6 +263,7 @@ class AppendFlagsEnv(NameValueModifier):
class UnsetEnv(NameModifier):
def execute(self, env):
+ tty.debug("UnsetEnv: {0}".format(self.name), level=3)
# Avoid throwing if the variable was not set
env.pop(self.name, None)
@@ -231,6 +271,8 @@ class UnsetEnv(NameModifier):
class RemoveFlagsEnv(NameValueModifier):
def execute(self, env):
+ tty.debug("RemoveFlagsEnv: {0}-{1}".format(self.name, str(self.value)),
+ level=3)
environment_value = env.get(self.name, '')
flags = environment_value.split(
self.separator) if environment_value else []
@@ -242,12 +284,15 @@ class SetPath(NameValueModifier):
def execute(self, env):
string_path = concatenate_paths(self.value, separator=self.separator)
+ tty.debug("SetPath: {0}={1}".format(self.name, string_path), level=3)
env[self.name] = string_path
class AppendPath(NameValueModifier):
def execute(self, env):
+ tty.debug("AppendPath: {0}+{1}".format(self.name, str(self.value)),
+ level=3)
environment_value = env.get(self.name, '')
directories = environment_value.split(
self.separator) if environment_value else []
@@ -258,6 +303,8 @@ class AppendPath(NameValueModifier):
class PrependPath(NameValueModifier):
def execute(self, env):
+ tty.debug("PrependPath: {0}+{1}".format(self.name, str(self.value)),
+ level=3)
environment_value = env.get(self.name, '')
directories = environment_value.split(
self.separator) if environment_value else []
@@ -268,6 +315,8 @@ class PrependPath(NameValueModifier):
class RemovePath(NameValueModifier):
def execute(self, env):
+ tty.debug("RemovePath: {0}-{1}".format(self.name, str(self.value)),
+ level=3)
environment_value = env.get(self.name, '')
directories = environment_value.split(
self.separator) if environment_value else []
@@ -279,6 +328,7 @@ class RemovePath(NameValueModifier):
class DeprioritizeSystemPaths(NameModifier):
def execute(self, env):
+ tty.debug("DeprioritizeSystemPaths: {0}".format(self.name), level=3)
environment_value = env.get(self.name, '')
directories = environment_value.split(
self.separator) if environment_value else []
@@ -290,6 +340,8 @@ class DeprioritizeSystemPaths(NameModifier):
class PruneDuplicatePaths(NameModifier):
def execute(self, env):
+ tty.debug("PruneDuplicatePaths: {0}".format(self.name),
+ level=3)
environment_value = env.get(self.name, '')
directories = environment_value.split(
self.separator) if environment_value else []
@@ -571,7 +623,7 @@ class EnvironmentModifications(object):
Args:
filename (str): the file to be sourced
- *arguments (list of str): arguments to pass on the command line
+ *arguments (list): arguments to pass on the command line
Keyword Args:
shell (str): the shell to use (default: ``bash``)
@@ -588,6 +640,8 @@ class EnvironmentModifications(object):
clean (bool): in addition to removing empty entries,
also remove duplicate entries (default: False).
"""
+ tty.debug("EnvironmentModifications.from_sourcing_file: {0}"
+ .format(filename))
# Check if the file actually exists
if not os.path.isfile(filename):
msg = 'Trying to source non-existing file: {0}'.format(filename)
@@ -813,7 +867,7 @@ def inspect_path(root, inspections, exclude=None):
modifications are not performed immediately, but stored in a
command object that is returned to client
- exclude (callable): optional callable. If present it must accept an
+ exclude (typing.Callable): optional callable. If present it must accept an
absolute path and return True if it should be excluded from the
inspection
@@ -866,7 +920,7 @@ def preserve_environment(*variables):
explicitly unset on exit.
Args:
- variables (list of str): list of environment variables to be preserved
+ variables (list): list of environment variables to be preserved
"""
cache = {}
for var in variables:
@@ -943,8 +997,7 @@ def environment_after_sourcing_files(*files, **kwargs):
concatenate_on_success, dump_environment,
])
output = shell(
- source_file_arguments, output=str, env=environment,
- ignore_quotes=True
+ source_file_arguments, output=str, env=environment, ignore_quotes=True
)
environment = json.loads(output)
@@ -978,9 +1031,9 @@ def sanitize(environment, blacklist, whitelist):
Args:
environment (dict): input dictionary
- blacklist (list of str): literals or regex patterns to be
+ blacklist (list): literals or regex patterns to be
blacklisted
- whitelist (list of str): literals or regex patterns to be
+ whitelist (list): literals or regex patterns to be
whitelisted
"""
diff --git a/lib/spack/spack/util/executable.py b/lib/spack/spack/util/executable.py
index 8baea6d238..e615ccdcfd 100644
--- a/lib/spack/spack/util/executable.py
+++ b/lib/spack/spack/util/executable.py
@@ -1,12 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import sys
+
import os
import re
import shlex
import subprocess
+import sys
+
from six import string_types, text_type
import llnl.util.tty as tty
@@ -92,8 +94,8 @@ class Executable(object):
ignore_errors (int or list): A list of error codes to ignore.
If these codes are returned, this process will not raise
an exception even if ``fail_on_error`` is set to ``True``
- ignore_quotes (bool): If False, warn users that quotes are not
- needed as Spack does not use a shell. Defaults to False.
+ ignore_quotes (bool): If False, warn users that quotes are not needed
+ as Spack does not use a shell. Defaults to False.
input: Where to read stdin from
output: Where to send stdout
error: Where to send stderr
@@ -123,6 +125,7 @@ class Executable(object):
env.update(self.default_env)
from spack.util.environment import EnvironmentModifications # no cycle
+
# Apply env argument
if isinstance(env_arg, EnvironmentModifications):
env_arg.apply_modifications(env)
@@ -168,14 +171,12 @@ class Executable(object):
istream, close_istream = streamify(input, 'r')
if not ignore_quotes:
- quoted_args = [
- arg for arg in args if re.search(r'^"|^\'|"$|\'$', arg)
- ]
+ quoted_args = [arg for arg in args if re.search(r'^"|^\'|"$|\'$', arg)]
if quoted_args:
tty.warn(
"Quotes in command arguments can confuse scripts like"
" configure.",
- "These arguments may cause problems when executed:",
+ "The following arguments may cause problems when executed:",
str("\n".join([" " + arg for arg in quoted_args])),
"Quotes aren't needed because spack doesn't use a shell. "
"Consider removing them.",
@@ -184,10 +185,9 @@ class Executable(object):
cmd = self.exe + list(args)
- cmd_line = "'%s'" % "' '".join(
- map(lambda arg: arg.replace("'", "'\"'\"'"), cmd))
-
- tty.debug(cmd_line)
+ escaped_cmd = ["'%s'" % arg.replace("'", "'\"'\"'") for arg in cmd]
+ cmd_line_string = " ".join(escaped_cmd)
+ tty.debug(cmd_line_string)
try:
proc = subprocess.Popen(
@@ -214,7 +214,7 @@ class Executable(object):
rc = self.returncode = proc.returncode
if fail_on_error and rc != 0 and (rc not in ignore_errors):
- long_msg = cmd_line
+ long_msg = cmd_line_string
if result:
# If the output is not captured in the result, it will have
# been stored either in the specified files (e.g. if
@@ -229,13 +229,13 @@ class Executable(object):
except OSError as e:
raise ProcessError(
- '%s: %s' % (self.exe[0], e.strerror), 'Command: ' + cmd_line)
+ '%s: %s' % (self.exe[0], e.strerror), 'Command: ' + cmd_line_string)
except subprocess.CalledProcessError as e:
if fail_on_error:
raise ProcessError(
str(e), '\nExit status %d when invoking command: %s' %
- (proc.returncode, cmd_line))
+ (proc.returncode, cmd_line_string))
finally:
if close_ostream:
@@ -297,7 +297,7 @@ def which(*args, **kwargs):
*args (str): One or more executables to search for
Keyword Arguments:
- path (:func:`list` or str): The path to search. Defaults to ``PATH``
+ path (list or str): The path to search. Defaults to ``PATH``
required (bool): If set to True, raise an error if executable not found
Returns:
diff --git a/lib/spack/spack/util/file_cache.py b/lib/spack/spack/util/file_cache.py
index 9342f9772b..670b2ed698 100644
--- a/lib/spack/spack/util/file_cache.py
+++ b/lib/spack/spack/util/file_cache.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/util/file_permissions.py b/lib/spack/spack/util/file_permissions.py
index b133d2569e..9a510ef6c8 100644
--- a/lib/spack/spack/util/file_permissions.py
+++ b/lib/spack/spack/util/file_permissions.py
@@ -1,11 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import stat as st
+
import llnl.util.filesystem as fs
+
import spack.package_prefs as pp
from spack.error import SpackError
diff --git a/lib/spack/spack/util/gpg.py b/lib/spack/spack/util/gpg.py
index eaa199e417..ddc69c9579 100644
--- a/lib/spack/spack/util/gpg.py
+++ b/lib/spack/spack/util/gpg.py
@@ -1,75 +1,123 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-
import contextlib
import errno
import functools
import os
import re
-import llnl.util.lang
-
import spack.error
import spack.paths
import spack.util.executable
import spack.version
+#: Executable instance for "gpg", initialized lazily
+GPG = None
+#: Executable instance for "gpgconf", initialized lazily
+GPGCONF = None
+#: Socket directory required if a non default home directory is used
+SOCKET_DIR = None
+#: GNUPGHOME environment variable in the context of this Python module
+GNUPGHOME = None
-_gnupg_version_re = r"^gpg(conf)? \(GnuPG\) (.*)$"
-_gnupg_home_override = None
-_global_gpg_instance = None
+def clear():
+ """Reset the global state to uninitialized."""
+ global GPG, GPGCONF, SOCKET_DIR, GNUPGHOME
+ GPG, GPGCONF, SOCKET_DIR, GNUPGHOME = None, None, None, None
-def get_gnupg_home(gnupg_home=None):
- """Returns the directory that should be used as the GNUPGHOME environment
- variable when calling gpg.
- If a [gnupg_home] is passed directly (and not None), that value will be
- used.
+def init(gnupghome=None, force=False):
+ """Initialize the global objects in the module, if not set.
- Otherwise, if there is an override set (and it is not None), then that
- value will be used.
+ When calling any gpg executable, the GNUPGHOME environment
+ variable is set to:
- Otherwise, if the environment variable "SPACK_GNUPGHOME" is set, then that
- value will be used.
+ 1. The value of the `gnupghome` argument, if not None
+ 2. The value of the "SPACK_GNUPGHOME" environment variable, if set
+ 3. The default gpg path for Spack otherwise
- Otherwise, the default gpg path for Spack will be used.
-
- See also: gnupg_home_override()
+ Args:
+ gnupghome (str): value to be used for GNUPGHOME when calling
+ GnuPG executables
+ force (bool): if True forces the re-initialization even if the
+ global objects are set already
+ """
+ global GPG, GPGCONF, SOCKET_DIR, GNUPGHOME
+ if force:
+ clear()
+
+ # If the executables are already set, there's nothing to do
+ if GPG and GNUPGHOME:
+ return
+
+ # Set the value of GNUPGHOME to be used in this module
+ GNUPGHOME = (gnupghome or
+ os.getenv('SPACK_GNUPGHOME') or
+ spack.paths.gpg_path)
+
+ # Set the executable objects for "gpg" and "gpgconf"
+ GPG, GPGCONF = _gpg(), _gpgconf()
+ GPG.add_default_env('GNUPGHOME', GNUPGHOME)
+ if GPGCONF:
+ GPGCONF.add_default_env('GNUPGHOME', GNUPGHOME)
+ # Set the socket dir if not using GnuPG defaults
+ SOCKET_DIR = _socket_dir(GPGCONF)
+
+ # Make sure that the GNUPGHOME exists
+ if not os.path.exists(GNUPGHOME):
+ os.makedirs(GNUPGHOME)
+ os.chmod(GNUPGHOME, 0o700)
+
+ if not os.path.isdir(GNUPGHOME):
+ msg = 'GNUPGHOME "{0}" exists and is not a directory'.format(GNUPGHOME)
+ raise SpackGPGError(msg)
+
+ if SOCKET_DIR is not None:
+ GPGCONF('--create-socketdir')
+
+
+def _autoinit(func):
+ """Decorator to ensure that global variables have been initialized before
+ running the decorated function.
+
+ Args:
+ func (callable): decorated function
"""
- return (gnupg_home or
- _gnupg_home_override or
- os.getenv('SPACK_GNUPGHOME') or
- spack.paths.gpg_path)
+ @functools.wraps(func)
+ def _wrapped(*args, **kwargs):
+ init()
+ return func(*args, **kwargs)
+ return _wrapped
@contextlib.contextmanager
-def gnupg_home_override(new_gnupg_home):
- global _gnupg_home_override
- global _global_gpg_instance
+def gnupghome_override(dir):
+ """Set the GNUPGHOME to a new location for this context.
- old_gnupg_home_override = _gnupg_home_override
- old_global_gpg_instance = _global_gpg_instance
-
- _gnupg_home_override = new_gnupg_home
- _global_gpg_instance = None
+ Args:
+ dir (str): new value for GNUPGHOME
+ """
+ global GPG, GPGCONF, SOCKET_DIR, GNUPGHOME
- yield
+ # Store backup values
+ _GPG, _GPGCONF = GPG, GPGCONF
+ _SOCKET_DIR, _GNUPGHOME = SOCKET_DIR, GNUPGHOME
+ clear()
- _gnupg_home_override = old_gnupg_home_override
- _global_gpg_instance = old_global_gpg_instance
+ # Clear global state
+ init(gnupghome=dir, force=True)
+ yield
-def get_global_gpg_instance():
- global _global_gpg_instance
- if _global_gpg_instance is None:
- _global_gpg_instance = Gpg()
- return _global_gpg_instance
+ clear()
+ GPG, GPGCONF = _GPG, _GPGCONF
+ SOCKET_DIR, GNUPGHOME = _SOCKET_DIR, _GNUPGHOME
-def parse_secret_keys_output(output):
+def _parse_secret_keys_output(output):
keys = []
found_sec = False
for line in output.split('\n'):
@@ -84,347 +132,278 @@ def parse_secret_keys_output(output):
return keys
-def parse_public_keys_output(output):
+def _parse_public_keys_output(output):
+ """
+ Returns a list of public keys with their fingerprints
+ """
keys = []
found_pub = False
+ current_pub_key = ''
for line in output.split('\n'):
if found_pub:
if line.startswith('fpr'):
- keys.append(line.split(':')[9])
+ keys.append((current_pub_key, line.split(':')[9]))
found_pub = False
elif line.startswith('ssb'):
found_pub = False
elif line.startswith('pub'):
+ current_pub_key = line.split(':')[4]
found_pub = True
return keys
-cached_property = getattr(functools, 'cached_property', None)
-
-# If older python version has no cached_property, emulate it here.
-# TODO(opadron): maybe this shim should be moved to llnl.util.lang?
-if not cached_property:
- def cached_property(*args, **kwargs):
- result = property(llnl.util.lang.memoized(*args, **kwargs))
- attr = result.fget.__name__
-
- @result.deleter
- def result(self):
- getattr(type(self), attr).fget.cache.pop((self,), None)
-
- return result
-
-
-class GpgConstants(object):
- @cached_property
- def target_version(self):
- return spack.version.Version('2')
-
- @cached_property
- def gpgconf_string(self):
- exe_str = spack.util.executable.which_string(
- 'gpgconf', 'gpg2conf', 'gpgconf2')
-
- no_gpgconf_msg = (
- 'Spack requires gpgconf version >= 2\n'
- ' To install a suitable version using Spack, run\n'
- ' spack install gnupg@2:\n'
- ' and load it by running\n'
- ' spack load gnupg@2:')
-
- if not exe_str:
- raise SpackGPGError(no_gpgconf_msg)
+def _get_unimported_public_keys(output):
+ keys = []
+ for line in output.split('\n'):
+ if line.startswith('pub'):
+ keys.append(line.split(':')[4])
+ return keys
- exe = spack.util.executable.Executable(exe_str)
- output = exe('--version', output=str)
- match = re.search(_gnupg_version_re, output, re.M)
- if not match:
- raise SpackGPGError('Could not determine gpgconf version')
+class SpackGPGError(spack.error.SpackError):
+ """Class raised when GPG errors are detected."""
- if spack.version.Version(match.group(2)) < self.target_version:
- raise SpackGPGError(no_gpgconf_msg)
- # ensure that the gpgconf we found can run "gpgconf --create-socketdir"
- try:
- exe('--dry-run', '--create-socketdir')
- except spack.util.executable.ProcessError:
- # no dice
- exe_str = None
+@_autoinit
+def create(**kwargs):
+ """Create a new key pair."""
+ r, w = os.pipe()
+ with contextlib.closing(os.fdopen(r, 'r')) as r:
+ with contextlib.closing(os.fdopen(w, 'w')) as w:
+ w.write('''
+Key-Type: rsa
+Key-Length: 4096
+Key-Usage: sign
+Name-Real: %(name)s
+Name-Email: %(email)s
+Name-Comment: %(comment)s
+Expire-Date: %(expires)s
+%%no-protection
+%%commit
+''' % kwargs)
+ GPG('--gen-key', '--batch', input=r)
+
+
+@_autoinit
+def signing_keys(*args):
+ """Return the keys that can be used to sign binaries."""
+ output = GPG(
+ '--list-secret-keys', '--with-colons', '--fingerprint',
+ *args, output=str
+ )
+ return _parse_secret_keys_output(output)
+
+
+@_autoinit
+def public_keys_to_fingerprint(*args):
+ """Return the keys that can be used to verify binaries."""
+ output = GPG(
+ '--list-public-keys', '--with-colons', '--fingerprint',
+ *args, output=str
+ )
+ return _parse_public_keys_output(output)
+
+
+@_autoinit
+def public_keys(*args):
+ """Return a list of fingerprints"""
+ keys_and_fpr = public_keys_to_fingerprint(*args)
+ return [key_and_fpr[1] for key_and_fpr in keys_and_fpr]
+
+
+@_autoinit
+def export_keys(location, keys, secret=False):
+ """Export public keys to a location passed as argument.
+
+ Args:
+ location (str): where to export the keys
+ keys (list): keys to be exported
+ secret (bool): whether to export secret keys or not
+ """
+ if secret:
+ GPG("--export-secret-keys", "--armor", "--output", location, *keys)
+ else:
+ GPG("--batch", "--yes", "--armor", "--export", "--output", location, *keys)
- return exe_str
- @cached_property
- def gpg_string(self):
- exe_str = spack.util.executable.which_string('gpg2', 'gpg')
+@_autoinit
+def trust(keyfile):
+ """Import a public key from a file and trust it.
- no_gpg_msg = (
- 'Spack requires gpg version >= 2\n'
- ' To install a suitable version using Spack, run\n'
- ' spack install gnupg@2:\n'
- ' and load it by running\n'
- ' spack load gnupg@2:')
+ Args:
+ keyfile (str): file with the public key
+ """
+ # Get the public keys we are about to import
+ output = GPG('--with-colons', keyfile, output=str, error=str)
+ keys = _get_unimported_public_keys(output)
- if not exe_str:
- raise SpackGPGError(no_gpg_msg)
+ # Import them
+ GPG('--import', keyfile)
- exe = spack.util.executable.Executable(exe_str)
- output = exe('--version', output=str)
- match = re.search(_gnupg_version_re, output, re.M)
+ # Set trust to ultimate
+ key_to_fpr = dict(public_keys_to_fingerprint())
+ for key in keys:
+ # Skip over keys we cannot find a fingerprint for.
+ if key not in key_to_fpr:
+ continue
- if not match:
- raise SpackGPGError('Could not determine gpg version')
+ fpr = key_to_fpr[key]
+ r, w = os.pipe()
+ with contextlib.closing(os.fdopen(r, 'r')) as r:
+ with contextlib.closing(os.fdopen(w, 'w')) as w:
+ w.write("{0}:6:\n".format(fpr))
+ GPG('--import-ownertrust', input=r)
- if spack.version.Version(match.group(2)) < self.target_version:
- raise SpackGPGError(no_gpg_msg)
- return exe_str
+@_autoinit
+def untrust(signing, *keys):
+ """Delete known keys.
- @cached_property
- def user_run_dir(self):
- # Try to ensure that (/var)/run/user/$(id -u) exists so that
- # `gpgconf --create-socketdir` can be run later.
- #
- # NOTE(opadron): This action helps prevent a large class of
- # "file-name-too-long" errors in gpg.
+ Args:
+ signing (bool): if True deletes the secret keys
+ *keys: keys to be deleted
+ """
+ if signing:
+ skeys = signing_keys(*keys)
+ GPG('--batch', '--yes', '--delete-secret-keys', *skeys)
- try:
- has_suitable_gpgconf = bool(GpgConstants.gpgconf_string)
- except SpackGPGError:
- has_suitable_gpgconf = False
+ pkeys = public_keys(*keys)
+ GPG('--batch', '--yes', '--delete-keys', *pkeys)
- # If there is no suitable gpgconf, don't even bother trying to
- # precreate a user run dir.
- if not has_suitable_gpgconf:
- return None
- result = None
- for var_run in ('/run', '/var/run'):
- if not os.path.exists(var_run):
- continue
+@_autoinit
+def sign(key, file, output, clearsign=False):
+ """Sign a file with a key.
- var_run_user = os.path.join(var_run, 'user')
- try:
- if not os.path.exists(var_run_user):
- os.mkdir(var_run_user)
- os.chmod(var_run_user, 0o777)
+ Args:
+ key: key to be used to sign
+ file (str): file to be signed
+ output (str): output file (either the clearsigned file or
+ the detached signature)
+ clearsign (bool): if True wraps the document in an ASCII-armored
+ signature, if False creates a detached signature
+ """
+ signopt = '--clearsign' if clearsign else '--detach-sign'
+ GPG(signopt, '--armor', '--default-key', key, '--output', output, file)
- user_dir = os.path.join(var_run_user, str(os.getuid()))
- if not os.path.exists(user_dir):
- os.mkdir(user_dir)
- os.chmod(user_dir, 0o700)
+@_autoinit
+def verify(signature, file, suppress_warnings=False):
+ """Verify the signature on a file.
- # If the above operation fails due to lack of permissions, then
- # just carry on without running gpgconf and hope for the best.
- #
- # NOTE(opadron): Without a dir in which to create a socket for IPC,
- # gnupg may fail if GNUPGHOME is set to a path that
- # is too long, where "too long" in this context is
- # actually quite short; somewhere in the
- # neighborhood of more than 100 characters.
- #
- # TODO(opadron): Maybe a warning should be printed in this case?
- except OSError as exc:
- if exc.errno not in (errno.EPERM, errno.EACCES):
- raise
- user_dir = None
+ Args:
+ signature (str): signature of the file
+ file (str): file to be verified
+ suppress_warnings (bool): whether or not to suppress warnings
+ from GnuPG
+ """
+ kwargs = {'error': str} if suppress_warnings else {}
+ GPG('--verify', signature, file, **kwargs)
- # return the last iteration that provides a usable user run dir
- if user_dir is not None:
- result = user_dir
- return result
+@_autoinit
+def list(trusted, signing):
+ """List known keys.
- def clear(self):
- for attr in ('gpgconf_string', 'gpg_string', 'user_run_dir'):
- try:
- delattr(self, attr)
- except AttributeError:
- pass
+ Args:
+ trusted (bool): if True list public keys
+ signing (bool): if True list private keys
+ """
+ if trusted:
+ GPG('--list-public-keys')
+ if signing:
+ GPG('--list-secret-keys')
-GpgConstants = GpgConstants()
+def _verify_exe_or_raise(exe):
+ msg = (
+ 'Spack requires gpgconf version >= 2\n'
+ ' To install a suitable version using Spack, run\n'
+ ' spack install gnupg@2:\n'
+ ' and load it by running\n'
+ ' spack load gnupg@2:'
+ )
+ if not exe:
+ raise SpackGPGError(msg)
-def ensure_gpg(reevaluate=False):
- if reevaluate:
- GpgConstants.clear()
+ output = exe('--version', output=str)
+ match = re.search(r"^gpg(conf)? \(GnuPG\) (.*)$", output, re.M)
+ if not match:
+ raise SpackGPGError(
+ 'Could not determine "{0}" version'.format(exe.name)
+ )
- if GpgConstants.user_run_dir is not None:
- GpgConstants.gpgconf_string
+ if spack.version.Version(match.group(2)) < spack.version.Version('2'):
+ raise SpackGPGError(msg)
- GpgConstants.gpg_string
- return True
+def _gpgconf():
+ exe = spack.util.executable.which('gpgconf', 'gpg2conf', 'gpgconf2')
+ _verify_exe_or_raise(exe)
-def has_gpg(*args, **kwargs):
+ # ensure that the gpgconf we found can run "gpgconf --create-socketdir"
try:
- return ensure_gpg(*args, **kwargs)
- except SpackGPGError:
- return False
-
-
-# NOTE(opadron): When adding methods to this class, consider adding convenience
-# wrapper functions further down in this file.
-class Gpg(object):
- def __init__(self, gnupg_home=None):
- self.gnupg_home = get_gnupg_home(gnupg_home)
-
- @cached_property
- def prep(self):
- # Make sure that suitable versions of gpgconf and gpg are available
- ensure_gpg()
-
- # Make sure that the GNUPGHOME exists
- if not os.path.exists(self.gnupg_home):
- os.makedirs(self.gnupg_home)
- os.chmod(self.gnupg_home, 0o700)
-
- if not os.path.isdir(self.gnupg_home):
- raise SpackGPGError(
- 'GNUPGHOME "{0}" exists and is not a directory'.format(
- self.gnupg_home))
-
- if GpgConstants.user_run_dir is not None:
- self.gpgconf_exe('--create-socketdir')
-
- return True
-
- @cached_property
- def gpgconf_exe(self):
- exe = spack.util.executable.Executable(GpgConstants.gpgconf_string)
- exe.add_default_env('GNUPGHOME', self.gnupg_home)
- return exe
-
- @cached_property
- def gpg_exe(self):
- exe = spack.util.executable.Executable(GpgConstants.gpg_string)
- exe.add_default_env('GNUPGHOME', self.gnupg_home)
- return exe
-
- def __call__(self, *args, **kwargs):
- if self.prep:
- return self.gpg_exe(*args, **kwargs)
-
- def create(self, **kwargs):
- r, w = os.pipe()
- r = os.fdopen(r, 'r')
- w = os.fdopen(w, 'w')
- w.write('''
- Key-Type: rsa
- Key-Length: 4096
- Key-Usage: sign
- Name-Real: %(name)s
- Name-Email: %(email)s
- Name-Comment: %(comment)s
- Expire-Date: %(expires)s
- %%no-protection
- %%commit
- ''' % kwargs)
- w.close()
- self('--gen-key', '--batch', input=r)
- r.close()
-
- def signing_keys(self, *args):
- output = self('--list-secret-keys', '--with-colons', '--fingerprint',
- *args, output=str)
- return parse_secret_keys_output(output)
-
- def public_keys(self, *args):
- output = self('--list-public-keys', '--with-colons', '--fingerprint',
- *args, output=str)
- return parse_public_keys_output(output)
-
- def export_keys(self, location, *keys):
- self('--batch', '--yes',
- '--armor', '--export',
- '--output', location, *keys)
-
- def trust(self, keyfile):
- self('--import', keyfile)
-
- def untrust(self, signing, *keys):
- if signing:
- skeys = self.signing_keys(*keys)
- self('--batch', '--yes', '--delete-secret-keys', *skeys)
-
- pkeys = self.public_keys(*keys)
- self('--batch', '--yes', '--delete-keys', *pkeys)
-
- def sign(self, key, file, output, clearsign=False):
- self(('--clearsign' if clearsign else '--detach-sign'),
- '--armor', '--default-key', key,
- '--output', output, file)
-
- def verify(self, signature, file, suppress_warnings=False):
- self('--verify', signature, file,
- **({'error': str} if suppress_warnings else {}))
-
- def list(self, trusted, signing):
- if trusted:
- self('--list-public-keys')
-
- if signing:
- self('--list-secret-keys')
-
-
-class SpackGPGError(spack.error.SpackError):
- """Class raised when GPG errors are detected."""
+ exe('--dry-run', '--create-socketdir')
+ except spack.util.executable.ProcessError:
+ # no dice
+ exe = None
+ return exe
-# Convenience wrappers for methods of the Gpg class
-# __call__ is a bit of a special case, since the Gpg instance is, itself, the
-# "thing" that is being called.
-@functools.wraps(Gpg.__call__)
-def gpg(*args, **kwargs):
- return get_global_gpg_instance()(*args, **kwargs)
+def _gpg():
+ exe = spack.util.executable.which('gpg2', 'gpg')
+ _verify_exe_or_raise(exe)
+ return exe
-gpg.name = 'gpg'
+def _socket_dir(gpgconf):
+ # Try to ensure that (/var)/run/user/$(id -u) exists so that
+ # `gpgconf --create-socketdir` can be run later.
+ #
+ # NOTE(opadron): This action helps prevent a large class of
+ # "file-name-too-long" errors in gpg.
+ # If there is no suitable gpgconf, don't even bother trying to
+ # pre-create a user run dir.
+ if not gpgconf:
+ return None
-@functools.wraps(Gpg.create)
-def create(*args, **kwargs):
- return get_global_gpg_instance().create(*args, **kwargs)
-
-
-@functools.wraps(Gpg.signing_keys)
-def signing_keys(*args, **kwargs):
- return get_global_gpg_instance().signing_keys(*args, **kwargs)
-
-
-@functools.wraps(Gpg.public_keys)
-def public_keys(*args, **kwargs):
- return get_global_gpg_instance().public_keys(*args, **kwargs)
-
-
-@functools.wraps(Gpg.export_keys)
-def export_keys(*args, **kwargs):
- return get_global_gpg_instance().export_keys(*args, **kwargs)
-
-
-@functools.wraps(Gpg.trust)
-def trust(*args, **kwargs):
- return get_global_gpg_instance().trust(*args, **kwargs)
-
-
-@functools.wraps(Gpg.untrust)
-def untrust(*args, **kwargs):
- return get_global_gpg_instance().untrust(*args, **kwargs)
+ result = None
+ for var_run in ('/run', '/var/run'):
+ if not os.path.exists(var_run):
+ continue
+ var_run_user = os.path.join(var_run, 'user')
+ try:
+ if not os.path.exists(var_run_user):
+ os.mkdir(var_run_user)
+ os.chmod(var_run_user, 0o777)
-@functools.wraps(Gpg.sign)
-def sign(*args, **kwargs):
- return get_global_gpg_instance().sign(*args, **kwargs)
+ user_dir = os.path.join(var_run_user, str(os.getuid()))
+ if not os.path.exists(user_dir):
+ os.mkdir(user_dir)
+ os.chmod(user_dir, 0o700)
-@functools.wraps(Gpg.verify)
-def verify(*args, **kwargs):
- return get_global_gpg_instance().verify(*args, **kwargs)
+ # If the above operation fails due to lack of permissions, then
+ # just carry on without running gpgconf and hope for the best.
+ #
+ # NOTE(opadron): Without a dir in which to create a socket for IPC,
+ # gnupg may fail if GNUPGHOME is set to a path that
+ # is too long, where "too long" in this context is
+ # actually quite short; somewhere in the
+ # neighborhood of more than 100 characters.
+ #
+ # TODO(opadron): Maybe a warning should be printed in this case?
+ except OSError as exc:
+ if exc.errno not in (errno.EPERM, errno.EACCES):
+ raise
+ user_dir = None
+ # return the last iteration that provides a usable user run dir
+ if user_dir is not None:
+ result = user_dir
-@functools.wraps(Gpg.list)
-def list(*args, **kwargs):
- return get_global_gpg_instance().list(*args, **kwargs)
+ return result
diff --git a/lib/spack/spack/util/hash.py b/lib/spack/spack/util/hash.py
new file mode 100644
index 0000000000..da81284ea6
--- /dev/null
+++ b/lib/spack/spack/util/hash.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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)
+
+import base64
+import hashlib
+import sys
+
+import spack.util.crypto
+
+
+def b32_hash(content):
+ """Return the b32 encoded sha1 hash of the input string as a string."""
+ sha = hashlib.sha1(content.encode('utf-8'))
+ b32_hash = base64.b32encode(sha.digest()).lower()
+
+ if sys.version_info[0] >= 3:
+ b32_hash = b32_hash.decode('utf-8')
+
+ return b32_hash
+
+
+def base32_prefix_bits(hash_string, bits):
+ """Return the first <bits> bits of a base32 string as an integer."""
+ if bits > len(hash_string) * 5:
+ raise ValueError("Too many bits! Requested %d bit prefix of '%s'."
+ % (bits, hash_string))
+
+ hash_bytes = base64.b32decode(hash_string, casefold=True)
+ return spack.util.crypto.prefix_bits(hash_bytes, bits)
diff --git a/lib/spack/spack/util/imp/__init__.py b/lib/spack/spack/util/imp/__init__.py
index 27e2b00f9f..975b9a49a7 100644
--- a/lib/spack/spack/util/imp/__init__.py
+++ b/lib/spack/spack/util/imp/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/util/imp/imp_importer.py b/lib/spack/spack/util/imp/imp_importer.py
index 810e1d01a3..d41d28928b 100644
--- a/lib/spack/spack/util/imp/imp_importer.py
+++ b/lib/spack/spack/util/imp/imp_importer.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -28,11 +28,11 @@ def load_source(full_name, path, prepend=None):
Args:
full_name (str): full name of the module to be loaded
path (str): path to the file that should be loaded
- prepend (str, optional): some optional code to prepend to the
+ prepend (str or None): some optional code to prepend to the
loaded module; e.g., can be used to inject import statements
Returns:
- (ModuleType): the loaded module
+ the loaded module
"""
with import_lock():
if prepend is None:
diff --git a/lib/spack/spack/util/imp/importlib_importer.py b/lib/spack/spack/util/imp/importlib_importer.py
index c230f4c50a..161e278e90 100644
--- a/lib/spack/spack/util/imp/importlib_importer.py
+++ b/lib/spack/spack/util/imp/importlib_importer.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -37,11 +37,11 @@ def load_source(full_name, path, prepend=None):
Args:
full_name (str): full name of the module to be loaded
path (str): path to the file that should be loaded
- prepend (str, optional): some optional code to prepend to the
+ prepend (str or None): some optional code to prepend to the
loaded module; e.g., can be used to inject import statements
Returns:
- (ModuleType): the loaded module
+ the loaded module
"""
# use our custom loader
loader = PrependFileLoader(full_name, path, prepend)
diff --git a/lib/spack/spack/util/lock.py b/lib/spack/spack/util/lock.py
index b748aa056a..2f9839b0e2 100644
--- a/lib/spack/spack/util/lock.py
+++ b/lib/spack/spack/util/lock.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,14 +8,15 @@ import os
import stat
import llnl.util.lock
-from llnl.util.lock import * # noqa
import spack.config
import spack.error
import spack.paths
+from llnl.util.lock import * # noqa
+
-class Lock(llnl.util.lock.Lock):
+class Lock(llnl.util.lock.Lock): # type: ignore[no-redef]
"""Lock that can be disabled.
This overrides the ``_lock()`` and ``_unlock()`` methods from
diff --git a/lib/spack/spack/util/log_parse.py b/lib/spack/spack/util/log_parse.py
index 4b01c18c91..11692b0afb 100644
--- a/lib/spack/spack/util/log_parse.py
+++ b/lib/spack/spack/util/log_parse.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,9 +6,9 @@
from __future__ import print_function
import sys
-from six import StringIO
-from ctest_log_parser import CTestLogParser, BuildError, BuildWarning
+from ctest_log_parser import BuildError, BuildWarning, CTestLogParser
+from six import StringIO
import llnl.util.tty as tty
from llnl.util.tty.color import cescape, colorize
@@ -20,7 +20,7 @@ def parse_log_events(stream, context=6, jobs=None, profile=False):
"""Extract interesting events from a log file as a list of LogEvent.
Args:
- stream (str or fileobject): build log name or file object
+ stream (str or typing.IO): build log name or file object
context (int): lines of context to extract around each log event
jobs (int): number of jobs to parse with; default ncpus
profile (bool): print out profile information for parsing
@@ -43,7 +43,7 @@ def parse_log_events(stream, context=6, jobs=None, profile=False):
#: lazily constructed CTest log parser
-parse_log_events.ctest_parser = None
+parse_log_events.ctest_parser = None # type: ignore[attr-defined]
def _wrap(text, width):
@@ -60,7 +60,7 @@ def make_log_context(log_events, width=None):
"""Get error context from a log file.
Args:
- log_events (list of LogEvent): list of events created by
+ log_events (list): list of events created by
``ctest_log_parser.parse()``
width (int or None): wrap width; ``0`` for no limit; ``None`` to
auto-size for terminal
@@ -107,7 +107,7 @@ def make_log_context(log_events, width=None):
for i in range(start, event.end):
# wrap to width
lines = _wrap(event[i], wrap_width)
- lines[1:] = [indent + l for l in lines[1:]]
+ lines[1:] = [indent + ln for ln in lines[1:]]
wrapped_line = line_fmt % (i, '\n'.join(lines))
if i in error_lines:
diff --git a/lib/spack/spack/util/mock_package.py b/lib/spack/spack/util/mock_package.py
index 734a93c469..d8b3ec468b 100644
--- a/lib/spack/spack/util/mock_package.py
+++ b/lib/spack/spack/util/mock_package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,8 @@
import ordereddict_backport
-import spack.util.naming
import spack.provider_index
+import spack.util.naming
from spack.dependency import Dependency
from spack.spec import Spec
from spack.version import Version
@@ -81,8 +81,8 @@ class MockPackageMultiRepo(object):
def __init__(self):
self.spec_to_pkg = {}
- self.namespace = ''
- self.full_namespace = 'spack.pkg.mock'
+ self.namespace = 'mock' # repo namespace
+ self.full_namespace = 'spack.pkg.mock' # python import namespace
def get(self, spec):
if not isinstance(spec, spack.spec.Spec):
@@ -92,6 +92,10 @@ class MockPackageMultiRepo(object):
return self.spec_to_pkg[spec.name]
def get_pkg_class(self, name):
+ namespace, _, name = name.rpartition(".")
+ if namespace and namespace != self.namespace:
+ raise spack.repo.InvalidNamespaceError(
+ "bad namespace: %s" % self.namespace)
return self.spec_to_pkg[name]
def exists(self, name):
diff --git a/lib/spack/spack/util/module_cmd.py b/lib/spack/spack/util/module_cmd.py
index 18522002ce..d8c3ec8d14 100644
--- a/lib/spack/spack/util/module_cmd.py
+++ b/lib/spack/spack/util/module_cmd.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,16 @@
This module contains routines related to the module command for accessing and
parsing environment modules.
"""
-import subprocess
-import os
-import sys
import json
+import os
import re
+import subprocess
+import sys
-import spack
import llnl.util.tty as tty
+import spack
+
# This list is not exhaustive. Currently we only use load and unload
# If we need another option that changes the environment, add it here.
module_change_commands = ['load', 'swap', 'unload', 'purge', 'use', 'unuse']
@@ -95,6 +96,7 @@ def load_module(mod):
load that module. It then loads the provided module. Depends on the
modulecmd implementation of modules used in cray and lmod.
"""
+ tty.debug("module_cmd.load_module: {0}".format(mod))
# Read the module and remove any conflicting modules
# We do this without checking that they are already installed
# for ease of programming because unloading a module that is not
@@ -155,7 +157,7 @@ def path_from_modules(modules):
if candidate_path and not os.path.exists(candidate_path):
msg = ("Extracted path from module does not exist "
- "[module={0}, path={0}]")
+ "[module={0}, path={1}]")
tty.warn(msg.format(module_name, candidate_path))
# If anything is found, then it's the best choice. This means
diff --git a/lib/spack/spack/util/naming.py b/lib/spack/spack/util/naming.py
index 1cc6d6109f..a1ba2fd5aa 100644
--- a/lib/spack/spack/util/naming.py
+++ b/lib/spack/spack/util/naming.py
@@ -1,13 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
# Need this because of spack.util.string
from __future__ import absolute_import
-import string
+
import itertools
import re
+import string
+
from six import StringIO
import spack.error
diff --git a/lib/spack/spack/util/package_hash.py b/lib/spack/spack/util/package_hash.py
index adea1a498b..bb9ad40e45 100644
--- a/lib/spack/spack/util/package_hash.py
+++ b/lib/spack/spack/util/package_hash.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,10 +6,10 @@
import ast
import hashlib
-import spack.repo
-import spack.package
import spack.directives
import spack.error
+import spack.package
+import spack.repo
import spack.spec
import spack.util.naming
@@ -49,10 +49,10 @@ class RemoveDirectives(ast.NodeTransformer):
callbacks are sometimes represented).
Args:
- node (AST): the AST node being checked
+ node (ast.AST): the AST node being checked
Returns:
- (bool): ``True`` if the node represents a known directive,
+ bool: ``True`` if the node represents a known directive,
``False`` otherwise
"""
return (isinstance(node, ast.Expr) and
diff --git a/lib/spack/spack/util/path.py b/lib/spack/spack/util/path.py
index 182f93c585..49bb65f7d3 100644
--- a/lib/spack/spack/util/path.py
+++ b/lib/spack/spack/util/path.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,9 +7,10 @@
TODO: this is really part of spack.config. Consolidate it.
"""
+import contextlib
+import getpass
import os
import re
-import getpass
import subprocess
import tempfile
@@ -17,7 +18,7 @@ import llnl.util.tty as tty
from llnl.util.lang import memoized
import spack.paths
-
+import spack.util.spack_yaml as syaml
__all__ = [
'substitute_config_variables',
@@ -44,7 +45,11 @@ replacements = {
# ---------------------
# total -> 300
SPACK_MAX_INSTALL_PATH_LENGTH = 300
-SPACK_PATH_PADDING_CHARS = 'spack_path_placeholder'
+
+#: Padded paths comprise directories with this name (or some prefix of it). :
+#: It starts with two underscores to make it unlikely that prefix matches would
+#: include some other component of the intallation path.
+SPACK_PATH_PADDING_CHARS = '__spack_path_placeholder__'
@memoized
@@ -72,12 +77,22 @@ def substitute_config_variables(path):
- $spack The Spack instance's prefix
- $user The current user's username
- $tempdir Default temporary directory returned by tempfile.gettempdir()
+ - $env The active Spack environment.
These are substituted case-insensitively into the path, and users can
- use either ``$var`` or ``${var}`` syntax for the variables.
-
+ use either ``$var`` or ``${var}`` syntax for the variables. $env is only
+ replaced if there is an active environment, and should only be used in
+ environment yaml files.
"""
- # Look up replacements for re.sub in the replacements dict.
+ import spack.environment as ev # break circular
+ env = ev.active_environment()
+ if env:
+ replacements.update({'env': env.path})
+ else:
+ # If a previous invocation added env, remove it
+ replacements.pop('env', None)
+
+ # Look up replacements
def repl(match):
m = match.group(0).strip('${}')
return replacements.get(m.lower(), match.group(0))
@@ -132,7 +147,105 @@ def add_padding(path, length):
def canonicalize_path(path):
"""Same as substitute_path_variables, but also take absolute path."""
+ # Get file in which path was written in case we need to make it absolute
+ # relative to that path.
+ filename = None
+ if isinstance(path, syaml.syaml_str):
+ filename = os.path.dirname(path._start_mark.name)
+ assert path._start_mark.name == path._end_mark.name
+
path = substitute_path_variables(path)
- path = os.path.abspath(path)
+ if not os.path.isabs(path):
+ if filename:
+ path = os.path.join(filename, path)
+ else:
+ path = os.path.abspath(path)
+ tty.debug("Using current working directory as base for abspath")
- return path
+ return os.path.normpath(path)
+
+
+def longest_prefix_re(string, capture=True):
+ """Return a regular expression that matches a the longest possible prefix of string.
+
+ i.e., if the input string is ``the_quick_brown_fox``, then::
+
+ m = re.compile(longest_prefix('the_quick_brown_fox'))
+ m.match('the_').group(1) == 'the_'
+ m.match('the_quick').group(1) == 'the_quick'
+ m.match('the_quick_brown_fox').group(1) == 'the_quick_brown_fox'
+ m.match('the_xquick_brown_fox').group(1) == 'the_'
+ m.match('the_quickx_brown_fox').group(1) == 'the_quick'
+
+ """
+ if len(string) < 2:
+ return string
+
+ return "(%s%s%s?)" % (
+ "" if capture else "?:",
+ string[0],
+ longest_prefix_re(string[1:], capture=False)
+ )
+
+
+#: regex cache for padding_filter function
+_filter_re = None
+
+
+def padding_filter(string):
+ """Filter used to reduce output from path padding in log output.
+
+ This turns paths like this:
+
+ /foo/bar/__spack_path_placeholder__/__spack_path_placeholder__/...
+
+ Into paths like this:
+
+ /foo/bar/[padded-to-512-chars]/...
+
+ Where ``padded-to-512-chars`` indicates that the prefix was padded with
+ placeholders until it hit 512 characters. The actual value of this number
+ depends on what the `install_tree``'s ``padded_length`` is configured to.
+
+ For a path to match and be filtered, the placeholder must appear in its
+ entirety at least one time. e.g., "/spack/" would not be filtered, but
+ "/__spack_path_placeholder__/spack/" would be.
+
+ """
+ global _filter_re
+
+ pad = spack.util.path.SPACK_PATH_PADDING_CHARS
+ if not _filter_re:
+ longest_prefix = longest_prefix_re(pad)
+ regex = (
+ r"((?:/[^/\s]*)*?)" # zero or more leading non-whitespace path components
+ r"(/{pad})+" # the padding string repeated one or more times
+ r"(/{longest_prefix})?(?=/)" # trailing prefix of padding as path component
+ )
+ regex = regex.replace("/", os.sep)
+ regex = regex.format(pad=pad, longest_prefix=longest_prefix)
+ _filter_re = re.compile(regex)
+
+ def replacer(match):
+ return "%s%s[padded-to-%d-chars]" % (
+ match.group(1),
+ os.sep,
+ len(match.group(0))
+ )
+ return _filter_re.sub(replacer, string)
+
+
+@contextlib.contextmanager
+def filter_padding():
+ """Context manager to safely disable path padding in all Spack output.
+
+ This is needed because Spack's debug output gets extremely long when we use a
+ long padded installation path.
+ """
+ padding = spack.config.get("config:install_tree:padded_length", None)
+ if padding:
+ # filter out all padding from the intsall command output
+ with tty.output_filter(padding_filter):
+ yield
+ else:
+ yield # no-op: don't filter unless padding is actually enabled
diff --git a/lib/spack/spack/util/pattern.py b/lib/spack/spack/util/pattern.py
index c0569f5f55..0ddc51a165 100644
--- a/lib/spack/spack/util/pattern.py
+++ b/lib/spack/spack/util/pattern.py
@@ -1,13 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import inspect
import functools
+import inspect
import sys
-
if sys.version_info >= (3, 3):
from collections.abc import MutableSequence # novm
else:
@@ -42,7 +41,7 @@ def composite(interface=None, method_list=None, container=list):
interface (type): class exposing the interface to which the
composite object must conform. Only non-private and
non-special methods will be taken into account
- method_list (list of str): names of methods that should be part
+ method_list (list): names of methods that should be part
of the composite
container (MutableSequence): container for the composite object
(default = list). Must fulfill the MutableSequence
diff --git a/lib/spack/spack/util/prefix.py b/lib/spack/spack/util/prefix.py
index 10ec50d30c..b4542c7eb0 100644
--- a/lib/spack/spack/util/prefix.py
+++ b/lib/spack/spack/util/prefix.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/lib/spack/spack/util/s3.py b/lib/spack/spack/util/s3.py
index c9ed22f72c..b9b56e0498 100644
--- a/lib/spack/spack/util/s3.py
+++ b/lib/spack/spack/util/s3.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,13 @@ import spack
import spack.util.url as url_util
+def _parse_s3_endpoint_url(endpoint_url):
+ if not urllib_parse.urlparse(endpoint_url, scheme='').scheme:
+ endpoint_url = '://'.join(('https', endpoint_url))
+
+ return endpoint_url
+
+
def create_s3_session(url):
url = url_util.parse(url)
if url.scheme != 's3':
@@ -22,6 +29,7 @@ def create_s3_session(url):
# want to require boto as a dependency unless the user actually wants to
# access S3 mirrors.
from boto3 import Session
+ from botocore.exceptions import ClientError
session = Session()
@@ -29,10 +37,7 @@ def create_s3_session(url):
endpoint_url = os.environ.get('S3_ENDPOINT_URL')
if endpoint_url:
- if urllib_parse.urlparse(endpoint_url, scheme=None).scheme is None:
- endpoint_url = '://'.join(('https', endpoint_url))
-
- s3_client_args['endpoint_url'] = endpoint_url
+ s3_client_args['endpoint_url'] = _parse_s3_endpoint_url(endpoint_url)
# if no access credentials provided above, then access anonymously
if not session.get_credentials():
@@ -41,4 +46,6 @@ def create_s3_session(url):
s3_client_args["config"] = Config(signature_version=UNSIGNED)
- return session.client('s3', **s3_client_args)
+ client = session.client('s3', **s3_client_args)
+ client.ClientError = ClientError
+ return client
diff --git a/lib/spack/spack/util/spack_json.py b/lib/spack/spack/util/spack_json.py
index 01f773058b..d7ad61121f 100644
--- a/lib/spack/spack/util/spack_json.py
+++ b/lib/spack/spack/util/spack_json.py
@@ -1,20 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
"""Simple wrapper around JSON to guarantee consistent use of load/dump. """
-import sys
import json
-from six import string_types
-from six import iteritems
+import sys
+
+from six import iteritems, string_types
import spack.error
__all__ = ['load', 'dump', 'SpackJSONError']
_json_dump_args = {
- 'indent': True,
+ 'indent': 2,
'separators': (',', ': ')
}
@@ -38,10 +38,14 @@ def dump(data, stream=None):
def _strify(data, ignore_dicts=False):
+ """Converts python 2 unicodes to str in JSON data."""
+ # this is a no-op in python 3
+ if sys.version_info[0] >= 3:
+ return data
+
# if this is a unicode string in python 2, return its string representation
- if sys.version_info[0] < 3:
- if isinstance(data, string_types):
- return data.encode('utf-8')
+ if isinstance(data, string_types):
+ return data.encode('utf-8')
# if this is a list of values, return list of byteified values
if isinstance(data, list):
diff --git a/lib/spack/spack/util/spack_yaml.py b/lib/spack/spack/util/spack_yaml.py
index 4e61e02a4e..a67b6491f8 100644
--- a/lib/spack/spack/util/spack_yaml.py
+++ b/lib/spack/spack/util/spack_yaml.py
@@ -13,19 +13,19 @@
"""
import ctypes
+import re
import sys
-
-from ordereddict_backport import OrderedDict
-from six import string_types, StringIO
+from typing import List # novm
import ruamel.yaml as yaml
-from ruamel.yaml import RoundTripLoader, RoundTripDumper
+from ordereddict_backport import OrderedDict
+from ruamel.yaml import RoundTripDumper, RoundTripLoader
+from six import StringIO, string_types
-from llnl.util.tty.color import colorize, clen, cextra
+from llnl.util.tty.color import cextra, clen, colorize
import spack.error
-
if sys.version_info >= (3, 3):
from collections.abc import Mapping # novm
else:
@@ -184,6 +184,12 @@ class OrderedLineDumper(RoundTripDumper):
"""Make the dumper NEVER print YAML aliases."""
return True
+ def represent_data(self, data):
+ result = super(OrderedLineDumper, self).represent_data(data)
+ if data is None:
+ result.value = syaml_str("null")
+ return result
+
def represent_str(self, data):
if hasattr(data, 'override') and data.override:
data = data + ':'
@@ -226,7 +232,7 @@ def file_line(mark):
#: This is nasty but YAML doesn't give us many ways to pass arguments --
#: yaml.dump() takes a class (not an instance) and instantiates the dumper
#: itself, so we can't just pass an instance
-_annotations = []
+_annotations = [] # type: List[str]
class LineAnnotationDumper(OrderedLineDumper):
@@ -261,19 +267,18 @@ class LineAnnotationDumper(OrderedLineDumper):
def represent_data(self, data):
"""Force syaml_str to be passed through with marks."""
result = super(LineAnnotationDumper, self).represent_data(data)
- if isinstance(result.value, string_types):
+ if data is None:
+ result.value = syaml_str("null")
+ elif isinstance(result.value, string_types):
result.value = syaml_str(data)
if markable(result.value):
mark(result.value, data)
return result
- def write_stream_start(self):
- super(LineAnnotationDumper, self).write_stream_start()
- _annotations.append(colorize('@K{---}'))
-
def write_line_break(self):
super(LineAnnotationDumper, self).write_line_break()
- if not self.saved:
+ if self.saved is None:
+ _annotations.append(colorize('@K{---}'))
return
# append annotations at the end of each line
@@ -321,7 +326,10 @@ def dump_annotated(data, stream=None, *args, **kwargs):
sio = StringIO()
yaml.dump(data, sio, *args, **kwargs)
- lines = sio.getvalue().rstrip().split('\n')
+
+ # write_line_break() is not called by YAML for empty lines, so we
+ # skip empty lines here with \n+.
+ lines = re.split(r"\n+", sio.getvalue().rstrip())
getvalue = None
if stream is None:
diff --git a/lib/spack/spack/util/string.py b/lib/spack/spack/util/string.py
index 7284cef2d3..e132404e18 100644
--- a/lib/spack/spack/util/string.py
+++ b/lib/spack/spack/util/string.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -41,7 +41,7 @@ def plural(n, singular, plural=None, show_n=True):
Arguments:
n (int): number of things there are
singular (str): singular form of word
- plural (str, optional): optional plural form, for when it's not just
+ plural (str or None): optional plural form, for when it's not just
singular + 's'
show_n (bool): whether to include n in the result string (default True)
diff --git a/lib/spack/spack/util/timer.py b/lib/spack/spack/util/timer.py
new file mode 100644
index 0000000000..9dbc7551ea
--- /dev/null
+++ b/lib/spack/spack/util/timer.py
@@ -0,0 +1,61 @@
+# Copyright 2013-2021 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)
+
+"""Debug signal handler: prints a stack trace and enters interpreter.
+
+``register_interrupt_handler()`` enables a ctrl-C handler that prints
+a stack trace and drops the user into an interpreter.
+
+"""
+import sys
+import time
+
+import spack.util.spack_json as sjson
+
+
+class Timer(object):
+ """
+ Simple timer for timing phases of a solve or install
+ """
+ def __init__(self):
+ self.start = time.time()
+ self.last = self.start
+ self.phases = {}
+ self.end = None
+
+ def phase(self, name):
+ last = self.last
+ now = time.time()
+ self.phases[name] = now - last
+ self.last = now
+
+ @property
+ def total(self):
+ """Return the total time
+ """
+ if self.end:
+ return self.end - self.start
+ return time.time() - self.start
+
+ def stop(self):
+ """
+ Stop the timer to record a total time, if desired.
+ """
+ self.end = time.time()
+
+ def write_json(self, out=sys.stdout):
+ """
+ Write a json object with times to file
+ """
+ phases = [{"name": p, "seconds": s} for p, s in self.phases.items()]
+ times = {"phases": phases, "total": {"seconds": self.total}}
+ out.write(sjson.dump(times))
+
+ def write_tty(self, out=sys.stdout):
+ now = time.time()
+ out.write("Time:\n")
+ for phase, t in self.phases.items():
+ out.write(" %-15s%.4f\n" % (phase + ":", t))
+ out.write("Total: %.4f\n" % (now - self.start))
diff --git a/lib/spack/spack/util/url.py b/lib/spack/spack/util/url.py
index 3a3e0dfec7..72fc331fe3 100644
--- a/lib/spack/spack/util/url.py
+++ b/lib/spack/spack/util/url.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -248,3 +248,56 @@ def _join(base_url, path, *extra, **kwargs):
params=params,
query=query,
fragment=None))
+
+
+git_re = (
+ r"^(?:([a-z]+)://)?" # 1. optional scheme
+ r"(?:([^@]+)@)?" # 2. optional user
+ r"([^:/~]+)?" # 3. optional hostname
+ r"(?(1)(?::([^:/]+))?|:)" # 4. :<optional port> if scheme else :
+ r"(.*[^/])/?$" # 5. path
+)
+
+
+def parse_git_url(url):
+ """Parse git URL into components.
+
+ This parses URLs that look like:
+
+ * ``https://host.com:443/path/to/repo.git``, or
+ * ``git@host.com:path/to/repo.git``
+
+ Anything not matching those patterns is likely a local
+ file or invalid.
+
+ Returned components are as follows (optional values can be ``None``):
+
+ 1. ``scheme`` (optional): git, ssh, http, https
+ 2. ``user`` (optional): ``git@`` for github, username for http or ssh
+ 3. ``hostname``: domain of server
+ 4. ``port`` (optional): port on server
+ 5. ``path``: path on the server, e.g. spack/spack
+
+ Returns:
+ (tuple): tuple containing URL components as above
+
+ Raises ``ValueError`` for invalid URLs.
+ """
+ match = re.match(git_re, url)
+ if not match:
+ raise ValueError("bad git URL: %s" % url)
+
+ # initial parse
+ scheme, user, hostname, port, path = match.groups()
+
+ # special handling for ~ paths (they're never absolute)
+ if path.startswith("/~"):
+ path = path[1:]
+
+ if port is not None:
+ try:
+ port = int(port)
+ except ValueError:
+ raise ValueError("bad port in git url: %s" % url)
+
+ return (scheme, user, hostname, port, path)
diff --git a/lib/spack/spack/util/web.py b/lib/spack/spack/util/web.py
index 1b415f5de2..72f7abc2c4 100644
--- a/lib/spack/spack/util/web.py
+++ b/lib/spack/spack/util/web.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,33 +18,30 @@ import traceback
import six
from six.moves.urllib.error import URLError
-from six.moves.urllib.request import urlopen, Request
+from six.moves.urllib.request import Request, urlopen
-try:
- # Python 2 had these in the HTMLParser package.
- from HTMLParser import HTMLParser, HTMLParseError # novm
-except ImportError:
- # In Python 3, things moved to html.parser
- from html.parser import HTMLParser
-
- # Also, HTMLParseError is deprecated and never raised.
- class HTMLParseError(Exception):
- pass
-
-from llnl.util.filesystem import mkdirp
+import llnl.util.lang
import llnl.util.tty as tty
+from llnl.util.filesystem import mkdirp
-import spack.cmd
import spack.config
import spack.error
import spack.url
import spack.util.crypto
import spack.util.s3 as s3_util
import spack.util.url as url_util
-import llnl.util.lang
-
from spack.util.compression import ALLOWED_ARCHIVE_TYPES
+if sys.version_info < (3, 0):
+ # Python 2 had these in the HTMLParser package.
+ from HTMLParser import HTMLParseError, HTMLParser # novm
+else:
+ # In Python 3, things moved to html.parser
+ from html.parser import HTMLParser
+
+ # Also, HTMLParseError is deprecated and never raised.
+ class HTMLParseError(Exception):
+ pass
# Timeout in seconds for web requests
_timeout = 10
@@ -106,7 +103,8 @@ def read_from_url(url, accept_content_type=None):
else:
# User has explicitly indicated that they do not want SSL
# verification.
- context = ssl._create_unverified_context()
+ if not __UNABLE_TO_VERIFY_SSL:
+ context = ssl._create_unverified_context()
req = Request(url_util.format(url))
content_type = None
@@ -211,11 +209,10 @@ def url_exists(url):
if url.scheme == 's3':
s3 = s3_util.create_s3_session(url)
- from botocore.exceptions import ClientError
try:
- s3.get_object(Bucket=url.netloc, Key=url.path)
+ s3.get_object(Bucket=url.netloc, Key=url.path.lstrip('/'))
return True
- except ClientError as err:
+ except s3.ClientError as err:
if err.response['Error']['Code'] == 'NoSuchKey':
return False
raise err
@@ -229,17 +226,57 @@ def url_exists(url):
return False
-def remove_url(url):
+def _debug_print_delete_results(result):
+ if 'Deleted' in result:
+ for d in result['Deleted']:
+ tty.debug('Deleted {0}'.format(d['Key']))
+ if 'Errors' in result:
+ for e in result['Errors']:
+ tty.debug('Failed to delete {0} ({1})'.format(
+ e['Key'], e['Message']))
+
+
+def remove_url(url, recursive=False):
url = url_util.parse(url)
local_path = url_util.local_file_path(url)
if local_path:
- os.remove(local_path)
+ if recursive:
+ shutil.rmtree(local_path)
+ else:
+ os.remove(local_path)
return
if url.scheme == 's3':
s3 = s3_util.create_s3_session(url)
- s3.delete_object(Bucket=url.netloc, Key=url.path)
+ bucket = url.netloc
+ if recursive:
+ # Because list_objects_v2 can only return up to 1000 items
+ # at a time, we have to paginate to make sure we get it all
+ prefix = url.path.strip('/')
+ paginator = s3.get_paginator('list_objects_v2')
+ pages = paginator.paginate(Bucket=bucket, Prefix=prefix)
+
+ delete_request = {'Objects': []}
+ for item in pages.search('Contents'):
+ if not item:
+ continue
+
+ delete_request['Objects'].append({'Key': item['Key']})
+
+ # Make sure we do not try to hit S3 with a list of more
+ # than 1000 items
+ if len(delete_request['Objects']) >= 1000:
+ r = s3.delete_objects(Bucket=bucket, Delete=delete_request)
+ _debug_print_delete_results(r)
+ delete_request = {'Objects': []}
+
+ # Delete any items that remain
+ if len(delete_request['Objects']):
+ r = s3.delete_objects(Bucket=bucket, Delete=delete_request)
+ _debug_print_delete_results(r)
+ else:
+ s3.delete_object(Bucket=bucket, Key=url.path.lstrip('/'))
return
# Don't even try for other URL schemes.
@@ -329,7 +366,7 @@ def spider(root_urls, depth=0, concurrency=32):
up to <depth> levels of links from each root.
Args:
- root_urls (str or list of str): root urls used as a starting point
+ root_urls (str or list): root urls used as a starting point
for spidering
depth (int): level of recursion into links
concurrency (int): number of simultaneous requests that can be sent
@@ -470,9 +507,9 @@ def _urlopen(req, *args, **kwargs):
except AttributeError:
pass
- # We don't pass 'context' parameter because it was only introduced starting
+ # Note: 'context' parameter was only introduced starting
# with versions 2.7.9 and 3.4.3 of Python.
- if 'context' in kwargs:
+ if __UNABLE_TO_VERIFY_SSL:
del kwargs['context']
opener = urlopen
@@ -480,7 +517,13 @@ def _urlopen(req, *args, **kwargs):
import spack.s3_handler
opener = spack.s3_handler.open
- return opener(req, *args, **kwargs)
+ try:
+ return opener(req, *args, **kwargs)
+ except TypeError as err:
+ # If the above fails because of 'context', call without 'context'.
+ if 'context' in kwargs and 'context' in str(err):
+ del kwargs['context']
+ return opener(req, *args, **kwargs)
def find_versions_of_archive(
@@ -549,7 +592,10 @@ def find_versions_of_archive(
# .sha256
# .sig
# However, SourceForge downloads still need to end in '/download'.
- url_regex += r'(\/download)?$'
+ url_regex += r'(\/download)?'
+ # PyPI adds #sha256=... to the end of the URL
+ url_regex += '(#sha256=.*)?'
+ url_regex += '$'
regexes.append(url_regex)
diff --git a/lib/spack/spack/variant.py b/lib/spack/spack/variant.py
index 8fa52f9738..3badd30c20 100644
--- a/lib/spack/spack/variant.py
+++ b/lib/spack/spack/variant.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,19 +11,21 @@ import functools
import inspect
import itertools
import re
+import sys
+
from six import StringIO
-import llnl.util.tty.color
+if sys.version_info >= (3, 5):
+ from collections.abc import Sequence # novm
+else:
+ from collections import Sequence
+
import llnl.util.lang as lang
+import llnl.util.tty.color
-from spack.util.string import comma_or
import spack.directives
import spack.error as error
-
-try:
- from collections.abc import Sequence # novm
-except ImportError:
- from collections import Sequence
+from spack.util.string import comma_or
special_variant_values = [None, 'none', '*']
@@ -92,8 +94,8 @@ class Variant(object):
exception if any error is found.
Args:
- vspec (VariantSpec): instance to be validated
- pkg (Package): the package that required the validation,
+ vspec (Variant): instance to be validated
+ pkg (spack.package.Package): the package that required the validation,
if available
Raises:
@@ -200,7 +202,7 @@ def implicit_variant_conversion(method):
return convert
-@lang.key_ordering
+@lang.lazy_lexicographic_ordering
class AbstractVariant(object):
"""A variant that has not yet decided who it wants to be. It behaves like
a multi valued variant which **could** do things.
@@ -252,7 +254,7 @@ class AbstractVariant(object):
the variant.
Returns:
- tuple of str: values stored in the variant
+ tuple: values stored in the variant
"""
return self._value
@@ -281,14 +283,20 @@ class AbstractVariant(object):
# to a set
self._value = tuple(sorted(set(value)))
- def _cmp_key(self):
- return self.name, self.value
+ def _cmp_iter(self):
+ yield self.name
+
+ value = self._value
+ if not isinstance(value, tuple):
+ value = (value,)
+ value = tuple(str(x) for x in value)
+ yield value
def copy(self):
"""Returns an instance of a variant equivalent to self
Returns:
- any variant type: a copy of self
+ AbstractVariant: a copy of self
>>> a = MultiValuedVariant('foo', True)
>>> b = a.copy()
@@ -659,7 +667,7 @@ class DisjointSetsOfValues(Sequence):
and therefore no other set can contain the item ``'none'``.
Args:
- *sets (list of tuples): mutually exclusive sets of values
+ *sets (list): mutually exclusive sets of values
"""
_empty_set = set(('none',))
diff --git a/lib/spack/spack/verify.py b/lib/spack/spack/verify.py
index 528fa7903b..37c574875d 100644
--- a/lib/spack/spack/verify.py
+++ b/lib/spack/spack/verify.py
@@ -1,18 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os
-import hashlib
import base64
+import hashlib
+import os
import sys
import llnl.util.tty as tty
-import spack.util.spack_json as sjson
-import spack.util.file_permissions as fp
-import spack.store
import spack.filesystem_view
+import spack.store
+import spack.util.file_permissions as fp
+import spack.util.spack_json as sjson
def compute_hash(path):
diff --git a/lib/spack/spack/version.py b/lib/spack/spack/version.py
index 44e03edb5c..9aad046f25 100644
--- a/lib/spack/spack/version.py
+++ b/lib/spack/spack/version.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,31 +24,44 @@ be called on any of the types::
intersection
concrete
"""
-import re
import numbers
+import os
+import re
from bisect import bisect_left
from functools import wraps
+
from six import string_types
+import llnl.util.tty as tty
+from llnl.util.filesystem import mkdirp, working_dir
+
+import spack.caches
import spack.error
+import spack.paths
+import spack.util.executable
+import spack.util.spack_json as sjson
from spack.util.spack_yaml import syaml_dict
-
__all__ = ['Version', 'VersionRange', 'VersionList', 'ver']
# Valid version characters
-VALID_VERSION = r'[A-Za-z0-9_.-]'
+VALID_VERSION = re.compile(r'^[A-Za-z0-9_.-]+$')
+
+# regex for a commit version
+COMMIT_VERSION = re.compile(r'^[a-z0-9]{40}$')
+
+# regex for version segments
+SEGMENT_REGEX = re.compile(r'(?:(?P<num>[0-9]+)|(?P<str>[a-zA-Z]+))(?P<sep>[_.-]*)')
+
+# regular expression for semantic versioning
+SEMVER_REGEX = re.compile(".+(?P<semver>([0-9]+)[.]([0-9]+)[.]([0-9]+)"
+ "(?:-([0-9A-Za-z-]+(?:[.][0-9A-Za-z-]+)*))?"
+ "(?:[+][0-9A-Za-z-]+)?)")
# Infinity-like versions. The order in the list implies the comparison rules
infinity_versions = ['develop', 'main', 'master', 'head', 'trunk']
-
-def int_if_int(string):
- """Convert a string to int if possible. Otherwise, return a string."""
- try:
- return int(string)
- except ValueError:
- return string
+iv_min_len = min(len(s) for s in infinity_versions)
def coerce_versions(a, b):
@@ -93,26 +106,113 @@ def coerced(method):
return coercing_method
+class VersionStrComponent(object):
+ # NOTE: this is intentionally not a UserString, the abc instanceof
+ # check is slow enough to eliminate all gains
+ __slots__ = ['inf_ver', 'data']
+
+ def __init__(self, string):
+ self.inf_ver = None
+ self.data = string
+ if len(string) >= iv_min_len:
+ try:
+ self.inf_ver = infinity_versions.index(string)
+ except ValueError:
+ pass
+
+ def __hash__(self):
+ return hash(self.data)
+
+ def __str__(self):
+ return self.data
+
+ def __eq__(self, other):
+ if isinstance(other, VersionStrComponent):
+ return self.data == other.data
+ return self.data == other
+
+ def __lt__(self, other):
+ if isinstance(other, VersionStrComponent):
+ if self.inf_ver is not None:
+ if other.inf_ver is not None:
+ return self.inf_ver > other.inf_ver
+ return False
+ if other.inf_ver is not None:
+ return True
+
+ return self.data < other.data
+
+ if self.inf_ver is not None:
+ return False
+
+ # Numbers are always "newer" than letters.
+ # This is for consistency with RPM. See patch
+ # #60884 (and details) from bugzilla #50977 in
+ # the RPM project at rpm.org. Or look at
+ # rpmvercmp.c if you want to see how this is
+ # implemented there.
+ if isinstance(other, int):
+ return True
+
+ if isinstance(other, str):
+ return self < VersionStrComponent(other)
+ # If we get here, it's an unsupported comparison
+
+ raise ValueError("VersionStrComponent can only be compared with itself, "
+ "int and str")
+
+ def __gt__(self, other):
+ return not self.__lt__(other)
+
+
class Version(object):
"""Class to represent versions"""
+ __slots__ = ['version', 'separators', 'string', 'commit_lookup']
def __init__(self, string):
- string = str(string)
-
- if not re.match(VALID_VERSION, string):
- raise ValueError("Bad characters in version string: %s" % string)
+ if not isinstance(string, str):
+ string = str(string)
# preserve the original string, but trimmed.
string = string.strip()
self.string = string
- # Split version into alphabetical and numeric segments
- segment_regex = r'[a-zA-Z]+|[0-9]+'
- segments = re.findall(segment_regex, string)
- self.version = tuple(int_if_int(seg) for seg in segments)
+ if not VALID_VERSION.match(string):
+ raise ValueError("Bad characters in version string: %s" % string)
+
+ # An object that can lookup git commits to compare them to versions
+ self.commit_lookup = None
+
+ segments = SEGMENT_REGEX.findall(string)
+ self.version = tuple(
+ int(m[0]) if m[0] else VersionStrComponent(m[1]) for m in segments
+ )
+ self.separators = tuple(m[2] for m in segments)
+
+ def _cmp(self, other_lookups=None):
+ commit_lookup = self.commit_lookup or other_lookups
+
+ if self.is_commit and commit_lookup:
+ commit_info = commit_lookup.get(self.string)
+ if commit_info:
+ prev_version, distance = commit_info
+
+ # Extend previous version by empty component and distance
+ # If commit is exactly a known version, no distance suffix
+ prev_tuple = Version(prev_version).version if prev_version else ()
+ dist_suffix = (VersionStrComponent(''), distance) if distance else ()
+ return prev_tuple + dist_suffix
- # Store the separators from the original version string as well.
- self.separators = tuple(re.split(segment_regex, string)[1:])
+ return self.version
+
+ @property
+ def is_commit(self):
+ """
+ Determine if the original string is referencing a commit.
+ """
+ if self.string in infinity_versions:
+ return False
+ return COMMIT_VERSION.match(self.string) is not None
@property
def dotted(self):
@@ -219,10 +319,13 @@ class Version(object):
gcc@4.7 so that when a user asks to build with gcc@4.7, we can find
a suitable compiler.
"""
+ self_cmp = self._cmp(other.commit_lookup)
+ other_cmp = other._cmp(self.commit_lookup)
- nself = len(self.version)
- nother = len(other.version)
- return nother <= nself and self.version[:nother] == other.version
+ # Do the final comparison
+ nself = len(self_cmp)
+ nother = len(other_cmp)
+ return nother <= nself and self_cmp[:nother] == other_cmp
def __iter__(self):
return iter(self.version)
@@ -274,45 +377,22 @@ class Version(object):
if other is None:
return False
- # Coerce if other is not a Version
- # simple equality test first.
- if self.version == other.version:
+ # If either is a commit and we haven't indexed yet, can't compare
+ if (other.is_commit or self.is_commit) and not (self.commit_lookup or
+ other.commit_lookup):
return False
- # Standard comparison of two numeric versions
- for a, b in zip(self.version, other.version):
- if a == b:
- continue
- else:
- if a in infinity_versions:
- if b in infinity_versions:
- return (infinity_versions.index(a) >
- infinity_versions.index(b))
- else:
- return False
- if b in infinity_versions:
- return True
-
- # Neither a nor b is infinity
- # Numbers are always "newer" than letters.
- # This is for consistency with RPM. See patch
- # #60884 (and details) from bugzilla #50977 in
- # the RPM project at rpm.org. Or look at
- # rpmvercmp.c if you want to see how this is
- # implemented there.
- if type(a) != type(b):
- return type(b) == int
- else:
- return a < b
-
- # If the common prefix is equal, the one
- # with more segments is bigger.
- return len(self.version) < len(other.version)
+ # Use tuple comparison assisted by VersionStrComponent for performance
+ return self._cmp(other.commit_lookup) < other._cmp(self.commit_lookup)
@coerced
def __eq__(self, other):
- return (other is not None and
- type(other) == Version and self.version == other.version)
+
+ # Cut out early if we don't have a version
+ if other is None or type(other) != Version:
+ return False
+
+ return self._cmp(other.commit_lookup) == other._cmp(self.commit_lookup)
@coerced
def __ne__(self, other):
@@ -337,18 +417,23 @@ class Version(object):
def __contains__(self, other):
if other is None:
return False
- return other.version[:len(self.version)] == self.version
+
+ self_cmp = self._cmp(other.commit_lookup)
+ return other._cmp(self.commit_lookup)[:len(self_cmp)] == self_cmp
def is_predecessor(self, other):
"""True if the other version is the immediate predecessor of this one.
- That is, NO versions v exist such that:
+ That is, NO non-commit versions v exist such that:
(self < v < other and v not in self).
"""
- if len(self.version) != len(other.version):
+ self_cmp = self._cmp(self.commit_lookup)
+ other_cmp = other._cmp(other.commit_lookup)
+
+ if self_cmp[:-1] != other_cmp[:-1]:
return False
- sl = self.version[-1]
- ol = other.version[-1]
+ sl = self_cmp[-1]
+ ol = other_cmp[-1]
return type(sl) == int and type(ol) == int and (ol - sl == 1)
def is_successor(self, other):
@@ -369,11 +454,41 @@ class Version(object):
@coerced
def intersection(self, other):
- if self == other:
+ if self in other: # also covers `self == other`
return self
+ elif other in self:
+ return other
else:
return VersionList()
+ def generate_commit_lookup(self, pkg):
+ """
+ Use the git fetcher to look up a version for a commit.
+
+ Since we want to optimize the clone and lookup, we do the clone once
+ and store it in the user specified git repository cache. We also need
+ context of the package to get known versions, which could be tags if
+ they are linked to Git Releases. If we are unable to determine the
+ context of the version, we cannot continue. This implementation is
+ alongside the GitFetcher because eventually the git repos cache will
+ be one and the same with the source cache.
+
+ Args:
+ fetcher: the fetcher to use.
+ versions: the known versions of the package
+ """
+ if self.commit_lookup:
+ return
+
+ # Sanity check we have a commit
+ if not self.is_commit:
+ tty.die("%s is not a commit." % self)
+
+ # Generate a commit looker-upper
+ self.commit_lookup = CommitLookup(pkg)
+ self.commit_lookup.get(self.string)
+ self.commit_lookup.save()
+
class VersionRange(object):
@@ -590,7 +705,6 @@ class VersionList(object):
else:
self.versions = [vlist]
else:
- vlist = list(vlist)
for v in vlist:
self.add(ver(v))
@@ -860,3 +974,164 @@ class VersionError(spack.error.SpackError):
class VersionChecksumError(VersionError):
"""Raised for version checksum errors."""
+
+
+class VersionLookupError(VersionError):
+ """Raised for errors looking up git commits as versions."""
+
+
+class CommitLookup(object):
+ """An object for cached lookups of git commits
+
+ CommitLookup objects delegate to the misc_cache for locking.
+ CommitLookup objects may be attached to a Version object for which
+ Version.is_commit returns True to allow for comparisons between git commits
+ and versions as represented by tags in the git repository.
+ """
+ def __init__(self, pkg):
+ self.pkg = pkg
+
+ # We require the full git repository history
+ import spack.fetch_strategy # break cycle
+ fetcher = spack.fetch_strategy.GitFetchStrategy(git=pkg.git)
+ fetcher.get_full_repo = True
+ self.fetcher = fetcher
+
+ self.data = {}
+
+ # Cache data in misc_cache
+ key_base = 'git_metadata'
+ if not self.repository_uri.startswith('/'):
+ key_base += '/'
+ self.cache_key = key_base + self.repository_uri
+ spack.caches.misc_cache.init_entry(self.cache_key)
+ self.cache_path = spack.caches.misc_cache.cache_path(self.cache_key)
+
+ @property
+ def repository_uri(self):
+ """
+ Identifier for git repos used within the repo and metadata caches.
+
+ """
+ try:
+ components = [str(c).lstrip('/')
+ for c in spack.util.url.parse_git_url(self.pkg.git)
+ if c]
+ return os.path.join(*components)
+ except ValueError:
+ # If it's not a git url, it's a local path
+ return os.path.abspath(self.pkg.git)
+
+ def save(self):
+ """
+ Save the data to file
+ """
+ with spack.caches.misc_cache.write_transaction(self.cache_key) as (old, new):
+ sjson.dump(self.data, new)
+
+ def load_data(self):
+ """
+ Load data if the path already exists.
+ """
+ if os.path.isfile(self.cache_path):
+ with spack.caches.misc_cache.read_transaction(self.cache_key) as cache_file:
+ self.data = sjson.load(cache_file)
+
+ def get(self, commit):
+ if not self.data:
+ self.load_data()
+
+ if commit not in self.data:
+ self.data[commit] = self.lookup_commit(commit)
+ self.save()
+
+ return self.data[commit]
+
+ def lookup_commit(self, commit):
+ """Lookup the previous version and distance for a given commit.
+
+ We use git to compare the known versions from package to the git tags,
+ as well as any git tags that are SEMVER versions, and find the latest
+ known version prior to the commit, as well as the distance from that version
+ to the commit in the git repo. Those values are used to compare Version objects.
+ """
+ dest = os.path.join(spack.paths.user_repos_cache_path, self.repository_uri)
+ if dest.endswith('.git'):
+ dest = dest[:-4]
+
+ # prepare a cache for the repository
+ dest_parent = os.path.dirname(dest)
+ if not os.path.exists(dest_parent):
+ mkdirp(dest_parent)
+
+ # Only clone if we don't have it!
+ if not os.path.exists(dest):
+ self.fetcher.clone(dest, bare=True)
+
+ # Lookup commit info
+ with working_dir(dest):
+ self.fetcher.git("fetch", '--tags')
+
+ # Ensure commit is an object known to git
+ # Note the brackets are literals, the commit replaces the format string
+ # This will raise a ProcessError if the commit does not exist
+ # We may later design a custom error to re-raise
+ self.fetcher.git('cat-file', '-e', '%s^{commit}' % commit)
+
+ # List tags (refs) by date, so last reference of a tag is newest
+ tag_info = self.fetcher.git(
+ "for-each-ref", "--sort=creatordate", "--format",
+ "%(objectname) %(refname)", "refs/tags", output=str).split('\n')
+
+ # Lookup of commits to spack versions
+ commit_to_version = {}
+
+ for entry in tag_info:
+ if not entry:
+ continue
+ tag_commit, tag = entry.split()
+ tag = tag.replace('refs/tags/', '', 1)
+
+ # For each tag, try to match to a version
+ for v in [v.string for v in self.pkg.versions]:
+ if v == tag or 'v' + v == tag:
+ commit_to_version[tag_commit] = v
+ break
+ else:
+ # try to parse tag to copare versions spack does not know
+ match = SEMVER_REGEX.match(tag)
+ if match:
+ semver = match.groupdict()['semver']
+ commit_to_version[tag_commit] = semver
+
+ ancestor_commits = []
+ for tag_commit in commit_to_version:
+ self.fetcher.git(
+ 'merge-base', '--is-ancestor', tag_commit, commit,
+ ignore_errors=[1])
+ if self.fetcher.git.returncode == 0:
+ distance = self.fetcher.git(
+ 'rev-list', '%s..%s' % (tag_commit, commit), '--count',
+ output=str, error=str).strip()
+ ancestor_commits.append((tag_commit, int(distance)))
+
+ # Get nearest ancestor that is a known version
+ ancestor_commits.sort(key=lambda x: x[1])
+ if ancestor_commits:
+ prev_version_commit, distance = ancestor_commits[0]
+ prev_version = commit_to_version[prev_version_commit]
+ else:
+ # Get list of all commits, this is in reverse order
+ # We use this to get the first commit below
+ commit_info = self.fetcher.git("log", "--all", "--pretty=format:%H",
+ output=str)
+ commits = [c for c in commit_info.split('\n') if c]
+
+ # No previous version and distance from first commit
+ prev_version = None
+ distance = int(self.fetcher.git(
+ 'rev-list', '%s..%s' % (commits[-1], commit), '--count',
+ output=str, error=str
+ ).strip())
+
+ return prev_version, distance
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000000..d09e589bed
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,94 @@
+[tool.isort]
+profile = "black"
+sections = [
+ "FUTURE",
+ "STDLIB",
+ "THIRDPARTY",
+ "ARCHSPEC", "LLNL", "FIRSTPARTY",
+ "LOCALFOLDER",
+]
+known_first_party = "spack"
+known_archspec = "archspec"
+known_llnl = "llnl"
+src_paths = "lib"
+honor_noqa = true
+
+[tool.mypy]
+python_version = 3.7
+files = ['lib/spack/llnl/**/*.py', 'lib/spack/spack/**/*.py']
+mypy_path = ['bin', 'lib/spack', 'lib/spack/external', 'var/spack/repos/builtin']
+
+# This and a generated import file allows supporting packages
+namespace_packages = true
+
+# To avoid re-factoring all the externals, ignore errors and missing imports
+# globally, then turn back on in spack and spack submodules
+ignore_errors = true
+ignore_missing_imports = true
+
+ [[tool.mypy.overrides]]
+ module = 'spack.*'
+ ignore_errors = false
+ ignore_missing_imports = false
+
+ [[tool.mypy.overrides]]
+ module = 'packages.*'
+ ignore_errors = false
+ ignore_missing_imports = false
+
+ [[tool.mypy.overrides]]
+ module = 'llnl.*'
+ ignore_errors = false
+ ignore_missing_imports = false
+
+ [[tool.mypy.overrides]]
+ module = 'spack.test.packages'
+ ignore_errors = true
+
+ # ignore errors in fake import path for packages
+ [[tool.mypy.overrides]]
+ module = 'spack.pkg.*'
+ ignore_errors = true
+ ignore_missing_imports = true
+
+ # jinja has syntax in it that requires python3 and causes a parse error
+ # skip importing it
+ [[tool.mypy.overrides]]
+ module = 'jinja2'
+ follow_imports = 'skip'
+
+[tool.coverage.run]
+parallel = true
+concurrency = ["multiprocessing"]
+branch = true
+source = ["bin", "lib"]
+omit = [
+ 'lib/spack/spack/test/*',
+ 'lib/spack/docs/*',
+ 'lib/spack/external/*',
+ 'share/spack/qa/*',
+]
+
+[tool.coverage.report]
+# Regexes for lines to exclude from consideration
+exclude_lines = [
+ # Have to re-enable the standard pragma
+ 'pragma: no cover',
+
+ # Don't complain about missing debug-only code:
+ 'def __repr__',
+ 'if self\.debug',
+
+ # Don't complain if tests don't hit defensive assertion code:
+ 'raise AssertionError',
+ 'raise NotImplementedError',
+
+ # Don't complain if non-runnable code isn't run:
+ 'if 0:',
+ 'if False:',
+ 'if __name__ == .__main__.:',
+]
+ignore_errors = true
+
+[tool.coverage.html]
+directory = "htmlcov"
diff --git a/pytest.ini b/pytest.ini
index baf163ef0b..730658a778 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -1,10 +1,16 @@
# content of pytest.ini
[pytest]
-addopts = --durations=20 -ra
+addopts = --durations=30 -ra
testpaths = lib/spack/spack/test
python_files = *.py
+filterwarnings =
+ ignore::UserWarning
markers =
db: tests that require creating a DB
- network: tests that require access to the network
maybeslow: tests that may be slow (e.g. access a lot the filesystem, etc.)
regression: tests that fix a reported bug
+ requires_executables: tests that requires certain executables in PATH to run
+ nomockstage: use a stage area specifically created for this test, instead of relying on a common mock stage
+ enable_compiler_verification: enable compiler verification within unit tests
+ enable_compiler_link_paths: verifies compiler link paths within unit tests
+ disable_clean_stage_check: avoid failing tests if there are leftover files in the stage area
diff --git a/share/spack/bash/spack-completion.in b/share/spack/bash/spack-completion.in
index 80ba94ed87..ae9cbc555c 100755
--- a/share/spack/bash/spack-completion.in
+++ b/share/spack/bash/spack-completion.in
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -37,6 +37,17 @@
#
# See `man bash` for more details.
+if test -n "${ZSH_VERSION:-}" ; then
+ if [[ "$(emulate)" = zsh ]] ; then
+ # ensure base completion support is enabled, ignore insecure directories
+ autoload -U +X compinit && compinit -i
+ # ensure bash compatible completion support is enabled
+ autoload -U +X bashcompinit && bashcompinit
+ emulate sh -c "source '$0:A'"
+ return # stop interpreting file
+ fi
+fi
+
# Bash programmable completion for Spack
_bash_completion_spack() {
# In all following examples, let the cursor be denoted by brackets, i.e. []
@@ -44,7 +55,7 @@ _bash_completion_spack() {
# For our purposes, flags should not affect tab completion. For instance,
# `spack install []` and `spack -d install --jobs 8 []` should both give the same
# possible completions. Therefore, we need to ignore any flags in COMP_WORDS.
- local COMP_WORDS_NO_FLAGS=()
+ local -a COMP_WORDS_NO_FLAGS
local index=0
while [[ "$index" -lt "$COMP_CWORD" ]]
do
@@ -117,7 +128,9 @@ _bash_completion_spack() {
#_test_vars >> temp
# Make sure function exists before calling it
- if [[ "$(type -t $subfunction)" == "function" ]]
+ local rgx #this dance is necessary to cover bash and zsh regex
+ rgx="$subfunction.*function.* "
+ if [[ "$(type $subfunction 2>&1)" =~ $rgx ]]
then
$subfunction
COMPREPLY=($(compgen -W "$SPACK_COMPREPLY" -- "$cur"))
diff --git a/share/spack/bootstrap/github-actions/clingo.json b/share/spack/bootstrap/github-actions/clingo.json
new file mode 100644
index 0000000000..3068ad1f19
--- /dev/null
+++ b/share/spack/bootstrap/github-actions/clingo.json
@@ -0,0 +1,257 @@
+{
+ "verified": [
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "m4ertsh3ooxdisc5tigglublasu4udfe",
+ "094548672362306d75012398a6f9b1e8c0f796c833163ca77cf644d84822f25f"
+ ]
+ ],
+ "python": "python@3.5",
+ "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "iv4gr5vscx2io23ljgdueybwatxlk6wo",
+ "c8110c68ec339d05155392818b21ba87b27905ad798f5f3f194d6312385dbdc2"
+ ]
+ ],
+ "python": "python@3.6",
+ "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "rwxcxsohrkp5iai3yushsltkdprjmexb",
+ "fbee764cac890a29bc03c472d3ba0401e915d6924a7cedac9fd8d961159b70e7"
+ ]
+ ],
+ "python": "python@3.7",
+ "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "p5on7i4hejl775ezndzfdkhvwra3hatn",
+ "35e32f7c1f80e99da450b52643800fd2895ee2f895109f708b5cf0da6afbedff"
+ ]
+ ],
+ "python": "python@3.8",
+ "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "omsvlh5v6fi2saw5qyqvzsbvqpvrf5yw",
+ "cef0e554737dbf22655094d8ae072c67539cce2a37cba1577aeb5aea18b5747c"
+ ]
+ ],
+ "python": "python@3.9",
+ "spec": "clingo-bootstrap%apple-clang platform=darwin target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "qguh44xegb72y4q4lar3ufjddissoumv",
+ "68d2d0c06690d75a794aa2c50be9d6d501fec1b566784bf87b1fc5611f84f3c9"
+ ]
+ ],
+ "python": "python@3.5",
+ "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "tsypkz7hyylmh5pwpykaf7wcmdunrdiv",
+ "3b8e3e6e21e399a90c4128776cc591734f9d533f0a7e64ed8babd9cbcf616e3d"
+ ]
+ ],
+ "python": "python@3.6",
+ "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "2w6b4q5j2zgra6t3zfrjfbvsnoi5yqmk",
+ "4f335e02641f6ecc7ec7d9d2b8293d07d6e7a7234034531713b760aaa507fa7c"
+ ]
+ ],
+ "python": "python@3.7",
+ "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "ij7udwpgeghdfoswljwdtwwaylvudze7",
+ "b5eedf593f198e523aebf6ce127fd8ffcf3d1c980a920cdf1c5a0d2a335e4892"
+ ]
+ ],
+ "python": "python@3.8",
+ "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "a5ppijpzmk7ubjem4i3zttbxp545vjuz",
+ "8f9755c16c0c99b5c40c420f2c1c6aec2bdff99b25444e001506527af18dd94e"
+ ]
+ ],
+ "python": "python@3.9",
+ "spec": "clingo-bootstrap%gcc platform=linux target=aarch64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "tsnva2bxjguosntz3tk5mqbdgrjvhfcc",
+ "bcd093c08110309e705beebccd012260a61215eda12c1d47f3a89d4734ec7170"
+ ]
+ ],
+ "python": "python@3.5",
+ "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "rfu4la457mdbpoffk2g5hikj2hhoek4s",
+ "b6417b9b90f3f4e98caaa869393edee08fad3d3c7db37fad8b332c785d0e81e6"
+ ]
+ ],
+ "python": "python@3.6",
+ "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "qg3utj2csbgtdwc2slqbjmwn25rkor5r",
+ "a1760e064d41d364cdf53f89248f7824dad9bf97c6b999df18343b57d21c06ed"
+ ]
+ ],
+ "python": "python@3.7",
+ "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "uxkpc2euofdkgveonftklstnxyha5wsf",
+ "d6a04e7b15dae05eacce54806fa18356b392a5e2d212a55bf0960116b8e9dfef"
+ ]
+ ],
+ "python": "python@3.8",
+ "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "i2uoawqsmmkr2uwb42oxfsnt4djzejrj",
+ "6511837f87e50c40a7f4aab2ec7454e5200594821e4d1fc4a441d3be647b9acb"
+ ]
+ ],
+ "python": "python@3.9",
+ "spec": "clingo-bootstrap%gcc platform=linux target=ppc64le"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "p3bqplnwqo66lvvolmtaezck77jafrc4",
+ "436f9483e4028c12c32ba9f4e7e91e944bf9819ef487dfe4e42ddd1d487c93ee"
+ ]
+ ],
+ "python": "python@2.6",
+ "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "rpa6yyujr7ilnfcowq2pbmkmh7uzrijp",
+ "3be0f4ccd412d45506f9f305ef7f6621cd246fbde97aed081595d01dafe3c397"
+ ]
+ ],
+ "python": "python@2.7+ucs4",
+ "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "y32mbn7swer3yxvgf6tmkgekpo23uo5z",
+ "f6e0716bd97f2df123abcd96ec8884c525a9fd10b81e0062784e7b0d2df3f622"
+ ]
+ ],
+ "python": "python@2.7~ucs4",
+ "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "ohtmyp5c74xt75csx4llbjs5anobryp6",
+ "7d613ddbca1640d761311fb00403c0cb65e279534c44a2129b8d9610f6146e78"
+ ]
+ ],
+ "python": "python@3.5",
+ "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "vcipwnf57slgoo7busvvkzjkk7vydeb5",
+ "db5222760045f20ad1e5c194179d31273b8e4bfa6ade38e15cd3182d685cc05b"
+ ]
+ ],
+ "python": "python@3.6",
+ "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "ffoyoewfd6pdwbjniodfkqusyvkrbhyi",
+ "14cea5f6cfd86bcb8de38ad8c1a5e44cc22955de2e7c78b825b617dccd107dbe"
+ ]
+ ],
+ "python": "python@3.7",
+ "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "kt74l7kjzrlp3cgtj2576o33mhsrgyrw",
+ "e71de4beb68bb3e58bd2dcb98dc3be3a375c82781b6f7cb01bc5d552c2240bd2"
+ ]
+ ],
+ "python": "python@3.8",
+ "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
+ },
+ {
+ "binaries": [
+ [
+ "clingo-bootstrap",
+ "hmnv6gk5wha64k6r3s7hid35mzvhkuot",
+ "b08ff59357fa184ce39b8cc0a17aaf7f0a925a449ab389e1afa4eab6ae026f2e"
+ ]
+ ],
+ "python": "python@3.9",
+ "spec": "clingo-bootstrap%gcc platform=linux target=x86_64"
+ }
+ ]
+} \ No newline at end of file
diff --git a/share/spack/csh/pathadd.csh b/share/spack/csh/pathadd.csh
index 0f8a04ba62..ec394e8990 100644
--- a/share/spack/csh/pathadd.csh
+++ b/share/spack/csh/pathadd.csh
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/share/spack/csh/spack.csh b/share/spack/csh/spack.csh
index ce3308067e..7b6bcbf929 100644
--- a/share/spack/csh/spack.csh
+++ b/share/spack/csh/spack.csh
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/share/spack/docker/amazonlinux-2.dockerfile b/share/spack/docker/amazonlinux-2.dockerfile
new file mode 100644
index 0000000000..70a99388a2
--- /dev/null
+++ b/share/spack/docker/amazonlinux-2.dockerfile
@@ -0,0 +1,70 @@
+FROM public.ecr.aws/amazonlinux/amazonlinux:2.0.20201111.0
+MAINTAINER Spack Maintainers <maintainers@spack.io>
+
+ENV DOCKERFILE_BASE=centos \
+ DOCKERFILE_DISTRO=centos \
+ DOCKERFILE_DISTRO_VERSION=7 \
+ SPACK_ROOT=/opt/spack \
+ DEBIAN_FRONTEND=noninteractive \
+ CURRENTLY_BUILDING_DOCKER_IMAGE=1 \
+ container=docker
+
+RUN yum update -y \
+ && yum groupinstall -y "Development Tools" \
+ && yum install -y \
+ curl \
+ findutils \
+ gcc-c++ \
+ gcc \
+ gcc-gfortran \
+ git \
+ gnupg2 \
+ hostname \
+ iproute \
+ Lmod \
+ make \
+ patch \
+ python \
+ python-pip \
+ python-setuptools \
+ tcl \
+ unzip \
+ which \
+ && pip install boto3 \
+ && 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 \
+ && rm -rf /root/*.* /run/nologin $SPACK_ROOT/.git
+
+# [WORKAROUND]
+# https://superuser.com/questions/1241548/
+# xubuntu-16-04-ttyname-failed-inappropriate-ioctl-for-device#1253889
+RUN [ -f ~/.profile ] \
+ && sed -i 's/mesg n/( tty -s \\&\\& mesg n || true )/g' ~/.profile \
+ || true
+
+WORKDIR /root
+SHELL ["docker-shell"]
+
+# TODO: add a command to Spack that (re)creates the package cache
+RUN spack spec hdf5+mpi
+
+ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"]
+CMD ["interactive-shell"]
diff --git a/share/spack/docker/centos-6.dockerfile b/share/spack/docker/centos-6.dockerfile
new file mode 100644
index 0000000000..b0186f2ff8
--- /dev/null
+++ b/share/spack/docker/centos-6.dockerfile
@@ -0,0 +1,74 @@
+FROM centos:6
+MAINTAINER Spack Maintainers <maintainers@spack.io>
+
+ENV DOCKERFILE_BASE=centos \
+ DOCKERFILE_DISTRO=centos \
+ DOCKERFILE_DISTRO_VERSION=6 \
+ SPACK_ROOT=/opt/spack \
+ DEBIAN_FRONTEND=noninteractive \
+ CURRENTLY_BUILDING_DOCKER_IMAGE=1 \
+ container=docker
+
+# Make yum usable again with CentOS 6
+RUN curl https://www.getpagespeed.com/files/centos6-eol.repo --output /etc/yum.repos.d/CentOS-Base.repo
+
+RUN yum update -y \
+ && yum install -y epel-release \
+ && yum update -y \
+ && yum --enablerepo epel groupinstall -y "Development Tools" \
+ && yum --enablerepo epel install -y \
+ curl \
+ findutils \
+ gcc-c++ \
+ gcc \
+ gcc-gfortran \
+ git \
+ gnupg2 \
+ hostname \
+ iproute \
+ Lmod \
+ make \
+ patch \
+ python \
+ python-pip \
+ python-setuptools \
+ tcl \
+ unzip \
+ which \
+ && 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 \
+ && rm -rf /root/*.* /run/nologin $SPACK_ROOT/.git
+
+# [WORKAROUND]
+# https://superuser.com/questions/1241548/
+# xubuntu-16-04-ttyname-failed-inappropriate-ioctl-for-device#1253889
+RUN [ -f ~/.profile ] \
+ && sed -i 's/mesg n/( tty -s \\&\\& mesg n || true )/g' ~/.profile \
+ || true
+
+WORKDIR /root
+SHELL ["docker-shell"]
+
+# TODO: add a command to Spack that (re)creates the package cache
+RUN spack spec hdf5+mpi
+
+ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"]
+CMD ["interactive-shell"]
diff --git a/share/spack/docker/entrypoint.bash b/share/spack/docker/entrypoint.bash
index fbd7baf2bc..bc240cd57a 100755
--- a/share/spack/docker/entrypoint.bash
+++ b/share/spack/docker/entrypoint.bash
@@ -1,6 +1,6 @@
#! /usr/bin/env bash
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/share/spack/docker/leap-15.dockerfile b/share/spack/docker/leap-15.dockerfile
new file mode 100644
index 0000000000..1da72615ad
--- /dev/null
+++ b/share/spack/docker/leap-15.dockerfile
@@ -0,0 +1,61 @@
+FROM opensuse/leap:15.2
+MAINTAINER Christian Goll <cgoll@suse.com>
+
+ENV DOCKERFILE_BASE=opensuse \
+ DOCKERFILE_DISTRO=opensuse_leap \
+ DOCKERFILE_DISTRO_VERSION=15.2 \
+ SPACK_ROOT=/opt/spack \
+ DEBIAN_FRONTEND=noninteractive \
+ CURRENTLY_BUILDING_DOCKER_IMAGE=1 \
+ container=docker
+
+RUN zypper ref && \
+ zypper up -y && \
+ zypper in -y python3-base python3-boto3\
+ xz gzip tar bzip2 curl patch \
+ gcc-c++ gcc-fortran make cmake automake &&\
+ zypper clean
+
+# clean up manpages
+RUN rm -rf /var/cache/zypp/* \
+ rm -rf /usr/share/doc/packages/* \
+ rm -rf /usr/share/doc/manual/*
+
+# copy spack into container
+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 \
+ && rm -rf /root/*.* /run/nologin $SPACK_ROOT/.git
+
+# [WORKAROUND]
+# https://superuser.com/questions/1241548/
+# xubuntu-16-04-ttyname-failed-inappropriate-ioctl-for-device#1253889
+RUN [ -f ~/.profile ] \
+ && sed -i 's/mesg n/( tty -s \\&\\& mesg n || true )/g' ~/.profile \
+ || true
+
+WORKDIR /root
+SHELL ["docker-shell"]
+
+# Find tools which are in distro
+RUN ${SPACK_ROOT}/bin/spack external find --scope system
+
+# TODO: add a command to Spack that (re)creates the package cache
+RUN ${SPACK_ROOT}/bin/spack spec hdf5+mpi
+
+ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"]
+CMD ["interactive-shell"]
diff --git a/share/spack/docker/package-index/split.sh b/share/spack/docker/package-index/split.sh
index c82d8045f6..a44b96dbc5 100755
--- a/share/spack/docker/package-index/split.sh
+++ b/share/spack/docker/package-index/split.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/share/spack/docker/ubuntu-1804.dockerfile b/share/spack/docker/ubuntu-1804.dockerfile
index 1ecef10652..9ba3bc6179 100644
--- a/share/spack/docker/ubuntu-1804.dockerfile
+++ b/share/spack/docker/ubuntu-1804.dockerfile
@@ -67,7 +67,7 @@ RUN [ -f ~/.profile ] \
# [WORKAROUND]
# https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082
-RUN ln -s posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so
+RUN ln -s posix_c.so /usr/lib/$(uname -m)-linux-gnu/lua/5.2/posix.so
WORKDIR /root
SHELL ["docker-shell"]
diff --git a/share/spack/docs/docker/module-file-tutorial/spack.sh b/share/spack/docs/docker/module-file-tutorial/spack.sh
index b025bda979..65920826b7 100644
--- a/share/spack/docs/docker/module-file-tutorial/spack.sh
+++ b/share/spack/docs/docker/module-file-tutorial/spack.sh
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/share/spack/gitlab/cloud_e4s_pipelines.yml b/share/spack/gitlab/cloud_e4s_pipelines.yml
deleted file mode 100644
index 67a74cf971..0000000000
--- a/share/spack/gitlab/cloud_e4s_pipelines.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-pr_pipeline:
- only:
- - /^github\/pr[\d]+_.*$/
- variables:
- SPACK_REF: ${CI_COMMIT_SHA}
- SPACK_PR_BRANCH: ${CI_COMMIT_REF_NAME}
- SPACK_IS_PR_PIPELINE: "True"
- AWS_ACCESS_KEY_ID: ${PR_MIRRORS_AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${PR_MIRRORS_AWS_SECRET_ACCESS_KEY}
- trigger:
- project: spack/e4s
- strategy: depend
-
-develop_pipeline:
- only:
- - /^github\/develop$/
- variables:
- SPACK_REF: ${CI_COMMIT_SHA}
- AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
- SPACK_SIGNING_KEY: ${SPACK_SIGNING_KEY}
- trigger:
- project: spack/e4s
- strategy: depend
diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
new file mode 100644
index 0000000000..c9cfa4cb8a
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
@@ -0,0 +1,252 @@
+stages: [ "generate", "build" ]
+
+default:
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2021-05-15", "entrypoint": [""] }
+
+########################################
+# Job templates
+########################################
+
+.pr:
+ only:
+ - /^github\/pr[\d]+_.*$/
+ variables:
+ SPACK_PR_BRANCH: ${CI_COMMIT_REF_NAME}
+ SPACK_PIPELINE_TYPE: "spack_pull_request"
+
+.develop:
+ only:
+ - /^github\/develop$/
+ variables:
+ SPACK_PIPELINE_TYPE: "spack_protected_branch"
+
+.generate:
+ stage: generate
+ script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}
+ - spack env activate --without-view .
+ - spack ci generate --check-index-only
+ --artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir"
+ --output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
+ artifacts:
+ paths:
+ - "${CI_PROJECT_DIR}/jobs_scratch_dir"
+ tags: ["spack", "public", "medium", "x86_64"]
+ interruptible: true
+
+.pr-generate:
+ extends: [ ".pr", ".generate" ]
+
+.develop-generate:
+ extends: [ ".develop", ".generate" ]
+
+.build:
+ stage: build
+
+.pr-build:
+ extends: [ ".pr", ".build" ]
+ variables:
+ AWS_ACCESS_KEY_ID: ${PR_MIRRORS_AWS_ACCESS_KEY_ID}
+ AWS_SECRET_ACCESS_KEY: ${PR_MIRRORS_AWS_SECRET_ACCESS_KEY}
+
+.develop-build:
+ extends: [ ".develop", ".build" ]
+ variables:
+ AWS_ACCESS_KEY_ID: ${MIRRORS_AWS_ACCESS_KEY_ID}
+ AWS_SECRET_ACCESS_KEY: ${MIRRORS_AWS_SECRET_ACCESS_KEY}
+ SPACK_SIGNING_KEY: ${PACKAGE_SIGNING_KEY}
+
+########################################
+# TEMPLATE FOR ADDING ANOTHER PIPELINE
+########################################
+#
+# First add a new spack.yml defining the pipeline to run in
+# share/spack/gitlab/cloud_pipelines/stacks/my-super-cool-stack/spack.yaml
+#
+# Then add the following entries at the bottom of this file:
+#
+########################################
+# My Super Cool Pipeline
+########################################
+# .my-super-cool-stack:
+# variables:
+# SPACK_CI_STACK_NAME: my-super-cool-stack
+#
+# my-super-cool-stack-pr-generate:
+# extends: [ ".my-super-cool-stack", ".pr-generate"]
+#
+# my-super-cool-stack-develop-generate:
+# extends: [ ".my-super-cool-stack", ".develop-generate"]
+#
+# my-super-cool-stack-pr-build:
+# extends: [ ".my-super-cool-stack", ".pr-build" ]
+# trigger:
+# include:
+# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+# job: my-super-cool-stack-pr-generate
+# strategy: depend
+#
+# my-super-cool-stack-develop-build:
+# extends: [ ".my-super-cool-stack", ".develop-build" ]
+# trigger:
+# include:
+# - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+# job: my-super-cool-stack-develop-generate
+# strategy: depend
+
+########################################
+# E4S pipeline
+########################################
+.e4s:
+ variables:
+ SPACK_CI_STACK_NAME: e4s
+
+e4s-pr-generate:
+ extends: [ ".e4s", ".pr-generate"]
+
+e4s-develop-generate:
+ extends: [ ".e4s", ".develop-generate"]
+
+e4s-pr-build:
+ extends: [ ".e4s", ".pr-build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: e4s-pr-generate
+ strategy: depend
+
+e4s-develop-build:
+ extends: [ ".e4s", ".develop-build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: e4s-develop-generate
+ strategy: depend
+
+########################################
+# E4S on Power
+########################################
+.power-e4s-generate-tags-and-image:
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu20.04-runner-ppc64le:2021-07-01", "entrypoint": [""] }
+ tags: ["spack", "public", "medium", "ppc64le"]
+
+.e4s-on-power:
+ variables:
+ SPACK_CI_STACK_NAME: e4s-on-power
+
+e4s-on-power-pr-generate:
+ extends: [ ".e4s-on-power", ".pr-generate", ".power-e4s-generate-tags-and-image"]
+
+e4s-on-power-develop-generate:
+ extends: [ ".e4s-on-power", ".develop-generate", ".power-e4s-generate-tags-and-image"]
+
+e4s-on-power-pr-build:
+ extends: [ ".e4s-on-power", ".pr-build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: e4s-on-power-pr-generate
+ strategy: depend
+
+e4s-on-power-develop-build:
+ extends: [ ".e4s-on-power", ".develop-build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: e4s-on-power-develop-generate
+ strategy: depend
+
+#########################################
+# Build tests for different build-systems
+#########################################
+.build_systems:
+ variables:
+ SPACK_CI_STACK_NAME: build_systems
+
+build_systems-pr-generate:
+ extends: [ ".build_systems", ".pr-generate"]
+
+build_systems-develop-generate:
+ extends: [ ".build_systems", ".develop-generate"]
+
+build_systems-pr-build:
+ extends: [ ".build_systems", ".pr-build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: build_systems-pr-generate
+ strategy: depend
+
+build_systems-develop-build:
+ extends: [ ".build_systems", ".develop-build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: build_systems-develop-generate
+ strategy: depend
+
+#########################################
+# RADIUSS
+#########################################
+.radiuss:
+ variables:
+ SPACK_CI_STACK_NAME: radiuss
+
+.radiuss-generate:
+ extends: [ ".radiuss"]
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2021-05-15", "entrypoint": [""] }
+
+# --------- PRs ---------
+radiuss-pr-generate:
+ extends: [ ".radiuss-generate", ".pr-generate" ]
+
+radiuss-pr-build:
+ extends: [ ".radiuss", ".pr-build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: radiuss-pr-generate
+ strategy: depend
+
+# --------- Develop ---------
+radiuss-develop-generate:
+ extends: [ ".radiuss-generate", ".develop-generate" ]
+
+radiuss-develop-build:
+ extends: [ ".radiuss", ".develop-build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: radiuss-develop-generate
+ strategy: depend
+
+########################################
+# ECP Data & Vis SDK
+########################################
+.data-vis-sdk:
+ variables:
+ SPACK_CI_STACK_NAME: data-vis-sdk
+
+data-vis-sdk-pr-generate:
+ extends: [ ".data-vis-sdk", ".pr-generate"]
+
+data-vis-sdk-develop-generate:
+ extends: [ ".data-vis-sdk", ".develop-generate"]
+
+data-vis-sdk-pr-build:
+ extends: [ ".data-vis-sdk", ".pr-build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: data-vis-sdk-pr-generate
+ strategy: depend
+
+data-vis-sdk-develop-build:
+ extends: [ ".data-vis-sdk", ".develop-build" ]
+ trigger:
+ include:
+ - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml
+ job: data-vis-sdk-develop-generate
+ strategy: depend
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml
new file mode 100644
index 0000000000..5bbf04051d
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml
@@ -0,0 +1,61 @@
+spack:
+ view: false
+ concretization: separately
+
+ config:
+ install_tree:
+ root: /home/software/spack
+ padded_length: 512
+ projections:
+ all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
+
+ definitions:
+ - default_specs:
+ - lz4 # MakefilePackage
+ - mpich~fortran # AutotoolsPackage
+ - tut # WafPackage
+ - py-setuptools # PythonPackage
+ - openjpeg # CMakePackage
+ - r-rcpp # RPackage
+ - ruby-rake # RubyPackage
+ - arch:
+ - '%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64'
+
+ specs:
+ - matrix:
+ - - $default_specs
+ - - $arch
+
+ mirrors: { "mirror": "s3://spack-binaries-develop/build_systems" }
+
+ gitlab-ci:
+ script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd ${SPACK_CONCRETE_ENV_DIR}
+ - spack env activate --without-view .
+ - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'"
+ - spack -d ci rebuild
+
+ mappings:
+ - match: [ 'os=ubuntu18.04' ]
+ runner-attributes:
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01", "entrypoint": [ "" ] }
+ tags: [ "spack", "public", "large", "x86_64" ]
+
+ temporary-storage-url-prefix: "s3://spack-binaries-prs/pipeline-storage"
+ broken-specs-url: "s3://spack-binaries-develop/broken-specs"
+ service-job-attributes:
+ before_script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd share/spack/gitlab/cloud_pipelines/stacks/build_systems
+ - spack env activate --without-view .
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01", "entrypoint": [""] }
+ tags: ["spack", "public", "medium", "x86_64"]
+
+ cdash:
+ build-group: Build tests for different build systems
+ url: https://cdash.spack.io
+ project: Spack Testing
+ site: Cloud Gitlab Infrastructure
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml
new file mode 100644
index 0000000000..497d50ba43
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml
@@ -0,0 +1,63 @@
+spack:
+ view: false
+ concretization: separately
+
+ config:
+ install_tree:
+ root: /home/software/spack
+ padded_length: 512
+ projections:
+ all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
+
+ packages:
+ all:
+ target: [x86_64]
+
+ # The spec will be gradually expanded to enable all the SDK components.
+ # Currently disabled: ascent, catalyst, cinema, paraview, unifyfs, visit, vtkm
+ specs:
+ - matrix:
+ - - ecp-data-vis-sdk
+ +adios2
+ +darshan
+ +faodel
+ +hdf5
+ +pnetcdf
+ +sz
+ +veloc
+ +zfp
+
+ mirrors: { "mirror": "s3://spack-binaries-develop/data-vis-sdk" }
+
+ gitlab-ci:
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01", "entrypoint": [""] }
+ script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd ${SPACK_CONCRETE_ENV_DIR}
+ - spack env activate --without-view .
+ - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'"
+ - spack -d ci rebuild
+ mappings:
+ - match: [vtk-h, vtk-m, paraview, llvm, vtk]
+ runner-attributes:
+ tags: ["spack", "public", "xlarge", "x86_64"]
+ - match: ['@:']
+ runner-attributes:
+ tags: ["spack", "public", "large", "x86_64"]
+ temporary-storage-url-prefix: "s3://spack-binaries-prs/pipeline-storage"
+ service-job-attributes:
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01", "entrypoint": [""] }
+ before_script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk
+ - spack env activate --without-view .
+ tags: ["spack", "public", "medium", "x86_64"]
+
+ cdash:
+ build-group: Data and Vis SDK
+ url: https://cdash.spack.io
+ project: Spack Testing
+ site: Cloud Gitlab Infrastructure
+
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml
new file mode 100644
index 0000000000..9bf476ad03
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml
@@ -0,0 +1,371 @@
+spack:
+ view: false
+ concretization: separately
+
+ config:
+ install_tree:
+ root: /home/software/spack
+ padded_length: 512
+ projections:
+ all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
+
+ packages:
+ all:
+ compiler:
+ - gcc@9.3.0
+ providers:
+ blas:
+ - openblas
+ mpi:
+ - mpich
+ target:
+ - ppc64le
+ variants: +mpi
+ autoconf:
+ version:
+ - '2.69'
+ automake:
+ version:
+ - 1.16.3
+ berkeley-db:
+ version:
+ - 18.1.40
+ binutils:
+ variants: +ld +gold +headers +libiberty ~nls +plugins
+ version:
+ - 2.36.1
+ boost:
+ version:
+ - 1.76.0
+ bzip2:
+ version:
+ - 1.0.8
+ c-blosc:
+ version:
+ - 1.21.0
+ cmake:
+ version:
+ - 3.20.3
+ curl:
+ version:
+ - 7.76.1
+ diffutils:
+ version:
+ - 3.7
+ doxygen:
+ version:
+ - 1.8.20
+ elfutils:
+ version:
+ - 0.185
+ variants: +bzip2 ~nls +xz
+ expat:
+ version:
+ - 2.4.1
+ findutils:
+ version:
+ - 4.8.0
+ gdbm:
+ version:
+ - 1.19
+ gettext:
+ version:
+ - 0.21
+ git:
+ version:
+ - 2.31.1
+ glib:
+ version:
+ - 2.68.2
+ hdf5:
+ variants: +fortran +hl +shared api=v18
+ version:
+ - 1.12.0
+ help2man:
+ version:
+ - 1.47.16
+ hwloc:
+ version:
+ - 2.4.1
+ json-c:
+ version:
+ - 0.15
+ libbsd:
+ version:
+ - 0.11.3
+ libfabric:
+ version:
+ - 1.12.1
+ variants: fabrics=sockets,tcp,udp,rxm
+ libiconv:
+ version:
+ - 1.16
+ libsigsegv:
+ version:
+ - 2.13
+ libpciaccess:
+ version:
+ - 0.16
+ libtool:
+ version:
+ - 2.4.6
+ libunwind:
+ version:
+ - 1.5.0
+ variants: +pic +xz
+ libxml2:
+ version:
+ - 2.9.10
+ lz4:
+ version:
+ - 1.9.3
+ m4:
+ version:
+ - 1.4.19
+ mesa:
+ variants: ~llvm
+ mesa18:
+ variants: ~llvm
+ mpich:
+ variants: ~wrapperrpath
+ version:
+ - 3.4.2
+ ncurses:
+ version:
+ - 6.2
+ variants: +termlib
+ numactl:
+ version:
+ - 2.0.14
+ openblas:
+ version:
+ - 0.3.15
+ variants: threads=openmp
+ openssl:
+ version:
+ - 1.1.1l
+ perl:
+ version:
+ - 5.34.0 # 5.34.0
+ pkgconf:
+ version:
+ - 1.7.4
+ python:
+ version:
+ - 3.8.10
+ readline:
+ version:
+ - 8.1
+ sqlite:
+ version:
+ - 3.35.5
+ tar:
+ version:
+ - 1.34
+ texinfo:
+ version:
+ - 6.5
+ xz:
+ version:
+ - 5.2.5
+ variants: +pic
+ zlib:
+ version:
+ - 1.2.11
+ zstd:
+ version:
+ - 1.5.0
+
+ definitions:
+
+ - cuda_specs:
+ - amrex +cuda cuda_arch=70
+ - caliper +cuda cuda_arch=70
+ - chai +cuda ~benchmarks ~tests cuda_arch=70 ^umpire~shared+cuda
+ - ginkgo +cuda cuda_arch=70
+ - hpx +cuda cuda_arch=70
+ - kokkos +cuda +wrapper cuda_arch=70
+ - kokkos-kernels +cuda cuda_arch=70 ^kokkos +cuda +wrapper cuda_arch=70
+ - magma cuda_arch=70
+ - raja +cuda cuda_arch=70
+ - slate +cuda cuda_arch=70
+ - strumpack +cuda ~slate cuda_arch=70
+ - sundials +cuda cuda_arch=70
+ - superlu-dist +cuda cuda_arch=70
+ - tasmanian +cuda cuda_arch=70
+ - umpire +cuda ~shared cuda_arch=70
+ - zfp +cuda cuda_arch=70
+ #- ascent +cuda ~shared cuda_arch=70
+ #- axom +cuda cuda_arch=70 ^umpire~shared
+ #- hypre +cuda cuda_arch=70
+ #- mfem +cuda cuda_arch=70
+
+ - default_specs:
+ - adios
+ - adios2
+ - aml
+ - amrex
+ - arborx
+ - archer
+ - argobots
+ - ascent
+ - axom ^umpire@5.0.1 ^raja@0.13.0
+ - bolt
+ - cabana
+ - caliper
+ - chai ~benchmarks ~tests
+ - charliecloud
+ - conduit
+ - darshan-runtime
+ - darshan-util
+ - datatransferkit
+ - dyninst
+ - faodel ~tcmalloc
+ - flecsi
+ - flit
+ - fortrilinos ^trilinos +nox +superlu-dist +stratimikos
+ - gasnet
+ - ginkgo
+ - globalarrays
+ - gmp
+ - gotcha
+ - hdf5
+ - heffte +fftw
+ - hpctoolkit
+ - hpx
+ - hypre
+ - kokkos +openmp
+ - kokkos-kernels +openmp
+ - legion
+ - libnrm
+ - libquo
+ - libunwind
+ - loki
+ - mercury
+ - metall
+ - mfem
+ - mpark-variant
+ - mpifileutils ~xattr
+ - ninja
+ - nrm
+ - omega-h
+ - openmpi
+ - openpmd-api ^hdf5@1.12.0 +fortran +shared +hl api=default
+ - papi
+ - papyrus@1.0.1
+ - parallel-netcdf
+ - pdt
+ - petsc
+ - plasma
+ - precice
+ - pumi
+ - py-jupyterhub
+ - py-libensemble
+ - py-petsc4py
+ - py-warpx ^warpx dims=2 ^hdf5@1.12.0 +fortran +shared +hl api=default
+ - py-warpx ^warpx dims=3 ^hdf5@1.12.0 +fortran +shared +hl api=default
+ - py-warpx ^warpx dims=rz ^hdf5@1.12.0 +fortran +shared +hl api=default
+ - qthreads scheduler=distrib
+ - raja
+ - rempi
+ - scr
+ - slate ~cuda
+ - slepc
+ - stc
+ - strumpack ~slate
+ # holding off on the specs until infrastructure is ready
+ # - sundials
+ # - superlu
+ # - superlu-dist
+ # - swig
+ # - swig@4.0.2-fortran
+ # - sz
+ # - tasmanian
+ # - tau
+ #- trilinos@13.0.1 +amesos +amesos2 +anasazi +aztec +belos +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +boost +superlu-dist gotype=long
+ # - turbine
+ # - umap
+ # - unifyfs@0.9.1
+ # - upcxx
+ # - veloc
+ # - zfp
+
+ # build issues
+ #- dealii
+ #- geopm
+ #- llvm-doe@doe +clang +compiler-rt +libcxx +lld +lldb +llvm_dylib +flang
+ #- parsec
+ #- phist
+ #- qt
+ #- qwt
+ #- stat
+ #- umpire
+ #- variorum
+
+ - arch:
+ - '%gcc@9.3.0 arch=linux-ubuntu20.04-ppc64le'
+
+
+ specs:
+
+ - matrix:
+ - - $default_specs
+ - - $arch
+
+ - matrix:
+ - - $cuda_specs
+ - - $arch
+
+ mirrors: { "mirror": "s3://spack-binaries-develop/e4s" }
+
+ gitlab-ci:
+
+ script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd ${SPACK_CONCRETE_ENV_DIR}
+ - spack env activate --without-view .
+ - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'"
+ - spack -d ci rebuild
+
+ mappings:
+ - match:
+ - cuda
+ - dyninst
+ - hpx
+ - llvm
+ - llvm-amdgpu
+ - precice
+ - rocblas
+ - rocsolver
+ - strumpack
+ - sundials
+ - trilinos
+ - vtk-h
+ - vtk-m
+ - warpx
+ runner-attributes:
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu20.04-runner-ppc64le:2021-07-01", "entrypoint": [""] }
+ tags: ["spack", "public", "xlarge", "ppc64le"]
+ - match: ['os=ubuntu20.04']
+ runner-attributes:
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu20.04-runner-ppc64le:2021-07-01", "entrypoint": [""] }
+ tags: ["spack", "public", "large", "ppc64le"]
+ temporary-storage-url-prefix: "s3://spack-binaries-prs/pipeline-storage"
+ broken-specs-url: "s3://spack-binaries-develop/broken-specs"
+ service-job-attributes:
+ before_script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power
+ - spack env activate --without-view .
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu20.04-runner-ppc64le:2021-07-01", "entrypoint": [""] }
+ tags: ["spack", "public", "medium", "ppc64le"]
+
+ cdash:
+ build-group: New PR testing workflow
+ url: https://cdash.spack.io
+ project: Spack Testing
+ site: Cloud Gitlab Infrastructure
+
+
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
new file mode 100644
index 0000000000..00cd919fcc
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
@@ -0,0 +1,385 @@
+spack:
+ view: false
+ concretization: separately
+
+ config:
+ install_tree:
+ root: /home/software/spack
+ padded_length: 512
+ projections:
+ all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
+
+ packages:
+ all:
+ compiler:
+ - gcc@7.5.0
+ providers:
+ blas:
+ - openblas
+ mpi:
+ - mpich
+ target:
+ - x86_64
+ variants: +mpi
+ autoconf:
+ version:
+ - '2.69'
+ automake:
+ version:
+ - 1.16.3
+ berkeley-db:
+ version:
+ - 18.1.40
+ binutils:
+ variants: +ld +gold +headers +libiberty ~nls
+ version:
+ - 2.36.1
+ boost:
+ version:
+ - 1.76.0
+ bzip2:
+ version:
+ - 1.0.8
+ c-blosc:
+ version:
+ - 1.21.0
+ cmake:
+ version:
+ - 3.20.5
+ curl:
+ version:
+ - 7.76.1
+ diffutils:
+ version:
+ - 3.7
+ doxygen:
+ version:
+ - 1.8.20
+ elfutils:
+ version:
+ - 0.185
+ variants: +bzip2 ~nls +xz
+ expat:
+ version:
+ - 2.4.1
+ findutils:
+ version:
+ - 4.8.0
+ gdbm:
+ version:
+ - 1.19
+ gettext:
+ version:
+ - 0.21
+ git:
+ version:
+ - 2.31.1
+ glib:
+ version:
+ - 2.68.2
+ hdf5:
+ variants: +fortran +hl +shared
+ version:
+ - 1.10.7
+ help2man:
+ version:
+ - 1.47.16
+ hwloc:
+ version:
+ - 2.4.1
+ json-c:
+ version:
+ - 0.15
+ libbsd:
+ version:
+ - 0.11.3
+ libfabric:
+ version:
+ - 1.12.1
+ variants: fabrics=sockets,tcp,udp,rxm
+ libiconv:
+ version:
+ - 1.16
+ libsigsegv:
+ version:
+ - 2.13
+ libpciaccess:
+ version:
+ - 0.16
+ libtool:
+ version:
+ - 2.4.6
+ libunwind:
+ version:
+ - 1.5.0
+ variants: +pic +xz
+ libxml2:
+ version:
+ - 2.9.10
+ lz4:
+ version:
+ - 1.9.3
+ m4:
+ version:
+ - 1.4.19
+ mesa:
+ variants: ~llvm
+ mesa18:
+ variants: ~llvm
+ mpich:
+ variants: ~wrapperrpath
+ version:
+ - 3.4.2
+ ncurses:
+ version:
+ - 6.2
+ variants: +termlib
+ numactl:
+ version:
+ - 2.0.14
+ openblas:
+ version:
+ - 0.3.17
+ variants: threads=openmp
+ openssl:
+ version:
+ - 1.1.1l
+ perl:
+ version:
+ - 5.34.0
+ pkgconf:
+ version:
+ - 1.7.4
+ python:
+ version:
+ - 3.8.10
+ readline:
+ version:
+ - 8.1
+ sqlite:
+ version:
+ - 3.35.5
+ tar:
+ version:
+ - 1.34
+ texinfo:
+ version:
+ - 6.5
+ trilinos:
+ version:
+ - 13.0.1
+ variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
+ xz:
+ version:
+ - 5.2.5
+ variants: +pic
+ zlib:
+ version:
+ - 1.2.11
+ zstd:
+ version:
+ - 1.5.0
+
+ definitions:
+
+ - cuda_specs:
+ - amrex +cuda cuda_arch=70
+ # - axom +cuda cuda_arch=70 ^umpire@4.1.2 ~shared
+ - caliper +cuda cuda_arch=70
+ - chai +cuda ~benchmarks ~tests cuda_arch=70 ^umpire~shared+cuda
+ - ginkgo +cuda cuda_arch=70
+ - hpx +cuda cuda_arch=70
+ - kokkos +cuda +wrapper cuda_arch=70
+ - kokkos-kernels +cuda cuda_arch=70 ^kokkos +cuda +wrapper cuda_arch=70
+ - magma cuda_arch=70
+ - raja +cuda cuda_arch=70
+ - slate +cuda cuda_arch=70
+ - strumpack +cuda ~slate cuda_arch=70
+ - sundials +cuda cuda_arch=70
+ - superlu-dist +cuda cuda_arch=70
+ - tasmanian +cuda cuda_arch=70
+ - zfp +cuda cuda_arch=70
+ #- ascent +cuda ~shared cuda_arch=70
+ #- hypre +cuda cuda_arch=70
+ #- mfem +cuda cuda_arch=70
+ #- umpire +cuda ~shared cuda_arch=70 # unsatisfiable concretization conflict w/ blt
+
+ - rocm_specs:
+ - kokkos +rocm amdgpu_target=gfx906
+ - strumpack +rocm ~slate amdgpu_target=gfx906
+ #- amrex +rocm amdgpu_target=gfx906
+ #- chai +rocm ~benchmarks amdgpu_target=gfx906
+ #- ginkgo +rocm amdgpu_target=gfx906 # needs hip<4.1
+ #- raja +rocm ~openmp amdgpu_target=gfx906 # blt 0.3.6 issue with rocm
+ #- slate +rocm amdgpu_target=gfx906
+ #- sundials +rocm amdgpu_target=gfx906
+ #- tasmanian +rocm amdgpu_target=gfx906
+ #- umpire+rocm amdgpu_target=gfx906 # blt 0.3.6 issue with rocm
+
+ - default_specs:
+ - adios
+ - adios2
+ - aml
+ - amrex
+ - arborx
+ - archer
+ - argobots
+ - ascent
+ - axom ^umpire@5.0.1 ^raja@0.13.0
+ - bolt
+ - cabana
+ - caliper
+ - chai ~benchmarks ~tests
+ - conduit
+ - darshan-runtime
+ - darshan-util
+ - datatransferkit
+ - dyninst
+ - faodel
+ - flecsi@1.4.2 +external_cinch
+ - flit
+ - fortrilinos
+ - gasnet
+ - ginkgo
+ - globalarrays
+ - gmp
+ - gotcha
+ - hdf5
+ - heffte +fftw
+ - hpctoolkit
+ - hpx
+ - hypre
+ - kokkos +openmp
+ - kokkos-kernels +openmp
+ - legion
+ - libnrm
+ - libquo
+ - libunwind
+ - loki
+ - mercury
+ - metall
+ - mfem
+ - mpark-variant
+ - mpifileutils ~xattr
+ - ninja
+ - nrm
+ - omega-h
+ - openmpi
+ - openpmd-api
+ - papi
+ - papyrus@1.0.1
+ - parallel-netcdf
+ - pdt
+ - petsc
+ - phist
+ - plasma
+ - precice
+ - pumi
+ - py-jupyterhub
+ - py-libensemble
+ - py-petsc4py
+ - py-warpx ^warpx dims=2
+ - py-warpx ^warpx dims=3
+ - py-warpx ^warpx dims=rz
+ - qthreads scheduler=distrib
+ - raja
+ - rempi
+ - scr
+ - slate ~cuda
+ - slepc
+ - stc
+ - strumpack ~slate
+ - sundials
+ - superlu
+ - superlu-dist
+ - swig
+ - swig@4.0.2-fortran
+ - sz
+ - tasmanian
+ - tau
+ - trilinos@13.0.1 +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
+ - turbine
+ - umap
+ - unifyfs@0.9.1
+ - upcxx
+ - veloc
+ - zfp
+ #- dealii
+ #- geopm
+ #- llvm-doe@doe +clang +compiler-rt +libcxx +lld +lldb +llvm_dylib +flang
+ #- qt
+ #- qwt
+ #- umpire # unsatisfiable concretization conflict w/ blt
+ #- variorum # root fails
+
+ - arch:
+ - '%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64'
+
+
+ specs:
+
+ - matrix:
+ - - $default_specs
+ - - $arch
+
+ - matrix:
+ - - $cuda_specs
+ - - $arch
+
+ # - matrix:
+ # - - $rocm_specs
+ # - - $arch
+
+ mirrors: { "mirror": "s3://spack-binaries-develop/e4s" }
+
+ gitlab-ci:
+
+ script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd ${SPACK_CONCRETE_ENV_DIR}
+ - spack env activate --without-view .
+ - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'"
+ - mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data
+ - spack -d ci rebuild > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2)
+
+ mappings:
+ - match:
+ - cuda
+ - dyninst
+ - hpx
+ - kokkos-kernels
+ - llvm
+ - llvm-amdgpu
+ - precice
+ - rocblas
+ - rocsolver
+ - strumpack
+ - sundials
+ - trilinos
+ - vtk-h
+ - vtk-m
+ - warpx
+ runner-attributes:
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01", "entrypoint": [""] }
+ tags: ["spack", "public", "xlarge", "x86_64"]
+ - match: ['os=ubuntu18.04']
+ runner-attributes:
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01", "entrypoint": [""] }
+ tags: ["spack", "public", "large", "x86_64"]
+ temporary-storage-url-prefix: "s3://spack-binaries-prs/pipeline-storage"
+ broken-specs-url: "s3://spack-binaries-develop/broken-specs"
+ service-job-attributes:
+ before_script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd share/spack/gitlab/cloud_pipelines/stacks/e4s
+ - spack env activate --without-view .
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01", "entrypoint": [""] }
+ tags: ["spack", "public", "medium", "x86_64"]
+
+ cdash:
+ build-group: New PR testing workflow
+ url: https://cdash.spack.io
+ project: Spack Testing
+ site: Cloud Gitlab Infrastructure
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml
new file mode 100644
index 0000000000..30182a82d9
--- /dev/null
+++ b/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml
@@ -0,0 +1,96 @@
+spack:
+ concretization: separately
+ view: false
+
+ config:
+ concretizer: clingo
+ install_tree:
+ root: /home/software/radiuss
+ padded_length: 512
+ projections:
+ all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
+
+ packages:
+ all:
+ target: [x86_64]
+
+ providers:
+ mpi: [mvapich2]
+
+ definitions:
+ #- compilers: ['%gcc@8.3.1', '%clang@10.0.0']
+ - compilers: ['%gcc@7.5.0']
+
+ # Note skipping spot since no spack package for it
+ - radiuss:
+ - ascent # ^conduit@0.6.0
+ - axom ^umpire@5.0.1 ^raja@0.13.0
+ - blt
+ - caliper
+ #- care ## ~benchmarks ~examples ~tests
+ #- chai ## ~benchmarks ~examples ~tests
+ - conduit # ^hdf5+shared
+ - flux-core
+ #- flux-sched
+ #- glvis # ^mesa-glu@9.0.0 ^mesa18~llvm # same issue w/chai
+ - hypre
+ - lbann
+ - lvarray ~tests # per Spack issue #23192 # ~examples
+ - mfem
+ - py-hatchet
+ - py-maestrowf
+ - py-merlin
+ - py-shroud
+ - raja # ~examples # ~tests
+ - samrai
+ - scr
+ - sundials
+ - umpire # ~openmp
+ #- visit # ^mesa-glu@9.0.0
+ - xbraid
+ - zfp
+
+ mirrors:
+ mirror: "s3://spack-binaries-develop/radiuss"
+
+ specs:
+ - matrix:
+ - [$radiuss]
+ - [$compilers]
+
+ gitlab-ci:
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2021-05-15", "entrypoint": [""] }
+ script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd ${SPACK_CONCRETE_ENV_DIR}
+ - spack env activate --without-view .
+ - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'"
+ - spack -d ci rebuild
+ mappings:
+ - match: [ascent, axom, sundials, umpire, vtk-h, vtk-m]
+ runner-attributes:
+ tags: ["spack", "public", "xlarge", "x86_64"]
+ - match: ['os=ubuntu18.04']
+ runner-attributes:
+ tags: ["spack", "public", "large", "x86_64"]
+ temporary-storage-url-prefix: "s3://spack-binaries-prs/pipeline-storage"
+ service-job-attributes:
+ before_script:
+ - . "./share/spack/setup-env.sh"
+ - spack --version
+ - cd share/spack/gitlab/cloud_pipelines/stacks/radiuss
+ - spack env activate --without-view .
+ image: { "name": "ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2021-05-15", "entrypoint": [""] }
+ #before_script:
+ # - . "./share/spack/setup-env.sh"
+ # - spack --version
+ # - cd share/spack/gitlab/cloud_pipelines/stacks/radiuss
+ # - spack env activate --without-view .
+ tags: ["spack", "public", "medium", "x86_64"]
+
+ cdash:
+ build-group: RADIUSS
+ url: https://cdash.spack.io
+ project: Spack Testing
+ site: Cloud Gitlab Infrastructure
diff --git a/share/spack/gitlab/ascent_pipeline.yml b/share/spack/gitlab/nersc_pipeline.yml
index 4b00ec19e2..5edcb70c78 100644
--- a/share/spack/gitlab/ascent_pipeline.yml
+++ b/share/spack/gitlab/nersc_pipeline.yml
@@ -5,5 +5,5 @@ merge_pipeline:
SPACK_REPO: ${CI_PROJECT_URL}
SPACK_REF: ${CI_COMMIT_SHA}
trigger:
- project: ecpcitest/e4s
+ project: ecp/e4s/e4s
strategy: depend
diff --git a/share/spack/qa/bashcov b/share/spack/qa/bashcov
index 58fa4fe0d0..4ca684f42b 100755
--- a/share/spack/qa/bashcov
+++ b/share/spack/qa/bashcov
@@ -9,4 +9,7 @@ if [ -z "$SPACK_ROOT" ]; then
exit 1
fi
-kcov "$SPACK_ROOT/coverage" "$@"
+# Using a -- to separate the script to be tested from kcov is not documented
+# as of v38, but seems to work. The same is true for the "--debug-force-bash-stderr"
+# option, see https://github.com/SimonKagstrom/kcov/issues/61
+kcov --debug-force-bash-stderr "$SPACK_ROOT/coverage" -- "$@"
diff --git a/share/spack/qa/completion-test.sh b/share/spack/qa/completion-test.sh
index 59a5181b98..0777002f0a 100755
--- a/share/spack/qa/completion-test.sh
+++ b/share/spack/qa/completion-test.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -31,13 +31,18 @@ title "Testing spack-completion.$_sp_shell with $_sp_shell"
succeeds which spack
title 'Testing all subcommands'
-while IFS= read -r line
+# read line into an array portably
+READ="read -ra line"
+if [ -n "${ZSH_VERSION:-}" ]; then
+ READ=(read -rA line)
+fi
+while IFS=' ' $READ
do
# Test that completion with no args works
- succeeds _spack_completions ${line[*]} ''
+ succeeds _spack_completions "${line[@]}" ''
# Test that completion with flags works
- contains '-h --help' _spack_completions ${line[*]} -
+ contains '-h --help' _spack_completions "${line[@]}" -
done <<- EOF
$(spack commands --aliases --format=subcommands)
EOF
@@ -58,32 +63,39 @@ contains 'hdf5' _spack_completions spack install -v ''
# XFAIL: Fails for Python 2.6 because pkg_resources not found?
#contains 'compilers.py' _spack_completions spack unit-test ''
-title 'Testing debugging functions'
-
-# This is a particularly tricky case that involves the following situation:
-# `spack -d [] install `
-# Here, [] represents the cursor, which is in the middle of the line.
-# We should tab-complete optional flags for `spack`, not optional flags for
-# `spack install` or package names.
-COMP_LINE='spack -d install '
-COMP_POINT=9
-COMP_WORDS=(spack -d install)
-COMP_CWORD=2
-COMP_KEY=9
-COMP_TYPE=64
-
-_bash_completion_spack
-contains "--all-help" echo "${COMPREPLY[@]}"
-
-contains "['spack', '-d', 'install', '']" _pretty_print COMP_WORDS[@]
-
-# Set the rest of the intermediate variables manually
-COMP_WORDS_NO_FLAGS=(spack install)
-COMP_CWORD_NO_FLAGS=1
-subfunction=_spack
-cur=
-
-list_options=true
-contains "'True'" _test_vars
-list_options=false
-contains "'False'" _test_vars
+_test_debug_functions() {
+ title 'Testing debugging functions'
+
+ if [ -n "${ZSH_VERSION:-}" ]; then
+ emulate -L sh
+ fi
+
+ # This is a particularly tricky case that involves the following situation:
+ # `spack -d [] install `
+ # Here, [] represents the cursor, which is in the middle of the line.
+ # We should tab-complete optional flags for `spack`, not optional flags for
+ # `spack install` or package names.
+ COMP_LINE='spack -d install '
+ COMP_POINT=9
+ COMP_WORDS=(spack -d install)
+ COMP_CWORD=2
+ COMP_KEY=9
+ COMP_TYPE=64
+
+ _bash_completion_spack
+ contains "--all-help" echo "${COMPREPLY[@]}"
+
+ contains "['spack', '-d', 'install', '']" _pretty_print COMP_WORDS[@]
+
+ # Set the rest of the intermediate variables manually
+ COMP_WORDS_NO_FLAGS=(spack install)
+ COMP_CWORD_NO_FLAGS=1
+ subfunction=_spack
+ cur=
+
+ list_options=true
+ contains "'True'" _test_vars
+ list_options=false
+ contains "'False'" _test_vars
+}
+_test_debug_functions
diff --git a/share/spack/qa/flake8_formatter.py b/share/spack/qa/flake8_formatter.py
new file mode 100644
index 0000000000..0611d54019
--- /dev/null
+++ b/share/spack/qa/flake8_formatter.py
@@ -0,0 +1,148 @@
+import re
+import sys
+from collections import defaultdict
+
+import pycodestyle
+from flake8.formatting.default import Pylint
+from flake8.style_guide import Violation
+
+#: This is a dict that maps:
+#: filename pattern ->
+#: flake8 exemption code ->
+#: list of patterns, for which matching lines should have codes applied.
+#:
+#: For each file, if the filename pattern matches, we'll add per-line
+#: exemptions if any patterns in the sub-dict match.
+pattern_exemptions = {
+ # exemptions applied only to package.py files.
+ r"package.py$": {
+ # Allow 'from spack import *' in packages, but no other wildcards
+ "F403": [
+ r"^from spack import \*$",
+ r"^from spack.pkgkit import \*$",
+ ],
+ # Exempt lines with urls and descriptions from overlong line errors.
+ "E501": [
+ r"^\s*homepage\s*=",
+ r"^\s*url\s*=",
+ r"^\s*git\s*=",
+ r"^\s*svn\s*=",
+ r"^\s*hg\s*=",
+ r"^\s*pypi\s*=",
+ r"^\s*list_url\s*=",
+ r"^\s*version\(",
+ r"^\s*variant\(",
+ r"^\s*provides\(",
+ r"^\s*extends\(",
+ r"^\s*depends_on\(",
+ r"^\s*conflicts\(",
+ r"^\s*resource\(",
+ r"^\s*patch\(",
+ ],
+ # Exempt '@when' decorated functions from redefinition errors.
+ "F811": [
+ r"^\s*@when\(.*\)",
+ ],
+ },
+ # exemptions applied to all files.
+ r".py$": {
+ "E501": [
+ r"(https?|ftp|file)\:", # URLs
+ r'([\'"])[0-9a-fA-F]{32,}\1', # long hex checksums
+ ]
+ },
+}
+
+
+# compile all regular expressions.
+pattern_exemptions = dict(
+ (
+ re.compile(file_pattern),
+ dict(
+ (code, [re.compile(p) for p in patterns])
+ for code, patterns in error_dict.items()
+ ),
+ )
+ for file_pattern, error_dict in pattern_exemptions.items()
+)
+
+
+class SpackFormatter(Pylint):
+ def __init__(self, options):
+ self.spack_errors = {}
+ self.error_seen = False
+ super().__init__(options)
+
+ def after_init(self): # type: () -> None
+ """Overriding to keep format string from being unset in Default"""
+ pass
+
+ def beginning(self, filename):
+ self.filename = filename
+ self.file_lines = None
+ self.spack_errors = defaultdict(list)
+ for file_pattern, errors in pattern_exemptions.items():
+ if file_pattern.search(filename):
+ for code, pat_arr in errors.items():
+ self.spack_errors[code].extend(pat_arr)
+
+ def handle(self, error): # type: (Violation) -> None
+ """Handle an error reported by Flake8.
+
+ This defaults to calling :meth:`format`, :meth:`show_source`, and
+ then :meth:`write`. This version implements the pattern-based ignore
+ behavior from `spack flake8` as a native flake8 plugin.
+
+ :param error:
+ This will be an instance of
+ :class:`~flake8.style_guide.Violation`.
+ :type error:
+ flake8.style_guide.Violation
+ """
+
+ # print(error.code)
+ # print(error.physical_line)
+ # get list of patterns for this error code
+ pats = self.spack_errors.get(error.code, None)
+ # if any pattern matches, skip line
+ if pats is not None and any(
+ (pat.search(error.physical_line) for pat in pats)
+ ):
+ return
+
+ # Special F811 handling
+ # Prior to Python 3.8, `noqa: F811` needed to be placed on the `@when`
+ # line
+ # Starting with Python 3.8, it must be placed on the `def` line
+ # https://gitlab.com/pycqa/flake8/issues/583
+ # we can only determine if F811 should be ignored given the previous
+ # line, so get the previous line and check it
+ if (
+ self.spack_errors.get("F811", False)
+ and error.code == "F811"
+ and error.line_number > 1
+ ):
+ if self.file_lines is None:
+ if self.filename in {"stdin", "-", "(none)", None}:
+ self.file_lines = pycodestyle.stdin_get_value().splitlines(
+ True
+ )
+ else:
+ self.file_lines = pycodestyle.readlines(self.filename)
+ for pat in self.spack_errors["F811"]:
+ if pat.search(self.file_lines[error.line_number - 2]):
+ return
+
+ self.error_seen = True
+ line = self.format(error)
+ source = self.show_source(error)
+ self.write(line, source)
+
+ def stop(self):
+ """Override stop to check whether any errors we consider to be errors
+ were reported.
+
+ This is a hack, but it makes flake8 behave the desired way.
+ """
+ if not self.error_seen:
+ sys.exit(0)
diff --git a/share/spack/qa/run-build-tests b/share/spack/qa/run-build-tests
index c714c59440..d64aa061fa 100755
--- a/share/spack/qa/run-build-tests
+++ b/share/spack/qa/run-build-tests
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/share/spack/qa/run-doc-tests b/share/spack/qa/run-doc-tests
index eeba12d8d6..61d18288d0 100755
--- a/share/spack/qa/run-doc-tests
+++ b/share/spack/qa/run-doc-tests
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/share/spack/qa/run-shell-tests b/share/spack/qa/run-shell-tests
index 9c5302ec89..ea67b4c820 100755
--- a/share/spack/qa/run-shell-tests
+++ b/share/spack/qa/run-shell-tests
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,11 @@
ORIGINAL_PATH="$PATH"
. "$(dirname $0)/setup.sh"
-check_dependencies $coverage kcov git hg svn
+if [ "$COVERAGE" = true ]; then
+ check_dependencies $coverage kcov git hg svn
+else
+ echo "COVERAGE not set to 'true' [skipping coverage]"
+fi
# Clean the environment by removing Spack from the path and getting rid of
# the spack shell function
@@ -34,8 +38,8 @@ cd "$SPACK_ROOT"
# Run bash tests with coverage enabled, but pipe output to /dev/null
# because it seems that kcov seems to undo the script's redirection
if [ "$COVERAGE" = true ]; then
- "$QA_DIR/bashcov" "$QA_DIR/setup-env-test.sh" &> /dev/null
- "$QA_DIR/bashcov" "$QA_DIR/completion-test.sh" &> /dev/null
+ kcov "$SPACK_ROOT/coverage" "$QA_DIR/setup-env-test.sh" &> /dev/null
+ kcov "$SPACK_ROOT/coverage" "$QA_DIR/completion-test.sh" &> /dev/null
else
bash "$QA_DIR/setup-env-test.sh"
bash "$QA_DIR/completion-test.sh"
@@ -43,6 +47,7 @@ fi
# Run the test scripts for their output (these will print nicely)
zsh "$QA_DIR/setup-env-test.sh"
+zsh "$QA_DIR/completion-test.sh"
dash "$QA_DIR/setup-env-test.sh"
# Run fish tests
@@ -51,3 +56,9 @@ fish "$QA_DIR/setup-env-test.fish"
# run csh and tcsh tests
csh "$QA_DIR/setup-env-test.csh"
tcsh "$QA_DIR/setup-env-test.csh"
+
+# Delete the symlink going from ./lib/spack/docs/_spack_root back to
+# the initial directory, since it causes ELOOP errors with codecov/actions@2
+if [[ "$COVERAGE" == "true" ]]; then
+ rm lib/spack/docs/_spack_root
+fi
diff --git a/share/spack/qa/run-flake8-tests b/share/spack/qa/run-style-tests
index d6077fceb8..72c47ff055 100755
--- a/share/spack/qa/run-flake8-tests
+++ b/share/spack/qa/run-style-tests
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,10 +15,14 @@
# run-flake8-tests
#
. "$(dirname $0)/setup.sh"
-check_dependencies flake8
+
+BASE=""
+if [ -n "$GITHUB_BASE_REF" ]; then
+ BASE="--base ${GITHUB_BASE_REF}"
+fi
# verify that the code style is correct
-spack flake8
+spack style --root-relative $BASE
# verify that the license headers are present
spack license verify
diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests
index ec8aaf76b9..935b1905d1 100755
--- a/share/spack/qa/run-unit-tests
+++ b/share/spack/qa/run-unit-tests
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -37,9 +37,21 @@ bin/spack -h
bin/spack help -a
# Profile and print top 20 lines for a simple call to spack spec
-spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170
+spack -p --lines 20 spec mpileaks%gcc ^dyninst@10.0.0 ^elfutils@0.170
#-----------------------------------------------------------
# Run unit tests with code coverage
#-----------------------------------------------------------
+if [[ "$ONLY_PACKAGES" == "true" ]]; then
+ echo "ONLY PACKAGE RECIPES CHANGED [skipping slow unit tests]"
+ export PYTEST_ADDOPTS='-k "package_sanity" -m "not maybeslow"'
+fi
+
$coverage_run $(which spack) unit-test -x --verbose
+
+# Delete the symlink going from ./lib/spack/docs/_spack_root back to
+# the initial directory, since it causes ELOOP errors with codecov/actions@2
+if [[ "$COVERAGE" == "true" ]]; then
+ rm lib/spack/docs/_spack_root
+fi
+
diff --git a/share/spack/qa/setup-env-test.csh b/share/spack/qa/setup-env-test.csh
index 02dda30bca..b49f531942 100755
--- a/share/spack/qa/setup-env-test.csh
+++ b/share/spack/qa/setup-env-test.csh
@@ -1,6 +1,6 @@
#!/bin/csh
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/share/spack/qa/setup-env-test.fish b/share/spack/qa/setup-env-test.fish
index 964d876fe9..585b45bb9c 100755
--- a/share/spack/qa/setup-env-test.fish
+++ b/share/spack/qa/setup-env-test.fish
@@ -1,6 +1,6 @@
#!/usr/bin/env fish
#
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,7 +24,7 @@ function allocate_testing_global -d "allocate global variables used for testing"
end
-function delete_testing_global -d "deallocate global varialbes used for testing"
+function delete_testing_global -d "deallocate global variables used for testing"
set -e __spt_red
set -e __spt_cyan
@@ -90,9 +90,12 @@ function spt_succeeds
set -l output (eval $argv 2>&1)
- if test $status -ne 0
+ # Save the command result
+ set cmd_status $status
+
+ if test $cmd_status -ne 0
fail
- echo_red "Command failed with error $status"
+ echo_red "Command failed with error $cmd_status"
if test -n "$output"
echo_msg "Output:"
echo "$output"
@@ -116,7 +119,7 @@ function spt_fails
if test $status -eq 0
fail
- echo_red "Command failed with error $status"
+ echo_red "Command succeeded, but should fail"
if test -n "$output"
echo_msg "Output:"
echo "$output"
@@ -142,9 +145,14 @@ function spt_contains
set -l output (eval $remaining_args 2>&1)
+ # Save the command result
+ set cmd_status $status
+
if not echo "$output" | string match -q -r ".*$target_string.*"
fail
- echo_red "Command exited with error $status"
+ if test $cmd_status -ne 0
+ echo_red "Command exited with error $cmd_status"
+ end
echo_red "'$target_string' was not in output."
if test -n "$output"
echo_msg "Output:"
@@ -249,13 +257,7 @@ echo "Creating a mock environment"
spack env create spack_test_env
# ensure that we uninstall b on exit
-function spt_cleanup
-
- set trapped_error false
- if test $status -ne 0
- set trapped_error true
- end
-
+function spt_cleanup -p %self
echo "Removing test environment before exiting."
spack env deactivate 2>&1 > /dev/null
spack env rm -y spack_test_env
@@ -268,30 +270,9 @@ function spt_cleanup
echo "$__spt_success tests succeeded."
echo "$__spt_errors tests failed."
- if test "$trapped_error" = false
- echo "Exited due to an error."
- end
-
- if test "$__spt_errors" -eq 0
- if test "$trapped_error" = false
- pass
- exit 0
- else
- fail
- exit 1
- end
- else
- fail
- exit 1
- end
-
delete_testing_global
end
-trap spt_cleanup EXIT
-
-
-
# -----------------------------------------------------------------------
# Test all spack commands with special env support
# -----------------------------------------------------------------------
@@ -322,7 +303,6 @@ spt_contains "set -gx LD_LIBRARY_PATH $_b_ld" spack -m load --only package --fis
spt_succeeds spack -m load b
# test a variable MacOS clears and one it doesn't for recursive loads
spt_contains "set -gx LD_LIBRARY_PATH $_a_ld:$_b_ld" spack -m load --fish a
-spt_contains "set -gx LIBRARY_PATH $_a_ld:$_b_ld" spack -m load --fish a
spt_succeeds spack -m load --only dependencies a
spt_succeeds spack -m load --only package a
spt_fails spack -m load d
@@ -393,3 +373,5 @@ is_not_set SPACK_ENV
# despacktivate
# is_not_set SPACK_ENV
# is_not_set SPACK_OLD_PS1
+
+test "$__spt_errors" -eq 0
diff --git a/share/spack/qa/setup-env-test.sh b/share/spack/qa/setup-env-test.sh
index da4fb9657d..bf3bfe63f3 100755
--- a/share/spack/qa/setup-env-test.sh
+++ b/share/spack/qa/setup-env-test.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -104,12 +104,11 @@ contains "usage: spack module " spack -m module --help
contains "usage: spack module " spack -m module
title 'Testing `spack load`'
-contains "export LD_LIBRARY_PATH=$(spack -m location -i b)/lib" spack -m load --only package --sh b
+contains "export PATH=$(spack -m location -i b)/bin" spack -m load --only package --sh b
succeeds spack -m load b
fails spack -m load -l
# test a variable MacOS clears and one it doesn't for recursive loads
-contains "export LD_LIBRARY_PATH=$(spack -m location -i a)/lib:$(spack -m location -i b)/lib" spack -m load --sh a
-contains "export LIBRARY_PATH=$(spack -m location -i a)/lib:$(spack -m location -i b)/lib" spack -m load --sh a
+contains "export PATH=$(spack -m location -i a)/bin:$(spack -m location -i b)/bin" spack -m load --sh a
succeeds spack -m load --only dependencies a
succeeds spack -m load --only package a
fails spack -m load d
diff --git a/share/spack/qa/setup.sh b/share/spack/qa/setup.sh
index e614bae909..9559f9b793 100755
--- a/share/spack/qa/setup.sh
+++ b/share/spack/qa/setup.sh
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -31,10 +31,10 @@ if [[ "$COVERAGE" == "true" ]]; then
bashcov=$(realpath ${QA_DIR}/bashcov)
# instrument scripts requiring shell coverage
- sed -i~ "s@#\!/bin/bash@#\!${bashcov}@" "$SPACK_ROOT/lib/spack/env/cc"
+ sed -i "s@#\!/bin/bash@#\!${bashcov}@" "$SPACK_ROOT/lib/spack/env/cc"
if [ "$(uname -o)" != "Darwin" ]; then
# On darwin, #! interpreters must be binaries, so no sbang for bashcov
- sed -i~ "s@#\!/bin/sh@#\!${bashcov}@" "$SPACK_ROOT/bin/sbang"
+ sed -i "s@#\!/bin/sh@#\!${bashcov}@" "$SPACK_ROOT/bin/sbang"
fi
fi
@@ -66,6 +66,10 @@ check_dependencies() {
spack_package=py-flake8
pip_package=flake8
;;
+ mypy)
+ spack_package=py-mypy
+ pip_package=mypy
+ ;;
dot)
spack_package=graphviz
;;
diff --git a/share/spack/qa/test-framework.sh b/share/spack/qa/test-framework.sh
index 14b58bbecf..4df37cd906 100755
--- a/share/spack/qa/test-framework.sh
+++ b/share/spack/qa/test-framework.sh
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/share/spack/setup-env.csh b/share/spack/setup-env.csh
index b70036456d..4ac0503947 100755
--- a/share/spack/setup-env.csh
+++ b/share/spack/setup-env.csh
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -58,6 +58,18 @@ alias spack 'set _sp_args = (\!*); source $_spack_share_dir/csh/spack.c
alias spacktivate 'spack env activate'
alias _spack_pathadd 'set _pa_args = (\!*) && source $_spack_share_dir/csh/pathadd.csh'
+# Identify and lock the python interpreter
+if (! $?SPACK_PYTHON) then
+ setenv SPACK_PYTHON ""
+endif
+foreach cmd ("$SPACK_PYTHON" python3 python python2)
+ command -v "$cmd" >& /dev/null
+ if ($status == 0) then
+ setenv SPACK_PYTHON `command -v "$cmd"`
+ break
+ endif
+end
+
# Set variables needed by this script
_spack_pathadd PATH "$SPACK_ROOT/bin"
eval `spack --print-shell-vars csh`
diff --git a/share/spack/setup-env.fish b/share/spack/setup-env.fish
index b74eae34d6..5205cff206 100755
--- a/share/spack/setup-env.fish
+++ b/share/spack/setup-env.fish
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -253,7 +253,7 @@ function match_flag -d "checks all combinations of flags ocurring inside of a st
set -l _a (string sub -s 2 (string trim "x$argv[1]"))
set -l _b (string sub -s 2 (string trim "x$argv[2]"))
- if test -z "$_a" || test -z "$_b"
+ if test -z "$_a"; or test -z "$_b"
return 0
end
@@ -668,6 +668,19 @@ set -l sp_source_file (status -f) # name of current file
#
+# Identify and lock the python interpreter
+#
+for cmd in "$SPACK_PYTHON" python3 python python2
+ set -l _sp_python (command -v "$cmd")
+ if test $status -eq 0
+ set -x SPACK_PYTHON $_sp_python
+ break
+ end
+end
+
+
+
+#
# Find root directory and add bin to path.
#
set -l sp_share_dir (realpath (dirname $sp_source_file))
@@ -686,71 +699,73 @@ set -xg _sp_shell "fish"
-#
-# Check whether we need environment-variables (module) <= `use` is not available
-#
-set -l need_module "no"
-if not functions -q use; and not functions -q module
- set need_module "yes"
-end
+if test -z "$SPACK_SKIP_MODULES"
+ #
+ # Check whether we need environment-variables (module) <= `use` is not available
+ #
+ set -l need_module "no"
+ if not functions -q use; and not functions -q module
+ set need_module "yes"
+ end
-#
-# Make environment-modules available to shell
-#
-function sp_apply_shell_vars -d "applies expressions of the type `a='b'` as `set a b`"
+ #
+ # Make environment-modules available to shell
+ #
+ function sp_apply_shell_vars -d "applies expressions of the type `a='b'` as `set a b`"
- # convert `a='b' to array variable `a b`
- set -l expr_token (string trim -c "'" (string split "=" $argv))
+ # convert `a='b' to array variable `a b`
+ set -l expr_token (string trim -c "'" (string split "=" $argv))
- # run set command to takes, converting lists of type `a:b:c` to array
- # variables `a b c` by splitting around the `:` character
- set -xg $expr_token[1] (string split ":" $expr_token[2])
-end
+ # run set command to takes, converting lists of type `a:b:c` to array
+ # variables `a b c` by splitting around the `:` character
+ set -xg $expr_token[1] (string split ":" $expr_token[2])
+ end
-if test "$need_module" = "yes"
- set -l sp_shell_vars (command spack --print-shell-vars sh,modules)
+ if test "$need_module" = "yes"
+ set -l sp_shell_vars (command spack --print-shell-vars sh,modules)
- for sp_var_expr in $sp_shell_vars
- sp_apply_shell_vars $sp_var_expr
- end
+ for sp_var_expr in $sp_shell_vars
+ sp_apply_shell_vars $sp_var_expr
+ end
- # _sp_module_prefix is set by spack --print-sh-vars
- if test "$_sp_module_prefix" != "not_installed"
- set -xg MODULE_PREFIX $_sp_module_prefix
- spack_pathadd PATH "$MODULE_PREFIX/bin"
- end
+ # _sp_module_prefix is set by spack --print-sh-vars
+ if test "$_sp_module_prefix" != "not_installed"
+ set -xg MODULE_PREFIX $_sp_module_prefix
+ spack_pathadd PATH "$MODULE_PREFIX/bin"
+ end
-else
+ else
- set -l sp_shell_vars (command spack --print-shell-vars sh)
+ set -l sp_shell_vars (command spack --print-shell-vars sh)
- for sp_var_expr in $sp_shell_vars
- sp_apply_shell_vars $sp_var_expr
- end
+ for sp_var_expr in $sp_shell_vars
+ sp_apply_shell_vars $sp_var_expr
+ end
-end
+ end
-if test "$need_module" = "yes"
- function module -d "wrapper for the `module` command to point at Spack's modules instance" --inherit-variable MODULE_PREFIX
- eval $MODULE_PREFIX/bin/modulecmd $SPACK_SHELL $argv
+ if test "$need_module" = "yes"
+ function module -d "wrapper for the `module` command to point at Spack's modules instance" --inherit-variable MODULE_PREFIX
+ eval $MODULE_PREFIX/bin/modulecmd $SPACK_SHELL $argv
+ end
end
-end
-#
-# set module system roots
-#
+ #
+ # set module system roots
+ #
-# Search of MODULESPATHS by trying all possible compatible system types as
-# module roots.
-if test -z "$MODULEPATH"
- set -gx MODULEPATH
+ # Search of MODULESPATHS by trying all possible compatible system types as
+ # module roots.
+ if test -z "$MODULEPATH"
+ set -gx MODULEPATH
+ end
+ sp_multi_pathadd MODULEPATH $_sp_tcl_roots
end
-sp_multi_pathadd MODULEPATH $_sp_tcl_roots
diff --git a/share/spack/setup-env.sh b/share/spack/setup-env.sh
index 5761d16362..8936f6ca0d 100755
--- a/share/spack/setup-env.sh
+++ b/share/spack/setup-env.sh
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -303,14 +303,9 @@ _spack_pathadd PATH "${_sp_prefix%/}/bin"
# Check whether a function of the given name is defined
#
_spack_fn_exists() {
- LANG= type $1 2>&1 | grep -q 'function'
+ LANG= type $1 2>&1 | grep -q 'function'
}
-need_module="no"
-if ! _spack_fn_exists use && ! _spack_fn_exists module; then
- need_module="yes"
-fi;
-
# Define the spack shell function with some informative no-ops, so when users
# run `which spack`, they see the path to spack and where the function is from.
eval "spack() {
@@ -326,52 +321,67 @@ if [ "$_sp_shell" = bash ]; then
export -f _spack_shell_wrapper
fi
-#
-# make available environment-modules
-#
-if [ "${need_module}" = "yes" ]; then
- eval `spack --print-shell-vars sh,modules`
-
- # _sp_module_prefix is set by spack --print-sh-vars
- if [ "${_sp_module_prefix}" != "not_installed" ]; then
- # activate it!
- # environment-modules@4: has a bin directory inside its prefix
- _sp_module_bin="${_sp_module_prefix}/bin"
- if [ ! -d "${_sp_module_bin}" ]; then
- # environment-modules@3 has a nested bin directory
- _sp_module_bin="${_sp_module_prefix}/Modules/bin"
- fi
+# Identify and lock the python interpreter
+for cmd in "${SPACK_PYTHON:-}" python3 python python2; do
+ if command -v > /dev/null "$cmd"; then
+ export SPACK_PYTHON="$(command -v "$cmd")"
+ break
+ fi
+done
- # _sp_module_bin and _sp_shell are evaluated here; the quoted
- # eval statement and $* are deferred.
- _sp_cmd="module() { eval \`${_sp_module_bin}/modulecmd ${_sp_shell} \$*\`; }"
- eval "$_sp_cmd"
- _spack_pathadd PATH "${_sp_module_bin}"
+if [ -z "${SPACK_SKIP_MODULES+x}" ]; then
+ need_module="no"
+ if ! _spack_fn_exists use && ! _spack_fn_exists module; then
+ need_module="yes"
fi;
-else
- eval `spack --print-shell-vars sh`
-fi;
+ #
+ # make available environment-modules
+ #
+ if [ "${need_module}" = "yes" ]; then
+ eval `spack --print-shell-vars sh,modules`
+
+ # _sp_module_prefix is set by spack --print-sh-vars
+ if [ "${_sp_module_prefix}" != "not_installed" ]; then
+ # activate it!
+ # environment-modules@4: has a bin directory inside its prefix
+ _sp_module_bin="${_sp_module_prefix}/bin"
+ if [ ! -d "${_sp_module_bin}" ]; then
+ # environment-modules@3 has a nested bin directory
+ _sp_module_bin="${_sp_module_prefix}/Modules/bin"
+ fi
-#
-# set module system roots
-#
-_sp_multi_pathadd() {
- local IFS=':'
- if [ "$_sp_shell" = zsh ]; then
- emulate -L sh
- fi
- for pth in $2; do
- for systype in ${_sp_compatible_sys_types}; do
- _spack_pathadd "$1" "${pth}/${systype}"
+ # _sp_module_bin and _sp_shell are evaluated here; the quoted
+ # eval statement and $* are deferred.
+ _sp_cmd="module() { eval \`${_sp_module_bin}/modulecmd ${_sp_shell} \$*\`; }"
+ eval "$_sp_cmd"
+ _spack_pathadd PATH "${_sp_module_bin}"
+ fi;
+ else
+ eval `spack --print-shell-vars sh`
+ fi;
+
+
+ #
+ # set module system roots
+ #
+ _sp_multi_pathadd() {
+ local IFS=':'
+ if [ "$_sp_shell" = zsh ]; then
+ emulate -L sh
+ fi
+ for pth in $2; do
+ for systype in ${_sp_compatible_sys_types}; do
+ _spack_pathadd "$1" "${pth}/${systype}"
+ done
done
- done
-}
-_sp_multi_pathadd MODULEPATH "$_sp_tcl_roots"
+ }
+ _sp_multi_pathadd MODULEPATH "$_sp_tcl_roots"
+fi
# Add programmable tab completion for Bash
#
-if [ "$_sp_shell" = bash ]; then
+if test "$_sp_shell" = bash || test -n "${ZSH_VERSION:-}"; then
source $_sp_share_dir/spack-completion.bash
fi
diff --git a/share/spack/setup-tutorial-env.sh b/share/spack/setup-tutorial-env.sh
index 1f46f15c2d..16c34ecd43 100755
--- a/share/spack/setup-tutorial-env.sh
+++ b/share/spack/setup-tutorial-env.sh
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -95,16 +95,16 @@ INSTANCEID=$(curl http://169.254.169.254/latest/meta-data//instance-id)
# Get the ID of the Amazon EBS volume associated with the instance.
VOLUMEID=$(aws ec2 describe-instances \
- --instance-id $INSTANCEID \
- --query "Reservations[0].Instances[0].BlockDeviceMappings[0].Ebs.VolumeId" \
- --output text)
+ --instance-id $INSTANCEID \
+ --query "Reservations[0].Instances[0].BlockDeviceMappings[0].Ebs.VolumeId" \
+ --output text)
# Resize the EBS volume.
aws ec2 modify-volume --volume-id $VOLUMEID --size $SIZE
# Wait for the resize to finish.
while [ \
- "$(aws ec2 describe-volumes-modifications \
+ "$(aws ec2 describe-volumes-modifications \
--volume-id $VOLUMEID \
--filters Name=modification-state,Values="optimizing","completed" \
--query "length(VolumesModifications)"\
diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash
index 5cf32c0cab..131deade0b 100755
--- a/share/spack/spack-completion.bash
+++ b/share/spack/spack-completion.bash
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -37,6 +37,17 @@
#
# See `man bash` for more details.
+if test -n "${ZSH_VERSION:-}" ; then
+ if [[ "$(emulate)" = zsh ]] ; then
+ # ensure base completion support is enabled, ignore insecure directories
+ autoload -U +X compinit && compinit -i
+ # ensure bash compatible completion support is enabled
+ autoload -U +X bashcompinit && bashcompinit
+ emulate sh -c "source '$0:A'"
+ return # stop interpreting file
+ fi
+fi
+
# Bash programmable completion for Spack
_bash_completion_spack() {
# In all following examples, let the cursor be denoted by brackets, i.e. []
@@ -44,7 +55,7 @@ _bash_completion_spack() {
# For our purposes, flags should not affect tab completion. For instance,
# `spack install []` and `spack -d install --jobs 8 []` should both give the same
# possible completions. Therefore, we need to ignore any flags in COMP_WORDS.
- local COMP_WORDS_NO_FLAGS=()
+ local -a COMP_WORDS_NO_FLAGS
local index=0
while [[ "$index" -lt "$COMP_CWORD" ]]
do
@@ -117,7 +128,9 @@ _bash_completion_spack() {
#_test_vars >> temp
# Make sure function exists before calling it
- if [[ "$(type -t $subfunction)" == "function" ]]
+ local rgx #this dance is necessary to cover bash and zsh regex
+ rgx="$subfunction.*function.* "
+ if [[ "$(type $subfunction 2>&1)" =~ $rgx ]]
then
$subfunction
COMPREPLY=($(compgen -W "$SPACK_COMPREPLY" -- "$cur"))
@@ -318,9 +331,9 @@ _spacktivate() {
_spack() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -H --all-help --color -C --config-scope -d --debug --timestamp --pdb -e --env -D --env-dir -E --no-env --use-env-repo -k --insecure -l --enable-locks -L --disable-locks -m --mock -p --profile --sorted-profile --lines -v --verbose --stacktrace -V --version --print-shell-vars"
+ SPACK_COMPREPLY="-h --help -H --all-help --color -c --config -C --config-scope -d --debug --timestamp --pdb -e --env -D --env-dir -E --no-env --use-env-repo -k --insecure -l --enable-locks -L --disable-locks -m --mock -p --profile --sorted-profile --lines -v --verbose --stacktrace -V --version --print-shell-vars"
else
- SPACK_COMPREPLY="activate add arch blame build-env buildcache cd checksum ci clean clone commands compiler compilers concretize config containerize create deactivate debug dependencies dependents deprecate dev-build develop docs edit env extensions external fetch find flake8 gc gpg graph help info install license list load location log-parse maintainers mark mirror module patch pkg providers pydoc python reindex remove rm repo resource restage setup solve spec stage test test-env tutorial undevelop uninstall unit-test unload url verify versions view"
+ SPACK_COMPREPLY="activate add analyze arch audit blame bootstrap build-env buildcache cd checksum ci clean clone commands compiler compilers concretize config containerize create deactivate debug dependencies dependents deprecate dev-build develop diff docs edit env extensions external fetch find flake8 gc gpg graph help info install license list load location log-parse maintainers mark mirror module monitor patch pkg providers pydoc python reindex remove rm repo resource restage solve spec stage style test test-env tutorial undevelop uninstall unit-test unload url verify versions view"
fi
}
@@ -342,19 +355,128 @@ _spack_add() {
fi
}
+_spack_analyze() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help --monitor --monitor-save-local --monitor-no-auth --monitor-tags --monitor-keep-going --monitor-host --monitor-prefix"
+ else
+ SPACK_COMPREPLY="list-analyzers run"
+ fi
+}
+
+_spack_analyze_list_analyzers() {
+ SPACK_COMPREPLY="-h --help"
+}
+
+_spack_analyze_run() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help --overwrite -p --path -a --analyzers"
+ else
+ _all_packages
+ fi
+}
+
_spack_arch() {
SPACK_COMPREPLY="-h --help --known-targets -p --platform -o --operating-system -t --target -f --frontend -b --backend"
}
+_spack_audit() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help"
+ else
+ SPACK_COMPREPLY="configs packages-https packages list"
+ fi
+}
+
+_spack_audit_configs() {
+ SPACK_COMPREPLY="-h --help"
+}
+
+_spack_audit_packages_https() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help --all"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
+_spack_audit_packages() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
+_spack_audit_list() {
+ SPACK_COMPREPLY="-h --help"
+}
+
_spack_blame() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -t --time -p --percent -g --git"
+ SPACK_COMPREPLY="-h --help -t --time -p --percent -g --git --json"
else
_all_packages
fi
}
+_spack_bootstrap() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help"
+ else
+ SPACK_COMPREPLY="enable disable reset root list trust untrust"
+ fi
+}
+
+_spack_bootstrap_enable() {
+ SPACK_COMPREPLY="-h --help --scope"
+}
+
+_spack_bootstrap_disable() {
+ SPACK_COMPREPLY="-h --help --scope"
+}
+
+_spack_bootstrap_reset() {
+ SPACK_COMPREPLY="-h --help -y --yes-to-all"
+}
+
+_spack_bootstrap_root() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help --scope"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
+_spack_bootstrap_list() {
+ SPACK_COMPREPLY="-h --help --scope"
+}
+
+_spack_bootstrap_trust() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help --scope"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
+_spack_bootstrap_untrust() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help --scope"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
_spack_build_env() {
if $list_options
then
@@ -369,14 +491,14 @@ _spack_buildcache() {
then
SPACK_COMPREPLY="-h --help"
else
- SPACK_COMPREPLY="create install list keys preview check download get-buildcache-name save-yaml copy update-index"
+ SPACK_COMPREPLY="create install list keys preview check download get-buildcache-name save-specfile copy sync update-index"
fi
}
_spack_buildcache_create() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -r --rel -f --force -u --unsigned -a --allow-root -k --key -d --directory -m --mirror-name --mirror-url --rebuild-index -y --spec-yaml --only"
+ SPACK_COMPREPLY="-h --help -r --rel -f --force -u --unsigned -a --allow-root -k --key -d --directory -m --mirror-name --mirror-url --rebuild-index --spec-file --only"
else
_all_packages
fi
@@ -385,7 +507,7 @@ _spack_buildcache_create() {
_spack_buildcache_install() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -f --force -m --multiple -a --allow-root -u --unsigned -o --otherarch"
+ SPACK_COMPREPLY="-h --help -f --force -m --multiple -a --allow-root -u --unsigned -o --otherarch --sha256"
else
_all_packages
fi
@@ -414,23 +536,27 @@ _spack_buildcache_preview() {
}
_spack_buildcache_check() {
- SPACK_COMPREPLY="-h --help -m --mirror-url -o --output-file --scope -s --spec -y --spec-yaml --rebuild-on-error"
+ SPACK_COMPREPLY="-h --help -m --mirror-url -o --output-file --scope -s --spec --spec-file --rebuild-on-error"
}
_spack_buildcache_download() {
- SPACK_COMPREPLY="-h --help -s --spec -y --spec-yaml -p --path -c --require-cdashid"
+ SPACK_COMPREPLY="-h --help -s --spec --spec-file -p --path -c --require-cdashid"
}
_spack_buildcache_get_buildcache_name() {
- SPACK_COMPREPLY="-h --help -s --spec -y --spec-yaml"
+ SPACK_COMPREPLY="-h --help -s --spec --spec-file"
}
-_spack_buildcache_save_yaml() {
- SPACK_COMPREPLY="-h --help --root-spec --root-spec-yaml -s --specs -y --yaml-dir"
+_spack_buildcache_save_specfile() {
+ SPACK_COMPREPLY="-h --help --root-spec --root-specfile -s --specs --specfile-dir"
}
_spack_buildcache_copy() {
- SPACK_COMPREPLY="-h --help --base-dir --spec-yaml --destination-url"
+ SPACK_COMPREPLY="-h --help --base-dir --spec-file --destination-url"
+}
+
+_spack_buildcache_sync() {
+ SPACK_COMPREPLY="-h --help --src-directory --src-mirror-name --src-mirror-url --dest-directory --dest-mirror-name --dest-mirror-url"
}
_spack_buildcache_update_index() {
@@ -460,18 +586,31 @@ _spack_ci() {
then
SPACK_COMPREPLY="-h --help"
else
- SPACK_COMPREPLY="generate rebuild"
+ SPACK_COMPREPLY="generate rebuild-index rebuild reproduce-build"
fi
}
_spack_ci_generate() {
- SPACK_COMPREPLY="-h --help --output-file --copy-to --optimize --dependencies"
+ SPACK_COMPREPLY="-h --help --output-file --copy-to --optimize --dependencies --prune-dag --no-prune-dag --check-index-only --artifacts-root"
+}
+
+_spack_ci_rebuild_index() {
+ SPACK_COMPREPLY="-h --help"
}
_spack_ci_rebuild() {
SPACK_COMPREPLY="-h --help"
}
+_spack_ci_reproduce_build() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help --working-dir"
+ else
+ SPACK_COMPREPLY=""
+ fi
+}
+
_spack_clean() {
if $list_options
then
@@ -562,7 +701,7 @@ _spack_compilers() {
}
_spack_concretize() {
- SPACK_COMPREPLY="-h --help -f --force"
+ SPACK_COMPREPLY="-h --help -f --force --test"
}
_spack_config() {
@@ -570,7 +709,7 @@ _spack_config() {
then
SPACK_COMPREPLY="-h --help --scope"
else
- SPACK_COMPREPLY="get blame edit list add remove rm update revert"
+ SPACK_COMPREPLY="get blame edit list add prefer-upstream remove rm update revert"
fi
}
@@ -614,6 +753,10 @@ _spack_config_add() {
fi
}
+_spack_config_prefer_upstream() {
+ SPACK_COMPREPLY="-h --help --local"
+}
+
_spack_config_remove() {
if $list_options
then
@@ -651,7 +794,7 @@ _spack_config_revert() {
}
_spack_containerize() {
- SPACK_COMPREPLY="-h --help"
+ SPACK_COMPREPLY="-h --help --monitor --monitor-save-local --monitor-no-auth --monitor-tags --monitor-keep-going --monitor-host --monitor-prefix"
}
_spack_create() {
@@ -719,7 +862,7 @@ _spack_deprecate() {
_spack_dev_build() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -j --jobs -d --source-path -i --ignore-dependencies -n --no-checksum --keep-prefix --skip-patch -q --quiet --drop-in --test -b --before -u --until --clean --dirty"
+ SPACK_COMPREPLY="-h --help -j --jobs -d --source-path -i --ignore-dependencies -n --no-checksum --deprecated --keep-prefix --skip-patch -q --quiet --drop-in --test -b --before -u --until --clean --dirty"
else
_all_packages
fi
@@ -734,6 +877,15 @@ _spack_develop() {
fi
}
+_spack_diff() {
+ if $list_options
+ then
+ SPACK_COMPREPLY="-h --help --json --first -a --attribute"
+ else
+ _all_packages
+ fi
+}
+
_spack_docs() {
SPACK_COMPREPLY="-h --help"
}
@@ -772,7 +924,7 @@ _spack_env_deactivate() {
_spack_env_create() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -d --dir --without-view --with-view"
+ SPACK_COMPREPLY="-h --help -d --dir --keep-relative --without-view --with-view"
else
_environments
fi
@@ -815,7 +967,7 @@ _spack_env_st() {
_spack_env_loads() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -m --module-type --input-only -p --prefix -x --exclude -r --dependencies"
+ SPACK_COMPREPLY="-h --help -n --module-set-name -m --module-type --input-only -p --prefix -x --exclude -r --dependencies"
else
_environments
fi
@@ -869,7 +1021,7 @@ _spack_external() {
_spack_external_find() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --not-buildable --scope"
+ SPACK_COMPREPLY="-h --help --not-buildable --scope -t --tag"
else
_all_packages
fi
@@ -882,7 +1034,7 @@ _spack_external_list() {
_spack_fetch() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -n --no-checksum -m --missing -D --dependencies"
+ SPACK_COMPREPLY="-h --help -n --no-checksum --deprecated -m --missing -D --dependencies"
else
_all_packages
fi
@@ -891,7 +1043,7 @@ _spack_fetch() {
_spack_find() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --format --json -d --deps -p --paths --groups --no-groups -l --long -L --very-long -t --tags -c --show-concretized -f --show-flags --show-full-compiler -x --explicit -X --implicit -u --unknown -m --missing -v --variants --loaded -M --only-missing --deprecated --only-deprecated -N --namespace --start-date --end-date -b --bootstrap"
+ SPACK_COMPREPLY="-h --help --format --json -d --deps -p --paths --groups --no-groups -l --long -L --very-long -t --tag -c --show-concretized -f --show-flags --show-full-compiler -x --explicit -X --implicit -u --unknown -m --missing -v --variants --loaded -M --only-missing --deprecated --only-deprecated -N --namespace --start-date --end-date -b --bootstrap"
else
_installed_packages
fi
@@ -900,7 +1052,7 @@ _spack_find() {
_spack_flake8() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -b --base -k --keep-temp -a --all -o --output -r --root-relative -U --no-untracked"
+ SPACK_COMPREPLY="-h --help -b --base -a --all -r --root-relative -U --no-untracked -f --fix --no-isort --no-flake8 --no-mypy --black --root"
else
SPACK_COMPREPLY=""
fi
@@ -958,7 +1110,7 @@ _spack_gpg_sign() {
_spack_gpg_create() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --comment --expires --export"
+ SPACK_COMPREPLY="-h --help --comment --expires --export --export-secret"
else
SPACK_COMPREPLY=""
fi
@@ -975,7 +1127,7 @@ _spack_gpg_init() {
_spack_gpg_export() {
if $list_options
then
- SPACK_COMPREPLY="-h --help"
+ SPACK_COMPREPLY="-h --help --secret"
else
_keys
fi
@@ -1020,7 +1172,7 @@ _spack_info() {
_spack_install() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --only -u --until -j --jobs --overwrite --fail-fast --keep-prefix --keep-stage --dont-restage --use-cache --no-cache --cache-only --no-check-signature --require-full-hash-match --show-log-on-error --source -n --no-checksum -v --verbose --fake --only-concrete -f --file --clean --dirty --test --run-tests --log-format --log-file --help-cdash --cdash-upload-url --cdash-build --cdash-site --cdash-track --cdash-buildstamp -y --yes-to-all"
+ SPACK_COMPREPLY="-h --help --only -u --until -j --jobs --overwrite --fail-fast --keep-prefix --keep-stage --dont-restage --use-cache --no-cache --cache-only --monitor --monitor-save-local --monitor-no-auth --monitor-tags --monitor-keep-going --monitor-host --monitor-prefix --include-build-deps --no-check-signature --require-full-hash-match --show-log-on-error --source -n --no-checksum --deprecated -v --verbose --fake --only-concrete --no-add -f --file --clean --dirty --test --run-tests --log-format --log-file --help-cdash --cdash-upload-url --cdash-build --cdash-site --cdash-track --cdash-buildstamp -y --yes-to-all"
else
_all_packages
fi
@@ -1029,9 +1181,9 @@ _spack_install() {
_spack_license() {
if $list_options
then
- SPACK_COMPREPLY="-h --help"
+ SPACK_COMPREPLY="-h --help --root"
else
- SPACK_COMPREPLY="list-files verify"
+ SPACK_COMPREPLY="list-files verify update-copyright-year"
fi
}
@@ -1040,13 +1192,17 @@ _spack_license_list_files() {
}
_spack_license_verify() {
- SPACK_COMPREPLY="-h --help --root"
+ SPACK_COMPREPLY="-h --help"
+}
+
+_spack_license_update_copyright_year() {
+ SPACK_COMPREPLY="-h --help"
}
_spack_list() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -d --search-description --format --update -v --virtuals -t --tags"
+ SPACK_COMPREPLY="-h --help -d --search-description --format --update -v --virtuals -t --tag"
else
_all_packages
fi
@@ -1100,9 +1256,9 @@ _spack_mark() {
_spack_mirror() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -n --no-checksum"
+ SPACK_COMPREPLY="-h --help -n --no-checksum --deprecated"
else
- SPACK_COMPREPLY="create add remove rm set-url list"
+ SPACK_COMPREPLY="create destroy add remove rm set-url list"
fi
}
@@ -1115,6 +1271,10 @@ _spack_mirror_create() {
fi
}
+_spack_mirror_destroy() {
+ SPACK_COMPREPLY="-h --help -m --mirror-name --mirror-url"
+}
+
_spack_mirror_add() {
if $list_options
then
@@ -1167,7 +1327,7 @@ _spack_module() {
_spack_module_lmod() {
if $list_options
then
- SPACK_COMPREPLY="-h --help"
+ SPACK_COMPREPLY="-h --help -n --name"
else
SPACK_COMPREPLY="refresh find rm loads setdefault"
fi
@@ -1221,7 +1381,7 @@ _spack_module_lmod_setdefault() {
_spack_module_tcl() {
if $list_options
then
- SPACK_COMPREPLY="-h --help"
+ SPACK_COMPREPLY="-h --help -n --name"
else
SPACK_COMPREPLY="refresh find rm loads"
fi
@@ -1263,10 +1423,14 @@ _spack_module_tcl_loads() {
fi
}
+_spack_monitor() {
+ SPACK_COMPREPLY="-h --help --monitor --monitor-save-local --monitor-no-auth --monitor-tags --monitor-keep-going --monitor-host --monitor-prefix"
+}
+
_spack_patch() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -n --no-checksum"
+ SPACK_COMPREPLY="-h --help -n --no-checksum --deprecated"
else
_all_packages
fi
@@ -1356,7 +1520,7 @@ _spack_pydoc() {
_spack_python() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -V --version -c -m"
+ SPACK_COMPREPLY="-h --help -V --version -c -i -m --path"
else
SPACK_COMPREPLY=""
fi
@@ -1464,39 +1628,39 @@ _spack_restage() {
fi
}
-_spack_setup() {
+_spack_solve() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -i --ignore-dependencies -n --no-checksum -v --verbose --clean --dirty"
+ SPACK_COMPREPLY="-h --help --show --models -l --long -L --very-long -I --install-status -y --yaml -j --json -c --cover -N --namespaces -t --types --timers --stats"
else
_all_packages
fi
}
-_spack_solve() {
+_spack_spec() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --show --models -l --long -L --very-long -I --install-status -y --yaml -j --json -c --cover -N --namespaces -t --types --timers --stats"
+ SPACK_COMPREPLY="-h --help -l --long -L --very-long -I --install-status -y --yaml -j --json -c --cover -N --namespaces --hash-type -t --types"
else
_all_packages
fi
}
-_spack_spec() {
+_spack_stage() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -l --long -L --very-long -I --install-status -y --yaml -j --json -c --cover -N --namespaces -t --types"
+ SPACK_COMPREPLY="-h --help -n --no-checksum --deprecated -p --path"
else
_all_packages
fi
}
-_spack_stage() {
+_spack_style() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -n --no-checksum -p --path"
+ SPACK_COMPREPLY="-h --help -b --base -a --all -r --root-relative -U --no-untracked -f --fix --no-isort --no-flake8 --no-mypy --black --root"
else
- _all_packages
+ SPACK_COMPREPLY=""
fi
}
@@ -1519,7 +1683,7 @@ _spack_test_run() {
}
_spack_test_list() {
- SPACK_COMPREPLY="-h --help"
+ SPACK_COMPREPLY="-h --help -a --all"
}
_spack_test_find() {
@@ -1634,7 +1798,7 @@ _spack_url_summary() {
}
_spack_url_stats() {
- SPACK_COMPREPLY="-h --help"
+ SPACK_COMPREPLY="-h --help --show-issues"
}
_spack_verify() {
@@ -1649,7 +1813,7 @@ _spack_verify() {
_spack_versions() {
if $list_options
then
- SPACK_COMPREPLY="-h --help -s --safe-only -c --concurrency"
+ SPACK_COMPREPLY="-h --help -s --safe --safe-only -r --remote -n --new -c --concurrency"
else
_all_packages
fi
diff --git a/share/spack/templates/container/Dockerfile b/share/spack/templates/container/Dockerfile
index 3623a7ba0b..c23ad64188 100644
--- a/share/spack/templates/container/Dockerfile
+++ b/share/spack/templates/container/Dockerfile
@@ -14,7 +14,10 @@ RUN mkdir {{ paths.environment }} \
{{ manifest }} > {{ paths.environment }}/spack.yaml
# Install the software, remove unnecessary deps
-RUN cd {{ paths.environment }} && spack env activate . && spack install --fail-fast && spack gc -y
+RUN {% if monitor.enabled %}--mount=type=secret,id=su --mount=type=secret,id=st {% endif %}cd {{ paths.environment }} && \
+ spack env activate . {% if monitor.enabled %}{% if not monitor.disable_auth %}&& export SPACKMON_USER=$(cat /run/secrets/su) && export SPACKMON_TOKEN=$(cat /run/secrets/st) {% endif %}{% endif %}&& \
+ spack install {% if monitor.enabled %}--monitor {% if monitor.prefix %}--monitor-prefix {{ monitor.prefix }} {% endif %}{% if monitor.tags %}--monitor-tags {{ monitor.tags }} {% endif %}{% if monitor.keep_going %}--monitor-keep-going {% endif %}{% if monitor.host %}--monitor-host {{ monitor.host }} {% endif %}{% if monitor.disable_auth %}--monitor-disable-auth {% endif %}{% endif %}--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 33d775b024..de0392b718 100644
--- a/share/spack/templates/container/singularity.def
+++ b/share/spack/templates/container/singularity.def
@@ -21,7 +21,7 @@ EOF
# Install all the required software
. /opt/spack/share/spack/setup-env.sh
spack env activate .
- spack install --fail-fast
+ spack install {% if monitor.enabled %}--monitor {% if monitor.prefix %}--monitor-prefix {{ monitor.prefix }} {% endif %}{% if monitor.tags %}--monitor-tags {{ monitor.tags }} {% endif %}{% if monitor.keep_going %}--monitor-keep-going {% endif %}{% if monitor.host %}--monitor-host {{ monitor.host }} {% endif %}{% if monitor.disable_auth %}--monitor-disable-auth {% endif %}{% endif %}--fail-fast
spack gc -y
spack env deactivate
spack env activate --sh -d . >> {{ paths.environment }}/environment_modifications.sh
diff --git a/share/spack/templates/misc/coconcretization.pyt b/share/spack/templates/misc/coconcretization.pyt
index 56f671cb73..fc0ec94cea 100644
--- a/share/spack/templates/misc/coconcretization.pyt
+++ b/share/spack/templates/misc/coconcretization.pyt
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/a/package.py b/var/spack/repos/builtin.mock/packages/a/package.py
index a603940b8b..71602e90e2 100644
--- a/var/spack/repos/builtin.mock/packages/a/package.py
+++ b/var/spack/repos/builtin.mock/packages/a/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class A(AutotoolsPackage):
url = "http://www.example.com/a-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
- version('2.0', '2.0_a_hash')
+ version('2.0', 'abcdef0123456789abcdef0123456789')
variant(
'foo', description='',
@@ -28,6 +28,8 @@ class A(AutotoolsPackage):
multi=False
)
+ variant('lorem_ipsum', description='', default=False)
+
variant('bvv', default=True, description='The good old BV variant')
depends_on('b', when='foobar=bar')
diff --git a/var/spack/repos/builtin.mock/packages/archive-files/package.py b/var/spack/repos/builtin.mock/packages/archive-files/package.py
index a2c008efb4..3d2b6f0a5a 100644
--- a/var/spack/repos/builtin.mock/packages/archive-files/package.py
+++ b/var/spack/repos/builtin.mock/packages/archive-files/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class ArchiveFiles(AutotoolsPackage):
url = "http://www.example.com/a-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
- version('2.0', '2.0_a_hash')
+ version('2.0', 'abcdef0123456789abcdef0123456789')
@property
def archive_files(self):
diff --git a/var/spack/repos/builtin.mock/packages/b/package.py b/var/spack/repos/builtin.mock/packages/b/package.py
index 8cf5674219..24190d4b7e 100644
--- a/var/spack/repos/builtin.mock/packages/b/package.py
+++ b/var/spack/repos/builtin.mock/packages/b/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,5 +13,6 @@ class B(Package):
url = "http://www.example.com/b-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
+ version('0.9', 'abcd456789abcdef0123456789abcdef')
depends_on('test-dependency', type='test')
diff --git a/var/spack/repos/builtin.mock/packages/boost/package.py b/var/spack/repos/builtin.mock/packages/boost/package.py
index 6d2cea3da9..b13380831f 100644
--- a/var/spack/repos/builtin.mock/packages/boost/package.py
+++ b/var/spack/repos/builtin.mock/packages/boost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-a/package.py b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-a/package.py
new file mode 100644
index 0000000000..11efe3efc0
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-a/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 BothLinkAndBuildDepA(Package):
+ """
+ Structure where c occurs as a build dep down the line and as a direct
+ link dep. Useful for testing situations where you copy the parent spec
+ just with link deps, and you want to make sure b is not part of that.
+ a <--build-- b <-link-- c
+ a <--link--- c
+ """
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('both-link-and-build-dep-b', type='build')
+ depends_on('both-link-and-build-dep-c', type='link')
diff --git a/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-b/package.py b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-b/package.py
new file mode 100644
index 0000000000..855ca1fc06
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-b/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 BothLinkAndBuildDepB(Package):
+ """
+ Structure where c occurs as a build dep down the line and as a direct
+ link dep. Useful for testing situations where you copy the parent spec
+ just with link deps, and you want to make sure b is not part of that.
+ a <--build-- b <-link-- c
+ a <--link--- c
+ """
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('both-link-and-build-dep-c', type='link')
diff --git a/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-c/package.py b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-c/package.py
new file mode 100644
index 0000000000..a1507e8f34
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/both-link-and-build-dep-c/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 BothLinkAndBuildDepC(Package):
+ """
+ Structure where c occurs as a build dep down the line and as a direct
+ link dep. Useful for testing situations where you copy the parent spec
+ just with link deps, and you want to make sure b is not part of that.
+ a <--build-- b <-link-- c
+ a <--link--- c
+ """
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
diff --git a/var/spack/repos/builtin.mock/packages/bowtie/package.py b/var/spack/repos/builtin.mock/packages/bowtie/package.py
index 3f8363c2a8..b817ee4914 100644
--- a/var/spack/repos/builtin.mock/packages/bowtie/package.py
+++ b/var/spack/repos/builtin.mock/packages/bowtie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/brillig/package.py b/var/spack/repos/builtin.mock/packages/brillig/package.py
new file mode 100644
index 0000000000..fc475c7117
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/brillig/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 Brillig(Package):
+ """ Mock package to test the spack versions command."""
+
+ homepage = "https://www.example.com"
+ url = "https://github.com/vvolkl/brillig/archive/v2.0.0.tar.gz"
+
+ version('2.0.0', sha256='d4bb8f1737d5a7c0321e1675cceccb59dbcb66a94f3a9dd66a37f58bc6df7f15')
+ version('1.0.0', sha256='fcef53f45e82b881af9a6f0530b2732cdaf8c5c60e49b27671594ea658bfe315')
diff --git a/var/spack/repos/builtin.mock/packages/build-error/package.py b/var/spack/repos/builtin.mock/packages/build-error/package.py
index 04e1b147c6..78873d7fb9 100644
--- a/var/spack/repos/builtin.mock/packages/build-error/package.py
+++ b/var/spack/repos/builtin.mock/packages/build-error/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class BuildError(Package):
homepage = "http://www.example.com/trivial_install"
url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
def install(self, spec, prefix):
with open('configure', 'w') as f:
diff --git a/var/spack/repos/builtin.mock/packages/build-warnings/package.py b/var/spack/repos/builtin.mock/packages/build-warnings/package.py
index 02254ef801..28c2dd4ba4 100644
--- a/var/spack/repos/builtin.mock/packages/build-warnings/package.py
+++ b/var/spack/repos/builtin.mock/packages/build-warnings/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class BuildWarnings(Package):
homepage = "http://www.example.com/trivial_install"
url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
def install(self, spec, prefix):
with open('configure', 'w') as f:
diff --git a/var/spack/repos/builtin.mock/packages/c/package.py b/var/spack/repos/builtin.mock/packages/c/package.py
index 835f9d408e..c1904db11e 100644
--- a/var/spack/repos/builtin.mock/packages/c/package.py
+++ b/var/spack/repos/builtin.mock/packages/c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/callpath/package.py b/var/spack/repos/builtin.mock/packages/callpath/package.py
index 42bf277786..cbd9e1afaa 100644
--- a/var/spack/repos/builtin.mock/packages/callpath/package.py
+++ b/var/spack/repos/builtin.mock/packages/callpath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,9 @@ class Callpath(Package):
homepage = "https://github.com/tgamblin/callpath"
url = "http://github.com/tgamblin/callpath-1.0.tar.gz"
- version(0.8, 'foobarbaz')
- version(0.9, 'foobarbaz')
- version(1.0, 'foobarbaz')
+ version(0.8, '0123456789abcdef0123456789abcdef')
+ version(0.9, '0123456789abcdef0123456789abcdef')
+ version(1.0, '0123456789abcdef0123456789abcdef')
depends_on("dyninst")
depends_on("mpi")
diff --git a/var/spack/repos/builtin.mock/packages/canfail/package.py b/var/spack/repos/builtin.mock/packages/canfail/package.py
index 79ded75a55..5234d47be1 100644
--- a/var/spack/repos/builtin.mock/packages/canfail/package.py
+++ b/var/spack/repos/builtin.mock/packages/canfail/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/cmake-client/package.py b/var/spack/repos/builtin.mock/packages/cmake-client/package.py
index 2350259b22..a22779f3fb 100644
--- a/var/spack/repos/builtin.mock/packages/cmake-client/package.py
+++ b/var/spack/repos/builtin.mock/packages/cmake-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/cmake/package.py b/var/spack/repos/builtin.mock/packages/cmake/package.py
index 4815032e66..12c7d78c35 100644
--- a/var/spack/repos/builtin.mock/packages/cmake/package.py
+++ b/var/spack/repos/builtin.mock/packages/cmake/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
def check(condition, msg):
"""Raise an install error if condition is False."""
diff --git a/var/spack/repos/builtin.mock/packages/conditional-constrained-dependencies/package.py b/var/spack/repos/builtin.mock/packages/conditional-constrained-dependencies/package.py
index 68fee3e9c7..b540c93885 100644
--- a/var/spack/repos/builtin.mock/packages/conditional-constrained-dependencies/package.py
+++ b/var/spack/repos/builtin.mock/packages/conditional-constrained-dependencies/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/conditional-provider/package.py b/var/spack/repos/builtin.mock/packages/conditional-provider/package.py
index e95f2ad54c..98c69edbfa 100644
--- a/var/spack/repos/builtin.mock/packages/conditional-provider/package.py
+++ b/var/spack/repos/builtin.mock/packages/conditional-provider/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/conditional-virtual-dependency/package.py b/var/spack/repos/builtin.mock/packages/conditional-virtual-dependency/package.py
index 8cfbfa0c1a..2970cb48f3 100644
--- a/var/spack/repos/builtin.mock/packages/conditional-virtual-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/conditional-virtual-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/conditionally-patch-dependency/package.py b/var/spack/repos/builtin.mock/packages/conditionally-patch-dependency/package.py
index 7321d5bbd4..bda6afd463 100644
--- a/var/spack/repos/builtin.mock/packages/conditionally-patch-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/conditionally-patch-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/configure-warning/package.py b/var/spack/repos/builtin.mock/packages/configure-warning/package.py
new file mode 100644
index 0000000000..4163366d17
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/configure-warning/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 ConfigureWarning(AutotoolsPackage):
+ """This package prints output that looks like an error during configure, but
+ it actually installs successfully."""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/configure-warning-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ parallel = False
+
+ def autoreconf(self, spec, prefix):
+ pass
+
+ def configure(self, spec, prefix):
+ print('foo: No such file or directory')
+ return 0
+
+ def build(self, spec, prefix):
+ pass
+
+ def install(self, spec, prefix):
+ # sanity_check_prefix requires something in the install directory
+ # Test requires overriding the one provided by `AutotoolsPackage`
+ mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/conflict-parent/package.py b/var/spack/repos/builtin.mock/packages/conflict-parent/package.py
index 8e8e148b88..af296e3f53 100644
--- a/var/spack/repos/builtin.mock/packages/conflict-parent/package.py
+++ b/var/spack/repos/builtin.mock/packages/conflict-parent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,9 @@ class ConflictParent(Package):
homepage = 'https://github.com/tgamblin/callpath'
url = 'http://github.com/tgamblin/callpath-1.0.tar.gz'
- version(0.8, 'foobarbaz')
- version(0.9, 'foobarbaz')
- version(1.0, 'foobarbaz')
+ version(0.8, '0123456789abcdef0123456789abcdef')
+ version(0.9, '0123456789abcdef0123456789abcdef')
+ version(1.0, '0123456789abcdef0123456789abcdef')
depends_on('conflict')
diff --git a/var/spack/repos/builtin.mock/packages/conflict/package.py b/var/spack/repos/builtin.mock/packages/conflict/package.py
index d7598aa84d..1937e31d80 100644
--- a/var/spack/repos/builtin.mock/packages/conflict/package.py
+++ b/var/spack/repos/builtin.mock/packages/conflict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,9 @@ class Conflict(Package):
homepage = 'https://github.com/tgamblin/callpath'
url = 'http://github.com/tgamblin/callpath-1.0.tar.gz'
- version(0.8, 'foobarbaz')
- version(0.9, 'foobarbaz')
- version(1.0, 'foobarbaz')
+ version(0.8, '0123456789abcdef0123456789abcdef')
+ version(0.9, '0123456789abcdef0123456789abcdef')
+ version(1.0, '0123456789abcdef0123456789abcdef')
variant('foo', default=True, description='')
diff --git a/var/spack/repos/builtin.mock/packages/conflicting-dependent/package.py b/var/spack/repos/builtin.mock/packages/conflicting-dependent/package.py
index 3c0f120085..4b33d8b3fd 100644
--- a/var/spack/repos/builtin.mock/packages/conflicting-dependent/package.py
+++ b/var/spack/repos/builtin.mock/packages/conflicting-dependent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/corge/package.py b/var/spack/repos/builtin.mock/packages/corge/package.py
index 3bd8b34e47..2fd2b23038 100644
--- a/var/spack/repos/builtin.mock/packages/corge/package.py
+++ b/var/spack/repos/builtin.mock/packages/corge/package.py
@@ -1,22 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
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')
+ has_code = False
+ version('3.0.0')
depends_on('quux')
diff --git a/var/spack/repos/builtin.mock/packages/cumulative-vrange-bottom/package.py b/var/spack/repos/builtin.mock/packages/cumulative-vrange-bottom/package.py
index dbbec45497..b8390b4e41 100644
--- a/var/spack/repos/builtin.mock/packages/cumulative-vrange-bottom/package.py
+++ b/var/spack/repos/builtin.mock/packages/cumulative-vrange-bottom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/cumulative-vrange-middle/package.py b/var/spack/repos/builtin.mock/packages/cumulative-vrange-middle/package.py
index 7a6d6d4315..1458259442 100644
--- a/var/spack/repos/builtin.mock/packages/cumulative-vrange-middle/package.py
+++ b/var/spack/repos/builtin.mock/packages/cumulative-vrange-middle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/cumulative-vrange-root/package.py b/var/spack/repos/builtin.mock/packages/cumulative-vrange-root/package.py
index 8215ceb517..7aaa6f39a3 100644
--- a/var/spack/repos/builtin.mock/packages/cumulative-vrange-root/package.py
+++ b/var/spack/repos/builtin.mock/packages/cumulative-vrange-root/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,4 +13,4 @@ class CumulativeVrangeRoot(Package):
version('1.0', '4cb3ff35b2472aae70f542116d616e63')
depends_on('cumulative-vrange-middle')
- depends_on('cumulative-vrange-bottom@:2') \ No newline at end of file
+ depends_on('cumulative-vrange-bottom@:2')
diff --git a/var/spack/repos/builtin.mock/packages/cvs-test/package.py b/var/spack/repos/builtin.mock/packages/cvs-test/package.py
new file mode 100644
index 0000000000..23d714595b
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/cvs-test/package.py
@@ -0,0 +1,13 @@
+# Copyright 2013-2021 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 CvsTest(Package):
+ """Mock package that uses cvs for fetching."""
+ homepage = "http://www.cvs-fetch-example.com"
+
+ version('cvs', cvs='to-be-filled-in-by-test')
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py
index 2246bf0fce..df0f644c17 100644
--- a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py
index 9638872a11..15768302fb 100644
--- a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py
index fb86fa3ad3..4ded7dcf7c 100644
--- a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop-root/package.py b/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop-root/package.py
index 00162ee200..7680738d48 100644
--- a/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop-root/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop-root/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop/package.py b/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop/package.py
index ecb11224b3..a35ad4d3fb 100644
--- a/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-with-variants-if-develop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dep-with-variants/package.py b/var/spack/repos/builtin.mock/packages/dep-with-variants/package.py
index d1b08cd5df..ae8b809079 100644
--- a/var/spack/repos/builtin.mock/packages/dep-with-variants/package.py
+++ b/var/spack/repos/builtin.mock/packages/dep-with-variants/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/depb/package.py b/var/spack/repos/builtin.mock/packages/depb/package.py
index 4af71848d3..d17a3b8a75 100644
--- a/var/spack/repos/builtin.mock/packages/depb/package.py
+++ b/var/spack/repos/builtin.mock/packages/depb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dependency-install/package.py b/var/spack/repos/builtin.mock/packages/dependency-install/package.py
index 37cb3edd61..3a5157ca1c 100644
--- a/var/spack/repos/builtin.mock/packages/dependency-install/package.py
+++ b/var/spack/repos/builtin.mock/packages/dependency-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class DependencyInstall(Package):
homepage = "http://www.example.com"
url = "http://www.example.com/a-1.0.tar.gz"
- version('1.0', 'hash1.0')
- version('2.0', 'hash2.0')
+ version('1.0', '0123456789abcdef0123456789abcdef')
+ version('2.0', 'abcdef0123456789abcdef0123456789')
def install(self, spec, prefix):
touch(join_path(prefix, 'an_installation_file'))
diff --git a/var/spack/repos/builtin.mock/packages/dependent-install/package.py b/var/spack/repos/builtin.mock/packages/dependent-install/package.py
index 84b6331e78..c1859b5314 100644
--- a/var/spack/repos/builtin.mock/packages/dependent-install/package.py
+++ b/var/spack/repos/builtin.mock/packages/dependent-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py b/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py
index 9079fa766a..9bb36f2af2 100644
--- a/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py
+++ b/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class DependentOfDevBuild(Package):
homepage = "example.com"
url = "fake.com"
- version('0.0.0', sha256='0123456789abcdefgh')
+ version('0.0.0', sha256='0123456789abcdef0123456789abcdef')
depends_on('dev-build-test-install')
diff --git a/var/spack/repos/builtin.mock/packages/depends-on-run-env/package.py b/var/spack/repos/builtin.mock/packages/depends-on-run-env/package.py
new file mode 100644
index 0000000000..c85a249e9a
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/depends-on-run-env/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 DependsOnRunEnv(Package):
+ """This package has a runtime dependency on another package which needs
+ to perform shell modifications to run.
+ """
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/a-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('modifies-run-env', type=('run',))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/deprecated-versions/package.py b/var/spack/repos/builtin.mock/packages/deprecated-versions/package.py
new file mode 100644
index 0000000000..6dfdfbc49c
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/deprecated-versions/package.py
@@ -0,0 +1,12 @@
+# Copyright 2013-2021 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 DeprecatedVersions(Package):
+ """Package with the most recent version deprecated"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/c-1.0.tar.gz"
+
+ version('1.1.0', '0123456789abcdef0123456789abcdef', deprecated=True)
+ version('1.0.0', '0123456789abcdef0123456789abcdef')
diff --git a/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py b/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py
index e6a5b8351f..5056670b8f 100644
--- a/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py
+++ b/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class DevBuildTestDependent(Package):
homepage = "example.com"
url = "fake.com"
- version('0.0.0', sha256='0123456789abcdefgh')
+ version('0.0.0', sha256='0123456789abcdef0123456789abcdef')
phases = ['edit', 'install']
diff --git a/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py b/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py
new file mode 100644
index 0000000000..72fe849ba3
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dev-build-test-install-phases/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 time import sleep
+
+
+class DevBuildTestInstallPhases(Package):
+ homepage = "example.com"
+ url = "fake.com"
+
+ version('0.0.0', sha256='0123456789abcdef0123456789abcdef')
+
+ phases = ['one', 'two', 'three', 'install']
+
+ def one(self, spec, prefix):
+ sleep(1)
+ print("One locomoco")
+
+ def two(self, spec, prefix):
+ sleep(2)
+ print("Two locomoco")
+
+ def three(self, spec, prefix):
+ sleep(3)
+ print("Three locomoco")
+
+ def install(self, spec, prefix):
+ print("install")
diff --git a/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py b/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py
index a2c979691f..b1dc16c245 100644
--- a/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py
+++ b/var/spack/repos/builtin.mock/packages/dev-build-test-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class DevBuildTestInstall(Package):
homepage = "example.com"
url = "fake.com"
- version('0.0.0', sha256='0123456789abcdefgh')
+ version('0.0.0', sha256='0123456789abcdef0123456789abcdef')
phases = ['edit', 'install']
diff --git a/var/spack/repos/builtin.mock/packages/develop-test/package.py b/var/spack/repos/builtin.mock/packages/develop-test/package.py
index 5c8820756d..10472baadd 100644
--- a/var/spack/repos/builtin.mock/packages/develop-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/develop-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/develop-test2/package.py b/var/spack/repos/builtin.mock/packages/develop-test2/package.py
index b3a808206d..b555662ccb 100644
--- a/var/spack/repos/builtin.mock/packages/develop-test2/package.py
+++ b/var/spack/repos/builtin.mock/packages/develop-test2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/direct-mpich/package.py b/var/spack/repos/builtin.mock/packages/direct-mpich/package.py
index 940ecde224..31cb572ca5 100644
--- a/var/spack/repos/builtin.mock/packages/direct-mpich/package.py
+++ b/var/spack/repos/builtin.mock/packages/direct-mpich/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class DirectMpich(Package):
homepage = "http://www.example.com"
url = "http://www.example.com/direct_mpich-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
depends_on('mpich')
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py
index 4ad109a272..23f4cda0ad 100644
--- a/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py
index 9e3710c210..7e2d7cfa00 100644
--- a/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py
index 4fd5fa733c..c1265700b9 100644
--- a/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond/package.py
index 90afdd2400..3cafc7f447 100644
--- a/var/spack/repos/builtin.mock/packages/dt-diamond/package.py
+++ b/var/spack/repos/builtin.mock/packages/dt-diamond/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtbuild1/package.py b/var/spack/repos/builtin.mock/packages/dtbuild1/package.py
index f1921ad43f..3f4cffc917 100644
--- a/var/spack/repos/builtin.mock/packages/dtbuild1/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtbuild1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtbuild2/package.py b/var/spack/repos/builtin.mock/packages/dtbuild2/package.py
index cf783ccd9b..5d3ce11d38 100644
--- a/var/spack/repos/builtin.mock/packages/dtbuild2/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtbuild2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtbuild3/package.py b/var/spack/repos/builtin.mock/packages/dtbuild3/package.py
index 1b8f89a2da..c56d26e4b0 100644
--- a/var/spack/repos/builtin.mock/packages/dtbuild3/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtbuild3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtlink1/package.py b/var/spack/repos/builtin.mock/packages/dtlink1/package.py
index 725d3b2061..30a73bdbad 100644
--- a/var/spack/repos/builtin.mock/packages/dtlink1/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtlink1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtlink2/package.py b/var/spack/repos/builtin.mock/packages/dtlink2/package.py
index b4d871a841..a97be80d83 100644
--- a/var/spack/repos/builtin.mock/packages/dtlink2/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtlink2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtlink3/package.py b/var/spack/repos/builtin.mock/packages/dtlink3/package.py
index 732b68f867..9b6cdf5cdb 100644
--- a/var/spack/repos/builtin.mock/packages/dtlink3/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtlink3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtlink4/package.py b/var/spack/repos/builtin.mock/packages/dtlink4/package.py
index d7ac8115ad..ac3ea6ec35 100644
--- a/var/spack/repos/builtin.mock/packages/dtlink4/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtlink4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtlink5/package.py b/var/spack/repos/builtin.mock/packages/dtlink5/package.py
index faf429bfc1..491de82fab 100644
--- a/var/spack/repos/builtin.mock/packages/dtlink5/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtlink5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtrun1/package.py b/var/spack/repos/builtin.mock/packages/dtrun1/package.py
index 617d9f3b8a..d4bd5e1056 100644
--- a/var/spack/repos/builtin.mock/packages/dtrun1/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtrun1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtrun2/package.py b/var/spack/repos/builtin.mock/packages/dtrun2/package.py
index 1ba63a2822..4f383ecef1 100644
--- a/var/spack/repos/builtin.mock/packages/dtrun2/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtrun2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtrun3/package.py b/var/spack/repos/builtin.mock/packages/dtrun3/package.py
index c1caea1dde..da26455360 100644
--- a/var/spack/repos/builtin.mock/packages/dtrun3/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtrun3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dttop/package.py b/var/spack/repos/builtin.mock/packages/dttop/package.py
index 120e70e40c..22458206f1 100644
--- a/var/spack/repos/builtin.mock/packages/dttop/package.py
+++ b/var/spack/repos/builtin.mock/packages/dttop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dtuse/package.py b/var/spack/repos/builtin.mock/packages/dtuse/package.py
index 0a5836d0f8..223abf412d 100644
--- a/var/spack/repos/builtin.mock/packages/dtuse/package.py
+++ b/var/spack/repos/builtin.mock/packages/dtuse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/dyninst/package.py b/var/spack/repos/builtin.mock/packages/dyninst/package.py
index 2cf84f94ab..7758f1d6cb 100644
--- a/var/spack/repos/builtin.mock/packages/dyninst/package.py
+++ b/var/spack/repos/builtin.mock/packages/dyninst/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,11 +10,11 @@ class Dyninst(Package):
homepage = "https://paradyn.org"
url = "http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz"
- version('8.2', 'cxyzab',
+ version('8.2', '0123456789abcdef0123456789abcdef',
url='http://www.paradyn.org/release8.2/DyninstAPI-8.2.tgz')
- version('8.1.2', 'bcxyza',
+ version('8.1.2', 'fedcba9876543210fedcba9876543210',
url='http://www.paradyn.org/release8.1.2/DyninstAPI-8.1.2.tgz')
- version('8.1.1', 'abcxyz',
+ version('8.1.1', '123456789abcdef0123456789abcdef0',
url='http://www.paradyn.org/release8.1/DyninstAPI-8.1.1.tgz')
depends_on("libelf")
diff --git a/var/spack/repos/builtin.mock/packages/e/package.py b/var/spack/repos/builtin.mock/packages/e/package.py
index d52db11abe..15aa8fcf83 100644
--- a/var/spack/repos/builtin.mock/packages/e/package.py
+++ b/var/spack/repos/builtin.mock/packages/e/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/ecp-viz-sdk/package.py b/var/spack/repos/builtin.mock/packages/ecp-viz-sdk/package.py
index 76e2718c6f..88d3e8a2a7 100644
--- a/var/spack/repos/builtin.mock/packages/ecp-viz-sdk/package.py
+++ b/var/spack/repos/builtin.mock/packages/ecp-viz-sdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/extendee/package.py b/var/spack/repos/builtin.mock/packages/extendee/package.py
index 0a17848806..6bb6a7bad1 100644
--- a/var/spack/repos/builtin.mock/packages/extendee/package.py
+++ b/var/spack/repos/builtin.mock/packages/extendee/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Extendee(Package):
extendable = True
- version('1.0', 'hash-extendee-1.0')
+ version('1.0', '0123456789abcdef0123456789abcdef')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/extension1/package.py b/var/spack/repos/builtin.mock/packages/extension1/package.py
index 73847753cc..69443c1be5 100644
--- a/var/spack/repos/builtin.mock/packages/extension1/package.py
+++ b/var/spack/repos/builtin.mock/packages/extension1/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Extension1(Package):
"""A package which extends another package"""
@@ -15,8 +16,8 @@ class Extension1(Package):
extends('extendee')
- version('1.0', 'hash-extension1-1.0')
- version('2.0', 'hash-extension1-2.0')
+ version('1.0', '0123456789abcdef0123456789abcdef')
+ version('2.0', 'abcdef0123456789abcdef0123456789')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/extension2/package.py b/var/spack/repos/builtin.mock/packages/extension2/package.py
index 29f3c9423e..6e2a4badef 100644
--- a/var/spack/repos/builtin.mock/packages/extension2/package.py
+++ b/var/spack/repos/builtin.mock/packages/extension2/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Extension2(Package):
"""A package which extends another package. It also depends on another
@@ -17,7 +18,7 @@ class Extension2(Package):
extends('extendee')
depends_on('extension1', type=('build', 'run'))
- version('1.0', 'hash-extension2-1.0')
+ version('1.0', '0123456789abcdef0123456789abcdef')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/external-buildable-with-variant/package.py b/var/spack/repos/builtin.mock/packages/external-buildable-with-variant/package.py
index 06245d6f69..b62fb062bf 100644
--- a/var/spack/repos/builtin.mock/packages/external-buildable-with-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/external-buildable-with-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/external-common-gdbm/package.py b/var/spack/repos/builtin.mock/packages/external-common-gdbm/package.py
new file mode 100644
index 0000000000..0d7d1b602a
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/external-common-gdbm/package.py
@@ -0,0 +1,13 @@
+# Copyright 2013-2021 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 ExternalCommonGdbm(Package):
+ homepage = "http://www.gnu.org.ua/software/gdbm/gdbm.html"
+ url = "https://ftpmirror.gnu.org/gdbm/gdbm-1.18.1.tar.gz"
+
+ version('1.18.1', 'be78e48cdfc1a7ad90efff146dce6cfe')
diff --git a/var/spack/repos/builtin.mock/packages/external-common-openssl/package.py b/var/spack/repos/builtin.mock/packages/external-common-openssl/package.py
new file mode 100644
index 0000000000..e719fa20fc
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/external-common-openssl/package.py
@@ -0,0 +1,14 @@
+# Copyright 2013-2021 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 ExternalCommonOpenssl(Package):
+ homepage = "http://www.openssl.org"
+ url = "http://www.openssl.org/source/openssl-1.1.1i.tar.gz"
+
+ version('1.1.1i', 'be78e48cdfc1a7ad90efff146dce6cfe')
+ depends_on('external-common-perl')
diff --git a/var/spack/repos/builtin.mock/packages/external-common-perl/package.py b/var/spack/repos/builtin.mock/packages/external-common-perl/package.py
new file mode 100644
index 0000000000..a0a702cda0
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/external-common-perl/package.py
@@ -0,0 +1,14 @@
+# Copyright 2013-2021 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 ExternalCommonPerl(Package):
+ homepage = "http://www.perl.org"
+ url = "http://www.cpan.org/src/5.0/perl-5.32.0.tar.gz"
+
+ version('5.32.0', 'be78e48cdfc1a7ad90efff146dce6cfe')
+ depends_on('external-common-gdbm')
diff --git a/var/spack/repos/builtin.mock/packages/external-common-python/package.py b/var/spack/repos/builtin.mock/packages/external-common-python/package.py
new file mode 100644
index 0000000000..900f375d0d
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/external-common-python/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2021 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 ExternalCommonPython(Package):
+ homepage = "http://www.python.org"
+ url = "http://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz"
+
+ version('3.8.7', 'be78e48cdfc1a7ad90efff146dce6cfe')
+ depends_on('external-common-openssl')
+ depends_on('external-common-gdbm')
diff --git a/var/spack/repos/builtin.mock/packages/externalmodule/package.py b/var/spack/repos/builtin.mock/packages/externalmodule/package.py
index 675edbc23d..be20d00097 100644
--- a/var/spack/repos/builtin.mock/packages/externalmodule/package.py
+++ b/var/spack/repos/builtin.mock/packages/externalmodule/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/externalprereq/package.py b/var/spack/repos/builtin.mock/packages/externalprereq/package.py
index 595bc8b3b7..07fb361c0c 100644
--- a/var/spack/repos/builtin.mock/packages/externalprereq/package.py
+++ b/var/spack/repos/builtin.mock/packages/externalprereq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/externaltest/package.py b/var/spack/repos/builtin.mock/packages/externaltest/package.py
index f76863a37b..2c3a3131ac 100644
--- a/var/spack/repos/builtin.mock/packages/externaltest/package.py
+++ b/var/spack/repos/builtin.mock/packages/externaltest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/externaltool/package.py b/var/spack/repos/builtin.mock/packages/externaltool/package.py
index 114ae2d4a9..26b7e6473c 100644
--- a/var/spack/repos/builtin.mock/packages/externaltool/package.py
+++ b/var/spack/repos/builtin.mock/packages/externaltool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/externalvirtual/package.py b/var/spack/repos/builtin.mock/packages/externalvirtual/package.py
index aace40767d..6194c42e58 100644
--- a/var/spack/repos/builtin.mock/packages/externalvirtual/package.py
+++ b/var/spack/repos/builtin.mock/packages/externalvirtual/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/failing-build/package.py b/var/spack/repos/builtin.mock/packages/failing-build/package.py
index e95795dcf0..f9063092f8 100644
--- a/var/spack/repos/builtin.mock/packages/failing-build/package.py
+++ b/var/spack/repos/builtin.mock/packages/failing-build/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class FailingBuild(Package):
homepage = "http://www.example.com/trivial_install"
url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
def install(self, spec, prefix):
raise InstallError("Expected failure.")
diff --git a/var/spack/repos/builtin.mock/packages/fake/package.py b/var/spack/repos/builtin.mock/packages/fake/package.py
index 16ff3c6dd6..2946656efe 100644
--- a/var/spack/repos/builtin.mock/packages/fake/package.py
+++ b/var/spack/repos/builtin.mock/packages/fake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,4 +10,4 @@ class Fake(Package):
homepage = "http://www.fake-spack-example.org"
url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
diff --git a/var/spack/repos/builtin.mock/packages/fetch-options/package.py b/var/spack/repos/builtin.mock/packages/fetch-options/package.py
index 1a31a535e1..2619ca6e87 100644
--- a/var/spack/repos/builtin.mock/packages/fetch-options/package.py
+++ b/var/spack/repos/builtin.mock/packages/fetch-options/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,6 @@ class FetchOptions(Package):
timeout = {'timeout': 65}
cookie = {'cookie': 'baz'}
- version('1.2', 'abc12', fetch_options=cookie)
- version('1.1', 'abc11', fetch_options=timeout)
- version('1.0', 'abc10')
+ version('1.2', '00000000000000000000000000000012', fetch_options=cookie)
+ version('1.1', '00000000000000000000000000000011', fetch_options=timeout)
+ version('1.0', '00000000000000000000000000000010')
diff --git a/var/spack/repos/builtin.mock/packages/fftw/package.py b/var/spack/repos/builtin.mock/packages/fftw/package.py
index 9adcf1ea0a..b1dabe6754 100644
--- a/var/spack/repos/builtin.mock/packages/fftw/package.py
+++ b/var/spack/repos/builtin.mock/packages/fftw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Fftw(Package):
homepage = "http://www.example.com"
url = "http://www.example.com/fftw-1.0.tar.gz"
- version(2.0, 'foobar')
- version(1.0, 'foobar')
+ version(2.0, 'abcdef1234567890abcdef1234567890')
+ version(1.0, '1234567890abcdef1234567890abcdef')
variant('mpi', default=False, description='Enable MPI')
diff --git a/var/spack/repos/builtin.mock/packages/find-externals1/package.py b/var/spack/repos/builtin.mock/packages/find-externals1/package.py
index 9f5f94aaab..0aab19bde5 100644
--- a/var/spack/repos/builtin.mock/packages/find-externals1/package.py
+++ b/var/spack/repos/builtin.mock/packages/find-externals1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class FindExternals1(AutotoolsPackage):
url = "http://www.example.com/find-externals-1.0.tar.gz"
- version('1.0', 'hash-1.0')
+ version('1.0', 'abcdef1234567890abcdef1234567890')
@classmethod
def determine_spec_details(cls, prefix, exes_in_prefix):
diff --git a/var/spack/repos/builtin.mock/packages/flake8/package.py b/var/spack/repos/builtin.mock/packages/flake8/package.py
index c548ca69b2..3132feaee5 100644
--- a/var/spack/repos/builtin.mock/packages/flake8/package.py
+++ b/var/spack/repos/builtin.mock/packages/flake8/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/flatten-deps/package.py b/var/spack/repos/builtin.mock/packages/flatten-deps/package.py
index a272dfc53c..117a91680b 100644
--- a/var/spack/repos/builtin.mock/packages/flatten-deps/package.py
+++ b/var/spack/repos/builtin.mock/packages/flatten-deps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/garply/package.py b/var/spack/repos/builtin.mock/packages/garply/package.py
index 289e172c91..6f028eec31 100644
--- a/var/spack/repos/builtin.mock/packages/garply/package.py
+++ b/var/spack/repos/builtin.mock/packages/garply/package.py
@@ -1,22 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
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')
+ has_code = False
+ version('3.0.0')
def install(self, spec, prefix):
garply_h = '''#ifndef GARPLY_H_
diff --git a/var/spack/repos/builtin.mock/packages/gcc/package.py b/var/spack/repos/builtin.mock/packages/gcc/package.py
index 7826e1b5cb..97e1325c61 100644
--- a/var/spack/repos/builtin.mock/packages/gcc/package.py
+++ b/var/spack/repos/builtin.mock/packages/gcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class Gcc(Package):
url = "http://www.example.com/gcc-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
- version('2.0', '2.0_a_hash')
- version('3.0', '3.0_a_hash')
+ version('2.0', 'abcdef0123456789abcdef0123456789')
+ version('3.0', 'def0123456789abcdef0123456789abc')
depends_on('conflict', when='@3.0')
diff --git a/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py
index e9acff3c6d..d249352fe0 100644
--- a/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/git-test-commit/package.py b/var/spack/repos/builtin.mock/packages/git-test-commit/package.py
new file mode 100644
index 0000000000..cae030d4c1
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/git-test-commit/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 GitTestCommit(Package):
+ """Mock package that tests installing specific commit"""
+ homepage = "http://www.git-fetch-example.com"
+ # git='to-be-filled-in-by-test'
+
+ version('1.0', tag='v1.0')
+ version('1.1', tag='v1.1')
+ version('1.2', tag='1.2') # not a typo
+ version('2.0', tag='v2.0')
+
+ def install(self, spec, prefix):
+ assert spec.satisfies('@:0')
+ mkdir(prefix.bin)
+
+ # This will only exist for some second commit
+ install('file.txt', prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/git-test/package.py b/var/spack/repos/builtin.mock/packages/git-test/package.py
index 8430966282..da05c42442 100644
--- a/var/spack/repos/builtin.mock/packages/git-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/git-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-top-level/package.py
index ba80263224..e971c1bb93 100644
--- a/var/spack/repos/builtin.mock/packages/git-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py
index b998c0f014..3e39389a34 100644
--- a/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py
index d93ead7bee..94e9b4ff41 100644
--- a/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -28,13 +28,35 @@ class GitUrlTopLevel(Package):
version('3.0', tag='v3.0')
# These resolve to URL fetchers
- version('2.3', 'abc23', url='https://www.example.com/foo2.3.tar.gz')
- version('2.2', sha256='abc22', url='https://www.example.com/foo2.2.tar.gz')
- version('2.1', sha256='abc21')
- version('2.0', 'abc20')
+ version(
+ '2.3', '0000000000000000000000000000000000000000000000000000000000000023',
+ url='https://www.example.com/foo2.3.tar.gz',
+ )
+ version(
+ '2.2',
+ sha256='0000000000000000000000000000000000000000000000000000000000000022',
+ url='https://www.example.com/foo2.2.tar.gz',
+ )
+ version(
+ '2.1',
+ sha256='0000000000000000000000000000000000000000000000000000000000000021',
+ )
+ version(
+ '2.0',
+ '0000000000000000000000000000000000000000000000000000000000000020',
+ )
# These result in a FetcherConflict b/c we can't tell what to use
- version('1.3', sha256='abc13', commit='abc13')
- version('1.2', sha512='abc12', branch='releases/v1.2')
- version('1.1', md5='abc11', tag='v1.1')
- version('1.0', 'abc11', tag='abc123')
+ version(
+ '1.3',
+ sha256='f66bbef3ccb8b06542c57d69804c5b0aba72051f693c17761ad8525786d259fa',
+ commit='abc13'
+ )
+ version(
+ '1.2',
+ sha512='f66bbef3ccb8b06542c57d69804c5b0aba72051f693c17761ad8525786d259fa'
+ '9ed8f2e950a4fb8a4b936f33e689187784699357bc16e49f33dfcda8ab8b00e4',
+ branch='releases/v1.2'
+ )
+ version('1.1', md5='00000000000000000000000000000011', tag='v1.1')
+ version('1.0', '00000000000000000000000000000011', tag='abc123')
diff --git a/var/spack/repos/builtin.mock/packages/gmt/package.py b/var/spack/repos/builtin.mock/packages/gmt/package.py
new file mode 100644
index 0000000000..efe1480c88
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/gmt/package.py
@@ -0,0 +1,12 @@
+# Copyright 2013-2021 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 Gmt(Package):
+ url = "http://www.example.com/"
+ url = "http://www.example.com/2.0.tar.gz"
+
+ version('2.0', 'abcdef1234567890abcdef1234567890')
+ version('1.0', 'abcdef1234567890abcdef1234567890')
+
+ depends_on('mvdefaults', when='@1.0')
diff --git a/var/spack/repos/builtin.mock/packages/hash-test1/package.py b/var/spack/repos/builtin.mock/packages/hash-test1/package.py
index c46f2339ba..cf289101a1 100644
--- a/var/spack/repos/builtin.mock/packages/hash-test1/package.py
+++ b/var/spack/repos/builtin.mock/packages/hash-test1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/hash-test2/package.py b/var/spack/repos/builtin.mock/packages/hash-test2/package.py
index 2358cd66e2..86c2e8bfa0 100644
--- a/var/spack/repos/builtin.mock/packages/hash-test2/package.py
+++ b/var/spack/repos/builtin.mock/packages/hash-test2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/hash-test3/package.py b/var/spack/repos/builtin.mock/packages/hash-test3/package.py
index e943bd46c7..b20778098f 100644
--- a/var/spack/repos/builtin.mock/packages/hash-test3/package.py
+++ b/var/spack/repos/builtin.mock/packages/hash-test3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/hash-test4/package.py b/var/spack/repos/builtin.mock/packages/hash-test4/package.py
index 4b7f4d40c0..9dbc95f746 100644
--- a/var/spack/repos/builtin.mock/packages/hash-test4/package.py
+++ b/var/spack/repos/builtin.mock/packages/hash-test4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/hdf5/package.py b/var/spack/repos/builtin.mock/packages/hdf5/package.py
index 765a2993b8..34aa76cfd6 100644
--- a/var/spack/repos/builtin.mock/packages/hdf5/package.py
+++ b/var/spack/repos/builtin.mock/packages/hdf5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class Hdf5(Package):
homepage = "http://www.llnl.gov"
url = "http://www.llnl.gov/hdf5-1.0.tar.gz"
- version(2.3, 'foobarbaz')
+ version(2.3, '0123456789abcdef0123456789abcdef')
variant('mpi', default=True, description='Enable mpi')
diff --git a/var/spack/repos/builtin.mock/packages/hg-test/package.py b/var/spack/repos/builtin.mock/packages/hg-test/package.py
index 67970d4272..21219d9ce6 100644
--- a/var/spack/repos/builtin.mock/packages/hg-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/hg-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/hg-top-level/package.py b/var/spack/repos/builtin.mock/packages/hg-top-level/package.py
index 0f23972592..66d9db91e7 100644
--- a/var/spack/repos/builtin.mock/packages/hg-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/hg-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/hypre/package.py b/var/spack/repos/builtin.mock/packages/hypre/package.py
index bf48afd971..0780fabc97 100644
--- a/var/spack/repos/builtin.mock/packages/hypre/package.py
+++ b/var/spack/repos/builtin.mock/packages/hypre/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py b/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py
index bb8ad02b49..05aac5f953 100644
--- a/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py
+++ b/var/spack/repos/builtin.mock/packages/impossible-concretization/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class ImpossibleConcretization(Package):
homepage = "http://www.example.com"
url = "http://www.example.com/example-1.0.tar.gz"
- version(1.0, 'foobarbaz')
+ version(1.0, '0123456789abcdef0123456789abcdef')
conflicts('target=x86_64:')
diff --git a/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py b/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py
index 34bf4c64a0..c49e7e49e0 100644
--- a/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py
+++ b/var/spack/repos/builtin.mock/packages/indirect-mpich/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class IndirectMpich(Package):
homepage = "http://www.example.com"
url = "http://www.example.com/indirect_mpich-1.0.tar.gz"
- version(1.0, 'foobarbaz')
+ version(1.0, '0123456789abcdef0123456789abcdef')
depends_on('mpi')
depends_on('direct-mpich')
diff --git a/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py
new file mode 100644
index 0000000000..689f315bd0
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/leaf-adds-virtual/package.py
@@ -0,0 +1,12 @@
+# Copyright 2013-2021 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 LeafAddsVirtual(Package):
+ url = "http://www.example.com/"
+ url = "http://www.example.com/2.0.tar.gz"
+
+ version('2.0', 'abcdef1234567890abcdef1234567890')
+ version('1.0', 'abcdef1234567890abcdef1234567890')
+
+ depends_on('blas', when='@2.0')
diff --git a/var/spack/repos/builtin.mock/packages/libdwarf/package.py b/var/spack/repos/builtin.mock/packages/libdwarf/package.py
index 737635a1a5..dcda3a2976 100644
--- a/var/spack/repos/builtin.mock/packages/libdwarf/package.py
+++ b/var/spack/repos/builtin.mock/packages/libdwarf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,9 +15,9 @@ class Libdwarf(Package):
list_url = homepage
version(20130729, "64b42692e947d5180e162e46c689dfbf")
- version(20130207, 'foobarbaz')
- version(20111030, 'foobarbaz')
- version(20070703, 'foobarbaz')
+ version(20130207, '0123456789abcdef0123456789abcdef')
+ version(20111030, '0123456789abcdef0123456789abcdef')
+ version(20070703, '0123456789abcdef0123456789abcdef')
depends_on("libelf")
diff --git a/var/spack/repos/builtin.mock/packages/libelf/package.py b/var/spack/repos/builtin.mock/packages/libelf/package.py
index 6605628965..8625991e5a 100644
--- a/var/spack/repos/builtin.mock/packages/libelf/package.py
+++ b/var/spack/repos/builtin.mock/packages/libelf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/libtool-deletion/package.py b/var/spack/repos/builtin.mock/packages/libtool-deletion/package.py
index 6ca8ce03d8..e70daa7daf 100644
--- a/var/spack/repos/builtin.mock/packages/libtool-deletion/package.py
+++ b/var/spack/repos/builtin.mock/packages/libtool-deletion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/maintainers-1/package.py b/var/spack/repos/builtin.mock/packages/maintainers-1/package.py
index 4c223548dd..51ee91de21 100644
--- a/var/spack/repos/builtin.mock/packages/maintainers-1/package.py
+++ b/var/spack/repos/builtin.mock/packages/maintainers-1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/maintainers-2/package.py b/var/spack/repos/builtin.mock/packages/maintainers-2/package.py
index 8121461858..bd94d8df68 100644
--- a/var/spack/repos/builtin.mock/packages/maintainers-2/package.py
+++ b/var/spack/repos/builtin.mock/packages/maintainers-2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py
new file mode 100644
index 0000000000..cc07608981
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/middle-adds-virtual/package.py
@@ -0,0 +1,11 @@
+# Copyright 2013-2021 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 MiddleAddsVirtual(Package):
+ url = "http://www.example.com/"
+ url = "http://www.example.com/2.0.tar.gz"
+
+ version('1.0', 'abcdef1234567890abcdef1234567890')
+
+ depends_on('leaf-adds-virtual')
diff --git a/var/spack/repos/builtin.mock/packages/mirror-gnu-broken/package.py b/var/spack/repos/builtin.mock/packages/mirror-gnu-broken/package.py
index d55f57f114..b3a5db11a5 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-gnu-broken/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-gnu-broken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-gnu/package.py b/var/spack/repos/builtin.mock/packages/mirror-gnu/package.py
index fe94998e8c..0d391aab9b 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-gnu/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-gnu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-sourceforge-broken/package.py b/var/spack/repos/builtin.mock/packages/mirror-sourceforge-broken/package.py
index be5d6aac16..4a4093539d 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-sourceforge-broken/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-sourceforge-broken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-sourceforge/package.py b/var/spack/repos/builtin.mock/packages/mirror-sourceforge/package.py
index 6740292576..0997f525ef 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-sourceforge/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-sourceforge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/mirror-gnu-broken/package.py b/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/mirror-gnu-broken/package.py
index d55f57f114..b3a5db11a5 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/mirror-gnu-broken/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/mirror-gnu-broken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/package.py b/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/package.py
index 82c3d99819..2353ce998f 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-sourceware-broken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-sourceware/package.py b/var/spack/repos/builtin.mock/packages/mirror-sourceware/package.py
index 31c4ad2ed7..9c6d34b80b 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-sourceware/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-sourceware/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-xorg-broken/package.py b/var/spack/repos/builtin.mock/packages/mirror-xorg-broken/package.py
index 42e9a2be2a..b4f993b232 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-xorg-broken/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-xorg-broken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/mirror-xorg/package.py b/var/spack/repos/builtin.mock/packages/mirror-xorg/package.py
index 513eb90780..bc44e234fd 100644
--- a/var/spack/repos/builtin.mock/packages/mirror-xorg/package.py
+++ b/var/spack/repos/builtin.mock/packages/mirror-xorg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/missing-dependency/package.py b/var/spack/repos/builtin.mock/packages/missing-dependency/package.py
index edad3f0b86..131e15b911 100644
--- a/var/spack/repos/builtin.mock/packages/missing-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/missing-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/mixedversions/package.py b/var/spack/repos/builtin.mock/packages/mixedversions/package.py
index e0c61ed089..fd660f7f8f 100644
--- a/var/spack/repos/builtin.mock/packages/mixedversions/package.py
+++ b/var/spack/repos/builtin.mock/packages/mixedversions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,6 +9,6 @@ from spack import *
class Mixedversions(Package):
url = "http://www.fake-mixedversions.org/downloads/mixedversions-1.0.tar.gz"
- version('2.0.1', 'hashc')
- version('2.0', 'hashb')
- version('1.0.1', 'hasha')
+ version('2.0.1', '0000000000000000000000000000000c')
+ version('2.0', '0000000000000000000000000000000b')
+ version('1.0.1', '0000000000000000000000000000000a')
diff --git a/var/spack/repos/builtin.mock/packages/modifies-run-env/package.py b/var/spack/repos/builtin.mock/packages/modifies-run-env/package.py
new file mode 100644
index 0000000000..401750875c
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/modifies-run-env/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 ModifiesRunEnv(Package):
+ """Dependency package which needs to make shell modifications to run"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/a-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def setup_run_environment(self, env):
+ env.set('DEPENDENCY_ENV_VAR', '1')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/module-path-separator/package.py b/var/spack/repos/builtin.mock/packages/module-path-separator/package.py
index 3b4e2ca9d0..e88d377c84 100644
--- a/var/spack/repos/builtin.mock/packages/module-path-separator/package.py
+++ b/var/spack/repos/builtin.mock/packages/module-path-separator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class ModulePathSeparator(Package):
homepage = "http://www.llnl.gov"
url = "http://www.llnl.gov/module-path-separator-1.0.tar.gz"
- version(1.0, 'foobarbaz')
+ version(1.0, '0123456789abcdef0123456789abcdef')
def setup_environment(self, senv, renv):
renv.append_path("COLON", "foo")
diff --git a/var/spack/repos/builtin.mock/packages/mpich/package.py b/var/spack/repos/builtin.mock/packages/mpich/package.py
index c84a2cd30d..b110be5495 100644
--- a/var/spack/repos/builtin.mock/packages/mpich/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpich/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,11 +18,11 @@ class Mpich(Package):
description="Compile MPICH with debug flags.")
version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
- version('3.0.3', 'foobarbaz')
- version('3.0.2', 'foobarbaz')
- version('3.0.1', 'foobarbaz')
- version('3.0', 'foobarbaz')
- version('1.0', 'foobarbas')
+ version('3.0.3', '0123456789abcdef0123456789abcdef')
+ version('3.0.2', '0123456789abcdef0123456789abcdef')
+ version('3.0.1', '0123456789abcdef0123456789abcdef')
+ version('3.0', '0123456789abcdef0123456789abcdef')
+ version('1.0', '0123456789abcdef0123456789abcdef')
provides('mpi@:3', when='@3:')
provides('mpi@:1', when='@:1')
diff --git a/var/spack/repos/builtin.mock/packages/mpich2/package.py b/var/spack/repos/builtin.mock/packages/mpich2/package.py
index 8094c64acb..cf0d7534b0 100644
--- a/var/spack/repos/builtin.mock/packages/mpich2/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpich2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,11 +15,11 @@ class Mpich2(Package):
tags = ['tag1', 'tag3']
version('1.5', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
- version('1.4', 'foobarbaz')
- version('1.3', 'foobarbaz')
- version('1.2', 'foobarbaz')
- version('1.1', 'foobarbaz')
- version('1.0', 'foobarbaz')
+ version('1.4', '0123456789abcdef0123456789abcdef')
+ version('1.3', '0123456789abcdef0123456789abcdef')
+ version('1.2', '0123456789abcdef0123456789abcdef')
+ version('1.1', '0123456789abcdef0123456789abcdef')
+ version('1.0', '0123456789abcdef0123456789abcdef')
provides('mpi@:2.0')
provides('mpi@:2.1', when='@1.1:')
diff --git a/var/spack/repos/builtin.mock/packages/mpileaks/package.py b/var/spack/repos/builtin.mock/packages/mpileaks/package.py
index 2e2e92d585..e0bff0673b 100644
--- a/var/spack/repos/builtin.mock/packages/mpileaks/package.py
+++ b/var/spack/repos/builtin.mock/packages/mpileaks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,10 @@ class Mpileaks(Package):
homepage = "http://www.llnl.gov"
url = "http://www.llnl.gov/mpileaks-1.0.tar.gz"
- version(1.0, 'foobarbaz')
- version(2.1, 'foobarbaz')
- version(2.2, 'foobarbaz')
- version(2.3, 'foobarbaz')
+ version(1.0, '0123456789abcdef0123456789abcdef')
+ version(2.1, '0123456789abcdef0123456789abcdef')
+ version(2.2, '0123456789abcdef0123456789abcdef')
+ version(2.3, '0123456789abcdef0123456789abcdef')
variant('debug', default=False, description='Debug variant')
variant('opt', default=False, description='Optimized variant')
diff --git a/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py b/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py
index 69995b7520..58e83ae596 100644
--- a/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py
+++ b/var/spack/repos/builtin.mock/packages/multi-provider-mpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,13 +12,13 @@ class MultiProviderMpi(Package):
homepage = "http://www.spack-fake-mpi.org"
url = "http://www.spack-fake-mpi.org/downloads/multi-mpi-1.0.tar.gz"
- version('2.0.0', 'foobarbaz')
- version('1.10.3', 'foobarbaz')
- version('1.10.2', 'foobarbaz')
- version('1.10.1', 'foobarbaz')
- version('1.10.0', 'foobarbaz')
- version('1.8.8', 'foobarbaz')
- version('1.6.5', 'foobarbaz')
+ version('2.0.0', '0123456789abcdef0123456789abcdef')
+ version('1.10.3', '0123456789abcdef0123456789abcdef')
+ version('1.10.2', '0123456789abcdef0123456789abcdef')
+ version('1.10.1', '0123456789abcdef0123456789abcdef')
+ version('1.10.0', '0123456789abcdef0123456789abcdef')
+ version('1.8.8', '0123456789abcdef0123456789abcdef')
+ version('1.6.5', '0123456789abcdef0123456789abcdef')
provides('mpi@3.1', when='@2.0.0')
provides('mpi@3.0', when='@1.10.3')
diff --git a/var/spack/repos/builtin.mock/packages/multimethod-base/package.py b/var/spack/repos/builtin.mock/packages/multimethod-base/package.py
index 142741f2d2..0887774970 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod-base/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod-base/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/multimethod-diamond-parent/package.py b/var/spack/repos/builtin.mock/packages/multimethod-diamond-parent/package.py
index cdde98165d..4246dec98d 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod-diamond-parent/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod-diamond-parent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/multimethod-diamond/package.py b/var/spack/repos/builtin.mock/packages/multimethod-diamond/package.py
index 7f29e28411..86b068e295 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod-diamond/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod-diamond/package.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import spack.pkg.builtin.mock.multimethod_inheritor as mi
import spack.pkg.builtin.mock.multimethod_diamond_parent as mp
+import spack.pkg.builtin.mock.multimethod_inheritor as mi
class MultimethodDiamond(mi.MultimethodInheritor, mp.MultimethodDiamondParent):
diff --git a/var/spack/repos/builtin.mock/packages/multimethod-inheritor/package.py b/var/spack/repos/builtin.mock/packages/multimethod-inheritor/package.py
index 563e19dcb7..41807a2710 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod-inheritor/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod-inheritor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/multimethod/package.py b/var/spack/repos/builtin.mock/packages/multimethod/package.py
index 2f0f869de0..8ae2bd1bbe 100644
--- a/var/spack/repos/builtin.mock/packages/multimethod/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimethod/package.py
@@ -1,13 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 six import string_types
-from spack import *
import spack.architecture
-
+from spack import *
from spack.pkg.builtin.mock.multimethod_base import MultimethodBase
diff --git a/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py b/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py
index 4343b03fe5..aff94a366e 100644
--- a/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py
+++ b/var/spack/repos/builtin.mock/packages/multimodule-inheritance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py b/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py
index 22d0ea1d97..65ca9d6854 100644
--- a/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/multivalue-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,10 @@ class MultivalueVariant(Package):
homepage = "http://www.llnl.gov"
url = "http://www.llnl.gov/mpileaks-1.0.tar.gz"
- version(1.0, 'foobarbaz')
- version(2.1, 'foobarbaz')
- version(2.2, 'foobarbaz')
- version(2.3, 'foobarbaz')
+ version(1.0, '0123456789abcdef0123456789abcdef')
+ version(2.1, '0123456789abcdef0123456789abcdef')
+ version(2.2, '0123456789abcdef0123456789abcdef')
+ version(2.3, '0123456789abcdef0123456789abcdef')
variant('debug', default=False, description='Debug variant')
variant(
@@ -29,6 +29,11 @@ class MultivalueVariant(Package):
multi=False
)
+ variant(
+ 'libs', default='shared', values=('shared', 'static'), multi=True,
+ description='Type of libraries to install'
+ )
+
depends_on('mpi')
depends_on('callpath')
depends_on('a')
diff --git a/var/spack/repos/builtin.mock/packages/mvdefaults/package.py b/var/spack/repos/builtin.mock/packages/mvdefaults/package.py
new file mode 100644
index 0000000000..a45350a5c5
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/mvdefaults/package.py
@@ -0,0 +1,12 @@
+# Copyright 2013-2021 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 Mvdefaults(Package):
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/mvdefaults-1.0.tar.gz"
+
+ version('1.0', 'abcdef1234567890abcdef1234567890')
+
+ variant('foo', values=('a', 'b', 'c'), default=('a', 'b', 'c'),
+ multi=True, description='')
diff --git a/var/spack/repos/builtin.mock/packages/needs-relocation/package.py b/var/spack/repos/builtin.mock/packages/needs-relocation/package.py
index 681a8a53ed..3382178c48 100644
--- a/var/spack/repos/builtin.mock/packages/needs-relocation/package.py
+++ b/var/spack/repos/builtin.mock/packages/needs-relocation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/netlib-blas/package.py b/var/spack/repos/builtin.mock/packages/netlib-blas/package.py
index 4a759b6145..a7706740ca 100644
--- a/var/spack/repos/builtin.mock/packages/netlib-blas/package.py
+++ b/var/spack/repos/builtin.mock/packages/netlib-blas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py b/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py
index b9c69bf66c..d10ddfbe8c 100644
--- a/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py
+++ b/var/spack/repos/builtin.mock/packages/netlib-lapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/nosource-install/package.py b/var/spack/repos/builtin.mock/packages/nosource-install/package.py
index dc4e2755db..ad2d98f1a0 100644
--- a/var/spack/repos/builtin.mock/packages/nosource-install/package.py
+++ b/var/spack/repos/builtin.mock/packages/nosource-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/nosource/package.py b/var/spack/repos/builtin.mock/packages/nosource/package.py
index cfc38fd5ff..f7cd3e5839 100644
--- a/var/spack/repos/builtin.mock/packages/nosource/package.py
+++ b/var/spack/repos/builtin.mock/packages/nosource/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/noversion-bundle/package.py b/var/spack/repos/builtin.mock/packages/noversion-bundle/package.py
index 57c26e1f25..70a73b312c 100644
--- a/var/spack/repos/builtin.mock/packages/noversion-bundle/package.py
+++ b/var/spack/repos/builtin.mock/packages/noversion-bundle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/noversion/package.py b/var/spack/repos/builtin.mock/packages/noversion/package.py
index e22519fcdf..bda52c5ce2 100644
--- a/var/spack/repos/builtin.mock/packages/noversion/package.py
+++ b/var/spack/repos/builtin.mock/packages/noversion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/old-sbang/package.py b/var/spack/repos/builtin.mock/packages/old-sbang/package.py
index 3308f91611..830afa510f 100644
--- a/var/spack/repos/builtin.mock/packages/old-sbang/package.py
+++ b/var/spack/repos/builtin.mock/packages/old-sbang/package.py
@@ -2,8 +2,8 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-
+import spack.paths
+import spack.store
from spack import *
@@ -22,12 +22,12 @@ class OldSbang(Package):
#!/usr/bin/env python
{1}
- '''.format(spack.paths.prefix, prefix.bin)
+'''.format(spack.paths.prefix, prefix.bin)
sbang_style_2 = '''#!/bin/sh {0}/bin/sbang
#!/usr/bin/env python
{1}
- '''.format(spack.store.unpadded_root, prefix.bin)
+'''.format(spack.store.unpadded_root, prefix.bin)
with open('%s/sbang-style-1.sh' % self.prefix.bin, 'w') as f:
f.write(sbang_style_1)
diff --git a/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py b/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py
index 997049af56..9b3e2f0e1f 100644
--- a/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py
+++ b/var/spack/repos/builtin.mock/packages/openblas-with-lapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/openblas/package.py b/var/spack/repos/builtin.mock/packages/openblas/package.py
index d97e4091a2..8db616e61d 100644
--- a/var/spack/repos/builtin.mock/packages/openblas/package.py
+++ b/var/spack/repos/builtin.mock/packages/openblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py b/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py
index 64437ae337..26c0c21635 100644
--- a/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py
+++ b/var/spack/repos/builtin.mock/packages/optional-dep-test-2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py b/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py
index 1261a117a9..75b76685c5 100644
--- a/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py
+++ b/var/spack/repos/builtin.mock/packages/optional-dep-test-3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py b/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py
index 9a39e1a624..1d45139c55 100644
--- a/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/optional-dep-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/othervirtual/package.py b/var/spack/repos/builtin.mock/packages/othervirtual/package.py
index c2c091af5c..6ff6822848 100644
--- a/var/spack/repos/builtin.mock/packages/othervirtual/package.py
+++ b/var/spack/repos/builtin.mock/packages/othervirtual/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/override-context-templates/package.py b/var/spack/repos/builtin.mock/packages/override-context-templates/package.py
index 08f4d08828..f2f6f1c941 100644
--- a/var/spack/repos/builtin.mock/packages/override-context-templates/package.py
+++ b/var/spack/repos/builtin.mock/packages/override-context-templates/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class OverrideContextTemplates(Package):
homepage = "http://www.fake-spack-example.org"
url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
tcl_template = 'extension.tcl'
tcl_context = {'sentence': "sentence from package"}
diff --git a/var/spack/repos/builtin.mock/packages/override-module-templates/package.py b/var/spack/repos/builtin.mock/packages/override-module-templates/package.py
index 2ed7d0e1e0..16d453d5b3 100644
--- a/var/spack/repos/builtin.mock/packages/override-module-templates/package.py
+++ b/var/spack/repos/builtin.mock/packages/override-module-templates/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class OverrideModuleTemplates(Package):
homepage = "http://www.fake-spack-example.org"
url = "http://www.fake-spack-example.org/downloads/fake-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
tcl_template = 'override.txt'
lmod_template = 'override.txt'
diff --git a/var/spack/repos/builtin.mock/packages/patch-a-dependency/package.py b/var/spack/repos/builtin.mock/packages/patch-a-dependency/package.py
index cd5c54ad5f..737565e5db 100644
--- a/var/spack/repos/builtin.mock/packages/patch-a-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/patch-a-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/patch-inheritance/package.py b/var/spack/repos/builtin.mock/packages/patch-inheritance/package.py
index 3f7486b878..8cddcf9be1 100644
--- a/var/spack/repos/builtin.mock/packages/patch-inheritance/package.py
+++ b/var/spack/repos/builtin.mock/packages/patch-inheritance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/patch-several-dependencies/package.py b/var/spack/repos/builtin.mock/packages/patch-several-dependencies/package.py
index 1495910fb9..193a5ed84c 100644
--- a/var/spack/repos/builtin.mock/packages/patch-several-dependencies/package.py
+++ b/var/spack/repos/builtin.mock/packages/patch-several-dependencies/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/patch/package.py b/var/spack/repos/builtin.mock/packages/patch/package.py
index d0283cc33c..06357e28f8 100644
--- a/var/spack/repos/builtin.mock/packages/patch/package.py
+++ b/var/spack/repos/builtin.mock/packages/patch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/patchelf/package.py b/var/spack/repos/builtin.mock/packages/patchelf/package.py
index 80221e10e8..7fd84d49db 100644
--- a/var/spack/repos/builtin.mock/packages/patchelf/package.py
+++ b/var/spack/repos/builtin.mock/packages/patchelf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/perl-extension/package.py b/var/spack/repos/builtin.mock/packages/perl-extension/package.py
index af60caefd4..1aab8838c4 100644
--- a/var/spack/repos/builtin.mock/packages/perl-extension/package.py
+++ b/var/spack/repos/builtin.mock/packages/perl-extension/package.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class PerlExtension(PerlPackage):
"""A package which extends perl"""
@@ -12,8 +13,8 @@ class PerlExtension(PerlPackage):
homepage = "http://www.example.com"
url = "http://www.example.com/extension1-1.0.tar.gz"
- version('1.0', 'hash-extension-1.0')
- version('2.0', 'hash-extension-2.0')
+ version('1.0', '00000000000000000000000000000010')
+ version('2.0', '00000000000000000000000000000020')
extends("perl")
diff --git a/var/spack/repos/builtin.mock/packages/perl/package.py b/var/spack/repos/builtin.mock/packages/perl/package.py
index 2f495c1a97..0e1b2a0f67 100644
--- a/var/spack/repos/builtin.mock/packages/perl/package.py
+++ b/var/spack/repos/builtin.mock/packages/perl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,4 +12,4 @@ class Perl(Package):
extendable = True
- version('0.0.0', 'hash')
+ version('0.0.0', 'abcdef1234567890abcdef1234567890')
diff --git a/var/spack/repos/builtin.mock/packages/preferred-test/package.py b/var/spack/repos/builtin.mock/packages/preferred-test/package.py
index 55121c76a6..41ee58aeb6 100644
--- a/var/spack/repos/builtin.mock/packages/preferred-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/preferred-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/printing-package/package.py b/var/spack/repos/builtin.mock/packages/printing-package/package.py
index 096a49d211..9ccdca49ea 100644
--- a/var/spack/repos/builtin.mock/packages/printing-package/package.py
+++ b/var/spack/repos/builtin.mock/packages/printing-package/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class PrintingPackage(Package):
homepage = "http://www.example.com/printing_package"
url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
def install(self, spec, prefix):
print("BEFORE INSTALL")
diff --git a/var/spack/repos/builtin.mock/packages/py-extension1/package.py b/var/spack/repos/builtin.mock/packages/py-extension1/package.py
index d596440b78..d7a88c5123 100644
--- a/var/spack/repos/builtin.mock/packages/py-extension1/package.py
+++ b/var/spack/repos/builtin.mock/packages/py-extension1/package.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class PyExtension1(PythonPackage):
"""A package which extends python"""
@@ -12,8 +13,11 @@ class PyExtension1(PythonPackage):
homepage = "http://www.example.com"
url = "http://www.example.com/extension1-1.0.tar.gz"
- version('1.0', 'hash-extension1-1.0')
- version('2.0', 'hash-extension1-2.0')
+ # Override settings in base class
+ maintainers = []
+
+ version('1.0', '00000000000000000000000000000110')
+ version('2.0', '00000000000000000000000000000120')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/py-extension2/package.py b/var/spack/repos/builtin.mock/packages/py-extension2/package.py
index 08e5d07f37..e4663ca789 100644
--- a/var/spack/repos/builtin.mock/packages/py-extension2/package.py
+++ b/var/spack/repos/builtin.mock/packages/py-extension2/package.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class PyExtension2(PythonPackage):
"""A package which extends python. It also depends on another
@@ -13,10 +14,13 @@ class PyExtension2(PythonPackage):
homepage = "http://www.example.com"
url = "http://www.example.com/extension2-1.0.tar.gz"
+ # Override settings in base class
+ maintainers = []
+
extends("python")
depends_on('py-extension1', type=('build', 'run'))
- version('1.0', 'hash-extension2-1.0')
+ version('1.0', '00000000000000000000000000000210')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/py-extension3/package.py b/var/spack/repos/builtin.mock/packages/py-extension3/package.py
index 164aa00339..575d38866f 100644
--- a/var/spack/repos/builtin.mock/packages/py-extension3/package.py
+++ b/var/spack/repos/builtin.mock/packages/py-extension3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,6 @@ class PyExtension3(Package):
depends_on('patchelf@0.9', when='@1.0:1.1 ^python@:2')
depends_on('patchelf@0.10', when='@1.0:1.1 ^python@3:')
- version('2.0', 'hash-extension3-1.0')
- version('1.1', 'hash-extension3-1.0')
- version('1.0', 'hash-extension3-1.0')
+ version('2.0', '00000000000000000000000000000320')
+ version('1.1', '00000000000000000000000000000311')
+ version('1.0', '00000000000000000000000000000310')
diff --git a/var/spack/repos/builtin.mock/packages/python/package.py b/var/spack/repos/builtin.mock/packages/python/package.py
index e846572121..9bfaa79d46 100644
--- a/var/spack/repos/builtin.mock/packages/python/package.py
+++ b/var/spack/repos/builtin.mock/packages/python/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py b/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py
index 61287ab7c8..7cfff2ed63 100644
--- a/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py
+++ b/var/spack/repos/builtin.mock/packages/quantum-espresso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class QuantumEspresso(Package):
homepage = "http://www.example.com"
url = "http://www.example.com/qe-1.0.tar.gz"
- version(1.0, 'foobar')
+ version(1.0, '1234567890abcdef1234567890abcdef')
variant('invino', default=True, description='?')
variant('veritas', default=True, description='?')
diff --git a/var/spack/repos/builtin.mock/packages/quux/package.py b/var/spack/repos/builtin.mock/packages/quux/package.py
index 80508d3b55..676b1c1f0b 100644
--- a/var/spack/repos/builtin.mock/packages/quux/package.py
+++ b/var/spack/repos/builtin.mock/packages/quux/package.py
@@ -1,22 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
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')
+ has_code = False
+ version('3.0.0')
depends_on('garply')
@@ -89,6 +88,7 @@ main()
const int quux_version_minor = %s;
'''
mkdirp('%s/quux' % prefix.include)
+ mkdirp('%s/quux' % self.stage.source_path)
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:
diff --git a/var/spack/repos/builtin.mock/packages/raiser/package.py b/var/spack/repos/builtin.mock/packages/raiser/package.py
index 5337d8b127..323d7b194e 100644
--- a/var/spack/repos/builtin.mock/packages/raiser/package.py
+++ b/var/spack/repos/builtin.mock/packages/raiser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,7 +17,7 @@ class Raiser(Package):
url = "http://www.example.com/a-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
- version('2.0', '2.0_a_hash')
+ version('2.0', 'abcdef0123456789abcdef0123456789')
variant(
'exc_type',
diff --git a/var/spack/repos/builtin.mock/packages/requires-virtual/package.py b/var/spack/repos/builtin.mock/packages/requires-virtual/package.py
index 7c7428b258..b995f3ae3a 100644
--- a/var/spack/repos/builtin.mock/packages/requires-virtual/package.py
+++ b/var/spack/repos/builtin.mock/packages/requires-virtual/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,6 @@ class RequiresVirtual(Package):
homepage = "http://www.example.com"
url = "http://www.example.com/a-1.0.tar.gz"
- version('2.0', '2.0_a_hash')
+ version('2.0', 'abcdef0123456789abcdef0123456789')
depends_on('stuff')
diff --git a/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py b/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py
new file mode 100644
index 0000000000..88c80e9844
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/root-adds-virtual/package.py
@@ -0,0 +1,11 @@
+# Copyright 2013-2021 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 RootAddsVirtual(Package):
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/root-adds-virtual-1.0.tar.gz"
+
+ version('1.0', sha256='abcdef0123456789abcdef0123456789')
+
+ depends_on('middle-adds-virtual')
diff --git a/var/spack/repos/builtin.mock/packages/root/package.py b/var/spack/repos/builtin.mock/packages/root/package.py
new file mode 100644
index 0000000000..31fd31a4e0
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/root/package.py
@@ -0,0 +1,11 @@
+# Copyright 2013-2021 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 Root(Package):
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/root-1.0.tar.gz"
+
+ version('1.0', 'abcdef0123456789abcdef0123456789')
+
+ depends_on('gmt')
diff --git a/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py b/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py
index 8d65570899..68499245e2 100644
--- a/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py
+++ b/var/spack/repos/builtin.mock/packages/simple-inheritance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py
index 8b42a82b8d..8cb60c8d8e 100644
--- a/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py
+++ b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py
index de14faa51f..dcdfb47d60 100644
--- a/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py
+++ b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py b/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py
index fa6eca1527..15f6f58c42 100644
--- a/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class SinglevalueVariant(Package):
homepage = "http://www.llnl.gov"
url = "http://www.llnl.gov/mpileaks-1.0.tar.gz"
- version(1.0, 'foobarbaz')
+ version(1.0, '0123456789abcdef0123456789abcdef')
variant(
'fum',
diff --git a/var/spack/repos/builtin.mock/packages/splice-h/package.py b/var/spack/repos/builtin.mock/packages/splice-h/package.py
new file mode 100644
index 0000000000..79b91bc963
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/splice-h/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 SpliceH(AutotoolsPackage):
+ """Simple package with one optional dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/splice-h-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ variant('foo', default=False, description='nope')
+ variant('bar', default=False, description='nope')
+ variant('baz', default=False, description='nope')
+
+ depends_on('splice-z')
+ depends_on('splice-z+foo', when='+foo')
diff --git a/var/spack/repos/builtin.mock/packages/splice-t/package.py b/var/spack/repos/builtin.mock/packages/splice-t/package.py
new file mode 100644
index 0000000000..ec27fd28b6
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/splice-t/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 SpliceT(AutotoolsPackage):
+ """Simple package with one optional dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/splice-t-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('splice-h')
+ depends_on('splice-z')
diff --git a/var/spack/repos/builtin.mock/packages/splice-z/package.py b/var/spack/repos/builtin.mock/packages/splice-z/package.py
new file mode 100644
index 0000000000..e28d359b66
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/splice-z/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 SpliceZ(AutotoolsPackage):
+ """Simple package with one optional dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/splice-z-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ variant('foo', default=False, description='nope')
+ variant('bar', default=False, description='nope')
diff --git a/var/spack/repos/builtin.mock/packages/svn-test/package.py b/var/spack/repos/builtin.mock/packages/svn-test/package.py
index dec6d4a413..92fdf109c9 100644
--- a/var/spack/repos/builtin.mock/packages/svn-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/svn-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/svn-top-level/package.py b/var/spack/repos/builtin.mock/packages/svn-top-level/package.py
index 0da7f9656d..204beff171 100644
--- a/var/spack/repos/builtin.mock/packages/svn-top-level/package.py
+++ b/var/spack/repos/builtin.mock/packages/svn-top-level/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/test-dependency/package.py b/var/spack/repos/builtin.mock/packages/test-dependency/package.py
index 70302debd8..513c13aa41 100644
--- a/var/spack/repos/builtin.mock/packages/test-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/test-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/test-error/package.py b/var/spack/repos/builtin.mock/packages/test-error/package.py
index ce36ee7ca3..efce8bd0fb 100644
--- a/var/spack/repos/builtin.mock/packages/test-error/package.py
+++ b/var/spack/repos/builtin.mock/packages/test-error/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class TestError(Package):
homepage = "http://www.example.com/test-failure"
url = "http://www.test-failure.test/test-failure-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/test-fail/package.py b/var/spack/repos/builtin.mock/packages/test-fail/package.py
index 6587ef2bb9..79abfae85e 100644
--- a/var/spack/repos/builtin.mock/packages/test-fail/package.py
+++ b/var/spack/repos/builtin.mock/packages/test-fail/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class TestFail(Package):
homepage = "http://www.example.com/test-failure"
url = "http://www.test-failure.test/test-failure-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/transitive-conditional-virtual-dependency/package.py b/var/spack/repos/builtin.mock/packages/transitive-conditional-virtual-dependency/package.py
index 9b1b66df7f..4710ffc1bb 100644
--- a/var/spack/repos/builtin.mock/packages/transitive-conditional-virtual-dependency/package.py
+++ b/var/spack/repos/builtin.mock/packages/transitive-conditional-virtual-dependency/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py b/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py
index 8b2b2be70d..0f3a0426b4 100644
--- a/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/trigger-external-non-default-variant/package.py
@@ -7,6 +7,6 @@ class TriggerExternalNonDefaultVariant(Package):
homepage = "http://www.example.com"
url = "http://www.someurl.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
depends_on('external-non-default-variant')
diff --git a/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py b/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py
index 180eddcd94..0153bde87a 100644
--- a/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py
+++ b/var/spack/repos/builtin.mock/packages/trivial-install-test-package/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class TrivialInstallTestPackage(Package):
homepage = "http://www.example.com/trivial_install"
url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py b/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py
index 52fd3d99a6..bc02ff6d73 100644
--- a/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py
+++ b/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py b/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py
new file mode 100644
index 0000000000..5d7c3adf78
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/trivial-smoke-test/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 TrivialSmokeTest(Package):
+ """This package is a stub with trivial smoke test features."""
+ homepage = "http://www.example.com/trivial_test"
+ url = "http://www.unit-test-should-replace-this-url/trivial_test-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ test_source_filename = 'cached_file.in'
+
+ @run_before('install')
+ def create_extra_test_source(self):
+ mkdirp(self.install_test_root)
+ touch(join_path(self.install_test_root, self.test_source_filename))
+
+ @run_after('install')
+ def copy_test_sources(self):
+ self.cache_extra_test_sources([self.test_source_filename])
diff --git a/var/spack/repos/builtin.mock/packages/trivial-smoke-test/test/test_file.in b/var/spack/repos/builtin.mock/packages/trivial-smoke-test/test/test_file.in
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/trivial-smoke-test/test/test_file.in
diff --git a/var/spack/repos/builtin.mock/packages/unsat-provider/package.py b/var/spack/repos/builtin.mock/packages/unsat-provider/package.py
new file mode 100644
index 0000000000..c8aef3563e
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/unsat-provider/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2021 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 UnsatProvider(Package):
+ """This package has a dependency on a virtual that cannot be provided"""
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/v1.0.tgz"
+
+ version('1.0', sha256='0123456789abcdef0123456789abcdef')
+
+ variant('foo', default=True, description='')
+
+ provides('unsatvdep', when='+foo')
+ conflicts('+foo')
diff --git a/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py b/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py
new file mode 100644
index 0000000000..03682da7cf
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/unsat-virtual-dependency/package.py
@@ -0,0 +1,12 @@
+# Copyright 2013-2021 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 UnsatVirtualDependency(Package):
+ """This package has a dependency on a virtual that cannot be provided"""
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/v1.0.tgz"
+
+ version('1.0', sha256='0123456789abcdef0123456789abcdef')
+
+ depends_on('unsatvdep')
diff --git a/var/spack/repos/builtin.mock/packages/url-list-test/package.py b/var/spack/repos/builtin.mock/packages/url-list-test/package.py
index 02e1f4747f..60a4279fc2 100644
--- a/var/spack/repos/builtin.mock/packages/url-list-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/url-list-test/package.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack.paths
+from spack import *
class UrlListTest(Package):
@@ -17,10 +16,10 @@ class UrlListTest(Package):
list_url = 'file://' + web_data_path + '/index.html'
list_depth = 3
- version('0.0.0', 'abc000')
- version('1.0.0', 'abc100')
- version('3.0', 'abc30')
- version('4.5', 'abc45')
- version('2.0.0b2', 'abc200b2')
- version('3.0a1', 'abc30a1')
- version('4.5-rc5', 'abc45rc5')
+ version('0.0.0', '00000000000000000000000000000000')
+ version('1.0.0', '00000000000000000000000000000100')
+ version('3.0', '00000000000000000000000000000030')
+ version('4.5', '00000000000000000000000000000450')
+ version('2.0.0b2', '000000000000000000000000000200b2')
+ version('3.0a1', '000000000000000000000000000030a1')
+ version('4.5-rc5', '000000000000000000000000000045c5')
diff --git a/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py b/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py
index 5ceaabdfd9..c532539ee1 100644
--- a/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py
+++ b/var/spack/repos/builtin.mock/packages/url-only-override-with-gaps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,13 @@ from spack import *
class UrlOnlyOverrideWithGaps(Package):
homepage = 'http://www.example.com'
- version('1.0.5', 'abcdef0')
- version('1.0.0', 'bcdef0a', url='http://a.example.com/url_override-1.0.0.tar.gz')
- version('0.9.5', 'cdef0ab')
- version('0.9.0', 'def0abc', url='http://b.example.com/url_override-0.9.0.tar.gz')
- version('0.8.5', 'ef0abcd')
- version('0.8.1', 'f0abcde', url='http://c.example.com/url_override-0.8.1.tar.gz')
- version('0.7.0', '0abcdef')
+ version('1.0.5', 'abcdef0123456789abcdef0123456789')
+ version('1.0.0', 'bcdef0123456789abcdef0123456789a',
+ url='http://a.example.com/url_override-1.0.0.tar.gz')
+ version('0.9.5', 'cdef0123456789abcdef0123456789ab')
+ version('0.9.0', 'def0123456789abcdef0123456789abc',
+ url='http://b.example.com/url_override-0.9.0.tar.gz')
+ version('0.8.5', 'ef0123456789abcdef0123456789abcd')
+ version('0.8.1', 'f0123456789abcdef0123456789abcde',
+ url='http://c.example.com/url_override-0.8.1.tar.gz')
+ version('0.7.0', '0123456789abcdef0123456789abcdef')
diff --git a/var/spack/repos/builtin.mock/packages/url-only-override/package.py b/var/spack/repos/builtin.mock/packages/url-only-override/package.py
index fdc1584116..61c3b220d1 100644
--- a/var/spack/repos/builtin.mock/packages/url-only-override/package.py
+++ b/var/spack/repos/builtin.mock/packages/url-only-override/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,6 +9,6 @@ from spack import *
class UrlOnlyOverride(Package):
homepage = 'http://www.example.com'
- version('1.0.0', 'cxyzab', url='http://a.example.com/url_override-1.0.0.tar.gz')
- version('0.9.0', 'bcxyza', url='http://b.example.com/url_override-0.9.0.tar.gz')
- version('0.8.1', 'cxyzab', url='http://c.example.com/url_override-0.8.1.tar.gz')
+ version('1.0.0', '0123456789abcdef0123456789abcdef', url='http://a.example.com/url_override-1.0.0.tar.gz')
+ version('0.9.0', 'fedcba9876543210fedcba9876543210', url='http://b.example.com/url_override-0.9.0.tar.gz')
+ version('0.8.1', '0123456789abcdef0123456789abcdef', url='http://c.example.com/url_override-0.8.1.tar.gz')
diff --git a/var/spack/repos/builtin.mock/packages/url-test/package.py b/var/spack/repos/builtin.mock/packages/url-test/package.py
index 1deee5515d..53578d69dc 100644
--- a/var/spack/repos/builtin.mock/packages/url-test/package.py
+++ b/var/spack/repos/builtin.mock/packages/url-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/url_override/package.py b/var/spack/repos/builtin.mock/packages/url_override/package.py
index 52eaf47d48..fdbf31a002 100644
--- a/var/spack/repos/builtin.mock/packages/url_override/package.py
+++ b/var/spack/repos/builtin.mock/packages/url_override/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class UrlOverride(Package):
homepage = 'http://www.doesnotexist.org'
url = 'http://www.doesnotexist.org/url_override-1.0.0.tar.gz'
- version('1.0.0', 'cxyzab')
- version('0.9.0', 'bcxyza', url='http://www.anothersite.org/uo-0.9.0.tgz')
- version('0.8.1', 'cxyzab')
+ version('1.0.0', '0123456789abcdef0123456789abcdef')
+ version('0.9.0', 'fedcba9876543210fedcba9876543210', url='http://www.anothersite.org/uo-0.9.0.tgz')
+ version('0.8.1', '0123456789abcdef0123456789abcdef')
diff --git a/var/spack/repos/builtin.mock/packages/v1-provider/package.py b/var/spack/repos/builtin.mock/packages/v1-provider/package.py
index 46b7a99ac9..e4d2fae88e 100644
--- a/var/spack/repos/builtin.mock/packages/v1-provider/package.py
+++ b/var/spack/repos/builtin.mock/packages/v1-provider/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-a/package.py b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-a/package.py
index f2687d6043..4b0bb90e99 100644
--- a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-a/package.py
+++ b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-a/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-b/package.py b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-b/package.py
index 7660a42a8e..4c0fceae18 100644
--- a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-b/package.py
+++ b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-b/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-root/package.py b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-root/package.py
index c6ea84b8b2..f7d12261ba 100644
--- a/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-root/package.py
+++ b/var/spack/repos/builtin.mock/packages/variant-on-dependency-condition-root/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/vdefault-or-external-root/package.py b/var/spack/repos/builtin.mock/packages/vdefault-or-external-root/package.py
index 49011fc458..4413f74e60 100644
--- a/var/spack/repos/builtin.mock/packages/vdefault-or-external-root/package.py
+++ b/var/spack/repos/builtin.mock/packages/vdefault-or-external-root/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/vdefault-or-external/package.py b/var/spack/repos/builtin.mock/packages/vdefault-or-external/package.py
index 80c674917e..975bfd9d22 100644
--- a/var/spack/repos/builtin.mock/packages/vdefault-or-external/package.py
+++ b/var/spack/repos/builtin.mock/packages/vdefault-or-external/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py b/var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py
new file mode 100644
index 0000000000..672e4e64c4
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/version-test-dependency-preferred/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2021 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 VersionTestDependencyPreferred(AutotoolsPackage):
+ """Dependency of version-test-pkg, which has a multi-valued
+ variant with two default values (a very low priority optimization
+ criterion for clingo is to maximize their number)
+ """
+ homepage = "http://www.spack.org"
+ url = "http://www.spack.org/downloads/xz-1.0.tar.gz"
+
+ version('5.2.5', sha256='5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df')
+
+ variant('libs', default='shared,static', values=('shared', 'static'),
+ multi=True, description='Build shared libs, static libs or both')
diff --git a/var/spack/repos/builtin.mock/packages/version-test-pkg/package.py b/var/spack/repos/builtin.mock/packages/version-test-pkg/package.py
new file mode 100644
index 0000000000..5d2cd4b5cf
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/version-test-pkg/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 VersionTestPkg(AutotoolsPackage):
+ """Mock AutotoolsPackage to check proper version
+ selection by clingo.
+ """
+ homepage = "https://www.gnu.org/software/make/"
+ url = "http://www.example.com/libtool-version-1.0.tar.gz"
+
+ version('develop', git='https://git.savannah.gnu.org/git/libtool.git',
+ branch='master', submodules=True)
+ version('2.4.6', sha256='e40b8f018c1da64edd1cc9a6fce5fa63b2e707e404e20cad91fbae337c98a5b7')
+
+ depends_on(
+ 'version-test-dependency-preferred',
+ when='@develop'
+ )
diff --git a/var/spack/repos/builtin.mock/packages/version-test-root/package.py b/var/spack/repos/builtin.mock/packages/version-test-root/package.py
new file mode 100644
index 0000000000..e91a868740
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/version-test-root/package.py
@@ -0,0 +1,11 @@
+# Copyright 2013-2021 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 VersionTestRoot(AutotoolsPackage):
+ """Uses version-test-pkg, as a build dependency"""
+ homepage = "http://www.spack.org"
+ url = "http://www.spack.org/downloads/aml-1.0.tar.gz"
+
+ version('0.1.0', sha256='cc89a8768693f1f11539378b21cdca9f0ce3fc5cb564f9b3e4154a051dcea69b')
+ depends_on('version-test-pkg', type='build')
diff --git a/var/spack/repos/builtin.mock/packages/when-directives-false/package.py b/var/spack/repos/builtin.mock/packages/when-directives-false/package.py
index f701e753de..eec625997b 100644
--- a/var/spack/repos/builtin.mock/packages/when-directives-false/package.py
+++ b/var/spack/repos/builtin.mock/packages/when-directives-false/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/when-directives-true/package.py b/var/spack/repos/builtin.mock/packages/when-directives-true/package.py
index 6f8f7ed7c1..0003f7ed03 100644
--- a/var/spack/repos/builtin.mock/packages/when-directives-true/package.py
+++ b/var/spack/repos/builtin.mock/packages/when-directives-true/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin.mock/packages/with-constraint-met/package.py b/var/spack/repos/builtin.mock/packages/with-constraint-met/package.py
new file mode 100644
index 0000000000..00c786f0b9
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/with-constraint-met/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 WithConstraintMet(Package):
+ """Package that tests True when specs on directives."""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/example-1.0.tar.gz"
+
+ version('2.0', '0123456789abcdef0123456789abcdef')
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ with when('@1.0'):
+ depends_on('b')
+ conflicts('%gcc')
diff --git a/var/spack/repos/builtin.mock/packages/zlib/package.py b/var/spack/repos/builtin.mock/packages/zlib/package.py
new file mode 100644
index 0000000000..1b084383c6
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/zlib/package.py
@@ -0,0 +1,55 @@
+# Copyright 2013-2021 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)
+
+
+# Although zlib comes with a configure script, it does not use Autotools
+# The AutotoolsPackage causes zlib to fail to build with PGI
+class Zlib(Package):
+ """A free, general-purpose, legally unencumbered lossless
+ data-compression library.
+ """
+
+ homepage = "http://zlib.net"
+ # URL must remain http:// so Spack can bootstrap curl
+ url = "http://zlib.net/fossils/zlib-1.2.11.tar.gz"
+
+ version('1.2.11', sha256='c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1')
+ # Due to the bug fixes, any installations of 1.2.9 or 1.2.10 should be
+ # immediately replaced with 1.2.11.
+ version('1.2.8', sha256='36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d')
+ version('1.2.3', sha256='1795c7d067a43174113fdf03447532f373e1c6c57c08d61d9e4e9be5e244b05e')
+
+ variant('pic', default=True,
+ description='Produce position-independent code (for shared libs)')
+ variant('shared', default=True,
+ description='Enables the build of shared libraries.')
+ variant('optimize', default=True,
+ description='Enable -O2 for a more optimized lib')
+
+ patch('w_patch.patch', when="@1.2.11%cce")
+
+ @property
+ def libs(self):
+ shared = '+shared' in self.spec
+ return find_libraries(
+ ['libz'], root=self.prefix, recursive=True, shared=shared
+ )
+
+ def setup_build_environment(self, env):
+ if '+pic' in self.spec:
+ env.append_flags('CFLAGS', self.compiler.cc_pic_flag)
+ if '+optimize' in self.spec:
+ env.append_flags('CFLAGS', '-O2')
+
+ def install(self, spec, prefix):
+ config_args = []
+ if '~shared' in spec:
+ config_args.append('--static')
+ configure('--prefix={0}'.format(prefix), *config_args)
+
+ make()
+ if self.run_tests:
+ make('check')
+ make('install')
diff --git a/var/spack/repos/builtin.mock/packages/zlib/w_patch.patch b/var/spack/repos/builtin.mock/packages/zlib/w_patch.patch
new file mode 100644
index 0000000000..756cff6a78
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/zlib/w_patch.patch
@@ -0,0 +1,13 @@
+diff --git a/configure b/configure
+index e974d1f..ed26a63 100755
+--- a/configure
++++ b/configure
+@@ -409,7 +409,7 @@ EOF
+ if test $shared -eq 1; then
+ echo Checking for shared library support... | tee -a configure.log
+ # we must test in two steps (cc then ld), required at least on SunOS 4.x
+- if try $CC -w -c $SFLAGS $test.c &&
++ if try $CC -c $SFLAGS $test.c &&
+ try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then
+ echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log
+ elif test -z "$old_cc" -a -z "$old_cflags"; then
diff --git a/var/spack/repos/builtin.mock/packages/zmpi/package.py b/var/spack/repos/builtin.mock/packages/zmpi/package.py
index c9caa9a20f..e50bc1ab9d 100644
--- a/var/spack/repos/builtin.mock/packages/zmpi/package.py
+++ b/var/spack/repos/builtin.mock/packages/zmpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Zmpi(Package):
homepage = "http://www.spack-fake-zmpi.org"
url = "http://www.spack-fake-zmpi.org/downloads/zmpi-1.0.tar.gz"
- version('1.0', 'foobarbaz')
+ version('1.0', '0123456789abcdef0123456789abcdef')
provides('mpi@:10.0')
depends_on('fake')
diff --git a/var/spack/repos/builtin/packages/3dtk/homebrew.patch b/var/spack/repos/builtin/packages/3dtk/homebrew.patch
new file mode 100644
index 0000000000..8a30009da0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/3dtk/homebrew.patch
@@ -0,0 +1,18 @@
+--- a/src/show/CMakeLists.txt 2021-01-14 16:08:27.000000000 -0600
++++ b/src/show/CMakeLists.txt 2021-01-14 20:42:24.000000000 -0600
+@@ -9,13 +9,8 @@
+ find_package(OpenGL REQUIRED)
+ find_package(GLUT REQUIRED)
+ add_definitions(-DWITH_OPENGL)
+- if(APPLE)
+- include_directories(/usr/local/Cellar/glui/2.37/)
+- set(SHOW_LIBS ${SHOW_LIBS} ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES} /usr/local/Cellar/glui/2.37/lib/libglui.a CACHE INTERNAL "")
+- else()
+- include_directories(${PROJECT_SOURCE_DIR}/3rdparty/glui-2.36/include/)
+- set(SHOW_LIBS ${SHOW_LIBS} ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES} glui CACHE INTERNAL "")
+- endif()
++ include_directories(${PROJECT_SOURCE_DIR}/3rdparty/glui-2.36/include/)
++ set(SHOW_LIBS ${SHOW_LIBS} ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES} glui CACHE INTERNAL "")
+ if(WITH_GLEE)
+ message(STATUS "Using opengl extensions")
+ set(SHOW_LIBS ${SHOW_LIBS} glee CACHE INTERNAL "")
diff --git a/var/spack/repos/builtin/packages/3dtk/package.py b/var/spack/repos/builtin/packages/3dtk/package.py
new file mode 100644
index 0000000000..a205bde42c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/3dtk/package.py
@@ -0,0 +1,92 @@
+# Copyright 2013-2021 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 _3dtk(CMakePackage):
+ """The 3D Toolkit provides algorithms and methods to process 3D point
+ clouds.
+
+ It includes automatic high-accurate registration (6D simultaneous
+ localization and mapping, 6D SLAM) and other tools, e.g., a fast 3D viewer,
+ plane extraction software, etc. Several file formats for the point clouds
+ are natively supported, new formats can be implemented easily."""
+
+ homepage = "http://slam6d.sourceforge.net/"
+ # Repo seems to be in the process of switching to git:
+ # https://github.com/3DTK/3DTK
+
+ version('trunk', svn='https://svn.code.sf.net/p/slam6d/code/trunk', preferred=True)
+ version('1.2', svn='https://svn.code.sf.net/p/slam6d/code/branches/3dtk-release-1.2')
+
+ variant('cgal', default=False, description='Compile with CGAL support')
+ variant('opengl', default=True, description='Compile with OpenGL support')
+ variant('opencv', default=True, description='Compile with OpenCV support')
+ variant('compact_octree', default=False, description='Whether to use the compact octree display')
+ variant('cuda', default=False, description='Whether to build CUDA accelerated collision detection tools')
+ variant('openmp', default=False, description='Whether to use parallel processing capabilities of OPENMP')
+
+ conflicts('~opencv', when='platform=darwin')
+ conflicts('+compact_octree', when='~opengl')
+
+ generator = 'Ninja'
+
+ depends_on('cmake@3.5:', when='@trunk', type='build')
+ depends_on('cmake@2.6.1:2.999', when='@1.2', type='build')
+ depends_on('ninja', type='build')
+ depends_on('boost+serialization+graph+regex+filesystem+system+thread+date_time+program_options')
+ depends_on('suite-sparse')
+ depends_on('zlib')
+ depends_on('libpng')
+ depends_on('eigen')
+ depends_on('cgal', when='+cgal')
+ depends_on('gl', when='+opengl')
+ depends_on('glew', when='+opengl')
+ depends_on('freeglut', when='+opengl')
+ depends_on('opencv+calib3d+contrib+core+features2d+highgui+imgcodecs+imgproc+ml+videoio', when='+opencv')
+ # Because concretizer is broken
+ depends_on('opencv+flann', when='+opencv')
+ depends_on('cuda', when='+cuda')
+
+ # TODO: add Spack packages for these instead of using vendored copies
+ # depends_on('ann')
+ # depends_on('newmat')
+
+ patch('homebrew.patch', when='platform=darwin')
+
+ def setup_build_environment(self, env):
+ env.prepend_path('CPATH', self.spec['eigen'].prefix.include)
+
+ def cmake_args(self):
+ return [
+ self.define_from_variant('WITH_CGAL', 'cgal'),
+ self.define('WITH_GMP', False),
+ self.define('WITH_LIBZIP', False),
+ self.define_from_variant('WITH_OPENGL', 'opengl'),
+ self.define_from_variant('WITH_OPENCV', 'opencv'),
+ self.define('WITH_QT', False),
+ self.define('WITH_GLFW', False),
+ self.define('WITH_FTGL', False),
+ self.define('WITH_XMLRPC', False),
+ self.define('WITH_LIBCONFIG', False),
+ self.define('WITH_ROS', False),
+ self.define('WITH_PYTHON', False),
+ self.define('WITH_WXWIDGETS', False),
+ self.define_from_variant('WITH_COMPACT_OCTREE', 'compact_octree'),
+ self.define('WITH_GLEE', False),
+ self.define('WITH_LASLIB', False),
+ self.define('WITH_E57', False),
+ self.define('WITH_3DMOUSE', False),
+ self.define_from_variant('WITH_CUDA', 'cuda'),
+ self.define('WITH_RIVLIB', False),
+ self.define('WITH_MICROEPSILONLIB', False),
+ self.define_from_variant('WITH_OPENMP', 'openmp'),
+ self.define('WITH_METRICS', False),
+ self.define('WITH_ADDONS', False),
+ ]
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/3proxy/package.py b/var/spack/repos/builtin/packages/3proxy/package.py
index abad7756c1..ccd9116b2d 100644
--- a/var/spack/repos/builtin/packages/3proxy/package.py
+++ b/var/spack/repos/builtin/packages/3proxy/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
+from spack import *
+
class _3proxy(MakefilePackage):
"""3proxy - tiny free proxy server"""
diff --git a/var/spack/repos/builtin/packages/abduco/package.py b/var/spack/repos/builtin/packages/abduco/package.py
index 0c75a1a0d5..cf548b7afc 100644
--- a/var/spack/repos/builtin/packages/abduco/package.py
+++ b/var/spack/repos/builtin/packages/abduco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/abi-compliance-checker/package.py b/var/spack/repos/builtin/packages/abi-compliance-checker/package.py
index 6e6b919bb3..61daa12782 100644
--- a/var/spack/repos/builtin/packages/abi-compliance-checker/package.py
+++ b/var/spack/repos/builtin/packages/abi-compliance-checker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/abi-dumper/package.py b/var/spack/repos/builtin/packages/abi-dumper/package.py
index 73fbba2aa3..34c533e387 100644
--- a/var/spack/repos/builtin/packages/abi-dumper/package.py
+++ b/var/spack/repos/builtin/packages/abi-dumper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,11 @@ class AbiDumper(MakefilePackage):
DWARF debug info."""
homepage = "https://github.com/lvc/abi-dumper"
- url = "https://github.com/lvc/abi-dumper/archive/1.1.tar.gz"
+ url = "https://github.com/lvc/abi-dumper/archive/1.2.tar.gz"
- version('1.1', sha256='ef63201368e0d76a29d2f7aed98c488f6fb71898126762d65baed1e762988083')
- version('1.0', sha256='bfa0189a172fa788afc603b1ae675808a57556a77a008e4af8f643d396c34bbb')
+ version('1.2', sha256='8a9858c91b4e9222c89b676d59422053ad560fa005a39443053568049bd4d27e')
+ version('1.1', sha256='ef63201368e0d76a29d2f7aed98c488f6fb71898126762d65baed1e762988083')
+ version('1.0', sha256='bfa0189a172fa788afc603b1ae675808a57556a77a008e4af8f643d396c34bbb')
version('0.99.19', sha256='6bbc35795839a04523d9e7bdb07806b9a661e17d8be0e755c99e4235805d4528')
depends_on('perl@5:')
diff --git a/var/spack/repos/builtin/packages/abinit/fix_for_fujitsu.patch b/var/spack/repos/builtin/packages/abinit/fix_for_fujitsu.patch
new file mode 100644
index 0000000000..bc179c7cd2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/abinit/fix_for_fujitsu.patch
@@ -0,0 +1,352 @@
+diff -uprN spack-src.org/configure spack-src/configure
+--- spack-src.org/configure 2021-03-11 13:52:52.000000000 +0900
++++ spack-src/configure 2021-03-11 14:14:36.000000000 +0900
+@@ -14183,7 +14183,10 @@ $as_echo "#define FC_OPEN64 1" >>confdef
+
+
+ fc_info_string=`${FC} -V 2>/dev/null | head -n 1`
+- abi_result=`echo "${fc_info_string}" | grep '^Fujitsu Fortran'`
++ if test "${fc_info_string}" = ""; then
++ fc_info_string=`${FC} -V 2>&1 | head -n 1`
++ fi
++ abi_result=`echo "${fc_info_string}" | grep 'Fujitsu Fortran'`
+ if test "${abi_result}" = ""; then
+ abi_result="no"
+ fc_info_string=""
+@@ -14194,9 +14197,17 @@ $as_echo "#define FC_OPEN64 1" >>confdef
+ $as_echo "#define FC_FUJITSU 1" >>confdefs.h
+
+ abi_fc_vendor="fujitsu"
+- abi_fc_version=`echo "${abi_result}" | sed -e 's/.*Driver //;s/ .*//'`
++ abi_fc_version=`echo "${abi_result}" | sed -e 's/.*Driver //'`
+ if test "${abi_fc_version}" = "${abi_result}"; then
+ abi_fc_version="unknown"
++ else
++ abi_fc_version=`echo "${abi_result}" | sed -e 's/.*Driver //;s/ .*//'`
++ fi
++ if test "${abi_fc_version}" = "unknown"; then
++ abi_fc_version=`echo "${abi_result}" | sed -e 's/.*Compiler //;s/ .*//'`
++ if test "${abi_fc_version}" = "${abi_result}"; then
++ abi_fc_version="unknown"
++ fi
+ fi
+ abi_result="yes"
+ fi
+@@ -14655,6 +14666,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: $
+ # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH,
+ # LIBRARY_PATH; skip all such settings.
+ ac_fc_v_output=`eval $ac_link 5>&1 2>&1 |
++ sed -r "s/(\-L)(\/[^ ]+)+(\/bin\/\.\.\/lib64\/nofjobj)//g" |
+ sed '/^Driving:/d; /^Configured with:/d;
+ '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"`
+ $as_echo "$ac_fc_v_output" >&5
+@@ -16392,15 +16404,29 @@ $as_echo_n "checking which fc hints to a
+ ;;
+ fujitsu)
+ abi_fc_vendor_hnt="fujitsu"
+- abi_fc_version_hnt="default"
+ abi_sys_spec_hnt="default"
+- FCFLAGS_FIXEDFORM='-Fixed -X7'
+- FCFLAGS_FREEFORM='-Free -X9'
+- FCFLAGS_MODDIR='-M $(abinit_moddir)'
+- FCFLAGS_HINTS='-Am -Ee -Ep'
+- abi_fc_wrap='yes'
+- FCFLAGS_OPENMP='--openmp'
+- FCFLAGS_PIC='-K PIC'
++ case "${abi_fc_version}" in
++ 4.[0-9]*)
++ abi_fc_version_hnt="4.x"
++ FCFLAGS_FIXEDFORM='-Fixed -X7'
++ FCFLAGS_FREEFORM='-Free -X9'
++ FCFLAGS_MODDIR='-M $(abinit_moddir)'
++ FCFLAGS_HINTS=''
++ abi_fc_wrap='no'
++ FCFLAGS_OPENMP='-Kopenmp'
++ FCFLAGS_PIC='-K PIC'
++ ;;
++ *)
++ abi_fc_version_hnt="default"
++ FCFLAGS_FIXEDFORM='-Fixed -X7'
++ FCFLAGS_FREEFORM='-Free -X9'
++ FCFLAGS_MODDIR='-M $(abinit_moddir)'
++ FCFLAGS_HINTS='-Am -Ee -Ep'
++ abi_fc_wrap='yes'
++ FCFLAGS_OPENMP='--openmp'
++ FCFLAGS_PIC='-K PIC'
++ ;;
++ esac # [case: abi_fc_version, indent: 2, item: True]
+ ;;
+ pathscale)
+ abi_fc_vendor_hnt="pathscale"
+@@ -18085,22 +18111,43 @@ $as_echo_n "checking which fc optimizati
+ ;;
+ fujitsu)
+ abi_fc_vendor_opt="fujitsu"
+- abi_fc_version_opt="default"
+ abi_cpu_spec_opt="default"
+- case "${enable_optim}" in
+- aggressive)
+- enable_optim_opt="aggressive"
+- FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
+- ;;
+- safe)
+- enable_optim_opt="safe"
+- FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
++ case "${abi_fc_version}" in
++ 4.[0-9]*)
++ abi_fc_version_opt="4.x"
++ case "${enable_optim}" in
++ aggressive)
++ enable_optim_opt="aggressive"
++ FCFLAGS_OPTIM="-Kfast -Koptmsg=2 -Nlst=t"
++ ;;
++ safe)
++ enable_optim_opt="safe"
++ FCFLAGS_OPTIM="-O2 -Koptmsg=2 -Nlst=t"
++ ;;
++ standard)
++ enable_optim_opt="standard"
++ FCFLAGS_OPTIM="-O2 -Koptmsg=2 -Nlst=t"
++ ;;
++ esac # [case: enable_optim, indent: 4, item: True]
+ ;;
+- standard)
+- enable_optim_opt="standard"
+- FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
++ *)
++ abi_fc_version_opt="default"
++ case "${enable_optim}" in
++ aggressive)
++ enable_optim_opt="aggressive"
++ FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
++ ;;
++ safe)
++ enable_optim_opt="safe"
++ FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
++ ;;
++ standard)
++ enable_optim_opt="standard"
++ FCFLAGS_OPTIM="-Of -X9 -Ps -Wv,-md"
++ ;;
++ esac # [case: enable_optim, indent: 4, item: True]
+ ;;
+- esac # [case: enable_optim, indent: 2, item: True]
++ esac # [case: abi_fc_version, indent: 2, item: True]
+ ;;
+ pathscale)
+ abi_fc_vendor_opt="pathscale"
+diff -uprN spack-src.org/src/43_wvl_wrappers/m_abi2big.F90 spack-src/src/43_wvl_wrappers/m_abi2big.F90
+--- spack-src.org/src/43_wvl_wrappers/m_abi2big.F90 2021-03-11 13:52:54.000000000 +0900
++++ spack-src/src/43_wvl_wrappers/m_abi2big.F90 2021-03-11 14:06:53.000000000 +0900
+@@ -1333,10 +1333,10 @@ subroutine wvl_setngfft(me_wvl, mgfft, n
+
+ !Arguments ------------------------------------
+ !scalars
+- integer, intent(out) :: mgfft, nfft
++ integer, intent(inout) :: mgfft, nfft
+ integer, intent(in) :: n1i, n2i, n3i,n3d, nproc_wvl, me_wvl
+ !arrays
+- integer, intent(out) :: ngfft(18)
++ integer, intent(inout) :: ngfft(18)
+
+ !Local variables-------------------------------
+ !scalars
+diff -uprN spack-src.org/src/43_wvl_wrappers/m_wvl_denspot.F90 spack-src/src/43_wvl_wrappers/m_wvl_denspot.F90
+--- spack-src.org/src/43_wvl_wrappers/m_wvl_denspot.F90 2021-03-11 13:52:54.000000000 +0900
++++ spack-src/src/43_wvl_wrappers/m_wvl_denspot.F90 2021-03-11 14:06:53.000000000 +0900
+@@ -96,7 +96,7 @@ subroutine wvl_denspot_set(den,gth_param
+ real(dp), intent(in) :: rprimd(3, 3)
+ real(dp), intent(in) :: wvl_frmult,wvl_crmult
+ real(dp), intent(inout) :: xred(3,natom)
+- type(wvl_denspot_type), intent(out) :: den
++ type(wvl_denspot_type), intent(inout) :: den
+ type(wvl_internal_type),intent(in) :: wvl
+ type(pseudopotential_gth_type),intent(in)::gth_params
+
+diff -uprN spack-src.org/src/43_wvl_wrappers/m_wvl_wfs.F90 spack-src/src/43_wvl_wrappers/m_wvl_wfs.F90
+--- spack-src.org/src/43_wvl_wrappers/m_wvl_wfs.F90 2021-03-11 13:52:54.000000000 +0900
++++ spack-src/src/43_wvl_wrappers/m_wvl_wfs.F90 2021-03-11 14:06:53.000000000 +0900
+@@ -103,7 +103,7 @@ subroutine wvl_wfs_set(alphadiis, spinma
+ integer, intent(in) :: natom, nkpt, nsppol, nspinor, nband, nwfshist,me,nproc
+ real(dp), intent(in) :: spinmagntarget, wvl_crmult, wvl_frmult, alphadiis
+ type(pseudopotential_type),intent(in) :: psps
+- type(wvl_wf_type),intent(out) :: wfs
++ type(wvl_wf_type),intent(inout) :: wfs
+ type(wvl_internal_type), intent(in) :: wvl
+ !arrays
+ real(dp), intent(in) :: kpt(3,nkpt)
+diff -uprN spack-src.org/src/52_fft_mpi_noabirule/m_fftw3.F90 spack-src/src/52_fft_mpi_noabirule/m_fftw3.F90
+--- spack-src.org/src/52_fft_mpi_noabirule/m_fftw3.F90 2021-03-11 13:52:52.000000000 +0900
++++ spack-src/src/52_fft_mpi_noabirule/m_fftw3.F90 2021-03-11 14:06:53.000000000 +0900
+@@ -4588,7 +4588,7 @@ subroutine fftw3_mpiback_wf(cplexwf,ndat
+ integer,intent(in) :: cplexwf,ndat,n1,n2,n3,nd1,nd2,nd3proc
+ integer,intent(in) :: max1,max2,max3,m1,m2,m3,md1,md2proc,md3,comm_fft
+ real(dp),intent(in) :: zf(2,md1,md3,md2proc,ndat)
+- real(dp),intent(out) :: zr(2,nd1,nd2,nd3proc,ndat)
++ real(dp),intent(inout) :: zr(2,nd1,nd2,nd3proc,ndat)
+
+ #ifdef HAVE_FFT_FFTW3
+ !Local variables-------------------------------
+@@ -4954,7 +4954,7 @@ subroutine fftw3_mpiforw_wf(cplexwf,ndat
+ integer,intent(in) :: max1,max2,max3,m1,m2,m3,md1,md2proc,md3,comm_fft
+ !arrays
+ real(dp),intent(inout) :: zr(2,nd1,nd2,nd3proc,ndat)
+- real(dp),intent(out) :: zf(2,md1,md3,md2proc,ndat)
++ real(dp),intent(inout) :: zf(2,md1,md3,md2proc,ndat)
+
+ !Local variables-------------------------------
+ !scalars
+@@ -5311,7 +5311,7 @@ subroutine fftw3_mpiback(cplex,ndat,n1,n
+ ! real space input
+ integer,intent(in) :: cplex,ndat,n1,n2,n3,nd1,nd2,nd3,nd1eff,nd2proc,nd3proc,option,comm_fft
+ real(dp),intent(in) :: zf(2,nd1,nd3,nd2proc,ndat)
+- real(dp),intent(out) :: zr(2,nd1eff,nd2,nd3proc,ndat)
++ real(dp),intent(inout) :: zr(2,nd1eff,nd2,nd3proc,ndat)
+
+ !Local variables-------------------------------
+ !scalaras
+@@ -5621,7 +5621,7 @@ subroutine fftw3_mpiforw(cplex,ndat,n1,n
+ integer,intent(in) :: ndat,n1,n2,n3,nd1,nd2,nd3,nd1eff,nd2proc,nd3proc,option
+ !arrays
+ real(dp),intent(in) :: zr(2,nd1eff,nd2,nd3proc,ndat)
+- real(dp),intent(out) :: zf(2,nd1,nd3,nd2proc,ndat)
++ real(dp),intent(inout) :: zf(2,nd1,nd3,nd2proc,ndat)
+
+ !Local variables-------------------------------
+ !scalars
+@@ -6839,7 +6839,7 @@ subroutine fftw3_mpiback_manywf(cplexwf,
+ integer,intent(in) :: cplexwf,ndat,n1,n2,n3,nd1,nd2,nd3proc
+ integer,intent(in) :: max1,max2,max3,m1,m2,m3,md1,md2proc,md3,comm_fft
+ real(dp),intent(in) :: zf(2,md1,md3,md2proc,ndat)
+- real(dp),intent(out) :: zr(2,nd1,nd2,nd3proc,ndat)
++ real(dp),intent(inout) :: zr(2,nd1,nd2,nd3proc,ndat)
+
+ #ifdef HAVE_FFT_FFTW3
+ !Local variables-------------------------------
+@@ -7202,7 +7202,7 @@ subroutine fftw3_mpiforw_manywf(cplexwf,
+ integer,intent(in) :: max1,max2,max3,m1,m2,m3,md1,md2proc,md3,comm_fft
+ !arrays
+ real(dp),intent(inout) :: zr(2,nd1,nd2,nd3proc,ndat)
+- real(dp),intent(out) :: zf(2,md1,md3,md2proc,ndat)
++ real(dp),intent(inout) :: zf(2,md1,md3,md2proc,ndat)
+
+ !Local variables-------------------------------
+ !scalars
+diff -uprN spack-src.org/src/62_poisson/m_psolver.F90 spack-src/src/62_poisson/m_psolver.F90
+--- spack-src.org/src/62_poisson/m_psolver.F90 2021-03-11 13:52:55.000000000 +0900
++++ spack-src/src/62_poisson/m_psolver.F90 2021-03-11 14:06:53.000000000 +0900
+@@ -118,7 +118,7 @@ subroutine psolver_rhohxc(enhartr, enxc,
+ integer,intent(in) :: usexcnhat,usepaw,xclevel
+ real(dp),intent(in) :: rprimd(3,3)
+ real(dp), intent(in) :: xc_denpos
+- real(dp), intent(out) :: enxc, envxc, enhartr, vxcavg
++ real(dp), intent(inout) :: enxc, envxc, enhartr, vxcavg
+ type(mpi_type), intent(in) :: mpi_enreg
+ type(wvl_internal_type), intent(in) :: wvl
+ type(wvl_denspot_type), intent(inout) :: wvl_den
+@@ -128,8 +128,8 @@ subroutine psolver_rhohxc(enhartr, enxc,
+ real(dp),intent(in) :: xccc3d(n3xccc)
+ real(dp),intent(in) :: nhat(nfft,nspden*nhatdim)
+ real(dp),intent(inout) :: rhor(nfft, nspden)
+- real(dp),intent(out) :: vhartr(nfft)
+- real(dp),intent(out) :: vxc(nfft, nspden)
++ real(dp),intent(inout) :: vhartr(nfft)
++ real(dp),intent(inout) :: vxc(nfft, nspden)
+
+ !Local variables-------------------------------
+ #if defined HAVE_BIGDFT
+@@ -577,12 +577,12 @@ subroutine psolver_hartree(enhartr, hgri
+ !Arguments ------------------------------------
+ !scalars
+ integer, intent(in) :: nfft, nspden, icoulomb, usewvl, mpi_comm, me, nproc, nscforder
+- real(dp), intent(out) :: enhartr
++ real(dp), intent(inout) :: enhartr
+ !arrays
+ integer, intent(in) :: ngfft(3)
+ real(dp),intent(in) :: hgrid(3)
+ real(dp),intent(in) :: rhor(nfft,nspden)
+- real(dp),intent(out) :: vhartr(nfft)
++ real(dp),intent(inout) :: vhartr(nfft)
+
+ !Local variables-------------------------------
+ #if defined HAVE_BIGDFT
+diff -uprN spack-src.org/src/62_wvl_wfs/m_wvl_psi.F90 spack-src/src/62_wvl_wfs/m_wvl_psi.F90
+--- spack-src.org/src/62_wvl_wfs/m_wvl_psi.F90 2021-03-11 13:52:54.000000000 +0900
++++ spack-src/src/62_wvl_wfs/m_wvl_psi.F90 2021-03-11 14:06:53.000000000 +0900
+@@ -248,16 +248,16 @@ subroutine wvl_psitohpsi(alphamix,eexctX
+ !scalars
+ integer, intent(in) :: me, nproc, itrp, iter, iscf, natom, nfft, nspden
+ real(dp), intent(in) :: alphamix
+- real(dp), intent(out) :: rpnrm
++ real(dp), intent(inout) :: rpnrm
+ logical, intent(in) :: scf
+ logical, intent(in) :: wvlbigdft
+ type(wvl_data), intent(inout) :: wvl
+ real(dp), intent(inout) :: eexctX,eSIC_DC,ehart,eexcu,vexcu, ekin_sum, epot_sum, eproj_sum
+- real(dp), dimension(6), intent(out) :: xcstr
++ real(dp), dimension(6), intent(inout) :: xcstr
+ real(dp), intent(inout) :: xcart(3, natom)
+ !arrays
+- real(dp),intent(out), optional :: vxc(nfft,nspden)
+- real(dp),intent(out), optional :: vtrial(nfft,nspden)
++ real(dp),intent(inout), optional :: vxc(nfft,nspden)
++ real(dp),intent(inout), optional :: vtrial(nfft,nspden)
+
+ !Local variables-------------------------------
+ !scalars
+@@ -482,7 +482,7 @@ subroutine wvl_tail_corrections(dtset, e
+
+ !Arguments ------------------------------------
+ !scalars
+- real(dp),intent(out) :: etotal
++ real(dp),intent(inout) :: etotal
+ type(MPI_type),intent(in) :: mpi_enreg
+ type(dataset_type),intent(in) :: dtset
+ type(energies_type),intent(inout) :: energies
+diff -uprN spack-src.org/src/67_common/m_mklocl_realspace.F90 spack-src/src/67_common/m_mklocl_realspace.F90
+--- spack-src.org/src/67_common/m_mklocl_realspace.F90 2021-03-11 13:52:53.000000000 +0900
++++ spack-src/src/67_common/m_mklocl_realspace.F90 2021-03-11 14:06:53.000000000 +0900
+@@ -1703,7 +1703,7 @@ subroutine local_forces_wvl(iproc,natom,
+ !arrays
+ real(dp),intent(in) :: rxyz(3,natom)
+ real(dp),dimension(*),intent(in) :: rho,pot
+- real(dp),intent(out) :: floc(3,natom)
++ real(dp),intent(inout) :: floc(3,natom)
+
+ !Local variables -------------------------
+ #if defined HAVE_BIGDFT
+diff -uprN spack-src.org/src/67_common/mkcore_wvl.F90 spack-src/src/67_common/mkcore_wvl.F90
+--- spack-src.org/src/67_common/mkcore_wvl.F90 2021-03-11 13:52:53.000000000 +0900
++++ spack-src/src/67_common/mkcore_wvl.F90 2021-03-11 14:06:53.000000000 +0900
+@@ -138,7 +138,7 @@ subroutine mkcore_wvl(atindx1,corstr,grx
+ integer,intent(in) :: atindx1(natom),nattyp(ntypat)
+ real(dp),intent(in) :: rprimd(3,3),xccc1d(n1xccc,6,ntypat),xcccrc(ntypat),xred(3,natom)
+ real(dp),intent(in),target :: vxc(nfft,nspden)
+- real(dp),intent(out) :: corstr(6),grxc(3,natom)
++ real(dp),intent(inout) :: corstr(6),grxc(3,natom)
+ real(dp),intent(inout) :: xccc3d(n3xccc)
+ type(pawrad_type),intent(in) :: pawrad(:)
+ type(pawtab_type),intent(in) :: pawtab(:)
+@@ -587,8 +587,8 @@ subroutine mkcore_wvl_old(atindx1,corstr
+ real(dp),intent(in) :: psppar(0:4,0:6,ntypat),rprimd(3,3)
+ real(dp),intent(in)::xred(3,natom)
+ real(dp),intent(in)::vxc(nfft,nspden)
+- real(dp),intent(out)::xccc3d(n3xccc)
+- real(dp),intent(out) :: corstr(6),dyfrx2(3,3,natom),grxc(3,natom)
++ real(dp),intent(inout)::xccc3d(n3xccc)
++ real(dp),intent(inout) :: corstr(6),dyfrx2(3,3,natom),grxc(3,natom)
+ type(pawtab_type),intent(in) :: pawtab(ntypat)
+ type(pawrad_type),intent(in) :: pawrad(ntypat)
+
+diff -uprN spack-src.org/src/98_main/abinit.F90 spack-src/src/98_main/abinit.F90
+--- spack-src.org/src/98_main/abinit.F90 2021-03-11 13:52:55.000000000 +0900
++++ spack-src/src/98_main/abinit.F90 2021-03-11 14:06:53.000000000 +0900
+@@ -261,7 +261,7 @@ program abinit
+ open(unit=ab_out,file=filnam(2),form='formatted',status='new', action="write", iomsg=message, iostat=ios)
+ #endif
+ ABI_CHECK(ios == 0, message)
+- rewind (unit=ab_out)
++! rewind (unit=ab_out)
+ codename='ABINIT'//repeat(' ',18)
+ call herald(codename,abinit_version,ab_out)
+ call herald(codename,abinit_version,std_out)
diff --git a/var/spack/repos/builtin/packages/abinit/package.py b/var/spack/repos/builtin/packages/abinit/package.py
index 4378c28213..db19c5af04 100644
--- a/var/spack/repos/builtin/packages/abinit/package.py
+++ b/var/spack/repos/builtin/packages/abinit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -27,10 +27,12 @@ class Abinit(AutotoolsPackage):
programs are provided.
"""
- homepage = 'http://www.abinit.org'
+ homepage = 'https://www.abinit.org/'
url = 'https://www.abinit.org/sites/default/files/packages/abinit-8.6.3.tar.gz'
+ version('9.4.2', sha256='d40886f5c8b138bb4aa1ca05da23388eb70a682790cfe5020ecce4db1b1a76bc')
version('8.10.3', sha256='ed626424b4472b93256622fbb9c7645fa3ffb693d4b444b07d488771ea7eaa75')
+ version('8.10.2', sha256='4ee2e0329497bf16a9b2719fe0536cc50c5d5a07c65e18edaf15ba02251cbb73')
version('8.8.2', sha256='15216703bd56a799a249a112b336d07d733627d3756487a4b1cb48ebb625c3e7')
version('8.6.3', sha256='82e8d071088ab8dc1b3a24380e30b68c544685678314df1213180b449c84ca65')
version('8.2.2', sha256='e43544a178d758b0deff3011c51ef7c957d7f2df2ce8543366d68016af9f3ea1')
@@ -43,26 +45,18 @@ class Abinit(AutotoolsPackage):
description='Enables OpenMP threads. Use threaded FFTW3')
variant('scalapack', default=False,
description='Enables scalapack support. Requires MPI')
- # variant('elpa', default=False,
- # description='Uses elpa instead of scalapack. Requires MPI')
-
- # TODO: To be tested.
- # It was working before the last `git pull` but now all tests crash.
- # For the time being, the default is netcdf3 and the internal fallbacks
- # FIXME: rename (trio?) and use multivalued variants to cover
- # --with-trio-flavor={netcdf, none}
- # Note that Abinit@8: does not support etsf_io anymore because it is not
- # compatible with HDF5 and MPI-IO
- variant('hdf5', default=False,
- description='Enables HDF5+Netcdf4 with MPI. WARNING: experimental')
variant('wannier90', default=False,
description='Enables the Wannier90 library')
+ variant('libxml2', default=False,
+ description='Enable libxml2 support, used by multibinit')
+
+ variant('optimization-flavor', default='standard', multi=False,
+ values=('safe', 'standard', 'aggressive'),
+ description='Select the optimization flavor to use.')
# Add dependencies
- # currently one cannot forward options to virtual packages, see #1712.
- # depends_on('blas', when='~openmp')
- # depends_on('blas+openmp', when='+openmp')
+ depends_on('atompaw')
depends_on('blas')
depends_on('lapack')
@@ -71,97 +65,188 @@ class Abinit(AutotoolsPackage):
depends_on('scalapack', when='+scalapack+mpi')
- # depends_on('elpa~openmp', when='+elpa+mpi~openmp')
- # depends_on('elpa+openmp', when='+elpa+mpi+openmp')
+ depends_on('fftw-api')
- depends_on('fftw precision=float,double')
- depends_on('fftw~openmp', when='~openmp')
- depends_on('fftw+openmp', when='+openmp')
+ depends_on('netcdf-fortran')
+ depends_on('netcdf-c+mpi', when='+mpi')
+ depends_on('netcdf-c~mpi', when='~mpi')
+ depends_on('hdf5+mpi', when='+mpi')
+ depends_on('hdf5~mpi', when='~mpi')
+ depends_on("wannier90+shared", when='+wannier90+mpi')
- depends_on('netcdf-fortran', when='+hdf5')
- depends_on('hdf5+mpi', when='+mpi+hdf5') # required for NetCDF-4 support
+ # constrain libxc version
+ depends_on('libxc')
+ depends_on('libxc@:2', when='@:8')
- # pin libxc version
- depends_on("libxc@2.2.2")
+ # libxml2
+ depends_on('libxml2', when='@9:+libxml2')
# 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')
+ # Cannot ask for +wannier90 if it does not depend on MPI
+ conflicts('+wannier90', when='~mpi')
+
+ # libxml2 needs version 9 and above
+ conflicts('+libxml2', when='@:8')
+
+ conflicts('%gcc@7:', when='@:8.8')
+ conflicts('%gcc@9:', when='@:8.10')
+
+ # need openmp threading for abinit+openmp
+ # TODO: The logic here can be reversed with the new concretizer. Instead of
+ # using `conflicts`, `depends_on` could be used instead.
+ mkl_message = 'Need to set dependent variant to threads=openmp'
+ conflicts('+openmp',
+ when='^fftw~openmp',
+ msg='Need to request fftw +openmp')
+ conflicts('+openmp',
+ when='^intel-mkl threads=none',
+ msg=mkl_message)
+ conflicts('+openmp',
+ when='^intel-mkl threads=tbb',
+ msg=mkl_message)
+ conflicts('+openmp',
+ when='^intel-parallel-studio +mkl threads=none',
+ msg=mkl_message)
+
+ patch('rm_march_settings.patch', when='@:8')
+ patch('rm_march_settings_v9.patch', when='@9:')
+
+ # Fix detection of Fujitsu compiler
+ # Fix configure not to collect the option that causes an error
+ # Fix intent(out) and unnecessary rewind to avoid compile error
+ patch('fix_for_fujitsu.patch', when='%fj')
def configure_args(self):
spec = self.spec
options = []
+ options += self.with_or_without('libxml2')
+
oapp = options.append
+ oapp('--with-optim-flavor={0}'
+ .format(self.spec.variants['optimization-flavor'].value))
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 '@:8' 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=atompaw+libxc+wannier90')
+ else:
+ options.extend([
+ 'WANNIER90_CPPFLAGS=-I{0}'.format(
+ spec['wannier90'].prefix.modules),
+ 'WANNIER90_LIBS=-L{0} {1}'.format(
+ spec['wannier90'].prefix.lib, '-lwannier'),
+ ])
+ else:
+ if '@:8' in spec:
+ oapp('--with-dft-flavor=atompaw+libxc')
+ else:
+ '--without-wannier90',
if '+mpi' in spec:
+ oapp('CC={0}'.format(spec['mpi'].mpicc))
+ oapp('CXX={0}'.format(spec['mpi'].mpicxx))
+ oapp('FC={0}'.format(spec['mpi'].mpifc))
+
# 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')
+ if '@:8' in spec:
+ oapp('--enable-mpi=yes')
+ else:
+ oapp('--with-mpi')
+ else:
+ if '@:8' in spec:
+ oapp('--enable-mpi=no')
+ else:
+ oapp('--without-mpi')
# Activate OpenMP in Abinit Fortran code.
if '+openmp' in spec:
oapp('--enable-openmp=yes')
+ else:
+ oapp('--enable-openmp=no')
# BLAS/LAPACK/SCALAPACK-ELPA
linalg = spec['lapack'].libs + spec['blas'].libs
+ if '^mkl' in spec:
+ linalg_flavor = 'mkl'
+ elif '@9:' in spec and '^openblas' in spec:
+ linalg_flavor = 'openblas'
+ else:
+ linalg_flavor = 'custom'
+
if '+scalapack' in spec:
- oapp('--with-linalg-flavor=custom+scalapack')
linalg = spec['scalapack'].libs + linalg
+ if '@:8' in spec:
+ linalg_flavor = 'scalapack+{0}'.format(linalg_flavor)
- # elif '+elpa' in spec:
+ if '@:8' in spec:
+ oapp('--with-linalg-libs={0}'.format(linalg.ld_flags))
else:
- oapp('--with-linalg-flavor=custom')
-
- oapp('--with-linalg-libs={0}'.format(linalg.ld_flags))
-
- # FFTW3: use sequential or threaded version if +openmp
- fftflavor, fftlibs = 'fftw3', '-lfftw3 -lfftw3f'
- if '+openmp' in spec:
- fftflavor = 'fftw3-threads'
- fftlibs = '-lfftw3_omp -lfftw3 -lfftw3f'
-
- options.extend([
- '--with-fft-flavor=%s' % fftflavor,
- '--with-fft-incs=-I%s' % spec['fftw'].prefix.include,
- '--with-fft-libs=-L%s %s' % (spec['fftw'].prefix.lib, fftlibs),
- ])
+ oapp('LINALG_LIBS={0}'.format(linalg.ld_flags))
+
+ oapp('--with-linalg-flavor={0}'.format(linalg_flavor))
+
+ if '^mkl' in spec:
+ fftflavor = 'dfti'
+ elif '^fftw' in spec:
+ if '+openmp' in spec:
+ fftflavor, fftlibs = 'fftw3-threads', '-lfftw3_omp -lfftw3 -lfftw3f'
+ else:
+ fftflavor, fftlibs = 'fftw3', '-lfftw3 -lfftw3f'
+
+ oapp('--with-fft-flavor={0}'.format(fftflavor))
+
+ if '@:8' in spec:
+ if '^mkl' in spec:
+ oapp('--with-fft-incs={0}'.format(spec['fftw-api'].headers.cpp_flags))
+ oapp('--with-fft-libs={0}'.format(spec['fftw-api'].libs.ld_flags))
+ elif '^fftw' in spec:
+ options.extend([
+ '--with-fft-incs={0}'.format(spec['fftw'].headers.cpp_flags),
+ '--with-fft-libs=-L{0} {1}'.format(
+ spec['fftw'].prefix.lib, fftlibs),
+ ])
+ else:
+ if '^mkl' in spec:
+ options.extend([
+ 'FFT_CPPFLAGS={0}'.format(spec['fftw-api'].headers.cpp_flags),
+ 'FFT_LIBs={0}'.format(spec['fftw-api'].libs.ld_flags),
+ ])
+ elif '^fftw' in spec:
+ options.extend([
+ 'FFTW3_CPPFLAGS={0}'.format(spec['fftw'].headers.cpp_flags),
+ 'FFTW3_LIBS=-L{0} {1}'.format(
+ spec['fftw'].prefix.lib, fftlibs),
+ ])
# LibXC library
libxc = spec['libxc:fortran']
- options.extend([
- 'with_libxc_incs={0}'.format(libxc.headers.cpp_flags),
- 'with_libxc_libs={0}'.format(libxc.libs.ld_flags + ' -lm')
- ])
+ if '@:8' in spec:
+ options.extend([
+ '--with-libxc-incs={0}'.format(libxc.headers.cpp_flags),
+ '--with-libxc-libs={0}'.format(libxc.libs.ld_flags + ' -lm')
+ ])
+ else:
+ oapp('--with-libxc={0}'.format(libxc.prefix))
# Netcdf4/HDF5
- if '+hdf5' in spec:
+ hdf5 = spec['hdf5:hl']
+ netcdfc = spec['netcdf-c']
+ netcdff = spec['netcdf-fortran:shared']
+ if '@:8' in spec:
oapp('--with-trio-flavor=netcdf')
# Since version 8, Abinit started to use netcdf4 + hdf5 and we have
# to link with the high level HDF5 library
- hdf5 = spec['hdf5:hl']
- netcdff = spec['netcdf-fortran:shared']
options.extend([
'--with-netcdf-incs={0}'.format(netcdff.headers.cpp_flags),
'--with-netcdf-libs={0}'.format(
@@ -169,9 +254,14 @@ class Abinit(AutotoolsPackage):
),
])
else:
- # In Spack we do our best to avoid building any internally provided
- # dependencies, such as netcdf3 in this case.
- oapp('--with-trio-flavor=none')
+ options.extend([
+ '--with-netcdf={0}'.format(netcdfc.prefix),
+ '--with-netcdf-fortran={0}'.format(netcdff.prefix),
+ ])
+
+ if self.spec.satisfies('%fj'):
+ oapp('FCFLAGS_MODDIR=-M{0}'.format(join_path(
+ self.stage.source_path, 'src/mods')))
return options
@@ -180,4 +270,9 @@ class Abinit(AutotoolsPackage):
explicitly activated by user.
"""
make('check')
- make('tests_in')
+
+ # the tests directly execute abinit. thus failing with MPI
+ # TODO: run tests in tests/ via the builtin runtests.py
+ # requires Python with numpy, pyyaml, pandas
+ if '~mpi' in self.spec:
+ make('tests_in')
diff --git a/var/spack/repos/builtin/packages/abinit/rm_march_settings.patch b/var/spack/repos/builtin/packages/abinit/rm_march_settings.patch
new file mode 100644
index 0000000000..3511fd8d7d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/abinit/rm_march_settings.patch
@@ -0,0 +1,74 @@
+--- spack-src/configure.org 2021-01-18 10:12:04.000000000 +0900
++++ spack-src/configure 2021-01-20 20:26:16.000000000 +0900
+@@ -17412,7 +17412,7 @@
+ case "${enable_optim}" in
+ aggressive)
+ enable_optim_opt="aggressive"
+- CFLAGS_OPTIM="-O3 -mtune=native -march=native"
++ CFLAGS_OPTIM="-O3 -mtune=native "
+ ;;
+ safe)
+ enable_optim_opt="safe"
+@@ -17420,7 +17420,7 @@
+ ;;
+ standard)
+ enable_optim_opt="standard"
+- CFLAGS_OPTIM="-O2 -mtune=native -march=native"
++ CFLAGS_OPTIM="-O2 -mtune=native "
+ ;;
+ esac # [case: enable_optim, indent: 2, item: True]
+ ;;
+@@ -17641,7 +17641,7 @@
+ case "${enable_optim}" in
+ aggressive)
+ enable_optim_opt="aggressive"
+- CXXFLAGS_OPTIM="-O3 -mtune=native -march=native"
++ CXXFLAGS_OPTIM="-O3 -mtune=native "
+ ;;
+ safe)
+ enable_optim_opt="safe"
+@@ -17649,7 +17649,7 @@
+ ;;
+ standard)
+ enable_optim_opt="standard"
+- CXXFLAGS_OPTIM="-O2 -mtune=native -march=native"
++ CXXFLAGS_OPTIM="-O2 -mtune=native "
+ ;;
+ esac # [case: enable_optim, indent: 2, item: True]
+ ;;
+@@ -17815,7 +17815,7 @@
+ case "${enable_optim}" in
+ aggressive)
+ enable_optim_opt="aggressive"
+- FCFLAGS_OPTIM="-O3 -mtune=native -march=native -faggressive-function-elimination -fstack-arrays"
++ FCFLAGS_OPTIM="-O3 -mtune=native -faggressive-function-elimination -fstack-arrays"
+ ;;
+ safe)
+ enable_optim_opt="safe"
+@@ -17823,7 +17823,7 @@
+ ;;
+ standard)
+ enable_optim_opt="standard"
+- FCFLAGS_OPTIM="-O2 -mtune=native -march=native"
++ FCFLAGS_OPTIM="-O2 -mtune=native "
+ ;;
+ esac # [case: enable_optim, indent: 4, item: True]
+ ;;
+@@ -17833,7 +17833,7 @@
+ case "${enable_optim}" in
+ aggressive)
+ enable_optim_opt="aggressive"
+- FCFLAGS_OPTIM="-O3 -mtune=native -march=native -funroll-loops -faggressive-function-elimination"
++ FCFLAGS_OPTIM="-O3 -mtune=native -funroll-loops -faggressive-function-elimination"
+ ;;
+ safe)
+ enable_optim_opt="safe"
+@@ -17841,7 +17841,7 @@
+ ;;
+ standard)
+ enable_optim_opt="standard"
+- FCFLAGS_OPTIM="-O2 -mtune=native -march=native"
++ FCFLAGS_OPTIM="-O2 -mtune=native "
+ ;;
+ esac # [case: enable_optim, indent: 4, item: True]
+ ;;
diff --git a/var/spack/repos/builtin/packages/abinit/rm_march_settings_v9.patch b/var/spack/repos/builtin/packages/abinit/rm_march_settings_v9.patch
new file mode 100644
index 0000000000..c876e7c769
--- /dev/null
+++ b/var/spack/repos/builtin/packages/abinit/rm_march_settings_v9.patch
@@ -0,0 +1,44 @@
+--- a/configure 2021-04-30 04:25:20.000000000 -0500
++++ b/configure 2021-05-14 17:34:11.666320745 -0500
+@@ -16794,11 +16794,11 @@
+ ;;
+ standard)
+ abi_optim_flavor_opt="standard"
+- CFLAGS_OPTIM="-O2 -mtune=native -march=native"
++ CFLAGS_OPTIM="-O2"
+ ;;
+ aggressive)
+ abi_optim_flavor_opt="aggressive"
+- CFLAGS_OPTIM="-O3 -mtune=native -march=native"
++ CFLAGS_OPTIM="-O3"
+ ;;
+ esac # [case: abi_optim_flavor, indent: 2, item: True]
+ ;;
+@@ -16947,11 +16947,11 @@
+ ;;
+ standard)
+ abi_optim_flavor_opt="standard"
+- CXXFLAGS_OPTIM="-O2 -mtune=native -march=native"
++ CXXFLAGS_OPTIM="-O2"
+ ;;
+ aggressive)
+ abi_optim_flavor_opt="aggressive"
+- CXXFLAGS_OPTIM="-O3 -mtune=native -march=native"
++ CXXFLAGS_OPTIM="-O3"
+ ;;
+ esac # [case: abi_optim_flavor, indent: 2, item: True]
+ ;;
+@@ -17100,11 +17100,11 @@
+ ;;
+ standard)
+ abi_optim_flavor_opt="standard"
+- FCFLAGS_OPTIM="-O2 -mtune=native -march=native"
++ FCFLAGS_OPTIM="-O2"
+ ;;
+ aggressive)
+ abi_optim_flavor_opt="aggressive"
+- FCFLAGS_OPTIM="-O3 -mtune=native -march=native -funroll-loops -faggressive-function-elimination"
++ FCFLAGS_OPTIM="-O3 -funroll-loops -faggressive-function-elimination"
+ ;;
+ esac # [case: abi_optim_flavor, indent: 2, item: True]
+ ;;
diff --git a/var/spack/repos/builtin/packages/abseil-cpp/package.py b/var/spack/repos/builtin/packages/abseil-cpp/package.py
index 6044757ee3..f58e6af372 100644
--- a/var/spack/repos/builtin/packages/abseil-cpp/package.py
+++ b/var/spack/repos/builtin/packages/abseil-cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,14 @@ class AbseilCpp(CMakePackage):
"""Abseil Common Libraries (C++) """
homepage = "https://abseil.io/"
- url = "https://github.com/abseil/abseil-cpp/archive/20200923.2.tar.gz"
+ url = "https://github.com/abseil/abseil-cpp/archive/20210324.2.tar.gz"
maintainers = ['jcftang']
+ version('20210324.2', sha256='59b862f50e710277f8ede96f083a5bb8d7c9595376146838b9580be90374ee1f')
+ version('20210324.1', sha256='441db7c09a0565376ecacf0085b2d4c2bbedde6115d7773551bc116212c2a8d6')
+ version('20210324.0', sha256='dd7db6815204c2a62a2160e32c55e97113b0a0178b2f090d6bab5ce36111db4b')
+ version('20200923.3', sha256='ebe2ad1480d27383e4bf4211e2ca2ef312d5e6a09eba869fd2e8a5c5d553ded2')
version('20200923.2', sha256='bf3f13b13a0095d926b25640e060f7e13881bd8a792705dd9e161f3c2b9aa976')
version('20200923.1', sha256='808350c4d7238315717749bab0067a1acd208023d41eaf0c7360f29cc8bc8f21')
version('20200225.2', sha256='f41868f7a938605c92936230081175d1eae87f6ea2c248f41077c8f88316f111')
@@ -27,8 +31,14 @@ class AbseilCpp(CMakePackage):
conflicts('+shared', when='@:20190808')
+ variant('cxxstd', values=('11', '14', '17', '20'), default='11',
+ description="C++ standard used during compilation")
+
def cmake_args(self):
- args = ["-DBUILD_TESTING=OFF", "-DCMAKE_CXX_STANDARD=11"]
- args.append('-DBUILD_SHARED_LIBS:Bool={0}'.format(
- 'ON' if '+shared' in self.spec else 'OFF'))
- return args
+ shared = 'ON' if '+shared' in self.spec else 'OFF'
+ cxxstd = self.spec.variants['cxxstd'].value
+ return [
+ self.define('BUILD_TESTING', 'OFF'),
+ self.define('BUILD_SHARED_LIBS:Bool', shared),
+ self.define('CMAKE_CXX_STANDARD', cxxstd)
+ ]
diff --git a/var/spack/repos/builtin/packages/abyss/package.py b/var/spack/repos/builtin/packages/abyss/package.py
index c7eddfd835..2b4e231d3f 100644
--- a/var/spack/repos/builtin/packages/abyss/package.py
+++ b/var/spack/repos/builtin/packages/abyss/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import numbers
+
from spack import *
@@ -21,9 +22,12 @@ class Abyss(AutotoolsPackage):
that is designed for short reads. The single-processor version
is useful for assembling genomes up to 100 Mbases in size."""
- homepage = "http://www.bcgsc.ca/platform/bioinfo/software/abyss"
- url = "https://github.com/bcgsc/abyss/releases/download/1.5.2/abyss-1.5.2.tar.gz"
+ homepage = "https://www.bcgsc.ca/platform/bioinfo/software/abyss"
+ url = "https://github.com/bcgsc/abyss/releases/download/2.3.1/abyss-2.3.1.tar.gz"
+ version('2.3.1', sha256='664045e7903e9732411effc38edb9ebb1a0c1b7636c64b3a14a681f465f43677')
+ version('2.3.0', sha256='3df923b0699187fb27948cae43293eeb5745161d5dc484b9befbe2ca8efb6ad7')
+ version('2.2.5', sha256='38e886f455074c76b32dd549e94cc345f46cb1d33ab11ad3e8e1f5214fc65521')
version('2.1.4', sha256='2145a1727556104d6a14db06a9c06f47b96c31cc5ac595ae9c92224349bdbcfc')
version('2.0.2', sha256='d87b76edeac3a6fb48f24a1d63f243d8278a324c9a5eb29027b640f7089422df')
version('1.5.2', sha256='8a52387f963afb7b63db4c9b81c053ed83956ea0a3981edcad554a895adf84b1')
diff --git a/var/spack/repos/builtin/packages/accfft/package.py b/var/spack/repos/builtin/packages/accfft/package.py
index 7009695240..ab0f1566e1 100644
--- a/var/spack/repos/builtin/packages/accfft/package.py
+++ b/var/spack/repos/builtin/packages/accfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/acct/package.py b/var/spack/repos/builtin/packages/acct/package.py
index 5a0c147f25..8bb15a3dbc 100644
--- a/var/spack/repos/builtin/packages/acct/package.py
+++ b/var/spack/repos/builtin/packages/acct/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Acct(AutotoolsPackage):
"""Utilities for monitoring process activities."""
- homepage = "http://www.gnu.org/software/acct"
+ homepage = "https://www.gnu.org/software/acct"
url = "https://ftp.gnu.org/gnu/acct/acct-6.6.4.tar.gz"
version('6.6.4', sha256='4c15bf2b58b16378bcc83f70e77d4d40ab0b194acf2ebeefdb507f151faa663f')
diff --git a/var/spack/repos/builtin/packages/accumulo/package.py b/var/spack/repos/builtin/packages/accumulo/package.py
index 28dc38de0e..9ebe53f93a 100644
--- a/var/spack/repos/builtin/packages/accumulo/package.py
+++ b/var/spack/repos/builtin/packages/accumulo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,9 @@ class Accumulo(MavenPackage):
provides robust, scalable data storage and retrieval."""
homepage = "https://accumulo.apache.org/"
- url = "https://github.com/apache/accumulo/archive/rel/2.0.0.tar.gz"
+ url = "https://github.com/apache/accumulo/archive/rel/2.0.1.tar.gz"
+ version('2.0.1', sha256='2756ac14e850b30ad9bd1043418d621b93307d083f84904cd8fac5c8beec751b')
version('2.0.0', sha256='2564056dc24398aa464763c21bae10ef09356fe3261600d27744071cf965c265')
version('1.9.3', sha256='d9548d5b9cf9f494f027f0fe59d5d6d45d09064359d7761cade62991ce2a5d0c')
version('1.9.2', sha256='11ab028143ad6313cd5fc701b36b4c35e46a4a3fa2ce663869860b9f6bf5ee4d')
diff --git a/var/spack/repos/builtin/packages/ace/package.py b/var/spack/repos/builtin/packages/ace/package.py
index 1f8f58c78f..4443b6a4bb 100644
--- a/var/spack/repos/builtin/packages/ace/package.py
+++ b/var/spack/repos/builtin/packages/ace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class Ace(MakefilePackage):
for sockets, demultiplexing loops, threads, synchronization
primitives."""
- homepage = "http://www.dre.vanderbilt.edu/~schmidt/ACE.html"
- url = "http://download.dre.vanderbilt.edu/previous_versions/ACE-6.5.1.tar.gz"
+ homepage = "https://www.dre.vanderbilt.edu/~schmidt/ACE.html"
+ url = "https://download.dre.vanderbilt.edu/previous_versions/ACE-6.5.1.tar.gz"
version('6.5.12', 'de96c68a6262d6b9ba76b5057c02c7e6964c070b1328a63bf70259e9530a7996')
version('6.5.6', '7717cad84d4a9c3d6b2c47963eb555d96de0be657870bcab6fcef4c0423af0de')
diff --git a/var/spack/repos/builtin/packages/ack/package.py b/var/spack/repos/builtin/packages/ack/package.py
index 1faf0f7a14..e471fb5624 100644
--- a/var/spack/repos/builtin/packages/ack/package.py
+++ b/var/spack/repos/builtin/packages/ack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class Ack(Package):
source code, ack is written purely in portable Perl 5 and takes
advantage of the power of Perl's regular expressions."""
- homepage = "http://beyondgrep.com/"
- url = "http://beyondgrep.com/ack-2.14-single-file"
+ homepage = "https://beyondgrep.com/"
+ url = "https://beyondgrep.com/ack-2.14-single-file"
version('2.22', sha256='fd0617585b88517a3d41d3d206c1dc38058c57b90dfd88c278049a41aeb5be38', expand=False)
version('2.18', sha256='6e41057c8f50f661d800099471f769209480efa53b8a886969d7ec6db60a2208', expand=False)
diff --git a/var/spack/repos/builtin/packages/acl/package.py b/var/spack/repos/builtin/packages/acl/package.py
index 17f916d297..3c8c172600 100644
--- a/var/spack/repos/builtin/packages/acl/package.py
+++ b/var/spack/repos/builtin/packages/acl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Acl(AutotoolsPackage):
"""Commands for Manipulating POSIX Access Control Lists."""
homepage = "https://savannah.nongnu.org/projects/acl"
- url = "http://git.savannah.nongnu.org/cgit/acl.git/snapshot/acl-2.2.53.tar.gz"
+ url = "https://git.savannah.nongnu.org/cgit/acl.git/snapshot/acl-2.2.53.tar.gz"
version('2.2.53', sha256='9e905397ac10d06768c63edd0579c34b8431555f2ea8e8f2cee337b31f856805')
version('2.2.52', sha256='f3f31d2229c903184ff877aa0ee658b87ec20fec8aebb51e65eaa68d7b24e629')
diff --git a/var/spack/repos/builtin/packages/acpica-tools/package.py b/var/spack/repos/builtin/packages/acpica-tools/package.py
index 41359bb959..41b595b248 100644
--- a/var/spack/repos/builtin/packages/acpica-tools/package.py
+++ b/var/spack/repos/builtin/packages/acpica-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/acpid/package.py b/var/spack/repos/builtin/packages/acpid/package.py
index 15a73f36d4..0415d850d1 100644
--- a/var/spack/repos/builtin/packages/acpid/package.py
+++ b/var/spack/repos/builtin/packages/acpid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/activeharmony/package.py b/var/spack/repos/builtin/packages/activeharmony/package.py
index 45a55e5600..92765ff949 100644
--- a/var/spack/repos/builtin/packages/activeharmony/package.py
+++ b/var/spack/repos/builtin/packages/activeharmony/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Activeharmony(MakefilePackage):
"""Active Harmony: a framework for auto-tuning (the automated search for
values to improve the performance of a target application)."""
- homepage = "http://www.dyninst.org/harmony"
- url = "http://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz"
+ homepage = "https://www.dyninst.org/harmony"
+ url = "https://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz"
version('4.6.0', sha256='9ce5009cfd8e2f4cf5f3536e1fea9993414fc25920fc90d0a2cb56f044787dbb')
version('4.5', sha256='31d9990c8dd36724d336707d260aa4d976e11eaa899c4c7cc11f80a56cdac684')
diff --git a/var/spack/repos/builtin/packages/activemq/package.py b/var/spack/repos/builtin/packages/activemq/package.py
index 54cff4de32..5c8ed29e02 100644
--- a/var/spack/repos/builtin/packages/activemq/package.py
+++ b/var/spack/repos/builtin/packages/activemq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/acts/package.py b/var/spack/repos/builtin/packages/acts/package.py
index 476bea3b0f..f2330ecae8 100644
--- a/var/spack/repos/builtin/packages/acts/package.py
+++ b/var/spack/repos/builtin/packages/acts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -29,12 +29,33 @@ class Acts(CMakePackage, CudaPackage):
propagation and fitting, basic seed finding algorithms.
"""
- homepage = "http://acts.web.cern.ch/ACTS/"
+ homepage = "https://acts.web.cern.ch/ACTS/"
git = "https://github.com/acts-project/acts.git"
maintainers = ['HadrienG2']
+ tags = ['hep']
+
# Supported Acts versions
- version('master', branch='master')
+ version('main', branch='main')
+ version('master', branch='main', deprecated=True) # For compatibility
+ version('12.0.1', commit='a80d1ef995d8cdd4190cc09cb249276a3e0161f4', submodules=True)
+ version('12.0.0', commit='e0aa4e7dcb70df025576e050b6e652a2f736454a', submodules=True)
+ version('11.0.0', commit='eac3def261f65b343af6d8ce4bc40443ac57b57e')
+ version('10.0.0', commit='9bfe0b83f277f686408b896a84d2b9b53610f623')
+ version('9.02.0', commit='c438ee490e94eaf1c854a336ef54f398da637a48')
+ version('9.01.0', commit='bf8fd4c03dd94f497d8501df510d8f6a48434afd')
+ version('9.00.1', commit='7d59bc508d898d2cb67ba05a7150a978b9fcc32d')
+ version('9.00.0', commit='e6e3092bf3a9411aac7c11a24d7586abddb75d59')
+ version('8.03.0', commit='601c0a18b6738cae81c3e23422cfeb3ec7bddce9')
+ version('8.02.0', commit='f25cf639915fc2ac65b03882ad3eb11fb037ed00')
+ version('8.01.0', commit='ccc8c77bbc011f3adc020c565a509815be0ea029')
+ version('8.00.0', commit='50c972823144c007b406ae12d7ca25a1e0c35532')
+ version('7.00.0', commit='e663df7ab023bdb5ef206202efc2e54ccb71d416')
+ version('6.00.0', commit='a5cf04acd4b1a2c625e0826189109472a3392558')
+ version('5.00.0', commit='df77b91a7d37b8db6ed028a4d737014b5ad86bb7')
+ version('4.01.0', commit='c383bf434ef69939b47e840e0eac0ba632e6af9f')
+ version('4.00.0', commit='ed64b4b88d366b63adc4a8d1afe5bc97aa5751eb')
+ version('3.00.0', commit='e20260fccb469f4253519d3f0ddb3191b7046db3')
version('2.00.0', commit='8708eae2b2ccdf57ab7b451cfbba413daa1fc43c')
version('1.02.1', commit='f6ebeb9a28297ba8c54fd08b700057dd4ff2a311')
version('1.02.0', commit='e69b95acc9a264e63aded7d1714632066e090542')
@@ -89,15 +110,18 @@ class Acts(CMakePackage, CudaPackage):
variant('examples', default=False, description='Build the examples')
variant('integration_tests', default=False, description='Build the integration tests')
variant('unit_tests', default=False, description='Build the unit tests')
+ variant('log_failure_threshold', default='MAX', description='Log level above which examples should auto-crash')
# Variants that enable / disable Acts plugins
variant('autodiff', default=False, description='Build the auto-differentiation plugin')
variant('dd4hep', default=False, description='Build the DD4hep plugin')
variant('digitization', default=False, description='Build the geometric digitization plugin')
variant('fatras', default=False, description='Build the FAst TRAcking Simulation package')
+ variant('fatras_geant4', default=False, description='Build Geant4 Fatras package')
variant('identification', default=False, description='Build the Identification plugin')
variant('json', default=False, description='Build the Json plugin')
variant('legacy', default=False, description='Build the Legacy package')
+ # FIXME: Cannot build ONNX plugin as Spack doesn't have an ONNX runtime
# FIXME: Cannot build SyCL plugin yet as Spack doesn't have SyCL support
variant('tgeo', default=False, description='Build the TGeo plugin')
@@ -109,19 +133,20 @@ class Acts(CMakePackage, CudaPackage):
# Build dependencies
# FIXME: Use spack's autodiff package once there is one
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('cmake @3.11:', type='build')
- 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('boost @1.71: +filesystem +program_options +test', when='@0.10.4:')
+ depends_on('cmake @3.14:', type='build')
+ depends_on('dd4hep @1.11:', when='+dd4hep')
+ depends_on('dd4hep @1.11: +geant4', when='+dd4hep +geant4')
+ depends_on('eigen @3.3.7:', type='build')
+ depends_on('geant4', when='+fatras_geant4')
depends_on('geant4', when='+geant4')
- depends_on('hepmc3@3.1:', when='+hepmc3')
- depends_on('heppdt', when='+hepmc3')
- depends_on('intel-tbb', when='+examples')
- depends_on('nlohmann-json @3.2.0:', when='@0.14: +json')
+ depends_on('hepmc3 @3.2.1:', when='+hepmc3')
+ depends_on('heppdt', when='+hepmc3 @:4.0')
+ depends_on('intel-tbb @2020.1:', when='+examples')
+ depends_on('nlohmann-json @3.9.1:', when='@0.14: +json')
depends_on('pythia8', when='+pythia8')
depends_on('root @6.10: cxxstd=14', when='+tgeo @:0.8.0')
- depends_on('root @6.10: cxxstd=17', when='+tgeo @0.8.1:')
+ depends_on('root @6.20: cxxstd=17', when='+tgeo @0.8.1:')
# Some variant combinations do not make sense
conflicts('+autodiff', when='@:1.01')
@@ -184,6 +209,7 @@ class Acts(CMakePackage, CudaPackage):
example_cmake_variant("HEPMC3", "hepmc3"),
example_cmake_variant("PYTHIA8", "pythia8"),
cmake_variant("FATRAS", "fatras"),
+ cmake_variant("FATRAS_GEANT4", "fatras_geant4"),
plugin_cmake_variant("IDENTIFICATION", "identification"),
cmake_variant(integration_tests_label, "integration_tests"),
plugin_cmake_variant("JSON", "json"),
@@ -192,6 +218,9 @@ class Acts(CMakePackage, CudaPackage):
plugin_cmake_variant("TGEO", "tgeo")
]
+ log_failure_threshold = spec.variants['log_failure_threshold'].value
+ args.append("-DACTS_LOG_FAILURE_THRESHOLD={0}".format(log_failure_threshold))
+
cuda_arch = spec.variants['cuda_arch'].value
if cuda_arch != 'none':
args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0]))
diff --git a/var/spack/repos/builtin/packages/addrwatch/package.py b/var/spack/repos/builtin/packages/addrwatch/package.py
index 43cc8036f4..d89d0937d0 100644
--- a/var/spack/repos/builtin/packages/addrwatch/package.py
+++ b/var/spack/repos/builtin/packages/addrwatch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/adept-utils/package.py b/var/spack/repos/builtin/packages/adept-utils/package.py
index b3ea06eac2..c6590cc41a 100644
--- a/var/spack/repos/builtin/packages/adept-utils/package.py
+++ b/var/spack/repos/builtin/packages/adept-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/adf/package.py b/var/spack/repos/builtin/packages/adf/package.py
index ca08794d10..10c0d259e8 100644
--- a/var/spack/repos/builtin/packages/adf/package.py
+++ b/var/spack/repos/builtin/packages/adf/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Adf(Package):
"""Amsterdam Density Functional (ADF) is a program for first-principles
@@ -13,6 +14,8 @@ class Adf(Package):
theory."""
homepage = "https://www.scm.com/product/adf/"
+ manual_download = True
+
version('2017.113', '666ef15d253b74c707dd14da35e7cf283ca20e21e24ed43cb953fb9d1f2f1e15')
def url_for_version(self, version):
diff --git a/var/spack/repos/builtin/packages/adiak/package.py b/var/spack/repos/builtin/packages/adiak/package.py
index fc343c8d01..02c1ca81eb 100644
--- a/var/spack/repos/builtin/packages/adiak/package.py
+++ b/var/spack/repos/builtin/packages/adiak/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,17 @@ class Adiak(CMakePackage):
homepage = "https://github.com/LLNL/Adiak"
url = "https://github.com/LLNL/Adiak/releases/download/v0.1/adiak-v0.1.1.tar.gz"
+ git = "https://github.com/LLNL/Adiak"
+
+ maintainers = ["daboehme", "mplegendre"]
variant('mpi', default=True, description='Build with MPI support')
variant('shared', default=True, description='Build dynamic libraries')
+ version('0.3.0-alpha', commit='054d2693a977ed0e1f16c665b4966bb90924779e',
+ submodules=True)
+ version('0.2.1', commit='950e3bfb91519ecb7b7ee7fa3063bfab23c0e2c9',
+ submodules=True, preferred=True)
version('0.1.1', sha256='438e4652e15e206cd0019423d829fd4f2329323ff0c8861d9586bae051d9624b')
depends_on('mpi', when='+mpi')
diff --git a/var/spack/repos/builtin/packages/adios/package.py b/var/spack/repos/builtin/packages/adios/package.py
index 3405e03f65..26fe5527e1 100644
--- a/var/spack/repos/builtin/packages/adios/package.py
+++ b/var/spack/repos/builtin/packages/adios/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Adios(AutotoolsPackage):
read, or processed outside of the running simulation.
"""
- homepage = "http://www.olcf.ornl.gov/center-projects/adios/"
+ homepage = "https://www.olcf.ornl.gov/center-projects/adios/"
url = "https://github.com/ornladios/ADIOS/archive/v1.12.0.tar.gz"
git = "https://github.com/ornladios/ADIOS.git"
diff --git a/var/spack/repos/builtin/packages/adios2/2.7-fix-python-test-deps.patch b/var/spack/repos/builtin/packages/adios2/2.7-fix-python-test-deps.patch
new file mode 100644
index 0000000000..38e689dca1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/adios2/2.7-fix-python-test-deps.patch
@@ -0,0 +1,175 @@
+From 2454aafa08be8a275b2bdba56df1c38460d165ef Mon Sep 17 00:00:00 2001
+From: Chuck Atkins <chuck.atkins@kitware.com>
+Date: Fri, 22 Jan 2021 00:03:15 -0500
+Subject: [PATCH] Fix test dependency options to ignore python when testing is
+ disabled
+
+---
+ CMakeLists.txt | 15 +++------------
+ bindings/Matlab/README.txt | 2 +-
+ cmake/DetectOptions.cmake | 2 +-
+ scripts/conda/adios2/superbuild/CMakeLists.txt | 2 +-
+ scripts/docker/images/centos7/Dockerfile | 2 +-
+ scripts/docker/images/centos8/Dockerfile | 2 +-
+ scripts/docker/images/ubuntu/Dockerfile | 2 +-
+ scripts/runconf/runconf.sh | 2 +-
+ scripts/runconf/runconf_olcf.sh | 6 +++---
+ 9 files changed, 13 insertions(+), 22 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 76e0e8fba..8823bbf87 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -114,6 +114,8 @@ if((NOT BUILD_SHARED_LIBS) AND (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE))
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+ endif()
+
++include(CTest)
++
+ adios_option(Blosc "Enable support for Blosc transforms" AUTO)
+ adios_option(BZip2 "Enable support for BZip2 transforms" AUTO)
+ adios_option(ZFP "Enable support for ZFP transforms" AUTO)
+@@ -222,22 +224,11 @@ endif()
+ #------------------------------------------------------------------------------#
+ # Testing
+ #------------------------------------------------------------------------------#
+-if(DEFINED BUILD_TESTING)
+- set(ADIOS2_BUILD_TESTING_DEFAULT ${BUILD_TESTING})
+-else()
+- set(ADIOS2_BUILD_TESTING_DEFAULT ON)
+-endif()
+-unset(BUILD_TESTING)
+-option(ADIOS2_BUILD_TESTING "Build the ADIOS2 testing tree"
+- ${ADIOS2_BUILD_TESTING_DEFAULT})
+-
+ cmake_dependent_option(ADIOS2_RUN_MPI_MPMD_TESTS
+ "Enable the parallel MPMD tests" ON
+- "ADIOS2_BUILD_TESTING;ADIOS2_HAVE_MPI" OFF)
++ "BUILD_TESTING;ADIOS2_HAVE_MPI" OFF)
+ mark_as_advanced(ADIOS2_RUN_MPI_MPMD_TESTS)
+
+-include(CTest)
+-set(BUILD_TESTING ${ADIOS2_BUILD_TESTING})
+ if(BUILD_TESTING)
+ find_program(DIFF_EXECUTABLE diff)
+ if(DIFF_EXECUTABLE)
+diff --git a/bindings/Matlab/README.txt b/bindings/Matlab/README.txt
+index 4b90fac77..f49b057bc 100644
+--- a/bindings/Matlab/README.txt
++++ b/bindings/Matlab/README.txt
+@@ -43,5 +43,5 @@ $ cd <your adios source>
+ $ git pull
+ $ mkdir build.lean
+ $ cd build.lean
+-$ cmake -DCMAKE_INSTALL_PREFIX=/opt/adios/lean -DADIOS2_USE_MPI=OFF -DADIOS2_USE_Fortran=OFF -DADIOS2_USE_Python=OFF -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DADIOS2_ENABLE_PIC=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DADIOS2_BUILD_TESTING=OFF -DADIOS2_USE_SST=OFF -DADIOS2_USE_BZip2=OFF -DADIOS2_USE_DataMan=OFF ..
++$ cmake -DCMAKE_INSTALL_PREFIX=/opt/adios/lean -DADIOS2_USE_MPI=OFF -DADIOS2_USE_Fortran=OFF -DADIOS2_USE_Python=OFF -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DADIOS2_ENABLE_PIC=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_TESTING=OFF -DADIOS2_USE_SST=OFF -DADIOS2_USE_BZip2=OFF -DADIOS2_USE_DataMan=OFF ..
+
+diff --git a/cmake/DetectOptions.cmake b/cmake/DetectOptions.cmake
+index ca449feee..3b8652d2d 100644
+--- a/cmake/DetectOptions.cmake
++++ b/cmake/DetectOptions.cmake
+@@ -293,7 +293,7 @@ if(Python_FOUND)
+ endif()
+
+ # Even if no python support, we still want the interpreter for tests
+-if(NOT Python_Interpreter_FOUND)
++if(BUILD_TESTING AND NOT Python_Interpreter_FOUND)
+ find_package(Python REQUIRED COMPONENTS Interpreter)
+ endif()
+
+diff --git a/scripts/conda/adios2/superbuild/CMakeLists.txt b/scripts/conda/adios2/superbuild/CMakeLists.txt
+index 75e2ad984..ef0eec25b 100644
+--- a/scripts/conda/adios2/superbuild/CMakeLists.txt
++++ b/scripts/conda/adios2/superbuild/CMakeLists.txt
+@@ -12,7 +12,7 @@ ExternalProject_Add(adios2
+ -DCMAKE_BUILD_TYPE=Release
+ -DBUILD_SHARED_LIBS=ON
+ -DADIOS2_BUILD_EXAMPLES=OFF
+- -DADIOS2_BUILD_TESTING=OFF
++ -DBUILD_TESTING=OFF
+ -DADIOS2_USE_Python=ON
+ -DPYTHON_EXECUTABLE=$ENV{PYTHON}
+ -DADIOS2_USE_MPI=ON
+diff --git a/scripts/docker/images/centos7/Dockerfile b/scripts/docker/images/centos7/Dockerfile
+index 96cb30acb..974bd90eb 100644
+--- a/scripts/docker/images/centos7/Dockerfile
++++ b/scripts/docker/images/centos7/Dockerfile
+@@ -116,7 +116,7 @@ RUN git clone https://github.com/ornladios/adios2.git source && \
+ module load mpi && \
+ cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/opt/adios/${adios_ver_dir} \
+- -DADIOS2_BUILD_TESTING=OFF \
++ -DBUILD_TESTING=OFF \
+ -DADIOS2_BUILD_EXAMPLES=OFF \
+ ../source && \
+ make -j$(grep -c '^processor' /proc/cpuinfo) install && \
+diff --git a/scripts/docker/images/centos8/Dockerfile b/scripts/docker/images/centos8/Dockerfile
+index 01e3af8cb..21a78c913 100644
+--- a/scripts/docker/images/centos8/Dockerfile
++++ b/scripts/docker/images/centos8/Dockerfile
+@@ -116,7 +116,7 @@ RUN git clone https://github.com/ornladios/adios2.git source && \
+ module load mpi && \
+ cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/opt/adios/${adios_ver_dir} \
+- -DADIOS2_BUILD_TESTING=OFF \
++ -DBUILD_TESTING=OFF \
+ -DADIOS2_BUILD_EXAMPLES=OFF \
+ ../source && \
+ make -j$(grep -c '^processor' /proc/cpuinfo) install && \
+diff --git a/scripts/docker/images/ubuntu/Dockerfile b/scripts/docker/images/ubuntu/Dockerfile
+index 1979b81a0..e0f654efb 100644
+--- a/scripts/docker/images/ubuntu/Dockerfile
++++ b/scripts/docker/images/ubuntu/Dockerfile
+@@ -118,7 +118,7 @@ RUN git clone https://github.com/ornladios/adios2.git source && \
+ . /etc/profile && \
+ cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/opt/adios/${adios_ver_dir} \
+- -DADIOS2_BUILD_TESTING=OFF \
++ -DBUILD_TESTING=OFF \
+ -DADIOS2_BUILD_EXAMPLES=OFF \
+ ../source && \
+ make -j$(grep -c '^processor' /proc/cpuinfo) install && \
+diff --git a/scripts/runconf/runconf.sh b/scripts/runconf/runconf.sh
+index 82c3ea21e..ec12ba7ef 100644
+--- a/scripts/runconf/runconf.sh
++++ b/scripts/runconf/runconf.sh
+@@ -46,7 +46,7 @@ cmake -DCMAKE_INSTALL_PREFIX=${PWD}/install \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+- -DADIOS2_BUILD_TESTING=${VALUE} \
++ -DBUILD_TESTING=${VALUE} \
+ -DADIOS2_BUILD_EXAMPLES=${VALUE} \
+ -DADIOS2_USE_Endian_Reverse=OFF \
+ ${ADIOS2_SOURCE}
+diff --git a/scripts/runconf/runconf_olcf.sh b/scripts/runconf/runconf_olcf.sh
+index 562f9b3dd..3d1ea83bc 100644
+--- a/scripts/runconf/runconf_olcf.sh
++++ b/scripts/runconf/runconf_olcf.sh
+@@ -68,7 +68,7 @@ if [ `hostname | cut -c 1-5` == "titan" ]; then
+ -DADIOS2_USE_Python=OFF \
+ -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+- -DADIOS2_BUILD_TESTING=OFF \
++ -DBUILD_TESTING=OFF \
+ ${EXTERNAL_OPTS} \
+ ${SRCDIR}
+
+@@ -118,7 +118,7 @@ elif [ `hostname -f | cut -c 1-9` == "summitdev" ]; then
+ -DADIOS2_USE_Python=OFF \
+ -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF \
+ -DCMAKE_BUILD_TYPE=Debug \
+- -DADIOS2_BUILD_TESTING=ON \
++ -DBUILD_TESTING=ON \
+ -DADIOS2_USE_DataMan=OFF \
+ ${EXTERNAL_OPTS} \
+ ${SRCDIR}
+@@ -156,7 +156,7 @@ elif [ `hostname -f | cut -c 1-4` == "rhea" ]; then
+ -DADIOS2_USE_SST=OFF \
+ -DADIOS2_BUILD_EXAMPLES_EXPERIMENTAL=OFF \
+ -DCMAKE_BUILD_TYPE=Debug \
+- -DADIOS2_BUILD_TESTING=ON \
++ -DBUILD_TESTING=ON \
+ -DADIOS2_USE_DataMan=OFF \
+ ${EXTERNAL_OPTS} \
+ ${SRCDIR}
diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py
index adda8071bd..822c5b9817 100644
--- a/var/spack/repos/builtin/packages/adios2/package.py
+++ b/var/spack/repos/builtin/packages/adios2/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -17,6 +19,8 @@ class Adios2(CMakePackage):
maintainers = ['ax3l', 'chuckatkins', 'williamfgc']
version('master', branch='master')
+ version('2.7.1', sha256='c8e237fd51f49d8a62a0660db12b72ea5067512aa7970f3fcf80b70e3f87ca3e')
+ version('2.7.0', sha256='4b5df1a1f92d7ff380416dec7511cfcfe3dc44da27e486ed63c3e6cffb173924')
version('2.6.0', sha256='45b41889065f8b840725928db092848b8a8b8d1bfae1b92e72f8868d1c76216c')
version('2.5.0', sha256='7c8ff3bf5441dd662806df9650c56a669359cb0185ea232ecb3578de7b065329')
version('2.4.0', sha256='50ecea04b1e41c88835b4b3fd4e7bf0a0a2a3129855c9cc4ba6cf6a1575106e2')
@@ -51,7 +55,7 @@ class Adios2(CMakePackage):
# transport engines
variant('sst', default=True,
description='Enable the SST staging engine')
- variant('dataman', default=True,
+ variant('dataman', default=False,
description='Enable the DataMan engine for WAN transports')
variant('dataspaces', default=False,
description='Enable support for DATASPACES')
@@ -96,14 +100,11 @@ class Adios2(CMakePackage):
depends_on('bzip2', when='@2.4: +bzip2')
depends_on('libpng@1.6:', when='@2.4: +png')
depends_on('zfp@0.5.1:', when='+zfp')
- depends_on('sz@:2.0.2.0', when='+sz')
+ depends_on('sz@2.0.2.0:', when='+sz')
extends('python', when='+python')
- depends_on('python@2.7:2.8,3.5:',
- when='@:2.4.0 +python',
- type=('build', 'run'))
- depends_on('python@3.5:', when='@2.5.0: +python',
- type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.5:', when='@:2.4.0 +python', type=('build', 'run'))
+ depends_on('python@3.5:', when='@2.5.0: +python', type=('build', 'run'))
depends_on('python@2.7:2.8,3.5:', when='@:2.4.0', type='test')
depends_on('python@3.5:', when='@2.5.0:', type='test')
depends_on('py-numpy@1.6.1:', type=('build', 'run'), when='+python')
@@ -118,6 +119,10 @@ class Adios2(CMakePackage):
# See https://github.com/ornladios/ADIOS2/pull/1899
patch('2.5-fix-clear_cache.patch', when='@2.5.0')
+ # Fix an unnecessary python dependency when testing is disabled
+ # See https://github.com/ornladios/ADIOS2/pull/2596
+ patch('2.7-fix-python-test-deps.patch', when='@2.5.0:2.7.0')
+
@when('%fj')
def patch(self):
""" add fujitsu mpi commands #16864 """
@@ -135,48 +140,32 @@ class Adios2(CMakePackage):
def cmake_args(self):
spec = self.spec
+ from_variant = self.define_from_variant
args = [
- '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
- 'ON' if '+shared' in spec else 'OFF'),
- '-DADIOS2_BUILD_TESTING=OFF',
+ from_variant('BUILD_SHARED_LIBS', 'shared'),
'-DADIOS2_BUILD_EXAMPLES=OFF',
- '-DADIOS2_USE_MPI={0}'.format(
- 'ON' if '+mpi' in spec else 'OFF'),
+ from_variant('ADIOS2_USE_MPI', 'mpi'),
'-DADIOS2_USE_MGARD=OFF',
- '-DADIOS2_USE_ZFP={0}'.format(
- 'ON' if '+zfp' in spec else 'OFF'),
- '-DADIOS2_USE_SZ={0}'.format(
- 'ON' if '+sz' in spec else 'OFF'),
- '-DADIOS2_USE_DataMan={0}'.format(
- 'ON' if '+dataman' in spec else 'OFF'),
- '-DADIOS2_USE_SST={0}'.format(
- 'ON' if '+sst' in spec else 'OFF'),
- '-DADIOS2_USE_HDF5={0}'.format(
- 'ON' if '+hdf5' in spec else 'OFF'),
- '-DADIOS2_USE_Python={0}'.format(
- 'ON' if '+python' in spec else 'OFF'),
- '-DADIOS2_USE_Fortran={0}'.format(
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DADIOS2_USE_Endian_Reverse={0}'.format(
- 'ON' if '+endian_reverse' in spec else 'OFF'),
- '-DBUILD_TESTING:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF'),
+ from_variant('ADIOS2_USE_ZFP', 'zfp'),
+ from_variant('ADIOS2_USE_SZ', 'sz'),
+ from_variant('ADIOS2_USE_DataMan', 'dataman'),
+ from_variant('ADIOS2_USE_SST', 'sst'),
+ from_variant('ADIOS2_USE_HDF5', 'hdf5'),
+ from_variant('ADIOS2_USE_Python', 'python'),
+ from_variant('ADIOS2_USE_Fortran', 'fortran'),
+ from_variant('ADIOS2_USE_Endian_Reverse', 'endian_reverse'),
+ self.define('BUILD_TESTING', self.run_tests),
]
if spec.version >= Version('2.4.0'):
- args.append('-DADIOS2_USE_Blosc={0}'.format(
- 'ON' if '+blosc' in spec else 'OFF'))
- args.append('-DADIOS2_USE_BZip2={0}'.format(
- 'ON' if '+bzip2' in spec else 'OFF'))
- args.append('-DADIOS2_USE_PNG={0}'.format(
- 'ON' if '+png' in spec else 'OFF'))
- args.append('-DADIOS2_USE_SSC={0}'.format(
- 'ON' if '+ssc' in spec else 'OFF'))
+ args.append(from_variant('ADIOS2_USE_Blosc', 'blosc'))
+ args.append(from_variant('ADIOS2_USE_BZip2', 'bzip2'))
+ args.append(from_variant('ADIOS2_USE_PNG', 'png'))
+ args.append(from_variant('ADIOS2_USE_SSC', 'ssc'))
if spec.version >= Version('2.5.0'):
- args.append('-DADIOS2_USE_DataSpaces={0}'.format(
- 'ON' if '+dataspaces' in spec else 'OFF'))
+ args.append(from_variant('ADIOS2_USE_DataSpaces', 'dataspaces'))
if spec.version >= Version('2.6.0'):
args.append('-DADIOS2_USE_IME=OFF')
@@ -194,8 +183,7 @@ class Adios2(CMakePackage):
])
if spec.satisfies('~shared'):
- args.append('-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL={0}'.format(
- 'ON' if '+pic' in spec else 'OFF'))
+ args.append(from_variant('CMAKE_POSITION_INDEPENDENT_CODE', 'pic'))
if spec.satisfies('%fj'):
args.extend([
@@ -208,3 +196,42 @@ class Adios2(CMakePackage):
% spec['python'].command.path)
return args
+
+ @property
+ def libs(self):
+ spec = self.spec
+ libs_to_seek = set()
+
+ if spec.satisfies('@2.6:'):
+ libs_to_seek.add('libadios2_core')
+ libs_to_seek.add('libadios2_c')
+ libs_to_seek.add('libadios2_cxx11')
+ if '+fortran' in spec:
+ libs_to_seek.add('libadios2_fortran')
+
+ if '+mpi' in spec:
+ libs_to_seek.add('libadios2_core_mpi')
+ libs_to_seek.add('libadios2_c_mpi')
+ libs_to_seek.add('libadios2_cxx11_mpi')
+ if '+fortran' in spec:
+ libs_to_seek.add('libadios2_fortran_mpi')
+
+ if (self.spec.satisfies('@2.7: +shared+hdf5') and
+ self.spec['hdf5'].satisfies('@1.12:')):
+ libs_to_seek.add('libadios2_h5vol')
+
+ else:
+ libs_to_seek.add('libadios2')
+ if '+fortran' in spec:
+ libs_to_seek.add('libadios2_fortran')
+
+ return find_libraries(list(libs_to_seek), root=self.spec.prefix,
+ shared=('+shared' in spec), recursive=True)
+
+ def setup_run_environment(self, env):
+ try:
+ all_libs = self.libs
+ idx = all_libs.basenames.index('libadios2_h5vol.so')
+ env.prepend_path('HDF5_PLUGIN_PATH', os.path.dirname(all_libs[idx]))
+ except ValueError:
+ pass
diff --git a/var/spack/repos/builtin/packages/adlbx/package.py b/var/spack/repos/builtin/packages/adlbx/package.py
index dad534faaa..a930619aa5 100644
--- a/var/spack/repos/builtin/packages/adlbx/package.py
+++ b/var/spack/repos/builtin/packages/adlbx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,14 +11,16 @@ class Adlbx(AutotoolsPackage):
"""ADLB/X: Master-worker library + work stealing and data dependencies"""
homepage = 'http://swift-lang.org/Swift-T'
- url = 'http://swift-lang.github.io/swift-t-downloads/spack/adlbx-0.9.2.tar.gz'
+ url = 'https://swift-lang.github.io/swift-t-downloads/spack/adlbx-1.0.0.tar.gz'
git = "https://github.com/swift-lang/swift-t.git"
version('master', branch='master')
+ version('1.0.0', sha256='9d547b1d36e5af1b11c97d0b700c6cb1fec2661cf583553e22b090e3619caba7')
version('0.9.2', sha256='524902d648001b689a98492402d754a607b8c1d0734699154063c1a4f3410d4a')
version('0.9.1', sha256='8913493fe0c097ff13c721ab057514e5bdb55f6318d4e3512692ab739c3190b3')
depends_on('exmcutils@master', when='@master')
+ depends_on('exmcutils@:0.5.7', when='@:0.9.2')
depends_on('exmcutils@:0.5.3', when='@:0.8.0')
depends_on('exmcutils', when='@0.9.1:')
depends_on('autoconf', type='build', when='@master')
diff --git a/var/spack/repos/builtin/packages/admixtools/package.py b/var/spack/repos/builtin/packages/admixtools/package.py
index 5b22451552..cda4b35460 100644
--- a/var/spack/repos/builtin/packages/admixtools/package.py
+++ b/var/spack/repos/builtin/packages/admixtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,15 +12,16 @@ class Admixtools(MakefilePackage):
of the methods and algorithm can be found in this paper.."""
homepage = "https://github.com/DReichLab/AdmixTools"
- url = "https://github.com/DReichLab/AdmixTools/archive/v7.0.1.tar.gz"
+ url = "https://github.com/DReichLab/AdmixTools/archive/v7.0.2.tar.gz"
+ version('7.0.2', sha256='d1dc1963e01017f40e05e28009008e14388a14a3facc75cff46653da585bd91e')
version('7.0.1', sha256='182dd6f55109e9a1569b47843b0d1aa89fe4cf4a05f9292519b9811faea67a20')
- version('7.0', sha256='c00faab626f02bbf9c25c6d2dcf661db225776e9ed61251f164e5edeb5a448e5')
- version('6.0', sha256='8fcd6c6834c7b33afdd7188516856d9c66b53c33dc82e133b72b56714fb67ad5')
- version('5.1', sha256='42b584cc785abfdfa9f39a341bdf81f800639737feaf3d07702de4a2e373557e')
- version('5.0', sha256='9f00637eac84c1ca152b65313d803616ee62c4156c7c737a33f5b31aeeac1367')
+ version('7.0', sha256='c00faab626f02bbf9c25c6d2dcf661db225776e9ed61251f164e5edeb5a448e5')
+ version('6.0', sha256='8fcd6c6834c7b33afdd7188516856d9c66b53c33dc82e133b72b56714fb67ad5')
+ version('5.1', sha256='42b584cc785abfdfa9f39a341bdf81f800639737feaf3d07702de4a2e373557e')
+ version('5.0', sha256='9f00637eac84c1ca152b65313d803616ee62c4156c7c737a33f5b31aeeac1367')
version('1.0.1', sha256='ef3afff161e6a24c0857678373138edb1251c24d7b5308a07f10bdb0dedd44d0')
- version('1.0', sha256='cf0d6950285e801e8a99c2a0b3dbbbc941a78e867af1767b1d002ec3f5803c4b')
+ version('1.0', sha256='cf0d6950285e801e8a99c2a0b3dbbbc941a78e867af1767b1d002ec3f5803c4b')
depends_on('lapack')
depends_on('gsl')
diff --git a/var/spack/repos/builtin/packages/adms/package.py b/var/spack/repos/builtin/packages/adms/package.py
new file mode 100644
index 0000000000..169752afc4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/adms/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 Adms(AutotoolsPackage):
+ """ADMS is a code generator that converts electrical compact device models
+ specified in high-level description language into ready-to-compile c code
+ for the API of spice simulators."""
+
+ homepage = "https://sourceforge.net/projects/mot-adms/"
+ url = "https://github.com/Qucs/ADMS/releases/download/release-2.3.7/adms-2.3.7.tar.gz"
+ git = "https://github.com/Qucs/ADMS.git"
+
+ maintainers = ['cessenat']
+
+ version('master', branch='master')
+ version('2.3.7', sha256='3a78e1283ecdc3f356410474b3ff44c4dcc82cb89772087fd3bbde8a1038ce08')
+
+ depends_on('bison@2.5:', type='build')
+ depends_on('flex', type='build')
+ depends_on('perl-xml-libxml', type='build')
+
+ @when('@master')
+ def autoreconf(self, spec, prefix):
+ sh = which('sh')
+ sh('./bootstrap.sh')
diff --git a/var/spack/repos/builtin/packages/adol-c/package.py b/var/spack/repos/builtin/packages/adol-c/package.py
index def99d8a4e..404a511236 100644
--- a/var/spack/repos/builtin/packages/adol-c/package.py
+++ b/var/spack/repos/builtin/packages/adol-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/advancecomp/package.py b/var/spack/repos/builtin/packages/advancecomp/package.py
index 149ff1bdb2..29c0b623f6 100644
--- a/var/spack/repos/builtin/packages/advancecomp/package.py
+++ b/var/spack/repos/builtin/packages/advancecomp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Advancecomp(AutotoolsPackage):
"""AdvanceCOMP contains recompression utilities for your .zip archives,
.png images, .mng video clips and .gz files."""
- homepage = "http://www.advancemame.it"
+ homepage = "https://www.advancemame.it"
url = "https://github.com/amadvance/advancecomp/archive/v2.1.tar.gz"
version('2.1', sha256='6113c2b6272334af710ba486e8312faa3cee5bd6dc8ca422d00437725e2b602a')
diff --git a/var/spack/repos/builtin/packages/adwaita-icon-theme/package.py b/var/spack/repos/builtin/packages/adwaita-icon-theme/package.py
new file mode 100644
index 0000000000..56c2db6bad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/adwaita-icon-theme/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 AdwaitaIconTheme(AutotoolsPackage):
+ """Mostly private use system icons."""
+
+ homepage = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme"
+ url = "https://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/3.38/adwaita-icon-theme-3.38.0.tar.xz"
+
+ version('3.38.0', sha256='6683a1aaf2430ccd9ea638dd4bfe1002bc92b412050c3dba20e480f979faaf97')
+
+ depends_on("gdk-pixbuf", type="build")
+ depends_on("librsvg", type="build")
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
+
+ def setup_build_environment(self, env):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
+
+ def setup_run_environment(self, env):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
diff --git a/var/spack/repos/builtin/packages/aegean/package.py b/var/spack/repos/builtin/packages/aegean/package.py
index eea46740a0..407e7d965a 100644
--- a/var/spack/repos/builtin/packages/aegean/package.py
+++ b/var/spack/repos/builtin/packages/aegean/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Aegean(MakefilePackage):
as well as a C library whose API provides access to AEGeAn's core
functions and data structures."""
- homepage = "http://brendelgroup.github.io/AEGeAn/"
+ homepage = "https://brendelgroup.github.io/AEGeAn/"
url = "https://github.com/BrendelGroup/AEGeAn/archive/v0.15.2.tar.gz"
version('0.15.2', sha256='734c9dd23ab3415c3966083bfde5fb72c81e6ace84e08ee3fe0d4c338331d975')
diff --git a/var/spack/repos/builtin/packages/aeskeyfind/package.py b/var/spack/repos/builtin/packages/aeskeyfind/package.py
index fdcfad760a..dd681ef218 100644
--- a/var/spack/repos/builtin/packages/aeskeyfind/package.py
+++ b/var/spack/repos/builtin/packages/aeskeyfind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aespipe/package.py b/var/spack/repos/builtin/packages/aespipe/package.py
index 70700bbb50..b8975a7472 100644
--- a/var/spack/repos/builtin/packages/aespipe/package.py
+++ b/var/spack/repos/builtin/packages/aespipe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/agrep/package.py b/var/spack/repos/builtin/packages/agrep/package.py
index dce047ad05..59fa8272fd 100644
--- a/var/spack/repos/builtin/packages/agrep/package.py
+++ b/var/spack/repos/builtin/packages/agrep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Agrep(MakefilePackage):
Developed 1989-1991 by Udi Manber, Sun Wu et al. at the University
of Arizona."""
- homepage = "http://www.tgries.de/agrep"
+ homepage = "https://www.tgries.de/agrep"
url = "https://www.tgries.de/agrep/agrep-3.41.tgz"
version('3.41', sha256='0508eafaf9725fc67cc955eb6d32ba4f50138443a4fea4275508d2c3f67a234e')
diff --git a/var/spack/repos/builtin/packages/aida/package.py b/var/spack/repos/builtin/packages/aida/package.py
index 592387b86b..1af20311a7 100644
--- a/var/spack/repos/builtin/packages/aida/package.py
+++ b/var/spack/repos/builtin/packages/aida/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,11 @@ from spack import *
class Aida(Package):
"""Abstract Interfaces for Data Analysis"""
- homepage = "http://aida.freehep.org/"
+ homepage = "https://aida.freehep.org/"
url = "ftp://ftp.slac.stanford.edu/software/freehep/AIDA/v3.2.1/aida-3.2.1.tar.gz"
+ tags = ['hep']
+
version('3.2.1', sha256='c51da83e99c0985a7ef3e8bc5a60c3ae61f3ca603b61100c2438b4cdadd5bb2e')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/akantu/package.py b/var/spack/repos/builtin/packages/akantu/package.py
index 939c14483b..dce8862426 100644
--- a/var/spack/repos/builtin/packages/akantu/package.py
+++ b/var/spack/repos/builtin/packages/akantu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/alan/package.py b/var/spack/repos/builtin/packages/alan/package.py
index fcf0b69f92..9b69a36c92 100644
--- a/var/spack/repos/builtin/packages/alan/package.py
+++ b/var/spack/repos/builtin/packages/alan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/albany/package.py b/var/spack/repos/builtin/packages/albany/package.py
index c906d898f5..32acd3c832 100644
--- a/var/spack/repos/builtin/packages/albany/package.py
+++ b/var/spack/repos/builtin/packages/albany/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -54,7 +54,7 @@ class Albany(CMakePackage):
# Add dependencies
depends_on('mpi')
- depends_on('trilinos~superlu-dist+isorropia+tempus+rythmos+teko+intrepid+intrepid2+minitensor+phalanx+pnetcdf+nox+piro+rol+shards+stk+superlu@master,develop')
+ depends_on('trilinos~superlu-dist+isorropia+tempus+rythmos+teko+intrepid+intrepid2+minitensor+phalanx+nox+piro+rol+shards+stk+superlu@master')
def cmake_args(self):
spec = self.spec
@@ -67,36 +67,21 @@ class Albany(CMakePackage):
])
options.extend([
- '-DENABLE_LCM:BOOL=%s' % (
- 'ON' if '+lcm' in spec else 'OFF'),
- '-DENABLE_AERAS:BOOL=%s' % (
- 'ON' if '+aeras' in spec else 'OFF'),
- '-DENABLE_QCAD:BOOL=%s' % (
- 'ON' if '+qcad' in spec else 'OFF'),
- '-DENABLE_HYDRIDE:BOOL=%s' % (
- 'ON' if '+hydride' in spec else 'OFF'),
- '-DENABLE_LCM_SPECULATIVE:BOOL=%s' % (
- 'ON' if '+lcm_spec' in spec else 'OFF'),
- '-DENABLE_LAME:BOOL=%s' % (
- 'ON' if '+lame' in spec else 'OFF'),
- '-DENABLE_DEBUGGING:BOOL=%s' % (
- 'ON' if '+debug' in spec else 'OFF'),
- '-DENABLE_CHECK_FPE:BOOL=%s' % (
- 'ON' if '+fpe' in spec else 'OFF'),
- '-DENABLE_SCOREC:BOOL=%s' % (
- 'ON' if '+scorec' in spec else 'OFF'),
- '-DENABLE_FELIX:BOOL=%s' % (
- 'ON' if '+felix' in spec else 'OFF'),
- '-DENABLE_MOR:BOOL=%s' % (
- 'ON' if '+mor' in spec else 'OFF'),
- '-DENABLE_ALBANY_CI:BOOL=%s' % (
- 'ON' if '+ci' in spec else 'OFF'),
- '-DENABLE_ASCR:BOOL=%s' % (
- 'ON' if '+ascr' in spec else 'OFF'),
- '-DENABLE_PERFORMANCE_TESTS:BOOL=%s' % (
- 'ON' if '+perf' in spec else 'OFF'),
- '-DENABLE_64BIT_INT:BOOL=%s' % (
- 'ON' if '+64bit' in spec else 'OFF')
+ self.define_from_variant('ENABLE_LCM', 'lcm'),
+ self.define_from_variant('ENABLE_AERAS', 'aeras'),
+ self.define_from_variant('ENABLE_QCAD', 'qcad'),
+ self.define_from_variant('ENABLE_HYDRIDE', 'hydride'),
+ self.define_from_variant('ENABLE_LCM_SPECULATIVE', 'lcm_spec'),
+ self.define_from_variant('ENABLE_LAME', 'lame'),
+ self.define_from_variant('ENABLE_DEBUGGING', 'debug'),
+ self.define_from_variant('ENABLE_CHECK_FPE', 'fpe'),
+ self.define_from_variant('ENABLE_SCOREC', 'scorec'),
+ self.define_from_variant('ENABLE_FELIX', 'felix'),
+ self.define_from_variant('ENABLE_MOR', 'mor'),
+ self.define_from_variant('ENABLE_ALBANY_CI', 'ci'),
+ self.define_from_variant('ENABLE_ASCR', 'ascr'),
+ self.define_from_variant('ENABLE_PERFORMANCE_TESTS', 'perf'),
+ self.define_from_variant('ENABLE_64BIT_INT', '64bit')
])
return options
diff --git a/var/spack/repos/builtin/packages/albert/package.py b/var/spack/repos/builtin/packages/albert/package.py
index 386220fa3a..f92054ead4 100644
--- a/var/spack/repos/builtin/packages/albert/package.py
+++ b/var/spack/repos/builtin/packages/albert/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Albert(MakefilePackage):
url = "https://github.com/kentavv/Albert/archive/v4.0a_opt4.tar.gz"
version('4.0a_opt4', sha256='80b9ee774789c9cd123072523cfb693c443c3624708a58a5af177a51f36b2c79')
+ version('4.0a', sha256='caf49e24fb9bf2a09053d9bf022c4737ffe61d62ce9c6bc32aa03dded2a14913')
depends_on('readline')
diff --git a/var/spack/repos/builtin/packages/alembic/package.py b/var/spack/repos/builtin/packages/alembic/package.py
new file mode 100644
index 0000000000..35173009dc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/alembic/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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 Alembic(CMakePackage):
+ """Alembic is an open computer graphics interchange
+ framework. Alembic distills complex, animated scenes into a
+ non-procedural, application-independent set of baked
+ geometric results."""
+
+ homepage = "https://www.alembic.io"
+ url = "https://github.com/alembic/alembic/archive/1.7.16.tar.gz"
+
+ version('1.7.16', sha256='2529586c89459af34d27a36ab114ad1d43dafd44061e65cfcfc73b7457379e7c')
+
+ variant('python', default=False, description='Python support')
+ variant('hdf5', default=False, description='HDF5 support')
+
+ depends_on('cmake@2.8.11:', type='build')
+ depends_on('openexr@2.2.0:')
+ depends_on('hdf5@1.8.9:', when="+hdf5")
+ depends_on('boost@1.55:')
+ depends_on('zlib')
+ depends_on('py-ilmbase', when="+python")
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('USE_HDF5', 'hdf5')
+ ]
+
+ if self.spec.satisfies('+python') and self.spec['python'].satisfies('@3:'):
+ args.append('-DPython_ADDITIONAL_VERSIONS=3')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/alglib/package.py b/var/spack/repos/builtin/packages/alglib/package.py
index 872cbfc6d3..0b94f914bf 100644
--- a/var/spack/repos/builtin/packages/alglib/package.py
+++ b/var/spack/repos/builtin/packages/alglib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class Alglib(MakefilePackage):
"""ALGLIB is a cross-platform numerical analysis and data processing
library."""
- homepage = "http://www.alglib.net"
- url = "http://www.alglib.net/translator/re/alglib-3.11.0.cpp.gpl.tgz"
+ homepage = "https://www.alglib.net/"
+ url = "https://www.alglib.net/translator/re/alglib-3.11.0.cpp.gpl.tgz"
version('3.11.0', sha256='34e391594aac89fb354bdaf58c42849489cd1199197398ba98bb69961f42bdb0')
diff --git a/var/spack/repos/builtin/packages/allpaths-lg/package.py b/var/spack/repos/builtin/packages/allpaths-lg/package.py
index b0bb49b3a1..954fc148a1 100644
--- a/var/spack/repos/builtin/packages/allpaths-lg/package.py
+++ b/var/spack/repos/builtin/packages/allpaths-lg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class AllpathsLg(AutotoolsPackage):
"""ALLPATHS-LG is our original short read assembler and it works on both
small and large (mammalian size) genomes."""
- homepage = "http://www.broadinstitute.org/software/allpaths-lg/blog/"
+ homepage = "https://www.broadinstitute.org/software/allpaths-lg/blog/"
url = "ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/latest_source_code/allpathslg-52488.tar.gz"
version('52488', sha256='035b49cb21b871a6b111976757d7aee9c2513dd51af04678f33375e620998542')
diff --git a/var/spack/repos/builtin/packages/alluxio/package.py b/var/spack/repos/builtin/packages/alluxio/package.py
index a0c9be78b0..50ed750b89 100644
--- a/var/spack/repos/builtin/packages/alluxio/package.py
+++ b/var/spack/repos/builtin/packages/alluxio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/alpaka/package.py b/var/spack/repos/builtin/packages/alpaka/package.py
new file mode 100644
index 0000000000..343ccb6eab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/alpaka/package.py
@@ -0,0 +1,79 @@
+# Copyright 2013-2021 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 Alpaka(CMakePackage, CudaPackage):
+ """Abstraction Library for Parallel Kernel Acceleration."""
+
+ homepage = "https://alpaka.readthedocs.io"
+ url = "https://github.com/alpaka-group/alpaka/archive/refs/tags/0.6.0.tar.gz"
+ git = "https://github.com/alpaka-group/alpaka.git"
+
+ maintainers = ['vvolkl']
+
+ version('develop', branch='develop')
+ version('0.7.0', sha256='4b61119a7b3b073f281ba15b63430db98b77dbd9420bc290a114f80121fbdd97')
+ version('0.6.0', sha256='7424ecaee3af15e587b327e983998410fa379c61d987bfe923c7e95d65db11a3')
+ version('0.5.0', sha256='0ba08ea19961dd986160219ba00d6162fe7758980d88a606eff6494d7b3a6cd1')
+ version('0.4.0', sha256='ad7905b13c22abcee4344ba225a65078e3f452ad45a9eda907e7d27c08315e46')
+
+ variant("backend", multi=True, values=('serial', 'threads', 'fiber', 'tbb', 'omp2_gridblock', 'omp2_blockthread', 'omp5', 'oacc', 'cuda', 'cuda_only', 'hip', 'hip_only'), description="Backends to enable", default='serial')
+
+ variant("examples", default=False, description="Build alpaka examples")
+
+ depends_on('boost')
+ depends_on('boost+fiber', when="backend=fiber")
+ depends_on('cmake@3.18:', when='@0.7.0:')
+
+ # make sure no other backend is enabled if using cuda_only or hip_only
+ for v in ('serial', 'threads', 'fiber', 'tbb', 'oacc',
+ 'omp2_gridblock', 'omp2_blockthread', 'omp5', 'cuda', 'hip'):
+ conflicts('backend=cuda_only,%s' % v)
+ conflicts('backend=hip_only,%s' % v)
+ conflicts('backend=cuda_only,hip_only')
+ for v in ('omp2_blockthread', 'omp2_blockthread', 'omp5'):
+ conflicts('backend=oacc,%s' % v)
+
+ # todo: add conflict between cuda 11.3 and gcc 10.3.0
+ # see https://github.com/alpaka-group/alpaka/issues/1297
+
+ def cmake_args(self):
+ spec = self.spec
+ args = []
+ if 'backend=serial' in spec:
+ args.append(self.define("ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLE", True))
+ if 'backend=threads' in self.spec:
+ args.append(self.define("ALPAKA_ACC_CPU_B_SEQ_T_THREADS_ENABLE", True))
+ if 'backend=fiber' in spec:
+ args.append(self.define("ALPAKA_ACC_CPU_B_SEQ_T_FIBERS_ENABLE", True))
+ if 'backend=tbb' in spec:
+ args.append(self.define("ALPAKA_ACC_CPU_B_TBB_T_SEQ_ENABLE", True))
+ if 'backend=omp2_gridblock' in spec:
+ args.append(self.define("ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE", True))
+ if 'backend=omp2_blockthread' in spec:
+ args.append(self.define("ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE", True))
+ if 'backend=omp5' in spec:
+ args.append(self.define("ALPAKA_ACC_ANY_BT_OMP5_ENABLE", True))
+ if 'backend=oacc' in spec:
+ args.append(self.define("ALPAKA_ACC_ANY_BT_OACC_ENABLE", True))
+ if 'backend=cuda' in spec:
+ args.append(self.define("ALPAKA_ACC_GPU_CUDA_ENABLE", True))
+ if 'backend=cuda_only' in spec:
+ args.append(self.define("ALPAKA_ACC_GPU_CUDA_ENABLE", True))
+ args.append(self.define("ALPAKA_ACC_GPU_CUDA_ONLY_MODE", True))
+ if 'backend=hip' in spec:
+ args.append(self.define("ALPAKA_ACC_GPU_HIP_ENABLE", True))
+ if 'backend=hip_only' in spec:
+ args.append(self.define("ALPAKA_ACC_GPU_HIP_ENABLE", True))
+ args.append(self.define("ALPAKA_ACC_GPU_HIP_ONLY_MODE", True))
+
+ args.append(self.define_from_variant("alpaka_BUILD_EXAMPLES",
+ "examples"))
+ # need to define, as it is explicitly declared as an option by alpaka:
+ args.append(self.define("BUILD_TESTING", self.run_tests))
+ return args
diff --git a/var/spack/repos/builtin/packages/alps/alps_climit.patch b/var/spack/repos/builtin/packages/alps/alps_climit.patch
new file mode 100644
index 0000000000..63a45a069a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/alps/alps_climit.patch
@@ -0,0 +1,11 @@
+diff -u -r -N e/alps/src/alps/osiris/xdrcore.C h/alps/src/alps/osiris/xdrcore.C
+--- e/alps/src/alps/osiris/xdrcore.C 2020-11-04 12:59:46.000000000 +0900
++++ h/alps/src/alps/osiris/xdrcore.C 2020-12-16 11:45:16.000000000 +0900
+@@ -66,6 +66,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdlib.h>
++#include <climits>
+
+ #include <alps/osiris/xdrcore.h>
+
diff --git a/var/spack/repos/builtin/packages/alps/alps_cmake_time.patch b/var/spack/repos/builtin/packages/alps/alps_cmake_time.patch
new file mode 100644
index 0000000000..0b64d830bd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/alps/alps_cmake_time.patch
@@ -0,0 +1,11 @@
+--- a/alps/config/run_test.cmake 2020-12-10 10:05:48.925076699 +0900
++++ b/alps/config/run_test.cmake 2020-12-10 11:37:18.180959480 +0900
+@@ -3,7 +3,7 @@
+ # (See accompanying file LICENSE_1_0.txt or copy at
+ # http://www.boost.org/LICENSE_1_0.txt)
+
+-find_program(cmd_path ${cmd} ${binarydir} ${dllexedir})
++find_program(cmd_path ${cmd} ${binarydir} ${dllexedir} NO_SYSTEM_ENVIRONMENT_PATH)
+
+ find_file(input_path ${input}.input ${binarydir} ${sourcedir})
+ if(NOT input_path)
diff --git a/var/spack/repos/builtin/packages/alps/alps_newgcc.patch b/var/spack/repos/builtin/packages/alps/alps_newgcc.patch
new file mode 100644
index 0000000000..27e89ad90f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/alps/alps_newgcc.patch
@@ -0,0 +1,59 @@
+diff -u -r -N a/alps/applications/dmrg/dmrg/dmtk/system.h b/alps/applications/dmrg/dmrg/dmtk/system.h
+--- a/alps/applications/dmrg/dmrg/dmtk/system.h 2020-10-20 15:38:28.000000000 +0900
++++ b/alps/applications/dmrg/dmrg/dmtk/system.h 2020-10-20 15:40:15.000000000 +0900
+@@ -577,8 +577,11 @@
+ {
+ s.write((const char *)&_numsweeps, sizeof(size_t));
+ for(int i = 1; i <= _numsweeps; i++){
+- s.write((const char *)&_sweeps(0,i), sizeof(double));
+- s.write((const char *)&_sweeps(1,i), sizeof(double));
++ double x;
++ x = _sweeps(0,i);
++ s.write((const char *)&x, sizeof(double));
++ x = _sweeps(1,i);
++ s.write((const char *)&x, sizeof(double));
+ }
+ s.write((const char *)&_in_warmup, sizeof(bool));
+ s.write((const char *)&_sweep, sizeof(int));
+diff -u -r -N a/alps/applications/dmrg/mps/framework/dmrg/mp_tensors/twositetensor.hpp b/alps/applications/dmrg/mps/framework/dmrg/mp_tensors/twositetensor.hpp
+--- a/alps/applications/dmrg/mps/framework/dmrg/mp_tensors/twositetensor.hpp 2020-10-20 14:47:06.000000000 +0900
++++ b/alps/applications/dmrg/mps/framework/dmrg/mp_tensors/twositetensor.hpp 2020-10-20 14:47:53.000000000 +0900
+@@ -216,8 +216,8 @@
+ swap(this->left_i, b.left_i);
+ swap(this->right_i, b.right_i);
+ swap(this->data_, b.data_);
+- swap(this->cur_storage, b.cur_storage);
+- swap(this->cur_normalization, b.cur_normalization);
++ this->swap(this->cur_storage, b.cur_storage);
++ this->swap(this->cur_normalization, b.cur_normalization);
+ }
+
+ template<class Matrix, class SymmGroup>
+diff -u -r -N a/alps/applications/qmc/sse4/model.h b/alps/applications/qmc/sse4/model.h
+--- a/alps/applications/qmc/sse4/model.h 2020-10-20 15:12:20.000000000 +0900
++++ b/alps/applications/qmc/sse4/model.h 2020-12-15 14:56:27.000000000 +0900
+@@ -140,11 +140,6 @@
+ return diag_vertex_indices[e_index(state, utype, sites)];
+ }
+
+- double max_diag_me() const
+- {
+- return _max_diag_me;
+- }
+-
+ double c(unsigned unit_type) const
+ {
+ return epsilon + _max_diag_me[unit_type];
+diff -u -r -N a/alps/src/alps/alea/histogram.h b/alps/src/alps/alea/histogram.h
+--- a/alps/src/alps/alea/histogram.h 2020-10-20 14:49:19.000000000 +0900
++++ b/alps/src/alps/alea/histogram.h 2020-12-15 14:56:59.000000000 +0900
+@@ -85,9 +85,7 @@
+ // forward a few things from container
+
+ const_iterator begin() const { return histogram_.begin();}
+- const_iterator rbegin() const { return histogram_.rbegin();}
+ const_iterator end() const { return histogram_.end();}
+- const_iterator rend() const { return histogram_.rend();}
+ size_type size() const { return histogram_.size();}
+ value_type operator[](size_type i) const { return histogram_[i];}
+ value_type at(size_type i) const { return histogram_.at(i);}
diff --git a/var/spack/repos/builtin/packages/alps/package.py b/var/spack/repos/builtin/packages/alps/package.py
index 55df872933..ef2686f724 100644
--- a/var/spack/repos/builtin/packages/alps/package.py
+++ b/var/spack/repos/builtin/packages/alps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,12 +13,12 @@ class Alps(CMakePackage):
"""
homepage = "https://alps.comp-phys.org"
- url = "http://alps.comp-phys.org/static/software/releases/alps-2.3.0-src.tar.gz"
+ url = "https://alps.comp-phys.org/static/software/releases/alps-2.3.0-src.tar.gz"
version('2.3.0', sha256='e64208d1e5acdd6f569277413c4867e1fa366cf4a224570eacbf1e9939fca2d2')
# Refs for building from source and recipes
- # http://alps.comp-phys.org/mediawiki/index.php/Building_ALPS_from_source
+ # https://alps.comp-phys.org/mediawiki/index.php/Building_ALPS_from_source
# https://github.com/easybuilders/easybuild-easyconfigs/tree/master/easybuild/easyconfigs/a/ALPS
# https://github.com/conda-forge/alps-feedstock/tree/master/recipe
@@ -33,12 +33,22 @@ class Alps(CMakePackage):
depends_on('py-scipy', type=('build', 'run'))
depends_on('py-matplotlib', type=('build', 'run'))
- # build fails with gcc@7:
- conflicts('%gcc@7:')
+ # use depends_on to help with dependency resolution
+ depends_on('py-numpy@:1.19', when='^python@:3.6.99')
+ depends_on('py-scipy@:1.5', when='^python@:3.6.99')
+
+ # fix for gcc@7:
+ patch('alps_newgcc.patch', when='%gcc@7:')
# remove a problematic build variable
patch('mpi.patch')
+ # include climits to use INT_MAX
+ patch('alps_climit.patch')
+
+ # ctest tries to test '/usr/bin/time'
+ patch('alps_cmake_time.patch')
+
extends('python')
root_cmakelists_dir = 'alps'
@@ -48,3 +58,30 @@ class Alps(CMakePackage):
args.append('Boost_ROOT_DIR=' + self.spec['boost'].prefix)
args.append("-DCMAKE_CXX_FLAGS={0}".format(self.compiler.cxx98_flag))
return args
+
+ def _single_test(self, target, exename, dataname, opts=[]):
+ troot = self.prefix.tutorials
+ copy_tree(join_path(troot, target), target)
+
+ if target == 'dmrg-01-dmrg':
+ test_dir = self.test_suite.current_test_data_dir
+ copy(join_path(test_dir, dataname), target)
+
+ self.run_test('parameter2xml',
+ options=[dataname, 'SEED=123456'],
+ work_dir=target
+ )
+ options = []
+ options.extend(opts)
+ options.extend(['--write-xml', '{0}.in.xml'.format(dataname)])
+ self.run_test(exename,
+ options=options,
+ expected=['Finished with everything.'],
+ work_dir=target
+ )
+
+ def test(self):
+ self._single_test('mc-02-susceptibilities', 'spinmc', 'parm2a',
+ ['--Tmin', '10'])
+ self._single_test('ed-01-sparsediag', 'sparsediag', 'parm1a')
+ self._single_test('dmrg-01-dmrg', 'dmrg', 'spin_one_half')
diff --git a/var/spack/repos/builtin/packages/alps/test/spin_one_half b/var/spack/repos/builtin/packages/alps/test/spin_one_half
new file mode 100644
index 0000000000..bb47ce88e7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/alps/test/spin_one_half
@@ -0,0 +1,9 @@
+LATTICE="open chain lattice"
+MODEL="spin"
+CONSERVED_QUANTUMNUMBERS="N,Sz"
+Sz_total=0
+J=1
+SWEEPS=4
+NUMBER_EIGENVALUES=1
+L=32
+{MAXSTATES=100}
diff --git a/var/spack/repos/builtin/packages/alquimia/package.py b/var/spack/repos/builtin/packages/alquimia/package.py
index d999fb1129..5462da1255 100644
--- a/var/spack/repos/builtin/packages/alquimia/package.py
+++ b/var/spack/repos/builtin/packages/alquimia/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,7 +20,6 @@ class Alquimia(CMakePackage):
version('xsdk-0.5.0', commit='8397c3b00a09534c5473ff3ab21f0e32bb159380')
version('xsdk-0.4.0', commit='2edad6733106142d014bb6e6a73c2b21d5e3cf2d')
version('xsdk-0.3.0', tag='xsdk-0.3.0')
- version('xsdk-0.2.0', tag='xsdk-0.2.0')
variant('shared', default=True,
description='Enables the build of shared libraries')
@@ -35,7 +34,6 @@ class Alquimia(CMakePackage):
depends_on('pflotran@develop', when='@develop')
depends_on('petsc@3.10.0:3.10.99', when='@xsdk-0.4.0')
depends_on('petsc@3.8.0:3.8.99', when='@xsdk-0.3.0')
- depends_on('petsc@xsdk-0.2.0', when='@xsdk-0.2.0')
depends_on('petsc@3.10:', when='@develop')
def cmake_args(self):
@@ -44,8 +42,7 @@ class Alquimia(CMakePackage):
options = ['-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
'-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
'-DUSE_XSDK_DEFAULTS=YES',
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
'-DTPL_ENABLE_MPI:BOOL=ON',
'-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix,
'-DTPL_ENABLE_HDF5:BOOL=ON',
diff --git a/var/spack/repos/builtin/packages/alsa-lib/package.py b/var/spack/repos/builtin/packages/alsa-lib/package.py
index a267f430e2..69277ddc33 100644
--- a/var/spack/repos/builtin/packages/alsa-lib/package.py
+++ b/var/spack/repos/builtin/packages/alsa-lib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aluminum/package.py b/var/spack/repos/builtin/packages/aluminum/package.py
index 8b3453dd54..4bf96ebc80 100644
--- a/var/spack/repos/builtin/packages/aluminum/package.py
+++ b/var/spack/repos/builtin/packages/aluminum/package.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
-class Aluminum(CMakePackage, CudaPackage):
+class Aluminum(CMakePackage, CudaPackage, ROCmPackage):
"""Aluminum provides a generic interface to high-performance
communication libraries, with a focus on allreduce
algorithms. Blocking and non-blocking algorithms and GPU-aware
@@ -22,6 +23,8 @@ class Aluminum(CMakePackage, CudaPackage):
maintainers = ['bvanessen']
version('master', branch='master')
+ version('1.0.0', sha256='028d12e271817214db5c07c77b0528f88862139c3e442e1b12f58717290f414a')
+ version('0.7.0', sha256='bbb73d2847c56efbe6f99e46b41d837763938483f2e2d1982ccf8350d1148caa')
version('0.6.0', sha256='6ca329951f4c7ea52670e46e5020e7e7879d9b56fed5ff8c5df6e624b313e925')
version('0.5.0', sha256='dc365a5849eaba925355a8efb27005c5f22bcd1dca94aaed8d0d29c265c064c1')
version('0.4.0', sha256='4d6fab5481cc7c994b32fb23a37e9ee44041a9f91acf78f981a97cb8ef57bb7d')
@@ -37,12 +40,19 @@ class Aluminum(CMakePackage, CudaPackage):
' communication of accelerator data')
variant('cuda_rma', default=False, description='Builds with support for CUDA intra-node '
' Put/Get and IPC RMA functionality')
+ variant('rccl', default=False, description='Builds with support for NCCL communication lib')
depends_on('cmake@3.17.0:', type='build')
depends_on('mpi')
- depends_on('nccl', when='+nccl')
+ depends_on('nccl@2.7.0-0:', when='+nccl')
depends_on('hwloc@1.11:')
+ depends_on('hwloc +cuda +nvml', when='+cuda')
+ depends_on('hwloc@2.3.0:', when='+rocm')
depends_on('cub', when='@:0.1,0.6.0: +cuda ^cuda@:10.99')
+ depends_on('hipcub', when='@:0.1,0.6.0: +rocm')
+
+ conflicts('~cuda', when='+cuda_rma', msg='CUDA RMA support requires CUDA')
+ conflicts('+cuda', when='+rocm', msg='CUDA and ROCm support are mutually exclusive')
generator = 'Ninja'
depends_on('ninja', type='build')
@@ -50,10 +60,22 @@ class Aluminum(CMakePackage, CudaPackage):
def cmake_args(self):
spec = self.spec
args = [
+ '-DCMAKE_CXX_STANDARD:STRING=17',
'-DALUMINUM_ENABLE_CUDA:BOOL=%s' % ('+cuda' in spec),
- '-DALUMINUM_ENABLE_NCCL:BOOL=%s' % ('+nccl' in spec)]
+ '-DALUMINUM_ENABLE_NCCL:BOOL=%s' % ('+nccl' in spec or '+rccl' in spec),
+ '-DALUMINUM_ENABLE_ROCM:BOOL=%s' % ('+rocm' in spec)]
+
+ if '+cuda' in spec:
+ if spec.satisfies('^cuda@11.0:'):
+ args.append('-DCMAKE_CUDA_STANDARD=17')
+ else:
+ args.append('-DCMAKE_CUDA_STANDARD=14')
+ archs = spec.variants['cuda_arch'].value
+ if archs != 'none':
+ arch_str = ";".join(archs)
+ args.append('-DCMAKE_CUDA_ARCHITECTURES=%s' % arch_str)
- if '@0.5:':
+ if spec.satisfies('@0.5:'):
args.extend([
'-DALUMINUM_ENABLE_HOST_TRANSFER:BOOL=%s' % ('+ht' in spec),
'-DALUMINUM_ENABLE_MPI_CUDA:BOOL=%s' %
@@ -76,4 +98,17 @@ class Aluminum(CMakePackage, CudaPackage):
args.extend([
'-DOpenMP_DIR={0}'.format(clang_root)])
+ if '+rocm' in spec:
+ args.extend([
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
+ '-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc),
+ '-DCMAKE_CXX_FLAGS=-std=c++17'])
+ archs = self.spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ args.append(
+ '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'
+ ' -g -fsized-deallocation -fPIC -std=c++17'.format(arch_str)
+ )
+
return args
diff --git a/var/spack/repos/builtin/packages/ambari/package.py b/var/spack/repos/builtin/packages/ambari/package.py
index 796f1a33a6..2348a3c80d 100644
--- a/var/spack/repos/builtin/packages/ambari/package.py
+++ b/var/spack/repos/builtin/packages/ambari/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/amber/package.py b/var/spack/repos/builtin/packages/amber/package.py
index 797d708fbc..95852f3007 100644
--- a/var/spack/repos/builtin/packages/amber/package.py
+++ b/var/spack/repos/builtin/packages/amber/package.py
@@ -1,58 +1,67 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Amber(Package, CudaPackage):
"""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"""
+ A manual download is required for Ambers. 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
+ https://spack.readthedocs.io/en/latest/mirrors.html
+
+ Note: Only certain versions of ambertools are compatible with amber.
+ Only the latter version of ambertools for each amber version is supported.
+ """
- homepage = "http://ambermd.org/"
+ homepage = "https://ambermd.org/"
url = "file://{0}/Amber18.tar.bz2".format(os.getcwd())
- maintainers = ['hseara']
+ manual_download = True
- def url_for_version(self, version):
- url = "file://{0}/Amber{1}.tar.bz2".format(
- os.getcwd(), version.up_to(1))
- return url
+ maintainers = ['hseara']
version(
- '18.20', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277')
+ '20', sha256='a4c53639441c8cc85adee397933d07856cc4a723c82c6bea585cd76c197ead75')
version(
- '18.19', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277')
+ '18', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277')
version(
- '16.16', sha256='3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d')
+ '16', sha256='3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d',
+ deprecated=True)
- resources = [
+ 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}.{1}'.format(ver, ambertools_ver),
+ '20': ('20', 'b1e1f8f277c54e88abc9f590e788bbb2f7a49bcff5e8d8a6eacfaf332a4890f9'),
+ '18': ('19', '0c86937904854b64e4831e047851f504ec45b42e593db4ded92c1bee5973e699'),
+ '16': ('16', '7b876afe566e9dd7eb6a5aa952a955649044360f15c1f5d4d91ba7f41f3105fa'),
+ }
+ for ver, (ambertools_ver, ambertools_checksum) in resources.items():
+ resource(when='@{0}'.format(ver),
name='AmberTools',
- url='file://{0}/AmberTools{1}.tar.bz2'.format(os.getcwd(),
- ambertools_ver),
- sha256=checksum,
+ url='http://ambermd.org/downloads/AmberTools{0}.tar.bz2'.format(
+ ambertools_ver),
+ sha256=ambertools_checksum,
destination='',
placement='ambertools_tmpdir',
)
patches = [
+ ('20', '1', '10780cb91a022b49ffdd7b1e2bf4a572fa4edb7745f0fc4e5d93b158d6168e42'),
+ ('20', '2', '9c973e3f8f33a271d60787e8862901e8f69e94e7d80cda1695f7fad7bc396093'),
+ ('20', '3', 'acb359dc9b1bcff7e0f1965baa9f3f3dc18eeae99c49f1103c1e2986c0bbeed8'),
+ ('20', '4', 'fd93c74f5ec80689023648cdd12b2c5fb21a3898c81ebc3fa256ef244932562a'),
+ ('20', '5', '8e46d5be28c002f560050a71f4851b01ef45a3eb66ac90d7e23553fae1370e68'),
+ ('20', '6', '8cf9707b3d08ad9242326f02d1861831ad782c9bfb0c46e7b1f0d4640571d5c1'),
+ ('20', '7', '143b6a09f774aeae8b002afffb00839212020139a11873a3a1a34d4a63fa995d'),
+ ('20', '8', 'a6fc6d5c8ba0aad3a8afe44d1539cc299ef78ab53721e28244198fd5425d14ad'),
+ ('20', '9', '5ce6b534bab869b1e9bfefa353d7f578750e54fa72c8c9d74ddf129d993e78cf'),
('18', '1', '3cefac9a24ece99176d5d2d58fea2722de3e235be5138a128428b9260fe922ad'),
('18', '2', '3a0707a9a59dcbffa765dcf87b68001450095c51b96ec39d21260ba548a2f66a'),
('18', '3', '24c2e06f71ae553a408caa3f722254db2cbf1ca4db274542302184e3d6ca7015'),
@@ -92,17 +101,17 @@ class Amber(Package, CudaPackage):
sha256=checksum, level=0, when='@{0}'.format(ver))
# Patch to add ppc64le in config.guess
- patch('ppc64le.patch', when='@18.20')
+ patch('ppc64le.patch', when='@18: target=ppc64le')
# Patch to add aarch64 in config.guess
- patch('aarch64.patch', when='@18.20')
+ patch('aarch64.patch', when='@18: target=aarch64')
# Workaround to modify the AmberTools script when using the NVIDIA
# compilers
- patch('nvhpc.patch', when='@18.20 %nvhpc')
+ patch('nvhpc.patch', when='@18: %nvhpc')
# Workaround to use NVIDIA compilers to build the bundled Boost
- patch('nvhpc-boost.patch', when='@18.20 %nvhpc')
+ patch('nvhpc-boost.patch', when='@18: %nvhpc')
variant('mpi', description='Build MPI executables',
default=True)
diff --git a/var/spack/repos/builtin/packages/amdblis/package.py b/var/spack/repos/builtin/packages/amdblis/package.py
index e4657aeb8c..22fa9165eb 100644
--- a/var/spack/repos/builtin/packages/amdblis/package.py
+++ b/var/spack/repos/builtin/packages/amdblis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,9 +17,22 @@ class Amdblis(BlisBase):
_name = 'amdblis'
homepage = "https://developer.amd.com/amd-aocl/blas-library/"
- url = "https://github.com/amd/blis/archive/2.2.tar.gz"
+ url = "https://github.com/amd/blis/archive/3.0.tar.gz"
git = "https://github.com/amd/blis.git"
maintainers = ['amd-toolchain-support']
+ version('3.0', sha256='ac848c040cd6c3550fe49148dbdf109216cad72d3235763ee7ee8134e1528517')
version('2.2', sha256='e1feb60ac919cf6d233c43c424f6a8a11eab2c62c2c6e3f2652c15ee9063c0c9')
+
+ def configure_args(self):
+ spec = self.spec
+ args = super(Amdblis, self).configure_args()
+
+ if spec.satisfies('@3.0 %aocc'):
+ """ To enabled Fortran to C calling convention for
+ complex types when compiling with aocc flang"""
+ args.append('CFLAGS={0}'.format("-DAOCL_F2C"))
+ args.append('CXXFLAGS={0}'.format("-DAOCL_F2C"))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/amdfftw/package.py b/var/spack/repos/builtin/packages/amdfftw/package.py
index 9e4887ae98..a43baa1094 100644
--- a/var/spack/repos/builtin/packages/amdfftw/package.py
+++ b/var/spack/repos/builtin/packages/amdfftw/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
from spack.pkg.builtin.fftw import FftwBase
@@ -25,50 +26,74 @@ class Amdfftw(FftwBase):
_name = 'amdfftw'
homepage = "https://developer.amd.com/amd-aocl/fftw/"
- url = "https://github.com/amd/amd-fftw/archive/2.2.tar.gz"
+ url = "https://github.com/amd/amd-fftw/archive/3.0.tar.gz"
git = "https://github.com/amd/amd-fftw.git"
maintainers = ['amd-toolchain-support']
+ version('3.0', sha256='a69deaf45478a59a69f77c4f7e9872967f1cfe996592dd12beb6318f18ea0bcd')
version('2.2', sha256='de9d777236fb290c335860b458131678f75aa0799c641490c644c843f0e246f8')
- variant('shared', default=True, description='Builds a shared version of the library')
+ variant('shared', default=True, description="Builds a shared version of the library")
variant('openmp', default=True, description="Enable OpenMP support")
- variant('debug', default=False, description='Builds a debug version of the library')
+ variant('threads', default=False, description="Enable SMP threads support")
+ variant('debug', default=False, description="Builds a debug version of the library")
+ variant(
+ 'amd-fast-planner',
+ default=False,
+ description="Option to reduce the planning time without much"
+ "tradeoff in the performance. It is supported for"
+ "Float and double precisions only.")
depends_on('texinfo')
provides('fftw-api@3', when='@2:')
- conflicts('precision=quad', when='%aocc', msg="AOCC clang doesn't support quad precision")
- conflicts('+debug', when='%aocc', msg="AOCC clang doesn't support debug")
+ conflicts('precision=quad', when='@2.2 %aocc', msg="AOCC clang doesn't support quad precision")
+ conflicts('+debug', when='@2.2 %aocc', msg="AOCC clang doesn't support debug")
conflicts('%gcc@:7.2', when="@2.2:", msg="Required GCC version above 7.2 for AMDFFTW")
+ conflicts('+amd-fast-planner', when="@2.2", msg="amd-fast-planner is supported from 3.0 onwards")
+ conflicts(
+ '+amd-fast-planner',
+ when='precision=quad',
+ msg="amd-fast-planner doesn't support quad precision")
+ conflicts(
+ '+amd-fast-planner',
+ when='precision=long_double',
+ msg="amd-fast-planner doesn't support long_double precision")
def configure(self, spec, prefix):
"""Configure function"""
# Base options
options = [
'--prefix={0}'.format(prefix),
- '--enable-amd-opt',
- '--enable-threads'
+ '--enable-amd-opt'
]
# Check if compiler is AOCC
- if spec.satisfies('%aocc'):
+ if '%aocc' in spec:
options.append("CC={0}".format(os.path.basename(spack_cc)))
- options.append("CXX={0}".format(os.path.basename(spack_cxx)))
options.append("FC={0}".format(os.path.basename(spack_fc)))
+ options.append("F77={0}".format(os.path.basename(spack_fc)))
if '+shared' in spec:
options.append('--enable-shared')
else:
options.append('--disable-shared')
+ if '+debug' in spec:
+ options.append('--enable-debug')
+
if '+openmp' in spec:
options.append('--enable-openmp')
else:
options.append('--disable-openmp')
+ if '+threads' in spec:
+ options.append('--enable-threads')
+ else:
+ options.append('--disable-threads')
+
if '+mpi' in spec:
options.append('--enable-mpi')
options.append('--enable-amd-mpifft')
@@ -76,24 +101,33 @@ class Amdfftw(FftwBase):
options.append('--disable-mpi')
options.append('--disable-amd-mpifft')
+ if '+amd-fast-planner' in spec:
+ options.append('--enable-amd-fast-planner')
+ else:
+ options.append('--disable-amd-fast-planner')
+
if not self.compiler.f77 or not self.compiler.fc:
options.append("--disable-fortran")
+ # Cross compilation is supported in amd-fftw by making use of target
+ # variable to set AMD_ARCH configure option.
+ # Spack user can not directly use AMD_ARCH for this purpose but should
+ # use target variable to set appropriate -march option in AMD_ARCH.
+ arch = spec.architecture
+ options.append(
+ "AMD_ARCH={0}".format(
+ arch.target.optimization_flags(
+ spec.compiler).split("=")[-1]))
+
# Specific SIMD support.
# float and double precisions are supported
- simd_features = ['sse2', 'avx', 'avx2', 'avx512', 'avx-128-fma',
- 'kcvi', 'vsx', 'neon']
+ simd_features = ['sse2', 'avx', 'avx2']
+
simd_options = []
for feature in simd_features:
msg = '--enable-{0}' if feature in spec.target else '--disable-{0}'
simd_options.append(msg.format(feature))
- simd_options += [
- '--enable-fma' if 'fma' in spec.target else '--disable-fma'
- ]
-
- float_simd_features = ['altivec', 'sse']
-
# When enabling configure option "--enable-amd-opt", do not use the
# configure option "--enable-generic-simd128" or
# "--enable-generic-simd256"
@@ -117,14 +151,5 @@ class Amdfftw(FftwBase):
if precision in ('float', 'double'):
opts += simd_options
- # float-only acceleration
- if precision == 'float':
- for feature in float_simd_features:
- if feature in spec.target:
- msg = '--enable-{0}'
- else:
- msg = '--disable-{0}'
- opts.append(msg.format(feature))
-
with working_dir(precision, create=True):
configure(*opts)
diff --git a/var/spack/repos/builtin/packages/amdlibflame/cray-compiler-wrapper.patch b/var/spack/repos/builtin/packages/amdlibflame/cray-compiler-wrapper.patch
new file mode 100644
index 0000000000..bae772f365
--- /dev/null
+++ b/var/spack/repos/builtin/packages/amdlibflame/cray-compiler-wrapper.patch
@@ -0,0 +1,28 @@
+commit 8c06c4fd8b3f5b41431a06eb72bcc827b729db86
+Author: Tiziano Müller <tiziano.mueller@chem.uzh.ch>
+Date: Mon Jun 14 22:20:17 2021 +0200
+
+ use separate whole-archive/no-whole-archive to fix build with Cray compiler wrappers
+
+diff --git a/Makefile b/Makefile
+index d50f9d19..0c7c15c4 100644
+--- a/Makefile
++++ b/Makefile
+@@ -566,7 +566,7 @@ ifeq ($(FLA_ENABLE_MAX_ARG_LIST_HACK),yes)
+ ifeq ($(OS_NAME),Darwin)
+ $(LINKER) $(SOFLAGS) -o $@ -Wl,-force_load,$(LIBFLAME_A) $(LDFLAGS)
+ else
+- $(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive,$(LIBFLAME_A),--no-whole-archive $(LDFLAGS)
++ $(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive $(LIBFLAME_A) -Wl,--no-whole-archive $(LDFLAGS)
+ endif
+ else
+ # NOTE: Can't use $^ automatic variable as long as $(AR_OBJ_LIST_FILE) is in
+@@ -580,7 +580,7 @@ ifeq ($(FLA_ENABLE_MAX_ARG_LIST_HACK),yes)
+ ifeq ($(OS_NAME),Darwin)
+ @$(LINKER) $(SOFLAGS) -o $@ -Wl,-force_load,$(LIBFLAME_A) $(LDFLAGS)
+ else
+- @$(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive,$(LIBFLAME_A),--no-whole-archive $(LDFLAGS)
++ @$(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive $(LIBFLAME_A) -Wl,--no-whole-archive $(LDFLAGS)
+ endif
+ else
+ # NOTE: Can't use $^ automatic variable as long as $(AR_OBJ_LIST_FILE) is in
diff --git a/var/spack/repos/builtin/packages/amdlibflame/package.py b/var/spack/repos/builtin/packages/amdlibflame/package.py
index 2a19f6df89..4b35d337eb 100644
--- a/var/spack/repos/builtin/packages/amdlibflame/package.py
+++ b/var/spack/repos/builtin/packages/amdlibflame/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -30,18 +30,22 @@ class Amdlibflame(LibflameBase):
"""
_name = 'amdlibflame'
- homepage = "http://developer.amd.com/amd-cpu-libraries/blas-library/#libflame"
- url = "https://github.com/amd/libflame/archive/2.2.tar.gz"
+ homepage = "https://developer.amd.com/amd-cpu-libraries/blas-library/#libflame"
+ url = "https://github.com/amd/libflame/archive/3.0.tar.gz"
git = "https://github.com/amd/libflame.git"
maintainers = ['amd-toolchain-support']
+ version('3.0', sha256='d94e08b688539748571e6d4c1ec1ce42732eac18bd75de989234983c33f01ced')
version('2.2', sha256='12b9c1f92d2c2fa637305aaa15cf706652406f210eaa5cbc17aaea9fcfa576dc')
patch('aocc-2.2.0.patch', when="@:2.999", level=1)
+ patch('cray-compiler-wrapper.patch')
provides('flame@5.2', when='@2:')
+ depends_on('python+pythoncmd', type='build')
+
@property
def lapack_libs(self):
"""find lapack_libs function"""
@@ -54,6 +58,12 @@ class Amdlibflame(LibflameBase):
"""configure_args function"""
args = super(Amdlibflame, self).configure_args()
args.append("--enable-external-lapack-interfaces")
+
+ """To enabled Fortran to C calling convention for
+ complex types when compiling with aocc flang"""
+ if "@3.0: %aocc" in self.spec:
+ args.append("--enable-f2c-dotc")
+
return args
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/amdlibm/0001-libm-ose-Scripts-cleanup-pyc-files.patch b/var/spack/repos/builtin/packages/amdlibm/0001-libm-ose-Scripts-cleanup-pyc-files.patch
new file mode 100755
index 0000000000..fc084b7d4b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/amdlibm/0001-libm-ose-Scripts-cleanup-pyc-files.patch
@@ -0,0 +1,601 @@
+From edd381260e27226d48108ec7b578c43caf723640 Mon Sep 17 00:00:00 2001
+From: Pranoy Jayaraj <Pranoy.Jayaraj@amd.com>
+Date: Sun, 20 Dec 2020 18:04:38 +0530
+Subject: [PATCH 1/2] libm:ose:Scripts:cleanup pyc files
+
+---
+ SConstruct | 29 +++++++-
+ scripts/cfg/__init__.py | 59 ++++++++---------
+ scripts/cfg/compiler/__init__.py | 109 ++++++++++++++-----------------
+ scripts/cfg/compiler/gcc.py | 105 +++++++++++++++--------------
+ scripts/cfg/compiler/llvm.py | 57 ++++++++++++----
+ scripts/cfg/helper.py | 14 ++++
+ src/SConscript | 3 +
+ 7 files changed, 220 insertions(+), 156 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 79a7695..64150c0 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -53,6 +53,22 @@ defcfg = DefaultCfg(build_root=Dir('#build', create=True))
+
+ env = defcfg.GetDefaultEnv()
+
++#check intel lib path
++intel_lib_path = None
++libabi = env['libabi']
++if libabi == 'svml':
++ for p in env['ENV']['PATH'].split(':'):
++ if 'intel' in p:
++ intel_lib_path=p
++ break
++
++ if intel_lib_path is None:
++ print ("Error! Intel lib not found")
++ Exit(2)
++ else:
++ print (intel_lib_path)
++ env.Append(INTEL_LIB_PATH = intel_lib_path)
++
+ # Add shared top-level headers
+ env.Prepend(CPPPATH=[Dir('include')])
+
+@@ -98,10 +114,17 @@ targets += amdlibm
+ #
+ # Build Test lib and associated tests
+ #
++
+ testenv = env.Clone()
+-testenv.Append(
+- LIBPATH=['#'+joinpath(build_root,'src')]
+-)
++if libabi == 'svml':
++ testenv.Append(
++ LIBPATH=['#'+joinpath(build_root,'src'), env['INTEL_LIB_PATH']]
++ )
++else:
++ testenv.Append(
++ LIBPATH=['#'+joinpath(build_root,'src')]
++ )
++
+ test_lib_objs = [] # Will fill at a later date
+ test_objs = SConscript(dirs='tests',
+ exports = {'env' : testenv},
+diff --git a/scripts/cfg/__init__.py b/scripts/cfg/__init__.py
+index d4f34eb..b21ed2f 100644
+--- a/scripts/cfg/__init__.py
++++ b/scripts/cfg/__init__.py
+@@ -1,28 +1,7 @@
++# Copyright (C) Prem Mallappa
+ #
+-# Copyright (C) 2008-2020 Advanced Micro Devices, Inc. All rights reserved.
++# Author: Prem Mallappa <prem.mallappa@gmail.com>
+ #
+-# Redistribution and use in source and binary forms, with or without modification,
+-# are permitted provided that the following conditions are met:
+-# 1. Redistributions of source code must retain the above copyright notice,
+-# this list of conditions and the following disclaimer.
+-# 2. Redistributions in binary form must reproduce the above copyright notice,
+-# this list of conditions and the following disclaimer in the documentation
+-# and/or other materials provided with the distribution.
+-# 3. Neither the name of the copyright holder nor the names of its contributors
+-# may be used to endorse or promote products derived from this software without
+-# specific prior written permission.
+-#
+-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+-# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+-# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+-# POSSIBILITY OF SUCH DAMAGE.
+-
+ from os.path import join as joinpath
+ from os import environ
+
+@@ -66,7 +45,9 @@ class DefaultCfg(object):
+ self.defenv = Environment(variables = self.defvars,
+ ENV = {'PATH' : environ['PATH']})
+
+- self.Check()
++ #self.Check()
++ #for key in self.defvars.keys():
++ # print(key)
+
+ def AddOptions(self):
+ opts = cfg.LocalOption()
+@@ -119,6 +100,13 @@ class DefaultCfg(object):
+ --toolchain-base=/usr/local/toolchain/
+ CC will be used as /usr/local/toolchain/bin/gcc if --compiler is gcc""")
+
++ opts.Add('--prefix', dest='prefix', nargs=1, action='callback',
++ type='str',
++ callback=self.__default_store,
++ help="""Specify an install prefix directory
++ the directory will be create if non-existant""")
++
++
+ self.opts = opts
+
+ def AddVariables(self):
+@@ -130,7 +118,7 @@ class DefaultCfg(object):
+ map={}, ignorecase=0), # case sensitive
+ # test abi makes tests to call out for given library call
+ EnumVariable('libabi', 'Test ABI for library function calling', 'aocl',
+- allowed_values=('aocl', 'glibc', 'libm', 'acml','amdlibm'),
++ allowed_values=('aocl', 'glibc', 'libm', 'acml','amdlibm', 'svml'),
+ map={}, ignorecase=2), # lowercase always
+ EnumVariable('developer', 'A developer friendly mode', 0,
+ allowed_values=('0', '1', '2', '3', '4'),
+@@ -140,9 +128,15 @@ class DefaultCfg(object):
+ EnumVariable('compiler', "Select compiler type", 'gcc',
+ allowed_values=('gcc', 'aocc', 'llvm', 'icc'), ignorecase=2),
+
+- PathVariable('toolchain_base', "Use this as toolchain prefix", '/usr/bin')
++ PathVariable('toolchain_base', "Use this as toolchain prefix", '/usr/bin'),
++ PathVariable('prefix', "use this as install prefix", '/usr/local')
+ )
+
++ defvars.Add(PathVariable('CC', help="Custome C compiler", default=None,
++ validator=PathVariable.PathAccept))
++ defvars.Add(PathVariable('CXX', help="Custome C++ compiler", default=None,
++ validator=PathVariable.PathAccept))
++
+ self.defvars = defvars
+
+ def Check(self):
+@@ -154,7 +148,7 @@ class DefaultCfg(object):
+
+ unknown = self.defvars.UnknownVariables()
+ if unknown:
+- print("Unknown variables:", unknown.keys())
++ print("ALM: build: Unknown variables:", unknown.keys())
+ #Exit(1)
+
+ #if debug_mode is mentioned assume build type debug
+@@ -175,14 +169,15 @@ class DefaultCfg(object):
+ env.Append(
+ CPPDEFINES = { 'LIBABI': env['libabi']})
+
+- cmpiler = compiler.gcc.Gcc(self.defenv['build'])
++ cmpiler = compiler.gcc.Gcc(self.defenv['build'],
++ bvars=self.defvars,
++ opts=self.opts)
+ #print(env['compiler'])
+ if env['compiler'] == 'aocc' or env['compiler'] == 'llvm':
+ cmpiler = compiler.llvm.LLVM(self.defenv['build'])
+
+ env.Replace(
+- CXX = cmpiler.CXXCmd(),
+- CC = cmpiler.CCCmd(),
++ CC = cmpiler.Cmd(),
+ CCFLAGS = cmpiler.CFlags(),
+ LINKFLAGS = cmpiler.LDFlags(),
+ )
+@@ -201,6 +196,10 @@ class DefaultCfg(object):
+ CPPDEFINES = {'DEVELOPER' : env['developer']})
+
+ self.defvars.Save(self.def_env_file, env)
++ self.Check()
++
++ env['ENV'].update(environ)
++
+ return env
+
+ def GetHelpTexts(self):
+diff --git a/scripts/cfg/compiler/__init__.py b/scripts/cfg/compiler/__init__.py
+index 60e136a..4383d01 100644
+--- a/scripts/cfg/compiler/__init__.py
++++ b/scripts/cfg/compiler/__init__.py
+@@ -23,77 +23,64 @@
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ # POSSIBILITY OF SUCH DAMAGE.
+
+-class Compiler:
+- def init_env(self):
+- self.env_modifiers = {
+- 'CC' : '',
+- 'CXX' : '',
+- 'CPPFLAGS' : [],
+- 'CFLAGS' : [],
+- 'CXXFLAGS' : [],
+- 'CPPDEFINES' : [],
+- 'LDFLAGS' : []
+- }
++import os
+
+- def CCCmd(self):
+- return self.env_modifiers['CC']
+-
+- def CXXCmd(self):
+- return self.env_modifiers['CXX']
++class Compiler:
++ def __init__(self, prod_mode, bvars = None, opts = None):
++ self.vars = bvars
++ self.opts = opts
++ self.cxxcmd = ''
++ self.cmd = ''
++ self.prod_mode = prod_mode
++ self.compile_flags_debug = [
++ '-g',
++ '-Og',
++ '-march=native',
++ ]
++ self.compile_flags_release = [
++ '-Ofast',
++ '-march=native',
++ '-fipa-pta',
++ '-funsafe-loop-optimizations',
++ '-flto=4',
++ ]
++ self.compile_flag_map = {
++ 'debug': self.compile_flags_debug,
++ 'release' : self.compile_flags_release
++ }
+
+- def CFlags(self):
+- return self.env_modifiers['CFLAGS']
++ self.link_flags_debug = []
+
+- def LDFlags(self):
+- return self.env_modifiers['LDFLAGS']
++ self.link_flags_release = self.compile_flags_release
+
+- def Append(self, d):
+- for key,value in d.items():
+- if isinstance(self.env_modifiers[key], list):
+- self.env_modifiers[key].extend(value)
+- else:
+- self.env_modifiers[key] = value
++ self.link_flag_map = {
++ "debug": self.link_flags_debug,
++ "release": self.link_flags_release
++ }
+
+- def Replace(self, d):
+- self.env_modifiers.update(d)
++ self.cpp_flags_debug = []
+
+- def __init__(self, prod_mode):
+- self.prod_mode = prod_mode
+- self.init_env()
++ self.cpp_flags_release = []
+
+- compile_flags_debug = [
+- '-g',
+- '-Og',
+- #'-march=native',
+- ]
++ self.cpp_flag_map = {
++ "debug": self.cpp_flags_debug,
++ "release": self.cpp_flags_release
++ }
+
+- compile_flags_release = [
+- #'-Ofast',
+- #'-march=native',
+- #'-fipa-pta',
+- #'-funsafe-loop-optimizations',
+- #'-flto=4',
+- #'-fno-strict-aliasing',
+- ]
++ def fixup_from_vars(self):
++ pass
+
+- link_flags_debug = []
+- link_flags_release = compile_flags_release
++ def fixup_from_env(self):
++ if 'CC' in os.environ:
++ self.cmd = os.getenv('CC')
++
++ if 'CXX' in os.environ:
++ self.cxxcmd = os.getenv('CXX')
+
+- cpp_flags_debug = []
+- cpp_flags_release = []
++ if 'CFLAGS' in os.environ:
++ self.compile_flag_map[self.prod_mode]
+
+- pmode = prod_mode.lower()
++ if 'LDFLAGS' in os.environ:
++ self.link_flag_map[self.prod_mode]
+
+- if pmode == "debug" :
+- self.Append({
+- 'CFLAGS' : compile_flags_debug,
+- 'LDFLAGS' : link_flags_debug,
+- 'CPPFLAGS': cpp_flags_debug,}
+- )
+- elif pmode == "release":
+- self.Append({
+- 'CFLAGS' : compile_flags_release,
+- 'LDFLAGS' : link_flags_release,
+- 'CPPFLAGS': cpp_flags_release,}
+- )
+
+diff --git a/scripts/cfg/compiler/gcc.py b/scripts/cfg/compiler/gcc.py
+index c2f8c8e..eb89a73 100644
+--- a/scripts/cfg/compiler/gcc.py
++++ b/scripts/cfg/compiler/gcc.py
+@@ -25,18 +25,36 @@
+
+ from . import Compiler
+ class Gcc(Compiler):
+- def __init__(self, prod_mode):
+- super(Gcc, self).__init__(prod_mode)
+-
+- warnings_cxx = [
+- '-Wctor-dtor-privacy',
+- '-Wnoexcept',
+- '-Wstrict-null-sentinel',
+- '-Wold-style-cast',
+- '-Woverloaded-virtual',
++ def __init__(self, prod_mode, bvars = None, opts = None):
++ super(Gcc, self).__init__(prod_mode, bvars, opts)
++ self.cmd = 'gcc'
++ self.cxxcmd = 'g++'
++ self.compile_flags_debug = [
++ '-g',
++ '-Og',
++ '-march=native',
+ ]
++ self.compile_flags_release = []
++ self.compile_flag_map = {
++ 'debug': self.compile_flags_debug,
++ 'release' : self.compile_flags_release
++ }
++
++ self.link_flags_debug = []
++ self.link_flags_release = self.compile_flags_release
++ self.link_flag_map = {
++ "debug": self.link_flags_debug,
++ "release": self.link_flags_release
++ }
++ self.cpp_flag_map = {
++ "debug": self.cpp_flags_debug,
++ "release": self.cpp_flags_release
++ }
+
+- warnings_c = [
++ self.cpp_flags_debug = []
++ self.cpp_flags_release = []
++
++ self.warnings = [
+ '-Wall',
+ '-Wextra',
+ '-Wpedantic',
+@@ -44,6 +62,7 @@ class Gcc(Compiler):
+ '-Wcast-align',
+ '-Wcast-qual',
+ '-Wconversion',
++ '-Wctor-dtor-privacy',
+ '-Wdisabled-optimization',
+ '-Wdouble-promotion',
+ # '-Weffc++',
+@@ -54,7 +73,10 @@ class Gcc(Compiler):
+ # '-Wlogical-op',
+ '-Wmissing-declarations',
+ '-Wmissing-include-dirs',
++ '-Wnoexcept',
+ '-Wodr',
++ '-Wold-style-cast',
++ '-Woverloaded-virtual',
+ # '-Wpadded',
+ '-Wredundant-decls',
+ '-Wshadow',
+@@ -62,53 +84,40 @@ class Gcc(Compiler):
+ # '-Wsign-promo',
+ # '-Wsuggest-final-methods',
+ # '-Wsuggest-final-types',
+- '-fno-strict-aliasing',
+- # '-Wstrict-overflow=5',
+- # '-Wswitch-default',
+- # -Wswitch-enum needs every switch statement to be handled
+- # explicitly. It would be useful if the language had some
+- # mechanism to activate this on specified switch statements
+- # (to ensure that future changes to the enum are handled
+- # everywhere that they need to be), but it's overkill for an
+- # "all-or-nothing" setting. '-Wswitch-enum',
++ '-Wstrict-null-sentinel',
++ # '-Wstrict-overflow=5',
++ '-Wswitch-default',
++ # -Wswitch-enum needs every switch statement to be handled explicitly.
++ # It would be useful if the language had some mechanism
++ # to activate this on specified switch statements (to ensure that future
++ # changes to the enum are handled everywhere that they need to be), but it's
++ # overkill for an "all-or-nothing" setting.
++ # '-Wswitch-enum',
+ '-Wtrampolines',
+- # '-Wundef',
+- # -Wunsafe-loop-optimizations causes too many spurious warnings. It
+- # may be useful to apply this one periodically and manually
+- # verify the results. It is also issued warning for the
+- # constructor of a const array of const std::string (where
+- # there is no loop in user code).
++ '-Wundef',
++ # -Wunsafe-loop-optimizations causes too many spurious warnings. It may be
++ # useful to apply this one periodically and manually verify the results.
++ # It is also issued warning for the constructor of a const array of const
++ # std::string (where there is no loop in user code).
+ #
+ # '-Wunsafe-loop-optimizations',
+ # -Wuseless-cast is incompatible with BOUNDED_INTEGER_CONDITIONAL
+ # '-Wuseless-cast',
+ '-Wvector-operation-performance',
+- # -Wzero-as-null-pointer-constant does not work with the
+- # operator<=> emulation '-Wzero-as-null-pointer-constant',
++ # -Wzero-as-null-pointer-constant does not work with the operator<=> emulation
++ # '-Wzero-as-null-pointer-constant',
+ '-Werror',
+ '-Wlto-type-mismatch',
+ ]
++ self.fixup_from_env()
+
+
+- # Eventually we should enable all warnings
+- # with compile_flags_release = [] + warnings_c
+- compile_flags_release = []
+- compile_flags_debug = []
+-
+- self.Replace({
+- 'CC' : 'gcc',
+- 'CXX': 'g++',
+- }
+- )
+-
+- if self.prod_mode == "debug":
+- self.Append({
+- 'CFLAGS' : compile_flags_debug,
+- 'CXXFLAGS': warnings_cxx ,
+- })
+- else:
+- self.Append({
+- 'CFLAGS' : compile_flags_release,
+- 'CXXFLAGS': warnings_cxx,
+- })
++ def Cmd(self):
++ return self.cmd
++ def CxxCmd(self):
++ return self.cxxcmd
++ def CFlags(self):
++ return self.compile_flag_map[self.prod_mode]
++ def LDFlags(self):
++ return self.link_flag_map[self.prod_mode]
+
+diff --git a/scripts/cfg/compiler/llvm.py b/scripts/cfg/compiler/llvm.py
+index 0e4c346..b39d341 100644
+--- a/scripts/cfg/compiler/llvm.py
++++ b/scripts/cfg/compiler/llvm.py
+@@ -26,29 +26,58 @@
+ from . import Compiler
+
+ class LLVM(Compiler):
+- def __init__(self, prod_mode):
+- super(LLVM, self).__init__(prod_mode)
+-
+- compile_flags_release = [
+- # fp-contract needed to generate FMA instructions
+- '-ffp-contract=fast',
++ def __init__(self, prod_mode, bvars = None, opts = None):
++ super(LLVM, self).__init__(prod_mode, bvars, opts)
++ self.cmd = 'clang'
++ self.cxxcmd = 'clang++'
++ self.compile_flags_debug = [
++ '-g',
++ '-Og',
++ '-march=native',
++ ]
++ self.compile_flags_release = [
++ '-ffp-contract=fast', # Needed to generate FMA instructions for vector routines
+ #'-Ofast',
+ # '-march=native',
+ # '-fipa-pta',
+ # '-funsafe-loop-optimizations',
+ # '-flto=4',
+ ]
++ self.compile_flag_map = {
++ 'debug': self.compile_flags_debug,
++ 'release' : self.compile_flags_release
++ }
+
+- link_flags_debug = ['-fuse-ld=ld']
+- link_flags_release = ['-fuse-ld=ld']
++ self.link_flags_debug = ['-fuse-ld=ld']
++ self.link_flags_release = ['-fuse-ld=ld']
++
++ self.link_flag_map = {
++ "debug": self.link_flags_debug,
++ "release": self.link_flags_release
++ }
+
+- llvm = {
+- 'CC' : 'clang',
+- 'CXX' : 'clang++',
+- 'CFLAGS' : link_flags_release,
+- 'LDFLAGS' : link_flags_release
++ self.cpp_flag_map = {
++ "debug": self.cpp_flags_debug,
++ "release": self.cpp_flags_release
+ }
+
+- self.Append(llvm)
++ self.cpp_flags_debug = []
++ self.cpp_flags_release = []
++
++ self.warnings = [
++ '-Weverything',
++ ]
++
++ self.fixup_from_env()
++
++ def Cmd(self):
++ return self.cmd
++
++ def CxxCmd(self):
++ return self.cxxcmd
+
++ def CFlags(self):
++ return self.compile_flag_map[self.prod_mode]
+
++ def LDFlags(self):
++ return self.link_flag_map[self.prod_mode]
+diff --git a/scripts/cfg/helper.py b/scripts/cfg/helper.py
+index a0fb991..1d7a01d 100644
+--- a/scripts/cfg/helper.py
++++ b/scripts/cfg/helper.py
+@@ -140,6 +140,18 @@ def UpdateEnvComStr(env):
+ env["SHCCCOMSTR"] = Transform('SHCC')
+ env["SHLINKCOMSTR"] = Transform('SHLINK', hidesrc=True)
+
++
++def MakeInstallRoot(env):
++ """Build root has
++ build/<libabi>-<debug/release/developer>
++ """
++ try:
++ inst = env['prefix']
++ except KeyError:
++ inst = '#install'
++
++ env['INSTALL_PREFIX'] = inst
++
+ def MakeBuildRoot(env):
+ """Build root has
+ build/<libabi>-<debug/release/developer>
+@@ -178,7 +190,9 @@ def SetupConfiguration(env):
+ and puts target into testdir."""
+ #print(env.Dump())
+ MakeBuildRoot(env)
++ MakeInstallRoot(env)
+ UpdateEnvComStr(env)
++ env['compiler'] = GetOption('compiler')
+
+ if env['debug_mode'] != 'no':
+ env.Append(CPPDEFINES = {'DEBUG': '1'})
+diff --git a/src/SConscript b/src/SConscript
+index 0fe4e19..32d6b83 100644
+--- a/src/SConscript
++++ b/src/SConscript
+@@ -27,6 +27,7 @@
+ Import('env')
+ from os.path import join as joinpath
+
++installdir = env['prefix']
+ builddir = joinpath(env['BUILDROOT'], 'src')
+
+ e = env.Clone()
+@@ -73,6 +74,8 @@ libm = almenv.StaticLibrary('alm', alm_objs)
+ libmso = almenv.SharedLibrary('alm', alm_objs)
+
+
++almenv.Alias("install", almenv.Install(joinpath(installdir, "lib"), [libmso, libm]))
++
+ fast_libm = SConscript('fast/SConscript',
+ exports = {'env' : e},
+ duplicate = 0,
+--
+2.28.0
+
diff --git a/var/spack/repos/builtin/packages/amdlibm/0002-libm-ose-prevent-log-v3.c-from-building.patch b/var/spack/repos/builtin/packages/amdlibm/0002-libm-ose-prevent-log-v3.c-from-building.patch
new file mode 100755
index 0000000000..b540f1cda3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/amdlibm/0002-libm-ose-prevent-log-v3.c-from-building.patch
@@ -0,0 +1,25 @@
+From 5ade2f2eb1745f1d09281044e44b3272f01eb5ed Mon Sep 17 00:00:00 2001
+From: Prem Mallappa <Premachandra.Mallappa@amd.com>
+Date: Tue, 22 Dec 2020 21:03:57 +0530
+Subject: [PATCH 2/2] libm: ose: prevent log-v3.c from building
+
+Signed-off-by: Prem Mallappa <Premachandra.Mallappa@amd.com>
+---
+ src/optmized/SConscript | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/optmized/SConscript b/src/optmized/SConscript
+index a614e9b..412dbdf 100644
+--- a/src/optmized/SConscript
++++ b/src/optmized/SConscript
+@@ -67,6 +67,7 @@ else:
+
+ experiment_src=[
+ 'expm1f.c',
++ 'log_v3.c',
+ ]
+
+ source = Glob('*.c', exclude=experiment_src)
+--
+2.28.0
+
diff --git a/var/spack/repos/builtin/packages/amdlibm/package.py b/var/spack/repos/builtin/packages/amdlibm/package.py
new file mode 100644
index 0000000000..fdf71087a1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/amdlibm/package.py
@@ -0,0 +1,71 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Amdlibm(SConsPackage):
+ """AMD LibM is a software library containing a collection of basic math
+ functions optimized for x86-64 processor-based machines. It provides
+ many routines from the list of standard C99 math functions.
+ Applications can link into AMD LibM library and invoke math functions
+ instead of compiler's math functions for better accuracy and
+ performance."""
+
+ homepage = "https://developer.amd.com/amd-aocl/amd-math-library-libm/"
+ git = "https://github.com/amd/aocl-libm-ose.git"
+ maintainers = ["amd-toolchain-support"]
+
+ # If a user who doesn't specify a version
+ # amdlibm installed for commit ID:4033e02
+ # of master branch.
+ # To install amdlibm from latest master branch:
+ # spack install amdlibm ^amdlibm@master
+ version("3.0", branch="aocl-3.0")
+ version("2.2", commit="4033e022da428125747e118ccd6fdd9cee21c470")
+
+ variant("verbose", default=False,
+ description="Building with verbosity")
+
+ # Mandatory dependencies
+ depends_on("python@3.6.1:", type=("build", "run"))
+ depends_on("scons@3.1.2:", type=("build"))
+ depends_on("mpfr", type=("link"))
+
+ patch("0001-libm-ose-Scripts-cleanup-pyc-files.patch", when="@2.2")
+ patch("0002-libm-ose-prevent-log-v3.c-from-building.patch", when="@2.2")
+
+ conflicts("%gcc@:9.1.999", msg="Minimum required GCC version is 9.2.0")
+
+ def build_args(self, spec, prefix):
+ """Setting build arguments for amdlibm """
+ args = ["--prefix={0}".format(prefix)]
+
+ if "%aocc" in spec:
+ args.append("--compiler=aocc")
+
+ # we are circumventing the use of
+ # Spacks compiler wrappers because
+ # SCons wipes out all environment variables.
+ args.append("CC={0}".format(self.compiler.cc))
+ args.append("CXX={0}".format(self.compiler.cxx))
+
+ if "+verbose" in spec:
+ args.append("verbose=1")
+ else:
+ args.append("verbose=0")
+
+ return args
+
+ install_args = build_args
+
+ @run_after('install')
+ def create_symlink(self):
+ """Symbolic link for backward compatibility"""
+ with working_dir(self.prefix.lib):
+ os.symlink('libalm.a', 'libamdlibm.a')
+ os.symlink('libalm.so', 'libamdlibm.so')
diff --git a/var/spack/repos/builtin/packages/amdscalapack/package.py b/var/spack/repos/builtin/packages/amdscalapack/package.py
index 270641c020..23ccc2ccb3 100644
--- a/var/spack/repos/builtin/packages/amdscalapack/package.py
+++ b/var/spack/repos/builtin/packages/amdscalapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,11 +20,12 @@ class Amdscalapack(ScalapackBase):
_name = 'amdscalapack'
homepage = "https://developer.amd.com/amd-aocl/scalapack/"
- url = "https://github.com/amd/scalapack/archive/2.2.tar.gz"
+ url = "https://github.com/amd/scalapack/archive/3.0.tar.gz"
git = "https://github.com/amd/scalapack.git"
maintainers = ['amd-toolchain-support']
+ version('3.0', sha256='6e6f3578f44a8e64518d276e7580530599ecfa8729f568303ed2590688e7096f')
version('2.2', sha256='2d64926864fc6d12157b86e3f88eb1a5205e7fc157bf67e7577d0f18b9a7484c')
variant(
@@ -38,11 +39,13 @@ class Amdscalapack(ScalapackBase):
args = super(Amdscalapack, self).cmake_args()
spec = self.spec
- args.extend([
- "-DUSE_DOTC_WRAPPER:BOOL=%s" % (
- 'ON' if '%aocc ^amdblis' in spec else 'OFF'
- )
- ])
+ if spec.satisfies('%gcc@10:'):
+ args.extend(['-DCMAKE_Fortran_FLAGS={0}'.format(
+ "-fallow-argument-mismatch")])
+
+ if spec.satisfies('@2.2'):
+ args.extend(['-DUSE_DOTC_WRAPPER:BOOL=%s' % (
+ 'ON' if spec.satisfies('%aocc ^amdblis') else 'OFF')])
args.extend([
'-DUSE_F2C=ON',
diff --git a/var/spack/repos/builtin/packages/amg/package.py b/var/spack/repos/builtin/packages/amg/package.py
index c2817f161b..19b71ef398 100644
--- a/var/spack/repos/builtin/packages/amg/package.py
+++ b/var/spack/repos/builtin/packages/amg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/amg2013/package.py b/var/spack/repos/builtin/packages/amg2013/package.py
index a63a6a4bac..547e308b53 100644
--- a/var/spack/repos/builtin/packages/amg2013/package.py
+++ b/var/spack/repos/builtin/packages/amg2013/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/amgx/package.py b/var/spack/repos/builtin/packages/amgx/package.py
index c03f3599df..ed9e939086 100644
--- a/var/spack/repos/builtin/packages/amgx/package.py
+++ b/var/spack/repos/builtin/packages/amgx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aml/package.py b/var/spack/repos/builtin/packages/aml/package.py
index 922d24a36f..f6f73d4f71 100644
--- a/var/spack/repos/builtin/packages/aml/package.py
+++ b/var/spack/repos/builtin/packages/aml/package.py
@@ -1,24 +1,66 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
class Aml(AutotoolsPackage):
"""AML: Building Blocks for Memory Management."""
- homepage = "https://xgitlab.cels.anl.gov/argo/aml"
+ homepage = "https://argo-aml.readthedocs.io/"
url = "https://www.mcs.anl.gov/research/projects/argo/downloads/aml-0.1.0.tar.gz"
- git = "https://xgitlab.cels.anl.gov/argo/aml.git"
+ git = "https://github.com/anlsys/aml.git"
+ maintainers = ['perarnau']
+
+ test_requires_compiler = True
+
version('0.1.0', sha256='cc89a8768693f1f11539378b21cdca9f0ce3fc5cb564f9b3e4154a051dcea69b')
- version('develop', branch='staging')
- version('master', branch='master')
+ version('master', branch='master', submodules=True)
depends_on('numactl')
- depends_on('m4', type='build')
- depends_on('autoconf', type='build')
- depends_on('automake', type='build')
- depends_on('libtool', type='build')
+ with when('@master'):
+ depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources(['tests', join_path('include', 'config.h')])
+
+ def run_area_test(self):
+ """Run stand alone test: test_area"""
+
+ test_dir = join_path(self.test_suite.current_test_cache_dir, 'tests', 'area')
+
+ if not os.path.exists(test_dir):
+ print('Skipping aml test')
+ return
+
+ exe = 'test_area'
+
+ self.run_test('gcc',
+ options=['-o', exe, join_path(test_dir, 'test_area.c'),
+ '-I{0}'.format(join_path(
+ self.test_suite.current_test_cache_dir,
+ 'include')),
+ '-I{0}'.format(self.prefix.include),
+ '-I{0}'.format(self.spec['numactl'].prefix.include),
+ '-L{0}'.format(self.prefix.lib),
+ '-laml', '-lexcit', '-lpthread'],
+ purpose='test: compile {0} example'.format(exe),
+ work_dir=test_dir)
+
+ self.run_test(exe,
+ purpose='test: run {0} example'.format(exe),
+ work_dir=test_dir)
+
+ def test(self):
+ self.run_area_test()
diff --git a/var/spack/repos/builtin/packages/amp/package.py b/var/spack/repos/builtin/packages/amp/package.py
index 62b9b2fee3..33c84c1c50 100644
--- a/var/spack/repos/builtin/packages/amp/package.py
+++ b/var/spack/repos/builtin/packages/amp/package.py
@@ -1,42 +1,48 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Amp(CMakePackage):
- """The Advanced Multi-Physics (AMP) package is an open source parallel
+ """The Advanced Multi-Physics (AMP) package.
+
+ The Advanced Multi-Physics (AMP) package is an open source parallel
object-oriented computational framework that is designed with single
- and multi-domain multi-physics applications in mind. AMP can be used
- to build powerful and flexible multi-physics simulation algorithms
- from lightweight operator, solver, linear algebra, material database,
- discretization, and meshing components. The AMP design is meant to
- enable existing investments in application codes to be leveraged without
- having to adopt dramatically different data structures while developing
- new computational science applications. Application components are
- represented as discrete mathematical operators that only require a
- minimal interface and through operator composition the incremental
- development of complex parallel applications is enabled. AMP is meant
- to allow application domain scientists, computer scientists and
- mathematicians to simulate, collaborate, and conduct research on
- various aspects of massively parallel simulation algorithms."""
+ and multi-domain multi-physics applications in mind.
+ """
homepage = "https://bitbucket.org/AdvancedMultiPhysics/amp"
- hg = homepage
+ hg = homepage
version('develop')
+ variant('boost', default=True, description='Build with support for Boost')
+ variant('hdf5', default=True, description='Build with support for HDF5')
+ variant('hypre', default=True, description='Build with support for hypre')
+ variant('libmesh', default=True, description='Build with libmesh support')
+ variant('mpi', default=True, description='Build with MPI support')
+ variant('netcdf', default=True, description='Build with NetCDF support')
+ variant('petsc', default=True, description='Build with Petsc support')
+ variant('shared', default=True, description='Build shared libraries')
+ variant('silo', default=True, description='Build with support for Silo')
+ variant('sundials', default=True, description='Build with support for Sundials')
+ variant('trilinos', default=True, description='Build with support for Trilinos')
+ variant('zlib', default=True, description='Build with support for zlib')
+
# Everything should be compiled position independent (-fpic)
depends_on('blas')
depends_on('lapack')
depends_on('boost', when='+boost')
- depends_on('petsc', when='+petsc')
- depends_on('trilinos', when='+trilinos')
depends_on('hdf5', when='+hdf5')
- depends_on('hdf5', when='+silo')
+ depends_on('hypre', when='+hypre')
+ depends_on('libmesh', when='+libmesh')
+ depends_on('netcdf-c', when='+netcdf')
+ depends_on('petsc', when='+petsc')
depends_on('silo', when='+silo')
+ depends_on('sundials', when='+sundials')
+ depends_on('trilinos', when='+trilinos')
depends_on('zlib', when="+zlib")
# MPI related dependencies
@@ -45,96 +51,58 @@ class Amp(CMakePackage):
def cmake_args(self):
spec = self.spec
- options = []
-
- # #################### Base Settings #######################
-
- options.extend([
- '-DTPL_URL=https://bitbucket.org/AdvancedMultiPhysics/tpl-builder',
- '-DAMP_DATA_URL=https://bitbucket.org/AdvancedMultiPhysics/amp/downloads/AMP-Data.tar.gz',
- '-DAMP_ENABLE_TESTS:BOOL=OFF',
- '-DAMP_ENABLE_EXAMPLES:BOOL=OFF',
- '-DAMP_ENABLE_CXX11:BOOL=ON',
- '-DCXX_STD=11',
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
- ])
-
- # #################### Compiler Settings #######################
+ options = [
+ self.define('TPL_URL', 'https://bitbucket.org/AdvancedMultiPhysics/tpl-builder'),
+ self.define('AMP_DATA_URL', 'https://bitbucket.org/AdvancedMultiPhysics/amp/downloads/AMP-Data.tar.gz'),
+ self.define('AMP_ENABLE_TESTS', 'OFF'),
+ self.define('AMP_ENABLE_EXAMPLES', 'OFF'),
+ self.define('AMP_ENABLE_CXX11', 'ON'),
+ self.define('CXX_STD', '11'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define('USE_MPI', '0'),
+ ]
if '+mpi' in spec:
options.extend([
- '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
- '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
- '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
- '-DUSE_MPI=0',
- '-DMPI_COMPILER=1',
- '-DMPIEXEC=$s' % spec['mpi'].prefix.bin,
+ self.define('CMAKE_C_COMPILER', spec['mpi'].mpicc),
+ self.define('CMAKE_CXX_COMPILER', spec['mpi'].mpicxx),
+ self.define('CMAKE_Fortran_COMPILER', spec['mpi'].mpifc),
+ self.define('MPI_COMPILER', '1'),
+ self.define('MPIEXEC', spec['mpi'].prefix.bin),
])
else:
options.extend([
- '-DCMAKE_C_COMPILER=%s' % self.compiler.cc,
- '-DCMAKE_CXX_COMPILER=%s' % self.compiler.cxx,
- '-DCMAKE_Fortran_COMPILER=%s' % self.compiler.fc,
- '-DUSE_MPI=0',
+ self.define('CMAKE_C_COMPILER', self.compiler.cc),
+ self.define('CMAKE_CXX_COMPILER', self.compiler.cxx),
+ self.define('CMAKE_Fortran_COMPILER', self.compiler.fc),
])
- # ################## Third Party Libraries #####################
-
- tpl_list = "LAPACK"
- blas = spec['blas'].libs
- lapack = spec['lapack'].libs
+ tpl_list = ["LAPACK"]
+ blas, lapack = spec['blas'].libs, spec['lapack'].libs
options.extend([
- '-DTPL_LAPACK_INSTALL_DIR=%s' % spec['lapack'].prefix,
- '-DTPL_BLAS_LIBRARY_NAMES=%s' % ';'.join(blas.names),
- '-DTPL_BLAS_LIBRARY_DIRS=%s' % ';'.join(blas.directories),
- '-DTPL_LAPACK_LIBRARY_NAMES=%s' % ';'.join(lapack.names),
- '-DTPL_LAPACK_LIBRARY_DIRS=%s' % ';'.join(lapack.directories),
+ self.define('TPL_LAPACK_INSTALL_DIR', spec['lapack'].prefix),
+ self.define('TPL_BLAS_LIBRARY_NAMES', ';'.join(blas.names)),
+ self.define('TPL_BLAS_LIBRARY_DIRS', ';'.join(blas.directories)),
+ self.define('TPL_LAPACK_LIBRARY_NAMES', ';'.join(lapack.names)),
+ self.define('TPL_LAPACK_LIBRARY_DIRS', ';'.join(lapack.directories)),
])
- if '+boost' in spec:
- tpl_list = tpl_list + ";BOOST"
- options.extend(['-DTPL_BOOST_INSTALL_DIR=%s' %
- spec['boost'].prefix, ])
- if '+zlib' in spec:
- tpl_list = tpl_list + ";ZLIB"
- options.extend(['-DTPL_ZLIB_INSTALL_DIR=%s' %
- spec['zlib'].prefix, ])
- if '+hdf5' in spec:
- tpl_list = tpl_list + ";HDF5"
- options.extend(['-DTPL_HDF5_INSTALL_DIR=%s' %
- spec['hdf5'].prefix, ])
- if '+silo' in spec:
- tpl_list = tpl_list + ";SILO"
- options.extend(['-DTPL_SILO_INSTALL_DIR=%s' %
- spec['silo'].prefix, ])
+
+ for vname in (
+ 'boost', 'hdf5', 'hypre', 'libmesh', 'petsc',
+ 'silo', 'sundials', 'trilinos', 'zlib',
+ ):
+ if '+' + vname in spec:
+ tpl_list.append(vname.upper())
+ options.append(self.define(
+ 'TPL_{0}_INSTALL_DIR'.format(vname.upper()),
+ spec[vname].prefix
+ ))
+
if '+netcdf' in spec:
- tpl_list = tpl_list + ";NETCDF"
- options.extend(['-DTPL_NETCDF_INSTALL_DIR=%s' %
- spec['netcdf-c'].prefix, ])
- if '+hypre' in spec:
- tpl_list = tpl_list + ";HYPRE"
- options.extend(['-DTPL_HYPRE_INSTALL_DIR=%s' %
- spec['hypre'].prefix, ])
- if '+petsc' in spec:
- tpl_list = tpl_list + ";PETSC"
- options.extend(['-DTPL_PETSC_INSTALL_DIR=%s' %
- spec['petsc'].prefix, ])
- if '+trilinos' in spec:
- tpl_list = tpl_list + ";TRILINOS"
- options.extend(['-DTPL_TRILINOS_INSTALL_DIR=%s' %
- spec['trilinos'].prefix, ])
- if '+libmesh' in spec:
- tpl_list = tpl_list + ";LIBMESH"
- options.extend(['-DTPL_LIBMESH_INSTALL_DIR=%s' %
- spec['libmesh'].prefix, ])
- if '+sundials' in spec:
- tpl_list = tpl_list + ";SUNDIALS"
- options.extend(['-DTPL_SUNDIALS_INSTALL_DIR=%s' %
- spec['sundials'].prefix, ])
- if '+amp-timer' in spec:
- tpl_list = tpl_list + ";TIMER"
- options.extend(['-DTPL_TIMER_INSTALL_DIR=%s' %
- spec['amp-timer'].prefix, ])
- options.extend(['-DTPL_LIST=%s' % tpl_list, ])
+ tpl_list.append("NETCDF")
+ options.append(self.define(
+ 'TPL_NETCDF_INSTALL_DIR', spec['netcdf-c'].prefix
+ ))
+ options.append(self.define('TPL_LIST', ';'.join(tpl_list)))
return options
diff --git a/var/spack/repos/builtin/packages/ampl/package.py b/var/spack/repos/builtin/packages/ampl/package.py
new file mode 100644
index 0000000000..be3b55405b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ampl/package.py
@@ -0,0 +1,69 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Ampl(Package):
+ """AMPL integrates a modeling language for describing optimization data, variables,
+ objectives, and constraints; a command language for debugging models and analyzing
+ results; and a scripting language for manipulating data and implementing
+ optimization strategies."""
+
+ homepage = "https://ampl.com/"
+ manual_download = True
+
+ maintainers = ['robgics']
+
+ # Use the version as you would expect the user to know it, not necessarily the
+ # version as it appears in the file name. To get the checksum, use sha256sum.
+ version('20210226', sha256='d9ffaed591c0491e311a44c2b246d9d81785f6c0b2747a7e32a783e522e18450')
+ version('20190529', sha256='c35a87d85055ae5fe41b68d4b4458f1fdbf80643890501eeaad35b134cb11a2d')
+
+ # Licensing
+ license_required = True
+ license_comment = '#'
+ license_files = ['ampl.lic']
+ license_url = 'https://ampl.com/resources/floating-licenses/installation/'
+
+ resource(
+ name='amplapi',
+ url='file://{0}/amplapi-linux64.2.0.0.zip'.format(os.getcwd()),
+ sha256='a4abe111f142b862f11fcd8700f964b688d5d2291e9e055f6e7adbd92b0e243a',
+ destination='',
+ placement='amplapi'
+ )
+ resource(
+ name='amplide',
+ url='file://{0}/amplide-linux64.3.5.tgz'.format(os.getcwd()),
+ sha256='c2163896df672b71901d2e46cd5cf1c1c4f0451e478ef32d0971705aaf86d6ac',
+ destination='',
+ placement='amplide'
+ )
+ resource(
+ name='ampl_lic',
+ url='file://{0}/ampl_lic.linux-intel64.20210618.tgz'.format(os.getcwd()),
+ sha256='f5c38638d6cc99c85e0d6de001722b64a03e2adeaf5aed9ed622401654d9ff33',
+ destination='',
+ placement=''
+ )
+
+ def url_for_version(self, version):
+ return "file://{0}/ampl.linux-intel64.{1}.tgz".format(os.getcwd(), version)
+
+ def setup_run_environment(self, env):
+ env.prepend_path("PATH", self.prefix)
+ env.prepend_path("PATH", join_path(self.prefix, 'amplide'))
+
+ def install(self, spec, prefix):
+ install_tree('.', prefix)
+
+ for key in self.resources:
+ for res in self.resources[key]:
+ if res.name == 'ampl_lic':
+ res_path = join_path(res.fetcher.stage.source_path, res.name)
+ install(res_path, prefix)
diff --git a/var/spack/repos/builtin/packages/ampliconnoise/package.py b/var/spack/repos/builtin/packages/ampliconnoise/package.py
index 20e1f8100c..42b04067b4 100644
--- a/var/spack/repos/builtin/packages/ampliconnoise/package.py
+++ b/var/spack/repos/builtin/packages/ampliconnoise/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Ampliconnoise(MakefilePackage):
"""AmpliconNoise is a collection of programs for the removal of noise
from 454 sequenced PCR amplicons."""
- homepage = "https://code.google.com/archive/p/ampliconnoise/"
+ homepage = "https://directory.fsf.org/wiki/AmpliconNoise"
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/ampliconnoise/AmpliconNoiseV1.29.tar.gz"
version('1.29', sha256='0bf946806d77ecaf0994ad8ebf9a5e98ad33c809f6def5c9340a16c367918167')
diff --git a/var/spack/repos/builtin/packages/amr-wind/package.py b/var/spack/repos/builtin/packages/amr-wind/package.py
new file mode 100644
index 0000000000..aeef130570
--- /dev/null
+++ b/var/spack/repos/builtin/packages/amr-wind/package.py
@@ -0,0 +1,108 @@
+# Copyright 2013-2021 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)
+
+import itertools
+
+from spack import *
+
+
+def process_amrex_constraints():
+ """Map constraints when building with external AMReX"""
+ a1 = ['+', '~']
+ a2 = ['mpi', 'hypre', 'cuda']
+ a3 = [[x + y for x in a1] for y in a2]
+ for k in itertools.product(*a3):
+ if '+cuda' in k:
+ for arch in CudaPackage.cuda_arch_values:
+ yield ''.join(k) + " cuda_arch=%s" % arch
+ else:
+ yield ''.join(k)
+
+
+class AmrWind(CMakePackage, CudaPackage):
+ """AMR-Wind is a massively parallel, block-structured adaptive-mesh,
+ incompressible flow sover for wind turbine and wind farm simulations. """
+
+ homepage = "https://github.com/Exawind/amr-wind"
+ git = "https://github.com/Exawind/amr-wind.git"
+
+ maintainers = ['jrood-nrel', 'michaeljbrazell']
+
+ tags = ['ecp', 'ecp-apps']
+
+ version('main', branch='main', submodules=True)
+
+ variant('shared', default=True,
+ description='Build shared libraries')
+ variant('unit', default=True,
+ description='Build unit tests')
+ variant('tests', default=True,
+ description='Activate regression tests')
+ variant('mpi', default=True,
+ description='Enable MPI support')
+ variant('openmp', default=False,
+ description='Enable OpenMP for CPU builds')
+ variant('netcdf', default=True,
+ description='Enable NetCDF support')
+ variant('hypre', default=True,
+ description='Enable Hypre integration')
+ variant('masa', default=False,
+ description='Enable MASA integration')
+ variant('openfast', default=False,
+ description='Enable OpenFAST integration')
+ variant('internal-amrex', default=True,
+ description='Use AMRex submodule to build')
+
+ conflicts('+openmp', when='+cuda')
+
+ depends_on('mpi', when='+mpi')
+
+ for opt in process_amrex_constraints():
+ dopt = '+particles' + opt
+ depends_on('amrex@develop' + dopt, when='~internal-amrex' + opt)
+
+ depends_on('hypre+shared+mpi~int64~cuda@2.20.0:', when='+mpi~cuda+hypre')
+ depends_on('hypre+shared~mpi~int64~cuda@2.20.0:', when='~mpi~cuda+hypre')
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on('hypre+shared+mpi~int64+cuda cuda_arch=%s @2.20.0:' % arch,
+ when='+mpi+cuda+hypre cuda_arch=%s' % arch)
+ depends_on('hypre+shared~mpi~int64+cuda cuda_arch=%s @2.20.0:' % arch,
+ when='~mpi+cuda+hypre cuda_arch=%s' % arch)
+ depends_on('netcdf-c', when='+netcdf')
+ depends_on('masa', when='+masa')
+ depends_on('openfast+cxx', when='+openfast')
+
+ def cmake_args(self):
+ define = CMakePackage.define
+
+ vs = ["mpi", "cuda", "openmp", "netcdf", "hypre", "masa",
+ "openfast", "tests"]
+ args = [
+ self.define_from_variant("AMR_WIND_ENABLE_%s" % v.upper(), v)
+ for v in vs
+ ]
+
+ args += [
+ define('CMAKE_EXPORT_COMPILE_COMMANDS', True),
+ define('AMR_WIND_ENABLE_ALL_WARNINGS', True),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('AMR_WIND_TEST_WITH_FCOMPARE', 'tests'),
+ ]
+
+ if '+cuda' in self.spec:
+ amrex_arch = ['{0:.1f}'.format(float(i) / 10.0)
+ for i in self.spec.variants['cuda_arch'].value]
+ if amrex_arch:
+ args.append(define('AMReX_CUDA_ARCH', amrex_arch))
+
+ if '+internal-amrex' in self.spec:
+ args.append(self.define('AMR_WIND_USE_INTERNAL_AMREX', True))
+ else:
+ args += [
+ self.define('AMR_WIND_USE_INTERNAL_AMREX', False),
+ self.define('AMReX_ROOT', self.spec['amrex'].prefix)
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py
index 4ded35c18d..9521b8e225 100644
--- a/var/spack/repos/builtin/packages/amrex/package.py
+++ b/var/spack/repos/builtin/packages/amrex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
from spack import *
-class Amrex(CMakePackage):
+class Amrex(CMakePackage, CudaPackage, ROCmPackage):
"""AMReX is a publicly available software framework designed
for building massively parallel block- structured adaptive
mesh refinement (AMR) applications."""
@@ -15,9 +15,19 @@ class Amrex(CMakePackage):
url = "https://github.com/AMReX-Codes/amrex/releases/download/20.05/amrex-20.05.tar.gz"
git = "https://github.com/AMReX-Codes/amrex.git"
- maintainers = ['mic84', 'asalmgren']
+ maintainers = ['WeiqunZhang', 'asalmgren']
version('develop', branch='development')
+ version('21.09', sha256='983b41d93bf9417c032080fd2ec7c04d0d2b820e613a076bd07566aa5a8aa4bd')
+ version('21.08', sha256='34fb6c72735c74820b27db1138e5bc9fe698ffbd8344aae10a5fbdace479b57f')
+ version('21.07', sha256='9630b8c0c7ffbf3f5ea4d973a3fdb40b9b10fec0f8df33b9e24d76d2c1d15771')
+ version('21.06', sha256='6982c22837d7c0bc4583065d9da55e0aebcf07b54386e4b90a779391fe73fd53')
+ version('21.05', sha256='eb6d21e48279ad67278413c77b29a1754c18ffe741aa6b3a9f3f01eeac13177f')
+ version('21.04', sha256='1c610e4b0800b16f7f1da74193ff11af0abfb12198b36a7e565a6a7f793087fa')
+ version('21.03', sha256='6307bf75c80c2076bf5bd1cff4d12483280a32b5175fe117f32eed9c89cd1ac5')
+ version('21.02', sha256='4a7ef997c43f9f03f1b06dd1aafa01218773a3265a5c1811f77eb4521b5e75b3')
+ version('21.01', sha256='59de3ed429347ee6a7ad4f09c0c431248f2e081f59c301db37cacb36993622f4')
+ version('20.12', sha256='a8ba1d605780250da77619939582ce44b33cd286f2dbcc0dfd5cdbaf209140a5')
version('20.11', sha256='b86f4f2ebf414cec050e562d4ab81545944bda581b496d69767b4bf6a3060855')
version('20.10', sha256='92def480d1f0bcb5bcb9dfae2ddc8997060414386a1d71ccbfdad785fa2e46fa')
version('20.09', sha256='3ae203f18656117d8201da16e899a6144ec217817a2a5d9b7649e2eef9cacdf9')
@@ -57,48 +67,80 @@ class Amrex(CMakePackage):
description='Build data services')
variant('particles', default=False,
description='Build particle classes')
- variant('build_type', default='Release',
- description='The build type to build',
- values=('Debug', 'Release'))
- variant('sundials', default=False,
- description='Build AMReX with SUNDIALS support')
+ variant('plotfile_tools', default=False,
+ description='Build plotfile_tools like fcompare')
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')
- variant('cuda', default=False,
- description='Enable CUDA interfaces')
+ variant('sundials', default=False,
+ description='Enable SUNDIALS interfaces')
+ variant('pic', default=False,
+ description='Enable PIC')
# Build dependencies
depends_on('mpi', when='+mpi')
- depends_on('sundials@4.0.0:4.1.0 +ARKODE +CVODE', when='@19.08: +sundials')
+ depends_on('sundials@4.0.0:4.1.0 +ARKODE +CVODE', when='@19.08:20.11 +sundials')
+ depends_on('sundials@5.7.0: +ARKODE +CVODE', when='@21.07: +sundials')
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on('sundials@5.7.0: +ARKODE +CVODE +cuda cuda_arch=%s' % arch, when='@21.07: +sundials +cuda cuda_arch=%s' % arch)
+ for tgt in ROCmPackage.amdgpu_targets:
+ depends_on('sundials@5.7.0: +ARKODE +CVODE +rocm amdgpu_target=%s' % tgt, when='@21.07: +sundials +rocm amdgpu_target=%s' % tgt)
depends_on('cuda@9.0.0:', when='+cuda')
depends_on('python@2.7:', type='build', when='@:20.04')
depends_on('cmake@3.5:', type='build', when='@:18.10.99')
depends_on('cmake@3.13:', type='build', when='@18.11:')
depends_on('cmake@3.14:', type='build', when='@19.04:')
- conflicts('%apple-clang')
- conflicts('%clang')
+ # cmake @3.17: is necessary to handle cuda @11: correctly
+ depends_on('cmake@3.17:', type='build', when='^cuda @11:')
+ depends_on('hdf5@1.10.4: +mpi', when='+hdf5')
+ depends_on('rocrand', type='build', when='+rocm')
+ depends_on('rocprim', type='build', when='@21.05: +rocm')
+ depends_on('hypre@2.18.2:', type='link', when='@:21.02 +hypre')
+ depends_on('hypre@2.19.0:', type='link', when='@21.03: ~cuda +hypre')
+ depends_on('hypre@2.20.0:', type='link', when='@21.03: +cuda +hypre')
+ depends_on('petsc', type='link', when='+petsc')
+
+ # these versions of gcc have lambda function issues
+ # see https://github.com/spack/spack/issues/22310
+ conflicts('%gcc@8.1.0:8.3.0', when='@21.03')
+ conflicts('%gcc@8.1.0:8.2.0', when='@21.01:21.02')
# Check options compatibility
- conflicts('+sundials', when='~fortran',
+ conflicts('+sundials', when='@19.08:20.11 ~fortran',
msg='AMReX SUNDIALS support needs AMReX Fortran API (+fortran)')
+ conflicts('+sundials', when='@20.12:21.06',
+ msg='AMReX 20.12 -- 21.06 does not support SUNDIALS interfaces')
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='@:20.07 ~fortran',
+ msg='AMReX < 20.08 needs the Fortran API (+fortran) for Hypre support')
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)')
+ msg='PETSc support needs AMReX newer than version 20.06')
+ conflicts('+petsc', when='@:20.07 ~fortran',
+ msg='AMReX < 20.08 needs the Fortran API (+fortran) for PETSc support')
conflicts('+petsc', when='~linear_solvers',
msg='AMReX PETSc support needs variant +linear_solvers')
+ conflicts('+cuda', when='@:19.08',
+ msg='AMReX CUDA support needs AMReX newer than version 19.08')
+ conflicts('cuda_arch=10', when='+cuda', msg='AMReX only supports compute capabilities >= 3.5')
+ conflicts('cuda_arch=11', when='+cuda', msg='AMReX only supports compute capabilities >= 3.5')
+ conflicts('cuda_arch=12', when='+cuda', msg='AMReX only supports compute capabilities >= 3.5')
+ conflicts('cuda_arch=13', when='+cuda', msg='AMReX only supports compute capabilities >= 3.5')
+ conflicts('cuda_arch=20', when='+cuda', msg='AMReX only supports compute capabilities >= 3.5')
+ conflicts('cuda_arch=21', when='+cuda', msg='AMReX only supports compute capabilities >= 3.5')
+ conflicts('cuda_arch=30', when='+cuda', msg='AMReX only supports compute capabilities >= 3.5')
+ conflicts('cuda_arch=32', when='+cuda', msg='AMReX only supports compute capabilities >= 3.5')
+ conflicts('+rocm', when='@:20.11', msg='AMReX HIP support needs AMReX newer than version 20.11')
+ conflicts('%rocm@4.2.0:4.2.99', when='+rocm',
+ msg='AMReX does not support rocm-4.2 due to a compiler bug')
+ conflicts('+cuda', when='+rocm', msg='CUDA and HIP support are exclusive')
def url_for_version(self, version):
if version >= Version('20.05'):
@@ -107,64 +149,92 @@ class Amrex(CMakePackage):
url = "https://github.com/AMReX-Codes/amrex/archive/{0}.tar.gz"
return url.format(version.dotted)
+ def get_cuda_arch_string(self, values):
+ if 'none' in values:
+ return 'Auto'
+ else:
+ # Use format x.y instead of CudaPackage xy format
+ vf = tuple(float(x) / 10.0 for x in values)
+ return ';'.join(str(x) for x in vf)
+
#
- # For versions <= 20.11
+ # For versions > 20.11
#
- @when('@:20.11')
+ @when('@20.12:,develop')
def cmake_args(self):
args = [
'-DUSE_XSDK_DEFAULTS=ON',
- self.define_from_variant('DIM', 'dimensions'),
+ self.define_from_variant('AMReX_SPACEDIM', 'dimensions'),
self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
- self.define_from_variant('ENABLE_MPI', 'mpi'),
- self.define_from_variant('ENABLE_OMP', 'openmp'),
+ self.define_from_variant('AMReX_MPI', 'mpi'),
+ self.define_from_variant('AMReX_OMP', 'openmp'),
'-DXSDK_PRECISION:STRING=%s' %
self.spec.variants['precision'].value.upper(),
self.define_from_variant('XSDK_ENABLE_Fortran', 'fortran'),
- self.define_from_variant('ENABLE_FORTRAN_INTERFACES', 'fortran'),
- self.define_from_variant('ENABLE_EB', 'eb'),
- self.define_from_variant('ENABLE_LINEAR_SOLVERS',
+ self.define_from_variant('AMReX_FORTRAN_INTERFACES', 'fortran'),
+ self.define_from_variant('AMReX_EB', 'eb'),
+ self.define_from_variant('AMReX_LINEAR_SOLVERS',
'linear_solvers'),
- self.define_from_variant('ENABLE_AMRDATA', 'amrdata'),
- self.define_from_variant('ENABLE_PARTICLES', 'particles'),
- self.define_from_variant('ENABLE_SUNDIALS', 'sundials'),
- self.define_from_variant('ENABLE_HDF5', 'hdf5'),
- self.define_from_variant('ENABLE_HYPRE', 'hypre'),
- self.define_from_variant('ENABLE_PETSC', 'petsc'),
- self.define_from_variant('ENABLE_CUDA', 'cuda'),
+ self.define_from_variant('AMReX_AMRDATA', 'amrdata'),
+ self.define_from_variant('AMReX_PARTICLES', 'particles'),
+ self.define_from_variant('AMReX_PLOTFILE_TOOLS', 'plotfile_tools'),
+ self.define_from_variant('AMReX_HDF5', 'hdf5'),
+ self.define_from_variant('AMReX_HYPRE', 'hypre'),
+ self.define_from_variant('AMReX_PETSC', 'petsc'),
+ self.define_from_variant('AMReX_SUNDIALS', 'sundials'),
+ self.define_from_variant('AMReX_PIC', 'pic'),
]
+
if self.spec.satisfies('%fj'):
args.append('-DCMAKE_Fortran_MODDIR_FLAG=-M')
+ if '+cuda' in self.spec:
+ args.append('-DAMReX_GPU_BACKEND=CUDA')
+ args.append('-DAMReX_CUDA_ERROR_CAPTURE_THIS=ON')
+ args.append('-DAMReX_CUDA_ERROR_CROSS_EXECUTION_SPACE_CALL=ON')
+ cuda_arch = self.spec.variants['cuda_arch'].value
+ args.append('-DAMReX_CUDA_ARCH=' + self.get_cuda_arch_string(cuda_arch))
+
+ if '+rocm' in self.spec:
+ args.append('-DCMAKE_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc))
+ args.append('-DAMReX_GPU_BACKEND=HIP')
+ targets = self.spec.variants['amdgpu_target'].value
+ args.append('-DAMReX_AMD_ARCH=' + ';'.join(str(x) for x in targets))
+
return args
#
- # For versions > 20.11
+ # For versions <= 20.11
#
- @when('@20.12:')
+ @when('@:20.11')
def cmake_args(self):
args = [
'-DUSE_XSDK_DEFAULTS=ON',
- self.define_from_variant('AMReX_SPACEDIM', 'dimensions'),
+ self.define_from_variant('DIM', 'dimensions'),
self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
- self.define_from_variant('AMReX_MPI', 'mpi'),
- self.define_from_variant('AMReX_OMP', 'openmp'),
+ self.define_from_variant('ENABLE_MPI', 'mpi'),
+ self.define_from_variant('ENABLE_OMP', 'openmp'),
'-DXSDK_PRECISION:STRING=%s' %
self.spec.variants['precision'].value.upper(),
self.define_from_variant('XSDK_ENABLE_Fortran', 'fortran'),
- self.define_from_variant('AMReX_FORTRAN_INTERFACES', 'fortran'),
- self.define_from_variant('AMReX_EB', 'eb'),
- self.define_from_variant('AMReX_LINEAR_SOLVERS',
+ self.define_from_variant('ENABLE_FORTRAN_INTERFACES', 'fortran'),
+ self.define_from_variant('ENABLE_EB', 'eb'),
+ self.define_from_variant('ENABLE_LINEAR_SOLVERS',
'linear_solvers'),
- self.define_from_variant('AMReX_AMRDATA', 'amrdata'),
- self.define_from_variant('AMReX_PARTICLES', 'particles'),
- self.define_from_variant('AMReX_SUNDIALS', 'sundials'),
- self.define_from_variant('AMReX_HDF5', 'hdf5'),
- self.define_from_variant('AMReX_HYPRE', 'hypre'),
- self.define_from_variant('AMReX_PETSC', 'petsc'),
- self.define_from_variant('AMReX_CUDA', 'cuda'),
+ self.define_from_variant('ENABLE_AMRDATA', 'amrdata'),
+ self.define_from_variant('ENABLE_PARTICLES', 'particles'),
+ self.define_from_variant('ENABLE_SUNDIALS', 'sundials'),
+ self.define_from_variant('ENABLE_HDF5', 'hdf5'),
+ self.define_from_variant('ENABLE_HYPRE', 'hypre'),
+ self.define_from_variant('ENABLE_PETSC', 'petsc'),
+ self.define_from_variant('ENABLE_CUDA', 'cuda'),
]
+
if self.spec.satisfies('%fj'):
args.append('-DCMAKE_Fortran_MODDIR_FLAG=-M')
+ if '+cuda' in self.spec:
+ cuda_arch = self.spec.variants['cuda_arch'].value
+ args.append('-DCUDA_ARCH=' + self.get_cuda_arch_string(cuda_arch))
+
return args
diff --git a/var/spack/repos/builtin/packages/amrvis/package.py b/var/spack/repos/builtin/packages/amrvis/package.py
index c0ca8c083b..5db42a3336 100644
--- a/var/spack/repos/builtin/packages/amrvis/package.py
+++ b/var/spack/repos/builtin/packages/amrvis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/anaconda2/package.py b/var/spack/repos/builtin/packages/anaconda2/package.py
index e22ab88c8b..3eab2ac266 100644
--- a/var/spack/repos/builtin/packages/anaconda2/package.py
+++ b/var/spack/repos/builtin/packages/anaconda2/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path import split
+from spack import *
+
class Anaconda2(Package):
"""Anaconda is a free and open-source distribution of the Python and
diff --git a/var/spack/repos/builtin/packages/anaconda3/package.py b/var/spack/repos/builtin/packages/anaconda3/package.py
index 67dd832bd3..7474e1e3f9 100644
--- a/var/spack/repos/builtin/packages/anaconda3/package.py
+++ b/var/spack/repos/builtin/packages/anaconda3/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path import split
+from spack import *
+
class Anaconda3(Package):
"""
@@ -19,6 +20,8 @@ class Anaconda3(Package):
maintainers = ['ajkotobi']
+ version('2021.05', sha256='2751ab3d678ff0277ae80f9e8a74f218cfc70fe9a9cdc7bb1c137d7e47e33d53', expand=False)
+ version('2020.11', sha256='cf2ff493f11eaad5d09ce2b4feaa5ea90db5174303d5b3fe030e16d29aeef7de', expand=False)
version('2020.07', sha256='38ce717758b95b3bd0b1797cc6ccfb76f29a90c25bdfa50ee45f11e583edfdbf', expand=False)
version('2020.02', sha256='2b9f088b2022edb474915d9f69a803d6449d5fdb4c303041f60ac4aefcc208bb', expand=False)
version('2019.10', sha256='46d762284d252e51cd58a8ca6c8adc9da2eadc82c342927b2f66ed011d1d8b53', expand=False)
diff --git a/var/spack/repos/builtin/packages/andi/package.py b/var/spack/repos/builtin/packages/andi/package.py
index 500c074add..1709b24a4c 100644
--- a/var/spack/repos/builtin/packages/andi/package.py
+++ b/var/spack/repos/builtin/packages/andi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/angsd/package.py b/var/spack/repos/builtin/packages/angsd/package.py
index 6dae47f220..da819b6484 100644
--- a/var/spack/repos/builtin/packages/angsd/package.py
+++ b/var/spack/repos/builtin/packages/angsd/package.py
@@ -1,21 +1,23 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Angsd(MakefilePackage):
- """Angsd is a program for analysing NGS data. The software can handle a
- number of different input types from mapped reads to imputed genotype
- probabilities. Most methods take genotype uncertainty into account
- instead of basing the analysis on called genotypes. This is especially
- useful for low and medium depth data."""
+ """Angsd is a program for analysing NGS data.
+
+ The software can handle a number of different input types from mapped
+ reads to imputed genotype probabilities. Most methods take genotype
+ uncertainty into account instead of basing the analysis on called
+ genotypes. This is especially useful for low and medium depth data.
+ """
homepage = "https://github.com/ANGSD/angsd"
- url = "https://github.com/ANGSD/angsd/archive/0.919.tar.gz"
+ url = "https://github.com/ANGSD/angsd/archive/0.935.tar.gz"
+ version('0.935', sha256='15000281330fa59ddf745cb84eeaa653acf6da34a4ac6c3df7c5835d1d01ba16')
version('0.933', sha256='2f992325dc08fa25ac525d9300ef6bd61808e74c521b4cc72a2ce00d98f402bb')
version('0.921', sha256='8892d279ce1804f9e17fe2fc65a47e5498e78fc1c1cb84d2ca2527fd5c198772')
version('0.919', sha256='c2ea718ca5a5427109f4c3415e963dcb4da9afa1b856034e25c59c003d21822a')
@@ -29,7 +31,7 @@ class Angsd(MakefilePackage):
depends_on('lzma')
depends_on('curl')
- depends_on('r', type='run', when='+rlib')
+ depends_on('r', type='run', when='+r')
def setup_run_environment(self, env):
env.set('R_LIBS', self.prefix.R)
diff --git a/var/spack/repos/builtin/packages/ant/package.py b/var/spack/repos/builtin/packages/ant/package.py
index 057a806b76..fd3423dcbb 100644
--- a/var/spack/repos/builtin/packages/ant/package.py
+++ b/var/spack/repos/builtin/packages/ant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Ant(Package):
dependent upon each other
"""
- homepage = "http://ant.apache.org/"
+ homepage = "https://ant.apache.org/"
url = "https://archive.apache.org/dist/ant/source/apache-ant-1.9.7-src.tar.gz"
version('1.10.7', sha256='2f9c4ef094581663b41a7412324f65b854f17622e5b2da9fcb9541ca8737bd52')
diff --git a/var/spack/repos/builtin/packages/antimony/package.py b/var/spack/repos/builtin/packages/antimony/package.py
index 157a0a2510..9df56671a6 100644
--- a/var/spack/repos/builtin/packages/antimony/package.py
+++ b/var/spack/repos/builtin/packages/antimony/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/antlr/package.py b/var/spack/repos/builtin/packages/antlr/package.py
index 359f2210dc..e295c41f4a 100644
--- a/var/spack/repos/builtin/packages/antlr/package.py
+++ b/var/spack/repos/builtin/packages/antlr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Antlr(AutotoolsPackage):
frameworks. From a grammar, ANTLR generates a parser that can build and
walk parse trees."""
- homepage = "http://www.antlr2.org/"
+ homepage = "https://www.antlr2.org/"
url = "http://www.antlr2.org/download/antlr-2.7.7.tar.gz"
version('2.7.7', sha256='853aeb021aef7586bda29e74a6b03006bcb565a755c86b66032d8ec31b67dbb9')
diff --git a/var/spack/repos/builtin/packages/ants/package.py b/var/spack/repos/builtin/packages/ants/package.py
index 66d2571b8d..6c3c2232af 100644
--- a/var/spack/repos/builtin/packages/ants/package.py
+++ b/var/spack/repos/builtin/packages/ants/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,13 +15,21 @@ class Ants(CMakePackage):
processing library to which ANTs developers contribute.
"""
- homepage = "http://stnava.github.io/ANTs/"
+ homepage = "https://stnava.github.io/ANTs/"
url = "https://github.com/ANTsX/ANTs/archive/v2.2.0.tar.gz"
+ version('2.3.5', sha256='2fddfd5f274a47f1c383e734a7e763b627c4a8383d2d3b9971561f335016bb0a')
version('2.2.0', sha256='62f8f9ae141cb45025f4bb59277c053acf658d4a3ba868c9e0f609af72e66b4a')
depends_on('zlib', type='link')
+ variant('minc', default=True, description='Build ITK with MINC support')
+
+ def cmake_args(self):
+ return [
+ self.define_from_variant('ITK_BUILD_MINC_SUPPORT', 'minc')
+ ]
+
def install(self, spec, prefix):
with working_dir(
join_path(self.build_directory, 'ANTS-build'),
diff --git a/var/spack/repos/builtin/packages/aocc/package.py b/var/spack/repos/builtin/packages/aocc/package.py
index 74649db620..f54b173c7c 100755
--- a/var/spack/repos/builtin/packages/aocc/package.py
+++ b/var/spack/repos/builtin/packages/aocc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,19 +24,28 @@ class Aocc(Package):
The AOCC Compiler Suite simplifies and accelerates development and
tuning for x86 applications.
Please install only if you agree to terms and conditions depicted
- under : http://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf
+ under : https://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf
Example for installation: \'spack install aocc +license-agreed\'
'''
family = 'compiler'
homepage = "https://developer.amd.com/amd-aocc/"
+
+ maintainers = ['amd-toolchain-support']
+
+ version(ver="3.1.0", sha256='1948104a430506fe5e445c0c796d6956109e7cc9fc0a1e32c9f1285cfd566d0c',
+ url='https://developer.amd.com/wordpress/media/files/aocc-compiler-3.1.0.tar')
+ version(ver="3.0.0", sha256='4ff269b1693856b9920f57e3c85ce488c8b81123ddc88682a3ff283979362227',
+ url='https://developer.amd.com/wordpress/media/files/aocc-compiler-3.0.0.tar')
+ version(ver="2.3.0", sha256='9f8a1544a5268a7fb8cd21ac4bdb3f8d1571949d1de5ca48e2d3309928fc3d15',
+ url='https://developer.amd.com/wordpress/media/files/aocc-compiler-2.3.0.tar')
version(ver="2.2.0", sha256='500940ce36c19297dfba3aa56dcef33b6145867a1f34890945172ac2be83b286',
- url='http://developer.amd.com/wordpress/media/files/aocc-compiler-2.2.0.tar')
+ url='https://developer.amd.com/wordpress/media/files/aocc-compiler-2.2.0.tar')
# Licensing
license_required = True
license_comment = '#'
license_files = ['AOCC_EULA.pdf']
- license_url = 'http://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf'
+ license_url = 'https://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf'
install_example = "spack install aocc +license-agreed"
depends_on('libxml2')
@@ -51,7 +60,7 @@ class Aocc(Package):
@run_before('install')
def abort_without_license_agreed(self):
- license_url = 'http://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf'
+ license_url = 'https://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf'
install_example = "spack install aocc +license-agreed"
if not self.spec.variants['license-agreed'].value:
raise InstallError("\n\n\nNOTE:\nUse +license-agreed " +
diff --git a/var/spack/repos/builtin/packages/aocl-sparse/package.py b/var/spack/repos/builtin/packages/aocl-sparse/package.py
new file mode 100644
index 0000000000..3f8aec953b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/aocl-sparse/package.py
@@ -0,0 +1,105 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class AoclSparse(CMakePackage):
+ """AOCL-Sparse is a library that contains basic linear algebra subroutines
+ for sparse matrices and vectors optimized for AMD EPYC family of processors.
+ It is designed to be used with C and C++. Current functionality of sparse
+ library supports SPMV function with CSR and ELLPACK formats."""
+
+ homepage = "https://developer.amd.com/amd-aocl/aocl-sparse/"
+ url = "https://github.com/amd/aocl-sparse/archive/3.0.tar.gz"
+ git = "https://github.com/amd/aocl-sparse.git"
+
+ maintainers = ['amd-toolchain-support']
+
+ version('3.0', sha256='1d04ba16e04c065051af916b1ed9afce50296edfa9b1513211a7378e1d6b952e')
+ version('2.2', sha256='33c2ed6622cda61d2613ee63ff12c116a6cd209c62e54307b8fde986cd65f664')
+
+ conflicts("%gcc@:9.1.999", msg="Minimum required GCC version is 9.2.0")
+
+ variant('build_type', default='Release',
+ description='CMake build type',
+ values=('Debug', 'Release'))
+ variant('shared', default=True,
+ description='Build shared library')
+ variant('ilp64', default=False,
+ description='Build with ILP64 support')
+
+ depends_on('boost', when='@2.2')
+
+ @property
+ def build_directory(self):
+ """Returns the directory to use when building the package
+
+ :return: directory where to build the package
+ """
+
+ build_directory = self.stage.source_path
+
+ if self.spec.variants['build_type'].value == 'Debug':
+ build_directory = join_path(build_directory, 'build', 'debug')
+ else:
+ build_directory = join_path(build_directory, 'build', 'release')
+
+ return build_directory
+
+ def cmake_args(self):
+ """Runs ``cmake`` in the build directory"""
+ spec = self.spec
+
+ args = [
+ "../..",
+ "-DCMAKE_INSTALL_PREFIX:PATH={0}".format(spec.prefix),
+ "-DCMAKE_CXX_COMPILER={0}".format(os.path.basename(spack_cxx))
+ ]
+
+ if spec.variants['build_type'].value == 'Debug':
+ args.append("-DCMAKE_BUILD_TYPE=Debug")
+ else:
+ args.append("-DCMAKE_BUILD_TYPE=Release")
+
+ args.extend([
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+
+ "-DBUILD_CLIENTS_BENCHMARKS:BOOL=%s" % (
+ 'ON' if self.run_tests else 'OFF')
+ ])
+
+ if spec.satisfies('@3.0:'):
+ args.extend([
+ self.define_from_variant('BUILD_ILP64', 'ilp64')
+ ])
+
+ return args
+
+ @run_after('build')
+ @on_package_attributes(run_tests=True)
+ def check(self):
+ """ Simple test to test the built library by running
+ one of the aocl-sparse examples, after compiling the
+ library with benchmarks.
+ """
+ dso_suffix = 'so' if '+shared' in self.spec else 'a'
+
+ if self.spec.variants['build_type'].value == 'Debug':
+ lib_path = join_path(self.build_directory,
+ 'library',
+ 'libaoclsparse-d.{0}'.format(dso_suffix))
+ else:
+ lib_path = join_path(self.build_directory,
+ 'library',
+ 'libaoclsparse.{0}'.format(dso_suffix))
+
+ test_bench_bin = join_path(self.build_directory, 'tests',
+ 'staging', 'aoclsparse-bench')
+ test_args = " --function=csrmv --precision=d "
+ test_args += "--sizem=1000 --sizen=1000 --sizennz=4000 --verify=1 "
+ os.system(test_bench_bin + test_args + lib_path)
diff --git a/var/spack/repos/builtin/packages/aoflagger/package.py b/var/spack/repos/builtin/packages/aoflagger/package.py
index 9b7ae1abdb..417527cec6 100644
--- a/var/spack/repos/builtin/packages/aoflagger/package.py
+++ b/var/spack/repos/builtin/packages/aoflagger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aom/package.py b/var/spack/repos/builtin/packages/aom/package.py
index 84c027e272..b4ae5171ec 100644
--- a/var/spack/repos/builtin/packages/aom/package.py
+++ b/var/spack/repos/builtin/packages/aom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aomp/0001-Add-cmake-option-for-copying-source-for-debugging.patch b/var/spack/repos/builtin/packages/aomp/0001-Add-cmake-option-for-copying-source-for-debugging.patch
new file mode 100644
index 0000000000..b586e04b56
--- /dev/null
+++ b/var/spack/repos/builtin/packages/aomp/0001-Add-cmake-option-for-copying-source-for-debugging.patch
@@ -0,0 +1,28 @@
+From 526efe86427a4d49da38773534d84025dd4246c3 Mon Sep 17 00:00:00 2001
+From: Ethan Stewart <ethan.stewart@amd.com>
+Date: Tue, 10 Nov 2020 15:32:59 -0600
+Subject: [PATCH] Add cmake option for copying source for debugging.
+
+---
+ openmp/CMakeLists.txt | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt
+index a86e83c50212..51962b561a3b 100644
+--- a/openmp/CMakeLists.txt
++++ b/openmp/CMakeLists.txt
+@@ -103,3 +103,11 @@ endif()
+
+ # Now that we have seen all testsuites, create the check-openmp target.
+ construct_check_openmp_target()
++
++option(DEBUG_COPY_SOURCE "Enable source code copy for openmp debug build."
++ ${ENABLE_SOURCE_COPY})
++if (${ENABLE_SOURCE_COPY})
++ install(DIRECTORY runtime/src DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/runtime)
++ install(DIRECTORY libomptarget/src libomptarget/plugins DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/libomptarget)
++ install(DIRECTORY libompd/src DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/libompd)
++endif()
+--
+2.17.1
+
diff --git a/var/spack/repos/builtin/packages/aomp/package.py b/var/spack/repos/builtin/packages/aomp/package.py
index 5f561f1b3e..148f4a54f6 100644
--- a/var/spack/repos/builtin/packages/aomp/package.py
+++ b/var/spack/repos/builtin/packages/aomp/package.py
@@ -1,215 +1,180 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import re
+
from spack import *
tools_url = 'https://github.com/ROCm-Developer-Tools'
compute_url = 'https://github.com/RadeonOpenCompute'
-# 3.8 SHA Keys
-aomp38 = dict()
-aomp38 = {
- "aomp":
- "86f90d6505eccdb2840069cadf57f7111d4685653c4974cf65fb22b172e55478",
- "devlib":
- "e82cc9a8eb7d92de02cabb856583e28f17a05c8cf9c97aec5275608ef1a38574",
- "llvm":
- "98deabedb6cb3067ee960a643099631902507f236e4d9dc65b3e0f8d659eb55c",
- "flang":
- "54cc6a9706dba6d7808258632ed40fa6493838edb309709d3b25e0f9b02507f8",
- "extras":
- "4460a4f4b03022947f536221483e85dcd9b07064a54516ec103a1939c3f587b5"
-}
-
-# 3.7 SHA Keys
-aomp37 = dict()
-aomp37 = {
- "aomp":
- "970374c3acb9dda8b9a17d7a579dbaab48fac731db8fdce566a65abee37e5ed3",
- "devlib":
- "b3a114180bf184b3b829c356067bc6a98021d52c1c6f9db6bc57272ebafc5f1d",
- "llvm":
- "89b967de5e79f6df7c62fdc12529671fa30989ae7b634d5a7c7996629ec1140e",
- "flang":
- "1fe07a0da20eb66a2a2aa8d354bf95c6f216ec38cc4a051e98041e0d13c34b36",
- "extras":
- "adaf7670b2497ff3ac09636e0dd30f666a5a5b742ecdcb8551d722102dcfbd85"
-}
-
-# 3.5 SHA Keys
-aomp35 = dict()
-
-aomp35 = {
- "aomp":
- "e4526489833896bbc47ba865e0d115fab278ce269789a8c99a97f444595f5f6a",
- "devlib":
- "dce3a4ba672c4a2da4c2260ee4dc96ff6dd51877f5e7e1993cb107372a35a378",
- "llvm":
- "b4fd7305dc57887eec17cce77bbf42215db46a4a3d14d8e517ab92f4e200b29d",
- "flang":
- "cc27f8bfb49257b7a4f0b03f4ba5e06a28dcb6c337065c4201b6075dd2d5bc48",
- "extras":
- "5dbf27f58b8114318208b97ba99a90483b78eebbcad4117cac6881441977e855",
- "hip":
- "86eb7749ff6f6c5f6851cd6c528504d42f9286967324a50dd0dd54a6a74cacc7",
- "vdi":
- "b21866c7c23dc536356db139b88b6beb3c97f58658836974a7fc167feb31ad7f",
- "opencl":
- "8963fcd5a167583b3db8b94363778d4df4593bfce8141e1d3c32a59fb64a0cf6"
-}
+
+aomp = [
+ "e4526489833896bbc47ba865e0d115fab278ce269789a8c99a97f444595f5f6a",
+ "970374c3acb9dda8b9a17d7a579dbaab48fac731db8fdce566a65abee37e5ed3",
+ "86f90d6505eccdb2840069cadf57f7111d4685653c4974cf65fb22b172e55478",
+ "14fc6867af0b17e3bff8cb42cb36f509c95a29b7a933a106bf6778de21f6c123",
+ "ce29cead5391a4a13f2c567e2e059de9291888d24985460725e43a91b740be7a"
+]
+
+devlib = [
+ "dce3a4ba672c4a2da4c2260ee4dc96ff6dd51877f5e7e1993cb107372a35a378",
+ "b3a114180bf184b3b829c356067bc6a98021d52c1c6f9db6bc57272ebafc5f1d",
+ "e82cc9a8eb7d92de02cabb856583e28f17a05c8cf9c97aec5275608ef1a38574",
+ "c99f45dacf5967aef9a31e3731011b9c142446d4a12bac69774998976f2576d7",
+ "bca9291385d6bdc91a8b39a46f0fd816157d38abb1725ff5222e6a0daa0834cc"
+]
+
+llvm = [
+ "b4fd7305dc57887eec17cce77bbf42215db46a4a3d14d8e517ab92f4e200b29d",
+ "89b967de5e79f6df7c62fdc12529671fa30989ae7b634d5a7c7996629ec1140e",
+ "98deabedb6cb3067ee960a643099631902507f236e4d9dc65b3e0f8d659eb55c",
+ "f0a0b9fec0626878340a15742e73a56f155090011716461edcb069dcf05e6b30",
+ "3ff18a8bd31d5b55232327e574dfa3556cf26787e105d0ba99411c5687325a8d"
+]
+
+flang = [
+ "cc27f8bfb49257b7a4f0b03f4ba5e06a28dcb6c337065c4201b6075dd2d5bc48",
+ "1fe07a0da20eb66a2a2aa8d354bf95c6f216ec38cc4a051e98041e0d13c34b36",
+ "54cc6a9706dba6d7808258632ed40fa6493838edb309709d3b25e0f9b02507f8",
+ "43d57bcc87fab092ac242e36da62588a87b6fa91f9e81fdb330159497afdecb3",
+ "81674bf3c9d8fd9b16fb3e5c66a870537c25ff8302fc1b162ab9e95944167163"
+]
+
+extras = [
+ "5dbf27f58b8114318208b97ba99a90483b78eebbcad4117cac6881441977e855",
+ "adaf7670b2497ff3ac09636e0dd30f666a5a5b742ecdcb8551d722102dcfbd85",
+ "4460a4f4b03022947f536221483e85dcd9b07064a54516ec103a1939c3f587b5",
+ "014fca1fba54997c6db0e84822df274fb6807698b6856da4f737f38f10ab0e5d",
+ "ee146cff4b9ee7aae90d7bb1d6b4957839232be0e7dab1865e0ae39832f8f795"
+]
+
+# Used only for 3.5.0
+hip = [
+ "86eb7749ff6f6c5f6851cd6c528504d42f9286967324a50dd0dd54a6a74cacc7"
+]
+
+vdi = [
+ "b21866c7c23dc536356db139b88b6beb3c97f58658836974a7fc167feb31ad7f"
+]
+
+opencl = [
+ "8963fcd5a167583b3db8b94363778d4df4593bfce8141e1d3c32a59fb64a0cf6"
+]
+
+versions = ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0']
+versions_dict = dict()
+hashes = [aomp, devlib, llvm, flang, extras]
+hashes_35 = [aomp, devlib, llvm, flang, extras, hip, vdi, opencl]
+components = ['aomp', 'devlib', 'llvm', 'flang', 'extras']
+components_35 = [
+ 'aomp', 'devlib', 'llvm', 'flang', 'extras', 'hip', 'vdi', 'opencl'
+]
+
+for outer_index, item in enumerate(versions):
+ if item == '3.5.0':
+ use_components = components_35
+ use_hashes = hashes_35
+ else:
+ use_components = components
+ use_hashes = hashes
+ for inner_index, component in enumerate(use_hashes):
+ versions_dict.setdefault(item, {})[use_components[inner_index]] = \
+ use_hashes[inner_index][outer_index]
class Aomp(Package):
"""llvm openmp compiler from AMD."""
homepage = tools_url + "/aomp"
- url = tools_url + "/aomp/archive/rocm-3.8.0.tar.gz"
+ url = tools_url + "/aomp/archive/rocm-3.10.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala', 'estewart08']
- version('3.8.0', sha256=aomp38['aomp'])
- version('3.7.0', sha256=aomp37['aomp'])
- version('3.5.0', sha256=aomp35['aomp'])
-
- depends_on('cmake@3.5.2:3.13.4', type='build')
- depends_on('mesa~llvm@18.3:', type=('build', 'link'))
- depends_on('py-setuptools@44.1.0', type='build')
- depends_on('python@2.7.18', type='build')
+ version('3.10.0', sha256=versions_dict['3.10.0']['aomp'])
+ version('3.9.0', sha256=versions_dict['3.9.0']['aomp'])
+ version('3.8.0', sha256=versions_dict['3.8.0']['aomp'])
+ version('3.7.0', sha256=versions_dict['3.7.0']['aomp'])
+ version('3.5.0', sha256=versions_dict['3.5.0']['aomp'])
+
+ # Cmake above 3.18 would fail the build on 3.5.0
+ depends_on('cmake@3:', type='build')
+ depends_on('cmake@3:3.17', when='@3.5.0', type='build')
+
+ # Python 2 is needed for 3.5.0 and 3.8.0, limit py-setuptools
+ # to avoid spec error
+ depends_on('python@2.7:2.8', when='@3.5.0:3.8.0', type='build')
+ depends_on('py-setuptools@:44', when='@3.5.0:3.8.0',
+ type='build')
+
+ depends_on('python@3:', type='build', when='@3.9.0:')
+ depends_on('py-setuptools', when='@3.9.0:', type='build')
+
+ depends_on('mesa18~llvm@18.3:', type=('build', 'link'))
depends_on('py-pip', when='@3.8.0:', type='build')
- depends_on('py-wheel@0.29.0', when='@3.8.0:', type=('build', 'run'))
+ depends_on('py-wheel', when='@3.8.0:', type=('build', 'run'))
depends_on('perl-data-dumper', type='build')
depends_on('awk', type='build')
depends_on('elfutils', type=('build', 'link'))
depends_on('libffi', type=('build', 'link'))
- for ver in ['3.5.0', '3.7.0', '3.8.0']:
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0']:
+ depends_on('hsakmt-roct@' + ver, when='@' + ver)
depends_on('comgr@' + ver, type='build', when='@' + ver)
-
- # 3.8.0 Resources
- if ver == '3.8.0':
- resource(
- name='rocm-device-libs',
- url=compute_url +
- '/ROCm-Device-Libs/archive/rocm-3.8.0.tar.gz',
- sha256=aomp38['devlib'],
- expand=True,
- destination='aomp-dir',
- placement='rocm-device-libs',
- when='@3.8.0')
-
- resource(
- name='amd-llvm-project',
- url=tools_url + '/amd-llvm-project/archive/rocm-3.8.0.tar.gz',
- sha256=aomp38['llvm'],
- expand=True,
- destination='aomp-dir',
- placement='amd-llvm-project',
- when='@3.8.0')
-
- resource(
- name='flang',
- url=tools_url + '/flang/archive/rocm-3.8.0.tar.gz',
- sha256=aomp38['flang'],
- expand=True,
- destination='aomp-dir',
- placement='flang',
- when='@3.8.0')
-
- resource(
- name='aomp-extras',
- url=tools_url + '/aomp-extras/archive/rocm-3.8.0.tar.gz',
- sha256=aomp38['extras'],
- expand=True,
- destination='aomp-dir',
- placement='aomp-extras',
- when='@3.8.0')
-
- # 3.7.0 Resources
- if ver == '3.7.0':
- resource(
- name='rocm-device-libs',
- url=compute_url +
- '/ROCm-Device-Libs/archive/rocm-3.7.0.tar.gz',
- sha256=aomp37['devlib'],
- expand=True,
- destination='aomp-dir',
- placement='rocm-device-libs',
- when='@3.7.0')
-
- resource(
- name='amd-llvm-project',
- url=tools_url + '/amd-llvm-project/archive/rocm-3.7.0.tar.gz',
- sha256=aomp37['llvm'],
- expand=True,
- destination='aomp-dir',
- placement='amd-llvm-project',
- when='@3.7.0')
-
- resource(
- name='flang',
- url=tools_url + '/flang/archive/rocm-3.7.0.tar.gz',
- sha256=aomp37['flang'],
- expand=True,
- destination='aomp-dir',
- placement='flang',
- when='@3.7.0')
-
- resource(
- name='aomp-extras',
- url=tools_url + '/aomp-extras/archive/rocm-3.7.0.tar.gz',
- sha256=aomp37['extras'],
- expand=True,
- destination='aomp-dir',
- placement='aomp-extras',
- when='@3.7.0')
-
- # 3.5.0 Resources
- elif ver == '3.5.0':
- resource(
- name='rocm-device-libs',
- url=compute_url +
- '/ROCm-Device-Libs/archive/rocm-3.5.0.tar.gz',
- sha256=aomp35['devlib'],
- expand=True,
- destination='aomp-dir',
- placement='rocm-device-libs',
- when='@3.5.0')
-
- resource(
- name='amd-llvm-project',
- url=tools_url + '/amd-llvm-project/archive/rocm-3.5.0.tar.gz',
- sha256=aomp35['llvm'],
- expand=True,
- destination='aomp-dir',
- placement='amd-llvm-project',
- when='@3.5.0')
-
- resource(
- name='flang',
- url=tools_url + '/flang/archive/rocm-3.5.0.tar.gz',
- sha256=aomp35['flang'],
- expand=True,
- destination='aomp-dir',
- placement='flang',
- when='@3.5.0')
-
- resource(
- name='aomp-extras',
- url=tools_url + '/aomp-extras/archive/rocm-3.5.0.tar.gz',
- sha256=aomp35['extras'],
- expand=True,
- destination='aomp-dir',
- placement='aomp-extras',
- when='@3.5.0')
-
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
+ depends_on('rocm-device-libs@' + ver, when='@' + ver)
+
+ if ver != '3.5.0':
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('hip-rocclr@' + ver, when='@' + ver)
+
+ if ver == '3.9.0' or ver == '3.10.0':
+ depends_on('rocm-gdb@' + ver, when='@' + ver)
+
+ resource(
+ name='rocm-device-libs',
+ url=compute_url +
+ '/ROCm-Device-Libs/archive/rocm-' + ver + '.tar.gz',
+ sha256=versions_dict[ver]['devlib'],
+ expand=True,
+ destination='aomp-dir',
+ placement='rocm-device-libs',
+ when='@' + ver)
+
+ resource(
+ name='amd-llvm-project',
+ url=tools_url + '/amd-llvm-project/archive/rocm-' + ver
+ + '.tar.gz',
+ sha256=versions_dict[ver]['llvm'],
+ expand=True,
+ destination='aomp-dir',
+ placement='amd-llvm-project',
+ when='@' + ver)
+
+ resource(
+ name='flang',
+ url=tools_url + '/flang/archive/rocm-' + ver + '.tar.gz',
+ sha256=versions_dict[ver]['flang'],
+ expand=True,
+ destination='aomp-dir',
+ placement='flang',
+ when='@' + ver)
+
+ resource(
+ name='aomp-extras',
+ url=tools_url + '/aomp-extras/archive/rocm-' + ver + '.tar.gz',
+ sha256=versions_dict[ver]['extras'],
+ expand=True,
+ destination='aomp-dir',
+ placement='aomp-extras',
+ when='@' + ver)
+
+ if ver == '3.5.0':
resource(
name='hip-on-vdi',
url=tools_url + '/hip/archive/aomp-3.5.0.tar.gz',
- sha256=aomp35['hip'],
+ sha256=versions_dict['3.5.0']['hip'],
expand=True,
destination='aomp-dir',
placement='hip-on-vdi',
@@ -218,7 +183,7 @@ class Aomp(Package):
resource(
name='vdi',
url=tools_url + '/rocclr/archive/aomp-3.5.0.tar.gz',
- sha256=aomp35['vdi'],
+ sha256=versions_dict['3.5.0']['vdi'],
expand=True,
destination='aomp-dir',
placement='vdi',
@@ -226,13 +191,18 @@ class Aomp(Package):
resource(
name='opencl-on-vdi',
- sha256=aomp35['opencl'],
+ sha256=versions_dict['3.5.0']['opencl'],
url=compute_url +
'/ROCm-OpenCL-Runtime/archive/aomp-3.5.0.tar.gz',
expand=True,
destination='aomp-dir',
placement='opencl-on-vdi',
when='@3.5.0')
+
+ # Copy source files over for debug build in 3.9.0
+ patch('0001-Add-cmake-option-for-copying-source-for-debugging.patch',
+ working_dir='aomp-dir/amd-llvm-project', when='@3.9.0:')
+
# Revert back to .amdgcn.bc naming scheme for 3.8.0
patch('0001-Add-amdgcn-to-devicelibs-bitcode-names-3.8.patch',
working_dir='aomp-dir/amd-llvm-project', when='@3.8.0')
@@ -256,8 +226,14 @@ class Aomp(Package):
src = self.stage.source_path
libomptarget = '{0}/aomp-dir/amd-llvm-project/openmp/libomptarget'
aomp_extras = '{0}/aomp-dir/aomp-extras/aomp-device-libs'
+ flang = '{0}/aomp-dir/flang/'
+
+ if self.spec.version >= Version('3.9.0'):
+ filter_file(
+ 'ADDITIONAL_VERSIONS 2.7', 'ADDITIONAL_VERSIONS 3',
+ flang.format(src) + 'CMakeLists.txt')
- if self.spec.version == Version('3.8.0'):
+ if self.spec.version >= Version('3.8.0'):
filter_file(
'{CMAKE_INSTALL_PREFIX}', '{HSA_INCLUDE}',
libomptarget.format(src) + '/hostrpc/services/CMakeLists.txt')
@@ -287,9 +263,10 @@ class Aomp(Package):
string=True)
filter_file(
- r'\${ROCM_DIR}/hsa/include \${ROCM_DIR}/hsa/include/hsa',
+ r'${ROCM_DIR}/hsa/include ${ROCM_DIR}/hsa/include/hsa',
'${HSA_INCLUDE}/hsa/include ${HSA_INCLUDE}/hsa/include/hsa',
- libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt')
+ libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt',
+ string=True)
filter_file(
'{ROCM_DIR}/hsa/lib', '{HSA_LIB}',
@@ -301,15 +278,17 @@ class Aomp(Package):
libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt')
filter_file(
- r'-L\${LIBOMPTARGET_DEP_LIBHSAKMT_LIBRARIES_DIRS}',
+ r'-L${LIBOMPTARGET_DEP_LIBHSAKMT_LIBRARIES_DIRS}',
'-L${LIBOMPTARGET_DEP_LIBHSAKMT_LIBRARIES_DIRS} -L${HSAKMT_LIB64}',
- libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt')
+ libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt',
+ string=True)
filter_file(
- r'-rpath,\${LIBOMPTARGET_DEP_LIBHSAKMT_LIBRARIES_DIRS}',
+ r'-rpath,${LIBOMPTARGET_DEP_LIBHSAKMT_LIBRARIES_DIRS}',
'-rpath,${LIBOMPTARGET_DEP_LIBHSAKMT_LIBRARIES_DIRS}' +
',-rpath,${HSAKMT_LIB64}',
- libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt')
+ libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt',
+ string=True)
filter_file(
'{ROCM_DIR}/include', '{COMGR_INCLUDE}',
@@ -320,15 +299,24 @@ class Aomp(Package):
libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt')
filter_file(
- r'-L\${LLVM_LIBDIR}\${OPENMP_LIBDIR_SUFFIX}',
+ r'-L${LLVM_LIBDIR}${OPENMP_LIBDIR_SUFFIX}',
'-L${LLVM_LIBDIR}${OPENMP_LIBDIR_SUFFIX} -L${COMGR_LIB}',
- libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt')
+ libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt',
+ string=True)
filter_file(
- r'rpath,\${LLVM_LIBDIR}\${OPENMP_LIBDIR_SUFFIX}',
+ r'rpath,${LLVM_LIBDIR}${OPENMP_LIBDIR_SUFFIX}',
'rpath,${LLVM_LIBDIR}${OPENMP_LIBDIR_SUFFIX}' +
'-Wl,-rpath,${COMGR_LIB}',
- libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt')
+ libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt',
+ string=True)
+
+ def setup_run_environment(self, env):
+ devlibs_prefix = self.spec['rocm-device-libs'].prefix
+ aomp_prefix = self.spec['aomp'].prefix
+ env.set('HIP_DEVICE_LIB_PATH',
+ '{0}/amdgcn/bitcode'.format(format(devlibs_prefix)))
+ env.set('AOMP', '{0}'.format(format(aomp_prefix)))
def setup_build_environment(self, env):
aomp_prefix = self.spec['aomp'].prefix
@@ -347,6 +335,15 @@ class Aomp(Package):
hsakmt_prefix = self.spec['hsakmt-roct'].prefix
comgr_prefix = self.spec['comgr'].prefix
opencl_src = '/aomp-dir/opencl-on-vdi/api/opencl'
+ omp_src = '/aomp-dir/amd-llvm-project/openmp'
+ debug_map_format = \
+ '-fdebug-prefix-map={0}{1}={2}'.format(src, omp_src, aomp_prefix)
+
+ if self.spec.version >= Version('3.9.0'):
+ bitcode_dir = '/amdgcn/bitcode'
+ else:
+ bitcode_dir = '/lib'
+
components = dict()
components['amd-llvm-project'] = [
'../aomp-dir/amd-llvm-project/llvm',
@@ -388,19 +385,19 @@ class Aomp(Package):
components['aomp-extras'] = [
'../aomp-dir/aomp-extras',
'-DROCM_PATH=$ROCM_DIR ',
- '-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
+ '-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
'-DAOMP_STANDALONE_BUILD=0',
- '-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src)
+ '-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
+ '-DCMAKE_VERBOSE_MAKEFILE=1'
]
- components['openmp'] = [
- '../aomp-dir/amd-llvm-project/openmp',
+ openmp_common_args = [
'-DROCM_DIR={0}'.format(hsa_prefix),
- '-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
+ '-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
'-DAOMP_STANDALONE_BUILD=0',
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
- '-DOPENMP_TEST_C_COMPILER=$AOMP/bin/clang',
- '-DOPENMP_TEST_CXX_COMPILER=$AOMP/bin/clang++',
+ '-DOPENMP_TEST_C_COMPILER={0}/bin/clang'.format(aomp_prefix),
+ '-DOPENMP_TEST_CXX_COMPILER={0}/bin/clang++'.format(aomp_prefix),
'-DLIBOMPTARGET_AMDGCN_GFXLIST={0}'.format(gfx_list),
'-DLIBOMP_COPY_EXPORTS=OFF',
'-DHSA_INCLUDE={0}'.format(hsa_prefix),
@@ -413,28 +410,25 @@ class Aomp(Package):
'-DOPENMP_ENABLE_LIBOMPTARGET_HSA=1'
]
+ components['openmp'] = ['../aomp-dir/amd-llvm-project/openmp']
+ components['openmp'] += openmp_common_args
+
components['openmp-debug'] = [
'../aomp-dir/amd-llvm-project/openmp',
- '-DROCM_DIR={0}'.format(hsa_prefix),
- '-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
- '-DAOMP_STANDALONE_BUILD=0',
- '-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
- '-DOPENMP_TEST_C_COMPILER=$AOMP/bin/clang',
- '-DOPENMP_TEST_CXX_COMPILER=$AOMP/bin/clang++',
- '-DLIBOMPTARGET_AMDGCN_GFXLIST={0}'.format(gfx_list),
- '-DLIBOMP_COPY_EXPORTS=OFF',
- '-DHSA_INCLUDE={0}'.format(hsa_prefix),
- '-DHSA_LIB={0}/lib'.format(hsa_prefix),
- '-DHSAKMT_LIB={0}/lib'.format(hsakmt_prefix),
- '-DHSAKMT_LIB64={0}/lib64'.format(hsakmt_prefix),
- '-DCOMGR_INCLUDE={0}/include'.format(comgr_prefix),
- '-DCOMGR_LIB={0}/lib'.format(comgr_prefix),
'-DLIBOMPTARGET_NVPTX_DEBUG=ON',
'-DOPENMP_ENABLE_LIBOMPTARGET=1',
'-DOPENMP_ENABLE_LIBOMPTARGET_HSA=1'
+ '-DCMAKE_CXX_FLAGS=-g',
+ '-DCMAKE_C_FLAGS=-g'
]
- if self.spec.version == Version('3.8.0'):
+ if self.spec.version >= Version('3.9.0'):
+ components['openmp-debug'] += [
+ '-DENABLE_SOURCE_COPY=ON',
+ '-DOPENMP_SOURCE_DEBUG_MAP={0}'.format(debug_map_format)
+ ]
+
+ if self.spec.version >= Version('3.8.0'):
components['openmp-debug'] += [
'-DLIBOMP_ARCH=x86_64',
'-DLIBOMP_OMP_VERSION=50',
@@ -444,13 +438,12 @@ class Aomp(Package):
'-DLIBOMP_CPPFLAGS=-O0',
'-DLIBOMP_OMPD_ENABLED=ON',
'-DLIBOMP_OMPD_SUPPORT=ON',
- '-DLIBOMP_OMPT_DEBUG=ON',
- '-DCMAKE_CXX_FLAGS=-g',
- '-DCMAKE_C_FLAGS=-g'
+ '-DLIBOMP_OMPT_DEBUG=ON'
]
- components['pgmath'] = [
- '../aomp-dir/flang/runtime/libpgmath',
+ components['openmp-debug'] += openmp_common_args
+
+ flang_common_args = [
'-DLLVM_ENABLE_ASSERTIONS=ON',
'-DLLVM_CONFIG={0}/bin/llvm-config'.format(aomp_prefix),
'-DCMAKE_CXX_COMPILER={0}/bin/clang++'.format(aomp_prefix),
@@ -459,31 +452,26 @@ class Aomp(Package):
'-DLLVM_TARGETS_TO_BUILD=AMDGPU;x86'
]
+ components['pgmath'] = ['../aomp-dir/flang/runtime/libpgmath']
+ components['pgmath'] += flang_common_args
+
components['flang'] = [
'../aomp-dir/flang',
- '-DLLVM_ENABLE_ASSERTIONS=ON',
- '-DLLVM_CONFIG={0}/bin/llvm-config'.format(aomp_prefix),
- '-DCMAKE_CXX_COMPILER={0}/bin/clang++'.format(aomp_prefix),
- '-DCMAKE_C_COMPILER={0}/bin/clang'.format(aomp_prefix),
- '-DCMAKE_Fortran_COMPILER={0}/bin/flang'.format(aomp_prefix),
- '-DLLVM_TARGETS_TO_BUILD=AMDGPU;x86',
'-DFLANG_OPENMP_GPU_AMD=ON',
'-DFLANG_OPENMP_GPU_NVIDIA=ON'
]
+ components['flang'] += flang_common_args
+
components['flang-runtime'] = [
'../aomp-dir/flang',
- '-DLLVM_ENABLE_ASSERTIONS=ON',
- '-DLLVM_CONFIG={0}/bin/llvm-config'.format(aomp_prefix),
- '-DCMAKE_CXX_COMPILER={0}/bin/clang++'.format(aomp_prefix),
- '-DCMAKE_C_COMPILER={0}/bin/clang'.format(aomp_prefix),
- '-DCMAKE_Fortran_COMPILER={0}/bin/flang'.format(aomp_prefix),
- '-DLLVM_TARGETS_TO_BUILD=AMDGPU;x86',
'-DLLVM_INSTALL_RUNTIME=ON',
'-DFLANG_BUILD_RUNTIME=ON',
'-DOPENMP_BUILD_DIR={0}/spack-build-openmp/runtime/src'.format(src)
]
+ components['flang-runtime'] += flang_common_args
+
if self.spec.version != Version('3.5.0'):
build_order = [
"amd-llvm-project", "aomp-extras",
@@ -496,7 +484,11 @@ class Aomp(Package):
]
# Override standard CMAKE_BUILD_TYPE
- std_cmake_args.remove("-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo")
+ for arg in std_cmake_args:
+ found = re.search("CMAKE_BUILD_TYPE", arg)
+ if found:
+ std_cmake_args.remove(arg)
+
for component in build_order:
with working_dir('spack-build-{0}'.format(component), create=True):
cmake_args = components[component]
diff --git a/var/spack/repos/builtin/packages/apachetop/package.py b/var/spack/repos/builtin/packages/apachetop/package.py
index 19943c849c..c0da70bc36 100644
--- a/var/spack/repos/builtin/packages/apachetop/package.py
+++ b/var/spack/repos/builtin/packages/apachetop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/apcomp/package.py b/var/spack/repos/builtin/packages/apcomp/package.py
index 3e66038030..218f825bd9 100644
--- a/var/spack/repos/builtin/packages/apcomp/package.py
+++ b/var/spack/repos/builtin/packages/apcomp/package.py
@@ -1,14 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
def cmake_cache_entry(name, value, vtype=None):
"""
@@ -33,6 +35,8 @@ class Apcomp(Package):
maintainers = ['mclarsen', 'cyrush']
version('master', branch='master', submodules='True')
+ version('0.0.3', sha256="07e8c1d6a23205f4cc66d0a030e65a69e8344545f4d56213d968b67a410adc6e")
+ version('0.0.2', sha256="cb2e2c4524889408de2dd3d29665512c99763db13e6f5e35c3b55e52948c649c")
version('0.0.1', sha256="cbf85fe58d5d5bc2f468d081386cc8b79861046b3bb7e966edfa3f8e95b998b2")
variant('openmp', default=True, description='Build with openmp support')
diff --git a/var/spack/repos/builtin/packages/ape/package.py b/var/spack/repos/builtin/packages/ape/package.py
index 343b1a1185..f2a08a18e4 100644
--- a/var/spack/repos/builtin/packages/ape/package.py
+++ b/var/spack/repos/builtin/packages/ape/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Ape(Package):
"""A tool for generating atomic pseudopotentials within a Density-Functional
Theory framework"""
- homepage = "http://www.tddft.org/programs/APE/"
+ homepage = "https://www.tddft.org/programs/APE/"
url = "http://www.tddft.org/programs/APE/sites/default/files/ape-2.2.1.tar.gz"
version('2.2.1', sha256='1bdb7f987fde81f8a5f335da6b59fa884e6d185d4a0995c90fde7c04376ce9e3')
diff --git a/var/spack/repos/builtin/packages/aperture-photometry/package.py b/var/spack/repos/builtin/packages/aperture-photometry/package.py
index db2532ed92..9a05171c44 100644
--- a/var/spack/repos/builtin/packages/aperture-photometry/package.py
+++ b/var/spack/repos/builtin/packages/aperture-photometry/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class AperturePhotometry(Package):
"""Aperture Photometry Tool APT is software for astronomical research"""
diff --git a/var/spack/repos/builtin/packages/apex/package.py b/var/spack/repos/builtin/packages/apex/package.py
index dfc9c55c50..19c06dce0e 100644
--- a/var/spack/repos/builtin/packages/apex/package.py
+++ b/var/spack/repos/builtin/packages/apex/package.py
@@ -1,33 +1,117 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import sys
+
from spack import *
class Apex(CMakePackage):
"""Autonomic Performance Environment for eXascale (APEX)."""
- homepage = "http://github.com/khuck/xpress-apex"
- url = "http://github.com/khuck/xpress-apex/archive/v0.1.tar.gz"
+ maintainers = ['khuck']
+ homepage = "https://uo-oaciss.github.io/apex"
+ url = "https://github.com/UO-OACISS/apex/archive/v2.3.1.tar.gz"
+ git = "https://github.com/UO-OACISS/apex"
+
+ version('develop', branch='develop')
+ version('master', branch='master')
+ version('2.4.1', sha256='055d09dd36c529ebd3bab4defbec4ad1d227c004a291faf26e77e4ab79ce470c')
+ version('2.4.0', sha256='15d8957da7b37d2c684a6f0f32aef65b0b26be6558da17963cf71f3fd3cfdf2f')
+ version('2.3.2', sha256='acf37c024a2283cafbf206f508929208b62c8f800af22ad7c74c570863a31bb4')
+ version('2.3.1', sha256='86bf6933f2c53531fcb24cda9fc7dc9919909bed54740d1e0bc3e7ce6ed78091')
+ version('2.3.0', sha256='7e1d16c9651b913c5e28abdbad75f25c55ba25e9fa35f5d979c1d3f9b9852c58')
+ version('2.2.0', sha256='cd5eddb1f6d26b7dbb4a8afeca2aa28036c7d0987e0af0400f4f96733889c75c')
+
+ # Disable some default dependencies on Darwin/OSX
+ darwin_default = False
+ if sys.platform != 'darwin':
+ darwin_default = True
+
+ # Enable by default
+ variant('activeharmony', default=True, description='Enables Active Harmony support')
+ variant('plugins', default=True, description='Enables Policy Plugin support')
+ variant('binutils', default=True, description='Enables Binutils support')
+ variant('otf2', default=True, description='Enables OTF2 support')
+ variant('gperftools', default=True, description='Enables Google PerfTools TCMalloc support')
+ variant('openmp', default=darwin_default, description='Enables OpenMP support')
+ variant('papi', default=darwin_default, description='Enables PAPI support')
- version('0.1', sha256='efd10f38a61ebdb9f8adee9dc84acaee22d065b2e6eea1888872a7bfca0f4495')
+ # Disable by default
+ variant('cuda', default=False, description='Enables CUDA support')
+ variant('boost', default=False, description='Enables Boost support')
+ variant('jemalloc', default=False, description='Enables JEMalloc support')
+ variant('lmsensors', default=False, description='Enables LM-Sensors support')
+ variant('mpi', default=False, description='Enables MPI support')
+ variant('tests', default=False, description='Build Unit Tests')
+ variant('examples', default=False, description='Build Examples')
- depends_on("binutils+libiberty@:2.33.1")
- depends_on("boost@1.54:")
- depends_on('cmake@2.8.12:', type='build')
- depends_on("activeharmony@4.5:")
- depends_on("ompt-openmp")
+ # Dependencies
+ depends_on('cmake@3.10.0:', type='build')
+ depends_on('binutils@2.33:+libiberty+headers', when='+binutils')
+ depends_on('activeharmony@4.6:', when='+activeharmony')
+ depends_on('activeharmony@4.6:', when='+plugins')
+ depends_on('otf2@2.1:', when='+otf2')
+ depends_on('mpi', when='+mpi')
+ depends_on('gperftools', when='+gperftools')
+ depends_on('jemalloc', when='+jemalloc')
+ depends_on('papi@5.7.0:', when='+papi')
+ depends_on('cuda', when='+cuda')
+ depends_on('boost@1.54:', when='+boost')
+
+ # Conflicts
+ conflicts('+jemalloc', when='+gperftools')
+ conflicts('+plugins', when='~activeharmony')
def cmake_args(self):
+ args = []
spec = self.spec
- return [
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DUSE_BFD=TRUE',
- '-DBFD_ROOT=%s' % spec['binutils'].prefix,
- '-DUSE_ACTIVEHARMONY=TRUE',
- '-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
- '-DUSE_OMPT=TRUE',
- '-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
- ]
+ # CMake variables were updated in version 2.3.0, to make
+ prefix = 'APEX_WITH'
+ test_prefix = 'APEX_'
+ if '@2.2.0' in spec:
+ prefix = 'USE'
+ test_prefix = ''
+
+ args.append(self.define_from_variant(prefix + '_ACTIVEHARMONY',
+ 'activeharmony'))
+ args.append(self.define_from_variant(prefix + '_BFD', 'binutils'))
+ args.append(self.define_from_variant('APEX_WITH_CUDA', 'cuda'))
+ args.append(self.define_from_variant(prefix + '_MPI', 'mpi'))
+ args.append(self.define_from_variant(prefix + '_OMPT', 'openmp'))
+ args.append(self.define_from_variant(prefix + '_OTF2', 'otf2'))
+ args.append(self.define_from_variant(prefix + '_PAPI', 'papi'))
+ args.append(self.define_from_variant(prefix + '_PLUGINS', 'plugins'))
+ args.append(self.define_from_variant(prefix + '_LM_SENSORS', 'lmsensors'))
+ args.append(self.define_from_variant(prefix + '_TCMALLOC', 'gperftools'))
+ args.append(self.define_from_variant(prefix + '_JEMALLOC', 'jemalloc'))
+ args.append(self.define_from_variant(test_prefix + 'BUILD_TESTS', 'tests'))
+ args.append(self.define_from_variant(test_prefix + 'BUILD_EXAMPLES',
+ 'examples'))
+
+ if '+activeharmony' in spec:
+ args.append('-DACTIVEHARMONY_ROOT={0}'.format(
+ spec['activeharmony'].prefix))
+
+ if '+binutils' in spec:
+ args.append('-DBFD_ROOT={0}'.format(spec['binutils'].prefix))
+
+ if '+otf2' in spec:
+ args.append('-DOTF2_ROOT={0}'.format(spec['otf2'].prefix))
+
+ if '+papi' in spec:
+ args.append('-DPAPI_ROOT={0}'.format(spec['papi'].prefix))
+
+ if '+gperftools' in spec:
+ args.append('-DGPERFTOOLS_ROOT={0}'.format(
+ spec['gperftools'].prefix))
+
+ if '+jemalloc' in spec:
+ args.append('-DJEMALLOC_ROOT={0}'.format(spec['jemalloc'].prefix))
+
+ if '+boost' in spec:
+ args.append('-DBOOST_ROOT={0}'.format(spec['boost'].prefix))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/apfel/package.py b/var/spack/repos/builtin/packages/apfel/package.py
new file mode 100644
index 0000000000..4a224f6998
--- /dev/null
+++ b/var/spack/repos/builtin/packages/apfel/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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 Apfel(AutotoolsPackage):
+ """APFEL is a library able to perform DGLAP evolution up to NNLO in QCD and
+ to NLO in QED, both with pole and MSbar masses. The coupled DGLAP
+ QCD+QED evolution equations are solved in x-space by means of higher
+ order interpolations and Runge-Kutta techniques."""
+
+ homepage = "https://github.com/scarrazza/apfel"
+ url = "https://github.com/scarrazza/apfel/archive/3.0.4.tar.gz"
+
+ tags = ['hep']
+
+ version('3.0.4', sha256='c7bfae7fe2dc0185981850f2fe6ae4842749339d064c25bf525b4ef412bbb224')
+
+ depends_on('swig', when='+python')
+ depends_on('python', when='+python', type=('build', 'run'))
+ depends_on('lhapdf', when='+lhapdf', type=('build', 'run'))
+
+ variant('python', description='Build python wrapper', default=False)
+ variant('lhapdf', description='Link to LHAPDF', default=False)
+
+ def configure_args(self):
+ args = []
+ if self.spec.satisfies('~python'):
+ args.append('--disable-pywrap')
+ else:
+ args.append('--enable-pywrap')
+
+ args += self.enable_or_disable('lhapdf')
+ return args
diff --git a/var/spack/repos/builtin/packages/apple-libunwind/package.py b/var/spack/repos/builtin/packages/apple-libunwind/package.py
index c966ee6c82..e339893c19 100644
--- a/var/spack/repos/builtin/packages/apple-libunwind/package.py
+++ b/var/spack/repos/builtin/packages/apple-libunwind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/apple-libuuid/package.py b/var/spack/repos/builtin/packages/apple-libuuid/package.py
new file mode 100644
index 0000000000..1ed7fe7b37
--- /dev/null
+++ b/var/spack/repos/builtin/packages/apple-libuuid/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2021 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 AppleLibuuid(BundlePackage):
+ """Placeholder package for Apple's analogue to non-GNU libuuid"""
+
+ homepage = "https://opensource.apple.com/tarballs/Libsystem/"
+
+ version('1353.100.2')
+
+ provides('uuid')
+
+ # Only supported on 'platform=darwin'
+ conflicts('platform=linux')
+ conflicts('platform=cray')
+
+ @property
+ def libs(self):
+ """Export the Apple libuuid library.
+
+ According to https://bugs.freedesktop.org/show_bug.cgi?id=105366,
+ libuuid is provided as part of libsystem_c. The Apple libsystem_c
+ library cannot be linked to directly using an absolute path; doing so
+ will cause the linker to throw an error 'cannot link directly with
+ /usr/lib/system/libsystem_c.dylib' and the linker will suggest linking
+ with System.framework instead. Linking to this framework is equivalent
+ to linking with libSystem.dylib, which can be confirmed on a macOS
+ system by executing at a terminal the command `ls -l
+ /System/Library/Frameworks/System.Framework` -- the file "System" is a
+ symlink to `/usr/lib/libSystem.B.dylib`, and `/usr/lib/libSystem.dylib`
+ also symlinks to this file. Running `otool -L /usr/lib/libSystem.dylib`
+ confirms that it will link dynamically to
+ `/usr/lib/system/libsystem_c.dylib`."""
+
+ return LibraryList('/usr/lib/libSystem.dylib')
+
+ @property
+ def headers(self):
+ """Export the Apple libuuid header."""
+ return HeaderList(self.prefix.include.uuid.join('uuid.h'))
diff --git a/var/spack/repos/builtin/packages/applewmproto/package.py b/var/spack/repos/builtin/packages/applewmproto/package.py
index ea1bbe19e2..cb831f4899 100644
--- a/var/spack/repos/builtin/packages/applewmproto/package.py
+++ b/var/spack/repos/builtin/packages/applewmproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Applewmproto(AutotoolsPackage, XorgPackage):
to better interact with the Mac OS X Aqua user interface when
running X11 in a rootless mode."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/applewmproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/applewmproto"
xorg_mirror_path = "proto/applewmproto-1.4.2.tar.gz"
version('1.4.2', sha256='ff8ac07d263a23357af2d6ff0cca3c1d56b043ddf7797a5a92ec624f4704df2e')
diff --git a/var/spack/repos/builtin/packages/appres/package.py b/var/spack/repos/builtin/packages/appres/package.py
index ddf6ebfe9b..1fae760311 100644
--- a/var/spack/repos/builtin/packages/appres/package.py
+++ b/var/spack/repos/builtin/packages/appres/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Appres(AutotoolsPackage, XorgPackage):
names. It can be used to determine which resources a particular
program will load."""
- homepage = "http://cgit.freedesktop.org/xorg/app/appres"
+ homepage = "https://cgit.freedesktop.org/xorg/app/appres"
xorg_mirror_path = "app/appres-1.0.4.tar.gz"
version('1.0.4', sha256='22cb6f639c891ffdbb5371bc50a88278185789eae6907d05e9e0bd1086a80803')
@@ -20,6 +20,6 @@ class Appres(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxt')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/apr-util/package.py b/var/spack/repos/builtin/packages/apr-util/package.py
index 0bb2fecfa6..a08f110a7c 100644
--- a/var/spack/repos/builtin/packages/apr-util/package.py
+++ b/var/spack/repos/builtin/packages/apr-util/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -32,6 +32,14 @@ class AprUtil(AutotoolsPackage):
depends_on('sqlite', when='+sqlite')
depends_on('unixodbc', when='+odbc')
+ @property
+ def libs(self):
+ return find_libraries(
+ ['libaprutil-{0}'.format(self.version.up_to(1))],
+ root=self.prefix,
+ recursive=True,
+ )
+
def configure_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/apr/package.py b/var/spack/repos/builtin/packages/apr/package.py
index f4938a1d35..cf2417d51e 100644
--- a/var/spack/repos/builtin/packages/apr/package.py
+++ b/var/spack/repos/builtin/packages/apr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,3 +17,13 @@ class Apr(AutotoolsPackage):
version('1.5.2', sha256='1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb')
patch('missing_includes.patch', when='@1.7.0')
+
+ depends_on('uuid', type='link')
+
+ @property
+ def libs(self):
+ return find_libraries(
+ ['libapr-{0}'.format(self.version.up_to(1))],
+ root=self.prefix,
+ recursive=True,
+ )
diff --git a/var/spack/repos/builtin/packages/aragorn/package.py b/var/spack/repos/builtin/packages/aragorn/package.py
index 17927f7223..4caf12c694 100644
--- a/var/spack/repos/builtin/packages/aragorn/package.py
+++ b/var/spack/repos/builtin/packages/aragorn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/arbor/package.py b/var/spack/repos/builtin/packages/arbor/package.py
index e48ba70d8e..94b9e78cfa 100644
--- a/var/spack/repos/builtin/packages/arbor/package.py
+++ b/var/spack/repos/builtin/packages/arbor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,68 +6,76 @@
from spack import *
-class Arbor(CMakePackage):
+class Arbor(CMakePackage, CudaPackage):
"""Arbor is a high-performance library for computational neuroscience
simulations."""
- homepage = "https://github.com/arbor-sim/arbor/"
- url = "https://github.com/arbor-sim/arbor/archive/v0.2.tar.gz"
+ homepage = 'https://arbor-sim.org'
+ git = 'https://github.com/arbor-sim/arbor.git'
+ url = 'https://github.com/arbor-sim/arbor/releases/download/v0.5.2/arbor-v0.5.2-full.tar.gz'
+ maintainers = ['bcumming', 'brenthuisman', 'haampie', 'halfflat']
- version('0.4', sha256='7d9fc6b3262954cc5dc1751215fbb9f2cdb7010e829a2be43022f90da2d8d2e3')
- version('0.2', sha256='43c9181c03be5f3c9820b2b50592d7b41344f37e1200980119ad347eb7bcf4eb')
+ version('master', branch='master', submodules=True)
+ version('0.5.2', sha256='290e2ad8ca8050db1791cabb6b431e7c0409c305af31b559e397e26b300a115d', url='https://github.com/arbor-sim/arbor/releases/download/v0.5.2/arbor-v0.5.2-full.tar.gz')
+ version('0.5', sha256='d0c8a4c7f97565d7c30493c66249be794d1dc424de266fc79cecbbf0e313df59', url='https://github.com/arbor-sim/arbor/releases/download/v0.5/arbor-v0.5-full.tar.gz')
- variant('vectorize', default=False,
- description='Enable vectorization of computational kernels')
- variant('gpu', default=False, description='Enable GPU support')
+ variant('assertions', default=False, description='Enable arb_assert() assertions in code.')
+ variant('doc', default=False, description='Build documentation.')
variant('mpi', default=False, description='Enable MPI support')
- variant('python', default=False,
- description='Enable Python frontend support')
- variant('unwind', default=False,
- description='Enable libunwind for pretty stack traces')
+ variant('neuroml', default=True, description='Build NeuroML support library.')
+ variant('python', default=True, description='Enable Python frontend support')
+ variant('vectorize', default=False, description='Enable vectorization of computational kernels')
- depends_on('cuda', when='+gpu')
- depends_on('mpi', when='+mpi')
- depends_on('libunwind', when='+unwind')
+ # https://docs.arbor-sim.org/en/latest/install/build_install.html?highlight=requirements#compilers
+ conflicts('%gcc@:8.3')
+ conflicts('%clang@:7')
+ # Cray compiler v9.2 and later is Clang-based.
+ conflicts('%cce@:9.1')
+ conflicts('%intel')
+
+ depends_on('cmake@3.12:', type='build')
- extends('python@3.6:', when='+python')
+ # misc dependencies
+ depends_on('nlohmann-json')
+ depends_on('cuda@10:', when='+cuda')
+ depends_on('libxml2', when='+neuroml')
+
+ # mpi
+ depends_on('mpi', when='+mpi')
depends_on('py-mpi4py', when='+mpi+python', type=('build', 'run'))
- depends_on('cmake@3.9:', type='build')
- # mentioned in documentation but shouldn't be necessary when
- # using the archive
- # depends_on('git@2.0:', type='build')
-
- # compiler dependencies
- # depends_on(C++14)
- # depends_on('gcc@6.1.0:', type='build')
- # depends_on('llvm@4:', type='build')
- # depends_on('clang-apple@9:', type='build')
-
- # when building documentation, this could be an optional dependency
- depends_on('py-sphinx', type='build')
-
- conflicts('@:0.2', when='target=aarch64:')
-
- def patch(self):
- filter_file(
- r'find_library\(_unwind_library_target unwind-\${libunwind_arch}',
- r'find_library(_unwind_library_target unwind-${_libunwind_arch}',
- 'cmake/FindUnwind.cmake'
- )
- filter_file(
- r'target_compile_definitions\(arbor-private-deps ARB_WITH_UNWIND\)', # noqa: E501
- r'target_compile_definitions(arbor-private-deps INTERFACE WITH_UNWIND)', # noqa: E501
- 'CMakeLists.txt'
- )
+ # python (bindings)
+ extends('python', when='+python')
+ depends_on('python@3.6:', when="+python", type=('build', 'run'))
+ depends_on('py-numpy', when='+python', type=('build', 'run'))
+ depends_on('py-pybind11@2.6:', when='+python', type=('build', 'run'))
+
+ # sphinx based documentation
+ depends_on('python@3.6:', when="+doc", type='build')
+ depends_on('py-sphinx', when="+doc", type='build')
+ depends_on('py-svgwrite', when='+doc', type='build')
+
+ @property
+ def build_targets(self):
+ return ['all', 'html'] if '+doc' in self.spec else ['all']
def cmake_args(self):
args = [
- '-DARB_VECTORIZE=' + ('ON' if '+vectorize' in self.spec else 'OFF'), # noqa: E501
- '-DARB_WITH_GPU=' + ('ON' if '+gpu' in self.spec else 'OFF'),
- '-DARB_WITH_PYTHON=' + ('ON' if '+python' in self.spec else 'OFF'),
+ self.define_from_variant('ARB_WITH_ASSERTIONS', 'assertions'),
+ self.define_from_variant('ARB_WITH_MPI', 'mpi'),
+ self.define_from_variant('ARB_WITH_NEUROML', 'neuroml'),
+ self.define_from_variant('ARB_WITH_PYTHON', 'python'),
+ self.define_from_variant('ARB_VECTORIZE', 'vectorize'),
]
- if '+unwind' in self.spec:
- args.append('-DUnwind_ROOT_DIR={0}'.format(self.spec['libunwind'].prefix)) # noqa: E501
+ if '+cuda' in self.spec:
+ args.append('-DARB_GPU=cuda')
+
+ # query spack for the architecture-specific compiler flags set by its wrapper
+ args.append('-DARB_ARCH=none')
+ opt_flags = self.spec.target.optimization_flags(
+ self.spec.compiler.name,
+ self.spec.compiler.version)
+ args.append('-DARB_CXX_FLAGS_TARGET=' + opt_flags)
return args
diff --git a/var/spack/repos/builtin/packages/arborx/package.py b/var/spack/repos/builtin/packages/arborx/package.py
index 7044aec257..a0c3c4c31c 100644
--- a/var/spack/repos/builtin/packages/arborx/package.py
+++ b/var/spack/repos/builtin/packages/arborx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,8 @@ class Arborx(CMakePackage):
maintainers = ['aprokop']
- version('master', branch='master')
+ version('master', branch='master')
+ version('1.0', sha256='9b5f45c8180622c907ef0b7cc27cb18ba272ac6558725d9e460c3f3e764f1075')
version('0.9-beta', sha256='b349b5708d1aa00e8c20c209ac75dc2d164ff9bf1b85adb5437346d194ba6c0d')
# ArborX relies on Kokkos to provide devices, providing one-to-one matching
@@ -25,7 +26,8 @@ class Arborx(CMakePackage):
'serial': (True, "enable Serial backend (default)"),
'cuda': (False, "enable Cuda backend"),
'openmp': (False, "enable OpenMP backend"),
- 'hip': (False, "enable HIP backend")
+ 'rocm': (False, "enable HIP backend"),
+ 'sycl': (False, "enable SYCL backend")
}
variant('mpi', default=True, description='enable MPI')
@@ -46,10 +48,9 @@ class Arborx(CMakePackage):
# Trilinos/Kokkos
# Notes:
- # - there is no Trilinos release with Kokkos 3.1 yet
# - current version of Trilinos package does not allow disabling Serial
# - current version of Trilinos package does not allow enabling CUDA
- depends_on('trilinos+kokkos@develop', when='+trilinos')
+ depends_on('trilinos+kokkos', when='+trilinos')
depends_on('trilinos+openmp', when='+trilinos+openmp')
conflicts('~serial', when='+trilinos')
conflicts('+cuda', when='+trilinos')
@@ -60,7 +61,7 @@ class Arborx(CMakePackage):
options = [
'-DKokkos_ROOT=%s' % (spec['kokkos'].prefix if '~trilinos' in spec
else spec['trilinos'].prefix),
- '-DARBORX_ENABLE_MPI=%s' % ('ON' if '+mpi' in spec else 'OFF')
+ self.define_from_variant('ARBORX_ENABLE_MPI', 'mpi')
]
if '+cuda' in spec:
@@ -69,3 +70,50 @@ class Arborx(CMakePackage):
'-DCMAKE_CXX_COMPILER=%s' % spec["kokkos"].kokkos_cxx)
return options
+
+ examples_src_dir = "examples"
+
+ @run_after('install')
+ def setup_build_tests(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.examples_src_dir])
+
+ @property
+ def cached_tests_work_dir(self):
+ """The working directory for cached test sources."""
+ return join_path(self.test_suite.current_test_cache_dir,
+ self.examples_src_dir)
+
+ def build_tests(self):
+ """Build the stand-alone/smoke test."""
+
+ # We don't need to append the path to Kokkos to CMAKE_PREFIX_PATH since
+ # a hint is already hardcoded inside the CMake ArborX configuration.
+ # Omitting it here allows us to avoid to distinguish between Kokkos
+ # being installed as a standalone or as part of Trilinos.
+ arborx_dir = self.spec['arborx'].prefix
+ cmake_prefix_path = "-DCMAKE_PREFIX_PATH={0}".format(arborx_dir)
+ if '+mpi' in self.spec:
+ cmake_prefix_path += ";{0}".format(self.spec['mpi'].prefix)
+
+ cmake_args = [".",
+ cmake_prefix_path,
+ "-DCMAKE_CXX_COMPILER={0}".format(self.compiler.cxx)]
+
+ self.run_test("cmake", cmake_args,
+ purpose="test: calling cmake",
+ work_dir=self.cached_tests_work_dir)
+
+ self.run_test("make", [],
+ purpose="test: building the tests",
+ work_dir=self.cached_tests_work_dir)
+
+ def test(self):
+ """Perform stand-alone/smoke tests on the installed package."""
+ self.build_tests()
+
+ self.run_test("ctest", ["-V"],
+ purpose="test: running the tests",
+ installed=False,
+ work_dir=self.cached_tests_work_dir)
diff --git a/var/spack/repos/builtin/packages/archer/package.py b/var/spack/repos/builtin/packages/archer/package.py
index 95c3cc1bf8..a04f74d098 100644
--- a/var/spack/repos/builtin/packages/archer/package.py
+++ b/var/spack/repos/builtin/packages/archer/package.py
@@ -1,9 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -13,6 +15,8 @@ class Archer(CMakePackage):
homepage = "https://github.com/PRUNERS/ARCHER"
url = "https://github.com/PRUNERS/archer/archive/v1.0.0.tar.gz"
+ test_requires_compiler = True
+
version('2.0.0', sha256='3241cadb0078403368b69166b27f815e12c350486d4ceb3fb33147895b9ebde8')
version('1.0.0', sha256='df814a475606b83c659932caa30a68bed1c62e713386b375c1b78eb8d60e0d15')
@@ -35,3 +39,33 @@ class Archer(CMakePackage):
'-DCMAKE_CXX_COMPILER=clang++',
'-DOMP_PREFIX:PATH=%s' % self.spec['llvm-openmp-ompt'].prefix,
]
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources(['test'])
+
+ def run_parallel_example_test(self):
+ """Run stand alone test: parallel-simple"""
+
+ test_dir = join_path(self.test_suite.current_test_cache_dir, 'test', 'parallel')
+
+ if not os.path.exists(test_dir):
+ print('Skipping archer test')
+ return
+
+ exe = 'parallel-simple'
+
+ self.run_test('clang-archer',
+ options=['-o', exe,
+ '{0}'.format(join_path(test_dir, 'parallel-simple.c'))],
+ purpose='test: compile {0} example'.format(exe),
+ work_dir=test_dir)
+
+ self.run_test(exe,
+ purpose='test: run {0} example'.format(exe),
+ work_dir=test_dir)
+
+ def test(self):
+ self.run_parallel_example_test()
diff --git a/var/spack/repos/builtin/packages/argobots/package.py b/var/spack/repos/builtin/packages/argobots/package.py
index 2dc8212eb7..3683431eec 100644
--- a/var/spack/repos/builtin/packages/argobots/package.py
+++ b/var/spack/repos/builtin/packages/argobots/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,25 +15,37 @@ class Argobots(AutotoolsPackage):
mapping, and data placement strategies. It consists of an
execution model and a memory model."""
- homepage = "http://www.argobots.org/"
+ homepage = "https://www.argobots.org/"
url = "https://github.com/pmodels/argobots/releases/download/v1.0b1/argobots-1.0b1.tar.gz"
git = "https://github.com/pmodels/argobots.git"
maintainers = ['shintaro-iwasaki']
version("main", branch="main")
+ version("1.1", sha256="f0f971196fc8354881681c2282a2f2adb6d48ff5e84cf820ca657daad1549005")
+ version("1.0.1", sha256="fa05a02d7f8f74d845647636609219ee02f6adf628ebcbf40393f829987d9036")
version("1.0", sha256="36a0815f7bf99900a9c9c1eef61ef9b3b76aa2cfc4594a304f6c8c3296da8def")
+ variant("perf", default=True, description="Add performance optimization flags")
variant("valgrind", default=False, description="Enable Valgrind")
variant("debug", default=False, description="Compiled with debugging symbols")
+ variant("stackunwind", default=False, description="Enable function stack unwinding")
+ variant("stackguard", default="none", description="Enable stack guard",
+ values=('none', 'canary-32', 'mprotect', 'mprotect-strict'), multi=False)
+ variant("tool", default=False, description="Enable ABT_tool interface")
+ variant("affinity", default=False, description="Enable affinity setting")
depends_on("m4", type=("build"), when="@main")
depends_on("autoconf", type=("build"), when="@main")
depends_on("automake", type=("build"), when="@main")
depends_on("libtool", type=("build"), when="@main")
depends_on("valgrind", when="+valgrind")
+ depends_on("libunwind", when="+stackunwind")
def configure_args(self):
- args = ["--enable-perf-opt"]
+ args = []
+ if '+perf' in self.spec:
+ args.append('--enable-perf-opt')
+
if '+valgrind' in self.spec:
args.append('--enable-valgrind')
else:
@@ -44,4 +56,18 @@ class Argobots(AutotoolsPackage):
else:
args.append('--disable-debug')
+ if '+stackunwind' in self.spec:
+ args.append('--enable-stack-unwind')
+ args.append('--with-libunwind={0}'.format(self.spec['libunwind'].prefix))
+
+ stackguard = self.spec.variants['stackguard'].value
+ if stackguard != 'none':
+ args.append('--enable-stack-overflow-check={0}'.format(stackguard))
+
+ if '+tool' in self.spec:
+ args.append('--enable-tool')
+
+ if '+affinity' in self.spec:
+ args.append('--enable-affinity')
+
return args
diff --git a/var/spack/repos/builtin/packages/argon2/package.py b/var/spack/repos/builtin/packages/argon2/package.py
index 6d5e1abf04..5734fb79ba 100644
--- a/var/spack/repos/builtin/packages/argon2/package.py
+++ b/var/spack/repos/builtin/packages/argon2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,4 +20,4 @@ class Argon2(MakefilePackage):
version('20161029', sha256='fe0049728b946b58b94cc6db89b34e2d050c62325d16316a534d2bedd78cd5e7')
def install(self, spec, prefix):
- make('PREFIX={0}'.format(prefix), 'install')
+ make('PREFIX={0}'.format(prefix), 'install', 'LIBRARY_REL=lib')
diff --git a/var/spack/repos/builtin/packages/argp-standalone/package.py b/var/spack/repos/builtin/packages/argp-standalone/package.py
index 380bd4787b..752ad2f652 100644
--- a/var/spack/repos/builtin/packages/argp-standalone/package.py
+++ b/var/spack/repos/builtin/packages/argp-standalone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/args/package.py b/var/spack/repos/builtin/packages/args/package.py
new file mode 100644
index 0000000000..c6c3727b8c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/args/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 Args(CMakePackage):
+ """A simple header-only C++ argument parser library. Supposed to be
+ flexible and powerful, and attempts to be compatible with the
+ functionality of the Python standard argparse library (though not
+ necessarily the API)."""
+
+ homepage = "https://taywee.github.io/args"
+ url = "https://github.com/Taywee/args/archive/6.2.3.tar.gz"
+
+ version('6.2.3', sha256='c202d15fc4b30519a08bae7df9e6f4fdc40ac2434ba65d83a108ebbf6e4822c2')
+ version('6.2.2', sha256='8016fb0fc079d746433be3df9cf662e3e931e730aaf9f69f2287eac79ac643c1')
+ version('6.2.1', sha256='699b91fae4509b09974274838e2038612da24eeae89e62d0bc580457a9e261b0')
diff --git a/var/spack/repos/builtin/packages/argtable/package.py b/var/spack/repos/builtin/packages/argtable/package.py
index fa39ee062b..7114315647 100644
--- a/var/spack/repos/builtin/packages/argtable/package.py
+++ b/var/spack/repos/builtin/packages/argtable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aria2/package.py b/var/spack/repos/builtin/packages/aria2/package.py
index 321360cef6..07933c3444 100644
--- a/var/spack/repos/builtin/packages/aria2/package.py
+++ b/var/spack/repos/builtin/packages/aria2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/arm-forge/package.py b/var/spack/repos/builtin/packages/arm-forge/package.py
index 551d910a82..d646658dbe 100644
--- a/var/spack/repos/builtin/packages/arm-forge/package.py
+++ b/var/spack/repos/builtin/packages/arm-forge/package.py
@@ -1,10 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import platform
+import subprocess
+
from spack import *
-import os
class ArmForge(Package):
@@ -13,116 +15,26 @@ class ArmForge(Package):
Fortran applications on Linux for high performance - from single threads
through to complex parallel HPC codes with MPI, OpenMP, threads or CUDA."""
- homepage = "http://www.allinea.com/products/develop-allinea-forge"
+ homepage = "https://www.arm.com/products/development-tools/server-and-hpc/forge"
+ maintainers = ["NickRF"]
# TODO: this mess should be fixed as soon as a way to parametrize/constrain
# versions (and checksums) based on the target platform shows up
- version(
- "19.0.4-Redhat-6.0-x86_64",
- sha256="0b0b6ed5c3d6833bad46d5ea84346cd46f0e4b3020c31f2fd4318b75ddaf01aa",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Redhat-6.0-x86_64.tar",
- )
- version(
- "19.0.4-Redhat-7.0-x86_64",
- sha256="de3c669f7cb4daf274aae603294c416a953fb558e101eb03bcccf0ef4291e079",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Redhat-7.0-x86_64.tar",
- )
- version(
- "19.0.4-Suse-11-x86_64",
- sha256="24a2c7761c2163f128e4f4b60e963c53774196809ddfa880131c5dde5eb454c2",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Suse-11-x86_64.tar",
- )
- version(
- "19.0.4-Suse-12-x86_64",
- sha256="6688192291fe9696922a34371d07ea66f89bff9b976fd99796e5f9a6651f86e6",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Suse-12-x86_64.tar",
- )
- version(
- "19.0.4-Suse-15-x86_64",
- sha256="dea60d93a157ab6952fd6887f40123ab9d633d5589ffe7824d53fb269294cf35",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Suse-15-x86_64.tar",
- )
- version(
- "19.0.4-19.0.4-Ubuntu-16.04-x86_64",
- sha256="240741beff96f6a0b3976bc98d90863fe475366d5c093af9b96b877a230d479c",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Ubuntu-16.04-x86_64.tar",
- )
- version(
- "19.0.4-Ubuntu-14.04-x86_64",
- sha256="135903906111b61045ddd3e98f1d8e8fd02b5b6ef554a68dfbe6760c76ec65a2",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Ubuntu-14.04-x86_64.tar",
- )
- version(
- "19.0.4-Redhat-7.2-ppc64le",
- sha256="73cb9f4005278e8dd2106a871dcbb53edb8855faeeda75c7abd7936f85fcce56",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Redhat-7.2-ppc64le.tar",
- )
- version(
- "19.0.4-Redhat-7.4-aarch64",
- sha256="8d168e5665a158f65b72d7b996fd283f7f538efbff15648eff44cfb7371ecad7",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Redhat-7.4-aarch64.tar",
- )
- version(
- "19.0.4-Suse-12-aarch64",
- sha256="de3aa62c5b5d5181a7947dcd1dfa66df5d06fd482394044100147210c8182d75",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Suse-12-aarch64.tar",
- )
- version(
- "19.0.4-Ubuntu-16.04-aarch64",
- sha256="3910e320c635dd5c09af7f5696909c7c0ae25406910d2e592e522ed0233e0451",
- url="http://content.allinea.com/downloads/arm-forge-19.0.4-Ubuntu-16.04-aarch64.tar",
- )
- version(
- "19.0.3-Redhat-6.0-x86_64",
- sha256="0ace88a1847d8f622f077cd38fa9dddf7f2d6dd6aad086be0e0a66e10fb8b64b",
- url="http://content.allinea.com/downloads/arm-forge-19.0.3-Redhat-6.0-x86_64.tar",
- )
- version(
- "19.0.3-Redhat-7.0-x86_64",
- sha256="35c7a9532aa19251343c37b8f5eb51ef04f7b6e8b42bea2bd932f4d83a1e8375",
- url="http://content.allinea.com/downloads/arm-forge-19.0.3-Redhat-7.0-x86_64.tar",
- )
- version(
- "19.0.3-Suse-11-x86_64",
- sha256="48fe2b1b81a824909fedf5e02cd08d8a62033cce80440eca6efbea0ae8023e75",
- url="http://content.allinea.com/downloads/arm-forge-19.0.3-Suse-11-x86_64.tar",
- )
- version(
- "19.0.3-Suse-12-x86_64",
- sha256="b4d0f91780dc43544ea946f5117a50ba18750fd50ef811cae5b6b6771b4ebb77",
- url="http://content.allinea.com/downloads/arm-forge-19.0.3-Suse-12-x86_64.tar",
- )
- version(
- "19.0.3-Ubuntu-16.04-x86_64",
- sha256="ed6726434a6d24d413ed6183756433d63438936dc671cb6a3567b407c8e233e1",
- url="http://content.allinea.com/downloads/arm-forge-19.0.3-Ubuntu-16.04-x86_64.tar",
- )
- version(
- "19.0.3-Ubuntu-14.04-x86_64",
- sha256="22350d068c4ef60d1aad330636d443f00269c0cc49bed4c05b80f93b9d9a9c66",
- url="http://content.allinea.com/downloads/arm-forge-19.0.3-Ubuntu-14.04-x86_64.tar",
- )
- version(
- "19.0.3-Redhat-7.2-ppc64le",
- sha256="dc6ea53eead78f0d9ffd8fa74ffddb80e8bd3b4ab8a1edd6f8505ffbea9cea15",
- url="http://content.allinea.com/downloads/arm-forge-19.0.3-Redhat-7.2-ppc64le.tar",
- )
- version(
- "19.0.3-Redhat-7.4-aarch64",
- sha256="4e19d4200e2936d542bf2b9dc79c7f8b00ccfb37b9191dfc90ac0787680a8b0c",
- url="http://content.allinea.com/downloads/arm-forge-19.0.3-Redhat-7.4-aarch64.tar",
- )
- version(
- "19.0.3-Suse-12-aarch64",
- sha256="9b27b678d0228b4e51fd517ef0acd1df65b780a3a0b226caa6b6f1b7dccf31e6",
- url="http://content.allinea.com/downloads/arm-forge-19.0.3-Suse-12-aarch64.tar",
- )
- version(
- "19.0.3-Ubuntu-16.04-aarch64",
- sha256="4470f7067d4a4e0369df8af28b6ca95f58fa0062bf8dffc49f0b7415112c0332",
- url="http://content.allinea.com/downloads/arm-forge-19.0.3-Ubuntu-16.04-aarch64.tar",
- )
+ if platform.machine() == "aarch64":
+ version("21.0.2", sha256="ca547d11086ddd2704468166ad01f34132fcfa8d416239ad85c87a6c5f042298")
+ version("21.0", sha256="2bcc745d0049d6b25c77c97b2d7bad7b4f804180972a2306a8599ce41f6a4573")
+ elif platform.machine() == "ppc64le":
+ version("21.0.2", sha256="302cadf6c6ddd6f41fafb0d490a92ae0919a7b24d6c212228311253cec2ff1b7")
+ version("21.0", sha256="60cfa7dd1cd131ec85e67cb660f2f84cf30bb700d8979cae1f5f88af658fd249")
+ elif platform.machine() == "x86_64":
+ version("21.0.2", sha256="741ff2a995c8cf7ce5d346a3f7d2a552ec602b995e477e9a5a3a6319d3907980")
+ version("21.0", sha256="71b713a05d431a3c26bd83cc4d0b65a0afd7d7f5bf57aa11edfb41da90f01774")
+
+ variant('probe', default=False, description='Detect available PMU counters via "forge-probe" during install')
+
+ # forge-probe executes with "/usr/bin/env python"
+ depends_on('python@2.7:2.9.9', type='build', when='+probe')
# Licensing
license_required = True
@@ -134,7 +46,19 @@ class ArmForge(Package):
"ALLINEA_LICENSE_FILE",
"ALLINEA_LICENCE_FILE",
]
- license_url = "http://www.allinea.com/user-guide/forge/Installation.html"
+ license_url = "https://developer.arm.com/tools-and-software/server-and-hpc/help/help-and-tutorials/system-administration/licensing/arm-licence-server"
+
+ def url_for_version(self, version):
+ return "http://content.allinea.com/downloads/arm-forge-%s-linux-%s.tar" % (version, platform.machine())
def install(self, spec, prefix):
- os.system("./textinstall.sh --accept-licence " + prefix)
+ subprocess.call(["./textinstall.sh", "--accept-licence", prefix])
+ if spec.satisfies('+probe'):
+ probe = join_path(prefix, "bin", "forge-probe")
+ subprocess.call([probe, "--install", "global"])
+
+ def setup_run_environment(self, env):
+ # Only PATH is needed for Forge.
+ # Adding lib to LD_LIBRARY_PATH can cause conflicts with Forge's internal libs.
+ env.clear()
+ env.prepend_path("PATH", join_path(self.prefix, "bin"))
diff --git a/var/spack/repos/builtin/packages/arm/package.py b/var/spack/repos/builtin/packages/arm/package.py
new file mode 100644
index 0000000000..9bbb1638c0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/arm/package.py
@@ -0,0 +1,87 @@
+# Copyright 2013-2021 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)
+import os.path
+import re
+
+import llnl.util.tty as tty
+
+import spack.compiler
+import spack.util.executable
+
+
+class Arm(Package):
+ """Arm Compiler combines the optimized tools and libraries from Arm
+ with a modern LLVM-based compiler framework.
+ """
+
+ homepage = "https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio"
+ url = "https://developer.arm.com/-/media/Files/downloads/hpc/arm-allinea-studio/20-2-1/Ubuntu16.04/arm-compiler-for-linux_20.2.1_Ubuntu-16.04_aarch64.tar"
+
+ # FIXME: The version is checksummed for Ubuntu 16.04, but this is not
+ # FIXME: important at the moment since the package is only meant to
+ # FIXME: provide detection
+ version('20.2.1', sha256='dc3f945b05b867809d9b507cb8ebba9cf72a6818d349207dbe1392c13dc0ad79')
+
+ def install(self, spec, prefix):
+ raise InstallError(
+ 'No install method available yet, only system detection.'
+ )
+
+ executables = [r'armclang', r'armclang\+\+', r'armflang']
+
+ @classmethod
+ def determine_version(cls, exe):
+ regex_str = r'Arm C\/C\+\+\/Fortran Compiler version ([\d\.]+) '\
+ r'\(build number (\d+)\) '
+ version_regex = re.compile(regex_str)
+ try:
+ output = spack.compiler.get_compiler_version_output(
+ exe, '--version'
+ )
+ match = version_regex.search(output)
+ if match:
+ if match.group(1).count('.') == 1:
+ return match.group(1) + ".0." + match.group(2)
+ return match.group(1) + "." + match.group(2)
+ except spack.util.executable.ProcessError:
+ pass
+ except Exception as e:
+ tty.debug(e)
+
+ @classmethod
+ def determine_variants(cls, exes, version_str):
+ compilers = {}
+ for exe in exes:
+ if 'armclang' in exe:
+ compilers['c'] = exe
+ if 'armclang++' in exe:
+ compilers['cxx'] = exe
+ if 'armflang' in exe:
+ compilers['fortran'] = exe
+ return '', {'compilers': compilers}
+
+ @property
+ def cc(self):
+ msg = "cannot retrieve C compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers'].get('c', None)
+ return str(self.spec.prefix.bin.armclang)
+
+ @property
+ def cxx(self):
+ msg = "cannot retrieve C++ compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers'].get('cxx', None)
+ return os.path.join(self.spec.prefix.bin, 'armclang++')
+
+ @property
+ def fortran(self):
+ msg = "cannot retrieve Fortran compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers'].get('fortran', None)
+ return str(self.spec.prefix.bin.armflang)
diff --git a/var/spack/repos/builtin/packages/armadillo/package.py b/var/spack/repos/builtin/packages/armadillo/package.py
index c4f5e94d15..af5e2d7044 100644
--- a/var/spack/repos/builtin/packages/armadillo/package.py
+++ b/var/spack/repos/builtin/packages/armadillo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Armadillo(CMakePackage):
homepage = "http://arma.sourceforge.net/"
url = "http://sourceforge.net/projects/arma/files/armadillo-8.100.1.tar.xz"
+ version('10.5.0', sha256='ea990c34dc6d70d7c95b4354d9f3b0819bde257dbb67796348e91e196082cb87')
version('9.800.3', sha256='a481e1dc880b7cb352f8a28b67fe005dc1117d4341277f12999a2355d40d7599')
version('8.100.1', sha256='54773f7d828bd3885c598f90122b530ded65d9b195c9034e082baea737cd138d')
version('7.950.1', sha256='a32da32a0ea420b8397a53e4b40ed279c1a5fc791dd492a2ced81ffb14ad0d1b')
@@ -33,6 +34,33 @@ class Armadillo(CMakePackage):
# platform's compiler is adding `#define linux 1`.
patch('undef_linux.patch', when='platform=linux')
+ def patch(self):
+ # Do not include Find{BLAS_type} because we are specifying the
+ # BLAS/LAPACK libraries explicitly.
+ filter_file(r'include(ARMA_FindMKL)',
+ '#include(ARMA_FindMKL)',
+ 'CMakeLists.txt',
+ string=True)
+ filter_file(r'include(ARMA_FindOpenBLAS)',
+ '#include(ARMA_FindOpenBLAS)',
+ 'CMakeLists.txt',
+ string=True)
+ filter_file(r'include(ARMA_FindATLAS)',
+ '#include(ARMA_FindATLAS)',
+ 'CMakeLists.txt',
+ string=True)
+
+ # Comment out deprecated call to GET_FILENAME_COMPONENT. This allows
+ # armadillo to be built with MKL.
+ with working_dir(join_path(self.stage.source_path,
+ 'cmake_aux', 'Modules')):
+ filter_file('GET_FILENAME_COMPONENT',
+ '#GET_FILENAME_COMPONENT',
+ 'ARMA_FindBLAS.cmake')
+ filter_file('GET_FILENAME_COMPONENT',
+ '#GET_FILENAME_COMPONENT',
+ 'ARMA_FindLAPACK.cmake')
+
def cmake_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/arpack-ng/package.py b/var/spack/repos/builtin/packages/arpack-ng/package.py
index 1698a0e4bd..971e9ca31f 100644
--- a/var/spack/repos/builtin/packages/arpack-ng/package.py
+++ b/var/spack/repos/builtin/packages/arpack-ng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -39,13 +39,14 @@ class ArpackNg(Package):
git = 'https://github.com/opencollab/arpack-ng.git'
version('develop', branch='master')
+ version('3.8.0', sha256='ada5aeb3878874383307239c9235b716a8a170c6d096a6625bfd529844df003d')
version('3.7.0', sha256='972e3fc3cd0b9d6b5a737c9bf6fd07515c0d6549319d4ffb06970e64fa3cc2d6')
version('3.6.3', sha256='64f3551e5a2f8497399d82af3076b6a33bf1bc95fc46bbcabe66442db366f453')
version('3.6.2', sha256='673c8202de996fd3127350725eb1818e534db4e79de56d5dcee8c00768db599a')
version('3.6.0', sha256='3c88e74cc10bba81dc2c72c4f5fff38a800beebaa0b4c64d321c28c9203b37ea')
version('3.5.0', sha256='50f7a3e3aec2e08e732a487919262238f8504c3ef927246ec3495617dde81239')
version('3.4.0', sha256='69e9fa08bacb2475e636da05a6c222b17c67f1ebeab3793762062248dd9d842f')
- version('3.3.0', sha256='ad59811e7d79d50b8ba19fd908f92a3683d883597b2c7759fdcc38f6311fe5b3')
+ version('3.3.0', sha256='ad59811e7d79d50b8ba19fd908f92a3683d883597b2c7759fdcc38f6311fe5b3', deprecated=True)
variant('shared', default=True,
description='Enables the build of shared libraries')
@@ -62,6 +63,11 @@ class ArpackNg(Package):
# Fujitsu compiler does not support 'isnan' function.
# isnan: function that determines whether it is NaN.
patch('incompatible_isnan_fix.patch', when='%fj')
+ patch('incompatible_isnan_fix.patch', when='@3.7.0%xl')
+ patch('incompatible_isnan_fix.patch', when='@3.7.0%xl_r')
+
+ patch('xlf.patch', when='@3.7.0%xl', level=0)
+ patch('xlf.patch', when='@3.7.0%xl_r', level=0)
depends_on('blas')
depends_on('lapack')
@@ -122,6 +128,9 @@ class ArpackNg(Package):
if '+shared' in spec:
options.append('-DBUILD_SHARED_LIBS=ON')
+ else:
+ options.append('-DBUILD_SHARED_LIBS=OFF')
+ options.append('-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true')
cmake('.', *options)
make()
diff --git a/var/spack/repos/builtin/packages/arpack-ng/xlf.patch b/var/spack/repos/builtin/packages/arpack-ng/xlf.patch
new file mode 100644
index 0000000000..1746ee591d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/arpack-ng/xlf.patch
@@ -0,0 +1,50 @@
+--- debug.h.orig 2019-01-12 07:24:12.000000000 -0800
++++ debug.h 2020-11-10 14:02:59.269942675 -0800
+@@ -5,12 +5,12 @@
+ ! %---------------------------------%
+ ! | See debug.doc for documentation |
+ ! %---------------------------------%
+- integer logfil, ndigit, mgetv0, &
+- msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd,&
+- mnaupd, mnaup2, mnaitr, mneigh, mnapps, mngets, mneupd,&
+- mcaupd, mcaup2, mcaitr, mceigh, mcapps, mcgets, mceupd
+- common /debug/ &
+- logfil, ndigit, mgetv0, &
+- msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd,&
+- mnaupd, mnaup2, mnaitr, mneigh, mnapps, mngets, mneupd,&
+- mcaupd, mcaup2, mcaitr, mceigh, mcapps, mcgets, mceupd
++ integer logfil, ndigit, mgetv0,
++ & msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd,
++ & mnaupd, mnaup2, mnaitr, mneigh, mnapps, mngets, mneupd,
++ & mcaupd, mcaup2, mcaitr, mceigh, mcapps, mcgets, mceupd
++ common /debug/
++ & logfil, ndigit, mgetv0,
++ & msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd,
++ & mnaupd, mnaup2, mnaitr, mneigh, mnapps, mngets, mneupd,
++ & mcaupd, mcaup2, mcaitr, mceigh, mcapps, mcgets, mceupd
+--- stat.h.orig 2019-01-12 07:24:12.000000000 -0800
++++ stat.h 2020-11-10 14:14:01.276289946 -0800
+@@ -9,13 +9,13 @@
+ save t0, t1, t2, t3, t4, t5
+ !
+ integer nopx, nbx, nrorth, nitref, nrstrt
+- real tsaupd, tsaup2, tsaitr, tseigt, tsgets, tsapps, tsconv,&
+- tnaupd, tnaup2, tnaitr, tneigh, tngets, tnapps, tnconv,&
+- tcaupd, tcaup2, tcaitr, tceigh, tcgets, tcapps, tcconv,&
+- tmvopx, tmvbx, tgetv0, titref, trvec
+- common /timing/ &
+- nopx, nbx, nrorth, nitref, nrstrt, &
+- tsaupd, tsaup2, tsaitr, tseigt, tsgets, tsapps, tsconv,&
+- tnaupd, tnaup2, tnaitr, tneigh, tngets, tnapps, tnconv,&
+- tcaupd, tcaup2, tcaitr, tceigh, tcgets, tcapps, tcconv,&
+- tmvopx, tmvbx, tgetv0, titref, trvec
++ real tsaupd, tsaup2, tsaitr, tseigt, tsgets, tsapps, tsconv,
++ & tnaupd, tnaup2, tnaitr, tneigh, tngets, tnapps, tnconv,
++ & tcaupd, tcaup2, tcaitr, tceigh, tcgets, tcapps, tcconv,
++ & tmvopx, tmvbx, tgetv0, titref, trvec
++ common /timing/
++ & nopx, nbx, nrorth, nitref, nrstrt,
++ & tsaupd, tsaup2, tsaitr, tseigt, tsgets, tsapps, tsconv,
++ & tnaupd, tnaup2, tnaitr, tneigh, tngets, tnapps, tnconv,
++ & tcaupd, tcaup2, tcaitr, tceigh, tcgets, tcapps, tcconv,
++ & tmvopx, tmvbx, tgetv0, titref, trvec
diff --git a/var/spack/repos/builtin/packages/arrayfire/package.py b/var/spack/repos/builtin/packages/arrayfire/package.py
index d3a7b65e2c..01729eff2d 100644
--- a/var/spack/repos/builtin/packages/arrayfire/package.py
+++ b/var/spack/repos/builtin/packages/arrayfire/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,12 @@ class Arrayfire(CMakePackage, CudaPackage):
with an easy-to-use API. Its array based function set makes parallel
programming more accessible."""
- homepage = "http://arrayfire.org/docs/index.htm"
+ homepage = "https://arrayfire.org/docs/index.htm"
git = "https://github.com/arrayfire/arrayfire.git"
version('master', submodules=True)
+ version('3.7.3', submodules=True, tag='v3.7.3')
+ version('3.7.2', submodules=True, tag='v3.7.2')
version('3.7.0', submodules=True, tag='v3.7.0')
variant('cuda', default=False, description='Enable Cuda backend')
@@ -22,7 +24,7 @@ class Arrayfire(CMakePackage, CudaPackage):
variant('opencl', default=False, description='Enable OpenCL backend')
depends_on('boost@1.65:')
- depends_on('fftw')
+ depends_on('fftw-api@3:')
depends_on('blas')
depends_on('cuda@7.5:', when='+cuda')
depends_on('cudnn', when='+cuda')
@@ -34,14 +36,32 @@ class Arrayfire(CMakePackage, CudaPackage):
depends_on('fontconfig', when='+forge')
depends_on('glfw@3.1.4:', when='+forge')
+ @property
+ def libs(self):
+ query_parameters = self.spec.last_query.extra_parameters
+
+ libraries = []
+ if 'cpu' in query_parameters:
+ libraries.append('libafcpu')
+ if 'cuda' in query_parameters and '+cuda' in self.spec:
+ libraries.append('libafcuda')
+ if 'opencl' in query_parameters and '+opencl' in self.spec:
+ libraries.append('libafopencl')
+ if not query_parameters or 'unified' in query_parameters:
+ libraries.append('libaf')
+
+ return find_libraries(libraries, root=self.prefix, recursive=True)
+
def cmake_args(self):
args = []
args.extend([
- '-DAF_BUILD_CUDA={0}'.format(
- 'ON' if '+cuda' in self.spec else 'OFF'),
- '-DAF_BUILD_FORGE={0}'.format(
- 'ON' if '+forge' in self.spec else 'OFF'),
- '-DAF_BUILD_OPENCL={0}'.format(
- 'ON' if '+opencl' in self.spec else 'OFF'),
+ self.define_from_variant('AF_BUILD_CUDA', 'cuda'),
+ self.define_from_variant('AF_BUILD_FORGE', 'forge'),
+ self.define_from_variant('AF_BUILD_OPENCL', 'opencl'),
])
+ if '^mkl' in self.spec:
+ args.append('-DUSE_CPU_MKL=ON')
+ if '%intel' not in self.spec:
+ args.append('-DMKL_THREAD_LAYER=GNU OpenMP')
+
return args
diff --git a/var/spack/repos/builtin/packages/arrow/package.py b/var/spack/repos/builtin/packages/arrow/package.py
index bcd0658f3c..f4f007b539 100644
--- a/var/spack/repos/builtin/packages/arrow/package.py
+++ b/var/spack/repos/builtin/packages/arrow/package.py
@@ -1,8 +1,7 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 *
@@ -12,9 +11,11 @@ class Arrow(CMakePackage, CudaPackage):
This package contains the C++ bindings.
"""
- homepage = "http://arrow.apache.org"
+ homepage = "https://arrow.apache.org"
url = "https://github.com/apache/arrow/archive/apache-arrow-0.9.0.tar.gz"
+ version('4.0.1', sha256='79d3e807df4a179cfab1e7a1ab5f79d95f7b72ac2c33aba030febd125d77eb3b')
+ version('3.0.0', sha256='fc461c4f0a60e7470a7c58b28e9344aa8fb0be5cc982e9658970217e084c3a82')
version('0.17.1', sha256='ecb6da20f9288c0ca31f9b457ffdd460198765a8af27c1cac4b1382a8d130f86')
version('0.15.1', sha256='ab1c0d371a10b615eccfcead71bb79832245d788f4834cc6b278c03c3872d593')
version('0.15.0', sha256='d1072d8c4bf9166949f4b722a89350a88b7c8912f51642a5d52283448acdfd58')
@@ -32,7 +33,7 @@ class Arrow(CMakePackage, CudaPackage):
depends_on('rapidjson')
depends_on('snappy~shared')
depends_on('zlib+pic')
- depends_on('zstd+pic')
+ depends_on('zstd')
depends_on('thrift+pic', when='+parquet')
depends_on('orc', when='+orc')
diff --git a/var/spack/repos/builtin/packages/asagi/package.py b/var/spack/repos/builtin/packages/asagi/package.py
index 37b16fbec3..150988d9da 100644
--- a/var/spack/repos/builtin/packages/asagi/package.py
+++ b/var/spack/repos/builtin/packages/asagi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -59,15 +59,13 @@ class Asagi(CMakePackage):
args = ['-DMAX_DIMENSIONS=' + spec.variants['max_dimensions'].value,
'-DSHARED_LIB=' + ('ON' if 'shared' in link_type else 'OFF'),
'-DSTATIC_LIB=' + ('ON' if 'static' in link_type else 'OFF'),
- '-DFORTRAN_SUPPORT=' + ('ON' if '+fortran' in spec else 'OFF'),
- '-DTHREADSAFE=' + ('ON' if '+threadsafe' in spec else 'OFF'),
+ self.define_from_variant('FORTRAN_SUPPORT', 'fortran'),
+ self.define_from_variant('THREADSAFE', 'threadsafe'),
'-DNOMPI=' + ('ON' if '~mpi' in spec else 'OFF'),
- '-DMPI3=' + ('ON' if '+mpi3' in spec else 'OFF'),
+ self.define_from_variant('MPI3', 'mpi3'),
'-DNONUMA=' + ('ON' if '~numa' in spec else 'OFF'),
- '-DTESTS=' + ('ON' if '+tests' in spec else 'OFF'),
- '-DEXAMPLES=' + ('ON' if '+examples' in spec else 'OFF'),
- '-DTHREADSAFE_COUNTER='
- + ('ON' if '+threadsafe_counter' in spec else 'OFF'),
- '-DTHREADSAFE_MPI='
- + ('ON' if '+threadsafe_mpi' in spec else 'OFF'), ]
+ self.define_from_variant('TESTS', 'tests'),
+ self.define_from_variant('EXAMPLES', 'examples'),
+ self.define_from_variant('THREADSAFE_COUNTER', 'threadsafe_counter'),
+ self.define_from_variant('THREADSAFE_MPI', 'threadsafe_mpi'), ]
return args
diff --git a/var/spack/repos/builtin/packages/ascent/package.py b/var/spack/repos/builtin/packages/ascent/package.py
index 158f76f298..2974ca8f36 100644
--- a/var/spack/repos/builtin/packages/ascent/package.py
+++ b/var/spack/repos/builtin/packages/ascent/package.py
@@ -1,18 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
-import os
-import socket
import glob
+import os
import shutil
+import socket
+import sys
+from os import environ as env
import llnl.util.tty as tty
-from os import environ as env
+
+from spack import *
def cmake_cache_entry(name, value, vtype=None):
@@ -28,7 +28,7 @@ def cmake_cache_entry(name, value, vtype=None):
return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype)
-class Ascent(Package, CudaPackage):
+class Ascent(CMakePackage, CudaPackage):
"""Ascent is an open source many-core capable lightweight in situ
visualization and analysis infrastructure for multi-physics HPC
simulations."""
@@ -41,9 +41,21 @@ class Ascent(Package, CudaPackage):
version('develop',
branch='develop',
+ submodules=True)
+
+ version('0.7.1',
+ tag='v0.7.1',
submodules=True,
preferred=True)
+ version('0.7.0',
+ tag='v0.7.0',
+ submodules=True)
+
+ version('0.6.0',
+ tag='v0.6.0',
+ submodules=True)
+
###########################################################################
# package variants
###########################################################################
@@ -64,10 +76,11 @@ class Ascent(Package, CudaPackage):
variant("openmp", default=(sys.platform != 'darwin'),
description="build openmp support")
- 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")
+ variant("adios2", default=False, description="Build Adios2 filter support")
+ variant("fides", default=False, description="Build Fides filter support")
# variants for dev-tools (docs, etc)
variant("doc", default=False, description="Build Ascent's documentation")
@@ -79,37 +92,35 @@ class Ascent(Package, CudaPackage):
# package dependencies
###########################################################################
- # use cmake 3.14, newest that provides proper cuda support
- # and we have seen errors with cuda in 3.15
- depends_on("cmake@3.14.1:3.14.99", type='build')
+ # Certain CMake versions have been found to break for our use cases
+ depends_on("cmake@3.14.1:3.14.99,3.18.2:", type='build')
depends_on("conduit~python", when="~python")
- depends_on("conduit+python", when="+python+shared")
- depends_on("conduit~shared~python", when="~shared")
- depends_on("conduit~python~mpi", when="~python~mpi")
- depends_on("conduit+python~mpi", when="+python+shared~mpi")
- depends_on("conduit~shared~python~mpi", when="~shared~mpi")
+ depends_on("conduit+python", when="+python")
+ depends_on("conduit+mpi", when="+mpi")
+ depends_on("conduit~mpi", when="~mpi")
#######################
# Python
#######################
# we need a shared version of python b/c linking with static python lib
# causes duplicate state issues when running compiled python modules.
- depends_on("python+shared", when="+python+shared")
- extends("python", when="+python+shared")
- depends_on("py-numpy", when="+python+shared", type=('build', 'run'))
- depends_on("py-pip", when="+python+shared", type=('build', 'run'))
+ with when('+python'):
+ depends_on("python+shared")
+ extends("python")
+ depends_on("py-numpy", type=('build', 'run'))
+ depends_on("py-pip", type=('build', 'run'))
#######################
# MPI
#######################
depends_on("mpi", when="+mpi")
- depends_on("py-mpi4py", when="+mpi+python+shared")
+ depends_on("py-mpi4py", when="+mpi+python")
#######################
# BabelFlow
#######################
- depends_on('babelflow@develop', when='+babelflow+mpi')
- depends_on('parallelmergetree@develop', when='+babelflow+mpi')
+ depends_on('babelflow', when='+babelflow+mpi')
+ depends_on('parallelmergetree', when='+babelflow+mpi')
#############################
# TPLs for Runtime Features
@@ -132,26 +143,27 @@ class Ascent(Package, CudaPackage):
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")
+ # fides
+ depends_on("fides", when="+fides")
# 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+mpi~test~utils+shared+cuda", when="+dray+mpi+cuda+shared")
+ depends_on("dray+mpi~test~utils+shared+openmp", when="+dray+mpi+openmp+shared")
+ depends_on("dray+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")
+ depends_on("dray+mpi~test~utils~shared+cuda", when="+dray+mpi+cuda~shared")
+ depends_on("dray+mpi~test~utils~shared+openmp", when="+dray+mpi+openmp~shared")
+ depends_on("dray+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~mpi~test~utils+shared+cuda", when="+dray~mpi+cuda+shared")
+ depends_on("dray~mpi~test~utils+shared+openmp", when="+dray~mpi+openmp+shared")
+ depends_on("dray~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")
+ depends_on("dray~mpi~test~utils~shared+cuda", when="+dray~mpi+cuda~shared")
+ depends_on("dray~mpi~test~utils~shared+openmp", when="+dray~mpi+openmp~shared")
+ depends_on("dray~mpi~test~utils~shared~openmp~cuda", when="+dray~mpi~openmp~cuda~shared")
#######################
# Documentation related
@@ -159,44 +171,30 @@ class Ascent(Package, CudaPackage):
depends_on("py-sphinx", when="+python+doc", type='build')
depends_on("py-sphinx-rtd-theme", when="+python+doc", type='build')
+ ###########
+ # Conflicts
+ ###########
+ conflicts("+shared", when="+cuda",
+ msg="Ascent needs to be built with ~shared for CUDA builds.")
+
+ ###################################
+ # build phases used by this package
+ ###################################
+ phases = ['hostconfig', 'cmake', 'build', 'install']
+
def setup_build_environment(self, env):
env.set('CTEST_OUTPUT_ON_FAILURE', '1')
- def install(self, spec, prefix):
- """
- Build and install Ascent.
- """
- with working_dir('spack-build', create=True):
- py_site_pkgs_dir = None
- if "+python" in spec:
- py_site_pkgs_dir = site_packages_dir
-
- host_cfg_fname = self.create_host_config(spec,
- prefix,
- py_site_pkgs_dir)
- 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 Ascent...")
- cmake(*cmake_args)
- print("Building Ascent...")
- make()
- # run unit tests if requested
- if "+test" in spec and self.run_tests:
- print("Running Ascent Unit Tests...")
- make("test")
- print("Installing Ascent...")
- make("install")
- # install copy of host config for provenance
- install(host_cfg_fname, prefix)
+ ####################################################################
+ # Note: cmake, build, and install stages are handled by CMakePackage
+ ####################################################################
+
+ # provide cmake args (pass host config as cmake cache file)
+ def cmake_args(self):
+ host_config = self._get_host_config_path(self.spec)
+ options = []
+ options.extend(['-C', host_config, "../spack-src/src/"])
+ return options
@run_after('install')
@on_package_attributes(run_tests=True)
@@ -238,24 +236,31 @@ class Ascent(Package, CudaPackage):
example = Executable('./ascent_render_example')
example()
- def create_host_config(self, spec, prefix, py_site_pkgs_dir=None):
+ def _get_host_config_path(self, spec):
+ sys_type = spec.architecture
+ # if on llnl systems, we can use the SYS_TYPE
+ if "SYS_TYPE" in env:
+ sys_type = env["SYS_TYPE"]
+ host_config_path = "{0}-{1}-{2}-ascent-{3}.cmake".format(socket.gethostname(),
+ sys_type,
+ spec.compiler,
+ spec.dag_hash())
+ dest_dir = spec.prefix
+ host_config_path = os.path.abspath(join_path(dest_dir,
+ host_config_path))
+ return host_config_path
+
+ def hostconfig(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
-
- Note:
- The `py_site_pkgs_dir` arg exists to allow a package that
- subclasses this package provide a specific site packages
- dir when calling this function. `py_site_pkgs_dir` should
- be an absolute path or `None`.
+ https://ascent.readthedocs.io/en/latest/BuildingAscent.html
- This is necessary because the spack `site_packages_dir`
- var will not exist in the base class. For more details
- on this issue see: https://github.com/spack/spack/issues/6261
"""
+ if not os.path.isdir(spec.prefix):
+ os.mkdir(spec.prefix)
#######################
# Compiler Info
@@ -269,11 +274,9 @@ class Ascent(Package, CudaPackage):
f_compiler = env["SPACK_FC"]
#######################################################################
- # By directly fetching the names of the actual compilers we appear
- # to doing something evil here, but this is necessary to create a
+ # 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:
@@ -292,9 +295,8 @@ class Ascent(Package, CudaPackage):
raise RuntimeError(msg)
cmake_exe = cmake_exe.path
- host_cfg_fname = "%s-%s-%s-ascent.cmake" % (socket.gethostname(),
- sys_type,
- spec.compiler)
+ # get hostconfig name
+ host_cfg_fname = self._get_host_config_path(spec)
cfg = open(host_cfg_fname, "w")
cfg.write("##################################\n")
@@ -333,6 +335,23 @@ class Ascent(Package, CudaPackage):
else:
cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF"))
+ # use global spack compiler flags
+ cppflags = ' '.join(spec.compiler_flags['cppflags'])
+ if cppflags:
+ # avoid always ending up with ' ' with no flags defined
+ cppflags += ' '
+ cflags = cppflags + ' '.join(spec.compiler_flags['cflags'])
+ if cflags:
+ cfg.write(cmake_cache_entry("CMAKE_C_FLAGS", cflags))
+ cxxflags = cppflags + ' '.join(spec.compiler_flags['cxxflags'])
+ if cxxflags:
+ cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags))
+ fflags = ' '.join(spec.compiler_flags['fflags'])
+ if self.spec.satisfies('%cce'):
+ fflags += " -ef"
+ if fflags:
+ cfg.write(cmake_cache_entry("CMAKE_Fortran_FLAGS", fflags))
+
#######################
# Unit Tests
#######################
@@ -368,10 +387,13 @@ class Ascent(Package, CudaPackage):
cfg.write("# python from spack \n")
cfg.write(cmake_cache_entry("PYTHON_EXECUTABLE",
spec['python'].command.path))
- # only set dest python site packages dir if passed
- if py_site_pkgs_dir:
+ try:
+ cfg.write("# python module install dir\n")
cfg.write(cmake_cache_entry("PYTHON_MODULE_INSTALL_PREFIX",
- py_site_pkgs_dir))
+ site_packages_dir))
+ except NameError:
+ # spack's won't exist in a subclass
+ pass
else:
cfg.write(cmake_cache_entry("ENABLE_PYTHON", "OFF"))
@@ -497,15 +519,28 @@ class Ascent(Package, CudaPackage):
cfg.write("# devil ray not built by spack \n")
#######################
- # Adios
+ # Adios2
#######################
+ cfg.write("# adios2 support\n")
- cfg.write("# adios support\n")
+ if "+adios2" in spec:
+ cfg.write(cmake_cache_entry("ADIOS2_DIR", spec['adios2'].prefix))
+ else:
+ cfg.write("# adios2 not built by spack \n")
- if "+adios" in spec:
- cfg.write(cmake_cache_entry("ADIOS_DIR", spec['adios'].prefix))
+ #######################
+ # Fides
+ #######################
+ cfg.write("# Fides support\n")
+
+ if "+fides" in spec:
+ cfg.write(cmake_cache_entry("FIDES_DIR", spec['fides'].prefix))
else:
- cfg.write("# adios not built by spack \n")
+ cfg.write("# fides not built by spack \n")
+
+ #######################
+ # Finish host-config
+ #######################
cfg.write("##################################\n")
cfg.write("# end spack generated host-config\n")
@@ -513,5 +548,4 @@ class Ascent(Package, CudaPackage):
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
+ tty.info("spack generated ascent host-config file: " + host_cfg_fname)
diff --git a/var/spack/repos/builtin/packages/asciidoc-py3/package.py b/var/spack/repos/builtin/packages/asciidoc-py3/package.py
index 5bfe18f7da..81e5e052f3 100644
--- a/var/spack/repos/builtin/packages/asciidoc-py3/package.py
+++ b/var/spack/repos/builtin/packages/asciidoc-py3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,9 @@ class AsciidocPy3(AutotoolsPackage):
homepage = "https://github.com/asciidoc/asciidoc-py3"
url = "https://github.com/asciidoc/asciidoc-py3/releases/download/9.0.2/asciidoc-9.0.2.tar.gz"
+ version('9.1.0', sha256='fd499fcf51317b1aaf27336fb5e919c44c1f867f1ae6681ee197365d3065238b')
+ version('9.0.5', sha256='1a20647eb62ca37bc8107affab968caa0f674f0e962b497d1674391f636c7038')
+ version('9.0.4', sha256='400368a43f3eee656d7f197382cd3554b50fb370ef2aea6534f431692a356c66')
version('9.0.3', sha256='d99c8be8e8a9232742253c2d87c547b2efd4bbd3f0c1e23ef14898ad0fff77c4')
version('9.0.2', sha256='185fd68e47034c4dd892e1d4ae64c81152bc049e9bdc7d1ad63f927d35810a3b')
diff --git a/var/spack/repos/builtin/packages/asciidoc/package.py b/var/spack/repos/builtin/packages/asciidoc/package.py
index 5571f85dba..c0bf35aad3 100644
--- a/var/spack/repos/builtin/packages/asciidoc/package.py
+++ b/var/spack/repos/builtin/packages/asciidoc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,34 @@ class Asciidoc(AutotoolsPackage):
"""A presentable text document format for writing articles, UNIX man
pages and other small to medium sized documents."""
- homepage = "http://asciidoc.org"
- url = "http://downloads.sourceforge.net/project/asciidoc/asciidoc/8.6.9/asciidoc-8.6.9.tar.gz"
+ homepage = "https://asciidoc.org/"
+ # Always working URL but strangely with another checksum
+ url = "https://github.com/asciidoc-py/asciidoc-py/archive/8.6.10.tar.gz"
+ git = "https://github.com/asciidoc-py/asciidoc-py.git"
- version('8.6.9', sha256='78db9d0567c8ab6570a6eff7ffdf84eadd91f2dfc0a92a2d0105d323cab4e1f0')
+ version('master', branch='master')
+ version('9.1.0', sha256='5056c20157349f8dc74f005b6e88ccbf1078c4e26068876f13ca3d1d7d045fe7')
+ version('9.0.5', sha256='edc8328c3682a8568172656f6fc309b189f65219a49517966c7ea144cb25f8b2')
+ version('9.0.4', sha256='fb0e683ae6a4baf34a8969c3af764ca729526196576729ee9275b9f39fd8b79c')
+ version('9.0.3', sha256='b6ef4accd7959f51b532ab4d3aaa211e15f18fd544c4c3cc3ed712f5590a50de')
+ version('9.0.2', sha256='93fbe32d56380afee2f26389d8ebfdf33de72536449d53308120d3c20d2c1e17')
+ version('8.6.10', sha256='22d6793d4f48cefb4a6963853212a214591a591ece1bcbc56af3c67c642003ea')
+ version('8.6.9', sha256='45e95bed1e341980f7de0a66fdc467090956fe55d4625bdad8057cd926e0c6c6')
- depends_on('libxml2')
- depends_on('libxslt')
- depends_on('docbook-xml')
- depends_on('docbook-xsl')
+ depends_on('libxml2', type=('build', 'run'))
+ depends_on('libxslt', type=('build', 'run'))
+ depends_on('docbook-xml', type=('build', 'run'))
+ depends_on('docbook-xsl', type=('build', 'run'))
+ depends_on('python@2.3.0:2.7.99', when='@:8.6.9', type=('build', 'run'))
+ depends_on('python@3.5:', when='@9.0.2:', type=('build', 'run'))
+
+ @when('@:8.6.9')
+ def install(self, spec, prefix):
+ # Old release demands python2
+ mpythpath = spec['python'].command.path
+ exes = ['asciidoc', 'a2x']
+ for exe in exes:
+ fthfile = FileFilter(exe + '.py')
+ fthfile.filter('#!/usr/bin/env python', '#!' + mpythpath)
+
+ make('install')
diff --git a/var/spack/repos/builtin/packages/asdcplib/package.py b/var/spack/repos/builtin/packages/asdcplib/package.py
index abdc7f1c85..567cf0533e 100644
--- a/var/spack/repos/builtin/packages/asdcplib/package.py
+++ b/var/spack/repos/builtin/packages/asdcplib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/asdf-cxx/package.py b/var/spack/repos/builtin/packages/asdf-cxx/package.py
index fadb49714e..742d939666 100644
--- a/var/spack/repos/builtin/packages/asdf-cxx/package.py
+++ b/var/spack/repos/builtin/packages/asdf-cxx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -42,6 +42,9 @@ class AsdfCxx(CMakePackage):
depends_on('openssl')
depends_on('py-numpy', type=('build', 'run'), when='+python')
depends_on('python', type=('build', 'run'), when='+python')
- depends_on('swig', type='build', when='+python')
- depends_on('yaml-cpp')
+ # An error in the cmake script requires swig all the time, not only when
+ # Python bindings are used
+ depends_on('swig @3.0.0:3.999.999', type='build')
+ # Neither earlier nor later versions of yaml-cpp work
+ depends_on('yaml-cpp @0.6.3')
depends_on('zlib')
diff --git a/var/spack/repos/builtin/packages/asio/package.py b/var/spack/repos/builtin/packages/asio/package.py
new file mode 100644
index 0000000000..33e2faced5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/asio/package.py
@@ -0,0 +1,82 @@
+# Copyright 2013-2021 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)
+
+import os.path
+
+from spack import *
+
+
+class Asio(AutotoolsPackage):
+ """C++ library for network and low-level I/O programming."""
+
+ homepage = "https://think-async.com/Asio/"
+ url = "https://github.com/chriskohlhoff/asio/archive/1.18.2.tar.gz"
+ git = "https://github.com/chriskohlhoff/asio.git"
+ maintainers = ["msimberg"]
+
+ version(
+ "1.18.2",
+ sha256="8d67133b89e0f8b212e9f82fdcf1c7b21a978d453811e2cd941c680e72c2ca32",
+ )
+
+ depends_on("autoconf", type="build")
+ depends_on("automake", type="build")
+ depends_on("m4", type="build")
+ depends_on("libtool", type="build")
+
+ stds = ("11", "14", "17", "2a")
+ variant(
+ "cxxstd",
+ default="11",
+ values=stds,
+ multi=False,
+ description="Use the specified C++ standard when building.",
+ )
+
+ variant(
+ "separate_compilation",
+ default=False,
+ description="Compile Asio sources separately",
+ )
+
+ variant(
+ "boost_coroutine",
+ default=False,
+ description="Enable support for Boost.Coroutine.",
+ )
+ depends_on("boost +context +coroutine", when="+boost_coroutine")
+
+ variant("boost_regex", default=False, description="Enable support for Boost.Regex.")
+ depends_on("boost +regex", when="+boost_regex")
+
+ for std in stds:
+ depends_on("boost cxxstd=" + std, when="cxxstd={0} ^boost".format(std))
+
+ def configure_args(self):
+ variants = self.spec.variants
+
+ args = [
+ "CXXFLAGS=-std=c++{0}".format(variants["cxxstd"].value),
+ ]
+
+ if variants["separate_compilation"].value:
+ args.append("--enable-separate-compilation")
+
+ if variants["boost_coroutine"].value:
+ args.append("--enable-boost-coroutine")
+
+ if variants["boost_coroutine"].value or variants["boost_regex"].value:
+ args.append("--with-boost={self.spec['boost'].prefix}")
+
+ return args
+
+ def url_for_version(self, version):
+ return "https://github.com/chriskohlhoff/asio/archive/asio-{0}.tar.gz".format(
+ version.dashed
+ )
+
+ @property
+ def configure_directory(self):
+ return os.path.join(self.stage.source_path, "asio")
diff --git a/var/spack/repos/builtin/packages/aspa/package.py b/var/spack/repos/builtin/packages/aspa/package.py
index 256b68e5da..e82a4194ce 100644
--- a/var/spack/repos/builtin/packages/aspa/package.py
+++ b/var/spack/repos/builtin/packages/aspa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aspcud/package.py b/var/spack/repos/builtin/packages/aspcud/package.py
index 2521848f48..7e5d28f12c 100644
--- a/var/spack/repos/builtin/packages/aspcud/package.py
+++ b/var/spack/repos/builtin/packages/aspcud/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,9 +18,10 @@ class Aspcud(CMakePackage):
homepage = "https://potassco.org/aspcud"
url = "https://github.com/potassco/aspcud/archive/v1.9.4.tar.gz"
+ version('1.9.5', sha256='9cd3a9490d377163d87b16fa1a10cc7254bc2dbb9f60e846961ac8233f3835cf')
version('1.9.4', sha256='3645f08b079e1cc80e24cd2d7ae5172a52476d84e3ec5e6a6c0034492a6ea885')
- depends_on('boost', type=('build'))
+ depends_on('boost@1.74:', type=('build'), when='@1.9.5:')
depends_on('cmake', type=('build'))
depends_on('re2c', type=('build'))
depends_on('clingo')
diff --git a/var/spack/repos/builtin/packages/aspect/package.py b/var/spack/repos/builtin/packages/aspect/package.py
index 08e2b59abd..92da16cf2e 100644
--- a/var/spack/repos/builtin/packages/aspect/package.py
+++ b/var/spack/repos/builtin/packages/aspect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,7 @@ class Aspect(CMakePackage):
maintainers = ['tjhei']
version('develop', branch='master')
+ version('2.3.0', sha256='d97885e502e99ca22af3933c3b1c0b30b0b5e4dc0421e7f6e4d6b378e997faf8')
version('2.2.0', sha256='6dc31c4b991c8a96495ba0e9a3c92e57f9305ba94b8dbed3c8c5cfbab91ec5c1')
version('2.1.0', sha256='bd574d60ed9df1f4b98e68cd526a074d0527c0792763187c9851912327d861a3')
version('2.0.1', sha256='0bf5600c42afce9d39c1d285b0654ecfdeb0f30e9f3421651c95f54ca01ac165')
@@ -35,8 +36,7 @@ class Aspect(CMakePackage):
def cmake_args(self):
return [
- '-DASPECT_USE_FP_EXCEPTIONS=%s' %
- ('ON' if '+fpe' in self.spec else 'OFF')
+ self.define_from_variant('ASPECT_USE_FP_EXCEPTIONS', 'fpe')
]
def setup_run_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/aspell/package.py b/var/spack/repos/builtin/packages/aspell/package.py
index 01f92ea39f..eec6c4f86e 100644
--- a/var/spack/repos/builtin/packages/aspell/package.py
+++ b/var/spack/repos/builtin/packages/aspell/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aspell6-de/package.py b/var/spack/repos/builtin/packages/aspell6-de/package.py
index 2f3653985f..2d5c143a3f 100644
--- a/var/spack/repos/builtin/packages/aspell6-de/package.py
+++ b/var/spack/repos/builtin/packages/aspell6-de/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aspell6-en/package.py b/var/spack/repos/builtin/packages/aspell6-en/package.py
index 659e1dffe4..da42863b25 100644
--- a/var/spack/repos/builtin/packages/aspell6-en/package.py
+++ b/var/spack/repos/builtin/packages/aspell6-en/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aspell6-es/package.py b/var/spack/repos/builtin/packages/aspell6-es/package.py
index ab757e5e8e..68b4f9d5b5 100644
--- a/var/spack/repos/builtin/packages/aspell6-es/package.py
+++ b/var/spack/repos/builtin/packages/aspell6-es/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/aspera-cli/package.py b/var/spack/repos/builtin/packages/aspera-cli/package.py
index f073fdcbb9..97b31e49e3 100644
--- a/var/spack/repos/builtin/packages/aspera-cli/package.py
+++ b/var/spack/repos/builtin/packages/aspera-cli/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob import glob
+from spack import *
+
class AsperaCli(Package):
"""The Aspera CLI client for the Fast and Secure Protocol (FASP)."""
diff --git a/var/spack/repos/builtin/packages/assimp/package.py b/var/spack/repos/builtin/packages/assimp/package.py
index 9c9a937c8e..5a0a1b7b51 100644
--- a/var/spack/repos/builtin/packages/assimp/package.py
+++ b/var/spack/repos/builtin/packages/assimp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,10 @@ class Assimp(CMakePackage):
homepage = "https://www.assimp.org"
url = "https://github.com/assimp/assimp/archive/v4.0.1.tar.gz"
+ git = "https://github.com/assimp/assimp.git"
+ version('master', branch='master')
+ version('5.0.1', sha256='11310ec1f2ad2cd46b95ba88faca8f7aaa1efe9aa12605c55e3de2b977b3dbfc')
version('4.0.1', sha256='60080d8ab4daaab309f65b3cffd99f19eb1af8d05623fff469b9b652818e286e')
variant('shared', default=True,
@@ -23,8 +26,7 @@ class Assimp(CMakePackage):
def cmake_args(self):
args = [
'-DASSIMP_BUILD_TESTS=OFF',
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in self.spec else 'OFF'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
]
return args
diff --git a/var/spack/repos/builtin/packages/astra/package.py b/var/spack/repos/builtin/packages/astra/package.py
index a74e82bd6b..eadf6a20ba 100644
--- a/var/spack/repos/builtin/packages/astra/package.py
+++ b/var/spack/repos/builtin/packages/astra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,41 +9,41 @@ from spack import *
class Astra(Package):
"""A Space Charge Tracking Algorithm."""
- homepage = "http://www.desy.de/~mpyflo/"
+ homepage = "https://www.desy.de/~mpyflo/"
version('2020-02-03',
sha256='ca9ee7d3d369f9040fbd595f57f3153f712d789b66385fd2d2de88a69a774b83',
expand=False,
- url='http://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/Astra')
+ url='https://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/Astra')
# no longer available?
# version('2016-11-30',
# sha256='50738bf924724e2dd15f1d924b290ffb0f7c703e5d5ae02ffee2db554338801e',
# expand=False,
- # url='http://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/Astra')
+ # url='https://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/Astra')
variant('gui', default=False, description='Install plotting/gui tools')
- resource(name='generator', url='http://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/generator',
+ resource(name='generator', url='https://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/generator',
sha256='d31cf9fcfeb90ce0e729d8af628caf4a23f7e588a3d412d5b19241e8c684e531',
expand=False,
placement='generator')
- resource(name='postpro', url='http://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/postpro',
+ resource(name='postpro', url='https://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/postpro',
sha256='f47efb14748ce1da62bcd33c9411482bee89bcab75b28a678fc764db0c21ee8d',
expand=False,
when='+gui',
placement='postpro')
- resource(name='fieldplot', url='http://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/fieldplot',
+ resource(name='fieldplot', url='https://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/fieldplot',
sha256='89df1da96bfd9f165fa148b84376af558e6633ab2dda837273706143ff863c96',
expand=False,
when='+gui',
placement='fieldplot')
- resource(name='lineplot', url='http://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/lineplot',
+ resource(name='lineplot', url='https://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/lineplot',
sha256='d2d5702be9cb3d96391c6a0ca37366d580ced1f0f722fb33a6039ad7fd43b69a',
expand=False,
when='+gui',
placement='lineplot')
- resource(name='pgxwin_server', url='http://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/pgxwin_server',
+ resource(name='pgxwin_server', url='https://www.desy.de/~mpyflo/Astra_for_64_Bit_Linux/pgxwin_server',
sha256='d2d5702be9cb3d96391c6a0ca37366d580ced1f0f722fb33a6039ad7fd43b69a',
expand=False,
when='+gui',
diff --git a/var/spack/repos/builtin/packages/astral/package.py b/var/spack/repos/builtin/packages/astral/package.py
index 06cc6eb59e..98c15985f6 100644
--- a/var/spack/repos/builtin/packages/astral/package.py
+++ b/var/spack/repos/builtin/packages/astral/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Astral(Package):
"""ASTRAL is a tool for estimating an unrooted species tree given a set of
diff --git a/var/spack/repos/builtin/packages/astyle/package.py b/var/spack/repos/builtin/packages/astyle/package.py
index 7b9fdf757e..b87eee4044 100644
--- a/var/spack/repos/builtin/packages/astyle/package.py
+++ b/var/spack/repos/builtin/packages/astyle/package.py
@@ -1,10 +1,9 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
class Astyle(MakefilePackage):
@@ -15,7 +14,7 @@ class Astyle(MakefilePackage):
homepage = "http://astyle.sourceforge.net/"
url = "https://sourceforge.net/projects/astyle/files/astyle/astyle%203.0.1/astyle_3.0.1_linux.tar.gz"
# Gentoo alternative
- # url = "http://distfiles.gentoo.org/distfiles/astyle_3.0.1_linux.tar.gz"
+ # url = "https://distfiles.gentoo.org/distfiles/astyle_3.0.1_linux.tar.gz"
version('3.1', sha256='cbcc4cf996294534bb56f025d6f199ebfde81aa4c271ccbd5ee1c1a3192745d7')
version('3.0.1', sha256='6c3ab029e0e4a75e2e603d449014374aa8269218fdd03a4aaa46ab743b1912fd')
@@ -32,9 +31,9 @@ class Astyle(MakefilePackage):
def edit(self, spec, prefix):
makefile = join_path(self.build_directory, 'Makefile')
filter_file(r'^CXX\s*=.*', 'CXX=%s' % spack_cxx, makefile)
- # strangely enough install -o $(USER) -g $(USER) stoped working on OSX
- if sys.platform == 'darwin':
- filter_file(r'^INSTALL=.*', 'INSTALL=install', makefile)
+ # If the group is not a user account, the installation will fail,
+ # so remove the -o $ (USER) -g $ (USER) parameter.
+ filter_file(r'^INSTALL=.*', 'INSTALL=install', makefile)
@property
def install_targets(self):
diff --git a/var/spack/repos/builtin/packages/at-spi2-atk/package.py b/var/spack/repos/builtin/packages/at-spi2-atk/package.py
index 371b661b45..fdc834bc51 100644
--- a/var/spack/repos/builtin/packages/at-spi2-atk/package.py
+++ b/var/spack/repos/builtin/packages/at-spi2-atk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,11 +10,12 @@ class AtSpi2Atk(MesonPackage):
"""The At-Spi2 Atk package contains a library that bridges ATK to
At-Spi2 D-Bus service."""
- homepage = "http://www.linuxfromscratch.org/blfs/view/cvs/x/at-spi2-atk.html"
+ homepage = "https://www.linuxfromscratch.org/blfs/view/cvs/x/at-spi2-atk.html"
url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-atk/2.26/at-spi2-atk-2.26.1.tar.xz"
list_url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-atk"
list_depth = 1
+ version('2.38.0', sha256='cfa008a5af822b36ae6287f18182c40c91dd699c55faa38605881ed175ca464f')
version('2.34.2', sha256='901323cee0eef05c01ec4dee06c701aeeca81a314a7d60216fa363005e27f4f0')
version('2.26.2', sha256='61891f0abae1689f6617a963105a3f1dcdab5970c4a36ded9c79a7a544b16a6e')
version('2.26.1', sha256='b4f0c27b61dbffba7a5b5ba2ff88c8cee10ff8dac774fa5b79ce906853623b75')
diff --git a/var/spack/repos/builtin/packages/at-spi2-core/package.py b/var/spack/repos/builtin/packages/at-spi2-core/package.py
index 6e23e901c8..4d6494b54e 100644
--- a/var/spack/repos/builtin/packages/at-spi2-core/package.py
+++ b/var/spack/repos/builtin/packages/at-spi2-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,11 +11,12 @@ class AtSpi2Core(MesonPackage):
Assistive Technologies available on the GNOME platform and a library
against which applications can be linked."""
- homepage = "http://www.linuxfromscratch.org/blfs/view/cvs/x/at-spi2-core.html"
+ homepage = "https://www.linuxfromscratch.org/blfs/view/cvs/x/at-spi2-core.html"
url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.28/at-spi2-core-2.38.0.tar.xz"
list_url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-core"
list_depth = 1
+ version('2.40.1', sha256='9f66e3a4ee42db897af478a826b1366d7011a6d55ddb7e9d4bfeb3300ab23856')
version('2.38.0', sha256='84e36c3fe66862133f5fe229772b76aa2526e10de5014a3778f2fa46ce550da5')
version('2.36.0', sha256='88da57de0a7e3c60bc341a974a80fdba091612db3547c410d6deab039ca5c05a')
version('2.28.0', sha256='42a2487ab11ce43c288e73b2668ef8b1ab40a0e2b4f94e80fca04ad27b6f1c87')
diff --git a/var/spack/repos/builtin/packages/atf/package.py b/var/spack/repos/builtin/packages/atf/package.py
index 25fc399fbf..dc586d31f3 100644
--- a/var/spack/repos/builtin/packages/atf/package.py
+++ b/var/spack/repos/builtin/packages/atf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/athena/package.py b/var/spack/repos/builtin/packages/athena/package.py
index 3f587c2e1d..970ccfdb69 100644
--- a/var/spack/repos/builtin/packages/athena/package.py
+++ b/var/spack/repos/builtin/packages/athena/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/atk/package.py b/var/spack/repos/builtin/packages/atk/package.py
index 94e4676315..3c0c998906 100644
--- a/var/spack/repos/builtin/packages/atk/package.py
+++ b/var/spack/repos/builtin/packages/atk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,8 +20,8 @@ class Atk(Package):
version('2.36.0', sha256='fb76247e369402be23f1f5c65d38a9639c1164d934e40f6a9cf3c9e96b652788')
version('2.30.0', sha256='dd4d90d4217f2a0c1fee708a555596c2c19d26fef0952e1ead1938ab632c027b')
version('2.28.1', sha256='cd3a1ea6ecc268a2497f0cd018e970860de24a6d42086919d6bf6c8e8d53f4fc')
- version('2.20.0', sha256='493a50f6c4a025f588d380a551ec277e070b28a82e63ef8e3c06b3ee7c1238f0')
- version('2.14.0', sha256='2875cc0b32bfb173c066c22a337f79793e0c99d2cc5e81c4dac0d5a523b8fbad')
+ version('2.20.0', sha256='493a50f6c4a025f588d380a551ec277e070b28a82e63ef8e3c06b3ee7c1238f0', deprecated=True)
+ version('2.14.0', sha256='2875cc0b32bfb173c066c22a337f79793e0c99d2cc5e81c4dac0d5a523b8fbad', deprecated=True)
depends_on('meson@0.40.1:', type='build', when='@2.28:')
depends_on('meson@0.46.0:', type='build', when='@2.29:')
diff --git a/var/spack/repos/builtin/packages/atlas/package.py b/var/spack/repos/builtin/packages/atlas/package.py
index ea7b289947..e1a152e220 100644
--- a/var/spack/repos/builtin/packages/atlas/package.py
+++ b/var/spack/repos/builtin/packages/atlas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
import os
from spack import *
-from spack.package_test import compile_c_and_execute, compare_output_file
+from spack.package_test import compare_output_file, compile_c_and_execute
class Atlas(Package):
@@ -30,7 +30,7 @@ class Atlas(Package):
# not all packages (e.g. Trilinos@12.6.3) stopped using deprecated in 3.6.0
# Lapack routines. Stick with 3.5.0 until this is fixed.
resource(name='lapack',
- url='http://www.netlib.org/lapack/lapack-3.5.0.tgz',
+ url='https://www.netlib.org/lapack/lapack-3.5.0.tgz',
sha256='9ad8f0d3f3fb5521db49f2dd716463b8fb2b6bc9dc386a9956b8c6144f726352',
destination='spack-resource-lapack',
when='@3:')
diff --git a/var/spack/repos/builtin/packages/atmi/package.py b/var/spack/repos/builtin/packages/atmi/package.py
index d0b4cc063d..61b3d9bb4d 100644
--- a/var/spack/repos/builtin/packages/atmi/package.py
+++ b/var/spack/repos/builtin/packages/atmi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,10 +14,16 @@ class Atmi(CMakePackage):
(integrated and discrete)."""
homepage = "https://github.com/RadeonOpenCompute/atmi"
- url = "https://github.com/RadeonOpenCompute/atmi/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/RadeonOpenCompute/atmi.git"
+ url = "https://github.com/RadeonOpenCompute/atmi/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
-
+ version('4.3.1', sha256='4497fa6d33547b946e2a51619f2777ec36e9cff1b07fd534eb8a5ef0d8e30650')
+ version('4.3.0', sha256='1cbe0e9258ce7cce7b7ccc288335dffbac821ceb745c4f3fd48e2a258abada89')
+ version('4.2.0', sha256='c1c89c00d2dc3e764c63b2e51ff7fd5c06d5881ed56aed0adf639582d3389585')
+ version('4.1.0', sha256='b31849f86c79f90466a9d67f0a28a93c1675181e38e2a5f571ffc963e4b06f5f')
+ version('4.0.0', sha256='8a2e5789ee7165aff0f0669eecd23ac0a5c8a5bfbc1acd9380fe9a8ed5bffe3a')
+ version('3.10.0', sha256='387e87c622ec334d3ba7a2f4f015ea9a219712722f4c56c1ef572203d0d072ea')
version('3.9.0', sha256='0a305e85bab210dd9a0410aa01d46227e00b59141e4675c50d731ad1232ab828')
version('3.8.0', sha256='039f0c2b369d0dbc01000754893d9210828f4cb9b36c3e70da8c3819b131c933')
version('3.7.0', sha256='8df08489a10ee04cea911811393e0e7d91bd437fc1fd81a23a4e7ab924a974f3')
@@ -26,7 +32,8 @@ class Atmi(CMakePackage):
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
depends_on('cmake@3:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('comgr@' + ver, type='link', when='@' + ver)
depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
depends_on('libelf@0.8:', type='link', when='@' + ver)
diff --git a/var/spack/repos/builtin/packages/atom-dft/package.py b/var/spack/repos/builtin/packages/atom-dft/package.py
index 81306354e9..dbdb13b3a9 100644
--- a/var/spack/repos/builtin/packages/atom-dft/package.py
+++ b/var/spack/repos/builtin/packages/atom-dft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/atompaw/atompaw-4.1.1.0-fix-ifort.patch b/var/spack/repos/builtin/packages/atompaw/atompaw-4.1.1.0-fix-ifort.patch
new file mode 100644
index 0000000000..59ace7cb0f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/atompaw/atompaw-4.1.1.0-fix-ifort.patch
@@ -0,0 +1,15 @@
+diff --git a/src/io_tools.F90 b/src/io_tools.F90
+index fe94582..5da3abc 100644
+--- a/src/io_tools.F90
++++ b/src/io_tools.F90
+@@ -8,7 +8,9 @@
+ #endif
+
+ MODULE io_tools
+-
++#if defined (__INTEL_COMPILER)
++ USE IFPORT
++#endif
+ IMPLICIT NONE
+
+ PRIVATE
diff --git a/var/spack/repos/builtin/packages/atompaw/package.py b/var/spack/repos/builtin/packages/atompaw/package.py
index 46b66a9382..543fb0d3a3 100644
--- a/var/spack/repos/builtin/packages/atompaw/package.py
+++ b/var/spack/repos/builtin/packages/atompaw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,17 +15,21 @@ class Atompaw(Package):
User's guide: ~/doc/atompaw-usersguide.pdf
"""
- homepage = "http://users.wfu.edu/natalie/papers/pwpaw/man.html"
- url = "http://users.wfu.edu/natalie/papers/pwpaw/atompaw-4.0.0.13.tar.gz"
+ homepage = "https://users.wfu.edu/natalie/papers/pwpaw/man.html"
+ url = "https://users.wfu.edu/natalie/papers/pwpaw/atompaw-4.0.0.13.tar.gz"
+ version('4.1.1.0', sha256='b1ee2b53720066655d98523ef337e54850cb1e68b3a2da04ff5a1576d3893891')
version('4.0.0.13', sha256='cbd73f11f3e9cc3ff2e5f3ec87498aeaf439555903d0b95a72f3b0a021902020')
version('3.1.0.3', sha256='15fe9a0369bdcc366370a0ecaa67e803ae54534b479ad63c4c7494a04fa3ea78')
depends_on("lapack")
depends_on("blas")
- # pin libxc version
- depends_on("libxc@2.2.1")
+ # libxc
+ depends_on('libxc')
+ depends_on('libxc@:2', when='@:4.0')
+
+ patch('atompaw-4.1.1.0-fix-ifort.patch', when='@4.1.1.0:')
def install(self, spec, prefix):
options = ['--prefix=%s' % prefix]
diff --git a/var/spack/repos/builtin/packages/atop/package.py b/var/spack/repos/builtin/packages/atop/package.py
index 3c0772fc4e..0e1f465546 100644
--- a/var/spack/repos/builtin/packages/atop/package.py
+++ b/var/spack/repos/builtin/packages/atop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,8 @@ from spack import *
class Atop(Package):
"""Atop is an ASCII full-screen performance monitor for Linux"""
- homepage = "http://www.atoptool.nl/index.php"
- url = "http://www.atoptool.nl/download/atop-2.2-3.tar.gz"
+ homepage = "https://www.atoptool.nl/index.php"
+ url = "https://www.atoptool.nl/download/atop-2.2-3.tar.gz"
version('2.5.0', sha256='4b911057ce50463b6e8b3016c5963d48535c0cddeebc6eda817e292b22f93f33')
version('2.4.0', sha256='be1c010a77086b7d98376fce96514afcd73c3f20a8d1fe01520899ff69a73d69')
diff --git a/var/spack/repos/builtin/packages/attr/package.py b/var/spack/repos/builtin/packages/attr/package.py
index 549909d209..8dc5dbe034 100644
--- a/var/spack/repos/builtin/packages/attr/package.py
+++ b/var/spack/repos/builtin/packages/attr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -28,7 +28,7 @@ class Attr(AutotoolsPackage):
args.append('--disable-static')
return args
- # Ref. http://www.linuxfromscratch.org/blfs/view/7.5/postlfs/attr.html
+ # Ref. https://www.linuxfromscratch.org/blfs/view/7.5/postlfs/attr.html
def install(self, spec, prefix):
if self.version >= Version('2.4.48'):
make('install')
diff --git a/var/spack/repos/builtin/packages/audacious/package.py b/var/spack/repos/builtin/packages/audacious/package.py
index a38fb18d96..1036a54711 100644
--- a/var/spack/repos/builtin/packages/audacious/package.py
+++ b/var/spack/repos/builtin/packages/audacious/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/audacity/package.py b/var/spack/repos/builtin/packages/audacity/package.py
index e4ae4dcf16..f45745a814 100644
--- a/var/spack/repos/builtin/packages/audacity/package.py
+++ b/var/spack/repos/builtin/packages/audacity/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/audit-userspace/package.py b/var/spack/repos/builtin/packages/audit-userspace/package.py
index 150a407319..6503fd6e75 100644
--- a/var/spack/repos/builtin/packages/audit-userspace/package.py
+++ b/var/spack/repos/builtin/packages/audit-userspace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/augustus/bam2wig_Makefile.patch b/var/spack/repos/builtin/packages/augustus/bam2wig_Makefile.patch
new file mode 100644
index 0000000000..bbd5bfeef6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/augustus/bam2wig_Makefile.patch
@@ -0,0 +1,23 @@
+--- a/auxprogs/bam2wig/Makefile 2020-12-11 09:40:21.000000000 -0600
++++ b/auxprogs/bam2wig/Makefile 2021-04-07 15:20:59.573957969 -0500
+@@ -19,18 +19,8 @@
+ SOURCES = $(PROGRAM)
+ OBJECTS = $(SOURCES:.c=.o)
+
+-ifneq ($(wildcard ${TOOLDIR}/htslib/htslib/.),) # if TOOLDIR exists and contains htslib
+- INCLUDES=-I$(TOOLDIR)/htslib -I$(TOOLDIR)/htslib/htslib
+- HTSLIBS=-L$(TOOLDIR)/htslib -Wl,-rpath,$(TOOLDIR)/htslib -lhts -lcurses -lm -lz -lpthread -lcurl -lssl -lcrypto -lbz2 -llzma
+- HTSERRHINT="Check if the installed HTSlib is of version 1.10 or higher - see README.txt"
+-else
+- INCLUDES=-I/usr/include/htslib
+- HTSLIBS=-lhts -lz -lpthread
+- ifdef DEF_TOOLDIR
+- HTSERRHINT="There is no htslib folder in directory $(TOOLDIR) \n"
+- endif
+- HTSERRHINT:=$(HTSERRHINT)"Check if HTSlib is installed and of version 1.10 or higher - see README.txt"
+-endif
++INCLUDES=-I$(HTSLIBDIR)/include/htslib
++HTSLIBS=-L$(HTSLIBDIR)/lib -Wl,-rpath,$(HTSLIBDIR)/lib -lhts -lcurses -lm -lz -lpthread -lcurl -lssl -lcrypto -lbz2 -llzma
+
+ CFLAGS:=-Wall -O2 $(CFLAGS)
+ CC?=gcc
diff --git a/var/spack/repos/builtin/packages/augustus/package.py b/var/spack/repos/builtin/packages/augustus/package.py
index f105674261..aaac47b92c 100644
--- a/var/spack/repos/builtin/packages/augustus/package.py
+++ b/var/spack/repos/builtin/packages/augustus/package.py
@@ -1,37 +1,49 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+from spack import *
+
class Augustus(MakefilePackage):
"""AUGUSTUS is a program that predicts genes in eukaryotic
genomic sequences"""
- homepage = "http://bioinf.uni-greifswald.de/augustus/"
- url = "https://github.com/Gaius-Augustus/Augustus/archive/3.3.2.tar.gz"
- # Releases have moved to github
+ homepage = "https://bioinf.uni-greifswald.de/augustus/"
+ url = "https://github.com/Gaius-Augustus/Augustus/archive/v3.3.4.tar.gz"
+ # Releases have moved to github
+ version('3.4.0', sha256='2c06cf5953da5afdce1478fa10fcd3c280a3b050f1b2367bf3e731d7374d9bb8')
version('3.3.2', sha256='d09f972cfd88deb34b19b69878eb8af3bbbe4f1cde1434b69cedc2aa6247a0f2')
version('3.3.1-tag1', sha256='011379606f381ee21b9716f83e8a1a57b2aaa01aefeebd2748104efa08c47cab',
url='https://github.com/Gaius-Augustus/Augustus/archive/v3.3.1-tag1.tar.gz')
version('3.3', sha256='b5eb811a4c33a2cc3bbd16355e19d530eeac6d1ac923e59f48d7a79f396234ee',
- url='http://bioinf.uni-greifswald.de/augustus/binaries/old/augustus-3.3.tar.gz')
+ url='https://bioinf.uni-greifswald.de/augustus/binaries/old/augustus-3.3.tar.gz')
version('3.2.3', sha256='a1af128aefd228dea0c46d6f5234910fdf068a2b9133175ca8da3af639cb4514',
- url='http://bioinf.uni-greifswald.de/augustus/binaries/old/augustus-3.2.3.tar.gz')
+ url='https://bioinf.uni-greifswald.de/augustus/binaries/old/augustus-3.2.3.tar.gz')
depends_on('perl', type=('build', 'run'))
+ depends_on('python', when='@3.3.1:', type=('build', 'run'))
depends_on('bamtools')
depends_on('gsl')
depends_on('boost')
depends_on('zlib')
- depends_on('htslib', when='@3.3.1:')
- depends_on('bcftools', when='@3.3.1:')
- depends_on('samtools', when='@3.3.1:')
+ depends_on('htslib')
+ depends_on('bcftools')
+ depends_on('samtools')
depends_on('curl', when='@3.3.1:')
+ depends_on('sqlite', when='@3.4.0:')
+ depends_on('mysql-client', when='@3.4.0:')
+ depends_on('mysqlpp', when='@3.4.0:')
+ depends_on('lp-solve', when='@3.4.0:')
+ depends_on('suite-sparse', when='@3.4.0:')
+
+ # Trying to use filter_file here got too complicated so use a patch with a
+ # corresponding environment variable
+ patch('bam2wig_Makefile.patch', when='@3.4.0:')
def edit(self, spec, prefix):
# Set compile commands for each compiler and
@@ -44,30 +56,42 @@ class Augustus(MakefilePackage):
self.spec['boost'].prefix.include),
'src/subdir.mk', string=True)
- # Set compile commands to all makefiles.
+ # Makefiles to set spack compiler over gcc/g++
makefiles = [
'auxprogs/aln2wig/Makefile',
'auxprogs/bam2hints/Makefile',
'auxprogs/bam2wig/Makefile',
- 'auxprogs/checkTargetSortedness/Makefile',
'auxprogs/compileSpliceCands/Makefile',
'auxprogs/homGeneMapping/src/Makefile',
'auxprogs/joingenes/Makefile',
- 'src/Makefile'
+ 'src/Makefile',
]
+ if self.version < Version('3.4.0'):
+ makefiles.append('auxprogs/checkTargetSortedness/Makefile')
+
+ if self.version >= Version('3.4.0'):
+ makefiles.extend([
+ 'auxprogs/filterBam/src/Makefile',
+ 'src/unittests/Makefile',
+ ])
+
for makefile in makefiles:
filter_file('gcc', spack_cc, makefile, string=True)
filter_file('g++', spack_cxx, makefile, string=True)
+ bamtools = self.spec['bamtools'].prefix
+ bcftools = self.spec['bcftools'].prefix
+ htslib = self.spec['htslib'].prefix
+ samtools = self.spec['samtools'].prefix
+
with working_dir(join_path('auxprogs', 'filterBam', 'src')):
makefile = FileFilter('Makefile')
- makefile.filter('BAMTOOLS = .*', 'BAMTOOLS = %s' % self.spec[
- 'bamtools'].prefix)
+ makefile.filter('BAMTOOLS = .*', 'BAMTOOLS = {0}'.format(bamtools))
makefile.filter('INCLUDES = *',
'INCLUDES = -I$(BAMTOOLS)/include/bamtools ')
if 'bamtools@2.5:' in spec:
makefile.filter('LIBS = -lbamtools -lz',
- 'LIBS = $(BAMTOOLS)/lib64/'
+ 'LIBS = $(BAMTOOLS)/lib64'
'/libbamtools.a -lz')
if 'bamtools@:2.4' in spec:
makefile.filter('LIBS = -lbamtools -lz',
@@ -75,39 +99,57 @@ class Augustus(MakefilePackage):
'/libbamtools.a -lz')
with working_dir(join_path('auxprogs', 'bam2hints')):
makefile = FileFilter('Makefile')
- makefile.filter('# Variable definition',
- 'BAMTOOLS = %s' % self.spec['bamtools'].prefix)
- makefile.filter('INCLUDES = /usr/include/bamtools',
- 'INCLUDES = $(BAMTOOLS)/include/bamtools')
+ makefile.filter('/usr/include/bamtools',
+ '{0}/include/bamtools'.format(bamtools))
if 'bamtools@2.5:' in spec:
makefile.filter('LIBS = -lbamtools -lz',
- 'LIBS = $(BAMTOOLS)/lib64/'
- '/libbamtools.a -lz')
+ 'LIBS = {0}/lib64'
+ '/libbamtools.a -lz'.format(bamtools))
if 'bamtools@:2.4' in spec:
makefile.filter('LIBS = -lbamtools -lz',
- 'LIBS = $(BAMTOOLS)/lib/bamtools'
- '/libbamtools.a -lz')
- with working_dir(join_path('auxprogs', 'bam2wig')):
- makefile = FileFilter('Makefile')
- # point tools to spack installations
- if 'bcftools' in spec:
- bcftools = self.spec['bcftools'].prefix.include
+ 'LIBS = {0}/lib/bamtools'
+ '/libbamtools.a -lz'.format(bamtools))
+
+ if self.version < Version('3.4.0'):
+ with working_dir(join_path('auxprogs', 'bam2wig')):
+ makefile = FileFilter('Makefile')
+ # point tools to spack installations
makefile.filter('BCFTOOLS=.*$',
- 'BCFTOOLS=%s' % bcftools)
- if 'samtools' in spec:
- samtools = self.spec['samtools'].prefix.include
+ 'BCFTOOLS={0}/include'.format(bcftools))
makefile.filter('SAMTOOLS=.*$',
- 'SAMTOOLS=%s' % samtools)
- if 'htslib' in spec:
- htslib = self.spec['htslib'].prefix.include
+ 'SAMTOOLS={0}/include'.format(samtools))
makefile.filter('HTSLIB=.*$',
- 'HTSLIB=%s' % htslib)
+ 'HTSLIB={0}/include'.format(htslib))
+
+ # fix bad linking dirs
+ makefile.filter('$(SAMTOOLS)/libbam.a',
+ '$(SAMTOOLS)/../lib/libbam.a', string=True)
+ makefile.filter('$(HTSLIB)/libhts.a',
+ '$(HTSLIB)/../lib/libhts.a', string=True)
+ with working_dir(join_path('auxprogs', 'checkTargetSortedness')):
+ makefile = FileFilter('Makefile')
+ makefile.filter('SAMTOOLS.*=.*$',
+ 'SAMTOOLS={0}/include'.format(samtools))
+ makefile.filter('LIBS=-lbam',
+ 'LIBS=$(SAMTOOLS)/../lib/libbam.a',
+ string=True)
+ else:
+ mysql = self.spec['mysql-client'].prefix
+ mysqlpp = self.spec['mysqlpp'].prefix
+ lpsolve = self.spec['lp-solve'].prefix
- # fix bad linking dirs
- makefile.filter('$(SAMTOOLS)/libbam.a',
- '$(SAMTOOLS)/../lib/libbam.a', string=True)
- makefile.filter('$(HTSLIB)/libhts.a',
- '$(HTSLIB)/../lib/libhts.a', string=True)
+ with working_dir('src'):
+ makefile = FileFilter('Makefile')
+ makefile.filter(r'/usr/include/mysql\+\+',
+ '{0}/include/mysql++'.format(mysqlpp))
+ if '^mariadb-c-client' in spec:
+ makefile.filter('/usr/include/mysql',
+ '{0}/include/mariadb'.format(mysql))
+ else:
+ makefile.filter('/usr/include/mysql',
+ '{0}/include/mysql'.format(mysql))
+ makefile.filter('/usr/include/lpsolve',
+ '{0}/include/lpsolve'.format(lpsolve))
def install(self, spec, prefix):
install_tree('bin', join_path(self.spec.prefix, 'bin'))
@@ -117,12 +159,22 @@ class Augustus(MakefilePackage):
@run_after('install')
def filter_sbang(self):
with working_dir(self.prefix.scripts):
- pattern = '^#!.*/usr/bin/perl'
+ pattern = '^#!.*'
repl = '#!{0}'.format(self.spec['perl'].command.path)
- files = glob.iglob("*.pl")
+ files = glob.glob("*.pl")
for file in files:
filter_file(pattern, repl, *files, backup=False)
+ repl = '#!{0}'.format(self.spec['python'].command.path)
+ files = glob.glob("*.py")
+ for file in files:
+ filter_file(pattern, repl, *files, backup=False)
+
+ def setup_build_environment(self, env):
+ if self.version >= Version('3.4.0'):
+ htslib = self.spec['htslib'].prefix
+ env.set('HTSLIBDIR', htslib)
+
def setup_run_environment(self, env):
env.set('AUGUSTUS_CONFIG_PATH', join_path(
self.prefix, 'config'))
diff --git a/var/spack/repos/builtin/packages/authd/package.py b/var/spack/repos/builtin/packages/authd/package.py
index eff7361825..62b51fa279 100644
--- a/var/spack/repos/builtin/packages/authd/package.py
+++ b/var/spack/repos/builtin/packages/authd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/authselect/package.py b/var/spack/repos/builtin/packages/authselect/package.py
index 3cc20e583e..3ba4e491a7 100644
--- a/var/spack/repos/builtin/packages/authselect/package.py
+++ b/var/spack/repos/builtin/packages/authselect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/autoconf-archive/package.py b/var/spack/repos/builtin/packages/autoconf-archive/package.py
index 91e89d46e9..99cca48d30 100644
--- a/var/spack/repos/builtin/packages/autoconf-archive/package.py
+++ b/var/spack/repos/builtin/packages/autoconf-archive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/autoconf/package.py b/var/spack/repos/builtin/packages/autoconf/package.py
index 28be74890c..82ca9321fb 100644
--- a/var/spack/repos/builtin/packages/autoconf/package.py
+++ b/var/spack/repos/builtin/packages/autoconf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,30 @@ class Autoconf(AutotoolsPackage, GNUMirrorPackage):
homepage = 'https://www.gnu.org/software/autoconf/'
gnu_mirror_path = 'autoconf/autoconf-2.69.tar.gz'
- version('2.69', sha256='954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969')
+ version('2.71', sha256='431075ad0bf529ef13cb41e9042c542381103e80015686222b8a9d4abef42a1c')
+ version('2.70', sha256='f05f410fda74323ada4bdc4610db37f8dbd556602ba65bc843edb4d4d4a1b2b7')
+ version('2.69', sha256='954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969',
+ preferred=True)
version('2.62', sha256='83aa747e6443def0ebd1882509c53f5a2133f502ddefa21b3de141c433914bdd')
version('2.59', sha256='9cd05c73c5fcb1f5ccae53dd6cac36bb8cb9c7b3e97ffae5a7c05c72594c88d8')
- version('2.13', sha256='f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e')
+
+ # https://savannah.gnu.org/support/?110396
+ patch('https://git.savannah.gnu.org/cgit/autoconf.git/patch/?id=05972f49ee632cd98057a3caf82ebfb9574846da',
+ sha256='eaa3f69d927a853313a0b06e2117c51adab6377a2278549b05abc5df93643e16',
+ when='@2.70')
+ # Apply long-time released and already in-use upstream patches to fix test cases:
+ # tests/foreign.at (Libtool): Be tolerant of 'quote' replacing the older `quote'
+ patch('http://mirrors.mit.edu/gentoo-portage/sys-devel/autoconf/files/autoconf-2.69-fix-libtool-test.patch',
+ sha256='7793209b33013dc0f81208718c68440c5aae80e7a1c4b8d336e382525af791a7',
+ when='@2.69')
+ # Fix bin/autoscan.in for current perl releases (reported already in January 2013)
+ patch('http://mirrors.mit.edu/gentoo-portage/sys-devel/autoconf/files/autoconf-2.69-perl-5.26.patch',
+ sha256='35c449281546376449766f92d49fc121ca50e330e60fefcfc9be2af3253082c2',
+ when='@2.62:2.69 ^perl@5.17:')
+ # Fix bin/autoheader.in for current perl relases not having "." in @INC:
+ patch('http://mirrors.mit.edu/gentoo-portage/sys-devel/autoconf/files/autoconf-2.69-perl-5.26-2.patch',
+ sha256='a49dd5bac3b62daa0ff688ab4d508d71dbd2f4f8d7e2a02321926346161bf3ee',
+ when='@2.62:2.69 ^perl@5.17:')
# Note: m4 is not a pure build-time dependency of autoconf. m4 is
# needed when autoconf runs, not only when autoconf is built.
@@ -24,6 +44,8 @@ class Autoconf(AutotoolsPackage, GNUMirrorPackage):
build_directory = 'spack-build'
+ tags = ['build-tools']
+
executables = [
'^autoconf$', '^autoheader$', '^autom4te$', '^autoreconf$',
'^autoscan$', '^autoupdate$', '^ifnames$'
@@ -38,9 +60,22 @@ class Autoconf(AutotoolsPackage, GNUMirrorPackage):
def patch(self):
# The full perl shebang might be too long; we have to fix this here
# because autom4te is called during the build
- filter_file('^#! @PERL@ -w',
- '#! /usr/bin/env perl',
- 'bin/autom4te.in')
+ patched_file = 'bin/autom4te.in'
+
+ # We save and restore the modification timestamp of the file to prevent
+ # regeneration of the respective man page:
+ with keep_modification_time(patched_file):
+ filter_file('^#! @PERL@ -w',
+ '#! /usr/bin/env perl',
+ patched_file)
+ if self.version == Version('2.62'):
+ # skip help2man for patched autoheader.in and autoscan.in
+ touch('man/autoheader.1')
+ touch('man/autoscan.1')
+
+ # make installcheck would execute the testsuite a 2nd time, skip it
+ def installcheck(self):
+ pass
@run_after('install')
def filter_sbang(self):
diff --git a/var/spack/repos/builtin/packages/autodock-gpu/package.py b/var/spack/repos/builtin/packages/autodock-gpu/package.py
index 9766e45e07..5d339c1a1d 100644
--- a/var/spack/repos/builtin/packages/autodock-gpu/package.py
+++ b/var/spack/repos/builtin/packages/autodock-gpu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/autodock-vina/package.py b/var/spack/repos/builtin/packages/autodock-vina/package.py
index 50330a433c..77f06b2f10 100644
--- a/var/spack/repos/builtin/packages/autodock-vina/package.py
+++ b/var/spack/repos/builtin/packages/autodock-vina/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class AutodockVina(MakefilePackage):
"""AutoDock Vina is an open-source program for doing molecular docking"""
diff --git a/var/spack/repos/builtin/packages/autofact/package.py b/var/spack/repos/builtin/packages/autofact/package.py
index e7650fd3ab..b6947ed0f3 100644
--- a/var/spack/repos/builtin/packages/autofact/package.py
+++ b/var/spack/repos/builtin/packages/autofact/package.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+from spack import *
+
class Autofact(Package):
"""An Automatic Functional Annotation and Classification Tool"""
- homepage = "http://megasun.bch.umontreal.ca/Software/AutoFACT.htm"
- url = "http://megasun.bch.umontreal.ca/Software/AutoFACT_v3_4.tar"
+ homepage = "https://megasun.bch.umontreal.ca/Software/AutoFACT.htm"
+ url = "https://megasun.bch.umontreal.ca/Software/AutoFACT_v3_4.tar"
version('3_4', sha256='1465d263b19adb42f01f6e636ac40ef1c2e3dbd63461f977b89da9493fe9c6f4')
diff --git a/var/spack/repos/builtin/packages/autogen/package.py b/var/spack/repos/builtin/packages/autogen/package.py
index e60d35ba1b..9253a1a326 100644
--- a/var/spack/repos/builtin/packages/autogen/package.py
+++ b/var/spack/repos/builtin/packages/autogen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/automaded/package.py b/var/spack/repos/builtin/packages/automaded/package.py
index fe87369020..c83b97f892 100644
--- a/var/spack/repos/builtin/packages/automaded/package.py
+++ b/var/spack/repos/builtin/packages/automaded/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/automake/package.py b/var/spack/repos/builtin/packages/automake/package.py
index 7589712696..4a40aef8db 100644
--- a/var/spack/repos/builtin/packages/automake/package.py
+++ b/var/spack/repos/builtin/packages/automake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,10 @@ import re
class Automake(AutotoolsPackage, GNUMirrorPackage):
"""Automake -- make file builder part of autotools"""
- homepage = 'http://www.gnu.org/software/automake/'
+ homepage = 'https://www.gnu.org/software/automake/'
gnu_mirror_path = 'automake/automake-1.15.tar.gz'
+ version('1.16.3', sha256='ce010788b51f64511a1e9bb2a1ec626037c6d0e7ede32c1c103611b9d3cba65f')
version('1.16.2', sha256='b2f361094b410b4acbf4efba7337bdb786335ca09eb2518635a09fb7319ca5c1')
version('1.16.1', sha256='608a97523f97db32f1f5d5615c98ca69326ced2054c9f82e65bade7fc4c9dea8')
version('1.15.1', sha256='988e32527abe052307d21c8ca000aa238b914df363a617e38f4fb89f5abf6260')
@@ -24,6 +25,8 @@ class Automake(AutotoolsPackage, GNUMirrorPackage):
build_directory = 'spack-build'
+ tags = ['build-tools']
+
executables = ['^automake$']
@classmethod
@@ -38,8 +41,13 @@ class Automake(AutotoolsPackage, GNUMirrorPackage):
if '@:1.15.1' in self.spec:
files_to_be_patched_fmt = 't/wrap/{0}.in'
+ if '@1.16.3:' in self.spec:
+ shebang_string = '^#!@PERL@'
+ else:
+ shebang_string = '^#!@PERL@ -w'
+
for file in ('aclocal', 'automake'):
- filter_file('^#!@PERL@ -w',
+ filter_file(shebang_string,
'#!/usr/bin/env perl',
files_to_be_patched_fmt.format(file))
diff --git a/var/spack/repos/builtin/packages/avizo/package.py b/var/spack/repos/builtin/packages/avizo/package.py
index c8f769b9b2..afbae73ce8 100644
--- a/var/spack/repos/builtin/packages/avizo/package.py
+++ b/var/spack/repos/builtin/packages/avizo/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 tarfile
+from spack import *
+
class Avizo(Package):
"""Avizo is a 3D analysis software for scientific and industrial data.
@@ -18,6 +19,8 @@ class Avizo(Package):
homepage = "https://www.thermofisher.com/sa/en/home/industrial/electron-microscopy/electron-microscopy-instruments-workflow-solutions/3d-visualization-analysis-software.html"
+ manual_download = True
+
version('2020.1',
sha256='9321aaa276567eebf116e268353c33a4c930d768d22793f921338e1d8cefe991',
url="file://{0}/Avizo-20201-Linux64-gcc48.bin".format(os.getcwd()),
diff --git a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py
index 999c6aae25..ac81dbb87e 100644
--- a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py
+++ b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py
@@ -1,28 +1,32 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class AwsParallelcluster(PythonPackage):
"""AWS ParallelCluster is an AWS supported Open Source cluster management
tool to deploy and manage HPC clusters in the AWS cloud."""
homepage = "https://github.com/aws/aws-parallelcluster"
- url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.9.1.tar.gz"
+ pypi = "aws-parallelcluster/aws-parallelcluster-2.11.2.tar.gz"
maintainers = [
- 'sean-smith', 'demartinofra', 'enrico-usai', 'lukeseawalker', 'rexcsn',
- 'ddeidda', 'tilne'
- ]
- import_modules = [
- 'pcluster', 'awsbatch', 'pcluster.dcv', 'pcluster.configure',
- 'pcluster.config', 'pcluster.networking'
+ 'demartinofra', 'enrico-usai', 'lukeseawalker', 'tilne'
]
+ version('2.11.2', sha256='60d96a5ea4dca4816ceffc4546549743abd1f6207c62f016c9c348adc64b2ec0')
+ version('2.11.1', sha256='dc102eeb0db30fb183c1ee076e340223095fde7d9079004fde401b7ad658242d')
+ version('2.11.0', sha256='ec2f54f752a355649ca065a41fa4ac19697f570a136e10e0a6548f5abad3ea8a')
+ version('2.10.4', sha256='487dbf3e79f3e9b6750b1075cef4eb24956f7b310e5bd8de662b98d87491736c')
+ version('2.10.3', sha256='02016358932375c1abb566c6b7f1c891fa617fc4a4ec4ce9969f87758d4039c7')
+ version('2.10.2', sha256='95853535b82e8087c6635a946556ed886e68d3a77d67a375830c57d80f2bbd6e')
+ version('2.10.1', sha256='b3d2ea836c08c9be1667d55a8999aae412d7c2b20f958ca5842e8fa440eb24e0')
+ version('2.10.0', sha256='a7a27871b4f54cb913b0c1233e675131e9b2099549af0840d32c36b7e91b104b')
version('2.9.1', sha256='12dc22286cd447a16931f1f8619bdd47d4543fd0de7905d52b6c6f83ff9db8a3')
version('2.9.0', sha256='e98a8426bc46aca0860d9a2be89bbc4a90aab3ed2f60ca6c385b595fbbe79a78')
version('2.8.1', sha256='c183dc3f053bc2445db724e561cea7f633dd5e7d467a7b3f9b2f2f703f7d5d49')
@@ -33,29 +37,34 @@ class AwsParallelcluster(PythonPackage):
version('2.5.1', sha256='4fd6e14583f8cf81f9e4aa1d6188e3708d3d14e6ae252de0a94caaf58be76303')
version('2.5.0', sha256='3b0209342ea0d9d8cc95505456103ad87c2d4e35771aa838765918194efd0ad3')
- # common deps
- depends_on('python@2.7:', type=('build', 'run'))
- depends_on('py-future@0.16.0:0.18.2', type=('build', 'run'))
+ depends_on('python@3.6:', when='@2.11:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.4:', when='@:2.10', type=('build', 'run'))
+
+ depends_on('py-future@0.16.0:0.18.2', when='@:2.10', type=('build', 'run'))
+
depends_on('py-ipaddress@1.0.22:', type=('build', 'run'))
+
depends_on('py-configparser@3.5.0:3.8.1', when='^python@:2', type=('build', 'run'))
- # 2.9.x changes
+ depends_on('py-tabulate@0.8.2:0.8.9', when='@2.11:', type=('build', 'run'))
depends_on('py-tabulate@0.8.2:0.8.3', when='@:2.8', type=('build', 'run'))
depends_on('py-tabulate@0.8.5', when='@2.9: ^python@3.0:3.4', type=('build', 'run'))
depends_on('py-tabulate@0.8.2:0.8.7', when='@2.9: ^python@:2,3.5:', type=('build', 'run'))
+
depends_on('py-pyyaml@5.2', when='@2.6:2.8 ^python@3.0:3.4', type=('build', 'run'))
depends_on('py-pyyaml@5.3.1:', when='@2.9: ^python@:2,3.5:', type=('build', 'run'))
+
depends_on('py-jinja2@2.10.1', when='@2.9: ^python@3.0:3.4', type=('build', 'run'))
depends_on('py-jinja2@2.11.0:', when='@2.9: ^python@:2,3.5:', type=('build', 'run'))
- # 2.8.x changes
- depends_on('py-boto3@1.14.3:', when='@2.8:', type=('build', 'run'))
+ depends_on('py-boto3@1.16.14:', when='@2.10:', type=('build', 'run'))
+ depends_on('py-boto3@1.14.3:', when='@2.8:2.9', type=('build', 'run'))
depends_on('py-boto3@1.10.15:', when='@:2.7', type=('build', 'run'))
- # 2.6.x changes
depends_on('py-setuptools', when='@2.6:', type=('build', 'run'))
- depends_on('py-enum34@1.1.6:', when='@2.6: ^python@:3.3', type=('build', 'run'))
- depends_on('py-enum34@1.1.6:', when='@:2.5', type=('build', 'run'))
+
+ depends_on('py-enum34@1.1.6:', when='^python@:3.3', type=('build', 'run'))
+
depends_on('py-pyyaml@5.1.2', when='@2.6: ^python@:2,3.5:', type=('build', 'run'))
depends_on('py-pyyaml@5.1.2:', when='@:2.5', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/awscli/package.py b/var/spack/repos/builtin/packages/awscli/package.py
index fcdf4490f5..3463f92147 100644
--- a/var/spack/repos/builtin/packages/awscli/package.py
+++ b/var/spack/repos/builtin/packages/awscli/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,7 @@ class Awscli(PythonPackage):
"""This package provides a unified command line interface to
Amazon Web Services"""
- homepage = "https://pypi.org/project/awscli/"
- url = "https://pypi.io/packages/source/a/awscli/awscli-1.16.308.tar.gz"
+ pypi = "awscli/awscli-1.16.308.tar.gz"
version('1.16.308', sha256='3632fb1db2538128509a7b5e89f2a2c4ea3426bec139944247bddc4d79bf7603')
version('1.16.179', sha256='6a87114d1325358d000abe22b2103baae7b91f053ff245b9fde33cb0affb5e4f')
diff --git a/var/spack/repos/builtin/packages/axel/package.py b/var/spack/repos/builtin/packages/axel/package.py
index d802704e0d..0c68680a2d 100644
--- a/var/spack/repos/builtin/packages/axel/package.py
+++ b/var/spack/repos/builtin/packages/axel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/axl/package.py b/var/spack/repos/builtin/packages/axl/package.py
index 73eb5acdcd..39cf284e5d 100644
--- a/var/spack/repos/builtin/packages/axl/package.py
+++ b/var/spack/repos/builtin/packages/axl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ def async_api_validator(pkg_name, variant_name, values):
if 'none' in values and len(values) != 1:
raise SpackError("The value 'none' is not usable"
" with other async_api values.")
- if 'ibm_bbapi' in values and 'cray_dw' in values:
- raise SpackError("The 'ibm_bbapi' and 'cray_dw' asynchronous"
+ if 'intel_cppr' in values and 'cray_dw' in values:
+ raise SpackError("The 'intel_cppr' and 'cray_dw' asynchronous"
" APIs are incompatible.")
@@ -20,24 +20,25 @@ class Axl(CMakePackage):
"""Asynchronous transfer library"""
homepage = "https://github.com/ecp-veloc/AXL"
- url = "https://github.com/ecp-veloc/AXL/archive/v0.1.1.zip"
+ url = "https://github.com/ecp-veloc/AXL/archive/v0.4.0.tar.gz"
git = "https://github.com/ecp-veloc/axl.git"
tags = ['ecp']
- version('master', branch='master')
- version('0.3.0', sha256='3f5efff87be700a5792a0ee9a7aeae45c640e2936623b024e8bc1056f7952a46')
- version('0.2.0', sha256='a0babe3576da30919f89df2f83c76bd01d06345919f2e54d4dddcd6f73faedcc')
- version('0.1.1', sha256='ebbf231bb542a6c91efb79fce05d4c8a346d5506d88ae1899fb670be52e81933')
+ version('main', branch='main')
+ version('0.4.0', sha256='0530142629d77406a00643be32492760c2cf12d1b56c6b6416791c8ff5298db2')
+ version('0.3.0', sha256='737d616b669109805f7aed1858baac36c97bf0016e1115b5c56ded05d792613e')
+ version('0.2.0', sha256='d04a445f102b438fe96a1ff3429790b0c035f0d23c2797bb5601a00b582a71fc', deprecated=True)
+ version('0.1.1', sha256='36edac007938fe47d979679414c5c27938944d32536e2e149f642916c5c08eaa', deprecated=True)
variant('async_api', default='daemon',
description="Set of async transfer APIs to enable",
- values=['cray_dw', 'ibm_bbapi', 'daemon', 'none'], multi=True,
+ values=['cray_dw', 'intel_cppr', 'daemon', 'none'], multi=True,
validator=async_api_validator)
- # not-yet implemented functionality
- conflicts('async_api=cray_dw', when='@0.1.0')
- conflicts('async_api=ibm_bbapi', when='@0.1.0')
+ variant('bbapi_fallback', default='False',
+ description='Using BBAPI, if source or destination don\'t support \
+ file extents then fallback to pthreads')
depends_on('kvtree')
@@ -47,12 +48,19 @@ class Axl(CMakePackage):
args.append("-DAXL_LINK_STATIC=ON")
args.append("-DWITH_KVTREE_PREFIX=%s" % self.spec['kvtree'].prefix)
- apis = list(self.spec.variants['async_api'].value)
- if 'daemon' in apis:
- args.append('-DAXL_ASYNC_DAEMON=ON')
- apis.remove('daemon')
+ if self.spec.satisfies('@:0.3.0'):
+ apis = list(self.spec.variants['async_api'].value)
+ if 'daemon' in apis:
+ args.append('-DAXL_ASYNC_DAEMON=ON')
+ apis.remove('daemon')
- for api in apis:
- args.append('-DAXL_ASYNC_API={0}'.format(api))
+ for api in apis:
+ args.append('-DAXL_ASYNC_API={0}'.format(api.upper()))
+
+ if self.spec.satisfies('@0.4.0:'):
+ if '+bbapi_fallback' in self.spec:
+ args.append('-DENABLE_BBAPI_FALLBACK=ON')
+ else:
+ args.append('-DENABLE_BBAPI_FALLBACK=OFF')
return args
diff --git a/var/spack/repos/builtin/packages/axom/package.py b/var/spack/repos/builtin/packages/axom/package.py
index 3a0fa3a736..b97a5985d2 100644
--- a/var/spack/repos/builtin/packages/axom/package.py
+++ b/var/spack/repos/builtin/packages/axom/package.py
@@ -1,27 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
from os.path import join as pjoin
-import llnl.util.tty as tty
-
-
-def cmake_cache_entry(name, value, comment=""):
- """Generate a string for a cmake cache variable"""
- return 'set({0} "{1}" CACHE PATH "{2}")\n\n'.format(name, value, comment)
-
-
-def cmake_cache_option(name, boolean_value, comment=""):
- """Generate a string for a cmake configuration option"""
-
- value = "ON" if boolean_value else "OFF"
- return 'set({0} {1} CACHE BOOL "{2}")\n\n'.format(name, value, comment)
+from spack import *
def get_spec_path(spec, package_name, path_replacements={}, use_bin=False):
@@ -42,7 +28,7 @@ def get_spec_path(spec, package_name, path_replacements={}, use_bin=False):
return path
-class Axom(CMakePackage, CudaPackage):
+class Axom(CachedCMakePackage, CudaPackage):
"""Axom provides a robust, flexible software infrastructure for the development
of multi-physics applications and computational tools."""
@@ -53,6 +39,7 @@ class Axom(CMakePackage, CudaPackage):
version('main', branch='main', submodules=True)
version('develop', branch='develop', submodules=True)
+ version('0.5.0', tag='v0.5.0', submodules=True)
version('0.4.0', tag='v0.4.0', submodules=True)
version('0.3.3', tag='v0.3.3', submodules=True)
version('0.3.2', tag='v0.3.2', submodules=True)
@@ -60,7 +47,6 @@ class Axom(CMakePackage, CudaPackage):
version('0.3.0', tag='v0.3.0', submodules=True)
version('0.2.9', tag='v0.2.9', submodules=True)
- phases = ["hostconfig", "cmake", "build", "install"]
root_cmakelists_dir = 'src'
# -----------------------------------------------------------------------
@@ -71,7 +57,10 @@ class Axom(CMakePackage, CudaPackage):
variant('debug', default=False,
description='Build debug instead of optimized version')
- variant('cpp14', default=True, description="Build with C++14 support")
+ variant('examples', default=True, description='Build examples')
+ variant('tools', default=True, description='Build tools')
+
+ variant('cpp14', default=True, description="Build with C++14 support")
variant('fortran', default=True, description="Build with Fortran support")
@@ -105,11 +94,13 @@ class Axom(CMakePackage, CudaPackage):
depends_on("conduit~hdf5", when="~hdf5")
# HDF5 needs to be the same as Conduit's
- depends_on("hdf5@1.8.19:1.8.999~cxx~shared~fortran", when="+hdf5")
+ depends_on("hdf5@1.8.19:1.8.999~cxx~fortran", when="+hdf5")
depends_on("lua", when="+lua")
depends_on("scr", when="+scr")
+ depends_on("kvtree@master", when="+scr")
+ depends_on("dtcmp", when="+scr")
depends_on("raja~openmp", when="+raja~openmp")
depends_on("raja+openmp", when="+raja+openmp")
@@ -117,7 +108,7 @@ class Axom(CMakePackage, CudaPackage):
depends_on("umpire~openmp", when="+umpire~openmp")
depends_on("umpire+openmp", when="+umpire+openmp")
- depends_on("umpire+cuda+deviceconst", when="+umpire+cuda")
+ depends_on("umpire+cuda", when="+umpire+cuda")
for sm_ in CudaPackage.cuda_arch_values:
depends_on('raja cuda_arch={0}'.format(sm_),
@@ -139,10 +130,18 @@ class Axom(CMakePackage, CudaPackage):
depends_on("py-shroud", when="+devtools")
depends_on("llvm+clang@10.0.0", when="+devtools", type='build')
+ # Conduit's cmake config files moved and < 0.4.0 can't find it
+ conflicts("^conduit@0.7.2:", when="@:0.4.0")
+
+ # Sidre requires conduit_blueprint_mpi.hpp
+ conflicts("^conduit@:0.6.0", when="@0.5.0:")
+
def flag_handler(self, name, flags):
- if name in ('cflags', 'cxxflags', 'fflags'):
- # the package manages these flags in another way
- return (None, None, None)
+ if self.spec.satisfies('%cce') and name == 'fflags':
+ flags.append('-ef')
+
+ if name in ('cflags', 'cxxflags', 'cppflags', 'fflags'):
+ return (None, None, None) # handled in the cmake cache
return (flags, None, None)
def _get_sys_type(self, spec):
@@ -152,108 +151,168 @@ class Axom(CMakePackage, CudaPackage):
sys_type = env["SYS_TYPE"]
return sys_type
- def _get_host_config_path(self, spec):
+ @property
+ def cache_name(self):
hostname = socket.gethostname()
if "SYS_TYPE" in env:
# Are we on a LLNL system then strip node number
hostname = hostname.rstrip('1234567890')
- filename = "{0}-{1}-{2}.cmake".format(hostname,
- self._get_sys_type(spec),
- spec.compiler)
- dest_dir = self.stage.source_path
- fullpath = os.path.abspath(pjoin(dest_dir, filename))
- return fullpath
-
- def hostconfig(self, spec, prefix):
- """
- This method creates a 'host-config' file that specifies
- all of the options used to configure and build Axom.
- """
-
- c_compiler = env["SPACK_CC"]
- cpp_compiler = env["SPACK_CXX"]
- f_compiler = None
-
- # see if we should enable fortran support
- if "SPACK_FC" in env.keys():
- # even if this is set, it may not exist
- # do one more sanity check
- if os.path.isfile(env["SPACK_FC"]):
- f_compiler = env["SPACK_FC"]
-
- # cmake
- if "+cmake" in spec:
- cmake_exe = pjoin(spec['cmake'].prefix.bin, "cmake")
- else:
- cmake_exe = which("cmake")
- if cmake_exe is None:
- # error could not find cmake!
- crash()
- cmake_exe = cmake_exe.command
- cmake_exe = os.path.realpath(cmake_exe)
-
- host_config_path = self._get_host_config_path(spec)
- cfg = open(host_config_path, "w")
- cfg.write("#------------------{0}\n".format("-" * 60))
- cfg.write("# !!!! This is a generated file, edit at own risk !!!!\n")
- cfg.write("#------------------{0}\n".format("-" * 60))
- cfg.write("# SYS_TYPE: {0}\n".format(self._get_sys_type(spec)))
- cfg.write("# Compiler Spec: {0}\n".format(spec.compiler))
- cfg.write("#------------------{0}\n".format("-" * 60))
- # show path to cmake for reference and to be used by config-build.py
- cfg.write("# CMake executable path: {0}\n".format(cmake_exe))
- cfg.write("#------------------{0}\n\n".format("-" * 60))
-
- # compiler settings
- cfg.write("#------------------{0}\n".format("-" * 60))
- cfg.write("# Compilers\n")
- cfg.write("#------------------{0}\n\n".format("-" * 60))
-
- cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler))
- cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
-
- if "+fortran" in spec or f_compiler is not None:
- cfg.write(cmake_cache_option("ENABLE_FORTRAN", True))
- cfg.write(cmake_cache_entry("CMAKE_Fortran_COMPILER", f_compiler))
+ return "{0}-{1}-{2}@{3}.cmake".format(
+ hostname,
+ self._get_sys_type(self.spec),
+ self.spec.compiler.name,
+ self.spec.compiler.version
+ )
+
+ def initconfig_compiler_entries(self):
+ spec = self.spec
+ entries = super(Axom, self).initconfig_compiler_entries()
+
+ if "+fortran" in spec or self.compiler.fc is not None:
+ entries.append(cmake_cache_option("ENABLE_FORTRAN", True))
else:
- cfg.write(cmake_cache_option("ENABLE_FORTRAN", False))
-
- # use global spack compiler flags
- cppflags = ' '.join(spec.compiler_flags['cppflags'])
- if cppflags:
- # avoid always ending up with ' ' with no flags defined
- cppflags += ' '
- cflags = cppflags + ' '.join(spec.compiler_flags['cflags'])
- if cflags:
- cfg.write(cmake_cache_entry("CMAKE_C_FLAGS", cflags))
- cxxflags = cppflags + ' '.join(spec.compiler_flags['cxxflags'])
- if cxxflags:
- cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags))
- fflags = ' '.join(spec.compiler_flags['fflags'])
- if fflags:
- cfg.write(cmake_cache_entry("CMAKE_Fortran_FLAGS", fflags))
-
- if ((f_compiler is not None)
- and ("gfortran" in f_compiler)
- and ("clang" in cpp_compiler)):
+ entries.append(cmake_cache_option("ENABLE_FORTRAN", False))
+
+ if ((self.compiler.fc is not None)
+ and ("gfortran" in self.compiler.fc)
+ and ("clang" in self.compiler.cxx)):
libdir = pjoin(os.path.dirname(
- os.path.dirname(cpp_compiler)), "lib")
+ os.path.dirname(self.compiler.cxx)), "lib")
flags = ""
for _libpath in [libdir, libdir + "64"]:
if os.path.exists(_libpath):
flags += " -Wl,-rpath,{0}".format(_libpath)
description = ("Adds a missing libstdc++ rpath")
if flags:
- cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags,
- description))
+ entries.append(cmake_cache_string("BLT_EXE_LINKER_FLAGS", flags,
+ description))
if "+cpp14" in spec:
- cfg.write(cmake_cache_entry("BLT_CXX_STD", "c++14", ""))
+ entries.append(cmake_cache_string("BLT_CXX_STD", "c++14", ""))
+
+ return entries
+
+ def initconfig_hardware_entries(self):
+ spec = self.spec
+ entries = super(Axom, self).initconfig_hardware_entries()
+
+ if "+cuda" in spec:
+ entries.append(cmake_cache_option("ENABLE_CUDA", True))
+ entries.append(cmake_cache_option("CUDA_SEPARABLE_COMPILATION",
+ True))
+
+ entries.append(
+ cmake_cache_option("AXOM_ENABLE_ANNOTATIONS", True))
+
+ # CUDA_FLAGS
+ cudaflags = "-restrict --expt-extended-lambda "
+
+ if not spec.satisfies('cuda_arch=none'):
+ cuda_arch = spec.variants['cuda_arch'].value[0]
+ entries.append(cmake_cache_string(
+ "CMAKE_CUDA_ARCHITECTURES",
+ cuda_arch))
+ cudaflags += '-arch sm_${CMAKE_CUDA_ARCHITECTURES} '
+ else:
+ entries.append(
+ "# cuda_arch could not be determined\n\n")
+
+ if "+cpp14" in spec:
+ cudaflags += " -std=c++14"
+ else:
+ cudaflags += " -std=c++11"
+ entries.append(
+ cmake_cache_string("CMAKE_CUDA_FLAGS", cudaflags))
+
+ entries.append(
+ "# nvcc does not like gtest's 'pthreads' flag\n")
+ entries.append(
+ cmake_cache_option("gtest_disable_pthreads", True))
+
+ entries.append("#------------------{0}".format("-" * 30))
+ entries.append("# Hardware Specifics")
+ entries.append("#------------------{0}\n".format("-" * 30))
+
+ # OpenMP
+ entries.append(cmake_cache_option("ENABLE_OPENMP",
+ spec.satisfies('+openmp')))
+
+ # Enable death tests
+ entries.append(cmake_cache_option(
+ "ENABLE_GTEST_DEATH_TESTS",
+ not spec.satisfies('+cuda target=ppc64le:')
+ ))
+
+ if (self.compiler.fc is not None) and ("xlf" in self.compiler.fc):
+ # Grab lib directory for the current fortran compiler
+ libdir = pjoin(os.path.dirname(
+ os.path.dirname(self.compiler.fc)),
+ "lib")
+ description = ("Adds a missing rpath for libraries "
+ "associated with the fortran compiler")
+
+ linker_flags = "${BLT_EXE_LINKER_FLAGS} -Wl,-rpath," + libdir
+
+ entries.append(cmake_cache_string("BLT_EXE_LINKER_FLAGS",
+ linker_flags, description))
+
+ if "+shared" in spec:
+ linker_flags = "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath," \
+ + libdir
+ entries.append(cmake_cache_string(
+ "CMAKE_SHARED_LINKER_FLAGS",
+ linker_flags, description))
+
+ description = ("Converts C-style comments to Fortran style "
+ "in preprocessed files")
+ entries.append(cmake_cache_string(
+ "BLT_FORTRAN_FLAGS",
+ "-WF,-C! -qxlf2003=polymorphic",
+ description))
+
+ if spec.satisfies('target=ppc64le:'):
+ # Fix for working around CMake adding implicit link directories
+ # returned by the BlueOS compilers to link executables with
+ # non-system default stdlib
+ _roots = ["/usr/tce/packages/gcc/gcc-4.9.3",
+ "/usr/tce/packages/gcc/gcc-4.9.3/gnu"]
+ _subdirs = ["lib64",
+ "lib64/gcc/powerpc64le-unknown-linux-gnu/4.9.3"]
+ _existing_paths = []
+ for root in _roots:
+ for subdir in _subdirs:
+ _curr_path = pjoin(root, subdir)
+ if os.path.exists(_curr_path):
+ _existing_paths.append(_curr_path)
+ if _existing_paths:
+ entries.append(cmake_cache_string(
+ "BLT_CMAKE_IMPLICIT_LINK_DIRECTORIES_EXCLUDE",
+ ";".join(_existing_paths)))
+
+ return entries
+
+ def initconfig_mpi_entries(self):
+ spec = self.spec
+ entries = super(Axom, self).initconfig_mpi_entries()
+
+ if "+mpi" in spec:
+ entries.append(cmake_cache_option("ENABLE_MPI", True))
+ if spec['mpi'].name == 'spectrum-mpi':
+ entries.append(cmake_cache_string("BLT_MPI_COMMAND_APPEND",
+ "mpibind"))
+ else:
+ entries.append(cmake_cache_option("ENABLE_MPI", False))
+
+ return entries
+
+ def initconfig_package_entries(self):
+ spec = self.spec
+ entries = []
# TPL locations
- cfg.write("#------------------{0}\n".format("-" * 60))
- cfg.write("# TPLs\n")
- cfg.write("#------------------{0}\n\n".format("-" * 60))
+ entries.append("#------------------{0}".format("-" * 60))
+ entries.append("# TPLs")
+ entries.append("#------------------{0}\n".format("-" * 60))
# Try to find the common prefix of the TPL directory, including the
# compiler. If found, we will use this in the TPL paths
@@ -264,113 +323,40 @@ class Axom(CMakePackage, CudaPackage):
if len(prefix_paths) == 2:
tpl_root = os.path.realpath(pjoin(prefix_paths[0], compiler_str))
path_replacements[tpl_root] = "${TPL_ROOT}"
- cfg.write("# Root directory for generated TPLs\n")
- cfg.write(cmake_cache_entry("TPL_ROOT", tpl_root))
+ entries.append("# Root directory for generated TPLs\n")
+ entries.append(cmake_cache_path("TPL_ROOT", tpl_root))
conduit_dir = get_spec_path(spec, "conduit", path_replacements)
- cfg.write(cmake_cache_entry("CONDUIT_DIR", conduit_dir))
+ entries.append(cmake_cache_path("CONDUIT_DIR", conduit_dir))
# optional tpls
-
- if "+mfem" in spec:
- mfem_dir = get_spec_path(spec, "mfem", path_replacements)
- cfg.write(cmake_cache_entry("MFEM_DIR", mfem_dir))
- else:
- cfg.write("# MFEM not built\n\n")
-
- if "+hdf5" in spec:
- hdf5_dir = get_spec_path(spec, "hdf5", path_replacements)
- cfg.write(cmake_cache_entry("HDF5_DIR", hdf5_dir))
- else:
- cfg.write("# HDF5 not built\n\n")
-
- if "+lua" in spec:
- lua_dir = get_spec_path(spec, "lua", path_replacements)
- cfg.write(cmake_cache_entry("LUA_DIR", lua_dir))
- else:
- cfg.write("# Lua not built\n\n")
-
- if "+scr" in spec:
- scr_dir = get_spec_path(spec, "scr", path_replacements)
- cfg.write(cmake_cache_entry("SCR_DIR", scr_dir))
- else:
- cfg.write("# SCR not built\n\n")
-
- if "+raja" in spec:
- raja_dir = get_spec_path(spec, "raja", path_replacements)
- cfg.write(cmake_cache_entry("RAJA_DIR", raja_dir))
- else:
- cfg.write("# RAJA not built\n\n")
-
- if "+umpire" in spec:
- umpire_dir = get_spec_path(spec, "umpire", path_replacements)
- cfg.write(cmake_cache_entry("UMPIRE_DIR", umpire_dir))
- else:
- cfg.write("# Umpire not built\n\n")
-
- cfg.write("#------------------{0}\n".format("-" * 60))
- cfg.write("# MPI\n")
- cfg.write("#------------------{0}\n\n".format("-" * 60))
-
- if "+mpi" in spec:
- cfg.write(cmake_cache_option("ENABLE_MPI", True))
- cfg.write(cmake_cache_entry("MPI_C_COMPILER", spec['mpi'].mpicc))
- cfg.write(cmake_cache_entry("MPI_CXX_COMPILER",
- spec['mpi'].mpicxx))
- if "+fortran" in spec or f_compiler is not None:
- cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER",
- spec['mpi'].mpifc))
-
- # Check for slurm
- using_slurm = False
- slurm_checks = ['+slurm',
- 'schedulers=slurm',
- 'process_managers=slurm']
- if any(spec['mpi'].satisfies(variant) for variant in slurm_checks):
- using_slurm = True
-
- # Determine MPIEXEC
- if using_slurm:
- if spec['mpi'].external:
- mpiexec = '/usr/bin/srun'
- else:
- mpiexec = os.path.join(spec['slurm'].prefix.bin, 'srun')
- else:
- mpiexec = os.path.join(spec['mpi'].prefix.bin, 'mpirun')
- if not os.path.exists(mpiexec):
- mpiexec = os.path.join(spec['mpi'].prefix.bin, 'mpiexec')
-
- if not os.path.exists(mpiexec):
- msg = "Unable to determine MPIEXEC, Axom tests may fail"
- cfg.write("# {0}\n\n".format(msg))
- tty.msg(msg)
+ for dep in ('mfem', 'hdf5', 'lua', 'raja', 'umpire'):
+ if '+%s' % dep in spec:
+ dep_dir = get_spec_path(spec, dep, path_replacements)
+ entries.append(cmake_cache_path('%s_DIR' % dep.upper(),
+ dep_dir))
else:
- # 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", mpiexec))
- else:
- cfg.write(cmake_cache_entry("MPIEXEC", mpiexec))
-
- # Determine MPIEXEC_NUMPROC_FLAG
- if using_slurm:
- cfg.write(cmake_cache_entry("MPIEXEC_NUMPROC_FLAG", "-n"))
- else:
- cfg.write(cmake_cache_entry("MPIEXEC_NUMPROC_FLAG", "-np"))
+ entries.append('# %s not built\n' % dep.upper())
- if spec['mpi'].name == 'spectrum-mpi':
- cfg.write(cmake_cache_entry("BLT_MPI_COMMAND_APPEND",
- "mpibind"))
+ if '+scr' in spec:
+ dep_dir = get_spec_path(spec, 'scr', path_replacements)
+ entries.append(cmake_cache_path('SCR_DIR', dep_dir))
+
+ # scr's dependencies
+ for dep in ('kvtree', 'dtcmp'):
+ if spec.satisfies('^{0}'.format(dep)):
+ dep_dir = get_spec_path(spec, dep, path_replacements)
+ entries.append(cmake_cache_path('%s_DIR' % dep.upper(), dep_dir))
else:
- cfg.write(cmake_cache_option("ENABLE_MPI", False))
+ entries.append('# scr not built\n')
##################################
# Devtools
##################################
- cfg.write("#------------------{0}\n".format("-" * 60))
- cfg.write("# Devtools\n")
- cfg.write("#------------------{0}\n\n".format("-" * 60))
+ entries.append("#------------------{0}".format("-" * 60))
+ entries.append("# Devtools")
+ entries.append("#------------------{0}\n".format("-" * 60))
# Add common prefix to path replacement list
if "+devtools" in spec:
@@ -379,176 +365,69 @@ class Axom(CMakePackage, CudaPackage):
path2 = os.path.realpath(spec["doxygen"].prefix)
devtools_root = os.path.commonprefix([path1, path2])[:-1]
path_replacements[devtools_root] = "${DEVTOOLS_ROOT}"
- cfg.write("# Root directory for generated developer tools\n")
- cfg.write(cmake_cache_entry("DEVTOOLS_ROOT", devtools_root))
+ entries.append(
+ "# Root directory for generated developer tools\n")
+ entries.append(cmake_cache_path("DEVTOOLS_ROOT", devtools_root))
- if "+python" in spec or "+devtools" in spec:
+ # Only turn on clangformat support if devtools is on
+ clang_fmt_path = spec['llvm'].prefix.bin.join('clang-format')
+ entries.append(cmake_cache_path(
+ "CLANGFORMAT_EXECUTABLE", clang_fmt_path))
+ else:
+ entries.append("# ClangFormat disabled due to disabled devtools\n")
+ entries.append(cmake_cache_option("ENABLE_CLANGFORMAT", False))
+
+ if spec.satisfies('^python') or "+devtools" in spec:
python_path = os.path.realpath(spec['python'].command.path)
for key in path_replacements:
python_path = python_path.replace(key, path_replacements[key])
- cfg.write(cmake_cache_entry("PYTHON_EXECUTABLE", python_path))
-
- if "doxygen" in spec or "py-sphinx" in spec:
- cfg.write(cmake_cache_option("ENABLE_DOCS", True))
-
- if "doxygen" in spec:
- doxygen_bin_dir = get_spec_path(spec, "doxygen",
- path_replacements,
- use_bin=True)
- cfg.write(cmake_cache_entry("DOXYGEN_EXECUTABLE",
- pjoin(doxygen_bin_dir,
- "doxygen")))
-
- if "py-sphinx" in spec:
- python_bin_dir = get_spec_path(spec, "python",
- path_replacements,
- use_bin=True)
- cfg.write(cmake_cache_entry("SPHINX_EXECUTABLE",
+ entries.append(cmake_cache_path("PYTHON_EXECUTABLE", python_path))
+
+ enable_docs = spec.satisfies('^doxygen') or spec.satisfies('^py-sphinx')
+ entries.append(cmake_cache_option("ENABLE_DOCS", enable_docs))
+
+ if spec.satisfies('^py-sphinx'):
+ python_bin_dir = get_spec_path(spec, "python",
+ path_replacements,
+ use_bin=True)
+ entries.append(cmake_cache_path("SPHINX_EXECUTABLE",
pjoin(python_bin_dir,
"sphinx-build")))
- else:
- cfg.write(cmake_cache_option("ENABLE_DOCS", False))
- if "py-shroud" in spec:
+ if spec.satisfies('^py-shroud'):
shroud_bin_dir = get_spec_path(spec, "py-shroud",
path_replacements, use_bin=True)
- cfg.write(cmake_cache_entry("SHROUD_EXECUTABLE",
- pjoin(shroud_bin_dir, "shroud")))
-
- if "cppcheck" in spec:
- cppcheck_bin_dir = get_spec_path(spec, "cppcheck",
- path_replacements, use_bin=True)
- cfg.write(cmake_cache_entry("CPPCHECK_EXECUTABLE",
- pjoin(cppcheck_bin_dir, "cppcheck")))
-
- # Only turn on clangformat support if devtools is on
- if "+devtools" in spec:
- clang_fmt_path = spec['llvm'].prefix.bin.join('clang-format')
- cfg.write(cmake_cache_entry("CLANGFORMAT_EXECUTABLE",
- clang_fmt_path))
- else:
- cfg.write("# ClangFormat disabled due to disabled devtools\n")
- cfg.write(cmake_cache_option("ENABLE_CLANGFORMAT", False))
-
- ##################################
- # Other machine specifics
- ##################################
-
- cfg.write("#------------------{0}\n".format("-" * 60))
- cfg.write("# Other machine specifics\n")
- cfg.write("#------------------{0}\n\n".format("-" * 60))
+ entries.append(cmake_cache_path("SHROUD_EXECUTABLE",
+ pjoin(shroud_bin_dir, "shroud")))
- # OpenMP
- if "+openmp" in spec:
- cfg.write(cmake_cache_option("ENABLE_OPENMP", True))
- else:
- cfg.write(cmake_cache_option("ENABLE_OPENMP", False))
+ for dep in ('cppcheck', 'doxygen'):
+ if spec.satisfies('^%s' % dep):
+ dep_bin_dir = get_spec_path(spec, dep, path_replacements,
+ use_bin=True)
+ entries.append(cmake_cache_path('%s_EXECUTABLE' % dep.upper(),
+ pjoin(dep_bin_dir, dep)))
- # Enable death tests
- if spec.satisfies('target=ppc64le:') and "+cuda" in spec:
- cfg.write(cmake_cache_option("ENABLE_GTEST_DEATH_TESTS", False))
- else:
- cfg.write(cmake_cache_option("ENABLE_GTEST_DEATH_TESTS", True))
-
- # Override XL compiler family
- familymsg = ("Override to proper compiler family for XL")
- if (f_compiler is not None) and ("xlf" in f_compiler):
- cfg.write(cmake_cache_entry("CMAKE_Fortran_COMPILER_ID", "XL",
- familymsg))
- if "xlc" in c_compiler:
- cfg.write(cmake_cache_entry("CMAKE_C_COMPILER_ID", "XL",
- familymsg))
- if "xlC" in cpp_compiler:
- cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER_ID", "XL",
- familymsg))
-
- if spec.satisfies('target=ppc64le:'):
- if (f_compiler is not None) and ("xlf" in f_compiler):
- description = ("Converts C-style comments to Fortran style "
- "in preprocessed files")
- cfg.write(cmake_cache_entry("BLT_FORTRAN_FLAGS",
- "-WF,-C! -qxlf2003=polymorphic",
- description))
- # Grab lib directory for the current fortran compiler
- libdir = os.path.join(os.path.dirname(
- os.path.dirname(f_compiler)), "lib")
- description = ("Adds a missing rpath for libraries "
- "associated with the fortran compiler")
- linker_flags = "${BLT_EXE_LINKER_FLAGS} -Wl,-rpath," + libdir
- cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS",
- linker_flags, description))
- if "+shared" in spec:
- linker_flags = "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath," \
- + libdir
- cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS",
- linker_flags, description))
-
- if "+cuda" in spec:
- cfg.write("#------------------{0}\n".format("-" * 60))
- cfg.write("# Cuda\n")
- cfg.write("#------------------{0}\n\n".format("-" * 60))
-
- cfg.write(cmake_cache_option("ENABLE_CUDA", True))
-
- cudatoolkitdir = spec['cuda'].prefix
- cfg.write(cmake_cache_entry("CUDA_TOOLKIT_ROOT_DIR",
- cudatoolkitdir))
- cudacompiler = "${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc"
- cfg.write(cmake_cache_entry("CMAKE_CUDA_COMPILER",
- cudacompiler))
-
- cfg.write(cmake_cache_option("CUDA_SEPARABLE_COMPILATION",
- True))
-
- cfg.write(cmake_cache_option("AXOM_ENABLE_ANNOTATIONS", True))
-
- # CUDA_FLAGS
- cudaflags = "-restrict "
-
- if not spec.satisfies('cuda_arch=none'):
- cuda_arch = spec.variants['cuda_arch'].value
- axom_arch = 'sm_{0}'.format(cuda_arch[0])
- cfg.write(cmake_cache_entry("AXOM_CUDA_ARCH", axom_arch))
- cudaflags += "-arch ${AXOM_CUDA_ARCH} "
- else:
- cfg.write("# cuda_arch could not be determined\n\n")
-
- cudaflags += "-std=c++11 --expt-extended-lambda -G "
- cfg.write(cmake_cache_entry("CMAKE_CUDA_FLAGS", cudaflags))
-
- if "+mpi" in spec:
- cfg.write(cmake_cache_entry("CMAKE_CUDA_HOST_COMPILER",
- "${MPI_CXX_COMPILER}"))
- else:
- cfg.write(cmake_cache_entry("CMAKE_CUDA_HOST_COMPILER",
- "${CMAKE_CXX_COMPILER}"))
-
- cfg.write("# nvcc does not like gtest's 'pthreads' flag\n")
- cfg.write(cmake_cache_option("gtest_disable_pthreads", True))
-
- cfg.write("\n")
- cfg.close()
- tty.info("Spack generated Axom host-config file: " + host_config_path)
+ return entries
def cmake_args(self):
- spec = self.spec
- host_config_path = self._get_host_config_path(spec)
-
options = []
- options.extend(['-C', host_config_path])
if self.run_tests is False:
options.append('-DENABLE_TESTS=OFF')
else:
options.append('-DENABLE_TESTS=ON')
- if "+shared" in spec:
- options.append('-DBUILD_SHARED_LIBS=ON')
- else:
- options.append('-DBUILD_SHARED_LIBS=OFF')
+ options.append(self.define_from_variant(
+ 'BUILD_SHARED_LIBS', 'shared'))
+ options.append(self.define_from_variant(
+ 'AXOM_ENABLE_EXAMPLES', 'examples'))
+ options.append(self.define_from_variant(
+ 'AXOM_ENABLE_TOOLS', 'tools'))
return options
- @run_after('install')
- def install_cmake_cache(self):
- install(self._get_host_config_path(self.spec), prefix)
+ def patch(self):
+ if self.spec.satisfies('%cce'):
+ filter_file('PROPERTIES LINKER_LANGUAGE CXX',
+ 'PROPERTIES LINKER_LANGUAGE CXX \n LINK_FLAGS "-fopenmp"',
+ 'src/axom/quest/examples/CMakeLists.txt')
diff --git a/var/spack/repos/builtin/packages/babelflow/package.py b/var/spack/repos/builtin/packages/babelflow/package.py
index 568f8bf7c8..8110f4d61f 100644
--- a/var/spack/repos/builtin/packages/babelflow/package.py
+++ b/var/spack/repos/builtin/packages/babelflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,20 +12,18 @@ class Babelflow(CMakePackage):
executed on top of one of several available runtime systems."""
homepage = "https://github.com/sci-visus/BabelFlow"
+ url = "https://github.com/sci-visus/BabelFlow/archive/v1.0.1.tar.gz"
git = 'https://github.com/sci-visus/BabelFlow.git'
maintainers = ['spetruzza']
- version('develop',
- branch='ascent',
- submodules=True)
+ version('1.0.1', sha256='b7817870b7a1d7ae7ae2eff1a1acec2824675fb856f666d5dc95c41ce453ae91')
+ version('1.0.0', sha256='4c4d7ddf60e25e8d3550c07875dba3e46e7c9e61b309cc47a409461b7ffa405e')
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')]
+ args = [self.define_from_variant('BUILD_SHARED_LIBS', 'shared')]
return args
diff --git a/var/spack/repos/builtin/packages/babeltrace/package.py b/var/spack/repos/builtin/packages/babeltrace/package.py
index 58e59b1862..e83b6cc39a 100644
--- a/var/spack/repos/builtin/packages/babeltrace/package.py
+++ b/var/spack/repos/builtin/packages/babeltrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,11 +11,11 @@ class Babeltrace(AutotoolsPackage):
Common Trace Format (CTF). Its main use is to pretty-print CTF traces
into a human-readable text output ordered by time."""
- homepage = "http://www.efficios.com/babeltrace"
+ homepage = "https://www.efficios.com/babeltrace"
url = "https://www.efficios.com/files/babeltrace/babeltrace-1.2.4.tar.bz2"
version('1.2.4', sha256='666e3a1ad2dc7d5703059963056e7800f0eab59c8eeb6be2efe4f3acc5209eb1')
depends_on('glib@2.22:', type=('build', 'link'))
- depends_on('libuuid')
+ depends_on('uuid')
depends_on('popt')
diff --git a/var/spack/repos/builtin/packages/bacio/package.py b/var/spack/repos/builtin/packages/bacio/package.py
new file mode 100644
index 0000000000..efc3d386c6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bacio/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 Bacio(CMakePackage):
+ """The bacio ibrary performs binary I/O for the NCEP models, processing
+ unformatted byte-addressable data records, and transforming the little
+ endian files and big endian files."""
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS-bacio"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-bacio/archive/refs/tags/v2.4.1.tar.gz"
+
+ maintainers = ['t-brown', 'edwardhartnett', 'kgerheiser', 'Hang-Lei-NOAA']
+
+ version('2.4.1', sha256='7b9b6ba0a288f438bfba6a08b6e47f8133f7dba472a74ac56a5454e2260a7200')
diff --git a/var/spack/repos/builtin/packages/backupninja/package.py b/var/spack/repos/builtin/packages/backupninja/package.py
index 300070fb24..5639f88f38 100644
--- a/var/spack/repos/builtin/packages/backupninja/package.py
+++ b/var/spack/repos/builtin/packages/backupninja/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bam-readcount/package.py b/var/spack/repos/builtin/packages/bam-readcount/package.py
index 45476299eb..498440378d 100644
--- a/var/spack/repos/builtin/packages/bam-readcount/package.py
+++ b/var/spack/repos/builtin/packages/bam-readcount/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bamaddrg/package.py b/var/spack/repos/builtin/packages/bamaddrg/package.py
index c828d048aa..d006a6a1d3 100644
--- a/var/spack/repos/builtin/packages/bamaddrg/package.py
+++ b/var/spack/repos/builtin/packages/bamaddrg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bamdst/package.py b/var/spack/repos/builtin/packages/bamdst/package.py
index 9283d26d6a..593a02091c 100644
--- a/var/spack/repos/builtin/packages/bamdst/package.py
+++ b/var/spack/repos/builtin/packages/bamdst/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bamtools/package.py b/var/spack/repos/builtin/packages/bamtools/package.py
index cf68d9ef4a..c8b9fc9dfa 100644
--- a/var/spack/repos/builtin/packages/bamtools/package.py
+++ b/var/spack/repos/builtin/packages/bamtools/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Bamtools(CMakePackage):
"""C++ API & command-line toolkit for working with BAM data."""
diff --git a/var/spack/repos/builtin/packages/bamutil/package.py b/var/spack/repos/builtin/packages/bamutil/package.py
index 0ea2d66eaf..6bdbcde0b7 100644
--- a/var/spack/repos/builtin/packages/bamutil/package.py
+++ b/var/spack/repos/builtin/packages/bamutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class Bamutil(MakefilePackage):
are built into a single executable, bam.
"""
- homepage = "http://genome.sph.umich.edu/wiki/BamUtil"
- url = "http://genome.sph.umich.edu/w/images/7/70/BamUtilLibStatGen.1.0.13.tgz"
+ homepage = "https://genome.sph.umich.edu/wiki/BamUtil"
+ url = "https://genome.sph.umich.edu/w/images/7/70/BamUtilLibStatGen.1.0.13.tgz"
version('1.0.13', sha256='16c1d01c37d1f98b98c144f3dd0fda6068c1902f06bd0989f36ce425eb0c592b')
diff --git a/var/spack/repos/builtin/packages/bannergrab/package.py b/var/spack/repos/builtin/packages/bannergrab/package.py
index ed8af4a0e3..50b5bb7085 100644
--- a/var/spack/repos/builtin/packages/bannergrab/package.py
+++ b/var/spack/repos/builtin/packages/bannergrab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/barrnap/package.py b/var/spack/repos/builtin/packages/barrnap/package.py
index ce293fd228..6c4502150f 100644
--- a/var/spack/repos/builtin/packages/barrnap/package.py
+++ b/var/spack/repos/builtin/packages/barrnap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bart/Makefile-0.7.00.patch b/var/spack/repos/builtin/packages/bart/Makefile-0.7.00.patch
new file mode 100644
index 0000000000..f1fcf034fa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bart/Makefile-0.7.00.patch
@@ -0,0 +1,30 @@
+--- a/Makefile 2021-03-01 08:17:01.000000000 -0600
++++ b/Makefile 2021-04-11 15:20:15.240729080 -0500
+@@ -315,7 +315,7 @@
+ ifeq ($(BUILDTYPE), MacOSX)
+ CUDA_L := -L$(CUDA_BASE)/lib -lcufft -lcudart -lcublas -m64 -lstdc++
+ else
+-CUDA_L := -L$(CUDA_BASE)/lib -lcufft -lcudart -lcublas -lstdc++ -Wl,-rpath $(CUDA_BASE)/lib
++CUDA_L := -L$(CUDA_BASE)/lib -lcufft -lcudart -lcublas -lstdc++
+ endif
+ else
+ CUDA_H :=
+@@ -355,14 +355,13 @@
+ CPPFLAGS += -DUSE_ACML
+ else
+ BLAS_H := -I$(BLAS_BASE)/include
+-ifeq ($(BUILDTYPE), MacOSX)
+-BLAS_L := -L$(BLAS_BASE)/lib -lopenblas
++ifeq ($(OPENBLAS),1)
++BLAS_L := -lopenblas
+ else
+ ifeq ($(NOLAPACKE),1)
+-BLAS_L := -L$(BLAS_BASE)/lib -llapack -lblas
+-CPPFLAGS += -Isrc/lapacke
++BLAS_L := -llapack -lcblas
+ else
+-BLAS_L := -L$(BLAS_BASE)/lib -llapacke -lblas
++BLAS_L := -llapacke -lcblas
+ endif
+ endif
+ endif
diff --git a/var/spack/repos/builtin/packages/bart/package.py b/var/spack/repos/builtin/packages/bart/package.py
index 43b2c1e566..897572e2c7 100644
--- a/var/spack/repos/builtin/packages/bart/package.py
+++ b/var/spack/repos/builtin/packages/bart/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,9 @@ class Bart(MakefilePackage, CudaPackage):
homepage = "https://mrirecon.github.io/bart/"
url = "https://github.com/mrirecon/bart/archive/v0.5.00.tar.gz"
+ maintainers = ['glennpj']
+
+ version('0.7.00', sha256='a16afc4b632c703d95b5c34e47acd82fafc19f51f9aff442373eecfef08bfc41')
version('0.6.00', sha256='dbbd33d1e3ed3324fe21f90a3b62cb51765fe369f21df100b46a32004928f18d')
version('0.5.00', sha256='30eedcda0f0ef3808157542e0d67df5be49ee41e4f41487af5c850632788f643')
@@ -21,11 +24,12 @@ class Bart(MakefilePackage, CudaPackage):
when='@0.5.00')
# patch to fix Makefile for openblas and cuda
- patch('Makefile.patch')
+ patch('Makefile.patch', when='@:0.6.00')
+ patch('Makefile-0.7.00.patch', when='@0.7.00:')
# patch to set path to bart
patch('bart_path-0.5.00.patch', when='@0.5.00')
- patch('bart_path-0.6.00.patch', when='@0.6.00')
+ patch('bart_path-0.6.00.patch', when='@0.6.00:')
depends_on('libpng')
depends_on('fftw')
@@ -44,9 +48,9 @@ class Bart(MakefilePackage, CudaPackage):
if spec['blas'].name == 'openblas':
env['OPENBLAS'] = '1'
- if spec['blas'].name in ['intel-mkl', 'intel-parallel-studio']:
+ if '^mkl' in spec:
env['MKL'] = '1'
- env['MKL_BASE'] = env['MKLROOT']
+ env['MKL_BASE'] = spec['mkl'].prefix.mkl
else:
env['BLAS_BASE'] = spec['blas'].prefix
diff --git a/var/spack/repos/builtin/packages/barvinok/package.py b/var/spack/repos/builtin/packages/barvinok/package.py
new file mode 100644
index 0000000000..9428e06d7f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/barvinok/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 Barvinok(AutotoolsPackage):
+ """barvinok is a library for counting the number of integer points in parametric and
+ non-parametric polytopes."""
+
+ homepage = "https://barvinok.gforge.inria.fr"
+ url = "http://barvinok.gforge.inria.fr/barvinok-0.41.5.tar.bz2"
+
+ version('0.41.5', sha256='e70493318fe76c0c202f98d7861bdf5dda8c4d79c21024af2e04b009ffa79734')
+ variant('pet', default=False, description="Enable an X toolkit")
+
+ depends_on('gmp')
+ depends_on('llvm +clang', when='+pet')
+ depends_on('libyaml', when='+pet')
+
+ def configure_args(self):
+ spec = self.spec
+ args = [
+ '--with-gmp-prefix={0}'.format(self.spec['gmp'].prefix)
+ ]
+
+ if '+pet' in spec:
+ args.append('--with-pet=bundled')
+ return args
diff --git a/var/spack/repos/builtin/packages/bash-completion/package.py b/var/spack/repos/builtin/packages/bash-completion/package.py
index d5f250ebc5..c03dabf74f 100644
--- a/var/spack/repos/builtin/packages/bash-completion/package.py
+++ b/var/spack/repos/builtin/packages/bash-completion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bash/package.py b/var/spack/repos/builtin/packages/bash/package.py
index 45a0b00651..f62b8d8d59 100644
--- a/var/spack/repos/builtin/packages/bash/package.py
+++ b/var/spack/repos/builtin/packages/bash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Bash(AutotoolsPackage, GNUMirrorPackage):
maintainers = ['adamjstewart']
+ version('5.1', sha256='cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa')
version('5.0', sha256='b4a80f2ac66170b2913efbfb9f2594f1f76c7b1afd11f799e22035d63077fb4d')
version('4.4', sha256='d86b3392c1202e8ff5a423b302e6284db7f8f435ea9f39b5b1b20fd3ac36dfcb')
version('4.3', sha256='afc687a28e0e24dc21b988fa159ff9dbcf6b7caa92ade8645cc6d5605cd024d4')
@@ -23,6 +24,15 @@ class Bash(AutotoolsPackage, GNUMirrorPackage):
depends_on('iconv')
patches = [
+ ('5.1', '001', 'ebb07b3dbadd98598f078125d0ae0d699295978a5cdaef6282fe19adef45b5fa'),
+ ('5.1', '002', '15ea6121a801e48e658ceee712ea9b88d4ded022046a6147550790caf04f5dbe'),
+ ('5.1', '003', '22f2cc262f056b22966281babf4b0a2f84cb7dd2223422e5dcd013c3dcbab6b1'),
+ ('5.1', '004', '9aaeb65664ef0d28c0067e47ba5652b518298b3b92d33327d84b98b28d873c86'),
+ ('5.1', '005', 'cccbb5e9e6763915d232d29c713007a62b06e65126e3dd2d1128a0dc5ef46da5'),
+ ('5.1', '006', '75e17d937de862615c6375def40a7574462210dce88cf741f660e2cc29473d14'),
+ ('5.1', '007', 'acfcb8c7e9f73457c0fb12324afb613785e0c9cef3315c9bbab4be702f40393a'),
+ ('5.1', '008', 'f22cf3c51a28f084a25aef28950e8777489072628f972b12643b4534a17ed2d1'),
+
('5.0', '001', 'f2fe9e1f0faddf14ab9bfa88d450a75e5d028fedafad23b88716bd657c737289'),
('5.0', '002', '87e87d3542e598799adb3e7e01c8165bc743e136a400ed0de015845f7ff68707'),
('5.0', '003', '4eebcdc37b13793a232c5f2f498a5fcbf7da0ecb3da2059391c096db620ec85b'),
diff --git a/var/spack/repos/builtin/packages/bashtop/package.py b/var/spack/repos/builtin/packages/bashtop/package.py
index 47f98f14a8..a8cea8df8f 100644
--- a/var/spack/repos/builtin/packages/bashtop/package.py
+++ b/var/spack/repos/builtin/packages/bashtop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bat/package.py b/var/spack/repos/builtin/packages/bat/package.py
index 0463580f8f..0a3b60a0bf 100644
--- a/var/spack/repos/builtin/packages/bat/package.py
+++ b/var/spack/repos/builtin/packages/bat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/batctl/package.py b/var/spack/repos/builtin/packages/batctl/package.py
index 45bd5ecd73..bb99380248 100644
--- a/var/spack/repos/builtin/packages/batctl/package.py
+++ b/var/spack/repos/builtin/packages/batctl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bats/package.py b/var/spack/repos/builtin/packages/bats/package.py
index 531473a9e8..f3024a91b3 100644
--- a/var/spack/repos/builtin/packages/bats/package.py
+++ b/var/spack/repos/builtin/packages/bats/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bazel/linux_ppc-0.29.1.patch b/var/spack/repos/builtin/packages/bazel/linux_ppc-0.29.1.patch
new file mode 100644
index 0000000000..c3ed9ab254
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bazel/linux_ppc-0.29.1.patch
@@ -0,0 +1,61 @@
+From 9c9d27561780bc56d9f0867e325c7421a94ee1cb Mon Sep 17 00:00:00 2001
+From: Harsh Bhatia <bhatia4@llnl.gov>
+Date: Tue, 15 Dec 2020 15:56:10 -0800
+Subject: [PATCH] https://github.com/bazelbuild/bazel/commit/ab62a6e097590dac5ec946ad7a796ea0e8593ae0
+
+---
+ src/conditions/BUILD | 6 ++++++
+ third_party/BUILD | 8 ++++++--
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/src/conditions/BUILD b/src/conditions/BUILD
+index 2b28e28057..faa41a439d 100644
+--- a/src/conditions/BUILD
++++ b/src/conditions/BUILD
+@@ -10,6 +10,12 @@ filegroup(
+ visibility = ["//src:__pkg__"],
+ )
+
++config_setting(
++ name = "linux_ppc",
++ values = {"cpu": "ppc"},
++ visibility = ["//visibility:public"],
++)
++
+ config_setting(
+ name = "linux_x86_64",
+ values = {"cpu": "k8"},
+diff --git a/third_party/BUILD b/third_party/BUILD
+index 159006d741..4fcae54c00 100644
+--- a/third_party/BUILD
++++ b/third_party/BUILD
+@@ -523,12 +523,13 @@ UNNECESSARY_DYNAMIC_LIBRARIES = select({
+ "//src/conditions:darwin": "*.so *.dll",
+ "//src/conditions:darwin_x86_64": "*.so *.dll",
+ "//src/conditions:linux_x86_64": "*.jnilib *.dll",
++ "//src/conditions:linux_ppc": "*.so *.jnilib *.dll",
+ # The .so file is an x86 one, so we can just remove it if the CPU is not x86
+ "//src/conditions:arm": "*.so *.jnilib *.dll",
+ "//src/conditions:linux_aarch64": "*.so *.jnilib *.dll",
+ # Play it safe -- better have a big binary than a slow binary
+ # zip -d does require an argument. Supply something bogus.
+- "//conditions:default": "*.bogusextension",
++ "//conditions:default": "",
+ })
+
+ # Remove native libraries that are for a platform different from the one we are
+@@ -537,7 +538,10 @@ genrule(
+ name = "filter_netty_dynamic_libs",
+ srcs = ["netty_tcnative/netty-tcnative-boringssl-static-2.0.24.Final.jar"],
+ outs = ["netty_tcnative/netty-tcnative-filtered.jar"],
+- cmd = "cp $< $@ && zip -qd $@ " + UNNECESSARY_DYNAMIC_LIBRARIES,
++ cmd = "cp $< $@ && " +
++ # End successfully if there is nothing to be deleted from the archive
++ "if [ -n '" + UNNECESSARY_DYNAMIC_LIBRARIES + "' ]; then " +
++ "zip -qd $@ " + UNNECESSARY_DYNAMIC_LIBRARIES + "; fi",
+ )
+
+ java_import(
+--
+2.21.0 (Apple Git-122.2)
+
diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py
index ad1239529d..74e72a3623 100644
--- a/var/spack/repos/builtin/packages/bazel/package.py
+++ b/var/spack/repos/builtin/packages/bazel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,7 +17,12 @@ class Bazel(Package):
url = "https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-dist.zip"
maintainers = ['adamjstewart']
-
+ version('4.0.0', sha256='d350f80e70654932db252db380d2ec0144a00e86f8d9f2b4c799ffdb48e9cdd1')
+ version('3.7.2', sha256='de255bb42163a915312df9f4b86e5b874b46d9e8d4b72604b5123c3a845ed9b1')
+ version('3.7.1', sha256='c9244e5905df6b0190113e26082c72d58b56b1b0dec66d076f083ce4089b0307')
+ version('3.7.0', sha256='63873623917c756d1be49ff4d5fc23049736180e6b9a7d5236c6f204eddae3cc')
+ version('3.6.0', sha256='3a18f24febb5203f11b0985b27e120ac623058d1d5ca79cd6df992e67d57240a')
+ version('3.5.1', sha256='67eae714578b22d24192b0eb3a2d35b07578bbd57a33c50f1e74f8acd6378b3c')
version('3.5.0', sha256='334429059cf82e222ca8a9d9dbbd26f8e1eb308613463c2b8655dd4201b127ec')
version('3.4.1', sha256='27af1f11c8f23436915925b25cf6e1fb07fccf2d2a193a307c93437c60f63ba8')
version('3.4.0', sha256='7583abf8905ba9dd5394294e815e8873635ac4e5067e63392e8a33b397e450d8')
@@ -105,6 +110,11 @@ class Bazel(Package):
depends_on('python', type=('build', 'run'))
depends_on('zip', when='platform=linux', type=('build', 'run'))
+ # make work on power9 (2x commits)
+ # https://github.com/bazelbuild/bazel/commit/5cff4f1edf8b95bf0612791632255852332f72b5
+ # https://github.com/bazelbuild/bazel/commit/ab62a6e097590dac5ec946ad7a796ea0e8593ae0
+ patch('linux_ppc-0.29.1.patch', when='@0.29.1')
+
# Pass Spack environment variables to the build
patch('bazelruleclassprovider-0.25.patch', when='@0.25:')
patch('bazelruleclassprovider-0.14.patch', when='@0.14:0.24')
@@ -160,6 +170,11 @@ class Bazel(Package):
return url.format(version)
def setup_build_environment(self, env):
+ # fix the broken linking (on power9)
+ # https://github.com/bazelbuild/bazel/issues/10327
+ env.set('BAZEL_LINKOPTS', '')
+ env.set('BAZEL_LINKLIBS', '-lstdc++')
+
env.set('EXTRA_BAZEL_ARGS',
# Spack's logs don't handle colored output well
'--color=no --host_javabase=@local_jdk//:jdk'
diff --git a/var/spack/repos/builtin/packages/bbcp/package.py b/var/spack/repos/builtin/packages/bbcp/package.py
index 0ea5d88a89..a52f68b159 100644
--- a/var/spack/repos/builtin/packages/bbcp/package.py
+++ b/var/spack/repos/builtin/packages/bbcp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bbmap/package.py b/var/spack/repos/builtin/packages/bbmap/package.py
index f4019c8391..a16ed8feb9 100644
--- a/var/spack/repos/builtin/packages/bbmap/package.py
+++ b/var/spack/repos/builtin/packages/bbmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Bbmap(Package, SourceforgePackage):
"""Short read aligner for DNA and RNA-seq data."""
- homepage = "http://sourceforge.net/projects/bbmap/"
+ homepage = "https://sourceforge.net/projects/bbmap/"
sourceforge_mirror_path = "bbmap/BBMap_38.63.tar.gz"
version('38.63', sha256='089064104526c8d696164aefa067f935b888bc71ef95527c72a98c17ee90a01f')
diff --git a/var/spack/repos/builtin/packages/bc/package.py b/var/spack/repos/builtin/packages/bc/package.py
index b78bf8878c..35df0518db 100644
--- a/var/spack/repos/builtin/packages/bc/package.py
+++ b/var/spack/repos/builtin/packages/bc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bcache/package.py b/var/spack/repos/builtin/packages/bcache/package.py
index 9d7eb9b706..a8d4bceb3a 100644
--- a/var/spack/repos/builtin/packages/bcache/package.py
+++ b/var/spack/repos/builtin/packages/bcache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Bcache(MakefilePackage):
"""Bcache is a patch for the Linux kernel to use SSDs to cache other block
devices."""
- homepage = "http://bcache.evilpiepirate.org"
+ homepage = "https://bcache.evilpiepirate.org/"
url = "https://github.com/g2p/bcache-tools/archive/v1.0.8.tar.gz"
version('1.0.8', sha256='d56923936f37287efc57a46315679102ef2c86cd0be5874590320acd48c1201c')
@@ -19,6 +19,7 @@ class Bcache(MakefilePackage):
version('1.0.5', sha256='1449294ef545b3dc6f715f7b063bc2c8656984ad73bcd81a0dc048cbba416ea9')
version('1.0.4', sha256='102ffc3a8389180f4b491188c3520f8a4b1a84e5a7ca26d2bd6de1821f4d913d')
+ depends_on('uuid')
depends_on('util-linux')
depends_on('gettext')
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/bcftools/package.py b/var/spack/repos/builtin/packages/bcftools/package.py
index ef411aaed5..8f4f5bdad8 100644
--- a/var/spack/repos/builtin/packages/bcftools/package.py
+++ b/var/spack/repos/builtin/packages/bcftools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,10 @@ class Bcftools(AutotoolsPackage):
commands work transparently with both VCFs and BCFs, both
uncompressed and BGZF-compressed."""
- homepage = "http://samtools.github.io/bcftools/"
+ homepage = "https://samtools.github.io/bcftools/"
url = "https://github.com/samtools/bcftools/releases/download/1.3.1/bcftools-1.3.1.tar.bz2"
+ version('1.12', sha256='7a0e6532b1495b9254e38c6698d955e5176c1ee08b760dfea2235ee161a024f5')
version('1.10.2', sha256='f57301869d0055ce3b8e26d8ad880c0c1989bf25eaec8ea5db99b60e31354e2c')
version('1.9', sha256='6f36d0e6f16ec4acf88649fb1565d443acf0ba40f25a9afd87f14d14d13070c8')
version('1.8', sha256='4acbfd691f137742e0be63d09f516434f0faf617a5c60f466140e0677915fced')
@@ -37,6 +38,7 @@ class Bcftools(AutotoolsPackage):
depends_on('perl', when='@1.8:~perl-filters', type='run')
depends_on('perl', when='@1.8:+perl-filters', type=('build', 'run'))
+ depends_on('htslib@1.12', when='@1.12')
depends_on('htslib@1.10.2', when='@1.10.2')
depends_on('htslib@1.9', when='@1.9')
depends_on('htslib@1.8', when='@1.8')
diff --git a/var/spack/repos/builtin/packages/bcl2fastq2/package.py b/var/spack/repos/builtin/packages/bcl2fastq2/package.py
index 5f2062859d..5f5e325006 100644
--- a/var/spack/repos/builtin/packages/bcl2fastq2/package.py
+++ b/var/spack/repos/builtin/packages/bcl2fastq2/package.py
@@ -1,13 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+import os
+
import llnl.util.tty as tty
+from spack import *
+
# This application uses cmake to build, but they wrap it with a
# configure script that performs dark magic. This package does it
@@ -26,7 +28,7 @@ class Bcl2fastq2(Package):
msg='malloc.h/etc requirements break build on macs')
depends_on('boost@1.54.0')
- depends_on('cmake@2.8.9:')
+ depends_on('cmake@2.8.9:', type='build')
depends_on('libxml2@2.7.8')
depends_on('libxslt@1.1.26~crypto')
depends_on('libgcrypt')
diff --git a/var/spack/repos/builtin/packages/bdftopcf/package.py b/var/spack/repos/builtin/packages/bdftopcf/package.py
index 8c410358c7..552f812375 100644
--- a/var/spack/repos/builtin/packages/bdftopcf/package.py
+++ b/var/spack/repos/builtin/packages/bdftopcf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Bdftopcf(AutotoolsPackage, XorgPackage):
appropriate machine, but the files are still portable (but read more
slowly) on other machines."""
- homepage = "http://cgit.freedesktop.org/xorg/app/bdftopcf"
+ homepage = "https://cgit.freedesktop.org/xorg/app/bdftopcf"
xorg_mirror_path = "app/bdftopcf-1.0.5.tar.gz"
version('1.0.5', sha256='78a5ec945de1d33e6812167b1383554fda36e38576849e74a9039dc7364ff2c3')
@@ -22,6 +22,6 @@ class Bdftopcf(AutotoolsPackage, XorgPackage):
depends_on('libxfont')
depends_on('pkgconfig', type='build')
- depends_on('xproto', type='build')
- depends_on('fontsproto', type='build')
+ depends_on('xproto')
+ depends_on('fontsproto')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/bdii/package.py b/var/spack/repos/builtin/packages/bdii/package.py
index 69bc06ccac..8c283cf7fa 100644
--- a/var/spack/repos/builtin/packages/bdii/package.py
+++ b/var/spack/repos/builtin/packages/bdii/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bdw-gc/package.py b/var/spack/repos/builtin/packages/bdw-gc/package.py
index 40a5aca8cf..00eaa87bbd 100644
--- a/var/spack/repos/builtin/packages/bdw-gc/package.py
+++ b/var/spack/repos/builtin/packages/bdw-gc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/beagle/package.py b/var/spack/repos/builtin/packages/beagle/package.py
index cbe12a83aa..76b4de1867 100644
--- a/var/spack/repos/builtin/packages/beagle/package.py
+++ b/var/spack/repos/builtin/packages/beagle/package.py
@@ -1,20 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Beagle(Package):
"""Beagle is a software package for phasing genotypes and for imputing
ungenotyped markers."""
- homepage = "http://faculty.washington.edu/browning/beagle/beagle.html"
+ homepage = "https://faculty.washington.edu/browning/beagle/beagle.html"
version('5.1', sha256='994f926a4ec0eac665631f37c4a961d3f75c966c71841079275364013c90996c',
- expand=False, url='http://faculty.washington.edu/browning/beagle/beagle.25Nov19.28d.jar')
+ expand=False, url='https://faculty.washington.edu/browning/beagle/beagle.25Nov19.28d.jar')
version('5.0', sha256='8390fe18b53786b676b67dddae6d1c086d6225e518f6a82047f4138196b48621',
expand=False, url='https://faculty.washington.edu/browning/beagle/beagle.12Jul19.0df.jar')
version('4.1', sha256='6c94610b278fc108c3e80b1134226911be1fc92b7d378ba648ac3eb97c5a3207',
diff --git a/var/spack/repos/builtin/packages/beakerlib/package.py b/var/spack/repos/builtin/packages/beakerlib/package.py
index fac03c5106..0dc7194909 100644
--- a/var/spack/repos/builtin/packages/beakerlib/package.py
+++ b/var/spack/repos/builtin/packages/beakerlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bear/package.py b/var/spack/repos/builtin/packages/bear/package.py
index df43e55736..0ca891c6e6 100644
--- a/var/spack/repos/builtin/packages/bear/package.py
+++ b/var/spack/repos/builtin/packages/bear/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/beast-tracer/package.py b/var/spack/repos/builtin/packages/beast-tracer/package.py
index e7e4a344d7..ecd5774f5e 100644
--- a/var/spack/repos/builtin/packages/beast-tracer/package.py
+++ b/var/spack/repos/builtin/packages/beast-tracer/package.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 path
+from spack import *
+
class BeastTracer(Package):
"""Tracer is a graphical tool for visualization and diagnostics of MCMC
output."""
- homepage = "http://beast.community/tracer"
+ homepage = "https://beast.community/tracer"
url = "https://github.com/beast-dev/tracer/archive/v1.7.1.tar.gz"
version('1.7.1', sha256='947d51c5afa52354099b9b182ba6036e352356bd62df94031f33cdcb7e8effd3')
diff --git a/var/spack/repos/builtin/packages/beast1/package.py b/var/spack/repos/builtin/packages/beast1/package.py
index cee34e4814..b4f560ebb8 100644
--- a/var/spack/repos/builtin/packages/beast1/package.py
+++ b/var/spack/repos/builtin/packages/beast1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Beast1(Package):
"""BEAST is a cross-platform program for Bayesian
analysis of molecular sequences using MCMC."""
- homepage = "http://beast.community/"
+ homepage = "https://beast.community/"
version('1.10.4', sha256='be652c4d55953f7c6c7a9d3eb3de203c77dc380e81ad81cfe0492408990c36a8')
version('1.8.4', sha256='c14e93976008463108aefa34ecc23287ab70703caccf4962e36e295207120d78')
diff --git a/var/spack/repos/builtin/packages/beast2/package.py b/var/spack/repos/builtin/packages/beast2/package.py
index f7ff1b0e72..b9756ceaf3 100644
--- a/var/spack/repos/builtin/packages/beast2/package.py
+++ b/var/spack/repos/builtin/packages/beast2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,8 +15,10 @@ class Beast2(Package):
conditioning on a single tree topology."""
homepage = "http://beast2.org/"
- url = "https://github.com/CompEvol/beast2/releases/download/v2.4.6/BEAST.v2.4.6.Linux.tgz"
+ url = "https://github.com/CompEvol/beast2/releases/download/v2.6.4/BEAST.v2.6.4.Linux.tgz"
+ version('2.6.4', sha256='4f80e2920eb9d87f3e9f64433119774dc67aca390fbd13dd480f852e3f8701a4')
+ version('2.6.3', sha256='8899277b0d7124ab04dc512444d45f0f1a13505f3ce641e1f117098be3e2e20d')
version('2.5.2', sha256='2feb2281b4f7cf8f7de1a62de50f52a8678ed0767fc72f2322e77dde9b8cd45f')
version('2.4.6', sha256='84029c5680cc22f95bef644824130090f5f12d3d7f48d45cb4efc8e1d6b75e93')
diff --git a/var/spack/repos/builtin/packages/bedops/package.py b/var/spack/repos/builtin/packages/bedops/package.py
index a8a6e7a607..51246302b7 100644
--- a/var/spack/repos/builtin/packages/bedops/package.py
+++ b/var/spack/repos/builtin/packages/bedops/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,10 @@ class Bedops(MakefilePackage):
arbitrary scale."""
homepage = "https://bedops.readthedocs.io"
- url = "https://github.com/bedops/bedops/archive/v2.4.30.tar.gz"
+ url = "https://github.com/bedops/bedops/archive/v2.4.39.tar.gz"
+ version('2.4.40', sha256='8c01db76669dc58c595e2e1b9bdb6d462f3363fc569b15c460a63a63b8b6bf30')
+ version('2.4.39', sha256='f8bae10c6e1ccfb873be13446c67fc3a54658515fb5071663883f788fc0e4912')
version('2.4.35', sha256='da0265cf55ef5094834318f1ea4763d7a3ce52a6900e74f532dd7d3088c191fa')
version('2.4.34', sha256='533a62a403130c048d3378e6a975b73ea88d156d4869556a6b6f58d90c52ed95')
version('2.4.30', sha256='218e0e367aa79747b2f90341d640776eea17befc0fdc35b0cec3c6184098d462')
diff --git a/var/spack/repos/builtin/packages/bedtools2/package.py b/var/spack/repos/builtin/packages/bedtools2/package.py
index b9c1cd06d1..9a4f90cbd8 100644
--- a/var/spack/repos/builtin/packages/bedtools2/package.py
+++ b/var/spack/repos/builtin/packages/bedtools2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,10 @@ class Bedtools2(Package):
on the genome."""
homepage = "https://github.com/arq5x/bedtools2"
- url = "https://github.com/arq5x/bedtools2/archive/v2.26.0.tar.gz"
+ url = "https://github.com/arq5x/bedtools2/archive/v2.30.0.tar.gz"
+ version('2.30.0', sha256='c575861ec746322961cd15d8c0b532bb2a19333f1cf167bbff73230a7d67302f')
+ version('2.29.2', sha256='bc2f36b5d4fc9890c69f607d54da873032628462e88c545dd633d2c787a544a5')
version('2.27.1', sha256='edcac089d84e63a51f85c3c189469daa7d42180272130b046856faad3cf79112')
version('2.27.0', sha256='e91390b567e577d337c15ca301e264b0355441f5ab90fa4f971622e3043e0ca0')
version('2.26.0', sha256='15db784f60a11b104ccbc9f440282e5780e0522b8d55d359a8318a6b61897977')
@@ -22,6 +24,8 @@ class Bedtools2(Package):
version('2.23.0', sha256='9dacaa561d11ce9835d1d51e5aeb092bcbe117b7119663ec9a671abac6a36056')
depends_on('zlib')
+ depends_on('bzip2', when='@2.29:')
+ depends_on('xz', when='@2.29:')
depends_on('python', type='build')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/beforelight/package.py b/var/spack/repos/builtin/packages/beforelight/package.py
index 3fff45aa59..a1101d347a 100644
--- a/var/spack/repos/builtin/packages/beforelight/package.py
+++ b/var/spack/repos/builtin/packages/beforelight/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Beforelight(AutotoolsPackage, XorgPackage):
recommended for use as a code sample, as it does not include features
such as screen locking or configurability."""
- homepage = "http://cgit.freedesktop.org/xorg/app/beforelight"
+ homepage = "https://cgit.freedesktop.org/xorg/app/beforelight"
xorg_mirror_path = "app/beforelight-1.0.5.tar.gz"
version('1.0.5', sha256='93bb3c457d6d5e8def3180fdee07bc84d1b7f0e5378a95812e2193cd51455cdc')
diff --git a/var/spack/repos/builtin/packages/benchmark/package.py b/var/spack/repos/builtin/packages/benchmark/package.py
index c02a9e8b5f..9b53ca53e9 100644
--- a/var/spack/repos/builtin/packages/benchmark/package.py
+++ b/var/spack/repos/builtin/packages/benchmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,15 @@ class Benchmark(CMakePackage):
"""A microbenchmark support library"""
homepage = "https://github.com/google/benchmark"
- url = "https://github.com/google/benchmark/archive/v1.1.0.tar.gz"
+ url = "https://github.com/google/benchmark/archive/v1.6.0.tar.gz"
git = "https://github.com/google/benchmark.git"
# first properly installed CMake config packages in
# 1.2.0 release: https://github.com/google/benchmark/issues/363
-
version('develop', branch='master')
+ version('1.6.0', sha256='1f71c72ce08d2c1310011ea6436b31e39ccab8c2db94186d26657d41747c85d6')
+ version('1.5.5', sha256='3bff5f237c317ddfd8d5a9b96b3eede7c0802e799db520d38ce756a2a46a18a0')
+ version('1.5.4', sha256='e3adf8c98bb38a198822725c0fc6c0ae4711f16fbbf6aeb311d5ad11e5a081b5')
version('1.5.0', sha256='3c6a165b6ecc948967a1ead710d4a181d7b0fbcaa183ef7ea84604994966221a')
version('1.4.1', sha256='f8e525db3c42efc9c7f3bc5176a8fa893a9a9920bbd08cef30fb56a51854d60d')
version('1.4.0', sha256='616f252f37d61b15037e3c2ef956905baf9c9eecfeab400cb3ad25bae714e214')
diff --git a/var/spack/repos/builtin/packages/berkeley-db/drop-docs.patch b/var/spack/repos/builtin/packages/berkeley-db/drop-docs.patch
new file mode 100644
index 0000000000..93b9e899df
--- /dev/null
+++ b/var/spack/repos/builtin/packages/berkeley-db/drop-docs.patch
@@ -0,0 +1,25 @@
+From 310ecb91e619192fd7097a24889485526315667a Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Thu, 25 Feb 2021 16:32:30 +0100
+Subject: [PATCH] remove smth
+
+---
+ dist/Makefile.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/dist/Makefile.in b/dist/Makefile.in
+index e90c0c2..d041d47 100644
+--- a/dist/Makefile.in
++++ b/dist/Makefile.in
+@@ -1160,6 +1160,8 @@ DOCLIST=api_reference articles bdb-sql collections csharp \
+ gsg gsg_db_rep gsg_txn index.html installation java \
+ license porting programmer_reference upgrading
+
++DOCLIST=index.html
++
+ install_docs:
+ @echo "Installing documentation: $(DESTDIR)$(docdir) ..."
+ @test -d $(DESTDIR)$(docdir) || \
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/berkeley-db/package.py b/var/spack/repos/builtin/packages/berkeley-db/package.py
index 0385de81a1..0e5fbdbbf1 100644
--- a/var/spack/repos/builtin/packages/berkeley-db/package.py
+++ b/var/spack/repos/builtin/packages/berkeley-db/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,18 +8,30 @@ class BerkeleyDb(AutotoolsPackage):
"""Oracle Berkeley DB"""
homepage = "https://www.oracle.com/database/technologies/related/berkeleydb.html"
- url = "http://download.oracle.com/berkeley-db/db-18.1.40.tar.gz"
+ # URL must remain http:// so Spack can bootstrap curl
+ url = "https://download.oracle.com/berkeley-db/db-18.1.40.tar.gz"
version("18.1.40", sha256="0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8")
- version('18.1.32', sha256='fa1fe7de9ba91ad472c25d026f931802597c29f28ae951960685cde487c8d654')
+ version('18.1.32', sha256='fa1fe7de9ba91ad472c25d026f931802597c29f28ae951960685cde487c8d654', deprecated=True)
version('6.2.32', sha256='a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb')
version('6.1.29', sha256='b3c18180e4160d97dd197ba1d37c19f6ea2ec91d31bbfaf8972d99ba097af17d')
- version('6.0.35', sha256='24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55')
+ version('6.0.35', sha256='24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55', deprecated=True)
version('5.3.28', sha256='e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628')
+ variant('docs', default=False)
+ variant('cxx', default=True, description='Build with C++ API')
+ variant('stl', default=True, description='Build with C++ STL API')
+
configure_directory = 'dist'
build_directory = 'build_unix'
+ patch("drop-docs.patch", when='~docs')
+
+ conflicts('%clang@7:', when='@5.3.28')
+ conflicts('%gcc@8:', when='@5.3.28')
+
+ conflicts('+stl', when='~cxx', msg='+stl implies +cxx')
+
def patch(self):
# some of the docs are missing in 18.1.40
if self.spec.satisfies("@18.1.40"):
@@ -27,11 +39,11 @@ class BerkeleyDb(AutotoolsPackage):
filter_file(r'gsg_db_server', '', 'dist/Makefile.in')
def configure_args(self):
+ spec = self.spec
+
config_args = [
'--disable-static',
- '--enable-cxx',
'--enable-dbm',
- '--enable-stl',
# compat with system berkeley-db on darwin
"--enable-compat185",
# SSL support requires OpenSSL, but OpenSSL depends on Perl, which
@@ -39,9 +51,13 @@ class BerkeleyDb(AutotoolsPackage):
'--with-repmgr-ssl=no',
]
- # The default glibc provided by CentOS 7 does not provide proper
- # atomic support when using the NVIDIA compilers
- if self.spec.satisfies('%nvhpc os=centos7'):
+ config_args += self.enable_or_disable('cxx')
+ config_args += self.enable_or_disable('stl')
+
+ # The default glibc provided by CentOS 7 and Red Hat 8 does not provide
+ # proper atomic support when using the NVIDIA compilers
+ if (spec.satisfies('%nvhpc')
+ and (spec.satisfies('os=centos7') or spec.satisfies('os=rhel8'))):
config_args.append('--disable-atomicsupport')
return config_args
diff --git a/var/spack/repos/builtin/packages/bertini/package.py b/var/spack/repos/builtin/packages/bertini/package.py
index aba08990c6..28c948a7a7 100644
--- a/var/spack/repos/builtin/packages/bertini/package.py
+++ b/var/spack/repos/builtin/packages/bertini/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bgpdump/package.py b/var/spack/repos/builtin/packages/bgpdump/package.py
index e708860dc3..8863cd5c58 100644
--- a/var/spack/repos/builtin/packages/bgpdump/package.py
+++ b/var/spack/repos/builtin/packages/bgpdump/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bib2xhtml/package.py b/var/spack/repos/builtin/packages/bib2xhtml/package.py
index 36ce8254ee..7ce02354aa 100644
--- a/var/spack/repos/builtin/packages/bib2xhtml/package.py
+++ b/var/spack/repos/builtin/packages/bib2xhtml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,11 +6,13 @@
class Bib2xhtml(Package):
"""bib2xhtml is a program that converts BibTeX files into HTML."""
- homepage = "http://www.spinellis.gr/sw/textproc/bib2xhtml/"
+ homepage = "https://www.spinellis.gr/sw/textproc/bib2xhtml/"
url = 'https://www.spinellis.gr/sw/textproc/bib2xhtml/bib2xhtml-v3.0-79-ge935.tar.gz'
version('3.0-79-ge935', sha256='4a2d2d89dd2f3fed1c735055b806809b5cc1cde32dee1aa5987097ec5bf2181f')
+ depends_on('texlive', type='run')
+
def install(self, spec, prefix):
# Add the bst include files to the install directory
bst_include = join_path(prefix.share, 'bib2xhtml')
diff --git a/var/spack/repos/builtin/packages/bigreqsproto/package.py b/var/spack/repos/builtin/packages/bigreqsproto/package.py
index caa8fcd51e..894686f038 100644
--- a/var/spack/repos/builtin/packages/bigreqsproto/package.py
+++ b/var/spack/repos/builtin/packages/bigreqsproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Bigreqsproto(AutotoolsPackage, XorgPackage):
This extension defines a protocol to enable the use of requests
that exceed 262140 bytes in length."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/bigreqsproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/bigreqsproto"
xorg_mirror_path = "proto/bigreqsproto-1.1.2.tar.gz"
version('1.1.2', sha256='de68a1a9dd1a1219ad73531bff9f662bc62fcd777387549c43cd282399f4a6ea')
diff --git a/var/spack/repos/builtin/packages/bind9/package.py b/var/spack/repos/builtin/packages/bind9/package.py
index 7c31821e6c..d5b8f2d31c 100644
--- a/var/spack/repos/builtin/packages/bind9/package.py
+++ b/var/spack/repos/builtin/packages/bind9/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,12 @@ class Bind9(AutotoolsPackage):
version('9_14_6', sha256='98be7a7b6d614b519f6c8d6ec7a8a39759ae9604d87228d9dc7c034471e5433e')
+ depends_on('libuv', type='link')
+ depends_on('pkgconfig', type='build')
+ depends_on('openssl', type='link')
+ depends_on('libiconv', type='link')
+
def configure_args(self):
- args = ["--without-python", "--disable-linux-caps"]
+ args = ["--without-python", "--disable-linux-caps",
+ '--with-openssl={0}'.format(self.spec['openssl'].prefix)]
return args
diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py
index f79015cf6b..445d32b2c3 100644
--- a/var/spack/repos/builtin/packages/binutils/package.py
+++ b/var/spack/repos/builtin/packages/binutils/package.py
@@ -1,17 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import sys
-
class Binutils(AutotoolsPackage, GNUMirrorPackage):
"""GNU binutils, which contain the linker, assembler, objdump and others"""
- homepage = "http://www.gnu.org/software/binutils/"
+ homepage = "https://www.gnu.org/software/binutils/"
gnu_mirror_path = "binutils/binutils-2.28.tar.bz2"
+ maintainers = ['alalazo']
+
+ version('2.37', sha256='67fc1a4030d08ee877a4867d3dcab35828148f87e1fd05da6db585ed5a166bd4')
+ version('2.36.1', sha256='5b4bd2e79e30ce8db0abd76dd2c2eae14a94ce212cfc59d3c37d23e24bc6d7a3')
+ version('2.35.2', sha256='cfa7644dbecf4591e136eb407c1c1da16578bd2b03f0c2e8acdceba194bb9d61')
version('2.35.1', sha256='320e7a1d0f46fcd9f413f1046e216cbe23bb2bce6deb6c6a63304425e48b1942')
version('2.35', sha256='7d24660f87093670738e58bcc7b7b06f121c0fcb0ca8fc44368d675a5ef9cff7')
version('2.34', sha256='89f010078b6cf69c23c27897d686055ab89b198dddf819efb0a4f2c38a0b36e6')
@@ -28,16 +31,19 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage):
version('2.23.2', sha256='fe914e56fed7a9ec2eb45274b1f2e14b0d8b4f41906a5194eac6883cfe5c1097')
version('2.20.1', sha256='71d37c96451333c5c0b84b170169fdcb138bbb27397dc06281905d9717c8ed64')
- variant('plugins', default=False,
+ variant('plugins', default=True,
description="enable plugins, needed for gold linker")
- variant('gold', default=(sys.platform != 'darwin'),
+ variant('gold', default=False,
description="build the gold linker")
variant('libiberty', default=False, description='Also install libiberty.')
variant('nls', default=True, description='Enable Native Language Support')
variant('headers', default=False, description='Install extra headers (e.g. ELF)')
variant('lto', default=False, description='Enable lto.')
variant('ld', default=False, description='Enable ld.')
+ variant('gas', default=False, description='Enable as assembler.')
variant('interwork', default=False, description='Enable interwork.')
+ variant('libs', default='shared,static', values=('shared', 'static'),
+ multi=True, description='Build shared libs, static libs or both')
patch('cr16.patch', when='@:2.29.1')
patch('update_symbol-2.26.patch', when='@2.26')
@@ -58,51 +64,71 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage):
conflicts('+gold', when='platform=darwin',
msg="Binutils cannot build linkers on macOS")
+ # When you build binutils with ~ld and +gas and load it in your PATH, you
+ # may end up with incompatibilities between a potentially older system ld
+ # and a recent assembler. For instance the linker on ubuntu 16.04 from
+ # binutils 2.26 and the assembler from binutils 2.36.1 will result in:
+ # "unable to initialize decompress status for section .debug_info"
+ # when compiling with debug symbols on gcc.
+ conflicts('+gas', '~ld', msg="Assembler not always compatible with system ld")
+
+ # When you build ld.gold you automatically get ld, even when you add the
+ # --disable-ld flag
+ conflicts('~ld', '+gold')
+
+ def setup_build_environment(self, env):
+
+ if self.spec.satisfies('%cce'):
+ env.append_flags('LDFLAGS', '-Wl,-z,muldefs')
+
+ if '+nls' in self.spec:
+ env.append_flags('LDFLAGS', '-lintl')
+
def configure_args(self):
spec = self.spec
- configure_args = [
+ args = [
'--disable-dependency-tracking',
'--disable-werror',
'--enable-multilib',
- '--enable-shared',
'--enable-64-bit-bfd',
'--enable-targets=all',
'--with-system-zlib',
'--with-sysroot=/',
]
- if '+lto' in spec:
- configure_args.append('--enable-lto')
-
- if '+ld' in spec:
- configure_args.append('--enable-ld')
-
- if '+interwork' in spec:
- configure_args.append('--enable-interwork')
-
- if '+gold' in spec:
- configure_args.append('--enable-gold')
-
- if '+plugins' in spec:
- configure_args.append('--enable-plugins')
+ args += self.enable_or_disable('libs')
+ args += self.enable_or_disable('lto')
+ args += self.enable_or_disable('ld')
+ args += self.enable_or_disable('gas')
+ args += self.enable_or_disable('interwork')
+ args += self.enable_or_disable('gold')
+ args += self.enable_or_disable('plugins')
if '+libiberty' in spec:
- configure_args.append('--enable-install-libiberty')
+ args.append('--enable-install-libiberty')
+ else:
+ args.append('--disable-install-libiberty')
if '+nls' in spec:
- configure_args.append('--enable-nls')
- configure_args.append('LDFLAGS=-lintl')
+ args.append('--enable-nls')
else:
- configure_args.append('--disable-nls')
+ args.append('--disable-nls')
# To avoid namespace collisions with Darwin/BSD system tools,
# prefix executables with "g", e.g., gar, gnm; see Homebrew
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/binutils.rb
if spec.satisfies('platform=darwin'):
- configure_args.append('--program-prefix=g')
+ args.append('--program-prefix=g')
+
+ return args
- return configure_args
+ # 2.36 is missing some dependencies and requires serial make install.
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=27482
+ @when('@2.36:')
+ def install(self, spec, prefix):
+ with working_dir(self.build_directory):
+ make('-j', '1', *self.install_targets)
@run_after('install')
def install_headers(self):
@@ -118,17 +144,20 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage):
extradir)
def flag_handler(self, name, flags):
+ # Use a separate variable for injecting flags. This way, installing
+ # `binutils cflags='-O2'` will still work as expected.
+ iflags = []
# To ignore the errors of narrowing conversions for
# the Fujitsu compiler
if name == 'cxxflags' and (
self.spec.satisfies('@:2.31.1') and
self.compiler.name in ('fj', 'clang', 'apple-clang')
):
- flags.append('-Wno-narrowing')
+ iflags.append('-Wno-narrowing')
elif name == 'cflags':
if self.spec.satisfies('@:2.34 %gcc@10:'):
- flags.append('-fcommon')
- return (flags, None, None)
+ iflags.append('-fcommon')
+ return (iflags, None, flags)
def test(self):
spec_vers = str(self.spec.version)
diff --git a/var/spack/repos/builtin/packages/bioawk/package.py b/var/spack/repos/builtin/packages/bioawk/package.py
index d7317d4293..596fd45083 100644
--- a/var/spack/repos/builtin/packages/bioawk/package.py
+++ b/var/spack/repos/builtin/packages/bioawk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/biobambam2/package.py b/var/spack/repos/builtin/packages/biobambam2/package.py
new file mode 100644
index 0000000000..84ede800b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/biobambam2/package.py
@@ -0,0 +1,49 @@
+# Copyright 2013-2021 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 Biobambam2(AutotoolsPackage):
+ """Tools for early stage alignment file processing"""
+
+ homepage = "https://gitlab.com/german.tischler/biobambam2"
+ url = "https://gitlab.com/german.tischler/biobambam2/-/archive/2.0.177-release-20201112105453/biobambam2-2.0.177-release-20201112105453.tar.gz"
+
+ version('2.0.177', sha256='ad0a418fb49a31996a105a1a275c0d1dfc8b84aa91d48fa1efb6ff4fe1e74181',
+ url='https://gitlab.com/german.tischler/biobambam2/-/archive/2.0.177-release-20201112105453/biobambam2-2.0.177-release-20201112105453.tar.gz')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('libmaus2')
+
+ test_src_dir = 'test'
+
+ def configure_args(self):
+ args = ['--with-libmaus2={0}'.format(self.spec['libmaus2'].prefix)]
+ return args
+
+ def _fix_shortsort(self):
+ """Fix the testshortsort.sh file copied during installation."""
+ test_dir = join_path(self.install_test_root, self.test_src_dir)
+ filter_file('../src/', '', join_path(test_dir, 'testshortsort.sh'))
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the test source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources(self.test_src_dir)
+ self._fix_shortsort()
+
+ def test(self):
+ """Perform stand-alone/smoke test on installed package."""
+ test_dir = join_path(self.test_suite.current_test_cache_dir,
+ self.test_src_dir)
+ self.run_test('sh', ['testshortsort.sh'],
+ expected='Alignments sorted by coordinate.',
+ purpose='test: checking alignments',
+ work_dir=test_dir)
diff --git a/var/spack/repos/builtin/packages/biobloom/package.py b/var/spack/repos/builtin/packages/biobloom/package.py
index c9d1ac687f..0197843302 100644
--- a/var/spack/repos/builtin/packages/biobloom/package.py
+++ b/var/spack/repos/builtin/packages/biobloom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/biopieces/package.py b/var/spack/repos/builtin/packages/biopieces/package.py
index 6e94f3855d..167eb2e451 100644
--- a/var/spack/repos/builtin/packages/biopieces/package.py
+++ b/var/spack/repos/builtin/packages/biopieces/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Biopieces(Package):
pieced together in a very easy and flexible manner to perform both
simple and complex tasks."""
- homepage = "http://maasha.github.io/biopieces/"
+ homepage = "https://maasha.github.io/biopieces/"
git = "https://github.com/maasha/biopieces.git"
version('2016-04-12', commit='982f80f7c55e2cae67737d80fe35a4e784762856',
diff --git a/var/spack/repos/builtin/packages/bird/package.py b/var/spack/repos/builtin/packages/bird/package.py
index bf0a6209a5..4e092e77fd 100644
--- a/var/spack/repos/builtin/packages/bird/package.py
+++ b/var/spack/repos/builtin/packages/bird/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Bird(AutotoolsPackage):
primarily targeted on (but not limited to) Linux and other UNIX-like
systems and distributed under the GNU General Public License."""
- homepage = "http://bird.network.cz/"
+ homepage = "https://bird.network.cz/"
url = "https://github.com/BIRD/bird/archive/v2.0.2.tar.gz"
version('2.0.2', sha256='bd42d48fbcc2c0046d544f1183cd98193ff15b792d332ff45f386b0180b09335')
@@ -23,5 +23,7 @@ class Bird(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
depends_on('ncurses')
depends_on('readline')
diff --git a/var/spack/repos/builtin/packages/bismark/package.py b/var/spack/repos/builtin/packages/bismark/package.py
index cb71eed678..e74337d987 100644
--- a/var/spack/repos/builtin/packages/bismark/package.py
+++ b/var/spack/repos/builtin/packages/bismark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,9 @@ class Bismark(Package):
methylation states"""
homepage = "https://www.bioinformatics.babraham.ac.uk/projects/bismark"
- url = "https://github.com/FelixKrueger/Bismark/archive/0.19.0.tar.gz"
+ url = "https://github.com/FelixKrueger/Bismark/archive/0.23.0.tar.gz"
+ version('0.23.0', sha256='ea1625808487c1442dbf825d9cbe5c0cbc37ea5bd1460f59e1e0ccc80cc01c9e')
version('0.19.0', sha256='91707737f96a0574956a282b635abad7560e7d90bee188a67a7807b2470deae2')
version('0.18.2', sha256='83391c5b5af33047178e7774ac25f5a69ce9315c13ae02f016baf7c50b73e702')
diff --git a/var/spack/repos/builtin/packages/bison/nvhpc.patch b/var/spack/repos/builtin/packages/bison/nvhpc-3.6.patch
index 88cd8f641e..88cd8f641e 100644
--- a/var/spack/repos/builtin/packages/bison/nvhpc.patch
+++ b/var/spack/repos/builtin/packages/bison/nvhpc-3.6.patch
diff --git a/var/spack/repos/builtin/packages/bison/nvhpc-3.7.patch b/var/spack/repos/builtin/packages/bison/nvhpc-3.7.patch
new file mode 100644
index 0000000000..d678cda57e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bison/nvhpc-3.7.patch
@@ -0,0 +1,38 @@
+--- a/lib/xalloc-oversized.h
++++ b/lib/xalloc-oversized.h
+@@ -41,10 +41,10 @@
+ positive and N must be nonnegative. This is a macro, not a
+ function, so that it works correctly even when SIZE_MAX < N. */
+
+-#if 7 <= __GNUC__ && !defined __clang__
++#if 7 <= __GNUC__ && !defined __clang__ && !defined __NVCOMPILER
+ # define xalloc_oversized(n, s) \
+ __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1)
+-#elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__
++#elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ && !defined __NVCOMPILER
+ # define xalloc_oversized(n, s) \
+ (__builtin_constant_p (n) && __builtin_constant_p (s) \
+ ? __xalloc_oversized (n, s) \
+--- a/lib/intprops.h
++++ b/lib/intprops.h
+@@ -226,9 +226,9 @@
+
+ /* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow
+ (A, B, P) work when P is non-null. */
+-#if 5 <= __GNUC__ && !defined __ICC
++#if 5 <= __GNUC__ && !defined __ICC && !defined __NVCOMPILER
+ # define _GL_HAS_BUILTIN_ADD_OVERFLOW 1
+-#elif defined __has_builtin
++#elif defined __has_builtin && !defined __NVCOMPILER
+ # define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow)
+ #else
+ # define _GL_HAS_BUILTIN_ADD_OVERFLOW 0
+@@ -249,7 +249,7 @@
+ presumably run afoul of Clang bug 16404. */
+ # define _GL_HAS_BUILTIN_OVERFLOW_P 0
+ #else
+-# define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__)
++# define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__ && !defined __NVCOMPILER)
+ #endif
+
+ /* The _GL*_OVERFLOW macros have the same restrictions as the
diff --git a/var/spack/repos/builtin/packages/bison/package.py b/var/spack/repos/builtin/packages/bison/package.py
index 8b4ebfa8bd..7c090460fc 100644
--- a/var/spack/repos/builtin/packages/bison/package.py
+++ b/var/spack/repos/builtin/packages/bison/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import re
+import sys
+
from spack import *
from spack.operating_systems.mac_os import macos_version
-import sys
-import re
class Bison(AutotoolsPackage, GNUMirrorPackage):
@@ -19,6 +20,13 @@ class Bison(AutotoolsPackage, GNUMirrorPackage):
executables = ['^bison$']
+ version('3.7.6', sha256='69dc0bb46ea8fc307d4ca1e0b61c8c355eb207d0b0c69f4f8462328e74d7b9ea')
+ version('3.7.5', sha256='151cb5f12716e3fe93a27a317cd44878329659f275b342779bfaef4a526bbf70')
+ version('3.7.4', sha256='fbabc7359ccd8b4b36d47bfe37ebbce44805c052526d5558b95eda125d1677e2')
+ version('3.7.3', sha256='104fe912f2212ab4e4a59df888a93b719a046ffc38d178e943f6c54b1f27b3c7')
+ version('3.7.2', sha256='415cd91044517bbfd8d135dea24e054501db238a5515edd9cdbb795ba3e82a84')
+ version('3.7.1', sha256='1dd952839cf0d5a8178c691eeae40dc48fa50d18dcce648b1ad9ae0195367d13')
+ version('3.7', sha256='492ad61202de893ca21a99b621d63fa5389da58804ad79d3f226b8d04b803998')
version('3.6.4', sha256='8183de64b5383f3634942c7b151bf2577f74273b2731574cdda8a8f3a0ab13e9')
version('3.6.3', sha256='4b4c4943931e811f1073006ce3d8ee022a02b11b501e9cbf4def3613b24a3e63')
version('3.6.2', sha256='e28ed3aad934de2d1df68be209ac0b454f7b6d3c3d6d01126e5cd2cbadba089a')
@@ -43,10 +51,12 @@ class Bison(AutotoolsPackage, GNUMirrorPackage):
depends_on('diffutils', type='build')
depends_on('m4', type=('build', 'run'))
depends_on('perl', type='build')
- depends_on('help2man', type='build')
patch('pgi.patch', when='@3.0.4')
- patch('nvhpc.patch', when='%nvhpc')
+ # The NVIDIA compilers do not currently support some GNU builtins.
+ # Detect this case and use the fallback path.
+ patch('nvhpc-3.6.patch', when='@3.6.0:3.6.99 %nvhpc')
+ patch('nvhpc-3.7.patch', when='@3.7.0:3.7.99 %nvhpc')
conflicts('%intel@:14', when='@3.4.2:',
msg="Intel 14 has immature C11 support")
diff --git a/var/spack/repos/builtin/packages/bitlbee/package.py b/var/spack/repos/builtin/packages/bitlbee/package.py
index c64da4736f..a96e06b4ba 100644
--- a/var/spack/repos/builtin/packages/bitlbee/package.py
+++ b/var/spack/repos/builtin/packages/bitlbee/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bitmap/package.py b/var/spack/repos/builtin/packages/bitmap/package.py
index 06e793bcd3..446cf1b26a 100644
--- a/var/spack/repos/builtin/packages/bitmap/package.py
+++ b/var/spack/repos/builtin/packages/bitmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Bitmap(AutotoolsPackage, XorgPackage):
"""bitmap, bmtoa, atobm - X bitmap (XBM) editor and converter utilities."""
- homepage = "http://cgit.freedesktop.org/xorg/app/bitmap"
+ homepage = "https://cgit.freedesktop.org/xorg/app/bitmap"
xorg_mirror_path = "app/bitmap-1.0.8.tar.gz"
version('1.0.8', sha256='1a2fbd10a2ca5cd93f7b77bbb0555b86d8b35e0fc18d036b1607c761755006fc')
@@ -20,7 +20,7 @@ class Bitmap(AutotoolsPackage, XorgPackage):
depends_on('libxmu')
depends_on('libxt')
- depends_on('xbitmaps', type='build')
- depends_on('xproto@7.0.25:', type='build')
+ depends_on('xbitmaps')
+ depends_on('xproto@7.0.25:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/bitsery/package.py b/var/spack/repos/builtin/packages/bitsery/package.py
index 8a2ce07b60..3c69a63c75 100644
--- a/var/spack/repos/builtin/packages/bitsery/package.py
+++ b/var/spack/repos/builtin/packages/bitsery/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/blaspp/package.py b/var/spack/repos/builtin/packages/blaspp/package.py
index 7b6c4da613..902a52adb3 100644
--- a/var/spack/repos/builtin/packages/blaspp/package.py
+++ b/var/spack/repos/builtin/packages/blaspp/package.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
-class Blaspp(CMakePackage, CudaPackage):
+class Blaspp(CMakePackage, CudaPackage, ROCmPackage):
"""C++ API for the Basic Linear Algebra Subroutines. Developed by the
Innovative Computing Laboratory at the University of Tennessee,
Knoxville."""
@@ -18,36 +19,52 @@ class Blaspp(CMakePackage, CudaPackage):
maintainers = ['teonnik', 'Sely85', 'G-Ragghianti', 'mgates3']
version('master', branch='master')
+ version('2021.04.01', sha256='11fc7b7e725086532ada58c0de53f30e480c2a06f1497b8081ea6d8f97e26150')
version('2020.10.02', sha256='36e45bb5a8793ba5d7bc7c34fc263f91f92b0946634682937041221a6bf1a150')
version('2020.10.01', sha256='1a05dbc46caf797d59a7c189216b876fdb1b2ff3e2eb48f1e6ca4b2756c59153')
version('2020.10.00', sha256='ce148cfe397428d507c72d7d9eba5e9d3f55ad4cd842e6e873c670183dcb7795')
variant('openmp', default=True, description='Use OpenMP internally.')
- variant('cuda', default=True, description='Build with CUDA')
variant('shared', default=True, description='Build shared libraries')
depends_on('cmake@3.15.0:', type='build')
depends_on('blas')
+ depends_on('llvm-openmp', when='%apple-clang +openmp')
+ depends_on('rocblas', when='+rocm')
+
+ # only supported with clingo solver: virtual dependency preferences
+ # depends_on('openblas threads=openmp', when='+openmp ^openblas')
+
+ # BLAS++ tests will fail when using openblas > 0.3.5 without multithreading support
+ # locking is only supported in openblas 3.7+
+ conflicts('^openblas@0.3.6 threads=none', msg='BLAS++ requires a threadsafe openblas')
+ conflicts('^openblas@0.3.7: ~locking', msg='BLAS++ requires a threadsafe openblas')
- # This will attempt to use a supported version of OpenBLAS
- depends_on('openblas@:0.3.5', when='^openblas')
- # In some cases, the spack concretizer will fail to use a supported
- # version of OpenBLAS. In this case, present an error message.
- conflicts('^openblas@0.3.6:', msg='Testing errors in OpenBLAS >=0.3.6')
+ conflicts('+rocm', when='@:2020.10.02', msg='ROCm support requires BLAS++ 2021.04.00 or greater')
+ conflicts('+rocm', when='+cuda', msg='BLAS++ can only support one GPU backend at a time')
def cmake_args(self):
spec = self.spec
+ backend_config = '-Duse_cuda=%s' % ('+cuda' in spec)
+ if self.version >= Version('2021.04.01'):
+ backend = 'none'
+ if '+cuda' in spec:
+ backend = 'cuda'
+ if '+rocm' in spec:
+ backend = 'hip'
+ backend_config = '-Dgpu_backend=%s' % backend
return [
'-Dbuild_tests=%s' % self.run_tests,
'-Duse_openmp=%s' % ('+openmp' in spec),
'-DBUILD_SHARED_LIBS=%s' % ('+shared' in spec),
- '-Duse_cuda=%s' % ('+cuda' in spec),
+ backend_config,
'-DBLAS_LIBRARIES=%s' % spec['blas'].libs.joined(';')
]
def check(self):
# If the tester fails to build, ensure that the check() fails.
if os.path.isfile(join_path(self.build_directory, 'test', 'tester')):
- make('check')
+ with working_dir(self.build_directory):
+ make('check')
else:
raise Exception('The tester was not built!')
diff --git a/var/spack/repos/builtin/packages/blasr-libcpp/package.py b/var/spack/repos/builtin/packages/blasr-libcpp/package.py
index 658561a39a..c008d3452f 100644
--- a/var/spack/repos/builtin/packages/blasr-libcpp/package.py
+++ b/var/spack/repos/builtin/packages/blasr-libcpp/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class BlasrLibcpp(Package):
"""Blasr_libcpp is a library used by blasr
diff --git a/var/spack/repos/builtin/packages/blasr/package.py b/var/spack/repos/builtin/packages/blasr/package.py
index 5c6afdba3a..5b3c0f3c09 100644
--- a/var/spack/repos/builtin/packages/blasr/package.py
+++ b/var/spack/repos/builtin/packages/blasr/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Blasr(Package):
"""The PacBio long read aligner."""
diff --git a/var/spack/repos/builtin/packages/blast-legacy/package.py b/var/spack/repos/builtin/packages/blast-legacy/package.py
index faf5a155af..d724c0005d 100644
--- a/var/spack/repos/builtin/packages/blast-legacy/package.py
+++ b/var/spack/repos/builtin/packages/blast-legacy/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 symlink
+from spack import *
+
class BlastLegacy(Package):
"""Legacy NCBI BLAST distribution -- no longer supported.
@@ -14,7 +15,7 @@ class BlastLegacy(Package):
homepage = "https://www.ncbi.nlm.nih.gov/"
url = "ftp://ftp.ncbi.nlm.nih.gov/blast/executables/legacy.NOTSUPPORTED/2.2.26/ncbi.tar.gz"
- version('2.2.26', sha256='d8fffac25efc8ca894c707c840a4797a8a949ae6fd983d2f91c9972f788efb7d')
+ version('2.2.26', sha256='d8fffac25efc8ca894c707c840a4797a8a949ae6fd983d2f91c9972f788efb7d', deprecated=True)
depends_on('tcsh', type='build')
diff --git a/var/spack/repos/builtin/packages/blast-plus/package.py b/var/spack/repos/builtin/packages/blast-plus/package.py
index febe4fc159..767bb2e370 100644
--- a/var/spack/repos/builtin/packages/blast-plus/package.py
+++ b/var/spack/repos/builtin/packages/blast-plus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,9 +20,13 @@ from spack import *
class BlastPlus(AutotoolsPackage):
"""Basic Local Alignment Search Tool."""
- homepage = "http://blast.ncbi.nlm.nih.gov/"
- url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.6.0/ncbi-blast-2.6.0+-src.tar.gz"
+ homepage = "https://blast.ncbi.nlm.nih.gov/"
+ url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.12.0/ncbi-blast-2.12.0+-src.tar.gz"
+ maintainers = ['weijianwen']
+
+ version('2.12.0', sha256='fda3c9c9d488cad6c1880a98a236d842bcf3610e3e702af61f7a48cf0a714b88')
+ version('2.11.0', sha256='d88e1858ae7ce553545a795a2120e657a799a6d334f2a07ef0330cc3e74e1954')
version('2.9.0', sha256='a390cc2d7a09422759fc178db84de9def822cbe485916bbb2ec0d215dacdc257')
version('2.8.1', sha256='e03dd1a30e37cb8a859d3788a452c5d70ee1f9102d1ee0f93b2fbd145925118f')
version('2.7.1', sha256='10a78d3007413a6d4c983d2acbf03ef84b622b82bd9a59c6bd9fbdde9d0298ca')
diff --git a/var/spack/repos/builtin/packages/blast2go/package.py b/var/spack/repos/builtin/packages/blast2go/package.py
index d272065474..3c8605fadf 100644
--- a/var/spack/repos/builtin/packages/blast2go/package.py
+++ b/var/spack/repos/builtin/packages/blast2go/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import archspec
+
from spack import *
@@ -14,6 +16,10 @@ class Blast2go(Package):
version('5.2.5', sha256='c37aeda25f96ac0553b52da6b5af3167d50671ddbfb3b39bcb11afe5d0643891')
+ for t in set([str(x.family) for x in archspec.cpu.TARGETS.values()
+ if str(x.family) != 'x86_64']):
+ conflicts('target={0}:'.format(t), msg='blast2go is available x86_64 only')
+
depends_on('bash', type='build')
depends_on('blast-plus', type='run')
depends_on('java', type='build')
diff --git a/var/spack/repos/builtin/packages/blat/package.py b/var/spack/repos/builtin/packages/blat/package.py
index 831329eafb..0da2ef9628 100644
--- a/var/spack/repos/builtin/packages/blat/package.py
+++ b/var/spack/repos/builtin/packages/blat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/blaze/package.py b/var/spack/repos/builtin/packages/blaze/package.py
index 81c6f5f715..80c105b6ea 100644
--- a/var/spack/repos/builtin/packages/blaze/package.py
+++ b/var/spack/repos/builtin/packages/blaze/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/blis/package.py b/var/spack/repos/builtin/packages/blis/package.py
index 8e8deaf61f..d6834fe9cc 100644
--- a/var/spack/repos/builtin/packages/blis/package.py
+++ b/var/spack/repos/builtin/packages/blis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -53,7 +53,8 @@ class BlisBase(Package):
phases = ['configure', 'build', 'install']
- def configure(self, spec, prefix):
+ def configure_args(self):
+ spec = self.spec
config_args = []
config_args.append("--enable-threading=" +
@@ -79,7 +80,13 @@ class BlisBase(Package):
else:
config_args.append("--disable-static")
- # FIXME: add cpu isa variants.
+ return config_args
+
+ def configure(self, spec, prefix):
+ config_args = self.configure_args()
+
+ # To ensure auto should always be the
+ # last argument for base and derived class
config_args.append("auto")
configure("--prefix=" + prefix,
@@ -105,7 +112,10 @@ class BlisBase(Package):
@property
def libs(self):
return find_libraries(
- ["libblis", "libblis-mt"], root=self.prefix, recursive=True
+ ["libblis", "libblis-mt"],
+ root=self.prefix,
+ shared='+shared' in self.spec,
+ recursive=True
)
@@ -128,6 +138,8 @@ class Blis(BlisBase):
git = "https://github.com/flame/blis.git"
version('master', branch='master')
+ version('0.8.1', sha256='729694128719801e82fae7b5f2489ab73e4a467f46271beff09588c9265a697b')
+ version('0.8.0', sha256='5e05868c4a6cf5032a7492f8861653e939a8f907a4fa524bbb6e14394e170a3d')
version('0.7.0', sha256='7e345d666799e15bba570bd125f97042f17bf752a61dcf314486a6cd096d5f68')
version('0.6.1', sha256='76b22f29b7789cf117c0873d2a6b2a6d61f903869168148f2e7306353c105c37')
version('0.6.0', sha256='ad5765cc3f492d0c663f494850dafc4d72f901c332eb442f404814ff2995e5a9')
diff --git a/var/spack/repos/builtin/packages/bliss/package.py b/var/spack/repos/builtin/packages/bliss/package.py
index b42e9cac9c..f5333c73a6 100644
--- a/var/spack/repos/builtin/packages/bliss/package.py
+++ b/var/spack/repos/builtin/packages/bliss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/blitz/package.py b/var/spack/repos/builtin/packages/blitz/package.py
index 4a823b3e20..3003cc0e0c 100644
--- a/var/spack/repos/builtin/packages/blitz/package.py
+++ b/var/spack/repos/builtin/packages/blitz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,16 @@ from spack import *
class Blitz(AutotoolsPackage):
"""N-dimensional arrays for C++"""
- homepage = "http://github.com/blitzpp/blitz"
- url = "https://github.com/blitzpp/blitz/archive/1.0.1.tar.gz"
+ homepage = "https://github.com/blitzpp/blitz"
+ url = "https://github.com/blitzpp/blitz/archive/1.0.2.tar.gz"
+ version('1.0.2', sha256='500db9c3b2617e1f03d0e548977aec10d36811ba1c43bb5ef250c0e3853ae1c2')
version('1.0.1', sha256='b62fc3f07b64b264307b01fec5e4f2793e09a68dcb5378984aedbc2e4b3adcef')
version('1.0.0', sha256='79c06ea9a0585ba0e290c8140300e3ad19491c45c1d90feb52819abc3b58a0c1')
+ depends_on('python@:2.7.999', type='build', when='@:1.0.1')
+ depends_on('python@3:', type='build', when='@1.0.2:')
+
build_targets = ['lib']
def check(self):
diff --git a/var/spack/repos/builtin/packages/blktrace/package.py b/var/spack/repos/builtin/packages/blktrace/package.py
index bf0b1eae05..2272722b1e 100644
--- a/var/spack/repos/builtin/packages/blktrace/package.py
+++ b/var/spack/repos/builtin/packages/blktrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bloaty/package.py b/var/spack/repos/builtin/packages/bloaty/package.py
new file mode 100644
index 0000000000..0bdb33d7da
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bloaty/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 Bloaty(CMakePackage):
+ """Bloaty McBloatface: a size profiler for binaries."""
+
+ homepage = "https://github.com/google/bloaty"
+ url = "https://github.com/google/bloaty/releases/download/v1.1/bloaty-1.1.tar.bz2"
+
+ maintiners = ["cyrush"]
+
+ version('1.1',
+ sha256='a308d8369d5812aba45982e55e7c3db2ea4780b7496a5455792fb3dcba9abd6f')
diff --git a/var/spack/repos/builtin/packages/blogbench/package.py b/var/spack/repos/builtin/packages/blogbench/package.py
index d9a7fd6088..e6f371c0bd 100644
--- a/var/spack/repos/builtin/packages/blogbench/package.py
+++ b/var/spack/repos/builtin/packages/blogbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Blogbench(AutotoolsPackage):
"""A filesystem benchmark tool that simulates a realistic load."""
homepage = "https://openbenchmarking.org/test/pts/blogbench"
- url = "http://download.pureftpd.org/pub/blogbench/blogbench-1.1.tar.gz"
+ url = "https://download.pureftpd.org/pub/blogbench/blogbench-1.1.tar.gz"
version('1.1', sha256='8cded059bfdbccb7be35bb6a2272ecfdbe3fbea43d53c92ba5572ac24f26c4df')
version('1.0', sha256='dc29261a19064a8fb64d39b27607f19d3b33ce3795908e717404167687ef33be')
diff --git a/var/spack/repos/builtin/packages/blt/package.py b/var/spack/repos/builtin/packages/blt/package.py
index 430c82affd..a461a5d442 100644
--- a/var/spack/repos/builtin/packages/blt/package.py
+++ b/var/spack/repos/builtin/packages/blt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,19 @@ class Blt(Package):
Testing large-scale high performance computing (HPC) applications."""
homepage = "https://github.com/LLNL/blt"
- url = "https://github.com/LLNL/blt/archive/v0.3.6.tar.gz"
+ url = "https://github.com/LLNL/blt/archive/v0.4.0.tar.gz"
git = "https://github.com/LLNL/blt.git"
- maintainers = ['davidbeckingsale']
+ maintainers = ['white238', 'davidbeckingsale']
version('develop', branch='develop')
version('main', branch='main')
+ # Note: 0.4.0+ contains a breaking change to BLT created targets
+ # if you export targets this could cause problems in downstream
+ # projects if not handled properly. More info here:
+ # https://llnl-blt.readthedocs.io/en/develop/tutorial/exporting_targets.html
+ version('0.4.1', sha256='16cc3e067ddcf48b99358107e5035a17549f52dcc701a35cd18a9d9f536826c1')
+ version('0.4.0', sha256='f3bc45d28b9b2eb6df43b75d4f6f89a1557d73d012da7b75bac1be0574767193')
version('0.3.6', sha256='6276317c29e7ff8524fbea47d9288ddb40ac06e9f9da5e878bf9011e2c99bf71')
version('0.3.5', sha256='68a1c224bb9203461ae6f5ab0ff3c50b4a58dcce6c2d2799489a1811f425fb84')
version('0.3.0', sha256='bb917a67cb7335d6721c997ba9c5dca70506006d7bba5e0e50033dd0836481a5')
diff --git a/var/spack/repos/builtin/packages/bmake/package.py b/var/spack/repos/builtin/packages/bmake/package.py
index 2988bc2729..67d552cb27 100644
--- a/var/spack/repos/builtin/packages/bmake/package.py
+++ b/var/spack/repos/builtin/packages/bmake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Bmake(Package):
"""Portable version of NetBSD make(1)."""
- homepage = "http://www.crufty.net/help/sjg/bmake.htm"
- url = "http://www.crufty.net/ftp/pub/sjg/bmake-20180512.tar.gz"
+ homepage = "https://www.crufty.net/help/sjg/bmake.htm"
+ url = "https://www.crufty.net/ftp/pub/sjg/bmake-20180512.tar.gz"
version('20200710', sha256='6538fc4319ef79d178dca76d3b869f7aa93a9bb7b510df08a7d872c01a56b76c')
version('20180512', sha256='ac3cd262065fcc20c1dec7c95f06306c8138b3e17025b949343a06a8980a5508')
diff --git a/var/spack/repos/builtin/packages/bmi/package.py b/var/spack/repos/builtin/packages/bmi/package.py
index c2862ed3ee..1d9b5c4773 100644
--- a/var/spack/repos/builtin/packages/bmi/package.py
+++ b/var/spack/repos/builtin/packages/bmi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,12 @@ from spack import *
class Bmi(AutotoolsPackage):
"""a communications framework and network abstraction layer"""
- homepage = 'https://xgitlab.cels.anl.gov/sds/bmi'
- git = 'https://xgitlab.cels.anl.gov/sds/bmi.git'
+ homepage = 'https://github.com/radix-io/bmi/'
+ git = 'https://github.com/radix-io/bmi.git'
maintainers = ['carns']
- version('develop', branch='master')
+ version('main', branch='main')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
diff --git a/var/spack/repos/builtin/packages/bml/package.py b/var/spack/repos/builtin/packages/bml/package.py
index 48a263f85e..d7ec3678f9 100644
--- a/var/spack/repos/builtin/packages/bml/package.py
+++ b/var/spack/repos/builtin/packages/bml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Bml(CMakePackage):
formats (in dense and sparse) and their associated algorithms for basic
matrix operations."""
- homepage = "http://lanl.github.io/bml/"
+ homepage = "https://lanl.github.io/bml/"
url = "https://github.com/lanl/bml/tarball/v1.2.2"
git = "https://github.com/lanl/bml.git"
@@ -34,8 +34,7 @@ class Bml(CMakePackage):
def cmake_args(self):
args = [
- '-DBUILD_SHARED_LIBS={0}'.format(
- 'ON' if '+shared' in self.spec else 'OFF')
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared')
]
spec = self.spec
if '+mpi' in spec:
diff --git a/var/spack/repos/builtin/packages/bohrium/package.py b/var/spack/repos/builtin/packages/bohrium/package.py
index 1fb05be2a0..c2defe0b8a 100644
--- a/var/spack/repos/builtin/packages/bohrium/package.py
+++ b/var/spack/repos/builtin/packages/bohrium/package.py
@@ -1,19 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
+import llnl.util.tty as tty
+
from spack import *
from spack.package_test import compare_output
from spack.util.executable import Executable
-import llnl.util.tty as tty
-import os
class Bohrium(CMakePackage, CudaPackage):
"""Library for automatic acceleration of array operations"""
- homepage = "http://bh107.org"
+ homepage = "https://github.com/bh107/bohrium"
url = "https://github.com/bh107/bohrium/archive/v0.9.0.tar.gz"
git = "https://github.com/bh107/bohrium.git"
diff --git a/var/spack/repos/builtin/packages/bohrium/pyadd.py b/var/spack/repos/builtin/packages/bohrium/pyadd.py
index fc9f6968df..e70304be35 100644
--- a/var/spack/repos/builtin/packages/bohrium/pyadd.py
+++ b/var/spack/repos/builtin/packages/bohrium/pyadd.py
@@ -1,5 +1,6 @@
#!/usr/bin/env python
import bohrium as bh
+
a = bh.array([1, 2, 3])
b = bh.array([3, 4, 5])
c = a + b
diff --git a/var/spack/repos/builtin/packages/boinc-client/package.py b/var/spack/repos/builtin/packages/boinc-client/package.py
index 80e6416e4b..590a627e81 100644
--- a/var/spack/repos/builtin/packages/boinc-client/package.py
+++ b/var/spack/repos/builtin/packages/boinc-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bolt/package.py b/var/spack/repos/builtin/packages/bolt/package.py
index b4e4cf95ce..554c183f20 100644
--- a/var/spack/repos/builtin/packages/bolt/package.py
+++ b/var/spack/repos/builtin/packages/bolt/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -17,14 +19,18 @@ class Bolt(CMakePackage):
runtime in LLVM, and thus it can be used with LLVM/Clang, Intel
OpenMP compiler, and GCC."""
- homepage = "http://www.bolt-omp.org/"
+ homepage = "https://www.bolt-omp.org/"
url = "https://github.com/pmodels/bolt/releases/download/v1.0b1/bolt-1.0b1.tar.gz"
git = "https://github.com/pmodels/bolt.git"
maintainers = ['shintaro-iwasaki']
version("main", branch="main")
+ version("2.0", sha256="f84b6a525953edbaa5d28748ef3ab172a3b6f6899b07092065ba7d1ccc6eb5ac")
+ version("1.0.1", sha256="769e30dfc4042cee7ebbdadd23cf08796c03bcd8b335f516dc8cbc3f8adfa597")
version("1.0", sha256="1c0d2f75597485ca36335d313a73736594e75c8a36123c5a6f54d01b5ba5c384")
+ test_requires_compiler = True
+
depends_on('argobots')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
@@ -38,3 +44,37 @@ class Bolt(CMakePackage):
]
return options
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources(['examples'])
+
+ def run_sample_nested_example(self):
+ """Run stand alone test: sample_nested"""
+
+ test_dir = join_path(self.test_suite.current_test_cache_dir, 'examples')
+
+ if not os.path.exists(test_dir):
+ print('Skipping bolt test')
+ return
+
+ exe = 'sample_nested'
+
+ # TODO: Either change to use self.compiler.cc (so using the build-time compiler)
+ # or add test parts that compile with the different supported compilers.
+ self.run_test('gcc',
+ options=['-lomp', '-o', exe,
+ '-L{0}'.format(join_path(self.prefix, 'lib')),
+ '{0}'.format(join_path(test_dir, 'sample_nested.c'))],
+ purpose='test: compile {0} example'.format(exe),
+ work_dir=test_dir)
+
+ self.run_test(exe,
+ purpose='test: run {0} example'.format(exe),
+ work_dir=test_dir)
+
+ def test(self):
+ print("Running bolt test")
+ self.run_sample_nested_example()
diff --git a/var/spack/repos/builtin/packages/bonniepp/package.py b/var/spack/repos/builtin/packages/bonniepp/package.py
index 6a33a15ea7..15f2e1cb2d 100644
--- a/var/spack/repos/builtin/packages/bonniepp/package.py
+++ b/var/spack/repos/builtin/packages/bonniepp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bookleaf-cpp/package.py b/var/spack/repos/builtin/packages/bookleaf-cpp/package.py
index 1fec8cbc6d..7a82b4a947 100644
--- a/var/spack/repos/builtin/packages/bookleaf-cpp/package.py
+++ b/var/spack/repos/builtin/packages/bookleaf-cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/boost/boost_218.patch b/var/spack/repos/builtin/packages/boost/boost_218.patch
new file mode 100644
index 0000000000..ab4d9085f5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/boost/boost_218.patch
@@ -0,0 +1,10 @@
+--- a/libs/python/src/numpy/numpy.cpp
++++ b/libs/python/src/numpy/numpy.cpp
+@@ -19,6 +19,7 @@ static void wrap_import_array()
+ static void * wrap_import_array()
+ {
+ import_array();
++ return NULL;
+ }
+ #endif
+
diff --git a/var/spack/repos/builtin/packages/boost/bootstrap-toolset.patch b/var/spack/repos/builtin/packages/boost/bootstrap-toolset.patch
new file mode 100644
index 0000000000..8aed227207
--- /dev/null
+++ b/var/spack/repos/builtin/packages/boost/bootstrap-toolset.patch
@@ -0,0 +1,11 @@
+--- a/bootstrap.sh 2020-12-03 00:00:59.000000000 -0500
++++ a/bootstrap.sh 2021-01-08 13:38:30.000000000 -0500
+@@ -223,7 +223,7 @@
+ if test "x$BJAM" = x; then
+ $ECHO "Building B2 engine.."
+ pwd=`pwd`
+- (cd "$my_dir/tools/build/src/engine" && ./build.sh)
++ (cd "$my_dir/tools/build/src/engine" && ./build.sh "$TOOLSET")
+ if [ $? -ne 0 ]; then
+ echo
+ echo "Failed to build B2 build engine"
diff --git a/var/spack/repos/builtin/packages/boost/context-macho-gcc.patch b/var/spack/repos/builtin/packages/boost/context-macho-gcc.patch
new file mode 100644
index 0000000000..f36f86a2eb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/boost/context-macho-gcc.patch
@@ -0,0 +1,22 @@
+diff --git a/build/Jamfile.v2 b/build/Jamfile.v2
+index eb83bbb..8d8dac8 100644
+--- a/libs/context/build/Jamfile.v2
++++ b/libs/context/build/Jamfile.v2
+@@ -646,6 +646,17 @@ alias asm_sources
+ <toolset>clang
+ ;
+
++alias asm_sources
++ : asm/make_x86_64_sysv_macho_gas.S
++ asm/jump_x86_64_sysv_macho_gas.S
++ asm/ontop_x86_64_sysv_macho_gas.S
++ : <abi>sysv
++ <address-model>64
++ <architecture>x86
++ <binary-format>mach-o
++ <toolset>gcc
++ ;
++
+ alias asm_sources
+ : asm/make_x86_64_sysv_macho_gas.S
+ asm/jump_x86_64_sysv_macho_gas.S
diff --git a/var/spack/repos/builtin/packages/boost/nvhpc.patch b/var/spack/repos/builtin/packages/boost/nvhpc-1.74.patch
index f660f5cf53..f660f5cf53 100644
--- a/var/spack/repos/builtin/packages/boost/nvhpc.patch
+++ b/var/spack/repos/builtin/packages/boost/nvhpc-1.74.patch
diff --git a/var/spack/repos/builtin/packages/boost/nvhpc-1.76.patch b/var/spack/repos/builtin/packages/boost/nvhpc-1.76.patch
new file mode 100644
index 0000000000..b1dd564a15
--- /dev/null
+++ b/var/spack/repos/builtin/packages/boost/nvhpc-1.76.patch
@@ -0,0 +1,27 @@
+--- a/tools/build/src/engine/build.sh
++++ b/tools/build/src/engine/build.sh
+@@ -232,7 +232,7 @@
+ # AIX VA C++ (vacpp)
+ if test_toolset vacpp && test_uname AIX && test_compiler xlC_r ; then B2_TOOLSET=vacpp ; return ${TRUE} ; fi
+ # PGI (pgi)
+- if test_toolset pgi && test_compiler pgc++ -std=c++11 ; then B2_TOOLSET=pgi ; return ${TRUE} ; fi
++ if test_toolset pgi && test_compiler nvc++ -std=c++11 ; then B2_TOOLSET=pgi ; return ${TRUE} ; fi
+ # Pathscale C++ (pathscale)
+ if test_toolset pathscale && test_compiler pathCC ; then B2_TOOLSET=pathscale ; return ${TRUE} ; fi
+ # Como (como)
+--- a/tools/build/src/tools/pgi.jam 2020-08-25 08:45:01.015487600 -0700
++++ b/tools/build/src/tools/pgi.jam 2020-08-25 08:45:16.462554871 -0700
+@@ -26,11 +26,11 @@
+ {
+ local condition = [ common.check-init-parameters pgi : version $(version) ] ;
+
+- local l_command = [ common.get-invocation-command pgi : pgc++ : $(command) ] ;
++ local l_command = [ common.get-invocation-command pgi : nvc++ : $(command) ] ;
+
+ common.handle-options pgi : $(condition) : $(l_command) : $(options) ;
+
+- command_c = $(command_c[1--2]) $(l_command[-1]:B=pgcc) ;
++ command_c = $(command_c[1--2]) $(l_command[-1]:B=nvc) ;
+
+ toolset.flags pgi CONFIG_C_COMMAND $(condition) : $(command_c) ;
+
diff --git a/var/spack/repos/builtin/packages/boost/nvhpc-find_address.patch b/var/spack/repos/builtin/packages/boost/nvhpc-find_address.patch
new file mode 100644
index 0000000000..64a8558222
--- /dev/null
+++ b/var/spack/repos/builtin/packages/boost/nvhpc-find_address.patch
@@ -0,0 +1,11 @@
+--- a/libs/atomic/src/find_address_sse2.cpp
++++ b/libs/atomic/src/find_address_sse2.cpp
+@@ -51,7 +51,7 @@
+ // a hypervisor blocks SSE4.1 detection), and there pand may have a better throughput. For example,
+ // Sandy Bridge can execute 3 pand instructions per cycle, but only one andps. For this reason
+ // we prefer to generate pand and not andps.
+-#if defined(__GNUC__)
++#if defined(__GNUC__) && !defined(__NVCOMPILER)
+ __asm__("pand %1, %0\n\t" : "+x" (mm1) : "x" (mm2));
+ #else
+ mm1 = _mm_and_si128(mm1, mm2);
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index 089758fb73..dba864f4c4 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
import os
+import sys
+
+from spack import *
class Boost(Package):
@@ -17,14 +18,17 @@ class Boost(Package):
across a broad spectrum of applications. The Boost license
encourages both commercial and non-commercial use.
"""
- homepage = "http://www.boost.org"
+ homepage = "https://www.boost.org"
url = "http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2"
git = "https://github.com/boostorg/boost.git"
- list_url = "http://sourceforge.net/projects/boost/files/boost/"
+ list_url = "https://sourceforge.net/projects/boost/files/boost/"
list_depth = 1
maintainers = ['hainest']
version('develop', branch='develop', submodules=True)
+ version('1.77.0', sha256='fc9f85fc030e233142908241af7a846e60630aa7388de9a5fafb1f3a26840854')
+ version('1.76.0', sha256='f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41')
+ version('1.75.0', sha256='953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb')
version('1.74.0', sha256='83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff025e116b1')
version('1.73.0', sha256='4eb3b8d442b426dc35346235c8733b5ae35ba431690e38c6a8263dce9fcbb402')
version('1.72.0', sha256='59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722')
@@ -158,7 +162,13 @@ class Boost(Package):
description='Default symbol visibility in compiled libraries '
'(1.69.0 or later)')
+ # Unicode support
depends_on('icu4c', when='+icu')
+ depends_on('icu4c cxxstd=11', when='+icu cxxstd=11')
+ depends_on('icu4c cxxstd=14', when='+icu cxxstd=14')
+ depends_on('icu4c cxxstd=17', when='+icu cxxstd=17')
+ conflicts('cxxstd=98', when='+icu') # Requires c++11 at least
+
depends_on('python', when='+python')
depends_on('mpi', when='+mpi')
depends_on('bzip2', when='+iostreams')
@@ -189,6 +199,14 @@ class Boost(Package):
# Container's Extended Allocators were not added until 1.56.0
conflicts('+container', when='@:1.55.99')
+ # Boost.System till 1.76 (included) was relying on mutex, which was not
+ # detected correctly on Darwin platform when using GCC
+ #
+ # More details here:
+ # https://github.com/STEllAR-GROUP/hpx/issues/5442#issuecomment-878889166
+ # https://github.com/STEllAR-GROUP/hpx/issues/5442#issuecomment-878913339
+ conflicts('%gcc', when='@:1.76 +system platform=darwin')
+
# Patch fix from https://svn.boost.org/trac/boost/ticket/11856
patch('boost_11856.patch', when='@1.60.0%gcc@4.4.7')
@@ -209,7 +227,11 @@ class Boost(Package):
patch('boost_1.63.0_pgi_17.4_workaround.patch', when='@1.63.0%pgi@17.4')
# Patch to override the PGI toolset when using the NVIDIA compilers
- patch('nvhpc.patch', when='%nvhpc')
+ patch('nvhpc-1.74.patch', when='@1.74.0:1.75.9999%nvhpc')
+ patch('nvhpc-1.76.patch', when='@1.76.0:1.76.9999%nvhpc')
+
+ # Patch to workaround compiler bug
+ patch('nvhpc-find_address.patch', when='@1.75.0:1.76.999%nvhpc')
# Fix for version comparison on newer Clang on darwin
# See: https://github.com/boostorg/build/issues/440
@@ -226,7 +248,7 @@ class Boost(Package):
patch('bootstrap-path.patch', when='@1.39.0: platform=cray')
# Patch fix for warnings from commits 2d37749, af1dc84, c705bab, and
- # 0134441 on http://github.com/boostorg/system.
+ # 0134441 on https://github.com/boostorg/system.
patch('system-non-virtual-dtor-include.patch', when='@1.69.0',
level=2)
patch('system-non-virtual-dtor-test.patch', when='@1.69.0',
@@ -253,7 +275,34 @@ class Boost(Package):
# Support bzip2 and gzip in other directory
# See https://github.com/boostorg/build/pull/154
- patch('boost_154.patch', when='@:1.63.99')
+ patch('boost_154.patch', when='@1.56.0:1.63.99')
+
+ # Backport Python3 import problem
+ # See https://github.com/boostorg/python/pull/218
+ patch('boost_218.patch', when='@1.63.0:1.67.99')
+
+ # Fix B2 bootstrap toolset during installation
+ # See https://github.com/spack/spack/issues/20757
+ # and https://github.com/spack/spack/pull/21408
+ patch("bootstrap-toolset.patch", when="@1.75")
+
+ # Allow building context asm sources with GCC on Darwin
+ # See https://github.com/spack/spack/pull/24889
+ # and https://github.com/boostorg/context/issues/177
+ patch("context-macho-gcc.patch", when="@1.65:1.76 +context platform=darwin %gcc")
+
+ # Fix float128 support when building with CUDA and Cray compiler
+ # See https://github.com/boostorg/config/pull/378
+ patch("https://github.com/boostorg/config/commit/fee1ad07968386b6d547f089311b7a2c1bf7fa55.patch",
+ sha256="3b159d65a0d3d2df2a21c6bf56ffaba943fce92d2d41d628b2c4d2e924e0f421",
+ when="@:1.76%cce",
+ level=2)
+
+ # Fix building with Intel compilers
+ patch("https://github.com/bfgroup/b2/commit/23212066f0f20358db54568bb16b3fe1d76f88ce.patch",
+ sha256="93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06",
+ when="@1.77.0",
+ working_dir="tools/build")
def patch(self):
# Disable SSSE3 and AVX2 when using the NVIDIA compiler
@@ -270,7 +319,7 @@ class Boost(Package):
def url_for_version(self, version):
if version >= Version('1.63.0'):
- url = "https://dl.bintray.com/boostorg/release/{0}/source/boost_{1}.tar.bz2"
+ url = "https://boostorg.jfrog.io/artifactory/main/release/{0}/source/boost_{1}.tar.bz2"
else:
url = "http://downloads.sourceforge.net/project/boost/boost/{0}/boost_{1}.tar.bz2"
@@ -321,6 +370,11 @@ class Boost(Package):
if '+python' in spec:
options.append('--with-python=%s' % spec['python'].command.path)
+ if '+icu' in spec:
+ options.append('--with-icu')
+ else:
+ options.append('--without-icu')
+
with open('user-config.jam', 'w') as f:
# Boost may end up using gcc even though clang+gfortran is set in
# compilers.yaml. Make sure this does not happen:
@@ -356,8 +410,10 @@ class Boost(Package):
else:
options.append('variant=release')
- if '+icu_support' in spec:
- options.extend(['-s', 'ICU_PATH=%s' % spec['icu'].prefix])
+ if '+icu' in spec:
+ options.extend(['-s', 'ICU_PATH=%s' % spec['icu4c'].prefix])
+ else:
+ options.append('--disable-icu')
if '+iostreams' in spec:
options.extend([
@@ -396,7 +452,13 @@ class Boost(Package):
'--layout=%s' % layout
])
- if not spec.satisfies('%intel'):
+ if not spec.satisfies('@:1.75 %intel'):
+ # When building any version >= 1.76, the toolset must be specified.
+ # Earlier versions could not specify Intel as the toolset
+ # as that was considered to be redundant/conflicting with
+ # --with-toolset in bootstrap.
+ # (although it is not currently known if 1.76 is the earliest
+ # version that requires specifying the toolset for Intel)
options.extend([
'toolset=%s' % self.determine_toolset(spec)
])
@@ -418,7 +480,7 @@ class Boost(Package):
# clang is not officially supported for pre-compiled headers
# and at least in clang 3.9 still fails to build
- # http://www.boost.org/build/doc/html/bbv2/reference/precompiled_headers.html
+ # https://www.boost.org/build/doc/html/bbv2/reference/precompiled_headers.html
# https://svn.boost.org/trac/boost/ticket/12496
if (spec.satisfies('%apple-clang') or
spec.satisfies('%clang') or
@@ -522,7 +584,11 @@ class Boost(Package):
threading_opts = self.determine_b2_options(spec, b2_options)
- b2('--clean')
+ # Create headers if building from a git checkout
+ if '@develop' in spec:
+ b2('headers', *b2_options)
+
+ b2('--clean', *b2_options)
# In theory it could be done on one call but it fails on
# Boost.MPI if the threading options are not separated.
diff --git a/var/spack/repos/builtin/packages/boostmplcartesianproduct/package.py b/var/spack/repos/builtin/packages/boostmplcartesianproduct/package.py
index 93ae4a8322..f6b92d2744 100644
--- a/var/spack/repos/builtin/packages/boostmplcartesianproduct/package.py
+++ b/var/spack/repos/builtin/packages/boostmplcartesianproduct/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/botan/package.py b/var/spack/repos/builtin/packages/botan/package.py
index 883f7a5e8a..7a2d28fb74 100644
--- a/var/spack/repos/builtin/packages/botan/package.py
+++ b/var/spack/repos/builtin/packages/botan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,12 @@ class Botan(Package):
maintainers = ['aumuell']
+ version('2.18.1', sha256='f8c7b46222a857168a754a5cc329bb780504122b270018dda5304c98db28ae29')
+ version('2.18.0', sha256='cc64852e1e0c5bb30ecd052e4a12d5136125a8ce5c3be2efb6fb061c8677e327')
+ version('2.17.3', sha256='79123b654445a4abba486e09a431788545c708237382a3e765664c9f55b03b88')
+ version('2.17.2', sha256='ebe27dfe2b55d7e02bf520e926606c48b76b22facb483256b13ab38e018e1e6c')
+ version('2.17.1', sha256='741358b3f1638ed7d9b2f59b4e344aa46f4966b15958b5434c0ac1580df0c0c1')
+ version('2.17.0', sha256='b97044b312aa718349af7851331b064bc7bd5352400d5f80793bace427d01343')
version('2.16.0', sha256='92ed6ebc918d86bd1b04221ca518af4cf29cc326c4760740bd2d22e61cea2628')
version('2.15.0', sha256='d88af1307f1fefac79aa4f2f524699478d69ce15a857cf2d0a90ac6bf2a50009')
version('2.14.0', sha256='0c10f12b424a40ee19bde00292098e201d7498535c062d8d5b586d07861a54b5')
diff --git a/var/spack/repos/builtin/packages/bowtie/package.py b/var/spack/repos/builtin/packages/bowtie/package.py
index e473925796..a3120f5789 100644
--- a/var/spack/repos/builtin/packages/bowtie/package.py
+++ b/var/spack/repos/builtin/packages/bowtie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bowtie2/package.py b/var/spack/repos/builtin/packages/bowtie2/package.py
index e09ea00e50..ba7b404d3a 100644
--- a/var/spack/repos/builtin/packages/bowtie2/package.py
+++ b/var/spack/repos/builtin/packages/bowtie2/package.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Bowtie2(Package):
+class Bowtie2(MakefilePackage):
"""Bowtie 2 is an ultrafast and memory-efficient tool for aligning
sequencing reads to long reference sequences"""
@@ -25,49 +25,52 @@ class Bowtie2(Package):
depends_on('perl', type='run')
depends_on('python', type='run')
depends_on('zlib', when='@2.3.1:')
+ depends_on('simde', when='@2.4.0: target=aarch64:', type='link')
+ depends_on('simde', when='@2.4.0: target=ppc64le:', type='link')
patch('bowtie2-2.2.5.patch', when='@2.2.5', level=0)
patch('bowtie2-2.3.1.patch', when='@2.3.1', level=0)
patch('bowtie2-2.3.0.patch', when='@2.3.0', level=0)
- resource(name='simde', git="https://github.com/nemequ/simde",
- destination='.', when='target=aarch64:')
# seems to have trouble with 6's -std=gnu++14
conflicts('%gcc@6:', when='@:2.3.1')
+ conflicts('^intel-oneapi-tbb', when='@:2.3.5.1')
conflicts('@:2.3.5.0', when='target=aarch64:')
conflicts('@2.4.1', when='target=aarch64:')
- def patch(self):
- if self.spec.target.family == 'aarch64':
- copy_tree('simde', 'third_party/simde')
- if self.spec.satisfies('%gcc@:4.8.9'):
- filter_file('-fopenmp-simd', '', 'Makefile')
+ def edit(self, spec, prefix):
+ kwargs = {'ignore_absent': True, 'backup': False, 'string': False}
- @run_before('install')
- def filter_sbang(self):
- """Run before install so that the standard Spack sbang install hook
- can fix up the path to the perl|python binary.
- """
+ match = '^#!/usr/bin/env perl'
+ perl = spec['perl'].command
+ substitute = "#!{perl}".format(perl=perl)
+ files = ['bowtie2', ]
+ filter_file(match, substitute, *files, **kwargs)
- with working_dir(self.stage.source_path):
- kwargs = {'ignore_absent': True, 'backup': False, 'string': False}
+ match = '^#!/usr/bin/env python.*'
+ python = spec['python'].command
+ substitute = "#!{python}".format(python=python)
+ files = ['bowtie2-build', 'bowtie2-inspect']
+ filter_file(match, substitute, *files, **kwargs)
- match = '^#!/usr/bin/env perl'
- perl = self.spec['perl'].command
- substitute = "#!{perl}".format(perl=perl)
- files = ['bowtie2', ]
+ if (self.spec.satisfies('@2.4.0:2.4.2 target=aarch64:') or
+ self.spec.satisfies('@2.4.0:2.4.2 target=ppc64le:')):
+ match = '-Ithird_party/simde'
+ simdepath = spec['simde'].prefix.include
+ substitute = "-I{simdepath}".format(simdepath=simdepath)
+ files = ['Makefile']
filter_file(match, substitute, *files, **kwargs)
- match = '^#!/usr/bin/env python'
- python = self.spec['python'].command
- substitute = "#!{python}".format(python=python)
- files = ['bowtie2-build', 'bowtie2-inspect']
- filter_file(match, substitute, *files, **kwargs)
-
- def install(self, spec, prefix):
- make_arg = []
- if self.spec.target.family == 'aarch64':
+ @property
+ def build_targets(self):
+ make_arg = ['PREFIX={0}'.format(self.prefix)]
+ if self.spec.satisfies('target=aarch64:'):
make_arg.append('POPCNT_CAPABILITY=0')
- make(*make_arg)
- mkdirp(prefix.bin)
- install('bowtie2*', prefix.bin)
+ return make_arg
+
+ @property
+ def install_targets(self):
+ if self.spec.satisfies('@:2.3.9'):
+ return ['prefix={0}'.format(self.prefix), 'install']
+ else:
+ return ['PREFIX={0}'.format(self.prefix), 'install']
diff --git a/var/spack/repos/builtin/packages/boxlib/package.py b/var/spack/repos/builtin/packages/boxlib/package.py
index def583de9f..492ef31eda 100644
--- a/var/spack/repos/builtin/packages/boxlib/package.py
+++ b/var/spack/repos/builtin/packages/boxlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bpp-core/package.py b/var/spack/repos/builtin/packages/bpp-core/package.py
index 02eb02681b..95f27290f1 100644
--- a/var/spack/repos/builtin/packages/bpp-core/package.py
+++ b/var/spack/repos/builtin/packages/bpp-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class BppCore(CMakePackage):
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
url = "http://biopp.univ-montp2.fr/repos/sources/bpp-core-2.2.0.tar.gz"
+ version('2.4.1', sha256='1150b8ced22cff23dd4770d7c23fad11239070b44007740e77407f0d746c0af6')
version('2.2.0', sha256='aacd4afddd1584ab6bfa1ff6931259408f1d39958a0bdc5f78bf1f9ee4e98b79')
depends_on('cmake@2.6:', type='build')
diff --git a/var/spack/repos/builtin/packages/bpp-phyl-omics/package.py b/var/spack/repos/builtin/packages/bpp-phyl-omics/package.py
index f78c599ba1..21db65d055 100644
--- a/var/spack/repos/builtin/packages/bpp-phyl-omics/package.py
+++ b/var/spack/repos/builtin/packages/bpp-phyl-omics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bpp-phyl/package.py b/var/spack/repos/builtin/packages/bpp-phyl/package.py
index a0b73d804d..2e75ecbe49 100644
--- a/var/spack/repos/builtin/packages/bpp-phyl/package.py
+++ b/var/spack/repos/builtin/packages/bpp-phyl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bpp-seq-omics/package.py b/var/spack/repos/builtin/packages/bpp-seq-omics/package.py
index 922684ed6a..70e66ede95 100644
--- a/var/spack/repos/builtin/packages/bpp-seq-omics/package.py
+++ b/var/spack/repos/builtin/packages/bpp-seq-omics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bpp-seq/package.py b/var/spack/repos/builtin/packages/bpp-seq/package.py
index 57141e3afb..04b2a8e55a 100644
--- a/var/spack/repos/builtin/packages/bpp-seq/package.py
+++ b/var/spack/repos/builtin/packages/bpp-seq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class BppSeq(CMakePackage):
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
url = "http://biopp.univ-montp2.fr/repos/sources/bpp-seq-2.2.0.tar.gz"
+ version('2.4.1', sha256='dbfcb04803e4b7f08f9f159da8a947c91906c3ca8b20683ac193f6dc524d4655')
version('2.2.0', sha256='0927d7fb0301c1b99a7353d5876deadb4a3040776cc74e8fe1c366fe920e7b6b')
depends_on('cmake@2.6:', type='build')
diff --git a/var/spack/repos/builtin/packages/bpp-suite/package.py b/var/spack/repos/builtin/packages/bpp-suite/package.py
index 889a25de49..015362338b 100644
--- a/var/spack/repos/builtin/packages/bpp-suite/package.py
+++ b/var/spack/repos/builtin/packages/bpp-suite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bracken/package.py b/var/spack/repos/builtin/packages/bracken/package.py
index bc250f8b1e..ec20ab5335 100644
--- a/var/spack/repos/builtin/packages/bracken/package.py
+++ b/var/spack/repos/builtin/packages/bracken/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Bracken(Package):
"""Bracken (Bayesian Reestimation of Abundance with KrakEN) is a highly
diff --git a/var/spack/repos/builtin/packages/braker/package.py b/var/spack/repos/builtin/packages/braker/package.py
index b3f0f95737..4f3fe2881c 100644
--- a/var/spack/repos/builtin/packages/braker/package.py
+++ b/var/spack/repos/builtin/packages/braker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,10 @@ class Braker(Package):
url = "https://github.com/Gaius-Augustus/BRAKER/archive/v2.1.4.tar.gz"
list_url = "http://bioinf.uni-greifswald.de/augustus/binaries/old"
+ version('2.1.6', sha256='eef3c4037364472988a010322cbd79b5171158f9c016f4383809adade4866c06')
version('2.1.4', sha256='d48af5649cc879343046f9ddf180fe2c709b5810e0b78cf314bf298514d31d52')
version('1.11', sha256='cb2d9abe1720ed58753d362eee4af3791007efc617754804882d31f9fe2eab00',
- url='http://bioinf.uni-greifswald.de/augustus/binaries/old/BRAKER1_v1.11.tar.gz')
+ url='https://bioinf.uni-greifswald.de/augustus/binaries/old/BRAKER1_v1.11.tar.gz')
depends_on('perl', type=('build', 'run'))
depends_on('perl-scalar-util-numeric', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/branson/package.py b/var/spack/repos/builtin/packages/branson/package.py
index a5489668c3..91b844f63a 100644
--- a/var/spack/repos/builtin/packages/branson/package.py
+++ b/var/spack/repos/builtin/packages/branson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -27,7 +27,7 @@ class Branson(CMakePackage):
depends_on('mpi@2:')
depends_on('boost', when='@:0.81')
depends_on('metis')
- depends_on('parmetis', when='@:0.82')
+ depends_on('parmetis', when='@:0.81')
root_cmakelists_dir = 'src'
diff --git a/var/spack/repos/builtin/packages/breakdancer/package.py b/var/spack/repos/builtin/packages/breakdancer/package.py
index 0852d763c2..61d2d12c54 100644
--- a/var/spack/repos/builtin/packages/breakdancer/package.py
+++ b/var/spack/repos/builtin/packages/breakdancer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,7 +17,7 @@ class Breakdancer(CMakePackage):
BreakDancerMini focuses on detecting small indels (usually between 10bp and
100bp) using normally mapped read pairs.."""
- homepage = "http://gmt.genome.wustl.edu/packages/breakdancer"
+ homepage = "https://gmt.genome.wustl.edu/packages/breakdancer"
url = "https://github.com/genome/breakdancer/archive/v1.4.5.tar.gz"
version('1.4.5', sha256='5d74f3a90f5c69026ebb4cf4cb9ccc51ec8dd49ac7a88595a1efabd5a73e92b6')
diff --git a/var/spack/repos/builtin/packages/bref3/package.py b/var/spack/repos/builtin/packages/bref3/package.py
index 521f2f1043..7a2734a031 100644
--- a/var/spack/repos/builtin/packages/bref3/package.py
+++ b/var/spack/repos/builtin/packages/bref3/package.py
@@ -1,19 +1,20 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Bref3(Package):
"""Bref3: Converts from VCF format to bref3 format."""
- homepage = "http://faculty.washington.edu/browning/beagle/beagle.html"
+ homepage = "https://faculty.washington.edu/browning/beagle/beagle.html"
- version('2019-11-25', sha256='969c0881050c4a48d19be9ea64bf49fa68c1403b69f9f739bbfd865dda639b2d',
- expand=False, url='http://faculty.washington.edu/browning/beagle/bref3.25Nov19.28d.jar')
+ version('2019-11-25', sha256='969c0881050c4a48d19be9ea64bf49fa68c1403b69f9f739bbfd865dda639b2d',
+ expand=False, url='https://faculty.washington.edu/browning/beagle/bref3.25Nov19.28d.jar')
version('2019-07-12', sha256='8a9c3b6c38e36ef4c05a61108f083005fd985026c67d75a8173088f88816a202',
expand=False, url='https://faculty.washington.edu/browning/beagle/bref3.12Jul19.0df.jar')
version('2018-01-27', sha256='4d32f0b6d536c88d5332d961309466c8c3dd9572907a3755450d26d7ba841083',
diff --git a/var/spack/repos/builtin/packages/breseq/package.py b/var/spack/repos/builtin/packages/breseq/package.py
index 4efb1207fe..9805922714 100644
--- a/var/spack/repos/builtin/packages/breseq/package.py
+++ b/var/spack/repos/builtin/packages/breseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Breseq(AutotoolsPackage):
a reference sequence in short-read DNA re-sequencing data for haploid
microbial-sized genomes."""
- homepage = "http://barricklab.org/breseq"
+ homepage = "https://barricklab.org/breseq"
url = "https://github.com/barricklab/breseq/archive/v0.31.1.tar.gz"
version('0.33.2', sha256='c698d2d25cc7ed251ff916343a8c04f79b5540281288cb7c955f458255ac21de')
diff --git a/var/spack/repos/builtin/packages/bridger/package.py b/var/spack/repos/builtin/packages/bridger/package.py
index dbd4bb3f75..769debf525 100644
--- a/var/spack/repos/builtin/packages/bridger/package.py
+++ b/var/spack/repos/builtin/packages/bridger/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 symlink
+from spack import *
+
class Bridger(MakefilePackage, SourceforgePackage):
"""Bridger : An Efficient De novo Transcriptome Assembler For
diff --git a/var/spack/repos/builtin/packages/brigand/package.py b/var/spack/repos/builtin/packages/brigand/package.py
index afb175dd45..4f6b1d0c9a 100644
--- a/var/spack/repos/builtin/packages/brigand/package.py
+++ b/var/spack/repos/builtin/packages/brigand/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/brltty/package.py b/var/spack/repos/builtin/packages/brltty/package.py
index a5d047c954..68aa858256 100644
--- a/var/spack/repos/builtin/packages/brltty/package.py
+++ b/var/spack/repos/builtin/packages/brltty/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Brltty(AutotoolsPackage):
Linux/Unix console (when in text mode) for a blind person using
a refreshable braille display."""
- homepage = "http://brltty.app/"
+ homepage = "https://brltty.app/"
url = "https://github.com/brltty/brltty/archive/BRLTTY-6.0.tar.gz"
version('6.0', sha256='acfea5274bdc9230b0ea1a87f8796e241615d4d2c1ba08d87601b9d116c7804c')
diff --git a/var/spack/repos/builtin/packages/brotli/package.py b/var/spack/repos/builtin/packages/brotli/package.py
index f5f2e478ac..ec3396cada 100644
--- a/var/spack/repos/builtin/packages/brotli/package.py
+++ b/var/spack/repos/builtin/packages/brotli/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/brpc/package.py b/var/spack/repos/builtin/packages/brpc/package.py
index d5481d300b..a336311eaa 100644
--- a/var/spack/repos/builtin/packages/brpc/package.py
+++ b/var/spack/repos/builtin/packages/brpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/brynet/package.py b/var/spack/repos/builtin/packages/brynet/package.py
new file mode 100644
index 0000000000..7f288ba9b4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/brynet/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Brynet(CMakePackage):
+ """Header Only Cross platform high performance TCP network library
+ using C++ 11."""
+
+ homepage = "https://github.com/IronsDu/brynet"
+ url = "https://github.com/IronsDu/brynet/archive/v1.0.8.tar.gz"
+
+ version('1.10.0', sha256='a7bc20c4a2cc2f0f29af56e9355b8769256785850ddedcef226e9562e97d05cf')
+ version('1.0.8', sha256='e37dee5fa14acec99bdd7ce8530a00ff5116f608f0a5401cd2e32e10f23975fc')
+ version('1.0.7', sha256='60116fccff108d03f3ff0a3d5c1fb5ad442bad7ef155bf1a3c7819ffc9d57524')
+ version('1.0.6', sha256='5e94b5b64fbdfbcb4e33b11fb7832cf0ca3898ab6b6461867182598bab7ca65f')
+
+ def cmake_args(self):
+ args = []
+ args.append('-Dbrynet_BUILD_EXAMPLES=ON')
+ args.append('-Dbrynet_BUILD_TESTS=ON')
+ return args
diff --git a/var/spack/repos/builtin/packages/bsseeker2/package.py b/var/spack/repos/builtin/packages/bsseeker2/package.py
index 6b909156d1..995d4fe453 100644
--- a/var/spack/repos/builtin/packages/bsseeker2/package.py
+++ b/var/spack/repos/builtin/packages/bsseeker2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bubblewrap/package.py b/var/spack/repos/builtin/packages/bubblewrap/package.py
index dc00c56148..f39c42e20f 100644
--- a/var/spack/repos/builtin/packages/bubblewrap/package.py
+++ b/var/spack/repos/builtin/packages/bubblewrap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/bucky/package.py b/var/spack/repos/builtin/packages/bucky/package.py
index 41337e7e84..b6792e741c 100644
--- a/var/spack/repos/builtin/packages/bucky/package.py
+++ b/var/spack/repos/builtin/packages/bucky/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Bucky(MakefilePackage):
much of the genome supports each relationship, using Bayesian
concordance analysis."""
- homepage = "http://www.stat.wisc.edu/~ane/bucky/index.html"
+ homepage = "https://www.stat.wisc.edu/~ane/bucky/index.html"
url = "http://dstats.net/download/http://www.stat.wisc.edu/~ane/bucky/v1.4/bucky-1.4.4.tgz"
version('1.4.4', sha256='1621fee0d42314d9aa45d0082b358d4531e7d1d1a0089c807c1b21fbdc4e4592')
diff --git a/var/spack/repos/builtin/packages/buddy/package.py b/var/spack/repos/builtin/packages/buddy/package.py
index d6e92bb9b3..469e74cacd 100644
--- a/var/spack/repos/builtin/packages/buddy/package.py
+++ b/var/spack/repos/builtin/packages/buddy/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
+from spack import *
+
class Buddy(AutotoolsPackage):
"""A Binary Decision Diagram library."""
diff --git a/var/spack/repos/builtin/packages/bufr/package.py b/var/spack/repos/builtin/packages/bufr/package.py
new file mode 100644
index 0000000000..8550e5c4a2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bufr/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 Bufr(CMakePackage):
+ """The NOAA bufr library contains subroutines, functions and other
+ utilities that can be used to read (decode) and write (encode)
+ data in BUFR, which is a WMO standard format for the exchange of
+ meteorological data. This is part of the NCEPLIBS project.
+
+ """
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS-bufr"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-bufr/archive/refs/tags/bufr_v11.5.0.tar.gz"
+
+ maintainers = ['t-brown', 'kgerheiser', 'edwardhartnett', 'Hang-Lei-NOAA',
+ 'jbathegit']
+
+ version('11.5.0', sha256='d154839e29ef1fe82e58cf20232e9f8a4f0610f0e8b6a394b7ca052e58f97f43')
diff --git a/var/spack/repos/builtin/packages/bumpversion/package.py b/var/spack/repos/builtin/packages/bumpversion/package.py
index ac7e839153..fc0f4de381 100644
--- a/var/spack/repos/builtin/packages/bumpversion/package.py
+++ b/var/spack/repos/builtin/packages/bumpversion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class Bumpversion(PythonPackage):
"""Version-bump your software with a single command."""
- homepage = "https://pypi.python.org/pypi/bumpversion"
- url = "https://pypi.io/packages/source/b/bumpversion/bumpversion-0.5.0.tar.gz"
+ pypi = "bumpversion/bumpversion-0.5.0.tar.gz"
version('0.5.3', sha256='6744c873dd7aafc24453d8b6a1a0d6d109faf63cd0cd19cb78fd46e74932c77e')
version('0.5.0', sha256='030832b9b46848e1c1ac6678dba8242a021e35e908b65565800c9650291117dc')
diff --git a/var/spack/repos/builtin/packages/busco/package.py b/var/spack/repos/builtin/packages/busco/package.py
index a485dfabfe..e4124072d3 100644
--- a/var/spack/repos/builtin/packages/busco/package.py
+++ b/var/spack/repos/builtin/packages/busco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Busco(PythonPackage):
"""Assesses genome assembly and annotation completeness with Benchmarking
Universal Single-Copy Orthologs"""
- homepage = "http://busco.ezlab.org/"
+ homepage = "https://busco.ezlab.org/"
url = "https://gitlab.com/api/v4/projects/ezlab%2Fbusco/repository/archive.tar.gz?sha=2.0.1"
git = "https://gitlab.com/ezlab/busco.git"
diff --git a/var/spack/repos/builtin/packages/busybox/package.py b/var/spack/repos/builtin/packages/busybox/package.py
index 8b8d11c534..bc22704348 100644
--- a/var/spack/repos/builtin/packages/busybox/package.py
+++ b/var/spack/repos/builtin/packages/busybox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/butter/package.py b/var/spack/repos/builtin/packages/butter/package.py
index b06126e339..ff0042211d 100644
--- a/var/spack/repos/builtin/packages/butter/package.py
+++ b/var/spack/repos/builtin/packages/butter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/butterflypack/package.py b/var/spack/repos/builtin/packages/butterflypack/package.py
index 8926c2a865..aa145b28bf 100644
--- a/var/spack/repos/builtin/packages/butterflypack/package.py
+++ b/var/spack/repos/builtin/packages/butterflypack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -48,9 +48,6 @@ class Butterflypack(CMakePackage):
def cmake_args(self):
spec = self.spec
- def on_off(varstr):
- return 'ON' if varstr in spec else 'OFF'
-
args = [
'-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
'-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
@@ -60,7 +57,7 @@ class Butterflypack(CMakePackage):
'-DTPL_SCALAPACK_LIBRARIES=%s' % spec['scalapack'].
libs.joined(";"),
'-DTPL_ARPACK_LIBRARIES=%s' % spec['arpack-ng'].libs.joined(";"),
- '-DBUILD_SHARED_LIBS=%s' % on_off('+shared'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
]
return args
diff --git a/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch b/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch
index 2bebcb5023..995b03193f 100644
--- a/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch
+++ b/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch
@@ -7,7 +7,7 @@ index 9793e5e..2eecef4 100644
#include <stdint.h>
#include <assert.h>
-#include <emmintrin.h>
-+#include <SSE2NEON.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 266ac915e3..3ba4befded 100644
--- a/var/spack/repos/builtin/packages/bwa/package.py
+++ b/var/spack/repos/builtin/packages/bwa/package.py
@@ -1,16 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
+from spack import *
+
class Bwa(Package):
"""Burrow-Wheeler Aligner for pairwise alignment between DNA sequences."""
- homepage = "http://github.com/lh3/bwa"
+ homepage = "https://github.com/lh3/bwa"
url = "https://github.com/lh3/bwa/releases/download/v0.7.15/bwa-0.7.15.tar.bz2"
version('0.7.17', sha256='de1b4d4e745c0b7fc3e107b5155a51ac063011d33a5d82696331ecf4bed8d0fd')
@@ -38,6 +39,11 @@ class Bwa(Package):
'Makefile')
# use spack C compiler
filter_file('^CC=.*', 'CC={0}'.format(spack_cc), 'Makefile')
+ # fix gcc 10+ errors
+ if self.spec.satisfies('%gcc@10:'):
+ filter_file('const uint8_t rle_auxtab[8]',
+ 'extern const uint8_t rle_auxtab[8]',
+ 'rle.h', string=True)
make()
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/bwtool/package.py b/var/spack/repos/builtin/packages/bwtool/package.py
index 8bdaa4b3ec..6bc319819b 100644
--- a/var/spack/repos/builtin/packages/bwtool/package.py
+++ b/var/spack/repos/builtin/packages/bwtool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/byacc/package.py b/var/spack/repos/builtin/packages/byacc/package.py
index e262ab0420..2c20821e95 100644
--- a/var/spack/repos/builtin/packages/byacc/package.py
+++ b/var/spack/repos/builtin/packages/byacc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/byobu/package.py b/var/spack/repos/builtin/packages/byobu/package.py
index dd7d5babb8..5595c37615 100644
--- a/var/spack/repos/builtin/packages/byobu/package.py
+++ b/var/spack/repos/builtin/packages/byobu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ from spack import *
class Byobu(AutotoolsPackage):
"""Byobu: Text-based window manager and terminal multiplexer."""
- homepage = "http://www.byobu.co"
+ homepage = "https://www.byobu.co/"
url = "https://launchpad.net/byobu/trunk/5.123/+download/byobu_5.123.orig.tar.gz"
maintainers = ['matthiasdiener']
diff --git a/var/spack/repos/builtin/packages/byte-unixbench/package.py b/var/spack/repos/builtin/packages/byte-unixbench/package.py
index 96aecd8fa4..b7fa65dfa4 100644
--- a/var/spack/repos/builtin/packages/byte-unixbench/package.py
+++ b/var/spack/repos/builtin/packages/byte-unixbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class ByteUnixbench(MakefilePackage):
"""UnixBench is the original BYTE UNIX benchmark suite."""
- homepage = "https://code.google.com/archive/p/byte-unixbench"
+ homepage = "https://github.com/kdlucas/byte-unixbench"
url = "https://github.com/kdlucas/byte-unixbench/archive/v5.1.3.tar.gz"
version('5.1.3', sha256='3a6bb00f270a5329682dff20fd2c1ab5332ef046eb54a96a0d7bd371005d31a3')
diff --git a/var/spack/repos/builtin/packages/byteman/package.py b/var/spack/repos/builtin/packages/byteman/package.py
index 7656d0ef52..b3c09d556a 100644
--- a/var/spack/repos/builtin/packages/byteman/package.py
+++ b/var/spack/repos/builtin/packages/byteman/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Byteman(MavenPackage):
"""Byteman is a tool which makes it easy to trace, monitor and test
the behaviour of Java application and JDK runtime code."""
- homepage = "http://www.jboss.org/byteman"
+ homepage = "https://www.jboss.org/byteman"
url = "https://github.com/bytemanproject/byteman/archive/4.0.12.tar.gz"
version('4.0.12', sha256='72fdc904d7b8df9e743fbb5ae84e51ffc81d32b6e0b0b80fc7ac165dd8c9c7c2')
diff --git a/var/spack/repos/builtin/packages/bzip2/package.py b/var/spack/repos/builtin/packages/bzip2/package.py
index d3700a8a40..f3211d1c42 100644
--- a/var/spack/repos/builtin/packages/bzip2/package.py
+++ b/var/spack/repos/builtin/packages/bzip2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -25,6 +25,8 @@ class Bzip2(Package, SourcewarePackage):
version('1.0.6', sha256='a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd')
variant('shared', default=True, description='Enables the build of shared libraries.')
+ variant('pic', default=False, description='Build static libraries with PIC')
+ variant('debug', default=False, description='Enable debug symbols and disable optimization')
depends_on('diffutils', type='build')
@@ -43,7 +45,20 @@ class Bzip2(Package, SourcewarePackage):
'libbz2', root=self.prefix, shared=shared, recursive=True
)
+ def flag_handler(self, name, flags):
+ if name == 'cflags':
+ if '+pic' in self.spec:
+ flags.append(self.compiler.cc_pic_flag)
+ if '+debug' in self.spec:
+ flags.append('-g')
+ return(flags, None, None)
+
def patch(self):
+ if self.spec.satisfies('+debug'):
+ for makefile in ['Makefile', 'Makefile-libbz2_so']:
+ filter_file(r'-O ', '-O0 ', makefile)
+ filter_file(r'-O2 ', '-O0 ', makefile)
+
# bzip2 comes with two separate Makefiles for static and dynamic builds
# Tell both to use Spack's compiler wrapper instead of GCC
filter_file(r'^CC=gcc', 'CC={0}'.format(spack_cc), 'Makefile')
@@ -52,7 +67,7 @@ class Bzip2(Package, SourcewarePackage):
)
# The Makefiles use GCC flags that are incompatible with PGI
- if self.spec.satisfies('%pgi') or self.spec.satisfies('%nvhpc'):
+ if self.spec.satisfies('%pgi') or self.spec.satisfies('%nvhpc@:20.11'):
filter_file('-Wall -Winline', '-Minform=inform', 'Makefile')
filter_file('-Wall -Winline', '-Minform=inform',
'Makefile-libbz2_so')
diff --git a/var/spack/repos/builtin/packages/c-ares/package.py b/var/spack/repos/builtin/packages/c-ares/package.py
index 8cd7fd4b7b..616cb4d02f 100644
--- a/var/spack/repos/builtin/packages/c-ares/package.py
+++ b/var/spack/repos/builtin/packages/c-ares/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/c-blosc/package.py b/var/spack/repos/builtin/packages/c-blosc/package.py
index 7128059056..f112ee16d0 100644
--- a/var/spack/repos/builtin/packages/c-blosc/package.py
+++ b/var/spack/repos/builtin/packages/c-blosc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,10 @@ from spack import *
class CBlosc(CMakePackage):
"""Blosc, an extremely fast, multi-threaded, meta-compressor library"""
- homepage = "http://www.blosc.org"
+ homepage = "https://www.blosc.org"
url = "https://github.com/Blosc/c-blosc/archive/v1.11.1.tar.gz"
+ version('1.21.0', sha256='b0ef4fda82a1d9cbd11e0f4b9685abf14372db51703c595ecd4d76001a8b342d')
version('1.17.0', sha256='75d98c752b8cf0d4a6380a3089d56523f175b0afa2d0cf724a1bd0a1a8f975a4')
version('1.16.3', sha256='bec56cb0956725beb93d50478e918aca09f489f1bfe543dbd3087827a7344396')
version('1.15.0', sha256='dbbb01f9fedcdf2c2ff73296353a9253f44ce9de89c081cbd8146170dce2ba8f')
diff --git a/var/spack/repos/builtin/packages/c-blosc2/package.py b/var/spack/repos/builtin/packages/c-blosc2/package.py
index 98b4326f06..d7b91125e1 100644
--- a/var/spack/repos/builtin/packages/c-blosc2/package.py
+++ b/var/spack/repos/builtin/packages/c-blosc2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,15 @@ class CBlosc2(CMakePackage):
"""Next generation c-blosc with a new API, a new container and
other bells and whistles"""
- homepage = "http://www.blosc.org"
+ homepage = "https://www.blosc.org/"
+ url = "https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.0.1.tar.gz"
git = "https://github.com/Blosc/c-blosc2.git"
- maintainers = ['ax3l']
+ maintainers = ['ax3l', 'robert-mijakovic']
version('develop', branch='master')
+ version('2.0.2', sha256='fba51ba601610441eea6046e384284b2d8d7884922060cf15369d01d713b9b77')
+ version('2.0.1', sha256='35b93dfed479b1dfd9372d41d7843b60254ed1d71792577b95e489c28705874f')
variant('avx2', default=True, description='Enable AVX2 support')
@@ -58,12 +61,9 @@ class CBlosc2(CMakePackage):
'-DPREFER_EXTERNAL_ZSTD=ON',
'-DDEACTIVATE_AVX2={0}'.format(
'ON' if '~avx2' in spec else 'OFF'),
- '-DBUILD_TESTS={0}'.format(
- 'ON' if self.run_tests else 'OFF'),
- '-DBUILD_BENCHMARKS={0}'.format(
- 'ON' if self.run_tests else 'OFF'),
- '-DBUILD_EXAMPLES={0}'.format(
- 'ON' if self.run_tests else 'OFF')
+ self.define('BUILD_TESTS', self.run_tests),
+ self.define('BUILD_BENCHMARKS', self.run_tests),
+ self.define('BUILD_EXAMPLES', self.run_tests)
]
return args
diff --git a/var/spack/repos/builtin/packages/c-lime/package.py b/var/spack/repos/builtin/packages/c-lime/package.py
index 525861a161..aefc97b8fd 100644
--- a/var/spack/repos/builtin/packages/c-lime/package.py
+++ b/var/spack/repos/builtin/packages/c-lime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/c/package.py b/var/spack/repos/builtin/packages/c/package.py
index 72a3343aa1..e49139136f 100644
--- a/var/spack/repos/builtin/packages/c/package.py
+++ b/var/spack/repos/builtin/packages/c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py b/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py
new file mode 100644
index 0000000000..b49ef03cf7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ca-certificates-mozilla/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2021 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 CaCertificatesMozilla(Package):
+ """The Mozilla CA certificate store in PEM format"""
+
+ homepage = "https://curl.se/docs/caextract.html"
+ url = "https://curl.se/ca/cacert-2021-04-13.pem"
+
+ maintainers = ['haampie']
+
+ version('2021-07-05', sha256='a3b534269c6974631db35f952e8d7c7dbf3d81ab329a232df575c2661de1214a', expand=False)
+ version('2021-05-25', sha256='3a32ad57e7f5556e36ede625b854057ac51f996d59e0952c207040077cbe48a9', expand=False)
+ version('2021-04-13', sha256='533610ad2b004c1622a40622f86ced5e89762e1c0e4b3ae08b31b240d863e91f', expand=False)
+ version('2021-01-19', sha256='e010c0c071a2c79a76aa3c289dc7e4ac4ed38492bfda06d766a80b707ebd2f29', expand=False)
+ version('2020-12-08', sha256='313d562594ebd07846ad6b840dd18993f22e0f8b3f275d9aacfae118f4f00fb7', expand=False)
+ version('2020-10-14', sha256='bb28d145ed1a4ee67253d8ddb11268069c9dafe3db25a9eee654974c4e43eee5', expand=False)
+ version('2020-07-22', sha256='2782f0f8e89c786f40240fc1916677be660fb8d8e25dede50c9f6f7b0c2c2178', expand=False)
+ version('2020-06-24', sha256='726889705b00f736200ed7999f7a50021b8735d53228d679c4e6665aa3b44987', expand=False)
+ version('2020-01-01', sha256='adf770dfd574a0d6026bfaa270cb6879b063957177a991d453ff1d302c02081f', expand=False)
+ version('2019-11-27', sha256='0d98a1a961aab523c9dc547e315e1d79e887dea575426ff03567e455fc0b66b4', expand=False)
+ version('2019-10-16', sha256='5cd8052fcf548ba7e08899d8458a32942bf70450c9af67a0850b4c711804a2e4', expand=False)
+ version('2019-08-28', sha256='38b6230aa4bee062cd34ee0ff6da173250899642b1937fc130896290b6bd91e3', expand=False)
+
+ # Make spack checksum work
+ def url_for_version(self, version):
+ return "https://curl.se/ca/cacert-{0}.pem".format(version)
+
+ # Install the the pem file as share/cacert.pem
+ def install(self, spec, prefix):
+ share = join_path(self.prefix, 'share')
+ mkdir(share)
+ install("cacert-{0}.pem".format(spec.version),
+ join_path(share, "cacert.pem"))
diff --git a/var/spack/repos/builtin/packages/cabana/package.py b/var/spack/repos/builtin/packages/cabana/package.py
index b84bfa60b0..ff55a5661a 100644
--- a/var/spack/repos/builtin/packages/cabana/package.py
+++ b/var/spack/repos/builtin/packages/cabana/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cachefilesd/package.py b/var/spack/repos/builtin/packages/cachefilesd/package.py
index 7924d395eb..3b0a2115c3 100644
--- a/var/spack/repos/builtin/packages/cachefilesd/package.py
+++ b/var/spack/repos/builtin/packages/cachefilesd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class Cachefilesd(MakefilePackage):
are that are used by network file systems such a AFS and NFS to do
persistent caching to the local disk."""
- homepage = "http://people.redhat.com/~dhowells/fscache"
- url = "http://people.redhat.com/~dhowells/fscache/cachefilesd-0.10.tar.bz2"
+ homepage = "https://people.redhat.com/~dhowells/fscache"
+ url = "https://people.redhat.com/~dhowells/fscache/cachefilesd-0.10.tar.bz2"
version('0.10.10', sha256='0d0309851efabd02b7c849f73535b8ad3f831570e83e4f65e42354da18e11a02')
version('0.10.9', sha256='c897ec6704615f26de3ddc20ff30a191ce995cb8973d2cde88b4b28c1a1e6bca')
diff --git a/var/spack/repos/builtin/packages/caffe/package.py b/var/spack/repos/builtin/packages/caffe/package.py
index 187bdc5764..4ae48b4196 100644
--- a/var/spack/repos/builtin/packages/caffe/package.py
+++ b/var/spack/repos/builtin/packages/caffe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,12 +6,12 @@
from spack import *
-class Caffe(CMakePackage):
+class Caffe(CMakePackage, CudaPackage):
"""Caffe is a deep learning framework made with expression, speed, and
modularity in mind. It is developed by the Berkeley Vision and Learning
Center (BVLC) and by community contributors."""
- homepage = "http://caffe.berkeleyvision.org"
+ homepage = "https://caffe.berkeleyvision.org"
url = "https://github.com/BVLC/caffe/archive/1.0.tar.gz"
version('1.0', sha256='71d3c9eb8a183150f965a465824d01fe82826c22505f7aa314f700ace03fa77f')
@@ -43,7 +43,7 @@ class Caffe(CMakePackage):
depends_on('hdf5 +hl +cxx')
# Optional dependencies
- depends_on('opencv@3.2.0+core+highgui+imgproc', when='+opencv')
+ depends_on('opencv@3.2.0:3.4.12+core+highgui+imgproc+imgcodecs', when='+opencv')
depends_on('leveldb', when='+leveldb')
depends_on('lmdb', when='+lmdb')
depends_on('python@2.7:', when='+python')
@@ -87,4 +87,10 @@ class Caffe(CMakePackage):
'-DCMAKE_CXX_COMPILER={0}'.format(self.spec['mpi'].mpicxx)
])
+ if '+cuda' in spec:
+ if spec.variants['cuda_arch'].value[0] != 'none':
+ cuda_arch = spec.variants['cuda_arch'].value
+ args.append(self.define('CUDA_ARCH_NAME', 'Manual'))
+ args.append(self.define('CUDA_ARCH_BIN', ' '.join(cuda_arch)))
+
return args
diff --git a/var/spack/repos/builtin/packages/cairo/disable-gtk-docs.patch b/var/spack/repos/builtin/packages/cairo/disable-gtk-docs.patch
new file mode 100644
index 0000000000..eeb5abcb1e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cairo/disable-gtk-docs.patch
@@ -0,0 +1,17 @@
+--- a/autogen.sh 2021-06-08 19:55:17.000000000 -0400
++++ b/autogen.sh 2021-06-08 19:58:29.000000000 -0400
+@@ -13,13 +13,7 @@
+ exit 1
+ fi
+
+-GTKDOCIZE=`which gtkdocize`
+-if test -z $GTKDOCIZE; then
+- echo "*** No GTK-Doc found, documentation won't be generated ***"
+-else
+- gtkdocize || exit $?
+-fi
+-
++export GTKDOCIZE=echo
+ # create dummy */Makefile.am.features and ChangeLog to make automake happy
+ > boilerplate/Makefile.am.features
+ > src/Makefile.am.features
diff --git a/var/spack/repos/builtin/packages/cairo/package.py b/var/spack/repos/builtin/packages/cairo/package.py
index 0092d0bfb1..df9f1d7e2f 100644
--- a/var/spack/repos/builtin/packages/cairo/package.py
+++ b/var/spack/repos/builtin/packages/cairo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -51,12 +51,13 @@ class Cairo(AutotoolsPackage):
# patch from https://gitlab.freedesktop.org/cairo/cairo/issues/346
patch('fontconfig.patch', when='@1.16.0:1.17.2')
-
- def setup_build_environment(self, env):
- env.set('NOCONFIGURE', "1")
+ # Don't regenerate docs to avoid a dependency on gtk-doc
+ patch('disable-gtk-docs.patch', when='^autoconf@2.70:')
def autoreconf(self, spec, prefix):
- which('sh')('./autogen.sh')
+ # Regenerate, directing the script *not* to call configure before Spack
+ # does
+ which('sh')('./autogen.sh', extra_env={'NOCONFIGURE': '1'})
def configure_args(self):
args = [
diff --git a/var/spack/repos/builtin/packages/cairomm/package.py b/var/spack/repos/builtin/packages/cairomm/package.py
index 39424e7c7e..8f6f2ef60e 100644
--- a/var/spack/repos/builtin/packages/cairomm/package.py
+++ b/var/spack/repos/builtin/packages/cairomm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py
index fe55a69133..b424c0e693 100644
--- a/var/spack/repos/builtin/packages/caliper/package.py
+++ b/var/spack/repos/builtin/packages/caliper/package.py
@@ -1,14 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
-class Caliper(CMakePackage):
+
+class Caliper(CMakePackage, CudaPackage):
"""Caliper is a program instrumentation and performance measurement
framework. It is designed as a performance analysis toolbox in a
library, allowing one to bake performance analysis capabilities
@@ -17,8 +18,15 @@ class Caliper(CMakePackage):
homepage = "https://github.com/LLNL/Caliper"
git = "https://github.com/LLNL/Caliper.git"
+ url = "https://github.com/LLNL/Caliper/archive/v2.6.0.tar.gz"
+
+ maintainers = ["daboehme"]
- version('master')
+ test_requires_compiler = True
+
+ version('master', branch='master')
+ version('2.6.0', sha256='6efcd3e4845cc9a6169e0d934840766b12182c6d09aa3ceca4ae776e23b6360f')
+ version('2.5.0', sha256='d553e60697d61c53de369b9ca464eb30710bda90fba9671201543b64eeac943c')
version('2.4.0', tag='v2.4.0')
version('2.3.0', tag='v2.3.0')
version('2.2.0', tag='v2.2.0')
@@ -36,15 +44,15 @@ class Caliper(CMakePackage):
description='Enable Adiak support')
variant('mpi', default=True,
description='Enable MPI wrappers')
- variant('dyninst', default=False,
- description='Enable symbol translation support with dyninst')
# libunwind has some issues on Mac
- variant('callpath', default=sys.platform != 'darwin',
- description='Enable callpath service (requires libunwind)')
+ variant('libunwind', default=sys.platform != 'darwin',
+ description='Enable stack unwind support')
+ variant('libdw', default=is_linux,
+ description='Enable DWARF symbol lookup')
# pthread_self() signature is incompatible with PAPI_thread_init() on Mac
variant('papi', default=sys.platform != 'darwin',
description='Enable PAPI service')
- variant('libpfm', default=is_linux,
+ variant('libpfm', default=False,
description='Enable libpfm (perf_events) service')
# Gotcha is Linux-only
variant('gotcha', default=is_linux,
@@ -53,18 +61,19 @@ class Caliper(CMakePackage):
description='Enable sampling support on Linux')
variant('sosflow', default=False,
description='Enable SOSflow support')
+ variant('fortran', default=False,
+ description='Enable Fortran support')
depends_on('adiak@0.1:0.99', when='@2.2: +adiak')
- depends_on('dyninst@10.0:10.99', when='@2: +dyninst')
-
depends_on('papi@5.3:5.99', when='@:2.2 +papi')
depends_on('papi@5.3:6.99', when='@2.3: +papi')
depends_on('libpfm4@4.8:4.99', when='+libpfm')
depends_on('mpi', when='+mpi')
- depends_on('unwind@1.2:1.99', when='+callpath')
+ depends_on('unwind@1.2:1.99', when='+libunwind')
+ depends_on('elfutils', when='+libdw')
depends_on('sosflow@spack', when='@1.0:1.99+sosflow')
@@ -72,12 +81,9 @@ class Caliper(CMakePackage):
depends_on('python', type='build')
# sosflow support not yet in 2.0
- conflicts('+sosflow', '@2.0.0:2.4.99')
+ conflicts('+sosflow', '@2.0.0:2.5.99')
conflicts('+adiak', '@:2.1.99')
-
- # The Dyninst 9.X used by v1.9.X is deprecated
- conflicts('+dyninst', when='@:1.99',
- msg='Dyninst unsupported by version <=2.0.1')
+ conflicts('+libdw', '@:2.4.99')
patch('for_aarch64.patch', when='target=aarch64:')
@@ -91,27 +97,78 @@ class Caliper(CMakePackage):
'-DBUILD_DOCS=Off',
'-DBUILD_SHARED_LIBS=%s' % ('On' if '+shared' in spec else 'Off'),
'-DWITH_ADIAK=%s' % ('On' if '+adiak' in spec else 'Off'),
- '-DWITH_DYNINST=%s' % ('On' if '+dyninst' in spec else 'Off'),
- '-DWITH_CALLPATH=%s' % ('On' if '+callpath' in spec else 'Off'),
'-DWITH_GOTCHA=%s' % ('On' if '+gotcha' in spec else 'Off'),
'-DWITH_PAPI=%s' % ('On' if '+papi' in spec else 'Off'),
+ '-DWITH_LIBDW=%s' % ('On' if '+libdw' in spec else 'Off'),
'-DWITH_LIBPFM=%s' % ('On' if '+libpfm' in spec else 'Off'),
'-DWITH_SOSFLOW=%s' % ('On' if '+sosflow' in spec else 'Off'),
'-DWITH_SAMPLER=%s' % ('On' if '+sampler' in spec else 'Off'),
- '-DWITH_MPI=%s' % ('On' if '+mpi' in spec else 'Off')
+ '-DWITH_MPI=%s' % ('On' if '+mpi' in spec else 'Off'),
+ '-DWITH_FORTRAN=%s' % ('On' if '+fortran' in spec else 'Off')
]
if '+papi' in spec:
args.append('-DPAPI_PREFIX=%s' % spec['papi'].prefix)
+ if '+libdw' in spec:
+ args.append('-DLIBDW_PREFIX=%s' % spec['elfutils'].prefix)
if '+libpfm' in spec:
args.append('-DLIBPFM_INSTALL=%s' % spec['libpfm4'].prefix)
if '+sosflow' in spec:
args.append('-DSOS_PREFIX=%s' % spec['sosflow'].prefix)
- if '+callpath' in spec:
- args.append('-DLIBUNWIND_PREFIX=%s' % spec['libunwind'].prefix)
+
+ # -DWITH_CALLPATH was renamed -DWITH_LIBUNWIND in 2.5
+ callpath_flag = 'LIBUNWIND' if spec.satisfies('@2.5:') else 'CALLPATH'
+ if '+libunwind' in spec:
+ args.append('-DLIBUNWIND_PREFIX=%s' % spec['unwind'].prefix)
+ args.append('-DWITH_%s=On' % callpath_flag)
+ else:
+ args.append('-DWITH_%s=Off' % callpath_flag)
if '+mpi' in spec:
args.append('-DMPI_C_COMPILER=%s' % spec['mpi'].mpicc)
args.append('-DMPI_CXX_COMPILER=%s' % spec['mpi'].mpicxx)
+ if '+cuda' in spec:
+ args.append('-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix)
+ # technically only works with cuda 10.2+, otherwise cupti is in
+ # ${CUDA_TOOLKIT_ROOT_DIR}/extras/CUPTI
+ args.append('-DCUPTI_PREFIX=%s' % spec['cuda'].prefix)
+ args.append('-DWITH_NVTX=On')
+ args.append('-DWITH_CUPTI=On')
+ else:
+ args.append('-DWITH_NVTX=Off')
+ args.append('-DWITH_CUPTI=Off')
+
return args
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([join_path('examples', 'apps')])
+
+ def run_cxx_example_test(self):
+ """Run stand alone test: cxx_example"""
+
+ test_dir = join_path(self.test_suite.current_test_cache_dir, 'examples', 'apps')
+
+ if not os.path.exists(test_dir):
+ print('Skipping caliper test')
+ return
+
+ exe = 'cxx-example'
+
+ self.run_test(exe='gcc',
+ options=['{0}'.format(join_path(test_dir, 'cxx-example.cpp')),
+ '-L{0}'.format(join_path(self.prefix, 'lib64')),
+ '-I{0}'.format(join_path(self.prefix, 'include')),
+ '-std=c++11', '-lcaliper', '-lstdc++', '-o', exe],
+ purpose='test: compile {0} example'.format(exe),
+ work_dir=test_dir)
+
+ self.run_test(exe,
+ purpose='test: run {0} example'.format(exe),
+ work_dir=test_dir)
+
+ def test(self):
+ self.run_cxx_example_test()
diff --git a/var/spack/repos/builtin/packages/callflow/package.py b/var/spack/repos/builtin/packages/callflow/package.py
new file mode 100644
index 0000000000..051a9172d3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/callflow/package.py
@@ -0,0 +1,43 @@
+# Copyright 2013-2021 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 Callflow(PythonPackage):
+ """CallFlow is an interactive visual analysis tool that provides a
+ high-level overview of CCTs together with semantic refinement
+ operations to progressively explore the CCTs."""
+
+ homepage = "https://github.com/LLNL/CallFlow"
+ url = "https://github.com/LLNL/CallFlow/archive/v1.1.0.tar.gz"
+ git = 'https://github.com/LLNL/CallFlow.git'
+
+ maintainers = ["bhatiaharsh", "jarusified"]
+
+ version('develop', branch='develop')
+ version('1.1.2', sha256='60d2327843469f42be9366ff31d7a6afc85021af4e38b7d6704b2d8c3da7ed36')
+ version('1.1.1', sha256='a52e6e0697a406dfe391225d3cc3c5c5a12a6c86b68f0f8e47777c79fd45cb28')
+ version('1.1.0', sha256='f8b875eb62fbac04b117e3c23fccff99d768158226a9b7fa222a2b2a6acafa44')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-hatchet', type=('build', 'run'))
+ depends_on('py-statsmodels', type=('build', 'run'))
+ depends_on('py-scikit-learn', type=('build', 'run'))
+
+ depends_on('py-colorlog', type=('build', 'run'))
+ depends_on('py-jsonschema', type=('build', 'run'))
+
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-networkx', type=('build', 'run'))
+
+ depends_on('py-ipython', type=('build', 'run'))
+ depends_on('py-flask-socketio', type=('build', 'run'))
+ depends_on('py-flask-cors', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/callpath/package.py b/var/spack/repos/builtin/packages/callpath/package.py
index 300f55e8d5..a055c67cb8 100644
--- a/var/spack/repos/builtin/packages/callpath/package.py
+++ b/var/spack/repos/builtin/packages/callpath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/camellia/package.py b/var/spack/repos/builtin/packages/camellia/package.py
index ba443a80af..241c0add79 100644
--- a/var/spack/repos/builtin/packages/camellia/package.py
+++ b/var/spack/repos/builtin/packages/camellia/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,7 +20,7 @@ class Camellia(CMakePackage):
variant('moab', default=True, description='Compile with MOAB to include support for reading standard mesh formats')
- depends_on('trilinos+amesos+amesos2+belos+epetra+epetraext+exodus+ifpack+ifpack2+intrepid+intrepid2+kokkos+ml+muelu+sacado+shards+teuchos+tpetra+zoltan+mumps+superlu-dist+hdf5+zlib+pnetcdf@master,12.12.1:')
+ depends_on('trilinos+amesos+amesos2+belos+epetra+epetraext+exodus+ifpack+ifpack2+intrepid+intrepid2+kokkos+ml+muelu+sacado+shards+tpetra+zoltan+mumps+superlu-dist+hdf5+zlib+mpi@master,12.12.1:')
depends_on('moab@:4', when='+moab')
# Cameilla needs hdf5 but the description "hdf5@:1.8" is
diff --git a/var/spack/repos/builtin/packages/camp/package.py b/var/spack/repos/builtin/packages/camp/package.py
index 882bfec528..872eb8b6b7 100644
--- a/var/spack/repos/builtin/packages/camp/package.py
+++ b/var/spack/repos/builtin/packages/camp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,11 +16,16 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
git = "https://github.com/LLNL/camp.git"
url = "https://github.com/LLNL/camp/archive/v0.1.0.tar.gz"
- version('master', branch='master', submodules='True')
+ maintainers = ['trws']
+
+ version('main', branch='main', submodules='True')
+ version('0.2.2', sha256='194d38b57e50e3494482a7f94940b27f37a2bee8291f2574d64db342b981d819')
version('0.1.0', sha256='fd4f0f2a60b82a12a1d9f943f8893dc6fe770db493f8fae5ef6f7d0c439bebcc')
- depends_on('cmake@3.8:', type='build')
- depends_on('cmake@3.9:', type='build', when="+cuda")
+ # TODO: figure out gtest dependency and then set this default True.
+ variant('tests', default=False, description='Build tests')
+
+ depends_on('cub', when='+cuda')
def cmake_args(self):
spec = self.spec
@@ -54,7 +59,6 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
else:
options.append('-DENABLE_HIP=OFF')
- options.append('-DENABLE_TESTS={0}'.format(
- "On" if self.run_tests else "Off"))
+ options.append(self.define_from_variant('ENABLE_TESTS', 'tests'))
return options
diff --git a/var/spack/repos/builtin/packages/camx/package.py b/var/spack/repos/builtin/packages/camx/package.py
index 473c60ca05..c2eed5b3b2 100644
--- a/var/spack/repos/builtin/packages/camx/package.py
+++ b/var/spack/repos/builtin/packages/camx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ from spack import *
class Camx(MakefilePackage):
'''Comprehensive Air Quality Model with Extensions.'''
- homepage = 'http://www.camx.com'
+ homepage = 'https://www.camx.com'
# Upstream obfuscates their download URL to get you to fill out their
# registration form and accept their license agreement.
diff --git a/var/spack/repos/builtin/packages/canal/package.py b/var/spack/repos/builtin/packages/canal/package.py
index 3dd982a0e4..3600356c10 100644
--- a/var/spack/repos/builtin/packages/canal/package.py
+++ b/var/spack/repos/builtin/packages/canal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/candle-benchmarks/package.py b/var/spack/repos/builtin/packages/candle-benchmarks/package.py
index b0f276108f..8593e141cd 100644
--- a/var/spack/repos/builtin/packages/candle-benchmarks/package.py
+++ b/var/spack/repos/builtin/packages/candle-benchmarks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py
index 9846fff48d..e954037cef 100644
--- a/var/spack/repos/builtin/packages/cantera/package.py
+++ b/var/spack/repos/builtin/packages/cantera/package.py
@@ -1,19 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Cantera(SConsPackage):
"""Cantera is a suite of object-oriented software tools for problems
involving chemical kinetics, thermodynamics, and/or transport processes."""
- homepage = "http://www.cantera.org/docs/sphinx/html/index.html"
- url = "https://github.com/Cantera/cantera/archive/v2.3.0.tar.gz"
+ homepage = "https://www.cantera.org/docs/sphinx/html/index.html"
+ url = "https://github.com/Cantera/cantera/archive/v2.5.1.tar.gz"
+ version('2.5.1', sha256='59f673cec686bc9b1eeccc1b1c9158a3978a3abe7491d00e8b355908c1c3be0a')
version('2.4.0', sha256='0dc771693b657d8f4ba835dd229939e5b9cfd8348d2f5ba82775451a524365a5')
version('2.3.0', sha256='06624f0f06bdd2acc9c0dba13443d945323ba40f68a9d422d95247c02e539b57')
version('2.2.1', sha256='c7bca241848f541466f56e479402521c618410168e8983e2b54ae48888480e1e')
@@ -33,6 +35,7 @@ class Cantera(SConsPackage):
depends_on('sundials@:3.1.2+lapack', when='+sundials') # must be compiled with -fPIC
depends_on('blas')
depends_on('lapack')
+ depends_on('yaml-cpp')
# Python module dependencies
extends('python', when='+python')
diff --git a/var/spack/repos/builtin/packages/canu/package.py b/var/spack/repos/builtin/packages/canu/package.py
index 1bf0e0cca1..574d8fd831 100644
--- a/var/spack/repos/builtin/packages/canu/package.py
+++ b/var/spack/repos/builtin/packages/canu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Canu(MakefilePackage):
"""A single molecule sequence assembler for genomes large and
small."""
- homepage = "http://canu.readthedocs.io/"
+ homepage = "https://canu.readthedocs.io/"
url = "https://github.com/marbl/canu/archive/v1.5.tar.gz"
version('2.0', sha256='e2e6e8b5ec4dd4cfba5e372f4a64b2c01fbd544d4b5867746021f10771a6f4ef')
diff --git a/var/spack/repos/builtin/packages/cap3/package.py b/var/spack/repos/builtin/packages/cap3/package.py
index 45feee4ef0..ad87342455 100644
--- a/var/spack/repos/builtin/packages/cap3/package.py
+++ b/var/spack/repos/builtin/packages/cap3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/capnproto/package.py b/var/spack/repos/builtin/packages/capnproto/package.py
index 2533e8aabe..48a3f4a70f 100644
--- a/var/spack/repos/builtin/packages/capnproto/package.py
+++ b/var/spack/repos/builtin/packages/capnproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,7 @@ class Capnproto(AutotoolsPackage):
url = "https://capnproto.org/capnproto-c++-0.7.0.tar.gz"
git = "https://github.com/capnproto/capnproto"
+ version('0.8.0', sha256='d1f40e47574c65700f0ec98bf66729378efabe3c72bc0cda795037498541c10d')
version('0.7.0', sha256='c9a4c0bd88123064d483ab46ecee777f14d933359e23bff6fb4f4dbd28b4cd41')
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/capstone/package.py b/var/spack/repos/builtin/packages/capstone/package.py
index 619856ebac..4251e37841 100644
--- a/var/spack/repos/builtin/packages/capstone/package.py
+++ b/var/spack/repos/builtin/packages/capstone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Capstone(CMakePackage):
"""Capstone is a lightweight multi-platform,
multi-architecture disassembly framework."""
- homepage = "http://www.capstone-engine.org/"
+ homepage = "https://www.capstone-engine.org/"
url = "https://github.com/aquynh/capstone/archive/4.0.1.tar.gz"
git = "https://github.com/aquynh/capstone.git"
diff --git a/var/spack/repos/builtin/packages/cardioid/package.py b/var/spack/repos/builtin/packages/cardioid/package.py
index b3effc28e4..10043b6240 100644
--- a/var/spack/repos/builtin/packages/cardioid/package.py
+++ b/var/spack/repos/builtin/packages/cardioid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/care/package.py b/var/spack/repos/builtin/packages/care/package.py
new file mode 100644
index 0000000000..0cd358c60a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/care/package.py
@@ -0,0 +1,131 @@
+# Copyright 2013-2021 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 Care(CMakePackage, CudaPackage, ROCmPackage):
+ """
+ Algorithms for chai managed arrays.
+ """
+
+ homepage = "https://github.com/LLNL/CARE"
+ git = "https://github.com/LLNL/CARE.git"
+
+ version('develop', branch='develop', submodules='True')
+ version('master', branch='main', submodules='True')
+ version('0.3.0', tag='v0.3.0', submodules='True')
+ version('0.2.0', tag='v0.2.0', submodules='True')
+
+ variant('openmp', default=False, description='Build Shared Libs')
+ variant('implicit_conversions', default=True, description='Enable implicit'
+ 'conversions to/from raw pointers')
+ variant('benchmarks', default=True, description='Build benchmarks.')
+ variant('examples', default=True, description='Build examples.')
+ variant('docs', default=False, description='Build documentation')
+ variant('tests', default=False, description='Build tests')
+ variant('loop_fuser', default=False, description='Enable loop fusion capability')
+
+ depends_on('blt@0.4.0:', type='build', when='@0.3.1:')
+ depends_on('blt@:0.3.6', type='build', when='@:0.3.0')
+
+ depends_on('camp')
+ depends_on('umpire@develop')
+ depends_on('raja@develop')
+ depends_on('chai@develop+enable_pick~benchmarks')
+
+ # WARNING: this package currently only supports an internal cub
+ # package. This will cause a race condition if compiled with another
+ # package that uses cub. TODO: have all packages point to the same external
+ # cub package.
+ depends_on('camp+cuda', when='+cuda')
+ depends_on('umpire+cuda~shared', when='+cuda')
+ depends_on('cub', when='+cuda')
+ depends_on('raja+cuda~openmp', when='+cuda')
+ depends_on('chai+cuda~shared', when='+cuda')
+
+ # variants +rocm and amdgpu_targets are not automatically passed to
+ # dependencies, so do it manually.
+ depends_on('camp+rocm', when='+rocm')
+ depends_on('umpire+rocm', when='+rocm')
+ depends_on('raja+rocm~openmp', when='+rocm')
+ depends_on('chai+rocm', when='+rocm')
+ for val in ROCmPackage.amdgpu_targets:
+ depends_on('camp amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+ depends_on('umpire amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+ depends_on('raja amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+ depends_on('chai amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+
+ conflicts('+openmp', when='+rocm')
+ conflicts('+openmp', when='+cuda')
+
+ def cmake_args(self):
+ spec = self.spec
+ from_variant = self.define_from_variant
+
+ options = []
+ options.append('-DBLT_SOURCE_DIR={0}'.format(spec['blt'].prefix))
+
+ if '+cuda' in spec:
+ options.extend([
+ '-DENABLE_CUDA=ON',
+ '-DCUDA_TOOLKIT_ROOT_DIR=' + spec['cuda'].prefix,
+ '-DNVTOOLSEXT_DIR=' + spec['cuda'].prefix,
+ '-DCUB_DIR=' + spec['cub'].prefix])
+
+ if not spec.satisfies('cuda_arch=none'):
+ cuda_arch = spec.variants['cuda_arch'].value
+ # Please note that within care, CUDA_ARCH is assigned to -code
+ # and likewise CUDA_CODE is assigned to -arch, so these are
+ # intentionally flipped here.
+ options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0]))
+ options.append('-DCUDA_CODE=compute_{0}'.format(cuda_arch[0]))
+ else:
+ options.append('-DENABLE_CUDA=OFF')
+
+ if '+rocm' in spec:
+ options.extend([
+ '-DENABLE_HIP=ON',
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix)])
+
+ archs = self.spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ options.append(
+ '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch_str)
+ )
+ else:
+ options.append('-DENABLE_HIP=OFF')
+
+ options.extend([
+ from_variant('CARE_ENABLE_IMPLICIT_CONVERSIONS',
+ 'implicit_conversions'),
+ from_variant('CARE_ENABLE_LOOP_FUSER', 'loop_fuser'),
+ self.define('CAMP_DIR', spec['camp'].prefix.share.camp.cmake),
+ self.define('UMPIRE_DIR', spec['umpire'].prefix.share.umpire.cmake),
+ self.define('RAJA_DIR', spec['raja'].prefix.share.raja.cmake),
+ self.define('CHAI_DIR', spec['chai'].prefix.share.chai.cmake),
+ from_variant('CARE_ENABLE_TESTS', 'tests'),
+ ])
+
+ # For tests to work, we also need BLT_ENABLE_TESTS to be on.
+ # This will take care of the gtest dependency. CARE developers should
+ # consider consolidating these flags in the future.
+ options.append(from_variant('BLT_ENABLE_TESTS', 'tests'))
+
+ # There are both CARE_ENABLE_* and ENABLE_* variables in here because
+ # one controls the BLT infrastructure and the other controls the CARE
+ # infrastructure. The goal is to just be able to use the CARE_ENABLE_*
+ # variables, but CARE isn't set up correctly for that yet.
+ options.append(from_variant('ENABLE_BENCHMARKS', 'benchmarks'))
+ options.append(from_variant('CARE_ENABLE_BENCHMARKS', 'benchmarks'))
+
+ options.append(from_variant('ENABLE_EXAMPLES', 'examples'))
+ options.append(from_variant('CARE_ENABLE_EXAMPLES', 'examples'))
+
+ options.append(from_variant('ENABLE_DOCS', 'docs'))
+ options.append(from_variant('CARE_ENABLE_DOCS', 'docs'))
+
+ return options
diff --git a/var/spack/repos/builtin/packages/casacore/package.py b/var/spack/repos/builtin/packages/casacore/package.py
index 7fbb913de2..7b113638f6 100644
--- a/var/spack/repos/builtin/packages/casacore/package.py
+++ b/var/spack/repos/builtin/packages/casacore/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -14,6 +16,7 @@ class Casacore(CMakePackage):
maintainers = ['mpokorny']
+ version('3.4.0', sha256='31f02ad2e26f29bab4a47a2a69e049d7bc511084a0b8263360e6157356f92ae1')
version('3.3.0', sha256='3a714644b908ef6e81489b792cc9b80f6d8267a275e15d38a42a6a5137d39d3d')
version('3.2.0', sha256='ae5d3786cb6dfdd7ebc5eecc0c724ff02bbf6929720bc23be43a027978e79a5f')
version('3.1.2', sha256='ac94f4246412eb45d503f1019cabe2bb04e3861e1f3254b832d9b1164ea5f281')
@@ -22,12 +25,15 @@ class Casacore(CMakePackage):
version('3.0.0', sha256='6f0e68fd77b5c96299f7583a03a53a90980ec347bff9dfb4c0abb0e2933e6bcb')
version('2.4.1', sha256='58eccc875053b2c6fe44fe53b6463030ef169597ec29926936f18d27b5087d63')
+ depends_on('cmake@3.7.1:', type='build')
+
variant('openmp', default=False, description='Build OpenMP support')
variant('shared', default=True, description='Build shared libraries')
variant('readline', default=True, description='Build readline support')
# see note below about the reason for disabling the "sofa" variant
# variant('sofa', default=False, description='Build SOFA support')
- variant('fftw', default=False, description='Build FFTW3 support')
+ variant('adios2', default=False, description='Build ADIOS2 support')
+ variant('fftpack', default=False, description='Build FFTPack')
variant('hdf5', default=False, description='Build HDF5 support')
variant('python', default=False, description='Build python support')
@@ -42,13 +48,16 @@ class Casacore(CMakePackage):
depends_on('bison', type='build')
depends_on('blas')
depends_on('lapack')
- depends_on('cfitsio@3.181:')
+ depends_on('cfitsio')
depends_on('wcslib@4.20:+cfitsio')
- depends_on('fftw@3.0.0:~mpi precision=float,double', when='+fftw')
+ depends_on('fftw@3.0.0: precision=float,double', when='@3.4.0:')
+ depends_on('fftw@3.0.0: precision=float,double', when='~fftpack')
# SOFA dependency suffers the same problem in CMakeLists.txt as readline;
# force a dependency when building unit tests
depends_on('sofa-c', type='test')
depends_on('hdf5', when='+hdf5')
+ depends_on('adios2+mpi', when='+adios2')
+ depends_on('mpi', when='+adios2')
depends_on('python@2.6:', when='+python')
depends_on('boost+python', when='+python')
depends_on('py-numpy', when='+python')
@@ -61,15 +70,34 @@ class Casacore(CMakePackage):
args.append(self.define_from_variant('USE_OPENMP', 'openmp'))
args.append(self.define_from_variant('USE_READLINE', 'readline'))
args.append(self.define_from_variant('USE_HDF5', 'hdf5'))
- args.append(self.define_from_variant('USE_FFTW3', 'fftw'))
+ args.append(self.define_from_variant('USE_ADIOS2', 'adios2'))
+ args.append(self.define_from_variant('USE_MPI', 'adios2'))
+ if spec.satisfies('+adios2'):
+ args.append(self.define('ENABLE_TABLELOCKING', False))
+
+ # fftw3 is required by casacore starting with v3.4.0, but the
+ # old fftpack is still available. For v3.4.0 and later, we
+ # always require FFTW3 dependency with the optional addition
+ # of FFTPack. In older casacore versions, only one of FFTW3 or
+ # FFTPack can be selected.
+ if spec.satisfies('@3.4.0:'):
+ if spec.satisfies('+fftpack'):
+ args.append('-DBUILD_FFTPACK_DEPRECATED=YES')
+ args.append(self.define('USE_FFTW3', True))
+ else:
+ args.append(self.define('USE_FFTW3', spec.satisfies('~fftpack')))
# Python2 and Python3 binding
- if '+python' not in spec:
+ if spec.satisfies('~python'):
args.extend(['-DBUILD_PYTHON=NO', '-DBUILD_PYTHON3=NO'])
- elif spec['python'].version >= Version('3.0.0'):
+ elif spec.satisfies('^python@3.0.0:'):
args.extend(['-DBUILD_PYTHON=NO', '-DBUILD_PYTHON3=YES'])
else:
args.extend(['-DBUILD_PYTHON=YES', '-DBUILD_PYTHON3=NO'])
args.append('-DBUILD_TESTING=OFF')
return args
+
+ def patch(self):
+ # Rely on CMake ability to find hdf5, available since CMake 3.7.X
+ os.remove('cmake/FindHDF5.cmake')
diff --git a/var/spack/repos/builtin/packages/cask/package.py b/var/spack/repos/builtin/packages/cask/package.py
index ed115ca3e6..7abf89af6f 100644
--- a/var/spack/repos/builtin/packages/cask/package.py
+++ b/var/spack/repos/builtin/packages/cask/package.py
@@ -1,21 +1,22 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob import glob
+
#
# Based on Homebrew's formula:
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/cask.rb
#
from spack import *
-from glob import glob
class Cask(Package):
"""Cask is a project management tool for Emacs Lisp to automate the package
development cycle; development, dependencies, testing, building,
packaging and more."""
- homepage = "http://cask.readthedocs.io/en/latest/"
+ homepage = "https://cask.readthedocs.io/en/latest/"
url = "https://github.com/cask/cask/archive/v0.7.4.tar.gz"
version('0.8.1', sha256='8739ba608f23c79b3426faa8b068d5d1bc096c7305ce30b1163babd354be821c')
diff --git a/var/spack/repos/builtin/packages/casper/package.py b/var/spack/repos/builtin/packages/casper/package.py
index a15365ccaa..962cda6fb6 100644
--- a/var/spack/repos/builtin/packages/casper/package.py
+++ b/var/spack/repos/builtin/packages/casper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cassandra/package.py b/var/spack/repos/builtin/packages/cassandra/package.py
index f80b3c173b..bb1f4aab59 100644
--- a/var/spack/repos/builtin/packages/cassandra/package.py
+++ b/var/spack/repos/builtin/packages/cassandra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/catalyst/package.py b/var/spack/repos/builtin/packages/catalyst/package.py
index 5806b0cd75..7536f7d95e 100644
--- a/var/spack/repos/builtin/packages/catalyst/package.py
+++ b/var/spack/repos/builtin/packages/catalyst/package.py
@@ -1,14 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 subprocess
import sys
+
import llnl.util.tty as tty
+from spack import *
+
class Catalyst(CMakePackage):
"""Catalyst is an in situ use case library, with an adaptable application
@@ -16,9 +18,9 @@ class Catalyst(CMakePackage):
simulation and analysis and/or visualization tasks."""
homepage = 'http://www.paraview.org'
- url = "http://www.paraview.org/files/v5.5/ParaView-v5.5.2.tar.gz"
- _urlfmt_gz = 'http://www.paraview.org/files/v{0}/ParaView-v{1}{2}.tar.gz'
- _urlfmt_xz = 'http://www.paraview.org/files/v{0}/ParaView-v{1}{2}.tar.xz'
+ url = "https://www.paraview.org/files/v5.5/ParaView-v5.5.2.tar.gz"
+ _urlfmt_gz = 'https://www.paraview.org/files/v{0}/ParaView-v{1}{2}.tar.gz'
+ _urlfmt_xz = 'https://www.paraview.org/files/v{0}/ParaView-v{1}{2}.tar.xz'
maintainers = ['chuckatkins', 'danlipsa']
@@ -66,8 +68,8 @@ class Catalyst(CMakePackage):
depends_on('py-numpy', when='+python', type=('build', 'run'))
depends_on('py-numpy', when='+python3', type=('build', 'run'))
- depends_on('py-mpi4py', when='+python+mpi', type=('build', 'run'))
- depends_on('py-mpi4py', when='+python3+mpi', type=('build', 'run'))
+ depends_on('py-mpi4py', when='+python', type=('build', 'run'))
+ depends_on('py-mpi4py', when='+python3', type=('build', 'run'))
depends_on('gl@3.2:', when='+rendering')
depends_on('osmesa', when='+rendering+osmesa')
@@ -226,12 +228,12 @@ class Catalyst(CMakePackage):
'-DPARAVIEW_ENABLE_PYTHON:BOOL=ON',
'-DPYTHON_EXECUTABLE:FILEPATH=%s' %
spec['python'].command.path,
- '-DVTK_USE_SYSTEM_MPI4PY:BOOL=%s' % variant_bool('+mpi')
+ '-DVTK_USE_SYSTEM_MPI4PY:BOOL=ON'
])
else:
cmake_args.append('-DPARAVIEW_ENABLE_PYTHON:BOOL=OFF')
- if spec.platform == 'linux' and spec.target == 'aarch64':
+ if spec.platform == 'linux' and spec.target.family == 'aarch64':
cmake_args.append('-DCMAKE_CXX_FLAGS=-DPNG_ARM_NEON_OPT=0')
cmake_args.append('-DCMAKE_C_FLAGS=-DPNG_ARM_NEON_OPT=0')
diff --git a/var/spack/repos/builtin/packages/catch2/package.py b/var/spack/repos/builtin/packages/catch2/package.py
index a3a3593ded..8b7f8b7402 100644
--- a/var/spack/repos/builtin/packages/catch2/package.py
+++ b/var/spack/repos/builtin/packages/catch2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,9 +16,19 @@ class Catch2(CMakePackage):
maintainers = ["ax3l", "AndrewGaspar"]
# In-Development
- version('master', branch='master')
+ version('develop', branch='devel')
# Releases
+ version('3.0.0-preview3', sha256='06a4f903858f21c553e988f8b76c9c6915d1f95f95512d6a58c421e02a2c4975')
+ version('2.13.7', sha256='3cdb4138a072e4c0290034fe22d9f0a80d3bcfb8d7a8a5c49ad75d3a5da24fae', preferred=True)
+ version('2.13.6', sha256='48dfbb77b9193653e4e72df9633d2e0383b9b625a47060759668480fdf24fbd4')
+ version('2.13.5', sha256='7fee7d643599d10680bfd482799709f14ed282a8b7db82f54ec75ec9af32fa76')
+ version('2.13.4', sha256='e7eb70b3d0ac2ed7dcf14563ad808740c29e628edde99e973adad373a2b5e4df')
+ version('2.13.3', sha256='fedc5b008f7eb574f45098e7c7138211c543f0f8ad04792090e790511697a877')
+ version('2.13.2', sha256='5e39d9199f4f174dc3c8896fb4cf0a2ce9b9c358ae759b87fade6d615ca2d27e')
+ version('2.13.1', sha256='36bcc9e6190923961be11e589d747e606515de95f10779e29853cfeae560bd6c')
+ version('2.13.0', sha256='4e6608d3fb0247e2aa988735bae2064381b0ec712f47beb766dd761838a546b6')
+ version('2.12.4', sha256='5436725bbc6ee131a0bc9545bef31f0adabbb21fbc39fb6f1b2a42c12e4f8107')
version('2.12.3', sha256='78425e7055cea5bad1ff8db7ea0d6dfc0722ece156be1ccf3597c15e674e6943')
version('2.12.1', sha256='e5635c082282ea518a8dd7ee89796c8026af8ea9068cd7402fb1615deacd91c3')
version('2.12.0', sha256='6606b754363d3a4521bfecf717dc1972c50dca282bd428dfb1370ec8b9c26918')
@@ -86,8 +96,7 @@ class Catch2(CMakePackage):
args.append('-DNO_SELFTEST={0}'.format(
'OFF' if self.run_tests else 'ON'))
elif spec.satisfies('@2.1.1:'):
- args.append('-DBUILD_TESTING:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF'))
+ args.append(self.define('BUILD_TESTING', self.run_tests))
return args
@when('@:1.6.99')
diff --git a/var/spack/repos/builtin/packages/cbc/package.py b/var/spack/repos/builtin/packages/cbc/package.py
index 171e2a3c83..5c97bb86c2 100644
--- a/var/spack/repos/builtin/packages/cbc/package.py
+++ b/var/spack/repos/builtin/packages/cbc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cbench/package.py b/var/spack/repos/builtin/packages/cbench/package.py
index 8a24a54d6e..86453815c0 100644
--- a/var/spack/repos/builtin/packages/cbench/package.py
+++ b/var/spack/repos/builtin/packages/cbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cbflib/cbf_f16.patch b/var/spack/repos/builtin/packages/cbflib/cbf_f16.patch
new file mode 100644
index 0000000000..5f81d4e7e7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cbflib/cbf_f16.patch
@@ -0,0 +1,17 @@
+--- a/src/fcb_skip_whitespace.f90 2021-01-26 15:14:30.565029427 +0900
++++ b/src/fcb_skip_whitespace.f90 2021-01-26 15:15:01.016918388 +0900
+@@ -65,11 +65,11 @@
+ END IF
+ ELSE
+ SELECT CASE (LINE(IC))
+- CASE (Z'5C') ! backslash
++ CASE (INT(Z'5C')) ! backslash
+ IC = IC+1 ! force skip of next character
+- CASE (Z'28') ! open paren
++ CASE (INT(Z'28')) ! open paren
+ COMMENT_LEVEL = COMMENT_LEVEL+1;
+- CASE (Z'29') ! close paren
++ CASE (INT(Z'29')) ! close paren
+ COMMENT_LEVEL = COMMENT_LEVEL-1;
+ END SELECT
+ IC = IC+1;
diff --git a/var/spack/repos/builtin/packages/cbflib/cbf_int.patch b/var/spack/repos/builtin/packages/cbflib/cbf_int.patch
new file mode 100644
index 0000000000..a234859d5e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cbflib/cbf_int.patch
@@ -0,0 +1,11 @@
+--- a/src/cbf_ws.c 2021-01-26 15:31:04.793960741 +0900
++++ b/src/cbf_ws.c 2021-01-26 15:32:08.092795581 +0900
+@@ -1034,7 +1034,7 @@
+
+ const char * line;
+
+- char c, cprev, cprevprev, cprevprevprev;
++ int c, cprev, cprevprev, cprevprevprev;
+
+ size_t length;
+
diff --git a/var/spack/repos/builtin/packages/cbflib/checkint.c b/var/spack/repos/builtin/packages/cbflib/checkint.c
new file mode 100644
index 0000000000..7187d6a5f9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cbflib/checkint.c
@@ -0,0 +1,4 @@
+#include <limits.h>
+#if LONG_MAX == LLONG_MAX
+#error LONG=LLONG
+#endif
diff --git a/var/spack/repos/builtin/packages/cbflib/package.py b/var/spack/repos/builtin/packages/cbflib/package.py
new file mode 100644
index 0000000000..37fb4dc394
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cbflib/package.py
@@ -0,0 +1,44 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Cbflib(MakefilePackage):
+ """CBFLIB is a library of ANSI-C functions providing a simple mechanism
+ for accessing Crystallographic Binary Files (CBF files) and
+ Image-supporting CIF (imgCIF) files."""
+
+ homepage = "http://www.bernstein-plus-sons.com/software/CBF/"
+ url = "https://downloads.sourceforge.net/project/cbflib/cbflib/CBFlib_0.9.2/CBFlib-0.9.2.tar.gz"
+
+ version('0.9.2', sha256='367e37e1908a65d5472e921150291332823a751206804866e752b793bca17afc')
+
+ depends_on('m4', type='build')
+
+ patch('cbf_f16.patch')
+ patch('cbf_int.patch')
+
+ def setup_build_environment(self, env):
+ ce = Executable(self.compiler.cc)
+ ce('-E', join_path(os.path.dirname(__file__), "checkint.c"),
+ output=str, error=str, fail_on_error=False)
+ if ce.returncode != 0:
+ env.set('CBF_DONT_USE_LONG_LONG', '1')
+
+ def edit(self, spec, prefix):
+ mf = FileFilter('Makefile')
+ mf.filter(r'^CC.+', "CC = {0}".format(spack_cc))
+ mf.filter(r'^C\+\+.+', "C++ = {0}".format(spack_cxx))
+ mf.filter('gfortran', spack_fc)
+ mf.filter(r'^INSTALLDIR .+', "INSTALLDIR = {0}".format(prefix))
+
+ def build(self, spec, prefix):
+ pass
+
+ def install(self, spec, prefix):
+ make('install', parallel=False)
diff --git a/var/spack/repos/builtin/packages/cblas/package.py b/var/spack/repos/builtin/packages/cblas/package.py
index 92ea521b94..d76b414a67 100644
--- a/var/spack/repos/builtin/packages/cblas/package.py
+++ b/var/spack/repos/builtin/packages/cblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class Cblas(Package):
# tarball has no version, but on the date below, this MD5 was correct.
version('2015-06-06', sha256='0f6354fd67fabd909baf57ced2ef84e962db58fae126e4f41b21dd4fec60a2a3',
- url='http://www.netlib.org/blas/blast-forum/cblas.tgz')
+ url='https://www.netlib.org/blas/blast-forum/cblas.tgz')
depends_on('blas')
parallel = False
diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py
index 1ae389d801..9c87ef4e60 100644
--- a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class CbtfArgonavisGui(QMakePackage):
"""CBTF Argo Navis GUI project contains the GUI that views OpenSpeedShop
performance information by loading in the Sqlite database files.
"""
- homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
+ homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
git = "https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git"
version('develop', branch='master')
@@ -29,18 +30,18 @@ class CbtfArgonavisGui(QMakePackage):
# Dependencies for the openspeedshop cbtf packages.
depends_on("cbtf@develop", when='@develop')
- depends_on("cbtf@1.9.1.0:9999", when='@1.3.0.0:9999')
+ depends_on("cbtf@1.9.3:9999", when='@1.3.0.0:9999')
depends_on("cbtf-krell@develop", when='@develop')
- depends_on("cbtf-krell@1.9.1.0:9999", when='@1.3.0.0:9999')
+ depends_on("cbtf-krell@1.9.3:9999", when='@1.3.0.0:9999')
depends_on("cbtf-argonavis@develop", when='@develop')
- depends_on("cbtf-argonavis@1.9.1.0:9999", when='@1.3.0.0:9999')
+ depends_on("cbtf-argonavis@1.9.3:9999", when='@1.3.0.0:9999')
depends_on("cuda")
depends_on("openspeedshop-utils+cuda@develop", when='@develop')
- depends_on("openspeedshop-utils@2.3.1.3:+cuda", when='@1.3.0.0:9999')
+ depends_on("openspeedshop-utils@2.4.0:+cuda", when='@1.3.0.0:9999')
# For Xerces-C
depends_on("xerces-c")
diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
index 371d2eb809..887322330a 100644
--- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,13 @@ class CbtfArgonavis(CMakePackage):
"""CBTF Argo Navis project contains the CUDA collector and supporting
libraries that was done as a result of a DOE SBIR grant.
"""
- homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
+ homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
git = "https://github.com/OpenSpeedShop/cbtf-argonavis.git"
version('develop', branch='master')
+ version('1.9.4.1', branch='1.9.4.1')
+ version('1.9.4', branch='1.9.4')
version('1.9.3', branch='1.9.3')
- version('1.9.2', branch='1.9.2')
- version('1.9.1.2', branch='1.9.1.2')
- version('1.9.1.1', branch='1.9.1.1')
- version('1.9.1.0', branch='1.9.1.0')
variant('cti', default=False,
description="Build MRNet with the CTI startup option")
@@ -27,52 +25,54 @@ class CbtfArgonavis(CMakePackage):
to point to target build.")
variant('runtime', default=False,
description="build only the runtime libraries and collectors.")
- variant('build_type', default='None', values=('None',),
- description='CMake build type')
+
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo'))
depends_on("cmake@3.0.2:", type='build')
# To specify ^elfutils@0.170 on the command line spack
# apparently needs/wants this dependency explicity here
# even though it is referenced downstream
- depends_on("elf", type="link")
+ depends_on("elfutils", type="link")
# For boost
- depends_on("boost@1.66.0:1.69.0")
+ depends_on("boost@1.70.0:")
# For MRNet
depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run'))
depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop~cti', type=('build', 'link', 'run'))
- depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0:9999+cti', type=('build', 'link', 'run'))
- depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0:9999~cti', type=('build', 'link', 'run'))
+ depends_on("mrnet@5.0.1-3+cti", when='@1.9.3:9999+cti', type=('build', 'link', 'run'))
+ depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.3:9999~cti', type=('build', 'link', 'run'))
# For CBTF
depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run'))
- depends_on("cbtf@1.9.1.0:9999", when='@1.9.1.0:9999', type=('build', 'link', 'run'))
+ depends_on("cbtf@1.9.3:9999", when='@1.9.3:9999', type=('build', 'link', 'run'))
# For CBTF with cti
depends_on("cbtf@develop+cti", when='@develop+cti', type=('build', 'link', 'run'))
- depends_on("cbtf@1.9.1.0:9999+cti", when='@1.9.1.0:9999+cti', type=('build', 'link', 'run'))
+ depends_on("cbtf@1.9.3:9999+cti", when='@1.9.3:9999+cti', type=('build', 'link', 'run'))
# For CBTF with runtime
depends_on("cbtf@develop+runtime", when='@develop+runtime', type=('build', 'link', 'run'))
- depends_on("cbtf@1.9.1.0:9999+runtime", when='@1.9.1.0:9999+runtime', type=('build', 'link', 'run'))
+ depends_on("cbtf@1.9.3:9999+runtime", when='@1.9.3:9999+runtime', type=('build', 'link', 'run'))
# For libmonitor
- depends_on("libmonitor@2013.02.18+krellpatch", type=('build', 'link', 'run'))
+ depends_on("libmonitor@2013.02.18+commrank", type=('build', 'link', 'run'))
# For PAPI
depends_on("papi@5.4.1:", type=('build', 'link', 'run'))
# For CBTF-KRELL
depends_on("cbtf-krell@develop", when='@develop', type=('build', 'link', 'run'))
- depends_on("cbtf-krell@1.9.1.0:9999", when='@1.9.1.0:9999', type=('build', 'link', 'run'))
+ depends_on("cbtf-krell@1.9.3:9999", when='@1.9.3:9999', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+cti', when='@develop+cti', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+cti', when='@1.9.1.0:9999+cti', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+cti', when='@1.9.3:9999+cti', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+runtime', when='@develop+runtime', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+runtime', when='@1.9.1.0:9999+runtime', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+runtime', when='@1.9.3:9999+runtime', type=('build', 'link', 'run'))
# For CUDA
depends_on("cuda")
@@ -83,25 +83,26 @@ class CbtfArgonavis(CMakePackage):
def cmake_args(self):
spec = self.spec
- compile_flags = "-O2 -g"
+ compile_flags = "-O2 -g -Wall"
cmake_args = [
- '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags,
- '-DCUDA_DIR=%s' % spec['cuda'].prefix,
- '-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DCUDA_DIR=%s' % spec['cuda'].prefix,
+ '-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
'-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
- '-DCUPTI_DIR=%s' % spec['cuda'].prefix.extras.CUPTI,
- '-DCUPTI_ROOT=%s' % spec['cuda'].prefix.extras.CUPTI,
- '-DPAPI_ROOT=%s' % spec['papi'].prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DBoost_DIR=%s' % spec['boost'].prefix,
- '-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
- '-DBoost_NO_SYSTEM_PATHS=ON']
+ '-DCUPTI_DIR=%s' % spec['cuda'].prefix.extras.CUPTI,
+ '-DCUPTI_ROOT=%s' % spec['cuda'].prefix.extras.CUPTI,
+ '-DPAPI_ROOT=%s' % spec['papi'].prefix,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ '-DBoost_NO_SYSTEM_PATHS=TRUE',
+ '-DBoost_NO_BOOST_CMAKE=TRUE',
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DBoost_DIR=%s' % spec['boost'].prefix,
+ '-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix]
return cmake_args
diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py
index ea238bc439..3f464d8953 100644
--- a/var/spack/repos/builtin/packages/cbtf-krell/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py
@@ -1,28 +1,26 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack
import spack.store
+from spack import *
class CbtfKrell(CMakePackage):
- """CBTF Krell project contains the Krell Institute contributions to the
- CBTF project. These contributions include many performance data
- collectors and support libraries as well as some example tools
+ """CBTF Krell project contains collector and runtime contributions
+ to the CBTF project. These contributions include many performance
+ data collectors and support libraries as well as some example tools
that drive the data collection at HPC levels of scale.
"""
- homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
+ homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
git = "https://github.com/OpenSpeedShop/cbtf-krell.git"
version('develop', branch='master')
+ version('1.9.4.1', branch='1.9.4.1')
+ version('1.9.4', branch='1.9.4')
version('1.9.3', branch='1.9.3')
- version('1.9.2', branch='1.9.2')
- version('1.9.1.2', branch='1.9.1.2')
- version('1.9.1.1', branch='1.9.1.1')
- version('1.9.1.0', branch='1.9.1.0')
# MPI variants
variant('openmpi', default=False,
@@ -39,8 +37,9 @@ class CbtfKrell(CMakePackage):
description="Build mpi experiment collector for mpich MPI.")
variant('runtime', default=False,
description="build only the runtime libraries and collectors.")
- variant('build_type', default='None', values=('None',),
- description='CMake build type')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo'))
variant('cti', default=False,
description="Build MRNet with the CTI startup option")
variant('crayfe', default=False,
@@ -57,42 +56,42 @@ class CbtfKrell(CMakePackage):
depends_on("libtirpc", type='link')
# For binutils
- depends_on("binutils")
+ depends_on("binutils+plugins~gold@2.32")
# For boost
- depends_on("boost@1.66.0:1.69.0")
+ depends_on("boost@1.70.0:")
# For Dyninst
- depends_on("dyninst@develop", when='@develop')
- depends_on("dyninst@10:", when='@1.9.1.0:9999')
+ depends_on("dyninst@10.1.0", when='@develop')
+ depends_on("dyninst@10.1.0", when='@1.9.3:9999')
# For MRNet
depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run'))
depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run'))
- depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0:9999+cti', type=('build', 'link', 'run'))
- depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0:9999', type=('build', 'link', 'run'))
+ depends_on("mrnet@5.0.1-3+cti", when='@1.9.3:9999+cti', type=('build', 'link', 'run'))
+ depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.3:9999', type=('build', 'link', 'run'))
# For Xerces-C
depends_on("xerces-c")
# For CBTF
depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run'))
- depends_on("cbtf@1.9.1.0:9999", when='@1.9.1.0:9999', type=('build', 'link', 'run'))
+ depends_on("cbtf@1.9.3:9999", when='@1.9.3:9999', type=('build', 'link', 'run'))
# For CBTF with cti
depends_on("cbtf@develop+cti", when='@develop+cti', type=('build', 'link', 'run'))
- depends_on("cbtf@1.9.1.0:9999+cti", when='@1.9.1.0:9999+cti', type=('build', 'link', 'run'))
+ depends_on("cbtf@1.9.3:9999+cti", when='@1.9.3:9999+cti', type=('build', 'link', 'run'))
# For CBTF with runtime
depends_on("cbtf@develop+runtime", when='@develop+runtime', type=('build', 'link', 'run'))
- depends_on("cbtf@1.9.1.0:9999+runtime", when='@1.9.1.0:9999+runtime', type=('build', 'link', 'run'))
+ depends_on("cbtf@1.9.3:9999+runtime", when='@1.9.3:9999+runtime', type=('build', 'link', 'run'))
# for services and collectors
- depends_on("libmonitor@2013.02.18+krellpatch", type=('build', 'link', 'run'))
+ depends_on("libmonitor@2013.02.18+commrank", type=('build', 'link', 'run'))
depends_on("libunwind", when='@develop')
- depends_on("libunwind@1.2.1", when='@1.9.1.0:9999')
+ depends_on("libunwind@1.2.1", when='@1.9.3:9999')
depends_on("papi@5.4.1:", type=('build', 'link', 'run'))
@@ -203,7 +202,7 @@ class CbtfKrell(CMakePackage):
def cmake_args(self):
spec = self.spec
- compile_flags = "-O2 -g"
+ compile_flags = "-O2 -g -Wall"
# Add in paths for finding package config files that tell us
# where to find these packages
@@ -215,7 +214,11 @@ class CbtfKrell(CMakePackage):
'-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
'-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
'-DPAPI_DIR=%s' % spec['papi'].prefix,
- '-DBOOST_DIR=%s' % spec['boost'].prefix,
+ '-DBoost_NO_SYSTEM_PATHS=TRUE',
+ '-DBoost_NO_BOOST_CMAKE=TRUE',
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DBoost_DIR=%s' % spec['boost'].prefix,
+ '-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
'-DMRNET_DIR=%s' % spec['mrnet'].prefix,
'-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
'-DLIBIOMP_DIR=%s' % spec['llvm-openmp-ompt'].prefix,
diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
index 857ef6c7f9..67ae6fe7c6 100644
--- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,18 +10,17 @@ class CbtfLanl(CMakePackage):
"""CBTF LANL project contains a memory tool and data center type system
command monitoring tool."""
- homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
+ homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
git = "https://github.com/OpenSpeedShop/cbtf-lanl.git"
version('develop', branch='master')
+ version('1.9.4.1', branch='1.9.4.1')
+ version('1.9.4', branch='1.9.4')
version('1.9.3', branch='1.9.3')
- version('1.9.2', branch='1.9.2')
- version('1.9.1.2', branch='1.9.1.2')
- version('1.9.1.1', branch='1.9.1.1')
- version('1.9.1.0', branch='1.9.1.0')
- variant('build_type', default='None', values=('None',),
- description='CMake build type')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo'))
variant('runtime', default=False,
description="build only the runtime libraries and collectors.")
@@ -34,33 +33,33 @@ class CbtfLanl(CMakePackage):
# For MRNet
depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti')
depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop')
- depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0:9999+cti')
- depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0:9999')
+ depends_on("mrnet@5.0.1-3+cti", when='@1.9.3:9999+cti')
+ depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.3:9999')
# For Xerces-C
depends_on("xerces-c")
# For CBTF
depends_on("cbtf@develop", when='@develop')
- depends_on("cbtf@1.9.1.0:9999", when='@1.9.1.0:9999')
+ depends_on("cbtf@1.9.3:9999", when='@1.9.3:9999')
# For CBTF with cti
depends_on("cbtf@develop+cti", when='@develop+cti')
- depends_on("cbtf@1.9.1.0:9999+cti", when='@1.9.1.0:9999+cti')
+ depends_on("cbtf@1.9.3:9999+cti", when='@1.9.3:9999+cti')
# For CBTF with runtime
depends_on("cbtf@develop+runtime", when='@develop+runtime')
- depends_on("cbtf@1.9.1.0:9999+runtime", when='@1.9.1.0:9999+runtime')
+ depends_on("cbtf@1.9.3:9999+runtime", when='@1.9.3:9999+runtime')
# For CBTF-KRELL
depends_on("cbtf-krell@develop", when='@develop')
- depends_on("cbtf-krell@1.9.1.0:9999", when='@1.9.1.0:9999')
+ depends_on("cbtf-krell@1.9.3:9999", when='@1.9.3:9999')
depends_on('cbtf-krell@develop+cti', when='@develop+cti')
- depends_on('cbtf-krell@1.9.1.0:9999+cti', when='@1.9.1.0:9999+cti')
+ depends_on('cbtf-krell@1.9.3:9999+cti', when='@1.9.3:9999+cti')
depends_on('cbtf-krell@develop+runtime', when='@develop+runtime')
- depends_on('cbtf-krell@1.9.1.0:9999+runtime', when='@1.9.1.0:9999+runtime')
+ depends_on('cbtf-krell@1.9.3:9999+runtime', when='@1.9.3:9999+runtime')
parallel = False
@@ -69,7 +68,7 @@ class CbtfLanl(CMakePackage):
def cmake_args(self):
spec = self.spec
- compile_flags = "-O2 -g"
+ compile_flags = "-O2 -g -Wall"
cmake_args = [
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py
index 4c64732166..dea5d055d3 100644
--- a/var/spack/repos/builtin/packages/cbtf/package.py
+++ b/var/spack/repos/builtin/packages/cbtf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,15 +13,13 @@ class Cbtf(CMakePackage):
network tools.
"""
- homepage = "http://sourceforge.net/p/cbtf/wiki/Home"
+ homepage = "https://sourceforge.net/p/cbtf/wiki/Home"
git = "https://github.com/OpenSpeedShop/cbtf.git"
version('develop', branch='master')
+ version('1.9.4.1', branch='1.9.4.1')
+ version('1.9.4', branch='1.9.4')
version('1.9.3', branch='1.9.3')
- version('1.9.2', branch='1.9.2')
- version('1.9.1.2', branch='1.9.1.2')
- version('1.9.1.1', branch='1.9.1.1')
- version('1.9.1.0', branch='1.9.1.0')
variant('cti', default=False,
description="Build MRNet with the CTI startup option")
@@ -29,24 +27,25 @@ class Cbtf(CMakePackage):
variant('runtime', default=False,
description="build only the runtime libraries and collectors.")
- variant('build_type', default='None', values=('None',),
- description='CMake build type')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo'))
depends_on("cmake@3.0.2:", type='build')
# for rpcgen
- depends_on("rpcsvc-proto", type='build')
+ depends_on("rpcsvc-proto")
# for rpc
depends_on("libtirpc", type='link')
- depends_on("boost@1.66.0:1.69.0")
+ depends_on("boost@1.70.0:")
# For MRNet
depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti')
depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop')
- depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0:9999+cti')
- depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0:9999')
+ depends_on("mrnet@5.0.1-3+cti", when='@1.9.3:9999+cti')
+ depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.3:9999')
# For Xerces-C
depends_on("xerces-c")
@@ -67,7 +66,7 @@ class Cbtf(CMakePackage):
# or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
# Defaults to OFF.
- compile_flags = "-O2 -g"
+ compile_flags = "-O2 -g -Wall"
if spec.satisfies('+runtime'):
diff --git a/var/spack/repos/builtin/packages/cc65/package.py b/var/spack/repos/builtin/packages/cc65/package.py
index 414daeea63..cd21e400d6 100644
--- a/var/spack/repos/builtin/packages/cc65/package.py
+++ b/var/spack/repos/builtin/packages/cc65/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ccache/package.py b/var/spack/repos/builtin/packages/ccache/package.py
index e4f9a52353..4f8940998c 100644
--- a/var/spack/repos/builtin/packages/ccache/package.py
+++ b/var/spack/repos/builtin/packages/ccache/package.py
@@ -1,22 +1,31 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 re
+from spack import *
+
-class Ccache(AutotoolsPackage):
+class Ccache(CMakePackage):
"""ccache is a compiler cache. It speeds up recompilation by caching
previous compilations and detecting when the same compilation is being done
again."""
- homepage = "https://ccache.samba.org/"
- url = "https://github.com/ccache/ccache/releases/download/v3.7.9/ccache-3.7.9.tar.gz"
+ homepage = "https://ccache.dev/"
+ url = "https://github.com/ccache/ccache/releases/download/v4.2.1/ccache-4.2.1.tar.gz"
+ maintainers = ['haampie']
executables = ['^ccache$']
+ version('4.4.1', sha256='e20632f040a7d50bc622c10b2ab4c7a4a5dc2730c18492543d49ce4cf51b4c54')
+ version('4.4', sha256='61a993d62216aff35722a8d0e8ffef9b677fc3f6accd8944ffc2a6db98fb3142')
+ version('4.3', sha256='b9789c42e52c73e99428f311a34def9ffec3462736439afd12dbacc7987c1533')
+ version('4.2.1', sha256='320d2b17d2f76393e5d4bb28c8dee5ca783248e9cd23dff0654694d60f8a4b62')
+ version('4.2', sha256='dbf139ff32031b54cb47f2d7983269f328df14b5a427882f89f7721e5c411b7e')
+ version('4.1', sha256='cdeefb827b3eef3b42b5454858123881a4a90abbd46cc72cf8c20b3bd039deb7')
+ version('4.0', sha256='ac97af86679028ebc8555c99318352588ff50f515fc3a7f8ed21a8ad367e3d45')
version('3.7.11', sha256='34309a59d4b6b6b33756366aa9d3144a4655587be9f914476b4c0e2d36365f01')
version('3.7.9', sha256='92838e2133c9e704fdab9ee2608dad86c99021278b9ac47d065aa8ff2ea8ce36')
version('3.7.1', sha256='e562fcdbe766406b6fe4bf97ce5c001d2be8a17465f33bcddefc9499bbb057d8')
@@ -27,9 +36,29 @@ class Ccache(AutotoolsPackage):
version('3.3', sha256='b220fce435fe3d86b8b90097e986a17f6c1f971e0841283dd816adb238c5fd6a')
version('3.2.9', sha256='1e13961b83a3d215c4013469c149414a79312a22d3c7bf9f946abac9ee33e63f')
- depends_on('gperf')
- depends_on('libxslt')
- depends_on('zlib')
+ depends_on('zstd', when='@4.0:')
+
+ depends_on('gperf', when='@:3.99')
+ depends_on('hiredis@0.13.3:', when='@4.4:')
+ depends_on('libxslt', when='@:3.99')
+ depends_on('zlib', when='@:3.99')
+
+ conflicts('%gcc@:5', when='@4.4:')
+ conflicts('%clang@:4', when='@4.4:')
+
+ # Before 4.0 this was an Autotools package
+ @when('@:3.99')
+ def cmake(self, spec, prefix):
+ configure_args = ["--prefix=" + prefix]
+ configure(*configure_args)
+
+ @when('@:3.99')
+ def build(self, spec, prefix):
+ make()
+
+ @when('@:3.99')
+ def install(self, spec, prefix):
+ make("install")
@classmethod
def determine_version(cls, exe):
diff --git a/var/spack/repos/builtin/packages/ccfits/package.py b/var/spack/repos/builtin/packages/ccfits/package.py
index a4eb088a75..bfbbdb4aa4 100644
--- a/var/spack/repos/builtin/packages/ccfits/package.py
+++ b/var/spack/repos/builtin/packages/ccfits/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,7 @@ class Ccfits(AutotoolsPackage):
homepage = "https://heasarc.gsfc.nasa.gov/fitsio/CCfits/"
url = "https://heasarc.gsfc.nasa.gov/fitsio/CCfits/CCfits-2.5.tar.gz"
+ version('2.6', sha256='2bb439db67e537d0671166ad4d522290859e8e56c2f495c76faa97bc91b28612')
version('2.5', sha256='938ecd25239e65f519b8d2b50702416edc723de5f0a5387cceea8c4004a44740')
version('2.4', sha256='ba6c5012b260adf7633f92581279ea582e331343d8c973981aa7de07242bd7f8')
diff --git a/var/spack/repos/builtin/packages/ccls/package.py b/var/spack/repos/builtin/packages/ccls/package.py
new file mode 100644
index 0000000000..5e05efcbf1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ccls/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Ccls(CMakePackage):
+ """C/C++ language server"""
+
+ homepage = "https://github.com/MaskRay/ccls"
+ git = "https://github.com/MaskRay/ccls.git"
+ url = "https://github.com/MaskRay/ccls/archive/0.20201025.tar.gz"
+
+ maintainers = ['jacobmerson']
+
+ version('0.20201025', sha256='1470797b2c1a466e2d8a069efd807aac6fefdef8a556e1edf2d44f370c949221')
+
+ variant('build_type', default='Release', description='CMake build type',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
+
+ depends_on("cmake@3.8:", type="build")
+ depends_on('llvm@7:')
+ depends_on('rapidjson')
diff --git a/var/spack/repos/builtin/packages/ccs-qcd/package.py b/var/spack/repos/builtin/packages/ccs-qcd/package.py
index 31b85dd969..d80209e1f7 100644
--- a/var/spack/repos/builtin/packages/ccs-qcd/package.py
+++ b/var/spack/repos/builtin/packages/ccs-qcd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -31,6 +31,8 @@ class CcsQcd(MakefilePackage):
homepage = "https://github.com/fiber-miniapp/ccs-qcd"
git = "https://github.com/fiber-miniapp/ccs-qcd.git"
+ tags = ['hep']
+
version('master', branch='master')
version('1.2.1', commit='d7c6b6923f35a824e997ba8db5bd12dc20dda45c')
diff --git a/var/spack/repos/builtin/packages/cctools/package.py b/var/spack/repos/builtin/packages/cctools/package.py
index f1d03740e8..aa196365af 100644
--- a/var/spack/repos/builtin/packages/cctools/package.py
+++ b/var/spack/repos/builtin/packages/cctools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,13 @@ class Cctools(AutotoolsPackage):
"""
homepage = "https://cctools.readthedocs.io"
- url = "https://ccl.cse.nd.edu/software/files/cctools-7.1.5-source.tar.gz"
+ url = "https://ccl.cse.nd.edu/software/files/cctools-7.2.4-source.tar.gz"
+ version('7.2.10', sha256='4a604329896ae5e0fad7451a3814f531ff2f00a41c96e971ac08276208aa1650')
+ version('7.2.4', sha256='36d36465a14b503a27c4739ebe0e11e00970ef6abb07c0365a46670753dddbd0')
+ version('7.2.3', sha256='c9d32f9e9d4886ef88b79cc7c898c26e8369a004132080697b8523560cb8765b')
+ version('7.2.2', sha256='3eee05826954792e3ef974fefe3b8e436f09cd368b195287639b67f5acfa050f')
+ version('7.2.1', sha256='8f847fef9bca1ebd23a93d74fc093807d2c3e584111c087cf25e070e130eb820')
version('7.1.7', sha256='63cbfabe52591d41a1b27040bf27700d2a11b2f30cb2e25132e0016fb1aade03')
version('7.1.5', sha256='c01415fd47a1d9626b6c556e0dc0a6b0d3cd67224fa060cabd44ff78eede1d8a')
version('7.1.3', sha256='b937878ab429dda31bc692e5d9ffb402b9eb44bb674c07a934bb769cee4165ba')
diff --git a/var/spack/repos/builtin/packages/cdbfasta/package.py b/var/spack/repos/builtin/packages/cdbfasta/package.py
index 812dd7a7db..05c15498b4 100644
--- a/var/spack/repos/builtin/packages/cdbfasta/package.py
+++ b/var/spack/repos/builtin/packages/cdbfasta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cdd/package.py b/var/spack/repos/builtin/packages/cdd/package.py
index 2487b8bb77..15f3bd6340 100644
--- a/var/spack/repos/builtin/packages/cdd/package.py
+++ b/var/spack/repos/builtin/packages/cdd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Cdd(Package):
a general convex polyhedron given by a system of linear
inequalities"""
homepage = "https://www.inf.ethz.ch/personal/fukudak/cdd_home/cdd.html"
- url = "http://www.cs.mcgill.ca/~fukuda/download/cdd/cdd-061a.tar.gz"
+ url = "https://www.cs.mcgill.ca/~fukuda/download/cdd/cdd-061a.tar.gz"
version('0.61a', sha256='637a1909bbd8aa4d32667da08f9e9ac687bf7d3ef1b8af5bd227e91a3cd4019b')
diff --git a/var/spack/repos/builtin/packages/cddlib/package.py b/var/spack/repos/builtin/packages/cddlib/package.py
index 199d283ab7..c501aad344 100644
--- a/var/spack/repos/builtin/packages/cddlib/package.py
+++ b/var/spack/repos/builtin/packages/cddlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cdecimal/package.py b/var/spack/repos/builtin/packages/cdecimal/package.py
index 882af3bb21..c044303c0c 100644
--- a/var/spack/repos/builtin/packages/cdecimal/package.py
+++ b/var/spack/repos/builtin/packages/cdecimal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cdhit/package.py b/var/spack/repos/builtin/packages/cdhit/package.py
index a58b959942..96c6eb36b1 100644
--- a/var/spack/repos/builtin/packages/cdhit/package.py
+++ b/var/spack/repos/builtin/packages/cdhit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cdo/package.py b/var/spack/repos/builtin/packages/cdo/package.py
index 4096176dbb..8de2088d7e 100644
--- a/var/spack/repos/builtin/packages/cdo/package.py
+++ b/var/spack/repos/builtin/packages/cdo/package.py
@@ -1,9 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 collections import defaultdict
+
from spack import *
+from spack.util.environment import is_system_path
class Cdo(AutotoolsPackage):
@@ -15,12 +18,12 @@ class Cdo(AutotoolsPackage):
url = 'https://code.mpimet.mpg.de/attachments/download/12760/cdo-1.7.2.tar.gz'
list_url = 'https://code.mpimet.mpg.de/projects/cdo/files'
- maintainers = ['skosukhin']
+ maintainers = ['skosukhin', 'Try2Code']
+ version('1.9.10', sha256='cc39c89bbb481d7b3945a06c56a8492047235f46ac363c4f0d980fccdde6677e', url='https://code.mpimet.mpg.de/attachments/download/24638/cdo-1.9.10.tar.gz')
version('1.9.9', sha256='959b5b58f495d521a7fd1daa84644888ec87d6a0df43f22ad950d17aee5ba98d', url='https://code.mpimet.mpg.de/attachments/download/23323/cdo-1.9.9.tar.gz')
version('1.9.8', sha256='f2660ac6f8bf3fa071cf2a3a196b3ec75ad007deb3a782455e80f28680c5252a', url='https://code.mpimet.mpg.de/attachments/download/20826/cdo-1.9.8.tar.gz')
- version('1.9.7.1', sha256='3771952e065bcf935d43e492707370ed2a0ecb59a06bea24f9ab69d77943962c',
- url='https://code.mpimet.mpg.de/attachments/download/20124/cdo-1.9.7.1.tar.gz')
+ version('1.9.7.1', sha256='3771952e065bcf935d43e492707370ed2a0ecb59a06bea24f9ab69d77943962c', url='https://code.mpimet.mpg.de/attachments/download/20124/cdo-1.9.7.1.tar.gz')
version('1.9.6', sha256='b31474c94548d21393758caa33f35cf7f423d5dfc84562ad80a2bdcb725b5585', url='https://code.mpimet.mpg.de/attachments/download/19299/cdo-1.9.6.tar.gz')
version('1.9.5', sha256='48ed65cc5b436753c8e7f9eadd8aa97376698ce230ceafed2a4350a5b1a27148', url='https://code.mpimet.mpg.de/attachments/download/18264/cdo-1.9.5.tar.gz')
version('1.9.4', sha256='3d1c0fd3f7d38c5d3d88139ca1546c9d24e1b1ff752a794a4194dfe624695def', url='https://code.mpimet.mpg.de/attachments/download/17374/cdo-1.9.4.tar.gz')
@@ -54,8 +57,8 @@ class Cdo(AutotoolsPackage):
depends_on('pkgconfig', type='build')
depends_on('netcdf-c', when='+netcdf')
- # In this case CDO does not depend on hdf5 directly but we need the backend
- # of netcdf to be thread safe.
+ # The internal library of CDO implicitly links to hdf5.
+ # We also need the backend of netcdf to be thread safe.
depends_on('hdf5+threadsafe', when='+netcdf')
depends_on('grib-api', when='grib2=grib-api')
@@ -67,31 +70,54 @@ class Cdo(AutotoolsPackage):
depends_on('udunits', when='+udunits2')
depends_on('libxml2', when='+libxml2')
- depends_on('proj@:5', when='+proj')
+ depends_on('proj@:5', when='@:1.9.6+proj')
+ depends_on('proj@:7', when='@1.9.7+proj')
+ depends_on('proj@5:', when='@1.9.8:+proj')
depends_on('curl', when='+curl')
- depends_on('fftw@3:', when='+fftw3')
+ depends_on('fftw-api@3:', when='+fftw3')
depends_on('magics', when='+magics')
- depends_on('libuuid')
+ depends_on('uuid')
- conflicts('grib2=eccodes', when='@:1.8',
- msg='Eccodes is supported starting version 1.9.0')
conflicts('+szip', when='+external-grib1 grib2=none',
msg='The configuration does not support GRIB1')
conflicts('%gcc@9:', when='@:1.9.6',
msg='GCC 9 changed OpenMP data sharing behavior')
def configure_args(self):
- config_args = self.with_or_without(
- 'netcdf',
- activation_value=lambda x: self.spec['netcdf-c'].prefix)
+ config_args = []
+
+ flags = defaultdict(list)
+
+ def yes_or_prefix(spec_name):
+ prefix = self.spec[spec_name].prefix
+ return 'yes' if is_system_path(prefix) else prefix
+
+ if '+netcdf' in self.spec:
+ config_args.append('--with-netcdf=' + yes_or_prefix('netcdf-c'))
+ # We need to make sure that the libtool script of libcdi - the
+ # internal library of CDO - finds the correct version of hdf5.
+ # Note that the argument of --with-hdf5 is not passed to the
+ # configure script of libcdi, therefore we have to provide
+ # additional flags regardless of whether hdf5 support is enabled.
+ hdf5_spec = self.spec['hdf5']
+ if not is_system_path(hdf5_spec.prefix):
+ flags['LDFLAGS'].append(self.spec['hdf5'].libs.search_flags)
+ else:
+ config_args.append('--without-netcdf')
if self.spec.variants['grib2'].value == 'eccodes':
- config_args.append('--with-eccodes=' +
- self.spec['eccodes'].prefix)
- config_args.append('--without-grib_api')
+ if self.spec.satisfies('@1.9:'):
+ config_args.append('--with-eccodes=' + yes_or_prefix('eccodes'))
+ config_args.append('--without-grib_api')
+ else:
+ config_args.append('--with-grib_api=yes')
+ eccodes_spec = self.spec['eccodes']
+ eccodes_libs = eccodes_spec.libs
+ flags['LIBS'].append(eccodes_libs.link_flags)
+ if not is_system_path(eccodes_spec.prefix):
+ flags['LDFLAGS'].append(eccodes_libs.search_flags)
elif self.spec.variants['grib2'].value == 'grib-api':
- config_args.append('--with-grib_api=' +
- self.spec['grib-api'].prefix)
+ config_args.append('--with-grib_api=' + yes_or_prefix('grib-api'))
if self.spec.satisfies('@1.9:'):
config_args.append('--without-eccodes')
else:
@@ -105,28 +131,39 @@ class Cdo(AutotoolsPackage):
config_args.append('--enable-cgribex')
if '+szip' in self.spec:
- config_args.append('--with-szlib=' + self.spec['szip'].prefix)
+ config_args.append('--with-szlib=' + yes_or_prefix('szip'))
else:
config_args.append('--without-szlib')
config_args += self.with_or_without('hdf5',
- activation_value='prefix')
+ activation_value=yes_or_prefix)
config_args += self.with_or_without(
'udunits2',
- activation_value=lambda x: self.spec['udunits'].prefix)
-
- config_args += self.with_or_without('libxml2',
- activation_value='prefix')
+ activation_value=lambda x: yes_or_prefix('udunits'))
+
+ if '+libxml2' in self.spec:
+ libxml2_spec = self.spec['libxml2']
+ if is_system_path(libxml2_spec.prefix):
+ config_args.append('--with-libxml2=yes')
+ # Spack does not inject the header search flag in this case,
+ # which is still required, unless libxml2 is installed to '/usr'
+ # (handled by the configure script of CDO).
+ if libxml2_spec.prefix != '/usr':
+ flags['CPPFLAGS'].append(libxml2_spec.headers.include_flags)
+ else:
+ config_args.append('--with-libxml2=' + libxml2_spec.prefix)
+ else:
+ config_args.append('--without-libxml2')
config_args += self.with_or_without('proj',
- activation_value='prefix')
+ activation_value=yes_or_prefix)
config_args += self.with_or_without('curl',
- activation_value='prefix')
+ activation_value=yes_or_prefix)
config_args += self.with_or_without('magics',
- activation_value='prefix')
+ activation_value=yes_or_prefix)
config_args += self.with_or_without('fftw3')
@@ -138,7 +175,9 @@ class Cdo(AutotoolsPackage):
# following flags. This works for OpenMPI, MPICH, MVAPICH, Intel MPI,
# IBM Spectrum MPI, bullx MPI, and Cray MPI.
if self.spec.satisfies('@1.9:+hdf5^hdf5+mpi'):
- config_args.append(
- 'CPPFLAGS=-DOMPI_SKIP_MPICXX -DMPICH_SKIP_MPICXX')
+ flags['CPPFLAGS'].append('-DOMPI_SKIP_MPICXX -DMPICH_SKIP_MPICXX')
+
+ config_args.extend(['{0}={1}'.format(var, ' '.join(val))
+ for var, val in flags.items()])
return config_args
diff --git a/var/spack/repos/builtin/packages/ceed/package.py b/var/spack/repos/builtin/packages/ceed/package.py
index f4cf410508..9a2c66f753 100644
--- a/var/spack/repos/builtin/packages/ceed/package.py
+++ b/var/spack/repos/builtin/packages/ceed/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
from spack import *
-class Ceed(BundlePackage):
+class Ceed(BundlePackage, CudaPackage, ROCmPackage):
"""Ceed is a collection of benchmarks, miniapps, software libraries and
APIs for efficient high-order finite element and spectral element
discretizations for exascale applications developed in the Department of
@@ -18,12 +18,11 @@ class Ceed(BundlePackage):
maintainers = ['jedbrown', 'v-dobrev', 'tzanio']
+ version('4.0.0')
version('3.0.0')
version('2.0.0')
version('1.0.0')
- variant('cuda', default=False,
- description='Enable CUDA support')
variant('mfem', default=True, description='Build MFEM, Laghos and Remhos')
variant('nek', default=True,
description='Build Nek5000, GSLIB, Nekbone, and NekCEM')
@@ -38,6 +37,17 @@ class Ceed(BundlePackage):
# TODO: Add 'int64' variant?
# LibCEED
+ # ceed 4.0
+ depends_on('libceed@0.8~cuda', when='@4.0.0~cuda')
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on('libceed@0.8+cuda+magma cuda_arch={0}'.format(arch),
+ when='@4.0.0+cuda cuda_arch={0}'.format(arch))
+ depends_on('libceed@0.8~rocm', when='@4.0.0~rocm')
+ for target in ROCmPackage.amdgpu_targets:
+ depends_on('libceed@0.8+rocm amdgpu_target={0}'.format(target),
+ when='@4.0.0+rocm amdgpu_target={0}'.format(target))
+ depends_on('libceed@0.8+occa', when='@4.0.0+occa')
+ depends_on('libceed@0.8~occa', when='@4.0.0~occa')
# ceed-3.0
depends_on('libceed@0.6~cuda', when='@3.0.0~cuda')
depends_on('libceed@0.6+cuda+magma', when='@3.0.0+cuda')
@@ -55,6 +65,9 @@ class Ceed(BundlePackage):
depends_on('libceed@0.2~occa', when='@1.0.0~occa')
# OCCA
+ # ceed-4.0
+ depends_on('occa@1.1.0~cuda', when='@4.0.0+occa~cuda')
+ depends_on('occa@1.1.0+cuda', when='@4.0.0+occa+cuda')
# ceed-3.0
depends_on('occa@1.0.9~cuda', when='@3.0.0+occa~cuda')
depends_on('occa@1.0.9+cuda', when='@3.0.0+occa+cuda')
@@ -65,13 +78,23 @@ class Ceed(BundlePackage):
depends_on('occa@1.0.0-alpha.5~cuda', when='@1.0.0+occa~cuda')
depends_on('occa@1.0.0-alpha.5+cuda', when='@1.0.0+occa+cuda')
+ # NekRS
+ # ceed-4.0
+ depends_on('nekrs@21.0', when='@4.0.0+nek')
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on('nekrs@21.0+cuda cuda_arch={0}'.format(arch),
+ when='@4.0.0+nek+cuda cuda_arch={0}'.format(arch))
+ for target in ROCmPackage.amdgpu_targets:
+ depends_on('nekrs@21.0+rocm amdgpu_target={0}'.format(target),
+ when='@4.0.0+nek+rocm amdgpu_target={0}'.format(target))
+
# Nek5000, GSLIB, Nekbone, and NekCEM
- # ceed-3.0
- depends_on('nek5000@19.0', when='@3.0.0+nek')
- depends_on('nektools@19.0%gcc', when='@3.0.0+nek')
- depends_on('gslib@1.0.6', when='@3.0.0+nek')
- depends_on('nekbone@17.0', when='@3.0.0+nek')
- depends_on('nekcem@c8db04b', when='@3.0.0+nek')
+ # ceed-3.0 and ceed-4.0
+ depends_on('nek5000@19.0', when='@3.0.0:4.99+nek')
+ depends_on('nektools@19.0%gcc', when='@3.0.0:4.99+nek')
+ depends_on('gslib@1.0.6', when='@3.0.0:4.99+nek')
+ depends_on('nekbone@17.0', when='@3.0.0:4.99+nek')
+ depends_on('nekcem@c8db04b', when='@3.0.0:4.99+nek')
# ceed-2.0
depends_on('nek5000@17.0', when='@2.0.0+nek')
depends_on('nektools@17.0%gcc', when='@2.0.0+nek')
@@ -86,6 +109,17 @@ class Ceed(BundlePackage):
depends_on('nekcem@0b8bedd', when='@1.0.0+nek')
# PETSc
+ # ceed 4.0
+ depends_on('petsc@3.15.0:3.15.99', when='@4.0.0:4.99.99+petsc')
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on('petsc+cuda cuda_arch={0}'.format(arch),
+ when='@4.0.0+petsc+cuda cuda_arch={0}'.format(arch))
+ for target in ROCmPackage.amdgpu_targets:
+ depends_on('petsc@3.15.0:3.15.99+rocm amdgpu_target={0}'.format(target),
+ when='@4.0.0:4.99.99+petsc+rocm amdgpu_target={0}'.format(target))
+ depends_on('petsc@3.15.0:3.15.99~hdf5~superlu-dist',
+ when='@4.0.0+petsc+quickbuild')
+ depends_on('petsc@3.15.0:3.15.99+mpi+double~int64', when='@4.0.0:4.99.99+petsc~mfem')
# ceed-3.0
depends_on('petsc+cuda', when='@3.0.0+petsc+cuda')
# For a +quickbuild we disable hdf5, and superlu-dist in PETSc.
@@ -125,6 +159,10 @@ class Ceed(BundlePackage):
depends_on('hpgmg@a0a5510df23b+fe', when='@1.0.0+petsc')
# MAGMA
+ # ceed-4.0
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on('magma@2.5.4 cuda_arch={0}'.format(arch),
+ when='@4.0.0+cuda cuda_arch={0}'.format(arch))
# ceed-3.0
depends_on('magma@2.5.3', when='@3.0.0+cuda')
# ceed-2.0
@@ -133,6 +171,8 @@ class Ceed(BundlePackage):
depends_on('magma@2.3.0', when='@1.0.0+cuda')
# PUMI
+ # ceed-4.0
+ depends_on('pumi@2.2.5', when='@4.0.0+pumi')
# ceed-3.0
depends_on('pumi@2.2.2', when='@3.0.0+pumi')
# ceed-2.0
@@ -141,6 +181,22 @@ class Ceed(BundlePackage):
depends_on('pumi@2.1.0', when='@1.0.0+pumi')
# MFEM, Laghos, Remhos
+ # ceed-4.0
+ depends_on('mfem@4.2.0+mpi+examples+miniapps', when='@4.0.0+mfem~petsc')
+ depends_on('mfem@4.2.0+mpi+petsc+examples+miniapps',
+ when='@4.0.0+mfem+petsc')
+ depends_on('mfem@4.2.0+pumi', when='@4.0.0+mfem+pumi')
+ depends_on('mfem@4.2.0+gslib', when='@4.0.0+mfem+nek')
+ depends_on('mfem@4.2.0+libceed', when='@4.0.0+mfem')
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on('mfem@4.2.0+cuda cuda_arch={0}'.format(arch),
+ when='@4.0.0+mfem+cuda cuda_arch={0}'.format(arch))
+ for target in ROCmPackage.amdgpu_targets:
+ depends_on('mfem@4.2.0+rocm amdgpu_target={0}'.format(target),
+ when='@4.0.0+mfem+rocm amdgpu_target={0}'.format(target))
+ depends_on('mfem@4.2.0+occa', when='@4.0.0+mfem+occa')
+ depends_on('laghos@3.1', when='@4.0.0+mfem')
+ depends_on('remhos@1.0', when='@4.0.0+mfem')
# ceed-3.0
depends_on('mfem@4.1.0+mpi+examples+miniapps', when='@3.0.0+mfem~petsc')
depends_on('mfem@4.1.0+mpi+petsc+examples+miniapps',
diff --git a/var/spack/repos/builtin/packages/cereal/package.py b/var/spack/repos/builtin/packages/cereal/package.py
index c35892538d..b10b90e7a3 100644
--- a/var/spack/repos/builtin/packages/cereal/package.py
+++ b/var/spack/repos/builtin/packages/cereal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class Cereal(CMakePackage):
with other code or used standalone.
"""
- homepage = "http://uscilab.github.io/cereal/"
+ homepage = "https://uscilab.github.io/cereal/"
url = "https://github.com/USCiLab/cereal/archive/v1.1.2.tar.gz"
version('1.3.0', sha256='329ea3e3130b026c03a4acc50e168e7daff4e6e661bc6a7dfec0d77b570851d5')
diff --git a/var/spack/repos/builtin/packages/ceres-solver/package.py b/var/spack/repos/builtin/packages/ceres-solver/package.py
index ab84b4f9b7..7336a5d0ba 100644
--- a/var/spack/repos/builtin/packages/ceres-solver/package.py
+++ b/var/spack/repos/builtin/packages/ceres-solver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,7 @@ class CeresSolver(CMakePackage):
homepage = "http://ceres-solver.org"
url = "http://ceres-solver.org/ceres-solver-1.12.0.tar.gz"
+ version('2.0.0', sha256='10298a1d75ca884aa0507d1abb0e0f04800a92871cd400d4c361b56a777a7603')
version('1.14.0', sha256='4744005fc3b902fed886ea418df70690caa8e2ff6b5a90f3dd88a3d291ef8e8e')
version('1.12.0', sha256='745bfed55111e086954126b748eb9efe20e30be5b825c6dec3c525cf20afc895')
diff --git a/var/spack/repos/builtin/packages/cfitsio/package.py b/var/spack/repos/builtin/packages/cfitsio/package.py
index dfac754190..d1061ec173 100644
--- a/var/spack/repos/builtin/packages/cfitsio/package.py
+++ b/var/spack/repos/builtin/packages/cfitsio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,16 @@ class Cfitsio(AutotoolsPackage):
data files in FITS (Flexible Image Transport System) data format.
"""
- homepage = 'http://heasarc.gsfc.nasa.gov/fitsio/'
- url = 'http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio3450.tar.gz'
+ homepage = 'https://heasarc.gsfc.nasa.gov/fitsio/'
+ url = 'https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio-3.49.tar.gz'
- version('3.450', sha256='bf6012dbe668ecb22c399c4b7b2814557ee282c74a7d5dc704eb17c30d9fb92e')
- version('3.420', sha256='6c10aa636118fa12d9a5e2e66f22c6436fb358da2af6dbf7e133c142e2ac16b8')
- version('3.410', sha256='a556ac7ea1965545dcb4d41cfef8e4915eeb8c0faa1b52f7ff70870f8bb5734c')
- version('3.370', sha256='092897c6dae4dfe42d91d35a738e45e8236aa3d8f9b3ffc7f0e6545b8319c63a')
+ version('3.49', sha256='5b65a20d5c53494ec8f638267fca4a629836b7ac8dd0ef0266834eab270ed4b3')
+ version('3.48', sha256='91b48ffef544eb8ea3908543052331072c99bf09ceb139cb3c6977fc3e47aac1')
+ version('3.47', sha256='418516f10ee1e0f1b520926eeca6b77ce639bed88804c7c545e74f26b3edf4ef')
+ version('3.45', sha256='bf6012dbe668ecb22c399c4b7b2814557ee282c74a7d5dc704eb17c30d9fb92e')
+ version('3.42', sha256='6c10aa636118fa12d9a5e2e66f22c6436fb358da2af6dbf7e133c142e2ac16b8')
+ version('3.41', sha256='a556ac7ea1965545dcb4d41cfef8e4915eeb8c0faa1b52f7ff70870f8bb5734c')
+ version('3.37', sha256='092897c6dae4dfe42d91d35a738e45e8236aa3d8f9b3ffc7f0e6545b8319c63a')
variant('bzip2', default=True, description='Enable bzip2 support')
variant('shared', default=True, description='Build shared libraries')
@@ -26,7 +29,10 @@ class Cfitsio(AutotoolsPackage):
depends_on('bzip2', when='+bzip2')
def url_for_version(self, version):
- url = 'http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio{0}.tar.gz'
+ if version >= Version('3.47'):
+ return super(Cfitsio, self).url_for_version(version)
+
+ url = 'http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio{0}0.tar.gz'
return url.format(version.joined)
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/cgal/package.py b/var/spack/repos/builtin/packages/cgal/package.py
index 41fc640448..24cc1d1b4e 100644
--- a/var/spack/repos/builtin/packages/cgal/package.py
+++ b/var/spack/repos/builtin/packages/cgal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Cgal(CMakePackage):
computation, such as geographic information systems, computer aided design,
molecular biology, medical imaging, computer graphics, and robotics.
"""
- homepage = 'http://www.cgal.org/'
+ homepage = 'https://www.cgal.org/'
url = "https://github.com/CGAL/cgal/releases/download/releases/CGAL-5.0.3/CGAL-5.0.3.tar.xz"
version('5.0.3', sha256='e5a3672e35e5e92e3c1b4452cd3c1d554f3177dc512bd98b29edf21866a4288c')
@@ -31,15 +31,15 @@ class Cgal(CMakePackage):
variant('build_type', default='Release',
description='The build type to build',
values=('Debug', 'Release'))
- variant('header-only', default=False,
+ variant('header_only', default=False,
description='Install in header only mode')
# ---- See "7 CGAL Libraries" at:
- # http://doc.cgal.org/latest/Manual/installation.html
+ # https://doc.cgal.org/latest/Manual/installation.html
# The CORE library provides exact arithmetic for geometric computations.
- # See: http://cs.nyu.edu/exact/core_pages/
- # http://cs.nyu.edu/exact/core_pages/svn-core.html
+ # See: https://cs.nyu.edu/exact/core_pages/
+ # https://cs.nyu.edu/exact/core_pages/svn-core.html
variant('core', default=False,
description='Build the CORE library for algebraic numbers')
variant('imageio', default=False,
@@ -91,7 +91,7 @@ class Cgal(CMakePackage):
def cmake_args(self):
# Installation instructions:
- # http://doc.cgal.org/latest/Manual/installation.html
+ # https://doc.cgal.org/latest/Manual/installation.html
spec = self.spec
variant_bool = lambda feature: str(feature in spec)
cmake_args = []
diff --git a/var/spack/repos/builtin/packages/cgdb/package.py b/var/spack/repos/builtin/packages/cgdb/package.py
index 269561b070..8c3c2e4ec1 100644
--- a/var/spack/repos/builtin/packages/cgdb/package.py
+++ b/var/spack/repos/builtin/packages/cgdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,9 @@ class Cgdb(AutotoolsPackage):
# Required dependency
depends_on('ncurses')
depends_on('readline')
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
+ depends_on('texinfo', type='build')
def configure_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/cgdcbxd/package.py b/var/spack/repos/builtin/packages/cgdcbxd/package.py
index 63eb408bad..3faad1b494 100644
--- a/var/spack/repos/builtin/packages/cgdcbxd/package.py
+++ b/var/spack/repos/builtin/packages/cgdcbxd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cget/package.py b/var/spack/repos/builtin/packages/cget/package.py
index ee8bcb1acf..9b76cc795b 100644
--- a/var/spack/repos/builtin/packages/cget/package.py
+++ b/var/spack/repos/builtin/packages/cget/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Cget(PythonPackage):
"""Cmake package retrieval."""
homepage = "https://github.com/pfultz2/cget"
- url = "https://pypi.io/packages/source/c/cget/cget-0.1.9.tar.gz"
+ pypi = "cget/cget-0.1.9.tar.gz"
version('0.1.9', sha256='2a7913b601bec615208585eda7e69998a43cc17080d36c2ff2ce8742c9794bf6')
diff --git a/var/spack/repos/builtin/packages/cgl/package.py b/var/spack/repos/builtin/packages/cgl/package.py
index 1c0a694df5..24e16e4e95 100644
--- a/var/spack/repos/builtin/packages/cgl/package.py
+++ b/var/spack/repos/builtin/packages/cgl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cgm/package.py b/var/spack/repos/builtin/packages/cgm/package.py
index 295b85a7ba..c5e4b735d7 100644
--- a/var/spack/repos/builtin/packages/cgm/package.py
+++ b/var/spack/repos/builtin/packages/cgm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Cgm(AutotoolsPackage):
"""The Common Geometry Module, Argonne (CGMA) is a code library
which provides geometry functionality used for mesh generation and
other applications."""
- homepage = "http://sigma.mcs.anl.gov/cgm-library"
- url = "http://ftp.mcs.anl.gov/pub/fathom/cgm-16.0.tar.gz"
+ homepage = "https://sigma.mcs.anl.gov/cgm-library"
+ url = "https://ftp.mcs.anl.gov/pub/fathom/cgm-16.0.tar.gz"
version('16.0', sha256='b98afe70c64efa19decc5ff01602e8c7afc6b22ce646cad30dc92ecfdce6e23d')
version('13.1.1', sha256='ffde54f0c86055b06cad911bbd4297b88c3fb124c873b03ebee626f807b8ab87')
diff --git a/var/spack/repos/builtin/packages/cgns/package.py b/var/spack/repos/builtin/packages/cgns/package.py
index 5e05c805af..eab936b1e4 100644
--- a/var/spack/repos/builtin/packages/cgns/package.py
+++ b/var/spack/repos/builtin/packages/cgns/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import sys
+
from spack import *
@@ -12,12 +13,16 @@ class Cgns(CMakePackage):
and extensible standard for the storage and retrieval of computational
fluid dynamics (CFD) analysis data."""
- homepage = "http://cgns.github.io/"
+ homepage = "https://cgns.github.io/"
url = "https://github.com/CGNS/CGNS/archive/v3.3.0.tar.gz"
git = "https://github.com/CGNS/CGNS"
+ parallel = False
+
version('develop', branch='develop')
version('master', branch='master')
+ version('4.2.0', sha256='090ec6cb0916d90c16790183fc7c2bd2bd7e9a5e3764b36c8196ba37bf1dc817')
+ version('4.1.2', sha256='951653956f509b8a64040f1440c77f5ee0e6e2bf0a9eef1248d370f60a400050')
version('4.1.1', sha256='055d345c3569df3ae832fb2611cd7e0bc61d56da41b2be1533407e949581e226')
version('4.1.0', sha256='4674de1fac3c47998248725fd670377be497f568312c5903d1bb8090a3cf4da0')
version('4.0.0', sha256='748585a8e52dff4d250d6b603e6b847d05498e4566aba2dc3d7a7d85c4d55849')
@@ -36,9 +41,10 @@ class Cgns(CMakePackage):
variant('static', default=False, description='Build static libraries')
variant('testing', default=False, description='Build CGNS testing')
variant('legacy', default=False, description='Enable legacy options')
- variant('parallel', default=False, description='Enable parallel features')
variant('mem_debug', default=False, description='Enable memory debugging option')
+ depends_on('cmake@3.8:', when='@4.2:', type='build')
+ depends_on('cmake@2.8:', when='@:4.1.99', type='build')
depends_on('hdf5~mpi', when='+hdf5~mpi')
depends_on('hdf5+mpi', when='+hdf5+mpi')
depends_on('mpi', when='+mpi')
@@ -48,28 +54,17 @@ class Cgns(CMakePackage):
options = []
options.extend([
- '-DCGNS_ENABLE_FORTRAN:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DCGNS_ENABLE_SCOPING:BOOL=%s' % (
- 'ON' if '+scoping' in spec else 'OFF'),
- '-DCGNS_ENABLE_PARALLEL:BOOL=%s' % (
- 'ON' if '+mpi' in spec else 'OFF'),
+ self.define_from_variant('CGNS_ENABLE_FORTRAN', 'fortran'),
+ self.define_from_variant('CGNS_ENABLE_SCOPING', 'scoping'),
+ self.define_from_variant('CGNS_ENABLE_PARALLEL', 'mpi'),
'-DCGNS_ENABLE_TESTS:BOOL=OFF',
- '-DCGNS_BUILD_TESTING:BOOL=%s' % (
- 'ON' if '+testing' in spec else 'OFF'),
+ self.define_from_variant('CGNS_BUILD_TESTING', 'testing'),
'-DCGNS_BUILD_CGNSTOOLS:BOOL=OFF',
- '-DCGNS_BUILD_SHARED:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
- '-DCGNS_BUILD_STATIC:BOOL=%s' % (
- 'ON' if '+static' in spec else 'OFF'),
- '-DCGNS_ENABLE_BASE_SCOPE:BOOL=%s' % (
- 'ON' if '+base_scope' in spec else 'OFF'),
- '-DCGNS_ENABLE_LEGACY:BOOL=%s' % (
- 'ON' if '+legacy' in spec else 'OFF'),
- '-DCGNS_ENABLE_PARALLEL:BOOL=%s' % (
- 'ON' if '+parallel' in spec else 'OFF'),
- '-DCGNS_ENABLE_MEM_DEBUG:BOOL=%s' % (
- 'ON' if '+mem_debug' in spec else 'OFF')
+ self.define_from_variant('CGNS_BUILD_SHARED', 'shared'),
+ self.define_from_variant('CGNS_BUILD_STATIC', 'static'),
+ self.define_from_variant('CGNS_ENABLE_BASE_SCOPE', 'base_scope'),
+ self.define_from_variant('CGNS_ENABLE_LEGACY', 'legacy'),
+ self.define_from_variant('CGNS_ENABLE_MEM_DEBUG', 'mem_debug')
])
if '+mpi' in spec:
@@ -80,8 +75,7 @@ class Cgns(CMakePackage):
])
options.append(
- '-DCGNS_ENABLE_64BIT:BOOL={0}'.format(
- 'ON' if '+int64' in spec else 'OFF'))
+ self.define_from_variant('CGNS_ENABLE_64BIT', 'int64'))
if '+hdf5' in spec:
options.extend([
diff --git a/var/spack/repos/builtin/packages/chai/package.py b/var/spack/repos/builtin/packages/chai/package.py
index 6fd33dea8b..430dadc92f 100644
--- a/var/spack/repos/builtin/packages/chai/package.py
+++ b/var/spack/repos/builtin/packages/chai/package.py
@@ -1,12 +1,14 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import socket
+
from spack import *
-class Chai(CMakePackage, CudaPackage, ROCmPackage):
+class Chai(CachedCMakePackage, CudaPackage, ROCmPackage):
"""
Copy-hiding array interface for data migration between memory spaces
"""
@@ -14,89 +16,150 @@ class Chai(CMakePackage, CudaPackage, ROCmPackage):
homepage = "https://github.com/LLNL/CHAI"
git = "https://github.com/LLNL/CHAI.git"
- version('develop', branch='develop', submodules='True')
- version('master', branch='main', submodules='True')
- version('2.1.1', tag='v2.1.1', submodules='True')
- version('2.1.0', tag='v2.1.0', submodules='True')
- version('2.0.0', tag='v2.0.0', submodules='True')
- version('1.2.0', tag='v1.2.0', submodules='True')
- version('1.1.0', tag='v1.1.0', submodules='True')
- version('1.0', tag='v1.0', submodules='True')
-
+ maintainers = ['davidbeckingsale']
+
+ version('develop', branch='develop', submodules=True)
+ version('main', branch='main', submodules=True)
+ version('2.4.0', tag='v2.4.0', submodules=True)
+ version('2.3.0', tag='v2.3.0', submodules=True)
+ version('2.2.2', tag='v2.2.2', submodules=True)
+ version('2.2.1', tag='v2.2.1', submodules=True)
+ version('2.2.0', tag='v2.2.0', submodules=True)
+ version('2.1.1', tag='v2.1.1', submodules=True)
+ version('2.1.0', tag='v2.1.0', submodules=True)
+ version('2.0.0', tag='v2.0.0', submodules=True)
+ version('1.2.0', tag='v1.2.0', submodules=True)
+ version('1.1.0', tag='v1.1.0', submodules=True)
+ version('1.0', tag='v1.0', submodules=True)
+
+ variant('enable_pick', default=False, description='Enable pick method')
variant('shared', default=True, description='Build Shared Libs')
variant('raja', default=False, description='Build plugin for RAJA')
- variant('benchmarks', default=True, description='Build benchmarks.')
+ variant('benchmarks', default=False, description='Build benchmarks.')
variant('examples', default=True, description='Build examples.')
+ variant('openmp', default=False, description='Build using OpenMP')
+ # TODO: figure out gtest dependency and then set this default True
+ # and remove the +tests conflict below.
+ variant('tests', default=False, description='Build tests')
depends_on('cmake@3.8:', type='build')
- depends_on('umpire')
- depends_on('raja', when="+raja")
-
depends_on('cmake@3.9:', type='build', when="+cuda")
- depends_on('umpire+cuda', when="+cuda")
- depends_on('raja+cuda', when="+raja+cuda")
- # variants +rocm and amdgpu_targets are not automatically passed to
- # dependencies, so do it manually.
- depends_on('umpire+rocm', when='+rocm')
- depends_on('raja+rocm', when="+raja+rocm")
- for val in ROCmPackage.amdgpu_targets:
- depends_on('umpire amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
- depends_on('raja amdgpu_target=%s' % val, when='+raja amdgpu_target=%s' % val)
+ depends_on('blt@0.4.1:', type='build', when='@2.4.0:')
+ depends_on('blt@0.4.0:', type='build', when='@2.3.0')
+ depends_on('blt@0.3.6:', type='build', when='@:2.2.2')
- def cmake_args(self):
+ depends_on('umpire')
+ depends_on('umpire@6.0.0', when="@2.4.0")
+ depends_on('umpire@4.1.2', when="@2.2.0:2.3.0")
+ depends_on('umpire@main', when='@main')
+
+ with when('+cuda'):
+ depends_on('umpire+cuda')
+ for sm_ in CudaPackage.cuda_arch_values:
+ depends_on('umpire+cuda cuda_arch={0}'.format(sm_),
+ when='cuda_arch={0}'.format(sm_))
+
+ with when('+rocm'):
+ depends_on('umpire+rocm')
+ for arch in ROCmPackage.amdgpu_targets:
+ depends_on('umpire+rocm amdgpu_target={0}'.format(arch),
+ when='amdgpu_target={0}'.format(arch))
+
+ with when('+raja'):
+ depends_on('raja~openmp', when='~openmp')
+ depends_on('raja+openmp', when='+openmp')
+ depends_on('raja@0.14.0', when="@2.4.0")
+ depends_on('raja@0.13.0', when="@2.3.0")
+ depends_on('raja@0.12.0', when="@2.2.0:2.2.2")
+ depends_on('raja@main', when='@main')
+
+ with when('+cuda'):
+ depends_on('raja+cuda')
+ for sm_ in CudaPackage.cuda_arch_values:
+ depends_on('raja+cuda cuda_arch={0}'.format(sm_),
+ when='cuda_arch={0}'.format(sm_))
+ with when('+rocm'):
+ depends_on('raja+rocm')
+ for arch in ROCmPackage.amdgpu_targets:
+ depends_on('raja+rocm amdgpu_target={0}'.format(arch),
+ when='amdgpu_target={0}'.format(arch))
+
+ conflicts('+benchmarks', when='~tests')
+
+ def _get_sys_type(self, spec):
+ sys_type = spec.architecture
+ if "SYS_TYPE" in env:
+ sys_type = env["SYS_TYPE"]
+ return sys_type
+
+ @property
+ def cache_name(self):
+ hostname = socket.gethostname()
+ if "SYS_TYPE" in env:
+ hostname = hostname.rstrip('1234567890')
+ return "{0}-{1}-{2}@{3}.cmake".format(
+ hostname,
+ self._get_sys_type(self.spec),
+ self.spec.compiler.name,
+ self.spec.compiler.version
+ )
+
+ def initconfig_hardware_entries(self):
spec = self.spec
+ entries = super(Chai, self).initconfig_hardware_entries()
- options = []
+ entries.append(cmake_cache_option("ENABLE_OPENMP", '+openmp' in spec))
if '+cuda' in spec:
- options.extend([
- '-DENABLE_CUDA=ON',
- '-DCUDA_TOOLKIT_ROOT_DIR=' + spec['cuda'].prefix])
+ entries.append(cmake_cache_option("ENABLE_CUDA", True))
+ entries.append(cmake_cache_option("CMAKE_CUDA_SEPARABLE_COMPILATION", True))
+ entries.append(cmake_cache_option("CUDA_SEPARABLE_COMPILATION", True))
if not spec.satisfies('cuda_arch=none'):
cuda_arch = spec.variants['cuda_arch'].value
- options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0]))
+ entries.append(cmake_cache_string(
+ "CUDA_ARCH", 'sm_{0}'.format(cuda_arch[0])))
+ entries.append(cmake_cache_string(
+ "CMAKE_CUDA_ARCHITECTURES", '{0}'.format(cuda_arch[0])))
flag = '-arch sm_{0}'.format(cuda_arch[0])
- options.append('-DCMAKE_CUDA_FLAGS:STRING={0}'.format(flag))
+ entries.append(cmake_cache_string(
+ "CMAKE_CUDA_FLAGS", '{0}'.format(flag)))
else:
- options.append('-DENABLE_CUDA=OFF')
+ entries.append(cmake_cache_option("ENABLE_CUDA", False))
if '+rocm' in spec:
- options.extend([
- '-DENABLE_HIP=ON',
- '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix)
- ])
+ entries.append(cmake_cache_option("ENABLE_HIP", True))
+ entries.append(cmake_cache_path(
+ "HIP_ROOT_DIR", '{0}'.format(spec['hip'].prefix)))
archs = self.spec.variants['amdgpu_target'].value
if archs != 'none':
arch_str = ",".join(archs)
- options.append(
- '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch_str)
- )
+ entries.append(cmake_cache_string(
+ "HIP_HIPCC_FLAGS", '--amdgpu-target={0}'.format(arch_str)))
else:
- options.append('-DENABLE_HIP=OFF')
+ entries.append(cmake_cache_option("ENABLE_HIP", False))
- if '+raja' in spec:
- options.extend(['-DENABLE_RAJA_PLUGIN=ON',
- '-DRAJA_DIR=' + spec['raja'].prefix])
+ return entries
- options.append('-Dumpire_DIR:PATH='
- + spec['umpire'].prefix.share.umpire.cmake)
-
- options.append('-DENABLE_TESTS={0}'.format(
- 'ON' if self.run_tests else 'OFF'))
-
- # give clear error for conflict between self.run_tests and
- # benchmarks variant.
- if not self.run_tests and '+benchmarks' in spec:
- raise InstallError(
- 'ENABLE_BENCHMARKS requires ENABLE_TESTS to be ON'
- )
-
- options.append('-DENABLE_BENCHMARKS={0}'.format(
- 'ON' if '+benchmarks' in spec else 'OFF'))
+ def initconfig_package_entries(self):
+ spec = self.spec
+ entries = []
- options.append('-DENABLE_EXAMPLES={0}'.format(
- 'ON' if '+examples' in spec else 'OFF'))
+ entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec['blt'].prefix))
+ if '+raja' in spec:
+ entries.append(cmake_cache_option("ENABLE_RAJA_PLUGIN", True))
+ entries.append(cmake_cache_path("RAJA_DIR", spec['raja'].prefix))
+ entries.append(cmake_cache_option('ENABLE_PICK', '+enable_pick' in spec))
+ entries.append(cmake_cache_path(
+ "umpire_DIR", spec['umpire'].prefix.share.umpire.cmake))
+ entries.append(cmake_cache_option("ENABLE_TESTS", '+tests' in spec))
+ entries.append(cmake_cache_option("ENABLE_BENCHMARKS", '+benchmarks' in spec))
+ entries.append(cmake_cache_option("ENABLE_EXAMPLES", '+examples' in spec))
+ entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec))
+
+ return entries
+ def cmake_args(self):
+ options = []
return options
diff --git a/var/spack/repos/builtin/packages/changa/package.py b/var/spack/repos/builtin/packages/changa/package.py
index a6adb48c38..e7d8059e3a 100644
--- a/var/spack/repos/builtin/packages/changa/package.py
+++ b/var/spack/repos/builtin/packages/changa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class Changa(AutotoolsPackage):
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"
+ homepage = "https://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"
diff --git a/var/spack/repos/builtin/packages/channelflow/package.py b/var/spack/repos/builtin/packages/channelflow/package.py
index ecd16053a5..f4a01f7548 100644
--- a/var/spack/repos/builtin/packages/channelflow/package.py
+++ b/var/spack/repos/builtin/packages/channelflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/chapel/package.py b/var/spack/repos/builtin/packages/chapel/package.py
index 142fb60a8b..d25d66aa0b 100644
--- a/var/spack/repos/builtin/packages/chapel/package.py
+++ b/var/spack/repos/builtin/packages/chapel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,14 @@ class Chapel(AutotoolsPackage):
portable, scalable and open-source."""
homepage = "https://chapel-lang.org/"
- url = "https://github.com/chapel-lang/chapel/releases/download/1.20.0/chapel-1.20.0.tar.gz"
+ url = "https://github.com/chapel-lang/chapel/releases/download/1.24.1/chapel-1.24.1.tar.gz"
+ version('1.24.1', sha256='f898f266fccaa34d937b38730a361d42efb20753ba43a95e5682816e008ce5e4')
+ version('1.24.0', sha256='77c6087f3e0837268470915f2ad260d49cf7ac4adf16f5b44862ae624c1be801')
+ version('1.23.0', sha256='7ae2c8f17a7b98ac68378e94a842cf16d4ab0bcfeabc0fee5ab4aaa07b205661')
+ version('1.22.1', sha256='8235eb0869c9b04256f2e5ce3ac4f9eff558401582fba0eba05f254449a24989')
+ version('1.22.0', sha256='57ba6ee5dfc36efcd66854ecb4307e1c054700ea201eff73012bd8b4572c2ce6')
+ version('1.21.0', sha256='886f7ba0e0e86c86dba99417e3165f90b1d3eca59c8cd5a7f645ce28cb5d82a0')
version('1.20.0', sha256='08bc86df13e4ad56d0447f52628b0f8e36b0476db4e19a90eeb2bd5f260baece')
version('1.19.0', sha256='c2b68a20d87cc382c2f73dd1ecc6a4f42fb2f590b0b10fbc577382dd35c9e9bd')
version('1.18.0', sha256='68471e1f398b074edcc28cae0be26a481078adc3edea4df663f01c6bd3b6ae0d')
diff --git a/var/spack/repos/builtin/packages/chaplin/package.py b/var/spack/repos/builtin/packages/chaplin/package.py
new file mode 100644
index 0000000000..c788b9c15d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/chaplin/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 Chaplin(AutotoolsPackage):
+ """The FORTRAN library CHAPLIN enables you to numerically
+ evaluate Harmonic polylogarithms up to weight 4 for any
+ complex argument."""
+
+ homepage = "https://chaplin.hepforge.org"
+ url = "https://chaplin.hepforge.org/code/chaplin-1.2.tar"
+
+ tags = ['hep']
+
+ maintainers = ['vvolkl']
+
+ version('1.2', sha256='f17c2d985fd4e4ce36cede945450416d3fa940af68945c91fa5d3ca1d76d4b49')
diff --git a/var/spack/repos/builtin/packages/charliecloud/package.py b/var/spack/repos/builtin/packages/charliecloud/package.py
index 3f2f836eb7..a1971f2718 100644
--- a/var/spack/repos/builtin/packages/charliecloud/package.py
+++ b/var/spack/repos/builtin/packages/charliecloud/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,11 @@ class Charliecloud(AutotoolsPackage):
git = "https://github.com/hpc/charliecloud.git"
version('master', branch='master')
+ version('0.25', sha256='62d6fd211e3a573f54578e1b01d5c298f9788b7eaf2db46ac94c2dcef604cc94')
+ version('0.24', sha256='63379bcbad7b90b33457251696d6720416e4acefcf2b49cd6cb495a567e511c2')
+ version('0.23', sha256='5e458b943ad0e27d1264bb089e48d4a676219179b0e96a7d761387a36c45b4d9')
+ version('0.22', sha256='f65e4111ce87e449c656032da69f3b1cfc70a5a416a5e410329c1b0b2e953907')
+ version('0.21', sha256='024884074d283c4a0387d899161610fa4ae739ac1efcc9e53d7d626ddc20359f')
version('0.19', sha256='99619fd86860cda18f7f7a7cf7391f702ec9ebd3193791320dea647769996447')
version('0.18', sha256='15ce63353afe1fc6bcc10979496a54fcd5628f997cb13c827c9fc7afb795bdc5')
@@ -24,7 +29,8 @@ class Charliecloud(AutotoolsPackage):
depends_on('libtool', type='build')
depends_on('python@3.5:', type='run')
- depends_on('py-lark-parser', type='run')
+ # Version 0.25+ bundle the preferred lark version.
+ depends_on('py-lark-parser', type='run', when='@:0.24')
depends_on('py-requests', type='run')
# Man pages and html docs variant.
diff --git a/var/spack/repos/builtin/packages/charmpp/charm_6.7.1_aocc.patch b/var/spack/repos/builtin/packages/charmpp/charm_6.7.1_aocc.patch
new file mode 100644
index 0000000000..3967e5fc3e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/charmpp/charm_6.7.1_aocc.patch
@@ -0,0 +1,188 @@
+diff -bur charm-6.7.1/src/arch/mpi-linux-x86_64/cc-mpicxx.sh updated-charm-6.7.1/src/arch/mpi-linux-x86_64/cc-mpicxx.sh
+--- charm-6.7.1/src/arch/mpi-linux-x86_64/cc-mpicxx.sh 2016-11-07 20:14:26.000000000 +0530
++++ updated-charm-6.7.1/src/arch/mpi-linux-x86_64/cc-mpicxx.sh 2019-08-26 16:55:40.868903291 +0530
+@@ -14,7 +14,7 @@
+
+ CMK_REAL_COMPILER=`$MPICXX -show 2>/dev/null | cut -d' ' -f1 `
+ case "$CMK_REAL_COMPILER" in
+-g++) CMK_AMD64="-m64 -fPIC" ;;
++clang++) CMK_AMD64="-m64 -fPIC" ;;
+ icpc) CMK_AMD64="-m64";;
+ pgCC) CMK_AMD64="-DCMK_FIND_FIRST_OF_PREDICATE=1 --no_using_std " ;;
+ FCC) CMK_AMD64="-Kfast -DCMK_FIND_FIRST_OF_PREDICATE=1 --variadic_macros";;
+diff -bur charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh updated-charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh
+--- charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh 2016-11-07 20:14:26.000000000 +0530
++++ updated-charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh 2019-08-26 16:55:40.868903291 +0530
+@@ -1,14 +1,14 @@
+
+ case "$CMK_CC" in
+ mpicc*)
+- CMK_CPP_C="gcc -E "
+- CMK_CC="gcc -fPIC"
+- CMK_CC_RELIABLE="gcc -fPIC"
+- CMK_CC_FASTEST="gcc -fPIC"
+- CMK_CXX="g++ -fPIC"
+- CMK_CXXPP="gcc -E "
+- CMK_LD="gcc"
+- CMK_LDXX="g++"
++ CMK_CPP_C="clang -E "
++ CMK_CC="clang -fPIC"
++ CMK_CC_RELIABLE="clang -fPIC"
++ CMK_CC_FASTEST="clang -fPIC"
++ CMK_CXX="clang++ -fPIC"
++ CMK_CXXPP="clang -E "
++ CMK_LD="clang"
++ CMK_LDXX="clang++"
+
+ # native compiler for compiling charmxi, etc
+ CMK_NATIVE_CC="$CMK_CC"
+Only in updated-charm-6.7.1/src/arch/mpi-linux-x86_64: conv-mach-scyld.sh.orig
+Only in updated-charm-6.7.1/src/arch/mpi-linux-x86_64: conv-mach-scyld.sh.rej
+diff -bur charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach.sh updated-charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach.sh
+--- charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach.sh 2016-11-07 20:14:26.000000000 +0530
++++ updated-charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach.sh 2019-08-26 16:55:40.868903291 +0530
+@@ -23,7 +23,7 @@
+
+ CMK_REAL_COMPILER=`$MPICXX -show 2>/dev/null | cut -d' ' -f1 `
+ case "$CMK_REAL_COMPILER" in
+-g++) CMK_AMD64_CC="$CMK_GCC64"; CMK_AMD64_CXX="$CMK_GCC64" ;;
++clang++) CMK_AMD64_CC="$CMK_GCC64"; CMK_AMD64_CXX="$CMK_GCC64" ;;
+ pgCC) CMK_AMD64_CC="-fPIC"; CMK_AMD64_CXX="-fPIC -DCMK_FIND_FIRST_OF_PREDICATE=1 --no_using_std " ;;
+ charmc) echo "Error> charmc can not call AMPI's mpicxx/mpiCC wrapper! Please fix your PATH."; exit 1 ;;
+ esac
+@@ -38,10 +38,10 @@
+ CMK_LIBS="-lckqt $CMK_SYSLIBS "
+ CMK_LD_LIBRARY_PATH="-Wl,-rpath,$CHARMLIBSO/"
+
+-CMK_NATIVE_CC="gcc $CMK_GCC64 "
+-CMK_NATIVE_LD="gcc $CMK_GCC64 "
+-CMK_NATIVE_CXX="g++ $CMK_GCC64 "
+-CMK_NATIVE_LDXX="g++ $CMK_GCC64 "
++CMK_NATIVE_CC="clang $CMK_GCC64 "
++CMK_NATIVE_LD="clang $CMK_GCC64 "
++CMK_NATIVE_CXX="clang++ $CMK_GCC64 "
++CMK_NATIVE_LDXX="clang++ $CMK_GCC64 "
+ CMK_NATIVE_LIBS=""
+
+ # fortran compiler
+@@ -51,7 +51,7 @@
+ # CMK_FPP="/lib/cpp -P -CC"
+ # CMK_CF90="$CMK_CF90 -fpic -fautomatic -fdollar-ok "
+ # CMK_CF90_FIXED="$CMK_CF90 -ffixed-form "
+-# CMK_F90LIBS="-lgfortran "
++# CMK_F90LIBS=" "
+ # CMK_F90_USE_MODDIR=1
+ # CMK_F90_MODINC="-I"
+ # CMK_MOD_NAME_ALLCAPS=
+diff -bur charm-6.7.1/src/libs/ck-libs/ckloop/Makefile updated-charm-6.7.1/src/libs/ck-libs/ckloop/Makefile
+--- charm-6.7.1/src/libs/ck-libs/ckloop/Makefile 2016-11-07 20:14:28.000000000 +0530
++++ updated-charm-6.7.1/src/libs/ck-libs/ckloop/Makefile 2019-08-26 16:55:40.852903122 +0530
+@@ -38,7 +38,7 @@
+ for i in $(LIBOBJ) ; do \
+ SRCFILE=`basename $$i .o`.C ; \
+ echo "checking dependencies for $$i : $$SRCFILE" ; \
+- g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
++ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
+ echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
+ done;
+
+Only in updated-charm-6.7.1/src/libs/ck-libs/ckloop: Makefile.orig
+Only in updated-charm-6.7.1/src/libs/ck-libs/ckloop: Makefile.rej
+diff -bur charm-6.7.1/src/libs/ck-libs/completion/Makefile updated-charm-6.7.1/src/libs/ck-libs/completion/Makefile
+--- charm-6.7.1/src/libs/ck-libs/completion/Makefile 2016-11-07 20:14:28.000000000 +0530
++++ updated-charm-6.7.1/src/libs/ck-libs/completion/Makefile 2019-08-26 16:55:40.852903122 +0530
+@@ -45,7 +45,7 @@
+ for i in $(LIBOBJ) ; do \
+ SRCFILE=`basename $$i .o`.C ; \
+ echo "checking dependencies for $$i : $$SRCFILE" ; \
+- g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
++ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
+ echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
+ done;
+
+Only in updated-charm-6.7.1/src/libs/ck-libs/completion: Makefile.orig
+Only in updated-charm-6.7.1/src/libs/ck-libs/completion: Makefile.rej
+diff -bur charm-6.7.1/src/libs/ck-libs/multicast/Makefile updated-charm-6.7.1/src/libs/ck-libs/multicast/Makefile
+--- charm-6.7.1/src/libs/ck-libs/multicast/Makefile 2016-11-07 20:14:29.000000000 +0530
++++ updated-charm-6.7.1/src/libs/ck-libs/multicast/Makefile 2019-08-26 16:55:40.852903122 +0530
+@@ -53,7 +53,7 @@
+ for i in $(LIBOBJ) ; do \
+ SRCFILE=`basename $$i .o`.C ; \
+ echo "checking dependencies for $$i : $$SRCFILE" ; \
+- g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
++ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
+ echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
+ done;
+
+Only in updated-charm-6.7.1/src/libs/ck-libs/multicast: Makefile.orig
+Only in updated-charm-6.7.1/src/libs/ck-libs/multicast: Makefile.rej
+diff -bur charm-6.7.1/src/libs/ck-libs/NDMeshStreamer/Makefile updated-charm-6.7.1/src/libs/ck-libs/NDMeshStreamer/Makefile
+--- charm-6.7.1/src/libs/ck-libs/NDMeshStreamer/Makefile 2016-11-07 20:14:27.000000000 +0530
++++ updated-charm-6.7.1/src/libs/ck-libs/NDMeshStreamer/Makefile 2019-08-26 16:55:40.852903122 +0530
+@@ -52,7 +52,7 @@
+ for i in $(LIBOBJ) ; do \
+ SRCFILE=`basename $$i .o`.C ; \
+ echo "checking dependencies for $$i : $$SRCFILE" ; \
+- g++ -MM -Wno-deprecated -I$(CDIR)/tmp -I../completion $$SRCFILE >> $(DEPENDFILE); \
++ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp -I../completion $$SRCFILE >> $(DEPENDFILE); \
+ echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
+ done;
+
+Only in updated-charm-6.7.1/src/libs/ck-libs/NDMeshStreamer: Makefile.orig
+Only in updated-charm-6.7.1/src/libs/ck-libs/NDMeshStreamer: Makefile.rej
+diff -bur charm-6.7.1/src/QuickThreads/Makefile updated-charm-6.7.1/src/QuickThreads/Makefile
+--- charm-6.7.1/src/QuickThreads/Makefile 2016-11-07 20:14:25.000000000 +0530
++++ updated-charm-6.7.1/src/QuickThreads/Makefile 2019-08-26 16:55:40.856903165 +0530
+@@ -1,5 +1,5 @@
+
+-CC=gcc -I. -O2
++CC=clang -I. -O2
+
+ all: qt stp testpgm
+
+diff -bur charm-6.7.1/src/scripts/Makefile updated-charm-6.7.1/src/scripts/Makefile
+--- charm-6.7.1/src/scripts/Makefile 2016-11-07 20:14:29.000000000 +0530
++++ updated-charm-6.7.1/src/scripts/Makefile 2019-08-26 16:55:40.840902996 +0530
+@@ -942,7 +942,7 @@
+ SRCFILE=`basename $$i .o`.C ; \
+ [ ! -f $$SRCFILE ] && SRCFILE=`basename $$i .o`.c ; \
+ echo "checking dependencies for $$SRCFILE" ; \
+- if g++ -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
++ if clang++ -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
+ echo '' >> $(DEPENDFILE) ; \
+ done; \
+
+@@ -968,7 +968,7 @@
+ found=`/usr/bin/find $$SRCDIR -depth 1 -name $$SRCFILE`; \
+ [ ! $$found ] && SRCFILE=`basename $$i .o`.c ; \
+ echo "checking dependencies for $$SRCFILE" ; \
+- if g++ -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
++ if clang++ -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
+ echo '' >> $(DEPENDFILE) ; \
+ done; \
+
+diff -bur charm-6.7.1/tests/charm++/megatest/Makefile updated-charm-6.7.1/tests/charm++/megatest/Makefile
+--- charm-6.7.1/tests/charm++/megatest/Makefile 2016-11-07 20:14:30.000000000 +0530
++++ updated-charm-6.7.1/tests/charm++/megatest/Makefile 2019-08-26 16:55:40.820902785 +0530
+@@ -118,7 +118,7 @@
+ for i in $(OBJS) ; do \
+ SRCFILE=`basename $$i .o`.C ; \
+ echo "checking dependencies for $$SRCFILE" ; \
+- g++ -MM -I$(CHARMINC) $$SRCFILE | \
++ clang++ -MM -I$(CHARMINC) $$SRCFILE | \
+ perl $(CHARMBIN)/dep.pl $(CHARMINC) /usr/include /usr/local >> $(DEPENDFILE); \
+ echo ' $$(CHARMC) -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
+ done;
+--- charm-6.7.1/src/scripts/configure 2016-11-07 20:14:31.000000000 +0530
++++ updated-charm/charm-6.7.1/src/scripts/configure 2020-10-21 12:54:06.476958828 +0530
+@@ -2141,8 +2141,8 @@
+ $as_echo_n "checking \"$1\"... " >&6; }
+ echo "### $1" >> $charmout
+ cat $t >> $charmout
+- echo $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -c $t -o test.o $4 >> $charmout
+- $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -c $t -o test.o $4 > out 2>&1
++ echo $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -Qunused-arguments -c $t -o test.o $4 >> $charmout
++ $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -Qunused-arguments -c $t -o test.o $4 > out 2>&1
+ test_result $? "$1" "$2" "$3"
+ strictpass=$pass
+ strictfail=$fail
diff --git a/var/spack/repos/builtin/packages/charmpp/charm_6.8.2_aocc.patch b/var/spack/repos/builtin/packages/charmpp/charm_6.8.2_aocc.patch
new file mode 100644
index 0000000000..b1a736c2b6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/charmpp/charm_6.8.2_aocc.patch
@@ -0,0 +1,165 @@
+diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/cc-mpicxx.sh 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/cc-mpicxx.sh
+--- 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/cc-mpicxx.sh 2018-01-11 19:06:19.000000000 -0600
++++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/cc-mpicxx.sh 2019-11-12 06:02:23.005454343 -0600
+@@ -15,6 +15,7 @@
+ CMK_REAL_COMPILER=`$MPICXX -show 2>/dev/null | cut -d' ' -f1 `
+ case "$CMK_REAL_COMPILER" in
+ g++) CMK_AMD64="-m64 -fPIC" ;;
++clang++) CMK_AMD64="-m64 -fPIC" ;;
+ icpc) CMK_AMD64="-m64";;
+ pgCC) CMK_AMD64="-DCMK_FIND_FIRST_OF_PREDICATE=1 --no_using_std " ;;
+ FCC) CMK_AMD64="-Kfast -DCMK_FIND_FIRST_OF_PREDICATE=1 --variadic_macros";;
+diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh
+--- 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh 2018-01-11 19:06:19.000000000 -0600
++++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh 2019-11-12 06:05:22.666969636 -0600
+@@ -1,13 +1,14 @@
+
+ case "$CMK_CC" in
+ mpicc*)
+- CMK_CPP_C="gcc -E "
+- CMK_CC="gcc -fPIC"
+- CMK_CC_RELIABLE="gcc -fPIC"
+- CMK_CC_FASTEST="gcc -fPIC"
+- CMK_CXX="g++ -fPIC"
+- CMK_LD="gcc"
+- CMK_LDXX="g++"
++ CMK_CPP_C="clang -E "
++ CMK_CC="clang -fPIC"
++ CMK_CC_RELIABLE="clang -fPIC"
++ CMK_CC_FASTEST="clang -fPIC"
++ CMK_CXXPP="clang -E "
++ CMK_CXX="clang++ -fPIC"
++ CMK_LD="clang"
++ CMK_LDXX="clang++"
+
+ # native compiler for compiling charmxi, etc
+ CMK_NATIVE_CC="$CMK_CC"
+diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach.sh 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach.sh
+--- 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach.sh 2018-01-11 19:06:19.000000000 -0600
++++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach.sh 2019-11-12 06:07:41.361999246 -0600
+@@ -23,6 +23,7 @@
+
+ CMK_REAL_COMPILER=`$MPICXX -show 2>/dev/null | cut -d' ' -f1 `
+ case "$CMK_REAL_COMPILER" in
++clang++) CMK_AMD64_CC="$CMK_GCC64"; CMK_AMD64_CXX="$CMK_GCC64" ;;
+ g++) CMK_AMD64_CC="$CMK_GCC64"; CMK_AMD64_CXX="$CMK_GCC64" ;;
+ pgCC) CMK_AMD64_CC='-fPIC'; CMK_AMD64_CXX='-fPIC -DCMK_FIND_FIRST_OF_PREDICATE=1 --no_using_std ' ;;
+ charmc) echo "Error> charmc can not call AMPI's mpicxx/mpiCC wrapper! Please fix your PATH."; exit 1 ;;
+@@ -37,10 +38,10 @@
+ CMK_LIBS="-lckqt $CMK_SYSLIBS "
+ CMK_LD_LIBRARY_PATH="-Wl,-rpath,$CHARMLIBSO/"
+
+-CMK_NATIVE_CC="gcc $CMK_GCC64 "
+-CMK_NATIVE_LD="gcc $CMK_GCC64 "
+-CMK_NATIVE_CXX="g++ $CMK_GCC64 "
+-CMK_NATIVE_LDXX="g++ $CMK_GCC64 "
++CMK_NATIVE_CC="clang $CMK_GCC64 "
++CMK_NATIVE_LD="clang $CMK_GCC64 "
++CMK_NATIVE_CXX="clang++ $CMK_GCC64 "
++CMK_NATIVE_LDXX="clang++ $CMK_GCC64 "
+ CMK_NATIVE_LIBS=''
+
+ # fortran compiler
+diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/ckloop/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/ckloop/Makefile
+--- 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/ckloop/Makefile 2018-01-11 19:06:15.000000000 -0600
++++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/ckloop/Makefile 2019-11-12 06:09:16.200438412 -0600
+@@ -38,7 +38,7 @@
+ for i in $(LIBOBJ) ; do \
+ SRCFILE=`basename $$i .o`.C ; \
+ echo "checking dependencies for $$i : $$SRCFILE" ; \
+- g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
++ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
+ echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
+ done;
+
+diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/completion/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/completion/Makefile
+--- 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/completion/Makefile 2018-01-11 19:06:16.000000000 -0600
++++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/completion/Makefile 2019-11-12 06:09:41.247346697 -0600
+@@ -45,7 +45,7 @@
+ for i in $(LIBOBJ) ; do \
+ SRCFILE=`basename $$i .o`.C ; \
+ echo "checking dependencies for $$i : $$SRCFILE" ; \
+- g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
++ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
+ echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
+ done;
+
+diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/NDMeshStreamer/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/NDMeshStreamer/Makefile
+--- 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/NDMeshStreamer/Makefile 2018-01-11 19:06:15.000000000 -0600
++++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/NDMeshStreamer/Makefile 2019-11-12 06:09:59.079993368 -0600
+@@ -52,7 +52,7 @@
+ for i in $(LIBOBJ) ; do \
+ SRCFILE=`basename $$i .o`.C ; \
+ echo "checking dependencies for $$i : $$SRCFILE" ; \
+- g++ -MM -Wno-deprecated -I$(CDIR)/tmp -I../completion $$SRCFILE >> $(DEPENDFILE); \
++ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp -I../completion $$SRCFILE >> $(DEPENDFILE); \
+ echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
+ done;
+
+diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/QuickThreads/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/QuickThreads/Makefile
+--- 00/NAMD_2.13_Source/charm-6.8.2/src/QuickThreads/Makefile 2018-01-11 19:06:13.000000000 -0600
++++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/QuickThreads/Makefile 2019-11-12 06:10:37.744395459 -0600
+@@ -1,5 +1,5 @@
+
+-CC=gcc -I. -O2
++CC=clang -I. -O2
+
+ all: qt stp testpgm
+
+diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/scripts/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/scripts/Makefile
+--- 00/NAMD_2.13_Source/charm-6.8.2/src/scripts/Makefile 2018-01-11 19:06:20.000000000 -0600
++++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/scripts/Makefile 2019-11-12 06:10:59.888198461 -0600
+@@ -962,7 +962,7 @@
+ SRCFILE=`basename $$i .o`.C ; \
+ [ ! -f $$SRCFILE ] && SRCFILE=`basename $$i .o`.c ; \
+ echo "checking dependencies for $$SRCFILE" ; \
+- if g++ -std=c++0x -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
++ if clang++ -std=c++0x -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
+ echo '' >> $(DEPENDFILE) ; \
+ done; \
+
+@@ -988,7 +988,7 @@
+ found=`/usr/bin/find $$SRCDIR -depth 1 -name $$SRCFILE`; \
+ [ ! $$found ] && SRCFILE=`basename $$i .o`.c ; \
+ echo "checking dependencies for $$SRCFILE" ; \
+- if g++ -std=c++0x -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
++ if clang++ -std=c++0x -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
+ echo '' >> $(DEPENDFILE) ; \
+ done; \
+
+diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/tests/charm++/megatest/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/tests/charm++/megatest/Makefile
+--- 00/NAMD_2.13_Source/charm-6.8.2/tests/charm++/megatest/Makefile 2018-01-11 19:06:18.000000000 -0600
++++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/tests/charm++/megatest/Makefile 2019-11-12 06:11:38.193587531 -0600
+@@ -116,7 +116,7 @@
+ for i in $(OBJS) ; do \
+ SRCFILE=`basename $$i .o`.C ; \
+ echo "checking dependencies for $$SRCFILE" ; \
+- g++ -std=c++0x -MM -I$(CHARMINC) $$SRCFILE | \
++ clang++ -std=c++0x -MM -I$(CHARMINC) $$SRCFILE | \
+ perl $(CHARMBIN)/dep.pl $(CHARMINC) /usr/include /usr/local >> $(DEPENDFILE); \
+ echo ' $$(CHARMC) -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
+ done;
+--- 00/NAMD_2.13_Source/charm-6.8.2/src/scripts/configure 2018-01-12 06:36:21.000000000 +0530
++++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/scripts/configure 2020-10-21 15:01:20.240748316 +0530
+@@ -2183,8 +2183,8 @@
+ $as_echo_n "checking \"$1\"... " >&6; }
+ echo "### $1" >> $charmout
+ cat $tc >> $charmout
+- echo $CMK_CC -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CC $OPTS_LD -c $tc -o test.o $4 >> $charmout
+- $CMK_CC -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CC $OPTS_LD -c $tc -o test.o $4 > out 2>&1
++ echo $CMK_CC -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CC $OPTS_LD -Qunused-arguments -c $tc -o test.o $4 >> $charmout
++ $CMK_CC -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CC $OPTS_LD -Qunused-arguments -c $tc -o test.o $4 > out 2>&1
+ test_result $? "$1" "$2" "$3"
+ strictpass=$pass
+ strictfail=$fail
+@@ -2208,8 +2208,8 @@
+ $as_echo_n "checking \"$1\"... " >&6; }
+ echo "### $1" >> $charmout
+ cat $t >> $charmout
+- echo $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -c $t -o test.o $4 >> $charmout
+- $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -c $t -o test.o $4 > out 2>&1
++ echo $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -Qunused-arguments -c $t -o test.o $4 >> $charmout
++ $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -Qunused-arguments -c $t -o test.o $4 > out 2>&1
+ test_result $? "$1" "$2" "$3"
+ strictpass=$pass
+ strictfail=$fail
diff --git a/var/spack/repos/builtin/packages/charmpp/package.py b/var/spack/repos/builtin/packages/charmpp/package.py
index 9fbc8573ba..bee9cdb35c 100644
--- a/var/spack/repos/builtin/packages/charmpp/package.py
+++ b/var/spack/repos/builtin/packages/charmpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,6 +8,7 @@ import os
import platform
import shutil
import sys
+
from spack import *
@@ -17,11 +18,13 @@ class Charmpp(Package):
allows programs to run portably from small multicore computers
(your laptop) to the largest supercomputers."""
- homepage = "http://charmplusplus.org"
- url = "http://charm.cs.illinois.edu/distrib/charm-6.8.2.tar.gz"
+ homepage = "https://charmplusplus.org"
+ url = "https://charm.cs.illinois.edu/distrib/charm-6.8.2.tar.gz"
git = "https://github.com/UIUC-PPL/charm.git"
- version("develop", branch="master")
+ maintainers = ["matthiasdiener"]
+
+ version("main", branch="main")
version('6.10.2', sha256='7abb4cace8aebdfbb8006eac03eb766897c009cfb919da0d0a33f74c3b4e6deb')
version('6.10.1', sha256='ab96198105daabbb8c8bdf370f87b0523521ce502c656cb6cd5b89f69a2c70a8')
@@ -37,10 +40,14 @@ class Charmpp(Package):
version("6.5.1", sha256="68aa43e2a6e476e116a7e80e385c25c6ac6497807348025505ba8bfa256ed34a")
# Support OpenMPI; see
- # <https://charm.cs.illinois.edu/redmine/issues/1206>
+ # <https://github.com/UIUC-PPL/charm/issues/1206>
# Patch is no longer needed in versions 6.8.0+
patch("mpi.patch", when="@:6.7.1")
+ # Patch for AOCC
+ patch('charm_6.7.1_aocc.patch', when="@6.7.1 %aocc", level=1)
+ patch('charm_6.8.2_aocc.patch', when="@6.8.2 %aocc", level=3)
+
# support Fujitsu compiler
patch("fj.patch", when="%fj")
@@ -147,17 +154,12 @@ class Charmpp(Package):
("darwin", "x86_64", "mpi"): "mpi-darwin-x86_64",
("darwin", "x86_64", "multicore"): "multicore-darwin-x86_64",
("darwin", "x86_64", "netlrts"): "netlrts-darwin-x86_64",
- ("linux", "i386", "mpi"): "mpi-linux",
- ("linux", "i386", "multicore"): "multicore-linux",
- ("linux", "i386", "netlrts"): "netlrts-linux",
- ("linux", "i386", "uth"): "uth-linux",
("linux", "x86_64", "mpi"): "mpi-linux-x86_64",
("linux", "x86_64", "multicore"): "multicore-linux-x86_64",
("linux", "x86_64", "netlrts"): "netlrts-linux-x86_64",
("linux", "x86_64", "verbs"): "verbs-linux-x86_64",
("linux", "x86_64", "ofi"): "ofi-linux-x86_64",
("linux", "x86_64", "ucx"): "ucx-linux-x86_64",
- ("linux", "x86_64", "uth"): "uth-linux-x86_64",
("linux", "ppc", "mpi"): "mpi-linux-ppc",
("linux", "ppc", "multicore"): "multicore-linux-ppc",
("linux", "ppc", "netlrts"): "netlrts-linux-ppc",
@@ -173,6 +175,21 @@ class Charmpp(Package):
("cnl", "x86_64", "gni"): "gni-crayxc",
("cnl", "x86_64", "mpi"): "mpi-crayxc",
}
+
+ # Some versions were renamed/removed in 6.11
+ if self.spec.version < Version("6.11.0"):
+ versions.update({("linux", "i386", "mpi"): "mpi-linux"})
+ versions.update({("linux", "i386", "multicore"):
+ "multicore-linux"})
+ versions.update({("linux", "i386", "netlrts"): "netlrts-linux"})
+ versions.update({("linux", "i386", "uth"): "uth-linux"})
+ else:
+ versions.update({("linux", "i386", "mpi"): "mpi-linux-i386"})
+ versions.update({("linux", "i386", "multicore"):
+ "multicore-linux-i386"})
+ versions.update({("linux", "i386", "netlrts"):
+ "netlrts-linux-i386"})
+
if (plat, mach, comm) not in versions:
raise InstallError(
"The communication mechanism %s is not supported "
@@ -224,12 +241,15 @@ class Charmpp(Package):
# not, then we need to query the compiler vendor from Spack
# here.
options = [
- os.path.basename(self.compiler.cc),
- os.path.basename(self.compiler.fc),
- "-j%d" % make_jobs,
- "--destination=%s" % builddir,
+ os.path.basename(self.compiler.cc)
]
+ if '@:6.8.2 %aocc' not in spec:
+ options.append(os.path.basename(self.compiler.fc))
+
+ options.append("-j%d" % make_jobs)
+ options.append("--destination=%s" % builddir)
+
if "pmi=slurmpmi" in spec:
options.append("slurmpmi")
if "pmi=slurmpmi2" in spec:
@@ -301,7 +321,10 @@ class Charmpp(Package):
os.rename(tmppath, filepath)
except (IOError, OSError):
pass
- shutil.rmtree(join_path(builddir, "tmp"))
+
+ tmp_path = join_path(builddir, "tmp")
+ if not os.path.islink(tmp_path):
+ shutil.rmtree(tmp_path)
if self.spec.satisfies('@6.9.99'):
# A broken 'doc' link in the prefix can break the build.
@@ -315,8 +338,8 @@ class Charmpp(Package):
@run_after('install')
@on_package_attributes(run_tests=True)
def check_build(self):
- make('-C', join_path(self.stage.source_path, 'charm/tests'),
- 'test', parallel=False)
+ make('-C', join_path(self.stage.source_path, 'tests'),
+ 'test', 'TESTOPTS=++local', parallel=False)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('MPICC', self.prefix.bin.ampicc)
diff --git a/var/spack/repos/builtin/packages/chatterbug/package.py b/var/spack/repos/builtin/packages/chatterbug/package.py
index 7bee6bd4cb..0ecedcadcc 100644
--- a/var/spack/repos/builtin/packages/chatterbug/package.py
+++ b/var/spack/repos/builtin/packages/chatterbug/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/check/package.py b/var/spack/repos/builtin/packages/check/package.py
index 93121f2cd3..04f3738b5e 100644
--- a/var/spack/repos/builtin/packages/check/package.py
+++ b/var/spack/repos/builtin/packages/check/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/chgcentre/package.py b/var/spack/repos/builtin/packages/chgcentre/package.py
index 7d93b296a0..48e0eac6cb 100644
--- a/var/spack/repos/builtin/packages/chgcentre/package.py
+++ b/var/spack/repos/builtin/packages/chgcentre/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/chill/package.py b/var/spack/repos/builtin/packages/chill/package.py
index 1358453b09..576ea36fc2 100644
--- a/var/spack/repos/builtin/packages/chill/package.py
+++ b/var/spack/repos/builtin/packages/chill/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Chill(AutotoolsPackage):
"""A polyheadral compiler for autotuning"""
- homepage = "http://github.com/CtopCsUtahEdu/chill"
+ homepage = "https://github.com/CtopCsUtahEdu/chill"
url = "https://github.com/CtopCsUtahEdu/chill/archive/v0.3.tar.gz"
git = "https://github.com/CtopCsUtahEdu/chill.git"
diff --git a/var/spack/repos/builtin/packages/chlorop/package.py b/var/spack/repos/builtin/packages/chlorop/package.py
index a7bcb696f1..38cab55779 100644
--- a/var/spack/repos/builtin/packages/chlorop/package.py
+++ b/var/spack/repos/builtin/packages/chlorop/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Chlorop(Package):
"""Chlorop predicts the presence of chloroplast transit peptides
@@ -17,8 +18,9 @@ class Chlorop(Package):
to the full path of the directory you want chlorop to use as
a temporary directory."""
- homepage = "http://www.cbs.dtu.dk/services/ChloroP/"
+ homepage = "https://www.cbs.dtu.dk/services/ChloroP/"
url = "file://{0}/chlorop-1.1.Linux.tar.gz".format(os.getcwd())
+ manual_download = True
version('1.1', 'eb0ba6b28dfa735163ad5fc70e30139e46e33f6ae27f87666a7167a4ac5f71d9')
diff --git a/var/spack/repos/builtin/packages/chombo/package.py b/var/spack/repos/builtin/packages/chombo/package.py
index 3b05e34a75..ff7e908cfb 100644
--- a/var/spack/repos/builtin/packages/chombo/package.py
+++ b/var/spack/repos/builtin/packages/chombo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Chombo(MakefilePackage):
logically rectangular (i.e. Cartesian) grids."""
homepage = "https://commons.lbl.gov/display/chombo"
- git = "http://bitbucket.org/drhansj/chombo-xsdk.git"
+ git = "https://bitbucket.org/drhansj/chombo-xsdk.git"
tags = ['ecp', 'ecp-apps']
diff --git a/var/spack/repos/builtin/packages/chrony/package.py b/var/spack/repos/builtin/packages/chrony/package.py
index f723fcc14a..ce87f569e3 100644
--- a/var/spack/repos/builtin/packages/chrony/package.py
+++ b/var/spack/repos/builtin/packages/chrony/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,6 +21,7 @@ class Chrony(AutotoolsPackage):
version('3.3', sha256='0dd7323b5ed9e3208236c1b39fcabf2ad03469fa07ac516ba9c682206133f66d')
depends_on('ruby-asciidoctor')
+ depends_on('bison', type='build')
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix.sbin)
diff --git a/var/spack/repos/builtin/packages/chrpath/package.py b/var/spack/repos/builtin/packages/chrpath/package.py
index 0cfbc2a7fc..10b62060c1 100644
--- a/var/spack/repos/builtin/packages/chrpath/package.py
+++ b/var/spack/repos/builtin/packages/chrpath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cinch/package.py b/var/spack/repos/builtin/packages/cinch/package.py
index f46a801cd4..a5a0b6a6c3 100644
--- a/var/spack/repos/builtin/packages/cinch/package.py
+++ b/var/spack/repos/builtin/packages/cinch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/circos/package.py b/var/spack/repos/builtin/packages/circos/package.py
index 9a4cb997d1..cd1be94f55 100644
--- a/var/spack/repos/builtin/packages/circos/package.py
+++ b/var/spack/repos/builtin/packages/circos/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 symlink
+from spack import *
+
class Circos(Package):
"""Circos is a software package for visualizing data and information."""
diff --git a/var/spack/repos/builtin/packages/cistem/package.py b/var/spack/repos/builtin/packages/cistem/package.py
index b12d35934f..991714302a 100644
--- a/var/spack/repos/builtin/packages/cistem/package.py
+++ b/var/spack/repos/builtin/packages/cistem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/citcoms/package.py b/var/spack/repos/builtin/packages/citcoms/package.py
index 35fe86b2b4..d0625a5235 100644
--- a/var/spack/repos/builtin/packages/citcoms/package.py
+++ b/var/spack/repos/builtin/packages/citcoms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cityhash/package.py b/var/spack/repos/builtin/packages/cityhash/package.py
index ebe96e58e2..3ad3c96cd2 100644
--- a/var/spack/repos/builtin/packages/cityhash/package.py
+++ b/var/spack/repos/builtin/packages/cityhash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ck/package.py b/var/spack/repos/builtin/packages/ck/package.py
index 9752aa1ebd..6a326d2a4a 100644
--- a/var/spack/repos/builtin/packages/ck/package.py
+++ b/var/spack/repos/builtin/packages/ck/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/clamav/package.py b/var/spack/repos/builtin/packages/clamav/package.py
index cb67e39c1b..8fc5e776f5 100644
--- a/var/spack/repos/builtin/packages/clamav/package.py
+++ b/var/spack/repos/builtin/packages/clamav/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/clamr/package.py b/var/spack/repos/builtin/packages/clamr/package.py
index ea72bbb1e2..4c09e7c4e8 100644
--- a/var/spack/repos/builtin/packages/clamr/package.py
+++ b/var/spack/repos/builtin/packages/clamr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -27,7 +27,7 @@ class Clamr(CMakePackage):
values=('single', 'mixed', 'full'),
description='single, mixed, or full double precision values')
- depends_on('cmake@3.1:')
+ depends_on('cmake@3.1:', type='build')
depends_on('mpi')
depends_on('mpe', when='graphics=mpe')
diff --git a/var/spack/repos/builtin/packages/clapack/package.py b/var/spack/repos/builtin/packages/clapack/package.py
index 6796bf97ff..9bd6d6b225 100644
--- a/var/spack/repos/builtin/packages/clapack/package.py
+++ b/var/spack/repos/builtin/packages/clapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,8 +15,8 @@ class Clapack(MakefilePackage):
is to provide LAPACK for someone who does not have access to a Fortran
compiler."""
- homepage = "http://www.netlib.org/clapack/"
- url = "http://www.netlib.org/clapack/clapack.tgz"
+ homepage = "https://www.netlib.org/clapack/"
+ url = "https://www.netlib.org/clapack/clapack.tgz"
version('3.2.1', sha256='6dc4c382164beec8aaed8fd2acc36ad24232c406eda6db462bd4c41d5e455fac')
diff --git a/var/spack/repos/builtin/packages/clara/package.py b/var/spack/repos/builtin/packages/clara/package.py
index f60b885a7b..9aa79edef7 100644
--- a/var/spack/repos/builtin/packages/clara/package.py
+++ b/var/spack/repos/builtin/packages/clara/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/claw/package.py b/var/spack/repos/builtin/packages/claw/package.py
index 19b574f530..0876f1ffe8 100644
--- a/var/spack/repos/builtin/packages/claw/package.py
+++ b/var/spack/repos/builtin/packages/claw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,17 +13,17 @@ class Claw(CMakePackage):
homepage = 'https://claw-project.github.io/'
git = 'https://github.com/claw-project/claw-compiler.git'
- maintainers = ['clementval']
-
- version('master', branch='master', submodules=True)
- version('2.0.2', commit='8c012d58484d8caf79a4fe45597dc74b4367421c', submodules=True)
- version('2.0.1', commit='f5acc929df74ce66a328aa4eda9cc9664f699b91', submodules=True)
- version('2.0', commit='53e705b8bfce40a5c5636e8194a7622e337cf4f5', submodules=True)
- version('1.2.3', commit='eaf5e5fb39150090e51bec1763170ce5c5355198', submodules=True)
- version('1.2.2', commit='fc27a267eef9f412dd6353dc0b358a05b3fb3e16', submodules=True)
- version('1.2.1', commit='939989ab52edb5c292476e729608725654d0a59a', submodules=True)
- version('1.2.0', commit='fc9c50fe02be97b910ff9c7015064f89be88a3a2', submodules=True)
- version('1.1.0', commit='16b165a443b11b025a77cad830b1280b8c9bcf01', submodules=True)
+ maintainers = ['clementval', 'skosukhin']
+
+ version('2.0.3', tag='v2.0.3', submodules=True)
+ version('2.0.2', tag='v2.0.2', submodules=True)
+ version('2.0.1', tag='v2.0.1', submodules=True)
+ version('2.0', tag='v2.0', submodules=True)
+ version('1.2.3', tag='v1.2.3', submodules=True)
+ version('1.2.2', tag='v1.2.2', submodules=True)
+ version('1.2.1', tag='v1.2.1', submodules=True)
+ version('1.2.0', tag='v1.2.0', submodules=True)
+ version('1.1.0', tag='v1.1.0', submodules=True)
depends_on('cmake@3.0:', type='build')
depends_on('ant@1.9:', type='build')
@@ -34,10 +34,18 @@ class Claw(CMakePackage):
depends_on('java@7:', when="@1.1.0:1.2.3")
depends_on('libxml2')
+ # Enable parsing of source files with calls to TRACEBACKQQ from the Intel
+ # Fortran run-time library:
patch('https://github.com/claw-project/claw-compiler/commit/e9fe6dbd291454ce34dd58f21d102f7f1bdff874.patch',
- sha256='44a3e17bf6e972db9760fc50bc0948309ee441dab1cdb11816ba675de0138549',
+ sha256='82033a576966143f3b1fd66f4d5b5604704b615b3e08afa4901fc1c29caefbe2',
when='@:2.0.2%intel')
+ # Fix the dependency preprocessing for compilers that cannot use
+ # redirection > to save file (cce is currently the only known case):
+ patch('https://github.com/claw-project/claw-compiler/commit/4d8bc7a794af3651b8b61501388fc00096b23a85.patch',
+ sha256='0a55110c67d7755741e1c86c2f71341286e7502a81ac29958ce80273e87bc8e1',
+ when='@2.0.2%cce')
+
# Cache ANT dependencies in the stage directory.
# Otherwise, they are cached to the user's home directory.
patch('ivy_local_cache.patch')
@@ -47,6 +55,18 @@ class Claw(CMakePackage):
filter_compiler_wrappers('claw_f.conf', relative_root='etc')
+ def flag_handler(self, name, flags):
+ if name == 'cflags':
+ comp_spec = self.spec.compiler
+ # https://gcc.gnu.org/gcc-10/porting_to.html
+ # https://releases.llvm.org/11.0.0/tools/clang/docs/ReleaseNotes.html#modified-compiler-flags
+ # TODO: take care of other Clang-based compilers when they become
+ # real cases
+ if comp_spec.satisfies('gcc@10:') or comp_spec.satisfies('cce@11:'):
+ flags.append('-fcommon')
+
+ return flags, None, None
+
def cmake_args(self):
args = [
'-DOMNI_CONF_OPTION=--with-libxml2=%s' %
diff --git a/var/spack/repos/builtin/packages/cleaveland4/package.py b/var/spack/repos/builtin/packages/cleaveland4/package.py
index d9d845bfdc..eb01d19957 100644
--- a/var/spack/repos/builtin/packages/cleaveland4/package.py
+++ b/var/spack/repos/builtin/packages/cleaveland4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cleverleaf/package.py b/var/spack/repos/builtin/packages/cleverleaf/package.py
index 2b8163f5a6..fcd557dd82 100644
--- a/var/spack/repos/builtin/packages/cleverleaf/package.py
+++ b/var/spack/repos/builtin/packages/cleverleaf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Cleverleaf(CMakePackage):
hydrodynamics scheme used by CloverLeaf.
"""
- homepage = "http://uk-mac.github.io/CleverLeaf/"
+ homepage = "https://uk-mac.github.io/CleverLeaf/"
git = "https://github.com/UK-MAC/CleverLeaf_ref.git"
version('develop', branch='develop')
diff --git a/var/spack/repos/builtin/packages/clfft/package.py b/var/spack/repos/builtin/packages/clfft/package.py
index c87d298969..53c10bcb3e 100644
--- a/var/spack/repos/builtin/packages/clfft/package.py
+++ b/var/spack/repos/builtin/packages/clfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,12 +26,8 @@ class Clfft(CMakePackage):
root_cmakelists_dir = 'src'
def cmake_args(self):
- spec = self.spec
-
args = [
- '-DBUILD_CLIENT:BOOL={0}'.format((
- 'ON' if '+client' in spec else 'OFF')),
- '-DBUILD_CALLBACK_CLIENT:BOOL={0}'.format((
- 'ON' if '+client' in spec else 'OFF'))
+ self.define_from_variant('BUILD_CLIENT', 'client'),
+ self.define_from_variant('BUILD_CALLBACK_CLIENT', 'client')
]
return args
diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py
index 4fca7f7efb..65b04a35c7 100644
--- a/var/spack/repos/builtin/packages/clhep/package.py
+++ b/var/spack/repos/builtin/packages/clhep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,16 @@ from spack import *
class Clhep(CMakePackage):
"""CLHEP is a C++ Class Library for High Energy Physics. """
- homepage = "http://proj-clhep.web.cern.ch/proj-clhep/"
- url = "http://proj-clhep.web.cern.ch/proj-clhep/dist1/clhep-2.4.1.3.tgz"
+ homepage = "https://proj-clhep.web.cern.ch/proj-clhep/"
+ url = "https://proj-clhep.web.cern.ch/proj-clhep/dist1/clhep-2.4.1.3.tgz"
list_url = "https://proj-clhep.web.cern.ch/proj-clhep/"
list_depth = 1
+ tags = ['hep']
+
maintainers = ['drbenmorgan']
+ version('2.4.4.0', sha256='5df78c11733a091da9ae5a24ce31161d44034dd45f20455587db85f1ca1ba539')
version('2.4.1.3', sha256='27c257934929f4cb1643aa60aeaad6519025d8f0a1c199bc3137ad7368245913')
version('2.4.1.2', sha256='ff96e7282254164380460bc8cf2dff2b58944084eadcd872b5661eb5a33fa4b8')
version('2.4.1.0', sha256='d14736eb5c3d21f86ce831dc1afcf03d423825b35c84deb6f8fd16773528c54d')
diff --git a/var/spack/repos/builtin/packages/cli11/package.py b/var/spack/repos/builtin/packages/cli11/package.py
new file mode 100644
index 0000000000..74b0b979f3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cli11/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 Cli11(CMakePackage):
+ """CLI11 is a command line parser for C++11 and beyond that provides a rich
+ feature set with a simple and intuitive interface."""
+
+ homepage = "https://cliutils.github.io/CLI11/book/"
+ url = "https://github.com/CLIUtils/CLI11/archive/v1.9.1.tar.gz"
+ maintainers = ['nightlark']
+
+ version('1.9.1', sha256='c780cf8cf3ba5ec2648a7eeb20a47e274493258f38a9b417628e0576f473a50b')
+
+ depends_on('cmake@3.4:', type='build')
+
+ def cmake_args(self):
+ args = [
+ '-DCLI11_BUILD_DOCS=OFF',
+ '-DCLI11_BUILD_TESTS=OFF',
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/clinfo/package.py b/var/spack/repos/builtin/packages/clinfo/package.py
index 1fb78b42aa..9d6f4f26b8 100644
--- a/var/spack/repos/builtin/packages/clinfo/package.py
+++ b/var/spack/repos/builtin/packages/clinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/clingo-bootstrap/package.py b/var/spack/repos/builtin/packages/clingo-bootstrap/package.py
index aeef40c4e1..fcb96fa1d8 100644
--- a/var/spack/repos/builtin/packages/clingo-bootstrap/package.py
+++ b/var/spack/repos/builtin/packages/clingo-bootstrap/package.py
@@ -1,10 +1,9 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.pkg.builtin.clingo import Clingo
-
import spack.compilers
+from spack.pkg.builtin.clingo import Clingo
class ClingoBootstrap(Clingo):
diff --git a/var/spack/repos/builtin/packages/clingo/package.py b/var/spack/repos/builtin/packages/clingo/package.py
index 84f3c37c27..aa9772109b 100644
--- a/var/spack/repos/builtin/packages/clingo/package.py
+++ b/var/spack/repos/builtin/packages/clingo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,9 +23,11 @@ class Clingo(CMakePackage):
maintainers = ["tgamblin", "alalazo"]
- version('master', branch='master', submodules=True, preferred=True)
+ version('master', branch='master', submodules=True)
version('spack', commit='2a025667090d71b2c9dce60fe924feb6bde8f667', submodules=True)
+ version('5.5.0', sha256='c9d7004a0caec61b636ad1c1960fbf339ef8fdee9719321fc1b6b210613a8499')
+ version('5.4.1', sha256='ac6606388abfe2482167ce8fd4eb0737ef6abeeb35a9d3ac3016c6f715bfee02')
version('5.4.0', sha256='e2de331ee0a6d254193aab5995338a621372517adcf91568092be8ac511c18f3')
version('5.3.0', sha256='b0d406d2809352caef7fccf69e8864d55e81ee84f4888b0744894977f703f976')
version('5.2.2', sha256='da1ef8142e75c5a6f23c9403b90d4f40b9f862969ba71e2aaee9a257d058bfcf')
@@ -40,6 +42,13 @@ class Clingo(CMakePackage):
depends_on('python', type=("build", "link", "run"), when="+python")
extends('python', when='+python')
+ # Clingo 5.5.0 supports Python 3.6 or later and needs CFFI
+ depends_on(
+ 'python@3.6.0:',
+ type=('build', 'link', 'run'), when='@5.5.0: +python'
+ )
+ depends_on('py-cffi', type=('build', 'run'), when='@5.5.0: +python')
+
patch('python38.patch', when="@5.3:5.4")
def patch(self):
@@ -57,7 +66,8 @@ class Clingo(CMakePackage):
current spec is the one found by CMake find_package(Python, ...)
"""
python_spec = self.spec['python']
- include_dir = python_spec.package.get_python_inc()
+ include_dir = join_path(
+ python_spec.prefix, python_spec.package.config_vars['python_inc']['false'])
return [
self.define('Python_EXECUTABLE', str(python_spec.command)),
self.define('Python_INCLUDE_DIR', include_dir)
diff --git a/var/spack/repos/builtin/packages/cln/package.py b/var/spack/repos/builtin/packages/cln/package.py
index 4d1e731080..33abbbdbfc 100644
--- a/var/spack/repos/builtin/packages/cln/package.py
+++ b/var/spack/repos/builtin/packages/cln/package.py
@@ -1,13 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Cln(AutotoolsPackage):
"""CLN is a library for efficient computations with all kinds of numbers
@@ -38,6 +38,7 @@ class Cln(AutotoolsPackage):
depends_on('libtool', type='build')
depends_on('m4', type='build')
depends_on('gmp@4.1:', when='+gmp')
+ depends_on('texinfo', type='build')
# Dependencies required to define macro AC_LIB_LINKFLAGS_FROM_LIBS
depends_on('gettext', type='build')
diff --git a/var/spack/repos/builtin/packages/cloc/package.py b/var/spack/repos/builtin/packages/cloc/package.py
index d5e8feeffe..4020ed0bf0 100644
--- a/var/spack/repos/builtin/packages/cloc/package.py
+++ b/var/spack/repos/builtin/packages/cloc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,9 @@ class Cloc(Package):
given files (may be archives such as compressed tarballs or zip files)
and/or recursively below the given directories."""
homepage = "https://github.com/AlDanial/cloc/"
- url = "https://github.com/AlDanial/cloc/releases/download/1.74/cloc-1.74.tar.gz"
+ url = "https://github.com/AlDanial/cloc/archive/v1.90.tar.gz"
+ version('1.90', sha256='60b429dd2aa5cd65707b359dcbcbeb710c8e4db880886528ced0962c67e52548')
version('1.84', sha256='c3f0a6bd2319110418ccb3e55a7a1b6d0edfd7528bfd2ae5d530938abe90f254')
version('1.80', sha256='082f53530eee3f9ee84ec449eca59a77ff114250cd7daf9519679537b5b21d67')
version('1.74', sha256='55ac423d5766c74236700a47838ed66bea47ba42e1d594fdd894074ba3eb0567')
diff --git a/var/spack/repos/builtin/packages/cloog/package.py b/var/spack/repos/builtin/packages/cloog/package.py
index cc62b11e27..3ffea92acd 100644
--- a/var/spack/repos/builtin/packages/cloog/package.py
+++ b/var/spack/repos/builtin/packages/cloog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cloverleaf/package.py b/var/spack/repos/builtin/packages/cloverleaf/package.py
index eba94f4649..6b5d3fd042 100644
--- a/var/spack/repos/builtin/packages/cloverleaf/package.py
+++ b/var/spack/repos/builtin/packages/cloverleaf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,16 +10,20 @@ class Cloverleaf(MakefilePackage):
using an explicit, second-order accurate method.
"""
- homepage = "http://uk-mac.github.io/CloverLeaf"
- url = "http://downloads.mantevo.org/releaseTarballs/miniapps/CloverLeaf/CloverLeaf-1.1.tar.gz"
+ homepage = "https://uk-mac.github.io/CloverLeaf"
+ url = "https://downloads.mantevo.org/releaseTarballs/miniapps/CloverLeaf/CloverLeaf-1.1.tar.gz"
+ git = "https://github.com/UK-MAC/CloverLeaf.git"
tags = ['proxy-app']
+ version('master', tag='master', submodules=True)
version('1.1', sha256='de87f7ee6b917e6b3d243ccbbe620370c62df890e3ef7bdbab46569b57be132f')
variant('build', default='ref', description='Type of Parallelism Build',
values=('cuda', 'mpi_only', 'openacc_cray',
'openmp_only', 'ref', 'serial'))
+ variant('ieee', default=False, description='Build with IEEE standards')
+ variant('debug', default=False, description='Build with DEBUG flags')
depends_on('mpi', when='build=cuda')
depends_on('mpi', when='build=mpi_only')
@@ -27,6 +31,11 @@ class Cloverleaf(MakefilePackage):
depends_on('mpi', when='build=ref')
depends_on('cuda', when='build=cuda')
+ conflicts('build=cuda', when='%aocc', msg="Currently AOCC supports only ref variant")
+ conflicts('build=openacc_cray', when='%aocc', msg="Currently AOCC supports only ref variant")
+ conflicts('build=serial', when='%aocc', msg="Currently AOCC supports only ref variant")
+ conflicts('@1.1', when='%aocc', msg="AOCC support is provided from version v.1.3 and above")
+
@property
def type_of_build(self):
build = 'ref'
@@ -67,6 +76,8 @@ class Cloverleaf(MakefilePackage):
targets.append('COMPILER=INTEL')
targets.append('FLAGS_INTEL=')
targets.append('CFLAGS_INTEL=')
+ elif '%aocc' in self.spec:
+ targets.append('COMPILER=AOCC')
elif '%pgi' in self.spec:
targets.append('COMPILER=PGI')
targets.append('FLAGS_PGI=')
@@ -76,6 +87,14 @@ class Cloverleaf(MakefilePackage):
targets.append('FLAGS_XLF=')
targets.append('CFLAGS_XLF=')
+ # Explicit mention of else clause is not working as expected
+ # So, not mentioning them
+ if '+debug' in self.spec:
+ targets.append('DEBUG=1')
+
+ if '+ieee' in self.spec:
+ targets.append('IEEE=1')
+
return targets
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/cloverleaf3d/package.py b/var/spack/repos/builtin/packages/cloverleaf3d/package.py
index 77e34f2a63..86aadd8955 100644
--- a/var/spack/repos/builtin/packages/cloverleaf3d/package.py
+++ b/var/spack/repos/builtin/packages/cloverleaf3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,59 +6,78 @@
class Cloverleaf3d(MakefilePackage):
"""Proxy Application. CloverLeaf3D is 3D version of the
- CloverLeaf mini-app. CloverLeaf is a mini-app that solves
- the compressible Euler equations on a Cartesian grid,
- using an explicit, second-order accurate method.
+ CloverLeaf mini-app. CloverLeaf is a mini-app that solves
+ the compressible Euler equations on a Cartesian grid,
+ using an explicit, second-order accurate method.
"""
- homepage = "http://uk-mac.github.io/CloverLeaf3D/"
- url = "http://downloads.mantevo.org/releaseTarballs/miniapps/CloverLeaf3D/CloverLeaf3D-1.0.tar.gz"
+ homepage = "https://uk-mac.github.io/CloverLeaf3D/"
+ url = "https://downloads.mantevo.org/releaseTarballs/miniapps/CloverLeaf3D/CloverLeaf3D-1.0.tar.gz"
- tags = ['proxy-app']
+ tags = ["proxy-app"]
- version('1.0', sha256='78d591728c61bdfd6175b3930df7652e09ed04fbcd01b3fc86fb2aa0f237a8ef')
+ maintainers = ["s1913388"]
- variant('openacc', default=False, description='Enable OpenACC Support')
+ version(
+ "1.0", sha256="78d591728c61bdfd6175b3930df7652e09ed04fbcd01b3fc86fb2aa0f237a8ef"
+ )
- depends_on('mpi')
+ variant("opencl", default=False, description="Enable OpenCL Support")
+
+ variant("openacc", default=False, description="Enable OpenACC Support")
+
+ depends_on("mpi")
@property
def type_of_build(self):
- build = 'ref'
+ build = "ref"
- if '+openacc' in self.spec:
- build = 'OpenACC'
+ if "+opencl" in self.spec:
+ build = "OpenCL"
+ elif "+openacc" in self.spec:
+ build = "OpenACC"
return build
@property
def build_targets(self):
targets = [
- 'MPI_COMPILER={0}'.format(self.spec['mpi'].mpifc),
- 'C_MPI_COMPILER={0}'.format(self.spec['mpi'].mpicc),
- '--directory=CloverLeaf3D_{0}'.format(self.type_of_build)
+ "MPI_COMPILER={0}".format(self.spec["mpi"].mpifc),
+ "C_MPI_COMPILER={0}".format(self.spec["mpi"].mpicc),
+ "--directory=CloverLeaf3D_{0}".format(self.type_of_build),
]
- if '%gcc' in self.spec:
- targets.append('COMPILER=GNU')
- targets.append('FLAGS_GNU=')
- targets.append('CFLAGS_GNU=')
- elif '%cce' in self.spec:
- targets.append('COMPILER=CRAY')
- targets.append('FLAGS_CRAY=')
- targets.append('CFLAGS_CRAY=')
- elif '%intel' in self.spec:
- targets.append('COMPILER=INTEL')
- targets.append('FLAGS_INTEL=')
- targets.append('CFLAGS_INTEL=')
- elif '%pgi' in self.spec:
- targets.append('COMPILER=PGI')
- targets.append('FLAGS_PGI=')
- targets.append('CFLAGS_PGI=')
- elif '%xl' in self.spec:
- targets.append('COMPILER=XLF')
- targets.append('FLAGS_XLF=')
- targets.append('CFLAGS_XLF=')
+ if "%gcc" in self.spec:
+ targets.append("COMPILER=GNU")
+ targets.append("FLAGS_GNU=-O3 -funroll-loops")
+ targets.append("CFLAGS_GNU=-O3 -funroll-loops")
+ targets.append("OMP_GNU=-fopenmp")
+ elif "%cce" in self.spec:
+ targets.append("COMPILER=CRAY")
+ targets.append("FLAGS_CRAY=")
+ targets.append("CFLAGS_CRAY=")
+ elif "%intel" in self.spec:
+ targets.append("COMPILER=INTEL")
+ targets.append("FLAGS_INTEL=")
+ targets.append("CFLAGS_INTEL=")
+ elif "%pgi" in self.spec:
+ targets.append("COMPILER=PGI")
+ targets.append("FLAGS_PGI=")
+ targets.append("CFLAGS_PGI=")
+ elif "%xl" in self.spec:
+ targets.append("COMPILER=XLF")
+ targets.append("FLAGS_XLF=")
+ targets.append("CFLAGS_XLF=")
+ elif "%arm" in self.spec:
+ targets.append("COMPILER=ARM")
+ targets.append("FLAGS_ARM=-O3 -funroll-loops")
+ targets.append("CFLAGS_ARM=-O3 -funroll-loops")
+ targets.append("OMP_ARM=-fopenmp")
+ elif "%nvhpc" in self.spec:
+ targets.append("COMPILER=NVHPC")
+ targets.append("FLAGS_NVHPC=-O3 -fast")
+ targets.append("CFLAGS_NVHPC=-O3 -fast")
+ targets.append("OMP_NVHPC=-mp=multicore")
return targets
@@ -67,11 +86,8 @@ class Cloverleaf3d(MakefilePackage):
mkdirp(prefix.bin)
mkdirp(prefix.doc.samples)
- install('README.md', prefix.doc)
+ install("README.md", prefix.doc)
- install('CloverLeaf3D_{0}/clover_leaf'.format(self.type_of_build),
- prefix.bin)
- install('CloverLeaf3D_{0}/clover.in'.format(self.type_of_build),
- prefix.bin)
- install('CloverLeaf3D_{0}/*.in'.format(self.type_of_build),
- prefix.doc.samples)
+ install("CloverLeaf3D_{0}/clover_leaf".format(self.type_of_build), prefix.bin)
+ install("CloverLeaf3D_{0}/clover.in".format(self.type_of_build), prefix.bin)
+ install("CloverLeaf3D_{0}/*.in".format(self.type_of_build), prefix.doc.samples)
diff --git a/var/spack/repos/builtin/packages/clp/package.py b/var/spack/repos/builtin/packages/clp/package.py
index 90ff785016..667ec68f8c 100644
--- a/var/spack/repos/builtin/packages/clp/package.py
+++ b/var/spack/repos/builtin/packages/clp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/clustal-omega/package.py b/var/spack/repos/builtin/packages/clustal-omega/package.py
index d966eb65d2..ab7161365b 100644
--- a/var/spack/repos/builtin/packages/clustal-omega/package.py
+++ b/var/spack/repos/builtin/packages/clustal-omega/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/clustalw/package.py b/var/spack/repos/builtin/packages/clustalw/package.py
index 42aca319d4..20a926090c 100644
--- a/var/spack/repos/builtin/packages/clustalw/package.py
+++ b/var/spack/repos/builtin/packages/clustalw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cmake/5882-enable-cce-fortran-preprocessing.patch b/var/spack/repos/builtin/packages/cmake/5882-enable-cce-fortran-preprocessing.patch
new file mode 100644
index 0000000000..5e01a0079d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cmake/5882-enable-cce-fortran-preprocessing.patch
@@ -0,0 +1,31 @@
+From ef513fe3d1d864d865d7143699834228988a7cd7 Mon Sep 17 00:00:00 2001
+From: Brad King <brad.king@kitware.com>
+Date: Fri, 5 Mar 2021 08:08:16 -0500
+Subject: [PATCH] Cray: Enable explicit Fortran preprocessing for Ninja
+ generator
+
+Cray 11.0 adds support for preprocessing with output written to a
+specified file (instead of always next to the source). Use it to
+enable Cray Fortran with the Ninja generator.
+
+Patch-by: James Elliott
+Fixes: #20731
+---
+ Modules/Compiler/Cray-Fortran.cmake | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/Modules/Compiler/Cray-Fortran.cmake b/Modules/Compiler/Cray-Fortran.cmake
+index 696ae76074..0d5e1c7679 100644
+--- a/Modules/Compiler/Cray-Fortran.cmake
++++ b/Modules/Compiler/Cray-Fortran.cmake
+@@ -19,3 +19,7 @@ else()
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-eZ")
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-dZ")
+ endif()
++
++if (NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 11.0)
++ set(CMAKE_Fortran_PREPROCESS_SOURCE "<CMAKE_Fortran_COMPILER> -o <PREPROCESSED_SOURCE> <DEFINES> <INCLUDES> <FLAGS> -eP <SOURCE>")
++endif()
+--
+GitLab
+
diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py
index a3bad699e1..80b573e065 100644
--- a/var/spack/repos/builtin/packages/cmake/package.py
+++ b/var/spack/repos/builtin/packages/cmake/package.py
@@ -1,30 +1,58 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import re
+import spack.build_environment
+
class Cmake(Package):
"""A cross-platform, open-source build system. CMake is a family of
tools designed to build, test and package software.
"""
homepage = 'https://www.cmake.org'
- url = 'https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz'
+ url = 'https://github.com/Kitware/CMake/releases/download/v3.19.0/cmake-3.19.0.tar.gz'
+ git = 'https://gitlab.kitware.com/cmake/cmake.git'
maintainers = ['chuckatkins']
+ tags = ['build-tools']
+
executables = ['^cmake$']
+ version('master', branch='master')
+ version('3.21.2', sha256='94275e0b61c84bb42710f5320a23c6dcb2c6ee032ae7d2a616f53f68b3d21659')
+ version('3.21.1', sha256='fac3915171d4dff25913975d712f76e69aef44bf738ba7b976793a458b4cfed4')
+ version('3.21.0', sha256='4a42d56449a51f4d3809ab4d3b61fd4a96a469e56266e896ce1009b5768bd2ab')
+ version('3.20.5', sha256='12c8040ef5c6f1bc5b8868cede16bb7926c18980f59779e299ab52cbc6f15bb0')
+ version('3.20.4', sha256='87a4060298f2c6bb09d479de1400bc78195a5b55a65622a7dceeb3d1090a1b16')
+ version('3.20.3', sha256='4d008ac3461e271fcfac26a05936f77fc7ab64402156fb371d41284851a651b8')
+ version('3.20.2', sha256='aecf6ecb975179eb3bb6a4a50cae192d41e92b9372b02300f9e8f1d5f559544e')
+ version('3.20.1', sha256='3f1808b9b00281df06c91dd7a021d7f52f724101000da7985a401678dfe035b0')
+ version('3.20.0', sha256='9c06b2ddf7c337e31d8201f6ebcd3bba86a9a033976a9aee207fe0c6971f4755')
+ version('3.19.8', sha256='09b4fa4837aae55c75fb170f6a6e2b44818deba48335d1969deddfbb34e30369')
+ version('3.19.7', sha256='58a15f0d56a0afccc3cc5371234fce73fcc6c8f9dbd775d898e510b83175588e')
+ version('3.19.6', sha256='ec87ab67c45f47c4285f204280c5cde48e1c920cfcfed1555b27fb3b1a1d20ba')
+ version('3.19.5', sha256='c432296eb5dec6d71eae15d140f6297d63df44e9ffe3e453628d1dc8fc4201ce')
+ version('3.19.4', sha256='7d0232b9f1c57e8de81f38071ef8203e6820fe7eec8ae46a1df125d88dbcc2e1')
+ version('3.19.3', sha256='3faca7c131494a1e34d66e9f8972ff5369e48d419ea8ceaa3dc15b4c11367732')
+ version('3.19.2', sha256='e3e0fd3b23b7fb13e1a856581078e0776ffa2df4e9d3164039c36d3315e0c7f0')
+ version('3.19.1', sha256='1d266ea3a76ef650cdcf16c782a317cb4a7aa461617ee941e389cb48738a3aba')
+ version('3.19.0', sha256='fdda688155aa7e72b7c63ef6f559fca4b6c07382ea6dca0beb5f45aececaf493')
+ version('3.18.6', sha256='124f571ab70332da97a173cb794dfa09a5b20ccbb80a08e56570a500f47b6600')
+ version('3.18.5', sha256='080bf24b0f73f4bf3ec368d2be1aa59369b9bb1cd693deeb6f18fe553ca74ab4')
version('3.18.4', sha256='597c61358e6a92ecbfad42a9b5321ddd801fc7e7eca08441307c9138382d4f77')
version('3.18.3', sha256='2c89f4e30af4914fd6fb5d00f863629812ada848eee4e2d29ec7e456d7fa32e5')
version('3.18.2', sha256='5d4e40fc775d3d828c72e5c45906b4d9b59003c9433ff1b36a1cb552bbd51d7e')
version('3.18.1', sha256='c0e3338bd37e67155b9d1e9526fec326b5c541f74857771b7ffed0c46ad62508')
version('3.18.0', sha256='83b4ffcb9482a73961521d2bafe4a16df0168f03f56e6624c419c461e5317e29')
+ version('3.17.5', sha256='8c3083d98fd93c1228d5e4e40dbff2dd88f4f7b73b9fa24a2938627b8bc28f1a')
version('3.17.4', sha256='86985d73d0a63ec99c236aab5287316e252164f33d7c4cb160954a980c71f36f')
version('3.17.3', sha256='0bd60d512275dc9f6ef2a2865426a184642ceb3761794e6b65bff233b91d8c40')
version('3.17.1', sha256='3aa9114485da39cbd9665a0bfe986894a282d5f0882b1dea960a739496620727')
version('3.17.0', sha256='b74c05b55115eacc4fa2b77a814981dbda05cdc95a53e279fe16b7b272f00847')
+ version('3.16.9', sha256='1708361827a5a0de37d55f5c9698004c035abb1de6120a376d5d59a81630191f')
version('3.16.8', sha256='177434021132686cb901fea7db9fa2345efe48d566b998961594d5cc346ac588')
version('3.16.7', sha256='5f49c95a2933b1800f14840f3a389f4cef0b19093985a35053b43f38ec21358f')
version('3.16.6', sha256='6f6ff1a197851b0fa8412ff5de602e6717a4eb9509b2c385b08589c4e7a16b62')
@@ -91,6 +119,10 @@ class Cmake(Package):
version('3.0.2', sha256='6b4ea61eadbbd9bec0ccb383c29d1f4496eacc121ef7acf37c7a24777805693e')
version('2.8.10.2', sha256='ce524fb39da06ee6d47534bbcec6e0b50422e18b62abc4781a4ba72ea2910eb1')
+ variant('build_type', default='Release',
+ description='CMake build type',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
+
# Revert the change that introduced a regression when parsing mpi link
# flags, see: https://gitlab.kitware.com/cmake/cmake/issues/19516
patch('cmake-revert-findmpi-link-flag-list.patch', when='@3.15.0')
@@ -110,15 +142,14 @@ class Cmake(Package):
variant('ownlibs', default=True, description='Use CMake-provided third-party libraries')
variant('qt', default=False, description='Enables the build of cmake-gui')
variant('doc', default=False, description='Enables the generation of html and man page documentation')
- variant('openssl', default=True, description="Enables CMake's OpenSSL features")
+ variant('openssl', default=True, description="Enable openssl for curl bootstrapped by CMake when using +ownlibs")
variant('ncurses', default=True, description='Enables the build of the ncurses gui')
- # Does not compile and is not covered in upstream CI (yet).
- conflicts('%gcc platform=darwin',
- msg='CMake does not compile with GCC on macOS yet, '
- 'please use %apple-clang. '
+ # See https://gitlab.kitware.com/cmake/cmake/-/issues/21135
+ conflicts('%gcc platform=darwin', when='@:3.17',
+ msg='CMake <3.18 does not compile with GCC on macOS, '
+ 'please use %apple-clang or a newer CMake release. '
'See: https://gitlab.kitware.com/cmake/cmake/-/issues/21135')
-
conflicts('%nvhpc')
# Really this should conflict since it's enabling or disabling openssl for
@@ -142,8 +173,8 @@ class Cmake(Package):
depends_on('qt', when='+qt')
depends_on('python@2.7.11:', when='+doc', type='build')
depends_on('py-sphinx', when='+doc', type='build')
- depends_on('openssl', when='+openssl')
- depends_on('openssl@:1.0.99', when='@:3.6.9+openssl')
+ depends_on('openssl', when='+openssl+ownlibs')
+ depends_on('openssl@:1.0.99', when='@:3.6.9+openssl+ownlibs')
depends_on('ncurses', when='+ncurses')
# Cannot build with Intel, should be fixed in 3.6.2
@@ -171,6 +202,13 @@ class Cmake(Package):
# https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5025
patch('pgi-cxx-ansi.patch', when='@3.15:3.18.99')
+ # Adds CCE v11+ fortran preprocessing definition.
+ # requires Cmake 3.19+
+ # https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5882
+ patch('5882-enable-cce-fortran-preprocessing.patch',
+ sha256='b48396c0e4f61756248156b6cebe9bc0d7a22228639b47b5aa77c9330588ce88',
+ when='@3.19.0:3.19.99')
+
conflicts('+qt', when='^qt@5.4.0') # qt-5.4.0 has broken CMake modules
# https://gitlab.kitware.com/cmake/cmake/issues/18166
@@ -228,8 +266,8 @@ class Cmake(Package):
# Now for CMake arguments to pass after the initial bootstrap
args.append('--')
- # Make sure to create an optimized release build
- args.append('-DCMAKE_BUILD_TYPE=Release')
+ args.append('-DCMAKE_BUILD_TYPE={0}'.format(
+ self.spec.variants['build_type'].value))
# Install CMake correctly, even if `spack install` runs
# inside a ctest environment
@@ -240,6 +278,17 @@ class Cmake(Package):
if '+ownlibs' in spec:
args.append('-DCMAKE_USE_OPENSSL=%s' % str('+openssl' in spec))
+ args.append('-DBUILD_CursesDialog=%s' % str('+ncurses' in spec))
+
+ # Make CMake find its own dependencies.
+ rpaths = spack.build_environment.get_rpaths(self)
+ prefixes = spack.build_environment.get_cmake_prefix_path(self)
+ args.extend([
+ '-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF',
+ '-DCMAKE_INSTALL_RPATH={0}'.format(";".join(str(v) for v in rpaths)),
+ '-DCMAKE_PREFIX_PATH={0}'.format(";".join(str(v) for v in prefixes))
+ ])
+
return args
def bootstrap(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/cmaq/package.py b/var/spack/repos/builtin/packages/cmaq/package.py
index 2f8d35e5c4..3ca83ffa43 100644
--- a/var/spack/repos/builtin/packages/cmaq/package.py
+++ b/var/spack/repos/builtin/packages/cmaq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Cmaq(Package):
"""Code base for the U.S. EPA's Community Multiscale Air Quality Model
(CMAQ)."""
- homepage = "http://www.epa.gov/CMAQ"
+ homepage = "https://www.epa.gov/CMAQ"
url = "https://github.com/USEPA/CMAQ/archive/CMAQv5.3.1_19Dec2019.tar.gz"
version('5.3.1', sha256='659156bba27f33010e0fdc157a8d33f3b5b779b95511e2ade870284b6bcb4bc8',
diff --git a/var/spack/repos/builtin/packages/cmark/package.py b/var/spack/repos/builtin/packages/cmark/package.py
index a5391821b1..4d9e71d6b4 100644
--- a/var/spack/repos/builtin/packages/cmark/package.py
+++ b/var/spack/repos/builtin/packages/cmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Cmark(CMakePackage):
"""cmark is the C reference implementation of CommonMark,
a rationalized version of Markdown syntax with a spec."""
- homepage = "http://commonmark.org/"
+ homepage = "https://commonmark.org/"
url = "https://github.com/commonmark/cmark/archive/0.29.0.tar.gz"
version('0.29.0', sha256='2558ace3cbeff85610de3bda32858f722b359acdadf0c4691851865bb84924a6')
diff --git a/var/spack/repos/builtin/packages/cminpack/package.py b/var/spack/repos/builtin/packages/cminpack/package.py
index e269accabf..a553de9a7b 100644
--- a/var/spack/repos/builtin/packages/cminpack/package.py
+++ b/var/spack/repos/builtin/packages/cminpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -30,8 +30,7 @@ class Cminpack(CMakePackage):
def cmake_args(self):
args = [
- '-DBUILD_SHARED_LIBS=%s' % (
- 'ON' if '+shared' in self.spec else 'OFF'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
'-DUSE_BLAS=%s' % (
'ON' if 'blas' in self.spec else 'OFF')
]
diff --git a/var/spack/repos/builtin/packages/cmocka/package.py b/var/spack/repos/builtin/packages/cmocka/package.py
index 4fd6324375..8e2a81fc58 100644
--- a/var/spack/repos/builtin/packages/cmocka/package.py
+++ b/var/spack/repos/builtin/packages/cmocka/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cmockery/package.py b/var/spack/repos/builtin/packages/cmockery/package.py
index bb4cf5b22c..c35b44bc59 100644
--- a/var/spack/repos/builtin/packages/cmockery/package.py
+++ b/var/spack/repos/builtin/packages/cmockery/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cmor/package.py b/var/spack/repos/builtin/packages/cmor/package.py
index 5cbfa69613..9a468a6460 100644
--- a/var/spack/repos/builtin/packages/cmor/package.py
+++ b/var/spack/repos/builtin/packages/cmor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Cmor(AutotoolsPackage):
they contain fulfill the requirements of many of the climate community's
standard model experiments."""
- homepage = "http://cmor.llnl.gov"
+ homepage = "https://cmor.llnl.gov"
url = "https://github.com/PCMDI/cmor/archive/3.4.0.tar.gz"
version('3.4.0', sha256='e700a6d50f435e6ffdedf23bf6832b7d37fe21dc78815e1372f218d1d52bd2cb')
diff --git a/var/spack/repos/builtin/packages/cnmem/package.py b/var/spack/repos/builtin/packages/cnmem/package.py
index 9e6ebd4d86..9dc2671c5a 100644
--- a/var/spack/repos/builtin/packages/cnmem/package.py
+++ b/var/spack/repos/builtin/packages/cnmem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cnpy/package.py b/var/spack/repos/builtin/packages/cnpy/package.py
index c80db33b57..b418b6d4e8 100644
--- a/var/spack/repos/builtin/packages/cnpy/package.py
+++ b/var/spack/repos/builtin/packages/cnpy/package.py
@@ -1,12 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Cnpy(CMakePackage):
"""cnpy: library to read/write .npy and .npz files in C/C++."""
diff --git a/var/spack/repos/builtin/packages/cntk/package.py b/var/spack/repos/builtin/packages/cntk/package.py
index 098341402e..64ebe95c02 100644
--- a/var/spack/repos/builtin/packages/cntk/package.py
+++ b/var/spack/repos/builtin/packages/cntk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cntk1bitsgd/package.py b/var/spack/repos/builtin/packages/cntk1bitsgd/package.py
index efaa6e1af3..c366ac5eb8 100644
--- a/var/spack/repos/builtin/packages/cntk1bitsgd/package.py
+++ b/var/spack/repos/builtin/packages/cntk1bitsgd/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 listdir
+from spack import *
+
class Cntk1bitsgd(Package):
"""CNTK1bitSGD is the header-only
diff --git a/var/spack/repos/builtin/packages/cnvnator/package.py b/var/spack/repos/builtin/packages/cnvnator/package.py
index 8160f21e02..219f70b66a 100644
--- a/var/spack/repos/builtin/packages/cnvnator/package.py
+++ b/var/spack/repos/builtin/packages/cnvnator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -37,7 +37,7 @@ class Cnvnator(MakefilePackage):
makefile.filter('-I$(SAMDIR)', '-I$(SAMINC)', string=True)
# Link more libs
makefile.filter('^override LIBS.*',
- 'override LIBS += -lz -lbz2 -lcurl -llzma')
+ 'override LIBS += -lz -lbz2 -lcurl -llzma -lcrypto')
def build(self, spec, prefix):
make('ROOTSYS={0}'.format(spec['root'].prefix),
diff --git a/var/spack/repos/builtin/packages/codar-cheetah/package.py b/var/spack/repos/builtin/packages/codar-cheetah/package.py
index 2de5e80be7..ce7c475993 100644
--- a/var/spack/repos/builtin/packages/codar-cheetah/package.py
+++ b/var/spack/repos/builtin/packages/codar-cheetah/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/code-server/package.py b/var/spack/repos/builtin/packages/code-server/package.py
index 534577e9d1..96826e9b54 100644
--- a/var/spack/repos/builtin/packages/code-server/package.py
+++ b/var/spack/repos/builtin/packages/code-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/codec2/package.py b/var/spack/repos/builtin/packages/codec2/package.py
index 55a526c854..17c2289247 100644
--- a/var/spack/repos/builtin/packages/codec2/package.py
+++ b/var/spack/repos/builtin/packages/codec2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Codec2(CMakePackage):
between 450 and 3200 bit/s. The main application is low bandwidth
HF/VHF digital radio."""
- homepage = "http://www.rowetel.com/codec2.html"
+ homepage = "https://www.rowetel.com/?page_id=452"
url = "https://github.com/drowe67/codec2/archive/v0.9.2.tar.gz"
version('0.9.2', sha256='19181a446f4df3e6d616b50cabdac4485abb9cd3242cf312a0785f892ed4c76c')
diff --git a/var/spack/repos/builtin/packages/codes/package.py b/var/spack/repos/builtin/packages/codes/package.py
index 23ea42cf8c..ee11919e18 100644
--- a/var/spack/repos/builtin/packages/codes/package.py
+++ b/var/spack/repos/builtin/packages/codes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Codes(AutotoolsPackage):
""" CO-Design of multi-layer Exascale Storage (CODES) simulation framework
"""
- homepage = "http://www.mcs.anl.gov/projects/codes"
+ homepage = "https://www.mcs.anl.gov/projects/codes"
git = "https://xgitlab.cels.anl.gov/codes/codes.git"
version('develop', branch='master')
@@ -47,6 +47,6 @@ class Codes(AutotoolsPackage):
if "+dumpi" in spec:
config_args.extend([
- '--with-dumpi=%s'.format(spec['sst-dumpi'].prefix)])
+ '--with-dumpi=%s' % spec['sst-dumpi'].prefix])
return config_args
diff --git a/var/spack/repos/builtin/packages/coevp/package.py b/var/spack/repos/builtin/packages/coevp/package.py
index 9224cba92c..5cb118e666 100644
--- a/var/spack/repos/builtin/packages/coevp/package.py
+++ b/var/spack/repos/builtin/packages/coevp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cohmm/package.py b/var/spack/repos/builtin/packages/cohmm/package.py
index 97eab37c28..83b5375080 100644
--- a/var/spack/repos/builtin/packages/cohmm/package.py
+++ b/var/spack/repos/builtin/packages/cohmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/coin3d/package.py b/var/spack/repos/builtin/packages/coin3d/package.py
index c613736a3d..23b6549950 100644
--- a/var/spack/repos/builtin/packages/coin3d/package.py
+++ b/var/spack/repos/builtin/packages/coin3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,12 +20,12 @@ class Coin3d(AutotoolsPackage):
depends_on('boost@1.45.0:', type='build')
depends_on('doxygen', when='+html', type='build')
depends_on('perl', when='+html', type='build')
- depends_on('openglu', type='link')
- depends_on('opengl', type='link')
+ depends_on('glu', type='link')
+ depends_on('gl', type='link')
depends_on('libsm', type='link')
depends_on('libxext', type='link')
depends_on('libice', type='link')
- depends_on('libuuid', type='link')
+ depends_on('uuid', type='link')
depends_on('libxcb', type='link')
depends_on('libxau', type='link')
diff --git a/var/spack/repos/builtin/packages/coinhsl/package.py b/var/spack/repos/builtin/packages/coinhsl/package.py
index 50fdaa079f..9ea6b73581 100644
--- a/var/spack/repos/builtin/packages/coinhsl/package.py
+++ b/var/spack/repos/builtin/packages/coinhsl/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Coinhsl(AutotoolsPackage):
"""CoinHSL is a collection of linear algebra libraries (KB22, MA27,
@@ -18,12 +19,13 @@ class Coinhsl(AutotoolsPackage):
of CoinHSL yourself. Spack will search your current directory for
the download file. Alternatively, add this file to a mirror so
that Spack can find it. For instructions on how to set up a
- mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+ mirror, see https://spack.readthedocs.io/en/latest/mirrors.html"""
# NOTE(oxberry1@llnl.gov): an HTTPS version of the URL below does not
# exist
- homepage = "http://www.hsl.rl.ac.uk/ipopt/"
+ homepage = "https://www.hsl.rl.ac.uk/ipopt/"
url = "file://{0}/coinhsl-archive-2014.01.17.tar.gz".format(os.getcwd())
+ manual_download = True
# CoinHSL has a few versions that vary with respect to stability/features
# and licensing terms.
@@ -31,13 +33,13 @@ class Coinhsl(AutotoolsPackage):
# Version 2019.05.21 is a full-featured "release candidate"
# version available via an "academic license" that can be used for
# personal teaching and research purposes only. For a full list of
- # conditions, see http://www.hsl.rl.ac.uk/academic.html.
+ # conditions, see https://www.hsl.rl.ac.uk/academic.html.
version('2019.05.21', sha256='95ce1160f0b013151a3e25d40337775c760a8f3a79d801a1d190598bf4e4c0c3')
# Version 2015.06.23 is a full-featured "stable"
# version available via an "academic license" that can be used for
# personal teaching and research purposes only. For a full list of
- # conditions, see http://www.hsl.rl.ac.uk/academic.html.
+ # conditions, see https://www.hsl.rl.ac.uk/academic.html.
version('2015.06.23', sha256='3e955a2072f669b8f357ae746531b37aea921552e415dc219a5dd13577575fb3',
preferred=True)
diff --git a/var/spack/repos/builtin/packages/coinutils/package.py b/var/spack/repos/builtin/packages/coinutils/package.py
index 87af413126..d956508dde 100644
--- a/var/spack/repos/builtin/packages/coinutils/package.py
+++ b/var/spack/repos/builtin/packages/coinutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/collectd/package.py b/var/spack/repos/builtin/packages/collectd/package.py
index 35472a4a67..deea44289c 100644
--- a/var/spack/repos/builtin/packages/collectd/package.py
+++ b/var/spack/repos/builtin/packages/collectd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,11 @@ from spack import *
class Collectd(AutotoolsPackage):
"""The system statistics collection daemon."""
- homepage = "http://collectd.org/"
- url = "https://github.com/collectd/collectd/archive/collectd-5.11.0.tar.gz"
+ homepage = "https://collectd.org/"
+ url = "https://github.com/collectd/collectd/releases/download/collectd-5.11.0/collectd-5.11.0.tar.bz2"
- version('5.11.0', sha256='639676d09c5980ceea90b5a97811a9647d94e368528cce7cea3d43f0f308465d')
- version('5.10.0', sha256='bcde95a3997b5eee448d247d9414854994b3592cb9fb4fecd6ff78082cc28a1b')
+ version('5.12.0', sha256='5bae043042c19c31f77eb8464e56a01a5454e0b39fa07cf7ad0f1bfc9c3a09d6')
+ version('5.11.0', sha256='37b10a806e34aa8570c1cafa6006c604796fae13cc2e1b3e630d33dcba9e5db2')
+ version('5.10.0', sha256='a03359f563023e744c2dc743008a00a848f4cd506e072621d86b6d8313c0375b')
- depends_on('m4', type='build')
- depends_on('autoconf', type='build')
- depends_on('automake', type='build')
- depends_on('libtool', type='build')
+ depends_on('valgrind', type='test')
diff --git a/var/spack/repos/builtin/packages/collier/package.py b/var/spack/repos/builtin/packages/collier/package.py
index e1d6245b35..089ed9f4ca 100644
--- a/var/spack/repos/builtin/packages/collier/package.py
+++ b/var/spack/repos/builtin/packages/collier/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,17 @@ from spack import *
class Collier(CMakePackage):
- """COLLIER: A Complex One-Loop LIbrary with Extended Regularizations """
+ """COLLIER: A Complex One-Loop LIbrary with Extended Regularizations
+ for the numerical evaluation of one-loop scalar and tensor integrals
+ appearing in perturbative relativistic quantum field theory. """
homepage = "https://collier.hepforge.org"
url = "https://collier.hepforge.org/downloads/?f=collier-1.2.5.tar.gz"
+ tags = ['hep']
+
+ maintainers = ['vvolkl']
+
version('1.2.5', sha256='3ec58a975ff0c3b1ca870bc38973476c923ff78fd3dd5850e296037852b94a8b')
version('1.2.4', sha256='92ae8f61461b232fbd47a6d8e832e1a726d504f9390b7edc49a68fceedff8857')
version('1.2.3', sha256='e6f72df223654df59113b0067a4bebe9f8c20227bb81371d3193e1557bdf56fb')
diff --git a/var/spack/repos/builtin/packages/colm/package.py b/var/spack/repos/builtin/packages/colm/package.py
index e455c3a8f7..aed1b2d304 100644
--- a/var/spack/repos/builtin/packages/colm/package.py
+++ b/var/spack/repos/builtin/packages/colm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Colm(AutotoolsPackage):
by TXL. It is in the family of program transformation languages.
"""
- homepage = "http://www.colm.net/open-source/colm"
- url = "http://www.colm.net/files/colm/colm-0.12.0.tar.gz"
+ homepage = "https://www.colm.net/open-source/colm"
+ url = "https://www.colm.net/files/colm/colm-0.12.0.tar.gz"
version('0.12.0', sha256='7b545d74bd139f5c622975d243c575310af1e4985059a1427b6fdbb1fb8d6e4d')
diff --git a/var/spack/repos/builtin/packages/colordiff/package.py b/var/spack/repos/builtin/packages/colordiff/package.py
index 5d97c61d47..a2fb6ee5ac 100644
--- a/var/spack/repos/builtin/packages/colordiff/package.py
+++ b/var/spack/repos/builtin/packages/colordiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/comd/package.py b/var/spack/repos/builtin/packages/comd/package.py
index 8f2446c2a9..5ab3600f1f 100644
--- a/var/spack/repos/builtin/packages/comd/package.py
+++ b/var/spack/repos/builtin/packages/comd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/comgr/hip-tests.patch b/var/spack/repos/builtin/packages/comgr/hip-tests.patch
new file mode 100644
index 0000000000..7002f20653
--- /dev/null
+++ b/var/spack/repos/builtin/packages/comgr/hip-tests.patch
@@ -0,0 +1,11 @@
+diff -Naurb ROCm-CompilerSupport-rocm-3.10.0.orig/lib/comgr/test/CMakeLists.txt ROCm-CompilerSupport-rocm-3.10.0/lib/comgr/test/CMakeLists.txt
+--- ROCm-CompilerSupport-rocm-3.10.0.orig/lib/comgr/test/CMakeLists.txt 2020-09-16 14:17:12.000000000 -0500
++++ ROCm-CompilerSupport-rocm-3.10.0/lib/comgr/test/CMakeLists.txt 2020-12-14 10:11:56.609584283 -0600
+@@ -120,7 +120,6 @@
+ add_comgr_test(include_subdirectory_test)
+ add_comgr_test(options_test)
+ # Test : Compile HIP only if HIP-Clang is installed.
+-find_package(hip CONFIG PATHS /opt/rocm/hip QUIET)
+ if (DEFINED HIP_COMPILER AND "${HIP_COMPILER}" STREQUAL "clang")
+ add_comgr_test(compile_hip_test)
+ add_comgr_test(compile_hip_test_in_process)
diff --git a/var/spack/repos/builtin/packages/comgr/package.py b/var/spack/repos/builtin/packages/comgr/package.py
index b83d6558e5..11332ae02c 100644
--- a/var/spack/repos/builtin/packages/comgr/package.py
+++ b/var/spack/repos/builtin/packages/comgr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,18 @@ class Comgr(CMakePackage):
contains one library, the Code Object Manager (Comgr)"""
homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport"
- url = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/archive/rocm-3.9.0.tar.gz"
-
- maintainers = ['srekolam', 'arjun-raj-kuppala']
-
+ git = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport.git"
+ url = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/archive/rocm-4.3.1.tar.gz"
+
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+
+ version('master', branch='amd-stg-open')
+ version('4.3.1', sha256='f1d99550383ed7b3a01d304eedc3d86a8e45b271aa5a80b1dd099c22fda3f745')
+ version('4.3.0', sha256='f77b505abb474078374701dfc49e651ad3eeec5349ce6edda54549943a3775ee')
+ version('4.2.0', sha256='40a1ea50d2aea0cf75c4d17cdd6a7fe44ae999bf0147d24a756ca4675ce24e36')
+ version('4.1.0', sha256='ffb625978555c63582aa46857672431793261166aa31761eff4fe5c2cab661ae')
+ version('4.0.0', sha256='f389601fb70b2d9a60d0e2798919af9ddf7b8376a2e460141507fe50073dfb31')
+ version('3.10.0', sha256='b44ee5805a6236213d758fa4b612bb859d8f774b9b4bdc3a2699bb009dd631bc')
version('3.9.0', sha256='6600e144d72dadb6d893a3388b42af103b9443755ce556f4e9e205ccd8ec0c83')
version('3.8.0', sha256='62a35480dfabaa98883d91ed0f7c490daa9bbd424af37e07e5d85a6e8030b146')
version('3.7.0', sha256='73e56ec3c63dade24ad351e9340e2f8e127694028c1fb7cec5035376bf098432')
@@ -23,13 +31,25 @@ class Comgr(CMakePackage):
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
+ # Disable the hip compile tests. Spack should not be using
+ # /opt/rocm, and this breaks the build when /opt/rocm exists.
+ patch('hip-tests.patch', when='@:4.2.0')
+
+ depends_on('cmake@3.2.0:', type='build', when='@:3.8.99')
+ depends_on('cmake@3.13.4:', type='build', when='@3.9.0:')
+
depends_on('zlib', type='link')
depends_on('z3', type='link')
depends_on('ncurses', type='link')
- depends_on('cmake@3:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1', 'master']:
+ # llvm libs are linked statically, so this *could* be a build dep
+ depends_on('llvm-amdgpu@' + ver, when='@' + ver)
+
+ # aomp may not build rocm-device-libs as part of llvm-amdgpu, so make
+ # that a conditional dependency
+ depends_on('rocm-device-libs@' + ver, when='@{0} ^llvm-amdgpu ~rocm-device-libs'.format(ver))
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- root_cmakelists_dir = 'lib/comgr'
+ root_cmakelists_dir = join_path('lib', 'comgr')
diff --git a/var/spack/repos/builtin/packages/commons-lang/package.py b/var/spack/repos/builtin/packages/commons-lang/package.py
index a324565093..9ddba9053c 100644
--- a/var/spack/repos/builtin/packages/commons-lang/package.py
+++ b/var/spack/repos/builtin/packages/commons-lang/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class CommonsLang(Package):
dedicated to help with building methods, such as hashCode, toString and
equals."""
- homepage = "http://commons.apache.org/proper/commons-lang/"
+ homepage = "https://commons.apache.org/proper/commons-lang/"
url = "https://archive.apache.org/dist/commons/lang/binaries/commons-lang-2.6-bin.tar.gz"
version('2.6', sha256='ff6a244bb71a9a1c859e81cb744d0ce698c20e04f13a7ef7dbffb99c8122752c')
diff --git a/var/spack/repos/builtin/packages/commons-lang3/package.py b/var/spack/repos/builtin/packages/commons-lang3/package.py
index d9aca99e35..7d16e85e5a 100644
--- a/var/spack/repos/builtin/packages/commons-lang3/package.py
+++ b/var/spack/repos/builtin/packages/commons-lang3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class CommonsLang3(Package):
dedicated to help with building methods, such as hashCode, toString and
equals."""
- homepage = "http://commons.apache.org/proper/commons-lang/"
+ homepage = "https://commons.apache.org/proper/commons-lang/"
url = "https://archive.apache.org/dist/commons/lang/binaries/commons-lang3-3.7-bin.tar.gz"
version('3.7', sha256='94dc8289ce90b77b507d9257784d9a43b402786de40c164f6e3990e221a2a4d2')
diff --git a/var/spack/repos/builtin/packages/commons-logging/package.py b/var/spack/repos/builtin/packages/commons-logging/package.py
index 3ca20d2d5e..094ab369fb 100644
--- a/var/spack/repos/builtin/packages/commons-logging/package.py
+++ b/var/spack/repos/builtin/packages/commons-logging/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,8 +18,8 @@ class CommonsLogging(Package):
support for a number of popular logging implementations, and writing
adapters for others is a reasonably simple task."""
- homepage = "http://commons.apache.org/proper/commons-logging/"
- url = "http://archive.apache.org/dist/commons/logging/binaries/commons-logging-1.2-bin.tar.gz"
+ homepage = "https://commons.apache.org/proper/commons-logging/"
+ url = "https://archive.apache.org/dist/commons/logging/binaries/commons-logging-1.2-bin.tar.gz"
version('1.2', sha256='3f758805c7290d9c6d22d1451587c9f7232744aef4c984e88aa683cdea0587bd')
version('1.1.3', sha256='9e7093c93529792563b5c19ab5cccb73ef4ca7d82b886bdec6d0af182ba9908a')
diff --git a/var/spack/repos/builtin/packages/compadre/package.py b/var/spack/repos/builtin/packages/compadre/package.py
new file mode 100644
index 0000000000..58e130a0f8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/compadre/package.py
@@ -0,0 +1,58 @@
+# Copyright 2013-2021 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 Compadre(CMakePackage):
+ """The Compadre Toolkit provides a performance portable solution for the
+ parallel evaluation of computationally dense kernels. The toolkit
+ specifically targets the Generalized Moving Least Squares (GMLS) approach,
+ which requires the inversion of small dense matrices. The result is a set
+ of weights that provide the information needed for remap or entries that
+ constitute the rows of some globally sparse matrix.
+ """
+
+ homepage = 'https://github.com/SNLComputation/compadre'
+ git = 'https://github.com/SNLComputation/compadre.git'
+ url = 'https://github.com/SNLComputation/compadre/archive/v1.3.0.tar.gz'
+ maintainers = ['kuberry']
+
+ version('master', branch='master', preferred=True)
+ version('1.3.0', 'f711a840fd921e84660451ded408023ec3bcfc98fd0a7dc4a299bfae6ab489c2')
+
+ depends_on('kokkos@3.3.01:main')
+ depends_on('kokkos-kernels@3.3.01:main')
+ depends_on('cmake@3.13:', type='build')
+
+ variant('build_type', default='Release',
+ description='CMake build type',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
+
+ variant('mpi', default=False, description='Enable MPI support')
+ depends_on('mpi', when='+mpi')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ kokkos = spec['kokkos']
+ kokkos_kernels = spec['kokkos-kernels']
+
+ options = []
+ options.extend([
+ '-DKokkosCore_PREFIX={0}'.format(kokkos.prefix),
+ '-DKokkosKernels_PREFIX={0}'.format(kokkos_kernels.prefix),
+ '-DCMAKE_CXX_COMPILER:STRING={0}'.format(spec["kokkos"].kokkos_cxx),
+ ])
+
+ if '+mpi' in spec:
+ options.append('-DCompadre_USE_MPI:BOOL=ON')
+
+ if '+shared' in spec:
+ options.append('-DBUILD_SHARED_LIBS:BOOL=ON')
+ else:
+ options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
+
+ return options
diff --git a/var/spack/repos/builtin/packages/compiz/package.py b/var/spack/repos/builtin/packages/compiz/package.py
index ed90e45174..b5607620e5 100644
--- a/var/spack/repos/builtin/packages/compiz/package.py
+++ b/var/spack/repos/builtin/packages/compiz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/compositeproto/package.py b/var/spack/repos/builtin/packages/compositeproto/package.py
index bf1bedaf20..d48917a324 100644
--- a/var/spack/repos/builtin/packages/compositeproto/package.py
+++ b/var/spack/repos/builtin/packages/compositeproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Compositeproto(AutotoolsPackage, XorgPackage):
This package contains header files and documentation for the composite
extension. Library and server implementations are separate."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/compositeproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/compositeproto"
xorg_mirror_path = "proto/compositeproto-0.4.2.tar.gz"
version('0.4.2', sha256='22195b7e50036440b1c6b3b2d63eb03dfa6e71c8a1263ed1f07b0f31ae7dad50')
diff --git a/var/spack/repos/builtin/packages/conda4aarch64/package.py b/var/spack/repos/builtin/packages/conda4aarch64/package.py
index fe7ede5c14..e24f77108e 100644
--- a/var/spack/repos/builtin/packages/conda4aarch64/package.py
+++ b/var/spack/repos/builtin/packages/conda4aarch64/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py
index 57d49da70e..67d3256be8 100644
--- a/var/spack/repos/builtin/packages/conduit/package.py
+++ b/var/spack/repos/builtin/packages/conduit/package.py
@@ -1,17 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 socket
-import os
import glob
+import os
import shutil
+import socket
+from os import environ as env
import llnl.util.tty as tty
-from os import environ as env
+
+from spack import *
def cmake_cache_entry(name, value, vtype=None):
@@ -27,17 +27,25 @@ def cmake_cache_entry(name, value, vtype=None):
return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype)
-class Conduit(Package):
+class Conduit(CMakePackage):
"""Conduit is an open source project from Lawrence Livermore National
Laboratory that provides an intuitive model for describing hierarchical
scientific data in C++, C, Fortran, and Python. It is used for data
coupling between packages in-core, serialization, and I/O tasks."""
- homepage = "http://software.llnl.gov/conduit"
+ homepage = "https://software.llnl.gov/conduit"
url = "https://github.com/LLNL/conduit/releases/download/v0.3.0/conduit-v0.3.0-src-with-blt.tar.gz"
git = "https://github.com/LLNL/conduit.git"
- version('master', branch='master', submodules=True, preferred=True)
+ version('develop', branch='develop', submodules=True)
+ # note: the main branch in conduit was renamed to develop, this next entry
+ # is to bridge any spack dependencies that are still using the name master
+ version('master', branch='develop', submodules=True)
+ # note: 2021-05-05 latest tagged release is now preferred instead of develop
+ version('0.7.2', sha256='359fd176297700cdaed2c63e3b72d236ff3feec21a655c7c8292033d21d5228a')
+ version('0.7.1', sha256='460a480cf08fedbf5b38f707f94f20828798327adadb077f80dbab048fd0a07d')
+ version('0.7.0', sha256='ecaa9668ebec5d4efad19b104d654a587c0adbd5f502128f89601408cb4d7d0c')
+ version('0.6.0', sha256='078f086a13b67a97e4ab6fe1063f2fef2356df297e45b43bb43d74635f80475d')
version('0.5.1', sha256='68a3696d1ec6d3a4402b44a464d723e6529ec41016f9b44c053676affe516d44')
version('0.5.0', sha256='7efac668763d02bd0a2c0c1b134d9f5ee27e99008183905bb0512e5502b8b4fe')
version('0.4.0', sha256='c228e6f0ce5a9c0ffb98e0b3d886f2758ace1a4b40d00f3f118542c0747c1f52')
@@ -67,6 +75,7 @@ class Conduit(Package):
description="Build Conduit with HDF5 1.8.x (compatibility mode)")
variant("silo", default=False, description="Build Conduit Silo support")
variant("adios", default=False, description="Build Conduit ADIOS support")
+ variant("parmetis", default=False, description="Build Conduit Parmetis support")
# zfp compression
variant("zfp", default=False, description="Build Conduit ZFP support")
@@ -84,8 +93,8 @@ class Conduit(Package):
#######################
# CMake
#######################
- # cmake 3.8.2 or newer
- depends_on("cmake@3.8.2:", type='build')
+ # cmake 3.14.1 or newer
+ depends_on("cmake@3.14.1:", type='build')
#######################
# Python
@@ -102,7 +111,7 @@ class Conduit(Package):
###############
# HDF5
###############
- # TODO: cxx variant is disabled due to build issue Cyrus
+ # Note: cxx variant is disabled due to build issue Cyrus
# experienced on BGQ. When on, the static build tries
# to link against shared libs.
#
@@ -112,6 +121,9 @@ class Conduit(Package):
depends_on("hdf5@1.8.19:1.8.999~shared~cxx", when="+hdf5+hdf5_compat~shared")
depends_on("hdf5~cxx", when="+hdf5~hdf5_compat+shared")
depends_on("hdf5~shared~cxx", when="+hdf5~hdf5_compat~shared")
+ # we need to hand this to conduit so it can properly
+ # handle downstream linking of zlib reqed by hdf5
+ depends_on("zlib", when="+hdf5")
###############
# Silo
@@ -131,7 +143,16 @@ class Conduit(Package):
#######################
# ZFP
#######################
- depends_on("zfp", when="+zfp")
+ depends_on("zfp bsws=8", when="+zfp")
+
+ # hdf5 zfp plugin when both hdf5 and zfp are on
+ depends_on("h5z-zfp~fortran", when="+hdf5+zfp")
+
+ #######################
+ # Parmetis
+ #######################
+ depends_on("parmetis", when="+parmetis")
+ depends_on("metis", when="+parmetis")
#######################
# MPI
@@ -149,14 +170,10 @@ class Conduit(Package):
# Cmake will support fj compiler and this patch will be removed
patch('fj_flags.patch', when='%fj')
+ ###################################
# build phases used by this package
- phases = ["configure", "build", "install"]
-
- def flag_handler(self, name, flags):
- if name in ('cflags', 'cxxflags', 'fflags'):
- # the package manages these flags in another way
- return (None, None, None)
- return (flags, None, None)
+ ###################################
+ phases = ['hostconfig', 'cmake', 'build', 'install']
def setup_build_environment(self, env):
env.set('CTEST_OUTPUT_ON_FAILURE', '1')
@@ -178,42 +195,16 @@ class Conduit(Package):
return "https://github.com/LLNL/conduit/releases/download/v{0}/conduit-v{1}-src-with-blt.tar.gz".format(v, v)
return url
- def configure(self, spec, prefix):
- """
- Configure Conduit.
- """
- with working_dir('spack-build', create=True):
- py_site_pkgs_dir = None
- if "+python" in spec:
- py_site_pkgs_dir = site_packages_dir
-
- host_cfg_fname = self.create_host_config(spec,
- prefix,
- py_site_pkgs_dir)
- # save this filename for
- # other package recipe steps to access
- self.host_cfg_fname = host_cfg_fname
- 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/spack/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 Conduit...")
- cmake(*cmake_args)
+ ####################################################################
+ # Note: cmake, build, and install stages are handled by CMakePackage
+ ####################################################################
- def build(self, spec, prefix):
- """
- Build Conduit.
- """
- with working_dir('spack-build'):
- print("Building Conduit...")
- make()
+ # provide cmake args (pass host config as cmake cache file)
+ def cmake_args(self):
+ host_config = self._get_host_config_path(self.spec)
+ options = []
+ options.extend(['-C', host_config, "../spack-src/src/"])
+ return options
@run_after('build')
@on_package_attributes(run_tests=True)
@@ -222,16 +213,6 @@ class Conduit(Package):
print("Running Conduit Unit Tests...")
make("test")
- def install(self, spec, prefix):
- """
- Install Conduit.
- """
- with working_dir('spack-build'):
- make("install")
- # install copy of host config for provenance
- print("Installing Conduit CMake Host Config File...")
- install(self.host_cfg_fname, prefix)
-
@run_after('install')
@on_package_attributes(run_tests=True)
def check_install(self):
@@ -269,24 +250,30 @@ class Conduit(Package):
example = Executable('./conduit_example')
example()
- def create_host_config(self, spec, prefix, py_site_pkgs_dir=None):
+ def _get_host_config_path(self, spec):
+ sys_type = spec.architecture
+ # if on llnl systems, we can use the SYS_TYPE
+ if "SYS_TYPE" in env:
+ sys_type = env["SYS_TYPE"]
+ host_config_path = "{0}-{1}-{2}-conduit-{3}.cmake".format(socket.gethostname(),
+ sys_type,
+ spec.compiler,
+ spec.dag_hash())
+ dest_dir = spec.prefix
+ host_config_path = os.path.abspath(join_path(dest_dir,
+ host_config_path))
+ return host_config_path
+
+ def hostconfig(self, spec, prefix):
"""
This method creates a 'host-config' file that specifies
all of the options used to configure and build conduit.
For more details about 'host-config' files see:
http://software.llnl.gov/conduit/building.html
-
- Note:
- The `py_site_pkgs_dir` arg exists to allow a package that
- subclasses this package provide a specific site packages
- dir when calling this function. `py_site_pkgs_dir` should
- be an absolute path or `None`.
-
- This is necessary because the spack `site_packages_dir`
- var will not exist in the base class. For more details
- on this issue see: https://github.com/spack/spack/issues/6261
"""
+ if not os.path.isdir(spec.prefix):
+ os.mkdir(spec.prefix)
#######################
# Compiler Info
@@ -302,8 +289,7 @@ class Conduit(Package):
f_compiler = env["SPACK_FC"]
#######################################################################
- # By directly fetching the names of the actual compilers we appear
- # to doing something evil here, but this is necessary to create a
+ # Directly fetch the names of the actual compilers to create a
# 'host config' file that works outside of the spack install env.
#######################################################################
@@ -320,9 +306,9 @@ class Conduit(Package):
##############################################
cmake_exe = spec['cmake'].command.path
- host_cfg_fname = "%s-%s-%s-conduit.cmake" % (socket.gethostname(),
- sys_type,
- spec.compiler)
+
+ # get hostconfig name
+ host_cfg_fname = self._get_host_config_path(spec)
cfg = open(host_cfg_fname, "w")
cfg.write("##################################\n")
@@ -373,6 +359,8 @@ class Conduit(Package):
if cxxflags:
cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags))
fflags = ' '.join(spec.compiler_flags['fflags'])
+ if self.spec.satisfies('%cce'):
+ fflags += " -ef"
if fflags:
cfg.write(cmake_cache_entry("CMAKE_Fortran_FLAGS", fflags))
@@ -442,10 +430,13 @@ class Conduit(Package):
cfg.write("# python from spack \n")
cfg.write(cmake_cache_entry("PYTHON_EXECUTABLE",
spec['python'].command.path))
- # only set dest python site packages dir if passed
- if py_site_pkgs_dir:
+ try:
+ cfg.write("# python module install dir\n")
cfg.write(cmake_cache_entry("PYTHON_MODULE_INSTALL_PREFIX",
- py_site_pkgs_dir))
+ site_packages_dir))
+ except NameError:
+ # spack's won't exist in a subclass
+ pass
else:
cfg.write(cmake_cache_entry("ENABLE_PYTHON", "OFF"))
@@ -526,10 +517,22 @@ class Conduit(Package):
if "+hdf5" in spec:
cfg.write(cmake_cache_entry("HDF5_DIR", spec['hdf5'].prefix))
+ cfg.write(cmake_cache_entry("ZLIB_DIR", spec['zlib'].prefix))
else:
cfg.write("# hdf5 not built by spack \n")
#######################
+ # h5z-zfp
+ #######################
+
+ cfg.write("# h5z-zfp from spack \n")
+
+ if "+hdf5+zfp" in spec:
+ cfg.write(cmake_cache_entry("H5ZZFP_DIR", spec['h5z-zfp'].prefix))
+ else:
+ cfg.write("# h5z-zfp not built by spack \n")
+
+ #######################
# Silo
#######################
@@ -551,6 +554,21 @@ class Conduit(Package):
else:
cfg.write("# adios not built by spack \n")
+ #######################
+ # Parmetis
+ #######################
+
+ cfg.write("# parmetis from spack \n")
+
+ if "+parmetis" in spec:
+ cfg.write(cmake_cache_entry("METIS_DIR", spec['metis'].prefix))
+ cfg.write(cmake_cache_entry("PARMETIS_DIR", spec['parmetis'].prefix))
+ else:
+ cfg.write("# parmetis not built by spack \n")
+
+ #######################
+ # Finish host-config
+ #######################
cfg.write("##################################\n")
cfg.write("# end spack generated host-config\n")
cfg.write("##################################\n")
@@ -558,4 +576,3 @@ class Conduit(Package):
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/connect-proxy/package.py b/var/spack/repos/builtin/packages/connect-proxy/package.py
index e4fde75b9e..49ef895e5f 100644
--- a/var/spack/repos/builtin/packages/connect-proxy/package.py
+++ b/var/spack/repos/builtin/packages/connect-proxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,11 @@ from spack import *
class ConnectProxy(MakefilePackage):
"""`connect.c` is a simple relaying command to make network connection
- via SOCKS and https proxy"""
+ via SOCKS and https proxy. The original docs are https://bitbucket.org/gotoh/connect
+ are now 404, so the manpage is provided instead.
+ """
- homepage = "https://bitbucket.org/gotoh/connect"
+ homepage = "https://manpages.debian.org/testing/connect-proxy/connect-proxy.1.en.html"
url = "https://bitbucket.org/gotoh/connect/get/1.105.tar.bz2"
version('1.105', sha256='07366026b1f81044ecd8da9b5b5b51321327ecdf6ba23576271a311bbd69d403')
diff --git a/var/spack/repos/builtin/packages/conserver/package.py b/var/spack/repos/builtin/packages/conserver/package.py
index 88d041ce04..c6c0775be7 100644
--- a/var/spack/repos/builtin/packages/conserver/package.py
+++ b/var/spack/repos/builtin/packages/conserver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/console-bridge/package.py b/var/spack/repos/builtin/packages/console-bridge/package.py
index d50b8d4e63..9b10e4f5b6 100644
--- a/var/spack/repos/builtin/packages/console-bridge/package.py
+++ b/var/spack/repos/builtin/packages/console-bridge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/constype/package.py b/var/spack/repos/builtin/packages/constype/package.py
index 92ea0c3f4f..a58e3dfdf8 100644
--- a/var/spack/repos/builtin/packages/constype/package.py
+++ b/var/spack/repos/builtin/packages/constype/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Constype(AutotoolsPackage, XorgPackage):
It was originally written for SunOS, but has been ported to other
SPARC OS'es and to Solaris on both SPARC & x86."""
- homepage = "http://cgit.freedesktop.org/xorg/app/constype"
+ homepage = "https://cgit.freedesktop.org/xorg/app/constype"
xorg_mirror_path = "app/constype-1.0.4.tar.gz"
version('1.0.4', sha256='ec09aff369cf1d527fd5b8075fb4dd0ecf89d905190cf1a0a0145d5e523f913d')
diff --git a/var/spack/repos/builtin/packages/consul/package.py b/var/spack/repos/builtin/packages/consul/package.py
index 7882937547..883c4d5baf 100644
--- a/var/spack/repos/builtin/packages/consul/package.py
+++ b/var/spack/repos/builtin/packages/consul/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/converge/package.py b/var/spack/repos/builtin/packages/converge/package.py
index 639b799ee7..27bab2db62 100644
--- a/var/spack/repos/builtin/packages/converge/package.py
+++ b/var/spack/repos/builtin/packages/converge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -82,7 +82,7 @@ class Converge(Package):
license_comment = '#'
license_files = ['license/license.lic']
license_vars = ['RLM_LICENSE']
- license_url = 'http://www.reprisesoftware.com/RLM_License_Administration.pdf'
+ license_url = 'https://www.reprisesoftware.com/RLM_License_Administration.pdf'
def url_for_version(self, version):
url = "https://download.convergecfd.com/download/CONVERGE_{0}/Full_Solver_Packages/converge_install_{1}.tar.gz"
diff --git a/var/spack/repos/builtin/packages/cool/cool.patch b/var/spack/repos/builtin/packages/cool/cool.patch
new file mode 100644
index 0000000000..9f4855a81a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cool/cool.patch
@@ -0,0 +1,19 @@
+--- src/PyCool/CMakeLists.txt.orig 2021-01-12 22:09:58.000000000 +0100
++++ src/PyCool/CMakeLists.txt 2021-04-01 10:35:53.129276400 +0200
+@@ -9,6 +9,7 @@
+
+ # Make PyCool_helpers.h visible verbatim in PyCoolDict.so (bug #103539)
+ # See http://stackoverflow.com/questions/13470499
++file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/python/PyCool/_internal)
+ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/python/PyCool/_internal/PyCool_headers_and_helpers.h COMMAND cat ${CMAKE_CURRENT_SOURCE_DIR}/../RelationalCool/src/PyCool_helpers.h ${CMAKE_CURRENT_SOURCE_DIR}/dict/PyCool_headers.h > ${CMAKE_BINARY_DIR}/python/PyCool/_internal/PyCool_headers_and_helpers.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../RelationalCool/src/PyCool_helpers.h ${CMAKE_CURRENT_SOURCE_DIR}/dict/PyCool_headers.h)
+ add_custom_target(PyCool_headers_and_helpers_h ALL DEPENDS ${CMAKE_BINARY_DIR}/python/PyCool/_internal/PyCool_headers_and_helpers.h)
+ install(FILES ${CMAKE_BINARY_DIR}/python/PyCool/_internal/PyCool_headers_and_helpers.h DESTINATION python/PyCool/_internal)
+--- src/RelationalCool/CMakeLists.txt.orig 2021-01-12 22:09:58.000000000 +0100
++++ src/RelationalCool/CMakeLists.txt 2021-04-01 11:31:30.241902600 +0200
+@@ -1,5 +1,5 @@
+ # Required external packages
+-find_package(Boost REQUIRED)
++find_package(Boost REQUIRED chrono system thread)
+ include_directories(${Boost_INCLUDE_DIRS})
+ find_package(CORAL REQUIRED RelationalAccess CoralKernel)
+
diff --git a/var/spack/repos/builtin/packages/cool/package.py b/var/spack/repos/builtin/packages/cool/package.py
new file mode 100644
index 0000000000..ce8c0930bd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cool/package.py
@@ -0,0 +1,64 @@
+# Copyright 2013-2021 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 Cool(CMakePackage):
+ """COOL provides specific software components and tools for the handling of the time
+ variation and versioning of the experiment conditions data."""
+
+ homepage = "https://coral-cool.docs.cern.ch/"
+ git = "https://gitlab.cern.ch/lcgcool/cool.git"
+
+ tags = ['hep']
+ maintainers = ['iarspider']
+
+ version('3.3.7', tag='COOL_3_3_7')
+ version('3.3.5', tag='COOL_3_3_5')
+ version('3.3.4', tag='COOL_3_3_4')
+ version('3.3.3', tag='COOL_3_3_3')
+
+ # Spack-specific patches:
+ # * Create python/PyCool/_internal directory
+ # (only necessary for Spack builds, for some reason)
+ # * Explicitly request Boost components
+ patch('cool.patch', level=0)
+
+ # BINARY_TAG is a combination of target, os, compiler name and build type (opt/dbg)
+ # If you override it, please also override it for CORAL
+ variant('binary_tag', default='auto',
+ description='Force specific BINARY_TAG, "auto" ' +
+ 'will determine the correct value at buildtime')
+
+ depends_on('coral')
+ depends_on('root')
+ depends_on('vdt')
+ depends_on('xz')
+ depends_on('qt@5:', when='platform=linux')
+ depends_on('boost+chrono+system+thread')
+ depends_on('python')
+
+ def determine_binary_tag(self):
+ # As far as I can tell from reading the source code, `binary_tag`
+ # can be almost arbitrary. The only real difference it makes is
+ # disabling oracle dependency for non-x86 platforms.
+ if self.spec.variants['binary_tag'].value != 'auto':
+ return self.spec.variants['binary_tag'].value
+
+ binary_tag = str(self.spec.target.family) + \
+ '-' + self.spec.os + \
+ '-' + self.spec.compiler.name + str(self.spec.compiler.version.joined) + \
+ ('-opt' if 'Rel' in self.spec.variants['build_type'].value else '-dbg')
+
+ return binary_tag
+
+ def cmake_args(self):
+ binary_tag = self.determine_binary_tag()
+ args = ['-DBINARY_TAG=' + binary_tag]
+ if self.spec['python'].version >= Version("3.0.0"):
+ args.append('-DLCG_python3=on')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/coral/package.py b/var/spack/repos/builtin/packages/coral/package.py
new file mode 100644
index 0000000000..34fe3c259f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/coral/package.py
@@ -0,0 +1,59 @@
+# Copyright 2013-2021 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 Coral(CMakePackage):
+ """CORAL is an abstraction layer with an SQL-free API to access data stored
+ using relational database technologies. It is used directly by
+ experiment-specific applications and internally by COOL."""
+
+ homepage = "https://coral-cool.docs.cern.ch/"
+ git = "https://gitlab.cern.ch/lcgcoral/coral.git"
+
+ tags = ['hep']
+
+ version('3.3.3', tag='CORAL_3_3_3')
+ variant('binary_tag', default='auto')
+
+ depends_on('ninja')
+ depends_on('ccache')
+ depends_on('boost')
+ depends_on('cppunit')
+ depends_on('expat')
+ depends_on('frontier-client')
+ depends_on('libaio')
+ depends_on('mariadb')
+ depends_on('python')
+# depends_on('qmtest')
+ depends_on('xerces-c')
+ depends_on('sqlite')
+ depends_on('gperftools')
+ depends_on('igprof')
+ depends_on('libunwind')
+ depends_on('valgrind')
+ depends_on('oracle-instant-client')
+
+ def determine_binary_tag(self):
+ # As far as I can tell from reading the source code, `binary_tag`
+ # can be almost arbitraryThe only real difference it makes is
+ # disabling oracle dependency for non-x86 platforms
+ if self.spec.variants['binary_tag'].value != 'auto':
+ return self.spec.variants['binary_tag'].value
+
+ binary_tag = str(self.spec.target.family) + \
+ '-' + self.spec.os + \
+ '-' + self.spec.compiler.name + str(self.spec.compiler.version.joined) + \
+ ('-opt' if 'Rel' in self.spec.variants['build_type'].value else '-dbg')
+
+ return binary_tag
+
+ def cmake_args(self):
+ args = ['-DBINARY_TAG=' + self.determine_binary_tag()]
+ if self.spec['python'].version >= Version("3.0.0"):
+ args.append('-DLCG_python3=on')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/corenlp/package.py b/var/spack/repos/builtin/packages/corenlp/package.py
index 6cb1325e92..69d56b94c3 100644
--- a/var/spack/repos/builtin/packages/corenlp/package.py
+++ b/var/spack/repos/builtin/packages/corenlp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/coreutils/package.py b/var/spack/repos/builtin/packages/coreutils/package.py
index 569831dac7..fb1aed063a 100644
--- a/var/spack/repos/builtin/packages/coreutils/package.py
+++ b/var/spack/repos/builtin/packages/coreutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,9 +13,10 @@ class Coreutils(AutotoolsPackage, GNUMirrorPackage):
operating system.
"""
- homepage = 'http://www.gnu.org/software/coreutils/'
+ homepage = 'https://www.gnu.org/software/coreutils/'
gnu_mirror_path = 'coreutils/coreutils-8.26.tar.xz'
+ version('8.32', sha256='4458d8de7849df44ccab15e16b1548b285224dbba5f08fac070c1c0e0bcc4cfa')
version('8.31', sha256='ff7a9c918edce6b4f4b2725e3f9b37b0c4d193531cac49a48b56c4d0d3a9e9fd')
version('8.30', sha256='e831b3a86091496cdba720411f9748de81507798f6130adeaef872d206e1b057')
version('8.29', sha256='92d0fa1c311cacefa89853bdb53c62f4110cdfda3820346b59cbd098f40f955e')
@@ -24,6 +25,10 @@ class Coreutils(AutotoolsPackage, GNUMirrorPackage):
variant("gprefix", default=False, description="prefix commands with 'g', to avoid conflicts with OS utilities")
+ patch('https://src.fedoraproject.org/rpms/coreutils/raw/6b50cb9f/f/coreutils-8.32-ls-removed-dir.patch',
+ when='@8.32 target=aarch64:',
+ sha256='5878894375a8fda98150783430b30c0b7104899dc5522034ebcaf8c961183b7e')
+
build_directory = 'spack-build'
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/corset/package.py b/var/spack/repos/builtin/packages/corset/package.py
index c429b1dca4..443b37d74b 100644
--- a/var/spack/repos/builtin/packages/corset/package.py
+++ b/var/spack/repos/builtin/packages/corset/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,9 @@ class Corset(Package):
transcriptome assembly to gene-level counts."""
homepage = "https://github.com/Oshlack/Corset/wiki"
- url = "https://github.com/Oshlack/Corset/releases/download/version-1.06/corset-1.06-linux64.tar.gz"
+ url = "https://github.com/Oshlack/Corset/releases/download/version-1.09/corset-1.09-linux64.tar.gz"
+ version('1.09', sha256='9c349afc5a66c43e6b73c62f5d3166dac2fd06696aa40cff648226a5d0427a59')
version('1.06', sha256='4aff83844461cea1edfce3d89776236c300650fc02b497cc9f11eba42d161b60')
def url_for_version(self, version):
diff --git a/var/spack/repos/builtin/packages/cosbench/package.py b/var/spack/repos/builtin/packages/cosbench/package.py
index 2e3fd5997a..4becb709e9 100644
--- a/var/spack/repos/builtin/packages/cosbench/package.py
+++ b/var/spack/repos/builtin/packages/cosbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cosma/package.py b/var/spack/repos/builtin/packages/cosma/package.py
index 18d69605ee..ea65b41c26 100644
--- a/var/spack/repos/builtin/packages/cosma/package.py
+++ b/var/spack/repos/builtin/packages/cosma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,6 +20,7 @@ class Cosma(CMakePackage, CudaPackage):
# note: The default archives produced with github do not have the archives
# of the submodules.
version('master', branch='master', submodules=True)
+ version('2.3.0', sha256='0c01c2deb5a0cd177952178350188a62c42ce55e604d7948ac472f55bf0d4815')
version('2.2.0', sha256='1eb92a98110df595070a12193b9221eecf9d103ced8836c960f6c79a2bd553ca')
version('2.0.7', sha256='8d70bfcbda6239b6a8fbeaca138790bbe58c0c3aa576879480d2632d4936cf7e')
version('2.0.2', sha256='4f3354828bc718f3eef2f0098c3bdca3499297497a220da32db1acd57920c68d')
diff --git a/var/spack/repos/builtin/packages/cosmoflow-benchmark/package.py b/var/spack/repos/builtin/packages/cosmoflow-benchmark/package.py
index 97f1fef1d8..8124b5d8b4 100644
--- a/var/spack/repos/builtin/packages/cosmoflow-benchmark/package.py
+++ b/var/spack/repos/builtin/packages/cosmoflow-benchmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cosmomc/package.py b/var/spack/repos/builtin/packages/cosmomc/package.py
index 60374e6fbe..ea4ddf5f4b 100644
--- a/var/spack/repos/builtin/packages/cosmomc/package.py
+++ b/var/spack/repos/builtin/packages/cosmomc/package.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 fnmatch
import os
+from spack import *
+
class Cosmomc(Package):
"""CosmoMC is a Fortran 2008 Markov-Chain Monte-Carlo (MCMC) engine
@@ -16,7 +17,7 @@ class Cosmomc(Package):
importance sampling (plus a suite of scripts for building grids
of runs, plotting and presenting results)."""
- homepage = "http://cosmologist.info/cosmomc/"
+ homepage = "https://cosmologist.info/cosmomc/"
url = "https://github.com/cmbant/CosmoMC/archive/Nov2016.tar.gz"
version('2016.11', sha256='b83edbf043ff83a4dde9bc14c56a09737dbc41ffe247a8e9c9a26892ed8745ba')
diff --git a/var/spack/repos/builtin/packages/cosp2/package.py b/var/spack/repos/builtin/packages/cosp2/package.py
index 36f64a1a38..7c126a0d98 100644
--- a/var/spack/repos/builtin/packages/cosp2/package.py
+++ b/var/spack/repos/builtin/packages/cosp2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cotter/package.py b/var/spack/repos/builtin/packages/cotter/package.py
index 3614f68ef5..be58dbee14 100644
--- a/var/spack/repos/builtin/packages/cotter/package.py
+++ b/var/spack/repos/builtin/packages/cotter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/couchdb/package.py b/var/spack/repos/builtin/packages/couchdb/package.py
index c151b963f4..4498247feb 100644
--- a/var/spack/repos/builtin/packages/couchdb/package.py
+++ b/var/spack/repos/builtin/packages/couchdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Couchdb(AutotoolsPackage):
for reading and updating (add, edit, delete) database documents."""
homepage = "https://couchdb.apache.org/"
- url = "http://archive.apache.org/dist/couchdb/source/3.1.0/apache-couchdb-3.1.0.tar.gz"
+ url = "https://archive.apache.org/dist/couchdb/source/3.1.0/apache-couchdb-3.1.0.tar.gz"
version('3.1.0', sha256='4867c796a1ff6f0794b7bd3863089ea6397bd5c47544f9b97db8cdacff90f8ed')
version('3.0.1', sha256='08d61d5c779957d074d5097f28a2dfc9eb518af3c479d5318135ff31212cc522')
diff --git a/var/spack/repos/builtin/packages/cowsay/package.py b/var/spack/repos/builtin/packages/cowsay/package.py
index 05f818a9f3..5540163a96 100644
--- a/var/spack/repos/builtin/packages/cowsay/package.py
+++ b/var/spack/repos/builtin/packages/cowsay/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py
index 1a74283b3c..2d086d22a3 100644
--- a/var/spack/repos/builtin/packages/cp2k/package.py
+++ b/var/spack/repos/builtin/packages/cp2k/package.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-
+import copy
import os
import os.path
-import copy
import spack.util.environment
@@ -22,6 +21,8 @@ class Cp2k(MakefilePackage, CudaPackage):
maintainers = ['dev-zero']
+ version('8.2', sha256='2e24768720efed1a5a4a58e83e2aca502cd8b95544c21695eb0de71ed652f20a')
+ version('8.1', sha256='7f37aead120730234a60b2989d0547ae5e5498d93b1e9b5eb548c041ee8e7772')
version('7.1', sha256='ccd711a09a426145440e666310dd01cc5772ab103493c4ae6a3470898cd0addb')
version('6.1', sha256='af803558e0a6b9e9d9ce8a3ab955ba32bacd179922455424e061c82c9fefa34b')
version('5.1', sha256='e23613b593354fa82e0b8410e17d94c607a0b8c6d9b5d843528403ab09904412')
@@ -47,15 +48,11 @@ class Cp2k(MakefilePackage, CudaPackage):
description=('Enable planewave electronic structure'
' calculations via SIRIUS'))
variant('cosma', default=False, description='Use COSMA for p?gemm')
+ variant('libvori', default=False,
+ description=('Enable support for Voronoi integration'
+ ' and BQB compression'))
+ variant('spglib', default=False, description='Enable support for spglib')
- # override cuda_arch from CudaPackage since we only support one arch
- # at a time and only specific ones for which we have parameter files
- # for optimal kernels
- variant('cuda_arch',
- description='CUDA architecture',
- default='none',
- values=('none', '35', '37', '60', '70'),
- multi=False)
variant('cuda_arch_35_k20x', default=False,
description=('CP2K (resp. DBCSR) has specific parameter sets for'
' different GPU models. Enable this when building'
@@ -70,73 +67,100 @@ class Cp2k(MakefilePackage, CudaPackage):
variant('lmax',
description='Maximum supported angular momentum (HFX and others)',
default='5',
- values=tuple(map(str, HFX_LMAX_RANGE)),
+ values=[str(x) for x in HFX_LMAX_RANGE],
multi=False)
depends_on('python', type='build')
+ depends_on('python@3:', when='@8:', type='build')
depends_on('blas')
depends_on('lapack')
depends_on('fftw-api@3')
- # require libxsmm-1.11+ since 1.10 can leak file descriptors in Fortran
- depends_on('libxsmm@1.11:~header-only', when='smm=libxsmm')
- # 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='+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='+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='+libint@7.0: lmax={0}'.format(lmax))
-
- depends_on('libxc@2.2.2:3.99.0', when='+libxc@:5.5999', type='build')
- depends_on('libxc@4.0.3:4.99.0', when='+libxc@6.0:6.9', type='build')
- depends_on('libxc@4.0.3:4.99.0', when='+libxc@7.0:')
-
- depends_on('mpi@2:', when='+mpi')
- depends_on('scalapack', when='+mpi')
- depends_on('cosma+scalapack', when='+cosma')
- depends_on('cosma+cuda+scalapack', when='+cosma+cuda')
- depends_on('elpa@2011.12:2016.13+openmp', when='+openmp+elpa@:5.999')
- depends_on('elpa@2011.12:2017.11+openmp', when='+openmp+elpa@6.0:6.999')
- depends_on('elpa@2018.05:+openmp', when='+openmp+elpa@7.0:')
- depends_on('elpa@2011.12:2016.13~openmp', when='~openmp+elpa@:5.999')
- depends_on('elpa@2011.12:2017.11~openmp', when='~openmp+elpa@6.0:6.999')
- depends_on('elpa@2018.05:~openmp', when='~openmp+elpa@7.0:')
- depends_on('plumed+shared+mpi', when='+plumed+mpi')
- depends_on('plumed+shared~mpi', when='+plumed~mpi')
+ with when('smm=libxsmm'):
+ # require libxsmm-1.11+ since 1.10 can leak file descriptors in Fortran
+ depends_on('libxsmm@1.11:~header-only')
+ # use pkg-config (support added in libxsmm-1.10) to link to libxsmm
+ depends_on('pkgconfig', type='build')
+ # please set variants: smm=blas by configuring packages.yaml or install
+ # cp2k with option smm=blas on aarch64
+ conflicts('target=aarch64:', msg='libxsmm is not available on arm')
+
+ with when('+libint'):
+ # ... and in CP2K 7.0+ for linking to libint2
+ depends_on('pkgconfig', type='build', when='@7.0:')
+ # libint & libxc are always statically linked
+ depends_on('libint@1.1.4:1.2', when='@3.0:6.9')
+ 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))
+
+ with when('+libxc'):
+ depends_on('pkgconfig', type='build', when='@7.0:')
+ depends_on('libxc@2.2.2:3.99.0', when='@:5.5999', type='build')
+ depends_on('libxc@4.0.3:4.99.0', when='@6.0:6.9', type='build')
+ depends_on('libxc@4.0.3:4.99.0', when='@7.0:8.1')
+ depends_on('libxc@5.1.3:5.1.99', when='@8.2:')
+
+ with when('+mpi'):
+ depends_on('mpi@2:')
+ depends_on('scalapack')
+
+ with when('+cosma'):
+ depends_on('cosma+scalapack')
+ depends_on('cosma+cuda', when='+cuda')
+ conflicts('~mpi')
+ # COSMA support was introduced in 8+
+ conflicts('@:7.999')
+
+ with when('+elpa'):
+ conflicts('~mpi', msg='elpa requires MPI')
+ depends_on('elpa+openmp', when='+openmp')
+ depends_on('elpa~openmp', when='~openmp')
+ depends_on('elpa@2011.12:2016.13', when='@:5.999')
+ depends_on('elpa@2011.12:2017.11', when='@6.0:6.999')
+ depends_on('elpa@2018.05:2020.11.001', when='@7.0:8.2')
+ depends_on('elpa@2021.05:', when='@8.3:')
+
+ with when('+plumed'):
+ depends_on('plumed+shared')
+ depends_on('plumed+mpi', when='+mpi')
+ depends_on('plumed~mpi', when='~mpi')
# while we link statically against PEXSI, its own deps may be linked in
# dynamically, therefore can't set this as pure build-type dependency.
- depends_on('pexsi+fortran@0.9.0:0.9.999', when='+pexsi@:4.999')
- depends_on('pexsi+fortran@0.10.0:', when='+pexsi@5.0:')
+ with when('+pexsi'):
+ conflicts('~mpi', msg='pexsi requires MPI')
+ depends_on('pexsi+fortran@0.9.0:0.9.999', when='@:4.999')
+ depends_on('pexsi+fortran@0.10.0:', when='@5.0:')
- # only OpenMP should be consistenly used, all other common things
+ # only OpenMP should be consistently used, all other common things
# like ELPA, SCALAPACK are independent and Spack will ensure that
- # a consistent/compat. combination is pulled in to the dependency graph.
- depends_on('sirius@:6.999+fortran+vdwxc+shared+openmp', when='@:7.999+sirius+openmp')
- depends_on('sirius@:6.999+fortran+vdwxc+shared~openmp', when='@:7.999+sirius~openmp')
-
- depends_on('sirius@7:+fortran+vdwxc+shared+openmp', when='@8:+sirius+openmp')
+ # a consistent/compatible combination is pulled into the dependency graph.
+ with when('+sirius'):
+ depends_on('sirius+fortran+shared')
+ depends_on('sirius+openmp', when='+openmp')
+ depends_on('sirius~openmp', when='~openmp')
+ depends_on('sirius@:6.999', when='@:7.999')
+ depends_on('sirius@7:7.0.999', when='@8:8.2')
+ depends_on('sirius@7.2:', when='@8.3:')
+ conflicts('~mpi')
+ # sirius support was introduced in 7+
+ conflicts('@:6.999')
+
+ with when('+libvori'):
+ depends_on('libvori@201219:', when='@8.1', type='build')
+ depends_on('libvori@210412:', when='@8.2:', type='build')
+ # libvori support was introduced in 8+
+ conflicts('@:7.999')
# the bundled libcusmm uses numpy in the parameter prediction (v7+)
# which is written using Python 3
depends_on('py-numpy', when='@7:+cuda', type='build')
depends_on('python@3.6:', when='@7:+cuda', type='build')
- # PEXSI, ELPA, COSMA and SIRIUS depend on MPI
- conflicts('~mpi', '+pexsi')
- conflicts('~mpi', '+elpa')
- conflicts('~mpi', '+sirius')
- conflicts('~mpi', '+cosma')
- conflicts('+sirius', '@:6.999') # sirius support was introduced in 7+
- conflicts('+cosma', '@:7.999') # COSMA support was introduced in 8+
-
+ depends_on('spglib', when='+spglib')
conflicts('~cuda', '+cuda_fft')
conflicts('~cuda', '+cuda_blas')
@@ -150,16 +174,26 @@ class Cp2k(MakefilePackage, CudaPackage):
conflicts('%clang')
conflicts('%nag')
- # please set variants: smm=blas by configuring packages.yaml or install
- # cp2k with option smm=blas on aarch64
- conflicts('smm=libxsmm', when='target=aarch64:', msg='libxsmm is not available on arm')
-
conflicts('^fftw~openmp', when='+openmp')
+ conflicts('^amdfftw~openmp', when='+openmp')
conflicts('^openblas threads=none', when='+openmp')
conflicts('^openblas threads=pthreads', when='+openmp')
conflicts('~openmp', when='@8:', msg='Building without OpenMP is not supported in CP2K 8+')
+ # We only support specific cuda_archs for which we have parameter files
+ # for optimal kernels. Note that we don't override the cuda_archs property
+ # from the parent class, since the parent class defines constraints for all
+ # versions. Instead just mark all unsupported cuda archs as conflicting.
+ dbcsr_cuda_archs = ('35', '37', '60', '70')
+ cuda_msg = 'cp2k only supports cuda_arch {0}'.format(dbcsr_cuda_archs)
+
+ for arch in CudaPackage.cuda_arch_values:
+ if arch not in dbcsr_cuda_archs:
+ conflicts('+cuda', when='cuda_arch={0}'.format(arch), msg=cuda_msg)
+
+ conflicts('+cuda', when='cuda_arch=none', msg=cuda_msg)
+
@property
def makefile_architecture(self):
return '{0.architecture}-{0.compiler.name}'.format(self.spec)
@@ -176,11 +210,11 @@ class Cp2k(MakefilePackage, CudaPackage):
makefile_basename = '.'.join([
self.makefile_architecture, self.makefile_version
])
- return os.path.join('arch', makefile_basename)
+ return join_path('arch', makefile_basename)
@property
def archive_files(self):
- return [os.path.join(self.stage.source_path, self.makefile)]
+ return [join_path(self.stage.source_path, self.makefile)]
def edit(self, spec, prefix):
pkgconf = which('pkg-config')
@@ -188,6 +222,9 @@ class Cp2k(MakefilePackage, CudaPackage):
if '^fftw' in spec:
fftw = spec['fftw:openmp' if '+openmp' in spec else 'fftw']
fftw_header_dir = fftw.headers.directories[0]
+ elif '^amdfftw' in spec:
+ fftw = spec['amdfftw:openmp' if '+openmp' in spec else 'amdfftw']
+ fftw_header_dir = fftw.headers.directories[0]
elif '^intel-mkl' in spec:
fftw = spec['intel-mkl']
fftw_header_dir = fftw.headers.directories[0] + '/fftw'
@@ -199,6 +236,9 @@ class Cp2k(MakefilePackage, CudaPackage):
if os.path.exists(incdir):
fftw_header_dir = incdir
break
+ elif '^cray-fftw' in spec:
+ fftw = spec['cray-fftw']
+ fftw_header_dir = fftw.headers.directories[0]
optimization_flags = {
'gcc': [
@@ -209,8 +249,9 @@ class Cp2k(MakefilePackage, CudaPackage):
'intel': ['-O2', '-pc64', '-unroll', ],
'pgi': ['-fast'],
'nvhpc': ['-fast'],
- 'cray': ['-O2'],
+ 'cce': ['-O2'],
'xl': ['-O3'],
+ 'aocc': ['-O1'],
}
dflags = ['-DNDEBUG']
@@ -247,14 +288,22 @@ class Cp2k(MakefilePackage, CudaPackage):
'-ffree-line-length-none',
'-ggdb', # make sure we get proper Fortran backtraces
]
+ elif '%aocc' in spec:
+ fcflags += [
+ '-ffree-form',
+ '-Mbackslash',
+ ]
elif '%pgi' in spec or '%nvhpc' in spec:
fcflags += ['-Mfreeform', '-Mextend']
- elif '%cray' in spec:
+ elif '%cce' in spec:
fcflags += ['-emf', '-ffree', '-hflex_mp=strict']
elif '%xl' in spec:
fcflags += ['-qpreprocess', '-qstrict', '-q64']
ldflags += ['-Wl,--allow-multiple-definition']
+ if '%gcc@10: +mpi' in spec and spec['mpi'].name in ['mpich', 'cray-mpich']:
+ fcflags += ['-fallow-argument-mismatch'] # https://github.com/pmodels/mpich/issues/4300
+
if '+openmp' in spec:
cflags.append(self.compiler.openmp_flag)
cxxflags.append(self.compiler.openmp_flag)
@@ -262,7 +311,7 @@ class Cp2k(MakefilePackage, CudaPackage):
ldflags.append(self.compiler.openmp_flag)
nvflags.append('-Xcompiler="{0}"'.format(
self.compiler.openmp_flag))
- elif '%cray' in spec: # Cray enables OpenMP by default
+ elif '%cce' in spec: # Cray enables OpenMP by default
cflags += ['-hnoomp']
cxxflags += ['-hnoomp']
fcflags += ['-hnoomp']
@@ -281,8 +330,8 @@ class Cp2k(MakefilePackage, CudaPackage):
dflags.extend(['-D__PLUMED2'])
cppflags.extend(['-D__PLUMED2'])
libs.extend([
- os.path.join(self.spec['plumed'].prefix.lib,
- 'libplumed.{0}'.format(dso_suffix))
+ join_path(self.spec['plumed'].prefix.lib,
+ 'libplumed.{0}'.format(dso_suffix))
])
cc = spack_cc if '~mpi' in spec else spec['mpi'].mpicc
@@ -335,7 +384,7 @@ class Cp2k(MakefilePackage, CudaPackage):
if 'wannier90' in spec:
cppflags.append('-D__WANNIER90')
- wannier = os.path.join(
+ wannier = join_path(
spec['wannier90'].libs.directories[0], 'libwannier.a'
)
libs.append(wannier)
@@ -355,9 +404,9 @@ class Cp2k(MakefilePackage, CudaPackage):
# runtime due to wrong offsets into the shared library
# symbols.
libs.extend([
- os.path.join(
+ join_path(
spec['libint'].libs.directories[0], 'libderiv.a'),
- os.path.join(
+ join_path(
spec['libint'].libs.directories[0], 'libint.a'),
])
else:
@@ -374,22 +423,24 @@ class Cp2k(MakefilePackage, CudaPackage):
libs.append(str(libxc.libs))
else:
fcflags += pkgconf('--cflags', 'libxcf03', output=str).split()
- libs += pkgconf('--libs', 'libxcf03', output=str).split()
+ # some Fortran functions seem to be direct wrappers of the
+ # C functions such that we get a direct dependency on them,
+ # requiring `-lxc` to be present in addition to `-lxcf03`
+ libs += pkgconf('--libs', 'libxcf03', 'libxc', output=str).split()
if '+pexsi' in spec:
cppflags.append('-D__LIBPEXSI')
- fcflags.append('-I' + os.path.join(
+ fcflags.append('-I' + join_path(
spec['pexsi'].prefix, 'fortran'))
libs.extend([
- os.path.join(spec['pexsi'].libs.directories[0],
- 'libpexsi.a'),
- os.path.join(spec['superlu-dist'].libs.directories[0],
- 'libsuperlu_dist.a'),
- os.path.join(
+ join_path(spec['pexsi'].libs.directories[0], 'libpexsi.a'),
+ join_path(spec['superlu-dist'].libs.directories[0],
+ 'libsuperlu_dist.a'),
+ join_path(
spec['parmetis'].libs.directories[0],
'libparmetis.{0}'.format(dso_suffix)
),
- os.path.join(
+ join_path(
spec['metis'].libs.directories[0],
'libmetis.{0}'.format(dso_suffix)
),
@@ -400,11 +451,18 @@ class Cp2k(MakefilePackage, CudaPackage):
elpa_suffix = '_openmp' if '+openmp' in elpa else ''
elpa_incdir = elpa.headers.directories[0]
- fcflags += ['-I{0}'.format(os.path.join(elpa_incdir, 'modules'))]
- libs.append(os.path.join(elpa.libs.directories[0],
- ('libelpa{elpa_suffix}.{dso_suffix}'
- .format(elpa_suffix=elpa_suffix,
- dso_suffix=dso_suffix))))
+ fcflags += ['-I{0}'.format(join_path(elpa_incdir, 'modules'))]
+
+ # Currently AOCC support only static libraries of ELPA
+ if '%aocc' in spec:
+ libs.append(join_path(elpa.prefix.lib,
+ ('libelpa{elpa_suffix}.a'
+ .format(elpa_suffix=elpa_suffix))))
+ else:
+ libs.append(join_path(elpa.prefix.lib,
+ ('libelpa{elpa_suffix}.{dso_suffix}'
+ .format(elpa_suffix=elpa_suffix,
+ dso_suffix=dso_suffix))))
if spec.satisfies('@:4.999'):
if elpa.satisfies('@:2014.5.999'):
@@ -417,7 +475,7 @@ class Cp2k(MakefilePackage, CudaPackage):
cppflags.append('-D__ELPA={0}{1:02d}'
.format(elpa.version[0],
int(elpa.version[1])))
- fcflags += ['-I{0}'.format(os.path.join(elpa_incdir, 'elpa'))]
+ fcflags += ['-I{0}'.format(join_path(elpa_incdir, 'elpa'))]
if spec.satisfies('+sirius'):
sirius = spec['sirius']
@@ -439,7 +497,7 @@ class Cp2k(MakefilePackage, CudaPackage):
cppflags += ['-D__PW_CUDA']
libs += ['-lcufft', '-lcublas']
- cuda_arch = spec.variants['cuda_arch'].value
+ cuda_arch = spec.variants['cuda_arch'].value[0]
if cuda_arch:
gpuver = {
'35': 'K40',
@@ -453,12 +511,12 @@ class Cp2k(MakefilePackage, CudaPackage):
gpuver = 'K20X'
if 'smm=libsmm' in spec:
- lib_dir = os.path.join(
+ lib_dir = join_path(
'lib', self.makefile_architecture, self.makefile_version
)
mkdirp(lib_dir)
try:
- copy(env['LIBSMM_PATH'], os.path.join(lib_dir, 'libsmm.a'))
+ copy(env['LIBSMM_PATH'], join_path(lib_dir, 'libsmm.a'))
except KeyError:
raise KeyError('Point environment variable LIBSMM_PATH to '
'the absolute path of the libsmm.a file')
@@ -479,6 +537,19 @@ class Cp2k(MakefilePackage, CudaPackage):
output=str).split()
libs += pkgconf('--libs', 'libxsmmf', output=str).split()
+ if '+libvori' in spec:
+ cppflags += ['-D__LIBVORI']
+ libvori = spec['libvori'].libs
+ ldflags += [libvori.search_flags]
+ libs += libvori
+ libs += ['-lstdc++']
+
+ if '+spglib' in spec:
+ cppflags += ['-D__SPGLIB']
+ spglib = spec['spglib'].libs
+ ldflags += [spglib.search_flags]
+ libs += spglib
+
dflags.extend(cppflags)
cflags.extend(cppflags)
cxxflags.extend(cppflags)
@@ -516,7 +587,7 @@ class Cp2k(MakefilePackage, CudaPackage):
if spec.satisfies('+cuda'):
mkf.write('NVCC = {0}\n'.format(
- os.path.join(spec['cuda'].prefix, 'bin', 'nvcc')))
+ join_path(spec['cuda'].prefix, 'bin', 'nvcc')))
# Write compiler flags to file
def fflags(var, lst):
@@ -547,7 +618,7 @@ class Cp2k(MakefilePackage, CudaPackage):
if self.spec.satisfies('@:6.9999'):
# prior to version 7.1 was the Makefile located in makefiles/
- build_dir = os.path.join(build_dir, 'makefiles')
+ build_dir = join_path(build_dir, 'makefiles')
return build_dir
@@ -559,18 +630,21 @@ class Cp2k(MakefilePackage, CudaPackage):
]
def build(self, spec, prefix):
+ if len(spec.variants['cuda_arch'].value) > 1:
+ raise InstallError("cp2k supports only one cuda_arch at a time")
+
# Apparently the Makefile bases its paths on PWD
# so we need to set PWD = self.build_directory
with spack.util.environment.set_env(PWD=self.build_directory):
super(Cp2k, self).build(spec, prefix)
def install(self, spec, prefix):
- exe_dir = os.path.join('exe', self.makefile_architecture)
+ exe_dir = join_path('exe', self.makefile_architecture)
install_tree(exe_dir, self.prefix.bin)
install_tree('data', self.prefix.share.data)
def check(self):
- data_dir = os.path.join(self.stage.source_path, 'data')
+ data_dir = join_path(self.stage.source_path, 'data')
# CP2K < 7 still uses $PWD to detect the current working dir
# and Makefile is in a subdir, account for both facts here:
diff --git a/var/spack/repos/builtin/packages/cpio/package.py b/var/spack/repos/builtin/packages/cpio/package.py
index d725ef3955..e3cc5a27d7 100644
--- a/var/spack/repos/builtin/packages/cpio/package.py
+++ b/var/spack/repos/builtin/packages/cpio/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 re
+from spack import *
+
class Cpio(AutotoolsPackage, GNUMirrorPackage):
"""GNU cpio copies files into or out of a cpio or tar archive. The
@@ -32,7 +33,7 @@ class Cpio(AutotoolsPackage, GNUMirrorPackage):
spec = self.spec
if name == 'cflags':
- if '%intel@:18.999' in spec:
+ if '%intel@:17.999' in spec:
flags.append('-no-gcc')
elif '%clang' in spec or '%fj' in spec:
diff --git a/var/spack/repos/builtin/packages/cpmd/package.py b/var/spack/repos/builtin/packages/cpmd/package.py
new file mode 100644
index 0000000000..0e3453c6b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cpmd/package.py
@@ -0,0 +1,106 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Cpmd(MakefilePackage):
+ """The CPMD code is a parallelized plane wave / pseudopotential
+ implementation of Density Functional Theory, particularly
+ designed for ab-initio molecular dynamics.
+ Move to new directory, download CPMD main archive and patch.to.XXXXs
+ manually, and run Spack"""
+
+ homepage = "https://www.cpmd.org/wordpress/"
+ basedir = os.getcwd()
+ url = "file://{0}/cpmd-v4.3.tar.gz".format(basedir)
+ manual_download = True
+
+ version('4.3', sha256='4f31ddf045f1ae5d6f25559d85ddbdab4d7a6200362849df833632976d095df4')
+
+ variant('omp', description='Enables the use of OMP instructions',
+ default=False)
+ variant('mpi', description='Build with MPI support', default=False)
+
+ depends_on('lapack')
+ depends_on('mpi', when='+mpi')
+
+ conflicts('^openblas threads=none', when='+omp')
+ conflicts('^openblas threads=pthreads', when='+omp')
+
+ patch('file://{0}/patch.to.4612'.format(basedir), sha256='3b7d91e04c40418ad958069234ec7253fbf6c4be361a1d5cfd804774eeb44915', level=0, when='@4.3')
+ patch('file://{0}/patch.to.4615'.format(basedir), sha256='5ec5790fb6ca64632bcc1b0f5b8f3423c54455766a0979ff4136624bbe8d49eb', level=0, when='@4.3')
+ patch('file://{0}/patch.to.4616'.format(basedir), sha256='ac0bc215c4259f55da4dc59803fe636f797e241f8a01974e05730c9778ad44c4', level=0, when='@4.3')
+ patch('file://{0}/patch.to.4621'.format(basedir), sha256='2d2bc7e37246032fc354f51da7dbdb5a219dd228867399931b0e94da1265d5ca', level=0, when='@4.3')
+ patch('file://{0}/patch.to.4624'.format(basedir), sha256='0a19687528264bf91c9f50ffdc0b920a8511eecf5259b667c8c29350f9dabc53', level=0, when='@4.3')
+
+ def edit(self, spec, prefix):
+ # patch configure file
+ cbase = 'LINUX-GFORTRAN'
+ cp = FileFilter(join_path('configure', cbase))
+ # Compilers
+ if spec.satisfies('+mpi'):
+ fc = spec["mpi"].mpifc
+ cc = spec["mpi"].mpicc
+ else:
+ fc = spack_fc
+ cc = spack_cc
+
+ cp.filter('FC=.+', "FC='{0}'".format(fc))
+ cp.filter('CC=.+', "CC='{0}'".format(cc))
+ cp.filter('LD=.+', "LD='{0}'".format(fc))
+
+ # MPI flag
+ if spec.satisfies('+mpi'):
+ cp.filter('-D__Linux', '-D__Linux -D__PARALLEL')
+
+ # OMP flag
+ if spec.satisfies('+omp'):
+ cp.filter('-fopenmp', self.compiler.openmp_flag)
+
+ # lapack
+ cp.filter(
+ 'LIBS=.+',
+ "LIBS='{0}'".format(spec['lapack'].libs.ld_flags)
+ )
+
+ # LFLAGS
+ cp.filter("'-static '", '')
+
+ # Compiler specific
+ if spec.satisfies('%fj'):
+ cp.filter('-ffixed-form', '-Fixed')
+ cp.filter('-ffree-line-length-none', '')
+ cp.filter('-falign-commons', '-Kalign_commons')
+
+ # create Makefile
+ bash = which('bash')
+ if spec.satisfies('+omp'):
+ bash('./configure.sh', '-omp', cbase)
+ else:
+ bash('./configure.sh', cbase)
+
+ def install(self, spec, prefix):
+ install_tree('.', prefix)
+
+ def test(self):
+ test_dir = self.test_suite.current_test_data_dir
+ test_file = join_path(test_dir, '1-h2o-pbc-geoopt.inp')
+ opts = []
+ if self.spec.satisfies('+mpi'):
+ exe_name = self.spec['mpi'].prefix.bin.mpirun
+ opts.extend(['-n', '2'])
+ opts.append(join_path(self.prefix.bin, 'cpmd.x'))
+ else:
+ exe_name = 'cpmd.x'
+ opts.append(test_file)
+ opts.append(test_dir)
+ expected = ['2 1 H O 1.84444 0.97604',
+ '3 1 H O 1.84444 0.97604',
+ '2 1 3 H O H 103.8663'
+ ]
+ self.run_test(exe_name, options=opts, expected=expected)
diff --git a/var/spack/repos/builtin/packages/cpmd/test/1-h2o-pbc-geoopt.inp b/var/spack/repos/builtin/packages/cpmd/test/1-h2o-pbc-geoopt.inp
new file mode 100644
index 0000000000..38fc0165cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cpmd/test/1-h2o-pbc-geoopt.inp
@@ -0,0 +1,51 @@
+&INFO
+single water molecule with pbc.
+default geometry optimization
+&END
+
+&CPMD
+ OPTIMIZE GEOMETRY XYZ
+ HESSIAN UNITY
+ CONVERGENCE ORBITALS
+ 1.0d-7
+ CONVERGENCE GEOMETRY
+ 3.0d-4
+ ODIIS
+ 5
+ MAXSTEP
+ 100
+ MAXCPUTIME
+ 1500
+
+ STRUCTURE BONDS ANGLES
+&END
+
+&DFT
+ FUNCTIONAL BLYP
+ GC-CUTOFF
+ 1.0d-06
+&END
+
+&SYSTEM
+ SYMMETRY
+ 1
+ CELL
+ 20.0 1.0 1.0 0.0 0.0 0.0
+ CUTOFF
+ 70.0
+&END
+
+&ATOMS
+
+*O_MT_BLYP.psp KLEINMAN-BYLANDER
+ LMAX=P
+ 1
+ 10.0 10.0 10.0
+
+*H_CVB_BLYP.psp
+ LMAX=S
+ 2
+ 8.5 9.0 10.0
+ 11.5 9.0 10.0
+
+&END
diff --git a/var/spack/repos/builtin/packages/cpmd/test/H_CVB_BLYP.psp b/var/spack/repos/builtin/packages/cpmd/test/H_CVB_BLYP.psp
new file mode 100644
index 0000000000..a9c4ec162a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cpmd/test/H_CVB_BLYP.psp
@@ -0,0 +1,28 @@
+&ATOM
+ Z = 1
+ ZV = 1
+ XC = 1312 .666667
+ TYPE = NORMCONSERVING CAR
+&END
+&INFO
+ ============================================================
+ | hydrogen pseudopotential with |
+ | Exchange-Correlation Functional : |
+ | Slater exchange : .6667 |
+ | LDA correlation : Lee-Yang-Parr |
+ | Exchange GC : Becke (1988) |
+ | Correlation GC : Lee-Yang-Parr |
+ | Von Barth-Car normconserving PP after P. Giannozzi |
+ | ALPHA(CORE): .25 |
+ | .2829559 -1.961599 .4051810 |
+ | Note this is the PP used by Michiel Sprik |
+ ============================================================
+&END
+&POTENTIAL
+ CAR
+ 0.25000
+ 0.2829559 -1.9615990 0.405181
+ 0.2829559 -1.9615990 0.405181
+ 0.2829559 -1.9615990 0.405181
+&END
+
diff --git a/var/spack/repos/builtin/packages/cpmd/test/O_MT_BLYP.psp b/var/spack/repos/builtin/packages/cpmd/test/O_MT_BLYP.psp
new file mode 100644
index 0000000000..f73f83750e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cpmd/test/O_MT_BLYP.psp
@@ -0,0 +1,1301 @@
+&ATOM
+ Z = 8
+ ZV = 6
+ XC = 1312 .666667
+ TYPE = NORMCONSERVING NUMERIC
+&END
+&INFO
+ ============================================================
+ | Pseudopotential Report Thu Nov 30 13:19:26 1995 |
+ ------------------------------------------------------------
+ | Atomic Symbol : O |
+ | Atomic Number : 8 |
+ | Number of core states : 1 |
+ | Number of valence states : 2 |
+ | Exchange-Correlation Functional : |
+ | Slater exchange : .6667 |
+ | LDA correlation : Lee-Yang-Parr |
+ | Exchange GC : Becke (1988) |
+ | Correlation GC : Lee-Yang-Parr |
+ | Electron Configuration : N L Occupation |
+ | 1 S 2.0000 |
+ | 2 S 2.0000 |
+ | 2 P 4.0000 |
+ | Full Potential Total Energy -75.023693 |
+ | Trouiller-Martins normconserving PP |
+ | n l rc energy |
+ | 2 S 1.0500 -.87404 |
+ | 2 P 1.0500 -.33186 |
+ | 3 D 1.0500 -.33186 |
+ | Number of Mesh Points : 631 |
+ | Pseudoatom Total Energy -15.775323 |
+ ============================================================
+&END
+&POTENTIAL
+ 631
+ .78125000E-03 -.10010538E+02 -.25377186E+02 -.20655870E+02
+ .79492188E-03 -.10010538E+02 -.25377186E+02 -.20655870E+02
+ .80883301E-03 -.99910402E+01 -.25357688E+02 -.20636372E+02
+ .82298759E-03 -.10064317E+02 -.25430964E+02 -.20709649E+02
+ .83738987E-03 -.10143116E+02 -.25509764E+02 -.20788448E+02
+ .85204419E-03 -.10120596E+02 -.25487243E+02 -.20765927E+02
+ .86695496E-03 -.10125910E+02 -.25492557E+02 -.20771242E+02
+ .88212668E-03 -.10123540E+02 -.25490187E+02 -.20768871E+02
+ .89756389E-03 -.10123253E+02 -.25489900E+02 -.20768584E+02
+ .91327126E-03 -.10122361E+02 -.25489008E+02 -.20767693E+02
+ .92925351E-03 -.10121603E+02 -.25488251E+02 -.20766935E+02
+ .94551544E-03 -.10120775E+02 -.25487422E+02 -.20766107E+02
+ .96206196E-03 -.10119931E+02 -.25486579E+02 -.20765263E+02
+ .97889805E-03 -.10119056E+02 -.25485703E+02 -.20764388E+02
+ .99602877E-03 -.10118152E+02 -.25484800E+02 -.20763484E+02
+ .10134593E-02 -.10117218E+02 -.25483866E+02 -.20762550E+02
+ .10311948E-02 -.10116253E+02 -.25482901E+02 -.20761585E+02
+ .10492407E-02 -.10115256E+02 -.25481903E+02 -.20760587E+02
+ .10676024E-02 -.10114225E+02 -.25480872E+02 -.20759557E+02
+ .10862855E-02 -.10113160E+02 -.25479807E+02 -.20758492E+02
+ .11052955E-02 -.10112059E+02 -.25478707E+02 -.20757391E+02
+ .11246381E-02 -.10110922E+02 -.25477570E+02 -.20756254E+02
+ .11443193E-02 -.10109747E+02 -.25476395E+02 -.20755079E+02
+ .11643449E-02 -.10108534E+02 -.25475181E+02 -.20753865E+02
+ .11847209E-02 -.10107280E+02 -.25473927E+02 -.20752611E+02
+ .12054535E-02 -.10105984E+02 -.25472632E+02 -.20751316E+02
+ .12265490E-02 -.10104646E+02 -.25471293E+02 -.20749978E+02
+ .12480136E-02 -.10103264E+02 -.25469911E+02 -.20748595E+02
+ .12698538E-02 -.10101836E+02 -.25468483E+02 -.20747167E+02
+ .12920763E-02 -.10100361E+02 -.25467008E+02 -.20745693E+02
+ .13146876E-02 -.10098838E+02 -.25465485E+02 -.20744169E+02
+ .13376946E-02 -.10097265E+02 -.25463912E+02 -.20742596E+02
+ .13611043E-02 -.10095640E+02 -.25462288E+02 -.20740972E+02
+ .13849236E-02 -.10093963E+02 -.25460610E+02 -.20739295E+02
+ .14091598E-02 -.10092231E+02 -.25458878E+02 -.20737563E+02
+ .14338201E-02 -.10090443E+02 -.25457090E+02 -.20735774E+02
+ .14589119E-02 -.10088597E+02 -.25455244E+02 -.20733928E+02
+ .14844429E-02 -.10086691E+02 -.25453338E+02 -.20732023E+02
+ .15104206E-02 -.10084724E+02 -.25451371E+02 -.20730055E+02
+ .15368530E-02 -.10082693E+02 -.25449340E+02 -.20728025E+02
+ .15637479E-02 -.10080597E+02 -.25447245E+02 -.20725929E+02
+ .15911135E-02 -.10078435E+02 -.25445082E+02 -.20723767E+02
+ .16189580E-02 -.10076203E+02 -.25442851E+02 -.20721535E+02
+ .16472898E-02 -.10073900E+02 -.25440548E+02 -.20719232E+02
+ .16761173E-02 -.10071525E+02 -.25438172E+02 -.20716857E+02
+ .17054494E-02 -.10069074E+02 -.25435722E+02 -.20714406E+02
+ .17352948E-02 -.10066546E+02 -.25433194E+02 -.20711878E+02
+ .17656624E-02 -.10063939E+02 -.25430586E+02 -.20709270E+02
+ .17965615E-02 -.10061250E+02 -.25427897E+02 -.20706581E+02
+ .18280013E-02 -.10058476E+02 -.25425124E+02 -.20703808E+02
+ .18599914E-02 -.10055617E+02 -.25422265E+02 -.20700949E+02
+ .18925412E-02 -.10052669E+02 -.25419317E+02 -.20698001E+02
+ .19256607E-02 -.10049630E+02 -.25416278E+02 -.20694962E+02
+ .19593597E-02 -.10046498E+02 -.25413145E+02 -.20691830E+02
+ .19936485E-02 -.10043269E+02 -.25409917E+02 -.20688601E+02
+ .20285374E-02 -.10039942E+02 -.25406590E+02 -.20685274E+02
+ .20640368E-02 -.10036514E+02 -.25403162E+02 -.20681846E+02
+ .21001574E-02 -.10032982E+02 -.25399630E+02 -.20678314E+02
+ .21369102E-02 -.10029344E+02 -.25395991E+02 -.20674676E+02
+ .21743061E-02 -.10025596E+02 -.25392244E+02 -.20670928E+02
+ .22123565E-02 -.10021736E+02 -.25388384E+02 -.20667068E+02
+ .22510727E-02 -.10017762E+02 -.25384409E+02 -.20663094E+02
+ .22904665E-02 -.10013670E+02 -.25380317E+02 -.20659001E+02
+ .23305496E-02 -.10009457E+02 -.25376104E+02 -.20654788E+02
+ .23713343E-02 -.10005120E+02 -.25371767E+02 -.20650452E+02
+ .24128326E-02 -.10000657E+02 -.25367304E+02 -.20645988E+02
+ .24550572E-02 -.99960636E+01 -.25362711E+02 -.20641395E+02
+ .24980207E-02 -.99913378E+01 -.25357985E+02 -.20636670E+02
+ .25417360E-02 -.99864761E+01 -.25353124E+02 -.20631808E+02
+ .25862164E-02 -.99814752E+01 -.25348123E+02 -.20626807E+02
+ .26314752E-02 -.99763320E+01 -.25342979E+02 -.20621664E+02
+ .26775260E-02 -.99710432E+01 -.25337691E+02 -.20616375E+02
+ .27243827E-02 -.99656055E+01 -.25332253E+02 -.20610937E+02
+ .27720594E-02 -.99600155E+01 -.25326663E+02 -.20605347E+02
+ .28205705E-02 -.99542699E+01 -.25320917E+02 -.20599602E+02
+ .28699305E-02 -.99483652E+01 -.25315013E+02 -.20593697E+02
+ .29201542E-02 -.99422980E+01 -.25308945E+02 -.20587630E+02
+ .29712569E-02 -.99360648E+01 -.25302712E+02 -.20581397E+02
+ .30232539E-02 -.99296622E+01 -.25296310E+02 -.20574994E+02
+ .30761609E-02 -.99230864E+01 -.25289734E+02 -.20568418E+02
+ .31299937E-02 -.99163340E+01 -.25282981E+02 -.20561666E+02
+ .31847686E-02 -.99094013E+01 -.25276049E+02 -.20554733E+02
+ .32405020E-02 -.99022847E+01 -.25268932E+02 -.20547616E+02
+ .32972108E-02 -.98949805E+01 -.25261628E+02 -.20540312E+02
+ .33549120E-02 -.98874849E+01 -.25254132E+02 -.20532817E+02
+ .34136230E-02 -.98797944E+01 -.25246442E+02 -.20525126E+02
+ .34733614E-02 -.98719050E+01 -.25238552E+02 -.20517237E+02
+ .35341452E-02 -.98638131E+01 -.25230460E+02 -.20509145E+02
+ .35959927E-02 -.98555147E+01 -.25222162E+02 -.20500846E+02
+ .36589226E-02 -.98470062E+01 -.25213654E+02 -.20492338E+02
+ .37229538E-02 -.98382836E+01 -.25204931E+02 -.20483615E+02
+ .37881054E-02 -.98293432E+01 -.25195991E+02 -.20474675E+02
+ .38543973E-02 -.98201809E+01 -.25186828E+02 -.20465513E+02
+ .39218492E-02 -.98107929E+01 -.25177440E+02 -.20456125E+02
+ .39904816E-02 -.98011753E+01 -.25167823E+02 -.20446507E+02
+ .40603150E-02 -.97913243E+01 -.25157972E+02 -.20436656E+02
+ .41313705E-02 -.97812357E+01 -.25147883E+02 -.20426567E+02
+ .42036695E-02 -.97709058E+01 -.25137553E+02 -.20416238E+02
+ .42772337E-02 -.97603305E+01 -.25126978E+02 -.20405662E+02
+ .43520853E-02 -.97495060E+01 -.25116153E+02 -.20394838E+02
+ .44282468E-02 -.97384282E+01 -.25105076E+02 -.20383760E+02
+ .45057411E-02 -.97270932E+01 -.25093741E+02 -.20372425E+02
+ .45845916E-02 -.97154971E+01 -.25082144E+02 -.20360829E+02
+ .46648220E-02 -.97036358E+01 -.25070283E+02 -.20348968E+02
+ .47464564E-02 -.96915056E+01 -.25058153E+02 -.20336837E+02
+ .48295193E-02 -.96791024E+01 -.25045750E+02 -.20324434E+02
+ .49140359E-02 -.96664223E+01 -.25033070E+02 -.20311754E+02
+ .50000316E-02 -.96534615E+01 -.25020109E+02 -.20298793E+02
+ .50875321E-02 -.96402160E+01 -.25006863E+02 -.20285548E+02
+ .51765639E-02 -.96266820E+01 -.24993329E+02 -.20272014E+02
+ .52671538E-02 -.96128556E+01 -.24979503E+02 -.20258187E+02
+ .53593290E-02 -.95987331E+01 -.24965380E+02 -.20244065E+02
+ .54531172E-02 -.95843108E+01 -.24950958E+02 -.20229642E+02
+ .55485468E-02 -.95695847E+01 -.24936232E+02 -.20214916E+02
+ .56456464E-02 -.95545514E+01 -.24921199E+02 -.20199883E+02
+ .57444452E-02 -.95392070E+01 -.24905854E+02 -.20184539E+02
+ .58449730E-02 -.95235481E+01 -.24890195E+02 -.20168880E+02
+ .59472600E-02 -.95075711E+01 -.24874218E+02 -.20152903E+02
+ .60513370E-02 -.94912725E+01 -.24857920E+02 -.20136604E+02
+ .61572354E-02 -.94746489E+01 -.24841296E+02 -.20119980E+02
+ .62649871E-02 -.94576970E+01 -.24824344E+02 -.20103028E+02
+ .63746243E-02 -.94404134E+01 -.24807060E+02 -.20085745E+02
+ .64861803E-02 -.94227951E+01 -.24789442E+02 -.20068127E+02
+ .65996884E-02 -.94048388E+01 -.24771486E+02 -.20050170E+02
+ .67151830E-02 -.93865417E+01 -.24753189E+02 -.20031873E+02
+ .68326987E-02 -.93679008E+01 -.24734548E+02 -.20013232E+02
+ .69522709E-02 -.93489132E+01 -.24715560E+02 -.19994245E+02
+ .70739356E-02 -.93295764E+01 -.24696223E+02 -.19974908E+02
+ .71977295E-02 -.93098877E+01 -.24676534E+02 -.19955219E+02
+ .73236898E-02 -.92898447E+01 -.24656491E+02 -.19935176E+02
+ .74518543E-02 -.92694451E+01 -.24636092E+02 -.19914776E+02
+ .75822618E-02 -.92486867E+01 -.24615333E+02 -.19894018E+02
+ .77149514E-02 -.92275675E+01 -.24594214E+02 -.19872899E+02
+ .78499630E-02 -.92060857E+01 -.24572732E+02 -.19851417E+02
+ .79873374E-02 -.91842395E+01 -.24550886E+02 -.19829571E+02
+ .81271158E-02 -.91620274E+01 -.24528674E+02 -.19807359E+02
+ .82693403E-02 -.91394480E+01 -.24506094E+02 -.19784779E+02
+ .84140538E-02 -.91165002E+01 -.24483146E+02 -.19761831E+02
+ .85612997E-02 -.90931831E+01 -.24459829E+02 -.19738514E+02
+ .87111224E-02 -.90694957E+01 -.24436142E+02 -.19714827E+02
+ .88635671E-02 -.90454376E+01 -.24412083E+02 -.19690768E+02
+ .90186795E-02 -.90210085E+01 -.24387654E+02 -.19666339E+02
+ .91765064E-02 -.89962082E+01 -.24362854E+02 -.19641539E+02
+ .93370953E-02 -.89710368E+01 -.24337682E+02 -.19616367E+02
+ .95004944E-02 -.89454946E+01 -.24312140E+02 -.19590825E+02
+ .96667531E-02 -.89195824E+01 -.24286228E+02 -.19564913E+02
+ .98359213E-02 -.88933010E+01 -.24259946E+02 -.19538631E+02
+ .10008050E-01 -.88666515E+01 -.24233296E+02 -.19511982E+02
+ .10183191E-01 -.88396353E+01 -.24206280E+02 -.19484965E+02
+ .10361397E-01 -.88122541E+01 -.24178899E+02 -.19457584E+02
+ .10542721E-01 -.87845098E+01 -.24151154E+02 -.19429840E+02
+ .10727219E-01 -.87564049E+01 -.24123049E+02 -.19401735E+02
+ .10914945E-01 -.87279418E+01 -.24094586E+02 -.19373271E+02
+ .11105957E-01 -.86991234E+01 -.24065767E+02 -.19344453E+02
+ .11300311E-01 -.86699530E+01 -.24036596E+02 -.19315282E+02
+ .11498066E-01 -.86404340E+01 -.24007077E+02 -.19285763E+02
+ .11699282E-01 -.86105704E+01 -.23977213E+02 -.19255899E+02
+ .11904020E-01 -.85803662E+01 -.23947009E+02 -.19225695E+02
+ .12112340E-01 -.85498262E+01 -.23916468E+02 -.19195155E+02
+ .12324306E-01 -.85189550E+01 -.23885596E+02 -.19164283E+02
+ .12539981E-01 -.84877580E+01 -.23854399E+02 -.19133086E+02
+ .12759431E-01 -.84562406E+01 -.23822881E+02 -.19101568E+02
+ .12982721E-01 -.84244089E+01 -.23791049E+02 -.19069736E+02
+ .13209919E-01 -.83922692E+01 -.23758909E+02 -.19037596E+02
+ .13441092E-01 -.83598280E+01 -.23726467E+02 -.19005155E+02
+ .13676311E-01 -.83270923E+01 -.23693731E+02 -.18972419E+02
+ .13915647E-01 -.82940696E+01 -.23660707E+02 -.18939396E+02
+ .14159171E-01 -.82607676E+01 -.23627405E+02 -.18906093E+02
+ .14406956E-01 -.82271943E+01 -.23593831E+02 -.18872520E+02
+ .14659078E-01 -.81933582E+01 -.23559994E+02 -.18838683E+02
+ .14915612E-01 -.81592682E+01 -.23525903E+02 -.18804593E+02
+ .15176635E-01 -.81249333E+01 -.23491567E+02 -.18770257E+02
+ .15442226E-01 -.80903631E+01 -.23456996E+02 -.18735686E+02
+ .15712465E-01 -.80555675E+01 -.23422199E+02 -.18700890E+02
+ .15987433E-01 -.80205567E+01 -.23387187E+02 -.18665879E+02
+ .16267213E-01 -.79853412E+01 -.23351971E+02 -.18630663E+02
+ .16551890E-01 -.79499320E+01 -.23316560E+02 -.18595253E+02
+ .16841548E-01 -.79143401E+01 -.23280967E+02 -.18559660E+02
+ .17136275E-01 -.78785773E+01 -.23245202E+02 -.18523896E+02
+ .17436160E-01 -.78426552E+01 -.23209279E+02 -.18487973E+02
+ .17741292E-01 -.78065859E+01 -.23173208E+02 -.18451903E+02
+ .18051765E-01 -.77703821E+01 -.23137002E+02 -.18415698E+02
+ .18367671E-01 -.77340562E+01 -.23100674E+02 -.18379371E+02
+ .18689105E-01 -.76976212E+01 -.23064237E+02 -.18342935E+02
+ .19016164E-01 -.76610904E+01 -.23027704E+02 -.18306403E+02
+ .19348947E-01 -.76244772E+01 -.22991089E+02 -.18269788E+02
+ .19687554E-01 -.75877952E+01 -.22954404E+02 -.18233105E+02
+ .20032086E-01 -.75510583E+01 -.22917664E+02 -.18196366E+02
+ .20382648E-01 -.75142805E+01 -.22880884E+02 -.18159587E+02
+ .20739344E-01 -.74774761E+01 -.22844076E+02 -.18122780E+02
+ .21102282E-01 -.74406593E+01 -.22807256E+02 -.18085962E+02
+ .21471572E-01 -.74038447E+01 -.22770437E+02 -.18049145E+02
+ .21847325E-01 -.73670469E+01 -.22733636E+02 -.18012345E+02
+ .22229653E-01 -.73302807E+01 -.22696865E+02 -.17975576E+02
+ .22618672E-01 -.72935607E+01 -.22660141E+02 -.17938854E+02
+ .23014499E-01 -.72569018E+01 -.22623477E+02 -.17902192E+02
+ .23417252E-01 -.72203190E+01 -.22586889E+02 -.17865606E+02
+ .23827054E-01 -.71838270E+01 -.22550392E+02 -.17829111E+02
+ .24244028E-01 -.71474408E+01 -.22513999E+02 -.17792721E+02
+ .24668298E-01 -.71111751E+01 -.22477727E+02 -.17756452E+02
+ .25099994E-01 -.70750448E+01 -.22441590E+02 -.17720318E+02
+ .25539243E-01 -.70390646E+01 -.22405603E+02 -.17684333E+02
+ .25986180E-01 -.70032491E+01 -.22369779E+02 -.17648513E+02
+ .26440938E-01 -.69676127E+01 -.22334134E+02 -.17612872E+02
+ .26903655E-01 -.69321699E+01 -.22298683E+02 -.17577424E+02
+ .27374469E-01 -.68969347E+01 -.22263438E+02 -.17542183E+02
+ .27853522E-01 -.68619212E+01 -.22228414E+02 -.17507164E+02
+ .28340959E-01 -.68271431E+01 -.22193625E+02 -.17472379E+02
+ .28836925E-01 -.67926141E+01 -.22159084E+02 -.17437843E+02
+ .29341572E-01 -.67583473E+01 -.22124804E+02 -.17403569E+02
+ .29855049E-01 -.67243559E+01 -.22090799E+02 -.17369570E+02
+ .30377512E-01 -.66906525E+01 -.22057081E+02 -.17335858E+02
+ .30909119E-01 -.66572495E+01 -.22023662E+02 -.17302446E+02
+ .31450028E-01 -.66241591E+01 -.21990555E+02 -.17269346E+02
+ .32000404E-01 -.65913929E+01 -.21957771E+02 -.17236569E+02
+ .32560411E-01 -.65589624E+01 -.21925321E+02 -.17204128E+02
+ .33130218E-01 -.65268785E+01 -.21893217E+02 -.17172032E+02
+ .33709997E-01 -.64951518E+01 -.21861468E+02 -.17140292E+02
+ .34299922E-01 -.64637925E+01 -.21830084E+02 -.17108919E+02
+ .34900171E-01 -.64328102E+01 -.21799077E+02 -.17077922E+02
+ .35510924E-01 -.64022143E+01 -.21768453E+02 -.17047311E+02
+ .36132365E-01 -.63720136E+01 -.21738224E+02 -.17017093E+02
+ .36764681E-01 -.63422165E+01 -.21708395E+02 -.16987278E+02
+ .37408063E-01 -.63128309E+01 -.21678976E+02 -.16957873E+02
+ .38062704E-01 -.62838641E+01 -.21649973E+02 -.16928885E+02
+ .38728801E-01 -.62553230E+01 -.21621393E+02 -.16900322E+02
+ .39406555E-01 -.62272141E+01 -.21593243E+02 -.16872189E+02
+ .40096170E-01 -.61995433E+01 -.21565528E+02 -.16844493E+02
+ .40797853E-01 -.61723158E+01 -.21538253E+02 -.16817238E+02
+ .41511816E-01 -.61455365E+01 -.21511423E+02 -.16790429E+02
+ .42238272E-01 -.61192098E+01 -.21485041E+02 -.16764071E+02
+ .42977442E-01 -.60933394E+01 -.21459112E+02 -.16738167E+02
+ .43729547E-01 -.60679286E+01 -.21433639E+02 -.16712720E+02
+ .44494814E-01 -.60429801E+01 -.21408623E+02 -.16687732E+02
+ .45273474E-01 -.60184960E+01 -.21384067E+02 -.16663207E+02
+ .46065760E-01 -.59944780E+01 -.21359972E+02 -.16639144E+02
+ .46871910E-01 -.59709273E+01 -.21336339E+02 -.16615546E+02
+ .47692169E-01 -.59478444E+01 -.21313167E+02 -.16592412E+02
+ .48526782E-01 -.59252293E+01 -.21290457E+02 -.16569742E+02
+ .49376000E-01 -.59030816E+01 -.21268208E+02 -.16547535E+02
+ .50240080E-01 -.58814002E+01 -.21246418E+02 -.16525791E+02
+ .51119282E-01 -.58601838E+01 -.21225084E+02 -.16504507E+02
+ .52013869E-01 -.58394301E+01 -.21204206E+02 -.16483681E+02
+ .52924112E-01 -.58191368E+01 -.21183778E+02 -.16463311E+02
+ .53850284E-01 -.57993007E+01 -.21163799E+02 -.16443392E+02
+ .54792664E-01 -.57799184E+01 -.21144263E+02 -.16423920E+02
+ .55751535E-01 -.57609858E+01 -.21125165E+02 -.16404893E+02
+ .56727187E-01 -.57424984E+01 -.21106501E+02 -.16386303E+02
+ .57719913E-01 -.57244514E+01 -.21088265E+02 -.16368147E+02
+ .58730012E-01 -.57068391E+01 -.21070450E+02 -.16350417E+02
+ .59757787E-01 -.56896559E+01 -.21053049E+02 -.16333109E+02
+ .60803548E-01 -.56728953E+01 -.21036056E+02 -.16316214E+02
+ .61867610E-01 -.56565507E+01 -.21019462E+02 -.16299725E+02
+ .62950293E-01 -.56406148E+01 -.21003259E+02 -.16283635E+02
+ .64051923E-01 -.56250802E+01 -.20987438E+02 -.16267935E+02
+ .65172832E-01 -.56099388E+01 -.20971990E+02 -.16252616E+02
+ .66313357E-01 -.55951822E+01 -.20956905E+02 -.16237670E+02
+ .67473840E-01 -.55808019E+01 -.20942173E+02 -.16223086E+02
+ .68654633E-01 -.55667887E+01 -.20927783E+02 -.16208855E+02
+ .69856089E-01 -.55531331E+01 -.20913724E+02 -.16194966E+02
+ .71078570E-01 -.55398256E+01 -.20899984E+02 -.16181408E+02
+ .72322445E-01 -.55268559E+01 -.20886551E+02 -.16168171E+02
+ .73588088E-01 -.55142138E+01 -.20873413E+02 -.16155242E+02
+ .74875880E-01 -.55018886E+01 -.20860556E+02 -.16142609E+02
+ .76186208E-01 -.54898695E+01 -.20847968E+02 -.16130261E+02
+ .77519466E-01 -.54781453E+01 -.20835634E+02 -.16118184E+02
+ .78876057E-01 -.54667047E+01 -.20823540E+02 -.16106366E+02
+ .80256388E-01 -.54555361E+01 -.20811672E+02 -.16094792E+02
+ .81660875E-01 -.54446278E+01 -.20800015E+02 -.16083451E+02
+ .83089940E-01 -.54339680E+01 -.20788553E+02 -.16072327E+02
+ .84544014E-01 -.54235444E+01 -.20777270E+02 -.16061406E+02
+ .86023534E-01 -.54133451E+01 -.20766151E+02 -.16050674E+02
+ .87528946E-01 -.54033578E+01 -.20755179E+02 -.16040117E+02
+ .89060702E-01 -.53935701E+01 -.20744336E+02 -.16029718E+02
+ .90619265E-01 -.53839698E+01 -.20733606E+02 -.16019464E+02
+ .92205102E-01 -.53745444E+01 -.20722972E+02 -.16009338E+02
+ .93818691E-01 -.53652815E+01 -.20712414E+02 -.15999325E+02
+ .95460518E-01 -.53561689E+01 -.20701915E+02 -.15989410E+02
+ .97131077E-01 -.53471942E+01 -.20691456E+02 -.15979575E+02
+ .98830871E-01 -.53383453E+01 -.20681019E+02 -.15969805E+02
+ .10056041E+00 -.53296102E+01 -.20670583E+02 -.15960085E+02
+ .10232022E+00 -.53209770E+01 -.20660129E+02 -.15950396E+02
+ .10411082E+00 -.53124339E+01 -.20649637E+02 -.15940723E+02
+ .10593276E+00 -.53039694E+01 -.20639086E+02 -.15931049E+02
+ .10778659E+00 -.52955722E+01 -.20628456E+02 -.15921356E+02
+ .10967285E+00 -.52872314E+01 -.20617726E+02 -.15911629E+02
+ .11159213E+00 -.52789364E+01 -.20606874E+02 -.15901850E+02
+ .11354499E+00 -.52706767E+01 -.20595878E+02 -.15892003E+02
+ .11553202E+00 -.52624424E+01 -.20584715E+02 -.15882068E+02
+ .11755384E+00 -.52542239E+01 -.20573363E+02 -.15872031E+02
+ .11961103E+00 -.52460123E+01 -.20561799E+02 -.15861872E+02
+ .12170422E+00 -.52377987E+01 -.20549999E+02 -.15851575E+02
+ .12383404E+00 -.52295752E+01 -.20537939E+02 -.15841122E+02
+ .12600114E+00 -.52213341E+01 -.20525593E+02 -.15830495E+02
+ .12820616E+00 -.52130685E+01 -.20512937E+02 -.15819677E+02
+ .13044977E+00 -.52047722E+01 -.20499945E+02 -.15808650E+02
+ .13273264E+00 -.51964393E+01 -.20486591E+02 -.15797396E+02
+ .13505546E+00 -.51880650E+01 -.20472846E+02 -.15785896E+02
+ .13741893E+00 -.51796451E+01 -.20458684E+02 -.15774134E+02
+ .13982376E+00 -.51711762E+01 -.20444075E+02 -.15762089E+02
+ .14227068E+00 -.51626557E+01 -.20428990E+02 -.15749745E+02
+ .14476041E+00 -.51540819E+01 -.20413399E+02 -.15737082E+02
+ .14729372E+00 -.51454542E+01 -.20397270E+02 -.15724082E+02
+ .14987136E+00 -.51367728E+01 -.20380572E+02 -.15710726E+02
+ .15249411E+00 -.51280390E+01 -.20363271E+02 -.15696994E+02
+ .15516276E+00 -.51192551E+01 -.20345332E+02 -.15682867E+02
+ .15787811E+00 -.51104248E+01 -.20326720E+02 -.15668325E+02
+ .16064097E+00 -.51015528E+01 -.20307398E+02 -.15653349E+02
+ .16345219E+00 -.50926451E+01 -.20287328E+02 -.15637917E+02
+ .16631260E+00 -.50837091E+01 -.20266470E+02 -.15622010E+02
+ .16922307E+00 -.50747536E+01 -.20244782E+02 -.15605607E+02
+ .17218448E+00 -.50657887E+01 -.20222222E+02 -.15588684E+02
+ .17519771E+00 -.50568264E+01 -.20198745E+02 -.15571222E+02
+ .17826367E+00 -.50478801E+01 -.20174306E+02 -.15553197E+02
+ .18138328E+00 -.50389648E+01 -.20148854E+02 -.15534586E+02
+ .18455749E+00 -.50300976E+01 -.20122340E+02 -.15515367E+02
+ .18778724E+00 -.50212972E+01 -.20094712E+02 -.15495513E+02
+ .19107352E+00 -.50125845E+01 -.20065914E+02 -.15475002E+02
+ .19441731E+00 -.50039823E+01 -.20035889E+02 -.15453807E+02
+ .19781961E+00 -.49955156E+01 -.20004577E+02 -.15431902E+02
+ .20128145E+00 -.49872117E+01 -.19971916E+02 -.15409259E+02
+ .20480388E+00 -.49791003E+01 -.19937841E+02 -.15385851E+02
+ .20838795E+00 -.49712134E+01 -.19902283E+02 -.15361650E+02
+ .21203473E+00 -.49635859E+01 -.19865172E+02 -.15336624E+02
+ .21574534E+00 -.49562551E+01 -.19826432E+02 -.15310742E+02
+ .21952089E+00 -.49492613E+01 -.19785987E+02 -.15283974E+02
+ .22336250E+00 -.49426475E+01 -.19743756E+02 -.15256285E+02
+ .22727135E+00 -.49364601E+01 -.19699653E+02 -.15227642E+02
+ .23124859E+00 -.49307482E+01 -.19653591E+02 -.15198007E+02
+ .23529544E+00 -.49255646E+01 -.19605477E+02 -.15167345E+02
+ .23941311E+00 -.49209654E+01 -.19555217E+02 -.15135616E+02
+ .24360284E+00 -.49170099E+01 -.19502709E+02 -.15102781E+02
+ .24786589E+00 -.49137614E+01 -.19447851E+02 -.15068798E+02
+ .25220355E+00 -.49112867E+01 -.19390534E+02 -.15033623E+02
+ .25661711E+00 -.49096566E+01 -.19330646E+02 -.14997211E+02
+ .26110791E+00 -.49089458E+01 -.19268070E+02 -.14959517E+02
+ .26567730E+00 -.49092329E+01 -.19202687E+02 -.14920491E+02
+ .27032665E+00 -.49106007E+01 -.19134371E+02 -.14880083E+02
+ .27505737E+00 -.49131362E+01 -.19062993E+02 -.14838241E+02
+ .27987087E+00 -.49169306E+01 -.18988420E+02 -.14794911E+02
+ .28476861E+00 -.49220793E+01 -.18910516E+02 -.14750036E+02
+ .28975206E+00 -.49286822E+01 -.18829139E+02 -.14703559E+02
+ .29482272E+00 -.49368432E+01 -.18744146E+02 -.14655420E+02
+ .29998212E+00 -.49466706E+01 -.18655388E+02 -.14605556E+02
+ .30523181E+00 -.49582770E+01 -.18562714E+02 -.14553905E+02
+ .31057336E+00 -.49717787E+01 -.18465973E+02 -.14500400E+02
+ .31600840E+00 -.49872964E+01 -.18365008E+02 -.14444974E+02
+ .32153854E+00 -.50049542E+01 -.18259663E+02 -.14387558E+02
+ .32716547E+00 -.50248799E+01 -.18149779E+02 -.14328081E+02
+ .33289086E+00 -.50472044E+01 -.18035200E+02 -.14266471E+02
+ .33871645E+00 -.50720617E+01 -.17915767E+02 -.14202656E+02
+ .34464399E+00 -.50995879E+01 -.17791326E+02 -.14136560E+02
+ .35067526E+00 -.51299217E+01 -.17661725E+02 -.14068110E+02
+ .35681208E+00 -.51632030E+01 -.17526814E+02 -.13997231E+02
+ .36305629E+00 -.51995733E+01 -.17386451E+02 -.13923850E+02
+ .36940978E+00 -.52391749E+01 -.17240504E+02 -.13847893E+02
+ .37587445E+00 -.52821513E+01 -.17088848E+02 -.13769293E+02
+ .38245225E+00 -.53286476E+01 -.16931373E+02 -.13687986E+02
+ .38914516E+00 -.53788114E+01 -.16767988E+02 -.13603917E+02
+ .39595520E+00 -.54327950E+01 -.16598626E+02 -.13517043E+02
+ .40288442E+00 -.54907571E+01 -.16423249E+02 -.13427337E+02
+ .40993490E+00 -.55528620E+01 -.16241849E+02 -.13334791E+02
+ .41710876E+00 -.56192714E+01 -.16054451E+02 -.13239409E+02
+ .42440816E+00 -.56901229E+01 -.15861088E+02 -.13141191E+02
+ .43183530E+00 -.57654944E+01 -.15661778E+02 -.13040098E+02
+ .43939242E+00 -.58453678E+01 -.15456487E+02 -.12936020E+02
+ .44708179E+00 -.59296144E+01 -.15245126E+02 -.12828768E+02
+ .45490572E+00 -.60180132E+01 -.15027568E+02 -.12718093E+02
+ .46286657E+00 -.61102891E+01 -.14803702E+02 -.12603732E+02
+ .47096674E+00 -.62061467E+01 -.14573462E+02 -.12485446E+02
+ .47920865E+00 -.63052857E+01 -.14336862E+02 -.12363037E+02
+ .48759481E+00 -.64074009E+01 -.14093990E+02 -.12236359E+02
+ .49612771E+00 -.65121738E+01 -.13845017E+02 -.12105312E+02
+ .50480995E+00 -.66192615E+01 -.13590184E+02 -.11969837E+02
+ .51364412E+00 -.67282876E+01 -.13329807E+02 -.11829914E+02
+ .52263290E+00 -.68388335E+01 -.13064269E+02 -.11685555E+02
+ .53177897E+00 -.69504319E+01 -.12794021E+02 -.11536811E+02
+ .54108510E+00 -.70625613E+01 -.12519581E+02 -.11383764E+02
+ .55055409E+00 -.71746422E+01 -.12241535E+02 -.11226531E+02
+ .56018879E+00 -.72860329E+01 -.11960535E+02 -.11065265E+02
+ .56999209E+00 -.73960281E+01 -.11677298E+02 -.10900157E+02
+ .57996695E+00 -.75038573E+01 -.11392607E+02 -.10731434E+02
+ .59011638E+00 -.76086850E+01 -.11107305E+02 -.10559366E+02
+ .60044341E+00 -.77096126E+01 -.10822294E+02 -.10384260E+02
+ .61095117E+00 -.78056810E+01 -.10538530E+02 -.10206466E+02
+ .62164282E+00 -.78958768E+01 -.10257018E+02 -.10026374E+02
+ .63252157E+00 -.79791391E+01 -.99788064E+01 -.98444166E+01
+ .64359070E+00 -.80543693E+01 -.97049748E+01 -.96610649E+01
+ .65485353E+00 -.81204446E+01 -.94366279E+01 -.94768299E+01
+ .66631347E+00 -.81762327E+01 -.91748818E+01 -.92922583E+01
+ .67797395E+00 -.82206111E+01 -.89208508E+01 -.91079295E+01
+ .68983850E+00 -.82524892E+01 -.86756318E+01 -.89244503E+01
+ .70191067E+00 -.82708339E+01 -.84402854E+01 -.87424492E+01
+ .71419411E+00 -.82746984E+01 -.82158166E+01 -.85625688E+01
+ .72669251E+00 -.82632542E+01 -.80031506E+01 -.83854562E+01
+ .73940963E+00 -.82358267E+01 -.78031079E+01 -.82117518E+01
+ .75234929E+00 -.81919320E+01 -.76163758E+01 -.80420768E+01
+ .76551541E+00 -.81313165E+01 -.74434771E+01 -.78770176E+01
+ .77891193E+00 -.80539963E+01 -.72847375E+01 -.77171096E+01
+ .79254288E+00 -.79602960E+01 -.71402503E+01 -.75628179E+01
+ .80641239E+00 -.78508854E+01 -.70098401E+01 -.74145172E+01
+ .82052460E+00 -.77268108E+01 -.68930283E+01 -.72724707E+01
+ .83488378E+00 -.75895190E+01 -.67889992E+01 -.71368079E+01
+ .84949425E+00 -.74408701E+01 -.66965737E+01 -.70075037E+01
+ .86436040E+00 -.72831356E+01 -.66141910E+01 -.68843594E+01
+ .87948671E+00 -.71189753E+01 -.65399076E+01 -.67669885E+01
+ .89487772E+00 -.69513872E+01 -.64714179E+01 -.66548089E+01
+ .91053808E+00 -.67836221E+01 -.64061090E+01 -.65470480E+01
+ .92647250E+00 -.66190521E+01 -.63411603E+01 -.64427636E+01
+ .94268577E+00 -.64609796E+01 -.62737053E+01 -.63408889E+01
+ .95918277E+00 -.63123705E+01 -.62010744E+01 -.62403111E+01
+ .97596847E+00 -.61754886E+01 -.61211428E+01 -.61399951E+01
+ .99304792E+00 -.60514058E+01 -.60328140E+01 -.60391669E+01
+ .10104263E+01 -.59393527E+01 -.59366753E+01 -.59375773E+01
+ .10281087E+01 -.58358701E+01 -.58358701E+01 -.58358701E+01
+ .10461006E+01 -.57355168E+01 -.57355168E+01 -.57355168E+01
+ .10644074E+01 -.56368850E+01 -.56368850E+01 -.56368850E+01
+ .10830345E+01 -.55399471E+01 -.55399471E+01 -.55399471E+01
+ .11019876E+01 -.54446743E+01 -.54446743E+01 -.54446743E+01
+ .11212724E+01 -.53510382E+01 -.53510382E+01 -.53510382E+01
+ .11408947E+01 -.52590111E+01 -.52590111E+01 -.52590111E+01
+ .11608603E+01 -.51685657E+01 -.51685657E+01 -.51685657E+01
+ .11811754E+01 -.50796748E+01 -.50796748E+01 -.50796748E+01
+ .12018459E+01 -.49923120E+01 -.49923120E+01 -.49923120E+01
+ .12228782E+01 -.49064512E+01 -.49064512E+01 -.49064512E+01
+ .12442786E+01 -.48220666E+01 -.48220666E+01 -.48220666E+01
+ .12660535E+01 -.47391330E+01 -.47391330E+01 -.47391330E+01
+ .12882094E+01 -.46576254E+01 -.46576254E+01 -.46576254E+01
+ .13107531E+01 -.45775195E+01 -.45775195E+01 -.45775195E+01
+ .13336913E+01 -.44987912E+01 -.44987912E+01 -.44987912E+01
+ .13570309E+01 -.44214167E+01 -.44214167E+01 -.44214167E+01
+ .13807789E+01 -.43453730E+01 -.43453730E+01 -.43453730E+01
+ .14049425E+01 -.42706370E+01 -.42706370E+01 -.42706370E+01
+ .14295290E+01 -.41971864E+01 -.41971864E+01 -.41971864E+01
+ .14545458E+01 -.41249990E+01 -.41249990E+01 -.41249990E+01
+ .14800003E+01 -.40540531E+01 -.40540531E+01 -.40540531E+01
+ .15059003E+01 -.39843274E+01 -.39843274E+01 -.39843274E+01
+ .15322536E+01 -.39158009E+01 -.39158009E+01 -.39158009E+01
+ .15590680E+01 -.38484530E+01 -.38484530E+01 -.38484530E+01
+ .15863517E+01 -.37822634E+01 -.37822634E+01 -.37822634E+01
+ .16141129E+01 -.37172121E+01 -.37172121E+01 -.37172121E+01
+ .16423599E+01 -.36532797E+01 -.36532797E+01 -.36532797E+01
+ .16711012E+01 -.35904469E+01 -.35904469E+01 -.35904469E+01
+ .17003454E+01 -.35286948E+01 -.35286948E+01 -.35286948E+01
+ .17301015E+01 -.34680047E+01 -.34680047E+01 -.34680047E+01
+ .17603783E+01 -.34083584E+01 -.34083584E+01 -.34083584E+01
+ .17911849E+01 -.33497380E+01 -.33497380E+01 -.33497380E+01
+ .18225306E+01 -.32921258E+01 -.32921258E+01 -.32921258E+01
+ .18544249E+01 -.32355044E+01 -.32355044E+01 -.32355044E+01
+ .18868773E+01 -.31798569E+01 -.31798569E+01 -.31798569E+01
+ .19198977E+01 -.31251665E+01 -.31251665E+01 -.31251665E+01
+ .19534959E+01 -.30714167E+01 -.30714167E+01 -.30714167E+01
+ .19876821E+01 -.30185914E+01 -.30185914E+01 -.30185914E+01
+ .20224665E+01 -.29666746E+01 -.29666746E+01 -.29666746E+01
+ .20578597E+01 -.29156507E+01 -.29156507E+01 -.29156507E+01
+ .20938722E+01 -.28655044E+01 -.28655044E+01 -.28655044E+01
+ .21305150E+01 -.28162205E+01 -.28162205E+01 -.28162205E+01
+ .21677990E+01 -.27677843E+01 -.27677843E+01 -.27677843E+01
+ .22057355E+01 -.27201811E+01 -.27201811E+01 -.27201811E+01
+ .22443358E+01 -.26733967E+01 -.26733967E+01 -.26733967E+01
+ .22836117E+01 -.26274169E+01 -.26274169E+01 -.26274169E+01
+ .23235749E+01 -.25822279E+01 -.25822279E+01 -.25822279E+01
+ .23642375E+01 -.25378161E+01 -.25378161E+01 -.25378161E+01
+ .24056116E+01 -.24941682E+01 -.24941682E+01 -.24941682E+01
+ .24477098E+01 -.24512709E+01 -.24512709E+01 -.24512709E+01
+ .24905448E+01 -.24091115E+01 -.24091115E+01 -.24091115E+01
+ .25341293E+01 -.23676771E+01 -.23676771E+01 -.23676771E+01
+ .25784766E+01 -.23269554E+01 -.23269554E+01 -.23269554E+01
+ .26235999E+01 -.22869340E+01 -.22869340E+01 -.22869340E+01
+ .26695129E+01 -.22476010E+01 -.22476010E+01 -.22476010E+01
+ .27162294E+01 -.22089445E+01 -.22089445E+01 -.22089445E+01
+ .27637634E+01 -.21709528E+01 -.21709528E+01 -.21709528E+01
+ .28121293E+01 -.21336146E+01 -.21336146E+01 -.21336146E+01
+ .28613415E+01 -.20969185E+01 -.20969185E+01 -.20969185E+01
+ .29114150E+01 -.20608536E+01 -.20608536E+01 -.20608536E+01
+ .29623648E+01 -.20254089E+01 -.20254089E+01 -.20254089E+01
+ .30142061E+01 -.19905739E+01 -.19905739E+01 -.19905739E+01
+ .30669547E+01 -.19563380E+01 -.19563380E+01 -.19563380E+01
+ .31206265E+01 -.19226909E+01 -.19226909E+01 -.19226909E+01
+ .31752374E+01 -.18896225E+01 -.18896225E+01 -.18896225E+01
+ .32308041E+01 -.18571228E+01 -.18571228E+01 -.18571228E+01
+ .32873431E+01 -.18251821E+01 -.18251821E+01 -.18251821E+01
+ .33448716E+01 -.17937908E+01 -.17937908E+01 -.17937908E+01
+ .34034069E+01 -.17629394E+01 -.17629394E+01 -.17629394E+01
+ .34629665E+01 -.17326185E+01 -.17326185E+01 -.17326185E+01
+ .35235684E+01 -.17028192E+01 -.17028192E+01 -.17028192E+01
+ .35852309E+01 -.16735324E+01 -.16735324E+01 -.16735324E+01
+ .36479724E+01 -.16447493E+01 -.16447493E+01 -.16447493E+01
+ .37118119E+01 -.16164612E+01 -.16164612E+01 -.16164612E+01
+ .37767686E+01 -.15886597E+01 -.15886597E+01 -.15886597E+01
+ .38428621E+01 -.15613363E+01 -.15613363E+01 -.15613363E+01
+ .39101122E+01 -.15344828E+01 -.15344828E+01 -.15344828E+01
+ .39785391E+01 -.15080912E+01 -.15080912E+01 -.15080912E+01
+ .40481636E+01 -.14821535E+01 -.14821535E+01 -.14821535E+01
+ .41190064E+01 -.14566619E+01 -.14566619E+01 -.14566619E+01
+ .41910891E+01 -.14316088E+01 -.14316088E+01 -.14316088E+01
+ .42644331E+01 -.14069865E+01 -.14069865E+01 -.14069865E+01
+ .43390607E+01 -.13827877E+01 -.13827877E+01 -.13827877E+01
+ .44149943E+01 -.13590052E+01 -.13590052E+01 -.13590052E+01
+ .44922567E+01 -.13356316E+01 -.13356316E+01 -.13356316E+01
+ .45708712E+01 -.13126600E+01 -.13126600E+01 -.13126600E+01
+ .46508614E+01 -.12900836E+01 -.12900836E+01 -.12900836E+01
+ .47322515E+01 -.12678954E+01 -.12678954E+01 -.12678954E+01
+ .48150659E+01 -.12460889E+01 -.12460889E+01 -.12460889E+01
+ .48993295E+01 -.12246574E+01 -.12246574E+01 -.12246574E+01
+ .49850678E+01 -.12035945E+01 -.12035945E+01 -.12035945E+01
+ .50723065E+01 -.11828938E+01 -.11828938E+01 -.11828938E+01
+ .51610718E+01 -.11625492E+01 -.11625492E+01 -.11625492E+01
+ .52513906E+01 -.11425545E+01 -.11425545E+01 -.11425545E+01
+ .53432899E+01 -.11229037E+01 -.11229037E+01 -.11229037E+01
+ .54367975E+01 -.11035908E+01 -.11035908E+01 -.11035908E+01
+ .55319415E+01 -.10846102E+01 -.10846102E+01 -.10846102E+01
+ .56287504E+01 -.10659559E+01 -.10659559E+01 -.10659559E+01
+ .57272536E+01 -.10476225E+01 -.10476225E+01 -.10476225E+01
+ .58274805E+01 -.10296045E+01 -.10296045E+01 -.10296045E+01
+ .59294614E+01 -.10118963E+01 -.10118963E+01 -.10118963E+01
+ .60332270E+01 -.99449266E+00 -.99449266E+00 -.99449266E+00
+ .61388085E+01 -.97738836E+00 -.97738836E+00 -.97738836E+00
+ .62462376E+01 -.96057824E+00 -.96057824E+00 -.96057824E+00
+ .63555468E+01 -.94405724E+00 -.94405724E+00 -.94405724E+00
+ .64667688E+01 -.92782039E+00 -.92782039E+00 -.92782039E+00
+ .65799373E+01 -.91186279E+00 -.91186279E+00 -.91186279E+00
+ .66950862E+01 -.89617964E+00 -.89617964E+00 -.89617964E+00
+ .68122502E+01 -.88076623E+00 -.88076623E+00 -.88076623E+00
+ .69314646E+01 -.86561792E+00 -.86561792E+00 -.86561792E+00
+ .70527652E+01 -.85073014E+00 -.85073014E+00 -.85073014E+00
+ .71761886E+01 -.83609842E+00 -.83609842E+00 -.83609842E+00
+ .73017719E+01 -.82171835E+00 -.82171835E+00 -.82171835E+00
+ .74295529E+01 -.80758560E+00 -.80758560E+00 -.80758560E+00
+ .75595701E+01 -.79369592E+00 -.79369592E+00 -.79369592E+00
+ .76918626E+01 -.78004513E+00 -.78004513E+00 -.78004513E+00
+ .78264702E+01 -.76662912E+00 -.76662912E+00 -.76662912E+00
+ .79634334E+01 -.75344386E+00 -.75344386E+00 -.75344386E+00
+ .81027935E+01 -.74048536E+00 -.74048536E+00 -.74048536E+00
+ .82445924E+01 -.72774974E+00 -.72774974E+00 -.72774974E+00
+ .83888727E+01 -.71523316E+00 -.71523316E+00 -.71523316E+00
+ .85356780E+01 -.70293186E+00 -.70293186E+00 -.70293186E+00
+ .86850524E+01 -.69084212E+00 -.69084212E+00 -.69084212E+00
+ .88370408E+01 -.67896031E+00 -.67896031E+00 -.67896031E+00
+ .89916890E+01 -.66728286E+00 -.66728286E+00 -.66728286E+00
+ .91490436E+01 -.65580625E+00 -.65580625E+00 -.65580625E+00
+ .93091518E+01 -.64452703E+00 -.64452703E+00 -.64452703E+00
+ .94720620E+01 -.63344180E+00 -.63344180E+00 -.63344180E+00
+ .96378231E+01 -.62254722E+00 -.62254722E+00 -.62254722E+00
+ .98064850E+01 -.61184002E+00 -.61184002E+00 -.61184002E+00
+ .99780984E+01 -.60131698E+00 -.60131698E+00 -.60131698E+00
+ .10152715E+02 -.59097491E+00 -.59097491E+00 -.59097491E+00
+ .10330388E+02 -.58081073E+00 -.58081073E+00 -.58081073E+00
+ .10511169E+02 -.57082135E+00 -.57082135E+00 -.57082135E+00
+ .10695115E+02 -.56100379E+00 -.56100379E+00 -.56100379E+00
+ .10882279E+02 -.55135507E+00 -.55135507E+00 -.55135507E+00
+ .11072719E+02 -.54187231E+00 -.54187231E+00 -.54187231E+00
+ .11266492E+02 -.53255264E+00 -.53255264E+00 -.53255264E+00
+ .11463656E+02 -.52339326E+00 -.52339326E+00 -.52339326E+00
+ .11664270E+02 -.51439141E+00 -.51439141E+00 -.51439141E+00
+ .11868394E+02 -.50554438E+00 -.50554438E+00 -.50554438E+00
+ .12076091E+02 -.49684951E+00 -.49684951E+00 -.49684951E+00
+ .12287423E+02 -.48830419E+00 -.48830419E+00 -.48830419E+00
+ .12502453E+02 -.47990584E+00 -.47990584E+00 -.47990584E+00
+ .12721246E+02 -.47165193E+00 -.47165193E+00 -.47165193E+00
+ .12943867E+02 -.46353998E+00 -.46353998E+00 -.46353998E+00
+ .13170385E+02 -.45556755E+00 -.45556755E+00 -.45556755E+00
+ .13400867E+02 -.44773223E+00 -.44773223E+00 -.44773223E+00
+ .13635382E+02 -.44003168E+00 -.44003168E+00 -.44003168E+00
+ .13874001E+02 -.43246357E+00 -.43246357E+00 -.43246357E+00
+ .14116796E+02 -.42502562E+00 -.42502562E+00 -.42502562E+00
+ .14363840E+02 -.41771560E+00 -.41771560E+00 -.41771560E+00
+ .14615207E+02 -.41053130E+00 -.41053130E+00 -.41053130E+00
+ .14870973E+02 -.40347056E+00 -.40347056E+00 -.40347056E+00
+ .15131215E+02 -.39653127E+00 -.39653127E+00 -.39653127E+00
+ .15396012E+02 -.38971132E+00 -.38971132E+00 -.38971132E+00
+ .15665442E+02 -.38300867E+00 -.38300867E+00 -.38300867E+00
+ .15939587E+02 -.37642129E+00 -.37642129E+00 -.37642129E+00
+ .16218530E+02 -.36994722E+00 -.36994722E+00 -.36994722E+00
+ .16502354E+02 -.36358449E+00 -.36358449E+00 -.36358449E+00
+ .16791145E+02 -.35733119E+00 -.35733119E+00 -.35733119E+00
+ .17084990E+02 -.35118545E+00 -.35118545E+00 -.35118545E+00
+ .17383978E+02 -.34514540E+00 -.34514540E+00 -.34514540E+00
+ .17688197E+02 -.33920924E+00 -.33920924E+00 -.33920924E+00
+ .17997741E+02 -.33337518E+00 -.33337518E+00 -.33337518E+00
+ .18312701E+02 -.32764145E+00 -.32764145E+00 -.32764145E+00
+ .18633174E+02 -.32200634E+00 -.32200634E+00 -.32200634E+00
+ .18959254E+02 -.31646815E+00 -.31646815E+00 -.31646815E+00
+ .19291041E+02 -.31102521E+00 -.31102521E+00 -.31102521E+00
+ .19628634E+02 -.30567588E+00 -.30567588E+00 -.30567588E+00
+ .19972135E+02 -.30041855E+00 -.30041855E+00 -.30041855E+00
+ .20321648E+02 -.29525165E+00 -.29525165E+00 -.29525165E+00
+ .20677277E+02 -.29017361E+00 -.29017361E+00 -.29017361E+00
+ .21039129E+02 -.28518291E+00 -.28518291E+00 -.28518291E+00
+ .21407314E+02 -.28027804E+00 -.28027804E+00 -.28027804E+00
+ .21781942E+02 -.27545754E+00 -.27545754E+00 -.27545754E+00
+ .22163126E+02 -.27071994E+00 -.27071994E+00 -.27071994E+00
+ .22550980E+02 -.26606382E+00 -.26606382E+00 -.26606382E+00
+ .22945622E+02 -.26148778E+00 -.26148778E+00 -.26148778E+00
+ .23347171E+02 -.25699045E+00 -.25699045E+00 -.25699045E+00
+ .23755746E+02 -.25257047E+00 -.25257047E+00 -.25257047E+00
+ .24171472E+02 -.24822650E+00 -.24822650E+00 -.24822650E+00
+ .24594473E+02 -.24395725E+00 -.24395725E+00 -.24395725E+00
+ .25024876E+02 -.23976143E+00 -.23976143E+00 -.23976143E+00
+ .25462811E+02 -.23563777E+00 -.23563777E+00 -.23563777E+00
+ .25908410E+02 -.23158503E+00 -.23158503E+00 -.23158503E+00
+ .26361808E+02 -.22760199E+00 -.22760199E+00 -.22760199E+00
+ .26823139E+02 -.22368746E+00 -.22368746E+00 -.22368746E+00
+ .27292544E+02 -.21984026E+00 -.21984026E+00 -.21984026E+00
+ .27770164E+02 -.21605922E+00 -.21605922E+00 -.21605922E+00
+ .28256142E+02 -.21234322E+00 -.21234322E+00 -.21234322E+00
+ .28750624E+02 -.20869112E+00 -.20869112E+00 -.20869112E+00
+ .29253760E+02 -.20510184E+00 -.20510184E+00 -.20510184E+00
+ .29765701E+02 -.20157429E+00 -.20157429E+00 -.20157429E+00
+ .30286601E+02 -.19810741E+00 -.19810741E+00 -.19810741E+00
+ .30816616E+02 -.19470016E+00 -.19470016E+00 -.19470016E+00
+ .31355907E+02 -.19135151E+00 -.19135151E+00 -.19135151E+00
+ .31904635E+02 -.18806045E+00 -.18806045E+00 -.18806045E+00
+ .32462966E+02 -.18482599E+00 -.18482599E+00 -.18482599E+00
+ .33031068E+02 -.18164717E+00 -.18164717E+00 -.18164717E+00
+ .33609112E+02 -.17852301E+00 -.17852301E+00 -.17852301E+00
+ .34197271E+02 -.17545259E+00 -.17545259E+00 -.17545259E+00
+ .34795724E+02 -.17243498E+00 -.17243498E+00 -.17243498E+00
+ .35404649E+02 -.16946927E+00 -.16946927E+00 -.16946927E+00
+ .36024230E+02 -.16655456E+00 -.16655456E+00 -.16655456E+00
+ .36654654E+02 -.16368999E+00 -.16368999E+00 -.16368999E+00
+ .37296111E+02 -.16087468E+00 -.16087468E+00 -.16087468E+00
+ .37948793E+02 -.15810780E+00 -.15810780E+00 -.15810780E+00
+ .38612896E+02 -.15538850E+00 -.15538850E+00 -.15538850E+00
+ .39288622E+02 -.15271597E+00 -.15271597E+00 -.15271597E+00
+ .39976173E+02 -.15008940E+00 -.15008940E+00 -.15008940E+00
+ .40675756E+02 -.14750801E+00 -.14750801E+00 -.14750801E+00
+ .41387582E+02 -.14497102E+00 -.14497102E+00 -.14497102E+00
+ .42111864E+02 -.14247766E+00 -.14247766E+00 -.14247766E+00
+ .42848822E+02 -.14002719E+00 -.14002719E+00 -.14002719E+00
+ .43598676E+02 -.13761886E+00 -.13761886E+00 -.13761886E+00
+&END
+&WAVEFUNCTION
+ 631 CHANNELS=1
+ .78125000E-03 .25554409E-03 .10390134E-05 .46103462E-10
+ .79492188E-03 .26001611E-03 .10756971E-05 .48566498E-10
+ .80883301E-03 .26456640E-03 .11136759E-05 .51161120E-10
+ .82298759E-03 .26919631E-03 .11529957E-05 .53894357E-10
+ .83738987E-03 .27390724E-03 .11937036E-05 .56773616E-10
+ .85204419E-03 .27870062E-03 .12358488E-05 .59806696E-10
+ .86695496E-03 .28357788E-03 .12794820E-05 .63001815E-10
+ .88212668E-03 .28854049E-03 .13246556E-05 .66367631E-10
+ .89756389E-03 .29358995E-03 .13714242E-05 .69913262E-10
+ .91327126E-03 .29872778E-03 .14198440E-05 .73648315E-10
+ .92925351E-03 .30395552E-03 .14699734E-05 .77582910E-10
+ .94551544E-03 .30927474E-03 .15218726E-05 .81727707E-10
+ .96206196E-03 .31468705E-03 .15756041E-05 .86093935E-10
+ .97889805E-03 .32019408E-03 .16312327E-05 .90693425E-10
+ .99602877E-03 .32579748E-03 .16888253E-05 .95538638E-10
+ .10134593E-02 .33149894E-03 .17484513E-05 .10064270E-09
+ .10311948E-02 .33730017E-03 .18101824E-05 .10601945E-09
+ .10492407E-02 .34320293E-03 .18740930E-05 .11168344E-09
+ .10676024E-02 .34920898E-03 .19402601E-05 .11765002E-09
+ .10862855E-02 .35532015E-03 .20087632E-05 .12393536E-09
+ .11052955E-02 .36153825E-03 .20796849E-05 .13055650E-09
+ .11246381E-02 .36786518E-03 .21531106E-05 .13753136E-09
+ .11443193E-02 .37430283E-03 .22291287E-05 .14487884E-09
+ .11643449E-02 .38085313E-03 .23078306E-05 .15261886E-09
+ .11847209E-02 .38751807E-03 .23893112E-05 .16077237E-09
+ .12054535E-02 .39429965E-03 .24736685E-05 .16936149E-09
+ .12265490E-02 .40119990E-03 .25610042E-05 .17840946E-09
+ .12480136E-02 .40822091E-03 .26514233E-05 .18794082E-09
+ .12698538E-02 .41536478E-03 .27450347E-05 .19798138E-09
+ .12920763E-02 .42263368E-03 .28419512E-05 .20855834E-09
+ .13146876E-02 .43002978E-03 .29422894E-05 .21970037E-09
+ .13376946E-02 .43755531E-03 .30461701E-05 .23143765E-09
+ .13611043E-02 .44521255E-03 .31537185E-05 .24380199E-09
+ .13849236E-02 .45300378E-03 .32650639E-05 .25682687E-09
+ .14091598E-02 .46093136E-03 .33803405E-05 .27054760E-09
+ .14338201E-02 .46899768E-03 .34996870E-05 .28500134E-09
+ .14589119E-02 .47720516E-03 .36232471E-05 .30022726E-09
+ .14844429E-02 .48555627E-03 .37511696E-05 .31626660E-09
+ .15104206E-02 .49405352E-03 .38836086E-05 .33316283E-09
+ .15368530E-02 .50269948E-03 .40207234E-05 .35096173E-09
+ .15637479E-02 .51149674E-03 .41626791E-05 .36971151E-09
+ .15911135E-02 .52044796E-03 .43096467E-05 .38946298E-09
+ .16189580E-02 .52955583E-03 .44618031E-05 .41026964E-09
+ .16472898E-02 .53882308E-03 .46193315E-05 .43218789E-09
+ .16761173E-02 .54825251E-03 .47824215E-05 .45527709E-09
+ .17054494E-02 .55784696E-03 .49512696E-05 .47959980E-09
+ .17352948E-02 .56760932E-03 .51260789E-05 .50522193E-09
+ .17656624E-02 .57754252E-03 .53070600E-05 .53221289E-09
+ .17965615E-02 .58764955E-03 .54944307E-05 .56064582E-09
+ .18280013E-02 .59793346E-03 .56884167E-05 .59059774E-09
+ .18599914E-02 .60839733E-03 .58892514E-05 .62214980E-09
+ .18925412E-02 .61904433E-03 .60971768E-05 .65538750E-09
+ .19256607E-02 .62987765E-03 .63124430E-05 .69040089E-09
+ .19593597E-02 .64090056E-03 .65353094E-05 .72728482E-09
+ .19936485E-02 .65211637E-03 .67660441E-05 .76613924E-09
+ .20285374E-02 .66352846E-03 .70049251E-05 .80706940E-09
+ .20640368E-02 .67514027E-03 .72522398E-05 .85018621E-09
+ .21001574E-02 .68695529E-03 .75082860E-05 .89560648E-09
+ .21369102E-02 .69897707E-03 .77733721E-05 .94345327E-09
+ .21743061E-02 .71120924E-03 .80478172E-05 .99385622E-09
+ .22123565E-02 .72365547E-03 .83319515E-05 .10469519E-08
+ .22510727E-02 .73631952E-03 .86261174E-05 .11028841E-08
+ .22904665E-02 .74920519E-03 .89306688E-05 .11618045E-08
+ .23305496E-02 .76231637E-03 .92459725E-05 .12238725E-08
+ .23713343E-02 .77565700E-03 .95724080E-05 .12892565E-08
+ .24128326E-02 .78923109E-03 .99103683E-05 .13581336E-08
+ .24550572E-02 .80304274E-03 .10260260E-04 .14306903E-08
+ .24980207E-02 .81709609E-03 .10622505E-04 .15071232E-08
+ .25417360E-02 .83139539E-03 .10997540E-04 .15876395E-08
+ .25862164E-02 .84594492E-03 .11385814E-04 .16724572E-08
+ .26314752E-02 .86074908E-03 .11787797E-04 .17618062E-08
+ .26775260E-02 .87581233E-03 .12203971E-04 .18559285E-08
+ .27243827E-02 .89113918E-03 .12634839E-04 .19550792E-08
+ .27720594E-02 .90673426E-03 .13080918E-04 .20595269E-08
+ .28205705E-02 .92260227E-03 .13542746E-04 .21695545E-08
+ .28699305E-02 .93874797E-03 .14020879E-04 .22854602E-08
+ .29201542E-02 .95517624E-03 .14515892E-04 .24075580E-08
+ .29712569E-02 .97189200E-03 .15028381E-04 .25361787E-08
+ .30232539E-02 .98890031E-03 .15558963E-04 .26716707E-08
+ .30761609E-02 .10062063E-02 .16108277E-04 .28144011E-08
+ .31299937E-02 .10238151E-02 .16676984E-04 .29647567E-08
+ .31847686E-02 .10417321E-02 .17265769E-04 .31231448E-08
+ .32405020E-02 .10599626E-02 .17875341E-04 .32899945E-08
+ .32972108E-02 .10785122E-02 .18506433E-04 .34657578E-08
+ .33549120E-02 .10973865E-02 .19159805E-04 .36509110E-08
+ .34136230E-02 .11165910E-02 .19836244E-04 .38459557E-08
+ .34733614E-02 .11361316E-02 .20536564E-04 .40514203E-08
+ .35341452E-02 .11560142E-02 .21261608E-04 .42678615E-08
+ .35959927E-02 .11762448E-02 .22012248E-04 .44958656E-08
+ .36589226E-02 .11968294E-02 .22789389E-04 .47360504E-08
+ .37229538E-02 .12177743E-02 .23593966E-04 .49890666E-08
+ .37881054E-02 .12390858E-02 .24426947E-04 .52555997E-08
+ .38543973E-02 .12607702E-02 .25289335E-04 .55363717E-08
+ .39218492E-02 .12828341E-02 .26182168E-04 .58321435E-08
+ .39904816E-02 .13052841E-02 .27106521E-04 .61437162E-08
+ .40603150E-02 .13281271E-02 .28063507E-04 .64719340E-08
+ .41313705E-02 .13513698E-02 .29054277E-04 .68176861E-08
+ .42036695E-02 .13750193E-02 .30080024E-04 .71819092E-08
+ .42772337E-02 .13990827E-02 .31141982E-04 .75655902E-08
+ .43520853E-02 .14235672E-02 .32241430E-04 .79697683E-08
+ .44282468E-02 .14484802E-02 .33379692E-04 .83955388E-08
+ .45057411E-02 .14738293E-02 .34558137E-04 .88440549E-08
+ .45845916E-02 .14996220E-02 .35778183E-04 .93165319E-08
+ .46648220E-02 .15258661E-02 .37041300E-04 .98142498E-08
+ .47464564E-02 .15525695E-02 .38349007E-04 .10338557E-07
+ .48295193E-02 .15797402E-02 .39702878E-04 .10890874E-07
+ .49140359E-02 .16073865E-02 .41104543E-04 .11472697E-07
+ .50000316E-02 .16355167E-02 .42555689E-04 .12085602E-07
+ .50875321E-02 .16641392E-02 .44058062E-04 .12731249E-07
+ .51765639E-02 .16932626E-02 .45613470E-04 .13411389E-07
+ .52671538E-02 .17228957E-02 .47223786E-04 .14127863E-07
+ .53593290E-02 .17530475E-02 .48890947E-04 .14882612E-07
+ .54531172E-02 .17837270E-02 .50616959E-04 .15677681E-07
+ .55485468E-02 .18149434E-02 .52403900E-04 .16515225E-07
+ .56456464E-02 .18467062E-02 .54253920E-04 .17397511E-07
+ .57444452E-02 .18790249E-02 .56169246E-04 .18326931E-07
+ .58449730E-02 .19119092E-02 .58152182E-04 .19306001E-07
+ .59472600E-02 .19453691E-02 .60205114E-04 .20337374E-07
+ .60513370E-02 .19794147E-02 .62330513E-04 .21423845E-07
+ .61572354E-02 .20140561E-02 .64530936E-04 .22568357E-07
+ .62649871E-02 .20493038E-02 .66809031E-04 .23774009E-07
+ .63746243E-02 .20851684E-02 .69167539E-04 .25044069E-07
+ .64861803E-02 .21216608E-02 .71609298E-04 .26381976E-07
+ .65996884E-02 .21587919E-02 .74137246E-04 .27791355E-07
+ .67151830E-02 .21965729E-02 .76754424E-04 .29276024E-07
+ .68326987E-02 .22350152E-02 .79463980E-04 .30840005E-07
+ .69522709E-02 .22741304E-02 .82269176E-04 .32487534E-07
+ .70739356E-02 .23139302E-02 .85173385E-04 .34223074E-07
+ .71977295E-02 .23544266E-02 .88180102E-04 .36051328E-07
+ .73236898E-02 .23956319E-02 .91292944E-04 .37977246E-07
+ .74518543E-02 .24375583E-02 .94515654E-04 .40006046E-07
+ .75822618E-02 .24802187E-02 .97852111E-04 .42143225E-07
+ .77149514E-02 .25236258E-02 .10130633E-03 .44394570E-07
+ .78499630E-02 .25677927E-02 .10488246E-03 .46766181E-07
+ .79873374E-02 .26127327E-02 .10858480E-03 .49264481E-07
+ .81271158E-02 .26584593E-02 .11241781E-03 .51896237E-07
+ .82693403E-02 .27049864E-02 .11638611E-03 .54668579E-07
+ .84140538E-02 .27523279E-02 .12049445E-03 .57589015E-07
+ .85612997E-02 .28004980E-02 .12474778E-03 .60665457E-07
+ .87111224E-02 .28495115E-02 .12915122E-03 .63906236E-07
+ .88635671E-02 .28993829E-02 .13371007E-03 .67320132E-07
+ .90186795E-02 .29501273E-02 .13842979E-03 .70916390E-07
+ .91765064E-02 .30017600E-02 .14331608E-03 .74704751E-07
+ .93370953E-02 .30542966E-02 .14837480E-03 .78695477E-07
+ .95004944E-02 .31077528E-02 .15361203E-03 .82899375E-07
+ .96667531E-02 .31621449E-02 .15903408E-03 .87327833E-07
+ .98359213E-02 .32174892E-02 .16464745E-03 .91992843E-07
+ .10008050E-01 .32738024E-02 .17045891E-03 .96907041E-07
+ .10183191E-01 .33311015E-02 .17647542E-03 .10208374E-06
+ .10361397E-01 .33894036E-02 .18270424E-03 .10753695E-06
+ .10542721E-01 .34487265E-02 .18915283E-03 .11328145E-06
+ .10727219E-01 .35090880E-02 .19582896E-03 .11933279E-06
+ .10914945E-01 .35705063E-02 .20274064E-03 .12570736E-06
+ .11105957E-01 .36329999E-02 .20989618E-03 .13242243E-06
+ .11300311E-01 .36965876E-02 .21730418E-03 .13949617E-06
+ .11498066E-01 .37612887E-02 .22497353E-03 .14694775E-06
+ .11699282E-01 .38271227E-02 .23291346E-03 .15479735E-06
+ .11904020E-01 .38941093E-02 .24113350E-03 .16306622E-06
+ .12112340E-01 .39622688E-02 .24964352E-03 .17177675E-06
+ .12324306E-01 .40316218E-02 .25845375E-03 .18095253E-06
+ .12539981E-01 .41021892E-02 .26757477E-03 .19061840E-06
+ .12759431E-01 .41739923E-02 .27701752E-03 .20080055E-06
+ .12982721E-01 .42470527E-02 .28679336E-03 .21152653E-06
+ .13209919E-01 .43213925E-02 .29691401E-03 .22282539E-06
+ .13441092E-01 .43970342E-02 .30739163E-03 .23472772E-06
+ .13676311E-01 .44740004E-02 .31823879E-03 .24726576E-06
+ .13915647E-01 .45523146E-02 .32946852E-03 .26047343E-06
+ .14159171E-01 .46320003E-02 .34109428E-03 .27438651E-06
+ .14406956E-01 .47130815E-02 .35313005E-03 .28904266E-06
+ .14659078E-01 .47955828E-02 .36559024E-03 .30448155E-06
+ .14915612E-01 .48795291E-02 .37848982E-03 .32074498E-06
+ .15176635E-01 .49649457E-02 .39184426E-03 .33787698E-06
+ .15442226E-01 .50518585E-02 .40566958E-03 .35592393E-06
+ .15712465E-01 .51402935E-02 .41998235E-03 .37493467E-06
+ .15987433E-01 .52302777E-02 .43479974E-03 .39496066E-06
+ .16267213E-01 .53218382E-02 .45013951E-03 .41605611E-06
+ .16551890E-01 .54150026E-02 .46602006E-03 .43827811E-06
+ .16841548E-01 .55097991E-02 .48246042E-03 .46168682E-06
+ .17136275E-01 .56062563E-02 .49948028E-03 .48634557E-06
+ .17436160E-01 .57044035E-02 .51710004E-03 .51232112E-06
+ .17741292E-01 .58042703E-02 .53534082E-03 .53968375E-06
+ .18051765E-01 .59058868E-02 .55422445E-03 .56850750E-06
+ .18367671E-01 .60092839E-02 .57377355E-03 .59887038E-06
+ .18689105E-01 .61144927E-02 .59401153E-03 .63085455E-06
+ .19016164E-01 .62215452E-02 .61496262E-03 .66454654E-06
+ .19348947E-01 .63304738E-02 .63665188E-03 .70003751E-06
+ .19687554E-01 .64413113E-02 .65910527E-03 .73742348E-06
+ .20032086E-01 .65540914E-02 .68234966E-03 .77680559E-06
+ .20382648E-01 .66688482E-02 .70641284E-03 .81829038E-06
+ .20739344E-01 .67856165E-02 .73132359E-03 .86199006E-06
+ .21102282E-01 .69044315E-02 .75711169E-03 .90802285E-06
+ .21471572E-01 .70253295E-02 .78380795E-03 .95651324E-06
+ .21847325E-01 .71483469E-02 .81144428E-03 .10075924E-05
+ .22229653E-01 .72735210E-02 .84005369E-03 .10613984E-05
+ .22618672E-01 .74008899E-02 .86967034E-03 .11180768E-05
+ .23014499E-01 .75304921E-02 .90032960E-03 .11777809E-05
+ .23417252E-01 .76623670E-02 .93206804E-03 .12406721E-05
+ .23827054E-01 .77965546E-02 .96492355E-03 .13069203E-05
+ .24244028E-01 .79330956E-02 .99893530E-03 .13767048E-05
+ .24668298E-01 .80720315E-02 .10341439E-02 .14502142E-05
+ .25099994E-01 .82134045E-02 .10705912E-02 .15276471E-05
+ .25539243E-01 .83572575E-02 .11083207E-02 .16092129E-05
+ .25986180E-01 .85036343E-02 .11473773E-02 .16951319E-05
+ .26440938E-01 .86525793E-02 .11878076E-02 .17856364E-05
+ .26903655E-01 .88041379E-02 .12296596E-02 .18809709E-05
+ .27374469E-01 .89583562E-02 .12729831E-02 .19813930E-05
+ .27853522E-01 .91152810E-02 .13178297E-02 .20871740E-05
+ .28340959E-01 .92749603E-02 .13642527E-02 .21985996E-05
+ .28836925E-01 .94374426E-02 .14123071E-02 .23159708E-05
+ .29341572E-01 .96027774E-02 .14620502E-02 .24396046E-05
+ .29855049E-01 .97710153E-02 .15135408E-02 .25698348E-05
+ .30377512E-01 .99422073E-02 .15668401E-02 .27070130E-05
+ .30909119E-01 .10116406E-01 .16220113E-02 .28515097E-05
+ .31450028E-01 .10293664E-01 .16791197E-02 .30037148E-05
+ .32000404E-01 .10474036E-01 .17382331E-02 .31640391E-05
+ .32560411E-01 .10657577E-01 .17994213E-02 .33329154E-05
+ .33130218E-01 .10844344E-01 .18627568E-02 .35107993E-05
+ .33709997E-01 .11034392E-01 .19283143E-02 .36981706E-05
+ .34299922E-01 .11227781E-01 .19961715E-02 .38955350E-05
+ .34900171E-01 .11424569E-01 .20664083E-02 .41034246E-05
+ .35510924E-01 .11624818E-01 .21391076E-02 .43224000E-05
+ .36132365E-01 .11828587E-01 .22143552E-02 .45530517E-05
+ .36764681E-01 .12035941E-01 .22922397E-02 .47960014E-05
+ .37408063E-01 .12246942E-01 .23728527E-02 .50519039E-05
+ .38062704E-01 .12461656E-01 .24562891E-02 .53214489E-05
+ .38728801E-01 .12680148E-01 .25426469E-02 .56053625E-05
+ .39406555E-01 .12902486E-01 .26320275E-02 .59044096E-05
+ .40096170E-01 .13128738E-01 .27245358E-02 .62193954E-05
+ .40797853E-01 .13358974E-01 .28202802E-02 .65511681E-05
+ .41511816E-01 .13593265E-01 .29193728E-02 .69006208E-05
+ .42238272E-01 .13831683E-01 .30219295E-02 .72686941E-05
+ .42977442E-01 .14074302E-01 .31280700E-02 .76563782E-05
+ .43729547E-01 .14321197E-01 .32379184E-02 .80647162E-05
+ .44494814E-01 .14572444E-01 .33516027E-02 .84948061E-05
+ .45273474E-01 .14828122E-01 .34692552E-02 .89478043E-05
+ .46065760E-01 .15088310E-01 .35910128E-02 .94249285E-05
+ .46871910E-01 .15353087E-01 .37170170E-02 .99274607E-05
+ .47692169E-01 .15622538E-01 .38474140E-02 .10456751E-04
+ .48526782E-01 .15896745E-01 .39823547E-02 .11014221E-04
+ .49376000E-01 .16175795E-01 .41219954E-02 .11601367E-04
+ .50240080E-01 .16459773E-01 .42664975E-02 .12219765E-04
+ .51119282E-01 .16748770E-01 .44160275E-02 .12871074E-04
+ .52013869E-01 .17042874E-01 .45707577E-02 .13557041E-04
+ .52924112E-01 .17342179E-01 .47308661E-02 .14279505E-04
+ .53850284E-01 .17646778E-01 .48965364E-02 .15040402E-04
+ .54792664E-01 .17956768E-01 .50679587E-02 .15841771E-04
+ .55751535E-01 .18272244E-01 .52453289E-02 .16685758E-04
+ .56727187E-01 .18593307E-01 .54288496E-02 .17574622E-04
+ .57719913E-01 .18920058E-01 .56187300E-02 .18510741E-04
+ .58730012E-01 .19252601E-01 .58151861E-02 .19496619E-04
+ .59757787E-01 .19591040E-01 .60184408E-02 .20534891E-04
+ .60803548E-01 .19935483E-01 .62287244E-02 .21628332E-04
+ .61867610E-01 .20286039E-01 .64462744E-02 .22779862E-04
+ .62950293E-01 .20642820E-01 .66713363E-02 .23992555E-04
+ .64051923E-01 .21005939E-01 .69041630E-02 .25269646E-04
+ .65172832E-01 .21375514E-01 .71450159E-02 .26614539E-04
+ .66313357E-01 .21751661E-01 .73941644E-02 .28030820E-04
+ .67473840E-01 .22134501E-01 .76518867E-02 .29522260E-04
+ .68654633E-01 .22524158E-01 .79184694E-02 .31092829E-04
+ .69856089E-01 .22920758E-01 .81942085E-02 .32746705E-04
+ .71078570E-01 .23324427E-01 .84794089E-02 .34488283E-04
+ .72322445E-01 .23735298E-01 .87743852E-02 .36322191E-04
+ .73588088E-01 .24153502E-01 .90794616E-02 .38253297E-04
+ .74875880E-01 .24579177E-01 .93949724E-02 .40286722E-04
+ .76186208E-01 .25012461E-01 .97212618E-02 .42427858E-04
+ .77519466E-01 .25453496E-01 .10058685E-01 .44682374E-04
+ .78876057E-01 .25902426E-01 .10407607E-01 .47056238E-04
+ .80256388E-01 .26359400E-01 .10768405E-01 .49555726E-04
+ .81660875E-01 .26824567E-01 .11141467E-01 .52187441E-04
+ .83089940E-01 .27298082E-01 .11527191E-01 .54958329E-04
+ .84544014E-01 .27780101E-01 .11925989E-01 .57875698E-04
+ .86023534E-01 .28270787E-01 .12338283E-01 .60947234E-04
+ .87528946E-01 .28770301E-01 .12764510E-01 .64181019E-04
+ .89060702E-01 .29278812E-01 .13205115E-01 .67585555E-04
+ .90619265E-01 .29796492E-01 .13660560E-01 .71169784E-04
+ .92205102E-01 .30323514E-01 .14131317E-01 .74943108E-04
+ .93818691E-01 .30860057E-01 .14617873E-01 .78915413E-04
+ .95460518E-01 .31406304E-01 .15120727E-01 .83097096E-04
+ .97131077E-01 .31962442E-01 .15640393E-01 .87499087E-04
+ .98830871E-01 .32528661E-01 .16177397E-01 .92132876E-04
+ .10056041E+00 .33105157E-01 .16732280E-01 .97010543E-04
+ .10232022E+00 .33692128E-01 .17305598E-01 .10214479E-03
+ .10411082E+00 .34289779E-01 .17897919E-01 .10754895E-03
+ .10593276E+00 .34898318E-01 .18509826E-01 .11323707E-03
+ .10778659E+00 .35517960E-01 .19141919E-01 .11922388E-03
+ .10967285E+00 .36148921E-01 .19794810E-01 .12552487E-03
+ .11159213E+00 .36791427E-01 .20469125E-01 .13215632E-03
+ .11354499E+00 .37445705E-01 .21165508E-01 .13913533E-03
+ .11553202E+00 .38111990E-01 .21884615E-01 .14647987E-03
+ .11755384E+00 .38790521E-01 .22627117E-01 .15420880E-03
+ .11961103E+00 .39481545E-01 .23393701E-01 .16234194E-03
+ .12170422E+00 .40185312E-01 .24185067E-01 .17090011E-03
+ .12383404E+00 .40902080E-01 .25001931E-01 .17990517E-03
+ .12600114E+00 .41632113E-01 .25845023E-01 .18938006E-03
+ .12820616E+00 .42375682E-01 .26715084E-01 .19934887E-03
+ .13044977E+00 .43133064E-01 .27612873E-01 .20983691E-03
+ .13273264E+00 .43904543E-01 .28539161E-01 .22087070E-03
+ .13505546E+00 .44690410E-01 .29494730E-01 .23247810E-03
+ .13741893E+00 .45490964E-01 .30480377E-01 .24468834E-03
+ .13982376E+00 .46306512E-01 .31496910E-01 .25753209E-03
+ .14227068E+00 .47137368E-01 .32545147E-01 .27104150E-03
+ .14476041E+00 .47983855E-01 .33625919E-01 .28525030E-03
+ .14729372E+00 .48846303E-01 .34740064E-01 .30019388E-03
+ .14987136E+00 .49725052E-01 .35888432E-01 .31590931E-03
+ .15249411E+00 .50620452E-01 .37071878E-01 .33243547E-03
+ .15516276E+00 .51532861E-01 .38291265E-01 .34981311E-03
+ .15787811E+00 .52462646E-01 .39547461E-01 .36808491E-03
+ .16064097E+00 .53410185E-01 .40841338E-01 .38729561E-03
+ .16345219E+00 .54375866E-01 .42173770E-01 .40749206E-03
+ .16631260E+00 .55360089E-01 .43545633E-01 .42872333E-03
+ .16922307E+00 .56363264E-01 .44957801E-01 .45104077E-03
+ .17218448E+00 .57385810E-01 .46411145E-01 .47449816E-03
+ .17519771E+00 .58428163E-01 .47906531E-01 .49915177E-03
+ .17826367E+00 .59490767E-01 .49444817E-01 .52506047E-03
+ .18138328E+00 .60574080E-01 .51026850E-01 .55228584E-03
+ .18455749E+00 .61678572E-01 .52653467E-01 .58089226E-03
+ .18778724E+00 .62804729E-01 .54325486E-01 .61094705E-03
+ .19107352E+00 .63953049E-01 .56043707E-01 .64252057E-03
+ .19441731E+00 .65124044E-01 .57808908E-01 .67568630E-03
+ .19781961E+00 .66318240E-01 .59621840E-01 .71052102E-03
+ .20128145E+00 .67536182E-01 .61483224E-01 .74710487E-03
+ .20480388E+00 .68778426E-01 .63393748E-01 .78552153E-03
+ .20838795E+00 .70045547E-01 .65354058E-01 .82585827E-03
+ .21203473E+00 .71338136E-01 .67364760E-01 .86820615E-03
+ .21574534E+00 .72656800E-01 .69426410E-01 .91266009E-03
+ .21952089E+00 .74002164E-01 .71539510E-01 .95931904E-03
+ .22336250E+00 .75374872E-01 .73704502E-01 .10082861E-02
+ .22727135E+00 .76775583E-01 .75921765E-01 .10596685E-02
+ .23124859E+00 .78204979E-01 .78191605E-01 .11135781E-02
+ .23529544E+00 .79663758E-01 .80514249E-01 .11701310E-02
+ .23941311E+00 .81152639E-01 .82889841E-01 .12294482E-02
+ .24360284E+00 .82672358E-01 .85318433E-01 .12916553E-02
+ .24786589E+00 .84223674E-01 .87799978E-01 .13568829E-02
+ .25220355E+00 .85807363E-01 .90334321E-01 .14252665E-02
+ .25661711E+00 .87424225E-01 .92921196E-01 .14969468E-02
+ .26110791E+00 .89075076E-01 .95560211E-01 .15720697E-02
+ .26567730E+00 .90760755E-01 .98250846E-01 .16507864E-02
+ .27032665E+00 .92482119E-01 .10099244E+00 .17332537E-02
+ .27505737E+00 .94240046E-01 .10378419E+00 .18196338E-02
+ .27987087E+00 .96035431E-01 .10662512E+00 .19100946E-02
+ .28476861E+00 .97869188E-01 .10951412E+00 .20048097E-02
+ .28975206E+00 .99742251E-01 .11244988E+00 .21039584E-02
+ .29482272E+00 .10165557E+00 .11543092E+00 .22077260E-02
+ .29998212E+00 .10361010E+00 .11845557E+00 .23163035E-02
+ .30523181E+00 .10560682E+00 .12152196E+00 .24298880E-02
+ .31057336E+00 .10764672E+00 .12462801E+00 .25486826E-02
+ .31600840E+00 .10973080E+00 .12777145E+00 .26728963E-02
+ .32153854E+00 .11186006E+00 .13094976E+00 .28027441E-02
+ .32716547E+00 .11403550E+00 .13416023E+00 .29384471E-02
+ .33289086E+00 .11625812E+00 .13739988E+00 .30802322E-02
+ .33871645E+00 .11852893E+00 .14066554E+00 .32283324E-02
+ .34464399E+00 .12084890E+00 .14395377E+00 .33829866E-02
+ .35067526E+00 .12321902E+00 .14726091E+00 .35444396E-02
+ .35681208E+00 .12564021E+00 .15058307E+00 .37129419E-02
+ .36305629E+00 .12811341E+00 .15391610E+00 .38887498E-02
+ .36940978E+00 .13063948E+00 .15725563E+00 .40721253E-02
+ .37587445E+00 .13321925E+00 .16059708E+00 .42633359E-02
+ .38245225E+00 .13585348E+00 .16393562E+00 .44626546E-02
+ .38914516E+00 .13854286E+00 .16726622E+00 .46703599E-02
+ .39595520E+00 .14128800E+00 .17058368E+00 .48867358E-02
+ .40288442E+00 .14408940E+00 .17388257E+00 .51120713E-02
+ .40993490E+00 .14694744E+00 .17715735E+00 .53466609E-02
+ .41710876E+00 .14986237E+00 .18040228E+00 .55908043E-02
+ .42440816E+00 .15283427E+00 .18361154E+00 .58448064E-02
+ .43183530E+00 .15586306E+00 .18677920E+00 .61089778E-02
+ .43939242E+00 .15894844E+00 .18989927E+00 .63836341E-02
+ .44708179E+00 .16208987E+00 .19296572E+00 .66690970E-02
+ .45490572E+00 .16528659E+00 .19597254E+00 .69656938E-02
+ .46286657E+00 .16853750E+00 .19891375E+00 .72737583E-02
+ .47096674E+00 .17184122E+00 .20178346E+00 .75936309E-02
+ .47920865E+00 .17519598E+00 .20457588E+00 .79256594E-02
+ .48759481E+00 .17859965E+00 .20728544E+00 .82701995E-02
+ .49612771E+00 .18204963E+00 .20990674E+00 .86276160E-02
+ .50480995E+00 .18554289E+00 .21243466E+00 .89982833E-02
+ .51364412E+00 .18907587E+00 .21486441E+00 .93825870E-02
+ .52263290E+00 .19264445E+00 .21719154E+00 .97809253E-02
+ .53177897E+00 .19624393E+00 .21941202E+00 .10193710E-01
+ .54108510E+00 .19986899E+00 .22152225E+00 .10621370E-01
+ .55055409E+00 .20351363E+00 .22351916E+00 .11064352E-01
+ .56018879E+00 .20717116E+00 .22540018E+00 .11523121E-01
+ .56999209E+00 .21083415E+00 .22716332E+00 .11998168E-01
+ .57996695E+00 .21449442E+00 .22880720E+00 .12490008E-01
+ .59011638E+00 .21814303E+00 .23033104E+00 .12999185E-01
+ .60044341E+00 .22177027E+00 .23173470E+00 .13526276E-01
+ .61095117E+00 .22536562E+00 .23301867E+00 .14071894E-01
+ .62164282E+00 .22891787E+00 .23418407E+00 .14636691E-01
+ .63252157E+00 .23241504E+00 .23523265E+00 .15221362E-01
+ .64359070E+00 .23584451E+00 .23616674E+00 .15826652E-01
+ .65485353E+00 .23919306E+00 .23698923E+00 .16453356E-01
+ .66631347E+00 .24244693E+00 .23770351E+00 .17102324E-01
+ .67797395E+00 .24559202E+00 .23831338E+00 .17774469E-01
+ .68983850E+00 .24861392E+00 .23882302E+00 .18470766E-01
+ .70191067E+00 .25149815E+00 .23923689E+00 .19192256E-01
+ .71419411E+00 .25423030E+00 .23955958E+00 .19940055E-01
+ .72669251E+00 .25679624E+00 .23979576E+00 .20715347E-01
+ .73940963E+00 .25918234E+00 .23995000E+00 .21519395E-01
+ .75234929E+00 .26137572E+00 .24002668E+00 .22353537E-01
+ .76551541E+00 .26336444E+00 .24002984E+00 .23219189E-01
+ .77891193E+00 .26513779E+00 .23996305E+00 .24117841E-01
+ .79254288E+00 .26668651E+00 .23982926E+00 .25051061E-01
+ .80641239E+00 .26800297E+00 .23963071E+00 .26020485E-01
+ .82052460E+00 .26908138E+00 .23936877E+00 .27027821E-01
+ .83488378E+00 .26991789E+00 .23904394E+00 .28074841E-01
+ .84949425E+00 .27051073E+00 .23865570E+00 .29163377E-01
+ .86436040E+00 .27086014E+00 .23820261E+00 .30295318E-01
+ .87948671E+00 .27096835E+00 .23768224E+00 .31472606E-01
+ .89487772E+00 .27083940E+00 .23709137E+00 .32697236E-01
+ .91053808E+00 .27047885E+00 .23642612E+00 .33971261E-01
+ .92647250E+00 .26989351E+00 .23568217E+00 .35296793E-01
+ .94268577E+00 .26909092E+00 .23485512E+00 .36676018E-01
+ .95918277E+00 .26807890E+00 .23394081E+00 .38111217E-01
+ .97596847E+00 .26686503E+00 .23293571E+00 .39604788E-01
+ .99304792E+00 .26545618E+00 .23183729E+00 .41159276E-01
+ .10104263E+01 .26385822E+00 .23064428E+00 .42777409E-01
+ .10281087E+01 .26207592E+00 .22935672E+00 .44462116E-01
+ .10461006E+01 .26011333E+00 .22797559E+00 .46216538E-01
+ .10644074E+01 .25797453E+00 .22650232E+00 .48044008E-01
+ .10830345E+01 .25566395E+00 .22493835E+00 .49948043E-01
+ .11019876E+01 .25318627E+00 .22328529E+00 .51932358E-01
+ .11212724E+01 .25054646E+00 .22154487E+00 .54000884E-01
+ .11408947E+01 .24774974E+00 .21971892E+00 .56157774E-01
+ .11608603E+01 .24480159E+00 .21780938E+00 .58407421E-01
+ .11811754E+01 .24170771E+00 .21581830E+00 .60754472E-01
+ .12018459E+01 .23847402E+00 .21374781E+00 .63203845E-01
+ .12228782E+01 .23510667E+00 .21160014E+00 .65760743E-01
+ .12442786E+01 .23161195E+00 .20937761E+00 .68430677E-01
+ .12660535E+01 .22799636E+00 .20708263E+00 .71219483E-01
+ .12882094E+01 .22426653E+00 .20471766E+00 .74133344E-01
+ .13107531E+01 .22042924E+00 .20228527E+00 .77178813E-01
+ .13336913E+01 .21649137E+00 .19978805E+00 .80362835E-01
+ .13570309E+01 .21245993E+00 .19722870E+00 .83692775E-01
+ .13807789E+01 .20834197E+00 .19460995E+00 .87176447E-01
+ .14049425E+01 .20414465E+00 .19193457E+00 .90822141E-01
+ .14295290E+01 .19987515E+00 .18920541E+00 .94638658E-01
+ .14545458E+01 .19554068E+00 .18642532E+00 .98635341E-01
+ .14800003E+01 .19114848E+00 .18359722E+00 .10282212E+00
+ .15059003E+01 .18670577E+00 .18072405E+00 .10720954E+00
+ .15322536E+01 .18221974E+00 .17780875E+00 .11180881E+00
+ .15590680E+01 .17769757E+00 .17485432E+00 .11663186E+00
+ .15863517E+01 .17314636E+00 .17186375E+00 .12169138E+00
+ .16141129E+01 .16857314E+00 .16884004E+00 .12700086E+00
+ .16423599E+01 .16398486E+00 .16578621E+00 .13257468E+00
+ .16711012E+01 .15938835E+00 .16270528E+00 .13842816E+00
+ .17003454E+01 .15479035E+00 .15960024E+00 .14457760E+00
+ .17301015E+01 .15019744E+00 .15647411E+00 .15104041E+00
+ .17603783E+01 .14561607E+00 .15332986E+00 .15783514E+00
+ .17911849E+01 .14105253E+00 .15017047E+00 .16498158E+00
+ .18225306E+01 .13651292E+00 .14699890E+00 .17250086E+00
+ .18544249E+01 .13200317E+00 .14381805E+00 .18041556E+00
+ .18868773E+01 .12752901E+00 .14063083E+00 .18874979E+00
+ .19198977E+01 .12309597E+00 .13744011E+00 .19752933E+00
+ .19534959E+01 .11870935E+00 .13424869E+00 .20678177E+00
+ .19876821E+01 .11437424E+00 .13105936E+00 .21653661E+00
+ .20224665E+01 .11009547E+00 .12787486E+00 .22682544E+00
+ .20578597E+01 .10587767E+00 .12469788E+00 .23768210E+00
+ .20938722E+01 .10172518E+00 .12153105E+00 .24914287E+00
+ .21305150E+01 .97642098E-01 .11837696E+00 .26124664E+00
+ .21677990E+01 .93632275E-01 .11523811E+00 .27403513E+00
+ .22057355E+01 .89699284E-01 .11211697E+00 .28755313E+00
+ .22443358E+01 .85846436E-01 .10901594E+00 .30184877E+00
+ .22836117E+01 .82076769E-01 .10593733E+00 .31697373E+00
+ .23235749E+01 .78393054E-01 .10288341E+00 .33298362E+00
+ .23642375E+01 .74797785E-01 .99856358E-01 .34993824E+00
+ .24056116E+01 .71293186E-01 .96858274E-01 .36790200E+00
+ .24477098E+01 .67881211E-01 .93891191E-01 .38694426E+00
+ .24905448E+01 .64563544E-01 .90957055E-01 .40713979E+00
+ .25341293E+01 .61341603E-01 .88057737E-01 .42856923E+00
+ .25784766E+01 .58216544E-01 .85195019E-01 .45131963E+00
+ .26235999E+01 .55189264E-01 .82370603E-01 .00000000E+00
+ .26695129E+01 .52260409E-01 .79586106E-01 .00000000E+00
+ .27162294E+01 .49430376E-01 .76843057E-01 .00000000E+00
+ .27637634E+01 .46699326E-01 .74142901E-01 .00000000E+00
+ .28121293E+01 .44067185E-01 .71486996E-01 .00000000E+00
+ .28613415E+01 .41533657E-01 .68876617E-01 .00000000E+00
+ .29114150E+01 .39098228E-01 .66312949E-01 .00000000E+00
+ .29623648E+01 .36760180E-01 .63797095E-01 .00000000E+00
+ .30142061E+01 .34518601E-01 .61330076E-01 .00000000E+00
+ .30669547E+01 .32372389E-01 .58912829E-01 .00000000E+00
+ .31206265E+01 .30320269E-01 .56546209E-01 .00000000E+00
+ .31752374E+01 .28360803E-01 .54230996E-01 .00000000E+00
+ .32308041E+01 .26492397E-01 .51967889E-01 .00000000E+00
+ .32873431E+01 .24713319E-01 .49757517E-01 .00000000E+00
+ .33448716E+01 .23021703E-01 .47600433E-01 .00000000E+00
+ .34034069E+01 .21415566E-01 .45497120E-01 .00000000E+00
+ .34629665E+01 .19892819E-01 .43447997E-01 .00000000E+00
+ .35235684E+01 .18451274E-01 .41453412E-01 .00000000E+00
+ .35852309E+01 .17088660E-01 .39513653E-01 .00000000E+00
+ .36479724E+01 .15802632E-01 .37628944E-01 .00000000E+00
+ .37118119E+01 .14590781E-01 .35799449E-01 .00000000E+00
+ .37767686E+01 .13450646E-01 .34025273E-01 .00000000E+00
+ .38428621E+01 .12379721E-01 .32306458E-01 .00000000E+00
+ .39101122E+01 .11375467E-01 .30642991E-01 .00000000E+00
+ .39785391E+01 .10435322E-01 .29034792E-01 .00000000E+00
+ .40481636E+01 .95567058E-02 .27481725E-01 .00000000E+00
+ .41190064E+01 .87370320E-02 .25983583E-01 .00000000E+00
+ .41910891E+01 .79737139E-02 .24540095E-01 .00000000E+00
+ .42644331E+01 .72641724E-02 .23150919E-01 .00000000E+00
+ .43390607E+01 .66058437E-02 .21815638E-01 .00000000E+00
+ .44149943E+01 .59961859E-02 .20533758E-01 .00000000E+00
+ .44922567E+01 .54326860E-02 .19304705E-01 .00000000E+00
+ .45708712E+01 .49128666E-02 .18127822E-01 .00000000E+00
+ .46508614E+01 .44342922E-02 .17002371E-01 .00000000E+00
+ .47322515E+01 .39945757E-02 .15927528E-01 .00000000E+00
+ .48150659E+01 .35913847E-02 .14902386E-01 .00000000E+00
+ .48993295E+01 .32224471E-02 .13925963E-01 .00000000E+00
+ .49850678E+01 .28855567E-02 .12997199E-01 .00000000E+00
+ .50723065E+01 .25785787E-02 .12114967E-01 .00000000E+00
+ .51610718E+01 .22994538E-02 .11278077E-01 .00000000E+00
+ .52513906E+01 .20462026E-02 .10485286E-01 .00000000E+00
+ .53432899E+01 .18169286E-02 .97353034E-02 .00000000E+00
+ .54367975E+01 .16098209E-02 .90268027E-02 .00000000E+00
+ .55319415E+01 .14231557E-02 .83584253E-02 .00000000E+00
+ .56287504E+01 .12552976E-02 .77287903E-02 .00000000E+00
+ .57272536E+01 .11046999E-02 .71365007E-02 .00000000E+00
+ .58274805E+01 .96990387E-03 .65801491E-02 .00000000E+00
+ .59294614E+01 .84953840E-03 .60583234E-02 .00000000E+00
+ .60332270E+01 .74231813E-03 .55696118E-02 .00000000E+00
+ .61388085E+01 .64704178E-03 .51126069E-02 .00000000E+00
+ .62462376E+01 .56258991E-03 .46859099E-02 .00000000E+00
+ .63555468E+01 .48792240E-03 .42881345E-02 .00000000E+00
+ .64667688E+01 .42207563E-03 .39179101E-02 .00000000E+00
+ .65799373E+01 .36415955E-03 .35738854E-02 .00000000E+00
+ .66950862E+01 .31335447E-03 .32547316E-02 .00000000E+00
+ .68122502E+01 .26890778E-03 .29591448E-02 .00000000E+00
+ .69314646E+01 .23013057E-03 .26858493E-02 .00000000E+00
+ .70527652E+01 .19639416E-03 .24335995E-02 .00000000E+00
+ .71761886E+01 .16712661E-03 .22011829E-02 .00000000E+00
+ .73017719E+01 .14180924E-03 .19874213E-02 .00000000E+00
+ .74295529E+01 .11997315E-03 .17911731E-02 .00000000E+00
+ .75595701E+01 .10119583E-03 .16113348E-02 .00000000E+00
+ .76918626E+01 .85097769E-04 .14468423E-02 .00000000E+00
+ .78264702E+01 .71339207E-04 .12966720E-02 .00000000E+00
+ .79634334E+01 .59617001E-04 .11598415E-02 .00000000E+00
+ .81027935E+01 .49661576E-04 .10354104E-02 .00000000E+00
+ .82445924E+01 .41234027E-04 .92248093E-03 .00000000E+00
+ .83888727E+01 .34123362E-04 .82019760E-03 .00000000E+00
+ .85356780E+01 .28143894E-04 .72774770E-03 .00000000E+00
+ .86850524E+01 .23132784E-04 .64436085E-03 .00000000E+00
+ .88370408E+01 .18947748E-04 .56930871E-03 .00000000E+00
+ .89916890E+01 .15464909E-04 .50190439E-03 .00000000E+00
+ .91490436E+01 .12576821E-04 .44150171E-03 .00000000E+00
+ .93091518E+01 .10190637E-04 .38749442E-03 .00000000E+00
+ .94720620E+01 .82264295E-05 .33931510E-03 .00000000E+00
+ .96378231E+01 .66156600E-05 .29643415E-03 .00000000E+00
+ .98064850E+01 .52997859E-05 .25835848E-03 .00000000E+00
+ .99780984E+01 .42290016E-05 .22463027E-03 .00000000E+00
+ .10152715E+02 .33611055E-05 .19482556E-03 .00000000E+00
+ .10330388E+02 .26604851E-05 .16855276E-03 .00000000E+00
+ .10511169E+02 .20972145E-05 .14545130E-03 .00000000E+00
+ .10695115E+02 .16462482E-05 .12518970E-03 .00000000E+00
+ .10882279E+02 .12867274E-05 .10746527E-03 .00000000E+00
+ .11072719E+02 .10013204E-05 .91998686E-04 .00000000E+00
+ .11266492E+02 .77577439E-06 .78542586E-04 .00000000E+00
+ .11463656E+02 .59826674E-06 .66859971E-04 .00000000E+00
+ .11664270E+02 .45920219E-06 .56746827E-04 .00000000E+00
+ .11868394E+02 .35081408E-06 .48025200E-04 .00000000E+00
+ .12076091E+02 .26674906E-06 .40527663E-04 .00000000E+00
+ .12287423E+02 .20185817E-06 .34100988E-04 .00000000E+00
+ .12502453E+02 .15200947E-06 .28608333E-04 .00000000E+00
+ .12721246E+02 .11390393E-06 .23927934E-04 .00000000E+00
+ .12943867E+02 .84920529E-07 .19951762E-04 .00000000E+00
+ .13170385E+02 .62987454E-07 .16584273E-04 .00000000E+00
+ .13400867E+02 .46475441E-07 .13741234E-04 .00000000E+00
+ .13635382E+02 .34109940E-07 .11348629E-04 .00000000E+00
+ .13874001E+02 .24899220E-07 .93416237E-05 .00000000E+00
+ .14116796E+02 .00000000E+00 .76636273E-05 .00000000E+00
+ .14363840E+02 .00000000E+00 .62653927E-05 .00000000E+00
+ .14615207E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .14870973E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .15131215E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .15396012E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .15665442E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .15939587E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .16218530E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .16502354E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .16791145E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .17084990E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .17383978E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .17688197E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .17997741E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .18312701E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .18633174E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .18959254E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .19291041E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .19628634E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .19972135E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .20321648E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .20677277E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .21039129E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .21407314E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .21781942E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .22163126E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .22550980E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .22945622E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .23347171E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .23755746E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .24171472E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .24594473E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .25024876E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .25462811E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .25908410E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .26361808E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .26823139E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .27292544E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .27770164E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .28256142E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .28750624E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .29253760E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .29765701E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .30286601E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .30816616E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .31355907E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .31904635E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .32462966E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .33031068E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .33609112E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .34197271E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .34795724E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .35404649E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .36024230E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .36654654E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .37296111E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .37948793E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .38612896E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .39288622E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .39976173E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .40675756E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .41387582E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .42111864E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .42848822E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .43598676E+02 .00000000E+00 .00000000E+00 .00000000E+00
+&END
diff --git a/var/spack/repos/builtin/packages/cpp-httplib/package.py b/var/spack/repos/builtin/packages/cpp-httplib/package.py
index 2774a95bd1..eaeb220385 100644
--- a/var/spack/repos/builtin/packages/cpp-httplib/package.py
+++ b/var/spack/repos/builtin/packages/cpp-httplib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cpp-termcolor/package.py b/var/spack/repos/builtin/packages/cpp-termcolor/package.py
new file mode 100644
index 0000000000..3fb447f375
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cpp-termcolor/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 CppTermcolor(CMakePackage):
+ """
+ Termcolor is a header-only C++ library for printing colored messages to the
+ terminal.
+ """
+
+ homepage = "https://github.com/ikalnytskyi/termcolor"
+ url = "https://github.com/ikalnytskyi/termcolor/archive/refs/tags/v2.0.0.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('2.0.0', sha256='4a73a77053822ca1ed6d4a2af416d31028ec992fb0ffa794af95bd6216bb6a20')
+
+ depends_on('cmake@3.0:', type='build')
+
+ def cmake_args(self):
+ return [
+ self.define('TERMCOLOR_TESTS', 'OFF')
+ ]
diff --git a/var/spack/repos/builtin/packages/cppad/package.py b/var/spack/repos/builtin/packages/cppad/package.py
index 28b1e4faee..6f7ea89d4b 100644
--- a/var/spack/repos/builtin/packages/cppad/package.py
+++ b/var/spack/repos/builtin/packages/cppad/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cppcheck/package.py b/var/spack/repos/builtin/packages/cppcheck/package.py
index 7d00ca4969..ed001ccbfc 100644
--- a/var/spack/repos/builtin/packages/cppcheck/package.py
+++ b/var/spack/repos/builtin/packages/cppcheck/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,10 @@ class Cppcheck(MakefilePackage):
url = "https://downloads.sourceforge.net/project/cppcheck/cppcheck/1.78/cppcheck-1.78.tar.bz2"
version('2.1', sha256='ab26eeef039e5b58aac01efb8cb664f2cc16bf9879c61bc93cd00c95be89a5f7')
+ version('2.0', sha256='5f77d36a37ed9ef58ea8b499e4b1db20468114c9ca12b5fb39b95906cab25a3f')
+ version('1.90', sha256='43758d56613596c29440e55ea96a5a13e36f81ca377a8939648b5242faf61883')
+ version('1.89', sha256='5f02389cb24554f5a7ac3d29db8ac19c740f23c92e97eb7fec3881fe86c26f2c')
+ version('1.88', sha256='bb25441749977713476dc630dfe7617b3d9e95c46fec0edbec4ff8ff6fda38ca')
version('1.87', sha256='e3b0a46747822471df275417d4b74b56ecac88367433e7428f39288a32c581ca')
version('1.81', sha256='bb694f37ae0b5fed48c6cdc2fb5e528daf32cefc64e16b1a520c5411323cf27e')
version('1.78', sha256='e42696f7d6321b98cb479ad9728d051effe543b26aca8102428f60b9850786b1')
diff --git a/var/spack/repos/builtin/packages/cppgsl/package.py b/var/spack/repos/builtin/packages/cppgsl/package.py
index ce045a7c68..1695283f0a 100644
--- a/var/spack/repos/builtin/packages/cppgsl/package.py
+++ b/var/spack/repos/builtin/packages/cppgsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cpprestsdk/package.py b/var/spack/repos/builtin/packages/cpprestsdk/package.py
index 70425ed7db..40f4097879 100644
--- a/var/spack/repos/builtin/packages/cpprestsdk/package.py
+++ b/var/spack/repos/builtin/packages/cpprestsdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cppunit/package.py b/var/spack/repos/builtin/packages/cppunit/package.py
index ac6c22340f..b650e0efa4 100644
--- a/var/spack/repos/builtin/packages/cppunit/package.py
+++ b/var/spack/repos/builtin/packages/cppunit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Cppunit(AutotoolsPackage):
"""Obsolete Unit testing framework for C++"""
homepage = "https://wiki.freedesktop.org/www/Software/cppunit/"
- url = "http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz"
+ url = "https://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz"
version('1.14.0', sha256='3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780')
version('1.13.2', sha256='3f47d246e3346f2ba4d7c9e882db3ad9ebd3fcbd2e8b732f946e0e3eeb9f429f')
@@ -26,3 +26,7 @@ class Cppunit(AutotoolsPackage):
cxxstdflag = '' if cxxstd == 'default' else \
getattr(self.compiler, 'cxx{0}_flag'.format(cxxstd))
env.append_flags('CXXFLAGS', cxxstdflag)
+
+ def configure_args(self):
+ args = ["--disable-doxygen"]
+ return args
diff --git a/var/spack/repos/builtin/packages/cppzmq/package.py b/var/spack/repos/builtin/packages/cppzmq/package.py
index 2d5191c0cd..77367f6ef2 100644
--- a/var/spack/repos/builtin/packages/cppzmq/package.py
+++ b/var/spack/repos/builtin/packages/cppzmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,11 +9,12 @@ from spack import *
class Cppzmq(CMakePackage):
"""C++ binding for 0MQ"""
- homepage = "http://www.zeromq.org"
+ homepage = "https://www.zeromq.org"
url = "https://github.com/zeromq/cppzmq/archive/v4.2.2.tar.gz"
git = "https://github.com/zeromq/cppzmq.git"
version('master', branch='master')
+ version('4.7.1', sha256='9853e0437d834cbed5d3c223bf1d755cadee70e7c964c6e42c4c6783dee5d02c')
version('4.6.0', sha256='e9203391a0b913576153a2ad22a2dc1479b1ec325beb6c46a3237c669aef5a52')
version('4.5.0', sha256='64eb4e58eaf0c77505391c6c9a606cffcb57c6086f3431567a1ef4a25b01fa36')
version('4.4.1', sha256='117fc1ca24d98dbe1a60c072cde13be863d429134907797f8e03f654ce679385')
@@ -22,12 +23,19 @@ class Cppzmq(CMakePackage):
version('4.2.3', sha256='3e6b57bf49115f4ae893b1ff7848ead7267013087dc7be1ab27636a97144d373')
version('4.2.2', sha256='3ef50070ac5877c06c6bb25091028465020e181bbfd08f110294ed6bc419737d')
+ variant("drafts", default=False,
+ description="Build and install draft classes and methods")
+
depends_on('cmake@3.0.0:', type='build')
depends_on('libzmq')
depends_on('libzmq@4.2.2', when='@4.2.2:4.2.3')
+ depends_on('libzmq+drafts', when='+drafts')
def cmake_args(self):
args = []
+
+ args.append(self.define_from_variant("ENABLE_DRAFTS", "drafts"))
+
# https://github.com/zeromq/cppzmq/issues/422
# https://github.com/zeromq/cppzmq/pull/288
args.append('-DCPPZMQ_BUILD_TESTS=OFF')
diff --git a/var/spack/repos/builtin/packages/cpu-features/package.py b/var/spack/repos/builtin/packages/cpu-features/package.py
index 9ee4d483ee..0c69984248 100644
--- a/var/spack/repos/builtin/packages/cpu-features/package.py
+++ b/var/spack/repos/builtin/packages/cpu-features/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cpuinfo/package.py b/var/spack/repos/builtin/packages/cpuinfo/package.py
index ba341f822a..9736e62e86 100644
--- a/var/spack/repos/builtin/packages/cpuinfo/package.py
+++ b/var/spack/repos/builtin/packages/cpuinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,4 +13,39 @@ class Cpuinfo(CMakePackage):
homepage = "https://github.com/Maratyszcza/cpuinfo/"
git = "https://github.com/Maratyszcza/cpuinfo.git"
- version('master')
+ version('master', branch='master')
+ version('2020-12-17', commit='5916273f79a21551890fd3d56fc5375a78d1598d') # py-torch@1.8:1.9
+ version('2020-06-11', commit='63b254577ed77a8004a9be6ac707f3dccc4e1fd9') # py-torch@1.6:1.7
+ version('2020-01-21', commit='0e6bde92b343c5fbcfe34ecd41abf9515d54b4a7') # py-torch@1.5
+ version('2019-01-17', commit='89fe1695edf9ee14c22f815f24bac45577a4f135') # py-torch@1.0.1:1.4
+ version('2018-10-05', commit='c342292afb040c868849bc15e96ab894dceba2bc') # py-torch@1.0.0
+ version('2018-05-13', commit='1e6c8c99d27f2b5eb9d2e6231055c6a4115b85e5') # py-torch@0.4.1
+ version('2018-04-04', commit='831dc28341b5f20d13e840caf87eaba644d82643') # py-torch@:0.4.0
+
+ depends_on('cmake@3.5:', type='build')
+ depends_on('ninja', type='build')
+
+ resource(
+ name='googletest',
+ url='https://github.com/google/googletest/archive/release-1.10.0.zip',
+ sha256='94c634d499558a76fa649edb13721dce6e98fb1e7018dfaeba3cd7a083945e91',
+ destination='deps',
+ placement='googletest',
+ )
+ resource(
+ name='googlebenchmark',
+ url='https://github.com/google/benchmark/archive/v1.2.0.zip',
+ sha256='cc463b28cb3701a35c0855fbcefb75b29068443f1952b64dd5f4f669272e95ea',
+ destination='deps',
+ placement='googlebenchmark',
+ )
+
+ generator = 'Ninja'
+
+ def cmake_args(self):
+ return [
+ self.define('GOOGLETEST_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googletest')),
+ self.define('GOOGLEBENCHMARK_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googlebenchmark')),
+ ]
diff --git a/var/spack/repos/builtin/packages/cqrlib/cqr.patch b/var/spack/repos/builtin/packages/cqrlib/cqr.patch
new file mode 100644
index 0000000000..8473a54181
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cqrlib/cqr.patch
@@ -0,0 +1,20 @@
+--- a/cqrlib.h 2021-01-27 16:52:35.771183668 +0900
++++ b/cqrlib.h 2021-01-27 16:53:22.371528465 +0900
+@@ -573,7 +573,7 @@
+ {
+ CPPQR vquat( 0.0, v[0], v[1], v[2] );
+ const CPPQR wquat = (*this)*vquat;
+- const CPPQR qconj = *this.Conjugate( );
++ const CPPQR qconj = (*this).Conjugate();
+ vquat = wquat * qconj;
+ w[0] = vquat.x; w[1] = vquat.y; w[2] = vquat.z;
+ return;
+@@ -583,7 +583,7 @@
+ {
+ CPPQR vquat( 0.0, v[0], v[1], v[2] );
+ const CPPQR wquat = (*this)*vquat;
+- const CPPQR qconj = *this.Conjugate( );
++ const CPPQR qconj = (*this).Conjugate();
+ vquat = wquat * qconj;
+ return VectorType(vquat.x, vquat.y, vquat.z);
+ }
diff --git a/var/spack/repos/builtin/packages/cqrlib/package.py b/var/spack/repos/builtin/packages/cqrlib/package.py
new file mode 100644
index 0000000000..97d587f277
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cqrlib/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 Cqrlib(MakefilePackage):
+ """CQRlib -- ANSI C API for Quaternion Rotations"""
+
+ homepage = "http://cqrlib.sourceforge.net/"
+ url = "https://downloads.sourceforge.net/project/cqrlib/cqrlib/CQRlib-1.1.2/CQRlib-1.1.2.tar.gz"
+
+ version('1.1.2', sha256='af3cf2402974579f3c6efc6a6174a5da52786db4bfee9d38d504d93bc42410fd')
+
+ depends_on('libtool', type='build')
+
+ patch('cqr.patch')
+
+ def edit(self, spec, prefix):
+ mf = FileFilter('Makefile')
+ mf.filter(r'^CC.+', "CC = {0}".format(spack_cc))
+ mf.filter(r'^CXX.+', "CXX = {0}".format(spack_cxx))
+ mf.filter(r'^INSTALLDIR .+', "INSTALLDIR = {0}".format(prefix))
+
+ def build(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin/packages/cquery/fix-gcc10.patch b/var/spack/repos/builtin/packages/cquery/fix-gcc10.patch
new file mode 100644
index 0000000000..3e62637f0f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cquery/fix-gcc10.patch
@@ -0,0 +1,10 @@
+diff -purw src/options.h src/options.h
+--- src/options.h 2020-05-13 13:26:39.743491698 +0200
++++ src/options.h 2020-05-13 13:28:47.277181534 +0200
+@@ -1,5 +1,6 @@
+ #pragma once
+
++#include <string>
+ #include <unordered_map>
+
+ std::unordered_map<std::string, std::string> ParseOptions(int argc,
diff --git a/var/spack/repos/builtin/packages/cquery/package.py b/var/spack/repos/builtin/packages/cquery/package.py
index 76e05d086f..f9338a2ab4 100644
--- a/var/spack/repos/builtin/packages/cquery/package.py
+++ b/var/spack/repos/builtin/packages/cquery/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,6 +18,9 @@ class Cquery(CMakePackage):
depends_on('llvm')
+ # trivial patch (missing header) by mueller@kip.uni-heidelberg.de
+ patch('fix-gcc10.patch', level=0, when='%gcc@10.0:')
+
def cmake_args(self):
args = ['-DCMAKE_EXPORT_COMPILE_COMMANDS=YES',
'-DSYSTEM_CLANG=ON']
diff --git a/var/spack/repos/builtin/packages/cracklib/package.py b/var/spack/repos/builtin/packages/cracklib/package.py
index 43ae03906a..1cb6e5d6cf 100644
--- a/var/spack/repos/builtin/packages/cracklib/package.py
+++ b/var/spack/repos/builtin/packages/cracklib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cradl/package.py b/var/spack/repos/builtin/packages/cradl/package.py
index 2f42736d97..8db35b2ddc 100644
--- a/var/spack/repos/builtin/packages/cradl/package.py
+++ b/var/spack/repos/builtin/packages/cradl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cram/package.py b/var/spack/repos/builtin/packages/cram/package.py
index a13b67a2ec..2d81679eea 100644
--- a/var/spack/repos/builtin/packages/cram/package.py
+++ b/var/spack/repos/builtin/packages/cram/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cray-fftw/package.py b/var/spack/repos/builtin/packages/cray-fftw/package.py
new file mode 100644
index 0000000000..ffc713d3a0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cray-fftw/package.py
@@ -0,0 +1,75 @@
+# Copyright 2013-2021 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 CrayFftw(Package):
+ """FFTW is a C subroutine library for computing the discrete Fourier
+ transform (DFT) in one or more dimensions, of arbitrary input
+ size, and of both real and complex data (as well as of even/odd
+ data, i.e. the discrete cosine/sine transforms or DCT/DST).
+ This package is a wrapper for Cray's version of FFTW.
+
+ To install this package, list it as an external package in packages.yaml,
+ and make sure to load the correct cray-fftw module. In some cases you
+ need to load cray-mpich before cray-fftw.
+ """
+
+ homepage = "https://docs.nersc.gov/development/libraries/fftw/"
+ has_code = False # Skip attempts to fetch source that is not available
+
+ maintainers = ['haampie']
+
+ version('3.3.8.8')
+ version('3.3.8.7')
+
+ provides('fftw-api@3')
+
+ variant(
+ 'precision', values=any_combination_of(
+ 'float', 'double'
+ ).prohibit_empty_set().with_default('float,double'),
+ description='Build the selected floating-point precision libraries'
+ )
+
+ variant('openmp', default=False, description="Enable OpenMP support.")
+ variant('mpi', default=True, description='Activate MPI support')
+ depends_on('mpi', when='+mpi')
+
+ def install(self, spec, prefix):
+ raise InstallError(
+ self.spec.format('{name} is not installable, you need to specify '
+ 'it as an external package in packages.yaml'))
+
+ @property
+ def libs(self):
+
+ # Reduce repetitions of entries
+ query_parameters = list(llnl.util.lang.dedupe(
+ self.spec.last_query.extra_parameters
+ ))
+
+ # List of all the suffixes associated with float precisions
+ precisions = [
+ ('float', 'f'),
+ ('double', ''),
+ ]
+
+ # Retrieve the correct suffixes, or use double as a default
+ suffixes = [v for k, v in precisions if k in query_parameters] or ['']
+
+ # Construct the list of libraries that needs to be found
+ libraries = []
+ for sfx in suffixes:
+ if 'mpi' in query_parameters and '+mpi' in self.spec:
+ libraries.append('libfftw3' + sfx + '_mpi')
+
+ if 'openmp' in query_parameters and '+openmp' in self.spec:
+ libraries.append('libfftw3' + sfx + '_omp')
+
+ libraries.append('libfftw3' + sfx)
+
+ return find_libraries(libraries, root=self.prefix, recursive=True)
diff --git a/var/spack/repos/builtin/packages/cray-libsci/package.py b/var/spack/repos/builtin/packages/cray-libsci/package.py
index 126ed28a54..bb21ecdfef 100755
--- a/var/spack/repos/builtin/packages/cray-libsci/package.py
+++ b/var/spack/repos/builtin/packages/cray-libsci/package.py
@@ -1,9 +1,8 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.util.module_cmd import module
-from spack.util.module_cmd import get_path_args_from_module_line
+from spack.util.module_cmd import get_path_args_from_module_line, module
class CrayLibsci(Package):
@@ -14,6 +13,7 @@ class CrayLibsci(Package):
has_code = False # Skip attempts to fetch source that is not available
version("20.06.1")
+ version("20.03.1")
version("19.06.1")
version("18.12.1")
version("18.11.1.2")
@@ -35,7 +35,8 @@ class CrayLibsci(Package):
'gcc': 'GNU',
'cce': 'CRAY',
'intel': 'INTEL',
- 'clang': 'ALLINEA'
+ 'clang': 'ALLINEA',
+ 'aocc': 'AOCC'
}
@property
@@ -55,16 +56,19 @@ class CrayLibsci(Package):
shared = True if "+shared" in self.spec else False
compiler = self.spec.compiler.name
+ lib = []
if "+openmp" in self.spec and "+mpi" in self.spec:
- lib = "libsci_{0}_mpi_mp"
+ lib = ["libsci_{0}_mpi_mp", "libsci_{0}_mp"]
elif "+openmp" in self.spec:
- lib = "libsci_{0}_mp"
+ lib = ["libsci_{0}_mp"]
elif "+mpi" in self.spec:
- lib = "libsci_{0}_mpi"
+ lib = ["libsci_{0}_mpi", "libsci_{0}"]
else:
- lib = "libsci_{0}"
+ lib = ["libsci_{0}"]
- libname = lib.format(self.canonical_names[compiler].lower())
+ libname = []
+ for lib_fmt in lib:
+ libname.append(lib_fmt.format(self.canonical_names[compiler].lower()))
return find_libraries(
libname,
@@ -80,6 +84,10 @@ class CrayLibsci(Package):
def scalapack_libs(self):
return self.blas_libs
+ @property
+ def libs(self):
+ return self.blas_libs
+
def install(self, spec, prefix):
raise InstallError(
self.spec.format('{name} is not installable, you need to specify '
diff --git a/var/spack/repos/builtin/packages/cray-mpich/package.py b/var/spack/repos/builtin/packages/cray-mpich/package.py
new file mode 100644
index 0000000000..fd7f253562
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cray-mpich/package.py
@@ -0,0 +1,126 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+from spack.util.module_cmd import get_path_args_from_module_line, module
+
+
+class CrayMpich(Package):
+ """Cray's MPICH is a high performance and widely portable implementation of
+ the Message Passing Interface (MPI) standard."""
+
+ homepage = "https://docs.nersc.gov/development/compilers/wrappers/"
+ has_code = False # Skip attempts to fetch source that is not available
+
+ maintainers = ['haampie']
+
+ version('8.1.7')
+ version('8.1.0')
+ version('8.0.16')
+ version('8.0.14')
+ version('8.0.11')
+ version('8.0.9')
+ version('7.7.16')
+ version('7.7.15')
+ version('7.7.14')
+ version('7.7.13')
+
+ provides('mpi@3')
+
+ canonical_names = {
+ 'gcc': 'GNU',
+ 'cce': 'CRAY',
+ 'intel': 'INTEL',
+ 'clang': 'ALLINEA',
+ 'aocc': 'AOCC'
+ }
+
+ @property
+ def modname(self):
+ return "cray-mpich/{0}".format(self.version)
+
+ @property
+ def external_prefix(self):
+ mpich_module = module("show", self.modname).splitlines()
+
+ for line in mpich_module:
+ if "CRAY_MPICH_DIR" in line:
+ return get_path_args_from_module_line(line)[0]
+
+ # Fixes an issue on Archer2 cray-mpich/8.0.16 where there is
+ # no CRAY_MPICH_DIR variable in the module file.
+ for line in mpich_module:
+ if "CRAY_LD_LIBRARY_PATH" in line:
+ libdir = get_path_args_from_module_line(line)[0]
+ return os.path.dirname(os.path.normpath(libdir))
+
+ def setup_run_environment(self, env):
+ if(self.spec.satisfies('@:8.1.6')):
+ env.set('MPICC', spack_cc)
+ env.set('MPICXX', spack_cxx)
+ env.set('MPIF77', spack_fc)
+ env.set('MPIF90', spack_fc)
+ else:
+ # cray-mpich 8.1.7: features MPI compiler wrappers
+ env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
+ env.set('MPICXX', join_path(self.prefix.bin, 'mpicxx'))
+ env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
+ env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ self.setup_run_environment(env)
+ env.set('MPICH_CC', spack_cc)
+ env.set('MPICH_CXX', spack_cxx)
+ env.set('MPICH_F77', spack_f77)
+ env.set('MPICH_F90', spack_fc)
+ env.set('MPICH_FC', spack_fc)
+
+ def setup_dependent_package(self, module, dependent_spec):
+ spec = self.spec
+ if(spec.satisfies('@:8.1.6')):
+ spec.mpicc = spack_cc
+ spec.mpicxx = spack_cxx
+ spec.mpifc = spack_fc
+ spec.mpif77 = spack_f77
+ else:
+ # cray-mpich 8.1.7: features MPI compiler wrappers
+ spec.mpicc = join_path(self.prefix.bin, 'mpicc')
+ spec.mpicxx = join_path(self.prefix.bin, 'mpicxx')
+ spec.mpifc = join_path(self.prefix.bin, 'mpif90')
+ spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
+
+ def install(self, spec, prefix):
+ raise InstallError(
+ self.spec.format('{name} is not installable, you need to specify '
+ 'it as an external package in packages.yaml'))
+
+ @property
+ def headers(self):
+ hdrs = find_headers('mpi', self.prefix.include, recursive=True)
+ hdrs.directories = os.path.dirname(hdrs[0])
+ return hdrs
+
+ @property
+ def libs(self):
+ query_parameters = self.spec.last_query.extra_parameters
+
+ libraries = ['libmpich']
+
+ if 'cxx' in query_parameters:
+ libraries.extend(['libmpicxx', 'libmpichcxx'])
+
+ if 'f77' in query_parameters:
+ libraries.extend(['libmpifort', 'libmpichfort',
+ 'libfmpi', 'libfmpich'])
+
+ if 'f90' in query_parameters:
+ libraries.extend(['libmpif90', 'libmpichf90'])
+
+ libs = find_libraries(libraries, root=self.prefix.lib, recursive=True)
+ libs += find_libraries(libraries, root=self.prefix.lib64, recursive=True)
+
+ return libs
diff --git a/var/spack/repos/builtin/packages/creduce/package.py b/var/spack/repos/builtin/packages/creduce/package.py
new file mode 100644
index 0000000000..0975216955
--- /dev/null
+++ b/var/spack/repos/builtin/packages/creduce/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 Creduce(CMakePackage):
+ """C-Reduce is a tool that takes a large C, C++, or OpenCL file that has a
+ property of interest (such as triggering a compiler bug) and automatically
+ produces a much smaller C/C++ file that has the same property. It is
+ intended for use by people who discover and report bugs in compilers and
+ other tools that process source code."""
+
+ homepage = "https://embed.cs.utah.edu/creduce/"
+ url = "https://github.com/csmith-project/creduce"
+ git = "https://github.com/csmith-project/creduce"
+ maintainers = ['olupton']
+
+ version('develop', branch='master')
+ version('2.10.0', tag='creduce-2.10.0')
+
+ depends_on('flex')
+ depends_on('libxml2')
+ depends_on('llvm@8.0.0', when='@:2.10.999')
+ depends_on('perl')
+ depends_on('perl-exporter-lite')
+ depends_on('perl-file-which')
+ depends_on('perl-getopt-tabular')
+ depends_on('perl-regexp-common')
+ depends_on('perl-termreadkey')
+ depends_on('zlib')
diff --git a/var/spack/repos/builtin/packages/cromwell-womtool/package.py b/var/spack/repos/builtin/packages/cromwell-womtool/package.py
index f40ce13c4f..e3330a2ac5 100644
--- a/var/spack/repos/builtin/packages/cromwell-womtool/package.py
+++ b/var/spack/repos/builtin/packages/cromwell-womtool/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class CromwellWomtool(Package):
"""Command line utilities for interacting with the
diff --git a/var/spack/repos/builtin/packages/cromwell/package.py b/var/spack/repos/builtin/packages/cromwell/package.py
index 21e1d9c779..2c6ccc67d3 100644
--- a/var/spack/repos/builtin/packages/cromwell/package.py
+++ b/var/spack/repos/builtin/packages/cromwell/package.py
@@ -1,18 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Cromwell(Package):
"""Cromwell is a Workflow Management System geared towards scientific
workflows.
"""
- homepage = "http://cromwell.readthedocs.io/"
+ homepage = "https://cromwell.readthedocs.io/"
url = "https://github.com/broadinstitute/cromwell/releases/download/44/cromwell-44.jar"
version('44', sha256='8b411673f6b3c835c6031db3094a7404b9a371133794046fd295719d61e56db0', expand=False)
diff --git a/var/spack/repos/builtin/packages/cronie/package.py b/var/spack/repos/builtin/packages/cronie/package.py
index 998e366418..8c763ec102 100644
--- a/var/spack/repos/builtin/packages/cronie/package.py
+++ b/var/spack/repos/builtin/packages/cronie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/crtm/package.py b/var/spack/repos/builtin/packages/crtm/package.py
new file mode 100644
index 0000000000..4147d5c4f4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/crtm/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 Crtm(CMakePackage):
+ """The Community Radiative Transfer Model (CRTM) package.
+ The CRTM is composed of four important modules for gaseous transmittance,
+ surface emission and reflection, cloud and aerosol absorption and
+ scattering, and a solver for a radiative transfer."""
+
+ homepage = "https://www.jcsda.org/jcsda-project-community-radiative-transfer-model"
+ url = "https://github.com/NOAA-EMC/EMC_crtm/archive/refs/tags/v2.3.0.tar.gz"
+
+ maintainers = ['t-brown', 'edwardhartnett', 'kgerheiser', 'Hang-Lei-NOAA']
+
+ version('2.3.0', sha256='3e2c87ae5498c33dd98f9ede5c39e33ee7f298c7317b12adeb552e3a572700ce')
diff --git a/var/spack/repos/builtin/packages/cryptopp/package.py b/var/spack/repos/builtin/packages/cryptopp/package.py
index fa586eca4b..d485224e84 100644
--- a/var/spack/repos/builtin/packages/cryptopp/package.py
+++ b/var/spack/repos/builtin/packages/cryptopp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class Cryptopp(MakefilePackage):
public-key encryption (RSA, DSA), and a few obsolete/historical encryption
algorithms (MD5, Panama)."""
- homepage = "http://www.cryptopp.com"
- url = "http://www.cryptopp.com/cryptopp700.zip"
+ homepage = "https://www.cryptopp.com"
+ url = "https://www.cryptopp.com/cryptopp700.zip"
version('7.0.0', sha256='a4bc939910edd3d29fb819a6fc0dfdc293f686fa62326f61c56d72d0a366ceb0')
version('6.1.0', sha256='21289d2511101a9350c87c8eb1f4982d4a266e8037b19dab79a32cc13ea108c7')
diff --git a/var/spack/repos/builtin/packages/cryptsetup/package.py b/var/spack/repos/builtin/packages/cryptsetup/package.py
index 6b57ad6877..73131d595b 100644
--- a/var/spack/repos/builtin/packages/cryptsetup/package.py
+++ b/var/spack/repos/builtin/packages/cryptsetup/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,16 +16,18 @@ class Cryptsetup(AutotoolsPackage):
# If you're adding newer versions, check whether the patch below
# still needs to be applied.
+ version('2.3.5', sha256='ced9946f444d132536daf92fc8aca4277638a3c2d96e20540b2bae4d36fd70c1')
+ version('2.3.4', sha256='9d16eebb96b53b514778e813019b8dd15fea9fec5aafde9fae5febf59df83773')
version('2.3.1', sha256='92aba4d559a2cf7043faed92e0f22c5addea36bd63f8c039ba5a8f3a159fe7d2')
version('2.2.3', sha256='2af0ec9551ab9c870074cae9d3f68d82cab004f4095fa89db0e4413713424a46')
version('2.2.2', sha256='2af0ec9551ab9c870074cae9d3f68d82cab004f4095fa89db0e4413713424a46')
version('2.2.1', sha256='94e79a31ed38bdb0acd9af7ccca1605a2ac62ca850ed640202876b1ee11c1c61')
- depends_on('libuuid', type=('build', 'link'))
+ depends_on('uuid', type=('build', 'link'))
depends_on('lvm2', type=('build', 'link'))
depends_on('popt', type=('build', 'link'))
depends_on('json-c', type=('build', 'link'))
- depends_on('util-linux~libuuid', type=('build', 'link'))
+ depends_on('util-linux', type=('build', 'link'))
depends_on('gettext', type=('build', 'link'))
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/csa-c/package.py b/var/spack/repos/builtin/packages/csa-c/package.py
index 9bc09f49fd..d08c1e91ff 100644
--- a/var/spack/repos/builtin/packages/csa-c/package.py
+++ b/var/spack/repos/builtin/packages/csa-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cscope/package.py b/var/spack/repos/builtin/packages/cscope/package.py
index a829b1e1e5..407c4fbf8b 100644
--- a/var/spack/repos/builtin/packages/cscope/package.py
+++ b/var/spack/repos/builtin/packages/cscope/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/csdp/package.py b/var/spack/repos/builtin/packages/csdp/package.py
index ef35d6551c..846e4f5d42 100644
--- a/var/spack/repos/builtin/packages/csdp/package.py
+++ b/var/spack/repos/builtin/packages/csdp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Csdp(MakefilePackage):
Vanderbei, and Wolkowicz"""
homepage = "https://projects.coin-or.org/Csdp"
- url = "http://www.coin-or.org/download/source/Csdp/Csdp-6.1.1.tgz"
+ url = "https://www.coin-or.org/download/source/Csdp/Csdp-6.1.1.tgz"
version('6.1.1', sha256='0558a46ac534e846bf866b76a9a44e8a854d84558efa50988ffc092f99a138b9')
diff --git a/var/spack/repos/builtin/packages/ctffind/package.py b/var/spack/repos/builtin/packages/ctffind/package.py
index b20ce75ad7..cc6cb45de1 100644
--- a/var/spack/repos/builtin/packages/ctffind/package.py
+++ b/var/spack/repos/builtin/packages/ctffind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,10 @@ from spack import *
class Ctffind(AutotoolsPackage):
"""Fast and accurate defocus estimation from electron micrographs."""
- homepage = "http://grigoriefflab.janelia.org/ctffind4"
- url = "http://grigoriefflab.janelia.org/sites/default/files/ctffind-4.1.8.tar.gz"
+ homepage = "https://grigoriefflab.umassmed.edu/ctf_estimation_ctffind_ctftilt"
+ url = "https://grigoriefflab.umassmed.edu/system/tdf?path=ctffind-4.1.8.tar.gz&file=1&type=node&id=26"
- version('4.1.8', sha256='bec43c0b8d32878c740d6284ef6d9d22718c80dc62270be18d1d44e8b84b2729')
+ version('4.1.8', sha256='bec43c0b8d32878c740d6284ef6d9d22718c80dc62270be18d1d44e8b84b2729', extension='tar.gz')
depends_on('wxwidgets')
depends_on('fftw@3:')
diff --git a/var/spack/repos/builtin/packages/ctpl/package.py b/var/spack/repos/builtin/packages/ctpl/package.py
index 1fc00729dd..30feef5318 100644
--- a/var/spack/repos/builtin/packages/ctpl/package.py
+++ b/var/spack/repos/builtin/packages/ctpl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,6 +19,7 @@ class Ctpl(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ depends_on('gettext', type='build')
depends_on('gtk-doc')
depends_on('glib@2.10:')
diff --git a/var/spack/repos/builtin/packages/ctre/package.py b/var/spack/repos/builtin/packages/ctre/package.py
index 2dc188b775..d87ec5d745 100644
--- a/var/spack/repos/builtin/packages/ctre/package.py
+++ b/var/spack/repos/builtin/packages/ctre/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cub/package.py b/var/spack/repos/builtin/packages/cub/package.py
index dba0d2e980..1b7fe570fb 100644
--- a/var/spack/repos/builtin/packages/cub/package.py
+++ b/var/spack/repos/builtin/packages/cub/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,14 @@ class Cub(Package):
and other utilities for CUDA kernel programming."""
homepage = "https://nvlabs.github.com/cub"
- url = "https://github.com/NVlabs/cub/archive/1.7.1.zip"
- git = "https://github.com/NVlabs/cub.git"
+ url = "https://github.com/NVIDIA/cub/archive/1.12.0.zip"
+ git = "https://github.com/NVIDIA/cub.git"
+ version('1.12.0', sha256='92f0f39235db787f4850d5c4ffdaa7d5367a2f153bdd3b4a1161a6a2fefb7bfc')
+ version('1.12.0-rc0', sha256='c9470cb5a23849e3143a3b2f07fe4d48ed3c8e0ec862b4d4c02ec15afb4fc331')
+ version('1.11.0', sha256='4c5d6a42350e010273be33f72af8c9b6253cfe55e2a0584fe7bf9f84dc338d00')
+ version('1.10.0', sha256='d6be1acfa65be4e25be40f576687fed19c00896390cbc6205888c69ac2f150de')
+ version('1.9.10-1', sha256='6f0e6a6b2996000cefbe9bff1716689fd71c2cd4004d23b238a9cb90c4421bdc')
version('1.9.10', sha256='063fea7c9bf87677a5fc5889e3fcd51582b77a2b3af9fa599d846a9c98ce9407')
version('1.9.9', sha256='162514b3cc264ac89d91898b58450190b8192e2af1142cf8ccac2d59aa160dda')
version('1.9.8-1', sha256='f61d05367bd8fe8bfb0eafa20f7b14d27deb8b25a398c53d8a97a01a2399431b')
diff --git a/var/spack/repos/builtin/packages/cube-blade/package.py b/var/spack/repos/builtin/packages/cube-blade/package.py
new file mode 100644
index 0000000000..4fa651c9ec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cube-blade/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 CubeBlade(AutotoolsPackage):
+ """Simple OTF2 trace explorer"""
+
+ homepage = "https://www.scalasca.org/software/cube-4.x/download.html"
+ url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.5/dist/blade-0.2.tar.gz"
+
+ version('0.2', sha256='ab3c5bbca79e2ec599166e75b3c96a8f6a18b3064414fc39e56f78aaae9c165c')
+
+ depends_on('cube@4.5:')
+ depends_on('cubelib@4.5:')
+ depends_on('qt@5.9.1:')
+ depends_on('otf2@2.1.1:')
+
+ # Without this patch, the Blade plugin crashes Cube on startup
+ patch('return-bool.patch')
diff --git a/var/spack/repos/builtin/packages/cube-blade/return-bool.patch b/var/spack/repos/builtin/packages/cube-blade/return-bool.patch
new file mode 100644
index 0000000000..cdeeb1e328
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cube-blade/return-bool.patch
@@ -0,0 +1,9 @@
+--- a/src/gui/BladePlugin.cpp 2021-03-19 13:32:33.609988108 +0100
++++ b/src/gui/BladePlugin.cpp 2021-03-19 13:32:49.153702599 +0100
+@@ -348,5 +348,6 @@
+ BladePlugin::checkForSalsaViewer()
+ {
+ // service->setGlobalValue( BladePlugin::BLADE_PLUGIN_NOTIFIER , QVariant( ++val ), false ); // true = notify myself
++ return true;
+ }
+
diff --git a/var/spack/repos/builtin/packages/cube/package.py b/var/spack/repos/builtin/packages/cube/package.py
index d2eeb203c0..280e0844b0 100644
--- a/var/spack/repos/builtin/packages/cube/package.py
+++ b/var/spack/repos/builtin/packages/cube/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,10 +14,11 @@ class Cube(AutotoolsPackage):
- system resource
"""
- homepage = "http://www.scalasca.org/software/cube-4.x/download.html"
- url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubegui-4.4.2.tar.gz"
+ homepage = "https://www.scalasca.org/software/cube-4.x/download.html"
+ url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubegui-4.4.2.tar.gz"
- version('4.5', sha256='ffe84108adce0adf06dca80820d941b1a60a5580a8bacc8f7c1b6989c8ab1bfa')
+ version('4.6', sha256='1871c6736121d94a22314cb5daa8f3cbb978b58bfe54f677c4c9c9693757d0c5')
+ version('4.5', sha256='ffe84108adce0adf06dca80820d941b1a60a5580a8bacc8f7c1b6989c8ab1bfa')
version('4.4.4', sha256='9b7b96d5a64b558a9017cc3599bba93a42095534e018e3de9b1f80ab6d04cc34')
version('4.4.3', sha256='bf4b0f2ff68507ff82ba24eb4895aed961710dae16d783c222a12f152440cf36')
version('4.4.2', sha256='29b6479616a524f8325f5031a883963bf965fb92569de33271a020f08650ec7b')
@@ -31,7 +32,13 @@ class Cube(AutotoolsPackage):
patch('qt-version.patch', when='@4.3.0:4.3.999 +gui')
- depends_on('cubelib', when='@4.4:')
+ depends_on('cubelib@4.6', when='@4.6')
+ depends_on('cubelib@4.5', when='@4.5')
+ # There is a backwards dependency in series 4
+ depends_on('cubelib@4.4:4.4.4', when='@4.4.4')
+ depends_on('cubelib@4.4:4.4.3', when='@4.4.3')
+ depends_on('cubelib@4.4:4.4.2', when='@4.4.2')
+ depends_on('cubelib@4.4', when='@4.4')
depends_on('pkgconfig', type='build')
depends_on('dbus')
diff --git a/var/spack/repos/builtin/packages/cubelib/package.py b/var/spack/repos/builtin/packages/cubelib/package.py
index 7d6181c7c1..e7d4fd4327 100644
--- a/var/spack/repos/builtin/packages/cubelib/package.py
+++ b/var/spack/repos/builtin/packages/cubelib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,10 @@ from spack import *
class Cubelib(AutotoolsPackage):
"""Component of CubeBundle: General purpose C++ library and tools """
- homepage = "http://www.scalasca.org/software/cube-4.x/download.html"
- url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubelib-4.4.tar.gz"
+ homepage = "https://www.scalasca.org/software/cube-4.x/download.html"
+ url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubelib-4.4.tar.gz"
+ version('4.6', sha256='36eaffa7688db8b9304c9e48ca5dc4edc2cb66538aaf48657b9b5ccd7979385b')
version('4.5', sha256='98f66837b4a834b1aacbcd4480a242d7a8c4a1b8dd44e02e836b8c7a4f0ffd98')
version('4.4.4', sha256='adb8216ee3b7701383884417374e7ff946edb30e56640307c65465187dca7512')
version('4.4.3', sha256='bcd4fa81a5ba37194e590a5d7c3e6c44b448f5e156a175837b77c21206847a8d')
diff --git a/var/spack/repos/builtin/packages/cubew/package.py b/var/spack/repos/builtin/packages/cubew/package.py
index c21310601b..5f0f8b6b57 100644
--- a/var/spack/repos/builtin/packages/cubew/package.py
+++ b/var/spack/repos/builtin/packages/cubew/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,10 @@ from spack import *
class Cubew(AutotoolsPackage):
"""Component of CubeBundle: High performance C Writer library """
- homepage = "http://www.scalasca.org/software/cube-4.x/download.html"
- url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubew-4.4.tar.gz"
+ homepage = "https://www.scalasca.org/software/cube-4.x/download.html"
+ url = "https://apps.fz-juelich.de/scalasca/releases/cube/4.4/dist/cubew-4.4.tar.gz"
+ version('4.6', sha256='99fe58ce7ab13061ebfbc360aedaecc28099a30636c5269a42c0cbaf57149aa8')
version('4.5', sha256='16bd8fd864197a74ca65f7325761ad75d73d555072326e95e1338cff39f28a5c')
version('4.4.3', sha256='93fff6cc1e8b0780f0171ef5302a2e1a257f99b6383fbfc1b9b82f925ceff501')
version('4.4.2', sha256='31a71e9a05e6523de2b86b4026821bbb75fb411eb5b18ae38b27c1f44158014a')
diff --git a/var/spack/repos/builtin/packages/cubist/package.py b/var/spack/repos/builtin/packages/cubist/package.py
index 70e851520d..ee2022ebd5 100644
--- a/var/spack/repos/builtin/packages/cubist/package.py
+++ b/var/spack/repos/builtin/packages/cubist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cuda-memtest/package.py b/var/spack/repos/builtin/packages/cuda-memtest/package.py
index 5cd6940659..d9c8f21e10 100644
--- a/var/spack/repos/builtin/packages/cuda-memtest/package.py
+++ b/var/spack/repos/builtin/packages/cuda-memtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py
index ec9a11b160..a5b1955fbf 100644
--- a/var/spack/repos/builtin/packages/cuda/package.py
+++ b/var/spack/repos/builtin/packages/cuda/package.py
@@ -1,15 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob import glob
-from llnl.util.filesystem import LibraryList
import os
-import re
import platform
+import re
+from glob import glob
+
import llnl.util.tty as tty
+from llnl.util.filesystem import LibraryList
+
+from spack import *
# FIXME Remove hack for polymorphic versions
# This package uses a ugly hack to be able to dispatch, given the same
@@ -23,17 +25,49 @@ import llnl.util.tty as tty
# format returned by platform.system() and 'arch' by platform.machine()
_versions = {
+ '11.4.0': {
+ 'Linux-aarch64': ('f0c8e80d98a601ddca031b6764459984366008c7d3847e7c7f99b36bd4438e3c', 'https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_sbsa.run'),
+ 'Linux-x86_64': ('d219db30f7415a115a4ea22bdbb5984b0a18f7f891cad6074c5da45d223aaa4b', 'https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run'),
+ 'Linux-ppc64le': ('6eb2fd0d9d5bc39fb243b5e1789ff827f325d098cd1fbb828a0499552b9544cc', 'https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_ppc64le.run')},
+ '11.3.1': {
+ 'Linux-aarch64': ('39990d3da88b21289ac20850bc183f0b66275f32e1f562b551c05843bf506e4c', 'https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux_sbsa.run'),
+ 'Linux-x86_64': ('ad93ea98efced35855c58d3a0fc326377c60917cb3e8c017d3e6d88819bf2934', 'https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run'),
+ 'Linux-ppc64le': ('220f2c10a21500d62b03c6848c1659ebb3a8e10dc0915ab87b86b397058407c5', 'https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux_ppc64le.run')},
+ '11.3.0': {
+ 'Linux-aarch64': ('f7b284cf055fcf18be9a9aa216e3c7968d3e011446eb0c7200a3353c223ce718', 'https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux_sbsa.run'),
+ 'Linux-x86_64': ('262da7f77db177b153a6b70b5812210f3f72f00eb608ab9cf2a4582328c4bf5c', 'https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run'),
+ 'Linux-ppc64le': ('c0010107933b575a87e27b1293e5dc32b74201486f4ae2f4c8695ea727d22857', 'https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux_ppc64le.run')},
+ '11.2.2': {
+ 'Linux-aarch64': ('2f915ad631331eebdafaabd971723a60290ae8bb090d771075b9e6a0b28cbae6', 'https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux_sbsa.run'),
+ 'Linux-x86_64': ('0a2e477224af7f6003b49edfd2bfee07667a8148fe3627cfd2765f6ad72fa19d', 'https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run'),
+ 'Linux-ppc64le': ('2304ec235fe5d1f8bf75f00dc2c2d11473759dc23428dbbd5fb5040bc8c757e3', 'https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux_ppc64le.run')},
+ '11.2.1': {
+ 'Linux-aarch64': ('4b322fa6477d1a2cd2f2f526fa520c0f90bef2c264ef8435cb016bebb5456c5e', 'https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux_sbsa.run'),
+ 'Linux-x86_64': ('1da98cb897cc5f58a7445a4a66ca4f6926867706cb3af58a669cdcd8dc3d17c8', 'https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux.run'),
+ 'Linux-ppc64le': ('b3e8b6cd76872deb3acd050d32e197bc1c655e142b169070f0f9753680461a3f', 'https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux_ppc64le.run')},
+ '11.2.0': {
+ 'Linux-aarch64': ('c11dc274660e9b47b0f25ca66861a7406246a7191f1b04d0710515fcac0fa6cd', 'https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux_sbsa.run'),
+ 'Linux-x86_64': ('9c50283241ac325d3085289ed9b9c170531369de41165ce271352d4a898cbdce', 'https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run'),
+ 'Linux-ppc64le': ('adc3267df5dbfdaf51cb4c9b227ba6bfd979a39d9b4136bba0eba6b1dd2a2731', 'https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux_ppc64le.run')},
+ '11.1.1': {
+ 'Linux-aarch64': ('9ab1dbafba205c06bea8c88e38cdadb3038af19cb56e7b3ba734d3d7a84b8f02', 'https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux_sbsa.run'),
+ 'Linux-x86_64': ('3eae6727086024925ebbcef3e9a45ad379d8490768fd00f9c2d8b6fd9cd8dd8f', 'https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run'),
+ 'Linux-ppc64le': ('023e571fe26ee829c98138dfc305a92279854aac7d184d255fd58c06c6af3c17', 'https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux_ppc64le.run')},
'11.1.0': {
'Linux-aarch64': ('878cbd36c5897468ef28f02da50b2f546af0434a8a89d1c724a4d2013d6aa993', 'https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux_sbsa.run'),
'Linux-x86_64': ('858cbab091fde94556a249b9580fadff55a46eafbcb4d4a741d2dcd358ab94a5', 'https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run'),
'Linux-ppc64le': ('a561e6f7f659bc4100e4713523b0b8aad6b36aa77fac847f6423e7780c750064', 'https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux_ppc64le.run')},
+ '11.0.3': {
+ 'Linux-aarch64': ('1e24f61f79c1043aa3d1d126ff6158daa03a62a51b5195a2ed5fbe75c3b718f3', 'https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux_sbsa.run'),
+ 'Linux-x86_64': ('b079c4e408adf88c3f1ffb8418a97dc4227c37935676b4bf4ca0beec6c328cc0', 'https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run'),
+ 'Linux-ppc64le': ('4775b21df004b1433bafff9b48a324075c008509f4c0fe28cd060d042d2e0794', 'https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux_ppc64le.run')},
'11.0.2': {
- 'Linux-aarch64': ('23851e30f7c47a1baad92891abde0adbc783de5962c7480b9725198ceacda4a0', 'http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux_sbsa.run'),
- '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')},
+ 'Linux-aarch64': ('23851e30f7c47a1baad92891abde0adbc783de5962c7480b9725198ceacda4a0', 'https://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux_sbsa.run'),
+ 'Linux-x86_64': ('48247ada0e3f106051029ae8f70fbd0c238040f58b0880e55026374a959a69c1', 'https://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run'),
+ 'Linux-ppc64le': ('db06d0f3fbf6f7aa1f106fc921ad1c86162210a26e8cb65b171c5240a3bf75da', 'https://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')},
+ 'Linux-x86_64': ('560d07fdcf4a46717f2242948cd4f92c5f9b6fc7eae10dd996614da913d5ca11', 'https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run'),
+ 'Linux-ppc64le': ('5227774fcb8b10bd2d8714f0a716a75d7a2df240a9f2a49beb76710b1c0fc619', 'https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux_ppc64le.run')},
'10.1.243': {
'Linux-x86_64': ('e7c22dc21278eb1b82f34a60ad7640b41ad3943d929bebda3008b72536855d31', 'https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run'),
'Linux-ppc64le': ('b198002eef010bab9e745ae98e47567c955d00cf34cc8f8d2f0a6feb810523bf', 'https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux_ppc64le.run')},
@@ -50,9 +84,9 @@ _versions = {
'8.0.44': {
'Linux-x86_64': ('64dc4ab867261a0d690735c46d7cc9fc60d989da0d69dc04d1714e409cacbdf0', 'https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda_8.0.44_linux-run')},
'7.5.18': {
- 'Linux-x86_64': ('08411d536741075131a1858a68615b8b73c51988e616e83b835e4632eea75eec', 'http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run')},
+ 'Linux-x86_64': ('08411d536741075131a1858a68615b8b73c51988e616e83b835e4632eea75eec', 'https://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run')},
'6.5.14': {
- 'Linux-x86_64': ('f3e527f34f317314fe8fcd8c85f10560729069298c0f73105ba89225db69da48', 'http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run')},
+ 'Linux-x86_64': ('f3e527f34f317314fe8fcd8c85f10560729069298c0f73105ba89225db69da48', 'https://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run')},
}
@@ -87,7 +121,17 @@ class Cuda(Package):
# Mojave support -- only macOS High Sierra 10.13 is supported.
conflicts('arch=darwin-mojave-x86_64')
+ variant('dev', default=False, description='Enable development dependencies, i.e to use cuda-gdb')
+ variant('allow-unsupported-compilers', default=False,
+ description='Allow unsupported host compiler and CUDA version combinations')
+
depends_on('libxml2', when='@10.1.243:')
+ # cuda-gdb needs libncurses.so.5
+ # see https://docs.nvidia.com/cuda/cuda-gdb/index.html#common-issues-oss
+ depends_on('ncurses abi=5', type='run', when='+dev')
+
+ provides('opencl@:1.2', when='@7:')
+ provides('opencl@:1.1', when='@:6')
@classmethod
def determine_version(cls, exe):
@@ -97,6 +141,11 @@ class Cuda(Package):
return match.group(1) if match else None
def setup_build_environment(self, env):
+ if self.spec.satisfies('@:8.0.61'):
+ # Perl 5.26 removed current directory from module search path,
+ # CUDA 9 has a fix for this, but CUDA 8 and lower don't.
+ env.append_path('PERL5LIB', self.stage.source_path)
+
if self.spec.satisfies('@10.1.243:'):
libxml2_home = self.spec['libxml2'].prefix
env.set('LIBXML2HOME', libxml2_home)
@@ -126,6 +175,27 @@ class Cuda(Package):
# https://gist.github.com/ax3l/9489132
# for details.
+ # CUDA 10.1 on ppc64le fails to copy some files, the workaround is adapted from
+ # https://forums.developer.nvidia.com/t/cuda-10-1-243-10-1-update-2-ppc64le-run-file-installation-issue/82433
+ # See also #21170
+ if spec.satisfies('@10.1.243') and platform.machine() == 'ppc64le':
+ includedir = "targets/ppc64le-linux/include"
+ os.makedirs(os.path.join(prefix, includedir))
+ os.makedirs(os.path.join(prefix, "src"))
+ os.symlink(includedir, os.path.join(prefix, "include"))
+
+ install_shell = which('sh')
+
+ if self.spec.satisfies('@:8.0.61'):
+ # Perl 5.26 removed current directory from module search path.
+ # We are addressing this by exporting `PERL5LIB` earlier, but for some
+ # reason, it is not enough. One more file needs to be extracted before
+ # running the actual installer. This solution is one of the commonly
+ # found on the Internet, when people try to install CUDA <= 8 manually.
+ # For example: https://askubuntu.com/a/1087842
+ arguments = [runfile, '--tar', 'mxvf', './InstallUtils.pm']
+ install_shell(*arguments)
+
# CUDA 10.1+ has different cmdline options for the installer
arguments = [
runfile, # the install script
@@ -133,13 +203,15 @@ class Cuda(Package):
'--override', # override compiler version checks
'--toolkit', # install CUDA Toolkit
]
+
if spec.satisfies('@10.1:'):
arguments.append('--installpath=%s' % prefix) # Where to install
else:
arguments.append('--verbose') # Verbose log file
arguments.append('--toolkitpath=%s' % prefix) # Where to install
- install_shell = which('sh')
+
install_shell(*arguments)
+
try:
os.remove('/tmp/cuda-installer.log')
except OSError:
diff --git a/var/spack/repos/builtin/packages/cudnn/package.py b/var/spack/repos/builtin/packages/cudnn/package.py
index 7b9e310524..d6608ebcd0 100644
--- a/var/spack/repos/builtin/packages/cudnn/package.py
+++ b/var/spack/repos/builtin/packages/cudnn/package.py
@@ -1,233 +1,215 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
-from spack import *
-
+import platform
-class Cudnn(Package):
- """NVIDIA cuDNN is a GPU-accelerated library of primitives for deep
- neural networks"""
-
- homepage = "https://developer.nvidia.com/cudnn"
-
- # Latest versions available at:
- # https://developer.nvidia.com/rdp/cudnn-download
- # Archived versions available at:
- # https://developer.nvidia.com/rdp/cudnn-archive
- # Note that download links don't work from command line,
- # need to use modified URLs like in url_for_version.
+from spack import *
- maintainers = ['adamjstewart']
-
- # cudNN 8.0.4
- version('8.0.4.30-11.1-linux-x64',
- sha256='8f4c662343afce5998ce963500fe3bb167e9a508c1a1a949d821a4b80fa9beab')
- version('8.0.4.30-11.1-linux-ppc64le',
- sha256='b4ddb51610cbae806017616698635a9914c3e1eb14259f3a39ee5c84e7106712')
- version('8.0.4.30-11.0-linux-x64',
- sha256='38a81a28952e314e21577432b0bab68357ef9de7f6c8858f721f78df9ee60c35',
- preferred=True)
- version('8.0.4.30-11.0-linux-ppc64le',
- sha256='8da8ed689b1a348182ddd3f59b6758a502e11dc6708c33f96e3b4a40e033d2e1')
- version('8.0.4.30-10.2-linux-x64',
- sha256='c12c69eb16698eacac40aa46b9ce399d4cd86efb6ff0c105142f8a28fcfb980e')
- version('8.0.4.30-10.2-linux-ppc64le',
- sha256='32a5b92f9e1ef2be90e10f220c4ab144ca59d215eb6a386e93597f447aa6507e')
- version('8.0.4.30-10.1-linux-x64',
- sha256='eb4b888e61715168f57a0a0a21c281ada6856b728e5112618ed15f8637487715')
- version('8.0.4.30-10.1-linux-ppc64le',
- sha256='690811bbf04adef635f4a6f480575fc2a558c4a2c98c85c7090a3a8c60dacea9')
+_versions = {
+ # cuDNN 8.2.0
+ '8.2.0.53-11.3': {
+ 'Linux-x86_64': '7a195dc93a7cda2bdd4d9b73958d259c784be422cd941a9a625aab75309f19dc',
+ 'Linux-ppc64le': 'cfe06735671a41a5e25fc7542d740177ac8eab1ab146bd30f19e0fa836895611',
+ 'Linux-aarch64': '0f44af94eef7826dc7b41f92aade3d5210891cdb10858bc0a28ba7167909ab7c'},
+ '8.2.0.53-10.2': {
+ 'Linux-x86_64': '6ecbc98b3795e940ce0831ffb7cd2c0781830fdd6b1911f950bcaf6d569f807c'},
+
+ # cuDNN 8.1.1
+ '8.1.1.33-11.2': {
+ 'Linux-x86_64': '98a8784e92862f20018d20c281b30d4a0cd951f93694f6433ccf4ae9c502ba6a',
+ 'Linux-ppc64le': 'c3e535a5d633ad8f4d50be0b6f8efd084c6c6ed3525c07cbd89fc508b1d76c7a',
+ 'Linux-aarch64': '4f7e4f5698539659d51f28dff0da11e5445a5ae58439af1d8a8e9f2d93535245'},
+ '8.1.1.33-10.2': {
+ 'Linux-x86_64': '2a4a7b99a6e9bfa690eb19bb41e49553f2a7a491a5b3abfcae900e166c5b6ebd'},
+
+ # cuDNN 8.1.0
+ '8.1.0.77-11.2': {
+ 'Linux-x86_64': 'dbe82faf071d91ba9bcf00480146ad33f462482dfee56caf4479c1b8dabe3ecb',
+ 'Linux-ppc64le': '0d3f8fa21959e9f94889841cc8445aecf41d2f3c557091b447313afb43034037',
+ 'Linux-aarch64': 'ba16ff486b68a8b50b69b32702612634954de529f39cfff68c12b8bfc1958499'},
+ '8.1.0.77-10.2': {
+ 'Linux-x86_64': 'c5bc617d89198b0fbe485156446be15a08aee37f7aff41c797b120912f2b14b4'},
+
+ # cuDNN 8.0.5
+ '8.0.5.39-11.1': {
+ 'Linux-x86_64': '1d046bfa79399dabcc6f6cb1507918754439442ea0ca9e0fbecdd446f9b00cce',
+ 'Linux-aarch64': '0c3542c51b42131247cd9f839d0ebefe4e02bb46d1716be1682cb2919278085a'},
+ '8.0.5.39-11.0': {
+ 'Linux-x86_64': '4e16ee7895deb4a8b1c194b812ba49586ef7d26902051401d3717511898a9b73',
+ 'Linux-ppc64le': '05207a02c0b4f22464dbb0ee646693df4a70ae557640ba576ba8678c26393004'},
+ '8.0.5.39-10.2': {
+ 'Linux-x86_64': '21f84c05c67bf1ec859e77c38ccd5bf154964fa1c308f449959be4c356e382f3',
+ 'Linux-ppc64le': 'ce128ea090b05e36d00ffe921e45982ca10e8207e40cfc2e0067d0f62d9b36f9'},
+ '8.0.5.39-10.1': {
+ 'Linux-x86_64': '90908495298896b33aa95063a3471f93c36627d7ac01c17dc36d75c65eea4a00',
+ 'Linux-ppc64le': 'e43b10bb3932d5e7a598dcc726d16dc9938dd99dd319cd74b3420f3ed65fe5e0'},
+
+ # cuDNN 8.0.4
+ '8.0.4.30-11.1': {
+ 'Linux-x86_64': '8f4c662343afce5998ce963500fe3bb167e9a508c1a1a949d821a4b80fa9beab',
+ 'Linux-ppc64le': 'b4ddb51610cbae806017616698635a9914c3e1eb14259f3a39ee5c84e7106712'},
+ '8.0.4.30-11.0': {
+ 'Linux-x86_64': '38a81a28952e314e21577432b0bab68357ef9de7f6c8858f721f78df9ee60c35',
+ 'Linux-ppc64le': '8da8ed689b1a348182ddd3f59b6758a502e11dc6708c33f96e3b4a40e033d2e1'},
+ '8.0.4.30-10.2': {
+ 'Linux-x86_64': 'c12c69eb16698eacac40aa46b9ce399d4cd86efb6ff0c105142f8a28fcfb980e',
+ 'Linux-ppc64le': '32a5b92f9e1ef2be90e10f220c4ab144ca59d215eb6a386e93597f447aa6507e'},
+ '8.0.4.30-10.1': {
+ 'Linux-x86_64': 'eb4b888e61715168f57a0a0a21c281ada6856b728e5112618ed15f8637487715',
+ 'Linux-ppc64le': '690811bbf04adef635f4a6f480575fc2a558c4a2c98c85c7090a3a8c60dacea9'},
# cuDNN 8.0.3
- version('8.0.3.33-11.0-linux-x64',
- sha256='8924bcc4f833734bdd0009050d110ad0c8419d3796010cf7bc515df654f6065a')
- version('8.0.3.33-11.0-linux-ppc64le',
- sha256='c2d0519831137b43d0eebe07522edb4ef5d62320e65e5d5fa840a9856f25923d')
- version('8.0.3.33-10.2-linux-x64',
- sha256='b3d487c621e24b5711983b89bb8ad34f0378bdbf8a1a4b86eefaa23b19956dcc')
- version('8.0.3.33-10.2-linux-ppc64le',
- sha256='ff22c9c37af191c9104989d784427cde744cdde879bfebf3e4e55ca6a9634a11')
- version('8.0.3.33-10.1-linux-x64',
- sha256='4752ac6aea4e4d2226061610d6843da6338ef75a93518aa9ce50d0f58df5fb07')
- version('8.0.3.33-10.1-linux-ppc64le',
- sha256='c546175f6ec86a11ee8fb9ab5526fa8d854322545769a87d35b1a505992f89c3')
+ '8.0.3.33-11.0': {
+ 'Linux-x86_64': '8924bcc4f833734bdd0009050d110ad0c8419d3796010cf7bc515df654f6065a',
+ 'Linux-ppc64le': 'c2d0519831137b43d0eebe07522edb4ef5d62320e65e5d5fa840a9856f25923d'},
+ '8.0.3.33-10.2': {
+ 'Linux-x86_64': 'b3d487c621e24b5711983b89bb8ad34f0378bdbf8a1a4b86eefaa23b19956dcc',
+ 'Linux-ppc64le': 'ff22c9c37af191c9104989d784427cde744cdde879bfebf3e4e55ca6a9634a11'},
+ '8.0.3.33-10.1': {
+ 'Linux-x86_64': '4752ac6aea4e4d2226061610d6843da6338ef75a93518aa9ce50d0f58df5fb07',
+ 'Linux-ppc64le': 'c546175f6ec86a11ee8fb9ab5526fa8d854322545769a87d35b1a505992f89c3'},
# cuDNN 8.0.2
- version('8.0.2.39-11.0-linux-x64',
- sha256='672f46288b8edd98f8d156a4f1ff518201ca6de0cff67915ceaa37f6d6d86345')
- version('8.0.2.39-11.0-linux-ppc64le',
- sha256='b7c1ce5b1191eb007ba3455ea5f497fdce293a646545d8a6ed93e9bb06d7f057')
- version('8.0.2.39-10.2-linux-x64',
- sha256='c9cbe5c211360f3cfbc0fb104f0e9096b37e53f89392525679f049276b2f701f')
- version('8.0.2.39-10.2-linux-ppc64le',
- sha256='c32325ff84a8123491f2e58b3694885a9a672005bc21764b38874688c0e43262')
- version('8.0.2.39-10.1-linux-x64',
- sha256='82148a68bd6bdaab93af5e05bb1842b8ccb3ab7de7bed41f609a7616c102213d')
- version('8.0.2.39-10.1-linux-ppc64le',
- sha256='8196ec4f031356317baeccefbc4f61c8fccb2cf0bdef0a6431438918ddf68fb9')
+ '8.0.2.39-11.0': {
+ 'Linux-x86_64': '672f46288b8edd98f8d156a4f1ff518201ca6de0cff67915ceaa37f6d6d86345',
+ 'Linux-ppc64le': 'b7c1ce5b1191eb007ba3455ea5f497fdce293a646545d8a6ed93e9bb06d7f057'},
+ '8.0.2.39-10.2': {
+ 'Linux-x86_64': 'c9cbe5c211360f3cfbc0fb104f0e9096b37e53f89392525679f049276b2f701f',
+ 'Linux-ppc64le': 'c32325ff84a8123491f2e58b3694885a9a672005bc21764b38874688c0e43262'},
+ '8.0.2.39-10.1': {
+ 'Linux-x86_64': '82148a68bd6bdaab93af5e05bb1842b8ccb3ab7de7bed41f609a7616c102213d',
+ 'Linux-ppc64le': '8196ec4f031356317baeccefbc4f61c8fccb2cf0bdef0a6431438918ddf68fb9'},
# cuDNN 8.0
- version('8.0.0.180-11.0-linux-x64',
- sha256='9e75ea70280a77de815e0bdc85d08b67e081bc99a708b574092142344d2ba07e')
- version('8.0.0.180-11.0-linux-ppc64le',
- sha256='1229e94731bbca63ee7f5a239f4e1838a51a301d896f3097fbf7377d74704060')
- version('8.0.0.180-10.2-linux-x64',
- sha256='0c87c12358ee2b99d57c2a8c7560e3bb93e54bb929f5f8bec4964a72a2bb261d')
- version('8.0.0.180-10.2-linux-ppc64le',
- sha256='59e4ad6db15fcc374976e8052fe39e3f30f34079710fb3c7751a64c853d9243f')
+ '8.0.0.180-11.0': {
+ 'Linux-x86_64': '9e75ea70280a77de815e0bdc85d08b67e081bc99a708b574092142344d2ba07e',
+ 'Linux-ppc64le': '1229e94731bbca63ee7f5a239f4e1838a51a301d896f3097fbf7377d74704060'},
+ '8.0.0.180-10.2': {
+ 'Linux-x86_64': '0c87c12358ee2b99d57c2a8c7560e3bb93e54bb929f5f8bec4964a72a2bb261d',
+ 'Linux-ppc64le': '59e4ad6db15fcc374976e8052fe39e3f30f34079710fb3c7751a64c853d9243f'},
# cuDNN 7.6.5
- version('7.6.5.32-10.2-linux-x64',
- sha256='600267f2caaed2fd58eb214ba669d8ea35f396a7d19b94822e6b36f9f7088c20')
- version('7.6.5.32-10.2-linux-ppc64le',
- sha256='7dc08b6ab9331bfd12207d4802c61db1ad7cace7395b67a6e7b16efa0335668b')
- version('7.6.5.32-10.1-linux-x64',
- sha256='7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2e136cb3')
- version('7.6.5.32-10.1-osx-x64',
- sha256='8ecce28a5ed388a2b9b2d239e08d7c550f53b79288e6d9e5eb4c152bfc711aff')
- version('7.6.5.32-10.1-linux-ppc64le',
- sha256='97b2faf73eedfc128f2f5762784d21467a95b2d5ba719825419c058f427cbf56')
-
- version('7.6.5.32-10.0-linux-x64',
- sha256='28355e395f0b2b93ac2c83b61360b35ba6cd0377e44e78be197b6b61b4b492ba')
- version('7.6.5.32-10.0-osx-x64',
- sha256='6fa0b819374da49102e285ecf7fcb8879df4d0b3cc430cc8b781cdeb41009b47')
- version('7.6.5.32-10.0-linux-ppc64le',
- sha256='b1717f4570083bbfc6b8b59f280bae4e4197cc1cb50e9d873c05adf670084c5b')
-
- version('7.6.5.32-9.2-linux-x64',
- sha256='a2a2c7a8ba7b16d323b651766ee37dcfdbc2b50d920f73f8fde85005424960e4')
- version('7.6.5.32-9.2-linux-ppc64le',
- sha256='a11f44f9a827b7e69f527a9d260f1637694ff7c1674a3e46bd9ec054a08f9a76')
-
- version('7.6.5.32-9.0-linux-x64',
- sha256='bd0a4c0090d5b02feec3f195738968690cc2470b9bc6026e6fe8ff245cd261c8')
+ '7.6.5.32-10.2': {
+ 'Linux-x86_64': '600267f2caaed2fd58eb214ba669d8ea35f396a7d19b94822e6b36f9f7088c20',
+ 'Linux-ppc64le': '7dc08b6ab9331bfd12207d4802c61db1ad7cace7395b67a6e7b16efa0335668b'},
+ '7.6.5.32-10.1': {
+ 'Linux-x86_64': '7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2e136cb3',
+ 'Darwin-x86_64': '8ecce28a5ed388a2b9b2d239e08d7c550f53b79288e6d9e5eb4c152bfc711aff',
+ 'Linux-ppc64le': '97b2faf73eedfc128f2f5762784d21467a95b2d5ba719825419c058f427cbf56'},
+
+ '7.6.5.32-10.0': {
+ 'Linux-x86_64': '28355e395f0b2b93ac2c83b61360b35ba6cd0377e44e78be197b6b61b4b492ba',
+ 'Darwin-x86_64': '6fa0b819374da49102e285ecf7fcb8879df4d0b3cc430cc8b781cdeb41009b47',
+ 'Linux-ppc64le': 'b1717f4570083bbfc6b8b59f280bae4e4197cc1cb50e9d873c05adf670084c5b'},
+
+ '7.6.5.32-9.2': {
+ 'Linux-x86_64': 'a2a2c7a8ba7b16d323b651766ee37dcfdbc2b50d920f73f8fde85005424960e4',
+ 'Linux-ppc64le': 'a11f44f9a827b7e69f527a9d260f1637694ff7c1674a3e46bd9ec054a08f9a76'},
+
+ '7.6.5.32-9.0': {
+ 'Linux-x86_64': 'bd0a4c0090d5b02feec3f195738968690cc2470b9bc6026e6fe8ff245cd261c8'},
# cuDNN 7.6.4
- version('7.6.4.38-10.1-linux-x64',
- sha256='32091d115c0373027418620a09ebec3658a6bc467d011de7cdd0eb07d644b099')
- version('7.6.4.38-10.1-osx-x64',
- sha256='bfced062c3689ced2c1fb49c7d5052e6bc3da6974c1eb707e4dcf8cd209d4236')
- version('7.6.4.38-10.1-linux-ppc64le',
- sha256='f3615fea50986a4dfd05d7a0cf83396dfdceefa9c209e8bf9691e20a48e420ce')
-
- version('7.6.4.38-10.0-linux-x64',
- sha256='417bb5daf51377037eb2f5c87649000ca1b9cec0acb16cfe07cb1d3e9a961dbf')
- version('7.6.4.38-10.0-osx-x64',
- sha256='af01ab841caec25087776a6b8fc7782883da12e590e24825ad1031f9ae0ed4b1')
- version('7.6.4.38-10.0-linux-ppc64le',
- sha256='c1725ad6bd7d7741e080a1e6da4b62eac027a94ac55c606cce261e3f829400bb')
-
- version('7.6.4.38-9.2-linux-x64',
- sha256='c79156531e641289b6a6952888b9637059ef30defd43c3cf82acf38d67f60a27')
- version('7.6.4.38-9.2-linux-ppc64le',
- sha256='98d8aae2dcd851558397a9a30b73242f257e1556be17c83650e63a0685969884')
-
- version('7.6.4.38-9.0-linux-x64',
- sha256='8db78c3623c192d4f03f3087b41c32cb0baac95e13408b5d9dabe626cb4aab5d')
+ '7.6.4.38-10.1': {
+ 'Linux-x86_64': '32091d115c0373027418620a09ebec3658a6bc467d011de7cdd0eb07d644b099',
+ 'Darwin-x86_64': 'bfced062c3689ced2c1fb49c7d5052e6bc3da6974c1eb707e4dcf8cd209d4236',
+ 'Linux-ppc64le': 'f3615fea50986a4dfd05d7a0cf83396dfdceefa9c209e8bf9691e20a48e420ce'},
+
+ '7.6.4.38-10.0': {
+ 'Linux-x86_64': '417bb5daf51377037eb2f5c87649000ca1b9cec0acb16cfe07cb1d3e9a961dbf',
+ 'Darwin-x86_64': 'af01ab841caec25087776a6b8fc7782883da12e590e24825ad1031f9ae0ed4b1',
+ 'Linux-ppc64le': 'c1725ad6bd7d7741e080a1e6da4b62eac027a94ac55c606cce261e3f829400bb'},
+
+ '7.6.4.38-9.2': {
+ 'Linux-x86_64': 'c79156531e641289b6a6952888b9637059ef30defd43c3cf82acf38d67f60a27',
+ 'Linux-ppc64le': '98d8aae2dcd851558397a9a30b73242f257e1556be17c83650e63a0685969884'},
+
+ '7.6.4.38-9.0': {
+ 'Linux-x86_64': '8db78c3623c192d4f03f3087b41c32cb0baac95e13408b5d9dabe626cb4aab5d'},
# cuDNN 7.6.3
- version('7.6.3.30-10.1-linux-x64',
- sha256='352557346d8111e2f954c494be1a90207103d316b8777c33e62b3a7f7b708961')
- version('7.6.3.30-10.1-linux-ppc64le',
- sha256='f274735a8fc31923d3623b1c3d2b1d0d35bb176687077c6a4d4353c6b900d8ee')
+ '7.6.3.30-10.1': {
+ 'Linux-x86_64': '352557346d8111e2f954c494be1a90207103d316b8777c33e62b3a7f7b708961',
+ 'Linux-ppc64le': 'f274735a8fc31923d3623b1c3d2b1d0d35bb176687077c6a4d4353c6b900d8ee'},
# cuDNN 7.5.1
- version('7.5.1.10-10.1-linux-x64',
- sha256='2c833f43c9147d9a25a20947a4c5a5f5c33b2443240fd767f63b330c482e68e0')
- version('7.5.1.10-10.1-linux-ppc64le',
- sha256='a9e23bc83c970daec20874ccd1d8d80b648adf15440ecd0164818b330b1e2663')
+ '7.5.1.10-10.1': {
+ 'Linux-x86_64': '2c833f43c9147d9a25a20947a4c5a5f5c33b2443240fd767f63b330c482e68e0',
+ 'Linux-ppc64le': 'a9e23bc83c970daec20874ccd1d8d80b648adf15440ecd0164818b330b1e2663'},
- version('7.5.1.10-10.0-linux-x64',
- sha256='c0a4ec438920aa581dd567117b9c316745b4a451ac739b1e04939a3d8b229985')
- version('7.5.1.10-10.0-linux-ppc64le',
- sha256='d9205718da5fbab85433476f9ff61fcf4b889d216d6eea26753bbc24d115dd70')
+ '7.5.1.10-10.0': {
+ 'Linux-x86_64': 'c0a4ec438920aa581dd567117b9c316745b4a451ac739b1e04939a3d8b229985',
+ 'Linux-ppc64le': 'd9205718da5fbab85433476f9ff61fcf4b889d216d6eea26753bbc24d115dd70'},
# cuDNN 7.5.0
- version('7.5.0.56-10.1-linux-x64',
- sha256='c31697d6b71afe62838ad2e57da3c3c9419c4e9f5635d14b683ebe63f904fbc8')
- version('7.5.0.56-10.1-linux-ppc64le',
- sha256='15415eb714ab86ab6c7531f2cac6474b5dafd989479b062776c670b190e43638')
+ '7.5.0.56-10.1': {
+ 'Linux-x86_64': 'c31697d6b71afe62838ad2e57da3c3c9419c4e9f5635d14b683ebe63f904fbc8',
+ 'Linux-ppc64le': '15415eb714ab86ab6c7531f2cac6474b5dafd989479b062776c670b190e43638'},
- version('7.5.0.56-10.0-linux-x64',
- sha256='701097882cb745d4683bb7ff6c33b8a35c7c81be31bac78f05bad130e7e0b781')
- version('7.5.0.56-10.0-linux-ppc64le',
- sha256='f0c1cbd9de553c8e2a3893915bd5fff57b30e368ef4c964d783b6a877869e93a')
+ '7.5.0.56-10.0': {
+ 'Linux-x86_64': '701097882cb745d4683bb7ff6c33b8a35c7c81be31bac78f05bad130e7e0b781',
+ 'Linux-ppc64le': 'f0c1cbd9de553c8e2a3893915bd5fff57b30e368ef4c964d783b6a877869e93a'},
# cuDNN 7.3.0
- version('7.3.0.29-9.0-linux-x64',
- sha256='403f9043ff2c7b2c5967454872275d07bca11fd41dfc7b21995eadcad6dbe49b')
+ '7.3.0.29-9.0': {
+ 'Linux-x86_64': '403f9043ff2c7b2c5967454872275d07bca11fd41dfc7b21995eadcad6dbe49b'},
# cuDNN 7.2.1
- version('7.2.1.38-9.0-linux-x64',
- sha256='cf007437b9ac6250ec63b89c25f248d2597fdd01369c80146567f78e75ce4e37')
+ '7.2.1.38-9.0': {
+ 'Linux-x86_64': 'cf007437b9ac6250ec63b89c25f248d2597fdd01369c80146567f78e75ce4e37'},
# cuDNN 7.1.3
- version('7.1.3-9.1-linux-x64',
- sha256='dd616d3794167ceb923d706bf73e8d6acdda770751492b921ee6827cdf190228')
- version('7.1.3-9.1-linux-ppc64le',
- sha256='e3b4837f711b98a52faacc872a68b332c833917ef3cf87c0108f1d01af9b2931')
+ '7.1.3-9.1': {
+ 'Linux-x86_64': 'dd616d3794167ceb923d706bf73e8d6acdda770751492b921ee6827cdf190228',
+ 'Linux-ppc64le': 'e3b4837f711b98a52faacc872a68b332c833917ef3cf87c0108f1d01af9b2931'},
# cuDNN 6.0
- version('6.0-8.0-linux-x64',
- sha256='9b09110af48c9a4d7b6344eb4b3e344daa84987ed6177d5c44319732f3bb7f9c')
+ '6.0-8.0': {
+ 'Linux-x86_64': '9b09110af48c9a4d7b6344eb4b3e344daa84987ed6177d5c44319732f3bb7f9c'},
# cuDNN 5.1
- version('5.1-8.0-linux-x64',
- sha256='c10719b36f2dd6e9ddc63e3189affaa1a94d7d027e63b71c3f64d449ab0645ce')
-
- # CUDA 10.2
- depends_on('cuda@10.2.0:10.2.999', when='@7.6.5.32-10.2-linux-x64')
-
- # CUDA 10.1
- depends_on('cuda@10.1.0:10.1.999', when='@7.6.5.32-10.1-osx-x64')
- depends_on('cuda@10.1.0:10.1.999', when='@7.6.5.32-10.1-linux-x64')
- depends_on('cuda@10.1.0:10.1.999', when='@7.6.5.32-10.1-linux-ppc64le')
- depends_on('cuda@10.1.0:10.1.999', when='@7.6.4.38-10.1-osx-x64')
- depends_on('cuda@10.1.0:10.1.999', when='@7.6.4.38-10.1-linux-x64')
- depends_on('cuda@10.1.0:10.1.999', when='@7.6.4.38-10.1-linux-ppc64le')
- depends_on('cuda@10.1.0:10.1.999', when='@7.6.3.30-10.1-linux-x64')
- depends_on('cuda@10.1.0:10.1.999', when='@7.6.3.30-10.1-linux-ppc64le')
- depends_on('cuda@10.1.0:10.1.999', when='@7.5.0.56-10.1-linux-x64')
- depends_on('cuda@10.1.0:10.1.999', when='@7.5.0.56-10.1-linux-ppc64le')
-
- # CUDA 10.0
- depends_on('cuda@10.0.0:10.0.999', when='@7.6.5.32-10.0-osx-x64')
- depends_on('cuda@10.0.0:10.0.999', when='@7.6.5.32-10.0-linux-x64')
- depends_on('cuda@10.0.0:10.0.999', when='@7.6.5.32-10.0-linux-ppc64le')
- depends_on('cuda@10.0.0:10.0.999', when='@7.6.4.38-10.0-osx-x64')
- depends_on('cuda@10.0.0:10.0.999', when='@7.6.4.38-10.0-linux-x64')
- depends_on('cuda@10.0.0:10.0.999', when='@7.6.4.38-10.0-linux-ppc64le')
- depends_on('cuda@10.0.0:10.0.999', when='@7.5.1.10-10.0-linux-x64')
- depends_on('cuda@10.0.0:10.0.999', when='@7.5.1.10-10.0-linux-ppc64le')
- depends_on('cuda@10.0.0:10.0.999', when='@7.5.0.56-10.0-linux-x64')
- depends_on('cuda@10.0.0:10.0.999', when='@7.5.0.56-10.0-linux-ppc64le')
-
- # CUDA 9.2
- depends_on('cuda@9.2.0:9.2.999', when='@7.6.5.32-9.2-linux-x64')
- depends_on('cuda@9.2.0:9.2.999', when='@7.6.5.32-9.2-linux-ppc64le')
- depends_on('cuda@9.2.0:9.2.999', when='@7.6.4.38-9.2-linux-x64')
- depends_on('cuda@9.2.0:9.2.999', when='@7.6.4.38-9.2-linux-ppc64le')
-
- # CUDA 9.1
- depends_on('cuda@9.1.0:9.1.999', when='@7.1.3-9.1-linux-x64')
- depends_on('cuda@9.1.0:9.1.999', when='@7.1.3-9.1-linux-ppc64le')
-
- # CUDA 9.0
- depends_on('cuda@9.0.0:9.0.999', when='@7.6.5.32-9.0-linux-x64')
- depends_on('cuda@9.0.0:9.0.999', when='@7.6.4.38-9.0-linux-x64')
- depends_on('cuda@9.0.0:9.0.999', when='@7.3.0.29-9.0-linux-x64')
- depends_on('cuda@9.0.0:9.0.999', when='@7.2.1.38-9.0-linux-x64')
-
- # CUDA 8.0
- depends_on('cuda@8.0.0:8.0.999', when='@6.0-8.0-linux-x64')
- depends_on('cuda@8.0.0:8.0.999', when='@5.1-8.0-linux-x64')
+ '5.1-8.0': {
+ 'Linux-x86_64': 'c10719b36f2dd6e9ddc63e3189affaa1a94d7d027e63b71c3f64d449ab0645ce'},
+
+}
+
+
+class Cudnn(Package):
+ """NVIDIA cuDNN is a GPU-accelerated library of primitives for deep
+ neural networks"""
+
+ homepage = "https://developer.nvidia.com/cudnn"
+
+ # Latest versions available at:
+ # https://developer.nvidia.com/rdp/cudnn-download
+ # Archived versions available at:
+ # https://developer.nvidia.com/rdp/cudnn-archive
+ # Note that download links don't work from command line,
+ # need to use modified URLs like in url_for_version.
+ maintainers = ['adamjstewart', 'bvanessen']
+
+ for ver, packages in _versions.items():
+ key = "{0}-{1}".format(platform.system(), platform.machine())
+ pkg = packages.get(key)
+ cudnn_ver, cuda_ver = ver.split('-')
+ long_ver = "{0}-{1}".format(cudnn_ver, cuda_ver)
+ if pkg:
+ version(long_ver, sha256=pkg)
+ # Add constraints matching CUDA version to cuDNN version
+ cuda_req = 'cuda@{0}.0:{0}.999'.format(cuda_ver)
+ cudnn_ver_req = '@{0}'.format(long_ver)
+ depends_on(cuda_req, when=cudnn_ver_req)
def url_for_version(self, version):
- url = 'https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-v{2}.tgz'
+ url = 'https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-{2}-v{3}.tgz'
+ # Get the system and machine arch for building the file path
+ sys = "{0}-{1}".format(platform.system(), platform.machine())
+ # Munge it to match Nvidia's naming scheme
+ sys_key = sys.lower().replace('x86_64', 'x64').replace('darwin', 'osx') \
+ .replace('aarch64', 'aarch64sbsa')
if version >= Version('7.2'):
directory = version[:3]
@@ -246,7 +228,7 @@ class Cudnn(Package):
ver = version[:2]
cuda = version[2:]
- return url.format(directory, cuda, ver)
+ return url.format(directory, cuda, sys_key, ver)
def setup_run_environment(self, env):
if 'target=ppc64le: platform=linux' in self.spec:
diff --git a/var/spack/repos/builtin/packages/cufflinks/package.py b/var/spack/repos/builtin/packages/cufflinks/package.py
index 93e8cb9075..a40768cd54 100644
--- a/var/spack/repos/builtin/packages/cufflinks/package.py
+++ b/var/spack/repos/builtin/packages/cufflinks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Cufflinks(Package):
"""Cufflinks assembles transcripts, estimates their abundances, and tests
for differential expression and regulation in RNA-Seq samples."""
- homepage = "http://cole-trapnell-lab.github.io/cufflinks"
- url = "http://cole-trapnell-lab.github.io/cufflinks/assets/downloads/cufflinks-2.2.1.Linux_x86_64.tar.gz"
+ homepage = "https://cole-trapnell-lab.github.io/cufflinks"
+ url = "https://cole-trapnell-lab.github.io/cufflinks/assets/downloads/cufflinks-2.2.1.Linux_x86_64.tar.gz"
version('2.2.1', sha256='39f812452cae26462e5d2671d38104d9e8ef30aaf9ab6dea8ca57f50f46448e4')
diff --git a/var/spack/repos/builtin/packages/cunit/package.py b/var/spack/repos/builtin/packages/cunit/package.py
index 511f1d7c25..b555b16df9 100644
--- a/var/spack/repos/builtin/packages/cunit/package.py
+++ b/var/spack/repos/builtin/packages/cunit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cupla/package.py b/var/spack/repos/builtin/packages/cupla/package.py
new file mode 100644
index 0000000000..99fb188e06
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cupla/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2021 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 Cupla(Package):
+ """C++ User interface for the Platform independent Library Alpaka"""
+
+ homepage = "https://github.com/alpaka-group/cupla"
+ git = "https://github.com/alpaka-group/cupla.git"
+ url = "https://github.com/alpaka-group/cupla/archive/refs/tags/0.3.0.tar.gz"
+
+ maintainers = ['vvolkl']
+
+ version('develop', branch='dev')
+ version('master', branch='master')
+ version('0.3.0', sha256='035512517167967697e73544c788453de5e3f0bc4e8d4864b41b2e287365cbaf')
+
+ depends_on('alpaka@0.6.0:')
+
+ def install(self, spec, prefix):
+ install_tree('include', self.prefix.include)
+ install_tree('src', self.prefix.src)
+ install_tree('doc', self.prefix.share.cupla.doc)
+ install_tree('example', self.prefix.example)
+ install_tree('cmake', self.prefix.cmake)
+ install('Findcupla.cmake', self.prefix)
+ install('cuplaConfig.cmake', self.prefix)
+
+ def setup_run_environment(self, env):
+ env.set("CUPLA_ROOT", self.prefix)
+ env.prepend_path("CMAKE_PREFIX_PATH", self.prefix)
+ env.set("CUPLA", self.prefix.share.cupla)
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.set("CUPLA_ROOT", self.prefix)
+ env.prepend_path("CMAKE_PREFIX_PATH", self.prefix)
+ env.set("CUPLA", self.prefix.share.cupla)
diff --git a/var/spack/repos/builtin/packages/cups/package.py b/var/spack/repos/builtin/packages/cups/package.py
index b2688064da..08e5270dc7 100644
--- a/var/spack/repos/builtin/packages/cups/package.py
+++ b/var/spack/repos/builtin/packages/cups/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/curl/package.py b/var/spack/repos/builtin/packages/curl/package.py
index 8cf695f6f0..6c14f344e8 100644
--- a/var/spack/repos/builtin/packages/curl/package.py
+++ b/var/spack/repos/builtin/packages/curl/package.py
@@ -1,23 +1,32 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Curl(AutotoolsPackage):
"""cURL is an open source command line tool and library for
transferring data with URL syntax"""
- homepage = "http://curl.haxx.se"
+ homepage = "https://curl.se/"
# URL must remain http:// so Spack can bootstrap curl
- url = "http://curl.haxx.se/download/curl-7.60.0.tar.bz2"
+ url = "http://curl.haxx.se/download/curl-7.78.0.tar.bz2"
+ version('7.78.0', sha256='98530b317dc95ccb324bbe4f834f07bb642fbc393b794ddf3434f246a71ea44a')
+ version('7.77.0', sha256='6c0c28868cb82593859fc43b9c8fdb769314c855c05cf1b56b023acf855df8ea')
+ version('7.76.1', sha256='7a8e184d7d31312c4ebf6a8cb59cd757e61b2b2833a9ed4f9bf708066e7695e9')
+ version('7.76.0', sha256='e29bfe3633701590d75b0071bbb649ee5ca4ca73f00649268bd389639531c49a')
+ version('7.75.0', sha256='50552d4501c178e4cc68baaecc487f466a3d6d19bbf4e50a01869effb316d026')
+ version('7.74.0', sha256='0f4d63e6681636539dc88fa8e929f934cd3a840c46e0bf28c73be11e521b77a5')
+ version('7.73.0', sha256='cf34fe0b07b800f1c01a499a6e8b2af548f6d0e044dca4a29d88a4bee146d131')
version('7.72.0', sha256='ad91970864102a59765e20ce16216efc9d6ad381471f7accceceab7d905703ef')
version('7.71.0', sha256='600f00ac2481a89548a4141ddf983fd9386165e1960bac91d0a1c81dca5dd341')
version('7.68.0', sha256='207f54917dd6a2dc733065ccf18d61bb5bebeaceb5df49cd9445483e8623eeb9')
+ version('7.64.0', sha256='d573ba1c2d1cf9d8533fadcce480d778417964e8d04ccddcc76e591d544cf2eb')
version('7.63.0', sha256='9bab7ed4ecff77020a312d84cc5fb7eb02d58419d218f267477a724a17fd8dd8')
version('7.60.0', sha256='897dfb2204bd99be328279f88f55b7c61592216b0542fcbe995c60aa92871e9b')
version('7.59.0', sha256='b5920ffd6a8c95585fb95070e0ced38322790cb335c39d0dab852d12e157b5a0')
@@ -36,11 +45,33 @@ class Curl(AutotoolsPackage):
version('7.43.0', sha256='baa654a1122530483ccc1c58cc112fec3724a82c11c6a389f1e6a37dc8858df9')
version('7.42.1', sha256='e2905973391ec2dfd7743a8034ad10eeb58dab8b3a297e7892a41a7999cac887')
+ default_tls = 'openssl'
+ if sys.platform == 'darwin':
+ default_tls = 'secure_transport'
+
+ # TODO: add dependencies for other possible TLS backends
+ values_tls = [
+ # 'amissl',
+ # 'bearssl',
+ 'gnutls',
+ 'mbedtls',
+ # 'mesalink',
+ 'nss',
+ 'openssl',
+ # 'rustls',
+ # 'schannel',
+ 'secure_transport',
+ # 'wolfssl',
+ ]
+
+ variant('tls', default=default_tls, description='TLS backend', values=values_tls, multi=True)
variant('nghttp2', default=False, description='build nghttp2 library (requires C++11)')
variant('libssh2', default=False, description='enable libssh2 support')
variant('libssh', default=False, description='enable libssh support') # , when='7.58:')
- variant('darwinssl', default=sys.platform == 'darwin', description="use Apple's SSL/TLS implementation")
variant('gssapi', default=False, description='enable Kerberos support')
+ variant('librtmp', default=False, description='enable Rtmp support')
+ variant('ldap', default=False, description='enable ldap support')
+ variant('libidn2', default=False, description='enable libidn2 support')
conflicts('+libssh', when='@:7.57.99')
# on OSX and --with-ssh the configure steps fails with
@@ -50,10 +81,15 @@ class Curl(AutotoolsPackage):
# C.f. https://github.com/spack/spack/issues/7777
conflicts('platform=darwin', when='+libssh2')
conflicts('platform=darwin', when='+libssh')
- conflicts('platform=linux', when='+darwinssl')
+ conflicts('platform=cray', when='tls=secure_transport', msg='Only supported on macOS')
+ conflicts('platform=linux', when='tls=secure_transport', msg='Only supported on macOS')
+ conflicts('tls=mbedtls', when='@:7.45')
- depends_on('openssl', when='~darwinssl')
- depends_on('libidn2')
+ depends_on('gnutls', when='tls=gnutls')
+ depends_on('mbedtls', when='tls=mbedtls')
+ depends_on('nss', when='tls=nss')
+ depends_on('openssl', when='tls=openssl')
+ depends_on('libidn2', when='+libidn2')
depends_on('zlib')
depends_on('nghttp2', when='+nghttp2')
depends_on('libssh2', when='+libssh2')
@@ -63,18 +99,75 @@ class Curl(AutotoolsPackage):
def configure_args(self):
spec = self.spec
- args = ['--with-zlib={0}'.format(spec['zlib'].prefix)]
- args.append('--with-libidn2={0}'.format(spec['libidn2'].prefix))
+ args = [
+ '--with-zlib=' + spec['zlib'].prefix,
+ # Prevent unintentional linking against system libraries: we could
+ # add variants for these in the future
+ '--without-brotli',
+ '--without-libgsasl',
+ '--without-libpsl',
+ '--without-zstd',
+ ]
- if spec.satisfies('+darwinssl'):
- args.append('--with-darwinssl')
- else:
- args.append('--with-ssl={0}'.format(spec['openssl'].prefix))
+ # https://daniel.haxx.se/blog/2021/06/07/bye-bye-metalink-in-curl/
+ # We always disable it explicitly, but the flag is gone in newer
+ # versions.
+ if spec.satisfies('@:7.77'):
+ args.append('--without-libmetalink')
if spec.satisfies('+gssapi'):
- args.append('--with-gssapi={0}'.format(spec['krb5'].prefix))
+ args.append('--with-gssapi=' + spec['krb5'].prefix)
+ else:
+ args.append('--without-gssapi')
+ args += self.with_or_without('tls')
+ args += self.with_or_without('libidn2', 'prefix')
+ args += self.with_or_without('librtmp')
args += self.with_or_without('nghttp2')
args += self.with_or_without('libssh2')
args += self.with_or_without('libssh')
+ args += self.enable_or_disable('ldap')
return args
+
+ def with_or_without_gnutls(self, activated):
+ if activated:
+ return '--with-gnutls=' + self.spec['gnutls'].prefix
+ else:
+ return '--without-gnutls'
+
+ def with_or_without_mbedtls(self, activated):
+ if self.spec.satisfies('@7.46:'):
+ if activated:
+ return '--with-mbedtls=' + self.spec['mbedtls'].prefix
+ else:
+ return '--without-mbedtls'
+
+ def with_or_without_nss(self, activated):
+ if activated:
+ return '--with-nss=' + self.spec['nss'].prefix
+ else:
+ return '--without-nss'
+
+ def with_or_without_openssl(self, activated):
+ if self.spec.satisfies('@7.77:'):
+ if activated:
+ return '--with-openssl=' + self.spec['openssl'].prefix
+ else:
+ return '--without-openssl'
+ else:
+ if activated:
+ return '--with-ssl=' + self.spec['openssl'].prefix
+ else:
+ return '--without-ssl'
+
+ def with_or_without_secure_transport(self, activated):
+ if self.spec.satisfies('@7.65:'):
+ if activated:
+ return '--with-secure-transport'
+ else:
+ return '--without-secure-transport'
+ else:
+ if activated:
+ return '--with-darwinssl'
+ else:
+ return '--without-darwinssl'
diff --git a/var/spack/repos/builtin/packages/cusz/package.py b/var/spack/repos/builtin/packages/cusz/package.py
index c846c31320..1b020c7493 100644
--- a/var/spack/repos/builtin/packages/cusz/package.py
+++ b/var/spack/repos/builtin/packages/cusz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cvector/package.py b/var/spack/repos/builtin/packages/cvector/package.py
new file mode 100644
index 0000000000..d4c6d0c4f6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cvector/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Cvector(MakefilePackage):
+ """CVector -- ANSI C API for Dynamic Arrays"""
+
+ homepage = "http://cvector.sourceforge.net/"
+ url = "https://downloads.sourceforge.net/project/cvector/cvector/CVector-1.0.3/CVector-1.0.3.tar.gz"
+
+ version('1.0.3', sha256='d3fa92de3cd5ba8697abdbb52080248b2c252a81cf40a8ec639be301518d0ce3')
+
+ depends_on('libtool', type='build')
+
+ def edit(self, spec, prefix):
+ mf = FileFilter('Makefile')
+ mf.filter(r'^CC.+', "CC = {0}".format(spack_cc))
+ mf.filter(r'^INSTALL_PREFIX .+', "INSTALL_PREFIX = {0}".format(prefix))
+
+ def build(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin/packages/cvs/package.py b/var/spack/repos/builtin/packages/cvs/package.py
index 7dd3cd129b..377da2c85f 100644
--- a/var/spack/repos/builtin/packages/cvs/package.py
+++ b/var/spack/repos/builtin/packages/cvs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Cvs(AutotoolsPackage, GNUMirrorPackage):
"""CVS a very traditional source control system"""
- homepage = "http://www.nongnu.org/cvs/"
+ homepage = "https://www.nongnu.org/cvs/"
gnu_mirror_path = "non-gnu/cvs/source/feature/1.12.13/cvs-1.12.13.tar.bz2"
version('1.12.13', sha256='78853613b9a6873a30e1cc2417f738c330e75f887afdaf7b3d0800cb19ca515e')
diff --git a/var/spack/repos/builtin/packages/cxx/package.py b/var/spack/repos/builtin/packages/cxx/package.py
index 0be36c3ae5..f06949b698 100644
--- a/var/spack/repos/builtin/packages/cxx/package.py
+++ b/var/spack/repos/builtin/packages/cxx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/cxxopts/package.py b/var/spack/repos/builtin/packages/cxxopts/package.py
index e5bd1d68ef..7a2f64e61e 100644
--- a/var/spack/repos/builtin/packages/cxxopts/package.py
+++ b/var/spack/repos/builtin/packages/cxxopts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,9 @@ class Cxxopts(CMakePackage):
homepage = "https://github.com/jarro2783/cxxopts"
url = "https://github.com/jarro2783/cxxopts/archive/v2.2.0.tar.gz"
+ maintainers = ['haampie']
+ version('2.2.1', sha256='984aa3c8917d649b14d7f6277104ce38dd142ce378a9198ec926f03302399681')
version('2.2.0', sha256='447dbfc2361fce9742c5d1c9cfb25731c977b405f9085a738fbd608626da8a4d')
version('2.1.2', sha256='95f524c6615a2067e935e02ef74b013b17efa339df0a3c9db3e91fc0afbaf269')
version('2.1.1', sha256='e19216251427d04f0273e6487c0246ae2dbb4154bf178f43896af8fa1ef89f3f')
@@ -30,13 +32,9 @@ class Cxxopts(CMakePackage):
depends_on('icu4c', when='+unicode')
def cmake_args(self):
- args = ['-DCXXOPTS_ENABLE_INSTALL=ON',
- '-DCXXOPTS_BUILD_EXAMPLES=OFF',
- '-DCXXOPTS_BUILD_TESTS=OFF']
-
- if '+unicode' in self.spec:
- args.append('-DCXXOPTS_USE_UNICODE_HELP=ON')
- else:
- args.append('-DCXXOPTS_USE_UNICODE_HELP=OFF')
-
- return args
+ return [
+ self.define('CXXOPTS_ENABLE_INSTALL', 'ON'),
+ self.define('CXXOPTS_BUILD_EXAMPLES', 'OFF'),
+ self.define('CXXOPTS_BUILD_TESTS', 'OFF'),
+ self.define_from_variant('CXXOPTS_USE_UNICODE_HELP', 'unicode')
+ ]
diff --git a/var/spack/repos/builtin/packages/cxxtest/package.py b/var/spack/repos/builtin/packages/cxxtest/package.py
new file mode 100644
index 0000000000..a8d9df2359
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cxxtest/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 Cxxtest(Package):
+ """C++ unit test system."""
+
+ homepage = "https://cxxtest.com/"
+ url = "https://sourceforge.net/projects/cxxtest/files/cxxtest/4.4/cxxtest-4.4.tar.gz/download"
+
+ version('4.4', sha256='1c154fef91c65dbf1cd4519af7ade70a61d85a923b6e0c0b007dc7f4895cf7d8')
+
+ def install(self, spec, prefix):
+ install_tree(self.stage.source_path, prefix)
diff --git a/var/spack/repos/builtin/packages/cyrus-sasl/package.py b/var/spack/repos/builtin/packages/cyrus-sasl/package.py
index 98848ccff9..355180ab79 100644
--- a/var/spack/repos/builtin/packages/cyrus-sasl/package.py
+++ b/var/spack/repos/builtin/packages/cyrus-sasl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/czmq/package.py b/var/spack/repos/builtin/packages/czmq/package.py
index acd128adc1..c09987df73 100644
--- a/var/spack/repos/builtin/packages/czmq/package.py
+++ b/var/spack/repos/builtin/packages/czmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,7 +19,7 @@ class Czmq(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('autoconf', type='build')
depends_on('pkgconfig', type='build')
- depends_on('libuuid')
+ depends_on('uuid')
depends_on('libzmq')
def autoreconf(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/dakota/package.py b/var/spack/repos/builtin/packages/dakota/package.py
index 20ce29f7a9..656adfc460 100644
--- a/var/spack/repos/builtin/packages/dakota/package.py
+++ b/var/spack/repos/builtin/packages/dakota/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -44,6 +44,7 @@ class Dakota(CMakePackage):
depends_on('mpi', when='+mpi')
depends_on('python')
+ depends_on('perl-data-dumper', type='build', when='@6.12:')
depends_on('boost@:1.68.0', when='@:6.12')
depends_on('cmake@2.8.9:', type='build')
@@ -51,8 +52,7 @@ class Dakota(CMakePackage):
spec = self.spec
args = [
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
]
if '+mpi' in spec:
diff --git a/var/spack/repos/builtin/packages/daligner/package.py b/var/spack/repos/builtin/packages/daligner/package.py
index 8f05e8b9c0..4db5d6dda8 100644
--- a/var/spack/repos/builtin/packages/daligner/package.py
+++ b/var/spack/repos/builtin/packages/daligner/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dalton/package.py b/var/spack/repos/builtin/packages/dalton/package.py
new file mode 100644
index 0000000000..e38b430274
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dalton/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2021 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 Dalton(CMakePackage):
+ """
+ The Dalto nprogram is designed to allow convenient,
+ automated determination of a largenumber of molecular properties
+ based on an HF, HF-srDFT, DFT, MP2, CC, CI, MCSCF or MC-srDFT
+ reference wave function.
+ """
+
+ homepage = "https://daltonprogram.org"
+ git = 'https://gitlab.com/dalton/dalton.git'
+
+ version('2020.0', branch='Dalton2020.0', submodules=True)
+
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('mpi')
+
+ def setup_run_environment(self, env):
+ env.prepend_path('PATH', self.spec.prefix.join('dalton'))
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = ['-DENABLE_BUILTIN_BLAS=OFF',
+ '-DENABLE_BUILTIN_LAPACK=OFF',
+ '-DUSE_BUILTIN_LAPACK=OFF',
+ '-DENABLE_STATIC_LINKING=OFF',
+ '-DENABLE_MPI=ON',
+ '-DCMAKE_C_COMPILER={0}'.format(
+ spec['mpi'].prefix.bin.mpicc),
+ '-DCMAKE_CXX_COMPILER={0}'.format(
+ spec['mpi'].prefix.bin.mpicxx),
+ '-DCMAKE_Fortran_COMPILER={0}'.format(
+ spec['mpi'].prefix.bin.mpif90),
+ '-DMPIEXEC_MAX_NUMPROCS=128'
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/damageproto/package.py b/var/spack/repos/builtin/packages/damageproto/package.py
index ad8f08d7de..74f514da7e 100644
--- a/var/spack/repos/builtin/packages/damageproto/package.py
+++ b/var/spack/repos/builtin/packages/damageproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/damaris/package.py b/var/spack/repos/builtin/packages/damaris/package.py
index 13616e1d78..81a439f8cc 100644
--- a/var/spack/repos/builtin/packages/damaris/package.py
+++ b/var/spack/repos/builtin/packages/damaris/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/damselfly/package.py b/var/spack/repos/builtin/packages/damselfly/package.py
index 5629b94efa..20c156e4fe 100644
--- a/var/spack/repos/builtin/packages/damselfly/package.py
+++ b/var/spack/repos/builtin/packages/damselfly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py
index 1c81045e69..f2734e2a93 100644
--- a/var/spack/repos/builtin/packages/darshan-runtime/package.py
+++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py
@@ -1,26 +1,33 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
-class DarshanRuntime(Package):
+class DarshanRuntime(AutotoolsPackage):
"""Darshan (runtime) is a scalable HPC I/O characterization tool
designed to capture an accurate picture of application I/O behavior,
including properties such as patterns of access within files, with
minimum overhead. DarshanRuntime package should be installed on
systems where you intend to instrument MPI applications."""
- homepage = "http://www.mcs.anl.gov/research/projects/darshan/"
- url = "http://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz"
- git = "https://xgitlab.cels.anl.gov/darshan/darshan.git"
+ homepage = "https://www.mcs.anl.gov/research/projects/darshan/"
+ url = "https://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz"
+ git = "https://github.com/darshan-hpc/darshan.git"
maintainers = ['shanedsnyder', 'carns']
- version('develop', branch='master')
+ test_requires_compiler = True
+
+ version('main', branch='main', submodules=True)
+ version('3.3.1', sha256='281d871335977d0592a49d053df93d68ce1840f6fdec27fea7a59586a84395f7')
+ version('3.3.0', sha256='2e8bccf28acfa9f9394f2084ec18122c66e45d966087fa2e533928e824fcb57a')
+ version('3.3.0-pre2', sha256='0fc09f86f935132b7b05df981b05cdb3796a1ea02c7acd1905323691df65e761')
+ version('3.3.0-pre1', sha256='1c655359455b5122921091bab9961491be58a5f0158f073d09fe8cc772bd0812')
version('3.2.1', sha256='d63048b7a3d1c4de939875943e3e7a2468a9034fcb68585edbc87f57f622e7f7')
version('3.2.0', sha256='4035435bdc0fa2a678247fbf8d5a31dfeb3a133baf06577786b1fe8d00a31b7e')
version('3.1.8', sha256='3ed51c8d5d93b4a8cbb7d53d13052140a9dffe0bc1a3e1ebfc44a36a184b5c82')
@@ -31,13 +38,42 @@ class DarshanRuntime(Package):
depends_on('mpi', when='+mpi')
depends_on('zlib')
+ depends_on('hdf5', when='+hdf5')
+ depends_on('papi', when='+apxc')
+ depends_on('autoconf', type='build', when='@main')
+ depends_on('automake', type='build', when='@main')
+ depends_on('libtool', type='build', when='@main')
+ depends_on('m4', type='build', when='@main')
- variant('slurm', default=False, description='Use Slurm Job ID')
- variant('cobalt', default=False, description='Use Coblat Job Id')
- variant('pbs', default=False, description='Use PBS Job Id')
variant('mpi', default=True, description='Compile with MPI support')
+ variant('hdf5', default=False, description='Compile with HDF5 module')
+ variant('apmpi', default=False, description='Compile with AutoPerf MPI module')
+ variant('apmpi_sync', default=False, description='Compile with AutoPerf MPI module (with collective synchronization timing)')
+ variant('apxc', default=False, description='Compile with AutoPerf XC module')
+ variant(
+ 'scheduler',
+ default='NONE',
+ description='queue system scheduler JOB ID',
+ values=('NONE', 'cobalt', 'pbs', 'sge', 'slurm'),
+ multi=False
+ )
- def install(self, spec, prefix):
+ conflicts('+hdf5', when='@:3.1.8',
+ msg='+hdf5 variant only available starting from version 3.2.0')
+ conflicts('+apmpi', when='@:3.2.1',
+ msg='+apmpi variant only available starting from version 3.3.0')
+ conflicts('+apmpi_sync', when='@:3.2.1',
+ msg='+apmpi variant only available starting from version 3.3.0')
+ conflicts('+apxc', when='@:3.2.1',
+ msg='+apxc variant only available starting from version 3.3.0')
+
+ @property
+ def configure_directory(self):
+ return 'darshan-runtime'
+
+ def configure_args(self):
+ spec = self.spec
+ extra_args = []
job_id = 'NONE'
if '+slurm' in spec:
@@ -46,25 +82,110 @@ class DarshanRuntime(Package):
job_id = 'COBALT_JOBID'
if '+pbs' in spec:
job_id = 'PBS_JOBID'
+ if '+sge' in spec:
+ job_id = 'JOB_ID'
+
+ if '+hdf5' in spec:
+ if self.version < Version('3.3.2'):
+ extra_args.append('--enable-hdf5-mod=%s' % spec['hdf5'].prefix)
+ else:
+ extra_args.append('--enable-hdf5-mod')
+ if '+apmpi' in spec:
+ extra_args.append('--enable-apmpi-mod')
+ if '+apmpi_sync' in spec:
+ extra_args.append(['--enable-apmpi-mod',
+ '--enable-apmpi-coll-sync'])
+ if '+apxc' in spec:
+ extra_args.append(['--enable-apxc-mod'])
+
+ extra_args.append('--with-mem-align=8')
+ extra_args.append('--with-log-path-by-env=DARSHAN_LOG_DIR_PATH')
+ extra_args.append('--with-jobid-env=%s' % job_id)
+ extra_args.append('--with-zlib=%s' % spec['zlib'].prefix)
- # TODO: BG-Q and other platform configure options
- options = []
if '+mpi' in spec:
- options = ['CC=%s' % spec['mpi'].mpicc]
+ extra_args.append('CC=%s' % self.spec['mpi'].mpicc)
else:
- options = ['--without-mpi']
- options.extend(['--with-mem-align=8',
- '--with-log-path-by-env=DARSHAN_LOG_DIR_PATH',
- '--with-jobid-env=%s' % job_id,
- '--with-zlib=%s' % spec['zlib'].prefix])
-
- with working_dir('spack-build', create=True):
- configure = Executable('../darshan-runtime/configure')
- configure('--prefix=%s' % prefix, *options)
- make()
- make('install')
+ extra_args.append('CC=%s' % self.compiler.cc)
+ extra_args.append('--without-mpi')
+
+ return extra_args
def setup_run_environment(self, env):
# default path for log file, could be user or site specific setting
darshan_log_dir = os.environ['HOME']
env.set('DARSHAN_LOG_DIR_PATH', darshan_log_dir)
+
+ @property
+ def basepath(self):
+ return join_path('darshan-test',
+ join_path('regression',
+ join_path('test-cases', 'src')))
+
+ @run_after('install')
+ def _copy_test_inputs(self):
+ test_inputs = [
+ join_path(self.basepath, 'mpi-io-test.c')]
+ self.cache_extra_test_sources(test_inputs)
+
+ def _test_intercept(self):
+ testdir = "intercept-test"
+ with working_dir(testdir, create=True):
+ if '+mpi' in self.spec:
+ # compile a test program
+ logname = join_path(os.getcwd(), "test.darshan")
+ fname = join_path(self.test_suite.current_test_cache_dir,
+ join_path(self.basepath, 'mpi-io-test.c'))
+ cc = Executable(self.spec['mpi'].mpicc)
+ compile_opt = ['-c', fname]
+ link_opt = ['-o', "mpi-io-test", 'mpi-io-test.o']
+ cc(*(compile_opt))
+ cc(*(link_opt))
+
+ # run test program and intercept
+ purpose = "Test running code built against darshan"
+ exe = "./mpi-io-test"
+ options = ['-f', 'tmp.dat']
+ status = [0]
+ installed = False
+ expected_output = [r"Write bandwidth = \d+.\d+ Mbytes/sec",
+ r"Read bandwidth = \d+.\d+ Mbytes/sec"]
+ env['LD_PRELOAD'] = 'libdarshan.so'
+ env['DARSHAN_LOGFILE'] = logname
+ self.run_test(exe,
+ options,
+ expected_output,
+ status,
+ installed,
+ purpose,
+ skip_missing=False,
+ work_dir=None)
+ env.pop('LD_PRELOAD')
+
+ import llnl.util.tty as tty
+
+ # verify existence of log and size is > 0
+ tty.msg("Test for existince of log:")
+ if os.path.exists(logname):
+ sr = os.stat(logname)
+ print("PASSED")
+ tty.msg("Test for size of log:")
+ if not sr.st_size > 0:
+ exc = BaseException('log size is 0')
+ m = None
+ if spack.config.get('config:fail_fast', False):
+ raise TestFailure([(exc, m)])
+ else:
+ self.test_failures.append((exc, m))
+ else:
+ print("PASSED")
+ else:
+ exc = BaseException('log does not exist')
+ m = None
+ if spack.config.get('config:fail_fast', False):
+ raise TestFailure([(exc, m)])
+ else:
+ self.test_failures.append((exc, m))
+
+ def test(self):
+ self._test_intercept()
diff --git a/var/spack/repos/builtin/packages/darshan-util/package.py b/var/spack/repos/builtin/packages/darshan-util/package.py
index abd194e027..1e54a57875 100644
--- a/var/spack/repos/builtin/packages/darshan-util/package.py
+++ b/var/spack/repos/builtin/packages/darshan-util/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,19 +6,23 @@
from spack import *
-class DarshanUtil(Package):
+class DarshanUtil(AutotoolsPackage):
"""Darshan (util) is collection of tools for parsing and summarizing log
files produced by Darshan (runtime) instrumentation. This package is
typically installed on systems (front-end) where you intend to analyze
log files produced by Darshan (runtime)."""
- homepage = "http://www.mcs.anl.gov/research/projects/darshan/"
- url = "http://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz"
- git = "https://xgitlab.cels.anl.gov/darshan/darshan.git"
+ homepage = "https://www.mcs.anl.gov/research/projects/darshan/"
+ url = "https://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz"
+ git = "https://github.com/darshan-hpc/darshan.git"
maintainers = ['shanedsnyder', 'carns']
- version('develop', branch='master')
+ version('main', branch='main', submodules='True')
+ version('3.3.1', sha256='281d871335977d0592a49d053df93d68ce1840f6fdec27fea7a59586a84395f7')
+ version('3.3.0', sha256='2e8bccf28acfa9f9394f2084ec18122c66e45d966087fa2e533928e824fcb57a')
+ version('3.3.0-pre2', sha256='0fc09f86f935132b7b05df981b05cdb3796a1ea02c7acd1905323691df65e761')
+ version('3.3.0-pre1', sha256='1c655359455b5122921091bab9961491be58a5f0158f073d09fe8cc772bd0812')
version('3.2.1', sha256='d63048b7a3d1c4de939875943e3e7a2468a9034fcb68585edbc87f57f622e7f7')
version('3.2.0', sha256='4035435bdc0fa2a678247fbf8d5a31dfeb3a133baf06577786b1fe8d00a31b7e')
version('3.1.8', sha256='3ed51c8d5d93b4a8cbb7d53d13052140a9dffe0bc1a3e1ebfc44a36a184b5c82')
@@ -28,18 +32,83 @@ class DarshanUtil(Package):
version('3.0.0', sha256='95232710f5631bbf665964c0650df729c48104494e887442596128d189da43e0')
variant('bzip2', default=False, description="Enable bzip2 compression")
+ variant('apmpi', default=False, description='Compile with AutoPerf MPI module support')
+ variant('apxc', default=False, description='Compile with AutoPerf XC module support')
+
depends_on('zlib')
depends_on('bzip2', when="+bzip2", type=("build", "link", "run"))
+ depends_on('autoconf', type='build', when='@main')
+ depends_on('automake', type='build', when='@main')
+ depends_on('libtool', type='build', when='@main')
+ depends_on('m4', type='build', when='@main')
patch('retvoid.patch', when='@3.2.0:3.2.1')
- def install(self, spec, prefix):
+ conflicts('+apmpi', when='@:3.2.1',
+ msg='+apmpi variant only available starting from version 3.3.0')
+ conflicts('+apxc', when='@:3.2.1',
+ msg='+apxc variant only available starting from version 3.3.0')
+
+ @property
+ def configure_directory(self):
+ return 'darshan-util'
+
+ def configure_args(self):
+ spec = self.spec
+ extra_args = []
+
+ extra_args.append('CC=%s' % self.compiler.cc)
+ extra_args.append('--with-zlib=%s' % spec['zlib'].prefix)
+ if '+apmpi' in spec:
+ if self.version < Version('3.3.2'):
+ extra_args.append('--enable-autoperf-apmpi')
+ else:
+ extra_args.append('--enable-apmpi-mod')
+ if '+apxc' in spec:
+ if self.version < Version('3.3.2'):
+ extra_args.append('--enable-autoperf-apxc')
+ else:
+ extra_args.append('--enable-apxc-mod')
+
+ return extra_args
+
+ @property
+ def basepath(self):
+ return join_path('darshan-test', 'example-output')
+
+ @run_after('install')
+ def _copy_test_inputs(self):
+ # add darshan-test/example-output/mpi-io-test-spack-expected.txt"
+ test_inputs = [
+ join_path(self.basepath,
+ "mpi-io-test-x86_64-{0}.darshan".format(self.spec.version))]
+ self.cache_extra_test_sources(test_inputs)
- options = ['CC=%s' % self.compiler.cc,
- '--with-zlib=%s' % spec['zlib'].prefix]
+ def _test_parser(self):
+ purpose = "Verify darshan-parser can parse an example log \
+ from the current version and check some expected counter values"
+ # Switch to loading the expected strings from the darshan source in future
+ # filename = self.test_suite.current_test_cache_dir.
+ # join(join_path(self.basepath, "mpi-io-test-spack-expected.txt"))
+ # expected_output = self.get_escaped_text_output(filename)
+ expected_output = [r"POSIX\s+-1\s+\w+\s+POSIX_OPENS\s+\d+",
+ r"MPI-IO\s+-1\s+\w+\s+MPIIO_INDEP_OPENS\s+\d+",
+ r"STDIO\s+0\s+\w+\s+STDIO_OPENS\s+\d+"]
+ logname = self.test_suite.current_test_cache_dir.join(
+ join_path(self.basepath,
+ "mpi-io-test-x86_64-{0}.darshan".format(self.spec.version)))
+ exe = 'darshan-parser'
+ options = [logname]
+ status = [0]
+ installed = True
+ self.run_test(exe,
+ options,
+ expected_output,
+ status,
+ installed,
+ purpose,
+ skip_missing=False,
+ work_dir=None)
- with working_dir('spack-build', create=True):
- configure = Executable('../darshan-util/configure')
- configure('--prefix=%s' % prefix, *options)
- make()
- make('install')
+ def test(self):
+ self._test_parser()
diff --git a/var/spack/repos/builtin/packages/dash/package.py b/var/spack/repos/builtin/packages/dash/package.py
index 57323d6721..6399c87063 100644
--- a/var/spack/repos/builtin/packages/dash/package.py
+++ b/var/spack/repos/builtin/packages/dash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/datamash/package.py b/var/spack/repos/builtin/packages/datamash/package.py
index 65fcddbe0a..8125f3604e 100644
--- a/var/spack/repos/builtin/packages/datamash/package.py
+++ b/var/spack/repos/builtin/packages/datamash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dataspaces/package.py b/var/spack/repos/builtin/packages/dataspaces/package.py
index be5c5c884f..845a86324e 100644
--- a/var/spack/repos/builtin/packages/dataspaces/package.py
+++ b/var/spack/repos/builtin/packages/dataspaces/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 six
+from spack import *
+
def is_string(x):
"""validate a string"""
@@ -52,11 +53,20 @@ class Dataspaces(AutotoolsPackage):
bash = which('bash')
bash('./autogen.sh')
+ def setup_build_environment(self, env):
+ if self.spec.satisfies('+mpi'):
+ env.set('CC', self.spec['mpi'].mpicc)
+ env.set('FC', self.spec['mpi'].mpifc)
+
+ env.set('CFLAGS', self.compiler.cc_pic_flag)
+
+ if '%gcc@10:' in self.spec:
+ env.set('FCFLAGS', '-fallow-argument-mismatch')
+
def configure_args(self):
args = []
cookie = self.spec.variants['gni-cookie'].value
ptag = self.spec.variants['ptag'].value
- args.append('CFLAGS={0}'.format(self.compiler.cc_pic_flag))
if self.spec.satisfies('+dimes'):
args.append('--enable-dimes')
if self.spec.satisfies('+cray-drc'):
@@ -64,7 +74,4 @@ class Dataspaces(AutotoolsPackage):
else:
args.append('--with-gni-cookie=%s' % cookie)
args.append('--with-gni-ptag=%s' % ptag)
- if self.spec.satisfies('+mpi'):
- args.append('CC=%s' % self.spec['mpi'].mpicc)
- args.append('FC=%s' % self.spec['mpi'].mpifc)
return args
diff --git a/var/spack/repos/builtin/packages/datatransferkit/package.py b/var/spack/repos/builtin/packages/datatransferkit/package.py
index 070f724d2a..42698cc172 100644
--- a/var/spack/repos/builtin/packages/datatransferkit/package.py
+++ b/var/spack/repos/builtin/packages/datatransferkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,24 +19,29 @@ class Datatransferkit(CMakePackage):
version('master', branch='master', submodules=True)
version('3.1-rc2', commit='1abc1a43b33dffc7a16d7497b4185d09d865e36a', submodules=True)
+ variant('external-arborx', default=False,
+ description='use an external ArborX library instead of the submodule')
variant('openmp', default=False, description='enable OpenMP backend')
variant('serial', default=True, description='enable Serial backend (default)')
variant('shared', default=True,
description='enable the build of shared lib')
+ depends_on('arborx@1.0:', when='+external-arborx')
+ depends_on('boost')
depends_on('cmake', type='build')
- depends_on('trilinos+intrepid2+shards~dtk', when='+serial')
- depends_on('trilinos+intrepid2+shards+openmp~dtk', when='+openmp')
+ depends_on('trilinos+intrepid2+shards~dtk')
+ depends_on('trilinos+openmp', when='+openmp')
depends_on('trilinos+stratimikos+belos', when='@master')
depends_on('trilinos@13:13.99', when='@3.1-rc2')
def cmake_args(self):
spec = self.spec
+ from_variant = self.define_from_variant
options = [
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
+ from_variant('BUILD_SHARED_LIBS', 'shared'),
'-DDataTransferKit_ENABLE_DataTransferKit=ON',
+ from_variant('DataTransferKit_ENABLE_ArborX_TPL', 'external-arborx'),
'-DDataTransferKit_ENABLE_TESTS=OFF',
'-DDataTransferKit_ENABLE_EXAMPLES=OFF',
'-DCMAKE_CXX_EXTENSIONS=OFF',
diff --git a/var/spack/repos/builtin/packages/date/package.py b/var/spack/repos/builtin/packages/date/package.py
index 0d2e7e5d8a..b8df610a4c 100644
--- a/var/spack/repos/builtin/packages/date/package.py
+++ b/var/spack/repos/builtin/packages/date/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class Date(CMakePackage):
homepage = "https://github.com/HowardHinnant/date"
url = "https://github.com/HowardHinnant/date/archive/v3.0.0.zip"
+ version('3.0.1', sha256='f4300b96f7a304d4ef9bf6e0fa3ded72159f7f2d0f605bdde3e030a0dba7cf9f')
version('3.0.0', sha256='ddbec664607bb6ec7dd4c7be1f9eefc3d8ce88293ffc9391486ce6ce887ec9b2')
variant('cxxstd',
diff --git a/var/spack/repos/builtin/packages/dateutils/package.py b/var/spack/repos/builtin/packages/dateutils/package.py
index 8927731942..b81eedb6c8 100644
--- a/var/spack/repos/builtin/packages/dateutils/package.py
+++ b/var/spack/repos/builtin/packages/dateutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Dateutils(AutotoolsPackage):
and times in the command line with a strong focus on use cases that arise
when dealing with large amounts of financial data."""
- homepage = "http://www.fresse.org/dateutils/"
+ homepage = "https://www.fresse.org/dateutils/"
url = "https://github.com/hroptatyr/dateutils/releases/download/v0.4.6/dateutils-0.4.6.tar.xz"
version('0.4.7', sha256='49725457f5bef45ea424baade8999a6e54496e357f64280474ff7134a54f599a')
diff --git a/var/spack/repos/builtin/packages/davix/package.py b/var/spack/repos/builtin/packages/davix/package.py
index e1845d549a..5d3355f162 100644
--- a/var/spack/repos/builtin/packages/davix/package.py
+++ b/var/spack/repos/builtin/packages/davix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,11 +9,10 @@ from spack import *
class Davix(CMakePackage):
"""High-performance file management over WebDAV/HTTP."""
- homepage = "https://dmc.web.cern.ch/projects/davix"
- url = "http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix/0.6.8/davix-0.6.8.tar.gz"
- list_url = "http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix/"
- list_depth = 1
+ homepage = "https://davix.web.cern.ch/davix/docs/devel/index.html"
+ url = "https://github.com/cern-fts/davix/releases/download/R_0_7_6/davix-0.7.6.tar.gz"
+ version('0.7.6', sha256='a2e7fdff29f7ba247a3bcdb08ab1db6d6ed745de2d3971b46526986caf360673')
version('0.7.5', sha256='d920ca976846875d83af4dc50c99280bb3741fcf8351d5733453e70fa5fe6fc8')
version('0.7.3', sha256='cd46276e72c6a0da1e2ad30eb66ec509a4c023687767c62a66713fa8c23d328a')
version('0.6.9', sha256='fbd97eb5fdf82ca48770d06bf8e2805b35f23255478aa381a9d25a49eb98e348')
@@ -27,7 +26,7 @@ class Davix(CMakePackage):
depends_on('pkgconfig', type='build')
depends_on('libxml2')
- depends_on('libuuid')
+ depends_on('uuid')
depends_on('openssl')
def cmake_args(self):
diff --git a/var/spack/repos/builtin/packages/dbcsr/package.py b/var/spack/repos/builtin/packages/dbcsr/package.py
index 028efb0e1d..a2883f7183 100644
--- a/var/spack/repos/builtin/packages/dbcsr/package.py
+++ b/var/spack/repos/builtin/packages/dbcsr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
from spack import *
-class Dbcsr(CMakePackage, CudaPackage):
+class Dbcsr(CMakePackage, CudaPackage, ROCmPackage):
"""Distributed Block Compressed Sparse Row matrix library."""
homepage = "https://github.com/cp2k/dbcsr"
@@ -21,16 +21,13 @@ class Dbcsr(CMakePackage, CudaPackage):
variant('shared', default=True, description='Build shared library')
variant('smm', default='libxsmm', values=('libxsmm', 'blas'),
description='Library for small matrix multiplications')
- variant('cuda_arch',
- description='CUDA architecture',
- default='none',
- values=('none', '35', '37', '60', '70'),
- multi=False)
variant('cuda_arch_35_k20x', default=False,
description=('CP2K (resp. DBCSR) has specific parameter sets for'
' different GPU models. Enable this when building'
' with cuda_arch=35 for a K20x instead of a K40'))
+ variant('opencl', default=False, description='Enable OpenCL backend')
+
depends_on('blas')
depends_on('lapack')
depends_on('mpi', when='+mpi')
@@ -41,36 +38,69 @@ class Dbcsr(CMakePackage, CudaPackage):
depends_on('pkgconfig', type='build')
depends_on('python@3.6:', type='build', when='+cuda')
- conflicts('+cuda', when='cuda_arch=none')
+ depends_on('hipblas', when='+rocm')
+
+ depends_on('opencl', when='+opencl')
+
+ # We only support specific gpu archs for which we have parameter files
+ # for optimal kernels. Note that we don't override the parent class arch
+ # properties, since the parent class defines constraints for different archs
+ # Instead just mark all unsupported cuda archs as conflicting.
+ dbcsr_cuda_archs = ('35', '37', '60', '70')
+ cuda_msg = 'dbcsr only supports cuda_arch {0}'.format(dbcsr_cuda_archs)
+
+ for arch in CudaPackage.cuda_arch_values:
+ if arch not in dbcsr_cuda_archs:
+ conflicts('+cuda', when='cuda_arch={0}'.format(arch), msg=cuda_msg)
+
+ conflicts('+cuda', when='cuda_arch=none', msg=cuda_msg)
+
+ dbcsr_amdgpu_targets = ('gfx906')
+ amd_msg = 'DBCSR only supports amdgpu_target {0}'.format(dbcsr_amdgpu_targets)
+
+ for arch in ROCmPackage.amdgpu_targets:
+ if arch not in dbcsr_amdgpu_targets:
+ conflicts('+rocm', when='amdgpu_target={0}'.format(arch), msg=amd_msg)
+
+ accel_msg = "CUDA, ROCm and OpenCL support are mutually exlusive"
+ conflicts('+cuda', when='+rocm', msg=accel_msg)
+ conflicts('+cuda', when='+opencl', msg=accel_msg)
+ conflicts('+rocm', when='+opencl', msg=accel_msg)
+
+ # Require openmp threading for OpenBLAS by making other options conflict
+ conflicts('^openblas threads=pthreads', when='+openmp')
+ conflicts('^openblas threads=none', when='+openmp')
+
+ conflicts('smm=blas', when='+opencl')
generator = 'Ninja'
depends_on('ninja@1.10:', type='build')
def cmake_args(self):
- if ('+openmp' in self.spec
- and '^openblas' in self.spec
- and '^openblas threads=openmp' not in self.spec):
- raise InstallError(
- '^openblas threads=openmp required for dbcsr+openmp')
-
spec = self.spec
+
+ if len(spec.variants['cuda_arch'].value) > 1:
+ raise InstallError("dbcsr supports only one cuda_arch at a time")
+
+ if len(spec.variants['amdgpu_target'].value) > 1:
+ raise InstallError("DBCSR supports only one amdgpu_arch at a time")
+
args = [
'-DUSE_SMM=%s' % ('libxsmm' if 'smm=libxsmm' in spec else 'blas'),
- '-DUSE_MPI=%s' % ('ON' if '+mpi' in spec else 'OFF'),
- '-DUSE_OPENMP=%s' % (
- 'ON' if '+openmp' in spec else 'OFF'),
+ self.define_from_variant('USE_MPI', 'mpi'),
+ self.define_from_variant('USE_OPENMP', 'openmp'),
# C API needs MPI
- '-DWITH_C_API=%s' % ('ON' if '+mpi' in spec else 'OFF'),
+ self.define_from_variant('WITH_C_API', 'mpi'),
'-DBLAS_FOUND=true',
'-DBLAS_LIBRARIES=%s' % (spec['blas'].libs.joined(';')),
'-DLAPACK_FOUND=true',
'-DLAPACK_LIBRARIES=%s' % (spec['lapack'].libs.joined(';')),
'-DWITH_EXAMPLES=ON',
- '-DBUILD_SHARED_LIBS=%s' % ('ON' if '+shared' in spec else 'OFF'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
]
- if '+cuda' in self.spec:
- cuda_arch = self.spec.variants['cuda_arch'].value
+ if self.spec.satisfies('+cuda'):
+ cuda_arch = self.spec.variants['cuda_arch'].value[0]
gpuver = {
'35': 'K40',
@@ -83,7 +113,27 @@ class Dbcsr(CMakePackage, CudaPackage):
and self.spec.satisfies('+cuda_arch_35_k20x')):
gpuver = 'K20X'
- args += ['-DWITH_GPU=%s' % gpuver]
+ args += [
+ '-DWITH_GPU=%s' % gpuver,
+ '-DUSE_ACCEL=cuda'
+ ]
+
+ if self.spec.satisfies('+rocm'):
+ amd_arch = self.spec.variants['amdgpu_target'].value[0]
+
+ gpuver = {
+ 'gfx906': 'Mi50'
+ }[amd_arch]
+
+ args += [
+ '-DWITH_GPU={0}'.format(gpuver),
+ '-DUSE_ACCEL=hip'
+ ]
+
+ if self.spec.satisfies('+opencl'):
+ args += [
+ '-DUSE_ACCEL=opencl'
+ ]
return args
diff --git a/var/spack/repos/builtin/packages/dbow2/package.py b/var/spack/repos/builtin/packages/dbow2/package.py
new file mode 100644
index 0000000000..0677c4ced5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dbow2/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 Dbow2(CMakePackage):
+ """DBoW2 is an improved version of the DBow library, an open source C++
+ library for indexing and converting images into a bag-of-word
+ representation."""
+
+ homepage = "https://github.com/dorian3d/DBoW2"
+ git = "https://github.com/dorian3d/DBoW2.git"
+
+ version('master', branch='master')
+ version('shinsumicco', git='https://github.com/shinsumicco/DBoW2.git', branch='master')
+
+ depends_on('cmake@3.0:', type='build')
+ depends_on('opencv+calib3d+core+features2d+highgui+imgproc')
+ depends_on('boost')
+ depends_on('dlib')
+ depends_on('eigen', type='link')
diff --git a/var/spack/repos/builtin/packages/dbus-glib/package.py b/var/spack/repos/builtin/packages/dbus-glib/package.py
index 7cfe425e5d..7187976b43 100644
--- a/var/spack/repos/builtin/packages/dbus-glib/package.py
+++ b/var/spack/repos/builtin/packages/dbus-glib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dbus/package.py b/var/spack/repos/builtin/packages/dbus/package.py
index f47f7f4b16..4efbc8ddd5 100644
--- a/var/spack/repos/builtin/packages/dbus/package.py
+++ b/var/spack/repos/builtin/packages/dbus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,8 +16,8 @@ class Dbus(Package):
by any two applications to communicate directly (without going
through the message bus daemon)."""
- homepage = "http://dbus.freedesktop.org/"
- url = "http://dbus.freedesktop.org/releases/dbus/dbus-1.8.8.tar.gz"
+ homepage = "https://dbus.freedesktop.org/"
+ url = "https://dbus.freedesktop.org/releases/dbus/dbus-1.8.8.tar.gz"
version('1.12.8', sha256='e2dc99e7338303393b6663a98320aba6a63421bcdaaf571c8022f815e5896eb3')
version('1.11.2', sha256='5abc4c57686fa82669ad0039830788f9b03fdc4fff487f0ccf6c9d56ba2645c9')
diff --git a/var/spack/repos/builtin/packages/dbxtool/package.py b/var/spack/repos/builtin/packages/dbxtool/package.py
index 3a7524bf5f..d5e8419e98 100644
--- a/var/spack/repos/builtin/packages/dbxtool/package.py
+++ b/var/spack/repos/builtin/packages/dbxtool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dcap/package.py b/var/spack/repos/builtin/packages/dcap/package.py
index 487c02fade..d885f77047 100644
--- a/var/spack/repos/builtin/packages/dcap/package.py
+++ b/var/spack/repos/builtin/packages/dcap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dcm2niix/package.py b/var/spack/repos/builtin/packages/dcm2niix/package.py
new file mode 100644
index 0000000000..3074f8a5f5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dcm2niix/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2021 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 Dcm2niix(CMakePackage):
+ """DICOM to NIfTI converter"""
+
+ homepage = "https://github.com/rordenlab/dcm2niix"
+ url = "https://github.com/rordenlab/dcm2niix/archive/refs/tags/v1.0.20210317.tar.gz"
+
+ version('1.0.20210317', sha256='42fb22458ebfe44036c3d6145dacc6c1dc577ebbb067bedc190ed06f546ee05a')
diff --git a/var/spack/repos/builtin/packages/dcmtk/package.py b/var/spack/repos/builtin/packages/dcmtk/package.py
index 7b5fab7f64..1524df77b2 100644
--- a/var/spack/repos/builtin/packages/dcmtk/package.py
+++ b/var/spack/repos/builtin/packages/dcmtk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,9 @@ class Dcmtk(CMakePackage):
homepage = "https://dicom.offis.de"
url = "https://github.com/DCMTK/dcmtk/archive/DCMTK-3.6.3.tar.gz"
+ version('3.6.6', sha256='117097da6d50ddbad0e48bb1e6cdc61468e82ba1d32001dd8e2366b445133a8c')
+ version('3.6.5', sha256='37dad355d5513b4de4a86b5b7b0c3e9ec059860d88781b80916bba2a04e6d5b8')
+ version('3.6.4', sha256='e4b1de804a3fef38fe8cb9edd00262c3cbbd114b305511c14479dd888a9337d2')
version('3.6.3', sha256='57f4f71ee4af9114be6408ff6fcafc441c349e4c2954e17c9c22c8ce0fb065bf')
version('3.6.2', sha256='e9bf6e8805bbcf8a25274566541798785fd4e73bd046045ef27a0109ab520924')
diff --git a/var/spack/repos/builtin/packages/dd4hep/cmake_language.patch b/var/spack/repos/builtin/packages/dd4hep/cmake_language.patch
new file mode 100644
index 0000000000..096f4d8050
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dd4hep/cmake_language.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9d800190..121fa7fe 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,6 +46,7 @@ ENDIF()
+ #############################################################
+
+ ENABLE_LANGUAGE(CXX)
++ENABLE_LANGUAGE(C)
+
+ # Set C++ standard
+ set(CMAKE_CXX_STANDARD 14 CACHE STRING "C++ standard used for compiling")
diff --git a/var/spack/repos/builtin/packages/dd4hep/package.py b/var/spack/repos/builtin/packages/dd4hep/package.py
index 7fb4868a91..51a615aba8 100644
--- a/var/spack/repos/builtin/packages/dd4hep/package.py
+++ b/var/spack/repos/builtin/packages/dd4hep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,31 +21,44 @@ class Dd4hep(CMakePackage):
maintainers = ['vvolkl', 'drbenmorgan']
+ tags = ['hep']
+
version('master', branch='master')
+ version('1.17', sha256='036a9908aaf1e13eaf5f2f43b6f5f4a8bdda8183ddc5befa77a4448dbb485826')
+ version('1.16.1', sha256='c8b1312aa88283986f89cc008d317b3476027fd146fdb586f9f1fbbb47763f1a')
+ version('1.16', sha256='ea9755cd255cf1b058e0e3cd743101ca9ca5ff79f4c60be89f9ba72b1ae5ec69')
+ version('1.15', sha256='992a24bd4b3dfaffecec9d1c09e8cde2c7f89d38756879a47b23208242f4e352')
version('1.14.1', sha256='5b5742f1e23c2b36d3174cca95f810ce909c0eb66f3d6d7acb0ba657819e6717')
- version('1.14.0', sha256='b603aa3c0db8dda392253aa71fa4a0f0c3c9715d47df0b895d45c1e8849f4895')
+ version('1.14', sha256='b603aa3c0db8dda392253aa71fa4a0f0c3c9715d47df0b895d45c1e8849f4895')
version('1.13.1', sha256='83fa70cd74ce93b2f52f098388dff58d179f05ace5b50aea3f408bb8abf7cb73')
- version('1.13.0', sha256='0b1f9d902ebe21a9178c1e41204c066b29f68c8836fd1d03a9ce979811ddb295')
+ version('1.13', sha256='0b1f9d902ebe21a9178c1e41204c066b29f68c8836fd1d03a9ce979811ddb295')
version('1.12.1', sha256='85e8c775ec03c499ce10911e228342e757c81ce9ef2a9195cb253b85175a2e93')
- version('1.12.0', sha256='133a1fb8ce0466d2482f3ebb03e60b3bebb9b2d3e33d14ba15c8fbb91706b398')
+ version('1.12', sha256='133a1fb8ce0466d2482f3ebb03e60b3bebb9b2d3e33d14ba15c8fbb91706b398')
version('1.11.2', sha256='96a53dd26cb8df11c6dae54669fbc9cc3c90dd47c67e07b24be9a1341c95abc4')
version('1.11.1', sha256='d7902dd7f6744bbda92f6e303ad5a3410eec4a0d2195cdc86f6c1167e72893f0')
- version('1.11.0', sha256='25643296f15f9d11ad4ad550b7c3b92e8974fc56f1ee8e4455501010789ae7b6')
- version('1.10.0', sha256='1d6b5d1c368dc8bcedd9c61b7c7e1a44bad427f8bd34932516aff47c88a31d95')
+ version('1.11', sha256='25643296f15f9d11ad4ad550b7c3b92e8974fc56f1ee8e4455501010789ae7b6')
+ version('1.10', sha256='1d6b5d1c368dc8bcedd9c61b7c7e1a44bad427f8bd34932516aff47c88a31d95')
generator = 'Ninja'
# Workarounds for various TBB issues in DD4hep v1.11
# See https://github.com/AIDASoft/DD4hep/pull/613 .
- patch('tbb-workarounds.patch', when='@1.11.0')
+ patch('tbb-workarounds.patch', when='@1.11')
patch('tbb2.patch', when='@1.12.1')
+ # Workaround for failing build file generation in some cases
+ # See https://github.com/spack/spack/issues/24232
+ patch('cmake_language.patch', when='@:1.17')
variant('xercesc', default=False, description="Enable 'Detector Builders' based on XercesC")
variant('geant4', default=False, description="Enable the simulation part based on Geant4")
variant('assimp', default=False, description="Enable CAD interface based on Assimp")
variant('hepmc3', default=False, description="Enable build with hepmc3")
variant('lcio', default=False, description="Enable build with lcio")
- variant('debug', default=False, description="Enable debug build")
+ variant('edm4hep', default=True, description="Enable build with edm4hep")
+ variant('geant4units', default=False, description="Use geant4 units throughout")
+ variant('debug', default=False,
+ description="Enable debug build flag - adds extra info in"
+ " some places in addtion to the debug build type")
depends_on('cmake @3.12:', type='build')
depends_on('ninja', type='build')
@@ -54,9 +67,15 @@ class Dd4hep(CMakePackage):
extends('python')
depends_on('xerces-c', when='+xercesc')
depends_on('geant4@10.2.2:', when='+geant4')
- depends_on('assimp', when='+assimp')
+ depends_on('assimp@5.0.2:', when='+assimp')
depends_on('hepmc3', when="+hepmc3")
depends_on('lcio', when="+lcio")
+ depends_on('edm4hep', when="+edm4hep")
+ depends_on('py-pytest', type="test")
+
+ # See https://github.com/AIDASoft/DD4hep/pull/771
+ conflicts('^cmake@3.16:3.17.0', when='@1.15',
+ msg='cmake version with buggy FindPython breaks dd4hep cmake config')
def cmake_args(self):
spec = self.spec
@@ -65,13 +84,18 @@ class Dd4hep(CMakePackage):
if cxxstd == "11":
cxxstd = "14"
args = [
+ self.define_from_variant('DD4HEP_USE_EDM4HEP', 'edm4hep'),
+ self.define_from_variant('DD4HEP_USE_XERCESC', 'xercesc'),
+ self.define_from_variant('DD4HEP_USE_GEANT4', 'geant4'),
+ self.define_from_variant('DD4HEP_USE_LCIO', 'lcio'),
+ self.define_from_variant('DD4HEP_USE_HEPMC3', 'hepmc3'),
+ self.define_from_variant('DD4HEP_USE_GEANT4_UNITS', 'geant4units'),
+ self.define_from_variant('DD4HEP_BUILD_DEBUG', 'debug'),
+ # Downloads assimp from github and builds it on the fly.
+ # However, with spack it is preferrable to have a proper external
+ # dependency, so we disable it.
+ self.define('DD4HEP_LOAD_ASSIMP', False),
"-DCMAKE_CXX_STANDARD={0}".format(cxxstd),
- "-DDD4HEP_USE_XERCESC={0}".format(spec.satisfies('+xercesc')),
- "-DDD4HEP_USE_GEANT4={0}".format(spec.satisfies('+geant4')),
- "-DDD4HEP_USE_LCIO={0}".format(spec.satisfies('+lcio')),
- "-DDD4HEP_LOAD_ASSIMP={0}".format(spec.satisfies('+assimp')),
- "-DDD4HEP_USE_HEPMC3={0}".format(spec.satisfies('+hepmc3')),
- "-DDD4HEP_BUILD_DEBUG={0}".format(spec.satisfies('+debug')),
"-DBUILD_TESTING={0}".format(self.run_tests),
"-DBOOST_ROOT={0}".format(spec['boost'].prefix),
"-DBoost_NO_BOOST_CMAKE=ON",
@@ -82,6 +106,7 @@ class Dd4hep(CMakePackage):
def setup_run_environment(self, env):
# used p.ex. in ddsim to find DDDetectors dir
env.set("DD4hepINSTALL", self.prefix)
+ env.set("DD4HEP", self.prefix.examples)
env.set("DD4hep_DIR", self.prefix)
env.set("DD4hep_ROOT", self.prefix)
@@ -89,11 +114,32 @@ class Dd4hep(CMakePackage):
# dd4hep releases are dashes and padded with a leading zero
# the patch version is omitted when 0
# so for example v01-12-01, v01-12 ...
- major = (str(version[0]).zfill(2))
- minor = (str(version[1]).zfill(2))
- patch = (str(version[2]).zfill(2))
- if version[2] == 0:
- url = "https://github.com/AIDASoft/DD4hep/archive/v%s-%s.tar.gz" % (major, minor)
+ base_url = self.url.rsplit('/', 1)[0]
+ if len(version) == 1:
+ major = version[0]
+ minor, patch = 0, 0
+ elif len(version) == 2:
+ major, minor = version
+ patch = 0
+ else:
+ major, minor, patch = version
+ # By now the data is normalized enough to handle it easily depending
+ # on the value of the patch version
+ if patch == 0:
+ version_str = 'v%02d-%02d.tar.gz' % (major, minor)
else:
- url = "https://github.com/AIDASoft/DD4hep/archive/v%s-%s-%s.tar.gz" % (major, minor, patch)
- return url
+ version_str = 'v%02d-%02d-%02d.tar.gz' % (major, minor, patch)
+
+ return base_url + '/' + version_str
+
+ # dd4hep tests need to run after install step:
+ # disable the usual check
+ def check(self):
+ pass
+
+ # instead add custom check step that runs after installation
+ @run_after('install')
+ def install_check(self):
+ with working_dir(self.build_directory):
+ if self.run_tests:
+ ninja('test')
diff --git a/var/spack/repos/builtin/packages/ddd/package.py b/var/spack/repos/builtin/packages/ddd/package.py
index 7c3e548b37..34d6bec593 100644
--- a/var/spack/repos/builtin/packages/ddd/package.py
+++ b/var/spack/repos/builtin/packages/ddd/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Ddd(AutotoolsPackage, GNUMirrorPackage):
"""A graphical front-end for command-line debuggers such as GDB, DBX,
@@ -22,6 +23,9 @@ class Ddd(AutotoolsPackage, GNUMirrorPackage):
depends_on('gdb@4.16:')
depends_on('lesstif@0.89:')
+ depends_on('libelf')
+ depends_on('readline')
+ depends_on('termcap')
# Patch to fix hangs due to injection of bogus GDB init settings:
# https://savannah.gnu.org/bugs/index.php?58191
diff --git a/var/spack/repos/builtin/packages/dealii-parameter-gui/package.py b/var/spack/repos/builtin/packages/dealii-parameter-gui/package.py
index f6e6cdcaaa..3820c8e802 100644
--- a/var/spack/repos/builtin/packages/dealii-parameter-gui/package.py
+++ b/var/spack/repos/builtin/packages/dealii-parameter-gui/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index d8a225daba..4f2db65802 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -1,12 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Dealii(CMakePackage, CudaPackage):
"""C++ software library providing well-documented tools to build finite
@@ -16,7 +16,7 @@ class Dealii(CMakePackage, CudaPackage):
url = "https://github.com/dealii/dealii/releases/download/v8.4.1/dealii-8.4.1.tar.gz"
git = "https://github.com/dealii/dealii.git"
- maintainers = ['davydden', 'jppelteret', 'luca-heltai']
+ maintainers = ['jppelteret', 'luca-heltai']
# Don't add RPATHs to this package for the full build DAG.
# only add for immediate deps.
@@ -25,6 +25,8 @@ class Dealii(CMakePackage, CudaPackage):
generator = 'Ninja'
version('master', branch='master')
+ version('9.3.1', sha256='a62f4676ab2dc029892251d141427fb75cbb83cddd606019f615d0dde9c61ab8')
+ version('9.3.0', sha256='aef8c7a87510ce827dfae3bdd4ed7bff82004dc09f96fa7a65b2554f2839b931')
version('9.2.0', sha256='d05a82fb40f1f1e24407451814b5a6004e39366a44c81208b1ae9d65f3efa43a')
version('9.1.1', sha256='fc5b483f7fe58dfeb52d05054011280f115498e337af3e085bf272fd1fd81276')
version('9.1.0', sha256='5b070112403f8afbb72345c1bb24d2a38d11ce58891217e353aab97957a04600')
@@ -62,6 +64,8 @@ class Dealii(CMakePackage, CudaPackage):
# Package variants
variant('assimp', default=True,
description='Compile with Assimp')
+ variant('arborx', default=True,
+ description='Compile with Arborx support')
variant('arpack', default=True,
description='Compile with Arpack and PArpack (only with MPI)')
variant('adol-c', default=True,
@@ -78,7 +82,7 @@ class Dealii(CMakePackage, CudaPackage):
description='Compile with Metis')
variant('muparser', default=True,
description='Compile with muParser')
- variant('nanoflann', default=True,
+ variant('nanoflann', default=False,
description='Compile with Nanoflann')
variant('netcdf', default=False,
description='Compile with Netcdf (only with MPI)')
@@ -96,6 +100,13 @@ class Dealii(CMakePackage, CudaPackage):
description='Compile with Slepc (only with Petsc and MPI)')
variant('symengine', default=True,
description='Compile with SymEngine')
+ variant('simplex', default=True,
+ description='Compile with Simplex support')
+ # TODO @9.3: enable by default, when we know what to do
+ # variant('taskflow', default=False,
+ # description='Compile with multi-threading via Taskflow')
+ # TODO @9.3: disable by default
+ # (NB: only if tbb is removed in 9.3, as planned!!!)
variant('threads', default=True,
description='Compile with multi-threading via TBB')
variant('trilinos', default=True,
@@ -152,17 +163,20 @@ class Dealii(CMakePackage, CudaPackage):
# Optional dependencies: Packages
depends_on('adol-c@2.6.4:', when='@9.0:+adol-c')
+ depends_on('arborx', when='@9.3:+arborx')
+ depends_on('arborx+trilinos', when='@9.3:+arborx+trilinos')
depends_on('arpack-ng+mpi', when='+arpack+mpi')
depends_on('assimp', when='@9.0:+assimp')
depends_on('doxygen+graphviz', when='+doc')
depends_on('graphviz', when='+doc')
depends_on('ginkgo', when='@9.1:+ginkgo')
+ depends_on('ginkgo@1.4.0:', when='@9.4:+ginkgo')
depends_on('gmsh+tetgen+netgen+oce', when='@9.0:+gmsh', type=('build', 'run'))
depends_on('gsl', when='@8.5.0:+gsl')
- # FIXME: next line fixes concretization with petsc
+ # TODO: next line fixes concretization with petsc
depends_on('hdf5+mpi+hl+fortran', when='+hdf5+mpi+petsc')
depends_on('hdf5+mpi+hl', when='+hdf5+mpi~petsc')
- # FIXME: concretizer bug. The two lines mimic what comes from PETSc
+ # TODO: concretizer bug. The two lines mimic what comes from PETSc
# but we should not need it
depends_on('metis@5:+int64', when='+metis+int64')
depends_on('metis@5:~int64', when='+metis~int64')
@@ -180,13 +194,17 @@ class Dealii(CMakePackage, CudaPackage):
depends_on('slepc', when='+slepc+petsc+mpi')
depends_on('slepc@:3.6.3', when='@:8.4.1+slepc+petsc+mpi')
depends_on('slepc~arpack', when='+slepc+petsc+mpi+int64')
- depends_on('sundials@:3~pthread', when='@9.0:+sundials')
+ depends_on('sundials@:3~pthread', when='@9.0:9.2+sundials')
+ depends_on('sundials@5:', when='@9.3:+sundials')
+ # depends_on('taskflow', when='@9.3:+taskflow')
depends_on('trilinos gotype=int', when='+trilinos@12.18.1:')
+ # TODO: next line fixes concretization with trilinos and adol-c
+ depends_on('trilinos~exodus', when='@9.0:+adol-c+trilinos')
# Both Trilinos and SymEngine bundle the Teuchos RCP library.
# This leads to conflicts between macros defined in the included
# headers when they are not compiled in the same mode.
# See https://github.com/symengine/symengine/issues/1516
- # FIXME: uncomment when the following is fixed
+ # TODO: uncomment when the following is fixed
# https://github.com/spack/spack/issues/11160
# depends_on("symengine@0.4: build_type=Release", when="@9.1:+symengine+trilinos^trilinos~debug") # NOQA: ignore=E501
# depends_on("symengine@0.4: build_type=Debug", when="@9.1:+symengine+trilinos^trilinos+debug") # NOQA: ignore=E501
@@ -194,12 +212,11 @@ class Dealii(CMakePackage, CudaPackage):
depends_on('symengine@0.6:', when='@9.2:+symengine')
depends_on('tbb', when='+threads')
# do not require +rol to make concretization of xsdk possible
- depends_on('trilinos+amesos+aztec+epetra+ifpack+ml+muelu+sacado+teuchos', when='+trilinos+mpi~int64~cuda')
- depends_on('trilinos+amesos+aztec+epetra+ifpack+ml+muelu+sacado+teuchos~hypre', when='+trilinos+mpi+int64~cuda')
- # FIXME: temporary disable Tpetra when using CUDA due to
+ depends_on('trilinos+amesos+aztec+epetra+ifpack+ml+muelu+sacado', when='+trilinos')
+ depends_on('trilinos~hypre', when='+trilinos+int64')
+ # TODO: temporary disable Tpetra when using CUDA due to
# namespace "Kokkos::Impl" has no member "cuda_abort"
- depends_on('trilinos@master+amesos+aztec+epetra+ifpack+ml+muelu+rol+sacado+teuchos~amesos2~ifpack2~intrepid2~kokkos~tpetra~zoltan2', when='+trilinos+mpi~int64+cuda')
- depends_on('trilinos@master+amesos+aztec+epetra+ifpack+ml+muelu+rol+sacado+teuchos~hypre~amesos2~ifpack2~intrepid2~kokkos~tpetra~zoltan2', when='+trilinos+mpi+int64+cuda')
+ depends_on('trilinos@master+rol~amesos2~ifpack2~intrepid2~kokkos~tpetra~zoltan2', when='+trilinos+cuda')
# Explicitly provide a destructor in BlockVector,
# otherwise deal.II may fail to build with Intel compilers.
@@ -218,8 +235,13 @@ class Dealii(CMakePackage, CudaPackage):
sha256='6f876dc8eadafe2c4ec2a6673864fb451c6627ca80511b6e16f3c401946fdf33',
when='@9.0.0:9.1.1')
+ # Explicitly include a boost header, otherwise deal.II fails to compile
+ # https://github.com/dealii/dealii/pull/11438
+ patch('https://github.com/dealii/dealii/commit/3b815e21c4bfd82c792ba80e4d90314c8bb9edc9.patch',
+ sha256='5f9f411ab9336bf49d8293b9936344bad6e1cf720955b9d8e8b29883593b0ed9',
+ when='@9.2.0 ^boost@1.72.0:')
+
# Check for sufficiently modern versions
- conflicts('cxxstd=98', when='@9.0:')
conflicts('cxxstd=11', when='@9.3:')
# Interfaces added in 8.5.0:
@@ -244,6 +266,13 @@ class Dealii(CMakePackage, CudaPackage):
'onwards. Please explicitly disable this variant '
'via ~{0}'.format(p))
+ # interfaces added in 9.3.0:
+ for p in ['simplex', 'arborx']: # , 'taskflow']:
+ conflicts('+{0}'.format(p), when='@:9.2',
+ msg='The interface to {0} is supported from version 9.3.0 '
+ 'onwards. Please explicitly disable this variant '
+ 'via ~{0}'.format(p))
+
# Interfaces removed in 9.3.0:
conflicts('+nanoflann', when='@9.3.0:',
msg='The interface to Nanoflann was removed from version 9.3.0. '
@@ -269,12 +298,9 @@ class Dealii(CMakePackage, CudaPackage):
conflicts('+adol-c', when='^trilinos+chaco',
msg='Symbol clash between the ADOL-C library and '
'Trilinos SEACAS Chaco.')
- conflicts('+adol-c', when='^trilinos+netcdf',
+ conflicts('+adol-c', when='^trilinos+exodus',
msg='Symbol clash between the ADOL-C library and '
'Trilinos Netcdf.')
- conflicts('+adol-c', when='^trilinos+pnetcdf',
- msg='Symbol clash between the ADOL-C library and '
- 'Trilinos parallel Netcdf.')
conflicts('+slepc', when='~petsc',
msg='It is not possible to enable slepc interfaces '
@@ -384,7 +410,7 @@ class Dealii(CMakePackage, CudaPackage):
'deal.II only supports compilation for a single GPU!'
)
flags = '-arch=sm_{0}'.format(cuda_arch[0])
- # FIXME: there are some compiler errors in dealii
+ # TODO: there are some compiler errors in dealii
# with: flags = ' '.join(self.cuda_flags(cuda_arch))
# Stick with -arch=sm_xy for now.
options.append(
@@ -426,6 +452,11 @@ class Dealii(CMakePackage, CudaPackage):
self.define('PYTHON_LIBRARY', python_library)
])
+ # Simplex support
+ options.append(self.define_from_variant(
+ 'DEAL_II_WITH_SIMPLEX_SUPPORT', 'simplex'
+ ))
+
# Threading
options.append(self.define_from_variant(
'DEAL_II_WITH_THREADS', 'threads'
@@ -453,7 +484,7 @@ class Dealii(CMakePackage, CudaPackage):
for library in (
'gsl', 'hdf5', 'p4est', 'petsc', 'slepc', 'trilinos', 'metis',
'sundials', 'nanoflann', 'assimp', 'gmsh', 'muparser',
- 'symengine', 'ginkgo'):
+ 'symengine', 'ginkgo', 'arborx'): # 'taskflow'):
options.append(self.define_from_variant(
'DEAL_II_WITH_{0}'.format(library.upper()), library
))
diff --git a/var/spack/repos/builtin/packages/debbuild/package.py b/var/spack/repos/builtin/packages/debbuild/package.py
index 3a47236ae7..26ab5eb6fb 100644
--- a/var/spack/repos/builtin/packages/debbuild/package.py
+++ b/var/spack/repos/builtin/packages/debbuild/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,3 +13,5 @@ class Debbuild(AutotoolsPackage):
url = "https://github.com/debbuild/debbuild/archive/20.04.0.tar.gz"
version('20.04.0', sha256='e17c4f5b37e8c16592ebd99281884cabc053fb890af26531e9825417047d1430')
+
+ depends_on('gettext')
diff --git a/var/spack/repos/builtin/packages/debugedit/package.py b/var/spack/repos/builtin/packages/debugedit/package.py
new file mode 100644
index 0000000000..f74eb9f683
--- /dev/null
+++ b/var/spack/repos/builtin/packages/debugedit/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 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 Debugedit(AutotoolsPackage):
+ """
+ Debugedit is a set of libraries and programs for creating and editing
+ debuginfo. It allows you to get build-ids and rewrite DWARF source paths.
+ Debugedit was originally part of the rpm project, and now exists
+ as its own separate project and is maintained by RedHat.
+ """
+
+ homepage = "https://www.sourceware.org/debugedit/"
+ git = "git://sourceware.org/git/debugedit.git"
+ url = "https://sourceware.org/ftp/debugedit/0.2/debugedit-0.2.tar.xz"
+
+ version('develop', branch='main')
+ version('0.2', sha256="b78258240bb7ec5bbff109495092dcc111aa0393f135f2d2a4b43887ba26a942")
+
+ depends_on('help2man', type='build')
+ depends_on('pkgconfig', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('elfutils') # requires libdw
+ depends_on('libiberty')
+
+ def build(self, spec, prefix):
+ # requires libiberty
+ libiberty = spec['libiberty'].prefix.include.libiberty
+ make('CPPFLAGS=-I%s' % libiberty)
diff --git a/var/spack/repos/builtin/packages/decentralized-internet/package.py b/var/spack/repos/builtin/packages/decentralized-internet/package.py
index fabdba423a..01840a5938 100644
--- a/var/spack/repos/builtin/packages/decentralized-internet/package.py
+++ b/var/spack/repos/builtin/packages/decentralized-internet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/deconseq-standalone/package.py b/var/spack/repos/builtin/packages/deconseq-standalone/package.py
index 82409198eb..f6c95aab4c 100644
--- a/var/spack/repos/builtin/packages/deconseq-standalone/package.py
+++ b/var/spack/repos/builtin/packages/deconseq-standalone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dejagnu/package.py b/var/spack/repos/builtin/packages/dejagnu/package.py
index 6826b947ec..3bd4c80170 100644
--- a/var/spack/repos/builtin/packages/dejagnu/package.py
+++ b/var/spack/repos/builtin/packages/dejagnu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/delly2/package.py b/var/spack/repos/builtin/packages/delly2/package.py
index 0bd2f4f6f4..a674d4e17d 100644
--- a/var/spack/repos/builtin/packages/delly2/package.py
+++ b/var/spack/repos/builtin/packages/delly2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/delphes/package.py b/var/spack/repos/builtin/packages/delphes/package.py
index 09163f8254..293c2f583f 100644
--- a/var/spack/repos/builtin/packages/delphes/package.py
+++ b/var/spack/repos/builtin/packages/delphes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,12 +15,13 @@ class Delphes(CMakePackage):
git = "https://github.com/delphes/delphes.git"
url = "http://cp3.irmp.ucl.ac.be/downloads/Delphes-3.4.2.tar.gz"
+ tags = ['hep']
+
maintainers = ['drbenmorgan', 'vvolkl', 'selvaggi']
version('master', branch='master')
- version('3.4.3pre05', tag='3.4.3pre05')
- version('3.4.3pre04', tag='3.4.3pre04')
- version('3.4.2', sha256='d46a7c5474de650befdb89377115feee31f1743107ceb3d8da699be9d48c097b', preferred=True)
+ version('3.5.0', sha256='37685b945ef43aab09217d70b0ac7f9c5d3c2c27cf3b3f8d64c4e6eb5c5fd9aa')
+ version('3.4.2', sha256='d46a7c5474de650befdb89377115feee31f1743107ceb3d8da699be9d48c097b')
version('3.4.1', sha256='4b5a2aeac326643f45b6d45c39ba2302e323eeb86d8cb58843c6e73949b1208a')
version('3.4.0', sha256='c0f9500663a0c3a5c1eddcee598a67b5bcfc9318303195c6cacc0590b4023fa1')
version('3.3.3', sha256='404de818a6b7852b01187ccf598d8ac19d308b9361f128751ef003cde248ff00')
diff --git a/var/spack/repos/builtin/packages/delta/package.py b/var/spack/repos/builtin/packages/delta/package.py
index c24a10ec2c..9106af6942 100644
--- a/var/spack/repos/builtin/packages/delta/package.py
+++ b/var/spack/repos/builtin/packages/delta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Delta(Package):
"""Delta Lake is a storage layer that brings scalable, ACID transactions
to Apache Spark and other big-data engines."""
- homepage = "http://delta.io/"
+ homepage = "https://delta.io/"
url = "https://github.com/delta-io/delta/archive/v0.7.0.tar.gz"
version('0.7.0', sha256='1fb01e36c1cf670f201c615e5fd7df88f72c27157b7d2780d146e21b266bdb64')
diff --git a/var/spack/repos/builtin/packages/denovogear/package.py b/var/spack/repos/builtin/packages/denovogear/package.py
index bc683febef..9af96093c1 100644
--- a/var/spack/repos/builtin/packages/denovogear/package.py
+++ b/var/spack/repos/builtin/packages/denovogear/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dftbplus/package.py b/var/spack/repos/builtin/packages/dftbplus/package.py
index a8b313988e..3f673b01d5 100644
--- a/var/spack/repos/builtin/packages/dftbplus/package.py
+++ b/var/spack/repos/builtin/packages/dftbplus/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Dftbplus(MakefilePackage):
"""DFTB+ is an implementation of the
diff --git a/var/spack/repos/builtin/packages/dftd3-lib/package.py b/var/spack/repos/builtin/packages/dftd3-lib/package.py
index 793a312342..21538c4f8f 100644
--- a/var/spack/repos/builtin/packages/dftd3-lib/package.py
+++ b/var/spack/repos/builtin/packages/dftd3-lib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dftd4/package.py b/var/spack/repos/builtin/packages/dftd4/package.py
new file mode 100644
index 0000000000..ef1e6fff90
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dftd4/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2021 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 Dftd4(MesonPackage):
+ """Generally Applicable Atomic-Charge Dependent London Dispersion Correction"""
+
+ homepage = "https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dftd4"
+ url = "https://github.com/dftd4/dftd4/releases/download/v3.2.0/dftd4-3.2.0-source.tar.xz"
+ git = "https://github.com/dftd4/dftd4.git"
+
+ version("main", branch="main")
+ version("3.2.0", "cef505e091469aa9b8f008ee1756545bb87b02760bb2c7ca54854e20ba8c590a")
+ version("3.1.0", "b652aa7cbf8d087c91bcf80f2d5801459ecf89c5d4176ebb39e963ee740ed54b")
+ version("3.0.0", "a7539d68d48d851bf37b79e37ea907c9da5eee908d0aa58a0a7dc15f04f8bc35")
+
+ variant("openmp", default=True, description="Use OpenMP parallelisation")
+ variant("python", default=False, description="Build Python extension module")
+
+ depends_on("blas")
+ depends_on("cmake", type="build")
+ depends_on("lapack")
+ depends_on("meson@0.57.1:", type="build") # mesonbuild/meson#8377
+ depends_on("pkgconfig", type="build")
+ depends_on("py-cffi", when="+python")
+ depends_on("python@3.6:", when="+python")
+
+ def meson_args(self):
+ lapack = self.spec["lapack"].libs.names[0]
+ if lapack == "lapack":
+ lapack = "netlib"
+ elif lapack.startswith("mkl"):
+ lapack = "mkl"
+ elif lapack != "openblas":
+ lapack = "auto"
+
+ return [
+ "-Dlapack={0}".format(lapack),
+ "-Dopenmp={0}".format(str("+openmp" in self.spec).lower()),
+ "-Dpython={0}".format(str("+python" in self.spec).lower()),
+ ]
diff --git a/var/spack/repos/builtin/packages/dftfe/package.py b/var/spack/repos/builtin/packages/dftfe/package.py
index a463aa7ccb..4e3a58a61d 100644
--- a/var/spack/repos/builtin/packages/dftfe/package.py
+++ b/var/spack/repos/builtin/packages/dftfe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dhpmm-f/package.py b/var/spack/repos/builtin/packages/dhpmm-f/package.py
index 5e2bfa3154..d58540209a 100644
--- a/var/spack/repos/builtin/packages/dhpmm-f/package.py
+++ b/var/spack/repos/builtin/packages/dhpmm-f/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dhtest/package.py b/var/spack/repos/builtin/packages/dhtest/package.py
index 12c45e246a..6b6e0cce6c 100644
--- a/var/spack/repos/builtin/packages/dhtest/package.py
+++ b/var/spack/repos/builtin/packages/dhtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dia/package.py b/var/spack/repos/builtin/packages/dia/package.py
index 19f3897013..129c886876 100644
--- a/var/spack/repos/builtin/packages/dia/package.py
+++ b/var/spack/repos/builtin/packages/dia/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,7 +21,7 @@ class Dia(Package):
depends_on('python')
depends_on('swig')
depends_on('libsm')
- depends_on('libuuid')
+ depends_on('uuid')
depends_on('libxinerama')
depends_on('libxrender')
depends_on('libxml2')
diff --git a/var/spack/repos/builtin/packages/dialign-tx/package.py b/var/spack/repos/builtin/packages/dialign-tx/package.py
index 4c1d538531..46a5b7864f 100644
--- a/var/spack/repos/builtin/packages/dialign-tx/package.py
+++ b/var/spack/repos/builtin/packages/dialign-tx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class DialignTx(MakefilePackage):
"""DIALIGN-TX: greedy and progressive approaches for segment-based
multiple sequence alignment"""
- homepage = "http://dialign-tx.gobics.de/"
- url = "http://dialign-tx.gobics.de/DIALIGN-TX_1.0.2.tar.gz"
+ homepage = "https://dialign-tx.gobics.de/"
+ url = "https://dialign-tx.gobics.de/DIALIGN-TX_1.0.2.tar.gz"
version('1.0.2', sha256='fb3940a48a12875332752a298f619f0da62593189cd257d28932463c7cebcb8f')
diff --git a/var/spack/repos/builtin/packages/dialign/package.py b/var/spack/repos/builtin/packages/dialign/package.py
index 406a524fab..fc18227817 100644
--- a/var/spack/repos/builtin/packages/dialign/package.py
+++ b/var/spack/repos/builtin/packages/dialign/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/diamond/package.py b/var/spack/repos/builtin/packages/diamond/package.py
index 9664c3e14b..af7fec7a2e 100644
--- a/var/spack/repos/builtin/packages/diamond/package.py
+++ b/var/spack/repos/builtin/packages/diamond/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,11 @@ class Diamond(CMakePackage):
designed for high performance analysis of big sequence data."""
homepage = "https://ab.inf.uni-tuebingen.de/software/diamond"
- url = "https://github.com/bbuchfink/diamond/archive/v0.9.14.tar.gz"
+ url = "https://github.com/bbuchfink/diamond/archive/v2.0.9.tar.gz"
+ version('2.0.11', sha256='41f3197aaafff9c42763fb7658b67f730ebc6dd3c0533c9c3d54bd3166e93f24')
+ version('2.0.9', sha256='3019f1adb6411c6669a3a17351d0338ae02f6b3cab3c8a3bac91cf334dcda620')
+ version('2.0.8', sha256='04eed7c83828f50c7d9a1d48fe7c50a4c753e008501dc639c6521cf8a756c43b')
version('2.0.4', sha256='94e8fe72bdc28b83fd0f2d90c439b58b63b38263aa1a3905582ef68f614ae95d')
version('0.9.25', sha256='65298f60cf9421dcc7669ce61642611cd9eeffc32f66fd39ebfa25dd64416808')
version('0.9.23', sha256='0da5cdd5e5b77550ec0eaba2c6c431801cdd10d31606ca12f952b57d3d31db92')
diff --git a/var/spack/repos/builtin/packages/diffmark/package.py b/var/spack/repos/builtin/packages/diffmark/package.py
index 0c86e12d07..281e7a7b60 100644
--- a/var/spack/repos/builtin/packages/diffmark/package.py
+++ b/var/spack/repos/builtin/packages/diffmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,4 +18,5 @@ class Diffmark(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ depends_on('pkg-config', type='build')
depends_on('libxml2')
diff --git a/var/spack/repos/builtin/packages/diffsplice/package.py b/var/spack/repos/builtin/packages/diffsplice/package.py
index dc3c9f2023..88d2c49998 100644
--- a/var/spack/repos/builtin/packages/diffsplice/package.py
+++ b/var/spack/repos/builtin/packages/diffsplice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Diffsplice(MakefilePackage):
transcriptome or pre-determined splice pattern."""
homepage = "http://www.netlab.uky.edu/p/bioinfo/DiffSplice"
- url = "http://protocols.netlab.uky.edu/~yin/download/diffsplice/diffsplice_0.1.1.tgz"
+ url = "https://protocols.netlab.uky.edu/~yin/download/diffsplice/diffsplice_0.1.1.tgz"
version('0.1.2beta', sha256='cc06dcb9f8d98b2184f0dd5863b79bdd6a8cd33b9418e6549b7ea63e90ee1aa6')
version('0.1.1', sha256='9740426692b0e5f92b943b127014c1d9815bed2938b5dd9e9d0c5b64abbb5da6')
diff --git a/var/spack/repos/builtin/packages/diffutils/package.py b/var/spack/repos/builtin/packages/diffutils/package.py
index b598410ba8..bcf715fd05 100644
--- a/var/spack/repos/builtin/packages/diffutils/package.py
+++ b/var/spack/repos/builtin/packages/diffutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dihydrogen/package.py b/var/spack/repos/builtin/packages/dihydrogen/package.py
index 03a3f8f671..63ab74164c 100644
--- a/var/spack/repos/builtin/packages/dihydrogen/package.py
+++ b/var/spack/repos/builtin/packages/dihydrogen/package.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
-class Dihydrogen(CMakePackage, CudaPackage):
+class Dihydrogen(CMakePackage, CudaPackage, ROCmPackage):
"""DiHydrogen is the second version of the Hydrogen fork of the
well-known distributed linear algebra library,
Elemental. DiHydrogen aims to be a basic distributed
@@ -23,6 +24,8 @@ class Dihydrogen(CMakePackage, CudaPackage):
version('develop', branch='develop')
version('master', branch='master')
+ version('0.2.1', sha256='11e2c0f8a94ffa22e816deff0357dde6f82cc8eac21b587c800a346afb5c49ac')
+ version('0.2.0', sha256='e1f597e80f93cf49a0cb2dbc079a1f348641178c49558b28438963bd4a0bdaa4')
version('0.1', sha256='171d4b8adda1e501c38177ec966e6f11f8980bf71345e5f6d87d0a988fef4c4e')
variant('al', default=True,
@@ -31,8 +34,9 @@ class Dihydrogen(CMakePackage, CudaPackage):
description='Enable extra warnings and force tests to be enabled.')
variant('half', default=False,
description='Enable FP16 support on the CPU.')
- variant('legacy', default=False,
- description='Enable the legacy DistConv code branch.')
+ variant('distconv', default=False,
+ description='Support distributed convolutions: spatial, channel, '
+ 'filter.')
variant('nvshmem', default=False,
description='Builds with support for NVSHMEM')
variant('openmp', default=False,
@@ -49,58 +53,63 @@ class Dihydrogen(CMakePackage, CudaPackage):
description='Use OpenMP for threading in the BLAS library')
variant('int64_blas', default=False,
description='Use 64bit integers for BLAS.')
- variant('blas', default='openblas', values=('openblas', 'mkl', 'accelerate', 'essl'),
- description='Enable the use of OpenBlas/MKL/Accelerate/ESSL')
-
- # Override the default set of CUDA architectures with the relevant
- # subset from lib/spack/spack/build_systems/cuda.py
- cuda_arch_values = [
- '30', '32', '35', '37',
- '50', '52', '53',
- '60', '61', '62',
- '70', '72', '75',
- '80'
- ]
- variant('cuda_arch',
- description='CUDA architecture',
- values=spack.variant.auto_or_any_combination_of(*cuda_arch_values))
+ variant('blas', default='openblas', values=('openblas', 'mkl', 'accelerate', 'essl', 'libsci'),
+ description='Enable the use of OpenBlas/MKL/Accelerate/ESSL/LibSci')
+
+ conflicts('~cuda', when='+nvshmem')
depends_on('mpi')
depends_on('catch2', type='test')
# Specify the correct version of Aluminum
depends_on('aluminum@0.4:0.4.99', when='@0.1:0.1.99 +al')
- depends_on('aluminum@0.5:', when='@:0.0,0.2: +al')
+ depends_on('aluminum@0.5.0:0.5.99', when='@0.2.0 +al')
+ depends_on('aluminum@0.7.0:0.7.99', when='@0.2.1 +al')
+ depends_on('aluminum@0.7.0:', when='@:0.0,0.2.1: +al')
# Add Aluminum variants
- depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda')
+ depends_on('aluminum +cuda +nccl +cuda_rma', when='+al +cuda')
+ depends_on('aluminum +rocm +rccl', when='+al +rocm')
+ depends_on('aluminum +ht', when='+al +distconv')
- depends_on('cuda', when=('+cuda' or '+legacy'))
- depends_on('cudnn', when=('+cuda' or '+legacy'))
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on('aluminum cuda_arch=%s' % arch, when='+al +cuda cuda_arch=%s' % arch)
+
+ # variants +rocm and amdgpu_targets are not automatically passed to
+ # dependencies, so do it manually.
+ for val in ROCmPackage.amdgpu_targets:
+ depends_on('aluminum amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+
+ for when in ['+cuda', '+distconv']:
+ depends_on('cuda', when=when)
+ depends_on('cudnn', when=when)
depends_on('cub', when='^cuda@:10.99')
# Note that #1712 forces us to enumerate the different blas variants
- depends_on('openblas', when='blas=openblas ~openmp_blas ~int64_blas')
- depends_on('openblas +ilp64', when='blas=openblas ~openmp_blas +int64_blas')
- depends_on('openblas threads=openmp', when='blas=openblas +openmp_blas ~int64_blas')
- depends_on('openblas threads=openmp +lip64', when='blas=openblas +openmp_blas +int64_blas')
+ depends_on('openblas', when='blas=openblas')
+ depends_on('openblas +ilp64', when='blas=openblas +int64_blas')
+ depends_on('openblas threads=openmp', when='blas=openblas +openmp_blas')
- depends_on('intel-mkl', when="blas=mkl ~openmp_blas ~int64_blas")
- depends_on('intel-mkl +ilp64', when="blas=mkl ~openmp_blas +int64_blas")
- depends_on('intel-mkl threads=openmp', when='blas=mkl +openmp_blas ~int64_blas')
- depends_on('intel-mkl@2017.1 +openmp +ilp64', when='blas=mkl +openmp_blas +int64_blas')
+ depends_on('intel-mkl', when="blas=mkl")
+ depends_on('intel-mkl +ilp64', when="blas=mkl +int64_blas")
+ depends_on('intel-mkl threads=openmp', when='blas=mkl +openmp_blas')
depends_on('veclibfort', when='blas=accelerate')
conflicts('blas=accelerate +openmp_blas')
- depends_on('essl -cuda', when='blas=essl -openmp_blas ~int64_blas')
- depends_on('essl -cuda +ilp64', when='blas=essl -openmp_blas +int64_blas')
- depends_on('essl threads=openmp', when='blas=essl +openmp_blas ~int64_blas')
- depends_on('essl threads=openmp +ilp64', when='blas=essl +openmp_blas +int64_blas')
+ depends_on('essl', when='blas=essl')
+ depends_on('essl +ilp64', when='blas=essl +int64_blas')
+ depends_on('essl threads=openmp', when='blas=essl +openmp_blas')
depends_on('netlib-lapack +external-blas', when='blas=essl')
- # Legacy builds require cuda
- conflicts('~cuda', when='+legacy')
+ depends_on('cray-libsci', when='blas=libsci')
+ depends_on('cray-libsci +openmp', when='blas=libsci +openmp_blas')
+
+ # Distconv builds require cuda
+ conflicts('~cuda', when='+distconv')
+
+ conflicts('+distconv', when='+half')
+ conflicts('+rocm', when='+half')
depends_on('half', when='+half')
@@ -113,6 +122,10 @@ class Dihydrogen(CMakePackage, CudaPackage):
depends_on('llvm-openmp', when='%apple-clang +openmp')
+ depends_on('nvshmem', when='+nvshmem')
+
+ # Idenfity versions of cuda_arch that are too old
+ # from lib/spack/spack/build_systems/cuda.py
illegal_cuda_arch_values = [
'10', '11', '12', '13',
'20', '21',
@@ -131,10 +144,12 @@ class Dihydrogen(CMakePackage, CudaPackage):
spec = self.spec
args = [
+ '-DCMAKE_CXX_STANDARD=17',
'-DCMAKE_INSTALL_MESSAGE:STRING=LAZY',
'-DBUILD_SHARED_LIBS:BOOL=%s' % ('+shared' in spec),
+ '-DH2_ENABLE_ALUMINUM=%s' % ('+al' in spec),
'-DH2_ENABLE_CUDA=%s' % ('+cuda' in spec),
- '-DH2_ENABLE_DISTCONV_LEGACY=%s' % ('+legacy' in spec),
+ '-DH2_ENABLE_DISTCONV_LEGACY=%s' % ('+distconv' in spec),
'-DH2_ENABLE_OPENMP=%s' % ('+openmp' in spec),
'-DH2_ENABLE_FP16=%s' % ('+half' in spec),
'-DH2_ENABLE_HIP_ROCM=%s' % ('+rocm' in spec),
@@ -142,23 +157,21 @@ class Dihydrogen(CMakePackage, CudaPackage):
]
if '+cuda' in spec:
- cuda_arch = spec.variants['cuda_arch'].value
- if len(cuda_arch) == 1 and cuda_arch[0] == 'auto':
- args.append('-DCMAKE_CUDA_FLAGS=-arch=sm_60')
+ if spec.satisfies('^cuda@11.0:'):
+ args.append('-DCMAKE_CUDA_STANDARD=17')
else:
- cuda_arch = [x for x in spec.variants['cuda_arch'].value
- if x != 'auto']
- if cuda_arch:
- args.append('-DCMAKE_CUDA_FLAGS={0}'.format(
- ' '.join(self.cuda_flags(cuda_arch))
- ))
-
- if '+cuda' in spec or '+legacy' in spec:
+ args.append('-DCMAKE_CUDA_STANDARD=14')
+ archs = spec.variants['cuda_arch'].value
+ if archs != 'none':
+ arch_str = ";".join(archs)
+ args.append('-DCMAKE_CUDA_ARCHITECTURES=%s' % arch_str)
+
+ if '+cuda' in spec or '+distconv' in spec:
args.append('-DcuDNN_DIR={0}'.format(
spec['cudnn'].prefix))
if spec.satisfies('^cuda@:10.99'):
- if '+cuda' in spec or '+legacy' in spec:
+ if '+cuda' in spec or '+distconv' in spec:
args.append('-DCUB_DIR={0}'.format(
spec['cub'].prefix))
@@ -173,6 +186,19 @@ class Dihydrogen(CMakePackage, CudaPackage):
'-DOpenMP_libomp_LIBRARY={0}/lib/libomp.dylib'.format(
clang_root)])
+ if '+rocm' in spec:
+ args.extend([
+ '-DCMAKE_CXX_FLAGS=-std=c++17',
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
+ '-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc)])
+ archs = self.spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ args.append(
+ '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'
+ ' -g -fsized-deallocation -fPIC -std=c++17'.format(arch_str)
+ )
+
return args
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/dimemas/package.py b/var/spack/repos/builtin/packages/dimemas/package.py
index 6b5ba9690d..5bcf605d49 100644
--- a/var/spack/repos/builtin/packages/dimemas/package.py
+++ b/var/spack/repos/builtin/packages/dimemas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ding-libs/package.py b/var/spack/repos/builtin/packages/ding-libs/package.py
index 2939ef638e..023e3e36e5 100644
--- a/var/spack/repos/builtin/packages/ding-libs/package.py
+++ b/var/spack/repos/builtin/packages/ding-libs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dire/package.py b/var/spack/repos/builtin/packages/dire/package.py
index fd9ae5075c..6d6325da1d 100644
--- a/var/spack/repos/builtin/packages/dire/package.py
+++ b/var/spack/repos/builtin/packages/dire/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,12 @@ class Dire(Package):
radiative corrections to scattering processes in high-energy particle
collisions."""
- homepage = "http://dire.gitlab.io/"
- url = "http://dire.gitlab.io/Downloads/DIRE-2.004.tar.gz"
- git = "http://gitlab.com/dire/direforpythia"
- list_url = "http://dire.gitlab.io/Downloads.html"
+ homepage = "https://dire.gitlab.io/"
+ url = "https://dire.gitlab.io/Downloads/DIRE-2.004.tar.gz"
+ git = "https://gitlab.com/dire/direforpythia"
+ list_url = "https://dire.gitlab.io/Downloads.html"
+
+ tags = ['hep']
maintainer = ['mdiefent']
diff --git a/var/spack/repos/builtin/packages/direnv/package.py b/var/spack/repos/builtin/packages/direnv/package.py
index a021905849..8ffe3c9b50 100644
--- a/var/spack/repos/builtin/packages/direnv/package.py
+++ b/var/spack/repos/builtin/packages/direnv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/discovar/package.py b/var/spack/repos/builtin/packages/discovar/package.py
index 7b9acfc0e4..9904b1fd89 100644
--- a/var/spack/repos/builtin/packages/discovar/package.py
+++ b/var/spack/repos/builtin/packages/discovar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/discovardenovo/package.py b/var/spack/repos/builtin/packages/discovardenovo/package.py
index bf14043f83..69ede74547 100644
--- a/var/spack/repos/builtin/packages/discovardenovo/package.py
+++ b/var/spack/repos/builtin/packages/discovardenovo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/disktype/package.py b/var/spack/repos/builtin/packages/disktype/package.py
index a45fc324a0..8432272a12 100644
--- a/var/spack/repos/builtin/packages/disktype/package.py
+++ b/var/spack/repos/builtin/packages/disktype/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dislin/package.py b/var/spack/repos/builtin/packages/dislin/package.py
index 518db4eba9..a62211869c 100644
--- a/var/spack/repos/builtin/packages/dislin/package.py
+++ b/var/spack/repos/builtin/packages/dislin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Dislin(Package):
data as curves, bar graphs, pie charts, 3D-colour plots, surfaces,
contours and maps."""
- homepage = "http://www.mps.mpg.de/dislin"
+ homepage = "https://www.mps.mpg.de/dislin"
url = "ftp://ftp.gwdg.de/pub/grafik/dislin/linux/i586_64/dislin-11.0.linux.i586_64.tar.gz"
version('11.0', sha256='13d28188924e0b0b803d72aa4b48be4067e98e890701b0aa6f54a11c7d34dd10')
diff --git a/var/spack/repos/builtin/packages/distcc/package.py b/var/spack/repos/builtin/packages/distcc/package.py
index 7143a55017..6807292de0 100644
--- a/var/spack/repos/builtin/packages/distcc/package.py
+++ b/var/spack/repos/builtin/packages/distcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/diy/package.py b/var/spack/repos/builtin/packages/diy/package.py
index efd581f1ba..9889c272aa 100644
--- a/var/spack/repos/builtin/packages/diy/package.py
+++ b/var/spack/repos/builtin/packages/diy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dlib/package.py b/var/spack/repos/builtin/packages/dlib/package.py
new file mode 100644
index 0000000000..fc85237ef3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dlib/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 Dlib(CMakePackage):
+ """DLib is a collection of C++ classes to solve common tasks in C++
+ programs, as well as to offer additional functionality to use OpenCV
+ data and to solve computer vision problems."""
+
+ homepage = "https://github.com/dorian3d/DLib"
+ git = "https://github.com/dorian3d/DLib.git"
+
+ version('master', branch='master')
+
+ depends_on('cmake@3.0:', type='build')
+ depends_on('opencv+calib3d+core+features2d+highgui+imgproc+imgcodecs')
+ # Because concretizer is broken...
+ # TODO: remove when original concretizer is obsolete
+ depends_on('opencv+flann')
diff --git a/var/spack/repos/builtin/packages/dlpack/package.py b/var/spack/repos/builtin/packages/dlpack/package.py
index 4e4b74e102..5c0b1c8fa6 100644
--- a/var/spack/repos/builtin/packages/dlpack/package.py
+++ b/var/spack/repos/builtin/packages/dlpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,16 @@ class Dlpack(Package):
"""DLPack is an RFC for common tensor and operator guidelines
in deep learning systems."""
- homepage = "https://github.com/sjtuhpcc/dlpack"
+ homepage = "https://github.com/dmlc/dlpack"
git = "https://github.com/dmlc/dlpack.git"
+ url = "https://github.com/dmlc/dlpack/archive/refs/tags/v0.5.tar.gz"
version('master', branch='master')
+ version('0.5', sha256='9209ac194a175aaab4381313891fba047cb173b2bdd15ac934f83f567f9cd514')
+ version('0.4', sha256='d0a533189ecd45a033b72e276fccaa2122cfd76de125e0a5e126bdea0fec2d24')
+ version('0.3', sha256='703149f5b39ead42cc734c03c7c4bd581fcad1c5a3939e7a4b5bc82f54c3c32a')
+ version('0.2', sha256='419f76ef723d21b72b704b2c4bf718dcd9d2ecd44cd28c8a71798389b7932ae5')
+ version('0.1', sha256='c69b06bfe03711e9d9d3f4d3f307d6dfd7e21d4864a053cca26296d5d05c175c')
def install(self, spec, prefix):
install_tree('include', prefix.include)
diff --git a/var/spack/repos/builtin/packages/dmd/package.py b/var/spack/repos/builtin/packages/dmd/package.py
index b18ab86cf1..164fa74e34 100644
--- a/var/spack/repos/builtin/packages/dmd/package.py
+++ b/var/spack/repos/builtin/packages/dmd/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Dmd(MakefilePackage):
"""DMD is the reference compiler for the D programming language."""
diff --git a/var/spack/repos/builtin/packages/dmidecode/package.py b/var/spack/repos/builtin/packages/dmidecode/package.py
index b6b4015bce..2c6d9e0365 100644
--- a/var/spack/repos/builtin/packages/dmidecode/package.py
+++ b/var/spack/repos/builtin/packages/dmidecode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dmlc-core/package.py b/var/spack/repos/builtin/packages/dmlc-core/package.py
index ed65eab682..3dab3aec02 100644
--- a/var/spack/repos/builtin/packages/dmlc-core/package.py
+++ b/var/spack/repos/builtin/packages/dmlc-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -31,7 +31,6 @@ class DmlcCore(CMakePackage):
'make/config.mk')
def cmake_args(self):
- spec = self.spec
return [
- '-DUSE_OPENMP=%s' % ('ON' if '+openmp' in spec else 'OFF'),
+ self.define_from_variant('USE_OPENMP', 'openmp'),
]
diff --git a/var/spack/repos/builtin/packages/dmtcp/package.py b/var/spack/repos/builtin/packages/dmtcp/package.py
index 107d0d3b2a..554d86be6d 100644
--- a/var/spack/repos/builtin/packages/dmtcp/package.py
+++ b/var/spack/repos/builtin/packages/dmtcp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dmxproto/package.py b/var/spack/repos/builtin/packages/dmxproto/package.py
index 31959981a0..5770e92ab4 100644
--- a/var/spack/repos/builtin/packages/dmxproto/package.py
+++ b/var/spack/repos/builtin/packages/dmxproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dnsmap/package.py b/var/spack/repos/builtin/packages/dnsmap/package.py
index f0b206e626..7f4d90313f 100644
--- a/var/spack/repos/builtin/packages/dnsmap/package.py
+++ b/var/spack/repos/builtin/packages/dnsmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dnsmasq/package.py b/var/spack/repos/builtin/packages/dnsmasq/package.py
index 8f0ff1bcf8..73ada9e027 100644
--- a/var/spack/repos/builtin/packages/dnsmasq/package.py
+++ b/var/spack/repos/builtin/packages/dnsmasq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Dnsmasq(MakefilePackage):
"""A lightweight, caching DNS proxy with integrated DHCP server."""
- homepage = "http://www.thekelleys.org.uk/dnsmasq/doc.html"
+ homepage = "https://www.thekelleys.org.uk/dnsmasq/doc.html"
url = "http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.70.tar.gz"
version('2.81', sha256='3c28c68c6c2967c3a96e9b432c0c046a5df17a426d3a43cffe9e693cf05804d0')
diff --git a/var/spack/repos/builtin/packages/dnstop/package.py b/var/spack/repos/builtin/packages/dnstop/package.py
index 7b310c9677..24790284c1 100644
--- a/var/spack/repos/builtin/packages/dnstop/package.py
+++ b/var/spack/repos/builtin/packages/dnstop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dnstracer/package.py b/var/spack/repos/builtin/packages/dnstracer/package.py
index 4a2603845d..6a6d6a43ce 100644
--- a/var/spack/repos/builtin/packages/dnstracer/package.py
+++ b/var/spack/repos/builtin/packages/dnstracer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/docbook-xml/package.py b/var/spack/repos/builtin/packages/docbook-xml/package.py
index 35b6669a50..eeb29d4b32 100644
--- a/var/spack/repos/builtin/packages/docbook-xml/package.py
+++ b/var/spack/repos/builtin/packages/docbook-xml/package.py
@@ -1,9 +1,8 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os
from spack import *
@@ -16,18 +15,185 @@ class DocbookXml(Package):
list_depth = 1
version('4.5', sha256='4e4e037a2b83c98c6c94818390d4bdd3f6e10f6ec62dd79188594e26190dc7b4')
+ version('4.3', sha256='23068a94ea6fd484b004c5a73ec36a66aa47ea8f0d6b62cc1695931f5c143464')
+
+ depends_on('libxml2', type='build')
def install(self, spec, prefix):
install_tree('.', prefix)
@property
def catalog(self):
- return os.path.join(self.prefix, 'catalog.xml')
+ return join_path(self.prefix, 'catalog')
+
+ @run_after('install')
+ def config_docbook(self):
+ catalog = self.catalog
+ version = self.version
+ docbook = join_path(prefix, 'docbook')
+ ent_dir = join_path(prefix, 'ent')
+ xmlcatalog = which('xmlcatalog')
+
+ # create docbook
+ xmlcatalog('--noout', '--create', docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ '-//OASIS//DTD DocBook XML CALS Table Model '
+ 'V{0}//EN'.format(version),
+ 'file://{0}/calstblx.dtd'.format(prefix),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ '-//OASIS//DTD DocBook XML V{0}//EN'.format(version),
+ 'file://{0}/docbookx.dtd'.format(prefix),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ '-//OASIS//DTD XML Exchange Table Model 19990315//EN',
+ 'file://{0}/soextblx.dtd'.format(prefix),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ '-//OASIS//ENTITIES DocBook XML Character Entities '
+ 'V{0}//EN'.format(version),
+ 'file://{0}/dbcentx.mod'.format(prefix),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ '-//OASIS//ENTITIES DocBook XML Additional General Entities '
+ 'V{0}//EN'.format(version),
+ 'file://{0}/dbgenent.mod'.format(prefix),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ '-//OASIS//ELEMENTS DocBook XML Document Hierarchy '
+ 'V{0}//EN'.format(version),
+ 'file://{0}/dbhierx.mod'.format(prefix),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ '-//OASIS//ENTITIES DocBook XML Notations '
+ 'V{0}//EN'.format(version),
+ 'file://{0}/dbnotnx.mod'.format(prefix),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ '-//OASIS//ELEMENTS DocBook XML Information Pool '
+ 'V{0}//EN'.format(version),
+ 'file://{0}/dbpoolx.mod'.format(prefix),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ '-//OASIS//ELEMENTS DocBook XML HTML Tables '
+ 'V{0}//EN'.format(version),
+ 'file://{0}/htmltblx.mod'.format(prefix),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Added Math Symbols: Arrow '
+ 'Relations//EN',
+ 'file://{0}/isoamsa.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Added Math Symbols: Binary '
+ 'Operators//EN',
+ 'file://{0}/isoamsb.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN',
+ 'file://{0}/isoamsc.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Added Math Symbols: '
+ 'Negated Relations//EN',
+ 'file://{0}/isoamsn.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN',
+ 'file://{0}/isoamso.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN',
+ 'file://{0}/isoamsr.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Box and Line Drawing//EN',
+ 'file://{0}/isobox.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Russian Cyrillic//EN',
+ 'file://{0}/isocyr1.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN',
+ 'file://{0}/isocyr2.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Diacritical Marks//EN',
+ 'file://{0}/isodia.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Greek Letters//EN',
+ 'file://{0}/isogrk1.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Monotoniko Greek//EN',
+ 'file://{0}/isogrk2.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Greek Symbols//EN',
+ 'file://{0}/isogrk3.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN',
+ 'file://{0}/isogrk4.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Added Latin 1//EN',
+ 'file://{0}/isolat1.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Added Latin 2//EN',
+ 'file://{0}/isolat2.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN',
+ 'file://{0}/isonum.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES Publishing//EN',
+ 'file://{0}/isopub.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'public',
+ 'ISO 8879:1986//ENTITIES General Technical//EN',
+ 'file://{0}/isotech.ent'.format(ent_dir),
+ docbook)
+ xmlcatalog('--noout', '--add', 'rewriteSystem',
+ 'https://www.oasis-open.org/docbook/xml/{0}'.format(version),
+ 'file://{0}'.format(prefix),
+ docbook)
+ xmlcatalog('--noout', '--add', 'rewriteURI',
+ 'https://www.oasis-open.org/docbook/xml/{0}'.format(version),
+ 'file://{0}'.format(prefix),
+ docbook)
+
+ # create catalog
+ xmlcatalog('--noout', '--create', catalog)
+ xmlcatalog('--noout', '--add', 'delegatePublic',
+ '-//OASIS//ENTITIES DocBook XML',
+ 'file://{0}'.format(docbook),
+ catalog)
+ xmlcatalog('--noout', '--add', 'delegatePublic',
+ '-//OASIS//DTD DocBook XML',
+ 'file://{0}'.format(docbook),
+ catalog)
+ xmlcatalog('--noout', '--add', 'delegatePublic',
+ 'ISO 8879:1986',
+ 'file://{0}'.format(docbook),
+ catalog)
+ xmlcatalog('--noout', '--add', 'delegateSystem',
+ 'https://www.oasis-open.org/docbook/',
+ 'file://{0}'.format(docbook),
+ catalog)
+ xmlcatalog('--noout', '--add', 'delegateURI',
+ 'https://www.oasis-open.org/docbook/',
+ 'file://{0}'.format(docbook),
+ catalog)
def setup_run_environment(self, env):
catalog = self.catalog
- env.set('XML_CATALOG_FILES', catalog, separator=' ')
+ env.prepend_path('XML_CATALOG_FILES', catalog, separator=' ')
def setup_dependent_build_environment(self, env, dependent_spec):
catalog = self.catalog
- env.set("XML_CATALOG_FILES", catalog, separator=' ')
+ env.prepend_path("XML_CATALOG_FILES", catalog, separator=' ')
diff --git a/var/spack/repos/builtin/packages/docbook-xsl/package.py b/var/spack/repos/builtin/packages/docbook-xsl/package.py
index 8b7d84007a..25bf3e52c4 100644
--- a/var/spack/repos/builtin/packages/docbook-xsl/package.py
+++ b/var/spack/repos/builtin/packages/docbook-xsl/package.py
@@ -1,9 +1,8 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os
from spack import *
@@ -14,8 +13,10 @@ class DocbookXsl(Package):
url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F1.79.2/docbook-xsl-1.79.2.tar.bz2"
version('1.79.2', sha256='316524ea444e53208a2fb90eeb676af755da96e1417835ba5f5eb719c81fa371')
+ version('1.78.1', sha256='c98f7296ab5c8ccd2e0bc07634976a37f50847df2d8a59bdb1e157664700b467', url='https://sourceforge.net/projects/docbook/files/docbook-xsl/1.78.1/docbook-xsl-1.78.1.tar.bz2')
depends_on('docbook-xml')
+ depends_on('libxml2', type='build')
patch('docbook-xsl-1.79.2-stack_fix-1.patch', when='@1.79.2')
@@ -24,7 +25,36 @@ class DocbookXsl(Package):
@property
def catalog(self):
- return os.path.join(self.prefix, 'catalog.xml')
+ return join_path(self.prefix, 'catalog')
+
+ @run_after('install')
+ def config_docbook(self):
+ catalog = self.catalog
+ version = self.version
+ xml_xsd = join_path(prefix, 'slides', 'schema', 'xsd', 'xml.xsd')
+ xmlcatalog = which('xmlcatalog')
+
+ # create catalog
+ xmlcatalog('--noout', '--create', catalog)
+ xmlcatalog('--noout', '--add', 'system',
+ 'https://www.w3.org/2001/xml.xsd', xml_xsd, catalog)
+ xmlcatalog('--noout', '--add', 'system',
+ 'https://www.w3.org/2009/01/xml.xsd', xml_xsd, catalog)
+ xmlcatalog('--noout', '--add', 'uri',
+ 'https://www.w3.org/2001/xml.xsd', xml_xsd, catalog)
+ xmlcatalog('--noout', '--add', 'uri',
+ 'https://www.w3.org/2009/01/xml.xsd', xml_xsd, catalog)
+
+ docbook_urls = ['docbook.sourceforge.net', 'cdn.docbook.org']
+ docbook_rewrites = ['rewriteSystem', 'rewriteURI']
+ docbook_versions = ['current', version]
+ for docbook_url in docbook_urls:
+ for docbook_rewrite in docbook_rewrites:
+ for docbook_version in docbook_versions:
+ xmlcatalog('--noout', '--add', docbook_rewrite,
+ 'http://{0}/release/xsl/{1}'.format(docbook_url,
+ docbook_version),
+ prefix, catalog)
def setup_run_environment(self, env):
catalog = self.catalog
diff --git a/var/spack/repos/builtin/packages/dock/package.py b/var/spack/repos/builtin/packages/dock/package.py
index 2493be97f1..b715af27ee 100644
--- a/var/spack/repos/builtin/packages/dock/package.py
+++ b/var/spack/repos/builtin/packages/dock/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Dock(Package):
"""DOCK is a molecular docking program used in drug discovery.
@@ -16,6 +17,7 @@ class Dock(Package):
homepage = "http://dock.compbio.ucsf.edu/DOCK_6/index.htm"
url = "file://{0}/dock.6.9_source.tar.gz".format(os.getcwd())
+ manual_download = True
version('6.9', sha256='c2caef9b4bb47bb0cb437f6dc21f4c605fd3d0d9cc817fa13748c050dc87a5a8')
diff --git a/var/spack/repos/builtin/packages/dos2unix/package.py b/var/spack/repos/builtin/packages/dos2unix/package.py
index 8630b8369a..ba40a9fdcb 100644
--- a/var/spack/repos/builtin/packages/dos2unix/package.py
+++ b/var/spack/repos/builtin/packages/dos2unix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Dos2unix(MakefilePackage):
version('7.3.4', sha256='8ccda7bbc5a2f903dafd95900abb5bf5e77a769b572ef25150fde4056c5f30c5')
- depends_on('gettext', type='build')
+ depends_on('gettext')
def install(self, spec, prefix):
make('prefix={0}'.format(prefix), 'install')
diff --git a/var/spack/repos/builtin/packages/dosfstools/package.py b/var/spack/repos/builtin/packages/dosfstools/package.py
index 5d079983fd..f13287c476 100644
--- a/var/spack/repos/builtin/packages/dosfstools/package.py
+++ b/var/spack/repos/builtin/packages/dosfstools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dotconf/package.py b/var/spack/repos/builtin/packages/dotconf/package.py
index 8a11d1a0c6..6a14c58d18 100644
--- a/var/spack/repos/builtin/packages/dotconf/package.py
+++ b/var/spack/repos/builtin/packages/dotconf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py b/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py
index 16b5a22643..fb27ada96e 100644
--- a/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py
+++ b/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 os import symlink
+
from spack import *
@@ -13,6 +14,14 @@ class DotnetCoreSdk(Package):
homepage = "https://www.microsoft.com/net/"
+ version('5.0.4',
+ url='https://download.visualstudio.microsoft.com/download/pr/73a9cb2a-1acd-4d20-b864-d12797ca3d40/075dbe1dc3bba4aa85ca420167b861b6/dotnet-sdk-5.0.201-linux-x64.tar.gz',
+ sha256='9ff77087831e8ca32719566ec9ef537e136cfc02c5ff565e53f5509cc6e7b341')
+
+ version('3.1.13',
+ url='https://download.visualstudio.microsoft.com/download/pr/ab82011d-2549-4e23-a8a9-a2b522a31f27/6e615d6177e49c3e874d05ee3566e8bf/dotnet-sdk-3.1.407-linux-x64.tar.gz',
+ sha256='a744359910206fe657c3a02dfa54092f288a44c63c7c86891e866f0678a7e911')
+
version('2.1.300',
url='https://download.microsoft.com/download/8/8/5/88544F33-836A-49A5-8B67-451C24709A8F/dotnet-sdk-2.1.300-linux-x64.tar.gz',
sha256='fabca4c8825182ff18e5a2f82dfe75aecd10260ee9e7c85a8c4b3d108e5d8e1b')
diff --git a/var/spack/repos/builtin/packages/double-conversion/package.py b/var/spack/repos/builtin/packages/double-conversion/package.py
index 70ef475aaa..605dda801e 100644
--- a/var/spack/repos/builtin/packages/double-conversion/package.py
+++ b/var/spack/repos/builtin/packages/double-conversion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,6 +21,8 @@ class DoubleConversion(CMakePackage):
homepage = "https://github.com/google/double-conversion"
url = "https://github.com/google/double-conversion/archive/v2.0.1.zip"
+ version('3.1.5', sha256='72c0e3925a1214095afc6f1c214faecbec20e8526cf6b8a541cf72195a11887f')
+ version('2.0.2', sha256='7a0ae55ec9f75c22607808d091bae050a38d4a7728c52273c89d25dd5b78fcdd')
version('2.0.1', sha256='476aefbdc2051bbcca0d5919ebc293c90a7ad2c0cb6c4ad877d6e665f469146b')
version('2.0.0', sha256='437df89059bfa6c1c0f8703693c2584a57f75289ed7020d801c9befb23f46a26')
version('1.1.5', sha256='496fd3354fa0ff17562907632f5560c1d444ea98b6069f1436fa573949b94fb0')
diff --git a/var/spack/repos/builtin/packages/doxygen/cpp17_namespaces.patch b/var/spack/repos/builtin/packages/doxygen/cpp17_namespaces.patch
new file mode 100644
index 0000000000..3d7e892b80
--- /dev/null
+++ b/var/spack/repos/builtin/packages/doxygen/cpp17_namespaces.patch
@@ -0,0 +1,30 @@
+From 788440279e0f0fdc7dce27ec266d7d5c11bcda1c Mon Sep 17 00:00:00 2001
+From: Matthew Hatch <mrhatch97@gmail.com>
+Date: Thu, 9 May 2019 01:05:43 -0700
+Subject: [PATCH] Fixed C++17-namespace assignment bug
+
+Added scope save and restore before and after namespace parsing
+---
+ src/scanner.l | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/scanner.l b/src/scanner.l
+index d3902b38d..5395e499c 100644
+--- a/src/scanner.l
++++ b/src/scanner.l
+@@ -3941,6 +3941,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
+ else
+ {
+ current->endBodyLine = yyLineNr;
++ Entry * original_root = current_root; // save root this namespace is in
+ if (current->section == Entry::NAMESPACE_SEC && current->type == "namespace")
+ {
+ int split_point;
+@@ -4005,6 +4006,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
+ )
+ { // namespaces and interfaces and java classes ends with a closing bracket without semicolon
+ current->reset();
++ current_root = original_root; // restore scope from before namespace descent
+ initEntry();
+ memspecEntry = 0;
+ BEGIN( FindMembers ) ;
diff --git a/var/spack/repos/builtin/packages/doxygen/gcc-partial-inlining-bug.patch b/var/spack/repos/builtin/packages/doxygen/gcc-partial-inlining-bug.patch
new file mode 100644
index 0000000000..13d0a78e80
--- /dev/null
+++ b/var/spack/repos/builtin/packages/doxygen/gcc-partial-inlining-bug.patch
@@ -0,0 +1,14 @@
+--- a/src/CMakeLists.txt 2021-02-10 22:55:14.766411242 -0500
++++ b/src/CMakeLists.txt 2021-02-10 23:10:17.651541580 -0500
+@@ -305,6 +305,11 @@
+ xmldocvisitor.cpp
+ xmlgen.cpp
+ )
++# Work aroung for GCC bug getting stuck in an infinite loop
++if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
++set_source_files_properties(doxygen.cpp PROPERTIES COMPILE_FLAGS -fno-partial-inlining)
++endif()
++
+ add_sanitizers(doxymain)
+
+ # LLVM/clang headers give a lot of warnings with -Wshadow and -Wcast-align so we disable them for
diff --git a/var/spack/repos/builtin/packages/doxygen/package.py b/var/spack/repos/builtin/packages/doxygen/package.py
index d237fc3d26..aed39e15d1 100644
--- a/var/spack/repos/builtin/packages/doxygen/package.py
+++ b/var/spack/repos/builtin/packages/doxygen/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import re
+
from spack import *
@@ -17,6 +19,8 @@ class Doxygen(CMakePackage):
git = "https://github.com/doxygen/doxygen.git"
# Doxygen versions on GitHub
+ version('1.9.1', commit='ef9b20ac7f8a8621fcfc299f8bd0b80422390f4b')
+ version('1.9.0', commit='71777ff3973331bd9453870593a762e184ba9f78')
version('1.8.20', commit='f246dd2f1c58eea39ea3f50c108019e4d4137bd5')
version('1.8.17', commit='b5fa3cd1c6e6240e20d3b80a70e3f04040b32021')
version('1.8.16', commit='cfd73d5c4d1a66c620a3b7c08b72a3f3c3f94255')
@@ -33,14 +37,38 @@ class Doxygen(CMakePackage):
variant('mscgen', default=False,
description='Build with support for code graphs from mscgen.')
+ executables = ['doxygen']
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('-v', output=str, error=str)
+ match = re.search(r"^([\d\.]+)$", output)
+ return match.group(1) if match else None
+
+ @classmethod
+ def determine_variants(cls, exes, version_str):
+ variants = ''
+ if which('dot'):
+ variants += "+graphviz"
+ else:
+ variants += "~graphviz"
+
+ if which('mscgen'):
+ variants += "+mscgen"
+ else:
+ variants += "~mscgen"
+
+ return variants
+
depends_on("cmake@2.8.12:", type='build')
depends_on("python", type='build') # 2 or 3 OK; used in CMake build
depends_on("iconv")
depends_on("flex", type='build')
+ depends_on("bison", type='build')
# code.l just checks subminor version <=2.5.4 or >=2.5.33
# but does not recognize 2.6.x as newer...could be patched if needed
depends_on("flex@2.5.39", type='build', when='@1.8.10')
- depends_on("bison", type='build')
+ depends_on("bison@2.7:", type='build', when='@1.8.10:')
# optional dependencies
depends_on("graphviz", when="+graphviz", type='run')
@@ -51,6 +79,13 @@ class Doxygen(CMakePackage):
# Also - https://github.com/doxygen/doxygen/pull/6588
patch('shared_ptr.patch', when='@1.8.14')
+ # Support C++17's nested namespaces a::b::c. For details about this patch, see
+ # https://github.com/doxygen/doxygen/pull/6977/commits/788440279e0f0fdc7dce27ec266d7d5c11bcda1c
+ patch('cpp17_namespaces.patch', when='@1.8.15')
+
+ # Workaround for gcc getting stuck in an infinite loop
+ patch('gcc-partial-inlining-bug.patch', when='@1.8.20: %gcc@7')
+
def patch(self):
if self.spec['iconv'].name == 'libc':
return
diff --git a/var/spack/repos/builtin/packages/dpdk/package.py b/var/spack/repos/builtin/packages/dpdk/package.py
index b01c41be84..0d3809e489 100644
--- a/var/spack/repos/builtin/packages/dpdk/package.py
+++ b/var/spack/repos/builtin/packages/dpdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,15 +19,9 @@ class Dpdk(MakefilePackage):
version('19.05', sha256='5fea95cb726e6adaa506dab330e79563ccd4dacf03f126c826aabdced605d32b')
version('19.02', sha256='04885d32c86fff5aefcfffdb8257fed405233602dbcd22f8298be13c2e285a50')
- depends_on('numactl')
+ conflicts('target=aarch64:', msg='DPDK is not supported on aarch64.')
- @when('%gcc target=aarch64:')
- def patch(self):
- filter_file(
- r'^MACHINE_CFLAGS',
- '#MACHINE_CFLAGS',
- join_path('mk', 'machine', 'armv8a', 'rte.vars.mk')
- )
+ depends_on('numactl')
def build(self, spec, prefix):
make('defconfig')
diff --git a/var/spack/repos/builtin/packages/draco/package.py b/var/spack/repos/builtin/packages/draco/package.py
index eed12b8e75..9c0dac3037 100644
--- a/var/spack/repos/builtin/packages/draco/package.py
+++ b/var/spack/repos/builtin/packages/draco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,6 +18,10 @@ class Draco(CMakePackage):
maintainers = ['KineticTheory']
version('develop', branch='develop')
+ version('7.11.0', sha256='a829984778fefd98c3c609ac10403df3eb06f02d57bdbc013634d0dc1ed5af29')
+ version('7.10.0', sha256='3530263a23a648fc7ae65748568f0a725a8b2c9bac9a41cc3cb1250c4af579de')
+ version('7.9.1', sha256='c8fd029d5b74afc68670f7d449d60c24f2d284c9d6a944a2d3dce6efeb6ad097')
+ version('7.9.0', sha256='17b54301897da0d4f9b91fef15cc2ec5e6c65a8e8c1c09e6e7b516c0fb82b50f')
version('7.8.0', sha256='f6de794457441f69025619be58810bca432f3e0dd773ea9b9a7977b1dc09530d')
version('7.7.0', sha256='eb7fffbcba48e16524f619d261192ead129f968c59f3581f3217b89590812ddf')
version('7.6.0', sha256='c2c6b329620d7bcb0f2fc14371f105dfb80a84e7c5adbb34620777034b15c7c9')
@@ -41,6 +45,7 @@ class Draco(CMakePackage):
variant('lapack', default=True, description='Enable LAPACK wrapper')
variant('libquo', default=True, description='Enable Quo wrapper')
variant('parmetis', default=True, description='Enable Parmetis support')
+ variant('pythontools', default=False, description='Enable support for extra python tools')
variant('qt', default=False, description='Enable Qt support')
variant('superlu_dist', default=True, description='Enable SuperLU-DIST support')
@@ -48,12 +53,15 @@ class Draco(CMakePackage):
depends_on('cmake@3.11:', when='@7.0.0:7.1.99', type='build')
depends_on('cmake@3.14:', when='@7.2.0:7.6.99', type='build')
depends_on('cmake@3.17:', when='@7.7:', type='build')
- depends_on('gsl')
+ depends_on('cmake@3.18:', when='@7.9:', type='build')
+ depends_on('gsl@:2.5.99', when='@:7.10.99')
+ depends_on('gsl@2.6:', when='@7.11.0:')
depends_on('mpi@3:', type=('build', 'link', 'run'))
depends_on('numdiff', type='build')
- depends_on('random123@1.09', type='build')
- depends_on('python@2.7:', when='@7.7.0:', type=('build', 'run'))
- depends_on('python@3.5:', when='@:7.6.99', type=('build', 'run', 'test'))
+ depends_on('random123@1.09', when='@:7.6.99')
+ depends_on('random123', when='@7.7.0:')
+ depends_on('python@2.7:', when='@:7.6.99', type=('build', 'run', 'test'))
+ depends_on('python@3.5:', when='@7.7.0:', type=('build', 'run', 'test'))
# Optional dependencies
depends_on('caliper', when='+caliper')
@@ -66,6 +74,7 @@ class Draco(CMakePackage):
depends_on('qt', when='+qt',
type=('build', 'link', 'run'))
depends_on('superlu-dist@:5.99', when='@:7.6.99+superlu_dist')
+ depends_on('py-matplotlib', when='+pythontools', type=('run'))
conflicts('+cuda', when='@:7.6.99')
conflicts('+caliper', when='@:7.7.99')
@@ -86,8 +95,9 @@ class Draco(CMakePackage):
options = []
options.extend([
'-Wno-dev',
- '-DBUILD_TESTING={0}'.format('ON' if self.run_tests else 'OFF'),
- '-DUSE_CUDA={0}'.format('ON' if '+cuda' in self.spec else 'OFF')
+ self.define('BUILD_TESTING', self.run_tests),
+ '-DUSE_CUDA={0}'.format('ON' if '+cuda' in self.spec else 'OFF'),
+ '-DUSE_QT={0}'.format('ON' if '+qt' in self.spec else 'OFF')
])
return options
diff --git a/var/spack/repos/builtin/packages/dracut/package.py b/var/spack/repos/builtin/packages/dracut/package.py
index 99cc7ca2c2..b78dd96744 100644
--- a/var/spack/repos/builtin/packages/dracut/package.py
+++ b/var/spack/repos/builtin/packages/dracut/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dramsim2/package.py b/var/spack/repos/builtin/packages/dramsim2/package.py
index df2d42af43..411ae82164 100644
--- a/var/spack/repos/builtin/packages/dramsim2/package.py
+++ b/var/spack/repos/builtin/packages/dramsim2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dramsim3/package.py b/var/spack/repos/builtin/packages/dramsim3/package.py
new file mode 100644
index 0000000000..ee784871d0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dramsim3/package.py
@@ -0,0 +1,41 @@
+# Copyright 2013-2021 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 *
+
+
+# Uses Cmake but does not follow a sane convention
+class Dramsim3(Package):
+ """DRAMsim3 models the timing paramaters and memory controller behavior
+ for several DRAM protocols such as DDR3, DDR4, LPDDR3, LPDDR4, GDDR5,
+ GDDR6, HBM, HMC, STT-MRAM. It is implemented in C++ as an objected
+ oriented model that includes a parameterized DRAM bank model, DRAM
+ controllers, command queues and system-level interfaces to interact with
+ a CPU simulator (GEM5, ZSim) or trace workloads. It is designed to be
+ accurate, portable and parallel."""
+
+ homepage = "https://github.com/umd-memsys/DRAMsim3"
+ url = "https://github.com/umd-memsys/DRAMsim3/archive/refs/tags/1.0.0.tar.gz"
+ git = "https://github.com/umd-memsys/DRAMsim3.git"
+
+ version('master', branch='master')
+
+ version('1.0.0', sha256='064b732256f3bec9b553e00bcbc9a1d82172ec194f2b69c8797f585200b12566')
+
+ depends_on('cmake', type='build')
+
+ def install(self, spec, prefix):
+ cmake = which('cmake')
+ cmake('.')
+
+ make()
+
+ include_path = prefix + '/include'
+ mkdir(prefix.bin)
+ mkdir(prefix.lib)
+ mkdir(include_path)
+
+ install('dramsim3main', prefix.bin)
+ install('libdramsim3.so', prefix.lib)
+ install('src/*.h', include_path)
diff --git a/var/spack/repos/builtin/packages/dray/package.py b/var/spack/repos/builtin/packages/dray/package.py
index 9dbf66afd9..737e428579 100644
--- a/var/spack/repos/builtin/packages/dray/package.py
+++ b/var/spack/repos/builtin/packages/dray/package.py
@@ -1,15 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
def cmake_cache_entry(name, value, vtype=None):
"""
@@ -33,7 +33,11 @@ class Dray(Package, CudaPackage):
maintainers = ['mclarsen', 'cyrush']
- version('develop', branch='develop', submodules='True')
+ version('develop', branch='develop', submodules='True')
+ version('0.1.6', sha256='43f39039599e3493cbbaeaf5621b611bef301ff504bed6e32c98f30bb2179e92')
+ version('0.1.5', sha256='aaf0975561a8e7910b9353e2dc30bd78abf9f01c306ec042422b7da223d3a8b8')
+ version('0.1.4', sha256='e763a3aa537b23486a4788f9d68db0a3eb545f6a2e617cd7c8a876682ca2d0a0')
+ version('0.1.3', sha256='b2f624a072463189997343b1ed911cc34c9bb1b6c7f0c3e48efeb40c05dd0d92')
version('0.1.2', sha256='46937f20124b28dc78a634e8e063a3e7a3bbfd9f424ce2680b08417010c376da')
version('0.1.1', sha256='e5daa49ee3367c087f5028dc5a08655298beb318014c6f3f65ef4a08fcbe346c')
version('0.1.0', sha256='8b341138e1069361351e0a94478608c5af479cca76e2f97d556229aed45c0169')
@@ -65,20 +69,20 @@ class Dray(Package, CudaPackage):
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+cuda~openmp+shared", when="+cuda~openmp+shared")
+ depends_on("raja+cuda+openmp+shared", when="+cuda+openmp+shared")
+ depends_on("raja+cuda~openmp~shared", when="+cuda~openmp~shared")
+ depends_on("raja+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~cuda~openmp+shared", when="~cuda~openmp+shared")
+ depends_on("raja~cuda+openmp+shared", when="~cuda+openmp+shared")
+ depends_on("raja~cuda~openmp~shared", when="~cuda~openmp~shared")
+ depends_on("raja~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("umpire+cuda+shared", when="+cuda+shared")
+ depends_on("umpire+cuda~shared", when="+cuda~shared")
+ depends_on("umpire~cuda+shared", when="~cuda+shared")
+ depends_on("umpire~cuda~shared", when="~cuda~shared")
depends_on("mfem+shared+conduit~threadsafe", when="+shared")
depends_on("mfem~shared+conduit~threadsafe", when="~shared")
@@ -123,7 +127,7 @@ class Dray(Package, CudaPackage):
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
+ https://ascent.readthedocs.io/en/latest/BuildingAscent.html
"""
#######################
@@ -199,6 +203,23 @@ class Dray(Package, CudaPackage):
cfg.write("# cpp compiler used by spack\n")
cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
+ # use global spack compiler flags
+ cppflags = ' '.join(spec.compiler_flags['cppflags'])
+ if cppflags:
+ # avoid always ending up with ' ' with no flags defined
+ cppflags += ' '
+ cflags = cppflags + ' '.join(spec.compiler_flags['cflags'])
+ if cflags:
+ cfg.write(cmake_cache_entry("CMAKE_C_FLAGS", cflags))
+ cxxflags = cppflags + ' '.join(spec.compiler_flags['cxxflags'])
+ if cxxflags:
+ cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags))
+ fflags = ' '.join(spec.compiler_flags['fflags'])
+ if self.spec.satisfies('%cce'):
+ fflags += " -ef"
+ if fflags:
+ cfg.write(cmake_cache_entry("CMAKE_Fortran_FLAGS", fflags))
+
#######################
# Backends
#######################
@@ -231,8 +252,12 @@ class Dray(Package, CudaPackage):
#######################
if "+test" in spec:
cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "ON"))
+ # we need this to control BLT tests
+ cfg.write(cmake_cache_entry("ENABLE_TESTS", "ON"))
else:
cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "OFF"))
+ # we need this to control BLT tests
+ cfg.write(cmake_cache_entry("ENABLE_TESTS", "OFF"))
#######################
# Utilities
@@ -251,7 +276,7 @@ class Dray(Package, CudaPackage):
cfg.write(cmake_cache_entry("ENABLE_LOGGING", "OFF"))
#######################
- # Logging
+ # Status
#######################
if "+stats" in spec:
cfg.write(cmake_cache_entry("ENABLE_STATS", "ON"))
@@ -285,34 +310,3 @@ class Dray(Package, CudaPackage):
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/dri2proto/package.py b/var/spack/repos/builtin/packages/dri2proto/package.py
index 66b73a7bbc..a1aa85104d 100644
--- a/var/spack/repos/builtin/packages/dri2proto/package.py
+++ b/var/spack/repos/builtin/packages/dri2proto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dri3proto/package.py b/var/spack/repos/builtin/packages/dri3proto/package.py
index e66ce72403..1d03830f98 100644
--- a/var/spack/repos/builtin/packages/dri3proto/package.py
+++ b/var/spack/repos/builtin/packages/dri3proto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/drill/package.py b/var/spack/repos/builtin/packages/drill/package.py
index 01925ec337..aa3df5fb0e 100644
--- a/var/spack/repos/builtin/packages/drill/package.py
+++ b/var/spack/repos/builtin/packages/drill/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Drill(Package):
systems.
"""
- homepage = "http://drill.apache.org/"
+ homepage = "https://drill.apache.org/"
url = "https://www-eu.apache.org/dist/drill/drill-1.17.0/apache-drill-1.17.0.tar.gz"
version('1.17.0', sha256='a3d2d544bcc32b915fb53fced0f982670bd6fe2abd764423e566a5f6b54debf1')
diff --git a/var/spack/repos/builtin/packages/dropwatch/package.py b/var/spack/repos/builtin/packages/dropwatch/package.py
index 1af4a50156..873797d561 100644
--- a/var/spack/repos/builtin/packages/dropwatch/package.py
+++ b/var/spack/repos/builtin/packages/dropwatch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/druid/package.py b/var/spack/repos/builtin/packages/druid/package.py
index b0416e6df4..ed9ccfcd52 100644
--- a/var/spack/repos/builtin/packages/druid/package.py
+++ b/var/spack/repos/builtin/packages/druid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ds/package.py b/var/spack/repos/builtin/packages/ds/package.py
index 1906450f4c..242c6460b7 100644
--- a/var/spack/repos/builtin/packages/ds/package.py
+++ b/var/spack/repos/builtin/packages/ds/package.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 symlink
+from spack import *
+
class Ds(AutotoolsPackage):
"""SAOImage DS9 is an astronomical imaging and data visualization
application."""
- homepage = "http://ds9.si.edu/"
+ homepage = "https://ds9.si.edu/"
url = "http://ds9.si.edu/download/source/ds9.8.0.tar.gz"
version('9.8.0', sha256='f3bdb46c1653997202f98c6f76632a4eb444707f4b64c14f8b96863d9c890304')
diff --git a/var/spack/repos/builtin/packages/dsdp/package.py b/var/spack/repos/builtin/packages/dsdp/package.py
index f10c9c2756..9b71f0ed14 100644
--- a/var/spack/repos/builtin/packages/dsdp/package.py
+++ b/var/spack/repos/builtin/packages/dsdp/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Dsdp(MakefilePackage):
"""The DSDP software is a free open source implementation of an
@@ -15,8 +16,8 @@ class Dsdp(MakefilePackage):
allows feasible and infeasible starting points and provides approximate
certificates of infeasibility when no feasible solution exists."""
- homepage = "http://www.mcs.anl.gov/hs/software/DSDP/"
- url = "http://www.mcs.anl.gov/hs/software/DSDP/DSDP5.8.tar.gz"
+ homepage = "https://www.mcs.anl.gov/hs/software/DSDP/"
+ url = "https://www.mcs.anl.gov/hs/software/DSDP/DSDP5.8.tar.gz"
version('5.8', sha256='26aa624525a636de272c0b329e2dfd01a0d5b7827f1c1c76f393d71e37dead70')
diff --git a/var/spack/repos/builtin/packages/dsqss/ctest.patch b/var/spack/repos/builtin/packages/dsqss/ctest.patch
new file mode 100644
index 0000000000..1920d6290d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dsqss/ctest.patch
@@ -0,0 +1,24 @@
+diff -u -r -N a/test/dla/CMakeLists.txt b/test/dla/CMakeLists.txt
+--- a/test/dla/CMakeLists.txt 2020-10-23 17:48:19.000000000 +0900
++++ b/test/dla/CMakeLists.txt 2020-10-23 17:49:46.000000000 +0900
+@@ -2,7 +2,7 @@
+ configure_file(test.py ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
+ file(GLOB jsons "*.json")
+ set(BUILD_TOOL_DIR ${CMAKE_BINARY_DIR}/tool)
+-set(PYTHONPATH "${BUILD_TOOL_DIR}:${pythonpath_build}")
++set(PYTHONPATH "${BUILD_TOOL_DIR}:${pythonpath_build}:$ENV{PYTHONPATH}")
+ foreach(json ${jsons})
+ configure_file(${json} ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
+ file(RELATIVE_PATH jsonfilename ${CMAKE_CURRENT_SOURCE_DIR} ${json})
+diff -u -r -N a/test/pmwa/CMakeLists.txt b/test/pmwa/CMakeLists.txt
+--- a/test/pmwa/CMakeLists.txt 2020-10-28 14:22:18.000000000 +0900
++++ b/test/pmwa/CMakeLists.txt 2020-10-28 14:22:57.000000000 +0900
+@@ -10,7 +10,7 @@
+ file(RELATIVE_PATH jsonfilename ${CMAKE_CURRENT_SOURCE_DIR} ${json})
+
+ add_test(NAME "pmwa/${jsonfilename}"
+- COMMAND env PYTHONPATH=${pythonpath_build} ${PYTHON_EXECUTABLE} test.py ${CMAKE_BINARY_DIR}/src/pmwa ${CMAKE_CURRENT_BINARY_DIR}/${jsonfilename}
++ COMMAND env PYTHONPATH=${pythonpath_build}:$ENV{PYTHONPATH} ${PYTHON_EXECUTABLE} test.py ${CMAKE_BINARY_DIR}/src/pmwa ${CMAKE_CURRENT_BINARY_DIR}/${jsonfilename}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
+ )
+ endforeach(json)
diff --git a/var/spack/repos/builtin/packages/dsqss/package.py b/var/spack/repos/builtin/packages/dsqss/package.py
new file mode 100644
index 0000000000..8703e1c62e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dsqss/package.py
@@ -0,0 +1,73 @@
+# Copyright 2013-2021 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)
+
+
+import sys
+
+from spack import *
+
+
+class Dsqss(CMakePackage):
+ """DSQSS is a program package for solving quantum many-body
+ problems defined on lattices. It is based on the quantum Monte
+ Carlo method in Feynman's path integral representation. """
+
+ homepage = "https://www.pasums.issp.u-tokyo.ac.jp/dsqss/en/"
+ url = "https://github.com/issp-center-dev/dsqss/releases/download/v2.0.3/dsqss-v2.0.3.tar.gz"
+
+ version('2.0.3', sha256='11255dd1f1317fb4ac2d6ae95535f027d627d03f5470717cd277dd9ab94496e0')
+
+ variant("mpi", default=True, description="build mpi support")
+
+ depends_on('mpi', when='+mpi')
+ depends_on('python', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-toml', type=('build', 'run'))
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pip', type='build')
+ depends_on('py-wheel', type='build')
+
+ patch('spackpip.patch')
+ patch('ctest.patch')
+
+ extends('python')
+
+ # Built-in tests are stored as JSON files.
+ # The archive contains "resource fork" files such as "._dimer_1.json".
+ # In Linux, the test system tried to test "._dimer_1.json" and failed.
+ @run_before('cmake')
+ def rm_macos(self):
+ if sys.platform != 'darwin':
+ for mfile in find('test', '._*.json', recursive=True):
+ force_remove(mfile)
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('ENABLE_MPI', 'mpi')
+ ]
+
+ return args
+
+ def test(self):
+ test01 = find(self.prefix.share, '01_spindimer')[0]
+ copy(join_path(test01, 'std.toml'), '.')
+ # prepare
+ pythonexe = self.spec['python'].command.path
+ opts = [self.spec.prefix.bin.dla_pre, 'std.toml']
+ self.run_test(pythonexe, options=opts)
+ # (mpi) run
+ opts = []
+ if self.spec.satisfies('+mpi'):
+ exe_name = self.spec['mpi'].prefix.bin.mpirun
+ opts.extend(['-n', '1'])
+ opts.append(join_path(self.prefix.bin, 'dla'))
+ else:
+ exe_name = 'dla'
+ opts.append('param.in')
+ expected = ['R ene = -3.74300000e-01 2.96344394e-03']
+ self.run_test(exe_name, options=opts)
+ self.run_test('cat', options=['sample.log'], expected=expected)
diff --git a/var/spack/repos/builtin/packages/dsqss/spackpip.patch b/var/spack/repos/builtin/packages/dsqss/spackpip.patch
new file mode 100644
index 0000000000..5e8f4d9dc3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dsqss/spackpip.patch
@@ -0,0 +1,30 @@
+--- a/tool/cmake/install.sh.in 2021-03-01 15:31:40.510128100 +0900
++++ b/tool/cmake/install.sh.in 2021-03-01 15:33:07.203367716 +0900
+@@ -1,16 +1,9 @@
+-export PYTHONPATH=@DSQSS_PYTHONPATH@
++export PYTHONPATH=$PYTHONPATH:@DSQSS_PYTHONPATH@
+
+ cd @CMAKE_CURRENT_BINARY_DIR@
+
+-if ! @PYTHON_EXECUTABLE@ -m pip --version >/dev/null 2>/dev/null ;then
+- set -e
+- wget https://bootstrap.pypa.io/get-pip.py -O get-pip.py
+- PIP_USER=0 @PYTHON_EXECUTABLE@ get-pip.py --prefix=@CMAKE_INSTALL_PREFIX@
+-fi
+
+ set -e
+-PIP_USER=0 @PYTHON_EXECUTABLE@ -m pip install -U pip --prefix=@CMAKE_INSTALL_PREFIX@
+-PIP_USER=0 @PYTHON_EXECUTABLE@ -m pip install wheel --prefix=@CMAKE_INSTALL_PREFIX@ --no-warn-script-location
+ DSQSS_VERSION=$(@PYTHON_EXECUTABLE@ setup.py --version)
+ @PYTHON_EXECUTABLE@ setup.py bdist_wheel --universal
+ mkdir -p temp
+--- a/tool/setup.py 2021-03-01 15:34:16.242136754 +0900
++++ b/tool/setup.py 2021-03-01 15:34:36.381650889 +0900
+@@ -26,7 +26,6 @@
+ license="GPLv3",
+ packages=["dsqss", 'dsqss.lattice_factory'],
+ python_requires=">=2.7",
+- install_requires=["numpy", "scipy", "toml"],
+ entry_points={
+ "console_scripts": [
+ "dla_hamgen = dsqss.std_model:main",
diff --git a/var/spack/repos/builtin/packages/dsrc/package.py b/var/spack/repos/builtin/packages/dsrc/package.py
index 5635fc4423..10235483b5 100644
--- a/var/spack/repos/builtin/packages/dsrc/package.py
+++ b/var/spack/repos/builtin/packages/dsrc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dssp/package.py b/var/spack/repos/builtin/packages/dssp/package.py
index 626464b67c..b9487741df 100644
--- a/var/spack/repos/builtin/packages/dssp/package.py
+++ b/var/spack/repos/builtin/packages/dssp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,6 +21,16 @@ class Dssp(AutotoolsPackage):
depends_on('m4', type='build')
depends_on('boost@1.48:')
+ # pdb data download.
+ # 1ALK.pdb - PDB (protein data bank) : https://www.rcsb.org/
+ resource(
+ name="pdb_data",
+ url="https://files.rcsb.org/download/1ALK.pdb",
+ sha256="99f4cd7ab63b35d64eacc85dc1491af5a03a1a0a89f2c9aadfb705c591b4b6c9",
+ expand=False,
+ placement='pdb'
+ )
+
def configure_args(self):
args = [
"--with-boost=%s" % self.spec['boost'].prefix]
@@ -30,3 +40,16 @@ class Dssp(AutotoolsPackage):
def edit(self):
makefile = FileFilter(join_path(self.stage.source_path, 'Makefile'))
makefile.filter('.*-Werror .*', ' -Wno-error \\')
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Save off the pdb sources for stand-alone testing."""
+ self.cache_extra_test_sources('pdb')
+
+ def test(self):
+ """Perform stand-alone/smoke test on installed package."""
+ pdb_path = join_path(self.test_suite.current_test_cache_dir, 'pdb')
+ self.run_test('mkdssp', options=['1ALK.pdb', '1alk.dssp'],
+ purpose='test: calculating structure for example',
+ installed=True,
+ work_dir=pdb_path)
diff --git a/var/spack/repos/builtin/packages/dtc/package.py b/var/spack/repos/builtin/packages/dtc/package.py
new file mode 100644
index 0000000000..96e00fcc52
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dtc/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 Dtc(MakefilePackage):
+ """Device Tree Compiler (dtc) toolchain for working with device tree
+ source and binary files and also libfdt, a utility library for reading
+ and manipulating the binary format."""
+
+ homepage = "https://github.com/dgibson/dtc"
+ url = "https://github.com/dgibson/dtc/archive/refs/tags/v1.6.1.tar.gz"
+
+ version('1.6.1', sha256='6401c9a0f577a270df4632bf0f3e5454ccc7a5ca3caefa67a3e1c29c9c6b8c60')
+
+ depends_on('bison', type='build')
+ # Build error with flex 2.6.3
+ # (convert-dtsv0-lexer.lex.c:398: error: "yywrap" redefined)
+ depends_on('flex@2.6.4:', type='build')
+ depends_on('libyaml', type='build')
+ depends_on('pkg-config', type='build')
+ depends_on('python', type='build')
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('Makefile')
+ makefile.filter(
+ 'PREFIX =.*',
+ 'PREFIX = %s' % prefix
+ )
diff --git a/var/spack/repos/builtin/packages/dtcmp/package.py b/var/spack/repos/builtin/packages/dtcmp/package.py
index e9e17c06f9..cf1bbc233e 100644
--- a/var/spack/repos/builtin/packages/dtcmp/package.py
+++ b/var/spack/repos/builtin/packages/dtcmp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dtf/package.py b/var/spack/repos/builtin/packages/dtf/package.py
new file mode 100644
index 0000000000..e1c590c657
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dtf/package.py
@@ -0,0 +1,64 @@
+# Copyright 2013-2021 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 Dtf(AutotoolsPackage):
+ """DTF (Data Transfer Framework) is a general I/O arbitration
+ middleware designed for multi-component applications that use
+ file-base component coupling.
+
+ DTF works for applications that use the Parallel netCDF (PnetCDF)
+ library for file I/O. It allows the user to transparently replace
+ file I/O with sending the data directly between the components.
+ """
+
+ homepage = "https://github.com/maneka07/DTF"
+ git = "https://github.com/maneka07/DTF.git"
+
+ version('master', branch='master')
+
+ variant('cxx', default=True, description='Build pnetcdf the C++ Interface')
+ variant('fortran', default=True, description='Build pnetcdf the Fortran Interface')
+
+ depends_on('mpi')
+ depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('perl', type='build')
+
+ configure_directory = 'pnetcdf'
+
+ def setup_build_environment(self, env):
+ dtf_srcdir = join_path(self.stage.source_path, 'libdtf')
+ env.append_path('LD_LIBRARY_PATH', self.prefix.lib)
+ env.append_path('LD_LIBRARY_PATH', dtf_srcdir)
+
+ @run_before('autoreconf')
+ def build_dtf(self):
+ with working_dir('libdtf'):
+ make('all', 'MPICC={0}'.format(self.spec['mpi'].mpicc))
+
+ def configure_args(self):
+ dtf_srcdir = join_path(self.stage.source_path, 'libdtf')
+ args = [
+ 'CFLAGS=-I{0}'.format(dtf_srcdir),
+ 'LDFLAGS=-L{0} -ldtf'.format(dtf_srcdir)
+ ]
+ args += self.enable_or_disable('cxx')
+ args += self.enable_or_disable('fortran')
+ return args
+
+ def install(self, spec, prefix):
+ with working_dir('pnetcdf'):
+ make('install')
+ with working_dir('libdtf'):
+ install('libdtf.*', prefix.lib)
+ install('dtf.h', prefix.include)
+ install_tree('doc', prefix.doc)
+ install_tree('example', prefix.example)
+ install('COPYRIGHT', prefix)
diff --git a/var/spack/repos/builtin/packages/duperemove/package.py b/var/spack/repos/builtin/packages/duperemove/package.py
index 6a061993c5..20bee13b1f 100644
--- a/var/spack/repos/builtin/packages/duperemove/package.py
+++ b/var/spack/repos/builtin/packages/duperemove/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py
index ecc3fbfeb6..38c664d500 100644
--- a/var/spack/repos/builtin/packages/dyninst/package.py
+++ b/var/spack/repos/builtin/packages/dyninst/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Dyninst(CMakePackage):
"""API for dynamic binary instrumentation. Modify programs while they
@@ -16,6 +17,8 @@ class Dyninst(CMakePackage):
maintainers = ['hainest']
version('master', branch='master')
+ version('11.0.1', tag='v11.0.1')
+ version('11.0.0', tag='v11.0.0')
version('10.2.1', tag='v10.2.1')
version('10.2.0', tag='v10.2.0')
version('10.1.0', tag='v10.1.0')
@@ -40,11 +43,16 @@ class Dyninst(CMakePackage):
depends_on('boost@1.61.0:' + boost_libs, when='@10.1.0:')
depends_on('boost@1.61.0:1.69.99' + boost_libs, when='@:10.0.99')
+ depends_on('boost@1.67.0:' + boost_libs, when='@11.0.0:')
+
depends_on('libiberty+pic')
# Dyninst uses elfutils starting with 9.3.0, and used libelf
# before that.
- depends_on('elfutils', type='link', when='@9.3.0:')
+ # NB: Parallel DWARF parsing in Dyninst 10.2.0 requires a thread-
+ # safe libdw
+ depends_on('elfutils@0.178:', type='link', when='@10.2.0:')
+ depends_on('elfutils', type='link', when='@9.3.0:10.1.99')
depends_on('libelf', type='link', when='@:9.2.99')
# Dyninst uses libdw from elfutils starting with 10.0, and used
@@ -75,6 +83,9 @@ class Dyninst(CMakePackage):
conflicts('%xl')
conflicts('%xl_r')
+ # Version 11.0 requires a C++11-compliant ABI
+ conflicts('%gcc@:5.99.99', when='@11.0.0:')
+
# Versions 9.3.x used cotire, but have no knob to turn it off.
# Cotire has no real use for one-time builds and can break
# parallel builds with both static and shared libs.
diff --git a/var/spack/repos/builtin/packages/dysco/package.py b/var/spack/repos/builtin/packages/dysco/package.py
index c7d4978b24..eb66ad2857 100644
--- a/var/spack/repos/builtin/packages/dysco/package.py
+++ b/var/spack/repos/builtin/packages/dysco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/e2fsprogs/package.py b/var/spack/repos/builtin/packages/e2fsprogs/package.py
index a189073604..f5a4b1a402 100644
--- a/var/spack/repos/builtin/packages/e2fsprogs/package.py
+++ b/var/spack/repos/builtin/packages/e2fsprogs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ea-utils/package.py b/var/spack/repos/builtin/packages/ea-utils/package.py
index 2b044dc23e..25bc936b19 100644
--- a/var/spack/repos/builtin/packages/ea-utils/package.py
+++ b/var/spack/repos/builtin/packages/ea-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class EaUtils(MakefilePackage):
demultiplexing, adapter trimming, etc. Primarily written to support an
Illumina based pipeline - but should work with any FASTQs."""
- homepage = "http://expressionanalysis.github.io/ea-utils/"
+ homepage = "https://expressionanalysis.github.io/ea-utils/"
url = "https://github.com/ExpressionAnalysis/ea-utils/archive/1.04.807.tar.gz"
version('1.04.807', sha256='aa09d25e6aa7ae71d2ce4198a98e58d563f151f8ff248e4602fa437f12b8d05f')
diff --git a/var/spack/repos/builtin/packages/eagle/package.py b/var/spack/repos/builtin/packages/eagle/package.py
index 0509f32cd4..e1cbdf37fb 100644
--- a/var/spack/repos/builtin/packages/eagle/package.py
+++ b/var/spack/repos/builtin/packages/eagle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/earlyoom/package.py b/var/spack/repos/builtin/packages/earlyoom/package.py
index 627e21ab34..d815d96de8 100644
--- a/var/spack/repos/builtin/packages/earlyoom/package.py
+++ b/var/spack/repos/builtin/packages/earlyoom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/easybuild/package.py b/var/spack/repos/builtin/packages/easybuild/package.py
index 7f9ba11fdb..11c9ce880e 100644
--- a/var/spack/repos/builtin/packages/easybuild/package.py
+++ b/var/spack/repos/builtin/packages/easybuild/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Easybuild(PythonPackage):
"""
homepage = 'https://easybuilders.github.io/easybuild/'
- url = 'https://pypi.io/packages/source/e/easybuild/easybuild-4.0.0.tar.gz'
+ pypi = 'easybuild/easybuild-4.0.0.tar.gz'
maintainers = ['boegel']
version('4.0.0', sha256='21bcc1048525ad6219667cc97a7421b5388068c670cabba356712e474896de40')
diff --git a/var/spack/repos/builtin/packages/ebms/package.py b/var/spack/repos/builtin/packages/ebms/package.py
index 1afb5c33d6..e858fabcb3 100644
--- a/var/spack/repos/builtin/packages/ebms/package.py
+++ b/var/spack/repos/builtin/packages/ebms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,9 +22,7 @@ class Ebms(MakefilePackage):
version('develop')
- variant('mpi', default=True, description='Build with MPI support')
-
- depends_on('mpi@2:', when='+mpi')
+ depends_on('mpi@2:')
tags = ['proxy-app']
diff --git a/var/spack/repos/builtin/packages/ecbuild/package.py b/var/spack/repos/builtin/packages/ecbuild/package.py
new file mode 100644
index 0000000000..f3c26282c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ecbuild/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 Ecbuild(CMakePackage):
+ """ecBuild is the ECMWF build system. It is built on top of CMake and
+ consists of a set of macros as well as a wrapper around CMake,"""
+
+ homepage = 'https://github.com/ecmwf/ecbuild'
+ url = 'https://github.com/ecmwf/ecbuild/archive/refs/tags/3.6.1.tar.gz'
+
+ maintainers = ['skosukhin']
+
+ version('3.6.1', sha256='796ccceeb7af01938c2f74eab0724b228e9bf1978e32484aa3e227510f69ac59')
+
+ # Some of the tests (ECBUILD-415 and test_ecbuild_regex_escape) fail with
+ # cmake@2.20.0 and it is not yet clear why. For now, we simply limit the
+ # version of cmake to the latest '3.19.x':
+ depends_on('cmake@3.11:3.19', type=('build', 'run'))
+
+ # Some of the installed scripts require running Perl:
+ depends_on('perl', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/eccodes/package.py b/var/spack/repos/builtin/packages/eccodes/package.py
index c31bb14f45..01b9988f11 100644
--- a/var/spack/repos/builtin/packages/eccodes/package.py
+++ b/var/spack/repos/builtin/packages/eccodes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,9 @@ class Eccodes(CMakePackage):
maintainers = ['skosukhin']
+ version('2.21.0', sha256='da0a0bf184bb436052e3eae582defafecdb7c08cdaab7216780476e49b509755')
+ version('2.20.0', sha256='207a3d7966e75d85920569b55a19824673e8cd0b50db4c4dac2d3d52eacd7985')
+ version('2.19.1', sha256='9964bed5058e873d514bd4920951122a95963128b12f55aa199d9afbafdd5d4b')
version('2.18.0', sha256='d88943df0f246843a1a062796edbf709ef911de7269648eef864be259e9704e3')
version('2.13.0', sha256='c5ce1183b5257929fc1f1c8496239e52650707cfab24f4e0e1f1a471135b8272')
version('2.5.0', sha256='18ab44bc444168fd324d07f7dea94f89e056f5c5cd973e818c8783f952702e4e')
@@ -58,6 +61,8 @@ class Eccodes(CMakePackage):
depends_on('py-numpy', when='+python', type=('build', 'run'))
extends('python', when='+python')
+ depends_on('cmake@3.6:', type='build')
+ depends_on('cmake@3.12:', when='@2.19:', type='build')
conflicts('+openmp', when='+pthreads',
msg='Cannot enable both POSIX threads and OMP')
@@ -75,11 +80,13 @@ class Eccodes(CMakePackage):
'Fortran interface requires a Fortran compiler!')
def cmake_args(self):
- var_opt_list = [('+pthreads', 'ECCODES_THREADS'),
- ('+openmp', 'ECCODES_OMP_THREADS'),
- ('+memfs', 'MEMFS'),
- ('+python', 'PYTHON'),
- ('+fortran', 'FORTRAN')]
+ var_opt_list = [
+ ('+pthreads', 'ECCODES_THREADS'),
+ ('+openmp', 'ECCODES_OMP_THREADS'),
+ ('+memfs', 'MEMFS'),
+ ('+python',
+ 'PYTHON2' if self.spec.satisfies('@2.20.0:') else 'PYTHON'),
+ ('+fortran', 'FORTRAN')]
args = ['-DENABLE_%s=%s' % (opt, 'ON' if var in self.spec else 'OFF')
for var, opt in var_opt_list]
diff --git a/var/spack/repos/builtin/packages/ecdsautils/package.py b/var/spack/repos/builtin/packages/ecdsautils/package.py
index cbba4a4f65..7fcafd905e 100644
--- a/var/spack/repos/builtin/packages/ecdsautils/package.py
+++ b/var/spack/repos/builtin/packages/ecdsautils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ecflow/package.py b/var/spack/repos/builtin/packages/ecflow/package.py
index 14b3f2033d..bdaf77283d 100644
--- a/var/spack/repos/builtin/packages/ecflow/package.py
+++ b/var/spack/repos/builtin/packages/ecflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/eckit/package.py b/var/spack/repos/builtin/packages/eckit/package.py
new file mode 100644
index 0000000000..929b4bb210
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eckit/package.py
@@ -0,0 +1,137 @@
+# Copyright 2013-2021 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 Eckit(CMakePackage):
+ """ecKit is a cross-platform c++ toolkit that supports development of tools
+ and applications at ECMWF."""
+
+ homepage = 'https://github.com/ecmwf/eckit'
+ url = 'https://github.com/ecmwf/eckit/archive/refs/tags/1.16.0.tar.gz'
+
+ maintainers = ['skosukhin']
+
+ version('1.16.0', sha256='9e09161ea6955df693d3c9ac70131985eaf7cf24a9fa4d6263661c6814ebbaf1')
+
+ variant('tools', default=True, description='Build the command line tools')
+ variant('mpi', default=True, description='Enable MPI support')
+ variant('admin', default=True,
+ description='Build utilities for administration tools')
+ variant('sql', default=True, description='Build SQL engine')
+ variant('linalg',
+ values=any_combination_of('eigen', 'armadillo', 'mkl', 'lapack'),
+ description='List of supported linear algebra backends')
+ variant('compression',
+ values=any_combination_of('bzip2', 'snappy', 'lz4', 'aec'),
+ description='List of supported compression backends')
+ variant('xxhash', default=True,
+ description='Enable xxHash support for hashing')
+ variant('ssl', default=False,
+ description='Enable MD4 and SHA1 support with OpenSSL')
+ variant('curl', default=False,
+ description='Enable URL data transferring with cURL')
+ variant('jemalloc', default=False,
+ description='Link against jemalloc memory allocator')
+ variant('unicode', default=True,
+ description='Enable support for Unicode characters in Yaml/JSON'
+ 'parsers')
+ variant('aio', default=True, description='Enable asynchronous IO')
+
+ depends_on('cmake@3.12:', type='build')
+ depends_on('ecbuild@3.5:', type='build')
+
+ depends_on('mpi', when='+mpi')
+
+ depends_on('yacc', type='build', when='+admin')
+ depends_on('flex', type='build', when='+admin')
+ depends_on('ncurses', when='+admin')
+
+ depends_on('yacc', type='build', when='+sql')
+ depends_on('flex', type='build', when='+sql')
+
+ depends_on('eigen', when='linalg=eigen')
+ depends_on('armadillo', when='linalg=armadillo')
+ depends_on('mkl', when='linalg=mkl')
+ depends_on('lapack', when='linalg=lapack')
+
+ depends_on('bzip2', when='compression=bzip2')
+ depends_on('snappy', when='compression=snappy')
+ depends_on('lz4', when='compression=lz4')
+ depends_on('libaec', when='compression=aec')
+
+ depends_on('openssl', when='+ssl')
+
+ depends_on('curl', when='+curl')
+
+ depends_on('jemalloc', when='+jemalloc')
+
+ # The package enables LAPACK backend (together with MKL backend)
+ # when='linalg=mkl'. This leads to two identical installations when:
+ # eckit linalg=mkl
+ # eckit linalg=mkl,lapack
+ # We prevent that by introducing the following conflict:
+ conflicts('linalg=lapack', when='linalg=mkl',
+ msg='"linalg=lapack" is implied when "linalg=mkl" and '
+ 'must not be specified additionally')
+
+ def cmake_args(self):
+ args = [
+ # Some features that we want to build are experimental:
+ self.define('ENABLE_EXPERIMENTAL', True),
+ self.define_from_variant('ENABLE_BUILD_TOOLS', 'tools'),
+ # We let ecBuild find the MPI library. We could help it by setting
+ # CMAKE_C_COMPILER to mpicc but that might give CMake a wrong
+ # impression that no additional flags are needed to link to
+ # libpthread, which will lead to problems with libraries that are
+ # linked with the C++ compiler. We could additionally set
+ # CMAKE_CXX_COMPILER to mpicxx. That would solve the problem with
+ # libpthread but lead to overlinking to MPI libraries, which we
+ # currently prefer to avoid since ecBuild does the job in all known
+ # cases.
+ self.define_from_variant('ENABLE_MPI', 'mpi'),
+ self.define_from_variant('ENABLE_ECKIT_CMD', 'admin'),
+ self.define_from_variant('ENABLE_ECKIT_SQL', 'sql'),
+ self.define('ENABLE_EIGEN', 'linalg=eigen' in self.spec),
+ self.define('ENABLE_ARMADILLO', 'linalg=armadillo' in self.spec),
+ self.define('ENABLE_MKL', 'linalg=mkl' in self.spec),
+ self.define('ENABLE_BZIP2', 'compression=bzip2' in self.spec),
+ self.define('ENABLE_SNAPPY', 'compression=snappy' in self.spec),
+ self.define('ENABLE_LZ4', 'compression=lz4' in self.spec),
+ self.define('ENABLE_AEC', 'compression=aec' in self.spec),
+ self.define_from_variant('ENABLE_XXHASH', 'xxhash'),
+ self.define_from_variant('ENABLE_SSL', 'ssl'),
+ self.define_from_variant('ENABLE_CURL', 'curl'),
+ self.define_from_variant('ENABLE_JEMALLOC', 'jemalloc'),
+ self.define_from_variant('ENABLE_UNICODE', 'unicode'),
+ self.define_from_variant('ENABLE_AIO', 'aio'),
+ self.define('ENABLE_TESTS', self.run_tests),
+ # Unconditionally disable additional unit/performance tests, since
+ # they download additional data (~1.6GB):
+ self.define('ENABLE_EXTRA_TESTS', False),
+ # No reason to check for doxygen and generate the documentation
+ # since it is not installed:
+ self.define('ENABLE_DOCS', False),
+ # Disable features that are currently not needed:
+ self.define('ENABLE_CUDA', False),
+ self.define('ENABLE_VIENNACL', False),
+ # Ceph/Rados storage support requires https://github.com/ceph/ceph
+ # and will be added later:
+ self.define('ENABLE_RADOS', False),
+ # rsync support requires https://github.com/librsync/librsync and
+ # will be added later:
+ self.define('ENABLE_RSYNC', False),
+ # Disable "prototyping code that may never see the light of day":
+ self.define('ENABLE_SANDBOX', False)
+ ]
+
+ if 'linalg=mkl' not in self.spec:
+ # ENABLE_LAPACK is ignored if MKL backend is enabled
+ # (the LAPACK backend is still built though):
+ args.append(
+ self.define('ENABLE_LAPACK', 'linalg=lapack' in self.spec))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py b/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py
index 13100d89a8..fca0452609 100644
--- a/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py
+++ b/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class EclipseGcjParser(Package):
"""GCJ requires the Eclipse Java parser, but does not ship with it.
diff --git a/var/spack/repos/builtin/packages/ecos/package.py b/var/spack/repos/builtin/packages/ecos/package.py
index 7ce3427a3f..fbd1378916 100644
--- a/var/spack/repos/builtin/packages/ecos/package.py
+++ b/var/spack/repos/builtin/packages/ecos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
new file mode 100644
index 0000000000..615cec4789
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py
@@ -0,0 +1,120 @@
+# Copyright 2013-2021 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 EcpDataVisSdk(BundlePackage):
+ """ECP Data & Vis SDK"""
+
+ homepage = "https://github.com/chuckatkins/ecp-data-viz-sdk"
+
+ tags = ['ecp']
+ maintainers = ['chuckatkins']
+
+ version('1.0')
+
+ ############################################################
+ # Variants
+ ############################################################
+
+ # I/O
+ variant('adios2', default=False, description="Enable ADIOS2")
+ variant('darshan', default=False, description="Enable Darshan")
+ variant('faodel', default=False, description="Enable FAODEL")
+ variant('hdf5', default=False, description="Enable HDF5")
+ variant('pnetcdf', default=False, description="Enable PNetCDF")
+ variant('unifyfs', default=False, description="Enable UnifyFS")
+ variant('veloc', default=False, description="Enable VeloC")
+
+ # Vis
+ variant('ascent', default=False, description="Enable Ascent")
+ variant('paraview', default=False, description="Enable ParaView")
+ variant('sz', default=False, description="Enable SZ")
+ variant('vtkm', default=False, description="Enable VTK-m")
+ variant('zfp', default=False, description="Enable ZFP")
+
+ # Outstanding concretization issues
+ variant('cinema', default=False, description="Enable Cinema")
+ conflicts('+cinema')
+
+ # Outstanding build issues
+ variant('catalyst', default=False, description="Enable Catalyst")
+ conflicts('+catalyst')
+ variant('visit', default=False, description="Enable VisIt")
+ conflicts('+visit')
+
+ ############################################################
+ # This is a messy workaround until the clingo concretizer can be required.
+ # The intent is to map package variants to dependency variants:
+ # Package variants a, and b, mapping to dependency variants A and B
+ # produce the following set of dependencies:
+ # depends_on('foo+A+B', when='+a+b')
+ # depends_on('foo+A~B', when='+a~b')
+ # depends_on('foo~A+B', when='~a+b')
+ # depends_on('foo~A~B', when='~a~b')
+ # The clingo concretizer will allow that to be expressed much simpler by
+ # only considering defaults once everything else is resolved:
+ # depends_on('foo')
+ # depends_on('foo+A', when='+a')
+ # depends_on('foo+B', when='+b')
+ ############################################################
+
+ # Helper function to generate dependencies on the Cartesian product of
+ # variants. If a dictionary is passed then it provides a mapping of
+ # package variant name to dependency variant name. Otherwise assume they
+ # are the same variant name in both the package and dependency
+ def variants2deps(dep_spec, pkg_spec, variants):
+ if not type(variants) is dict:
+ variants = dict([(v, v) for v in variants])
+ n = len(variants)
+ for i in range(0, pow(2, n)):
+ state = ['+' if d == '1' else '~' for d in format(i, '0' + str(n) + 'b')]
+ [pkg_vars, dep_vars] = [''.join(v) for v in zip(
+ *[(s + pv, s + dv) for s, (pv, dv) in zip(state, variants.items())])]
+ dependency = ' '.join((dep_spec, dep_vars))
+ predicate = ' '.join((pkg_spec, pkg_vars))
+ depends_on(dependency, when=predicate)
+
+ ############################################################
+ # Dependencies
+ ############################################################
+ variants2deps('adios2+shared+mpi+fortran+python+blosc+sst+ssc+dataman',
+ '+adios2', ['hdf5', 'sz', 'zfp'])
+
+ depends_on('darshan-runtime+mpi', when='+darshan')
+ depends_on('darshan-util', when='+darshan')
+
+ variants2deps('faodel+shared+mpi network=libfabric', '+faodel', ['hdf5'])
+
+ depends_on('hdf5 +shared+mpi', when='+hdf5')
+ # +fortran breaks the concretizer... Needs new concretizer
+ # depends_on('hdf5 +shared+mpi+fortran', when='+hdf5')
+
+ depends_on('parallel-netcdf+shared+fortran', when='+pnetcdf')
+
+ variants2deps('unifyfs', '+unifyfs ', ['hdf5'])
+
+ depends_on('veloc', when='+veloc')
+
+ depends_on('ascent+shared+mpi+fortran+openmp+python+vtkh+dray', when='+ascent')
+ depends_on('catalyst', when='+catalyst')
+
+ depends_on('py-cinema-lib', when='+cinema')
+ depends_on('py-cinemasci', when='+cinema')
+
+ variants2deps('paraview+shared+mpi+python3+kits', '+paraview', ['hdf5'])
+ # +adios2 is not yet enabled in the paraview package
+ # depends_on('paraview+adios2', when='+paraview +adios2')
+
+ depends_on('visit', when='+visit')
+
+ depends_on('vtk-m+shared+mpi+openmp+rendering', when='+vtkm')
+
+ # +python is currently broken in sz
+ # variants2deps('sz+shared+fortran+python+random_access', '+sz', ['hdf5'])
+ variants2deps('sz+shared+fortran+random_access', '+sz', ['hdf5'])
+
+ depends_on('zfp', when='+zfp')
diff --git a/var/spack/repos/builtin/packages/ecp-io-sdk/package.py b/var/spack/repos/builtin/packages/ecp-io-sdk/package.py
deleted file mode 100644
index 6a43b77ffa..0000000000
--- a/var/spack/repos/builtin/packages/ecp-io-sdk/package.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# 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 EcpIoSdk(BundlePackage):
- """ECP I/O Services SDK"""
-
- homepage = "https://github.com/chuckatkins/ecp-data-viz-sdk"
- git = "https://github.com/chuckatkins/ecp-data-viz-sdk.git"
-
- maintainers = ['chuckatkins']
-
- version('1.0', branch='master')
-
- variant('adios2', default=True, description="Enable ADIOS2")
- variant('darshan', default=True, description="Enable Darshan")
- variant('faodel', default=False, description="Enable FAODEL")
- variant('hdf5', default=True, description="Enable HDF5")
- variant('pnetcdf', default=True, description="Enable PNetCDF")
- variant('unifyfs', default=True, description="Enable UnifyFS")
- variant('veloc', default=True, description="Enable VeloC")
-
- depends_on('adios2+shared+mpi+fortran+python+zfp+sz+blosc+hdf5+sst+ssc+dataman', when='+adios2')
- depends_on('darshan-runtime+mpi', when='+darshan')
- depends_on('darshan-util', when='+darshan')
- depends_on('faodel+shared+mpi+hdf5 network=libfabric', when='+faodel')
- depends_on('hdf5+shared+mpi+fortran', when='+hdf5')
- depends_on('parallel-netcdf+shared+fortran', when='+pnetcdf')
- depends_on('unifyfs+fortran+hdf5', when='+unifyfs')
- depends_on('veloc', when='+veloc')
diff --git a/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py b/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py
index ebd2c2e3f3..7b57a1f4a9 100644
--- a/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py
+++ b/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -27,6 +27,14 @@ class EcpProxyApps(BundlePackage):
variant('candle', default=False,
description='Also build CANDLE Benchmarks')
+ variant('ml', default=False,
+ description='Also build Machine Learning Suite')
+
+ # Added as part of ML Suite with 4.0
+ depends_on('minigan@1.0.0', when='+ml @4.0:')
+ depends_on('cradl@master', when='+ml @4.0:')
+ depends_on('cosmoflow-benchmark@master', when='+ml @4.0:')
+ depends_on('mlperf-deepcam@master', when='+ml @4.0:')
# Added with release 4.0
depends_on('miniamr@1.6.4', when='@4.0:')
diff --git a/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py b/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py
deleted file mode 100644
index 337ca17237..0000000000
--- a/var/spack/repos/builtin/packages/ecp-viz-sdk/package.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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 EcpVizSdk(BundlePackage):
- """ECP Viz & Analysis SDK"""
-
- homepage = "https://github.com/chuckatkins/ecp-data-viz-sdk"
- git = "https://github.com/chuckatkins/ecp-data-viz-sdk.git"
-
- maintainers = ['chuckatkins']
-
- version('1.0', branch='master')
-
- variant('ascent', default=False, description="Enable Ascent")
- # variant('catalyst', default=False, description="Enable Catalyst")
- variant('paraview', default=False, description="Enable ParaView")
- variant('sz', default=False, description="Enable SZ")
- variant('vtkm', default=False, description="Enable VTK-m")
- variant('zfp', default=False, description="Enable ZFP")
-
- # Outstanding build issues
- # variant('visit', default=False, description="Enable VisIt")
-
- # Missing spack package
- # variant('cinema', default=False, description="Enable Cinema")
- # variant('rover', default=False, description="Enable ROVER")
-
- depends_on('ascent+shared+mpi+fortran+openmp+python+vtkh+dray', when='+ascent')
- depends_on('catalyst', when='+catalyst')
- depends_on('paraview+shared+mpi+python3+hdf5+kits', when='+paraview')
- depends_on('visit', when='+visit')
- depends_on('vtk-m+shared+mpi+openmp+rendering', when='+vtkm')
- depends_on('sz+shared+fortran+hdf5+python+random_access', when='+sz')
- depends_on('zfp', when='+zfp')
diff --git a/var/spack/repos/builtin/packages/ed/package.py b/var/spack/repos/builtin/packages/ed/package.py
index 21a29bd497..5fe1997ee0 100644
--- a/var/spack/repos/builtin/packages/ed/package.py
+++ b/var/spack/repos/builtin/packages/ed/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/editline/package.py b/var/spack/repos/builtin/packages/editline/package.py
index 393b0fac59..dad81a4b08 100644
--- a/var/spack/repos/builtin/packages/editline/package.py
+++ b/var/spack/repos/builtin/packages/editline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Editline(AutotoolsPackage):
"""A readline() replacement for UNIX without termcap (ncurses)"""
- homepage = "http://troglobit.com/editline.html"
+ homepage = "https://troglobit.com/editline.html"
url = "https://github.com/troglobit/editline/archive/1.16.0.tar.gz"
version('1.16.0', sha256='33421a1569d025f332a87054bfea28e2c757bdb573f1437bc22c34b798b6383c')
diff --git a/var/spack/repos/builtin/packages/editres/package.py b/var/spack/repos/builtin/packages/editres/package.py
index 90dcc1d49a..00575e451f 100644
--- a/var/spack/repos/builtin/packages/editres/package.py
+++ b/var/spack/repos/builtin/packages/editres/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Editres(AutotoolsPackage, XorgPackage):
"""Dynamic resource editor for X Toolkit applications."""
- homepage = "http://cgit.freedesktop.org/xorg/app/editres"
+ homepage = "https://cgit.freedesktop.org/xorg/app/editres"
xorg_mirror_path = "app/editres-1.0.6.tar.gz"
version('1.0.6', sha256='85f4664ca582effb01ee972d006124569b757b9a08ae6608c3f45fc36b3b7b1a')
diff --git a/var/spack/repos/builtin/packages/edm4hep/package.py b/var/spack/repos/builtin/packages/edm4hep/package.py
new file mode 100644
index 0000000000..ee654e125d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/edm4hep/package.py
@@ -0,0 +1,73 @@
+# Copyright 2013-2021 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 Edm4hep(CMakePackage):
+ """Event data model of Key4hep."""
+
+ homepage = "https://github.com/key4hep/EDM4hep"
+ url = "https://github.com/key4hep/EDM4hep/archive/v00-01.tar.gz"
+ git = "https://github.com/key4hep/EDM4hep.git"
+
+ maintainers = ['vvolkl']
+
+ tags = ["hep", "key4hep"]
+
+ version('master', branch='master')
+ version('0.3.1', sha256='eeec38fe7d72d2a72f07a63dca0a34ca7203727f67869c0abf6bef014b8b319b')
+ version('0.3', sha256='d0ad8a486c3ed1659ea97d47b268fe56718fdb389b5935f23ba93804e4d5fbc5')
+
+ variant('cxxstd',
+ default='17',
+ values=('17',),
+ multi=False,
+ description='Use the specified C++ standard when building.')
+
+ depends_on('cmake@3.3:', type='build')
+ depends_on('python', type='build')
+
+ depends_on('root@6.08:')
+ depends_on('podio@0.13:')
+
+ depends_on('hepmc@:2.99.99', type='test')
+ depends_on('heppdt', type='test')
+
+ def cmake_args(self):
+ args = []
+ # C++ Standard
+ args.append(self.define('CMAKE_CXX_STANDARD',
+ self.spec.variants['cxxstd'].value))
+ return args
+
+ def url_for_version(self, version):
+ """Translate version numbers to ilcsoft conventions.
+ in spack, the convention is: 0.1 (or 0.1.0) 0.1.1, 0.2, 0.2.1 ...
+ in ilcsoft, releases are dashed and padded with a leading zero
+ the patch version is omitted when 0
+ so for example v01-12-01, v01-12 ...
+ :param self: spack package class that has a url
+ :type self: class: `spack.PackageBase`
+ :param version: version
+ :type param: str
+ """
+ base_url = self.url.rsplit('/', 1)[0]
+
+ if len(version) == 1:
+ major = version[0]
+ minor, patch = 0, 0
+ elif len(version) == 2:
+ major, minor = version
+ patch = 0
+ else:
+ major, minor, patch = version
+
+ # By now the data is normalized enough to handle it easily depending
+ # on the value of the patch version
+ if patch == 0:
+ version_str = 'v%02d-%02d.tar.gz' % (major, minor)
+ else:
+ version_str = 'v%02d-%02d-%02d.tar.gz' % (major, minor, patch)
+
+ return base_url + '/' + version_str
diff --git a/var/spack/repos/builtin/packages/eem/package.py b/var/spack/repos/builtin/packages/eem/package.py
index 8e904b0c8c..ef48491beb 100644
--- a/var/spack/repos/builtin/packages/eem/package.py
+++ b/var/spack/repos/builtin/packages/eem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/efivar/package.py b/var/spack/repos/builtin/packages/efivar/package.py
index 49b68d56b9..9e91040238 100644
--- a/var/spack/repos/builtin/packages/efivar/package.py
+++ b/var/spack/repos/builtin/packages/efivar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/eigen/package.py b/var/spack/repos/builtin/packages/eigen/package.py
index d133f9f01a..94cc406154 100644
--- a/var/spack/repos/builtin/packages/eigen/package.py
+++ b/var/spack/repos/builtin/packages/eigen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,11 @@ class Eigen(CMakePackage):
vectors, numerical solvers, and related algorithms.
"""
- homepage = 'http://eigen.tuxfamily.org/'
+ homepage = 'https://eigen.tuxfamily.org/'
url = 'https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz'
+ maintainers = ['HaoZeke']
+ version('3.3.9', sha256='7985975b787340124786f092b3a07d594b2e9cd53bbfe5f3d9b1daee7d55f56f')
version('3.3.8', sha256='146a480b8ed1fb6ac7cd33fec9eb5e8f8f62c3683b3f850094d9d5c35a92419a')
version('3.3.7', sha256='d56fbad95abf993f8af608484729e3d87ef611dd85b3380a8bad1d5cbc373a57')
version('3.3.6', sha256='e7cd8c94d6516d1ada9893ccc7c9a400fcee99927c902f15adba940787104dba')
@@ -28,6 +30,10 @@ class Eigen(CMakePackage):
version('3.2.6', sha256='e097b8dcc5ad30d40af4ad72d7052e3f78639469baf83cffaadc045459cda21f')
version('3.2.5', sha256='8068bd528a2ff3885eb55225c27237cf5cda834355599f05c2c85345db8338b4')
+ # there is a bug that provokes bad parsing of nvhpc version
+ patch('https://gitlab.com/libeigen/eigen/-/commit/001a57519a7aa909d3bf0cd8c6ec8a9cd19d9c70.diff', when='@3.2.6:3.3.9',
+ sha256='55daee880b7669807efc0dcbeda2ae3b659e6dd4df3932f3573c8778bf5f8a42')
+
# there is a bug in 3.3.8 that provokes a compile error in dependent packages, see https://gitlab.com/libeigen/eigen/-/issues/2011
patch('https://gitlab.com/libeigen/eigen/-/commit/6d822a1052fc665f06dc51b4729f6a38e0da0546.diff', when='@3.3.8',
sha256='62590e9b33a8f72b608a72b87147a306e7cb20766ea53c6b8e0a183fa6cb7635')
diff --git a/var/spack/repos/builtin/packages/eigenexa/fj_compiler.patch b/var/spack/repos/builtin/packages/eigenexa/fj_compiler.patch
new file mode 100644
index 0000000000..f5ba03aea4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eigenexa/fj_compiler.patch
@@ -0,0 +1,64 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -200,7 +200,7 @@ AC_SUBST(DEBUG)
+ ## fortran compiler
+ #
+
+-eigenexa_default_fc="mpifrtpx mpiifort mpixlf90_r sxmpif90 mpif90"
++eigenexa_default_fc="mpifrt mpifrtpx mpiifort mpixlf90_r sxmpif90 mpif90"
+
+ # check usablility
+ AC_PROG_F77($eigenexa_default_fc)
+@@ -221,7 +221,6 @@ AC_MSG_CHECKING([for actual compiler])
+
+ fc_ver_info=$(${F77} -E --version)
+ for vtok in ${fc_ver_info} ; do
+-
+ if test x"${vtok}" = x"ifort"; then
+ FC_ACT="ifort"
+ break
+@@ -230,12 +229,16 @@ for vtok in ${fc_ver_info} ; do
+ FC_ACT="gfortran"
+ break
+
++ elif test x"${vtok}" = x"(FRT)"; then
++ FC_ACT="mpifrtpx"
++ break
++
+ fi
+
+ done
+
+ if test -z "${FC_ACT}"; then
+- FC_ACT=${F77}
++ FC_ACT=`basename ${F77}`
+ fi
+
+ if test x"${FC_ACT}" = x"ifort"; then
+@@ -260,7 +263,7 @@ fi
+ ## C compiler
+ #
+
+-eigenexa_default_cc="mpifccpx mpiicc mpixlc_r sxmpic++ mpicc"
++eigenexa_default_cc="mpifcc mpifccpx mpiicc mpixlc_r sxmpic++ mpicc"
+
+ # check usablility
+ AC_PROG_CC($eigenexa_default_cc)
+@@ -423,7 +426,7 @@ fi
+ ## For Fujitsu compiler architecture-oriented options
+ if test x"${FC_ACT}" = x"mpifrtpx"; then
+ F_ARCH=""
+- F_BASE="-Kopenmp,openmp_ordered_reduction"
++ F_BASE="-Kopenmp"
+ fi
+
+
+@@ -489,7 +492,7 @@ elif test x"${FC_ACT}" = x"gfortran"; th
+ FFLAGS0=${G_BASE}" -O0"
+
+ elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- FFLAGS0="-Kopenmp,openmp_ordered_reduction -Cpp"
++ FFLAGS0="-Kopenmp -Cpp"
+
+ elif test x"${FC_ACT}" = x"mpixlf90_r"; then
+ FFLAGS0="-qfixed -qsmp=omp -qthreaded -O0 -qessl -qstrict"
diff --git a/var/spack/repos/builtin/packages/eigenexa/gcc_compiler.patch b/var/spack/repos/builtin/packages/eigenexa/gcc_compiler.patch
new file mode 100644
index 0000000000..3c0e0bf983
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eigenexa/gcc_compiler.patch
@@ -0,0 +1,29 @@
+--- a/configure.ac
++++ c/configure.ac
+@@ -440,7 +440,7 @@ else
+ FFLAGS=${I_BASE}" -Ofast "${I_ARCH}
+
+ elif test x"${FC_ACT}" = x"gfortran"; then
+- FFLAGS=${G_BASE}" -O3 "${G_ARCH}
++ FFLAGS=${G_BASE}" -O3 -fopenmp "${G_ARCH}
+
+ elif test x"${FC_ACT}" = x"mpifrtpx"; then
+ FFLAGS=${F_BASE}" -Kfast,ocl,simd,swp "${F_ARCH}
+@@ -465,7 +465,7 @@ else
+ FCFLAGS=${I_BASE}" -Ofast "${I_ARCH}
+
+ elif test x"${FC_ACT}" = x"gfortran"; then
+- FCFLAGS=${G_BASE}" -O3 "${G_ARCH}
++ FCFLAGS=${G_BASE}" -O3 -fopenmp "${G_ARCH}
+
+ elif test x"${FC_ACT}" = x"mpifrtpx"; then
+ FCFLAGS=${F_BASE}" -Kfast,ocl,simd,swp "${F_ARCH}
+@@ -486,7 +486,7 @@ if test x"${FC_ACT}" = x"ifort"; then
+ FFLAGS0=${I_BASE}" -O0 "
+
+ elif test x"${FC_ACT}" = x"gfortran"; then
+- FFLAGS0=${G_BASE}" -O0"
++ FFLAGS0=${G_BASE}" -O0 -fopenmp "
+
+ elif test x"${FC_ACT}" = x"mpifrtpx"; then
+ FFLAGS0="-Kopenmp,openmp_ordered_reduction -Cpp"
diff --git a/var/spack/repos/builtin/packages/eigenexa/package.py b/var/spack/repos/builtin/packages/eigenexa/package.py
new file mode 100644
index 0000000000..8371985eee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eigenexa/package.py
@@ -0,0 +1,84 @@
+# Copyright 2013-2021 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 Eigenexa(AutotoolsPackage):
+ """EigenExa is a high-performance eigenvalue solver."""
+
+ homepage = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/"
+ url = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/EigenExa-2.6.tgz"
+
+ version(
+ "2.6", sha256="a1a4e571a8051443f28e7ea4889272993452a4babd036d2b4dd6b28154302f95"
+ )
+
+ depends_on("autoconf", type="build")
+ depends_on("automake", type="build")
+ depends_on("libtool", type="build")
+ depends_on("m4", type="build")
+ depends_on("mpi")
+ depends_on("lapack")
+ depends_on("scalapack")
+
+ patch("fj_compiler.patch", when="%fj")
+ patch("gcc_compiler.patch", when="%gcc")
+
+ parallel = False
+ force_autoreconf = True
+
+ def setup_build_environment(self, env):
+ env.set("FC", self.spec["mpi"].mpifc, force=True)
+ env.set("F77", self.spec["mpi"].mpif77, force=True)
+ env.set("CC", self.spec["mpi"].mpicc, force=True)
+ env.set(
+ "LAPACK_LIBS",
+ "{0} {1}".format(
+ self.spec["lapack"].libs.ld_flags, self.spec["scalapack"].libs.ld_flags
+ ),
+ )
+ env.set(
+ "LAPACK_PATH",
+ "{0}".format(
+ ":".join(
+ self.spec["lapack"].libs.directories
+ + self.spec["scalapack"].libs.directories
+ )
+ ),
+ )
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Save off benchmark files for stand-alone tests."""
+ self.cache_extra_test_sources("benchmark")
+
+ def test(self):
+ """Perform stand-alone/smoke tests using pre-built benchmarks."""
+ # NOTE: This package would ideally build the test program using
+ # the installed software *each* time the tests are run since
+ # this package installs a library.
+
+ test_cache_dir = join_path(
+ self.test_suite.current_test_cache_dir,
+ "benchmark"
+ )
+ test_data_dir = self.test_suite.current_test_data_dir
+
+ opts = [
+ "run-test.sh",
+ self.spec["mpi"].prefix.bin.mpirun,
+ '-n', '1',
+ join_path(test_cache_dir, "eigenexa_benchmark"),
+ '-f', join_path(test_cache_dir, "IN")
+ ]
+ env["OMP_NUM_THREADS"] = "1"
+ self.run_test(
+ "sh",
+ options=opts,
+ expected="EigenExa Test Passed !",
+ purpose="test: running benchmark checks",
+ work_dir=test_data_dir
+ )
diff --git a/var/spack/repos/builtin/packages/eigenexa/test/result-check.sh b/var/spack/repos/builtin/packages/eigenexa/test/result-check.sh
new file mode 100644
index 0000000000..a8a406ec23
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eigenexa/test/result-check.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+grep -q "Benchmark completed" $@
+if [ $? -eq 1 ]; then
+ echo "EigenExa Test Failed !"
+ exit 1
+fi
+
+while read line;do
+ case $line in
+ *'Eigenvalue Relative Error'* )
+ tmp=$line
+ read line
+ if [[ "$line" != '|w| is too small, so it is not severe.' ]]; then
+ echo "${tmp}" >> output.txt
+ fi
+ ;;
+ *'Eigenvalue Absolute Error'* )
+ tmp=$line
+ read line
+ if [ "$line" != 'Do not mind it. Condition number is too large.' ] && \
+ [ "$line" != 'Do not mind it. Relative error is small enough' ]; then
+ echo "${tmp}" >> output.txt
+ fi
+ ;;
+ *'Residual Error Test'* | *'Orthogonality Test'* )
+ echo "${line}" >> output.txt ;;
+ esac
+done < $@
+
+grep -q "FAILED" output.txt
+if [ $? -eq 1 ]; then
+ echo "EigenExa Test Passed !"
+elif [ $? -eq 0 ]; then
+ echo "EigenExa Test Failed !"
+fi
diff --git a/var/spack/repos/builtin/packages/eigenexa/test/run-test.sh b/var/spack/repos/builtin/packages/eigenexa/test/run-test.sh
new file mode 100644
index 0000000000..931d15973c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eigenexa/test/run-test.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+$@ 2>&1 | tee run_test_results.txt
+/usr/bin/sh result-check.sh run_test_results.txt
diff --git a/var/spack/repos/builtin/packages/elasticsearch/package.py b/var/spack/repos/builtin/packages/elasticsearch/package.py
index e543b3d875..2a4adb4c3d 100644
--- a/var/spack/repos/builtin/packages/elasticsearch/package.py
+++ b/var/spack/repos/builtin/packages/elasticsearch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/elemental/package.py b/var/spack/repos/builtin/packages/elemental/package.py
index a46e31ff11..be006f93c1 100644
--- a/var/spack/repos/builtin/packages/elemental/package.py
+++ b/var/spack/repos/builtin/packages/elemental/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
from spack.spec import UnsupportedCompilerError
@@ -12,7 +13,7 @@ class Elemental(CMakePackage):
"""Elemental: Distributed-memory dense and sparse-direct linear algebra
and optimization library."""
- homepage = "http://libelemental.org"
+ homepage = "https://libelemental.org"
url = "https://github.com/elemental/Elemental/archive/v0.87.7.tar.gz"
git = "https://github.com/elemental/Elemental.git"
@@ -61,14 +62,14 @@ class Elemental(CMakePackage):
# Allow Elemental to build internally when using 8-byte ints
depends_on('openblas threads=openmp', when='blas=openblas +openmp_blas ~int64_blas')
- depends_on('intel-mkl', when="blas=mkl ~openmp_blas ~int64_blas")
- depends_on('intel-mkl threads=openmp', when='blas=mkl +openmp_blas ~int64_blas')
- depends_on('intel-mkl@2017.1 +openmp +ilp64', when='blas=mkl +openmp_blas +int64_blas')
+ depends_on('intel-mkl', when="blas=mkl")
+ depends_on('intel-mkl threads=openmp', when='blas=mkl +openmp_blas')
+ depends_on('intel-mkl@2017.1 +ilp64', when='blas=mkl +int64_blas')
depends_on('veclibfort', when='blas=accelerate')
- depends_on('essl ~cuda', when='blas=essl ~openmp_blas ~int64_blas')
- depends_on('essl threads=openmp', when='blas=essl +openmp_blas ~int64_blas')
+ depends_on('essl', when='blas=essl')
+ depends_on('essl threads=openmp', when='blas=essl +openmp_blas')
# Note that this forces us to use OpenBLAS until #1712 is fixed
depends_on('lapack', when='blas=openblas ~openmp_blas')
diff --git a/var/spack/repos/builtin/packages/elfio/package.py b/var/spack/repos/builtin/packages/elfio/package.py
new file mode 100644
index 0000000000..72a937552a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/elfio/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 Elfio(CMakePackage):
+ """
+ ELFIO is a header-only C++ library intended for reading and generating
+ files in the ELF binary format.
+ """
+
+ homepage = "https://github.com/serge1/ELFIO"
+ url = "https://github.com/serge1/ELFIO/releases/download/Release_3.9/elfio-3.9.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('3.9', sha256='767b269063fc35aba6d361139f830aa91c45dc6b77942f082666876c1aa0be0f')
+ version('3.8', sha256='9553ce2b8d8aa2fb43f0e9be9bcbd10cd52f40b385110ea54173889c982f9ac4')
+ version('3.7', sha256='0af2452214c32639f8dbe520b31e03802be184581ab5ad65e99ed745274dbd5d')
+
+ depends_on('cmake@3.10:', type='build')
+
+ def cmake_args(self):
+ return [
+ self.define('ELFIO_BUILD_EXAMPLES', 'OFF'),
+ self.define('ELFIO_BUILD_TESTS', 'OFF'),
+ ]
diff --git a/var/spack/repos/builtin/packages/elfutils/package.py b/var/spack/repos/builtin/packages/elfutils/package.py
index bd5295cae0..e32b8fcbc1 100644
--- a/var/spack/repos/builtin/packages/elfutils/package.py
+++ b/var/spack/repos/builtin/packages/elfutils/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os.path
+from spack import *
+
class Elfutils(AutotoolsPackage, SourcewarePackage):
"""elfutils is a collection of various binary tools such as
@@ -21,6 +22,9 @@ class Elfutils(AutotoolsPackage, SourcewarePackage):
list_url = "https://sourceware.org/elfutils/ftp"
list_depth = 1
+ version('0.185', sha256='dc8d3e74ab209465e7f568e1b3bb9a5a142f8656e2b57d10049a73da2ae6b5a6')
+ version('0.184', sha256='87e7d1d7f0333815dd1f62135d047a4dc4082068f361452f357997c11360644b')
+ version('0.183', sha256='c3637c208d309d58714a51e61e63f1958808fead882e9b607506a29e5474f2c5')
version('0.182', sha256='ecc406914edf335f0b7fc084ebe6c460c4d6d5175bfdd6688c1c78d9146b8858')
version('0.181', sha256='29a6ad7421ec2acfee489bb4a699908281ead2cb63a20a027ce8804a165f0eb3')
version('0.180', sha256='b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d')
@@ -50,6 +54,11 @@ class Elfutils(AutotoolsPackage, SourcewarePackage):
variant('debuginfod', default=False,
description='Enable libdebuginfod support.')
+ # elfutils-0.185-static-inline.patch
+ # elflint.c (buffer_left): Mark as 'inline' to avoid external linkage failure.
+ patch('https://794601.bugs.gentoo.org/attachment.cgi?id=714030', when='@0.185',
+ sha256='d786d49c28d7f0c8fc27bab39ca8714e5f4d128c7f09bb18533a8ec99b38dbf8')
+
depends_on('bzip2', type='link', when='+bzip2')
depends_on('xz', type='link', when='+xz')
depends_on('zlib', type='link')
@@ -74,6 +83,7 @@ class Elfutils(AutotoolsPackage, SourcewarePackage):
# elfutils with gcc, and then link it to clang-built libraries.
conflicts('%apple-clang')
conflicts('%clang')
+ conflicts('%cce')
# Elfutils uses -Wall and we don't want to fail the build over a
# stray warning.
diff --git a/var/spack/repos/builtin/packages/elk/package.py b/var/spack/repos/builtin/packages/elk/package.py
index 1367eda296..8bcfbb5316 100644
--- a/var/spack/repos/builtin/packages/elk/package.py
+++ b/var/spack/repos/builtin/packages/elk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,44 +10,96 @@ class Elk(MakefilePackage):
"""An all-electron full-potential linearised augmented-plane wave
(FP-LAPW) code with many advanced features."""
- homepage = 'http://elk.sourceforge.net/'
+ homepage = 'https://elk.sourceforge.io/'
url = 'https://sourceforge.net/projects/elk/files/elk-3.3.17.tgz'
- version('3.3.17', sha256='c9b87ae4ef367ed43afc2d43eb961745668e40670995e8e24c13db41b7e85d73')
-
- # Elk provides these libraries, but allows you to specify your own
- variant('blas', default=True,
- description='Build with custom BLAS library')
- variant('lapack', default=True,
- description='Build with custom LAPACK library')
- variant('fft', default=True,
- description='Build with custom FFT library')
-
- # Elk does not provide these libraries, but allows you to use them
- variant('mpi', default=True,
+ version('7.2.42', sha256='73f03776dbf9b2147bfcc5b7c062af5befa0944608f6fc4b6a1e590615400fc6')
+ version('7.1.14', sha256='7c2ff30f4b1d72d5dc116de9d70761f2c206700c69d85dd82a17a5a6374453d2')
+ version('7.0.12', sha256='9995387c681d0e5a9bd52cb274530b23c0370468b6be86f6c90a6ec445cb8a01')
+ version('3.3.17', sha256='c9b87ae4ef367ed43afc2d43eb961745668e40670995e8e24c13db41b7e85d73', deprecated=True)
+
+ # what linear algebra packages to use? the choices are
+ # internal - use internal libraries
+ # generic - use spack-provided blas and lapack
+ # openblas - use openblas specifically, with special support for multithreading.
+ # mkl - use mkl specifically, with special support for multithreading
+ # should be used with fft=mkl
+ # blis - use internal lapack and blas implementation from blis
+ variant('linalg', default='internal', multi=False,
+ description='Build with custom BLAS library',
+ values=('internal', 'generic', 'openblas', 'mkl', 'blis'))
+ # what FFT package to use? The choices are
+ # internal - use internal library
+ # fftw - fftw3 with special code
+ # mkl - use mklr with fft code
+ # should be used with linalg=mkls
+ variant('fft', default='internal', multi=False,
+ description='Build with custom FFT library',
+ values=('internal', 'fftw', 'mkl'))
+ # check that if fft=mkl then linalg=mkl and vice versa.
+
+ conflicts('linalg=mkl', when='fft=fftw')
+ conflicts('linalg=mkl', when='fft=internal')
+ conflicts('linalg=blis', when='@:3')
+ conflicts('fft=mkl', when='linalg=internal')
+ conflicts('fft=mkl', when='linalg=generic')
+ conflicts('fft=mkl', when='linalg=openblas')
+ conflicts('fft=mkl', when='linalg=blis')
+
+ variant('mpi', default=True,
description='Enable MPI parallelism')
variant('openmp', default=True,
description='Enable OpenMP support')
variant('libxc', default=True,
description='Link to Libxc functional library')
+ variant('w90', default=False,
+ description='wannier90 support, requires wannier90 library')
+
+ depends_on('blas', when='linalg=generic')
+ depends_on('lapack', when='linalg=generic')
+
+ depends_on('mkl', when='linalg=mkl')
+ depends_on('mkl threads=openmp', when='linalg=mkl +openmp')
+
+ depends_on('openblas', when='linalg=openblas')
+ depends_on('openblas threads=openmp', when='linalg=openblas +openmp')
+
+ depends_on('blis', when='linalg=blis')
+ depends_on('blis threads=openmp', when='linalg=blis +openmp')
+
+ depends_on('fftw', when='fft=fftw')
+ depends_on('fftw +openmp', when='fft=fftw +openmp')
+ depends_on('mkl', when='fft=mkl')
- depends_on('blas', when='+blas')
- depends_on('lapack', when='+lapack')
- depends_on('fftw', when='+fft')
depends_on('mpi@2:', when='+mpi')
- depends_on('libxc', when='+libxc')
+ depends_on('libxc@5:', when='@7:+libxc')
+ depends_on('libxc@:3', when='@:3+libxc')
+ depends_on('wannier90', when='+w90')
# Cannot be built in parallel
parallel = False
def edit(self, spec, prefix):
- # Dictionary of configuration options
+ # Dictionary of configuration options with default values assigned
config = {
- 'MAKE': 'make',
- 'AR': 'ar'
- }
+ 'MAKE': 'make',
+ 'AR': 'ar',
+ 'LIB_LPK': 'lapack.a blas.a',
+ 'LIB_FFT': 'fftlib.a',
+ 'SRC_MPI': 'mpi_stub.f90',
+ 'SRC_MKL': 'mkl_stub.f90',
+ 'SRC_OBLAS': 'oblas_stub.f90',
+ 'SRC_OMP': 'omp_stub.f90',
+ 'SRC_BLIS': 'blis_stub.f90',
+ 'SRC_libxc': 'libxcifc_stub.f90',
+ 'SRC_FFT': 'zfftifc.f90',
+ 'SRC_W90S': 'w90_stub.f90',
+ 'F90': spack_fc,
+ 'F77': spack_f77
+ }
# Compiler-specific flags
+
flags = ''
if self.compiler.name == 'intel':
flags = '-O3 -ip -unroll -no-prec-div'
@@ -64,26 +116,40 @@ class Elk(MakefilePackage):
config['F90_OPTS'] = flags
config['F77_OPTS'] = flags
+ if '+mpi' in spec:
+ config['F90'] = spec['mpi'].mpifc
+ config['F77'] = spec['mpi'].mpif77
+ config['SRC_MPI'] = ' '
+
+ # OpenMP support
+ if '+openmp' in spec:
+ config['F90_OPTS'] += ' ' + self.compiler.openmp_flag
+ config['F77_OPTS'] += ' ' + self.compiler.openmp_flag
+ config['SRC_OMP'] = ' '
+
# BLAS/LAPACK support
- # Note: BLAS/LAPACK must be compiled with OpenMP support
+ # Note: openblas must be compiled with OpenMP support
# if the +openmp variant is chosen
- blas = 'blas.a'
- lapack = 'lapack.a'
- if '+blas' in spec:
+ if 'linalg=generic' in spec:
blas = spec['blas'].libs.joined()
- if '+lapack' in spec:
lapack = spec['lapack'].libs.joined()
- # lapack must come before blas
- config['LIB_LPK'] = ' '.join([lapack, blas])
-
- # FFT support
- if '+fft' in spec:
- config['LIB_FFT'] = join_path(spec['fftw'].prefix.lib,
- 'libfftw3.so')
+ config['LIB_LPK'] = ' '.join([lapack, blas])
+ if 'linalg=openblas' in spec:
+ config['LIB_LPK'] = spec['openblas'].libs.ld_flags
+ config['SRC_OBLAS'] = ' '
+ if 'linalg=mkl' in spec:
+ config['LIB_LPK'] = spec['mkl'].libs.ld_flags
+ config['SRC_MKL'] = ' '
+ if 'linalg=blis' in spec:
+ config['LIB_LPK'] = ' '.join(['lapack.a ', spec['blis'].libs.ld_flags])
+ config['SRC_BLIS'] = ' '
+ # FFT
+ if 'fft=fftw' in spec:
+ config['LIB_FFT'] = spec['fftw'].libs.ld_flags
config['SRC_FFT'] = 'zfftifc_fftw.f90'
- else:
- config['LIB_FFT'] = 'fftlib.a'
- config['SRC_FFT'] = 'zfftifc.f90'
+ if 'fftw=mkl' in spec:
+ config['LIB_FFT'] = spec['mkl'].libs.ld_flags
+ config['SRC_FFT'] = ' '
# MPI support
if '+mpi' in spec:
@@ -93,13 +159,11 @@ class Elk(MakefilePackage):
config['F90'] = spack_fc
config['F77'] = spack_f77
config['SRC_MPI'] = 'mpi_stub.f90'
-
# OpenMP support
if '+openmp' in spec:
config['F90_OPTS'] += ' ' + self.compiler.openmp_flag
config['F77_OPTS'] += ' ' + self.compiler.openmp_flag
- else:
- config['SRC_OMP'] = 'omp_stub.f90'
+ config['SRC_OMP'] = ' '
# Libxc support
if '+libxc' in spec:
@@ -107,13 +171,10 @@ class Elk(MakefilePackage):
join_path(spec['libxc'].prefix.lib, 'libxcf90.so'),
join_path(spec['libxc'].prefix.lib, 'libxc.so')
])
- config['SRC_libxc'] = ' '.join([
- 'libxc_funcs.f90',
- 'libxc.f90',
- 'libxcifc.f90'
- ])
- else:
- config['SRC_libxc'] = 'libxcifc_stub.f90'
+ if self.spec.satisfies('@7:'):
+ config['SRC_libxc'] = 'libxcf90.f90 libxcifc.f90'
+ else:
+ config['SRC_libxc'] = 'libxc_funcs.f90 libxc.f90 libxcifc.f90'
# Write configuration options to include file
with open('make.inc', 'w') as inc:
diff --git a/var/spack/repos/builtin/packages/elmerfem/package.py b/var/spack/repos/builtin/packages/elmerfem/package.py
index 24433a58f8..1ece8bf783 100644
--- a/var/spack/repos/builtin/packages/elmerfem/package.py
+++ b/var/spack/repos/builtin/packages/elmerfem/package.py
@@ -1,10 +1,8 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Elmerfem(CMakePackage):
"""Elmer is an open source multiphysical simulation software. It
@@ -17,8 +15,10 @@ class Elmerfem(CMakePackage):
version('ice', branch='elmerice')
version('devel', branch='devel')
+ version('9.0', sha256='08c5bf261e87ff37456c1aa0372db3c83efabe4473ea3ea0b8ec66f5944d1aa0')
version('8.4', sha256='cc3ce807d76798361592cc14952cdc3db1ad8f9bac038017514033ce9badc5b3')
+ variant('gui', default=False, description='Enable GUI support.')
variant('mpi', default=True, description='Enable MPI support.')
variant('openmp', default=True, description='Enable OpenMP support.')
variant('mumps', default=False, description='Enable MUMPS support.')
@@ -28,12 +28,16 @@ class Elmerfem(CMakePackage):
variant('lua', default=False, description='Enable Lua support.')
variant('scatt2d', default=False, description='Build Scattered2DDataInterpolator solver.')
+ depends_on('qt@5:+opengl', when='+gui')
+ depends_on('qwt', when='+gui')
+ depends_on('paraview+qt', when='+gui')
depends_on('mpi')
depends_on('netcdf-fortran')
depends_on('blas')
depends_on('lapack')
depends_on('scalapack', when='+mpi')
- depends_on('mumps', when='+mumps')
+ depends_on('mumps+openmp', when='+mumps+openmp')
+ depends_on('mumps~openmp', when='+mumps~openmp')
depends_on('hypre', when='+hypre')
depends_on('trilinos~hypre~zoltan~zoltan2', when='+trilinos')
depends_on('zoltan+fortran', when='+zoltan')
@@ -47,6 +51,14 @@ class Elmerfem(CMakePackage):
args = ['-DWITH_ElmerIce=ON', '-DWITH_CONTRIB=ON']
+ if '+gui' in spec:
+ args.append('-DWITH_ELMERGUI:BOOL=TRUE')
+ args.append('-DWITH_QT5:BOOL=TRUE')
+ args.append('-DWITH_QWT:BOOL=TRUE')
+ args.append('-DWITH_PARAVIEW:BOOL=TRUE')
+ else:
+ args.append('-DWITH_ELMERGUI:BOOL=FALSE')
+
if '+mpi' in spec:
args.append('-DWITH_MPI=ON')
else:
@@ -112,6 +124,16 @@ class Elmerfem(CMakePackage):
return args
+ def patch(self):
+ if self.spec.satisfies('@8.4'):
+ # from commit f02cb33acd59 upstream
+ filter_file('FOREACH(D RANGE 1 depth)',
+ 'FOREACH(D RANGE 1 ${depth})',
+ 'fem/tests/CMakeLists.txt',
+ string=True)
+
def setup_run_environment(self, env):
env.set('ELMER_HOME', self.prefix)
env.set('ELMER_Fortran_COMPILER', self.compiler.fc)
+ if '+gui' in self.spec:
+ env.set('ELMERGUI_HOME', self.prefix.share.ElmerGUI)
diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py
index d7c1f6fa54..6ab9ba299a 100644
--- a/var/spack/repos/builtin/packages/elpa/package.py
+++ b/var/spack/repos/builtin/packages/elpa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,13 @@ import os
from spack import *
-class Elpa(AutotoolsPackage, CudaPackage):
+class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
"""Eigenvalue solvers for Petaflop-Applications (ELPA)"""
- homepage = 'http://elpa.mpcdf.mpg.de/'
- url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz'
+ homepage = 'https://elpa.mpcdf.mpg.de/'
+ url = 'https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/2015.11.001/elpa-2015.11.001.tar.gz'
+ version('2021.05.001', sha256='a4f1a4e3964f2473a5f8177f2091a9da5c6b5ef9280b8272dfefcbc3aad44d41')
version('2020.05.001', sha256='66ff1cf332ce1c82075dc7b5587ae72511d2bcb3a45322c94af6b01996439ce5')
version('2019.11.001', sha256='10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357')
version('2019.05.002', sha256='d2eab5e5d74f53601220b00d18185670da8c00c13e1c1559ecfb0cd7cb2c4e8d')
@@ -22,25 +23,37 @@ class Elpa(AutotoolsPackage, CudaPackage):
version('2017.11.001', sha256='59f99c3abe2190fac0db8a301d0b9581ee134f438669dbc92551a54f6f861820')
version('2017.05.003', sha256='bccd49ce35a323bd734b17642aed8f2588fea4cc78ee8133d88554753bc3bf1b')
version('2017.05.002', sha256='568b71024c094d667b5cbb23045ad197ed5434071152ac608dae490ace5eb0aa')
+ version('2017.05.001', sha256='28f7edad60984d93da299016ad33571dc6db1cdc9fab0ceaef05dc07de2c7dfd')
version('2016.11.001.pre', sha256='69b67f0f6faaa2b3b5fd848127b632be32771636d2ad04583c5269d550956f92')
version('2016.05.004', sha256='08c59dc9da458bab856f489d779152e5506e04f0d4b8d6dcf114ca5fbbe46c58')
version('2016.05.003', sha256='c8da50c987351514e61491e14390cdea4bdbf5b09045261991876ed5b433fca4')
version('2015.11.001', sha256='c0761a92a31c08a4009c9688c85fc3fc8fde9b6ce05e514c3e1587cf045e9eba')
- variant('openmp', default=False, description='Activates OpenMP support')
- variant('optflags', default=True, description='Build with optimization flags')
+ variant('openmp', default=True, description='Activates OpenMP support')
+ variant('mpi', default=True, description='Activates MPI support')
- depends_on('mpi')
depends_on('blas')
depends_on('lapack')
- depends_on('scalapack')
+ depends_on('mpi', when='+mpi')
+ depends_on('scalapack', when='+mpi')
+ depends_on('rocblas', when='+rocm')
depends_on('libtool', type='build')
+ depends_on('python@:2', type='build', when='@:2020.05.001')
+ depends_on('python@3:', type='build', when='@2020.11.001:')
+
+ patch('python_shebang.patch', when='@:2020.05.001')
+
+ # fails to build due to broken type-bound procedures in OMP parallel regions
+ conflicts('+openmp', when='@2021.05.001: %gcc@:7.999',
+ msg='ELPA-2021.05.001+ requires GCC-8+ for OpenMP support')
+ conflicts('+rocm', when='@:2020.99',
+ msg='ROCm support was introduced in ELPA 2021.05.001')
+ conflicts('+mpi', when='+rocm',
+ msg='ROCm support and MPI are not yet compatible')
def url_for_version(self, version):
- t = 'http://elpa.mpcdf.mpg.de/html/Releases/{0}/elpa-{0}.tar.gz'
- if version < Version('2016.05.003'):
- t = 'http://elpa.mpcdf.mpg.de/elpa-{0}.tar.gz'
- return t.format(str(version))
+ return ('https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/{0}/elpa-{0}.tar.gz'
+ .format(str(version)))
# override default implementation which returns static lib
@property
@@ -69,8 +82,11 @@ class Elpa(AutotoolsPackage, CudaPackage):
spec = self.spec
options = []
+ options += self.with_or_without('mpi')
+
# TODO: --disable-sse-assembly, --enable-sparc64, --enable-neon-arch64
- simd_features = ['vsx', 'sse', 'avx', 'avx2', 'avx512']
+ simd_features = ['vsx', 'sse', 'avx', 'avx2', 'avx512',
+ 'sve128', 'sve256', 'sve512']
for feature in simd_features:
msg = '--enable-{0}' if feature in spec.target else '--disable-{0}'
@@ -79,43 +95,69 @@ class Elpa(AutotoolsPackage, CudaPackage):
if spec.target.family == 'aarch64':
options.append('--disable-sse-assembly')
+ if '%aocc' in spec:
+ options.append('--disable-shared')
+ options.append('--enable-static')
+
# If no features are found, enable the generic ones
if not any(f in spec.target for f in simd_features):
options.append('--enable-generic')
- if '+optflags' in spec:
+ if self.compiler.name == "gcc":
+ gcc_options = []
+ gfortran_options = ['-ffree-line-length-none']
+
+ if self.compiler.version >= Version("10.0.0") \
+ and spec.version <= Version("2019.11.001"):
+ gfortran_options.append('-fallow-argument-mismatch')
+
+ space_separator = ' '
options.extend([
- 'FCFLAGS=-O2 -ffree-line-length-none',
- 'CFLAGS=-O2'
+ 'CFLAGS=' + space_separator.join(gcc_options),
+ 'FCFLAGS=' + space_separator.join(gfortran_options),
])
+ if '%aocc' in spec:
+ options.extend([
+ 'FCFLAGS=-O3',
+ 'CFLAGS=-O3'
+ ])
+
+ cuda_flag = 'nvidia-gpu' if '@2021.05.001:' in self.spec else 'gpu'
if '+cuda' in spec:
prefix = spec['cuda'].prefix
- options.append('--enable-gpu')
+ options.append('--enable-{0}'.format(cuda_flag))
options.append('--with-cuda-path={0}'.format(prefix))
options.append('--with-cuda-sdk-path={0}'.format(prefix))
cuda_arch = spec.variants['cuda_arch'].value[0]
if cuda_arch != 'none':
- options.append('--with-GPU-compute-capability=sm_{0}'.
- format(cuda_arch))
+ options.append('--with-{0}-compute-capability=sm_{1}'.
+ format(cuda_flag.upper(), cuda_arch))
else:
- options.append('--disable-gpu')
+ options.append('--disable-{0}'.format(cuda_flag))
- if '+openmp' in spec:
- options.append('--enable-openmp')
- else:
- options.append('--disable-openmp')
+ if '+rocm' in spec:
+ options.append('--enable-amd-gpu')
+ options.append('CXX={0}'.format(self.spec['hip'].hipcc))
+ elif '@2021.05.001:' in self.spec:
+ options.append('--disable-amd-gpu')
+
+ options += self.enable_or_disable('openmp')
- options.extend([
- 'CC={0}'.format(spec['mpi'].mpicc),
- 'FC={0}'.format(spec['mpi'].mpifc),
- 'CXX={0}'.format(spec['mpi'].mpicxx),
+ options += [
'LDFLAGS={0}'.format(spec['lapack'].libs.search_flags),
- 'LIBS={0}'.format(spec['lapack'].libs.link_flags),
- 'SCALAPACK_LDFLAGS={0}'.format(spec['scalapack'].libs.joined())
- ])
+ 'LIBS={0} {1}'.format(
+ spec['lapack'].libs.link_flags, spec['blas'].libs.link_flags)]
+
+ if '+mpi' in self.spec:
+ options += [
+ 'CC={0}'.format(spec['mpi'].mpicc),
+ 'CXX={0}'.format(spec['mpi'].mpicxx),
+ 'FC={0}'.format(spec['mpi'].mpifc),
+ 'SCALAPACK_LDFLAGS={0}'.format(spec['scalapack'].libs.joined())
+ ]
options.append('--disable-silent-rules')
diff --git a/var/spack/repos/builtin/packages/elpa/python_shebang.patch b/var/spack/repos/builtin/packages/elpa/python_shebang.patch
new file mode 100644
index 0000000000..4b9b2c9530
--- /dev/null
+++ b/var/spack/repos/builtin/packages/elpa/python_shebang.patch
@@ -0,0 +1,8 @@
+--- a/manual_cpp 2021-01-27 20:21:23.897206207 +0100
++++ b/manual_cpp 2021-01-27 20:13:08.743822289 +0100
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/env python
+ from __future__ import print_function
+ import os
+ import sys
diff --git a/var/spack/repos/builtin/packages/elsd/package.py b/var/spack/repos/builtin/packages/elsd/package.py
index f625b80dda..eb2f7c787f 100644
--- a/var/spack/repos/builtin/packages/elsd/package.py
+++ b/var/spack/repos/builtin/packages/elsd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/elsdc/package.py b/var/spack/repos/builtin/packages/elsdc/package.py
index c41e5ece66..13b74bb0d9 100644
--- a/var/spack/repos/builtin/packages/elsdc/package.py
+++ b/var/spack/repos/builtin/packages/elsdc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/elsi/package.py b/var/spack/repos/builtin/packages/elsi/package.py
index f800b57943..6f514aa708 100644
--- a/var/spack/repos/builtin/packages/elsi/package.py
+++ b/var/spack/repos/builtin/packages/elsi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Elsi(CMakePackage):
codes to a variety of eigenvalue solvers."""
homepage = "https://wordpress.elsi-interchange.org/"
- url = "http://wordpress.elsi-interchange.org/wp-content/uploads/2019/03/elsi-2.2.1.tar.gz"
+ url = "https://wordpress.elsi-interchange.org/wp-content/uploads/2019/03/elsi-2.2.1.tar.gz"
version('2.2.1', sha256='5b4b2e8fa4b3b68131fe02cc1803a884039b89a1b1138af474af66453bec0b4d')
diff --git a/var/spack/repos/builtin/packages/emacs/package.py b/var/spack/repos/builtin/packages/emacs/package.py
index 0759fd28d5..f304be6525 100644
--- a/var/spack/repos/builtin/packages/emacs/package.py
+++ b/var/spack/repos/builtin/packages/emacs/package.py
@@ -1,19 +1,22 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Emacs(AutotoolsPackage, GNUMirrorPackage):
"""The Emacs programmable text editor."""
homepage = "https://www.gnu.org/software/emacs"
+ git = "git://git.savannah.gnu.org/emacs.git"
gnu_mirror_path = "emacs/emacs-24.5.tar.gz"
+ version('master', branch='master')
+ version('27.2', sha256='80ff6118fb730a6d8c704dccd6915a6c0e0a166ab1daeef9fe68afa9073ddb73')
version('27.1', sha256='ffbfa61dc951b92cf31ebe3efc86c5a9d4411a1222b8a4ae6716cfd0e2a584db')
version('26.3', sha256='09c747e048137c99ed35747b012910b704e0974dde4db6696fde7054ce387591')
version('26.2', sha256='4f99e52a38a737556932cc57479e85c305a37a8038aaceb5156625caf102b4eb')
@@ -31,6 +34,7 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage):
description="Select an X toolkit (gtk, athena)"
)
variant('tls', default=False, description="Build Emacs with gnutls")
+ variant('native', default=False, description="enable native compilation of elisp")
depends_on('pkgconfig', type='build')
@@ -47,8 +51,15 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage):
depends_on('gtkplus', when='+X toolkit=gtk')
depends_on('gnutls', when='+tls')
depends_on('jpeg')
+ depends_on('m4', type='build', when="@master:")
+ depends_on('autoconf', type='build', when="@master:")
+ depends_on('automake', type='build', when="@master:")
+ depends_on('libtool', type='build', when="@master:")
+ depends_on('texinfo', type='build', when="@master:")
+ depends_on('gcc@11: +strip languages=jit', when="+native")
conflicts('@:26.3', when='platform=darwin os=catalina')
+ conflicts('+native', when='@:27.99.99', msg="native compilation require @master")
@when('platform=darwin')
def setup_build_environment(self, env):
@@ -74,6 +85,9 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage):
if sys.platform == 'darwin':
args.append('--without-ns')
+ if '+native' in spec:
+ args.append('--with-native-compilation')
+
if '+tls' in spec:
args.append('--with-gnutls')
else:
diff --git a/var/spack/repos/builtin/packages/ember/package.py b/var/spack/repos/builtin/packages/ember/package.py
index 3d866fdc11..4d6b010706 100644
--- a/var/spack/repos/builtin/packages/ember/package.py
+++ b/var/spack/repos/builtin/packages/ember/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class Ember(MakefilePackage):
tags = ['proxy-app', 'ecp-proxy-app']
- homepage = "http://sst-simulator.org/SSTPages/SSTElementEmber/"
+ homepage = "https://sst-simulator.org/SSTPages/SSTElementEmber/"
git = "https://github.com/sstsimulator/ember.git"
url = "https://github.com/sstsimulator/ember/archive/v1.0.0.tar.gz"
@@ -61,7 +61,7 @@ class Ember(MakefilePackage):
targets = []
cc = self.spec['mpi'].mpicc
cflags = '-O3'
- if not self.spec.satisfies('%nvhpc'):
+ if not self.spec.satisfies('%nvhpc@:20.11'):
cflags = '-O3 -std=c99'
oshmem_cc = 'cc'
oshmem_c_flags = '-O3 -g'
diff --git a/var/spack/repos/builtin/packages/emboss/package.py b/var/spack/repos/builtin/packages/emboss/package.py
index 62f043694a..19ac6695ce 100644
--- a/var/spack/repos/builtin/packages/emboss/package.py
+++ b/var/spack/repos/builtin/packages/emboss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/embree/package.py b/var/spack/repos/builtin/packages/embree/package.py
index 432055aa83..524e8ec9c6 100644
--- a/var/spack/repos/builtin/packages/embree/package.py
+++ b/var/spack/repos/builtin/packages/embree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,7 @@ class Embree(CMakePackage):
url = "https://github.com/embree/embree/archive/v3.7.0.tar.gz"
maintainers = ['aumuell']
+ version('3.13.0', sha256='4d86a69508a7e2eb8710d571096ad024b5174834b84454a8020d3a910af46f4f')
version('3.12.1', sha256='0c9e760b06e178197dd29c9a54f08ff7b184b0487b5ba8b8be058e219e23336e')
version('3.12.0', sha256='f3646977c45a9ece1fb0cfe107567adcc645b1c77c27b36572d0aa98b888190c')
version('3.11.0', sha256='2ccc365c00af4389aecc928135270aba7488e761c09d7ebbf1bf3e62731b147d')
@@ -34,40 +35,27 @@ class Embree(CMakePackage):
def cmake_args(self):
spec = self.spec
- args = []
-
- args.append('-DBUILD_TESTING=OFF')
- args.append('-DEMBREE_TUTORIALS=OFF')
- args.append('-DEMBREE_IGNORE_CMAKE_CXX_FLAGS=ON')
-
- if 'ispc' in spec:
- args.append('-DEMBREE_ISPC_SUPPORT=ON')
- else:
- args.append('-DEMBREE_ISPC_SUPPORT=OFF')
-
- # code selection and defines controlling namespace names are based on
- # defines controlled by compiler flags, so disable ISAs below compiler
- # flags chosen by spack
- if spec.target >= 'nehalem':
- args.append('-DEMBREE_ISA_SSE2=OFF')
- else:
- args.append('-DEMBREE_ISA_SSE2=ON')
-
- if spec.target >= 'sandybridge':
- args.append('-DEMBREE_ISA_SSE42=OFF')
- else:
- args.append('-DEMBREE_ISA_SSE42=ON')
-
- if spec.target >= 'haswell':
- args.append('-DEMBREE_ISA_AVX=OFF')
- else:
- args.append('-DEMBREE_ISA_AVX=ON')
-
- if spec.target >= 'skylake_avx512':
- args.append('-DEMBREE_ISA_AVX2=OFF')
- else:
- args.append('-DEMBREE_ISA_AVX2=ON')
-
- args.append('-DEMBREE_ISA_AVX512SKX=ON')
+ args = [
+ '-DBUILD_TESTING=OFF',
+ '-DEMBREE_TUTORIALS=OFF',
+ '-DEMBREE_IGNORE_CMAKE_CXX_FLAGS=ON',
+ self.define_from_variant('EMBREE_ISPC_SUPPORT', 'ispc'),
+
+ # code selection and defines controlling namespace names are based on
+ # defines controlled by compiler flags, so disable ISAs below compiler
+ # flags chosen by spack
+ self.define('EMBREE_ISA_SSE2', 'sse4_2' not in spec.target),
+ self.define('EMBREE_ISA_SSE42', 'avx' not in spec.target),
+ self.define('EMBREE_ISA_AVX', 'avx2' not in spec.target),
+ self.define('EMBREE_ISA_AVX2', 'avx512' not in spec.target),
+ self.define('EMBREE_ISA_AVX512SKX', True),
+ ]
+
+ if spec.satisfies('%gcc@:7.99'):
+ # remove unsupported -mprefer-vector-width=256, otherwise copied
+ # from common/cmake/gnu.cmake
+ args.append('-DFLAGS_AVX512SKX=-mavx512f -mavx512dq -mavx512cd'
+ ' -mavx512bw -mavx512vl -mf16c -mavx2 -mfma -mlzcnt'
+ ' -mbmi -mbmi2')
return args
diff --git a/var/spack/repos/builtin/packages/enca/package.py b/var/spack/repos/builtin/packages/enca/package.py
index 9324a22652..13e44fbe1f 100644
--- a/var/spack/repos/builtin/packages/enca/package.py
+++ b/var/spack/repos/builtin/packages/enca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/enchant/package.py b/var/spack/repos/builtin/packages/enchant/package.py
index 4592a2a671..3666a3616e 100644
--- a/var/spack/repos/builtin/packages/enchant/package.py
+++ b/var/spack/repos/builtin/packages/enchant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/energyplus/package.py b/var/spack/repos/builtin/packages/energyplus/package.py
index 13b1d5b745..0802aca847 100644
--- a/var/spack/repos/builtin/packages/energyplus/package.py
+++ b/var/spack/repos/builtin/packages/energyplus/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+from spack import *
+
class Energyplus(Package):
"""EnergyPlus is a whole building energy simulation program that engineers,
diff --git a/var/spack/repos/builtin/packages/entrezdirect/package.py b/var/spack/repos/builtin/packages/entrezdirect/package.py
index 038a57035f..e75d9fc762 100644
--- a/var/spack/repos/builtin/packages/entrezdirect/package.py
+++ b/var/spack/repos/builtin/packages/entrezdirect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/entt/package.py b/var/spack/repos/builtin/packages/entt/package.py
index 9d06460a31..704ba4456f 100644
--- a/var/spack/repos/builtin/packages/entt/package.py
+++ b/var/spack/repos/builtin/packages/entt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/environment-modules/package.py b/var/spack/repos/builtin/packages/environment-modules/package.py
index c6b023c251..9a6888d50a 100644
--- a/var/spack/repos/builtin/packages/environment-modules/package.py
+++ b/var/spack/repos/builtin/packages/environment-modules/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,14 @@ class EnvironmentModules(Package):
"""
homepage = 'https://cea-hpc.github.io/modules/'
- url = 'https://github.com/cea-hpc/modules/releases/download/v4.6.1/modules-4.6.1.tar.gz'
+ url = 'https://github.com/cea-hpc/modules/releases/download/v5.0.0/modules-5.0.0.tar.gz'
maintainers = ['xdelaruelle']
+ version('5.0.0', sha256='428e23ac51a6006605de65ed9114d544a5506cb4b6bfb03d8522778f13e4f7ea')
+ version('4.8.0', sha256='d6b45cadc2146ed5e0b25a96d44643ad516054eb7745acb14a1dc7bf30744f6e')
+ version('4.7.1', sha256='ee7ecd62bbbde6d51e30788a97800c39e72515b6a910839fb84041b35ba42b4d')
+ version('4.7.0', sha256='3ab0a649e23b4dd00963e4cae60e573b449194ecb4035c5ce487330b272b4d06')
version('4.6.1', sha256='3445df39abe5838b94552b53e7dbff56ada8347b9fdc6c04a72297d5b04af76f')
version('4.6.0', sha256='b42b14bb696bf1075ade1ecaefe7735dbe411db4c29031a1dae549435eafa946')
version('4.5.3', sha256='7cbd9c61e6dcd82a3f81b5ced92c3cf84ecc5489639bdfc94869256383a2c915')
@@ -45,19 +49,14 @@ class EnvironmentModules(Package):
# Dependencies:
depends_on('tcl', type=('build', 'link', 'run'))
- depends_on('tcl@8.4:', type=('build', 'link', 'run'), when='@4.0.0:')
+ depends_on('tcl@8.4:', type=('build', 'link', 'run'), when='@4.0.0:4.8')
+ depends_on('tcl@8.5:', type=('build', 'link', 'run'), when='@5.0.0:')
def install(self, spec, prefix):
tcl = spec['tcl']
config_args = [
"--prefix=" + prefix,
- "--without-tclx",
- "--with-tclx-ver=0.0",
- # It looks for tclConfig.sh
- "--with-tcl=" + tcl.libs.directories[0],
- "--with-tcl-ver={0}".format(tcl.version.up_to(2)),
- '--disable-versioning',
'--datarootdir=' + prefix.share
]
@@ -72,19 +71,19 @@ class EnvironmentModules(Package):
if '~X' in spec:
config_args = ['--without-x'] + config_args
- if '@4.4.0:' in self.spec:
+ if '@4.4.0:4.8' in self.spec:
config_args.extend([
'--with-icase=search',
'--enable-extended-default',
'--enable-advanced-version-spec'
])
- if '@4.3.0:' in self.spec:
+ if '@4.3.0:4.8' in self.spec:
config_args.extend([
'--enable-color'
])
- if '@4.2.0:' in self.spec:
+ if '@4.2.0:4.8' in self.spec:
config_args.extend([
'--enable-auto-handling'
])
@@ -97,9 +96,13 @@ class EnvironmentModules(Package):
'--with-quarantine-vars=LD_LIBRARY_PATH LD_PRELOAD'
])
+ if '@4.0.0:4.8' in self.spec:
+ config_args.extend([
+ '--disable-compat-version'
+ ])
+
if '@4.0.0:' in self.spec:
config_args.extend([
- '--disable-compat-version',
'--with-tclsh={0}'.format(tcl.prefix.bin.tclsh)
])
@@ -110,6 +113,16 @@ class EnvironmentModules(Package):
'CPPFLAGS=-DUSE_INTERP_ERRORLINE'
])
+ if '@:3.2' in self.spec:
+ config_args.extend([
+ "--without-tclx",
+ "--with-tclx-ver=0.0",
+ # It looks for tclConfig.sh
+ "--with-tcl=" + tcl.libs.directories[0],
+ "--with-tcl-ver={0}".format(tcl.version.up_to(2)),
+ '--disable-versioning'
+ ])
+
configure(*config_args)
make()
make('install')
diff --git a/var/spack/repos/builtin/packages/enzo/for_aarch64.patch b/var/spack/repos/builtin/packages/enzo/for_aarch64.patch
new file mode 100644
index 0000000000..6e1672bda0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/enzo/for_aarch64.patch
@@ -0,0 +1,11 @@
+--- spack-src/src/enzo/FindSuperSourceByPosition.C.bak 2019-09-19 21:35:51.000000000 +0900
++++ spack-src/src/enzo/FindSuperSourceByPosition.C 2021-02-17 11:58:28.574066786 +0900
+@@ -1,7 +1,7 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <math.h>
+-#include <xmmintrin.h>
++#include <sse2neon.h>
+ #include "ErrorExceptions.h"
+ #include "macros_and_parameters.h"
+ #include "typedefs.h"
diff --git a/var/spack/repos/builtin/packages/enzo/package.py b/var/spack/repos/builtin/packages/enzo/package.py
new file mode 100644
index 0000000000..e242d0da12
--- /dev/null
+++ b/var/spack/repos/builtin/packages/enzo/package.py
@@ -0,0 +1,68 @@
+# Copyright 2013-2021 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 Enzo(MakefilePackage):
+ """The Enzo adaptive mesh-refinement simulation code."""
+
+ homepage = "https://enzo-project.org/"
+ url = "https://github.com/enzo-project/enzo-dev/archive/enzo-2.6.1.tar.gz"
+ git = "https://github.com/enzo-project/enzo-dev.git"
+
+ version('main', branch='main')
+ version('master', branch='main', deprecated=True)
+ version('2.6.1', sha256='280270accfc1ddb60e92cc98ca538a3e5787e8cc93ed58fb5c3ab75db8c4b048')
+
+ depends_on('mpi')
+ depends_on('hdf5~mpi')
+ depends_on('sse2neon', when='target=aarch64:')
+
+ patch('for_aarch64.patch', when='target=aarch64:')
+
+ # https://github.com/enzo-project/enzo-dev/pull/158
+ patch('https://github.com/enzo-project/enzo-dev/commit/0191ff5ad9ad2c7639d44823e84cd0115e7a2970.patch', sha256='01328a5f5fe72ac5af31661deb6891ea160264b67a470d6ce91b71b001845810', when='@2.6.1 ^hdf5@1.12.0:')
+
+ def flag_handler(self, name, flags):
+ if name == 'fflags':
+ if self.spec.satisfies('%gcc@10:'):
+ if flags is None:
+ flags = []
+ flags.append('-fallow-argument-mismatch')
+
+ return (flags, None, None)
+
+ def edit(self, spec, prefix):
+ configure = Executable('./configure')
+ configure()
+
+ with working_dir('src/enzo'):
+ copy('Make.mach.linux-gnu', 'Make.mach.spack')
+ filter_file('^MACH_FILE.*',
+ 'MACH_FILE = Make.mach.spack',
+ 'Make.mach.spack')
+ filter_file('^LOCAL_HDF5_INSTALL.*',
+ 'LOCAL_HDF5_INSTALL = {0}'.format(spec['hdf5'].prefix),
+ 'Make.mach.spack')
+ filter_file('^LOCAL_GRACKLE_INSTALL.*',
+ 'LOCAL_GRACKLE_INSTALL =',
+ 'Make.mach.spack')
+ filter_file('^LOCAL_HYPRE_INSTALL.*',
+ 'LOCAL_HYPRE_INSTALL =',
+ 'Make.mach.spack')
+
+ def build(self, spec, prefix):
+ with working_dir('src/enzo'):
+ make('machine-spack')
+ make('opt-high')
+ make('show-config')
+ make()
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
+ install_tree('doc', prefix.doc)
+ install_tree('input', prefix.input)
+ install_tree('run', prefix.run)
diff --git a/var/spack/repos/builtin/packages/enzyme/package.py b/var/spack/repos/builtin/packages/enzyme/package.py
new file mode 100644
index 0000000000..2e43e2c970
--- /dev/null
+++ b/var/spack/repos/builtin/packages/enzyme/package.py
@@ -0,0 +1,69 @@
+
+# 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 Enzyme(CMakePackage):
+ """
+ The Enzyme project is a tool for performing reverse-mode automatic
+ differentiation (AD) of statically-analyzable LLVM IR.
+ This allows developers to use Enzyme to automatically create gradients
+ of their source code without much additional work.
+ """
+
+ homepage = "https://enzyme.mit.edu"
+ url = "https://github.com/wsmoses/Enzyme/archive/v0.0.15.tar.gz"
+ list_url = "https://github.com/wsmoses/Enzyme/releases"
+ git = "https://github.com/wsmoses/Enzyme"
+
+ maintainers = ['wsmoses', 'vchuravy', 'tgymnich']
+
+ root_cmakelists_dir = 'enzyme'
+
+ version('main', branch='main')
+ version('0.0.15',
+ sha256='1ec27db0d790c4507b2256d851b256bf7e074eec933040e9e375d6e352a3c159')
+ version('0.0.14',
+ sha256='740641eeeeadaf47942ac88cc52e62ddc0e8c25767a501bed36ec241cf258b8d')
+ version('0.0.13',
+ sha256='d4a53964ec1f763772db2c56e6734269b7656c8b2ecd41fa7a41315bcd896b5a')
+
+ variant(
+ 'build_type',
+ default='Release',
+ description='CMake build type',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel')
+ )
+
+ depends_on('llvm@7:12')
+ depends_on('cmake@3.9:', type='build')
+
+ def cmake_args(self):
+ spec = self.spec
+ args = [
+ "-DLLVM_DIR=" + spec["llvm"].prefix.lib + "/cmake/llvm"
+ ]
+ return args
+
+ @property
+ def libs(self):
+ ver = self.spec['llvm'].version.up_to(1)
+ libs = [
+ 'LLVMEnzyme-{0}'.format(ver),
+ 'ClangEnzyme-{0}'.format(ver)
+ ]
+ return find_libraries(libs, root=self.prefix, recursive=True)
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ # Get the LLVMEnzyme and ClangEnzyme lib paths
+ llvm, clang = self.libs
+
+ if "LLVMEnzyme-" in clang:
+ llvm, clang = clang, llvm
+
+ env.set('LLVMENZYME', llvm)
+ env.set('CLANGENZYME', clang)
diff --git a/var/spack/repos/builtin/packages/eospac/cpuinfo_comp_flags_key.patch b/var/spack/repos/builtin/packages/eospac/cpuinfo_comp_flags_key.patch
new file mode 100644
index 0000000000..178fd5293f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eospac/cpuinfo_comp_flags_key.patch
@@ -0,0 +1,23 @@
+--- a/Source/config/Makefile.-linux-gnu.hashes 2019-10-12 12:16:17.000000000 -0600
++++ b/Source/config/Makefile.-linux-gnu.hashes 2020-09-25 15:14:45.990734000 -0600
+@@ -267,9 +267,9 @@
+ ifneq ($(strip $(CPUFLAGS)),)
+
+ KEYLIST = $(call keys,_F90-CPUINFO_COMP_FLAGS)
+- MYKEYS = $(addprefix $(F90)-$(_F90_MAJOR_VERSION)-,$(CPUFLAGS))
++ MYKEYS = $(addprefix $(notdir $(F90))-$(_F90_MAJOR_VERSION)-,$(CPUFLAGS))
+ SHORTCUT = $(filter $(MYKEYS),$(KEYLIST))
+- OTHER = $(subst $(F90)-$(_F90_MAJOR_VERSION)-,,$(filter-out $(SHORTCUT),$(MYKEYS)))
++ OTHER = $(subst $(notdir $(F90))-$(_F90_MAJOR_VERSION)-,,$(filter-out $(SHORTCUT),$(MYKEYS)))
+ # $(warning CPUFLAGS : "$(CPUFLAGS)")
+ # $(warning KEYLIST : $(KEYLIST))
+ # $(warning MYKEYS : $(MYKEYS))
+@@ -284,7 +284,7 @@
+
+ ifeq ($(ALT_SUBDIR_Key1),craype-mic-knl)
+ # define the default _CPUINFO_FLAGS for the craype-mic-knl
+- _CPUINFO_FLAGS += $(call get,_F90-CPUINFO_COMP_FLAGS,$(F90)-$(_F90_MAJOR_VERSION)-knl)
++ _CPUINFO_FLAGS += $(call get,_F90-CPUINFO_COMP_FLAGS,$(notdir $(F90))-$(_F90_MAJOR_VERSION)-knl)
+ else
+ # define the default _CPUINFO_FLAGS
+ _CPUINFO_FLAGS += $(call get,_F90-CPUINFO_COMP_FLAGS,$(notdir $(F90)-$(_F90_MAJOR_VERSION)-$(lastword $(_SUPPORTED_CPUINFO_FLAGS))))
diff --git a/var/spack/repos/builtin/packages/eospac/package.py b/var/spack/repos/builtin/packages/eospac/package.py
index bb0f06085f..1f17d41137 100644
--- a/var/spack/repos/builtin/packages/eospac/package.py
+++ b/var/spack/repos/builtin/packages/eospac/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,24 @@ class Eospac(Package):
library.
"""
- homepage = "http://laws.lanl.gov/projects/data/eos.html"
- list_url = "http://laws.lanl.gov/projects/data/eos/eospacReleases.php"
+ homepage = "https://laws.lanl.gov/projects/data/eos.html"
+ list_url = "https://laws.lanl.gov/projects/data/eos/eospacReleases.php"
+ maintainers = ['KineticTheory']
- version('6.4.1', sha256='2310c49bd7a60cad41d2cb1059c5f0a1904f0c778b164937182382df326ca003', preferred=True,
+ # An EOSPAC release labeled "beta" doesn't always imply that the
+ # release is less suitable for production. According to the
+ # current EOSPAC release procedure, even a release that only fixes
+ # known bugs in a previous stable release will appear first as a
+ # new beta.
+ version('6.5.0beta',
+ sha256='42e6d491aaf296e4d6ab946481aaafd64b0a4e9801fc2ff098cc16aa118f54c8',
+ url="https://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.5.0beta_859ce5b1b8c4106057ca61d03a6c9c713a7f0328.tgz")
+ version('6.4.2', preferred=True,
+ sha256='13627a5c94d3a456659d1bba0f3cec157380933fbd401e13e25906166150a252',
+ url="https://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.2_e2f7906a0863932e3d65d329f789c4b90c6be58d.tgz")
+ version('6.4.2beta', sha256='635b94f1ec7558deca92a3858c92db0f4437170252bb114cbdb809b74b6ee870',
+ url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.2beta_a62baf70708536f6fb5486e315c730fa76c1f6b5.tgz")
+ version('6.4.1', sha256='2310c49bd7a60cad41d2cb1059c5f0a1904f0c778b164937182382df326ca003',
url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.1_0cc1bc21a8bb1adadbae0dd3a2135790e8119320.tgz")
version('6.4.1beta', sha256='479074a7be724760f8f1f90a8673f6197b7c5aa1ff76242ecf3790c9016e08c3',
url="http://laws.lanl.gov/projects/data/eos/get_file.php?package=eospac&filename=eospac_v6.4.1beta_b651322c74cf5729732afd5d77c66c41d677be5e.tgz")
@@ -37,6 +51,9 @@ class Eospac(Package):
# This patch allows the use of spack's compile wrapper 'flang'
patch('flang.patch', when='@:6.4.0beta.2%clang')
patch('frt.patch', when='%fj')
+ # This patch corrects EOSPAC's selection of compiler flags when
+ # compilers are specified using absolute pathnames.
+ patch('cpuinfo_comp_flags_key.patch', when='@:6.4.1,6.4.2beta')
def install(self, spec, prefix):
with working_dir('Source'):
diff --git a/var/spack/repos/builtin/packages/eq-r/package.py b/var/spack/repos/builtin/packages/eq-r/package.py
index 8270489368..ab79ff0e51 100644
--- a/var/spack/repos/builtin/packages/eq-r/package.py
+++ b/var/spack/repos/builtin/packages/eq-r/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class EqR(AutotoolsPackage):
"""
diff --git a/var/spack/repos/builtin/packages/er/package.py b/var/spack/repos/builtin/packages/er/package.py
index 343a08ff91..131269b483 100644
--- a/var/spack/repos/builtin/packages/er/package.py
+++ b/var/spack/repos/builtin/packages/er/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,25 +10,30 @@ class Er(CMakePackage):
"""Encoding and redundancy on a file set"""
homepage = "https://github.com/ecp-veloc/er"
- url = "https://github.com/ecp-veloc/er/archive/v0.0.3.zip"
+ url = "https://github.com/ecp-veloc/er/archive/v0.0.3.tar.gz"
git = "https://github.com/ecp-veloc/er.git"
tags = ['ecp']
- version('master', branch='master')
- version('0.0.3', sha256='9aa08f9fe70e42f0da27a5d90d4643b520d61f24742303bf016322823b3c4d26')
+ version('main', branch='main')
+ version('0.0.4', sha256='c456d34719bb57774adf6d7bc2fa9917ecb4a9de442091023c931a2cb83dfd37')
+ version('0.0.3', sha256='243b2b46ea274e17417ef5873c3ed7ba16dacdfdaf7053d1de5434e300de796b')
depends_on('mpi')
- depends_on('kvtree')
+ depends_on('kvtree+mpi')
+ depends_on('rankstr', when='@0.0.4:')
depends_on('redset')
depends_on('shuffile')
def cmake_args(self):
+ spec = self.spec
args = []
- args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc)
- if self.spec.satisfies('platform=cray'):
+ args.append("-DMPI_C_COMPILER=%s" % spec['mpi'].mpicc)
+ if spec.satisfies('platform=cray'):
args.append("-DER_LINK_STATIC=ON")
- args.append("-DWITH_KVTREE_PREFIX=%s" % self.spec['kvtree'].prefix)
- args.append("-DWITH_REDSET_PREFIX=%s" % self.spec['redset'].prefix)
- args.append("-DWITH_SHUFFILE_PREFIX=%s" % self.spec['shuffile'].prefix)
+ args.append("-DWITH_KVTREE_PREFIX=%s" % spec['kvtree'].prefix)
+ args.append("-DWITH_REDSET_PREFIX=%s" % spec['redset'].prefix)
+ args.append("-DWITH_SHUFFILE_PREFIX=%s" % spec['shuffile'].prefix)
+ if spec.satisfies('@0.0.4:'):
+ args.append("-DWITH_RANKSTR_PREFIX=%s" % spec['rankstr'].prefix)
return args
diff --git a/var/spack/repos/builtin/packages/erfa/package.py b/var/spack/repos/builtin/packages/erfa/package.py
index b500089352..0a6a8b54a1 100644
--- a/var/spack/repos/builtin/packages/erfa/package.py
+++ b/var/spack/repos/builtin/packages/erfa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/erlang/package.py b/var/spack/repos/builtin/packages/erlang/package.py
index 02d097fbd3..913774b562 100644
--- a/var/spack/repos/builtin/packages/erlang/package.py
+++ b/var/spack/repos/builtin/packages/erlang/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,12 @@ class Erlang(AutotoolsPackage):
"""
homepage = "https://erlang.org/"
- url = "https://erlang.org/download/otp_src_22.2.tar.gz"
+ url = "https://erlang.org/download/otp_src_23.3.tar.gz"
- version('23.0', sha256='42dcf3c721f4de59fe74ae7b65950c2174c46dc8d1dd4e27c0594d86f606a635')
+ version('23.3', sha256='3c888d8f46124e134b75a9ba5d845f079020b7198ed2de64411e183d07e9002a')
+ version('23.2', sha256='40e03428826c92e409e4f1510f9c0539eafb3ac49d6c2f607f4fa274d11a8928')
+ version('23.1', sha256='cb5b7246eeaac9298c51c9915386df2f784e82a3f7ff93b68453591f0b370400')
+ version('23.0', sha256='42dcf3c721f4de59fe74ae7b65950c2174c46dc8d1dd4e27c0594d86f606a635')
version('22.2', sha256='89c2480cdac566065577c82704a48e10f89cf2e6ca5ab99e1cf80027784c678f')
version('22.1', sha256='cd33a102cbac6dd1c7b1e7a9a0d82d13587771fac4e96e8fff92e403d15e32c8')
version('22.0', sha256='042e168d74055a501c75911694758a30597446accd8c82ec569552b9e9fcd272')
diff --git a/var/spack/repos/builtin/packages/ermod/package.py b/var/spack/repos/builtin/packages/ermod/package.py
index 38c2ab6963..51d5ab7c9e 100644
--- a/var/spack/repos/builtin/packages/ermod/package.py
+++ b/var/spack/repos/builtin/packages/ermod/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/erne/package.py b/var/spack/repos/builtin/packages/erne/package.py
index 3a9e276851..5d5de68350 100644
--- a/var/spack/repos/builtin/packages/erne/package.py
+++ b/var/spack/repos/builtin/packages/erne/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/es-shell/package.py b/var/spack/repos/builtin/packages/es-shell/package.py
index c8f7bcc83c..23bec563f5 100644
--- a/var/spack/repos/builtin/packages/es-shell/package.py
+++ b/var/spack/repos/builtin/packages/es-shell/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,9 +13,10 @@ class EsShell(AutotoolsPackage):
implementation is derived from Byron Rakitzis's public domain
implementation of rc."""
- homepage = "http://wryun.github.io/es-shell/"
+ homepage = "https://wryun.github.io/es-shell/"
url = "https://github.com/wryun/es-shell/releases/download/v0.9.1/es-0.9.1.tar.gz"
version('0.9.1', sha256='b0b41fce99b122a173a06b899a4d92e5bd3cc48b227b2736159f596a58fff4ba')
depends_on('readline')
+ depends_on('yacc')
diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py
index 3055b4446e..3f65662ae7 100644
--- a/var/spack/repos/builtin/packages/esmf/package.py
+++ b/var/spack/repos/builtin/packages/esmf/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Esmf(MakefilePackage):
"""The Earth System Modeling Framework (ESMF) is high-performance, flexible
@@ -15,12 +16,15 @@ class Esmf(MakefilePackage):
and utilities for developing individual models."""
homepage = "https://www.earthsystemcog.org/projects/esmf/"
- url = "http://www.earthsystemmodeling.org/esmf_releases/public/ESMF_7_1_0r/esmf_7_1_0r_src.tar.gz"
+ url = 'https://github.com/esmf-org/esmf/archive/ESMF_8_0_1.tar.gz'
+ version('8.1.1', sha256='58c2e739356f21a1b32673aa17a713d3c4af9d45d572f4ba9168c357d586dc75')
+ version('8.0.1', sha256='9172fb73f3fe95c8188d889ee72fdadb4f978b1d969e1d8e401e8d106def1d84')
+ version('8.0.0', sha256='051dca45f9803d7e415c0ea146df15ce487fb55f0fce18ca61d96d4dba0c8774')
version('7.1.0r', sha256='ae9a5edb8d40ae97a35cbd4bd00b77061f995c77c43d36334dbb95c18b00a889')
variant('mpi', default=True, description='Build with MPI support')
- variant('lapack', default=True, description='Build with LAPACK support')
+ variant('external-lapack', default=False, description='Build with external LAPACK support')
variant('netcdf', default=True, description='Build with NetCDF support')
variant('pnetcdf', default=True, description='Build with pNetCDF support')
variant('xerces', default=True, description='Build with Xerces support')
@@ -33,7 +37,7 @@ class Esmf(MakefilePackage):
# Optional dependencies
depends_on('mpi', when='+mpi')
- depends_on('lapack@3:', when='+lapack')
+ depends_on('lapack@3:', when='+external-lapack')
depends_on('netcdf-c@3.6:', when='+netcdf')
depends_on('netcdf-fortran@3.6:', when='+netcdf')
depends_on('parallel-netcdf@1.2.0:', when='+pnetcdf')
@@ -68,7 +72,10 @@ class Esmf(MakefilePackage):
chmod('+x', 'scripts/libs.mvapich2f90')
def url_for_version(self, version):
- return "http://www.earthsystemmodeling.org/esmf_releases/public/ESMF_{0}/esmf_{0}_src.tar.gz".format(version.underscored)
+ if version < Version('8.0.0'):
+ return "http://www.earthsystemmodeling.org/esmf_releases/public/ESMF_{0}/esmf_{0}_src.tar.gz".format(version.underscored)
+ else:
+ return "https://github.com/esmf-org/esmf/archive/ESMF_{0}.tar.gz".format(version.underscored)
def edit(self, spec, prefix):
# Installation instructions can be found at:
@@ -169,7 +176,9 @@ class Esmf(MakefilePackage):
os.environ['ESMF_CXXLINKLIBS'] = '-lmpifort'
elif '^openmpi' in spec:
os.environ['ESMF_COMM'] = 'openmpi'
- elif '^intel-parallel-studio+mpi' in spec or '^intel-mpi' in spec:
+ elif '^intel-parallel-studio+mpi' in spec or \
+ '^intel-mpi' in spec or \
+ '^intel-oneapi-mpi' in spec:
os.environ['ESMF_COMM'] = 'intelmpi'
else:
# Force use of the single-processor MPI-bypass library.
@@ -179,7 +188,7 @@ class Esmf(MakefilePackage):
# LAPACK #
##########
- if '+lapack' in spec:
+ if '+external-lapack' in spec:
# A system-dependent external LAPACK/BLAS installation is used
# to satisfy the external dependencies of the LAPACK-dependent
# ESMF code.
@@ -193,8 +202,7 @@ class Esmf(MakefilePackage):
# to the application.
os.environ['ESMF_LAPACK_LIBS'] = spec['lapack'].libs.link_flags # noqa
else:
- # Disables LAPACK-dependent code.
- os.environ['ESMF_LAPACK'] = 'OFF'
+ os.environ['ESMF_LAPACK'] = 'internal'
##########
# NetCDF #
diff --git a/var/spack/repos/builtin/packages/espanso/package.py b/var/spack/repos/builtin/packages/espanso/package.py
index b820a14be8..0c946e23d9 100644
--- a/var/spack/repos/builtin/packages/espanso/package.py
+++ b/var/spack/repos/builtin/packages/espanso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/essl/package.py b/var/spack/repos/builtin/packages/essl/package.py
index 29ba3958e7..d0442ede00 100644
--- a/var/spack/repos/builtin/packages/essl/package.py
+++ b/var/spack/repos/builtin/packages/essl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/etcd/package.py b/var/spack/repos/builtin/packages/etcd/package.py
index fa21e6965b..c67409e324 100644
--- a/var/spack/repos/builtin/packages/etcd/package.py
+++ b/var/spack/repos/builtin/packages/etcd/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
+from spack import *
+
class Etcd(Package):
"""etcd is a distributed reliable key-value store for the most
diff --git a/var/spack/repos/builtin/packages/ethminer/package.py b/var/spack/repos/builtin/packages/ethminer/package.py
index bc57f2630d..1d33f32520 100644
--- a/var/spack/repos/builtin/packages/ethminer/package.py
+++ b/var/spack/repos/builtin/packages/ethminer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -28,8 +28,8 @@ class Ethminer(CMakePackage):
depends_on('mesa', when='+opencl')
def cmake_args(self):
- spec = self.spec
return [
- '-DETHASHCL=%s' % ('YES' if '+opencl' in spec else 'NO'),
- '-DETHASHCUDA=%s' % ('YES' if '+cuda' in spec else 'NO'),
- '-DETHSTRATUM=%s' % ('YES' if '+stratum' in spec else 'NO')]
+ self.define_from_variant('ETHASHCL', 'opencl'),
+ self.define_from_variant('ETHASHCUDA', 'cuda'),
+ self.define_from_variant('ETHSTRATUM', 'stratum')
+ ]
diff --git a/var/spack/repos/builtin/packages/ethtool/package.py b/var/spack/repos/builtin/packages/ethtool/package.py
index bbf53f505f..3b7337ad43 100644
--- a/var/spack/repos/builtin/packages/ethtool/package.py
+++ b/var/spack/repos/builtin/packages/ethtool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/etsf-io/package.py b/var/spack/repos/builtin/packages/etsf-io/package.py
index a878894db3..b82c345184 100644
--- a/var/spack/repos/builtin/packages/etsf-io/package.py
+++ b/var/spack/repos/builtin/packages/etsf-io/package.py
@@ -1,9 +1,7 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 *
@@ -17,11 +15,13 @@ class EtsfIo(Package):
quantum-chemical applications relying upon Density Functional Theory (DFT).
"""
- homepage = "http://www.etsf.eu/resources/software/libraries_and_tools"
+ homepage = "https://github.com/ElectronicStructureLibrary/libetsf_io"
url = "https://launchpad.net/etsf-io/1.0/1.0.4/+download/etsf_io-1.0.4.tar.gz"
version('1.0.4', sha256='3140c2cde17f578a0e6b63acb27a5f6e9352257a1371a17b9c15c3d0ef078fa4')
+ variant('mpi', default=True, description='Add MPI support')
+
depends_on("netcdf-fortran")
depends_on("hdf5+mpi~cxx", when='+mpi') # required for NetCDF-4 support
diff --git a/var/spack/repos/builtin/packages/evemu/package.py b/var/spack/repos/builtin/packages/evemu/package.py
index 09041d6f94..98f203ffff 100644
--- a/var/spack/repos/builtin/packages/evemu/package.py
+++ b/var/spack/repos/builtin/packages/evemu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/everytrace-example/package.py b/var/spack/repos/builtin/packages/everytrace-example/package.py
index 6ba1271522..1d7b89d53a 100644
--- a/var/spack/repos/builtin/packages/everytrace-example/package.py
+++ b/var/spack/repos/builtin/packages/everytrace-example/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/everytrace/package.py b/var/spack/repos/builtin/packages/everytrace/package.py
index f07607fc12..9e0a3a3a1a 100644
--- a/var/spack/repos/builtin/packages/everytrace/package.py
+++ b/var/spack/repos/builtin/packages/everytrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,8 +26,7 @@ class Everytrace(CMakePackage):
depends_on('mpi', when='+mpi')
def cmake_args(self):
- spec = self.spec
return [
- '-DUSE_MPI=%s' % ('YES' if '+mpi' in spec else 'NO'),
- '-DUSE_FORTRAN=%s' % ('YES' if '+fortran' in spec else 'NO'),
- '-DUSE_CXX=%s' % ('YES' if '+cxx' in spec else 'NO')]
+ self.define_from_variant('USE_MPI', 'mpi'),
+ self.define_from_variant('USE_FORTRAN', 'fortran'),
+ self.define_from_variant('USE_CXX', 'cxx')]
diff --git a/var/spack/repos/builtin/packages/evieext/package.py b/var/spack/repos/builtin/packages/evieext/package.py
index a926727e5d..7215134036 100644
--- a/var/spack/repos/builtin/packages/evieext/package.py
+++ b/var/spack/repos/builtin/packages/evieext/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Evieext(AutotoolsPackage, XorgPackage):
This extension defines a protocol for a client to determine information
about core X visuals beyond what the core protocol provides."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/evieproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/evieproto"
xorg_mirror_path = "proto/evieext-1.1.1.tar.gz"
version('1.1.1', sha256='e58080443c279dfb5a23c37076922df535e42bf209d21a1f3e88442cc01b4a0e')
diff --git a/var/spack/repos/builtin/packages/evtgen/package.py b/var/spack/repos/builtin/packages/evtgen/package.py
index 641d3d5795..b827a36fd9 100644
--- a/var/spack/repos/builtin/packages/evtgen/package.py
+++ b/var/spack/repos/builtin/packages/evtgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,35 +6,68 @@
from spack import *
-class Evtgen(AutotoolsPackage):
+class Evtgen(CMakePackage):
""" EvtGen is a Monte Carlo event generator that simulates
the decays of heavy flavour particles, primarily B and D mesons. """
homepage = "https://evtgen.hepforge.org/"
- url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/MCGeneratorsTarFiles/evtgen-R01-07-00.tar.gz"
+ url = "https://evtgen.hepforge.org/downloads?f=EvtGen-02.00.00.tar.gz"
+
+ tags = ['hep']
maintainers = ['vvolkl']
- version('02-00-00', sha256='02372308e1261b8369d10538a3aa65fe60728ab343fcb64b224dac7313deb719')
- version('01-07-00', sha256='2648f1e2be5f11568d589d2079f22f589c283a2960390bbdb8d9d7f71bc9c014', preferred=True)
+ version('02.00.00', sha256='02372308e1261b8369d10538a3aa65fe60728ab343fcb64b224dac7313deb719')
+ # switched to cmake in 02.00.00
+ version('01.07.00', sha256='2648f1e2be5f11568d589d2079f22f589c283a2960390bbdb8d9d7f71bc9c014', deprecated=True)
variant('pythia8', default=True, description='Build with pythia8')
variant('tauola', default=False, description='Build with tauola')
variant('photos', default=False, description='Build with photos')
+ variant('hepmc3', default=False, description='Link with hepmc3 (instead of hepmc)')
- patch("g2c.patch")
+ patch("g2c.patch", when='@01.07.00')
- depends_on('hepmc@:2.99.99')
+ depends_on('hepmc', when='~hepmc3')
+ depends_on('hepmc3', when='+hepmc3')
depends_on("pythia8", when="+pythia8")
- depends_on("tauola", when="+tauola")
- depends_on("photos", when="+photos")
+ depends_on("tauola~hepmc3", when="+tauola~hepmc3")
+ depends_on("photos~hepmc3", when="+photos~hepmc3")
+ depends_on("tauola+hepmc3", when="+tauola+hepmc3")
+ depends_on("photos+hepmc3", when="+photos+hepmc3")
conflicts("^pythia8+evtgen", when="+pythia8",
msg="Building pythia with evtgen bindings and "
"evtgen with pythia bindings results in a circular dependency "
"that cannot be resolved at the moment! "
"Use evtgen+pythia8^pythia8~evtgen.")
+ conflicts('+hepmc3', when='@:01.99.99',
+ msg='hepmc3 support was added in 02.00.00')
+
+ def cmake_args(self):
+ args = []
+
+ args.append(self.define_from_variant('EVTGEN_PYTHIA', 'pythia8'))
+ args.append(self.define_from_variant('EVTGEN_TAUOLA', 'tauola'))
+ args.append(self.define_from_variant('EVTGEN_PHOTOS', 'photos'))
+ args.append(self.define_from_variant('EVTGEN_HEPMC3', 'hepmc3'))
+
+ return args
+
+ # Taken from AutotoolsPackage
+ def configure(self, spec, prefix):
+ """Runs configure with the arguments specified in
+ :py:meth:`~.AutotoolsPackage.configure_args`
+ and an appropriately set prefix.
+ """
+ options = getattr(self, 'configure_flag_args', [])
+ options += ['--prefix={0}'.format(prefix)]
+ options += self.configure_args()
+
+ with working_dir(self.build_directory, create=True):
+ inspect.getmodule(self).configure(*options)
+ @when('@:01.99.99')
def configure_args(self):
args = []
@@ -48,11 +81,23 @@ class Evtgen(AutotoolsPackage):
return args
+ @when('@:01.99.99')
+ def cmake(self, spec, prefix):
+ pass
+
+ @when('@:01.99.99')
def build(self, spec, prefix):
+ self.configure(spec, prefix)
# avoid parallel compilation errors
# due to libext_shared depending on lib_shared
- make('lib_shared')
- make('all')
+ with working_dir(self.build_directory):
+ make('lib_shared')
+ make('all')
+
+ @when('@:01.99.99')
+ def install(self, spec, prefix):
+ with working_dir(self.build_directory):
+ make('install')
def setup_run_environment(self, env):
env.set("EVTGEN", self.prefix.share)
diff --git a/var/spack/repos/builtin/packages/exa/package.py b/var/spack/repos/builtin/packages/exa/package.py
index e6a0fe39a4..50809bc6c4 100644
--- a/var/spack/repos/builtin/packages/exa/package.py
+++ b/var/spack/repos/builtin/packages/exa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/exabayes/package.py b/var/spack/repos/builtin/packages/exabayes/package.py
index c8ef56717d..8440b7c450 100644
--- a/var/spack/repos/builtin/packages/exabayes/package.py
+++ b/var/spack/repos/builtin/packages/exabayes/package.py
@@ -1,10 +1,8 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Exabayes(AutotoolsPackage):
"""ExaBayes is a software package for Bayesian tree inference. It is
@@ -13,6 +11,7 @@ class Exabayes(AutotoolsPackage):
homepage = "https://sco.h-its.org/exelixis/web/software/exabayes/"
url = "https://sco.h-its.org/exelixis/resource/download/software/exabayes-1.5.tar.gz"
+ version('1.5.1', sha256='f75ce8d5cee4d241cadacd0f5f5612d783b9e9babff2a99c7e0c3819a94bbca9')
version('1.5', sha256='e401f1b4645e67e8879d296807131d0ab79bba81a1cd5afea14d7c3838b095a2')
variant('mpi', default=True, description='Enable MPI parallel support')
@@ -22,7 +21,7 @@ class Exabayes(AutotoolsPackage):
# ExaBayes manual states the program succesfully compiles with GCC, version
# 4.6 or greater, and Clang, version 3.2 or greater. The build fails when
# GCC 7.1.0 is used.
- conflicts('%gcc@:4.5.4, 7.1.0:')
+ conflicts('%gcc@:4.5.4, 7.1.0:', when='@:1.5.0')
conflicts('%clang@:3.1')
conflicts('^intel-mpi', when='+mpi')
conflicts('^intel-parallel-studio+mpi', when='+mpi')
diff --git a/var/spack/repos/builtin/packages/exago/package.py b/var/spack/repos/builtin/packages/exago/package.py
new file mode 100755
index 0000000000..1ffe2d7cbe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exago/package.py
@@ -0,0 +1,89 @@
+# Copyright 2013-2021 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 Exago(CMakePackage, CudaPackage):
+ """ExaGO is a package for solving large-scale power grid optimization
+ problems on parallel and distributed architectures, particularly targeted
+ for exascale machines."""
+
+ homepage = 'https://gitlab.pnnl.gov/exasgd/frameworks/exago'
+ git = 'https://gitlab.pnnl.gov/exasgd/frameworks/exago.git'
+
+ version('1.0.0', tag='v1.0.0')
+ version('0.99.2', tag='v0.99.2')
+ version('0.99.1', tag='v0.99.1')
+ version('master', branch='master')
+ version('develop', branch='develop')
+
+ # Progrmming model options
+ variant('mpi', default=True, description='Enable/Disable MPI')
+ variant('raja', default=False, description='Enable/Disable RAJA')
+
+ # Solver options
+ variant('hiop', default=False, description='Enable/Disable HiOp')
+ variant('petsc', default=True, description='Enable/Disable PETSc')
+ variant('ipopt', default=False, description='Enable/Disable IPOPT')
+
+ # Dependencides
+ depends_on('mpi', when='+mpi')
+ depends_on('blas')
+ depends_on('cuda', when='+cuda')
+ depends_on('raja', when='+raja')
+ depends_on('raja+cuda', when='+raja+cuda')
+ depends_on('umpire', when='+raja')
+
+ # Some allocator code in Umpire only works with static libs
+ depends_on('umpire+cuda~shared', when='+raja+cuda')
+
+ # For some versions of RAJA package, camp cuda variant does not get set
+ # correctly, so we must explicitly depend on it even though we don't use
+ # camp
+ depends_on('camp+cuda', when='+cuda')
+
+ depends_on('cmake@3.18:', type='build')
+
+ # HiOp dependency logic
+ depends_on('hiop+shared', when='+hiop')
+ depends_on('hiop+raja', when='+hiop+raja')
+ depends_on('hiop@0.3.99:', when='@0.99:+hiop')
+ depends_on('hiop+cuda', when='+hiop+cuda')
+ depends_on('hiop~mpi', when='+hiop~mpi')
+ depends_on('hiop+mpi', when='+hiop+mpi')
+
+ # Require PETSc < 3.15 per ExaGO issue #199
+ depends_on('petsc@3.13:3.14', when='+petsc')
+ depends_on('petsc~mpi', when='+petsc~mpi')
+ depends_on('ipopt', when='+ipopt')
+
+ flag_handler = build_system_flags
+
+ def cmake_args(self):
+ args = []
+ spec = self.spec
+
+ args.append("-DEXAGO_RUN_TESTS=ON")
+
+ args.append(self.define_from_variant('EXAGO_ENABLE_MPI', 'mpi'))
+ args.append(self.define_from_variant('EXAGO_ENABLE_RAJA', 'raja'))
+ args.append(self.define_from_variant('EXAGO_ENABLE_HIOP', 'hiop'))
+ args.append(self.define_from_variant('EXAGO_ENABLE_PETSC', 'petsc'))
+ args.append(self.define_from_variant('EXAGO_ENABLE_IPOPT', 'ipopt'))
+ args.append(self.define_from_variant('EXAGO_ENABLE_GPU', 'cuda'))
+ args.append(self.define_from_variant('EXAGO_ENABLE_CUDA', 'cuda'))
+
+ if '+cuda' in spec:
+ cuda_arch_list = spec.variants['cuda_arch'].value
+ cuda_arch = cuda_arch_list[0]
+ if cuda_arch != 'none':
+ args.append(
+ "-DCMAKE_CUDA_ARCHITECTURES={0}".format(cuda_arch))
+
+ if '+petsc' in spec:
+ args.append("-DPETSC_DIR='{0}'".format(spec['petsc'].prefix))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/examinimd/package.py b/var/spack/repos/builtin/packages/examinimd/package.py
index c8afa1c223..92c3880dcd 100644
--- a/var/spack/repos/builtin/packages/examinimd/package.py
+++ b/var/spack/repos/builtin/packages/examinimd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -56,7 +56,7 @@ class Examinimd(MakefilePackage):
targets.append('CXX = {0}'.format(self.spec['mpi'].mpicxx))
else:
targets.append('MPI=0')
- targets.append('CXX = {0}'.format('spack_cxx'))
+ targets.append('CXX = {0}'.format(spack_cxx))
return targets
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/examl/package.py b/var/spack/repos/builtin/packages/examl/package.py
index d5f115b9be..aff8e3ae4b 100644
--- a/var/spack/repos/builtin/packages/examl/package.py
+++ b/var/spack/repos/builtin/packages/examl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/exampm/package.py b/var/spack/repos/builtin/packages/exampm/package.py
index 64732c2eda..d952985077 100644
--- a/var/spack/repos/builtin/packages/exampm/package.py
+++ b/var/spack/repos/builtin/packages/exampm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/exasp2/package.py b/var/spack/repos/builtin/packages/exasp2/package.py
index f51d32a922..3211160074 100644
--- a/var/spack/repos/builtin/packages/exasp2/package.py
+++ b/var/spack/repos/builtin/packages/exasp2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/exawind/package.py b/var/spack/repos/builtin/packages/exawind/package.py
new file mode 100644
index 0000000000..c61876f568
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exawind/package.py
@@ -0,0 +1,40 @@
+# Copyright 2013-2021 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 Exawind(CMakePackage):
+ """Multi-application driver for Exawind project."""
+
+ homepage = "https://github.com/Exawind/exawind-driver"
+ git = "https://github.com/Exawind/exawind-driver.git"
+
+ maintainers = ['jrood-nrel']
+
+ tags = ['ecp', 'ecp-apps']
+
+ version('master', branch='main')
+
+ depends_on('trilinos+stk')
+ depends_on('tioga+shared~nodegid')
+ depends_on('nalu-wind+hypre+openfast+tioga+wind-utils')
+ depends_on('amr-wind+hypre+mpi+netcdf+openfast')
+ depends_on('openfast+cxx+shared@2.6.0')
+ depends_on('yaml-cpp@0.6:')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ self.define('Trilinos_DIR', spec['trilinos'].prefix),
+ self.define('TIOGA_DIR', spec['tioga'].prefix),
+ self.define('Nalu-Wind_DIR', spec['nalu-wind'].prefix),
+ self.define('AMR-Wind_DIR', spec['amr-wind'].prefix),
+ self.define('OpenFAST_DIR', spec['openfast'].prefix),
+ self.define('YAML-CPP_DIR', spec['yaml-cpp'].prefix)
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/exciting/dfgather.patch b/var/spack/repos/builtin/packages/exciting/dfgather.patch
new file mode 100644
index 0000000000..1c0a847b61
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exciting/dfgather.patch
@@ -0,0 +1,27 @@
+--- dfgather.F90_old 2020-09-16 17:19:18.000000000 -0600
++++ dfgather.F90 2020-09-16 17:19:21.000000000 -0600
+@@ -27,6 +27,11 @@
+ ! loop over q-points
+ Do iq = 1, nqpt
+ tq0 = tqgamma (iq)
++
++ call genfilname(basename='X0', bzsampl=bzsampl,&
++ & acont=input%xs%tddft%acont, nar= .not. input%xs%tddft%aresdf,&
++ & tord=input%xs%tddft%torddf, markfxcbse=tfxcbse, iqmt=iq, filnam=fnchi0)
++
+ ! calculate k+q and G+k+q related variables
+ Call init1offs (qvkloff(1, iq))
+ ! size of local field effects
+@@ -54,6 +59,12 @@
+ call mpi_bcast(chi0hd,3*3,MPI_DOUBLE_COMPLEX,iproc,mpi_comm_world,ierr)
+ #endif
+ if(rank.eq.0.or.(firstinnode.and. .not.input%sharedfs))then
++ if (iw == wpari) then
++ print *, 'procs=', procs
++ print *, 'rank=', rank
++ print *, 'iq=', iq, '/', nqpt
++ print *, 'fnchi0=',trim(fnchi0)
++ end if
+ Call putx0 (tq0, iq, iw, trim(fnchi0), '', chi0, chi0wg, &
+ & chi0hd)
+ endif
diff --git a/var/spack/repos/builtin/packages/exciting/for_aarch64.patch b/var/spack/repos/builtin/packages/exciting/for_aarch64.patch
new file mode 100644
index 0000000000..01e4a73939
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exciting/for_aarch64.patch
@@ -0,0 +1,12 @@
+--- spack-src/src/FoX/config/config.guess.bak 2019-03-20 20:13:07.000000000 +0900
++++ spack-src/src/FoX/config/config.guess 2020-12-22 09:36:28.448022150 +0900
+@@ -832,6 +832,9 @@
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
++ aarch64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
diff --git a/var/spack/repos/builtin/packages/exciting/package.py b/var/spack/repos/builtin/packages/exciting/package.py
new file mode 100644
index 0000000000..bda6d87471
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exciting/package.py
@@ -0,0 +1,120 @@
+# Copyright 2013-2021 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 Exciting(MakefilePackage):
+ """
+ exciting is a full-potential all-electron density-functional-theory package
+ implementing the families of linearized augmented planewave methods. It can
+ be applied to all kinds of materials, irrespective of the atomic species in
+ volved, and also allows for exploring the physics of core electrons. A
+ particular focus are excited states within many-body perturbation theory.
+ """
+
+ homepage = "https://exciting-code.org/"
+ url = "https://exciting.wdfiles.com/local--files/nitrogen-14/exciting.nitrogen-14.tar.gz"
+
+ version('14', sha256='a7feaffdc23881d6c0737d2f79f94d9bf073e85ea358a57196d7f7618a0a3eff')
+
+ # as-of-yet unpublished fix to version 14
+ patch('dfgather.patch', when='@14', working_dir='src/src_xs', level=0)
+ # Patch to add aarch64 in config.guess
+ patch('for_aarch64.patch', when='target=aarch64:')
+
+ variant('mpi', default=False, description='Use MPI')
+ variant('mkl', default=False, description='Use MKL')
+ variant('omp', default=True, description='Use OpenMP')
+ variant('scalapack', default=False, description='Use ScaLAPACK')
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('fftw', when='~mkl')
+ depends_on('mkl', when='+mkl')
+ depends_on('mpi', when='+mpi')
+ depends_on('scalapack', when='+scalapack')
+ conflicts('%gcc@10:', msg='exciting cannot be built with GCC 10')
+
+ for __compiler in spack.compilers.supported_compilers():
+ if __compiler != 'intel':
+ conflicts('%{0}'.format(__compiler), when='^mkl',
+ msg='MKL only works with the Intel compiler')
+
+ def edit(self, spec, prefix):
+ opts = {}
+ opts['BUILDSMP'] = 'true'
+ opts['F90_OPTS'] = '-cpp '
+ opts['F77_OPTS'] = '-cpp -O3 '
+ opts['CPP_ON_OPTS'] = '-cpp -DXS -DISO -DLIBXC'
+ opts['LIB_ARP'] = 'libarpack.a'
+ opts['F90'] = spack_fc
+ opts['F77'] = spack_f77
+ if '+omp' in spec:
+ opts['LDFLAGS'] = self.compiler.openmp_flag + ' -DUSEOMP'
+ opts['F90_OPTS'] += self.compiler.openmp_flag + ' -DUSEOMP'
+ opts['F77_OPTS'] += self.compiler.openmp_flag + ' -DUSEOMP'
+ if '%intel' in spec:
+ opts['F90_OPTS'] += ' -O3 -cpp -ip -unroll -scalar_rep '
+ opts['CPP_ON_OPTS'] += ' -DIFORT -DFFTW'
+ if '%gcc' in spec:
+ opts['F90_OPTS'] += '-O3 -march=native -ffree-line-length-0'
+ filter_file('FCFLAGS = @FCFLAGS@',
+ ' '.join(['FCFLAGS = @FCFLAGS@', '-cpp',
+ self.compiler.openmp_flag]),
+ 'src/libXC/src/Makefile.in')
+ if '+mkl' in spec:
+ if '%intel' in spec:
+ opts['LIB_LPK'] = '-mkl=parallel'
+ opts['INC_MKL'] = spec['mkl'].headers.include_flags
+ opts['LIB_MKL'] = spec['mkl'].libs.ld_flags
+ else:
+ opts['LIB_LPK'] = ' '.join([spec['lapack'].libs.ld_flags,
+ spec['blas'].libs.ld_flags,
+ self.compiler.openmp_flag])
+ if '+mpi' in spec:
+ opts['BUILDMPI'] = 'true'
+ opts['MPIF90'] = spec['mpi'].mpifc
+ opts['MPIF90_CPP_OPTS'] = self.compiler.openmp_flag
+ opts['MPIF90_CPP_OPTS'] += ' -DMPI -DMPIRHO -DMPISEC '
+ opts['MPIF90_OPTS'] = ' '.join(['$(F90_OPTS)', '$(CPP_ON_OPTS) '
+ '$(MPIF90_CPP_OPTS)'])
+ opts['MPIF90MT'] = '$(MPIF90)'
+ else:
+ opts['BUILDMPI'] = 'false'
+
+ if '+scalapack' in spec:
+ opts['LIB_SCLPK'] = spec['scalapack'].libs.ld_flags
+ opts['LIB_SCLPK'] += ' ' + self.compiler.openmp_flag
+ opts['CPP_SCLPK'] = ' -DSCAL '
+ opts['LIBS_MPI'] = '$(LIB_SCLPK)'
+ opts['MPIF90_CPP_OPTS'] += ' $(CPP_SCLPK) '
+
+ opts['USE_SYS_LAPACK'] = 'true'
+ opts['LIB_FFT'] = 'fftlib.a'
+ opts['LIB_BZINT'] = 'libbzint.a'
+ opts['LIBS'] = '$(LIB_ARP) $(LIB_LPK) $(LIB_FFT) $(LIB_BZINT)'
+ with open('build/make.inc', 'a') as inc:
+ for key in opts:
+ inc.write('{0} = {1}\n'.format(key, opts[key]))
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix)
+ install_tree('species', prefix.species)
+ install_tree('tools', prefix.tools)
+
+ def setup_run_environment(self, env):
+ env.set('WNHOME', self.prefix)
+ env.set('EXCITINGROOT', self.prefix)
+ env.set('EXCITINGBIN', self.prefix.bin)
+ env.set('EXCITINGTOOLS', self.prefix.tools)
+ env.set('EXCITINGSTM', self.prefix.tools.stm)
+ env.set('EXCITINGVISUAL', self.prefix.xml.visualizationtemplates)
+ env.set('EXCITINGCONVERT', self.prefix.xml.inputfileconverter)
+ env.set('TIMEFORMAT', ' Elapsed time = %0lR')
+ env.set('WRITEMINMAX', '1')
+ env.append_path('PYTHONPATH', self.prefix.tools.stm)
+ env.append_path('PATH', self.prefix.tools)
+ env.append_path('PATH', self.prefix)
+ env.append_path('PATH', self.prefix.tools.stm)
diff --git a/var/spack/repos/builtin/packages/exempi/package.py b/var/spack/repos/builtin/packages/exempi/package.py
new file mode 100644
index 0000000000..e9b5ecfa1b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exempi/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 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 Exempi(AutotoolsPackage):
+ """exempi is a port of Adobe XMP SDK to work on UNIX and to be build with
+ GNU automake.
+
+ It includes XMPCore and XMPFiles, libexempi, a C-based API and exempi
+ a command line tool.
+ """
+
+ homepage = "https://libopenraw.freedesktop.org/wiki/Exempi"
+ url = "https://libopenraw.freedesktop.org/download/exempi-2.5.2.tar.bz2"
+
+ version('2.5.2', sha256='52f54314aefd45945d47a6ecf4bd21f362e6467fa5d0538b0d45a06bc6eaaed5')
+
+ depends_on('zlib')
+ depends_on('iconv')
+ depends_on('boost@1.48.0:')
+ depends_on('pkgconfig')
+
+ conflicts('%gcc@:4.5')
+
+ def configure_args(self):
+ args = ['--with-boost={0}'.format(self.spec['boost'].prefix)]
+
+ if self.spec.satisfies('polatform=darwin'):
+ args += ['--with-darwinports', '--with-fink']
+
+ return args
diff --git a/var/spack/repos/builtin/packages/exiv2/package.py b/var/spack/repos/builtin/packages/exiv2/package.py
index 53fad9cdfe..25652c7581 100644
--- a/var/spack/repos/builtin/packages/exiv2/package.py
+++ b/var/spack/repos/builtin/packages/exiv2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/exmcutils/package.py b/var/spack/repos/builtin/packages/exmcutils/package.py
index 860f0518e7..34bc912da1 100644
--- a/var/spack/repos/builtin/packages/exmcutils/package.py
+++ b/var/spack/repos/builtin/packages/exmcutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,11 @@ class Exmcutils(AutotoolsPackage):
"""ExM C-Utils: Generic C utility library for ADLB/X and Swift/T"""
homepage = 'http://swift-lang.org/Swift-T'
- url = 'http://swift-lang.github.io/swift-t-downloads/spack/exmcutils-0.5.7.tar.gz'
+ url = 'https://swift-lang.github.io/swift-t-downloads/spack/exmcutils-0.6.0.tar.gz'
git = "https://github.com/swift-lang/swift-t.git"
version('master', branch='master')
+ version('0.6.0', sha256='43812f79ae83adcacc05d4eb64bc8faa1c893994ffcdfb40a871f6fa4c9c1435')
version('0.5.7', sha256='6b84f43e8928d835dbd68c735ece6a9b7c648a1a4488ec2b1d2f3c4ceec508e8')
version('0.5.6', sha256='296ba85cc828bd816c7c4de9453f589da37f32854a58ffda3586b6f371a23abf')
diff --git a/var/spack/repos/builtin/packages/exodusii/package.py b/var/spack/repos/builtin/packages/exodusii/package.py
index 7a163dcffb..435a084d13 100644
--- a/var/spack/repos/builtin/packages/exodusii/package.py
+++ b/var/spack/repos/builtin/packages/exodusii/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,7 +20,18 @@ class Exodusii(CMakePackage):
homepage = "https://github.com/gsjaardema/seacas"
git = "https://github.com/gsjaardema/seacas.git"
+ url = "https://github.com/gsjaardema/seacas/archive/refs/tags/v2021-04-05.zip"
+ version('2021-04-05', sha256='f40d318674753287b8b28d2b4e5cca872cd772d4c7383af4a8f3eeb48fcc7ec0')
+ version('2021-04-02', sha256='811037a68eaff0daf9f34bd31b2ab1c9b8f028dfcb998ab01fbcb80d9458257c')
+ version('2021-01-20', sha256='6ff7c3f0651138f2e2305b5270108ca45f96346a739b35a126a0a260c91cbe64')
+ version('2021-01-06', sha256='69cafef17d8e624c2d9871f3a281ff3690116a6f82162fe5c1507bb4ecd6a32a')
+ version('2020-08-13', sha256='5b128a8ad9b0a69cff4fe937828d6d1702f1fe8aa80d4751e6522939afe62957')
+ version('2020-05-12', sha256='0402facf6cf23d903d878fb924b5d57e9f279dead5b92cf986953a6b91a6e81f')
+ version('2020-03-16', sha256='ed1d42c8c657931ecd45367a465cf9c00255772d9cd0811fc9baacdb67fc71fa')
+ version('2020-01-16', sha256='db69dca25595e88a40c00db0ccf2afed1ecd6008ba30bb478a4e1c5dd61998b8')
+ version('2019-12-18', sha256='88a71de836aa26fd63756cf3ffbf3978612edc5b6c61fa8de32fe9d638007774')
+ version('2019-10-14', sha256='f143d90e8a7516d25979d1416e580dea638332db723f26ae94a712dfe4052e8f')
version('2016-08-09', commit='2ffeb1b')
version('master', branch='master')
@@ -33,6 +44,8 @@ class Exodusii(CMakePackage):
depends_on('netcdf-c@4.6.1:+mpi', when='+mpi')
depends_on('netcdf-c@4.6.1:~mpi', when='~mpi')
+ depends_on('python@2.7:')
+
def cmake_args(self):
spec = self.spec
@@ -56,5 +69,12 @@ class Exodusii(CMakePackage):
'-DCMAKE_C_COMPILER={0}'.format(cc_path),
'-DCMAKE_CXX_COMPILER={0}'.format(cxx_path),
]
+ # Python #
+ # Handle v2016 separately because of older tribits
+ if spec.satisfies('@:2016-08-09'):
+ options.append('-DPYTHON_EXECUTABLE={0}'.format(
+ join_path(self.spec['python'].prefix.bin, 'python')))
+ else:
+ options.append('-DPython_ROOT={0}'.format(spec['python'].prefix))
return options
diff --git a/var/spack/repos/builtin/packages/exonerate-gff3/package.py b/var/spack/repos/builtin/packages/exonerate-gff3/package.py
index 87bc23e071..bc9ad300be 100644
--- a/var/spack/repos/builtin/packages/exonerate-gff3/package.py
+++ b/var/spack/repos/builtin/packages/exonerate-gff3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/exonerate/package.py b/var/spack/repos/builtin/packages/exonerate/package.py
index 2d4c3f7b1b..a58cf9b6a0 100644
--- a/var/spack/repos/builtin/packages/exonerate/package.py
+++ b/var/spack/repos/builtin/packages/exonerate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Exonerate(AutotoolsPackage):
"""Pairwise sequence alignment of DNA and proteins"""
- homepage = "http://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate"
- url = "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/exonerate-2.4.0.tar.gz"
+ homepage = "https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate"
+ url = "https://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/exonerate-2.4.0.tar.gz"
version('2.4.0', sha256='f849261dc7c97ef1f15f222e955b0d3daf994ec13c9db7766f1ac7e77baa4042')
diff --git a/var/spack/repos/builtin/packages/expat/package.py b/var/spack/repos/builtin/packages/expat/package.py
index f5d9475812..799928b11a 100644
--- a/var/spack/repos/builtin/packages/expat/package.py
+++ b/var/spack/repos/builtin/packages/expat/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Expat(AutotoolsPackage):
"""Expat is an XML parser library written in C."""
@@ -13,12 +14,17 @@ class Expat(AutotoolsPackage):
homepage = "https://libexpat.github.io/"
url = "https://github.com/libexpat/libexpat/releases/download/R_2_2_9/expat-2.2.9.tar.bz2"
- version('2.2.10', sha256='b2c160f1b60e92da69de8e12333096aeb0c3bf692d41c60794de278af72135a5')
- version('2.2.9', sha256='f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237')
- version('2.2.6', sha256='17b43c2716d521369f82fc2dc70f359860e90fa440bea65b3b85f0b246ea81f2')
- version('2.2.5', sha256='d9dc32efba7e74f788fcc4f212a43216fc37cf5f23f4c2339664d473353aedf6')
- version('2.2.2', sha256='4376911fcf81a23ebd821bbabc26fd933f3ac74833f74924342c29aad2c86046')
- version('2.2.0', sha256='d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff')
+ version('2.4.1', sha256='2f9b6a580b94577b150a7d5617ad4643a4301a6616ff459307df3e225bcfbf40')
+ version('2.4.0', sha256='8c59142ef88913bc0a8b6e4c58970c034210ca552e6271f52f6cd6cce3708424')
+ # deprecate all releases before 2.4.0 because of CVE-2013-0340
+ # ("billion laughs attack")
+ version('2.3.0', sha256='f122a20eada303f904d5e0513326c5b821248f2d4d2afbf5c6f1339e511c0586', deprecated=True)
+ version('2.2.10', sha256='b2c160f1b60e92da69de8e12333096aeb0c3bf692d41c60794de278af72135a5', deprecated=True)
+ version('2.2.9', sha256='f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237', deprecated=True)
+ version('2.2.6', sha256='17b43c2716d521369f82fc2dc70f359860e90fa440bea65b3b85f0b246ea81f2', deprecated=True)
+ version('2.2.5', sha256='d9dc32efba7e74f788fcc4f212a43216fc37cf5f23f4c2339664d473353aedf6', deprecated=True)
+ version('2.2.2', sha256='4376911fcf81a23ebd821bbabc26fd933f3ac74833f74924342c29aad2c86046', deprecated=True)
+ version('2.2.0', sha256='d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff', deprecated=True)
# Version 2.2.2 introduced a requirement for a high quality
# entropy source. "Older" linux systems (aka CentOS 7) do not
@@ -39,7 +45,9 @@ class Expat(AutotoolsPackage):
def configure_args(self):
spec = self.spec
- args = ['--without-docbook']
+ args = ['--without-docbook',
+ '--enable-static',
+ ]
if '+libbsd' in spec and '@2.2.1:' in spec:
args.append('--with-libbsd')
return args
diff --git a/var/spack/repos/builtin/packages/expect/package.py b/var/spack/repos/builtin/packages/expect/package.py
index 71c9595101..51df353feb 100644
--- a/var/spack/repos/builtin/packages/expect/package.py
+++ b/var/spack/repos/builtin/packages/expect/package.py
@@ -1,21 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+from spack import *
+
class Expect(AutotoolsPackage):
"""Expect is a tool for automating interactive applications such as
telnet, ftp, passwd, fsck, rlogin, tip, etc."""
homepage = "http://expect.sourceforge.net/"
- url = "https://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download"
+ url = "https://sourceforge.net/projects/expect/files/Expect/5.45.4/expect5.45.4.tar.gz/download"
- version('5.45', sha256='b28dca90428a3b30e650525cdc16255d76bb6ccd65d448be53e620d95d5cc040')
+ version('5.45.4', sha256='49a7da83b0bdd9f46d04a04deec19c7767bb9a323e40c4781f89caf760b92c34')
+ version('5.45.3', sha256='c520717b7195944a69ce1492ec82ca0ac3f3baf060804e6c5ee6d505ea512be9')
+ version('5.45', sha256='b28dca90428a3b30e650525cdc16255d76bb6ccd65d448be53e620d95d5cc040')
depends_on('tcl')
@@ -24,12 +27,10 @@ class Expect(AutotoolsPackage):
depends_on('libtool', type='build')
depends_on('m4', type='build')
- # https://github.com/spack/spack/issues/19767
- conflicts('%apple-clang@12:')
-
force_autoreconf = True
- patch('expect_detect_tcl_private_header_os_x_mountain_lion.patch', when='@5.45')
+ patch('xcode_12.patch', when='%apple-clang@12:')
+ patch('expect_detect_tcl_private_header_os_x_mountain_lion.patch', when='@5.45:5.45.0')
def configure_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/expect/xcode_12.patch b/var/spack/repos/builtin/packages/expect/xcode_12.patch
new file mode 100644
index 0000000000..f7ae9e4597
--- /dev/null
+++ b/var/spack/repos/builtin/packages/expect/xcode_12.patch
@@ -0,0 +1,282 @@
+https://core.tcl-lang.org/expect/tktview/0d5b33c00e5b4bbedb835498b0360d7115e832a0
+--- expect5.45.4/configure.in.ORIG 2020-12-05 17:26:55.000000000 +0000
++++ expect5.45.4/configure.in 2020-12-05 18:39:00.000000000 +0000
+@@ -452,7 +452,11 @@
+ # because Unixware 2.0 handles it specially and refuses to compile
+ # autoconf's automatic test that is a call with no arguments
+ AC_MSG_CHECKING([for memcpy])
+-AC_TRY_LINK(,[
++AC_TRY_LINK([
++#ifdef HAVE_STRING_H
++#include <string.h>
++#endif
++],[
+ char *s1, *s2;
+ memcpy(s1,s2,0);
+ ],
+@@ -469,7 +473,7 @@
+ AC_MSG_CHECKING([if WNOHANG requires _POSIX_SOURCE])
+ AC_TRY_RUN([
+ #include <sys/wait.h>
+-main() {
++int main() {
+ #ifndef WNOHANG
+ return 0;
+ #else
+@@ -489,7 +493,7 @@
+ AC_TRY_RUN([
+ #include <stdio.h>
+ #include <sys/wait.h>
+-main() {
++int main() {
+ #ifdef WNOHANG
+ FILE *fp = fopen("wnohang","w");
+ fprintf(fp,"%d",WNOHANG);
+@@ -536,6 +540,13 @@
+ AC_MSG_CHECKING([if signals need to be re-armed])
+ AC_TRY_RUN([
+ #include <signal.h>
++#ifdef HAVE_UNISTD_H
++#include <unistd.h>
++#endif
++#ifndef NO_SYS_WAIT_H
++#include <sys/wait.h>
++#endif
++
+ #define RETSIGTYPE $retsigtype
+
+ int signal_rearms = 0;
+@@ -553,7 +564,7 @@
+ signal_rearms++;
+ }
+
+-main()
++int main()
+ {
+ signal(SIGINT,parent_sigint_handler);
+
+@@ -567,8 +578,9 @@
+
+ wait(&status);
+ unlink("core");
+- exit(signal_rearms);
++ return signal_rearms;
+ }
++ return -1;
+ }],
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(REARM_SIG)
+@@ -714,10 +726,10 @@
+ AC_MSG_CHECKING([for struct sgttyb])
+ AC_TRY_RUN([
+ #include <sgtty.h>
+-main()
++int main()
+ {
+ struct sgttyb tmp;
+- exit(0);
++ return 0;
+ }],
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_SGTTYB)
+@@ -738,10 +750,10 @@
+ # pty_termios.c is set up to handle pty_termio.
+ AC_MSG_CHECKING([for struct termio])
+ AC_TRY_RUN([#include <termio.h>
+- main()
++ int main()
+ {
+ struct termio tmp;
+- exit(0);
++ return 0;
+ }],
+ AC_DEFINE(HAVE_TERMIO)
+ PTY_TYPE=termios
+@@ -760,10 +772,10 @@
+ # include <inttypes.h>
+ # endif
+ # include <termios.h>
+- main()
++ int main()
+ {
+ struct termios tmp;
+- exit(0);
++ return 0;
+ }],
+ AC_DEFINE(HAVE_TERMIOS)
+ PTY_TYPE=termios
+@@ -782,7 +794,7 @@
+ #include <inttypes.h>
+ #endif
+ #include <termios.h>
+-main() {
++int main() {
+ #if defined(TCGETS) || defined(TCGETA)
+ return 0;
+ #else
+@@ -797,21 +809,18 @@
+ AC_MSG_ERROR([Expect can't be cross compiled])
+ )
+
+-AC_MSG_CHECKING([if TIOCGWINSZ in termios.h])
++AC_MSG_CHECKING([if termios.h and sys/ioctl.h may both be included])
+ AC_TRY_RUN([
+ /* including termios.h on Solaris 5.6 fails unless inttypes.h included */
+ #ifdef HAVE_INTTYPES_H
+ #include <inttypes.h>
+ #endif
+ #include <termios.h>
+-main() {
+-#ifdef TIOCGWINSZ
++#include <sys/ioctl.h>
++int main() {
+ return 0;
+-#else
+- return 1;
+-#endif
+ }],
+- AC_DEFINE(HAVE_TIOCGWINSZ_IN_TERMIOS_H)
++ AC_DEFINE(HAVE_TERMIOS_AND_IOCTL_H_TOGETHER)
+ AC_MSG_RESULT(yes)
+ ,
+ AC_MSG_RESULT(no)
+@@ -823,7 +832,7 @@
+ AC_MSG_CHECKING([for Cray-style ptys])
+ SETUID=":"
+ AC_TRY_RUN([
+-main(){
++int main(){
+ #ifdef CRAY
+ return 0;
+ #else
+@@ -878,12 +887,12 @@
+ AC_TRY_RUN([
+ extern char *tzname[2];
+ extern int daylight;
+-main()
++int main()
+ {
+ int *x = &daylight;
+ char **y = tzname;
+
+- exit(0);
++ return 0;
+ }],
+ AC_DEFINE(HAVE_SV_TIMEZONE)
+ AC_MSG_RESULT(yes),
+--- expect5.45.4/tclconfig/tcl.m4.ORIG 2020-12-05 17:31:41.000000000 +0000
++++ expect5.45.4/tclconfig/tcl.m4 2020-12-05 17:32:39.000000000 +0000
+@@ -2400,7 +2400,7 @@
+ AC_TRY_COMPILE([#include <time.h>],
+ [extern long timezone;
+ timezone += 1;
+- exit (0);],
++ return 0;],
+ tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)])
+ if test $tcl_cv_timezone_long = yes ; then
+ AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
+@@ -2412,7 +2412,7 @@
+ AC_TRY_COMPILE([#include <time.h>],
+ [extern time_t timezone;
+ timezone += 1;
+- exit (0);],
++ return 0;],
+ tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)])
+ if test $tcl_cv_timezone_time = yes ; then
+ AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
+@@ -2452,17 +2452,17 @@
+ double value;
+ value = strtod(infString, &term);
+ if ((term != infString) && (term[-1] == 0)) {
+- exit(1);
++ return 1;
+ }
+ value = strtod(nanString, &term);
+ if ((term != nanString) && (term[-1] == 0)) {
+- exit(1);
++ return 1;
+ }
+ value = strtod(spaceString, &term);
+ if (term == (spaceString+1)) {
+- exit(1);
++ return 1;
+ }
+- exit(0);
++ return 0;
+ }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy,
+ tcl_cv_strtod_buggy=buggy)])
+ if test "$tcl_cv_strtod_buggy" = buggy; then
+--- expect5.45.4/exp_tty.h.ORIG 2020-12-05 18:25:06.000000000 +0000
++++ expect5.45.4/exp_tty.h 2020-12-05 18:24:14.000000000 +0000
+@@ -19,6 +19,7 @@
+ void exp_tty_echo(int set);
+ void exp_tty_break(Tcl_Interp *interp, int fd);
+ int exp_tty_raw_noecho(Tcl_Interp *interp, exp_tty *tty_old, int *was_raw, int *was_echo);
++int exp_tty_cooked_echo(Tcl_Interp *interp, exp_tty *tty_old, int *was_raw, int *was_echo);
+ int exp_israw(void);
+ int exp_isecho(void);
+
+--- expect5.45.4/exp_chan.c.ORIG 2020-12-05 18:42:14.000000000 +0000
++++ expect5.45.4/exp_chan.c 2020-12-05 18:42:36.000000000 +0000
+@@ -35,6 +35,7 @@
+ #include "exp_prog.h"
+ #include "exp_command.h"
+ #include "exp_log.h"
++#include "exp_event.h"
+ #include "tcldbg.h" /* Dbg_StdinMode */
+
+ extern int expSetBlockModeProc _ANSI_ARGS_((int fd, int mode));
+--- expect5.45.4/exp_clib.c.ORIG 2020-12-05 18:40:52.000000000 +0000
++++ expect5.45.4/exp_clib.c 2020-12-05 18:41:18.000000000 +0000
+@@ -8,6 +8,7 @@
+ */
+
+ #include "expect_cf.h"
++#include "exp_command.h"
+ #include <stdio.h>
+ #include <setjmp.h>
+ #ifdef HAVE_INTTYPES_H
+--- expect5.45.4/exp_win.c.ORIG 2020-12-05 18:27:20.000000000 +0000
++++ expect5.45.4/exp_win.c 2020-12-05 18:33:24.000000000 +0000
+@@ -32,17 +32,13 @@
+
+ #ifdef HAVE_TERMIOS
+ # include <termios.h>
++# ifdef HAVE_TERMIOS_AND_IOCTL_H_TOGETHER
++# include <sys/ioctl.h>
++# endif
+ #else
+ # include <sys/ioctl.h>
+ #endif
+
+-/* Sigh. On AIX 2.3, termios.h exists but does not define TIOCGWINSZ */
+-/* Instead, it has to come from ioctl.h. However, As I said above, this */
+-/* can't be cavalierly included on all machines, even when it exists. */
+-#if defined(HAVE_TERMIOS) && !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H)
+-# include <sys/ioctl.h>
+-#endif
+-
+ /* SCO defines window size structure in PTEM and TIOCGWINSZ in termio.h */
+ /* Sigh... */
+ #if defined(HAVE_SYS_PTEM_H)
+--- expect5.45.4/pty_termios.c.ORIG 2020-12-05 18:43:05.000000000 +0000
++++ expect5.45.4/pty_termios.c 2020-12-05 18:45:20.000000000 +0000
+@@ -77,6 +77,10 @@
+ #include <sys/sysmacros.h>
+ #endif
+
++#ifdef HAVE_OPENPTY
++#include <util.h>
++#endif
++
+ #ifdef HAVE_PTYTRAP
+ #include <sys/ptyio.h>
+ #endif
+@@ -102,6 +106,7 @@
+ #include "exp_tty_in.h"
+ #include "exp_rename.h"
+ #include "exp_pty.h"
++#include "exp_int.h"
+
+ void expDiagLog();
+ void expDiagLogPtr();
diff --git a/var/spack/repos/builtin/packages/express/package.py b/var/spack/repos/builtin/packages/express/package.py
index d54dec85c7..d40cb073e3 100644
--- a/var/spack/repos/builtin/packages/express/package.py
+++ b/var/spack/repos/builtin/packages/express/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
import glob
+import os.path
+
+from spack import *
class Express(CMakePackage):
diff --git a/var/spack/repos/builtin/packages/extrae/package.py b/var/spack/repos/builtin/packages/extrae/package.py
index bab7b365d8..34ad84a008 100644
--- a/var/spack/repos/builtin/packages/extrae/package.py
+++ b/var/spack/repos/builtin/packages/extrae/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
# typical working line with extrae 3.0.1
@@ -33,8 +35,11 @@ class Extrae(AutotoolsPackage):
instrument the MPI programin model, and the following parallel
programming models either alone or in conjunction with MPI :
OpenMP, CUDA, OpenCL, pthread, OmpSs"""
+
homepage = "https://tools.bsc.es/extrae"
url = "https://ftp.tools.bsc.es/extrae/extrae-3.4.1-src.tar.bz2"
+
+ version('3.8.3', sha256='c3bf27fb6f18e66200e40a0b4c35bc257766e5c1a525dc5725f561879e88bf32')
version('3.7.1', sha256='c83ddd18a380c9414d64ee5de263efc6f7bac5fe362d5b8374170c7f18360378')
version('3.4.1', sha256='77bfec16d6b5eee061fbaa879949dcef4cad28395d6a546b1ae1b9246f142725')
@@ -64,6 +69,13 @@ class Extrae(AutotoolsPackage):
variant('papi', default=True, description="Use PAPI to collect performance counters")
depends_on('papi', when='+papi')
+ variant('cuda', default=False, description="Enable support for tracing CUDA")
+ depends_on('cuda', when='+cuda')
+
+ variant('cupti', default=False, description='Enable CUPTI support')
+ depends_on('cuda', when='+cupti')
+ conflicts('+cupti', when='~cuda', msg='CUPTI requires CUDA')
+
def configure_args(self):
spec = self.spec
args = ["--with-mpi=%s" % spec['mpi'].prefix,
@@ -82,13 +94,29 @@ class Extrae(AutotoolsPackage):
if '+dyninst' in self.spec else
["--without-dyninst"])
+ args += (["--with-cuda=%s" % spec['cuda'].prefix]
+ if '+cuda' in self.spec else
+ ["--without-cuda"])
+
+ if '+cupti' in self.spec:
+ cupti_h = find_headers('cupti', spec['cuda'].prefix,
+ recursive=True)
+ cupti_dir = os.path.dirname(os.path.dirname(cupti_h[0]))
+
+ args += (["--with-cupti=%s" % cupti_dir]
+ if '+cupti' in self.spec else
+ ["--without-cupti"])
+
if spec.satisfies("^dyninst@9.3.0:"):
make.add_default_arg("CXXFLAGS=%s" % self.compiler.cxx11_flag)
args.append("CXXFLAGS=%s" % self.compiler.cxx11_flag)
- # This was added due to configure failure
+ # This was added due to:
+ # - configure failure
# https://www.gnu.org/software/gettext/FAQ.html#integrating_undefined
- args.append('LDFLAGS=-lintl')
+ # - linking error
+ # https://github.com/bsc-performance-tools/extrae/issues/57
+ args.append('LDFLAGS=-lintl -pthread')
return(args)
diff --git a/var/spack/repos/builtin/packages/exuberant-ctags/package.py b/var/spack/repos/builtin/packages/exuberant-ctags/package.py
index 421b995050..a66e7a4db5 100644
--- a/var/spack/repos/builtin/packages/exuberant-ctags/package.py
+++ b/var/spack/repos/builtin/packages/exuberant-ctags/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/eztrace/package.py b/var/spack/repos/builtin/packages/eztrace/package.py
index f73087de99..0acd95483d 100644
--- a/var/spack/repos/builtin/packages/eztrace/package.py
+++ b/var/spack/repos/builtin/packages/eztrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Eztrace(AutotoolsPackage):
"""EZTrace is a tool to automatically generate execution traces
of HPC applications."""
- homepage = "http://eztrace.gforge.inria.fr"
+ homepage = "https://eztrace.gforge.inria.fr"
url = "https://gitlab.com/eztrace/eztrace/-/archive/eztrace-1.1-10/eztrace-eztrace-1.1-10.tar.gz"
maintainers = ['trahay']
diff --git a/var/spack/repos/builtin/packages/f2c/package.py b/var/spack/repos/builtin/packages/f2c/package.py
index 7182ddb185..4dcef998be 100644
--- a/var/spack/repos/builtin/packages/f2c/package.py
+++ b/var/spack/repos/builtin/packages/f2c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,13 @@ from spack import *
class F2c(MakefilePackage):
"""F2c converts Fortran 77 source code to C or C++ source files."""
- homepage = "http://www.netlib.org/f2c/"
- url = "http://www.netlib.org/f2c/src.tgz"
+ homepage = "https://www.netlib.org/f2c/"
+ url = "https://www.netlib.org/f2c/src.tgz"
version('master', sha256='d4847456aa91c74e5e61e2097780ca6ac3b20869fae8864bfa8dcc66f6721d35')
def url_for_version(self, version):
- url = "http://www.netlib.org/f2c/src.tgz"
+ url = "https://www.netlib.org/f2c/src.tgz"
return url
def edit(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/f77-zmq/package.py b/var/spack/repos/builtin/packages/f77-zmq/package.py
index 955ed2ecd6..0a2bd0965e 100644
--- a/var/spack/repos/builtin/packages/f77-zmq/package.py
+++ b/var/spack/repos/builtin/packages/f77-zmq/package.py
@@ -1,16 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
class F77Zmq(MakefilePackage):
"""Fortran binding for the ZeroMQ communication library"""
- homepage = "http://zguide.zeromq.org/"
+ homepage = "https://zguide.zeromq.org/"
url = "https://github.com/zeromq/f77_zmq/archive/4.3.1.tar.gz"
maintainers = ['scemama']
diff --git a/var/spack/repos/builtin/packages/f90cache/package.py b/var/spack/repos/builtin/packages/f90cache/package.py
index 32aaff590f..dad4ec106d 100644
--- a/var/spack/repos/builtin/packages/f90cache/package.py
+++ b/var/spack/repos/builtin/packages/f90cache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fabtests/package.py b/var/spack/repos/builtin/packages/fabtests/package.py
index a9f76b5d07..4793be7263 100644
--- a/var/spack/repos/builtin/packages/fabtests/package.py
+++ b/var/spack/repos/builtin/packages/fabtests/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Fabtests(AutotoolsPackage):
"""Fabtests provides a set of runtime analysis tools and examples that use
libfabric."""
- homepage = "http://libfabric.org"
+ homepage = "https://libfabric.org"
url = "https://github.com/ofiwg/libfabric/releases/download/v1.9.1/fabtests-1.9.1.tar.bz2"
version('1.9.1', sha256='6f8ced2c6b3514759a0e177c8b2a19125e4ef0714d4cc0fe0386b33bd6cd5585')
diff --git a/var/spack/repos/builtin/packages/fairlogger/package.py b/var/spack/repos/builtin/packages/fairlogger/package.py
index 08108f557a..e2112215e2 100644
--- a/var/spack/repos/builtin/packages/fairlogger/package.py
+++ b/var/spack/repos/builtin/packages/fairlogger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
# Copyright 2020 GSI Helmholtz Centre for Heavy Ion Research GmbH,
# Darmstadt, Germany
@@ -68,8 +68,7 @@ class Fairlogger(CMakePackage):
if cxxstd != 'default':
args.append('-DCMAKE_CXX_STANDARD=%s' % cxxstd)
if self.spec.satisfies('@1.4:'):
- args.append('-DUSE_BOOST_PRETTY_FUNCTION=%s' %
- ('ON' if '+pretty' in self.spec else 'OFF'))
+ args.append(self.define_from_variant('USE_BOOST_PRETTY_FUNCTION', 'pretty'))
if self.spec.satisfies('@1.6:'):
args.append('-DUSE_EXTERNAL_FMT=ON')
if self.spec.satisfies('^boost@:1.69.99'):
diff --git a/var/spack/repos/builtin/packages/faiss/package.py b/var/spack/repos/builtin/packages/faiss/package.py
index a660693268..2e7162901e 100644
--- a/var/spack/repos/builtin/packages/faiss/package.py
+++ b/var/spack/repos/builtin/packages/faiss/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
@@ -36,6 +37,7 @@ class Faiss(AutotoolsPackage, CudaPackage):
depends_on('py-scipy', when='+tests', type=('build', 'run'))
depends_on('blas')
+ depends_on('python', type='build')
depends_on('py-setuptools', when='+python', type='build')
depends_on('swig', when='+python', type='build')
diff --git a/var/spack/repos/builtin/packages/fakechroot/package.py b/var/spack/repos/builtin/packages/fakechroot/package.py
index c29f4e9623..cc3cc13bea 100644
--- a/var/spack/repos/builtin/packages/fakechroot/package.py
+++ b/var/spack/repos/builtin/packages/fakechroot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fakexrandr/package.py b/var/spack/repos/builtin/packages/fakexrandr/package.py
new file mode 100644
index 0000000000..aa38531906
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fakexrandr/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2021 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 Fakexrandr(MakefilePackage):
+ """This is a tool to cheat an X11 server to believe that there are more
+ monitors than there actually are."""
+
+ homepage = "https://github.com/phillipberndt/fakexrandr"
+ git = "https://github.com/phillipberndt/fakexrandr.git"
+
+ version('master', branch='master')
+
+ depends_on('libxrandr')
+ depends_on('libxinerama')
+ depends_on('libx11')
+ depends_on('python', type=('build', 'run'))
+
+ def edit(self, spec, prefix):
+ # Installation instructions involve running `configure` script,
+ # but this script just writes a `config.h` file like below.
+ version = spec['libxrandr'].version
+ with open('config.h', 'w') as config:
+ config.write("""
+#define XRANDR_MAJOR {0}
+#define XRANDR_MINOR {1}
+#define XRANDR_PATCH {2}
+#define REAL_XRANDR_LIB "{3}"
+#define FAKEXRANDR_INSTALL_DIR "{4}"
+""".format(version[0], version[1], version[2],
+ spec['libxrandr'].libs[0], prefix.lib))
+
+ # Also need to hack Makefile
+ makefile = FileFilter('Makefile')
+ makefile.filter('PREFIX=/usr', 'PREFIX=' + prefix)
+ makefile.filter('-fPIC', self.compiler.cc_pic_flag)
+
+ # And tool used to generate skeleton
+ filter_file('gcc', spack_cc, 'make_skeleton.py')
+
+ if 'platform=darwin' in spec:
+ makefile.filter('ldconfig', '')
diff --git a/var/spack/repos/builtin/packages/falcon/package.py b/var/spack/repos/builtin/packages/falcon/package.py
index 36649dd7e6..1ee82b6df5 100644
--- a/var/spack/repos/builtin/packages/falcon/package.py
+++ b/var/spack/repos/builtin/packages/falcon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fann/package.py b/var/spack/repos/builtin/packages/fann/package.py
index b6c7c0d07c..113370543c 100644
--- a/var/spack/repos/builtin/packages/fann/package.py
+++ b/var/spack/repos/builtin/packages/fann/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,7 +20,7 @@ class Fann(CMakePackage):
interfaces are also available for the library.
"""
- homepage = "http://leenissen.dk/fann/wp/"
+ homepage = "https://leenissen.dk/fann/wp/"
url = "https://github.com/libfann/fann/archive/2.2.0.tar.gz"
version('2.2.0', sha256='f31c92c1589996f97d855939b37293478ac03d24b4e1c08ff21e0bd093449c3c')
diff --git a/var/spack/repos/builtin/packages/faodel/package.py b/var/spack/repos/builtin/packages/faodel/package.py
index 8f80576585..047ea71875 100644
--- a/var/spack/repos/builtin/packages/faodel/package.py
+++ b/var/spack/repos/builtin/packages/faodel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,7 @@ class Faodel(CMakePackage):
maintainers = ['tkordenbrock', 'craigulmer']
+ version('master', branch='master')
version('1.1906.1', sha256='4b3caf469ae7db50e9bb8d652e4cb532d33d474279def0f8a483f69385648058')
version('1.1811.2', sha256='22feb502dad0f56fb8af492f6e2cdc53a97fd6c31f6fa3c655be0a6266c46996')
version('1.1811.1', sha256='8e95ee99b8c136ff687eb07a2481ee04560cb1526408eb22ab56cd9c60206916')
@@ -36,7 +37,7 @@ class Faodel(CMakePackage):
depends_on('hdf5+mpi', when='+hdf5+mpi')
depends_on('hdf5~mpi', when='+hdf5~mpi')
depends_on('libfabric@1.5.3:', when='network=libfabric')
- depends_on('googletest@1.7.0:', type='build')
+ depends_on('googletest@1.7.0:1.10', type='test')
# FAODEL requires C++11 support which starts with gcc 4.8.1
conflicts('%gcc@:4.8.0')
@@ -61,27 +62,24 @@ class Faodel(CMakePackage):
def cmake_args(self):
spec = self.spec
+ build_tests = self.run_tests and '+mpi' in spec
+
args = [
- '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
- 'ON' if '+shared' in spec else 'OFF'),
- '-DBUILD_TESTS:BOOL={0}'.format(
- 'ON' if '+mpi' in spec else 'OFF'),
- '-DBOOST_ROOT:PATH={0}'.format(spec['boost'].prefix),
- '-DGTEST_ROOT:PATH={0}'.format(spec['googletest'].prefix),
- '-DBUILD_DOCS:BOOL=OFF',
- '-DFaodel_ENABLE_IOM_HDF5:BOOL={0}'.format(
- 'ON' if '+hdf5' in spec else 'OFF'),
- '-DFaodel_ENABLE_IOM_LEVELDB:BOOL={0}'.format(
- 'ON' if '+leveldb' in spec else 'OFF'),
- '-DFaodel_ENABLE_MPI_SUPPORT:BOOL={0}'.format(
- 'ON' if '+mpi' in spec else 'OFF'),
- '-DFaodel_ENABLE_TCMALLOC:BOOL={0}'.format(
- 'ON' if '+tcmalloc' in spec else 'OFF'),
- '-DFaodel_LOGGING_METHOD:STRING={0}'.format(
- spec.variants['logging'].value),
- '-DFaodel_NETWORK_LIBRARY:STRING={0}'.format(
- spec.variants['network'].value),
- '-DFaodel_ENABLE_CEREAL:BOOL={0}'.format(
- 'ON' if '+cereal' in spec else 'OFF')
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define('BOOST_ROOT', spec['boost'].prefix),
+ self.define('BUILD_DOCS', False),
+ self.define('BUILD_TESTS', build_tests),
+ self.define_from_variant('Faodel_ENABLE_IOM_HDF5', 'hdf5'),
+ # self.define_from_variant('Faodel_ENABLE_IOM_LEVELDB', 'leveldb'),
+ self.define_from_variant('Faodel_ENABLE_MPI_SUPPORT', 'mpi'),
+ self.define_from_variant('Faodel_ENABLE_TCMALLOC', 'tcmalloc'),
+ self.define_from_variant('Faodel_LOGGING_METHOD', 'logging'),
+ self.define_from_variant('Faodel_NETWORK_LIBRARY', 'network'),
+ self.define_from_variant('Faodel_ENABLE_CEREAL', 'cereal'),
]
+ if build_tests:
+ args.extend([
+ self.define('GTEST_ROOT', spec['googletest'].prefix)
+ ])
+
return args
diff --git a/var/spack/repos/builtin/packages/fasd/package.py b/var/spack/repos/builtin/packages/fasd/package.py
new file mode 100644
index 0000000000..d0e0519f10
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fasd/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 Fasd(MakefilePackage):
+ """Fasd (pronounced similar to "fast") is a command-line productivity
+ booster. Fasd offers quick access to files and directories for POSIX shells.
+ """
+
+ homepage = "https://github.com/clvv/fasd"
+ url = "https://github.com/clvv/fasd/archive/refs/tags/1.0.1.tar.gz"
+ git = "https://github.com/clvv/fasd.git"
+
+ version('1.0.1', sha256='88efdfbbed8df408699a14fa6c567450bf86480f5ff3dde42d0b3e1dee731f65')
+
+ def install(self, spec, prefix):
+ make('PREFIX={0}'.format(prefix), 'install')
diff --git a/var/spack/repos/builtin/packages/fast-global-file-status/package.py b/var/spack/repos/builtin/packages/fast-global-file-status/package.py
index 3400261a13..2b27de484c 100644
--- a/var/spack/repos/builtin/packages/fast-global-file-status/package.py
+++ b/var/spack/repos/builtin/packages/fast-global-file-status/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,14 +12,22 @@ class FastGlobalFileStatus(AutotoolsPackage):
homepage = "https://github.com/LLNL/FastGlobalFileStatus"
url = 'https://github.com/LLNL/FastGlobalFileStatus/files/2271592/fastglobalfilestatus-1.1.tar.gz'
+ git = "https://github.com/LLNL/FastGlobalFileStatus.git"
+ maintainers = ['lee218llnl']
+ version('master', branch='master')
+ version('1.1.1', sha256='397de583a99e60aae8b4485d3decac6e23f50c658a6353fea149d6dd50d3ecee', url="https://github.com/LLNL/FastGlobalFileStatus/releases/download/v1.1.1/fastglobalfilestatus-1.1.1.tar.gz")
version('1.1', sha256='e6fba4a0b7f055899fa0e05d93a435c7f1f2ec1158b9a6647dc8d2bcf9c2e164')
depends_on('mrnet')
- depends_on('mount-point-attributes')
+ # we depend on mpa@master for bug fixes since mpa 1.1
+ depends_on('mount-point-attributes@master')
depends_on('mpi')
depends_on('openssl')
depends_on('elf')
+ depends_on('autoconf', type='build', when='@master')
+ depends_on('automake', type='build', when='@master')
+ depends_on('libtool', type='build', when='@master')
def configure_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/fasta/package.py b/var/spack/repos/builtin/packages/fasta/package.py
index 49ff18bede..0b1b661751 100644
--- a/var/spack/repos/builtin/packages/fasta/package.py
+++ b/var/spack/repos/builtin/packages/fasta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fastdb/package.py b/var/spack/repos/builtin/packages/fastdb/package.py
index 92ea8783b9..c0e3be07cb 100644
--- a/var/spack/repos/builtin/packages/fastdb/package.py
+++ b/var/spack/repos/builtin/packages/fastdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fastdfs/package.py b/var/spack/repos/builtin/packages/fastdfs/package.py
index 688308e910..4d429c80fb 100644
--- a/var/spack/repos/builtin/packages/fastdfs/package.py
+++ b/var/spack/repos/builtin/packages/fastdfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fastjar/package.py b/var/spack/repos/builtin/packages/fastjar/package.py
index a0e0490020..5e941e3769 100644
--- a/var/spack/repos/builtin/packages/fastjar/package.py
+++ b/var/spack/repos/builtin/packages/fastjar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Fastjar(AutotoolsPackage):
"""Fastjar is a version of Sun's 'jar' utility, written entirely in C."""
- homepage = "http://savannah.nongnu.org/projects/fastjar/"
+ homepage = "https://savannah.nongnu.org/projects/fastjar/"
url = "http://download.savannah.gnu.org/releases/fastjar/fastjar-0.98.tar.gz"
version('0.98', sha256='f156abc5de8658f22ee8f08d7a72c88f9409ebd8c7933e9466b0842afeb2f145')
diff --git a/var/spack/repos/builtin/packages/fastjet/atlas.patch b/var/spack/repos/builtin/packages/fastjet/atlas.patch
new file mode 100644
index 0000000000..66b9cc1d1f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fastjet/atlas.patch
@@ -0,0 +1,22 @@
+--- include/fastjet/GhostedAreaSpec.hh.orig 2020-06-03 13:15:12.952183980 +0200
++++ include/fastjet/GhostedAreaSpec.hh 2020-06-03 13:16:00.676275264 +0200
+@@ -232,7 +232,7 @@
+
+
+ std::vector<int> _random_checkpoint;
+- static BasicRandom<double> _random_generator;
++ thread_local static BasicRandom<double> _random_generator;
+ //mutable BasicRandom<double> _random_generator;
+
+ static LimitedWarning _warn_fj2_placement_deprecated;
+--- src/GhostedAreaSpec.cc.orig 2020-06-04 11:37:41.196758510 +0200
++++ src/GhostedAreaSpec.cc 2020-06-04 11:38:07.499240761 +0200
+@@ -37,7 +37,7 @@
+
+ FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
+
+-BasicRandom<double> GhostedAreaSpec::_random_generator;
++thread_local BasicRandom<double> GhostedAreaSpec::_random_generator;
+ LimitedWarning GhostedAreaSpec::_warn_fj2_placement_deprecated;
+
+ /// explicit constructor
diff --git a/var/spack/repos/builtin/packages/fastjet/package.py b/var/spack/repos/builtin/packages/fastjet/package.py
index ad89e48027..5f7927163c 100644
--- a/var/spack/repos/builtin/packages/fastjet/package.py
+++ b/var/spack/repos/builtin/packages/fastjet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,8 @@ class Fastjet(AutotoolsPackage):
homepage = "http://fastjet.fr/"
url = "http://fastjet.fr/repo/fastjet-3.3.3.tar.gz"
+ tags = ['hep']
+
maintainers = ['drbenmorgan', 'vvolkl']
version('3.3.3', sha256='30b0a0282ce5aeac9e45862314f5966f0be941ce118a83ee4805d39b827d732b')
@@ -50,6 +52,9 @@ class Fastjet(AutotoolsPackage):
variant('shared', default=True, description='Builds a shared version of the library')
variant('auto-ptr', default=False, description='Use auto_ptr')
+ variant('atlas', default=False, description='Patch to make random generator thread_local')
+
+ patch('atlas.patch', when='+atlas', level=0)
def configure_args(self):
extra_args = ["--enable-allplugins"]
diff --git a/var/spack/repos/builtin/packages/fastjson/package.py b/var/spack/repos/builtin/packages/fastjson/package.py
index e3b63242d9..d3d10d483b 100644
--- a/var/spack/repos/builtin/packages/fastjson/package.py
+++ b/var/spack/repos/builtin/packages/fastjson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fastmath/package.py b/var/spack/repos/builtin/packages/fastmath/package.py
index e2c177832b..9874c2939d 100644
--- a/var/spack/repos/builtin/packages/fastmath/package.py
+++ b/var/spack/repos/builtin/packages/fastmath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fastme/package.py b/var/spack/repos/builtin/packages/fastme/package.py
index 83e5169088..ecea261e65 100644
--- a/var/spack/repos/builtin/packages/fastme/package.py
+++ b/var/spack/repos/builtin/packages/fastme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fastp/package.py b/var/spack/repos/builtin/packages/fastp/package.py
index 1fa7efb535..10ad8d387e 100644
--- a/var/spack/repos/builtin/packages/fastp/package.py
+++ b/var/spack/repos/builtin/packages/fastp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fastphase/package.py b/var/spack/repos/builtin/packages/fastphase/package.py
index 2639cb2d6a..fea15bed37 100644
--- a/var/spack/repos/builtin/packages/fastphase/package.py
+++ b/var/spack/repos/builtin/packages/fastphase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Fastphase(Package):
"""Software for haplotype reconstruction, and estimating missing genotypes
from population data."""
- homepage = "http://stephenslab.uchicago.edu/software.html"
+ homepage = "https://stephenslab.uchicago.edu/software.html"
url = "http://scheet.org/code/Linuxfp.tar.gz"
version('2016-03-30', sha256='f0762eaae38b276bccb567d1519fa19bf35fd4078e57cbf13c7d7054150c4f36')
diff --git a/var/spack/repos/builtin/packages/fastq-screen/package.py b/var/spack/repos/builtin/packages/fastq-screen/package.py
index 2b2096d343..acb3169777 100644
--- a/var/spack/repos/builtin/packages/fastq-screen/package.py
+++ b/var/spack/repos/builtin/packages/fastq-screen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fastqc/package.py b/var/spack/repos/builtin/packages/fastqc/package.py
index ab217684fa..47e7b9370b 100644
--- a/var/spack/repos/builtin/packages/fastqc/package.py
+++ b/var/spack/repos/builtin/packages/fastqc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Fastqc(Package):
"""A quality control tool for high throughput sequence data."""
- homepage = "http://www.bioinformatics.babraham.ac.uk/projects/fastqc/"
- url = "http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip"
+ homepage = "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/"
+ url = "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip"
version('0.11.9', sha256='15510a176ef798e40325b717cac556509fb218268cfdb9a35ea6776498321369')
version('0.11.7', sha256='59cf50876bbe5f363442eb989e43ae3eaab8d932c49e8cff2c1a1898dd721112')
diff --git a/var/spack/repos/builtin/packages/fastqvalidator/package.py b/var/spack/repos/builtin/packages/fastqvalidator/package.py
index 54d0b329bb..ce5ce2a542 100644
--- a/var/spack/repos/builtin/packages/fastqvalidator/package.py
+++ b/var/spack/repos/builtin/packages/fastqvalidator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Fastqvalidator(MakefilePackage):
"""The fastQValidator validates the format of fastq files."""
- homepage = "http://genome.sph.umich.edu/wiki/FastQValidator"
+ homepage = "https://genome.sph.umich.edu/wiki/FastQValidator"
git = "https://github.com/statgen/fastQValidator.git"
version('2017-01-10', commit='6d619a34749e9d33c34ef0d3e0e87324ca77f320')
diff --git a/var/spack/repos/builtin/packages/fasttext/package.py b/var/spack/repos/builtin/packages/fasttext/package.py
index 4a86a9f18f..adf2431d54 100644
--- a/var/spack/repos/builtin/packages/fasttext/package.py
+++ b/var/spack/repos/builtin/packages/fasttext/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fasttransforms/package.py b/var/spack/repos/builtin/packages/fasttransforms/package.py
index ca33a50428..92c1aae502 100644
--- a/var/spack/repos/builtin/packages/fasttransforms/package.py
+++ b/var/spack/repos/builtin/packages/fasttransforms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,7 @@ class Fasttransforms(MakefilePackage):
homepage = "https://github.com/MikaelSlevinsky/FastTransforms"
url = "https://github.com/MikaelSlevinsky/FastTransforms/archive/v0.3.4.tar.gz"
+ version('0.5.0', sha256='9556d0037bd5348a33f15ad6100e32053b6e22cab16a97c504f30d6c52fd0efd')
version('0.3.4', sha256='a5c8b5aedbdb40218521d061a7df65ef32ce153d4e19d232957db7e3e63c7e9b')
variant('quadmath', default=False, description="Support 128-bit floats")
diff --git a/var/spack/repos/builtin/packages/fasttree/package.py b/var/spack/repos/builtin/packages/fasttree/package.py
index 34ef2d7281..df50b485c0 100644
--- a/var/spack/repos/builtin/packages/fasttree/package.py
+++ b/var/spack/repos/builtin/packages/fasttree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fastx-toolkit/package.py b/var/spack/repos/builtin/packages/fastx-toolkit/package.py
index 8ad93ddad5..0b72098071 100644
--- a/var/spack/repos/builtin/packages/fastx-toolkit/package.py
+++ b/var/spack/repos/builtin/packages/fastx-toolkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/faust/package.py b/var/spack/repos/builtin/packages/faust/package.py
index c12a8704f6..0d568bc2fc 100644
--- a/var/spack/repos/builtin/packages/faust/package.py
+++ b/var/spack/repos/builtin/packages/faust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Faust(MakefilePackage):
specifically designed for real-time signal processing and synthesis.
A distinctive characteristic of Faust is to be fully compiled."""
- homepage = "http://faust.grame.fr/"
+ homepage = "https://faust.grame.fr/"
url = "https://github.com/grame-cncm/faust/archive/2.27.2.tar.gz"
version('2.27.2', sha256='3367a868a93b63582bae29ab8783f1df7a10f4084a2bc1d2258ebf3d6a8c31d7')
diff --git a/var/spack/repos/builtin/packages/fbgemm/package.py b/var/spack/repos/builtin/packages/fbgemm/package.py
new file mode 100644
index 0000000000..fde068f7be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fbgemm/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2021 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 Fbgemm(CMakePackage):
+ """FBGEMM (Facebook GEneral Matrix Multiplication) is a low-precision,
+ high-performance matrix-matrix multiplications and convolution library
+ for server-side inference."""
+
+ homepage = "https://github.com/pytorch/FBGEMM"
+ git = "https://github.com/pytorch/FBGEMM.git"
+
+ maintainers = ['dskhudia']
+
+ version('master', branch='master', submodules=True)
+ version('2021-05-10', commit='7794b2950b35ddfa7426091e7fb2f991b1407557', submodules=True) # py-torch@1.9
+ version('2020-11-13', commit='9b0131179f293a645bfd3409cd66fa5eecc393b0', submodules=True) # py-torch@1.8
+ version('2020-09-14', commit='1d710393d5b7588f5de3b83f51c22bbddf095229', submodules=True) # py-torch@1.7
+ version('2020-05-31', commit='7d673046a6a3ad1fa0d15dfb189cd06ffa217041', submodules=True) # py-torch@1.6
+ version('2020-05-21', commit='e526aadd058f2a0b8ce738be022e0e4ab4233a2d', submodules=True) # py-torch@1.5.1
+ version('2020-03-22', commit='58c002d1593f32aa420ab56b5c344e60d3fb6d05', submodules=True) # py-torch@1.5.0
+ version('2019-11-20', commit='399ea148f1403c100e6d601ec3587a621de96a84', submodules=True) # py-torch@1.4
+ version('2019-09-26', commit='7dfeddb5ba976f47471275b2468909dfd9b577e1', submodules=True) # py-torch@1.3
+ version('2019-07-22', commit='f712cb2328a2b29424bdaeecb9c0731da2cd997b', submodules=True) # py-torch@1.2
+ version('2019-04-18', commit='6ec218e6ed5dcb9b5397a608a3b5b8027b236819', submodules=True) # py-torch@1.1
+ version('2019-01-23', commit='79333308f5e2fc242727879dcd3de3536b6ffc39', submodules=True) # py-torch@1.0.1
+ version('2018-12-04', commit='0d5a159b944252e70a677236b570f291943e0543', submodules=True) # py-torch@1.0.0
+
+ depends_on('cmake@3.5:', type='build')
+ depends_on('ninja', type='build')
+ depends_on('python', type='build')
+ depends_on('llvm-openmp', when='%apple-clang')
+
+ conflicts('%gcc@:4', msg='FBGEMM requires GCC 5+')
+
+ generator = 'Ninja'
+
+ @run_before('cmake')
+ def check_requirements(self):
+ if 'avx2' not in self.spec.target:
+ raise RuntimeError(
+ 'FBGEMM requires a CPU with support for AVX2 instruction set or higher')
diff --git a/var/spack/repos/builtin/packages/fca/package.py b/var/spack/repos/builtin/packages/fca/package.py
index 226ae4315b..1ff48132d3 100644
--- a/var/spack/repos/builtin/packages/fca/package.py
+++ b/var/spack/repos/builtin/packages/fca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fcgi/package.py b/var/spack/repos/builtin/packages/fcgi/package.py
index 3b4036f6a3..656b148af6 100644
--- a/var/spack/repos/builtin/packages/fcgi/package.py
+++ b/var/spack/repos/builtin/packages/fcgi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fd-find/package.py b/var/spack/repos/builtin/packages/fd-find/package.py
index faf7374cb6..a8220616b1 100644
--- a/var/spack/repos/builtin/packages/fd-find/package.py
+++ b/var/spack/repos/builtin/packages/fd-find/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fdb/metkit_1.7.0.patch b/var/spack/repos/builtin/packages/fdb/metkit_1.7.0.patch
new file mode 100644
index 0000000000..8c7323295c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fdb/metkit_1.7.0.patch
@@ -0,0 +1,11 @@
+--- a/src/fdb5/tools/fdb-hammer.cc
++++ b/src/fdb5/tools/fdb-hammer.cc
+@@ -22,7 +22,7 @@
+ #include "eckit/option/SimpleOption.h"
+ #include "eckit/option/VectorOption.h"
+
+-#include "metkit/grib/GribHandle.h"
++#include "metkit/codes/GribHandle.h"
+
+ #include "fdb5/grib/GribArchiver.h"
+ #include "fdb5/io/HandleGatherer.h"
diff --git a/var/spack/repos/builtin/packages/fdb/package.py b/var/spack/repos/builtin/packages/fdb/package.py
new file mode 100644
index 0000000000..b42b01fb17
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fdb/package.py
@@ -0,0 +1,73 @@
+# Copyright 2013-2021 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 Fdb(CMakePackage):
+ """FDB (Fields DataBase) is a domain-specific object store developed at
+ ECMWF for storing, indexing and retrieving GRIB data."""
+
+ homepage = 'https://github.com/ecmwf/fdb'
+ url = 'https://github.com/ecmwf/fdb/archive/refs/tags/5.7.8.tar.gz'
+
+ maintainers = ['skosukhin']
+
+ version('5.7.8', sha256='6adac23c0d1de54aafb3c663d077b85d0f804724596623b381ff15ea4a835f60')
+
+ variant('tools', default=True, description='Build the command line tools')
+ variant(
+ 'backends',
+ values=any_combination_of(
+ # FDB backend in indexed filesystem with table-of-contents with
+ # additional support for Lustre filesystem stripping control:
+ 'lustre',
+ # Backends that will be added later:
+ # FDB backend in persistent memory (NVRAM):
+ # 'pmem', # (requires https://github.com/ecmwf/pmem)
+ # FDB backend in CEPH object store (using Rados):
+ # 'rados' # (requires eckit with RADOS support)
+ ), description='List of supported backends')
+
+ depends_on('cmake@3.12:', type='build')
+ depends_on('ecbuild@3.4:', type='build')
+
+ depends_on('eckit@1.16:')
+ depends_on('eckit+admin', when='+tools')
+
+ depends_on('eccodes@2.10:')
+ depends_on('metkit@1.5:+grib')
+
+ depends_on('lustre', when='backends=lustre')
+
+ # Starting version 1.7.0, metkit installs GribHandle.h to another directory.
+ # That is accounted for only starting version 5.8.0:
+ patch('metkit_1.7.0.patch', when='@:5.7.10+tools^metkit@1.7.0:')
+
+ # Download test data before running a test:
+ patch('https://github.com/ecmwf/fdb/commit/86e06b60f9a2d76a389a5f49bedd566d4c2ad2b2.patch',
+ sha256='e2254577e6d84a61d394eddcf42f894582f5daaf58d8962c609e41be0e3471b3',
+ when='@5.7.1:5.7.10+tools')
+
+ def cmake_args(self):
+ enable_build_tools = '+tools' in self.spec
+
+ args = [
+ self.define('ENABLE_FDB_BUILD_TOOLS', enable_build_tools),
+ self.define('ENABLE_BUILD_TOOLS', enable_build_tools),
+ # We cannot disable the FDB backend in indexed filesystem with
+ # table-of-contents because some default test programs and tools
+ # cannot be built without it:
+ self.define('ENABLE_TOCFDB', True),
+ self.define('ENABLE_LUSTRE', 'backends=lustre' in self.spec),
+ self.define('ENABLE_PMEMFDB', False),
+ self.define('ENABLE_RADOSFDB', False),
+ # The tests download additional data (~10MB):
+ self.define('ENABLE_TESTS', self.run_tests),
+ # We do not need any experimental features:
+ self.define('ENABLE_EXPERIMENTAL', False),
+ self.define('ENABLE_SANDBOX', False)
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/fdupes/package.py b/var/spack/repos/builtin/packages/fdupes/package.py
index f2b7f32ef3..0d5792b824 100644
--- a/var/spack/repos/builtin/packages/fdupes/package.py
+++ b/var/spack/repos/builtin/packages/fdupes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,6 +20,7 @@ class Fdupes(AutotoolsPackage):
variant('ncurses', default=True, description='ncurses support')
depends_on('ncurses', when='+ncurses')
+ depends_on('pcre2', when='+ncurses')
def configure_args(self):
return self.with_or_without('ncurses')
diff --git a/var/spack/repos/builtin/packages/feh/package.py b/var/spack/repos/builtin/packages/feh/package.py
index 4d82263494..eb3af510e2 100644
--- a/var/spack/repos/builtin/packages/feh/package.py
+++ b/var/spack/repos/builtin/packages/feh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fenics-basix/package.py b/var/spack/repos/builtin/packages/fenics-basix/package.py
new file mode 100644
index 0000000000..e86d653a59
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fenics-basix/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 FenicsBasix(CMakePackage):
+ """FEniCS element and quadrature runtime"""
+
+ homepage = "https://github.com/FEniCS/basix"
+ url = "https://github.com/FEniCS/basix/archive/v0.1.0.tar.gz"
+ git = "https://github.com/FEniCS/basix.git"
+ maintainers = ["mscroggs", "chrisrichardson", "garth-wells"]
+
+ version("main", branch="main")
+ version("0.3.0", sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07")
+ version("0.2.0", sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb")
+ version("0.1.0", sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7")
+
+ depends_on("cmake@3.18:", type="build")
+ depends_on("xtl@0.7.2:")
+ depends_on("xtensor@0.23.10:")
+ depends_on("blas", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py
index 6cdc7e8f66..1266b7e166 100644
--- a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py
+++ b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,30 +11,45 @@ class FenicsDolfinx(CMakePackage):
homepage = "https://github.com/FEniCS/dolfinx"
git = "https://github.com/FEniCS/dolfinx.git"
- maintainers = ["js947", "chrisrichardson"]
+ url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz"
+ maintainers = ["js947", "chrisrichardson", "garth-wells"]
- version("master", branch="master")
+ version("main", branch="main")
+ version("0.3.0", sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed")
+ version("0.2.0", sha256="4c9b5a5c7ef33882c99299c9b4d98469fb7aa470a37a91bc5be3bb2fc5b863a4")
+ version("0.1.0", sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33")
variant("kahip", default=False, description="kahip support")
variant("parmetis", default=False, description="parmetis support")
variant("slepc", default=False, description="slepc support")
- depends_on("cmake@3.9:", type="build")
+ depends_on("cmake@3.18:", type="build")
depends_on("pkgconfig", type="build")
depends_on("mpi")
- depends_on("hdf5")
+ depends_on("hdf5+mpi")
depends_on("boost@1.7.0:+filesystem+program_options+timer")
- depends_on("eigen@3.3.7:")
depends_on("petsc+mpi+shared")
+ depends_on("petsc+mpi+shared@3.15.0:", when="@0.1.0")
depends_on("scotch+mpi")
+ depends_on("xtensor@0.23.10:", type=("build", "link"))
depends_on("kahip", when="+kahip")
depends_on("parmetis", when="+parmetis")
depends_on("slepc", when="+slepc")
depends_on("py-fenics-ffcx", type=("build", "run"))
+ depends_on("py-fenics-ffcx@main", type=("build", "run"), when="@main")
+ depends_on("py-fenics-ffcx@0.3.0", type=("build", "run"), when="@0.3.0")
+ depends_on("py-fenics-ffcx@0.2.0", type=("build", "run"), when="@0.2.0")
+ depends_on("py-fenics-ffcx@0.1.0", type=("build", "run"), when="@0.1.0")
- conflicts('%gcc@:6', msg='C++17 support required')
+ depends_on("fenics-basix", type=("build", "link"))
+ depends_on("fenics-basix@main", type=("build", "link"), when="@main")
+ depends_on("fenics-basix@0.3.0", type=("build", "link"), when="@0.3.0")
+ depends_on("fenics-basix@0.2.0", type=("build", "link"), when="@0.2.0")
+ depends_on("fenics-basix@0.1.0", type=("build", "link"), when="@0.1.0")
+
+ conflicts('%gcc@:8', msg='Improved C++17 support required')
root_cmakelists_dir = "cpp"
diff --git a/var/spack/repos/builtin/packages/fenics/header_fix.patch b/var/spack/repos/builtin/packages/fenics/header_fix.patch
new file mode 100644
index 0000000000..f5622d7e9d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fenics/header_fix.patch
@@ -0,0 +1,36 @@
+From 3d3916e01f22c20eb4aa80d1ed784402a17422f6 Mon Sep 17 00:00:00 2001
+Date: Thu, 10 Sep 2020 23:16:31 +0200
+Subject: [PATCH] fixed compilation errors by adding the algorithm header
+
+---
+ dolfin/geometry/IntersectionConstruction.cpp | 1 +
+ dolfin/mesh/MeshFunction.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/dolfin/geometry/IntersectionConstruction.cpp b/dolfin/geometry/IntersectionConstruction.cpp
+index 765dbb674..fe72ee5f6 100644
+--- a/dolfin/geometry/IntersectionConstruction.cpp
++++ b/dolfin/geometry/IntersectionConstruction.cpp
+@@ -18,6 +18,7 @@
+ // First added: 2014-02-03
+ // Last changed: 2017-12-12
+
++#include <algorithm> // fix compiling problem with min_element
+ #include <iomanip>
+ #include <dolfin/mesh/MeshEntity.h>
+ #include "predicates.h"
+diff --git a/dolfin/mesh/MeshFunction.h b/dolfin/mesh/MeshFunction.h
+index 08cbc824f..6d4a22f6e 100644
+--- a/dolfin/mesh/MeshFunction.h
++++ b/dolfin/mesh/MeshFunction.h
+@@ -26,6 +26,7 @@
+
+ #include <map>
+ #include <vector>
++#include <algorithm> // EM: fix for compile error, line 652
+
+ #include <memory>
+ #include <unordered_set>
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/fenics/package.py b/var/spack/repos/builtin/packages/fenics/package.py
index 7dbdc777a5..164148149a 100644
--- a/var/spack/repos/builtin/packages/fenics/package.py
+++ b/var/spack/repos/builtin/packages/fenics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,26 +10,43 @@ class Fenics(CMakePackage):
"""FEniCS is organized as a collection of interoperable components
that together form the FEniCS Project. These components include
the problem-solving environment DOLFIN, the form compiler FFC, the
- finite element tabulator FIAT, the just-in-time compiler Instant,
- the code generation interface UFC, the form language UFL and a
- range of additional components."""
-
- homepage = "http://fenicsproject.org/"
- url = "https://bitbucket.org/fenics-project/dolfin/downloads/dolfin-1.6.0.tar.gz"
- base_url = "https://bitbucket.org/fenics-project/{pkg}/downloads/{pkg}-{version}.tar.gz"
-
- python_components = ['ufl', 'ffc', 'fiat', 'instant']
-
+ finite element tabulator FIAT, the just-in-time compiler Instant / Dijitso,
+ the code generation interface UFC, the form language UFL and a range of
+ additional components."""
+
+ homepage = "https://fenicsproject.org/"
+ git = "https://bitbucket.org/fenics-project/dolfin.git"
+ url = "https://bitbucket.org/fenics-project/dolfin/downloads/dolfin-2019.1.0.post0.tar.gz"
+
+ version('2019.1.0.post0', sha256='61abdcdb13684ba2a3ba4afb7ea6c7907aa0896a46439d3af7e8848483d4392f')
+ version('2018.1.0.post1', sha256='425cc49b90e0f5c2ebdd765ba9934b1ada97e2ac2710d982d6d267a5e2c5982d')
+ # Pre 2018.1.0 versions are deprecated due to expected compatibility issues
+ version('2017.2.0.post0',
+ sha256='d3c40cd8c1c882f517999c25ea4220adcd01dbb1d829406fce99b1fc40184c82',
+ deprecated=True)
+ version('2016.2.0',
+ sha256='c6760996660a476f77889e11e4a0bc117cc774be0eec777b02a7f01d9ce7f43d',
+ deprecated=True)
+ version('1.6.0',
+ sha256='67f66c39983a8c5a1ba3c0787fa9b9082778bc7227b25c7cad80dc1299e0a201',
+ deprecated=True)
+
+ dolfin_versions = ['2019.1.0', '2018.1.0', '2017.2.0', '2016.2.0', '1.6.0']
+
+ variant('python', default=True, description='Compile with Python interface')
variant('hdf5', default=True, description='Compile with HDF5')
variant('parmetis', default=True, description='Compile with ParMETIS')
variant('scotch', default=True, description='Compile with Scotch')
variant('petsc', default=True, description='Compile with PETSc')
variant('slepc', default=True, description='Compile with SLEPc')
- variant('trilinos', default=True, description='Compile with Trilinos')
+ variant('petsc4py', default=True, description='Use PETSC4py')
+ variant('slepc4py', default=True, description='Use SLEPc4py')
+ variant('trilinos', default=False, description='Compile with Trilinos')
variant('suite-sparse', default=True,
description='Compile with SuiteSparse solvers')
variant('vtk', default=False, description='Compile with VTK')
variant('qt', default=False, description='Compile with QT')
+ variant('zlib', default=False, description='Compile with ZLIB')
variant('mpi', default=True,
description='Enables the distributed memory support')
variant('openmp', default=True,
@@ -43,135 +60,108 @@ class Fenics(CMakePackage):
values=('Debug', 'Release', 'RelWithDebInfo',
'MinSizeRel', 'Developer'))
- # not part of spack list for now
- # variant('petsc4py', default=True, description='Uses PETSc4py')
- # variant('slepc4py', default=True, description='Uses SLEPc4py')
- # variant('pastix', default=True, description='Compile with Pastix')
-
- patch('petsc-3.7.patch', when='@1.6.1^petsc@3.7:')
- patch('petsc-version-detection.patch', when='@:1.6.1')
- patch('hdf5~cxx-detection.patch')
-
- extends('python')
-
+ # Conflics for PETSC4PY / SLEPC4PY
+ conflicts('+petsc4py', when='~python')
+ conflicts('+petsc4py', when='~petsc')
+ conflicts('+slepc4py', when='~python')
+ conflicts('+slepc4py', when='~slepc')
+
+ # Patches
+ # patch('petsc-3.7.patch', when='petsc@3.7:')
+ patch('petsc-version-detection.patch', when='@1.6.0')
+ patch('hdf5~cxx-detection.patch', when='@:1.6.0')
+
+ patch('header_fix.patch', when='@2019.1.0.post0')
+ # endian.hpp for byte order detection was removed with Boost 1.73,
+ # use __BYTE_ORDER__ instead
+ patch('https://bitbucket.org/fenics-project/dolfin/issues/attachments/1116/fenics-project/dolfin/1602778118.04/1116/0001-Use-__BYTE_ORDER__-instead-of-removed-Boost-endian.h.patch',
+ sha256='1cc69e612df18feb5ebdc78cd902cfefda5ffc077735f0b67a1dcb1bf82e63c9',
+ when='@2019.1.0.post0')
+ patch('petsc_3_11.patch', when='@2018.1.0.post1')
+
+ # enable extension support for fenics package
+ extends('python', when='+python')
+
+ # fenics python package dependencies
+ for ver in dolfin_versions:
+ wver = '@' + ver
+ depends_on('py-fenics-fiat{0}'.format(wver), type=('build', 'run'), when=wver + '+python')
+ if(Version(ver) < Version('2018.1.0')):
+ depends_on('py-fenics-instant{0}'.format(wver), type=('build', 'run'), when=wver + '+python')
+ else:
+ depends_on('py-fenics-dijitso{0}'.format(wver), type=('build', 'run'), when=wver + '+python')
+ depends_on('py-fenics-ufl{0}'.format(wver), type=('build', 'run'), when=wver + '+python')
+ if ver in ['2019.1.0', '2017.2.0']:
+ wver = '@' + ver + '.post0'
+ depends_on('py-fenics-ffc{0}'.format(wver), type=('build', 'run'), when=wver + '+python')
+
+ # package dependencies
+ depends_on('python@3.5:', type=('build', 'run'), when='+python')
depends_on('eigen@3.2.0:')
+ depends_on('pkgconfig', type='build')
+ depends_on('zlib', when='+zlib')
+
depends_on('boost+filesystem+program_options+system+iostreams+timer+regex+chrono')
+ depends_on('boost+filesystem+program_options+system+iostreams+timer+regex+chrono@1.68.0', when='@:2018.99')
depends_on('mpi', when='+mpi')
- # FIXME: next line fixes concretization with petsc
depends_on('hdf5+hl+fortran', when='+hdf5+petsc')
depends_on('hdf5+hl', when='+hdf5~petsc')
- depends_on('parmetis@4.0.2:', when='+parmetis')
depends_on('metis+real64', when='+parmetis')
+ depends_on('parmetis', when='+parmetis')
depends_on('scotch~metis', when='+scotch~mpi')
depends_on('scotch+mpi~metis', when='+scotch+mpi')
- depends_on('petsc@3.4:', when='+petsc')
- depends_on('slepc@3.4:', when='+slepc')
+ depends_on('petsc', when='+petsc')
+ depends_on('slepc', when='+slepc')
+ depends_on('py-petsc4py@3.6:', when='+petsc+python')
depends_on('trilinos', when='+trilinos')
depends_on('vtk', when='+vtk')
depends_on('suite-sparse', when='+suite-sparse')
depends_on('qt', when='+qt')
- depends_on('py-ply', type=('build', 'run'))
- depends_on('py-six', type=('build', 'run'))
- depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-sympy', type=('build', 'run'))
- depends_on('swig@3.0.3:', type=('build', 'run'))
- depends_on('cmake@2.8.12:', type='build')
+ depends_on('py-pybind11@2.2.4', type=('build', 'run'))
+ depends_on('cmake@3.17.3:', type='build')
- depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools', type='build', when='+python')
+ depends_on('py-pkgconfig', type=('build', 'run'), when='+python')
depends_on('py-sphinx@1.0.1:', when='+doc', type='build')
- releases = [
- {
- 'version': '2016.1.0',
- 'sha256': '6228b4d641829a4cd32141bfcd217a1596a27d5969aa00ee64ebba2b1c0fb148',
- 'resources': {
- 'ffc': '52430ce4c7d57ce1b81eb5fb304992247c944bc6a6054c8b6f42bac81702578d',
- 'fiat': '851723126a71bc1ae2dc4ad6e9330bd9b54d52db390dcbbc1f3c759fb49c6aeb',
- 'instant': '7bf03c8a7b61fd1e432b8f3a0405410ae68892ebb1a62a9f8118e8846bbeb0c6',
- 'ufl': '8dccfe10d1251ba48a4d43a4c6c89abe076390223b500f4baf06f696294b8dd0',
- }
- },
- {
- 'version': '1.6.0',
- 'sha256': '67eaac5fece6e71da0559b4ca8423156f9e99a952f0620adae449ebebb6695d1',
- 'resources': {
- 'ffc': '382e7713fe759694e5f07506b144eeead681e169e5a34c164ef3da30eddcc1c6',
- 'fiat': '858ea3e936ad3b3558b474ffccae8a7b9dddbaafeac77e307115b23753cb1cac',
- 'instant': '2347e0229531969095911fdb1de30bd77bdd7f81521ba84d81b1b4a564fc906c',
- 'ufl': 'c75c4781e5104504f158cb42cd87aceffa9052e8e9db6e9764e6a5b6115d7f73',
- }
- },
- ]
-
- for release in releases:
- version(release['version'], release['sha256'], url=base_url.format(
- pkg='dolfin', version=release['version']))
- for rname, sha256 in release['resources'].items():
- resource(name=rname,
- url=base_url.format(pkg=rname, **release),
- sha256=sha256,
- destination='depends',
- when='@{version}'.format(**release),
- placement=rname)
-
- def cmake_is_on(self, option):
- return 'ON' if option in self.spec else 'OFF'
-
def cmake_args(self):
return [
- '-DDOLFIN_ENABLE_DOCS:BOOL={0}'.format(
- self.cmake_is_on('+doc')),
- '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
- self.cmake_is_on('+shared')),
- '-DDOLFIN_SKIP_BUILD_TESTS:BOOL=ON',
- '-DDOLFIN_ENABLE_OPENMP:BOOL={0}'.format(
- self.cmake_is_on('+openmp')),
- '-DDOLFIN_ENABLE_CHOLMOD:BOOL={0}'.format(
- self.cmake_is_on('suite-sparse')),
- '-DDOLFIN_ENABLE_HDF5:BOOL={0}'.format(
- self.cmake_is_on('hdf5')),
- '-DDOLFIN_ENABLE_MPI:BOOL={0}'.format(
- self.cmake_is_on('mpi')),
- '-DDOLFIN_ENABLE_PARMETIS:BOOL={0}'.format(
- self.cmake_is_on('parmetis')),
- '-DDOLFIN_ENABLE_PASTIX:BOOL={0}'.format(
- self.cmake_is_on('pastix')),
- '-DDOLFIN_ENABLE_PETSC:BOOL={0}'.format(
- self.cmake_is_on('petsc')),
- '-DDOLFIN_ENABLE_PETSC4PY:BOOL={0}'.format(
- self.cmake_is_on('py-petsc4py')),
- '-DDOLFIN_ENABLE_PYTHON:BOOL={0}'.format(
- self.cmake_is_on('python')),
- '-DDOLFIN_ENABLE_QT:BOOL={0}'.format(
- self.cmake_is_on('qt')),
- '-DDOLFIN_ENABLE_SCOTCH:BOOL={0}'.format(
- self.cmake_is_on('scotch')),
- '-DDOLFIN_ENABLE_SLEPC:BOOL={0}'.format(
- self.cmake_is_on('slepc')),
- '-DDOLFIN_ENABLE_SLEPC4PY:BOOL={0}'.format(
- self.cmake_is_on('py-slepc4py')),
- '-DDOLFIN_ENABLE_SPHINX:BOOL={0}'.format(
- self.cmake_is_on('py-sphinx')),
- '-DDOLFIN_ENABLE_TRILINOS:BOOL={0}'.format(
- self.cmake_is_on('trilinos')),
- '-DDOLFIN_ENABLE_UMFPACK:BOOL={0}'.format(
- self.cmake_is_on('suite-sparse')),
- '-DDOLFIN_ENABLE_VTK:BOOL={0}'.format(
- self.cmake_is_on('vtk')),
- '-DDOLFIN_ENABLE_ZLIB:BOOL={0}'.format(
- self.cmake_is_on('zlib')),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define('DOLFIN_SKIP_BUILD_TESTS', True),
+ self.define_from_variant('DOLFIN_ENABLE_OPENMP', 'openmp'),
+ self.define_from_variant('DOLFIN_ENABLE_CHOLMOD', 'suite-sparse'),
+ self.define_from_variant('DOLFIN_ENABLE_HDF5', 'hdf5'),
+ self.define_from_variant('HDF5_NO_FIND_PACKAGE_CONFIG_FILE', 'hdf5'),
+ self.define_from_variant('DOLFIN_ENABLE_MPI', 'mpi'),
+ self.define_from_variant('DOLFIN_ENABLE_PARMETIS', 'parmetis'),
+ self.define_from_variant('DOLFIN_ENABLE_PETSC', 'petsc'),
+ self.define_from_variant('DOLFIN_ENABLE_PETSC4PY', 'petsc4py'),
+ self.define_from_variant('DOLFIN_ENABLE_PYTHON', 'python'),
+ self.define_from_variant('DOLFIN_ENABLE_QT', 'qt'),
+ self.define_from_variant('DOLFIN_ENABLE_SCOTCH', 'scotch'),
+ self.define_from_variant('DOLFIN_ENABLE_SLEPC', 'slepc'),
+ self.define_from_variant('DOLFIN_ENABLE_SLEPC4PY', 'slepc4py'),
+ self.define_from_variant('DOLFIN_ENABLE_DOCS', 'doc'),
+ self.define_from_variant('DOLFIN_ENABLE_SPHINX', 'doc'),
+ self.define_from_variant('DOLFIN_ENABLE_TRILINOS', 'trilinos'),
+ self.define_from_variant('DOLFIN_ENABLE_UMFPACK', 'suite-sparse'),
+ self.define_from_variant('DOLFIN_ENABLE_VTK', 'vtk'),
+ self.define_from_variant('DOLFIN_ENABLE_ZLIB', 'zlib'),
]
- @run_after('build')
- def build_python_components(self):
- for package in self.python_components:
- with working_dir(join_path('depends', package)):
- setup_py('build')
+ # set environment for bulding python interface
+ def setup_build_environment(self, env):
+ env.set('DOLFIN_DIR', self.prefix)
+
+ def setup_run_environment(self, env):
+ env.set('DOLFIN_DIR', self.prefix)
+ # build python interface of dolfin
@run_after('install')
- def install_python_components(self):
- for package in self.python_components:
- with working_dir(join_path('depends', package)):
- setup_py('install', '--prefix={0}'.format(self.prefix))
+ def install_python_interface(self):
+ if '+python' in self.spec:
+ with working_dir('python'):
+ setup_py('install', '--single-version-externally-managed',
+ '--root=/', '--prefix={0}'.format(self.prefix))
diff --git a/var/spack/repos/builtin/packages/fenics/petsc_3_11.patch b/var/spack/repos/builtin/packages/fenics/petsc_3_11.patch
new file mode 100644
index 0000000000..98c0d94618
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fenics/petsc_3_11.patch
@@ -0,0 +1,31 @@
+diff --git a/dolfin/la/PETScOptions.h b/dolfin/la/PETScOptions.h
+index 37e5054b3..5ae24e6f5 100644
+--- a/dolfin/la/PETScOptions.h
++++ b/dolfin/la/PETScOptions.h
+@@ -22,7 +22,7 @@
+
+ #include <string>
+ #include <boost/lexical_cast.hpp>
+-#include <petscoptions.h>
++#include <petscsys.h>
+ #include <dolfin/common/SubSystemsManager.h>
+ #include <dolfin/log/log.h>
+ #include "PETScObject.h"
+diff --git a/dolfin/nls/PETScSNESSolver.cpp b/dolfin/nls/PETScSNESSolver.cpp
+index b3e1d62c5..43923ca7b 100644
+--- a/dolfin/nls/PETScSNESSolver.cpp
++++ b/dolfin/nls/PETScSNESSolver.cpp
+@@ -48,7 +48,10 @@ PETScSNESSolver::_methods
+ = { {"default", {"default SNES method", ""}},
+ {"newtonls", {"Line search method", SNESNEWTONLS}},
+ {"newtontr", {"Trust region method", SNESNEWTONTR}},
++#if PETSC_VERSION_LT(3,9,0)
++ // SNESTEST functionality removed in petsc 3.9
+ {"test", {"Tool to verify Jacobian approximation", SNESTEST}},
++#endif
+ {"ngmres", {"Nonlinear generalised minimum residual method",
+ SNESNGMRES}},
+ {"nrichardson", {"Richardson nonlinear method (Picard iteration)",
+diff --git a/petsc_3_11.patch b/petsc_3_11.patch
+new file mode 100644
+index 000000000..e69de29bb
diff --git a/var/spack/repos/builtin/packages/feq-parse/package.py b/var/spack/repos/builtin/packages/feq-parse/package.py
index ea2bcc0031..d234b82a1a 100644
--- a/var/spack/repos/builtin/packages/feq-parse/package.py
+++ b/var/spack/repos/builtin/packages/feq-parse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fermi/ksw_for_aarch64.patch b/var/spack/repos/builtin/packages/fermi/ksw_for_aarch64.patch
index 1f4c4c0b6f..2e76893ce0 100644
--- a/var/spack/repos/builtin/packages/fermi/ksw_for_aarch64.patch
+++ b/var/spack/repos/builtin/packages/fermi/ksw_for_aarch64.patch
@@ -5,7 +5,7 @@
#include <stdlib.h>
#include <stdint.h>
-#include <emmintrin.h>
-+#include <SSE2NEON.h>
++#include <sse2neon.h>
#include "ksw.h"
#ifdef __GNUC__
diff --git a/var/spack/repos/builtin/packages/fermi/package.py b/var/spack/repos/builtin/packages/fermi/package.py
index bdfb1f01f9..a0d2fb29a0 100644
--- a/var/spack/repos/builtin/packages/fermi/package.py
+++ b/var/spack/repos/builtin/packages/fermi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fermikit/ksw_for_aarch64.patch b/var/spack/repos/builtin/packages/fermikit/ksw_for_aarch64.patch
index 5c835bf3df..4928430d44 100644
--- a/var/spack/repos/builtin/packages/fermikit/ksw_for_aarch64.patch
+++ b/var/spack/repos/builtin/packages/fermikit/ksw_for_aarch64.patch
@@ -5,7 +5,7 @@
#include <stdint.h>
#include <assert.h>
-#include <emmintrin.h>
-+#include <SSE2NEON.h>
++#include <sse2neon.h>
#include "ksw.h"
#ifdef USE_MALLOC_WRAPPERS
@@ -16,7 +16,7 @@
#include <stdlib.h>
#include <stdint.h>
-#include <emmintrin.h>
-+#include <SSE2NEON.h>
++#include <sse2neon.h>
#include "ksw.h"
#ifdef __GNUC__
@@ -27,7 +27,7 @@
#include <stdlib.h>
#include <stdint.h>
-#include <emmintrin.h>
-+#include <SSE2NEON.h>
++#include <sse2neon.h>
#include "ksw.h"
#ifdef __GNUC__
@@ -38,7 +38,7 @@
#include <stdint.h>
#include <string.h>
-#include <emmintrin.h>
-+#include <SSE2NEON.h>
++#include <sse2neon.h>
#include "ksw.h"
#ifdef __GNUC__
diff --git a/var/spack/repos/builtin/packages/fermikit/package.py b/var/spack/repos/builtin/packages/fermikit/package.py
index c76cb0d6a8..603ff3b321 100644
--- a/var/spack/repos/builtin/packages/fermikit/package.py
+++ b/var/spack/repos/builtin/packages/fermikit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fermisciencetools/package.py b/var/spack/repos/builtin/packages/fermisciencetools/package.py
index 81719b4fd9..a0d8bd30f9 100644
--- a/var/spack/repos/builtin/packages/fermisciencetools/package.py
+++ b/var/spack/repos/builtin/packages/fermisciencetools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ferret/package.py b/var/spack/repos/builtin/packages/ferret/package.py
index 5878403e26..7131b78332 100644
--- a/var/spack/repos/builtin/packages/ferret/package.py
+++ b/var/spack/repos/builtin/packages/ferret/package.py
@@ -1,18 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Ferret(Package):
"""Ferret is an interactive computer visualization and analysis environment
designed to meet the needs of oceanographers and meteorologists
analyzing large and complex gridded data sets."""
- homepage = "http://ferret.pmel.noaa.gov/Ferret/home"
+ homepage = "https://ferret.pmel.noaa.gov/Ferret/home"
url = "https://github.com/NOAA-PMEL/Ferret/archive/v7.6.0.tar.gz"
maintainers = ['RemiLacroix-IDRIS']
diff --git a/var/spack/repos/builtin/packages/ffb/package.py b/var/spack/repos/builtin/packages/ffb/package.py
index 7f55d74a6e..c2242e02b3 100644
--- a/var/spack/repos/builtin/packages/ffb/package.py
+++ b/var/spack/repos/builtin/packages/ffb/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
@@ -12,6 +13,8 @@ class Ffb(MakefilePackage):
homepage = "http://www.ciss.iis.u-tokyo.ac.jp/dl/index.php"
url = "file://{0}/FrontFlow_blue.8.1.tar.gz".format(os.getcwd())
+ manual_download = True
+
version('8.1', sha256='1ad008c909152b6c27668bafbad820da3e6ec3309c7e858ddb785f0a3d6e43ae')
patch('revocap_refiner.patch')
@@ -150,12 +153,14 @@ class Ffb(MakefilePackage):
cxx_fortran_flags = []
if spec.satisfies('%gcc'):
cxx_fortran_flags.append('-lgfortran')
- elif spec.satisfies('%intel'):
- cxx_fortran_flags.expand(['-lifcore', '-limf'])
+ m = FileFilter(editfile)
+ m.filter('-lifcore -limf', ' '.join(cxx_fortran_flags))
elif spec.satisfies('%fj'):
cxx_fortran_flags.append('--linkfortran')
- m = FileFilter(editfile)
- m.filter('-lifcore -limf', ' '.join(cxx_fortran_flags))
+ m = FileFilter(editfile)
+ m.filter('-lifcore -limf', ' '.join(cxx_fortran_flags))
+ elif spec.satisfies('%intel'):
+ pass
def build(self, spec, prefix):
for m in [join_path('make', 'Makeall'),
diff --git a/var/spack/repos/builtin/packages/ffmpeg/package.py b/var/spack/repos/builtin/packages/ffmpeg/package.py
index 38b3c05ea5..b0d05d3501 100644
--- a/var/spack/repos/builtin/packages/ffmpeg/package.py
+++ b/var/spack/repos/builtin/packages/ffmpeg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,11 @@ class Ffmpeg(AutotoolsPackage):
convert and stream audio and video."""
homepage = "https://ffmpeg.org"
- url = "http://ffmpeg.org/releases/ffmpeg-4.1.1.tar.bz2"
+ url = "https://ffmpeg.org/releases/ffmpeg-4.1.1.tar.bz2"
maintainers = ['xjrc']
+ version('4.3.2', sha256='ab3a6d6a70358ba0a5f67f37f91f6656b7302b02e98e5b8c846c16763c99913a')
version('4.2.2', sha256='b620d187c26f76ca19e74210a0336c3b8380b97730df5cdf45f3e69e89000e5c')
version('4.1.1', sha256='0cb40e3b8acaccd0ecb38aa863f66f0c6e02406246556c2992f67bf650fab058')
version('4.1', sha256='b684fb43244a5c4caae652af9022ed5d85ce15210835bce054a33fb26033a1a5')
@@ -51,6 +52,7 @@ class Ffmpeg(AutotoolsPackage):
variant('libspeex', default=False, description='Speex de/encoding')
variant('libssh', default=False, description='SFTP protocol')
variant('libvorbis', default=False, description='Vorbis en/decoding')
+ variant('libvpx', default=False, description='VP9 en/decoding')
variant('libwebp', default=False, description='WebP encoding via libwebp')
# TODO: There is an issue with the spack headers property in the libxml2
# package recipe. Comment out the libxml2 variant until that is resolved.
@@ -76,6 +78,7 @@ class Ffmpeg(AutotoolsPackage):
depends_on('lame', when='+libmp3lame')
depends_on('libssh', when='+libssh')
depends_on('libvorbis', when='+libvorbis')
+ depends_on('libvpx', when='+libvpx')
depends_on('libwebp', when='+libwebp')
# TODO: enable libxml2 when libxml2 header issue is resolved
# depends_on('libxml2', when='+libxml2')
@@ -163,6 +166,7 @@ class Ffmpeg(AutotoolsPackage):
'libopus',
'libspeex',
'libvorbis',
+ 'libvpx',
'avresample',
'openssl',
'shared',
diff --git a/var/spack/repos/builtin/packages/ffr/package.py b/var/spack/repos/builtin/packages/ffr/package.py
index 35ac20f9f6..7db8f706b8 100644
--- a/var/spack/repos/builtin/packages/ffr/package.py
+++ b/var/spack/repos/builtin/packages/ffr/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
@@ -14,6 +15,7 @@ class Ffr(MakefilePackage):
JAPAN."""
homepage = "http://www.ciss.iis.u-tokyo.ac.jp/rss21/theme/multi/fluid/fluid_softwareinfo.html"
+ manual_download = True
version('3.1.004', sha256='2b396f66bb6437366721fac987f9c6e8b830638c3e4cb5df6a08ff41633f8481', url="file://{0}/FFR_V3.1.004.zip".format(os.getcwd()))
version('3.0_000', sha256='edc69fb1fd9dbdb3f531a8f2b9533a9b3c1a28768bb4029b84a6b35c95db0b48', url="file://{0}/open_FrontFlowRed_3.0_000.tar.gz".format(os.getcwd()))
diff --git a/var/spack/repos/builtin/packages/ffsb/package.py b/var/spack/repos/builtin/packages/ffsb/package.py
index 5745ccb821..5a30509196 100644
--- a/var/spack/repos/builtin/packages/ffsb/package.py
+++ b/var/spack/repos/builtin/packages/ffsb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fftw/package.py b/var/spack/repos/builtin/packages/fftw/package.py
index f6a5e83908..845e714bc7 100644
--- a/var/spack/repos/builtin/packages/fftw/package.py
+++ b/var/spack/repos/builtin/packages/fftw/package.py
@@ -1,11 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import os.path
+
import llnl.util.lang
+
from spack import *
@@ -32,6 +34,8 @@ class FftwBase(AutotoolsPackage):
msg='Long double precision is not supported in FFTW 2')
conflicts('precision=quad', when='@2.1.5',
msg='Quad precision is not supported in FFTW 2')
+ conflicts('precision=quad', when='+mpi',
+ msg='Quad precision is not supported in MPI')
@property
def libs(self):
@@ -82,6 +86,17 @@ class FftwBase(AutotoolsPackage):
"""Precisions that have been selected in this build"""
return self.spec.variants['precision'].value
+ def setup_build_environment(self, env):
+ if self.spec.satisfies('%apple-clang +openmp'):
+ env.append_flags(
+ 'CPPFLAGS', self.compiler.openmp_flag)
+ env.append_flags(
+ 'CFLAGS', self.spec['llvm-openmp'].headers.include_flags)
+ env.append_flags(
+ 'CXXFLAGS', self.spec['llvm-openmp'].headers.include_flags)
+ env.append_flags(
+ 'LDFLAGS', self.spec['llvm-openmp'].libs.ld_flags)
+
def configure(self, spec, prefix):
# Base options
options = [
@@ -111,9 +126,14 @@ class FftwBase(AutotoolsPackage):
# float only
float_simd_features = ['altivec', 'sse']
- # Workaround NVIDIA compiler bug when avx512 is enabled
- if spec.satisfies('%nvhpc') and 'avx512' in simd_features:
- simd_features.remove('avx512')
+ # Workaround PGI compiler bug when avx2 is enabled
+ if spec.satisfies('%pgi') and 'avx2' in simd_features:
+ simd_features.remove('avx2')
+
+ # Workaround NVIDIA/PGI compiler bug when avx512 is enabled
+ if spec.satisfies('%nvhpc') or spec.satisfies('%pgi'):
+ if 'avx512' in simd_features:
+ simd_features.remove('avx512')
# NVIDIA compiler does not support Altivec intrinsics
if spec.satisfies('%nvhpc') and 'vsx' in simd_features:
@@ -198,10 +218,11 @@ class Fftw(FftwBase):
believe that FFTW, which is free software, should become the FFT
library of choice for most applications."""
- homepage = "http://www.fftw.org"
- url = "http://www.fftw.org/fftw-3.3.4.tar.gz"
- list_url = "http://www.fftw.org/download.html"
+ homepage = "https://www.fftw.org"
+ url = "https://www.fftw.org/fftw-3.3.4.tar.gz"
+ list_url = "https://www.fftw.org/download.html"
+ version('3.3.9', sha256='bf2c7ce40b04ae811af714deb512510cc2c17b9ab9d6ddcf49fe4487eea7af3d')
version('3.3.8', sha256='6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303')
version('3.3.7', sha256='3b609b7feba5230e8f6dd8d245ddbefac324c5a6ae4186947670d9ac2cd25573')
version('3.3.6-pl2', sha256='a5de35c5c824a78a058ca54278c706cdf3d4abba1c56b63531c2cb05f5d57da2')
@@ -220,7 +241,8 @@ class Fftw(FftwBase):
provides('fftw-api@2', when='@2.1.5')
provides('fftw-api@3', when='@3:')
- patch('pfft-3.3.5.patch', when="@3.3.5:+pfft_patches", level=0)
+ patch('pfft-3.3.9.patch', when="@3.3.9:+pfft_patches", level=0)
+ patch('pfft-3.3.5.patch', when="@3.3.5:3.3.8+pfft_patches", level=0)
patch('pfft-3.3.4.patch', when="@3.3.4+pfft_patches", level=0)
patch('pgi-3.3.6-pl2.patch', when="@3.3.6-pl2%pgi", level=0)
patch('intel-configure.patch', when="@3:3.3.8%intel", level=0)
diff --git a/var/spack/repos/builtin/packages/fftw/pfft-3.3.9.patch b/var/spack/repos/builtin/packages/fftw/pfft-3.3.9.patch
new file mode 100644
index 0000000000..a4f0e6adc6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fftw/pfft-3.3.9.patch
@@ -0,0 +1,858 @@
+--- mpi/conf.c 2020-12-10 12:02:44.000000000 +0000
++++ mpi/conf.c 2021-04-06 09:06:12.143840994 +0000
+@@ -29,6 +29,8 @@
+ SOLVTAB(XM(transpose_pairwise_register)),
+ SOLVTAB(XM(transpose_alltoall_register)),
+ SOLVTAB(XM(transpose_recurse_register)),
++ SOLVTAB(XM(transpose_pairwise_transposed_register)),
++ SOLVTAB(XM(transpose_alltoall_transposed_register)),
+ SOLVTAB(XM(dft_rank_geq2_register)),
+ SOLVTAB(XM(dft_rank_geq2_transposed_register)),
+ SOLVTAB(XM(dft_serial_register)),
+
+--- mpi/Makefile.am 2020-12-10 12:02:44.000000000 +0000
++++ mpi/Makefile.am 2021-04-06 09:06:12.144841002 +0000
+@@ -17,6 +17,7 @@
+ CLEANFILES = fftw3-mpi.f03 fftw3l-mpi.f03
+
+ TRANSPOSE_SRC = transpose-alltoall.c transpose-pairwise.c transpose-recurse.c transpose-problem.c transpose-solve.c mpi-transpose.h
++TRANSPOSE_SRC += transpose-alltoall-transposed.c transpose-pairwise-transposed.c
+ DFT_SRC = dft-serial.c dft-rank-geq2.c dft-rank-geq2-transposed.c dft-rank1.c dft-rank1-bigvec.c dft-problem.c dft-solve.c mpi-dft.h
+ RDFT_SRC = rdft-serial.c rdft-rank-geq2.c rdft-rank-geq2-transposed.c rdft-rank1-bigvec.c rdft-problem.c rdft-solve.c mpi-rdft.h
+ RDFT2_SRC = rdft2-serial.c rdft2-rank-geq2.c rdft2-rank-geq2-transposed.c rdft2-problem.c rdft2-solve.c mpi-rdft2.h
+
+--- mpi/mpi-transpose.h 2020-12-10 12:02:44.000000000 +0000
++++ mpi/mpi-transpose.h 2021-04-06 09:06:12.144841002 +0000
+@@ -59,3 +59,5 @@
+ void XM(transpose_pairwise_register)(planner *p);
+ void XM(transpose_alltoall_register)(planner *p);
+ void XM(transpose_recurse_register)(planner *p);
++void XM(transpose_pairwise_transposed_register)(planner *p);
++void XM(transpose_alltoall_transposed_register)(planner *p);
+
+--- mpi/transpose-alltoall-transposed.c 1970-01-01 00:00:00.000000000 +0000
++++ mpi/transpose-alltoall-transposed.c 2021-04-06 09:06:12.144841002 +0000
+@@ -0,0 +1,280 @@
++/*
++ * Copyright (c) 2003, 2007-11 Matteo Frigo
++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology
++ * Copyright (c) 2012 Michael Pippig
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++/* plans for distributed out-of-place transpose using MPI_Alltoall,
++ and which destroy the input array (also if TRANSPOSED_IN is used) */
++
++#include "mpi-transpose.h"
++#include <string.h>
++
++typedef struct {
++ solver super;
++ int copy_transposed_out; /* whether to copy the output for TRANSPOSED_OUT,
++ which makes the first transpose out-of-place
++ but costs an extra copy and requires us
++ to destroy the input */
++} S;
++
++typedef struct {
++ plan_mpi_transpose super;
++
++ plan *cld1, *cld2, *cld2rest, *cld3;
++
++ MPI_Comm comm;
++ int *send_block_sizes, *send_block_offsets;
++ int *recv_block_sizes, *recv_block_offsets;
++
++ INT rest_Ioff, rest_Ooff;
++
++ int equal_blocks;
++} P;
++
++/* transpose locally to get contiguous chunks
++ this may take two transposes if the block sizes are unequal
++ (3 subplans, two of which operate on disjoint data) */
++static void apply_pretranspose(
++ const P *ego, R *I, R *O
++ )
++{
++ plan_rdft *cld2, *cld2rest, *cld3;
++
++ cld3 = (plan_rdft *) ego->cld3;
++ if (cld3)
++ cld3->apply(ego->cld3, O, O);
++ /* else TRANSPOSED_IN is true and user wants I transposed */
++
++ cld2 = (plan_rdft *) ego->cld2;
++ cld2->apply(ego->cld2, I, O);
++ cld2rest = (plan_rdft *) ego->cld2rest;
++ if (cld2rest) {
++ cld2rest->apply(ego->cld2rest,
++ I + ego->rest_Ioff, O + ego->rest_Ooff);
++ }
++}
++
++static void apply(const plan *ego_, R *I, R *O)
++{
++ const P *ego = (const P *) ego_;
++ plan_rdft *cld1 = (plan_rdft *) ego->cld1;
++
++ if (cld1) {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, O);
++
++ /* transpose chunks globally */
++ if (ego->equal_blocks)
++ MPI_Alltoall(O, ego->send_block_sizes[0], FFTW_MPI_TYPE,
++ I, ego->recv_block_sizes[0], FFTW_MPI_TYPE,
++ ego->comm);
++ else
++ MPI_Alltoallv(O, ego->send_block_sizes, ego->send_block_offsets,
++ FFTW_MPI_TYPE,
++ I, ego->recv_block_sizes, ego->recv_block_offsets,
++ FFTW_MPI_TYPE,
++ ego->comm);
++
++ /* transpose locally to get non-transposed output */
++ cld1->apply(ego->cld1, I, O);
++ } /* else TRANSPOSED_OUT is true and user wants O transposed */
++ else {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, I);
++
++ /* transpose chunks globally */
++ if (ego->equal_blocks)
++ MPI_Alltoall(I, ego->send_block_sizes[0], FFTW_MPI_TYPE,
++ O, ego->recv_block_sizes[0], FFTW_MPI_TYPE,
++ ego->comm);
++ else
++ MPI_Alltoallv(I, ego->send_block_sizes, ego->send_block_offsets,
++ FFTW_MPI_TYPE,
++ O, ego->recv_block_sizes, ego->recv_block_offsets,
++ FFTW_MPI_TYPE,
++ ego->comm);
++ }
++}
++
++static int applicable(const S *ego, const problem *p_,
++ const planner *plnr)
++{
++ /* in contrast to transpose-alltoall this algorithm can not preserve the input,
++ * since we need at least one transpose before the (out-of-place) Alltoall */
++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_;
++ return (1
++ && p->I != p->O
++ && (!NO_DESTROY_INPUTP(plnr))
++ && ((p->flags & TRANSPOSED_OUT) || !ego->copy_transposed_out)
++ && ONLY_TRANSPOSEDP(p->flags)
++ );
++}
++
++static void awake(plan *ego_, enum wakefulness wakefulness)
++{
++ P *ego = (P *) ego_;
++ X(plan_awake)(ego->cld1, wakefulness);
++ X(plan_awake)(ego->cld2, wakefulness);
++ X(plan_awake)(ego->cld2rest, wakefulness);
++ X(plan_awake)(ego->cld3, wakefulness);
++}
++
++static void destroy(plan *ego_)
++{
++ P *ego = (P *) ego_;
++ X(ifree0)(ego->send_block_sizes);
++ MPI_Comm_free(&ego->comm);
++ X(plan_destroy_internal)(ego->cld3);
++ X(plan_destroy_internal)(ego->cld2rest);
++ X(plan_destroy_internal)(ego->cld2);
++ X(plan_destroy_internal)(ego->cld1);
++}
++
++static void print(const plan *ego_, printer *p)
++{
++ const P *ego = (const P *) ego_;
++ p->print(p, "(mpi-transpose-alltoall-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))",
++ ego->equal_blocks ? "/e" : "",
++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3);
++}
++
++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr)
++{
++ const S *ego = (const S *) ego_;
++ const problem_mpi_transpose *p;
++ P *pln;
++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0;
++ INT b, bt, vn, rest_Ioff, rest_Ooff;
++ R *O;
++ int *sbs, *sbo, *rbs, *rbo;
++ int pe, my_pe, n_pes;
++ int equal_blocks = 1;
++ static const plan_adt padt = {
++ XM(transpose_solve), awake, print, destroy
++ };
++
++ if (!applicable(ego, p_, plnr))
++ return (plan *) 0;
++
++ p = (const problem_mpi_transpose *) p_;
++ vn = p->vn;
++
++ MPI_Comm_rank(p->comm, &my_pe);
++ MPI_Comm_size(p->comm, &n_pes);
++
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++
++ if (p->flags & TRANSPOSED_OUT) { /* O stays transposed */
++ if (ego->copy_transposed_out) {
++ cld1 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_1d)
++ (bt * p->nx * vn, 1, 1),
++ p->I, O = p->O),
++ 0, 0, NO_SLOW);
++ if (XM(any_true)(!cld1, p->comm)) goto nada;
++ }
++ else /* first transpose is in-place */
++ O = p->I;
++ }
++ else { /* transpose nx x bt x vn -> bt x nx x vn */
++ cld1 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_3d)
++ (bt, vn, p->nx * vn,
++ p->nx, bt * vn, vn,
++ vn, 1, 1),
++ p->I, O = p->O),
++ 0, 0, NO_SLOW);
++ if (XM(any_true)(!cld1, p->comm)) goto nada;
++ }
++
++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe,
++ &cld2, &cld2rest, &cld3,
++ &rest_Ioff, &rest_Ooff),
++ p->comm)) goto nada;
++
++
++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply);
++
++ pln->cld1 = cld1;
++ pln->cld2 = cld2;
++ pln->cld2rest = cld2rest;
++ pln->rest_Ioff = rest_Ioff;
++ pln->rest_Ooff = rest_Ooff;
++ pln->cld3 = cld3;
++
++ MPI_Comm_dup(p->comm, &pln->comm);
++
++ /* Compute sizes/offsets of blocks to send for all-to-all command. */
++ sbs = (int *) MALLOC(4 * n_pes * sizeof(int), PLANS);
++ sbo = sbs + n_pes;
++ rbs = sbo + n_pes;
++ rbo = rbs + n_pes;
++ b = XM(block)(p->nx, p->block, my_pe);
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++ for (pe = 0; pe < n_pes; ++pe) {
++ INT db, dbt; /* destination block sizes */
++ db = XM(block)(p->nx, p->block, pe);
++ dbt = XM(block)(p->ny, p->tblock, pe);
++ if (db != p->block || dbt != p->tblock)
++ equal_blocks = 0;
++
++ /* MPI requires type "int" here; apparently it
++ has no 64-bit API? Grrr. */
++ sbs[pe] = (int) (b * dbt * vn);
++ sbo[pe] = (int) (pe * (b * p->tblock) * vn);
++ rbs[pe] = (int) (db * bt * vn);
++ rbo[pe] = (int) (pe * (p->block * bt) * vn);
++ }
++ pln->send_block_sizes = sbs;
++ pln->send_block_offsets = sbo;
++ pln->recv_block_sizes = rbs;
++ pln->recv_block_offsets = rbo;
++ pln->equal_blocks = equal_blocks;
++
++ X(ops_zero)(&pln->super.super.ops);
++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops);
++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops);
++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops);
++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops);
++ /* FIXME: should MPI operations be counted in "other" somehow? */
++
++ return &(pln->super.super);
++
++ nada:
++ X(plan_destroy_internal)(cld3);
++ X(plan_destroy_internal)(cld2rest);
++ X(plan_destroy_internal)(cld2);
++ X(plan_destroy_internal)(cld1);
++ return (plan *) 0;
++}
++
++static solver *mksolver(int copy_transposed_out)
++{
++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 };
++ S *slv = MKSOLVER(S, &sadt);
++ slv->copy_transposed_out = copy_transposed_out;
++ return &(slv->super);
++}
++
++void XM(transpose_alltoall_transposed_register)(planner *p)
++{
++ int cto;
++ for (cto = 0; cto <= 1; ++cto)
++ REGISTER_SOLVER(p, mksolver(cto));
++}
+
+--- mpi/transpose-pairwise.c 2020-12-10 12:02:44.000000000 +0000
++++ mpi/transpose-pairwise.c 2021-04-06 09:08:21.295868925 +0000
+@@ -53,7 +53,6 @@
+ {
+ if (sched) {
+ int i;
+- MPI_Status status;
+
+ /* TODO: explore non-synchronous send/recv? */
+
+@@ -74,7 +73,7 @@
+ O + rbo[pe], (int) (rbs[pe]),
+ FFTW_MPI_TYPE,
+ pe, (pe * n_pes + my_pe) & 0x7fff,
+- comm, &status);
++ comm, MPI_STATUS_IGNORE);
+ }
+ }
+
+@@ -92,7 +91,7 @@
+ O + rbo[pe], (int) (rbs[pe]),
+ FFTW_MPI_TYPE,
+ pe, (pe * n_pes + my_pe) & 0x7fff,
+- comm, &status);
++ comm, MPI_STATUS_IGNORE);
+ }
+ }
+ }
+
+--- mpi/transpose-pairwise-transposed.c 1970-01-01 00:00:00.000000000 +0000
++++ mpi/transpose-pairwise-transposed.c 2021-04-06 09:06:12.145841010 +0000
+@@ -0,0 +1,510 @@
++/*
++ * Copyright (c) 2003, 2007-11 Matteo Frigo
++ * Copyright (c) 2003, 2007-11 Massachusetts Institute of Technology
++ * Copyright (c) 2012 Michael Pippig
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ */
++
++/* Distributed transposes using a sequence of carefully scheduled
++ pairwise exchanges. This has the advantage that it can be done
++ in-place, or out-of-place while preserving the input, using buffer
++ space proportional to the local size divided by the number of
++ processes (i.e. to the total array size divided by the number of
++ processes squared). */
++
++#include "mpi-transpose.h"
++#include <string.h>
++
++typedef struct {
++ solver super;
++ int preserve_input; /* preserve input even if DESTROY_INPUT was passed */
++} S;
++
++typedef struct {
++ plan_mpi_transpose super;
++
++ plan *cld1, *cld2, *cld2rest, *cld3;
++ INT rest_Ioff, rest_Ooff;
++
++ int n_pes, my_pe, *sched;
++ INT *send_block_sizes, *send_block_offsets;
++ INT *recv_block_sizes, *recv_block_offsets;
++ MPI_Comm comm;
++ int preserve_input;
++} P;
++
++static void transpose_chunks(int *sched, int n_pes, int my_pe,
++ INT *sbs, INT *sbo, INT *rbs, INT *rbo,
++ MPI_Comm comm,
++ R *I, R *O)
++{
++ if (sched) {
++ int i;
++
++ /* TODO: explore non-synchronous send/recv? */
++
++ if (I == O) {
++ R *buf = (R*) MALLOC(sizeof(R) * sbs[0], BUFFERS);
++
++ for (i = 0; i < n_pes; ++i) {
++ int pe = sched[i];
++ if (my_pe == pe) {
++ if (rbo[pe] != sbo[pe])
++ memmove(O + rbo[pe], O + sbo[pe],
++ sbs[pe] * sizeof(R));
++ }
++ else {
++ memcpy(buf, O + sbo[pe], sbs[pe] * sizeof(R));
++ MPI_Sendrecv(buf, (int) (sbs[pe]), FFTW_MPI_TYPE,
++ pe, (my_pe * n_pes + pe) & 0xffff,
++ O + rbo[pe], (int) (rbs[pe]),
++ FFTW_MPI_TYPE,
++ pe, (pe * n_pes + my_pe) & 0xffff,
++ comm, MPI_STATUS_IGNORE);
++ }
++ }
++
++ X(ifree)(buf);
++ }
++ else { /* I != O */
++ for (i = 0; i < n_pes; ++i) {
++ int pe = sched[i];
++ if (my_pe == pe)
++ memcpy(O + rbo[pe], I + sbo[pe], sbs[pe] * sizeof(R));
++ else
++ MPI_Sendrecv(I + sbo[pe], (int) (sbs[pe]),
++ FFTW_MPI_TYPE,
++ pe, (my_pe * n_pes + pe) & 0xffff,
++ O + rbo[pe], (int) (rbs[pe]),
++ FFTW_MPI_TYPE,
++ pe, (pe * n_pes + my_pe) & 0xffff,
++ comm, MPI_STATUS_IGNORE);
++ }
++ }
++ }
++}
++
++/* transpose locally to get contiguous chunks
++ this may take two transposes if the block sizes are unequal
++ (3 subplans, two of which operate on disjoint data) */
++static void apply_pretranspose(
++ const P *ego, R *I, R *O
++ )
++{
++ plan_rdft *cld2, *cld2rest, *cld3;
++
++ cld3 = (plan_rdft *) ego->cld3;
++ if (cld3)
++ cld3->apply(ego->cld3, O, O);
++ /* else TRANSPOSED_IN is true and user wants I transposed */
++
++ cld2 = (plan_rdft *) ego->cld2;
++ cld2->apply(ego->cld2, I, O);
++ cld2rest = (plan_rdft *) ego->cld2rest;
++ if (cld2rest) {
++ cld2rest->apply(ego->cld2rest,
++ I + ego->rest_Ioff, O + ego->rest_Ooff);
++ }
++}
++
++static void apply(const plan *ego_, R *I, R *O)
++{
++ const P *ego = (const P *) ego_;
++ plan_rdft *cld1 = (plan_rdft *) ego->cld1;
++
++ if (cld1) {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, O);
++
++ if(ego->preserve_input) I = O;
++
++ /* transpose chunks globally */
++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe,
++ ego->send_block_sizes, ego->send_block_offsets,
++ ego->recv_block_sizes, ego->recv_block_offsets,
++ ego->comm, O, I);
++
++ /* transpose locally to get non-transposed output */
++ cld1->apply(ego->cld1, I, O);
++ } /* else TRANSPOSED_OUT is true and user wants O transposed */
++ else if (ego->preserve_input) {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, O);
++
++ /* transpose chunks globally */
++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe,
++ ego->send_block_sizes, ego->send_block_offsets,
++ ego->recv_block_sizes, ego->recv_block_offsets,
++ ego->comm, O, O);
++ }
++ else {
++ /* transpose locally to get contiguous chunks */
++ apply_pretranspose(ego, I, I);
++
++ /* transpose chunks globally */
++ transpose_chunks(ego->sched, ego->n_pes, ego->my_pe,
++ ego->send_block_sizes, ego->send_block_offsets,
++ ego->recv_block_sizes, ego->recv_block_offsets,
++ ego->comm, I, O);
++ }
++}
++
++static int applicable(const S *ego, const problem *p_,
++ const planner *plnr)
++{
++ const problem_mpi_transpose *p = (const problem_mpi_transpose *) p_;
++ /* Note: this is *not* UGLY for out-of-place, destroy-input plans;
++ the planner often prefers transpose-pairwise to transpose-alltoall,
++ at least with LAM MPI on my machine. */
++ return (1
++ && (!ego->preserve_input || (!NO_DESTROY_INPUTP(plnr)
++ && p->I != p->O))
++ && ONLY_TRANSPOSEDP(p->flags));
++}
++
++static void awake(plan *ego_, enum wakefulness wakefulness)
++{
++ P *ego = (P *) ego_;
++ X(plan_awake)(ego->cld1, wakefulness);
++ X(plan_awake)(ego->cld2, wakefulness);
++ X(plan_awake)(ego->cld2rest, wakefulness);
++ X(plan_awake)(ego->cld3, wakefulness);
++}
++
++static void destroy(plan *ego_)
++{
++ P *ego = (P *) ego_;
++ X(ifree0)(ego->sched);
++ X(ifree0)(ego->send_block_sizes);
++ MPI_Comm_free(&ego->comm);
++ X(plan_destroy_internal)(ego->cld3);
++ X(plan_destroy_internal)(ego->cld2rest);
++ X(plan_destroy_internal)(ego->cld2);
++ X(plan_destroy_internal)(ego->cld1);
++}
++
++static void print(const plan *ego_, printer *p)
++{
++ const P *ego = (const P *) ego_;
++ p->print(p, "(mpi-transpose-pairwise-transposed%s%(%p%)%(%p%)%(%p%)%(%p%))",
++ ego->preserve_input==2 ?"/p":"",
++ ego->cld1, ego->cld2, ego->cld2rest, ego->cld3);
++}
++
++/* Given a process which_pe and a number of processes npes, fills
++ the array sched[npes] with a sequence of processes to communicate
++ with for a deadlock-free, optimum-overlap all-to-all communication.
++ (All processes must call this routine to get their own schedules.)
++ The schedule can be re-ordered arbitrarily as long as all processes
++ apply the same permutation to their schedules.
++
++ The algorithm here is based upon the one described in:
++ J. A. M. Schreuder, "Constructing timetables for sport
++ competitions," Mathematical Programming Study 13, pp. 58-67 (1980).
++ In a sport competition, you have N teams and want every team to
++ play every other team in as short a time as possible (maximum overlap
++ between games). This timetabling problem is therefore identical
++ to that of an all-to-all communications problem. In our case, there
++ is one wrinkle: as part of the schedule, the process must do
++ some data transfer with itself (local data movement), analogous
++ to a requirement that each team "play itself" in addition to other
++ teams. With this wrinkle, it turns out that an optimal timetable
++ (N parallel games) can be constructed for any N, not just for even
++ N as in the original problem described by Schreuder.
++*/
++static void fill1_comm_sched(int *sched, int which_pe, int npes)
++{
++ int pe, i, n, s = 0;
++ A(which_pe >= 0 && which_pe < npes);
++ if (npes % 2 == 0) {
++ n = npes;
++ sched[s++] = which_pe;
++ }
++ else
++ n = npes + 1;
++ for (pe = 0; pe < n - 1; ++pe) {
++ if (npes % 2 == 0) {
++ if (pe == which_pe) sched[s++] = npes - 1;
++ else if (npes - 1 == which_pe) sched[s++] = pe;
++ }
++ else if (pe == which_pe) sched[s++] = pe;
++
++ if (pe != which_pe && which_pe < n - 1) {
++ i = (pe - which_pe + (n - 1)) % (n - 1);
++ if (i < n/2)
++ sched[s++] = (pe + i) % (n - 1);
++
++ i = (which_pe - pe + (n - 1)) % (n - 1);
++ if (i < n/2)
++ sched[s++] = (pe - i + (n - 1)) % (n - 1);
++ }
++ }
++ A(s == npes);
++}
++
++/* Sort the communication schedule sched for npes so that the schedule
++ on process sortpe is ascending or descending (!ascending). This is
++ necessary to allow in-place transposes when the problem does not
++ divide equally among the processes. In this case there is one
++ process where the incoming blocks are bigger/smaller than the
++ outgoing blocks and thus have to be received in
++ descending/ascending order, respectively, to avoid overwriting data
++ before it is sent. */
++static void sort1_comm_sched(int *sched, int npes, int sortpe, int ascending)
++{
++ int *sortsched, i;
++ sortsched = (int *) MALLOC(npes * sizeof(int) * 2, OTHER);
++ fill1_comm_sched(sortsched, sortpe, npes);
++ if (ascending)
++ for (i = 0; i < npes; ++i)
++ sortsched[npes + sortsched[i]] = sched[i];
++ else
++ for (i = 0; i < npes; ++i)
++ sortsched[2*npes - 1 - sortsched[i]] = sched[i];
++ for (i = 0; i < npes; ++i)
++ sched[i] = sortsched[npes + i];
++ X(ifree)(sortsched);
++}
++
++/* make the plans to do the pre-MPI transpositions (shared with
++ transpose-alltoall-transposed) */
++int XM(mkplans_pretranspose)(const problem_mpi_transpose *p, planner *plnr,
++ R *I, R *O, int my_pe,
++ plan **cld2, plan **cld2rest, plan **cld3,
++ INT *rest_Ioff, INT *rest_Ooff)
++{
++ INT vn = p->vn;
++ INT b = XM(block)(p->nx, p->block, my_pe);
++ INT bt = p->tblock;
++ INT nyb = p->ny / bt; /* number of equal-sized blocks */
++ INT nyr = p->ny - nyb * bt; /* leftover rows after equal blocks */
++
++ *cld2 = *cld2rest = *cld3 = NULL;
++ *rest_Ioff = *rest_Ooff = 0;
++
++ if (!(p->flags & TRANSPOSED_IN) && (nyr == 0 || I != O)) {
++ INT ny = p->ny * vn;
++ bt *= vn;
++ *cld2 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_3d)
++ (nyb, bt, b * bt,
++ b, ny, bt,
++ bt, 1, 1),
++ I, O),
++ 0, 0, NO_SLOW);
++ if (!*cld2) goto nada;
++
++ if (nyr > 0) {
++ *rest_Ioff = nyb * bt;
++ *rest_Ooff = nyb * b * bt;
++ bt = nyr * vn;
++ *cld2rest = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_2d)
++ (b, ny, bt,
++ bt, 1, 1),
++ I + *rest_Ioff,
++ O + *rest_Ooff),
++ 0, 0, NO_SLOW);
++ if (!*cld2rest) goto nada;
++ }
++ }
++ else {
++ *cld2 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(
++ X(mktensor_4d)
++ (nyb, b * bt * vn, b * bt * vn,
++ b, vn, bt * vn,
++ bt, b * vn, vn,
++ vn, 1, 1),
++ I, O),
++ 0, 0, NO_SLOW);
++ if (!*cld2) goto nada;
++
++ *rest_Ioff = *rest_Ooff = nyb * bt * b * vn;
++ *cld2rest = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(
++ X(mktensor_3d)
++ (b, vn, nyr * vn,
++ nyr, b * vn, vn,
++ vn, 1, 1),
++ I + *rest_Ioff, O + *rest_Ooff),
++ 0, 0, NO_SLOW);
++ if (!*cld2rest) goto nada;
++
++ if (!(p->flags & TRANSPOSED_IN)) {
++ *cld3 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(
++ X(mktensor_3d)
++ (p->ny, vn, b * vn,
++ b, p->ny * vn, vn,
++ vn, 1, 1),
++ I, I),
++ 0, 0, NO_SLOW);
++ if (!*cld3) goto nada;
++ }
++ }
++
++ return 1;
++
++nada:
++ X(plan_destroy_internal)(*cld3);
++ X(plan_destroy_internal)(*cld2rest);
++ X(plan_destroy_internal)(*cld2);
++ *cld2 = *cld2rest = *cld3 = NULL;
++ return 0;
++}
++
++static plan *mkplan(const solver *ego_, const problem *p_, planner *plnr)
++{
++ const S *ego = (const S *) ego_;
++ const problem_mpi_transpose *p;
++ P *pln;
++ plan *cld1 = 0, *cld2 = 0, *cld2rest = 0, *cld3 = 0;
++ INT b, bt, vn, rest_Ioff, rest_Ooff;
++ INT *sbs, *sbo, *rbs, *rbo;
++ int pe, my_pe, n_pes, sort_pe = -1, ascending = 1;
++ R *I, *O;
++ static const plan_adt padt = {
++ XM(transpose_solve), awake, print, destroy
++ };
++
++ UNUSED(ego);
++
++ if (!applicable(ego, p_, plnr))
++ return (plan *) 0;
++
++ p = (const problem_mpi_transpose *) p_;
++ vn = p->vn;
++ I = p->I; O = p->O;
++
++ MPI_Comm_rank(p->comm, &my_pe);
++ MPI_Comm_size(p->comm, &n_pes);
++
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++
++
++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr)) I = p->O;
++
++ if (!(p->flags & TRANSPOSED_OUT)) { /* nx x bt x vn -> bt x nx x vn */
++ cld1 = X(mkplan_f_d)(plnr,
++ X(mkproblem_rdft_0_d)(X(mktensor_3d)
++ (bt, vn, p->nx * vn,
++ p->nx, bt * vn, vn,
++ vn, 1, 1),
++ I, O = p->O),
++ 0, 0, NO_SLOW);
++ if (XM(any_true)(!cld1, p->comm)) goto nada;
++
++ }
++ else {
++ if (ego->preserve_input || NO_DESTROY_INPUTP(plnr))
++ O = p->O;
++ else
++ O = p->I;
++ }
++
++ if (XM(any_true)(!XM(mkplans_pretranspose)(p, plnr, p->I, O, my_pe,
++ &cld2, &cld2rest, &cld3,
++ &rest_Ioff, &rest_Ooff),
++ p->comm)) goto nada;
++
++ pln = MKPLAN_MPI_TRANSPOSE(P, &padt, apply);
++
++ pln->cld1 = cld1;
++ pln->cld2 = cld2;
++ pln->cld2rest = cld2rest;
++ pln->rest_Ioff = rest_Ioff;
++ pln->rest_Ooff = rest_Ooff;
++ pln->cld3 = cld3;
++ pln->preserve_input = ego->preserve_input ? 2 : NO_DESTROY_INPUTP(plnr);
++
++ MPI_Comm_dup(p->comm, &pln->comm);
++
++ n_pes = (int) X(imax)(XM(num_blocks)(p->nx, p->block),
++ XM(num_blocks)(p->ny, p->tblock));
++
++ /* Compute sizes/offsets of blocks to exchange between processors */
++ sbs = (INT *) MALLOC(4 * n_pes * sizeof(INT), PLANS);
++ sbo = sbs + n_pes;
++ rbs = sbo + n_pes;
++ rbo = rbs + n_pes;
++ b = XM(block)(p->nx, p->block, my_pe);
++ bt = XM(block)(p->ny, p->tblock, my_pe);
++ for (pe = 0; pe < n_pes; ++pe) {
++ INT db, dbt; /* destination block sizes */
++ db = XM(block)(p->nx, p->block, pe);
++ dbt = XM(block)(p->ny, p->tblock, pe);
++
++ sbs[pe] = b * dbt * vn;
++ sbo[pe] = pe * (b * p->tblock) * vn;
++ rbs[pe] = db * bt * vn;
++ rbo[pe] = pe * (p->block * bt) * vn;
++
++ if (db * dbt > 0 && db * p->tblock != p->block * dbt) {
++ A(sort_pe == -1); /* only one process should need sorting */
++ sort_pe = pe;
++ ascending = db * p->tblock > p->block * dbt;
++ }
++ }
++ pln->n_pes = n_pes;
++ pln->my_pe = my_pe;
++ pln->send_block_sizes = sbs;
++ pln->send_block_offsets = sbo;
++ pln->recv_block_sizes = rbs;
++ pln->recv_block_offsets = rbo;
++
++ if (my_pe >= n_pes) {
++ pln->sched = 0; /* this process is not doing anything */
++ }
++ else {
++ pln->sched = (int *) MALLOC(n_pes * sizeof(int), PLANS);
++ fill1_comm_sched(pln->sched, my_pe, n_pes);
++ if (sort_pe >= 0)
++ sort1_comm_sched(pln->sched, n_pes, sort_pe, ascending);
++ }
++
++ X(ops_zero)(&pln->super.super.ops);
++ if (cld1) X(ops_add2)(&cld1->ops, &pln->super.super.ops);
++ if (cld2) X(ops_add2)(&cld2->ops, &pln->super.super.ops);
++ if (cld2rest) X(ops_add2)(&cld2rest->ops, &pln->super.super.ops);
++ if (cld3) X(ops_add2)(&cld3->ops, &pln->super.super.ops);
++ /* FIXME: should MPI operations be counted in "other" somehow? */
++
++ return &(pln->super.super);
++
++ nada:
++ X(plan_destroy_internal)(cld3);
++ X(plan_destroy_internal)(cld2rest);
++ X(plan_destroy_internal)(cld2);
++ X(plan_destroy_internal)(cld1);
++ return (plan *) 0;
++}
++
++static solver *mksolver(int preserve_input)
++{
++ static const solver_adt sadt = { PROBLEM_MPI_TRANSPOSE, mkplan, 0 };
++ S *slv = MKSOLVER(S, &sadt);
++ slv->preserve_input = preserve_input;
++ return &(slv->super);
++}
++
++void XM(transpose_pairwise_transposed_register)(planner *p)
++{
++ int preserve_input;
++ for (preserve_input = 0; preserve_input <= 1; ++preserve_input)
++ REGISTER_SOLVER(p, mksolver(preserve_input));
++}
diff --git a/var/spack/repos/builtin/packages/fgsl/package.py b/var/spack/repos/builtin/packages/fgsl/package.py
index 1af9b2a0fa..00e53f8195 100644
--- a/var/spack/repos/builtin/packages/fgsl/package.py
+++ b/var/spack/repos/builtin/packages/fgsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,6 +24,7 @@ class Fgsl(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ depends_on('pkg-config', type='build')
depends_on('gsl@2.4', when='@1.3.0')
depends_on('gsl@2.3', when='@1.2.0')
depends_on('gsl@2.2.1', when='@1.1.0')
diff --git a/var/spack/repos/builtin/packages/fides/package.py b/var/spack/repos/builtin/packages/fides/package.py
new file mode 100644
index 0000000000..edf27369ee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fides/package.py
@@ -0,0 +1,40 @@
+# Copyright 2013-2021 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 Fides(CMakePackage):
+ """A library that provides a schema for ADIOS2 streams."""
+ homepage = "https://gitlab.kitware.com/vtk/fides"
+ url = "https://gitlab.kitware.com/vtk/fides/-/archive/v1.0.0/fides-v1.0.0.tar.gz"
+ git = "https://gitlab.kitware.com/vtk/fides.git"
+
+ maintainers = ['caitlinross', 'dpugmire']
+
+ version('master', branch='master')
+ version('1.1.0', sha256='40d2e08b8d5cfdfc809eae6ed2ae0731108ce3b1383485f4934a5ec8aaa9425e')
+ version('1.0.0', sha256='c355fdb4ca3790c1fa9a4491a0d294b8f883b6946c540ad9e5633c9fd8c8c3aa')
+
+ variant("mpi", default=True, description="build mpi support")
+ variant("adios2", default=True, description="build ADIOS2 support")
+ variant('vtk-m', default=True, description="build VTK-m support")
+
+ # Certain CMake versions have been found to break for our use cases
+ depends_on("cmake@3.14.1:3.14.99,3.18.2:", type='build')
+
+ depends_on("mpi", when="+mpi")
+ depends_on('adios2~zfp', when='+adios2')
+ depends_on("vtk-m", when="+vtk-m")
+
+ def cmake_args(self):
+ spec = self.spec
+ options = [
+ self.define("VTKm_DIR", spec['vtk-m'].prefix),
+ self.define("ADIOS2_DIR", spec['adios2'].prefix),
+ self.define("FIDES_ENABLE_TESTING", "OFF"),
+ self.define("FIDES_ENABLE_EXAMPLES", "OFF")
+ ]
+ return options
diff --git a/var/spack/repos/builtin/packages/figlet/package.py b/var/spack/repos/builtin/packages/figlet/package.py
index 8c6028d246..cc6b1d883e 100644
--- a/var/spack/repos/builtin/packages/figlet/package.py
+++ b/var/spack/repos/builtin/packages/figlet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -29,3 +29,7 @@ class Figlet(MakefilePackage):
install(f, prefix.man6)
install_tree('./fonts', prefix.share.figlet)
+
+ @property
+ def build_targets(self):
+ return ['DEFAULTFONTDIR=' + self.prefix.share.figlet]
diff --git a/var/spack/repos/builtin/packages/figtree/package.py b/var/spack/repos/builtin/packages/figtree/package.py
index b96ccba7fa..bc10160c2b 100644
--- a/var/spack/repos/builtin/packages/figtree/package.py
+++ b/var/spack/repos/builtin/packages/figtree/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Figtree(Package):
"""FigTree is designed as a graphical viewer of phylogenetic trees and
diff --git a/var/spack/repos/builtin/packages/file/package.py b/var/spack/repos/builtin/packages/file/package.py
index 06ccfe4c33..7a19fd1d26 100644
--- a/var/spack/repos/builtin/packages/file/package.py
+++ b/var/spack/repos/builtin/packages/file/package.py
@@ -1,7 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+
+import re
+
from spack import *
@@ -9,7 +12,18 @@ class File(AutotoolsPackage):
"""The file command is "a file type guesser", that is, a command-line
tool that tells you in words what kind of data a file contains"""
- homepage = "http://www.darwinsys.com/file/"
+ homepage = "https://www.darwinsys.com/file/"
url = "https://astron.com/pub/file/file-5.37.tar.gz"
+ version('5.40', sha256='167321f43c148a553f68a0ea7f579821ef3b11c27b8cbe158e4df897e4a5dd57')
+ version('5.39', sha256='f05d286a76d9556243d0cb05814929c2ecf3a5ba07963f8f70bfaaa70517fad1')
+ version('5.38', sha256='593c2ffc2ab349c5aea0f55fedfe4d681737b6b62376a9b3ad1e77b2cc19fa34')
version('5.37', sha256='e9c13967f7dd339a3c241b7710ba093560b9a33013491318e88e6b8b57bae07f')
+
+ executables = ['^file$']
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ match = re.search(r'file-(\S+)', output)
+ return match.group(1) if match else None
diff --git a/var/spack/repos/builtin/packages/filebench/package.py b/var/spack/repos/builtin/packages/filebench/package.py
index d328bb01ca..cf85119eef 100644
--- a/var/spack/repos/builtin/packages/filebench/package.py
+++ b/var/spack/repos/builtin/packages/filebench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/filo/package.py b/var/spack/repos/builtin/packages/filo/package.py
index aeba476c04..9b666f69b7 100644
--- a/var/spack/repos/builtin/packages/filo/package.py
+++ b/var/spack/repos/builtin/packages/filo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Filo(CMakePackage):
tags = ['ecp']
- version('master', branch='master')
+ version('main', branch='main')
depends_on('mpi')
depends_on('axl')
diff --git a/var/spack/repos/builtin/packages/filtlong/package.py b/var/spack/repos/builtin/packages/filtlong/package.py
index ab836c2588..db7320a790 100644
--- a/var/spack/repos/builtin/packages/filtlong/package.py
+++ b/var/spack/repos/builtin/packages/filtlong/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fimpute/package.py b/var/spack/repos/builtin/packages/fimpute/package.py
index 3f2bb658ea..5b2bab2a3d 100644
--- a/var/spack/repos/builtin/packages/fimpute/package.py
+++ b/var/spack/repos/builtin/packages/fimpute/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/find-circ/package.py b/var/spack/repos/builtin/packages/find-circ/package.py
index eef0f314aa..f78caddcd9 100644
--- a/var/spack/repos/builtin/packages/find-circ/package.py
+++ b/var/spack/repos/builtin/packages/find-circ/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/findbugs/package.py b/var/spack/repos/builtin/packages/findbugs/package.py
index e81b3247dd..b2cbc4664d 100644
--- a/var/spack/repos/builtin/packages/findbugs/package.py
+++ b/var/spack/repos/builtin/packages/findbugs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/findutils/nvhpc-long-width.patch b/var/spack/repos/builtin/packages/findutils/nvhpc-long-width.patch
new file mode 100644
index 0000000000..0526e80f76
--- /dev/null
+++ b/var/spack/repos/builtin/packages/findutils/nvhpc-long-width.patch
@@ -0,0 +1,17 @@
+--- a/gl/lib/regex_internal.h
++++ b/gl/lib/regex_internal.h
+@@ -36,6 +36,14 @@
+ #include <intprops.h>
+ #include <verify.h>
+
++#ifndef __LONG_WIDTH__
++#if LONG_WIDTH
++#define __LONG_WIDTH__ LONG_WIDTH
++#else
++#define __LONG_WIDTH__ __WORDSIZE
++#endif
++#endif
++
+ #if defined DEBUG && DEBUG != 0
+ # include <assert.h>
+ # define DEBUG_ASSERT(x) assert (x)
diff --git a/var/spack/repos/builtin/packages/findutils/package.py b/var/spack/repos/builtin/packages/findutils/package.py
index 33b41c53eb..76e5a894ae 100644
--- a/var/spack/repos/builtin/packages/findutils/package.py
+++ b/var/spack/repos/builtin/packages/findutils/package.py
@@ -1,21 +1,31 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 re
+from spack import *
+
class Findutils(AutotoolsPackage, GNUMirrorPackage):
"""The GNU Find Utilities are the basic directory searching
utilities of the GNU operating system."""
homepage = "https://www.gnu.org/software/findutils/"
- gnu_mirror_path = "findutils/findutils-4.6.0.tar.gz"
+ gnu_mirror_path = "findutils/findutils-4.8.0.tar.xz"
+
+ def url_for_version(self, version):
+ # Before 4.7.0 it used tar.gz instead of tar.xz
+ if version < Version("4.7.0"):
+ self.gnu_mirror_path = "findutils/findutils-{0}.tar.gz".format(version)
+
+ return super(Findutils, self).url_for_version(version)
executables = ['^find$']
+ version('4.8.0', sha256='57127b7e97d91282c6ace556378d5455a9509898297e46e10443016ea1387164')
+ version('4.7.0', sha256='c5fefbdf9858f7e4feb86f036e1247a54c79fc2d8e4b7064d5aaa1f47dfa789a')
version('4.6.0', sha256='ded4c9f73731cd48fec3b6bdaccce896473b6d8e337e9612e16cf1431bb1169d')
version('4.4.2', sha256='434f32d171cbc0a5e72cfc5372c6fc4cb0e681f8dce566a0de5b6fccd702b62a')
version('4.4.1', sha256='77a5b85d7fe0dd9c1093e010b61f765707364ec2c89c4f432c1c616215bcc138')
@@ -36,39 +46,22 @@ class Findutils(AutotoolsPackage, GNUMirrorPackage):
version('4.1.20', sha256='8c5dd50a5ca54367fa186f6294b81ec7a365e36d670d9feac62227cb513e63ab')
version('4.1', sha256='487ecc0a6c8c90634a11158f360977e5ce0a9a6701502da6cb96a5a7ec143fac')
- depends_on('autoconf', type='build', when='@4.6.0')
- depends_on('automake', type='build', when='@4.6.0')
- depends_on('libtool', type='build', when='@4.6.0')
- depends_on('m4', type='build', when='@4.6.0')
- depends_on('texinfo', type='build', when='@4.6.0')
-
- # findutils does not build with newer versions of glibc
- patch('https://src.fedoraproject.org/rpms/findutils/raw/97ba2d7a18d1f9ae761b6ff0b4f1c4d33d7a8efc/f/findutils-4.6.0-gnulib-fflush.patch', sha256='84b916c0bf8c51b7e7b28417692f0ad3e7030d1f3c248ba77c42ede5c1c5d11e', when='@4.6.0')
- patch('https://src.fedoraproject.org/rpms/findutils/raw/97ba2d7a18d1f9ae761b6ff0b4f1c4d33d7a8efc/f/findutils-4.6.0-gnulib-makedev.patch', sha256='bd9e4e5cc280f9753ae14956c4e4aa17fe7a210f55dd6c84aa60b12d106d47a2', when='@4.6.0')
-
- patch('nvhpc.patch', when='%nvhpc')
+ # The NVIDIA compilers do not currently support some GNU builtins.
+ # Detect this case and use the fallback path.
+ patch('nvhpc.patch', when='@4.6.0 %nvhpc')
+ # Workaround bug where __LONG_WIDTH__ is not defined
+ patch('nvhpc-long-width.patch', when='@4.8.0:4.8.99 %nvhpc')
build_directory = 'spack-build'
+ # Taken from here to build 4.8.0 with apple-clang:
+ # https://github.com/Homebrew/homebrew-core/blob/master/Formula/findutils.rb
+ def setup_build_environment(self, spack_env):
+ if self.spec.satisfies('@4.8.0 %apple-clang'):
+ spack_env.set('CFLAGS', '-D__nonnull\\(params\\)=')
+
@classmethod
def determine_version(cls, exe):
output = Executable(exe)('--version', output=str, error=str)
match = re.search(r'find \(GNU findutils\)\s+(\S+)', output)
return match.group(1) if match else None
-
- @property
- def force_autoreconf(self):
- # Run autoreconf due to build system patch (gnulib-makedev)
- return self.spec.satisfies('@4.6.0')
-
- @when('@4.6.0')
- def patch(self):
- # We have to patch out gettext support, otherwise autoreconf tries to
- # call autopoint, which depends on find, which is part of findutils.
- filter_file('^AM_GNU_GETTEXT.*',
- '',
- 'configure.ac')
-
- filter_file(r'^SUBDIRS = (.*) po (.*)',
- r'SUBDIRS = \1 \2',
- 'Makefile.am')
diff --git a/var/spack/repos/builtin/packages/fio/package.py b/var/spack/repos/builtin/packages/fio/package.py
index 4fdc44fae2..59ca1729bb 100644
--- a/var/spack/repos/builtin/packages/fio/package.py
+++ b/var/spack/repos/builtin/packages/fio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,8 +14,10 @@ class Fio(AutotoolsPackage):
"""
homepage = "https://github.com/axboe/fio"
- url = "https://github.com/axboe/fio/archive/fio-2.19.tar.gz"
+ url = "https://github.com/axboe/fio/archive/fio-3.26.tar.gz"
+ version('3.26', sha256='8bd6987fd9b8c2a75d3923661566ade50b99f61fa4352148975e65577ffa4024')
+ version('3.25', sha256='d8157676bc78a50f3ac82ffc6f80ffc3bba93cbd892fc4882533159a0cdbc1e8')
version('3.19', sha256='809963b1d023dbc9ac7065557af8129aee17b6895e0e8c5ca671b0b14285f404')
version('3.16', sha256='c7731a9e831581bab7104da9ea60c9f44e594438dbe95dff26726ca0285e7b93')
version('2.19', sha256='61fb03a18703269b781aaf195cb0d7931493bbb5bfcc8eb746d5d66d04ed77f7')
diff --git a/var/spack/repos/builtin/packages/fipscheck/package.py b/var/spack/repos/builtin/packages/fipscheck/package.py
index 38678e04ff..ef802e8664 100644
--- a/var/spack/repos/builtin/packages/fipscheck/package.py
+++ b/var/spack/repos/builtin/packages/fipscheck/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,6 +21,7 @@ class Fipscheck(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ depends_on('pkg-config', type='build')
def autoreconf(self, spec, prefix):
bash = which('bash')
diff --git a/var/spack/repos/builtin/packages/fish/package.py b/var/spack/repos/builtin/packages/fish/package.py
index 385c925e9f..115149a4a0 100644
--- a/var/spack/repos/builtin/packages/fish/package.py
+++ b/var/spack/repos/builtin/packages/fish/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fixesproto/package.py b/var/spack/repos/builtin/packages/fixesproto/package.py
index b550f0bec0..4c38134676 100644
--- a/var/spack/repos/builtin/packages/fixesproto/package.py
+++ b/var/spack/repos/builtin/packages/fixesproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Fixesproto(AutotoolsPackage, XorgPackage):
issues raised by application interaction with core protocol mechanisms
that cannot be adequately worked around on the client side of the wire."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/fixesproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/fixesproto"
xorg_mirror_path = "proto/fixesproto-5.0.tar.gz"
version('5.0', sha256='67865a0e3cdc7dec1fd676f0927f7011ad4036c18eb320a2b41dbd56282f33b8')
diff --git a/var/spack/repos/builtin/packages/fj/package.py b/var/spack/repos/builtin/packages/fj/package.py
index 78de8c4871..04d527fd23 100644
--- a/var/spack/repos/builtin/packages/fj/package.py
+++ b/var/spack/repos/builtin/packages/fj/package.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import re
import llnl.util.tty as tty
+
import spack.compiler
import spack.util.executable
diff --git a/var/spack/repos/builtin/packages/fjcontrib/package.py b/var/spack/repos/builtin/packages/fjcontrib/package.py
index c0d10ed30d..0e5b89dbdb 100644
--- a/var/spack/repos/builtin/packages/fjcontrib/package.py
+++ b/var/spack/repos/builtin/packages/fjcontrib/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import inspect
+
from spack import *
@@ -11,7 +12,9 @@ class Fjcontrib(AutotoolsPackage):
"""3rd party extensions of FastJet"""
homepage = "https://fastjet.hepforge.org/contrib/"
- url = "http://fastjet.hepforge.org/contrib/downloads/fjcontrib-1.044.tar.gz"
+ url = "https://fastjet.hepforge.org/contrib/downloads/fjcontrib-1.044.tar.gz"
+
+ tags = ['hep']
version('1.044', sha256='de3f45c2c1bed6d7567483e4a774575a504de8ddc214678bac7f64e9d2e7e7a7')
version('1.043', sha256='ef0f586b19ffd12f392b7facc890a73d31fc11b9f5bb727cf3743d6eb59e9993')
diff --git a/var/spack/repos/builtin/packages/fl/package.py b/var/spack/repos/builtin/packages/fl/package.py
index 7270365413..b1e9948bd0 100644
--- a/var/spack/repos/builtin/packages/fl/package.py
+++ b/var/spack/repos/builtin/packages/fl/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
+from spack import *
+
_versions = {
'0.79.47': {
'Linux-x86_64': ('b8a4a74118c1a024313bf912261fbc016a53f2d15adb1226217f2a10a9f7ca9a', 'https://www.flxpert.hu/fl/fl_0.79.47-amd64-linux.tar.gz'),
diff --git a/var/spack/repos/builtin/packages/flac/package.py b/var/spack/repos/builtin/packages/flac/package.py
index 5a35abda8a..2c2aa35fa9 100644
--- a/var/spack/repos/builtin/packages/flac/package.py
+++ b/var/spack/repos/builtin/packages/flac/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class Flac(AutotoolsPackage):
homepage = "https://xiph.org/flac/index.html"
url = "http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xz"
+ version('1.3.3', sha256='213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748')
version('1.3.2', sha256='91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f')
version('1.3.1', sha256='4773c0099dba767d963fd92143263be338c48702172e8754b9bc5103efe1c56c')
version('1.3.0', sha256='fa2d64aac1f77e31dfbb270aeb08f5b32e27036a52ad15e69a77e309528010dc')
diff --git a/var/spack/repos/builtin/packages/flann/package.py b/var/spack/repos/builtin/packages/flann/package.py
index fc69246518..d186f2f8c4 100644
--- a/var/spack/repos/builtin/packages/flann/package.py
+++ b/var/spack/repos/builtin/packages/flann/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class Flann(CMakePackage):
C, MATLAB and Python.
"""
- homepage = "http://www.cs.ubc.ca/research/flann/"
+ homepage = "https://github.com/mariusmuja/flann"
url = "https://github.com/mariusmuja/flann/archive/1.9.1.tar.gz"
version('1.9.1', sha256='b23b5f4e71139faa3bcb39e6bbcc76967fbaf308c4ee9d4f5bfbeceaa76cc5d3')
diff --git a/var/spack/repos/builtin/packages/flap/package.py b/var/spack/repos/builtin/packages/flap/package.py
new file mode 100644
index 0000000000..3196dbab2f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/flap/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Flap(CMakePackage):
+ """Fortran command Line Arguments Parser"""
+
+ homepage = "https://github.com/szaghi/FLAP"
+ url = "https://github.com/szaghi/FLAP.git"
+ git = "https://github.com/szaghi/FLAP.git"
+
+ maintainers = ['fluidnumerics-joe']
+
+ version('master', branch='master', submodules=True)
+
+ def flag_handler(self, name, flags):
+ if name in ['cflags', 'cxxflags', 'cppflags']:
+ return (None, flags, None)
+ elif name == 'fflags':
+ flags.append('-cpp')
+ return (flags, None, None)
diff --git a/var/spack/repos/builtin/packages/flash/package.py b/var/spack/repos/builtin/packages/flash/package.py
index 79a27b46d4..07c4bb34bd 100644
--- a/var/spack/repos/builtin/packages/flash/package.py
+++ b/var/spack/repos/builtin/packages/flash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/flashdimmsim/package.py b/var/spack/repos/builtin/packages/flashdimmsim/package.py
new file mode 100644
index 0000000000..49f8a3563a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/flashdimmsim/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 Flashdimmsim(Package):
+ """FlashDIMMSim: a reasonably accurate flash DIMM simulator."""
+ homepage = "https://github.com/slunk/FlashDIMMSim"
+ git = "https://github.com/slunk/FlashDIMMSim.git"
+
+ version('master', branch='master')
+
+ build_directory = 'src'
+
+ def install(self, spec, prefix):
+ with working_dir(self.build_directory):
+ make() # build program
+ make('libfdsim.so') # build shared library
+
+ mkdir(prefix.bin)
+ mkdir(prefix.lib)
+ mkdir(prefix.include)
+
+ install_tree('ini', join_path(prefix, 'ini'))
+ install('FDSim', prefix.bin)
+ install('libfdsim.so', prefix.lib)
+ install('*.h', prefix.include)
diff --git a/var/spack/repos/builtin/packages/flatbuffers/package.py b/var/spack/repos/builtin/packages/flatbuffers/package.py
index c0a0ef4ee2..3c4e464727 100644
--- a/var/spack/repos/builtin/packages/flatbuffers/package.py
+++ b/var/spack/repos/builtin/packages/flatbuffers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Flatbuffers(CMakePackage):
"""Memory Efficient Serialization Library
"""
- homepage = "http://google.github.io/flatbuffers/"
+ homepage = "https://google.github.io/flatbuffers/"
url = "https://github.com/google/flatbuffers/archive/v1.9.0.tar.gz"
version('1.12.0', sha256='62f2223fb9181d1d6338451375628975775f7522185266cd5296571ac152bc45')
@@ -21,11 +21,40 @@ class Flatbuffers(CMakePackage):
variant('shared', default=True,
description='Build shared instead of static libraries')
+ variant('python', default=False,
+ description='Build with python support')
+
+ depends_on('py-setuptools', when='+python', type='build')
+ depends_on('python@3.6:', when='+python', type=('build', 'run'))
+ extends('python', when='+python')
+
+ # Fixes "Class-memaccess" compilation error in test
+ # https://github.com/google/flatbuffers/issues/5930
+ # Possibly affects earlier releases but I haven't tried to apply it.
+ patch('https://raw.githubusercontent.com/Flamefire/easybuild-easyconfigs/'
+ '72ba2a1a0d44fbd96ded9f279373ef804bdf3903/easybuild/easyconfigs/f/'
+ 'flatbuffers/flatbuffers-1.12.0_replace-usage-of-memset.patch',
+ sha256='094a98b5a7debbc2c60c2b235942c79e505ec76f9281f87c95d15e9ad8a97c52',
+ when='@1.12.0:%gcc@10:')
+ # Silences false positive "-Wstringop-overflow" on GCC 10+
+ # https://github.com/google/flatbuffers/issues/5950
+ # Possibly affects earlier releases but I haven't tried to apply it.
+ patch('https://patch-diff.githubusercontent.com/raw/google/flatbuffers/pull/'
+ '6020.patch',
+ sha256='4a9a18abc776407f3f97e02c40f349cfb24fe7ddb41df952271d894777a31c88',
+ when='@1.12.0:%gcc@10:')
+
+ @run_after('install')
+ def python_install(self):
+ if '+python' in self.spec:
+ pydir = join_path(self.stage.source_path, 'python')
+ with working_dir(pydir):
+ setup_py('install', '--prefix=' + prefix,
+ '--single-version-externally-managed', '--root=/')
def cmake_args(self):
args = []
- args.append('-DFLATBUFFERS_BUILD_SHAREDLIB={0}'.format(
- 'ON' if '+shared' in self.spec else 'OFF'))
+ args.append(self.define_from_variant('FLATBUFFERS_BUILD_SHAREDLIB', 'shared'))
args.append('-DFLATBUFFERS_BUILD_FLATLIB={0}'.format(
'ON' if '+shared' not in self.spec else 'OFF'))
if 'darwin' in self.spec.architecture:
diff --git a/var/spack/repos/builtin/packages/flatcc/package.py b/var/spack/repos/builtin/packages/flatcc/package.py
index a9d3617c9b..789b43fd55 100644
--- a/var/spack/repos/builtin/packages/flatcc/package.py
+++ b/var/spack/repos/builtin/packages/flatcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/flcl/package.py b/var/spack/repos/builtin/packages/flcl/package.py
index fcc7e673b6..a3a6ba9c98 100644
--- a/var/spack/repos/builtin/packages/flcl/package.py
+++ b/var/spack/repos/builtin/packages/flcl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,7 +23,6 @@ class Flcl(CMakePackage):
def cmake_args(self):
args = []
- args.append('-DBUILD_TESTING:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF'))
+ args.append(self.define('BUILD_TESTING', self.run_tests))
return args
diff --git a/var/spack/repos/builtin/packages/flecsale/package.py b/var/spack/repos/builtin/packages/flecsale/package.py
index 2a05562752..eb8166f263 100644
--- a/var/spack/repos/builtin/packages/flecsale/package.py
+++ b/var/spack/repos/builtin/packages/flecsale/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/flecsi/package.py b/var/spack/repos/builtin/packages/flecsi/package.py
index fccdd686b0..e7cee1bf74 100644
--- a/var/spack/repos/builtin/packages/flecsi/package.py
+++ b/var/spack/repos/builtin/packages/flecsi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@
from spack import *
-class Flecsi(CMakePackage):
+class Flecsi(CMakePackage, CudaPackage):
'''FleCSI is a compile-time configurable framework designed to support
multi-physics application development. As such, FleCSI attempts to
provide a very general set of infrastructure design patterns that can
@@ -18,20 +18,21 @@ class Flecsi(CMakePackage):
interfaces,and dependency closures.
'''
homepage = 'http://flecsi.org/'
- git = 'https://github.com/laristra/flecsi.git'
+ git = 'https://github.com/flecsi/flecsi.git'
+ maintainers = ['rspavel', 'ktsai7']
- version('devel', branch='devel', submodules=False, preferred=False)
- version('1', branch='1', submodules=False, preferred=True)
- version('1.4', branch='1.4', submodules=False, preferred=False)
+ version('develop', branch='devel', submodules=False)
+ version('1', git="https://github.com/laristra/flecsi.git", branch='1', submodules=False, preferred=False)
+ version('1.4', git="https://github.com/laristra/flecsi.git", branch='1.4', submodules=False, preferred=False)
+ version('1.4.2', git="https://github.com/laristra/flecsi.git", tag='v1.4.2', submodules=False, preferred=True)
+ version('2.1.0', tag='v2.1.0', submodules=False, preferred=False)
+ version('flecsph', git="https://github.com/laristra/flecsi.git", branch="stable/flecsph", submodules=True, preferred=False)
- variant('build_type', default='Release',
- values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'),
- description='The build type to build', multi=False)
variant('backend', default='mpi', values=('serial', 'mpi', 'legion', 'hpx', 'charmpp'),
description='Backend to use for distributed memory', multi=False)
variant('debug_backend', default=False,
description='Build Backend with Debug Mode')
- variant('minimal', default=False,
+ variant('disable_metis', default=False,
description='Disable FindPackageMetis')
variant('shared', default=True,
description='Build shared libraries')
@@ -43,54 +44,106 @@ class Flecsi(CMakePackage):
description='Enable documentation')
variant('coverage', default=False,
description='Enable coverage build')
- variant('hdf5', default=False,
+ variant('hdf5', default=True,
description='Enable HDF5 Support')
- variant('caliper', default=False,
- description='Enable Caliper Support')
+ variant('caliper_detail', default='none',
+ values=('none', 'low', 'medium', 'high'),
+ description='Set Caliper Profiling Detail', multi=False)
variant('graphviz', default=False,
description='Enable GraphViz Support')
variant('tutorial', default=False,
description='Build FleCSI Tutorials')
variant('flecstan', default=False,
description='Build FleCSI Static Analyzer')
- variant('cinch', default=False,
+ variant('external_cinch', default=True,
description='Enable External Cinch')
-
- depends_on('cmake@3.12:', type='build')
- # Requires cinch > 1.0 due to cinchlog installation issue
- depends_on('cinch@1.01:', type='build', when='+cinch')
- depends_on('mpi', when='backend=mpi')
- depends_on('mpi', when='backend=legion')
- depends_on('mpi', when='backend=hpx')
- depends_on('legion@ctrl-rep+shared+mpi+hdf5 build_type=Debug', when='backend=legion +debug_backend +hdf5')
- depends_on('legion@ctrl-rep+shared+mpi build_type=Debug', when='backend=legion +debug_backend ~hdf5')
- depends_on('legion@ctrl-rep+shared+mpi+hdf5 build_type=Release', when='backend=legion ~debug_backend +hdf5')
- depends_on('legion@ctrl-rep+shared+mpi build_type=Release', when='backend=legion ~debug_backend ~hdf5')
- depends_on('hpx@1.3.0 cxxstd=14 malloc=system build_type=Debug', when='backend=hpx +debug_backend')
- depends_on('hpx@1.3.0 cxxstd=14 malloc=system build_type=Release', when='backend=hpx ~debug_backend')
- depends_on('boost@1.70.0: cxxstd=14 +program_options')
+ variant('kokkos', default=False,
+ description='Enable Kokkos Support')
+ variant('unit_tests', default=False,
+ description='Build with Unit Tests Enabled')
+ variant('openmp', default=False,
+ description='Enable OpenMP Support')
+
+ # All Current FleCSI Releases
+ for level in ('low', 'medium', 'high'):
+ depends_on('caliper@2.0.1~adiak~libdw', when='@:1.9 caliper_detail=%s' % level)
+ depends_on('caliper@2.4.0~libdw', when='@2.0: caliper_detail=%s' % level)
+ depends_on('graphviz', when='+graphviz')
+ depends_on('hdf5+hl+mpi', when='+hdf5')
depends_on('metis@5.1.0:')
depends_on('parmetis@4.0.3:')
- depends_on('hdf5+mpi', when='+hdf5')
- depends_on('caliper', when='+caliper')
- depends_on('graphviz', when='+graphviz')
- depends_on('python@3.0:', when='+tutorial')
- depends_on('llvm', when='+flecstan')
+ depends_on('boost@1.70.0: cxxstd=17 +program_options')
+ depends_on('openmpi+legacylaunchers', when='+unit_tests ^openmpi')
+ depends_on('legion network=gasnet', when='backend=legion')
+
+ # FleCSI@1.x
+ depends_on('cmake@3.12:', when='@:1.9')
+ # Requires cinch > 1.0 due to cinchlog installation issue
+ depends_on('cinch@1.01:', type='build', when='+external_cinch @:1.9')
+ depends_on('mpi', when='backend=mpi @:1.9')
+ depends_on('mpi', when='backend=legion @:1.9')
+ depends_on('mpi', when='backend=hpx @:1.9')
+ depends_on('legion+shared', when='backend=legion @:1.9')
+ depends_on('legion+hdf5', when='backend=legion +hdf5 @:1.9')
+ depends_on('legion build_type=Debug', when='backend=legion +debug_backend @:1.9')
+ depends_on('legion@ctrl-rep-7', when='backend=legion @:1.9')
+ depends_on('hpx@1.4.1 cxxstd=17 malloc=system max_cpu_count=128', when='backend=hpx @:1.9')
+ depends_on('hpx build_type=Debug', when='backend=hpx +debug_backend @:1.9')
+ depends_on('googletest@1.8.1+gmock', when='@:1.9')
+ depends_on('python@3.0:', when='+tutorial @:1.9')
+ depends_on('doxygen', when='+doxygen @:1.9')
+ depends_on('llvm', when='+flecstan @:1.9')
+ depends_on('pfunit@3.0:3.99', when='@:1.9')
+ depends_on('py-gcovr', when='+coverage @:1.9')
+
+ # FleCSI@2.x
+ depends_on('cmake@3.15:', when='@2.0:')
+ depends_on('boost +atomic +filesystem +regex +system', when='@2.0:')
+ depends_on('kokkos@3.2.00:', when='+kokkos @2.0:')
+ depends_on('legion@ctrl-rep-9:ctrl-rep-99', when='backend=legion @2.0:')
+ depends_on('legion+hdf5', when='backend=legion +hdf5 @2.0:')
+ depends_on('hdf5@1.10.7:', when='backend=legion +hdf5 @2.0:')
+ depends_on('hpx@1.3.0 cxxstd=17 malloc=system', when='backend=hpx @2.0:')
+ depends_on('kokkos@3.2.00:', when='+kokkos @2.0:')
+ depends_on('mpich@3.4.1:', when='@2.0: ^mpich')
+ depends_on('openmpi@4.1.0:', when='@2.0: ^openmpi')
conflicts('+tutorial', when='backend=hpx')
- # conflicts('+hdf5', when='backend=hpx')
+ # FleCSI@2: no longer supports serial or charmpp backends
+ conflicts('backend=serial', when='@2.0:')
+ conflicts('backend=charmpp', when='@2.0:')
+ # FleCSI@2: no longer expects to control how backend is built
+ conflicts('+debug_backend', when='@2.0:')
+ # FleCSI@2: No longer supports previous TPL related flags
+ conflicts('+disable_metis', when='@2.0:')
+ # FleCSI@2: no longer provides documentation variants
+ conflicts('+doxygen', when='@2.0:')
+ conflicts('+doc', when='@2.0:')
+ # FleCSI@2: no longer provides coverage variants
+ conflicts('+coverage', when='@2.0:')
+ # FleCSI@2: no longer provides tutorial variants
+ conflicts('+tutorial', when='@2.0:')
+ # FleCSI@2: no longer supports flecstan
+ conflicts('+flecstan', when='@2.0:')
+ # FleCSI@2: integrates cinch and no longer depends on external installs
+ conflicts('+external_cinch', when='@2.0:')
+ # Current FleCSI@:1.9 releases do not support kokkos, omp, or cuda
+ conflicts('+kokkos', when='@:1.9')
+ conflicts('+openmp', when='@:1.9')
+ conflicts('+cuda', when='@:1.9')
+ # Unit tests require flog support
+ conflicts('+unit_tests', when='~flog')
+ # Disallow conduit=none when using legion as a backend
+ conflicts('legion conduit=none', when='backend=legion')
+ # Due to overhauls of Legion and Gasnet spackages
+ # flecsi@:1.9 can no longer be built with a usable legion
+ conflicts('backend=legion', when='@:1.9')
def cmake_args(self):
spec = self.spec
- options = ['-DENABLE_OPENMP=ON',
- '-DCXX_CONFORMANCE_STANDARD=c++17',
- '-DENABLE_METIS=ON',
- '-DENABLE_PARMETIS=ON',
- '-DENABLE_COLORING=ON',
- '-DENABLE_DEVEL_TARGETS=ON'
- ]
-
- if '+cinch' in spec:
+ options = []
+
+ if '+external_cinch' in spec:
options.append('-DCINCH_SOURCE_DIR=' + spec['cinch'].prefix)
if spec.variants['backend'].value == 'legion':
@@ -102,32 +155,61 @@ class Flecsi(CMakePackage):
elif spec.variants['backend'].value == 'hpx':
options.append('-DFLECSI_RUNTIME_MODEL=hpx')
options.append('-DENABLE_MPI=ON')
+ options.append('-DHPX_IGNORE_CMAKE_BUILD_TYPE_COMPATIBILITY=ON')
+ elif spec.variants['backend'].value == 'charmpp':
+ options.append('-DFLECSI_RUNTIME_MODEL=charmpp')
+ options.append('-DENABLE_MPI=ON')
else:
options.append('-DFLECSI_RUNTIME_MODEL=serial')
options.append('-DENABLE_MPI=OFF')
- if self.run_tests:
+ if '+shared' in spec:
+ options.append('-DBUILD_SHARED_LIBS=ON')
+ else:
+ options.append('-DBUILD_SHARED_LIBS=OFF')
+
+ options.append('-DCALIPER_DETAIL=%s' %
+ spec.variants['caliper_detail'].value)
+ if spec.satisfies('@:1.9'):
+ if spec.variants['caliper_detail'].value == 'none':
+ options.append('-DENABLE_CALIPER=OFF')
+ else:
+ options.append('-DENABLE_CALIPER=ON')
+
+ if self.run_tests or '+unit' in spec:
options.append('-DENABLE_UNIT_TESTS=ON')
else:
options.append('-DENABLE_UNIT_TESTS=OFF')
- if '+minimal' in spec:
- options.append('-DCMAKE_DISABLE_FIND_PACKAGE_METIS=ON')
+ if ('+flog' in spec):
+ options.append('-DENABLE_FLOG=ON')
else:
- options.append('-DCMAKE_DISABLE_FIND_PACKAGE_METIS=OFF')
- if '+shared' in spec:
- options.append('-DBUILD_SHARED_LIBS=ON')
- else:
- options.append('-DBUILD_SHARED_LIBS=OFF')
+ options.append('-DENABLE_FLOG=OFF')
if '+hdf5' in spec and spec.variants['backend'].value != 'hpx':
options.append('-DENABLE_HDF5=ON')
else:
options.append('-DENABLE_HDF5=OFF')
- if '+caliper' in spec:
- options.append('-DENABLE_CALIPER=ON')
+
+ if '+graphviz' in spec:
+ options.append('-DENABLE_GRAPHVIZ=ON')
+ else:
+ options.append('-DENABLE_GRAPHVIZ=OFF')
+
+ if '+kokkos' in spec:
+ options.append('-DENABLE_KOKKOS=ON')
+ else:
+ options.append('-DENABLE_KOKKOS=OFF')
+ if '+openmp' in spec:
+ options.append('-DENABLE_OPENMP=ON')
else:
- options.append('-DENABLE_CALIPER=OFF')
+ options.append('-DENABLE_OPENMP=OFF')
+
+ if '+disable_metis' in spec:
+ options.append('-DCMAKE_DISABLE_FIND_PACKAGE_METIS=ON')
+ else:
+ options.append('-DCMAKE_DISABLE_FIND_PACKAGE_METIS=OFF')
+
if '+tutorial' in spec:
options.append('-DENABLE_FLECSIT=ON')
options.append('-DENABLE_FLECSI_TUTORIAL=ON')
diff --git a/var/spack/repos/builtin/packages/flecsph/package.py b/var/spack/repos/builtin/packages/flecsph/package.py
index d77ec4d507..d79442f6af 100644
--- a/var/spack/repos/builtin/packages/flecsph/package.py
+++ b/var/spack/repos/builtin/packages/flecsph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,10 +22,10 @@ class Flecsph(CMakePackage):
variant('test', default=True, description='Adding tests')
depends_on('cmake@3.15:', type='build')
- depends_on('boost@1.70.0: cxxstd=14 +program_options')
+ depends_on('boost@1.70.0: cxxstd=17 +program_options')
depends_on('mpi')
depends_on('hdf5+hl@1.8:')
- depends_on('flecsi@1 +cinch backend=mpi')
+ depends_on('flecsi@1.4.2 +external_cinch backend=mpi')
depends_on('gsl')
depends_on('googletest', when='+test')
depends_on("pkgconfig", type='build')
diff --git a/var/spack/repos/builtin/packages/flex/package.py b/var/spack/repos/builtin/packages/flex/package.py
index 0197dab272..b81d5dee09 100644
--- a/var/spack/repos/builtin/packages/flex/package.py
+++ b/var/spack/repos/builtin/packages/flex/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 re
+from spack import *
+
class Flex(AutotoolsPackage):
"""Flex is a tool for generating scanners."""
@@ -14,22 +15,26 @@ class Flex(AutotoolsPackage):
homepage = "https://github.com/westes/flex"
url = "https://github.com/westes/flex/releases/download/v2.6.1/flex-2.6.1.tar.gz"
+ tags = ['build-tools']
+
executables = ['^flex$']
version('2.6.4', sha256='e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995')
- version('2.6.3', sha256='68b2742233e747c462f781462a2a1e299dc6207401dac8f0bbb316f48565c2aa')
+ version('2.6.3', sha256='68b2742233e747c462f781462a2a1e299dc6207401dac8f0bbb316f48565c2aa', preferred=True)
# Avoid flex '2.6.2' (major bug)
# See issue #2554; https://github.com/westes/flex/issues/113
version('2.6.1', sha256='3c43f9e658e45e8aae3cf69fa11803d60550865f023852830d557c5f0623c13b')
version('2.6.0', sha256='cde6e46064a941a3810f7bbc612a2c39cb3aa29ce7eb775089c2515d0adfa7e9')
version('2.5.39', sha256='258d3c9c38cae05932fb470db58b6a288a361c448399e6bda2694ef72a76e7cd')
+ variant('nls', default=False, description="Enable native language support")
variant('lex', default=True,
description="Provide symlinks for lex and libl")
depends_on('bison', type='build')
- depends_on('gettext@0.19:', type='build')
- depends_on('help2man', type='build')
+ depends_on('gettext@0.19:', type='build', when='+nls')
+ depends_on('gettext@0.19:', type='build', when='@:2.6.0,2.6.4')
+ depends_on('help2man', type='build', when='@:2.6.0,2.6.4')
depends_on('findutils', type='build')
depends_on('diffutils', type='build')
@@ -88,6 +93,11 @@ class Flex(AutotoolsPackage):
return url
+ def configure_args(self):
+ args = []
+ args += self.enable_or_disable('nls')
+ return args
+
@run_after('install')
def symlink_lex(self):
"""Install symlinks for lex compatibility."""
diff --git a/var/spack/repos/builtin/packages/flexi/for_aarch64.patch b/var/spack/repos/builtin/packages/flexi/for_aarch64.patch
new file mode 100644
index 0000000000..4b8efe13ad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/flexi/for_aarch64.patch
@@ -0,0 +1,9 @@
+--- spack-src/tools/userblock/generateuserblock.sh.org 2021-03-05 15:27:48.635287742 +0900
++++ spack-src/tools/userblock/generateuserblock.sh 2021-03-05 15:29:31.995593495 +0900
+@@ -108,5 +108,5 @@
+ tar cJf userblock.tar.xz userblock.txt
+
+ # Build the module
+-objcopy -I binary -O elf64-x86-64 -B i386 --redefine-sym _binary_userblock_tar_xz_start=userblock_start --redefine-sym _binary_userblock_tar_xz_end=userblock_end --redefine-sym _binary_userblock_tar_xz_size=userblock_size userblock.tar.xz userblock.o
++objcopy -I binary -O elf64-littleaarch64 -B aarch64 --redefine-sym _binary_userblock_tar_xz_start=userblock_start --redefine-sym _binary_userblock_tar_xz_end=userblock_end --redefine-sym _binary_userblock_tar_xz_size=userblock_size userblock.tar.xz userblock.o
+ rm userblock.tar.xz
diff --git a/var/spack/repos/builtin/packages/flexi/package.py b/var/spack/repos/builtin/packages/flexi/package.py
new file mode 100644
index 0000000000..d3e37abb2c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/flexi/package.py
@@ -0,0 +1,95 @@
+# Copyright 2013-2021 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 Flexi(CMakePackage):
+ """Open Source High-Order Unstructured Discontinuous Galerkin Fluid
+ Dynamics Solver"""
+
+ homepage = "https://www.flexi-project.org/"
+ git = "https://github.com/flexi-framework/flexi.git"
+
+ version('master', preferred=True)
+ version('21.03.0', tag='v21.03.0')
+
+ patch('for_aarch64.patch', when='target=aarch64:')
+
+ variant('mpi', default=True, description='Enable MPI')
+ variant('2d', default=False, description='If set to True the code will run in two-dimensional mode')
+ variant('eqnsysname', default='navierstokes', values=('navierstokes', 'linearscalaradvection', 'rans_sa'), multi=False, description='Defines the equation system')
+ variant('fv', default=False, description='Enables the usage of the finite volume subcell shock capturing mechanism')
+ variant('lifting', default='br1', values=('br1', 'br2'), multi=False, description='Two different lifting methods for the parabolic part of the equation system available')
+ variant('nodetype', default='GAUSS', values=('GAUSS', 'GAUSS-LOBATTO'), multi=False, description='Space discretization basis function')
+ variant('split', default=False, description='Split form of the discontinuous Galerkin operator')
+ variant('parabolic', default=True, description=' Defines, whether the parabolic part of the chosen system should be included or not')
+ variant('testcase', default='default', values=('default', 'taylorgreenvortex', 'phill', 'channel', 'riemann2d'), multi=False, description='Defines the used test case')
+ variant('viscosity', default='constant', values=('constant', 'sutherland', 'powerlaw'), multi=False, description='Defines modeling approach for viscosity')
+ variant('eddy_viscosity', default=False, description='Enable eddy viscosity')
+
+ # Available Tools
+ variant('visu', default=True, description='Enable posti_visu')
+ variant('swapmesg', default=False, description='Enable posti_swapmesh')
+ variant('preparerecordpoints', default=False, description='Enable posti_preparerecordpoints')
+ variant('visualizerecordpoints', default=False, description='Enable posti_visualizerecordpoints')
+ variant('evaluaterecordpoints', default=False, description='Enable posti_evaluaterecordpoints')
+ variant('mergetimeaverages', default=False, description='Enable posti_mergetimeaverages')
+ variant('channel_fft', default=False, description='Enable posti_channel_fft')
+ variant('to3d', default=False, description='Enable posti_to3d')
+ variant('avg2d', default=False, description='Enable posti_avg2d')
+
+ conflicts('+to3d', when='@:21.03.0', msg='Only available in newer releases')
+ conflicts('nodetype=GAUSS', when='+split', msg='Only available for Gauss-Lobatto nodes')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('hdf5+fortran+mpi', when='+mpi')
+ depends_on('hdf5+fortran~mpi', when='~mpi')
+ depends_on('lapack')
+ depends_on('zlib')
+ depends_on('fftw', when='+channel_fft')
+
+ def flag_handler(self, name, flags):
+ if name == 'fflags':
+ if self.spec.satisfies('%gcc@10:'):
+ if flags is None:
+ flags = []
+ flags.append('-fallow-argument-mismatch')
+
+ return (flags, None, None)
+
+ def cmake_args(self):
+ args = [
+ '-DLIBS_BUILD_HDF5:BOOL=OFF',
+ self.define_from_variant('LIBS_USE_MPI', 'mpi'),
+ self.define_from_variant('FLEXI_2D', '2d'),
+ self.define_from_variant('FLEXI_EQNSYSNAME', 'eqnsysname'),
+ self.define_from_variant('FLEXI_FV', 'fv'),
+ self.define_from_variant('FLEXI_LIFTING', 'lifting'),
+ self.define_from_variant('FLEXI_NODETYPE', 'nodetype'),
+ self.define_from_variant('FLEXI_SPLIT_DG', 'split'),
+ self.define_from_variant('FLEXI_PARABOLIC', 'parabolic'),
+ self.define_from_variant('FLEXI_TESTCASE', 'testcase'),
+ self.define_from_variant('FLEXI_VISCOSITY', 'viscosity'),
+ self.define_from_variant('FLEXI_EDDYVISCOSITY', 'eddy_viscosity'),
+
+ self.define_from_variant('POSTI_VISU', 'visu'),
+ self.define_from_variant('POSTI_SWAPMESH', 'swapmesg'),
+ self.define_from_variant('POSTI_RP_VISUALIZE', 'visualizerecordpoints'),
+ self.define_from_variant('POSTI_RP_EVALUATE', 'evaluaterecordpoints'),
+ self.define_from_variant('POSTI_MERGETIMEAVERAGES', 'mergetimeaverages'),
+ self.define_from_variant('POSTI_CHANNEL_FFT', 'channel_fft'),
+ self.define_from_variant('POSTI_TO3D', 'to3d'),
+ self.define_from_variant('POSTI_AVG2D', 'avg2d'),
+ ]
+
+ if self.spec.satisfies('@:21.03.0'):
+ args.append(self.define_from_variant('POSTI_RP_PREPARERE',
+ 'preparerecordpoints'))
+ else:
+ args.append(self.define_from_variant('POSTI_RP_PREPARE',
+ 'preparerecordpoints'))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/flexiblas/package.py b/var/spack/repos/builtin/packages/flexiblas/package.py
index 37855da107..c4f6031b2f 100644
--- a/var/spack/repos/builtin/packages/flexiblas/package.py
+++ b/var/spack/repos/builtin/packages/flexiblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,7 @@ class Flexiblas(CMakePackage):
homepage = "https://www.mpi-magdeburg.mpg.de/projects/flexiblas"
url = "https://csc.mpi-magdeburg.mpg.de/mpcsc/software/flexiblas/flexiblas-3.0.3.tar.gz"
+ version('3.0.4', sha256='50a88f2e88994dda91b2a2621850afd9654b3b84820e737e335687a46751be5c')
version('3.0.3', sha256='926ab31cf56f0618aec34da85314f3b48b6deb661b4e9d6e6a99dc37872b5341')
# virtual dependency
diff --git a/var/spack/repos/builtin/packages/flibcpp/package.py b/var/spack/repos/builtin/packages/flibcpp/package.py
index 01658ba2ee..0d97989325 100644
--- a/var/spack/repos/builtin/packages/flibcpp/package.py
+++ b/var/spack/repos/builtin/packages/flibcpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,10 @@ class Flibcpp(CMakePackage):
homepage = "https://flibcpp.readthedocs.io/en/latest"
git = "https://github.com/swig-fortran/flibcpp.git"
- url = "https://github.com/swig-fortran/flibcpp/archive/v0.3.1.tar.gz"
+ url = "https://github.com/swig-fortran/flibcpp/archive/v1.0.1.tar.gz"
- version('master', branch='master')
+ version('1.0.1', sha256='8569c71eab0257097a6aa666a6d86bdcb6cd6e31244d32cc5b2478d0e936ca7a')
+ version('0.5.2', sha256='b9b4eb6431d5b56a54c37f658df7455eafd3d204a5534903b127e0c8a1c9b827')
version('0.5.1', sha256='76db24ce7893f19ab97ea7260c39490ae1bd1e08a4cc5111ad7e70525a916993')
version('0.5.0', sha256='94204198304ba4187815431859e5958479fa651a6f06f460b099badbf50f16b2')
version('0.4.1', sha256='5c9a11af391fcfc95dd11b95338cff19ed8104df66d42b00ae54f6cde4da5bdf')
@@ -28,7 +29,7 @@ class Flibcpp(CMakePackage):
variant('fstd', default='03', values=('none', '03', '08', '15', '18'),
multi=False, description='Build with this Fortran standard')
- depends_on('swig@fortran', type='build', when="+swig")
+ depends_on('swig@4.0.2-fortran', type='build', when="+swig")
depends_on('py-sphinx', type='build', when="+doc")
@run_before('cmake')
@@ -40,10 +41,48 @@ class Flibcpp(CMakePackage):
raise InstallError('Flibcpp requires a Fortran compiler')
def cmake_args(self):
+ from_variant = self.define_from_variant
+ fstd_key = ('FLIBCPP_Fortran_STANDARD' if self.version > Version('1.0.0')
+ else 'FLIBCPP_FORTRAN_STD')
return [
- self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
- self.define_from_variant('FLIBCPP_BUILD_DOCS', 'doc'),
- self.define_from_variant('FLIBCPP_FORTRAN_STD', 'fstd'),
- self.define('BUILD_TESTING', bool(self.run_tests)),
+ from_variant('BUILD_SHARED_LIBS', 'shared'),
+ from_variant('FLIBCPP_BUILD_DOCS', 'doc'),
+ from_variant(fstd_key, 'fstd'),
+ from_variant('FLIBCPP_USE_SWIG', 'swig'),
+ self.define('FLIBCPP_BUILD_TESTS', bool(self.run_tests)),
self.define('FLIBCPP_BUILD_EXAMPLES', bool(self.run_tests)),
]
+
+ examples_src_dir = 'example'
+
+ @run_after('install')
+ def setup_smoke_tests(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.examples_src_dir])
+
+ @property
+ def cached_tests_work_dir(self):
+ """The working directory for cached test sources."""
+ return join_path(self.test_suite.current_test_cache_dir,
+ self.examples_src_dir)
+
+ def test(self):
+ """Perform stand-alone/smoke tests."""
+ cmake_args = [
+ self.define('CMAKE_PREFIX_PATH', self.prefix),
+ self.define('CMAKE_Fortran_COMPILER', self.compiler.fc),
+ ]
+ cmake_args.append(self.cached_tests_work_dir)
+
+ self.run_test("cmake", cmake_args,
+ purpose="test: calling cmake",
+ work_dir=self.cached_tests_work_dir)
+
+ self.run_test("make", [],
+ purpose="test: building the tests",
+ work_dir=self.cached_tests_work_dir)
+
+ self.run_test("run-examples.sh", [],
+ purpose="test: running the examples",
+ work_dir=self.cached_tests_work_dir)
diff --git a/var/spack/repos/builtin/packages/flink/package.py b/var/spack/repos/builtin/packages/flink/package.py
index d07391f756..95c2a9b501 100644
--- a/var/spack/repos/builtin/packages/flink/package.py
+++ b/var/spack/repos/builtin/packages/flink/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Flink(Package):
"""
homepage = "https://flink.apache.org/"
- url = "http://archive.apache.org/dist/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz"
+ url = "https://archive.apache.org/dist/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz"
version('1.9.1', sha256='f69de344cd593e92f8261e19ae8a47b3910e9a70a7cd1ccfb1ecd1ff000b93ea')
version('1.9.0', sha256='a2245f68309e94ed54d86a680232a518aed9c5ea030bcc0b298bc8f27165eeb7')
diff --git a/var/spack/repos/builtin/packages/flint/package.py b/var/spack/repos/builtin/packages/flint/package.py
index 11c3afbdf0..1aa5726e21 100644
--- a/var/spack/repos/builtin/packages/flint/package.py
+++ b/var/spack/repos/builtin/packages/flint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Flint(Package):
"""FLINT (Fast Library for Number Theory)."""
- homepage = "http://www.flintlib.org"
- url = "http://mirrors.mit.edu/sage/spkg/upstream/flint/flint-2.5.2.tar.gz"
+ homepage = "https://www.flintlib.org"
+ url = "https://mirrors.mit.edu/sage/spkg/upstream/flint/flint-2.5.2.tar.gz"
git = "https://github.com/wbhart/flint2.git"
version('develop', branch='trunk')
diff --git a/var/spack/repos/builtin/packages/flit/package.py b/var/spack/repos/builtin/packages/flit/package.py
index fbe1d2f342..6cd035f3b4 100644
--- a/var/spack/repos/builtin/packages/flit/package.py
+++ b/var/spack/repos/builtin/packages/flit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fltk/package.py b/var/spack/repos/builtin/packages/fltk/package.py
index 90f458bbd4..f4f6e6c213 100644
--- a/var/spack/repos/builtin/packages/fltk/package.py
+++ b/var/spack/repos/builtin/packages/fltk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,8 +18,8 @@ class Fltk(Package):
applications in minutes.
"""
- homepage = 'http://www.fltk.org/'
- url = 'http://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz'
+ homepage = 'https://www.fltk.org/'
+ url = 'https://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz'
version('1.3.3', sha256='f8398d98d7221d40e77bc7b19e761adaf2f1ef8bb0c30eceb7beb4f2273d0d97')
@@ -38,6 +38,12 @@ class Fltk(Package):
variant('shared', default=True,
description='Enables the build of shared libraries')
+ variant('gl', default=True,
+ description='Enables opengl support')
+
+ # variant dependencies
+ depends_on('gl', when='+gl')
+
def install(self, spec, prefix):
options = ['--prefix=%s' % prefix,
'--enable-localjpeg',
@@ -47,6 +53,9 @@ class Fltk(Package):
if '+shared' in spec:
options.append('--enable-shared')
+ if '~gl' in spec:
+ options.append('--disable-gl')
+
# FLTK needs to be built in-source
configure(*options)
make()
diff --git a/var/spack/repos/builtin/packages/flume/package.py b/var/spack/repos/builtin/packages/flume/package.py
index f672aa3b79..aa635ff8d5 100644
--- a/var/spack/repos/builtin/packages/flume/package.py
+++ b/var/spack/repos/builtin/packages/flume/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/flux-core/package.py b/var/spack/repos/builtin/packages/flux-core/package.py
index adb34f2611..71357bdabd 100644
--- a/var/spack/repos/builtin/packages/flux-core/package.py
+++ b/var/spack/repos/builtin/packages/flux-core/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class FluxCore(AutotoolsPackage):
""" A next-generation resource manager (pre-alpha) """
@@ -13,20 +14,23 @@ class FluxCore(AutotoolsPackage):
homepage = "https://github.com/flux-framework/flux-core"
url = "https://github.com/flux-framework/flux-core/releases/download/v0.8.0/flux-core-0.8.0.tar.gz"
git = "https://github.com/flux-framework/flux-core.git"
+ maintainers = ['SteVwonder']
version('master', branch='master')
+ version('0.28.0', sha256='9a784def7186b0036091bd8d6d8fe5bc3425ab2927e1465e1c9ad266631c285d')
+ version('0.27.0', sha256='abd46d38081ba6b501adb1c111374b39d6ae72ac1aec9fbbf31943a856541d3a')
+ version('0.26.0', sha256='58bfd4742c59364b13cd83214e8f70735952d01793800b149cae056fddfeeff1')
+ version('0.25.0', sha256='3c97e21eaec51e8aa0eaee6aa8eb23246650d102a6b6a5c9943cd69e3c8e1008')
+ version('0.24.0', sha256='fb7e0f9a44d84144a8eaf8f42a5d7e64a4a847861d0ddc2ad8fc4908b5a9190e')
+ version('0.23.0', sha256='918b181be4e27c32f02d5036230212cd9235dc78dc2bde249c3651d6f75866c7')
+ version('0.22.0', sha256='1dd0b737199b8a40f245e6a4e1b3b28770f0ecf2f483d284232080b8b252521f')
+ version('0.21.0', sha256='cc1b7a46d7c1c1a3e99e8861bba0dde89a97351eabd6f1b264788bd76e64c329')
+ version('0.20.0', sha256='2970b9b1c389fc4a381f9e605921ce0eb6aa9339387ea741978bcffb4bd81b6f')
version('0.19.0', sha256='f45328a37d989c308c46639a9ed771f47b11184422cf5604249919fbd320d6f5')
version('0.18.0', sha256='9784bbca94177a32dbbc99728e8925bf894f3aebaa316961d6ea85df32d59545')
version('0.17.0', sha256='3f8c6cb72982028f86a96c0098cacd3a6e9de359fa1cf077380c835a20e7b7f7')
version('0.16.0', sha256='1582f7fb4d2313127418c34de7c9ce4f5fef00622d19cedca7bed929f4709f10')
version('0.15.0', sha256='51bc2eae69501f802459fc82f191eb5e8ae0b4f7e9e77ac18543a850cc8445f5')
- version('0.11.3', sha256='91b5d7dca8fc28a77777c4e4cb8717fc3dc2c174e70611740689a71901c6de7e')
- version('0.11.2', sha256='ab8637428cd9b74b2dff4842d10e0fc4acc8213c4e51f31d32a4cbfbdf730412')
- version('0.11.1', sha256='3c8495db0f3b701f6dfe3e2a75aed794fc561e9f28284e8c02ac67693bfe890e')
- version('0.11.0', sha256='a4d8ff92e79b4ca19d556395bb8c5f8dc02fd9d5a8cc38c4a2c66867a96de5ea')
- version('0.10.0', sha256='a70cdd228077af60c9443a5c69d3da932e447dd11697f5fef9028c48dabb3041')
- version('0.9.0', sha256='7b5b4aa72704b3c4432136b9e515e0d663568e6dbfc3ecd2f91c83b65841104e')
- version('0.8.0', sha256='eb4b0fe0da191acd3823ef42d415c40aae6a0c3aef62ebb27905658d045e11cc')
# Avoid the infinite symlink issue
# This workaround is documented in PR #3543
@@ -36,37 +40,27 @@ class FluxCore(AutotoolsPackage):
variant('cuda', default=False, description='Build dependencies with support for CUDA')
depends_on("libzmq@4.0.4:")
- depends_on("czmq")
- depends_on("czmq@2.2:3.99", when="@0.1:0.6")
- depends_on("czmq@3.0.1:", when="@0.7:")
- depends_on("hwloc@1.11.1:1.99")
+ depends_on("czmq@3.0.1:")
+ depends_on("hwloc@1.11.1:1.99", when="@:0.17.0")
+ depends_on("hwloc@1.11.1:", when="@0.17.0:")
depends_on("hwloc +cuda", when='+cuda')
# Provide version hints for lua so that the concretizer succeeds when no
# explicit flux-core version is given. See issue #10000 for details
- depends_on("lua@5.1:5.2.99", type=('build', 'run', 'link'))
- depends_on("lua@5.1:5.1.99", when="@0.1.0:0.9.0")
- depends_on("lua@5.1:5.2.99", when="@0.10.0:,master")
+ depends_on("lua", type=('build', 'run', 'link'))
+ depends_on("lua@5.1:5.2.99", when="@:0.17.0")
+ depends_on("lua@5.1:5.3.99", when="@0.18.0:,master")
depends_on("lua-luaposix")
- depends_on("munge", when="@0.1.0:0.10.0")
# `link` dependency on python due to Flux's `pymod` module
- depends_on("python", type=('build', 'run', 'link'))
- depends_on("python@2.7:2.99",
- when="@0.1.0:0.11.0",
- type=('build', 'run', 'link'))
- depends_on("python@2.7:", when="@0.11.1:", type=('build', 'run', 'link'))
- depends_on("python@3.6:", when="@0.17.0:,master", type=('build', 'run', 'link'))
+ depends_on("python@3.6:", type=('build', 'run', 'link'))
depends_on("py-cffi", type=('build', 'run'))
- depends_on("py-six", type=('build', 'run'), when="@0.11.0:")
- depends_on("py-pyyaml", type=('build', 'run'), when="@0.11.0:")
- depends_on("py-jsonschema", type=('build', 'run'), when="@0.12.0:")
+ depends_on("py-six", type=('build', 'run'))
+ depends_on("py-pyyaml")
+ depends_on("py-jsonschema")
depends_on("jansson")
+ depends_on("jansson@2.10:", when="@0.21.0:")
depends_on("pkgconfig")
- depends_on("yaml-cpp", when="@:0.11")
- depends_on("lz4", when="@0.11.0:")
-
- # versions up to 0.8.0 uses pylint to check Flux's python binding
- # later versions provide a configure flag and disable the check by default
- depends_on("py-pylint", when='@:0.8.0', type='build')
+ depends_on("yaml-cpp")
+ depends_on("lz4")
depends_on("asciidoc", type='build', when="+docs")
@@ -78,7 +72,7 @@ class FluxCore(AutotoolsPackage):
# Testing Dependencies
depends_on("mpich pmi=pmi", type="test")
depends_on("valgrind", type="test")
- depends_on("jq", type="test", when='@0.12.0:')
+ depends_on("jq", type="test")
def url_for_version(self, version):
'''
@@ -179,3 +173,20 @@ class FluxCore(AutotoolsPackage):
if '+docs' not in self.spec:
args.append('--disable-docs')
return args
+
+ def flag_handler(self, name, flags):
+ if name == 'cflags':
+ # https://github.com/flux-framework/flux-core/issues/3482
+ if self.spec.satisfies('%gcc@10:') and \
+ self.spec.satisfies('@0.23.0:0.23.99'):
+ if flags is None:
+ flags = []
+ flags.append('-Wno-error=stringop-truncation')
+
+ if self.spec.satisfies('%gcc@8:') and \
+ self.spec.satisfies('@0.23.0'):
+ if flags is None:
+ flags = []
+ flags.append('-Wno-error=maybe-uninitialized')
+
+ return (flags, None, None)
diff --git a/var/spack/repos/builtin/packages/flux-sched/package.py b/var/spack/repos/builtin/packages/flux-sched/package.py
index 99bbce3b52..93e520633c 100644
--- a/var/spack/repos/builtin/packages/flux-sched/package.py
+++ b/var/spack/repos/builtin/packages/flux-sched/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class FluxSched(AutotoolsPackage):
""" A scheduler for flux-core (pre-alpha) """
@@ -13,17 +14,19 @@ class FluxSched(AutotoolsPackage):
homepage = "https://github.com/flux-framework/flux-sched"
url = "https://github.com/flux-framework/flux-sched/releases/download/v0.5.0/flux-sched-0.5.0.tar.gz"
git = "https://github.com/flux-framework/flux-sched.git"
+ maintainers = ['SteVwonder']
version('master', branch='master')
+ version('0.17.0', sha256='5acfcb757e2294a92eaa91be58ba9b42736b88b42d2937de4a78f4642b1c4933')
+ version('0.16.0', sha256='08313976161c141b9b34e2d44d5a08d1b11302e22d60aeaf878eef84d4bd2884')
+ version('0.15.0', sha256='ff24d26997f91af415f98734b8117291f5a5001e86dac865b56b3d72980c80c8')
+ version('0.14.0', sha256='2808f42032b917823d69cd26103c9238694416e2f30c6d39c11c670927ed232a')
+ version('0.13.0', sha256='ba17fc0451239fe31a1524b6a270741873f59a5057514d2524fd3e9215c47a82')
+ version('0.12.0', sha256='b41ecaebba254abfb5a7995fd9100bd45a59d4ad0a79bdca8b3db02785d97b1d')
version('0.11.0', sha256='6a0e3c0678f85da8724e5399b02be9686311c835617f6036235ef54b489cc336')
version('0.10.0', sha256='5944927774709b5f52ddf64a0e825d9b0f24c9dea890b5504b87a8576d217cf6')
version('0.9.0', sha256='0e1eb408a937c2843bdaaed915d4d7e2ea763b98c31e7b849a96a74758d66a21')
version('0.8.0', sha256='45bc3cefb453d19c0cb289f03692fba600a39045846568d258e4b896ca19ca0d')
- version('0.7.1', sha256='a35e555a353feed6b7b814ae83d05362356f9ee33ffa75d7dfb7e2fe86c21294')
- version('0.7.0', sha256='69267a3aaacaedd9896fd90cfe17aef266cba4fb28c77f8123d95a31ce739a7b')
- version('0.6.0', sha256='3301d4c10810414228e5969b84b75fe1285abb97453070eb5a77f386d8184f8d')
- version('0.5.0', sha256='d6347f5c85c12c76364dccb39d63c007094ca9cbbbae4e8f4e98d8b1c0b07e89')
- version('0.4.0', sha256='00768a0b062aec42aa9b31d9d7006efd3a3e9cb9c24878d50487643c8af15e8a')
# Avoid the infinite symlink issue
# This workaround is documented in PR #3543
@@ -31,21 +34,21 @@ class FluxSched(AutotoolsPackage):
variant('cuda', default=False, description='Build dependencies with support for CUDA')
- depends_on("boost+graph@1.53.0,1.59.0:", when='@0.5.0:')
- depends_on("py-pyyaml", when="@0.7.0:")
- depends_on("libxml2@2.9.1:", when="@0.6.0")
- depends_on("yaml-cpp", when="@0.7.0:")
- depends_on("libuuid")
+ depends_on("boost+graph@1.53.0,1.59.0:")
+ depends_on("py-pyyaml")
+ depends_on("libedit")
+ depends_on("libxml2@2.9.1:")
+ depends_on("yaml-cpp")
+ depends_on("uuid")
depends_on("pkgconfig")
depends_on("flux-core", type=('build', 'link', 'run'))
depends_on("flux-core+cuda", when='+cuda', type=('build', 'run', 'link'))
- depends_on("flux-core@0.8.0", when='@0.4.0', type=('build', 'run', 'link'))
- depends_on("flux-core@0.9.0", when='@0.5.0', type=('build', 'run', 'link'))
- depends_on("flux-core@0.10.0", when='@0.6.0', type=('build', 'run', 'link'))
- depends_on("flux-core@0.11.0", when='@0.7.0', type=('build', 'run', 'link'))
- depends_on("flux-core@0.11.2:0.11.99", when='@0.7.1', type=('build', 'run', 'link'))
depends_on("flux-core@0.16.0:0.16.99", when='@0.8.0', type=('build', 'run', 'link'))
+ depends_on("flux-core@0.22.0", when='@0.14.0', type=('build', 'run', 'link'))
+ depends_on("flux-core@0.23.0:0.25.99", when='@0.15.0', type=('build', 'run', 'link'))
+ depends_on("flux-core@0.26.0:", when='@0.16.0', type=('build', 'run', 'link'))
+ depends_on("flux-core@0.28.0:", when='@0.17.0', type=('build', 'run', 'link'))
depends_on("flux-core@master", when='@master', type=('build', 'run', 'link'))
# Need autotools when building on master:
diff --git a/var/spack/repos/builtin/packages/fluxbox/package.py b/var/spack/repos/builtin/packages/fluxbox/package.py
index 04dc39196b..e9ef127b69 100644
--- a/var/spack/repos/builtin/packages/fluxbox/package.py
+++ b/var/spack/repos/builtin/packages/fluxbox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fmt/package.py b/var/spack/repos/builtin/packages/fmt/package.py
index 7a8aac6ca5..74aa5eb301 100644
--- a/var/spack/repos/builtin/packages/fmt/package.py
+++ b/var/spack/repos/builtin/packages/fmt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,11 @@ class Fmt(CMakePackage):
It can be used as a safe alternative to printf or as a fast alternative
to C++ IOStreams."""
- homepage = "http://fmtlib.net/latest/index.html"
- url = "https://github.com/fmtlib/fmt/releases/download/7.1.0/fmt-7.1.0.zip"
+ homepage = "https://fmt.dev/"
+ url = "https://github.com/fmtlib/fmt/releases/download/7.1.3/fmt-7.1.3.zip"
+ version('8.0.1', sha256='a627a56eab9554fc1e5dd9a623d0768583b3a383ff70a4312ba68f94c9d415bf')
+ version('7.1.3', sha256='5d98c504d0205f912e22449ecdea776b78ce0bb096927334f80781e720084c9f')
version('7.1.2', sha256='4d6968ab7c01e95cc76df136755703defb985105a117b83057e4fd5d53680ea7')
version('7.1.0', sha256='308af4e36ee3ab527b51014a2a5d862682c84f5d16f7a597aea34c84853cbcb0')
version('6.1.2', sha256='63650f3c39a96371f5810c4e41d6f9b0bb10305064e6faf201cbafe297ea30e8')
@@ -33,7 +35,8 @@ class Fmt(CMakePackage):
values=('98', '11', '14', '17'),
multi=False,
description='Use the specified C++ standard when building')
- variant('pic', default=True, description='Enable generation of position-independent code')
+ variant('shared', default=False, description='Build shared library')
+ variant('pic', default=True, description='Build position-independent code')
depends_on('cmake@3.1.0:', type='build')
@@ -61,6 +64,9 @@ class Fmt(CMakePackage):
spec = self.spec
args = []
+ if self.spec.satisfies('+shared'):
+ args.append('-DBUILD_SHARED_LIBS=ON')
+
if '+pic' in spec:
args.extend([
'-DCMAKE_C_FLAGS={0}'.format(self.compiler.cc_pic_flag),
diff --git a/var/spack/repos/builtin/packages/foam-extend/package.py b/var/spack/repos/builtin/packages/foam-extend/package.py
index 912426a09f..4c01cb2589 100644
--- a/var/spack/repos/builtin/packages/foam-extend/package.py
+++ b/var/spack/repos/builtin/packages/foam-extend/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -30,16 +30,19 @@
#
##############################################################################
import glob
-import re
import os
+import re
+
+import llnl.util.tty as tty
from spack import *
+from spack.pkg.builtin.openfoam import (
+ OpenfoamArch,
+ add_extra_files,
+ rewrite_environ_files,
+ write_environ,
+)
from spack.util.environment import EnvironmentModifications
-from spack.pkg.builtin.openfoam import OpenfoamArch
-from spack.pkg.builtin.openfoam import add_extra_files
-from spack.pkg.builtin.openfoam import write_environ
-from spack.pkg.builtin.openfoam import rewrite_environ_files
-import llnl.util.tty as tty
class FoamExtend(Package):
diff --git a/var/spack/repos/builtin/packages/folly/package.py b/var/spack/repos/builtin/packages/folly/package.py
index c61b82024f..c76a5f3901 100644
--- a/var/spack/repos/builtin/packages/folly/package.py
+++ b/var/spack/repos/builtin/packages/folly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@
from spack import *
-class Folly(AutotoolsPackage):
+class Folly(CMakePackage):
"""Folly (acronymed loosely after Facebook Open Source Library) is a
library of C++11 components designed with practicality and efficiency
in mind.
@@ -18,29 +18,31 @@ class Folly(AutotoolsPackage):
"""
homepage = "https://github.com/facebook/folly"
- url = "https://github.com/facebook/folly/archive/v2017.06.05.00.tar.gz"
-
- version('2017.06.05.00', sha256='d22ceda4dfe33583828be1193fa3929d70c51998f0797236e293c44ef828c6d0')
- version('2016.11.14.00', sha256='cde5b3e1a38d181f7c4e52d590de1c1aca58da7b27b3020d08e9aa45b4c3ed74')
- version('2016.11.07.00', sha256='4400d7f0fead90d88ce4caee9f0e9aeb8008c9954ea9034e19ae7226175206ba')
- version('2016.10.31.00', sha256='7bef9ee956248f68f1c4e96be67561842ee6cc030a58e132b93b9be57b6b29ea')
- version('2016.10.24.00', sha256='d54b609d3750a6a1cfbda7c62e1457af60cf5efc48d7a8e6552d67909e064757')
- version('2016.10.17.00', sha256='0f83685016d020111ba54ddc48c0cf33e1e0b9b35cee5ae82d5f2cbc5f6b0e82')
-
- depends_on('m4', type='build')
- depends_on('autoconf', type='build')
- depends_on('automake', type='build')
- depends_on('libtool', type='build')
+ url = "https://github.com/facebook/folly/releases/download/v2021.05.24.00/folly-v2021.05.24.00.tar.gz"
+ version('2021.05.24.00', sha256='9d308adefe4670637f5c7d96309b3b394ac3fa129bc954f5dfbdd8b741c02aad')
+
+ # CMakePackage Dependency
depends_on('pkgconfig', type='build')
- # TODO: folly requires gcc 4.9+ and a version of boost compiled with
- # TODO: C++14 support (but there's no neat way to check that these
- # TODO: constraints are met right now)
- depends_on('boost')
+ # folly requires gcc 4.9+ and a version of boost compiled with >= C++14
+ # TODO: Specify the boost components
+ variant('cxxstd', default='14', values=('14', '17'), multi=False, description='Use the specified C++ standard when building.')
+ depends_on('boost+context+container cxxstd=14', when='cxxstd=14')
+ depends_on('boost+context+container cxxstd=17', when='cxxstd=17')
+ # required dependencies
depends_on('gflags')
depends_on('glog')
depends_on('double-conversion')
depends_on('libevent')
+ depends_on('fmt')
+
+ # optional dependencies
+ variant('libdwarf', default=False, description="Optional Dependency")
+ variant('elfutils', default=False, description="Optional Dependency")
+ variant('libunwind', default=False, description="Optional Dependency")
+ depends_on('libdwarf', when='+libdwarf')
+ depends_on('elfutils', when='+elfutils')
+ depends_on('libunwind', when='+libunwind')
configure_directory = 'folly'
diff --git a/var/spack/repos/builtin/packages/font-util/package.py b/var/spack/repos/builtin/packages/font-util/package.py
index 647b0b417b..f9614e1ede 100644
--- a/var/spack/repos/builtin/packages/font-util/package.py
+++ b/var/spack/repos/builtin/packages/font-util/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class FontUtil(AutotoolsPackage, XorgPackage):
"""X.Org font package creation/installation utilities and fonts."""
- homepage = "http://cgit.freedesktop.org/xorg/font/util"
+ homepage = "https://cgit.freedesktop.org/xorg/font/util"
xorg_mirror_path = "font/font-util-1.3.1.tar.gz"
version('1.3.2', sha256='f115a3735604de1e852a4bf669be0269d8ce8f21f8e0e74ec5934b31dadc1e76')
@@ -26,6 +26,7 @@ class FontUtil(AutotoolsPackage, XorgPackage):
depends_on('mkfontdir', type='build')
font_baseurl = 'https://www.x.org/archive/individual/font/'
+ default_fonts = []
fonts = []
# name, version, sha256
fonts_resource = [
@@ -70,12 +71,19 @@ class FontUtil(AutotoolsPackage, XorgPackage):
f = f_r[0]
resource(name=f, url=font_baseurl + f + '-' + f_r[1] + '.tar.gz',
sha256=f_r[2], destination=f, when='fonts=' + f)
+
+ conflicts('fonts=font-bh-ttf', when='platform=cray')
+ conflicts('fonts=font-bh-ttf', when='arch=linux-rhel7-broadwell')
+
+ if f != 'font-bh-ttf':
+ default_fonts.append(f)
+
fonts.append(f)
variant('fonts',
description='Installs fonts',
values=fonts,
- default=','.join(fonts),
+ default=','.join(default_fonts),
multi=True)
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/fontcacheproto/package.py b/var/spack/repos/builtin/packages/fontcacheproto/package.py
index 8397bba192..7b3043ab0c 100644
--- a/var/spack/repos/builtin/packages/fontcacheproto/package.py
+++ b/var/spack/repos/builtin/packages/fontcacheproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Fontcacheproto(AutotoolsPackage, XorgPackage):
"""X.org FontcacheProto protocol headers."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/fontcacheproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/fontcacheproto"
xorg_mirror_path = "proto/fontcacheproto-0.1.3.tar.gz"
version('0.1.3', sha256='759b4863b55a25bfc8f977d8ed969da0b99b3c823f33c674d6da5825f9df9a79')
diff --git a/var/spack/repos/builtin/packages/fontconfig/package.py b/var/spack/repos/builtin/packages/fontconfig/package.py
index 41324399d6..f88c4a6aef 100644
--- a/var/spack/repos/builtin/packages/fontconfig/package.py
+++ b/var/spack/repos/builtin/packages/fontconfig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,10 @@ from spack import *
class Fontconfig(AutotoolsPackage):
"""Fontconfig is a library for configuring/customizing font access"""
- homepage = "http://www.freedesktop.org/wiki/Software/fontconfig/"
- url = "http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.12.3.tar.gz"
+ homepage = "https://www.freedesktop.org/wiki/Software/fontconfig/"
+ url = "https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.12.3.tar.gz"
+ version('2.13.93', sha256='0f302a18ee52dde0793fe38b266bf269dfe6e0c0ae140e30d72c6cca5dc08db5')
version('2.13.1', sha256='9f0d852b39d75fc655f9f53850eb32555394f36104a044bb2b2fc9e66dbbfa7f')
version('2.12.3', sha256='ffc3cbf6dd9fcd516ee42f48306a715e66698b238933d6fa7cef02ea8b3b818e')
version('2.12.1', sha256='a9f42d03949f948a3a4f762287dbc16e53a927c91a07ee64207ebd90a9e5e292')
@@ -21,7 +22,13 @@ class Fontconfig(AutotoolsPackage):
depends_on('libxml2')
depends_on('pkgconfig', type='build')
depends_on('font-util')
- depends_on('libuuid', when='@2.13.1:')
+ depends_on('uuid', when='@2.13.1:')
+
+ # Resolve known issue with tarballs 2.12.3 - 2.13.0 plus
+ # https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/10
+ @run_before('configure')
+ def _rm_offending_header(self):
+ force_remove(join_path('src', 'fcobjshash.h'))
def configure_args(self):
font_path = join_path(self.spec['font-util'].prefix, 'share', 'fonts')
diff --git a/var/spack/repos/builtin/packages/fontsproto/package.py b/var/spack/repos/builtin/packages/fontsproto/package.py
index b91524d548..ff471243bd 100644
--- a/var/spack/repos/builtin/packages/fontsproto/package.py
+++ b/var/spack/repos/builtin/packages/fontsproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Fontsproto(AutotoolsPackage, XorgPackage):
"""X Fonts Extension."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/fontsproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/fontsproto"
xorg_mirror_path = "proto/fontsproto-2.1.3.tar.gz"
version('2.1.3', sha256='72c44e63044b2b66f6fa112921621ecc20c71193982de4f198d9a29cda385c5e')
diff --git a/var/spack/repos/builtin/packages/fonttosfnt/package.py b/var/spack/repos/builtin/packages/fonttosfnt/package.py
index 5294686a4b..c9b76544b1 100644
--- a/var/spack/repos/builtin/packages/fonttosfnt/package.py
+++ b/var/spack/repos/builtin/packages/fonttosfnt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Fonttosfnt(AutotoolsPackage, XorgPackage):
"""Wrap a bitmap font in a sfnt (TrueType) wrapper."""
- homepage = "http://cgit.freedesktop.org/xorg/app/fonttosfnt"
+ homepage = "https://cgit.freedesktop.org/xorg/app/fonttosfnt"
xorg_mirror_path = "app/fonttosfnt-1.0.4.tar.gz"
version('1.0.4', sha256='3873636be5b3b8e4160070e8f9a7a9221b5bd5efbf740d7abaa9092e10732673')
@@ -17,6 +17,6 @@ class Fonttosfnt(AutotoolsPackage, XorgPackage):
depends_on('freetype')
depends_on('libfontenc')
- depends_on('xproto', type='build')
+ depends_on('xproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/form/package.py b/var/spack/repos/builtin/packages/form/package.py
index b6e866fe70..d94e2c9058 100644
--- a/var/spack/repos/builtin/packages/form/package.py
+++ b/var/spack/repos/builtin/packages/form/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,17 +11,31 @@ class Form(AutotoolsPackage):
homepage = "https://www.nikhef.nl/~form/"
url = "https://github.com/vermaseren/form/archive/v4.2.1.tar.gz"
+ maintainers = ['iarspider']
version('4.2.1', sha256='6f32c7470d00e8ab6934dc352f5a78e29290146a00e5775f8cd5fef7810bbbb8')
+ version('4.1-20131025', sha256='caece2c6e605ccf32eb3612c4ed5c9257a7a62824ad219c5e46b6d00066f1ba6')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
- depends_on('gmp', type='link')
- depends_on('zlib', type='link')
+ depends_on('gmp', type='link', when='+zlib')
+ depends_on('zlib', type='link', when='+gmp')
+ depends_on('mpi', type='link', when='+parform')
+
+ variant('gmp', default=False, description='Use GMP for long integer arithmetic')
+ variant('zlib', default=False, description='Use zlib for compression')
+ variant('scalar', default=True, description='Build scalar version (form)')
+ variant('threaded', default=True, description='Build threaded version (tform)')
+ variant('parform', default=False, description='Build parallel version using MPI (parform)')
def configure_args(self):
- args = ['--with-gmp=' + self.spec['gmp'].prefix,
- '--with-zlib=' + self.spec['zlib'].prefix]
+ args = []
+ args += self.with_or_without('gmp', 'prefix')
+ args += self.with_or_without('zlib', 'prefix')
+ args += self.enable_or_disable('scalar')
+ args += self.enable_or_disable('threaded')
+ args += self.enable_or_disable('parform')
+
return args
diff --git a/var/spack/repos/builtin/packages/formetis/package.py b/var/spack/repos/builtin/packages/formetis/package.py
new file mode 100644
index 0000000000..ee2f8593a8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/formetis/package.py
@@ -0,0 +1,81 @@
+# Copyright 2013-2021 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 Formetis(CMakePackage):
+ """Automated Fortran bindings to METIS and ParMETIS."""
+
+ homepage = "https://github.com/swig-fortran/formetis"
+ url = "https://github.com/swig-fortran/formetis/archive/refs/tags/v0.0.1.tar.gz"
+
+ maintainers = ['sethrj']
+
+ version('0.0.2', sha256='0067c03ca822f4a3955751acb470f21eed489256e2ec5ff24741eb2b638592f1')
+
+ variant('mpi', default=False, description='Enable ParMETIS support')
+ variant('shared', default=True, description='Build shared libraries')
+ variant('swig', default=False,
+ description='Regenerate source files using SWIG')
+
+ depends_on('metis@5:')
+ depends_on('parmetis', when='+mpi')
+ depends_on('mpi', when='+mpi')
+ depends_on('swig@4.0.2-fortran', when='+swig')
+
+ # Using non-standard int sizes requires regenerating the C/Fortran
+ # interface files with SWIG
+ conflicts('~swig', when='^metis+int64')
+ conflicts('~swig', when='^metis+real64')
+
+ def cmake_args(self):
+ from_variant = self.define_from_variant
+ args = [
+ from_variant('FORMETIS_USE_MPI', 'mpi'),
+ from_variant('BUILD_SHARED_LIBS', 'shared'),
+ from_variant('FORMETIS_USE_SWIG', 'swig'),
+ self.define('FORMETIS_BUILD_EXAMPLES', False),
+ ]
+ return args
+
+ examples_src_dir = 'example'
+
+ @run_after('install')
+ def setup_smoke_tests(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.examples_src_dir])
+
+ @property
+ def cached_tests_work_dir(self):
+ """The working directory for cached test sources."""
+ return join_path(self.test_suite.current_test_cache_dir,
+ self.examples_src_dir)
+
+ def test(self):
+ """Perform stand-alone/smoke tests on the installed package."""
+ cmake_args = [
+ self.define('CMAKE_PREFIX_PATH', self.prefix),
+ self.define('CMAKE_Fortran_COMPILER', self.compiler.fc),
+ self.define('METIS_ROOT', self.spec['metis'].prefix),
+ ]
+ if '+mpi' in self.spec:
+ cmake_args.append(
+ self.define('ParMETIS_ROOT', self.spec['parmetis'].prefix))
+ cmake_args.append(self.cached_tests_work_dir)
+
+ self.run_test("cmake", cmake_args,
+ purpose="test: calling cmake",
+ work_dir=self.cached_tests_work_dir)
+
+ self.run_test("make", [],
+ purpose="test: building the tests",
+ work_dir=self.cached_tests_work_dir)
+
+ self.run_test('metis', [], [],
+ purpose="test: checking the installation",
+ installed=False,
+ work_dir=self.cached_tests_work_dir)
diff --git a/var/spack/repos/builtin/packages/fortran/package.py b/var/spack/repos/builtin/packages/fortran/package.py
index 6383ff856b..c9281e15c2 100644
--- a/var/spack/repos/builtin/packages/fortran/package.py
+++ b/var/spack/repos/builtin/packages/fortran/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fortrilinos/package.py b/var/spack/repos/builtin/packages/fortrilinos/package.py
index 2039311145..3e13fe156e 100644
--- a/var/spack/repos/builtin/packages/fortrilinos/package.py
+++ b/var/spack/repos/builtin/packages/fortrilinos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,24 +24,38 @@ class Fortrilinos(CMakePackage):
"""
homepage = "https://trilinos.github.io/ForTrilinos/"
- url = "https://github.com/trilinos/ForTrilinos/archive/v2.0.0-dev1.tar.gz"
+ url = "https://github.com/trilinos/ForTrilinos/archive/v2.0.0.tar.gz"
git = "https://github.com/trilinos/ForTrilinos.git"
maintainers = ['sethrj', 'aprokop']
- version('2.0.0-dev2', sha256='2a55c668b3fe986583658d272eab2dc076b291a5f2eb582a02602db86a32030b')
- version('2.0.0-dev1', sha256='ab664ce2d7fe75c524d7ff6b1efffa3e459ab5739a916e6ea810ae40f39ca4f4')
+ test_requires_compiler = True
+
+ version('2.0.0', sha256='9af3b3eea9934e44d74654a5fa822de08bd0efa43e06e4a4e35a777781f542d6')
+ # Note: spack version comparison implies Version('2.0.0') <
+ # Version('2.0.0-dev1'), so this is the best workaround I could find.
+ version('2.0.dev3',
+ sha256='c20a34b374a56b050bc1db0be1d3db63fca3e59c5803af0cb851b044ac84e6b3',
+ url="https://github.com/trilinos/ForTrilinos/archive/v2.0.0-dev3.tar.gz")
+ version('2.0.dev2',
+ sha256='2a55c668b3fe986583658d272eab2dc076b291a5f2eb582a02602db86a32030b',
+ url="https://github.com/trilinos/ForTrilinos/archive/v2.0.0-dev2.tar.gz")
+ version('2.0.dev1',
+ sha256='ab664ce2d7fe75c524d7ff6b1efffa3e459ab5739a916e6ea810ae40f39ca4f4',
+ url="https://github.com/trilinos/ForTrilinos/archive/v2.0.0-dev1.tar.gz")
version('master', branch='master')
variant('hl', default=True, description='Build high-level Trilinos wrappers')
variant('shared', default=True, description='Build shared libraries')
# Trilinos version dependencies
- depends_on('trilinos@12.18.1', when='@2.0.0-dev2')
- depends_on('trilinos@12.17.1', when='@2.0.0-dev1')
+ depends_on('trilinos@13.0.0:', when='@2.0.0:')
+ depends_on('trilinos@12.18.1', when='@2.0.dev3')
+ depends_on('trilinos@12.18.1', when='@2.0.dev2')
+ depends_on('trilinos@12.17.1', when='@2.0.dev1')
# Baseline trilinos dependencies
- depends_on('trilinos+teuchos gotype=long_long')
+ depends_on('trilinos gotype=long_long')
# Full trilinos dependencies
depends_on('trilinos+amesos2+anasazi+belos+kokkos+ifpack2+muelu+nox+tpetra'
'+stratimikos', when='+hl')
@@ -60,3 +74,38 @@ class Fortrilinos(CMakePackage):
self.define('ForTrilinos_EXAMPLES', self.run_tests),
self.define('ForTrilinos_TESTING', self.run_tests),
]
+
+ examples_src_dir = 'example/test-installation'
+
+ @property
+ def cached_tests_work_dir(self):
+ """The working directory for cached test sources."""
+ return join_path(self.test_suite.current_test_cache_dir,
+ self.examples_src_dir)
+
+ @run_after('install')
+ def setup_smoke_tests(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.examples_src_dir])
+
+ def test(self):
+ """Perform stand-alone/smoke tests using installed package."""
+ cmake_args = [
+ self.define('CMAKE_PREFIX_PATH', self.prefix),
+ self.define('CMAKE_CXX_COMPILER', self.compiler.cxx),
+ self.define('CMAKE_Fortran_COMPILER', self.compiler.fc),
+ self.cached_tests_work_dir
+ ]
+ self.run_test("cmake", cmake_args,
+ purpose="test: calling cmake",
+ work_dir=self.cached_tests_work_dir)
+
+ self.run_test("make", [],
+ purpose="test: calling make",
+ work_dir=self.cached_tests_work_dir)
+
+ self.run_test('ctest', ['-V'],
+ ['100% tests passed'], installed=False,
+ purpose='test: testing the installation',
+ work_dir=self.cached_tests_work_dir)
diff --git a/var/spack/repos/builtin/packages/foundationdb/package.py b/var/spack/repos/builtin/packages/foundationdb/package.py
index 507f83ba4c..3d4d4cd86a 100644
--- a/var/spack/repos/builtin/packages/foundationdb/package.py
+++ b/var/spack/repos/builtin/packages/foundationdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fox/package.py b/var/spack/repos/builtin/packages/fox/package.py
index 28e6e9b7b3..6eebce0271 100644
--- a/var/spack/repos/builtin/packages/fox/package.py
+++ b/var/spack/repos/builtin/packages/fox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -37,6 +37,7 @@ class Fox(AutotoolsPackage):
depends_on('libxi')
depends_on('libxrandr')
depends_on('gl', when='+opengl')
+ depends_on('glu', when='+opengl', type='link')
def configure_args(self):
# Make the png link flags explicit or it will try to pick up libpng15
diff --git a/var/spack/repos/builtin/packages/fp16/package.py b/var/spack/repos/builtin/packages/fp16/package.py
index 7ce6c7742d..da92925e39 100644
--- a/var/spack/repos/builtin/packages/fp16/package.py
+++ b/var/spack/repos/builtin/packages/fp16/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,14 +6,52 @@
from spack import *
-class Fp16(Package):
+class Fp16(CMakePackage):
"""FP16 is a header-only library for
conversion to/from half-precision floating point formats"""
homepage = "https://github.com/Maratyszcza/FP16/"
git = "https://github.com/Maratyszcza/FP16.git"
- version('master')
+ version('master', branch='master')
+ version('2020-05-14', commit='4dfe081cf6bcd15db339cf2680b9281b8451eeb3') # py-torch@1.5:1.9
+ version('2018-11-28', commit='febbb1c163726b5db24bed55cc9dc42529068997') # py-torch@1.1:1.4
+ version('2018-10-10', commit='34d4bf01bbf7376f2baa71b8fa148b18524d45cf') # py-torch@1.0
+ version('2018-02-25', commit='43d6d17df48ebf622587e7ed9472ea76573799b9') # py-torch@:0.4
- def install(self, spec, prefix):
- install_tree('include', prefix.include)
+ depends_on('cmake@2.8.12:', type='build')
+ depends_on('ninja', type='build')
+
+ generator = 'Ninja'
+
+ resource(
+ name='psimd',
+ git='https://github.com/Maratyszcza/psimd.git',
+ branch='master',
+ destination='deps',
+ placement='psimd',
+ )
+ resource(
+ name='googletest',
+ url='https://github.com/google/googletest/archive/release-1.8.0.zip',
+ sha256='f3ed3b58511efd272eb074a3a6d6fb79d7c2e6a0e374323d1e6bcbcc1ef141bf',
+ destination='deps',
+ placement='googletest',
+ )
+ resource(
+ name='googlebenchmark',
+ url='https://github.com/google/benchmark/archive/v1.2.0.zip',
+ sha256='cc463b28cb3701a35c0855fbcefb75b29068443f1952b64dd5f4f669272e95ea',
+ destination='deps',
+ placement='googlebenchmark',
+ )
+
+ def cmake_args(self):
+ return [
+ self.define('PSIMD_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'psimd')),
+ self.define('GOOGLETEST_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googletest')),
+ self.define('GOOGLEBENCHMARK_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googlebenchmark')),
+ ]
diff --git a/var/spack/repos/builtin/packages/fpc/package.py b/var/spack/repos/builtin/packages/fpc/package.py
index 5e1be34992..872fe5ab63 100644
--- a/var/spack/repos/builtin/packages/fpc/package.py
+++ b/var/spack/repos/builtin/packages/fpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fpchecker/package.py b/var/spack/repos/builtin/packages/fpchecker/package.py
new file mode 100644
index 0000000000..f5ecfb7e89
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fpchecker/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 Fpchecker(CMakePackage):
+ """FPChecker (Floating-Point Checker) is a dynamic analysis tool
+ to detect floating-point errors in HPC applications.
+ """
+
+ homepage = "https://fpchecker.org/"
+ url = "https://github.com/LLNL/FPChecker/archive/refs/tags/v0.3.4.tar.gz"
+
+ maintainers = ['ilagunap']
+
+ version('0.3.4', sha256='ecea778dcddc8347da86b02069e12d574a3ba27a4f7c6224bf492fbff6cd162a')
+
+ depends_on('llvm@12.0.1')
+ depends_on('cmake@3.4:', type='build')
+ depends_on('python@3:', type='run')
+
+ def cmake_args(self):
+ args = ['-DCMAKE_C_COMPILER=clang', '-DCMAKE_CXX_COMPILER=clang++']
+ return args
diff --git a/var/spack/repos/builtin/packages/fping/package.py b/var/spack/repos/builtin/packages/fping/package.py
index 59c2127dad..cf097b13a2 100644
--- a/var/spack/repos/builtin/packages/fping/package.py
+++ b/var/spack/repos/builtin/packages/fping/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fplll/package.py b/var/spack/repos/builtin/packages/fplll/package.py
new file mode 100644
index 0000000000..ed9a3dcec0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fplll/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 Fplll(AutotoolsPackage):
+ """fplll contains implementations of several lattice algorithms.
+ The implementation relies on floating-point orthogonalization,
+ and LLL is central to the code, hence the name."""
+
+ homepage = "https://github.com/fplll/fplll"
+ url = "https://github.com/fplll/fplll/releases/download/5.4.0/fplll-5.4.0.tar.gz"
+
+ version('5.4.0', sha256='fe192a65a56439b098e26e3b7ee224dda7c2c73a58f36ef2cc6f9185ae8c482b')
+ version('5.3.3', sha256='5e7c46c30623795feeac19cf607583b7c82b0490ceb91498f0f712789be20ccd')
+ version('5.3.2', sha256='4d935d712d11902c60a2a5cb50b696391f4ca4a2de59b0daeca74c29024c21fe')
+ version('5.3.1', sha256='bf7e7e667173b5655cb989ec6a55c07af057d9011572f85eb53fbf93f4e2d239')
+ version('5.3.0', sha256='67a579842f5dabf9b3968b0c12af1ee808c5bfb7bc611fe4c2bba9ca00af1067')
+ version('5.2.1', sha256='e38e3f8f14d5dbf46aab66d6c12f5973d4b12b72832161ed1491e8e925de4816')
+ version('5.2.0', sha256='75e17fcaa4fc5fdddbe6eb42aca5f38c4c169a4b52756e74fbe2d1769737ac9c')
+ version('5.1.0', sha256='58175c54cc92752576a64361c73e4ea7797fc18fb703b3f22c7570a09075486f')
+ version('5.0.3', sha256='d2b11b7dcb26c30ac1aab9ff75aca9b3dd6e0b0b40c382af16017a717dfe05c2')
+
+ depends_on('gmp')
+ depends_on('mpfr')
+
+ def configure_args(self):
+ args = ['--with-gmp=' + self.spec['gmp'].prefix,
+ '--with-mpfr=' + self.spec['mpfr'].prefix]
+ return args
diff --git a/var/spack/repos/builtin/packages/fpm/package.py b/var/spack/repos/builtin/packages/fpm/package.py
new file mode 100644
index 0000000000..9401bf636c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fpm/package.py
@@ -0,0 +1,56 @@
+# Copyright 2013-2021 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 Fpm(Package):
+ """
+ Fortran Package Manager (fpm) is a package manager and build system for Fortran.
+ Its key goal is to improve the user experience of Fortran programmers.
+ It does so by making it easier to build your Fortran program or library, run the
+ executables, tests, and examples, and distribute it as a dependency to other
+ Fortran projects.
+ """
+
+ homepage = "https://github.com/fortran-lang/fpm"
+ url = "https://github.com/fortran-lang/fpm/releases/download/v0.4.0/fpm-0.4.0.zip"
+
+ maintainers = ["awvwgk"]
+ phases = ["install"]
+
+ version("0.4.0", "cd9b80b7f40d9cf357ca8d5d4fe289fd32dfccb729bad7d2a68f245e4cdd0045")
+ version("0.3.0", "3368d1b17e2d1368559174c796ce0e184cb6bf79c939938c6d166fbd15959fa3")
+
+ variant("openmp", default=True, description="Use OpenMP parallelisation")
+
+ depends_on("curl", type="build")
+
+ def setup_build_environment(self, env):
+ if "@0.4.0" in self.spec:
+ env.set("FPM_C_COMPILER", self.compiler.cc)
+
+ fflags = "-O3"
+ if "+openmp" in self.spec:
+ fflags += " " + self.compiler.openmp_flag
+ env.set("FFLAGS", fflags)
+
+ def install(self, spec, prefix):
+ """
+ A three step bootstrapping procedure to get the fpm binary:
+
+ 1. acquire single file source version of fpm (using curl)
+ 2. build bootstrap version from single file source version (using $FC)
+ 3. build full fpm version using bootstrap version
+
+ This functionality is provided by the ``install.sh`` script.
+ """
+
+ script = Executable("./install.sh")
+ script(*self.install_args())
+
+ def install_args(self):
+ args = ["--prefix={0}".format(self.prefix)]
+ return args
diff --git a/var/spack/repos/builtin/packages/fpocket/package.py b/var/spack/repos/builtin/packages/fpocket/package.py
index 029e150db9..f8101742bf 100644
--- a/var/spack/repos/builtin/packages/fpocket/package.py
+++ b/var/spack/repos/builtin/packages/fpocket/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fqtrim/package.py b/var/spack/repos/builtin/packages/fqtrim/package.py
index b9dfd16360..bc5edf142d 100644
--- a/var/spack/repos/builtin/packages/fqtrim/package.py
+++ b/var/spack/repos/builtin/packages/fqtrim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Fqtrim(MakefilePackage):
machines."""
homepage = "https://ccb.jhu.edu/software/fqtrim/"
- url = "http://ccb.jhu.edu/software/fqtrim/dl/fqtrim-0.9.7.tar.gz"
+ url = "https://ccb.jhu.edu/software/fqtrim/dl/fqtrim-0.9.7.tar.gz"
version('0.9.7', sha256='4951538f69dde14a23fc4841ff020434d26eb9622c4e06b43c068c702aa3d0d6')
diff --git a/var/spack/repos/builtin/packages/fr-hit/package.py b/var/spack/repos/builtin/packages/fr-hit/package.py
index e3547a3111..1a76075776 100644
--- a/var/spack/repos/builtin/packages/fr-hit/package.py
+++ b/var/spack/repos/builtin/packages/fr-hit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fraggenescan/package.py b/var/spack/repos/builtin/packages/fraggenescan/package.py
index 8c71b9bfee..70bcd32e72 100644
--- a/var/spack/repos/builtin/packages/fraggenescan/package.py
+++ b/var/spack/repos/builtin/packages/fraggenescan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/freebayes/package.py b/var/spack/repos/builtin/packages/freebayes/package.py
index 338ca3c26c..471554e32f 100644
--- a/var/spack/repos/builtin/packages/freebayes/package.py
+++ b/var/spack/repos/builtin/packages/freebayes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,27 +6,53 @@
from spack import *
-class Freebayes(MakefilePackage):
+class Freebayes(MesonPackage):
"""Bayesian haplotype-based genetic polymorphism discovery and
genotyping."""
homepage = "https://github.com/ekg/freebayes"
+ url = "https://github.com/freebayes/freebayes/releases/download/v1.3.5/freebayes-1.3.5-src.tar.gz"
git = "https://github.com/ekg/freebayes.git"
+ version('1.3.5', sha256='7e2635690e916ed85cec36b3263e6e5357413a4f2bf3035362d9749335e8a696')
version('1.1.0', commit='39e5e4bcb801556141f2da36aba1df5c5c60701f',
- submodules=True)
+ submodules=True, deprecated=True)
depends_on('cmake', type='build')
depends_on('zlib')
+ # Deps for @1.3.5 and beyond
+ depends_on('ninja', type='build', when='@1.3.5:')
+ depends_on('htslib', when='@1.3.5:')
+ depends_on('zlib', when='@1.3.5:')
+ depends_on('xz', when='@1.3.5:')
+ depends_on('parallel', when='@1.3.5:')
+ depends_on('vcftools', when='@1.3.5:')
+ depends_on('bc', when='@1.3.5:')
+ depends_on('samtools', when='@1.3.5:')
+
parallel = False
+ @when('@:1.1.0')
def edit(self, spec, prefix):
makefile = FileFilter('Makefile')
b = prefix.bin
makefile.filter('cp bin/freebayes bin/bamleftalign /usr/local/bin/',
'cp bin/freebayes bin/bamleftalign {0}'.format(b))
+ @when('@:1.1.0')
@run_before('install')
def make_prefix_dot_bin(self):
mkdir(prefix.bin)
+
+ @when('@:1.1.0')
+ def meson(self, spec, prefix):
+ pass
+
+ @when('@:1.1.0')
+ def build(self, spec, prefix):
+ make()
+
+ @when('@:1.1.0')
+ def install(self, spec, prefix):
+ make('install')
diff --git a/var/spack/repos/builtin/packages/freefem/acmpi.patch b/var/spack/repos/builtin/packages/freefem/acmpi.patch
new file mode 100644
index 0000000000..f6dfdc1d2b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/freefem/acmpi.patch
@@ -0,0 +1,11 @@
+--- a/etc/config/m4/acmpi.m4 2021-04-19 21:45:30.000000000 +0200
++++ b/etc/config/m4/acmpi.m4 2021-07-06 09:53:06.100076241 +0200
+@@ -296,7 +296,7 @@
+ test -n "$MPICC" && ff_mpicshow=`$MPICC -show` 2>/dev/null
+ test -n "$MPIFC" && ff_mpifcshow=`$MPIFC -show` 2>/dev/null
+ if test "$with_mpilibs" = no -o -z "$with_mpilibs" ; then
+- [ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^[-/][^WLlOgpf]|^-Wp,'|tr '\n' ' '`]
++ [ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n' | sed '1 d'| grep -E '^[-/][^WLlOgpf]|^-Wp,'|tr '\n' ' '`]
+ ff_MPI_LIB_DIRS=""
+ [ff_MPI_LIB=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`]
+ [ff_MPI_LIBC=`echo $ff_mpicshow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`]
diff --git a/var/spack/repos/builtin/packages/freefem/acmpi4.8.patch b/var/spack/repos/builtin/packages/freefem/acmpi4.8.patch
new file mode 100644
index 0000000000..59cbec98c6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/freefem/acmpi4.8.patch
@@ -0,0 +1,11 @@
+--- a/etc/config/m4/acmpi.m4 2021-04-19 21:45:30.000000000 +0200
++++ b/etc/config/m4/acmpi.m4 2021-07-06 09:53:06.100076241 +0200
+@@ -296,7 +296,7 @@
+ test -n "$MPICC" && ff_mpicshow=`$MPICC -show` 2>/dev/null
+ test -n "$MPIFC" && ff_mpifcshow=`$MPIFC -show` 2>/dev/null
+ if test "$with_mpilibs" = no -o -z "$with_mpilibs" ; then
+- [ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^[-/][^WLlOgp]|^-Wp,'|tr '\n' ' '`]
++ [ff_MPI_INCLUDE=`echo $ff_mpishow|tr ' ' '\n' | sed '1 d'| grep -E '^[-/][^WLlOgpf]|^-Wp,'|tr '\n' ' '`]
+ ff_MPI_LIB_DIRS=""
+ [ff_MPI_LIB=`echo $ff_mpishow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`]
+ [ff_MPI_LIBC=`echo $ff_mpicshow|tr ' ' '\n'| grep -E '^-[Llp]|^-Wl,'|tr '\n' ' '`]
diff --git a/var/spack/repos/builtin/packages/freefem/package.py b/var/spack/repos/builtin/packages/freefem/package.py
new file mode 100644
index 0000000000..69d2e017fd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/freefem/package.py
@@ -0,0 +1,64 @@
+# Copyright 2013-2021 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 Freefem(AutotoolsPackage):
+ """FreeFEM is a popular 2D and 3D partial differential equations (PDE) solver.
+ It allows you to easily implement your own physics modules using the provided
+ FreeFEM language. FreeFEM offers a large list of finite elements, like the
+ Lagrange, Taylor-Hood, etc., usable in the continuous and discontinuous
+ Galerkin method framework.
+ """
+
+ homepage = "https://freefem.org"
+ url = "https://github.com/FreeFem/FreeFem-sources/archive/refs/tags/v4.9.tar.gz"
+
+ maintainers = ['corentin-dev']
+
+ version('4.9', sha256='299ba2b73dfff578b7890f693c1e835680bf55eba87263cabd60d81909e1e0e4')
+ version('4.8', sha256='499b1ca24d45088226a238412ea1492d9cc3eb6088866904145511469780180d')
+ version('4.7-1', sha256='60d84424d20b5f6abaee638dc423480fc76f9c389bba1a2f23fd984e39a3fb96')
+ version('4.7', sha256='c1797b642e9c3d543eaad4949d26ce1e986f531ee9be14fff606ea525ada9206')
+ version('4.6', sha256='6c09af8e189fc02214b0e664b679b49832c134e29cf1ede3cab29cf754f6078f')
+ version('4.5', sha256='5b2d4125c312da8fbedd49a72e742f18f35e0ae100c82fb493067dfad5d51432')
+
+ variant('mpi', default=False,
+ description='Activate MPI support')
+ variant('petsc', default=False,
+ description='Compile with PETSc/SLEPc')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('slepc', when='+petsc')
+
+ # Patches to help configure find correctly MPI flags
+ # when using full path for compilers.
+ patch('acmpi.patch', when='@4.9', sha256='8157d89fc19227a555b54a4f2eb1c44da8aef3192077a6df2e88093b850f4c50')
+ patch('acmpi4.8.patch', when='@:4.8', sha256='be84f7b1b8182ff0151c258056a09bda70d72a611b0a4da1fa1954df2e0fe84e')
+
+ def autoreconf(self, spec, prefix):
+ autoreconf = which('autoreconf')
+ autoreconf('-i')
+
+ def configure_args(self):
+ spec = self.spec
+ options = ['--disable-mkl',
+ 'CFLAGS=%s' % ' '.join(spec.compiler_flags['cflags']),
+ 'FFLAGS=%s' % ' '.join(spec.compiler_flags['fflags']),
+ 'CXXFLAGS=%s' % ' '.join(spec.compiler_flags['cxxflags'])]
+
+ if '+petsc' in spec:
+ options.append('--with-petsc=%s'
+ % spec['petsc'].prefix.lib.petsc.conf.petscvariables)
+ options.append('--with-slepc-ldflags=%s'
+ % spec['slepc'].libs.ld_flags)
+ options.append('--with-slepc-include=%s'
+ % spec['slepc'].headers.include_flags)
+ else:
+ options.append('--without-petsc')
+ options.append('--without-slepc')
+
+ return options
diff --git a/var/spack/repos/builtin/packages/freeglut/common-gcc10.patch b/var/spack/repos/builtin/packages/freeglut/common-gcc10.patch
deleted file mode 100644
index bae4632601..0000000000
--- a/var/spack/repos/builtin/packages/freeglut/common-gcc10.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/CMakeLists.txt 2019-09-25 15:43:34.000000000 -0500
-+++ b/CMakeLists.txt 2020-01-31 09:26:24.104743210 -0600
-@@ -302,7 +302,7 @@
- ENDIF()
-
- IF(CMAKE_COMPILER_IS_GNUCC)
-- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
-+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fcommon")
- IF(NOT(ANDROID OR BLACKBERRY OR FREEGLUT_WAYLAND))
- # not setting -ansi as EGL/KHR headers doesn't support it
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic")
diff --git a/var/spack/repos/builtin/packages/freeglut/package.py b/var/spack/repos/builtin/packages/freeglut/package.py
index b28808f957..4685f7f746 100644
--- a/var/spack/repos/builtin/packages/freeglut/package.py
+++ b/var/spack/repos/builtin/packages/freeglut/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,13 +12,36 @@ class Freeglut(CMakePackage, SourceforgePackage):
homepage = "http://freeglut.sourceforge.net/"
sourceforge_mirror_path = "freeglut/freeglut-3.2.1.tar.gz"
+
version('3.2.1', sha256='d4000e02102acaf259998c870e25214739d1f16f67f99cb35e4f46841399da68')
version('3.0.0', sha256='2a43be8515b01ea82bcfa17d29ae0d40bd128342f0930cd1f375f1ff999f76a2')
- patch('common-gcc10.patch', when="@3.2.1: %gcc@10.0:")
+
+ depends_on('pkgconfig', type='build')
depends_on('gl')
depends_on('glu')
depends_on('libx11')
depends_on('libxrandr')
depends_on('libxi')
+ depends_on('libxxf86vm')
depends_on('xrandr')
depends_on('inputproto')
+
+ # freeglut fails to build with -fno-common (default with newer compilers)
+ # see https://bugs.gentoo.org/705840 and https://github.com/dcnieho/FreeGLUT/pull/76
+ patch('https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/freeglut/files/freeglut-3.2.1-gcc10-fno-common.patch?id=f9102571b69d9fc05471a592fda252681fdfdef1',
+ sha256='898e8fb314cbe728d791e9ea69829313143cda039c008f0ca06c1b5730922aa7',
+ when="@3.2.1: %gcc@10.0:")
+ patch('https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/freeglut/files/freeglut-3.2.1-gcc10-fno-common.patch?id=f9102571b69d9fc05471a592fda252681fdfdef1',
+ sha256='898e8fb314cbe728d791e9ea69829313143cda039c008f0ca06c1b5730922aa7',
+ when="@3.2.1: %clang@11.0:")
+
+ def cmake_args(self):
+ return [
+ '-DFREEGLUT_BUILD_DEMOS=OFF',
+ '-DOPENGL_gl_LIBRARY=' + self.spec['gl'].libs[0],
+ '-DOPENGL_glu_LIBRARY=' + self.spec['glu'].libs[0],
+ '-DX11_X11_LIB=' + self.spec['libx11'].libs[0],
+ '-DX11_Xrandr_LIB=' + self.spec['libxrandr'].libs[0],
+ '-DX11_Xi_LIB=' + self.spec['libxi'].libs[0],
+ '-DX11_Xxf86vm_LIB=' + self.spec['libxxf86vm'].libs[0],
+ ]
diff --git a/var/spack/repos/builtin/packages/freeimage/package.py b/var/spack/repos/builtin/packages/freeimage/package.py
index 0243d39b2d..725c7565eb 100644
--- a/var/spack/repos/builtin/packages/freeimage/package.py
+++ b/var/spack/repos/builtin/packages/freeimage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/freeipmi/package.py b/var/spack/repos/builtin/packages/freeipmi/package.py
index bcb3e502cd..1caa5b8dde 100644
--- a/var/spack/repos/builtin/packages/freeipmi/package.py
+++ b/var/spack/repos/builtin/packages/freeipmi/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 llnl.util.tty as tty
+from spack import *
+
class Freeipmi(AutotoolsPackage):
"""FreeIPMI provides in-band and out-of-band IPMI software based on the IPMI
@@ -35,6 +36,8 @@ class Freeipmi(AutotoolsPackage):
tty.warn("Requires 'root' for bmc-watchdog.service installation to"
" /lib/systemd/system/ !")
- args = ['--prefix={0}'.format(prefix)]
+ args = ['--prefix={0}'.format(prefix),
+ "--with-systemdsystemunitdir=" +
+ self.spec['freeipmi'].prefix.lib.systemd.system]
return args
diff --git a/var/spack/repos/builtin/packages/freetype/package.py b/var/spack/repos/builtin/packages/freetype/package.py
index 04389118cc..6eaf50ae2c 100644
--- a/var/spack/repos/builtin/packages/freetype/package.py
+++ b/var/spack/repos/builtin/packages/freetype/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,11 @@ class Freetype(AutotoolsPackage):
homepage = "https://www.freetype.org/index.html"
url = "https://download.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.gz"
+ maintainers = ['michaelkuhn']
+
+ version('2.11.0', sha256='a45c6b403413abd5706f3582f04c8339d26397c4304b78fa552f2215df64101f')
+ version('2.10.4', sha256='5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac')
+ version('2.10.2', sha256='e09aa914e4f7a5d723ac381420949c55c0b90b15744adce5d1406046022186ab')
version('2.10.1', sha256='3a60d391fd579440561bf0e7f31af2222bc610ad6ce4d9d7bd2165bca8669110')
version('2.10.0', sha256='955e17244e9b38adb0c98df66abb50467312e6bb70eac07e49ce6bd1a20e809a')
version('2.9.1', sha256='ec391504e55498adceb30baceebd147a6e963f636eb617424bcfc47a169898ce')
diff --git a/var/spack/repos/builtin/packages/freexl/package.py b/var/spack/repos/builtin/packages/freexl/package.py
index 20348e5581..4def8ab71c 100644
--- a/var/spack/repos/builtin/packages/freexl/package.py
+++ b/var/spack/repos/builtin/packages/freexl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Freexl(AutotoolsPackage):
"""FreeXL is an open source library to extract valid data from within
an Excel (.xls) spreadsheet."""
- homepage = "http://www.gaia-gis.it"
+ homepage = "https://www.gaia-gis.it"
url = "http://www.gaia-gis.it/gaia-sins/freexl-1.0.5.tar.gz"
version('1.0.5', sha256='3dc9b150d218b0e280a3d6a41d93c1e45f4d7155829d75f1e5bf3e0b0de6750d')
diff --git a/var/spack/repos/builtin/packages/fribidi/package.py b/var/spack/repos/builtin/packages/fribidi/package.py
index d356e465c3..e6486b7353 100644
--- a/var/spack/repos/builtin/packages/fribidi/package.py
+++ b/var/spack/repos/builtin/packages/fribidi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/frontier-client/frontier-client.patch b/var/spack/repos/builtin/packages/frontier-client/frontier-client.patch
new file mode 100644
index 0000000000..cf9888ed08
--- /dev/null
+++ b/var/spack/repos/builtin/packages/frontier-client/frontier-client.patch
@@ -0,0 +1,13 @@
+--- client/frontier_config.c 2020-07-28 09:20:59.456311478 +0200
++++ client/frontier_config.c 2020-07-28 09:26:49.147996572 +0200
+@@ -47,8 +47,8 @@
+
+ #define ENV_BUF_SIZE 1024
+
+-void *(*frontier_mem_alloc)(size_t size);
+-void (*frontier_mem_free)(void *ptr);
++extern void *(*frontier_mem_alloc)(size_t size);
++extern void (*frontier_mem_free)(void *ptr);
+
+ int frontier_pacparser_init(void);
+
diff --git a/var/spack/repos/builtin/packages/frontier-client/package.py b/var/spack/repos/builtin/packages/frontier-client/package.py
new file mode 100644
index 0000000000..283d176822
--- /dev/null
+++ b/var/spack/repos/builtin/packages/frontier-client/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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 FrontierClient(MakefilePackage):
+ """The Frontier distributed database caching system distributes data from
+ data sources to many client systems around the world. The name comes
+ from "N Tier" where N is any number and tiers are layers of locations
+ of distribution."""
+
+ homepage = "http://frontier.cern.ch/"
+ url = "https://github.com/fermitools/frontier/archive/v2_9_1.tar.gz"
+
+ version('2_9_1', sha256='d21370fbe142807966e3c2218ce361ea3bb573498e1b8387b801fb6641c3ed22')
+ version('2_9_0', sha256='e58dba3f177c5b74609f244101a22a5c14d42bf019013fe2dba72c09f819c62a')
+ version('2_8_21', sha256='7df9ba61c3e1778aca75c5da6e45ee4d00b5c061d3f7162208e2fbd2ec266a9e')
+ version('2_8_20', sha256='81b0f45762d96a33f156e0238631a60eef910a176644e95c6c19a36824bef7e1')
+
+ depends_on('pacparser')
+ depends_on('expat')
+
+ patch('frontier-client.patch', level=0)
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('client/Makefile')
+ makefile.filter('EXPAT_DIR}/lib', 'EXPAT_DIR}/lib64')
+
+ def build(self, spec, prefix):
+ with working_dir('client'):
+ make('-j1', 'dist', 'PACPARSER_DIR=' + self.spec['pacparser'].prefix,
+ 'EXPAT_DIR=' + self.spec['expat'].prefix)
+
+ def install(self, spec, prefix):
+ install_tree(join_path('client', 'dist'), prefix)
diff --git a/var/spack/repos/builtin/packages/frontistr/package.py b/var/spack/repos/builtin/packages/frontistr/package.py
index e59da46324..7dd5ea4925 100644
--- a/var/spack/repos/builtin/packages/frontistr/package.py
+++ b/var/spack/repos/builtin/packages/frontistr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -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.1', tag='v5.1.1')
version('5.1', tag='v5.1')
version('5.0', tag='v5.0')
version('master', tag='master')
@@ -31,7 +32,7 @@ class Frontistr(CMakePackage):
# depends_on('revocap-coupler')
depends_on('metis')
depends_on('mumps')
- depends_on('trilinos')
+ depends_on('trilinos@:12.18.1')
def cmake_args(self):
define = CMakePackage.define
diff --git a/var/spack/repos/builtin/packages/fseq/package.py b/var/spack/repos/builtin/packages/fseq/package.py
index 8bbd4f176f..92ed37cc4e 100644
--- a/var/spack/repos/builtin/packages/fseq/package.py
+++ b/var/spack/repos/builtin/packages/fseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Fseq(Package):
"""F-Seq: A Feature Density Estimator for High-Throughput Sequence Tags"""
- homepage = "http://fureylab.web.unc.edu/software/fseq/"
+ homepage = "https://fureylab.web.unc.edu/software/fseq/"
url = "http://html-large-files-dept-fureylab.cloudapps.unc.edu/fureylabfiles/fseq/fseq_1.84.tgz"
version('1.84', sha256='22d603a51f127cb86cdecde9aeae14d273bb98bcd2b47724763ab3b3241a6e68')
diff --git a/var/spack/repos/builtin/packages/fsl/build_log.patch b/var/spack/repos/builtin/packages/fsl/build_log.patch
new file mode 100644
index 0000000000..c0553b4c35
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fsl/build_log.patch
@@ -0,0 +1,11 @@
+--- a/build 2020-06-29 10:30:36.000000000 -0500
++++ b/build 2020-11-02 12:34:25.408157699 -0600
+@@ -158,7 +158,7 @@
+ fi #full build
+
+ echo "Building projects - see build.log file for progress..."
+-./config/common/buildproj $PROJECTS > ./build.log 2>&1
++./config/common/buildproj $PROJECTS
+ finalStatus=$?
+ if [ $finalStatus -eq 0 ]; then
+ echo "Build completed successfully.";
diff --git a/var/spack/repos/builtin/packages/fsl/eddy_Makefile.patch b/var/spack/repos/builtin/packages/fsl/eddy_Makefile.patch
new file mode 100644
index 0000000000..22057bf8fd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fsl/eddy_Makefile.patch
@@ -0,0 +1,11 @@
+--- a/src/eddy/Makefile 2020-07-22 09:11:14.000000000 -0500
++++ b/src/eddy/Makefile 2020-11-10 23:31:09.898903635 -0600
+@@ -46,7 +46,7 @@
+
+ CUDACXXFLAGS=-DCOMPILE_GPU
+ CUDAOBJS=CBFKernelDefinitions.o CBFSparseDiagonalMatrix.o CBFSplineField.o LSResampler_cuda.o DiffusionGP_cuda.o PostEddyCF_cuda.o EddyGpuUtils.o EddyInternalGpuUtils.o CudaVolume.o EddyMatrixKernels.o EddyKernels.o GpuPredictorChunk.o StackResampler.o DerivativeCalculator.o
+- CUDALDFLAGS= -Xlinker -rpath $(LIB_CUDA) -L$(LIB_CUDA) -lcublas -lcudart
++ CUDALDFLAGS= -Xlinker -rpath -Xlinker $(LIB_CUDA) -L$(LIB_CUDA) -lcublas -lcudart
+ ifeq ($(fastbuild),1)
+ GENCODE_FLAGS := -gencode arch=compute_30,code=sm_30
+ endif
diff --git a/var/spack/repos/builtin/packages/fsl/fsl_sub_v5.patch b/var/spack/repos/builtin/packages/fsl/fsl_sub_v5.patch
new file mode 100644
index 0000000000..561800962a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fsl/fsl_sub_v5.patch
@@ -0,0 +1,66 @@
+--- a/src/sgeutils/fsl_sub 2017-04-24 05:19:14.000000000 -0500
++++ b/src/sgeutils/fsl_sub 2020-11-15 17:42:28.100657607 -0600
+@@ -80,7 +80,7 @@
+ # "NONE". Note that a user can unset SGE_ROOT if they don't want the
+ # cluster to be used.
+ ###########################################################################
+-METHOD=SGE
++METHOD=NONE
+ unset module
+ if [ "x$SGE_ROOT" = "x" ] ; then
+ METHOD=NONE
+@@ -141,7 +141,9 @@
+
+ usage ()
+ {
+- cat <<EOF
++ case $METHOD in
++ SGE)
++ cat <<EOF
+
+ $command V1.1 - wrapper for job control system such as SGE
+
+@@ -186,7 +188,23 @@
+ bigmem.q: This queue is like the verylong.q but has no memory limits.
+
+ EOF
++ ;;
++ NONE)
++ cat <<EOF
+
++$command V1.1 - wrapper for job control system such as SGE
++
++Usage: $command [options] <command>
++
++$command gzip *.img *.hdr
++
++ -t <filename> Specify a task file of commands to execute in parallel
++ -l <logdirname> Where to output logfiles
++ -v Verbose mode.
++
++EOF
++ ;;
++ esac
+ exit 1
+ }
+
+@@ -195,8 +213,17 @@
+ usage
+ fi
+
+-set -- `getopt T:q:a:p:M:j:t:z:N:R:Fvm:l:s: $*`
+-result=$?
++case $METHOD in
++ SGE)
++ set -- `getopt T:q:a:p:M:j:t:z:N:R:Fvm:l:s: $*`
++ result=$?
++ ;;
++ NONE)
++ set -- `getopt t:vl: $*`
++ result=$?
++ ;;
++esac
++
+ if [ $result != 0 ] ; then
+ echo "What? Your arguments make no sense!"
+ fi
diff --git a/var/spack/repos/builtin/packages/fsl/fsl_sub_v6.patch b/var/spack/repos/builtin/packages/fsl/fsl_sub_v6.patch
new file mode 100644
index 0000000000..e209ba9282
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fsl/fsl_sub_v6.patch
@@ -0,0 +1,86 @@
+--- a/src/sgeutils/fsl_sub 2020-07-25 09:36:17.000000000 -0500
++++ b/src/sgeutils/fsl_sub 2020-11-15 17:04:41.484972803 -0600
+@@ -81,7 +81,7 @@
+ # "NONE". Note that a user can unset SGE_ROOT if they don't want the
+ # cluster to be used.
+ ###########################################################################
+-METHOD=SGE
++METHOD=NONE
+ unset module
+ if [[ "x$SGE_ROOT" = "x" ]] ; then
+ METHOD=NONE
+@@ -145,7 +145,10 @@
+
+ usage ()
+ {
+- cat <<EOF
++ case "$METHOD" in
++ SGE)
++
++ cat <<EOF
+
+ $command V1.1 - wrapper for job control system such as SGE
+
+@@ -190,7 +193,24 @@
+ bigmem.q: This queue is like the verylong.q but has no memory limits.
+
+ EOF
++ ;;
++ NONE)
++
++ cat <<EOF
+
++$command V1.1 - wrapper for job control system such as SGE
++
++Usage: $command [options] <command>
++
++$command gzip *.img *.hdr
++
++ -t <filename> Specify a task file of commands to execute in parallel
++ -l <logdirname> Where to output logfiles
++ -v Verbose mode.
++
++EOF
++ ;;
++ esac
+ exit 1
+ }
+
+@@ -199,14 +219,29 @@
+ usage
+ fi
+
+-#if the newer whitespace-safe getopt format is available, use it
+-if [[ $(getopt -T >/dev/null 2>&1; echo $?) == 4 ]]; then
+- eval set -- $(getopt -s bash T:q:a:p:M:j:t:z:N:R:Fvm:l:s: "$@")
+- result=$?
+-else
+- set -- $(getopt T:q:a:p:M:j:t:z:N:R:Fvm:l:s: "$@")
+- result=$?
+-fi
++case "$METHOD" in
++ SGE)
++ #if the newer whitespace-safe getopt format is available, use it
++ if [[ $(getopt -T >/dev/null 2>&1; echo $?) == 4 ]]; then
++ eval set -- $(getopt -s bash T:q:a:p:M:j:t:z:N:R:Fvm:l:s: "$@")
++ result=$?
++ else
++ set -- $(getopt T:q:a:p:M:j:t:z:N:R:Fvm:l:s: "$@")
++ result=$?
++ fi
++ ;;
++ NONE)
++ #if the newer whitespace-safe getopt format is available, use it
++ if [[ $(getopt -T >/dev/null 2>&1; echo $?) == 4 ]]; then
++ eval set -- $(getopt -s bash t:vl: "$@")
++ result=$?
++ else
++ set -- $(getopt t:vl: "$@")
++ result=$?
++ fi
++ ;;
++esac
++
+ if [[ "$result" != 0 ]] ; then
+ echo "What? Your arguments make no sense!"
+ fi
diff --git a/var/spack/repos/builtin/packages/fsl/fslpython_install_v5.patch b/var/spack/repos/builtin/packages/fsl/fslpython_install_v5.patch
new file mode 100644
index 0000000000..7e22534251
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fsl/fslpython_install_v5.patch
@@ -0,0 +1,18 @@
+--- a/etc/fslconf/fslpython_install.sh 2017-04-07 10:29:52.000000000 -0500
++++ b/etc/fslconf/fslpython_install.sh 2020-11-12 13:34:06.665816528 -0600
+@@ -129,7 +129,7 @@
+ exit 2
+ fi
+
+-curl_opts='--fail' # Returns 22 on error
++curl_opts='--fail -L' # Returns 22 on error
+ if [ ${quiet} -eq 1 ]; then
+ curl_opts="${curl_opts} -s"
+ fi
+@@ -184,4 +184,4 @@
+ # binary into $FSLDIR/bin/
+ ln -sf "${fslpython_env_dir}/bin/python" "${fsl_dir}/bin/fslpython"
+ rm "${miniconda_install_log}"
+-drop_sudo rmdir "${miniconda_tmp}"
+\ No newline at end of file
++drop_sudo rmdir "${miniconda_tmp}"
diff --git a/var/spack/repos/builtin/packages/fsl/fslpython_install_v6.patch b/var/spack/repos/builtin/packages/fsl/fslpython_install_v6.patch
new file mode 100644
index 0000000000..93eac4cb73
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fsl/fslpython_install_v6.patch
@@ -0,0 +1,39 @@
+--- a/etc/fslconf/fslpython_install.sh 2020-07-25 09:20:04.000000000 -0500
++++ b/etc/fslconf/fslpython_install.sh 2020-11-09 20:12:59.458736979 -0600
+@@ -204,19 +204,19 @@
+ # - https://github.com/conda/conda/issues/8804
+
+ # Try to make downloads more resilient
+-"${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set remote_read_timeout_secs 240
+-"${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set remote_connect_timeout_secs 20
+-"${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set remote_max_retries 10
+-"${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set remote_backoff_factor 5
+-"${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set safety_checks warn
++"${miniconda_bin_dir}/python" "${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set remote_read_timeout_secs 240
++"${miniconda_bin_dir}/python" "${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set remote_connect_timeout_secs 20
++"${miniconda_bin_dir}/python" "${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set remote_max_retries 10
++"${miniconda_bin_dir}/python" "${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set remote_backoff_factor 5
++"${miniconda_bin_dir}/python" "${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set safety_checks warn
+
+ # Channel priority:
+ # - conda-forge (highest priority)
+ # - defaults (gets automatically added on the first call)
+ # - fsl (lowest priority)
+-"${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set channel_priority strict
+-"${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --add channels conda-forge
+-"${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --append channels https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/channel
++"${miniconda_bin_dir}/python" "${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --set channel_priority strict
++"${miniconda_bin_dir}/python" "${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --add channels conda-forge
++"${miniconda_bin_dir}/python" "${miniconda_bin_dir}/conda" config --file "${miniconda_root_dir}"/.condarc --append channels https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/channel
+
+
+ ##############################
+@@ -229,7 +229,7 @@
+ if [ ${quiet} -ne 1 ]; then
+ echo "Stage 2"
+ fi
+-FSLDIR=$fsl_dir "${miniconda_bin_dir}/conda" env create -v \
++FSLDIR=$fsl_dir "${miniconda_bin_dir}/python" "${miniconda_bin_dir}/conda-env" create -v \
+ -f "${script_dir}/fslpython_environment.yml" \
+ 2>> "${miniconda_install_log}" | \
+ ${script_dir}/progress.sh 133 ${quiet} 1>> "${miniconda_install_log}"
diff --git a/var/spack/repos/builtin/packages/fsl/iconv.patch b/var/spack/repos/builtin/packages/fsl/iconv.patch
new file mode 100644
index 0000000000..d62b0f8a7b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fsl/iconv.patch
@@ -0,0 +1,28 @@
+diff -ru a/src/flameo/Makefile b/src/flameo/Makefile
+--- a/src/flameo/Makefile 2018-10-02 08:46:58.000000000 -0500
++++ b/src/flameo/Makefile 2020-11-07 20:19:56.732547025 -0600
+@@ -6,9 +6,7 @@
+ USRLDFLAGS = -L${LIB_NEWMAT} -L${LIB_PROB} -L${LIB_ZLIB}
+
+ UNAME := $(shell uname)
+-ifeq (${UNAME},Darwin)
+- LIBS = -liconv
+-endif
++LIBS = -liconv
+
+ LIBS += -lutils -lnewimage -lmiscmaths -lm -lnewmat -lNewNifti -lcifti -lxml++-2.6 -lxml2 -lboost_filesystem -lboost_system -lznz -lprob -lz
+
+diff -ru a/src/melodic/Makefile b/src/melodic/Makefile
+--- a/src/melodic/Makefile 2020-03-30 08:51:19.000000000 -0500
++++ b/src/melodic/Makefile 2020-11-07 20:21:45.625518576 -0600
+@@ -11,9 +11,7 @@
+ USRLDFLAGS = -L${LIB_NEWMAT} -L${LIB_PROB} -L${LIB_GD} -L${LIB_GDC} -L${LIB_PNG} -L${LIB_ZLIB}
+
+ UNAME := $(shell uname)
+-ifeq (${UNAME},Darwin)
+- LIBS = -liconv
+-endif
++LIBS = -liconv
+
+ LIBS += -lutils -lnewimage -lmiscplot -lmiscpic -lmiscmaths -lNewNifti -lcifti -lxml++-2.6 -lxml2 -lboost_filesystem -lboost_system -lznz -lnewmat -lprob -lm -lgdc -lgd -lpng -lz
+
diff --git a/var/spack/repos/builtin/packages/fsl/package.py b/var/spack/repos/builtin/packages/fsl/package.py
index 35f4978698..2dfafa2c69 100644
--- a/var/spack/repos/builtin/packages/fsl/package.py
+++ b/var/spack/repos/builtin/packages/fsl/package.py
@@ -1,49 +1,165 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
from spack.util.environment import EnvironmentModifications
-import os
-class Fsl(Package):
+class Fsl(Package, CudaPackage):
"""FSL is a comprehensive library of analysis tools for FMRI, MRI and DTI
- brain imaging data.
+ brain imaging data."""
- Note: A manual download is required for FSL.
- Spack will search your current directory for the download file.
- Alternatively, add this file to a mirror so that Spack can find it.
- For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ # NOTE: A manual download is required for FSL. Spack will search your
+ # current directory for the download file. Alternatively, add this file to
+ # a mirror so that Spack can find it. For instructions on how to set up a
+ # mirror, see https://spack.readthedocs.io/en/latest/mirrors.html
homepage = "https://fsl.fmrib.ox.ac.uk"
url = "file://{0}/fsl-5.0.10-sources.tar.gz".format(os.getcwd())
manual_download = True
- version('5.0.10', '64823172a08aad679833240ba64c8e30')
+ version('6.0.4', sha256='58b88f38e080b05d70724d57342f58e1baf56e2bd3b98506a72b4446cad5033e')
+ version('5.0.10', sha256='ca183e489320de0e502a7ba63230a7f55098917a519e8c738b005d526e700842')
depends_on('python', type=('build', 'run'))
depends_on('expat')
depends_on('libx11')
depends_on('glu')
- depends_on('zlib')
- depends_on('libpng')
- depends_on('boost')
- depends_on('sqlite')
-
- conflicts('%gcc@6:', when='@5.0.10')
+ depends_on('libiconv')
+ depends_on('openblas', when='@6:')
+ depends_on('vtk@:8')
+
+ conflicts('%gcc@:4.7,5.5:')
+ conflicts('^cuda@9.2:')
+ conflicts('cuda_arch=none', when='+cuda',
+ msg='must select a CUDA architecture')
+ conflicts('platform=darwin',
+ msg='currently only packaged for linux')
+
+ patch('build_log.patch')
+ patch('eddy_Makefile.patch', when='@6:')
+ patch('iconv.patch')
+ patch('fslpython_install_v5.patch', when='@:5')
+ patch('fslpython_install_v6.patch', when='@6:')
+
+ # These patches disable FSL's attempts to try to submit a subset of FSL
+ # computations to an SGE queue system. That auto-submit mechanism only
+ # works for SGE and requires someone to edit the fsl_sub script to
+ # accommodate their system. These patches disable the auto submission
+ # scheme and allow the fsl_sub script to behave the same on all systems,
+ # and without further modification, whether the computation is submitted to
+ # a "local" system, like a workstation, or as a batch job to a cluster
+ # queueing system, regardless of queue system type.
+ patch('fsl_sub_v5.patch', when='@:5')
+ patch('fsl_sub_v6.patch', when='@6:')
def patch(self):
# Uncomment lines in source file to allow building from source
with working_dir(join_path(self.stage.source_path, 'etc', 'fslconf')):
sourced = FileFilter('fsl.sh')
sourced.filter('#FSLCONFDIR', 'FSLCONFDIR')
- sourced.filter('#FSLMACHTYPE', 'FSLMACHTYPE')
- # Fix error in build script
- buildscript = FileFilter('build')
- buildscript.filter('mist-clean', 'mist')
+
+ if self.spec.satisfies('@6:'):
+ sourced.filter('#FSLMACHTYPE', 'FSLMACHTYPE')
+ else:
+ sourced.filter(r'#(FSLMACHTYPE).*', r'\1=linux_64-gcc4.8')
+
+ if self.spec.satisfies('@:5'):
+ with working_dir(join_path(self.stage.source_path, 'config',
+ 'common')):
+ buildproj = FileFilter('buildproj')
+ buildproj.filter(r'(^FSLMACHTYPE).*', r'\1=linux_64-gcc4.8')
+
+ # Capture the settings file
+ if self.spec.satisfies('@6:'):
+ settings_file = join_path(self.stage.source_path, 'config',
+ 'buildSettings.mk')
+ vtk_file = settings_file
+ else:
+ settings_file = join_path(self.stage.source_path, 'config',
+ 'linux_64-gcc4.8', 'systemvars.mk')
+ externals_file = join_path(self.stage.source_path, 'config',
+ 'linux_64-gcc4.8', 'externallibs.mk')
+ vtk_file = externals_file
+
+ build_settings = FileFilter(settings_file)
+ vtk_settings = FileFilter(vtk_file)
+
+ build_settings.filter(r'^CUDAVER', '#CUDAVER')
+ build_settings.filter(r'(^CC)\s*=.*', r'\1 = {0}'.format(spack_cc))
+ build_settings.filter(r'(^CXX)\s*=.*', r'\1 = {0}'.format(spack_cxx))
+ build_settings.filter(r'(^CXX11)\s*=.*', r'\1 = {0}'.format(spack_cxx))
+
+ vtk_suffix = self.spec['vtk'].version.up_to(2)
+ vtk_lib_dir = self.spec['vtk'].prefix.lib64
+ vtk_include_dir = join_path(self.spec['vtk'].prefix.include,
+ 'vtk-{0}'.format(vtk_suffix))
+
+ vtk_settings.filter(r'(^VTKDIR_INC)\s*=.*',
+ r'\1 = {0}'.format(vtk_include_dir))
+ vtk_settings.filter(r'(^VTKDIR_LIB)\s*=.*',
+ r'\1 = {0}'.format(vtk_lib_dir))
+ vtk_settings.filter(r'(^VTKSUFFIX)\s*=.*',
+ r'\1 = -{0}'.format(vtk_suffix))
+
+ if '+cuda' in self.spec:
+ cuda_arch = self.spec.variants['cuda_arch'].value
+ cuda_gencode = ' '.join(self.cuda_flags(cuda_arch))
+ cuda_installation = self.spec['cuda'].prefix
+
+ build_settings.filter(r'(^CUDA_INSTALLATION)\s*=.*',
+ r'\1 = {0}'.format(cuda_installation))
+ build_settings.filter(r'(^LIB_CUDA)\s*=.*',
+ r'\1 = {0}'.format(
+ join_path(
+ cuda_installation,
+ 'lib64')))
+ build_settings.filter(r'(^INC_CUDA)\s*=.*',
+ r'\1 = {0}'.format(
+ join_path(
+ cuda_installation,
+ 'include')))
+ build_settings.filter(r'(^NVCC11)\s*=.*',
+ r'\1 = {0}'.format(
+ join_path(
+ cuda_installation, 'bin',
+ 'nvcc')))
+ build_settings.filter(r'(^NVCC)\s*=.*',
+ r'\1 = {0}'.format(
+ join_path(
+ cuda_installation, 'bin',
+ 'nvcc')))
+ build_settings.filter(r'(^GENCODE_FLAGS)\s*=.*',
+ r'\1 = {0}'.format(cuda_gencode))
+
+ if self.spec.satisfies('@6:'):
+ build_settings.filter(r'(^EDDYBUILDPARAMETERS)\s*=.*',
+ r'\1 = "cuda=1" "cpu=1"')
+ build_settings.filter(r'(^fdt_MASTERBUILD)\s*=.*',
+ r'\1 = COMPILE_GPU=1')
+ build_settings.filter(r'(^ptx2_MASTERBUILD)\s*=.*',
+ r'\1 = COMPILE_GPU=1')
+ else:
+ with open(settings_file, 'a') as f:
+ f.write('COMPILE_GPU=1\n')
+ else:
+ build_settings.filter(r'^CUDA_INSTALLATION', '#CUDA_INSTALLATION')
+ build_settings.filter(r'^GENCODE_FLAGS', '#GENCODE_FLAGS')
+ build_settings.filter(r'^LIB_CUDA', '#LIB_CUDA')
+ build_settings.filter(r'^INC_CUDA', '#INC_CUDA')
+ build_settings.filter(r'^NVCC', '#NVCC')
+
+ if self.spec.satisfies('@6:'):
+ build_settings.filter(r'(^EDDYBUILDPARAMETERS)\s*=.*',
+ r'\1 = "cpu=1"')
+ build_settings.filter(r'(^fdt_MASTERBUILD)\s*=.*',
+ r'\1 = COMPILE_GPU=0')
+ build_settings.filter(r'(^ptx2_MASTERBUILD)\s*=.*',
+ r'\1 = COMPILE_GPU=0')
def install(self, spec, prefix):
build = Executable('./build')
@@ -51,6 +167,20 @@ class Fsl(Package):
install_tree('.', prefix)
+ @run_after('install')
+ def postinstall(self):
+ # The PYTHON related environment variables need to be unset here so
+ # the post install script does not get confused.
+ vars_to_unset = ['PYTHONPATH', 'PYTHONHOME']
+
+ with spack.util.environment.preserve_environment(*vars_to_unset):
+ for v in vars_to_unset:
+ del os.environ[v]
+
+ script = Executable(join_path(prefix, 'etc', 'fslconf',
+ 'post_install.sh'))
+ script('-f', prefix)
+
def setup_build_environment(self, env):
if not self.stage.source_path:
self.stage.fetch()
@@ -66,18 +196,9 @@ class Fsl(Package):
env.extend(EnvironmentModifications.from_sourcing_file(fslsetup))
def setup_run_environment(self, env):
- # Here, run-time environment variables are being set manually.
- # Normally these would be added to the modulefile at build-time
- # by sourcing fsl.sh, but incorrect paths were being set, pointing to
- # the staging directory rather than the install directory.
+ # Set the environment variables after copying tree
env.set('FSLDIR', self.prefix)
- env.set('FSLOUTPUTTYPE', 'NIFTI_GZ')
- env.set('FSLMULTIFILEQUIT', 'TRUE')
- env.set('FSLTCLSH', self.prefix.bin.fsltclsh)
- env.set('FSLWISH', self.prefix.bin.fslwish)
- env.set('FSLLOCKDIR', '')
- env.set('FSLMACHINELIST', '')
- env.set('FSLREMOTECALL', '')
- env.set('FSLGECUDAQ', 'cuda.q')
-
- env.prepend_path('PATH', self.prefix)
+ fslsetup = join_path(self.prefix, 'etc', 'fslconf', 'fsl.sh')
+
+ if os.path.isfile(fslsetup):
+ env.extend(EnvironmentModifications.from_sourcing_file(fslsetup))
diff --git a/var/spack/repos/builtin/packages/fslsfonts/package.py b/var/spack/repos/builtin/packages/fslsfonts/package.py
index f491b2631e..b22e4bed49 100644
--- a/var/spack/repos/builtin/packages/fslsfonts/package.py
+++ b/var/spack/repos/builtin/packages/fslsfonts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,13 @@ from spack import *
class Fslsfonts(AutotoolsPackage, XorgPackage):
"""fslsfonts produces a list of fonts served by an X font server."""
- homepage = "http://cgit.freedesktop.org/xorg/app/fslsfonts"
+ homepage = "https://cgit.freedesktop.org/xorg/app/fslsfonts"
xorg_mirror_path = "app/fslsfonts-1.0.5.tar.gz"
version('1.0.5', sha256='27e58d2313835ce0f08cf47c59a43798b122f605a55f54b170db27b57a492007')
depends_on('libfs')
- depends_on('xproto@7.0.25:', type='build')
+ depends_on('xproto@7.0.25:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/fstobdf/package.py b/var/spack/repos/builtin/packages/fstobdf/package.py
index ae83adf5ca..9bddbca2fa 100644
--- a/var/spack/repos/builtin/packages/fstobdf/package.py
+++ b/var/spack/repos/builtin/packages/fstobdf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Fstobdf(AutotoolsPackage, XorgPackage):
This is useful in testing servers, debugging font metrics, and
reproducing lost BDF files."""
- homepage = "http://cgit.freedesktop.org/xorg/app/fstobdf"
+ homepage = "https://cgit.freedesktop.org/xorg/app/fstobdf"
xorg_mirror_path = "app/fstobdf-1.0.6.tar.gz"
version('1.0.6', sha256='bb903ae76cbcb0a08a71f06762b64db7d5c2064f6e88e8dc3a604e76d0bcb93d')
@@ -20,6 +20,6 @@ class Fstobdf(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libfs')
- depends_on('xproto@7.0.25:', type='build')
+ depends_on('xproto@7.0.25:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/fstrack/package.py b/var/spack/repos/builtin/packages/fstrack/package.py
index d6a0f5e4de..0e76ccf63b 100644
--- a/var/spack/repos/builtin/packages/fstrack/package.py
+++ b/var/spack/repos/builtin/packages/fstrack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ftgl/package.py b/var/spack/repos/builtin/packages/ftgl/package.py
index 174050321b..29d4110ba1 100644
--- a/var/spack/repos/builtin/packages/ftgl/package.py
+++ b/var/spack/repos/builtin/packages/ftgl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ftk/package.py b/var/spack/repos/builtin/packages/ftk/package.py
new file mode 100644
index 0000000000..8d07b010de
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ftk/package.py
@@ -0,0 +1,62 @@
+# Copyright 2013-2021 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 Ftk(CMakePackage):
+ """FTK is a library that simplifies, scales, and delivers feature
+ tracking algorithms for scientific data."""
+
+ # Add a proper url for your package's homepage here.
+ homepage = "https://github.com/hguo/ftk"
+ url = "https://github.com/hguo/ftk/archive/0.0.5.tar.gz"
+ git = "https://github.com/hguo/ftk.git"
+
+ # Add a list of GitHub accounts to
+ # notify when the package is updated.
+ maintainers = ['hguo']
+
+ version('master', branch='master')
+ version('dev', branch='dev')
+ version('0.0.5', sha256='9d5c84a73b7761b9fc7dac62d4296df9f3052b722ec1b06518b2b8f51a8d3440')
+ version('0.0.4', sha256='1674904da8d88dbd4c7d2b6a2629883f0444e70aefc99b48d285735d394897fa')
+
+ # variants
+ variant("adios2", default=False)
+ variant("cuda", default=False)
+ variant("gmp", default=True)
+ variant("hdf5", default=False)
+ variant("mpi", default=False)
+ variant("netcdf", default=False)
+ variant("vtk", default=False)
+
+ # optional dependencies
+ depends_on('adios2', when='+adios2')
+ depends_on('cuda', when='+cuda')
+ depends_on('hdf5', when='+hdf5')
+ depends_on('gmp', when='+gmp')
+ depends_on('mpi', when='+mpi')
+ depends_on('netcdf-c', when='+netcdf')
+ depends_on('vtk', when='+vtk')
+
+ def add_cmake_option(self, args, dependency, option):
+ if dependency in self.spec:
+ args.append('-D' + option + '=ON')
+ else:
+ args.append('-D' + option + '=OFF')
+
+ def cmake_args(self):
+ args = []
+
+ self.add_cmake_option(args, '+adios2', 'FTK_USE_ADIOS2')
+ self.add_cmake_option(args, '+cuda', 'FTK_USE_CUDA')
+ self.add_cmake_option(args, '+gmp', 'FTK_USE_GMP')
+ self.add_cmake_option(args, '+hdf5', 'FTK_USE_HDF5')
+ self.add_cmake_option(args, '+mpi', 'FTK_USE_MPI')
+ self.add_cmake_option(args, '+netcdf', 'FTK_USE_NETCDF')
+ self.add_cmake_option(args, '+vtk', 'FTK_USE_VTK')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/ftobjectlibrary/package.py b/var/spack/repos/builtin/packages/ftobjectlibrary/package.py
new file mode 100644
index 0000000000..91cbd1a800
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ftobjectlibrary/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 Ftobjectlibrary(CMakePackage):
+ """FTObjectLibrary provides a collection of reference counted Fortran 2003
+ classes to facilitate writing generic object oriented Fortran programs. """
+
+ homepage = "https://github.com/trixi-framework/FTObjectLibrary"
+ url = "https://github.com/trixi-framework/FTObjectLibrary"
+ git = "https://github.com/trixi-framework/FTObjectLibrary.git"
+
+ maintainers = ['schoonovernumerics']
+
+ version('main', branch='main')
diff --git a/var/spack/repos/builtin/packages/fujitsu-fftw/package.py b/var/spack/repos/builtin/packages/fujitsu-fftw/package.py
new file mode 100644
index 0000000000..c4d5ef8223
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fujitsu-fftw/package.py
@@ -0,0 +1,113 @@
+# Copyright 2013-2021 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 spack.error import SpackError
+from spack.pkg.builtin.fftw import FftwBase
+
+
+def target_check(spec):
+ if spec.target != "a64fx":
+ error_msg = ("It can only be built on an A64FX machine.\n")
+ raise SpackError(error_msg)
+
+
+class FujitsuFftw(FftwBase):
+ """FFTW (Fujitsu Optimized version) is a comprehensive collection of
+ fast C routines for computing the Discrete Fourier Transform (DFT)
+ and various special cases thereof.
+
+ It is an open-source implementation of the Fast Fourier transform
+ algorithm. It can compute transforms of real and complex-values
+ arrays of arbitrary size and dimension.
+ Fujitsu Optimized FFTW is the optimized FFTW implementation targeted
+ for A64FX CPUs.
+
+ For single precision build, please use precision value as float.
+ Example : spack install fujitsufftw precision=float
+ """
+
+ _name = 'fujitsu-fftw'
+ homepage = "https://github.com/fujitsu/fftw3"
+ url = "https://github.com/fujitsu/fftw3/archive/sve-v1.0.0.tar.gz"
+
+ version('1.0.0', sha256='b5931e352355d8d1ffeb215922f4b96de11b8585c423fceeaffbf3d5436f6f2f')
+
+ variant('shared', default=True, description='Builds a shared version of the library')
+ variant('openmp', default=True, description="Enable OpenMP support")
+ variant('debug', default=False, description='Builds a debug version of the library')
+
+ depends_on('texinfo')
+
+ provides('fftw-api@3')
+
+ conflicts('precision=quad', when='%fj', msg="Fujitsu Compiler doesn't support quad precision")
+ conflicts('precision=long_double', when='%fj', msg="ARM-SVE vector instructions only works in single or double precision")
+ conflicts('%arm')
+ conflicts('%cce')
+ conflicts('%apple-clang')
+ conflicts('%clang')
+ conflicts('%gcc')
+ conflicts('%intel')
+ conflicts('%nag')
+ conflicts('%pgi')
+ conflicts('%xl')
+ conflicts('%xl_r')
+
+ def autoreconf(self, spec, prefix):
+ if spec.target != "a64fx":
+ target_check(spec)
+
+ touch = which('touch')
+ touch('ChangeLog')
+ autoreconf = which('autoreconf')
+ autoreconf('-ifv')
+
+ def configure(self, spec, prefix):
+ """Configure function"""
+ # Base options
+ options = [
+ 'CFLAGS=-Ofast',
+ 'FFLAGS=-Kfast',
+ '--enable-sve',
+ '--enable-armv8-cntvct-el0',
+ '--enable-fma',
+ '--enable-fortran',
+ '--prefix={0}'.format(prefix),
+ 'ac_cv_prog_f77_v=-###'
+ ]
+
+ if '+shared' in spec:
+ options.append('--enable-shared')
+ else:
+ options.append('--disable-shared')
+
+ if '+openmp' in spec:
+ options.append('--enable-openmp')
+ options.append('OPENMP_CFLAGS=-Kopenmp')
+ else:
+ options.append('--disable-openmp')
+
+ if '+mpi' in spec:
+ options.append('--enable-mpi')
+ else:
+ options.append('--disable-mpi')
+
+ # Double is the default precision, for all the others we need
+ # to enable the corresponding option.
+ enable_precision = {
+ 'float': ['--enable-float'],
+ 'double': None,
+ 'long_double': ['--enable-long-double'],
+ 'quad': ['--enable-quad-precision']
+ }
+
+ # Different precisions must be configured and compiled one at a time
+ configure = Executable('../configure')
+ for precision in self.selected_precisions:
+
+ opts = (enable_precision[precision] or []) + options[:]
+ with working_dir(precision, create=True):
+ configure(*opts)
diff --git a/var/spack/repos/builtin/packages/fujitsu-mpi/package.py b/var/spack/repos/builtin/packages/fujitsu-mpi/package.py
index 3a4fa40975..f4869ca6c9 100644
--- a/var/spack/repos/builtin/packages/fujitsu-mpi/package.py
+++ b/var/spack/repos/builtin/packages/fujitsu-mpi/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class FujitsuMpi(Package):
"""Fujitsu MPI implementation only for Fujitsu compiler."""
diff --git a/var/spack/repos/builtin/packages/fujitsu-ssl2/package.py b/var/spack/repos/builtin/packages/fujitsu-ssl2/package.py
index 3d5d8f875f..2a10e1166d 100644
--- a/var/spack/repos/builtin/packages/fujitsu-ssl2/package.py
+++ b/var/spack/repos/builtin/packages/fujitsu-ssl2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -54,7 +54,8 @@ class FujitsuSsl2(Package):
else:
libslist.append("libfjlapack.so")
- libslist.append("libfj90rt2.a")
+ if "+parallel" in spec: # parallel
+ libslist.extend(["libfjomphk.so", "libfjomp.so"])
if spec.target == "a64fx": # Build with SVE support
if "+parallel" in spec: # parallel
@@ -72,7 +73,7 @@ class FujitsuSsl2(Package):
else:
libslist.append("libfj90fmt.a")
- libslist.extend(["libfj90f.a", "libfjsrcinfo.a", "libfj90rt.so"])
+ libslist.extend(["libfj90f.so", "libfjsrcinfo.so", "libfj90rt.so"])
libspath = find(self.prefix.lib64, libslist, recursive=False)
libs = LibraryList(libspath)
@@ -104,9 +105,12 @@ class FujitsuSsl2(Package):
libslist.append("libscalapack.a")
libslist.extend(
- ["libmpi_usempi_ignore_tkr.so", "libmpi_mpifh.so", "libfj90rt2.a"]
+ ["libmpi_usempi_ignore_tkr.so", "libmpi_mpifh.so"]
)
+ if "+parallel" in spec: # parallel
+ libslist.extend(["libfjomphk.so", "libfjomp.so"])
+
if spec.target == "a64fx": # Build with SVE support
if "+parallel" in spec: # parallel
libslist.append("libssl2mtexsve.a")
@@ -123,7 +127,7 @@ class FujitsuSsl2(Package):
else:
libslist.append("libfj90fmt.a")
- libslist.extend(["libfj90f.a", "libfjsrcinfo.a", "libfj90rt.so"])
+ libslist.extend(["libfj90f.so", "libfjsrcinfo.so", "libfj90rt.so"])
libspath = find(self.prefix.lib64, libslist, recursive=False)
libs = LibraryList(libspath)
@@ -133,9 +137,16 @@ class FujitsuSsl2(Package):
def setup_dependent_build_environment(self, env, dependent_spec):
path = self.prefix.include
env.append_flags(
- "fcc_ENV", "-lm -lrt -lpthread -lelf -lz -ldl -idirafter " + path
+ "fcc_ENV", "-idirafter " + path
)
env.append_flags(
- "FCC_ENV", "-lm -lrt -lpthread -lelf -lz -ldl -idirafter " + path
+ "FCC_ENV", "-idirafter " + path
+ )
+
+ @property
+ def headers(self):
+ path = join_path(
+ self.spec.prefix, "clang-comp"
)
- env.append_flags("FORT90C", "-lm -lrt -lpthread -lelf -lz -ldl")
+ headers = find_headers('cssl', path, recursive=True)
+ return headers
diff --git a/var/spack/repos/builtin/packages/fullock/package.py b/var/spack/repos/builtin/packages/fullock/package.py
new file mode 100644
index 0000000000..c4b283db9d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fullock/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 Fullock(AutotoolsPackage):
+ """FULLOCK is a lock library provided by Yahoo! JAPAN,
+ that is very fast and runs on user level.This library
+ provides two lock type."""
+
+ homepage = "https://antpick.ax/"
+ url = "https://github.com/yahoojapan/fullock/archive/v1.0.36.tar.gz"
+
+ version('1.0.39', sha256='0089d4446e3102b5de39e3d18c1b7e5c9567deb77a4e60963e15b5c1b23a594d')
+ version('1.0.36', sha256='68d0dc9036c2c1871653b4626a594f57663973c159f083ec68647c60ddc919f7')
+ version('1.0.35', sha256='613462155271bf7b90ce745bafb47d23855e1b4813d3b6caa238efffb7c42841')
+ version('1.0.34', sha256='6f4c901e5b08f5e82365539cb9c0dbab82529175912f6203a82509a583553021')
+ version('1.0.33', sha256='31a292e50553abf71058b47277dbca37d25a772cf99c0f99c85e56dfcd11edb2')
+ version('1.0.32', sha256='57d4ca06e5b88a98745062f55ee5ce37c88a49d59d58d09c5178fa1eee4d8353')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./autogen.sh')
diff --git a/var/spack/repos/builtin/packages/funhpc/package.py b/var/spack/repos/builtin/packages/funhpc/package.py
index 18175119f8..2bf10834dd 100644
--- a/var/spack/repos/builtin/packages/funhpc/package.py
+++ b/var/spack/repos/builtin/packages/funhpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fuse-overlayfs/package.py b/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
index 36b8cba193..81103c3103 100644
--- a/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
+++ b/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,10 @@ class FuseOverlayfs(AutotoolsPackage):
homepage = "https://github.com/containers/fuse-overlayfs"
url = "https://github.com/containers/fuse-overlayfs/archive/v1.1.2.tar.gz"
+ version('1.5.0', sha256='6c81b65b71067b303aaa9871f512c2cabc23e2b793f19c6c854d01a492b5a923')
+ version('1.4.0', sha256='7e5666aef4f2047e6a5202d6438b08c2d314dba5b40e431014e7dbb8168d9018')
+ version('1.3.0', sha256='91e78a93aac7698c65083deea04952bc86af6abbb0830785ef1dd4a8707ad8bf')
+ version('1.2.0', sha256='5df218732244059057686194b0e1fef66fb822d4087db48af88e1bc29bb1afde')
version('1.1.2', sha256='1c0fa67f806c44d5c51f4bce02fdcb546137a2688a8de76d93d07b79defc9cac')
version('1.1.1', sha256='9a1c4221a82059fd9686dd8b519d432bae126c08f9d891fb722bcb51ba4933ec')
version('1.1.0', sha256='060168c2d5a8c6cc768b4542eba9953b7ff4a31f94bfb2e05b3d1051390838b1')
@@ -20,4 +24,4 @@ class FuseOverlayfs(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
- depends_on('libfuse')
+ depends_on('fuse')
diff --git a/var/spack/repos/builtin/packages/fxdiv/package.py b/var/spack/repos/builtin/packages/fxdiv/package.py
new file mode 100644
index 0000000000..daaaf2a211
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fxdiv/package.py
@@ -0,0 +1,47 @@
+# Copyright 2013-2021 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 Fxdiv(CMakePackage):
+ """Header-only library for division via fixed-point multiplication by inverse."""
+
+ homepage = "https://github.com/Maratyszcza/FXdiv"
+ git = "https://github.com/Maratyszcza/FXdiv.git"
+
+ version('master', branch='master')
+ version('2020-04-17', commit='b408327ac2a15ec3e43352421954f5b1967701d1') # py-torch@1.6:1.9
+ version('2018-11-16', commit='b742d1143724d646cd0f914646f1240eacf5bd73') # py-torch@1.0:1.5
+ version('2018-02-24', commit='811b482bcd9e8d98ad80c6c78d5302bb830184b0') # py-torch@0.4
+
+ depends_on('cmake@3.5:', type='build')
+ depends_on('ninja', type='build')
+ depends_on('python', type='build')
+
+ generator = 'Ninja'
+
+ resource(
+ name='googletest',
+ url='https://github.com/google/googletest/archive/release-1.10.0.zip',
+ sha256='94c634d499558a76fa649edb13721dce6e98fb1e7018dfaeba3cd7a083945e91',
+ destination='deps',
+ placement='googletest',
+ )
+ resource(
+ name='googlebenchmark',
+ url='https://github.com/google/benchmark/archive/v1.5.0.zip',
+ sha256='2d22dd3758afee43842bb504af1a8385cccb3ee1f164824e4837c1c1b04d92a0',
+ destination='deps',
+ placement='googlebenchmark',
+ )
+
+ def cmake_args(self):
+ return [
+ self.define('GOOGLETEST_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googletest')),
+ self.define('GOOGLEBENCHMARK_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googlebenchmark')),
+ ]
diff --git a/var/spack/repos/builtin/packages/fyba/package.py b/var/spack/repos/builtin/packages/fyba/package.py
index 9439140bf0..102e5c8358 100644
--- a/var/spack/repos/builtin/packages/fyba/package.py
+++ b/var/spack/repos/builtin/packages/fyba/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/fzf/package.py b/var/spack/repos/builtin/packages/fzf/package.py
index cee38abad4..cc85cf17f0 100644
--- a/var/spack/repos/builtin/packages/fzf/package.py
+++ b/var/spack/repos/builtin/packages/fzf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/g2/package.py b/var/spack/repos/builtin/packages/g2/package.py
new file mode 100644
index 0000000000..686a7bb7cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/g2/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 G2(CMakePackage):
+ """Utilities for coding/decoding GRIB2 messages. This library contains
+ Fortran 90 decoder/encoder routines for GRIB edition 2, as well as
+ indexing/searching utility routines."""
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS-g2"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-g2/archive/refs/tags/v3.4.3.tar.gz"
+
+ maintainers = ['t-brown']
+
+ version('3.4.3', sha256='679ea99b225f08b168cbf10f4b29f529b5b011232f298a5442ce037ea84de17c')
+
+ depends_on('jasper')
+ depends_on('libpng')
diff --git a/var/spack/repos/builtin/packages/g2o/package.py b/var/spack/repos/builtin/packages/g2o/package.py
new file mode 100644
index 0000000000..496e9620f2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/g2o/package.py
@@ -0,0 +1,44 @@
+# Copyright 2013-2021 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 G2o(CMakePackage):
+ """g2o is an open-source C++ framework for optimizing graph-based nonlinear
+ error functions.
+
+ g2o has been designed to be easily extensible to a wide range of problems
+ and a new problem typically can be specified in a few lines of code. The
+ current implementation provides solutions to several variants of SLAM and
+ BA."""
+
+ homepage = "https://openslam-org.github.io/g2o.html"
+ url = "https://github.com/RainerKuemmerle/g2o/archive/20200410_git.tar.gz"
+ git = "https://github.com/RainerKuemmerle/g2o.git"
+
+ version('master', branch='master')
+ version('20200410_git', sha256='b79eb1407ae7f2a9e6a002bb4b41d65402c185855db41a9ef4a6e3b42abaec4c')
+
+ depends_on('cmake@3.1:', type='build')
+ depends_on('eigen@2.91.0:', type='link')
+ depends_on('ceres-solver')
+ depends_on('freeglut')
+ depends_on('suite-sparse')
+ depends_on('qt@5:+gui+opengl')
+ depends_on('libqglviewer')
+
+ def cmake_args(self):
+ return [
+ '-DBUILD_CSPARSE=OFF',
+ '-DCSPARSE_INCLUDE_DIR=' + self.spec[
+ 'suite-sparse:cxsparse'].headers.directories[0],
+ '-DCSPARSE_LIBRARY=' + self.spec['suite-sparse:cxsparse'].libs[0],
+ '-DQGLVIEWER_INCLUDE_DIR=' + self.spec[
+ 'libqglviewer'].prefix.include.QGLViewer
+ ]
+
+ @run_after('install')
+ def darwin_fix(self):
+ if self.spec.satisfies('platform=darwin'):
+ fix_darwin_install_name(self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/g2tmpl/package.py b/var/spack/repos/builtin/packages/g2tmpl/package.py
new file mode 100644
index 0000000000..084017564a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/g2tmpl/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 G2tmpl(CMakePackage):
+ """Utilities for GRIB2 templates."""
+
+ homepage = "https://github.com/NOAA-EMC/NCEPLIBS-g2tmpl"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-g2tmpl/archive/refs/tags/v1.10.0.tar.gz"
+
+ maintainers = ['t-brown']
+
+ version('1.10.0', sha256='dcc0e40b8952f91d518c59df7af64e099131c17d85d910075bfa474c8822649d')
diff --git a/var/spack/repos/builtin/packages/g4abla/package.py b/var/spack/repos/builtin/packages/g4abla/package.py
index bed114d825..d9cd0ef726 100644
--- a/var/spack/repos/builtin/packages/g4abla/package.py
+++ b/var/spack/repos/builtin/packages/g4abla/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,10 @@ from spack import *
class G4abla(Package):
"""Geant4 data for nuclear shell effects in INCL/ABLA hadronic mode"""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ABLA.3.0.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4ABLA.3.0.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
diff --git a/var/spack/repos/builtin/packages/g4emlow/package.py b/var/spack/repos/builtin/packages/g4emlow/package.py
index e7b34000cd..6d3aaa6f22 100644
--- a/var/spack/repos/builtin/packages/g4emlow/package.py
+++ b/var/spack/repos/builtin/packages/g4emlow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,15 @@ from spack import *
class G4emlow(Package):
"""Geant4 data files for low energy electromagnetic processes."""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4EMLOW.6.50.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4EMLOW.6.50.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added
+ version('7.13', sha256='374896b649be776c6c10fea80abe6cf32f9136df0b6ab7c7236d571d49fb8c69')
version('7.9.1', sha256='820c106e501c64c617df6c9e33a0f0a3822ffad059871930f74b8cc37f043ccb')
version('7.9', sha256='4abf9aa6cda91e4612676ce4d2d8a73b91184533aa66f9aad19a53a8c4dc3aff')
version('7.7', sha256='16dec6adda6477a97424d749688d73e9bd7d0b84d0137a67cf341f1960984663')
@@ -34,4 +37,4 @@ class G4emlow(Package):
def url_for_version(self, version):
"""Handle version string."""
- return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4EMLOW.%s.tar.gz" % version)
+ return ("https://geant4-data.web.cern.ch/geant4-data/datasets/G4EMLOW.%s.tar.gz" % version)
diff --git a/var/spack/repos/builtin/packages/g4ensdfstate/package.py b/var/spack/repos/builtin/packages/g4ensdfstate/package.py
index 36bc897f4b..911bc67be4 100644
--- a/var/spack/repos/builtin/packages/g4ensdfstate/package.py
+++ b/var/spack/repos/builtin/packages/g4ensdfstate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,15 @@ from spack import *
class G4ensdfstate(Package):
"""Geant4 data for nuclides properties"""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ENSDFSTATE.2.1.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4ENSDFSTATE.2.1.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added
+ version('2.3', sha256='9444c5e0820791abd3ccaace105b0e47790fadce286e11149834e79c4a8e9203')
version('2.2', sha256='dd7e27ef62070734a4a709601f5b3bada6641b111eb7069344e4f99a01d6e0a6')
version('2.1', sha256='933e7f99b1c70f24694d12d517dfca36d82f4e95b084c15d86756ace2a2790d9')
diff --git a/var/spack/repos/builtin/packages/g4incl/package.py b/var/spack/repos/builtin/packages/g4incl/package.py
index e21010f411..07a77aa416 100644
--- a/var/spack/repos/builtin/packages/g4incl/package.py
+++ b/var/spack/repos/builtin/packages/g4incl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,10 @@ from spack import *
class G4incl(Package):
"""Geant4 data for evaluated particle cross-sections on natural
composition of elements"""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.1.0.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.1.0.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
@@ -31,4 +33,4 @@ class G4incl(Package):
def url_for_version(self, version):
"""Handle version string."""
- return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.%s.tar.gz" % version) \ No newline at end of file
+ return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.%s.tar.gz" % version)
diff --git a/var/spack/repos/builtin/packages/g4ndl/package.py b/var/spack/repos/builtin/packages/g4ndl/package.py
index 3eaad0f101..0e655fb875 100644
--- a/var/spack/repos/builtin/packages/g4ndl/package.py
+++ b/var/spack/repos/builtin/packages/g4ndl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,10 @@ from spack import *
class G4ndl(Package):
"""Geant4 Neutron data files with thermal cross sections """
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NDL.4.5.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4NDL.4.5.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
diff --git a/var/spack/repos/builtin/packages/g4neutronxs/package.py b/var/spack/repos/builtin/packages/g4neutronxs/package.py
index 41acc423a6..c083e3f9c6 100644
--- a/var/spack/repos/builtin/packages/g4neutronxs/package.py
+++ b/var/spack/repos/builtin/packages/g4neutronxs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,10 @@ from spack import *
class G4neutronxs(Package):
"""Geant4 data for evaluated neutron cross-sections on natural composition
of elements"""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NEUTRONXS.1.4.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4NEUTRONXS.1.4.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
diff --git a/var/spack/repos/builtin/packages/g4particlexs/package.py b/var/spack/repos/builtin/packages/g4particlexs/package.py
index e573025b64..982d5fdba4 100644
--- a/var/spack/repos/builtin/packages/g4particlexs/package.py
+++ b/var/spack/repos/builtin/packages/g4particlexs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,16 @@ from spack import *
class G4particlexs(Package):
"""Geant4 data for evaluated particle cross-sections on
natural composition of elements"""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.2.1.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.2.1.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added
+ version('3.1.1', sha256='66c17edd6cb6967375d0497add84c2201907a25e33db782ebc26051d38f2afda')
+ version('3.1', sha256='404da84ead165e5cccc0bb795222f6270c9bf491ef4a0fd65195128b27f0e9cd')
version('2.1', sha256='094d103372bbf8780d63a11632397e72d1191dc5027f9adabaf6a43025520b41')
version('1.1', sha256='100a11c9ed961152acfadcc9b583a9f649dda4e48ab314fcd4f333412ade9d62')
@@ -32,4 +36,4 @@ class G4particlexs(Package):
def url_for_version(self, version):
"""Handle version string."""
- return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.%s.tar.gz" % version) \ No newline at end of file
+ return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.%s.tar.gz" % version)
diff --git a/var/spack/repos/builtin/packages/g4photonevaporation/package.py b/var/spack/repos/builtin/packages/g4photonevaporation/package.py
index 93d7f82de4..8218c8e0d8 100644
--- a/var/spack/repos/builtin/packages/g4photonevaporation/package.py
+++ b/var/spack/repos/builtin/packages/g4photonevaporation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,15 @@ from spack import *
class G4photonevaporation(Package):
"""Geant4 data for photon evaporation"""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PhotonEvaporation.4.3.2.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4PhotonEvaporation.4.3.2.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added
+ version('5.7', sha256='761e42e56ffdde3d9839f9f9d8102607c6b4c0329151ee518206f4ee9e77e7e5')
version('5.5', sha256='5995dda126c18bd7f68861efde87b4af438c329ecbe849572031ceed8f5e76d7')
version('5.3', sha256='d47ababc8cbe548065ef644e9bd88266869e75e2f9e577ebc36bc55bf7a92ec8')
version('5.2', sha256='83607f8d36827b2a7fca19c9c336caffbebf61a359d0ef7cee44a8bcf3fc2d1f')
diff --git a/var/spack/repos/builtin/packages/g4pii/package.py b/var/spack/repos/builtin/packages/g4pii/package.py
index ea91b5b9c9..702361e0b7 100644
--- a/var/spack/repos/builtin/packages/g4pii/package.py
+++ b/var/spack/repos/builtin/packages/g4pii/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,10 @@ from spack import *
class G4pii(Package):
"""Geant4 data for shell ionisation cross-sections"""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
@@ -30,4 +32,4 @@ class G4pii(Package):
def url_for_version(self, version):
"""Handle version string."""
- return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz" % version)
+ return ("https://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz" % version)
diff --git a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py
index 6f34e89cea..44d648ba79 100644
--- a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py
+++ b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,15 @@ from spack import *
class G4radioactivedecay(Package):
"""Geant4 data files for radio-active decay hadronic processes"""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4RadioactiveDecay.5.1.1.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4RadioactiveDecay.5.1.1.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added
+ version('5.6', sha256='3886077c9c8e5a98783e6718e1c32567899eeb2dbb33e402d4476bc2fe4f0df1')
version('5.4', sha256='240779da7d13f5bf0db250f472298c3804513e8aca6cae301db97f5ccdcc4a61')
version('5.3', sha256='5c8992ac57ae56e66b064d3f5cdfe7c2fee76567520ad34a625bfb187119f8c1')
version('5.2', sha256='99c038d89d70281316be15c3c98a66c5d0ca01ef575127b6a094063003e2af5d')
diff --git a/var/spack/repos/builtin/packages/g4realsurface/package.py b/var/spack/repos/builtin/packages/g4realsurface/package.py
index dee32da8b9..3894d88d89 100644
--- a/var/spack/repos/builtin/packages/g4realsurface/package.py
+++ b/var/spack/repos/builtin/packages/g4realsurface/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,15 @@ from spack import *
class G4realsurface(Package):
"""Geant4 data for measured optical surface reflectance"""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/RealSurface.1.0.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/RealSurface.1.0.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
# Only versions relevant to Geant4 releases built by spack are added
+ version('2.2', sha256='9954dee0012f5331267f783690e912e72db5bf52ea9babecd12ea22282176820')
version('2.1.1', sha256='90481ff97a7c3fa792b7a2a21c9ed80a40e6be386e581a39950c844b2dd06f50')
version('2.1', sha256='2a287adbda1c0292571edeae2082a65b7f7bd6cf2bf088432d1d6f889426dcf3')
version('1.0', sha256='3e2d2506600d2780ed903f1f2681962e208039329347c58ba1916740679020b1')
diff --git a/var/spack/repos/builtin/packages/g4saiddata/package.py b/var/spack/repos/builtin/packages/g4saiddata/package.py
index 0091d09744..dc08f31020 100644
--- a/var/spack/repos/builtin/packages/g4saiddata/package.py
+++ b/var/spack/repos/builtin/packages/g4saiddata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,10 @@ from spack import *
class G4saiddata(Package):
"""Geant4 data from evaluated cross-sections in SAID data-base """
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4SAIDDATA.1.1.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4SAIDDATA.1.1.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
diff --git a/var/spack/repos/builtin/packages/g4tendl/package.py b/var/spack/repos/builtin/packages/g4tendl/package.py
index aac083f539..ff180c102f 100644
--- a/var/spack/repos/builtin/packages/g4tendl/package.py
+++ b/var/spack/repos/builtin/packages/g4tendl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,10 @@ from spack import *
class G4tendl(Package):
"""Geant4 data for incident particles [optional]"""
- homepage = "http://geant4.web.cern.ch"
- url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4TENDL.1.3.tar.gz"
+ homepage = "https://geant4.web.cern.ch"
+ url = "https://geant4-data.web.cern.ch/geant4-data/datasets/G4TENDL.1.3.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
diff --git a/var/spack/repos/builtin/packages/gamess-ri-mp2-miniapp/package.py b/var/spack/repos/builtin/packages/gamess-ri-mp2-miniapp/package.py
index bff82af2cb..451d64e056 100644
--- a/var/spack/repos/builtin/packages/gamess-ri-mp2-miniapp/package.py
+++ b/var/spack/repos/builtin/packages/gamess-ri-mp2-miniapp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gams/package.py b/var/spack/repos/builtin/packages/gams/package.py
index e7e652f381..e6025805e5 100644
--- a/var/spack/repos/builtin/packages/gams/package.py
+++ b/var/spack/repos/builtin/packages/gams/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Gams(Package):
"""The General Algebraic Modeling System is a high-level modeling system
diff --git a/var/spack/repos/builtin/packages/ganglia/package.py b/var/spack/repos/builtin/packages/ganglia/package.py
index ffccc3c14c..1c70084c5b 100644
--- a/var/spack/repos/builtin/packages/ganglia/package.py
+++ b/var/spack/repos/builtin/packages/ganglia/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Ganglia(AutotoolsPackage):
nodes in size."""
homepage = "http://ganglia.sourceforge.net/"
- url = "http://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz"
+ url = "https://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz"
list_url = "http://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core"
list_depth = 1
diff --git a/var/spack/repos/builtin/packages/gapbs/package.py b/var/spack/repos/builtin/packages/gapbs/package.py
index c992a6eed0..4314d837eb 100644
--- a/var/spack/repos/builtin/packages/gapbs/package.py
+++ b/var/spack/repos/builtin/packages/gapbs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gapcloser/package.py b/var/spack/repos/builtin/packages/gapcloser/package.py
index e8c060c260..5e7e5c6467 100644
--- a/var/spack/repos/builtin/packages/gapcloser/package.py
+++ b/var/spack/repos/builtin/packages/gapcloser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gapfiller/package.py b/var/spack/repos/builtin/packages/gapfiller/package.py
index c2fa5b025e..50d5ac9624 100644
--- a/var/spack/repos/builtin/packages/gapfiller/package.py
+++ b/var/spack/repos/builtin/packages/gapfiller/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+import os
+
+from spack import *
class Gapfiller(Package):
@@ -16,7 +17,7 @@ class Gapfiller(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://www.baseclear.com/genomics/bioinformatics/basetools/gapfiller"
manual_download = True
diff --git a/var/spack/repos/builtin/packages/garfieldpp/package.py b/var/spack/repos/builtin/packages/garfieldpp/package.py
new file mode 100644
index 0000000000..1d5905345b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/garfieldpp/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Garfieldpp(CMakePackage):
+ """Garfield++ is a toolkit for the detailed simulation of particle
+ detectors based on ionisation measurement in gases and semiconductors. """
+
+ homepage = "https://garfieldpp.web.cern.ch/garfieldpp/"
+ url = "https://gitlab.cern.ch/garfield/garfieldpp/-/archive/4.0/garfieldpp-4.0.tar.gz"
+ git = "https://gitlab.cern.ch/garfield/garfieldpp.git"
+
+ tags = ['hep']
+
+ maintainers = ['mirguest']
+
+ version('master', branch='master')
+ version('4.0', sha256='82bc1f0395213bd30a7cd854426e6757d0b4155e99ffd4405355c9648fa5ada3')
+ version('3.0', sha256='c1282427a784658bc38b71c8e8cfc8c9f5202b185f0854d85f7c9c5a747c5406')
+
+ depends_on('root')
diff --git a/var/spack/repos/builtin/packages/gasnet/package.py b/var/spack/repos/builtin/packages/gasnet/package.py
index 8ead7c3796..0b7f9df506 100644
--- a/var/spack/repos/builtin/packages/gasnet/package.py
+++ b/var/spack/repos/builtin/packages/gasnet/package.py
@@ -1,101 +1,142 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
-class Gasnet(AutotoolsPackage):
- """GASNet is a language-independent, low-level networking layer
- that provides network-independent, high-performance communication
- primitives tailored for implementing parallel global address space
- SPMD languages and libraries such as UPC, Co-Array Fortran, SHMEM,
- Cray Chapel, and Titanium.
+class Gasnet(Package):
+ """GASNet is a language-independent, networking middleware layer that
+ provides network-independent, high-performance communication primitives
+ including Remote Memory Access (RMA) and Active Messages (AM). It has been
+ used to implement parallel programming models and libraries such as UPC,
+ UPC++, Co-Array Fortran, Legion, Chapel, and many others. The interface is
+ primarily intended as a compilation target and for use by runtime library
+ writers (as opposed to end users), and the primary goals are high
+ performance, interface portability, and expressiveness.
+
+ ***NOTICE***: The GASNet library built by this Spack package is ONLY intended for
+ unit-testing purposes, and is generally UNSUITABLE FOR PRODUCTION USE.
+ The RECOMMENDED way to build GASNet is as an embedded library as configured
+ by the higher-level client runtime package (UPC++, Legion, etc), including
+ system-specific configuration.
"""
homepage = "https://gasnet.lbl.gov"
- url = "https://gasnet.lbl.gov/EX/GASNet-2020.3.0.tar.gz"
-
- version('2020.3.0', sha256='019eb2d2284856e6fabe6c8c0061c874f10e95fa0265245f227fd3497f1bb274')
- version('2019.9.0', sha256='117f5fdb16e53d0fa8a47a1e28cccab1d8020ed4f6e50163d985dc90226aaa2c')
- version('2019.6.0', sha256='839ba115bfb48083c66b4c1c27703d73063b75d2f1e0501d5eab2ad7f0f776c8')
- version('2019.3.2', sha256='9e2175047879f1e8c7c4b0a9db3c2cd20c978371cd7f209cf669d402119b6fdb')
- version('2019.3.0', sha256='97fe19bb5ab32d14a96d2dd19d0f03048f68bb20ca83abe0c00cdab40e86eba5')
- version('1.32.0', sha256='42e4774b3bbc7c142f77c41b6ce86b594f579073f46c31f47f424c7e31ee1511')
- version('1.30.0', sha256='b5d8c98c53174a98a41efb4ec9dedb62c0a9e8fa111bb6460cd4493beb80d497')
- version('1.28.2', sha256='7903fd8ebdd03bcda20a66e3fcedef2f8b384324591aa91b8370f3360f6384eb')
- version('1.28.0', sha256='a7999fbaa1f220c2eb9657279c7e7cccd1b21865d5383c9a5685cfe05a0702bc')
- version('1.24.0', sha256='76b4d897d5e2261ef83d0885c192e8ac039e32cb2464f11eb64eb3f9f2df38c0')
-
- variant('mpi', default=True, description="Support MPI")
- variant('ibv', default=False, description="Support InfiniBand")
- variant('udp', default=False, description="Support UDP")
- variant('aligned-segments', default=False,
- description="Requirement to achieve aligned VM segments")
- variant('pshm', default=True,
- description="Support inter-process shared memory support")
- variant('segment-mmap-max', default='16GB',
- description="Upper bound for mmap-based GASNet segments")
-
- conflicts('+aligned-segments', when='+pshm')
-
- depends_on('mpi', when='+mpi')
-
- def url_for_version(self, version):
- url = "https://gasnet.lbl.gov/"
- if version >= Version('2019'):
- url += "EX/GASNet-{0}.tar.gz".format(version)
- else:
- url += "download/GASNet-{0}.tar.gz".format(version)
-
- return url
-
- def configure_args(self):
- args = [
- # TODO: factor IB suport out into architecture description.
- '--enable-par',
- '--enable-mpi-compat',
- '--enable-segment-fast',
- '--disable-parsync',
- '--with-segment-mmap-max=%s '
- % (self.spec.variants['segment-mmap-max'].value),
- # for consumers with shared libs
- "CC=%s %s" % (spack_cc, self.compiler.cc_pic_flag),
- "CXX=%s %s" % (spack_cxx, self.compiler.cxx_pic_flag),
- ]
-
- if '+aligned-segments' in self.spec:
- args.append('--enable-aligned-segments')
- else:
- args.append('--disable-aligned-segments')
-
- if '+pshm' in self.spec:
- args.append('--enable-pshm')
- else:
- args.append('--disable-pshm')
-
- if '+mpi' in self.spec:
- args.extend(['--enable-mpi',
- '--disable-udp',
- '--disable-ibv',
- '--disable-seq',
- 'MPI_CC=%s %s'
- % (self.spec['mpi'].mpicc, self.compiler.cc_pic_flag)])
-
- if '+ibv' in self.spec:
- args.extend(['--enable-ibv',
- '--with-ibv-max-hcas=1',
- '--enable-pthreads',
- '--disable-udp',
- '--disable-mpi',
- '--disable-seq',
- '--disable-smp',
- '--disable-portals'])
-
- if '+udp' in self.spec:
- args.extend(['--enable-udp',
- '--disable-ibv',
- '--disable-mpi',
- '--disable-seq'])
-
- return args
+ url = "https://gasnet.lbl.gov/EX/GASNet-2021.3.0.tar.gz"
+ git = "https://bitbucket.org/berkeleylab/gasnet.git"
+
+ maintainers = ['PHHargrove', 'bonachea']
+
+ version('develop', branch='develop')
+ version('main', branch='stable')
+ version('master', branch='master')
+
+ version('2021.3.0', sha256='8a40fb3fa8bacc3922cd4d45217816fcb60100357ab97fb622a245567ea31747')
+ version('2020.10.0', sha256='ed17baf7fce90499b539857ee37b3eea961aa475cffbde77e4c607a34ece06a0')
+ version('2020.3.0', sha256='019eb2d2284856e6fabe6c8c0061c874f10e95fa0265245f227fd3497f1bb274')
+ version('2019.9.0', sha256='117f5fdb16e53d0fa8a47a1e28cccab1d8020ed4f6e50163d985dc90226aaa2c')
+ # Do NOT add older versions here.
+ # GASNet-EX releases over 2 years old are not supported.
+
+ # The optional network backends:
+ variant('conduits',
+ values=any_combination_of('smp', 'mpi', 'ibv', 'udp').with_default('smp'),
+ description="The hardware-dependent network backends to enable.\n" +
+ "(smp) = SMP conduit for single-node operation ;\n" +
+ "(ibv) = Native InfiniBand verbs conduit ;\n" +
+ "(udp) = Portable UDP conduit, for Ethernet networks ;\n" +
+ "(mpi) = Low-performance/portable MPI conduit ;\n" +
+ "For detailed recommendations, consult https://gasnet.lbl.gov")
+
+ variant('debug', default=False, description="Enable library debugging mode")
+
+ depends_on('mpi', when='conduits=mpi')
+
+ depends_on('autoconf@2.69', type='build', when='@master:')
+ depends_on('automake@1.16:', type='build', when='@master:')
+
+ def install(self, spec, prefix):
+ if spec.satisfies('@master:'):
+ bootstrapsh = Executable("./Bootstrap")
+ bootstrapsh()
+
+ # The GASNet-EX library has a highly multi-dimensional configure space,
+ # to accomodate the varying behavioral requirements of each client runtime.
+ # The library's ABI/link compatibility is strongly dependent on these
+ # client-specific build-time settings, and that variability is deliberately NOT
+ # encoded in the variants of this package. The recommended way to build/deploy
+ # GASNet is as an EMBEDDED library within the build of the client package
+ # (eg. Berkeley UPC, UPC++, Legion, etc), some of which provide build-time
+ # selection of the GASNet library sources. This spack package provides
+ # the GASNet-EX sources, for use by appropriate client packages.
+ install_tree('.', prefix + "/src")
+
+ # Library build is provided for unit-testing purposes only (see notice above)
+ if 'conduits=none' not in spec:
+ options = ["--prefix=%s" % prefix]
+
+ if '+debug' in spec:
+ options.append("--enable-debug")
+
+ if 'conduits=mpi' in spec:
+ options.append("--enable-mpi-compat")
+ else:
+ options.append("--disable-mpi-compat")
+
+ options.append("--disable-auto-conduit-detect")
+ for c in spec.variants['conduits'].value:
+ options.append("--enable-" + c)
+
+ configure(*options)
+ make()
+ make('install')
+
+ for c in spec.variants['conduits'].value:
+ testdir = join_path(self.prefix.tests, c)
+ mkdirp(testdir)
+ make('-C', c + '-conduit', 'testgasnet-par')
+ install(c + "-conduit/testgasnet", testdir)
+ make('-C', c + '-conduit', 'testtools-par')
+ install(c + "-conduit/testtools", self.prefix.tests)
+
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
+ def test_install(self):
+ if 'conduits=smp' in self.spec:
+ make('-C', 'smp-conduit', 'run-tests')
+ if 'conduits=none' not in self.spec:
+ self.run_test(join_path(self.prefix.tests, 'testtools'),
+ expected=['Done.'], status=0,
+ installed=True, purpose="Running testtools")
+
+ def test(self):
+ if 'conduits=none' in self.spec:
+ spack.main.send_warning_to_tty("No conduit libraries built -- SKIPPED")
+ return
+
+ ranks = '4'
+ spawner = {
+ 'smp': ['env', 'GASNET_PSHM_NODES=' + ranks],
+ 'mpi': [join_path(self.prefix.bin, 'gasnetrun_mpi'), '-n', ranks],
+ 'ibv': [join_path(self.prefix.bin, 'gasnetrun_ibv'), '-n', ranks],
+ 'udp': [join_path(self.prefix.bin, 'amudprun'), '-spawn', 'L', '-np', ranks]
+ }
+
+ os.environ['GASNET_VERBOSEENV'] = '1' # include diagnostic info
+ if 'GASNET_SSH_SERVERS' not in os.environ:
+ os.environ['GASNET_SSH_SERVERS'] = "localhost " * 4
+
+ self.run_test(join_path(self.prefix.tests, 'testtools'),
+ expected=['Done.'], status=0,
+ installed=True, purpose="Running testtools")
+
+ for c in self.spec.variants['conduits'].value:
+ os.environ['GASNET_SUPERNODE_MAXSIZE'] = '0' if (c == 'smp') else '1'
+ test = join_path(self.prefix.tests, c, 'testgasnet')
+ self.run_test(spawner[c][0], spawner[c][1:] + [test],
+ expected=['done.'], status=0,
+ installed=(c != 'smp'),
+ purpose="Running %s-conduit/testgasnet" % c)
diff --git a/var/spack/repos/builtin/packages/gate/package.py b/var/spack/repos/builtin/packages/gate/package.py
index 741d472f80..c7e7a83a7b 100644
--- a/var/spack/repos/builtin/packages/gate/package.py
+++ b/var/spack/repos/builtin/packages/gate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -37,7 +37,7 @@ class Gate(CMakePackage):
values=('SGE', 'condor', 'openPBS', 'openmosix', 'slurm', 'xgrid'),
multi=False)
- depends_on('geant4~threads') # Gate needs a non-threaded geant4
+ depends_on('geant4@:10.6~threads') # Gate needs a non-threaded geant4
depends_on('root')
depends_on('itk+rtk', when='+rtk')
@@ -49,9 +49,15 @@ class Gate(CMakePackage):
args = []
if '+rtk' in self.spec:
- args.append('-DGATE_USE_RTK=ON')
+ args.extend([
+ '-DGATE_USE_ITK=ON',
+ '-DGATE_USE_RTK=ON',
+ ])
else:
- args.append('-DGATE_USE_RTK=OFF')
+ args.extend([
+ '-DGATE_USE_ITK=OFF',
+ '-DGATE_USE_RTK=OFF',
+ ])
return args
diff --git a/var/spack/repos/builtin/packages/gatepet2stir/package.py b/var/spack/repos/builtin/packages/gatepet2stir/package.py
index f13cdca589..4c956a1f3d 100644
--- a/var/spack/repos/builtin/packages/gatepet2stir/package.py
+++ b/var/spack/repos/builtin/packages/gatepet2stir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gatetools/package.py b/var/spack/repos/builtin/packages/gatetools/package.py
new file mode 100644
index 0000000000..5d85d37a28
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gatetools/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2021 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 Gatetools(PythonPackage):
+ """Python tools for GATE, see https://github.com/OpenGATE/Gate"""
+
+ homepage = "https://github.com/OpenGATE/GateTools"
+ pypi = "gatetools/gatetools-0.9.14.tar.gz"
+
+ maintainers = ['glennpj']
+
+ version('0.9.14', sha256='78fe864bb52fd4c6aeeee90d8f6c1bc5406ce02ac6f48712379efac606b5c006')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-click', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-pydicom', type=('build', 'run'))
+ depends_on('py-tqdm', type=('build', 'run'))
+ depends_on('py-colored', type=('build', 'run'))
+ depends_on('py-itk@5.1.0:', type=('build', 'run'))
+ depends_on('py-uproot3', type=('build', 'run'))
+ depends_on('py-wget', type=('build', 'run'))
+ depends_on('gate+rtk', type='run')
+
+ # The readme.md file is not in the distribution, so fake it.
+ @run_before('build')
+ def readme(self):
+ touch('readme.md')
diff --git a/var/spack/repos/builtin/packages/gatk/package.py b/var/spack/repos/builtin/packages/gatk/package.py
index 7c61c238d9..5195d116dc 100644
--- a/var/spack/repos/builtin/packages/gatk/package.py
+++ b/var/spack/repos/builtin/packages/gatk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,86 +12,45 @@ class Gatk(Package):
Variant Discovery in High-Throughput Sequencing Data
"""
- homepage = "https://software.broadinstitute.org/gatk/"
- url = "https://github.com/broadinstitute/gatk/releases/download/4.1.0.0/gatk-4.1.0.0.zip"
+ homepage = "https://gatk.broadinstitute.org/hc/en-us"
+ url = "https://github.com/broadinstitute/gatk/releases/download/4.2.2.0/gatk-4.2.2.0.zip"
list_url = "https://github.com/broadinstitute/gatk/releases"
- version(
- "4.1.8.1",
- sha256="42e6de5059232df1ad5785c68c39a53dc1b54afe7bb086d0129f4dc95fb182bc",
- )
- version(
- "4.1.8.0",
- sha256="3ce1c2a15c44d0cfc9b2c26111f4518c215a5f9314072b4eb61f07ab5d01eef6",
- )
- version(
- "4.1.7.0",
- sha256="1ed6f7c3194563a16c53b66e64d1b16d3f5e919d057d9e60f0ae6570eb0882e3",
- )
- version(
- "4.1.6.0",
- sha256="1a8a0256693c0e1fb83d87b6da4bad4a182bfc2a762394650b627a882694c306",
- )
- version(
- "4.1.5.0",
- sha256="6fc152c2cae0cc54c7c4cfdfd865a64f7054a820f7d02ca2549511af1dd9882b",
- )
- version(
- "4.1.4.1",
- sha256="21ae694cfc8b7447381ad5ce62ed4af22e53a228b12495bdcca7df0c73b09cea",
- )
- version(
- "4.1.4.0",
- sha256="ae54a2b938f704e15ea03d1822b4ce80d9a02108dc3a2b482d80b93edae3d492",
- )
- version(
- "4.1.3.0",
- sha256="56fd4f03b15a8a01eaa4629f62e3ab15e4d4b957c787efd2d5629b2658c3df0a",
- )
- version(
- "4.1.2.0",
- sha256="ffc5f9b3d4b35772ee5dac3060b59dc657f30e830745160671d84d732c30dc65",
- )
- version(
- "4.1.1.0",
- sha256="0d997aaf5c633643c07f0e5f74d0e20364a0f1304b04355bc6e073c65fab6554",
- )
- version(
- "4.1.0.0",
- sha256="148aa061328d922a570d0120d88f27e61e5da877f542206f4d77f2d788b7d21d",
- )
- version(
- "4.0.12.0",
- sha256="733134303f4961dec589247ff006612b7a94171fab8913c5d44c836aa086865f",
- )
- version(
- "4.0.11.0",
- sha256="5ee23159be7c65051335ac155444c6a49c4d8e3515d4227646c0686819934536",
- )
- version(
- "4.0.8.1",
- sha256="e4bb082d8c8826d4f8bc8c2f83811d0e81e5088b99099d3396d284f82fbf28c9",
- )
- version(
- "4.0.4.0",
- sha256="801bbb181c275cfabc96dc0cb21f3f901634cec11efde9ba9c8b91e2834feef4",
- )
- version(
- "3.8-1",
- sha256="a0829534d2d0ca3ebfbd3b524a9b50427ff238e0db400d6e9e479242d98cbe5c",
- extension="tar.bz2",
- url="https://software.broadinstitute.org/gatk/download/auth?package=GATK-archive&version=3.8-1-0-gf15c1c3ef",
- )
- version(
- "3.8-0",
- sha256="d1017b851f0cc6442b75ac88dd438e58203fa3ef1d1c38eb280071ae3803b9f1",
- extension="tar.gz",
- url="https://software.broadinstitute.org/gatk/download/auth?package=GATK",
- )
+ version('4.2.2.0', sha256='ddd902441d1874493796566159288e9df178714ac18216ba05092136db1497fd')
+ version('4.1.8.1', sha256="42e6de5059232df1ad5785c68c39a53dc1b54afe7bb086d0129f4dc95fb182bc")
+ version('4.1.8.0', sha256="3ce1c2a15c44d0cfc9b2c26111f4518c215a5f9314072b4eb61f07ab5d01eef6")
+ version('4.1.7.0', sha256="1ed6f7c3194563a16c53b66e64d1b16d3f5e919d057d9e60f0ae6570eb0882e3")
+ version('4.1.6.0', sha256="1a8a0256693c0e1fb83d87b6da4bad4a182bfc2a762394650b627a882694c306")
+ version('4.1.5.0', sha256="6fc152c2cae0cc54c7c4cfdfd865a64f7054a820f7d02ca2549511af1dd9882b")
+ version('4.1.4.1', sha256="21ae694cfc8b7447381ad5ce62ed4af22e53a228b12495bdcca7df0c73b09cea")
+ version('4.1.4.0', sha256="ae54a2b938f704e15ea03d1822b4ce80d9a02108dc3a2b482d80b93edae3d492")
+ version('4.1.3.0', sha256="56fd4f03b15a8a01eaa4629f62e3ab15e4d4b957c787efd2d5629b2658c3df0a")
+ version('4.1.2.0', sha256="ffc5f9b3d4b35772ee5dac3060b59dc657f30e830745160671d84d732c30dc65")
+ version('4.1.1.0', sha256="0d997aaf5c633643c07f0e5f74d0e20364a0f1304b04355bc6e073c65fab6554")
+ version('4.1.0.0', sha256="148aa061328d922a570d0120d88f27e61e5da877f542206f4d77f2d788b7d21d")
+ version('4.0.12.0', sha256="733134303f4961dec589247ff006612b7a94171fab8913c5d44c836aa086865f")
+ version('4.0.11.0', sha256="5ee23159be7c65051335ac155444c6a49c4d8e3515d4227646c0686819934536")
+ version('4.0.8.1', sha256="e4bb082d8c8826d4f8bc8c2f83811d0e81e5088b99099d3396d284f82fbf28c9")
+ version('4.0.4.0', sha256="801bbb181c275cfabc96dc0cb21f3f901634cec11efde9ba9c8b91e2834feef4")
+ version('3.8.1', sha256='a0829534d2d0ca3ebfbd3b524a9b50427ff238e0db400d6e9e479242d98cbe5c', extension="tar.bz2",
+ url='https://storage.googleapis.com/gatk-software/package-archive/gatk/GenomeAnalysisTK-3.8-1-0-gf15c1c3ef.tar.bz2')
+ version('3.8.0', sha256="d1017b851f0cc6442b75ac88dd438e58203fa3ef1d1c38eb280071ae3803b9f1", extension="tar.bz2",
+ url='https://storage.googleapis.com/gatk-software/package-archive/gatk/GenomeAnalysisTK-3.8-0-ge9d806836.tar.bz2')
+
+ # Make r a variant. According to the gatk docs it is not essential and not
+ # tested.
+ # https://github.com/broadinstitute/gatk#R
+ # Using R to generate plots
+ # Certain GATK tools may optionally generate plots using the R installation
+ # provided within the conda environment. If you are uninterested in plotting,
+ # R is still required by several of the unit tests. Plotting is currently
+ # untested and should be viewed as a convenience rather than a primary
+ # output.
+ variant('r', default=False, description='Use R for plotting')
depends_on("java@8", type="run")
depends_on("python@2.6:2.8,3.6:", type="run", when="@4.0:")
- depends_on("r@3.2:", type="run", when="@4.0:")
+ depends_on("r@3.2:", type="run", when="@4.0: +r")
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/gaudi/package.py b/var/spack/repos/builtin/packages/gaudi/package.py
index 2062cf647f..52e099fc40 100644
--- a/var/spack/repos/builtin/packages/gaudi/package.py
+++ b/var/spack/repos/builtin/packages/gaudi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,11 +9,14 @@ from spack import *
class Gaudi(CMakePackage):
"""An experiment-independent HEP event data processing framework"""
- homepage = "http://gaudi.web.cern.ch/gaudi/"
+ homepage = "https://gaudi.web.cern.ch/gaudi/"
git = "https://gitlab.cern.ch/gaudi/Gaudi.git"
url = "https://gitlab.cern.ch/gaudi/Gaudi/-/archive/v33r1/Gaudi-v33r1.tar.gz"
+ tags = ['hep']
+
version('master', branch='master')
+ version('36.0', sha256='8a0458cef5b616532f9db7cca9fa0e892e602b64c9e93dc0cc6d972e03034830')
version('35.0', sha256='c01b822f9592a7bf875b9997cbeb3c94dea97cb13d523c12649dbbf5d69b5fa6')
version('34.0', sha256='28fc4abb5a6b08da5a6b1300451c7e8487f918b055939877219d454abf7668ae')
version('33.2', sha256='26aaf9c4ff237a60ec79af9bd18ad249fc91c16e297ba77e28e4a256123db6e5')
@@ -46,14 +49,14 @@ class Gaudi(CMakePackage):
depends_on('cppgsl')
depends_on('fmt', when='@33.2:')
depends_on('intel-tbb')
- depends_on('libuuid')
+ depends_on('uuid')
depends_on('nlohmann-json', when="@35.0:")
depends_on('python', type=('build', 'run'))
depends_on('python@:3.7.99', when='@32.2:34.99', type=('build', 'run'))
depends_on('python@:2.99.99', when='@:32.1', type=('build', 'run'))
depends_on('py-setuptools@:45.99.99', when='^python@:2.7.99', type='build')
depends_on('py-six', type=('build', 'run'))
- depends_on('py-xenv@1:', type=('build', 'run'))
+ depends_on('py-xenv@1:', when='@:34.9', type=('build', 'run'))
depends_on('range-v3')
depends_on('root +python +root7 +ssl +tbb +threads')
depends_on('zlib')
@@ -88,13 +91,14 @@ class Gaudi(CMakePackage):
args = [
self.define_from_variant("BUILD_TESTING", "optional"),
self.define_from_variant("GAUDI_USE_AIDA", "optional"),
- self.define_from_variant("GAUDI_USE_CLHEP", "optional"),
self.define_from_variant("GAUDI_USE_CPPUNIT", "optional"),
self.define_from_variant("GAUDI_USE_HEPPDT", "optional"),
self.define_from_variant("GAUDI_USE_JEMALLOC", "optional"),
self.define_from_variant("GAUDI_USE_UNWIND", "optional"),
self.define_from_variant("GAUDI_USE_XERCESC", "optional"),
self.define_from_variant("GAUDI_USE_DOXYGEN", "docs"),
+ # needed to build core services like rndmsvc
+ self.define("GAUDI_USE_CLHEP", True),
self.define("GAUDI_USE_PYTHON_MAJOR",
str(self.spec['python'].version.up_to(1))),
# todo:
diff --git a/var/spack/repos/builtin/packages/gaussian-src/package.py b/var/spack/repos/builtin/packages/gaussian-src/package.py
index fe8f902df0..2a8a0559ec 100644
--- a/var/spack/repos/builtin/packages/gaussian-src/package.py
+++ b/var/spack/repos/builtin/packages/gaussian-src/package.py
@@ -1,11 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 llnl.util.tty as tty
-import os
import glob
+import os
+
+import llnl.util.tty as tty
+
+from spack import *
class GaussianSrc(Package):
diff --git a/var/spack/repos/builtin/packages/gaussian-view/package.py b/var/spack/repos/builtin/packages/gaussian-view/package.py
index 9f5b83edc5..d690419aa8 100644
--- a/var/spack/repos/builtin/packages/gaussian-view/package.py
+++ b/var/spack/repos/builtin/packages/gaussian-view/package.py
@@ -1,13 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 llnl.util.tty as tty
import os
+import llnl.util.tty as tty
+
+from spack import *
+
class GaussianView(Package):
"""GaussView 6 is the latest iteration of a graphical interface used with
@@ -44,6 +46,15 @@ class GaussianView(Package):
conflicts('+gaussian-src', when='@:6.0.99')
+ depends_on('libx11', type=('run', 'link'))
+ depends_on('libxext', type=('run', 'link'))
+ depends_on('gl@3:', type=('run', 'link'))
+ depends_on('glu@1.3', type=('run', 'link'))
+ depends_on('libxrender', type=('run', 'link'))
+ depends_on('libsm', type=('run', 'link'))
+ depends_on('libice', type=('run', 'link'))
+ depends_on('patchelf', type='build')
+
def url_for_version(self, version):
return "file://{0}/gv{1}-linux-x86_64.tbz".format(
os.getcwd(),
@@ -52,6 +63,18 @@ class GaussianView(Package):
def install(self, spec, prefix):
install_tree('.', prefix)
+ # make sure the executable finds and uses the Spack-provided
+ # libraries, otherwise the executable may or may not run depending
+ # on what is installed on the host
+ # the $ORIGIN prefix is required for the executable to find its
+ # own bundled shared libraries
+ patchelf = which('patchelf')
+ rpath = '$ORIGIN:$ORIGIN/lib' + ':'.join(
+ self.spec[dep].libs.directories[0]
+ for dep in ['libx11', 'libxext', 'libxrender', 'libice', 'libsm',
+ 'gl', 'glu'])
+ patchelf('--set-rpath', rpath, join_path(self.prefix, 'gview.exe'))
+
@run_after('install')
def caveats(self):
perm_script = 'spack_perms_fix.sh'
diff --git a/var/spack/repos/builtin/packages/gaussian/package.py b/var/spack/repos/builtin/packages/gaussian/package.py
index 7a1f7e6821..68edee6a26 100644
--- a/var/spack/repos/builtin/packages/gaussian/package.py
+++ b/var/spack/repos/builtin/packages/gaussian/package.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Gaussian(Package):
"""Gaussian is a computer program for computational chemistry"""
diff --git a/var/spack/repos/builtin/packages/gawk/package.py b/var/spack/repos/builtin/packages/gawk/package.py
index d567dfdcdc..776e229cde 100644
--- a/var/spack/repos/builtin/packages/gawk/package.py
+++ b/var/spack/repos/builtin/packages/gawk/package.py
@@ -1,9 +1,8 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 re
class Gawk(AutotoolsPackage, GNUMirrorPackage):
@@ -23,6 +22,11 @@ class Gawk(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/gawk/"
gnu_mirror_path = "gawk/gawk-4.1.4.tar.xz"
+ executables = ['^gawk$']
+
+ tags = ['build-tools']
+
+ version('5.1.0', sha256='cf5fea4ac5665fd5171af4716baab2effc76306a9572988d5ba1078f196382bd')
version('5.0.1', sha256='8e4e86f04ed789648b66f757329743a0d6dfb5294c3b91b756a474f1ce05a794')
version('4.1.4', sha256='53e184e2d0f90def9207860531802456322be091c7b48f23fdc79cda65adc266')
@@ -35,3 +39,9 @@ class Gawk(AutotoolsPackage, GNUMirrorPackage):
provides('awk')
build_directory = 'spack-build'
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ match = re.search(r'GNU Awk\s+([\d\.]+)', output)
+ return match.group(1) if match else None
diff --git a/var/spack/repos/builtin/packages/gblocks/package.py b/var/spack/repos/builtin/packages/gblocks/package.py
index 5b41ffc215..a4639247bf 100644
--- a/var/spack/repos/builtin/packages/gblocks/package.py
+++ b/var/spack/repos/builtin/packages/gblocks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
index 12c6569577..8e4a86e545 100644
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,10 @@ import re
import sys
import llnl.util.tty as tty
+
import spack.architecture
import spack.util.executable
-
-from spack.operating_systems.mac_os import macos_version, macos_sdk_path
+from spack.operating_systems.mac_os import macos_sdk_path, macos_version
class Gcc(AutotoolsPackage, GNUMirrorPackage):
@@ -22,20 +22,26 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
homepage = 'https://gcc.gnu.org'
gnu_mirror_path = 'gcc/gcc-9.2.0/gcc-9.2.0.tar.xz'
git = 'git://gcc.gnu.org/git/gcc.git'
- list_url = 'http://ftp.gnu.org/gnu/gcc/'
+ list_url = 'https://ftp.gnu.org/gnu/gcc/'
list_depth = 1
- maintainers = ['michaelkuhn']
+ maintainers = ['michaelkuhn', 'alalazo']
version('master', branch='master')
+ version('11.2.0', sha256='d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b')
+ version('11.1.0', sha256='4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf')
+
+ version('10.3.0', sha256='64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344')
version('10.2.0', sha256='b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c')
version('10.1.0', sha256='b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2')
+ version('9.4.0', sha256='c95da32f440378d7751dd95533186f7fc05ceb4fb65eb5b85234e6299eb9838e')
version('9.3.0', sha256='71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1')
version('9.2.0', sha256='ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206')
version('9.1.0', sha256='79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0')
+ version('8.5.0', sha256='d308841a511bb830a6100397b0042db24ce11f642dab6ea6ee44842e5325ed50')
version('8.4.0', sha256='e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4')
version('8.3.0', sha256='64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c')
version('8.2.0', sha256='196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080')
@@ -96,8 +102,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
default=False,
description='Target nvptx offloading to NVIDIA GPUs')
variant('bootstrap',
+ default=True,
+ description='Enable 3-stage bootstrap')
+ variant('graphite',
default=False,
- description='add --enable-bootstrap flag for stage3 build')
+ description='Enable Graphite loop optimizations (requires ISL)')
depends_on('flex', type='build', when='@master')
@@ -112,38 +121,24 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
# GCC 5.4 https://github.com/spack/spack/issues/6902#issuecomment-433072097
# GCC 7.3 https://github.com/spack/spack/issues/6902#issuecomment-433030376
# GCC 9+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86724
- depends_on('isl@0.14', when='@5.0:5.2')
- depends_on('isl@0.15', when='@5.3:5.9')
- depends_on('isl@0.15:0.18', when='@6:8.9')
- depends_on('isl@0.15:0.20', when='@9:9.9')
- depends_on('isl@0.15:', when='@10:')
+ with when('+graphite'):
+ depends_on('isl@0.14', when='@5.0:5.2')
+ depends_on('isl@0.15', when='@5.3:5.9')
+ depends_on('isl@0.15:0.18', when='@6:8.9')
+ depends_on('isl@0.15:0.20', when='@9:9.9')
+ depends_on('isl@0.15:', when='@10:')
+
depends_on('zlib', when='@6:')
depends_on('zstd', when='@10:')
depends_on('diffutils', type='build')
depends_on('iconv', when='platform=darwin')
depends_on('gnat', when='languages=ada')
- depends_on('binutils~libiberty', when='+binutils', type=('build', 'link', 'run'))
+ depends_on('binutils+gas+ld+plugins~libiberty', when='+binutils', type=('build', 'link', 'run'))
depends_on('zip', type='build', when='languages=java')
- depends_on('cuda@:10', when='+nvptx')
# The server is sometimes a bit slow to respond
timeout = {'timeout': 60}
- resource(name='newlib',
- url='ftp://sourceware.org/pub/newlib/newlib-3.0.0.20180831.tar.gz',
- sha256='3ad3664f227357df15ff34e954bfd9f501009a647667cd307bf0658aefd6eb5b',
- destination='newlibsource',
- when='+nvptx',
- fetch_options=timeout)
-
- # nvptx-tools does not seem to work as a dependency,
- # but does fine when the source is inside the gcc build directory
- # nvptx-tools doesn't have any releases, so grabbing the last commit
- resource(name='nvptx-tools',
- git='https://github.com/MentorEmbedded/nvptx-tools',
- commit='5f6f343a302d620b0868edab376c00b15741e39e',
- when='+nvptx')
-
# TODO: integrate these libraries.
# depends_on('ppl')
# depends_on('cloog')
@@ -156,14 +151,20 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
depends_on('guile@1.4.1:', type='test')
# See https://golang.org/doc/install/gccgo#Releases
- provides('golang', when='languages=go @4.6:')
- provides('golang@:1', when='languages=go @4.7.1:')
- provides('golang@:1.1', when='languages=go @4.8:')
- provides('golang@:1.1.2', when='languages=go @4.8.2:')
- provides('golang@:1.2', when='languages=go @4.9:')
- provides('golang@:1.4', when='languages=go @5:')
- provides('golang@:1.6.1', when='languages=go @6:')
- provides('golang@:1.8', when='languages=go @7:')
+ with when('languages=go'):
+ provides('golang', when='@4.6:')
+ provides('golang@:1', when='@4.7.1:')
+ provides('golang@:1.1', when='@4.8:')
+ provides('golang@:1.1.2', when='@4.8.2:')
+ provides('golang@:1.2', when='@4.9:')
+ provides('golang@:1.4', when='@5:')
+ provides('golang@:1.6.1', when='@6:')
+ provides('golang@:1.8', when='@7:')
+ # GCC 4.6 added support for the Go programming language.
+ # See https://gcc.gnu.org/gcc-4.6/changes.html
+ conflicts('@:4.5', msg='support for Go has been added in GCC 4.6')
+ # Go is not supported on macOS
+ conflicts('platform=darwin', msg='Go not supported on MacOS')
# For a list of valid languages for a specific release,
# run the following command in the GCC source directory:
@@ -183,13 +184,6 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
# but this is the first version that accepts 'c' as a valid language.
conflicts('languages=c', when='@:4.7')
- # GCC 4.6 added support for the Go programming language.
- # See https://gcc.gnu.org/gcc-4.6/changes.html
- conflicts('languages=go', when='@:4.5')
-
- # Go is not supported on macOS
- conflicts('languages=go', when='platform=darwin')
-
# The GCC Java frontend and associated libjava runtime library
# have been removed from GCC as of GCC 7.
# See https://gcc.gnu.org/gcc-7/changes.html
@@ -199,17 +193,34 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
# See https://gcc.gnu.org/gcc-5/changes.html
conflicts('languages=jit', when='@:4')
- # NVPTX offloading supported in 7 and later by limited languages
- conflicts('+nvptx', when='@:6', msg='NVPTX only supported in gcc 7 and above')
- conflicts('languages=ada', when='+nvptx')
- conflicts('languages=brig', when='+nvptx')
- conflicts('languages=go', when='+nvptx')
- conflicts('languages=java', when='+nvptx')
- conflicts('languages=jit', when='+nvptx')
- conflicts('languages=objc', when='+nvptx')
- conflicts('languages=obj-c++', when='+nvptx')
- # NVPTX build disables bootstrap
- conflicts('+binutils', when='+nvptx')
+ with when('+nvptx'):
+ depends_on('cuda')
+ resource(
+ name='newlib',
+ url='ftp://sourceware.org/pub/newlib/newlib-3.0.0.20180831.tar.gz',
+ sha256='3ad3664f227357df15ff34e954bfd9f501009a647667cd307bf0658aefd6eb5b',
+ destination='newlibsource',
+ fetch_options=timeout
+ )
+ # nvptx-tools does not seem to work as a dependency,
+ # but does fine when the source is inside the gcc build directory
+ # nvptx-tools doesn't have any releases, so grabbing the last commit
+ resource(
+ name='nvptx-tools',
+ git='https://github.com/MentorEmbedded/nvptx-tools',
+ commit='d0524fbdc86dfca068db5a21cc78ac255b335be5',
+ )
+ # NVPTX offloading supported in 7 and later by limited languages
+ conflicts('@:6', msg='NVPTX only supported in gcc 7 and above')
+ conflicts('languages=ada')
+ conflicts('languages=brig')
+ conflicts('languages=go')
+ conflicts('languages=java')
+ conflicts('languages=jit')
+ conflicts('languages=objc')
+ conflicts('languages=obj-c++')
+ # NVPTX build disables bootstrap
+ conflicts('+bootstrap')
# Binutils can't build ld on macOS
conflicts('+binutils', when='platform=darwin')
@@ -219,6 +230,9 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
conflicts('~binutils', when='@7: os=rhel6',
msg='New GCC cannot use system assembler on RHEL6')
+ # GCC 11 requires GCC 4.8 or later (https://gcc.gnu.org/gcc-11/changes.html)
+ conflicts('%gcc@:4.7', when='@11:')
+
if sys.platform == 'darwin':
# Fix parallel build on APFS filesystem
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
@@ -248,7 +262,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
patch('darwin/gcc-4.9.patch2', when='@4.9.0:4.9.3')
patch('piclibs.patch', when='+piclibs')
- patch('gcc-backport.patch', when='@4.7:4.9.2,5:5.3')
+ patch('gcc-backport.patch', when='@4.7:4.9.3,5:5.3')
# Backport libsanitizer patch for glibc >= 2.31 and 5.3.0 <= gcc <= 9.2.0
# https://bugs.gentoo.org/708346
@@ -257,6 +271,9 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
patch('glibc-2.31-libsanitizer-2.patch', when='@8.1.0:8.3.0,9.0.0:9.2.0')
patch('glibc-2.31-libsanitizer-2-gcc-6.patch', when='@5.3.0:5.5.0,6.1.0:6.5.0')
patch('glibc-2.31-libsanitizer-2-gcc-7.patch', when='@7.1.0:7.5.0')
+ patch('https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2b40941d23b1570cdd90083b58fa0f66aa58c86e', sha256='b48e48736062e64a6da7cbe7e21a6c1c89422d1f49ef547c73b479a3f3f4935f', when='@6.5.0,7.4.0:7.5.0,8.2.0:9.3.0')
+ patch('https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=745dae5923aba02982563481d75a21595df22ff8', sha256='eaa00c91e08a5e767f023911a49bc1b2d1a3eea38703b745ab260f90e8da41aa', when='@10.1.0:11.1.0')
+
# Older versions do not compile with newer versions of glibc
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712
patch('ucontext_t.patch', when='@4.9,5.1:5.4,6.1:6.4,7.1')
@@ -273,6 +290,9 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95005
patch('zstd.patch', when='@10')
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100102
+ patch('https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=fc930b3010bd0de899a3da3209eab20664ddb703', sha256='28c5ab3b564d83dd7e6e35b9c683141a4cb57ee886c5367e54a0828538b3c789', when='@10.3,11.1')
+
build_directory = 'spack-build'
@property
@@ -438,6 +458,19 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
'-I{0}'.format(spec['zlib'].prefix.include),
'gcc/Makefile.in')
+ if spec.satisfies('+nvptx'):
+ # backport of 383400a6078d upstream to allow support of cuda@11:
+ filter_file('#define ASM_SPEC "%{misa=*:-m %*}"',
+ '#define ASM_SPEC "%{misa=*:-m %*; :-m sm_35}"',
+ 'gcc/config/nvptx/nvptx.h',
+ string=True)
+ filter_file('Target RejectNegative ToLower Joined '
+ 'Enum(ptx_isa) Var(ptx_isa_option) Init(PTX_ISA_SM30)',
+ 'Target RejectNegative ToLower Joined '
+ 'Enum(ptx_isa) Var(ptx_isa_option) Init(PTX_ISA_SM35)',
+ 'gcc/config/nvptx/nvptx.opt',
+ string=True)
+
# https://gcc.gnu.org/install/configure.html
def configure_args(self):
spec = self.spec
@@ -460,7 +493,10 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
options.append('--with-system-zlib')
if 'zstd' in spec:
- options.append('--with-zstd={0}'.format(spec['zstd'].prefix))
+ options.append('--with-zstd-include={0}'.format(
+ spec['zstd'].headers.directories[0]))
+ options.append('--with-zstd-lib={0}'.format(
+ spec['zstd'].libs.directories[0]))
# Enabling language "jit" requires --enable-host-shared.
if 'languages=jit' in spec:
@@ -481,6 +517,10 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
options.extend([
'--enable-bootstrap',
])
+ else:
+ options.extend([
+ '--disable-bootstrap',
+ ])
# Configure include and lib directories explicitly for these
# dependencies since the short GCC option assumes that libraries
@@ -490,6 +530,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
# More info at: https://gcc.gnu.org/install/configure.html
for dep_str in ('mpfr', 'gmp', 'mpc', 'isl'):
if dep_str not in spec:
+ options.append('--without-{0}'.format(dep_str))
continue
dep_spec = spec[dep_str]
diff --git a/var/spack/repos/builtin/packages/gccmakedep/package.py b/var/spack/repos/builtin/packages/gccmakedep/package.py
index 1b8614af2d..0c7a0843ed 100644
--- a/var/spack/repos/builtin/packages/gccmakedep/package.py
+++ b/var/spack/repos/builtin/packages/gccmakedep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gccxml/package.py b/var/spack/repos/builtin/packages/gccxml/package.py
index a7a885bcd3..effc2ec279 100644
--- a/var/spack/repos/builtin/packages/gccxml/package.py
+++ b/var/spack/repos/builtin/packages/gccxml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Gccxml(CMakePackage):
"""gccxml dumps an XML description of C++ source code using an extension of
the GCC C++ compiler."""
- homepage = "http://gccxml.github.io"
+ homepage = "https://gccxml.github.io"
git = "https://github.com/gccxml/gccxml.git"
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/gchp/for_aarch64.patch b/var/spack/repos/builtin/packages/gchp/for_aarch64.patch
new file mode 100644
index 0000000000..53af837784
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gchp/for_aarch64.patch
@@ -0,0 +1,24 @@
+diff -uprN spack-src.org/ESMA_cmake/GNU.cmake spack-src/ESMA_cmake/GNU.cmake
+--- spack-src.org/ESMA_cmake/GNU.cmake 2021-02-25 11:28:42.856054566 +0900
++++ spack-src/ESMA_cmake/GNU.cmake 2021-02-25 10:38:06.556356960 +0900
+@@ -125,7 +125,7 @@ set (GEOS_Fortran_Debug_FPE_Flags "${com
+
+ # GEOS Release
+ # ------------
+-set (GEOS_Fortran_Release_Flags "${FOPT3} -march=westmere -mtune=generic -funroll-loops ${DEBINFO}")
++set (GEOS_Fortran_Release_Flags "${FOPT3} -funroll-loops ${DEBINFO}")
+ set (GEOS_Fortran_Release_FPE_Flags "${common_Fortran_fpe_flags}")
+
+ # GEOS Vectorize
+diff -uprN spack-src.org/src/GCHP_GridComp/HEMCO_GridComp/HEMCO/CMakeLists.txt spack-src/src/GCHP_GridComp/HEMCO_GridComp/HEMCO/CMakeLists.txt
+--- spack-src.org/src/GCHP_GridComp/HEMCO_GridComp/HEMCO/CMakeLists.txt 2021-02-25 11:33:57.897033867 +0900
++++ spack-src/src/GCHP_GridComp/HEMCO_GridComp/HEMCO/CMakeLists.txt 2021-02-25 11:22:06.224802880 +0900
+@@ -64,7 +64,7 @@ set(HEMCO_Fortran_FLAGS_DEBUG_Intel
+
+ set(HEMCO_Fortran_FLAGS_GNU
+ -cpp -w -std=legacy -fautomatic -fno-align-commons -fconvert=big-endian
+- -fno-range-check -mcmodel=medium -fbacktrace -g -DLINUX_GFORTRAN
++ -fno-range-check -mcmodel=small -fbacktrace -g -DLINUX_GFORTRAN
+ -ffree-line-length-none
+ CACHE STRING "HEMCO compiler flags for all build types with GNU compilers"
+ )
diff --git a/var/spack/repos/builtin/packages/gchp/package.py b/var/spack/repos/builtin/packages/gchp/package.py
new file mode 100644
index 0000000000..6b5e723536
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gchp/package.py
@@ -0,0 +1,64 @@
+# Copyright 2013-2021 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)
+
+import shutil
+
+from spack import *
+
+
+class Gchp(CMakePackage):
+ """GEOS-Chem High Performance model of atmospheric chemistry"""
+
+ homepage = "https://gchp.readthedocs.io/"
+ url = "https://github.com/geoschem/GCHP/archive/13.1.2.tar.gz"
+ git = "https://github.com/geoschem/GCHP.git"
+ maintainers = ['lizziel']
+
+ version('13.1.2', commit='106b8f783cafabd699e53beec3a4dd8aee45234b', submodules=True)
+ version('13.1.1', commit='a17361a78aceab947ca51aa1ecd3391beaa3fcb2', submodules=True)
+ version('13.1.0', commit='4aca45370738e48623e61e38b26d981d3e20be76', submodules=True)
+ version('13.0.2', commit='017ad7276a801ab7b3d6945ad24602eb9927cf01', submodules=True)
+ version('13.0.1', commit='f40a2476fda901eacf78c0972fdb6c20e5a06700', submodules=True)
+ version('13.0.0', commit='1f5a5c5630c5d066ff8306cbb8b83e267ca7c265', submodules=True)
+ version('dev', branch='dev', submodules=True)
+
+ patch('for_aarch64.patch', when='target=aarch64:')
+
+ depends_on('esmf@8.0.1', when='@13.0.0:')
+ depends_on('mpi@3')
+ depends_on('netcdf-fortran')
+ depends_on('cmake@3.13:')
+ depends_on('libfabric', when='+ofi')
+ depends_on('m4')
+
+ variant('omp', default=False, description="OpenMP parallelization")
+ variant('real8', default=True, description="REAL*8 precision")
+ variant('apm', default=False, description="APM Microphysics (Experimental)")
+ variant('rrtmg', default=False, description="RRTMG radiative transfer model")
+ variant('luo', default=False, description="Luo et al 2019 wet deposition scheme")
+ variant('tomas', default=False, description="TOMAS Microphysics (Experimental)")
+ variant('ofi', default=False, description="Build with Libfabric support")
+
+ def cmake_args(self):
+ args = [self.define("RUNDIR", self.prefix),
+ self.define_from_variant('OMP', 'omp'),
+ self.define_from_variant('USE_REAL8', 'real8'),
+ self.define_from_variant('APM', 'apm'),
+ self.define_from_variant('RRTMG', 'rrtmg'),
+ self.define_from_variant('LUO_WETDEP', 'luo'),
+ self.define_from_variant('TOMAS', 'tomas')]
+ return args
+
+ def install(self, spec, prefix):
+ super(Gchp, self).install(spec, prefix)
+ # Preserve source code in prefix for two reasons:
+ # 1. Run directory creation occurs independently of code compilation,
+ # possibly multiple times depending on user needs,
+ # and requires the preservation of some of the source code structure.
+ # 2. Run configuration is relatively complex and can result in error
+ # messages that point to specific modules / lines of the source code.
+ # Including source code thus facilitates runtime debugging.
+ shutil.move(self.stage.source_path,
+ join_path(prefix, 'source_code'))
diff --git a/var/spack/repos/builtin/packages/gconf/package.py b/var/spack/repos/builtin/packages/gconf/package.py
index dc4bb5f239..eaa70724c7 100644
--- a/var/spack/repos/builtin/packages/gconf/package.py
+++ b/var/spack/repos/builtin/packages/gconf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,16 @@ from spack import *
class Gconf(AutotoolsPackage):
- """GConf is a system for storing application preferences."""
+ """GConf is a system for storing application preferences.
- homepage = "https://projects.gnome.org/gconf/"
+ Note that this software is now deprecated in favor of moving to GSettings
+ and dconf with the GNOME 3 transition.
+ """
+
+ homepage = "https://en.wikipedia.org/wiki/GConf"
url = "http://ftp.gnome.org/pub/gnome/sources/GConf/3.2/GConf-3.2.6.tar.xz"
- version('3.2.6', sha256='1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e0cfa51a04d784c')
+ version('3.2.6', sha256='1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e0cfa51a04d784c', deprecated=True)
depends_on('pkgconfig', type='build')
depends_on('glib@2.14.0:')
diff --git a/var/spack/repos/builtin/packages/gcta/package.py b/var/spack/repos/builtin/packages/gcta/package.py
index 1736055f88..4220a8c926 100644
--- a/var/spack/repos/builtin/packages/gcta/package.py
+++ b/var/spack/repos/builtin/packages/gcta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Gcta(Package):
for many other analyses to better understand the genetic architecture of
complex traits. GCTA currently supports the following analyses."""
- homepage = "http://cnsgenomics.com/software/gcta/#Overview"
+ homepage = "https://cnsgenomics.com/software/gcta/#Overview"
url = "http://cnsgenomics.com/software/gcta/gcta_1.91.2beta.zip"
version('1.91.2beta_mac', 'ce0882ad35dd9474ffe40911da369274700af1ecb9916c0a355b7bad14850234')
diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py
index a6f1dfd909..5548b1e584 100644
--- a/var/spack/repos/builtin/packages/gdal/package.py
+++ b/var/spack/repos/builtin/packages/gdal/package.py
@@ -1,8 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+import sys
+
class Gdal(AutotoolsPackage):
"""GDAL (Geospatial Data Abstraction Library) is a translator library for
@@ -21,11 +24,12 @@ class Gdal(AutotoolsPackage):
maintainers = ['adamjstewart']
- import_modules = [
- 'osgeo', 'osgeo.gdal', 'osgeo.ogr', 'osgeo.osr',
- 'osgeo.gdal_array', 'osgeo.gdalconst'
- ]
-
+ version('3.3.2', sha256='630e34141cf398c3078d7d8f08bb44e804c65bbf09807b3610dcbfbc37115cc3')
+ version('3.3.1', sha256='48ab00b77d49f08cf66c60ccce55abb6455c3079f545e60c90ee7ce857bccb70')
+ version('3.3.0', sha256='190c8f4b56afc767f43836b2a5cd53cc52ee7fdc25eb78c6079c5a244e28efa7')
+ version('3.2.3', sha256='d9ec8458fe97fd02bf36379e7f63eaafce1005eeb60e329ed25bb2d2a17a796f')
+ version('3.2.2', sha256='a7e1e414e5c405af48982bf4724a3da64a05770254f2ce8affb5f58a7604ca57')
+ version('3.2.1', sha256='6c588b58fcb63ff3f288eb9f02d76791c0955ba9210d98c3abd879c770ae28ea')
version('3.2.0', sha256='b051f852600ffdf07e337a7f15673da23f9201a9dbb482bd513756a3e5a196a6')
version('3.1.4', sha256='7b82486f71c71cec61f9b237116212ce18ef6b90f068cbbf9f7de4fc50b576a8')
version('3.1.3', sha256='161cf55371a143826f1d76ce566db1f0a666496eeb4371aed78b1642f219d51d')
@@ -48,7 +52,7 @@ class Gdal(AutotoolsPackage):
version('2.3.0', sha256='6f75e49aa30de140525ccb58688667efe3a2d770576feb7fbc91023b7f552aa2')
version('2.1.2', sha256='b597f36bd29a2b4368998ddd32b28c8cdf3c8192237a81b99af83cc17d7fa374')
version('2.0.2', sha256='90f838853cc1c07e55893483faa7e923e4b4b1659c6bc9df3538366030a7e622')
- version('1.11.5', sha256='d4fdc3e987b9926545f0a514b4328cd733f2208442f8d03bde630fe1f7eff042')
+ version('1.11.5', sha256='d4fdc3e987b9926545f0a514b4328cd733f2208442f8d03bde630fe1f7eff042', deprecated=True)
variant('libtool', default=True, description='Use libtool to build the library')
variant('libz', default=True, description='Include libz support')
@@ -146,6 +150,10 @@ class Gdal(AutotoolsPackage):
depends_on('proj@:6', when='+proj @2.5:2.999')
depends_on('proj@6:', when='+proj @3:')
depends_on('perl', type=('build', 'run'), when='+perl')
+ # see gdal_version_and_min_supported_python_version
+ # in swig/python/osgeo/__init__.py
+ depends_on('python@3.6:', type=('build', 'link', 'run'), when='@3.3:+python')
+ depends_on('python@2.0:', type=('build', 'link', 'run'), when='@3.2:+python')
depends_on('python', type=('build', 'link', 'run'), when='+python')
# swig/python/setup.py
depends_on('py-setuptools', type='build', when='+python')
@@ -168,12 +176,28 @@ class Gdal(AutotoolsPackage):
conflicts('+mdb', when='~java', msg='MDB driver requires Java')
+ conflicts('+jasper', when='@3.5:', msg='JPEG2000 driver removed in GDAL 3.5')
+ conflicts('+perl', when='@3.5:', msg='Perl bindings removed in GDAL 3.5')
+
+ # https://github.com/OSGeo/gdal/issues/3782
+ patch('https://github.com/OSGeo/gdal/pull/3786.patch', when='@3.3.0', level=2,
+ sha256='5e14c530289bfa1257277357baa8d485f852ea480152fb150d152c85af8d01f8')
+
executables = ['^gdal-config$']
@classmethod
def determine_version(cls, exe):
return Executable(exe)('--version', output=str, error=str).rstrip()
+ @property
+ def import_modules(self):
+ modules = ['osgeo']
+ if self.spec.satisfies('@3.3:'):
+ modules.append('osgeo_utils')
+ else:
+ modules.append('osgeo.utils')
+ return modules
+
def setup_build_environment(self, env):
# Needed to install Python bindings to GDAL installation
# prefix instead of Python installation prefix.
@@ -187,6 +211,17 @@ class Gdal(AutotoolsPackage):
classpath = os.pathsep.join(class_paths)
env.prepend_path('CLASSPATH', classpath)
+ # `spack test run gdal+python` requires these for the Python bindings
+ # to find the correct libraries
+ libs = []
+ for dep in self.spec.dependencies(deptype='link'):
+ query = self.spec[dep.name]
+ libs.extend(query.libs.directories)
+ if sys.platform == 'darwin':
+ env.prepend_path('DYLD_FALLBACK_LIBRARY_PATH', ':'.join(libs))
+ else:
+ env.prepend_path('LD_LIBRARY_PATH', ':'.join(libs))
+
def patch(self):
if '+java platform=darwin' in self.spec:
filter_file('linux', 'darwin', 'swig/java/java.opt', string=True)
@@ -216,7 +251,7 @@ class Gdal(AutotoolsPackage):
else:
args.append('--disable-driver-grib')
else:
- args.append('--without-bsb')
+ args.append('--with-bsb=no')
if '+grib' in spec:
args.append('--with-grib=yes')
@@ -474,8 +509,6 @@ class Gdal(AutotoolsPackage):
'--with-dods-root=no',
'--with-spatialite=no',
'--with-idb=no',
- # https://trac.osgeo.org/gdal/wiki/Epsilon
- '--with-epsilon=no',
'--with-webp=no',
'--with-freexl=no',
'--with-pam=no',
@@ -483,6 +516,11 @@ class Gdal(AutotoolsPackage):
'--with-rasdaman=no',
])
+ # TODO: add packages for these dependencies (only for 3.2 and older)
+ if spec.satisfies('@:3.2'):
+ # https://trac.osgeo.org/gdal/wiki/Epsilon
+ args.append('--with-epsilon=no')
+
# TODO: add packages for these dependencies (only for 3.1 and older)
if spec.satisfies('@:3.1'):
# https://trac.osgeo.org/gdal/wiki/ArcSDE
@@ -554,15 +592,19 @@ class Gdal(AutotoolsPackage):
install('*.jar', prefix)
@run_after('install')
- @on_package_attributes(run_tests=True)
- def import_module_test(self):
- if '+python' in self.spec:
- with working_dir('spack-test', create=True):
- for module in self.import_modules:
- python('-c', 'import {0}'.format(module))
-
- @run_after('install')
def darwin_fix(self):
# The shared library is not installed correctly on Darwin; fix this
if 'platform=darwin' in self.spec:
fix_darwin_install_name(self.prefix.lib)
+
+ def test(self):
+ """Attempts to import modules of the installed package."""
+
+ if '+python' in self.spec:
+ # Make sure we are importing the installed modules,
+ # not the ones in the source directory
+ for module in self.import_modules:
+ self.run_test(self.spec['python'].command.path,
+ ['-c', 'import {0}'.format(module)],
+ purpose='checking import of {0}'.format(module),
+ work_dir='spack-test')
diff --git a/var/spack/repos/builtin/packages/gdb/gdb-libintl-10.patch b/var/spack/repos/builtin/packages/gdb/gdb-libintl-10.patch
new file mode 100644
index 0000000000..5d990d6305
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gdb/gdb-libintl-10.patch
@@ -0,0 +1,12 @@
+diff -Naur gdbserver/Makefile.in gdbserver/Makefile.in
+--- gdbserver/Makefile.in 2020-10-24 06:23:02.000000000 +0200
++++ gdbserver/Makefile.in 2021-02-15 13:41:31.732000000 +0100
+@@ -388,7 +388,7 @@
+ $(SILENCE) rm -f $(IPA_LIB)
+ $(ECHO_CXXLD) $(CC_LD) -shared -fPIC -Wl,--soname=$(IPA_LIB) \
+ -Wl,--no-undefined $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) \
+- -o $(IPA_LIB) ${IPA_OBJS} -ldl -pthread
++ -o $(IPA_LIB) ${IPA_OBJS} $(INTL) -ldl -pthread
+
+ # Put the proper machine-specific files first, so M-. on a machine
+ # specific routine gets the one for the correct machine.
diff --git a/var/spack/repos/builtin/packages/gdb/gdb-libintl-11.patch b/var/spack/repos/builtin/packages/gdb/gdb-libintl-11.patch
new file mode 100644
index 0000000000..0354dd6cc0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gdb/gdb-libintl-11.patch
@@ -0,0 +1,12 @@
+diff -Naur gdbserver/Makefile.in gdbserver/Makefile.in
+--- gdbserver/Makefile.in 2021-07-03 13:41:11.000000000 -0400
++++ gdbserver/Makefile.in 2021-09-13 14:53:13.402962333 -0400
+@@ -404,7 +404,7 @@
+ $(ECHO_CXXLD) $(CC_LD) -shared -fPIC -Wl,--soname=$(IPA_LIB) \
+ -Wl,--no-undefined $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) \
+ $(CXXFLAGS) \
+- -o $(IPA_LIB) ${IPA_OBJS} $(LIBIBERTY_FOR_SHLIB) -ldl -pthread
++ -o $(IPA_LIB) ${IPA_OBJS} $(INTL) $(LIBIBERTY_FOR_SHLIB) -ldl -pthread
+
+ # Put the proper machine-specific files first, so M-. on a machine
+ # specific routine gets the one for the correct machine.
diff --git a/var/spack/repos/builtin/packages/gdb/importlib.patch b/var/spack/repos/builtin/packages/gdb/importlib.patch
new file mode 100644
index 0000000000..e0f8663674
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gdb/importlib.patch
@@ -0,0 +1,18 @@
+diff --git a/gdb/python/lib/gdb/__init__.py b/gdb/python/lib/gdb/__init__.py
+index 84ec728ea21..9a0e9891cc5 100644
+--- a/gdb/python/lib/gdb/__init__.py
++++ b/gdb/python/lib/gdb/__init__.py
+@@ -18,8 +18,10 @@ import os
+ import sys
+ import _gdb
+
+-if sys.version_info[0] > 2:
+- # Python 3 moved "reload"
++# Python 3 moved "reload"
++if sys.version_info >= (3, 4):
++ from importlib import reload
++elif sys.version_info[0] > 2:
+ from imp import reload
+
+ from _gdb import *
+--
diff --git a/var/spack/repos/builtin/packages/gdb/package.py b/var/spack/repos/builtin/packages/gdb/package.py
index 90146da14e..7ef2f870cd 100644
--- a/var/spack/repos/builtin/packages/gdb/package.py
+++ b/var/spack/repos/builtin/packages/gdb/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -15,22 +17,27 @@ 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')
- version('8.2.1', sha256='0107985f1edb8dddef6cdd68a4f4e419f5fec0f488cc204f0b7d482c0c6c9282')
- version('8.2', sha256='847e4b65e5a7b872e86019dd59659029e2b06cae962e0ef345f169dcb4b851b8')
- version('8.1', sha256='e54a2322da050e4b00785370a282b9b8f0b25861ec7cfbbce0115e253eea910e')
- version('8.0.1', sha256='52017d33cab5b6a92455a1a904046d075357abf24153470178c0aadca2d479c5')
- version('8.0', sha256='8968a19e14e176ee026f0ca777657c43456514ad41bb2bc7273e8c4219555ac9')
+ maintainers = ['robertu94']
+
+ version('11.1', sha256='cc2903474e965a43d09c3b263952d48ced39dd22ce2d01968f3aa181335fcb9c')
+ version('10.2', sha256='b33ad58d687487a821ec8d878daab0f716be60d0936f2e3ac5cf08419ce70350')
+ version('10.1', sha256='f12f388b99e1408c01308c3f753313fafa45517740c81ab7ed0d511b13e2cf55')
+ version('9.2', sha256='38ef247d41ba7cc3f6f93a612a78bab9484de9accecbe3b0150a3c0391a3faf0')
+ version('9.1', sha256='fcda54d4f35bc53fb24b50009a71ca98410d71ff2620942e3c829a7f5d614252')
+ version('8.3.1', sha256='26ce655216cd03f4611518a7a1c31d80ec8e884c16715e9ba8b436822e51434b')
+ version('8.3', sha256='b2266ec592440d0eec18ee1790f8558b3b8a2845b76cc83a872e39b501ce8a28')
+ version('8.2.1', sha256='0107985f1edb8dddef6cdd68a4f4e419f5fec0f488cc204f0b7d482c0c6c9282')
+ version('8.2', sha256='847e4b65e5a7b872e86019dd59659029e2b06cae962e0ef345f169dcb4b851b8')
+ version('8.1', sha256='e54a2322da050e4b00785370a282b9b8f0b25861ec7cfbbce0115e253eea910e')
+ version('8.0.1', sha256='52017d33cab5b6a92455a1a904046d075357abf24153470178c0aadca2d479c5')
+ version('8.0', sha256='8968a19e14e176ee026f0ca777657c43456514ad41bb2bc7273e8c4219555ac9')
version('7.12.1', sha256='142057eacecfb929d52b561eb47a1103c7d504cec3f659dd8a5ae7bc378f7e77')
- version('7.11', sha256='9382f5534aa0754169e1e09b5f1a3b77d1fa8c59c1e57617e06af37cb29c669a')
+ version('7.11', sha256='9382f5534aa0754169e1e09b5f1a3b77d1fa8c59c1e57617e06af37cb29c669a')
version('7.10.1', sha256='ff14f8050e6484508c73cbfa63731e57901478490ca1672dc0b5e2b03f6af622')
- version('7.10', sha256='50690e6d6b7917a6544190ec9401eaafb555e3cef8981709ea9870296c383ce5')
- version('7.9.1', sha256='4994ad986726ac4128a6f1bd8020cd672e9a92aa76b80736563ef992992764ef')
- version('7.9', sha256='d282508cb7df0cb8b2cf659032ce1bede7b5725796e3ac90f3cd9d65844a65f2')
- version('7.8.2', sha256='fd9a9784ca24528aac8a4e6b8d7ae7e8cf0784e128cd67a185c986deaf6b9929')
+ version('7.10', sha256='50690e6d6b7917a6544190ec9401eaafb555e3cef8981709ea9870296c383ce5')
+ version('7.9.1', sha256='4994ad986726ac4128a6f1bd8020cd672e9a92aa76b80736563ef992992764ef')
+ version('7.9', sha256='d282508cb7df0cb8b2cf659032ce1bede7b5725796e3ac90f3cd9d65844a65f2')
+ version('7.8.2', sha256='fd9a9784ca24528aac8a4e6b8d7ae7e8cf0784e128cd67a185c986deaf6b9929')
variant('python', default=True, description='Compile with Python support')
variant('xz', default=True, description='Compile with lzma support')
@@ -41,11 +48,20 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage):
variant('ld', default=False, description='Enable ld')
variant('tui', default=False, description='Enable tui')
+ # Resolves the undefined references to libintl_gettext while linking gdbserver
+ # https://www.gnu.org/software/gettext/FAQ.html#integrating_undefined
+ patch('gdb-libintl-10.patch', level=0, when='@10.1:11.0')
+ patch('gdb-libintl-11.patch', level=0, when='@11.1:')
+
+ # Silence warnings about imp being deprecated on new python versions
+ # https://sourceware.org/pipermail/gdb-patches/2021-February/176622.html
+ patch('importlib.patch', when="@8.3.1:10.2 ^python@3.4:")
+
# Required dependency
depends_on('texinfo', type='build')
# Optional dependencies
- depends_on('python', when='+python')
+ depends_on('python+debug', when='+python', type=('build', 'link', 'run'))
depends_on('xz', when='+xz')
depends_on('source-highlight', when='+source-highlight')
depends_on('ncurses', when='+tui')
@@ -53,7 +69,10 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage):
build_directory = 'spack-build'
def configure_args(self):
- args = []
+ args = [
+ '--with-system-gdbinit={0}'.format(self.prefix.etc.gdbinit)
+ ]
+
if '+python' in self.spec:
args.append('--with-python')
args.append('LDFLAGS={0}'.format(
@@ -75,3 +94,12 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage):
args.append('--enable-tui')
return args
+
+ @run_after('install')
+ def gdbinit(self):
+ if '+python' in self.spec:
+ tool = self.spec['python'].command.path + '-gdb.py'
+ if os.path.exists(tool):
+ mkdir(self.prefix.etc)
+ with open(self.prefix.etc.gdbinit, 'w') as gdbinit:
+ gdbinit.write('add-auto-load-safe-path {0}\n'.format(tool))
diff --git a/var/spack/repos/builtin/packages/gdbm/macOS.patch b/var/spack/repos/builtin/packages/gdbm/macOS.patch
new file mode 100644
index 0000000000..28db955ffa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gdbm/macOS.patch
@@ -0,0 +1,14 @@
+--- a/src/gdbmshell.c 2021-09-02 07:39:55.000000000 -0500
++++ b/src/gdbmshell.c 2021-09-06 20:30:20.000000000 -0500
+@@ -1010,7 +1010,11 @@
+ fprintf (fp, "%s: ", snapname);
+ fprintf (fp, "%03o %s ", st.st_mode & 0777,
+ decode_mode (st.st_mode, buf));
++#if defined(__APPLE__)
++ fprintf (fp, "%ld.%09ld", st.st_mtimespec.tv_sec, st.st_mtimespec.tv_nsec);
++#else
+ fprintf (fp, "%ld.%09ld", st.st_mtim.tv_sec, st.st_mtim.tv_nsec);
++#endif
+ if (S_ISREG (st.st_mode))
+ {
+ GDBM_FILE dbf;
diff --git a/var/spack/repos/builtin/packages/gdbm/package.py b/var/spack/repos/builtin/packages/gdbm/package.py
index c0d13b7ce0..0bb7336192 100644
--- a/var/spack/repos/builtin/packages/gdbm/package.py
+++ b/var/spack/repos/builtin/packages/gdbm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,21 +13,30 @@ class Gdbm(AutotoolsPackage, GNUMirrorPackage):
These routines are provided to a programmer needing to create and
manipulate a hashed database."""
- homepage = "http://www.gnu.org.ua/software/gdbm/gdbm.html"
+ homepage = "https://www.gnu.org.ua/software/gdbm/gdbm.html"
gnu_mirror_path = "gdbm/gdbm-1.13.tar.gz"
+ version('1.21', sha256='b0b7dbdefd798de7ddccdd8edf6693a30494f7789777838042991ef107339cc2')
+ version('1.20', sha256='3aeac05648b3482a10a2da986b9f3a380a29ad650be80b9817a435fb8114a292')
+ version('1.19', sha256='37ed12214122b972e18a0d94995039e57748191939ef74115b1d41d8811364bc')
version('1.18.1', sha256='86e613527e5dba544e73208f42b78b7c022d4fa5a6d5498bf18c8d6f745b91dc')
version('1.14.1', sha256='cdceff00ffe014495bed3aed71c7910aa88bf29379f795abc0f46d4ee5f8bc5f')
- version('1.13', sha256='9d252cbd7d793f7b12bcceaddda98d257c14f4d1890d851c386c37207000a253')
- version('1.12', sha256='d97b2166ee867fd6ca5c022efee80702d6f30dd66af0e03ed092285c3af9bcea')
- version('1.11', sha256='8d912f44f05d0b15a4a5d96a76f852e905d051bb88022fcdfd98b43be093e3c3')
- version('1.10', sha256='23f8134c5b94bbfb06d756a6b78f074fba6e6028cf2fe01341d40b26db773441')
- version('1.9.1', sha256='6025852637772b0699f2294b5f14fd4a084bca3c8161d29d64d1f30d6d1a9aed')
- version('1.9', sha256='f85324d7de3777db167581fd5d3493d2daa3e85e195a8ae9afc05b34551b6e57')
+ version('1.13', sha256='9d252cbd7d793f7b12bcceaddda98d257c14f4d1890d851c386c37207000a253')
+ version('1.12', sha256='d97b2166ee867fd6ca5c022efee80702d6f30dd66af0e03ed092285c3af9bcea')
+ version('1.11', sha256='8d912f44f05d0b15a4a5d96a76f852e905d051bb88022fcdfd98b43be093e3c3')
+ version('1.10', sha256='23f8134c5b94bbfb06d756a6b78f074fba6e6028cf2fe01341d40b26db773441')
+ version('1.9.1', sha256='6025852637772b0699f2294b5f14fd4a084bca3c8161d29d64d1f30d6d1a9aed')
+ version('1.9', sha256='f85324d7de3777db167581fd5d3493d2daa3e85e195a8ae9afc05b34551b6e57')
depends_on("readline")
- patch('gdbm.patch', when='%gcc@10:')
- patch('gdbm.patch', when='%clang@11:')
+
+ patch('macOS.patch', when='@1.21: platform=darwin')
+ patch('gdbm.patch', when='@:1.18 %gcc@10:')
+ patch('gdbm.patch', when='@:1.18 %clang@11:')
+ patch('gdbm.patch', when='@:1.18 %cce@11:')
+ patch('gdbm.patch', when='@:1.18 %aocc@2:')
+ patch('gdbm.patch', when='@:1.18 %oneapi')
+ patch('gdbm.patch', when='@:1.18 %arm@21:')
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
index 51def3b6e9..7f4fa88527 100644
--- a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
+++ b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,18 +13,22 @@ class GdkPixbuf(Package):
GTK+ 2 but it was split off into a separate package in
preparation for the change to GTK+ 3."""
- homepage = "https://developer.gnome.org/gdk-pixbuf/"
+ homepage = "https://gitlab.gnome.org/GNOME/gdk-pixbuf"
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.42.2', sha256='83c66a1cfd591d7680c144d2922c5955d38b4db336d7cd3ee109f7bcf9afef15')
version('2.40.0', sha256='1582595099537ca8ff3b99c6804350b4c058bb8ad67411bbaae024ee7cead4e6')
version('2.38.2', sha256='73fa651ec0d89d73dd3070b129ce2203a66171dfc0bd2caa3570a9c93d2d0781')
version('2.38.0', sha256='dd50973c7757bcde15de6bcd3a6d462a445efd552604ae6435a0532fbbadae47')
- version('2.31.2', sha256='9e467ed09894c802499fb2399cd9a89ed21c81700ce8f27f970a833efb1e47aa')
+ version('2.31.2', sha256='9e467ed09894c802499fb2399cd9a89ed21c81700ce8f27f970a833efb1e47aa', deprecated=True)
variant('x11', default=False, description="Enable X11 support")
+ # Man page creation was getting docbook errors, see issue #18853
+ variant('man', default=False, description="Enable man page creation")
+ depends_on('meson@0.55.3:', type='build', when='@2.42.2:')
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:')
@@ -32,8 +36,8 @@ class GdkPixbuf(Package):
depends_on('shared-mime-info', type='build', when='@2.36.8: platform=cray')
depends_on('pkgconfig', type='build')
# Building the man pages requires libxslt and the Docbook stylesheets
- depends_on('libxslt', type='build')
- depends_on('docbook-xsl', type='build')
+ depends_on('libxslt', type='build', when='+man')
+ depends_on('docbook-xsl@1.79.2:', type='build', when='+man')
depends_on('gettext')
depends_on('glib@2.38.0:')
depends_on('jpeg')
@@ -45,7 +49,9 @@ class GdkPixbuf(Package):
# Replace the docbook stylesheet URL with the one that our
# docbook-xsl package uses/recognizes.
- patch('docbook-cdn.patch')
+ # Pach modifies meson build files, so it only applies to versions that
+ # depend on meson.
+ patch('docbook-cdn.patch', when='@2.37.0:+man')
def url_for_version(self, version):
url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/{0}/gdk-pixbuf-{1}.tar.xz"
@@ -68,7 +74,10 @@ class GdkPixbuf(Package):
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
meson_args = std_meson_args
- meson_args += ['-Dx11={0}'.format('+x11' in spec)]
+ meson_args += [
+ '-Dx11={0}'.format('+x11' in spec),
+ '-Dman={0}'.format('+man' in spec),
+ ]
meson('..', *meson_args)
ninja('-v')
if self.run_tests:
diff --git a/var/spack/repos/builtin/packages/gdl/package.py b/var/spack/repos/builtin/packages/gdl/package.py
index 956061f4fa..02c10dbdd8 100644
--- a/var/spack/repos/builtin/packages/gdl/package.py
+++ b/var/spack/repos/builtin/packages/gdl/package.py
@@ -1,8 +1,9 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
@@ -60,6 +61,8 @@ class Gdl(CMakePackage):
depends_on('netcdf-c')
depends_on('pslib')
depends_on('readline')
+ depends_on('libtirpc', type='link')
+ depends_on('libgeotiff', type='link')
conflicts('+python', when='~embed_python')
diff --git a/var/spack/repos/builtin/packages/gdrcopy/package.py b/var/spack/repos/builtin/packages/gdrcopy/package.py
index 88cf814e40..b71bf736db 100644
--- a/var/spack/repos/builtin/packages/gdrcopy/package.py
+++ b/var/spack/repos/builtin/packages/gdrcopy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,25 +11,24 @@ class Gdrcopy(MakefilePackage):
RDMA technology."""
homepage = "https://github.com/NVIDIA/gdrcopy"
- url = "https://github.com/NVIDIA/gdrcopy/archive/2.1.tar.gz"
+ url = "https://github.com/NVIDIA/gdrcopy/archive/v2.1.tar.gz"
git = "https://github.com/NVIDIA/gdrcopy"
version('master', branch='master')
+ version('2.2', sha256='e4be119809391b18c735346d24b3b398dd9421cbff47ef12befbae40d61da45f')
version('2.1', sha256='cecc7dcc071107f77396f5553c9109790b6d2298ae29eb2dbbdd52b2a213e4ea')
version('2.0', sha256='98320e6e980a7134ebc4eedd6cf23647104f2b3c557f2eaf0d31a02609f5f2b0')
version('1.3', sha256='f11cdfe389b685f6636b80b4a3312dc014a385ad7220179c1318c60e2e28af3a')
- def url_for_version(self, version):
- if version >= Version('2.1'):
- return super(Gdrcopy, self).url_for_version(version)
-
- url_fmt = "https://github.com/NVIDIA/gdrcopy/archive/v{0}.tar.gz"
- return url_fmt.format(version)
-
def build(self, spec, prefix):
make('lib')
def install(self, spec, prefix):
mkdir(prefix.include)
mkdir(prefix.lib64)
- make('lib_install', 'PREFIX={0}'.format(self.prefix))
+ if spec.satisfies('@2.2:'):
+ make('lib_install',
+ 'prefix={0}'.format(self.prefix))
+ else:
+ make('lib_install',
+ 'PREFIX={0}'.format(self.prefix))
diff --git a/var/spack/repos/builtin/packages/geant4-data/package.py b/var/spack/repos/builtin/packages/geant4-data/package.py
index 57a60ededd..9275b3ac64 100644
--- a/var/spack/repos/builtin/packages/geant4-data/package.py
+++ b/var/spack/repos/builtin/packages/geant4-data/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+import os
+
+from spack import *
class Geant4Data(BundlePackage):
@@ -15,6 +16,11 @@ class Geant4Data(BundlePackage):
maintainers = ['drbenmorgan']
+ tags = ['hep']
+
+ version('10.7.1')
+ version('10.7.0')
+ version('10.6.3')
version('10.6.2')
version('10.6.1')
version('10.6.0')
@@ -29,6 +35,20 @@ class Geant4Data(BundlePackage):
# For clarity, declare deps on a Major-Minor version basis as
# they generally don't change on the patch level
# Can move to declaring on a dataset basis if needed
+ # geant4@10.7.X
+ depends_on("g4ndl@4.6", when='@10.7.0:10.7.9999')
+ depends_on("g4emlow@7.13", when='@10.7.0:10.7.9999')
+ depends_on("g4photonevaporation@5.7", when='@10.7.0:10.7.9999')
+ depends_on("g4radioactivedecay@5.6", when='@10.7.0:10.7.9999')
+ depends_on("g4particlexs@3.1.1", when='@10.7.1:10.7.9999')
+ depends_on("g4particlexs@3.1", when='@10.7.0')
+ depends_on("g4pii@1.3", when='@10.7.0:10.7.9999')
+ depends_on("g4realsurface@2.2", when='@10.7.0:10.7.9999')
+ depends_on("g4saiddata@2.0", when='@10.7.0:10.7.9999')
+ depends_on("g4abla@3.1", when='@10.7.0:10.7.9999')
+ depends_on("g4incl@1.0", when='@10.7.0:10.7.9999')
+ depends_on("g4ensdfstate@2.3", when='@10.7.0:10.7.9999')
+
# geant4@10.6.X
depends_on("g4ndl@4.6", when='@10.6.0:10.6.9999')
depends_on("g4emlow@7.9", when='@10.6.0')
diff --git a/var/spack/repos/builtin/packages/geant4-vmc/package.py b/var/spack/repos/builtin/packages/geant4-vmc/package.py
index 8a5adc7c43..18fad7eed2 100644
--- a/var/spack/repos/builtin/packages/geant4-vmc/package.py
+++ b/var/spack/repos/builtin/packages/geant4-vmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,16 @@ from spack import *
class Geant4Vmc(CMakePackage):
"""Geant4 VMC implements the Virtual Monte Carlo (VMC) for Geant4."""
- homepage = "http://github.com/vmc-project/geant4_vmc"
- url = "http://github.com/vmc-project/geant4_vmc/archive/v5-1-p1.tar.gz"
- git = "http://github.com/vmc-project/geant4_vmc.git"
+ homepage = "https://github.com/vmc-project/geant4_vmc"
+ url = "https://github.com/vmc-project/geant4_vmc/archive/v5-1-p1.tar.gz"
+ git = "https://github.com/vmc-project/geant4_vmc.git"
+
+ tags = ['hep']
maintainer = ['wdconinc']
version('master', branch='master')
+ version('5-3', sha256='22f58530963988380509a7741ad6b3dde21806f3862fb55c11cc27f25d3d3c2d')
version('5-2', sha256='5bd0e4a4f938048b35724f06075952ecfbc8a97ffc979630cfe2788323845b13')
version('5-1-p1', sha256='2e3e4705134ea464e993156f71d478cb7d3817f5b6026bf8d9a37d32ec97590b')
version('5-1', sha256='ede71f360397dc4d045ec0968acf23b564fa81059c94eb40942b552eea8b5e00')
diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py
index 8f5d3c18f2..02fbe9fc1e 100644
--- a/var/spack/repos/builtin/packages/geant4/package.py
+++ b/var/spack/repos/builtin/packages/geant4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,10 +13,15 @@ class Geant4(CMakePackage):
science."""
homepage = "http://geant4.cern.ch/"
- url = "https://gitlab.cern.ch/geant4/geant4/-/archive/v10.6.0/geant4-v10.6.0.tar.gz"
+ url = "https://gitlab.cern.ch/geant4/geant4/-/archive/v10.7.1/geant4-v10.7.1.tar.gz"
+
+ tags = ['hep']
maintainers = ['drbenmorgan']
+ version('10.7.1', sha256='2aa7cb4b231081e0a35d84c707be8f35e4edc4e97aad2b233943515476955293')
+ version('10.7.0', sha256='c991a139210c7f194720c900b149405090058c00beb5a0d2fac5c40c42a262d4')
+ version('10.6.3', sha256='bf96d6d38e6a0deabb6fb6232eb00e46153134da645715d636b9b7b4490193d3')
version('10.6.2', sha256='e381e04c02aeade1ed8cdd9fdbe7dcf5d6f0f9b3837a417976b839318a005dbd')
version('10.6.1', sha256='4fd64149ae26952672a81ce5579d3806fda4bd251d486897093ac57633a42b7e')
version('10.6.0', sha256='eebe6a170546064ff81ab3b00f513ccd1d4122a026514982368d503ac55a4ee4')
@@ -43,6 +48,9 @@ class Geant4(CMakePackage):
depends_on('cmake@3.5:', type='build')
depends_on('cmake@3.8:', type='build', when='@10.6.0:')
+ depends_on('geant4-data@10.7.1', when='@10.7.1')
+ depends_on('geant4-data@10.7.0', when='@10.7.0')
+ depends_on('geant4-data@10.6.3', when='@10.6.3')
depends_on('geant4-data@10.6.2', when='@10.6.2')
depends_on('geant4-data@10.6.1', when='@10.6.1')
depends_on('geant4-data@10.6.0', when='@10.6.0')
@@ -58,17 +66,22 @@ class Geant4(CMakePackage):
depends_on('python@3:', when='+python')
extends('python', when='+python')
conflicts('+python', when='@:10.6.1',
- msg='Geant4 <= 10.6.1 cannont be built with Python bindings')
+ msg='Geant4 <= 10.6.1 cannot be built with Python bindings')
for std in _cxxstd_values:
# CLHEP version requirements to be reviewed
+ depends_on('clhep@2.4.4.0: cxxstd=' + std,
+ when='@10.7.0: cxxstd=' + std)
+
depends_on('clhep@2.3.3.0: cxxstd=' + std,
- when='@10.3.3: cxxstd=' + std)
+ when='@10.3.3:10.6.99 cxxstd=' + std)
# Spack only supports Xerces-c 3 and above, so no version req
depends_on('xerces-c netaccessor=curl cxxstd=' + std, when='cxxstd=' + std)
# Vecgeom specific versions for each Geant4 version
+ depends_on('vecgeom@1.1.8 cxxstd=' + std,
+ when='@10.7.0: +vecgeom cxxstd=' + std)
depends_on('vecgeom@1.1.5 cxxstd=' + std,
when='@10.6.0:10.6.99 +vecgeom cxxstd=' + std)
depends_on('vecgeom@1.1.0 cxxstd=' + std,
@@ -105,8 +118,7 @@ class Geant4(CMakePackage):
# Core options
options = [
- '-DGEANT4_BUILD_CXXSTD=c++{0}'.format(
- self.spec.variants['cxxstd'].value),
+ self.define_from_variant('GEANT4_BUILD_CXXSTD', 'cxxstd'),
'-DGEANT4_USE_SYSTEM_CLHEP=ON',
'-DGEANT4_USE_SYSTEM_EXPAT=ON',
'-DGEANT4_USE_SYSTEM_ZLIB=ON',
@@ -115,6 +127,11 @@ class Geant4(CMakePackage):
'-DXERCESC_ROOT_DIR={0}'.format(spec['xerces-c'].prefix)
]
+ # Don't install the package cache file as Spack will set
+ # up CMAKE_PREFIX_PATH etc for the dependencies
+ if spec.version > Version('10.5.99'):
+ options.append('-DGEANT4_INSTALL_PACKAGE_CACHE=OFF')
+
# Multithreading
options.append(self.define_from_variant('GEANT4_BUILD_MULTITHREADED',
'threads'))
diff --git a/var/spack/repos/builtin/packages/gearshifft/gearshifft-v0.4.0-cmake-variable-name.patch b/var/spack/repos/builtin/packages/gearshifft/gearshifft-v0.4.0-cmake-variable-name.patch
new file mode 100644
index 0000000000..1340096a2b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gearshifft/gearshifft-v0.4.0-cmake-variable-name.patch
@@ -0,0 +1,26 @@
+diff --git a/cmake/init_build_type.cmake b/cmake/init_build_type.cmake
+index c826f5d..131c77b 100644
+--- a/cmake/init_build_type.cmake
++++ b/cmake/init_build_type.cmake
+@@ -1,9 +1,9 @@
+ # Default build type to use if none was specified
+-if(NOT DEFINED CMAKE_DEFAULT_BUILD_TYPE)
+- set(CMAKE_DEFAULT_BUILD_TYPE "Release")
++if(NOT DEFINED GEARSHIFFT_DEFAULT_BUILD_TYPE)
++ set(GEARSHIFFT_DEFAULT_BUILD_TYPE "Release")
+ endif()
+
+-set(CMAKE_BUILD_TYPE ${CMAKE_DEFAULT_BUILD_TYPE} CACHE STRING "Build type")
++set(CMAKE_BUILD_TYPE ${GEARSHIFFT_DEFAULT_BUILD_TYPE} CACHE STRING "Build type")
+ # Set the possible values of build type for cmake-gui
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
+ "Debug"
+@@ -14,6 +14,6 @@ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
+
+ # sets default build type if none was specified
+ if(NOT CMAKE_BUILD_TYPE)
+- message(STATUS "No build type selected, default to ${CMAKE_DEFAULT_BUILD_TYPE}")
+- set(CMAKE_BUILD_TYPE ${CMAKE_DEFAULT_BUILD_TYPE} CACHE STRING "Build type" FORCE)
++ message(STATUS "No build type selected, default to ${GEARSHIFFT_DEFAULT_BUILD_TYPE}")
++ set(CMAKE_BUILD_TYPE ${GEARSHIFFT_DEFAULT_BUILD_TYPE} CACHE STRING "Build type" FORCE)
+ endif()
diff --git a/var/spack/repos/builtin/packages/gearshifft/package.py b/var/spack/repos/builtin/packages/gearshifft/package.py
index 2222db91c7..8959b5eb0a 100644
--- a/var/spack/repos/builtin/packages/gearshifft/package.py
+++ b/var/spack/repos/builtin/packages/gearshifft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,14 @@ class Gearshifft(CMakePackage):
homepage = "https://github.com/mpicbg-scicomp/gearshifft"
url = "https://github.com/mpicbg-scicomp/gearshifft/archive/v0.2.1-lw.tar.gz"
- maintainers = ['ax3l']
+ maintainers = ['zyzzyxdonta']
- version('0.2.1-lw', sha256='04ba7401615ab29a37089c0dce8580270c0c4aa1ba328c9d438d6e4f163899c5')
+ version('0.4.0', sha256='15b9e4bfa1d9b4fe4ae316f289c67b7be0774cdada5bd7310df4d0e026d9d227')
+
+ # gearshifft used the variable name `CMAKE_DEFAULT_BUILD_TYPE` which was
+ # later introduced by CMake leading to an error in newer CMake versions.
+ # This patch renames the variable to `GEARSHIFFT_DEFAULT_BUILD_TYPE`.
+ patch('gearshifft-v0.4.0-cmake-variable-name.patch', when='@0.4.0')
variant('cufft', default=True,
description='Compile gearshifft_cufft')
@@ -26,32 +31,34 @@ class Gearshifft(CMakePackage):
description='use OpenMP parallel fftw libraries')
# variant('hcfft', default=True,
# description='Not implemented yet')
+ variant('mkl', default=True,
+ description='Compile gearshifft_fftwwrappers')
+ variant('rocfft', default=True,
+ description='Compile gearshifft_rocfft')
# depends_on C++14 compiler, e.g. GCC 5.0+
depends_on('cmake@2.8.0:', type='build')
- depends_on('boost@1.56.0:')
+ depends_on('boost@1.59.0:')
depends_on('cuda@8.0:', when='+cufft')
depends_on('opencl@1.2:', when='+clfft')
depends_on('clfft@2.12.0:', when='+clfft')
depends_on('fftw@3.3.4:~mpi~openmp', when='+fftw~openmp')
depends_on('fftw@3.3.4:~mpi+openmp', when='+fftw+openmp')
+ depends_on('intel-mkl threads=openmp', when='+mkl')
+ depends_on('rocfft', when='+rocfft')
def cmake_args(self):
spec = self.spec
args = [
- '-DGEARSHIFFT_HCFFT:BOOL=OFF',
- '-DGEARSHIFFT_FFTW_PTHREADS:BOOL=ON',
- '-DGEARSHIFFT_CLFFT:BOOL=OFF'
+ self.define('GEARSHIFFT_FLOAT16_SUPPORT', False),
+ self.define('GEARSHIFFT_BACKEND_HCFFT', False),
+ self.define_from_variant('GEARSHIFFT_BACKEND_FFTW', 'fftw'),
+ self.define('GEARSHIFFT_BACKEND_FFTW_PTHREADS', '~openmp' in spec),
+ self.define_from_variant('GEARSHIFFT_BACKEND_FFTW_OPENMP', 'openmp'),
+ self.define_from_variant('GEARSHIFFT_BACKEND_CUFFT', 'cufft'),
+ self.define_from_variant('GEARSHIFFT_BACKEND_CLFFT', 'clfft'),
+ self.define_from_variant('GEARSHIFFT_BACKEND_FFTWWRAPPERS', 'mkl'),
+ self.define_from_variant('GEARSHIFFT_BACKEND_ROCFFT', 'rocfft')
]
- args.extend([
- '-DGEARSHIFFT_FFTW:BOOL={0}'.format(
- 'ON' if '+fftw' in spec else 'OFF'),
- '-DGEARSHIFFT_FFTW_OPENMP:BOOL={0}'.format(
- 'ON' if '+openmp' in spec else 'OFF'),
- '-DGEARSHIFFT_CUFFT:BOOL={0}'.format(
- 'ON' if '+cufft' in spec else 'OFF'),
- '-DGEARSHIFFT_CLFFT:BOOL={0}'.format(
- 'ON' if '+clfft' in spec else 'OFF')
- ])
return args
diff --git a/var/spack/repos/builtin/packages/gemmlowp/package.py b/var/spack/repos/builtin/packages/gemmlowp/package.py
index 67dd3d7b07..6fa31fe551 100644
--- a/var/spack/repos/builtin/packages/gemmlowp/package.py
+++ b/var/spack/repos/builtin/packages/gemmlowp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/genemark-et/package.py b/var/spack/repos/builtin/packages/genemark-et/package.py
index efa09e657e..89c96fbdd3 100644
--- a/var/spack/repos/builtin/packages/genemark-et/package.py
+++ b/var/spack/repos/builtin/packages/genemark-et/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+import os
+
+from spack import *
class GenemarkEt(Package):
@@ -15,21 +16,29 @@ class GenemarkEt(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "http://topaz.gatech.edu/GeneMark"
+ manual_download = True
+ version('4.65', sha256='62ea2dfa1954ab25edcc118dbeaeacf15924274fb9ed47bc54716cfd15ad04fe')
version('4.46', sha256='856b0b6c7cbd12835e140ff04ecd9124376348efd65f76bfd8b8e08c1834eac0')
version('4.38', sha256='cee3bd73d331be44159eac15469560d0b07ffa2c98ac764c37219e1f3b7d3146')
depends_on('perl', type=('build', 'run'))
depends_on('perl-yaml', type=('build', 'run'))
depends_on('perl-hash-merge', type=('build', 'run'))
- depends_on('perl-logger-simple', type=('build', 'run'))
depends_on('perl-parallel-forkmanager', type=('build', 'run'))
+ depends_on('perl-logger-simple', when='@:4.46', type=('build', 'run'))
+ depends_on('perl-mce', when='@4.65:', type=('build', 'run'))
+ depends_on('perl-thread-queue', when='@4.65:', type=('build', 'run'))
+ depends_on('perl-threads', when='@4.65:', type=('build', 'run'))
def url_for_version(self, version):
- return "file://{0}/gm_et_linux_64.tar.gz".format(os.getcwd())
+ if version >= Version('4.65'):
+ return "file://{0}/gmes_linux_64.tar.gz".format(os.getcwd())
+ else:
+ return "file://{0}/gm_et_linux_64.tar.gz".format(os.getcwd())
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/genesis/fj_compiler.patch b/var/spack/repos/builtin/packages/genesis/fj_compiler.patch
new file mode 100644
index 0000000000..e71fc33855
--- /dev/null
+++ b/var/spack/repos/builtin/packages/genesis/fj_compiler.patch
@@ -0,0 +1,342 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -124,11 +124,7 @@ AC_PROG_F77($genesis_default_fc)
+ # check actual compiler
+ AC_MSG_CHECKING([for actual compiler])
+
+-if test x"${FC}" = x"mpifrtpx"; then
+- VER_OPT="-V"
+-else
+- VER_OPT="--version"
+-fi
++VER_OPT="--version"
+
+ fc_ver_info=$(${FC} -E ${VER_OPT})
+ for vtok in ${fc_ver_info} ; do
+@@ -158,9 +154,13 @@ for vtok in ${fc_ver_info} ; do
+ done
+
+ if test -z "${FC_ACT}"; then
+- FC_ACT=${FC}
++ FC_ACT=`basename ${FC}`
+ fi
+
++
++
++
++
+ AC_MSG_RESULT([$FC_ACT])
+
+ version_warning=yes
+@@ -256,7 +256,7 @@ for vtok in ${cc_ver_info} ; do
+ done
+
+ if test -z "${CC_ACT}"; then
+- CC_ACT=${CC}
++ CC_ACT=`basename ${CC}`
+ fi
+
+ AC_MSG_RESULT([$CC_ACT])
+@@ -322,18 +322,12 @@ if test x"${enable_openmp}" = x"yes"; th
+ elif test x"${FC_ACT}" = x"pgf90"; then
+ OPT_OPENMP="-mp"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
+ OPT_OPENMP="-Kopenmp"
+
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
+ OPT_OPENMP="-Kopenmp"
+
+- elif test x"${FC_ACT}" = x"frt"; then
+- OPT_OPENMP="-KOMP"
+-
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- OPT_OPENMP="-KOMP"
+-
+ fi
+ fi
+
+@@ -439,7 +433,8 @@ fi
+ AC_ARG_ENABLE([parallel_IO],
+ [AS_HELP_STRING([--enable-parallel_IO], [enable parallel_IO (defalt: no)])],
+ [], [enable_parallel_IO=no])
+-if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx"; then
++if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx" -o \
++ x"${FC_ACT}" = x"frt" -o x"${FC_ACT}" = x"mpifrt"; then
+ enable_parallel_IO=no
+ fi
+ #if test x"${mainly_single}" = x"yes"; then
+@@ -742,22 +737,16 @@ else
+ elif test x"${FC_ACT}" = x"pgf90"; then
+ FCFLAGS="-O2 -fastsse -Mipa=fast,inline -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
+- FCFLAGS="-m -Kvisimpact -Kocl -Kswp"
+-
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- FCFLAGS="-m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
+- FCFLAGS_FFTE_KERNEL_FPP__PGI__SP=" -m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
+- FCFLAGS_FPP__PGI_NOOPT="-m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS_PAIRLIST="-m -Kocl -Kfast,openmp,parallel,simd=2,nounroll,swp_strong,noalias=s -Nlst=t -Koptmsg=2"
+- FCFLAGS_DIHEDRAL="-m -xsp_energy_dihedrals_mod.calculate_dihedral_2 -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS=" -m -Kocl -Kfast,openmp,parallel,simd=2,swp_strong,noalias=s -Nlst=t -Koptmsg=2"
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
++ FCFLAGS="-Kocl"
+
+- elif test x"${FC_ACT}" = x"frt"; then
+- FCFLAGS="-m -Am -Kfast"
+-
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- FCFLAGS="-m -Am -Kfast"
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
++ FCFLAGS="-Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
++ FCFLAGS_FFTE_KERNEL_FPP__PGI__SP="-Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
++ FCFLAGS_FPP__PGI_NOOPT="-Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS_PAIRLIST="-Kocl -Kfast,openmp,parallel,simd=2,nounroll,swp_strong,noalias=s -Nlst=t -Koptmsg=2"
++ FCFLAGS_DIHEDRAL="-xsp_energy_dihedrals_mod.calculate_dihedral_2 -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS="-Kocl -Kfast,openmp,parallel,simd=2,swp_strong,noalias=s -Nlst=t -Koptmsg=2"
+
+ fi
+
+@@ -776,22 +765,16 @@ else
+ elif test x"${FC_ACT}" = x"pgf90"; then
+ FCFLAGS="-m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
+- FCFLAGS="-m -Kocl "
+-
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- FCFLAGS=" -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS=" -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS_PAIRLIST="-m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_FFTE_KERNEL_FPP__PGI__SP=" -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_FPP__PGI_NOOPT=" -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_DIHEDRAL=" -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+-
+- elif test x"${FC_ACT}" = x"frt"; then
+- FCFLAGS="-m "
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
++ FCFLAGS="-Kocl "
+
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- FCFLAGS="-m "
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
++ FCFLAGS=" -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS="-Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS_PAIRLIST="-Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_FFTE_KERNEL_FPP__PGI__SP="-Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_FPP__PGI_NOOPT="-Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_DIHEDRAL="-Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+
+ fi
+
+@@ -813,22 +796,16 @@ else
+ elif test x"${FC_ACT}" = x"pgf90"; then
+ FCFLAGS="-g -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
+- FCFLAGS="-g -m -Kocl -Kopenmp"
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
++ FCFLAGS="-g -Kocl -Kopenmp"
+
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- FCFLAGS=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS_PAIRLIST=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_FFTE_KERNEL_FPP__PGI__SP=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_FPP__PGI_NOOPT=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_DIHEDRAL=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+-
+- elif test x"${FC_ACT}" = x"frt"; then
+- FCFLAGS="-g -m "
+-
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- FCFLAGS="-g -m "
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
++ FCFLAGS=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS_PAIRLIST=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_FFTE_KERNEL_FPP__PGI__SP=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_FPP__PGI_NOOPT=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_DIHEDRAL=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+
+ fi
+
+@@ -850,23 +827,23 @@ else
+ elif test x"${FC_ACT}" = x"pgf90"; then
+ FCFLAGS="-O0 -g -m64 -Msmartalloc=huge"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
+ # FCFLAGS="-O0 -g -Hs -Hu -Ha"
+ FCFLAGS="-O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- FCFLAGS=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS_PAIRLIST=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+- FCFLAGS_FFTE_KERNEL_FPP__PGI__SP=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+- FCFLAGS_FPP__PGI_NOOPT=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+- FCFLAGS_DIHEDRAL=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
++ FCFLAGS=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS_PAIRLIST=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
++ FCFLAGS_FFTE_KERNEL_FPP__PGI__SP=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
++ FCFLAGS_FPP__PGI_NOOPT=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
++ FCFLAGS_DIHEDRAL=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+
+- elif test x"${FC_ACT}" = x"frt"; then
+- FCFLAGS="-O0 -g"
++ #elif test x"${FC_ACT}" = x"frt"; then
++ # FCFLAGS="-O0 -g"
+
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- FCFLAGS="-O0 -g"
++ #elif test x"${FC_ACT}" = x"mpifrt"; then
++ # FCFLAGS="-O0 -g"
+
+ fi
+ else
+@@ -930,17 +907,11 @@ else
+ elif test x"${CC_ACT}" = x"pgcc"; then
+ CFLAGS="-O3 -fastsse -Mipa=fast,inline -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge"
+
+- elif test x"${CC_ACT}" = x"fccpx"; then
+- CFLAGS="-m -Kvisimpact -Kocl -Kswp"
+-
+- elif test x"${CC_ACT}" = x"mpifccpx"; then
+- CFLAGS="-m -Kvisimpact -Kocl -Kswp"
++ elif test x"${CC_ACT}" = x"fccpx" -o x"${CC_ACT}" = x"fcc"; then
++ CFLAGS="-Kocl"
+
+- elif test x"${CC_ACT}" = x"fcc"; then
+- CFLAGS="-m -Am -Kfast"
+-
+- elif test x"${CC_ACT}" = x"mpifcc"; then
+- CFLAGS="-m -Am -Kfast"
++ elif test x"${CC_ACT}" = x"mpifccpx" -o x"${CC_ACT}" = x"mpifcc"; then
++ CFLAGS="-Kocl"
+
+ fi
+
+@@ -959,17 +930,11 @@ else
+ elif test x"${CC_ACT}" = x"pgcc"; then
+ CFLAGS="-fastsse -Mipa=fast,inline -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge"
+
+- elif test x"${CC_ACT}" = x"fccpx"; then
+- CFLAGS="-m -Kocl"
+-
+- elif test x"${CC_ACT}" = x"mpifccpx"; then
+- CFLAGS="-m -Kocl"
+-
+- elif test x"${CC_ACT}" = x"fcc"; then
+- CFLAGS="-m -Am -Kfast"
++ elif test x"${CC_ACT}" = x"fccpx" -o x"${CC_ACT}" = x"fcc"; then
++ CFLAGS="-Kocl"
+
+- elif test x"${CC_ACT}" = x"mpifcc"; then
+- CFLAGS="-m -Am -Kfast"
++ elif test x"${CC_ACT}" = x"mpifccpx" -o x"${CC_ACT}" = x"mpifcc"; then
++ CFLAGS="-Kocl"
+
+ fi
+
+@@ -991,17 +956,11 @@ else
+ elif test x"${CC_ACT}" = x"pgcc"; then
+ CFLAGS="-g -fastsse -Mipa=fast,inline -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge"
+
+- elif test x"${CC_ACT}" = x"fccpx"; then
+- CFLAGS="-g -m -Kocl"
++ elif test x"${CC_ACT}" = x"fccpx" -o x"${CC_ACT}" = x"fcc"; then
++ CFLAGS="-g -Kocl"
+
+- elif test x"${CC_ACT}" = x"mpifccpx"; then
+- CFLAGS="-g -m -Kocl"
+-
+- elif test x"${CC_ACT}" = x"fcc"; then
+- CFLAGS="-g -m -Am -Kfast"
+-
+- elif test x"${CC_ACT}" = x"mpifcc"; then
+- CFLAGS="-g -m -Am -Kfast"
++ elif test x"${CC_ACT}" = x"mpifccpx" -o x"${CC_ACT}" = x"mpifcc"; then
++ CFLAGS="-g -Kocl"
+
+ fi
+
+@@ -1023,19 +982,13 @@ else
+ elif test x"${CC_ACT}" = x"pgcc"; then
+ CFLAGS="-O0 -g -m64 -Msmartalloc=huge"
+
+- elif test x"${CC_ACT}" = x"fccpx"; then
++ elif test x"${CC_ACT}" = x"fccpx" -o x"${CC_ACT}" = x"fcc"; then
+ # CFLAGS="-O0 -g -Hs -Hu -Ha"
+ CFLAGS="-O0 -g -Kocl"
+
+- elif test x"${CC_ACT}" = x"mpifccpx"; then
++ elif test x"${CC_ACT}" = x"mpifccpx" -o x"${CC_ACT}" = x"mpifcc"; then
+ CFLAGS="-O0 -g -Kocl"
+
+- elif test x"${CC_ACT}" = x"fcc"; then
+- CFLAGS="-O0 -g"
+-
+- elif test x"${CC_ACT}" = x"mpifcc"; then
+- CFLAGS="-O0 -g"
+-
+ fi
+
+ fi
+@@ -1056,17 +1009,11 @@ if test -z "${LDFLAGS}"; then
+ LDFLAGS=""
+ #LDFLAGS="-march=native -fuse-linker-plugin"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
+- LDFLAGS="-SSL2 -Kparallel -Nfjomplib"
+-
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- LDFLAGS="-SSL2BLAMP -Kparallel -Nfjomplib"
+-
+- elif test x"${FC_ACT}" = x"frt"; then
+- LDFLAGS="-KSPARC64VII,V9FMADD -SSL2"
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
++ LDFLAGS="-Kparallel -Kopenmp -Nlibomp"
+
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- LDFLAGS="-KSPARC64VII,V9FMADD -SSL2"
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
++ LDFLAGS="-Kparallel -Kopenmp -Nlibomp"
+
+ fi
+ fi
+@@ -1101,7 +1048,9 @@ AC_SUBST(PPFLAGS)
+
+ # USEKCOMP
+ AM_CONDITIONAL(USEKCOMP, test x"${FC_ACT}" = x"frtpx" -o \
+- x"${FC_ACT}" = x"mpifrtpx")
++ x"${FC_ACT}" = x"mpifrtpx" -o \
++ x"${FC_ACT}" = x"frt" -o \
++ x"${FC_ACT}" = x"mpifrt")
+
+ # KCOMP preprocess macro
+ AC_ARG_ENABLE([pktimer],
+@@ -1130,7 +1079,8 @@ AC_ARG_WITH([fj_timer_2],
+ [use FJ-timer in main loop (default: not use)])],
+ [], [with_fj_timer_2=no])
+
+-if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx"; then
++if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx" -o \
++ x"${FC_ACT}" = x"frt" -o x"${FC_ACT}" = x"mpifrt"; then
+ AC_DEFINE(KCOMP, 1, [defined if K-computer compiler is used.])
+ DEFINED_VARIABLES+=" -DKCOMP"
+
+@@ -1148,7 +1098,7 @@ if test x"${FC_ACT}" = x"frtpx" -o x"${F
+ mainly_pktimer=no
+ if test x"${enable_pktimer}" = x"yes"; then
+
+- if test x"${FC_ACT}" = x"mpifrtpx"; then
++ if test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
+ AC_DEFINE(PKTIMER, 1, [defined if PKTIMER is used.])
+ DEFINED_VARIABLES+=" -DPKTIMER"
+ mainly_pktimer=yes
diff --git a/var/spack/repos/builtin/packages/genesis/fj_compiler_1.5.1.patch b/var/spack/repos/builtin/packages/genesis/fj_compiler_1.5.1.patch
new file mode 100644
index 0000000000..0bdbd4f58e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/genesis/fj_compiler_1.5.1.patch
@@ -0,0 +1,286 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -90,11 +90,7 @@ AC_PROG_F77($genesis_default_fc)
+ # check actual compiler
+ AC_MSG_CHECKING([for actual compiler])
+
+-if test x"${FC}" = x"mpifrtpx"; then
+- VER_OPT="-V"
+-else
+- VER_OPT="--version"
+-fi
++VER_OPT="--version"
+
+ fc_ver_info=$(${FC} -E ${VER_OPT})
+ for vtok in ${fc_ver_info} ; do
+@@ -124,7 +120,7 @@ for vtok in ${fc_ver_info} ; do
+ done
+
+ if test -z "${FC_ACT}"; then
+- FC_ACT=${FC}
++ FC_ACT=`basename ${FC}`
+ fi
+
+ AC_MSG_RESULT([$FC_ACT])
+@@ -228,7 +224,7 @@ for vtok in ${cc_ver_info} ; do
+ done
+
+ if test -z "${CC_ACT}"; then
+- CC_ACT=${CC}
++ CC_ACT=`basename ${CC}`
+ fi
+
+ AC_MSG_RESULT([$CC_ACT])
+@@ -294,18 +290,12 @@ if test x"${enable_openmp}" = x"yes"; th
+ elif test x"${FC_ACT}" = x"pgf90"; then
+ OPT_OPENMP="-mp"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
+ OPT_OPENMP="-Kopenmp"
+
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
+ OPT_OPENMP="-Kopenmp"
+
+- elif test x"${FC_ACT}" = x"frt"; then
+- OPT_OPENMP="-KOMP"
+-
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- OPT_OPENMP="-KOMP"
+-
+ fi
+ fi
+
+@@ -411,7 +401,8 @@ fi
+ AC_ARG_ENABLE([parallel_IO],
+ [AS_HELP_STRING([--enable-parallel_IO], [enable parallel_IO (defalt: yes(intel)/no(fujitsu))])],
+ [], [enable_parallel_IO=yes])
+-if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx"; then
++if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx" -o \
++ x"${FC_ACT}" = x"frt" -o x"${FC_ACT}" = x"mpifrt"; then
+ enable_parallel_IO=no
+ fi
+ if test x"${enable_single}" = x"yes"; then
+@@ -639,19 +630,13 @@ else
+ elif test x"${FC_ACT}" = x"pgf90"; then
+ FCFLAGS="-O2 -fastsse -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge -Mbackslash"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
+- FCFLAGS="-m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS_NONBOND="-m -O3 -Kocl -Kfsimple,noreduction,fp_contract,fp_relaxed,fz,ilfunc,mfunc,omitfp,simd_packed_promotion,openmp,parallel,simd=2 -Nlst=t -Koptmsg=2"
+-
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- FCFLAGS="-m -Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS_NONBOND="-m -O3 -Kocl -Kfsimple,noreduction,fp_contract,fp_relaxed,fz,ilfunc,mfunc,omitfp,simd_packed_promotion,openmp,parallel,simd=2 -Nlst=t -Koptmsg=2"
+-
+- elif test x"${FC_ACT}" = x"frt"; then
+- FCFLAGS="-m -Am -Kfast"
+-
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- FCFLAGS="-m -Am -Kfast"
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
++ FCFLAGS="-Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS_NONBOND="-O3 -Kocl -Kfsimple,noreduction,fp_contract,fp_relaxed,fz,ilfunc,mfunc,omitfp,simd_packed_promotion,openmp,parallel,simd=2 -Nlst=t -Koptmsg=2"
++
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
++ FCFLAGS="-Kocl -Kfast,openmp,parallel,simd=2,noalias -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS_NONBOND="-O3 -Kocl -Kfsimple,noreduction,fp_contract,fp_relaxed,fz,ilfunc,mfunc,omitfp,simd_packed_promotion,openmp,parallel,simd=2 -Nlst=t -Koptmsg=2"
+
+ fi
+
+@@ -670,20 +655,14 @@ else
+ elif test x"${FC_ACT}" = x"pgf90"; then
+ FCFLAGS="-m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge -Mbackslash"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
+- FCFLAGS="-m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS_NONBOND="-m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+-
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
++ FCFLAGS="-Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS_NONBOND="-Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- FCFLAGS="-m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS_NONBOND="-m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+
+- elif test x"${FC_ACT}" = x"frt"; then
+- FCFLAGS="-m "
+-
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- FCFLAGS="-m "
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
++ FCFLAGS="-Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS_NONBOND="-Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+
+ fi
+
+@@ -705,19 +684,13 @@ else
+ elif test x"${FC_ACT}" = x"pgf90"; then
+ FCFLAGS="-g -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge -Mbackslash"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
+- FCFLAGS="-g -m -Kocl -Kopenmp"
+- FCFLAGS_KERNELS_NONBOND=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+-
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- FCFLAGS=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS_NONBOND=" -g -m -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+-
+- elif test x"${FC_ACT}" = x"frt"; then
+- FCFLAGS="-g -m "
+-
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- FCFLAGS="-g -m "
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
++ FCFLAGS="-g -Kocl -Kopenmp"
++ FCFLAGS_KERNELS_NONBOND=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
++ FCFLAGS=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS_NONBOND=" -g -Kocl -Kopenmp -Nlst=t -Koptmsg=2"
+
+ fi
+
+@@ -739,18 +712,12 @@ else
+ elif test x"${FC_ACT}" = x"pgf90"; then
+ FCFLAGS="-O0 -g -m64 -Msmartalloc=huge"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
+- FCFLAGS=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+- FCFLAGS_KERNELS_NONBOND=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+-
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- FCFLAGS_KERNELS_NONBOND=" -O0 -g -m -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
++ FCFLAGS=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
++ FCFLAGS_KERNELS_NONBOND=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+
+- elif test x"${FC_ACT}" = x"frt"; then
+- FCFLAGS="-O0 -g"
+-
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- FCFLAGS="-O0 -g"
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
++ FCFLAGS_KERNELS_NONBOND=" -O0 -g -Kocl -Kopenmp -Hs -Hu -Ha -Nlst=t -Koptmsg=2"
+
+ fi
+ else
+@@ -804,16 +771,16 @@ else
+ CFLAGS="-O3 -fastsse -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge"
+
+ elif test x"${CC_ACT}" = x"fccpx"; then
+- CFLAGS="-m -Kvisimpact -Kocl -Kswp"
++ CFLAGS="-Kvisimpact -Kocl -Kswp"
+
+ elif test x"${CC_ACT}" = x"mpifccpx"; then
+- CFLAGS="-m -Kvisimpact -Kocl -Kswp"
++ CFLAGS="-Kvisimpact -Kocl -Kswp"
+
+ elif test x"${CC_ACT}" = x"fcc"; then
+- CFLAGS="-m -Am -Kfast"
++ CFLAGS="-Am -Kfast"
+
+ elif test x"${CC_ACT}" = x"mpifcc"; then
+- CFLAGS="-m -Am -Kfast"
++ CFLAGS="-Am -Kfast"
+
+ fi
+
+@@ -833,16 +800,16 @@ else
+ CFLAGS="-fastsse -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge"
+
+ elif test x"${CC_ACT}" = x"fccpx"; then
+- CFLAGS="-m -Kocl"
++ CFLAGS=" -Kocl"
+
+ elif test x"${CC_ACT}" = x"mpifccpx"; then
+- CFLAGS="-m -Kocl"
++ CFLAGS=" -Kocl"
+
+ elif test x"${CC_ACT}" = x"fcc"; then
+- CFLAGS="-m -Am -Kfast"
++ CFLAGS=" -Am -Kfast"
+
+ elif test x"${CC_ACT}" = x"mpifcc"; then
+- CFLAGS="-m -Am -Kfast"
++ CFLAGS=" -Am -Kfast"
+
+ fi
+
+@@ -865,16 +832,16 @@ else
+ CFLAGS="-g -fastsse -m64 -Mflushz -pc 64 -mcmodel=medium -Msmartalloc=huge"
+
+ elif test x"${CC_ACT}" = x"fccpx"; then
+- CFLAGS="-g -m -Kocl"
++ CFLAGS="-g -Kocl"
+
+ elif test x"${CC_ACT}" = x"mpifccpx"; then
+- CFLAGS="-g -m -Kocl"
++ CFLAGS="-g -Kocl"
+
+ elif test x"${CC_ACT}" = x"fcc"; then
+- CFLAGS="-g -m -Am -Kfast"
++ CFLAGS="-g -Am -Kfast"
+
+ elif test x"${CC_ACT}" = x"mpifcc"; then
+- CFLAGS="-g -m -Am -Kfast"
++ CFLAGS="-g -Am -Kfast"
+
+ fi
+
+@@ -928,17 +895,11 @@ if test -z "${LDFLAGS}"; then
+ LDFLAGS=""
+ #LDFLAGS="-march=native -fuse-linker-plugin"
+
+- elif test x"${FC_ACT}" = x"frtpx"; then
+- LDFLAGS="-SSL2 -Kparallel -Nfjomplib"
+-
+- elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- LDFLAGS="-SSL2BLAMP -Kparallel -Nfjomplib"
+-
+- elif test x"${FC_ACT}" = x"frt"; then
+- LDFLAGS="-KSPARC64VII,V9FMADD -SSL2"
++ elif test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"frt"; then
++ LDFLAGS="-Kparallel -Nfjomplib -Nlibomp"
+
+- elif test x"${FC_ACT}" = x"mpifrt"; then
+- LDFLAGS="-KSPARC64VII,V9FMADD -SSL2"
++ elif test x"${FC_ACT}" = x"mpifrtpx" -o x"${FC_ACT}" = x"mpifrt"; then
++ LDFLAGS="-Kparallel -Nfjomplib -Nlibomp"
+
+ fi
+ fi
+@@ -973,10 +934,13 @@ AC_SUBST(PPFLAGS)
+
+ # USEKCOMP
+ AM_CONDITIONAL(USEKCOMP, test x"${FC_ACT}" = x"frtpx" -o \
+- x"${FC_ACT}" = x"mpifrtpx")
++ x"${FC_ACT}" = x"mpifrtpx" -o \
++ x"${FC_ACT}" = x"frt" -o \
++ x"${FC_ACT}" = x"mpifrt")
+
+ # KCOMP preprocess macro
+-if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx"; then
++if test x"${FC_ACT}" = x"frtpx" -o x"${FC_ACT}" = x"mpifrtpx" -o \
++ x"${FC_ACT}" = x"frt" -o x"${FC_ACT}" = x"mpifrt"; then
+ AC_DEFINE(KCOMP, 1, [defined if K-computer compiler is used.])
+ DEFINED_VARIABLES+=" -DKCOMP"
+ fi
+@@ -1049,13 +1013,13 @@ if test x"${IS_RICC}" == x"yes"; then
+ if test -n "${RICC_FCFLAGS}"; then
+ FCFLAGS=${RICC_FCFLAGS}
+ else
+- FCFLAGS="-pc -m -omp"
++ FCFLAGS="-pc -omp"
+ fi
+
+ if test -n "${RICC_CFLAGS}"; then
+ CFLAGS=${RICC_CFLAGS}
+ else
+- CFLAGS="-pc -m -omp"
++ CFLAGS="-pc -omp"
+ fi
+
+ if test -n "${RICC_PPFLAGS}"; then
diff --git a/var/spack/repos/builtin/packages/genesis/package.py b/var/spack/repos/builtin/packages/genesis/package.py
new file mode 100644
index 0000000000..942c334a3b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/genesis/package.py
@@ -0,0 +1,141 @@
+# Copyright 2013-2021 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 Genesis(AutotoolsPackage, CudaPackage):
+ """GENESIS is a Molecular dynamics and modeling software
+ for bimolecular systems such as proteins, lipids, glycans,
+ and their complexes.
+ """
+
+ homepage = "https://www.r-ccs.riken.jp/labs/cbrt/"
+ url = "https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/09/genesis-1.5.1.tar.bz2"
+ git = "https://github.com/genesis-release-r-ccs/genesis-2.0.git"
+
+ version("master", branch="master")
+ version(
+ "1.6.0",
+ sha256="d0185a5464ed4231f6ee81f6dcaa15935a99fa30b96658d2b7c25d7fbc5b38e9",
+ url="https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/12/genesis-1.6.0.tar.bz2",
+ )
+ version(
+ "1.5.1",
+ sha256="62a453a573c36779484b4ffed2dfa56ea03dfe1308d631b33ef03f733259b3ac",
+ url="https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/09/genesis-1.5.1.tar.bz2",
+ )
+
+ resource(
+ when="@1.6.0",
+ name="user_guide",
+ url="https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2020/12/GENESIS-1.6.0.pdf",
+ sha256="4a6d54eb8f66edde57a4099cdac40cc8e0e2fd6bdb84946da6bf2b3ed84a4ba1",
+ expand=False,
+ placement="doc",
+ )
+ resource(
+ when="@1.5.1",
+ name="user_guide",
+ url="https://www.r-ccs.riken.jp/labs/cbrt/wp-content/uploads/2019/10/GENESIS-1.4.0.pdf",
+ sha256="da2c3f8bfa1e93adb992d3cfce09fb45d8d447a94f9a4f884ac834ea7279b9c7",
+ expand=False,
+ placement="doc",
+ )
+
+ variant("openmp", default=True, description="Enable OpenMP.")
+ variant("single", default=False, description="Enable single precision.")
+ variant("hmdisk", default=False, description="Enable huge molecule on hard disk.")
+
+ conflicts("%apple-clang", when="+openmp")
+
+ depends_on("autoconf", type="build", when="@1.5.1 %fj")
+ depends_on("autoconf", type="build", when="@master")
+ depends_on("automake", type="build", when="@1.5.1 %fj")
+ depends_on("automake", type="build", when="@master")
+ depends_on("libtool", type="build", when="@1.5.1 %fj")
+ depends_on("libtool", type="build", when="@master")
+ depends_on("m4", type="build", when="@1.5.1 %fj")
+ depends_on("m4", type="build", when="@master")
+
+ depends_on("mpi", type=("build", "run"))
+ depends_on("lapack")
+ depends_on("python@2.6.9:2.8.0", type=("build", "run"), when="@master")
+
+ patch("fj_compiler.patch", when="@master %fj")
+ patch("fj_compiler_1.5.1.patch", when="@1.5.1 %fj")
+
+ parallel = False
+
+ @property
+ def force_autoreconf(self):
+ # Run autoreconf due to build system patch
+ return self.spec.satisfies("@1.5.1 %fj")
+
+ def configure_args(self):
+ spec = self.spec
+ options = []
+ options.extend(self.enable_or_disable("openmp"))
+ options.extend(self.enable_or_disable("single"))
+ options.extend(self.enable_or_disable("hmdisk"))
+ if "+cuda" in spec:
+ options.append("--enable-gpu")
+ options.append("--with-cuda=%s" % spec["cuda"].prefix)
+ else:
+ options.append("--disable-gpu")
+ if spec.target == "a64fx" and self.spec.satisfies("@master %fj"):
+ options.append("--host=Fugaku")
+ return options
+
+ def setup_build_environment(self, env):
+ env.set("FC", self.spec["mpi"].mpifc, force=True)
+ env.set("F77", self.spec["mpi"].mpif77, force=True)
+ env.set("CC", self.spec["mpi"].mpicc, force=True)
+ env.set("CXX", self.spec["mpi"].mpicxx, force=True)
+ env.set("LAPACK_LIBS", self.spec["lapack"].libs.ld_flags)
+ if "+cuda" in self.spec:
+ cuda_arch = self.spec.variants["cuda_arch"].value
+ cuda_gencode = " ".join(self.cuda_flags(cuda_arch))
+ env.set("NVCCFLAGS", cuda_gencode)
+
+ def install(self, spec, prefix):
+ make("install")
+ install_tree("doc", prefix.share.doc)
+
+ @property
+ def cached_tests_work_dir(self):
+ """The working directory for cached test sources."""
+ return join_path(self.test_suite.current_test_cache_dir,
+ "tests")
+
+ @run_after("install")
+ def cache_test_sources(self):
+ """Copy test files after the package is installed for test()."""
+ if self.spec.satisfies("@master"):
+ self.cache_extra_test_sources(["tests"])
+
+ def test(self):
+ """Perform stand-alone/smoke tests using installed package."""
+ if not self.spec.satisfies("@master"):
+ print('Skipping: Tests are only available for the master branch')
+ return
+
+ test_name = join_path(
+ self.cached_tests_work_dir, "regression_test", "test.py"
+ )
+ bin_name = join_path(self.prefix.bin, "spdyn")
+ opts = [
+ test_name,
+ self.spec["mpi"].prefix.bin.mpirun + " -np 8 " + bin_name,
+ ]
+ env["OMP_NUM_THREADS"] = "1"
+ self.run_test(
+ self.spec["python"].command.path,
+ options=opts,
+ expected="Passed 53 / 53",
+ purpose="test: running regression test",
+ work_dir=self.cached_tests_work_dir
+ )
diff --git a/var/spack/repos/builtin/packages/genfit/package.py b/var/spack/repos/builtin/packages/genfit/package.py
new file mode 100644
index 0000000000..1425ec5a62
--- /dev/null
+++ b/var/spack/repos/builtin/packages/genfit/package.py
@@ -0,0 +1,41 @@
+# Copyright 2013-2021 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 Genfit(CMakePackage):
+ """GenFit is an experiment-independent framework for track reconstruction in
+ particle and nuclear physics"""
+
+ homepage = "https://github.com/GenFit/GenFit"
+ url = "https://github.com/GenFit/GenFit/archive/02-00-00.tar.gz"
+ git = "https://github.com/GenFit/GenFit.git"
+
+ maintainers = ['mirguest']
+
+ tags = ["hep"]
+
+ version('master', branch='master')
+ version('02-00-00', sha256='0bfd5dd152ad0573daa4153a731945824e0ce266f844988b6a8bebafb7f2dacc')
+ # Untagged version from 2017-06-23 known to work with root@6.16.00
+ version('b496504a', sha256='e1582b35782118ade08498adc03f3fda01979ff8bed61e0520edae46d7bfe477')
+
+ depends_on('root')
+ depends_on('root@:6.16.00', when='@b496504a')
+ depends_on('eigen')
+ depends_on('googletest')
+
+ def cmake_args(self):
+ args = []
+ # normally, as a cmake package root should be
+ # automatically picked up after 'depends_on'
+ # as it is added to CMAKE_PREFIX_PATH
+ # but genfit cooks its own root cmake config
+ # so this workaround is needed for now.
+ root_prefix = self.spec["root"].prefix
+ args.append('-DROOT_DIR=%s' % root_prefix)
+
+ return args
diff --git a/var/spack/repos/builtin/packages/gengeo/package.py b/var/spack/repos/builtin/packages/gengeo/package.py
new file mode 100644
index 0000000000..8c3795d829
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gengeo/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2021 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 Gengeo(AutotoolsPackage):
+ """GenGeo is a library of tools for creating complex particle
+ geometries for use in ESyS-Particle simulations. GenGeo is a standalone
+ application with a Python API that creates geometry files suitable for
+ importing into ESyS-Particle simulations. The functionality of GenGeo far
+ exceeds the in-simulation geometry creation utilities
+ provided by ESyS-Particle itself."""
+
+ homepage = "https://launchpad.net/esys-particle/gengeo"
+ url = "https://launchpad.net/esys-particle/trunk/3.0-alpha/+download/gengeo-163.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('163', sha256='9c896d430d8f315a45379d2b82e7d374f36259af66a745bfdee4c022a080d34d')
+
+ extends('python')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('boost+python')
+ depends_on('openmpi')
+
+ def autoreconf(self, spec, prefix):
+ autogen = Executable('./autogen.sh')
+ autogen()
+
+ def configure_args(self):
+ args = [
+ '--verbose',
+ '--with-boost=' + self.spec['boost'].prefix,
+ 'CCFLAGS=-fpermissive',
+ 'CXXFLAGS=-fpermissive',
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/gengetopt/package.py b/var/spack/repos/builtin/packages/gengetopt/package.py
index 44389fa38a..4404ba26f2 100644
--- a/var/spack/repos/builtin/packages/gengetopt/package.py
+++ b/var/spack/repos/builtin/packages/gengetopt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -25,6 +25,8 @@ class Gengetopt(AutotoolsPackage):
version('2.21', sha256='355a32310b2fee5e7289d6d6e89eddd13275a7c85a243dc5dd293a6cb5bb047e')
version('2.20', sha256='4c8b3b42cecff579f5f9de5ccad47e0849e0245e325a04ff5985c248141af1a4')
+ depends_on('texinfo', type='build')
+
parallel = False
def url_for_version(self, version):
diff --git a/var/spack/repos/builtin/packages/genie/genie_disable_gopt_with_compiler_check.patch b/var/spack/repos/builtin/packages/genie/genie_disable_gopt_with_compiler_check.patch
new file mode 100644
index 0000000000..a6816045c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/genie/genie_disable_gopt_with_compiler_check.patch
@@ -0,0 +1,26 @@
+--- src/make/Make.include 2021-03-18 23:20:01.810289245 +0000
++++ src/make/Make.include.new 2021-03-18 23:26:49.319249916 +0000
+@@ -267,21 +267,8 @@
+ # COMPILER OPTIONS
+ #-------------------------------------------------------------------
+
+-ifeq ($(GOPT_WITH_COMPILER),$(filter $(GOPT_WITH_COMPILER),clang clang++))
+- # --clang
+- CXX = clang++
+- CC = clang
+- LD = clang++
+-else
+- ifeq ($(GOPT_WITH_COMPILER),$(filter $(GOPT_WITH_COMPILER),gcc g++))
+- # -- gcc
+- CXX = g++
+- CC = gcc
+- LD = g++
+- else
+- $(error GOPT_WITH_COMPILER not set correctly!)
+- endif
+-endif
++LD=$(CXX)
++
+ #check if we're using clang (complicated because g++ is sometimes a clang alias...)
+ APPLE_CLANG := $(shell $(CXX) -v 2>&1 | sed -n "s/.*clang//p" | cut -d . -f 1)
+ ifneq ($(APPLE_CLANG),) \ No newline at end of file
diff --git a/var/spack/repos/builtin/packages/genie/package.py b/var/spack/repos/builtin/packages/genie/package.py
new file mode 100644
index 0000000000..34b07a4a1e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/genie/package.py
@@ -0,0 +1,168 @@
+# Copyright 2013-2021 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)
+
+
+import os
+
+from spack.directives import depends_on, patch, variant, version
+from spack.package import Package
+from spack.util.executable import Executable
+from spack.version import Version
+
+
+class Genie(Package): # Genie doesn"t use Autotools
+ """Genie is a neutrino Monte Carlo Generator."""
+
+ homepage = "https://www.genie-mc.org"
+ url = "https://github.com/GENIE-MC/Generator/archive/R-3_00_06.tar.gz"
+ git = "https://github.com/GENIE-MC/Generator.git"
+
+ tags = ["neutrino", "hep"]
+
+ maintainers = [
+ # maintainer of this recipe, not affliated with the GENIE collaboration
+ "davehadley",
+ ]
+
+ version("master", branch="master")
+ version("3.0.6", sha256="ab56ea85d0c1d09029254365bfe75a1427effa717389753b9e0c1b6c2eaa5eaf")
+ version("3.0.4", sha256="53f034618fef9f7f0e17d1c4ed72743e4bba590e824b795177a1a8a8486c861e")
+ version("3.0.2", sha256="34d6c37017b2387c781aea7bc727a0aac0ef45d6b3f3982cc6f3fc82493f65c3")
+ version("3.0.0", sha256="3953c7d9f1f832dd32dfbc0b9260be59431206c204aec6ab0aa68c01176f2ae6")
+ version("2.12.10", sha256="c8762db3dcc490f80f8a61268f5b964d4d35b80134b622e89fe2307a836f2a0b")
+ version("2.12.8", sha256="7ca169a8d9eda7267d28b76b2f3110552852f8eeae263a03cd5139caacebb4ea")
+ version("2.12.6", sha256="3b450c609875459798ec98e12cf671cc971cbb13345af6d75bd6278d422f3309")
+ version("2.12.4", sha256="19a4a1633b0847a9f16a44e0c74b9c224ca3bb93975aecf108603c22e807517b")
+ version("2.12.2", sha256="cbdc45a739878940dadcaaed575b5cad6b5e7035f29605045b1ca557e6faa6d1")
+ version("2.12.0", sha256="d2b01c80f38d269cb0296b3f2932798ef3f1d51bd130e81274fbfeeb381fac6b")
+ version("2.11.2", sha256="0f4c25d8ceb7513553671643c9cdac5aa98c40fc8594a5ecb25c077c6b36166e")
+ version("2.11.0", sha256="1ebe0eb65d797595413632f1cec1cb2621cb8e8d0384a2843799724a79b1d80c")
+ version("2.10.10", sha256="1dfaadcf1bbaf6e164b612f410c4399301e63497ad6a4891706b1787ac11a7a1")
+ version("2.10.8", sha256="4f6f5af2062e7c505b76e70547ac2ae304a9790c3e9b9592818d8aebeebc8398")
+ version("2.10.6", sha256="d00b4288c886f81459fb2967e539f30315d4385f82d1d3f4330298d313f9a176")
+ version("2.10.4", sha256="df909bf7e1a789ca01794995687da2af803769f0823273a4a3a31678d6d5b0f1")
+ version("2.10.2", sha256="6abe4e0cdb5e8f5beddf0ccdbebc94c175a9f72592b1cbbffe01b88ee3972bf9")
+ version("2.10.0", sha256="17bda900c996b6f4f10a7f6a3be94e56c3b8dcdeb2ef8865ca7f20c5fe725291")
+ version("2.9.0", sha256="8229beb73f65f5af86a77bf141acfbe4a8b68cba9d797aae083a929906f6f2a2")
+ version("2.8.6", sha256="310dc8e0d17a65e6b9773e398250703a3a6f94ceafe94f599ae0f7b3fecf7e6c")
+
+ depends_on("root+pythia6")
+ depends_on("pythia6")
+ depends_on("lhapdf", when="@3:")
+ depends_on("lhapdf5", when="@:2")
+ depends_on("log4cpp")
+ depends_on("libxml2")
+ depends_on("gsl")
+
+ # GENIE does not actually require cmake, but root does.
+ # Spack's concretizer fails with "unsatisfiable constraint" if we don't add this.
+ depends_on("cmake@3:")
+
+ # GENIE Makefile's think that the spack compiler is invalid.
+ # Disables this check.
+ patch("genie_disable_gopt_with_compiler_check.patch", level=0, when="@2.11:")
+
+ # Flags for GENIE"s optional but disabled by default features
+ variant("atmo", default=False,
+ description="Enable GENIE Atmospheric neutrino event generation app")
+ variant("fnal", default=False,
+ description="Enables FNAL experiment-specific event generation app")
+ variant("nucleondecay", default=False,
+ description="Enable GENIE Nucleon decay event generation app")
+ variant("masterclass", default=False,
+ description="Enable GENIE neutrino masterclass app")
+ variant("t2k", default=False, description="Enable T2K-specific generation app")
+ variant("vleextension", default=False,
+ description="Enable GENIE very low energy (1 MeV - 100 MeV) extension")
+
+ phases = ["configure", "build", "install"]
+
+ def url_for_version(self, version):
+ url = "https://github.com/GENIE-MC/Generator/archive/R-{0}.tar.gz"
+ if version >= Version(3):
+ return url.format("{0}_{1:02d}_{2:02d}".format(*version))
+ else:
+ return url.format(version.underscored)
+
+ def setup_build_environment(self, env):
+ env.set("GENIE", self.stage.source_path)
+ return super(Genie, self).setup_build_environment(env)
+
+ def setup_run_environment(self, env):
+ env.set("GENIE", self.prefix)
+ return super(Genie, self).setup_run_environment(env)
+
+ def configure(self, spec, prefix):
+ configure = Executable("./configure")
+ args = self._configure_args(spec, prefix)
+ configure(*args)
+
+ def build(self, spec, prefix):
+ # parallel build is not supported on GENIE 2
+ self._make(parallel=spec.satisfies("@3:"))
+
+ def install(self, spec, prefix):
+ # GENIE make install does not support parallel jobs
+ self._make("install", parallel=False)
+ # GENIE requires these files to be present at runtime, but doesn"t install them
+ # so we must install them ourselves
+ # install_tree function is injected into scope by spack build_environment.py
+ install_tree("config", os.sep.join((prefix, "config")))
+ install_tree("data", os.sep.join((prefix, "data")))
+
+ def _configure_args(self, spec, prefix):
+ args = [
+ "--prefix=" + prefix,
+ "--with-compiler=" + os.environ["CC"],
+ "--with-libxml2-inc={0}{1}libxml2".format(
+ spec["libxml2"].prefix.include, os.sep
+ ),
+ "--with-libxml2-lib=" + spec["libxml2"].prefix.lib,
+ "--with-log4cpp-inc=" + spec["log4cpp"].prefix.include,
+ "--with-log4cpp-lib=" + spec["log4cpp"].prefix.lib,
+ "--with-pythia6-lib=" + spec["pythia6"].prefix.lib,
+ ]
+ if self.spec.satisfies("@:2"):
+ args += [
+ "--enable-lhapdf",
+ "--with-lhapdf-inc=" + spec["lhapdf5"].prefix.include,
+ "--with-lhapdf-lib=" + spec["lhapdf5"].prefix.lib,
+ # must be enabled or some GENIE 2 versions fail to link
+ # this option was removed in GENIE 3
+ "--enable-rwght",
+ ]
+ else:
+ args += [
+ "--enable-lhapdf6",
+ "--with-lhapdf6-inc=" + spec["lhapdf"].prefix.include,
+ "--with-lhapdf6-lib=" + spec["lhapdf"].prefix.lib,
+ ]
+ if "+vleextension" in self.spec:
+ args += ["--enable-vle-extension"]
+ if "+t2k" in self.spec:
+ args += ["--enable-t2k"]
+ if "+fnal" in self.spec:
+ args += ["--enable-fnal"]
+ if "+atmo" in self.spec:
+ args += ["--enable-atmo"]
+ if "+nucleondecay" in self.spec:
+ args += ["--enable-nucleon-decay"]
+ if "+masterclass" in self.spec:
+ args += ["--enable-masterclass"]
+ return args
+
+ def _make(self, *args, **kwargs):
+ parallel = kwargs.get("parallel", False)
+ args = list(self._make_args) + list(args)
+ # make function is injected into scope by spack build_environment.py
+ make(*args, parallel=parallel)
+
+ @property
+ def _make_args(self):
+ return [
+ "CC=c++",
+ "CXX=c++",
+ "LD=c++",
+ ]
diff --git a/var/spack/repos/builtin/packages/genomefinisher/package.py b/var/spack/repos/builtin/packages/genomefinisher/package.py
index efaec44d12..2da9ea3ac3 100644
--- a/var/spack/repos/builtin/packages/genomefinisher/package.py
+++ b/var/spack/repos/builtin/packages/genomefinisher/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Genomefinisher(Package):
"""GFinisher is an application tools for refinement and finalization of
diff --git a/var/spack/repos/builtin/packages/genometools/package.py b/var/spack/repos/builtin/packages/genometools/package.py
index 91ddd7a9ea..e595cf9bed 100644
--- a/var/spack/repos/builtin/packages/genometools/package.py
+++ b/var/spack/repos/builtin/packages/genometools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/genomeworks/package.py b/var/spack/repos/builtin/packages/genomeworks/package.py
index fce2e91d81..ba2a5922f9 100644
--- a/var/spack/repos/builtin/packages/genomeworks/package.py
+++ b/var/spack/repos/builtin/packages/genomeworks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/genrich/package.py b/var/spack/repos/builtin/packages/genrich/package.py
index a703259968..140bb59235 100644
--- a/var/spack/repos/builtin/packages/genrich/package.py
+++ b/var/spack/repos/builtin/packages/genrich/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/geode/package.py b/var/spack/repos/builtin/packages/geode/package.py
index 33581a1a87..4c40465dce 100644
--- a/var/spack/repos/builtin/packages/geode/package.py
+++ b/var/spack/repos/builtin/packages/geode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/geoip-api-c/package.py b/var/spack/repos/builtin/packages/geoip-api-c/package.py
index 9b0c355592..453aebd759 100644
--- a/var/spack/repos/builtin/packages/geoip-api-c/package.py
+++ b/var/spack/repos/builtin/packages/geoip-api-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/geoip/package.py b/var/spack/repos/builtin/packages/geoip/package.py
index 1ef5660870..6137720348 100644
--- a/var/spack/repos/builtin/packages/geoip/package.py
+++ b/var/spack/repos/builtin/packages/geoip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/geopm/package.py b/var/spack/repos/builtin/packages/geopm/package.py
index 95888343b9..ca0d2e8c0f 100644
--- a/var/spack/repos/builtin/packages/geopm/package.py
+++ b/var/spack/repos/builtin/packages/geopm/package.py
@@ -1,8 +1,7 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 *
@@ -58,11 +57,11 @@ class Geopm(AutotoolsPackage):
depends_on('doxygen', type='build', when='+doc')
depends_on('numactl', when="@:1.0.0-rc2")
depends_on('mpi', when='+mpi')
- depends_on('hwloc@1.11.9', when='@:0.5.1+hwloc')
+ depends_on('hwloc@1.11.9', when='@:0.5.1')
depends_on('json-c', when='@:0.9.9')
depends_on('py-cycler@0.10.0:', when="@1.0.0:", type=('build', 'run'))
depends_on('py-pandas@0.22.0:', type=('build', 'run'))
- depends_on('py-tables@3.4.3:3.5.2', when="@1.0.0:", type=('build', 'run'))
+ depends_on('py-tables@3.4.3:', when="@1.0.0:", type=('build', 'run'))
depends_on('py-cffi@1.6.0:', when="@1.1.0:", type=('build', 'run'))
depends_on('py-pyyaml@5.1.0:', when="@1.1.0:", type=('build', 'run'))
depends_on('py-mock@3.0.0:', when="@1.1.0:", type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/geos/geos_python3_config.patch b/var/spack/repos/builtin/packages/geos/geos_python3_config.patch
new file mode 100644
index 0000000000..303c49d6cd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/geos/geos_python3_config.patch
@@ -0,0 +1,67 @@
+diff -Naur spack-src/configure spack-src.patched/configure
+--- spack-src/configure 2020-03-10 13:55:53.000000000 -0400
++++ spack-src.patched/configure 2021-05-06 11:33:59.062284048 -0400
+@@ -19263,10 +19263,11 @@
+
+
+ # Check for Python library path
++ PYTHON_MAJOR=`echo $PYTHON_VERSION | sed "s,\..*$,,"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5
+ $as_echo_n "checking for Python library path... " >&6; }
+ for i in "$base_python_path/lib/python$PYTHON_VERSION/config/" "$base_python_path/lib/python$PYTHON_VERSION/" "$base_python_path/lib/python/config/" "$base_python_path/lib/python/" "$base_python_path/" "$base_python_path/libs/" ; do
+- python_path=`find $i -name libpython$PYTHON_VERSION.* -print 2> /dev/null | sed "1q"`
++ python_path=`find $i -name libpython$PYTHON_MAJOR.* -print 2> /dev/null | sed "1q"`
+ if test -n "$python_path" ; then
+ break
+ fi
+@@ -19277,7 +19278,7 @@
+ if test -z "$python_path" ; then
+ as_fn_error $? "cannot find Python library path" "$LINENO" 5
+ fi
+- PYTHON_LDFLAGS="-L$python_path -lpython$PYTHON_VERSION"
++ PYTHON_LDFLAGS="-L$python_path -lpython$PYTHON_MAJOR"
+
+ #
+ python_site=`echo $base_python_path | sed "s/config/site-packages/"`
+@@ -19290,7 +19291,7 @@
+ $as_echo_n "checking python extra libraries... " >&6; }
+ PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
+ conf = distutils.sysconfig.get_config_var; \
+- print (conf('LOCALMODLIBS') or '')+' '+(conf('LIBS') or '')"
++ print((conf('LOCALMODLIBS') or '')+' '+(conf('LIBS') or ''))"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5
+ $as_echo "$PYTHON_EXTRA_LIBS" >&6; }`
+
+diff -Naur spack-src/macros/ac_python_devel.m4 spack-src.patched/macros/ac_python_devel.m4
+--- spack-src/macros/ac_python_devel.m4 2017-09-06 09:48:30.000000000 -0400
++++ spack-src.patched/macros/ac_python_devel.m4 2021-05-06 11:32:59.545478100 -0400
+@@ -43,9 +43,10 @@
+ AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path])
+
+ # Check for Python library path
++ PYTHON_MAJOR=`echo $PYTHON_VERSION | sed "s,\..*$,,"`
+ AC_MSG_CHECKING([for Python library path])
+ for i in "$base_python_path/lib/python$PYTHON_VERSION/config/" "$base_python_path/lib/python$PYTHON_VERSION/" "$base_python_path/lib/python/config/" "$base_python_path/lib/python/" "$base_python_path/" "$base_python_path/libs/" ; do
+- python_path=`find $i -name libpython$PYTHON_VERSION.* -print 2> /dev/null | sed "1q"`
++ python_path=`find $i -name libpython$PYTHON_MAJOR.* -print 2> /dev/null | sed "1q"`
+ if test -n "$python_path" ; then
+ break
+ fi
+@@ -55,7 +56,7 @@
+ if test -z "$python_path" ; then
+ AC_MSG_ERROR([cannot find Python library path])
+ fi
+- AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"])
++ AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_MAJOR"])
+ #
+ python_site=`echo $base_python_path | sed "s/config/site-packages/"`
+ AC_SUBST([PYTHON_SITE_PKG],[$python_site])
+@@ -65,7 +66,7 @@
+ AC_MSG_CHECKING(python extra libraries)
+ PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
+ conf = distutils.sysconfig.get_config_var; \
+- print (conf('LOCALMODLIBS') or '')+' '+(conf('LIBS') or '')"
++ print((conf('LOCALMODLIBS') or '')+' '+(conf('LIBS') or ''))"
+ AC_MSG_RESULT($PYTHON_EXTRA_LIBS)`
+ AC_SUBST(PYTHON_EXTRA_LIBS)
+ ])
diff --git a/var/spack/repos/builtin/packages/geos/package.py b/var/spack/repos/builtin/packages/geos/package.py
index d34a88be9c..f1f29bd0f4 100644
--- a/var/spack/repos/builtin/packages/geos/package.py
+++ b/var/spack/repos/builtin/packages/geos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,18 +6,19 @@
from spack import *
-class Geos(AutotoolsPackage):
+class Geos(CMakePackage):
"""GEOS (Geometry Engine - Open Source) is a C++ port of the Java
Topology Suite (JTS). As such, it aims to contain the complete
functionality of JTS in C++. This includes all the OpenGIS
Simple Features for SQL spatial predicate functions and spatial
operators, as well as specific JTS enhanced topology functions."""
- homepage = "http://trac.osgeo.org/geos/"
+ homepage = "https://trac.osgeo.org/geos/"
url = "https://download.osgeo.org/geos/geos-3.8.1.tar.bz2"
maintainers = ['adamjstewart']
+ version('3.9.1', sha256='7e630507dcac9dc07565d249a26f06a15c9f5b0c52dd29129a0e3d381d7e382a')
version('3.8.1', sha256='4258af4308deb9dbb5047379026b4cd9838513627cb943a44e16c40e42ae17f7')
version('3.7.2', sha256='2166e65be6d612317115bfec07827c11b403c3f303e0a7420a2106bc999d7707')
version('3.6.2', sha256='045a13df84d605a866602f6020fc6cbf8bf4c42fb50de237a08926e1d7d7652a')
@@ -37,37 +38,20 @@ class Geos(AutotoolsPackage):
version('3.3.4', sha256='cd5400aa5f3fe32246dfed5d238c5017e1808162c865c016480b3e6c07271904')
version('3.3.3', sha256='dfcf4bd70ab212a5b7bad21d01b84748f101a545092b56dafdc3882ef3bddec9')
- # Ruby bindings are fully supported
- variant('ruby', default=False, description='Enable Ruby support')
+ depends_on('cmake@3.8:', type='build')
+ depends_on('ninja', type='build')
- # Since version 3.0, the Python bindings are unsupported
- variant('python', default=False, description='Enable Python support')
+ generator = 'Ninja'
- extends('ruby', when='+ruby')
- extends('python', when='+python')
+ patch('https://patch-diff.githubusercontent.com/raw/libgeos/geos/pull/461.patch',
+ sha256='58795ae79f168851f27aa488a589796f9a7563d368ffa32e1fe315eb71699877',
+ when='@3.7:')
- # Python 3 is supposedly supported, but I couldn't get it to work
- # https://trac.osgeo.org/geos/ticket/774
- depends_on('python@:2', when='@:3.5')
-
- depends_on('swig', type='build', when='+ruby')
- depends_on('swig', type='build', when='+python')
-
- # I wasn't able to get the ruby bindings working.
- # It resulted in "Undefined symbols for architecture x86_64".
-
- def configure_args(self):
- spec = self.spec
+ def cmake_args(self):
args = []
- if '+ruby' in spec:
- args.append('--enable-ruby')
- else:
- args.append('--disable-ruby')
-
- if '+python' in spec:
- args.append('--enable-python')
- else:
- args.append('--disable-python')
+ # https://github.com/libgeos/geos/issues/460
+ if '%intel' in self.spec:
+ args.append(self.define('BUILD_ASTYLE', False))
return args
diff --git a/var/spack/repos/builtin/packages/gettext/package.py b/var/spack/repos/builtin/packages/gettext/package.py
index 84db1bd9be..8cb7c04b19 100644
--- a/var/spack/repos/builtin/packages/gettext/package.py
+++ b/var/spack/repos/builtin/packages/gettext/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -73,10 +73,8 @@ class Gettext(AutotoolsPackage, GNUMirrorPackage):
config_args.append('--disable-curses')
if '+libxml2' in spec:
- config_args.append('CPPFLAGS=-I{0}/include'.format(
+ config_args.append('--with-libxml2-prefix={0}'.format(
spec['libxml2'].prefix))
- config_args.append('LDFLAGS=-L{0} -Wl,-rpath,{0}'.format(
- spec['libxml2'].libs.directories[0]))
else:
config_args.append('--with-included-libxml')
diff --git a/var/spack/repos/builtin/packages/gflags/package.py b/var/spack/repos/builtin/packages/gflags/package.py
index 200cc489fa..ea4fc4dfa0 100644
--- a/var/spack/repos/builtin/packages/gflags/package.py
+++ b/var/spack/repos/builtin/packages/gflags/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gfsio/package.py b/var/spack/repos/builtin/packages/gfsio/package.py
new file mode 100644
index 0000000000..430f1b1da7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gfsio/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 Gfsio(CMakePackage):
+ """The GFSIO library provides an API to convert GFS Gaussian output into
+ grib output.
+
+ This is part of the NOAA NCEPLIBS project."""
+
+ homepage = "https://github.com/NOAA-EMC/NCEPLIBS-gfsio"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-gfsio/archive/refs/tags/v1.4.1.tar.gz"
+
+ maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett']
+
+ version('1.4.1', sha256='eab106302f520600decc4f9665d7c6a55e7b4901fab6d9ef40f29702b89b69b1')
diff --git a/var/spack/repos/builtin/packages/ghost/package.py b/var/spack/repos/builtin/packages/ghost/package.py
index a02e070115..3011d70583 100644
--- a/var/spack/repos/builtin/packages/ghost/package.py
+++ b/var/spack/repos/builtin/packages/ghost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -32,7 +32,7 @@ class Ghost(CMakePackage, CudaPackage):
# ###################### Dependencies ##########################
# Everything should be compiled position independent (-fpic)
- depends_on('cmake@3.5:')
+ depends_on('cmake@3.5:', type='build')
depends_on('hwloc')
depends_on('blas')
depends_on('mpi', when='+mpi')
@@ -44,16 +44,11 @@ class Ghost(CMakePackage, CudaPackage):
# note: we require the cblas_include_dir property from the blas
# provider, this is implemented at least for intel-mkl and
# netlib-lapack
- args = ['-DGHOST_ENABLE_MPI:BOOL=%s'
- % ('ON' if '+mpi' in spec else 'OFF'),
- '-DGHOST_USE_CUDA:BOOL=%s'
- % ('ON' if '+cuda' in spec else 'OFF'),
- '-DGHOST_USE_SCOTCH:BOOL=%s'
- % ('ON' if '+scotch' in spec else 'OFF'),
- '-DGHOST_USE_ZOLTAN:BOOL=%s'
- % ('ON' if '+zoltan' in spec else 'OFF'),
- '-DBUILD_SHARED_LIBS:BOOL=%s'
- % ('ON' if '+shared' in spec else 'OFF'),
+ args = [self.define_from_variant('GHOST_ENABLE_MPI', 'mpi'),
+ self.define_from_variant('GHOST_USE_CUDA', 'cuda'),
+ self.define_from_variant('GHOST_USE_SCOTCH', 'scotch'),
+ self.define_from_variant('GHOST_USE_ZOLTAN', 'zoltan'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
'-DCBLAS_INCLUDE_DIR:STRING=%s'
% format(spec['blas'].headers.directories[0]),
'-DBLAS_LIBRARIES=%s'
diff --git a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py
index 62fadcd4c7..7d75f3ba59 100644
--- a/var/spack/repos/builtin/packages/ghostscript-fonts/package.py
+++ b/var/spack/repos/builtin/packages/ghostscript-fonts/package.py
@@ -1,16 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+from spack import *
+
class GhostscriptFonts(Package):
"""Ghostscript Fonts"""
- homepage = "http://ghostscript.com/"
+ homepage = "https://ghostscript.com/"
url = "https://www.imagemagick.org/download/delegates/ghostscript-fonts-std-8.11.tar.gz"
version('8.11', sha256='0eb6f356119f2e49b2563210852e17f57f9dcc5755f350a69a46a0d641a0c401')
diff --git a/var/spack/repos/builtin/packages/ghostscript/package.py b/var/spack/repos/builtin/packages/ghostscript/package.py
index 4d6851a891..c129b97b32 100644
--- a/var/spack/repos/builtin/packages/ghostscript/package.py
+++ b/var/spack/repos/builtin/packages/ghostscript/package.py
@@ -1,27 +1,33 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 shutil
import re
+import shutil
+
+from spack import *
class Ghostscript(AutotoolsPackage):
"""An interpreter for the PostScript language and for PDF."""
- homepage = "http://ghostscript.com/"
+ homepage = "https://ghostscript.com/"
url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs926/ghostscript-9.26.tar.gz"
executables = [r'^gs$']
+ version('9.54.0', sha256='0646bb97f6f4d10a763f4919c54fa28b4fbdd3dff8e7de3410431c81762cade0')
+ version('9.53.3', sha256='6eaf422f26a81854a230b80fd18aaef7e8d94d661485bd2e97e695b9dce7bf7f')
version('9.50', sha256='0f53e89fd647815828fc5171613e860e8535b68f7afbc91bf89aee886769ce89')
version('9.27', sha256='9760e8bdd07a08dbd445188a6557cb70e60ccb6a5601f7dbfba0d225e28ce285')
version('9.26', sha256='831fc019bd477f7cc2d481dc5395ebfa4a593a95eb2fe1eb231a97e450d7540d')
version('9.21', sha256='02bceadbc4dddeb6f2eec9c8b1623d945d355ca11b8b4df035332b217d58ce85')
version('9.18', sha256='5fc93079749a250be5404c465943850e3ed5ffbc0d5c07e10c7c5ee8afbbdb1b')
+ # https://www.ghostscript.com/ocr.html
+ variant('tesseract', default=False, description='Use the Tesseract library for OCR')
+
depends_on('pkgconfig', type='build')
depends_on('krb5', type='link')
@@ -34,7 +40,18 @@ class Ghostscript(AutotoolsPackage):
depends_on('libxext')
depends_on('gtkplus')
- patch('nogoto.patch', when='%fj')
+ # https://www.ghostscript.com/doc/9.53.0/News.htm
+ conflicts('+tesseract', when='@:9.52', msg='Tesseract OCR engine added in 9.53.0')
+
+ # https://trac.macports.org/ticket/62832
+ conflicts('+tesseract', when='platform=darwin', msg='Tesseract does not build correctly on macOS')
+
+ patch('nogoto.patch', when='%fj@:4.1.0')
+
+ # Related bug report: https://bugs.ghostscript.com/show_bug.cgi?id=702985
+ patch("https://github.com/ArtifexSoftware/ghostpdl/commit/41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch",
+ when='@:9.53.3^freetype@2.10.3:',
+ sha256="49c353106d97c40b3b2c78f72ce34e3eef66e6b04861c313f87bad11ab4189e6")
def url_for_version(self, version):
baseurl = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs{0}/ghostscript-{1}.tar.gz"
@@ -46,7 +63,7 @@ class Ghostscript(AutotoolsPackage):
we have to remove these vendored dependencies.
Note that this approach is also recommended by Linux from Scratch:
- http://www.linuxfromscratch.org/blfs/view/svn/pst/gs.html
+ https://www.linuxfromscratch.org/blfs/view/svn/pst/gs.html
"""
directories = ['freetype', 'jpeg', 'libpng', 'zlib']
if self.spec.satisfies('@:9.21'):
@@ -62,12 +79,17 @@ class Ghostscript(AutotoolsPackage):
string=True)
def configure_args(self):
- return [
+ args = [
'--disable-compile-inits',
'--enable-dynamic',
'--with-system-libtiff',
]
+ if self.spec.satisfies('@9.53:'):
+ args.extend(self.with_or_without('tesseract'))
+
+ return args
+
def build(self, spec, prefix):
make()
make('so')
diff --git a/var/spack/repos/builtin/packages/giblib/package.py b/var/spack/repos/builtin/packages/giblib/package.py
new file mode 100644
index 0000000000..7fb2562b69
--- /dev/null
+++ b/var/spack/repos/builtin/packages/giblib/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 Giblib(AutotoolsPackage):
+ """Giblib is a simple library which wraps imlib2's context
+ API, avoiding all the context_get/set calls, adds
+ fontstyles to the truetype renderer and supplies a generic
+ doubly-linked list and some string functions."""
+
+ homepage = "https://web.archive.org/web/20071002210842/http://linuxbrit.co.uk/giblib/"
+ url = "https://mirror.amdmi3.ru/distfiles/giblib-1.2.4.tar.gz"
+
+ version('1.2.4', sha256='176611c4d88d742ea4013991ad54c2f9d2feefbc97a28434c0f48922ebaa8bac')
+
+ depends_on('imlib2')
diff --git a/var/spack/repos/builtin/packages/giflib/package.py b/var/spack/repos/builtin/packages/giflib/package.py
index 69a1b0dc8d..eebeb8e696 100644
--- a/var/spack/repos/builtin/packages/giflib/package.py
+++ b/var/spack/repos/builtin/packages/giflib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,16 +6,48 @@
from spack import *
-class Giflib(AutotoolsPackage, SourceforgePackage):
+class Giflib(MakefilePackage, SourceforgePackage):
"""The GIFLIB project maintains the giflib service library, which has
been pulling images out of GIFs since 1989."""
homepage = "http://giflib.sourceforge.net/"
- sourceforge_mirror_path = "giflib/giflib-5.1.4.tar.bz2"
+ sourceforge_mirror_path = "giflib/giflib-5.1.4.tar.gz"
- version('5.1.4', sha256='df27ec3ff24671f80b29e6ab1c4971059c14ac3db95406884fc26574631ba8d5')
+ version('5.2.1', sha256='31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd')
+ version('5.2.0', sha256='dc7257487c767137602d86c17098ec97065a718ff568a61cfcf1a9466f197b1f')
+ version('5.1.4', sha256='df27ec3ff24671f80b29e6ab1c4971059c14ac3db95406884fc26574631ba8d5', extension='tar.bz2')
+
+ depends_on('automake', type='build', when='@:5.2.0')
+ depends_on('autoconf', type='build', when='@:5.2.0')
+ depends_on('m4', type='build', when='@:5.2.0')
+ depends_on('libtool', type='build', when='@:5.2.0')
patch('bsd-head.patch')
+ def prefix_and_libversion_args(self):
+ args = []
+ if self.spec.satisfies('@5.2.0:'):
+ args.extend([
+ 'PREFIX={0}'.format(self.spec.prefix),
+ 'LIBMAJOR={0}'.format(self.spec.version.up_to(1)),
+ 'LIBVER={0}'.format(self.spec.version)
+ ])
+ return args
+
+ @property
+ def build_targets(self):
+ targets = ['all'] + self.prefix_and_libversion_args()
+ return targets
+
+ @property
+ def install_targets(self):
+ targets = ['install'] + self.prefix_and_libversion_args()
+ return targets
+
def check(self):
make('check', parallel=False)
+
+ def edit(self, spec, prefix):
+ if spec.satisfies('@:5.2.0'):
+ configure = Executable('./configure')
+ configure('--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/ginac/package.py b/var/spack/repos/builtin/packages/ginac/package.py
index 71c0c1a2ee..051c66b419 100644
--- a/var/spack/repos/builtin/packages/ginac/package.py
+++ b/var/spack/repos/builtin/packages/ginac/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ginkgo/1.4.0_skip_invalid_smoke_tests.patch b/var/spack/repos/builtin/packages/ginkgo/1.4.0_skip_invalid_smoke_tests.patch
new file mode 100644
index 0000000000..40fdc033fc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ginkgo/1.4.0_skip_invalid_smoke_tests.patch
@@ -0,0 +1,95 @@
+diff --git a/test/test_install/test_install.cpp b/test/test_install/test_install.cpp
+index fb9f479c06..cd2ac76855 100644
+--- a/test/test_install/test_install.cpp
++++ b/test/test_install/test_install.cpp
+@@ -35,6 +35,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #include <chrono>
+ #include <cmath>
++#include <cstdlib>
+ #include <fstream>
+ #include <iostream>
+ #include <map>
+@@ -93,8 +94,7 @@ void check_solver(std::shared_ptr<gko::Executor> exec,
+ const gko::matrix::Dense<> *b, gko::matrix::Dense<> *x)
+ {
+ using Mtx = gko::matrix::Csr<>;
+- auto A =
+- gko::share(Mtx::create(exec, std::make_shared<Mtx::load_balance>()));
++ auto A = gko::share(Mtx::create(exec, std::make_shared<Mtx::classical>()));
+
+ auto num_iters = 20u;
+ double reduction_factor = 1e-7;
+@@ -117,8 +117,8 @@ void check_solver(std::shared_ptr<gko::Executor> exec,
+ #if defined(HAS_HIP) || defined(HAS_CUDA)
+ // If we are on a device, we need to run a reference test to compare against
+ auto exec_ref = exec->get_master();
+- auto A_ref = gko::share(
+- Mtx::create(exec_ref, std::make_shared<Mtx::load_balance>()));
++ auto A_ref =
++ gko::share(Mtx::create(exec_ref, std::make_shared<Mtx::classical>()));
+ A_ref->read(A_raw);
+ auto solver_gen_ref =
+ Solver::build()
+@@ -147,13 +147,35 @@ class PolymorphicObjectTest : public gko::PolymorphicObject {};
+ int main()
+ {
+ #if defined(HAS_CUDA)
+- auto exec = gko::CudaExecutor::create(0, gko::ReferenceExecutor::create());
++ auto extra_info = "(CUDA)";
++ using exec_type = gko::CudaExecutor;
+ #elif defined(HAS_HIP)
+- auto exec = gko::HipExecutor::create(0, gko::ReferenceExecutor::create());
++ auto extra_info = "(HIP)";
++ using exec_type = gko::HipExecutor;
+ #else
+- auto exec = gko::ReferenceExecutor::create();
++ auto extra_info = "(REFERENCE)";
++ using exec_type = gko::ReferenceExecutor;
+ #endif
+
++ std::shared_ptr<exec_type> exec;
++ try {
++#if defined(HAS_CUDA) || defined(HAS_HIP)
++ exec = exec_type::create(0, gko::ReferenceExecutor::create());
++#else
++ exec = exec_type::create();
++#endif
++ // We also try to to synchronize to ensure we really have an available
++ // device
++ exec->synchronize();
++ } catch (gko::Error &e) {
++ // Exit gracefully to not trigger CI errors. We only skip the tests in
++ // this setting
++ std::cerr
++ << "test_install" << extra_info
++ << ": a compatible device could not be found. Skipping test.\n";
++ std::exit(0);
++ }
++
+ using vec = gko::matrix::Dense<>;
+ #if HAS_REFERENCE
+ auto b = gko::read<vec>(std::ifstream("data/b.mtx"), exec);
+@@ -329,7 +351,7 @@ int main()
+ // core/matrix/csr.hpp
+ {
+ using Mtx = gko::matrix::Csr<>;
+- auto test = Mtx::create(exec, std::make_shared<Mtx::load_balance>());
++ auto test = Mtx::create(exec, std::make_shared<Mtx::classical>());
+ }
+
+ // core/matrix/dense.hpp
+@@ -491,13 +513,6 @@ int main()
+ .with_criteria(std::move(time), std::move(iteration))
+ .on(exec);
+ }
+-#if defined(HAS_CUDA)
+- auto extra_info = "(CUDA)";
+-#elif defined(HAS_HIP)
+- auto extra_info = "(HIP)";
+-#else
+- auto extra_info = "(REFERENCE)";
+-#endif
+ std::cout << "test_install" << extra_info
+ << ": the Ginkgo installation was correctly detected "
+ "and is complete."
diff --git a/var/spack/repos/builtin/packages/ginkgo/package.py b/var/spack/repos/builtin/packages/ginkgo/package.py
index 0e48e555fe..59a3f17c1e 100644
--- a/var/spack/repos/builtin/packages/ginkgo/package.py
+++ b/var/spack/repos/builtin/packages/ginkgo/package.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
-class Ginkgo(CMakePackage, CudaPackage):
+class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
"""High-performance linear algebra library for manycore systems,
with a focus on sparse solution of linear systems."""
@@ -18,6 +19,7 @@ class Ginkgo(CMakePackage, CudaPackage):
version('develop', branch='develop')
version('master', branch='master')
+ version('1.4.0', commit='f811917c1def4d0fcd8db3fe5c948ce13409e28e') # v1.4.0
version('1.3.0', commit='4678668c66f634169def81620a85c9a20b7cec78') # v1.3.0
version('1.2.0', commit='b4be2be961fd5db45c3d02b5e004d73550722e31') # v1.2.0
version('1.1.1', commit='08d2c5200d3c78015ac8a4fd488bafe1e4240cf5') # v1.1.1
@@ -28,29 +30,36 @@ class Ginkgo(CMakePackage, CudaPackage):
variant('full_optimizations', default=False, description='Compile with all optimizations')
variant('openmp', default=sys.platform != 'darwin', description='Build with OpenMP')
variant('develtools', default=False, description='Compile with develtools enabled')
+ variant('hwloc', default=False, description='Enable HWLOC support')
variant('build_type', default='Release',
description='The build type to build',
values=('Debug', 'Release'))
- variant('hip', default=False, description='Compile Ginkgo with HIP support')
depends_on('cmake@3.9:', type='build')
depends_on('cuda@9:', when='+cuda')
- depends_on('hip', when='+hip')
- depends_on('hipsparse', type="link", when='+hip')
- depends_on('hipblas', type="link", when='+hip')
- depends_on('rocrand', type="link", when='@develop+hip')
- depends_on('rocthrust', type="build", when='+hip')
+ depends_on('rocthrust', type="build", when='+rocm')
+ depends_on('hipsparse', type="link", when='+rocm')
+ depends_on('hipblas', type="link", when='+rocm')
+ depends_on('rocrand', type="link", when='+rocm')
+ depends_on('hwloc@2.1:', type="link", when='+hwloc')
- # Somehow, these dependencies not propagated by the HIP stack?
- depends_on('rocm-device-libs', type="link", when='+hip')
- depends_on('comgr', type="link", when='+hip')
+ depends_on('googletest', type="test")
+ depends_on('numactl', type="test", when="+hwloc")
conflicts('%gcc@:5.2.9')
- conflicts("+hip", when="@:1.1.1")
- # The HIP packages from spack doen't seem to work well with CUDA
- # backend for now, so disable HIP with CUDA backend.
- conflicts("+cuda", when="+hip")
+ conflicts("+rocm", when="@:1.1.1")
+ conflicts("+cuda", when="+rocm")
+
+ # ROCm 4.1.0 breaks platform settings which breaks Ginkgo's HIP support.
+ conflicts("^hip@4.1.0:", when="@:1.3.0")
+ conflicts("^hipblas@4.1.0:", when="@:1.3.0")
+ conflicts("^hipsparse@4.1.0:", when="@:1.3.0")
+ conflicts("^rocthrust@4.1.0:", when="@:1.3.0")
+
+ # Skip smoke tests if compatible hardware isn't found
+ patch('1.4.0_skip_invalid_smoke_tests.patch', when='@master')
+ patch('1.4.0_skip_invalid_smoke_tests.patch', when='@1.4.0')
def cmake_args(self):
# Check that the have the correct C++ standard is available
@@ -66,23 +75,35 @@ class Ginkgo(CMakePackage, CudaPackage):
InstallError('Ginkgo requires a C++14-compliant C++ compiler')
spec = self.spec
+ from_variant = self.define_from_variant
args = [
- '-DGINKGO_BUILD_CUDA=%s' % ('ON' if '+cuda' in spec else 'OFF'),
- '-DGINKGO_BUILD_OMP=%s' % ('ON' if '+openmp' in spec else 'OFF'),
- '-DBUILD_SHARED_LIBS=%s' % ('ON' if '+shared' in spec else 'OFF'),
- '-DGINKGO_JACOBI_FULL_OPTIMIZATIONS=%s' % (
- 'ON' if '+full_optimizations' in spec else 'OFF'),
- '-DGINKGO_DEVEL_TOOLS=%s' % (
- 'ON' if '+develtools' in spec else 'OFF'),
- '-DGINKGO_BUILD_HIP=%s' % ('ON' if '+hip' in spec else 'OFF'),
+ from_variant('GINKGO_BUILD_CUDA', 'cuda'),
+ from_variant('GINKGO_BUILD_HIP', 'rocm'),
+ from_variant('GINKGO_BUILD_OMP', 'openmp'),
+ from_variant('BUILD_SHARED_LIBS', 'shared'),
+ from_variant('GINKGO_JACOBI_FULL_OPTIMIZATIONS', 'full_optimizations'),
+ from_variant('GINKGO_BUILD_HWLOC', 'hwloc'),
+ from_variant('GINKGO_DEVEL_TOOLS', 'develtools'),
# As we are not exposing benchmarks, examples, tests nor doc
# as part of the installation, disable building them altogether.
'-DGINKGO_BUILD_BENCHMARKS=OFF',
'-DGINKGO_BUILD_DOC=OFF',
'-DGINKGO_BUILD_EXAMPLES=OFF',
- '-DGINKGO_BUILD_TESTS=OFF'
+ self.define('GINKGO_BUILD_TESTS', self.run_tests),
+ # Let spack handle the RPATH
+ '-DGINKGO_INSTALL_RPATH=OFF'
]
- if '+hip' in spec:
+
+ if self.run_tests:
+ args.append('-DGINKGO_USE_EXTERNAL_GTEST=ON')
+
+ if '+cuda' in spec:
+ archs = spec.variants['cuda_arch'].value
+ if archs != 'none':
+ arch_str = ";".join(archs)
+ args.append('-DGINKGO_CUDA_ARCHITECTURES={0}'.format(arch_str))
+
+ if '+rocm' in spec:
args.append('-DHIP_PATH={0}'. format(spec['hip'].prefix))
args.append('-DHIP_CLANG_PATH={0}/bin'.
format(spec['llvm-amdgpu'].prefix))
@@ -92,11 +113,43 @@ class Ginkgo(CMakePackage, CudaPackage):
format(spec['hipsparse'].prefix))
args.append('-DHIPBLAS_PATH={0}'.
format(spec['hipblas'].prefix))
+ args.append('-DHIPRAND_PATH={0}/hiprand'.
+ format(spec['rocrand'].prefix))
+ args.append('-DROCRAND_PATH={0}/rocrand'.
+ format(spec['rocrand'].prefix))
+ archs = self.spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ";".join(archs)
+ args.append(
+ '-DGINKGO_HIP_AMDGPU={0}'.format(arch_str)
+ )
return args
@run_after('install')
- @on_package_attributes(run_tests=True)
- def test_install(self):
- """Perform smoke tests on the installed package."""
+ def setup_build_tests(self):
+ """Build and install the smoke tests."""
+ # For now only 1.4.0 and later releases support this scheme.
+ if self.spec.satisfies('@:1.3.0'):
+ return
with working_dir(self.build_directory):
make("test_install")
+ smoke_test_path = join_path(self.build_directory, 'test', 'test_install')
+ with working_dir(smoke_test_path):
+ make("install")
+
+ def test(self):
+ """Run the smoke tests."""
+ # For now only 1.4.0 and later releases support this scheme.
+ if self.spec.satisfies('@:1.3.0'):
+ print("SKIPPED: smoke tests not supported with this Ginkgo version.")
+ return
+ files = [('test_install', [r'REFERENCE',
+ r'correctly detected and is complete']),
+ ('test_install_cuda', [r'CUDA',
+ r'correctly detected and is complete']),
+ ('test_install_hip', [r'HIP',
+ r'correctly detected and is complete'])]
+ smoke_test_path = join_path(self.prefix, 'smoke_tests')
+ for f, expected in files:
+ self.run_test(f, [], expected, skip_missing=True, installed=True,
+ work_dir=smoke_test_path)
diff --git a/var/spack/repos/builtin/packages/giraph/package.py b/var/spack/repos/builtin/packages/giraph/package.py
index 52e7e80499..3ee58094ab 100644
--- a/var/spack/repos/builtin/packages/giraph/package.py
+++ b/var/spack/repos/builtin/packages/giraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/git-annex/package.py b/var/spack/repos/builtin/packages/git-annex/package.py
new file mode 100644
index 0000000000..3b75339384
--- /dev/null
+++ b/var/spack/repos/builtin/packages/git-annex/package.py
@@ -0,0 +1,79 @@
+# Copyright 2013-2021 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)
+
+import os
+import platform
+import re
+
+from spack import *
+
+
+class GitAnnex(Package):
+ """
+ git-annex allows managing files with git, without checking the file
+ contents into git. While that may seem paradoxical, it is useful when
+ dealing with files larger than git can currently easily handle, whether
+ due to limitations in memory, time, or disk space.
+ """
+
+ homepage = "https://git-annex.branchable.com"
+
+ # git-annex is written in Haskell which is currently not supported in
+ # spack, thus a similar approach as in the pandoc package was chosen. The
+ # following installs the standalone binaries for git-annex.
+
+ # git-annex does not use download links encoding the version but updates
+ # the "current" standalone file and keeps track of the version via
+ # git-annex itself
+ #
+ # Steps to find the static link e.g. for amd64:
+ # - $ git clone https://downloads.kitenet.net/.git/
+ # - $ ls -la git-annex/linux/current/
+ # gives for example for amd64
+ # ../../../.git/annex/objects/KM/Ff/SHA256E-s51276461--a1cef631ef2cc0c977580eacaa1294d7617727df99214920ca6e8f3172bae03e.tar.gz/SHA256E-s51276461--a1cef631ef2cc0c977580eacaa1294d7617727df99214920ca6e8f3172bae03e.tar.gz
+ # - exchange "../../../" with "https://downloads.kitenet.net" and you have the link
+ # the version to the link can be found in
+ # git-annex/linux/current/git-annex-standalone-amd64.tar.gz.info
+ # Caution: the version on the webpage
+ # (meaning here: https://downloads.kitenet.net/git-annex/linux/current/) is
+ # broken and always behind
+
+ if platform.system() == "Linux" and platform.machine() == "aarch64":
+ version('8.20210622', sha256='869f875e280db0cc3243d9d0d33492f1c3bc182053544c1d5eb0ec463125fe76',
+ url="https://downloads.kitenet.net/.git/annex/objects/MJ/p3/SHA256E-s55109776--869f875e280db0cc3243d9d0d33492f1c3bc182053544c1d5eb0ec463125fe76.tar.gz/SHA256E-s55109776--869f875e280db0cc3243d9d0d33492f1c3bc182053544c1d5eb0ec463125fe76.tar.gz")
+
+ elif platform.system() == "Linux":
+ version('8.20210622', sha256='a1cef631ef2cc0c977580eacaa1294d7617727df99214920ca6e8f3172bae03e',
+ url="https://downloads.kitenet.net/.git/annex/objects/KM/Ff/SHA256E-s51276461--a1cef631ef2cc0c977580eacaa1294d7617727df99214920ca6e8f3172bae03e.tar.gz/SHA256E-s51276461--a1cef631ef2cc0c977580eacaa1294d7617727df99214920ca6e8f3172bae03e.tar.gz")
+
+ variant('standalone', default=False,
+ description='Install git-annex fully standalone incl. git')
+
+ depends_on('git', when='~standalone')
+
+ conflicts('platform=darwin', msg='Darwin is not supported.')
+ conflicts('platform=windows', msg='Windows is not supported.')
+
+ executables = ['^git-annex$']
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('version', output=str, error=str)
+ match = re.search(r'git-annex version: ([0-9.]+)', output)
+ if not match:
+ return None
+ version = match.group(1)
+ return version
+
+ def install(self, spec, prefix):
+ install_tree('.', prefix.bin)
+
+ if '~standalone' in spec:
+ # use git provided by spack instead of the one in the package
+ git_files = ['git', 'git-receive-pack', 'git-shell', 'git-upload-pack']
+ for i in git_files:
+ os.remove(join_path(prefix.bin, i))
+ os.symlink(join_path(spec['git'].prefix.bin, i),
+ join_path(prefix.bin, i))
diff --git a/var/spack/repos/builtin/packages/git-fat-git/package.py b/var/spack/repos/builtin/packages/git-fat-git/package.py
index 2c089190f6..8c725409f1 100644
--- a/var/spack/repos/builtin/packages/git-fat-git/package.py
+++ b/var/spack/repos/builtin/packages/git-fat-git/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/git-imerge/package.py b/var/spack/repos/builtin/packages/git-imerge/package.py
index 4e5bb20b3b..35a6719f90 100644
--- a/var/spack/repos/builtin/packages/git-imerge/package.py
+++ b/var/spack/repos/builtin/packages/git-imerge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/git-lfs/package.py b/var/spack/repos/builtin/packages/git-lfs/package.py
index 2c72007f41..9e0a0a1d91 100644
--- a/var/spack/repos/builtin/packages/git-lfs/package.py
+++ b/var/spack/repos/builtin/packages/git-lfs/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import re
+
from spack import *
diff --git a/var/spack/repos/builtin/packages/git/package.py b/var/spack/repos/builtin/packages/git/package.py
index d356b5f8ae..afb4f537b0 100644
--- a/var/spack/repos/builtin/packages/git/package.py
+++ b/var/spack/repos/builtin/packages/git/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import sys
-import re
import os
+import re
+import sys
+
from spack import *
@@ -28,6 +29,26 @@ class Git(AutotoolsPackage):
# You can find the source here: https://mirrors.edge.kernel.org/pub/software/scm/git/sha256sums.asc
releases = [
{
+ 'version': '2.31.1',
+ 'sha256': '46d37c229e9d786510e0c53b60065704ce92d5aedc16f2c5111e3ed35093bfa7',
+ 'sha256_manpages': 'd330498aaaea6928b0abbbbb896f6f605efd8d35f23cbbb2de38c87a737d4543'
+ },
+ {
+ 'version': '2.31.0',
+ 'sha256': 'bc6168777883562569144d536e8a855b12d25d46870d95188a3064260d7784ee',
+ 'sha256_manpages': 'a51b760c36be19113756839a9110b328a09abfff0d57f1c93ddac3974ccbc238'
+ },
+ {
+ 'version': '2.30.1',
+ 'sha256': '23a3e53f0d2dd3e62a8147b24a1a91d6ffe95b92123ef4dbae04e9a6205e71c0',
+ 'sha256_manpages': 'db323e1b242e9d0337363b1e538c8b879e4c46eedbf94d3bee9e65dab6d49138'
+ },
+ {
+ 'version': '2.30.0',
+ 'sha256': 'd24c4fa2a658318c2e66e25ab67cc30038a35696d2d39e6b12ceccf024de1e5e',
+ 'sha256_manpages': 'e23035ae232c9a5eda57db258bc3b7f1c1060cfd66920f92c7d388b6439773a6'
+ },
+ {
'version': '2.29.0',
'sha256': 'fa08dc8424ef80c0f9bf307877f9e2e49f1a6049e873530d6747c2be770742ff',
'sha256_manpages': '8f3bf70ddb515674ce2e19572920a39b1be96af12032b77f1dd57898981fb151'
@@ -53,6 +74,16 @@ class Git(AutotoolsPackage):
'sha256_manpages': '22b2380842ef75e9006c0358de250ead449e1376d7e5138070b9a3073ef61d44'
},
{
+ 'version': '2.23.0',
+ 'sha256': 'e3396c90888111a01bf607346db09b0fbf49a95bc83faf9506b61195936f0cfe',
+ 'sha256_manpages': 'a5b0998f95c2290386d191d34780d145ea67e527fac98541e0350749bf76be75'
+ },
+ {
+ 'version': '2.22.0',
+ 'sha256': 'a4b7e4365bee43caa12a38d646d2c93743d755d1cea5eab448ffb40906c9da0b',
+ 'sha256_manpages': 'f6a5750dfc4a0aa5ec0c0cc495d4995d1f36ed47591c3941be9756c1c3a1aa0a'
+ },
+ {
'version': '2.21.0',
'sha256': '85eca51c7404da75e353eba587f87fea9481ba41e162206a6f70ad8118147bee',
'sha256_manpages': '14c76ebb4e31f9e55cf5338a04fd3a13bced0323cd51794ccf45fc74bd0c1080'
@@ -192,20 +223,28 @@ class Git(AutotoolsPackage):
release['version']),
sha256=release['sha256_manpages'],
placement='git-manpages',
- when='@{0}'.format(release['version']))
+ when='@{0} +man'.format(release['version']))
variant('tcltk', default=False,
description='Gitk: provide Tcl/Tk in the run environment')
+ variant('svn', default=False,
+ description='Provide SVN Perl dependency in run environment')
+ variant('perl', default=True,
+ description='Do not use Perl scripts or libraries at all')
+ variant('nls', default=True,
+ description='Enable native language support')
+ variant('man', default=True,
+ description='Install manual pages')
depends_on('curl')
depends_on('expat')
- depends_on('gettext')
+ depends_on('gettext', when='+nls')
depends_on('iconv')
depends_on('libidn2')
depends_on('openssl')
depends_on('pcre', when='@:2.13')
depends_on('pcre2', when='@2.14:')
- depends_on('perl')
+ depends_on('perl', when='+perl')
depends_on('zlib')
depends_on('openssh', type='run')
@@ -214,11 +253,15 @@ class Git(AutotoolsPackage):
depends_on('libtool', type='build')
depends_on('m4', type='build')
depends_on('tk', type=('build', 'link'), when='+tcltk')
+ depends_on('perl-alien-svn', type='run', when='+svn')
+
+ conflicts('+svn', when='~perl')
@classmethod
def determine_version(cls, exe):
output = Executable(exe)('--version', output=str, error=str)
- match = re.search(r'git version (\S+)', output)
+ match = re.search(
+ spack.fetch_strategy.GitFetchStrategy.git_version_re, output)
return match.group(1) if match else None
@classmethod
@@ -249,12 +292,16 @@ class Git(AutotoolsPackage):
# The test avoids failures when git is an external package.
# In that case the node in the DAG gets truncated and git DOES NOT
# have a gettext dependency.
- if 'gettext' in self.spec:
- env.append_flags('EXTLIBS', '-L{0} -lintl'.format(
- self.spec['gettext'].prefix.lib))
+ if '+nls' in self.spec:
+ if 'intl' in self.spec['gettext'].libs.names:
+ env.append_flags('EXTLIBS', '-L{0} -lintl'.format(
+ self.spec['gettext'].prefix.lib))
env.append_flags('CFLAGS', '-I{0}'.format(
self.spec['gettext'].prefix.include))
+ if '~perl' in self.spec:
+ env.append_flags('NO_PERL', '1')
+
def configure_args(self):
spec = self.spec
@@ -263,10 +310,12 @@ class Git(AutotoolsPackage):
'--with-expat={0}'.format(spec['expat'].prefix),
'--with-iconv={0}'.format(spec['iconv'].prefix),
'--with-openssl={0}'.format(spec['openssl'].prefix),
- '--with-perl={0}'.format(spec['perl'].command.path),
'--with-zlib={0}'.format(spec['zlib'].prefix),
]
+ if '+perl' in self.spec:
+ configure_args.append('--with-perl={0}'.format(spec['perl'].command.path))
+
if '^pcre' in self.spec:
configure_args.append('--with-libpcre={0}'.format(
spec['pcre'].prefix))
@@ -290,15 +339,41 @@ class Git(AutotoolsPackage):
def check(self):
make('test')
+ def build(self, spec, prefix):
+ args = []
+ if '~nls' in self.spec:
+ args.append('NO_GETTEXT=1')
+ make(*args)
+
+ def install(self, spec, prefix):
+ args = ["install"]
+ if '~nls' in self.spec:
+ args.append('NO_GETTEXT=1')
+ make(*args)
+
@run_after('install')
def install_completions(self):
install_tree('contrib/completion', self.prefix.share)
@run_after('install')
def install_manpages(self):
+ if '~man' in self.spec:
+ return
+
prefix = self.prefix
with working_dir('git-manpages'):
install_tree('man1', prefix.share.man.man1)
install_tree('man5', prefix.share.man.man5)
install_tree('man7', prefix.share.man.man7)
+
+ def setup_run_environment(self, env):
+ # Setup run environment if using SVN extension
+ # Libs from perl-alien-svn and apr-util are required in
+ # LD_LIBRARY_PATH
+ # TODO: extend to other platforms
+ if "+svn platform=linux" in self.spec:
+ perl_svn = self.spec['perl-alien-svn']
+ env.prepend_path('LD_LIBRARY_PATH', join_path(
+ perl_svn.prefix, 'lib', 'perl5', 'x86_64-linux-thread-multi',
+ 'Alien', 'SVN'))
diff --git a/var/spack/repos/builtin/packages/gitconddb/package.py b/var/spack/repos/builtin/packages/gitconddb/package.py
index e2808e91c0..1c4139ff77 100644
--- a/var/spack/repos/builtin/packages/gitconddb/package.py
+++ b/var/spack/repos/builtin/packages/gitconddb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gl2ps/package.py b/var/spack/repos/builtin/packages/gl2ps/package.py
index eed6ef3119..cd8005eb4b 100644
--- a/var/spack/repos/builtin/packages/gl2ps/package.py
+++ b/var/spack/repos/builtin/packages/gl2ps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Gl2ps(CMakePackage):
"""GL2PS is a C library providing high quality vector output for any
OpenGL application."""
- homepage = "http://www.geuz.org/gl2ps/"
- url = "http://geuz.org/gl2ps/src/gl2ps-1.3.9.tgz"
+ homepage = "https://www.geuz.org/gl2ps/"
+ url = "https://geuz.org/gl2ps/src/gl2ps-1.3.9.tgz"
version('1.4.0', sha256='03cb5e6dfcd87183f3b9ba3b22f04cd155096af81e52988cc37d8d8efe6cf1e2')
version('1.3.9', sha256='8a680bff120df8bcd78afac276cdc38041fed617f2721bade01213362bcc3640')
@@ -50,8 +50,8 @@ class Gl2ps(CMakePackage):
def cmake_args(self):
options = [
- '-DENABLE_PNG={0}'.format(self.variant_to_bool('+png')),
- '-DENABLE_ZLIB={0}'.format(self.variant_to_bool('+zlib')),
+ self.define_from_variant('ENABLE_PNG', 'png'),
+ self.define_from_variant('ENABLE_ZLIB', 'zlib'),
]
if '~doc' in self.spec:
# Make sure we don't look.
diff --git a/var/spack/repos/builtin/packages/glew/package.py b/var/spack/repos/builtin/packages/glew/package.py
index 22364b69a5..b0f6334365 100644
--- a/var/spack/repos/builtin/packages/glew/package.py
+++ b/var/spack/repos/builtin/packages/glew/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/glfmultiples/package.py b/var/spack/repos/builtin/packages/glfmultiples/package.py
index d5423a6bd5..d7d17aa629 100644
--- a/var/spack/repos/builtin/packages/glfmultiples/package.py
+++ b/var/spack/repos/builtin/packages/glfmultiples/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/glfw/package.py b/var/spack/repos/builtin/packages/glfw/package.py
index 168fff8b0e..45d3da1180 100644
--- a/var/spack/repos/builtin/packages/glfw/package.py
+++ b/var/spack/repos/builtin/packages/glfw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,14 +26,19 @@ class Glfw(CMakePackage):
version('3.0.4', sha256='a4e7c57db2086803de4fc853bd472ff8b6d2639b9aa16e6ac6b19ffb53958caf')
version('3.0.3', sha256='7a182047ba6b1fdcda778b79aac249bb2328b6d141188cb5df29560715d01693')
- depends_on('libxrandr')
- depends_on('libxinerama')
- depends_on('libxcursor')
- depends_on('libxdamage')
- depends_on('libxft')
- depends_on('libxi')
- depends_on('libxmu')
- depends_on('freetype')
- depends_on('fontconfig')
- depends_on('doxygen', type='build')
- depends_on('pkgconfig', type='build')
+ variant("doc", default=False, description="Build documentation")
+
+ # dependencies
+ depends_on('doxygen', type='build', when="+doc")
+
+ # linux only dependencies
+ depends_on('libxrandr', when='platform=linux')
+ depends_on('libxinerama', when='platform=linux')
+ depends_on('libxcursor', when='platform=linux')
+ depends_on('libxdamage', when='platform=linux')
+ depends_on('libxft', when='platform=linux')
+ depends_on('libxi', when='platform=linux')
+ depends_on('libxmu', when='platform=linux')
+ depends_on('freetype', when='platform=linux')
+ depends_on('fontconfig', when='platform=linux')
+ depends_on('pkgconfig', type='build', when='platform=linux')
diff --git a/var/spack/repos/builtin/packages/glib-networking/package.py b/var/spack/repos/builtin/packages/glib-networking/package.py
index 357571a8d7..5c96f1bc45 100644
--- a/var/spack/repos/builtin/packages/glib-networking/package.py
+++ b/var/spack/repos/builtin/packages/glib-networking/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py
index e6051296d0..975fbd5b75 100644
--- a/var/spack/repos/builtin/packages/glib/package.py
+++ b/var/spack/repos/builtin/packages/glib/package.py
@@ -1,12 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Glib(Package):
"""GLib provides the core application building blocks for
@@ -21,6 +21,14 @@ class Glib(Package):
homepage = "https://developer.gnome.org/glib/"
url = "https://ftp.gnome.org/pub/gnome/sources/glib/2.53/glib-2.53.1.tar.xz"
+ maintainers = ['michaelkuhn']
+
+ version('2.68.4', sha256='62fd061d08a75492617e625a73e2c05e259f831acbb8e1f8b9c81f23f7993a3b')
+ version('2.68.3', sha256='e7e1a3c20c026109c45c9ec4a31d8dcebc22e86c69486993e565817d64be3138')
+ version('2.68.2', sha256='ecc7798a9cc034eabdfd7f246e6dd461cdbf1175fcc2e9867cc7da7b7309e0fb')
+ version('2.66.8', sha256='97bc87dd91365589af5cbbfea2574833aea7a1b71840fd365ecd2852c76b9c8b')
+ version('2.66.7', sha256='09f158769f6f26b31074e15b1ac80ec39b13b53102dfae66cfe826fb2cc65502')
+ version('2.66.6', sha256='80fff9c63d2725834328071c42003c311f77f91caf2285195c587c62f5638329')
version('2.66.2', sha256='ec390bed4e8dd0f89e918f385e8d4cfd7470b1ef7c1ce93ec5c4fc6e3c6a17c4')
version('2.64.6', sha256='c36ee07a70164c71f046016fe6aaacd6368333c42590bc0cba47c344ffb853f1')
version('2.64.5', sha256='9cbd5bd2715ead1c28d53c46f7b7b6ff6166f5887b772c1a9e3bf2910cfecc11')
@@ -31,17 +39,17 @@ class Glib(Package):
version('2.62.6', sha256='104fa26fbefae8024ff898330c671ec23ad075c1c0bce45c325c6d5657d58b9c')
version('2.60.7', sha256='8b12c0af569afd3b71200556ad751bad4cf4bf7bc4b5f880638459a42ca86310')
version('2.58.3', sha256='8f43c31767e88a25da72b52a40f3301fefc49a665b56dc10ee7cc9565cbe7481')
- version('2.56.4', sha256='27f703d125efb07f8a743666b580df0b4095c59fc8750e8890132c91d437504c')
- version('2.56.3', sha256='a9a4c5b4c81b6c75bc140bdf5e32120ef3ce841b7413214ecf5f987acec74cb2')
- version('2.56.2', sha256='d64abd16813501c956c4e123ae79f47f1b58de573df9fdd3b0795f1e2c1aa789')
- version('2.56.1', sha256='40ef3f44f2c651c7a31aedee44259809b6f03d3d20be44545cd7d177221c0b8d')
- version('2.56.0', sha256='ecef6e17e97b8d9150d0e8a4b3edee1ac37331213b8a2a87a083deea408a0fc7')
- version('2.55.1', sha256='0cbb3d31c9d181bbcc97cba3d9dbe3250f75e2da25e5f7c8bf5a993fe54baf6a')
- version('2.53.1', sha256='c8740f1d1a138086eede889b596a511fddda180646ab2f1d98aed4fdb6be7f72')
- version('2.49.7', sha256='0fd13406ca31d6f654c3be620e0adaaa4f9fb788e164e265e33edf4b21e64ef6')
- version('2.49.4', sha256='9e914f9d7ebb88f99f234a7633368a7c1133ea21b5cac9db2a33bc25f7a0e0d1')
- version('2.48.1', sha256='74411bff489cb2a3527bac743a51018841a56a4d896cc1e0d0d54f8166a14612')
- version('2.42.1', sha256='8f3f0865280e45b8ce840e176ef83bcfd511148918cc8d39df2ee89b67dcf89a')
+ version('2.56.4', sha256='27f703d125efb07f8a743666b580df0b4095c59fc8750e8890132c91d437504c', deprecated=True)
+ version('2.56.3', sha256='a9a4c5b4c81b6c75bc140bdf5e32120ef3ce841b7413214ecf5f987acec74cb2', deprecated=True)
+ version('2.56.2', sha256='d64abd16813501c956c4e123ae79f47f1b58de573df9fdd3b0795f1e2c1aa789', deprecated=True)
+ version('2.56.1', sha256='40ef3f44f2c651c7a31aedee44259809b6f03d3d20be44545cd7d177221c0b8d', deprecated=True)
+ version('2.56.0', sha256='ecef6e17e97b8d9150d0e8a4b3edee1ac37331213b8a2a87a083deea408a0fc7', deprecated=True)
+ version('2.55.1', sha256='0cbb3d31c9d181bbcc97cba3d9dbe3250f75e2da25e5f7c8bf5a993fe54baf6a', deprecated=True)
+ version('2.53.1', sha256='c8740f1d1a138086eede889b596a511fddda180646ab2f1d98aed4fdb6be7f72', deprecated=True)
+ version('2.49.7', sha256='0fd13406ca31d6f654c3be620e0adaaa4f9fb788e164e265e33edf4b21e64ef6', deprecated=True)
+ version('2.49.4', sha256='9e914f9d7ebb88f99f234a7633368a7c1133ea21b5cac9db2a33bc25f7a0e0d1', deprecated=True)
+ version('2.48.1', sha256='74411bff489cb2a3527bac743a51018841a56a4d896cc1e0d0d54f8166a14612', deprecated=True)
+ version('2.42.1', sha256='8f3f0865280e45b8ce840e176ef83bcfd511148918cc8d39df2ee89b67dcf89a', deprecated=True)
variant('libmount', default=False, description='Build with libmount support')
variant(
@@ -60,6 +68,7 @@ class Glib(Package):
depends_on('perl', type=('build', 'run'))
depends_on('python', type=('build', 'run'), when='@2.53.4:')
depends_on('pcre+utf', when='@2.48:')
+ depends_on('uuid', when='+libmount')
depends_on('util-linux', when='+libmount')
depends_on('iconv')
diff --git a/var/spack/repos/builtin/packages/glibmm/package.py b/var/spack/repos/builtin/packages/glibmm/package.py
index 71b9388532..e9a00245f9 100644
--- a/var/spack/repos/builtin/packages/glibmm/package.py
+++ b/var/spack/repos/builtin/packages/glibmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/glimmer/package.py b/var/spack/repos/builtin/packages/glimmer/package.py
index ee8bdbb658..cdad32628a 100644
--- a/var/spack/repos/builtin/packages/glimmer/package.py
+++ b/var/spack/repos/builtin/packages/glimmer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/glm/package.py b/var/spack/repos/builtin/packages/glm/package.py
index faa3d6e294..d54816fc50 100644
--- a/var/spack/repos/builtin/packages/glm/package.py
+++ b/var/spack/repos/builtin/packages/glm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,27 @@ class Glm(CMakePackage):
"""
homepage = "https://github.com/g-truc/glm"
- url = "https://github.com/g-truc/glm/archive/0.9.7.1.tar.gz"
+ url = "https://github.com/g-truc/glm/archive/0.9.9.8.tar.gz"
+ version('0.9.9.8', sha256='7d508ab72cb5d43227a3711420f06ff99b0a0cb63ee2f93631b162bfe1fe9592')
version('0.9.7.1', sha256='285a0dc8f762b4e523c8710fbd97accaace0c61f45bc8be2bdb0deed07b0e6f3')
depends_on('cmake@2.6:', type='build')
+ depends_on('cmake@3.2:', type='build', when='@0.9.9.0:')
+
+ # CMake install target was removed in version 0.9.9.6
+ @when('@0.9.9.6:')
+ def cmake(self, spec, prefix):
+ pass
+
+ @when('@0.9.9.6:')
+ def build(self, spec, prefix):
+ pass
+
+ @when('@0.9.9.6:')
+ def install(self, spec, prefix):
+ mkdirp(prefix.include.glm)
+ ignore_cmakelists = lambda p: p.endswith('CMakeLists.txt')
+ install_tree('glm', prefix.include.glm, ignore=ignore_cmakelists)
+ mkdirp(prefix.lib64.cmake)
+ install_tree('cmake', prefix.lib64.cmake)
diff --git a/var/spack/repos/builtin/packages/global/package.py b/var/spack/repos/builtin/packages/global/package.py
index 5ad3d72520..aa66e2d91c 100644
--- a/var/spack/repos/builtin/packages/global/package.py
+++ b/var/spack/repos/builtin/packages/global/package.py
@@ -1,18 +1,23 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Global(Package):
""" The Gnu Global tagging system """
- homepage = "http://www.gnu.org/software/global"
+ homepage = "https://www.gnu.org/software/global"
url = "http://tamacom.com/global/global-6.5.tar.gz"
+ maintainers = ['gaber']
+
+ version('6.6.7', sha256='69a0f77f53827c5568176c1d382166df361e74263a047f0b3058aa2f2ad58a3c')
+ version('6.6.6', sha256='758078afff98d4c051c58785c7ada3ed1977fabb77f8897ff657b71cc62d4d5d')
version('6.6.4', sha256='987e8cb956c53f8ebe4453b778a8fde2037b982613aba7f3e8e74bcd05312594')
version('6.5', sha256='4afd12db1aa600277b39113cc2d61dc59bd6c6b4ee8033da8bb6dd0c39a4c6a9')
diff --git a/var/spack/repos/builtin/packages/globalarrays/package.py b/var/spack/repos/builtin/packages/globalarrays/package.py
index 918163191f..364383456c 100644
--- a/var/spack/repos/builtin/packages/globalarrays/package.py
+++ b/var/spack/repos/builtin/packages/globalarrays/package.py
@@ -1,21 +1,25 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
class Globalarrays(AutotoolsPackage):
"""Global Arrays (GA) is a Partitioned Global Address Space (PGAS)
- programming model. It provides primitives for one-sided communication
- (Get, Put, Accumulate) and Atomic Operations (read increment).
- It supports blocking and non-blocking primtives, and supports location
- consistency."""
+ programming model.
+
+ It provides primitives for one-sided communication (Get, Put, Accumulate)
+ and Atomic Operations (read increment). It supports blocking and
+ non-blocking primtives, and supports location consistency.
+ """
- homepage = "http://hpc.pnl.gov/globalarrays/"
+ homepage = "https://hpc.pnl.gov/globalarrays/"
url = "https://github.com/GlobalArrays/ga/releases/download/v5.7/ga-5.7.tar.gz"
+ version('5.8', sha256='64df7d1ea4053d24d84ca361e67a6f51c7b17ed7d626cb18a9fbc759f4a078ac')
+ version('5.7.2', sha256='8cd0fcfd85bc7f9c168c831616f66f1e8b9b2ca31dc7dd93cc55b27cc7fe7069')
+ version('5.7.1', sha256='aa4c6038d792cabf1766e264320da58a555da81a3a36be32b7c4d3e71c08ffa9')
version('5.7', sha256='3ed1ab47adfda7bceb7beca12fc05a2e1631732f0e55bbaf9036dad4e3da4774')
version('5.6.5', sha256='17a7111dfe67d44cf0888c7b79abd48bf4968874f26b3f16cce9fd04e2c72bb9')
version('5.6.4', sha256='3daf742053502755c0b581041a56f8f7086af05980c7146d194b0fd6526ee14f')
@@ -24,39 +28,38 @@ class Globalarrays(AutotoolsPackage):
version('5.6.1', sha256='b324deed49f930f55203e1d18294ce07dd02680b9ac0728ebc54f94a12557ebc')
version('5.6', sha256='a228dfbae9a6cfaae34694d7e56f589ac758e959b58f4bc49e6ef44058096767')
- variant('int64', default=False, description='Compile with 64 bit indices support')
- variant('blas', default=False, description='Enable BLAS')
- variant('lapack', default=False, description='Enable LAPACK')
variant('scalapack', default=False, description='Enable SCALAPACK')
variant('armci', values=('mpi-ts', 'mpi-pr', 'mpi3', 'openib', 'ofi'),
default='mpi-ts', description='ARMCI runtime')
depends_on('mpi')
- depends_on('blas', when='+blas')
- depends_on('lapack', when='+lapack')
+ depends_on('blas')
+ depends_on('lapack')
+
depends_on('scalapack', when='+scalapack')
- conflicts('+lapack', when='~blas')
- conflicts('+scalapack', when='~blas')
- conflicts('+scalapack', when='~lapack')
+ # See release https://github.com/GlobalArrays/ga/releases/tag/v5.7.1
+ conflicts('%gcc@10:', when='@5.7')
+ conflicts('%gcc@10:', when='@:5.6.5')
- def configure_args(self):
- args = ['--with-mpi']
+ @property
+ def build_directory(self):
+ return os.path.join(str(self.stage.source_path), '..', 'spack-build')
- if '+blas' in self.spec:
- if '+int64' in self.spec:
- args.append('--with-blas8')
- else:
- args.append('--with-blas')
+ def configure_args(self):
+ blas_flags = self.spec['blas'].libs.ld_flags
+ lapack_libs = self.spec['lapack'].libs.ld_flags
- if '+lapack' in self.spec:
- args.append('--with-lapack')
+ args = [
+ '--enable-shared',
+ '--with-mpi',
+ '--with-blas={0}'.format(blas_flags),
+ '--with-lapack={0}'.format(lapack_libs),
+ ]
if '+scalapack' in self.spec:
- if '+int64' in self.spec:
- args.append('--with-scalapack8')
- else:
- args.append('--with-scalapack')
+ scalapack_libs = self.spec['scalapack'].libs.ld_flags
+ args.append('--with-scalapack={0}'.format(scalapack_libs))
args.append('--with-' + self.spec.variants['armci'].value)
diff --git a/var/spack/repos/builtin/packages/glog/package.py b/var/spack/repos/builtin/packages/glog/package.py
index ded74be364..7f8645b3cf 100644
--- a/var/spack/repos/builtin/packages/glog/package.py
+++ b/var/spack/repos/builtin/packages/glog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,11 +14,11 @@ class Glog(Package):
version('0.4.0', sha256='f28359aeba12f30d73d9e4711ef356dc842886968112162bc73002645139c39c')
version('0.3.5', sha256='7580e408a2c0b5a89ca214739978ce6ff480b5e7d8d7698a2aa92fadc484d1e0')
- version('0.3.4', sha256='ce99d58dce74458f7656a68935d7a0c048fa7b4626566a71b7f4e545920ceb10')
- version('0.3.3', sha256='544e178644bd9b454768c2c91716c3b8365cc5d47adfbdbaecd8cf3fa17adfcb')
+ version('0.3.4', sha256='ce99d58dce74458f7656a68935d7a0c048fa7b4626566a71b7f4e545920ceb10', deprecated=True)
+ version('0.3.3', sha256='544e178644bd9b454768c2c91716c3b8365cc5d47adfbdbaecd8cf3fa17adfcb', deprecated=True)
depends_on('gflags')
- depends_on('cmake', when="@0.3.5:")
+ depends_on('cmake', when="@0.3.5:", type='build')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/gloo/package.py b/var/spack/repos/builtin/packages/gloo/package.py
index af8ec7824f..37d3d65555 100644
--- a/var/spack/repos/builtin/packages/gloo/package.py
+++ b/var/spack/repos/builtin/packages/gloo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,10 +6,28 @@
from spack import *
-class Gloo(CMakePackage):
+class Gloo(CMakePackage, CudaPackage):
"""Gloo is a collective communications library."""
homepage = "https://github.com/facebookincubator/gloo"
git = "https://github.com/facebookincubator/gloo.git"
- version('master')
+ version('master', branch='master')
+ version('2021-05-04', commit='6f7095f6e9860ce4fd682a7894042e6eba0996f1') # py-torch@1.9
+ version('2020-09-18', commit='3dc0328fe6a9d47bd47c0c6ca145a0d8a21845c6') # py-torch@1.7:1.8
+ version('2020-03-17', commit='113bde13035594cafdca247be953610b53026553') # py-torch@1.5:1.6
+ version('2019-11-05', commit='7c541247a6fa49e5938e304ab93b6da661823d0f') # py-torch@1.4
+ version('2019-09-29', commit='ca528e32fea9ca8f2b16053cff17160290fc84ce') # py-torch@1.3
+ version('2019-06-19', commit='46ae6ec2191a3cc297ab33d4edd43accc35df992') # py-torch@1.2
+ version('2019-02-01', commit='670b4d4aa46886cc66874e2a4dc846f5cfc2a285') # py-torch@1.0.1:1.1
+ version('2018-11-20', commit='cdeb59d5c82e5401445b4c051bb396f6738d4a19') # py-torch@1.0.0
+ version('2018-05-29', commit='69eef748cc1dfbe0fefed69b34e6545495f67ac5') # py-torch@0.4.1
+ version('2018-04-06', commit='aad0002fb40612e991390d8e807f247ed23f13c5') # py-torch@:0.4.0
+
+ depends_on('cmake@2.8.12:', type='build')
+ depends_on('ninja', type='build')
+
+ generator = 'Ninja'
+
+ def cmake_args(self):
+ return [self.define_from_variant('USE_CUDA', 'cuda')]
diff --git a/var/spack/repos/builtin/packages/glpk/package.py b/var/spack/repos/builtin/packages/glpk/package.py
index 14f47357bf..24b74535ab 100644
--- a/var/spack/repos/builtin/packages/glpk/package.py
+++ b/var/spack/repos/builtin/packages/glpk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/glproto/package.py b/var/spack/repos/builtin/packages/glproto/package.py
index 59259d7e5f..f72d467797 100644
--- a/var/spack/repos/builtin/packages/glproto/package.py
+++ b/var/spack/repos/builtin/packages/glproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/glusterfs/package.py b/var/spack/repos/builtin/packages/glusterfs/package.py
index 95c482da2f..846e3870b1 100644
--- a/var/spack/repos/builtin/packages/glusterfs/package.py
+++ b/var/spack/repos/builtin/packages/glusterfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -31,7 +31,7 @@ class Glusterfs(AutotoolsPackage):
depends_on('bison', type='build')
depends_on('rpcsvc-proto')
depends_on('acl')
- depends_on('libuuid')
+ depends_on('uuid')
depends_on('libtirpc')
depends_on('userspace-rcu')
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/glvis/package.py b/var/spack/repos/builtin/packages/glvis/package.py
index ec4ecf8836..6c9615d1da 100644
--- a/var/spack/repos/builtin/packages/glvis/package.py
+++ b/var/spack/repos/builtin/packages/glvis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,10 @@ from spack import *
class Glvis(MakefilePackage):
"""GLVis: an OpenGL tool for visualization of FEM meshes and functions"""
- homepage = "http://glvis.org"
+ homepage = "https://glvis.org"
git = "https://github.com/glvis/glvis.git"
- maintainers = ['goxberry', 'v-dobrev', 'tzanio']
+ maintainers = ['goxberry', 'v-dobrev', 'tzanio', 'tomstitt']
# glvis (like mfem) is downloaded from a URL shortener at request
# of upstream author Tzanio Kolev <tzanio@llnl.gov>. See here:
@@ -24,7 +24,7 @@ class Glvis(MakefilePackage):
# 1. Verify that no checksums on old versions have changed.
#
# 2. Verify that the shortened URL for the new version is listed at:
- # http://glvis.org/download/
+ # https://glvis.org/download/
#
# 3. Use http://getlinkinfo.com or similar to verify that the
# underling download link for the latest version comes has the
@@ -32,9 +32,17 @@ class Glvis(MakefilePackage):
#
# If this quick verification procedure fails, additional discussion
# will be required to verify the new version.
+ #
+ # glvis does not need mfem+mpi but will build that by default, to just build
+ # a serial mfem: `spack install glvis ^mfem~mpi~metis'
version('develop', branch='master')
+ version('4.0',
+ sha256='68331eaea8b93968ed6bf395388c2730b27bbcb4b7809ce44277726edccd9f08',
+ url='https://bit.ly/glvis-4-0',
+ extension='.tar.gz')
+
version('3.4',
sha256='289fbd2e09d4456e5fee6162bdc3e0b4c8c8d54625f3547ad2a69fef319279e7',
url='https://bit.ly/glvis-3-4',
@@ -63,6 +71,7 @@ class Glvis(MakefilePackage):
description='Use antialiased fonts via freetype & fontconfig')
depends_on('mfem@develop', when='@develop')
+ depends_on('mfem@4.0.0:', when='@4.0')
depends_on('mfem@3.4.0', when='@3.4')
depends_on('mfem@3.3', when='@3.3')
depends_on('mfem@3.2', when='@3.2')
@@ -70,12 +79,20 @@ class Glvis(MakefilePackage):
depends_on('gl')
depends_on('glu')
- depends_on('libx11')
+ depends_on('libx11', when='@:3.5')
+
+ depends_on('sdl2', when='@4.0:,develop')
+ depends_on('glm', when='@4.0:,develop')
+ depends_on('glew', when='@4.0:,develop')
depends_on('libpng', when='screenshots=png')
depends_on('libtiff', when='screenshots=tiff')
depends_on('freetype', when='+fonts')
+ depends_on('freetype', when='@4.0:,develop')
depends_on('fontconfig', when='+fonts')
+ depends_on('fontconfig', when='@4.0:,develop')
+
+ depends_on('uuid', when='platform=linux')
def edit(self, spec, prefix):
@@ -85,41 +102,65 @@ class Glvis(MakefilePackage):
mfem = spec['mfem']
config_mk = mfem.package.config_mk
- gl_libs = spec['glu'].libs + spec['gl'].libs + spec['libx11'].libs
args = ['CC={0}'.format(env['CC']),
'PREFIX={0}'.format(prefix.bin),
'MFEM_DIR={0}'.format(mfem.prefix),
- 'CONFIG_MK={0}'.format(config_mk),
- 'GL_OPTS=-I{0} -I{1} -I{2}'.format(
- spec['libx11'].prefix.include,
- spec['gl'].prefix.include,
- spec['glu'].prefix.include),
- 'GL_LIBS={0}'.format(gl_libs.ld_flags)]
+ 'CONFIG_MK={0}'.format(config_mk)]
+
+ png_args = ['PNG_OPTS=-DGLVIS_USE_LIBPNG -I{0}'.format(
+ spec['libpng'].prefix.include),
+ 'PNG_LIBS={0}'.format(
+ spec['libpng'].libs.ld_flags)] if 'screenshots=png' in spec else []
+
+ tiff_args = ['TIFF_OPTS=-DGLVIS_USE_LIBTIFF -I{0}'.format(
+ spec['libtiff'].prefix.include),
+ 'TIFF_LIBS={0}'.format(
+ spec['libtiff'].libs.ld_flags)] if 'screenshots=tiff' in spec else []
+
+ if "@4.0:" in spec or "@develop" in spec:
+ # TODO: glu and fontconfig dirs
+ args += ['GLM_DIR={0}'.format(spec['glm'].prefix),
+ 'SDL_DIR={0}'.format(spec['sdl2'].prefix),
+ 'GLEW_DIR={0}'.format(spec['glew'].prefix),
+ 'FREETYPE_DIR={0}'.format(spec['freetype'].prefix),
+ 'OPENGL_DIR={0}'.format(spec['gl'].prefix)]
+
+ if 'screenshots=png' in spec:
+ args += ['GLVIS_USE_LIBPNG=YES', 'GLVIS_USE_LIBTIFF=NO']
+ args.extend(png_args)
+ elif 'screenshots=tiff' in spec:
+ args += ['GLVIS_USE_LIBPNG=NO', 'GLVIS_USE_LIBTIFF=YES']
+ args.extend(tiff_args)
+ else:
+ args += ['GLVIS_USE_LIBPNG=NO', 'GLVIS_USE_LIBTIFF=NO']
- if 'screenshots=png' in spec:
- args += [
- 'USE_LIBPNG=YES', 'USE_LIBTIFF=NO',
- 'PNG_OPTS=-DGLVIS_USE_LIBPNG -I{0}'.format(
- spec['libpng'].prefix.include),
- 'PNG_LIBS={0}'.format(spec['libpng'].libs.ld_flags)]
- elif 'screenshots=tiff' in spec:
- args += [
- 'USE_LIBPNG=NO', 'USE_LIBTIFF=YES',
- 'TIFF_OPTS=-DGLVIS_USE_LIBTIFF -I{0}'.format(
- spec['libtiff'].prefix.include),
- 'TIFF_LIBS={0}'.format(spec['libtiff'].libs.ld_flags)]
else:
- args += ['USE_LIBPNG=NO', 'USE_LIBTIFF=NO']
-
- args.append('USE_FREETYPE={0}'.format(yes_no('+fonts')))
- if '+fonts' in spec:
- args += [
- 'FT_OPTS=-DGLVIS_USE_FREETYPE {0} -I{1}'.format(
- spec['freetype'].headers.include_flags,
- spec['fontconfig'].prefix.include),
- 'FT_LIBS={0} {1}'.format(
- spec['freetype'].libs.ld_flags,
- spec['fontconfig'].libs.ld_flags)]
+ gl_libs = spec['glu'].libs + spec['gl'].libs + spec['libx11'].libs
+
+ args += ['GL_OPTS=-I{0} -I{1} -I{2}'.format(
+ spec['libx11'].prefix.include,
+ spec['gl'].prefix.include,
+ spec['glu'].prefix.include),
+ 'GL_LIBS={0}'.format(gl_libs.ld_flags)]
+
+ if 'screenshots=png' in spec:
+ args += ['USE_LIBPNG=YES', 'USE_LIBTIFF=NO']
+ args.extend(png_args)
+ elif 'screenshots=tiff' in spec:
+ args += ['USE_LIBPNG=NO', 'USE_LIBTIFF=YES']
+ args.extend(tiff_args)
+ else:
+ args += ['USE_LIBPNG=NO', 'USE_LIBTIFF=NO']
+
+ args.append('USE_FREETYPE={0}'.format(yes_no('+fonts')))
+ if '+fonts' in spec:
+ args += [
+ 'FT_OPTS=-DGLVIS_USE_FREETYPE {0} -I{1}'.format(
+ spec['freetype'].headers.include_flags,
+ spec['fontconfig'].prefix.include),
+ 'FT_LIBS={0} {1}'.format(
+ spec['freetype'].libs.ld_flags,
+ spec['fontconfig'].libs.ld_flags)]
self.build_targets = args
self.install_targets += args
diff --git a/var/spack/repos/builtin/packages/gmake/package.py b/var/spack/repos/builtin/packages/gmake/package.py
index 58f1ebe5a7..1daae4263d 100644
--- a/var/spack/repos/builtin/packages/gmake/package.py
+++ b/var/spack/repos/builtin/packages/gmake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,7 @@ class Gmake(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/make/"
gnu_mirror_path = "make/make-4.2.1.tar.gz"
+ version('4.3', sha256='e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19')
version('4.2.1', sha256='e40b8f018c1da64edd1cc9a6fce5fa63b2e707e404e20cad91fbae337c98a5b7')
version('4.0', sha256='fc42139fb0d4b4291929788ebaf77e2a4de7eaca95e31f3634ef7d4932051f69')
@@ -29,6 +30,8 @@ class Gmake(AutotoolsPackage, GNUMirrorPackage):
patch('https://src.fedoraproject.org/rpms/make/raw/519a7c5bcbead22e6ea2d2c2341d981ef9e25c0d/f/make-4.2.1-glob-fix-2.patch', level=1, sha256='fe5b60d091c33f169740df8cb718bf4259f84528b42435194ffe0dd5b79cd125', when='@4.2.1')
patch('https://src.fedoraproject.org/rpms/make/raw/519a7c5bcbead22e6ea2d2c2341d981ef9e25c0d/f/make-4.2.1-glob-fix-3.patch', level=1, sha256='ca60bd9c1a1b35bc0dc58b6a4a19d5c2651f7a94a4b22b2c5ea001a1ca7a8a7f', when='@:4.2.1')
+ tags = ['build-tools']
+
executables = ['^g?make$']
@classmethod
diff --git a/var/spack/repos/builtin/packages/gmap-gsnap/package.py b/var/spack/repos/builtin/packages/gmap-gsnap/package.py
index 03d1edcd23..595ce0bb72 100644
--- a/var/spack/repos/builtin/packages/gmap-gsnap/package.py
+++ b/var/spack/repos/builtin/packages/gmap-gsnap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class GmapGsnap(AutotoolsPackage):
homepage = "http://research-pub.gene.com/gmap/"
url = "http://research-pub.gene.com/gmap/src/gmap-gsnap-2017-06-16.tar.gz"
+ version('2021-03-08', sha256='00de0e945b86bcbda50df94c68a61957f3783e232cce466fcd5f8d3a55398aa2')
version('2020-06-01', sha256='7917f9f78570943f419445e371f2cc948c6741e73c3cbb063391756f4479d365')
version('2019-05-12', sha256='3dc1b6ee4f6c049c07bcf4a5aba30eb2d732997241cdcad818dab571719f8008')
version('2019-02-15', sha256='7e82b9867a1e561b4816fb2f2fb916294077c384c6a88bb94cce39bfe71ab3ac')
diff --git a/var/spack/repos/builtin/packages/gmime/package.py b/var/spack/repos/builtin/packages/gmime/package.py
index 8455a67822..9666158dc1 100644
--- a/var/spack/repos/builtin/packages/gmime/package.py
+++ b/var/spack/repos/builtin/packages/gmime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gmodel/package.py b/var/spack/repos/builtin/packages/gmodel/package.py
index 0af31f92e7..2f00de9fc2 100644
--- a/var/spack/repos/builtin/packages/gmodel/package.py
+++ b/var/spack/repos/builtin/packages/gmodel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gmp/package.py b/var/spack/repos/builtin/packages/gmp/package.py
index 8c24853950..062f98965e 100644
--- a/var/spack/repos/builtin/packages/gmp/package.py
+++ b/var/spack/repos/builtin/packages/gmp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,7 @@ class Gmp(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://gmplib.org"
gnu_mirror_path = "gmp/gmp-6.1.2.tar.bz2"
+ version('6.2.1', sha256='eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c')
version('6.1.2', sha256='5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2')
version('6.1.1', sha256='a8109865f2893f1373b0a8ed5ff7429de8db696fc451b1036bd7bdf95bbeffd6')
version('6.1.0', sha256='498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8')
diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py
index 522a315f29..f37dc87f00 100644
--- a/var/spack/repos/builtin/packages/gmsh/package.py
+++ b/var/spack/repos/builtin/packages/gmsh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,9 +16,17 @@ class Gmsh(CMakePackage):
files using Gmsh's own scripting language.
"""
- homepage = 'http://gmsh.info'
- url = 'http://gmsh.info/src/gmsh-4.4.1-source.tgz'
-
+ homepage = 'https://gmsh.info'
+ url = 'https://gmsh.info/src/gmsh-4.4.1-source.tgz'
+ git = 'https://gitlab.onelab.info/gmsh/gmsh.git'
+
+ version('master', branch='master')
+ version('4.8.4', sha256='760dbdc072eaa3c82d066c5ba3b06eacdd3304eb2a97373fe4ada9509f0b6ace')
+ version('4.7.1', sha256='c984c295116c757ed165d77149bd5fdd1068cbd7835e9bcd077358b503891c6a')
+ version('4.7.0', sha256='e27f32f92b374ba2a746a9d9c496401c13f66ac6e3e70753e16fa4012d14320e')
+ version('4.6.0', sha256='0f2c55e50fb6c478ebc8977f6341c223754cbf3493b7b0d683b4395ae9f2ad1c')
+ version('4.5.6', sha256='46eaeb0cdee5822fdaa4b15f92d8d160a8cc90c4565593cfa705de90df2a463f')
+ version('4.5.5', sha256='899d3cded664124fa387da57b6f170f47a7e712c7744aa3562779897e2b9e251')
version('4.5.4', sha256='ccf8c74f43cbe3c371abe79862025d41642b3538a0148f018949494e3b3e2ecd')
version('4.4.1', sha256='853c6438fc4e4b765206e66a514b09182c56377bb4b73f1d0d26eda7eb8af0dc')
version('4.2.2', sha256='e9ee9f5c606bbec5f2adbb8c3d6023c4e2577f487fa4e4ecfcfc94a241cc8dcc')
@@ -27,132 +35,133 @@ class Gmsh(CMakePackage):
version('3.0.1', sha256='830b5400d9f1aeca79c3745c5c9fdaa2900cdb2fa319b664a5d26f7e615c749f')
version('2.16.0', sha256='e829eaf32ea02350a385202cc749341f2a3217c464719384b18f653edd028eea')
version('2.15.0', sha256='992a4b580454105f719f5bc05441d3d392ab0b4b80d4ea07b61ca3bdc974070a')
- version('2.12.0', sha256='7fbd2ec8071e79725266e72744d21e902d4fe6fa9e7c52340ad5f4be5c159d09')
- version('develop', branch='master', git='https://gitlab.onelab.info/gmsh/gmsh.git')
+ variant('external', default=False,
+ description='Use system versions of contrib libraries, when possible')
variant('shared', default=True, description='Enables the build of shared libraries')
- variant('mpi', default=True, description='Builds MPI support for parser and solver')
+ variant('mpi', default=False, description='Builds MPI support for parser and solver')
variant('openmp', default=False, description='Enable OpenMP support')
- variant('fltk', default=False, description='Enables the build of the FLTK GUI')
+ variant('fltk', default=True, description='Enables the build of the FLTK GUI')
variant('hdf5', default=False, description='Enables HDF5 support')
+ variant('gmp', default=True, description='Enable GMP for Kbipack (advanced)')
+ variant('cairo', default=False, description='Enable Cairo to render fonts (experimental)')
variant('compression', default=True, description='Enables IO compression through zlib')
- variant('netgen', default=False, description='Build with Netgen')
+ variant('med', default=True, description='Build with MED(HDF5)')
+ variant('mmg', default=True, description='Build with Mmg3d')
+ variant('netgen', default=True, description='Build with Netgen (built-in)')
variant('opencascade', default=False, description='Build with OpenCASCADE')
variant('oce', default=False, description='Build with OCE')
variant('petsc', default=False, description='Build with PETSc')
variant('slepc', default=False, description='Build with SLEPc (only when PETSc is enabled)')
- variant('tetgen', default=False, description='Build with Tetgen')
- variant('metis', default=False, description='Build with Metis')
+ variant('tetgen', default=False, description='Build with Tetgen (built-in)')
+ variant('metis', default=True, description='Build with Metis (built-in)')
variant('privateapi', default=False, description='Enable the private API')
-
- depends_on('blas')
- depends_on('lapack')
+ variant('alglib', default=True, description='Build with Alglib (built-in or 3rd party)')
+ variant('eigen', default=False, description='Build with Eigen (built-in or 3rd party)')
+ variant('voropp', default=True, description='Build with voro++ (built-in or 3rd party')
+ variant('cgns', default=True, description='Build with CGNS')
+
+ # https://gmsh.info/doc/texinfo/gmsh.html#Compiling-the-source-code
+ # We make changes to the GMSH default, such as external blas.
+ depends_on('blas', when='~eigen')
+ depends_on('lapack', when='~eigen')
+ depends_on('eigen@3:', when='+eigen+external')
+ depends_on('alglib', when='+alglib+external')
+ depends_on('voropp', when='+voropp+external')
depends_on('cmake@2.8:', type='build')
- depends_on('gmp')
- depends_on('mpi', when='+mpi')
+ depends_on('gmp', when='+gmp')
+ depends_on('mpi', when='+mpi')
# Assumes OpenGL with GLU is already provided by the system:
- depends_on('fltk', when='+fltk')
- depends_on('hdf5', when='+hdf5')
- depends_on('netgen', when='+netgen')
+ depends_on('fltk+gl', when='+fltk')
+ depends_on('cairo', when='+cairo')
+ depends_on('hdf5', when='+hdf5')
+ depends_on('hdf5', when='+med')
+ depends_on('med', when='+med')
+ depends_on('mmg', when='+mmg')
depends_on('opencascade', when='+opencascade')
- depends_on('oce', when='+oce')
+ depends_on('oce', when='+oce')
+ depends_on('freetype', when='+oce')
+ depends_on('freetype', when='+opencascade')
depends_on('petsc+mpi', when='+petsc+mpi')
- depends_on('petsc', when='+petsc~mpi')
- depends_on('slepc', when='+slepc+petsc')
- depends_on('tetgen', when='+tetgen')
- depends_on('zlib', when='+compression')
- depends_on('metis', when='+metis')
+ depends_on('petsc', when='+petsc~mpi')
+ depends_on('slepc', when='+slepc+petsc')
+ depends_on('zlib', when='+compression')
+ depends_on('metis', when='+metis+external')
+ depends_on('cgns', when='+cgns')
+ # Gmsh's high quality vector PostScript, PDF and SVG output is produced by GL2PS.
+ # But Gmsh ships with its own version of this library, so it is not a
+ # dependency of this package.
+ # See https://gitlab.onelab.info/gmsh/gmsh/-/blob/master/Graphics/gl2ps.h
+ # and https://gitlab.onelab.info/gmsh/gmsh/-/blob/master/Graphics/gl2ps.cpp
conflicts('+slepc', when='~petsc')
conflicts('+oce', when='+opencascade')
+ conflicts('+metis', when='+external',
+ msg="External Metis cannot build with GMSH")
def cmake_args(self):
spec = self.spec
- prefix = self.prefix
- options = []
+ options = [
+ self.define_from_variant('ENABLE_ALGLIB', 'alglib'),
+ self.define_from_variant('ENABLE_CAIRO', 'cairo'),
+ self.define_from_variant('ENABLE_CGNS', 'cgns'),
+ self.define_from_variant('ENABLE_EIGEN', 'eigen'),
+ self.define_from_variant('ENABLE_FLTK', 'fltk'),
+ self.define_from_variant('ENABLE_GMP', 'gmp'),
+ self.define_from_variant('ENABLE_MED', 'med'),
+ self.define_from_variant('ENABLE_METIS', 'metis'),
+ self.define_from_variant('ENABLE_MMG', 'mmg'),
+ self.define_from_variant('ENABLE_MPI', 'mpi'),
+ self.define_from_variant('ENABLE_NETGEN', 'netgen'),
+ self.define_from_variant('ENABLE_OPENMP', 'openmp'),
+ self.define_from_variant('ENABLE_PETSC', 'petsc'),
+ self.define_from_variant('ENABLE_PRIVATE_API', 'privateapi'),
+ self.define_from_variant('ENABLE_SLEPC', 'slepc'),
+ self.define_from_variant('ENABLE_VOROPP', 'voropp'),
+ ]
+
+ # Use system versions of contrib libraries, when possible:
+ if '+external' in spec:
+ options.append(self.define('ENABLE_SYSTEM_CONTRIB', True))
# Make sure native file dialogs are used
- options.extend(['-DENABLE_NATIVE_FILE_CHOOSER=ON'])
+ options.append('-DENABLE_NATIVE_FILE_CHOOSER=ON')
- options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % prefix)
+ options.append('-DCMAKE_INSTALL_NAME_DIR:PATH=%s' % self.prefix.lib)
# Prevent GMsh from using its own strange directory structure on OSX
options.append('-DENABLE_OS_SPECIFIC_INSTALL=OFF')
# Make sure GMSH picks up correct BlasLapack by providing linker flags
- blas_lapack = spec['lapack'].libs + spec['blas'].libs
- options.append(
- '-DBLAS_LAPACK_LIBRARIES={0}'.format(blas_lapack.ld_flags))
-
- # Gmsh does not have an option to compile against external metis.
- # Its own Metis, however, fails to build.
- # However, Metis is needed for the Hxt library.
- if '+metis' in spec:
- options.append('-DENABLE_METIS=ON')
- else:
- options.append('-DENABLE_METIS=OFF')
-
- if '+fltk' in spec:
- options.append('-DENABLE_FLTK=ON')
- else:
- options.append('-DENABLE_FLTK=OFF')
+ if '~eigen' in spec:
+ options.append('-DENABLE_BLAS_LAPACK=ON')
+ blas_lapack = spec['lapack'].libs + spec['blas'].libs
+ options.append(
+ '-DBLAS_LAPACK_LIBRARIES={0}'.format(blas_lapack.ld_flags))
if '+oce' in spec:
- env['CASROOT'] = self.spec['oce'].prefix
options.append('-DENABLE_OCC=ON')
elif '+opencascade' in spec:
- env['CASROOT'] = self.spec['opencascade'].prefix
options.append('-DENABLE_OCC=ON')
else:
options.append('-DENABLE_OCC=OFF')
- if '+petsc' in spec:
- env['PETSC_DIR'] = self.spec['petsc'].prefix
- options.append('-DENABLE_PETSC=ON')
- else:
- options.append('-DENABLE_PETSC=OFF')
-
- if '+tetgen' in spec:
- env['TETGEN_DIR'] = self.spec['tetgen'].prefix
- options.append('-DENABLE_TETGEN=ON')
- else:
- options.append('-DENABLE_TETGEN=OFF')
-
- if '+netgen' in spec:
- env['NETGEN_DIR'] = self.spec['netgen'].prefix
- options.append('-DENABLE_NETGEN=ON')
- else:
- options.append('-DENABLE_NETGEN=OFF')
+ if '@:3.0.6' in spec:
+ options.append(self.define_from_variant('ENABLE_TETGEN', 'tetgen'))
- if '+slepc' in spec:
- env['SLEPC_DIR'] = self.spec['slepc'].prefix
- options.append('-DENABLE_SLEPC=ON')
- else:
- options.append('-DENABLE_SLEPC=OFF')
+ if '@:4.6' in spec:
+ options.append(self.define_from_variant('ENABLE_MMG3D', 'mmg'))
if '+shared' in spec:
# Builds dynamic executable and installs shared library
- options.extend(['-DENABLE_BUILD_SHARED:BOOL=ON',
- '-DENABLE_BUILD_DYNAMIC:BOOL=ON'])
+ options.append(self.define('ENABLE_BUILD_SHARED', True))
+ options.append(self.define('ENABLE_BUILD_DYNAMIC', True))
else:
# Builds and installs static library
- options.append('-DENABLE_BUILD_LIB:BOOL=ON')
-
- if '+openmp' in spec:
- options.append('-DENABLE_OPENMP=ON')
- else:
- options.append('-DENABLE_OPENMP=OFF')
-
- if '+mpi' in spec:
- options.append('-DENABLE_MPI:BOOL=ON')
+ options.append(self.define('ENABLE_BUILD_LIB', True))
if '+compression' in spec:
- options.append('-DENABLE_COMPRESSED_IO:BOOL=ON')
-
- if '+privateapi' in spec:
- options.append('-DENABLE_PRIVATE_API=ON')
- else:
- options.append('-DENABLE_PRIVATE_API=OFF')
+ options.append(self.define('ENABLE_COMPRESSED_IO', True))
return options
diff --git a/var/spack/repos/builtin/packages/gmt/package.py b/var/spack/repos/builtin/packages/gmt/package.py
index 92932c8852..18f19e3417 100644
--- a/var/spack/repos/builtin/packages/gmt/package.py
+++ b/var/spack/repos/builtin/packages/gmt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,11 +21,13 @@ class Gmt(Package):
maintainers = ['adamjstewart']
version('master', branch='master')
+ version('6.2.0', sha256='b70786ca5ba7d1293acc4e901a0f82e1300d368b61009ef87f771f4bc99d058a')
+ version('6.1.1', sha256='4cb17f42ff10b8f5fe372956c23f1fa3ca21a8e94933a6c614894f0be33427c1')
version('6.1.0', sha256='f76ad7f444d407dfd7e5762644eec3a719c6aeb06d877bf746fe51abd79b1a9e')
version('6.0.0', sha256='7a733e670f01d99f8fc0da51a4337320d764c06a68746621f83ccf2e3453bcb7')
version('5.4.4', sha256='b593dfb101e6507c467619f3d2190a9f78b09d49fe2c27799750b8c4c0cd2da0')
version('4.5.9', sha256='9b13be96ccf4bbd38c14359c05dfa7eeeb4b5f06d6f4be9c33d6c3ea276afc86',
- url='ftp://ftp.soest.hawaii.edu/gmt/legacy/gmt-4.5.9.tar.bz2')
+ url='ftp://ftp.soest.hawaii.edu/gmt/legacy/gmt-4.5.9.tar.bz2', deprecated=True)
variant('ghostscript', default=False, description='Ability to convert PostScript plots to PDF and rasters')
variant('gdal', default=False, description='Ability to read and write numerous grid and image formats')
diff --git a/var/spack/repos/builtin/packages/gmtsar/package.py b/var/spack/repos/builtin/packages/gmtsar/package.py
index 1a299a0c89..8d40f18d93 100644
--- a/var/spack/repos/builtin/packages/gmtsar/package.py
+++ b/var/spack/repos/builtin/packages/gmtsar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gnat/package.py b/var/spack/repos/builtin/packages/gnat/package.py
index 58a93932d1..8ead0c6cd6 100644
--- a/var/spack/repos/builtin/packages/gnat/package.py
+++ b/var/spack/repos/builtin/packages/gnat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gnome-common/package.py b/var/spack/repos/builtin/packages/gnome-common/package.py
index 1132f6c858..f5af99e039 100644
--- a/var/spack/repos/builtin/packages/gnome-common/package.py
+++ b/var/spack/repos/builtin/packages/gnome-common/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gnuconfig/package.py b/var/spack/repos/builtin/packages/gnuconfig/package.py
new file mode 100644
index 0000000000..526bc6a7e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gnuconfig/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 Gnuconfig(Package):
+ """
+ The GNU config.guess and config.sub scripts versioned by timestamp.
+ This package can be used as a build dependency for autotools packages that
+ ship a tarball with outdated config.guess and config.sub files.
+ """
+
+ homepage = "https://www.gnu.org/software/config/"
+ git = "https://github.com/haampie/config.git"
+ url = "https://github.com/haampie/config/archive/refs/tags/2021-08-14.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('master', branch='master')
+ version('2021-08-14', sha256='1d1134f2f9d5f1342693793a536643c9aa11eaf672d1bf453ce2a415fdb8ebcc')
+
+ def install(self, spec, prefix):
+ with working_dir(self.stage.source_path):
+ install('config.sub', prefix)
+ install('config.guess', prefix)
diff --git a/var/spack/repos/builtin/packages/gnupg/package.py b/var/spack/repos/builtin/packages/gnupg/package.py
index d97aa10569..2a602d8eff 100644
--- a/var/spack/repos/builtin/packages/gnupg/package.py
+++ b/var/spack/repos/builtin/packages/gnupg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,16 @@ class Gnupg(AutotoolsPackage):
homepage = "https://gnupg.org/index.html"
url = "https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.19.tar.bz2"
+ maintainers = ['alalazo']
+
+ version('2.3.1', sha256='c498db346a9b9a4b399e514c8f56dfc0a888ce8f327f10376ff984452cd154ec')
+ version('2.2.27', sha256='34e60009014ea16402069136e0a5f63d9b65f90096244975db5cea74b3d02399')
+ version('2.2.25', sha256='c55307b247af4b6f44d2916a25ffd1fb64ce2e509c3c3d028dbe7fbf309dc30a')
+ version('2.2.24', sha256='9090b400faae34f08469d78000cfec1cee5b9c553ce11347cc96ef16eab98c46')
+ version('2.2.23', sha256='10b55e49d78b3e49f1edb58d7541ecbdad92ddaeeb885b6f486ed23d1cd1da5c')
+ version('2.2.22', sha256='7c1370565e1910b9d8c4e0fb57b9de34aa062ec7bb91abad5803d791f38d855b')
+ version('2.2.21', sha256='61e83278fb5fa7336658a8b73ab26f379d41275bb1c7c6e694dd9f9a6e8e76ec')
+ version('2.2.20', sha256='04a7c9d48b74c399168ee8270e548588ddbe52218c337703d7f06373d326ca30')
version('2.2.19', sha256='242554c0e06f3a83c420b052f750b65ead711cc3fddddb5e7274fcdbb4e9dec0')
version('2.2.17', sha256='afa262868e39b651a2db4c071fba90415154243e83a830ca00516f9a807fd514')
version('2.2.15', sha256='cb8ce298d7b36558ffc48aec961b14c830ff1783eef7a623411188b5e0f5d454')
@@ -19,8 +29,13 @@ class Gnupg(AutotoolsPackage):
version('2.1.21', sha256='7aead8a8ba75b69866f583b6c747d91414d523bfdfbe9a8e0fe026b16ba427dd')
depends_on('npth@1.2:')
+
depends_on('libgpg-error@1.24:')
+ depends_on('libgpg-error@1.41:', when='@2.3:')
+
depends_on('libgcrypt@1.7.0:')
+ depends_on('libgcrypt@1.9.1:', when='@2.3:')
+
depends_on('libksba@1.3.4:')
depends_on('libassuan@2.4:', when='@:2.2.3')
depends_on('libassuan@2.5:', when='@2.2.15:')
@@ -28,6 +43,11 @@ class Gnupg(AutotoolsPackage):
depends_on('iconv')
depends_on('zlib')
+ @run_after('install')
+ def add_gpg2_symlink(self):
+ if self.spec.satisfies("@2.0:2.999"):
+ symlink('gpg', self.prefix.bin.gpg2)
+
def configure_args(self):
args = [
'--disable-bzip2',
diff --git a/var/spack/repos/builtin/packages/gnuplot/package.py b/var/spack/repos/builtin/packages/gnuplot/package.py
index 0f1689b6cf..9dfd9fc9bb 100644
--- a/var/spack/repos/builtin/packages/gnuplot/package.py
+++ b/var/spack/repos/builtin/packages/gnuplot/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Gnuplot(AutotoolsPackage):
"""Gnuplot is a portable command-line driven graphing utility for Linux,
diff --git a/var/spack/repos/builtin/packages/gnuradio/package.py b/var/spack/repos/builtin/packages/gnuradio/package.py
index dca705ef6c..8c02cb9f81 100644
--- a/var/spack/repos/builtin/packages/gnuradio/package.py
+++ b/var/spack/repos/builtin/packages/gnuradio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,6 +19,9 @@ class Gnuradio(CMakePackage):
maintainers = ['aweits']
version('3.8.2.0', sha256='ddda12b55e3e1d925eefb24afb9d604bca7c9bbe0a431707aa48a2eed53eec2f')
+
+ variant('gui', default=False, description='Build with gui support')
+
depends_on('cmake@3.5.1:', type='build')
depends_on('volk')
depends_on('python@3.6.5:', type=('build', 'run'))
@@ -34,7 +37,16 @@ class Gnuradio(CMakePackage):
depends_on('gsl@1.10:')
depends_on('gmp')
depends_on('fftw')
- depends_on('libzmq')
+ depends_on('cppzmq')
+
+ depends_on('cairo+X+ft+fc+pdf+gobject', when='+gui')
+ depends_on('hicolor-icon-theme', type=('build', 'run'), when='+gui')
+ depends_on('adwaita-icon-theme', type=('build', 'run'), when='+gui')
+ depends_on('gsettings-desktop-schemas', type=('build', 'run'), when='+gui')
+ depends_on('py-pygobject', type=('build', 'run'), when='+gui')
+ depends_on('py-pyqt5', type=('build', 'run'), when='+gui')
+ depends_on('qwt', when='+gui')
+
extends('python')
def cmake_args(self):
@@ -43,3 +55,15 @@ class Gnuradio(CMakePackage):
self.spec['python'].command.path))
args.append('-DENABLE_INTERNAL_VOLK=OFF')
return args
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
+
+ def setup_build_environment(self, env):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
+
+ def setup_run_environment(self, env):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
diff --git a/var/spack/repos/builtin/packages/gnutls/package.py b/var/spack/repos/builtin/packages/gnutls/package.py
index 875a2c52bd..d84cf93d59 100644
--- a/var/spack/repos/builtin/packages/gnutls/package.py
+++ b/var/spack/repos/builtin/packages/gnutls/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,10 @@ class Gnutls(AutotoolsPackage):
#12, OpenPGP and other required structures. It is aimed to be portable
and efficient with focus on security and interoperability."""
- homepage = "http://www.gnutls.org"
+ homepage = "https://www.gnutls.org"
url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz"
+ version('3.6.15', sha256='0ea8c3283de8d8335d7ae338ef27c53a916f15f382753b174c18b45ffd481558')
version('3.6.14', sha256='5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63')
version('3.6.8', sha256='aa81944e5635de981171772857e72be231a7e0f559ae0292d2737de475383e83')
version('3.6.7.1', sha256='881b26409ecd8ea4c514fd3fbdb6fae5fab422ca7b71116260e263940a4bbbad')
@@ -38,6 +39,7 @@ class Gnutls(AutotoolsPackage):
depends_on('nettle@:2.9', when='@3.3.9')
depends_on('nettle', when='@3.5:')
depends_on('libidn2@:2.0.99', when='@:3.5.99')
+ depends_on('libidn2')
depends_on('zlib', when='+zlib')
depends_on('gettext')
diff --git a/var/spack/repos/builtin/packages/go-bootstrap/package.py b/var/spack/repos/builtin/packages/go-bootstrap/package.py
index 2d53d30176..95dbdf4094 100644
--- a/var/spack/repos/builtin/packages/go-bootstrap/package.py
+++ b/var/spack/repos/builtin/packages/go-bootstrap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -35,17 +35,24 @@ class GoBootstrap(Package):
depends_on('git', type=('build', 'link', 'run'))
- # NOTE: Older versions of Go attempt to download external files that have
- # since been moved while running the test suite. This patch modifies the
- # test files so that these tests don't cause false failures.
- # See: https://github.com/golang/go/issues/15694
- @when('@:1.4.3')
def patch(self):
- test_suite_file = FileFilter(join_path('src', 'run.bash'))
- test_suite_file.filter(
- r'^(.*)(\$GOROOT/src/cmd/api/run.go)(.*)$',
- r'# \1\2\3',
- )
+ if self.spec.satisfies('@:1.4.3'):
+ # NOTE: Older versions of Go attempt to download external files that have
+ # since been moved while running the test suite. This patch modifies the
+ # test files so that these tests don't cause false failures.
+ # See: https://github.com/golang/go/issues/15694
+ test_suite_file = FileFilter(join_path('src', 'run.bash'))
+ test_suite_file.filter(
+ r'^(.*)(\$GOROOT/src/cmd/api/run.go)(.*)$',
+ r'# \1\2\3',
+ )
+
+ # Go uses a hardcoded limit of 4096 bytes for its printf functions.
+ # This can cause environment variables to be truncated.
+ filter_file('char buf[4096];',
+ 'char buf[131072];',
+ 'src/cmd/dist/unix.c',
+ string=True)
def install(self, spec, prefix):
env['CGO_ENABLED'] = '0'
diff --git a/var/spack/repos/builtin/packages/go-md2man/package.py b/var/spack/repos/builtin/packages/go-md2man/package.py
index e7c5e95016..ad78971508 100644
--- a/var/spack/repos/builtin/packages/go-md2man/package.py
+++ b/var/spack/repos/builtin/packages/go-md2man/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py
index f3735c20f6..a8c4e15a53 100644
--- a/var/spack/repos/builtin/packages/go/package.py
+++ b/var/spack/repos/builtin/packages/go/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,9 @@
import os
import platform
import re
+
import llnl.util.tty as tty
+
from spack import *
# - vanilla CentOS 7, and possibly other systems, fail a test:
@@ -33,37 +35,56 @@ from spack import *
class Go(Package):
"""The golang compiler and build environment"""
homepage = "https://golang.org"
- url = 'https://dl.google.com/go/go1.12.6.src.tar.gz'
+ url = "https://dl.google.com/go/go1.16.6.src.tar.gz"
+ git = "https://go.googlesource.com/go.git"
extendable = True
executables = ['^go$']
- version('1.15.2', sha256='28bf9d0bcde251011caae230a4a05d917b172ea203f2a62f2c2f9533589d4b4d')
- version('1.15.1', sha256='d3743752a421881b5cc007c76b4b68becc3ad053e61275567edab1c99e154d30')
- version('1.15', sha256='69438f7ed4f532154ffaf878f3dfd83747e7a00b70b3556eddabf7aaee28ac3a')
- version('1.14.9', sha256='c687c848cc09bcabf2b5e534c3fc4259abebbfc9014dd05a1a2dc6106f404554')
- version('1.14.8', sha256='d9a613fb55f508cf84e753456a7c6a113c8265839d5b7fe060da335c93d6e36a')
- version('1.14.6', sha256='73fc9d781815d411928eccb92bf20d5b4264797be69410eac854babe44c94c09')
- 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')
+ maintainers = ['alecbcs']
+
+ version('1.16.6', sha256='a3a5d4bc401b51db065e4f93b523347a4d343ae0c0b08a65c3423b05a138037d')
+ version('1.16.5', sha256='7bfa7e5908c7cc9e75da5ddf3066d7cbcf3fd9fa51945851325eebc17f50ba80')
+ version('1.16.4', sha256='ae4f6b6e2a1677d31817984655a762074b5356da50fb58722b99104870d43503')
+ version('1.16.3', sha256='b298d29de9236ca47a023e382313bcc2d2eed31dfa706b60a04103ce83a71a25')
+ version('1.16.2', sha256='37ca14287a23cb8ba2ac3f5c3dd8adbc1f7a54b9701a57824bf19a0b271f83ea')
+ version('1.16', sha256='7688063d55656105898f323d90a79a39c378d86fe89ae192eb3b7fc46347c95a')
+ version('1.15.13', sha256='99069e7223479cce4553f84f874b9345f6f4045f27cf5089489b546da619a244')
+ version('1.15.12', sha256='1c6911937df4a277fa74e7b7efc3d08594498c4c4adc0b6c4ae3566137528091')
+ version('1.15.11', sha256='f25b2441d4c76cf63cde94d59bab237cc33e8a2a139040d904c8630f46d061e5')
+ version('1.15.8', sha256='540c0ab7781084d124991321ed1458e479982de94454a98afab6acadf38497c2')
+ version('1.15.7', sha256='8631b3aafd8ecb9244ec2ffb8a2a8b4983cf4ad15572b9801f7c5b167c1a2abc')
+ version('1.15.6', sha256='890bba73c5e2b19ffb1180e385ea225059eb008eb91b694875dd86ea48675817')
+ version('1.15.5', sha256='c1076b90cf94b73ebed62a81d802cd84d43d02dea8c07abdc922c57a071c84f1')
+ version('1.15.2', sha256='28bf9d0bcde251011caae230a4a05d917b172ea203f2a62f2c2f9533589d4b4d')
+ version('1.15.1', sha256='d3743752a421881b5cc007c76b4b68becc3ad053e61275567edab1c99e154d30')
+ version('1.15', sha256='69438f7ed4f532154ffaf878f3dfd83747e7a00b70b3556eddabf7aaee28ac3a')
+ version('1.14.14', sha256='6204bf32f58fae0853f47f1bd0c51d9e0ac11f1ffb406bed07a0a8b016c8a76f')
+ version('1.14.13', sha256='ba1d244c6b5c0ed04aa0d7856d06aceb89ed31b895de6ff783efb1cc8ab6b177')
+ version('1.14.12', sha256='b34f4b7ad799eab4c1a52bdef253602ce957125a512f5a1b28dce43c6841b971')
+ version('1.14.9', sha256='c687c848cc09bcabf2b5e534c3fc4259abebbfc9014dd05a1a2dc6106f404554')
+ version('1.14.8', sha256='d9a613fb55f508cf84e753456a7c6a113c8265839d5b7fe060da335c93d6e36a')
+ version('1.14.6', sha256='73fc9d781815d411928eccb92bf20d5b4264797be69410eac854babe44c94c09')
+ 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.14', sha256='197333e97290e9ea8796f738d61019dcba1c377c2f3961fd6a114918ecc7ab06')
version('1.13.13', sha256='ab7e44461e734ce1fd5f4f82c74c6d236e947194d868514d48a2b1ea73d25137')
version('1.13.12', sha256='17ba2c4de4d78793a21cc659d9907f4356cd9c8de8b7d0899cdedcef712eba34')
version('1.13.11', sha256='89ed1abce25ad003521c125d6583c93c1280de200ad221f961085200a6c00679')
version('1.13.10', sha256='eb9ccc8bf59ed068e7eff73e154e4f5ee7eec0a47a610fb864e3332a2fdc8b8c')
- version('1.13.9', sha256='34bb19d806e0bc4ad8f508ae24bade5e9fedfa53d09be63b488a9314d2d4f31d')
- version('1.13.8', sha256='b13bf04633d4d8cf53226ebeaace8d4d2fd07ae6fa676d0844a688339debec34')
- version('1.13.7', sha256='e4ad42cc5f5c19521fbbbde3680995f2546110b5c6aa2b48c3754ff7af9b41f4')
- version('1.13.6', sha256='aae5be954bdc40bcf8006eb77e8d8a5dde412722bc8effcdaf9772620d06420c')
- version('1.13.5', sha256='27d356e2a0b30d9983b60a788cf225da5f914066b37a6b4f69d457ba55a626ff')
- version('1.13.4', sha256='95dbeab442ee2746b9acf0934c8e2fc26414a0565c008631b04addb8c02e7624')
- version('1.13.3', sha256='4f7123044375d5c404280737fbd2d0b17064b66182a65919ffe20ffe8620e3df')
- version('1.13.2', sha256='1ea68e01472e4276526902b8817abd65cf84ed921977266f0c11968d5e915f44')
- version('1.13.1', sha256='81f154e69544b9fa92b1475ff5f11e64270260d46e7e36c34aafc8bc96209358')
+ version('1.13.9', sha256='34bb19d806e0bc4ad8f508ae24bade5e9fedfa53d09be63b488a9314d2d4f31d')
+ version('1.13.8', sha256='b13bf04633d4d8cf53226ebeaace8d4d2fd07ae6fa676d0844a688339debec34')
+ version('1.13.7', sha256='e4ad42cc5f5c19521fbbbde3680995f2546110b5c6aa2b48c3754ff7af9b41f4')
+ version('1.13.6', sha256='aae5be954bdc40bcf8006eb77e8d8a5dde412722bc8effcdaf9772620d06420c')
+ version('1.13.5', sha256='27d356e2a0b30d9983b60a788cf225da5f914066b37a6b4f69d457ba55a626ff')
+ version('1.13.4', sha256='95dbeab442ee2746b9acf0934c8e2fc26414a0565c008631b04addb8c02e7624')
+ version('1.13.3', sha256='4f7123044375d5c404280737fbd2d0b17064b66182a65919ffe20ffe8620e3df')
+ version('1.13.2', sha256='1ea68e01472e4276526902b8817abd65cf84ed921977266f0c11968d5e915f44')
+ version('1.13.1', sha256='81f154e69544b9fa92b1475ff5f11e64270260d46e7e36c34aafc8bc96209358')
version('1.13', sha256='3fc0b8b6101d42efd7da1da3029c0a13f22079c0c37ef9730209d8ec665bf122')
version('1.12.17', sha256='de878218c43aa3c3bad54c1c52d95e3b0e5d336e1285c647383e775541a28b25')
version('1.12.15', sha256='8aba74417e527524ad5724e6e6c21016795d1017692db76d1b0851c6bdec84c3')
@@ -72,31 +93,31 @@ class Go(Package):
version('1.12.12', sha256='fcb33b5290fa9bcc52be3211501540df7483d7276b031fc77528672a3c705b99')
version('1.12.11', sha256='fcf58935236802929f5726e96cd1d900853b377bec2c51b2e37219c658a4950f')
version('1.12.10', sha256='f56e48fce80646d3c94dcf36d3e3f490f6d541a92070ad409b87b6bbb9da3954')
- version('1.12.9', sha256='ab0e56ed9c4732a653ed22e232652709afbf573e710f56a07f7fdeca578d62fc')
- version('1.12.8', sha256='11ad2e2e31ff63fcf8a2bdffbe9bfa2e1845653358daed593c8c2d03453c9898')
- version('1.12.6', sha256='c96c5ccc7455638ae1a8b7498a030fe653731c8391c5f8e79590bce72f92b4ca')
- version('1.12.5', sha256='2aa5f088cbb332e73fc3def546800616b38d3bfe6b8713b8a6404060f22503e8')
+ version('1.12.9', sha256='ab0e56ed9c4732a653ed22e232652709afbf573e710f56a07f7fdeca578d62fc')
+ version('1.12.8', sha256='11ad2e2e31ff63fcf8a2bdffbe9bfa2e1845653358daed593c8c2d03453c9898')
+ version('1.12.6', sha256='c96c5ccc7455638ae1a8b7498a030fe653731c8391c5f8e79590bce72f92b4ca')
+ version('1.12.5', sha256='2aa5f088cbb332e73fc3def546800616b38d3bfe6b8713b8a6404060f22503e8')
version('1.11.13', sha256='5032095fd3f641cafcce164f551e5ae873785ce7b07ca7c143aecd18f7ba4076')
version('1.11.11', sha256='1fff7c33ef2522e6dfaf6ab96ec4c2a8b76d018aae6fc88ce2bd40f2202d0f8c')
version('1.11.10', sha256='df27e96a9d1d362c46ecd975f1faa56b8c300f5c529074e9ea79bdd885493c1b')
- version('1.11.5', sha256='bc1ef02bb1668835db1390a2e478dcbccb5dd16911691af9d75184bbe5aa943e')
- version('1.11.4', sha256='4cfd42720a6b1e79a8024895fa6607b69972e8e32446df76d6ce79801bbadb15')
- version('1.11.2', sha256='042fba357210816160341f1002440550e952eb12678f7c9e7e9d389437942550')
- version('1.11.1', sha256='558f8c169ae215e25b81421596e8de7572bd3ba824b79add22fba6e284db1117')
- version('1.11', sha256='afc1e12f5fe49a471e3aae7d906c73e9d5b1fdd36d52d72652dde8f6250152fb')
- version('1.10.3', sha256='567b1cc66c9704d1c019c50bef946272e911ec6baf244310f87f4e678be155f2')
- version('1.10.2', sha256='6264609c6b9cd8ed8e02ca84605d727ce1898d74efa79841660b2e3e985a98bd')
- version('1.10.1', sha256='589449ff6c3ccbff1d391d4e7ab5bb5d5643a5a41a04c99315e55c16bbf73ddc')
- version('1.9.5', sha256='f1c2bb7f32bbd8fa7a19cc1608e0d06582df32ff5f0340967d83fb0017c49fbc')
- version('1.9.2', sha256='665f184bf8ac89986cfd5a4460736976f60b57df6b320ad71ad4cef53bb143dc')
- version('1.9.1', sha256='a84afc9dc7d64fe0fa84d4d735e2ece23831a22117b50dafc75c1484f1cb550e')
- version('1.9', sha256='a4ab229028ed167ba1986825751463605264e44868362ca8e7accc8be057e993')
- version('1.8.3', sha256='5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6')
- version('1.8.1', sha256='33daf4c03f86120fdfdc66bddf6bfff4661c7ca11c5da473e537f4d69b470e57')
- version('1.8', sha256='406865f587b44be7092f206d73fc1de252600b79b3cacc587b74b5ef5c623596')
- version('1.7.5', sha256='4e834513a2079f8cbbd357502cccaac9507fd00a1efe672375798858ff291815')
- version('1.7.4', sha256='4c189111e9ba651a2bb3ee868aa881fab36b2f2da3409e80885ca758a6b614cc')
- version('1.6.4', sha256='8796cc48217b59595832aa9de6db45f58706dae68c9c7fbbd78c9fdbe3cd9032')
+ version('1.11.5', sha256='bc1ef02bb1668835db1390a2e478dcbccb5dd16911691af9d75184bbe5aa943e')
+ version('1.11.4', sha256='4cfd42720a6b1e79a8024895fa6607b69972e8e32446df76d6ce79801bbadb15')
+ version('1.11.2', sha256='042fba357210816160341f1002440550e952eb12678f7c9e7e9d389437942550')
+ version('1.11.1', sha256='558f8c169ae215e25b81421596e8de7572bd3ba824b79add22fba6e284db1117')
+ version('1.11', sha256='afc1e12f5fe49a471e3aae7d906c73e9d5b1fdd36d52d72652dde8f6250152fb')
+ version('1.10.3', sha256='567b1cc66c9704d1c019c50bef946272e911ec6baf244310f87f4e678be155f2')
+ version('1.10.2', sha256='6264609c6b9cd8ed8e02ca84605d727ce1898d74efa79841660b2e3e985a98bd')
+ version('1.10.1', sha256='589449ff6c3ccbff1d391d4e7ab5bb5d5643a5a41a04c99315e55c16bbf73ddc')
+ version('1.9.5', sha256='f1c2bb7f32bbd8fa7a19cc1608e0d06582df32ff5f0340967d83fb0017c49fbc')
+ version('1.9.2', sha256='665f184bf8ac89986cfd5a4460736976f60b57df6b320ad71ad4cef53bb143dc')
+ version('1.9.1', sha256='a84afc9dc7d64fe0fa84d4d735e2ece23831a22117b50dafc75c1484f1cb550e')
+ version('1.9', sha256='a4ab229028ed167ba1986825751463605264e44868362ca8e7accc8be057e993')
+ version('1.8.3', sha256='5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6')
+ version('1.8.1', sha256='33daf4c03f86120fdfdc66bddf6bfff4661c7ca11c5da473e537f4d69b470e57')
+ version('1.8', sha256='406865f587b44be7092f206d73fc1de252600b79b3cacc587b74b5ef5c623596')
+ version('1.7.5', sha256='4e834513a2079f8cbbd357502cccaac9507fd00a1efe672375798858ff291815')
+ version('1.7.4', sha256='4c189111e9ba651a2bb3ee868aa881fab36b2f2da3409e80885ca758a6b614cc')
+ version('1.6.4', sha256='8796cc48217b59595832aa9de6db45f58706dae68c9c7fbbd78c9fdbe3cd9032')
provides('golang')
@@ -171,19 +192,18 @@ class Go(Package):
tty.warn('GOROOT is set, this is not recommended')
# Set to include paths of dependencies
- path_components = []
+ path_components = [dependent_spec.prefix]
for d in dependent_spec.traverse():
if d.package.extends(self.spec):
path_components.append(d.prefix)
- return path_components
+ return ':'.join(path_components)
def setup_dependent_build_environment(self, env, dependent_spec):
# This *MUST* be first, this is where new code is installed
- env.set('GOPATH', ':'.join(self.generate_path_components(
- dependent_spec)))
+ env.prepend_path('GOPATH', self.generate_path_components(
+ dependent_spec))
def setup_dependent_run_environment(self, env, dependent_spec):
# Allow packages to find this when using module files
- env.prepend_path('GOPATH', ':'.join(
- [dependent_spec.prefix] + self.generate_path_components(
- dependent_spec)))
+ env.prepend_path('GOPATH', self.generate_path_components(
+ dependent_spec))
diff --git a/var/spack/repos/builtin/packages/gobject-introspection/package.py b/var/spack/repos/builtin/packages/gobject-introspection/package.py
index 54bb3c0844..787b702f31 100644
--- a/var/spack/repos/builtin/packages/gobject-introspection/package.py
+++ b/var/spack/repos/builtin/packages/gobject-introspection/package.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack.hooks.sbang as sbang
+from spack import *
class GobjectIntrospection(Package):
@@ -23,7 +23,7 @@ class GobjectIntrospection(Package):
# version 1.48.0 build fails with glib 2.49.4
depends_on("glib@2.48.1", when="@1.48.0")
depends_on("python")
- depends_on("cairo")
+ depends_on("cairo+gobject")
depends_on("bison", type="build")
depends_on("flex", type="build")
depends_on("pkgconfig", type="build")
@@ -53,6 +53,14 @@ class GobjectIntrospection(Package):
# inserted into the scripts as they're generated.
patch("sbang.patch")
+ # Drop deprecated xml.etree.ElementTree.Element.getchildren() which leads
+ # to compilation issues with Python 3.9.
+ # https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/325
+ patch('https://gitlab.gnome.org/GNOME/gobject-introspection/-/commit/'
+ '1f9284228092b2a7200e8a78bc0ea6702231c6db.patch',
+ sha256='7700828b638c85255c87fcc317ea7e9572ff443f65c86648796528885e5b4cea',
+ when='@:1.63.1')
+
def url_for_version(self, version):
url = 'http://ftp.gnome.org/pub/gnome/sources/gobject-introspection/{0}/gobject-introspection-{1}.tar.xz'
return url.format(version.up_to(2), version)
diff --git a/var/spack/repos/builtin/packages/goblin-hmc-sim/package.py b/var/spack/repos/builtin/packages/goblin-hmc-sim/package.py
index 8b5e9ab9bd..fb2a5ba03d 100644
--- a/var/spack/repos/builtin/packages/goblin-hmc-sim/package.py
+++ b/var/spack/repos/builtin/packages/goblin-hmc-sim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/googletest/package.py b/var/spack/repos/builtin/packages/googletest/package.py
index 1480339e93..f6fa0d2894 100644
--- a/var/spack/repos/builtin/packages/googletest/package.py
+++ b/var/spack/repos/builtin/packages/googletest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,11 @@ class Googletest(CMakePackage):
"""Google test framework for C++. Also called gtest."""
homepage = "https://github.com/google/googletest"
url = "https://github.com/google/googletest/tarball/release-1.10.0"
+ git = "https://github.com/google/googletest"
- version('1.10.0', sha256='e4a7cd97c903818abe7ddb129db9c41cc9fd9e2ded654be57ced26d45c72e4c9')
+ version('master', branch='master')
+ version('1.11.0', sha256='07b0896360f8e14414a8419e35515da0be085c5b4547c914ab8f4684ef0a3a8e')
+ version('1.10.0', sha256='e4a7cd97c903818abe7ddb129db9c41cc9fd9e2ded654be57ced26d45c72e4c9', preferred=True)
version('1.8.1', sha256='8e40a005e098b1ba917d64104549e3da274e31261dedc57d6250fe91391b2e84')
version('1.8.0', sha256='d8c33605d23d303b08a912eaee7f84c4e091d6e3d90e9a8ec8aaf7450dfe2568')
version('1.7.0', sha256='9639cf8b7f37a4d0c6575f52c01ef167c5f11faee65252296b3ffc2d9acd421b')
@@ -40,8 +43,7 @@ class Googletest(CMakePackage):
options.append('-Dgtest_disable_pthreads={0}'.format(
'OFF' if '+pthreads' in spec else 'ON'))
- options.append('-DBUILD_SHARED_LIBS={0}'.format(
- 'ON' if '+shared' in spec else 'OFF'))
+ options.append(self.define_from_variant('BUILD_SHARED_LIBS', 'shared'))
return options
@when('@:1.7.0')
diff --git a/var/spack/repos/builtin/packages/gosam-contrib/package.py b/var/spack/repos/builtin/packages/gosam-contrib/package.py
index ad45f5b03e..7eeb275b41 100644
--- a/var/spack/repos/builtin/packages/gosam-contrib/package.py
+++ b/var/spack/repos/builtin/packages/gosam-contrib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,8 @@ class GosamContrib(AutotoolsPackage):
homepage = "https://gosam.hepforge.org"
url = "https://gosam.hepforge.org/downloads/?f=gosam-contrib-2.0.tar.gz"
+ tags = ['hep']
+
version('2.0', sha256='c05beceea74324eb51c1049773095e2cb0c09c8c909093ee913d8b0da659048d')
version('1.0', sha256='a29d4232d9190710246abc2ed97fdcd8790ce83580f56a360f3456b0377c40ec')
diff --git a/var/spack/repos/builtin/packages/gotcha/package.py b/var/spack/repos/builtin/packages/gotcha/package.py
index 7c78f6c300..941496b3d1 100644
--- a/var/spack/repos/builtin/packages/gotcha/package.py
+++ b/var/spack/repos/builtin/packages/gotcha/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Gotcha(CMakePackage):
"""C software library for shared library function wrapping,
enables tools to intercept calls into shared libraries"""
- homepage = "http://github.com/LLNL/gotcha"
+ homepage = "https://github.com/LLNL/gotcha"
git = "https://github.com/LLNL/gotcha.git"
version('develop', branch='develop')
@@ -21,12 +21,11 @@ class Gotcha(CMakePackage):
variant('test', default=False, description='Build tests for Gotcha')
patch(
- 'https://github.com/LLNL/GOTCHA/commit/e82b4a1ecb634075d8f5334b796c888c86da0427.patch',
+ 'https://github.com/LLNL/GOTCHA/commit/e82b4a1ecb634075d8f5334b796c888c86da0427.patch',
sha256='9f7814fd3c3362c156bc617c755e7e50c2f9125ed4540e36f60e4d93884f1ce6',
when='@0.0.2:1.0.2')
def configure_args(self):
- spec = self.spec
return [
- '-DGOTCHA_ENABLE_TESTS=%s' % ('ON' if '+test' in spec else 'OFF')
+ self.define_from_variant('GOTCHA_ENABLE_TESTS', 'test')
]
diff --git a/var/spack/repos/builtin/packages/gource/package.py b/var/spack/repos/builtin/packages/gource/package.py
index f4455e1853..1641c0db3d 100644
--- a/var/spack/repos/builtin/packages/gource/package.py
+++ b/var/spack/repos/builtin/packages/gource/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Gource(AutotoolsPackage):
"""Software version control visualization."""
- homepage = "http://gource.io"
+ homepage = "https://gource.io"
url = "https://github.com/acaudwell/Gource/releases/download/gource-0.44/gource-0.44.tar.gz"
version('0.44', sha256='2604ca4442305ffdc5bb1a7bac07e223d59c846f93567be067e8dfe2f42f097c')
diff --git a/var/spack/repos/builtin/packages/gpdb/package.py b/var/spack/repos/builtin/packages/gpdb/package.py
index 98683b271c..9e25e3240e 100644
--- a/var/spack/repos/builtin/packages/gpdb/package.py
+++ b/var/spack/repos/builtin/packages/gpdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gperf/package.py b/var/spack/repos/builtin/packages/gperf/package.py
index 96d15d1f2e..21b52448bc 100644
--- a/var/spack/repos/builtin/packages/gperf/package.py
+++ b/var/spack/repos/builtin/packages/gperf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gperftools/package.py b/var/spack/repos/builtin/packages/gperftools/package.py
index dfc0a9503d..438236c75a 100644
--- a/var/spack/repos/builtin/packages/gperftools/package.py
+++ b/var/spack/repos/builtin/packages/gperftools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,10 @@ class Gperftools(AutotoolsPackage):
"""
homepage = "https://github.com/gperftools/gperftools"
url = "https://github.com/gperftools/gperftools/releases/download/gperftools-2.7/gperftools-2.7.tar.gz"
+ maintainers = ['albestro', 'eschnett', 'msimberg', 'teonnik']
+ version('2.9.1', sha256='ea566e528605befb830671e359118c2da718f721c27225cbbc93858c7520fee3')
+ version('2.8.1', sha256='12f07a8ba447f12a3ae15e6e3a6ad74de35163b787c0c7b76288d7395f2f74e0')
version('2.7', sha256='1ee8c8699a0eff6b6a203e59b43330536b22bbcbe6448f54c7091e5efb0763c9')
version('2.4', sha256='982a37226eb42f40714e26b8076815d5ea677a422fb52ff8bfca3704d9c30a2d')
version('2.3', sha256='093452ad45d639093c144b4ec732a3417e8ee1f3744f2b0f8d45c996223385ce')
diff --git a/var/spack/repos/builtin/packages/gpgme/package.py b/var/spack/repos/builtin/packages/gpgme/package.py
index 1ea0086c6f..7d0695cc28 100644
--- a/var/spack/repos/builtin/packages/gpgme/package.py
+++ b/var/spack/repos/builtin/packages/gpgme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gpi-2/package.py b/var/spack/repos/builtin/packages/gpi-2/package.py
index 299fba0a1a..b004318ac3 100644
--- a/var/spack/repos/builtin/packages/gpi-2/package.py
+++ b/var/spack/repos/builtin/packages/gpi-2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gplates/package.py b/var/spack/repos/builtin/packages/gplates/package.py
index 150134f11b..b7e03e95ce 100644
--- a/var/spack/repos/builtin/packages/gplates/package.py
+++ b/var/spack/repos/builtin/packages/gplates/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gprolog/package.py b/var/spack/repos/builtin/packages/gprolog/package.py
index 49aabd195a..e4aadade78 100644
--- a/var/spack/repos/builtin/packages/gprolog/package.py
+++ b/var/spack/repos/builtin/packages/gprolog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gptl/package.py b/var/spack/repos/builtin/packages/gptl/package.py
new file mode 100644
index 0000000000..84e9345de4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gptl/package.py
@@ -0,0 +1,47 @@
+# Copyright 2013-2021 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 Gptl(AutotoolsPackage):
+ """
+ GPTL is a library to instrument C, C++, and Fortran codes for
+ performance analysis and profiling.
+ """
+
+ homepage = "https://jmrosinski.github.io/GPTL/"
+ url = "https://github.com/jmrosinski/GPTL/releases/download/v8.0.3/gptl-8.0.3.tar.gz"
+
+ maintainers = ['edwardhartnett', 'kgerheiser', 'Hang-Lei-NOAA', ' jmrosinski']
+
+ version('8.0.3', sha256='334979c6fe78d4ed1b491ec57fb61df7a910c58fd39a3658d03ad89f077a4db6')
+ version('8.0.2', sha256='011f153084ebfb52b6bf8f190835d4bae6f6b5c0ad320331356aa47a547bf2b4')
+
+ variant('pmpi', default=False)
+ variant('papi', default=False)
+ variant('nestedomp', default=False)
+ variant('disable-unwind', default=False)
+
+ depends_on('mpi')
+
+ def configure_args(self):
+ args = []
+
+ if '+pmpi' in self.spec:
+ args.append('--enable-pmpi')
+ args.append('CC=' + self.spec['mpi'].mpicc)
+
+ if '+papi' in self.spec:
+ args.append('--enable-papi')
+
+ if '+nestedomp' in self.spec:
+ args.append('--enable-nestedomp')
+
+ if '+disable-unwind' in self.spec:
+ args.append('--disable-libunwind')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/gpu-burn/Makefile.patch b/var/spack/repos/builtin/packages/gpu-burn/Makefile.patch
deleted file mode 100644
index 67df81bd06..0000000000
--- a/var/spack/repos/builtin/packages/gpu-burn/Makefile.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/Makefile 2018-12-08 05:36:48.000000000 -0600
-+++ b/Makefile 2019-10-04 13:08:37.095337704 -0500
-@@ -1,12 +1,6 @@
--CUDAPATH=/usr/local/cuda
--
--# Have this point to an old enough gcc (for nvcc)
--GCCPATH=/usr
--
- NVCC=nvcc
--CCPATH=${GCCPATH}/bin
-
- drv:
-- PATH=${PATH}:.:${CCPATH}:${PATH} ${NVCC} -I${CUDAPATH}/include -arch=compute_30 -ptx compare.cu -o compare.ptx
-- g++ -O3 -Wno-unused-result -I${CUDAPATH}/include -c gpu_burn-drv.cpp
-- g++ -o gpu_burn gpu_burn-drv.o -O3 -lcuda -L${CUDAPATH}/lib64 -L${CUDAPATH}/lib -Wl,-rpath=${CUDAPATH}/lib64 -Wl,-rpath=${CUDAPATH}/lib -lcublas -lcudart -o gpu_burn
-+ ${NVCC} -arch=compute_30 -ptx compare.cu -o compare.ptx
-+ $(CXX) -O3 -Wno-unused-result -c gpu_burn-drv.cpp
-+ $(CXX) -o gpu_burn gpu_burn-drv.o -O3 -lcuda -lcublas -lcudart -o gpu_burn
diff --git a/var/spack/repos/builtin/packages/gpu-burn/package.py b/var/spack/repos/builtin/packages/gpu-burn/package.py
index 2d367ad3fe..15d2dd5b8f 100644
--- a/var/spack/repos/builtin/packages/gpu-burn/package.py
+++ b/var/spack/repos/builtin/packages/gpu-burn/package.py
@@ -1,23 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 GpuBurn(MakefilePackage, CudaPackage):
- """Multi-GPU CUDA stress test. Note that the file pointed to by COMPARE_PTX
- needs to be copied or linked to the current working directory before
- running gpu_burn."""
+ """Multi-GPU CUDA stress test."""
homepage = "http://wili.cc/blog/gpu-burn.html"
url = "http://wili.cc/blog/entries/gpu-burn/gpu_burn-1.0.tar.gz"
+ git = "https://github.com/wilicc/gpu-burn"
+ version('master', branch='master')
+ version('1.1', sha256='9876dbf7ab17b3072e9bc657034ab39bdedb219478f57c4e93314c78ae2d6376')
version('1.0', sha256='d55994f0bee8dabf021966dbe574ef52be1e43386faeee91318dd4ebb36aa74a')
- patch('Makefile.patch')
-
# This package uses CudaPackage to pick up the cuda_arch variant. A side
# effect is that it also picks up the cuda variant, but cuda is required
# for gpu-burn so is not really a variant.
@@ -26,31 +23,27 @@ class GpuBurn(MakefilePackage, CudaPackage):
conflicts('~cuda', msg='gpu-burn requires cuda')
conflicts('cuda_arch=none', msg='must select a CUDA architecture')
- cuda_arch_values = CudaPackage.cuda_arch_values
- variant(
- 'cuda_arch',
- description='CUDA architecture',
- default='none',
- values=('none',) + cuda_arch_values,
- multi=False
- )
-
def edit(self, spec, prefix):
# update cuda architecture if necessary
if '+cuda' in self.spec:
cuda_arch = self.spec.variants['cuda_arch'].value
- archflag = '-arch=compute_{0}'.format(cuda_arch)
- filter_file('-arch=compute_30', archflag,
- 'Makefile', string=True)
+ archflag = " ".join(CudaPackage.cuda_flags(cuda_arch))
+ with open('Makefile', 'w') as fh:
+ fh.write('drv:\n')
+ fh.write('\tnvcc {0} -fatbin '
+ 'compare.cu -o compare.ptx\n'.format(archflag))
+ fh.write('\tg++ -O3 -c gpu_burn-drv.cpp\n')
+ fh.write('\tg++ -o gpu_burn gpu_burn-drv.o -O3 -lcuda '
+ '-lcublas -lcudart -o gpu_burn\n')
+
+ filter_file('compare.ptx',
+ join_path(prefix.share,
+ 'compare.ptx'),
+ 'gpu_burn-drv.cpp',
+ string=True)
def install(self, spec, prefix):
mkdir(prefix.bin)
mkdir(prefix.share)
install('gpu_burn', prefix.bin)
install('compare.ptx', prefix.share)
-
- # The gpu_burn program looks for the compare.ptx file in the current
- # working directory. Create an environment variable that can be pointed to
- # so that it can be copied or linked.
- def setup_run_environment(self, env):
- env.set('COMPARE_PTX', join_path(self.prefix.share, 'compare.ptx'))
diff --git a/var/spack/repos/builtin/packages/gqrx/package.py b/var/spack/repos/builtin/packages/gqrx/package.py
index 540bdd5eba..e731178651 100644
--- a/var/spack/repos/builtin/packages/gqrx/package.py
+++ b/var/spack/repos/builtin/packages/gqrx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gr-osmosdr/package.py b/var/spack/repos/builtin/packages/gr-osmosdr/package.py
index f8f7a2fe3c..b087728abc 100644
--- a/var/spack/repos/builtin/packages/gr-osmosdr/package.py
+++ b/var/spack/repos/builtin/packages/gr-osmosdr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/grabix/package.py b/var/spack/repos/builtin/packages/grabix/package.py
new file mode 100644
index 0000000000..0a5dda47ac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/grabix/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 Grabix(MakefilePackage):
+ """Grabix leverages the fantastic BGZF library in samtools to provide
+ random access into text files that have been compressed with bgzip.
+ grabix creates it's own index (.gbi) of the bgzipped file. Once indexed,
+ one can extract arbitrary lines from the file with the grab command.
+ Or choose random lines with the, well, random command.
+ """
+
+ homepage = "https://github.com/arq5x/grabix"
+ url = "https://github.com/arq5x/grabix/archive/v0.1.7.tar.gz"
+
+ maintainers = ['robqiao']
+
+ version('0.1.7', sha256='d90735c55c0985a4d751858d7ce9e36ad534fff4103257e8e981e34d5c915b28')
+
+ conflicts('%gcc@7:', msg='grabix cannot be compiled with newer versions of GCC')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('LICENSE', prefix)
+ install('simrep.chr1.bed', prefix)
+ install('grabix', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/grace/package.py b/var/spack/repos/builtin/packages/grace/package.py
new file mode 100644
index 0000000000..cbe9c9f585
--- /dev/null
+++ b/var/spack/repos/builtin/packages/grace/package.py
@@ -0,0 +1,54 @@
+# Copyright 2013-2021 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 Grace(AutotoolsPackage):
+ """Grace is a WYSIWYG 2D plotting tool for the X Window System and M*tif."""
+
+ homepage = "https://plasma-gate.weizmann.ac.il/Grace"
+ # The main site (ftp://plasma-gate.weizmann.ac.il/pub/grace/)
+ # is currently unavailable so we use one of the mirrors instead.
+ url = "ftp://ftp.fu-berlin.de/unix/graphics/grace/src/grace5/grace-5.1.25.tar.gz"
+
+ maintainers = ['RemiLacroix-IDRIS']
+
+ version('5.1.25', sha256='751ab9917ed0f6232073c193aba74046037e185d73b77bab0f5af3e3ff1da2ac')
+
+ depends_on('libx11')
+ depends_on('libxext')
+ depends_on('libxmu')
+ depends_on('libxp')
+ depends_on('libxt')
+ depends_on('libice')
+ depends_on('libsm')
+ depends_on('motif')
+ depends_on('jpeg')
+ depends_on('libpng')
+ depends_on('fftw@2:2.999')
+ depends_on('netcdf-c')
+
+ def patch(self):
+ # Spack's FFTW2 has prefixed headers so patch the code accordingly.
+ # We are not patching "ac-tools/aclocal.m4" since it is not needed
+ # currently and would require to run "autoreconf".
+ filter_file('<fftw.h>', '<dfftw.h>',
+ 'configure', 'src/fourier.c')
+
+ def configure_args(self):
+ args = []
+ args.append('--with-fftw')
+ # Spack's FFTW2 has prefixed libraries
+ args.append('--with-fftw-library=-ldfftw')
+ for driver in ['jpeg', 'png']:
+ args.append('--enable-{0}drv'.format(driver))
+ args.append('--enable-netcdf')
+ return args
+
+ def setup_run_environment(self, env):
+ # Grace installs a subfolder in the prefix directory
+ # so we account for that...
+ env.prepend_path('PATH', self.prefix.grace.bin)
diff --git a/var/spack/repos/builtin/packages/grackle/package.py b/var/spack/repos/builtin/packages/grackle/package.py
index f0647393ad..2a5bdc7c33 100644
--- a/var/spack/repos/builtin/packages/grackle/package.py
+++ b/var/spack/repos/builtin/packages/grackle/package.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os.path
import inspect
+import os.path
from spack import *
diff --git a/var/spack/repos/builtin/packages/gradle/package.py b/var/spack/repos/builtin/packages/gradle/package.py
index 2c4354ebad..cc73a46935 100644
--- a/var/spack/repos/builtin/packages/gradle/package.py
+++ b/var/spack/repos/builtin/packages/gradle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,7 +17,44 @@ class Gradle(Package):
homepage = "https://gradle.org"
url = "https://services.gradle.org/distributions/gradle-3.4-all.zip"
- version('4.8.1', sha256='ce1645ff129d11aad62dab70d63426fdce6cfd646fa309dc5dc5255dd03c7c11')
+ version('6.7.1', sha256='22449f5231796abd892c98b2a07c9ceebe4688d192cd2d6763f8e3bf8acbedeb')
+ version('6.7', sha256='0080de8491f0918e4f529a6db6820fa0b9e818ee2386117f4394f95feb1d5583')
+ version('6.6.1', sha256='11657af6356b7587bfb37287b5992e94a9686d5c8a0a1b60b87b9928a2decde5')
+ version('6.6', sha256='83fa7c3e5ab84c3c5c4a04fb16947338209efa9aab1f6bf09a5d0e3d2ed87742')
+ version('6.5.1', sha256='143a28f54f1ae93ef4f72d862dbc3c438050d81bb45b4601eb7076e998362920')
+ version('6.5', sha256='c9910513d0eed63cd8f5c7fec4cb4a05731144770104a0871234a4edc3ba3cef')
+ version('6.4.1', sha256='3fd824892df8ad5847be6e4fb7d3600068437de172939fd657cc280a1a629f63')
+ version('6.4', sha256='d08f7e24d061910382c2fda9915e6ed42dd1480ae2e99211f92c70190cb697e0')
+ version('6.3', sha256='0f316a67b971b7b571dac7215dcf2591a30994b3450e0629925ffcfe2c68cc5c')
+ version('6.2.2', sha256='838fa0e3373a9c8d953eff972449edc6be5fa12b26509ac3387727de85138cc0')
+ version('6.2.1', sha256='49fad5c94e76bc587c1a1138f045daee81476a82b288c7ab8c7cd6b14bf2b1c7')
+ version('6.2', sha256='f016e66d88c2f9adb5b6e7dff43a363b8c2632f18b4ad6f365f49da34dd57db8')
+ version('6.1.1', sha256='10065868c78f1207afb3a92176f99a37d753a513dff453abb6b5cceda4058cda')
+ version('6.1', sha256='634f972af958e3c753aeb42d7a688fab6820b527a0aef9eed03d7f3f6f9c7c06')
+ version('6.0.1', sha256='6f6cfdbb12a577c3845522a1c7fbfe1295ea05d87edabedd4e23fd2bf02b88b1')
+ version('6.0', sha256='a1eb4439c0a85bc7e64a22658d862e43b7d0ddfbf69a7abf6256e0b7514295df')
+ version('5.6.4', sha256='abc10bcedb58806e8654210f96031db541bcd2d6fc3161e81cb0572d6a15e821')
+ version('5.6.3', sha256='342f8e75a8879fa9192163fa8d932b9f6383ea00c1918a478f0f51e11e004b60')
+ version('5.6.2', sha256='027fdd265d277bae65a0d349b6b8da02135b0b8e14ba891e26281fa877fe37a2')
+ version('5.6.1', sha256='f6ea7f48e2823ca7ff8481044b892b24112f5c2c3547d4f423fb9e684c39f710')
+ version('5.6', sha256='33214524e686838c88a88e14e8b30e2323589cc9698186bc8e0594758b132b31')
+ version('5.5.1', sha256='6c4276f97c9059ef4dfb06cc7325c43ed9b933ab04f032e9d9372e8589cb6faf')
+ version('5.5', sha256='302b7df46730ce75c582542c056c9bf5cac2b94fbf2cc656d0e37e41e8a5d371')
+ version('5.4.1', sha256='14cd15fc8cc8705bd69dcfa3c8fefb27eb7027f5de4b47a8b279218f76895a91')
+ version('5.4', sha256='f177768e7a032727e4338c8fd047f8f263e5bd283f67a7766c1ba4182c8455a6')
+ version('5.3.1', sha256='b018a7308cb43633662363d100c14a3c41c66fd4e32b59e1dfc644d6fd2109f6')
+ version('5.3', sha256='f4d820c2a9685710eba5b92f10e0e4fb20e0d6c0dd1f46971e658160f25e7147')
+ version('5.2.1', sha256='9dc729f6dbfbbc4df1692665d301e028976dacac296a126f16148941a9cf012e')
+ version('5.2', sha256='55db797adf2705bb782655f012af7cc7724b14382881f60fb3f3eb4b645c02d6')
+ version('5.1.1', sha256='53b71812f18cdb2777e9f1b2a0f2038683907c90bdc406bc64d8b400e1fb2c3b')
+ version('5.1', sha256='7b8a8b9cce0406733d2d3fab3874386c530657c73c3f4e9a3837d081e26060d8')
+ version('5.0', sha256='17847c8e12b2bcfce26a79f425f082c31d4ded822f99a66127eee2d96bf18216')
+ version('4.10.3', sha256='336b6898b491f6334502d8074a6b8c2d73ed83b92123106bd4bf837f04111043')
+ version('4.10.2', sha256='b7aedd369a26b177147bcb715f8b1fc4fe32b0a6ade0d7fd8ee5ed0c6f731f2c')
+ version('4.10.1', sha256='36bf7ff499223d5139f005822130ccca784c91591b514677fd376eed966c907e')
+ version('4.10', sha256='fc049dcbcb245d5892bebae143bd515a78f6a5a93cec99d489b312dc0ce4aad9')
+ version('4.9', sha256='39e2d5803bbd5eaf6c8efe07067b0e5a00235e8c71318642b2ed262920b27721')
+ version('4.8.1', sha256='ce1645ff129d11aad62dab70d63426fdce6cfd646fa309dc5dc5255dd03c7c11')
version('3.4', sha256='37c2fdce55411e4c89b896c292cae1f8f437862c8433c8a74cfc3805d7670c0a')
version('3.3', sha256='71a787faed83c4ef21e8464cc8452b941b5fcd575043aa29d39d15d879be89f7')
version('3.2.1', sha256='0209696f1723f607c475109cf3ed8b51c8a91bb0cda05af0d4bd980bdefe75cd')
diff --git a/var/spack/repos/builtin/packages/grads/package.py b/var/spack/repos/builtin/packages/grads/package.py
index 889ad5c7e3..57d19b93ed 100644
--- a/var/spack/repos/builtin/packages/grads/package.py
+++ b/var/spack/repos/builtin/packages/grads/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/grafana/package.py b/var/spack/repos/builtin/packages/grafana/package.py
index c323b94252..e9450226ab 100644
--- a/var/spack/repos/builtin/packages/grafana/package.py
+++ b/var/spack/repos/builtin/packages/grafana/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/grandr/package.py b/var/spack/repos/builtin/packages/grandr/package.py
index 85339772fa..0fc32b55f3 100644
--- a/var/spack/repos/builtin/packages/grandr/package.py
+++ b/var/spack/repos/builtin/packages/grandr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/graph500/package.py b/var/spack/repos/builtin/packages/graph500/package.py
index 8e650673af..c423bb722d 100644
--- a/var/spack/repos/builtin/packages/graph500/package.py
+++ b/var/spack/repos/builtin/packages/graph500/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/graphblast/package.py b/var/spack/repos/builtin/packages/graphblast/package.py
index 59ef3d3cb3..105a8905aa 100644
--- a/var/spack/repos/builtin/packages/graphblast/package.py
+++ b/var/spack/repos/builtin/packages/graphblast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/graphicsmagick/package.py b/var/spack/repos/builtin/packages/graphicsmagick/package.py
index 5e32b05e14..92aeca800a 100644
--- a/var/spack/repos/builtin/packages/graphicsmagick/package.py
+++ b/var/spack/repos/builtin/packages/graphicsmagick/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/graphite2/package.py b/var/spack/repos/builtin/packages/graphite2/package.py
index 544f3a53d3..ad6e50a437 100644
--- a/var/spack/repos/builtin/packages/graphite2/package.py
+++ b/var/spack/repos/builtin/packages/graphite2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,4 +17,6 @@ class Graphite2(CMakePackage):
version('1.3.13', sha256='dd63e169b0d3cf954b397c122551ab9343e0696fb2045e1b326db0202d875f06')
+ depends_on('python@3.6:', type='test')
+
patch('regparm.patch')
diff --git a/var/spack/repos/builtin/packages/graphlib/package.py b/var/spack/repos/builtin/packages/graphlib/package.py
index 1452616c4d..bd09fd1901 100644
--- a/var/spack/repos/builtin/packages/graphlib/package.py
+++ b/var/spack/repos/builtin/packages/graphlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,7 @@ class Graphlib(CMakePackage):
"""Library to create, manipulate, and export graphs Graphlib."""
homepage = "https://github.com/LLNL/graphlib"
url = "https://github.com/LLNL/graphlib/archive/v2.0.0.tar.gz"
+ maintainers = ['lee218llnl']
version('2.0.0', sha256='4f4aa1193167c41c8491dec3cf22b1e52a8f0842faab88b7945972f02d2adbcd')
version('3.0.0', sha256='c3d889f7bc25b9662426605e52f14cd16f9c05b034738a343890707f5f5681f1')
diff --git a/var/spack/repos/builtin/packages/graphmap/package.py b/var/spack/repos/builtin/packages/graphmap/package.py
index aad93c8125..de38f963a7 100644
--- a/var/spack/repos/builtin/packages/graphmap/package.py
+++ b/var/spack/repos/builtin/packages/graphmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/graphviz/package.py b/var/spack/repos/builtin/packages/graphviz/package.py
index 7d2dbfec87..857e7e99ad 100644
--- a/var/spack/repos/builtin/packages/graphviz/package.py
+++ b/var/spack/repos/builtin/packages/graphviz/package.py
@@ -1,14 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack.operating_systems.mac_os import macos_version
-
import os
import sys
+from spack import *
+from spack.operating_systems.mac_os import macos_version
MACOS_VERSION = macos_version() if sys.platform == 'darwin' else None
@@ -18,18 +17,14 @@ class Graphviz(AutotoolsPackage):
homepage = 'http://www.graphviz.org'
git = 'https://gitlab.com/graphviz/graphviz.git'
+ url = 'https://gitlab.com/graphviz/graphviz/-/archive/2.46.0/graphviz-2.46.0.tar.bz2'
- # This commit hash is tag='stable_release_2.44.1'
- version('2.44.1', commit='771bc4dbff3e6f358fa75cdc7774a413ccacad51')
- # This commit hash is tag='stable_release_2.42.2'
- version('2.42.2', commit='da4c2ec6f24ca1b6d1752c6b5bc4389e55682147')
- # This commit hash is tag='stable_release_2.40.1'
- version('2.40.1', commit='67cd2e5121379a38e0801cc05cce5033f8a2a609')
-
- conflicts('%gcc@:5.9',
- when='@2.40.1+qt ^qt@5:',
- msg='graphviz-2.40.1 needs gcc-6 or greater to compile with QT5 '
- 'suppport')
+ version('2.49.0', sha256='b129555743bb9bfb7b63c55825da51763b2f1ee7c0eaa6234a42a61a3aff6cc9')
+ version('2.47.2', sha256='b5ebb00d4283c6d12cf16b2323e1820b535cc3823c8f261b783f7903b1d5b7fb')
+ version('2.46.0', sha256='1b11684fd5488940b45bf4624393140da6032abafae08f33dc3e986cffd55d71')
+ version('2.44.1', sha256='0f8f3fbeaddd474e0a270dc9bb0e247a1ae4284ae35125af4adceffae5c7ae9b')
+ version('2.42.4', sha256='a1ca0c4273d96bbf32fbfcbb784c8da2e38da13e7d2bbf9b24fe94ae45e79c4c')
+ version('2.38.0', sha256='c1b1e326b5d1f45b0ce91edd7acc68e80ff6be6b470008766e4d466aafc9801f', deprecated=True)
# Language bindings
language_bindings = ['java']
@@ -45,6 +40,8 @@ class Graphviz(AutotoolsPackage):
'bindings'.format(lang))
# Feature variants
+ variant('doc', default=False,
+ description='Build and install graphviz documentation')
variant('expat', default=False,
description='Build with Expat support (enables HTML-like labels)')
variant('gts', default=False,
@@ -66,7 +63,7 @@ class Graphviz(AutotoolsPackage):
variant('x', default=False,
description='Use the X Window System')
- patch('http://www.linuxfromscratch.org/patches/blfs/9.0/graphviz-2.40.1-qt5-1.patch',
+ patch('https://www.linuxfromscratch.org/patches/blfs/9.0/graphviz-2.40.1-qt5-1.patch',
sha256='bd532df325df811713e311d17aaeac3f5d6075ea4fd0eae8d989391e6afba930',
when='@:2.40+qt^qt@5:')
patch('https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/master/easybuild/easyconfigs/g/Graphviz/Graphviz-2.38.0_icc_sfio.patch',
@@ -76,7 +73,7 @@ class Graphviz(AutotoolsPackage):
patch('https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/master/easybuild/easyconfigs/g/Graphviz/Graphviz-2.40.1_icc_vmalloc.patch',
sha256='813e6529e79161a18b0f24a969b7de22f8417b2e942239e658b5402884541bc2',
when='@:2.40%intel')
- patch('ps2pdf.patch')
+ patch('ps2pdf.patch', when='@:2.45')
patch('implicit.patch', level=0, when='@:2.44.0')
if not MACOS_VERSION:
@@ -87,11 +84,14 @@ class Graphviz(AutotoolsPackage):
patch('fix-quartz-darwin.patch')
# Language dependencies
- depends_on('java', when='+java')
for lang in language_bindings:
depends_on('swig', when=('+' + lang))
+ depends_on(lang, when=('+' + lang))
# Feature dependencies
+ depends_on('zlib')
+ depends_on('groff', type='build', when='+doc')
+ depends_on('ghostscript', type='build', when='+doc')
depends_on('expat', when='+expat')
depends_on('libgd', when='+libgd')
depends_on('fontconfig', when='+libgd')
@@ -106,23 +106,27 @@ class Graphviz(AutotoolsPackage):
depends_on('libpng', when='+pangocairo')
depends_on('pango', when='+pangocairo')
depends_on('poppler+glib', when='+poppler')
- depends_on('zlib')
depends_on('qt', when='+qt')
depends_on('libx11', when="+x")
- # Build dependencies
- depends_on('pkgconfig', type='build')
- # The following are needed when building from git
+ # Build dependencies (graphviz binaries don't include configure file)
depends_on('automake', type='build')
depends_on('autoconf', type='build')
- depends_on('bison', type='build')
+ depends_on('bison@3.0.4:', type='build')
depends_on('flex', type='build')
+ depends_on('sed', type='build')
depends_on('libtool', type='build')
- # required to build docs
- depends_on('groff', type='build')
- depends_on('ghostscript', type='build')
+ depends_on('pkgconfig', type='build')
+ # to process f-strings used in gen_version.py
+ depends_on('python@3.6:', when='@2.47:', type='build')
- parallel = False
+ conflicts('~doc',
+ when='@:2.45',
+ msg='graphviz always builds documentation below version 2.46')
+ conflicts('%gcc@:5.9',
+ when='@2.40.1+qt ^qt@5:',
+ msg='graphviz-2.40.1 needs gcc-6 or greater to compile with QT5 '
+ 'suppport')
def autoreconf(self, spec, prefix):
# We need to generate 'configure' when checking out sources from git
@@ -166,8 +170,18 @@ class Graphviz(AutotoolsPackage):
for var in ["expat", "gts", "ghostscript", "libgd", "pangocairo",
"poppler", "qt", "quartz", "x"]:
args += self.with_or_without(var)
+ for var in ["zlib", "expat", "java"]:
+ if '+' + var in spec:
+ args.append('--with-{0}includedir={1}'.format(
+ var, spec[var].prefix.include))
+ args.append('--with-{0}libdir={1}'.format(
+ var, spec[var].prefix.lib))
args.append('--{0}-gtk'.format(
"with" if "+gtkplus" in spec else "without"))
+ if spec.version >= Version('2.46'):
+ args.append('--{0}-man-pdfs'.format(
+ 'enable' if '+doc' in spec else 'disable'))
+
return args
diff --git a/var/spack/repos/builtin/packages/grass/package.py b/var/spack/repos/builtin/packages/grass/package.py
index 6435239432..f34b9b316a 100644
--- a/var/spack/repos/builtin/packages/grass/package.py
+++ b/var/spack/repos/builtin/packages/grass/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,13 +13,14 @@ class Grass(AutotoolsPackage):
graphics and maps production, spatial modeling, and visualization."""
homepage = "https://grass.osgeo.org"
- url = "https://grass.osgeo.org/grass78/source/grass-7.8.2.tar.gz"
+ url = "https://grass.osgeo.org/grass78/source/grass-7.8.5.tar.gz"
list_url = "https://grass.osgeo.org/download/software/sources/"
git = "https://github.com/OSGeo/grass.git"
maintainers = ['adamjstewart']
version('master', branch='master')
+ version('7.8.5', sha256='a359bb665524ecccb643335d70f5436b1c84ffb6a0e428b78dffebacd983ff37')
version('7.8.2', sha256='33576f7078f805b39ca20c2fa416ac79c64260c0581072a6dc7d813f53aa9abb')
version('7.8.1', sha256='6ae578fd67afcce7abec4ba4505dcc55b3d2dfe0ca46b99d966cb148c654abb3')
version('7.8.0', sha256='4b1192294e959ffd962282344e4ff325c4472f73abe605e246a1da3beda7ccfa')
@@ -57,7 +58,7 @@ class Grass(AutotoolsPackage):
variant('geos', default=False, description='Enable GEOS support')
variant('x', default=False, description='Use the X Window System')
- # http://htmlpreview.github.io/?https://github.com/OSGeo/grass/blob/master/REQUIREMENTS.html
+ # https://htmlpreview.github.io/?https://github.com/OSGeo/grass/blob/master/REQUIREMENTS.html
# General requirements
depends_on('gmake@3.81:', type='build')
depends_on('iconv')
@@ -93,7 +94,7 @@ class Grass(AutotoolsPackage):
depends_on('opencl', when='+opencl')
depends_on('bzip2', when='+bzlib')
depends_on('zstd', when='+zstd')
- depends_on('gdal', when='+gdal') # required?
+ depends_on('gdal@:3.2.999', when='+gdal')
depends_on('liblas', when='+liblas')
depends_on('wxwidgets', when='+wxwidgets')
depends_on('py-wxpython@2.8.10.1:', when='+wxwidgets', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/graylog2-server/package.py b/var/spack/repos/builtin/packages/graylog2-server/package.py
index b34fd87a1b..dfbf8de499 100644
--- a/var/spack/repos/builtin/packages/graylog2-server/package.py
+++ b/var/spack/repos/builtin/packages/graylog2-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/grep/package.py b/var/spack/repos/builtin/packages/grep/package.py
index 7d4bded3f8..50e48df7e1 100644
--- a/var/spack/repos/builtin/packages/grep/package.py
+++ b/var/spack/repos/builtin/packages/grep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/grib-api/package.py b/var/spack/repos/builtin/packages/grib-api/package.py
index 6c4a15116a..e0368c6ba4 100644
--- a/var/spack/repos/builtin/packages/grib-api/package.py
+++ b/var/spack/repos/builtin/packages/grib-api/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,18 +9,20 @@ from spack import *
class GribApi(CMakePackage):
"""The ECMWF GRIB API is an application program interface accessible from
C, FORTRAN and Python programs developed for encoding and decoding WMO
- FM-92 GRIB edition 1 and edition 2 messages."""
+ FM-92 GRIB edition 1 and edition 2 messages. The API was deprecated
+ https://www.ecmwf.int/en/newsletter/152/news/end-road-grib-api in favor
+ of ecCodes."""
- homepage = 'https://software.ecmwf.int/wiki/display/GRIB/Home'
+ homepage = 'https://www.ecmwf.int/en/newsletter/152/news/end-road-grib-api'
url = 'https://software.ecmwf.int/wiki/download/attachments/3473437/grib_api-1.17.0-Source.tar.gz?api=v2'
list_url = 'https://software.ecmwf.int/wiki/display/GRIB/Releases'
maintainers = ['skosukhin']
- version('1.24.0', sha256='6b0d443cb0802c5de652e5816c5b88734cb3ead454eb932c5ec12ef8d4f77bcd')
- version('1.21.0', sha256='50c2b58303ab578c55735e6c21c72ffc24f82a5bf52565550f54d49cb60e8a90')
- version('1.17.0', sha256='55cbb4fdcb4ee1be6a27cece9ae7e26070beb8ab6cb7e77773db3fb0d4272462')
- version('1.16.0', sha256='0068ca4149a9f991d4c86a813ac73b4e2299c6a3fd53aba9e6ab276ef6f0ff9a')
+ version('1.24.0', sha256='6b0d443cb0802c5de652e5816c5b88734cb3ead454eb932c5ec12ef8d4f77bcd', deprecated=True)
+ version('1.21.0', sha256='50c2b58303ab578c55735e6c21c72ffc24f82a5bf52565550f54d49cb60e8a90', deprecated=True)
+ version('1.17.0', sha256='55cbb4fdcb4ee1be6a27cece9ae7e26070beb8ab6cb7e77773db3fb0d4272462', deprecated=True)
+ version('1.16.0', sha256='0068ca4149a9f991d4c86a813ac73b4e2299c6a3fd53aba9e6ab276ef6f0ff9a', deprecated=True)
variant('netcdf', default=False,
description='Enable netcdf encoding/decoding using netcdf library')
diff --git a/var/spack/repos/builtin/packages/gridlab-d/package.py b/var/spack/repos/builtin/packages/gridlab-d/package.py
index d7942d2d21..1f18ae81e4 100644
--- a/var/spack/repos/builtin/packages/gridlab-d/package.py
+++ b/var/spack/repos/builtin/packages/gridlab-d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -50,6 +50,7 @@ class GridlabD(AutotoolsPackage):
args.append('CFLAGS=-g -O0 -w')
args.append('CXXFLAGS=-g -O0 -w -std=c++14')
args.append('LDFLAGS=-g -O0 -w')
+ args.append('--with-xerces=' + self.spec['xerces-c'].prefix)
return args
diff --git a/var/spack/repos/builtin/packages/grnboost/package.py b/var/spack/repos/builtin/packages/grnboost/package.py
index 600c65ed40..35a802bf40 100644
--- a/var/spack/repos/builtin/packages/grnboost/package.py
+++ b/var/spack/repos/builtin/packages/grnboost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/groff/BuildFoundries.patch b/var/spack/repos/builtin/packages/groff/BuildFoundries.patch
new file mode 100644
index 0000000000..3cc7497bf1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/groff/BuildFoundries.patch
@@ -0,0 +1,11 @@
+--- a/font/devpdf/Makefile.sub 2014-11-04 02:38:35.427521472 -0600
++++ b/font/devpdf/Makefile.sub 2021-02-08 14:28:51.194111775 -0600
+@@ -95,7 +95,7 @@
+ chmod +x util/BuildFoundries
+ echo "# foundry ps name psfile" > $(top_builddir)/font/devpdf/download
+ PATH="$(top_builddir)/src/utils/afmtodit:$(GROFF_PATH_SEPARATOR)$(PATH)" \
+- util/BuildFoundries $(top_builddir)/font/devpdf \
++ $(PERL) util/BuildFoundries $(top_builddir)/font/devpdf \
+ '$(top_srcdir)/font/devps : $(top_builddir)/font/devps' \
+ >> $(top_builddir)/font/devpdf/download
+
diff --git a/var/spack/repos/builtin/packages/groff/gropdf.patch b/var/spack/repos/builtin/packages/groff/gropdf.patch
deleted file mode 100644
index 9044c64aa3..0000000000
--- a/var/spack/repos/builtin/packages/groff/gropdf.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Makefile.in b/Makefile.in
-index bc156ce..70c6f85 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -896,6 +896,8 @@ $(GNULIBDIRS): FORCE
- $(MAKE) ACLOCAL=: AUTOCONF=: AUTOHEADER=: AUTOMAKE=: $(do) ;; \
- esac
-
-+$(SHPROGDIRS): $(PROGDEPDIRS)
-+
- $(OTHERDIRS): $(PROGDEPDIRS) $(CCPROGDIRS) $(CPROGDIRS) $(SHPROGDIRS)
-
- $(INCDIRS) $(PROGDEPDIRS) $(SHPROGDIRS) $(OTHERDIRS): FORCE
diff --git a/var/spack/repos/builtin/packages/groff/package.py b/var/spack/repos/builtin/packages/groff/package.py
index f67f1c901b..3a4afac7d1 100644
--- a/var/spack/repos/builtin/packages/groff/package.py
+++ b/var/spack/repos/builtin/packages/groff/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import re
+
from spack import *
@@ -15,28 +17,64 @@ class Groff(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/groff/"
gnu_mirror_path = "groff/groff-1.22.3.tar.gz"
+ version('1.22.4', sha256='e78e7b4cb7dec310849004fa88847c44701e8d133b5d4c13057d876c1bad0293')
+ version('1.22.3', sha256='3a48a9d6c97750bfbd535feeb5be0111db6406ddb7bb79fc680809cda6d828a5')
+
# TODO: add html variant, spack doesn't have netpbm and its too
# complicated for me to find out at this point in time.
# See brew scripts for groff for guidance:
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/groff.rb
# Seems troublesome...netpbm requires groff?
variant('pdf', default=True, description='Build the `gropdf` executable.')
+ variant('x', default=False, description='Enable set of graphical options')
+ variant('uchardet', default=True,
+ description='Builds preconv with uchardet library for '
+ 'automatic file encoding detection')
+
+ conflicts('+uchardet', when='@:1.22.3')
depends_on('gawk', type='build')
depends_on('gmake', type='build')
depends_on('sed', type='build')
depends_on('ghostscript', when='+pdf')
+ # iconv is being asked whatever the release
+ depends_on('iconv')
+ # makeinfo is being searched for
+ depends_on('texinfo', type='build', when='@1.22.4:')
+ # configure complains when there is no uchardet that enhances preconv
+ depends_on('uchardet', when='@1.22.4:')
- version('1.22.3', sha256='3a48a9d6c97750bfbd535feeb5be0111db6406ddb7bb79fc680809cda6d828a5')
+ depends_on('libice', when='+x')
+ depends_on('libxaw', when='+x')
+ depends_on('libxmu', when='+x')
+ depends_on('libx11', when='+x')
- # https://savannah.gnu.org/bugs/index.php?43581
- # TODO: figure out why this patch does not actually work for parallel
- # builds reliably.
- # patch('gropdf.patch')
- parallel = False
+ # The perl interpreter line in scripts might be too long as it has
+ # not been transformed yet. Call scripts with spack perl explicitly.
+ patch('BuildFoundries.patch', when='@1.22.3')
+ patch('pdfmom.patch', when='@1.22.3')
+
+ executables = ['^groff$']
+
+ @property
+ def parallel(self):
+ return self.spec.satisfies('@1.22.4')
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ match = re.search(r'GNU groff version\s+(\S+)', output)
+ return match.group(1) if match else None
def configure_args(self):
- args = [
- "--without-x"
- ]
+ args = ['--disable-silent-rules']
+ args.extend(self.with_or_without('x'))
+ if '@1.22.4:' in self.spec:
+ args.extend(self.with_or_without('uchardet'))
+ args.append('--with-libiconv-prefix={0}'.format(self.spec['iconv'].prefix))
return args
+
+ def setup_run_environment(self, env):
+ if self.spec.satisfies('+x'):
+ dir = join_path(self.prefix.lib, 'X11', 'app-defaults')
+ env.set_path('XFILESEARCHPATH', dir)
diff --git a/var/spack/repos/builtin/packages/groff/pdfmom.patch b/var/spack/repos/builtin/packages/groff/pdfmom.patch
new file mode 100644
index 0000000000..b9b90674a5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/groff/pdfmom.patch
@@ -0,0 +1,11 @@
+--- a/contrib/mom/Makefile.sub 2014-11-04 02:38:35.502520534 -0600
++++ b/contrib/mom/Makefile.sub 2021-02-08 14:51:57.131553432 -0600
+@@ -41,7 +41,7 @@
+ GROFF_COMMAND_PREFIX= \
+ GROFF_BIN_PATH="$(GROFF_BIN_PATH)" \
+ PDFMOM_BIN_PATH="$(top_builddir)/src/devices/gropdf" \
+- $(PDFMOMBIN) $(FFLAG) $(TFLAG) $(KFLAG)
++ $(PERL) $(PDFMOMBIN) $(FFLAG) $(TFLAG) $(KFLAG)
+
+ MAN7=\
+ groff_mom.n
diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py
index 73f4ffd871..795fae429a 100644
--- a/var/spack/repos/builtin/packages/gromacs/package.py
+++ b/var/spack/repos/builtin/packages/gromacs/package.py
@@ -1,7 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+
+import os
+
+
class Gromacs(CMakePackage):
"""GROMACS (GROningen MAchine for Chemical Simulations) is a molecular
dynamics package primarily designed for simulations of proteins, lipids
@@ -16,11 +20,16 @@ class Gromacs(CMakePackage):
"""
homepage = 'http://www.gromacs.org'
- url = 'http://ftp.gromacs.org/gromacs/gromacs-5.1.2.tar.gz'
+ url = 'https://ftp.gromacs.org/gromacs/gromacs-5.1.2.tar.gz'
git = 'https://github.com/gromacs/gromacs.git'
maintainers = ['junghans', 'marvinbernhardt']
version('master', branch='master')
+ version('2021.3', sha256='e109856ec444768dfbde41f3059e3123abdb8fe56ca33b1a83f31ed4575a1cc6')
+ version('2021.2', sha256='d940d865ea91e78318043e71f229ce80d32b0dc578d64ee5aa2b1a4be801aadb')
+ version('2021.1', sha256='bc1d0a75c134e1fb003202262fe10d3d32c59bbb40d714bc3e5015c71effe1e5')
+ version('2021', sha256='efa78ab8409b0f5bf0fbca174fb8fbcf012815326b5c71a9d7c385cde9a8f87b')
+ version('2020.5', sha256='7b6aff647f7c8ee1bf12204d02cef7c55f44402a73195bd5f42cf11850616478')
version('2020.4', sha256='5519690321b5500c7951aaf53ff624042c3edd1a5f5d6dd1f2d802a3ecdbf4e6')
version('2020.3', sha256='903183691132db14e55b011305db4b6f4901cc4912d2c56c131edfef18cc92a9')
version('2020.2', sha256='7465e4cd616359d84489d919ec9e4b1aaf51f0a4296e693c249e83411b7bd2f3')
@@ -47,9 +56,10 @@ class Gromacs(CMakePackage):
version('5.1.5', sha256='c25266abf07690ecad16ed3996899b1d489cbb1ef733a1befb3b5c75c91a703e')
version('5.1.4', sha256='0f3793d8f1f0be747cf9ebb0b588fb2b2b5dc5acc32c3046a7bee2d2c03437bc')
version('5.1.2', sha256='39d6f1d7ae8ba38cea6089da40676bfa4049a49903d21551abc030992a58f304')
+ version('4.6.7', sha256='6afb1837e363192043de34b188ca3cf83db6bd189601f2001a1fc5b0b2a214d9')
version('4.5.5', sha256='e0605e4810b0d552a8761fef5540c545beeaf85893f4a6e21df9905a33f871ba')
- variant('mpi', default=True, description='Activate MPI support')
+ variant('mpi', default=True, description='Activate MPI support (disable for Thread-MPI support)')
variant('shared', default=True,
description='Enables the build of shared libraries')
variant(
@@ -58,6 +68,7 @@ class Gromacs(CMakePackage):
variant('plumed', default=False, description='Enable PLUMED support')
variant('cuda', default=False, description='Enable CUDA support')
variant('opencl', default=False, description='Enable OpenCL support')
+ variant('sycl', default=False, description='Enable SYCL support')
variant('nosuffix', default=False, description='Disable default suffixes')
variant('build_type', default='RelWithDebInfo',
description='The build type to build',
@@ -66,40 +77,95 @@ class Gromacs(CMakePackage):
variant('mdrun_only', default=False,
description='Enables the build of a cut-down version'
' of libgromacs and/or the mdrun program')
+ conflicts('+mdrun_only', when='@2021:',
+ msg='mdrun-only build option was removed for GROMACS 2021.')
variant('openmp', default=True,
description='Enables OpenMP at configure time')
- variant('double_precision', default=False,
- description='GMX_RELAXED_DOUBLE_PRECISION for Fujitsu PRIMEHPC')
+ variant('relaxed_double_precision', default=False,
+ description='GMX_RELAXED_DOUBLE_PRECISION, use only for Fujitsu PRIMEHPC')
+ conflicts('+relaxed_double_precision', when='@2021:',
+ msg='GMX_RELAXED_DOUBLE_PRECISION option removed for GROMACS 2021.')
variant('hwloc', default=True,
description='Use the hwloc portable hardware locality library')
variant('lapack', default=False,
description='Enables an external LAPACK library')
+ variant('blas', default=False,
+ description='Enables an external BLAS library')
+ variant('cycle_subcounters', default=False,
+ description='Enables cycle subcounters')
depends_on('mpi', when='+mpi')
- # define matching plumed versions
- depends_on('plumed@2.6.0:2.6.9+mpi', when='@2020.2+plumed+mpi')
- depends_on('plumed@2.6.0:2.6.9~mpi', when='@2020.2+plumed~mpi')
- depends_on('plumed@2.6.0:2.6.9+mpi', when='@2019.6+plumed+mpi')
- depends_on('plumed@2.6.0:2.6.9~mpi', when='@2019.6+plumed~mpi')
- depends_on('plumed@2.5.0:2.5.9+mpi', when='@2019.4+plumed+mpi')
- depends_on('plumed@2.5.0:2.5.9~mpi', when='@2019.4+plumed~mpi')
- depends_on('plumed@2.5.0:2.5.9+mpi', when='@2018.6+plumed+mpi')
- depends_on('plumed@2.5.0:2.5.9~mpi', when='@2018.6+plumed~mpi')
+
+ # Plumed 2.7.1 needs Gromacs 2021, 2020.5, 2019.6
+ # Plumed 2.7.0 needs Gromacs 2020.4, 2019.6
+ # Plumed 2.6.3 needs Gromacs 2020.4, 2019.6, 2018.8
+ # Plumed 2.6.2 needs Gromacs 2020.4, 2019.6, 2018.8
+ # Plumed 2.6.1 needs Gromacs 2020.2, 2019.6, 2018.8
+ # Plumed 2.6.0 needs Gromacs 2019.4, 2018.8
+ # Plumed 2.5.7 needs Gromacs 2019.4, 2018.8, 2016.6
+ # Plumed 2.5.6 needs Gromacs 2019.4, 2018.8, 2016.6
+ # Plumed 2.5.5 needs Gromacs 2019.4, 2018.8, 2016.6
+ # Plumed 2.5.4 needs Gromacs 2019.4, 2018.8, 2016.6
+ # Plumed 2.5.3 needs Gromacs 2019.4, 2018.8, 2016.6
+ # Plumed 2.5.2 needs Gromacs 2019.2, 2018.6, 2016.6
+ # Plumed 2.5.1 needs Gromacs 2018.6, 2016.6
+ # Plumed 2.5.0 needs Gromacs 2018.4, 2016.5
+
+ # Above dependencies can be verified, and new versions added, by going to
+ # https://github.com/plumed/plumed2/tree/v2.7.1/patches
+ # and switching tags.
+
depends_on('plumed+mpi', when='+plumed+mpi')
depends_on('plumed~mpi', when='+plumed~mpi')
+ depends_on('plumed@2.7.1+mpi', when='@2021+plumed+mpi')
+ depends_on('plumed@2.7.1~mpi', when='@2021+plumed~mpi')
+ depends_on('plumed@2.7.1+mpi', when='@2020.5+plumed+mpi')
+ depends_on('plumed@2.7.1~mpi', when='@2020.5+plumed~mpi')
+ depends_on('plumed@2.6.2:2.7.0+mpi', when='@2020.4+plumed+mpi')
+ depends_on('plumed@2.6.2:2.7.0~mpi', when='@2020.4+plumed~mpi')
+ depends_on('plumed@2.6.1+mpi', when='@2020.2+plumed+mpi')
+ depends_on('plumed@2.6.1~mpi', when='@2020.2+plumed~mpi')
+ depends_on('plumed@2.6.1:2.7.1+mpi', when='@2019.6+plumed+mpi')
+ depends_on('plumed@2.6.1:2.7.1~mpi', when='@2019.6+plumed~mpi')
+ depends_on('plumed@2.5.3:2.6.0+mpi', when='@2019.4+plumed+mpi')
+ depends_on('plumed@2.5.3:2.6.0~mpi', when='@2019.4+plumed~mpi')
+ depends_on('plumed@2.5.2+mpi', when='@2019.2+plumed+mpi')
+ depends_on('plumed@2.5.2~mpi', when='@2019.2+plumed~mpi')
+ depends_on('plumed@2.5.3:2.6.99+mpi', when='@2018.8+plumed+mpi')
+ depends_on('plumed@2.5.3:2.6.99~mpi', when='@2018.8+plumed~mpi')
+ depends_on('plumed@2.5.1:2.5.2+mpi', when='@2018.6+plumed+mpi')
+ depends_on('plumed@2.5.1:2.5.2~mpi', when='@2018.6+plumed~mpi')
+ depends_on('plumed@2.5.0+mpi', when='@2018.4+plumed+mpi')
+ depends_on('plumed@2.5.0~mpi', when='@2018.4+plumed~mpi')
+ depends_on('plumed@2.5.1:2.5.99+mpi', when='@2016.6+plumed+mpi')
+ depends_on('plumed@2.5.1:2.5.99~mpi', when='@2016.6+plumed~mpi')
+ depends_on('plumed@2.5.0+mpi', when='@2016.5+plumed+mpi')
+ depends_on('plumed@2.5.0~mpi', when='@2016.5+plumed~mpi')
+
depends_on('fftw-api@3')
depends_on('cmake@2.8.8:3.99.99', type='build')
depends_on('cmake@3.4.3:3.99.99', type='build', when='@2018:')
- depends_on('cmake@3.13.0:3.99.99', type='build', when='@master')
- depends_on('cmake@3.13.0:3.99.99', type='build', when='%fj')
+ depends_on('cmake@3.9.6:3.99.99', type='build', when='@2020')
+ depends_on('cmake@3.13.0:3.99.99', type='build', when='@2021:')
+ depends_on('cmake@3.16.0:3.99.99', type='build', when='@master')
+ depends_on('cmake@3.16.0:3.99.99', type='build', when='%fj')
depends_on('cuda', when='+cuda')
+ depends_on('sycl', when='+sycl')
depends_on('lapack', when='+lapack')
+ depends_on('blas', when='+blas')
- # TODO: openmpi constraint; remove when concretizer is fixed
- depends_on('hwloc@:1.999', when='+hwloc')
+ depends_on('hwloc@1:1.999', when='+hwloc@2016:2018.999')
+ depends_on('hwloc', when='+hwloc@2019:')
patch('gmxDetectCpu-cmake-3.14.patch', when='@2018:2019.3^cmake@3.14.0:')
- patch('gmxDetectSimd-cmake-3.14.patch', when='@:2017.99^cmake@3.14.0:')
+ patch('gmxDetectSimd-cmake-3.14.patch', when='@5.0:2017.99^cmake@3.14.0:')
+
+ filter_compiler_wrappers(
+ '*.cmake',
+ relative_root=os.path.join('share', 'cmake', 'gromacs_mpi'))
+ filter_compiler_wrappers(
+ '*.cmake',
+ relative_root=os.path.join('share', 'cmake', 'gromacs'))
def patch(self):
if '+plumed' in self.spec:
@@ -109,15 +175,69 @@ class Gromacs(CMakePackage):
# Disable obsolete workaround
filter_file('ifdef __PGI', 'if 0', 'src/gromacs/fileio/xdrf.h')
+ if '+cuda' in self.spec:
+ # Upstream supports building of last two major versions of Gromacs.
+ # Older versions of Gromacs need to be patched to build with more recent
+ # versions of CUDA library.
+
+ # Hardware version 3.0 is supported up to CUDA 10.2 (Gromacs 4.6-2020.3
+ # needs to be patched, 2020.4 is handling it correctly)
+
+ if self.spec.satisfies('@4.6:2020.3^cuda@11:'):
+ filter_file(r'-gencode;arch=compute_30,code=sm_30;?', '',
+ 'cmake/gmxManageNvccConfig.cmake')
+ filter_file(r'-gencode;arch=compute_30,code=compute_30;?', '',
+ 'cmake/gmxManageNvccConfig.cmake')
+
+ # Hardware version 2.0 is supported up to CUDA 8 (Gromacs 4.6-2016.3
+ # needs to be patched, 2016.4 is handling it correctly, removed in 2019)
+
+ if self.spec.satisfies('@4.6:2016.3^cuda@9:'):
+ filter_file(r'-gencode;arch=compute_20,code=sm_20;?', '',
+ 'cmake/gmxManageNvccConfig.cmake')
+ filter_file(r'-gencode;arch=compute_20,code=compute_20;?', '',
+ 'cmake/gmxManageNvccConfig.cmake')
+
+ if self.spec.satisfies('@4.6:5.0.999^cuda@9:'):
+ filter_file(r'-gencode;arch=compute_20,code=sm_21;?', '',
+ 'cmake/gmxManageNvccConfig.cmake')
+
def cmake_args(self):
options = []
- if self.spec.satisfies('@2020:'):
- options.append('-DGMX_INSTALL_LEGACY_API=ON')
-
if '+mpi' in self.spec:
options.append('-DGMX_MPI:BOOL=ON')
+ if self.version < Version('2020'):
+ # Ensures gmxapi builds properly
+ options.extend([
+ '-DCMAKE_C_COMPILER=%s' % self.spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER=%s' % self.spec['mpi'].mpicxx,
+ '-DCMAKE_Fortran_COMPILER=%s' % self.spec['mpi'].mpifc,
+ ])
+ elif self.version == Version('2021'):
+ # Work around https://gitlab.com/gromacs/gromacs/-/issues/3896
+ # Ensures gmxapi builds properly
+ options.extend([
+ '-DCMAKE_C_COMPILER=%s' % self.spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER=%s' % self.spec['mpi'].mpicxx,
+ ])
+ else:
+ options.extend([
+ '-DCMAKE_C_COMPILER=%s' % spack_cc,
+ '-DCMAKE_CXX_COMPILER=%s' % spack_cxx,
+ '-DMPI_C_COMPILER=%s' % self.spec['mpi'].mpicc,
+ '-DMPI_CXX_COMPILER=%s' % self.spec['mpi'].mpicxx
+ ])
+ else:
+ options.extend([
+ '-DCMAKE_C_COMPILER=%s' % spack_cc,
+ '-DCMAKE_CXX_COMPILER=%s' % spack_cxx,
+ '-DGMX_MPI:BOOL=OFF',
+ '-DGMX_THREAD_MPI:BOOL=ON'])
+
+ if self.spec.satisfies('@2020:'):
+ options.append('-DGMX_INSTALL_LEGACY_API=ON')
if '+double' in self.spec:
options.append('-DGMX_DOUBLE:BOOL=ON')
@@ -127,16 +247,27 @@ class Gromacs(CMakePackage):
if '~shared' in self.spec:
options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
+ options.append('-DGMXAPI:BOOL=OFF')
if '+hwloc' in self.spec:
options.append('-DGMX_HWLOC:BOOL=ON')
else:
options.append('-DGMX_HWLOC:BOOL=OFF')
- if '+cuda' in self.spec or '+opencl' in self.spec:
- options.append('-DGMX_GPU:BOOL=ON')
+ if self.version >= Version('2021'):
+ if '+cuda' in self.spec:
+ options.append('-DGMX_GPU:STRING=CUDA')
+ elif '+opencl' in self.spec:
+ options.append('-DGMX_GPU:STRING=OpenCL')
+ elif '+sycl' in self.spec:
+ options.append('-DGMX_GPU:STRING=SYCL')
+ else:
+ options.append('-DGMX_GPU:STRING=OFF')
else:
- options.append('-DGMX_GPU:BOOL=OFF')
+ if '+cuda' in self.spec or '+opencl' in self.spec:
+ options.append('-DGMX_GPU:BOOL=ON')
+ else:
+ options.append('-DGMX_GPU:BOOL=OFF')
if '+cuda' in self.spec:
options.append('-DCUDA_TOOLKIT_ROOT_DIR:STRING=' +
@@ -148,11 +279,19 @@ class Gromacs(CMakePackage):
if '+lapack' in self.spec:
options.append('-DGMX_EXTERNAL_LAPACK:BOOL=ON')
if self.spec['lapack'].libs:
- options.append('-DLAPACK_LIBRARIES={0}'.format(
+ options.append('-DGMX_LAPACK_USER={0}'.format(
self.spec['lapack'].libs.joined(';')))
else:
options.append('-DGMX_EXTERNAL_LAPACK:BOOL=OFF')
+ if '+blas' in self.spec:
+ options.append('-DGMX_EXTERNAL_BLAS:BOOL=ON')
+ if self.spec['blas'].libs:
+ options.append('-DGMX_BLAS_USER={0}'.format(
+ self.spec['blas'].libs.joined(';')))
+ else:
+ options.append('-DGMX_EXTERNAL_BLAS:BOOL=OFF')
+
# Activate SIMD based on properties of the target
target = self.spec.target
if target >= 'zen2':
@@ -166,7 +305,10 @@ class Gromacs(CMakePackage):
options.append('-DGMX_SIMD=AVX_128_FMA')
elif 'vsx' in target:
# IBM Power 7 and beyond
- options.append('-DGMX_SIMD=IBM_VSX')
+ if self.spec.satisfies('%nvhpc'):
+ options.append('-DGMX_SIMD=None')
+ else:
+ options.append('-DGMX_SIMD=IBM_VSX')
elif target.family == 'aarch64':
# ARMv8
if self.spec.satisfies('%nvhpc'):
@@ -176,8 +318,8 @@ class Gromacs(CMakePackage):
elif target == 'mic_knl':
# Intel KNL
options.append('-DGMX_SIMD=AVX_512_KNL')
- elif target.vendor == 'GenuineIntel':
- # Other Intel architectures
+ else:
+ # Other architectures
simd_features = [
('sse2', 'SSE2'),
('sse4_1', 'SSE4.1'),
@@ -192,13 +334,16 @@ class Gromacs(CMakePackage):
('avx512', 'AVX_512') in simd_features):
simd_features.remove(('avx512', 'AVX_512'))
+ feature_set = False
for feature, flag in reversed(simd_features):
if feature in target:
options.append('-DGMX_SIMD:STRING={0}'.format(flag))
+ feature_set = True
break
- else:
- # Fall back to this for unknown microarchitectures
- options.append('-DGMX_SIMD:STRING=None')
+
+ # Fall back
+ if not feature_set:
+ options.append('-DGMX_SIMD:STRING=None')
# Use the 'rtdscp' assembly instruction only on
# appropriate architectures
@@ -206,20 +351,22 @@ class Gromacs(CMakePackage):
'GMX_USE_RDTSCP', str(target.family) in ('x86_64', 'x86')
))
- if '+mdrun_only' in self.spec:
- options.append('-DGMX_BUILD_MDRUN_ONLY:BOOL=ON')
- else:
- options.append('-DGMX_BUILD_MDRUN_ONLY:BOOL=OFF')
+ if self.spec.satisfies('@:2020'):
+ options.append(
+ self.define_from_variant('GMX_BUILD_MDRUN_ONLY', 'mdrun_only'))
- if '~openmp' in self.spec:
- options.append('-DGMX_OPENMP:BOOL=OFF')
- else:
- options.append('-DGMX_OPENMP:BOOL=ON')
+ options.append(self.define_from_variant('GMX_OPENMP', 'openmp'))
+
+ if self.spec.satisfies('@:2020'):
+ options.append(
+ self.define_from_variant(
+ 'GMX_RELAXED_DOUBLE_PRECISION',
+ 'relaxed_double_precision'))
- if '+double_precision' in self.spec:
- options.append('-DGMX_RELAXED_DOUBLE_PRECISION:BOOL=ON')
+ if '+cycle_subcounters' in self.spec:
+ options.append('-DGMX_CYCLE_SUBCOUNTERS:BOOL=ON')
else:
- options.append('-DGMX_RELAXED_DOUBLE_PRECISION:BOOL=OFF')
+ options.append('-DGMX_CYCLE_SUBCOUNTERS:BOOL=OFF')
if '^mkl' in self.spec:
# fftw-api@3 is provided by intel-mkl or intel-parllel-studio
@@ -234,5 +381,19 @@ class Gromacs(CMakePackage):
else:
# we rely on the fftw-api@3
options.append('-DGMX_FFT_LIBRARY=fftw3')
+ if '^amdfftw' in self.spec:
+ options.append('-DGMX_FFT_LIBRARY=fftw3')
+ options.append(
+ '-DFFTWF_INCLUDE_DIRS={0}'.
+ format(self.spec['amdfftw'].headers.directories[0])
+ )
+ options.append('-DFFTWF_LIBRARIES={0}'.
+ format(self.spec['amdfftw'].libs.joined(';')))
+ # Ensure that the GROMACS log files report how the code was patched
+ # during the build, so that any problems are easier to diagnose.
+ if '+plumed' in self.spec:
+ options.append('-DGMX_VERSION_STRING_OF_FORK=PLUMED-spack')
+ else:
+ options.append('-DGMX_VERSION_STRING_OF_FORK=spack')
return options
diff --git a/var/spack/repos/builtin/packages/grpc/package.py b/var/spack/repos/builtin/packages/grpc/package.py
index 010cffb6f3..bdc62ac930 100644
--- a/var/spack/repos/builtin/packages/grpc/package.py
+++ b/var/spack/repos/builtin/packages/grpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,18 @@ class Grpc(CMakePackage):
maintainers = ['nazavode']
homepage = "https://grpc.io"
- url = "https://github.com/grpc/grpc/archive/v1.30.0.tar.gz"
+ url = "https://github.com/grpc/grpc/archive/v1.39.0.tar.gz"
+ version('1.39.0', sha256='b16992aa1c949c10d5d5ce2a62f9d99fa7de77da2943e643fb66dcaf075826d6')
+ version('1.38.1', sha256='f60e5b112913bf776a22c16a3053cc02cf55e60bf27a959fd54d7aaf8e2da6e8')
+ version('1.38.0', sha256='abd9e52c69000f2c051761cfa1f12d52d8b7647b6c66828a91d462e796f2aede')
+ version('1.37.1', sha256='acf247ec3a52edaee5dee28644a4e485c5e5badf46bdb24a80ca1d76cb8f1174')
+ version('1.37.0', sha256='c2dc8e876ea12052d6dd16704492fd8921df8c6d38c70c4708da332cf116df22')
+ version('1.36.4', sha256='8eb9d86649c4d4a7df790226df28f081b97a62bf12c5c5fe9b5d31a29cd6541a')
+ version('1.36.3', sha256='bb6de0544adddd54662ba1c314eff974e84c955c39204a4a2b733ccd990354b7')
+ version('1.33.1', sha256='58eaee5c0f1bd0b92ebe1fa0606ec8f14798500620e7444726afcaf65041cb63')
+ version('1.32.0', sha256='f880ebeb2ccf0e47721526c10dd97469200e40b5f101a0d9774eb69efa0bd07a')
+ version('1.31.0', sha256='1236514199d3deb111a6dd7f6092f67617cd2b147f7eda7adbafccea95de7381')
version('1.30.0', sha256='419dba362eaf8f1d36849ceee17c3e2ff8ff12ac666b42d3ff02a164ebe090e9')
version('1.29.1', sha256='0343e6dbde66e9a31c691f2f61e98d79f3584e03a11511fad3f10e3667832a45')
version('1.29.0', sha256='c0a6b40a222e51bea5c53090e9e65de46aee2d84c7fa7638f09cb68c3331b983')
@@ -36,6 +46,7 @@ class Grpc(CMakePackage):
depends_on('zlib')
depends_on('c-ares')
depends_on('abseil-cpp', when='@1.27:')
+ depends_on('re2', when='@1.33.1:')
def cmake_args(self):
args = [
@@ -59,4 +70,6 @@ class Grpc(CMakePackage):
]
if self.spec.satisfies('@1.27.0:'):
args.append('-DgRPC_ABSL_PROVIDER:String=package')
+ if self.spec.satisfies('@1.33.1:'):
+ args.append('-DgRPC_RE2_PROVIDER:String=package')
return args
diff --git a/var/spack/repos/builtin/packages/gsettings-desktop-schemas/package.py b/var/spack/repos/builtin/packages/gsettings-desktop-schemas/package.py
index 908aa73d57..cfbb4abb65 100644
--- a/var/spack/repos/builtin/packages/gsettings-desktop-schemas/package.py
+++ b/var/spack/repos/builtin/packages/gsettings-desktop-schemas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,3 +20,15 @@ class GsettingsDesktopSchemas(MesonPackage):
depends_on('glib')
depends_on('gobject-introspection', type='build')
depends_on('gettext', type='build')
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
+
+ def setup_build_environment(self, env):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
+
+ def setup_run_environment(self, env):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
diff --git a/var/spack/repos/builtin/packages/gsl/gsl-2.6-cblas.patch b/var/spack/repos/builtin/packages/gsl/gsl-2.6-cblas.patch
new file mode 100644
index 0000000000..947782f05d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gsl/gsl-2.6-cblas.patch
@@ -0,0 +1,323 @@
+ Makefile.am | 8 +-
+ ax_cblas.m4 | 69 +++++
+ bspline/Makefile.am | 2 +-
+ configure.ac | 10 +
+ eigen/Makefile.am | 2 +-
+ gsl-config.in | 4 +-
+ gsl.pc.in | 2 +-
+ interpolation/Makefile.am | 2 +-
+ linalg/Makefile.am | 2 +-
+ multifit/Makefile.am | 4 +-
+ multimin/Makefile.am | 4 +-
+ multiroots/Makefile.am | 2 +-
+ ode-initval/Makefile.am | 2 +-
+ poly/Makefile.am | 2 +-
+ specfunc/Makefile.am | 2 +-
+ wavelet/Makefile.am | 2 +-
+ 31 files changed, 1157 insertions(+), 19 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index c522001..4513bc8 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -19,7 +19,7 @@ EXTRA_DIST = autogen.sh gsl-config.in gsl.pc.in configure.ac THANKS BUGS gsl.spe
+
+ lib_LTLIBRARIES = libgsl.la
+ libgsl_la_SOURCES = version.c
+-libgsl_la_LIBADD = $(GSL_LIBADD) $(SUBLIBS)
++libgsl_la_LIBADD = $(GSL_LIBADD) $(SUBLIBS) @CBLAS_LINK_LIBS@
+ libgsl_la_LDFLAGS = $(GSL_LDFLAGS) -version-info $(GSL_LT_VERSION)
+ noinst_HEADERS = templates_on.h templates_off.h build.h
+
+@@ -29,10 +29,10 @@ m4data_DATA = gsl.m4
+ bin_PROGRAMS = gsl-randist gsl-histogram
+
+ gsl_randist_SOURCES = gsl-randist.c
+-gsl_randist_LDADD = libgsl.la cblas/libgslcblas.la
++gsl_randist_LDADD = libgsl.la
+
+ gsl_histogram_SOURCES = gsl-histogram.c
+-gsl_histogram_LDADD = libgsl.la cblas/libgslcblas.la
++gsl_histogram_LDADD = libgsl.la
+
+ check_SCRIPTS = test_gsl_histogram.sh pkgconfig.test
+ TESTS = test_gsl_histogram.sh pkgconfig.test
+@@ -51,6 +51,8 @@ edit = $(SED) \
+ -e 's|@GSL_CFLAGS[@]|$(GSL_CFLAGS)|g' \
+ -e 's|@GSL_LIBM[@]|$(GSL_LIBM)|g' \
+ -e 's|@GSL_LIBS[@]|$(GSL_LIBS)|g' \
++ -e 's|@CBLAS_CFLAGS[@]|$(CBLAS_CFLAGS)|g' \
++ -e 's|@CBLAS_LIBS[@]|$(CBLAS_LIBS)|g' \
+ -e 's|@LIBS[@]|$(LIBS)|g' \
+ -e 's|@VERSION[@]|$(VERSION)|g'
+
+diff --git a/ax_cblas.m4 b/ax_cblas.m4
+new file mode 100644
+index 0000000..6ef143a
+--- /dev/null
++++ b/ax_cblas.m4
+@@ -0,0 +1,69 @@
++AC_DEFUN([AX_CBLAS],[
++
++ ext_cblas=no
++ ext_cblas_libs="-lcblas"
++ ext_cblas_cflags=""
++
++ AC_ARG_WITH(cblas-external,
++ [AS_HELP_STRING([--with-cblas-external],
++ [Use external CBLAS library (default is no)])],
++ [with_ext_cblas=$withval],
++ [with_ext_cblas=no])
++
++ case $with_ext_cblas in
++ no) ext_cblas=no ;;
++ yes) ext_cblas=yes ;;
++ -* | */* | *.a | *.so | *.so.* | *.o)
++ ext_cblas=yes
++ ext_cblas_libs="$with_cblas" ;;
++ *) ext_cblas=yes
++ ext_cblas_libs="-l$with_cblas" ;;
++ esac
++
++ AC_ARG_WITH(cblas-external-libs,
++ [AS_HELP_STRING([--with-cblas-external-libs=<libs>],
++ [External cblas libraries to link with (default is "$ext_cblas_libs")])],
++ [ext_cblas_libs=$withval],
++ [])
++
++ AC_ARG_WITH(cblas-external-cflags,
++ [AS_HELP_STRING([--with-cblas-external-cflags=<flags>],
++ [Pre-processing flags to compile with external cblas ("-I<dir>")])],
++ [ext_cblas_cflags=$withval],
++ [])
++
++ if test x$ext_cblas != xno; then
++ if test "x$CBLAS_LIBS" = x; then
++ CBLAS_LIBS="$ext_cblas_libs"
++ fi
++ if test "x$CBLAS_CFLAGS" = x; then
++ CBLAS_CFLAGS="$ext_cblas_cflags"
++ fi
++
++ CFLAGS_sav="$CFLAGS"
++ CFLAGS="$CFLAGS $CBLAS_CFLAGS"
++ AC_CHECK_HEADER(cblas.h, ,
++ [AC_MSG_ERROR([
++ *** Header file cblas.h not found.
++ *** If you installed cblas header in a non standard place,
++ *** specify its install prefix using the following option
++ *** --with-cblas-external-cflags="-I<include_dir>"])
++ ])
++ CFLAGS="$CFLAGS_sav"
++
++ LIBS_sav="$LIBS"
++ LIBS="$LIBS $CBLAS_LIBS -lm"
++ AC_MSG_CHECKING([for cblas_sgemm in $CBLAS_LIBS])
++ AC_TRY_LINK_FUNC(cblas_sgemm, [ext_cblas=yes],
++ [AC_MSG_ERROR([
++ *** Linking with cblas with $LIBS failed.
++ *** If you installed cblas library in a non standard place,
++ *** specify its install prefix using the following option
++ *** --with-cblas-external-libs="-L<lib_dir> -l<lib>"])
++ ])
++ AC_MSG_RESULT($ext_cblas)
++ LIBS="$LIBS_sav"
++ AC_SUBST([CBLAS_CFLAGS])
++ AC_SUBST([CBLAS_LIBS])
++ fi
++])
+diff --git a/bspline/Makefile.am b/bspline/Makefile.am
+index 3f4f950..d413036 100644
+--- a/bspline/Makefile.am
++++ b/bspline/Makefile.am
+@@ -12,6 +12,6 @@ check_PROGRAMS = test
+
+ TESTS = $(check_PROGRAMS)
+
+-test_LDADD = libgslbspline.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../cblas/libgslcblas.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../statistics/libgslstatistics.la
++test_LDADD = libgslbspline.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la @CBLAS_LINK_LIBS@ ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../statistics/libgslstatistics.la
+
+ test_SOURCES = test.c
+diff --git a/configure.ac b/configure.ac
+index a26fc1e..564d426 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -208,6 +208,16 @@ if test "x$LIBS" = "x" ; then
+ AC_CHECK_LIB(m, cos)
+ fi
+
++sinclude(ax_cblas.m4)
++AX_CBLAS
++if test "x$CBLAS_LIBS" != "x"; then
++ CBLAS_LINK_LIBS="$CBLAS_LIBS"
++else
++ CBLAS_LINK_LIBS="\$(top_builddir)/cblas/libgslcblas.la"
++ CBLAS_LIBS="-lgslcblas"
++fi
++AC_SUBST(CBLAS_LINK_LIBS)
++
+ dnl Remember to put a definition in acconfig.h for each of these
+ AC_CHECK_DECLS(feenableexcept,,,[#define _GNU_SOURCE 1
+ #include <fenv.h>])
+diff --git a/eigen/Makefile.am b/eigen/Makefile.am
+index c28bfde..14197a4 100644
+--- a/eigen/Makefile.am
++++ b/eigen/Makefile.am
+@@ -11,7 +11,7 @@ noinst_HEADERS = qrstep.c
+
+ TESTS = $(check_PROGRAMS)
+
+-test_LDADD = libgsleigen.la ../test/libgsltest.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../sys/libgslsys.la ../err/libgslerr.la ../utils/libutils.la ../rng/libgslrng.la ../sort/libgslsort.la
++test_LDADD = libgsleigen.la ../test/libgsltest.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../sys/libgslsys.la ../err/libgslerr.la ../utils/libutils.la ../rng/libgslrng.la ../sort/libgslsort.la
+
+ test_SOURCES = test.c
+
+diff --git a/gsl-config.in b/gsl-config.in
+old mode 100755
+new mode 100644
+index 3f3fa61..c9c4262
+--- a/gsl-config.in
++++ b/gsl-config.in
+@@ -58,11 +58,11 @@ while test $# -gt 0; do
+ ;;
+
+ --cflags)
+- echo @GSL_CFLAGS@
++ echo @GSL_CFLAGS@ @CBLAS_CFLAGS@
+ ;;
+
+ --libs)
+- : ${GSL_CBLAS_LIB=-lgslcblas}
++ : ${GSL_CBLAS_LIB=@CBLAS_LIBS@}
+ echo @GSL_LIBS@ $GSL_CBLAS_LIB @GSL_LIBM@
+ ;;
+
+diff --git a/gsl.pc.in b/gsl.pc.in
+index 5e9ef21..5a7a0f3 100644
+--- a/gsl.pc.in
++++ b/gsl.pc.in
+@@ -2,7 +2,7 @@ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ libdir=@libdir@
+ includedir=@includedir@
+-GSL_CBLAS_LIB=-lgslcblas
++GSL_CBLAS_LIB=@CBLAS_LIBS@
+
+ Name: GSL
+ Description: GNU Scientific Library
+diff --git a/interpolation/Makefile.am b/interpolation/Makefile.am
+index 1d80755..e45bd51 100644
+--- a/interpolation/Makefile.am
++++ b/interpolation/Makefile.am
+@@ -12,7 +12,7 @@ AM_CPPFLAGS = -I$(top_srcdir)
+
+ TESTS = $(check_PROGRAMS)
+
+-test_LDADD = libgslinterpolation.la ../poly/libgslpoly.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../cblas/libgslcblas.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslinterpolation.la ../poly/libgslpoly.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la @CBLAS_LINK_LIBS@ ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+ test_SOURCES = test.c
+
+diff --git a/linalg/Makefile.am b/linalg/Makefile.am
+index a6c15b0..447ebbe 100644
+--- a/linalg/Makefile.am
++++ b/linalg/Makefile.am
+@@ -13,4 +13,4 @@ TESTS = $(check_PROGRAMS)
+ check_PROGRAMS = test
+
+ test_SOURCES = test.c
+-test_LDADD = libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../rng/libgslrng.la
++test_LDADD = libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../rng/libgslrng.la
+diff --git a/multifit/Makefile.am b/multifit/Makefile.am
+index 988614e..793b485 100644
+--- a/multifit/Makefile.am
++++ b/multifit/Makefile.am
+@@ -67,8 +67,8 @@ check_PROGRAMS = test #demo
+ TESTS = $(check_PROGRAMS)
+
+ test_SOURCES = test.c
+-test_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../sort/libgslsort.la ../statistics/libgslstatistics.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la ../rng/libgslrng.la ../specfunc/libgslspecfunc.la ../min/libgslmin.la
++test_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../sort/libgslsort.la ../statistics/libgslstatistics.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la ../rng/libgslrng.la ../specfunc/libgslspecfunc.la ../min/libgslmin.la
+
+ #demo_SOURCES = demo.c
+-#demo_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../randist/libgslrandist.la ../rng/libgslrng.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la
++#demo_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../randist/libgslrandist.la ../rng/libgslrng.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la
+
+diff --git a/multimin/Makefile.am b/multimin/Makefile.am
+index 7071359..65a488a 100644
+--- a/multimin/Makefile.am
++++ b/multimin/Makefile.am
+@@ -13,8 +13,8 @@ check_PROGRAMS = test #demo
+ TESTS = $(check_PROGRAMS)
+
+ test_SOURCES = test.c test_funcs.c test_funcs.h
+-test_LDADD = libgslmultimin.la ../min/libgslmin.la ../poly/libgslpoly.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslmultimin.la ../min/libgslmin.la ../poly/libgslpoly.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+ #demo_SOURCES = demo.c
+-#demo_LDADD = libgslmultimin.la ../min/libgslmin.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../linalg/libgsllinalg.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++#demo_LDADD = libgslmultimin.la ../min/libgslmin.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../linalg/libgsllinalg.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+diff --git a/multiroots/Makefile.am b/multiroots/Makefile.am
+index a351c3f..6178448 100644
+--- a/multiroots/Makefile.am
++++ b/multiroots/Makefile.am
+@@ -15,5 +15,5 @@ check_PROGRAMS = test
+ TESTS = $(check_PROGRAMS)
+
+ test_SOURCES = test.c test_funcs.c test_funcs.h
+-test_LDADD = libgslmultiroots.la ../linalg/libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslmultiroots.la ../linalg/libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+diff --git a/ode-initval/Makefile.am b/ode-initval/Makefile.am
+index 9c774b5..346c381 100644
+--- a/ode-initval/Makefile.am
++++ b/ode-initval/Makefile.am
+@@ -12,7 +12,7 @@ check_PROGRAMS = test
+
+ TESTS = $(check_PROGRAMS)
+
+-test_LDADD = libgslodeiv.la ../linalg/libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../permutation/libgslpermutation.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslodeiv.la ../linalg/libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../permutation/libgslpermutation.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+ test_SOURCES = test.c
+
+diff --git a/poly/Makefile.am b/poly/Makefile.am
+index f1dae5d..e0f8e83 100644
+--- a/poly/Makefile.am
++++ b/poly/Makefile.am
+@@ -10,7 +10,7 @@ noinst_HEADERS = balance.c companion.c qr.c
+
+ TESTS = $(check_PROGRAMS)
+
+-check_PROGRAMS = test
++#check_PROGRAMS = test
+
+ test_SOURCES = test.c
+ test_LDADD = libgslpoly.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../sort/libgslsort.la
+diff --git a/specfunc/Makefile.am b/specfunc/Makefile.am
+index eba9ab2..772cc7e 100644
+--- a/specfunc/Makefile.am
++++ b/specfunc/Makefile.am
+@@ -12,7 +12,7 @@ TESTS = $(check_PROGRAMS)
+
+ check_PROGRAMS = test
+
+-test_LDADD = libgslspecfunc.la ../eigen/libgsleigen.la ../linalg/libgsllinalg.la ../sort/libgslsort.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../block/libgslblock.la ../complex/libgslcomplex.la ../poly/libgslpoly.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslspecfunc.la ../eigen/libgsleigen.la ../linalg/libgsllinalg.la ../sort/libgslsort.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../block/libgslblock.la ../complex/libgslcomplex.la ../poly/libgslpoly.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+ test_SOURCES = test_sf.c test_sf.h test_airy.c test_bessel.c test_coulomb.c test_dilog.c test_gamma.c test_hyperg.c test_legendre.c test_mathieu.c
+
+diff --git a/wavelet/Makefile.am b/wavelet/Makefile.am
+index 9da20d8..8cdbd77 100644
+--- a/wavelet/Makefile.am
++++ b/wavelet/Makefile.am
+@@ -10,7 +10,7 @@ check_PROGRAMS = test
+
+ TESTS = $(check_PROGRAMS)
+
+-test_LDADD = libgslwavelet.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
++test_LDADD = libgslwavelet.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+
+ test_SOURCES = test.c
+
diff --git a/var/spack/repos/builtin/packages/gsl/package.py b/var/spack/repos/builtin/packages/gsl/package.py
index fb81843c64..0f67b8a9f3 100644
--- a/var/spack/repos/builtin/packages/gsl/package.py
+++ b/var/spack/repos/builtin/packages/gsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,11 @@ class Gsl(AutotoolsPackage, GNUMirrorPackage):
number generators, special functions and least-squares fitting. There are
over 1000 functions in total with an extensive test suite."""
- homepage = "http://www.gnu.org/software/gsl"
+ homepage = "https://www.gnu.org/software/gsl"
gnu_mirror_path = "gsl/gsl-2.3.tar.gz"
+ version('2.7', sha256='efbbf3785da0e53038be7907500628b466152dbc3c173a87de1b5eba2e23602b')
+ version('2.6', sha256='b782339fc7a38fe17689cb39966c4d821236c28018b6593ddb6fd59ee40786a8')
version('2.5', sha256='0460ad7c2542caaddc6729762952d345374784100223995eb14d614861f2258d')
version('2.4', sha256='4d46d07b946e7b31c19bbf33dda6204d7bedc2f5462a1bae1d4013426cd1ce9b')
version('2.3', sha256='562500b789cd599b3a4f88547a7a3280538ab2ff4939504c8b4ac4ca25feadfb')
@@ -28,9 +30,11 @@ class Gsl(AutotoolsPackage, GNUMirrorPackage):
variant('external-cblas', default=False, description='Build against external blas')
# from https://dev.gentoo.org/~mgorny/dist/gsl-2.3-cblas.patch.bz2
- patch('gsl-2.3-cblas.patch', when="+external-cblas")
+ patch('gsl-2.3-cblas.patch', when="@2.3:2.5.99+external-cblas")
+ patch('gsl-2.6-cblas.patch', when="@2.6: +external-cblas")
+
+ conflicts('+external-cblas', when="@:2.2.99")
- conflicts('+external-cblas', when="@:2.2.9999")
depends_on('m4', type='build', when='+external-cblas')
depends_on('autoconf', type='build', when='+external-cblas')
depends_on('automake', type='build', when='+external-cblas')
diff --git a/var/spack/repos/builtin/packages/gslib/package.py b/var/spack/repos/builtin/packages/gslib/package.py
index 37827a8c1f..bd0649aa33 100644
--- a/var/spack/repos/builtin/packages/gslib/package.py
+++ b/var/spack/repos/builtin/packages/gslib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gtk-doc/build.patch b/var/spack/repos/builtin/packages/gtk-doc/build.patch
new file mode 100644
index 0000000000..eff4dfed5a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gtk-doc/build.patch
@@ -0,0 +1,25 @@
+diff -ru gtk-doc-GTK_DOC_1_32.orig/m4/gtkdoc_jh_check_xml_catalog.m4 gtk-doc-GTK_DOC_1_32.new/m4/gtkdoc_jh_check_xml_catalog.m4
+--- gtk-doc-GTK_DOC_1_32.orig/m4/gtkdoc_jh_check_xml_catalog.m4 2021-03-17 08:00:49.717688000 -0700
++++ gtk-doc-GTK_DOC_1_32.new/m4/gtkdoc_jh_check_xml_catalog.m4 2021-03-17 08:01:30.600655000 -0700
+@@ -6,7 +6,7 @@
+ AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
+ AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
+ if $jh_found_xmlcatalog && \
+- AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
++ AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then
+ AC_MSG_RESULT([found])
+ ifelse([$3],,,[$3])
+ else
+diff -ru gtk-doc-GTK_DOC_1_32.orig/m4/gtkdoc_jh_path_xml_catalog.m4 gtk-doc-GTK_DOC_1_32.new/m4/gtkdoc_jh_path_xml_catalog.m4
+--- gtk-doc-GTK_DOC_1_32.orig/m4/gtkdoc_jh_path_xml_catalog.m4 2021-03-17 08:00:49.720681000 -0700
++++ gtk-doc-GTK_DOC_1_32.new/m4/gtkdoc_jh_path_xml_catalog.m4 2021-03-17 08:09:44.424666000 -0700
+@@ -37,6 +37,9 @@
+ break
+ fi
+ done
++ if test -n "$XML_CATALOG_FILES"; then
++ jh_found_xmlcatalog=true
++ fi
+ IFS="$jh_xml_catalog_saved_ifs"
+ fi
+ if $jh_found_xmlcatalog; then
diff --git a/var/spack/repos/builtin/packages/gtk-doc/package.py b/var/spack/repos/builtin/packages/gtk-doc/package.py
index 82706d9fdc..1cb992b3a5 100644
--- a/var/spack/repos/builtin/packages/gtk-doc/package.py
+++ b/var/spack/repos/builtin/packages/gtk-doc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -30,12 +30,38 @@ class GtkDoc(AutotoolsPackage):
depends_on('python@3.2:', type=('build', 'run'))
depends_on('py-pygments', type=('build', 'run'))
+ depends_on('py-anytree', type=('test'))
+ depends_on('py-lxml', type=('test'))
+ depends_on('py-parameterized', type=('test'))
+ depends_on('py-six', type=('test'))
depends_on('libxslt')
depends_on('libxml2')
- depends_on('docbook-xsl')
+ depends_on('docbook-xsl@1.78.1')
+ depends_on('docbook-xml@4.3')
# depends_on('dblatex', when='+pdf')
+ patch('build.patch')
+
+ def setup_build_environment(self, env):
+ """ If test/tools.sh does not find gtkdocize it starts a sh which blocks"""
+ env.prepend_path('PATH',
+ join_path(self.stage.source_path, 'buildsystems', 'autotools'))
+
+ def install(self, spec, prefix):
+ make('install', 'V=1')
+ install(join_path('buildsystems', 'autotools', 'gtkdocize'), prefix.bin)
+
+ def installcheck(self):
+ """gtk-doc does not support installcheck properly, skip it"""
+ pass
+
def url_for_version(self, version):
"""Handle gnome's version-based custom URLs."""
url = 'https://gitlab.gnome.org/GNOME/gtk-doc/-/archive/GTK_DOC_{0}/gtk-doc-GTK_DOC_{0}.tar.gz'
return url.format(version.underscored)
+
+ def configure_args(self):
+ args = [
+ '--with-xml-catalog={0}'.format(self.spec['docbook-xml'].package.catalog)
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/gtkmm/package.py b/var/spack/repos/builtin/packages/gtkmm/package.py
index 12a149e7ab..f3c10dd86c 100644
--- a/var/spack/repos/builtin/packages/gtkmm/package.py
+++ b/var/spack/repos/builtin/packages/gtkmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gtkorvo-atl/package.py b/var/spack/repos/builtin/packages/gtkorvo-atl/package.py
index 80dc12e34b..c46c23532e 100644
--- a/var/spack/repos/builtin/packages/gtkorvo-atl/package.py
+++ b/var/spack/repos/builtin/packages/gtkorvo-atl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py b/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py
index 19a57f122b..56bcd1f845 100644
--- a/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py
+++ b/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gtkorvo-dill/package.py b/var/spack/repos/builtin/packages/gtkorvo-dill/package.py
index b708666d4f..79c65e0443 100644
--- a/var/spack/repos/builtin/packages/gtkorvo-dill/package.py
+++ b/var/spack/repos/builtin/packages/gtkorvo-dill/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gtkorvo-enet/package.py b/var/spack/repos/builtin/packages/gtkorvo-enet/package.py
index 7b86f292c7..3b199f4591 100644
--- a/var/spack/repos/builtin/packages/gtkorvo-enet/package.py
+++ b/var/spack/repos/builtin/packages/gtkorvo-enet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,10 @@ class GtkorvoEnet(AutotoolsPackage):
"""ENet reliable UDP networking library.
This is a downstream branch of lsalzman's ENet.
This version has expanded the client ID to handle more clients.
- The original is at http://github.com/lsalzman/enet.
+ The original is at https://github.com/lsalzman/enet.
"""
- homepage = "http://www.github.com/GTkorvo/enet"
+ homepage = "https://www.github.com/GTkorvo/enet"
url = "https://github.com/GTkorvo/enet/archive/v1.3.13.tar.gz"
version('1.3.14', sha256='d1fda051bdee46ad8cce7c3bb36fb6b7a7a443945f27a280ac104753c29465b0')
diff --git a/var/spack/repos/builtin/packages/gtkplus/package.py b/var/spack/repos/builtin/packages/gtkplus/package.py
index 608bcec294..a5db09d06c 100644
--- a/var/spack/repos/builtin/packages/gtkplus/package.py
+++ b/var/spack/repos/builtin/packages/gtkplus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,48 +6,65 @@
from spack import *
-class Gtkplus(AutotoolsPackage):
- """The GTK+ 2 package contains libraries used for creating graphical user
+class Gtkplus(MesonPackage):
+ """The GTK+ package contains libraries used for creating graphical user
interfaces for applications."""
- homepage = "http://www.gtk.org"
- url = "http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.31.tar.xz"
- version('3.20.10', sha256='e81da1af1c5c1fee87ba439770e17272fa5c06e64572939814da406859e56b70')
- version('2.24.32', sha256='b6c8a93ddda5eabe3bfee1eb39636c9a03d2a56c7b62828b359bf197943c582e')
- version('2.24.31', sha256='68c1922732c7efc08df4656a5366dcc3afdc8791513400dac276009b40954658')
- version('2.24.25', sha256='38af1020cb8ff3d10dda2c8807f11e92af9d2fa4045de61c62eedb7fbc7ea5b3')
+
+ homepage = "https://www.gtk.org/"
+ url = "https://download.gnome.org/sources/gtk+/3.24/gtk+-3.24.26.tar.xz"
+
+ version('3.24.29', sha256='f57ec4ade8f15cab0c23a80dcaee85b876e70a8823d9105f067ce335a8268caa')
+ version('3.24.26', sha256='2cc1b2dc5cad15d25b6abd115c55ffd8331e8d4677745dd3ce6db725b4fff1e9')
+ version('3.20.10', sha256='e81da1af1c5c1fee87ba439770e17272fa5c06e64572939814da406859e56b70', deprecated=True)
+ version('2.24.32', sha256='b6c8a93ddda5eabe3bfee1eb39636c9a03d2a56c7b62828b359bf197943c582e', deprecated=True)
+ version('2.24.31', sha256='68c1922732c7efc08df4656a5366dcc3afdc8791513400dac276009b40954658', deprecated=True)
+ version('2.24.25', sha256='38af1020cb8ff3d10dda2c8807f11e92af9d2fa4045de61c62eedb7fbc7ea5b3', deprecated=True)
variant('cups', default='False', description='enable cups support')
+ # See meson.build for version requirements
+ depends_on('meson@0.48.0:', when='@3.24:', type='build')
+ depends_on('ninja', when='@3.24:', type='build')
+ # Needed to build man pages:
+ # depends_on('docbook-xml', when='@3.24:', type='build')
+ # depends_on('docbook-xsl', when='@3.24:', type='build')
+ # depends_on('libxslt', when='@3.24:', type='build')
depends_on('pkgconfig', type='build')
-
- depends_on('atk')
- depends_on('gdk-pixbuf')
- depends_on('glib')
+ depends_on('glib@2.57.2:')
+ depends_on('pango@1.41.0:+X')
+ depends_on('fribidi@0.19.7:')
+ depends_on('atk@2.35.1:')
+ depends_on('at-spi2-atk@2.15.1:', when='@3:')
+ depends_on('cairo@1.14.0:+X+pdf+gobject')
+ depends_on('gdk-pixbuf@2.30.0:')
+ depends_on('gobject-introspection@1.39.0:')
depends_on('shared-mime-info')
- # Hardcode X11 support (former +X variant),
- # see #6940 for rationale:
- depends_on('pango+X')
- depends_on('cairo+X+pdf+gobject')
- depends_on('gobject-introspection')
- depends_on('libepoxy', when='@3:')
+ depends_on('libxkbcommon')
+ depends_on('librsvg')
+ depends_on('xrandr')
+ depends_on('libepoxy+glx', when='@3:')
depends_on('libxi', when='@3:')
depends_on('inputproto', when='@3:')
depends_on('fixesproto', when='@3:')
- depends_on('at-spi2-atk', when='@3:')
depends_on('gettext', when='@3:')
depends_on('cups', when='+cups')
patch('no-demos.patch', when='@2:2.99')
def url_for_version(self, version):
- url = 'http://ftp.gnome.org/pub/gnome/sources/gtk+'
- return url + '/%s/gtk+-%s.tar.xz' % (version.up_to(2), version)
+ url = 'https://download.gnome.org/sources/gtk+/{0}/gtk+-{1}.tar.xz'
+ return url.format(version.up_to(2), version)
def patch(self):
# remove disable deprecated flag.
filter_file(r'CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CFLAGS"',
'', 'configure', string=True)
+ # https://gitlab.gnome.org/GNOME/gtk/-/issues/3776
+ if self.spec.satisfies('%gcc@11:'):
+ filter_file(" '-Werror=array-bounds',",
+ '', 'meson.build', string=True)
+
def setup_run_environment(self, env):
env.prepend_path("GI_TYPELIB_PATH",
join_path(self.prefix.lib, 'girepository-1.0'))
@@ -62,15 +79,47 @@ class Gtkplus(AutotoolsPackage):
env.prepend_path("GI_TYPELIB_PATH",
join_path(self.prefix.lib, 'girepository-1.0'))
+ def meson_args(self):
+ args = std_meson_args
+
+ if self.spec.satisfies('platform=darwin'):
+ args.extend([
+ '-Dx11_backend=false',
+ '-Dquartz_backend=true',
+ ])
+
+ args.extend([
+ '-Dgtk_doc=false',
+ '-Dman=false',
+ '-Dintrospection=true',
+ '-Dwayland_backend=false',
+ ])
+
+ return args
+
def configure_args(self):
- args = []
- # disable building of gtk-doc files following #9771
- args.append('--disable-gtk-doc-html')
true = which('true')
- args.append('GTKDOC_CHECK={0}'.format(true))
- args.append('GTKDOC_CHECK_PATH={0}'.format(true))
- args.append('GTKDOC_MKPDF={0}'.format(true))
- args.append('GTKDOC_REBASE={0}'.format(true))
+ args = [
+ '--prefix={0}'.format(self.prefix),
+ # disable building of gtk-doc files following #9771
+ '--disable-gtk-doc-html',
+ 'GTKDOC_CHECK={0}'.format(true),
+ 'GTKDOC_CHECK_PATH={0}'.format(true),
+ 'GTKDOC_MKPDF={0}'.format(true),
+ 'GTKDOC_REBASE={0}'.format(true),
+ ]
if '~cups' in self.spec:
args.append('--disable-cups')
return args
+
+ @when('@:3.20.10')
+ def meson(self, spec, prefix):
+ configure(*self.configure_args)
+
+ @when('@:3.20.10')
+ def build(self, spec, prefix):
+ make()
+
+ @when('@:3.20.10')
+ def install(self, spec, prefix):
+ make('install')
diff --git a/var/spack/repos/builtin/packages/gtksourceview/package.py b/var/spack/repos/builtin/packages/gtksourceview/package.py
index ed6737133a..4e07fd4b65 100644
--- a/var/spack/repos/builtin/packages/gtksourceview/package.py
+++ b/var/spack/repos/builtin/packages/gtksourceview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gts/package.py b/var/spack/repos/builtin/packages/gts/package.py
index 13698ec27a..2848e2f8fe 100644
--- a/var/spack/repos/builtin/packages/gts/package.py
+++ b/var/spack/repos/builtin/packages/gts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/guacamole-client/package.py b/var/spack/repos/builtin/packages/guacamole-client/package.py
index 0db64509a7..f977ad609c 100644
--- a/var/spack/repos/builtin/packages/guacamole-client/package.py
+++ b/var/spack/repos/builtin/packages/guacamole-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/guacamole-server/package.py b/var/spack/repos/builtin/packages/guacamole-server/package.py
index ea08a63639..c2ffa1f2be 100644
--- a/var/spack/repos/builtin/packages/guacamole-server/package.py
+++ b/var/spack/repos/builtin/packages/guacamole-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class GuacamoleServer(AutotoolsPackage):
basis of the Guacamole stack. It consists of guacd, libguac, and
several protocol support libraries."""
- homepage = "http://guacamole.apache.org/"
+ homepage = "https://guacamole.apache.org/"
url = "https://github.com/apache/guacamole-server/archive/1.1.0.tar.gz"
version('1.1.0', sha256='d0f0c66ebfa7a4fd6689ae5240f21797b5177945a042388b691b15b8bd5c81a8')
diff --git a/var/spack/repos/builtin/packages/guidance/package.py b/var/spack/repos/builtin/packages/guidance/package.py
index e0015b7f32..638050bbc6 100644
--- a/var/spack/repos/builtin/packages/guidance/package.py
+++ b/var/spack/repos/builtin/packages/guidance/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+from spack import *
+
class Guidance(MakefilePackage):
"""Guidance: Accurate detection of unreliable alignment regions accounting
diff --git a/var/spack/repos/builtin/packages/guile/package.py b/var/spack/repos/builtin/packages/guile/package.py
index 47bfa38125..440fa367f0 100644
--- a/var/spack/repos/builtin/packages/guile/package.py
+++ b/var/spack/repos/builtin/packages/guile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/gunrock/package.py b/var/spack/repos/builtin/packages/gunrock/package.py
index ae7d4215d4..81b237a78d 100644
--- a/var/spack/repos/builtin/packages/gunrock/package.py
+++ b/var/spack/repos/builtin/packages/gunrock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -60,23 +60,17 @@ 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'),
- ])
+ from_variant = self.define_from_variant
+
+ args = [
+ from_variant('GUNROCK_BUILD_LIB', 'lib'),
+ from_variant('GUNROCK_BUILD_SHARED_LIBS', 'shared_libs'),
+ from_variant('GUNROCK_BUILD_TESTS', 'tests'),
+ from_variant('GUNROCK_MGPU_TESTS', 'mgpu_tests'),
+ from_variant('CUDA_VERBOSE_PTXAS', 'cuda_verbose_ptxas'),
+ from_variant('GUNROCK_GOOGLE_TESTS', 'google_tests'),
+ from_variant('GUNROCK_CODE_COVERAGE', 'code_coverage'),
+ ]
# turn off auto detect, which undoes custom cuda arch options
args.append('-DCUDA_AUTODETECT_GENCODE=OFF')
diff --git a/var/spack/repos/builtin/packages/gurobi/package.py b/var/spack/repos/builtin/packages/gurobi/package.py
index 4922d23678..132b9b4ed8 100644
--- a/var/spack/repos/builtin/packages/gurobi/package.py
+++ b/var/spack/repos/builtin/packages/gurobi/package.py
@@ -1,42 +1,60 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Gurobi(Package):
"""The Gurobi Optimizer was designed from the ground up to be the fastest,
most powerful solver available for your LP, QP, QCP, and MIP (MILP, MIQP,
- and MIQCP) problems.
-
- Note: Gurobi is licensed software. You will need to create an account on
- the Gurobi homepage and download Gurobi Optimizer yourself. Spack will
- search your current directory for the download file. Alternatively, add
- this file to a mirror so that Spack can find it. For instructions on how to
- set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html
+ and MIQCP) problems."""
- Please set the path to licence file with the following command (for bash)
- export GRB_LICENSE_FILE=/path/to/gurobi/license/. See section 4 in
- $GUROBI_HOME/docs/quickstart_linux.pdf for more details."""
+ # Note: Gurobi is licensed software. You will need to create an account on
+ # the Gurobi homepage and download Gurobi Optimizer yourself. Spack will
+ # search your current directory for the download file. Alternatively, add
+ # this file to a mirror so that Spack can find it. For instructions on how
+ # to set up a mirror, see
+ # https://spack.readthedocs.io/en/latest/mirrors.html
- homepage = "http://www.gurobi.com/index"
+ homepage = "https://www.gurobi.com/index"
manual_download = True
+ maintainers = ['glennpj']
+
+ version('9.1.2', sha256='7f60bd675f79476bb2b32cd632aa1d470f8246f2b033b7652d8de86f6e7e429b')
version('7.5.2', '01f6dbb8d165838cca1664a1a14e4a85')
# Licensing
license_required = True
+ license_files = ['gurobi.lic']
license_vars = ['GRB_LICENSE_FILE']
license_url = 'http://www.gurobi.com/downloads/download-center'
+ extends('python')
+ depends_on('python@2.7,3.6:')
+
def url_for_version(self, version):
return "file://{0}/gurobi{1}_linux64.tar.gz".format(os.getcwd(), version)
+ def patch(self):
+ # Strip out existing PYTHONPATH as the presence of that will generally
+ # break given that Spack has likely set that for a different Python.
+ gurobi_shell = join_path('linux64', 'bin', 'gurobi.sh')
+ filter_file(r':\$PYTHONPATH', '', gurobi_shell)
+
def setup_run_environment(self, env):
env.set('GUROBI_HOME', self.prefix)
+ env.set('GRB_LICENSE_FILE', join_path(self.prefix, 'gurobi.lic'))
def install(self, spec, prefix):
install_tree('linux64', prefix)
+
+ @run_after('install')
+ def gurobipy(self):
+ with working_dir('linux64'):
+ python = which('python')
+ python('setup.py', 'install', '--prefix={0}'.format(self.prefix))
diff --git a/var/spack/repos/builtin/packages/gxsview/package.py b/var/spack/repos/builtin/packages/gxsview/package.py
new file mode 100644
index 0000000000..8d910f5086
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gxsview/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2021 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 Gxsview(QMakePackage):
+ """Gxsview is a stand-alone multi-platform integrated tool to visualize input
+ data of Monte Carlo radiation transport calculation code, MCNP5, and PHITS3.
+
+ It consists of 3D, 2D, cross-section, and input file viewers.
+ Also, this software is capable of exporting in 2D(png, jpg, and xpm)
+ or 3D(stl, vtk, vtp and ply) formats."""
+
+ homepage = "https://www.nmri.go.jp/study/research_organization/risk/gxsview/en/index.html"
+ url = "https://www.nmri.go.jp/study/research_organization/risk/gxsview/download/gxsview-2021.07.01-src.zip"
+
+ # Support email for questions ohnishi@m.mpat.go.jp
+ maintainers = ['cessenat']
+
+ version('2021.07.01', '000f9b4721d4ee03b02730dbbfe83947f96a60a183342b127f0b6b63b03e8f9a')
+
+ depends_on('fontconfig')
+ depends_on('qt@5.14.0:+opengl+gui')
+ depends_on('vtk@8.0:+qt+opengl2') # +mpi+python are optional
+ conflicts('%gcc@:7.2.0', msg='Requires C++17 compiler support') # need C++17 standard
+
+ build_directory = 'gui'
+
+ def qmake_args(self):
+ vtk_suffix = self.spec['vtk'].version.up_to(2)
+ vtk_lib_dir = self.spec['vtk'].prefix.lib
+ vtk_include_dir = join_path(self.spec['vtk'].prefix.include,
+ 'vtk-{0}'.format(vtk_suffix))
+ args = [
+ 'VTK_LIB_DIR={0}'.format(vtk_lib_dir),
+ 'VTK_INC_DIR={0}'.format(vtk_include_dir),
+ 'VTK_MAJOR_VER={0}'.format(str(vtk_suffix)),
+ ]
+ return args
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install(join_path('gui', 'gxsview'), prefix.bin)
diff --git a/var/spack/repos/builtin/packages/gzip/package.py b/var/spack/repos/builtin/packages/gzip/package.py
index 81295fab7a..6950ead63e 100644
--- a/var/spack/repos/builtin/packages/gzip/package.py
+++ b/var/spack/repos/builtin/packages/gzip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class Gzip(AutotoolsPackage):
homepage = "https://www.gnu.org/software/gzip/"
url = "https://ftp.gnu.org/gnu/gzip/gzip-1.10.tar.gz"
+ version('1.11', sha256='3e8a0e0c45bad3009341dce17d71536c4c655d9313039021ce7554a26cd50ed9')
version('1.10', sha256='c91f74430bf7bc20402e1f657d0b252cb80aa66ba333a25704512af346633c68')
depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/h2database/package.py b/var/spack/repos/builtin/packages/h2database/package.py
index a4c4dcceec..edce327719 100644
--- a/var/spack/repos/builtin/packages/h2database/package.py
+++ b/var/spack/repos/builtin/packages/h2database/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/h5bench/package.py b/var/spack/repos/builtin/packages/h5bench/package.py
new file mode 100644
index 0000000000..46fcc53021
--- /dev/null
+++ b/var/spack/repos/builtin/packages/h5bench/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 H5bench(CMakePackage):
+ """A benchmark suite for measuring HDF5 performance."""
+
+ homepage = "https://github.com/hpc-io/h5bench"
+ git = "https://github.com/hpc-io/h5bench.git"
+
+ version('master', branch='master')
+
+ depends_on('cmake@3.10:', type='build')
+ depends_on('mpi')
+ depends_on('hdf5+mpi@1.12.0:1.99.99,develop-1.12:')
+
+ @run_after('install')
+ def install_config(self):
+ install_tree('h5bench_patterns/sample_config',
+ self.prefix.share.patterns)
+ install('metadata_stress/hdf5_iotest.ini',
+ self.prefix.share)
+
+ def setup_build_environment(self, env):
+ env.set('HDF5_HOME', self.spec['hdf5'].prefix)
diff --git a/var/spack/repos/builtin/packages/h5cpp/package.py b/var/spack/repos/builtin/packages/h5cpp/package.py
index 373aa1303d..15c97ea3ba 100644
--- a/var/spack/repos/builtin/packages/h5cpp/package.py
+++ b/var/spack/repos/builtin/packages/h5cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,8 @@ class H5cpp(CMakePackage):
maintainers = ['eschnett']
version('master', branch='master')
- version('1.10.4-5', sha256='42d0ca1aaff1ead8998a26d892a51c12b1b89023382f191dc438bd0fa4513455')
+ version('1.10.4-6', sha256='4fbc8e777dc78a37ec2fe8c7b6a47114080ffe587f083e83a2046b5e794aef93')
+ version('1.10.4-5', sha256='661ccc4d76e081afc73df71ef11d027837d92dd1089185f3650afcaec9d418ec')
variant('mpi', default=True, description='Include MPI support')
@@ -26,4 +27,9 @@ class H5cpp(CMakePackage):
depends_on('mpi', when='+mpi')
def cmake_args(self):
- return ['-DH5CPP_BUILD_TESTS=OFF']
+ return [
+ '-DHDF5_INCLUDE_DIRS=%s' %
+ self.spec['hdf5'].headers.directories[0],
+ '-DHDF5_LIBRARIES=%s' % self.spec['hdf5'].libs.directories[0],
+ '-DH5CPP_BUILD_TESTS=OFF',
+ ]
diff --git a/var/spack/repos/builtin/packages/h5hut/package.py b/var/spack/repos/builtin/packages/h5hut/package.py
index 09497c6d68..15e62b3afe 100644
--- a/var/spack/repos/builtin/packages/h5hut/package.py
+++ b/var/spack/repos/builtin/packages/h5hut/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class H5hut(AutotoolsPackage):
High-Performance I/O Library for Particle-based Simulations."""
homepage = "https://amas.psi.ch/H5hut/"
- url = "http://amas.web.psi.ch/Downloads/H5hut/H5hut-2.0.0rc3.tar.gz"
+ url = "https://amas.web.psi.ch/Downloads/H5hut/H5hut-2.0.0rc3.tar.gz"
version('2.0.0rc3', sha256='1ca9a9478a99e1811ecbca3c02cc49258050d339ffb1a170006eab4ab2a01790')
diff --git a/var/spack/repos/builtin/packages/h5part/package.py b/var/spack/repos/builtin/packages/h5part/package.py
index 74246a6ea9..aa186167b0 100644
--- a/var/spack/repos/builtin/packages/h5part/package.py
+++ b/var/spack/repos/builtin/packages/h5part/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ from spack import *
class H5part(AutotoolsPackage):
"""Portable High Performance Parallel Data Interface to HDF5"""
- homepage = "http://vis.lbl.gov/Research/H5Part/"
+ homepage = "https://dav.lbl.gov/archive/Research/AcceleratorSAPP/"
url = "https://codeforge.lbl.gov/frs/download.php/latestfile/18/H5Part-1.6.6.tar.gz"
version('1.6.6', sha256='10347e7535d1afbb08d51be5feb0ae008f73caf889df08e3f7dde717a99c7571')
diff --git a/var/spack/repos/builtin/packages/h5utils/package.py b/var/spack/repos/builtin/packages/h5utils/package.py
index 78fd397311..2f8231c1d2 100644
--- a/var/spack/repos/builtin/packages/h5utils/package.py
+++ b/var/spack/repos/builtin/packages/h5utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/h5z-zfp/package.py b/var/spack/repos/builtin/packages/h5z-zfp/package.py
index f36f48d5b7..4c2c82c44c 100644
--- a/var/spack/repos/builtin/packages/h5z-zfp/package.py
+++ b/var/spack/repos/builtin/packages/h5z-zfp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class H5zZfp(MakefilePackage):
"""A highly flexible floating point and integer compression plugin for the
HDF5 library using ZFP compression."""
- homepage = "http://h5z-zfp.readthedocs.io/en/latest"
+ homepage = "https://h5z-zfp.readthedocs.io/en/latest"
git = "https://github.com/LLNL/H5Z-ZFP.git"
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/hacckernels/package.py b/var/spack/repos/builtin/packages/hacckernels/package.py
index 9322819802..5820ba5eca 100644
--- a/var/spack/repos/builtin/packages/hacckernels/package.py
+++ b/var/spack/repos/builtin/packages/hacckernels/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hackrf-host/package.py b/var/spack/repos/builtin/packages/hackrf-host/package.py
index 572e3b91b0..15c15a9ae6 100644
--- a/var/spack/repos/builtin/packages/hackrf-host/package.py
+++ b/var/spack/repos/builtin/packages/hackrf-host/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hadoop/package.py b/var/spack/repos/builtin/packages/hadoop/package.py
index 26acecfc89..8aa34d14d9 100644
--- a/var/spack/repos/builtin/packages/hadoop/package.py
+++ b/var/spack/repos/builtin/packages/hadoop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,11 +12,14 @@ class Hadoop(Package):
across clusters of computers using simple programming models.
"""
- homepage = "http://hadoop.apache.org/"
+ homepage = "https://hadoop.apache.org/"
url = "https://www.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz"
+ version('3.3.0', sha256='ea1a0f0afcdfb9b6b9d261cdce5a99023d7e8f72d26409e87f69bda65c663688')
+ version('3.2.2', sha256='97e73b46c3972cd3c40c2295bd9488843c24e8503c36e7c57f6e6ecc4e12b8c3')
version('3.2.1', sha256='f66a3a4115b8f16c1077d1a198a06854dbef0e4233291712ed08d0a10629ed37')
version('3.1.3', sha256='1e8b7ca4e3911f8ec999595f71921390e9ad7a27255fbd36af1f3a1628b67e2b')
+ version('2.10.1', sha256='273d5fa1d479d0bb96759b16cf4cbd6ba3e7f863a0778cbae55ab83417e961f0')
version('2.10.0', sha256='131750c258368be4baff5d4a83b4de2cd119bda3774ed26d1d233b6fdf33f07f')
version('2.9.2', sha256='3d2023c46b1156c1b102461ad08cbc17c8cc53004eae95dab40a1f659839f28a')
version('2.8.5', sha256='f9c726df693ce2daa4107886f603270d66e7257f77a92c9886502d6cd4a884a4')
diff --git a/var/spack/repos/builtin/packages/hal/package.py b/var/spack/repos/builtin/packages/hal/package.py
index 752feab1d8..839537afd1 100644
--- a/var/spack/repos/builtin/packages/hal/package.py
+++ b/var/spack/repos/builtin/packages/hal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/halc/package.py b/var/spack/repos/builtin/packages/halc/package.py
index e9b4ffc0aa..3f4a4bae4d 100644
--- a/var/spack/repos/builtin/packages/halc/package.py
+++ b/var/spack/repos/builtin/packages/halc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/half/package.py b/var/spack/repos/builtin/packages/half/package.py
index 5a3daf1c4f..88c02f1d9f 100644
--- a/var/spack/repos/builtin/packages/half/package.py
+++ b/var/spack/repos/builtin/packages/half/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hama/package.py b/var/spack/repos/builtin/packages/hama/package.py
index 6883155f7f..bc3c4a9c2a 100644
--- a/var/spack/repos/builtin/packages/hama/package.py
+++ b/var/spack/repos/builtin/packages/hama/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hapcut2/package.py b/var/spack/repos/builtin/packages/hapcut2/package.py
index a4581647cd..f53e9b8917 100644
--- a/var/spack/repos/builtin/packages/hapcut2/package.py
+++ b/var/spack/repos/builtin/packages/hapcut2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hapdip/package.py b/var/spack/repos/builtin/packages/hapdip/package.py
index 7e1446a0c9..dc90ac59a6 100644
--- a/var/spack/repos/builtin/packages/hapdip/package.py
+++ b/var/spack/repos/builtin/packages/hapdip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/haploview/package.py b/var/spack/repos/builtin/packages/haploview/package.py
index 298ecf6edb..5d634a71ac 100644
--- a/var/spack/repos/builtin/packages/haploview/package.py
+++ b/var/spack/repos/builtin/packages/haploview/package.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Haploview(Package):
"""Haploview is designed to simplify and expedite the process of haplotype
analysis."""
- homepage = "http://www.broadinstitute.org/haploview/haploview"
+ homepage = "https://www.broadinstitute.org/haploview/haploview"
url = "https://downloads.sourceforge.net/project/haploview/release/Haploview4.1.jar"
version('4.1', sha256='b3ffe4c3d8bbab6af5eebf89a2dccdb185280088f70ae84c84be60f85f10201d', expand=False)
diff --git a/var/spack/repos/builtin/packages/haproxy/package.py b/var/spack/repos/builtin/packages/haproxy/package.py
index 2b8d46c315..48e726b927 100644
--- a/var/spack/repos/builtin/packages/haproxy/package.py
+++ b/var/spack/repos/builtin/packages/haproxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hardlink/package.py b/var/spack/repos/builtin/packages/hardlink/package.py
index 10287f28cb..3d63bd6c3f 100644
--- a/var/spack/repos/builtin/packages/hardlink/package.py
+++ b/var/spack/repos/builtin/packages/hardlink/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/harfbuzz/package.py b/var/spack/repos/builtin/packages/harfbuzz/package.py
index 2a303bc97e..fa384bca57 100644
--- a/var/spack/repos/builtin/packages/harfbuzz/package.py
+++ b/var/spack/repos/builtin/packages/harfbuzz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Harfbuzz(AutotoolsPackage):
"""The Harfbuzz package contains an OpenType text shaping engine."""
homepage = "https://github.com/harfbuzz/harfbuzz"
- url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.37.tar.bz2"
+ url = "https://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')
@@ -25,7 +25,7 @@ class Harfbuzz(AutotoolsPackage):
depends_on("glib")
depends_on("icu4c")
depends_on("freetype")
- depends_on("cairo")
+ depends_on("cairo+pdf+ft")
depends_on("zlib")
depends_on("graphite2", when='+graphite2')
@@ -40,12 +40,21 @@ class Harfbuzz(AutotoolsPackage):
return url.format(version)
+ # Function borrowed from superlu
+ def flag_handler(self, name, flags):
+ flags = list(flags)
+ if name == 'cxxflags':
+ flags.append(self.compiler.cxx11_flag)
+ if name == 'cflags':
+ if '%pgi' not in self.spec and self.spec.satisfies('%gcc@:5.1'):
+ flags.append('-std=gnu99')
+ return (None, None, flags)
+
def configure_args(self):
args = []
# disable building of gtk-doc files following #9771
args.append('--disable-gtk-doc-html')
true = which('true')
- args.append('CXXFLAGS={0}'.format(self.compiler.cxx11_flag))
args.append('GTKDOC_CHECK={0}'.format(true))
args.append('GTKDOC_CHECK_PATH={0}'.format(true))
args.append('GTKDOC_MKPDF={0}'.format(true))
diff --git a/var/spack/repos/builtin/packages/harminv/package.py b/var/spack/repos/builtin/packages/harminv/package.py
index 7aab4053ab..17f7a3cee9 100644
--- a/var/spack/repos/builtin/packages/harminv/package.py
+++ b/var/spack/repos/builtin/packages/harminv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hashcat/package.py b/var/spack/repos/builtin/packages/hashcat/package.py
index 782cc52c00..6231666107 100644
--- a/var/spack/repos/builtin/packages/hashcat/package.py
+++ b/var/spack/repos/builtin/packages/hashcat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/haveged/package.py b/var/spack/repos/builtin/packages/haveged/package.py
new file mode 100644
index 0000000000..f8180f84b6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/haveged/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2021 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 Haveged(AutotoolsPackage):
+ """A Linux entropy source using the HAVEGE algorithm."""
+
+ homepage = "https://github.com/jirka-h/haveged"
+ url = "https://github.com/jirka-h/haveged/archive/v1.9.13/haveged-1.9.13.tar.gz"
+
+ version('1.9.13', sha256='d17bd22fa1745daca5ac72e014ed3b0fe5720da4c115953124b1bf2a0aa2b04b')
diff --git a/var/spack/repos/builtin/packages/hazelcast/package.py b/var/spack/repos/builtin/packages/hazelcast/package.py
index 95354be40c..1c450b7bb0 100644
--- a/var/spack/repos/builtin/packages/hazelcast/package.py
+++ b/var/spack/repos/builtin/packages/hazelcast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hbase/package.py b/var/spack/repos/builtin/packages/hbase/package.py
index 1e87f8a297..4e1b5c91b9 100644
--- a/var/spack/repos/builtin/packages/hbase/package.py
+++ b/var/spack/repos/builtin/packages/hbase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hbm-dramsim2/package.py b/var/spack/repos/builtin/packages/hbm-dramsim2/package.py
index 6ecd8de514..75c7f4ab01 100644
--- a/var/spack/repos/builtin/packages/hbm-dramsim2/package.py
+++ b/var/spack/repos/builtin/packages/hbm-dramsim2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hc/package.py b/var/spack/repos/builtin/packages/hc/package.py
index ac7de94062..d197167bbe 100644
--- a/var/spack/repos/builtin/packages/hc/package.py
+++ b/var/spack/repos/builtin/packages/hc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hcol/package.py b/var/spack/repos/builtin/packages/hcol/package.py
index 70278eba93..56a1e25a23 100644
--- a/var/spack/repos/builtin/packages/hcol/package.py
+++ b/var/spack/repos/builtin/packages/hcol/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hcoll/package.py b/var/spack/repos/builtin/packages/hcoll/package.py
index cdcfd4be16..4b05e741c6 100644
--- a/var/spack/repos/builtin/packages/hcoll/package.py
+++ b/var/spack/repos/builtin/packages/hcoll/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hdf-eos2/hdf-eos2.nondarwin-no-single_module.patch b/var/spack/repos/builtin/packages/hdf-eos2/hdf-eos2.nondarwin-no-single_module.patch
new file mode 100644
index 0000000000..35a1736802
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hdf-eos2/hdf-eos2.nondarwin-no-single_module.patch
@@ -0,0 +1,27 @@
+# This patch removes the default(?) setting of passing -single_module
+# flag to the loader. From what I can gather, only the Darwin loader
+# supports that, so this patch allows building on non-Darwin systems
+diff -Naur spack-src/src/Makefile.am spack-src.patched/src/Makefile.am
+--- spack-src/src/Makefile.am 2008-02-19 13:43:18.000000000 -0500
++++ spack-src.patched/src/Makefile.am 2020-12-02 11:11:52.780822127 -0500
+@@ -6,7 +6,7 @@
+ INCLUDES=-I$(top_srcdir)/include/
+
+ # Set LDFLAGS to alow the HDF-EOS library to use extern variables from HDF4
+-LDFLAGS=-Wl,-single_module
++#LDFLAGS=-Wl,-single_module
+
+ # Build HDF-EOS2
+ lib_LTLIBRARIES=libhdfeos.la
+diff -Naur spack-src/src/Makefile.in spack-src.patched/src/Makefile.in
+--- spack-src/src/Makefile.in 2009-05-19 12:12:34.000000000 -0400
++++ spack-src.patched/src/Makefile.in 2020-12-02 11:12:06.686234377 -0500
+@@ -126,7 +126,7 @@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+
+ # Set LDFLAGS to alow the HDF-EOS library to use extern variables from HDF4
+-LDFLAGS = -Wl,-single_module
++#LDFLAGS = -Wl,-single_module
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
diff --git a/var/spack/repos/builtin/packages/hdf-eos2/package.py b/var/spack/repos/builtin/packages/hdf-eos2/package.py
new file mode 100644
index 0000000000..b1b708ef6f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hdf-eos2/package.py
@@ -0,0 +1,100 @@
+# Copyright 2013-2021 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)
+
+import sys
+
+from spack import *
+
+
+class HdfEos2(AutotoolsPackage):
+ """HDF-EOS (Hierarchical Data Format - Earth Observing System) is a
+ self-describing file format based upon HDF for standard data products
+ that are derived from EOS missions. HDF-EOS2 is based upon HDF4.
+ """
+
+ homepage = "https://hdfeos.org"
+ # The download URLs are messing, and include sha256 checksum.
+ # This is just a template. See version_list and url_for_version below
+ # Template for url_for_version. 0 is sha256 checksum, 1 is filename
+ url = "https://git.earthdata.nasa.gov/rest/git-lfs/storage/DAS/hdfeos/{0}?response-content-disposition=attachment%3B%20filename%3D%22{1}%22%3B%20filename*%3Dutf-8%27%27{1}"
+
+ # Crazy URL scheme, differing with each version, and including the
+ # sha256 checksum in the URL. Yuck
+ # The data in version_list is used to generate versions and urls
+ # In basename expansions, 0 is raw version,
+ # 1 is for version with dots => underscores
+ version_list = [
+ {'version': '2.20v1.00',
+ 'sha256': 'cb0f900d2732ab01e51284d6c9e90d0e852d61bba9bce3b43af0430ab5414903',
+ 'basename': 'HDF-EOS{0}.tar.Z'},
+ {'version': '2.19b',
+ 'sha256': 'a69993508dbf5fa6120bac3c906ab26f1ad277348dfc2c891305023cfdf5dc9d',
+ 'basename': 'hdfeos{1}.zip'}
+ ]
+
+ for vrec in version_list:
+ ver = vrec['version']
+ sha256 = vrec['sha256']
+ version(ver, sha256=sha256)
+
+ variant('shared', default=True,
+ description='Build shared libraries (can be used with +static)')
+ variant('static', default=True,
+ description='Build static libraries (can be used with +shared)')
+
+ conflicts('~static', when='~shared',
+ msg='At least one of +static or +shared must be set')
+
+ # Build dependencies
+ depends_on('hdf')
+
+ # The standard Makefile.am, etc. add a --single_module flag to LDFLAGS
+ # to pass to the linker.
+ # That appears to be only recognized by the Darwin linker, remove it
+ # if we are not running on darwin/
+ if sys.platform != "darwin":
+ patch('hdf-eos2.nondarwin-no-single_module.patch')
+
+ def url_for_version(self, version):
+ vrec = [x for x in self.version_list
+ if x['version'] == version.dotted.string]
+ if vrec:
+ fname = vrec[0]['basename'].format(version.dotted,
+ version.underscored)
+ sha256 = vrec[0]['sha256']
+ myurl = self.url.format(sha256, fname)
+ return myurl
+ else:
+ sys.exit('ERROR: cannot generate URL for version {0};'
+ 'version/checksum not found in version_list'.format(
+ version))
+
+ def configure_args(self):
+ extra_args = []
+
+ # Package really wants h4cc to be used
+ extra_args.append('CC={0}/bin/h4cc -Df2cFortran'.format(
+ self.spec['hdf'].prefix))
+
+ # We always build PIC code
+ extra_args.append('--with-pic')
+
+ # Set shared/static appropriately
+ extra_args.extend(self.enable_or_disable('shared'))
+ extra_args.extend(self.enable_or_disable('static'))
+
+ # Provide config args for dependencies
+ extra_args.append('--with-hdf4={0}'.format(self.spec['hdf'].prefix))
+ if 'jpeg' in self.spec:
+ extra_args.append('--with-jpeg={0}'.format(
+ self.spec['jpeg'].prefix))
+ if 'libszip' in self.spec:
+ extra_args.append('--with-szlib={0}'.format(
+ self.spec['libszip'].prefix))
+ if 'zlib' in self.spec:
+ extra_args.append('--with-zlib={0}'.format(
+ self.spec['zlib'].prefix))
+
+ return extra_args
diff --git a/var/spack/repos/builtin/packages/hdf-eos5/hdf-eos5.nondarwin-no-single_module.patch b/var/spack/repos/builtin/packages/hdf-eos5/hdf-eos5.nondarwin-no-single_module.patch
new file mode 100644
index 0000000000..a86c85dfe6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hdf-eos5/hdf-eos5.nondarwin-no-single_module.patch
@@ -0,0 +1,28 @@
+# This patch removes the default(?) setting of passing -single_module
+# flag to the loader. From what I can gather, only the Darwin loader
+# supports that, so this patch allows building on non-Darwin systems
+
+diff -Naur spack-src/src/Makefile.am spack-src.patched/src/Makefile.am
+--- spack-src/src/Makefile.am 2007-03-29 12:59:47.000000000 -0400
++++ spack-src.patched/src/Makefile.am 2020-12-04 11:25:50.789164073 -0500
+@@ -10,7 +10,7 @@
+
+ # Set LDFLAGS to allow the HDF-EOS library to use extern variables from
+ # HDF5
+-LDFLAGS=-Wl,-single_module
++#LDFLAGS=-Wl,-single_module
+
+ # Build HDF-EOS5
+ lib_LTLIBRARIES=libhe5_hdfeos.la
+diff -Naur spack-src/src/Makefile.in spack-src.patched/src/Makefile.in
+--- spack-src/src/Makefile.in 2010-08-30 11:47:05.000000000 -0400
++++ spack-src.patched/src/Makefile.in 2020-12-04 11:26:00.201443245 -0500
+@@ -126,7 +126,7 @@
+
+ # Set LDFLAGS to allow the HDF-EOS library to use extern variables from
+ # HDF5
+-LDFLAGS = -Wl,-single_module
++#LDFLAGS = -Wl,-single_module
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
diff --git a/var/spack/repos/builtin/packages/hdf-eos5/package.py b/var/spack/repos/builtin/packages/hdf-eos5/package.py
new file mode 100644
index 0000000000..6d20fce1a0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hdf-eos5/package.py
@@ -0,0 +1,105 @@
+# Copyright 2013-2021 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)
+
+import sys
+
+from spack import *
+
+
+class HdfEos5(AutotoolsPackage):
+ """HDF-EOS (Hierarchical Data Format - Earth Observing System) is a
+ self-describing file format based upon HDF for standard data products
+ that are derived from EOS missions. HDF-EOS5 is based upon HDF5.
+ """
+
+ homepage = "https://hdfeos.org"
+ # The download URLs are messing, and include sha256 checksum.
+ # This is just a template. See version_list and url_for_version below
+ # Template for url_for_version. 0 is sha256 checksum, 1 is filename
+ url = "https://git.earthdata.nasa.gov/rest/git-lfs/storage/DAS/hdfeos5/{0}?response-content-disposition=attachment%3B%20filename%3D%22{1}%22%3B%20filename*%3Dutf-8%27%27{1}"
+
+ # Crazy URL scheme, differing with each version, and including the
+ # sha256 checksum in the URL. Yuck
+ # The data in version_list is used to generate versions and urls
+ # In basename expansions, 0 is raw version,
+ # 1 is for version with dots => underscores
+ version_list = [
+ {'version': '5.1.16',
+ 'sha256': '7054de24b90b6d9533329ef8dc89912c5227c83fb447792103279364e13dd452',
+ 'basename': 'HDF-EOS{0}.tar.Z'},
+ {'version': '5.1.15',
+ 'sha256': 'fbf4d085f9bf6ffad259aee1e9f60cf060e7e99c447894ad8955df02de83c92c',
+ 'basename': 'hdfeos{1}.zip'}
+ ]
+
+ for vrec in version_list:
+ ver = vrec['version']
+ sha256 = vrec['sha256']
+ version(ver, sha256=sha256)
+
+ variant('shared', default=True,
+ description='Build shared libraries (can be used with +static)')
+ variant('static', default=True,
+ description='Build shared libraries (can be used with +shared)')
+
+ conflicts('~static', when='~shared',
+ msg='At least one of +static or +shared must be set')
+
+ maintainers = ['payerle']
+
+ # Build dependencies
+ depends_on('hdf5+hl')
+
+ # The standard Makefile.am, etc. add a --single_module flag to LDFLAGS
+ # to pass to the linker.
+ # That appears to be only recognized by the Darwin linker, remove it
+ # if we are not running on darwin/
+ if sys.platform != "darwin":
+ patch('hdf-eos5.nondarwin-no-single_module.patch')
+
+ def url_for_version(self, version):
+ vrec = [x for x in self.version_list
+ if x['version'] == version.dotted.string]
+ if vrec:
+ fname = vrec[0]['basename'].format(version.dotted,
+ version.underscored)
+ sha256 = vrec[0]['sha256']
+ myurl = self.url.format(sha256, fname)
+ return myurl
+ else:
+ sys.exit('ERROR: cannot generate URL for version {0};'
+ 'version/checksum not found in version_list'.format(
+ version))
+
+ def configure_args(self):
+ extra_args = []
+
+ # Package really wants h5cc to be used
+ if self.spec['mpi']:
+ extra_args.append('CC={0}/bin/h5pcc -Df2cFortran'.format(
+ self.spec['hdf5'].prefix))
+ else:
+ extra_args.append('CC={0}/bin/h5cc -Df2cFortran'.format(
+ self.spec['hdf5'].prefix))
+
+ # We always build PIC code
+ extra_args.append('--with-pic')
+ # We always enable installation of include directories
+ extra_args.append('--enable-install-include')
+
+ # Set shared/static appropriately
+ extra_args.extend(self.enable_or_disable('shared'))
+ extra_args.extend(self.enable_or_disable('static'))
+
+ # Provide config args for dependencies
+ extra_args.append('--with-hdf5={0}'.format(self.spec['hdf5'].prefix))
+ if 'szip' in self.spec:
+ extra_args.append('--with-szlib={0}'.format(
+ self.spec['libszip'].prefix))
+ if 'zlib' in self.spec:
+ extra_args.append('--with-zlib={0}'.format(
+ self.spec['zlib'].prefix))
+
+ return extra_args
diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py
index 76c2205f27..ed32c62708 100644
--- a/var/spack/repos/builtin/packages/hdf/package.py
+++ b/var/spack/repos/builtin/packages/hdf/package.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import sys
import os
+import sys
class Hdf(AutotoolsPackage):
@@ -144,6 +144,14 @@ class Hdf(AutotoolsPackage):
# We should not specify '--disable-hdf4-xdr' due to a bug in the
# configure script.
config_args.append('LIBS=%s' % self.spec['rpc'].libs.link_flags)
+
+ # https://github.com/Parallel-NetCDF/PnetCDF/issues/61
+ if self.spec.satisfies('%gcc@10:'):
+ config_args.extend([
+ 'FFLAGS=-fallow-argument-mismatch',
+ 'FCFLAGS=-fallow-argument-mismatch']
+ )
+
return config_args
# Otherwise, we randomly get:
@@ -155,6 +163,12 @@ class Hdf(AutotoolsPackage):
extra_install_tests = 'hdf/util/testfiles'
+ @property
+ def cached_tests_work_dir(self):
+ """The working directory for cached test sources."""
+ return join_path(self.test_suite.current_test_cache_dir,
+ self.extra_install_tests)
+
@run_after('install')
def setup_build_tests(self):
"""Copy the build test files after the package is installed to an
@@ -175,8 +189,8 @@ class Hdf(AutotoolsPackage):
def _test_gif_converters(self):
"""This test performs an image conversion sequence and diff."""
work_dir = '.'
- storm_fn = os.path.join(self.install_test_root,
- self.extra_install_tests, 'storm110.hdf')
+ storm_fn = os.path.join(self.cached_tests_work_dir, 'storm110.hdf')
+
gif_fn = 'storm110.gif'
new_hdf_fn = 'storm110gif.hdf'
@@ -195,8 +209,8 @@ class Hdf(AutotoolsPackage):
def _test_list(self):
"""This test compares low-level HDF file information to expected."""
- storm_fn = os.path.join(self.install_test_root,
- self.extra_install_tests, 'storm110.hdf')
+ storm_fn = os.path.join(self.cached_tests_work_dir,
+ 'storm110.hdf')
test_data_dir = self.test_suite.current_test_data_dir
work_dir = '.'
diff --git a/var/spack/repos/builtin/packages/hdf5-blosc/package.py b/var/spack/repos/builtin/packages/hdf5-blosc/package.py
index 2a535f5e69..694528213b 100644
--- a/var/spack/repos/builtin/packages/hdf5-blosc/package.py
+++ b/var/spack/repos/builtin/packages/hdf5-blosc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hdf5/hdf5_1.8_gcc10.patch b/var/spack/repos/builtin/packages/hdf5/hdf5_1.8_gcc10.patch
new file mode 100644
index 0000000000..0de8c33c09
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hdf5/hdf5_1.8_gcc10.patch
@@ -0,0 +1,12 @@
+diff -Naur hdf5.orig/fortran/test/tH5T_F03.f90 hdf5/fortran/test/tH5T_F03.f90
+--- hdf5.orig/fortran/test/tH5T_F03.f90 2021-01-19 13:23:11.298000000 +0100
++++ hdf5/fortran/test/tH5T_F03.f90 2021-01-19 13:19:17.637000000 +0100
+@@ -1541,7 +1541,7 @@
+ INTEGER :: A, B, C, D
+ INTEGER :: Aw, Bw, Cw, Dw
+ INTEGER :: i, j
+- INTEGER, PARAMETER :: hex = Z'00000003'
++ INTEGER, PARAMETER :: hex = INT(Z'00000003')
+ TYPE(C_PTR) :: f_ptr
+ INTEGER :: error ! Error flag
+ !
diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py
index abad1666bb..13a4f0746f 100644
--- a/var/spack/repos/builtin/packages/hdf5/package.py
+++ b/var/spack/repos/builtin/packages/hdf5/package.py
@@ -1,13 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
import shutil
import sys
+import llnl.util.tty as tty
-class Hdf5(AutotoolsPackage):
+
+class Hdf5(CMakePackage):
"""HDF5 is a data model, library, and file format for storing and managing
data. It supports an unlimited variety of datatypes, and is designed for
flexible and efficient I/O and for high volume and complex data.
@@ -17,15 +20,21 @@ class Hdf5(AutotoolsPackage):
url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz"
list_url = "https://support.hdfgroup.org/ftp/HDF5/releases"
list_depth = 3
- git = "https://bitbucket.hdfgroup.org/scm/hdffv/hdf5.git"
- maintainers = ['lrknox']
+ git = "https://github.com/HDFGroup/hdf5.git"
+ maintainers = ['lrknox', 'brtnfld', 'byrnHDF', 'ChristopherHogan', 'epourmal',
+ 'gheber', 'hyoklee', 'lkurz', 'soumagne']
test_requires_compiler = True
- version('develop', branch='develop')
+ # The 'develop' version is renamed so that we could uninstall (or patch) it
+ # without affecting other develop version.
+ version('develop-1.13', branch='develop')
+ version('develop-1.12', branch='hdf5_1_12')
+ version('develop-1.10', branch='hdf5_1_10')
+ version('develop-1.8', branch='hdf5_1_8')
+ version('1.12.1', sha256='79c66ff67e666665369396e9c90b32e238e501f345afd2234186bfb8331081ca')
version('1.12.0', sha256='a62dcb276658cb78e6795dd29bf926ed7a9bc4edf6e77025cd2c689a8f97c17a')
-
# HDF5 1.12 broke API compatibility, so we currently prefer the latest
# 1.10 release. packages that want later versions of HDF5 should specify,
# e.g., depends_on("hdf5@1.12:") to get 1.12 or higher.
@@ -39,6 +48,7 @@ class Hdf5(AutotoolsPackage):
version('1.10.0-patch1', sha256='6e78cfe32a10e6e0629393cdfddf6cfa536571efdaf85f08e35326e1b4e9eff0')
version('1.10.0', sha256='81f6201aba5c30dced5dcd62f5d5477a2790fd5850e02ac514ca8bf3e2bb375a')
+ version('1.8.22', sha256='8406d96d9355ef8961d2739fb8fd5474ad4cdf52f3cfac657733defd9709bfaa')
version('1.8.21', sha256='87d8c82eba5cf766d97cd06c054f4639c1049c4adeaa3a79f77f8bd374f80f37')
version('1.8.19', sha256='a4335849f19fae88c264fd0df046bc321a78c536b2548fc508627a790564dc38')
version('1.8.18', sha256='cdb195ad8d9e6782acf24b2488061289f615628c2ccda8457b0a0c3fb7a8a063')
@@ -50,8 +60,6 @@ class Hdf5(AutotoolsPackage):
version('1.8.12', sha256='b5cccea850096962b5fd9e96f22c4f47d2379224bb41130d9bc038bb6c37dfcb')
version('1.8.10', sha256='4813b79c5fb8701a625b9924b8203bc7154a77f9b826ad4e034144b4056a160a')
- variant('debug', default=False,
- description='Builds a debug version of the library')
variant('shared', default=True,
description='Builds a shared version of the library')
@@ -61,32 +69,43 @@ class Hdf5(AutotoolsPackage):
variant('java', default=False, description='Enable Java support')
variant('threadsafe', default=False,
description='Enable thread-safe capabilities')
-
+ variant('tools', default=True, description='Enable building tools')
variant('mpi', default=True, description='Enable MPI support')
variant('szip', default=False, description='Enable szip support')
- variant('pic', default=True,
- description='Produce position-independent code (for shared libs)')
- # Build HDF5 with API compaitibility.
- variant('api', default='none', description='choose api compatibility', values=('none', 'v114', 'v112', 'v110', 'v18', 'v16'), multi=False)
-
- conflicts('api=v114', when='@1.6:1.12.99', msg='v114 is not compatible with this release')
- conflicts('api=v112', when='@1.6:1.10.99', msg='v112 is not compatible with this release')
- conflicts('api=v110', when='@1.6:1.8.99', msg='v110 is not compatible with this release')
- conflicts('api=v18', when='@1.6:1.6.99', msg='v18 is not compatible with this release')
+ # Build HDF5 with API compatibility.
+ variant('api', default='default',
+ description='Choose api compatibility for earlier version',
+ values=('default', 'v114', 'v112', 'v110', 'v18', 'v16'),
+ multi=False)
- depends_on('autoconf', type='build', when='@develop')
- depends_on('automake', type='build', when='@develop')
- depends_on('libtool', type='build', when='@develop')
- depends_on('m4', type='build', when='@develop')
+ depends_on('cmake@3.12:', type='build')
depends_on('mpi', when='+mpi')
- depends_on('java', when='+java')
+ depends_on('java', type=('build', 'run'), when='+java')
# numactl does not currently build on darwin
if sys.platform != 'darwin':
depends_on('numactl', when='+mpi+fortran')
depends_on('szip', when='+szip')
depends_on('zlib@1.1.2:')
+ # The compiler wrappers (h5cc, h5fc, etc.) run 'pkg-config'.
+ depends_on('pkgconfig', type='run')
+
+ conflicts('api=v114', when='@1.6:1.12.99',
+ msg='v114 is not compatible with this release')
+ conflicts('api=v112', when='@1.6:1.10.99',
+ msg='v112 is not compatible with this release')
+ conflicts('api=v110', when='@1.6:1.8.99',
+ msg='v110 is not compatible with this release')
+ conflicts('api=v18', when='@1.6:1.6.99',
+ msg='v18 is not compatible with this release')
+
+ # The Java wrappers and associated libhdf5_java library
+ # were first available in 1.10
+ conflicts('+java', when='@:1.9')
+ # The Java wrappers cannot be built without shared libs.
+ conflicts('+java', when='~shared')
+
# There are several officially unsupported combinations of the features:
# 1. Thread safety is not guaranteed via high-level C-API but in some cases
# it works.
@@ -130,9 +149,14 @@ class Hdf5(AutotoolsPackage):
# Disable MPI C++ interface when C++ is disabled, otherwise downstream
# libraries fail to link; see https://github.com/spack/spack/issues/12586
- patch('h5public-skip-mpicxx.patch', when='@:1.8.21,1.10.0:1.10.5+mpi~cxx',
+ patch('h5public-skip-mpicxx.patch', when='@1.8.10:1.8.21,1.10.0:1.10.5+mpi~cxx',
sha256='b61e2f058964ad85be6ee5ecea10080bf79e73f83ff88d1fa4b602d00209da9c')
+ # Fixes BOZ literal constant error when compiled with GCC 10.
+ # The issue is described here: https://github.com/spack/spack/issues/18625
+ patch('hdf5_1.8_gcc10.patch', when='@:1.8.21',
+ sha256='0e20187cda3980a4fdff410da92358b63de7ebef2df1d7a425371af78e50f666')
+
# The argument 'buf_size' of the C function 'h5fget_file_image_c' is
# declared as intent(in) though it is modified by the invocation. As a
# result, aggressive compilers such as Fujitsu's may do a wrong
@@ -149,16 +173,49 @@ class Hdf5(AutotoolsPackage):
'fortran/src/H5Fff_F03.f90',
string=True, ignore_absent=True)
- filter_compiler_wrappers('h5cc', 'h5c++', 'h5fc', relative_root='bin')
+ # The parallel compiler wrappers (i.e. h5pcc, h5pfc, etc.) reference MPI
+ # compiler wrappers and do not need to be changed.
+ filter_compiler_wrappers('h5cc', 'h5hlcc',
+ 'h5fc', 'h5hlfc',
+ 'h5c++', 'h5hlc++',
+ relative_root='bin')
def url_for_version(self, version):
url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-{0}/hdf5-{1}/src/hdf5-{1}.tar.gz"
return url.format(version.up_to(2), version)
- @when('@develop')
- def autoreconf(self, spec, prefix):
- autogen = Executable('./autogen.sh')
- autogen()
+ def flag_handler(self, name, flags):
+ cmake_flags = []
+
+ if name == "cflags":
+ if self.spec.satisfies('%gcc') \
+ or self.spec.satisfies('%clang'):
+ # Quiet warnings/errors about implicit declaration of functions
+ # in C99:
+ cmake_flags.append("-Wno-implicit-function-declaration")
+ # Note that this flag will cause an error if building %nvhpc.
+ if self.spec.satisfies('@:1.8.12~shared'):
+ # More recent versions set CMAKE_POSITION_INDEPENDENT_CODE to
+ # True and build with PIC flags.
+ cmake_flags.append(self.compiler.cc_pic_flag)
+ elif name == 'cxxflags':
+ if self.spec.satisfies('@:1.8.12+cxx~shared'):
+ cmake_flags.append(self.compiler.cxx_pic_flag)
+ elif name == "fflags":
+ if self.spec.satisfies('%cce+fortran'):
+ # Cray compiler generates module files with uppercase names by
+ # default, which is not handled by the CMake scripts. The
+ # following flag forces the compiler to produce module files
+ # with lowercase names.
+ cmake_flags.append('-ef')
+ if self.spec.satisfies('@:1.8.12+fortran~shared'):
+ cmake_flags.append(self.compiler.fc_pic_flag)
+ elif name == "ldlibs":
+ if '+fortran %fj' in self.spec:
+ cmake_flags.extend(['-lfj90i', '-lfj90f',
+ '-lfjsrcinfo', '-lelf'])
+
+ return flags, None, (cmake_flags or None)
@property
def libs(self):
@@ -167,6 +224,7 @@ class Hdf5(AutotoolsPackage):
- "hl": high-level interface
- "cxx": C++ APIs
- "fortran": Fortran APIs
+ - "java": Java APIs
:return: list of matching libraries
"""
@@ -178,11 +236,34 @@ class Hdf5(AutotoolsPackage):
# to the libraries needed
query2libraries = {
tuple(): ['libhdf5'],
- ('cxx', 'fortran', 'hl'): [
- 'libhdf5hl_fortran',
+ ('cxx', 'fortran', 'hl', 'java'): [
+ # When installed with Autotools, the basename of the real
+ # library file implementing the High-level Fortran interface is
+ # 'libhdf5hl_fortran'. Starting versions 1.8.22, 1.10.5 and
+ # 1.12.0, the Autotools installation also produces a symbolic
+ # link 'libhdf5_hl_fortran.<so/a>' to
+ # 'libhdf5hl_fortran.<so/a>'. Note that in the case of the
+ # dynamic library, the latter is a symlink to the real sonamed
+ # file 'libhdf5_fortran.so.<abi-version>'. This means that all
+ # dynamically linked executables/libraries of the dependent
+ # packages need 'libhdf5_fortran.so.<abi-version>' with the same
+ # DT_SONAME entry. However, the CMake installation (at least
+ # starting version 1.8.10) does not produce it. Instead, the
+ # basename of the library file is 'libhdf5_hl_fortran'. Which
+ # means that switching to CMake requires rebuilding of all
+ # dependant packages that use the High-level Fortran interface.
+ # Therefore, we do not try to preserve backward compatibility
+ # with Autotools installations by creating symlinks. The only
+ # packages that could benefit from it would be those that
+ # hardcode the library name in their building systems. Such
+ # packages should simply be patched.
+ 'libhdf5_hl_fortran',
+ 'libhdf5_hl_f90cstub',
'libhdf5_hl_cpp',
'libhdf5_hl',
'libhdf5_fortran',
+ 'libhdf5_f90cstub',
+ 'libhdf5_java',
'libhdf5',
],
('cxx', 'hl'): [
@@ -191,9 +272,11 @@ class Hdf5(AutotoolsPackage):
'libhdf5',
],
('fortran', 'hl'): [
- 'libhdf5hl_fortran',
+ 'libhdf5_hl_fortran',
+ 'libhdf5_hl_f90cstub',
'libhdf5_hl',
'libhdf5_fortran',
+ 'libhdf5_f90cstub',
'libhdf5',
],
('hl',): [
@@ -202,6 +285,7 @@ class Hdf5(AutotoolsPackage):
],
('cxx', 'fortran'): [
'libhdf5_fortran',
+ 'libhdf5_f90cstub',
'libhdf5_cpp',
'libhdf5',
],
@@ -211,6 +295,11 @@ class Hdf5(AutotoolsPackage):
],
('fortran',): [
'libhdf5_fortran',
+ 'libhdf5_f90cstub',
+ 'libhdf5',
+ ],
+ ('java',): [
+ 'libhdf5_java',
'libhdf5',
]
}
@@ -223,106 +312,131 @@ class Hdf5(AutotoolsPackage):
libraries, root=self.prefix, shared=shared, recursive=True
)
- @run_before('configure')
+ @when('@:1.8.21,1.10.0:1.10.5+szip')
+ def setup_build_environment(self, env):
+ env.set('SZIP_INSTALL', self.spec['szip'].prefix)
+
+ @run_before('cmake')
def fortran_check(self):
if '+fortran' in self.spec and not self.compiler.fc:
msg = 'cannot build a Fortran variant without a Fortran compiler'
raise RuntimeError(msg)
- def configure_args(self):
- # Always enable this option. This does not actually enable any
- # features: it only *allows* the user to specify certain
- # combinations of other arguments. Enabling it just skips a
- # sanity check in configure, so this doesn't merit a variant.
- extra_args = ['--enable-unsupported']
- extra_args += ['--enable-symbols=yes']
- extra_args += self.enable_or_disable('threadsafe')
- extra_args += self.enable_or_disable('cxx')
- extra_args += self.enable_or_disable('hl')
- extra_args += self.enable_or_disable('fortran')
- extra_args += self.enable_or_disable('java')
-
- api = self.spec.variants['api'].value
- if api != 'none':
- extra_args.append('--with-default-api-version=' + api)
-
- if '+szip' in self.spec:
- szip_spec = self.spec['szip']
- # The configure script of HDF5 accepts a comma-separated tuple of
- # two paths: the first one points to the directory with include
- # files, the second one points to the directory with library files.
- # If the second path is not specified, the configure script assumes
- # that it equals to prefix/lib. However, the correct directory
- # might be prefix/lib64. It is not a problem when the building is
- # done with Spack's compiler wrapper but it makes the Libtool
- # files (*.la) invalid, which makes it problematic to use the
- # installed library outside of Spack environment.
- extra_args.append('--with-szlib=%s,%s' %
- (szip_spec.headers.directories[0],
- szip_spec.libs.directories[0]))
- else:
- extra_args.append('--without-szlib')
-
- if self.spec.satisfies('@1.10:'):
- if '+debug' in self.spec:
- extra_args.append('--enable-build-mode=debug')
- else:
- extra_args.append('--enable-build-mode=production')
- else:
- if '+debug' in self.spec:
- extra_args.append('--enable-debug=all')
- else:
- extra_args.append('--enable-production')
+ def cmake_args(self):
+ spec = self.spec
- # '--enable-fortran2003' no longer exists as of version 1.10.0
- if '+fortran' in self.spec:
- extra_args.append('--enable-fortran2003')
- else:
- extra_args.append('--disable-fortran2003')
-
- if '+shared' in self.spec:
- extra_args.append('--enable-shared')
- else:
- extra_args.append('--disable-shared')
- extra_args.append('--enable-static-exec')
-
- if '+pic' in self.spec:
- extra_args.extend([
- 'CFLAGS=' + self.compiler.cc_pic_flag,
- 'CXXFLAGS=' + self.compiler.cxx_pic_flag,
- 'FCFLAGS=' + self.compiler.fc_pic_flag,
- ])
-
- if '+mpi' in self.spec:
- # The HDF5 configure script warns if cxx and mpi are enabled
- # together. There doesn't seem to be a real reason for this, except
- # that parts of the MPI interface are not accessible via the C++
- # interface. Since they are still accessible via the C interface,
- # this is not actually a problem.
- extra_args += ['--enable-parallel',
- 'CC=%s' % self.spec['mpi'].mpicc]
+ if spec.satisfies('@:1.8.15+shared'):
+ tty.warn('hdf5@:1.8.15+shared does not produce static libraries')
+
+ args = [
+ # Always enable this option. This does not actually enable any
+ # features: it only *allows* the user to specify certain
+ # combinations of other arguments.
+ self.define('ALLOW_UNSUPPORTED', True),
+ # Speed-up the building by skipping the examples:
+ self.define('HDF5_BUILD_EXAMPLES', False),
+ self.define(
+ 'BUILD_TESTING',
+ self.run_tests or
+ # Version 1.8.22 fails to build the tools when shared libraries
+ # are enabled but the tests are disabled.
+ spec.satisfies('@1.8.22+shared+tools')),
+ self.define('HDF5_ENABLE_Z_LIB_SUPPORT', True),
+ self.define_from_variant('HDF5_ENABLE_SZIP_SUPPORT', 'szip'),
+ self.define_from_variant('HDF5_ENABLE_SZIP_ENCODING', 'szip'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define('ONLY_SHARED_LIBS', False),
+ self.define_from_variant('HDF5_ENABLE_PARALLEL', 'mpi'),
+ self.define_from_variant('HDF5_ENABLE_THREADSAFE', 'threadsafe'),
+ self.define_from_variant('HDF5_BUILD_HL_LIB', 'hl'),
+ self.define_from_variant('HDF5_BUILD_CPP_LIB', 'cxx'),
+ self.define_from_variant('HDF5_BUILD_FORTRAN', 'fortran'),
+ self.define_from_variant('HDF5_BUILD_JAVA', 'java'),
+ self.define_from_variant('HDF5_BUILD_TOOLS', 'tools')
+ ]
+
+ api = spec.variants['api'].value
+ if api != 'default':
+ args.append(self.define('DEFAULT_API_VERSION', api))
+
+ if '+mpi' in spec:
+ args.append(self.define('CMAKE_C_COMPILER', spec['mpi'].mpicc))
if '+cxx' in self.spec:
- extra_args.append('CXX=%s' % self.spec['mpi'].mpicxx)
+ args.append(self.define('CMAKE_CXX_COMPILER',
+ spec['mpi'].mpicxx))
if '+fortran' in self.spec:
- extra_args.append('FC=%s' % self.spec['mpi'].mpifc)
-
- extra_args.append('--with-zlib=%s' % self.spec['zlib'].prefix)
-
- return extra_args
-
- @run_after('configure')
- def patch_postdeps(self):
- if '@:1.8.14' in self.spec:
- # On Ubuntu14, HDF5 1.8.12 (and maybe other versions)
- # mysteriously end up with "-l -l" in the postdeps in the
- # libtool script. Patch this by removing the spurious -l's.
- filter_file(
- r'postdeps="([^"]*)"',
- lambda m: 'postdeps="%s"' % ' '.join(
- arg for arg in m.group(1).split(' ') if arg != '-l'),
- 'libtool')
+ args.append(self.define('CMAKE_Fortran_COMPILER',
+ spec['mpi'].mpifc))
+
+ return args
+
+ @run_after('install')
+ def ensure_parallel_compiler_wrappers(self):
+ # When installed with Autotools and starting at least version 1.8.10,
+ # the package produces C compiler wrapper called either 'h5cc' (when MPI
+ # support is disabled) or 'h5pcc' (when MPI support is enabled). The
+ # CMake installation produces the wrapper called 'h5cc' (regardless of
+ # whether MPI support is enabled) only starting versions 1.8.21, 1.10.2
+ # and 1.12.0. The current develop versions also produce 'h5pcc' when MPI
+ # support is enabled and the file is identical to 'h5cc'. Here, we make
+ # sure that 'h5pcc' is available when MPI support is enabled (only for
+ # versions that generate 'h5cc').
+ if self.spec.satisfies('@1.8.21:1.8.22,1.10.2:1.10.7,1.12.0+mpi'):
+ with working_dir(self.prefix.bin):
+ # No try/except here, fix the condition above instead:
+ symlink('h5cc', 'h5pcc')
+
+ # The same as for 'h5pcc'. However, the CMake installation produces the
+ # Fortran compiler wrapper called 'h5fc' only starting versions 1.8.22,
+ # 1.10.6 and 1.12.0. The current develop versions do not produce 'h5pfc'
+ # at all. Here, we make sure that 'h5pfc' is available when Fortran and
+ # MPI support are enabled (only for versions that generate 'h5fc').
+ if self.spec.satisfies('@1.8.22:1.8.999,'
+ '1.10.6:1.10.999,'
+ '1.12.0:1.12.999,'
+ 'develop:'
+ '+fortran+mpi'):
+ with working_dir(self.prefix.bin):
+ # No try/except here, fix the condition above instead:
+ symlink('h5fc', 'h5pfc')
+
+ @run_after('install')
+ def fix_package_config(self):
+ # We need to fix the pkg-config files, which are also used by the
+ # compiler wrappers. The files are created starting versions 1.8.21,
+ # 1.10.2 and 1.12.0. However, they are broken (except for the version
+ # 1.8.22): the files are named <name>-<version>.pc but reference <name>
+ # packages. This was fixed in the develop versions at some point: the
+ # files started referencing <name>-<version> packages but got broken
+ # again: the files got names <name>.pc but references had not been
+ # updated accordingly. Another issue, which we address here, is that
+ # some Linux distributions install pkg-config files named hdf5.pc and we
+ # want to override them. Therefore, the following solution makes sure
+ # that each <name>-<version>.pc file is symlinked by <name>.pc and all
+ # references to <name>-<version> packages in the original files are
+ # replaced with references to <name> packages.
+ pc_files = find(self.prefix.lib.pkgconfig, 'hdf5*.pc', recursive=False)
+
+ if not pc_files:
+ # This also tells us that the pkgconfig directory does not exist.
+ return
+
+ # Replace versioned references in all pkg-config files:
+ filter_file(
+ r'(Requires(?:\.private)?:.*)(hdf5[^\s,]*)(?:-[^\s,]*)(.*)',
+ r'\1\2\3', *pc_files, backup=False)
+
+ # Create non-versioned symlinks to the versioned pkg-config files:
+ with working_dir(self.prefix.lib.pkgconfig):
+ for f in pc_files:
+ src_filename = os.path.basename(f)
+ version_sep_idx = src_filename.find('-')
+ if version_sep_idx > -1:
+ tgt_filename = src_filename[:version_sep_idx] + '.pc'
+ if not os.path.exists(tgt_filename):
+ symlink(src_filename, tgt_filename)
@run_after('install')
@on_package_attributes(run_tests=True)
diff --git a/var/spack/repos/builtin/packages/hdfview/package.py b/var/spack/repos/builtin/packages/hdfview/package.py
index fd21cb9dca..5d8511a727 100644
--- a/var/spack/repos/builtin/packages/hdfview/package.py
+++ b/var/spack/repos/builtin/packages/hdfview/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Hdfview(Package):
"""HDFView is a visual tool written in Java for browsing
diff --git a/var/spack/repos/builtin/packages/healpix-cxx/package.py b/var/spack/repos/builtin/packages/healpix-cxx/package.py
index da3f1119d2..6c6925c69b 100644
--- a/var/spack/repos/builtin/packages/healpix-cxx/package.py
+++ b/var/spack/repos/builtin/packages/healpix-cxx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/heaptrack/package.py b/var/spack/repos/builtin/packages/heaptrack/package.py
index bdb6a90b76..211ea52f4c 100644
--- a/var/spack/repos/builtin/packages/heaptrack/package.py
+++ b/var/spack/repos/builtin/packages/heaptrack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class Heaptrack(CMakePackage):
version('1.1.0', sha256='bd247ac67d1ecf023ec7e2a2888764bfc03e2f8b24876928ca6aa0cdb3a07309')
depends_on('boost@1.41:')
- depends_on('cmake@2.8.9:')
+ depends_on('cmake@2.8.9:', type='build')
depends_on('elfutils')
depends_on('libunwind')
depends_on('zlib')
diff --git a/var/spack/repos/builtin/packages/heffte/package.py b/var/spack/repos/builtin/packages/heffte/package.py
index 7262fac7a2..85eb8a6ced 100644
--- a/var/spack/repos/builtin/packages/heffte/package.py
+++ b/var/spack/repos/builtin/packages/heffte/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
from spack import *
-class Heffte(CMakePackage):
+class Heffte(CMakePackage, CudaPackage, ROCmPackage):
"""Highly Efficient FFT for Exascale"""
homepage = "https://bitbucket.org/icl/heffte"
@@ -15,7 +15,10 @@ class Heffte(CMakePackage):
maintainers = ['mkstoyanov']
+ test_requires_compiler = True
+
version('develop', branch='master')
+ version('2.1.0', sha256='527a3e21115231715a0342afdfaf6a8878d2dd0f02f03c92b53692340fd940b9')
version('2.0.0', sha256='12f2b49a1a36c416eac174cf0cc50e729d56d68a9f68886d8c34bd45a0be26b6')
version('1.0', sha256='0902479fb5b1bad01438ca0a72efd577a3529c3d8bad0028f3c18d3a4935ca74')
version('0.2', sha256='4e76ae60982b316c2e873b2e5735669b22620fefa1fc82f325cdb6989bec78d1')
@@ -27,7 +30,6 @@ class Heffte(CMakePackage):
variant('shared', default=True, description='Builds with shared libraries')
variant('fftw', default=False, description='Builds with support for FFTW backend')
variant('mkl', default=False, description='Builds with support for MKL backend')
- variant('cuda', default=False, description='Builds with support for GPUs via CUDA')
variant('magma', default=False, description='Use helper methods from the UTK MAGMA library')
variant('python', default=False, description='Install the Python bindings')
variant('fortran', default=False, description='Install the Fortran modules')
@@ -38,10 +40,11 @@ class Heffte(CMakePackage):
depends_on('py-numba', when='+python+cuda', type=('build', 'run'))
extends('python', when='+python', type=('build', 'run'))
- conflicts('~fftw', when='~mkl~cuda') # requires at least one backend
+ conflicts('~fftw', when='@:2.1.0~mkl~cuda') # requires at least one backend
conflicts('+fftw', when='+mkl@:1.0') # old API supports at most one CPU backend
conflicts('^openmpi~cuda', when='+cuda') # +cuda requires CUDA enabled OpenMPI
conflicts('~cuda', when='+magma') # magma requires CUDA or HIP
+ conflicts('+rocm', when='@:2.1.0') # heffte+rocm is in in development in spack
conflicts('+python', when="@:1.0") # python support was added post v1.0
conflicts('+fortran', when="@:1.0") # fortran support was added post v1.0
conflicts('+magma', when="@:1.0") # magma support was added post v1.0
@@ -49,14 +52,19 @@ class Heffte(CMakePackage):
depends_on('mpi', type=('build', 'run'))
depends_on('fftw@3.3.8:', when="+fftw", type=('build', 'run'))
- depends_on('intel@16.0:', when="+mkl", type=('build', 'run'))
+ depends_on('intel-mkl@2018.0.128:', when="+mkl", type=('build', 'run'))
depends_on('cuda@8.0:', when="+cuda", type=('build', 'run'))
+ depends_on('hip@3.8.0:', when='+rocm')
+ depends_on('rocfft@3.8.0:', when='+rocm')
depends_on('magma@2.5.3:', when="+cuda+magma", type=('build', 'run'))
+ examples_src_dir = 'examples'
+
def cmake_args(self):
- return [
+ args = [
self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
self.define_from_variant('Heffte_ENABLE_CUDA', 'cuda'),
+ self.define_from_variant('Heffte_ENABLE_ROCM', 'rocm'),
self.define_from_variant('Heffte_ENABLE_FFTW', 'fftw'),
self.define_from_variant('Heffte_ENABLE_MKL', 'mkl'),
self.define_from_variant('Heffte_ENABLE_MAGMA', 'magma'),
@@ -65,3 +73,82 @@ class Heffte(CMakePackage):
'-DBUILD_GPU={0:1s}'.format(
'ON' if ('+cuda' in self.spec and
'+fftw' in self.spec) else 'OFF'), ]
+
+ if '+cuda' in self.spec:
+ cuda_arch = self.spec.variants['cuda_arch'].value
+ if len(cuda_arch) > 0 or cuda_arch[0] != 'none':
+ nvcc_flags = ""
+ for nvflag in self.cuda_flags(cuda_arch):
+ nvcc_flags += "{0};".format(nvflag)
+
+ args.append('-DCUDA_NVCC_FLAGS={0}'.format(nvcc_flags))
+
+ if '+rocm' in self.spec:
+ args.append('-DCMAKE_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc))
+
+ rocm_arch = self.spec.variants['amdgpu_target'].value
+ if 'none' not in rocm_arch:
+ args.append('-DCMAKE_CXX_FLAGS={0}'.format(self.hip_flags(rocm_arch)))
+
+ # See https://github.com/ROCmSoftwarePlatform/rocFFT/issues/322
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
+ return args
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.examples_src_dir])
+
+ def test(self):
+ cmake_file = join_path(self.install_test_root, 'CMakeLists.txt')
+ test_bld_dir = join_path(self.install_test_root, '_build')
+ exe_files = []
+ mpi_procs = []
+
+ with open(cmake_file, 'w') as cmkf:
+ cmkf.write('cmake_minimum_required(VERSION 3.13)\n\n')
+ cmkf.write('project(heffte_example LANGUAGES CXX)\n\n')
+ cmkf.write('find_package(Heffte REQUIRED)\n\n')
+ if '+fftw' in self.spec:
+ src_file = '{0}/heffte_example_fftw.cpp'.format(
+ self.examples_src_dir)
+ cmkf.write(
+ 'add_executable(hf_fftw {0})\n'.format(src_file))
+ cmkf.write(
+ 'target_link_libraries(hf_fftw Heffte::Heffte)\n')
+ exe_files.append('./hf_fftw')
+ mpi_procs.append(4)
+ if '+cuda' in self.spec:
+ src_file = '{0}/heffte_example_cuda.cpp'.format(
+ self.examples_src_dir)
+ cmkf.write(
+ 'add_executable(hf_cuda {0})\n'.format(src_file))
+ cmkf.write(
+ 'target_link_libraries(hf_cuda Heffte::Heffte)\n')
+ exe_files.append('./hf_cuda')
+ mpi_procs.append(4)
+ if '+fortran' in self.spec:
+ src_file = '{0}/heffte_example_fftw.f90'.format(
+ self.examples_src_dir)
+ cmkf.write(
+ 'add_executable(hf_fort {0})\n'.format(src_file))
+ cmkf.write(
+ 'target_link_libraries(hf_fort Heffte::Fortran)\n')
+ exe_files.append('./hf_fort')
+ mpi_procs.append(2)
+
+ with working_dir(test_bld_dir, create=True):
+ cmake('..')
+ make()
+ test_args = ['-n', '4', ' ']
+ mpiexe_f = which('srun', 'mpirun', 'mpiexec')
+ if mpiexe_f:
+ for exf, procs in zip(exe_files, mpi_procs):
+ test_args[-1] = exf
+ test_args[-2] = str(procs)
+ reason_str = 'Heffte smoke test, exe: {0}'.format(exf)
+ self.run_test(mpiexe_f.command, test_args,
+ purpose=reason_str)
diff --git a/var/spack/repos/builtin/packages/helics/package.py b/var/spack/repos/builtin/packages/helics/package.py
index 757809caac..18dba96442 100644
--- a/var/spack/repos/builtin/packages/helics/package.py
+++ b/var/spack/repos/builtin/packages/helics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,10 @@ class Helics(CMakePackage):
maintainers = ['nightlark']
version('develop', branch='develop', submodules=True)
- version('master', branch='master', submodules=True)
+ version('main', branch='main', submodules=True)
+ version('master', branch='main', submodules=True)
+ version('2.7.1', sha256='872d415959e9d97069b06327410af00e7daae8dbeb9f050b26632eca924ea23c')
+ version('2.7.0', sha256='ad005c0948ef4284417d429112772d0b63ebfbc62c9093c02ac10f4a333d70f4')
version('2.6.1', sha256='4b9a733a568ae8e6492f93abcd43f1aa9c53b233edcbeb0ab188dcc0d73ac928')
version('2.6.0', sha256='450cbfc0c37b77ea051d3edc12bbc0f7cf4c1a17091ae10df5214b6176eebb42')
version('2.5.2', sha256='81928f7e30233a07ae2bfe6c5489fdd958364c0549b2a3e6fdc6163d4b390311')
@@ -71,38 +74,30 @@ class Helics(CMakePackage):
def cmake_args(self):
spec = self.spec
+ from_variant = self.define_from_variant
args = [
'-DHELICS_BUILD_EXAMPLES=OFF',
'-DHELICS_BUILD_TESTS=OFF',
]
# HELICS core type CMake options
- args.append('-DENABLE_ZMQ_CORE={0}'.format(
- 'ON' if '+zmq' in spec else 'OFF'))
- args.append('-DENABLE_TCP_CORE={0}'.format(
- 'ON' if '+tcp' in spec else 'OFF'))
- args.append('-DENABLE_UDP_CORE={0}'.format(
- 'ON' if '+udp' in spec else 'OFF'))
- args.append('-DENABLE_IPC_CORE={0}'.format(
- 'ON' if '+ipc' in spec else 'OFF'))
- args.append('-DENABLE_INPROC_CORE={0}'.format(
- 'ON' if '+inproc' in spec else 'OFF'))
- args.append('-DENABLE_MPI_CORE={0}'.format(
- 'ON' if '+mpi' in spec else 'OFF'))
+ args.append(from_variant('ENABLE_ZMQ_CORE', 'zmq'))
+ args.append(from_variant('ENABLE_TCP_CORE', 'tcp'))
+ args.append(from_variant('ENABLE_UDP_CORE', 'udp'))
+ args.append(from_variant('ENABLE_IPC_CORE', 'ipc'))
+ args.append(from_variant('ENABLE_INPROC_CORE', 'inproc'))
+ args.append(from_variant('ENABLE_MPI_CORE', 'mpi'))
# HELICS shared library options
args.append('-DHELICS_DISABLE_C_SHARED_LIB={0}'.format(
'OFF' if '+c_shared' in spec else 'ON'))
- args.append('-DHELICS_BUILD_CXX_SHARED_LIB={0}'.format(
- 'ON' if '+cxx_shared' in spec else 'OFF'))
+ args.append(from_variant('HELICS_BUILD_CXX_SHARED_LIB', 'cxx_shared'))
# HELICS executable app options
- args.append('-DHELICS_BUILD_APP_EXECUTABLES={0}'.format(
- 'ON' if '+apps' in spec else 'OFF'))
+ args.append(from_variant('HELICS_BUILD_APP_EXECUTABLES', 'apps'))
args.append('-DHELICS_DISABLE_WEBSERVER={0}'.format(
'OFF' if '+webserver' in spec else 'ON'))
- args.append('-DHELICS_BUILD_BENCHMARKS={0}'.format(
- 'ON' if '+benchmarks' in spec else 'OFF'))
+ args.append(from_variant('HELICS_BUILD_BENCHMARKS', 'benchmarks'))
# Extra HELICS library dependencies
args.append('-DHELICS_DISABLE_BOOST={0}'.format(
@@ -111,12 +106,10 @@ class Helics(CMakePackage):
'OFF' if '+asio' in spec else 'ON'))
# SWIG
- args.append('-DHELICS_ENABLE_SWIG={0}'.format(
- 'ON' if '+swig' in spec else 'OFF'))
+ args.append(from_variant('HELICS_ENABLE_SWIG', 'swig'))
# Python
- args.append('-DBUILD_PYTHON_INTERFACE={0}'.format(
- 'ON' if '+python' in spec else 'OFF'))
+ args.append(from_variant('BUILD_PYTHON_INTERFACE', 'python'))
return args
diff --git a/var/spack/repos/builtin/packages/help2man/package.py b/var/spack/repos/builtin/packages/help2man/package.py
index 5ec6a24f95..8f07a29f75 100644
--- a/var/spack/repos/builtin/packages/help2man/package.py
+++ b/var/spack/repos/builtin/packages/help2man/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,9 +13,9 @@ class Help2man(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/help2man/"
gnu_mirror_path = "help2man/help2man-1.47.11.tar.xz"
+ version('1.47.16', sha256='3ef8580c5b86e32ca092ce8de43df204f5e6f714b0cd32bc6237e6cd0f34a8f4')
version('1.47.11', sha256='5985b257f86304c8791842c0c807a37541d0d6807ee973000cf8a3fe6ad47b88')
version('1.47.8', sha256='528f6a81ad34cbc76aa7dce5a82f8b3d2078ef065271ab81fda033842018a8dc')
version('1.47.4', sha256='d4ecf697d13f14dd1a78c5995f06459bff706fd1ce593d1c02d81667c0207753')
- depends_on('gettext', type='build')
depends_on('perl', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/henson/package.py b/var/spack/repos/builtin/packages/henson/package.py
index 4e6bb04755..358e223b45 100644
--- a/var/spack/repos/builtin/packages/henson/package.py
+++ b/var/spack/repos/builtin/packages/henson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hepmc/package.py b/var/spack/repos/builtin/packages/hepmc/package.py
index eb47504343..bd52994dfb 100644
--- a/var/spack/repos/builtin/packages/hepmc/package.py
+++ b/var/spack/repos/builtin/packages/hepmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,12 @@ class Hepmc(CMakePackage):
"""The HepMC package is an object oriented, C++ event record for
High Energy Physics Monte Carlo generators and simulation."""
- homepage = "http://hepmc.web.cern.ch/hepmc/"
- url = "http://hepmc.web.cern.ch/hepmc/releases/hepmc2.06.09.tgz"
+ homepage = "https://hepmc.web.cern.ch/hepmc/"
+ url = "https://hepmc.web.cern.ch/hepmc/releases/hepmc2.06.11.tgz"
+ tags = ['hep']
+
+ version('2.06.11', sha256='86b66ea0278f803cde5774de8bd187dd42c870367f1cbf6cdaec8dc7cf6afc10')
version('2.06.10', sha256='5adedd9e3f7447e1e5fc01b72f745ab87da2c1611df89208bb3d7c6ea94c11a4')
version('2.06.09', sha256='e0f8fddd38472c5615210894444686ac5d72df3be682f7d151b562b236d9b422')
version('2.06.08', sha256='8be6c1793e0a045f07ddb88bb64b46de7e66a52e75fb72b3f82f9a3e3ba8a8ce')
@@ -35,5 +38,5 @@ class Hepmc(CMakePackage):
if version <= Version("2.06.08"):
url = "http://lcgapp.cern.ch/project/simu/HepMC/download/HepMC-{0}.tar.gz"
else:
- url = "http://hepmc.web.cern.ch/hepmc/releases/hepmc{0}.tgz"
+ url = "https://hepmc.web.cern.ch/hepmc/releases/hepmc{0}.tgz"
return url.format(version)
diff --git a/var/spack/repos/builtin/packages/hepmc3/package.py b/var/spack/repos/builtin/packages/hepmc3/package.py
index 361d3826f5..34cfc7be33 100644
--- a/var/spack/repos/builtin/packages/hepmc3/package.py
+++ b/var/spack/repos/builtin/packages/hepmc3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,8 +14,12 @@ class Hepmc3(CMakePackage):
url = "https://gitlab.cern.ch/hepmc/HepMC3/-/archive/3.2.1/HepMC3-3.2.1.tar.gz"
git = "https://gitlab.cern.ch/hepmc/HepMC3.git"
+ tags = ['hep']
+
maintainers = ['vvolkl']
+ version('3.2.4', sha256='e088fccfd1a6c2f8e1089f457101bee1e5c7a9777e9d51c6419c8a288a49e1bb')
+ version('3.2.3', sha256='8caadacc2c969883cd1f994b622795fc885fb4b15dad8c8ae64bcbdbf0cbd47d')
version('3.2.2', sha256='0e8cb4f78f804e38f7d29875db66f65e4c77896749d723548cc70fb7965e2d41')
version('3.2.1', sha256='6e4e4bb5708af105d4bf74efc2745e6efe704e942d46a8042f7dcae37a4739fe')
version('3.2.0', sha256='f132387763d170f25a7cc9f0bd586b83373c09acf0c3daa5504063ba460f89fc')
@@ -39,8 +43,6 @@ class Hepmc3(CMakePackage):
def cmake_args(self):
spec = self.spec
args = [
- '-Dmomentum:STRING=GEV',
- '-Dlength:STRING=MM',
'-DHEPMC3_ENABLE_PYTHON={0}'.format(spec.satisfies('+python')),
'-DHEPMC3_ENABLE_ROOTIO={0}'.format(spec.satisfies('+rootio')),
'-DHEPMC3_INSTALL_INTERFACES={0}'.format(
@@ -58,4 +60,5 @@ class Hepmc3(CMakePackage):
if self.spec.satisfies('+rootio'):
args.append('-DROOT_DIR={0}'.format(self.spec['root'].prefix))
+ args.append("-DHEPMC3_ENABLE_TEST={0}".format(self.run_tests))
return args
diff --git a/var/spack/repos/builtin/packages/hepmcanalysis/package.py b/var/spack/repos/builtin/packages/hepmcanalysis/package.py
index 5f48eced86..500a3437f1 100644
--- a/var/spack/repos/builtin/packages/hepmcanalysis/package.py
+++ b/var/spack/repos/builtin/packages/hepmcanalysis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,8 @@ class Hepmcanalysis(MakefilePackage):
version('3.4.13', sha256='be9937c6de493a5671258919493b0caa0cecca77853a2075f5cecce1071e0029')
+ tags = ['hep']
+
depends_on('hepmc')
depends_on('fastjet')
depends_on('root')
diff --git a/var/spack/repos/builtin/packages/heppdt/package.py b/var/spack/repos/builtin/packages/heppdt/package.py
index d4d393b7aa..7951e819e6 100644
--- a/var/spack/repos/builtin/packages/heppdt/package.py
+++ b/var/spack/repos/builtin/packages/heppdt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,8 @@ class Heppdt(AutotoolsPackage):
homepage = "https://cdcvs.fnal.gov/redmine/projects/heppdt/wiki"
url = "https://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/HepPDT-2.06.01.tar.gz"
+ tags = ['hep']
+
version('3.04.01', sha256='2c1c39eb91295d3ded69e0d3f1a38b1cb55bc3f0cde37b725ffd5d722f63c0f6')
version('3.04.00', sha256='c5f0eefa19dbbae99f2b6a2ab1ad8fd5d5f844fbbbf96e62f0ddb68cc6a7d5f3')
version('3.03.02', sha256='409d940badbec672c139cb8972c88847b3f9a2476a336f4f7ee6924f8d08426c')
diff --git a/var/spack/repos/builtin/packages/heputils/package.py b/var/spack/repos/builtin/packages/heputils/package.py
index e856d7b5d0..6c839066bd 100644
--- a/var/spack/repos/builtin/packages/heputils/package.py
+++ b/var/spack/repos/builtin/packages/heputils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,8 @@ class Heputils(MakefilePackage):
homepage = "https://bitbucket.org/andybuckley/heputils/src/default/"
url = "https://bitbucket.org/andybuckley/heputils/get/heputils-1.3.2.tar.gz"
+ tags = ['hep']
+
version('1.3.2', sha256='be43586979ab1a81a55348d795c2f63a5da19fc6367d5f66f354217c76c809c0')
version('1.3.1', sha256='7f33ef44364a3d3a39cc65005fb6aa9dfd06bd1b18b41151c0e5e3d28d6ba15b')
version('1.3.0', sha256='1ec9d9d71d409ce6b2e668e4927b1090ddf2ee9acf25457f767925cf89b24852')
diff --git a/var/spack/repos/builtin/packages/hercules/package.py b/var/spack/repos/builtin/packages/hercules/package.py
index 6754581999..fa70625625 100644
--- a/var/spack/repos/builtin/packages/hercules/package.py
+++ b/var/spack/repos/builtin/packages/hercules/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/herwig3/package.py b/var/spack/repos/builtin/packages/herwig3/package.py
index 6f529c10bf..b7d74012fd 100644
--- a/var/spack/repos/builtin/packages/herwig3/package.py
+++ b/var/spack/repos/builtin/packages/herwig3/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 shutil
+from spack import *
+
class Herwig3(AutotoolsPackage):
"""Herwig is a multi-purpose particle physics event generator."""
@@ -13,6 +14,8 @@ class Herwig3(AutotoolsPackage):
homepage = "https://herwig.hepforge.org"
url = "https://herwig.hepforge.org/downloads/Herwig-7.2.1.tar.bz2"
+ tags = ['hep']
+
version('7.2.1', sha256='d4fff32f21c5c08a4b2e563c476b079859c2c8e3b78d853a8a60da96d5eea686')
depends_on('autoconf', type='build')
diff --git a/var/spack/repos/builtin/packages/herwigpp/package.py b/var/spack/repos/builtin/packages/herwigpp/package.py
index c3cdf7791d..d6d4988393 100644
--- a/var/spack/repos/builtin/packages/herwigpp/package.py
+++ b/var/spack/repos/builtin/packages/herwigpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,8 @@ class Herwigpp(AutotoolsPackage):
homepage = "https://herwig.hepforge.org/"
url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/MCGeneratorsTarFiles/Herwig++-2.7.1.tar.bz2"
+ tags = ['hep']
+
version('2.7.1', '80a189376bb65f5ec4e64f42e76c00ea9102d8224010563a424fc11e619a6ad6')
patch('herwig++-2.7.1.patch', when='@2.7.1', level=0)
diff --git a/var/spack/repos/builtin/packages/hevea/package.py b/var/spack/repos/builtin/packages/hevea/package.py
new file mode 100644
index 0000000000..cc15269458
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hevea/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 Hevea(MakefilePackage):
+ """Hevea a fast Latex to HTML translator"""
+
+ homepage = "http://hevea.inria.fr/"
+ url = "https://github.com/maranget/hevea/archive/v2.35.tar.gz"
+ git = "https://github.com/maranget/hevea.git"
+
+ maintainers = ['scemama', 'cessenat']
+
+ version('develop', branch='master')
+ version('2.35', sha256='78f834cc7a8112ec59d0b8acdfbed0c8ac7dbb85f964d0be1f4eed04f25cdf54')
+ version('2.34', sha256='f505a2a5bafdc2ea389ec521876844e6fdcb5c1b656396b7e8421c1631469ea2')
+ version('2.33', sha256='122f9023f9cfe8b41dd8965b7d9669df21bf41e419bcf5e9de5314f428380d0f')
+ version('2.32', sha256='f0c12ee3936364a3aa26da384e3d2ad2344be0091f04f9531f04ecb1dca98aca')
+
+ # Dependency demands ocamlbuild
+ depends_on('ocaml')
+ depends_on('ocamlbuild')
+
+ def edit(self, spec, prefix):
+ env['PREFIX'] = self.spec.prefix
diff --git a/var/spack/repos/builtin/packages/hibench/package.py b/var/spack/repos/builtin/packages/hibench/package.py
index d32dac6eac..a4f0bfd1c4 100644
--- a/var/spack/repos/builtin/packages/hibench/package.py
+++ b/var/spack/repos/builtin/packages/hibench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hic-pro/package.py b/var/spack/repos/builtin/packages/hic-pro/package.py
index 2d6bdf63a8..6ddc63d00a 100644
--- a/var/spack/repos/builtin/packages/hic-pro/package.py
+++ b/var/spack/repos/builtin/packages/hic-pro/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hicolor-icon-theme/package.py b/var/spack/repos/builtin/packages/hicolor-icon-theme/package.py
new file mode 100644
index 0000000000..1739cccf4c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hicolor-icon-theme/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 HicolorIconTheme(AutotoolsPackage):
+ """icon-theme contains the standard also references the default
+ icon theme called hicolor."""
+
+ homepage = "https://www.freedesktop.org/wiki/Software/icon-theme/"
+ url = "https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.17.tar.xz"
+
+ version('0.17', sha256='317484352271d18cbbcfac3868eab798d67fff1b8402e740baa6ff41d588a9d8')
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
+
+ def setup_build_environment(self, env):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
+
+ def setup_run_environment(self, env):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
diff --git a/var/spack/repos/builtin/packages/highfive/package.py b/var/spack/repos/builtin/packages/highfive/package.py
index ed43ea26e3..0818bdbaa4 100644
--- a/var/spack/repos/builtin/packages/highfive/package.py
+++ b/var/spack/repos/builtin/packages/highfive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/highwayhash/package.py b/var/spack/repos/builtin/packages/highwayhash/package.py
index 77c3e1414d..7673280221 100644
--- a/var/spack/repos/builtin/packages/highwayhash/package.py
+++ b/var/spack/repos/builtin/packages/highwayhash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hiop/package.py b/var/spack/repos/builtin/packages/hiop/package.py
index f0603381dd..e1ced78506 100644
--- a/var/spack/repos/builtin/packages/hiop/package.py
+++ b/var/spack/repos/builtin/packages/hiop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
from spack import *
-class Hiop(CMakePackage):
+class Hiop(CMakePackage, CudaPackage):
"""HiOp is an optimization solver for solving certain mathematical
optimization problems expressed as nonlinear programming problems.
HiOp is a lightweight HPC solver that leverages application's existing
@@ -14,20 +14,65 @@ class Hiop(CMakePackage):
specialized linear algebra kernels."""
homepage = "https://github.com/LLNL/hiop"
- git = "https://github.com/LLNL/hiop.git"
+ git = "https://github.com/LLNL/hiop.git"
+ maintainers = ['ashermancinelli', 'CameronRutherford']
- version('0.1', tag='v0.1')
+ # Most recent tagged snapshot is the preferred version when profiling.
+ version('0.4.6', commit='b72d163d52c9225c3196ceb2baebdc7cf09a69de')
+ version('0.4.5', commit='c353580456c4776c50811b97cf8ff802dc27b90c')
+ version('0.4.4', commit='e858eefa6b914f5c87c3717bbce811931ea69386')
+ version('0.4.3', commit='c0394af4d84ebb84b7d2b95283ad65ffd84e0d45')
+ version('0.4.2', commit='3fcb788d223eec24c0241680070c4a9a5ec71ef3')
+ version('0.4.1', commit='3f269560f76d5a89bcbd1d3c4f9f0e5acaa6fd64')
+ version('0.4', commit='91d21085a1149eacdb27cd738d4a74a7e412fcff')
+ version('0.3.99.3', commit='bed1dbef260e53a9d139ccfb77d2e83a98aab216')
+ version('0.3.99.2', commit='9eb026768bc5e0a2c1293d0487cc39913001ae19')
+ version('0.3.99.1', commit='220e32c0f318665d6d394ca3cd0735b9d26a65eb')
+ version('0.3.99.0', commit='589b9c76781447108fa55788d5fa1b83ff71a3d1')
+ version('0.3', commit='7e8adae9db757aed48e5c2bc448316307598258f')
+ version('0.2', commit='c52a6f6b9baaaa2d7f233a749aa98f901349723f')
+ version('0.1', commit='5f60e11b79d532115fb41694378b54c9c707aad9')
- variant('mpi', default=True,
- description='Enable/Disable MPI')
+ # Development branches
+ version('master', branch='master')
+ version('develop', branch='develop')
- variant('deepchecking', default=True,
- description='Ultra safety checks - \
- used for increased robustness and self-diagnostics')
+ variant(
+ 'jsrun',
+ default=False,
+ description='Enable/Disable jsrun command for testing')
+ variant(
+ 'shared',
+ default=False,
+ description='Enable/Disable shared libraries')
+ variant('mpi', default=True, description='Enable/Disable MPI')
+ variant('raja', default=False, description='Enable/Disable RAJA')
+ variant('kron', default=False, description='Enable/Disable Kron reduction')
+ variant(
+ 'sparse',
+ default=False,
+ description='Enable/Disable Sparse linear algebra')
+ variant('deepchecking', default=False,
+ description='Ultra safety checks - '
+ 'used for increased robustness and self-diagnostics')
- depends_on('mpi', when='+mpi')
depends_on('lapack')
depends_on('blas')
+ depends_on('cmake@3.18:', type='build')
+
+ depends_on('mpi', when='+mpi')
+
+ depends_on('magma', when='+cuda')
+ depends_on('magma@2.5.4:', when='@0.3.99.1:+cuda')
+ depends_on('magma@2.6.1:', when='@0.4.6:+cuda')
+
+ depends_on('raja', when='+raja')
+ depends_on('umpire', when='+raja')
+
+ depends_on('suite-sparse', when='+kron')
+
+ depends_on('coinhsl', when='+sparse')
+ depends_on('metis', when='+sparse')
flag_handler = build_system_flags
@@ -35,16 +80,6 @@ class Hiop(CMakePackage):
args = []
spec = self.spec
- if '+mpi' in spec:
- args.append("-DWITH_MPI=ON")
- else:
- args.append("-DWITH_MPI=OFF")
-
- if '+deepchecking' in spec:
- args.append("-DDEEP_CHECKING=ON")
- else:
- args.append("-DDEEP_CHECKING=OFF")
-
lapack_blas_libs = (
spec['lapack'].libs + spec['blas'].libs).joined(';')
args.extend([
@@ -52,4 +87,50 @@ class Hiop(CMakePackage):
'-DLAPACK_LIBRARIES={0}'.format(lapack_blas_libs)
])
+ args.append(self.define_from_variant('HIOP_BUILD_SHARED', 'shared'))
+ args.append(self.define_from_variant('HIOP_USE_MPI', 'mpi'))
+ args.append(self.define_from_variant('HIOP_DEEPCHECKS', 'deepchecking'))
+ args.append(self.define_from_variant('HIOP_USE_GPU', 'cuda'))
+ args.append(self.define_from_variant('HIOP_USE_CUDA', 'cuda'))
+ args.append(self.define_from_variant('HIOP_USE_MAGMA', 'cuda'))
+ args.append(self.define_from_variant('HIOP_USE_RAJA', 'raja'))
+ args.append(self.define_from_variant('HIOP_USE_UMPIRE', 'raja'))
+ args.append(self.define_from_variant('HIOP_WITH_KRON_REDUCTION', 'kron'))
+ args.append(self.define_from_variant('HIOP_SPARSE', 'sparse'))
+ args.append(self.define_from_variant('HIOP_USE_COINHSL', 'sparse'))
+ args.append(self.define_from_variant('HIOP_TEST_WITH_BSUB', 'jsrun'))
+
+ if '+mpi' in spec:
+ args.append('-DMPI_HOME={0}'.format(spec['mpi'].prefix))
+ args.append('-DMPI_C_COMPILER={0}'.format(spec['mpi'].mpicc))
+ args.append('-DMPI_CXX_COMPILER={0}'.format(spec['mpi'].mpicxx))
+ args.append('-DMPI_Fortran_COMPILER={0}'.format(spec['mpi'].mpifc))
+
+ # HIP flags are a part of the buildsystem, but full support is not
+ # yet ready for public release
+ args.append("-DHIOP_USE_HIP=OFF")
+
+ if '+cuda' in spec:
+ cuda_arch_list = spec.variants['cuda_arch'].value
+ cuda_arch = cuda_arch_list[0]
+ if cuda_arch != 'none':
+ args.append("-DHIOP_NVCC_ARCH=sm_{0}".format(cuda_arch))
+ args.append("-DCMAKE_CUDA_ARCHITECTURES={0}".format(cuda_arch))
+ if '+magma' in spec:
+ args.append(
+ "-DHIOP_MAGMA_DIR={0}".format(spec['magma'].prefix))
+
+ if '+kron' in spec:
+ args.append(
+ "-DHIOP_UMFPACK_DIR={0}".format(spec['suite-sparse'].prefix))
+
+ # Unconditionally disable strumpack, even when +sparse. This may be
+ # used in place of COINHSL for sparse interface, however this is not
+ # fully supported in spack at the moment.
+ args.append("-DHIOP_USE_STRUMPACK=OFF")
+
+ if '+sparse' in spec:
+ args.append(
+ "-DHIOP_COINHSL_DIR={0}".format(spec['coinhsl'].prefix))
+
return args
diff --git a/var/spack/repos/builtin/packages/hip-rocclr/package.py b/var/spack/repos/builtin/packages/hip-rocclr/package.py
index 41e330b40b..3f3c67e57d 100644
--- a/var/spack/repos/builtin/packages/hip-rocclr/package.py
+++ b/var/spack/repos/builtin/packages/hip-rocclr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,7 @@ class HipRocclr(CMakePackage):
runtimes to work on Windows as well as on Linux without much effort."""
homepage = "https://github.com/ROCm-Developer-Tools/ROCclr"
+ git = "https://github.com/ROCm-Developer-Tools/ROCclr.git"
maintainers = ['srekolam', 'arjun-raj-kuppala']
@@ -24,19 +25,28 @@ class HipRocclr(CMakePackage):
url = "https://github.com/ROCm-Developer-Tools/ROCclr/archive/rocm-{0}.tar.gz"
return url.format(version)
+ version('master', branch='main')
+ version('4.3.1', sha256='bda52c65f03a69a9d8ab1a118d45646d76843249fb975d67e5141e63fa3acc79')
+ version('4.3.0', sha256='8a86b4f2a1b1c7ac628262e5b11b07ff42a224e62e594a4e0683aeb616062538')
+ version('4.2.0', sha256='c57525af32c59becf56fd83cdd61f5320a95024d9baa7fb729a01e7a9fcdfd78')
+ version('4.1.0', sha256='9eb1d88cfc9474979aaf29b99bcf9d3769a0f7f1f8f10660941aabf83d9eeb0c')
+ version('4.0.0', sha256='8db502d0f607834e3b882f939d33e8abe2f9b55ddafaf1b0c2cd29a0425ed76a')
+ version('3.10.0', sha256='d1ac02840c2dcb3d5fa3008fe9e313767ebe6d1dcf978a924341834ec96ebfe2')
version('3.9.0', sha256='d248958672ae35ab7f9fbd83827ccf352e2756dfa7819f6b614ace2e1a9a064e')
version('3.8.0', sha256='10d8aa6f5af7b51813015da603c4e75edc863c3530793f6ed9769ca345c08ed6')
version('3.7.0', sha256='a49f464bb2eab6317e87e3cc249aba3b2517a34fbdfe50175f0437f69a219adc')
version('3.5.0', sha256='87c1ee9f02b8aa487b628c543f058198767c474cec3d21700596a73c028959e1')
depends_on('cmake@3:', type='build')
- depends_on('mesa~llvm@18.3: swr=none', type='link')
- depends_on('libelf', type='link', when="@3.7.0:")
+ depends_on('mesa18~llvm@18.3: swr=none', type='link')
+ depends_on('libelf', type='link', when="@3.7.0:3.8.0")
depends_on('numactl', type='link', when="@3.7.0:")
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1', 'master']:
+ depends_on('hsakmt-roct@' + ver, when='@' + ver)
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
+ depends_on('comgr@' + ver, when='@' + ver)
# See: https://github.com/ROCm-Developer-Tools/ROCclr/pull/16
# In 3.7.0 the find opengl things have changed slightly.
@@ -50,28 +60,36 @@ class HipRocclr(CMakePackage):
placement='opencl-on-vdi',
when='@3.5.0')
- resource(name='opencl-on-vdi',
- url='https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-3.7.0.tar.gz',
- sha256='283e1dfe4c3d2e8af4d677ed3c20e975393cdb0856e3ccd77b9c7ed2a151650b',
- expand=True,
- destination='',
- placement='opencl-on-vdi',
- when='@3.7.0')
-
- resource(name='opencl-on-vdi',
- url='https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-3.8.0.tar.gz',
- sha256='7f75dd1abf3d771d554b0e7b0a7d915ab5f11a74962c92b013ee044a23c1270a',
- expand=True,
- destination='',
- placement='opencl-on-vdi',
- when='@3.8.0')
- resource(name='opencl-on-vdi',
- url='https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-3.9.0.tar.gz',
- sha256='286ff64304905384ce524cd8794c28aee216befd6c9267d4187a12e5a21e2daf',
- expand=True,
- destination='',
- placement='opencl-on-vdi',
- when='@3.9.0')
+ # Add opencl sources thru the below
+ for d_version, d_shasum in [
+ ('4.3.1', '7f98f7d4707b4392f8aa7017aaca9e27cb20263428a1a81fb7ec7c552e60c4ca'),
+ ('4.3.0', 'd37bddcc6835b6c0fecdf4d02c204ac1d312076f3eef2b1faded1c4c1bc651e9'),
+ ('4.2.0', '18133451948a83055ca5ebfb5ba1bd536ed0bcb611df98829f1251a98a38f730'),
+ ('4.1.0', '0729e6c2adf1e3cf649dc6e679f9cb936f4f423f4954ad9852857c0a53ef799c'),
+ ('4.0.0', 'd43ea5898c6b9e730b5efabe8367cc136a9260afeac5d0fe85b481d625dd7df1'),
+ ('3.10.0', '3aa9dc5a5f570320b04b35ee129ce9ff21062d2770df934c6c307913f975e93d'),
+ ('3.9.0', '286ff64304905384ce524cd8794c28aee216befd6c9267d4187a12e5a21e2daf'),
+ ('3.8.0', '7f75dd1abf3d771d554b0e7b0a7d915ab5f11a74962c92b013ee044a23c1270a'),
+ ('3.7.0', '283e1dfe4c3d2e8af4d677ed3c20e975393cdb0856e3ccd77b9c7ed2a151650b')
+ ]:
+ resource(
+ name='opencl-on-vdi',
+ url='https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-{0}.tar.gz'.format(d_version),
+ sha256=d_shasum,
+ expand=True,
+ destination='',
+ placement='opencl-on-vdi',
+ when='@{0}'.format(d_version)
+ )
+
+ resource(
+ name='opencl-on-vdi',
+ git='https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime.git',
+ destination='',
+ placement='opencl-on-vdi',
+ branch='main',
+ when='@master'
+ )
@run_after('install')
def deploy_missing_files(self):
diff --git a/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host.4.2.0.patch b/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host.4.2.0.patch
new file mode 100644
index 0000000000..87f64923dd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host.4.2.0.patch
@@ -0,0 +1,47 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f97fb83..a059c42 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -72,7 +72,17 @@ list(GET VERSION_LIST 0 HIP_VERSION_MAJOR)
+ list(GET VERSION_LIST 1 HIP_VERSION_MINOR)
+ set(HIP_VERSION_GITDATE 0)
+
+-find_package(Git)
++# only look for git when we have a git repo
++if (IS_DIRECTORY "${PROJECT_SOURCE_DIR}/.git")
++ find_package(Git)
++endif()
++
++# FIXME: Two different version strings used.
++
++set(HIP_PACKAGING_VERSION_PATCH "0")
++set(HIP_VERSION_GITDATE "0")
++set(HIP_VERSION_PATCH "0")
++
+
+ # FIXME: Two different version strings used.
+ if(GIT_FOUND)
+@@ -118,9 +128,6 @@ if(GIT_FOUND)
+ else()
+ set(HIP_PACKAGING_VERSION_PATCH ${HIP_VERSION_GITDATE}.${HIP_VERSION_GITCOUNT}-${HIP_VERSION_GITHASH})
+ endif()
+-else()
+- # FIXME: Some parts depend on this being set.
+- set(HIP_PACKAGING_VERSION_PATCH "0")
+ endif()
+
+ ## Debian package specific variables
+diff --git a/hip-config.cmake.in b/hip-config.cmake.in
+index cbb4ffe..94e2ec1 100644
+--- a/hip-config.cmake.in
++++ b/hip-config.cmake.in
+@@ -265,9 +265,6 @@ if(HIP_COMPILER STREQUAL "clang")
+ endif()
+
+ # Add support for __fp16 and _Float16, explicitly link with compiler-rt
+- set_property(TARGET hip::host APPEND PROPERTY
+- INTERFACE_LINK_LIBRARIES "-L\"${HIP_CLANG_INCLUDE_PATH}/../lib/linux\" -lclang_rt.builtins-x86_64"
+- )
+ set_property(TARGET hip::device APPEND PROPERTY
+ INTERFACE_LINK_LIBRARIES "-L\"${HIP_CLANG_INCLUDE_PATH}/../lib/linux\" -lclang_rt.builtins-x86_64"
+ )
diff --git a/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.3.10.0.patch b/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.3.10.0.patch
new file mode 100644
index 0000000000..d7f1a8dff3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.3.10.0.patch
@@ -0,0 +1,56 @@
+From 3a05d9ee5af2d318d27ee4b8e81542e2c81b9d5a Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Mon, 11 Jan 2021 16:38:14 +0100
+Subject: [PATCH] Improve compilation without git repo
+
+---
+ CMakeLists.txt | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7831bb4d..c0c7a536 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -42,9 +42,17 @@ string(REPLACE "." ";" VERSION_LIST ${HIP_BASE_VERSION})
+ list(GET VERSION_LIST 0 HIP_VERSION_MAJOR)
+ list(GET VERSION_LIST 1 HIP_VERSION_MINOR)
+
+-find_package(Git)
++# only look for git when we have a git repo
++if (IS_DIRECTORY "${PROJECT_SOURCE_DIR}/.git")
++ find_package(Git)
++endif()
+
+ # FIXME: Two different version strings used.
++
++set(HIP_PACKAGING_VERSION_PATCH "0")
++set(HIP_VERSION_GITDATE "0")
++set(HIP_VERSION_PATCH "0")
++
+ if(GIT_FOUND)
+ # get date information based on UTC
+ # use the last two digits of year + week number + day in the week as HIP_VERSION_GITDATE
+@@ -88,9 +96,6 @@ if(GIT_FOUND)
+ else()
+ set(HIP_PACKAGING_VERSION_PATCH ${HIP_VERSION_GITDATE}.${HIP_VERSION_GITCOUNT}-${HIP_VERSION_GITHASH})
+ endif()
+-else()
+- # FIXME: Some parts depend on this being set.
+- set(HIP_PACKAGING_VERSION_PATCH "0")
+ endif()
+
+ ## Debian package specific variables
+@@ -488,10 +493,6 @@ endif()
+ # Generate .hipVersion
+ file(WRITE "${PROJECT_BINARY_DIR}/.hipVersion" ${_versionInfo})
+
+-if(NOT DEFINED HIP_VERSION_GITDATE)
+- set(HIP_VERSION_GITDATE 0)
+-endif()
+-
+ # Build doxygen documentation
+ find_program(DOXYGEN_EXE doxygen)
+ if(DOXYGEN_EXE)
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.3.7.0.patch b/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.3.7.0.patch
new file mode 100644
index 0000000000..2bb5074df2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.3.7.0.patch
@@ -0,0 +1,56 @@
+From db2a538d9beaef9092dff19c36ed8a2e291bc69a Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Mon, 11 Jan 2021 16:38:14 +0100
+Subject: [PATCH 1/2] Improve compilation without git repo
+
+---
+ CMakeLists.txt | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7f5bdad9..ca0e7ed4 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -44,9 +44,17 @@ string(REPLACE "." ";" VERSION_LIST ${HIP_BASE_VERSION})
+ list(GET VERSION_LIST 0 HIP_VERSION_MAJOR)
+ list(GET VERSION_LIST 1 HIP_VERSION_MINOR)
+
+-find_package(Git)
++# only look for git when we have a git repo
++if (IS_DIRECTORY "${PROJECT_SOURCE_DIR}/.git")
++ find_package(Git)
++endif()
+
+ # FIXME: Two different version strings used.
++
++set(HIP_PACKAGING_VERSION_PATCH "0")
++set(HIP_VERSION_GITDATE "0")
++set(HIP_VERSION_PATCH "0")
++
+ if(GIT_FOUND)
+ # get date information based on UTC
+ # use the last two digits of year + week number + day in the week as HIP_VERSION_GITDATE
+@@ -90,9 +98,6 @@ if(GIT_FOUND)
+ else()
+ set(HIP_PACKAGING_VERSION_PATCH ${HIP_VERSION_GITDATE}.${HIP_VERSION_GITCOUNT}-${HIP_VERSION_GITHASH})
+ endif()
+-else()
+- # FIXME: Some parts depend on this being set.
+- set(HIP_PACKAGING_VERSION_PATCH "0")
+ endif()
+
+ add_to_config(_versionInfo HIP_VERSION_MAJOR)
+@@ -447,10 +452,6 @@ endif()
+ # Generate .hipVersion
+ file(WRITE "${PROJECT_BINARY_DIR}/.hipVersion" ${_versionInfo})
+
+-if(NOT DEFINED HIP_VERSION_GITDATE)
+- set(HIP_VERSION_GITDATE 0)
+-endif()
+-
+ # Generate hip_version.h
+ set(_versionInfoHeader
+ "// Auto-generated by cmake\n
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.4.1.0.patch b/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.4.1.0.patch
new file mode 100644
index 0000000000..f5b59e5b6f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0003-Improve-compilation-without-git-repo.4.1.0.patch
@@ -0,0 +1,44 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 483f8c9..8ddf76e 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -52,7 +52,16 @@ string(REPLACE "." ";" VERSION_LIST ${HIP_BASE_VERSION})
+ list(GET VERSION_LIST 0 HIP_VERSION_MAJOR)
+ list(GET VERSION_LIST 1 HIP_VERSION_MINOR)
+
+-find_package(Git)
++# only look for git when we have a git repo
++if (IS_DIRECTORY "${PROJECT_SOURCE_DIR}/.git")
++ find_package(Git)
++endif()
++
++# FIXME: Two different version strings used.
++
++set(HIP_PACKAGING_VERSION_PATCH "0")
++set(HIP_VERSION_GITDATE "0")
++set(HIP_VERSION_PATCH "0")
+
+ # FIXME: Two different version strings used.
+ if(GIT_FOUND)
+@@ -98,9 +107,6 @@ if(GIT_FOUND)
+ else()
+ set(HIP_PACKAGING_VERSION_PATCH ${HIP_VERSION_GITDATE}.${HIP_VERSION_GITCOUNT}-${HIP_VERSION_GITHASH})
+ endif()
+-else()
+- # FIXME: Some parts depend on this being set.
+- set(HIP_PACKAGING_VERSION_PATCH "0")
+ endif()
+
+ ## Debian package specific variables
+@@ -295,10 +301,6 @@ file(WRITE "${PROJECT_BINARY_DIR}/.hipInfo" ${_buildInfo})
+ # Generate .hipVersion
+ file(WRITE "${PROJECT_BINARY_DIR}/.hipVersion" ${_versionInfo})
+
+-if(NOT DEFINED HIP_VERSION_GITDATE)
+- set(HIP_VERSION_GITDATE 0)
+-endif()
+-
+ # Build doxygen documentation
+ find_program(DOXYGEN_EXE doxygen)
+ if(DOXYGEN_EXE)
+
diff --git a/var/spack/repos/builtin/packages/hip/0004-Drop-clang-rt-builtins-linking-on-hip-host.3.10.0.patch b/var/spack/repos/builtin/packages/hip/0004-Drop-clang-rt-builtins-linking-on-hip-host.3.10.0.patch
new file mode 100644
index 0000000000..a930858378
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0004-Drop-clang-rt-builtins-linking-on-hip-host.3.10.0.patch
@@ -0,0 +1,32 @@
+From 8b266132ee180ff8cc17b394ba64850f207a3dab Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Tue, 12 Jan 2021 12:26:44 +0100
+Subject: [PATCH] Drop clang rt builtins linking on hip::host
+
+Ref this comment
+https://github.com/ROCm-Developer-Tools/HIP/pull/2217#discussion_r555402581:
+
+> Yea, this should only be linked on hip::device as I believe its needed
+> for __fp16 support on the GPU. If users need this on the host-side,
+> then they should explicitly add it.
+---
+ hip-config.cmake.in | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/hip-config.cmake.in b/hip-config.cmake.in
+index 6dfbd527..0ac1b659 100644
+--- a/hip-config.cmake.in
++++ b/hip-config.cmake.in
+@@ -206,9 +206,6 @@ if(HIP_COMPILER STREQUAL "clang")
+ endif()
+
+ # Add support for __fp16 and _Float16, explicitly link with compiler-rt
+- set_property(TARGET hip::host APPEND PROPERTY
+- INTERFACE_LINK_LIBRARIES -L${HIP_CLANG_INCLUDE_PATH}/../lib/linux -lclang_rt.builtins-x86_64
+- )
+ set_property(TARGET hip::device APPEND PROPERTY
+ INTERFACE_LINK_LIBRARIES -L${HIP_CLANG_INCLUDE_PATH}/../lib/linux -lclang_rt.builtins-x86_64
+ )
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/hip/0004-Drop-clang-rt-builtins-linking-on-hip-host.3.7.0.patch b/var/spack/repos/builtin/packages/hip/0004-Drop-clang-rt-builtins-linking-on-hip-host.3.7.0.patch
new file mode 100644
index 0000000000..936b333277
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0004-Drop-clang-rt-builtins-linking-on-hip-host.3.7.0.patch
@@ -0,0 +1,35 @@
+From 053bb794c57424fc47d53d8914bca1dc8d776a34 Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Tue, 12 Jan 2021 12:26:44 +0100
+Subject: [PATCH 2/2] Drop clang rt builtins linking on hip::host
+
+Ref this comment
+https://github.com/ROCm-Developer-Tools/HIP/pull/2217#discussion_r555402581:
+
+> Yea, this should only be linked on hip::device as I believe its needed
+> for __fp16 support on the GPU. If users need this on the host-side,
+> then they should explicitly add it.
+---
+ hip-config.cmake.in | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/hip-config.cmake.in b/hip-config.cmake.in
+index ba340134..4daff392 100644
+--- a/hip-config.cmake.in
++++ b/hip-config.cmake.in
+@@ -204,12 +204,6 @@ if(HIP_COMPILER STREQUAL "clang")
+ endif()
+
+ # Add support for __fp16 and _Float16, explicitly link with compiler-rt
+- set_property(TARGET hip::host APPEND PROPERTY
+- INTERFACE_COMPILE_OPTIONS -L${HIP_CLANG_INCLUDE_PATH}/../lib/linux -lclang_rt.builtins-x86_64
+- )
+- set_property(TARGET hip::host APPEND PROPERTY
+- INTERFACE_LINK_LIBRARIES -L${HIP_CLANG_INCLUDE_PATH}/../lib/linux -lclang_rt.builtins-x86_64
+- )
+ set_property(TARGET hip::device APPEND PROPERTY
+ INTERFACE_COMPILE_OPTIONS -L${HIP_CLANG_INCLUDE_PATH}/../lib/linux -lclang_rt.builtins-x86_64
+ )
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.5.0.patch b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.5.0.patch
new file mode 100644
index 0000000000..500504e657
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.5.0.patch
@@ -0,0 +1,53 @@
+From 52f389bc39e6f3d1eb76225a82c23312dd6006ee Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Wed, 4 Aug 2021 15:12:10 +0200
+Subject: [PATCH] tests
+
+---
+ CMakeLists.txt | 30 ------------------------------
+ 1 file changed, 30 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4a34b02..37e1c3f 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -641,36 +641,6 @@ if(CLANGFORMAT_EXE)
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ endif()
+
+-#############################
+-# Testing steps
+-#############################
+-# Target: test
+-set(HIP_ROOT_DIR ${CMAKE_INSTALL_PREFIX})
+-set(HIP_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR})
+-execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/cmake" "${HIP_ROOT_DIR}/cmake" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
+-if(${RUN_HIT} EQUAL 0)
+- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/bin" "${HIP_ROOT_DIR}/bin" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
+-endif()
+-if(${RUN_HIT} EQUAL 0)
+- set(CMAKE_MODULE_PATH "${HIP_ROOT_DIR}/cmake" ${CMAKE_MODULE_PATH})
+- include(${HIP_SRC_PATH}/tests/hit/HIT.cmake)
+-
+- # Add tests
+- include_directories(${HIP_SRC_PATH}/tests/src)
+- hit_add_directory_recursive(${HIP_SRC_PATH}/tests/src "directed_tests")
+-
+- # Add unit tests
+- include_directories(${HIP_SRC_PATH}/tests/unit)
+- hit_add_directory_recursive(${HIP_SRC_PATH}/tests/unit "unit_tests")
+-
+- # Add top-level tests to build_tests
+- add_custom_target(build_tests DEPENDS directed_tests unit_tests)
+-
+- # Add custom target: check
+- add_custom_target(check COMMAND "${CMAKE_COMMAND}" --build . --target test DEPENDS build_tests)
+-else()
+- message(STATUS "Testing targets will not be available. To enable them please ensure that the HIP installation directory is writeable. Use -DCMAKE_INSTALL_PREFIX to specify a suitable location")
+-endif()
+
+ #############################
+ # Code analysis
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.6.0.patch b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.6.0.patch
new file mode 100644
index 0000000000..7adf7e35cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.6.0.patch
@@ -0,0 +1,65 @@
+From 400797728d50d335c2399bc44ab2b1330d0c6dc4 Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Wed, 4 Aug 2021 15:10:00 +0200
+Subject: [PATCH] tests
+
+---
+ CMakeLists.txt | 42 ------------------------------------------
+ 1 file changed, 42 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 055543a..7e408b6 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -661,48 +661,6 @@ if(CLANGFORMAT_EXE)
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ endif()
+
+-#############################
+-# Testing steps
+-#############################
+-# Target: test
+-set(HIP_ROOT_DIR ${CMAKE_INSTALL_PREFIX})
+-set(HIP_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR})
+-execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/cmake" "${HIP_ROOT_DIR}/cmake" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
+-if(${RUN_HIT} EQUAL 0)
+- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/bin" "${HIP_ROOT_DIR}/bin" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
+-endif()
+-if(${RUN_HIT} EQUAL 0)
+- set(CMAKE_MODULE_PATH "${HIP_ROOT_DIR}/cmake" ${CMAKE_MODULE_PATH})
+- include(${HIP_SRC_PATH}/tests/hit/HIT.cmake)
+-
+- # Add tests
+- include_directories(${HIP_SRC_PATH}/tests/src)
+- hit_add_directory_recursive(${HIP_CTEST_CONFIG_DEFAULT} ${HIP_SRC_PATH}/tests/src "directed_tests")
+-
+- # Add unit tests
+- include_directories(${HIP_SRC_PATH}/tests/unit)
+- hit_add_directory_recursive(${HIP_CTEST_CONFIG_DEFAULT} ${HIP_SRC_PATH}/tests/unit "unit_tests")
+-
+- # Add performance tests
+- include_directories(${HIP_SRC_PATH}/tests/performance)
+- hit_add_directory_recursive(${HIP_CTEST_CONFIG_PERFORMANCE} ${HIP_SRC_PATH}/tests/performance "performance_tests")
+-
+- # Add top-level tests to build_tests
+- add_custom_target(build_tests DEPENDS directed_tests unit_tests)
+-
+- # Add top-level tests to build performance_tests.
+- # To build performance tests, just run "make build_perf"
+- add_custom_target(build_perf DEPENDS performance_tests)
+-
+- # Add custom target: perf.
+- # To run performance tests, just run "make perf"
+- add_custom_target(perf COMMAND "${CMAKE_CTEST_COMMAND}" -C "${HIP_CTEST_CONFIG_PERFORMANCE}" -R "performance_tests/" --verbose)
+-
+- # Add custom target: check
+- add_custom_target(check COMMAND "${CMAKE_COMMAND}" --build . --target test DEPENDS build_tests)
+-else()
+- message(STATUS "Testing targets will not be available. To enable them please ensure that the HIP installation directory is writeable. Use -DCMAKE_INSTALL_PREFIX to specify a suitable location")
+-endif()
+
+ #############################
+ # Code analysis
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.9.0.patch b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.9.0.patch
new file mode 100644
index 0000000000..fdc4a5ffa6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-3.9.0.patch
@@ -0,0 +1,68 @@
+From 823d25faf479a83879a0faf73bf95eaae9ae9fff Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Wed, 4 Aug 2021 15:06:53 +0200
+Subject: [PATCH] Disable testing
+
+---
+ CMakeLists.txt | 45 ---------------------------------------------
+ 1 file changed, 45 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7831bb4..b8f420c 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -696,51 +696,6 @@ if(CLANGFORMAT_EXE)
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ endif()
+
+-#############################
+-# Testing steps
+-#############################
+-# Target: test
+-set(HIP_ROOT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+-set(HIP_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR})
+-if(HIP_PLATFORM STREQUAL "nvcc")
+- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/include" "${CMAKE_CURRENT_BINARY_DIR}/include" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
+-endif()
+-execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/cmake" "${HIP_ROOT_DIR}/cmake" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
+-if(${RUN_HIT} EQUAL 0)
+- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/bin" "${HIP_ROOT_DIR}/bin" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
+-endif()
+-if(${RUN_HIT} EQUAL 0)
+- set(CMAKE_MODULE_PATH "${HIP_ROOT_DIR}/cmake" ${CMAKE_MODULE_PATH})
+- include(${HIP_SRC_PATH}/tests/hit/HIT.cmake)
+-
+- # Add tests
+- include_directories(${HIP_SRC_PATH}/tests/src)
+- hit_add_directory_recursive(${HIP_CTEST_CONFIG_DEFAULT} ${HIP_SRC_PATH}/tests/src "directed_tests")
+-
+- # Add unit tests
+- include_directories(${HIP_SRC_PATH}/tests/unit)
+- hit_add_directory_recursive(${HIP_CTEST_CONFIG_DEFAULT} ${HIP_SRC_PATH}/tests/unit "unit_tests")
+-
+- # Add performance tests
+- include_directories(${HIP_SRC_PATH}/tests/performance)
+- hit_add_directory_recursive(${HIP_CTEST_CONFIG_PERFORMANCE} ${HIP_SRC_PATH}/tests/performance "performance_tests")
+-
+- # Add top-level tests to build_tests
+- add_custom_target(build_tests DEPENDS directed_tests unit_tests)
+-
+- # Add top-level tests to build performance_tests.
+- # To build performance tests, just run "make build_perf"
+- add_custom_target(build_perf DEPENDS performance_tests)
+-
+- # Add custom target: perf.
+- # To run performance tests, just run "make perf"
+- add_custom_target(perf COMMAND "${CMAKE_CTEST_COMMAND}" -C "${HIP_CTEST_CONFIG_PERFORMANCE}" -R "performance_tests/" --verbose)
+-
+- # Add custom target: check
+- add_custom_target(check COMMAND "${CMAKE_COMMAND}" --build . --target test DEPENDS build_tests)
+-else()
+- message(STATUS "Testing targets will not be available. To enable them please ensure that the HIP installation directory is writeable. Use -DCMAKE_INSTALL_PREFIX to specify a suitable location")
+-endif()
+
+ #############################
+ # Code analysis
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/hip/0005-Disable-tests-4.1.0.patch b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-4.1.0.patch
new file mode 100644
index 0000000000..e582951458
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/0005-Disable-tests-4.1.0.patch
@@ -0,0 +1,42 @@
+From 0c097d01b70f479acc7c40cde35a057fafa072ba Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Wed, 4 Aug 2021 15:00:14 +0200
+Subject: [PATCH] Disable tests
+
+---
+ CMakeLists.txt | 19 -------------------
+ 1 file changed, 19 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a059c42..471fa97 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -488,25 +488,6 @@ if(CLANGFORMAT_EXE)
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ endif()
+
+-#############################
+-# Testing steps
+-#############################
+-set(HIP_ROOT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+-set(HIP_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR})
+-if(HIP_PLATFORM STREQUAL "nvidia")
+- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/include" "${HIP_ROOT_DIR}/include" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
+-endif()
+-execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/cmake" "${HIP_ROOT_DIR}/cmake" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
+-if(${RUN_HIT} EQUAL 0)
+- execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/bin" "${HIP_ROOT_DIR}/bin" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
+-endif()
+-if(${RUN_HIT} EQUAL 0)
+- set(CMAKE_MODULE_PATH "${HIP_ROOT_DIR}/cmake" ${CMAKE_MODULE_PATH})
+- include(${HIP_SRC_PATH}/tests/hit/HIT.cmake)
+- include(${HIP_SRC_PATH}/tests/Tests.cmake)
+-else()
+- message(STATUS "Testing targets will not be available. To enable them please ensure that the HIP installation directory is writeable. Use -DCMAKE_INSTALL_PREFIX to specify a suitable location")
+-endif()
+
+ #############################
+ # Code analysis
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/hip/Add_missing_open_cl_header_file_for_4.3.0.patch b/var/spack/repos/builtin/packages/hip/Add_missing_open_cl_header_file_for_4.3.0.patch
new file mode 100644
index 0000000000..236d591c51
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hip/Add_missing_open_cl_header_file_for_4.3.0.patch
@@ -0,0 +1,125 @@
+diff --git a/amdocl/cl_vk_amd.hpp b/amdocl/cl_vk_amd.hpp
+new file mode 100644
+index 0000000..8b6212b
+--- /dev/null
++++ b/amdocl/cl_vk_amd.hpp
+@@ -0,0 +1,119 @@
++/* Copyright (c) 2010-present Advanced Micro Devices, Inc.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++THE SOFTWARE. */
++
++#pragma once
++
++#include "platform/context.hpp"
++#include "platform/memory.hpp"
++
++namespace amd
++{
++ class VkObject : public InteropObject
++ {
++ protected:
++ amd::Os::FileDesc handleVk_;
++
++ public:
++ //! GLObject constructor initializes member variables
++ VkObject(
++ amd::Os::FileDesc handle
++ ) // Initialization of member variables
++
++ {
++ handleVk_ = handle;
++ }
++
++ virtual ~VkObject() {}
++ VkObject* asVkObject() { return this; }
++ amd::Os::FileDesc getVkSharedHandle() const { return handleVk_; }
++
++
++ };
++
++ class BufferVk : public Buffer, public VkObject
++ {
++ protected:
++ //! Initializes the device memory array which is nested
++ // after'BufferVk' object in memory layout.
++ void initDeviceMemory() {
++ deviceMemories_ =
++ reinterpret_cast<DeviceMemory*>(reinterpret_cast<char*>(this) + sizeof(BufferVk));
++ memset(deviceMemories_, 0, context_().devices().size() * sizeof(DeviceMemory));
++ }
++ public:
++ //! BufferVk constructor just calls constructors of base classes
++ //! to pass down the parameters
++ BufferVk(
++ Context& amdContext,
++ size_t uiSizeInBytes,
++ amd::Os::FileDesc handle)
++ : // Call base classes constructors
++ Buffer(
++ amdContext,
++ 0,
++ uiSizeInBytes
++ ),
++ VkObject(
++ handle
++ )
++ {
++ setInteropObj(this);
++ }
++ virtual ~BufferVk() {}
++
++ BufferVk* asBufferVk() { return this; }
++ };
++
++ // to be modified once image requirments are known, for now, implement like buffer
++
++ class ImageVk : public Buffer, public VkObject
++ {
++ protected:
++ //! Initializes the device memory array which is nested
++ // after'ImageVk' object in memory layout.
++ void initDeviceMemory() {
++ deviceMemories_ =
++ reinterpret_cast<DeviceMemory*>(reinterpret_cast<char*>(this) + sizeof(ImageVk));
++ memset(deviceMemories_, 0, context_().devices().size() * sizeof(DeviceMemory));
++ }
++ public:
++ //! ImageVk constructor just calls constructors of base classes
++ //! to pass down the parameters
++ ImageVk(
++ Context& amdContext,
++ size_t uiSizeInBytes,
++ amd::Os::FileDesc handle)
++ : // Call base classes constructors
++ Buffer(
++ amdContext,
++ 0,
++ uiSizeInBytes
++ ),
++ VkObject(
++ handle
++ )
++ {
++ setInteropObj(this);
++ }
++ virtual ~ImageVk() {}
++
++ ImageVk* asImageVk() { return this; }
++ };
++}
diff --git a/var/spack/repos/builtin/packages/hip/package.py b/var/spack/repos/builtin/packages/hip/package.py
index d983244a0e..58dc60e4c8 100644
--- a/var/spack/repos/builtin/packages/hip/package.py
+++ b/var/spack/repos/builtin/packages/hip/package.py
@@ -1,11 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.util.prefix import Prefix
import os
+from spack.hooks.sbang import filter_shebang
+from spack.util.prefix import Prefix
+
class Hip(CMakePackage):
"""HIP is a C++ Runtime API and Kernel Language that allows developers to
@@ -13,10 +15,17 @@ class Hip(CMakePackage):
single source code."""
homepage = "https://github.com/ROCm-Developer-Tools/HIP"
- url = "https://github.com/ROCm-Developer-Tools/HIP/archive/rocm-3.8.0.tar.gz"
-
- maintainers = ['srekolam', 'arjun-raj-kuppala']
+ git = "https://github.com/ROCm-Developer-Tools/HIP.git"
+ url = "https://github.com/ROCm-Developer-Tools/HIP/archive/rocm-4.3.0.tar.gz"
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+ version('master', branch='master')
+ version('4.3.1', sha256='955311193819f487f9a2d64bffe07c4b8c3a0dc644dc3ad984f7c66a325bdd6f')
+ version('4.3.0', sha256='293b5025b5e153f2f25e465a2e0006a2b4606db7b7ec2ae449f8a4c0b52d491b')
+ version('4.2.0', sha256='ecb929e0fc2eaaf7bbd16a1446a876a15baf72419c723734f456ee62e70b4c24')
+ version('4.1.0', sha256='e21c10b62868ece7aa3c8413ec0921245612d16d86d81fe61797bf9a64bc37eb')
+ version('4.0.0', sha256='d7b78d96cec67c55b74ea3811ce861b16d300410bc687d0629e82392e8d7c857')
+ version('3.10.0', sha256='0082c402f890391023acdfd546760f41cb276dffc0ffeddc325999fd2331d4e8')
version('3.9.0', sha256='25ad58691456de7fd9e985629d0ed775ba36a2a0e0b21c086bd96ba2fb0f7ed1')
version('3.8.0', sha256='6450baffe9606b358a4473d5f3e57477ca67cff5843a84ee644bcf685e75d839')
version('3.7.0', sha256='757b392c3beb29beea27640832fbad86681dbd585284c19a4c2053891673babd')
@@ -24,18 +33,20 @@ class Hip(CMakePackage):
depends_on('cmake@3:', type='build')
depends_on('perl@5.10:', type=('build', 'run'))
- depends_on('mesa~llvm@18.3:')
-
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hip-rocclr@' + ver, type='build', when='@' + ver)
- depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
- depends_on('comgr@' + ver, type=('build', 'link', 'run'), when='@' + ver)
- depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type=('build', 'link', 'run'), when='@' + ver)
- depends_on('rocminfo@' + ver, type=('build', 'run'), when='@' + ver)
-
- # Notice: most likely this will only be a hard dependency on 3.7.0
+ depends_on('mesa18~llvm@18.3:')
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hip-rocclr@' + ver, when='@' + ver)
+ depends_on('hsakmt-roct@' + ver, when='@' + ver)
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
+ depends_on('comgr@' + ver, when='@' + ver)
+ depends_on('llvm-amdgpu@{0} +rocm-device-libs'.format(ver), when='@' + ver)
+ depends_on('rocminfo@' + ver, when='@' + ver)
+ depends_on('roctracer-dev-api@' + ver, when='@' + ver)
+
+ # hipcc likes to add `-lnuma` by default :(
+ # ref https://github.com/ROCm-Developer-Tools/HIP/pull/2202
depends_on('numactl', when='@3.7.0:')
# Note: the ROCm ecosystem expects `lib/` and `bin/` folders with symlinks
@@ -47,62 +58,127 @@ class Hip(CMakePackage):
patch('0001-Make-it-possible-to-specify-the-package-folder-of-ro.patch', when='@3.5.0:')
# See https://github.com/ROCm-Developer-Tools/HIP/pull/2141
- patch('0002-Fix-detection-of-HIP_CLANG_ROOT.patch', when='@3.5.0:')
-
- def get_rocm_prefix_info(self):
- # External packages in Spack do not currently contain dependency
- # information. External installations of hip therefore must compute
- # necessary paths to other rocm components by relative paths. This
- # assumes all components are installed under a single umbrella
- # directory. Manual edits to `fallback_path` may be necessary if this
- # assumption does not hold.
+ patch('0002-Fix-detection-of-HIP_CLANG_ROOT.patch', when='@:3.9.0')
+
+ # See https://github.com/ROCm-Developer-Tools/HIP/pull/2218
+ patch('0003-Improve-compilation-without-git-repo.3.7.0.patch', when='@3.7.0:3.9.0')
+ patch('0003-Improve-compilation-without-git-repo.3.10.0.patch', when='@3.10.0:4.0.0')
+ patch('0003-Improve-compilation-without-git-repo.4.1.0.patch', when='@4.1.0')
+ patch('0003-Improve-compilation-without-git-repo-and-remove-compiler-rt-linkage-for-host.4.2.0.patch', when='@4.2.0:')
+
+ # See https://github.com/ROCm-Developer-Tools/HIP/pull/2219
+ patch('0004-Drop-clang-rt-builtins-linking-on-hip-host.3.7.0.patch', when='@3.7.0:3.9.0')
+ patch('0004-Drop-clang-rt-builtins-linking-on-hip-host.3.10.0.patch', when='@3.10.0:4.1.0')
+
+ # Tests are broken when using cmake 3.21
+ with when('^cmake@3.21:'):
+ patch('0005-Disable-tests-3.5.0.patch', when='@3.5.0')
+ patch('0005-Disable-tests-3.6.0.patch', when='@3.6.0:3.8.0')
+ patch('0005-Disable-tests-3.9.0.patch', when='@3.9.0:4.0.0')
+ patch('0005-Disable-tests-4.1.0.patch', when='@4.1.0:')
+
+ patch('Add_missing_open_cl_header_file_for_4.3.0.patch', when='@4.3.0:')
+
+ def get_paths(self):
if self.spec.external:
- # typically, self.spec.prefix is /opt/rocm/hip, so fallback_path
- # will be /opt/rocm. The rocminfo executable is usually
- # found at /opt/rocm/bin/rocminfo.
- fallback_prefix = Prefix(os.path.dirname(self.spec.prefix))
- if not os.path.isdir(fallback_prefix):
+ # For external packages we only assume the `hip` prefix is known,
+ # because spack does not set prefixes of dependencies of externals.
+ # We assume self.spec.prefix is /opt/rocm-x.y.z/hip and rocm has a
+ # default installation with everything installed under
+ # /opt/rocm-x.y.z
+ rocm_prefix = Prefix(os.path.dirname(self.spec.prefix))
+
+ if not os.path.isdir(rocm_prefix):
msg = "Could not determine prefix for other rocm components\n"
msg += "Either report a bug at github.com/spack/spack or "
- msg += "manually edit fallback_prefix in the package file as "
+ msg += "manually edit rocm_prefix in the package file as "
msg += "a workaround."
raise RuntimeError(msg)
- return {
- 'rocm-path': fallback_prefix,
- 'llvm-amdgpu': fallback_prefix.llvm,
- 'hsa-rocr-dev': fallback_prefix.hsa,
- 'rocminfo': fallback_prefix.bin,
- 'rocm-device-libs': fallback_prefix,
- 'device_lib_path': fallback_prefix
+ paths = {
+ 'rocm-path': rocm_prefix,
+ 'llvm-amdgpu': rocm_prefix.llvm,
+ 'hsa-rocr-dev': rocm_prefix.hsa,
+ 'rocminfo': rocm_prefix,
+ 'rocm-device-libs': rocm_prefix
}
else:
- mydict = dict((name, self.spec[name].prefix)
- for name in ('llvm-amdgpu', 'hsa-rocr-dev',
- 'rocminfo', 'rocm-device-libs'))
- mydict['rocm-path'] = self.spec.prefix
- device_lib_path = mydict['rocm-device-libs'].amdgcn.bitcode
- mydict['device_lib_path'] = device_lib_path
- return mydict
+ paths = {
+ 'rocm-path': self.spec.prefix,
+ 'llvm-amdgpu': self.spec['llvm-amdgpu'].prefix,
+ 'hsa-rocr-dev': self.spec['hsa-rocr-dev'].prefix,
+ 'rocminfo': self.spec['rocminfo'].prefix,
+ 'rocm-device-libs': self.spec['llvm-amdgpu'].prefix
+ }
+
+ if '@:3.8.0' in self.spec:
+ paths['bitcode'] = paths['rocm-device-libs'].lib
+ else:
+ paths['bitcode'] = paths['rocm-device-libs'].amdgcn.bitcode
+
+ return paths
def set_variables(self, env):
- # Indirection for dependency paths because hip may be an external in
- # Spack. See block comment on get_rocm_prefix_info .
+ # Note: do not use self.spec[name] here, since not all dependencies
+ # have defined prefixes when hip is marked as external.
+ paths = self.get_paths()
- # NOTE: DO NOT PUT LOGIC LIKE self.spec[name] in this function!!!!!
- # It DOES NOT WORK FOR EXTERNAL PACKAGES!!!! See get_rocm_prefix_info
- rocm_prefixes = self.get_rocm_prefix_info()
+ # Used in hipcc, but only useful when hip is external, since only then
+ # there is a common prefix /opt/rocm-x.y.z.
+ env.set('ROCM_PATH', paths['rocm-path'])
+
+ # hipcc recognizes HIP_PLATFORM == hcc and HIP_COMPILER == clang, even
+ # though below we specified HIP_PLATFORM=rocclr and HIP_COMPILER=clang
+ # in the CMake args.
+ if self.spec.satisfies('@:4.0.0'):
+ env.set('HIP_PLATFORM', 'hcc')
+ else:
+ env.set('HIP_PLATFORM', 'amd')
- env.set('ROCM_PATH', rocm_prefixes['rocm-path'])
env.set('HIP_COMPILER', 'clang')
- env.set('HIP_PLATFORM', 'hcc')
- env.set('HIP_CLANG_PATH', rocm_prefixes['llvm-amdgpu'].bin)
- env.set('HSA_PATH', rocm_prefixes['hsa-rocr-dev'])
- env.set('ROCMINFO_PATH', rocm_prefixes['rocminfo'])
- env.set('DEVICE_LIB_PATH', rocm_prefixes['device_lib_path'])
- env.set('HIP_PATH', rocm_prefixes['rocm-path'])
- env.set('HIPCC_COMPILE_FLAGS_APPEND',
- '--rocm-path={0}'.format(rocm_prefixes['device_lib_path']))
+
+ # bin directory where clang++ resides
+ env.set('HIP_CLANG_PATH', paths['llvm-amdgpu'].bin)
+
+ # Path to hsa-rocr-dev prefix used by hipcc.
+ env.set('HSA_PATH', paths['hsa-rocr-dev'])
+
+ # This is a variable that does not exist in hipcc but was introduced
+ # in a patch of ours since 3.5.0 to locate rocm_agent_enumerator:
+ # https://github.com/ROCm-Developer-Tools/HIP/pull/2138
+ env.set('ROCMINFO_PATH', paths['rocminfo'])
+
+ # This one is used in hipcc to run `clang --hip-device-lib-path=...`
+ env.set('DEVICE_LIB_PATH', paths['bitcode'])
+
+ # And this is used in clang whenever the --hip-device-lib-path is not
+ # used (e.g. when clang is invoked directly)
+ env.set('HIP_DEVICE_LIB_PATH', paths['bitcode'])
+
+ # Just the prefix of hip (used in hipcc)
+ env.set('HIP_PATH', paths['rocm-path'])
+
+ # Used in comgr and seems necessary when using the JIT compiler, e.g.
+ # hiprtcCreateProgram:
+ # https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/blob/rocm-4.0.0/lib/comgr/src/comgr-env.cpp
+ env.set('LLVM_PATH', paths['llvm-amdgpu'])
+
+ # Finally we have to set --rocm-path=<prefix> ourselves, which is not
+ # the same as --hip-device-lib-path (set by hipcc). It's used to set
+ # default bin, include and lib folders in clang. If it's not set it is
+ # infered from the clang install dir (and they try to find
+ # /opt/rocm again...). If this path is set, there is no strict checking
+ # and parsing of the <prefix>/bin/.hipVersion file. Let's just set this
+ # to the hip prefix directory for non-external builds so that the
+ # bin/.hipVersion file can still be parsed.
+ # See also https://github.com/ROCm-Developer-Tools/HIP/issues/2223
+ if '@3.8.0:' in self.spec:
+ env.append_path('HIPCC_COMPILE_FLAGS_APPEND',
+ '--rocm-path={0}'.format(paths['rocm-path']),
+ separator=' ')
+
+ def setup_build_environment(self, env):
+ self.set_variables(env)
def setup_run_environment(self, env):
self.set_variables(env)
@@ -127,30 +203,31 @@ class Hip(CMakePackage):
'INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"',
'hip-config.cmake.in', string=True)
- def flag_handler(self, name, flags):
- if name == 'cxxflags' and '@3.7.0:' in self.spec:
- incl = self.spec['hip-rocclr'].prefix.include
- flags.append('-I {0}/compiler/lib/include'.format(incl))
- flags.append('-I {0}/elf'.format(incl))
-
- return (flags, None, None)
-
- @run_before('install')
- def filter_sbang(self):
perl = self.spec['perl'].command
kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
with working_dir('bin'):
match = '^#!/usr/bin/perl'
substitute = "#!{perl}".format(perl=perl)
- files = [
- 'hipify-perl', 'hipcc', 'extractkernel',
- 'hipconfig', 'hipify-cmakefile'
- ]
+
+ if self.spec.satisfies('@:4.0.0'):
+ files = [
+ 'hipify-perl', 'hipcc', 'extractkernel',
+ 'hipconfig', 'hipify-cmakefile'
+ ]
+ else:
+ files = [
+ 'hipify-perl', 'hipcc', 'roc-obj-extract',
+ 'hipconfig', 'hipify-cmakefile',
+ 'roc-obj-ls', 'hipvars.pm'
+ ]
+
filter_file(match, substitute, *files, **kwargs)
- @run_before('install')
- def filter_numactl(self):
+ # This guy is used during the cmake phase, so we have to fix the
+ # shebang already here in case it is too long.
+ filter_shebang('hipconfig')
+
if '@3.7.0:' in self.spec:
numactl = self.spec['numactl'].prefix.lib
kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
@@ -160,13 +237,31 @@ class Hip(CMakePackage):
substitute = " -L{numactl} -lnuma".format(numactl=numactl)
filter_file(match, substitute, 'hipcc', **kwargs)
+ def flag_handler(self, name, flags):
+ if name == 'cxxflags' and '@3.7.0:' in self.spec:
+ incl = self.spec['hip-rocclr'].prefix.include
+ flags.append('-I {0}/compiler/lib/include'.format(incl))
+ flags.append('-I {0}/elf'.format(incl))
+
+ return (flags, None, None)
+
def cmake_args(self):
args = [
- '-DHIP_COMPILER=clang',
- '-DHIP_PLATFORM=rocclr',
- '-DHSA_PATH={0}'.format(self.spec['hsa-rocr-dev'].prefix),
- '-DHIP_RUNTIME=ROCclr',
- '-DLIBROCclr_STATIC_DIR={0}/lib'.format
- (self.spec['hip-rocclr'].prefix)
+ self.define('PROF_API_HEADER_PATH', join_path(
+ self.spec['roctracer-dev-api'].prefix, 'roctracer', 'inc', 'ext')),
+ self.define('HIP_COMPILER', 'clang'),
+ self.define('HSA_PATH', self.spec['hsa-rocr-dev'].prefix)
]
+ if self.spec.satisfies('@:4.0.0'):
+ args.append(self.define('HIP_RUNTIME', 'ROCclr'))
+ args.append(self.define('HIP_PLATFORM', 'rocclr'))
+ else:
+ args.append(self.define('HIP_RUNTIME', 'rocclr'))
+ args.append(self.define('HIP_PLATFORM', 'amd'))
+
+ # LIBROCclr_STATIC_DIR is unused from 3.6.0 and above
+ if '@3.5.0' in self.spec:
+ args.append(self.define('LIBROCclr_STATIC_DIR',
+ self.spec['hip-rocclr'].prefix.lib))
+
return args
diff --git a/var/spack/repos/builtin/packages/hipace/package.py b/var/spack/repos/builtin/packages/hipace/package.py
new file mode 100644
index 0000000000..545ddd5d7e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hipace/package.py
@@ -0,0 +1,70 @@
+# Copyright 2013-2021 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 Hipace(CMakePackage):
+ """Highly efficient Plasma Accelerator Emulation, quasistatic
+ particle-in-cell code
+ """
+
+ homepage = "https://hipace.readthedocs.io"
+ url = "https://github.com/Hi-PACE/hipace/archive/refs/tags/v21.09.tar.gz"
+ git = "https://github.com/Hi-PACE/hipace.git"
+
+ maintainers = ['ax3l', 'MaxThevenet', 'SeverinDiederichs']
+
+ version('develop', branch='development')
+ version('21.09', sha256='5d27824fe6aac47ce26ca69759140ab4d7844f9042e436c343c03ea4852825f1')
+
+ variant('compute',
+ default='noacc',
+ values=('omp', 'cuda', 'hip', 'sycl', 'noacc'),
+ multi=False,
+ description='On-node, accelerated computing backend')
+ variant('mpi', default=True,
+ description='Enable MPI support')
+ variant('openpmd', default=True,
+ description='Enable openPMD I/O')
+ variant('precision',
+ default='double',
+ values=('single', 'double'),
+ multi=False,
+ description='Floating point precision (single/double)')
+
+ depends_on('cmake@3.15.0:', type='build')
+ depends_on('cuda@9.2.88:', when='compute=cuda')
+ depends_on('mpi', when='+mpi')
+ with when('+openpmd'):
+ depends_on('openpmd-api@0.14.2:')
+ depends_on('openpmd-api ~mpi', when='~mpi')
+ depends_on('openpmd-api +mpi', when='+mpi')
+ with when('compute=omp'):
+ depends_on('fftw@3: +openmp')
+ depends_on('fftw +mpi', when='+mpi')
+ depends_on('pkgconfig', type='build')
+ depends_on('llvm-openmp', when='%apple-clang')
+ with when('compute=hip'):
+ depends_on('rocfft')
+ depends_on('rocprim')
+ depends_on('rocrand')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ # do not super-build dependencies
+ '-HiPACE_openpmd_internal=OFF',
+ # variants
+ '-DHiPACE_COMPUTE={0}'.format(
+ spec.variants['compute'].value.upper()),
+ self.define_from_variant('HiPACE_MPI', 'mpi'),
+ self.define_from_variant('HiPACE_OPENPMD', 'openpmd'),
+ '-DHiPACE_PRECISION={0}'.format(
+ spec.variants['precision'].value.upper()),
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/hipblas/package.py b/var/spack/repos/builtin/packages/hipblas/package.py
index 6262681ea3..b426be8a1b 100644
--- a/var/spack/repos/builtin/packages/hipblas/package.py
+++ b/var/spack/repos/builtin/packages/hipblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,27 +12,47 @@ class Hipblas(CMakePackage):
homepage = "https://github.com/ROCmSoftwarePlatform/hipBLAS"
git = "https://github.com/ROCmSoftwarePlatform/hipBLAS.git"
- url = "https://github.com/ROCmSoftwarePlatform/hipBLAS/archive/rocm-3.8.0.tar.gz"
+ url = "https://github.com/ROCmSoftwarePlatform/hipBLAS/archive/rocm-4.3.0.tar.gz"
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+
+ version('4.3.1', sha256='7b1f774774de5fa3d2b777e3a262328559d56165c32aa91b002505694362e7b2')
+ version('4.3.0', sha256='0631e21c588794ea1c8413ef8ff293606bcf7a52c0c3ff88da824f103395a76a')
+ version('4.2.0', sha256='c7ce7f69c7596b5a54e666fb1373ef41d1f896dd29260a691e2eadfa863e2b1a')
+ version('4.1.0', sha256='876efe80a4109ad53d290d2921b3fb425b4cb857b32920819f10dcd4deee4ef8')
+ version('4.0.0', sha256='6cc03af891b36cce8266d32ba8dfcf7fdfcc18afa7a6cc058fbe28bcf8528d94')
+ version('3.10.0', sha256='45cb5e3b37f0845bd9e0d09912df4fa0ce88dd508ec9448241ae6600d3c4b1e8')
version('3.9.0', sha256='82ddd57fd905a5d4060665349ec017ff757a7c121cb9310574be3c3630b3545f')
version('3.8.0', sha256='33cb82e8b2658ae2096f39e41492ba8b6852ac37c26a730612b8642d9d29abe3')
version('3.7.0', sha256='9840a493ab4838c86696ceb33ce07c34b5f59f62db4f88cb3af62b69d84f8729')
version('3.5.0', sha256='d451da80beb048767da71a090afceed2e111d01b3e95a7044deada5054d6e7b1')
- maintainers = ['srekolam', 'arjun-raj-kuppala']
-
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('hip@' + ver, when='@' + ver)
- depends_on('rocsolver@' + ver, type='build', when='@' + ver)
+ depends_on('rocsolver@' + ver, when='@' + ver)
depends_on('rocblas@' + ver, type='link', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
depends_on('comgr@' + ver, type='build', when='@' + ver)
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
def cmake_args(self):
args = [
- '-DBUILD_CLIENTS_SAMPLES=OFF',
- '-DBUILD_CLIENTS_TESTS=OFF'
+ # Make sure find_package(HIP) finds the module.
+ self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake),
+ self.define('BUILD_CLIENTS_SAMPLES', 'OFF'),
+ self.define('BUILD_CLIENTS_TESTS', 'OFF')
]
+
+ # hipblas actually prefers CUDA over AMD GPUs when you have it
+ # installed...
+ if self.spec.satisfies('@:3.9.0'):
+ args.append(self.define('TRY_CUDA', 'OFF'))
+ else:
+ args.append(self.define('USE_CUDA', 'OFF'))
+
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
return args
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/hipcub/package.py b/var/spack/repos/builtin/packages/hipcub/package.py
index 4b7e9b55fb..03d23b48b9 100644
--- a/var/spack/repos/builtin/packages/hipcub/package.py
+++ b/var/spack/repos/builtin/packages/hipcub/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,17 @@ class Hipcub(CMakePackage):
""" Radeon Open Compute Parallel Primitives Library"""
homepage = "https://github.com/ROCmSoftwarePlatform/hipCUB"
- url = "https://github.com/ROCmSoftwarePlatform/hipCUB/archive/rocm-3.5.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/hipCUB.git"
+ url = "https://github.com/ROCmSoftwarePlatform/hipCUB/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='20fcd34323c541c182655b7ff6dc6ff268c0127596f0d9993884621c2b14b67a')
+ version('4.3.0', sha256='733499a8d55e2d73bf874d43a98ee7425e4325f77e03fb0c80debf36c740cb70')
+ version('4.2.0', sha256='56b50e185b7cdf4615d2f56d3a4e86fe76f885e9ad04845f3d0671afcb315c69')
+ version('4.1.0', sha256='6d33cc371b9a5ac9c0ab9853bac736f6cea0d2192f4dc9e6d8175d207ee4b4f2')
+ version('4.0.0', sha256='656bd6ec547810fd74bcebba41453e6e729f3fdb7346f5564ab71fc0346c3fb5')
+ version('3.10.0', sha256='759da5c6ef0cc1e4ecf2083659e78b8bbaa015f0bb360177674e0feb3032c5be')
version('3.9.0', sha256='c46995f9f18733ec18e370c21d7c0d6ac719e8e9d3254c6303a20ba90831e12e')
version('3.8.0', sha256='11d7d97268aeb953c34a80125c4577e27cb57cb6095606533105cecf2bd2ec9c')
version('3.7.0', sha256='a2438632ea1606e83a8c0e1a8777aa5fdca66d77d90862642eb0ec2314b4978d')
@@ -23,21 +30,22 @@ class Hipcub(CMakePackage):
depends_on('cmake@3:', type='build')
depends_on('numactl', type='link', when='@3.7.0:')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hip@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
- depends_on('rocprim@' + ver, type='build', when='@' + ver)
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('rocprim@' + ver, when='@' + ver)
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
def cmake_args(self):
- spec = self.spec
-
args = [
- '-DCMAKE_MODULE_PATH={0}/cmake'.format(spec['hip'].prefix)
+ self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake)
]
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
return args
diff --git a/var/spack/repos/builtin/packages/hipfft/package.py b/var/spack/repos/builtin/packages/hipfft/package.py
new file mode 100644
index 0000000000..17fe0de3ca
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hipfft/package.py
@@ -0,0 +1,50 @@
+# Copyright 2013-2021 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 Hipfft(CMakePackage):
+ """hipFFT is an FFT marshalling library. Currently, hipFFT supports
+ either rocFFT or cuFFT as backends.hipFFT exports an interface that
+ does not require the client to change, regardless of the chosen backend.
+ It sits between the application and the backend FFT library, marshalling
+ inputs into the backend and results back to the application."""
+
+ homepage = "https://github.com/ROCmSoftwarePlatform/hipFFT"
+ git = "https://github.com/ROCmSoftwarePlatform/hipFFT.git"
+ url = "https://github.com/ROCmSoftwarePlatform/hipfft/archive/rocm-4.3.0.tar.gz"
+
+ maintainers = ['arjun-raj-kuppala', 'srekolam']
+
+ version('master', branch='master')
+
+ version('4.3.1', sha256='429cfd40415856da8f5c2c321b612800d6826ee121df5a4e6d1596cad5b51727')
+ version('4.3.0', sha256='6e52e0eb5b2a13adaf317fe5b20b3e059589aabf2af87e4c67cb1022b861ba84')
+ version('4.2.0', sha256='74253b0d92feff55ebb39b3fe4a22a6454160a60bdad37384aa5340fd8843f8a')
+ version('4.1.0', sha256='885ffd4813f2c271150f1b8b386f0af775b38fc82b96ce6fd94eb4ba0c0180be')
+
+ depends_on('cmake@3:', type='build')
+
+ for ver in ['4.1.0', '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('rocfft@' + ver, when='@' + ver)
+
+ def setup_build_environment(self, env):
+ env.set('CXX', self.spec['hip'].hipcc)
+
+ def cmake_args(self):
+ args = [
+ # Make sure find_package(HIP) finds the module.
+ self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake),
+ self.define('BUILD_CLIENTS_SAMPLES', 'OFF')
+ ]
+
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/hipfort/package.py b/var/spack/repos/builtin/packages/hipfort/package.py
index 5e10c1ac54..413eb51156 100644
--- a/var/spack/repos/builtin/packages/hipfort/package.py
+++ b/var/spack/repos/builtin/packages/hipfort/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,18 +10,36 @@ class Hipfort(CMakePackage):
""" Radeon Open Compute Parallel Primitives Library"""
homepage = "https://github.com/ROCmSoftwarePlatform/hipfort"
- url = "https://github.com/ROCmSoftwarePlatform/hipfort/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/hipfort.git"
+ url = "https://github.com/ROCmSoftwarePlatform/hipfort/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='279a35edbc0c22fa930a4355e663a86adf4d0316c5b1b6b9ccc6ee5c19c8c2e4')
+ version('4.3.0', sha256='fd0ffdafdc17ac42c7dae3f89991651f15affdef9b2354da05c7493d09d8974e')
+ version('4.2.0', sha256='b411cb32bf87927eba4c5573b412c56d75d15165e2f1c8ac5ac18e624ed3a4b4')
+ version('4.1.0', sha256='2d335ae068d0cbb480575de7d3ea4868362af32cb195f911ee1aeced499f3974')
+ version('4.0.0', sha256='a497645c33e0eff39abd5344756de63424733cde2837b7376c924b44ed5ae9c9')
+ version('3.10.0', sha256='44173522d9eb2a18ec1cea2d9b00b237fe70501f0849bd6be3decbb73389487a')
version('3.9.0', sha256='a3c4e125a9b56820446a65bd76b8caa196fddb0e0723eb513f0bcde9abd6a0c0')
version('3.8.0', sha256='0132e9949f758dd8b8a462d133b3316101440cd503aa6c53bea9e34e61bbb3cc')
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
depends_on('cmake@3:', type='build')
- for ver in ['3.8.0', '3.9.0']:
+
+ for ver in ['3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0',
+ '4.3.0', '4.3.1']:
depends_on('hip@' + ver, type='build', when='@' + ver)
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
+
+ def cmake_args(self):
+ args = []
+
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/hipify-clang/package.py b/var/spack/repos/builtin/packages/hipify-clang/package.py
index 0e0280c1e9..0d58238045 100644
--- a/var/spack/repos/builtin/packages/hipify-clang/package.py
+++ b/var/spack/repos/builtin/packages/hipify-clang/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,18 @@ class HipifyClang(CMakePackage):
sources into HIP sources"""
homepage = "https://github.com/ROCm-Developer-Tools/HIPIFY"
- url = "https://github.com/ROCm-Developer-Tools/HIPIFY/archive/rocm-3.9.0.tar.gz"
+ git = "https://github.com/ROCm-Developer-Tools/HIPIFY.git"
+ url = "https://github.com/ROCm-Developer-Tools/HIPIFY/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('master', branch='master')
+ version('4.3.1', sha256='c5754f7c2c68ea4f65cc0ffc1e8ccc30634181525b25c10817e07eaa75ca8157')
+ version('4.3.0', sha256='182b336a994e3de0dfbce935dc35091388d18a29e3cfdadb2ab7da8a2dc121a2')
+ version('4.2.0', sha256='afdc82ae00e14e8e742be6cd47d8fb120d18fc52fe96cba8d8ac4c56176a432e')
+ version('4.1.0', sha256='ec9cc410167b6ab31706742f3d7a77dbd29eb548e7371134b3aace8597665475')
+ version('4.0.0', sha256='9d3906d606fca2bcb58f5f2a70cc4b9e298ca0e12a84ee5f18e42b7df97b38a4')
+ version('3.10.0', sha256='7ebba22ed70100150bedddffa08a84f91b546347662862487b6703a1edce2623')
version('3.9.0', sha256='07adb98e91ddd7420d873806866d53eaf77527fac57799e846823522191ba89a')
version('3.8.0', sha256='095b876a750a0dc1ae669102ba53d668f65062b823f8be745411db86a2db7916')
version('3.7.0', sha256='dd58c8b88d4b7877f2521b02954de79d570fa36fc751a17d33e56436ee02571e')
@@ -23,5 +31,6 @@ class HipifyClang(CMakePackage):
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
depends_on('cmake@3.5:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1', 'master']:
depends_on('llvm-amdgpu@' + ver, when='@' + ver)
diff --git a/var/spack/repos/builtin/packages/hipsparse/package.py b/var/spack/repos/builtin/packages/hipsparse/package.py
index c330adbbab..f5219c1d14 100644
--- a/var/spack/repos/builtin/packages/hipsparse/package.py
+++ b/var/spack/repos/builtin/packages/hipsparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,16 @@ class Hipsparse(CMakePackage):
homepage = "https://github.com/ROCmSoftwarePlatform/hipSPARSE"
git = "https://github.com/ROCmSoftwarePlatform/hipSPARSE.git"
- url = "https://github.com/ROCmSoftwarePlatform/hipSPARSE/archive/rocm-3.8.0.tar.gz"
+ url = "https://github.com/ROCmSoftwarePlatform/hipSPARSE/archive/rocm-4.3.0.tar.gz"
- maintainers = ['srekolam', 'arjun-raj-kuppala']
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+ version('4.3.1', sha256='e5757b5213b880237ae0f24616088f79c449c2955cf2133642dbbc9c655f4691')
+ version('4.3.0', sha256='194fbd589ce34471f3255f71ea5fca2d27bee47a464558a86d0713b4d26237ea')
+ version('4.2.0', sha256='cdedf3766c10200d3ebabe86cbb9c0fe6504e4b3317dccca289327d7c189bb3f')
+ version('4.1.0', sha256='66710c390489922f0bd1ac38fd8c32fcfb5b7760b92c2d282f7d1abf214742ee')
+ version('4.0.0', sha256='fc3736b2ea203209021616b2ffbcdd664781d692b07b8e8bb7f78b42dabbd5e5')
+ version('3.10.0', sha256='7fd863ebf6eed09325c23ba06d9008b2f2c1345283d1a331e329e1a512b602f7')
version('3.9.0', sha256='ab0ea3dd9b68a126291ed5a35e50fc85d0aeb35fe862f5d9e544435e4262c435')
version('3.8.0', sha256='8874c100e9ba54587a6057c2a0e555a0903254a16e9e01c2385bae1b027f83b5')
version('3.7.0', sha256='a2f02d8fc6ad9a561f06dacde54ecafd30563c5c95f93819a5694e5b650dad7f')
@@ -24,25 +30,31 @@ class Hipsparse(CMakePackage):
depends_on('cmake@3:', type='build')
depends_on('git', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('rocsparse@' + ver, type='build', when='@' + ver)
- depends_on('hip@' + ver, when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
- for ver in ['3.8.0', '3.9.0']:
- depends_on('rocprim@' + ver, type='link', when='@' + ver)
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('rocsparse@' + ver, when='@' + ver)
+
+ for ver in ['3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0',
+ '4.3.0', '4.3.1']:
+ depends_on('rocprim@' + ver, when='@' + ver)
patch('e79985dccde22d826aceb3badfc643a3227979d2.patch', when='@3.5.0')
patch('530047af4a0f437dafc02f76b3a17e3b1536c7ec.patch', when='@3.5.0')
def cmake_args(self):
args = [
- '-DCMAKE_CXX_STANDARD=14',
- '-DBUILD_CLIENTS_SAMPLES=OFF',
- '-DBUILD_CLIENTS_TESTS=OFF',
+ # Make sure find_package(HIP) finds the module.
+ self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake),
+ self.define('CMAKE_CXX_STANDARD', '14'),
+ self.define('BUILD_CLIENTS_SAMPLES', 'OFF'),
+ self.define('BUILD_CLIENTS_TESTS', 'OFF'),
]
+
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
return args
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/hipsycl/package.py b/var/spack/repos/builtin/packages/hipsycl/package.py
index 02c59bc791..c91d220bf2 100644
--- a/var/spack/repos/builtin/packages/hipsycl/package.py
+++ b/var/spack/repos/builtin/packages/hipsycl/package.py
@@ -1,13 +1,15 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 path
import json
+from os import path
+
from llnl.util import filesystem
+from spack import *
+
class Hipsycl(CMakePackage):
"""hipSYCL is an implementation of the SYCL standard programming model
@@ -23,6 +25,10 @@ class Hipsycl(CMakePackage):
version("stable", branch="stable", submodules=True)
version(
+ "0.9.1",
+ commit="fe8465cd5399a932f7221343c07c9942b0fe644c",
+ submodules=True)
+ version(
"0.8.0",
commit="2daf8407e49dd32ebd1c266e8e944e390d28b22a",
submodules=True,
@@ -35,7 +41,8 @@ class Hipsycl(CMakePackage):
)
depends_on("cmake@3.5:", type="build")
- depends_on("boost +filesystem")
+ depends_on("boost +filesystem", when="@:0.8.99")
+ depends_on("boost@1.67.0:1.69.0 +filesystem +fiber +context cxxstd=17", when='@0.9.1:')
depends_on("python@3:")
depends_on("llvm@8: +clang", when="~cuda")
depends_on("llvm@9: +clang", when="+cuda")
@@ -46,9 +53,14 @@ class Hipsycl(CMakePackage):
conflicts(
"%gcc@:4.9999",
+ when='@:0.9.0',
msg="hipSYCL needs proper C++14 support to be built, %gcc is too old",
)
conflicts(
+ "%gcc@:8.9999",
+ when='@0.9.1:',
+ msg="hipSYCL needs proper C++17 support to be built, %gcc is too old")
+ conflicts(
"^llvm build_type=Debug",
when="+cuda",
msg="LLVM debug builds don't work with hipSYCL CUDA backend; for "
diff --git a/var/spack/repos/builtin/packages/hiredis/package.py b/var/spack/repos/builtin/packages/hiredis/package.py
index 74e4552b2c..2457a36c67 100644
--- a/var/spack/repos/builtin/packages/hiredis/package.py
+++ b/var/spack/repos/builtin/packages/hiredis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hisat2/package.py b/var/spack/repos/builtin/packages/hisat2/package.py
index 834013d666..ec0af3d74d 100644
--- a/var/spack/repos/builtin/packages/hisat2/package.py
+++ b/var/spack/repos/builtin/packages/hisat2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hisea/package.py b/var/spack/repos/builtin/packages/hisea/package.py
index c78fe166a0..ad858936e8 100644
--- a/var/spack/repos/builtin/packages/hisea/package.py
+++ b/var/spack/repos/builtin/packages/hisea/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hive/package.py b/var/spack/repos/builtin/packages/hive/package.py
index a32e08a80c..014047cdb6 100644
--- a/var/spack/repos/builtin/packages/hive/package.py
+++ b/var/spack/repos/builtin/packages/hive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hivex/package.py b/var/spack/repos/builtin/packages/hivex/package.py
new file mode 100644
index 0000000000..83f733f34f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hivex/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 Hivex(AutotoolsPackage):
+ """Windows Registry "hive" extraction library."""
+
+ homepage = "https://libguestfs.org"
+ url = "https://libguestfs.org/download/hivex/hivex-1.3.17.tar.gz"
+
+ version('1.3.19', sha256='5102cc5149767229dbfb436ae7b47dd85b90e0215445e42c2809cbe32e54f762')
+ version('1.3.18', sha256='8a1e788fd9ea9b6e8a99705ebd0ff8a65b1bdee28e319c89c4a965430d0a7445')
+ version('1.3.17', sha256='13cb4b87ab72d74d9e83e56ae0f77152312f33ee772dc84fdd86b2cb9e8c52db')
+
+ depends_on('perl')
diff --git a/var/spack/repos/builtin/packages/hmmer/package.py b/var/spack/repos/builtin/packages/hmmer/package.py
index 9e808a7eb5..63bd6f2f67 100644
--- a/var/spack/repos/builtin/packages/hmmer/package.py
+++ b/var/spack/repos/builtin/packages/hmmer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,8 @@ class Hmmer(Package):
homepage = 'http://www.hmmer.org'
url = 'http://eddylab.org/software/hmmer/hmmer-3.3.tar.gz'
- version('3.3', sha256='0186bf40af67032666014971ed8ddc3cf2834bebc2be5b3bc0304a93e763736c')
+ version('3.3.2', sha256='92fee9b5efe37a5276352d3502775e7c46e9f7a0ee45a331eacb2a0cac713c69')
+ version('3.3', sha256='0186bf40af67032666014971ed8ddc3cf2834bebc2be5b3bc0304a93e763736c')
version('3.2.1', sha256='a56129f9d786ec25265774519fc4e736bbc16e4076946dcbd7f2c16efc8e2b9c')
version('3.1b2', sha256='dd16edf4385c1df072c9e2f58c16ee1872d855a018a2ee6894205277017b5536')
version('3.0', sha256='6977e6473fcb554b1d5a86dc9edffffa53918c1bd88d7fd20d7499f1ba719e83')
diff --git a/var/spack/repos/builtin/packages/hohqmesh/package.py b/var/spack/repos/builtin/packages/hohqmesh/package.py
new file mode 100644
index 0000000000..0fb03d2cb1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hohqmesh/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 Hohqmesh(CMakePackage):
+ """High Order mesh generator for Hexahedral and Quadrilateral meshes."""
+
+ homepage = "https://github.com/trixi-framework/HOHQMesh"
+ url = "https://github.com/trixi-framework/HOHQMesh"
+ git = "https://github.com/trixi-framework/HOHQMesh.git"
+
+ maintainers = ['schoonovernumerics']
+
+ version('main', branch='main')
+ version('v1.0.1', tag='v1.0.1')
+
+ depends_on('ftobjectlibrary')
+
+ parallel = False
diff --git a/var/spack/repos/builtin/packages/homer/package.py b/var/spack/repos/builtin/packages/homer/package.py
index 2f5fffdcce..12ab1f9395 100644
--- a/var/spack/repos/builtin/packages/homer/package.py
+++ b/var/spack/repos/builtin/packages/homer/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 symlink
+from spack import *
+
class Homer(Package):
"""Software for motif discovery and next generation sequencing analysis"""
diff --git a/var/spack/repos/builtin/packages/hoomd-blue/package.py b/var/spack/repos/builtin/packages/hoomd-blue/package.py
index 34d180e5cf..5a44ea6647 100644
--- a/var/spack/repos/builtin/packages/hoomd-blue/package.py
+++ b/var/spack/repos/builtin/packages/hoomd-blue/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class HoomdBlue(CMakePackage):
"""HOOMD-blue is a general-purpose particle simulation toolkit. It scales
@@ -17,7 +18,7 @@ class HoomdBlue(CMakePackage):
to create custom initialization routines, control simulation parameters,
and perform in situ analysis."""
- homepage = "http://glotzerlab.engin.umich.edu/hoomd-blue/"
+ homepage = "https://glotzerlab.engin.umich.edu/hoomd-blue/"
git = "https://bitbucket.org/glotzer/hoomd-blue.git"
version('develop', submodules=True)
diff --git a/var/spack/repos/builtin/packages/hotspot/package.py b/var/spack/repos/builtin/packages/hotspot/package.py
index 99a79d771e..053bb0702f 100644
--- a/var/spack/repos/builtin/packages/hotspot/package.py
+++ b/var/spack/repos/builtin/packages/hotspot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hpcc/package.py b/var/spack/repos/builtin/packages/hpcc/package.py
index b8888513db..11b34b8fb1 100644
--- a/var/spack/repos/builtin/packages/hpcc/package.py
+++ b/var/spack/repos/builtin/packages/hpcc/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 re
import platform
+import re
+
+from spack import *
class Hpcc(MakefilePackage):
@@ -32,8 +33,8 @@ class Hpcc(MakefilePackage):
latency and bandwidth of a number of simultaneous communication
patterns; based on b_eff (effective bandwidth benchmark)."""
- homepage = "http://icl.cs.utk.edu/hpcc"
- url = "http://icl.cs.utk.edu/projectsfiles/hpcc/download/hpcc-1.5.0.tar.gz"
+ homepage = "https://icl.cs.utk.edu/hpcc"
+ url = "https://icl.cs.utk.edu/projectsfiles/hpcc/download/hpcc-1.5.0.tar.gz"
git = "https://github.com/icl-utk-edu/hpcc.git"
version('develop', branch='main')
diff --git a/var/spack/repos/builtin/packages/hpccg/package.py b/var/spack/repos/builtin/packages/hpccg/package.py
index a93c585266..2c29fcbae6 100644
--- a/var/spack/repos/builtin/packages/hpccg/package.py
+++ b/var/spack/repos/builtin/packages/hpccg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Hpccg(MakefilePackage):
"""
homepage = "https://mantevo.org/about/applications/"
- url = "http://downloads.mantevo.org/releaseTarballs/miniapps/HPCCG/HPCCG-1.0.tar.gz"
+ url = "https://downloads.mantevo.org/releaseTarballs/miniapps/HPCCG/HPCCG-1.0.tar.gz"
tags = ['proxy-app']
diff --git a/var/spack/repos/builtin/packages/hpcg/package.py b/var/spack/repos/builtin/packages/hpcg/package.py
index 4de150cda2..faf22d712b 100644
--- a/var/spack/repos/builtin/packages/hpcg/package.py
+++ b/var/spack/repos/builtin/packages/hpcg/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Hpcg(AutotoolsPackage):
"""HPCG is a software package that performs a fixed number of multigrid
@@ -14,7 +15,7 @@ class Hpcg(AutotoolsPackage):
(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"
+ url = "https://www.hpcg-benchmark.org/downloads/hpcg-3.1.tar.gz"
git = "https://github.com/hpcg-benchmark/hpcg.git"
version('develop', branch='master')
@@ -23,6 +24,7 @@ class Hpcg(AutotoolsPackage):
variant('openmp', default=True, description='Enable OpenMP support')
patch('https://github.com/hpcg-benchmark/hpcg/commit/e9e0b7e6cae23e1f30dd983c2ce2d3bd34d56f75.patch', sha256='23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', when='%gcc@9:')
+ patch('https://github.com/hpcg-benchmark/hpcg/commit/e9e0b7e6cae23e1f30dd983c2ce2d3bd34d56f75.patch', sha256='23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', when='%aocc')
depends_on('mpi@1.1:')
@@ -30,8 +32,9 @@ class Hpcg(AutotoolsPackage):
build_targets = ['arch={0}'.format(arch)]
def configure(self, spec, prefix):
- CXXFLAGS = '-O3 -ffast-math '
- CXXFLAGS += '-ftree-vectorize -ftree-vectorizer-verbose=0 '
+ CXXFLAGS = '-O3 -ffast-math -ftree-vectorize '
+ if '%aocc' not in self.spec:
+ CXXFLAGS += ' -ftree-vectorizer-verbose=0 '
if '+openmp' in self.spec:
CXXFLAGS += self.compiler.openmp_flag
config = [
diff --git a/var/spack/repos/builtin/packages/hpctoolkit/gcc10-enum.patch b/var/spack/repos/builtin/packages/hpctoolkit/gcc10-enum.patch
new file mode 100644
index 0000000000..c2ae786c3e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hpctoolkit/gcc10-enum.patch
@@ -0,0 +1,15 @@
+See: https://github.com/HPCToolkit/hpctoolkit/issues/309
+
+diff --git a/src/tool/hpcrun/gpu/gpu-metrics.h b/src/tool/hpcrun/gpu/gpu-metrics.h
+index ea0958156..fa3bceab1 100644
+--- a/src/tool/hpcrun/gpu/gpu-metrics.h
++++ b/src/tool/hpcrun/gpu/gpu-metrics.h
+@@ -61,7 +61,7 @@
+ //*****************************************************************************
+
+
+-enum {
++typedef enum {
+ GPU_INST_STALL_ANY = 0
+ } gpu_inst_stall_all_t;
+
diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py
index 44b85d4e11..e0bfe50332 100644
--- a/var/spack/repos/builtin/packages/hpctoolkit/package.py
+++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,6 +20,8 @@ class Hpctoolkit(AutotoolsPackage):
version('develop', branch='develop')
version('master', branch='master')
+ version('2021.05.15', commit='004ea0c2aea6a261e7d5d216c24f8a703fc6c408')
+ version('2021.03.01', commit='68a051044c952f0f4dac459d9941875c700039e7')
version('2020.08.03', commit='d9d13c705d81e5de38e624254cf0875cce6add9a')
version('2020.07.21', commit='4e56c780cffc53875aca67d6472a2fb3678970eb')
version('2020.06.12', commit='ac6ae1156e77d35596fea743ed8ae768f7222f19')
@@ -55,44 +57,76 @@ class Hpctoolkit(AutotoolsPackage):
variant('cuda', default=False,
description='Support CUDA on NVIDIA GPUs (2020.03.01 or later).')
+ variant('rocm', default=False,
+ description='Support ROCM on AMD GPUs, requires ROCM as '
+ 'external packages (2021.03.01 or later).')
+
+ variant('debug', default=False,
+ description='Build in debug (develop) mode.')
+
+ variant('viewer', default=True, description='Include hpcviewer.')
+
boost_libs = (
'+atomic +chrono +date_time +filesystem +system +thread +timer'
' +graph +regex +shared +multithreaded visibility=global'
)
- depends_on('binutils+libiberty~nls', type='link', when='@2020.04.00:')
- depends_on('binutils@:2.33.1+libiberty~nls', type='link', when='@:2020.03.99')
+ depends_on('binutils +libiberty', type='link', when='@2021.00:')
+ depends_on('binutils +libiberty~nls', type='link', when='@2020.04:2020.99')
+ depends_on('binutils@:2.33.1 +libiberty~nls', type='link', when='@:2020.03.99')
depends_on('boost' + boost_libs)
depends_on('bzip2+shared', type='link')
- depends_on('dyninst@9.3.2:')
+ depends_on('dyninst@10.2.0:', when='@2021.00:')
+ depends_on('dyninst@9.3.2:', when='@:2020.99')
depends_on('elfutils+bzip2+xz~nls', type='link')
depends_on('gotcha@1.0.3:')
depends_on('intel-tbb+shared')
depends_on('libdwarf')
- depends_on('libmonitor+hpctoolkit')
- depends_on('libunwind@1.4: +xz+pic', when='@2020.09.00:')
- depends_on('libunwind@1.4: +xz', when='@:2020.08.99')
+ depends_on('libmonitor+hpctoolkit~dlopen', when='@2021.00:')
+ depends_on('libmonitor+hpctoolkit+dlopen', when='@:2020.99')
+ depends_on('libunwind@1.4: +xz+pic')
depends_on('mbedtls+pic')
depends_on('xerces-c transcoder=iconv')
- depends_on('xz+pic', type='link', when='@2020.09.00:')
- depends_on('xz', type='link', when='@:2020.08.99')
+ depends_on('xz+pic', type='link')
depends_on('zlib+shared')
depends_on('cuda', when='+cuda')
depends_on('intel-xed', when='target=x86_64:')
+ depends_on('memkind', type=('build', 'run'), when='@2021.05.01:')
depends_on('papi', when='+papi')
depends_on('libpfm4', when='~papi')
depends_on('mpi', when='+mpi')
+ depends_on('hpcviewer', type='run', when='+viewer')
+
+ depends_on('hip', when='+rocm')
+ depends_on('rocm-dbgapi', when='+rocm')
+ depends_on('roctracer-dev', when='+rocm')
conflicts('%gcc@:4.7.99', when='^dyninst@10.0.0:',
msg='hpctoolkit requires gnu gcc 4.8.x or later')
- conflicts('%gcc@:4.99.99', when='@2020.03.01:',
+ conflicts('%gcc@:4.99.99', when='@2020.03:2020.99',
msg='hpctoolkit requires gnu gcc 5.x or later')
- conflicts('+cuda', when='@2018.0.0:2019.99.99',
+ conflicts('%gcc@:6.99.99', when='@2021.00:',
+ msg='hpctoolkit requires gnu gcc 7.x or later')
+
+ conflicts('+cuda', when='@:2019.99.99',
msg='cuda requires 2020.03.01 or later')
+ conflicts('+rocm', when='@:2020.99.99',
+ msg='rocm requires 2021.03.01 or later')
+
+ conflicts('^binutils@2.35:2.35.1',
+ msg='avoid binutils 2.35 and 2.35.1 (spews errors)')
+
+ # Fix the build for old revs with gcc 10.x.
+ patch('gcc10-enum.patch', when='@2020.01.01:2020.08.99 %gcc@10.0:')
+
+ patch('https://github.com/HPCToolkit/hpctoolkit/commit/511afd95b01d743edc5940c84e0079f462b2c23e.patch',
+ sha256='fd0fd7419f66a1feba8046cff9df7f27abce8629ee2708b8a9daa12c1b51243c',
+ when='@2019.08.01:2021.03.99 %gcc@11.0:')
+
flag_handler = AutotoolsPackage.build_system_flags
def configure_args(self):
@@ -121,11 +155,21 @@ class Hpctoolkit(AutotoolsPackage):
if spec.target.family == 'x86_64':
args.append('--with-xed=%s' % spec['intel-xed'].prefix)
- if '+papi' in spec:
+ if spec.satisfies('@2021.05.01:'):
+ args.append('--with-memkind=%s' % spec['memkind'].prefix)
+
+ if spec.satisfies('+papi'):
args.append('--with-papi=%s' % spec['papi'].prefix)
else:
args.append('--with-perfmon=%s' % spec['libpfm4'].prefix)
+ if spec.satisfies('+rocm'):
+ args.extend([
+ '--with-rocm-hip=%s' % spec['hip'].prefix,
+ '--with-rocm-dbgapi=%s' % spec['rocm-dbgapi'].prefix,
+ '--with-rocm-tracer=%s' % spec['roctracer-dev'].prefix,
+ ])
+
# MPI options for hpcprof-mpi.
if '+cray' in spec:
args.extend([
@@ -138,4 +182,20 @@ class Hpctoolkit(AutotoolsPackage):
if '+all-static' in spec:
args.append('--enable-all-static')
+ if spec.satisfies('+debug'):
+ args.append('--enable-develop')
+
return args
+
+ # We only want hpctoolkit and hpcviewer paths and man paths in the
+ # module file. The run dependencies are all curried into hpctoolkit
+ # and we don't want to risk exposing a package if the application
+ # uses a different version of the same package.
+ def setup_run_environment(self, env):
+ spec = self.spec
+ env.clear()
+ env.prepend_path('PATH', spec.prefix.bin)
+ env.prepend_path('MANPATH', spec.prefix.share.man)
+ if '+viewer' in spec:
+ env.prepend_path('PATH', spec['hpcviewer'].prefix.bin)
+ env.prepend_path('MANPATH', spec['hpcviewer'].prefix.share.man)
diff --git a/var/spack/repos/builtin/packages/hpcviewer/package.py b/var/spack/repos/builtin/packages/hpcviewer/package.py
index 0de66bbf83..bed41bdc16 100644
--- a/var/spack/repos/builtin/packages/hpcviewer/package.py
+++ b/var/spack/repos/builtin/packages/hpcviewer/package.py
@@ -1,11 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
import platform
+from spack import *
+
# The viewer and trace viewer tar files and sha256sum depend on the
# version and machine type. Starting with 2019.08, the name of the
@@ -28,7 +30,7 @@ def trace_url(ver, mach):
class Hpcviewer(Package):
"""Binary distribution of hpcviewer and hpctraceviewer for the Rice
- HPCToolkit (Linux x86_64, ppc64 and ppc64le). Note: hpctoolkit
+ HPCToolkit (Linux x86_64, ppc64le and aarch64). Note: hpctoolkit
databases are platform independent, so you don't need to install
hpctoolkit to run the viewers and it's common to run hpcrun and
hpcviewer on different machines."""
@@ -37,6 +39,17 @@ class Hpcviewer(Package):
maintainers = ['mwkrentel']
viewer_sha = {
+ ('2021.05', 'aarch64'): 'a500bf14be14ca9b08a8382f1d122f59b45690b6a567df0932fc2cabd6382a9a',
+ ('2021.05', 'ppc64le'): 'd39f9f6556abcd5a184db242711b72b2e8571d0b78bb08d0e497fd4e6dbe87a1',
+ ('2021.05', 'x86_64'): 'f316c1fd0b134c96392cd4eb5e5aa2bffa36bd449f401d8fe950ab4f761c34ab',
+ ('2021.03', 'aarch64'): '1b1f7f51a319a159aa96dee21b2cd77ee23b01df263ea122980fa1567e4dab8d',
+ ('2021.03', 'ppc64le'): '8fc4683a9e61263ac78fe35391930b0cdc8e84dd50f8d41dcd0c6d8072b02937',
+ ('2021.03', 'x86_64'): '40b4453fe662b896a853d869486b481ded0d29abdf5e50aab2d8f3bdf8940b04',
+ ('2021.01', 'aarch64'): 'fe797a1c97943f7509c36a570198291e674cd4a793c1d6538a2761d66542dc52',
+ ('2021.01', 'ppc64le'): 'ba4035de2ae208280c3744000ea08d2d7f8c31bd7095f722e442ddc289648063',
+ ('2021.01', 'x86_64'): '99eba4e1c613203c4658f2874d0e79e1620db7a22ac7dcb810801886ba9f8a79',
+ ('2020.12', 'ppc64le'): 'ce0d741aa8849621c03183dbf11a0dc1f6d296e3de80e25976a7f2a2750899c4',
+ ('2020.12', 'x86_64'): '29c5e1427893f0652e863fd6d54a8585077662597e5073532ec9f3b116626498',
('2020.07', 'x86_64'): '19951662626c7c9817c4a75269c85810352dc48ae9a62dfb6ce4a5b502de2118',
('2020.07', 'ppc64'): '3f5d9358ef8ff9ba4f6dcaa4d7132f41ba55f0c132d9fd1e2f6da18341648a4e',
('2020.07', 'ppc64le'): 'e236a8578dc247279d1021aa35bac47e2d4864b906efcef76c0610ee0086b353',
@@ -109,16 +122,20 @@ class Hpcviewer(Package):
}
for key in viewer_sha.keys():
- if key in trace_sha and key[1] == platform.machine():
+ if key[1] == platform.machine():
version(key[0], url=viewer_url(*key), sha256=viewer_sha[key])
- resource(name='hpctraceviewer', url=trace_url(*key),
- sha256=trace_sha[key], placement='TRACE',
- when='@{0}'.format(key[0]))
+ # Current versions include the viewer and trace viewer in
+ # one tar file. Before 2020.07, the trace viewer was a
+ # separate tar file (resource).
+ if key in trace_sha:
+ resource(name='hpctraceviewer', url=trace_url(*key),
+ sha256=trace_sha[key], placement='TRACE',
+ when='@{0}'.format(key[0]))
- depends_on('java@8', type=('build', 'run'))
+ depends_on('java@11:', type=('build', 'run'), when='@2021.0:')
+ depends_on('java@8', type=('build', 'run'), when='@:2020.99')
- conflicts('target=aarch64:', msg='hpcviewer is not available on arm')
conflicts('platform=darwin', msg='hpcviewer requires a manual install on MacOS, see homepage')
# Both hpcviewer and trace viewer have an install script.
@@ -128,10 +145,16 @@ class Hpcviewer(Package):
prefix
]
- inst = Executable(join_path('.', 'install'))
- inst(*args)
-
- cd('TRACE')
+ # Sometimes the script is install.sh, sometimes install.
+ inst_path = join_path('.', 'install.sh')
+ if not os.path.exists(inst_path):
+ inst_path = join_path('.', 'install')
- inst = Executable(join_path('.', 'install'))
+ inst = Executable(inst_path)
inst(*args)
+
+ # Older versions used a separate resource for the traceviewer.
+ if os.path.isdir('TRACE'):
+ cd('TRACE')
+ inst = Executable(inst_path)
+ inst(*args)
diff --git a/var/spack/repos/builtin/packages/hpcx-mpi/package.py b/var/spack/repos/builtin/packages/hpcx-mpi/package.py
new file mode 100644
index 0000000000..01d6b55080
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hpcx-mpi/package.py
@@ -0,0 +1,43 @@
+# Copyright 2013-2021 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)
+
+import os
+
+
+class HpcxMpi(Package):
+ """The HPC-X MPI implementation from NVIDIA/Mellanox based on OpenMPI.
+ This package is for external specs only."""
+
+ homepage = "https://developer.nvidia.com/networking/hpc-x"
+ maintainers = ['mwkrentel']
+
+ has_code = False
+
+ provides('mpi')
+
+ def install(self, spec, prefix):
+ raise InstallError('HPC-X MPI is not buildable, it is for external '
+ 'specs only.')
+
+ def setup_dependent_package(self, module, dependent_spec):
+ # This works for AOCC (AMD), Intel and GNU.
+ self.spec.mpicc = os.path.join(self.prefix.bin, 'mpicc')
+ self.spec.mpicxx = os.path.join(self.prefix.bin, 'mpicxx')
+ self.spec.mpif77 = os.path.join(self.prefix.bin, 'mpif77')
+ self.spec.mpifc = os.path.join(self.prefix.bin, 'mpif90')
+
+ def make_base_environment(self, prefix, env):
+ env.set('MPICC', os.path.join(prefix.bin, 'mpicc'))
+ env.set('MPICXX', os.path.join(prefix.bin, 'mpicxx'))
+ env.set('MPIF77', os.path.join(prefix.bin, 'mpif77'))
+ env.set('MPIF90', os.path.join(prefix.bin, 'mpif90'))
+ env.prepend_path('LD_LIBRARY_PATH', prefix.lib)
+ env.set('OPAL_PREFIX', prefix)
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ self.make_base_environment(self.prefix, env)
+
+ def setup_run_environment(self, env):
+ self.make_base_environment(self.prefix, env)
diff --git a/var/spack/repos/builtin/packages/hpddm/package.py b/var/spack/repos/builtin/packages/hpddm/package.py
new file mode 100644
index 0000000000..f2b6794777
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hpddm/package.py
@@ -0,0 +1,75 @@
+# Copyright 2013-2021 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 Hpddm(Package):
+ """High-performance unified framework for domain decomposition methods."""
+
+ homepage = "https://github.com/hpddm/hpddm"
+ url = "https://github.com/hpddm/hpddm"
+ git = "https://github.com/hpddm/hpddm.git"
+
+ maintainers = ['corentin-dev']
+
+ version('main', branch='main')
+ version('2.1.2', commit='e58205623814f59bf2aec2e2bab8eafcfbd22466')
+
+ depends_on('mpi')
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('mumps')
+ depends_on('hypre')
+ depends_on('scalapack')
+ depends_on('arpack-ng')
+ depends_on('python')
+
+ def configure(self):
+ makefile_inc = []
+ # cflags = [
+ makefile_inc.append('SOLVER ?= MUMPS')
+ makefile_inc.append('SUBSOLVER ?= MUMPS')
+ makefile_inc.append('EIGENSOLVER ?= ARPACK')
+ makefile_inc.append('MPICXX ?= mpic++')
+ makefile_inc.append('MPICC ?= mpicc')
+ makefile_inc.append('MPIF90 ?= mpif90')
+ makefile_inc.append('MPIRUN ?= mpirun -np')
+
+ makefile_inc.append('override CXXFLAGS += -std=c++11 -O3 -fPIC')
+ makefile_inc.append('override CFLAGS += -std=c99 -O3')
+ makefile_inc.append('INCS =')
+ makefile_inc.append('LIBS =')
+
+ makefile_inc.append("HPDDMFLAGS ?= -DHPDM_NUMBERING=\'C\'")
+
+ makefile_inc.append('MUMPS_INCS = ')
+ makefile_inc.append('PYTHON_INCS = ')
+ makefile_inc.append('BLAS_LIBS = -lopenblas')
+ makefile_inc.append('ARPACK_LIBS = -larpack')
+ makefile_inc.append('SCALAPACK_LIBS = -lscalapack')
+ makefile_inc.append(' '.join([
+ 'MUMPS_LIBS', '=',
+ '-lcmumps',
+ '-ldmumps',
+ '-lsmumps',
+ '-lzmumps',
+ '-lmumps_common',
+ '-lpord',
+ '-fopenmp']))
+ makefile_inc.append('HYPRE_LIBS = -lHYPRE')
+ makefile_inc.append('PYTHON_LIBS = -lpython3')
+
+ with working_dir('.'):
+ with open('Makefile.inc', 'w') as fh:
+ fh.write('\n'.join(makefile_inc))
+
+ def patch(self):
+ self.configure()
+
+ def install(self, spec, prefix):
+ make()
+ install_tree('include', prefix.include)
+ # make('install')
diff --git a/var/spack/repos/builtin/packages/hpgmg/package.py b/var/spack/repos/builtin/packages/hpgmg/package.py
index f5567ba2c9..baa2fba510 100644
--- a/var/spack/repos/builtin/packages/hpgmg/package.py
+++ b/var/spack/repos/builtin/packages/hpgmg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hping/package.py b/var/spack/repos/builtin/packages/hping/package.py
index bc70bbaa66..0959090e9f 100644
--- a/var/spack/repos/builtin/packages/hping/package.py
+++ b/var/spack/repos/builtin/packages/hping/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hpl/package.py b/var/spack/repos/builtin/packages/hpl/package.py
index 834f05349d..8b7c96ddce 100644
--- a/var/spack/repos/builtin/packages/hpl/package.py
+++ b/var/spack/repos/builtin/packages/hpl/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Hpl(AutotoolsPackage):
"""HPL is a software package that solves a (random) dense linear system
@@ -14,8 +15,8 @@ class Hpl(AutotoolsPackage):
It can thus be regarded as a portable as well as freely available
implementation of the High Performance Computing Linpack Benchmark."""
- homepage = "http://www.netlib.org/benchmark/hpl/"
- url = "http://www.netlib.org/benchmark/hpl/hpl-2.2.tar.gz"
+ homepage = "https://www.netlib.org/benchmark/hpl/"
+ url = "https://www.netlib.org/benchmark/hpl/hpl-2.2.tar.gz"
# Note: HPL uses autotools starting with 2.3
@@ -112,6 +113,7 @@ class Hpl(AutotoolsPackage):
config = ['CFLAGS=-O3']
if (self.spec.satisfies('^intel-mkl') or
+ self.spec.satisfies('^intel-oneapi-mkl') or
self.spec.satisfies('^intel-parallel-studio+mkl')):
config.append('LDFLAGS={0}'.format(
self.spec['blas'].libs.ld_flags))
diff --git a/var/spack/repos/builtin/packages/hpx/package.py b/var/spack/repos/builtin/packages/hpx/package.py
index 80f29a2a81..7767744b42 100644
--- a/var/spack/repos/builtin/packages/hpx/package.py
+++ b/var/spack/repos/builtin/packages/hpx/package.py
@@ -1,14 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
-class Hpx(CMakePackage, CudaPackage):
+class Hpx(CMakePackage, CudaPackage, ROCmPackage):
"""C++ runtime system for parallel and distributed applications."""
homepage = "https://hpx.stellar-group.org/"
@@ -17,6 +18,9 @@ class Hpx(CMakePackage, CudaPackage):
version('master', git='https://github.com/STEllAR-GROUP/hpx.git', branch='master')
version('stable', git='https://github.com/STEllAR-GROUP/hpx.git', tag='stable')
+ version('1.7.1', sha256='008a0335def3c551cba31452eda035d7e914e3e4f77eec679eea070ac71bd83b')
+ version('1.7.0', sha256='05099b860410aa5d8a10d6915b1a8818733aa1aa2d5f2b9774730ca7e6de5fac')
+ version('1.6.0', sha256='4ab715613c1e1808edc93451781cc9bc98feec4e422ccd4322858a680f6d9017')
version('1.5.1', sha256='b2f9358ce2a9446b9d8fb1998c30913e7199b007aa82e46d0aa05c763331c635')
version('1.5.0', sha256='de2901d8ae017592c513e0af9cf58de295abc9802e55ece00424cbd8a3801920')
version('1.4.1', sha256='965dabe44d17480e326d92da4eec56722d98b33943c53d2b0f8f4655cb208023')
@@ -26,9 +30,13 @@ class Hpx(CMakePackage, CudaPackage):
version('1.2.0', sha256='20942314bd90064d9775f63b0e58a8ea146af5260a4c84d0854f9f968077c170')
version('1.1.0', sha256='1f28bbe58d8f0da600d60c3a74a644d75ac777b20a018a5c1c6030a470e8a1c9')
+ generator = 'Ninja'
+
+ map_cxxstd = lambda cxxstd: '2a' if cxxstd == '20' else cxxstd
+ cxxstds = ('11', '14', '17', '20')
variant('cxxstd',
default='17',
- values=('11', '14', '17'),
+ values=cxxstds,
description='Use the specified C++ standard when building.')
variant(
@@ -64,56 +72,91 @@ class Hpx(CMakePackage, CudaPackage):
variant('async_mpi', default=False, description='Enable MPI Futures.')
variant('async_cuda', default=False, description='Enable CUDA Futures.')
- depends_on('hwloc')
+ # Build dependencies
depends_on('python', type=('build', 'test', 'run'))
+ depends_on('ninja', type='build')
depends_on('pkgconfig', type='build')
depends_on('git', type='build')
+ depends_on('cmake', type='build')
- # Recommended dependency versions for 1.2.X
- depends_on('cmake@3.9.0:', when='@:1.2.1', type='build')
- depends_on('boost@1.62.0:', when='@:1.2.1')
- depends_on('hwloc@1.11:', when='@:1.2.1')
-
- # Recommended dependency versions before 1.2
- depends_on('boost@1.55.0:', when='@:1.1.0')
- depends_on('hwloc@1.6:', when='@:1.1.0')
-
- # boost 1.73.0 build problem with HPX 1.4.0 and 1.4.1
- # https://github.com/STEllAR-GROUP/hpx/issues/4728#issuecomment-640685308
- depends_on('boost@:1.72.0', when='@:1.4')
-
- # COROUTINES
- # ~generic_coroutines conflict is not fully implemented
- # for additional information see:
- # https://github.com/spack/spack/pull/17654
- # https://github.com/STEllAR-GROUP/hpx/issues/4829
- depends_on('boost+context', when='+generic_coroutines')
- _msg_generic_coroutines = 'This platform requires +generic_coroutines'
- conflicts('~generic_coroutines', when='platform=darwin', msg=_msg_generic_coroutines)
-
- # CXX Standard
- depends_on('boost cxxstd=11', when='cxxstd=11')
- depends_on('boost cxxstd=14', when='cxxstd=14')
- depends_on('boost cxxstd=17', when='cxxstd=17')
+ # Other dependecies
+ depends_on('hwloc')
+ depends_on('boost')
+ for cxxstd in cxxstds:
+ depends_on(
+ "boost cxxstd={0}".format(map_cxxstd(cxxstd)),
+ when="cxxstd={0}".format(cxxstd)
+ )
+ depends_on('asio', when='@1.7:')
+ for cxxstd in cxxstds:
+ depends_on(
+ "asio cxxstd={0}".format(map_cxxstd(cxxstd)),
+ when="cxxstd={0} ^asio".format(cxxstd),
+ )
- # Malloc
depends_on('gperftools', when='malloc=tcmalloc')
depends_on('jemalloc', when='malloc=jemalloc')
depends_on('tbb', when='malloc=tbbmalloc')
- # MPI
depends_on('mpi', when='networking=mpi')
depends_on('mpi', when='+async_mpi')
- # CUDA
depends_on('cuda', when='+async_cuda')
- # Instrumentation
depends_on('otf2', when='instrumentation=apex')
depends_on('gperftools', when='instrumentation=google_perftools')
depends_on('papi', when='instrumentation=papi')
depends_on('valgrind', when='instrumentation=valgrind')
+ # Restrictions for stable/master
+ with when("@master"):
+ conflicts("cxxstd=14")
+ depends_on("cuda@11:", when="+cuda")
+
+ with when("@stable"):
+ conflicts("cxxstd=14")
+ depends_on("cuda@11:", when="+cuda")
+
+ # Restrictions for 1.7.X
+ with when('@1.7:'):
+ depends_on('cmake@3.18.0:', type='build')
+ depends_on('boost@1.71.0:')
+ depends_on('asio@1.12.0:')
+ conflicts('%gcc@:6')
+ conflicts('%clang@:6')
+
+ # Restrictions for 1.6.X
+ conflicts('+rocm', when='@:1.5')
+
+ # Restrictions for 1.5.x
+ conflicts('cxxstd=11', when='@1.5:')
+
+ # Restrictions for 1.2.X
+ with when('@:1.2.1'):
+ depends_on('cmake@3.9.0:', type='build')
+ depends_on('boost@1.62.0:')
+ depends_on('hwloc@1.11:')
+
+ # Restrictions before 1.2
+ with when('@:1.1.0'):
+ depends_on('boost@1.55.0:')
+ depends_on('hwloc@1.6:')
+
+ # Patches and one-off conflicts
+
+ # boost 1.73.0 build problem with HPX 1.4.0 and 1.4.1
+ # https://github.com/STEllAR-GROUP/hpx/issues/4728#issuecomment-640685308
+ depends_on('boost@:1.72.0', when='@:1.4')
+
+ # COROUTINES
+ # ~generic_coroutines conflict is not fully implemented
+ # for additional information see:
+ # https://github.com/spack/spack/pull/17654
+ # https://github.com/STEllAR-GROUP/hpx/issues/4829
+ depends_on('boost+context', when='+generic_coroutines')
+ _msg_generic_coroutines = 'This platform requires +generic_coroutines'
+ conflicts('~generic_coroutines', when='platform=darwin', msg=_msg_generic_coroutines)
+
# Patches APEX
patch('git_external.patch', when='@1.3.0 instrumentation=apex')
@@ -135,6 +178,7 @@ class Hpx(CMakePackage, CudaPackage):
self.define_from_variant('HPX_WITH_MALLOC', 'malloc'),
self.define_from_variant('HPX_WITH_CUDA', 'cuda'),
+ self.define_from_variant('HPX_WITH_HIP', 'rocm'),
self.define_from_variant('HPX_WITH_TOOLS', 'tools'),
self.define_from_variant('HPX_WITH_EXAMPLES', 'examples'),
self.define_from_variant('HPX_WITH_ASYNC_MPI', 'async_mpi'),
@@ -157,6 +201,16 @@ class Hpx(CMakePackage, CudaPackage):
self.define('HPX_DATASTRUCTURES_WITH_ADAPT_STD_TUPLE', False),
]
+ # Enable unity builds when available
+ if spec.satisfies("@1.7:"):
+ args += [self.define('HPX_WITH_UNITY_BUILD', True)]
+
+ # HIP support requires compiling with hipcc
+ if '+rocm' in self.spec:
+ args += [self.define('CMAKE_CXX_COMPILER', self.spec['hip'].hipcc)]
+ if self.spec.satisfies('^cmake@3.21:'):
+ args += [self.define('__skip_rocmclang', True)]
+
# Instrumentation
args += self.instrumentation_args()
@@ -166,4 +220,8 @@ class Hpx(CMakePackage, CudaPackage):
self.define('OTF2_ROOT', spec['otf2'].prefix),
]
+ # it seems like there was a bug in the default version of APEX in 1.5.x
+ if spec.satisfies("@1.5"):
+ args += [self.define('HPX_WITH_APEX_TAG', "v2.3.0")]
+
return args
diff --git a/var/spack/repos/builtin/packages/hpx5/package.py b/var/spack/repos/builtin/packages/hpx5/package.py
index 78dbf25ec7..bd09957cfc 100644
--- a/var/spack/repos/builtin/packages/hpx5/package.py
+++ b/var/spack/repos/builtin/packages/hpx5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py b/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py
index b43627e09f..a33891bf3e 100644
--- a/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py
+++ b/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,23 +14,40 @@ class HsaRocrDev(CMakePackage):
Linux HSA Runtime for Boltzmann (ROCm) platforms."""
homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime"
- url = "https://github.com/RadeonOpenCompute/ROCR-Runtime/archive/rocm-3.9.0.tar.gz"
+ git = "https://github.com/RadeonOpenCompute/ROCR-Runtime.git"
+ url = "https://github.com/RadeonOpenCompute/ROCR-Runtime/archive/rocm-4.3.1.tar.gz"
- maintainers = ['srekolam', 'arjun-raj-kuppala']
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+ version('master', branch='master')
+ version('4.3.1', sha256='85fbd1645120b71635844090ce8bd9f7af0a3d1065d5fae476879f99ba0c0475')
+ version('4.3.0', sha256='2a08657a517971447fc233cb2c8ee2e117c6ab5efc31af147b28b3ef59b3847d')
+ version('4.2.0', sha256='fa0e7bcd64e97cbff7c39c9e87c84a49d2184dc977b341794770805ec3f896cc')
+ version('4.1.0', sha256='c223a5f7ccac280520abb6ea49fdd36fa9468718098a9d984be6ef839ccbc6db')
+ version('4.0.0', sha256='e84c48e80ea38698a5bd5da3940048ad3cab3696d10a53132acad07ca357f17c')
+ version('3.10.0', sha256='58866d8acdb6cc45227f2412098e37c65908b20ed3dd54901dfb515c15ad5f71')
version('3.9.0', sha256='d722fb61f62037894957856f2c2d17231c4622bdf75db372321ee30206dceeb6')
version('3.8.0', sha256='1dfad4d89d6c099e15073ed38e083bcf6cc463470dcc8a1e1b9e22060c060c72')
version('3.7.0', sha256='0071d14431f73ce74574e61d0786f2b7cf34b14ea898a1f54b6e1b06b2d468c0')
version('3.5.0', sha256='52c12eec3e3404c0749c70f156229786ee0c3e6d3c979aed9bbaea500fa1f3b8')
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
+ variant('shared', default=True, description='Build shared or static library')
+ variant('image', default=True, description='build with or without image support')
depends_on('cmake@3:', type="build")
+
+ # Note, technically only necessary when='@3.7: +image', but added to all
+ # to work around https://github.com/spack/spack/issues/23951
+ depends_on('xxd', when='+image', type='build')
depends_on('libelf@0.8:', type='link')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hsakmt-roct@' + ver, type=('link', 'run'), when='@' + ver)
- for ver in ['3.7.0', '3.8.0', '3.9.0']:
- depends_on('llvm-amdgpu@' + ver, type=('link', 'run'), when='@' + ver)
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1', 'master']:
+ depends_on('hsakmt-roct@' + ver, when='@' + ver)
+ depends_on('llvm-amdgpu@' + ver, when='@' + ver)
+ # allow standalone rocm-device-libs (useful for aomp)
+ depends_on('rocm-device-libs@' + ver, when='@{0} ^llvm-amdgpu ~rocm-device-libs'.format(ver))
# Both 3.5.0 and 3.7.0 force INSTALL_RPATH in different ways
patch('0001-Do-not-set-an-explicit-rpath-by-default-since-packag.patch', when='@3.5.0')
@@ -39,10 +56,23 @@ class HsaRocrDev(CMakePackage):
root_cmakelists_dir = 'src'
def cmake_args(self):
- libelf_include = self.spec['libelf'].prefix.include.libelf
- args = ['-DLIBELF_INCLUDE_DIRS=%s' % libelf_include]
+ spec = self.spec
+
+ libelf_include = spec['libelf'].prefix.include.libelf
+ args = [
+ self.define('LIBELF_INCLUDE_DIRS', libelf_include),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared')
+ ]
+
+ if '@3.7.0:' in spec:
+ args.append(self.define_from_variant('IMAGE_SUPPORT', 'image'))
+
+ # device libs is bundled with llvm-amdgpu (default) or standalone
+ if '^rocm-device-libs' in spec:
+ bitcode_dir = spec['rocm-device-libs'].prefix.amdgcn.bitcode
+ else:
+ bitcode_dir = spec['llvm-amdgpu'].prefix.amdgcn.bitcode
- if '@3.7.0:' in self.spec:
- args.append('-DIMAGE_SUPPORT=OFF')
+ args.append(self.define('BITCODE_DIR', bitcode_dir))
return args
diff --git a/var/spack/repos/builtin/packages/hsakmt-roct/package.py b/var/spack/repos/builtin/packages/hsakmt-roct/package.py
index 2b000f8c10..bc3df20c93 100644
--- a/var/spack/repos/builtin/packages/hsakmt-roct/package.py
+++ b/var/spack/repos/builtin/packages/hsakmt-roct/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,16 +13,25 @@ class HsakmtRoct(CMakePackage):
with the ROCk driver."""
homepage = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface"
- url = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/archive/rocm-3.9.0.tar.gz"
+ git = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface.git"
+ url = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('master', branch='master')
+ version('4.3.1', sha256='9d0727e746d4ae6e2709e3534d91046640be511a71c027f47db25e529fe3b4d4')
+ version('4.3.0', sha256='1ef5fe687bc23ffda17841fe354c1fb94e9aaf276ca9e5757488852f9066f231')
+ version('4.2.0', sha256='cc325d4b9a96062f2ad0515fce724a8c64ba56a7d7f1ac4a0753941b8599c52e')
+ version('4.1.0', sha256='8443ed5907a7ba9ad4003a49d90ff7b8886e1b2a5e90f14e4035765a7f64d7ca')
+ version('4.0.0', sha256='a6960fffc8388731ee18953faae12d1449c582e3b3594418845a544455895f42')
+ version('3.10.0', sha256='a3d629247a763cc36f5d48e9122cee8498574af628e14e3c38686c05f66e3e06')
version('3.9.0', sha256='e1bb8b010855736d8a97957222f648532d42646ec2964776a9a1455dc81104a3')
version('3.8.0', sha256='cd5440f31f592737b5d05448704bd01f91f73cfcab8a7829922e81332575cfe8')
version('3.7.0', sha256='b357fe7f425996c49f41748923ded1a140933de7564a70a828ed6ded6d896458')
version('3.5.0', sha256='d9f458c16cb62c3c611328fd2f2ba3615da81e45f3b526e45ff43ab4a67ee4aa')
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
+ variant('shared', default=True, description='Build shared or static library')
depends_on('cmake@3:', type='build')
depends_on('numactl')
@@ -35,7 +44,6 @@ class HsakmtRoct(CMakePackage):
return ['install']
def cmake_args(self):
- args = [
- '-DBUILD_SHARED_LIBS="on"',
+ return [
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared')
]
- return args
diff --git a/var/spack/repos/builtin/packages/hsakmt/package.py b/var/spack/repos/builtin/packages/hsakmt/package.py
index 07a1afdb32..e941ba3d2a 100644
--- a/var/spack/repos/builtin/packages/hsakmt/package.py
+++ b/var/spack/repos/builtin/packages/hsakmt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hsf-cmaketools/package.py b/var/spack/repos/builtin/packages/hsf-cmaketools/package.py
index 7805351509..fb66f82ce4 100644
--- a/var/spack/repos/builtin/packages/hsf-cmaketools/package.py
+++ b/var/spack/repos/builtin/packages/hsf-cmaketools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hssp/package.py b/var/spack/repos/builtin/packages/hssp/package.py
index 073cbedea6..30ba0cd92a 100644
--- a/var/spack/repos/builtin/packages/hssp/package.py
+++ b/var/spack/repos/builtin/packages/hssp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,16 +18,16 @@ class Hssp(AutotoolsPackage):
homepage = "https://github.com/cmbi/hssp"
url = "https://github.com/cmbi/hssp/archive/3.0.10.tar.gz"
- version('3.0.10', sha256='b475d6fa62098df0e54c8dbdaa0b32de93bf5a393335f73f9b5a7e95f3090d2a')
- version('3.0.9', sha256='42a9a93c48d22478212dcaf6ceb3feb64443e4cb2e8cccdd402b47a595d16658')
- version('3.0.8', sha256='45e316ff2c700f09971027f9e813cf3139d36ab5951d337948fafab53e00d821')
- version('3.0.7', sha256='eb6c3276eeb1261c55568ebfae301033904fe619d84b380313dbf137a2b06cd1')
- version('3.0.6', sha256='b868e0077270361276c1c256e2f137ad95f7e84deeb61ae267f7559ebaab7d59')
- version('3.0.5', sha256='fded09f08cfb12e578e4823295dc0d0aaeff6559d5e099df23c5bcc911597ccd')
- version('3.0.4', sha256='fe786c3a75dafe93bb6a97c2840c3edb0d0e81446874082dc053e136dd3b7f68')
- version('3.0.3', sha256='c4826ed74a74e3238f45104cb21ca4ad9e5b49498891e991a3a3a7a3b9bdbe1d')
- version('3.0.2', sha256='edb43dc7407a5e91d68d27b732887c6e70a1988e8ddbba03d430713c40c40139')
- version('3.0.1', sha256='8f56bc51d7b5f035442c189dd7096f0dd25528303722507365f5e746d5ad9a73')
+ version('3.0.10', sha256='9b2cba9c498e65fd48730f0fc86ca2b480bf12903a2c131521023f3a161fe870')
+ version('3.0.9', sha256='2f67743ffd233ed9c4cd298e8fc65a332b863052945fb62bd61d7f1776274da9')
+ version('3.0.8', sha256='56c926d2e43a3dd6324de558dde868751355f385d1b60fd85586a0a2c2bc82e0')
+ version('3.0.7', sha256='3f1c09eb2cdc679119375a9ee552f853bcd1e959f030cb67ca6bd33809e6cdf2')
+ version('3.0.6', sha256='8d3bc75bd9513dd0800a630049969639758692e42a28028651543320cce70d5f')
+ version('3.0.5', sha256='8ca1de53e8add9e7af18a9f565bbcfa388f4d6ddcd2b7a1eae668c836ec0d09c')
+ version('3.0.4', sha256='67a39d325ce9c17a416a26172fd5ae28878be3557cd611d7cbb9bcaf09507e76')
+ version('3.0.3', sha256='42fc2b293fc60407ae097cc8021fd7cf0044092aa366c11ee99015beec83beea')
+ version('3.0.2', sha256='76b4275c8cde120509d7920609fca983f2b04249a649d0aa802c69fd09e5f8cf')
+ version('3.0.1', sha256='62a703d15bdfec82fdbd2a4275e1973b6a1ac6ccd4dbec75036f16faacaa9dce')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
diff --git a/var/spack/repos/builtin/packages/hstr/package.py b/var/spack/repos/builtin/packages/hstr/package.py
index 367d9d8d0b..f4f4bc399f 100644
--- a/var/spack/repos/builtin/packages/hstr/package.py
+++ b/var/spack/repos/builtin/packages/hstr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/htop/package.py b/var/spack/repos/builtin/packages/htop/package.py
index e0d9960467..dd6ff29663 100644
--- a/var/spack/repos/builtin/packages/htop/package.py
+++ b/var/spack/repos/builtin/packages/htop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/htslib/package.py b/var/spack/repos/builtin/packages/htslib/package.py
index 95c38d4a23..ab451ac1fc 100644
--- a/var/spack/repos/builtin/packages/htslib/package.py
+++ b/var/spack/repos/builtin/packages/htslib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,10 @@ class Htslib(AutotoolsPackage):
"""C library for high-throughput sequencing data formats."""
homepage = "https://github.com/samtools/htslib"
- url = "https://github.com/samtools/htslib/releases/download/1.10.2/htslib-1.10.2.tar.bz2"
+ url = "https://github.com/samtools/htslib/releases/download/1.13/htslib-1.13.tar.bz2"
+ version('1.13', sha256='f2407df9f97f0bb6b07656579e41a1ca5100464067b6b21bf962a2ea4b0efd65')
+ version('1.12', sha256='2280141b46e953ba4ae01b98335a84f8e6ccbdb6d5cdbab7f70ee4f7e3b6f4ca')
version('1.10.2', sha256='e3b543de2f71723830a1e0472cf5489ec27d0fbeb46b1103e14a11b7177d1939')
version('1.9', sha256='e04b877057e8b3b8425d957f057b42f0e8509173621d3eccaedd0da607d9929a')
version('1.8', sha256='c0ef1eec954a98cc708e9f99f6037db85db45670b52b6ab37abcc89b6c057ca1')
diff --git a/var/spack/repos/builtin/packages/http-get/package.py b/var/spack/repos/builtin/packages/http-get/package.py
index aa05b9f355..2b461b20b7 100644
--- a/var/spack/repos/builtin/packages/http-get/package.py
+++ b/var/spack/repos/builtin/packages/http-get/package.py
@@ -1,26 +1,27 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 datetime
+from spack import *
+
class HttpGet(MakefilePackage):
"""Http_get fetches an HTTP URL and dumps the contents to stdout.
It does not do gopher, ftp, file, news, or any other type of URL,
only HTTP. It can be configured to do HTTPS fetches as well."""
- homepage = "http://www.acme.com/software/http_get/"
- url = "http://www.acme.com/software/http_get/http_get_23May2018.tar.gz"
+ homepage = "https://www.acme.com/software/http_get/"
+ url = "https://www.acme.com/software/http_get/http_get_23May2018.tar.gz"
- version('2018-05-23', sha256='7d46ce25e53b6d3e27a99c1853c3054a046cc97d5e30a713a7ec986cfe7c4fe0')
+ version('2018-05-23', sha256='f04e9d911fbc0cdb7c4ebe91dae1cc951ea14b657f48309c3952dcc938bb2e0d')
def url_for_version(self, version):
ver = datetime.datetime.strptime(str(version), '%Y-%m-%d').date()
verstr = datetime.datetime.strftime(ver, '%d%b%Y')
- return "http://www.acme.com/software/http_get/http_get_{0}.tar.gz".format(verstr)
+ return "https://www.acme.com/software/http_get/http_get_{0}.tar.gz".format(verstr)
def edit(self, spec, prefix):
makefile = FileFilter("Makefile")
diff --git a/var/spack/repos/builtin/packages/http-load/package.py b/var/spack/repos/builtin/packages/http-load/package.py
index 4b2f61d18d..0b6a88174d 100644
--- a/var/spack/repos/builtin/packages/http-load/package.py
+++ b/var/spack/repos/builtin/packages/http-load/package.py
@@ -1,24 +1,25 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 datetime
+from spack import *
+
class HttpLoad(MakefilePackage):
"""http_load - multiprocessing http test client"""
- homepage = "http://www.acme.com/software/http_load/"
- url = "http://www.acme.com/software/http_load/http_load-09Mar2016.tar.gz"
+ homepage = "https://www.acme.com/software/http_load/"
+ url = "https://www.acme.com/software/http_load/http_load-09Mar2016.tar.gz"
- version('2016-03-09', sha256='a2bf118d88f6acd2a082cbf275d141538149caaa0a4ce1bcc66680668e781306')
+ version('2016-03-09', sha256='5a7b00688680e3fca8726dc836fd3f94f403fde831c71d73d9a1537f215b4587')
def url_for_version(self, version):
ver = datetime.datetime.strptime(str(version), '%Y-%m-%d').date()
verstr = datetime.datetime.strftime(ver, '%d%b%Y')
- return "http://www.acme.com/software/http_load/http_load-{0}.tar.gz".format(verstr)
+ return "https://www.acme.com/software/http_load/http_load-{0}.tar.gz".format(verstr)
def edit(self, spec, prefix):
makefile = FileFilter("Makefile")
diff --git a/var/spack/repos/builtin/packages/http-parser/package.py b/var/spack/repos/builtin/packages/http-parser/package.py
index 552b7d2cbb..503a99bdbf 100644
--- a/var/spack/repos/builtin/packages/http-parser/package.py
+++ b/var/spack/repos/builtin/packages/http-parser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/http-ping/package.py b/var/spack/repos/builtin/packages/http-ping/package.py
index 7cf731e019..b32ea25b47 100644
--- a/var/spack/repos/builtin/packages/http-ping/package.py
+++ b/var/spack/repos/builtin/packages/http-ping/package.py
@@ -1,25 +1,26 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 datetime
+from spack import *
+
class HttpPing(MakefilePackage):
"""http_ping is like the regular ping command, except that it sends
HTTP requests instead of ICMP echo requests."""
- homepage = "http://www.acme.com/software/http_ping/"
- url = "http://www.acme.com/software/http_ping/http_ping_09Mar2016.tar.gz"
+ homepage = "https://www.acme.com/software/http_ping/"
+ url = "https://www.acme.com/software/http_ping/http_ping_09Mar2016.tar.gz"
- version('2016-03-09', sha256='6bdc570c776a760d2c08f7d18e00b0edd74cf603400929c66c512801b6bb5871')
+ version('2016-03-09', sha256='f8b95773aaed09839a44a1927f979a62752d57aace79da3846bfb73e6c9805e9')
def url_for_version(self, version):
ver = datetime.datetime.strptime(str(version), '%Y-%m-%d').date()
verstr = datetime.datetime.strftime(ver, '%d%b%Y')
- return "http://www.acme.com/software/http_ping/http_ping_{0}.tar.gz".format(verstr)
+ return "https://www.acme.com/software/http_ping/http_ping_{0}.tar.gz".format(verstr)
def edit(self, spec, prefix):
makefile = FileFilter("Makefile")
diff --git a/var/spack/repos/builtin/packages/http-post/package.py b/var/spack/repos/builtin/packages/http-post/package.py
index bb9c0f2593..a05f04af43 100644
--- a/var/spack/repos/builtin/packages/http-post/package.py
+++ b/var/spack/repos/builtin/packages/http-post/package.py
@@ -1,26 +1,27 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 datetime
+from spack import *
+
class HttpPost(MakefilePackage):
"""Http_post does a POST operation to an HTTP URL and dumps the results
to stdout. It does not do gopher, ftp, file, news, or any other type of
URL, only HTTP. It can be configured to do HTTPS POSTs as well."""
- homepage = "http://www.acme.com/software/http_post/"
- url = "http://www.acme.com/software/http_post/http_post_18May2018.tar.gz"
+ homepage = "https://www.acme.com/software/http_post/"
+ url = "https://www.acme.com/software/http_post/http_post_18May2018.tar.gz"
- version('2018-05-18', sha256='981c62bcc5cd12b8531f887b3e3779a63a7b7f370062575cded412865a20ea2c')
+ version('2018-05-18', sha256='6607faa91aea410efb9b86ae0b1b64541b55318831cf6bb3fdee5d68f8adab31')
def url_for_version(self, version):
ver = datetime.datetime.strptime(str(version), '%Y-%m-%d').date()
verstr = datetime.datetime.strftime(ver, '%d%b%Y')
- return "http://www.acme.com/software/http_post/http_post_{0}.tar.gz".format(verstr)
+ return "https://www.acme.com/software/http_post/http_post_{0}.tar.gz".format(verstr)
def edit(self, spec, prefix):
makefile = FileFilter("Makefile")
diff --git a/var/spack/repos/builtin/packages/httpd/package.py b/var/spack/repos/builtin/packages/httpd/package.py
index ed212c34af..69f909c96f 100644
--- a/var/spack/repos/builtin/packages/httpd/package.py
+++ b/var/spack/repos/builtin/packages/httpd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Httpd(AutotoolsPackage):
"""The Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant
web server."""
- homepage = "http://httpd.apache.org/"
- url = "http://archive.apache.org/dist/httpd/httpd-2.4.43.tar.bz2"
+ homepage = "https://httpd.apache.org/"
+ url = "https://archive.apache.org/dist/httpd/httpd-2.4.43.tar.bz2"
version('2.4.43', sha256='a497652ab3fc81318cdc2a203090a999150d86461acff97c1065dc910fe10f43')
version('2.4.41', sha256='133d48298fe5315ae9366a0ec66282fa4040efa5d566174481077ade7d18ea40')
diff --git a/var/spack/repos/builtin/packages/httperf/package.py b/var/spack/repos/builtin/packages/httperf/package.py
index 4c33f98ed0..caf6c1c0df 100644
--- a/var/spack/repos/builtin/packages/httperf/package.py
+++ b/var/spack/repos/builtin/packages/httperf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/httpie/package.py b/var/spack/repos/builtin/packages/httpie/package.py
index 53b95337b5..b94c0bd61a 100644
--- a/var/spack/repos/builtin/packages/httpie/package.py
+++ b/var/spack/repos/builtin/packages/httpie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,10 @@ from spack import *
class Httpie(PythonPackage):
"""Modern command line HTTP client."""
- homepage = "https://httpie.org/"
- url = "https://pypi.io/packages/source/h/httpie/httpie-0.9.8.tar.gz"
+ homepage = "https://httpie.io/"
+ pypi = "httpie/httpie-2.5.0.tar.gz"
+ version('2.5.0', sha256='fe6a8bc50fb0635a84ebe1296a732e39357c3e1354541bf51a7057b4877e47f9')
version('0.9.9', sha256='f1202e6fa60367e2265284a53f35bfa5917119592c2ab08277efc7fffd744fcb')
version('0.9.8', sha256='515870b15231530f56fe2164190581748e8799b66ef0fe36ec9da3396f0df6e1')
@@ -19,8 +20,10 @@ class Httpie(PythonPackage):
description='Enable SOCKS proxy support')
depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-pygments@2.1.3:', type=('build', 'run'))
- depends_on('py-requests@2.11.0:', type=('build', 'run'))
+ depends_on('py-defusedxml', type=('build', 'run'))
+ depends_on('py-pygments', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-requests-toolbelt', type=('build', 'run'))
depends_on('py-pysocks', type=('build', 'run'), when="+socks")
# Concretization problem breaks this. Unconditional for now...
# https://github.com/spack/spack/issues/3628
diff --git a/var/spack/repos/builtin/packages/httping/package.py b/var/spack/repos/builtin/packages/httping/package.py
index 7eed1c958a..5b8668f095 100644
--- a/var/spack/repos/builtin/packages/httping/package.py
+++ b/var/spack/repos/builtin/packages/httping/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Httping(AutotoolsPackage):
the latency. of the webserver + network. It supports, of course,
IPv6. httping was analyzed by Coverity Scan for software defects. """
- homepage = "http://www.vanheusden.com/httping/"
+ homepage = "https://www.vanheusden.com/httping/"
url = "https://github.com/flok99/httping/archive/2.5.tar.gz"
version('2.5', sha256='2ad423097fa7a0d2d20a387050e34374326a703dddce897e152a8341e47ea500')
diff --git a/var/spack/repos/builtin/packages/httpress/package.py b/var/spack/repos/builtin/packages/httpress/package.py
index b4a9dab270..a5198dfa10 100644
--- a/var/spack/repos/builtin/packages/httpress/package.py
+++ b/var/spack/repos/builtin/packages/httpress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hub/package.py b/var/spack/repos/builtin/packages/hub/package.py
index 7b342b234d..bee84f3f68 100644
--- a/var/spack/repos/builtin/packages/hub/package.py
+++ b/var/spack/repos/builtin/packages/hub/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Hub(Package):
"""The github git wrapper"""
diff --git a/var/spack/repos/builtin/packages/hudi/package.py b/var/spack/repos/builtin/packages/hudi/package.py
index 9147829b06..5accbae1f1 100644
--- a/var/spack/repos/builtin/packages/hudi/package.py
+++ b/var/spack/repos/builtin/packages/hudi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hugo/package.py b/var/spack/repos/builtin/packages/hugo/package.py
index fe9df5c110..ee697a33fd 100644
--- a/var/spack/repos/builtin/packages/hugo/package.py
+++ b/var/spack/repos/builtin/packages/hugo/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import re
+
from spack import *
from spack.util.executable import which
diff --git a/var/spack/repos/builtin/packages/hunspell/package.py b/var/spack/repos/builtin/packages/hunspell/package.py
index 8eedf43539..7827cd9693 100644
--- a/var/spack/repos/builtin/packages/hunspell/package.py
+++ b/var/spack/repos/builtin/packages/hunspell/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Hunspell(AutotoolsPackage):
"""The most popular spellchecking library (sez the author...)."""
- homepage = "http://hunspell.github.io/"
+ homepage = "https://hunspell.github.io/"
url = "https://github.com/hunspell/hunspell/archive/v1.6.0.tar.gz"
version('1.7.0', sha256='bb27b86eb910a8285407cf3ca33b62643a02798cf2eef468c0a74f6c3ee6bc8a')
diff --git a/var/spack/repos/builtin/packages/hw-probe/package.py b/var/spack/repos/builtin/packages/hw-probe/package.py
new file mode 100644
index 0000000000..3b82850f18
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hw-probe/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 HwProbe(MakefilePackage):
+ """Hardware Probe Tool (hw-probe)."""
+
+ homepage = "https://github.com/linuxhw/hw-probe"
+ url = "https://github.com/linuxhw/hw-probe/archive/1.5.tar.gz"
+
+ version('1.5', sha256='8bb7d6ff272c1412e26fcfd86e9df5c3e34e1584552404b930c281b8498b25ea')
+ version('1.4', sha256='90f3ea83bf641348b209e4a2a910f65d836ae7828c0be0f660236ea413bc46bb')
+ version('1.3', sha256='820ada4f16cb827e0990eb918e75423845fef54a863fdd88aa5bd23127354229')
+
+ def install(self, spec, prefix):
+ make('install', 'prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/hwdata/package.py b/var/spack/repos/builtin/packages/hwdata/package.py
new file mode 100644
index 0000000000..c699189a40
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hwdata/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2021 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 Hwdata(AutotoolsPackage):
+ """Hardware identification and configuration data."""
+
+ homepage = "https://github.com/vcrhonek/hwdata"
+ url = "https://github.com/vcrhonek/hwdata/archive/v0.337.tar.gz"
+
+ version('0.345', sha256='fafcc97421ba766e08a2714ccc3eebb0daabc99e67d53c2d682721dd01ccf7a7')
+ version('0.340', sha256='e3a0ef18af6795a362345a2c2c7177be351cb27b4cc0ed9278b7409759258802')
diff --git a/var/spack/repos/builtin/packages/hwloc/0001-Try-linking-to-libtinfo.patch b/var/spack/repos/builtin/packages/hwloc/0001-Try-linking-to-libtinfo.patch
new file mode 100644
index 0000000000..59fb856118
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hwloc/0001-Try-linking-to-libtinfo.patch
@@ -0,0 +1,25 @@
+From 0847b85eb65f7648f9104ae1e69e0c657d836031 Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Mon, 5 Apr 2021 12:51:38 +0200
+Subject: [PATCH] Try linking to libtinfo
+
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index b775477..fb89d30 100755
+--- a/configure
++++ b/configure
+@@ -16811,7 +16811,7 @@ done
+ chosen_curses=""
+ for curses in ncurses curses
+ do
+- for lib in "" -ltermcap -l${curses}w -l$curses
++ for lib in "" -l${curses}w -l$curses -ltinfo -ltermcap
+ do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking termcap support using $curses and $lib" >&5
+ $as_echo_n "checking termcap support using $curses and $lib... " >&6; }
+--
+2.31.1
+
diff --git a/var/spack/repos/builtin/packages/hwloc/package.py b/var/spack/repos/builtin/packages/hwloc/package.py
index 4edabfbf4a..d3b1fe2ca8 100644
--- a/var/spack/repos/builtin/packages/hwloc/package.py
+++ b/var/spack/repos/builtin/packages/hwloc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,7 +21,7 @@ class Hwloc(AutotoolsPackage):
efficiently.
"""
- homepage = "http://www.open-mpi.org/projects/hwloc/"
+ homepage = "https://www.open-mpi.org/projects/hwloc/"
url = "https://download.open-mpi.org/release/hwloc/v2.0/hwloc-2.0.2.tar.gz"
list_url = "http://www.open-mpi.org/software/hwloc/"
list_depth = 2
@@ -30,11 +30,17 @@ class Hwloc(AutotoolsPackage):
maintainers = ['bgoglin']
version('master', branch='master')
+ version('2.5.0', sha256='38aa8102faec302791f6b4f0d23960a3ffa25af3af6af006c64dbecac23f852c')
+ version('2.4.1', sha256='4267fe1193a8989f3ab7563a7499e047e77e33fed8f4dec16822a7aebcf78459')
+ version('2.4.0', sha256='30404065dc1d6872b0181269d0bb2424fbbc6e3b0a80491aa373109554006544')
+ version('2.3.0', sha256='155480620c98b43ddf9ca66a6c318b363ca24acb5ff0683af9d25d9324f59836')
version('2.2.0', sha256='2defba03ddd91761b858cbbdc2e3a6e27b44e94696dbfa21380191328485a433')
version('2.1.0', sha256='1fb8cc1438de548e16ec3bb9e4b2abb9f7ce5656f71c0906583819fcfa8c2031')
version('2.0.2', sha256='27dcfe42e3fb3422b72ce48b48bf601c0a3e46e850ee72d9bdd17b5863b6e42c')
version('2.0.1', sha256='f1156df22fc2365a31a3dc5f752c53aad49e34a5e22d75ed231cd97eaa437f9d')
version('2.0.0', sha256='a0d425a0fc7c7e3f2c92a272ffaffbd913005556b4443e1887d2e1718d902887')
+ version('1.11.13', sha256='a8f781ae4d347708a07d95e7549039887f151ed7f92263238527dfb0a3709b9d')
+ version('1.11.12', sha256='f1d49433e605dd653a77e1478a78cee095787d554a94afe40d1376bca6708ca5')
version('1.11.11', sha256='74329da3be1b25de8e98a712adb28b14e561889244bf3a8138afe91ab18e0b3a')
version('1.11.10', sha256='0a2530b739d9ebf60c4c1e86adb5451a20d9e78f7798cf78d0147cc6df328aac')
version('1.11.9', sha256='85b978995b67db0b1a12dd1a73b09ef3d39f8e3cb09f8b9c60cf04633acce46c')
@@ -66,6 +72,10 @@ class Hwloc(AutotoolsPackage):
default=False,
description="Enable netloc [requires MPI]"
)
+ variant('opencl', default=False,
+ description="Support an OpenCL library at run time")
+ variant('rocm', default=False,
+ description="Support ROCm devices")
# netloc isn't available until version 2.0.0
conflicts('+netloc', when="@:1.99.99")
@@ -85,21 +95,45 @@ class Hwloc(AutotoolsPackage):
depends_on('libxml2', when='+libxml2')
depends_on('cairo', when='+cairo')
depends_on('numactl', when='@:1.11.11 platform=linux')
+ depends_on('ncurses')
+
+ # Before 2.2 hwloc does not consider linking to libtinfo
+ # to detect ncurses, which is considered a bug.
+ # For older versions this can be fixed by depending on
+ # ncurses~termlib, but this could lead to insatisfiable
+ # constraints (e.g. llvm explicitly depends on ncurses+termlib)
+ # Therefore we patch the latest 1.x configure script to make
+ # it consider libtinfo too.
+ # see https://github.com/open-mpi/hwloc/pull/417
+ patch('0001-Try-linking-to-libtinfo.patch', when='@1.11.13')
+ depends_on('ncurses ~termlib', when='@2.0:2.2')
+ depends_on('ncurses ~termlib', when='@1.0:1.11.12')
# When mpi=openmpi, this introduces an unresolvable dependency.
# See https://github.com/spack/spack/issues/15836 for details
depends_on('mpi', when='+netloc')
+ with when('+rocm'):
+ depends_on('rocm-smi-lib')
+ depends_on('rocm-opencl', when='+opencl')
+ # Avoid a circular dependency since the openmp
+ # variant of llvm-amdgpu depends on hwloc.
+ depends_on('llvm-amdgpu~openmp', when='+opencl')
+
def url_for_version(self, version):
return "http://www.open-mpi.org/software/hwloc/v%s/downloads/hwloc-%s.tar.gz" % (version.up_to(2), version)
def configure_args(self):
- args = [
- # Disable OpenCL, since hwloc might pick up an OpenCL
- # library at build time that is then not found at run time
- # (Alternatively, we could require OpenCL as dependency.)
- "--disable-opencl",
- ]
+ args = []
+
+ # If OpenCL is not enabled, disable it since hwloc might
+ # pick up an OpenCL library at build time that is then
+ # not found at run time.
+ # The OpenCl variant allows OpenCl providers such as
+ # 'cuda' and 'rocm-opencl' to be used.
+ if '+opencl' not in self.spec:
+ args.append('--disable-opencl')
+
if '+netloc' in self.spec:
args.append('--enable-netloc')
diff --git a/var/spack/repos/builtin/packages/hybpiper/package.py b/var/spack/repos/builtin/packages/hybpiper/package.py
index 5f436c7487..81883a397d 100644
--- a/var/spack/repos/builtin/packages/hybpiper/package.py
+++ b/var/spack/repos/builtin/packages/hybpiper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hybrid-lambda/package.py b/var/spack/repos/builtin/packages/hybrid-lambda/package.py
new file mode 100644
index 0000000000..a9228497b9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hybrid-lambda/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2021 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 HybridLambda(AutotoolsPackage):
+ """Hybrid-Lambda is a software package that can simulate gene trees
+ within a rooted species network or a rooted species tree under the
+ coalescent process.
+
+ The main feature of this program is that users can
+ choose to use the standard Kingman coalescent process, which produces
+ bifurcating genealogies, or two other Lambda coalescent processes,
+ which produce multifurcating genealogies. The other feature is that
+ hybrid sim uses extended Newick formatted strings to make it easier to
+ represent hybridization events between species."""
+
+ homepage = "https://github.com/hybridLambda/hybrid-Lambda"
+ git = "https://github.com/hybridLambda/hybrid-Lambda.git"
+
+ version('develop', submodules=True)
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('boost')
+ depends_on('cppunit', type='test')
+
+ build_directory = 'src'
+
+ @run_after('configure')
+ def change_install_option_in_makefile(self):
+ with working_dir('src'):
+ filter_file(r'INSTALL = /bin/install -c',
+ 'INSTALL = /bin/install -C', 'Makefile')
diff --git a/var/spack/repos/builtin/packages/hybridsim/package.py b/var/spack/repos/builtin/packages/hybridsim/package.py
index 089181ca0b..503a98637f 100644
--- a/var/spack/repos/builtin/packages/hybridsim/package.py
+++ b/var/spack/repos/builtin/packages/hybridsim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/hydra/package.py b/var/spack/repos/builtin/packages/hydra/package.py
index c5afe90b3e..ed951d2c25 100644
--- a/var/spack/repos/builtin/packages/hydra/package.py
+++ b/var/spack/repos/builtin/packages/hydra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,9 @@ class Hydra(AutotoolsPackage):
(such as ssh, rsh, fork), as well as natively integrate with resource
management systems (such as slurm, pbs, sge)."""
- homepage = "http://www.mpich.org"
- url = "http://www.mpich.org/static/downloads/3.2/hydra-3.2.tar.gz"
- list_url = "http://www.mpich.org/static/downloads/"
+ homepage = "https://www.mpich.org"
+ url = "https://www.mpich.org/static/downloads/3.2/hydra-3.2.tar.gz"
+ list_url = "https://www.mpich.org/static/downloads/"
list_depth = 1
version('3.2', sha256='f7a67ec91a773d95cbbd479a80e926d44bee1ff9fc70a8d1df075ea53ea33889')
diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py
index 082d8316d7..d576f0bee3 100644
--- a/var/spack/repos/builtin/packages/hydrogen/package.py
+++ b/var/spack/repos/builtin/packages/hydrogen/package.py
@@ -1,23 +1,25 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
-class Hydrogen(CMakePackage, CudaPackage):
+class Hydrogen(CMakePackage, CudaPackage, ROCmPackage):
"""Hydrogen: Distributed-memory dense and sparse-direct linear algebra
and optimization library. Based on the Elemental library."""
- homepage = "http://libelemental.org"
+ homepage = "https://libelemental.org"
url = "https://github.com/LLNL/Elemental/archive/v1.0.1.tar.gz"
git = "https://github.com/LLNL/Elemental.git"
maintainers = ['bvanessen']
version('develop', branch='hydrogen')
+ version('1.5.1', sha256='447da564278f98366906d561d9c8bc4d31678c56d761679c2ff3e59ee7a2895c')
version('1.5.0', sha256='03dd487fb23b9fdbc715554a8ea48c3196a1021502e61b0172ef3fdfbee75180')
version('1.4.0', sha256='c13374ff4a6c4d1076e47ba8c8d91a7082588b9958d1ed89cffb12f1d2e1452e')
version('1.3.4', sha256='7979f6656f698f0bbad6798b39d4b569835b3013ff548d98089fce7c283c6741')
@@ -48,13 +50,11 @@ class Hydrogen(CMakePackage, CudaPackage):
variant('build_type', default='Release',
description='The build type to build',
values=('Debug', 'Release'))
- variant('blas', default='openblas', values=('openblas', 'mkl', 'accelerate', 'essl'),
- description='Enable the use of OpenBlas/MKL/Accelerate/ESSL')
+ variant('blas', default='openblas', values=('openblas', 'mkl', 'accelerate', 'essl', 'libsci'),
+ description='Enable the use of OpenBlas/MKL/Accelerate/ESSL/LibSci')
variant('mpfr', default=False,
description='Support GNU MPFR\'s'
'arbitrary-precision floating-point arithmetic')
- variant('cuda', default=False,
- description='Builds with support for GPUs via CUDA and cuDNN')
variant('test', default=False,
description='Builds test suite')
variant('al', default=False,
@@ -65,10 +65,13 @@ class Hydrogen(CMakePackage, CudaPackage):
description='Builds with support for FP16 precision data types')
conflicts('~openmp', when='+omp_taskloops')
+ conflicts('+cuda', when='+rocm', msg='CUDA and ROCm support are mutually exclusive')
depends_on('cmake@3.17.0:', type='build')
depends_on('mpi')
depends_on('hwloc@1.11:')
+ depends_on('hwloc +cuda +nvml', when='+cuda')
+ depends_on('hwloc@2.3.0:', when='+rocm')
# Note that #1712 forces us to enumerate the different blas variants
depends_on('openblas', when='blas=openblas')
@@ -83,18 +86,30 @@ class Hydrogen(CMakePackage, CudaPackage):
conflicts('blas=accelerate +openmp_blas')
depends_on('essl', when='blas=essl')
- depends_on('essl -cuda', when='blas=essl -openmp_blas')
depends_on('essl +ilp64', when='blas=essl +int64_blas')
depends_on('essl threads=openmp', when='blas=essl +openmp_blas')
depends_on('netlib-lapack +external-blas', when='blas=essl')
+ depends_on('cray-libsci', when='blas=libsci')
+ depends_on('cray-libsci +openmp', when='blas=libsci +openmp_blas')
+
# Specify the correct version of Aluminum
depends_on('aluminum@:0.3.99', when='@:1.3.99 +al')
depends_on('aluminum@0.4:0.4.99', when='@1.4:1.4.99 +al')
- depends_on('aluminum@0.5:', when='@:1.0,1.5.0: +al')
+ depends_on('aluminum@0.6.0:0.6.99', when='@1.5.0:1.5.1 +al')
+ depends_on('aluminum@0.7.0:', when='@:1.0,1.5.2: +al')
# Add Aluminum variants
- depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda')
+ depends_on('aluminum +cuda +nccl +cuda_rma', when='+al +cuda')
+ depends_on('aluminum +rocm +rccl', when='+al +rocm')
+
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on('aluminum cuda_arch=%s' % arch, when='+al +cuda cuda_arch=%s' % arch)
+
+ # variants +rocm and amdgpu_targets are not automatically passed to
+ # dependencies, so do it manually.
+ for val in ROCmPackage.amdgpu_targets:
+ depends_on('aluminum amdgpu_target=%s' % val, when='+al +rocm amdgpu_target=%s' % val)
# Note that this forces us to use OpenBLAS until #1712 is fixed
depends_on('lapack', when='blas=openblas ~openmp_blas')
@@ -106,6 +121,7 @@ class Hydrogen(CMakePackage, CudaPackage):
depends_on('cuda', when='+cuda')
depends_on('cub', when='^cuda@:10.99')
+ depends_on('hipcub', when='+rocm')
depends_on('half', when='+half')
depends_on('llvm-openmp', when='%apple-clang +openmp')
@@ -126,7 +142,10 @@ class Hydrogen(CMakePackage, CudaPackage):
def cmake_args(self):
spec = self.spec
+ enable_gpu_fp16 = ('+cuda' in spec and '+half' in spec)
+
args = [
+ '-DCMAKE_CXX_STANDARD=14',
'-DCMAKE_INSTALL_MESSAGE:STRING=LAZY',
'-DBUILD_SHARED_LIBS:BOOL=%s' % ('+shared' in spec),
'-DHydrogen_ENABLE_OPENMP:BOOL=%s' % ('+openmp' in spec),
@@ -136,12 +155,36 @@ class Hydrogen(CMakePackage, CudaPackage):
'-DHydrogen_ENABLE_MPC:BOOL=%s' % ('+mpfr' in spec),
'-DHydrogen_GENERAL_LAPACK_FALLBACK=ON',
'-DHydrogen_ENABLE_ALUMINUM=%s' % ('+al' in spec),
- '-DHydrogen_ENABLE_CUB=%s' % ('+cuda' in spec),
+ '-DHydrogen_ENABLE_CUB=%s' % ('+cuda' in spec or '+rocm' in spec),
'-DHydrogen_ENABLE_CUDA=%s' % ('+cuda' in spec),
+ '-DHydrogen_ENABLE_ROCM=%s' % ('+rocm' in spec),
'-DHydrogen_ENABLE_TESTING=%s' % ('+test' in spec),
'-DHydrogen_ENABLE_HALF=%s' % ('+half' in spec),
+ '-DHydrogen_ENABLE_GPU_FP16=%s' % enable_gpu_fp16,
]
+ if '+cuda' in spec:
+ args.append('-DCMAKE_CUDA_STANDARD=14')
+ archs = spec.variants['cuda_arch'].value
+ if archs != 'none':
+ arch_str = ";".join(archs)
+ args.append('-DCMAKE_CUDA_ARCHITECTURES=%s' % arch_str)
+
+ if '+rocm' in spec:
+ args.extend([
+ '-DCMAKE_CXX_FLAGS=-std=c++17',
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
+ '-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc)])
+ archs = self.spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ cxxflags_str = " ".join(self.spec.compiler_flags['cxxflags'])
+ args.append(
+ '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'
+ ' -g -fsized-deallocation -fPIC {1}'
+ ' -std=c++17'.format(arch_str, cxxflags_str)
+ )
+
# Add support for OS X to find OpenMP (LLVM installed via brew)
if self.spec.satisfies('%clang +openmp platform=darwin'):
clang = self.compiler.cc
diff --git a/var/spack/repos/builtin/packages/hyperscan/package.py b/var/spack/repos/builtin/packages/hyperscan/package.py
index 1fd057c7c6..723bc006bf 100644
--- a/var/spack/repos/builtin/packages/hyperscan/package.py
+++ b/var/spack/repos/builtin/packages/hyperscan/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
+from spack import *
+
_versions = {
'v5.2.1': {
'Linux-aarch64': ('d2ac1669154ec27b794b64d026ad09caecee6e5e17fd35107595a7517711d2b9', 'https://github.com/kunpengcompute/hyperscan/archive/v5.2.1.aarch64.tar.gz'),
diff --git a/var/spack/repos/builtin/packages/hyphen/package.py b/var/spack/repos/builtin/packages/hyphen/package.py
new file mode 100644
index 0000000000..60550fd181
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hyphen/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 Hyphen(AutotoolsPackage):
+ """A library of text hyphenation."""
+
+ homepage = "https://hunspell.github.io"
+ url = "https://downloads.sourceforge.net/hunspell/hyphen-2.8.8.tar.gz"
+ git = "https://github.com/hunspell/hyphen.git"
+
+ version('master', branch='master')
+ version('2.8.8', sha256='304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705')
+
+ 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/hyphy/package.py b/var/spack/repos/builtin/packages/hyphy/package.py
index 851c795b83..3489e7d933 100644
--- a/var/spack/repos/builtin/packages/hyphy/package.py
+++ b/var/spack/repos/builtin/packages/hyphy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,12 @@ from spack import *
class Hyphy(CMakePackage):
"""HyPhy: Hypothesis testing using Phylogenies"""
- homepage = "http://www.hyphy.org/"
+ homepage = "https://www.hyphy.org/"
url = "https://github.com/veg/hyphy/archive/2.3.14.tar.gz"
version('2.3.14', sha256='9e6c817cb649986e3fe944bcaf88be3533e7e62968b9a486c719e951e5ed1cf6')
- depends_on('cmake@3.0:')
+ depends_on('cmake@3.0:', type='build')
depends_on('curl')
conflicts('%gcc@:4.8')
diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py
index da2b8a03ee..3818677eaf 100644
--- a/var/spack/repos/builtin/packages/hypre/package.py
+++ b/var/spack/repos/builtin/packages/hypre/package.py
@@ -1,25 +1,30 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
-class Hypre(Package):
+class Hypre(Package, CudaPackage):
"""Hypre is a library of high performance preconditioners that
features parallel multigrid methods for both structured and
unstructured grid problems."""
- homepage = "http://computing.llnl.gov/project/linear_solvers/software.php"
+ homepage = "https://computing.llnl.gov/project/linear_solvers/software.php"
url = "https://github.com/hypre-space/hypre/archive/v2.14.0.tar.gz"
git = "https://github.com/hypre-space/hypre.git"
maintainers = ['ulrikeyang', 'osborn9', 'balay']
+ test_requires_compiler = True
+
version('develop', branch='master')
+ version('2.22.0', sha256='2c786eb5d3e722d8d7b40254f138bef4565b2d4724041e56a8fa073bda5cfbb5')
+ version('2.21.0', sha256='e380f914fe7efe22afc44cdf553255410dc8a02a15b2e5ebd279ba88817feaf5')
version('2.20.0', sha256='5be77b28ddf945c92cde4b52a272d16fb5e9a7dc05e714fc5765948cba802c01')
version('2.19.0', sha256='466b19d8a86c69989a237f6f03f20d35c0c63a818776d2cd071b0a084cffeba5')
version('2.18.2', sha256='28007b5b584eaf9397f933032d8367788707a2d356d78e47b99e551ab10cc76a')
@@ -36,7 +41,6 @@ class Hypre(Package):
version('2.11.1', sha256='6bb2ff565ff694596d0e94d0a75f0c3a2cd6715b8b7652bc71feb8698554db93')
version('2.10.1', sha256='a4a9df645ebdc11e86221b794b276d1e17974887ead161d5050aaf0b43bb183a')
version('2.10.0b', sha256='b55dbdc692afe5a00490d1ea1c38dd908dae244f7bdd7faaf711680059824c11')
- version('xsdk-0.2.0', tag='xsdk-0.2.0', git='https://github.com/LLNL/hypre.git')
# Versions 2.13.0 and later can be patched to build shared
# libraries on Darwin; the patch for this capability does not
@@ -58,6 +62,7 @@ class Hypre(Package):
variant('openmp', default=False, description='Enable OpenMP support')
variant('debug', default=False,
description='Build debug instead of optimized version')
+ variant('unified-memory', default=False, description='Use unified memory')
# Patch to add ppc64le in config.guess
patch('ibm-ppc64le.patch', when='@:2.11.1')
@@ -76,6 +81,9 @@ class Hypre(Package):
depends_on("lapack")
depends_on('superlu-dist', when='+superlu-dist+mpi')
+ conflicts('+cuda', when='+int64')
+ conflicts('+unified-memory', when='~cuda')
+
# Patch to build shared libraries on Darwin does not apply to
# versions before 2.13.0
conflicts("+shared@:2.12.99 platform=darwin")
@@ -98,7 +106,8 @@ class Hypre(Package):
return url.format(version)
- def install(self, spec, prefix):
+ def _configure_args(self):
+ spec = self.spec
# Note: --with-(lapack|blas)_libs= needs space separated list of names
lapack = spec['lapack'].libs
blas = spec['blas'].libs
@@ -160,6 +169,43 @@ class Hypre(Package):
else:
configure_args.append("--disable-debug")
+ if '+cuda' in self.spec:
+ configure_args.extend([
+ '--with-cuda',
+ '--enable-curand',
+ '--enable-cub'
+ ])
+ else:
+ configure_args.extend([
+ '--without-cuda',
+ '--disable-curand',
+ '--disable-cub'
+ ])
+
+ if '+unified-memory' in self.spec:
+ configure_args.append('--enable-unified-memory')
+
+ return configure_args
+
+ def setup_build_environment(self, env):
+ if '+mpi' in self.spec:
+ env.set('CC', self.spec['mpi'].mpicc)
+ env.set('CXX', self.spec['mpi'].mpicxx)
+ env.set('F77', self.spec['mpi'].mpif77)
+
+ if '+cuda' in self.spec:
+ env.set('CUDA_HOME', self.spec['cuda'].prefix)
+ env.set('CUDA_PATH', self.spec['cuda'].prefix)
+ cuda_arch = self.spec.variants['cuda_arch'].value
+ if cuda_arch:
+ arch_sorted = list(sorted(cuda_arch, reverse=True))
+ env.set('HYPRE_CUDA_SM', arch_sorted[0])
+ # In CUDA builds hypre currently doesn't handle flags correctly
+ env.append_flags(
+ 'CXXFLAGS', '-O2' if '~debug' in self.spec else '-g')
+
+ def install(self, spec, prefix):
+ configure_args = self._configure_args()
# Hypre's source is staged under ./src so we'll have to manually
# cd into it.
with working_dir("src"):
@@ -176,6 +222,37 @@ class Hypre(Package):
'-rhsone')
make("install")
+ extra_install_tests = join_path('src', 'examples')
+
+ @run_after('install')
+ def cache_test_sources(self):
+ self.cache_extra_test_sources(self.extra_install_tests)
+
+ @property
+ def _cached_tests_work_dir(self):
+ """The working directory for cached test sources."""
+ return join_path(self.test_suite.current_test_cache_dir,
+ self.extra_install_tests)
+
+ def test(self):
+ """Perform smoke test on installed HYPRE package."""
+ if '+mpi' not in self.spec:
+ print('Skipping: HYPRE must be installed with +mpi to run tests')
+ return
+
+ # Build copied and cached test examples
+ self.run_test('make',
+ ['HYPRE_DIR={0}'.format(self.prefix), 'bigint'],
+ purpose='test: building selected examples',
+ work_dir=self._cached_tests_work_dir)
+
+ # Run the examples built above
+ for exe in ['./ex5big', './ex15big']:
+ self.run_test(exe, [], [], installed=False,
+ purpose='test: ensuring {0} runs'.format(exe),
+ skip_missing=True,
+ work_dir=self._cached_tests_work_dir)
+
@property
def headers(self):
"""Export the main hypre header, HYPRE.h; all other headers can be found
diff --git a/var/spack/repos/builtin/packages/i3/package.py b/var/spack/repos/builtin/packages/i3/package.py
index af598a051a..fbf4c3ed90 100644
--- a/var/spack/repos/builtin/packages/i3/package.py
+++ b/var/spack/repos/builtin/packages/i3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ibm-databroker/package.py b/var/spack/repos/builtin/packages/ibm-databroker/package.py
index b060ff98ad..d5c0faf134 100644
--- a/var/spack/repos/builtin/packages/ibm-databroker/package.py
+++ b/var/spack/repos/builtin/packages/ibm-databroker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ibm-java/package.py b/var/spack/repos/builtin/packages/ibm-java/package.py
index c0a59942e6..5beca995dd 100644
--- a/var/spack/repos/builtin/packages/ibm-java/package.py
+++ b/var/spack/repos/builtin/packages/ibm-java/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
import os
+import platform
+
+from spack import *
class IbmJava(Package):
@@ -22,6 +23,8 @@ class IbmJava(Package):
# not be available for download.
version_list = [
+ ('8.0.6.20', 'ppc64', '88748d1502a35845b18d514dd76835f0f47270c6ffbd81f67f611e32d042b288'),
+ ('8.0.6.20', 'ppc64le', '4a7ac4712548d7630f2471a067406c94c3846fff75a0afc660682129dcf80e5b'),
('8.0.6.11', 'ppc64', '6fd17a6b9a34bb66e0db37f6402dc1b7612d54084c94b859f4a42f445fd174d4'),
('8.0.6.11', 'ppc64le', 'd69ff7519e32e89db88a9a4d4d88d1881524073ac940f35d3860db2c6647be2e'),
('8.0.6.10', 'ppc64', 'ff5151ead88f891624eefe33d80d56c325ca0aa4b93bd96c135cad326993eda2'),
diff --git a/var/spack/repos/builtin/packages/ibmisc/package.py b/var/spack/repos/builtin/packages/ibmisc/package.py
index eabafb0a7e..7fe8019a57 100644
--- a/var/spack/repos/builtin/packages/ibmisc/package.py
+++ b/var/spack/repos/builtin/packages/ibmisc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -50,12 +50,12 @@ class Ibmisc(CMakePackage):
depends_on('doxygen', type='build')
def cmake_args(self):
- spec = self.spec
return [
- '-DUSE_EVERYTRACE=%s' % ('YES' if '+everytrace' in spec else 'NO'),
- '-DUSE_PROJ4=%s' % ('YES' if '+proj' in spec else 'NO'),
- '-DUSE_BLITZ=%s' % ('YES' if '+blitz' in spec else 'NO'),
- '-DUSE_NETCDF=%s' % ('YES' if '+netcdf' in spec else 'NO'),
- '-DUSE_BOOST=%s' % ('YES' if '+boost' in spec else 'NO'),
- '-DUSE_UDUNITS2=%s' % ('YES' if '+udunits2' in spec else 'NO'),
- '-DUSE_GTEST=%s' % ('YES' if '+googletest' in spec else 'NO')]
+ self.define_from_variant('USE_EVERYTRACE', 'everytrace'),
+ self.define_from_variant('USE_PROJ4', 'proj'),
+ self.define_from_variant('USE_BLITZ', 'blitz'),
+ self.define_from_variant('USE_NETCDF', 'netcdf'),
+ self.define_from_variant('USE_BOOST', 'boost'),
+ self.define_from_variant('USE_UDUNITS2', 'udunits2'),
+ self.define_from_variant('USE_GTEST', 'googletest'),
+ ]
diff --git a/var/spack/repos/builtin/packages/icarus/package.py b/var/spack/repos/builtin/packages/icarus/package.py
index 16e9c80d0e..749164d882 100644
--- a/var/spack/repos/builtin/packages/icarus/package.py
+++ b/var/spack/repos/builtin/packages/icarus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/iceauth/package.py b/var/spack/repos/builtin/packages/iceauth/package.py
index 28497c8d9e..cd206ff8d4 100644
--- a/var/spack/repos/builtin/packages/iceauth/package.py
+++ b/var/spack/repos/builtin/packages/iceauth/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,13 @@ class Iceauth(AutotoolsPackage, XorgPackage):
information used in connecting with ICE. It operates very much
like the xauth program for X11 connection authentication records."""
- homepage = "http://cgit.freedesktop.org/xorg/app/iceauth"
+ homepage = "https://cgit.freedesktop.org/xorg/app/iceauth"
xorg_mirror_path = "app/iceauth-1.0.7.tar.gz"
version('1.0.7', sha256='6c9706cce276609876e768759ed4ee3b447cd17af4a61f9b5a374c7dda9696d8')
depends_on('libice')
- depends_on('xproto@7.0.22:', type='build')
+ depends_on('xproto@7.0.22:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/icedtea/package.py b/var/spack/repos/builtin/packages/icedtea/package.py
index 9274251016..e2c3726128 100644
--- a/var/spack/repos/builtin/packages/icedtea/package.py
+++ b/var/spack/repos/builtin/packages/icedtea/package.py
@@ -1,20 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Icedtea(AutotoolsPackage):
"""The IcedTea project provides a harness to build the source code from
- http://openjdk.java.net using Free Software build tools and adds a number
+ https://openjdk.java.net/ using Free Software build tools and adds a number
of key features to the upstream OpenJDK codebase. IcedTea requires an
existing IcedTea or OpenJDK install to build."""
- homepage = "http://icedtea.classpath.org/wiki/Main_Page"
- url = "http://icedtea.wildebeest.org/download/source/icedtea-3.4.0.tar.gz"
+ homepage = "https://openjdk.java.net/projects/icedtea/"
+ url = "https://icedtea.wildebeest.org/download/source/icedtea-3.4.0.tar.gz"
version('3.9.0', sha256='84a63bc59f4e101ce8fa183060a59c7e8cbe270945310e90c92b8609a9b8bc88')
version('3.8.0', sha256='ef1a9110294d0a905833f1db30da0c8a88bd2bde8d92ddb711d72ec763cd25b0')
@@ -74,39 +75,39 @@ class Icedtea(AutotoolsPackage):
resource(name='corba', placement='corba_src',
sha256='47210b6c69dcc6193b9bf0a3d61b75b48f4fa56e8ca348e40200cfa14eca3fd1',
- url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/corba.tar.xz',
+ url='https://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/corba.tar.xz',
when='@3.4.0')
resource(name='hotspot', placement='hotspot_src',
sha256='973d668f312b869184665def8abe4037dcd78562bf0dda40367102aca647fd76',
- url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/hotspot.tar.xz',
+ url='https://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/hotspot.tar.xz',
when='@3.4.0')
resource(name='jaxp', placement='jaxp_src',
sha256='c74a8a27f1d2dfeaabfce3b5b46623e367fb0fbd5938a3aca8fcd23eb2ce1d53',
- url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/jaxp.tar.xz',
+ url='https://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/jaxp.tar.xz',
when='@3.4.0')
resource(name='jaxws', placement='jaxws_src',
sha256='90642e9131f4c8922576305224278fcae72d8363956b76d4cdbf813027836cac',
- url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/jaxws.tar.xz',
+ url='https://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/jaxws.tar.xz',
when='@3.4.0')
resource(name='jdk', placement='jdk_src',
sha256='ec71e37b98b4baa6831c5cb30bcc1ab18cd95993744dbc4d37a28b2dc5049896',
- url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/jdk.tar.xz',
+ url='https://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/jdk.tar.xz',
when='@3.4.0')
resource(name='langtools', placement='langtools_src',
sha256='489799c6a86fbfb7da2f2c0ec48e44970a152ea38b97bb40cc04bc09155ab39f',
- url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/langtools.tar.xz',
+ url='https://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/langtools.tar.xz',
when='@3.4.0')
resource(name='openjdk', placement='openjdk_src',
sha256='f1eb8c8e45965adcaa1e9cc70df043a825d52409e96712d266167994ff88456d',
- url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/openjdk.tar.xz',
+ url='https://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/openjdk.tar.xz',
when='@3.4.0')
resource(name='nashorn', placement='nashorn_src',
sha256='3f3861e7268a3986fa8d5c940b85a0de1003f7ebb212df157a9b421ac621d6ae',
- url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/nashorn.tar.xz',
+ url='https://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/nashorn.tar.xz',
when='@3.4.0')
resource(name='shenandoah', placement='shenandoah_src',
sha256='61f7cc5896791ae564aa365cb3de80b16426b42f07e5734ebd30c4483fa2fd3a',
- url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/shenandoah.tar.xz',
+ url='https://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/shenandoah.tar.xz',
when='@3.4.0')
# FIXME:
diff --git a/var/spack/repos/builtin/packages/icet/package.py b/var/spack/repos/builtin/packages/icet/package.py
index 458777d3a3..cdeaa26719 100644
--- a/var/spack/repos/builtin/packages/icet/package.py
+++ b/var/spack/repos/builtin/packages/icet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Icet(CMakePackage):
"""The Image Composition Engine for Tiles (IceT) is a high-performance
sort-last parallel rendering library."""
- homepage = "http://icet.sandia.gov"
+ homepage = "https://icet.sandia.gov"
url = "https://gitlab.kitware.com/api/v4/projects/icet%2Ficet/repository/archive.tar.bz2?sha=IceT-2.1.1"
git = "https://gitlab.kitware.com/icet/icet.git"
diff --git a/var/spack/repos/builtin/packages/ico/package.py b/var/spack/repos/builtin/packages/ico/package.py
index b2c5f991b8..0876053b85 100644
--- a/var/spack/repos/builtin/packages/ico/package.py
+++ b/var/spack/repos/builtin/packages/ico/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,13 +12,13 @@ class Ico(AutotoolsPackage, XorgPackage):
polyhedron, with hidden lines removed, or a solid-fill polyhedron with
hidden faces removed."""
- homepage = "http://cgit.freedesktop.org/xorg/app/ico"
+ homepage = "https://cgit.freedesktop.org/xorg/app/ico"
xorg_mirror_path = "app/ico-1.0.4.tar.gz"
version('1.0.4', sha256='eb8609c3b43dc2e575272f2702590525fe13229e022c4aff8b9a0cc2a3f3205d')
depends_on('libx11@0.99.1:')
- depends_on('xproto@7.0.22:', type='build')
+ depends_on('xproto@7.0.22:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/icu4c/package.py b/var/spack/repos/builtin/packages/icu4c/package.py
index 0663ae6edf..17ddf29cc1 100644
--- a/var/spack/repos/builtin/packages/icu4c/package.py
+++ b/var/spack/repos/builtin/packages/icu4c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/id3lib/package.py b/var/spack/repos/builtin/packages/id3lib/package.py
index 2825b15152..ac9a4a705b 100644
--- a/var/spack/repos/builtin/packages/id3lib/package.py
+++ b/var/spack/repos/builtin/packages/id3lib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/idba/package.py b/var/spack/repos/builtin/packages/idba/package.py
index 5e4f6780dd..60356c649e 100644
--- a/var/spack/repos/builtin/packages/idba/package.py
+++ b/var/spack/repos/builtin/packages/idba/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Idba(AutotoolsPackage):
"""IDBA is a practical iterative De Bruijn Graph De Novo Assembler for
sequence assembly in bioinfomatics."""
- homepage = "http://i.cs.hku.hk/~alse/hkubrg/projects/idba/"
+ homepage = "https://i.cs.hku.hk/~alse/hkubrg/projects/idba/"
url = "https://github.com/loneknightpy/idba/archive/1.1.3.tar.gz"
version('1.1.3', sha256='6b1746a29884f4fa17b110d94d9ead677ab5557c084a93b16b6a043dbb148709')
diff --git a/var/spack/repos/builtin/packages/idl/package.py b/var/spack/repos/builtin/packages/idl/package.py
index 21804ed11a..55b68342be 100644
--- a/var/spack/repos/builtin/packages/idl/package.py
+++ b/var/spack/repos/builtin/packages/idl/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Idl(Package):
"""IDL Software: Interactive Data Visulation.
diff --git a/var/spack/repos/builtin/packages/iegenlib/package.py b/var/spack/repos/builtin/packages/iegenlib/package.py
index ee198fd588..686367ad31 100644
--- a/var/spack/repos/builtin/packages/iegenlib/package.py
+++ b/var/spack/repos/builtin/packages/iegenlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Iegenlib(CMakePackage):
"""Inspector/Executor Generation Library for manipulating sets
and relations with uninterpreted function symbols. """
- homepage = "http://github.com/CompOpt4Apps/IEGenLib"
+ homepage = "https://github.com/CompOpt4Apps/IEGenLib"
git = "https://github.com/CompOpt4Apps/IEGenLib.git"
url = "https://github.com/CompOpt4Apps/IEGenLib/archive/fc479ee6ff01dba26beffc1dc6bacdba03262138.zip"
diff --git a/var/spack/repos/builtin/packages/ignite/package.py b/var/spack/repos/builtin/packages/ignite/package.py
index a5250fc7ef..d181f9e370 100644
--- a/var/spack/repos/builtin/packages/ignite/package.py
+++ b/var/spack/repos/builtin/packages/ignite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/igprof/igprof-5.9.16.patch b/var/spack/repos/builtin/packages/igprof/igprof-5.9.16.patch
new file mode 100644
index 0000000000..d82310c9d3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/igprof/igprof-5.9.16.patch
@@ -0,0 +1,131 @@
+--- src/analyse.cc.orig 2016-07-11 14:17:56.000000001 +0200
++++ src/analyse.cc 2016-07-11 14:20:55.000000001 +0200
+@@ -4374,8 +4374,8 @@
+ else
+ puts(",");
+
+- printf("[%d, %d, %d, %"PRId64", %"PRId64", %"PRId64", %"PRId64", "
+- "%"PRId64", %"PRId64", %"PRId64", ",
++ printf("[%d, %d, %d, %" PRId64 ", %" PRId64 ", %" PRId64 ", %" PRId64 ", "
++ "%" PRId64 ", %" PRId64 ", %" PRId64 ", ",
+ mainRow.rank(), symbolIndex, fileIndex,
+ mainRow.SELF, mainRow.CUM, mainRow.KIDS,
+ mainRow.SELF_ALL[1], mainRow.CUM_ALL[1],
+@@ -4445,7 +4445,7 @@
+ first = false;
+ else
+ puts(",");
+- printf("[%d, %d, %"PRId64", %"PRId64", %"PRId64", ",
++ printf("[%d, %d, %" PRId64 ", %" PRId64 ", %" PRId64 ", ",
+ mainRow.rank(), row.rank(),
+ row.SELF_COUNTS, row.SELF_CALLS, row.SELF_PATHS);
+
+@@ -4472,7 +4472,7 @@
+ first = false;
+ else
+ puts(",");
+- printf("[%d, %d, %"PRId64", %"PRId64", %"PRId64", ",
++ printf("[%d, %d, %" PRId64 ", %" PRId64 ", %" PRId64 ", ",
+ mainRow.rank(), row.rank(),
+ row.SELF_COUNTS, row.SELF_CALLS, row.SELF_PATHS);
+
+--- src/buffer.cc.orig 2017-05-31 11:53:55.891358442 +0200
++++ src/buffer.cc 2017-05-31 11:55:03.519291624 +0200
+@@ -62,12 +62,11 @@
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ if (data != MAP_FAILED)
+ return data;
+- else
+- {
+- igprof_debug("failed to allocate memory for profile buffer: %s (%d)\n",
+- strerror(errno), errno);
+- igprof_abort();
+- }
++
++ igprof_debug("failed to allocate memory for profile buffer: %s (%d)\n",
++ strerror(errno), errno);
++ igprof_abort();
++ __builtin_unreachable();
+ }
+
+ void
+
+--- src/profile-perf.cc.orig 2018-07-11 15:11:31.000000001 +0200
++++ src/profile-perf.cc 2018-07-11 15:13:07.000000001 +0200
+@@ -98,7 +98,7 @@
+
+ struct sigaction sa;
+ sigemptyset(&sa.sa_mask);
+- sa.sa_handler = (sighandler_t) &profileSignalHandler;
++ sa.sa_sigaction = &profileSignalHandler;
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+ sigaction(s_signal, &sa, 0);
+ }
+@@ -252,13 +252,13 @@
+ struct sigaction sa;
+ if (signum == s_signal
+ && act
+- && act->sa_handler != (sighandler_t) &profileSignalHandler)
++ && act->sa_sigaction != &profileSignalHandler)
+ {
+ igprof_debug("sigaction(): prevented profiling signal"
+ " %d from being overridden in thread 0x%lx\n",
+ s_signal, (unsigned long) pthread_self());
+ sigemptyset(&sa.sa_mask);
+- sa.sa_handler = (sighandler_t) &profileSignalHandler;
++ sa.sa_sigaction = &profileSignalHandler;
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+ act = &sa;
+ }
+
+--- src/profile-energy.cc.orig 2018-07-11 15:14:32.000000001 +0200
++++ src/profile-energy.cc 2018-07-11 15:16:56.000000001 +0200
+@@ -268,7 +268,7 @@
+
+ struct sigaction sa;
+ sigemptyset(&sa.sa_mask);
+- sa.sa_handler = (sighandler_t) &profileSignalHandler;
++ sa.sa_sigaction = &profileSignalHandler;
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+ sigaction(s_signal, &sa, 0);
+ }
+@@ -415,13 +415,13 @@
+ struct sigaction sa;
+ if (signum == s_signal
+ && act
+- && act->sa_handler != (sighandler_t) &profileSignalHandler)
++ && act->sa_sigaction != &profileSignalHandler)
+ {
+ igprof_debug("sigaction(): prevented profiling signal"
+ " %d from being overridden in thread 0x%lx\n",
+ s_signal, (unsigned long) pthread_self());
+ sigemptyset(&sa.sa_mask);
+- sa.sa_handler = (sighandler_t) &profileSignalHandler;
++ sa.sa_sigaction = &profileSignalHandler;
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+ act = &sa;
+ }
+
+--- src/profile.cc.orig 2018-07-13 12:03:48.000000001 +0200
++++ src/profile.cc 2018-07-11 15:08:49.000000001 +0200
+@@ -577,7 +577,7 @@
+ igprof_debug("profiler options: %s\n", options);
+
+ // Report override function use.
+- if (igprof_abort != &abort)
++ if ((void (*)())igprof_abort != (void (*)()) &abort)
+ igprof_debug("abort() from system %p, app had %p\n",
+ __extension__ (void *) igprof_abort,
+ __extension__ (void *) &abort);
+
+--- CMakeLists.txt.orig 2015-10-12 18:36:10.000000000 +0200
++++ CMakeLists.txt 2021-03-31 10:06:59.776974100 +0200
+@@ -80,7 +80,7 @@
+ SET(CMAKE_C_FLAGS "${CMAKE_ANSI_FLAGS} ${CMAKE_C_FLAGS}")
+ SET(CMAKE_REQUIRED_FLAGS ${CMAKE_ANSI_FLAGS})
+ IF(CMAKE_COMPILER_IS_GNUCC)
+- ADD_DEFINITIONS(-ansi -pedantic -W -Wall -Wno-long-long -Werror)
++ ADD_DEFINITIONS(-ansi -pedantic -W -Wall -Wno-long-long)
+ ENDIF()
+
+ IF(UNIX)
diff --git a/var/spack/repos/builtin/packages/igprof/package.py b/var/spack/repos/builtin/packages/igprof/package.py
new file mode 100644
index 0000000000..560ea32e74
--- /dev/null
+++ b/var/spack/repos/builtin/packages/igprof/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2021 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 Igprof(CMakePackage):
+ """IgProf (the Ignominous Profiler) is a simple nice tool for measuring and
+ analysing application memory and performance characteristics.
+
+ IgProf requires no changes to the application or the build process. It
+ currently works on Linux (ia32, x86_64)."""
+
+ homepage = "https://igprof.org/"
+ url = "https://github.com/igprof/igprof/archive/v5.9.16.tar.gz"
+
+ version('5.9.16', sha256='cc977466b310f47bbc2967a0bb6ecd49d7437089598346e3f1d8aaf9a7555d96')
+
+ depends_on('libunwind')
+
+ # Three patches in one: C++11 compatibility (src/analyse.cc),
+ # libunwind "compatibility" (remove -Werror in CMakeLists.txt) -
+ # see also https://github.com/spack/spack/pull/21537,
+ # and gcc 8.x compatibility (the rest of the changes).
+ # Adopted from LCGCMake https://gitlab.cern.ch/sft/lcgcmake
+ patch('igprof-5.9.16.patch', when='@5.9.16', level=0)
+
+ def build_system_flags(pkg, name, flags):
+ if name == 'cxxflags':
+ flags.extend(('-Wno-unused-variable', '-Wno-error=unused-result'))
+
+ return (None, None, flags)
diff --git a/var/spack/repos/builtin/packages/igraph/package.py b/var/spack/repos/builtin/packages/igraph/package.py
index 57021a3e13..84b2f75fe4 100644
--- a/var/spack/repos/builtin/packages/igraph/package.py
+++ b/var/spack/repos/builtin/packages/igraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Igraph(AutotoolsPackage):
"""igraph is a library for creating and manipulating graphs."""
- homepage = "http://igraph.org/"
+ homepage = "https://igraph.org/"
url = "https://github.com/igraph/igraph/releases/download/0.7.1/igraph-0.7.1.tar.gz"
version('0.7.1', sha256='d978030e27369bf698f3816ab70aa9141e9baf81c56cc4f55efbe5489b46b0df')
diff --git a/var/spack/repos/builtin/packages/igv/package.py b/var/spack/repos/builtin/packages/igv/package.py
index 990b5e1962..164502876a 100644
--- a/var/spack/repos/builtin/packages/igv/package.py
+++ b/var/spack/repos/builtin/packages/igv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/igvtools/package.py b/var/spack/repos/builtin/packages/igvtools/package.py
index 98fb863f9e..b84395b20d 100644
--- a/var/spack/repos/builtin/packages/igvtools/package.py
+++ b/var/spack/repos/builtin/packages/igvtools/package.py
@@ -1,18 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Igvtools(Package):
"""IGVTools suite of command-line utilities for preprocessing data
files"""
homepage = "https://software.broadinstitute.org/software/igv/home"
- url = "http://data.broadinstitute.org/igv/projects/downloads/2.3/igvtools_2.3.98.zip"
+ url = "https://data.broadinstitute.org/igv/projects/downloads/2.3/igvtools_2.3.98.zip"
version('2.3.98', sha256='07027c179f25960bab9919f255c0f8e08f0861861ac6dc02d92be8313e0316a4')
diff --git a/var/spack/repos/builtin/packages/ike-scan/package.py b/var/spack/repos/builtin/packages/ike-scan/package.py
new file mode 100644
index 0000000000..ec7eaaadb2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ike-scan/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2021 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 IkeScan(AutotoolsPackage):
+ """Discover and fingerprint IKE hosts (IPsec VPN Servers)."""
+
+ homepage = "https://github.com/royhills/ike-scan"
+ url = "https://github.com/royhills/ike-scan/releases/download/1.9/ike-scan-1.9.tar.gz"
+
+ version('1.9', sha256='05d15c7172034935d1e46b01dacf1101a293ae0d06c0e14025a4507656f1a7b6')
diff --git a/var/spack/repos/builtin/packages/ilmbase/package.py b/var/spack/repos/builtin/packages/ilmbase/package.py
index 7aa9ff8337..13c3f2f11b 100644
--- a/var/spack/repos/builtin/packages/ilmbase/package.py
+++ b/var/spack/repos/builtin/packages/ilmbase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Ilmbase(AutotoolsPackage):
"""OpenEXR ILM Base libraries (high dynamic-range image file format)"""
- homepage = "http://www.openexr.com/"
+ homepage = "https://www.openexr.com/"
url = "https://github.com/openexr/openexr/releases/download/v2.3.0/ilmbase-2.3.0.tar.gz"
version('2.3.0', sha256='456978d1a978a5f823c7c675f3f36b0ae14dba36638aeaa3c4b0e784f12a3862')
diff --git a/var/spack/repos/builtin/packages/ima-evm-utils/package.py b/var/spack/repos/builtin/packages/ima-evm-utils/package.py
new file mode 100644
index 0000000000..fa1499348e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ima-evm-utils/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 ImaEvmUtils(AutotoolsPackage):
+ """IMA/EVM control utilities."""
+
+ homepage = "https://linux-ima.sourceforge.net"
+ url = "https://sourceforge.net/projects/linux-ima/files/ima-evm-utils/ima-evm-utils-1.3.2.tar.gz"
+
+ version('1.3.2', sha256='c2b206e7f9fbe62a938b7ae59e31906fefae4d5351fe01db739bd8346b75d4a7')
+ version('1.3.1', sha256='5304271f31a3601a2af5984942d9bd6c7532597c5a97250c9a4524074fc39925')
+ version('1.3', sha256='62e90e8dc6b131a4f34a356114cdcb5bef844f110abbdd5d8b53c449aecc609f')
+ version('1.2.1', sha256='ad8471b58c4df29abd51c80d74b1501cfe3289b60d32d1b318618a8fd26c0c0a')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
diff --git a/var/spack/repos/builtin/packages/imagemagick/package.py b/var/spack/repos/builtin/packages/imagemagick/package.py
index 63543ca552..cda59af5eb 100644
--- a/var/spack/repos/builtin/packages/imagemagick/package.py
+++ b/var/spack/repos/builtin/packages/imagemagick/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Imagemagick(AutotoolsPackage):
"""ImageMagick is a software suite to create, edit, compose,
or convert bitmap images."""
- homepage = "http://www.imagemagick.org"
+ homepage = "https://www.imagemagick.org"
url = "https://github.com/ImageMagick/ImageMagick/archive/7.0.2-7.tar.gz"
version('7.0.8-7', sha256='fadb36b59f310e9eee5249ecb2326b323a64da6cc716dd6d08ece8ea2c780b81')
@@ -21,6 +21,7 @@ class Imagemagick(AutotoolsPackage):
depends_on('jpeg')
depends_on('pango')
depends_on('libtool', type='build')
+ depends_on('libtool', when='@7.0.8:', type=('build', 'link'))
depends_on('libpng')
depends_on('freetype')
depends_on('fontconfig')
@@ -28,6 +29,7 @@ class Imagemagick(AutotoolsPackage):
depends_on('ghostscript')
depends_on('ghostscript-fonts')
depends_on('libsm')
+ depends_on('pkgconfig', type='build')
def configure_args(self):
spec = self.spec
@@ -35,3 +37,7 @@ class Imagemagick(AutotoolsPackage):
return [
'--with-gs-font-dir={0}'.format(gs_font_dir)
]
+
+ @property
+ def libs(self):
+ return find_libraries('libMagick*', root=self.prefix, recursive=True)
diff --git a/var/spack/repos/builtin/packages/imake/package.py b/var/spack/repos/builtin/packages/imake/package.py
index 9157a9951a..3370240caa 100644
--- a/var/spack/repos/builtin/packages/imake/package.py
+++ b/var/spack/repos/builtin/packages/imake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,5 +14,12 @@ class Imake(AutotoolsPackage, XorgPackage):
version('1.0.7', sha256='6bda266a07eb33445d513f1e3c82a61e4822ccb94d420643d58e1be5f881e5cb')
- depends_on('xproto', type='build')
+ depends_on('xproto')
+ depends_on('xorg-cf-files', type='run')
depends_on('pkgconfig', type='build')
+
+ def configure_args(self):
+ args = []
+ cfgdir = self.spec['xorg-cf-files'].prefix.lib.X11.config
+ args.append('--with-config-dir={0}'.format(cfgdir))
+ return args
diff --git a/var/spack/repos/builtin/packages/imlib2/package.py b/var/spack/repos/builtin/packages/imlib2/package.py
index b039c0676f..3d0156bb7e 100644
--- a/var/spack/repos/builtin/packages/imlib2/package.py
+++ b/var/spack/repos/builtin/packages/imlib2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,11 +11,13 @@ class Imlib2(AutotoolsPackage, SourceforgePackage):
manipulation, arbitrary polygon support
"""
- homepage = "http://sourceforge.net/projects/enlightenment/"
+ homepage = "https://sourceforge.net/projects/enlightenment/"
sourceforge_mirror_path = "enlightenment/imlib2-1.5.1.tar.bz2"
maintainers = ['TheQueasle']
+ version('1.7.1', sha256='033a6a639dcbc8e03f65ff05e57068e7346d50ee2f2fff304bb9095a1b2bc407')
+ version('1.7.0', sha256='1976ca3db48cbae79cd0fc737dabe39cc81494fc2560e1d22821e7dc9c22b37d')
version('1.6.1', sha256='4d393a77e13da883c8ee2da3b029da3570210fe37d000c9ac33d9fce751b166d')
version('1.6.0', sha256='cfc440ddfaed5fc85ba2572ad8d87a87cd77a5bffb33ebca882c42cefcd8691d')
version('1.5.1', sha256='fa4e57452b8843f4a70f70fd435c746ae2ace813250f8c65f977db5d7914baae')
@@ -28,3 +30,4 @@ class Imlib2(AutotoolsPackage, SourceforgePackage):
depends_on('libpng')
depends_on('libid3tag')
depends_on('libjpeg-turbo')
+ depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/imp/package.py b/var/spack/repos/builtin/packages/imp/package.py
index fc9dd37990..517d3bc3c6 100644
--- a/var/spack/repos/builtin/packages/imp/package.py
+++ b/var/spack/repos/builtin/packages/imp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/impute2/package.py b/var/spack/repos/builtin/packages/impute2/package.py
index f4e040e67d..a70766be17 100644
--- a/var/spack/repos/builtin/packages/impute2/package.py
+++ b/var/spack/repos/builtin/packages/impute2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/infernal/package.py b/var/spack/repos/builtin/packages/infernal/package.py
index d855013ec1..2f70d25a6a 100644
--- a/var/spack/repos/builtin/packages/infernal/package.py
+++ b/var/spack/repos/builtin/packages/infernal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/influxdb/package.py b/var/spack/repos/builtin/packages/influxdb/package.py
index 9416ca2ac6..d4f236b7ca 100644
--- a/var/spack/repos/builtin/packages/influxdb/package.py
+++ b/var/spack/repos/builtin/packages/influxdb/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
+from spack import *
+
_versions = {
'1.8.1': {
'Linux_amd64': ('64e60e438ac8a8fdacc6623f238c40bffae31c795642146d70eb316533d3d70f', 'https://dl.influxdata.com/influxdb/releases/influxdb-1.8.1-static_linux_amd64.tar.gz'),
diff --git a/var/spack/repos/builtin/packages/iniparser/package.py b/var/spack/repos/builtin/packages/iniparser/package.py
index 18beca3072..935813dad8 100644
--- a/var/spack/repos/builtin/packages/iniparser/package.py
+++ b/var/spack/repos/builtin/packages/iniparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/inputproto/package.py b/var/spack/repos/builtin/packages/inputproto/package.py
index b429a12350..f73303c8e3 100644
--- a/var/spack/repos/builtin/packages/inputproto/package.py
+++ b/var/spack/repos/builtin/packages/inputproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Inputproto(AutotoolsPackage, XorgPackage):
This extension defines a protocol to provide additional input devices
management such as graphic tablets."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/inputproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/inputproto"
xorg_mirror_path = "proto/inputproto-2.3.2.tar.gz"
version('2.3.2', sha256='10eaadd531f38f7c92ab59ef0708ca195caf3164a75c4ed99f0c04f2913f6ef3')
diff --git a/var/spack/repos/builtin/packages/intel-daal/package.py b/var/spack/repos/builtin/packages/intel-daal/package.py
index 67eccff1fa..df48989c02 100644
--- a/var/spack/repos/builtin/packages/intel-daal/package.py
+++ b/var/spack/repos/builtin/packages/intel-daal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,27 +12,27 @@ class IntelDaal(IntelPackage):
homepage = "https://software.intel.com/en-us/daal"
version('2020.2.254', sha256='08528bc150dad312ff2ae88ce12d6078ed8ba2f378f4bf3daf0fbbb9657dce1e',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16822/l_daal_2020.2.254.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16822/l_daal_2020.2.254.tgz')
version('2020.1.217', sha256='3f84dea0ce1038ac1b9c25b3e2c02e9fac440fa36cc8adfce69edfc06fe0edda',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16536/l_daal_2020.1.217.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16536/l_daal_2020.1.217.tgz')
version('2020.0.166', sha256='695166c9ab32ac5d3006d6d35162db3c98734210507144e315ed7c3b7dbca9c1',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16234/l_daal_2020.0.166.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16234/l_daal_2020.0.166.tgz')
version('2019.5.281', sha256='e92aaedbe35c9daf1c9483260cb2363da8a85fa1aa5566eb38cf4b1f410bc368',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15818/l_daal_2019.5.281.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15818/l_daal_2019.5.281.tgz')
version('2019.4.243', sha256='c74486a555ca5636c2ac1b060d5424726c022468f3ee0898bb46e333cda6f7b8',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15552/l_daal_2019.4.243.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15552/l_daal_2019.4.243.tgz')
version('2019.3.199', sha256='1f7d9cdecc1091b03f1ee6303fc7566179d1e3f1813a98ef7a6239f7d456b8ef',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15277/l_daal_2019.3.199.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15277/l_daal_2019.3.199.tgz')
version('2019.2.187', sha256='2982886347e9376e892a5c4e22fa1d4b7b843e1ae988a107dd2d0a639f257765',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15097/l_daal_2019.2.187.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15097/l_daal_2019.2.187.tgz')
version('2019.1.144', sha256='1672afac568c93e185283cf7e044d511381092ebc95d7204c4dccb83cc493197',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14869/l_daal_2019.1.144.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14869/l_daal_2019.1.144.tgz')
version('2019.0.117', sha256='85ac8e983bc9b9cc635e87cb4ec775ffd3695e44275d20fdaf53c19ed280d69f',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13577/l_daal_2019.0.117.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13577/l_daal_2019.0.117.tgz')
version('2018.3.222', sha256='378fec529a36508dd97529037e1164ff98e0e062a9a47ede99ccf9e91493d1e2',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13007/l_daal_2018.3.222.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13007/l_daal_2018.3.222.tgz')
version('2018.2.199', sha256='cee30299b3ffaea515f5a9609f4df0f644579c8a1ba2b61747b390f6caf85b14',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12727/l_daal_2018.2.199.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12727/l_daal_2018.2.199.tgz')
version('2018.1.163', sha256='ac96b5a6c137cda18817d9b3505975863f8f53347225ebb6ccdaaf4bdb8dc349',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12414/l_daal_2018.1.163.tgz')
version('2018.0.128', sha256='d13a7cd1b6779971f2ba46797447de9409c98a4d2f0eb0dc9622d9d63ac8990f',
@@ -48,8 +48,8 @@ class IntelDaal(IntelPackage):
version('2017.0.098', sha256='a7064425653b4f5f0fe51e25358d267d8ae023179eece61e08da891b67d79fe5',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9664/l_daal_2017.0.098.tgz')
version('2016.3.210', sha256='367eaef21ea0143c11ae3fd56cd2a05315768c059e14caa15894bcf96853687c',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9099/l_daal_2016.3.210.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9099/l_daal_2016.3.210.tgz')
version('2016.2.181', sha256='afdb65768957784d28ac537b4933a86eb4193c68a636157caed17b29ccdbfacb',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/8687/l_daal_2016.2.181.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/8687/l_daal_2016.2.181.tgz')
provides('daal')
diff --git a/var/spack/repos/builtin/packages/intel-gpu-tools/package.py b/var/spack/repos/builtin/packages/intel-gpu-tools/package.py
index 0102c42caa..85e852e5b3 100644
--- a/var/spack/repos/builtin/packages/intel-gpu-tools/package.py
+++ b/var/spack/repos/builtin/packages/intel-gpu-tools/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class IntelGpuTools(AutotoolsPackage, XorgPackage):
"""Intel GPU Tools is a collection of tools for development and testing of
diff --git a/var/spack/repos/builtin/packages/intel-ipp/package.py b/var/spack/repos/builtin/packages/intel-ipp/package.py
index 8201779bce..66b0f46dd0 100644
--- a/var/spack/repos/builtin/packages/intel-ipp/package.py
+++ b/var/spack/repos/builtin/packages/intel-ipp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,29 +12,29 @@ class IntelIpp(IntelPackage):
homepage = "https://software.intel.com/en-us/intel-ipp"
version('2020.2.254', sha256='18266ad1eec9b5b17e76da24f1aa9a9147300e5bd345e6bdad58d7187392fa77',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16846/l_ipp_2020.2.254.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16846/l_ipp_2020.2.254.tgz')
version('2020.1.217', sha256='0bf8ac7e635e7e602cf201063a1a7dea3779b093104563fdb15e6b7ecf2f00a7',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16534/l_ipp_2020.1.217.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16534/l_ipp_2020.1.217.tgz')
version('2020.0.166', sha256='6844007892ba524e828f245355cee44e8149f4c233abbbea16f7bb55a7d6ecff',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16233/l_ipp_2020.0.166.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16233/l_ipp_2020.0.166.tgz')
version('2019.5.281', sha256='61d1e1da1a4a50f1cf02a3ed44e87eed05e94d58b64ef1e67a3bdec363bee713',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15817/l_ipp_2019.5.281.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15817/l_ipp_2019.5.281.tgz')
version('2019.4.243', sha256='d4f4232323e66b010d8440c75189aeb6a3249966e05035242b21982238a7a7f2',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15541/l_ipp_2019.4.243.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15541/l_ipp_2019.4.243.tgz')
version('2019.3.199', sha256='02545383206c1ae4dd66bfa6a38e2e14480ba11932eeed632df8ab798aa15ccd',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15276/l_ipp_2019.3.199.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15276/l_ipp_2019.3.199.tgz')
version('2019.2.187', sha256='280e9081278a0db3892fe82474c1201ec780a6f7c8d1f896494867f4b3bd8421',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15096/l_ipp_2019.2.187.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15096/l_ipp_2019.2.187.tgz')
version('2019.1.144', sha256='1eb7cd0fba74615aeafa4e314c645414497eb73f1705200c524fe78f00620db3',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14887/l_ipp_2019.1.144.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14887/l_ipp_2019.1.144.tgz')
version('2019.0.117', sha256='d552ba49fba58f0e94da2048176f21c5dfd490dca7c5ce666dfc2d18db7fd551',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13576/l_ipp_2019.0.117.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13576/l_ipp_2019.0.117.tgz')
version('2018.4.274', sha256='bdc6082c65410c98ccf6daf239e0a6625d15ec5e0ddc1c0563aad42b6ba9063c',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13726/l_ipp_2018.4.274.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13726/l_ipp_2018.4.274.tgz')
version('2018.3.222', sha256='bb783c5e6220e240f19136ae598cd1c1d647496495139ce680de58d3d5496934',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13006/l_ipp_2018.3.222.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13006/l_ipp_2018.3.222.tgz')
version('2018.2.199', sha256='55cb5c910b2c1e2bd798163fb5019b992b1259a0692e328bb9054778cf01562b',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12726/l_ipp_2018.2.199.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12726/l_ipp_2018.2.199.tgz')
version('2018.0.128', sha256='da568ceec1b7acbcc8f666b73d4092788b037b1b03c0436974b82155056ed166',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12071/l_ipp_2018.0.128.tgz')
version('2017.3.196', sha256='50d49a1000a88a8a58bd610466e90ae28d07a70993a78cbbf85d44d27c4232b6',
@@ -47,6 +47,6 @@ class IntelIpp(IntelPackage):
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9663/l_ipp_2017.0.098.tgz')
# built from parallel_studio_xe_2016.3.067
version('9.0.3.210', sha256='8ce7bf17f4a0bbf8c441063de26be7f6e0f6179789e23f24eaa8b712632b3cdd',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9067/l_ipp_9.0.3.210.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9067/l_ipp_9.0.3.210.tgz')
provides('ipp')
diff --git a/var/spack/repos/builtin/packages/intel-llvm/package.py b/var/spack/repos/builtin/packages/intel-llvm/package.py
index 0be87d4a03..f14094eba4 100644
--- a/var/spack/repos/builtin/packages/intel-llvm/package.py
+++ b/var/spack/repos/builtin/packages/intel-llvm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/intel-mkl/package.py b/var/spack/repos/builtin/packages/intel-mkl/package.py
index 51a508a67a..d7050b03b7 100644
--- a/var/spack/repos/builtin/packages/intel-mkl/package.py
+++ b/var/spack/repos/builtin/packages/intel-mkl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,32 +13,34 @@ class IntelMkl(IntelPackage):
homepage = "https://software.intel.com/en-us/intel-mkl"
+ version('2020.4.304', sha256='2314d46536974dbd08f2a4e4f9e9a155dc7e79e2798c74e7ddfaad00a5917ea5',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16917/l_mkl_2020.4.304.tgz')
version('2020.3.279', sha256='2b8e434ecc9462491130ba25a053927fd1a2eca05e12acb5936b08c486857a04',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16903/l_mkl_2020.3.279.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16903/l_mkl_2020.3.279.tgz')
version('2020.2.254', sha256='ed00a267af362a6c14212bd259ab1673d64337e077263033edeef8ac72c10223',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16849/l_mkl_2020.2.254.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16849/l_mkl_2020.2.254.tgz')
version('2020.1.217', sha256='082a4be30bf4f6998e4d6e3da815a77560a5e66a68e254d161ab96f07086066d',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16533/l_mkl_2020.1.217.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16533/l_mkl_2020.1.217.tgz')
version('2020.0.166', sha256='f6d92deb3ff10b11ba3df26b2c62bb4f0f7ae43e21905a91d553e58f0f5a8ae0',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16232/l_mkl_2020.0.166.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16232/l_mkl_2020.0.166.tgz')
version('2019.5.281', sha256='9995ea4469b05360d509c9705e9309dc983c0a10edc2ae3a5384bc837326737e',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15816/l_mkl_2019.5.281.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15816/l_mkl_2019.5.281.tgz')
version('2019.4.243', sha256='fcac7b0369665d93f0c4dd98afe2816aeba5410e2b760655fe55fc477f8f33d0',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15540/l_mkl_2019.4.243.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15540/l_mkl_2019.4.243.tgz')
version('2019.3.199', sha256='06de2b54f4812e7c39a118536259c942029fe1d6d8918ad9df558a83c4162b8f',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15275/l_mkl_2019.3.199.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15275/l_mkl_2019.3.199.tgz')
version('2019.2.187', sha256='2bf004e6b5adb4f956993d6c20ea6ce289bb630314dd501db7f2dd5b9978ed1d',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15095/l_mkl_2019.2.187.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15095/l_mkl_2019.2.187.tgz')
version('2019.1.144', sha256='5205a460a9c685f7a442868367389b2d0c25e1455346bc6a37c5b8ff90a20fbb',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14895/l_mkl_2019.1.144.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14895/l_mkl_2019.1.144.tgz')
version('2019.0.117', sha256='4e1fe2c705cfc47050064c0d6c4dee1a8c6740ac1c4f64dde9c7511c4989c7ad',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13575/l_mkl_2019.0.117.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13575/l_mkl_2019.0.117.tgz')
version('2018.4.274', sha256='18eb3cde3e6a61a88f25afff25df762a560013f650aaf363f7d3d516a0d04881',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13725/l_mkl_2018.4.274.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13725/l_mkl_2018.4.274.tgz')
version('2018.3.222', sha256='108d59c0927e58ce8c314db6c2b48ee331c3798f7102725f425d6884eb6ed241',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13005/l_mkl_2018.3.222.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13005/l_mkl_2018.3.222.tgz')
version('2018.2.199', sha256='e28d12173bef9e615b0ded2f95f59a42b3e9ad0afa713a79f8801da2bfb31936',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12725/l_mkl_2018.2.199.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12725/l_mkl_2018.2.199.tgz')
version('2018.1.163', sha256='f6dc263fc6f3c350979740a13de1b1e8745d9ba0d0f067ece503483b9189c2ca',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12414/l_mkl_2018.1.163.tgz')
version('2018.0.128', sha256='c368baa40ca88057292512534d7fad59fa24aef06da038ea0248e7cd1e280cec',
@@ -55,10 +57,10 @@ class IntelMkl(IntelPackage):
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9662/l_mkl_2017.0.098.tgz')
# built from parallel_studio_xe_2016.3.x
version('11.3.3.210', sha256='ff858f0951fd698e9fb30147ea25a8a810c57f0126c8457b3b0cdf625ea43372',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9068/l_mkl_11.3.3.210.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9068/l_mkl_11.3.3.210.tgz')
# built from parallel_studio_xe_2016.2.062
version('11.3.2.181', sha256='bac04a07a1fe2ae4996a67d1439ee90c54f31305e8663d1ccfce043bed84fc27',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/8711/l_mkl_11.3.2.181.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/8711/l_mkl_11.3.2.181.tgz')
depends_on('cpio', type='build')
diff --git a/var/spack/repos/builtin/packages/intel-mpi-benchmarks/add_const.patch b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/add_const.patch
new file mode 100644
index 0000000000..6b807f2c9d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/add_const.patch
@@ -0,0 +1,13 @@
+diff --git a/src_cpp/args_parser.h b/src_cpp/args_parser.h
+index 0a6c748..cfd6a89 100644
+--- a/src_cpp/args_parser.h
++++ b/src_cpp/args_parser.h
+@@ -216,7 +216,7 @@ class args_parser {
+ protected:
+ std::set<flag_t> flags;
+ std::string current_group;
+- std::map<std::string, std::vector<smart_ptr<option> > > expected_args;
++ std::map<const std::string, std::vector<smart_ptr<option> > > expected_args;
+ std::vector<std::string> unknown_args;
+ option *prev_option;
+ error_t last_error;
diff --git a/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py
index 32ef76d2d9..f93b04d343 100644
--- a/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py
+++ b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -27,6 +27,11 @@ class IntelMpiBenchmarks(MakefilePackage):
depends_on('mpi')
+ # https://github.com/intel/mpi-benchmarks/pull/19
+ patch('add_const.patch', when='@:2019.6')
+ # https://github.com/intel/mpi-benchmarks/pull/20
+ patch('reorder_benchmark_macros.patch', when='@:2019.6')
+
variant(
'benchmark', default='all',
values=('mpi1', 'ext', 'io', 'nbc',
diff --git a/var/spack/repos/builtin/packages/intel-mpi-benchmarks/reorder_benchmark_macros.patch b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/reorder_benchmark_macros.patch
new file mode 100644
index 0000000000..2d77bce886
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/reorder_benchmark_macros.patch
@@ -0,0 +1,108 @@
+diff --git a/src_cpp/EXT/EXT_benchmark.cpp b/src_cpp/EXT/EXT_benchmark.cpp
+index b5179ca..62abd64 100644
+--- a/src_cpp/EXT/EXT_benchmark.cpp
++++ b/src_cpp/EXT/EXT_benchmark.cpp
+@@ -70,9 +70,10 @@ extern "C" {
+
+ using namespace std;
+
+-#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>; \
+-DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>), BMRK_NAME) \
++#define BENCHMARK(BMRK_FN, BMRK_NAME) \
+ template<> smart_ptr<Bmark_descr> OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>::descr = NULL; \
++DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>), BMRK_NAME) \
++template class OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>; \
+ template<> bool OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>::init_description()
+
+ BENCHMARK(IMB_window, Window)
+diff --git a/src_cpp/IO/IO_benchmark.cpp b/src_cpp/IO/IO_benchmark.cpp
+index 6a99612..27f9771 100644
+--- a/src_cpp/IO/IO_benchmark.cpp
++++ b/src_cpp/IO/IO_benchmark.cpp
+@@ -70,9 +70,10 @@ extern "C" {
+
+ using namespace std;
+
+-#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>; \
+-DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>), BMRK_NAME) \
++#define BENCHMARK(BMRK_FN, BMRK_NAME) \
+ template<> smart_ptr<Bmark_descr> OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>::descr = NULL; \
++DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>), BMRK_NAME) \
++template class OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>; \
+ template<> bool OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>::init_description()
+
+ BENCHMARK(IMB_write_indv, S_Write_Indv)
+diff --git a/src_cpp/MPI1/MPI1_benchmark.cpp b/src_cpp/MPI1/MPI1_benchmark.cpp
+index 9f7da65..57a6ceb 100644
+--- a/src_cpp/MPI1/MPI1_benchmark.cpp
++++ b/src_cpp/MPI1/MPI1_benchmark.cpp
+@@ -70,10 +70,11 @@ extern "C" {
+
+ using namespace std;
+
+-#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>; \
+-DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>), BMRK_NAME) \
++#define BENCHMARK(BMRK_FN, BMRK_NAME) \
+ template<> smart_ptr<Bmark_descr> OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>::descr = NULL; \
+-template<> bool OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>::init_description()
++DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>), BMRK_NAME) \
++template class OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>; \
++template<> bool OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>::init_description()
+
+
+ BENCHMARK(IMB_pingpong, PingPong)
+diff --git a/src_cpp/MT/MT_benchmark.cpp b/src_cpp/MT/MT_benchmark.cpp
+index 2378fbd..9041364 100644
+--- a/src_cpp/MT/MT_benchmark.cpp
++++ b/src_cpp/MT/MT_benchmark.cpp
+@@ -73,12 +73,14 @@ goods and services.
+ return OLDNAME(repeat, skip, in, out, count, type, comm, rank, size, idata, odata); \
+ }
+
+-#define DECLARE_INHERITED_BENCHMARKMT2(BS, FUNC, NAME) template class BenchmarkMT<BS, FUNC>; \
++#define DECLARE_INHERITED_BENCHMARKMT2(BS, FUNC, NAME) \
+ DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME3(BenchmarkMT<BS, FUNC>), NAME) \
++ template class BenchmarkMT<BS, FUNC>; \
+ template <> void BenchmarkMT<BS, FUNC >::init_flags()
+
+-#define DECLARE_INHERITED_BENCHMARKMT(BS, FUNC, NAME) template class BenchmarkMT<BS, FUNC>; \
++#define DECLARE_INHERITED_BENCHMARKMT(BS, FUNC, NAME) \
+ DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME2(BenchmarkMT<BS, FUNC>), NAME) \
++ template class BenchmarkMT<BS, FUNC>; \
+ template <> void BenchmarkMT<BS, FUNC >::init_flags()
+
+
+diff --git a/src_cpp/NBC/NBC_benchmark.cpp b/src_cpp/NBC/NBC_benchmark.cpp
+index 94548fd..fa9101d 100644
+--- a/src_cpp/NBC/NBC_benchmark.cpp
++++ b/src_cpp/NBC/NBC_benchmark.cpp
+@@ -70,9 +70,10 @@ extern "C" {
+
+ using namespace std;
+
+-#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>; \
+-DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>), BMRK_NAME) \
++#define BENCHMARK(BMRK_FN, BMRK_NAME) \
+ template<> smart_ptr<Bmark_descr> OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>::descr = NULL; \
++DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>), BMRK_NAME) \
++template class OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>; \
+ template<> bool OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>::init_description()
+
+ BENCHMARK(IMB_ibcast, Ibcast)
+diff --git a/src_cpp/RMA/RMA_benchmark.cpp b/src_cpp/RMA/RMA_benchmark.cpp
+index b33553a..1ed4ce9 100644
+--- a/src_cpp/RMA/RMA_benchmark.cpp
++++ b/src_cpp/RMA/RMA_benchmark.cpp
+@@ -70,9 +70,10 @@ extern "C" {
+
+ using namespace std;
+
+-#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>; \
+-DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>), BMRK_NAME) \
++#define BENCHMARK(BMRK_FN, BMRK_NAME) \
+ template<> smart_ptr<Bmark_descr> OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>::descr = NULL; \
++DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>), BMRK_NAME) \
++template class OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>; \
+ template<> bool OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>::init_description()
+
+
diff --git a/var/spack/repos/builtin/packages/intel-mpi/package.py b/var/spack/repos/builtin/packages/intel-mpi/package.py
index 532b7ab864..e8e20af1cb 100644
--- a/var/spack/repos/builtin/packages/intel-mpi/package.py
+++ b/var/spack/repos/builtin/packages/intel-mpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,30 +11,34 @@ class IntelMpi(IntelPackage):
homepage = "https://software.intel.com/en-us/intel-mpi-library"
+ version('2019.10.317', sha256='28e1b615e63d2170a99feedc75e3b0c5a7e1a07dcdaf0a4181831b07817a5346',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17534/l_mpi_2019.10.317.tgz')
+ version('2019.9.304', sha256='618a5dc2de54306645e6428c5eb7d267b54b11b5a83dfbcad7d0f9e0d90bb2e7',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17263/l_mpi_2019.9.304.tgz')
version('2019.8.254', sha256='fa163b4b79bd1b7509980c3e7ad81b354fc281a92f9cf2469bf4d323899567c0',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16814/l_mpi_2019.8.254.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16814/l_mpi_2019.8.254.tgz')
version('2019.7.217', sha256='90383b0023f84ac003a55d8bb29dbcf0c639f43a25a2d8d8698a16e770ac9c07',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16546/l_mpi_2019.7.217.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16546/l_mpi_2019.7.217.tgz')
version('2019.6.166', sha256='119be69f1117c93a9e5e9b8b4643918e55d2a55a78ad9567f77d16cdaf18cd6e',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16120/l_mpi_2019.6.166.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16120/l_mpi_2019.6.166.tgz')
version('2019.5.281', sha256='9c59da051f1325b221e5bc4d8b689152e85d019f143069fa39e17989306811f4',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15838/l_mpi_2019.5.281.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15838/l_mpi_2019.5.281.tgz')
version('2019.4.243', sha256='233a8660b92ecffd89fedd09f408da6ee140f97338c293146c9c080a154c5fcd',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15553/l_mpi_2019.4.243.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15553/l_mpi_2019.4.243.tgz')
version('2019.3.199', sha256='5304346c863f64de797250eeb14f51c5cfc8212ff20813b124f20e7666286990',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15260/l_mpi_2019.3.199.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15260/l_mpi_2019.3.199.tgz')
version('2019.2.187', sha256='6a3305933b5ef9e3f7de969e394c91620f3fa4bb815a4f439577739d04778b20',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15040/l_mpi_2019.2.187.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15040/l_mpi_2019.2.187.tgz')
version('2019.1.144', sha256='dac86a5db6b86503313742b17535856a432955604f7103cb4549a9bfc256c3cd',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14879/l_mpi_2019.1.144.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14879/l_mpi_2019.1.144.tgz')
version('2019.0.117', sha256='dfb403f49c1af61b337aa952b71289c7548c3a79c32c57865eab0ea0f0e1bc08',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13584/l_mpi_2019.0.117.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13584/l_mpi_2019.0.117.tgz')
version('2018.4.274', sha256='a1114b3eb4149c2f108964b83cad02150d619e50032059d119ac4ffc9d5dd8e0',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13741/l_mpi_2018.4.274.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13741/l_mpi_2018.4.274.tgz')
version('2018.3.222', sha256='5021d14b344fc794e89f146e4d53d70184d7048610895d7a6a1e8ac0cf258999',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13112/l_mpi_2018.3.222.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13112/l_mpi_2018.3.222.tgz')
version('2018.2.199', sha256='0927f1bff90d10974433ba2892e3fd38e6fee5232ab056a9f9decf565e814460',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12748/l_mpi_2018.2.199.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12748/l_mpi_2018.2.199.tgz')
version('2018.1.163', sha256='130b11571c3f71af00a722fa8641db5a1552ac343d770a8304216d8f5d00e75c',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12414/l_mpi_2018.1.163.tgz')
version('2018.0.128', sha256='debaf2cf80df06db9633dfab6aa82213b84a665a55ee2b0178403906b5090209',
@@ -49,7 +53,7 @@ class IntelMpi(IntelPackage):
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11014/l_mpi_2017.1.132.tgz')
# built from parallel_studio_xe_2016.3.068
version('5.1.3.223', sha256='544f4173b09609beba711fa3ba35567397ff3b8390e4f870a3307f819117dd9b',
- url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9278/l_mpi_p_5.1.3.223.tgz')
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9278/l_mpi_p_5.1.3.223.tgz')
provides('mpi')
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py
index 5cc55f6c2f..acd9e10ac2 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py
@@ -1,14 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import platform
from spack import *
-releases = {
- '2021.1.1': {'irc_id': '17391', 'build': '54'}}
-
class IntelOneapiCcl(IntelOneApiLibraryPackage):
"""Intel oneAPI CCL."""
@@ -17,11 +15,22 @@ class IntelOneapiCcl(IntelOneApiLibraryPackage):
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/oneccl.html'
- version('2021.1.1', sha256='de732df57a03763a286106c8b885fd60e83d17906936a8897a384b874e773f49', expand=False)
-
- def __init__(self, spec):
- self.component_info(dir_name='ccl',
- components='intel.oneapi.lin.ccl.devel',
- releases=releases,
- url_name='oneapi_ccl')
- super(IntelOneapiCcl, self).__init__(spec)
+ depends_on('intel-oneapi-mpi')
+
+ if platform.system() == 'Linux':
+ version('2021.3.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17920/l_oneapi_ccl_p_2021.3.0.343_offline.sh',
+ sha256='0bb63e2077215cc161973b2e5029919c55e84aea7620ee9a848f6c2cc1245e3f',
+ expand=False)
+ version('2021.2.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17731/l_oneapi_ccl_p_2021.2.0.269_offline.sh',
+ sha256='18b7875030243295b75471e235e91e5f7b4fc15caf18c07d941a6d47fba378d7',
+ expand=False)
+ version('2021.1.1',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17391/l_oneapi_ccl_p_2021.1.1.54_offline.sh',
+ sha256='de732df57a03763a286106c8b885fd60e83d17906936a8897a384b874e773f49',
+ expand=False)
+
+ @property
+ def component_dir(self):
+ return 'ccl'
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py b/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py
index 6a90e10621..c28753dcd1 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py
@@ -1,86 +1,101 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import glob
+import platform
import subprocess
+from os import path
from spack import *
-releases = {'2021.1':
- {'irc_id': '17427', 'build': '2684'}}
-
-
class IntelOneapiCompilers(IntelOneApiPackage):
- """Intel oneAPI compilers.
-
- Contains icc, icpc, icx, icpx, dpcpp, ifort, ifx.
-
- """
+ """Intel OneAPI compilers
+ Provides Classic and Beta compilers for: Fortran, C, C++"""
maintainers = ['rscohn2']
- homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html'
-
- version('2021.1', sha256='666b1002de3eab4b6f3770c42bcf708743ac74efeba4c05b0834095ef27a11b9', expand=False)
+ homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi.html"
depends_on('patchelf', type='build')
- def __init__(self, spec):
- self.component_info(
- dir_name='compiler',
- components=('intel.oneapi.lin.dpcpp-cpp-compiler-pro'
- ':intel.oneapi.lin.ifort-compiler'),
- releases=releases,
- url_name='HPCKit')
- super(IntelOneapiCompilers, self).__init__(spec)
-
- def _join_prefix(self, path):
- return join_path(self.prefix, 'compiler', 'latest', 'linux', path)
+ if platform.system() == 'Linux':
+ version('2021.3.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17928/l_dpcpp-cpp-compiler_p_2021.3.0.3168_offline.sh',
+ sha256='f848d81b7cabc76c2841c9757abb2290921efd7b82491d830605f5785600e7a1',
+ expand=False)
+ resource(name='fortran-installer',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17959/l_fortran-compiler_p_2021.3.0.3168_offline.sh',
+ sha256='c4553f7e707be8e8e196f625e4e7fbc8eff5474f64ab85fc7146b5ed53ebc87c',
+ expand=False,
+ placement='fortran-installer',
+ when='@2021.3.0')
+ version('2021.2.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17749/l_dpcpp-cpp-compiler_p_2021.2.0.118_offline.sh',
+ sha256='5d01cbff1a574c3775510cd97ffddd27fdf56d06a6b0c89a826fb23da4336d59',
+ expand=False)
+ resource(name='fortran-installer',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17756/l_fortran-compiler_p_2021.2.0.136_offline.sh',
+ sha256='a62e04a80f6d2f05e67cd5acb03fa58857ee22c6bd581ec0651c0ccd5bdec5a1',
+ expand=False,
+ placement='fortran-installer',
+ when='@2021.2.0')
+ version('2021.1.2',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17513/l_dpcpp-cpp-compiler_p_2021.1.2.63_offline.sh',
+ sha256='68d6cb638091990e578e358131c859f3bbbbfbf975c581fd0b4b4d36476d6f0a',
+ expand=False)
+ resource(name='fortran-installer',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17508/l_fortran-compiler_p_2021.1.2.62_offline.sh',
+ sha256='29345145268d08a59fa7eb6e58c7522768466dd98f6d9754540d1a0803596829',
+ expand=False,
+ placement='fortran-installer',
+ when='@2021.1.2')
+
+ @property
+ def component_dir(self):
+ return 'compiler'
def _ld_library_path(self):
dirs = ['lib',
- 'lib/x64',
- 'lib/emu',
- 'lib/oclfpga/host/linux64/lib',
- 'lib/oclfpga/linux64/lib',
- 'compiler/lib/intel64_lin',
- 'compiler/lib']
+ join_path('lib', 'x64'),
+ join_path('lib', 'emu'),
+ join_path('lib', 'oclfpga', 'host', 'linux64', 'lib'),
+ join_path('lib', 'oclfpga', 'linux64', 'lib'),
+ join_path('compiler', 'lib', 'intel64_lin'),
+ join_path('compiler', 'lib')]
for dir in dirs:
- yield self._join_prefix(dir)
+ yield join_path(self.component_path, 'linux', dir)
def install(self, spec, prefix):
- # For quick turnaround debugging, comment out line below and
- # use the copy instead
+ # install cpp
+ # Copy instead of install to speed up debugging
+ # subprocess.run(f'cp -r /opt/intel/oneapi/compiler {prefix}', shell=True)
super(IntelOneapiCompilers, self).install(spec, prefix)
- # Copy installed compiler instead of running the installer
- # from shutil import copytree
- # copytree('/opt/intel/oneapi/compiler', join_path(prefix, 'compiler'),
- # symlinks=True)
+ # install fortran
+ super(IntelOneapiCompilers, self).install(
+ spec,
+ prefix,
+ installer_path=glob.glob(join_path('fortran-installer', '*'))[0])
+
+ # Some installers have a bug and do not return an error code when failing
+ if not path.isfile(join_path(self.component_path, 'linux',
+ 'bin', 'intel64', 'ifort')):
+ raise RuntimeError('install failed')
+
+ # set rpath so 'spack compiler add' can check version strings
+ # without setting LD_LIBRARY_PATH
rpath = ':'.join(self._ld_library_path())
- patch_dirs = ['compiler/lib/intel64_lin',
- 'compiler/lib/intel64',
+ patch_dirs = [join_path('compiler', 'lib', 'intel64_lin'),
+ join_path('compiler', 'lib', 'intel64'),
'bin']
for pd in patch_dirs:
- for file in glob.glob(self._join_prefix(join_path(pd, '*'))):
+ patchables = glob.glob(join_path(self.component_path, 'linux', pd, '*'))
+ patchables.append(join_path(self.component_path,
+ 'linux', 'lib', 'icx-lto.so'))
+ for file in patchables:
# Try to patch all files, patchelf will do nothing if
# file should not be patched
subprocess.call(['patchelf', '--set-rpath', rpath, file])
-
- def setup_run_environment(self, env):
- env.prepend_path('PATH', self._join_prefix('bin'))
- env.prepend_path('CPATH', self._join_prefix('include'))
- env.prepend_path('LIBRARY_PATH', self._join_prefix('lib'))
- for dir in self._ld_library_path():
- env.prepend_path('LD_LIBRARY_PATH', dir)
- env.set('CC', self._join_prefix('bin/icx'))
- env.set('CXX', self._join_prefix('bin/icpx'))
- env.set('FC', self._join_prefix('bin/ifx'))
- # Set these so that MPI wrappers will pick up these compilers
- # when this module is loaded.
- env.set('I_MPI_CC', 'icx')
- env.set('I_MPI_CXX', 'icpx')
- env.set('I_MPI_FC', 'ifx')
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py
index 501efd6a2b..17094fcb72 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py
@@ -1,13 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
-releases = {
- '2021.1.1': {'irc_id': '17443', 'build': '79'}}
+from spack import *
class IntelOneapiDal(IntelOneApiLibraryPackage):
@@ -17,11 +16,25 @@ class IntelOneapiDal(IntelOneApiLibraryPackage):
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onedal.html'
- version('2021.1.1', sha256='6e0e24bba462e80f0fba5a46e95cf0cca6cf17948a7753f8e396ddedd637544e', expand=False)
-
- def __init__(self, spec):
- self.component_info(dir_name='dal',
- components='intel.oneapi.lin.dal.devel',
- releases=releases,
- url_name='daal_oneapi')
- super(IntelOneapiDal, self).__init__(spec)
+ if platform.system() == 'Linux':
+ version('2021.3.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17905/l_daal_oneapi_p_2021.3.0.557_offline.sh',
+ sha256='4c2e77a3a2fa5f8a09b7d68760dfca6c07f3949010836cd6da34075463467995',
+ expand=False)
+ version('2021.2.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17747/l_daal_oneapi_p_2021.2.0.358_offline.sh',
+ sha256='cbf4e64dbd21c10179f2d1d7e8b8b0f12eeffe6921602df33276cd0ebd1f8e34',
+ expand=False)
+ version('2021.1.1',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17443/l_daal_oneapi_p_2021.1.1.79_offline.sh',
+ sha256='6e0e24bba462e80f0fba5a46e95cf0cca6cf17948a7753f8e396ddedd637544e',
+ expand=False)
+
+ depends_on('intel-oneapi-tbb')
+
+ provides('daal')
+ provides('onedal')
+
+ @property
+ def component_dir(self):
+ return 'dal'
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py
index 2a226bf2d2..0412ccd770 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py
@@ -1,13 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
-releases = {
- '2021.1.1': {'irc_id': '17385', 'build': '55'}}
+from spack import *
class IntelOneapiDnn(IntelOneApiLibraryPackage):
@@ -17,11 +16,32 @@ class IntelOneapiDnn(IntelOneApiLibraryPackage):
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onednn.html'
- version('2021.1.1', sha256='24002c57bb8931a74057a471a5859d275516c331fd8420bee4cae90989e77dc3', expand=False)
-
- def __init__(self, spec):
- self.component_info(dir_name='dnn',
- components='intel.oneapi.lin.dnnl.devel',
- releases=releases,
- url_name='onednn')
- super(IntelOneapiDnn, self).__init__(spec)
+ if platform.system() == 'Linux':
+ version('2021.3.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17923/l_onednn_p_2021.3.0.344_offline.sh',
+ sha256='1521f6cbffcf9ce0c7b5dfcf1a2546a4a0c8d8abc99f3011709039aaa9e0859a',
+ expand=False)
+ version('2021.2.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17751/l_onednn_p_2021.2.0.228_offline.sh',
+ sha256='62121a3355298211a124ff4e71c42fc172bf1061019be6c6120830a1a502aa88',
+ expand=False)
+ version('2021.1.1',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17385/l_onednn_p_2021.1.1.55_offline.sh',
+ sha256='24002c57bb8931a74057a471a5859d275516c331fd8420bee4cae90989e77dc3',
+ expand=False)
+
+ depends_on('intel-oneapi-tbb')
+
+ @property
+ def component_dir(self):
+ return 'dnnl'
+
+ @property
+ def headers(self):
+ include_path = join_path(self.component_path, 'cpu_dpcpp_gpu_dpcpp', 'include')
+ return find_headers('dnnl', include_path)
+
+ @property
+ def libs(self):
+ lib_path = join_path(self.component_path, 'cpu_dpcpp_gpu_dpcpp', 'lib')
+ return find_libraries(['libdnnl', 'libmkldnn'], root=lib_path, shared=True)
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py
new file mode 100644
index 0000000000..c583a31b82
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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)
+
+
+import platform
+
+from spack import *
+
+
+class IntelOneapiDpl(IntelOneApiLibraryPackage):
+ """Intel oneAPI DPL."""
+
+ maintainers = ['rscohn2']
+
+ homepage = 'https://github.com/oneapi-src/oneDPL'
+
+ if platform.system() == 'Linux':
+ version('2021.4.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17889/l_oneDPL_p_2021.4.0.337_offline.sh',
+ sha256='540ef0d308c4b0f13ea10168a90edd42a56dc0883024f6f1a678b94c10b5c170',
+ expand=False)
+
+ @property
+ def component_dir(self):
+ return 'dpl'
+
+ @property
+ def headers(self):
+ include_path = join_path(self.component_path, 'linux', 'include')
+ headers = find_headers('*', include_path, recursive=True)
+ # Force this directory to be added to include path, even
+ # though no files are here because all includes are relative
+ # to this path
+ headers.directories = [include_path]
+ return headers
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py
index 96a63addb6..85eb679351 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py
@@ -1,14 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import platform
from spack import *
-releases = {
- '2021.1.1': {'irc_id': '17436', 'build': '47'}}
-
class IntelOneapiIpp(IntelOneApiLibraryPackage):
"""Intel oneAPI IPP."""
@@ -17,13 +15,24 @@ class IntelOneapiIpp(IntelOneApiLibraryPackage):
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html'
- version('2021.1.1', sha256='2656a3a7f1f9f1438cbdf98fd472a213c452754ef9476dd65190a7d46618ba86', expand=False)
+ if platform.system() == 'Linux':
+ version('2021.3.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17958/l_ipp_oneapi_p_2021.3.0.333_offline.sh',
+ sha256='67e75c80813ec9a30d5fda5860f76122ae66fa2128a48c8461f5e6b100b38bbb',
+ expand=False)
+ version('2021.2.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17758/l_ipp_oneapi_p_2021.2.0.233_offline.sh',
+ sha256='ccdfc81f77203822d80151b40ce9e8fd82bb2de85a9b132ceed12d24d3f3ff52',
+ expand=False)
+ version('2021.1.1',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17436/l_ipp_oneapi_p_2021.1.1.47_offline.sh',
+ sha256='2656a3a7f1f9f1438cbdf98fd472a213c452754ef9476dd65190a7d46618ba86',
+ expand=False)
+
+ depends_on('intel-oneapi-tbb')
provides('ipp')
- def __init__(self, spec):
- self.component_info(dir_name='ipp',
- components='intel.oneapi.lin.ipp.devel',
- releases=releases,
- url_name='ipp_oneapi')
- super(IntelOneapiIpp, self).__init__(spec)
+ @property
+ def component_dir(self):
+ return 'ipp'
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py
index 7b07d8ff17..f783b770a5 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py
@@ -1,13 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
-releases = {
- '2021.1.1': {'irc_id': '17415', 'build': '54'}}
+from spack import *
class IntelOneapiIppcp(IntelOneApiLibraryPackage):
@@ -17,11 +16,20 @@ class IntelOneapiIppcp(IntelOneApiLibraryPackage):
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html'
- version('2021.1.1', sha256='c0967afae22c7a223ec42542bcc702121064cd3d8f680eff36169c94f964a936', expand=False)
-
- def __init__(self, spec):
- self.component_info(dir_name='ippcp',
- components='intel.oneapi.lin.ippcp.devel',
- releases=releases,
- url_name='ippcp_oneapi')
- super(IntelOneapiIppcp, self).__init__(spec)
+ if platform.system() == 'Linux':
+ version('2021.3.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17886/l_ippcp_oneapi_p_2021.3.0.315_offline.sh',
+ sha256='0214d132d8e64b02e9cc63182e2099fb9caebf8c240fb1629ae898c2e1f72fb9',
+ expand=False)
+ version('2021.2.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17684/l_ippcp_oneapi_p_2021.2.0.231_offline.sh',
+ sha256='64cd5924b42f924b6a8128a8bf8e686f5dc52b98f586ffac6c2e2f1585e3aba9',
+ expand=False)
+ version('2021.1.1',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17415/l_ippcp_oneapi_p_2021.1.1.54_offline.sh',
+ sha256='c0967afae22c7a223ec42542bcc702121064cd3d8f680eff36169c94f964a936',
+ expand=False)
+
+ @property
+ def component_dir(self):
+ return 'ippcp'
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
index 2b9ce4f3fe..6d9ee6dd91 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
@@ -1,13 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
-releases = {
- '2021.1.1': {'irc_id': '17402', 'build': '52'}}
+from spack import *
class IntelOneapiMkl(IntelOneApiLibraryPackage):
@@ -17,7 +16,21 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html'
- version('2021.1.1', sha256='818b6bd9a6c116f4578cda3151da0612ec9c3ce8b2c8a64730d625ce5b13cc0c', expand=False)
+ if platform.system() == 'Linux':
+ version('2021.3.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17901/l_onemkl_p_2021.3.0.520_offline.sh',
+ sha256='a06e1cdbfd8becc63440b473b153659885f25a6e3c4dcb2907ad9cd0c3ad59ce',
+ expand=False)
+ version('2021.2.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17757/l_onemkl_p_2021.2.0.296_offline.sh',
+ sha256='816e9df26ff331d6c0751b86ed5f7d243f9f172e76f14e83b32bf4d1d619dbae',
+ expand=False)
+ version('2021.1.1',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17402/l_onemkl_p_2021.1.1.52_offline.sh',
+ sha256='818b6bd9a6c116f4578cda3151da0612ec9c3ce8b2c8a64730d625ce5b13cc0c',
+ expand=False)
+
+ depends_on('intel-oneapi-tbb')
provides('fftw-api@3')
provides('scalapack')
@@ -25,31 +38,14 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
provides('lapack')
provides('blas')
- def __init__(self, spec):
- self.component_info(dir_name='mkl',
- components='intel.oneapi.lin.mkl.devel',
- releases=releases,
- url_name='onemkl')
- super(IntelOneapiMkl, self).__init__(spec)
-
- def _join_prefix(self, path):
- return join_path(self.prefix, 'mkl', 'latest', path)
-
- def _ld_library_path(self):
- dirs = ['lib/intel64']
- for dir in dirs:
- yield self._join_prefix(dir)
-
- def _library_path(self):
- dirs = ['lib/intel64']
- for dir in dirs:
- yield self._join_prefix(dir)
-
- def setup_run_environment(self, env):
- env.prepend_path('PATH', self._join_prefix('bin/intel64'))
- env.prepend_path('CPATH', self._join_prefix('include'))
- for dir in self._library_path():
- env.prepend_path('LIBRARY_PATH', dir)
- for dir in self._ld_library_path():
- env.prepend_path('LD_LIBRARY_PATH', dir)
- env.set('MKLROOT', join_path(self.prefix, 'mkl', 'latest'))
+ @property
+ def component_dir(self):
+ return 'mkl'
+
+ @property
+ def libs(self):
+ lib_path = join_path(self.component_path, 'lib', 'intel64')
+ mkl_libs = ['libmkl_intel_lp64', 'libmkl_sequential', 'libmkl_core']
+ libs = find_libraries(mkl_libs, root=lib_path, shared=True, recursive=False)
+ libs += find_system_libraries(['libpthread', 'libm', 'libdl'], shared=True)
+ return libs
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py
index 78a2080951..05e1401842 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py
@@ -1,39 +1,46 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import platform
import subprocess
from spack import *
-releases = {
- '2021.1.1': {'irc_id': '17397', 'build': '76'}}
-
class IntelOneapiMpi(IntelOneApiLibraryPackage):
"""Intel oneAPI MPI."""
- maintainers = ['rscohn2']
+ maintainers = ['rscohn2', ]
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/mpi-library.html'
- version('2021.1.1', sha256='8b7693a156c6fc6269637bef586a8fd3ea6610cac2aae4e7f48c1fbb601625fe', expand=False)
+ if platform.system() == 'Linux':
+ version('2021.3.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17947/l_mpi_oneapi_p_2021.3.0.294_offline.sh',
+ sha256='04c48f864ee4c723b1b4ca62f2bea8c04d5d7e3de19171fd62b17868bc79bc36',
+ expand=False)
+ version('2021.2.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17729/l_mpi_oneapi_p_2021.2.0.215_offline.sh',
+ sha256='d0d4cdd11edaff2e7285e38f537defccff38e37a3067c02f4af43a3629ad4aa3',
+ expand=False)
+ version('2021.1.1',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17397/l_mpi_oneapi_p_2021.1.1.76_offline.sh',
+ sha256='8b7693a156c6fc6269637bef586a8fd3ea6610cac2aae4e7f48c1fbb601625fe',
+ expand=False)
provides('mpi@:3')
depends_on('patchelf', type='build')
- def __init__(self, spec):
- self.component_info(dir_name='mpi',
- components='intel.oneapi.lin.mpi.devel',
- releases=releases,
- url_name='mpi_oneapi')
- super(IntelOneapiMpi, self).__init__(spec)
+ @property
+ def component_dir(self):
+ return 'mpi'
def setup_dependent_package(self, module, dep_spec):
- dir = join_path(self.prefix, 'mpi', 'latest', 'bin')
+ dir = join_path(self.component_path, 'bin')
self.spec.mpicc = join_path(dir, 'mpicc')
self.spec.mpicxx = join_path(dir, 'mpicxx')
self.spec.mpif77 = join_path(dir, 'mpif77')
@@ -46,52 +53,41 @@ class IntelOneapiMpi(IntelOneApiLibraryPackage):
env.set('MPICH_F90', spack_fc)
env.set('MPICH_FC', spack_fc)
+ # Set compiler wrappers for dependent build stage
+ dir = join_path(self.component_path, 'bin')
+ env.set('MPICC', join_path(dir, 'mpicc'))
+ env.set('MPICXX', join_path(dir, 'mpicxx'))
+ env.set('MPIF77', join_path(dir, 'mpif77'))
+ env.set('MPIF90', join_path(dir, 'mpif90'))
+ env.set('MPIFC', join_path(dir, 'mpifc'))
+
@property
def libs(self):
libs = []
- for dir in ['lib/release_mt', 'lib', 'libfabric/lib']:
- lib_path = '{0}/{1}/latest/{2}'.format(self.prefix, self._dir_name,
- dir)
- ldir = find_libraries('*', root=lib_path, shared=True,
- recursive=False)
+ for dir in [join_path('lib', 'release_mt'),
+ 'lib',
+ join_path('libfabric', 'lib')]:
+ lib_path = join_path(self.component_path, dir)
+ ldir = find_libraries('*', root=lib_path, shared=True, recursive=False)
libs += ldir
return libs
- def _join_prefix(self, path):
- return join_path(self.prefix, 'mpi', 'latest', path)
-
- def _ld_library_path(self):
- dirs = ['lib',
- 'lib/release',
- 'libfabric/lib']
- for dir in dirs:
- yield self._join_prefix(dir)
-
- def _library_path(self):
- dirs = ['lib',
- 'lib/release',
- 'libfabric/lib']
- for dir in dirs:
- yield self._join_prefix(dir)
-
def install(self, spec, prefix):
super(IntelOneapiMpi, self).install(spec, prefix)
# need to patch libmpi.so so it can always find libfabric
- libfabric_rpath = self._join_prefix('libfabric/lib')
+ libfabric_rpath = join_path(self.component_path, 'libfabric', 'lib')
for lib_version in ['debug', 'release', 'release_mt', 'debug_mt']:
- file = self._join_prefix('lib/' + lib_version + '/libmpi.so')
+ file = join_path(self.component_path, 'lib', lib_version, 'libmpi.so')
subprocess.call(['patchelf', '--set-rpath', libfabric_rpath, file])
- def setup_run_environment(self, env):
- env.prepend_path('PATH', self._join_prefix('bin'))
- env.prepend_path('CPATH', self._join_prefix('include'))
- for dir in self._library_path():
- env.prepend_path('LIBRARY_PATH', dir)
- for dir in self._ld_library_path():
- env.prepend_path('LD_LIBRARY_PATH', dir)
- # so wrappers know where MPI lives
- mpi_root = join_path(prefix, 'mpi', 'latest')
- env.set('I_MPI_ROOT', mpi_root)
- # set this so that wrappers can find libfabric providers
- env.set('FI_PROVIDER_PATH', self._join_prefix('libfabric/lib/prov'))
+ # fix I_MPI_SUBSTITUTE_INSTALLDIR and
+ # __EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__
+ scripts = ["mpif77", "mpif90", "mpigcc", "mpigxx", "mpiicc", "mpiicpc",
+ "mpiifort"]
+ for script in scripts:
+ file = join_path(self.component_path, 'bin', script)
+ filter_file('I_MPI_SUBSTITUTE_INSTALLDIR',
+ self.component_path, file, backup=False)
+ filter_file('__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__',
+ self.component_path, file, backup=False)
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py b/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py
index d4c9f03d61..d177f18e26 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py
@@ -1,13 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
-releases = {
- '2021.1.1': {'irc_id': '17378', 'build': '119'}}
+from spack import *
class IntelOneapiTbb(IntelOneApiLibraryPackage):
@@ -17,33 +16,22 @@ class IntelOneapiTbb(IntelOneApiLibraryPackage):
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onetbb.html'
- version('2021.1.1', sha256='535290e3910a9d906a730b24af212afa231523cf13a668d480bade5f2a01b53b', expand=False)
+ if platform.system() == 'Linux':
+ version('2021.3.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17952/l_tbb_oneapi_p_2021.3.0.511_offline.sh',
+ sha256='b83f5e018e3d262e42e9c96881845bbc09c3f036c265e65023422ca8e8637633',
+ expand=False)
+ version('2021.2.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17759/l_tbb_oneapi_p_2021.2.0.357_offline.sh',
+ sha256='c1c3623c5bef547b30eac009e7a444611bf714c758d7472c114e9be9d5700eba',
+ expand=False)
+ version('2021.1.1',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17378/l_tbb_oneapi_p_2021.1.1.119_offline.sh',
+ sha256='535290e3910a9d906a730b24af212afa231523cf13a668d480bade5f2a01b53b',
+ expand=False)
provides('tbb')
- def __init__(self, spec):
- self.component_info(dir_name='tbb',
- components='intel.oneapi.lin.tbb.devel',
- releases=releases,
- url_name='tbb_oneapi')
- super(IntelOneapiTbb, self).__init__(spec)
-
- def _join_prefix(self, path):
- return join_path(self.prefix, 'tbb', 'latest', path)
-
- def _ld_library_path(self):
- dirs = ['lib/intel64/gcc4.8']
- for dir in dirs:
- yield self._join_prefix(dir)
-
- def _library_path(self):
- dirs = ['lib/intel64/gcc4.8']
- for dir in dirs:
- yield self._join_prefix(dir)
-
- def setup_run_environment(self, env):
- for dir in self._library_path():
- env.prepend_path('LIBRARY_PATH', dir)
- for dir in self._ld_library_path():
- env.prepend_path('LD_LIBRARY_PATH', dir)
- env.set('TBBROOT', join_path(self.prefix, 'tbb', 'latest'))
+ @property
+ def component_dir(self):
+ return 'tbb'
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py
index ad07518055..c1524b4b98 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py
@@ -1,14 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import platform
from spack import *
-releases = {
- '2021.1.1': {'irc_id': '17418', 'build': '66'}}
-
class IntelOneapiVpl(IntelOneApiLibraryPackage):
"""Intel oneAPI VPL."""
@@ -17,11 +15,16 @@ class IntelOneapiVpl(IntelOneApiLibraryPackage):
homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onevpl.html'
- version('2021.1.1', sha256='0fec42545b30b7bb2e4e33deb12ab27a02900f5703153d9601673a8ce43082ed', expand=False)
-
- def __init__(self, spec):
- self.component_info(dir_name='vpl',
- components='intel.oneapi.lin.vpl.devel',
- releases=releases,
- url_name='oneVPL')
- super(IntelOneapiVpl, self).__init__(spec)
+ if platform.system() == 'Linux':
+ version('2021.2.2',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17733/l_oneVPL_p_2021.2.2.212_offline.sh',
+ sha256='21106ba5cde22f3e31fd55280fbccf263508fa054030f12d5dff4a5379ef3bb7',
+ expand=False)
+ version('2021.1.1',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/17418/l_oneVPL_p_2021.1.1.66_offline.sh',
+ sha256='0fec42545b30b7bb2e4e33deb12ab27a02900f5703153d9601673a8ce43082ed',
+ expand=False)
+
+ @property
+ def component_dir(self):
+ return 'vpl'
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py b/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py
new file mode 100644
index 0000000000..cf6ba649df
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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)
+
+import platform
+
+from spack import *
+
+
+class IntelOneapiVtune(IntelOneApiPackage):
+ """Intel oneAPI VTune Profiler.
+ Installed in Perf driverless mode, detailed here: https://software.intel.com/content/www/us/en/develop/documentation/vtune-cookbook/top/configuration-recipes/profiling-hardware-without-sampling-drivers.html
+ Users can manually install drivers, please read the instructions here: https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/set-up-analysis-target/linux-targets/building-and-installing-the-sampling-drivers-for-linux-targets.html
+ """
+
+ maintainers = ['rscohn2']
+
+ homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/vtune-profiler.html'
+
+ if platform.system() == 'Linux':
+ version('2021.6.0',
+ url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18012/l_oneapi_vtune_p_2021.6.0.411_offline.sh',
+ sha256='6b1df7da713337aa665bcc6ff23e4a006695b5bfaf71dffd305cbadca2e5560c',
+ expand=False)
+
+ @property
+ def component_dir(self):
+ return 'vtune'
diff --git a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
index a30d2eba19..98415daac6 100644
--- a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
+++ b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,8 @@ class IntelParallelStudio(IntelPackage):
homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
+ maintainers = ['rscohn2', 'danvev']
+
# As of 2016, the product comes in three "editions" that vary by scope.
#
# In Spack, select the edition via the version number in the spec, e.g.:
@@ -20,25 +22,26 @@ class IntelParallelStudio(IntelPackage):
# in the 'intel' package.
# Cluster Edition (top tier; all components included)
- version('cluster.2020.2', sha256='4795c44374e8988b91da20ac8f13022d7d773461def4a26ca210a8694f69f133', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16744/parallel_studio_xe_2020_update2_cluster_edition.tgz')
- version('cluster.2020.1', sha256='fd11d8de72b2bd60474f8bce7b463e4cbb2255969b9eaf24f689575aa2a2abab', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16526/parallel_studio_xe_2020_update1_cluster_edition.tgz')
- version('cluster.2020.0', sha256='573b1d20707d68ce85b70934cfad15b5ad9cc14124a261c17ddd7717ba842c64', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16225/parallel_studio_xe_2020_cluster_edition.tgz')
- #
- version('cluster.2019.5', sha256='c03421de616bd4e640ed25ce4103ec9c5c85768a940a5cb5bd1e97b45be33904', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15809/parallel_studio_xe_2019_update5_cluster_edition.tgz')
- version('cluster.2019.4', sha256='32aee12de3b5ca14caf7578313c06b205795c67620f4a9606ea45696ee3b3d9e', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15533/parallel_studio_xe_2019_update4_cluster_edition.tgz')
- version('cluster.2019.3', sha256='b5b022366d6d1a98dbb63b60221c62bc951c9819653ad6f5142192e89f78cf63', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15268/parallel_studio_xe_2019_update3_cluster_edition.tgz')
- version('cluster.2019.2', sha256='8c526bdd95d1da454e5cada00f7a2353089b86d0c9df2088ca7f842fe3ff4cae', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15088/parallel_studio_xe_2019_update2_cluster_edition.tgz')
- version('cluster.2019.1', sha256='3a1eb39f15615f7a2688426b9835e5e841e0c030f21dcfc899fe23e09bd2c645', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14850/parallel_studio_xe_2019_update1_cluster_edition.tgz')
- version('cluster.2019.0', sha256='1096dd4139bdd4b3abbda69a17d1e229a606759f793f5b0ba0d39623928ee4a1', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13589/parallel_studio_xe_2019_cluster_edition.tgz')
- #
- version('cluster.2018.4', sha256='210a5904a860e11b861720e68416f91fd47a459e4500976853291fa8b0478566', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13717/parallel_studio_xe_2018_update4_cluster_edition.tgz')
- version('cluster.2018.3', sha256='23c64b88cea5056eaeef7b4ae0f4c6a86485c97f5e41d6c8419cb00aa4929287', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12998/parallel_studio_xe_2018_update3_cluster_edition.tgz')
- version('cluster.2018.2', sha256='550bc4758f7dd70e75830d329947532ad8b7cbb85225b8ec6db7e78a3f1d6d84', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12717/parallel_studio_xe_2018_update2_cluster_edition.tgz')
+ version('cluster.2020.4', sha256='f36e49da97b6ce24d2d464d73d7ff49d71cff20e1698c20e607919819602a9f5', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17113/parallel_studio_xe_2020_update4_cluster_edition.tgz')
+ version('cluster.2020.2', sha256='4795c44374e8988b91da20ac8f13022d7d773461def4a26ca210a8694f69f133', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16744/parallel_studio_xe_2020_update2_cluster_edition.tgz')
+ version('cluster.2020.1', sha256='fd11d8de72b2bd60474f8bce7b463e4cbb2255969b9eaf24f689575aa2a2abab', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16526/parallel_studio_xe_2020_update1_cluster_edition.tgz')
+ version('cluster.2020.0', sha256='573b1d20707d68ce85b70934cfad15b5ad9cc14124a261c17ddd7717ba842c64', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16225/parallel_studio_xe_2020_cluster_edition.tgz')
+ #
+ version('cluster.2019.5', sha256='c03421de616bd4e640ed25ce4103ec9c5c85768a940a5cb5bd1e97b45be33904', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15809/parallel_studio_xe_2019_update5_cluster_edition.tgz')
+ version('cluster.2019.4', sha256='32aee12de3b5ca14caf7578313c06b205795c67620f4a9606ea45696ee3b3d9e', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15533/parallel_studio_xe_2019_update4_cluster_edition.tgz')
+ version('cluster.2019.3', sha256='b5b022366d6d1a98dbb63b60221c62bc951c9819653ad6f5142192e89f78cf63', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15268/parallel_studio_xe_2019_update3_cluster_edition.tgz')
+ version('cluster.2019.2', sha256='8c526bdd95d1da454e5cada00f7a2353089b86d0c9df2088ca7f842fe3ff4cae', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15088/parallel_studio_xe_2019_update2_cluster_edition.tgz')
+ version('cluster.2019.1', sha256='3a1eb39f15615f7a2688426b9835e5e841e0c030f21dcfc899fe23e09bd2c645', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14850/parallel_studio_xe_2019_update1_cluster_edition.tgz')
+ version('cluster.2019.0', sha256='1096dd4139bdd4b3abbda69a17d1e229a606759f793f5b0ba0d39623928ee4a1', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13589/parallel_studio_xe_2019_cluster_edition.tgz')
+ #
+ version('cluster.2018.4', sha256='210a5904a860e11b861720e68416f91fd47a459e4500976853291fa8b0478566', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13717/parallel_studio_xe_2018_update4_cluster_edition.tgz')
+ version('cluster.2018.3', sha256='23c64b88cea5056eaeef7b4ae0f4c6a86485c97f5e41d6c8419cb00aa4929287', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12998/parallel_studio_xe_2018_update3_cluster_edition.tgz')
+ version('cluster.2018.2', sha256='550bc4758f7dd70e75830d329947532ad8b7cbb85225b8ec6db7e78a3f1d6d84', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12717/parallel_studio_xe_2018_update2_cluster_edition.tgz')
version('cluster.2018.1', sha256='f7a94e83248d2641eb7ae2c1abf681067203a5b4372619e039861b468744774c', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12374/parallel_studio_xe_2018_update1_cluster_edition.tgz')
version('cluster.2018.0', sha256='526e5e71c420dc9b557b0bae2a81abb33eedb9b6a28ac94996ccbcf71cf53774', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12058/parallel_studio_xe_2018_cluster_edition.tgz')
#
- version('cluster.2017.7', sha256='133c3aa99841a4fe48149938a90f971467452a82f033be10cd9464ba810f6360', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12856/parallel_studio_xe_2017_update7.tgz')
- version('cluster.2017.6', sha256='d771b00d3658934c424f294170125dc58ae9b03639aa898a2f115d7a7482dd3a', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12534/parallel_studio_xe_2017_update6.tgz')
+ version('cluster.2017.7', sha256='133c3aa99841a4fe48149938a90f971467452a82f033be10cd9464ba810f6360', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12856/parallel_studio_xe_2017_update7.tgz')
+ version('cluster.2017.6', sha256='d771b00d3658934c424f294170125dc58ae9b03639aa898a2f115d7a7482dd3a', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12534/parallel_studio_xe_2017_update6.tgz')
version('cluster.2017.5', sha256='36e496d1d1d7d7168cc3ba8f5bca9b52022339f30b62a87ed064b77a5cbccc09', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12138/parallel_studio_xe_2017_update5.tgz')
version('cluster.2017.4', sha256='27d34625adfc635d767c136b5417a372f322fabe6701b651d858a8fe06d07f2d', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11537/parallel_studio_xe_2017_update4.tgz')
version('cluster.2017.3', sha256='856950c0493de3e8b4150e18f8821675c1cf75c2eea5ff0804f59eb301414bbe', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11460/parallel_studio_xe_2017_update3.tgz')
@@ -60,25 +63,26 @@ class IntelParallelStudio(IntelPackage):
# NB: Pre-2018 download packages for Professional are the same as for
# Cluster; differences manifest only in the tokens present in the license
# file delivered as part of the purchase.
- version('professional.2020.2', sha256='96f9bca551a43e09d9648e8cba357739a759423adb671d1aa5973b7a930370c5', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16756/parallel_studio_xe_2020_update2_professional_edition.tgz')
- version('professional.2020.1', sha256='5b547be92ecf50cb338b3038a565f5609135b27aa98a8b7964879eb2331eb29a', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16527/parallel_studio_xe_2020_update1_professional_edition.tgz')
- version('professional.2020.0', sha256='e88cad18d28da50ed9cb87b12adccf13efd91bf94731dc33290481306c6f15ac', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16226/parallel_studio_xe_2020_professional_edition.tgz')
- #
- version('professional.2019.5', sha256='0ec638330214539361f8632e20759f385a5a78013dcc980ee93743d86d354452', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15810/parallel_studio_xe_2019_update5_professional_edition.tgz')
- version('professional.2019.4', sha256='9b2818ea5739ade100841e99ce79ef7f4049a2513beb2ce20fc94706f1ba0231', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15534/parallel_studio_xe_2019_update4_professional_edition.tgz')
- version('professional.2019.3', sha256='92a8879106d0bdf1ecf4670cd97fbcdc67d78b13bdf484f2c516a533aa7a27f9', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15269/parallel_studio_xe_2019_update3_professional_edition.tgz')
- version('professional.2019.2', sha256='cdb629d74612d135ca197f1f64e6a081e31df68cda92346a29e1223bb06e64ea', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15089/parallel_studio_xe_2019_update2_professional_edition.tgz')
+ version('professional.2020.4', sha256='f9679a40c63575191385837f4f1bdafbcfd3736f09ac51d0761248b9ca9cc9e6', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17114/parallel_studio_xe_2020_update4_professional_edition.tgz')
+ version('professional.2020.2', sha256='96f9bca551a43e09d9648e8cba357739a759423adb671d1aa5973b7a930370c5', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16756/parallel_studio_xe_2020_update2_professional_edition.tgz')
+ version('professional.2020.1', sha256='5b547be92ecf50cb338b3038a565f5609135b27aa98a8b7964879eb2331eb29a', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16527/parallel_studio_xe_2020_update1_professional_edition.tgz')
+ version('professional.2020.0', sha256='e88cad18d28da50ed9cb87b12adccf13efd91bf94731dc33290481306c6f15ac', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16226/parallel_studio_xe_2020_professional_edition.tgz')
+ #
+ version('professional.2019.5', sha256='0ec638330214539361f8632e20759f385a5a78013dcc980ee93743d86d354452', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15810/parallel_studio_xe_2019_update5_professional_edition.tgz')
+ version('professional.2019.4', sha256='9b2818ea5739ade100841e99ce79ef7f4049a2513beb2ce20fc94706f1ba0231', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15534/parallel_studio_xe_2019_update4_professional_edition.tgz')
+ version('professional.2019.3', sha256='92a8879106d0bdf1ecf4670cd97fbcdc67d78b13bdf484f2c516a533aa7a27f9', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15269/parallel_studio_xe_2019_update3_professional_edition.tgz')
+ version('professional.2019.2', sha256='cdb629d74612d135ca197f1f64e6a081e31df68cda92346a29e1223bb06e64ea', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15089/parallel_studio_xe_2019_update2_professional_edition.tgz')
version('professional.2019.1', sha256='bc83ef5a728903359ae11a2b90ad7dae4ae61194afb28bb5bb419f6a6aea225d', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14825/parallel_studio_xe_2019_update1_professional_edition.tgz')
- version('professional.2019.0', sha256='94b9714e353e5c4f58d38cb236e2f8911cbef31c4b42a148d60c988e926411e2', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13578/parallel_studio_xe_2019_professional_edition.tgz')
+ version('professional.2019.0', sha256='94b9714e353e5c4f58d38cb236e2f8911cbef31c4b42a148d60c988e926411e2', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13578/parallel_studio_xe_2019_professional_edition.tgz')
#
- version('professional.2018.4', sha256='54ab4320da849108602096fa7a34aa21751068467e0d1584aa8f16352b77d323', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13718/parallel_studio_xe_2018_update4_professional_edition.tgz')
- version('professional.2018.3', sha256='3d8e72ccad31f243e43b72a925ad4a6908e2955682433898640ab783decf9960', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12999/parallel_studio_xe_2018_update3_professional_edition.tgz')
- version('professional.2018.2', sha256='fc577b29fb2c687441d4faea14a6fb6da529fc78fcb778cbface59f40e128e02', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12718/parallel_studio_xe_2018_update2_professional_edition.tgz')
+ version('professional.2018.4', sha256='54ab4320da849108602096fa7a34aa21751068467e0d1584aa8f16352b77d323', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13718/parallel_studio_xe_2018_update4_professional_edition.tgz')
+ version('professional.2018.3', sha256='3d8e72ccad31f243e43b72a925ad4a6908e2955682433898640ab783decf9960', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12999/parallel_studio_xe_2018_update3_professional_edition.tgz')
+ version('professional.2018.2', sha256='fc577b29fb2c687441d4faea14a6fb6da529fc78fcb778cbface59f40e128e02', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12718/parallel_studio_xe_2018_update2_professional_edition.tgz')
version('professional.2018.1', sha256='dd3e118069d87eebb614336732323b48172c8c8a653cde673a8ef02f7358e94d', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12375/parallel_studio_xe_2018_update1_professional_edition.tgz')
version('professional.2018.0', sha256='72308ffa088391ea65726a79d7a73738206fbb1d8ed8563e3d06eab3120fb1a0', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12062/parallel_studio_xe_2018_professional_edition.tgz')
#
- version('professional.2017.7', sha256='133c3aa99841a4fe48149938a90f971467452a82f033be10cd9464ba810f6360', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12856/parallel_studio_xe_2017_update7.tgz')
- version('professional.2017.6', sha256='d771b00d3658934c424f294170125dc58ae9b03639aa898a2f115d7a7482dd3a', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12534/parallel_studio_xe_2017_update6.tgz')
+ version('professional.2017.7', sha256='133c3aa99841a4fe48149938a90f971467452a82f033be10cd9464ba810f6360', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12856/parallel_studio_xe_2017_update7.tgz')
+ version('professional.2017.6', sha256='d771b00d3658934c424f294170125dc58ae9b03639aa898a2f115d7a7482dd3a', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12534/parallel_studio_xe_2017_update6.tgz')
version('professional.2017.5', sha256='36e496d1d1d7d7168cc3ba8f5bca9b52022339f30b62a87ed064b77a5cbccc09', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12138/parallel_studio_xe_2017_update5.tgz')
version('professional.2017.4', sha256='27d34625adfc635d767c136b5417a372f322fabe6701b651d858a8fe06d07f2d', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11537/parallel_studio_xe_2017_update4.tgz')
version('professional.2017.3', sha256='856950c0493de3e8b4150e18f8821675c1cf75c2eea5ff0804f59eb301414bbe', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11460/parallel_studio_xe_2017_update3.tgz')
@@ -96,25 +100,26 @@ class IntelParallelStudio(IntelPackage):
version('professional.2015.1', sha256='84fdf48d1de20e1d580ba5d419a5bc1c55d217a4f5dc1807190ecffe0229a62b', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/4992/parallel_studio_xe_2015_update1.tgz')
# Composer Edition (basic tier; excluded: MPI/..., Advisor/Inspector/Vtune)
- version('composer.2020.2', sha256='42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz')
- version('composer.2020.1', sha256='26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz')
- version('composer.2020.0', sha256='9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/parallel_studio_xe_2020_composer_edition.tgz')
- #
- version('composer.2019.5', sha256='e8c8e4b9b46826a02c49325c370c79f896858611bf33ddb7fb204614838ad56c', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15813/parallel_studio_xe_2019_update5_composer_edition.tgz')
- version('composer.2019.4', sha256='1915993445323e1e78d6de73702a88fa3df2036109cde03d74ee38fef9f1abf2', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15537/parallel_studio_xe_2019_update4_composer_edition.tgz')
- version('composer.2019.3', sha256='15373ac6df2a84e6dd9fa0eac8b5f07ab00cdbb67f494161fd0d4df7a71aff8e', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15272/parallel_studio_xe_2019_update3_composer_edition.tgz')
- version('composer.2019.2', sha256='1e0f400be1f458592a8c2e7d55c1b2a4506f68f22bacbf1175af947809a4cd87', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15092/parallel_studio_xe_2019_update2_composer_edition.tgz')
+ version('composer.2020.4', sha256='ac1efeff608a8c3a416e6dfe20364061e8abf62d35fbaacdffe3fc9676fc1aa3', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz')
+ version('composer.2020.2', sha256='42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz')
+ version('composer.2020.1', sha256='26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz')
+ version('composer.2020.0', sha256='9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/parallel_studio_xe_2020_composer_edition.tgz')
+ #
+ version('composer.2019.5', sha256='e8c8e4b9b46826a02c49325c370c79f896858611bf33ddb7fb204614838ad56c', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15813/parallel_studio_xe_2019_update5_composer_edition.tgz')
+ version('composer.2019.4', sha256='1915993445323e1e78d6de73702a88fa3df2036109cde03d74ee38fef9f1abf2', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15537/parallel_studio_xe_2019_update4_composer_edition.tgz')
+ version('composer.2019.3', sha256='15373ac6df2a84e6dd9fa0eac8b5f07ab00cdbb67f494161fd0d4df7a71aff8e', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15272/parallel_studio_xe_2019_update3_composer_edition.tgz')
+ version('composer.2019.2', sha256='1e0f400be1f458592a8c2e7d55c1b2a4506f68f22bacbf1175af947809a4cd87', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15092/parallel_studio_xe_2019_update2_composer_edition.tgz')
version('composer.2019.1', sha256='db000cb2ebf411f6e91719db68a0c68b8d3f7d38ad7f2049ea5b2f1b5f006c25', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14832/parallel_studio_xe_2019_update1_composer_edition.tgz')
- version('composer.2019.0', sha256='e1a29463038b063e01f694e2817c0fcf1a8e824e24f15a26ce85f20afa3f963a', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13581/parallel_studio_xe_2019_composer_edition.tgz')
+ version('composer.2019.0', sha256='e1a29463038b063e01f694e2817c0fcf1a8e824e24f15a26ce85f20afa3f963a', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13581/parallel_studio_xe_2019_composer_edition.tgz')
#
- version('composer.2018.4', sha256='94aca8f091dff9535b02f022a37aef150b36925c8ef069335621496f8e4db267', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13722/parallel_studio_xe_2018_update4_composer_edition.tgz')
- version('composer.2018.3', sha256='f21f7759709a3d3e3390a8325fa89ac79b1fce8890c292e73b2ba3ec576ebd2b', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13002/parallel_studio_xe_2018_update3_composer_edition.tgz')
- version('composer.2018.2', sha256='02d2a9fb10d9810f85dd77700215c4348d2e4475e814e4f086eb1442462667ff', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12722/parallel_studio_xe_2018_update2_composer_edition.tgz')
+ version('composer.2018.4', sha256='94aca8f091dff9535b02f022a37aef150b36925c8ef069335621496f8e4db267', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13722/parallel_studio_xe_2018_update4_composer_edition.tgz')
+ version('composer.2018.3', sha256='f21f7759709a3d3e3390a8325fa89ac79b1fce8890c292e73b2ba3ec576ebd2b', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13002/parallel_studio_xe_2018_update3_composer_edition.tgz')
+ version('composer.2018.2', sha256='02d2a9fb10d9810f85dd77700215c4348d2e4475e814e4f086eb1442462667ff', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12722/parallel_studio_xe_2018_update2_composer_edition.tgz')
version('composer.2018.1', sha256='db9aa417da185a03a63330c9d76ee8e88496ae6b771584d19003a29eedc7cab5', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12381/parallel_studio_xe_2018_update1_composer_edition.tgz')
version('composer.2018.0', sha256='ecad64360fdaff2548a0ea250a396faf680077c5a83c3c3ce2c55f4f4270b904', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12067/parallel_studio_xe_2018_composer_edition.tgz')
#
- version('composer.2017.7', sha256='661e33b68e47bf335694d2255f5883955234e9085c8349783a5794eed2a937ad', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12860/parallel_studio_xe_2017_update7_composer_edition.tgz')
- version('composer.2017.6', sha256='771f50746fe130ea472394c42e25d2c7edae049ad809d2050945ef637becf65f', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12538/parallel_studio_xe_2017_update6_composer_edition.tgz')
+ version('composer.2017.7', sha256='661e33b68e47bf335694d2255f5883955234e9085c8349783a5794eed2a937ad', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12860/parallel_studio_xe_2017_update7_composer_edition.tgz')
+ version('composer.2017.6', sha256='771f50746fe130ea472394c42e25d2c7edae049ad809d2050945ef637becf65f', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12538/parallel_studio_xe_2017_update6_composer_edition.tgz')
version('composer.2017.5', sha256='ede4ea9351fcf263103588ae0f130b4c2a79395529cdb698b0d6e866c4871f78', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12144/parallel_studio_xe_2017_update5_composer_edition.tgz')
version('composer.2017.4', sha256='4304766f80206a27709be61641c16782fccf2b3fcf7285782cce921ddc9b10ff', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11541/parallel_studio_xe_2017_update4_composer_edition.tgz')
version('composer.2017.3', sha256='3648578d7bba993ebb1da37c173979bfcfb47f26e7f4e17f257e78dea8fd96ab', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11464/parallel_studio_xe_2017_update3_composer_edition.tgz')
diff --git a/var/spack/repos/builtin/packages/intel-pin/package.py b/var/spack/repos/builtin/packages/intel-pin/package.py
index f9cf6ea111..17fbd52d79 100644
--- a/var/spack/repos/builtin/packages/intel-pin/package.py
+++ b/var/spack/repos/builtin/packages/intel-pin/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 symlink
+from spack import *
+
class IntelPin(Package):
"""Intel Pin is a dynamic binary instrumentation framework for the IA-32,
diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2017.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2017.patch
new file mode 100644
index 0000000000..beeaa15e7c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2017.patch
@@ -0,0 +1,41 @@
+diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc
+--- spack-src/build/linux.gcc.inc 2018-03-30 11:55:05.000000000 -0400
++++ spack-src.patched/build/linux.gcc.inc 2021-07-22 10:41:47.712124058 -0400
+@@ -27,7 +27,9 @@
+ WARNING_KEY = -Wall
+ TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
+
+-WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
++# Skip for nvhpc compilers
++# WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
++WARNING_SUPPRESS =
+ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+@@ -62,10 +64,11 @@
+
+ # gcc 6.0 and later have -flifetime-dse option that controls
+ # elimination of stores done outside the object lifetime
+-ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])"))
+- # keep pre-contruction stores for zero initialization
+- DSE_KEY = -flifetime-dse=1
+-endif
++# Skip for nvhpc compilers
++#ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])"))
++# # keep pre-contruction stores for zero initialization
++# DSE_KEY = -flifetime-dse=1
++#endif
+
+ ifeq ($(cfg), release)
+ CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+@@ -148,7 +151,9 @@
+ # Setting tbbmalloc data.
+ #------------------------------------------------------------------------------
+
+-M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
++# Drop -fno-rtti for nvhpc compilers
++#M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
++M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-exceptions
+
+ #------------------------------------------------------------------------------
+ # End of setting tbbmalloc data.
diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.1.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.1.patch
new file mode 100644
index 0000000000..d561a82de0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.1.patch
@@ -0,0 +1,41 @@
+diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc
+--- spack-src/build/linux.gcc.inc 2019-03-21 11:28:21.000000000 -0400
++++ spack-src.patched/build/linux.gcc.inc 2021-07-28 16:02:11.714975264 -0400
+@@ -29,7 +29,9 @@
+ WARNING_KEY = -Wall
+ TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
+
+-WARNING_SUPPRESS = -Wno-parentheses
++# Skip for nvhpc compilers
++#WARNING_SUPPRESS = -Wno-parentheses
++WARNING_SUPPRESS =
+ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+@@ -63,10 +65,11 @@
+
+ # gcc 6.0 and later have -flifetime-dse option that controls
+ # elimination of stores done outside the object lifetime
+-ifneq (,$(shell $(CONLY) -dumpversion | egrep "^([6-9])"))
+- # keep pre-contruction stores for zero initialization
+- DSE_KEY = -flifetime-dse=1
+-endif
++# Skip for nvhpc compilers
++#ifneq (,$(shell $(CONLY) -dumpversion | egrep "^([6-9])"))
++# # keep pre-contruction stores for zero initialization
++# DSE_KEY = -flifetime-dse=1
++#endif
+
+ ifeq ($(cfg), release)
+ CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+@@ -149,7 +152,9 @@
+ # Setting tbbmalloc data.
+ #------------------------------------------------------------------------------
+
+-M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
++# Drop -fno-rtti flag for nvhpc compilers
++#M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
++M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-exceptions
+
+ #------------------------------------------------------------------------------
+ # End of setting tbbmalloc data.
diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.7.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.7.patch
new file mode 100644
index 0000000000..e7045f03a3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.7.patch
@@ -0,0 +1,41 @@
+diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc
+--- spack-src/build/linux.gcc.inc 2019-05-23 06:35:29.000000000 -0400
++++ spack-src.patched/build/linux.gcc.inc 2021-07-28 16:09:17.574383383 -0400
+@@ -25,7 +25,9 @@
+ WARNING_KEY = -Wall
+ TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
+
+-WARNING_SUPPRESS = -Wno-parentheses
++# Skip for nvhpc compilers
++#WARNING_SUPPRESS = -Wno-parentheses
++WARNING_SUPPRESS =
+ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+@@ -59,10 +61,11 @@
+
+ # gcc 6.0 and later have -flifetime-dse option that controls
+ # elimination of stores done outside the object lifetime
+-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9])"))
+- # keep pre-contruction stores for zero initialization
+- DSE_KEY = -flifetime-dse=1
+-endif
++# Skip for nvhpc compilers
++#ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9])"))
++# # keep pre-contruction stores for zero initialization
++# DSE_KEY = -flifetime-dse=1
++#endif
+
+ ifeq ($(cfg), release)
+ CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+@@ -145,7 +148,9 @@
+ # Setting tbbmalloc data.
+ #------------------------------------------------------------------------------
+
+-M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
++# Drop -fno-rtti flag for nvhpc compilers
++#M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
++M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-exceptions
+
+ #------------------------------------------------------------------------------
+ # End of setting tbbmalloc data.
diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.9.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.9.patch
new file mode 100644
index 0000000000..4bc846276a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.9.patch
@@ -0,0 +1,43 @@
+diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc
+--- spack-src/build/linux.gcc.inc 2020-07-10 09:18:01.000000000 -0400
++++ spack-src.patched/build/linux.gcc.inc 2021-07-28 15:32:43.640185318 -0400
+@@ -25,7 +25,9 @@
+ WARNING_KEY = -Wall
+ TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
+
+-WARNING_SUPPRESS = -Wno-parentheses
++# Skip for nvhpc compilers
++# WARNING_SUPPRESS = -Wno-parentheses
++WARNING_SUPPRESS =
+ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+@@ -57,12 +59,11 @@
+ WARNING_SUPPRESS += -Wno-sized-deallocation
+ endif
+
+-# gcc 6.0 and later have -flifetime-dse option that controls
+-# elimination of stores done outside the object lifetime
+-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])"))
+- # keep pre-contruction stores for zero initialization
+- DSE_KEY = -flifetime-dse=1
+-endif
++#Skip for nvhpc compilers
++#ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])"))
++# # keep pre-contruction stores for zero initialization
++# DSE_KEY = -flifetime-dse=1
++#endif
+
+ ifeq ($(cfg), release)
+ # -g is set intentionally in the release mode. It should not affect performance.
+@@ -149,7 +150,9 @@
+ # Setting tbbmalloc data.
+ #------------------------------------------------------------------------------
+
+-M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
++# Drop -fno-rtti for nvhpc compilers
++# M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
++M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-exceptions
+
+ #------------------------------------------------------------------------------
+ # End of setting tbbmalloc data.
diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.patch
new file mode 100644
index 0000000000..eb1ffff9a7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-remove-flags.2019.patch
@@ -0,0 +1,41 @@
+diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc
+--- spack-src/build/linux.gcc.inc 2018-08-29 10:37:51.000000000 -0400
++++ spack-src.patched/build/linux.gcc.inc 2021-07-28 15:52:03.235813820 -0400
+@@ -27,7 +27,9 @@
+ WARNING_KEY = -Wall
+ TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
+
+-WARNING_SUPPRESS = -Wno-parentheses
++# Skip for nvhpc compilers
++#WARNING_SUPPRESS = -Wno-parentheses
++WARNING_SUPPRESS =
+ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+@@ -63,10 +65,11 @@
+
+ # gcc 6.0 and later have -flifetime-dse option that controls
+ # elimination of stores done outside the object lifetime
+-ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])"))
+- # keep pre-contruction stores for zero initialization
+- DSE_KEY = -flifetime-dse=1
+-endif
++# Skip for nvhpc compilers
++#ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])"))
++# # keep pre-contruction stores for zero initialization
++# DSE_KEY = -flifetime-dse=1
++#endif
+
+ ifeq ($(cfg), release)
+ CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+@@ -149,7 +152,9 @@
+ # Setting tbbmalloc data.
+ #------------------------------------------------------------------------------
+
+-M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
++# Drop -fno-rtti flag for nvhpc compilers
++#M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
++M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-exceptions
+
+ #------------------------------------------------------------------------------
+ # End of setting tbbmalloc data.
diff --git a/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-version-script-fix.2017.patch b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-version-script-fix.2017.patch
new file mode 100644
index 0000000000..eb5dc47799
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-tbb/intel-tbb.nvhpc-version-script-fix.2017.patch
@@ -0,0 +1,14 @@
+diff -Naur spack-src/build/linux.gcc.inc spack-src.patched/build/linux.gcc.inc
+--- spack-src/build/linux.gcc.inc 2018-03-30 11:55:05.000000000 -0400
++++ spack-src.patched/build/linux.gcc.inc 2021-07-22 15:58:22.876292608 -0400
+@@ -17,7 +17,9 @@
+ #
+
+ COMPILE_ONLY = -c -MMD
+-PREPROC_ONLY = -E -x c++
++# For nvc++, need --no_preincludes as well to avoid issues with
++# pre-included content interfering with version scripts, etc.
++PREPROC_ONLY = -E -x c++ --no_preincludes
+ INCLUDE_KEY = -I
+ DEFINE_KEY = -D
+ OUTPUT_KEY = -o #
diff --git a/var/spack/repos/builtin/packages/intel-tbb/macos-arm64.patch b/var/spack/repos/builtin/packages/intel-tbb/macos-arm64.patch
new file mode 100644
index 0000000000..7169abed38
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-tbb/macos-arm64.patch
@@ -0,0 +1,32 @@
+From 86f6dcdc17a8f5ef2382faaef860cfa5243984fe Mon Sep 17 00:00:00 2001
+From: Yining Karl Li <betajippity@gmail.com>
+Date: Fri, 3 Jul 2020 06:23:18 -0700
+Subject: [PATCH] Add detection of arm64 architecture for macos builds
+
+This commit adds detection of arm64 for macos builds on arm64 hardware.
+The only change necessary is an additional case in the code where
+macos.inc queries and detects the system architecture.
+---
+ build/macos.inc | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/build/macos.inc b/build/macos.inc
+index dde93216f5e7a9337dd83757df1ec734241d044e..2bdcde7e3042390b871fc601a930b3648ccaa124 100644
+--- a/build/macos.inc
++++ b/build/macos.inc
+@@ -36,11 +36,15 @@ ifndef arch
+ export arch:=ppc32
+ endif
+ else
++ ifeq ($(shell /usr/sbin/sysctl -n hw.machine),arm64)
++ export arch:=arm64
++ else
+ ifeq ($(shell /usr/sbin/sysctl -n hw.optional.x86_64 2>/dev/null),1)
+ export arch:=intel64
+ else
+ export arch:=ia32
+ endif
++ endif
+ endif
+ endif
+
diff --git a/var/spack/repos/builtin/packages/intel-tbb/package.py b/var/spack/repos/builtin/packages/intel-tbb/package.py
index 857e190eba..5c8d158e02 100644
--- a/var/spack/repos/builtin/packages/intel-tbb/package.py
+++ b/var/spack/repos/builtin/packages/intel-tbb/package.py
@@ -1,29 +1,34 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import inspect
import platform
import sys
+from spack import *
+
-class IntelTbb(Package):
+class IntelTbb(CMakePackage):
"""Widely used C++ template library for task parallelism.
Intel Threading Building Blocks (Intel TBB) lets you easily write parallel
C++ programs that take full advantage of multicore performance, that are
portable and composable, and that have future-proof scalability.
"""
- homepage = "http://www.threadingbuildingblocks.org/"
+ homepage = "https://www.threadingbuildingblocks.org/"
url_prefix = 'https://github.com/oneapi-src/oneTBB/'
url = url_prefix + 'archive/v2020.1.tar.gz'
# Note: when adding new versions, please check and update the
# patches, filters and url_for_version() below as needed.
- version('2020.3', sha256='ebc4f6aa47972daed1f7bf71d100ae5bf6931c2e3144cf299c8cc7d041dca2f3')
+ version('2021.3.0', sha256='8f616561603695bbb83871875d2c6051ea28f8187dbe59299961369904d1d49e')
+ version('2021.2.0', sha256='cee20b0a71d977416f3e3b4ec643ee4f38cedeb2a9ff015303431dd9d8d79854')
+ version('2021.1.1', sha256='b182c73caaaabc44ddc5ad13113aca7e453af73c1690e4061f71dfe4935d74e8')
+ version('2020.3', sha256='ebc4f6aa47972daed1f7bf71d100ae5bf6931c2e3144cf299c8cc7d041dca2f3',
+ preferred=True)
version('2020.2', sha256='4804320e1e6cbe3a5421997b52199e3c1a3829b2ecb6489641da4b8e32faf500')
version('2020.1', sha256='7c96a150ed22bc3c6628bc3fef9ed475c00887b26d37bca61518d76a56510971')
version('2020.0', sha256='57714f2d2cf33935db33cee93af57eb3ecd5a7bef40c1fb7ca4a41d79684b118')
@@ -95,7 +100,9 @@ class IntelTbb(Package):
# Build and install CMake config files if we're new enough.
# CMake support started in 2017.7.
- depends_on('cmake@3.0.0:', type='build', when='@2017.7:')
+ depends_on('cmake@3.1.0:', type='build', when='@2017.7:')
+
+ depends_on('hwloc', when='@2021.1.1:')
# Patch for pedantic warnings (#10836). This was fixed in the TBB
# source tree in 2019.6.
@@ -103,15 +110,42 @@ class IntelTbb(Package):
patch("gcc_generic-pedantic-4.4.patch", level=1, when='@:2019.0')
# Patch cmakeConfig.cmake.in to find the libraries where we install them.
- patch("tbb_cmakeConfig-2019.5.patch", level=0, when='@2019.5:')
+ patch("tbb_cmakeConfig-2019.5.patch", level=0, when='@2019.5:2021.0')
patch("tbb_cmakeConfig.patch", level=0, when='@2017.7:2019.4')
# Restore the debug targets.
- patch("makefile-debug.patch", when="@2020:")
+ patch("makefile-debug.patch", when="@2020:2021.0")
# Some very old systems don't support transactional memory.
patch("disable-tm.patch", when='~tm')
+ # Add support for building on arm64 macOS,
+ # also included in hombrew and already available upstream:
+ # https://github.com/oneapi-src/oneTBB/pull/258
+ # https://github.com/oneapi-src/oneTBB/commit/86f6dcdc17a8f5ef2382faaef860cfa5243984fe.patch?full_index=1
+ patch("macos-arm64.patch", when="@:2021.0")
+
+ # Support for building with %nvhpc
+ # 1) remove flags nvhpc compilers do not recognize
+ patch("intel-tbb.nvhpc-remove-flags.2017.patch",
+ when="@2017:2018.9 %nvhpc")
+ patch("intel-tbb.nvhpc-remove-flags.2019.patch",
+ when="@2019:2019.0 %nvhpc")
+ patch("intel-tbb.nvhpc-remove-flags.2019.1.patch",
+ when="@2019.1:2019.6 %nvhpc")
+ patch("intel-tbb.nvhpc-remove-flags.2019.7.patch",
+ when="@2019.7:2019.8 %nvhpc")
+ # The 2019.9 patch below was tested successfully
+ # on @2019.9, @2020.0, and @2020.3
+ patch("intel-tbb.nvhpc-remove-flags.2019.9.patch",
+ when="@2019.9: %nvhpc")
+ # 2) Fix generation of version script tbb.def for ld (nvc++ -E
+ # appears to produce more output than g++ -E which was causing problems)
+ # The 2017 patch below was tested on @2017, @2017.8, @2018,
+ # @2018.3, @2018.6, 2019, @2019.[1-9], and @2020.[0-3]
+ patch("intel-tbb.nvhpc-version-script-fix.2017.patch",
+ when="@2017 %nvhpc")
+
# Version and tar file names:
# 2020.0 --> v2020.0.tar.gz starting with 2020
# 2017.1 --> 2017_U1.tar.gz starting with 2017
@@ -128,6 +162,12 @@ class IntelTbb(Package):
name = '{0}'.format(version)
return url.format(name)
+ # We set OS here in case the user has it set to something else
+ # that TBB doesn't expect.
+ def setup_build_environment(self, env):
+ env.set('OS', platform.system())
+
+ @when('@:2020.3')
def coerce_to_spack(self, tbb_build_subdir):
for compiler in ["icc", "gcc", "clang"]:
fs = glob.glob(join_path(tbb_build_subdir,
@@ -145,7 +185,16 @@ class IntelTbb(Package):
else:
of.write(lin)
- def install(self, spec, prefix):
+ @when('@:2020.3')
+ def cmake(self, spec, prefix):
+ return
+
+ @when('@:2020.3')
+ def cmake_args(self):
+ return
+
+ @when('@:2020.3')
+ def build(self, spec, prefix):
# Deactivate use of RTM with GCC when on an OS with a very old
# assembler.
if (spec.satisfies('%gcc@4.8.0: os=rhel6')
@@ -173,9 +222,6 @@ class IntelTbb(Package):
else:
tbb_compiler = "gcc"
- mkdirp(prefix)
- mkdirp(prefix.lib)
-
make_opts = []
# Static builds of TBB are enabled by including 'big_iron.inc' file
@@ -195,6 +241,11 @@ class IntelTbb(Package):
make_opts.append("compiler={0}".format(tbb_compiler))
make(*make_opts)
+ @when('@:2020.3')
+ def install(self, spec, prefix):
+ mkdirp(prefix)
+ mkdirp(prefix.lib)
+
# install headers to {prefix}/include
install_tree('include', prefix.include)
@@ -220,6 +271,7 @@ class IntelTbb(Package):
with working_dir(join_path(self.stage.source_path, 'cmake')):
inspect.getmodule(self).cmake(*cmake_args)
+ @when('@:2020.3')
@run_after('install')
def darwin_fix(self):
# Replace @rpath in ids with full path
@@ -231,3 +283,18 @@ class IntelTbb(Package):
shared = True if '+shared' in self.spec else False
return find_libraries(
'libtbb*', root=self.prefix, shared=shared, recursive=True)
+
+ @when('@2021.1.1:')
+ def cmake_args(self):
+ spec = self.spec
+ options = []
+ options.append('-DCMAKE_HWLOC_2_INCLUDE_PATH=%s' %
+ spec['hwloc'].prefix.include)
+ options.append('-DCMAKE_HWLOC_2_LIBRARY_PATH=%s' %
+ spec['hwloc'].libs)
+ options.append('-DTBB_CPF=ON')
+ options.append('-DTBB_STRICT=OFF')
+ if spec.variants['cxxstd'].value != 'default':
+ options.append('-DCMAKE_CXX_STANDARD=%s' %
+ spec.variants['cxxstd'].value)
+ return options
diff --git a/var/spack/repos/builtin/packages/intel-xed/1201-segv.patch b/var/spack/repos/builtin/packages/intel-xed/1201-segv.patch
new file mode 100644
index 0000000000..a1ff15d5c9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/intel-xed/1201-segv.patch
@@ -0,0 +1,18 @@
+Fix segfault due to uninitialized data when trying to decode some cases
+of data that aren't a valid instruction.
+
+https://github.com/intelxed/xed/commit/5c54699f78ba1e3ce7e0cc6dead0088a8dd09c56
+
+
+diff --git a/src/dec/xed-decoded-init.c b/src/dec/xed-decoded-init.c
+index b0d4db1..fc226d2 100644
+--- a/src/dec/xed-decoded-init.c
++++ b/src/dec/xed-decoded-init.c
+@@ -46,6 +46,7 @@ xed_decoded_inst_zero_keep_mode_from_operands(
+ xed_operand_values_init_keep_mode(p, operands);
+ p->_decoded_length = 0;
+ p->_inst = 0;
++ p->u.user_data = 0;
+ }
+
+ XED_DLL_EXPORT void
diff --git a/var/spack/repos/builtin/packages/intel-xed/package.py b/var/spack/repos/builtin/packages/intel-xed/package.py
index 94addcbdf9..06ee2791e6 100644
--- a/var/spack/repos/builtin/packages/intel-xed/package.py
+++ b/var/spack/repos/builtin/packages/intel-xed/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,38 +13,36 @@ class IntelXed(Package):
homepage = "https://intelxed.github.io/"
git = "https://github.com/intelxed/xed.git"
+ maintainers = ['mwkrentel']
- # The version name and git commit hashes for the main xed repo and
- # the mbuild resource. Xed doesn't have official releases, only
- # git commits.
-
- version_list = [('2019.03.01',
- 'b7231de4c808db821d64f4018d15412640c34113',
- '176544e1fb54b6bfb40f596111368981d287e951'),
- ('2018.02.14',
- '44d06033b69aef2c20ab01bfb518c52cd71bb537',
- 'bb9123152a330c7fa1ff1a502950dc199c83e177')]
-
- version('develop', branch='master')
- resource(name='mbuild',
- git='https://github.com/intelxed/mbuild.git',
- branch='master', placement='mbuild',
- when='@develop')
-
- for (vers, xed_hash, mbuild_hash) in version_list:
- version(vers, commit=xed_hash)
- resource(name='mbuild',
- git='https://github.com/intelxed/mbuild.git',
- commit=mbuild_hash,
- when='@{0}'.format(vers))
+ mbuild_git = 'https://github.com/intelxed/mbuild.git'
+
+ # Current versions now have actual releases and tags.
+ version('master', branch='master')
+ version('12.0.1', tag='12.0.1')
+ version('11.2.0', tag='11.2.0')
+
+ # The old 2019.03.01 version (before there were tags).
+ version('10.2019.03', commit='b7231de4c808db821d64f4018d15412640c34113')
+
+ resource(name='mbuild', placement='mbuild', git=mbuild_git,
+ branch='master', when='@master')
+
+ resource(name='mbuild', placement='mbuild', git=mbuild_git,
+ commit='3e8eb33aada4153c21c4261b35e5f51f6e2019e8', when='@:999')
variant('debug', default=False, description='Enable debug symbols')
+ variant('pic', default=False,
+ description='Compile with position independent code.')
+
+ # The current mfile uses python3 by name.
+ depends_on('python@3.4:', type='build')
- # python module 'platform.linux_distribution' was removed in python 3.8
- depends_on('python@2.7:3.7', type='build')
+ patch('1201-segv.patch', when='@12.0.1')
conflicts('target=ppc64:', msg='intel-xed only runs on x86')
conflicts('target=ppc64le:', msg='intel-xed only runs on x86')
+ conflicts('target=aarch64:', msg='intel-xed only runs on x86')
mycflags = []
@@ -52,6 +50,10 @@ class IntelXed(Package):
def flag_handler(self, name, flags):
if name == 'cflags':
self.mycflags = flags
+
+ if '+pic' in self.spec:
+ flags.append(self.compiler.cc_pic_flag)
+
return (flags, None, None)
def install(self, spec, prefix):
@@ -93,9 +95,15 @@ class IntelXed(Package):
install(join_path('obj', 'lib*.so'), prefix.lib)
- # Install the xed program
- install(join_path('obj', 'examples', 'xed'), prefix.bin)
-
- # Install header files.
- install(join_path('include', 'public', 'xed', '*.h'), prefix.include)
- install(join_path('obj', '*.h'), prefix.include)
+ # Starting with 11.x, the install files are moved or copied into
+ # subdirs of obj/wkit.
+ if spec.satisfies('@11.0:'):
+ wkit = join_path('obj', 'wkit')
+ install(join_path(wkit, 'bin', 'xed'), prefix.bin)
+ install(join_path(wkit, 'include', 'xed', '*.h'), prefix.include)
+ else:
+ # Old 2019.03.01 paths.
+ install(join_path('obj', 'examples', 'xed'), prefix.bin)
+ install(join_path('include', 'public', 'xed', '*.h'),
+ prefix.include)
+ install(join_path('obj', '*.h'), prefix.include)
diff --git a/var/spack/repos/builtin/packages/intel/package.py b/var/spack/repos/builtin/packages/intel/package.py
index ee7249fb06..c49d2d8a2d 100644
--- a/var/spack/repos/builtin/packages/intel/package.py
+++ b/var/spack/repos/builtin/packages/intel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,30 +12,33 @@ class Intel(IntelPackage):
homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
+ maintainers = ['rscohn2', 'danvev']
+
# Same as in ../intel-parallel-studio/package.py, Composer Edition,
# but the version numbering in Spack differs.
- version('20.0.2', sha256='42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz')
- version('20.0.1', sha256='26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz')
- version('20.0.0', sha256='9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/parallel_studio_xe_2020_composer_edition.tgz')
- version('19.1.2', sha256='42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz')
- version('19.1.1', sha256='26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz')
- version('19.1.0', sha256='9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/parallel_studio_xe_2020_composer_edition.tgz')
- version('19.0.5', sha256='e8c8e4b9b46826a02c49325c370c79f896858611bf33ddb7fb204614838ad56c', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15813/parallel_studio_xe_2019_update5_composer_edition.tgz')
- version('19.0.4', sha256='1915993445323e1e78d6de73702a88fa3df2036109cde03d74ee38fef9f1abf2', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15537/parallel_studio_xe_2019_update4_composer_edition.tgz')
- version('19.0.3', sha256='15373ac6df2a84e6dd9fa0eac8b5f07ab00cdbb67f494161fd0d4df7a71aff8e', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15272/parallel_studio_xe_2019_update3_composer_edition.tgz')
+ version('20.0.4', sha256='ac1efeff608a8c3a416e6dfe20364061e8abf62d35fbaacdffe3fc9676fc1aa3', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17117/parallel_studio_xe_2020_update4_composer_edition.tgz')
+ version('20.0.2', sha256='42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz')
+ version('20.0.1', sha256='26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz')
+ version('20.0.0', sha256='9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/parallel_studio_xe_2020_composer_edition.tgz')
+ version('19.1.2', sha256='42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz')
+ version('19.1.1', sha256='26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz')
+ version('19.1.0', sha256='9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/parallel_studio_xe_2020_composer_edition.tgz')
+ version('19.0.5', sha256='e8c8e4b9b46826a02c49325c370c79f896858611bf33ddb7fb204614838ad56c', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15813/parallel_studio_xe_2019_update5_composer_edition.tgz')
+ version('19.0.4', sha256='1915993445323e1e78d6de73702a88fa3df2036109cde03d74ee38fef9f1abf2', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15537/parallel_studio_xe_2019_update4_composer_edition.tgz')
+ version('19.0.3', sha256='15373ac6df2a84e6dd9fa0eac8b5f07ab00cdbb67f494161fd0d4df7a71aff8e', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15272/parallel_studio_xe_2019_update3_composer_edition.tgz')
version('19.0.1', sha256='db000cb2ebf411f6e91719db68a0c68b8d3f7d38ad7f2049ea5b2f1b5f006c25', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14832/parallel_studio_xe_2019_update1_composer_edition.tgz')
- version('19.0.0', sha256='e1a29463038b063e01f694e2817c0fcf1a8e824e24f15a26ce85f20afa3f963a', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13581/parallel_studio_xe_2019_composer_edition.tgz')
+ version('19.0.0', sha256='e1a29463038b063e01f694e2817c0fcf1a8e824e24f15a26ce85f20afa3f963a', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13581/parallel_studio_xe_2019_composer_edition.tgz')
# Version 18.0.5 comes with parallel studio 2018 update 4. See:
# https://software.intel.com/en-us/articles/intel-compiler-and-composer-update-version-numbers-to-compiler-version-number-mapping
- version('18.0.5', sha256='94aca8f091dff9535b02f022a37aef150b36925c8ef069335621496f8e4db267', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13722/parallel_studio_xe_2018_update4_composer_edition.tgz')
- version('18.0.3', sha256='f21f7759709a3d3e3390a8325fa89ac79b1fce8890c292e73b2ba3ec576ebd2b', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13002/parallel_studio_xe_2018_update3_composer_edition.tgz')
- version('18.0.2', sha256='02d2a9fb10d9810f85dd77700215c4348d2e4475e814e4f086eb1442462667ff', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12722/parallel_studio_xe_2018_update2_composer_edition.tgz')
+ version('18.0.5', sha256='94aca8f091dff9535b02f022a37aef150b36925c8ef069335621496f8e4db267', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13722/parallel_studio_xe_2018_update4_composer_edition.tgz')
+ version('18.0.3', sha256='f21f7759709a3d3e3390a8325fa89ac79b1fce8890c292e73b2ba3ec576ebd2b', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13002/parallel_studio_xe_2018_update3_composer_edition.tgz')
+ version('18.0.2', sha256='02d2a9fb10d9810f85dd77700215c4348d2e4475e814e4f086eb1442462667ff', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12722/parallel_studio_xe_2018_update2_composer_edition.tgz')
version('18.0.1', sha256='db9aa417da185a03a63330c9d76ee8e88496ae6b771584d19003a29eedc7cab5', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12381/parallel_studio_xe_2018_update1_composer_edition.tgz')
version('18.0.0', sha256='ecad64360fdaff2548a0ea250a396faf680077c5a83c3c3ce2c55f4f4270b904', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12067/parallel_studio_xe_2018_composer_edition.tgz')
#
- version('17.0.7', sha256='661e33b68e47bf335694d2255f5883955234e9085c8349783a5794eed2a937ad', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12860/parallel_studio_xe_2017_update7_composer_edition.tgz')
- version('17.0.6', sha256='771f50746fe130ea472394c42e25d2c7edae049ad809d2050945ef637becf65f', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12538/parallel_studio_xe_2017_update6_composer_edition.tgz')
+ version('17.0.7', sha256='661e33b68e47bf335694d2255f5883955234e9085c8349783a5794eed2a937ad', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12860/parallel_studio_xe_2017_update7_composer_edition.tgz')
+ version('17.0.6', sha256='771f50746fe130ea472394c42e25d2c7edae049ad809d2050945ef637becf65f', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12538/parallel_studio_xe_2017_update6_composer_edition.tgz')
version('17.0.5', sha256='ede4ea9351fcf263103588ae0f130b4c2a79395529cdb698b0d6e866c4871f78', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12144/parallel_studio_xe_2017_update5_composer_edition.tgz')
version('17.0.4', sha256='4304766f80206a27709be61641c16782fccf2b3fcf7285782cce921ddc9b10ff', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11541/parallel_studio_xe_2017_update4_composer_edition.tgz')
version('17.0.3', sha256='3648578d7bba993ebb1da37c173979bfcfb47f26e7f4e17f257e78dea8fd96ab', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11464/parallel_studio_xe_2017_update3_composer_edition.tgz')
diff --git a/var/spack/repos/builtin/packages/interproscan/package.py b/var/spack/repos/builtin/packages/interproscan/package.py
index 6b8d9b6b68..5639f6caf1 100644
--- a/var/spack/repos/builtin/packages/interproscan/package.py
+++ b/var/spack/repos/builtin/packages/interproscan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,7 +24,7 @@ class Interproscan(Package):
resource(
when='@:4.8',
name='binaries',
- url="http://ftp.ebi.ac.uk/pub/databases/interpro/iprscan/BIN/4.x/iprscan_bin4.x_Linux64.tar.gz",
+ url="https://ftp.ebi.ac.uk/pub/databases/interpro/iprscan/BIN/4.x/iprscan_bin4.x_Linux64.tar.gz",
sha256='551610a4682b112522f3ded5268f76ba9a47399a72e726fafb17cc938a50e7ee',
)
diff --git a/var/spack/repos/builtin/packages/intltool/package.py b/var/spack/repos/builtin/packages/intltool/package.py
index 8225d465c5..6aabec8f17 100644
--- a/var/spack/repos/builtin/packages/intltool/package.py
+++ b/var/spack/repos/builtin/packages/intltool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ioapi/package.py b/var/spack/repos/builtin/packages/ioapi/package.py
index 268512e5f2..5f2755f38b 100644
--- a/var/spack/repos/builtin/packages/ioapi/package.py
+++ b/var/spack/repos/builtin/packages/ioapi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Ioapi(MakefilePackage):
homepage = "https://www.cmascenter.org/ioapi/"
url = "https://www.cmascenter.org/ioapi/download/ioapi-3.2.tar.gz"
- version('3.2', sha256='56771ff0053d47f2445e00ff369bca7bfc484325a2816b2c648744e523134fe9')
+ version('3.2', sha256='0a3cbf236ffbd9fb5f6509e35308c3353f1f53096efe0c51b84883d2da86924b')
depends_on('netcdf-c@4:')
depends_on('netcdf-fortran@4:')
depends_on('sed', type='build')
diff --git a/var/spack/repos/builtin/packages/ior/package.py b/var/spack/repos/builtin/packages/ior/package.py
index d4acdfa481..6d6a1275f0 100644
--- a/var/spack/repos/builtin/packages/ior/package.py
+++ b/var/spack/repos/builtin/packages/ior/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,9 +13,10 @@ class Ior(AutotoolsPackage):
homepage = "https://github.com/hpc/ior"
url = "https://github.com/hpc/ior/archive/3.2.1.tar.gz"
- version('develop', git='https://github.com/hpc/ior.git', branch='master')
+ version('develop', git='https://github.com/hpc/ior.git', branch='main')
+ version('3.3.0', sha256='701f2167f81ef963e227d4c036c4a947a98b5642b7c14c87c8ae657849891528', preferred=True)
version('3.3.0rc1', sha256='0e42ebf5b5adae60625bf97989c8e2519d41ea2e3d18561d7d5b945625317aa5')
- version('3.2.1', sha256='ebcf2495aecb357370a91a2d5852cfd83bba72765e586bcfaf15fb79ca46d00e', preferred=True)
+ version('3.2.1', sha256='ebcf2495aecb357370a91a2d5852cfd83bba72765e586bcfaf15fb79ca46d00e')
version('3.2.0', sha256='91a766fb9c34b5780705d0997b71b236a1120da46652763ba11d9a8c44251852')
version('3.0.1', sha256='0cbefbcdb02fb13ba364e102f9e7cc2dcf761698533dac25de446a3a3e81390d')
diff --git a/var/spack/repos/builtin/packages/iozone/package.py b/var/spack/repos/builtin/packages/iozone/package.py
index b2a7d55286..6cf9758a36 100644
--- a/var/spack/repos/builtin/packages/iozone/package.py
+++ b/var/spack/repos/builtin/packages/iozone/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -11,9 +13,10 @@ class Iozone(MakefilePackage):
measures a variety of file operations. Iozone has been ported to many
machines and runs under many operating systems."""
- homepage = "http://www.iozone.org/"
- url = "http://www.iozone.org/src/current/iozone3_465.tar"
+ homepage = "https://www.iozone.org/"
+ url = "https://www.iozone.org/src/current/iozone3_465.tar"
+ version('3_491', sha256='2cc4842d382e46a585d1df9ae1e255695480dcc0fc05c3b1cb32ef3493d0ec9a')
version('3_465', sha256='2e3d72916e7d7340a7c505fc0c3d28553fcc5ff2daf41d811368e55bd4e6a293')
# TODO: Add support for other architectures as necessary
@@ -22,6 +25,11 @@ class Iozone(MakefilePackage):
build_directory = 'src/current'
def edit(self, spec, prefix):
+ for dirpath, dirnames, filenames in os.walk(self.stage.source_path):
+ for filename in filenames:
+ path = os.path.join(dirpath, filename)
+ os.chmod(path, 0o644)
+
with working_dir(self.build_directory):
filter_file(r'^CC\t= cc',
r'CC\t= {0}'.format(spack_cc),
diff --git a/var/spack/repos/builtin/packages/ip/package.py b/var/spack/repos/builtin/packages/ip/package.py
new file mode 100644
index 0000000000..52fdecf927
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ip/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 Ip(CMakePackage):
+ """The NCEP general interpolation library (iplib) contains Fortran 90
+ subprograms to be used for interpolating between nearly all grids used at
+ NCEP. This is part of the NCEPLIBS project."""
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS-ip"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-ip/archive/refs/tags/v3.3.3.tar.gz"
+
+ maintainers = ['t-brown', 'kgerheiser', 'edwardhartnett', 'Hang-Lei-NOAA']
+
+ version('3.3.3', sha256='d5a569ca7c8225a3ade64ef5cd68f3319bcd11f6f86eb3dba901d93842eb3633')
+
+ depends_on('sp')
diff --git a/var/spack/repos/builtin/packages/ip2/package.py b/var/spack/repos/builtin/packages/ip2/package.py
new file mode 100644
index 0000000000..aac5c0b538
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ip2/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 Ip2(CMakePackage):
+ """The NCEP general interpolation library 2 (ip2lib) contains Fortran
+ 90 subprograms to be used for interpolating between nearly all
+ grids used at NCEP. This library is deprecated; all functionality
+ has been moved to the ip library.
+
+ This is part of the NCEPLIBS project."""
+
+ homepage = "https://github.com/NOAA-EMC/NCEPLIBS-ip2"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-ip2/archive/refs/tags/v1.1.2.tar.gz"
+
+ maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett']
+
+ version('1.1.2', sha256='73c6beec8fd463ec7ccba3633d8c5d53d385c43d507367efde918c2db0af42ab')
+
+ depends_on('sp')
diff --git a/var/spack/repos/builtin/packages/ipcalc/package.py b/var/spack/repos/builtin/packages/ipcalc/package.py
index 672bd5e5f8..a49acdc036 100644
--- a/var/spack/repos/builtin/packages/ipcalc/package.py
+++ b/var/spack/repos/builtin/packages/ipcalc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/iperf2/package.py b/var/spack/repos/builtin/packages/iperf2/package.py
index 6c3369a93a..4da386b5c3 100644
--- a/var/spack/repos/builtin/packages/iperf2/package.py
+++ b/var/spack/repos/builtin/packages/iperf2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/iperf3/package.py b/var/spack/repos/builtin/packages/iperf3/package.py
index 9fbae17e2e..6b0da32f05 100644
--- a/var/spack/repos/builtin/packages/iperf3/package.py
+++ b/var/spack/repos/builtin/packages/iperf3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ipopt/package.py b/var/spack/repos/builtin/packages/ipopt/package.py
index 54b9ef9f49..a7e4b74c54 100644
--- a/var/spack/repos/builtin/packages/ipopt/package.py
+++ b/var/spack/repos/builtin/packages/ipopt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,20 +9,31 @@ from spack import *
class Ipopt(AutotoolsPackage):
"""Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a
software package for large-scale nonlinear optimization."""
- homepage = "https://projects.coin-or.org/Ipopt"
- url = "http://www.coin-or.org/download/source/Ipopt/Ipopt-3.12.4.tgz"
+ homepage = "https://github.com/coin-or/Ipopt"
+ url = "https://www.coin-or.org/download/source/Ipopt/Ipopt-3.13.2.tgz"
+ # Alternative: url = "https://github.com/coin-or/Ipopt/archive/releases/3.13.2.tar.gz"
+
+ version('3.14.0', sha256='9bed72a5456ef37f1b95746c932986e6664eb70b983d4fab61cf8aa811facdf1')
+ version('3.13.4', sha256='1fdd0f8ea637856d66b1ebdd7d52ad1b8b8c1142d1a4ce0976b200ab280e5683')
+ version('3.13.3', sha256='86354b36c691e6cd6b8049218519923ab0ce8a6f0a432c2c0de605191f2d4a1c')
+ version('3.13.2', sha256='891ab9e9c7db29fc8ac5c779ccec6313301098de7bbf735ca230cd5544c49496')
+ version('3.13.1', sha256='64fc63a3fe27cf5efaf17ebee861f7db5bf70aacf9c316c0d37e4beb4eb72e11')
+ version('3.13.0', sha256='dc392396be28c4a0d49bfab399320cb3f70db5b8f090028a883d826a47744ecf')
+ version('3.12.13', sha256='aac9bb4d8a257fdfacc54ff3f1cbfdf6e2d61fb0cf395749e3b0c0664d3e7e96')
+ version('3.12.12', sha256='7baeb713ef8d1999bed397b938e9654b38ad536406634384455372dd7e4ed61f')
+ version('3.12.11', sha256='cbfc8a37978fdbaeed73b5b2d93b92b7c8b5b615ece02d4646e1556b0a7b382a')
version('3.12.10', sha256='e1a3ad09e41edbfe41948555ece0bdc78757a5ca764b6be5a9a127af2e202d2e')
- version('3.12.9', sha256='8ff3fe1a8560896fc5559839a87c2530cac4ed231b0806e487bfd3cf2d294ab8')
- version('3.12.8', sha256='62c6de314220851b8f4d6898b9ae8cf0a8f1e96b68429be1161f8550bb7ddb03')
- version('3.12.7', sha256='9c8b02149fa4f0cdf63e838ae68f86aa41a577d7f05932139eede9179f314861')
- version('3.12.6', sha256='6aaa6bd862d54eba6fb966950fa6928ca01d66cf4cb842b2f41a7ebfa61eee2b')
- version('3.12.5', sha256='53e7af6eefcb6de1f8e936c9c887c7bcb5a9fa4fcf7673a227f16de131147325')
- version('3.12.4', sha256='292afd952c25ec9fe6225041683dcbd3cb76e15a128764671927dbaf881c2e89')
- version('3.12.3', sha256='754fb9473bc683b59a53d2057ff852d0a8d56198bcdba2e2529ce299243fdaa5')
- version('3.12.2', sha256='3903657788bff7d7743f8bb25c34ccf91c445e72a4710cb821c024107bd1b474')
- version('3.12.1', sha256='d6c18f7c5bf486712b493167d27ec6e940ad376c5b903b97acc5a3ade1c0a3ef')
- version('3.12.0', sha256='ed19e5e7174355e93c93c798b5056036e2fd2ec78cf0f3954876483f74fe618b')
+ version('3.12.9', sha256='8ff3fe1a8560896fc5559839a87c2530cac4ed231b0806e487bfd3cf2d294ab8')
+ version('3.12.8', sha256='62c6de314220851b8f4d6898b9ae8cf0a8f1e96b68429be1161f8550bb7ddb03')
+ version('3.12.7', sha256='9c8b02149fa4f0cdf63e838ae68f86aa41a577d7f05932139eede9179f314861')
+ version('3.12.6', sha256='6aaa6bd862d54eba6fb966950fa6928ca01d66cf4cb842b2f41a7ebfa61eee2b')
+ version('3.12.5', sha256='53e7af6eefcb6de1f8e936c9c887c7bcb5a9fa4fcf7673a227f16de131147325')
+ version('3.12.4', sha256='292afd952c25ec9fe6225041683dcbd3cb76e15a128764671927dbaf881c2e89')
+ version('3.12.3', sha256='754fb9473bc683b59a53d2057ff852d0a8d56198bcdba2e2529ce299243fdaa5')
+ version('3.12.2', sha256='3903657788bff7d7743f8bb25c34ccf91c445e72a4710cb821c024107bd1b474')
+ version('3.12.1', sha256='d6c18f7c5bf486712b493167d27ec6e940ad376c5b903b97acc5a3ade1c0a3ef')
+ version('3.12.0', sha256='ed19e5e7174355e93c93c798b5056036e2fd2ec78cf0f3954876483f74fe618b')
variant('coinhsl', default=False,
description="Build with Coin Harwell Subroutine Libraries")
@@ -30,14 +41,19 @@ class Ipopt(AutotoolsPackage):
description="Build with METIS partitioning support")
variant('debug', default=False,
description="Build debug instead of optimized version")
+ variant('mumps', default=True,
+ description='Build with support for linear solver MUMPS')
depends_on("blas")
depends_on("lapack")
depends_on("pkgconfig", type='build')
- depends_on("mumps+double~mpi")
+ depends_on("mumps+double~mpi", when='+mumps')
depends_on('coinhsl', when='+coinhsl')
depends_on('metis@4.0:', when='+metis')
+ # Must have at least one linear solver available!
+ conflicts('~mumps', when='~coinhsl')
+
patch('ipopt_ppc_build.patch', when='arch=ppc64le')
flag_handler = build_system_flags
@@ -51,28 +67,38 @@ class Ipopt(AutotoolsPackage):
# Dependency directories
blas_dir = spec['blas'].prefix
lapack_dir = spec['lapack'].prefix
- mumps_dir = spec['mumps'].prefix
-
- # Add directory with fake MPI headers in sequential MUMPS
- # install to header search path
- mumps_flags = "-ldmumps -lmumps_common -lpord -lmpiseq"
- mumps_libcmd = "-L%s " % mumps_dir.lib + mumps_flags
blas_lib = spec['blas'].libs.ld_flags
lapack_lib = spec['lapack'].libs.ld_flags
args = [
"--prefix=%s" % self.prefix,
- "--with-mumps-incdir=%s" % mumps_dir.include,
- "--with-mumps-lib=%s" % mumps_libcmd,
"--enable-shared",
"coin_skip_warn_cxxflags=yes",
- "--with-blas-incdir=%s" % blas_dir.include,
- "--with-blas-lib=%s" % blas_lib,
- "--with-lapack-incdir=%s" % lapack_dir.include,
- "--with-lapack-lib=%s" % lapack_lib
]
+ if spec.satisfies('@:3.12.10'):
+ args.extend([
+ "--with-lapack-lib={0}".format(lapack_lib),
+ "--with-lapack-incdir={0}".format(lapack_dir.include),
+ "--with-blas-lib={0}".format(blas_lib),
+ "--with-blas-incdir={0}".format(blas_dir.include),
+ ])
+ else:
+ args.extend([
+ "--with-lapack-lflags={0} {1}".format(lapack_lib, blas_lib),
+ ])
+
+ if '+mumps' in spec:
+ # Add directory with fake MPI headers in sequential MUMPS
+ # install to header search path
+ mumps_dir = spec['mumps'].prefix
+ mumps_flags = "-ldmumps -lmumps_common -lpord -lmpiseq"
+ mumps_libcmd = "-L%s " % mumps_dir.lib + mumps_flags
+ args.extend([
+ "--with-mumps-incdir=%s" % mumps_dir.include,
+ "--with-mumps-lib=%s" % mumps_libcmd])
+
if 'coinhsl' in spec:
args.extend([
'--with-hsl-lib=%s' % spec['coinhsl'].libs.ld_flags,
diff --git a/var/spack/repos/builtin/packages/iproute2/package.py b/var/spack/repos/builtin/packages/iproute2/package.py
index 426ba5c1bc..48495ddabf 100644
--- a/var/spack/repos/builtin/packages/iproute2/package.py
+++ b/var/spack/repos/builtin/packages/iproute2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/iptraf-ng/package.py b/var/spack/repos/builtin/packages/iptraf-ng/package.py
new file mode 100644
index 0000000000..cedd08f354
--- /dev/null
+++ b/var/spack/repos/builtin/packages/iptraf-ng/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 IptrafNg(MakefilePackage):
+ """A console-based network monitoring utility."""
+
+ homepage = "https://github.com/iptraf-ng/iptraf-ng"
+ url = "https://github.com/iptraf-ng/iptraf-ng/archive/v1.2.0.tar.gz"
+
+ version('1.2.1', sha256='9f5cef584065420dea1ba32c86126aede1fa9bd25b0f8362b0f9fd9754f00870')
+ version('1.2.0', sha256='9725115e501d083674d50a7686029d3a08f920abd35c9a2d4a28b5ddb782417f')
+ version('1.1.4', sha256='16b9b05bf5d3725d86409b901696639ad46944d02de6def87b1ceae5310dd35c')
+
+ depends_on('ncurses')
+
+ def install(self, spec, prefix):
+ make('install', 'prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/iq-tree/package.py b/var/spack/repos/builtin/packages/iq-tree/package.py
index 010ccdcae0..15c734c062 100644
--- a/var/spack/repos/builtin/packages/iq-tree/package.py
+++ b/var/spack/repos/builtin/packages/iq-tree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,15 +11,16 @@ class IqTree(CMakePackage):
"""IQ-TREE Efficient software for phylogenomic inference"""
homepage = "http://www.iqtree.org"
- git = "https://github.com/Cibiv/IQ-TREE.git"
+ git = "https://github.com/iqtree/iqtree2.git"
url = "https://github.com/Cibiv/IQ-TREE/archive/v1.6.12.tar.gz"
+ version('2.1.3', tag='v2.1.3', submodules=True)
version('2.0.6', tag='v2.0.6', submodules=True)
- version('1.6.12', sha256='9614092de7a157de82c9cc402b19cc8bfa0cb0ffc93b91817875c2b4bb46a284')
+ version('1.6.12', sha256='9614092de7a157de82c9cc402b19cc8bfa0cb0ffc93b91817875c2b4bb46a284')
variant('openmp', default=True, description='Enable OpenMP support.')
- variant('mpi', default=False, description='Enable MPI support.')
- variant('lsd2', default=True, description='Axctivate Least Squares Dating.')
+ variant('mpi', default=False, description='Enable MPI support.')
+ variant('lsd2', default=True, description='Activate Least Squares Dating.')
maintainers = ['ilbiondo']
diff --git a/var/spack/repos/builtin/packages/irep/package.py b/var/spack/repos/builtin/packages/irep/package.py
new file mode 100644
index 0000000000..3658dae19b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/irep/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 Irep(CMakePackage):
+ """IREP is a tool that enables mixed-language simulation codes to use a
+ common, Lua-based format for their input decks. Essentially, the input
+ format is a set of tables -- Lua's one (and only?) data structure."""
+
+ homepage = "https://irep.readthedocs.io/"
+ url = "https://github.com/LLNL/irep/archive/refs/tags/v1.0.0.tar.gz"
+
+ maintainers = ['tomstitt', 'kennyweiss']
+
+ version('1.0.0', 'b84203ac92de824dbdc672de45cfdb9609373791c4ee84a5201fa6e4ccecc1a4')
+
+ depends_on('lua-lang')
diff --git a/var/spack/repos/builtin/packages/isaac-server/package.py b/var/spack/repos/builtin/packages/isaac-server/package.py
index da78398d1e..66fcba776f 100644
--- a/var/spack/repos/builtin/packages/isaac-server/package.py
+++ b/var/spack/repos/builtin/packages/isaac-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class IsaacServer(CMakePackage):
"""In Situ Animation of Accelerated Computations: Server"""
- homepage = "http://computationalradiationphysics.github.io/isaac/"
+ homepage = "https://computationalradiationphysics.github.io/isaac/"
url = "https://github.com/ComputationalRadiationPhysics/isaac/archive/v1.3.0.tar.gz"
git = "https://github.com/ComputationalRadiationPhysics/isaac.git"
@@ -17,6 +17,8 @@ class IsaacServer(CMakePackage):
version('develop', branch='dev')
version('master', branch='master')
+ version('1.5.2', sha256='9cedd72bea06f387b697b17a0db076e50fb3b85b74f21d3a6d99ed0d664a9ef2')
+ version('1.5.1', sha256='f62d53aa6e1c28e51437dbf3d1ac0daa2f98d28660f09feaabcc953ff01b076e')
version('1.5.0', sha256='4d5a150dfe064289d760da368102172f84e9e8851a177c8125a56e151db58dce')
version('1.4.0', sha256='6cbd4cc54a22de5e5a3427e44141db6e7b80b33fe7a0c707390a113655bf344e')
version('1.3.3', sha256='92a972d05d315ad66546671c047b7edf8ed0e05d64d2b8d77ababb5bb9b93d8e')
@@ -29,7 +31,8 @@ class IsaacServer(CMakePackage):
depends_on('cmake@3.3:', type='build')
depends_on('jpeg', type='link')
- depends_on('jansson@:2.9', type='link')
+ depends_on('jansson@:2.9', type='link', when='@:1.5.1')
+ depends_on('jansson', type='link')
depends_on('boost@1.56.0:', type='link')
depends_on('libwebsockets@2.1.1:', type='link')
# depends_on('gstreamer@1.0', when='+gstreamer')
diff --git a/var/spack/repos/builtin/packages/isaac/package.py b/var/spack/repos/builtin/packages/isaac/package.py
index ddc62f3482..6c8733f590 100644
--- a/var/spack/repos/builtin/packages/isaac/package.py
+++ b/var/spack/repos/builtin/packages/isaac/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Isaac(CMakePackage):
"""In Situ Animation of Accelerated Computations: Header-Only Library"""
- homepage = "http://computationalradiationphysics.github.io/isaac/"
+ homepage = "https://computationalradiationphysics.github.io/isaac/"
url = "https://github.com/ComputationalRadiationPhysics/isaac/archive/v1.3.0.tar.gz"
git = "https://github.com/ComputationalRadiationPhysics/isaac.git"
@@ -17,6 +17,8 @@ class Isaac(CMakePackage):
version('develop', branch='dev')
version('master', branch='master')
+ version('1.5.2', sha256='9cedd72bea06f387b697b17a0db076e50fb3b85b74f21d3a6d99ed0d664a9ef2')
+ version('1.5.1', sha256='f62d53aa6e1c28e51437dbf3d1ac0daa2f98d28660f09feaabcc953ff01b076e')
version('1.5.0', sha256='4d5a150dfe064289d760da368102172f84e9e8851a177c8125a56e151db58dce')
version('1.4.0', sha256='6cbd4cc54a22de5e5a3427e44141db6e7b80b33fe7a0c707390a113655bf344e')
version('1.3.3', sha256='92a972d05d315ad66546671c047b7edf8ed0e05d64d2b8d77ababb5bb9b93d8e')
diff --git a/var/spack/repos/builtin/packages/isc-dhcp/package.py b/var/spack/repos/builtin/packages/isc-dhcp/package.py
index 9a5ab76455..bbe8d36352 100644
--- a/var/spack/repos/builtin/packages/isc-dhcp/package.py
+++ b/var/spack/repos/builtin/packages/isc-dhcp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/isescan/package.py b/var/spack/repos/builtin/packages/isescan/package.py
index 1d4b607046..44394d284e 100644
--- a/var/spack/repos/builtin/packages/isescan/package.py
+++ b/var/spack/repos/builtin/packages/isescan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/isl/package.py b/var/spack/repos/builtin/packages/isl/package.py
index 826f2c1969..82c333dcdd 100644
--- a/var/spack/repos/builtin/packages/isl/package.py
+++ b/var/spack/repos/builtin/packages/isl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Isl(AutotoolsPackage):
"""isl (Integer Set Library) is a thread-safe C library for manipulating
sets and relations of integer points bounded by affine constraints."""
- homepage = "http://isl.gforge.inria.fr"
+ homepage = "https://isl.gforge.inria.fr"
url = "http://isl.gforge.inria.fr/isl-0.21.tar.bz2"
version('0.21', sha256='d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859')
diff --git a/var/spack/repos/builtin/packages/iso-codes/package.py b/var/spack/repos/builtin/packages/iso-codes/package.py
index 8023866c04..61389f6f3d 100644
--- a/var/spack/repos/builtin/packages/iso-codes/package.py
+++ b/var/spack/repos/builtin/packages/iso-codes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ispc/package.py b/var/spack/repos/builtin/packages/ispc/package.py
index 4532e45243..2bfbab8aba 100644
--- a/var/spack/repos/builtin/packages/ispc/package.py
+++ b/var/spack/repos/builtin/packages/ispc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,6 +8,8 @@
# glibc-devel.i686 (CentoOS) or libc6-dev-i386 and g++-multilib (Ubuntu)
+import re
+
from spack import *
@@ -18,8 +20,15 @@ class Ispc(CMakePackage):
homepage = "https://ispc.github.io"
url = "https://github.com/ispc/ispc/tarball/v1.14.1"
+ git = "https://github.com/ispc/ispc"
maintainers = ['aumuell']
+ executables = ['^ispc$']
+
+ version('master', branch='master')
+ version('1.16.1', sha256='b32dbd374eea5f1b5f535bfd79c5cc35591c0df2e7bf1f86dec96b74e4ebf661')
+ version('1.16.0', sha256='12db1a90046b51752a65f50426e1d99051c6d55e30796ddd079f7bc97d5f6faf')
+ version('1.15.0', sha256='3b634aaa10c9bf0e82505d1af69cb307a3a00182d57eae019680ccfa62338af9')
version('1.14.1', sha256='ca12f26dafbc4ef9605487d03a2156331c1351a4ffefc9bab4d896a466880794')
version('1.14.0', sha256='1ed72542f56738c632bb02fb0dd56ad8aec3e2487839ebbc0def8334f305a4c7')
version('1.13.0', sha256='aca595508b51dd1ff065c406a3fd7c93822320c510077dd4d97a2b98a23f097a')
@@ -29,11 +38,13 @@ class Ispc(CMakePackage):
depends_on('flex', type='build')
depends_on('ncurses', type='link')
depends_on('zlib', type='link')
- depends_on('llvm~libcxx')
- depends_on('llvm@10:', when='@1.14:')
- depends_on('llvm@10:10.999', when='@1.13:1.13.999')
+ depends_on('llvm+clang')
+ depends_on('llvm@11:', when='@1.16:')
+ depends_on('llvm@10:11.999', when='@1.15:1.15.999')
+ depends_on('llvm@10:10.999', when='@1.13:1.14.999')
patch('don-t-assume-that-ncurses-zlib-are-system-libraries.patch',
+ when='@1.14:1.14.999',
sha256='d3ccf547d3ba59779fd375e10417a436318f2200d160febb9f830a26f0daefdc')
patch('fix-linking-against-llvm-10.patch', when='@1.13:1.13.999',
@@ -47,3 +58,10 @@ class Ispc(CMakePackage):
args.append('-DISPC_INCLUDE_TESTS=OFF')
args.append('-DISPC_INCLUDE_UTILS=OFF')
return args
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ match = re.search(r'^Intel.*[iI][sS][pP][cC]\),\s+(\S+)\s+\(build.*\)',
+ output)
+ return match.group(1) if match else None
diff --git a/var/spack/repos/builtin/packages/istio/package.py b/var/spack/repos/builtin/packages/istio/package.py
index 6a3aad6111..da0d92de9f 100644
--- a/var/spack/repos/builtin/packages/istio/package.py
+++ b/var/spack/repos/builtin/packages/istio/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
+from spack import *
+
_versions = {
'1.6.7': {
'Linux-aarch64': '22b0f94efafe9f221c00f4599d9a04e473554515e5fdf8d119fd27e27e36c89f',
diff --git a/var/spack/repos/builtin/packages/itensor/package.py b/var/spack/repos/builtin/packages/itensor/package.py
new file mode 100644
index 0000000000..8a11aa4658
--- /dev/null
+++ b/var/spack/repos/builtin/packages/itensor/package.py
@@ -0,0 +1,133 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Itensor(MakefilePackage):
+ """ITensor -Intelligent Tensor- is a library for
+ implementing tensor network calculations."""
+
+ homepage = "https://itensor.org/index.html"
+ url = "https://github.com/ITensor/ITensor/archive/v3.1.6.tar.gz"
+
+ version('3.1.6', sha256='1c42cd39c45124063d9812b851b4d99735caff7ac2da971b4287c2018d4cf32a')
+ version('3.1.5', sha256='a0661efdda3bfc4fab1796243d4b438b0f17adce08b6bb21a2aaae9766b6a1ec')
+ version('3.1.4', sha256='bdcfa786f5165b6f5d1a40a80e7ecca2e59e2ee7050fd60f42ef4a4a55a793c5')
+ version('3.1.3', sha256='ff6b04f9c642c6795acd3485f44619282a2dde7a49a4e0dee89b47b69dc3853e')
+ version('3.1.2', sha256='3e0f032c211e11be1b5a4adf4a581698a949d03b35c0e9b2e3d9f4bab6dd7967')
+ version('3.1.1', sha256='3c12d288e50522b5bd152f956a48ec187486cfeb4ccb1ea9a05d3f0bf3bf8059')
+ version('3.1.0', sha256='b887cb9c7fc06f60d9d6834380b643adea8d165d574ab1859883f399725b9db9')
+ version('3.0.1', sha256='5e2ac3a5b62fb3e34f1e520e6da911b56659507fb4143118d4a602a5866bc912')
+ version('3.0.0', sha256='1d249a3a6442188a9f7829b32238c1025457c2930566d134a785994b1f7c54a9')
+ version('2.1.1', sha256='b91a67af66ed0fa7678494f3895b5d5ae7f1dc1026540689f9625f515cb7791c')
+
+ variant('openmp', default=False, description='Enable OpenMP support.')
+ variant('hdf5', default=False, description='Build rockstar with HDF5 support.')
+
+ depends_on('lapack')
+ depends_on('hdf5+hl', when='+hdf5')
+
+ conflicts('^openblas threads=none', when='+openmp')
+ conflicts('^openblas threads=pthreads', when='+openmp')
+
+ def getcopts(self, spec):
+ copts = []
+ copts.append(self.compiler.cxx17_flag)
+ copts.append(self.compiler.cc_pic_flag)
+
+ if spec.satisfies('%gcc'):
+ if not spec.satisfies('arch=aarch64:'):
+ copts.append('-m64')
+ copts.append('-fconcepts')
+ if spec.satisfies('%clang') or spec.satisfies('%fj'):
+ copts.append('-Wno-gcc-compat')
+ return ' ' + ' '.join(copts)
+
+ def edit(self, spec, prefix):
+ # 0.copy options.mk
+ mf = 'options.mk'
+ copy('options.mk.sample', mf)
+
+ # 1.CCCOM
+ ccopts = 'CCCOM={0}{1}'.format(spack_cxx, self.getcopts(spec))
+ filter_file(r'^CCCOM.+', ccopts, mf)
+
+ # 2.BLAS/LAPACK
+ # Set default values
+ vpla = 'PLATFORM=lapack'
+ vlib = 'BLAS_LAPACK_LIBFLAGS='
+ vlib += spec['lapack'].libs.ld_flags
+ vinc = 'BLAS_LAPACK_INCLUDEFLAGS=-I'
+ vinc += spec['lapack'].prefix.include
+ ltype = spec['lapack'].name
+ # lapack specific
+ if ltype == 'openblas':
+ vpla = 'PLATFORM=openblas'
+ if spec.satisfies('%gcc'):
+ vinc += ' -fpermissive'
+ vinc += ' -DHAVE_LAPACK_CONFIG_H'
+ vinc += ' -DLAPACK_COMPLEX_STRUCTURE'
+ filter_file('#PLATFORM=lapack', vinc, mf, String=True)
+ elif ltype == 'intel-mkl':
+ vpla = 'PLATFORM=mkl'
+ filter_file('#PLATFORM=lapack', vinc, mf, String=True)
+
+ filter_file(r'^PLATFORM.+', vpla, mf)
+ filter_file(r'^BLAS_LAPACK_LIBFLAGS.+', vlib, mf)
+
+ # 3.HDF5
+ if '+hdf5' in spec:
+ hdf5p = 'HDF5_PREFIX={0}'.format(spec["hdf5"].prefix.lib)
+ filter_file('^#HDF5.+', hdf5p, mf)
+
+ # 4.openmp
+ if '+openmp' in spec:
+ filter_file('#ITENSOR_USE_OMP', 'ITENSOR_USE_OMP', mf)
+ filter_file('-fopenmp', self.compiler.openmp_flag, mf)
+
+ # 5.prefix
+ filter_file(
+ r'^PREFIX.+',
+ 'PREFIX={0}'.format(os.getcwd()),
+ mf
+ )
+
+ def install(self, spec, prefix):
+ # 0.backup options.mk
+ mf = 'options.mk'
+ copy(mf, 'options.mk.build')
+
+ # 1.CCCOM
+ ccopts = 'CCCOM={0}'.format(self.compiler.cxx)
+ ccopts += ' ' + ' '.join(spec.compiler_flags['cxxflags'])
+ if spec.satisfies('%fj'):
+ ccopts += ' ' + env["FCC_ENV"]
+ ccopts += self.getcopts(spec)
+ filter_file(r'^CCCOM.+', ccopts, mf)
+
+ # 2.LDFLAGS
+ vlib = 'BLAS_LAPACK_LIBFLAGS={0} '.format(' '.join(
+ spec.compiler_flags['ldflags'] + spec.compiler_flags['ldlibs']))
+ filter_file(r'^BLAS_LAPACK_LIBFLAGS=', vlib, mf)
+
+ # 3.prefix
+ filter_file(
+ r'^PREFIX.+',
+ 'PREFIX={0}'.format(prefix),
+ mf
+ )
+
+ # tutorial/project_template/Makefile
+ mf2 = join_path('tutorial', 'project_template', 'Makefile')
+ filter_file(
+ r'^LIBRARY_DIR.+',
+ 'LIBRARY_DIR={0}'.format(prefix),
+ mf2
+ )
+
+ install_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/itk/package.py b/var/spack/repos/builtin/packages/itk/package.py
index ef0f129318..759eea82da 100644
--- a/var/spack/repos/builtin/packages/itk/package.py
+++ b/var/spack/repos/builtin/packages/itk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,6 +24,7 @@ class Itk(CMakePackage):
maintainers = ['glennpj']
+ version('5.1.2', sha256='f1e5a78e11125348f68f655c6b89b617c3a8b2c09f710081f621054811a70c98')
version('5.1.1', sha256='39e2a63840054361b728878a35b21bbe38374682ffb4b5c4f8f8f7514dedb58e')
variant('review', default=False, description='enable modules under review')
diff --git a/var/spack/repos/builtin/packages/itstool/package.py b/var/spack/repos/builtin/packages/itstool/package.py
index afc48e73d7..8b2c848616 100644
--- a/var/spack/repos/builtin/packages/itstool/package.py
+++ b/var/spack/repos/builtin/packages/itstool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/itsx/package.py b/var/spack/repos/builtin/packages/itsx/package.py
index 08339c72a7..c7ba13964b 100644
--- a/var/spack/repos/builtin/packages/itsx/package.py
+++ b/var/spack/repos/builtin/packages/itsx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class Itsx(Package):
ribosomal ITS sequences of fungi and other eukaryotes for use in
environmental sequencing"""
- homepage = "http://microbiology.se/software/itsx/"
- url = "http://microbiology.se/sw/ITSx_1.0.11.tar.gz"
+ homepage = "https://microbiology.se/software/itsx/"
+ url = "https://microbiology.se/sw/ITSx_1.0.11.tar.gz"
version('1.0.11', sha256='8f4f76fc9c43b61f4dd4cd8dc4e495e9687943e15515396583f7a757651d435e')
diff --git a/var/spack/repos/builtin/packages/iwyu/package.py b/var/spack/repos/builtin/packages/iwyu/package.py
index eb4ceaa4c4..1f76225030 100644
--- a/var/spack/repos/builtin/packages/iwyu/package.py
+++ b/var/spack/repos/builtin/packages/iwyu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,8 @@ class Iwyu(CMakePackage):
maintainers = ['sethrj']
+ version('0.16', sha256='8d6fc9b255343bc1e5ec459e39512df1d51c60e03562985e0076036119ff5a1c')
+ version('0.15', sha256='2bd6f2ae0d76e4a9412f468a5fa1af93d5f20bb66b9e7bf73479c31d789ac2e2')
version('0.14', sha256='43184397db57660c32e3298a6b1fd5ab82e808a1f5ab0591d6745f8d256200ef')
version('0.13', sha256='49294270aa64e8c04182369212cd919f3b3e0e47601b1f935f038c761c265bc9')
version('0.12', sha256='a5892fb0abccb820c394e4e245c00ef30fc94e4ae58a048b23f94047c0816025')
@@ -23,6 +25,8 @@ class Iwyu(CMakePackage):
patch('iwyu-013-cmake.patch', when='@0.13:0.14')
+ depends_on('llvm+clang@12.0:12.999', when='@0.16')
+ depends_on('llvm+clang@11.0:11.999', when='@0.15')
depends_on('llvm+clang@10.0:10.999', when='@0.14')
depends_on('llvm+clang@9.0:9.999', when='@0.13')
depends_on('llvm+clang@8.0:8.999', when='@0.12')
@@ -42,3 +46,10 @@ class Iwyu(CMakePackage):
def cmake_args(self):
return [self.define('CMAKE_CXX_STANDARD', 14),
self.define('CMAKE_CXX_EXTENSIONS', False)]
+
+ @run_after('install')
+ def link_resources(self):
+ # iwyu needs to find Clang's headers
+ # https://github.com/include-what-you-use/include-what-you-use/blob/master/README.md#how-to-install
+ mkdir(self.prefix.lib)
+ symlink(self.spec['llvm'].prefix.lib.clang, self.prefix.lib.clang)
diff --git a/var/spack/repos/builtin/packages/jackcess/package.py b/var/spack/repos/builtin/packages/jackcess/package.py
index 8d626cebe7..4261feaf75 100644
--- a/var/spack/repos/builtin/packages/jackcess/package.py
+++ b/var/spack/repos/builtin/packages/jackcess/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jafka/package.py b/var/spack/repos/builtin/packages/jafka/package.py
index ab39d87b92..0c8b06dd66 100644
--- a/var/spack/repos/builtin/packages/jafka/package.py
+++ b/var/spack/repos/builtin/packages/jafka/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jags/package.py b/var/spack/repos/builtin/packages/jags/package.py
index f816176827..0b10cfe735 100644
--- a/var/spack/repos/builtin/packages/jags/package.py
+++ b/var/spack/repos/builtin/packages/jags/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jali/package.py b/var/spack/repos/builtin/packages/jali/package.py
index ef1f9f0a52..f007048c51 100644
--- a/var/spack/repos/builtin/packages/jali/package.py
+++ b/var/spack/repos/builtin/packages/jali/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jansi-native/package.py b/var/spack/repos/builtin/packages/jansi-native/package.py
index 54fa0953b4..46165631e5 100644
--- a/var/spack/repos/builtin/packages/jansi-native/package.py
+++ b/var/spack/repos/builtin/packages/jansi-native/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jansi/package.py b/var/spack/repos/builtin/packages/jansi/package.py
index 8ecfee60d8..7747ac6ea1 100644
--- a/var/spack/repos/builtin/packages/jansi/package.py
+++ b/var/spack/repos/builtin/packages/jansi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Jansi(MavenPackage):
ANSI escape codes to format your console output which
works even on Windows."""
- homepage = "http://fusesource.github.io/jansi/"
+ homepage = "https://fusesource.github.io/jansi/"
url = "https://github.com/fusesource/jansi/archive/jansi-project-1.18.tar.gz"
version('1.18', sha256='73cd47ecf370a33c6e76afb5d9a8abf99489361d7bd191781dbd9b7efd082aa5')
diff --git a/var/spack/repos/builtin/packages/jansson/package.py b/var/spack/repos/builtin/packages/jansson/package.py
index 43982b42cc..5c80e1a605 100644
--- a/var/spack/repos/builtin/packages/jansson/package.py
+++ b/var/spack/repos/builtin/packages/jansson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Jansson(CMakePackage):
"""Jansson is a C library for encoding, decoding and manipulating JSON
data."""
- homepage = "http://www.digip.org/jansson/"
+ homepage = "https://www.digip.org/jansson/"
url = "https://github.com/akheron/jansson/archive/v2.9.tar.gz"
maintainers = ['ax3l']
@@ -26,6 +26,5 @@ class Jansson(CMakePackage):
def cmake_args(self):
return [
- '-DJANSSON_BUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in self.spec else 'OFF'),
+ self.define_from_variant('JANSSON_BUILD_SHARED_LIBS', 'shared'),
]
diff --git a/var/spack/repos/builtin/packages/jasper/package.py b/var/spack/repos/builtin/packages/jasper/package.py
index 9599aec8f4..fdfa873adf 100644
--- a/var/spack/repos/builtin/packages/jasper/package.py
+++ b/var/spack/repos/builtin/packages/jasper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,12 @@ class Jasper(Package):
"""Library for manipulating JPEG-2000 images"""
homepage = "https://www.ece.uvic.ca/~frodo/jasper/"
- url = "https://github.com/mdadams/jasper/archive/version-2.0.16.tar.gz"
+ url = "https://github.com/mdadams/jasper/archive/version-2.0.32.tar.gz"
- version('2.0.16', sha256='f1d8b90f231184d99968f361884e2054a1714fdbbd9944ba1ae4ebdcc9bbfdb1')
- version('2.0.14', sha256='85266eea728f8b14365db9eaf1edc7be4c348704e562bb05095b9a077cf1a97b')
+ version('2.0.32', sha256='a3583a06698a6d6106f2fc413aa42d65d86bedf9a988d60e5cfa38bf72bc64b9')
+ version('2.0.31', sha256='d419baa2f8a6ffda18472487f6314f0f08b673204723bf11c3a1f5b3f1b8e768')
+ version('2.0.16', sha256='f1d8b90f231184d99968f361884e2054a1714fdbbd9944ba1ae4ebdcc9bbfdb1')
+ version('2.0.14', sha256='85266eea728f8b14365db9eaf1edc7be4c348704e562bb05095b9a077cf1a97b')
version('1.900.1', sha256='c2b03f28166f9dc8ae434918839ae9aa9962b880fcfd24eebddd0a2daeb9192c')
variant('jpeg', default=True, description='Enable the use of the JPEG library')
diff --git a/var/spack/repos/builtin/packages/jbigkit/package.py b/var/spack/repos/builtin/packages/jbigkit/package.py
index c5e4e26242..cb81f59faf 100644
--- a/var/spack/repos/builtin/packages/jbigkit/package.py
+++ b/var/spack/repos/builtin/packages/jbigkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Jbigkit(MakefilePackage):
"""JBIG-Kit is a software implementation of
the JBIG1 data compression standard."""
- homepage = "http://www.cl.cam.ac.uk/~mgk25/jbigkit/"
- url = "http://www.cl.cam.ac.uk/~mgk25/jbigkit/download/jbigkit-2.1.tar.gz"
+ homepage = "https://www.cl.cam.ac.uk/~mgk25/jbigkit/"
+ url = "https://www.cl.cam.ac.uk/~mgk25/jbigkit/download/jbigkit-2.1.tar.gz"
version('2.1', sha256='de7106b6bfaf495d6865c7dd7ac6ca1381bd12e0d81405ea81e7f2167263d932')
version('1.6', sha256='d841b6d0723c1082450967f3ea500be01810a34ec4a97ad10985ae7071a6150b')
@@ -33,3 +33,9 @@ class Jbigkit(MakefilePackage):
mkdir(prefix.bin)
for f in ['tstcodec', 'tstcodec85']:
install(f, prefix.bin)
+
+ @property
+ def libs(self):
+ return find_libraries(
+ "libjbig*", root=self.prefix, shared=False, recursive=True
+ )
diff --git a/var/spack/repos/builtin/packages/jblob/package.py b/var/spack/repos/builtin/packages/jblob/package.py
index 1aa1738230..71a783c29f 100644
--- a/var/spack/repos/builtin/packages/jblob/package.py
+++ b/var/spack/repos/builtin/packages/jblob/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jchronoss/package.py b/var/spack/repos/builtin/packages/jchronoss/package.py
index d8ec01083e..fa430ed684 100644
--- a/var/spack/repos/builtin/packages/jchronoss/package.py
+++ b/var/spack/repos/builtin/packages/jchronoss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class Jchronoss(CMakePackage):
""" JCHRONOSS aims to help HPC application testing process
to scale as much as the application does. """
- homepage = "http://jchronoss.hpcframework.com"
- url = "http://fs.paratools.com/mpc/contrib/apps/jchronoss/JCHRONOSS-1.2.tar.gz"
+ homepage = "https://jchronoss.hpcframework.com"
+ url = "https://fs.paratools.com/mpc/contrib/apps/jchronoss/JCHRONOSS-1.2.tar.gz"
version('1.2', sha256='52a565a28c0b83b433065060863d29f2b3e4b05f4f26b7a5893a21a2c66d6eba')
version('1.1.1', sha256='5a11463b7295817f503c58dda1a82c0d3568bdee5e9d13d59e00d337ba84dc45')
diff --git a/var/spack/repos/builtin/packages/jdk/package.py b/var/spack/repos/builtin/packages/jdk/package.py
index 9e05754416..1f8cb53499 100644
--- a/var/spack/repos/builtin/packages/jdk/package.py
+++ b/var/spack/repos/builtin/packages/jdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,6 +7,7 @@ import os
import re
import llnl.util.tty as tty
+
from spack.util.prefix import Prefix
@@ -15,7 +16,7 @@ class Jdk(Package):
form of a binary product aimed at Java developers. Includes a complete JRE
plus tools for developing, debugging, and monitoring Java applications."""
- homepage = "http://www.oracle.com/technetwork/java/javase/downloads/index.html"
+ homepage = "https://www.oracle.com/technetwork/java/javase/downloads/index.html"
maintainers = ['justintoo']
diff --git a/var/spack/repos/builtin/packages/jellyfish/package.py b/var/spack/repos/builtin/packages/jellyfish/package.py
index 1d5b7febc1..6dadf793d1 100644
--- a/var/spack/repos/builtin/packages/jellyfish/package.py
+++ b/var/spack/repos/builtin/packages/jellyfish/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,13 @@ class Jellyfish(AutotoolsPackage):
"""JELLYFISH is a tool for fast, memory-efficient counting of k-mers in
DNA."""
- homepage = "http://www.cbcb.umd.edu/software/jellyfish/"
+ homepage = "https://www.cbcb.umd.edu/software/jellyfish/"
url = "https://github.com/gmarcais/Jellyfish/releases/download/v2.2.7/jellyfish-2.2.7.tar.gz"
- list_url = "http://www.cbcb.umd.edu/software/jellyfish/"
+ list_url = "https://www.cbcb.umd.edu/software/jellyfish/"
version('2.2.7', sha256='d80420b4924aa0119353a5b704f923863abc802e94efeb531593147c13e631a8')
version('1.1.11', sha256='496645d96b08ba35db1f856d857a159798c73cbc1eccb852ef1b253d1678c8e2',
- url='http://www.cbcb.umd.edu/software/jellyfish/jellyfish-1.1.11.tar.gz')
+ url='https://www.cbcb.umd.edu/software/jellyfish/jellyfish-1.1.11.tar.gz')
depends_on('perl', type=('build', 'run'))
depends_on('python', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/jemalloc/package.py b/var/spack/repos/builtin/packages/jemalloc/package.py
index 85ae590699..332899d38b 100644
--- a/var/spack/repos/builtin/packages/jemalloc/package.py
+++ b/var/spack/repos/builtin/packages/jemalloc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Jemalloc(AutotoolsPackage):
"""jemalloc is a general purpose malloc(3) implementation that emphasizes
fragmentation avoidance and scalable concurrency support."""
- homepage = "http://www.canonware.com/jemalloc/"
+ homepage = "http://jemalloc.net/"
url = "https://github.com/jemalloc/jemalloc/releases/download/4.0.4/jemalloc-4.0.4.tar.bz2"
version('5.2.1', sha256='34330e5ce276099e2e8950d9335db5a875689a4c6a56751ef3b1d8c537f887f6')
diff --git a/var/spack/repos/builtin/packages/jetty-project/package.py b/var/spack/repos/builtin/packages/jetty-project/package.py
index 24beb52295..0e32927c29 100644
--- a/var/spack/repos/builtin/packages/jetty-project/package.py
+++ b/var/spack/repos/builtin/packages/jetty-project/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jhpcn-df/package.py b/var/spack/repos/builtin/packages/jhpcn-df/package.py
index 3bb3132844..585770fb93 100644
--- a/var/spack/repos/builtin/packages/jhpcn-df/package.py
+++ b/var/spack/repos/builtin/packages/jhpcn-df/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class JhpcnDf(CMakePackage):
to truncating some lower bits of significand.
"""
- homepage = "http://avr-aics-riken.github.io/JHPCN-DF/"
+ homepage = "https://avr-aics-riken.github.io/JHPCN-DF/"
url = "https://github.com/avr-aics-riken/JHPCN-DF/archive/1.1.0.tar.gz"
version('1.1.0', sha256='106d99cc4faac5c76e51e8bfe3193c1d3dc91648072cf418d868ed830592b04b')
diff --git a/var/spack/repos/builtin/packages/jimtcl/package.py b/var/spack/repos/builtin/packages/jimtcl/package.py
index 4f4ec3e6b9..93f59dd13c 100644
--- a/var/spack/repos/builtin/packages/jimtcl/package.py
+++ b/var/spack/repos/builtin/packages/jimtcl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jline3/package.py b/var/spack/repos/builtin/packages/jline3/package.py
index f767f482e8..2d2a06e13e 100644
--- a/var/spack/repos/builtin/packages/jline3/package.py
+++ b/var/spack/repos/builtin/packages/jline3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jmol/package.py b/var/spack/repos/builtin/packages/jmol/package.py
index 9da452f396..ff8d47ea5b 100644
--- a/var/spack/repos/builtin/packages/jmol/package.py
+++ b/var/spack/repos/builtin/packages/jmol/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Jmol(Package):
"""Jmol: an open-source Java viewer for chemical structures in 3D
diff --git a/var/spack/repos/builtin/packages/jose/package.py b/var/spack/repos/builtin/packages/jose/package.py
index b33946e35e..b487c07b47 100644
--- a/var/spack/repos/builtin/packages/jose/package.py
+++ b/var/spack/repos/builtin/packages/jose/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jpegoptim/package.py b/var/spack/repos/builtin/packages/jpegoptim/package.py
index 2e323cf02b..3fd61b943d 100644
--- a/var/spack/repos/builtin/packages/jpegoptim/package.py
+++ b/var/spack/repos/builtin/packages/jpegoptim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jq/package.py b/var/spack/repos/builtin/packages/jq/package.py
index 9f67ce5bbe..613ed97c20 100644
--- a/var/spack/repos/builtin/packages/jq/package.py
+++ b/var/spack/repos/builtin/packages/jq/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Jq(AutotoolsPackage):
"""jq is a lightweight and flexible command-line JSON processor."""
diff --git a/var/spack/repos/builtin/packages/json-c/package.py b/var/spack/repos/builtin/packages/json-c/package.py
index 3ed27a3c4b..476d4627a4 100644
--- a/var/spack/repos/builtin/packages/json-c/package.py
+++ b/var/spack/repos/builtin/packages/json-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,17 +6,19 @@
from spack import *
-class JsonC(AutotoolsPackage):
+class JsonC(CMakePackage):
"""A JSON implementation in C."""
homepage = "https://github.com/json-c/json-c/wiki"
- url = "https://s3.amazonaws.com/json-c_releases/releases/json-c-0.12.1.tar.gz"
+ url = "https://s3.amazonaws.com/json-c_releases/releases/json-c-0.15.tar.gz"
+ version('0.15', sha256='b8d80a1ddb718b3ba7492916237bbf86609e9709fb007e7f7d4322f02341a4c6')
+ version('0.14', sha256='b377de08c9b23ca3b37d9a9828107dff1de5ce208ff4ebb35005a794f30c6870')
version('0.13.1', sha256='b87e608d4d3f7bfdd36ef78d56d53c74e66ab278d318b71e6002a369d36f4873')
version('0.12.1', sha256='2a136451a7932d80b7d197b10441e26e39428d67b1443ec43bbba824705e1123')
version('0.12', sha256='000c01b2b3f82dcb4261751eb71f1b084404fb7d6a282f06074d3c17078b9f3f')
version('0.11', sha256='28dfc65145dc0d4df1dfe7701ac173c4e5f9347176c8983edbfac9149494448c')
- depends_on('autoconf', type='build')
+ depends_on('autoconf', when='@:0.13.1', type='build')
parallel = False
@@ -26,3 +28,28 @@ class JsonC(AutotoolsPackage):
'-Wextra -Wno-error=implicit-fallthrough '
'-Wno-error=unused-but-set-variable',
'Makefile.in')
+
+ @when('@:0.13.1')
+ def cmake(self, spec, prefix):
+ configure_args = ['--prefix=' + prefix]
+ configure(*configure_args)
+
+ @when('@:0.13.1')
+ def build(self, spec, prefix):
+ make()
+
+ @when('@:0.13.1')
+ def install(self, spec, prefix):
+ make('install')
+
+ @when('%cce@11.0.3:')
+ def patch(self):
+ filter_file('-Werror',
+ '',
+ 'CMakeLists.txt')
+
+ @run_after('install')
+ def darwin_fix(self):
+ # The shared library is not installed correctly on Darwin; fix this
+ if 'platform=darwin' in self.spec:
+ fix_darwin_install_name(self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/json-cwx/package.py b/var/spack/repos/builtin/packages/json-cwx/package.py
index 50b10cb4d0..bae73b1ac6 100644
--- a/var/spack/repos/builtin/packages/json-cwx/package.py
+++ b/var/spack/repos/builtin/packages/json-cwx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/json-fortran/package.py b/var/spack/repos/builtin/packages/json-fortran/package.py
index 2311bee898..6e425552a2 100644
--- a/var/spack/repos/builtin/packages/json-fortran/package.py
+++ b/var/spack/repos/builtin/packages/json-fortran/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,11 +9,12 @@ from spack import *
class JsonFortran(CMakePackage):
"""A Fortran 2008 JSON API"""
- homepage = "http://jacobwilliams.github.io/json-fortran/"
+ homepage = "https://jacobwilliams.github.io/json-fortran/"
url = "https://github.com/jacobwilliams/json-fortran/archive/7.0.0.tar.gz"
version('7.1.0', sha256='e7aa1f6e09b25ebacb17188147380c3f8c0a254754cd24869c001745fcecc9e6')
version('7.0.0', sha256='9b5b6235489b27d572bbc7620ed8e039fa9d4d14d41b1581b279be9db499f32c')
+ version('6.11.0', sha256='0ce38236a0debcd775108684b835f9f92ca9d6594da714c0025014fe9f03eec3')
depends_on('cmake@2.8.8:', type='build')
diff --git a/var/spack/repos/builtin/packages/json-glib/package.py b/var/spack/repos/builtin/packages/json-glib/package.py
index 1a04cfe97b..44d1c9b5e6 100644
--- a/var/spack/repos/builtin/packages/json-glib/package.py
+++ b/var/spack/repos/builtin/packages/json-glib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jsoncpp/package.py b/var/spack/repos/builtin/packages/jsoncpp/package.py
index 2593c9ae0f..067ff7a687 100644
--- a/var/spack/repos/builtin/packages/jsoncpp/package.py
+++ b/var/spack/repos/builtin/packages/jsoncpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,7 @@ class Jsoncpp(CMakePackage):
homepage = "https://github.com/open-source-parsers/jsoncpp"
url = "https://github.com/open-source-parsers/jsoncpp/archive/1.7.3.tar.gz"
+ version('1.9.4', sha256='e34a628a8142643b976c7233ef381457efad79468c67cb1ae0b83a33d7493999')
version('1.9.2', sha256='77a402fb577b2e0e5d0bdc1cf9c65278915cdb25171e3452c68b6da8a561f8f0')
version('1.9.1', sha256='c7b40f5605dd972108f503f031b20186f5e5bca2b65cd4b8bd6c3e4ba8126697')
version('1.9.0', sha256='bdd3ba9ed1f110b3eb57474d9094e90ab239b93b4803b4f9b1722c281e85a4ac')
diff --git a/var/spack/repos/builtin/packages/jstorm/package.py b/var/spack/repos/builtin/packages/jstorm/package.py
index 0bc0be3d62..1e1c59cb37 100644
--- a/var/spack/repos/builtin/packages/jstorm/package.py
+++ b/var/spack/repos/builtin/packages/jstorm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/jube/package.py b/var/spack/repos/builtin/packages/jube/package.py
index edbd6fc151..58325965df 100644
--- a/var/spack/repos/builtin/packages/jube/package.py
+++ b/var/spack/repos/builtin/packages/jube/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/judy/package.py b/var/spack/repos/builtin/packages/judy/package.py
index 0c714c5b01..7e772353c5 100644
--- a/var/spack/repos/builtin/packages/judy/package.py
+++ b/var/spack/repos/builtin/packages/judy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/julea/package.py b/var/spack/repos/builtin/packages/julea/package.py
index 7559b0edfd..351b8af99d 100644
--- a/var/spack/repos/builtin/packages/julea/package.py
+++ b/var/spack/repos/builtin/packages/julea/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/julia/package.py b/var/spack/repos/builtin/packages/julia/package.py
index 8c6a6aaf90..c307eee28e 100644
--- a/var/spack/repos/builtin/packages/julia/package.py
+++ b/var/spack/repos/builtin/packages/julia/package.py
@@ -1,23 +1,29 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Julia(Package):
"""The Julia Language: A fresh approach to technical computing"""
- homepage = "http://julialang.org"
+ homepage = "https://julialang.org"
url = "https://github.com/JuliaLang/julia/releases/download/v0.4.3/julia-0.4.3-full.tar.gz"
git = "https://github.com/JuliaLang/julia.git"
maintainers = ['glennpj']
version('master', branch='master')
+ version('1.6.2', sha256='01241120515cb9435b96179cf301fbd2c24d4405f252588108d13ceac0f41c0a')
+ version('1.6.1', sha256='71d8e40611361370654e8934c407b2dec04944cf3917c5ecb6482d6b85ed767f')
+ version('1.6.0', sha256='1b05f42c9368bc2349c47363b7ddc175a2da3cd162d52b6e24c4f5d4d6e1232c')
+ version('1.5.4', sha256='dbfb8cd544b223eff70f538da7bb9d5b6f76fd0b00dd2385e6254e74ad4e892f')
+ version('1.5.3', sha256='fb69337ca037576758547c7eed9ae8f153a9c052318327b6b7f1917408c14d91')
version('1.5.2', sha256='850aed3fe39057488ec633f29af705f5ada87e3058fd65e48ad26f91b713a19a')
version('1.5.1', sha256='1d0debfccfc7cd07047aa862dd2b1a96f7438932da1f5feff6c1033a63f9b1d4')
version('1.5.0', sha256='4a6ffadc8dd04ca0b7fdef6ae203d0af38185e57b78f7c0b972c4707354a6d1b')
@@ -164,6 +170,8 @@ class Julia(Package):
]
else:
target_str = str(spec.target).replace('_', '-')
+ if target_str == "zen":
+ target_str = "znver1"
if target_str == "zen2":
target_str = "znver2"
options += [
diff --git a/var/spack/repos/builtin/packages/junit4/package.py b/var/spack/repos/builtin/packages/junit4/package.py
index d0a46b4495..d36de770f1 100644
--- a/var/spack/repos/builtin/packages/junit4/package.py
+++ b/var/spack/repos/builtin/packages/junit4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/k8/package.py b/var/spack/repos/builtin/packages/k8/package.py
index d536e6e369..41d111e1da 100644
--- a/var/spack/repos/builtin/packages/k8/package.py
+++ b/var/spack/repos/builtin/packages/k8/package.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import sys
import os
+import sys
+
from spack import *
diff --git a/var/spack/repos/builtin/packages/kadath/package.py b/var/spack/repos/builtin/packages/kadath/package.py
new file mode 100644
index 0000000000..6abfdd9ab2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/kadath/package.py
@@ -0,0 +1,88 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Kadath(CMakePackage):
+ """KADATH SPECTRAL SOLVER.
+
+ The Frankfurt University/Kadath (FUKA) Initial Data solver branch is
+ a collection of ID solvers aimed at delivering consistent initial
+ data (ID) solutions to the eXtended Conformal Thin-Sandwich (XCTS)
+ formulation of Einstein's field equations for a variety of compact
+ object configurations to include extremely compact, asymmetric, and
+ mixed spin binaries.
+ """
+
+ homepage = "https://kadath.obspm.fr/fuka/"
+ git = "https://gitlab.obspm.fr/grandcle/Kadath.git"
+
+ maintainers = ['eschnett']
+
+ version('fuka', branch='fuka')
+
+ variant('mpi', default=True, description='Enable MPI support')
+
+ variant('codes', multi=True,
+ description="Codes to enable",
+ values=('none', 'BBH', 'BH', 'BHNS', 'BNS', 'NS'),
+ default='none')
+
+ depends_on('blas')
+ depends_on('boost cxxstd=17') # kadath uses std=C++17
+ depends_on('cmake @2.8:', type='build')
+ depends_on('fftw-api @3:')
+ depends_on('gsl')
+ depends_on('lapack')
+ depends_on('mpi', when='+mpi')
+ depends_on('pgplot')
+ depends_on('scalapack')
+
+ root_cmakelists_dir = 'build_release'
+
+ def patch(self):
+ for code in self.spec.variants['codes'].value:
+ if code != 'none':
+ # Disable unwanted explicit include directory settings
+ filter_file(r"include_directories\(/usr",
+ "# include_directories(/usr",
+ join_path("codes", code, "CMakeLists.txt"))
+
+ def setup_build_environment(self, env):
+ env.set('HOME_KADATH', self.stage.source_path)
+
+ def cmake_args(self):
+ return [
+ # kadath uses a non-standard option to enable MPI
+ self.define_from_variant('PAR_VERSION', 'mpi'),
+ ]
+
+ def cmake(self, spec, prefix):
+ options = self.std_cmake_args
+ options += self.cmake_args()
+ options.append(os.path.abspath(self.root_cmakelists_dir))
+ with working_dir(self.build_directory, create=True):
+ cmake(*options)
+ for code in self.spec.variants['codes'].value:
+ if code != 'none':
+ with working_dir(join_path("codes", code)):
+ cmake(*options)
+
+ def build(self, spec, prefix):
+ with working_dir(self.build_directory):
+ make(*self.build_targets)
+ for code in self.spec.variants['codes'].value:
+ if code != 'none':
+ with working_dir(join_path("codes", code)):
+ make(*self.build_targets)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.include)
+ install_tree('include', prefix.include)
+ mkdirp(prefix.lib)
+ install_tree('lib', prefix.lib)
diff --git a/var/spack/repos/builtin/packages/kafka/package.py b/var/spack/repos/builtin/packages/kafka/package.py
index d37fd21276..87ea79fd4b 100644
--- a/var/spack/repos/builtin/packages/kafka/package.py
+++ b/var/spack/repos/builtin/packages/kafka/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kahip/package.py b/var/spack/repos/builtin/packages/kahip/package.py
index 3a31455c75..e9f4c4501b 100644
--- a/var/spack/repos/builtin/packages/kahip/package.py
+++ b/var/spack/repos/builtin/packages/kahip/package.py
@@ -1,13 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 re
+from spack import *
+
class Kahip(SConsPackage):
"""KaHIP - Karlsruhe High Quality Partitioning - is a family of graph
@@ -23,7 +23,7 @@ class Kahip(SConsPackage):
"""
homepage = 'http://algo2.iti.kit.edu/documents/kahip/index.html'
- url = 'http://algo2.iti.kit.edu/schulz/software_releases/KaHIP_2.00.tar.gz'
+ url = 'https://algo2.iti.kit.edu/schulz/software_releases/KaHIP_2.00.tar.gz'
git = 'https://github.com/schulzchristian/KaHIP.git'
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/kaiju/package.py b/var/spack/repos/builtin/packages/kaiju/package.py
index 784fcffee9..53a00f0ba7 100644
--- a/var/spack/repos/builtin/packages/kaiju/package.py
+++ b/var/spack/repos/builtin/packages/kaiju/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kaks-calculator/package.py b/var/spack/repos/builtin/packages/kaks-calculator/package.py
index 58edd8e249..dc42d44998 100644
--- a/var/spack/repos/builtin/packages/kaks-calculator/package.py
+++ b/var/spack/repos/builtin/packages/kaks-calculator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kaldi/package.py b/var/spack/repos/builtin/packages/kaldi/package.py
index e4e0fbeb7b..b01dd986e0 100644
--- a/var/spack/repos/builtin/packages/kaldi/package.py
+++ b/var/spack/repos/builtin/packages/kaldi/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path import join
-from fnmatch import fnmatch
import os
+from fnmatch import fnmatch
+from os.path import join
+
+from spack import *
class Kaldi(Package): # Does not use Autotools
@@ -68,7 +69,7 @@ class Kaldi(Package): # Does not use Autotools
configure_args.append('--threaded-atlas')
elif '^intel-parallel-studio' in spec or '^intel-mkl' in spec:
configure_args.append('--mathlib=MKL')
- configure_args.append('--mkl-root=' + spec['blas'].prefix)
+ configure_args.append('--mkl-root=' + spec['blas'].prefix.mkl)
if '+openmp' in spec['blas'].variants:
configure_args.append('--mkl-threading=iomp')
diff --git a/var/spack/repos/builtin/packages/kallisto/package.py b/var/spack/repos/builtin/packages/kallisto/package.py
index 25e5fcb9a0..cc32281d0f 100644
--- a/var/spack/repos/builtin/packages/kallisto/package.py
+++ b/var/spack/repos/builtin/packages/kallisto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Kallisto(CMakePackage):
"""kallisto is a program for quantifying abundances of transcripts from
RNA-Seq data."""
- homepage = "http://pachterlab.github.io/kallisto"
+ homepage = "https://pachterlab.github.io/kallisto"
url = "https://github.com/pachterlab/kallisto/archive/v0.43.1.tar.gz"
version('0.46.2', sha256='c447ca8ddc40fcbd7d877d7c868bc8b72807aa8823a8a8d659e19bdd515baaf2')
diff --git a/var/spack/repos/builtin/packages/karma/package.py b/var/spack/repos/builtin/packages/karma/package.py
index f875f6d64f..5486a0d3fc 100644
--- a/var/spack/repos/builtin/packages/karma/package.py
+++ b/var/spack/repos/builtin/packages/karma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kassiopeia/package.py b/var/spack/repos/builtin/packages/kassiopeia/package.py
index 90d085acb8..8050a2092a 100644
--- a/var/spack/repos/builtin/packages/kassiopeia/package.py
+++ b/var/spack/repos/builtin/packages/kassiopeia/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,13 @@ class Kassiopeia(CMakePackage):
url = "https://github.com/KATRIN-Experiment/Kassiopeia/archive/v3.6.1.tar.gz"
git = "https://github.com/KATRIN-Experiment/Kassiopeia.git"
+ tags = ['hep']
+
maintainers = ['wdconinc']
+ version("main", branch="main")
+ version('3.7.7', sha256='b5f62b2e796fac57698794b46b63acbc47ce02010bd1f716996918a550b22a21')
+ version('3.7.6', sha256='fa20cf0f29ee2312bf96b07661d7b5c9303782d907671acd01032cc1f13edd55')
version('3.7.5', sha256='8f28d08c7ef51e64221e0a4705f3cee3a5d738b8cdde5ce9fa58a3a0dd14ae05')
version('3.7.4', sha256='c1514163a084530930be10dbe487fb1950ccbc9662a4a190bdecffbd84a71fd4')
version('3.7.3', sha256='a8753585b9fa0903e1f5f821c4ced3cddd72792ad7e6075a7e25318f81ad9eaa')
@@ -45,21 +50,15 @@ class Kassiopeia(CMakePackage):
depends_on('opencl', when='+opencl')
def cmake_args(self):
- args = []
- if self.spec.satisfies('+vtk'):
- args.append('-DKASPER_USE_VTK=ON')
- else:
- args.append('-DKASPER_USE_VTK=OFF')
- if self.spec.satisfies('+tbb'):
- args.append('-DKASPER_USE_TBB=ON')
- else:
- args.append('-DKASPER_USE_TBB=OFF')
- if self.spec.satisfies('+mpi'):
- args.append('-DKEMField_USE_MPI=ON')
- else:
- args.append('-DKEMField_USE_MPI=OFF')
- if self.spec.satisfies('+opencl'):
- args.append('-DKEMField_USE_OPENCL=ON')
+ if '+root' in self.spec:
+ cxxstd = self.spec['root'].variants['cxxstd'].value
else:
- args.append('-DKEMField_USE_OPENCL=OFF')
+ cxxstd = '14'
+ args = [
+ self.define_from_variant("KASPER_USE_VTK", "vtk"),
+ self.define_from_variant("KASPER_USE_TBB", "tbb"),
+ self.define_from_variant("KEMField_USE_MPI", "mpi"),
+ self.define_from_variant("KEMField_USE_OPENCL", "opencl"),
+ self.define("CMAKE_CXX_STANDARD", cxxstd)
+ ]
return args
diff --git a/var/spack/repos/builtin/packages/kbd/package.py b/var/spack/repos/builtin/packages/kbd/package.py
index c1a1667d9a..3a2d0b5eab 100644
--- a/var/spack/repos/builtin/packages/kbd/package.py
+++ b/var/spack/repos/builtin/packages/kbd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Kbd(AutotoolsPackage):
(Linux console, virtual terminals, keyboard, etc.) - mainly,
what they do is loading console fonts and keyboard maps."""
- homepage = "http://kbd-project.org/"
+ homepage = "https://kbd-project.org/"
url = "https://github.com/legionus/kbd/archive/v2.3.0.tar.gz"
version('2.3.0', sha256='28f05450cfde08259341b9641d222027844c075f77a2bac6ce143b3f33a6eb4e')
diff --git a/var/spack/repos/builtin/packages/kbproto/package.py b/var/spack/repos/builtin/packages/kbproto/package.py
index 2d2dbf63bc..948f308b81 100644
--- a/var/spack/repos/builtin/packages/kbproto/package.py
+++ b/var/spack/repos/builtin/packages/kbproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kcov/package.py b/var/spack/repos/builtin/packages/kcov/package.py
index 5e7bf48bd5..ddf3554ae9 100644
--- a/var/spack/repos/builtin/packages/kcov/package.py
+++ b/var/spack/repos/builtin/packages/kcov/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Kcov(CMakePackage):
debugging information to collect and report data without special
compilation options"""
- homepage = "http://simonkagstrom.github.io/kcov/index.html"
+ homepage = "https://simonkagstrom.github.io/kcov/index.html"
url = "https://github.com/SimonKagstrom/kcov/archive/38.tar.gz"
version('38', sha256='b37af60d81a9b1e3b140f9473bdcb7975af12040feb24cc666f9bb2bb0be68b4')
@@ -19,6 +19,8 @@ class Kcov(CMakePackage):
depends_on('cmake@2.8.4:', type='build')
depends_on('zlib')
depends_on('curl')
+ depends_on('elfutils', when='platform=linux')
+ depends_on('binutils +libiberty', when='platform=linux', type='link')
def cmake_args(self):
# Necessary at least on macOS, fixes linking error to LLDB
diff --git a/var/spack/repos/builtin/packages/kdiff3/package.py b/var/spack/repos/builtin/packages/kdiff3/package.py
index 483a0ffac9..0813bd4f19 100644
--- a/var/spack/repos/builtin/packages/kdiff3/package.py
+++ b/var/spack/repos/builtin/packages/kdiff3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kea/package.py b/var/spack/repos/builtin/packages/kea/package.py
index acb6516f39..9ed7eaa2d5 100644
--- a/var/spack/repos/builtin/packages/kea/package.py
+++ b/var/spack/repos/builtin/packages/kea/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kealib/package.py b/var/spack/repos/builtin/packages/kealib/package.py
index 3e050a213c..11cfee8516 100644
--- a/var/spack/repos/builtin/packages/kealib/package.py
+++ b/var/spack/repos/builtin/packages/kealib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/keepalived/package.py b/var/spack/repos/builtin/packages/keepalived/package.py
index 2b1e9f7b07..20dfb91b04 100644
--- a/var/spack/repos/builtin/packages/keepalived/package.py
+++ b/var/spack/repos/builtin/packages/keepalived/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class Keepalived(AutotoolsPackage):
maintain and manage loadbalanced server pool according their health
"""
- homepage = "http://www.keepalived.org"
- url = "http://www.keepalived.org/software/keepalived-1.2.0.tar.gz"
+ homepage = "https://www.keepalived.org"
+ url = "https://www.keepalived.org/software/keepalived-1.2.0.tar.gz"
version('2.0.19', sha256='0e2f8454765bc6a5fa26758bd9cec18aae42882843cdd24848aff0ae65ce4ca7')
version('2.0.18', sha256='1423a2b1b8e541211029b9e1e1452e683bbe5f4b0b287eddd609aaf5ff024fd0')
@@ -26,3 +26,8 @@ class Keepalived(AutotoolsPackage):
version('2.0.11', sha256='a298b0c02a20959cfc365b62c14f45abd50d5e0595b2869f5bce10ec2392fa48')
depends_on('openssl')
+
+ def configure_args(self):
+ args = ["--with-systemdsystemunitdir=" +
+ self.spec['keepalived'].prefix.lib.systemd.system]
+ return args
diff --git a/var/spack/repos/builtin/packages/keepassxc/package.py b/var/spack/repos/builtin/packages/keepassxc/package.py
new file mode 100644
index 0000000000..933fc044c2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/keepassxc/package.py
@@ -0,0 +1,78 @@
+# Copyright 2013-2021 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 Keepassxc(CMakePackage):
+ """KeePassXC - Cross-Platform Password Manager, modern, secure, and open-source."""
+
+ homepage = "https://keepassxc.org"
+ url = "https://github.com/keepassxreboot/keepassxc/releases/download/2.6.4/keepassxc-2.6.4-src.tar.xz"
+ git = "https://github.com/keepassxreboot/keepassxc.git"
+
+ maintainers = ['cessenat']
+
+ version('master', branch='master')
+ version('2.6.4', sha256='e536e2a71c90fcf264eb831fb1a8b518ee1b03829828f862eeea748d3310f82b')
+
+ variant('build_type', default='Release',
+ description='The build type for the installation (only Debug or'
+ ' ( Documentation indicates Release).',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
+ variant('autotype', default=False,
+ description='enable auto-type')
+
+ # https://github.com/keepassxreboot/keepassxc/wiki/Building-KeePassXC
+ # https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux
+ depends_on('cmake@3.1:', type='build')
+
+ # It installs the last gcc instead of using one that is >= 4.7
+ conflicts('%gcc@:4.7', when='%gcc',
+ msg="Older than 4.7 GCC compilers are not supported")
+ conflicts('%clang@:3.0', when='%clang',
+ msg="Older than 3.0 clang compilers are not supported")
+
+ # The following libraries are required:
+ depends_on('qt+dbus~framework@5.2:')
+ depends_on('libgcrypt@1.6:', type='link')
+ depends_on('zlib', type='link')
+ depends_on('libmicrohttpd', type='link')
+ depends_on('libsodium@1.0.12:', type='link')
+ depends_on('readline')
+ # Modified argon2 on CentOS to have a standard library directory
+ depends_on('argon2', type=('link', 'build'))
+ # Had to add libqrencode
+ depends_on('libqrencode', type=('link', 'build'))
+ # Has anyone done gem i bundler and gem i asciidoctor ? https://asciidoctor.org/
+ depends_on('ruby-asciidoctor@2.0:', type=('build'))
+ # sudo apt install libxi-dev libxtst-dev libqt5x11extras5-dev libyubikey-dev \
+ # libykpers-1-dev libquazip5-dev libreadline-dev
+ # These are required to build Auto-Type, Yubikey and browser integration support.
+ depends_on('libxi', type='link', when='+autotype')
+ depends_on('libxtst', type='link', when='+autotype')
+
+ def cmake_args(self):
+ spec = self.spec
+ args = [
+ '-DKEEPASSXC_BUILD_TYPE=Release',
+ '-DCMAKE_INSTALL_DATADIR=%s' % join_path(spec.prefix, 'share'),
+ ]
+ if '+autotype' in spec:
+ args.append('-DWITH_XC_ALL=ON')
+ else:
+ args.append('-DWITH_XC_ALL=OFF')
+
+ if spec.satisfies('platform=darwin'):
+ args.append('-DCMAKE_OSX_ARCHITECTURES=x86_64')
+
+ return args
+
+ @when('platform=darwin')
+ def make(self, spec, prefix):
+ make('package')
+
+ def edit(self, spec, prefix):
+ env['DESTDIR'] = spec.prefix
diff --git a/var/spack/repos/builtin/packages/kentutils/package.py b/var/spack/repos/builtin/packages/kentutils/package.py
index f0b4ee8322..29a99a1200 100644
--- a/var/spack/repos/builtin/packages/kentutils/package.py
+++ b/var/spack/repos/builtin/packages/kentutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/keyutils/package.py b/var/spack/repos/builtin/packages/keyutils/package.py
index 29c588d7c5..2d62065f77 100644
--- a/var/spack/repos/builtin/packages/keyutils/package.py
+++ b/var/spack/repos/builtin/packages/keyutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kibana/package.py b/var/spack/repos/builtin/packages/kibana/package.py
index f0e6f53988..22fbe0a4dc 100644
--- a/var/spack/repos/builtin/packages/kibana/package.py
+++ b/var/spack/repos/builtin/packages/kibana/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kicad/package.py b/var/spack/repos/builtin/packages/kicad/package.py
new file mode 100644
index 0000000000..92652cc9b5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/kicad/package.py
@@ -0,0 +1,84 @@
+# Copyright 2013-2021 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 Kicad(CMakePackage):
+ """KiCad is an open source software suite for Electronic Design
+ Automation (EDA). The programs handle Schematic Capture, and PCB
+ Layout with Gerber output."""
+
+ homepage = 'https://kicad.org'
+ url = 'https://gitlab.com/kicad/code/kicad/-/archive/5.1.8/kicad-5.1.8.tar.gz'
+ maintainers = ['aweits']
+
+ version('5.1.9', sha256='841be864b9dc5c761193c3ee9cbdbed6729952d7b38451aa8e1977bdfdb6081b')
+ version('5.1.8', sha256='bf24f8ef427b4a989479b8e4af0b8ae5c54766755f12748e2e88a922c5344ca4')
+
+ depends_on('wxwidgets')
+ depends_on('python@3:', type=('build', 'run'))
+ # py-wxpython needs work
+ # depends_on('py-wxpython', type=('build', 'run'))
+ depends_on('glew')
+ depends_on('gl')
+ depends_on('glm')
+ depends_on('boost@1.56:')
+ depends_on('oce+X11')
+ depends_on('swig', type='build')
+ depends_on('curl')
+ depends_on('pkgconfig')
+ depends_on('git', type=('build', 'run'))
+ depends_on('ngspice')
+ depends_on('hicolor-icon-theme', type=('build', 'run'))
+ depends_on('adwaita-icon-theme', type=('build', 'run'))
+ depends_on('gsettings-desktop-schemas', type=('build', 'run'))
+
+ extends('python')
+
+ resource_list = [
+ # version, resource, sha256sum
+ ('5.1.8', 'footprints', '8937b5ba0f67844ffaca40632bebe9c2f4f17fba446137434aa72363c55d7dd9'),
+ ('5.1.8', 'packages3D', '81e64939e922742431284bb19d1ec274d6dc10fd238e5583ead21dc08876c221'),
+ ('5.1.8', 'symbols', '98cedcca4d7ad6e3be96ec5a41f8f9b3414eae276bac1efdfd3f8871f0f8bc7e'),
+ ('5.1.8', 'templates', 'd64ca82854e9780413447a3fa82a528b264d39f57d467fddfc78f919e7ed15c5'),
+ ('5.1.9', 'footprints', 'a86fbe00fccd6da2d29687ec0c56a9c3cb6b9748ee8fd35c1625839168f28edc'),
+ ('5.1.9', 'packages3D', '35a4888dabd2dedb0d49c3e84b0eebc97b306200510e818dad90d4bb1c9e3296'),
+ ('5.1.9', 'symbols', '6741a7b01f14f1f5aae3155a554816516cf02ce7790074ba8462dee8091f8c2f'),
+ ('5.1.9', 'templates', 'bacf93567f8efe87314762448bb69698c8ed387058c13868c051c91740014aac'),
+ ]
+
+ for ver, lib, checksum in resource_list:
+ resource(when='@{0}'.format(ver),
+ name=lib,
+ url='https://gitlab.com/kicad/libraries/kicad-{0}/-/archive/{1}/kicad-{0}-{1}.tar.bz2'.format(lib, ver),
+ sha256=checksum,
+ destination='',
+ )
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
+
+ def setup_build_environment(self, env):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
+
+ def setup_run_environment(self, env):
+ env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
+
+ def cmake_args(self):
+ args = []
+ args.append('-DKICAD_SCRIPTING_PYTHON3=ON')
+ args.append('-DKICAD_SCRIPTING_WXPYTHON=OFF')
+ return args
+
+ @run_after('install')
+ def install_libraries(self):
+ for ver, lib, checksum in self.resource_list:
+ if self.spec.version == Version(ver):
+ with working_dir('kicad-{0}-{1}'.format(lib, ver)):
+ args = std_cmake_args
+ cmake(*args)
+ make('install')
diff --git a/var/spack/repos/builtin/packages/kim-api/package.py b/var/spack/repos/builtin/packages/kim-api/package.py
index 7d4af51437..4d437a9c47 100644
--- a/var/spack/repos/builtin/packages/kim-api/package.py
+++ b/var/spack/repos/builtin/packages/kim-api/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,12 +24,13 @@ class KimApi(CMakePackage):
"""
extendable = True
homepage = "https://openkim.org/"
- url = "https://s3.openkim.org/kim-api/kim-api-2.1.3.txz"
+ url = "https://s3.openkim.org/kim-api/kim-api-2.2.1.txz"
git = "https://github.com/openkim/kim-api.git"
maintainers = ['ellio167']
version('develop', branch='devel')
+ version('2.2.1', sha256="1d5a12928f7e885ebe74759222091e48a7e46f77e98d9147e26638c955efbc8e")
version('2.1.3', sha256="88a5416006c65a2940d82fad49de0885aead05bfa8b59f87d287db5516b9c467")
version('2.1.2', sha256="16c7dd362cf95288b6288e1a76caf8baef652eb2cf8af500a5eb4767ba2fe80c")
version('2.1.1', sha256="25c4e83c6caa83a1c4ad480b430f1926fb44813b64f548fdaedc45e310b5f6b9")
@@ -38,3 +39,9 @@ class KimApi(CMakePackage):
# The Fujitsu compiler requires the '--linkfortran'
# option to combine C++ and Fortran programs.
patch('fujitsu_add_link_flags.patch', when='%fj')
+
+ def patch(self):
+ # Remove flags not recognized by the NVIDIA compiler
+ if self.spec.satisfies('%nvhpc'):
+ filter_file('-std=gnu', '',
+ 'examples/simulators/simulator-model-example/CMakeLists.txt')
diff --git a/var/spack/repos/builtin/packages/kinesis/package.py b/var/spack/repos/builtin/packages/kinesis/package.py
index 1a0def0340..1e067bdecd 100644
--- a/var/spack/repos/builtin/packages/kinesis/package.py
+++ b/var/spack/repos/builtin/packages/kinesis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class Kinesis(MavenPackage):
"""The Amazon Kinesis Client Library for Java (Amazon KCL) enables Java
developers to easily consume and process data from Amazon Kinesis."""
- homepage = "http://aws.amazon.com/kinesis"
+ homepage = "https://aws.amazon.com/kinesis"
url = "https://github.com/awslabs/amazon-kinesis-client/archive/v2.2.10.tar.gz"
version('2.2.10', sha256='ab1fa33466d07c41d0bbf0d1c7d2380d6f5d2957dea040ca5fe911be83bfe9f9')
diff --git a/var/spack/repos/builtin/packages/kineto/package.py b/var/spack/repos/builtin/packages/kineto/package.py
new file mode 100644
index 0000000000..407b4deac7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/kineto/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 Kineto(CMakePackage):
+ """A CPU+GPU Profiling library that provides access to timeline traces
+ and hardware performance counters."""
+
+ homepage = "https://github.com/pytorch/kineto"
+ git = "https://github.com/pytorch/kineto.git"
+
+ version('master', branch='master', submodules=True)
+ version('2021-05-12', commit='a631215ac294805d5360e0ecceceb34de6557ba8', submodules=True) # py-torch@1.9
+ version('2021-03-16', commit='ce98f8b95b2ee5ffed257ca90090cd8adcf15b53', submodules=True) # py-torch@1.8.1
+ version('2021-02-04', commit='258d9a471f8d3a50a0f52b85c3fe0902f65489df', submodules=True) # py-torch@1.8.0
+
+ root_cmakelists_dir = 'libkineto'
+
+ depends_on('cmake@3.5:', type='build')
+ depends_on('ninja', type='build')
+ depends_on('python', type='build')
+ depends_on('cuda')
+
+ generator = 'Ninja'
diff --git a/var/spack/repos/builtin/packages/kitty/package.py b/var/spack/repos/builtin/packages/kitty/package.py
index 49fb0013cc..7086f8cd47 100644
--- a/var/spack/repos/builtin/packages/kitty/package.py
+++ b/var/spack/repos/builtin/packages/kitty/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Kitty(PythonPackage):
"""
diff --git a/var/spack/repos/builtin/packages/kmergenie/package.py b/var/spack/repos/builtin/packages/kmergenie/package.py
index 0c7c5150c5..0579254780 100644
--- a/var/spack/repos/builtin/packages/kmergenie/package.py
+++ b/var/spack/repos/builtin/packages/kmergenie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kmod/package.py b/var/spack/repos/builtin/packages/kmod/package.py
index 0ee203e7a2..d455b302b5 100644
--- a/var/spack/repos/builtin/packages/kmod/package.py
+++ b/var/spack/repos/builtin/packages/kmod/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -28,3 +28,9 @@ class Kmod(AutotoolsPackage):
def autoreconf(self, spec, prefix):
bash = which("bash")
bash('autogen.sh')
+
+ def configure_args(self):
+ args = ["--with-bashcompletiondir=" +
+ join_path(self.spec['kmod'].prefix, 'share',
+ 'bash-completion', 'completions')]
+ return args
diff --git a/var/spack/repos/builtin/packages/knem/package.py b/var/spack/repos/builtin/packages/knem/package.py
index def620ab4f..c7131c9867 100644
--- a/var/spack/repos/builtin/packages/knem/package.py
+++ b/var/spack/repos/builtin/packages/knem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Knem(AutotoolsPackage):
"""KNEM is a Linux kernel module enabling high-performance intra-node MPI
communication for large messages."""
- homepage = "http://knem.gforge.inria.fr"
+ homepage = "https://knem.gforge.inria.fr"
url = "https://gitlab.inria.fr/knem/knem/uploads/4a43e3eb860cda2bbd5bf5c7c04a24b6/knem-1.1.4.tar.gz"
list_url = "https://knem.gitlabpages.inria.fr/download"
git = "https://gitlab.inria.fr/knem/knem.git"
@@ -26,6 +26,10 @@ class Knem(AutotoolsPackage):
variant('hwloc', default=True,
description='Enable hwloc in the user-space tools')
+ patch('https://gitlab.inria.fr/knem/knem/-/commit/5c8cb902d6040df58cdc4e4e4c10d1f1426c3525.patch',
+ sha256='78885a02d6f031a793db6a7190549f8d64c8606b353051d65f8e3f802b801902',
+ when='@1.1.4')
+
depends_on('hwloc', when='+hwloc')
depends_on('pkgconfig', type='build', when='+hwloc')
depends_on('autoconf', type='build', when='@master')
diff --git a/var/spack/repos/builtin/packages/kokkos-kernels-legacy/package.py b/var/spack/repos/builtin/packages/kokkos-kernels-legacy/package.py
index 8507f90bf4..bad52ee83e 100644
--- a/var/spack/repos/builtin/packages/kokkos-kernels-legacy/package.py
+++ b/var/spack/repos/builtin/packages/kokkos-kernels-legacy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,9 +13,9 @@ class KokkosKernelsLegacy(MakefilePackage):
homepage = "https://github.com/kokkos/kokkos-kernels"
url = "https://github.com/kokkos/kokkos-kernels/archive/2.7.00.tar.gz"
- version('2.7.00', sha256='adf4af44eadbdfbeb9ec69dd5fae4e2852bd1fbe4a69213efd199e49f4098254')
- version('2.6.00', sha256='14ebf806f66b9ca73949a478b8d959be7fa1165a640935760a724d7cc0a66335')
- version('2.5.00', sha256='2c2289da3a41dafd97726e90507debafbb9f5e49ca5b0f5c8d1e044a5796f000')
+ version('2.7.00', sha256='adf4af44eadbdfbeb9ec69dd5fae4e2852bd1fbe4a69213efd199e49f4098254', deprecated=True)
+ version('2.6.00', sha256='14ebf806f66b9ca73949a478b8d959be7fa1165a640935760a724d7cc0a66335', deprecated=True)
+ version('2.5.00', sha256='2c2289da3a41dafd97726e90507debafbb9f5e49ca5b0f5c8d1e044a5796f000', deprecated=True)
# make sure kokkos kernels version matches kokkos
depends_on('kokkos-legacy@2.5.00', when='@2.5.00')
diff --git a/var/spack/repos/builtin/packages/kokkos-kernels/package.py b/var/spack/repos/builtin/packages/kokkos-kernels/package.py
index 839a74b474..fd8546910f 100644
--- a/var/spack/repos/builtin/packages/kokkos-kernels/package.py
+++ b/var/spack/repos/builtin/packages/kokkos-kernels/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -28,6 +28,7 @@ class KokkosKernels(CMakePackage, CudaPackage):
'serial': (False, "enable Serial backend (default)"),
'cuda': (False, "enable Cuda backend"),
'openmp': (False, "enable OpenMP backend"),
+ 'pthread': (False, "enable Pthread backend"),
}
for backend in backends:
diff --git a/var/spack/repos/builtin/packages/kokkos-legacy/package.py b/var/spack/repos/builtin/packages/kokkos-legacy/package.py
index 4b569967a6..87780d1b23 100644
--- a/var/spack/repos/builtin/packages/kokkos-legacy/package.py
+++ b/var/spack/repos/builtin/packages/kokkos-legacy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,19 +14,19 @@ class KokkosLegacy(Package):
url = "https://github.com/kokkos/kokkos/archive/2.03.00.tar.gz"
git = "https://github.com/kokkos/kokkos.git"
- version('2.9.00', sha256='e0621197791ed3a381b4f02c78fa529f3cff3abb74d52157b4add17e8aa04bc4')
- version('2.8.00', sha256='1c72661f2d770517bff98837001b42b9c677d1df29f7493a1d7c008549aff630')
- version('2.7.24', sha256='a308a80ea1488f4c18884b828ce7ae9f5210b9a6b2f61b208d875084d8da8cb0')
- version('2.7.00', sha256='01595996e612ef7410aa42fa265a23101cfe1b6993fa9810ca844db5c89ad765')
- version('2.5.00', sha256='ea232594bf746abb99ae2aafaeef5d07adc089968010a62a88aaa892106d9476')
- version('2.04.11', sha256='f2680aee0169f6cbbec38410f9c80bf8a160435f6a07769c1e9112da8b9349a0')
- version('2.04.04', sha256='5bac8ddc2fac9bc6e01dd40f92ca6cbbb346a25deca5be2fec71acf712d0d0c7')
- version('2.04.00', sha256='b04658d368986df207662a7a37c1ad974c321447bc2c2b5b696d7e9ee4481f34')
- version('2.03.13', sha256='002748bdd0319d5ab82606cf92dc210fc1c05d0607a2e1d5538f60512b029056')
- version('2.03.05', sha256='b18ddaa1496130ff3f675ea9ddbc6df9cdf378d53edf96df89e70ff189e10e1d')
- version('2.03.00', sha256='722bea558d8986efee765ac912febb3c1ce289a8e9bdfef77cd0145df0ea8a3d')
- version('2.02.15', sha256='6b4a7f189f0341f378f950f3c798f520d2e473b13435b137ff3b666e799a076d')
- version('2.02.07', sha256='7b4ac81021d6868f4eb8e2a1cb92ba76bad9c3f197403b8b1eac0f11c983247c')
+ version('2.9.00', sha256='e0621197791ed3a381b4f02c78fa529f3cff3abb74d52157b4add17e8aa04bc4', deprecated=True)
+ version('2.8.00', sha256='1c72661f2d770517bff98837001b42b9c677d1df29f7493a1d7c008549aff630', deprecated=True)
+ version('2.7.24', sha256='a308a80ea1488f4c18884b828ce7ae9f5210b9a6b2f61b208d875084d8da8cb0', deprecated=True)
+ version('2.7.00', sha256='01595996e612ef7410aa42fa265a23101cfe1b6993fa9810ca844db5c89ad765', deprecated=True)
+ version('2.5.00', sha256='ea232594bf746abb99ae2aafaeef5d07adc089968010a62a88aaa892106d9476', deprecated=True)
+ version('2.04.11', sha256='f2680aee0169f6cbbec38410f9c80bf8a160435f6a07769c1e9112da8b9349a0', deprecated=True)
+ version('2.04.04', sha256='5bac8ddc2fac9bc6e01dd40f92ca6cbbb346a25deca5be2fec71acf712d0d0c7', deprecated=True)
+ version('2.04.00', sha256='b04658d368986df207662a7a37c1ad974c321447bc2c2b5b696d7e9ee4481f34', deprecated=True)
+ version('2.03.13', sha256='002748bdd0319d5ab82606cf92dc210fc1c05d0607a2e1d5538f60512b029056', deprecated=True)
+ version('2.03.05', sha256='b18ddaa1496130ff3f675ea9ddbc6df9cdf378d53edf96df89e70ff189e10e1d', deprecated=True)
+ version('2.03.00', sha256='722bea558d8986efee765ac912febb3c1ce289a8e9bdfef77cd0145df0ea8a3d', deprecated=True)
+ version('2.02.15', sha256='6b4a7f189f0341f378f950f3c798f520d2e473b13435b137ff3b666e799a076d', deprecated=True)
+ version('2.02.07', sha256='7b4ac81021d6868f4eb8e2a1cb92ba76bad9c3f197403b8b1eac0f11c983247c', deprecated=True)
variant('debug', default=False, description="Build debug version of Kokkos")
diff --git a/var/spack/repos/builtin/packages/kokkos-nvcc-wrapper/package.py b/var/spack/repos/builtin/packages/kokkos-nvcc-wrapper/package.py
index 729825489a..869fd41dc9 100644
--- a/var/spack/repos/builtin/packages/kokkos-nvcc-wrapper/package.py
+++ b/var/spack/repos/builtin/packages/kokkos-nvcc-wrapper/package.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class KokkosNvccWrapper(Package):
"""The NVCC wrapper provides a wrapper around NVCC to make it a
@@ -13,7 +14,7 @@ class KokkosNvccWrapper(Package):
# We no longer maintain this as a separate repo
# Download the Kokkos repo and install from there
homepage = "https://github.com/kokkos/kokkos"
- git = "git@github.com:kokkos/kokkos.git"
+ git = "https://github.com/kokkos/kokkos.git"
url = "https://github.com/kokkos/kokkos/archive/3.1.01.tar.gz"
version('3.2.00', sha256='05e1b4dd1ef383ca56fe577913e1ff31614764e65de6d6f2a163b2bddb60b3e9')
diff --git a/var/spack/repos/builtin/packages/kokkos/package.py b/var/spack/repos/builtin/packages/kokkos/package.py
index b3fdca7821..abbcd8ec84 100644
--- a/var/spack/repos/builtin/packages/kokkos/package.py
+++ b/var/spack/repos/builtin/packages/kokkos/package.py
@@ -1,22 +1,29 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os.path
+
from spack import *
-class Kokkos(CMakePackage, CudaPackage):
+class Kokkos(CMakePackage, CudaPackage, ROCmPackage):
"""Kokkos implements a programming model in C++ for writing performance
portable applications targeting all major HPC platforms."""
homepage = "https://github.com/kokkos/kokkos"
git = "https://github.com/kokkos/kokkos.git"
- url = "https://github.com/kokkos/kokkos/archive/3.1.01.tar.gz"
+ url = "https://github.com/kokkos/kokkos/archive/3.4.01.tar.gz"
- maintainers = ['jjwilke']
+ test_requires_compiler = True
+
+ maintainers = ['DavidPoliakoff', 'jciesko']
- version('develop', branch='develop')
version('master', branch='master')
+ version('develop', branch='develop')
+ version('3.4.01', sha256='146d5e233228e75ef59ca497e8f5872d9b272cb93e8e9cdfe05ad34a23f483d1')
+ version('3.4.00', sha256='2e4438f9e4767442d8a55e65d000cc9cde92277d415ab4913a96cd3ad901d317')
+ version('3.3.01', sha256='4919b00bb7b6eb80f6c335a32f98ebe262229d82e72d3bae6dd91aaf3d234c37')
version('3.2.00', sha256='05e1b4dd1ef383ca56fe577913e1ff31614764e65de6d6f2a163b2bddb60b3e9')
version('3.1.01', sha256='ff5024ebe8570887d00246e2793667e0d796b08c77a8227fe271127d36eec9dd')
version('3.1.00', sha256="b935c9b780e7330bcb80809992caa2b66fd387e3a1c261c955d622dae857d878")
@@ -29,9 +36,11 @@ class Kokkos(CMakePackage, CudaPackage):
'openmp': [False, 'Whether to build OpenMP backend'],
'pthread': [False, 'Whether to build Pthread backend'],
'serial': [True, 'Whether to build serial backend'],
- 'hip': [False, 'Whether to build HIP backend'],
+ 'rocm': [False, 'Whether to build HIP backend'],
+ 'sycl': [False, 'Whether to build the SYCL backend'],
}
- conflicts("+hip", when="@:3.0")
+ conflicts("+rocm", when="@:3.0")
+ conflicts("+sycl", when="@:3.3")
tpls_variants = {
'hpx': [False, 'Whether to enable the HPX library'],
@@ -45,6 +54,8 @@ class Kokkos(CMakePackage, CudaPackage):
'Aggressively vectorize loops'],
'compiler_warnings': [False,
'Print all compiler warnings'],
+ 'cuda_constexpr': [False,
+ 'Activate experimental constexpr features'],
'cuda_lambda': [False,
'Activate experimental lambda features'],
'cuda_ldg_intrinsic': [False,
@@ -66,63 +77,31 @@ class Kokkos(CMakePackage, CudaPackage):
'Whether HPX supports asynchronous dispath'],
'profiling': [True,
'Create bindings for profiling tools'],
+ 'tuning': [False,
+ 'Create bindings for tuning tools'],
'profiling_load_print': [False,
'Print which profiling tools got loaded'],
'qthread': [False, 'Eenable the QTHREAD library'],
'tests': [False, 'Build for tests'],
}
- amd_gpu_arches = (
- 'fiji',
- 'gfx901',
- 'vega900',
- 'vega906',
- )
- variant("amd_gpu_arch", default='none', values=('none',) + amd_gpu_arches,
- description="AMD GPU architecture")
- conflicts("+hip", when="amd_gpu_arch=none")
-
spack_micro_arch_map = {
- "graviton": "",
- "graviton2": "",
- "aarch64": "",
- "arm": "",
- "ppc": "",
- "ppc64": "",
- "ppc64le": "",
- "ppcle": "",
- "sparc": None,
- "sparc64": None,
- "x86": "",
- "x86_64": "",
"thunderx2": "THUNDERX2",
- "k10": None,
"zen": "ZEN",
- "bulldozer": "",
- "piledriver": "",
"zen2": "ZEN2",
"steamroller": "KAVERI",
"excavator": "CARIZO",
- "a64fx": "",
"power7": "POWER7",
"power8": "POWER8",
"power9": "POWER9",
"power8le": "POWER8",
"power9le": "POWER9",
- "i686": None,
- "pentium2": None,
- "pentium3": None,
- "pentium4": None,
- "prescott": None,
- "nocona": None,
- "nehalem": None,
"sandybridge": "SNB",
"haswell": "HSW",
"mic_knl": "KNL",
"cannonlake": "SKX",
"cascadelake": "SKX",
"westmere": "WSM",
- "core2": None,
"ivybridge": "SNB",
"broadwell": "BDW",
# @AndrewGaspar: Kokkos does not have an arch for plain-skylake - only
@@ -148,10 +127,25 @@ class Kokkos(CMakePackage, CudaPackage):
"70": 'volta70',
"72": 'volta72',
"75": 'turing75',
+ "80": 'ampere80',
}
cuda_arches = spack_cuda_arch_map.values()
conflicts("+cuda", when="cuda_arch=none")
+ amdgpu_arch_map = {
+ 'gfx900': 'vega900',
+ 'gfx906': 'vega906',
+ 'gfx908': 'vega908'
+ }
+ amd_support_conflict_msg = (
+ '{0} is not supported; '
+ 'Kokkos supports the following AMD GPU targets: '
+ + ', '.join(amdgpu_arch_map.keys()))
+ for arch in ROCmPackage.amdgpu_targets:
+ if arch not in amdgpu_arch_map:
+ conflicts('+rocm', when='amdgpu_target={0}'.format(arch),
+ msg=amd_support_conflict_msg.format(arch))
+
devices_values = list(devices_variants.keys())
for dev in devices_variants:
dflt, desc = devices_variants[dev]
@@ -178,18 +172,42 @@ class Kokkos(CMakePackage, CudaPackage):
depends_on("kokkos-nvcc-wrapper@master", when="@master+wrapper")
conflicts("+wrapper", when="~cuda")
- variant("std", default="11", values=["11", "14", "17", "20"], multi=False)
+ stds = ["11", "14", "17", "20"]
+ variant("std", default="14", values=stds, multi=False)
variant("pic", default=False, description="Build position independent code")
# nvcc does not currently work with C++17 or C++20
- conflicts("+cuda", when="std=17")
+ conflicts("+cuda", when="std=17 ^cuda@:10.99.99")
conflicts("+cuda", when="std=20")
+ # HPX should use the same C++ standard
+ for std in stds:
+ depends_on('hpx cxxstd={0}'.format(std), when='+hpx std={0}'.format(std))
+
variant('shared', default=True, description='Build shared libraries')
+ @classmethod
+ def get_microarch(cls, target):
+ """Get the Kokkos microarch name for a Spack target (spec.target).
+ """
+ smam = cls.spack_micro_arch_map
+
+ # Find closest ancestor that has a known microarch optimization
+ if target.name not in smam:
+ for target in target.ancestors:
+ if target.name in smam:
+ break
+ else:
+ # No known microarch optimizatinos
+ return None
+
+ return smam[target.name]
+
def append_args(self, cmake_prefix, cmake_options, spack_options):
- for opt in cmake_options:
- enablestr = "+%s" % opt
+ variant_to_cmake_option = {'rocm': 'hip'}
+ for variant_name in cmake_options:
+ enablestr = "+%s" % variant_name
+ opt = variant_to_cmake_option.get(variant_name, variant_name)
optuc = opt.upper()
optname = "Kokkos_%s_%s" % (cmake_prefix, optuc)
option = None
@@ -211,6 +229,13 @@ class Kokkos(CMakePackage, CudaPackage):
def cmake_args(self):
spec = self.spec
+
+ if spec.satisfies("~wrapper+cuda") and not (
+ spec.satisfies("%clang") or spec.satisfies("%cce")
+ ):
+ raise InstallError("Kokkos requires +wrapper when using +cuda"
+ "without clang")
+
options = []
isdiy = "+diy" in spec
@@ -227,14 +252,22 @@ class Kokkos(CMakePackage, CudaPackage):
if not cuda_arch == "none":
kokkos_arch_name = self.spack_cuda_arch_map[cuda_arch]
spack_microarches.append(kokkos_arch_name)
- kokkos_microarch_name = self.spack_micro_arch_map[spec.target.name]
+
+ kokkos_microarch_name = self.get_microarch(spec.target)
if kokkos_microarch_name:
spack_microarches.append(kokkos_microarch_name)
- for arch in self.amd_gpu_arches:
- keyval = "amd_gpu_arch=%s" % arch
- if keyval in spec:
- spack_microarches.append(arch)
+ if "+rocm" in spec:
+ for amdgpu_target in spec.variants['amdgpu_target'].value:
+ if amdgpu_target != "none":
+ if amdgpu_target in self.amdgpu_arch_map:
+ spack_microarches.append(
+ self.amdgpu_arch_map[amdgpu_target])
+ else:
+ # Note that conflict declarations should prevent
+ # choosing an unsupported AMD GPU target
+ raise SpackError("Unsupported target: {0}".format(
+ amdgpu_target))
for arch in spack_microarches:
options.append("-DKokkos_ARCH_%s=ON" % arch.upper())
@@ -248,13 +281,12 @@ class Kokkos(CMakePackage, CudaPackage):
if var in self.spec:
options.append("-D%s_DIR=%s" % (tpl, spec[tpl].prefix))
- # we do not need the compiler wrapper from Spack
- # set the compiler explicitly (may be Spack wrapper or nvcc-wrapper)
- try:
+ if '+rocm' in self.spec:
+ options.append('-DCMAKE_CXX_COMPILER=%s' %
+ self.spec['hip'].hipcc)
+ elif '+wrapper' in self.spec:
options.append("-DCMAKE_CXX_COMPILER=%s" %
self.spec["kokkos-nvcc-wrapper"].kokkos_cxx)
- except Exception:
- options.append("-DCMAKE_CXX_COMPILER=%s" % spack_cxx)
# Set the C++ standard to use
options.append("-DKokkos_CXX_STANDARD=%s" %
@@ -263,3 +295,48 @@ class Kokkos(CMakePackage, CudaPackage):
options.append('-DBUILD_SHARED_LIBS=%s' % ('+shared' in self.spec))
return options
+
+ test_script_relative_path = "scripts/spack_test"
+
+ @run_after('install')
+ def setup_build_tests(self):
+ # Skip if unsupported version
+ cmake_source_path = join_path(self.stage.source_path,
+ self.test_script_relative_path)
+ if not os.path.exists(cmake_source_path):
+ return
+ """Copy test."""
+ cmake_out_path = join_path(self.test_script_relative_path, 'out')
+ cmake_args = [cmake_source_path,
+ "-DSPACK_PACKAGE_SOURCE_DIR:PATH={0}".
+ format(self.stage.source_path),
+ "-DSPACK_PACKAGE_TEST_ROOT_DIR:PATH={0}".
+ format(join_path(self.install_test_root, cmake_out_path)),
+ "-DSPACK_PACKAGE_INSTALL_DIR:PATH={0}".format(self.prefix)]
+ cmake(*cmake_args)
+ self.cache_extra_test_sources(cmake_out_path)
+
+ def build_tests(self):
+ """Build test."""
+ cmake_path = join_path(self.install_test_root,
+ self.test_script_relative_path, 'out')
+ cmake_args = [cmake_path, '-DEXECUTABLE_OUTPUT_PATH=' + cmake_path]
+ cmake(*cmake_args)
+ make()
+
+ def run_tests(self):
+ """Run test."""
+ reason = 'Checking ability to execute.'
+ run_path = join_path(self.install_test_root,
+ self.test_script_relative_path, 'out')
+ self.run_test('make', [run_path, 'test'], [], installed=False, purpose=reason)
+
+ def test(self):
+ # Skip if unsupported version
+ cmake_path = join_path(self.install_test_root,
+ self.test_script_relative_path, 'out')
+ if not os.path.exists(cmake_path):
+ print('Skipping smoke tests: {0} is missing'.format(cmake_path))
+ return
+ self.build_tests()
+ self.run_tests()
diff --git a/var/spack/repos/builtin/packages/kraken/package.py b/var/spack/repos/builtin/packages/kraken/package.py
index e798e540cd..5401efad7b 100644
--- a/var/spack/repos/builtin/packages/kraken/package.py
+++ b/var/spack/repos/builtin/packages/kraken/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+from spack import *
+
class Kraken(Package):
"""Kraken is a system for assigning taxonomic labels to short DNA
diff --git a/var/spack/repos/builtin/packages/kraken2/package.py b/var/spack/repos/builtin/packages/kraken2/package.py
index e970752ad2..6d9d4fdadb 100644
--- a/var/spack/repos/builtin/packages/kraken2/package.py
+++ b/var/spack/repos/builtin/packages/kraken2/package.py
@@ -1,22 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+from spack import *
+
class Kraken2(Package):
"""Kraken2 is a system for assigning taxonomic labels to short DNA
sequences, usually obtained through metagenomic studies."""
homepage = "https://ccb.jhu.edu/software/kraken2/"
- url = "https://github.com/DerrickWood/kraken2/archive/v2.0.8-beta.tar.gz"
+ url = "https://github.com/DerrickWood/kraken2/archive/v2.1.1.tar.gz"
maintainers = ['rberg2']
+ version('2.1.1', sha256='8f3e928cdb32b9e8e6f55b44703d1557b2a5fc3f30f63e8d16e465e19a81dee4')
version('2.0.8-beta', sha256='f2a91fc57a40b3e87df8ac2ea7c0ff1060cc9295c95de417ee53249ee3f7ad8e')
version('2.0.7-beta', sha256='baa160f5aef73327e1a79e6d1c54b64b2fcdaee0be31b456f7bc411d1897a744')
version('2.0.6-beta', sha256='d77db6251179c4d7e16bc9b5e5e9043d25acf81f3e32ad6eadfba829a31e1d09')
diff --git a/var/spack/repos/builtin/packages/krb5/mit-krb5-1.17-static-libs.patch b/var/spack/repos/builtin/packages/krb5/mit-krb5-1.17-static-libs.patch
new file mode 100644
index 0000000000..cdf0a097b4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/krb5/mit-krb5-1.17-static-libs.patch
@@ -0,0 +1,15 @@
+--- src/lib/crypto/builtin/aes/Makefile.in.orig 2019-06-27 14:51:51.305688932 +0200
++++ src/lib/crypto/builtin/aes/Makefile.in 2019-06-27 14:52:46.428203235 +0200
+@@ -34,10 +34,10 @@
+
+ all-unix: all-libobjs # aes-gen
+
+-iaesx64@SHOBJEXT@: $(srcdir)/iaesx64.s
++iaesx64.$(OBJEXT) iaesx64@SHOBJEXT@: $(srcdir)/iaesx64.s
+ $(YASM) $(AESNI_FLAGS) -o $@ $(srcdir)/iaesx64.s
+
+-iaesx86@SHOBJEXT@: $(srcdir)/iaesx86.s
++iaesx86.$(OBJEXT) iaesx86@SHOBJEXT@: $(srcdir)/iaesx86.s
+ $(YASM) $(AESNI_FLAGS) -o $@ $(srcdir)/iaesx86.s
+
+ includes: depend
diff --git a/var/spack/repos/builtin/packages/krb5/package.py b/var/spack/repos/builtin/packages/krb5/package.py
index bdc99e1059..a082c8b728 100644
--- a/var/spack/repos/builtin/packages/krb5/package.py
+++ b/var/spack/repos/builtin/packages/krb5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,6 +26,12 @@ class Krb5(AutotoolsPackage):
depends_on('bison', type='build')
depends_on('openssl')
+ variant(
+ 'shared', default=True,
+ description='install shared libraries if True, static if false'
+ )
+ patch('mit-krb5-1.17-static-libs.patch', level=0)
+
configure_directory = 'src'
build_directory = 'src'
@@ -51,4 +57,12 @@ class Krb5(AutotoolsPackage):
string=True)
def configure_args(self):
- return ['--without-system-verto']
+ args = ['--without-system-verto']
+
+ if '~shared' in self.spec:
+ args.append('--enable-static')
+ args.append('--disable-shared')
+ else:
+ args.append('--disable-static')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/krims/package.py b/var/spack/repos/builtin/packages/krims/package.py
index 8b0048b810..9127bb9d48 100644
--- a/var/spack/repos/builtin/packages/krims/package.py
+++ b/var/spack/repos/builtin/packages/krims/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Krims(CMakePackage):
"""The bucket of Krimskrams every C or C++ project needs"""
- homepage = "http://lazyten.org/krims"
+ homepage = "https://lazyten.org/krims"
url = "https://github.com/lazyten/krims/archive/v0.2.1.tar.gz"
git = "https://github.com/lazyten/krims.git"
diff --git a/var/spack/repos/builtin/packages/kripke/package.py b/var/spack/repos/builtin/packages/kripke/package.py
index 86a347c66a..15a95bbc73 100644
--- a/var/spack/repos/builtin/packages/kripke/package.py
+++ b/var/spack/repos/builtin/packages/kripke/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kubernetes/package.py b/var/spack/repos/builtin/packages/kubernetes/package.py
index 5af5f6e67d..adada4d0f4 100644
--- a/var/spack/repos/builtin/packages/kubernetes/package.py
+++ b/var/spack/repos/builtin/packages/kubernetes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kvasir-mpl/package.py b/var/spack/repos/builtin/packages/kvasir-mpl/package.py
index 7d0b23fd8b..36cf4ef7e1 100644
--- a/var/spack/repos/builtin/packages/kvasir-mpl/package.py
+++ b/var/spack/repos/builtin/packages/kvasir-mpl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/kvtree/package.py b/var/spack/repos/builtin/packages/kvtree/package.py
index 40e57ed0ee..db4a182d00 100644
--- a/var/spack/repos/builtin/packages/kvtree/package.py
+++ b/var/spack/repos/builtin/packages/kvtree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,17 +11,31 @@ class Kvtree(CMakePackage):
hashes."""
homepage = "https://github.com/ecp-veloc/KVTree"
- url = "https://github.com/ecp-veloc/KVTree/archive/v1.0.2.zip"
+ url = "https://github.com/ecp-veloc/KVTree/archive/v1.1.1.tar.gz"
git = "https://github.com/ecp-veloc/kvtree.git"
tags = ['ecp']
- version('master', branch='master')
- version('1.0.2', sha256='6b54f4658e5ebab747c0c2472b1505ac1905eefc8a0b2a97d8776f800ee737a3')
+ version('main', branch='main')
+ version('1.1.1', sha256='4776bd55a559b7f9bb594454ae6b14ebff0087c93c3d59ac7d1ab27df4aa4d74')
+ version('1.1.0', sha256='3e6c003e7b8094d7c2d1529a973d68a68f953ffa63dcde5f4c7c7e81ddf06564')
+ version('1.0.3', sha256='c742cdb1241ef4cb13767019204d5350a3c4383384bed9fb66680b93ff44b0d4')
+ version('1.0.2', sha256='56fb5b747758c24a907a8380e8748d296900d94de9547bc15f6b427ac4ae2ec4')
variant('mpi', default=True, description="Build with MPI message packing")
depends_on('mpi', when='+mpi')
+ variant('file_lock', default='FLOCK',
+ values=('FLOCK', 'FNCTL', 'NONE'),
+ multi=False,
+ description='File locking style for KVTree.')
+
+ def flag_handler(self, name, flags):
+ if self.spec.satisfies('%cce'):
+ if name == 'ldflags':
+ flags.append('-Wl,-z,muldefs')
+ return (flags, None, None)
+
def cmake_args(self):
args = []
if self.spec.satisfies('+mpi'):
@@ -29,6 +43,10 @@ class Kvtree(CMakePackage):
args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc)
else:
args.append("-DMPI=OFF")
+
+ args.append('-DKVTREE_FILE_LOCK={0}'.format(
+ self.spec.variants['file_lock'].value.upper()))
+
if self.spec.satisfies('platform=cray'):
args.append("-DKVTREE_LINK_STATIC=ON")
return args
diff --git a/var/spack/repos/builtin/packages/kylin/package.py b/var/spack/repos/builtin/packages/kylin/package.py
index 40223e845c..0b3f9c5f5b 100644
--- a/var/spack/repos/builtin/packages/kylin/package.py
+++ b/var/spack/repos/builtin/packages/kylin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ladot/package.py b/var/spack/repos/builtin/packages/ladot/package.py
index b3c2922a91..aa0c761d02 100644
--- a/var/spack/repos/builtin/packages/ladot/package.py
+++ b/var/spack/repos/builtin/packages/ladot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/laghos/package.py b/var/spack/repos/builtin/packages/laghos/package.py
index e5a828dbe8..0082333cd8 100644
--- a/var/spack/repos/builtin/packages/laghos/package.py
+++ b/var/spack/repos/builtin/packages/laghos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,18 +21,21 @@ class Laghos(MakefilePackage):
maintainers = ['v-dobrev', 'tzanio', 'vladotomov']
version('develop', branch='master')
+ version('3.1', sha256='49b65edcbf9732c7f6c228958620e18980c43ad8381315a8ba9957ecb7534cd5')
version('3.0', sha256='4db56286e15b42ecdc8d540c4888a7dec698b019df9c7ccb8319b7ea1f92d8b4')
version('2.0', sha256='dd3632d5558889beec2cd3c49eb60f633f99e6d886ac868731610dd006c44c14')
version('1.1', sha256='53b9bfe2af263c63eb4544ca1731dd26f40b73a0d2775a9883db51821bf23b7f')
version('1.0', sha256='af50a126355a41c758fcda335a43fdb0a3cd97e608ba51c485afda3dd84a5b34')
variant('metis', default=True, description='Enable/disable METIS support')
+ variant('ofast', default=False, description="Enable gcc optimization flags")
depends_on('mfem+mpi+metis', when='+metis')
depends_on('mfem+mpi~metis', when='~metis')
depends_on('mfem@develop', when='@develop')
- depends_on('mfem@4.1.0:', when='@3.0')
+ depends_on('mfem@4.2.0', when='@3.1')
+ depends_on('mfem@4.1.0:4.1.99', when='@3.0')
# Recommended mfem version for laghos v2.0 is: ^mfem@3.4.1-laghos-v2.0
depends_on('mfem@3.4.0:', when='@2.0')
# Recommended mfem version for laghos v1.x is: ^mfem@3.3.1-laghos-v1.0
@@ -48,7 +51,8 @@ class Laghos(MakefilePackage):
targets.append('TEST_MK=%s' % spec['mfem'].package.test_mk)
if spec.satisfies('@:2.0'):
targets.append('CXX=%s' % spec['mpi'].mpicxx)
-
+ if '+ofast %gcc' in self.spec:
+ targets.append('CXXFLAGS = -Ofast -finline-functions')
return targets
# See lib/spack/spack/build_systems/makefile.py
diff --git a/var/spack/repos/builtin/packages/lame/package.py b/var/spack/repos/builtin/packages/lame/package.py
index 772fb4c01b..0c51f4c75b 100644
--- a/var/spack/repos/builtin/packages/lame/package.py
+++ b/var/spack/repos/builtin/packages/lame/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py
index 5f96f150c7..619242fba7 100644
--- a/var/spack/repos/builtin/packages/lammps/package.py
+++ b/var/spack/repos/builtin/packages/lammps/package.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import datetime as dt
from spack import *
-import datetime as dt
class Lammps(CMakePackage, CudaPackage):
@@ -14,13 +14,15 @@ class Lammps(CMakePackage, CudaPackage):
See https://github.com/spack/spack/pull/5342 for a detailed
discussion.
"""
- homepage = "http://lammps.sandia.gov/"
+ homepage = "https://lammps.sandia.gov/"
url = "https://github.com/lammps/lammps/archive/patch_1Sep2017.tar.gz"
git = "https://github.com/lammps/lammps.git"
tags = ['ecp', 'ecp-apps']
version('master', branch='master')
+ version('20210310', sha256='25708378dbeccf794bc5045aceb84380bf4a3ca03fc8e5d150a26ca88d371474')
+ version('20201029', sha256='759705e16c1fedd6aa6e07d028cc0c78d73c76b76736668420946a74050c3726')
version('20200721', sha256='845bfeddb7b667799a1a5dbc166b397d714c3d2720316604a979d3465b4190a9')
version('20200630', sha256='413cbfabcc1541a339c7a4ab5693fbeb768f46bb1250640ba94686c6e90922fc')
version('20200505', sha256='c49d77fd602d28ebd8cf10f7359b9fc4d14668c72039028ed7792453d416de73')
@@ -60,11 +62,19 @@ class Lammps(CMakePackage, CudaPackage):
supported_packages = ['asphere', 'body', 'class2', 'colloid', 'compress',
'coreshell', 'dipole', 'granular', 'kspace',
'kokkos', 'latte', 'manybody', 'mc', 'meam', 'misc',
- 'molecule', 'mpiio', 'peri', 'poems', 'python',
- 'qeq', 'replica', 'rigid', 'shock', 'snap', 'spin',
- 'srd', 'user-atc', 'user-h5md', 'user-lb',
- 'user-meamc', 'user-misc', 'user-netcdf', 'user-omp',
- 'user-reaxc', 'voronoi']
+ 'mliap', 'molecule', 'mpiio', 'opt', 'peri', 'poems',
+ 'python', 'qeq', 'replica', 'rigid', 'shock', 'snap',
+ 'spin', 'srd', 'user-atc', 'user-adios',
+ 'user-awpmd', 'user-bocs', 'user-cgsdk',
+ 'user-colvars', 'user-diffraction', 'user-dpd',
+ 'user-drude', 'user-eff', 'user-fep', 'user-h5md',
+ 'user-lb', 'user-manifold', 'user-meamc',
+ 'user-mesodpd', 'user-mesont', 'user-mgpt',
+ 'user-misc', 'user-mofff', 'user-netcdf', 'user-omp',
+ 'user-phonon', 'user-plumed', 'user-ptm', 'user-qtb',
+ 'user-reaction', 'user-reaxc', 'user-sdpd',
+ 'user-smd', 'user-smtbq', 'user-sph', 'user-tally',
+ 'user-uef', 'user-yaff', 'voronoi']
for pkg in supported_packages:
variant(pkg, default=False,
@@ -79,6 +89,8 @@ class Lammps(CMakePackage, CudaPackage):
description='Build with png support')
variant('ffmpeg', default=True,
description='Build with ffmpeg support')
+ variant('kim', default=True,
+ description='Build with KIM support')
variant('openmp', default=True, description='Build with OpenMP')
variant('opencl', default=False, description='Build with OpenCL')
variant('exceptions', default=False,
@@ -95,7 +107,6 @@ class Lammps(CMakePackage, CudaPackage):
depends_on('blas', when='+user-atc')
depends_on('lapack', when='+user-atc')
depends_on('opencl', when='+opencl')
-
depends_on('latte@1.0.1', when='@:20180222+latte')
depends_on('latte@1.1.1:', when='@20180316:20180628+latte')
depends_on('latte@1.2.1:', when='@20180629:20200505+latte')
@@ -107,10 +118,14 @@ class Lammps(CMakePackage, CudaPackage):
depends_on('mpi', when='+user-h5md')
depends_on('hdf5', when='+user-h5md')
depends_on('jpeg', when='+jpeg')
+ depends_on('kim-api', when='+kim')
depends_on('libpng', when='+png')
depends_on('ffmpeg', when='+ffmpeg')
- depends_on('kokkos+deprecated_code+shared@3.0', when='@20200303+kokkos')
+ depends_on('kokkos+deprecated_code+shared@3.0.00', when='@20200303+kokkos')
depends_on('kokkos+shared@3.1:', when='@20200505:+kokkos')
+ depends_on('adios2', when='+user-adios')
+ depends_on('plumed', when='+user-plumed')
+ depends_on('eigen@3:', when='+user-smd')
conflicts('+cuda', when='+opencl')
conflicts('+body', when='+poems@:20180628')
@@ -123,11 +138,28 @@ class Lammps(CMakePackage, CudaPackage):
conflicts('+user-misc', when='~manybody')
conflicts('%gcc@9:', when='@:20200303+openmp')
conflicts('+kokkos', when='@:20200227')
- conflicts('+meam', when='@20181212:')
- conflicts('+user-meamc', when='@:20181212')
+ conflicts(
+ '+meam', when='@20181212:',
+ msg='+meam was removed after @20181212, use +user-meamc instead')
+ conflicts(
+ '+user-meamc', when='@:20181212',
+ msg='+user-meamc only added @20181212, use +meam instead')
+ conflicts(
+ '+user-reaction', when='@:20200303',
+ msg='+user-reaction only supported for version 20200505 and later')
+ conflicts('+mliap', when='~snap')
+ conflicts(
+ '+user-adios +mpi', when='^adios2~mpi',
+ msg='With +user-adios, mpi setting for adios2 and lammps must be the same')
+ conflicts(
+ '+user-adios ~mpi', when='^adios2+mpi',
+ msg='With +user-adios, mpi setting for adios2 and lammps must be the same')
patch("lib.patch", when="@20170901")
patch("660.patch", when="@20170922")
+ patch("https://github.com/lammps/lammps/commit/562300996285fdec4ef74542383276898555af06.patch",
+ sha256="7e1610dad4d8203b45ca6dc2c1f97d02a40f98a5e9778f51a3dbcc30ea1dc717",
+ when="@20200721 +cuda")
root_cmakelists_dir = 'cmake'
@@ -141,15 +173,12 @@ class Lammps(CMakePackage, CudaPackage):
pkg_prefix = 'PKG'
args = [
- '-DBUILD_SHARED_LIBS={0}'.format(
- 'ON' if '+lib' in spec else 'OFF'),
- '-DLAMMPS_EXCEPTIONS={0}'.format(
- 'ON' if '+exceptions' in spec else 'OFF'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'lib'),
+ self.define_from_variant('LAMMPS_EXCEPTIONS', 'exceptions'),
'-D{0}_MPI={1}'.format(
mpi_prefix,
'ON' if '+mpi' in spec else 'OFF'),
- '-DBUILD_OMP={0}'.format(
- 'ON' if '+openmp' in spec else 'OFF'),
+ self.define_from_variant('BUILD_OMP', 'openmp'),
]
if spec.satisfies('+cuda'):
args.append('-DPKG_GPU=ON')
@@ -157,8 +186,7 @@ class Lammps(CMakePackage, CudaPackage):
cuda_arch = spec.variants['cuda_arch'].value
if cuda_arch != 'none':
args.append('-DGPU_ARCH=sm_{0}'.format(cuda_arch[0]))
- args.append('-DCUDA_MPS_SUPPORT={0}'.format(
- 'ON' if '+cuda_mps' in spec else 'OFF'))
+ args.append(self.define_from_variant('CUDA_MPS_SUPPORT', 'cuda_mps'))
elif spec.satisfies('+opencl'):
args.append('-DPKG_GPU=ON')
args.append('-DGPU_API=opencl')
@@ -168,12 +196,9 @@ class Lammps(CMakePackage, CudaPackage):
if spec.satisfies('@20180629:+lib'):
args.append('-DBUILD_LIB=ON')
- args.append('-DWITH_JPEG={0}'.format(
- 'ON' if '+jpeg' in spec else 'OFF'))
- args.append('-DWITH_PNG={0}'.format(
- 'ON' if '+png' in spec else 'OFF'))
- args.append('-DWITH_FFMPEG={0}'.format(
- 'ON' if '+ffmpeg' in spec else 'OFF'))
+ args.append(self.define_from_variant('WITH_JPEG', 'jpeg'))
+ args.append(self.define_from_variant('WITH_PNG', 'png'))
+ args.append(self.define_from_variant('WITH_FFMPEG', 'ffmpeg'))
for pkg in self.supported_packages:
opt = '-D{0}_{1}'.format(pkg_prefix, pkg.upper())
@@ -181,13 +206,33 @@ class Lammps(CMakePackage, CudaPackage):
args.append('{0}=ON'.format(opt))
else:
args.append('{0}=OFF'.format(opt))
+ if '+kim' in spec:
+ args.append('-DPKG_KIM=ON')
if '+kspace' in spec:
if '^fftw' in spec:
args.append('-DFFT=FFTW3')
if '^mkl' in spec:
args.append('-DFFT=MKL')
+ if '^amdfftw' in spec:
+ fftw_prefix = spec['amdfftw'].prefix
+ args.append('-DFFTW_HOME={0}'.format(fftw_prefix))
+ args.append('-DFFTW_INCLUDE_DIRS={0}'
+ .format(fftw_prefix.include))
+ args.append('-DFFTW_LIBRARY_DIRS={0}'.format(fftw_prefix.lib))
if '+kokkos' in spec:
args.append('-DEXTERNAL_KOKKOS=ON')
+ if '+user-adios' in spec:
+ args.append('-DADIOS2_DIR={0}'.format(self.spec['adios2'].prefix))
+ if '+user-plumed' in spec:
+ args.append('-DDOWNLOAD_PLUMED=no')
+ if '+shared' in self.spec['plumed']:
+ args.append('-DPLUMED_MODE=shared')
+ else:
+ args.append('-DPLUMED_MODE=static')
+ if '+user-smd' in spec:
+ args.append('-DDOWNLOAD_EIGEN3=no')
+ args.append('-DEIGEN3_INCLUDE_DIR={0}'.format(
+ self.spec['eigen'].prefix.include))
return args
diff --git a/var/spack/repos/builtin/packages/lapackpp/package.py b/var/spack/repos/builtin/packages/lapackpp/package.py
index ebb3316b37..72f7722479 100644
--- a/var/spack/repos/builtin/packages/lapackpp/package.py
+++ b/var/spack/repos/builtin/packages/lapackpp/package.py
@@ -1,11 +1,22 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
+# Each LAPACK++ version requires a specific BLAS++ version
+_versions = [
+ # LAPACK++, BLAS++
+ ['master', 'master'],
+ ['2020.10.00', '2020.10.00'],
+ ['2020.10.01', '2020.10.01'],
+ ['2020.10.02', '2020.10.02'],
+ ['2021.04.00', '2021.04.01:'], # or later
+]
+
class Lapackpp(CMakePackage):
"""LAPACK++: C++ API for the LAPACK Linear Algebra Package. Developed
@@ -18,16 +29,17 @@ class Lapackpp(CMakePackage):
maintainers = ['teonnik', 'Sely85', 'G-Ragghianti', 'mgates3']
version('master', branch='master')
+ version('2021.04.00', sha256='67abd8de9757dba86eb5d154cdb91f176b6c8b2b7d8e2a669ba0c221c4bb60ed')
version('2020.10.02', sha256='8dde9b95d75b494c4f8b893d68034e95b7a7541981359acb97b6c1c4a9c45cd9')
version('2020.10.01', sha256='ecd659730b4c3cfb8d2595f9bbb6af65d96b79397db654f17fe045bdfea841c0')
version('2020.10.00', sha256='5f6ab3bd3794711818a3a50198efd29571520bf455e13ffa8ba50fa8376d7d1a')
variant('shared', default=True, description='Build shared library')
- # Needs to compile against a matching blaspp version
- depends_on('blaspp')
- for ver in ['master', '2020.10.02', '2020.10.01', '2020.10.00']:
- depends_on('blaspp@' + ver, when='@' + ver)
+ # Match each LAPACK++ version to a specific BLAS++ version
+ for (lpp_ver, bpp_ver) in _versions:
+ depends_on('blaspp@' + bpp_ver, when='@' + lpp_ver)
+
depends_on('blas')
depends_on('lapack')
@@ -42,6 +54,7 @@ class Lapackpp(CMakePackage):
def check(self):
# If the tester fails to build, ensure that the check() fails.
if os.path.isfile(join_path(self.build_directory, 'test', 'tester')):
- make('check')
+ with working_dir(self.build_directory):
+ make('check')
else:
raise Exception('The tester was not built!')
diff --git a/var/spack/repos/builtin/packages/last/package.py b/var/spack/repos/builtin/packages/last/package.py
index 9e6d1c49c3..10c37ec04c 100644
--- a/var/spack/repos/builtin/packages/last/package.py
+++ b/var/spack/repos/builtin/packages/last/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lastz/package.py b/var/spack/repos/builtin/packages/lastz/package.py
index 4b0431b2e9..be28c289b6 100644
--- a/var/spack/repos/builtin/packages/lastz/package.py
+++ b/var/spack/repos/builtin/packages/lastz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/laszip/package.py b/var/spack/repos/builtin/packages/laszip/package.py
index 57f349a2e1..e0484c6089 100644
--- a/var/spack/repos/builtin/packages/laszip/package.py
+++ b/var/spack/repos/builtin/packages/laszip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/latex2html/package.py b/var/spack/repos/builtin/packages/latex2html/package.py
new file mode 100644
index 0000000000..ee43ba07a8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/latex2html/package.py
@@ -0,0 +1,93 @@
+# Copyright 2013-2021 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)
+
+import os
+import platform
+
+from spack import *
+
+
+class Latex2html(AutotoolsPackage):
+ """LaTeX2HTML is a utility that converts LaTeX documents to web pages in HTML."""
+
+ homepage = "https://www.latex2html.org/"
+ url = "https://github.com/latex2html/latex2html/archive/refs/tags/v2021.tar.gz"
+ git = "https://github.com/latex2html/latex2html.git"
+
+ maintainers = ['cessenat']
+
+ version('master', branch='master')
+ version('2021', sha256='872fe7a53f91ababaafc964847639e3644f2b9fab3282ea059788e4e18cbba47')
+ version('2017', sha256='28a5d4b8f14b1f95928da281b6332559bcd83349ba439b2fa43655b2e21c83ab')
+
+ variant('svg', default=True, description='Enable SVG images')
+ variant('png', default=True, description='Enable PNG images')
+ variant('gif', default=True, description='Enable GIF images')
+
+ depends_on('ghostscript', type=('build', 'run'))
+ depends_on('perl', type=('build', 'run'))
+ # Provides pdfcrop scheme=full
+ depends_on('texlive', type=('build', 'run'))
+
+ depends_on('netpbm', type=('build', 'run'))
+ # Provides pdftocairo
+ depends_on('poppler+glib', type=('build', 'run'), when='+svg')
+
+ # A copy of texlive function as long as it does not provide the
+ # bin env to dependent package:
+ def tex_arch(self):
+ tex_arch = '{0}-{1}'.format(platform.machine(),
+ platform.system().lower())
+ return tex_arch
+
+ def configure_args(self):
+ spec = self.spec
+ args = ['--with-perl={0}'.format(spec['perl'].command.path)]
+ args.extend(self.enable_or_disable('png'))
+ args.extend(self.enable_or_disable('gif'))
+ args.extend(self.enable_or_disable('svg'))
+
+ # Since packages do not always provide a proper dependent_build_environment,
+ # one needs to guess where the bins are since latex2html configure wants to
+ # hard set the bins location once for all:
+ for p in ['gs', 'ps2pdf']:
+ exe = join_path(spec['ghostscript'].prefix.bin, p)
+ if os.path.exists(exe):
+ args.append('--with-{0}={1}'.format(p, exe))
+ pnms = ['pnmcrop', 'pnmflip', 'ppmquant', 'pnmfile', 'pnmcat', 'pbmmake',
+ 'ppmtogif', 'pnmtopng', 'ppmtojpeg', 'pnmcut', 'pnmpad', 'pnmrotate',
+ 'pnmscale', 'giftopnm', 'jpegtopnm', 'pngtopnm', 'tifftopnm',
+ 'anytopnm', 'bmptoppm', 'pcxtoppm', 'sgitopnm', 'xbmtopbm', 'xwdtopnm']
+ for p in pnms:
+ exe = join_path(spec['netpbm'].prefix.bin, p)
+ if os.path.exists(exe):
+ args.append('--with-{0}={1}'.format(p, exe))
+
+ # PR #24102 at https://github.com/spack/spack/pull/24102
+ # should make this useless ; but at least it lets us know which are the
+ # texlive bins that latex2html may use.
+ lats = ['pdfcrop', 'tex', 'initex', 'latex', 'dvips', 'dvipng', 'pdflatex',
+ 'lualatex', 'dvilualatex', 'kpsewhich', 'mktexlsr']
+ for p in lats:
+ exe = join_path(spec['texlive'].prefix.bin, self.tex_arch(), p)
+ if os.path.exists(exe):
+ args.append('--with-{0}={1}'.format(p, exe))
+ else:
+ # This should be the only needed code if texlive where
+ # to set its proper dependent_build_environment
+ exe = which(p)
+ if exe:
+ args.append('--with-{0}={1}'.format(p, str(exe)))
+ if '+svg' in spec:
+ p = 'pdftocairo'
+ exe = join_path(spec['poppler'].prefix.bin, p)
+ if os.path.exists(exe):
+ args.append('--with-{0}={1}'.format(p, exe))
+ else:
+ exe = which(p)
+ if exe:
+ args.append('--with-{0}={1}'.format(p, str(exe)))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/latte/package.py b/var/spack/repos/builtin/packages/latte/package.py
index d67f98397e..6bda084045 100644
--- a/var/spack/repos/builtin/packages/latte/package.py
+++ b/var/spack/repos/builtin/packages/latte/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/launchmon/package.py b/var/spack/repos/builtin/packages/launchmon/package.py
index 3115e63b55..19342d47a4 100644
--- a/var/spack/repos/builtin/packages/launchmon/package.py
+++ b/var/spack/repos/builtin/packages/launchmon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class Launchmon(AutotoolsPackage):
homepage = "https://github.com/LLNL/LaunchMON"
url = "https://github.com/LLNL/LaunchMON/releases/download/v1.0.2/launchmon-v1.0.2.tar.gz"
git = "https://github.com/llnl/launchmon.git"
+ maintainers = ['lee218llnl']
version('master', branch='master')
version('1.0.2', sha256='1d301ccccfe0873efcd66da87ed5e4d7bafc560b00aee396d8a9365f53b3a33a')
diff --git a/var/spack/repos/builtin/packages/lazyten/package.py b/var/spack/repos/builtin/packages/lazyten/package.py
index b9a7b6cfa1..cd2b7d0f38 100644
--- a/var/spack/repos/builtin/packages/lazyten/package.py
+++ b/var/spack/repos/builtin/packages/lazyten/package.py
@@ -1,16 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Lazyten(CMakePackage):
"""Lightweight linear algebra library based on lazy matrices"""
- homepage = "http://lazyten.org"
+ homepage = "https://lazyten.org"
url = "https://github.com/lazyten/lazyten/archive/v0.4.1.tar.gz"
git = "https://github.com/lazyten/lazyten.git"
diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py
index 11c4ed2f1a..5e1b09f8a0 100644
--- a/var/spack/repos/builtin/packages/lbann/package.py
+++ b/var/spack/repos/builtin/packages/lbann/package.py
@@ -1,24 +1,28 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+import sys
+
from spack import *
-class Lbann(CMakePackage, CudaPackage):
+class Lbann(CMakePackage, CudaPackage, ROCmPackage):
"""LBANN: Livermore Big Artificial Neural Network Toolkit. A distributed
memory, HPC-optimized, model and data parallel training toolkit for deep
- neural networks."""
+ neural networks.
+ """
- homepage = "http://software.llnl.gov/lbann/"
+ homepage = "https://software.llnl.gov/lbann/"
url = "https://github.com/LLNL/lbann/archive/v0.91.tar.gz"
git = "https://github.com/LLNL/lbann.git"
maintainers = ['bvanessen']
version('develop', branch='develop')
+ version('0.102', sha256='3734a76794991207e2dd2221f05f0e63a86ddafa777515d93d99d48629140f1a')
version('0.101', sha256='69d3fe000a88a448dc4f7e263bcb342c34a177bd9744153654528cd86335a1f7')
version('0.100', sha256='d1bab4fb6f1b80ae83a7286cc536a32830890f6e5b0c3107a17c2600d0796912')
version('0.99', sha256='3358d44f1bc894321ce07d733afdf6cb7de39c33e3852d73c9f31f530175b7cd')
@@ -33,31 +37,72 @@ class Lbann(CMakePackage, CudaPackage):
version('0.92', sha256='9187c5bcbc562c2828fe619d53884ab80afb1bcd627a817edb935b80affe7b84')
version('0.91', sha256='b69f470829f434f266119a33695592f74802cff4b76b37022db00ab32de322f5')
- variant('opencv', default=True, description='Builds with support for image processing routines with OpenCV')
- variant('seq_init', default=False, description='Force serial initialization of weight matrices.')
- variant('dtype', default='float',
- description='Type for floating point representation of weights',
- values=('float', 'double'))
+ variant('al', default=True, description='Builds with support for Aluminum Library')
variant('build_type', default='Release',
description='The build type to build',
values=('Debug', 'Release'))
- variant('al', default=True, description='Builds with support for Aluminum Library')
variant('conduit', default=True,
description='Builds with support for Conduit Library '
'(note that for v0.99 conduit is required)')
- variant('half', default=False,
- description='Builds with support for FP16 precision data types')
- variant('dihydrogen', default=False,
+ variant('deterministic', default=False,
+ description='Builds with support for deterministic execution')
+ variant('dihydrogen', default=True,
description='Builds with support for DiHydrogen Tensor Library')
variant('distconv', default=False,
description='Builds with support for spatial, filter, or channel '
'distributed convolutions')
-
- variant('vtune', default=False, description='Builds with support for Intel VTune')
variant('docs', default=False, description='Builds with support for building documentation')
+ variant('dtype', default='float',
+ description='Type for floating point representation of weights',
+ values=('float', 'double'))
variant('extras', default=False, description='Add python modules for LBANN related tools')
-
+ variant('fft', default=False, description='Support for FFT operations')
+ variant('half', default=False,
+ description='Builds with support for FP16 precision data types')
+ variant('hwloc', default=True, description='Add support for topology aware algorithms')
+ variant('nvprof', default=False, description='Build with region annotations for NVPROF')
+ variant('numpy', default=False,
+ description='Builds with support for processing NumPy data files')
+ variant('vision', default=False,
+ description='Builds with support for image processing data with OpenCV')
+ variant('vtune', default=False, description='Builds with support for Intel VTune')
+ variant('onednn', default=False, description='Support for OneDNN')
+ variant('nvshmem', default=False, description='Support for NVSHMEM')
+ variant('python', default=True, description='Support for Python extensions (e.g. Data Reader)')
+ variant('pfe', default=True, description='Python Frontend for generating and launching models')
+ variant('boost', default=False, description='Enable callbacks that use Boost libraries')
+ variant('asan', default=False, description='Build with support for address-sanitizer')
+
+ # LBANN benefits from high performance linkers, but passing these in as command
+ # line options forces the linker flags to unnecessarily propagate to all
+ # dependent packages. Don't include gold or lld as dependencies
+ variant('gold', default=False, description='Use gold high performance linker')
+ variant("lld", default=False, description="Use lld high performance linker")
+ # Don't expose this a dependency until Spack can find the external properly
+ # depends_on('binutils+gold', type='build', when='+gold')
+
+ # Variant Conflicts
conflicts('@:0.90,0.99:', when='~conduit')
+ conflicts('@0.90:0.101.99', when='+fft')
+ conflicts('@:0.90,0.101.99:', when='~dihydrogen')
+ conflicts('~cuda', when='+nvprof')
+ conflicts('~hwloc', when='+al')
+ conflicts('~cuda', when='+nvshmem')
+ conflicts('+cuda', when='+rocm', msg='CUDA and ROCm support are mutually exclusive')
+ conflicts('+extras', when='~pfe', msg='Python extras require the Python front end support')
+
+ conflicts('~vision', when='@0.91:0.101')
+ conflicts('~numpy', when='@0.91:0.101')
+ conflicts('~python', when='@0.91:0.101')
+ conflicts('~pfe', when='@0.91:0.101')
+
+ for comp in spack.compilers.supported_compilers():
+ if comp != 'clang':
+ conflicts('+lld', when='%' + comp)
+
+ conflicts("+lld", when="+gold")
+ conflicts('+gold', when='platform=darwin', msg="gold does not work on Darwin")
+ conflicts('+lld', when='platform=darwin', msg="lld does not work on Darwin")
depends_on('cmake@3.17.0:', type='build')
@@ -67,13 +112,16 @@ class Lbann(CMakePackage, CudaPackage):
depends_on('hydrogen@1.5.0:', when='@:0.90,0.102:')
# Add Hydrogen variants
- depends_on('hydrogen +openmp +openmp_blas +shared +int64')
+ depends_on('hydrogen +openmp +shared +int64')
+ depends_on('hydrogen +openmp_blas', when=sys.platform != 'darwin')
depends_on('hydrogen ~al', when='~al')
depends_on('hydrogen +al', when='+al')
depends_on('hydrogen ~cuda', when='~cuda')
depends_on('hydrogen +cuda', when='+cuda')
depends_on('hydrogen ~half', when='~half')
depends_on('hydrogen +half', when='+half')
+ depends_on('hydrogen ~rocm', when='~rocm')
+ depends_on('hydrogen +rocm', when='+rocm')
depends_on('hydrogen build_type=Debug', when='build_type=Debug')
# Older versions depended on Elemental not Hydrogen
@@ -84,76 +132,114 @@ class Lbann(CMakePackage, CudaPackage):
# Specify the correct version of Aluminum
depends_on('aluminum@:0.3.99', when='@0.95:0.100 +al')
depends_on('aluminum@0.4:0.4.99', when='@0.101:0.101.99 +al')
- depends_on('aluminum@0.5:', when='@:0.90,0.102: +al')
+ depends_on('aluminum@0.5.0:', when='@:0.90,0.102: +al')
# Add Aluminum variants
- depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda')
+ depends_on('aluminum +cuda +nccl +cuda_rma', when='+al +cuda')
+ depends_on('aluminum +rocm +rccl', when='+al +rocm')
+ depends_on('dihydrogen@0.2.0:', when='@:0.90,0.102:')
depends_on('dihydrogen +openmp', when='+dihydrogen')
+ depends_on('dihydrogen +openmp_blas', when=sys.platform != 'darwin')
depends_on('dihydrogen ~cuda', when='+dihydrogen ~cuda')
depends_on('dihydrogen +cuda', when='+dihydrogen +cuda')
depends_on('dihydrogen ~al', when='+dihydrogen ~al')
depends_on('dihydrogen +al', when='+dihydrogen +al')
- depends_on('dihydrogen +legacy +cuda', when='+distconv')
+ depends_on('dihydrogen +distconv +cuda', when='+distconv')
depends_on('dihydrogen ~half', when='+dihydrogen ~half')
depends_on('dihydrogen +half', when='+dihydrogen +half')
+ depends_on('dihydrogen ~nvshmem', when='+dihydrogen ~nvshmem')
+ depends_on('dihydrogen +nvshmem', when='+dihydrogen +nvshmem')
+ depends_on('dihydrogen ~rocm', when='+dihydrogen ~rocm')
+ depends_on('dihydrogen +rocm', when='+dihydrogen +rocm')
depends_on('dihydrogen@0.1', when='@0.101:0.101.99 +dihydrogen')
depends_on('dihydrogen@:0.0,0.2:', when='@:0.90,0.102: +dihydrogen')
conflicts('~dihydrogen', when='+distconv')
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on('hydrogen cuda_arch=%s' % arch, when='+cuda cuda_arch=%s' % arch)
+ depends_on('aluminum cuda_arch=%s' % arch, when='+al +cuda cuda_arch=%s' % arch)
+ depends_on('dihydrogen cuda_arch=%s' % arch, when='+dihydrogen +cuda cuda_arch=%s' % arch)
+ depends_on('nccl cuda_arch=%s' % arch, when='+cuda cuda_arch=%s' % arch)
+
+ # variants +rocm and amdgpu_targets are not automatically passed to
+ # dependencies, so do it manually.
+ for val in ROCmPackage.amdgpu_targets:
+ depends_on('hydrogen amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+ depends_on('aluminum amdgpu_target=%s' % val, when='+al amdgpu_target=%s' % val)
+ depends_on('dihydrogen amdgpu_target=%s' % val, when='+dihydrogen amdgpu_target=%s' % val)
+
depends_on('cudnn', when='@0.90:0.100.99 +cuda')
depends_on('cudnn@8.0.2:', when='@:0.90,0.101: +cuda')
depends_on('cub', when='@0.94:0.98.2 +cuda ^cuda@:10.99')
+ depends_on('hipcub', when='+rocm')
depends_on('mpi')
- depends_on('hwloc@1.11:', when='@:0.90,0.102:')
- depends_on('hwloc@1.11:1.11.99', when='@0.95:0.101.99')
+ depends_on('hwloc@1.11:', when='@:0.90,0.102: +hwloc')
+ depends_on('hwloc@1.11:1.11.99', when='@0.95:0.101.99 +hwloc')
+ depends_on('hwloc +cuda +nvml', when='+cuda')
+ depends_on('hwloc@2.3.0:', when='+rocm')
depends_on('half', when='+half')
+ depends_on('fftw@3.3: +openmp', when='+fft')
+
# LBANN wraps OpenCV calls in OpenMP parallel loops, build without OpenMP
# Additionally disable video related options, they incorrectly link in a
# bad OpenMP library when building with clang or Intel compilers
- depends_on('opencv@4.1.0: build_type=RelWithDebInfo +core +highgui +imgproc +jpeg '
- '+png +tiff +zlib +fast-math ~calib3d ~cuda ~dnn ~eigen'
- '~features2d ~flann ~gtk ~ipp ~ipp_iw ~jasper ~java ~lapack ~ml'
- '~openmp ~opencl ~opencl_svm ~openclamdblas ~openclamdfft'
- '~pthreads_pf ~python ~qt +shared ~stitching ~superres ~ts'
- '~video ~videostab ~videoio ~vtk', when='+opencv')
+ depends_on('opencv@4.1.0: build_type=RelWithDebInfo +core +highgui '
+ '+imgcodecs +imgproc +jpeg +png +tiff +fast-math ~cuda',
+ when='+vision')
- # Note that for Power systems we want the environment to add +powerpc +vsx
- depends_on('opencv@4.1.0: +powerpc +vsx', when='+opencv arch=ppc64le:')
+ # Note that for Power systems we want the environment to add +powerpc
+ depends_on('opencv@4.1.0: +powerpc', when='+vision arch=ppc64le:')
- depends_on('cnpy')
+ depends_on('cnpy', when='+numpy')
depends_on('nccl', when='@0.94:0.98.2 +cuda')
depends_on('conduit@0.4.0: +hdf5~hdf5_compat', when='@0.94:0.99 +conduit')
- depends_on('conduit@0.4.0: +hdf5~hdf5_compat', when='@:0.90,0.99:')
-
- depends_on('python@3:3.7.9 +shared', type=('build', 'run'), when='@:0.90,0.99:')
- extends("python")
- depends_on('py-setuptools', type='build')
- depends_on('py-argparse', type='run', when='@:0.90,0.99: ^python@:2.6')
- depends_on('py-configparser', type='run', when='@:0.90,0.99: +extras')
- depends_on('py-graphviz@0.10.1:', type='run', when='@:0.90,0.99: +extras')
- depends_on('py-matplotlib@3.0.0:', type='run', when='@:0.90,0.99: +extras')
- depends_on('py-numpy@1.16.0:', type=('build', 'run'), when='@:0.90,0.99: +extras')
- depends_on('py-onnx@1.3.0:', type='run', when='@:0.90,0.99: +extras')
- depends_on('py-pandas@0.24.1:', type='run', when='@:0.90,0.99: +extras')
- depends_on('py-texttable@1.4.0:', type='run', when='@:0.90,0.99: +extras')
- depends_on('py-pytest', type='test', when='@:0.90,0.99:')
- depends_on('py-protobuf+cpp@3.10.0', type=('build', 'run'), when='@:0.90,0.99:')
+ depends_on('conduit@0.5.0:0.6.99 +hdf5~hdf5_compat', when='@0.100:0.101 +conduit')
+ depends_on('conduit@0.6.0: +hdf5~hdf5_compat', when='@:0.90,0.99:')
+
+ # LBANN can use Python in two modes 1) as part of an extensible framework
+ # and 2) to drive the front end model creation and launch
+
+ # Core library support for Python Data Reader and extensible interface
+ depends_on('python@3: +shared', type=('run'), when='@:0.90,0.99: +python')
+ extends("python", when='+python')
+
+ # Python front end and possible extra packages
+ depends_on('python@3: +shared', type=('build', 'run'), when='@:0.90,0.99: +pfe')
+ extends("python", when='+pfe')
+ depends_on('py-setuptools', type='build', when='+pfe')
+ depends_on('py-argparse', type='run', when='@:0.90,0.99: +pfe ^python@:2.6')
+ depends_on('py-configparser', type='run', when='@:0.90,0.99: +pfe +extras')
+ depends_on('py-graphviz@0.10.1:', type='run', when='@:0.90,0.99: +pfe +extras')
+ depends_on('py-matplotlib@3.0.0:', type='run', when='@:0.90,0.99: +pfe +extras')
+ depends_on('py-numpy@1.16.0:', type=('build', 'run'), when='@:0.90,0.99: +pfe +extras')
+ depends_on('py-onnx@1.3.0:', type='run', when='@:0.90,0.99: +pfe +extras')
+ depends_on('py-pandas@0.24.1:', type='run', when='@:0.90,0.99: +pfe +extras')
+ depends_on('py-texttable@1.4.0:', type='run', when='@:0.90,0.99: +pfe +extras')
+ depends_on('py-pytest', type='test', when='@:0.90,0.99: +pfe')
+ depends_on('py-protobuf+cpp@3.10.0', type=('build', 'run'), when='@:0.90,0.99: +pfe')
+
depends_on('protobuf+shared@3.10.0', when='@:0.90,0.99:')
depends_on('py-breathe', type='build', when='+docs')
+ depends_on('py-sphinx-rtd-theme', type='build', when='+docs')
depends_on('doxygen', type='build', when='+docs')
depends_on('py-m2r', type='build', when='+docs')
depends_on('cereal')
- depends_on('catch2', type='test')
+ depends_on('catch2', type=('build', 'test'))
depends_on('clara')
depends_on('llvm-openmp', when='%apple-clang')
+ depends_on('onednn cpu_runtime=omp gpu_runtime=none', when='+onednn')
+ depends_on('nvshmem', when='+nvshmem')
+
+ depends_on('zstr')
+
generator = 'Ninja'
depends_on('ninja', type='build')
@@ -162,13 +248,32 @@ class Lbann(CMakePackage, CudaPackage):
spec = self.spec
# Environment variables
cppflags = []
- cppflags.append('-DLBANN_SET_EL_RNG -ldl')
-
- return [
+ cppflags.append('-DLBANN_SET_EL_RNG')
+ cppflags.append('-std=c++17')
+ args = []
+ args.extend([
'-DCMAKE_CXX_FLAGS=%s' % ' '.join(cppflags),
'-DLBANN_VERSION=spack',
- '-DCNPY_DIR={0}'.format(spec['cnpy'].prefix),
- ]
+ ])
+
+ if '+numpy' in spec:
+ args.append(
+ '-DCNPY_DIR={0}'.format(spec['cnpy'].prefix),
+ )
+
+ # Use lld high performance linker
+ if '+lld' in spec:
+ args.extend([
+ '-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld',
+ '-DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld'])
+
+ # Use gold high performance linker
+ if '+gold' in spec:
+ args.extend([
+ '-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=gold',
+ '-DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=gold'])
+
+ return args
def setup_build_environment(self, env):
if self.spec.satisfies('%apple-clang'):
@@ -183,26 +288,44 @@ class Lbann(CMakePackage, CudaPackage):
# Get any recent versions or non-numeric version
# Note that develop > numeric and non-develop < numeric
+
@when('@:0.90,0.94:')
def cmake_args(self):
spec = self.spec
args = self.common_config_args
args.extend([
- '-DLBANN_WITH_TOPO_AWARE:BOOL=%s' % ('+cuda +nccl' in spec),
+ '-DCMAKE_CXX_STANDARD=17',
+ '-DLBANN_WITH_CNPY=%s' % ('+numpy' in spec),
+ '-DLBANN_DETERMINISTIC:BOOL=%s' % ('+deterministic' in spec),
+ '-DLBANN_WITH_HWLOC=%s' % ('+hwloc' in spec),
'-DLBANN_WITH_ALUMINUM:BOOL=%s' % ('+al' in spec),
+ '-DLBANN_WITH_ADDRESS_SANITIZER:BOOL=%s' % ('+asan' in spec),
+ '-DLBANN_WITH_BOOST:BOOL=%s' % ('+boost' in spec),
'-DLBANN_WITH_CONDUIT:BOOL=%s' % ('+conduit' in spec),
- '-DLBANN_WITH_CUDA:BOOL=%s' % ('+cuda' in spec),
- '-DLBANN_WITH_CUDNN:BOOL=%s' % ('+cuda' in spec),
- '-DLBANN_WITH_SOFTMAX_CUDA:BOOL=%s' % ('+cuda' in spec),
- '-DLBANN_SEQUENTIAL_INITIALIZATION:BOOL=%s' %
- ('+seq_init' in spec),
+ '-DLBANN_WITH_NVSHMEM:BOOL=%s' % ('+nvshmem' in spec),
+ '-DLBANN_WITH_FFT:BOOL=%s' % ('+fft' in spec),
+ '-DLBANN_WITH_ONEDNN:BOOL=%s' % ('+onednn' in spec),
+ '-DLBANN_WITH_EMBEDDED_PYTHON:BOOL=%s' % ('+python' in spec),
+ '-DLBANN_WITH_PYTHON_FRONTEND:BOOL=%s' % ('+pfe' in spec),
'-DLBANN_WITH_TBINF=OFF',
+ '-DLBANN_WITH_UNIT_TESTING:BOOL=%s' % (self.run_tests),
+ '-DLBANN_WITH_VISION:BOOL=%s' % ('+vision' in spec),
'-DLBANN_WITH_VTUNE:BOOL=%s' % ('+vtune' in spec),
'-DLBANN_DATATYPE={0}'.format(spec.variants['dtype'].value),
- '-DLBANN_VERBOSE=0',
'-DCEREAL_DIR={0}'.format(spec['cereal'].prefix),
# protobuf is included by py-protobuf+cpp
- '-DProtobuf_DIR={0}'.format(spec['protobuf'].prefix)])
+ '-DProtobuf_DIR={0}'.format(spec['protobuf'].prefix),
+ '-Dprotobuf_MODULE_COMPATIBLE=ON'])
+
+ if '+cuda' in spec:
+ if spec.satisfies('^cuda@11.0:'):
+ args.append('-DCMAKE_CUDA_STANDARD=17')
+ else:
+ args.append('-DCMAKE_CUDA_STANDARD=14')
+ archs = spec.variants['cuda_arch'].value
+ if archs != 'none':
+ arch_str = ";".join(archs)
+ args.append('-DCMAKE_CUDA_ARCHITECTURES=%s' % arch_str)
if spec.satisfies('@:0.90') or spec.satisfies('@0.95:'):
args.append(
@@ -224,9 +347,7 @@ class Lbann(CMakePackage, CudaPackage):
args.append('-DAluminum_DIR={0}'.format(spec['aluminum'].prefix))
if '+conduit' in spec:
- args.extend([
- '-DLBANN_CONDUIT_DIR={0}'.format(spec['conduit'].prefix),
- '-DConduit_DIR={0}'.format(spec['conduit'].prefix)])
+ args.append('-DConduit_DIR={0}'.format(spec['conduit'].prefix))
# Add support for OpenMP with external (Brew) clang
if spec.satisfies('%clang platform=darwin'):
@@ -239,7 +360,7 @@ class Lbann(CMakePackage, CudaPackage):
'-DOpenMP_libomp_LIBRARY={0}/lib/libomp.dylib'.format(
clang_root)])
- if '+opencv' in spec:
+ if '+vision' in spec:
args.append('-DOpenCV_DIR:STRING={0}'.format(
spec['opencv'].prefix))
@@ -258,6 +379,8 @@ class Lbann(CMakePackage, CudaPackage):
args.append(
'-DNCCL_DIR={0}'.format(
spec['nccl'].prefix))
+ args.append(
+ '-DLBANN_WITH_NVPROF:BOOL=%s' % ('+nvprof' in spec))
if spec.satisfies('@:0.90') or spec.satisfies('@0.100:'):
args.append(
@@ -267,6 +390,20 @@ class Lbann(CMakePackage, CudaPackage):
args.append(
'-DLBANN_WITH_DISTCONV:BOOL=%s' % ('+distconv' in spec))
+ if '+rocm' in spec:
+ args.extend([
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
+ '-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc)])
+ archs = self.spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ cxxflags_str = " ".join(self.spec.compiler_flags['cxxflags'])
+ args.append(
+ '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'
+ ' -g -fsized-deallocation -fPIC -std=c++17 {1}'.format(
+ arch_str, cxxflags_str)
+ )
+
return args
@when('@0.91:0.93')
@@ -283,7 +420,6 @@ class Lbann(CMakePackage, CudaPackage):
'-DElemental_DIR={0}'.format(spec['elemental'].prefix),
'-DELEMENTAL_MATH_LIBS={0}'.format(
spec['elemental'].libs),
- '-DSEQ_INIT:BOOL=%s' % ('+seq_init' in spec),
'-DVERBOSE=0',
'-DLBANN_HOME=.'])
@@ -292,7 +428,7 @@ class Lbann(CMakePackage, CudaPackage):
elif spec.variants['dtype'].value == 'double':
args.append('-DDATATYPE=8')
- if '+opencv' in spec:
+ if '+vision' in spec:
args.append('-DOpenCV_DIR:STRING={0}'.format(
spec['opencv'].prefix))
diff --git a/var/spack/repos/builtin/packages/lbxproxy/package.py b/var/spack/repos/builtin/packages/lbxproxy/package.py
index 94cf8afb36..b111c235a6 100644
--- a/var/spack/repos/builtin/packages/lbxproxy/package.py
+++ b/var/spack/repos/builtin/packages/lbxproxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class Lbxproxy(AutotoolsPackage, XorgPackage):
extension, so this program is only useful in connecting to older
X servers."""
- homepage = "http://cgit.freedesktop.org/xorg/app/lbxproxy"
+ homepage = "https://cgit.freedesktop.org/xorg/app/lbxproxy"
xorg_mirror_path = "app/lbxproxy-1.0.3.tar.gz"
version('1.0.3', sha256='db36251c9656c7da720f31e10df384f8946a9a5395915371b60d9423ad8f6a80')
@@ -26,8 +26,8 @@ class Lbxproxy(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libice')
- depends_on('xtrans', type='build')
- depends_on('xproxymanagementprotocol', type='build')
- depends_on('bigreqsproto', type='build')
+ depends_on('xtrans')
+ depends_on('xproxymanagementprotocol')
+ depends_on('bigreqsproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/lbzip2/package.py b/var/spack/repos/builtin/packages/lbzip2/package.py
index 3a4f7577f4..ecfd966762 100644
--- a/var/spack/repos/builtin/packages/lbzip2/package.py
+++ b/var/spack/repos/builtin/packages/lbzip2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Lbzip2(AutotoolsPackage):
"""Multi-threaded compression utility with support for bzip2
compressed file format"""
- homepage = "http://lbzip2.org/"
+ homepage = "https://lbzip2.org/"
url = "http://archive.lbzip2.org/lbzip2-2.5.tar.gz"
version('2.5', sha256='46c75ee93cc95eedc6005625442b2b8e59a2bef3ba80987d0491f055185650e9')
diff --git a/var/spack/repos/builtin/packages/lcals/package.py b/var/spack/repos/builtin/packages/lcals/package.py
index e5a39b5a05..d51621289e 100644
--- a/var/spack/repos/builtin/packages/lcals/package.py
+++ b/var/spack/repos/builtin/packages/lcals/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
+from spack import *
+
class Lcals(MakefilePackage):
"""LCALS ("Livermore Compiler Analysis Loop Suite") is a collection of loop
diff --git a/var/spack/repos/builtin/packages/lcio/package.py b/var/spack/repos/builtin/packages/lcio/package.py
index e48bce82be..8410506aa9 100644
--- a/var/spack/repos/builtin/packages/lcio/package.py
+++ b/var/spack/repos/builtin/packages/lcio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,14 @@ class Lcio(CMakePackage):
git = "https://github.com/iLCSoft/LCIO.git"
url = "https://github.com/iLCSoft/LCIO/archive/v02-13-03.tar.gz"
+ tags = ['hep']
+
maintainers = ['gaede', 'vvolkl']
version('master', branch='master')
+ version('2.16.1', sha256='992a649f864785e62fe12d7a638b2696c91f9535881de33f22b3cceabcdcdbaf')
+ version('2.16', sha256='aff7707750d821f31cbae3d7529fd8e22457f48d759e834ec01aa9389b5dbf1a')
+ version('2.15.4', sha256='720c8130762d445df44d2c245da01c0a1ca807d7ed62362cebf7b3a99f9a37d7')
version('2.15.3', sha256='a00f9e1e8fc98151e88e603bbfca8088ded21ae3daca5c91869628a19af0cefb')
version('2.15.2', sha256='9886c6f5c275c1c51bde978e4f5514bb4ea9588239f1d3ee95a76ef4b686e69d')
version('2.15.1', sha256='32921feb162408357d00a81cdd489c374b3ed8ab6f442d798b22835de7243d32')
@@ -40,6 +45,9 @@ class Lcio(CMakePackage):
variant("examples", default=False,
description="Turn on to build LCIO examples")
+ depends_on('sio@0.0.2:', when='@2.14:')
+ depends_on('sio@0.1:', when='@2.16:')
+
depends_on('root@6.04:', when="+rootdict")
depends_on('openjdk', when="+jar")
# build error with +termlib, to be investigated
diff --git a/var/spack/repos/builtin/packages/lcms/package.py b/var/spack/repos/builtin/packages/lcms/package.py
index 2ad9137a2c..0fffe9799d 100644
--- a/var/spack/repos/builtin/packages/lcms/package.py
+++ b/var/spack/repos/builtin/packages/lcms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Lcms(AutotoolsPackage):
transforms between ICC profiles. It is focused on speed, and is
portable across several platforms (MIT license)."""
- homepage = "http://www.littlecms.com"
+ homepage = "https://www.littlecms.com"
url = "http://downloads.sourceforge.net/project/lcms/lcms/2.9/lcms2-2.9.tar.gz"
version('2.9', sha256='48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20')
diff --git a/var/spack/repos/builtin/packages/lcov/package.py b/var/spack/repos/builtin/packages/lcov/package.py
index b1449926c0..ed83daec0a 100644
--- a/var/spack/repos/builtin/packages/lcov/package.py
+++ b/var/spack/repos/builtin/packages/lcov/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ldak/package.py b/var/spack/repos/builtin/packages/ldak/package.py
index 6114f3bc90..15ac48f0a0 100644
--- a/var/spack/repos/builtin/packages/ldak/package.py
+++ b/var/spack/repos/builtin/packages/ldak/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,10 @@ from spack import *
class Ldak(Package):
"""LDAK is a software package for analyzing GWAS data"""
- homepage = "http://dougspeed.com/ldak/"
- url = "http://dougspeed.com/wp-content/uploads/source.zip"
+ homepage = "https://dougspeed.com/ldak/"
+ url = "https://dougspeed.com/wp-content/uploads/source.zip"
- version('5.1', sha256='9a3fe2fafc7b68cc57a17748a64db66f76b13acbd5e9a538ede20a46447fcf4a')
+ version('5.1', sha256='ae3eb8c2ef31af210e138336fd6edcd0e3a26ea9bae89fd6c0c6ea33e3a1517e')
variant('mkl', default=False, description='Use MKL')
@@ -21,6 +21,11 @@ class Ldak(Package):
depends_on('lapack')
depends_on('mkl', when='+mkl')
+ for t in ['aarch64', 'arm', 'ppc', 'ppc64', 'ppc64le',
+ 'ppcle', 'sparc', 'sparc64', 'x86']:
+ conflicts('target={0}:'.format(t),
+ msg='libspot is available linux x86_64 only')
+
def setup_build_environment(self, env):
env.append_flags('LDLIBS', '-lm')
env.append_flags('LDLIBS', '-lz')
@@ -32,11 +37,8 @@ class Ldak(Package):
env.append_flags('LDLIBS', 'libqsopt.linux.a')
def install(self, spec, prefix):
- if '+mkl' in spec:
- make('ldak')
- mkdirp(prefix.bin)
- install('ldak', prefix.bin)
- else:
- make('ldak_slow')
- mkdirp(prefix.bin)
- install('ldak_slow', prefix.bin.ldak)
+ if self.spec.satisfies('~mkl'):
+ filter_file('#define MKL.*', '#define MKL 0', 'ldak.c')
+ make('ldak')
+ mkdirp(prefix.bin)
+ install('ldak', prefix.bin.ldak)
diff --git a/var/spack/repos/builtin/packages/ldc-bootstrap/package.py b/var/spack/repos/builtin/packages/ldc-bootstrap/package.py
index 681d3d1811..d481e5afb3 100644
--- a/var/spack/repos/builtin/packages/ldc-bootstrap/package.py
+++ b/var/spack/repos/builtin/packages/ldc-bootstrap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class LdcBootstrap(CMakePackage):
LDC is fully Open Source; the parts of the code not taken/adapted from
other projects are BSD-licensed (see the LICENSE file for details).
- Consult the D wiki for further information: http://wiki.dlang.org/LDC
+ Consult the D wiki for further information: https://wiki.dlang.org/LDC
This old version of the compiler is needed to bootstrap newer ones.
"""
diff --git a/var/spack/repos/builtin/packages/ldc/package.py b/var/spack/repos/builtin/packages/ldc/package.py
index 0fc8025108..26603922bc 100644
--- a/var/spack/repos/builtin/packages/ldc/package.py
+++ b/var/spack/repos/builtin/packages/ldc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Ldc(CMakePackage):
LDC is fully Open Source; the parts of the code not taken/adapted from
other projects are BSD-licensed (see the LICENSE file for details).
- Consult the D wiki for further information: http://wiki.dlang.org/LDC
+ Consult the D wiki for further information: https://wiki.dlang.org/LDC
"""
homepage = "https://dlang.org/"
diff --git a/var/spack/repos/builtin/packages/legion/README.md b/var/spack/repos/builtin/packages/legion/README.md
new file mode 100644
index 0000000000..f8cac2e5d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/legion/README.md
@@ -0,0 +1,153 @@
+# Legion Spack Package Notes
+
+The Legion Spack package follows the underlying approach used in Legion's CMake-based build infrastructure. If you are not familiar with using Spack, we encourage you to start with the **[Spack 101 Tutorial](https://spack-tutorial.readthedocs.io/en/latest/)**. For more background on Legion please visit the project [website](https://legion.stanford.edu). There you can find information on getting started, tutorials, and supporting documentation.
+
+## Versions
+
+We strongly recommend the majority of users start with the latest **stable** branch of Legion. This will guarantee the most regularly tested and debugged version of the code. We also strive to have quarterly tagged release throughout the calendar year starting March (e.g., legion-YY.MM.0 where MM starts at *'03'* and runs through *'12'* for any calendar year). These versioned downloads are captured via the [Legion GitHub page](https://github.com/StanfordLegion/legion) and captured in the Spack package for individual use via the naming convention above. The details for each release are captured in the CHANGES.txt file at the top-level of the repository.
+
+## Spack Usage and Details
+
+**NOTE: This version of the Legion *spackage* no longer depends upon an external GASNet spackage. Instead, as supported and preferred by the GASNet developers, Legion internalizes the GASNet configuration and build process tailored to Legion's needs. At present this approach should minimize both building and configuration issues that have occurred in the past.**
+
+With a working installation of Spack following variants can be used to download, configure, and build legion. As of its latest release Legion uses features from C++11 and can be build using either GCC or Clang (and likely any other compilers with full C++11 support). For example,
+
+ spack install legion %clang@10.0
+
+will build and install Legion using version 10.0 of the clang compiler. Additional compiler flags (beyond those automatically enabled by the underlying Legion CMake configuration) may be specified by using the `cppflags` option to Spack:
+
+ spack install legion %clang@10.0 cppflags=-Wall
+
+You can find more details about customizing the compiler with Spack [here](https://spack-tutorial.readthedocs.io/en/latest/tutorial_basics.html#customizing-compilers).
+
+There are a number of configuration parameters (variants) for Legion that can be specified on the command line. To see a complete listing of these variants you can use the following command:
+
+ spack info legion
+
+The default build and install of Legion is suitable for laptop/desktop development needs. Additional variants will need to be specified to build for distributed memory systems, GPU support, and other features (e.g., debugging, profiling, etc.). A full list of the currently supported variants is provided below.
+
+These variants may then be used on the Spack command line to customize the build of Legion you would like to install. For boolean-based variants the `+`, `-`, or `~` *sigils* can be used. In this case, the `+` specifies a `True` value and either `-` or `~` can be used for the `False` setting (two values for `False` are provided to avoid conflicts with shell command line parameters. For example,
+
+ spack install legion@stable~cuda+hdf5%clang10.0
+
+will build/install the stable version of Legion without CUDA and with HDF5 support; using Clang 10.0 as the compiler. See below for more examples of the various package options.
+
+## Overview of Legion's Spack Variants
+
+
+This section provides an overview of the variants that are available for builds and installations of Legion and the underlying Realm runtime libraries. These variants range from important configuration parameters for many users, to more involved and low-level details more likely to be leveraged when debugging correctness and performance issues. For these last set of use cases we encourage users to visit the Legion [Debugging](https://legion.stanford.edu/debugging/) and [Profiling](https://legion.stanford.edu/profiling/) pages.
+
+Note that any variants with a default of `on` or `off` are boolean values and may be configured on the Spack command line using the `+`, or `-` (or `~`) sigils.
+
+Finally, to build the highest performing installation of Legion requires an appropriate configuration and installation of GASNet-Ex (while we have support for an MPI transport layer it is still in testing and evaluation for achieving the best possible performance). See the following section for details on the steps needed to build a high-performance install of Legion using Spack.
+
+### Debugging & Internal Runtime Configurations
+
+* **`build_type`**: This variant exposes the CMake build type setting. Following directly from CMake these available values for this variant are [`Debug`, `RelWithDebInfo`, and `Release`]. `default=RelWithDebInfo`
+
+* **`bounds_checks`**: This variant supports `on` or `off` values and enables, or disables bounds checking within the runtime's data accessors. This is helpful for debugging but does have the potential to degrade performance (therefore it is disabled in the default build). `default=off`
+
+* **`privilege_checks`**: This variant enables the runtime checking of data privileges in Legion's data accessors. This can helpful in debugging applications. `default=off`
+
+* **`spy`**: This variant enables applications to produce detailed logging information for debugging with the [Legion Spy](https://legion.stanford.edu/debugging/#legion-spy) tool. `default=off`
+
+* **`max_dims`**: This variant provides an integral value for the maximum number of dimensions in a logical region that are supported by the build/install. `default=3` *Note: Currently supported values range from 1 to 9.*
+
+* **`max_fields`**: This variant provides an integral value for the maximum number of fields that may be stored within a logical region. `default=512` *Note: Internally this requires a value that is a power-of-two -- if a non power-of-two value is provided the next largest power-of-two will be used.*
+
+* **`output_level`**: This variant enables the (dynamic) debugging level for the runtime. It can be one of the following values: [`spew`, `debug`, `info`, `print`, `warning`, `error`, `fatal`, or `none`]. `default=warning`
+
+* **`papi`**: This variant enables PAPI performance measurements. `default=off`
+
+* **`redop_complex`** This variant enables support for the reduction of complex types. `default=off` Note: will be enabled when `+bindings` is set.
+
+* **`shared_libs`**: Build shared libraries for Legion and Realm. `default=off`
+
+* **`enable_tls`**: This variant supports `on` or `off` and enables thread-local-storage of the Legion runtime context. `default=off`
+
+### Bindings & Interoperability
+
+* **`bindings`**: This variant supports `on` or `off` and will build the language bindings for Legion. In addition to the required C++ interface, this currently includes C, Python, and Fortran. `default=off` Note you can use `+python` or `+fortran` to select a subset of these bindings.
+
+* **`python`**: This variant enables Python support in terms of both bindings and runtime support (where instance(s) of the Python interpreter must be available.) `default=off`
+
+* **`fortran`**: This variant supports `on` or `off` and enables building of Fortran language bindings for Legion. `default=off`
+
+[//]: <> (TOOD: More details here on Kokkos interop?)
+
+* **`kokkos`**: Enable support for interoperability with [Kokkos](https://github.com/kokkos) use in Legion tasks. `default=off`
+
+[//]: <> (TOOD: More details here on OpenMP interop?)
+
+* **`openmp`**: This variant enables OpenMP support within Legion tasks (and within the Realm runtime). Please note that the full OpenMP feature set (e.g. OpenMP 5.0) is not fully supported when enabling this feature. `default=off`
+
+* **`libdl`**: Enable support for dynamic object loading (via "libdl"). `default=on`
+
+### Processor Architecture Support (e.g., GPUs)
+
+* **`cuda`**: This variant supports `on` or `off` and enables CUDA support within Legion. `default=off`
+
+* **`cuda_arch`**: This variant specifics the specific CUDA architecture to support within the Legion build/installation. Currently this variant must be one of [`60`, `70`, `75`, or `80`]. Where `60` is the Pascal architecture, `70` is for Volta, `75` is for Turing, and `80` is for `Volta`. `default=70`
+
+* **`cuda_hijack`**: This variant supports `on` or `off` and determines if the build enables performance enhancements by "*hijacking* entry points into CUDA's runtime API; thus, it obviously implies `+cuda`.This is a performance enhancement and not necessary but suggested for production use cases on NVIDIA-based systems. `default=off`
+
+### External Library Support
+
+* **`hdf5`**: This variant supports `on` or `off` and enables building of HDF5 support within the runtime. `default=off`
+
+* **`hwloc`**: Build using "libhwloc" support for numa-aware topology support within Realm (Legion's low-level runtime layer). `default=off`
+
+* **`zlib`**: This variant enables support for zlib. `default=on`
+
+### Distributed Memory/Network Transport/Interconnect Support
+
+* **`network`**: This variant specifies what network transport layer Legion/Realm should use for moving data across the distributed memories of a system. The options are currently: [`gasnet`, `mpi`, or `none`]. The most tested and reliable interface for distributed memory systems is `gasnet`. Via this package GASNet will be automatically configured and built. If you want to use a pre-installed version of GASNet you can use the `gasnet_root` variant; this will disable the automatic/internal installation of GASNet. We strongly encourage the use of the automatic configuration and build mechanism as it is tailored to Legion's use cases. If you would like to read more about please visit their [web page](https://gasnet.lbl.gov). Note that the `mpi` transport layer is new and still being tuned and debugged. Finally, if you want to run on a single system (e.g., a desktop or laptop) for development activities you may drop this parameter or specify `network=none`. `default=none`
+
+* **`conduit`** requires `(network=gasnet)` **only**: This variant selects the GASNet conduit to use and must be provided when `network=gasnet`. The current choices are: [`aries`, `ibv`, `mpi`, `ucx`, `udp`, or `none`]: defaults to `none`.
+ * **aries**: Aries for Cray XC series (see [documentation](https://gasnet.lbl.gov/dist-ex/aries-conduit/README)).
+ * **ibv**: OpenIB/OpenFabrics Verbs for InfiniBand (see [documentation](https://gasnet.lbl.gov/dist-ex/ibv-conduit/README)).
+ * **mpi**: Portable conduit, works on any network with MPI 1.1 or newer (see [documentation](https://gasnet.lbl.gov/dist-ex/mpi-conduit/README)).
+ * **ucx**: *(NOTE: EXPERIMENTAL)* Unified Communication X framework (see [documentation](https://gasnet.lbl.gov/dist-ex/ucx-conduit/README)).
+ * **udp**: Portable conduit, works on any network with a TCP/IP stack (see [documentation](https://gasnet.lbl.gov/dist-ex/udp-conduit/README)).
+
+* **`gasnet_root`**: This variant points the package at a pre-installed version of GASNet for use when building Legion. This skips the default behavior of embedding the GASNet build within that of Legion. It requires that `conduit` be set to match that used by the installed version of GASNet (*note that incorrectly setting `conduit` could result in failures that are not caught by the Spack package as failures will only occur during the build of Legion*). `default=/usr/local`
+
+## Examples
+
+This section highlights a few common configurations/installations for various common installations of Legion.
+
+### Laptop/Desktop Development
+
+The default configuration will build a version of Legion without network support that is often helpful in laptop or desktop installs for development using Legion. The first example is the most straightforward and enables a CPU-only configuration of Legion:
+
+`$ spack install legion@stable`
+
+Given that many uses cases for laptop/desktop development involve debugging Legion you might want to consider enabling [Legion Spy](https://legion.stanford.edu/debugging/#legion-spy), bounds and privilege checks, and optionally enable debugging level output diagnostics:
+
+`$ spack install legion@stable +spy +bounds_checks +privilege_checks [output=debug]`
+
+Note that by specifying `+spy` the package will also install the Legion profiler. Both will be available in the corresponding `bin` directory created by Spack's install mechanisms.
+
+#### Adding GPU Support
+
+To enable support for NVIDIA GPUs with Legion you can add the `+cuda` variant to the examples provided above. In addition, you can also use the `cuda_arch` flag to enable specific GPU architectures. For example, the follow command line installs the stable version of Legion with CUDA support for NVIDIA's Volta architecture:
+
+`$ spack install legion@stable +cuda cuda_arch=70`
+
+If you wanted to program tasks using Kokkos support for GPUs you can simply add the `+kokkos` option to the previous command line:
+
+`$ spack install legion@stable +cuda cuda_arch=70 +kokkos`
+
+this will enable Kokkos interoperability in Legion and also build and configure a version of Kokkos with cuda and Volta GPU support.
+
+#### Networking/Distributed Memory Support
+
+In order to add modify the above configuration to support a distributed memory architecture you need to add a `network` target. For example, to build a version of Legion that uses GASNet for the data transport layer you would specify:
+
+`$ spack install legion@stable +cuda cuda_arch=70 +kokkos network=gasnet`
+
+Without the addition of a specific GASNet *conduit* this command will use the UDP conduit. To change this to support a Infniband-based cluster you would add:
+
+`$ spack install legion@stable +cuda cuda_arch=70 +kokkos network=gasnet conduit=ibv`
+
+For a pre-existing installation of GASNet you can point the package at the root directory of the installation (also often know as the installation *prefix*). For example, to point the package at a version installed under `/opt/local` (*i.e., the include files are stored under `/opt/local/include` and libraries are in `/opt/local/lib`*) you would add `gasnet_root=/opt/local` to the command line.
diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py
index f98e48e187..7949036b2e 100644
--- a/var/spack/repos/builtin/packages/legion/package.py
+++ b/var/spack/repos/builtin/packages/legion/package.py
@@ -1,8 +1,9 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
from spack import *
@@ -19,77 +20,356 @@ class Legion(CMakePackage):
interface provides explicit programmer controlled placement of data in
the memory hierarchy and assignment of tasks to processors in a way
that is orthogonal to correctness, thereby enabling easy porting and
- tuning of Legion applications to new architectures.
- """
- homepage = "http://legion.stanford.edu/"
- url = "https://github.com/StanfordLegion/legion/tarball/legion-17.02.0"
- git = "https://github.com/StanfordLegion/legion.git"
+ tuning of Legion applications to new architectures."""
+ homepage = "https://legion.stanford.edu/"
+ git = "https://github.com/StanfordLegion/legion.git"
+
+ maintainers = ['pmccormick', 'streichler']
+
+ version('21.03.0', tag='legion-21.03.0')
+ version('stable', branch='stable')
version('master', branch='master')
- version('ctrl-rep', branch='control_replication')
- version('20.03.0', sha256='ae5feedb5ed9f357b56424b9d73cea4f224a61e291e022556f796d1ff24d1244')
- version('19.12.0', sha256='ea517638de7256723bb9c119796d4d9d4ef662c52d0151ad24af5288e5a72e7d')
- version('19.09.1', sha256='c507133fb9dce16b7fcccd7eb2933d13cce96ecf835da60a27c0f66840cabf51')
- version('19.09.0', sha256='a01c3e3c6698cafb64b77a66341cc06d039faed4fa31b764159f021b94ce13e8')
- version('19.06.0', sha256='31cd97e9264c510ab83b1f9e8e1e6bf72021a0c6ee4a028966fce08736e39fbf')
- version('19.04.0', sha256='279bbc8dcdab4c75be570318989a9fc9821178143e9db9c3f62e58bf9070b5ac')
- version('18.12.0', sha256='71f2c409722975c0ad92f2caffcc9eaa9260f7035e2b55b731d819eb6a94016c')
- version('18.09.0', sha256='58c5a3072d2b5086225982563c23524692ca5758cbfda8d0f0a4f00ef17b3b8d')
- version('18.05.0', sha256='4c3cef548b3a459827e4c36b5963c06b6fcf0a4ca1800fbb0f73e6ba3b1cced4')
- version('18.02.0', sha256='e08aeef98003593391a56f11a99d9d65af49647fe87a2a5e8837c8682a337a60')
- version('17.10.0', sha256='af4f1e9215e57c4aac4805ae2bf53defe13eeaf192576bf5a702978f43171b1e')
- version('17.08.0', sha256='20aabdb0fabb1e32aa713cd5fa406525093f8dad33fca5d23046408d42d3c7b3')
- version('17.02.0', sha256='423d8699729b0e7fef663740e239aa722cca544f6bda8c9f782eaba4274bf60a')
-
- variant('mpi', default=True,
- description='Build on top of mpi conduit for mpi inoperability')
- variant('ibv', default=False,
- 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')
+ version('cr', branch='control_replication')
+
+ depends_on("cmake@3.16:", type='build')
+ # TODO: Need to spec version of MPI v3 for use of the low-level MPI transport
+ # layer. At present the MPI layer is still experimental and we discourge its
+ # use for general (not legion development) use cases.
+ depends_on('mpi', when='network=mpi')
+ depends_on('mpi', when='network=gasnet') # MPI is required to build gasnet (needs mpicc).
+ depends_on('ucx', when='conduit=ucx')
+ depends_on('mpi', when='conduit=mpi')
+ depends_on('cuda@10.0:11.9', when='+cuda_unsupported_compiler')
+ depends_on('cuda@10.0:11.9', when='+cuda')
+ depends_on('hdf5', when='+hdf5')
+ depends_on('hwloc', when='+hwloc')
+
+ # cuda-centric
+ # reminder for arch numbers to names: 60=pascal, 70=volta, 75=turing, 80=ampere
+ # TODO: we could use a map here to clean up and use naming vs. numbers.
+ cuda_arch_list = ('60', '70', '75', '80')
+ for nvarch in cuda_arch_list:
+ depends_on('kokkos@3.3.01+cuda+cuda_lambda+wrapper cuda_arch={0}'.format(nvarch),
+ when='%gcc+kokkos+cuda cuda_arch={0}'.format(nvarch))
+ depends_on("kokkos@3.3.01+cuda+cuda_lambda~wrapper cuda_arch={0}".format(nvarch),
+ when="%clang+kokkos+cuda cuda_arch={0}".format(nvarch))
+
+ depends_on('kokkos@3.3.01~cuda', when='+kokkos~cuda')
+ depends_on("kokkos@3.3.01~cuda+openmp", when='kokkos+openmp')
+
+ depends_on('python@3', when='+python')
+ depends_on('papi', when='+papi')
+ depends_on('zlib', when='+zlib')
+
+ # TODO: Need a AMD/HIP variant to match support landing in 21.03.0.
+
+ # Network transport layer: the underlying data transport API should be used for
+ # distributed data movement. For Legion, gasnet is the currently the most
+ # mature. We have many users that default to using no network layer for
+ # day-to-day development thus we default to 'none'. MPI support is new and
+ # should be considered as a beta release.
+ variant('network', default='none',
+ values=('gasnet', 'mpi', 'none'),
+ description="The network communications/transport layer to use.",
+ multi=False)
+
+ # We default to automatically embedding a gasnet build. To override this
+ # point the package a pre-installed version of GASNet-Ex via the gasnet_root
+ # variant.
+ #
+ # make sure we have a valid directory provided for gasnet_root...
+ def validate_gasnet_root(value):
+ if value == 'none':
+ return True
+
+ if not os.path.isdir(value):
+ print("gasnet_root:", value, "-- no such directory.")
+ return False
+ else:
+ return True
+
+ variant('gasnet_root',
+ default='none',
+ values=validate_gasnet_root,
+ description="Path to a pre-installed version of GASNet (prefix directory).",
+ multi=False)
+ conflicts('gasnet_root', when="network=mpi")
+
+ variant('conduit', default='none',
+ values=('aries', 'ibv', 'udp', 'mpi', 'ucx', 'none'),
+ description="The gasnet conduit(s) to enable.",
+ multi=False)
+
+ conflicts('conduit=none', when='network=gasnet',
+ msg="a conduit must be selected when 'network=gasnet'")
+
+ gasnet_conduits = ('aries', 'ibv', 'udp', 'mpi', 'ucx')
+ for c in gasnet_conduits:
+ conflict_str = 'conduit=%s' % c
+ conflicts(conflict_str, when='network=mpi',
+ msg="conduit attribute requires 'network=gasnet'.")
+ conflicts(conflict_str, when='network=none',
+ msg="conduit attribute requires 'network=gasnet'.")
+
+ variant('gasnet_debug', default=False,
+ description="Build gasnet with debugging enabled.")
+ conflicts('+gasnet_debug', when='network=mpi')
+ conflicts('+gasnet_debug', when='network=none')
+
+ variant('shared', default=False,
+ description="Build shared libraries.")
+
+ variant('bounds_checks', default=False,
+ description="Enable bounds checking in Legion accessors.")
+
+ variant('privilege_checks', default=False,
+ description="Enable runtime privildge checks in Legion accessors.")
+
+ variant('enable_tls', default=False,
+ description="Enable thread-local-storage of the Legion context.")
+
+ variant('output_level', default='warning',
+ # Note: these values are dependent upon those used in the cmake config.
+ values=("spew", "debug", "info", "print", "warning", "error", "fatal",
+ "none"),
+ description="Set the compile-time logging level.",
+ multi=False)
+
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)
+ description="Enable detailed logging for Legion Spy debugging.")
+
+ # note: we will be dependent upon spack's latest-and-greatest cuda version...
+ variant('cuda', default=False,
+ description="Enable CUDA support.")
+ variant('cuda_hijack', default=False,
+ description="Hijack application calls into the CUDA runtime (+cuda).")
+ variant('cuda_arch', default='70',
+ values=cuda_arch_list,
+ description="GPU/CUDA architecture to build for.",
+ multi=False)
+ variant('cuda_unsupported_compiler', default=False,
+ description="Disable nvcc version check (--allow-unsupported-compiler).")
+ conflicts('+cuda_hijack', when='~cuda')
+
+ variant('fortran', default=False,
+ description="Enable Fortran bindings.")
+
+ variant('hdf5', default=False,
+ description="Enable support for HDF5.")
+
+ variant('hwloc', default=False,
+ description="Use hwloc for topology awareness.")
+
+ variant('kokkos', default=False,
+ description="Enable support for interoperability with Kokkos.")
+
+ variant('bindings', default=False,
+ description="Build runtime language bindings (excl. Fortran).")
- depends_on("cmake@3.1:", type='build')
- depends_on("gasnet~aligned-segments~pshm segment-mmap-max='16GB'", when='~mpi')
- depends_on("gasnet~aligned-segments~pshm segment-mmap-max='16GB' +mpi", when='+mpi')
- depends_on("gasnet~aligned-segments~pshm segment-mmap-max='16GB' +ibv", when='+ibv')
- depends_on("hdf5", when='+hdf5')
+ variant('libdl', default=True,
+ description="Enable support for dynamic object/library loading.")
+
+ variant('openmp', default=False,
+ description="Enable support for OpenMP within Legion tasks.")
+
+ variant('papi', default=False,
+ description="Enable PAPI performance measurements.")
+
+ variant('python', default=False,
+ description="Enable Python support.")
+
+ variant('zlib', default=True,
+ description="Enable zlib support.")
+
+ variant('redop_complex', default=False,
+ description="Use reduction operators for complex types.")
+
+ variant('max_dims', values=int, default=3,
+ description="Set max number of dimensions for logical regions.")
+ variant('max_fields', values=int, default=512,
+ description="Maximum number of fields allowed in a logical region.")
+
+ variant('native', default=False,
+ description="Enable native/host processor optimizaton target.")
def cmake_args(self):
- cmake_cxx_flags = [
- '-DPRIVILEGE_CHECKS',
- '-DBOUNDS_CHECKS',
- '-DENABLE_LEGION_TLS']
-
- options = [
- '-DLegion_USE_GASNet=ON',
- '-DLEGION_USE_CUDA=OFF',
- '-DLEGION_USE_OPENMP=OFF',
- '-DLegion_BUILD_EXAMPLES=ON',
- '-DBUILD_SHARED_LIBS=%s' % ('+shared' in self.spec)]
-
- if self.spec.variants['build_type'].value == 'Debug':
+ spec = self.spec
+ cmake_cxx_flags = []
+ options = []
+
+ if 'network=gasnet' in spec:
+ options.append('-DLegion_NETWORKS=gasnetex')
+ if spec.variants['gasnet_root'].value != 'none':
+ gasnet_dir = spec.variants['gasnet_root'].value
+ options.append('-DGASNet_ROOT_DIR=%s' % gasnet_dir)
+ else:
+ options.append('-DLegion_EMBED_GASNet=ON')
+
+ gasnet_conduit = spec.variants['conduit'].value
+ options.append('-DGASNet_CONDUIT=%s' % gasnet_conduit)
+
+ if '+gasnet_debug' in spec:
+ options.append('-DLegion_EMBED_GASNet_CONFIGURE_ARGS=--enable-debug')
+ elif 'network=mpi' in spec:
+ options.append('-DLegion_NETWORKS=mpi')
+ if spec.variants['gasnet_root'].value != 'none':
+ raise InstallError("'gasnet_root' is only valid when 'network=gasnet'.")
+ else:
+ if spec.variants['gasnet_root'].value != 'none':
+ raise InstallError("'gasnet_root' is only valid when 'network=gasnet'.")
+ options.append('-DLegion_EMBED_GASNet=OFF')
+
+ if '+shared' in spec:
+ options.append('-DBUILD_SHARED_LIBS=ON')
+ else:
+ options.append('-DBUILD_SHARED_LIBS=OFF')
+
+ if '+bounds_checks' in spec:
+ # default is off.
+ options.append('-DLegion_BOUNDS_CHECKS=ON')
+ if '+privilege_checks' in spec:
+ # default is off.
+ options.append('-DLegion_PRIVILEGE_CHECKS=ON')
+ if '+enable_tls' in spec:
+ # default is off.
+ options.append('-DLegion_ENABLE_TLS=ON')
+ if 'output_level' in spec:
+ level = str.upper(spec.variants['output_level'].value)
+ options.append('-DLegion_OUTPUT_LEVEL=%s' % level)
+ if '+spy' in spec:
+ # default is off.
+ options.append('-DLegion_SPY=ON')
+
+ if '+cuda' in spec:
+ cuda_arch = spec.variants['cuda_arch'].value
+ options.append('-DLegion_USE_CUDA=ON')
+ options.append('-DLegion_GPU_REDUCTIONS=ON')
+ options.append('-DLegion_CUDA_ARCH=%s' % cuda_arch)
+ if '+cuda_hijack' in spec:
+ options.append('-DLegion_HIJACK_CUDART=ON')
+ else:
+ options.append('-DLegion_HIJACK_CUDART=OFF')
+
+ if '+cuda_unsupported_compiler' in spec:
+ options.append('-DCUDA_NVCC_FLAGS:STRING=--allow-unsupported-compiler')
+
+ if '+fortran' in spec:
+ # default is off.
+ options.append('-DLegion_USE_Fortran=ON')
+
+ if '+hdf5' in spec:
+ # default is off.
+ options.append('-DLegion_USE_HDF5=ON')
+
+ if '+hwloc' in spec:
+ # default is off.
+ options.append('-DLegion_USE_HWLOC=ON')
+
+ if '+kokkos' in spec:
+ # default is off.
+ options.append('-DLegion_USE_Kokkos=ON')
+ os.environ['KOKKOS_CXX_COMPILER'] = spec['kokkos'].kokkos_cxx
+
+ if '+libdl' in spec:
+ # default is on.
+ options.append('-DLegion_USE_LIBDL=ON')
+ else:
+ options.append('-DLegion_USE_LIBDL=OFF')
+
+ if '+openmp' in spec:
+ # default is off.
+ options.append('-DLegion_USE_OpenMP=ON')
+
+ if '+papi' in spec:
+ # default is off.
+ options.append('-DLegion_USE_PAPI=ON')
+
+ if '+python' in spec:
+ # default is off.
+ options.append('-DLegion_USE_Python=ON')
+
+ if '+zlib' in spec:
+ # default is on.
+ options.append('-DLegion_USE_ZLIB=ON')
+ else:
+ options.append('-DLegion_USE_ZLIB=OFF')
+
+ if '+redop_complex' in spec:
+ # default is off.
+ options.append('-DLegion_REDOP_COMPLEX=ON')
+
+ if '+bindings' in spec:
+ # default is off.
+ options.append('-DLegion_BUILD_BINDINGS=ON')
+ options.append('-DLegion_REDOP_COMPLEX=ON') # required for bindings
+ options.append('-DLegion_USE_Fortran=ON')
+
+ if spec.variants['build_type'].value == 'Debug':
cmake_cxx_flags.extend([
'-DDEBUG_REALM',
'-DDEBUG_LEGION',
'-ggdb',
])
- options.append('-DCMAKE_CXX_FLAGS=%s' % (" ".join(cmake_cxx_flags)))
+ maxdims = int(spec.variants['max_dims'].value)
+ # TODO: sanity check if maxdims < 0 || > 9???
+ options.append('-DLegion_MAX_DIM=%d' % maxdims)
- if '+mpi' in self.spec:
- options.append('-DGASNet_CONDUIT=mpi')
+ maxfields = int(spec.variants['max_fields'].value)
+ if (maxfields <= 0):
+ maxfields = 512
+ # make sure maxfields is a power of two. if not,
+ # find the next largest power of two and use that...
+ if (maxfields & (maxfields - 1) != 0):
+ while maxfields & maxfields - 1:
+ maxfields = maxfields & maxfields - 1
+ maxfields = maxfields << 1
+ options.append('-DLegion_MAX_FIELDS=%d' % maxfields)
- if '+hdf5' in self.spec:
- options.append('-DLegion_USE_HDF5=ON')
- else:
- options.append('-DLegion_USE_HDF5=OFF')
-
- if '+spy' in self.spec:
- options.append('-DLegion_SPY=ON')
+ if '+native' in spec:
+ # default is off.
+ options.append('-DBUILD_MARCH:STRING=native')
return options
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([join_path('examples', 'local_function_tasks')])
+
+ def run_local_function_tasks_test(self):
+ """Run stand alone test: local_function_tasks"""
+
+ test_dir = join_path(self.test_suite.current_test_cache_dir,
+ 'examples', 'local_function_tasks')
+
+ if not os.path.exists(test_dir):
+ print('Skipping local_function_tasks test')
+ return
+
+ exe = 'local_function_tasks'
+
+ cmake_args = ['-DCMAKE_C_COMPILER={0}'.format(self.compiler.cc),
+ '-DCMAKE_CXX_COMPILER={0}'.format(self.compiler.cxx),
+ '-DLegion_DIR={0}'.format(join_path(self.prefix,
+ 'share',
+ 'Legion',
+ 'cmake'))]
+
+ self.run_test('cmake',
+ options=cmake_args,
+ purpose='test: generate makefile for {0} example'.format(exe),
+ work_dir=test_dir)
+
+ self.run_test('make',
+ purpose='test: build {0} example'.format(exe),
+ work_dir=test_dir)
+
+ self.run_test(exe,
+ purpose='test: run {0} example'.format(exe),
+ work_dir=test_dir)
+
+ def test(self):
+ self.run_local_function_tasks_test()
diff --git a/var/spack/repos/builtin/packages/lemon/package.py b/var/spack/repos/builtin/packages/lemon/package.py
index c87e60e677..781e90617c 100644
--- a/var/spack/repos/builtin/packages/lemon/package.py
+++ b/var/spack/repos/builtin/packages/lemon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Lemon(CMakePackage):
of common data structures and algorithms with focus on combinatorial
optimization tasks connected mainly with graphs and networks."""
- homepage = "http://lemon.cs.elte.hu/trac/lemon"
- url = "http://lemon.cs.elte.hu/pub/sources/lemon-1.3.1.tar.gz"
+ homepage = "https://lemon.cs.elte.hu/trac/lemon"
+ url = "https://lemon.cs.elte.hu/pub/sources/lemon-1.3.1.tar.gz"
version('1.3.1', sha256='71b7c725f4c0b4a8ccb92eb87b208701586cf7a96156ebd821ca3ed855bad3c8')
diff --git a/var/spack/repos/builtin/packages/leptonica/package.py b/var/spack/repos/builtin/packages/leptonica/package.py
index 21e7b5583f..a970d67c54 100644
--- a/var/spack/repos/builtin/packages/leptonica/package.py
+++ b/var/spack/repos/builtin/packages/leptonica/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,12 +13,20 @@ class Leptonica(CMakePackage):
homepage = "http://www.leptonica.org/"
url = "https://github.com/DanBloomberg/leptonica/archive/1.80.0.tar.gz"
+ version('1.81.0', sha256='70ebc04ff8b9684205bd1d01843c635a8521255b74813bf7cce9a33368f7952c')
version('1.80.0', sha256='3952b974ec057d24267aae48c54bca68ead8275604bf084a73a4b953ff79196e')
version('1.79.0', sha256='bf9716f91a4844c2682a07ef21eaf68b6f1077af1f63f27c438394fd66218e17')
version('1.78.0', sha256='f8ac4d93cc76b524c2c81d27850bfc342e68b91368aa7a1f7d69e34ce13adbb4')
+ depends_on('giflib')
+ depends_on('jpeg')
+ depends_on('libpng')
+ depends_on('libtiff')
depends_on('zlib')
+ depends_on('libwebp+libwebpmux+libwebpdemux')
+ depends_on('openjpeg')
def cmake_args(self):
- args = ['-DCMAKE_C_FLAGS=' + self.compiler.cc_pic_flag]
+ args = ['-DBUILD_SHARED_LIBS=ON']
+
return args
diff --git a/var/spack/repos/builtin/packages/less/package.py b/var/spack/repos/builtin/packages/less/package.py
index 2ed378ca06..2ed03ad843 100644
--- a/var/spack/repos/builtin/packages/less/package.py
+++ b/var/spack/repos/builtin/packages/less/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class Less(AutotoolsPackage):
has more capabilities. Less allows you to move backwards in the
file aswell as forwards."""
- homepage = "http://www.greenwoodsoftware.com/less/"
- url = "http://www.greenwoodsoftware.com/less/less-551.zip"
+ homepage = "https://www.greenwoodsoftware.com/less/"
+ url = "https://www.greenwoodsoftware.com/less/less-551.zip"
version('551', sha256='2630db16ef188e88b513b3cc24daa9a798c45643cc7da06e549c9c00cfd84244')
version('530', sha256='8c1652ba88a726314aa2616d1c896ca8fe9a30253a5a67bc21d444e79a6c6bc3')
diff --git a/var/spack/repos/builtin/packages/lesstif/package.py b/var/spack/repos/builtin/packages/lesstif/package.py
index ac82c996d2..676c54f910 100644
--- a/var/spack/repos/builtin/packages/lesstif/package.py
+++ b/var/spack/repos/builtin/packages/lesstif/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/leveldb/package.py b/var/spack/repos/builtin/packages/leveldb/package.py
index f4d5e57981..adc200e847 100644
--- a/var/spack/repos/builtin/packages/leveldb/package.py
+++ b/var/spack/repos/builtin/packages/leveldb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,7 @@ class Leveldb(CMakePackage):
git = "https://github.com/google/leveldb.git"
version('master', branch='master')
+ version('1.23', sha256='9a37f8a6174f09bd622bc723b55881dc541cd50747cbd08831c2a82d620f6d76')
version('1.22', sha256='55423cac9e3306f4a9502c738a001e4a339d1a38ffbee7572d4a07d5d63949b2')
version('1.20', sha256='f5abe8b5b209c2f36560b75f32ce61412f39a2922f7045ae764a2c23335b6664')
version('1.18', sha256='4aa1a7479bc567b95a59ac6fb79eba49f61884d6fd400f20b7af147d54c5cee5')
@@ -64,6 +65,11 @@ class Leveldb(CMakePackage):
else:
args.append('-DBUILD_SHARED_LIBS=OFF')
+ # The tarball is missing the benchmark and test submodules
+ if self.spec.satisfies('@1.23:'):
+ args.append('-DLEVELDB_BUILD_BENCHMARKS=OFF')
+ args.append('-DLEVELDB_BUILD_TESTS=OFF')
+
return args
@run_after('install')
diff --git a/var/spack/repos/builtin/packages/lftp/package.py b/var/spack/repos/builtin/packages/lftp/package.py
index b67b79bd5b..98b606736b 100644
--- a/var/spack/repos/builtin/packages/lftp/package.py
+++ b/var/spack/repos/builtin/packages/lftp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Lftp(AutotoolsPackage):
"""LFTP is a sophisticated file transfer program supporting a number
of network protocols (ftp, http, sftp, fish, torrent)."""
- homepage = "http://lftp.yar.ru/"
- url = "http://lftp.yar.ru/ftp/lftp-4.7.7.tar.gz"
+ homepage = "https://lftp.yar.ru/"
+ url = "https://lftp.yar.ru/ftp/lftp-4.7.7.tar.gz"
version('4.8.1', sha256='6117866215cd889dab30ff73292cd1d35fe0e12a9af5cd76d093500d07ab65a3')
version('4.7.7', sha256='7bce216050094a1146ed05bed8fe5b3518224764ffe98884a848d44dc76fff8f')
diff --git a/var/spack/repos/builtin/packages/lhapdf/package.py b/var/spack/repos/builtin/packages/lhapdf/package.py
index 932bb81279..f413b1379a 100644
--- a/var/spack/repos/builtin/packages/lhapdf/package.py
+++ b/var/spack/repos/builtin/packages/lhapdf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,8 @@ class Lhapdf(AutotoolsPackage):
homepage = "https://lhapdf.hepforge.org/"
url = "https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.2.3.tar.gz"
+ tags = ['hep']
+
version('6.3.0', sha256='ed4d8772b7e6be26d1a7682a13c87338d67821847aa1640d78d67d2cef8b9b5d')
version('6.2.3', sha256='d6e63addc56c57b6286dc43ffc56d901516f4779a93a0f1547e14b32cfd82dd1')
@@ -24,15 +26,9 @@ class Lhapdf(AutotoolsPackage):
depends_on('python', type=('build', 'run'))
depends_on('py-cython', type='build')
depends_on('py-setuptools', type='build')
- depends_on('boost', type='build')
- depends_on('yaml-cpp', type='build', when='@:6.1.5')
extends('python')
def configure_args(self):
- args = ['--with-boost=' + self.spec['boost'].prefix,
- 'FCFLAGS=-O3', 'CFLAGS=-O3', 'CXXFLAGS=-O3']
-
- if self.spec.satisfies('@:6.1.5'):
- args.append('--with-yaml-cpp=' + self.spec['yaml-cpp'].prefix)
+ args = ['FCFLAGS=-O3', 'CFLAGS=-O3', 'CXXFLAGS=-O3']
return args
diff --git a/var/spack/repos/builtin/packages/lhapdf5/package.py b/var/spack/repos/builtin/packages/lhapdf5/package.py
index 6506f9da76..ba3149c6bc 100644
--- a/var/spack/repos/builtin/packages/lhapdf5/package.py
+++ b/var/spack/repos/builtin/packages/lhapdf5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Lhapdf5(AutotoolsPackage):
"""LHAPDF is a general purpose Fortran 77/90 interpolator,
used for evaluating PDFs from discretised data files."""
- homepage = "http://lhapdf.hepforge.org/lhapdf5/"
- url = "http://lhapdf.hepforge.org/downloads?f=old/lhapdf-5.9.1.tar.gz"
+ homepage = "https://lhapdf.hepforge.org/lhapdf5/"
+ url = "https://lhapdf.hepforge.org/downloads?f=old/lhapdf-5.9.1.tar.gz"
version('5.9.1', sha256='86b9b046d7f25627ce2aab6847ef1c5534972f4bae18de98225080cf5086919c')
version('5.9.0', sha256='64b9018ce6102ae7b6a92c990ca6afa841fb992d87b1abf5756c3d04c4d46b9c')
diff --git a/var/spack/repos/builtin/packages/libabigail/package.py b/var/spack/repos/builtin/packages/libabigail/package.py
new file mode 100644
index 0000000000..48ea8664bd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libabigail/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 Libabigail(AutotoolsPackage):
+ """The ABI Generic Analysis and Instrumentation Library"""
+
+ homepage = "https://sourceware.org/libabigail"
+ url = "https://mirrors.kernel.org/sourceware/libabigail/libabigail-1.8.tar.gz"
+
+ version('1.8', sha256='1cbf260b894ccafc61b2673ba30c020c3f67dbba9dfa88dca3935dff661d665c')
+
+ variant('docs', default=False, description='build documentation')
+
+ depends_on('elfutils', type=('build', 'link'))
+ depends_on('libdwarf')
+ depends_on('libxml2')
+
+ # Libabigail won't generate it's bin without Python
+ depends_on('python@3.8:')
+
+ # Documentation dependencies
+ depends_on('doxygen', type="build", when="+docs")
+ depends_on('py-sphinx', type='build', when="+docs")
diff --git a/var/spack/repos/builtin/packages/libaec/package.py b/var/spack/repos/builtin/packages/libaec/package.py
index 3ea9833b62..38899129a9 100644
--- a/var/spack/repos/builtin/packages/libaec/package.py
+++ b/var/spack/repos/builtin/packages/libaec/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,6 +19,9 @@ class Libaec(CMakePackage):
provides('szip')
+ version('1.0.5', sha256='7bf7be828dc3caefcc968e98a59b997b6b3b06e4123137e9e0b0988dc1be3b2f')
+ version('1.0.4', sha256='7456adff4e817f94fc57a3eca824db1c203770ffb7a9253c435093ac5e239e31')
+ version('1.0.3', sha256='c28b340b20dcc0ad352970143e01718bd68dd5ef2a07a971736368805972f562')
version('1.0.2', sha256='b9e5bbbc8bf9cbfd3b9b4ce38b3311f2c88d3d99f476edb35590eb0006aa1fc5')
version('1.0.1', sha256='3668eb4ed36724441e488a7aadc197426afef4b1e8bd139af6d3e36023906459')
version('1.0.0', sha256='849f08b08ddaaffe543d06d0ced5e4ee3e526b13a67c5f422d126b1c9cf1b546')
diff --git a/var/spack/repos/builtin/packages/libaio/package.py b/var/spack/repos/builtin/packages/libaio/package.py
index ca857f2f16..ceb6f8cb02 100644
--- a/var/spack/repos/builtin/packages/libaio/package.py
+++ b/var/spack/repos/builtin/packages/libaio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libao/package.py b/var/spack/repos/builtin/packages/libao/package.py
new file mode 100644
index 0000000000..4d8ed4a1cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libao/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 Libao(AutotoolsPackage):
+ """A Cross-platform Audio Library."""
+
+ homepage = "https://github.com/xiph/libao/"
+ url = "https://github.com/xiph/libao/archive/1.2.2.tar.gz"
+
+ version('1.2.2', sha256='df8a6d0e238feeccb26a783e778716fb41a801536fe7b6fce068e313c0e2bf4d')
+ version('1.2.0', sha256='5ec2d15ee39f218e93a87f5cc8508aaebf5c8b544f42488dcb2b504d97392c99')
+ version('1.1.0', sha256='69edc39fa2759133edfcdee0ec47559067a1a8e7cd718db0eb3c82ca4254aa6b')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('perl')
diff --git a/var/spack/repos/builtin/packages/libapplewm/package.py b/var/spack/repos/builtin/packages/libapplewm/package.py
index b795fafe05..87de869f01 100644
--- a/var/spack/repos/builtin/packages/libapplewm/package.py
+++ b/var/spack/repos/builtin/packages/libapplewm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Libapplewm(AutotoolsPackage, XorgPackage):
extension. This extension allows X window managers to better interact with
the Mac OS X Aqua user interface when running X11 in a rootless mode."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libAppleWM"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libAppleWM"
xorg_mirror_path = "lib/libAppleWM-1.4.1.tar.gz"
version('1.4.1', sha256='d7fb098d65ad4d840f60e5c92de7f58f1725bd70d0d132755ea453462fd50049')
@@ -19,8 +19,8 @@ class Libapplewm(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxext')
- depends_on('xextproto', type='build')
- depends_on('applewmproto@1.4:', type='build')
+ depends_on('xextproto')
+ depends_on('applewmproto@1.4:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libapreq2/package.py b/var/spack/repos/builtin/packages/libapreq2/package.py
new file mode 100644
index 0000000000..f8ffde6ab2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libapreq2/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Libapreq2(AutotoolsPackage):
+ """httpd-apreq is subproject of the Apache HTTP Server Project
+ whose committers develop and maintain the libapreq C library
+ and its language bindings for Perl (contributions for additional
+ language bindings are most welcome)."""
+
+ homepage = "https://github.com/gitpan/libapreq2"
+ url = "https://github.com/gitpan/libapreq2/archive/gitpan_version/2.13.tar.gz"
+
+ version('2.13', sha256='477ce8207e89869e1e4520286697a56d4bd6af348899849ecef43c88bf0872d1')
+ version('2.12', sha256='75cc1daa60e781270178c8f9fbe9c68231a7bc96bcc5c7a970cfce75d784b568')
+ version('2.08', sha256='9f491588957415ebe0decdf6758fcb5c0d3eaf05a573bdd51de499ae111ffc53')
+
+ depends_on('apr')
+ depends_on('apr-util')
+ depends_on('httpd')
+ depends_on('perl', type='build')
diff --git a/var/spack/repos/builtin/packages/libarchive/package.py b/var/spack/repos/builtin/packages/libarchive/package.py
index 1e0a09c959..b9eca56b97 100644
--- a/var/spack/repos/builtin/packages/libarchive/package.py
+++ b/var/spack/repos/builtin/packages/libarchive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,12 @@ class Libarchive(AutotoolsPackage):
"""libarchive: C library and command-line tools for reading and
writing tar, cpio, zip, ISO, and other archive formats."""
- homepage = "http://www.libarchive.org"
- url = "http://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz"
+ homepage = "https://www.libarchive.org"
+ url = "https://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz"
+ maintainers = ['haampie']
+ version('3.5.2', sha256='5f245bd5176bc5f67428eb0aa497e09979264a153a074d35416521a5b8e86189')
+ version('3.5.1', sha256='9015d109ec00bb9ae1a384b172bf2fc1dff41e2c66e5a9eeddf933af9db37f5a')
version('3.4.1', sha256='fcf87f3ad8db2e4f74f32526dee62dd1fb9894782b0a503a89c9d7a70a235191')
version('3.3.2', sha256='ed2dbd6954792b2c054ccf8ec4b330a54b85904a80cef477a1c74643ddafa0ce')
version('3.2.1', sha256='72ee1a4e3fd534525f13a0ba1aa7b05b203d186e0c6072a8a4738649d0b3cfd2')
@@ -20,15 +23,43 @@ class Libarchive(AutotoolsPackage):
version('3.1.1', sha256='4968f9a3f2405ec7e07d5f6e78b36f21bceee6196df0a795165f89774bbbc6d8')
version('3.1.0', sha256='64b15dfa623b323da8fc9c238b5bca962ec3b38dcdfd2ed86f5f509e578a3524')
- depends_on('zlib')
- depends_on('bzip2')
- depends_on('lz4')
- depends_on('xz')
- depends_on('lzo')
- depends_on('nettle')
- depends_on('openssl')
- depends_on('libxml2')
- depends_on('expat')
+ variant('libs', default='static,shared', values=('static', 'shared'),
+ multi=True, description='What libraries to build')
+
+ # TODO: BLAKE2 is missing
+ variant('compression', default='bz2lib,lz4,lzo2,lzma,zlib,zstd', values=('bz2lib', 'lz4', 'lzo2', 'lzma', 'zlib', 'zstd'), multi=True, description='Supported compression')
+ variant('xar', default='libxml2', values=('libxml2', 'expat'), description='What library to use for xar support')
+ variant('crypto', default='mbedtls', values=('mbedtls', 'nettle', 'openssl'), description='What crypto library to use for mtree and xar hashes')
+ variant('programs', values=any_combination_of('bsdtar', 'bsdcpio', 'bsdcat'), description='What executables to build')
+ variant('iconv', default=True, description='Support iconv')
+
+ depends_on('bzip2', when='compression=bz2lib')
+ depends_on('lz4', when='compression=lz4')
+ depends_on('lzo', when='compression=lzo2')
+ depends_on('xz', when='compression=lzma')
+ depends_on('zlib', when='compression=zlib')
+ depends_on('zstd', when='compression=zstd')
+
+ depends_on('nettle', when='crypto=nettle')
+ depends_on('openssl', when='crypto=openssl')
+ depends_on('mbedtls@2:2.999 +pic', when='crypto=mbedtls')
+
+ depends_on('libxml2', when='xar=libxml2')
+ depends_on('expat', when='xar=expat')
+
+ depends_on('libiconv', when='+iconv')
+
+ conflicts('crypto=mbedtls', when='@:3.4.1', msg="mbed TLS is only supported from libarchive 3.4.2")
# NOTE: `make check` is known to fail with the Intel compilers
# The build test suite cannot be built with Intel
+
+ def configure_args(self):
+ args = ['--without-libb2']
+ args += self.with_or_without('compression')
+ args += self.with_or_without('crypto')
+ args += self.with_or_without('iconv')
+ args += self.with_or_without('xar')
+ args += self.enable_or_disable('programs')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/libasr/package.py b/var/spack/repos/builtin/packages/libasr/package.py
new file mode 100644
index 0000000000..2877b58c42
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libasr/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2021 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 Libasr(AutotoolsPackage):
+ """libasr is a free, simple and portable asynchronous resolver library."""
+
+ homepage = "https://github.com/OpenSMTPD/libasr"
+ url = "https://github.com/OpenSMTPD/libasr/releases/download/1.0.4/libasr-1.0.4.tar.gz"
+
+ version('1.0.4', sha256='19fb6bed10d15c9775c8d008cd1130155917ae4e801c729fe85e6d88a545dab4')
+ version('1.0.3', sha256='9cd88e0172e6d426438875e09229d1d473d56db546d02b630f9dd14db226d68d')
diff --git a/var/spack/repos/builtin/packages/libassuan/package.py b/var/spack/repos/builtin/packages/libassuan/package.py
index e8ccc861c5..4baf3ffa01 100644
--- a/var/spack/repos/builtin/packages/libassuan/package.py
+++ b/var/spack/repos/builtin/packages/libassuan/package.py
@@ -1,18 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Libassuan(AutotoolsPackage):
"""Libassuan is a small library implementing the so-called Assuan
- protocol."""
+ protocol.
+ """
homepage = "https://gnupg.org/software/libassuan/index.html"
url = "https://gnupg.org/ftp/gcrypt/libassuan/libassuan-2.4.5.tar.bz2"
+ maintainers = ['alalazo']
+
+ version('2.5.5', sha256='8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4')
+ version('2.5.4', sha256='c080ee96b3bd519edd696cfcebdecf19a3952189178db9887be713ccbcb5fbf0')
version('2.5.3', sha256='91bcb0403866b4e7c4bc1cc52ed4c364a9b5414b3994f718c70303f7f765e702')
version('2.4.5', sha256='fbfea5d1dbcdee34f2597b0afb3d8bb4eda96c924a1e01b01c2acde68b81625f')
version('2.4.3', sha256='22843a3bdb256f59be49842abf24da76700354293a066d82ade8134bb5aa2b71')
@@ -21,5 +24,7 @@ class Libassuan(AutotoolsPackage):
def configure_args(self):
return [
+ '--enable-static',
+ '--enable-shared',
'--with-libgpg-error-prefix=' + self.spec['libgpg-error'].prefix
]
diff --git a/var/spack/repos/builtin/packages/libatasmart/package.py b/var/spack/repos/builtin/packages/libatasmart/package.py
index ae7d2ccb0c..ce6ed31b75 100644
--- a/var/spack/repos/builtin/packages/libatasmart/package.py
+++ b/var/spack/repos/builtin/packages/libatasmart/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Libatasmart(AutotoolsPackage):
"""A small and lightweight parser library for ATA S.M.A.R.T. hard disk
health monitoring."""
- homepage = "http://git.0pointer.de/?p=libatasmart.git"
+ homepage = "https://github.com/ebe-forks/libatasmart"
url = "https://github.com/ebe-forks/libatasmart/archive/v0.19.tar.gz"
version('0.19', sha256='10bb5321a254e28bd60fd297f284bfc81cce4fde92e150187640e62ec667e5fb')
diff --git a/var/spack/repos/builtin/packages/libatomic-ops/package.py b/var/spack/repos/builtin/packages/libatomic-ops/package.py
index 9bcfe2d754..47bb378b6e 100644
--- a/var/spack/repos/builtin/packages/libatomic-ops/package.py
+++ b/var/spack/repos/builtin/packages/libatomic-ops/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libbacktrace/package.py b/var/spack/repos/builtin/packages/libbacktrace/package.py
index 64e5832114..cf10357278 100644
--- a/var/spack/repos/builtin/packages/libbacktrace/package.py
+++ b/var/spack/repos/builtin/packages/libbacktrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libbeagle/package.py b/var/spack/repos/builtin/packages/libbeagle/package.py
index 871dc5d2c6..50b0fd4f34 100644
--- a/var/spack/repos/builtin/packages/libbeagle/package.py
+++ b/var/spack/repos/builtin/packages/libbeagle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libbeato/package.py b/var/spack/repos/builtin/packages/libbeato/package.py
index 2f59240a09..eaae48cf6c 100644
--- a/var/spack/repos/builtin/packages/libbeato/package.py
+++ b/var/spack/repos/builtin/packages/libbeato/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libbinio/package.py b/var/spack/repos/builtin/packages/libbinio/package.py
index 75c846fdbf..550de16abb 100644
--- a/var/spack/repos/builtin/packages/libbinio/package.py
+++ b/var/spack/repos/builtin/packages/libbinio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libblastrampoline/package.py b/var/spack/repos/builtin/packages/libblastrampoline/package.py
new file mode 100644
index 0000000000..5559be02fc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libblastrampoline/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 Libblastrampoline(MakefilePackage):
+ """Using PLT trampolines to provide a BLAS and LAPACK demuxing library."""
+
+ homepage = "https://github.com/staticfloat/libblastrampoline"
+ git = "https://github.com/staticfloat/libblastrampoline.git"
+
+ version('3.0.4', commit='23de7a09bf354fe6f655c457bab5bf47fdd2486d')
+ version('3.0.3', commit='7b502b7bb5d4663df4a928d0f605924cd1a35c1a')
+ version('3.0.2', commit='5882fdf6395afb1ed01a8a10db94b7b3cbd39e16')
+ version('3.0.1', commit='e132e645db28bec024be9410467a6c7a2d0937ae')
+ version('3.0.0', commit='7bb259a69e5bad0adb55171b2bee164a30ce2e91')
+ version('2.2.0', commit='45f4a20ffdba5d368db66d71885312f5f73c2dc7')
+
+ build_directory = 'src'
+
+ def install(self, spec, prefix):
+ with working_dir(self.build_directory):
+ make('prefix={0}'.format(prefix), 'install')
diff --git a/var/spack/repos/builtin/packages/libbsd/package.py b/var/spack/repos/builtin/packages/libbsd/package.py
index 3df5860347..5c834d3388 100644
--- a/var/spack/repos/builtin/packages/libbsd/package.py
+++ b/var/spack/repos/builtin/packages/libbsd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,6 +19,10 @@ class Libbsd(AutotoolsPackage):
"https://mirrors.dotsrc.org/pub/mirrors/exherbo/libbsd-0.9.1.tar.xz"
]
+ version('0.11.3', sha256='ff95cf8184151dacae4247832f8d4ea8800fa127dbd15033ecfe839f285b42a1')
+ version('0.11.2', sha256='9a7fbe60924d40ce4322a00b6f70be07b3704479b2bca1210dd1564924930ff5')
+ version('0.11.1', sha256='0d018e78f85d7d724740a28408f0bf346b7bbe5dc1c7256fb21e640e2a3d5205')
+ version('0.11.0', sha256='9043e24f5898eae6e0ce97bea4f2d15197e90f6e9b91d0c6a8d10fb1405fd562')
version('0.10.0', sha256='34b8adc726883d0e85b3118fa13605e179a62b31ba51f676136ecb2d0bc1a887')
version('0.9.1', sha256='56d835742327d69faccd16955a60b6dcf30684a8da518c4eca0ac713b9e0a7a4')
version('0.9.0', sha256='8a469afd1bab340992cf99e1e6b7ae4f4c54882d663d8a2c5ea52250617afb01')
@@ -26,12 +30,14 @@ class Libbsd(AutotoolsPackage):
version('0.8.6', sha256='467fbf9df1f49af11f7f686691057c8c0a7613ae5a870577bef9155de39f9687')
patch('cdefs.h.patch', when='@0.8.6 %gcc@:4')
- patch('local-elf.h.patch', when='%intel')
+ patch('local-elf.h.patch', when='@:0.10 %intel')
patch('nvhpc.patch', when='%nvhpc')
# https://gitlab.freedesktop.org/libbsd/libbsd/issues/1
conflicts('platform=darwin')
+ depends_on('libmd', when='@0.11:')
+
def patch(self):
# Remove flags not recognized by the NVIDIA compiler
if self.spec.satisfies('%pgi') or self.spec.satisfies('%nvhpc'):
diff --git a/var/spack/repos/builtin/packages/libbson/package.py b/var/spack/repos/builtin/packages/libbson/package.py
index ad33b5a769..99da85f08a 100644
--- a/var/spack/repos/builtin/packages/libbson/package.py
+++ b/var/spack/repos/builtin/packages/libbson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,8 @@ class Libbson(Package):
maintainers = ['michaelkuhn']
+ version('1.17.6', sha256='8644deec7ae585e8d12566978f2017181e883f303a028b5b3ccb83c91248b150')
+ version('1.17.5', sha256='4b15b7e73a8b0621493e4368dc2de8a74af381823ae8f391da3d75d227ba16be')
version('1.17.0', sha256='90aa23a3f92be0a076fe0b903b68276a7973d4e472929943069f503d5ab50cb9')
version('1.16.2', sha256='0a722180e5b5c86c415b9256d753b2d5552901dc5d95c9f022072c3cd336887e')
version('1.9.5', sha256='6bb51b863a4641d6d7729e4b55df8f4389ed534c34eb3a1cda906a53df11072c')
diff --git a/var/spack/repos/builtin/packages/libbytesize/package.py b/var/spack/repos/builtin/packages/libbytesize/package.py
index e4fcdb986a..1a45465a88 100644
--- a/var/spack/repos/builtin/packages/libbytesize/package.py
+++ b/var/spack/repos/builtin/packages/libbytesize/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libc/package.py b/var/spack/repos/builtin/packages/libc/package.py
index e328c40ea1..8ee0c11f39 100644
--- a/var/spack/repos/builtin/packages/libc/package.py
+++ b/var/spack/repos/builtin/packages/libc/package.py
@@ -1,9 +1,9 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 llnl.util.filesystem import LibraryList
class Libc(Package):
@@ -20,3 +20,7 @@ class Libc(Package):
provides('iconv', when='+iconv')
provides('rpc', when='+rpc')
+
+ @property
+ def libs(self):
+ return LibraryList([])
diff --git a/var/spack/repos/builtin/packages/libcanberra/package.py b/var/spack/repos/builtin/packages/libcanberra/package.py
index 0d54ba178d..eb521bee9a 100644
--- a/var/spack/repos/builtin/packages/libcanberra/package.py
+++ b/var/spack/repos/builtin/packages/libcanberra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class Libcanberra(AutotoolsPackage):
Name Specifications, for generating event sounds on free desktops,
such as GNOME."""
- homepage = "http://0pointer.de/lennart/projects/libcanberra/"
- url = "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz"
+ homepage = "https://0pointer.de/lennart/projects/libcanberra/"
+ url = "https://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz"
version('0.30', sha256='c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72')
diff --git a/var/spack/repos/builtin/packages/libcap-ng/package.py b/var/spack/repos/builtin/packages/libcap-ng/package.py
index e5dc1ca1d5..d1e6182c92 100644
--- a/var/spack/repos/builtin/packages/libcap-ng/package.py
+++ b/var/spack/repos/builtin/packages/libcap-ng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,4 +21,25 @@ class LibcapNg(AutotoolsPackage):
depends_on('libtool', type='build')
depends_on('m4', type='build')
depends_on('attr', type='build')
- depends_on('python', type=('build', 'run'))
+ depends_on('swig', type='build')
+ depends_on('python@2.7:', type=('build', 'link', 'run'), when='+python')
+
+ variant('python', default=True, description='Enable python')
+
+ extends('python', when='+python')
+
+ def setup_build_environment(self, env):
+ if self.spec.satisfies('+python'):
+ env.set('PYTHON', self.spec['python'].command.path)
+
+ def configure_args(self):
+ args = []
+ spec = self.spec
+ if spec.satisfies('+python'):
+ if spec.satisfies('^python@3:'):
+ args.extend(['--without-python', '--with-python3'])
+ else:
+ args.extend(['--with-python', '--without-python3'])
+ else:
+ args.extend(['--without-python', '--without-python3'])
+ return args
diff --git a/var/spack/repos/builtin/packages/libcap/package.py b/var/spack/repos/builtin/packages/libcap/package.py
index 443cb0682b..33a0b4093d 100644
--- a/var/spack/repos/builtin/packages/libcap/package.py
+++ b/var/spack/repos/builtin/packages/libcap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libcatalyst/package.py b/var/spack/repos/builtin/packages/libcatalyst/package.py
new file mode 100644
index 0000000000..10207d40c1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libcatalyst/package.py
@@ -0,0 +1,40 @@
+# Copyright 2013-2021 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 Libcatalyst(CMakePackage):
+ """Catalyst is an API specification developed for simulations (and other
+ scientific data producers) to analyze and visualize data in situ."""
+
+ homepage = 'https://gitlab.kitware.com/paraview/catalyst'
+ url = "https://gitlab.kitware.com/paraview/catalyst/-/archive/{0}/catalyst-{0}.tar.bz2"
+
+ maintainers = ['mathstuf']
+
+ # master as of 2021-05-12
+ version('8456ccd6015142b5a7705f79471361d4f5644fa7', sha256='5a01f12b271d9d9e9b89f31d45a5f4b8426904483639d38754893adfd3547bab')
+
+ variant('mpi', default=False, description='Enable MPI support')
+ variant('python3', default=False, description='Enable Python3 support')
+
+ depends_on('mpi', when='+mpi')
+
+ # TODO: catalyst doesn't support an external conduit
+ # depends_on('conduit')
+
+ def url_for_version(self, version):
+ _urlfmt = self.url
+ return _urlfmt.format(version)
+
+ def cmake_args(self):
+ """Populate cmake arguments for libcatalyst."""
+ args = [
+ '-DCATALYST_BUILD_TESTING=OFF',
+ self.define_from_variant('CATALYST_USE_MPI', 'mpi')
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/libceed/libceed-v0.8-hip.patch b/var/spack/repos/builtin/packages/libceed/libceed-v0.8-hip.patch
new file mode 100644
index 0000000000..c947e12efe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libceed/libceed-v0.8-hip.patch
@@ -0,0 +1,14 @@
+diff --git a/Makefile b/Makefile
+index 4f1737ee..3f1811f2 100644
+--- a/Makefile
++++ b/Makefile
+@@ -403,6 +403,9 @@ ifneq ($(HIP_LIB_DIR),)
+ CPPFLAGS += $(subst =,,$(shell $(HIP_DIR)/bin/hipconfig -C))
+ endif
+ $(libceeds) : CPPFLAGS += -I$(HIP_DIR)/include
++ ifneq ($(HIPBLAS_DIR),)
++ PKG_LIBS += -L$(HIPBLAS_DIR)/lib
++ endif
+ PKG_LIBS += -L$(abspath $(HIP_LIB_DIR)) -lamdhip64 -lhipblas
+ LIBCEED_CONTAINS_CXX = 1
+ libceed.c += interface/ceed-hip.c
diff --git a/var/spack/repos/builtin/packages/libceed/package.py b/var/spack/repos/builtin/packages/libceed/package.py
index c4f3cbd2b5..9e7ab4c45e 100644
--- a/var/spack/repos/builtin/packages/libceed/package.py
+++ b/var/spack/repos/builtin/packages/libceed/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
from spack import *
-class Libceed(Package):
+class Libceed(Package, CudaPackage, ROCmPackage):
"""The CEED API Library: Code for Efficient Extensible Discretizations."""
homepage = "https://github.com/CEED/libCEED"
@@ -15,6 +15,7 @@ class Libceed(Package):
maintainers = ['jedbrown', 'v-dobrev', 'tzanio']
version('develop', branch='main')
+ version('0.8', tag='v0.8')
version('0.7', tag='v0.7')
version('0.6', commit='c7f533e01e2f3f6720fbf37aac2af2ffed225f60') # tag v0.6 + small portability fixes
version('0.5', tag='v0.5')
@@ -22,20 +23,19 @@ class Libceed(Package):
version('0.2', tag='v0.2')
version('0.1', tag='v0.1')
- variant('occa', default=True, description='Enable OCCA backends')
- variant('cuda', default=False, description='Enable CUDA support')
- variant('hip', default=False, description='Enable HIP support')
+ variant('occa', default=False, description='Enable OCCA backends')
variant('debug', default=False, description='Enable debug build')
variant('libxsmm', default=False, description='Enable LIBXSMM backend')
variant('magma', default=False, description='Enable MAGMA backend')
conflicts('+libxsmm', when='@:0.2')
conflicts('+magma', when='@:0.5')
- conflicts('+hip', when='@:0.6')
+ conflicts('+rocm', when='@:0.6')
depends_on('cuda', when='+cuda')
- depends_on('hip@3.8.0', when='@0.7:0.7.99+hip')
- depends_on('hip@3.8.0:', when='@0.8:+hip')
+ depends_on('hip@3.8.0', when='@0.7:0.7.99+rocm')
+ depends_on('hip@3.8.0:', when='@0.8:+rocm')
+ depends_on('hipblas@3.8.0:', when='@0.8:+rocm')
depends_on('occa@develop', when='@develop+occa')
depends_on('occa@1.1.0', when='@0.7:+occa')
@@ -48,6 +48,7 @@ class Libceed(Package):
depends_on('magma', when='+magma')
+ patch('libceed-v0.8-hip.patch', when='@0.8+rocm')
patch('pkgconfig-version-0.4.diff', when='@0.4')
# occa: do not occaFree kernels
@@ -77,6 +78,8 @@ class Libceed(Package):
opt = '-O3 -g -ffp-contract=fast'
if compiler.version >= ver(4.9):
opt += ' -fopenmp-simd'
+ if self.spec.target.family in ['x86_64', 'aarch64']:
+ opt += ' -march=native'
elif compiler.name == 'apple-clang':
opt = '-O3 -g -march=native -ffp-contract=fast'
if compiler.version >= ver(10):
@@ -87,11 +90,19 @@ class Libceed(Package):
opt += ' -fopenmp-simd'
elif compiler.name in ['xl', 'xl_r']:
opt = '-O -g -qsimd=auto'
+ elif compiler.name == 'intel':
+ opt = '-O3 -g'
+ makeopts += ['CC_VENDOR=icc']
else:
opt = '-O -g'
+ # Note: spack will inject additional target-specific flags through
+ # the compiler wrapper.
makeopts += ['OPT=%s' % opt]
- if 'avx' in self.spec.target:
+ if spec.satisfies('@0.7') and compiler.name in ['xl', 'xl_r']:
+ makeopts += ['CXXFLAGS.XL=-qpic -std=c++11 -MMD']
+
+ if spec.satisfies('@:0.7') and 'avx' in self.spec.target:
makeopts.append('AVX=1')
if '+cuda' in spec:
@@ -105,8 +116,10 @@ class Libceed(Package):
# Disable CUDA auto-detection:
makeopts += ['CUDA_DIR=/disable-cuda']
- if '+hip' in spec:
+ if '+rocm' in spec:
makeopts += ['HIP_DIR=%s' % spec['hip'].prefix]
+ if spec.satisfies('@0.8'):
+ makeopts += ['HIPBLAS_DIR=%s' % spec['hipblas'].prefix]
if '+libxsmm' in spec:
makeopts += ['XSMM_DIR=%s' % spec['libxsmm'].prefix]
diff --git a/var/spack/repos/builtin/packages/libcerf/package.py b/var/spack/repos/builtin/packages/libcerf/package.py
index a5c00dabaf..66afa4ad43 100644
--- a/var/spack/repos/builtin/packages/libcerf/package.py
+++ b/var/spack/repos/builtin/packages/libcerf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Libcerf(AutotoolsPackage, SourceforgePackage):
integral and Voigt's convolution of a Gaussian and a Lorentzian
"""
- homepage = "http://sourceforge.net/projects/libcerf"
+ homepage = "https://sourceforge.net/projects/libcerf"
sourceforge_mirror_path = "libcerf/libcerf-1.3.tgz"
version('1.3', sha256='d7059e923d3f370c89fb4d19ed4f827d381bc3f0e36da5595a04aeaaf3e6a859')
diff --git a/var/spack/repos/builtin/packages/libcgroup/package.py b/var/spack/repos/builtin/packages/libcgroup/package.py
index 797e10d7a4..95d8b2e2fb 100644
--- a/var/spack/repos/builtin/packages/libcgroup/package.py
+++ b/var/spack/repos/builtin/packages/libcgroup/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libcint/package.py b/var/spack/repos/builtin/packages/libcint/package.py
index 9696947cdb..946fe97c1d 100644
--- a/var/spack/repos/builtin/packages/libcint/package.py
+++ b/var/spack/repos/builtin/packages/libcint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libcircle/CrayPE_configure-ac.patch b/var/spack/repos/builtin/packages/libcircle/CrayPE_configure-ac.patch
new file mode 100644
index 0000000000..40a89f80ba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libcircle/CrayPE_configure-ac.patch
@@ -0,0 +1,17 @@
+diff --git a/configure.ac b/configure.ac_new
+index 49fcc1c..f0d3d2a 100644
+--- a/configure.ac
++++ b/configure.ac_new
+@@ -59,9 +59,9 @@ AC_SUBST([LIBCIRCLE_SO_VERSION], [3:1:1])
+ AC_SUBST([LIBCIRCLE_API_VERSION], [0.3.0])
+
+ # Check for MPI
+-LX_FIND_MPI
+-test "x$have_C_mpi" = xyes || \
+- AC_MSG_ERROR([You should check to see if MPI is setup properly.])
++#LX_FIND_MPI
++#test "x$have_C_mpi" = xyes || \
++# AC_MSG_ERROR([You should check to see if MPI is setup properly.])
+ AM_CONDITIONAL(HAVE_MPI, [test "x$have_C_mpi" = xyes])
+
+ echo
diff --git a/var/spack/repos/builtin/packages/libcircle/package.py b/var/spack/repos/builtin/packages/libcircle/package.py
index 749483678c..0e9bc3437c 100644
--- a/var/spack/repos/builtin/packages/libcircle/package.py
+++ b/var/spack/repos/builtin/packages/libcircle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,6 +20,16 @@ class Libcircle(AutotoolsPackage):
depends_on('mpi')
depends_on('pkgconfig', type='build')
+ depends_on('libpciaccess', type='link')
+ depends_on('autoconf', when='%cce', type='build')
+ depends_on('automake', when='%cce', type='build')
+ depends_on('libtool', when='%cce', type='build')
+
+ patch('CrayPE_configure-ac.patch', when='%cce')
+
+ @property
+ def force_autoreconf(self):
+ return self.spec.satisfies('%cce')
@when('@master')
def autoreconf(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/libconfig/package.py b/var/spack/repos/builtin/packages/libconfig/package.py
index abed039400..b09cf0e200 100644
--- a/var/spack/repos/builtin/packages/libconfig/package.py
+++ b/var/spack/repos/builtin/packages/libconfig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libconfig(AutotoolsPackage):
"""C/C++ Configuration File Library"""
- homepage = "http://www.hyperrealm.com/libconfig/"
+ homepage = "https://www.hyperrealm.com/libconfig/"
url = "https://github.com/hyperrealm/libconfig/archive/v1.5.tar.gz"
force_autoreconf = True
@@ -22,3 +22,4 @@ class Libconfig(AutotoolsPackage):
depends_on('autoconf', type=('build'))
depends_on('automake', type=('build'))
depends_on('libtool', type=('build'))
+ depends_on('texinfo', type='build')
diff --git a/var/spack/repos/builtin/packages/libconfuse/package.py b/var/spack/repos/builtin/packages/libconfuse/package.py
index eedbaec83a..37ce54150d 100644
--- a/var/spack/repos/builtin/packages/libconfuse/package.py
+++ b/var/spack/repos/builtin/packages/libconfuse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,3 +19,9 @@ class Libconfuse(AutotoolsPackage):
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
+ depends_on('gettext', type='build')
+ depends_on('flex', type='build')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./autogen.sh')
diff --git a/var/spack/repos/builtin/packages/libcroco/package.py b/var/spack/repos/builtin/packages/libcroco/package.py
index 254d7973b7..788ae665e2 100644
--- a/var/spack/repos/builtin/packages/libcroco/package.py
+++ b/var/spack/repos/builtin/packages/libcroco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,15 @@ class Libcroco(AutotoolsPackage):
homepage = "https://developer.gnome.org/libcroco"
url = "http://ftp.gnome.org/pub/gnome/sources/libcroco/0.6/libcroco-0.6.12.tar.xz"
+ version('0.6.13', sha256='767ec234ae7aa684695b3a735548224888132e063f92db585759b422570621d4')
version('0.6.12', sha256='ddc4b5546c9fb4280a5017e2707fbd4839034ed1aba5b7d4372212f34f84f860')
depends_on('glib')
depends_on('libxml2')
+ depends_on('gtk-doc', type='build')
depends_on('pkgconfig', type='build')
+
+ def configure_args(self):
+ # macOS ld does not support this flag
+ # https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/libcroco.rb
+ return ['--disable-Bsymbolic']
diff --git a/var/spack/repos/builtin/packages/libctl/package.py b/var/spack/repos/builtin/packages/libctl/package.py
index 8ed0bf9c56..24c4183cdd 100644
--- a/var/spack/repos/builtin/packages/libctl/package.py
+++ b/var/spack/repos/builtin/packages/libctl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libcudf/package.py b/var/spack/repos/builtin/packages/libcudf/package.py
index a25d8e0d32..2fa60e36df 100644
--- a/var/spack/repos/builtin/packages/libcudf/package.py
+++ b/var/spack/repos/builtin/packages/libcudf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libcuml/package.py b/var/spack/repos/builtin/packages/libcuml/package.py
index 1645896546..4a1ce60689 100644
--- a/var/spack/repos/builtin/packages/libcuml/package.py
+++ b/var/spack/repos/builtin/packages/libcuml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libcumlprims/package.py b/var/spack/repos/builtin/packages/libcumlprims/package.py
index 2373c0e8d9..07bb1e6348 100644
--- a/var/spack/repos/builtin/packages/libcumlprims/package.py
+++ b/var/spack/repos/builtin/packages/libcumlprims/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libcxxwrap-julia/package.py b/var/spack/repos/builtin/packages/libcxxwrap-julia/package.py
new file mode 100644
index 0000000000..ee4caebe13
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libcxxwrap-julia/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 LibcxxwrapJulia(CMakePackage):
+ """This is the C++ library component of the CxxWrap.jl package, distributed as a
+regular CMake library for use in other C++ projects."""
+
+ homepage = "https://github.com/JuliaInterop/libcxxwrap-julia"
+ url = "https://github.com/JuliaInterop/libcxxwrap-julia/archive/refs/tags/v0.8.3.tar.gz"
+ git = "https://github.com/JuliaInterop/libcxxwrap-julia.git"
+
+ maintainers = ['eloop']
+
+ version('master', branch='master')
+ version('0.8.3', sha256='b0421d11bdee5ce8af4922de6dfe3b0e5d69b07bb52894e3a22a477bbd27ee9e')
+ version('0.8.2', sha256='f8b171def3d61904ba8f9a9052a405c25afbfb9a3c5af3dd30bc36a0184ed539')
+
+ depends_on('julia')
diff --git a/var/spack/repos/builtin/packages/libcyaml/package.py b/var/spack/repos/builtin/packages/libcyaml/package.py
new file mode 100644
index 0000000000..dbb0f784cd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libcyaml/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 Libcyaml(MakefilePackage):
+ """LibCYAML is a C library for reading and writing structured YAML
+ documents. It is written in ISO C11 and licensed under the ISC licence."""
+
+ homepage = "https://github.com/tlsa/libcyaml"
+ url = "https://github.com/tlsa/libcyaml/archive/v1.1.0.tar.gz"
+
+ version('1.1.0', sha256='37a00ed8ec206b60a712acfd44196bef063b8f02e376d8e86f61a7007a81daea')
+
+ depends_on('libyaml')
+
+ def build(self, spec, prefix):
+ make('VARIANT=release')
+
+ def install(self, spec, prefix):
+ make('install', 'VARIANT=release', 'PREFIX={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/libdaemon/package.py b/var/spack/repos/builtin/packages/libdaemon/package.py
index 667037cb8b..de04581fc6 100644
--- a/var/spack/repos/builtin/packages/libdaemon/package.py
+++ b/var/spack/repos/builtin/packages/libdaemon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Libdaemon(AutotoolsPackage):
"""libdaemon is a lightweight C library which eases the writing of
UNIX daemons."""
- homepage = "http://0pointer.de/lennart/projects/libdaemon/"
- url = "http://0pointer.de/lennart/projects/libdaemon/libdaemon-0.14.tar.gz"
+ homepage = "https://0pointer.de/lennart/projects/libdaemon/"
+ url = "https://0pointer.de/lennart/projects/libdaemon/libdaemon-0.14.tar.gz"
version('0.14', sha256='fd23eb5f6f986dcc7e708307355ba3289abe03cc381fc47a80bca4a50aa6b834')
version('0.13', sha256='bd949d459d2da54f1cdfbd1f4592e32541e8a195aca56fa7a8329ed79836d709')
diff --git a/var/spack/repos/builtin/packages/libdap4/package.py b/var/spack/repos/builtin/packages/libdap4/package.py
index f93c16cbbd..3df9aa245f 100644
--- a/var/spack/repos/builtin/packages/libdap4/package.py
+++ b/var/spack/repos/builtin/packages/libdap4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -30,7 +30,7 @@ class Libdap4(AutotoolsPackage):
depends_on('flex')
depends_on('curl')
depends_on('libxml2')
- depends_on('libuuid')
+ depends_on('uuid')
def configure_args(self):
# libxml2 exports ./include/libxml2/ instead of ./include/, which we
diff --git a/var/spack/repos/builtin/packages/libdatrie/package.py b/var/spack/repos/builtin/packages/libdatrie/package.py
index 35258168cc..6e772467ec 100644
--- a/var/spack/repos/builtin/packages/libdatrie/package.py
+++ b/var/spack/repos/builtin/packages/libdatrie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Libdatrie(AutotoolsPackage):
"""datrie is an implementation of double-array structure for representing
trie."""
- homepage = "http://linux.thai.net/projects/datrie"
+ homepage = "https://linux.thai.net/projects/datrie"
url = "https://github.com/tlwg/libdatrie/releases/download/v0.2.12/libdatrie-0.2.12.tar.xz"
version('0.2.12', sha256='452dcc4d3a96c01f80f7c291b42be11863cd1554ff78b93e110becce6e00b149')
diff --git a/var/spack/repos/builtin/packages/libdc1394/package.py b/var/spack/repos/builtin/packages/libdc1394/package.py
new file mode 100644
index 0000000000..59c24f47dd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libdc1394/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 Libdc1394(AutotoolsPackage):
+ """Library providing an API for IEEE 1394 cameras."""
+
+ homepage = "https://damien.douxchamps.net/ieee1394/libdc1394/"
+ url = "https://downloads.sourceforge.net/project/libdc1394/libdc1394-2/2.2.6/libdc1394-2.2.6.tar.gz"
+
+ maintainers = ['traversaro']
+
+ version('2.2.6', sha256='2b905fc9aa4eec6bdcf6a2ae5f5ba021232739f5be047dec8fe8dd6049c10fed')
+
+ depends_on('libusb')
+
+ def configure_args(self):
+ args = []
+ args.append('--disable-dependency-tracking')
+ args.append('--disable-examples')
+ args.append('--disable-sdltest')
+ return args
diff --git a/var/spack/repos/builtin/packages/libdeflate/package.py b/var/spack/repos/builtin/packages/libdeflate/package.py
new file mode 100644
index 0000000000..1af7e00630
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libdeflate/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 Libdeflate(MakefilePackage):
+ """Heavily optimized library for DEFLATE/zlib/gzip compression and decompression"""
+
+ homepage = "https://github.com/ebiggers/libdeflate"
+ url = "https://github.com/ebiggers/libdeflate/archive/v1.7.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('1.7', sha256='a5e6a0a9ab69f40f0f59332106532ca76918977a974e7004977a9498e3f11350')
+
+ depends_on('zlib')
+ depends_on('gzip')
+
+ def patch(self):
+ filter_file(r'\/usr\/local', self.prefix, 'Makefile')
diff --git a/var/spack/repos/builtin/packages/libdivsufsort/package.py b/var/spack/repos/builtin/packages/libdivsufsort/package.py
index 0dfdb9ea3f..5ad75d948c 100644
--- a/var/spack/repos/builtin/packages/libdivsufsort/package.py
+++ b/var/spack/repos/builtin/packages/libdivsufsort/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,3 +14,7 @@ class Libdivsufsort(CMakePackage):
url = "https://github.com/y-256/libdivsufsort/archive/2.0.1.tar.gz"
version('2.0.1', sha256='9164cb6044dcb6e430555721e3318d5a8f38871c2da9fd9256665746a69351e0')
+
+ def cmake_args(self):
+ args = ['-DBUILD_DIVSUFSORT64=ON']
+ return args
diff --git a/var/spack/repos/builtin/packages/libdmx/package.py b/var/spack/repos/builtin/packages/libdmx/package.py
index 852f313dd3..757b5aca61 100644
--- a/var/spack/repos/builtin/packages/libdmx/package.py
+++ b/var/spack/repos/builtin/packages/libdmx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Libdmx(AutotoolsPackage, XorgPackage):
"""libdmx - X Window System DMX (Distributed Multihead X) extension
library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libdmx"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libdmx"
xorg_mirror_path = "lib/libdmx-1.1.3.tar.gz"
version('1.1.3', sha256='c4b24d7e13e5a67ead7a18f0b4cc9b7b5363c9d04cd01b83b5122ff92b3b4996')
@@ -18,7 +18,7 @@ class Libdmx(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxext')
- depends_on('xextproto', type='build')
- depends_on('dmxproto@2.2.99.1:', type='build')
+ depends_on('xextproto')
+ depends_on('dmxproto@2.2.99.1:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libdrm/package.py b/var/spack/repos/builtin/packages/libdrm/package.py
index adc2964678..2d7a4133fb 100644
--- a/var/spack/repos/builtin/packages/libdrm/package.py
+++ b/var/spack/repos/builtin/packages/libdrm/package.py
@@ -1,17 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
class Libdrm(AutotoolsPackage):
"""A userspace library for accessing the DRM, direct rendering manager,
on Linux, BSD and other systems supporting the ioctl interface."""
- homepage = "http://dri.freedesktop.org/libdrm/"
+ homepage = "https://dri.freedesktop.org/libdrm/"
url = "https://dri.freedesktop.org/libdrm/libdrm-2.4.59.tar.gz"
version('2.4.100', sha256='6a5337c054c0c47bc16607a21efa2b622e08030be4101ef4a241c5eb05b6619b')
@@ -22,13 +21,16 @@ class Libdrm(AutotoolsPackage):
version('2.4.33', sha256='bd2a8fecf28616f2157ca33ede691c139cc294ed2d0c4244b62ca7d22e98e5a4')
depends_on('pkgconfig', type='build')
- depends_on('libpciaccess@0.10:', when=(sys.platform != 'darwin'))
+ depends_on('libpciaccess@0.10:')
depends_on('libpthread-stubs')
def configure_args(self):
args = []
args.append('--enable-static')
- args.append('LIBS=-lrt') # This fixes a bug with `make check`
+ if self.version <= Version('2.4.70'):
+ # Needed to fix build for spack/spack#1740, but breaks newer
+ # builds/compilers
+ args.append('LIBS=-lrt')
if self.spec.satisfies('%gcc@10.0.0:'):
args.append('CFLAGS=-fcommon')
return args
diff --git a/var/spack/repos/builtin/packages/libdwarf/package.py b/var/spack/repos/builtin/packages/libdwarf/package.py
index fa37f4e638..dd51b08e1a 100644
--- a/var/spack/repos/builtin/packages/libdwarf/package.py
+++ b/var/spack/repos/builtin/packages/libdwarf/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
import os
+import sys
+
+from spack import *
# Only build certain parts of dwarf because the other ones break.
dwarf_dirs = ['libdwarf', 'dwarfdump2']
@@ -23,8 +24,8 @@ class Libdwarf(Package):
respectively, not source) with every release of the SGI
MIPS/IRIX C compiler."""
- homepage = "http://www.prevanders.net/dwarf.html"
- url = "http://www.prevanders.net/libdwarf-20160507.tar.gz"
+ homepage = "https://www.prevanders.net/dwarf.html"
+ url = "https://www.prevanders.net/libdwarf-20160507.tar.gz"
list_url = homepage
version('20180129', sha256='8bd91b57064b0c14ade5a009d3a1ce819f1b6ec0e189fc876eb8f42a8720d8a6')
diff --git a/var/spack/repos/builtin/packages/libeatmydata/package.py b/var/spack/repos/builtin/packages/libeatmydata/package.py
index c339d8b85f..2b3f03cba5 100644
--- a/var/spack/repos/builtin/packages/libeatmydata/package.py
+++ b/var/spack/repos/builtin/packages/libeatmydata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libecpint/package.py b/var/spack/repos/builtin/packages/libecpint/package.py
new file mode 100644
index 0000000000..72598bc015
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libecpint/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 Libecpint(CMakePackage):
+ """A C++ library for the efficient evaluation of integrals over effective core
+ potentials.
+ """
+
+ homepage = "https://github.com/robashaw/libecpint"
+ url = "https://github.com/robashaw/libecpint/archive/v1.0.4.tar.gz"
+ git = "https://github.com/robashaw/libecpint"
+
+ version('master', branch='master')
+ version('1.0.5', sha256='3ad5ff342b1bc870f5992c296e8bd8aa590c21a9b14333958c601f8916d6f532')
+ version('1.0.4', sha256='fad9d1ac98f8dcd40f7bee69aef653bfa3079f016e43277cbd554e06890aa186')
+ version('1.0.3', sha256='13c3f7d1cf35355e37a903196d5cace60f6a72ae041e8b3502dfabdd19dde17a')
+ version('1.0.2', sha256='2fb73af4d30a40bdd9df9e04b1f762c38ab7ed3a39c11509f3f87250fe0b5778')
+ version('1.0.1', sha256='245b89fe8cb0a92cbbb79c811b48cb15fcfc937389df89387466f1bf76a096bf')
+ version('1.0.0', sha256='47d741cc48a543ef9c85483cb2d5cd1c9f6677fa7e9920886d083b3c25232379')
+
+ depends_on('pugixml')
+ depends_on('googletest')
+
+ def cmake_args(self):
+ args = ['-DBUILD_SHARED_LIBS=ON']
+ return args
diff --git a/var/spack/repos/builtin/packages/libedit/package.py b/var/spack/repos/builtin/packages/libedit/package.py
index fd4bf49de4..341c161930 100644
--- a/var/spack/repos/builtin/packages/libedit/package.py
+++ b/var/spack/repos/builtin/packages/libedit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,14 +8,16 @@ from spack import *
class Libedit(AutotoolsPackage):
"""An autotools compatible port of the NetBSD editline library"""
- homepage = "http://thrysoee.dk/editline/"
- url = "http://thrysoee.dk/editline/libedit-20170329-3.1.tar.gz"
+ homepage = "https://thrysoee.dk/editline/"
+ url = "https://thrysoee.dk/editline/libedit-20170329-3.1.tar.gz"
+ version('3.1-20210216', sha256='2283f741d2aab935c8c52c04b57bf952d02c2c02e651172f8ac811f77b1fc77a')
version('3.1-20191231', sha256='dbb82cb7e116a5f8025d35ef5b4f7d4a3cdd0a3909a146a39112095a2d229071')
version('3.1-20170329', sha256='91f2d90fbd2a048ff6dad7131d9a39e690fd8a8fd982a353f1333dd4017dd4be')
version('3.1-20160903', sha256='0ccbd2e7d46097f136fcb1aaa0d5bc24e23bb73f57d25bee5a852a683eaa7567')
version('3.1-20150325', sha256='c88a5e4af83c5f40dda8455886ac98923a9c33125699742603a88a0253fcc8c5')
+ depends_on('pkgconfig', type='build')
depends_on('ncurses')
def url_for_version(self, version):
diff --git a/var/spack/repos/builtin/packages/libelf/package.py b/var/spack/repos/builtin/packages/libelf/package.py
index 2f59c61dfa..a2378a6865 100644
--- a/var/spack/repos/builtin/packages/libelf/package.py
+++ b/var/spack/repos/builtin/packages/libelf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libemos/package.py b/var/spack/repos/builtin/packages/libemos/package.py
index 89779b32f6..0c7a53d3a2 100644
--- a/var/spack/repos/builtin/packages/libemos/package.py
+++ b/var/spack/repos/builtin/packages/libemos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libepoxy/package.py b/var/spack/repos/builtin/packages/libepoxy/package.py
index 9fdfd06750..bd771d6313 100644
--- a/var/spack/repos/builtin/packages/libepoxy/package.py
+++ b/var/spack/repos/builtin/packages/libepoxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libestr/package.py b/var/spack/repos/builtin/packages/libestr/package.py
index 2621163b7a..dc4b5a2dfa 100644
--- a/var/spack/repos/builtin/packages/libestr/package.py
+++ b/var/spack/repos/builtin/packages/libestr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libev/package.py b/var/spack/repos/builtin/packages/libev/package.py
index 3cefa8f5ba..85454e43f4 100644
--- a/var/spack/repos/builtin/packages/libev/package.py
+++ b/var/spack/repos/builtin/packages/libev/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libevdev/package.py b/var/spack/repos/builtin/packages/libevdev/package.py
index 6992389c2f..94e7f4484c 100644
--- a/var/spack/repos/builtin/packages/libevdev/package.py
+++ b/var/spack/repos/builtin/packages/libevdev/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Libevdev(AutotoolsPackage):
tasks when dealing with evdev devices into a library and provides a
library interface to the callers, thus avoiding erroneous ioctls, etc."""
- homepage = "http://cgit.freedesktop.org/libevdev"
+ homepage = "https://cgit.freedesktop.org/libevdev"
url = "https://github.com/whot/libevdev/archive/libevdev-1.5.4.tar.gz"
version('1.5.4', sha256='11ef3510970c049b0e30985be3149d27b4b36b7cbe14ca678746aac1ca86744d')
diff --git a/var/spack/repos/builtin/packages/libevent/package.py b/var/spack/repos/builtin/packages/libevent/package.py
index 07a873fc2f..764eca3423 100644
--- a/var/spack/repos/builtin/packages/libevent/package.py
+++ b/var/spack/repos/builtin/packages/libevent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,10 +14,13 @@ class Libevent(AutotoolsPackage):
"""
- homepage = "http://libevent.org"
+ homepage = "https://libevent.org"
url = "https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz"
- list_url = "http://libevent.org/old-releases.html"
+ list_url = "https://libevent.org/old-releases.html"
+ version('2.1.12', sha256='92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb')
+ version('2.1.11', sha256='a65bac6202ea8c5609fd5c7e480e6d25de467ea1917c08290c521752f147283d')
+ version('2.1.10', sha256='e864af41a336bb11dab1a23f32993afe963c1f69618bd9292b89ecf6904845b0')
version('2.1.8', sha256='965cc5a8bb46ce4199a47e9b2c9e1cae3b137e8356ffdad6d94d3b9069b71dc2')
version('2.0.22', sha256='71c2c49f0adadacfdbe6332a372c38cf9c8b7895bb73dabeaa53cdcc1d4e1fa3')
version('2.0.21', sha256='22a530a8a5ba1cb9c080cba033206b17dacd21437762155c6d30ee6469f574f5')
@@ -54,3 +57,15 @@ class Libevent(AutotoolsPackage):
configure_args.append('--disable-openssl')
return configure_args
+
+ def patch(self):
+ if self.spec.satisfies('%nvhpc'):
+ # Remove incompatible compiler flags
+ filter_file(' -Wmissing-declarations', '', 'configure')
+ filter_file(' -Wbad-function-cast', '', 'configure')
+ filter_file(' -Wno-unused-parameter', '', 'configure')
+ filter_file(' -Wmissing-field-initializers', '', 'configure')
+ filter_file(' -Waddress', '', 'configure')
+ filter_file(' -Wnormalized=id', '', 'configure')
+ filter_file(' -Woverride-init', '', 'configure')
+ filter_file(' -Wlogical-op', '', 'configure')
diff --git a/var/spack/repos/builtin/packages/libevpath/package.py b/var/spack/repos/builtin/packages/libevpath/package.py
index b9ab5129a4..21b935c2f2 100644
--- a/var/spack/repos/builtin/packages/libevpath/package.py
+++ b/var/spack/repos/builtin/packages/libevpath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libexif/package.py b/var/spack/repos/builtin/packages/libexif/package.py
index 5156ee4196..47bea9f5a1 100644
--- a/var/spack/repos/builtin/packages/libexif/package.py
+++ b/var/spack/repos/builtin/packages/libexif/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libfabric/package.py b/var/spack/repos/builtin/packages/libfabric/package.py
index 7bb1e0fce5..01b634ed2e 100644
--- a/var/spack/repos/builtin/packages/libfabric/package.py
+++ b/var/spack/repos/builtin/packages/libfabric/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,14 @@ class Libfabric(AutotoolsPackage):
url = "https://github.com/ofiwg/libfabric/releases/download/v1.8.0/libfabric-1.8.0.tar.bz2"
git = "https://github.com/ofiwg/libfabric.git"
+ maintainers = ['rajachan']
+
version('master', branch='master')
+ version('1.13.1', sha256='8e6eed38c4a39aa4cbf7d5d3734f0eecbfc030182f1f9b3be470702f2586d30e')
+ version('1.12.1', sha256='db3c8e0a495e6e9da6a7436adab905468aedfbd4579ee3da5232a5c111ba642c')
+ version('1.12.0', sha256='ca98785fe25e68a26c61e272be64a1efeea37e61b0dcebd34ccfd381bda7d9cc')
+ version('1.11.2', sha256='ff2ba821b55a54855d327e6f6fb8a14312c9c9ca7c873525b6a246d8f974d7da')
+ version('1.11.1', sha256='a72a7dac6322bed09ef1af33bcade3024ca5847a1e9c8fa369da6ab879111fe7')
version('1.11.0', sha256='9938abf628e7ea8dcf60a94a4b62d499fbc0dbc6733478b6db2e6a373c80d58f')
version('1.10.1', sha256='889fa8c99eed1ff2a5fd6faf6d5222f2cf38476b24f3b764f2cbb5900fee8284')
version('1.10.0', sha256='c1ef6e9cd6dafec3f003d2f78f0f3a25f055a7a791e98b5a0db1e4c5036e40f6')
@@ -31,21 +38,22 @@ class Libfabric(AutotoolsPackage):
version('1.5.0', sha256='88a8ad6772f11d83e5b6f7152a908ffcb237af273a74a1bd1cb4202f577f1f23')
version('1.4.2', sha256='5d027d7e4e34cb62508803e51d6bd2f477932ad68948996429df2bfff37ca2a5')
- fabrics = ('psm',
- 'psm2',
- 'sockets',
- 'verbs',
- 'usnic',
+ fabrics = ('efa',
'gni',
- 'xpmem',
- 'udp',
+ 'mlx',
+ 'mrail',
+ 'psm',
+ 'psm2',
+ 'psm3',
'rxm',
'rxd',
- 'mlx',
+ 'shm',
+ 'sockets',
'tcp',
- 'efa',
- 'mrail',
- 'shm')
+ 'udp',
+ 'usnic',
+ 'verbs',
+ 'xpmem')
variant('fabrics',
default='sockets,tcp,udp',
@@ -60,6 +68,9 @@ class Libfabric(AutotoolsPackage):
variant('kdreg', default=False,
description='Enable kdreg on supported Cray platforms')
+ variant('debug', default=False,
+ description='Enable debugging')
+
# For version 1.9.0:
# headers: fix forward-declaration of enum fi_collective_op with C++
patch('https://github.com/ofiwg/libfabric/commit/2e95b0efd85fa8a3d814128e34ec57ffd357460e.patch',
@@ -91,6 +102,8 @@ class Libfabric(AutotoolsPackage):
def configure_args(self):
args = []
+ args.extend(self.enable_or_disable('debug'))
+
if '+kdreg' in self.spec:
args.append('--with-kdreg=yes')
else:
diff --git a/var/spack/repos/builtin/packages/libfastcommon/package.py b/var/spack/repos/builtin/packages/libfastcommon/package.py
index fbd3518b58..0b2d4f5c7d 100644
--- a/var/spack/repos/builtin/packages/libfastcommon/package.py
+++ b/var/spack/repos/builtin/packages/libfastcommon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libfastjson/package.py b/var/spack/repos/builtin/packages/libfastjson/package.py
index aa2cadfdc3..b5c1ba3176 100644
--- a/var/spack/repos/builtin/packages/libfastjson/package.py
+++ b/var/spack/repos/builtin/packages/libfastjson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libffi/package.py b/var/spack/repos/builtin/packages/libffi/package.py
index e1c79588ad..ad6a0a8104 100644
--- a/var/spack/repos/builtin/packages/libffi/package.py
+++ b/var/spack/repos/builtin/packages/libffi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -32,4 +32,9 @@ class Libffi(AutotoolsPackage, SourcewarePackage):
# Spack adds its own target flags, so tell libffi not to
# second-guess us
args.append('--without-gcc-arch')
+ # At the moment, build scripts accept 'aarch64-apple-darwin'
+ # but not 'arm64-apple-darwin'.
+ # See: https://github.com/libffi/libffi/issues/571
+ if self.spec.satisfies('platform=darwin target=aarch64:'):
+ args.append('--build=aarch64-apple-darwin')
return args
diff --git a/var/spack/repos/builtin/packages/libffs/package.py b/var/spack/repos/builtin/packages/libffs/package.py
index 8c7637a7a5..33ca18fa9c 100644
--- a/var/spack/repos/builtin/packages/libffs/package.py
+++ b/var/spack/repos/builtin/packages/libffs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Libffs(CMakePackage):
and providing complex run-time flexibility.
"""
- homepage = "http://www.cc.gatech.edu/systems/projects/FFS"
+ homepage = "https://www.cc.gatech.edu/systems/projects/FFS"
url = "https://github.com/GTkorvo/ffs/archive/v1.1.tar.gz"
git = "https://github.com/GTkorvo/ffs.git"
diff --git a/var/spack/repos/builtin/packages/libfive/package.py b/var/spack/repos/builtin/packages/libfive/package.py
index e2a9b65d13..8fe0da08c4 100644
--- a/var/spack/repos/builtin/packages/libfive/package.py
+++ b/var/spack/repos/builtin/packages/libfive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libflame/package.py b/var/spack/repos/builtin/packages/libflame/package.py
index c205e54dcf..65a307156d 100644
--- a/var/spack/repos/builtin/packages/libflame/package.py
+++ b/var/spack/repos/builtin/packages/libflame/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -127,3 +127,5 @@ class Libflame(LibflameBase):
provides('flame@5.2', when='@5.2.0')
provides('flame@5.1', when='@5.1.0')
+
+ depends_on('python', type='build')
diff --git a/var/spack/repos/builtin/packages/libfontenc/package.py b/var/spack/repos/builtin/packages/libfontenc/package.py
index b99b708721..9f1e52b743 100644
--- a/var/spack/repos/builtin/packages/libfontenc/package.py
+++ b/var/spack/repos/builtin/packages/libfontenc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,13 @@ from spack import *
class Libfontenc(AutotoolsPackage, XorgPackage):
"""libfontenc - font encoding library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libfontenc"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libfontenc"
xorg_mirror_path = "lib/libfontenc-1.1.3.tar.gz"
version('1.1.3', sha256='6fba26760ca8d5045f2b52ddf641c12cedc19ee30939c6478162b7db8b6220fb')
depends_on('zlib')
- depends_on('xproto', type='build')
+ depends_on('xproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libfs/package.py b/var/spack/repos/builtin/packages/libfs/package.py
index bfbedabc2a..241892d86c 100644
--- a/var/spack/repos/builtin/packages/libfs/package.py
+++ b/var/spack/repos/builtin/packages/libfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,13 +12,13 @@ class Libfs(AutotoolsPackage, XorgPackage):
This library is used by clients of X Font Servers (xfs), such as
xfsinfo, fslsfonts, and the X servers themselves."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libFS"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libFS"
xorg_mirror_path = "lib/libFS-1.0.7.tar.gz"
version('1.0.7', sha256='91bf1c5ce4115b7dbf4e314fdbee54052708e8f7b6a2ec6e82c309bcbe40ef3d')
- depends_on('xproto@7.0.17:', type='build')
- depends_on('fontsproto', type='build')
- depends_on('xtrans', type='build')
+ depends_on('xproto@7.0.17:')
+ depends_on('fontsproto')
+ depends_on('xtrans')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libfuse/0001-Do-not-run-install-script.patch b/var/spack/repos/builtin/packages/libfuse/0001-Do-not-run-install-script.patch
new file mode 100644
index 0000000000..4e33e83a23
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libfuse/0001-Do-not-run-install-script.patch
@@ -0,0 +1,27 @@
+From daf0c12d13791978bd7eab2ef44c432802fbcc95 Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Wed, 24 Mar 2021 17:29:10 +0100
+Subject: [PATCH] Do not run install script by default
+
+---
+ util/meson.build | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/util/meson.build b/util/meson.build
+index 577668f..ef0bc81 100644
+--- a/util/meson.build
++++ b/util/meson.build
+@@ -20,10 +20,4 @@ if udevrulesdir == ''
+ udevrulesdir = join_paths(udev.get_pkgconfig_variable('udevdir'), 'rules.d')
+ endif
+
+-meson.add_install_script('install_helper.sh',
+- join_paths(get_option('prefix'), get_option('sysconfdir')),
+- join_paths(get_option('prefix'), get_option('bindir')),
+- udevrulesdir,
+- '@0@'.format(get_option('useroot')))
+-
+
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/libfuse/package.py b/var/spack/repos/builtin/packages/libfuse/package.py
index 444fe11a5f..4f69d2bdcd 100644
--- a/var/spack/repos/builtin/packages/libfuse/package.py
+++ b/var/spack/repos/builtin/packages/libfuse/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import re
+
from spack import *
@@ -11,8 +13,76 @@ class Libfuse(MesonPackage):
Userspace) interface"""
homepage = "https://github.com/libfuse/libfuse"
- url = "https://github.com/libfuse/libfuse/archive/fuse-3.9.3.tar.gz"
+ url = "https://github.com/libfuse/libfuse/releases/download/fuse-2.9.9/fuse-2.9.9.tar.gz"
+
+ version('3.10.4', sha256='bfcb2520fd83db29e9fefd57d3abd5285f38ad484739aeee8e03fbec9b2d984a')
+ version('3.10.3', sha256='c32527782cef620df58b162aa29901d1fb13253b029375d5860a2253a810344e')
+ version('3.10.2', sha256='a16f93cc083264afd0d2958a0dc88f24c6c5d40a9f3842c645b1909e13edb75f')
+ version('3.10.1', sha256='d8954e7b4c022c651aa80db3bb4a161437dd285cd5f1a23d0e25f055dcebe00d')
+ version('3.10.0', sha256='52bbb52035f7eeaa54d139e21805d357f848f6e02ac956831d04988165a92c7b')
+ version('3.9.4', sha256='9e076ae757a09cac9ce1beb50b3361ae83a831e5abc0f1bf5cdf771cd1320338')
+ version('3.9.3', sha256='0f8f7ad9cc6667c6751efa425dd0a665dcc9d75f0b7fc0cb5b85141a514110e9')
+ version('3.9.2', sha256='b4409255cbda6f6975ca330f5b04cb335b823a95ddd8c812c3d224ec53478fc0')
+ version('2.9.9', sha256='d0e69d5d608cc22ff4843791ad097f554dd32540ddc9bed7638cc6fea7c1b4b5')
+
+ def url_for_version(self, version):
+ if version < Version("3.0.0"):
+ return "https://github.com/libfuse/libfuse/releases/download/fuse-{0}/fuse-{1}.tar.gz".format(version, version)
+ return "https://github.com/libfuse/libfuse/archive/refs/tags/fuse-{0}.tar.gz".format(version)
+
+ variant('useroot', default=False, description="Use root privileges to make fusermount a setuid binary after installation")
+ variant('system_install', default=False, description=(
+ "Do not run the post-install script "
+ "which typically sets up udev rules and "
+ "and init script in /etc/init.d"))
+
+ provides('fuse')
+ conflicts("+useroot", when='~system_install', msg="useroot requires system_install")
+ conflicts('platform=darwin', msg='libfuse does not support OS-X, use macfuse instead')
+
+ # Drops the install script which does system configuration
+ patch('0001-Do-not-run-install-script.patch', when='@3: ~system_install')
+ patch('https://src.fedoraproject.org/rpms/fuse3/raw/0519b7bf17c4dd1b31ee704d49f8ed94aa5ba6ab/f/fuse3-gcc11.patch', sha256='3ad6719d2393b46615b5787e71778917a7a6aaa189ba3c3e0fc16d110a8414ec', when='@3: %gcc@11:')
+
+ executables = ['^fusermount3?$']
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ match = re.search(r'^fusermount.*version: (\S+)', output)
+ return match.group(1) if match else None
+
+ def meson_args(self):
+ args = []
+
+ if '+useroot' in self.spec:
+ args.append('-Duseroot=true')
+ else:
+ args.append('-Duseroot=false')
+
+ return args
+
+ # Before libfuse 3.x this was an autotools package
+ @when('@:2')
+ def meson(self, spec, prefix):
+ args = [
+ "--prefix={0}".format(prefix),
+ "MOUNT_FUSE_PATH={0}".format(self.prefix.sbin),
+ "UDEV_RULES_PATH={0}".format(self.prefix.etc),
+ "INIT_D_PATH={0}".format(self.prefix.etc),
+ ]
+
+ args.append('--enable-static' if 'default_library=static' in self.spec
+ else '--disable-static')
+ args.append('--enable-shared' if 'default_library=shared' in self.spec
+ else '--disable-shared')
+
+ configure(*args)
+
+ @when('@:2')
+ def build(self, spec, prefix):
+ make()
- version('3.9.4', sha256='9e076ae757a09cac9ce1beb50b3361ae83a831e5abc0f1bf5cdf771cd1320338')
- version('3.9.3', sha256='0f8f7ad9cc6667c6751efa425dd0a665dcc9d75f0b7fc0cb5b85141a514110e9')
- version('3.9.2', sha256='b4409255cbda6f6975ca330f5b04cb335b823a95ddd8c812c3d224ec53478fc0')
+ @when('@:2')
+ def install(self, spec, prefix):
+ make("install")
diff --git a/var/spack/repos/builtin/packages/libfyaml/package.py b/var/spack/repos/builtin/packages/libfyaml/package.py
new file mode 100644
index 0000000000..f2ddae06a7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libfyaml/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 Libfyaml(AutotoolsPackage):
+ """Fully feature complete YAML parser and emitter, supporting the latest
+ YAML spec and passing the full YAML testsuite."""
+
+ homepage = "https://github.com/pantoniou/libfyaml"
+ url = "https://github.com/pantoniou/libfyaml/releases/download/v0.5.7/libfyaml-0.5.7.tar.gz"
+
+ version('0.5.7', sha256='3221f31bb3feba97e544a82d0d5e4711ff0e4101cca63923dc5a1a001c187590')
+
+ depends_on('m4', type='build')
diff --git a/var/spack/repos/builtin/packages/libgcrypt/package.py b/var/spack/repos/builtin/packages/libgcrypt/package.py
index bc566fad52..a0faa4e087 100644
--- a/var/spack/repos/builtin/packages/libgcrypt/package.py
+++ b/var/spack/repos/builtin/packages/libgcrypt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,13 @@ class Libgcrypt(AutotoolsPackage):
homepage = "https://gnupg.org/software/libgcrypt/index.html"
url = "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.5.tar.bz2"
+ maintainers = ['alalazo']
+
+ version('1.9.3', sha256='97ebe4f94e2f7e35b752194ce15a0f3c66324e0ff6af26659bbfb5ff2ec328fd')
+ version('1.9.2', sha256='b2c10d091513b271e47177274607b1ffba3d95b188bbfa8797f948aec9053c5a')
+ version('1.9.1', sha256='c5a67a8b9b2bd370fb415ed1ee31c7172e5683076493cf4a3678a0fbdf0265d9')
+ version('1.8.7', sha256='03b70f028299561b7034b8966d7dd77ef16ed139c43440925fe8782561974748')
+ version('1.8.6', sha256='0cba2700617b99fc33864a0c16b1fa7fdf9781d9ed3509f5d767178e5fd7b975')
version('1.8.5', sha256='3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3')
version('1.8.4', sha256='f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227')
version('1.8.1', sha256='7a2875f8b1ae0301732e878c0cca2c9664ff09ef71408f085c50e332656a78b3')
diff --git a/var/spack/repos/builtin/packages/libgd/package.py b/var/spack/repos/builtin/packages/libgd/package.py
index 697ccd22a4..4b3abd632f 100644
--- a/var/spack/repos/builtin/packages/libgd/package.py
+++ b/var/spack/repos/builtin/packages/libgd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libgeotiff/package.py b/var/spack/repos/builtin/packages/libgeotiff/package.py
index 0551050da4..372bb3950c 100644
--- a/var/spack/repos/builtin/packages/libgeotiff/package.py
+++ b/var/spack/repos/builtin/packages/libgeotiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libgff/package.py b/var/spack/repos/builtin/packages/libgff/package.py
new file mode 100644
index 0000000000..1070d9833e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libgff/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 Libgff(CMakePackage):
+ """Lightweight GTF/GFF Parser, exposes a C++ interface without drawing in
+ a heavyweight dependency."""
+
+ homepage = "https://github.com/COMBINE-lab/libgff/"
+ url = "https://github.com/COMBINE-lab/libgff/archive/v2.0.0.tar.gz"
+
+ # notify when the package is updated.
+ maintainers = ['ajxander12']
+
+ version('2.0.0', sha256='7656b19459a7ca7d2fd0fcec4f2e0fd0deec1b4f39c703a114e8f4c22d82a99c')
diff --git a/var/spack/repos/builtin/packages/libgit2/package.py b/var/spack/repos/builtin/packages/libgit2/package.py
index dd5d55fb6f..ab25b74f80 100644
--- a/var/spack/repos/builtin/packages/libgit2/package.py
+++ b/var/spack/repos/builtin/packages/libgit2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,6 +18,7 @@ class Libgit2(CMakePackage):
maintainers = ["AndrewGaspar"]
+ version('1.1.0', sha256='41a6d5d740fd608674c7db8685685f45535323e73e784062cf000a633d420d1e')
version('1.0.1', sha256='1775427a6098f441ddbaa5bd4e9b8a043c7401e450ed761e69a415530fea81d2')
version('1.0.0', sha256='6a1fa16a7f6335ce8b2630fbdbb5e57c4027929ebc56fcd1ac55edb141b409b4')
version('0.99.0', sha256='174024310c1563097a6613a0d3f7539d11a9a86517cd67ce533849065de08a11')
@@ -95,6 +96,6 @@ class Libgit2(CMakePackage):
# Control tests
args.append(
- '-DBUILD_CLAR={0}'.format('ON' if self.run_tests else 'OFF'))
+ self.define('BUILD_CLAR', self.run_tests))
return args
diff --git a/var/spack/repos/builtin/packages/libgpg-error/package.py b/var/spack/repos/builtin/packages/libgpg-error/package.py
index c4978751ff..2083e2e61e 100644
--- a/var/spack/repos/builtin/packages/libgpg-error/package.py
+++ b/var/spack/repos/builtin/packages/libgpg-error/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,22 +12,24 @@ class LibgpgError(AutotoolsPackage):
homepage = "https://www.gnupg.org/related_software/libgpg-error/index.en.html"
url = "https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.37.tar.bz2"
+ maintainers = ['alalazo']
+
+ version('1.42', sha256='fc07e70f6c615f8c4f590a8e37a9b8dd2e2ca1e9408f8e60459c67452b925e23')
+ version('1.41', sha256='64b078b45ac3c3003d7e352a5e05318880a5778c42331ce1ef33d1a0d9922742')
+ version('1.40', sha256='e6b0392e852a8ad069242265c513c946b492b00816f3967a97d297886939623a')
version('1.37', sha256='b32d6ff72a73cf79797f7f2d039e95e9c6f92f0c1450215410840ab62aea9763')
version('1.36', sha256='babd98437208c163175c29453f8681094bcaf92968a15cafb1a276076b33c97c')
version('1.27', sha256='4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2')
version('1.21', sha256='b7dbdb3cad63a740e9f0c632a1da32d4afdb694ec86c8625c98ea0691713b84d')
version('1.18', sha256='9ff1d6e61d4cef7c1d0607ceef6d40dc33f3da7a3094170c3718c00153d80810')
- depends_on('awk', type=('build'))
+ depends_on('awk', type='build')
# Patch for using gawk@5, c.f. https://dev.gnupg.org/T4459
patch('awk-5.patch', when='@1.36^gawk@5:')
def configure_args(self):
- args = ['--enable-static']
-
- if self.run_tests:
- args.append('--enable-tests')
- else:
- args.append('--disable-tests')
-
- return args
+ return [
+ '--enable-static',
+ '--enable-shared',
+ '--enable-tests' if self.run_tests else '--disable-tests'
+ ]
diff --git a/var/spack/repos/builtin/packages/libgpuarray/package.py b/var/spack/repos/builtin/packages/libgpuarray/package.py
index 84b0ad541e..b977b8f97c 100644
--- a/var/spack/repos/builtin/packages/libgpuarray/package.py
+++ b/var/spack/repos/builtin/packages/libgpuarray/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Libgpuarray(CMakePackage):
projects that is as future proof as possible, while keeping it easy to use
for simple need/quick test."""
- homepage = "http://deeplearning.net/software/libgpuarray/"
+ homepage = "https://github.com/Theano/libgpuarray"
url = "https://github.com/Theano/libgpuarray/archive/v0.6.1.tar.gz"
version('0.7.6', sha256='ad1c00dd47c3d36ee1708e5167377edbfcdb7226e837ef9c68b841afbb4a4f6a')
diff --git a/var/spack/repos/builtin/packages/libgridxc/package.py b/var/spack/repos/builtin/packages/libgridxc/package.py
index 96c7918d95..432cd29d6f 100644
--- a/var/spack/repos/builtin/packages/libgridxc/package.py
+++ b/var/spack/repos/builtin/packages/libgridxc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libgssglue/package.py b/var/spack/repos/builtin/packages/libgssglue/package.py
index d9f28a35e4..c41f6019d0 100644
--- a/var/spack/repos/builtin/packages/libgssglue/package.py
+++ b/var/spack/repos/builtin/packages/libgssglue/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libgtextutils/package.py b/var/spack/repos/builtin/packages/libgtextutils/package.py
index 4c9820f5d2..e92db134a5 100644
--- a/var/spack/repos/builtin/packages/libgtextutils/package.py
+++ b/var/spack/repos/builtin/packages/libgtextutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libharu/package.py b/var/spack/repos/builtin/packages/libharu/package.py
index dc308bb06f..7e3b370200 100644
--- a/var/spack/repos/builtin/packages/libharu/package.py
+++ b/var/spack/repos/builtin/packages/libharu/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Libharu(AutotoolsPackage):
"""libharu - free PDF library.
diff --git a/var/spack/repos/builtin/packages/libhbaapi/package.py b/var/spack/repos/builtin/packages/libhbaapi/package.py
index acdda6b9c8..4998403ef2 100644
--- a/var/spack/repos/builtin/packages/libhbaapi/package.py
+++ b/var/spack/repos/builtin/packages/libhbaapi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libhio/package.py b/var/spack/repos/builtin/packages/libhio/package.py
index f04dc7c660..1cb774bd23 100644
--- a/var/spack/repos/builtin/packages/libhio/package.py
+++ b/var/spack/repos/builtin/packages/libhio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,6 +24,8 @@ class Libhio(AutotoolsPackage):
# needed by current and future consumers of libhio
#
version('master', branch='master')
+ version('1.4.1.6', sha256='863e7274f9e32d97bd5d9e6745ad9449735bdc8bd5623f152a32be45e6f3a212')
+ version('1.4.1.5', sha256='af5cb2a799a8470ed95847c3b07ea3ad61f8f7d5a2b79c52a46ca784846e8962')
version('1.4.1.4', sha256='6998a424cff97be9a207032b3addd19f292d8ebda72043be92a8f942ae3b4da1')
version('1.4.1.3', sha256='b6ad2354f1bc597e7e55fc989ff50944835d64149f4925c2f45df950919e4d08')
version('1.4.1.2', sha256='87a0f9b72b7aa69485c40d9bd36f02af653b70e8eed3eb0b50eaeb02ff0a9049')
diff --git a/var/spack/repos/builtin/packages/libhugetlbfs/package.py b/var/spack/repos/builtin/packages/libhugetlbfs/package.py
index 9a9ac380aa..bc133c1215 100644
--- a/var/spack/repos/builtin/packages/libhugetlbfs/package.py
+++ b/var/spack/repos/builtin/packages/libhugetlbfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libiberty/package.py b/var/spack/repos/builtin/packages/libiberty/package.py
index 2168223477..48417b6a24 100644
--- a/var/spack/repos/builtin/packages/libiberty/package.py
+++ b/var/spack/repos/builtin/packages/libiberty/package.py
@@ -1,16 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 *
-
# Libiberty has two homes: binutils and gcc. This package uses the
# binutils tarfile but only builds the libiberty subdirectory. This
# is useful for other packages that want the demangling functions
# without the rest of binutils.
+
class Libiberty(AutotoolsPackage, GNUMirrorPackage):
"""The libiberty.a library from GNU binutils. Libiberty provides
demangling and support functions for the GNU toolchain."""
diff --git a/var/spack/repos/builtin/packages/libibumad/package.py b/var/spack/repos/builtin/packages/libibumad/package.py
index e401073519..73a0e16d0f 100644
--- a/var/spack/repos/builtin/packages/libibumad/package.py
+++ b/var/spack/repos/builtin/packages/libibumad/package.py
@@ -1,5 +1,5 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libical/package.py b/var/spack/repos/builtin/packages/libical/package.py
index 6116b0b649..9d841a6061 100644
--- a/var/spack/repos/builtin/packages/libical/package.py
+++ b/var/spack/repos/builtin/packages/libical/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libice/package.py b/var/spack/repos/builtin/packages/libice/package.py
index 32aa445dd3..967f4268f9 100644
--- a/var/spack/repos/builtin/packages/libice/package.py
+++ b/var/spack/repos/builtin/packages/libice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,17 @@ from spack import *
class Libice(AutotoolsPackage, XorgPackage):
"""libICE - Inter-Client Exchange Library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libICE"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libICE"
xorg_mirror_path = "lib/libICE-1.0.9.tar.gz"
version('1.0.9', sha256='7812a824a66dd654c830d21982749b3b563d9c2dfe0b88b203cefc14a891edc0')
- depends_on('xproto', type='build')
- depends_on('xtrans', type='build')
+ depends_on('xproto')
+ depends_on('xtrans')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
+
+ @property
+ def libs(self):
+ return find_libraries('libICE', self.prefix,
+ shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/libiconv/package.py b/var/spack/repos/builtin/packages/libiconv/package.py
index 9331dfb399..7bd1649d93 100644
--- a/var/spack/repos/builtin/packages/libiconv/package.py
+++ b/var/spack/repos/builtin/packages/libiconv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,9 @@ class Libiconv(AutotoolsPackage, GNUMirrorPackage):
version('1.15', sha256='ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178')
version('1.14', sha256='72b24ded17d687193c3366d0ebe7cde1e6b18f0df8c55438ac95be39e8a30613')
+ variant('libs', default='shared,static', values=('shared', 'static'),
+ multi=True, description='Build shared libs, static libs or both')
+
# We cannot set up a warning for gets(), since gets() is not part
# of C11 any more and thus might not exist.
patch('gets.patch', when='@1.14')
@@ -27,6 +30,8 @@ class Libiconv(AutotoolsPackage, GNUMirrorPackage):
def configure_args(self):
args = ['--enable-extra-encodings']
+ args += self.enable_or_disable('libs')
+
# A hack to patch config.guess in the libcharset sub directory
copy('./build-aux/config.guess',
'libcharset/build-aux/config.guess')
diff --git a/var/spack/repos/builtin/packages/libid3tag/package.py b/var/spack/repos/builtin/packages/libid3tag/package.py
index 6a9880b00c..41461f853a 100644
--- a/var/spack/repos/builtin/packages/libid3tag/package.py
+++ b/var/spack/repos/builtin/packages/libid3tag/package.py
@@ -1,11 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Libid3tag(AutotoolsPackage):
"""library for id3 tagging"""
diff --git a/var/spack/repos/builtin/packages/libidl/package.py b/var/spack/repos/builtin/packages/libidl/package.py
index facc1f74de..eaa108c7d7 100644
--- a/var/spack/repos/builtin/packages/libidl/package.py
+++ b/var/spack/repos/builtin/packages/libidl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libidn2/package.py b/var/spack/repos/builtin/packages/libidn2/package.py
index 74048d04ac..240174719b 100644
--- a/var/spack/repos/builtin/packages/libidn2/package.py
+++ b/var/spack/repos/builtin/packages/libidn2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,13 +6,14 @@
from spack import *
-class Libidn2(AutotoolsPackage):
+class Libidn2(AutotoolsPackage, GNUMirrorPackage):
"""Libidn2 is a free software implementation of IDNA2008, Punycode and
TR46. Its purpose is to encode and decode internationalized domain
names."""
homepage = "https://gitlab.com/libidn/libidn2"
- url = "https://ftp.gnu.org/gnu/libidn/libidn2-2.0.5.tar.gz"
+ # URL must remain http:// so Spack can bootstrap curl
+ gnu_mirror_path = "libidn/libidn2-2.0.5.tar.gz"
version('2.3.0', sha256='e1cb1db3d2e249a6a3eb6f0946777c2e892d5c5dc7bd91c74394fc3a01cab8b5')
version('2.1.1a', sha256='57666bcf6ecf54230d7bac95c392379561954b57a673903aed4d3336b3048b72')
diff --git a/var/spack/repos/builtin/packages/libimagequant/package.py b/var/spack/repos/builtin/packages/libimagequant/package.py
index 1e8f7752e3..3f992a266a 100644
--- a/var/spack/repos/builtin/packages/libimagequant/package.py
+++ b/var/spack/repos/builtin/packages/libimagequant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libimobiledevice/package.py b/var/spack/repos/builtin/packages/libimobiledevice/package.py
index 6eac7ec688..ab348b63d0 100644
--- a/var/spack/repos/builtin/packages/libimobiledevice/package.py
+++ b/var/spack/repos/builtin/packages/libimobiledevice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libinih/package.py b/var/spack/repos/builtin/packages/libinih/package.py
new file mode 100644
index 0000000000..19e2ea208d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libinih/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 Libinih(MesonPackage):
+ """
+ inih (INI Not Invented Here) is a simple .INI file parser written in C.
+ """
+
+ homepage = "https://github.com/benhoyt/inih"
+ url = "https://github.com/benhoyt/inih/archive/refs/tags/r53.tar.gz"
+ git = "https://github.com/benhoyt/inih.git"
+
+ version('master', branch="master")
diff --git a/var/spack/repos/builtin/packages/libint/package.py b/var/spack/repos/builtin/packages/libint/package.py
index a3b39495f9..5a24da6071 100644
--- a/var/spack/repos/builtin/packages/libint/package.py
+++ b/var/spack/repos/builtin/packages/libint/package.py
@@ -1,11 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
-from spack import *
+from spack import *
TUNE_VARIANTS = (
'none',
@@ -28,6 +28,8 @@ class Libint(AutotoolsPackage):
homepage = "https://github.com/evaleev/libint"
url = "https://github.com/evaleev/libint/archive/v2.1.0.tar.gz"
+ maintainers = ['dev-zero']
+
version('2.6.0', sha256='4ae47e8f0b5632c3d2a956469a7920896708e9f0e396ec10071b8181e4c8d9fa')
version('2.4.2', sha256='86dff38065e69a3a51d15cfdc638f766044cb87e5c6682d960c14f9847e2eac3')
version('2.4.1', sha256='0513be124563fdbbc7cd3c7043e221df1bda236a037027ba9343429a27db8ce4')
@@ -37,11 +39,16 @@ class Libint(AutotoolsPackage):
version('1.1.6', sha256='f201b0c621df678cfe8bdf3990796b8976ff194aba357ae398f2f29b0e2985a6')
version('1.1.5', sha256='ec8cd4a4ba1e1a98230165210c293632372f0e573acd878ed62e5ec6f8b6174b')
+ variant('debug', default=False,
+ description='Enable building with debug symbols')
variant('fortran', default=False,
description='Build & install Fortran bindings')
variant('tune', default='none', multi=False,
values=TUNE_VARIANTS,
description='Tune libint for use with the given package')
+ variant('fma', default=False,
+ description=('Generate code utilizing FMA'
+ ' (requires capable CPU and recent enough compiler)'))
# Build dependencies
depends_on('autoconf@2.52:', type='build')
@@ -120,6 +127,9 @@ class Libint(AutotoolsPackage):
if '@2.6.0:' in self.spec:
config_args += ['--with-libint-exportdir=generated']
+ config_args += self.enable_or_disable(
+ 'debug', activation_value=lambda x: 'opt')
+ config_args += self.enable_or_disable('fma')
tune_value = self.spec.variants['tune'].value
if tune_value.startswith('cp2k'):
@@ -168,30 +178,41 @@ class Libint(AutotoolsPackage):
return []
@when('@2.6.0:')
- def install(self, spec, prefix):
+ def build(self, spec, prefix):
"""
Starting from libint 2.6.0 we're using the 2-stage build
to get support for the Fortran bindings, required by some
packages (CP2K notably).
"""
+ super(Libint, self).build(spec, prefix)
+
# upstream says that using configure/make for the generated code
# is deprecated and one should use CMake, but with the currently
# recent 2.7.0.b1 it still doesn't work
with working_dir(os.path.join(self.build_directory, 'generated')):
# straight from the AutotoolsPackage class:
- options = [
+ config_args = [
'--prefix={0}'.format(prefix),
'--enable-shared',
'--with-cxx-optflags={0}'.format(self.optflags),
]
-
- if '+fortran' in spec:
- options += ['--enable-fortran']
+ config_args += self.enable_or_disable(
+ 'debug', activation_value=lambda x: 'opt')
+ config_args += self.enable_or_disable('fortran')
configure = Executable('./configure')
- configure(*options)
+ configure(*config_args)
make()
+
+ @when('@2.6.0:')
+ def check(self):
+ with working_dir(os.path.join(self.build_directory, 'generated')):
+ make('check')
+
+ @when('@2.6.0:')
+ def install(self, spec, prefix):
+ with working_dir(os.path.join(self.build_directory, 'generated')):
make('install')
def patch(self):
diff --git a/var/spack/repos/builtin/packages/libisal/package.py b/var/spack/repos/builtin/packages/libisal/package.py
index abcbba46e7..abf16a306c 100644
--- a/var/spack/repos/builtin/packages/libisal/package.py
+++ b/var/spack/repos/builtin/packages/libisal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libiscsi/package.py b/var/spack/repos/builtin/packages/libiscsi/package.py
index 621cc875d6..ea33018c76 100644
--- a/var/spack/repos/builtin/packages/libiscsi/package.py
+++ b/var/spack/repos/builtin/packages/libiscsi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
index 4b81a01ef6..2f881a6634 100644
--- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
+++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,13 +17,16 @@ class LibjpegTurbo(Package):
homepage = "https://libjpeg-turbo.org/"
url = "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.3.tar.gz"
+ version('2.1.0', sha256='d6b7790927d658108dfd3bee2f0c66a2924c51ee7f9dc930f62c452f4a638c52')
+ version('2.0.6', sha256='005aee2fcdca252cee42271f7f90574dda64ca6505d9f8b86ae61abc2b426371')
+ version('2.0.5', sha256='b3090cd37b5a8b3e4dbd30a1311b3989a894e5d3c668f14cbc6739d77c9402b7')
version('2.0.4', sha256='7777c3c19762940cff42b3ba4d7cd5c52d1671b39a79532050c85efb99079064')
version('2.0.3', sha256='a69598bf079463b34d45ca7268462a18b6507fdaa62bb1dfd212f02041499b5d')
version('2.0.2', sha256='b45255bd476c19c7c6b198c07c0487e8b8536373b82f2b38346b32b4fa7bb942')
version('1.5.90', sha256='cb948ade92561d8626fd7866a4a7ba3b952f9759ea3dd642927bc687470f60b7')
- version('1.5.3', sha256='1a17020f859cb12711175a67eab5c71fc1904e04b587046218e36106e07eabde')
- version('1.5.0', sha256='232280e1c9c3e6a1de95fe99be2f7f9c0362ee08f3e3e48d50ee83b9a2ed955b')
- version('1.3.1', sha256='5008aeeac303ea9159a0ec3ccff295434f4e63b05aed4a684c9964d497304524')
+ version('1.5.3', sha256='1a17020f859cb12711175a67eab5c71fc1904e04b587046218e36106e07eabde', deprecated=True)
+ version('1.5.0', sha256='232280e1c9c3e6a1de95fe99be2f7f9c0362ee08f3e3e48d50ee83b9a2ed955b', deprecated=True)
+ version('1.3.1', sha256='5008aeeac303ea9159a0ec3ccff295434f4e63b05aed4a684c9964d497304524', deprecated=True)
provides('jpeg')
diff --git a/var/spack/repos/builtin/packages/libjpeg/package.py b/var/spack/repos/builtin/packages/libjpeg/package.py
index a4d52cca26..6194535111 100644
--- a/var/spack/repos/builtin/packages/libjpeg/package.py
+++ b/var/spack/repos/builtin/packages/libjpeg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,9 @@ class Libjpeg(AutotoolsPackage):
alongside various utilities for handling JPEG data."""
homepage = "http://www.ijg.org"
- url = "http://www.ijg.org/files/jpegsrc.v9c.tar.gz"
+ url = "https://www.ijg.org/files/jpegsrc.v9d.tar.gz"
+ version('9d', sha256='6c434a3be59f8f62425b2e3c077e785c9ce30ee5874ea1c270e843f273ba71ee')
version('9c', sha256='650250979303a649e21f87b5ccd02672af1ea6954b911342ea491f351ceb7122')
version('9b', sha256='240fd398da741669bf3c90366f58452ea59041cacc741a489b99f2f6a0bad052')
version('9a', sha256='3a753ea48d917945dd54a2d97de388aa06ca2eb1066cbfdc6652036349fe05a7')
diff --git a/var/spack/repos/builtin/packages/libjson/package.py b/var/spack/repos/builtin/packages/libjson/package.py
index 7fe27bac95..b9888b06b7 100644
--- a/var/spack/repos/builtin/packages/libjson/package.py
+++ b/var/spack/repos/builtin/packages/libjson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,5 +20,8 @@ class Libjson(MakefilePackage):
version('0.5', sha256='d19e149118c01c4a1f4cd16be3ce54bfc97a7210b6f0d76a3f8ef75bf70e8acd')
version('0.4', sha256='9b3ebbeb1940dbd8664524d27e66d991fedc00cca9f403f9aa9c2f28104ca81b')
+ def edit(self, spec, prefix):
+ filter_file('-o root -g root', '', 'Makefile')
+
def install(self, spec, prefix):
make('install', 'PREFIX={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/libjwt/package.py b/var/spack/repos/builtin/packages/libjwt/package.py
index c37fbb0b19..4e7aca5efb 100644
--- a/var/spack/repos/builtin/packages/libjwt/package.py
+++ b/var/spack/repos/builtin/packages/libjwt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,4 +21,6 @@ class Libjwt(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ # Needs openssl at runtime to ensure we can generate keys
+ depends_on('openssl', type=('build', 'run'))
depends_on('jansson')
diff --git a/var/spack/repos/builtin/packages/libkcapi/package.py b/var/spack/repos/builtin/packages/libkcapi/package.py
index c806091073..cb8c112724 100644
--- a/var/spack/repos/builtin/packages/libkcapi/package.py
+++ b/var/spack/repos/builtin/packages/libkcapi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libkml/package.py b/var/spack/repos/builtin/packages/libkml/package.py
index c3e7d7619b..a00d50b510 100644
--- a/var/spack/repos/builtin/packages/libkml/package.py
+++ b/var/spack/repos/builtin/packages/libkml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libksba/package.py b/var/spack/repos/builtin/packages/libksba/package.py
index e153c23d5d..728b93798e 100644
--- a/var/spack/repos/builtin/packages/libksba/package.py
+++ b/var/spack/repos/builtin/packages/libksba/package.py
@@ -1,18 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Libksba(AutotoolsPackage):
"""Libksba is a library to make the tasks of working with X.509
- certificates, CMS data and related objects more easy. """
+ certificates, CMS data and related objects easier.
+ """
homepage = "https://gnupg.org/software/libksba/index.html"
url = "https://gnupg.org/ftp/gcrypt/libksba/libksba-1.3.5.tar.bz2"
+ maintainers = ['alalazo']
+
+ version('1.5.1', sha256='b0f4c65e4e447d9a2349f6b8c0e77a28be9531e4548ba02c545d1f46dc7bf921')
+ version('1.5.0', sha256='ae4af129216b2d7fdea0b5bf2a788cd458a79c983bb09a43f4d525cc87aba0ba')
version('1.4.0', sha256='bfe6a8e91ff0f54d8a329514db406667000cb207238eded49b599761bfca41b6')
version('1.3.5', sha256='41444fd7a6ff73a79ad9728f985e71c9ba8cd3e5e53358e70d5f066d35c1a340')
@@ -22,5 +25,7 @@ class Libksba(AutotoolsPackage):
def configure_args(self):
return [
+ '--enable-static',
+ '--enable-shared',
'--with-libgpg-error-prefix=' + self.spec['libgpg-error'].prefix
]
diff --git a/var/spack/repos/builtin/packages/liblas/package.py b/var/spack/repos/builtin/packages/liblas/package.py
index efdd0b542f..f45f771ca4 100644
--- a/var/spack/repos/builtin/packages/liblas/package.py
+++ b/var/spack/repos/builtin/packages/liblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/liblbfgs/package.py b/var/spack/repos/builtin/packages/liblbfgs/package.py
new file mode 100644
index 0000000000..970cac4ee4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/liblbfgs/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 Liblbfgs(AutotoolsPackage):
+ """libLBFGS is a C port of the implementation of Limited-memory
+ Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) method written by Jorge Nocedal.
+
+ The L-BFGS method solves the unconstrainted minimization problem:
+ minimize F(x), x = (x1, x2, ..., xN),
+ only if the objective function F(x) and its gradient G(x) are computable."""
+
+ homepage = "https://www.chokkan.org/software/liblbfgs/"
+ url = "https://github.com/downloads/chokkan/liblbfgs/liblbfgs-1.10.tar.gz"
+ git = "https://github.com/chokkan/liblbfgs.git"
+
+ maintainers = ['RemiLacroix-IDRIS']
+
+ version('master', branch='master')
+ version('1.10', sha256='4158ab7402b573e5c69d5f6b03c973047a91e16ca5737d3347e3af9c906868cf')
+
+ depends_on('autoconf', type='build', when='@master')
+ depends_on('automake', type='build', when='@master')
+ depends_on('libtool', type='build', when='@master')
+ depends_on('m4', type='build', when='@master')
diff --git a/var/spack/repos/builtin/packages/liblbxutil/package.py b/var/spack/repos/builtin/packages/liblbxutil/package.py
index 0ab82308c2..d087e8a9bb 100644
--- a/var/spack/repos/builtin/packages/liblbxutil/package.py
+++ b/var/spack/repos/builtin/packages/liblbxutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,13 @@ from spack import *
class Liblbxutil(AutotoolsPackage, XorgPackage):
"""liblbxutil - Low Bandwith X extension (LBX) utility routines."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/liblbxutil"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/liblbxutil"
xorg_mirror_path = "lib/liblbxutil-1.1.0.tar.gz"
version('1.1.0', sha256='285c1bc688cc71ec089e9284f2566d1780cc5d90816e9997890af8689f386951')
- depends_on('xextproto@7.0.99.1:', type='build')
- depends_on('xproto', type='build')
+ depends_on('xextproto@7.0.99.1:')
+ depends_on('xproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
depends_on('zlib', type='link')
diff --git a/var/spack/repos/builtin/packages/liblockfile/package.py b/var/spack/repos/builtin/packages/liblockfile/package.py
index 500b3c80eb..26089a8b57 100644
--- a/var/spack/repos/builtin/packages/liblockfile/package.py
+++ b/var/spack/repos/builtin/packages/liblockfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/liblognorm/package.py b/var/spack/repos/builtin/packages/liblognorm/package.py
new file mode 100644
index 0000000000..5013a0ebef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/liblognorm/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 Liblognorm(AutotoolsPackage):
+ """Liblognorm is a fast-samples based normalization library."""
+
+ homepage = "https://www.liblognorm.com/"
+ url = "https://github.com/rsyslog/liblognorm/archive/v2.0.6.tar.gz"
+
+ version('2.0.6', sha256='594ea3318ef419cb7f21cf81c513db35a838b32207999a11a82b709da9ff9a2b')
+ version('2.0.5', sha256='dd779b6992de37995555e1d54caf0716a694765efc65480eed2c713105ab46fe')
+ version('2.0.4', sha256='af4d7d8ce11fb99514169f288163f87cb9ade1cb79595656d96b51b2482c493d')
+ version('2.0.3', sha256='fac2a6a5adbeb63d06a63ab2e398b3fac8625d0ea69db68f1d81196897a9d687')
+ version('2.0.2', sha256='bdd08e9837e8fcca5029ec12c9fb9f16593313f9d743625bab062250e0daa5d8')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('libestr')
+ depends_on('libfastjson')
diff --git a/var/spack/repos/builtin/packages/liblouis/package.py b/var/spack/repos/builtin/packages/liblouis/package.py
new file mode 100644
index 0000000000..90e81a02c5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/liblouis/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 Liblouis(AutotoolsPackage):
+ """Liblouis is an open-source braille translator and back-translator
+ named in honor of Louis Braille."""
+
+ homepage = "http://liblouis.org/"
+ url = "https://github.com/liblouis/liblouis/releases/download/v3.15.0/liblouis-3.15.0.tar.gz"
+
+ version('3.17.0', sha256='78c71476467850935d145010c8fcb26b513df1843505b3eb4c41888541a0113d')
+ version('3.15.0', sha256='3a381b132b140747e5fcd47354da6cf43959da2167f8bc598430bbac51224467')
+ version('3.14.0', sha256='f5b25f8059dd76595aeb419b1522dda78f281a75a7c56dceaaa443f8c437306a')
+ version('3.13.0', sha256='2803b89a2bff9f02032125fa7b7d0a204a60d8d14f232242344b5f09535e9a01')
+ version('3.12.0', sha256='87d9bad6d75916270bad14bb22fa5f487c7edee4774878c04bef82833bc9467d')
+ version('3.11.0', sha256='b802aba0bff49636907ca748225e21c56ecf3f3ebc143d582430036d4d9f6259')
diff --git a/var/spack/repos/builtin/packages/libluv/package.py b/var/spack/repos/builtin/packages/libluv/package.py
index 191f1da480..6a214ab604 100644
--- a/var/spack/repos/builtin/packages/libluv/package.py
+++ b/var/spack/repos/builtin/packages/libluv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libmacaroons/package.py b/var/spack/repos/builtin/packages/libmacaroons/package.py
new file mode 100644
index 0000000000..c024b72b94
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libmacaroons/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 Libmacaroons(AutotoolsPackage):
+ """"This library provides an implementation of macaroons[1], which
+ are flexible authorization tokens that work great in distributed
+ systems."""
+
+ homepage = "https://github.com/rescrv/libmacaroons/"
+ url = "https://github.com/rescrv/libmacaroons/archive/releases/0.3.0.tar.gz"
+
+ version('0.3.0', sha256='e1db403c01b0407a276a84b2aaf54515faebe1a5c1a31ec10857a1917161d109')
+ version('0.2.0', sha256='fa2146d89a4e844703896ece778f0c42b2b0ee3d09dea350ff34fd6873e72018')
+ version('0.1.0', sha256='0aa413d8a793f004874695466f93eed9c8e721524765704fe410694583928007')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('libsodium')
diff --git a/var/spack/repos/builtin/packages/libmad/package.py b/var/spack/repos/builtin/packages/libmad/package.py
index 2af11c4f94..c700a5cde8 100644
--- a/var/spack/repos/builtin/packages/libmad/package.py
+++ b/var/spack/repos/builtin/packages/libmad/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,7 +21,7 @@ class Libmad(AutotoolsPackage):
depends_on('m4', type='build')
# Patch orignally from here, adapted to create missing files:
- # http://www.linuxfromscratch.org/blfs/view/svn/multimedia/libmad.html
+ # https://www.linuxfromscratch.org/blfs/view/svn/multimedia/libmad.html
patch('libmad-0.15.1b.patch')
force_autoreconf = True
diff --git a/var/spack/repos/builtin/packages/libmatheval/package.py b/var/spack/repos/builtin/packages/libmatheval/package.py
index b50c4906f7..a58dad199a 100644
--- a/var/spack/repos/builtin/packages/libmatheval/package.py
+++ b/var/spack/repos/builtin/packages/libmatheval/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libmaus2/package.py b/var/spack/repos/builtin/packages/libmaus2/package.py
new file mode 100644
index 0000000000..7748d0ce01
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libmaus2/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 Libmaus2(AutotoolsPackage):
+ """libmaus2 is a collection of data structures and algorithmse."""
+
+ homepage = "https://gitlab.com/german.tischler/libmaus2"
+ url = "https://gitlab.com/german.tischler/libmaus2/-/archive/2.0.767-release-20201123131410/libmaus2-2.0.767-release-20201123131410.tar.gz"
+
+ version('2.0.767', sha256='40cec9bef2fb61d8df0a35cdf76c59a1d8389686d393805138c364d0c029f03c',
+ url='https://gitlab.com/german.tischler/libmaus2/-/archive/2.0.767-release-20201123131410/libmaus2-2.0.767-release-20201123131410.tar.gz')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ conflicts('%gcc@:7.9', msg="libmaus2 uses std::filesystem. std::filesystem requires greater than or equal to GCC 8.")
+
+ def setup_build_environment(self, env):
+ if self.spec.satisfies('%gcc@8.0:8.9') or self.spec.satisfies('%fj'):
+ env.append_flags('LDFLAGS', "-lstdc++fs")
diff --git a/var/spack/repos/builtin/packages/libmaxminddb/package.py b/var/spack/repos/builtin/packages/libmaxminddb/package.py
index db1590444a..93afe22ce3 100644
--- a/var/spack/repos/builtin/packages/libmaxminddb/package.py
+++ b/var/spack/repos/builtin/packages/libmaxminddb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libmbim/package.py b/var/spack/repos/builtin/packages/libmbim/package.py
new file mode 100644
index 0000000000..ff77ca3d1e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libmbim/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 Libmbim(AutotoolsPackage):
+ """Libmbim is a glib-based library for talking to WWAN modems and
+ devices which speak the Mobile Interface Broadband Model (MBIM)
+ protocol."""
+
+ homepage = "https://github.com/linux-mobile-broadband/libmbim/"
+ url = "https://github.com/linux-mobile-broadband/libmbim/archive/1.20.4.tar.gz"
+
+ version('1.20.4', sha256='edb56afb862a7756dc097086d8fa791c93332f6f1daf27759eff6ddc99a0f50d')
+ version('1.18.0', sha256='47003bfdf78bf32009a1d917f30c063079fa5bd4afc739d6d8ec356070b270df')
+ version('1.16.2', sha256='06b7a9e8430c6ab213d96c71a71469aefc86deb52cffd5e4f75121d9a79545e2')
+ version('1.16.0', sha256='d123426678f415c2ac4544534ed8a9ff54d133c2ba8c982ce667b793e54f8e99')
+ version('1.14.4', sha256='4b2e8723ea50b2e1d22695850c40abb9f7bcb713ea3b9f91f2c350aaa6ae8d1c')
+ version('1.14.2', sha256='bf161c4f78327f8422fd6a820e7e5571d99b719af45429e581bfd6a1585fe4a8')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('glib@:2.62.0')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./autogen.sh')
diff --git a/var/spack/repos/builtin/packages/libmcrypt/package.py b/var/spack/repos/builtin/packages/libmcrypt/package.py
new file mode 100644
index 0000000000..75daf5c23d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libmcrypt/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 Libmcrypt(AutotoolsPackage):
+ """Libmcrypt is a thread-safe library providing a uniform
+ interface to access several block and stream encryption
+ algorithms."""
+
+ homepage = "https://sourceforge.net/projects/mcrypt/files/Libmcrypt/"
+ url = "https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz"
+
+ version('2.5.8', sha256='e4eb6c074bbab168ac47b947c195ff8cef9d51a211cdd18ca9c9ef34d27a373e')
diff --git a/var/spack/repos/builtin/packages/libmd/package.py b/var/spack/repos/builtin/packages/libmd/package.py
new file mode 100644
index 0000000000..97054e03d1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libmd/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 Libmd(AutotoolsPackage):
+ """This library provides message digest functions found on BSD systems
+ either on their libc (NetBSD, OpenBSD) or libmd (FreeBSD, DragonflyBSD,
+ macOS, Solaris) libraries and lacking on others like GNU systems."""
+
+ homepage = "https://www.hadrons.org/software/libmd/"
+ url = "https://archive.hadrons.org/software/libmd/libmd-1.0.3.tar.xz"
+
+ maintainers = ['haampie']
+
+ version('1.0.3', sha256='5a02097f95cc250a3f1001865e4dbba5f1d15554120f95693c0541923c52af4a')
+ version('1.0.2', sha256='dc66b8278f82e7e1bf774fbd4bc83a0348e8f27afa185b2c2779cfcb3da25013')
+ version('1.0.1', sha256='e14eeb931cf85330f95ff822262d3033125488dfb2f867441e36e2d2c4a34c71')
+ version('1.0.0', sha256='f21aea69f6411cb4307cda1f6378c7ed07830202b5f4cb9e64f681fdaf2d64c7')
diff --git a/var/spack/repos/builtin/packages/libmesh/package.py b/var/spack/repos/builtin/packages/libmesh/package.py
index a828b3c87a..8a19a00fe6 100644
--- a/var/spack/repos/builtin/packages/libmesh/package.py
+++ b/var/spack/repos/builtin/packages/libmesh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Libmesh(AutotoolsPackage):
partial differential equations using arbitrary unstructured
discretizations on serial and parallel platforms."""
- homepage = "http://libmesh.github.io/"
+ homepage = "https://libmesh.github.io/"
url = "https://github.com/libMesh/libmesh/releases/download/v1.0.0/libmesh-1.0.0.tar.bz2"
git = "https://github.com/libMesh/libmesh.git"
diff --git a/var/spack/repos/builtin/packages/libmetalink/package.py b/var/spack/repos/builtin/packages/libmetalink/package.py
index 14c8ea8a11..ef2b897c0f 100644
--- a/var/spack/repos/builtin/packages/libmetalink/package.py
+++ b/var/spack/repos/builtin/packages/libmetalink/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libmicrodns/package.py b/var/spack/repos/builtin/packages/libmicrodns/package.py
new file mode 100644
index 0000000000..4da7753340
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libmicrodns/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 Libmicrodns(MesonPackage):
+ """Minimal mDNS resolver (and announcer) cross-platform library."""
+
+ homepage = "https://github.com/videolabs/libmicrodns/"
+ url = "https://github.com/videolabs/libmicrodns/releases/download/0.2.0/microdns-0.2.0.tar.xz"
+
+ version('0.2.0', sha256='2da28e7dda4861d76f797f92ac3e6c3e048333b95f9e4fc3a6548ad8afd8c446')
+ version('0.1.2', sha256='666c4b9d86b5b3c37357bb78453c7e8b72cd65ade22d0a7963bfbefe51509b5c')
+ version('0.1.1', sha256='498c81fd07718f449267a207948536cbb527610942d91999488eaea6de301c52')
diff --git a/var/spack/repos/builtin/packages/libmicrohttpd/package.py b/var/spack/repos/builtin/packages/libmicrohttpd/package.py
index 7f6daade04..152afe0e6f 100644
--- a/var/spack/repos/builtin/packages/libmicrohttpd/package.py
+++ b/var/spack/repos/builtin/packages/libmicrohttpd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libmmtf-cpp/package.py b/var/spack/repos/builtin/packages/libmmtf-cpp/package.py
index 3b2f58882f..85e03ed35d 100644
--- a/var/spack/repos/builtin/packages/libmmtf-cpp/package.py
+++ b/var/spack/repos/builtin/packages/libmmtf-cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libmng/package.py b/var/spack/repos/builtin/packages/libmng/package.py
index fd11340a63..7eb08206b3 100644
--- a/var/spack/repos/builtin/packages/libmng/package.py
+++ b/var/spack/repos/builtin/packages/libmng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Libmng(CMakePackage):
"""THE reference library for reading, displaying, writing
and examining Multiple-Image Network Graphics. MNG is the animation
extension to the popular PNG image format."""
- homepage = "http://sourceforge.net/projects/libmng/"
+ homepage = "https://sourceforge.net/projects/libmng/"
url = "http://downloads.sourceforge.net/project/libmng/libmng-devel/2.0.3/libmng-2.0.3.tar.gz"
version('2.0.3', sha256='cf112a1fb02f5b1c0fce5cab11ea8243852c139e669c44014125874b14b7dfaa')
diff --git a/var/spack/repos/builtin/packages/libmnl/package.py b/var/spack/repos/builtin/packages/libmnl/package.py
index 44b5321800..a19e593160 100644
--- a/var/spack/repos/builtin/packages/libmnl/package.py
+++ b/var/spack/repos/builtin/packages/libmnl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libmo-unpack/package.py b/var/spack/repos/builtin/packages/libmo-unpack/package.py
index a188f95652..8e174465a5 100644
--- a/var/spack/repos/builtin/packages/libmo-unpack/package.py
+++ b/var/spack/repos/builtin/packages/libmo-unpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libmodbus/package.py b/var/spack/repos/builtin/packages/libmodbus/package.py
index bb58528993..de3b732960 100644
--- a/var/spack/repos/builtin/packages/libmodbus/package.py
+++ b/var/spack/repos/builtin/packages/libmodbus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libmonitor/add-monitor-comm-rank-notification.patch b/var/spack/repos/builtin/packages/libmonitor/add-monitor-comm-rank-notification.patch
new file mode 100644
index 0000000000..52a7d338ad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libmonitor/add-monitor-comm-rank-notification.patch
@@ -0,0 +1,77 @@
+--- libmonitor/src/callback.c 2021-04-14 16:48:48.829169067 -0500
++++ libmonitor.fixes1/src/callback.c 2021-04-14 16:54:27.034918247 -0500
+@@ -179,3 +179,10 @@
+ MONITOR_DEBUG1("(default callback)\n");
+ return 0;
+ }
++
++void __attribute__ ((weak))
++monitor_mpi_post_comm_rank(void)
++{
++ MONITOR_DEBUG1("(default callback)\n");
++}
++
+--- libmonitor/src/monitor.h 2021-04-14 16:48:48.829169067 -0500
++++ libmonitor.fixes1/src/monitor.h 2021-04-14 16:55:21.539716667 -0500
+@@ -78,6 +78,7 @@
+ extern void monitor_init_mpi(int *argc, char ***argv);
+ extern void monitor_fini_mpi(void);
+ extern void monitor_mpi_post_fini(void);
++extern void monitor_mpi_post_comm_rank(void);
+
+ /*
+ * Monitor support functions.
+--- libmonitor/src/mpi_comm_c.c 2021-04-14 16:48:48.853168977 -0500
++++ libmonitor.fixes1/src/mpi_comm_c.c 2021-04-14 16:56:42.468417362 -0500
+@@ -35,6 +35,7 @@
+ ret = (*real_mpi_comm_size)(comm, &size);
+ ret = (*real_mpi_comm_rank)(comm, rank);
+ monitor_set_mpi_size_rank(size, *rank);
++ monitor_mpi_post_comm_rank();
+
+ return (ret);
+ }
+--- libmonitor/src/mpi_comm_f0.c 2021-04-14 16:48:48.853168977 -0500
++++ libmonitor.fixes1/src/mpi_comm_f0.c 2021-04-14 17:04:22.915714717 -0500
+@@ -34,4 +34,5 @@
+ (*real_mpi_comm_size)(comm, &size, ierror);
+ (*real_mpi_comm_rank)(comm, rank, ierror);
+ monitor_set_mpi_size_rank(size, *rank);
++ monitor_mpi_post_comm_rank();
+ }
+--- libmonitor/src/mpi_comm_f1.c 2021-04-14 16:48:48.853168977 -0500
++++ libmonitor.fixes1/src/mpi_comm_f1.c 2021-04-14 17:04:28.016695854 -0500
+@@ -34,4 +34,5 @@
+ (*real_mpi_comm_size)(comm, &size, ierror);
+ (*real_mpi_comm_rank)(comm, rank, ierror);
+ monitor_set_mpi_size_rank(size, *rank);
++ monitor_mpi_post_comm_rank();
+ }
+--- libmonitor/src/mpi_comm_f2.c 2021-04-14 16:48:48.853168977 -0500
++++ libmonitor.fixes1/src/mpi_comm_f2.c 2021-04-14 17:04:35.276669009 -0500
+@@ -34,4 +34,5 @@
+ (*real_mpi_comm_size)(comm, &size, ierror);
+ (*real_mpi_comm_rank)(comm, rank, ierror);
+ monitor_set_mpi_size_rank(size, *rank);
++ monitor_mpi_post_comm_rank();
+ }
+--- libmonitor/src/pmpi.c 2021-04-14 16:48:48.853168977 -0500
++++ libmonitor.fixes1/src/pmpi.c 2021-04-15 16:54:08.532018684 -0500
+@@ -297,6 +297,7 @@
+ ret = (*real_pmpi_comm_size)(comm, &size);
+ ret = (*real_pmpi_comm_rank)(comm, rank);
+ monitor_set_mpi_size_rank(size, *rank);
++ monitor_mpi_post_comm_rank();
+
+ return (ret);
+ }
+@@ -308,7 +309,8 @@
+ MONITOR_GET_REAL_NAME_WRAP(rank_var, rank_fcn); \
+ (*size_var)(comm, &size, ierror); \
+ (*rank_var)(comm, rank, ierror); \
+- monitor_set_mpi_size_rank(size, *rank);
++ monitor_set_mpi_size_rank(size, *rank); \
++ monitor_mpi_post_comm_rank();
+
+ /*
+ * In Fortran, MPI_Comm is always int.
diff --git a/var/spack/repos/builtin/packages/libmonitor/libmonitorkrell-0000.patch b/var/spack/repos/builtin/packages/libmonitor/libmonitorkrell-0000.patch
deleted file mode 100644
index 3a90106850..0000000000
--- a/var/spack/repos/builtin/packages/libmonitor/libmonitorkrell-0000.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- libmonitor-20130218/configure 2013-02-17 23:08:32.000000000 -0800
-+++ libmonitor-20130218-fixes/configure 2013-02-18 10:34:05.237918411 -0800
-@@ -3600,13 +3600,13 @@
- CFLAGS=$ac_save_CFLAGS
- elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
-- CFLAGS="-g -O2"
-+ CFLAGS="-g -O0"
- else
- CFLAGS="-g"
- fi
- else
- if test "$GCC" = yes; then
-- CFLAGS="-O2"
-+ CFLAGS="-O0"
- else
- CFLAGS=
- fi
diff --git a/var/spack/repos/builtin/packages/libmonitor/package.py b/var/spack/repos/builtin/packages/libmonitor/package.py
index e396d0c80b..bdfeef48b7 100644
--- a/var/spack/repos/builtin/packages/libmonitor/package.py
+++ b/var/spack/repos/builtin/packages/libmonitor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,8 @@ class Libmonitor(AutotoolsPackage):
maintainers = ['mwkrentel']
version('master', branch='master')
+ version('2021.04.27', commit='a2d1b6be23410ef1ad2c9d0006672453803243c2')
+ version('2020.10.15', commit='36e5cb7ebeadfff01476b79ff04f6ec772ba831d')
version('2019.05.31', commit='c9767087d52e58a719aa7f149136b101e499db44')
version('2018.07.18', commit='d28cc1d3c08c02013a68a022a57a6ac73db88166')
version('2013.02.18', commit='4f2311e413fd90583263d6f20453bbe552ccfef3')
@@ -24,13 +26,18 @@ class Libmonitor(AutotoolsPackage):
variant('hpctoolkit', default=False,
description='Configure for HPCToolkit')
- # Configure for Krell and OpenSpeedshop.
- variant('krellpatch', default=False,
- description="Build with openspeedshop based patch.")
+ # Configure for OpenSpeedshop and Survey.
+ # Configure for adding MPI Post Comm Rank support
+ variant('commrank', default=False,
+ description="Build with MPI Post Comm Rank support patch.")
- patch('libmonitorkrell-0000.patch', when='@2013.02.18+krellpatch')
- patch('libmonitorkrell-0001.patch', when='@2013.02.18+krellpatch')
- patch('libmonitorkrell-0002.patch', when='@2013.02.18+krellpatch')
+ variant('dlopen', default=True,
+ description='Override dlopen and dlclose')
+
+ patch('libmonitorkrell-0001.patch', when='@2013.02.18+commrank')
+ patch('libmonitorkrell-0002.patch', when='@2013.02.18+commrank')
+
+ patch('add-monitor-comm-rank-notification.patch', when='@2020.10.15+commrank')
signals = 'SIGBUS, SIGSEGV, SIGPROF, 36, 37, 38'
@@ -55,4 +62,9 @@ class Libmonitor(AutotoolsPackage):
if '+hpctoolkit' in self.spec:
args.append('--enable-client-signals=%s' % self.signals)
+ if '+dlopen' in self.spec:
+ args.append('--enable-dlfcn')
+ else:
+ args.append('--disable-dlfcn')
+
return args
diff --git a/var/spack/repos/builtin/packages/libmpdclient/package.py b/var/spack/repos/builtin/packages/libmpdclient/package.py
new file mode 100644
index 0000000000..e211f83abb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libmpdclient/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 Libmpdclient(MesonPackage):
+ """Libmpdclient is a C library which implements the Music Player
+ Daemon protocol."""
+
+ homepage = "https://www.musicpd.org/"
+ url = "https://github.com/MusicPlayerDaemon/libmpdclient/archive/v2.19.tar.gz"
+
+ version('2.19', sha256='12b566b75c3b6789ff8fc94698497d1f3fbaf0cbf9fa6c3a1e3906ef0d2bcbbb')
+ version('2.18', sha256='9b97d00022f2053c06d87bff40b319dfab930ee2b5fa9b8dec208a2911ca3efc')
+ version('2.17', sha256='06eb4b67c63f64d647e97257ff5f8506bf9c2a26b314bf5d0dd5944995b59fc9')
+ version('2.16', sha256='6651898489b69d2f2f8e94f0ed6ddcc0dd2cdbcf99b02131b790551922558d6c')
+ version('2.15', sha256='dd3d36801e397bf43719a291289ff610af71859c08f3196a506e4b1af43c290c')
diff --git a/var/spack/repos/builtin/packages/libnbc/package.py b/var/spack/repos/builtin/packages/libnbc/package.py
index b3c4795206..35450a6fff 100644
--- a/var/spack/repos/builtin/packages/libnbc/package.py
+++ b/var/spack/repos/builtin/packages/libnbc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libndp/package.py b/var/spack/repos/builtin/packages/libndp/package.py
new file mode 100644
index 0000000000..d0eb3dd71e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libndp/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 Libndp(AutotoolsPackage):
+ """Libndp - Library for Neighbor Discovery Protocol"""
+
+ homepage = "http://www.libndp.org/"
+ url = "https://github.com/jpirko/libndp/archive/v1.7.tar.gz"
+
+ version('1.7', sha256='44be73630ee785ed9f571f9aaaeba0e1d375fa337fd841270034c813b5b0e6fd')
+ version('1.6', sha256='565d6c4167f83ec697c762ea002f23e8f0b00828d0749b1ce928f068543e5aad')
+ version('1.5', sha256='42c0a8938d4302c72a42e2d954deef7e4903bb3974da6804a929a3cd0b5b6aa7')
+ version('1.4', sha256='b9b23d14e9b2d87745810d9d0e956e9fb45f44e794b1629492850c5a8fbbb083')
+ version('1.3', sha256='e933dc1b9ce85089de8ba0f6ba4c3ec47eba0e9a404e14c1789a6fa9e23793f6')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
diff --git a/var/spack/repos/builtin/packages/libnet/package.py b/var/spack/repos/builtin/packages/libnet/package.py
index 7d042b3101..4e26343dcb 100644
--- a/var/spack/repos/builtin/packages/libnet/package.py
+++ b/var/spack/repos/builtin/packages/libnet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libnetfilter-conntrack/package.py b/var/spack/repos/builtin/packages/libnetfilter-conntrack/package.py
index 3f6097cbd6..fa88f17a06 100644
--- a/var/spack/repos/builtin/packages/libnetfilter-conntrack/package.py
+++ b/var/spack/repos/builtin/packages/libnetfilter-conntrack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class LibnetfilterConntrack(AutotoolsPackage):
"""libnetfilter_conntrack is a userspace library providing a programming
interface (API) to the in-kernel connection tracking state table."""
- homepage = "http://netfilter.org"
+ homepage = "https://netfilter.org"
url = "https://github.com/Distrotech/libnetfilter_conntrack/archive/libnetfilter_conntrack-1.0.4.tar.gz"
version('1.0.4', sha256='68168697b9d6430b7797ddd579e13a2cef06ea15c154dfd14e18be64e035ea6e')
diff --git a/var/spack/repos/builtin/packages/libnetfilter-cthelper/package.py b/var/spack/repos/builtin/packages/libnetfilter-cthelper/package.py
new file mode 100644
index 0000000000..a733696112
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libnetfilter-cthelper/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 LibnetfilterCthelper(AutotoolsPackage):
+ """Libnetfilter-cthelper library for user space helpers / ALGs"""
+
+ homepage = "https://github.com/vyos/libnetfilter-cthelper/"
+ url = "https://github.com/vyos/libnetfilter-cthelper/archive/VyOS_1.2-2019Q4.tar.gz"
+
+ version('1.2-2019Q4', sha256='15a7b13999d1428d75e720c8116318cd51bec1d365852ae1778d3c85b93a9777')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('libmnl')
diff --git a/var/spack/repos/builtin/packages/libnetfilter-cttimeout/package.py b/var/spack/repos/builtin/packages/libnetfilter-cttimeout/package.py
new file mode 100644
index 0000000000..4a8ca158e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libnetfilter-cttimeout/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 LibnetfilterCttimeout(AutotoolsPackage):
+ """Conntrack timeout policy library."""
+
+ homepage = "https://github.com/vyos/libnetfilter-cttimeout/"
+ url = "https://github.com/vyos/libnetfilter-cttimeout/archive/VyOS_1.2-2019Q4.tar.gz"
+
+ version('1.2-2019Q4', sha256='71cebdf07a578901b160a54199062a4b4cd445e14742e2c7badc0900d8ae56b6')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('libmnl')
diff --git a/var/spack/repos/builtin/packages/libnetfilter-queue/package.py b/var/spack/repos/builtin/packages/libnetfilter-queue/package.py
new file mode 100644
index 0000000000..2f28ec8a46
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libnetfilter-queue/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 LibnetfilterQueue(AutotoolsPackage):
+ """Libnetfilter-queue libnetfilter queue library."""
+
+ homepage = "https://github.com/vyos/libnetfilter-queue/"
+ url = "https://github.com/vyos/libnetfilter-queue/archive/VyOS_1.2-2019Q4.tar.gz"
+
+ version('1.2-2019Q4', sha256='73b87e600b492cf9e3aa8fb6e9855e1ccc523a7bc466c1fd1a0e6ffa424d746e')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('libnfnetlink')
+ depends_on('libmnl')
diff --git a/var/spack/repos/builtin/packages/libnetworkit/0001-Name-agnostic-import-of-tlx-library-90.patch b/var/spack/repos/builtin/packages/libnetworkit/0001-Name-agnostic-import-of-tlx-library-90.patch
new file mode 100644
index 0000000000..a330172db0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libnetworkit/0001-Name-agnostic-import-of-tlx-library-90.patch
@@ -0,0 +1,17 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -224,10 +224,11 @@ if(NOT NETWORKIT_EXT_TLX)
+ "Please run `git submodule update --init` to fetch the submodule.")
+ endif()
+ else()
++ file(GLOB tlx_path ${NETWORKIT_EXT_TLX}/lib/**.a)
+ add_library(tlx STATIC IMPORTED)
+ set_target_properties(tlx PROPERTIES
+- IMPORTED_LOCATION "${NETWORKIT_EXT_TLX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}tlx${CMAKE_STATIC_LIBRARY_SUFFIX}"
+- INTERFACE_INCLUDE_DIRECTORIES "${NETWORKIT_EXT_TLX}/include/")
++ IMPORTED_LOCATION "${tlx_path}"
++ INTERFACE_INCLUDE_DIRECTORIES "${NETWORKIT_EXT_TLX}/include/")
+ endif()
+
+ ################################################################################
+
diff --git a/var/spack/repos/builtin/packages/libnetworkit/package.py b/var/spack/repos/builtin/packages/libnetworkit/package.py
index de624a27f1..32d34aa38c 100644
--- a/var/spack/repos/builtin/packages/libnetworkit/package.py
+++ b/var/spack/repos/builtin/packages/libnetworkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,6 +22,9 @@ class Libnetworkit(CMakePackage):
maintainers = ['fabratu']
+ version('9.0', sha256='c574473bc7d86934f0f4b3049c0eeb9c4444cfa873e5fecda194ee5b1930f82c')
+ version('8.1', sha256='0a22eb839606b9fabfa68c7add12c4de5eee735c6f8bb34420e5916ce5d7f829')
+ version('8.0', sha256='cdf9571043edbe76c447622ed33efe9cba2880f887ca231d98f6d3c22027e20e')
version('7.1', sha256='60026c3be581ae9d5c919c861605082fcb9c8205758b3ddfcde2408153ae166e')
version('7.0', sha256='4faf16c5fae3e14d3c1b6f30e25c6e093dcf6a3dbf021235f3161ac2a527f682')
version('6.1', sha256='22c953ea1054c356663b31c77114c2f0c8fec17e0e707aeec23026241beab9b2')
@@ -32,7 +35,8 @@ class Libnetworkit(CMakePackage):
depends_on('libtlx')
depends_on('py-sphinx', when='+doc', type='build')
- patch('0001-Name-agnostic-import-of-tlx-library.patch', when='@6.1:')
+ patch('0001-Name-agnostic-import-of-tlx-library.patch', when='@6.1:8.1')
+ patch('0001-Name-agnostic-import-of-tlx-library-90.patch', when='@9.0:')
def cmake_args(self):
spec = self.spec
@@ -40,7 +44,6 @@ class Libnetworkit(CMakePackage):
tlx_libs = spec['libtlx'].prefix
args = ['-DNETWORKIT_EXT_TLX=%s' % tlx_libs,
- '-DNETWORKIT_STATIC=%s' %
- ('ON' if '+static' in spec else 'OFF')]
+ self.define_from_variant('NETWORKIT_STATIC', 'static')]
return args
diff --git a/var/spack/repos/builtin/packages/libnfnetlink/package.py b/var/spack/repos/builtin/packages/libnfnetlink/package.py
index d46de4dace..175a45151c 100644
--- a/var/spack/repos/builtin/packages/libnfnetlink/package.py
+++ b/var/spack/repos/builtin/packages/libnfnetlink/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Libnfnetlink(AutotoolsPackage):
netfilter subsystem specific libraries such as libnfnetlink_conntrack,
libnfnetlink_log and libnfnetlink_queue."""
- homepage = "http://netfilter.org"
+ homepage = "https://netfilter.org"
url = "https://github.com/Distrotech/libnfnetlink/archive/libnfnetlink-1.0.1.tar.gz"
version('1.0.1', sha256='11dd8a1045b03d47c878535eeb6b9eb34db295d21903a4dfd2c2cc63f45e675b')
diff --git a/var/spack/repos/builtin/packages/libnfs/package.py b/var/spack/repos/builtin/packages/libnfs/package.py
new file mode 100644
index 0000000000..20edf14cb4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libnfs/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 Libnfs(CMakePackage):
+ """LIBNFS is a client library for accessing NFS shares over a network."""
+
+ homepage = "https://sites.google.com/site/libnfstarballs/"
+ url = "https://github.com/sahlberg/libnfs/archive/libnfs-4.0.0.tar.gz"
+
+ version('4.0.0', sha256='6ee77e9fe220e2d3e3b1f53cfea04fb319828cc7dbb97dd9df09e46e901d797d')
+ version('3.0.0', sha256='445d92c5fc55e4a5b115e358e60486cf8f87ee50e0103d46a02e7fb4618566a5')
+ version('2.0.0', sha256='7ea6cd8fa6c461d01091e584d424d28e137d23ff4b65b95d01a3fd0ef95d120e')
+ version('1.11.0', sha256='fc2e45df14d8714ccd07dc2bbe919e45a2e36318bae7f045cbbb883a7854640f')
+ version('1.10.0', sha256='7f6c62a05c7e0f0749f2b13f178a4ed7aaf17bd09e65a10bb147bfe9807da272')
diff --git a/var/spack/repos/builtin/packages/libnfsidmap/package.py b/var/spack/repos/builtin/packages/libnfsidmap/package.py
new file mode 100644
index 0000000000..fa53aaa60f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libnfsidmap/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Libnfsidmap(AutotoolsPackage):
+ """Library to help mapping id's, mainly for NFSv4."""
+
+ homepage = "https://github.com/Distrotech/libnfsidmap/"
+ url = "https://github.com/Distrotech/libnfsidmap/archive/libnfsidmap-0-27-rc2.tar.gz"
+
+ version('0-26', sha256='8c6d62285b528d673fcb8908fbe230ae82287b292d90925d014c6f367e8425ef')
+ version('0-25', sha256='dbf844a2aa820d7275eca55c2e392d12453ab4020d37d532ea6beac47efc4725')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./autogen.sh')
diff --git a/var/spack/repos/builtin/packages/libnftnl/package.py b/var/spack/repos/builtin/packages/libnftnl/package.py
index ae95c760fd..ed72bbbd78 100644
--- a/var/spack/repos/builtin/packages/libnftnl/package.py
+++ b/var/spack/repos/builtin/packages/libnftnl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libnids/package.py b/var/spack/repos/builtin/packages/libnids/package.py
new file mode 100644
index 0000000000..95fc287aef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libnids/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 Libnids(AutotoolsPackage):
+ """Libnids is a library that provides a functionality of one of
+ NIDS (Network Intrusion Detection System) components, namely
+ E-component."""
+
+ homepage = "http://libnids.sourceforge.net/"
+ url = "https://github.com/MITRECND/libnids/archive/1.25.tar.gz"
+ git = "https://github.com/MITRECND/libnids.git"
+
+ version('master', branch='master')
+ version('1.25', sha256='47aa634bd0cdad81e092fac3aef6f12ee346c2f536a1eff4d3d5dacdb6dfcec1')
+
+ depends_on('libpcap')
+ depends_on('libnet')
+ depends_on('glib@2.2.0:')
diff --git a/var/spack/repos/builtin/packages/libnl/package.py b/var/spack/repos/builtin/packages/libnl/package.py
index 4a2c1daa73..880fe24dc9 100644
--- a/var/spack/repos/builtin/packages/libnl/package.py
+++ b/var/spack/repos/builtin/packages/libnl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libnotify/package.py b/var/spack/repos/builtin/packages/libnotify/package.py
index 6407fd6406..b11f9dbac9 100644
--- a/var/spack/repos/builtin/packages/libnotify/package.py
+++ b/var/spack/repos/builtin/packages/libnotify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libnova/package.py b/var/spack/repos/builtin/packages/libnova/package.py
index 179c7aa9d1..61ea276cca 100644
--- a/var/spack/repos/builtin/packages/libnova/package.py
+++ b/var/spack/repos/builtin/packages/libnova/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libnrm/package.py b/var/spack/repos/builtin/packages/libnrm/package.py
index 27c3c8e34e..13a9e1dc65 100644
--- a/var/spack/repos/builtin/packages/libnrm/package.py
+++ b/var/spack/repos/builtin/packages/libnrm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libnsl/package.py b/var/spack/repos/builtin/packages/libnsl/package.py
index 8be6d48f71..733ffd5af9 100644
--- a/var/spack/repos/builtin/packages/libnsl/package.py
+++ b/var/spack/repos/builtin/packages/libnsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,12 @@ class Libnsl(AutotoolsPackage):
in a IPv6 ready version."""
homepage = "https://github.com/thkukuk/libnsl"
- url = "https://github.com/thkukuk/libnsl/archive/v1.2.0.tar.gz"
+ url = "https://github.com/thkukuk/libnsl/archive/v1.3.0.tar.gz"
+ version('1.3.0', sha256='8e88017f01dd428f50386186b0cd82ad06c9b2a47f9c5ea6b3023fc6e08a6b0f')
version('1.2.0', sha256='a5a28ef17c4ca23a005a729257c959620b09f8c7f99d0edbfe2eb6b06bafd3f8')
+ version('1.1.0', sha256='f9f0b2e2412aae1d33d40277809d7af1b867f1cb1b7319ad4d0cfa59a75e193a',
+ url='https://github.com/thkukuk/libnsl/archive/1.1.0.tar.gz')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
diff --git a/var/spack/repos/builtin/packages/libogg/package.py b/var/spack/repos/builtin/packages/libogg/package.py
index 71d0d90c98..d19ea2907f 100644
--- a/var/spack/repos/builtin/packages/libogg/package.py
+++ b/var/spack/repos/builtin/packages/libogg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,4 +13,5 @@ class Libogg(AutotoolsPackage):
homepage = "https://www.xiph.org/ogg/"
url = "http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz"
+ version('1.3.4', sha256='fe5670640bd49e828d64d2879c31cb4dde9758681bb664f9bdbf159a01b0c76e')
version('1.3.2', sha256='e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692')
diff --git a/var/spack/repos/builtin/packages/liboldx/package.py b/var/spack/repos/builtin/packages/liboldx/package.py
index bab3d9513b..318047e448 100644
--- a/var/spack/repos/builtin/packages/liboldx/package.py
+++ b/var/spack/repos/builtin/packages/liboldx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libopts/package.py b/var/spack/repos/builtin/packages/libopts/package.py
index 76ca316a96..cceb9b1bc0 100644
--- a/var/spack/repos/builtin/packages/libopts/package.py
+++ b/var/spack/repos/builtin/packages/libopts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libp11/package.py b/var/spack/repos/builtin/packages/libp11/package.py
index 66947f8b06..0886aa1e7a 100644
--- a/var/spack/repos/builtin/packages/libp11/package.py
+++ b/var/spack/repos/builtin/packages/libp11/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libpam/package.py b/var/spack/repos/builtin/packages/libpam/package.py
index a4e131f7a7..4081bff4c4 100644
--- a/var/spack/repos/builtin/packages/libpam/package.py
+++ b/var/spack/repos/builtin/packages/libpam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libpaper/package.py b/var/spack/repos/builtin/packages/libpaper/package.py
index ac474b7036..e5ec5f5a48 100644
--- a/var/spack/repos/builtin/packages/libpaper/package.py
+++ b/var/spack/repos/builtin/packages/libpaper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Libpaper(AutotoolsPackage):
user-specified paper size."""
homepage = "https://packages.debian.org/unstable/source/libpaper"
- url = "http://deb.debian.org/debian/pool/main/libp/libpaper/libpaper_1.1.28.tar.gz"
+ url = "https://deb.debian.org/debian/pool/main/libp/libpaper/libpaper_1.1.28.tar.gz"
version('1.1.28', sha256='c8bb946ec93d3c2c72bbb1d7257e90172a22a44a07a07fb6b802a5bb2c95fddc')
diff --git a/var/spack/repos/builtin/packages/libpcap/package.py b/var/spack/repos/builtin/packages/libpcap/package.py
index 6c7614b901..c8615f7291 100644
--- a/var/spack/repos/builtin/packages/libpcap/package.py
+++ b/var/spack/repos/builtin/packages/libpcap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,13 @@ from spack import *
class Libpcap(AutotoolsPackage):
"""libpcap is a portable library in C/C++ for packet capture."""
- homepage = "http://www.tcpdump.org/"
- list_url = "http://www.tcpdump.org/release/"
- url = "http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz"
+ homepage = "https://www.tcpdump.org/"
+ list_url = "https://www.tcpdump.org/release/"
+ url = "https://www.tcpdump.org/release/libpcap-1.8.1.tar.gz"
- version('1.8.1', sha256='673dbc69fdc3f5a86fb5759ab19899039a8e5e6c631749e48dcd9c6f0c83541e')
+ version('1.10.0', sha256='8d12b42623eeefee872f123bd0dc85d535b00df4d42e865f993c40f7bfc92b1e')
+ version('1.9.1', sha256='635237637c5b619bcceba91900666b64d56ecb7be63f298f601ec786ce087094')
+ version('1.8.1', sha256='673dbc69fdc3f5a86fb5759ab19899039a8e5e6c631749e48dcd9c6f0c83541e')
depends_on('flex', type='build')
depends_on('bison', type='build')
diff --git a/var/spack/repos/builtin/packages/libpciaccess/package.py b/var/spack/repos/builtin/packages/libpciaccess/package.py
index c82dedf55e..def39f36ce 100644
--- a/var/spack/repos/builtin/packages/libpciaccess/package.py
+++ b/var/spack/repos/builtin/packages/libpciaccess/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libpciaccess(AutotoolsPackage, XorgPackage):
"""Generic PCI access library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libpciaccess/"
xorg_mirror_path = "lib/libpciaccess-0.13.5.tar.gz"
version('0.16', sha256='84413553994aef0070cf420050aa5c0a51b1956b404920e21b81e96db6a61a27')
@@ -31,10 +31,12 @@ class Libpciaccess(AutotoolsPackage, XorgPackage):
# libpciaccess built by gcc should be usable by PGI builds.
conflicts('%pgi')
+ conflicts('platform=darwin')
+
def configure_args(self):
config_args = []
- if (self.spec.satisfies('%nvhpc') and
+ if (self.spec.satisfies('%nvhpc@:20.11') and
(self.spec.target.family == 'aarch64' or
self.spec.target.family == 'ppc64le')):
config_args.append('--disable-strict-compilation')
diff --git a/var/spack/repos/builtin/packages/libpeas/package.py b/var/spack/repos/builtin/packages/libpeas/package.py
index ef96d9d91f..298abade3f 100644
--- a/var/spack/repos/builtin/packages/libpeas/package.py
+++ b/var/spack/repos/builtin/packages/libpeas/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Libpeas(AutotoolsPackage):
"""libpeas is a gobject-based plugins engine, and is targeted at
@@ -37,7 +38,7 @@ class Libpeas(AutotoolsPackage):
depends_on('pango')
depends_on('gnome-common')
depends_on('py-pygobject@3:', type='build')
- depends_on('python@3:', type='build')
+ depends_on('python@3:3.7.9', type='build')
def url_for_version(self, version):
url = 'https://download.gnome.org/sources/libpeas/'
@@ -86,7 +87,7 @@ class Libpeas(AutotoolsPackage):
def autoreconf(self, spec, prefix):
autoreconf_args = ['-ivf']
- aclocal_pkg_list = ['pkg-config',
+ aclocal_pkg_list = ['pkgconfig',
'gettext',
'intltool',
'glib',
diff --git a/var/spack/repos/builtin/packages/libpfm4/package.py b/var/spack/repos/builtin/packages/libpfm4/package.py
index 7b13007056..7f845e9b89 100644
--- a/var/spack/repos/builtin/packages/libpfm4/package.py
+++ b/var/spack/repos/builtin/packages/libpfm4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libpipeline/package.py b/var/spack/repos/builtin/packages/libpipeline/package.py
index e5314da745..48aa83f707 100644
--- a/var/spack/repos/builtin/packages/libpipeline/package.py
+++ b/var/spack/repos/builtin/packages/libpipeline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Libpipeline(AutotoolsPackage):
in a flexible and convenient way."""
homepage = "http://libpipeline.nongnu.org/"
- url = "http://git.savannah.nongnu.org/cgit/libpipeline.git/snapshot/libpipeline-1.4.2.tar.gz"
+ url = "https://git.savannah.nongnu.org/cgit/libpipeline.git/snapshot/libpipeline-1.4.2.tar.gz"
version('1.4.2', sha256='ac8b103b281ff63129c4fa6a8cc40bb5863e3a4266343d6e3bb5788de1ede488')
diff --git a/var/spack/repos/builtin/packages/libplist/package.py b/var/spack/repos/builtin/packages/libplist/package.py
index 8b102b66fd..c0b4714304 100644
--- a/var/spack/repos/builtin/packages/libplist/package.py
+++ b/var/spack/repos/builtin/packages/libplist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libpmemobj-cpp/package.py b/var/spack/repos/builtin/packages/libpmemobj-cpp/package.py
index 60ee417714..443a79e530 100644
--- a/var/spack/repos/builtin/packages/libpmemobj-cpp/package.py
+++ b/var/spack/repos/builtin/packages/libpmemobj-cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,17 +10,31 @@ class LibpmemobjCpp(CMakePackage):
"""C++ bindings for libpmemobj (https://github.com/pmem/pmdk)"""
homepage = "https://github.com/pmem/libpmemobj-cpp"
- url = "https://github.com/pmem/libpmemobj-cpp/archive/1.6.tar.gz"
+ url = "https://github.com/pmem/libpmemobj-cpp/archive/1.12.tar.gz"
git = "https://github.com/pmem/libpmemobj-cpp.git"
- version('develop', branch='master')
- version('1.6', sha256='791bf86c6b9401451e3d20f19cb8799d312b9d58659cb93aa532cd724db554ae')
- version('1.5.1', sha256='0448bac4697f6563789e5bf22b8556288ae67ab916608bc45d0a3baa24c67985')
- version('1.5', sha256='6254aa2fb77977f8b91998eb866216d2af22f4ccbffdfc7932df1dff151da61e')
+ version('develop', branch='master')
+ version('1.12', sha256='5a7e082a862affbd87ff174b790be7db77f7d85d4c583acc34011f1104bc54a9')
+ version('1.11', sha256='2818f3ce23c861222d2765c377e6d4ccf8a2e2f66e4d23e4e2c35f4246f4a403')
+ version('1.10', sha256='bba31d9a1c21b38c20cbe2d2b152effef7e2debfa89a87e0c32de616c31d9191')
+ version('1.9', sha256='0284c20e7f642f16b3d49d576a6540bcf68330962ac273e11b07158b6e769689')
+ version('1.8', sha256='dcf60be1140a90f10b8eeb763d53e3dfcdf5a5b345e10f78d469356642527b32')
+ version('1.7', sha256='53af87a648ff28a74d6856ce2125ca4acdb0c4b78062df1cba18d50d35e3eada')
+ version('1.6', sha256='791bf86c6b9401451e3d20f19cb8799d312b9d58659cb93aa532cd724db554ae')
+ version('1.5.1', sha256='0448bac4697f6563789e5bf22b8556288ae67ab916608bc45d0a3baa24c67985')
+ version('1.5', sha256='6254aa2fb77977f8b91998eb866216d2af22f4ccbffdfc7932df1dff151da61e')
# libpmemobj only supports 'Debug' and 'Release'
variant('build_type', default='Release',
description='CMake build type',
values=('Debug', 'Release'))
- depends_on('pmdk')
+ depends_on('pmdk@master', when='@develop')
+ depends_on('pmdk@1.9:', when='@1.12:')
+ depends_on('pmdk@1.8:', when='@1.9:')
+ depends_on('pmdk@1.7:', when='@1.8:')
+ depends_on('pmdk@1.4:', when='@1.5:')
+
+ def cmake_args(self):
+ args = ['-DTESTS_USE_VALGRIND=OFF']
+ return args
diff --git a/var/spack/repos/builtin/packages/libpng/package.py b/var/spack/repos/builtin/packages/libpng/package.py
index 3514ff5a36..584688a3a8 100644
--- a/var/spack/repos/builtin/packages/libpng/package.py
+++ b/var/spack/repos/builtin/packages/libpng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,10 @@ class Libpng(AutotoolsPackage):
"""libpng is the official PNG reference library."""
homepage = "http://www.libpng.org/pub/png/libpng.html"
- url = "https://github.com/glennrp/libpng/archive/v1.6.37.tar.gz"
+ url = "https://prdownloads.sourceforge.net/libpng/libpng-1.6.37.tar.xz"
git = "https://github.com/glennrp/libpng.git"
- version('1.6.37', sha256='ca74a0dace179a8422187671aee97dd3892b53e168627145271cad5b5ac81307')
+ version('1.6.37', sha256='505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca')
# From http://www.libpng.org/pub/png/libpng.html (2019-04-15)
# libpng versions 1.6.36 and earlier have a use-after-free bug in the
# simplified libpng API png_image_free(). It has been assigned ID
@@ -21,7 +21,7 @@ class Libpng(AutotoolsPackage):
# released on 15 April 2019.
# Required for qt@3
- version('1.2.57', sha256='7f415186d38ca71c23058386d7cf5135c8beda821ee1beecdc2a7a26c0356615')
+ version('1.2.57', sha256='0f4620e11fa283fedafb474427c8e96bf149511a1804bdc47350963ae5cf54d8')
depends_on('zlib@1.0.4:') # 1.2.5 or later recommended
diff --git a/var/spack/repos/builtin/packages/libproxy/package.py b/var/spack/repos/builtin/packages/libproxy/package.py
index 171ed8c28e..ab33c26c1d 100644
--- a/var/spack/repos/builtin/packages/libproxy/package.py
+++ b/var/spack/repos/builtin/packages/libproxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,15 @@ class Libproxy(CMakePackage):
"""libproxy is a library that provides automatic proxy configuration
management."""
- homepage = "http://libproxy.github.io/libproxy/"
+ homepage = "https://libproxy.github.io/libproxy/"
url = "https://github.com/libproxy/libproxy/archive/0.4.15.tar.gz"
+ version('0.4.17', sha256='88c624711412665515e2800a7e564aabb5b3ee781b9820eca9168035b0de60a9')
+ version('0.4.16', sha256='9e7959d6ae1d6c817f0ac1e253105ce8d99f55d7821c1b6eaef32bf6879c6f0a')
version('0.4.15', sha256='18f58b0a0043b6881774187427ead158d310127fc46a1c668ad6d207fb28b4e0')
version('0.4.14', sha256='6220a6cab837a8996116a0568324cadfd09a07ec16b930d2a330e16d5c2e1eb6')
- version('0.4.13', sha256='d610bc0ef81a18ba418d759c5f4f87bf7102229a9153fb397d7d490987330ffd')
+ version('0.4.13', sha256='d610bc0ef81a18ba418d759c5f4f87bf7102229a9153fb397d7d490987330ffd')
+
+ depends_on('zlib')
+ depends_on('python', type=('build', 'run'), when='@0.4.16:')
+ depends_on('python@:3.6.99', type=('build', 'run'), when='@:0.4.15')
diff --git a/var/spack/repos/builtin/packages/libpsl/package.py b/var/spack/repos/builtin/packages/libpsl/package.py
index 8deec5bd41..0af73be05c 100644
--- a/var/spack/repos/builtin/packages/libpsl/package.py
+++ b/var/spack/repos/builtin/packages/libpsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libpthread-stubs/package.py b/var/spack/repos/builtin/packages/libpthread-stubs/package.py
index 528372f24a..5da23b3f07 100644
--- a/var/spack/repos/builtin/packages/libpthread-stubs/package.py
+++ b/var/spack/repos/builtin/packages/libpthread-stubs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libpulsar/package.py b/var/spack/repos/builtin/packages/libpulsar/package.py
new file mode 100644
index 0000000000..e4972caf00
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libpulsar/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 Libpulsar(CMakePackage):
+ """libpulsar is a C/C++ client library implementation of the Apache Pulsar
+ protocol."""
+
+ homepage = "https://github.com/apache/pulsar"
+ url = "https://github.com/apache/pulsar/archive/v2.7.0.tar.gz"
+
+ maintainers = ['aahmed-se']
+
+ version('2.7.0',
+ sha256='5bf8e5115075e12c848a9e4474cd47067c3200f7ff13c45f624f7383287e8e5e')
+
+ depends_on('zstd')
+ depends_on('boost')
+ depends_on('protobuf')
+ depends_on('pkgconfig')
+ depends_on('openssl')
+ depends_on('cmake @3.14:', type='build')
+ depends_on('curl', type=('build', 'link'))
+
+ root_cmakelists_dir = 'pulsar-client-cpp'
+
+ def cmake_args(self):
+ args = ["-DBUILD_PYTHON_WRAPPER=OFF", "-DBUILD_TESTS=OFF"]
+ return args
diff --git a/var/spack/repos/builtin/packages/libqglviewer/package.py b/var/spack/repos/builtin/packages/libqglviewer/package.py
new file mode 100644
index 0000000000..eb1e021589
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libqglviewer/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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 Libqglviewer(QMakePackage):
+ """libQGLViewer is a C++ library based on Qt that eases the creation of
+ OpenGL 3D viewers."""
+
+ homepage = "http://libqglviewer.com/"
+ url = "http://libqglviewer.com/src/libQGLViewer-2.7.2.tar.gz"
+ git = "https://github.com/GillesDebunne/libQGLViewer.git"
+
+ version('2.7.2', sha256='e2d2799dec5cff74548e951556a1fa06a11d9bcde2ce6593f9c27a17543b7c08')
+
+ # http://libqglviewer.com/installUnix.html
+
+ depends_on('qt+gui+opengl')
+ depends_on('freeglut', when='^qt@:3.0')
+ depends_on('glu', type='link')
+
+ build_directory = 'QGLViewer'
+
+ def patch(self):
+ # Build dylib instead of Framework on macOS
+ if self.spec.satisfies('platform=darwin'):
+ filter_file('!staticlib: CONFIG *= lib_bundle', '',
+ join_path('QGLViewer', 'QGLViewer.pro'), string=True)
+
+ def qmake_args(self):
+ return ['PREFIX=' + self.prefix]
+
+ @run_after('install')
+ def darwin_fix(self):
+ if self.spec.satisfies('platform=darwin'):
+ fix_darwin_install_name(self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/libqrencode/package.py b/var/spack/repos/builtin/packages/libqrencode/package.py
new file mode 100644
index 0000000000..6658ed0d12
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libqrencode/package.py
@@ -0,0 +1,44 @@
+# Copyright 2013-2021 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 Libqrencode(AutotoolsPackage):
+ """libqrencode - a fast and compact QR Code encoding library."""
+
+ homepage = "https://fukuchi.org/works/qrencode/"
+ url = "https://github.com/fukuchi/libqrencode/archive/v4.1.1.tar.gz"
+ git = "https://github.com/fukuchi/libqrencode.git"
+
+ maintainers = ['cessenat']
+
+ version('master', branch='master')
+ version('4.1.1', sha256='5385bc1b8c2f20f3b91d258bf8ccc8cf62023935df2d2676b5b67049f31a049c')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ # We assume a reasonably recent libtool is necessary
+ depends_on('libtool@2.4.2:', type='build')
+ depends_on('m4', type='build')
+ depends_on('pkgconfig', type='build')
+ # https://fukuchi.org/works/qrencode/ requires libpng-dev
+ depends_on('libpng@1.2.0:', type='link')
+
+ def autoreconf(self, spec, prefix):
+ # We had to call for autoreconf as well:
+ # https://stackoverflow.com/questions/3096989/libtool-version-mismatch-error
+ # There appears $LIBTOOLIZE --force --automake --copy is not necessary
+ args = [
+ 'autoreconf --force --install',
+ ]
+ with open('autogen.sh', 'a') as fh:
+ fh.write('\n'.join(args))
+ # https://fukuchi.org/works/qrencode/
+ # If there is no "configure" script in the source code directory,
+ # run "autogen.sh" at first to generate it - this is mandatory if
+ # you downloaded the source from GitHub
+ Executable('./autogen.sh')()
diff --git a/var/spack/repos/builtin/packages/libquo/package.py b/var/spack/repos/builtin/packages/libquo/package.py
index 808eb4e0fe..c199e15c99 100644
--- a/var/spack/repos/builtin/packages/libquo/package.py
+++ b/var/spack/repos/builtin/packages/libquo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,17 @@ from spack import *
class Libquo(AutotoolsPackage):
-
"""QUO (as in "status quo") is a runtime library that aids in accommodating
thread-level heterogeneity in dynamic, phased MPI+X applications comprising
single- and multi-threaded libraries."""
homepage = "https://github.com/lanl/libquo"
- url = "http://lanl.github.io/libquo/dists/libquo-1.3.1.tar.gz"
+ url = "https://lanl.github.io/libquo/dists/libquo-1.3.1.tar.gz"
git = "https://github.com/lanl/libquo.git"
- version('develop', branch='master')
+ maintainers = ['samuelkgutierrez']
+
+ version('master', branch='master')
version('1.3.1', sha256='407f7c61cc80aa934cf6086f3516a31dee3b803047713c297102452c3d7d6ed1')
version('1.3', sha256='61b0beff15eae4be94b5d3cbcbf7bf757659604465709ed01827cbba45efcf90')
version('1.2.9', sha256='0a64bea8f52f9eecd89e4ab82fde1c5bd271f3866c612da0ce7f38049409429b')
@@ -34,7 +35,11 @@ class Libquo(AutotoolsPackage):
bash('./autogen')
def configure_args(self):
- return [
+ config_args = [
'CC={0}'.format(self.spec['mpi'].mpicc),
'FC={0}'.format(self.spec['mpi'].mpifc)
]
+ if '%pgi' in self.spec:
+ config_args.append('CFLAGS={0}'.format(self.compiler.cc_pic_flag))
+ config_args.append('FCFLAGS={0}'.format(self.compiler.fc_pic_flag))
+ return config_args
diff --git a/var/spack/repos/builtin/packages/librdkafka/package.py b/var/spack/repos/builtin/packages/librdkafka/package.py
index a3157e08d2..e8858dbb68 100644
--- a/var/spack/repos/builtin/packages/librdkafka/package.py
+++ b/var/spack/repos/builtin/packages/librdkafka/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/librelp/package.py b/var/spack/repos/builtin/packages/librelp/package.py
index b22ca5e0f3..a8fb33d78a 100644
--- a/var/spack/repos/builtin/packages/librelp/package.py
+++ b/var/spack/repos/builtin/packages/librelp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Librelp(AutotoolsPackage):
(stands for Reliable Event Logging Protocol) is a general-purpose,
extensible logging protocol."""
- homepage = "http://www.rsyslog.com/librelp/"
+ homepage = "https://www.rsyslog.com/librelp/"
url = "https://github.com/rsyslog/librelp/archive/v1.7.0.tar.gz"
version('1.7.0', sha256='ff46bdd74798934663d1388d010270325dc6a6ed6d44358ca69b280a8304b1e9')
@@ -22,5 +22,6 @@ class Librelp(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ depends_on('valgrind', type='test')
depends_on('openssl')
depends_on('gnutls@2.0.0:')
diff --git a/var/spack/repos/builtin/packages/libristra/package.py b/var/spack/repos/builtin/packages/libristra/package.py
new file mode 100644
index 0000000000..8dfd3942f5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libristra/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2021 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 Libristra(CMakePackage):
+ """ The ristra library is a set of support utilities for
+ ristra codes, including simple mathematical operations, physical
+ units, and input parsing
+ """
+ homepage = 'https://github.com/laristra/libristra'
+ url = 'https://github.com/laristra/libristra/archive/master.zip'
+ git = 'https://github.com/laristra/libristra.git'
+
+ version('master', branch='master', submodules=False, preferred=True)
+ version('1.0.0', commit='33235fe0334ca7f1f99b386a90932d9f8e1e71de')
+
+ variant('build_type', default='Release', values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'),
+ description='The build type to build', multi=False)
+ variant('paraview', default=False, description='Enable ParaView')
+ variant('shared_lua', default=False, description='Build with shared lua')
+
+ depends_on('cmake@3.12:')
+ depends_on('mpi')
+ depends_on('boost@1.70.0: cxxstd=17 +program_options')
+ depends_on('lua@5.3.5~shared', when='~shared_lua')
+ depends_on('lua@5.3.5+shared', when='+shared_lua')
+ # TODO: might want to move paraview out of libristra
+ depends_on('paraview', when='+paraview')
+ # We explicitly depend on gtest and can no longer rely on others for it
+ depends_on('googletest@1.8.1+gmock')
+
+ def cmake_args(self):
+ options = ['-DENABLE_LUA=ON']
+
+ options.append(self.define('ENABLE_UNIT_TESTS', self.run_tests))
+
+ return options
diff --git a/var/spack/repos/builtin/packages/librmm/package.py b/var/spack/repos/builtin/packages/librmm/package.py
index 69604ac0cb..943a2d97ae 100644
--- a/var/spack/repos/builtin/packages/librmm/package.py
+++ b/var/spack/repos/builtin/packages/librmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/librom/package.py b/var/spack/repos/builtin/packages/librom/package.py
index e71e6cf9c6..de73ebf0c2 100644
--- a/var/spack/repos/builtin/packages/librom/package.py
+++ b/var/spack/repos/builtin/packages/librom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/librsb/package.py b/var/spack/repos/builtin/packages/librsb/package.py
index 58f74af62f..746e4e9563 100644
--- a/var/spack/repos/builtin/packages/librsb/package.py
+++ b/var/spack/repos/builtin/packages/librsb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,10 @@ class Librsb(AutotoolsPackage):
library for the Recursive Sparse Blocks format"""
homepage = "http://librsb.sourceforge.net/"
- url = "http://download.sourceforge.net/librsb/librsb-1.2.0.9.tar.gz"
+ url = "http://download.sourceforge.net/librsb/librsb-1.2.0.10.tar.gz"
list_url = "https://sourceforge.net/projects/librsb/files/"
+ version('1.2.0.10', 'ec49f3f78a7c43fc9e10976593d100aa49b1863309ed8fa3ccbb7aad52d2f7b8')
version('1.2.0.9', 'f421f5d572461601120933e3c1cfee2ca69e6ecc92cbb11baa4e86bdedd3d9fa')
version('1.2.0.8', '8bebd19a1866d80ade13eabfdd0f07ae7e8a485c0b975b5d15f531ac204d80cb')
diff --git a/var/spack/repos/builtin/packages/librsvg/package.py b/var/spack/repos/builtin/packages/librsvg/package.py
index 32dfc79d30..edf246d52c 100644
--- a/var/spack/repos/builtin/packages/librsvg/package.py
+++ b/var/spack/repos/builtin/packages/librsvg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,12 +12,15 @@ class Librsvg(AutotoolsPackage):
homepage = "https://wiki.gnome.org/Projects/LibRsvg"
url = "https://download.gnome.org/sources/librsvg/2.44/librsvg-2.44.14.tar.xz"
+ version('2.51.0', sha256='89d32e38445025e1b1d9af3dd9d3aeb9f6fce527aeecbecf38b369b34c80c038')
+ version('2.50.2', sha256='6211f271ce4cd44a7318190d36712e9cea384a933d3e3570004edeb210a056d3')
version('2.50.0', sha256='b3fadba240f09b9c9898ab20cb7311467243e607cf8f928b7c5f842474ee3df4')
version('2.44.14', sha256='6a85a7868639cdd4aa064245cc8e9d864dad8b8e9a4a8031bb09a4796bc4e303')
depends_on("gobject-introspection", type='build')
depends_on("pkgconfig", type='build')
depends_on("rust", type='build')
+ depends_on('gtk-doc', type='build')
depends_on("cairo+gobject")
depends_on("gdk-pixbuf")
depends_on("glib")
diff --git a/var/spack/repos/builtin/packages/librtlsdr/package.py b/var/spack/repos/builtin/packages/librtlsdr/package.py
index 43a0b10d47..563ffa7be1 100644
--- a/var/spack/repos/builtin/packages/librtlsdr/package.py
+++ b/var/spack/repos/builtin/packages/librtlsdr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libsakura/cmakelists.patch b/var/spack/repos/builtin/packages/libsakura/cmakelists.patch
new file mode 100644
index 0000000000..458b4435da
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libsakura/cmakelists.patch
@@ -0,0 +1,38 @@
+diff -ur a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2016-09-15 02:39:32.000000000 -0600
++++ b/CMakeLists.txt 2021-03-10 10:00:28.227544744 -0700
+@@ -46,10 +46,7 @@
+
+ message(STATUS "CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}")
+
+-
+-find_path(GTEST_INCLUDE_DIRS gtest/gtest.h PATHS ${PROJECT_SOURCE_DIR}/gtest/include)
+-set(GTEST_LIBRARIES ${PROJECT_BINARY_DIR}/bingtest/libgtest.a)
+-set(GTEST_MAIN_LIBRARIES ${PROJECT_BINARY_DIR}/bingtest/libgtest_main.a)
++list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules")
+
+ # sakura root directory
+ set(SAKURA_ROOT_DIR ${PROJECT_SOURCE_DIR})
+@@ -57,5 +54,3 @@
+ #set(CMAKE_BUILD_TYPE Release)
+
+ add_subdirectory(src bin)
+-add_subdirectory(gtest bingtest)
+-add_subdirectory(test bintest)
+diff -ur a/src/CMakeLists.txt b/src/CMakeLists.txt
+--- a/src/CMakeLists.txt 2016-09-15 02:39:32.000000000 -0600
++++ spack-src/src/CMakeLists.txt 2021-03-10 09:56:22.399794093 -0700
+@@ -25,12 +25,10 @@
+
+ project(libsakura)
+
+-set(CMAKE_MODULE_PATH ../cmake-modules CACHE STRING "List of directories to search for CMake modules")
+-
+ find_package(Threads)
+ find_package(Eigen3 3.2.0 REQUIRED)
+ find_package(Log4Cxx)
+-find_package(FFTW3 3.3.2 REQUIRED)
++find_package(FFTW3 3.3.2 MODULE REQUIRED)
+ include(SetArchFlags)
+
+ set(CMAKE_INSTALL_PREFIX /usr/local)
diff --git a/var/spack/repos/builtin/packages/libsakura/package.py b/var/spack/repos/builtin/packages/libsakura/package.py
new file mode 100644
index 0000000000..20bf879a0d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libsakura/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 Libsakura(CMakePackage):
+ """High-performance, thread-safe library compatible with C and C++
+ that is optimized for data analysis of astronomy and astrophysics.
+ """
+
+ homepage = "https://alma-intweb.mtk.nao.ac.jp/~sakura/api/html/index.html"
+ url = "https://alma-dl.mtk.nao.ac.jp/ftp/sakura/releases/src/libsakura-4.0.2065/libsakura-4.0.2065.tar.gz"
+
+ maintainers = ['mpokorny']
+
+ version('4.0.2065', sha256='3fde3713b1ca539f0b2397ec72a0086a3138ef63f89dce4be51ee60585df995f')
+ version('3.0.2025', sha256='381a49d57cbc88dea15e08f7ed64ba57481d25bce8e5f68938dd4b6a30589c16')
+
+ depends_on('cmake@2.8:', type='build')
+
+ depends_on('eigen@3.2:')
+ depends_on('fftw@3.3.2: precision=float', when='@:3.99')
+ depends_on('fftw@3.3.2: precision=double', when='@4.0.0:')
+ depends_on('log4cxx')
+
+ patch('cmakelists.patch')
+
+ def cmake_args(self):
+ args = ['-DSIMD_ARCH=native', '-DBUILD_DOC:BOOL=OFF']
+ return args
diff --git a/var/spack/repos/builtin/packages/libsamplerate/package.py b/var/spack/repos/builtin/packages/libsamplerate/package.py
index fcab8be9d3..c77ddb1ad3 100644
--- a/var/spack/repos/builtin/packages/libsamplerate/package.py
+++ b/var/spack/repos/builtin/packages/libsamplerate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libseccomp/package.py b/var/spack/repos/builtin/packages/libseccomp/package.py
index e1c1374964..6362cc9cce 100644
--- a/var/spack/repos/builtin/packages/libseccomp/package.py
+++ b/var/spack/repos/builtin/packages/libseccomp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libsecret/package.py b/var/spack/repos/builtin/packages/libsecret/package.py
index 6302b9c69d..6d45223603 100644
--- a/var/spack/repos/builtin/packages/libsecret/package.py
+++ b/var/spack/repos/builtin/packages/libsecret/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,7 +21,7 @@ class Libsecret(AutotoolsPackage):
version('0.18.8', sha256='3bfa889d260e0dbabcf5b9967f2aae12edcd2ddc9adc365de7a5cc840c311d15')
variant('gcrypt', default=True, description='Build with libgcrypt')
- variant('gobj', default=True, description='Build with gobject-introspection')
+ variant('gobj', default=False, description='Build with gobject-introspection')
# Optional Vala support is not implemented yet
# variant('vala', default=False, descript='Build with Vala support')
@@ -37,7 +37,7 @@ class Libsecret(AutotoolsPackage):
url = 'http://ftp.gnome.org/pub/gnome/sources/libsecret'
return url + '/%s/libsecret-%s.tar.xz' % (version.up_to(2), version)
- # http://www.linuxfromscratch.org/blfs/view/svn/gnome/libsecret.html
+ # https://www.linuxfromscratch.org/blfs/view/svn/gnome/libsecret.html
def configure_args(self):
args = []
args.append('--disable-static')
diff --git a/var/spack/repos/builtin/packages/libsharp/package.py b/var/spack/repos/builtin/packages/libsharp/package.py
index aa7e5184b6..cacf6ad879 100644
--- a/var/spack/repos/builtin/packages/libsharp/package.py
+++ b/var/spack/repos/builtin/packages/libsharp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libshm/package.py b/var/spack/repos/builtin/packages/libshm/package.py
index 9938493cc4..6e5a1f0bf6 100644
--- a/var/spack/repos/builtin/packages/libshm/package.py
+++ b/var/spack/repos/builtin/packages/libshm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libsigcpp/package.py b/var/spack/repos/builtin/packages/libsigcpp/package.py
index bb62980d73..45060441a4 100644
--- a/var/spack/repos/builtin/packages/libsigcpp/package.py
+++ b/var/spack/repos/builtin/packages/libsigcpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libsigsegv/package.py b/var/spack/repos/builtin/packages/libsigsegv/package.py
index 119778f018..bee12e25b9 100644
--- a/var/spack/repos/builtin/packages/libsigsegv/package.py
+++ b/var/spack/repos/builtin/packages/libsigsegv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,9 @@ class Libsigsegv(AutotoolsPackage, GNUMirrorPackage):
"""GNU libsigsegv is a library for handling page faults in user mode."""
homepage = "https://www.gnu.org/software/libsigsegv/"
- gnu_mirror_path = "libsigsegv/libsigsegv-2.12.tar.gz"
+ gnu_mirror_path = "libsigsegv/libsigsegv-2.13.tar.gz"
+ version('2.13', sha256='be78ee4176b05f7c75ff03298d84874db90f4b6c9d5503f0da1226b3a3c48119')
version('2.12', sha256='3ae1af359eebaa4ffc5896a1aee3568c052c99879316a1ab57f8fe1789c390b6')
version('2.11', sha256='dd7c2eb2ef6c47189406d562c1dc0f96f2fc808036834d596075d58377e37a18')
version('2.10', sha256='8460a4a3dd4954c3d96d7a4f5dd5bc4d9b76f5754196aa245287553b26d2199a')
diff --git a/var/spack/repos/builtin/packages/libsm/package.py b/var/spack/repos/builtin/packages/libsm/package.py
index 922018ae3e..a3dcedb9af 100644
--- a/var/spack/repos/builtin/packages/libsm/package.py
+++ b/var/spack/repos/builtin/packages/libsm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,17 +9,21 @@ from spack import *
class Libsm(AutotoolsPackage, XorgPackage):
"""libSM - X Session Management Library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libSM"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libSM"
xorg_mirror_path = "lib/libSM-1.2.2.tar.gz"
version('1.2.3', sha256='1e92408417cb6c6c477a8a6104291001a40b3bb56a4a60608fdd9cd2c5a0f320')
version('1.2.2', sha256='14bb7c669ce2b8ff712fbdbf48120e3742a77edcd5e025d6b3325ed30cf120f4')
depends_on('libice@1.0.5:')
- depends_on('libuuid')
+ depends_on('uuid')
- depends_on('xproto', type='build')
- depends_on('xtrans', type='build')
+ depends_on('xproto')
+ depends_on('xtrans')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
- depends_on('libuuid')
+
+ @property
+ def libs(self):
+ return find_libraries('libSM', self.prefix,
+ shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/libsndfile/package.py b/var/spack/repos/builtin/packages/libsndfile/package.py
index 4c5c294d48..7044bf83b9 100644
--- a/var/spack/repos/builtin/packages/libsndfile/package.py
+++ b/var/spack/repos/builtin/packages/libsndfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libsodium/package.py b/var/spack/repos/builtin/packages/libsodium/package.py
index b2f44c0153..5e32b6a757 100644
--- a/var/spack/repos/builtin/packages/libsodium/package.py
+++ b/var/spack/repos/builtin/packages/libsodium/package.py
@@ -1,8 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
+import llnl.util.tty as tty
+
from spack import *
@@ -26,8 +30,19 @@ class Libsodium(AutotoolsPackage):
def url_for_version(self, version):
url = 'https://download.libsodium.org/libsodium/releases/'
- if version < Version('1.0.4'):
+ if version < Version('1.0.16'):
url += 'old/unsupported/'
- elif version < Version('1.0.16'):
+ elif version < Version('1.0.17'):
url += 'old/'
return url + 'libsodium-{0}.tar.gz'.format(version)
+
+ def patch(self):
+ # Necessary on ppc64le / aarch64, because Spack tries to execute these scripts
+ # to check if they work (see lib/spack/spack/build_systems/autotools.py).
+ try:
+ os.chmod("build-aux/config.guess", 0o755)
+ os.chmod("build-aux/config.sub", 0o755)
+ except OSError:
+ # Old versions of libsodium don't have these files.
+ tty.debug("Couldn't chmod config.guess or config.sub: file not found")
+ pass
diff --git a/var/spack/repos/builtin/packages/libspatialindex/package.py b/var/spack/repos/builtin/packages/libspatialindex/package.py
index 8ffd6d4cf5..151576143c 100644
--- a/var/spack/repos/builtin/packages/libspatialindex/package.py
+++ b/var/spack/repos/builtin/packages/libspatialindex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,15 @@ class Libspatialindex(CMakePackage):
"""C++ implementation of R*-tree, an MVR-tree and a TPR-tree with C API."""
homepage = "https://libspatialindex.org/"
- url = "https://github.com/libspatialindex/libspatialindex/tarball/1.8.5"
+ url = "https://github.com/libspatialindex/libspatialindex/archive/refs/tags/1.8.5.tar.gz"
- version('1.8.5', sha256='271f0d1425c527fd7d8b4be45b27e9383b244047b5918225877105616e7c0ad2')
+ version('1.9.3', sha256='7b44340a3edc55c11abfc453bb60f148b29f569cef9e1148583e76132e9c7379')
+ version('1.8.5', sha256='93cce77269612f45287b521d5afdfb245be2b93b8b6438d92f8b9e0bdb37059d')
+
+ depends_on('cmake@3.5.0:', type='build')
+
+ @property
+ def libs(self):
+ return find_libraries(
+ ['libspatialindex_c'], root=self.prefix, recursive=True, shared=True
+ )
diff --git a/var/spack/repos/builtin/packages/libspatialite/package.py b/var/spack/repos/builtin/packages/libspatialite/package.py
index 2eb9b9df2f..a1dc87b77f 100644
--- a/var/spack/repos/builtin/packages/libspatialite/package.py
+++ b/var/spack/repos/builtin/packages/libspatialite/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
@@ -11,19 +12,21 @@ class Libspatialite(AutotoolsPackage):
"""SpatiaLite is an open source library intended to extend the
SQLite core to support fully fledged Spatial SQL capabilities."""
- homepage = "http://www.gaia-gis.it"
- url = "http://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-4.3.0a.tar.gz"
+ homepage = "https://www.gaia-gis.it"
+ url = "https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-4.3.0a.tar.gz"
+ manual_download = True
+ version('5.0.0', preferred=True, sha256='7b7fd70243f5a0b175696d87c46dde0ace030eacc27f39241c24bac5dfac6dac')
# Must download manually from:
# https://www.gaia-gis.it/fossil/libspatialite/info/c7f67038bf06d98d
# For instructions on the file:// below..
# https://github.com/spack/spack/issues/2489
version('5.0.0.2.c7f67038bf',
- sha256='f8100f71b769c7db066c6f938af6b00e920e4b90ac14c00a4f3ed7171565caab',
- url="file://%s/SpatiaLite-c7f67038bf.tar.gz" % os.getcwd())
+ sha256='f8100f71b769c7db066c6f938af6b00e920e4b90ac14c00a4f3ed7171565caab',
+ url="file://%s/SpatiaLite-c7f67038bf.tar.gz" % os.getcwd())
version('5.0.0-beta0', sha256='caacf5378a5cfab9b8e98bb361e2b592e714e21f5c152b795df80d0ab1da1c42')
- version('4.3.0a', preferred=True,
+ version('4.3.0a',
sha256='88900030a4762904a7880273f292e5e8ca6b15b7c6c3fb88ffa9e67ee8a5a499')
version('3.0.1', sha256='4983d6584069fd5ff0cfcccccee1015088dab2db177c0dc7050ce8306b68f8e6')
@@ -37,3 +40,4 @@ class Libspatialite(AutotoolsPackage):
depends_on('freexl')
depends_on('iconv')
depends_on('libxml2')
+ depends_on('minizip', when='@5.0.0:')
diff --git a/var/spack/repos/builtin/packages/libspiro/package.py b/var/spack/repos/builtin/packages/libspiro/package.py
index ae8ac30841..51af137d8b 100644
--- a/var/spack/repos/builtin/packages/libspiro/package.py
+++ b/var/spack/repos/builtin/packages/libspiro/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libsplash/package.py b/var/spack/repos/builtin/packages/libsplash/package.py
index c45deeae40..1d7026a664 100644
--- a/var/spack/repos/builtin/packages/libsplash/package.py
+++ b/var/spack/repos/builtin/packages/libsplash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -45,10 +45,8 @@ class Libsplash(CMakePackage):
if spec.satisfies('@1.7.0:'):
args += [
- '-DSplash_USE_MPI:BOOL={0}'.format(
- 'ON' if '+mpi' in spec else 'OFF'),
- '-DSplash_USE_PARALLEL:BOOL={0}'.format(
- 'ON' if '+mpi' in spec else 'OFF')
+ self.define_from_variant('Splash_USE_MPI', 'mpi'),
+ self.define_from_variant('Splash_USE_PARALLEL', 'mpi')
]
return args
diff --git a/var/spack/repos/builtin/packages/libssh/package.py b/var/spack/repos/builtin/packages/libssh/package.py
index 693b69ec00..02bad9790e 100644
--- a/var/spack/repos/builtin/packages/libssh/package.py
+++ b/var/spack/repos/builtin/packages/libssh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,6 +26,5 @@ class Libssh(CMakePackage):
return url.format(version.up_to(2), version)
def cmake_args(self):
- args = ['-DWITH_GSSAPI=%s' %
- ('ON' if '+gssapi' in self.spec else 'OFF')]
+ args = [self.define_from_variant('WITH_GSSAPI', 'gssapi')]
return args
diff --git a/var/spack/repos/builtin/packages/libssh2/package.py b/var/spack/repos/builtin/packages/libssh2/package.py
index cb3bcab1c3..7b9beb7b14 100644
--- a/var/spack/repos/builtin/packages/libssh2/package.py
+++ b/var/spack/repos/builtin/packages/libssh2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -25,9 +25,7 @@ class Libssh2(CMakePackage):
depends_on('xz')
def cmake_args(self):
- spec = self.spec
- return [
- '-DBUILD_SHARED_LIBS=%s' % ('YES' if '+shared' in spec else 'NO')]
+ return [self.define_from_variant('BUILD_SHARED_LIBS', 'shared')]
@run_after('install')
def darwin_fix(self):
diff --git a/var/spack/repos/builtin/packages/libsvm/package.py b/var/spack/repos/builtin/packages/libsvm/package.py
index 12b07053bf..2988a29424 100644
--- a/var/spack/repos/builtin/packages/libsvm/package.py
+++ b/var/spack/repos/builtin/packages/libsvm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libszip/package.py b/var/spack/repos/builtin/packages/libszip/package.py
index b72e2ba276..aef676c4a7 100644
--- a/var/spack/repos/builtin/packages/libszip/package.py
+++ b/var/spack/repos/builtin/packages/libszip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libtar/package.py b/var/spack/repos/builtin/packages/libtar/package.py
index 0d0b719ba8..ed9b6db45f 100644
--- a/var/spack/repos/builtin/packages/libtar/package.py
+++ b/var/spack/repos/builtin/packages/libtar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libtasn1/package.py b/var/spack/repos/builtin/packages/libtasn1/package.py
index 97324b8394..3cb4f2f16b 100644
--- a/var/spack/repos/builtin/packages/libtasn1/package.py
+++ b/var/spack/repos/builtin/packages/libtasn1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libtermkey/package.py b/var/spack/repos/builtin/packages/libtermkey/package.py
index 90617e7014..e5713fde62 100644
--- a/var/spack/repos/builtin/packages/libtermkey/package.py
+++ b/var/spack/repos/builtin/packages/libtermkey/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libthai/package.py b/var/spack/repos/builtin/packages/libthai/package.py
new file mode 100644
index 0000000000..5d1e6337ab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libthai/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 Libthai(AutotoolsPackage):
+ """LibThai is a set of Thai language support routines aimed to ease
+ developers' tasks to incorporate Thai language support in their
+ applications. It includes important Thai-specific functions e.g.
+ word breaking, input and output methods as well as basic character
+ and string supports."""
+
+ homepage = "https://linux.thai.net"
+ url = "https://github.com/tlwg/libthai/releases/download/v0.1.28/libthai-0.1.28.tar.xz"
+
+ version('0.1.28', sha256='ffe0a17b4b5aa11b153c15986800eca19f6c93a4025ffa5cf2cab2dcdf1ae911')
+ version('0.1.27', sha256='1659fa1b7b1d6562102d7feb8c8c3fd94bb2dc5761ed7dbaae4f300e1c03eff6')
+
+ depends_on('libdatrie')
+ depends_on('doxygen@1.8.8:', type='build')
diff --git a/var/spack/repos/builtin/packages/libtheora/exit-prior-to-running-configure.patch b/var/spack/repos/builtin/packages/libtheora/exit-prior-to-running-configure.patch
new file mode 100644
index 0000000000..99992c39c2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libtheora/exit-prior-to-running-configure.patch
@@ -0,0 +1,23 @@
+From 0060fd48c12a59a080974ca3754bf0eab9ab6d35 Mon Sep 17 00:00:00 2001
+From: Howard Pritchard <howardp@lanl.gov>
+Date: Tue, 24 Nov 2020 15:14:41 -0700
+Subject: [PATCH] exit prior to running configure
+
+Signed-off-by: Howard Pritchard <howardp@lanl.gov>
+
+diff --git a/autogen.sh b/autogen.sh
+index bbca69dc..4de1e783 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -112,6 +112,8 @@ if test -z "$*"; then
+ echo "to pass any to it, please specify them on the $0 command line."
+ fi
+
++exit 0
++
+ echo "Generating configuration files for $package, please wait...."
+
+ echo " $ACLOCAL $ACLOCAL_FLAGS"
+--
+2.18.2
+
diff --git a/var/spack/repos/builtin/packages/libtheora/fix_encoding.patch b/var/spack/repos/builtin/packages/libtheora/fix_encoding.patch
new file mode 100644
index 0000000000..d0f2127cd7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libtheora/fix_encoding.patch
@@ -0,0 +1,12 @@
+diff --git a/doc/spec/spec.tex b/doc/spec/spec.tex
+index 2206e10..34a0724 100644
+--- a/doc/spec/spec.tex
++++ b/doc/spec/spec.tex
+@@ -14,6 +14,7 @@
+ \usepackage{float}
+ \usepackage[pdfpagemode=None,pdfstartview=FitH,pdfview=FitH,colorlinks=true]%
+ {hyperref}
++\usepackage{utf8x}[inputenc]
+
+ \newtheorem{theorem}{Theorem}[section]
+ \newcommand{\idx}[1]{{\ensuremath{\mathit{#1}}}}
diff --git a/var/spack/repos/builtin/packages/libtheora/package.py b/var/spack/repos/builtin/packages/libtheora/package.py
index 9a1b3554f3..7bd00f3640 100644
--- a/var/spack/repos/builtin/packages/libtheora/package.py
+++ b/var/spack/repos/builtin/packages/libtheora/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libtheora(AutotoolsPackage):
"""Theora Video Compression."""
- homepage = "http://www.theora.org"
+ homepage = "https://www.theora.org"
url = "http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.xz"
version('1.1.1', sha256='f36da409947aa2b3dcc6af0a8c2e3144bc19db2ed547d64e9171c59c66561c61')
@@ -21,6 +21,12 @@ class Libtheora(AutotoolsPackage):
depends_on('m4', type='build')
depends_on('doxygen', type='build')
depends_on('libogg')
+ depends_on('libpng')
+
+ patch('exit-prior-to-running-configure.patch', when='@1.1.1')
+ patch('fix_encoding.patch', when='@1.1:')
+ patch('https://gitlab.xiph.org/xiph/theora/-/commit/7288b539c52e99168488dc3a343845c9365617c8.patch',
+ sha256='2e4f891f6880386d9391f3e4eaf4a23493de4eea532f9b5cb8a04b5f7cd09301', when='^libpng@1.6:')
def autoreconf(self, spec, prefix):
sh = which('sh')
diff --git a/var/spack/repos/builtin/packages/libtiff/package.py b/var/spack/repos/builtin/packages/libtiff/package.py
index f650ef31f9..5cc0c4df16 100644
--- a/var/spack/repos/builtin/packages/libtiff/package.py
+++ b/var/spack/repos/builtin/packages/libtiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,6 +26,6 @@ class Libtiff(AutotoolsPackage):
def patch(self):
# Remove flags not recognized by the NVIDIA compiler
- if self.spec.satisfies('%nvhpc'):
+ if self.spec.satisfies('%nvhpc@:20.11'):
filter_file('vl_cv_prog_cc_warnings="-Wall -W"',
'vl_cv_prog_cc_warnings="-Wall"', 'configure')
diff --git a/var/spack/repos/builtin/packages/libtirpc/libtirpc-remove-pipe-flag-for-nvhpc.patch b/var/spack/repos/builtin/packages/libtirpc/libtirpc-remove-pipe-flag-for-nvhpc.patch
new file mode 100644
index 0000000000..b7a8f00ceb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libtirpc/libtirpc-remove-pipe-flag-for-nvhpc.patch
@@ -0,0 +1,24 @@
+diff -Naur spack-src/src/Makefile.am spack-src.patch/src/Makefile.am
+--- spack-src/src/Makefile.am 2020-04-07 09:24:34.000000000 -0400
++++ spack-src.patch/src/Makefile.am 2021-07-09 10:52:47.702886134 -0400
+@@ -8,7 +8,7 @@
+ noinst_HEADERS = rpc_com.h debug.h
+
+ AM_CPPFLAGS = -I$(top_srcdir)/tirpc -include config.h -DPORTMAP -DINET6 \
+- -D_GNU_SOURCE -Wall -pipe
++ -D_GNU_SOURCE -Wall
+
+ lib_LTLIBRARIES = libtirpc.la
+
+diff -Naur spack-src/src/Makefile.in spack-src.patch/src/Makefile.in
+--- spack-src/src/Makefile.in 2020-04-07 09:26:28.000000000 -0400
++++ spack-src.patch/src/Makefile.in 2021-07-09 10:52:55.102361747 -0400
+@@ -455,7 +455,7 @@
+ top_srcdir = @top_srcdir@
+ noinst_HEADERS = rpc_com.h debug.h
+ AM_CPPFLAGS = -I$(top_srcdir)/tirpc -include config.h -DPORTMAP -DINET6 \
+- -D_GNU_SOURCE -Wall -pipe
++ -D_GNU_SOURCE -Wall
+
+ lib_LTLIBRARIES = libtirpc.la
+ libtirpc_la_LDFLAGS = @LDFLAG_NOUNDEFINED@ -no-undefined -lpthread \
diff --git a/var/spack/repos/builtin/packages/libtirpc/package.py b/var/spack/repos/builtin/packages/libtirpc/package.py
index 4b6647a50f..dc7aba6255 100644
--- a/var/spack/repos/builtin/packages/libtirpc/package.py
+++ b/var/spack/repos/builtin/packages/libtirpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Libtirpc(AutotoolsPackage):
"""
homepage = "https://sourceforge.net/projects/libtirpc/"
- url = "https://sourceforge.net/projects/libtirpc/files/libtirpc/1.1.4/libtirpc-1.1.4.tar.bz2/download"
+ url = "https://sourceforge.net/projects/libtirpc/files/libtirpc/1.1.4/libtirpc-1.1.4.tar.bz2/download"
version('1.2.6', sha256='4278e9a5181d5af9cd7885322fdecebc444f9a3da87c526e7d47f7a12a37d1cc')
version('1.1.4', sha256='2ca529f02292e10c158562295a1ffd95d2ce8af97820e3534fe1b0e3aec7561d')
@@ -20,6 +20,19 @@ class Libtirpc(AutotoolsPackage):
provides('rpc')
+ # Remove -pipe flag to compiler in Makefiles when using nvhpc
+ patch('libtirpc-remove-pipe-flag-for-nvhpc.patch', when='%nvhpc')
+
# FIXME: build error on macOS
# auth_none.c:81:9: error: unknown type name 'mutex_t'
conflicts('platform=darwin', msg='Does not build on macOS')
+
+ @property
+ def headers(self):
+ hdrs = find_all_headers(self.prefix.include)
+ # libtirpc puts headers under include/tirpc, but some codes (e.g. hdf)
+ # do not expect a tirpc component. Since some might, we return
+ # both prefix.include.tirpc and prefix.include as header paths
+ if hdrs:
+ hdrs.directories = [self.prefix.include.tirpc, self.prefix.include]
+ return hdrs or None
diff --git a/var/spack/repos/builtin/packages/libtlx/package.py b/var/spack/repos/builtin/packages/libtlx/package.py
index 71c11d7cd4..d4ecc35674 100644
--- a/var/spack/repos/builtin/packages/libtlx/package.py
+++ b/var/spack/repos/builtin/packages/libtlx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libtomlc99/package.py b/var/spack/repos/builtin/packages/libtomlc99/package.py
index dde282be28..4152e35030 100644
--- a/var/spack/repos/builtin/packages/libtomlc99/package.py
+++ b/var/spack/repos/builtin/packages/libtomlc99/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Libtomlc99(Package):
# Since there is no official versioning, yet, just use the date and prefix
# with '0.' to make switching to proper versioning easier later.
+ version('0.2020.12.23', commit='e97a56633e54297990158ab56a7e50a089cddf7d')
version('0.2019.06.24', commit='b701a09579200b1bd87081d1e6a284a89b5576c8')
# Unfortunately, upstream Makefile does not build shared libaries, so use
# local changes for now.
diff --git a/var/spack/repos/builtin/packages/libtommath/package.py b/var/spack/repos/builtin/packages/libtommath/package.py
index 9886022bfb..abc9f961a6 100644
--- a/var/spack/repos/builtin/packages/libtommath/package.py
+++ b/var/spack/repos/builtin/packages/libtommath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libtommath(MakefilePackage):
"""A portable number theoretic multiple-precision integer library."""
- homepage = "http://www.libtom.net/"
+ homepage = "https://www.libtom.net/"
url = "https://github.com/libtom/libtommath/archive/v1.2.0.tar.gz"
version('1.2.0', sha256='f3c20ab5df600d8d89e054d096c116417197827d12732e678525667aa724e30f')
diff --git a/var/spack/repos/builtin/packages/libtool/package.py b/var/spack/repos/builtin/packages/libtool/package.py
index 783123e27e..02c5e02304 100644
--- a/var/spack/repos/builtin/packages/libtool/package.py
+++ b/var/spack/repos/builtin/packages/libtool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,26 +10,39 @@ class Libtool(AutotoolsPackage, GNUMirrorPackage):
"""libtool -- library building part of autotools."""
homepage = 'https://www.gnu.org/software/libtool/'
- gnu_mirror_path = "libtool/libtool-2.4.2.tar.gz"
+ gnu_mirror_path = "libtool/libtool-2.4.6.tar.gz"
version('develop', git='https://git.savannah.gnu.org/git/libtool.git',
branch='master', submodules=True)
version('2.4.6', sha256='e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3')
- version('2.4.2', sha256='b38de44862a987293cd3d8dfae1c409d514b6c4e794ebc93648febf9afc38918')
+ # Version released in 2011
+ version('2.4.2', sha256='b38de44862a987293cd3d8dfae1c409d514b6c4e794ebc93648febf9afc38918', deprecated=True)
depends_on('m4@1.4.6:', type='build')
- depends_on('autoconf', type='build', when='@2.4.2,develop')
- depends_on('automake', type='build', when='@2.4.2,develop')
- depends_on('help2man', type='build', when='@2.4.2,develop')
- depends_on('xz', type='build', when='@develop')
- depends_on('texinfo', type='build', when='@develop')
- # Fix parsing of compiler output when collecting predeps and postdeps
- # http://lists.gnu.org/archive/html/bug-libtool/2016-03/msg00003.html
- patch('flag_space.patch', when='@develop')
+ with when('@2.4.2'):
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('help2man', type='build')
+
+ with when('@2.4.6'):
+ depends_on('autoconf@2.62:', type='test')
+ depends_on('automake', type='test')
+
+ with when('@develop'):
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('help2man', type='build')
+ depends_on('xz', type='build')
+ depends_on('texinfo', type='build')
+ # Fix parsing of compiler output when collecting predeps and postdeps
+ # https://lists.gnu.org/archive/html/bug-libtool/2016-03/msg00003.html
+ patch('flag_space.patch')
build_directory = 'spack-build'
+ tags = ['build-tools']
+
executables = ['^g?libtool(ize)?$']
@classmethod
@@ -53,7 +66,7 @@ class Libtool(AutotoolsPackage, GNUMirrorPackage):
def patch(self):
# Remove flags not recognized by the NVIDIA compiler
- if self.spec.satisfies('%nvhpc'):
+ if self.spec.satisfies('%nvhpc@:20.11'):
filter_file('-fno-builtin', '-Mnobuiltin', 'configure')
filter_file('-fno-builtin', '-Mnobuiltin', 'libltdl/configure')
@@ -83,3 +96,20 @@ class Libtool(AutotoolsPackage, GNUMirrorPackage):
join_path(self.prefix.bin, 'glibtool'))
symlink(join_path(self.prefix.bin, 'libtoolize'),
join_path(self.prefix.bin, 'glibtoolize'))
+
+ def setup_build_environment(self, env):
+ """Wrapper until spack has a real implementation of setup_test_environment()"""
+ if self.run_tests:
+ self.setup_test_environment(env)
+
+ def setup_test_environment(self, env):
+ """When Fortran is not provided, a few tests need to be skipped"""
+ if (self.compiler.f77 is None):
+ env.set('F77', 'no')
+ if (self.compiler.fc is None):
+ env.set('FC', 'no')
+
+ @when('@2.4.6')
+ def check(self):
+ """installcheck of libtool-2.4.6 runs the full testsuite, skip 'make check'"""
+ pass
diff --git a/var/spack/repos/builtin/packages/libtorrent/package.py b/var/spack/repos/builtin/packages/libtorrent/package.py
new file mode 100644
index 0000000000..469ff834cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libtorrent/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 Libtorrent(AutotoolsPackage):
+ """LibTorrent is a BitTorrent library written in C++,
+ with a focus on high performance and good code."""
+
+ homepage = "https://github.com/rakshasa/libtorrent"
+ url = "https://github.com/rakshasa/libtorrent/archive/v0.13.8.tar.gz"
+
+ version('0.13.8', sha256='0f6c2e7ffd3a1723ab47fdac785ec40f85c0a5b5a42c1d002272205b988be722')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./autogen.sh')
diff --git a/var/spack/repos/builtin/packages/libtree/package.py b/var/spack/repos/builtin/packages/libtree/package.py
index e44a4a8661..5d5aaa78ab 100644
--- a/var/spack/repos/builtin/packages/libtree/package.py
+++ b/var/spack/repos/builtin/packages/libtree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,15 @@ class Libtree(CMakePackage):
single folder"""
homepage = "https://github.com/haampie/libtree"
- url = "https://github.com/haampie/libtree/releases/download/v1.0.3/sources.tar.gz"
-
+ git = "https://github.com/haampie/libtree.git"
+ url = "https://github.com/haampie/libtree/archive/refs/tags/v2.0.0.tar.gz"
maintainers = ['haampie']
+ version('master', branch='master')
+ version('2.0.0', sha256='099e85d8ba3c3d849ce05b8ba2791dd25cd042a813be947fb321b0676ef71883')
+ version('1.2.3', sha256='4a912cf97109219fe931942a30579336b6ab9865395447bd157bbfa74bf4e8cf')
+ version('1.2.2', sha256='4ccf09227609869b85a170550b636defcf0b0674ecb0785063b81785b1c29bdd')
+ version('1.2.1', sha256='26791c0f418b93d502879db0e1fd2fd3081b885ad87326611d992a5f8977a9b0')
version('1.2.0', sha256='3e74655f22b1dcc19e8a1b9e7796b8ad44bc37f29e9a99134119e8521e28be97')
version('1.1.4', sha256='38648f67c8fa72c3a4a3af2bb254b5fd6989c0f1362387ab298176db5cbbcc4e')
version('1.1.3', sha256='4c681d7b67ef3d62f95450fb7eb84e33ff10a3b9db1f7e195b965b2c3c58226b')
@@ -23,3 +28,39 @@ class Libtree(CMakePackage):
version('1.1.0', sha256='6cf36fb9a4c8c3af01855527d4931110732bb2d1c19be9334c689f1fd1c78536')
version('1.0.4', sha256='b15a54b6f388b8bd8636e288fcb581029f1e65353660387b0096a554ad8e9e45')
version('1.0.3', sha256='67ce886c191d50959a5727246cdb04af38872cd811c9ed4e3822f77a8f40b20b')
+
+ def url_for_version(self, version):
+ if version < Version("2.0.0"):
+ return "https://github.com/haampie/libtree/releases/download/v{0}/sources.tar.gz".format(version)
+
+ return "https://github.com/haampie/libtree/archive/refs/tags/v{0}.tar.gz".format(version)
+
+ variant('chrpath', default=False, description='Use chrpath for deployment')
+ variant('strip', default=False, description='Use binutils strip for deployment')
+
+ # header only dependencies
+ depends_on('cpp-termcolor', when='@2.0:', type='build')
+ depends_on('cxxopts', when='@2.0:', type='build')
+ depends_on('elfio', when='@2.0:', type='build')
+
+ # runtime deps
+ depends_on('chrpath', when='+chrpath', type='run')
+ depends_on('binutils', when='+strip', type='run')
+
+ # testing
+ depends_on('googletest', type='test')
+
+ def cmake_args(self):
+ tests_enabled = 'ON' if self.run_tests else 'OFF'
+ if self.spec.satisfies('@2.0:'):
+ tests_define = 'LIBTREE_BUILD_TESTS'
+ else:
+ tests_define = 'BUILD_TESTING'
+
+ return [
+ self.define(tests_define, tests_enabled)
+ ]
+
+ def check(self):
+ with working_dir(self.build_directory):
+ ctest('--output-on-failure')
diff --git a/var/spack/repos/builtin/packages/libuecc/package.py b/var/spack/repos/builtin/packages/libuecc/package.py
index b0ad96b003..59c9cd2d63 100644
--- a/var/spack/repos/builtin/packages/libuecc/package.py
+++ b/var/spack/repos/builtin/packages/libuecc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libunistring/package.py b/var/spack/repos/builtin/packages/libunistring/package.py
index 9812fb32cb..f194419474 100644
--- a/var/spack/repos/builtin/packages/libunistring/package.py
+++ b/var/spack/repos/builtin/packages/libunistring/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,10 @@ class Libunistring(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/libunistring/"
gnu_mirror_path = "libunistring/libunistring-0.9.10.tar.xz"
+ git = 'https://git.savannah.gnu.org/git/libunistring.git'
+ maintainers = ['bernhardkaindl']
+ version('master', branch='master')
version('0.9.10', sha256='eb8fb2c3e4b6e2d336608377050892b54c3c983b646c561836550863003c05d7')
version('0.9.9', sha256='a4d993ecfce16cf503ff7579f5da64619cee66226fb3b998dafb706190d9a833')
version('0.9.8', sha256='7b9338cf52706facb2e18587dceda2fbc4a2a3519efa1e15a3f2a68193942f80')
@@ -20,6 +23,23 @@ class Libunistring(AutotoolsPackage, GNUMirrorPackage):
version('0.9.6', sha256='2df42eae46743e3f91201bf5c100041540a7704e8b9abfd57c972b2d544de41b')
depends_on('iconv')
+ with when('@master'):
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('texinfo', type='build')
+ depends_on('gperf', type='build')
# glibc 2.28+ removed libio.h and thus _IO_ftrylockfile
patch('removed_libio.patch', when='@:0.9.9')
+
+ @when('@0.9.10')
+ def patch(self):
+ # Applies upstream fix for testcase: pragma weak conflicts with --as-needed
+ # https://bugs.gentoo.org/688464#c9 (this links to all further info)
+ filter_file('# pragma weak pthread_create', '', 'tests/glthread/thread.h')
+
+ @when('@master')
+ def autoreconf(self, spec, prefix):
+ which('./gitsub.sh')('pull')
+ which('./autogen.sh')()
diff --git a/var/spack/repos/builtin/packages/libunwind/package.py b/var/spack/repos/builtin/packages/libunwind/package.py
index 69f34f7504..d87581b664 100644
--- a/var/spack/repos/builtin/packages/libunwind/package.py
+++ b/var/spack/repos/builtin/packages/libunwind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,17 +10,15 @@ class Libunwind(AutotoolsPackage):
"""A portable and efficient C programming interface (API) to determine
the call-chain of a program."""
- homepage = "http://www.nongnu.org/libunwind/"
+ homepage = "https://www.nongnu.org/libunwind/"
url = "http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz"
git = "https://github.com/libunwind/libunwind"
maintainers = ['mwkrentel']
version('master', branch='master')
version('1.5-head', branch='v1.5-stable')
- version('1.5-rc1', sha256='3e0cbc6dee326592097ef06e97cf76ef597987eddd0df8bea49b0594e587627a')
- version('1.4-head', branch='v1.4-stable')
- version('1.4.0', sha256='df59c931bd4d7ebfd83ee481c943edf015138089b8e50abed8d9c57ba9338435', preferred=True)
- version('1.4-rc1', sha256='1928459139f048f9b4aca4bb5010540cb7718d44220835a2980b85429007fa9f')
+ version('1.5.0', sha256='90337653d92d4a13de590781371c604f9031cdb50520366aa1e3a91e1efb1017')
+ version('1.4.0', sha256='df59c931bd4d7ebfd83ee481c943edf015138089b8e50abed8d9c57ba9338435')
version('1.3.1', sha256='43997a3939b6ccdf2f669b50fdb8a4d3205374728c2923ddc2354c65260214f8')
version('1.2.1', sha256='3f3ecb90e28cbe53fba7a4a27ccce7aad188d3210bb1964a923a731a27a75acb')
version('1.1', sha256='9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a')
@@ -37,10 +35,10 @@ class Libunwind(AutotoolsPackage):
# The libunwind releases contain the autotools generated files,
# but the git repo snapshots do not.
- depends_on('autoconf', type='build', when='@master,1.4-head,1.5-head')
- depends_on('automake', type='build', when='@master,1.4-head,1.5-head')
- depends_on('libtool', type='build', when='@master,1.4-head,1.5-head')
- depends_on('m4', type='build', when='@master,1.4-head,1.5-head')
+ depends_on('autoconf', type='build', when='@master,1.5-head')
+ depends_on('automake', type='build', when='@master,1.5-head')
+ depends_on('libtool', type='build', when='@master,1.5-head')
+ depends_on('m4', type='build', when='@master,1.5-head')
depends_on('xz', type='link', when='+xz')
depends_on('zlib', type='link', when='+zlib')
@@ -55,7 +53,9 @@ class Libunwind(AutotoolsPackage):
if name == 'cflags':
# https://github.com/libunwind/libunwind/pull/166
- if self.spec.satisfies('@:1.4 %gcc@10:'):
+ if (self.spec.satisfies('@:1.4 %gcc@10:') or
+ self.spec.satisfies('@:1.4 %cce@11:') or
+ self.spec.satisfies('@:1.4 %clang@11:')):
wrapper_flags.append('-fcommon')
if '+pic' in self.spec:
diff --git a/var/spack/repos/builtin/packages/libusb/package.py b/var/spack/repos/builtin/packages/libusb/package.py
index e3e9099d00..1740d0f6d9 100644
--- a/var/spack/repos/builtin/packages/libusb/package.py
+++ b/var/spack/repos/builtin/packages/libusb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libusbmuxd/package.py b/var/spack/repos/builtin/packages/libusbmuxd/package.py
index 999636b785..48f64d0cf6 100644
--- a/var/spack/repos/builtin/packages/libusbmuxd/package.py
+++ b/var/spack/repos/builtin/packages/libusbmuxd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libuser/package.py b/var/spack/repos/builtin/packages/libuser/package.py
index b97f5e2ba6..676ac99ac6 100644
--- a/var/spack/repos/builtin/packages/libuser/package.py
+++ b/var/spack/repos/builtin/packages/libuser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Libuser(AutotoolsPackage):
"""A user and group account administration library."""
homepage = "https://pagure.io/libuser"
- url = "http://releases.pagure.org/libuser/libuser-0.62.tar.xz"
+ url = "https://releases.pagure.org/libuser/libuser-0.62.tar.xz"
version('0.62', sha256='a58ff4fabb01a25043b142185a33eeea961109dd60d4b40b6a9df4fa3cace20b')
version('0.61', sha256='0a114a52446e12781e2ffdf26f59df0d14e7809c7db5e551d3cf61c4e398751d')
diff --git a/var/spack/repos/builtin/packages/libuuid/package.py b/var/spack/repos/builtin/packages/libuuid/package.py
index fc4ca59efa..c39a29f407 100644
--- a/var/spack/repos/builtin/packages/libuuid/package.py
+++ b/var/spack/repos/builtin/packages/libuuid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,9 @@ from spack import *
class Libuuid(AutotoolsPackage, SourceforgePackage):
"""Portable uuid C library"""
- homepage = "http://sourceforge.net/projects/libuuid/"
+ homepage = "https://sourceforge.net/projects/libuuid/"
sourceforge_mirror_path = "libuuid/libuuid-1.0.3.tar.gz"
version('1.0.3', sha256='46af3275291091009ad7f1b899de3d0cea0252737550e7919d17237997db5644')
+
+ provides('uuid')
diff --git a/var/spack/repos/builtin/packages/libuv/package.py b/var/spack/repos/builtin/packages/libuv/package.py
index 7129acf5a6..c5ef0039d3 100644
--- a/var/spack/repos/builtin/packages/libuv/package.py
+++ b/var/spack/repos/builtin/packages/libuv/package.py
@@ -1,12 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Libuv(AutotoolsPackage):
"""Multi-platform library with a focus on asynchronous IO"""
- homepage = "http://libuv.org"
+ homepage = "https://libuv.org"
url = "https://github.com/libuv/libuv/archive/v1.9.0.tar.gz"
+ version('1.42.0', sha256='371e5419708f6aaeb8656671f89400b92a9bba6443369af1bb70bcd6e4b3c764')
+ version('1.41.1', sha256='62c29d1d76b0478dc8aaed0ed1f874324f6cd2d6ff4cb59a44026c09e818cd53')
+ version('1.41.0', sha256='6cfeb5f4bab271462b4a2cc77d4ecec847fdbdc26b72019c27ae21509e6f94fa')
version('1.40.0', sha256='70fe1c9ba4f2c509e8166c0ca2351000237da573bb6c82092339207a9715ba6b')
version('1.39.0', sha256='dc7b21f1bb7ef19f4b42c5ea058afabe51132d165da18812b70fb319659ba629')
version('1.38.1', sha256='2177fca2426ac60c20f654323656e843dac4f568d46674544b78f416697bd32c')
@@ -17,6 +20,7 @@ class Libuv(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('autoconf', type='build')
depends_on('libtool', type='build')
+ depends_on('m4', type='build')
# Tries to build an Objective-C file with GCC's C frontend
# https://github.com/libuv/libuv/issues/2805
diff --git a/var/spack/repos/builtin/packages/libvdwxc/package.py b/var/spack/repos/builtin/packages/libvdwxc/package.py
index 2e0934ab2f..731e5d45f3 100644
--- a/var/spack/repos/builtin/packages/libvdwxc/package.py
+++ b/var/spack/repos/builtin/packages/libvdwxc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libverto/package.py b/var/spack/repos/builtin/packages/libverto/package.py
index 7efdb156c9..871e68f8e4 100644
--- a/var/spack/repos/builtin/packages/libverto/package.py
+++ b/var/spack/repos/builtin/packages/libverto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libvips/package.py b/var/spack/repos/builtin/packages/libvips/package.py
index 89371208ab..fd6b8ca8ed 100644
--- a/var/spack/repos/builtin/packages/libvips/package.py
+++ b/var/spack/repos/builtin/packages/libvips/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,8 +15,9 @@ class Libvips(AutotoolsPackage):
url = "https://github.com/libvips/libvips/releases/download/v8.9.0/vips-8.9.0.tar.gz"
git = "https://github.com/libvips/libvips.git"
- version('8.9.1', sha256='45633798877839005016c9d3494e98dee065f5cb9e20f4552d3b315b8e8bce91', preferred=True)
- version('8.9.0', sha256='97334a5e70aff343d2587f23cb8068fc846a58cd937c89a446142ccf00ea0349')
+ version('8.10.5', sha256='a4eef2f5334ab6dbf133cd3c6d6394d5bdb3e76d5ea4d578b02e1bc3d9e1cfd8')
+ version('8.9.1', sha256='45633798877839005016c9d3494e98dee065f5cb9e20f4552d3b315b8e8bce91')
+ version('8.9.0', sha256='97334a5e70aff343d2587f23cb8068fc846a58cd937c89a446142ccf00ea0349')
variant('fftw', default=True,
description='Uses FFTW3 for fourier transforms.')
diff --git a/var/spack/repos/builtin/packages/libvorbis/package.py b/var/spack/repos/builtin/packages/libvorbis/package.py
index 372a93efef..f855be40dc 100644
--- a/var/spack/repos/builtin/packages/libvorbis/package.py
+++ b/var/spack/repos/builtin/packages/libvorbis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,7 @@ class Libvorbis(AutotoolsPackage):
homepage = "https://xiph.org/vorbis/"
url = "http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz"
+ version('1.3.7', sha256='0e982409a9c3fc82ee06e08205b1355e5c6aa4c36bca58146ef399621b0ce5ab')
version('1.3.5', sha256='6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce')
depends_on('libogg')
diff --git a/var/spack/repos/builtin/packages/libvori/package.py b/var/spack/repos/builtin/packages/libvori/package.py
new file mode 100644
index 0000000000..1498bb961a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libvori/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 Libvori(CMakePackage):
+ """Support for Voronoi Integration and lossless BQB compression"""
+
+ homepage = "https://brehm-research.de/voronoi.php"
+ url = "https://www.cp2k.org/static/downloads/libvori-201217.tar.gz"
+
+ maintainers = ['dev-zero']
+
+ version('210412', sha256='331886aea9d093d8c44b95a07fab13d47f101b1f94a0640d7d670eb722bf90ac')
+ version('201229', sha256='da0afb292c94f8de2aaebfd0b692d15ffd86083cb8a48478b07ca93823decc06')
+ version('201224', sha256='16f6c49eaa17ea23868925dbaae2eca71bdacbe50418c97d6c55e05728038f31')
+ version('201217', sha256='6ad456ed6ca5d28cadcc0d90eabe8fff5caa77b99f12764323de5e3ae21cddf5')
diff --git a/var/spack/repos/builtin/packages/libvpx/package.py b/var/spack/repos/builtin/packages/libvpx/package.py
new file mode 100644
index 0000000000..f6a4c11bfa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libvpx/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 Libvpx(AutotoolsPackage):
+ """libvpx is a free software video codec library from Google and the
+ Alliance for Open Media.
+ It serves as the reference software implementation for the VP8 and VP9
+ video coding formats, and for AV1 a special fork named libaom that was
+ stripped of backwards compatibility.
+ """
+
+ homepage = "https://chromium.googlesource.com/webm/libvpx"
+ url = "https://github.com/webmproject/libvpx/archive/refs/tags/v1.10.0.tar.gz"
+
+ version('1.10.0', sha256='85803ccbdbdd7a3b03d930187cb055f1353596969c1f92ebec2db839fa4f834a')
+
+ variant('pic', default=True,
+ description='Produce position-independent code (for shared libs)')
+
+ depends_on('yasm')
+
+ def configure_args(self):
+ extra_args = []
+ if "+pic" in self.spec:
+ extra_args.append('--enable-pic')
+ return extra_args
diff --git a/var/spack/repos/builtin/packages/libvterm/package.py b/var/spack/repos/builtin/packages/libvterm/package.py
index 6697ceeeb7..c5e261b70c 100644
--- a/var/spack/repos/builtin/packages/libvterm/package.py
+++ b/var/spack/repos/builtin/packages/libvterm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libwebp/package.py b/var/spack/repos/builtin/packages/libwebp/package.py
index fd8dee8e9e..5321aa9e6e 100644
--- a/var/spack/repos/builtin/packages/libwebp/package.py
+++ b/var/spack/repos/builtin/packages/libwebp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,48 +14,42 @@ class Libwebp(AutotoolsPackage):
homepage = "https://developers.google.com/speed/webp/"
url = "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.3.tar.gz"
+ version('1.2.0', sha256='2fc8bbde9f97f2ab403c0224fb9ca62b2e6852cbc519e91ceaa7c153ffd88a0c')
version('1.0.3', sha256='e20a07865c8697bba00aebccc6f54912d6bc333bb4d604e6b07491c1a226b34f')
- variant('libwebpmux', default=False, description='Build libwebpmux')
- variant('libwebpdemux', default=False, description='Build libwebpdemux')
+ variant('libwebpmux', default=False, description='Build libwebpmux')
+ variant('libwebpdemux', default=False, description='Build libwebpdemux')
variant('libwebpdecoder', default=False, description='Build libwebpdecoder')
- variant('libwebpextras', default=False, description='Build libwebpextras')
+ variant('libwebpextras', default=False, description='Build libwebpextras')
+ variant('gif', default=False, description='GIF support')
+ variant('jpeg', default=False, description='JPEG support')
+ variant('png', default=False, description='PNG support')
+ variant('tiff', default=False, description='TIFF support')
depends_on('automake', type='build')
depends_on('autoconf', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ depends_on('giflib', when='+gif')
+ depends_on('jpeg', when='+jpeg')
+ depends_on('libpng', when='+png')
+ depends_on('libtiff', when='+tiff')
def configure_args(self):
# TODO: add variants and dependencies for these
args = [
'--disable-gl',
'--disable-sdl',
- '--disable-png',
- '--disable-jpeg',
- '--disable-tiff',
- '--disable-gif',
'--disable-wic',
]
- if '+libwebpmux' in self.spec:
- args.append('--enable-libwebpmux')
- else:
- args.append('--disable-libwebpmux')
-
- if '+libwebpdemux' in self.spec:
- args.append('--enable-libwebpdemux')
- else:
- args.append('--disable-libwebpdemux')
-
- if '+libwebpdecoder' in self.spec:
- args.append('--enable-libwebpdecoder')
- else:
- args.append('--disable-libwebpdecoder')
-
- if '+libwebpextras' in self.spec:
- args.append('--enable-libwebpextras')
- else:
- args.append('--disable-libwebpextras')
+ args += self.enable_or_disable('gif')
+ args += self.enable_or_disable('jpeg')
+ args += self.enable_or_disable('png')
+ args += self.enable_or_disable('tiff')
+ args += self.enable_or_disable('libwebpmux')
+ args += self.enable_or_disable('libwebpdemux')
+ args += self.enable_or_disable('libwebpdecoder')
+ args += self.enable_or_disable('libwebpextras')
return args
diff --git a/var/spack/repos/builtin/packages/libwebsockets/package.py b/var/spack/repos/builtin/packages/libwebsockets/package.py
index a00f841a7c..32d6206492 100644
--- a/var/spack/repos/builtin/packages/libwebsockets/package.py
+++ b/var/spack/repos/builtin/packages/libwebsockets/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libwhich/package.py b/var/spack/repos/builtin/packages/libwhich/package.py
new file mode 100644
index 0000000000..44efd471c2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libwhich/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 Libwhich(Package):
+ """
+ Libwhich: the functionality of which for libraries.
+ """
+
+ homepage = "https://github.com/vtjnash/libwhich"
+ url = "https://github.com/vtjnash/libwhich/archive/refs/tags/v1.1.0.tar.gz"
+ git = "https://github.com/vtjnash/libwhich.git"
+
+ maintainers = ['dmageeLANL']
+
+ version('master', branch='master')
+ version('1.1.0', sha256='f1c30bf7396859ad437a5db74e9e328fb4b4e1379457121e28a3524b1e3a0b3f')
+ version('1.0.0', sha256='61d5d643d4cbd4b340b9b48922e1b4fd2a35729b7cfdcc7283aab82a6f742a6c')
+
+ def install(self, spec, prefix):
+ make()
+ mkdir(prefix.bin)
+ install('libwhich', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/libwindowswm/package.py b/var/spack/repos/builtin/packages/libwindowswm/package.py
index 4c5d32d247..d1ad3eae16 100644
--- a/var/spack/repos/builtin/packages/libwindowswm/package.py
+++ b/var/spack/repos/builtin/packages/libwindowswm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Libwindowswm(AutotoolsPackage, XorgPackage):
better interact with the Cygwin XWin server when running X11 in a
rootless mode."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libWindowsWM"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libWindowsWM"
xorg_mirror_path = "lib/libWindowsWM-1.0.1.tar.gz"
version('1.0.1', sha256='94f9c0add3bad38ebd84bc43d854207c4deaaa74fb15339276e022546124b98a')
@@ -22,7 +22,7 @@ class Libwindowswm(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxext')
- depends_on('xextproto', type='build')
- depends_on('windowswmproto', type='build')
+ depends_on('xextproto')
+ depends_on('windowswmproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libx11/package.py b/var/spack/repos/builtin/packages/libx11/package.py
index fa41e10d74..1a731e40c7 100644
--- a/var/spack/repos/builtin/packages/libx11/package.py
+++ b/var/spack/repos/builtin/packages/libx11/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,17 +12,19 @@ class Libx11(AutotoolsPackage, XorgPackage):
homepage = "https://www.x.org/"
xorg_mirror_path = "lib/libX11-1.6.7.tar.gz"
+ version('1.7.0', sha256='c48ec61785ec68fc6a9a6aca0a9578393414fe2562e3cc9cca30234345c7b6ac')
version('1.6.7', sha256='f62ab88c2a87b55e1dc338726a55bb6ed8048084fe6a3294a7ae324ca45159d1')
version('1.6.5', sha256='3abce972ba62620611fab5b404dafb852da3da54e7c287831c30863011d28fb3')
version('1.6.3', sha256='0b03b9d22f4c9e59b4ba498f294e297f013cae27050dfa0f3496640200db5376')
depends_on('libxcb@1.1.92:')
- depends_on('xproto@7.0.17:', type='build')
- depends_on('xextproto', type=('build', 'link'))
- depends_on('xtrans', type='build')
- depends_on('kbproto', type=('build', 'link'))
- depends_on('inputproto', type='build')
+ depends_on('xproto@7.0.25:', when='@1.7.0:')
+ depends_on('xproto@7.0.17:')
+ depends_on('xextproto')
+ depends_on('xtrans')
+ depends_on('kbproto')
+ depends_on('inputproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
depends_on('perl', type='build')
@@ -31,7 +33,7 @@ class Libx11(AutotoolsPackage, XorgPackage):
config_args = []
# -Werror flags are not properly interpreted by the NVIDIA compiler
- if self.spec.satisfies('%nvhpc'):
+ if self.spec.satisfies('%nvhpc@:20.11'):
config_args.append('--disable-selective-werror')
return config_args
diff --git a/var/spack/repos/builtin/packages/libxau/package.py b/var/spack/repos/builtin/packages/libxau/package.py
index f94b92841d..2ba1258626 100644
--- a/var/spack/repos/builtin/packages/libxau/package.py
+++ b/var/spack/repos/builtin/packages/libxau/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,6 @@ class Libxau(AutotoolsPackage, XorgPackage):
version('1.0.8', sha256='c343b4ef66d66a6b3e0e27aa46b37ad5cab0f11a5c565eafb4a1c7590bc71d7b')
- depends_on('xproto', type=('build', 'link'))
+ depends_on('xproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxaw/package.py b/var/spack/repos/builtin/packages/libxaw/package.py
index efd5120ef0..9a86846835 100644
--- a/var/spack/repos/builtin/packages/libxaw/package.py
+++ b/var/spack/repos/builtin/packages/libxaw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Libxaw(AutotoolsPackage, XorgPackage):
"""Xaw is the X Athena Widget Set.
Xaw is a widget set based on the X Toolkit Intrinsics (Xt) Library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXaw"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXaw"
xorg_mirror_path = "lib/libXaw-1.0.13.tar.gz"
version('1.0.13', sha256='7e74ac3e5f67def549722ff0333d6e6276b8becd9d89615cda011e71238ab694')
@@ -22,7 +22,7 @@ class Libxaw(AutotoolsPackage, XorgPackage):
depends_on('libxmu')
depends_on('libxpm')
- depends_on('xproto', type='build')
- depends_on('xextproto', type='build')
+ depends_on('xproto')
+ depends_on('xextproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxaw3d/package.py b/var/spack/repos/builtin/packages/libxaw3d/package.py
index 78f94d3423..cd397d0f6a 100644
--- a/var/spack/repos/builtin/packages/libxaw3d/package.py
+++ b/var/spack/repos/builtin/packages/libxaw3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Libxaw3d(AutotoolsPackage, XorgPackage):
"""Xaw3d is the X 3D Athena Widget Set.
Xaw3d is a widget set based on the X Toolkit Intrinsics (Xt) Library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXaw3d"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXaw3d"
xorg_mirror_path = "lib/libXaw3d-1.6.2.tar.gz"
version('1.6.2', sha256='847dab01aeac1448916e3b4edb4425594b3ac2896562d9c7141aa4ac6c898ba9')
diff --git a/var/spack/repos/builtin/packages/libxc/package.py b/var/spack/repos/builtin/packages/libxc/package.py
index f054bfa72c..cdfcc52433 100644
--- a/var/spack/repos/builtin/packages/libxc/package.py
+++ b/var/spack/repos/builtin/packages/libxc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,10 @@ class Libxc(AutotoolsPackage, CudaPackage):
homepage = "https://tddft.org/programs/libxc/"
url = "https://www.tddft.org/programs/libxc/down.php?file=2.2.2/libxc-2.2.2.tar.gz"
+ version('5.1.5', sha256='02e4615a22dc3ec87a23efbd3d9be5bfad2445337140bad1720699571c45c3f9')
+ version('5.1.3', sha256='0350defdd6c1b165e4cf19995f590eee6e0b9db95a6b221d28cecec40f4e85cd')
+ version('5.1.2', sha256='180d52b5552921d1fac8a10869dd30708c0fb41dc202a3bbee0e36f43872718a')
+ version('5.1.0', sha256='f67b6e518372871d9eed6e5dba77c3ab5ea030c229ba7a7d44bcf51f3258373f')
version('5.0.0', sha256='1cdc57930f7b57da4eb9b2c55a50ba1c2c385936ddaf5582fee830994461a892')
version('4.3.4', sha256='a8ee37ddc5079339854bd313272856c9d41a27802472ee9ae44b58ee9a298337')
version('4.3.2', sha256='bc159aea2537521998c7fb1199789e1be71e04c4b7758d58282622e347603a6f')
@@ -26,6 +30,8 @@ class Libxc(AutotoolsPackage, CudaPackage):
conflicts('+shared +cuda', msg='Only ~shared supported with +cuda')
conflicts('+cuda', when='@:4', msg='CUDA support only in libxc 5.0.0 and above')
+ depends_on('perl', type='build')
+
patch('0001-Bugfix-avoid-implicit-pointer-cast-to-make-libxc-com.patch', when='@5.0.0')
patch('0002-Mark-xc_erfcx-a-GPU_FUNCTION.patch', when='@5.0.0')
@@ -73,8 +79,13 @@ class Libxc(AutotoolsPackage, CudaPackage):
env.append_flags('CFLAGS', optflags)
env.append_flags('FCFLAGS', optflags)
- if '%intel' in self.spec and which('xiar'):
- env.set('AR', 'xiar')
+ if '%intel' in self.spec:
+ env.append_flags('CFLAGS', '-std=c99')
+ if which('xiar'):
+ env.set('AR', 'xiar')
+
+ if '%aocc' in self.spec:
+ env.append_flags('FCFLAGS', '-fPIC')
if '+cuda' in self.spec:
nvcc = self.spec['cuda'].prefix.bin.nvcc
@@ -96,6 +107,15 @@ class Libxc(AutotoolsPackage, CudaPackage):
return args
+ @run_after('configure')
+ def patch_libtool(self):
+ """AOCC support for LIBXC"""
+ if '%aocc' in self.spec:
+ filter_file(
+ r'\$wl-soname \$wl\$soname',
+ r'-fuse-ld=ld -Wl,-soname,\$soname',
+ 'libtool', string=True)
+
def check(self):
# libxc provides a testsuite, but many tests fail
# http://www.tddft.org/pipermail/libxc/2013-February/000032.html
diff --git a/var/spack/repos/builtin/packages/libxcb/package.py b/var/spack/repos/builtin/packages/libxcb/package.py
index a384b13acb..e6fbaf5b99 100644
--- a/var/spack/repos/builtin/packages/libxcb/package.py
+++ b/var/spack/repos/builtin/packages/libxcb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,9 @@ class Libxcb(AutotoolsPackage):
extensibility."""
homepage = "https://xcb.freedesktop.org/"
- url = "https://xcb.freedesktop.org/dist/libxcb-1.13.tar.gz"
+ url = "https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.14.tar.xz"
+ version('1.14', sha256='a55ed6db98d43469801262d81dc2572ed124edc3db31059d4e9916eb9f844c34')
version('1.13', sha256='0bb3cfd46dbd90066bf4d7de3cad73ec1024c7325a4a0cbf5f4a0d4fa91155fb')
version('1.12', sha256='092f147149d8a6410647a848378aaae749304d5b73e028ccb8306aa8a9e26f06')
version('1.11.1', sha256='660312d5e64d0a5800262488042c1707a0261fa01a759bad265b1b75dd4844dd')
@@ -25,10 +26,11 @@ class Libxcb(AutotoolsPackage):
depends_on('libxdmcp')
# libxcb 1.X requires xcb-proto >= 1.X
- depends_on('xcb-proto', type='build')
- depends_on('xcb-proto@1.13:', when='@1.13:1.13.999', type='build')
- depends_on('xcb-proto@1.12:', when='@1.12:1.12.999', type='build')
- depends_on('xcb-proto@1.11:', when='@1.11:1.11.999', type='build')
+ depends_on('xcb-proto')
+ depends_on('xcb-proto@1.14:', when='@1.14:1.14.999')
+ depends_on('xcb-proto@1.13:', when='@1.13:1.13.999')
+ depends_on('xcb-proto@1.12:', when='@1.12:1.12.999')
+ depends_on('xcb-proto@1.11:', when='@1.11:1.11.999')
# TODO: uncomment once build deps can be resolved separately
# See #7646, #4145, #4063, and #2548 for details
@@ -39,11 +41,19 @@ class Libxcb(AutotoolsPackage):
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
+ def url_for_version(self, version):
+ if version >= Version('1.14'):
+ url = 'https://xorg.freedesktop.org/archive/individual/lib/libxcb-{0}.tar.xz'
+ else:
+ url = 'https://xcb.freedesktop.org/dist/libxcb-{0}.tar.gz'
+
+ return url.format(version)
+
def configure_args(self):
config_args = []
# -Werror flags are not properly interpreted by the NVIDIA compiler
- if self.spec.satisfies('%nvhpc'):
+ if self.spec.satisfies('%nvhpc@:20.11'):
config_args.append('--disable-selective-werror')
return config_args
diff --git a/var/spack/repos/builtin/packages/libxcomposite/package.py b/var/spack/repos/builtin/packages/libxcomposite/package.py
index f1c2301b49..24b8a374c4 100644
--- a/var/spack/repos/builtin/packages/libxcomposite/package.py
+++ b/var/spack/repos/builtin/packages/libxcomposite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,14 +10,14 @@ class Libxcomposite(AutotoolsPackage, XorgPackage):
"""libXcomposite - client library for the Composite extension to the
X11 protocol."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXcomposite"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXcomposite"
xorg_mirror_path = "lib/libXcomposite-0.4.4.tar.gz"
version('0.4.4', sha256='83c04649819c6f52cda1b0ce8bcdcc48ad8618428ad803fb07f20b802f1bdad1')
depends_on('libx11')
depends_on('libxfixes')
- depends_on('fixesproto@0.4:', type='build')
- depends_on('compositeproto@0.4:', type='build')
+ depends_on('fixesproto@0.4:')
+ depends_on('compositeproto@0.4:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxcrypt/package.py b/var/spack/repos/builtin/packages/libxcrypt/package.py
index 68094a3772..1554d0789b 100644
--- a/var/spack/repos/builtin/packages/libxcrypt/package.py
+++ b/var/spack/repos/builtin/packages/libxcrypt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libxcursor/package.py b/var/spack/repos/builtin/packages/libxcursor/package.py
index 4022033f1d..a0d3ebcabb 100644
--- a/var/spack/repos/builtin/packages/libxcursor/package.py
+++ b/var/spack/repos/builtin/packages/libxcursor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxcursor(AutotoolsPackage, XorgPackage):
"""libXcursor - X Window System Cursor management library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXcursor"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXcursor"
xorg_mirror_path = "lib/libXcursor-1.1.14.tar.gz"
version('1.1.14', sha256='be0954faf274969ffa6d95b9606b9c0cfee28c13b6fc014f15606a0c8b05c17b')
@@ -18,6 +18,6 @@ class Libxcursor(AutotoolsPackage, XorgPackage):
depends_on('libxfixes')
depends_on('libx11')
- depends_on('fixesproto', type='build')
+ depends_on('fixesproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxdamage/package.py b/var/spack/repos/builtin/packages/libxdamage/package.py
index 6e14c62707..04c066b32c 100644
--- a/var/spack/repos/builtin/packages/libxdamage/package.py
+++ b/var/spack/repos/builtin/packages/libxdamage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxdamage(AutotoolsPackage, XorgPackage):
"""This package contains the library for the X Damage extension."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXdamage"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXdamage"
xorg_mirror_path = "lib/libXdamage-1.1.4.tar.gz"
version('1.1.4', sha256='4bb3e9d917f5f593df2277d452926ee6ad96de7b7cd1017cbcf4579fe5d3442b')
@@ -17,8 +17,8 @@ class Libxdamage(AutotoolsPackage, XorgPackage):
depends_on('libxfixes')
depends_on('libx11')
- depends_on('damageproto@1.1:', type='build')
- depends_on('fixesproto', type='build')
- depends_on('xextproto', type='build')
+ depends_on('damageproto@1.1:')
+ depends_on('fixesproto')
+ depends_on('xextproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxdmcp/package.py b/var/spack/repos/builtin/packages/libxdmcp/package.py
index a6d81dc34f..fe1a6d2133 100644
--- a/var/spack/repos/builtin/packages/libxdmcp/package.py
+++ b/var/spack/repos/builtin/packages/libxdmcp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,12 @@ from spack import *
class Libxdmcp(AutotoolsPackage, XorgPackage):
"""libXdmcp - X Display Manager Control Protocol library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXdmcp"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXdmcp"
xorg_mirror_path = "lib/libXdmcp-1.1.2.tar.gz"
version('1.1.2', sha256='6f7c7e491a23035a26284d247779174dedc67e34e93cc3548b648ffdb6fc57c0')
- depends_on('xproto', type='build')
+ depends_on('xproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
depends_on('libbsd', when='platform=linux')
diff --git a/var/spack/repos/builtin/packages/libxevie/package.py b/var/spack/repos/builtin/packages/libxevie/package.py
index a9781f4848..f70cd34424 100644
--- a/var/spack/repos/builtin/packages/libxevie/package.py
+++ b/var/spack/repos/builtin/packages/libxevie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxevie(AutotoolsPackage, XorgPackage):
"""Xevie - X Event Interception Extension (XEvIE)."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXevie"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXevie"
xorg_mirror_path = "lib/libXevie-1.0.3.tar.gz"
version('1.0.3', sha256='3759bb1f7fdade13ed99bfc05c0717bc42ce3f187e7da4eef80beddf5e461258')
@@ -17,8 +17,8 @@ class Libxevie(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxext')
- depends_on('xproto', type='build')
- depends_on('xextproto', type='build')
- depends_on('evieext', type='build')
+ depends_on('xproto')
+ depends_on('xextproto')
+ depends_on('evieext')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxext/package.py b/var/spack/repos/builtin/packages/libxext/package.py
index bd615f0fa7..a9e8f4871d 100644
--- a/var/spack/repos/builtin/packages/libxext/package.py
+++ b/var/spack/repos/builtin/packages/libxext/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,14 +9,19 @@ from spack import *
class Libxext(AutotoolsPackage, XorgPackage):
"""libXext - library for common extensions to the X11 protocol."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXext"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXext"
xorg_mirror_path = "lib/libXext-1.3.3.tar.gz"
version('1.3.3', sha256='eb0b88050491fef4716da4b06a4d92b4fc9e76f880d6310b2157df604342cfe5')
depends_on('libx11@1.6:')
- depends_on('xproto@7.0.13:', type='build')
- depends_on('xextproto@7.1.99:', type='build')
+ depends_on('xproto@7.0.13:')
+ depends_on('xextproto@7.1.99:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
+
+ @property
+ def libs(self):
+ return find_libraries('libXext', self.prefix,
+ shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/libxfixes/package.py b/var/spack/repos/builtin/packages/libxfixes/package.py
index 3a3d92a9e8..2a74a08838 100644
--- a/var/spack/repos/builtin/packages/libxfixes/package.py
+++ b/var/spack/repos/builtin/packages/libxfixes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,15 @@ class Libxfixes(AutotoolsPackage, XorgPackage):
"""This package contains header files and documentation for the XFIXES
extension. Library and server implementations are separate."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXfixes"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXfixes"
xorg_mirror_path = "lib/libXfixes-5.0.2.tar.gz"
version('5.0.2', sha256='ad8df1ecf3324512b80ed12a9ca07556e561b14256d94216e67a68345b23c981')
depends_on('libx11@1.6:')
- depends_on('xproto', type='build')
- depends_on('fixesproto@5.0:', type='build')
- depends_on('xextproto', type='build')
+ depends_on('xproto')
+ depends_on('fixesproto@5.0:')
+ depends_on('xextproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxfont/package.py b/var/spack/repos/builtin/packages/libxfont/package.py
index ebaf8a3570..d7fb57f57d 100644
--- a/var/spack/repos/builtin/packages/libxfont/package.py
+++ b/var/spack/repos/builtin/packages/libxfont/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Libxfont(AutotoolsPackage, XorgPackage):
but should not be used by normal X11 clients. X11 clients access fonts
via either the new API's in libXft, or the legacy API's in libX11."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXfont"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXfont"
xorg_mirror_path = "lib/libXfont-1.5.2.tar.gz"
version('1.5.2', sha256='a7350c75171d03d06ae0d623e42240356d6d3e1ac7dfe606639bf20f0d653c93')
@@ -22,8 +22,8 @@ class Libxfont(AutotoolsPackage, XorgPackage):
depends_on('libfontenc')
depends_on('freetype')
- depends_on('xtrans', type='build')
- depends_on('xproto', type='build')
- depends_on('fontsproto@2.1.3:', type='build')
+ depends_on('xtrans')
+ depends_on('xproto')
+ depends_on('fontsproto@2.1.3:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxfont2/package.py b/var/spack/repos/builtin/packages/libxfont2/package.py
index 2cd8d5c3de..24fa3e3f15 100644
--- a/var/spack/repos/builtin/packages/libxfont2/package.py
+++ b/var/spack/repos/builtin/packages/libxfont2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Libxfont2(AutotoolsPackage, XorgPackage):
but should not be used by normal X11 clients. X11 clients access fonts
via either the new API's in libXft, or the legacy API's in libX11."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXfont"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXfont"
xorg_mirror_path = "lib/libXfont2-2.0.1.tar.gz"
version('2.0.1', sha256='381b6b385a69343df48a082523c856aed9042fbbc8ee0a6342fb502e4321230a')
@@ -22,8 +22,8 @@ class Libxfont2(AutotoolsPackage, XorgPackage):
depends_on('libfontenc')
depends_on('freetype')
- depends_on('xtrans', type='build')
- depends_on('xproto', type='build')
- depends_on('fontsproto@2.1.3:', type='build')
+ depends_on('xtrans')
+ depends_on('xproto')
+ depends_on('fontsproto@2.1.3:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxfontcache/package.py b/var/spack/repos/builtin/packages/libxfontcache/package.py
index 6ee00368ec..3590197b24 100644
--- a/var/spack/repos/builtin/packages/libxfontcache/package.py
+++ b/var/spack/repos/builtin/packages/libxfontcache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxfontcache(AutotoolsPackage, XorgPackage):
"""Xfontcache - X-TrueType font cache extension client library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXfontcache"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXfontcache"
xorg_mirror_path = "lib/libXfontcache-1.0.5.tar.gz"
version('1.0.5', sha256='fdba75307a0983d2566554e0e9effa7079551f1b7b46e8de642d067998619659')
@@ -17,7 +17,7 @@ class Libxfontcache(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxext')
- depends_on('xextproto', type='build')
- depends_on('fontcacheproto', type='build')
+ depends_on('xextproto')
+ depends_on('fontcacheproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxft/package.py b/var/spack/repos/builtin/packages/libxft/package.py
index 9cbb296856..effe915a79 100644
--- a/var/spack/repos/builtin/packages/libxft/package.py
+++ b/var/spack/repos/builtin/packages/libxft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Libxft(AutotoolsPackage, XorgPackage):
connects X applications with the FreeType font rasterization library. Xft
uses fontconfig to locate fonts so it has no configuration files."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXft"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXft"
xorg_mirror_path = "lib/libXft-2.3.2.tar.gz"
version('2.3.2', sha256='26cdddcc70b187833cbe9dc54df1864ba4c03a7175b2ca9276de9f05dce74507')
diff --git a/var/spack/repos/builtin/packages/libxi/package.py b/var/spack/repos/builtin/packages/libxi/package.py
index 7464deff73..3b5d9e107d 100644
--- a/var/spack/repos/builtin/packages/libxi/package.py
+++ b/var/spack/repos/builtin/packages/libxi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxi(AutotoolsPackage, XorgPackage):
"""libXi - library for the X Input Extension."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXi"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXi"
xorg_mirror_path = "lib/libXi-1.7.6.tar.gz"
version('1.7.6', sha256='4e88fa7decd287e58140ea72238f8d54e4791de302938c83695fc0c9ac102b7e')
@@ -18,10 +18,12 @@ class Libxi(AutotoolsPackage, XorgPackage):
depends_on('libx11@1.6:')
depends_on('libxext@1.0.99.1:')
depends_on('libxfixes@5:')
-
- # transient build dependency (from libxfixes), i.e. shouldn't be needed?
- depends_on('fixesproto@5.0:', type='build')
-
- depends_on('xproto@7.0.13:', type='build')
- depends_on('xextproto@7.0.3:', type='build')
- depends_on('inputproto@2.2.99.1:', type='build')
+ depends_on('fixesproto@5.0:')
+ depends_on('xproto@7.0.13:')
+ depends_on('xextproto@7.0.3:')
+ depends_on('inputproto@2.2.99.1:')
+
+ @property
+ def libs(self):
+ return find_libraries(
+ 'libXi', self.prefix, shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/libxinerama/package.py b/var/spack/repos/builtin/packages/libxinerama/package.py
index 3855fb97de..c6ac18f86a 100644
--- a/var/spack/repos/builtin/packages/libxinerama/package.py
+++ b/var/spack/repos/builtin/packages/libxinerama/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxinerama(AutotoolsPackage, XorgPackage):
"""libXinerama - API for Xinerama extension to X11 Protocol."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXinerama"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXinerama"
xorg_mirror_path = "lib/libXinerama-1.1.3.tar.gz"
version('1.1.3', sha256='0ba243222ae5aba4c6a3d7a394c32c8b69220a6872dbb00b7abae8753aca9a44')
@@ -17,7 +17,12 @@ class Libxinerama(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxext')
- depends_on('xextproto', type='build')
- depends_on('xineramaproto@1.1.99.1:', type='build')
+ depends_on('xextproto')
+ depends_on('xineramaproto@1.1.99.1:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
+
+ @property
+ def libs(self):
+ return find_libraries('libXinerama', self.prefix,
+ shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/libxkbcommon/package.py b/var/spack/repos/builtin/packages/libxkbcommon/package.py
index 71e7a2b6ea..b32e9fdfe8 100644
--- a/var/spack/repos/builtin/packages/libxkbcommon/package.py
+++ b/var/spack/repos/builtin/packages/libxkbcommon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libxkbfile/package.py b/var/spack/repos/builtin/packages/libxkbfile/package.py
index 504709f808..5e75d3ddad 100644
--- a/var/spack/repos/builtin/packages/libxkbfile/package.py
+++ b/var/spack/repos/builtin/packages/libxkbfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,6 @@ class Libxkbfile(AutotoolsPackage, XorgPackage):
depends_on('libx11')
- depends_on('kbproto', type='build')
+ depends_on('kbproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxkbui/package.py b/var/spack/repos/builtin/packages/libxkbui/package.py
index 8b969b9d35..a903ff1bfb 100644
--- a/var/spack/repos/builtin/packages/libxkbui/package.py
+++ b/var/spack/repos/builtin/packages/libxkbui/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libxml2/package.py b/var/spack/repos/builtin/packages/libxml2/package.py
index 9cbc8a6817..994f2e3db5 100644
--- a/var/spack/repos/builtin/packages/libxml2/package.py
+++ b/var/spack/repos/builtin/packages/libxml2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,8 @@ class Libxml2(AutotoolsPackage):
homepage = "http://xmlsoft.org"
url = "http://xmlsoft.org/sources/libxml2-2.9.8.tar.gz"
+ version('2.9.12', sha256='c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92')
+ version('2.9.11', sha256='886f696d5d5b45d780b2880645edf9e0c62a4fd6841b853e824ada4e02b4d331')
version('2.9.10', sha256='aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f')
version('2.9.9', sha256='94fb70890143e3c6549f265cee93ec064c80a84c42ad0f23e85ee1fd6540a871')
version('2.9.8', sha256='0b74e51595654f958148759cfef0993114ddccccbb6f31aee018f3558e8e2732')
@@ -37,7 +39,7 @@ class Libxml2(AutotoolsPackage):
'(lib/xml2.*$)|(lib/cmake.*$)')
# XML Conformance Test Suites
- # See http://www.w3.org/XML/Test/ for information
+ # See https://www.w3.org/XML/Test/ for information
resource(name='xmlts', url='https://www.w3.org/XML/Test/xmlts20080827.tar.gz',
sha256='96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7')
@@ -48,7 +50,7 @@ class Libxml2(AutotoolsPackage):
def headers(self):
include_dir = self.spec.prefix.include.libxml2
hl = find_all_headers(include_dir)
- hl.directories = include_dir
+ hl.directories = [include_dir, self.spec.prefix.include]
return hl
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/libxmu/package.py b/var/spack/repos/builtin/packages/libxmu/package.py
index d53732752e..6b4128fc43 100644
--- a/var/spack/repos/builtin/packages/libxmu/package.py
+++ b/var/spack/repos/builtin/packages/libxmu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Libxmu(AutotoolsPackage, XorgPackage):
that it may be layered on top of any proprietary implementation of Xlib
or Xt."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXmu"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXmu"
xorg_mirror_path = "lib/libXmu-1.1.2.tar.gz"
version('1.1.2', sha256='e5fd4bacef068f9509b8226017205040e38d3fba8d2de55037200e7176c13dba')
@@ -21,6 +21,6 @@ class Libxmu(AutotoolsPackage, XorgPackage):
depends_on('libxext')
depends_on('libx11')
- depends_on('xextproto', type='build')
+ depends_on('xextproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxp/package.py b/var/spack/repos/builtin/packages/libxp/package.py
index d8c41790de..c2432182f8 100644
--- a/var/spack/repos/builtin/packages/libxp/package.py
+++ b/var/spack/repos/builtin/packages/libxp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxp(AutotoolsPackage, XorgPackage):
"""libXp - X Print Client Library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXp"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXp"
xorg_mirror_path = "lib/libXp-1.0.3.tar.gz"
version('1.0.3', sha256='f6b8cc4ef05d3eafc9ef5fc72819dd412024b4ed60197c0d5914758125817e9c')
@@ -18,7 +18,7 @@ class Libxp(AutotoolsPackage, XorgPackage):
depends_on('libxext')
depends_on('libxau')
- depends_on('xextproto', type='build')
- depends_on('printproto', type='build')
+ depends_on('xextproto')
+ depends_on('printproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxpm/package.py b/var/spack/repos/builtin/packages/libxpm/package.py
index 48a78dfe1c..190cc7ece8 100644
--- a/var/spack/repos/builtin/packages/libxpm/package.py
+++ b/var/spack/repos/builtin/packages/libxpm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxpm(AutotoolsPackage, XorgPackage):
"""libXpm - X Pixmap (XPM) image file format library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXpm"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXpm"
xorg_mirror_path = "lib/libXpm-3.5.12.tar.gz"
version('3.5.12', sha256='2523acc780eac01db5163267b36f5b94374bfb0de26fc0b5a7bee76649fd8501')
@@ -22,7 +22,7 @@ class Libxpm(AutotoolsPackage, XorgPackage):
depends_on('gettext')
depends_on('libx11')
- depends_on('xproto', type='build')
+ depends_on('xproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxpresent/package.py b/var/spack/repos/builtin/packages/libxpresent/package.py
index 1db0ccac41..898d545075 100644
--- a/var/spack/repos/builtin/packages/libxpresent/package.py
+++ b/var/spack/repos/builtin/packages/libxpresent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,10 +20,10 @@ class Libxpresent(AutotoolsPackage, XorgPackage):
depends_on('libxfixes', type='link')
depends_on('libxrandr', type='link')
- depends_on('xproto', type='link')
- depends_on('presentproto@1.0:', type='link')
- depends_on('xextproto', type='link')
- depends_on('fixesproto', type='link')
- depends_on('randrproto', type='link')
+ depends_on('xproto')
+ depends_on('presentproto@1.0:')
+ depends_on('xextproto')
+ depends_on('fixesproto')
+ depends_on('randrproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxprintapputil/package.py b/var/spack/repos/builtin/packages/libxprintapputil/package.py
index da2e116640..5b60bbf607 100644
--- a/var/spack/repos/builtin/packages/libxprintapputil/package.py
+++ b/var/spack/repos/builtin/packages/libxprintapputil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,6 +19,6 @@ class Libxprintapputil(AutotoolsPackage, XorgPackage):
depends_on('libxprintutil')
depends_on('libxau')
- depends_on('printproto', type='build')
+ depends_on('printproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxprintutil/package.py b/var/spack/repos/builtin/packages/libxprintutil/package.py
index bb39a3b8bb..19cbabe9ba 100644
--- a/var/spack/repos/builtin/packages/libxprintutil/package.py
+++ b/var/spack/repos/builtin/packages/libxprintutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,6 +19,6 @@ class Libxprintutil(AutotoolsPackage, XorgPackage):
depends_on('libxt')
depends_on('libxau')
- depends_on('printproto', type='build')
+ depends_on('printproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxrandr/package.py b/var/spack/repos/builtin/packages/libxrandr/package.py
index 405da4bbd0..ef17f8a58c 100644
--- a/var/spack/repos/builtin/packages/libxrandr/package.py
+++ b/var/spack/repos/builtin/packages/libxrandr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxrandr(AutotoolsPackage, XorgPackage):
"""libXrandr - X Resize, Rotate and Reflection extension library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXrandr"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXrandr"
xorg_mirror_path = "lib/libXrandr-1.5.0.tar.gz"
version('1.5.0', sha256='1b594a149e6b124aab7149446f2fd886461e2935eca8dca43fe83a70cf8ec451')
@@ -18,8 +18,13 @@ class Libxrandr(AutotoolsPackage, XorgPackage):
depends_on('libxext')
depends_on('libxrender')
- depends_on('randrproto@1.5:', type='build')
- depends_on('xextproto', type='build')
- depends_on('renderproto', type='build')
+ depends_on('randrproto@1.5:')
+ depends_on('xextproto')
+ depends_on('renderproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
+
+ @property
+ def libs(self):
+ return find_libraries(
+ 'libXrandr', self.prefix, shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/libxrender/package.py b/var/spack/repos/builtin/packages/libxrender/package.py
index c1dcd0b472..23a622f121 100644
--- a/var/spack/repos/builtin/packages/libxrender/package.py
+++ b/var/spack/repos/builtin/packages/libxrender/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxrender(AutotoolsPackage, XorgPackage):
"""libXrender - library for the Render Extension to the X11 protocol."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXrender"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXrender"
xorg_mirror_path = "lib/libXrender-0.9.10.tar.gz"
version('0.9.10', sha256='770527cce42500790433df84ec3521e8bf095dfe5079454a92236494ab296adf')
@@ -17,6 +17,11 @@ class Libxrender(AutotoolsPackage, XorgPackage):
depends_on('libx11@1.6:')
- depends_on('renderproto@0.9:', type=('build', 'link'))
+ depends_on('renderproto@0.9:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
+
+ @property
+ def libs(self):
+ return find_libraries('libXrender', self.prefix,
+ shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/libxres/package.py b/var/spack/repos/builtin/packages/libxres/package.py
index a1a16b87a4..8c1078bc40 100644
--- a/var/spack/repos/builtin/packages/libxres/package.py
+++ b/var/spack/repos/builtin/packages/libxres/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxres(AutotoolsPackage, XorgPackage):
"""libXRes - X-Resource extension client library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXRes"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXRes"
xorg_mirror_path = "lib/libXres-1.0.7.tar.gz"
version('1.0.7', sha256='488c9fa14b38f794d1f019fe62e6b06514a39f1a7538e55ece8faf22482fefcd')
@@ -17,7 +17,7 @@ class Libxres(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxext')
- depends_on('xextproto', type='build')
- depends_on('resourceproto@1.0:', type='build')
+ depends_on('xextproto')
+ depends_on('resourceproto@1.0:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxscrnsaver/package.py b/var/spack/repos/builtin/packages/libxscrnsaver/package.py
index 077e74e9a7..200c6f780b 100644
--- a/var/spack/repos/builtin/packages/libxscrnsaver/package.py
+++ b/var/spack/repos/builtin/packages/libxscrnsaver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxscrnsaver(AutotoolsPackage, XorgPackage):
"""XScreenSaver - X11 Screen Saver extension client library"""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXScrnSaver"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXScrnSaver"
xorg_mirror_path = "lib/libXScrnSaver-1.2.2.tar.gz"
version('1.2.2', sha256='e12ba814d44f7b58534c0d8521e2d4574f7bf2787da405de4341c3b9f4cc8d96')
@@ -17,7 +17,7 @@ class Libxscrnsaver(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxext')
- depends_on('xextproto', type='build')
+ depends_on('xextproto')
depends_on('scrnsaverproto@1.2:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxshmfence/package.py b/var/spack/repos/builtin/packages/libxshmfence/package.py
index f3cd1658b5..9445b31160 100644
--- a/var/spack/repos/builtin/packages/libxshmfence/package.py
+++ b/var/spack/repos/builtin/packages/libxshmfence/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,6 +19,6 @@ class Libxshmfence(AutotoolsPackage, XorgPackage):
version('1.3', sha256='b884300d26a14961a076fbebc762a39831cb75f92bed5ccf9836345b459220c7')
version('1.2', sha256='d21b2d1fd78c1efbe1f2c16dae1cb23f8fd231dcf891465b8debe636a9054b0c')
- depends_on('xproto', type='build')
+ depends_on('xproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxslt/package.py b/var/spack/repos/builtin/packages/libxslt/package.py
index 5da6272d83..cecd64d477 100644
--- a/var/spack/repos/builtin/packages/libxslt/package.py
+++ b/var/spack/repos/builtin/packages/libxslt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -57,3 +57,8 @@ class Libxslt(AutotoolsPackage):
if '+python' in self.spec:
with working_dir('spack-test', create=True):
python('-c', 'import libxslt')
+
+ def patch(self):
+ # Remove flags not recognized by the NVIDIA compiler
+ if self.spec.satisfies('%nvhpc'):
+ filter_file('-Wmissing-format-attribute', '', 'configure')
diff --git a/var/spack/repos/builtin/packages/libxsmm/package.py b/var/spack/repos/builtin/packages/libxsmm/package.py
index b6296648a6..d34f82e2a7 100644
--- a/var/spack/repos/builtin/packages/libxsmm/package.py
+++ b/var/spack/repos/builtin/packages/libxsmm/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
from glob import glob
+from spack import *
+
class Libxsmm(MakefilePackage):
"""Library targeting Intel Architecture
@@ -17,6 +18,8 @@ class Libxsmm(MakefilePackage):
url = 'https://github.com/hfp/libxsmm/archive/1.16.1.tar.gz'
git = 'https://github.com/hfp/libxsmm.git'
+ maintainers = ['hfp']
+
version('master', branch='master')
version('1.16.1', sha256='93dc7a3ec40401988729ddb2c6ea2294911261f7e6cd979cf061b5c3691d729d')
version('1.16', sha256='4f4f2ad97815413af80821d2e306eb6f00541941ad412662da05c02361a20e07')
@@ -82,7 +85,7 @@ class Libxsmm(MakefilePackage):
]
# JIT (AVX and later) makes MNK, M, N, or K spec. superfluous
-# make_args += ['MNK=1 4 5 6 8 9 13 16 17 22 23 24 26 32']
+ # make_args += ['MNK=1 4 5 6 8 9 13 16 17 22 23 24 26 32']
# include call trace as the build is already de-optimized
if '+debug' in spec:
diff --git a/var/spack/repos/builtin/packages/libxstream/package.py b/var/spack/repos/builtin/packages/libxstream/package.py
index af28a10736..bab3b057ec 100644
--- a/var/spack/repos/builtin/packages/libxstream/package.py
+++ b/var/spack/repos/builtin/packages/libxstream/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libxt/package.py b/var/spack/repos/builtin/packages/libxt/package.py
index 7554224e53..f4b3df1e7f 100644
--- a/var/spack/repos/builtin/packages/libxt/package.py
+++ b/var/spack/repos/builtin/packages/libxt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxt(AutotoolsPackage, XorgPackage):
"""libXt - X Toolkit Intrinsics library."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXt"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXt"
xorg_mirror_path = "lib/libXt-1.1.5.tar.gz"
version('1.1.5', sha256='b59bee38a9935565fa49dc1bfe84cb30173e2e07e1dcdf801430d4b54eb0caa3')
@@ -18,8 +18,8 @@ class Libxt(AutotoolsPackage, XorgPackage):
depends_on('libice')
depends_on('libx11')
- depends_on('xproto', type='build')
- depends_on('kbproto', type='build')
+ depends_on('xproto')
+ depends_on('kbproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxtrap/package.py b/var/spack/repos/builtin/packages/libxtrap/package.py
index d729ab5826..c5dd44779a 100644
--- a/var/spack/repos/builtin/packages/libxtrap/package.py
+++ b/var/spack/repos/builtin/packages/libxtrap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class Libxtrap(AutotoolsPackage, XorgPackage):
As X11R6 was released in 1994, XTrap has now been deprecated for over
15 years, and uses of it should be quite rare."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXTrap"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXTrap"
xorg_mirror_path = "lib/libXTrap-1.0.1.tar.gz"
version('1.0.1', sha256='db748e299dcc9af68428795b898a4a96cf806f79b75786781136503e4fce5e17')
@@ -27,7 +27,7 @@ class Libxtrap(AutotoolsPackage, XorgPackage):
depends_on('libxt')
depends_on('libxext')
- depends_on('trapproto', type='build')
- depends_on('xextproto', type='build')
+ depends_on('trapproto')
+ depends_on('xextproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxtst/package.py b/var/spack/repos/builtin/packages/libxtst/package.py
index 447c111b54..7146212e5b 100644
--- a/var/spack/repos/builtin/packages/libxtst/package.py
+++ b/var/spack/repos/builtin/packages/libxtst/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class Libxtst(AutotoolsPackage, XorgPackage):
The RECORD extension supports the recording and reporting of all
core X protocol and arbitrary X extension protocol."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXtst"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXtst"
xorg_mirror_path = "lib/libXtst-1.2.2.tar.gz"
version('1.2.2', sha256='221838960c7b9058cd6795c1c3ee8e25bae1c68106be314bc3036a4f26be0e6c')
@@ -27,9 +27,9 @@ class Libxtst(AutotoolsPackage, XorgPackage):
depends_on('libxext@1.0.99.4:')
depends_on('libxi')
- depends_on('recordproto@1.13.99.1:', type='build')
- depends_on('xextproto@7.0.99.3:', type='build')
- depends_on('inputproto', type='build')
- depends_on('fixesproto', type='build')
+ depends_on('recordproto@1.13.99.1:')
+ depends_on('xextproto@7.0.99.3:')
+ depends_on('inputproto')
+ depends_on('fixesproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxv/package.py b/var/spack/repos/builtin/packages/libxv/package.py
index fc948f63f1..c71e7fc645 100644
--- a/var/spack/repos/builtin/packages/libxv/package.py
+++ b/var/spack/repos/builtin/packages/libxv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Libxv(AutotoolsPackage, XorgPackage):
"""libXv - library for the X Video (Xv) extension to the
X Window System."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXv"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXv"
xorg_mirror_path = "lib/libXv-1.0.10.tar.gz"
version('1.0.10', sha256='89a664928b625558268de81c633e300948b3752b0593453d7815f8775bab5293')
@@ -18,7 +18,7 @@ class Libxv(AutotoolsPackage, XorgPackage):
depends_on('libx11@1.6:')
depends_on('libxext')
- depends_on('xextproto', type='build')
+ depends_on('xextproto')
depends_on('videoproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxvmc/package.py b/var/spack/repos/builtin/packages/libxvmc/package.py
index 51be35577e..bc43c0d55e 100644
--- a/var/spack/repos/builtin/packages/libxvmc/package.py
+++ b/var/spack/repos/builtin/packages/libxvmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class Libxvmc(AutotoolsPackage, XorgPackage):
depends_on('libxext')
depends_on('libxv')
- depends_on('xextproto', type='build')
- depends_on('videoproto', type='build')
+ depends_on('xextproto')
+ depends_on('videoproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxxf86dga/package.py b/var/spack/repos/builtin/packages/libxxf86dga/package.py
index 74c1ec3c5c..06d91bcdc0 100644
--- a/var/spack/repos/builtin/packages/libxxf86dga/package.py
+++ b/var/spack/repos/builtin/packages/libxxf86dga/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxxf86dga(AutotoolsPackage, XorgPackage):
"""libXxf86dga - Client library for the XFree86-DGA extension."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86dga"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXxf86dga"
xorg_mirror_path = "lib/libXxf86dga-1.1.4.tar.gz"
version('1.1.4', sha256='e6361620a15ceba666901ca8423e8be0c6ed0271a7088742009160349173766b')
@@ -17,8 +17,8 @@ class Libxxf86dga(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxext')
- depends_on('xproto', type='build')
- depends_on('xextproto', type='build')
- depends_on('xf86dgaproto@2.0.99.2:', type='build')
+ depends_on('xproto')
+ depends_on('xextproto')
+ depends_on('xf86dgaproto@2.0.99.2:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxxf86misc/package.py b/var/spack/repos/builtin/packages/libxxf86misc/package.py
index 59f263e497..eb30de2da5 100644
--- a/var/spack/repos/builtin/packages/libxxf86misc/package.py
+++ b/var/spack/repos/builtin/packages/libxxf86misc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxxf86misc(AutotoolsPackage, XorgPackage):
"""libXxf86misc - Extension library for the XFree86-Misc X extension."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86misc"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXxf86misc"
xorg_mirror_path = "lib/libXxf86misc-1.0.3.tar.gz"
version('1.0.3', sha256='358f692f793af00f6ef4c7a8566c1bcaeeea37e417337db3f519522cc1df3946')
@@ -17,8 +17,8 @@ class Libxxf86misc(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxext')
- depends_on('xproto', type='build')
- depends_on('xextproto', type='build')
- depends_on('xf86miscproto', type='build')
+ depends_on('xproto')
+ depends_on('xextproto')
+ depends_on('xf86miscproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/libxxf86vm/package.py b/var/spack/repos/builtin/packages/libxxf86vm/package.py
index 338fb7b0b3..4d6b7bfc5a 100644
--- a/var/spack/repos/builtin/packages/libxxf86vm/package.py
+++ b/var/spack/repos/builtin/packages/libxxf86vm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Libxxf86vm(AutotoolsPackage, XorgPackage):
"""libXxf86vm - Extension library for the XFree86-VidMode X extension."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libXxf86vm"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libXxf86vm"
xorg_mirror_path = "lib/libXxf86vm-1.1.4.tar.gz"
version('1.1.4', sha256='5108553c378a25688dcb57dca383664c36e293d60b1505815f67980ba9318a99')
@@ -17,8 +17,13 @@ class Libxxf86vm(AutotoolsPackage, XorgPackage):
depends_on('libx11@1.6:')
depends_on('libxext')
- depends_on('xproto', type='build')
- depends_on('xextproto', type='build')
- depends_on('xf86vidmodeproto@2.2.99.1:', type='build')
+ depends_on('xproto')
+ depends_on('xextproto')
+ depends_on('xf86vidmodeproto@2.2.99.1:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
+
+ @property
+ def libs(self):
+ return find_libraries(
+ 'libXxf86vm', self.prefix, shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/libyaml/package.py b/var/spack/repos/builtin/packages/libyaml/package.py
index 26686dbd52..e7f95a2fe5 100644
--- a/var/spack/repos/builtin/packages/libyaml/package.py
+++ b/var/spack/repos/builtin/packages/libyaml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Libyaml(AutotoolsPackage):
git = "https://github.com/yaml/libyaml.git"
version('master', branch='master')
+ version('0.2.5', sha256='c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4')
version('0.2.4', sha256='d80aeda8747b7c26fbbfd87ab687786e58394a8435ae3970e79cb97882e30557')
version('0.2.3', sha256='08bbb80284d77092e68a6f69f1e480e8ed93e215c47b2ca29290e3bd5a191108')
version('0.2.2', sha256='4a9100ab61047fd9bd395bcef3ce5403365cafd55c1e0d0299cde14958e47be9')
diff --git a/var/spack/repos/builtin/packages/libyogrt/package.py b/var/spack/repos/builtin/packages/libyogrt/package.py
index c3612026db..b9deccd7a7 100644
--- a/var/spack/repos/builtin/packages/libyogrt/package.py
+++ b/var/spack/repos/builtin/packages/libyogrt/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -33,12 +35,15 @@ class Libyogrt(AutotoolsPackage):
variant('scheduler', default='system',
description="Select scheduler integration",
- values=['system', 'slurm'], multi=False)
+ values=['system', 'slurm', 'lsf'], multi=False)
+ depends_on('slurm', when='scheduler=slurm')
+ depends_on('lsf', when='scheduler=lsf')
+
+ conflicts('scheduler=lsf', when='@:1.22')
+
variant('static', default='False',
description="build static library")
- depends_on('slurm', when='scheduler=slurm')
-
def url_for_version(self, version):
if version < Version(1.21):
return "https://github.com/LLNL/libyogrt/archive/%s.tar.gz" % version
@@ -49,10 +54,37 @@ class Libyogrt(AutotoolsPackage):
args = []
sched = self.spec.variants['scheduler'].value
- if sched != "system":
+ if sched == "lsf":
+ # The LSF library depends on a couple of other libraries,
+ # and running the build inside of spack does not find
+ # them, and the user has to add them when they want
+ # to use -lyogrt. If we explicitly tell it what libraries
+ # to use, the user does not need to specify them
+ args.append('--with-lsf')
+ args.append('LIBS=-llsf -lrt -lnsl')
+ elif sched != "system":
args.append('--with-%s=%s' % (sched, self.spec[sched].prefix))
if '+static' in self.spec:
args.append('--enable-static=yes')
return args
+
+ @run_after('install')
+ def create_yogrt_conf(self):
+ etcpath = os.path.join(prefix, "etc")
+
+ # create subdirectory to hold yogrt.conf file
+ if not os.path.isdir(etcpath):
+ mode = 0o755
+ os.mkdir(etcpath, mode)
+
+ # if no scheduler is specified, create yogrt conf file
+ # with backend=none
+ sched = self.spec.variants['scheduler'].value
+ if sched == "system":
+ sched = "none"
+
+ # create conf file to inform libyogrt about job scheduler
+ with open(os.path.join(etcpath, "yogrt.conf"), "w+") as f:
+ f.write("backend=%s\n" % sched)
diff --git a/var/spack/repos/builtin/packages/libzip/package.py b/var/spack/repos/builtin/packages/libzip/package.py
index b218d18e59..b842acd82a 100644
--- a/var/spack/repos/builtin/packages/libzip/package.py
+++ b/var/spack/repos/builtin/packages/libzip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/libzmq/package.py b/var/spack/repos/builtin/packages/libzmq/package.py
index 6dce35c18a..ca17fad155 100644
--- a/var/spack/repos/builtin/packages/libzmq/package.py
+++ b/var/spack/repos/builtin/packages/libzmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,11 +9,12 @@ from spack import *
class Libzmq(AutotoolsPackage):
"""The ZMQ networking/concurrency library and core API"""
- homepage = "http://zguide.zeromq.org/"
+ homepage = "https://zguide.zeromq.org/"
url = "https://github.com/zeromq/libzmq/releases/download/v4.3.2/zeromq-4.3.2.tar.gz"
git = "https://github.com/zeromq/libzmq.git"
- version('develop', branch='master')
+ version('master', branch='master')
+ version('4.3.3', sha256='9d9285db37ae942ed0780c016da87060497877af45094ff9e1a1ca736e3875a2')
version('4.3.2', sha256='ebd7b5c830d6428956b67a0454a7f8cbed1de74b3b01e5c33c5378e22740f763')
version('4.3.1', sha256='bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb')
version('4.3.0', sha256='8e9c3af6dc5a8540b356697081303be392ade3f014615028b3c896d0148397fd')
@@ -29,6 +30,9 @@ class Libzmq(AutotoolsPackage):
variant("libsodium", default=True,
description="Build with message encryption support via libsodium")
+ variant("drafts", default=False,
+ description="Build and install draft classes and methods")
+
depends_on("libsodium", when='+libsodium')
depends_on("libsodium@:1.0.3", when='+libsodium@:4.1.2')
@@ -37,8 +41,14 @@ class Libzmq(AutotoolsPackage):
depends_on('libtool', type='build', when='@develop')
depends_on('pkgconfig', type='build')
+ depends_on('libbsd', type='link', when='@4.3.3: platform=linux')
+ depends_on('libbsd', type='link', when='@4.3.3: platform=cray')
+
conflicts('%gcc@8:', when='@:4.2.2')
+ # Fix aggressive compiler warning false positive
+ patch('https://github.com/zeromq/libzmq/commit/92b2c38a2c51a1942a380c7ee08147f7b1ca6845.patch', sha256='8ebde83ee148989f9118d36ebaf256532627b8a6e7a486842110623331972edb', when='@4.2.3:4.3.4 %gcc@11:')
+
def url_for_version(self, version):
if version <= Version('4.1.4'):
url = "http://download.zeromq.org/zeromq-{0}.tar.gz"
@@ -53,6 +63,9 @@ class Libzmq(AutotoolsPackage):
def configure_args(self):
config_args = []
+
+ config_args.extend(self.enable_or_disable("drafts"))
+
if '+libsodium' in self.spec:
config_args.append('--with-libsodium')
if 'clang' in self.compiler.cc:
diff --git a/var/spack/repos/builtin/packages/liggghts/package.py b/var/spack/repos/builtin/packages/liggghts/package.py
index 54fab4a056..ec3c31ff62 100644
--- a/var/spack/repos/builtin/packages/liggghts/package.py
+++ b/var/spack/repos/builtin/packages/liggghts/package.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob import glob
-
import os
+from glob import glob
from spack import *
@@ -27,7 +26,7 @@ class Liggghts(MakefilePackage):
variant('profile', default=False,
description='Generate profiling code')
- depends_on('vtk')
+ depends_on('vtk@6.1.0:8.2.0')
depends_on('mpi', when='+mpi')
depends_on('jpeg', when='+jpeg')
depends_on('zlib', when="+gzip")
diff --git a/var/spack/repos/builtin/packages/lighttpd/package.py b/var/spack/repos/builtin/packages/lighttpd/package.py
index 3231a80f86..efbd1c9aa3 100644
--- a/var/spack/repos/builtin/packages/lighttpd/package.py
+++ b/var/spack/repos/builtin/packages/lighttpd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ligra/package.py b/var/spack/repos/builtin/packages/ligra/package.py
index 8df4bbabae..72804c970c 100644
--- a/var/spack/repos/builtin/packages/ligra/package.py
+++ b/var/spack/repos/builtin/packages/ligra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Ligra(MakefilePackage):
"""A Lightweight Graph Processing Framework for Shared Memory"""
- homepage = "http://jshun.github.io/ligra/"
+ homepage = "https://jshun.github.io/ligra/"
url = "https://github.com/jshun/ligra/archive/v.1.5.tar.gz"
version('1.5', sha256='74113a5a3c19a0e319a5b9ebefc8a67c5d18d4d2a9670363092a966f4163f6b7')
diff --git a/var/spack/repos/builtin/packages/likwid/package.py b/var/spack/repos/builtin/packages/likwid/package.py
index 625dce7a5d..95117f67b1 100644
--- a/var/spack/repos/builtin/packages/likwid/package.py
+++ b/var/spack/repos/builtin/packages/likwid/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+from spack import *
+
class Likwid(Package):
"""Likwid is a simple to install and use toolsuite of command line
@@ -16,11 +17,14 @@ class Likwid(Package):
See https://github.com/RRZE-HPC/likwid/wiki/TutorialLikwidPerf#feature-limitations
for information."""
- homepage = "https://github.com/RRZE-HPC/likwid"
+ homepage = "https://hpc.fau.de/research/tools/likwid/"
url = "https://github.com/RRZE-HPC/likwid/archive/v5.0.0.tar.gz"
git = "https://github.com/RRZE-HPC/likwid.git"
maintainers = ['TomTheBear']
+ version('5.2.0', sha256='aa6dccacfca59e52d8f3be187ffcf292b2a2fa1f51a81bf8912b9d48e5a257e0')
+ version('5.1.1', sha256='faec7c62987967232f476a6ff0ee85af686fd24b5a360126896b7f435d1f943f')
+ version('5.1.0', sha256='5a180702a1656c6315b861a85031ab4cb090424aec42cbbb326b849e29f55571')
version('5.0.2', sha256='0a1c8984e4b43ea8b99d09456ef05035eb934594af1669432117585c638a2da4')
version('5.0.1', sha256='3757b0cb66e8af0116f9288c7f90543acbd8e2af8f72f77aef447ca2b3e76453')
version('5.0.0', sha256='26623f5a1a5fec19d798f0114774a5293d1c93a148538b9591a13e50930fa41e')
@@ -30,18 +34,31 @@ class Likwid(Package):
version('4.3.1', sha256='4b40a96717da54514274d166f9b71928545468091c939c1d74109733279eaeb1')
version('4.3.0', sha256='86fc5f82c80fcff1a643394627839ec79f1ca2bcfad30000eb7018da592588b4')
- patch('https://github.com/RRZE-HPC/likwid/commit/e0332ace8fe8ca7dcd4b4477a25e37944f173a5c.patch', sha256='c3b8f939a46b425665577ce764d4fba080a23cab5999c53db71655fd54d7e0b1', when='@5.0.1')
- patch('https://github.com/RRZE-HPC/likwid/commit/d2d0ef333b5e0997d7c80fc6ac1a473b5e47d084.patch', sha256='636cbf40669261fdb36379d67253be2b731cfa7b6d610d232767d72fbdf08bc0', when='@4.3.4')
- patch('https://github.com/RRZE-HPC/likwid/files/5341379/likwid-lua5.1.patch.txt', sha256='bc56253c1e3436b5ba7bf4c5533d0391206900c8663c008f771a16376975e416', when='@5.0.2^lua@5.1')
+ patch('https://github.com/RRZE-HPC/likwid/commit/e0332ace8fe8ca7dcd4b4477a25e37944f173a5c.patch',
+ when='@5.0.1',
+ sha256='c3b8f939a46b425665577ce764d4fba080a23cab5999c53db71655fd54d7e0b1')
+ patch('https://github.com/RRZE-HPC/likwid/commit/d2d0ef333b5e0997d7c80fc6ac1a473b5e47d084.patch',
+ when='@4.3.4',
+ sha256='636cbf40669261fdb36379d67253be2b731cfa7b6d610d232767d72fbdf08bc0')
+ patch('https://github.com/RRZE-HPC/likwid/files/5341379/likwid-lua5.1.patch.txt',
+ when='@5.0.2^lua@5.1',
+ sha256='bc56253c1e3436b5ba7bf4c5533d0391206900c8663c008f771a16376975e416')
+ patch('https://github.com/RRZE-HPC/likwid/releases/download/v5.1.0/likwid-mpirun-5.1.0.patch',
+ when='@5.1.0',
+ sha256='62da145da0a09de21020f9726290e1daf7437691bab8a92d7254bc192d5f3061')
variant('fortran', default=True, description='with fortran interface')
+ variant('cuda', default=False, description='with Nvidia GPU profiling support')
# NOTE: There is no way to use an externally provided hwloc with Likwid.
# The reason is that the internal hwloc is patched to contain extra
# functionality and functions are prefixed with "likwid_".
+ # Note: extra functionality was included in upstream hwloc
depends_on('lua', when='@:4')
depends_on('lua@5.2:', when='@5:5.0.1')
depends_on('lua', when='@5.0.2:')
+ depends_on('cuda', when='@5: +cuda')
+ depends_on('hwloc', when='@5.2.0:')
# TODO: check
# depends_on('gnuplot', type='run')
@@ -55,6 +72,13 @@ class Likwid(Package):
filter_file('^#!/usr/bin/perl -w', '#!/usr/bin/env perl', *files)
filter_file('^#!/usr/bin/perl', '#!/usr/bin/env perl', *files)
+ def setup_run_environment(self, env):
+ if "+cuda" in self.spec:
+ libs = find_libraries('libcupti', root=self.spec['cuda'].prefix,
+ shared=True, recursive=True)
+ for lib in libs.directories:
+ env.append_path('LD_LIBRARY_PATH', lib)
+
@run_before('install')
def filter_sbang(self):
# Filter sbang before install so Spack's sbang hook can fix it up
@@ -106,15 +130,35 @@ class Likwid(Package):
'FORTRAN_INTERFACE = true',
'config.mk')
if self.compiler.name == 'gcc':
- filter_file('ifort', 'gfortran',
- join_path('make', 'include_GCC.mk'))
- filter_file('-module', '-I', join_path('make',
- 'include_GCC.mk'))
+ makepath = join_path('make', 'include_GCC.mk')
+ filter_file('ifort', 'gfortran', makepath)
+ filter_file('-module', '-I', makepath)
else:
filter_file('^FORTRAN_INTERFACE .*',
'FORTRAN_INTERFACE = false',
'config.mk')
+ if "+cuda" in self.spec:
+ filter_file('^NVIDIA_INTERFACE.*',
+ 'NVIDIA_INTERFACE = true',
+ 'config.mk')
+ filter_file('^BUILDAPPDAEMON.*',
+ 'BUILDAPPDAEMON = true',
+ 'config.mk')
+ cudainc = spec['cuda'].prefix.include
+ filter_file('^CUDAINCLUDE.*',
+ 'CUDAINCLUDE = {0}'.format(cudainc),
+ 'config.mk')
+ cuptihead = HeaderList(find(spec['cuda'].prefix, 'cupti.h',
+ recursive=True))
+ filter_file('^CUPTIINCLUDE.*',
+ 'CUPTIINCLUDE = {0}'.format(cuptihead.directories[0]),
+ 'config.mk')
+ else:
+ filter_file('^NVIDIA_INTERFACE.*',
+ 'NVIDIA_INTERFACE = false',
+ 'config.mk')
+
if spec.satisfies('^lua'):
filter_file('^#LUA_INCLUDE_DIR.*',
'LUA_INCLUDE_DIR = {0}'.format(
@@ -132,6 +176,19 @@ class Likwid(Package):
spec['lua'].prefix.bin),
'config.mk')
+ if spec.satisfies('^hwloc'):
+ filter_file('^#HWLOC_INCLUDE_DIR.*',
+ 'HWLOC_INCLUDE_DIR = {0}'.format(
+ spec['hwloc'].prefix.include),
+ 'config.mk')
+ filter_file('^#HWLOC_LIB_DIR.*',
+ 'HWLOC_LIB_DIR = {0}'.format(
+ spec['hwloc'].prefix.lib),
+ 'config.mk')
+ filter_file('^#HWLOC_LIB_NAME.*',
+ 'HWLOC_LIB_NAME = hwloc',
+ 'config.mk')
+
# https://github.com/RRZE-HPC/likwid/issues/287
if self.spec.satisfies('@:5.0.2 %gcc@10:'):
filter_file(r'^(CFLAGS.*)',
diff --git a/var/spack/repos/builtin/packages/linkphase3/package.py b/var/spack/repos/builtin/packages/linkphase3/package.py
index 417518bc18..3a62d468bf 100644
--- a/var/spack/repos/builtin/packages/linkphase3/package.py
+++ b/var/spack/repos/builtin/packages/linkphase3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/linktest/package.py b/var/spack/repos/builtin/packages/linktest/package.py
new file mode 100644
index 0000000000..1efef1d766
--- /dev/null
+++ b/var/spack/repos/builtin/packages/linktest/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2021 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 Linktest(MakefilePackage):
+ """Performance tool to generate communication matrix using
+ parallel ping-pong benchmark"""
+
+ homepage = "https://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/LinkTest/_node.html"
+ url = "https://apps.fz-juelich.de/jsc/linktest/download.php?version=1.2p1"
+
+ maintainers = ['pramodk']
+
+ version('1.2p1', sha256='981b96da1d5bf214507b8e219a36e8d0183d8bd5c10539b26f660b2c83e5269d', extension='tar.gz')
+
+ depends_on('mpi')
+ depends_on('sionlib')
+
+ def edit(self, spec, prefix):
+ with working_dir('src'):
+ makefile = FileFilter('Makefile')
+ makefile.filter('= gcc', '= cc')
+ makefile.filter('mpicc', spec['mpi'].mpicc)
+ makefile.filter('#SIONLIB_INST=.*',
+ 'SIONLIB_INST=%s' % spec['sionlib'].prefix)
+
+ def build(self, spec, prefix):
+ with working_dir('src'):
+ make()
+
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ install('src/mpilinktest', prefix.bin)
+ install('src/pingponganalysis', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/linsys-v/package.py b/var/spack/repos/builtin/packages/linsys-v/package.py
index 545a2a8bec..7dac25e893 100644
--- a/var/spack/repos/builtin/packages/linsys-v/package.py
+++ b/var/spack/repos/builtin/packages/linsys-v/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/linux-headers/package.py b/var/spack/repos/builtin/packages/linux-headers/package.py
index 8e33f63471..770a48e18f 100644
--- a/var/spack/repos/builtin/packages/linux-headers/package.py
+++ b/var/spack/repos/builtin/packages/linux-headers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/linux-pam/package.py b/var/spack/repos/builtin/packages/linux-pam/package.py
index 0dff1e0654..45887e65e5 100644
--- a/var/spack/repos/builtin/packages/linux-pam/package.py
+++ b/var/spack/repos/builtin/packages/linux-pam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lis/package.py b/var/spack/repos/builtin/packages/lis/package.py
new file mode 100644
index 0000000000..c339abf1f0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lis/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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 Lis(AutotoolsPackage):
+ """Lis (Library of Iterative Solvers for linear systems,
+ pronounced [lis]) is a parallel software library for
+ solving discretized linear equations and eigenvalue
+ problems that arise in the numerical solution of partial
+ differential equations using iterative methods."""
+
+ homepage = "https://www.ssisc.org/lis/index.en.html"
+ url = "https://www.ssisc.org/lis/dl/lis-2.0.27.zip"
+
+ version('2.0.27', sha256='85f32f4abbc94d1b40b22c10b915170271b19822b6aa6939b1cb295f6e455237')
+
+ variant('mpi', default=False, description='Build with MPI library')
+ variant('omp', default=False, description='Build with openMP library')
+ variant('f90', default=False, description='enable FORTRAN 90 compatible interfaces')
+
+ depends_on('mpi', when='+mpi')
+
+ def configure_args(self):
+ config_args = []
+ config_args.extend(self.enable_or_disable('mpi'))
+ config_args.extend(self.enable_or_disable('omp'))
+ config_args.extend(self.enable_or_disable('f90'))
+
+ if self.spec.satisfies('%fj'):
+ config_args.append('CLIBS=-lm')
+ config_args.append('FCLDFLAGS=-mlcmain=main')
+
+ return config_args
diff --git a/var/spack/repos/builtin/packages/listres/package.py b/var/spack/repos/builtin/packages/listres/package.py
index 98b2ab4f1b..40e39ae950 100644
--- a/var/spack/repos/builtin/packages/listres/package.py
+++ b/var/spack/repos/builtin/packages/listres/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Listres(AutotoolsPackage, XorgPackage):
"""The listres program generates a list of X resources for a widget
in an X client written using a toolkit based on libXt."""
- homepage = "http://cgit.freedesktop.org/xorg/app/listres"
+ homepage = "https://cgit.freedesktop.org/xorg/app/listres"
xorg_mirror_path = "app/listres-1.0.3.tar.gz"
version('1.0.3', sha256='87d5698b8aa4d841e45e6556932c9914210cbd8b10003d664b31185b087981be')
@@ -19,6 +19,6 @@ class Listres(AutotoolsPackage, XorgPackage):
depends_on('libxt')
depends_on('libxmu')
- depends_on('xproto', type='build')
+ depends_on('xproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/lizard/package.py b/var/spack/repos/builtin/packages/lizard/package.py
index d0b165e750..35052f8d61 100644
--- a/var/spack/repos/builtin/packages/lizard/package.py
+++ b/var/spack/repos/builtin/packages/lizard/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lksctp-tools/package.py b/var/spack/repos/builtin/packages/lksctp-tools/package.py
index ca168aa320..e32b9395fa 100644
--- a/var/spack/repos/builtin/packages/lksctp-tools/package.py
+++ b/var/spack/repos/builtin/packages/lksctp-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/llvm-amdgpu/fix-ncurses-3.9.0.patch b/var/spack/repos/builtin/packages/llvm-amdgpu/fix-ncurses-3.9.0.patch
new file mode 100644
index 0000000000..24be1ecf31
--- /dev/null
+++ b/var/spack/repos/builtin/packages/llvm-amdgpu/fix-ncurses-3.9.0.patch
@@ -0,0 +1,25 @@
+Adapt the fix-system-zlib-ncurses.patch for version 3.9.0.
+
+--- llvm-project-rocm-3.9.0/llvm/cmake/config-ix.cmake.orig 2020-11-20 21:41:10.498772540 -0600
++++ llvm-project-rocm-3.9.0/llvm/cmake/config-ix.cmake 2020-11-20 22:27:57.242391054 -0600
+@@ -126,15 +126,11 @@
+ endif()
+ if(LLVM_ENABLE_TERMINFO)
+ set(HAVE_TERMINFO 0)
+- foreach(library terminfo tinfo curses ncurses ncursesw)
+- string(TOUPPER ${library} library_suffix)
+- check_library_exists(${library} setupterm "" HAVE_TERMINFO_${library_suffix})
+- if(HAVE_TERMINFO_${library_suffix})
+- set(HAVE_TERMINFO 1)
+- set(TERMINFO_LIBS "${library}")
+- break()
+- endif()
+- endforeach()
++ find_library(FIND_TERMINFO NAMES terminfo tinfo curses ncurses ncursesw)
++ if(FIND_TERMINFO)
++ set(HAVE_TERMINFO 1)
++ set(TERMINFO_LIBS "${FIND_TERMINFO}")
++ endif()
+ else()
+ set(HAVE_TERMINFO 0)
+ endif()
diff --git a/var/spack/repos/builtin/packages/llvm-amdgpu/fix-spack-detection-4.2.0.patch b/var/spack/repos/builtin/packages/llvm-amdgpu/fix-spack-detection-4.2.0.patch
new file mode 100644
index 0000000000..2cedd4f073
--- /dev/null
+++ b/var/spack/repos/builtin/packages/llvm-amdgpu/fix-spack-detection-4.2.0.patch
@@ -0,0 +1,94 @@
+diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
+--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
++++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
+@@ -58,19 +58,16 @@
+ llvm::sys::path::append(PackagePath, SubDirs[0]);
+ return PackagePath;
+ }
+- if (SubDirs.size() == 0) {
+- unsigned DiagID = D.getDiags().getCustomDiagID(
+- DiagnosticsEngine::Error,
+- "Expecting SPACK package %0 at %1 but not found");
+- D.Diag(DiagID) << Prefix << Cand.Path;
++ if (SubDirs.size() == 0 && Verbose) {
++ llvm::errs() << "SPACK package " << Prefix << " not found at " << Cand.Path
++ << '\n';
+ return {};
+ }
+
+- assert(SubDirs.size() > 1);
+- unsigned DiagID = D.getDiags().getCustomDiagID(
+- DiagnosticsEngine::Error,
+- "Expecting one SPACK package %0 at %1 but found more");
+- D.Diag(DiagID) << Prefix << Cand.Path;
++ if (SubDirs.size() > 1 && Verbose) {
++ llvm::errs() << "Cannot use SPACK package " << Prefix << " at " << Cand.Path
++ << " due to multiple installations for the same version\n";
++ }
+ return {};
+ }
+
+@@ -305,6 +302,7 @@
+ const Driver &D, const llvm::Triple &HostTriple,
+ const llvm::opt::ArgList &Args, bool DetectHIPRuntime, bool DetectDeviceLib)
+ : D(D) {
++ Verbose = Args.hasArg(options::OPT_v);
+ RocmPathArg = Args.getLastArgValue(clang::driver::options::OPT_rocm_path_EQ);
+ PrintROCmSearchDirs =
+ Args.hasArg(clang::driver::options::OPT_print_rocm_search_dirs);
+diff --git a/clang/lib/Driver/ToolChains/ROCm.h b/clang/lib/Driver/ToolChains/ROCm.h
+--- a/clang/lib/Driver/ToolChains/ROCm.h
++++ b/clang/lib/Driver/ToolChains/ROCm.h
+@@ -110,6 +110,7 @@
+ // Cache ROCm installation search paths.
+ SmallVector<Candidate, 4> ROCmSearchDirs;
+ bool PrintROCmSearchDirs;
++ bool Verbose;
+
+ bool allGenericLibsValid() const {
+ return !OCML.empty() && !OCKL.empty() && !OpenCL.empty() && !HIP.empty() &&
+diff --git a/clang/test/Driver/rocm-detect.hip b/clang/test/Driver/rocm-detect.hip
+--- a/clang/test/Driver/rocm-detect.hip
++++ b/clang/test/Driver/rocm-detect.hip
+@@ -61,12 +61,15 @@
+ // RUN: %s 2>&1 | FileCheck -check-prefixes=SPACK-SET %s
+
+ // Test invalid SPACK ROCm installation missing hip and rocm-device-libs packages.
++// The message about SPACK is emitted only if -v is specified.
+
+ // RUN: rm -rf %T/rocm-spack/hip-*
+ // RUN: rm -rf %T/rocm-spack/rocm-device-libs-*
+ // RUN: %T/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/bin/clang -### -v \
+ // RUN: -target x86_64-linux-gnu --cuda-gpu-arch=gfx900 %s 2>&1 \
+ // RUN: | FileCheck -check-prefixes=SPACK-MISS %s
++// RUN: %T/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/bin/clang --version 2>&1 \
++// RUN: | FileCheck -check-prefixes=SPACK-MISS-SILENT %s
+
+ // GFX902-DEFAULTLIBS: error: cannot find ROCm device library for gfx902. Provide its path via --rocm-path or --rocm-device-lib-path, or pass -nogpulib to build without ROCm device library
+
+@@ -90,8 +93,8 @@
+ // SPACK-SAME: "-internal-isystem" "[[DIR]]/hip-4.0.0-5f63slrursbrvfe2txrrjkynbsywsob5/include"
+
+ // SPACK-MULT: InstalledDir: [[DIR:.*]]/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/bin
+-// SPACK-MULT-DAG: Expecting one SPACK package hip-4.0.0 at [[DIR]] but found more
+-// SPACK-MULT-DAG: Expecting one SPACK package rocm-device-libs-4.0.0 at [[DIR]] but found more
++// SPACK-MULT-DAG: Cannot use SPACK package hip-4.0.0 at [[DIR]] due to multiple installations for the same version
++// SPACK-MULT-DAG: Cannot use SPACK package rocm-device-libs-4.0.0 at [[DIR]] due to multiple installations for the same version
+ // SPACK-MULT-NOT: Found HIP installation: [[DIR]]/hip-4.0.0-5f63slrursbrvfe2txrrjkynbsywsob5, version 4.0.20214-a2917cd
+ // SPACK-MULT-NOT: "-mlink-builtin-bitcode" "[[DIR]]/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/hip.bc"
+ // SPACK-MULT-NOT: "-internal-isystem" "[[DIR]]/hip-4.0.0-5f63slrursbrvfe2txrrjkynbsywsob5/include"
+@@ -103,8 +106,12 @@
+ // SPACK-SET-SAME: "-internal-isystem" "[[DIR]]/hip-4.0.0-abcd/include"
+
+ // SPACK-MISS: InstalledDir: [[DIR:.*]]/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/bin
+-// SPACK-MISS-DAG: Expecting SPACK package hip-4.0.0 at [[DIR]] but not found
+-// SPACK-MISS-DAG: Expecting SPACK package rocm-device-libs-4.0.0 at [[DIR]] but not found
++// SPACK-MISS-DAG: SPACK package hip-4.0.0 not found at [[DIR]]
++// SPACK-MISS-DAG: SPACK package rocm-device-libs-4.0.0 not found at [[DIR]]
+ // SPACK-MISS-NOT: Found HIP installation: [[DIR]]/hip-4.0.0-5f63slrursbrvfe2txrrjkynbsywsob5, version 4.0.20214-a2917cd
+ // SPACK-MISS-NOT: "-mlink-builtin-bitcode" "[[DIR]]/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/hip.bc"
+ // SPACK-MISS-NOT: "-internal-isystem" "[[DIR]]/hip-4.0.0-5f63slrursbrvfe2txrrjkynbsywsob5/include"
++
++// SPACK-MISS-SILENT-NOT: SPACK package hip-{{.*}} not found at
++// SPACK-MISS-SILENT-NOT: SPACK package rocm-device-libs-{{.*}} not found at
++// SPACK-MISS-SILENT-NOT: Found HIP installation
diff --git a/var/spack/repos/builtin/packages/llvm-amdgpu/package.py b/var/spack/repos/builtin/packages/llvm-amdgpu/package.py
index 8e616dffb4..72c9d92cef 100644
--- a/var/spack/repos/builtin/packages/llvm-amdgpu/package.py
+++ b/var/spack/repos/builtin/packages/llvm-amdgpu/package.py
@@ -1,9 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -12,38 +14,129 @@ class LlvmAmdgpu(CMakePackage):
optimizers, and run-time environments."""
homepage = "https://github.com/RadeonOpenCompute/llvm-project"
- url = "https://github.com/RadeonOpenCompute/llvm-project/archive/rocm-3.9.0.tar.gz"
+ git = "https://github.com/RadeonOpenCompute/llvm-project.git"
+ url = "https://github.com/RadeonOpenCompute/llvm-project/archive/rocm-4.3.0.tar.gz"
- maintainers = ['srekolam', 'arjun-raj-kuppala']
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+ version('master', branch='amd-stg-open')
+ version('4.3.1', sha256='b53c6b13be7d77dc93a7c62e4adbb414701e4e601e1af2d1e98da4ee07c9837f')
+ version('4.3.0', sha256='1567d349cd3bcd2c217b3ecec2f70abccd5e9248bd2c3c9f21d4cdb44897fc87')
+ version('4.2.0', sha256='751eca1d18595b565cfafa01c3cb43efb9107874865a60c80d6760ba83edb661')
+ version('4.1.0', sha256='244e38d824fa7dfa8d0edf3c036b3c84e9c17a16791828e4b745a8d31eb374ae')
+ version('4.0.0', sha256='aa1f80f429fded465e86bcfaef72255da1af1c5c52d58a4c979bc2f6c2da5a69')
+ version('3.10.0', sha256='8262aff88c1ff6c4deb4da5a4f8cda1bf90668950e2b911f93f73edaee53b370')
version('3.9.0', sha256='1ff14b56d10c2c44d36c3c412b190d3d8cd1bb12cfc7cd58af004c16fd9987d1')
version('3.8.0', sha256='93a28464a4d0c1c9f4ba55e473e5d1cde4c5c0e6d087ec8a0a3aef1f5f5208e8')
version('3.7.0', sha256='3e2542ce54b91b5c841f33d542143e0e43eae95e8785731405af29f08ace725b')
version('3.5.0', sha256='4878fa85473b24d88edcc89938441edc85d2e8a785e567b7bd7ce274ecc2fd9c')
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
+ variant('rocm-device-libs', default=True, description='Build ROCm device libs as external LLVM project instead of a standalone spack package.')
+ variant('openmp', default=True, description='Enable OpenMP')
- depends_on('cmake@3:', type='build')
+ depends_on('cmake@3.4.3:', type='build', when='@:3.8.99')
+ depends_on('cmake@3.13.4:', type='build', when='@3.9.0:')
depends_on('python', type='build')
depends_on('z3', type='link')
depends_on('zlib', type='link')
depends_on('ncurses+termlib', type='link')
+ # openmp dependencies
+ depends_on("perl-data-dumper", type=("build"), when='+openmp')
+ depends_on("hwloc", when='+openmp')
+ depends_on('libelf', type='link', when='+openmp')
+
# Will likely only be fixed in LLVM 12 upstream
patch('fix-system-zlib-ncurses.patch', when='@3.5.0:3.8.0')
+ patch('fix-ncurses-3.9.0.patch', when='@3.9.0:4.0.0')
- root_cmakelists_dir = 'llvm'
+ # This is already fixed in upstream but not in 4.2.0 rocm release
+ patch('fix-spack-detection-4.2.0.patch', when='@4.2.0:')
+
+ conflicts('^cmake@3.19.0')
+ root_cmakelists_dir = 'llvm'
install_targets = ['clang-tidy', 'install']
+ # Add device libs sources so they can be an external LLVM project
+ for d_version, d_shasum in [
+ ('4.3.1', 'a7291813168e500bfa8aaa5d1dccf5250764ddfe27535def01b51eb5021d4592'),
+ ('4.3.0', '055a67e63da6491c84cd45865500043553fb33c44d538313dd87040a6f3826f2'),
+ ('4.2.0', '34a2ac39b9bb7cfa8175cbab05d30e7f3c06aaffce99eed5f79c616d0f910f5f'),
+ ('4.1.0', 'f5f5aa6bfbd83ff80a968fa332f80220256447c4ccb71c36f1fbd2b4a8e9fc1b'),
+ ('4.0.0', 'd0aa495f9b63f6d8cf8ac668f4dc61831d996e9ae3f15280052a37b9d7670d2a'),
+ ('3.10.0', 'bca9291385d6bdc91a8b39a46f0fd816157d38abb1725ff5222e6a0daa0834cc'),
+ ('3.9.0', 'c99f45dacf5967aef9a31e3731011b9c142446d4a12bac69774998976f2576d7'),
+ ('3.8.0', 'e82cc9a8eb7d92de02cabb856583e28f17a05c8cf9c97aec5275608ef1a38574'),
+ ('3.7.0', 'b3a114180bf184b3b829c356067bc6a98021d52c1c6f9db6bc57272ebafc5f1d'),
+ ('3.5.0', 'dce3a4ba672c4a2da4c2260ee4dc96ff6dd51877f5e7e1993cb107372a35a378')
+ ]:
+ resource(
+ name='rocm-device-libs',
+ placement='rocm-device-libs',
+ url='https://github.com/RadeonOpenCompute/ROCm-Device-Libs/archive/rocm-{0}.tar.gz'.format(d_version),
+ sha256=d_shasum,
+ when='@{0} +rocm-device-libs'.format(d_version)
+ )
+
+ resource(
+ name='rocm-device-libs',
+ placement='rocm-device-libs',
+ git='https://github.com/RadeonOpenCompute/ROCm-Device-Libs.git',
+ branch='amd-stg-open',
+ when='@master +rocm-device-libs'
+ )
+
def cmake_args(self):
- args = [
- '-DLLVM_ENABLE_PROJECTS=clang;lld;clang-tools-extra;compiler-rt',
- '-DLLVM_ENABLE_ASSERTIONS=1'
+ llvm_projects = [
+ 'clang',
+ 'lld',
+ 'clang-tools-extra',
+ 'compiler-rt'
]
+ args = []
+ if self.spec.satisfies('@4.3.0:'):
+ llvm_projects.append('libcxx')
+ llvm_projects.append('libcxxabi')
+
+ args = [
+ self.define('LIBCXX_ENABLE_SHARED', 'OFF'),
+ self.define('LIBCXX_ENABLE_STATIC', 'ON'),
+ self.define('LIBCXX_INSTALL_LIBRARY', 'OFF'),
+ self.define('LIBCXX_INSTALL_HEADERS', 'OFF'),
+ self.define('LIBCXXABI_ENABLE_SHARED', 'OFF'),
+ self.define('LIBCXXABI_ENABLE_STATIC', 'ON'),
+ self.define('LIBCXXABI_INSTALL_STATIC_LIBRARY', 'OFF'),
+ ]
+
+ if '+openmp' in self.spec:
+ llvm_projects.append('openmp')
+
+ args.extend([self.define('LLVM_ENABLE_PROJECTS', ';'.join(llvm_projects))])
+
+ # Enable rocm-device-libs as a external project
+ if '+rocm-device-libs' in self.spec:
+ dir = os.path.join(self.stage.source_path, 'rocm-device-libs')
+ args.extend([
+ self.define('LLVM_EXTERNAL_PROJECTS', 'device-libs'),
+ self.define('LLVM_EXTERNAL_DEVICE_LIBS_SOURCE_DIR', dir)
+ ])
+
+ # Get the GCC prefix for LLVM.
if self.compiler.name == "gcc":
- gcc_prefix = ancestor(self.compiler.cc, 2)
- args.append("-DGCC_INSTALL_PREFIX=" + gcc_prefix)
+ compiler = Executable(self.compiler.cc)
+ gcc_output = compiler('-print-search-dirs', output=str, error=str)
+
+ gcc_prefix = ""
+ for line in gcc_output.splitlines():
+ if line.startswith("install:"):
+ # Get path and strip any whitespace
+ # (causes oddity with ancestor)
+ gcc_prefix = line.split(":")[1].strip()
+ gcc_prefix = ancestor(gcc_prefix, 4)
+ break
+ args.append(self.define('GCC_INSTALL_PREFIX', gcc_prefix))
return args
diff --git a/var/spack/repos/builtin/packages/llvm-doe/constexpr_longdouble_9.0.patch b/var/spack/repos/builtin/packages/llvm-doe/constexpr_longdouble_9.0.patch
new file mode 100644
index 0000000000..bbc5ab7385
--- /dev/null
+++ b/var/spack/repos/builtin/packages/llvm-doe/constexpr_longdouble_9.0.patch
@@ -0,0 +1,12 @@
+-- a/libcxx/include/thread
++++ b/libcxx/include/thread
+@@ -370,7 +370,7 @@ sleep_for(const chrono::duration<_Rep, _Period>& __d)
+ using namespace chrono;
+ if (__d > duration<_Rep, _Period>::zero())
+ {
+-#if defined(_LIBCPP_COMPILER_GCC) && (__powerpc__ || __POWERPC__)
++#if ! (defined(_LIBCPP_COMPILER_GCC) && (__powerpc__ || __POWERPC__))
+ // GCC's long double const folding is incomplete for IBM128 long doubles.
+ _LIBCPP_CONSTEXPR duration<long double> _Max = nanoseconds::max();
+ #else
+
diff --git a/var/spack/repos/builtin/packages/llvm-doe/lldb_external_ncurses-10.patch b/var/spack/repos/builtin/packages/llvm-doe/lldb_external_ncurses-10.patch
new file mode 100644
index 0000000000..34ed0e3cd2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/llvm-doe/lldb_external_ncurses-10.patch
@@ -0,0 +1,31 @@
+diff --git a/lldb/include/lldb/Host/Config.h.cmake b/lldb/include/lldb/Host/Config.h.cmake
+--- a/lldb/include/lldb/Host/Config.h.cmake
++++ b/lldb/include/lldb/Host/Config.h.cmake
+@@ -38,6 +38,8 @@
+
+ #cmakedefine01 LLDB_ENABLE_CURSES
+
++#cmakedefine01 CURSES_HAVE_NCURSES_CURSES_H
++
+ #cmakedefine01 LLDB_ENABLE_LIBEDIT
+
+ #cmakedefine01 LLDB_ENABLE_LIBXML2
+diff --git a/lldb/source/Core/IOHandlerCursesGUI.cpp b/lldb/source/Core/IOHandlerCursesGUI.cpp
+--- a/lldb/source/Core/IOHandlerCursesGUI.cpp
++++ b/lldb/source/Core/IOHandlerCursesGUI.cpp
+@@ -10,9 +10,14 @@
+ #include "lldb/Host/Config.h"
+
+ #if LLDB_ENABLE_CURSES
++#if CURSES_HAVE_NCURSES_CURSES_H
++#include <ncurses/curses.h>
++#include <ncurses/panel.h>
++#else
+ #include <curses.h>
+ #include <panel.h>
+ #endif
++#endif
+
+ #if defined(__APPLE__)
+ #include <deque>
+
diff --git a/var/spack/repos/builtin/packages/llvm-doe/llvm_python_path.patch b/var/spack/repos/builtin/packages/llvm-doe/llvm_python_path.patch
new file mode 100644
index 0000000000..9f821cc365
--- /dev/null
+++ b/var/spack/repos/builtin/packages/llvm-doe/llvm_python_path.patch
@@ -0,0 +1,14 @@
+diff --git a/compiler-rt/cmake/Modules/AddCompilerRT.cmake b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
+index dab55707338..6f4c6791141 100644
+--- a/compiler-rt/cmake/Modules/AddCompilerRT.cmake
++++ b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
+@@ -612,6 +612,9 @@ macro(add_custom_libcxx name prefix)
+ CMAKE_OBJDUMP
+ CMAKE_STRIP
+ CMAKE_SYSROOT
++ PYTHON_EXECUTABLE
++ Python3_EXECUTABLE
++ Python2_EXECUTABLE
+ CMAKE_SYSTEM_NAME)
+ foreach(variable ${PASSTHROUGH_VARIABLES})
+ get_property(is_value_set CACHE ${variable} PROPERTY VALUE SET)
diff --git a/var/spack/repos/builtin/packages/llvm-doe/package.py b/var/spack/repos/builtin/packages/llvm-doe/package.py
new file mode 100644
index 0000000000..a357edd5f8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/llvm-doe/package.py
@@ -0,0 +1,562 @@
+# Copyright 2013-2021 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)
+import os.path
+import re
+import sys
+
+import llnl.util.tty as tty
+
+import spack.util.executable
+
+
+class LlvmDoe(CMakePackage, CudaPackage):
+ """This package provides a collection of the experimental LLVM projects done
+ by the US DOE research and development teams.
+ """
+
+ homepage = "https://github.com/llvm-doe-org"
+ url = "https://github.com/llvm-doe-org/llvm-project/archive/llvmorg-10.0.0.zip"
+ git = "https://github.com/llvm-doe-org/llvm-project"
+ maintainers = ['shintaro-iwasaki']
+
+ version('doe', branch='doe', preferred=True)
+ version('upstream', branch='llvm.org/main')
+ version('bolt', branch='bolt/main')
+ version('clacc', branch='clacc/master')
+ version('pragma-clang-loop', branch='sollve/pragma-clang-loop')
+ version('pragma-omp-tile', branch='sollve/pragma-omp-tile')
+
+ # NOTE: The debug version of LLVM is an order of magnitude larger than
+ # the release version, and may take up 20-30 GB of space. If you want
+ # to save space, build with `build_type=Release`.
+
+ variant(
+ "clang",
+ default=True,
+ description="Build the LLVM C/C++/Objective-C compiler frontend",
+ )
+ variant(
+ "flang",
+ default=False,
+ description="Build the LLVM Fortran compiler frontend",
+ )
+ variant(
+ "omp_debug",
+ default=False,
+ description="Include debugging code in OpenMP runtime libraries",
+ )
+ variant("lldb", default=False, description="Build the LLVM debugger")
+ variant("lld", default=True, description="Build the LLVM linker")
+ variant("mlir", default=False, description="Build with MLIR support")
+ variant(
+ "internal_unwind",
+ default=True,
+ description="Build the libcxxabi libunwind",
+ )
+ variant(
+ "polly",
+ default=True,
+ description="Build the LLVM polyhedral optimization plugin, "
+ "only builds for 3.7.0+",
+ )
+ variant(
+ "libcxx",
+ default=True,
+ description="Build the LLVM C++ standard library",
+ )
+ variant(
+ "compiler-rt",
+ default=True,
+ description="Build LLVM compiler runtime, including sanitizers",
+ )
+ variant(
+ "gold",
+ default=(sys.platform != "darwin"),
+ description="Add support for LTO with the gold linker plugin",
+ )
+ variant(
+ "split_dwarf",
+ default=False,
+ description="Build with split dwarf information",
+ )
+ variant(
+ "shared_libs",
+ default=False,
+ description="Build all components as shared libraries, faster, "
+ "less memory to build, less stable",
+ )
+ variant(
+ "llvm_dylib",
+ default=False,
+ description="Build LLVM shared library, containing all "
+ "components in a single shared library",
+ )
+ variant(
+ "all_targets",
+ default=False,
+ description="Build all supported targets, default targets "
+ "<current arch>,NVPTX,AMDGPU,CppBackend",
+ )
+ variant(
+ "build_type",
+ default="Release",
+ description="CMake build type",
+ values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel"),
+ )
+ variant(
+ "omp_tsan",
+ default=False,
+ description="Build with OpenMP capable thread sanitizer",
+ )
+ variant(
+ "argobots",
+ default=False,
+ description="Build BOLT/OpenMP with Argobots. Effective when @bolt",
+ )
+ variant('code_signing', default=False,
+ description="Enable code-signing on macOS")
+ variant("python", default=False, description="Install python bindings")
+
+ extends("python", when="+python")
+
+ # Build dependency
+ depends_on("cmake@3.4.3:", type="build")
+ depends_on("python", when="~python", type="build")
+ depends_on("pkgconfig", type="build")
+
+ # Universal dependency
+ depends_on("python", when="+python")
+ depends_on("z3")
+
+ # openmp dependencies
+ depends_on("perl-data-dumper", type=("build"))
+ depends_on("hwloc")
+ depends_on("libelf", when="+cuda") # libomptarget
+ depends_on("libffi", when="+cuda") # libomptarget
+
+ # ncurses dependency
+ depends_on("ncurses+termlib")
+
+ # lldb dependencies
+ depends_on("swig", when="+lldb")
+ depends_on("libedit", when="+lldb")
+ depends_on("py-six", when="+lldb +python")
+
+ # gold support, required for some features
+ depends_on("binutils+gold", when="+gold")
+
+ conflicts("+llvm_dylib", when="+shared_libs")
+ conflicts("+lldb", when="~clang")
+ conflicts("+libcxx", when="~clang")
+ conflicts("+internal_unwind", when="~clang")
+ conflicts("+compiler-rt", when="~clang")
+
+ conflicts("%gcc@:5.0.999")
+
+ # cuda_arch value must be specified
+ conflicts("cuda_arch=none", when="+cuda", msg="A value for cuda_arch must be specified.")
+
+ conflicts("+mlir")
+
+ conflicts("+flang", when="~clang")
+
+ # code signing is only necessary on macOS",
+ conflicts('+code_signing', when='platform=linux')
+ conflicts('+code_signing', when='platform=cray')
+
+ conflicts(
+ '+code_signing',
+ when='~lldb platform=darwin',
+ msg="code signing is only necessary for building the "
+ "in-tree debug server on macOS. Turning this variant "
+ "off enables a build of llvm with lldb that uses the "
+ "system debug server",
+ )
+
+ # LLVM bug https://bugs.llvm.org/show_bug.cgi?id=48234
+ # CMake bug: https://gitlab.kitware.com/cmake/cmake/-/issues/21469
+ # Fixed in upstream versions of both
+ conflicts('^cmake@3.19.0', when='@:11.0.0')
+
+ # Backport from llvm master + additional fix
+ # see https://bugs.llvm.org/show_bug.cgi?id=39696
+ # for a bug report about this problem in llvm master.
+ patch("constexpr_longdouble_9.0.patch", when="@9:10.0.0+libcxx")
+
+ # https://github.com/spack/spack/issues/19625,
+ # merged in llvm-11.0.0_rc2
+ patch("lldb_external_ncurses-10.patch", when="@10.0.0:10.99+lldb")
+
+ # https://github.com/spack/spack/issues/19908
+ # merged in llvm main prior to 12.0.0
+ patch("llvm_python_path.patch", when="@11.0.0")
+
+ # The functions and attributes below implement external package
+ # detection for LLVM. See:
+ #
+ # https://spack.readthedocs.io/en/latest/packaging_guide.html#making-a-package-discoverable-with-spack-external-find
+ executables = ['clang', 'flang', 'ld.lld', 'lldb']
+
+ @classmethod
+ def filter_detected_exes(cls, prefix, exes_in_prefix):
+ result = []
+ for exe in exes_in_prefix:
+ # Executables like lldb-vscode-X are daemon listening
+ # on some port and would hang Spack during detection.
+ # clang-cl and clang-cpp are dev tools that we don't
+ # need to test
+ if any(x in exe for x in ('vscode', 'cpp', '-cl', '-gpu')):
+ continue
+ result.append(exe)
+ return result
+
+ @classmethod
+ def determine_version(cls, exe):
+ version_regex = re.compile(
+ # Normal clang compiler versions are left as-is
+ r'clang version ([^ )\n]+)-svn[~.\w\d-]*|'
+ # Don't include hyphenated patch numbers in the version
+ # (see https://github.com/spack/spack/pull/14365 for details)
+ r'clang version ([^ )\n]+?)-[~.\w\d-]*|'
+ r'clang version ([^ )\n]+)|'
+ # LLDB
+ r'lldb version ([^ )\n]+)|'
+ # LLD
+ r'LLD ([^ )\n]+) \(compatible with GNU linkers\)'
+ )
+ try:
+ compiler = Executable(exe)
+ output = compiler('--version', output=str, error=str)
+ if 'Apple' in output:
+ return None
+ match = version_regex.search(output)
+ if match:
+ return match.group(match.lastindex)
+ except spack.util.executable.ProcessError:
+ pass
+ except Exception as e:
+ tty.debug(e)
+
+ return None
+
+ @classmethod
+ def determine_variants(cls, exes, version_str):
+ variants, compilers = ['+clang'], {}
+ lld_found, lldb_found = False, False
+ for exe in exes:
+ if 'clang++' in exe:
+ compilers['cxx'] = exe
+ elif 'clang' in exe:
+ compilers['c'] = exe
+ elif 'flang' in exe:
+ variants.append('+flang')
+ compilers['fc'] = exe
+ compilers['f77'] = exe
+ elif 'ld.lld' in exe:
+ lld_found = True
+ compilers['ld'] = exe
+ elif 'lldb' in exe:
+ lldb_found = True
+ compilers['lldb'] = exe
+
+ variants.append('+lld' if lld_found else '~lld')
+ variants.append('+lldb' if lldb_found else '~lldb')
+
+ return ''.join(variants), {'compilers': compilers}
+
+ @classmethod
+ def validate_detected_spec(cls, spec, extra_attributes):
+ # For LLVM 'compilers' is a mandatory attribute
+ msg = ('the extra attribute "compilers" must be set for '
+ 'the detected spec "{0}"'.format(spec))
+ assert 'compilers' in extra_attributes, msg
+ compilers = extra_attributes['compilers']
+ for key in ('c', 'cxx'):
+ msg = '{0} compiler not found for {1}'
+ assert key in compilers, msg.format(key, spec)
+
+ @property
+ def cc(self):
+ msg = "cannot retrieve C compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers'].get('c', None)
+ result = None
+ if '+clang' in self.spec:
+ result = os.path.join(self.spec.prefix.bin, 'clang')
+ return result
+
+ @property
+ def cxx(self):
+ msg = "cannot retrieve C++ compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers'].get('cxx', None)
+ result = None
+ if '+clang' in self.spec:
+ result = os.path.join(self.spec.prefix.bin, 'clang++')
+ return result
+
+ @property
+ def fc(self):
+ msg = "cannot retrieve Fortran compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers'].get('fc', None)
+ result = None
+ if '+flang' in self.spec:
+ result = os.path.join(self.spec.prefix.bin, 'flang')
+ return result
+
+ @property
+ def f77(self):
+ msg = "cannot retrieve Fortran 77 compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers'].get('f77', None)
+ result = None
+ if '+flang' in self.spec:
+ result = os.path.join(self.spec.prefix.bin, 'flang')
+ return result
+
+ @run_before('cmake')
+ def codesign_check(self):
+ if self.spec.satisfies("+code_signing"):
+ codesign = which('codesign')
+ mkdir('tmp')
+ llvm_check_file = join_path('tmp', 'llvm_check')
+ copy('/usr/bin/false', llvm_check_file)
+ try:
+ codesign('-f', '-s', 'lldb_codesign', '--dryrun',
+ llvm_check_file)
+
+ except ProcessError:
+ # Newer LLVM versions have a simple script that sets up
+ # automatically when run with sudo priviliges
+ setup = Executable("./lldb/scripts/macos-setup-codesign.sh")
+ try:
+ setup()
+ except Exception:
+ raise RuntimeError(
+ 'spack was unable to either find or set up'
+ 'code-signing on your system. Please refer to'
+ 'https://lldb.llvm.org/resources/build.html#'
+ 'code-signing-on-macos for details on how to'
+ 'create this identity.'
+ )
+
+ def setup_build_environment(self, env):
+ env.append_flags("CXXFLAGS", self.compiler.cxx11_flag)
+
+ def setup_run_environment(self, env):
+ if "+clang" in self.spec:
+ env.set("CC", join_path(self.spec.prefix.bin, "clang"))
+ env.set("CXX", join_path(self.spec.prefix.bin, "clang++"))
+ if "+flang" in self.spec:
+ env.set("FC", join_path(self.spec.prefix.bin, "flang"))
+ env.set("F77", join_path(self.spec.prefix.bin, "flang"))
+
+ root_cmakelists_dir = "llvm"
+
+ def cmake_args(self):
+ spec = self.spec
+ python = spec['python']
+ cmake_args = [
+ "-DLLVM_REQUIRES_RTTI:BOOL=ON",
+ "-DLLVM_ENABLE_RTTI:BOOL=ON",
+ "-DLLVM_ENABLE_EH:BOOL=ON",
+ "-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp",
+ "-DPYTHON_EXECUTABLE:PATH={0}".format(python.command.path),
+ "-DLIBOMP_USE_HWLOC:BOOL=ON",
+ "-DLIBOMP_HWLOC_INSTALL_DIR={0}".format(spec["hwloc"].prefix),
+ ]
+
+ if python.version >= Version("3.0.0"):
+ cmake_args.append("-DPython3_EXECUTABLE={0}".format(
+ python.command.path))
+ else:
+ cmake_args.append("-DPython2_EXECUTABLE={0}".format(
+ python.command.path))
+
+ projects = []
+
+ if "+cuda" in spec:
+ cmake_args.extend(
+ [
+ "-DCUDA_TOOLKIT_ROOT_DIR:PATH=" + spec["cuda"].prefix,
+ "-DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES={0}".format(
+ ",".join(spec.variants["cuda_arch"].value)
+ ),
+ "-DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_{0}".format(
+ spec.variants["cuda_arch"].value[-1]
+ ),
+ ]
+ )
+ else:
+ # still build libomptarget but disable cuda
+ cmake_args.extend(
+ [
+ "-DCUDA_TOOLKIT_ROOT_DIR:PATH=IGNORE",
+ "-DCUDA_SDK_ROOT_DIR:PATH=IGNORE",
+ "-DCUDA_NVCC_EXECUTABLE:FILEPATH=IGNORE",
+ "-DLIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES:STRING=IGNORE",
+ ]
+ )
+
+ if "+omp_debug" in spec:
+ cmake_args.append("-DLIBOMPTARGET_ENABLE_DEBUG:Bool=ON")
+
+ if "+python" in spec and "+lldb" in spec:
+ cmake_args.append("-DLLDB_USE_SYSTEM_SIX:Bool=TRUE")
+
+ if "+lldb" in spec and spec.satisfies("@10.0.0:,doe"):
+ cmake_args.append("-DLLDB_ENABLE_PYTHON:Bool={0}".format(
+ 'ON' if '+python' in spec else 'OFF'))
+ if "+lldb" in spec and spec.satisfies("@:9.9.9"):
+ cmake_args.append("-DLLDB_DISABLE_PYTHON:Bool={0}".format(
+ 'ON' if '~python' in spec else 'OFF'))
+
+ if "+gold" in spec:
+ cmake_args.append(
+ "-DLLVM_BINUTILS_INCDIR=" + spec["binutils"].prefix.include
+ )
+
+ if "+clang" in spec:
+ projects.append("clang")
+ projects.append("clang-tools-extra")
+ projects.append("openmp")
+ if "+flang" in spec:
+ projects.append("flang")
+ if "+lldb" in spec:
+ projects.append("lldb")
+ if "+lld" in spec:
+ projects.append("lld")
+ if "+compiler-rt" in spec:
+ projects.append("compiler-rt")
+ if "+libcxx" in spec:
+ projects.append("libcxx")
+ projects.append("libcxxabi")
+ cmake_args.append("-DCLANG_DEFAULT_CXX_STDLIB=libc++")
+ if "+mlir" in spec:
+ projects.append("mlir")
+ if "+internal_unwind" in spec:
+ projects.append("libunwind")
+ if "+polly" in spec:
+ projects.append("polly")
+ cmake_args.append("-DLINK_POLLY_INTO_TOOLS:Bool=ON")
+
+ if "+shared_libs" in spec:
+ cmake_args.append("-DBUILD_SHARED_LIBS:Bool=ON")
+ if "+llvm_dylib" in spec:
+ cmake_args.append("-DLLVM_BUILD_LLVM_DYLIB:Bool=ON")
+ if "+omp_debug" in spec:
+ cmake_args.append("-DLIBOMPTARGET_ENABLE_DEBUG:Bool=ON")
+
+ if "+split_dwarf" in spec:
+ cmake_args.append("-DLLVM_USE_SPLIT_DWARF:Bool=ON")
+
+ if "+all_targets" not in spec: # all is default on cmake
+
+ targets = ["NVPTX", "AMDGPU"]
+ if spec.target.family == "x86" or spec.target.family == "x86_64":
+ targets.append("X86")
+ elif spec.target.family == "arm":
+ targets.append("ARM")
+ elif spec.target.family == "aarch64":
+ targets.append("AArch64")
+ elif (
+ spec.target.family == "sparc"
+ or spec.target.family == "sparc64"
+ ):
+ targets.append("Sparc")
+ elif (
+ spec.target.family == "ppc64"
+ or spec.target.family == "ppc64le"
+ or spec.target.family == "ppc"
+ or spec.target.family == "ppcle"
+ ):
+ targets.append("PowerPC")
+
+ cmake_args.append(
+ "-DLLVM_TARGETS_TO_BUILD:STRING=" + ";".join(targets)
+ )
+
+ if "+omp_tsan" in spec:
+ cmake_args.append("-DLIBOMP_TSAN_SUPPORT=ON")
+
+ if spec.satisfies("@bolt"):
+ projects.remove("openmp")
+ projects.append("bolt")
+ cmake_args.append("-DLIBOMP_USE_BOLT_DEFAULT=ON")
+ if "+argobots" in spec and spec.satisfies("@bolt"):
+ cmake_args.append("-DLIBOMP_USE_ARGOBOTS=ON")
+
+ if self.compiler.name == "gcc":
+ gcc_prefix = ancestor(self.compiler.cc, 2)
+ cmake_args.append("-DGCC_INSTALL_PREFIX=" + gcc_prefix)
+
+ if spec.satisfies("platform=cray") or spec.satisfies("platform=linux"):
+ cmake_args.append("-DCMAKE_BUILD_WITH_INSTALL_RPATH=1")
+
+ if self.spec.satisfies("~code_signing platform=darwin"):
+ cmake_args.append('-DLLDB_USE_SYSTEM_DEBUGSERVER=ON')
+
+ # Semicolon seperated list of projects to enable
+ cmake_args.append(
+ "-DLLVM_ENABLE_PROJECTS:STRING={0}".format(";".join(projects))
+ )
+
+ return cmake_args
+
+ @run_before("build")
+ def pre_install(self):
+ with working_dir(self.build_directory):
+ # When building shared libraries these need to be installed first
+ make("install-LLVMTableGen")
+ make("install-LLVMDemangle")
+ make("install-LLVMSupport")
+
+ @run_after("install")
+ def post_install(self):
+ spec = self.spec
+
+ # unnecessary if we get bootstrap builds in here
+ if "+cuda" in self.spec:
+ ompdir = "build-bootstrapped-omp"
+ # rebuild libomptarget to get bytecode runtime library files
+ with working_dir(ompdir, create=True):
+ cmake_args = [
+ self.stage.source_path + "/openmp",
+ "-DCMAKE_C_COMPILER:PATH={0}".format(
+ spec.prefix.bin + "/clang"
+ ),
+ "-DCMAKE_CXX_COMPILER:PATH={0}".format(
+ spec.prefix.bin + "/clang++"
+ ),
+ "-DCMAKE_INSTALL_PREFIX:PATH={0}".format(spec.prefix),
+ ]
+ cmake_args.extend(self.cmake_args())
+ cmake_args.append(
+ "-DLIBOMPTARGET_NVPTX_ENABLE_BCLIB:BOOL=TRUE"
+ )
+
+ # work around bad libelf detection in libomptarget
+ cmake_args.append(
+ "-DLIBOMPTARGET_DEP_LIBELF_INCLUDE_DIR:String={0}".format(
+ spec["libelf"].prefix.include
+ )
+ )
+
+ cmake(*cmake_args)
+ make()
+ make("install")
+ if "+python" in self.spec:
+ install_tree("llvm/bindings/python", site_packages_dir)
+
+ if "+clang" in self.spec:
+ install_tree("clang/bindings/python", site_packages_dir)
+
+ with working_dir(self.build_directory):
+ install_tree("bin", join_path(self.prefix, "libexec", "llvm"))
diff --git a/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py b/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py
index 4a87fba258..ce1024f825 100644
--- a/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py
+++ b/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -38,7 +38,7 @@ class LlvmOpenmpOmpt(CMakePackage):
depends_on('llvm', when='~standalone')
depends_on('ninja@1.5:', type='build')
depends_on('perl@5.22.0:', type='build')
- depends_on('libelf', when='+libomptarget')
+ depends_on('elf', when='+libomptarget')
depends_on('libffi', when='+libomptarget')
generator = 'Ninja'
diff --git a/var/spack/repos/builtin/packages/llvm-openmp/package.py b/var/spack/repos/builtin/packages/llvm-openmp/package.py
index 831a32f745..d7534ff453 100755
--- a/var/spack/repos/builtin/packages/llvm-openmp/package.py
+++ b/var/spack/repos/builtin/packages/llvm-openmp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/llvm/llvm7_intel.patch b/var/spack/repos/builtin/packages/llvm/llvm7_intel.patch
new file mode 100644
index 0000000000..710545a619
--- /dev/null
+++ b/var/spack/repos/builtin/packages/llvm/llvm7_intel.patch
@@ -0,0 +1,50 @@
+diff --git a/llvm/include/llvm/ADT/StringExtras.h b/llvm/include/llvm/ADT/StringExtras.h
+index 71b0e7527cb..3304a378f37 100644
+--- a/llvm/include/llvm/ADT/StringExtras.h
++++ b/llvm/include/llvm/ADT/StringExtras.h
+@@ -369,7 +369,7 @@ inline size_t join_items_size(const A1 &A, Args &&... Items) {
+ template <typename IteratorT>
+ inline std::string join(IteratorT Begin, IteratorT End, StringRef Separator) {
+ using tag = typename std::iterator_traits<IteratorT>::iterator_category;
+- return detail::join_impl(Begin, End, Separator, tag());
++ return llvm::detail::join_impl(Begin, End, Separator, tag());
+ }
+
+ /// Joins the strings in the range [R.begin(), R.end()), adding Separator
+diff --git a/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h b/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
+index 25b2efd33c9..40144d96044 100644
+--- a/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
++++ b/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
+@@ -186,8 +186,9 @@ public:
+ /// topological sort) and it's class is the same regardless of block type.
+ struct BlockNode {
+ using IndexType = uint32_t;
++ using IndexTypeLimits = std::numeric_limits<IndexType>;
+
+- IndexType Index = std::numeric_limits<uint32_t>::max();
++ IndexType Index = IndexTypeLimits::max();
+
+ BlockNode() = default;
+ BlockNode(IndexType Index) : Index(Index) {}
+diff --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp b/llvm/lib/ExecutionEngine/Orc/Core.cpp
+index 4325d57f73d..96e1e1d5503 100644
+--- a/llvm/lib/ExecutionEngine/Orc/Core.cpp
++++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp
+@@ -1423,7 +1423,7 @@ VSO::lookupImpl(std::shared_ptr<AsynchronousSymbolQuery> &Q,
+ if (SymI->second.getAddress() != 0) {
+ Q->resolve(Name, SymI->second);
+ if (Q->isFullyResolved())
+- ActionFlags |= NotifyFullyResolved;
++ ActionFlags = static_cast<LookupImplActionFlags>(ActionFlags | NotifyFullyResolved);
+ }
+
+ // If the symbol is lazy, get the MaterialiaztionUnit for it.
+@@ -1456,7 +1456,7 @@ VSO::lookupImpl(std::shared_ptr<AsynchronousSymbolQuery> &Q,
+ // continue.
+ Q->notifySymbolReady();
+ if (Q->isFullyReady())
+- ActionFlags |= NotifyFullyReady;
++ ActionFlags = static_cast<LookupImplActionFlags>(ActionFlags | NotifyFullyReady);
+ continue;
+ }
+
diff --git a/var/spack/repos/builtin/packages/llvm/llvm_python_path.patch b/var/spack/repos/builtin/packages/llvm/llvm_python_path.patch
new file mode 100644
index 0000000000..9f821cc365
--- /dev/null
+++ b/var/spack/repos/builtin/packages/llvm/llvm_python_path.patch
@@ -0,0 +1,14 @@
+diff --git a/compiler-rt/cmake/Modules/AddCompilerRT.cmake b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
+index dab55707338..6f4c6791141 100644
+--- a/compiler-rt/cmake/Modules/AddCompilerRT.cmake
++++ b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
+@@ -612,6 +612,9 @@ macro(add_custom_libcxx name prefix)
+ CMAKE_OBJDUMP
+ CMAKE_STRIP
+ CMAKE_SYSROOT
++ PYTHON_EXECUTABLE
++ Python3_EXECUTABLE
++ Python2_EXECUTABLE
+ CMAKE_SYSTEM_NAME)
+ foreach(variable ${PASSTHROUGH_VARIABLES})
+ get_property(is_value_set CACHE ${variable} PROPERTY VALUE SET)
diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py
index 570ce32fb2..c3e4427603 100644
--- a/var/spack/repos/builtin/packages/llvm/package.py
+++ b/var/spack/repos/builtin/packages/llvm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,6 +7,7 @@ import re
import sys
import llnl.util.tty as tty
+
import spack.util.executable
@@ -18,9 +19,9 @@ class Llvm(CMakePackage, CudaPackage):
is not an acronym; it is the full name of the project.
"""
- homepage = "http://llvm.org/"
+ homepage = "https://llvm.org/"
url = "https://github.com/llvm/llvm-project/archive/llvmorg-7.1.0.tar.gz"
- list_url = "http://releases.llvm.org/download.html"
+ list_url = "https://releases.llvm.org/download.html"
git = "https://github.com/llvm/llvm-project"
maintainers = ['trws', 'naromero77']
@@ -28,6 +29,9 @@ class Llvm(CMakePackage, CudaPackage):
# fmt: off
version('main', branch='main')
+ version('12.0.1', sha256='66b64aa301244975a4aea489f402f205cde2f53dd722dad9e7b77a0459b4c8df')
+ version('12.0.0', sha256='8e6c99e482bb16a450165176c2d881804976a2d770e0445af4375e78a1fbf19c')
+ version('11.1.0', sha256='53a0719f3f4b0388013cfffd7b10c7d5682eece1929a9553c722348d1f866e79')
version('11.0.1', sha256='9c7ad8e8ec77c5bde8eb4afa105a318fd1ded7dff3747d14f012758719d7171b')
version('11.0.0', sha256='8ad4ddbafac4f2c8f2ea523c2c4196f940e8e16f9e635210537582a48622a5d5')
version('10.0.1', sha256='c7ccb735c37b4ec470f66a6c35fbae4f029c0f88038f6977180b1a8ddc255637')
@@ -65,6 +69,12 @@ class Llvm(CMakePackage, CudaPackage):
description="Build the LLVM C/C++/Objective-C compiler frontend",
)
variant(
+ "flang",
+ default=False,
+ description="Build the LLVM Fortran compiler frontend "
+ "(experimental - parser only, needs GCC)",
+ )
+ variant(
"omp_debug",
default=False,
description="Include debugging code in OpenMP runtime libraries",
@@ -142,6 +152,7 @@ class Llvm(CMakePackage, CudaPackage):
depends_on("cmake@3.4.3:", type="build")
depends_on("python@2.7:2.8", when="@:4.999 ~python", type="build")
depends_on("python", when="@5: ~python", type="build")
+ depends_on("pkgconfig", type="build")
# Universal dependency
depends_on("python@2.7:2.8", when="@:4.999+python")
@@ -163,7 +174,7 @@ class Llvm(CMakePackage, CudaPackage):
depends_on("py-six", when="@5.0.0: +lldb +python")
# gold support, required for some features
- depends_on("binutils+gold", when="+gold")
+ depends_on("binutils+gold+ld+plugins", when="+gold")
# polly plugin
depends_on("gmp", when="@:3.6.999 +polly")
@@ -174,8 +185,12 @@ class Llvm(CMakePackage, CudaPackage):
conflicts("+libcxx", when="~clang")
conflicts("+internal_unwind", when="~clang")
conflicts("+compiler-rt", when="~clang")
+ conflicts("+flang", when="~clang")
+ # Introduced in version 11 as a part of LLVM and not a separate package.
+ conflicts("+flang", when="@:10.999")
- # LLVM 4 and 5 does not build with GCC 8
+ # Older LLVM do not build with newer GCC
+ conflicts("%gcc@11:", when="@:7")
conflicts("%gcc@8:", when="@:5")
conflicts("%gcc@:5.0.999", when="@8:")
@@ -201,8 +216,19 @@ class Llvm(CMakePackage, CudaPackage):
"system debug server",
)
+ # LLVM bug https://bugs.llvm.org/show_bug.cgi?id=48234
+ # CMake bug: https://gitlab.kitware.com/cmake/cmake/-/issues/21469
+ # Fixed in upstream versions of both
+ conflicts('^cmake@3.19.0', when='@6.0.0:11.0.0')
+
# Github issue #4986
patch("llvm_gcc7.patch", when="@4.0.0:4.0.1+lldb %gcc@7.0:")
+
+ # https://github.com/spack/spack/issues/24270
+ patch('https://src.fedoraproject.org/rpms/llvm10/raw/7ce7ebd066955ea95ba2b491c41fbc6e4ee0643a/f/llvm10-gcc11.patch',
+ sha256='958c64838c9d469be514eef195eca0f8c3ab069bc4b64a48fad59991c626bab8',
+ when='@8:10 %gcc@11:')
+
# Backport from llvm master + additional fix
# see https://bugs.llvm.org/show_bug.cgi?id=39696
# for a bug report about this problem in llvm master.
@@ -218,14 +244,21 @@ class Llvm(CMakePackage, CudaPackage):
patch("thread-p9.patch", when="@develop+libcxx")
# https://github.com/spack/spack/issues/19625,
- # merged in llvm-11.0.0_rc2
- patch("lldb_external_ncurses-10.patch", when="@10.0.0:10.99+lldb")
+ # merged in llvm-11.0.0_rc2, but not found in 11.0.1
+ patch("lldb_external_ncurses-10.patch", when="@10.0.0:11.0.1+lldb")
+
+ # https://github.com/spack/spack/issues/19908
+ # merged in llvm main prior to 12.0.0
+ patch("llvm_python_path.patch", when="@11.0.0")
+
+ # Workaround for issue https://github.com/spack/spack/issues/18197
+ patch('llvm7_intel.patch', when='@7 %intel@18.0.2,19.0.4')
# The functions and attributes below implement external package
# detection for LLVM. See:
#
# https://spack.readthedocs.io/en/latest/packaging_guide.html#making-a-package-discoverable-with-spack-external-find
- executables = ['clang', 'ld.lld', 'lldb']
+ executables = ['clang', 'flang', 'ld.lld', 'lldb']
@classmethod
def filter_detected_exes(cls, prefix, exes_in_prefix):
@@ -278,6 +311,10 @@ class Llvm(CMakePackage, CudaPackage):
compilers['cxx'] = exe
elif 'clang' in exe:
compilers['c'] = exe
+ elif 'flang' in exe:
+ variants.append('+flang')
+ compilers['fc'] = exe
+ compilers['f77'] = exe
elif 'ld.lld' in exe:
lld_found = True
compilers['ld'] = exe
@@ -323,6 +360,28 @@ class Llvm(CMakePackage, CudaPackage):
result = os.path.join(self.spec.prefix.bin, 'clang++')
return result
+ @property
+ def fc(self):
+ msg = "cannot retrieve Fortran compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers'].get('fc', None)
+ result = None
+ if '+flang' in self.spec:
+ result = os.path.join(self.spec.prefix.bin, 'flang')
+ return result
+
+ @property
+ def f77(self):
+ msg = "cannot retrieve Fortran 77 compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers'].get('f77', None)
+ result = None
+ if '+flang' in self.spec:
+ result = os.path.join(self.spec.prefix.bin, 'flang')
+ return result
+
@run_before('cmake')
def codesign_check(self):
if self.spec.satisfies("+code_signing"):
@@ -349,28 +408,45 @@ class Llvm(CMakePackage, CudaPackage):
'create this identity.'
)
- def setup_build_environment(self, env):
- env.append_flags("CXXFLAGS", self.compiler.cxx11_flag)
+ def flag_handler(self, name, flags):
+ if name == 'cxxflags':
+ flags.append(self.compiler.cxx11_flag)
+ return(None, flags, None)
+ elif name == 'ldflags' and self.spec.satisfies('%intel'):
+ flags.append('-shared-intel')
+ return(None, flags, None)
+ return(flags, None, None)
def setup_run_environment(self, env):
if "+clang" in self.spec:
env.set("CC", join_path(self.spec.prefix.bin, "clang"))
env.set("CXX", join_path(self.spec.prefix.bin, "clang++"))
+ if "+flang" in self.spec:
+ env.set("FC", join_path(self.spec.prefix.bin, "flang"))
+ env.set("F77", join_path(self.spec.prefix.bin, "flang"))
root_cmakelists_dir = "llvm"
def cmake_args(self):
spec = self.spec
+ python = spec['python']
cmake_args = [
"-DLLVM_REQUIRES_RTTI:BOOL=ON",
"-DLLVM_ENABLE_RTTI:BOOL=ON",
"-DLLVM_ENABLE_EH:BOOL=ON",
"-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp",
- "-DPYTHON_EXECUTABLE:PATH={0}".format(spec["python"].command.path),
+ "-DPYTHON_EXECUTABLE:PATH={0}".format(python.command.path),
"-DLIBOMP_USE_HWLOC:BOOL=ON",
"-DLIBOMP_HWLOC_INSTALL_DIR={0}".format(spec["hwloc"].prefix),
]
+ if python.version >= Version("3.0.0"):
+ cmake_args.append("-DPython3_EXECUTABLE={0}".format(
+ python.command.path))
+ else:
+ cmake_args.append("-DPython2_EXECUTABLE={0}".format(
+ python.command.path))
+
projects = []
if "+cuda" in spec:
@@ -418,6 +494,8 @@ class Llvm(CMakePackage, CudaPackage):
projects.append("clang")
projects.append("clang-tools-extra")
projects.append("openmp")
+ if "+flang" in spec:
+ projects.append("flang")
if "+lldb" in spec:
projects.append("lldb")
if "+lld" in spec:
@@ -481,7 +559,16 @@ class Llvm(CMakePackage, CudaPackage):
cmake_args.append("-DLIBOMP_TSAN_SUPPORT=ON")
if self.compiler.name == "gcc":
- gcc_prefix = ancestor(self.compiler.cc, 2)
+ compiler = Executable(self.compiler.cc)
+ gcc_output = compiler('-print-search-dirs', output=str, error=str)
+
+ for line in gcc_output.splitlines():
+ if line.startswith("install:"):
+ # Get path and strip any whitespace
+ # (causes oddity with ancestor)
+ gcc_prefix = line.split(":")[1].strip()
+ gcc_prefix = ancestor(gcc_prefix, 4)
+ break
cmake_args.append("-DGCC_INSTALL_PREFIX=" + gcc_prefix)
if spec.satisfies("@4.0.0:"):
diff --git a/var/spack/repos/builtin/packages/lm-sensors/package.py b/var/spack/repos/builtin/packages/lm-sensors/package.py
index ac9ad2c236..29fb18ca9c 100644
--- a/var/spack/repos/builtin/packages/lm-sensors/package.py
+++ b/var/spack/repos/builtin/packages/lm-sensors/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lmbench/package.py b/var/spack/repos/builtin/packages/lmbench/package.py
index e0b5fe3620..b951a75112 100644
--- a/var/spack/repos/builtin/packages/lmbench/package.py
+++ b/var/spack/repos/builtin/packages/lmbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lmdb/package.py b/var/spack/repos/builtin/packages/lmdb/package.py
index 9b45303766..6a5bb9d02a 100644
--- a/var/spack/repos/builtin/packages/lmdb/package.py
+++ b/var/spack/repos/builtin/packages/lmdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,7 @@ class Lmdb(MakefilePackage):
homepage = "https://lmdb.tech/"
url = "https://github.com/LMDB/lmdb/archive/LMDB_0.9.21.tar.gz"
+ version('0.9.29', sha256='22054926b426c66d8f2bc22071365df6e35f3aacf19ad943bc6167d4cae3bebb')
version('0.9.24', sha256='44602436c52c29d4f301f55f6fd8115f945469b868348e3cddaf91ab2473ea26')
version('0.9.22', sha256='f3927859882eb608868c8c31586bb7eb84562a40a6bf5cc3e13b6b564641ea28')
version('0.9.21', sha256='1187b635a4cc415bb6972bba346121f81edd996e99b8f0816151d4090f90b559')
@@ -23,6 +24,10 @@ class Lmdb(MakefilePackage):
build_directory = 'libraries/liblmdb'
@property
+ def build_targets(self):
+ return ['CC={0}'.format(spack_cc)]
+
+ @property
def install_targets(self):
return ['prefix={0}'.format(self.prefix), 'install']
diff --git a/var/spack/repos/builtin/packages/lmod/package.py b/var/spack/repos/builtin/packages/lmod/package.py
index f211405179..7b5ebb7468 100644
--- a/var/spack/repos/builtin/packages/lmod/package.py
+++ b/var/spack/repos/builtin/packages/lmod/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,8 +17,9 @@ class Lmod(AutotoolsPackage):
"""
homepage = 'https://www.tacc.utexas.edu/research-development/tacc-projects/lmod'
- url = 'https://github.com/TACC/Lmod/archive/7.4.11.tar.gz'
+ url = "https://github.com/TACC/Lmod/archive/8.5.6.tar.gz"
+ version('8.5.6', sha256='1d1058ffa33a661994c1b2af4bfee4aa1539720cd5c13d61e18adbfb231bbe88')
version('8.3', sha256='c2c2e9e6b387b011ee617cb009a2199caac8bf200330cb8a065ceedee09e664a')
version('8.2.10', sha256='15676d82235faf5c755a747f0e318badb1a5c3ff1552fa8022c67ff083ee9e2f')
version('8.1.5', sha256='3e5846d3d8e593cbcdfa0aed1474569bf5b5cfd19fd288de22051823d449d344')
diff --git a/var/spack/repos/builtin/packages/lndir/package.py b/var/spack/repos/builtin/packages/lndir/package.py
index 1c310c172c..7751feb76d 100644
--- a/var/spack/repos/builtin/packages/lndir/package.py
+++ b/var/spack/repos/builtin/packages/lndir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,10 @@ class Lndir(AutotoolsPackage, XorgPackage):
"""lndir - create a shadow directory of symbolic links to another
directory tree."""
- homepage = "http://cgit.freedesktop.org/xorg/util/lndir"
+ homepage = "https://cgit.freedesktop.org/xorg/util/lndir"
xorg_mirror_path = "util/lndir-1.0.3.tar.gz"
version('1.0.3', sha256='95b2d26fb3cbe702f828146c7a4c7c48001d2da52b062580227b7b68180be902')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/log4c/package.py b/var/spack/repos/builtin/packages/log4c/package.py
index afc9da054a..fd21871b38 100644
--- a/var/spack/repos/builtin/packages/log4c/package.py
+++ b/var/spack/repos/builtin/packages/log4c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/log4cplus/package.py b/var/spack/repos/builtin/packages/log4cplus/package.py
index 12e766aa7c..1be0c2ac4f 100644
--- a/var/spack/repos/builtin/packages/log4cplus/package.py
+++ b/var/spack/repos/builtin/packages/log4cplus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/log4cpp/package.py b/var/spack/repos/builtin/packages/log4cpp/package.py
index e99fb23e48..78cf8b8a8a 100644
--- a/var/spack/repos/builtin/packages/log4cpp/package.py
+++ b/var/spack/repos/builtin/packages/log4cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/log4cxx/package.py b/var/spack/repos/builtin/packages/log4cxx/package.py
index 090376fe9d..906b66be32 100644
--- a/var/spack/repos/builtin/packages/log4cxx/package.py
+++ b/var/spack/repos/builtin/packages/log4cxx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,25 +6,22 @@
from spack import *
-class Log4cxx(AutotoolsPackage):
+class Log4cxx(CMakePackage):
"""A C++ port of Log4j"""
homepage = "https://logging.apache.org/log4cxx/latest_stable/"
- url = "http://mirror.netcologne.de/apache.org/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.tar.gz"
+ url = "https://dlcdn.apache.org/logging/log4cxx/0.12.0/apache-log4cxx-0.12.0.tar.gz"
- version('0.10.0', sha256='0de0396220a9566a580166e66b39674cb40efd2176f52ad2c65486c99c920c8c')
+ maintainers = ['nicmcd']
+
+ version('0.12.0', sha256='bd5b5009ca914c8fa7944b92ea6b4ca6fb7d146f65d526f21bf8b3c6a0520e44')
+
+ depends_on('cmake@3.13:', type='build')
depends_on('apr-util')
depends_on('apr')
+ depends_on('zlib')
depends_on('zip')
- build_directory = 'spack-build'
-
- # patches from https://aur.archlinux.org/packages/log4cxx/
- patch('log4cxx-0.10.0-missing_includes.patch')
- patch('log4cxx-0.10.0-narrowing-fixes-from-upstream.patch')
-
- def configure_args(self):
- args = ['--disable-static']
-
- return args
+ def cmake_args(self):
+ return [self.define('BUILD_TESTING', 'off')]
diff --git a/var/spack/repos/builtin/packages/logrotate/package.py b/var/spack/repos/builtin/packages/logrotate/package.py
index 0416a5f8a5..77b71c3f92 100644
--- a/var/spack/repos/builtin/packages/logrotate/package.py
+++ b/var/spack/repos/builtin/packages/logrotate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/logstash/package.py b/var/spack/repos/builtin/packages/logstash/package.py
index a348f42f8f..8da75e9e91 100644
--- a/var/spack/repos/builtin/packages/logstash/package.py
+++ b/var/spack/repos/builtin/packages/logstash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/loki/package.py b/var/spack/repos/builtin/packages/loki/package.py
index 7c16974345..5052d9a7d9 100644
--- a/var/spack/repos/builtin/packages/loki/package.py
+++ b/var/spack/repos/builtin/packages/loki/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/looptools/package.py b/var/spack/repos/builtin/packages/looptools/package.py
index b3cc941f06..95c633da60 100644
--- a/var/spack/repos/builtin/packages/looptools/package.py
+++ b/var/spack/repos/builtin/packages/looptools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lordec/package.py b/var/spack/repos/builtin/packages/lordec/package.py
index e222aff6f6..40596ef398 100644
--- a/var/spack/repos/builtin/packages/lordec/package.py
+++ b/var/spack/repos/builtin/packages/lordec/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lorene/local_settings.template b/var/spack/repos/builtin/packages/lorene/local_settings.template
new file mode 100644
index 0000000000..03ede31fee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lorene/local_settings.template
@@ -0,0 +1,20 @@
+CXX = @CXX@
+CXXFLAGS = @CXXFLAGS@
+CXXFLAGS_G = @CXXFLAGS_G@
+
+F77 = @F77@
+F77FLAGS = @F77FLAGS@
+F77FLAGS_G = @F77FLAGS_G@
+
+INC = @INC@
+RANLIB = @RANLIB@
+
+MAKEDEPEND = @MAKEDEPEND@
+DEPDIR = .deps
+
+FFT_DIR = @FFT_DIR@
+LIB_CXX = @LIB_CXX@
+
+LIB_GSL = @LIB_GSL@
+LIB_LAPACK = @LIB_LAPACK@
+LIB_PGPLOT = @LIB_PGPLOT@
diff --git a/var/spack/repos/builtin/packages/lorene/package.py b/var/spack/repos/builtin/packages/lorene/package.py
new file mode 100644
index 0000000000..fc8a574815
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lorene/package.py
@@ -0,0 +1,111 @@
+# Copyright 2013-2021 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)
+
+import inspect
+import os
+
+from spack import *
+
+
+class Lorene(MakefilePackage):
+ """LORENE: Langage Objet pour la RElativite NumeriquE
+
+ LORENE is a set of C++ classes to solve various problems
+ arising in numerical relativity, and more generally in
+ computational astrophysics. It provides tools to solve
+ partial differential equations by means of multi-domain
+ spectral methods."""
+
+ homepage = "https://lorene.obspm.fr/index.html"
+ cvs = ":pserver:anonymous:anonymous@octane.obspm.fr:/cvsroot%module=Lorene"
+
+ maintainers = ['eschnett']
+
+ version('2021.4.22', date='2021-04-22')
+
+ variant('fftw', default=True,
+ description='Use external FFTW for spectral transformations')
+ variant('bin_star', default=True,
+ description='Build Bin_star solver for binary neutron star systems')
+
+ depends_on('blas')
+ depends_on('fftw @3:', when='+fftw')
+ depends_on('gsl')
+ depends_on('lapack')
+ depends_on('pgplot')
+
+ parallel = False
+
+ def edit(self, spec, prefix):
+ blas_libs = spec['blas'].libs.link_flags
+ fftw_incdirs = "-I" + spec['fftw'].prefix.include if '+fftw' in spec else ""
+ fftw_libdirs = "-L" + spec['fftw'].prefix.lib if '+fftw' in spec else ""
+ fftw_libs = spec['fftw'].libs.link_flags
+ gsl_incdirs = "-I" + spec['gsl'].prefix.include
+ gsl_libdirs = "-L" + spec['gsl'].prefix.lib
+ gsl_libs = spec['gsl'].libs.link_flags
+ lapack_libs = spec['lapack'].libs.link_flags
+ pgplot_incdirs = "-I" + spec['pgplot'].prefix.include
+ pgplot_libdirs = "-L" + spec['pgplot'].prefix.lib
+ pgplot_libs = spec['pgplot'].libs.link_flags
+
+ substitutions = [
+ ('@CXX@', self.compiler.cxx),
+ ('@CXXFLAGS@', "-g -I$(HOME_LORENE)/C++/Include -O3 -DNDEBUG"),
+ ('@CXXFLAGS_G@', "-g -I$(HOME_LORENE)/C++/Include"),
+ ('@F77@', self.compiler.f77),
+ ('@F77FLAGS@', "-ffixed-line-length-none -g -O3"),
+ ('@F77FLAGS_G@', "-ffixed-line-length-none -g"),
+ ('@INC@',
+ ("-I$(HOME_LORENE)/C++/Include " +
+ "-I$(HOME_LORENE)/C++/Include_extra " +
+ fftw_incdirs + " " + gsl_incdirs + " " + pgplot_incdirs)),
+ ('@RANLIB@', "ls"),
+ ('@MAKEDEPEND@', ": >$(df).d"),
+ ('@FFT_DIR@', "FFTW3"),
+ ('@LIB_CXX@', fftw_libdirs + " " + fftw_libs + " -lgfortran"),
+ ('@LIB_GSL@', gsl_libdirs + " " + gsl_libs),
+ ('@LIB_LAPACK@', lapack_libs + " " + blas_libs),
+ ('@LIB_PGPLOT@', pgplot_libdirs + " " + pgplot_libs),
+ ]
+ local_settings_template = join_path(
+ os.path.dirname(inspect.getmodule(self).__file__),
+ 'local_settings.template'
+ )
+ local_settings = join_path(
+ self.stage.source_path, 'local_settings'
+ )
+ copy(local_settings_template, local_settings)
+ for key, value in substitutions:
+ filter_file(key, value, local_settings)
+
+ def build(self, spec, prefix):
+ args = ['HOME_LORENE=' + self.build_directory]
+ # (We could build the documentation as well.)
+ # (We could circumvent the build system and simply compile all
+ # source files, and do so in parallel.)
+ make('cpp', 'fortran', 'export', *args)
+ if '+bin_star' in spec:
+ with working_dir(join_path('Codes', 'Bin_star')):
+ make('-f', 'Makefile_O2',
+ 'coal', 'lit_bin', 'init_bin', 'coal_regu', 'init_bin_regu',
+ 'analyse', 'prepare_seq',
+ *args)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.lib)
+ install_tree('Lib', prefix.lib)
+ mkdirp(prefix.bin)
+ if '+bin_star' in spec:
+ for exe in ['coal', 'lit_bin', 'init_bin', 'coal_regu',
+ 'init_bin_regu', 'analyse', 'prepare_seq']:
+ install(join_path('Codes', 'Bin_star', exe), prefix.bin)
+
+ @property
+ def libs(self):
+ shared = "+shared" in self.spec
+ return find_libraries(
+ "liblorene*", root=self.prefix, shared=shared, recursive=True
+ )
diff --git a/var/spack/repos/builtin/packages/lp-solve/package.py b/var/spack/repos/builtin/packages/lp-solve/package.py
new file mode 100644
index 0000000000..5358eccebe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lp-solve/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 LpSolve(Package):
+ """lp_solve is a Mixed Integer Linear Programming (MILP) solver."""
+
+ homepage = "https://sourceforge.net/projects/lpsolve/"
+ url = "https://sourceforge.net/projects/lpsolve/files/lpsolve/5.5.2.11/lp_solve_5.5.2.11_source.tar.gz"
+
+ version('5.5.2.11', sha256='6d4abff5cc6aaa933ae8e6c17a226df0fc0b671c438f69715d41d09fe81f902f')
+
+ def install(self, spec, prefix):
+ with working_dir('lpsolve55'):
+ mkdir(prefix.lib)
+ sh = which('sh')
+ sh('-x', 'ccc')
+ install_tree('bin/ux64', prefix.lib)
+ with working_dir('lp_solve'):
+ mkdir(prefix.bin)
+ sh = which('sh')
+ sh('-x', 'ccc')
+ install_tree('bin/ux64', prefix.bin)
+
+ mkdirp(prefix.include.lpsolve)
+ headers = find('.', '*.h', recursive=False)
+ for header in headers:
+ install(header, prefix.include.lpsolve)
diff --git a/var/spack/repos/builtin/packages/lrslib/package.py b/var/spack/repos/builtin/packages/lrslib/package.py
index a1ec47d3df..33bcb3fbdf 100644
--- a/var/spack/repos/builtin/packages/lrslib/package.py
+++ b/var/spack/repos/builtin/packages/lrslib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lrzip/package.py b/var/spack/repos/builtin/packages/lrzip/package.py
index d264d6da48..dff9a501f9 100644
--- a/var/spack/repos/builtin/packages/lrzip/package.py
+++ b/var/spack/repos/builtin/packages/lrzip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lsf/package.py b/var/spack/repos/builtin/packages/lsf/package.py
index 9f007fa237..eb236f4140 100644
--- a/var/spack/repos/builtin/packages/lsf/package.py
+++ b/var/spack/repos/builtin/packages/lsf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lshw/package.py b/var/spack/repos/builtin/packages/lshw/package.py
index 99c5d30767..a813292d1f 100644
--- a/var/spack/repos/builtin/packages/lshw/package.py
+++ b/var/spack/repos/builtin/packages/lshw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lsof/package.py b/var/spack/repos/builtin/packages/lsof/package.py
index d66a45a5ea..e7ff32c7d9 100644
--- a/var/spack/repos/builtin/packages/lsof/package.py
+++ b/var/spack/repos/builtin/packages/lsof/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lsscsi/package.py b/var/spack/repos/builtin/packages/lsscsi/package.py
index cfd51d454f..ee4d080244 100644
--- a/var/spack/repos/builtin/packages/lsscsi/package.py
+++ b/var/spack/repos/builtin/packages/lsscsi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class Lsscsi(AutotoolsPackage):
'classic'option to mimic the output of 'cat /proc/scsi/scsi' that has
been widely used prior to the lk 2.6 series."""
- homepage = "http://sg.danny.cz/scsi/lsscsi.html"
- url = "http://sg.danny.cz/scsi/lsscsi-0.31.tgz"
+ homepage = "https://sg.danny.cz/scsi/lsscsi.html"
+ url = "https://sg.danny.cz/scsi/lsscsi-0.31.tgz"
version('0.31', sha256='12bf1973014803c6fd6d547e7594a4c049f0eef3bf5d22190d4be29d7c09f3ca')
version('0.30', sha256='619a2187405f02c5f57682f3478bffc75326803cd08839e39d434250c5518b15')
diff --git a/var/spack/repos/builtin/packages/ltp/package.py b/var/spack/repos/builtin/packages/ltp/package.py
index ff02c7dd80..5c0dc9e43c 100644
--- a/var/spack/repos/builtin/packages/ltp/package.py
+++ b/var/spack/repos/builtin/packages/ltp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ltr-retriever/package.py b/var/spack/repos/builtin/packages/ltr-retriever/package.py
index 2cc7f0a231..a914008a51 100644
--- a/var/spack/repos/builtin/packages/ltr-retriever/package.py
+++ b/var/spack/repos/builtin/packages/ltr-retriever/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 symlink
+from spack import *
+
class LtrRetriever(Package):
"""LTR_retriever is a highly accurate and sensitive program for
diff --git a/var/spack/repos/builtin/packages/ltrace/package.py b/var/spack/repos/builtin/packages/ltrace/package.py
index 9e0b72804f..3b269d3350 100644
--- a/var/spack/repos/builtin/packages/ltrace/package.py
+++ b/var/spack/repos/builtin/packages/ltrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lua-bitlib/package.py b/var/spack/repos/builtin/packages/lua-bitlib/package.py
index dec5e59f58..3c31271fda 100644
--- a/var/spack/repos/builtin/packages/lua-bitlib/package.py
+++ b/var/spack/repos/builtin/packages/lua-bitlib/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class LuaBitlib(Package):
"""Lua-jit-like bitwise operations for lua"""
diff --git a/var/spack/repos/builtin/packages/lua-lpeg/package.py b/var/spack/repos/builtin/packages/lua-lpeg/package.py
index caf9f05ac3..0f58195ca4 100644
--- a/var/spack/repos/builtin/packages/lua-lpeg/package.py
+++ b/var/spack/repos/builtin/packages/lua-lpeg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lua-luafilesystem/package.py b/var/spack/repos/builtin/packages/lua-luafilesystem/package.py
index 7e526d6e7c..c4282416e6 100644
--- a/var/spack/repos/builtin/packages/lua-luafilesystem/package.py
+++ b/var/spack/repos/builtin/packages/lua-luafilesystem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lua-luajit/package.py b/var/spack/repos/builtin/packages/lua-luajit/package.py
index 61d77c5662..958ea77e10 100644
--- a/var/spack/repos/builtin/packages/lua-luajit/package.py
+++ b/var/spack/repos/builtin/packages/lua-luajit/package.py
@@ -1,16 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import glob
import os
+
from spack import *
class LuaLuajit(MakefilePackage):
"""Flast flexible JITed lua"""
- homepage = "http://www.luajit.org"
- url = "http://luajit.org/download/LuaJIT-2.0.5.tar.gz"
+ homepage = "https://www.luajit.org"
+ url = "https://luajit.org/download/LuaJIT-2.0.5.tar.gz"
version('2.1.0-beta3', sha256='1ad2e34b111c802f9d0cdf019e986909123237a28c746b21295b63c9e785d9c3')
version('2.0.5', sha256='874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979', preferred=True)
@@ -18,6 +20,34 @@ class LuaLuajit(MakefilePackage):
conflicts('@:2.0.5', when='target=aarch64:')
+ variant('lualinks', default=False, description="add symlinks to make lua-luajit a drop-in lua replacement")
+
+ provides("lua-lang", when="+lualinks")
+
+ @run_after("install")
+ def install_links(self):
+ if not self.spec.satisfies("+lualinks"):
+ return
+
+ with working_dir(self.prefix.bin):
+ luajit = os.readlink(self.prefix.bin.luajit)
+ symlink(luajit, "lua")
+
+ with working_dir(self.prefix.include):
+ luajit_include_subdirs = glob.glob(
+ os.path.join(self.prefix.include, "luajit*"))
+ assert len(luajit_include_subdirs) == 1
+ symlink(luajit_include_subdirs[0], "lua")
+
+ with working_dir(self.prefix.lib):
+ luajit_libnames = glob.glob(
+ os.path.join(self.prefix.lib, "libluajit*.so*"))
+ real_lib = next(
+ lib for lib in luajit_libnames
+ if os.path.isfile(lib) and not os.path.islink(lib)
+ )
+ symlink(real_lib, "liblua.so")
+
@property
def headers(self):
hdrs = find_headers('luajit', self.prefix.include, recursive=True)
diff --git a/var/spack/repos/builtin/packages/lua-luaposix/package.py b/var/spack/repos/builtin/packages/lua-luaposix/package.py
index f5290eae1c..12a465a11b 100644
--- a/var/spack/repos/builtin/packages/lua-luaposix/package.py
+++ b/var/spack/repos/builtin/packages/lua-luaposix/package.py
@@ -1,17 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+from spack import *
+
class LuaLuaposix(Package):
"""Lua posix bindings, including ncurses"""
homepage = "https://github.com/luaposix/luaposix/"
url = "https://github.com/luaposix/luaposix/archive/release-v33.4.0.tar.gz"
+ version('35.0', sha256='a4edf2f715feff65acb009e8d1689e57ec665eb79bc36a6649fae55eafd56809',
+ url='https://github.com/luaposix/luaposix/archive/refs/tags/v35.0.tar.gz')
version('33.4.0', sha256='e66262f5b7fe1c32c65f17a5ef5ffb31c4d1877019b4870a5d373e2ab6526a21')
version('33.2.1', sha256='4fb34dfea67f4cf3194cdecc6614c9aea67edc3c4093d34137669ea869c358e1')
diff --git a/var/spack/repos/builtin/packages/lua-mpack/package.py b/var/spack/repos/builtin/packages/lua-mpack/package.py
index c03b6418ba..4b8ec544a9 100644
--- a/var/spack/repos/builtin/packages/lua-mpack/package.py
+++ b/var/spack/repos/builtin/packages/lua-mpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lua-sol2/package.py b/var/spack/repos/builtin/packages/lua-sol2/package.py
new file mode 100644
index 0000000000..96678debf2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lua-sol2/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 LuaSol2(CMakePackage):
+ """sol2 is a C++ library binding to Lua."""
+
+ homepage = "https://github.com/ThePhD/sol2"
+ url = "https://github.com/ThePhD/sol2/archive/refs/tags/v3.2.2.tar.gz"
+ git = "https://github.com/ThePhD/sol2.git"
+
+ version('develop', branch='develop')
+ version('3.2.3', sha256='f74158f92996f476786be9c9e83f8275129bb1da2a8d517d050421ac160a4b9e')
+ version('3.2.2', sha256='141790dae0c1821dd2dbac3595433de49ba72545845efc3ec7d88de8b0a3b2da')
+ version('3.2.1', sha256='b10f88dc1246f74a10348faef7d2c06e2784693307df74dcd87c4641cf6a6828')
+ version('3.2.0', sha256='733f03d82df6e0e8a15967831840d240dcb2c606982bec753bd173a9cc1b3435')
+ version('3.0.3', sha256='bf089e50387edfc70063e24fd7fbb693cceba4a50147d864fabedd1b33483582')
+ version('3.0.2', sha256='3f5f369eae6732ae9a315fe4370bbdc9900d2f2f4f291206aeb5b2d5533f0c99')
+
+ # Lua is not needed when building, since sol2 is headers-only
+ depends_on('lua', type=('link', 'run'))
+
+ def cmake_args(self):
+ args = ['-DSOL2_ENABLE_INSTALL=ON']
+ return args
diff --git a/var/spack/repos/builtin/packages/lua/package.py b/var/spack/repos/builtin/packages/lua/package.py
index f752fbee32..c3b021d96f 100644
--- a/var/spack/repos/builtin/packages/lua/package.py
+++ b/var/spack/repos/builtin/packages/lua/package.py
@@ -1,17 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from llnl.util.filesystem import join_path
+
+from spack import *
+
class Lua(Package):
"""The Lua programming language interpreter and library."""
- homepage = "http://www.lua.org"
- url = "http://www.lua.org/ftp/lua-5.3.4.tar.gz"
+ homepage = "https://www.lua.org"
+ url = "https://www.lua.org/ftp/lua-5.3.4.tar.gz"
version('5.3.5', sha256='0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac')
version('5.3.4', sha256='f681aa518233bc407e23acf0f5887c884f17436f000d453b2491a9f11a52400c')
@@ -27,16 +30,25 @@ class Lua(Package):
version('5.1.4', sha256='b038e225eaf2a5b57c9bcc35cd13aa8c6c8288ef493d52970c9545074098af3a')
version('5.1.3', sha256='6b5df2edaa5e02bf1a2d85e1442b2e329493b30b0c0780f77199d24f087d296d')
+ variant("pcfile", default=False, description="Add patch for lua.pc generation")
variant('shared', default=True,
description='Builds a shared version of the library')
extendable = True
+ provides('lua-lang')
+
depends_on('ncurses+termlib')
depends_on('readline')
# luarocks needs unzip for some packages (e.g. lua-luaposix)
depends_on('unzip', type='run')
+ patch(
+ "http://lua.2524044.n2.nabble.com/attachment/7666421/0/pkg-config.patch",
+ sha256="208316c2564bdd5343fa522f3b230d84bd164058957059838df7df56876cb4ae",
+ when="+pcfile"
+ )
+
resource(
name="luarocks",
url="https://keplerproject.github.io/luarocks/releases/"
@@ -166,6 +178,12 @@ class Lua(Package):
os.path.join(self.spec.prefix, self.lua_lib_dir, '?.so'),
separator=';')
+ @run_after('install')
+ def link_pkg_config(self):
+ if "+pcfile" in self.spec:
+ symlink(join_path(self.prefix.lib, 'pkgconfig', 'lua5.3.pc'),
+ join_path(self.prefix.lib, 'pkgconfig', 'lua.pc'))
+
@property
def lua_lib_dir(self):
return os.path.join('lib', 'lua', str(self.version.up_to(2)))
diff --git a/var/spack/repos/builtin/packages/lucene/package.py b/var/spack/repos/builtin/packages/lucene/package.py
index 692a681337..c34c15f315 100644
--- a/var/spack/repos/builtin/packages/lucene/package.py
+++ b/var/spack/repos/builtin/packages/lucene/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class Lucene(Package):
"""
homepage = "https://lucene.apache.org/"
- url = "http://archive.apache.org/dist/lucene/java/8.3.1/lucene-8.3.1.tgz"
- list_url = "http://archive.apache.org/dist/lucene/java/"
+ url = "https://archive.apache.org/dist/lucene/java/8.3.1/lucene-8.3.1.tgz"
+ list_url = "https://archive.apache.org/dist/lucene/java/"
list_depth = 1
version('8.3.1', sha256='acd61ad458d16f3c98b9dd4653c6a34dd666a965842e461f7cdf8947fa041e1a')
diff --git a/var/spack/repos/builtin/packages/luit/package.py b/var/spack/repos/builtin/packages/luit/package.py
index 232111e4bf..65f9bd6179 100644
--- a/var/spack/repos/builtin/packages/luit/package.py
+++ b/var/spack/repos/builtin/packages/luit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Luit(AutotoolsPackage, XorgPackage):
output from the locale's encoding into UTF-8, and convert terminal
input from UTF-8 into the locale's encoding."""
- homepage = "http://cgit.freedesktop.org/xorg/app/luit"
+ homepage = "https://cgit.freedesktop.org/xorg/app/luit"
xorg_mirror_path = "app/luit-1.1.1.tar.gz"
version('1.1.1', sha256='87b0be0bd01f3b857a53e6625bdd31cef18418c95394b7f4387f8ecef78e45da')
@@ -23,6 +23,6 @@ class Luit(AutotoolsPackage, XorgPackage):
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
- # see http://www.linuxquestions.org/questions/linux-from-scratch-13/can't-compile-luit-xorg-applications-4175476308/ # noqa
+ # see https://www.linuxquestions.org/questions/linux-from-scratch-13/can't-compile-luit-xorg-applications-4175476308/ # noqa
def configure_args(self):
return ['CFLAGS=-U_XOPEN_SOURCE -D_XOPEN_SOURCE=600']
diff --git a/var/spack/repos/builtin/packages/lulesh/package.py b/var/spack/repos/builtin/packages/lulesh/package.py
index 26772b6bcb..e52daa0f59 100644
--- a/var/spack/repos/builtin/packages/lulesh/package.py
+++ b/var/spack/repos/builtin/packages/lulesh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lumpy-sv/package.py b/var/spack/repos/builtin/packages/lumpy-sv/package.py
index ded7a89e2c..876241d77a 100644
--- a/var/spack/repos/builtin/packages/lumpy-sv/package.py
+++ b/var/spack/repos/builtin/packages/lumpy-sv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lustre/package.py b/var/spack/repos/builtin/packages/lustre/package.py
index fa7cb18704..c601798597 100644
--- a/var/spack/repos/builtin/packages/lustre/package.py
+++ b/var/spack/repos/builtin/packages/lustre/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 re
+from spack import *
+
class Lustre(Package):
"""Lustre is a type of parallel distributed file system,
diff --git a/var/spack/repos/builtin/packages/lvarray/package.py b/var/spack/repos/builtin/packages/lvarray/package.py
index 366b562cc6..5a62ca6f86 100644
--- a/var/spack/repos/builtin/packages/lvarray/package.py
+++ b/var/spack/repos/builtin/packages/lvarray/package.py
@@ -1,17 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 warnings
-
-import socket
import os
-
+import socket
+import warnings
from os import environ as env
from os.path import join as pjoin
+from spack import *
+
def cmake_cache_entry(name, value, comment=""):
"""Generate a string for a cmake cache variable"""
@@ -38,14 +37,19 @@ class Lvarray(CMakePackage, CudaPackage):
homepage = "https://github.com/GEOSX/lvarray"
git = "https://github.com/GEOSX/LvArray.git"
- version('develop', branch='develop', submodules='True')
- version('main', branch='main', submodules='True')
- version('0.1.0', tag='v0.1.0', submodules='True')
+ maintainers = ['corbett5']
+
+ version('develop', branch='develop', submodules=False)
+ version('main', branch='main', submodules=False)
+ version('0.2.2', tag='v0.2.2', submodules=False)
+ version('0.2.1', tag='v0.2.1', submodules=False)
+ version('0.1.0', tag='v0.1.0', submodules=True)
variant('shared', default=True, description='Build Shared Libs')
variant('umpire', default=False, description='Build Umpire support')
variant('chai', default=False, description='Build Chai support')
variant('caliper', default=False, description='Build Caliper support')
+ variant('pylvarray', default=False, description='Build Python support')
variant('tests', default=True, description='Build tests')
variant('benchmarks', default=False, description='Build benchmarks')
variant('examples', default=False, description='Build examples')
@@ -53,20 +57,27 @@ class Lvarray(CMakePackage, CudaPackage):
variant('addr2line', default=True,
description='Build support for addr2line.')
- depends_on('cmake@3.8:', type='build')
- depends_on('cmake@3.9:', when='+cuda', type='build')
+ depends_on('blt', when='@0.2.0:', type='build')
+
+ depends_on('camp')
+ depends_on('camp+cuda', when='+cuda')
depends_on('raja')
depends_on('raja+cuda', when='+cuda')
+ # At the moment Umpire doesn't support shared when building with CUDA.
depends_on('umpire', when='+umpire')
- depends_on('umpire+cuda', when='+umpire+cuda')
+ depends_on('umpire+cuda~shared', when='+umpire+cuda')
depends_on('chai+raja', when='+chai')
depends_on('chai+raja+cuda', when='+chai+cuda')
depends_on('caliper', when='+caliper')
+ depends_on('python +shared +pic', type=('build', 'link', 'run'), when='+pylvarray')
+ depends_on('py-numpy@1.19:', type=('build', 'link', 'run'), when='+pylvarray')
+ depends_on('py-scipy@1.5.2:', type=('build', 'run'), when='+pylvarray')
+
depends_on('doxygen@1.8.13:', when='+docs', type='build')
depends_on('py-sphinx@1.6.3:', when='+docs', type='build')
@@ -112,16 +123,13 @@ class Lvarray(CMakePackage, CudaPackage):
"""
This method creates a 'host-config' file that specifies
all of the options used to configure and build Umpire.
-
For more details about 'host-config' files see:
http://software.llnl.gov/conduit/building.html
-
Note:
The `py_site_pkgs_dir` arg exists to allow a package that
subclasses this package provide a specific site packages
dir when calling this function. `py_site_pkgs_dir` should
be an absolute path or `None`.
-
This is necessary because the spack `site_packages_dir`
var will not exist in the base class. For more details
on this issue see: https://github.com/spack/spack/issues/6261
@@ -149,153 +157,180 @@ class Lvarray(CMakePackage, CudaPackage):
cmake_exe = os.path.realpath(cmake_exe)
host_config_path = self._get_host_config_path(spec)
- cfg = open(host_config_path, "w")
- cfg.write("#{0}\n".format("#" * 80))
- cfg.write("# Generated host-config - Edit at own risk!\n")
- cfg.write("#{0}\n".format("#" * 80))
-
- cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# SYS_TYPE: {0}\n".format(sys_type))
- cfg.write("# Compiler Spec: {0}\n".format(spec.compiler))
- cfg.write("# CMake executable path: %s\n" % cmake_exe)
- cfg.write("#{0}\n\n".format("-" * 80))
+ with open(host_config_path, "w") as cfg:
+ cfg.write("#{0}\n".format("#" * 80))
+ cfg.write("# Generated host-config - Edit at own risk!\n")
+ cfg.write("#{0}\n".format("#" * 80))
- #######################
- # Compiler Settings
- #######################
-
- cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# Compilers\n")
- cfg.write("#{0}\n\n".format("-" * 80))
- cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler))
- cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
-
- # use global spack compiler flags
- cflags = ' '.join(spec.compiler_flags['cflags'])
- if cflags:
- cfg.write(cmake_cache_entry("CMAKE_C_FLAGS", cflags))
-
- cxxflags = ' '.join(spec.compiler_flags['cxxflags'])
- if cxxflags:
- cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags))
-
- release_flags = "-O3 -DNDEBUG"
- cfg.write(cmake_cache_string("CMAKE_CXX_FLAGS_RELEASE",
- release_flags))
- reldebinf_flags = "-O3 -g -DNDEBUG"
- cfg.write(cmake_cache_string("CMAKE_CXX_FLAGS_RELWITHDEBINFO",
- reldebinf_flags))
- debug_flags = "-O0 -g"
- cfg.write(cmake_cache_string("CMAKE_CXX_FLAGS_DEBUG", debug_flags))
-
- if "+cuda" in spec:
cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# Cuda\n")
+ cfg.write("# SYS_TYPE: {0}\n".format(sys_type))
+ cfg.write("# Compiler Spec: {0}\n".format(spec.compiler))
+ cfg.write("# CMake executable path: %s\n" % cmake_exe)
cfg.write("#{0}\n\n".format("-" * 80))
- cfg.write(cmake_cache_option("ENABLE_CUDA", True))
- cfg.write(cmake_cache_entry("CMAKE_CUDA_STANDARD", 14))
+ if 'blt' in spec:
+ cfg.write(cmake_cache_entry('BLT_SOURCE_DIR', spec['blt'].prefix))
- cudatoolkitdir = spec['cuda'].prefix
- cfg.write(cmake_cache_entry("CUDA_TOOLKIT_ROOT_DIR",
- cudatoolkitdir))
- cudacompiler = "${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc"
- cfg.write(cmake_cache_entry("CMAKE_CUDA_COMPILER", cudacompiler))
+ #######################
+ # Compiler Settings
+ #######################
- cmake_cuda_flags = ('-restrict --expt-extended-lambda -Werror '
- 'cross-execution-space-call,reorder,'
- 'deprecated-declarations')
-
- archSpecifiers = ("-mtune", "-mcpu", "-march", "-qtune", "-qarch")
- for archSpecifier in archSpecifiers:
- for compilerArg in spec.compiler_flags['cxxflags']:
- if compilerArg.startswith(archSpecifier):
- cmake_cuda_flags += ' -Xcompiler ' + compilerArg
+ cfg.write("#{0}\n".format("-" * 80))
+ cfg.write("# Compilers\n")
+ cfg.write("#{0}\n\n".format("-" * 80))
+ cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler))
+ cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
+
+ # use global spack compiler flags
+ cflags = ' '.join(spec.compiler_flags['cflags'])
+ cxxflags = ' '.join(spec.compiler_flags['cxxflags'])
+
+ if "%intel" in spec:
+ cflags += ' -qoverride-limits'
+ cxxflags += ' -qoverride-limits'
+
+ if cflags:
+ cfg.write(cmake_cache_entry("CMAKE_C_FLAGS", cflags))
+
+ if cxxflags:
+ cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags))
+
+ release_flags = "-O3 -DNDEBUG"
+ cfg.write(cmake_cache_string("CMAKE_CXX_FLAGS_RELEASE",
+ release_flags))
+ reldebinf_flags = "-O3 -g -DNDEBUG"
+ cfg.write(cmake_cache_string("CMAKE_CXX_FLAGS_RELWITHDEBINFO",
+ reldebinf_flags))
+ debug_flags = "-O0 -g"
+ cfg.write(cmake_cache_string("CMAKE_CXX_FLAGS_DEBUG", debug_flags))
+
+ if "%clang arch=linux-rhel7-ppc64le" in spec:
+ cfg.write(cmake_cache_entry("CMAKE_EXE_LINKER_FLAGS",
+ "-Wl,--no-toc-optimize"))
+
+ if "+cuda" in spec:
+ cfg.write("#{0}\n".format("-" * 80))
+ cfg.write("# Cuda\n")
+ cfg.write("#{0}\n\n".format("-" * 80))
+
+ cfg.write(cmake_cache_option("ENABLE_CUDA", True))
+ cfg.write(cmake_cache_entry("CMAKE_CUDA_STANDARD", 14))
+
+ cudatoolkitdir = spec['cuda'].prefix
+ cfg.write(cmake_cache_entry("CUDA_TOOLKIT_ROOT_DIR",
+ cudatoolkitdir))
+ cudacompiler = "${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc"
+ cfg.write(cmake_cache_entry("CMAKE_CUDA_COMPILER", cudacompiler))
+
+ cmake_cuda_flags = ('-restrict --expt-extended-lambda -Werror '
+ 'cross-execution-space-call,reorder,'
+ 'deprecated-declarations')
+
+ archSpecifiers = ("-mtune", "-mcpu", "-march", "-qtune", "-qarch")
+ for archSpecifier in archSpecifiers:
+ for compilerArg in spec.compiler_flags['cxxflags']:
+ if compilerArg.startswith(archSpecifier):
+ cmake_cuda_flags += ' -Xcompiler ' + compilerArg
+
+ if not spec.satisfies('cuda_arch=none'):
+ cuda_arch = spec.variants['cuda_arch'].value
+ cmake_cuda_flags += ' -arch sm_{0}'.format(cuda_arch[0])
+
+ cfg.write(cmake_cache_string("CMAKE_CUDA_FLAGS", cmake_cuda_flags))
+
+ cfg.write(cmake_cache_string("CMAKE_CUDA_FLAGS_RELEASE",
+ "-O3 -Xcompiler -O3 -DNDEBUG"))
+ cfg.write(cmake_cache_string("CMAKE_CUDA_FLAGS_RELWITHDEBINFO",
+ "-O3 -g -lineinfo -Xcompiler -O3"))
+ cfg.write(cmake_cache_string("CMAKE_CUDA_FLAGS_DEBUG",
+ "-O0 -Xcompiler -O0 -g -G"))
+
+ else:
+ cfg.write(cmake_cache_option("ENABLE_CUDA", False))
- if not spec.satisfies('cuda_arch=none'):
- cuda_arch = spec.variants['cuda_arch'].value
- cmake_cuda_flags += ' -arch sm_{0}'.format(cuda_arch[0])
+ cfg.write("#{0}\n".format("-" * 80))
+ cfg.write("# CAMP\n")
+ cfg.write("#{0}\n\n".format("-" * 80))
- cfg.write(cmake_cache_string("CMAKE_CUDA_FLAGS", cmake_cuda_flags))
+ cfg.write(cmake_cache_entry("CAMP_DIR", spec['camp'].prefix))
- cfg.write(cmake_cache_string("CMAKE_CUDA_FLAGS_RELEASE",
- "-O3 -Xcompiler -O3 -DNDEBUG"))
- cfg.write(cmake_cache_string("CMAKE_CUDA_FLAGS_RELWITHDEBINFO",
- "-O3 -g -lineinfo -Xcompiler -O3"))
- cfg.write(cmake_cache_string("CMAKE_CUDA_FLAGS_DEBUG",
- "-O0 -Xcompiler -O0 -g -G"))
+ cfg.write("#{0}\n".format("-" * 80))
+ cfg.write("# RAJA\n")
+ cfg.write("#{0}\n\n".format("-" * 80))
- else:
- cfg.write(cmake_cache_option("ENABLE_CUDA", False))
+ cfg.write(cmake_cache_entry("RAJA_DIR", spec['raja'].prefix))
- cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# RAJA\n")
- cfg.write("#{0}\n\n".format("-" * 80))
+ cfg.write("#{0}\n".format("-" * 80))
+ cfg.write("# Umpire\n")
+ cfg.write("#{0}\n\n".format("-" * 80))
- raja_dir = spec['raja'].prefix
- cfg.write(cmake_cache_entry("RAJA_DIR", raja_dir))
+ if "+umpire" in spec:
+ cfg.write(cmake_cache_option("ENABLE_UMPIRE", True))
+ cfg.write(cmake_cache_entry("UMPIRE_DIR", spec['umpire'].prefix))
+ else:
+ cfg.write(cmake_cache_option("ENABLE_UMPIRE", False))
- cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# Umpire\n")
- cfg.write("#{0}\n\n".format("-" * 80))
+ cfg.write("#{0}\n".format("-" * 80))
+ cfg.write("# CHAI\n")
+ cfg.write("#{0}\n\n".format("-" * 80))
- if "+umpire" in spec:
- cfg.write(cmake_cache_option("ENABLE_UMPIRE", True))
- umpire_dir = spec['umpire'].prefix
- cfg.write(cmake_cache_entry("UMPIRE_DIR", umpire_dir))
- else:
- cfg.write(cmake_cache_option("ENABLE_UMPIRE", False))
+ if "+chai" in spec:
+ cfg.write(cmake_cache_option("ENABLE_CHAI", True))
+ cfg.write(cmake_cache_entry("CHAI_DIR", spec['chai'].prefix))
+ else:
+ cfg.write(cmake_cache_option("ENABLE_CHAI", False))
- cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# CHAI\n")
- cfg.write("#{0}\n\n".format("-" * 80))
+ cfg.write("#{0}\n".format("-" * 80))
+ cfg.write("# Caliper\n")
+ cfg.write("#{0}\n\n".format("-" * 80))
- if "+chai" in spec:
- cfg.write(cmake_cache_option("ENABLE_CHAI", True))
- chai_dir = spec['chai'].prefix
- cfg.write(cmake_cache_entry("CHAI_DIR", chai_dir))
- else:
- cfg.write(cmake_cache_option("ENABLE_CHAI", False))
+ if "+caliper" in spec:
+ cfg.write("#{0}\n".format("-" * 80))
+ cfg.write("# Caliper\n")
+ cfg.write("#{0}\n\n".format("-" * 80))
+
+ cfg.write(cmake_cache_option("ENABLE_CALIPER", True))
+ cfg.write(cmake_cache_entry("CALIPER_DIR", spec['caliper'].prefix))
+ else:
+ cfg.write(cmake_cache_option("ENABLE_CALIPER", False))
+
+ cfg.write('#{0}\n'.format('-' * 80))
+ cfg.write('# Python\n')
+ cfg.write('#{0}\n\n'.format('-' * 80))
+ if '+pylvarray' in spec:
+ cfg.write(cmake_cache_option('ENABLE_PYLVARRAY', True))
+ python_exe = os.path.join(spec['python'].prefix.bin, 'python3')
+ cfg.write(cmake_cache_entry('Python3_EXECUTABLE', python_exe))
+ else:
+ cfg.write(cmake_cache_option('ENABLE_PYLVARRAY', False))
- cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# Caliper\n")
- cfg.write("#{0}\n\n".format("-" * 80))
+ cfg.write("#{0}\n".format("-" * 80))
+ cfg.write("# Documentation\n")
+ cfg.write("#{0}\n\n".format("-" * 80))
+ if "+docs" in spec:
+ cfg.write(cmake_cache_option("ENABLE_DOCS", True))
+ sphinx_dir = spec['py-sphinx'].prefix
+ cfg.write(cmake_cache_string('SPHINX_EXECUTABLE',
+ os.path.join(sphinx_dir,
+ 'bin',
+ 'sphinx-build')))
+
+ doxygen_dir = spec['doxygen'].prefix
+ cfg.write(cmake_cache_string('DOXYGEN_EXECUTABLE',
+ os.path.join(doxygen_dir,
+ 'bin',
+ 'doxygen')))
+ else:
+ cfg.write(cmake_cache_option("ENABLE_DOCS", False))
- if "+caliper" in spec:
cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# Caliper\n")
+ cfg.write("# addr2line\n")
cfg.write("#{0}\n\n".format("-" * 80))
+ cfg.write(cmake_cache_option('ENABLE_ADDR2LINE', '+addr2line' in spec))
- cfg.write(cmake_cache_option("ENABLE_CALIPER", True))
- caliper_dir = spec['caliper'].prefix
- cfg.write(cmake_cache_entry("CALIPER_DIR", caliper_dir))
- else:
- cfg.write(cmake_cache_option("ENABLE_CALIPER", False))
-
- cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# Documentation\n")
- cfg.write("#{0}\n\n".format("-" * 80))
- if "+docs" in spec:
- sphinx_dir = spec['py-sphinx'].prefix
- cfg.write(cmake_cache_string('SPHINX_EXECUTABLE',
- os.path.join(sphinx_dir,
- 'bin',
- 'sphinx-build')))
-
- doxygen_dir = spec['doxygen'].prefix
- cfg.write(cmake_cache_string('DOXYGEN_EXECUTABLE',
- os.path.join(doxygen_dir,
- 'bin',
- 'doxygen')))
-
- cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# addr2line\n")
- cfg.write("#{0}\n\n".format("-" * 80))
- cfg.write(cmake_cache_option('ENABLE_ADDR2LINE', '+addr2line' in spec))
-
- cfg.write("#{0}\n".format("-" * 80))
- cfg.write("# Other\n")
- cfg.write("#{0}\n\n".format("-" * 80))
+ cfg.write("#{0}\n".format("-" * 80))
+ cfg.write("# Other\n")
+ cfg.write("#{0}\n\n".format("-" * 80))
def cmake_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/lvm2/package.py b/var/spack/repos/builtin/packages/lvm2/package.py
index 23142fce26..64d1f43f4b 100644
--- a/var/spack/repos/builtin/packages/lvm2/package.py
+++ b/var/spack/repos/builtin/packages/lvm2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lwgrp/package.py b/var/spack/repos/builtin/packages/lwgrp/package.py
index df13c4674a..f949e37bfd 100644
--- a/var/spack/repos/builtin/packages/lwgrp/package.py
+++ b/var/spack/repos/builtin/packages/lwgrp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lwm2/package.py b/var/spack/repos/builtin/packages/lwm2/package.py
index 023c2ef771..1f3df1f457 100644
--- a/var/spack/repos/builtin/packages/lwm2/package.py
+++ b/var/spack/repos/builtin/packages/lwm2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lxc/package.py b/var/spack/repos/builtin/packages/lxc/package.py
index 0555b6b642..62f40a85db 100644
--- a/var/spack/repos/builtin/packages/lxc/package.py
+++ b/var/spack/repos/builtin/packages/lxc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -31,3 +31,9 @@ class Lxc(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+
+ def configure_args(self):
+ args = ["bashcompdir=" +
+ join_path(self.spec['lxc'].prefix, 'share',
+ 'bash-completion', 'completions')]
+ return args
diff --git a/var/spack/repos/builtin/packages/lynx/package.py b/var/spack/repos/builtin/packages/lynx/package.py
index 66c6f5408e..0028037124 100644
--- a/var/spack/repos/builtin/packages/lynx/package.py
+++ b/var/spack/repos/builtin/packages/lynx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/lz4/package.py b/var/spack/repos/builtin/packages/lz4/package.py
index 181117e0e2..88df78fdde 100644
--- a/var/spack/repos/builtin/packages/lz4/package.py
+++ b/var/spack/repos/builtin/packages/lz4/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Lz4(MakefilePackage):
"""LZ4 is lossless compression algorithm, providing compression speed
@@ -13,9 +14,10 @@ class Lz4(MakefilePackage):
an extremely fast decoder, with speed in multiple GB/s per core,
typically reaching RAM speed limits on multi-core systems."""
- homepage = "http://lz4.github.io/lz4/"
+ homepage = "https://lz4.github.io/lz4/"
url = "https://github.com/lz4/lz4/archive/v1.9.2.tar.gz"
+ version('1.9.3', sha256='030644df4611007ff7dc962d981f390361e6c97a34e5cbc393ddfbe019ffe2c1')
version('1.9.2', sha256='658ba6191fa44c92280d4aa2c271b0f4fbc0e34d249578dd05e50e76d0e5efcc')
version('1.9.0', sha256='f8b6d5662fa534bd61227d313535721ae41a68c9d84058b7b7d86e143572dcfb')
version('1.8.3', sha256='33af5936ac06536805f9745e0b6d61da606a1f8b4cc5c04dd3cbaca3b9b4fc43')
@@ -25,6 +27,9 @@ class Lz4(MakefilePackage):
depends_on('valgrind', type='test')
+ variant('libs', default='shared,static', values=('shared', 'static'),
+ multi=True, description='Build shared libs, static libs or both')
+
def url_for_version(self, version):
url = "https://github.com/lz4/lz4/archive"
@@ -46,11 +51,14 @@ class Lz4(MakefilePackage):
make(parallel=par)
def install(self, spec, prefix):
- make('install', 'PREFIX={0}'.format(prefix))
+ make('install',
+ 'PREFIX={0}'.format(prefix),
+ 'BUILD_SHARED={0}'.format('yes' if 'libs=shared' in self.spec else 'no'),
+ 'BUILD_STATIC={0}'.format('yes' if 'libs=static' in self.spec else 'no'))
def patch(self):
# Remove flags not recognized by the NVIDIA compiler
- if self.spec.satisfies('%nvhpc'):
+ if self.spec.satisfies('%nvhpc@:20.11'):
filter_file('-fvisibility=hidden', '', 'Makefile')
filter_file('-fvisibility=hidden', '', 'lib/Makefile')
filter_file('-pedantic', '', 'Makefile')
diff --git a/var/spack/repos/builtin/packages/lzma/package.py b/var/spack/repos/builtin/packages/lzma/package.py
index 1bea0dcb1b..3b30c6a2d2 100644
--- a/var/spack/repos/builtin/packages/lzma/package.py
+++ b/var/spack/repos/builtin/packages/lzma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class Lzma(AutotoolsPackage):
tools of LZMA Utils. This should make transition from LZMA Utils to XZ
Utils relatively easy."""
- homepage = "http://tukaani.org/lzma/"
- url = "http://tukaani.org/lzma/lzma-4.32.7.tar.gz"
+ homepage = "https://tukaani.org/lzma/"
+ url = "https://tukaani.org/lzma/lzma-4.32.7.tar.gz"
version('4.32.7', sha256='9f337a8c51e5ded198d1032f5087ba3fe438f2a54e9df419e513a151775b032c')
diff --git a/var/spack/repos/builtin/packages/lzo/package.py b/var/spack/repos/builtin/packages/lzo/package.py
index f5c12c6159..bb0b05b6b2 100644
--- a/var/spack/repos/builtin/packages/lzo/package.py
+++ b/var/spack/repos/builtin/packages/lzo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Lzo(AutotoolsPackage):
"""Real-time data compression library"""
homepage = 'https://www.oberhumer.com/opensource/lzo/'
- url = 'http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz'
+ url = 'https://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz'
version('2.10', sha256='c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072')
version('2.09', sha256='f294a7ced313063c057c504257f437c8335c41bfeed23531ee4e6a2b87bcb34c')
@@ -19,8 +19,10 @@ class Lzo(AutotoolsPackage):
version('2.06', sha256='ff79e6f836d62d3f86ef6ce893ed65d07e638ef4d3cb952963471b4234d43e73')
version('2.05', sha256='449f98186d76ba252cd17ff1241ca2a96b7f62e0d3e4766f88730dab0ea5f333')
+ variant('libs', default='shared,static', values=('shared', 'static'),
+ multi=True, description='Build shared libs, static libs or both')
+
def configure_args(self):
- return [
- '--disable-dependency-tracking',
- '--enable-shared'
- ]
+ args = ['--disable-dependency-tracking']
+ args += self.enable_or_disable('libs')
+ return args
diff --git a/var/spack/repos/builtin/packages/lzop/package.py b/var/spack/repos/builtin/packages/lzop/package.py
index 9a7096e01b..144fa4b967 100644
--- a/var/spack/repos/builtin/packages/lzop/package.py
+++ b/var/spack/repos/builtin/packages/lzop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/m4/nvhpc-1.4.19.patch b/var/spack/repos/builtin/packages/m4/nvhpc-1.4.19.patch
new file mode 100644
index 0000000000..ee9398b3bb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/m4/nvhpc-1.4.19.patch
@@ -0,0 +1,14 @@
+--- a/lib/intprops.h
++++ b/lib/intprops.h
+@@ -232,9 +232,9 @@
+ (A, B, P) work when P is non-null. */
+ /* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x,
+ see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98269>. */
+-#if 7 <= __GNUC__ && !defined __ICC
++#if 7 <= __GNUC__ && !defined __ICC && !defined __NVCOMPILER
+ # define _GL_HAS_BUILTIN_ADD_OVERFLOW 1
+-#elif defined __has_builtin
++#elif defined __has_builtin && !defined __NVCOMPILER
+ # define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow)
+ #else
+ # define _GL_HAS_BUILTIN_ADD_OVERFLOW 0
diff --git a/var/spack/repos/builtin/packages/m4/nvhpc-long-width.patch b/var/spack/repos/builtin/packages/m4/nvhpc-long-width.patch
new file mode 100644
index 0000000000..1dceb3a034
--- /dev/null
+++ b/var/spack/repos/builtin/packages/m4/nvhpc-long-width.patch
@@ -0,0 +1,17 @@
+--- a/lib/regex_internal.h
++++ b/lib/regex_internal.h
+@@ -39,6 +39,14 @@
+ #include <intprops.h>
+ #include <verify.h>
+
++#ifndef __LONG_WIDTH__
++#if LONG_WIDTH
++#define __LONG_WIDTH__ LONG_WIDTH
++#else
++#define __LONG_WIDTH__ __WORDSIZE
++#endif
++#endif
++
+ #if defined DEBUG && DEBUG != 0
+ # include <assert.h>
+ # define DEBUG_ASSERT(x) assert (x)
diff --git a/var/spack/repos/builtin/packages/m4/oneapi.patch b/var/spack/repos/builtin/packages/m4/oneapi.patch
new file mode 100644
index 0000000000..d659c1e75c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/m4/oneapi.patch
@@ -0,0 +1,18 @@
+--- a/lib/xalloc-oversized.h 2020-08-07 11:04:56.154698639 -0700
++++ b/lib/xalloc-oversized.h 2020-08-07 11:06:11.667997389 -0700
+@@ -46,13 +46,13 @@
+ positive and N must be nonnegative. This is a macro, not a
+ function, so that it works correctly even when SIZE_MAX < N. */
+
+-#if 7 <= __GNUC__ || __has_builtin (__builtin_add_overflow_p)
++#if ((7 <= __GNUC__ || __has_builtin (__builtin_add_overflow_p)) && !defined __INTEL_LLVM_COMPILER)
+ # define xalloc_oversized(n, s) \
+ __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1)
+ #elif ((5 <= __GNUC__ \
+ || (__has_builtin (__builtin_mul_overflow) \
+ && __has_builtin (__builtin_constant_p))) \
+- && !__STRICT_ANSI__)
++ && !__STRICT_ANSI__ && !defined __INTEL_LLVM_COMPILER)
+ # define xalloc_oversized(n, s) \
+ (__builtin_constant_p (n) && __builtin_constant_p (s) \
+ ? __xalloc_oversized (n, s) \
diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py
index b0d037b3f2..d15be408ac 100644
--- a/var/spack/repos/builtin/packages/m4/package.py
+++ b/var/spack/repos/builtin/packages/m4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,19 +12,33 @@ class M4(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/m4/m4.html"
gnu_mirror_path = "m4/m4-1.4.18.tar.gz"
+ version('1.4.19', sha256='3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70')
version('1.4.18', sha256='ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab')
version('1.4.17', sha256='3ce725133ee552b8b4baca7837fb772940b25e81b2a9dc92537aeaf733538c9e')
patch('gnulib-pgi.patch', when='@1.4.18')
patch('pgi.patch', when='@1.4.17')
- patch('nvhpc.patch', when='%nvhpc')
+ # The NVIDIA compilers do not currently support some GNU builtins.
+ # Detect this case and use the fallback path.
+ patch('nvhpc.patch', when='@1.4.18 %nvhpc')
+ patch('nvhpc-1.4.19.patch', when='@1.4.19 %nvhpc')
+ # Workaround bug where __LONG_WIDTH__ is not defined
+ patch('nvhpc-long-width.patch', when='@1.4.19 %nvhpc')
+ patch('oneapi.patch', when='@1.4.18 %oneapi')
# from: https://github.com/Homebrew/homebrew-core/blob/master/Formula/m4.rb
# Patch credit to Jeremy Huddleston Sequoia <jeremyhu@apple.com>
- patch('secure_snprintf.patch', when='os = highsierra')
- patch('secure_snprintf.patch', when='os = mojave')
- patch('secure_snprintf.patch', when='os = catalina')
+ patch('secure_snprintf.patch', when='@:1.4.18 os=highsierra')
+ patch('secure_snprintf.patch', when='@:1.4.18 os=mojave')
+ patch('secure_snprintf.patch', when='@:1.4.18 os=catalina')
+ patch('secure_snprintf.patch', when='@:1.4.18 os=bigsur')
# https://bugzilla.redhat.com/show_bug.cgi?id=1573342
patch('https://src.fedoraproject.org/rpms/m4/raw/5d147168d4b93f38a4833f5dd1d650ad88af5a8a/f/m4-1.4.18-glibc-change-work-around.patch', sha256='fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8', when='@1.4.18')
+ # from: https://www.mail-archive.com/m4-patches@gnu.org/msg01208.html
+ # tests: Fix failing test checks/198.sysval with upstream patch for doc/m4.texi
+ patch('http://git.savannah.gnu.org/cgit/m4.git/patch/?id=a1354086',
+ sha256='bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89', when='@1.4.19')
+ patch('http://git.savannah.gnu.org/cgit/m4.git/patch/?id=cd7f4d15',
+ sha256='9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573', when='@1.4.19')
variant('sigsegv', default=True,
description="Build the libsigsegv dependency")
@@ -33,8 +47,16 @@ class M4(AutotoolsPackage, GNUMirrorPackage):
build_directory = 'spack-build'
+ tags = ['build-tools']
+
executables = ['^g?m4$']
+ @when('@1.4.19')
+ def patch(self):
+ """ skip texinfo of m4.info for patched m4.texi (patched only a test in it) """
+ touch('doc/m4.info')
+ touch('doc/stamp-vti')
+
@classmethod
def determine_version(cls, exe):
# Output on macOS:
@@ -45,6 +67,15 @@ class M4(AutotoolsPackage, GNUMirrorPackage):
match = re.search(r'GNU M4\)?\s+(\S+)', output)
return match.group(1) if match else None
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ # Inform autom4te if it wasn't built correctly (some external
+ # installations such as homebrew). See
+ # https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/autom4te-Invocation.html
+ env.set('M4', self.prefix.bin.m4)
+
+ def setup_run_environment(self, env):
+ env.set('M4', self.prefix.bin.m4)
+
def configure_args(self):
spec = self.spec
args = ['--enable-c++']
@@ -67,7 +98,7 @@ class M4(AutotoolsPackage, GNUMirrorPackage):
else:
args.append('--without-libsigsegv-prefix')
- # http://lists.gnu.org/archive/html/bug-m4/2016-09/msg00002.html
+ # https://lists.gnu.org/archive/html/bug-m4/2016-09/msg00002.html
arch = spec.architecture
if (arch.platform == 'darwin' and arch.os == 'sierra' and
'%gcc' in spec):
diff --git a/var/spack/repos/builtin/packages/macfuse/package.py b/var/spack/repos/builtin/packages/macfuse/package.py
new file mode 100644
index 0000000000..8061e3dabe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/macfuse/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2021 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 Macfuse(Package):
+ """FUSE for macOS allows you to extend macOS via third party file systems."""
+
+ homepage = "https://osxfuse.github.io/"
+ git = "https://github.com/osxfuse/osxfuse.git"
+ has_code = False # only distributed in binary form
+
+ version('4.1.2')
+
+ provides('fuse')
+ conflicts('platform=linux', msg='macfuse does not support linux, use libfuse instead')
+ conflicts('platform=cray', msg='macfuse does not support cray, use libfuse instead')
+
+ def install(self, spec, prefix):
+ msg = """
+macFUSE is only distributed in binary form.
+To use macFUSE with Spack, manually download the .dmg from:
+
+ https://github.com/osxfuse/osxfuse/releases
+
+and double-click to install. Once macFUSE is installed,
+add it as an external package by running:
+
+ $ spack config edit packages
+
+and add an entry like so:
+
+ packages:
+ macfuse:
+ buildable: false
+ externals:
+ - spec: macfuse@4.1.2
+ prefix: /Library/Frameworks/macFUSE.framework"""
+
+ raise InstallError(msg)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ env.set('FUSE_LIBRARY_PATH', self.prefix.macFUSE)
diff --git a/var/spack/repos/builtin/packages/macsio/package.py b/var/spack/repos/builtin/packages/macsio/package.py
index 46dccab4be..427af43feb 100644
--- a/var/spack/repos/builtin/packages/macsio/package.py
+++ b/var/spack/repos/builtin/packages/macsio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -41,6 +41,8 @@ class Macsio(CMakePackage):
depends_on('silo', when="+pdb")
depends_on('typhonio', when="+typhonio")
depends_on('scr', when="+scr")
+ # macsio@1.1 has bug with ~mpi configuration
+ conflicts('~mpi', when='@1.1')
# Ref: https://github.com/LLNL/MACSio/commit/51b8c40cd9813adec5dd4dd6cee948bb9ddb7ee1
patch('cast.patch', when='@1.1')
diff --git a/var/spack/repos/builtin/packages/mad-numdiff/package.py b/var/spack/repos/builtin/packages/mad-numdiff/package.py
index 3eedcd3707..d4130aec17 100644
--- a/var/spack/repos/builtin/packages/mad-numdiff/package.py
+++ b/var/spack/repos/builtin/packages/mad-numdiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/madgraph5amc/package.py b/var/spack/repos/builtin/packages/madgraph5amc/package.py
index d0f29eb6c0..d4c8653bd6 100644
--- a/var/spack/repos/builtin/packages/madgraph5amc/package.py
+++ b/var/spack/repos/builtin/packages/madgraph5amc/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Madgraph5amc(Package):
"""MadGraph5_aMC@NLO is a framework that aims at providing
@@ -18,6 +19,8 @@ class Madgraph5amc(Package):
homepage = "https://launchpad.net/mg5amcnlo"
url = "https://launchpad.net/mg5amcnlo/2.0/2.7.x/+download/MG5_aMC_v2.7.3.tar.gz"
+ tags = ['hep']
+
version('2.8.1', sha256='acda34414beba201e529b8c03f87f4893fb3f99ed2956a131d60a387e76c5b8c',
url="https://launchpad.net/mg5amcnlo/2.0/2.8.x/+download/MG5_aMC_v2.8.1.tar.gz")
version('2.8.0', sha256='e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
@@ -26,7 +29,7 @@ class Madgraph5amc(Package):
version('2.7.3.py2', sha256='0b665356f4d9359e6e382e0f408dc11db594734567c6b2f0ec0e0697f2dbe099',
url="https://launchpad.net/mg5amcnlo/2.0/2.7.x/+download/MG5_aMC_v2.7.3.tar.gz")
- variant('atlas', default=False, description='Apply changes requested by ' +
+ variant('atlas', default=False, description='Apply changes requested by ' +
"the ATLAS experimenent on LHC")
variant('ninja', default=False, description='Use external installation' +
" of Ninja")
diff --git a/var/spack/repos/builtin/packages/mafft/package.py b/var/spack/repos/builtin/packages/mafft/package.py
index 4c8e061925..46b29ee7ed 100644
--- a/var/spack/repos/builtin/packages/mafft/package.py
+++ b/var/spack/repos/builtin/packages/mafft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,11 @@ class Mafft(Package):
methods, L-INS-i (accurate; for alignment of <~200 sequences),
FFT-NS-2 (fast; for alignment of <~30,000 sequences), etc."""
- homepage = "http://mafft.cbrc.jp/alignment/software/index.html"
- url = "http://mafft.cbrc.jp/alignment/software/mafft-7.221-with-extensions-src.tgz"
+ homepage = "https://mafft.cbrc.jp/alignment/software/index.html"
+ url = "https://mafft.cbrc.jp/alignment/software/mafft-7.221-with-extensions-src.tgz"
+ version('7.481', sha256='7397f1193048587a3d887e46a353418e67849f71729764e8195b218e3453dfa2')
+ version('7.475', sha256='bb6973ae089ea18cfbd3861a5b9d2c8b7e1543a1fdc78ac2d7cd8dbe3443f319')
version('7.453', sha256='8b2f0d6249c575f80cd51278ab45dd149b8ac9b159adac20fd1ddc7a6722af11')
version('7.407', sha256='1840b51a0b93f40b4d6076af996ee46396428d8dbaf7ba1d847abff9cb1463e5')
version('7.221', sha256='0bc78111966d9b00ddfa14fa217fa5bb0c593a558674a13f02dca7bcd51f7fcf')
@@ -23,3 +25,6 @@ class Mafft(Package):
with working_dir('core'):
make('PREFIX=%s' % prefix)
make('PREFIX=%s' % prefix, 'install')
+ with working_dir('extensions'):
+ make('PREFIX=%s' % prefix)
+ make('PREFIX=%s' % prefix, 'install')
diff --git a/var/spack/repos/builtin/packages/magics/package.py b/var/spack/repos/builtin/packages/magics/package.py
index 902ac0db13..19dd0cf940 100644
--- a/var/spack/repos/builtin/packages/magics/package.py
+++ b/var/spack/repos/builtin/packages/magics/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+from spack import *
+
class Magics(CMakePackage):
"""Magics is the latest generation of the ECMWF's Meteorological plotting
diff --git a/var/spack/repos/builtin/packages/magma/cmake-W.patch b/var/spack/repos/builtin/packages/magma/cmake-W.patch
new file mode 100644
index 0000000000..5917967632
--- /dev/null
+++ b/var/spack/repos/builtin/packages/magma/cmake-W.patch
@@ -0,0 +1,12 @@
+diff -ru magma-2.5.0-orig/CMakeLists.txt magma-2.5.0/CMakeLists.txt
+--- magma-2.5.0-orig/CMakeLists.txt 2019-01-02 11:18:39.000000000 -0800
++++ magma-2.5.0/CMakeLists.txt 2019-04-03 15:58:01.871234891 -0700
+@@ -363,8 +363,6 @@
+ else()
+ # Primarily for gcc / nvcc:
+ # Ignore unused static functions in headers.
+- set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unused-function" )
+- set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-function" )
+ endif()
+
+ if (CMAKE_HOST_APPLE)
diff --git a/var/spack/repos/builtin/packages/magma/package.py b/var/spack/repos/builtin/packages/magma/package.py
index 6ba69c51c1..346797bd3b 100644
--- a/var/spack/repos/builtin/packages/magma/package.py
+++ b/var/spack/repos/builtin/packages/magma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,22 @@
from spack import *
-class Magma(CMakePackage, CudaPackage):
+class Magma(CMakePackage, CudaPackage, ROCmPackage):
"""The MAGMA project aims to develop a dense linear algebra library similar
to LAPACK but for heterogeneous/hybrid architectures, starting with
current "Multicore+GPU" systems.
"""
- homepage = "http://icl.cs.utk.edu/magma/"
- url = "http://icl.cs.utk.edu/projectsfiles/magma/downloads/magma-2.2.0.tar.gz"
- maintainers = ['stomov', 'luszczek']
+ homepage = "https://icl.cs.utk.edu/magma/"
+ git = 'https://bitbucket.org/icl/magma'
+ url = "https://icl.cs.utk.edu/projectsfiles/magma/downloads/magma-2.2.0.tar.gz"
+ maintainers = ['stomov', 'luszczek', 'G-Ragghianti']
+ test_requires_compiler = True
+
+ version('master', branch='master')
+ version('2.6.1', sha256='6cd83808c6e8bc7a44028e05112b3ab4e579bcc73202ed14733f66661127e213')
+ version('2.6.0', sha256='50cdd384f44f06a34469e7125f8b2ffae13c1975d373c3f1510d91be2b7638ec')
version('2.5.4', sha256='7734fb417ae0c367b418dea15096aef2e278a423e527c615aab47f0683683b67')
version('2.5.3', sha256='c602d269a9f9a3df28f6a4f593be819abb12ed3fa413bba1ff8183de721c5ef6')
version('2.5.2', sha256='065feb85558f9dd6f4cc4db36ac633a3f787827fc832d0b578a049a43a195620')
@@ -31,15 +37,17 @@ class Magma(CMakePackage, CudaPackage):
variant('shared', default=True,
description='Enable shared library')
variant('cuda', default=True, description='Build with CUDA')
- variant('cuda_arch', default='none', multi=True,
- description='Specify CUDA architecture(s)')
depends_on('blas')
depends_on('lapack')
- depends_on('cuda@8:', when='@2.5.1:') # See PR #14471
-
- conflicts('~cuda', msg='Magma requires cuda')
- conflicts('cuda_arch=none',
+ depends_on('cuda@8:', when='@2.5.1: +cuda') # See PR #14471
+ depends_on('hipblas', when='+rocm')
+ depends_on('hipsparse', when='+rocm')
+
+ conflicts('~cuda', when='~rocm', msg='Either CUDA or HIP support must be enabled')
+ conflicts('+rocm', when='+cuda', msg='CUDA must be disabled to support HIP (ROCm)')
+ conflicts('+rocm', when='@:2.5.4', msg='HIP support starts in version 2.6.0')
+ conflicts('cuda_arch=none', when='+cuda',
msg='Please indicate a CUDA arch value or values')
# currently not compatible with CUDA-11
@@ -52,6 +60,23 @@ class Magma(CMakePackage, CudaPackage):
patch('magma-2.3.0-gcc-4.8.patch', when='@2.3.0%gcc@:4.8')
patch('magma-2.5.0.patch', when='@2.5.0')
patch('magma-2.5.0-cmake.patch', when='@2.5.0')
+ patch('cmake-W.patch', when='@2.5.0:%nvhpc')
+ patch('sm_37.patch', when='@2.5.4 cuda_arch=37')
+
+ @run_before('cmake')
+ def generate_cuda(self):
+ if '@master' in self.spec:
+ backend = 'cuda'
+ cuda_arch = self.spec.variants['cuda_arch'].value
+ gpu_target = ' '.join('sm_{0}'.format(i) for i in cuda_arch)
+ if '+rocm' in self.spec:
+ backend = 'hip'
+ gpu_target = self.spec.variants['amdgpu_target'].value
+ with open('make.inc', 'w') as inc:
+ inc.write('FORT = true\n')
+ inc.write('GPU_TARGET = %s\n' % gpu_target)
+ inc.write('BACKEND = %s\n' % backend)
+ make('generate')
def cmake_args(self):
spec = self.spec
@@ -71,6 +96,9 @@ class Magma(CMakePackage, CudaPackage):
options += ['-DBUILD_SHARED_LIBS=%s' %
('ON' if ('+shared' in spec) else 'OFF')]
+ if spec.satisfies('%cce'):
+ options += ['-DCUDA_NVCC_FLAGS=-allow-unsupported-compiler']
+
if '+fortran' in spec:
options.extend([
'-DUSE_FORTRAN=yes'
@@ -80,6 +108,9 @@ class Magma(CMakePackage, CudaPackage):
'-DCMAKE_Fortran_COMPILER=%s' % self.compiler.f77
])
+ if spec.satisfies('%cce'):
+ options.append('-DCMAKE_Fortran_FLAGS=-ef')
+
if spec.satisfies('^cuda'):
cuda_arch = self.spec.variants['cuda_arch'].value
if '@:2.2.0' in spec:
@@ -94,6 +125,15 @@ class Magma(CMakePackage, CudaPackage):
if spec.compiler.name in ['xl', 'xl_r']:
options.extend(['-DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=TRUE'])
+ if '+rocm' in spec:
+ options.extend(['-DMAGMA_ENABLE_HIP=ON'])
+ options.extend(['-DCMAKE_CXX_COMPILER=hipcc'])
+ # See https://github.com/ROCmSoftwarePlatform/rocFFT/issues/322
+ if spec.satisfies('^cmake@3.21:'):
+ options.extend(['-D__skip_rocmclang=ON'])
+ else:
+ options.extend(['-DMAGMA_ENABLE_CUDA=ON'])
+
return options
@run_after('install')
@@ -102,3 +142,31 @@ class Magma(CMakePackage, CudaPackage):
install('control/magma_threadsetting.h', self.prefix.include)
install('control/pthread_barrier.h', self.prefix.include)
install('control/magma_internal.h', self.prefix.include)
+
+ test_src_dir = 'example'
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.test_src_dir])
+
+ def test(self):
+ test_dir = join_path(self.install_test_root, self.test_src_dir)
+ with working_dir(test_dir, create=False):
+ pkg_config_path = '{0}/lib/pkgconfig'.format(self.prefix)
+ with spack.util.environment.set_env(PKG_CONFIG_PATH=pkg_config_path):
+ make('c')
+ self.run_test('./example_sparse',
+ purpose='MAGMA smoke test - sparse solver')
+ self.run_test('./example_sparse_operator',
+ purpose='MAGMA smoke test - sparse operator')
+ self.run_test('./example_v1',
+ purpose='MAGMA smoke test - legacy v1 interface')
+ self.run_test('./example_v2',
+ purpose='MAGMA smoke test - v2 interface')
+ if '+fortran' in self.spec:
+ make('fortran')
+ self.run_test('./example_f',
+ purpose='MAGMA smoke test - Fortran interface')
+ make('clean')
diff --git a/var/spack/repos/builtin/packages/magma/sm_37.patch b/var/spack/repos/builtin/packages/magma/sm_37.patch
new file mode 100644
index 0000000000..0d7eaf0dce
--- /dev/null
+++ b/var/spack/repos/builtin/packages/magma/sm_37.patch
@@ -0,0 +1,27 @@
+--- a/CMakeLists.txt 2021-06-19 15:53:21.028881552 +0000
++++ b/CMakeLists.txt 2021-06-19 15:54:09.204228276 +0000
+@@ -132,7 +132,7 @@
+ endif()
+
+ if (GPU_TARGET MATCHES Kepler)
+- set( GPU_TARGET "${GPU_TARGET} sm_30 sm_35" )
++ set( GPU_TARGET "${GPU_TARGET} sm_30 sm_35 sm_37" )
+ endif()
+
+ if (GPU_TARGET MATCHES Maxwell)
+@@ -182,6 +182,15 @@
+ message( STATUS " compile for CUDA arch 3.5 (Kepler)" )
+ endif()
+
++ if (GPU_TARGET MATCHES sm_37)
++ if (NOT MIN_ARCH)
++ set( MIN_ARCH 300 )
++ endif()
++ set( NV_SM ${NV_SM} -gencode arch=compute_37,code=sm_37 )
++ set( NV_COMP -gencode arch=compute_37,code=compute_37 )
++ message( STATUS " compile for CUDA arch 3.7 (Kepler)" )
++ endif()
++
+ if (GPU_TARGET MATCHES sm_50)
+ if (NOT MIN_ARCH)
+ set( MIN_ARCH 500 )
diff --git a/var/spack/repos/builtin/packages/mahout/package.py b/var/spack/repos/builtin/packages/mahout/package.py
index 62e63a2657..614f966598 100644
--- a/var/spack/repos/builtin/packages/mahout/package.py
+++ b/var/spack/repos/builtin/packages/mahout/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/makedepend/package.py b/var/spack/repos/builtin/packages/makedepend/package.py
index 96cca305d2..54592030bb 100644
--- a/var/spack/repos/builtin/packages/makedepend/package.py
+++ b/var/spack/repos/builtin/packages/makedepend/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,10 @@ from spack import *
class Makedepend(AutotoolsPackage, XorgPackage):
"""makedepend - create dependencies in makefiles."""
- homepage = "http://cgit.freedesktop.org/xorg/util/makedepend"
+ homepage = "https://cgit.freedesktop.org/xorg/util/makedepend"
xorg_mirror_path = "util/makedepend-1.0.5.tar.gz"
version('1.0.5', sha256='503903d41fb5badb73cb70d7b3740c8b30fe1cc68c504d3b6a85e6644c4e5004')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/maker/package.py b/var/spack/repos/builtin/packages/maker/package.py
index c481697041..1416e21916 100644
--- a/var/spack/repos/builtin/packages/maker/package.py
+++ b/var/spack/repos/builtin/packages/maker/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Maker(Package):
"""MAKER is a portable and easily configurable genome annotation pipeline.
@@ -28,11 +29,13 @@ class Maker(Package):
download link. Spack will search your current directory for the download
file. Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
- homepage = "http://www.yandell-lab.org/software/maker.html"
+ homepage = "https://www.yandell-lab.org/software/maker.html"
+ manual_download = True
- version('2.31.10', sha256='d3979af9710d61754a3b53f6682d0e2052c6c3f36be6f2df2286d2587406f07d')
+ version('3.01.03', sha256='d3979af9710d61754a3b53f6682d0e2052c6c3f36be6f2df2286d2587406f07d')
+ version('2.31.10', sha256='d3979af9710d61754a3b53f6682d0e2052c6c3f36be6f2df2286d2587406f07d')
def url_for_version(self, version):
return "file://{0}/maker-{1}.tgz".format(os.getcwd(), version)
diff --git a/var/spack/repos/builtin/packages/mallocmc/package.py b/var/spack/repos/builtin/packages/mallocmc/package.py
index 2dd30bea6b..1e76220039 100644
--- a/var/spack/repos/builtin/packages/mallocmc/package.py
+++ b/var/spack/repos/builtin/packages/mallocmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/maloc/package.py b/var/spack/repos/builtin/packages/maloc/package.py
index 058ce3f0c8..21d4053ed9 100644
--- a/var/spack/repos/builtin/packages/maloc/package.py
+++ b/var/spack/repos/builtin/packages/maloc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/man-db/package.py b/var/spack/repos/builtin/packages/man-db/package.py
index 18007cc9cd..91a222377b 100644
--- a/var/spack/repos/builtin/packages/man-db/package.py
+++ b/var/spack/repos/builtin/packages/man-db/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class ManDb(AutotoolsPackage):
a Berkeley DB database in place of the traditional
flat-text whatis databases."""
- homepage = "http://www.nongnu.org/man-db/"
- url = "http://git.savannah.nongnu.org/cgit/man-db.git/snapshot/man-db-2.7.6.1.tar.gz"
+ homepage = "https://www.nongnu.org/man-db/"
+ url = "https://git.savannah.nongnu.org/cgit/man-db.git/snapshot/man-db-2.7.6.1.tar.gz"
version('2.7.6.1', sha256='dd913662e341fc01e6721878b6cbe1001886cc3bfa6632b095937bba3238c779')
diff --git a/var/spack/repos/builtin/packages/manta/for_aarch64.patch b/var/spack/repos/builtin/packages/manta/for_aarch64.patch
new file mode 100644
index 0000000000..86364108e6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/manta/for_aarch64.patch
@@ -0,0 +1,11 @@
+--- spack-src/src/cmake/boost.cmake.bak 2019-06-29 07:04:47.000000000 +0900
++++ spack-src/src/cmake/boost.cmake 2021-03-30 11:36:39.000000000 +0900
+@@ -168,6 +168,8 @@
+ message (FATAL_ERROR "Failed to unpack boost library ${THIS_BOOST_VERSION}")
+ endif ()
+ execute_process(
++ COMMAND "sed" -i "s/-m64//g" ${BOOST_BUILD_DIR}/boost_1_58_0/tools/build/src/tools/gcc.jam)
++ execute_process(
+ COMMAND ${CMAKE_COMMAND} -E touch "${BOOST_BUILD_DIR}/boost_unpack_complete")
+ endif ()
+
diff --git a/var/spack/repos/builtin/packages/manta/package.py b/var/spack/repos/builtin/packages/manta/package.py
index edc2c47a23..7dfcc39722 100644
--- a/var/spack/repos/builtin/packages/manta/package.py
+++ b/var/spack/repos/builtin/packages/manta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,3 +22,5 @@ class Manta(CMakePackage):
depends_on('cmake@2.8.12:', type='build')
depends_on('python@2.7.0:2.7.999', type=('build', 'run'))
depends_on('zlib')
+
+ patch('for_aarch64.patch', when='target=aarch64:')
diff --git a/var/spack/repos/builtin/packages/mapnik/package.py b/var/spack/repos/builtin/packages/mapnik/package.py
index 880bd3bc13..5918e6620e 100644
--- a/var/spack/repos/builtin/packages/mapnik/package.py
+++ b/var/spack/repos/builtin/packages/mapnik/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -36,8 +36,6 @@ class Mapnik(AutotoolsPackage):
depends_on('sqlite+rtree', type=('build', 'link', 'run'))
depends_on('libwebp')
- conflicts('%gcc@9.0.0:')
-
def setup_build_environment(self, env):
spec = self.spec
env.set('GDAL_DATA', spec['gdal'].prefix.share.gdal)
diff --git a/var/spack/repos/builtin/packages/mapserver/package.py b/var/spack/repos/builtin/packages/mapserver/package.py
index e4b7eda157..de972ab81b 100644
--- a/var/spack/repos/builtin/packages/mapserver/package.py
+++ b/var/spack/repos/builtin/packages/mapserver/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Mapserver(CMakePackage):
"""MapServer is an Open Source geographic data rendering engine written
@@ -13,7 +14,7 @@ class Mapserver(CMakePackage):
"geographic image maps", that is, maps that can direct users
to content"""
- homepage = "http://www.mapserver.org/"
+ homepage = "https://www.mapserver.org/"
url = "https://download.osgeo.org/mapserver/mapserver-7.2.1.tar.gz"
version('7.2.1', sha256='9459a7057d5a85be66a41096a5d804f74665381186c37077c94b56e784db6102')
diff --git a/var/spack/repos/builtin/packages/mapsplice2/Makefile.patch b/var/spack/repos/builtin/packages/mapsplice2/Makefile.patch
new file mode 100644
index 0000000000..01c0279c3a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mapsplice2/Makefile.patch
@@ -0,0 +1,53 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,4 +1,4 @@
+-all: FilterFusionAlignmentsByFilteredFusions filterremappedfusion FilterFusionAlignmentsByFilteredFusions MPSSam2fq collectstats SetUnmappedBitFlag sam2fq recover_fusion_alignments_order SepSamUnmapped swap_dRanger_and_MPS_matched comp_fusiondb_offset sepdRangerfusion sepMPSfusion generate_fusiongene_convert_coordinate_trim generate_fusiongene_convert_coordinate_trim_dRanger junc2bed SeparateNormalFromFusionJunc search_fusion_gene AddFusionStrandConsistent gtf2genetab FilterFusionByNormalPaired load_fusion_chrom_seq_std matchfusion2normal filteroriginalfusion Convert2FusionAlignment generate_combined_sequence DNA2StdRegion search_unmapped_reads reads2unmappedsam junc_db_fusion bsb4 mapsplice_multi_thread bowtie check_reads_format alignmenthandler_multi parseCluster cluster junc_db filterjuncbyROCarguNonCanonical filter_1hits newsam2junc fusionsam2junc_filteranchor_newfmt read_chromo_size find_mate_sam_fq alignmenthandler SepSam RemovePairNo check_index_consistency samtools
++all: FilterFusionAlignmentsByFilteredFusions filterremappedfusion FilterFusionAlignmentsByFilteredFusions MPSSam2fq collectstats SetUnmappedBitFlag sam2fq recover_fusion_alignments_order SepSamUnmapped swap_dRanger_and_MPS_matched comp_fusiondb_offset sepdRangerfusion sepMPSfusion generate_fusiongene_convert_coordinate_trim generate_fusiongene_convert_coordinate_trim_dRanger junc2bed SeparateNormalFromFusionJunc search_fusion_gene AddFusionStrandConsistent gtf2genetab FilterFusionByNormalPaired load_fusion_chrom_seq_std matchfusion2normal filteroriginalfusion Convert2FusionAlignment generate_combined_sequence DNA2StdRegion search_unmapped_reads reads2unmappedsam junc_db_fusion bsb4 mapsplice_multi_thread check_reads_format alignmenthandler_multi parseCluster cluster junc_db filterjuncbyROCarguNonCanonical filter_1hits newsam2junc fusionsam2junc_filteranchor_newfmt read_chromo_size find_mate_sam_fq alignmenthandler SepSam RemovePairNo check_index_consistency
+
+ OPTFLAGS = -O3
+
+@@ -75,24 +75,24 @@ gtf2genetab:
+ bsb4:
+ g++ $(CFLAGS) -o bin/bsb4 src/bsb4/bsb4.cpp $(ERRLOG)
+
+-samtools:
+- cd ./samtools-0.1.9;make
++#samtools:
++# cd ./samtools-0.1.9;make
+
+- cp ./samtools-0.1.9/samtools ./bin/
++# cp ./samtools-0.1.9/samtools ./bin/
+
+ mapsplice_multi_thread:
+ cd ./src/MapSplice;make
+
+ cp ./src/MapSplice/bowtie ./bin/mapsplice_multi_thread
+
+-bowtie:
+- cd ./src/bowtie; make
++#bowtie:
++# cd ./src/bowtie; make
+
+- cp ./src/bowtie/bowtie ./bin/bowtie
++# cp ./src/bowtie/bowtie ./bin/bowtie
+
+- cp ./src/bowtie/bowtie-build ./bin/bowtie-build
++# cp ./src/bowtie/bowtie-build ./bin/bowtie-build
+
+- cp ./src/bowtie/bowtie-inspect ./bin/bowtie-inspect
++# cp ./src/bowtie/bowtie-inspect ./bin/bowtie-inspect
+
+ reads2unmappedsam:
+ g++ $(CFLAGS) -o bin/reads2unmappedsam src/reads2unmappedsam/reads2unmappedsam.cpp $(ERRLOG)
+@@ -167,7 +167,7 @@ RemovePairNo:
+ g++ $(CFLAGS) -o bin/RemovePairNo src/RemovePairNo/remove_pair_no.cpp $(ERRLOG)
+
+ clean:
+- cd ./samtools-0.1.9 ; make clean-recur
++# cd ./samtools-0.1.9 ; make clean-recur
+ cd ./src/MapSplice ; make clean
+- cd ./src/bowtie ; make clean
+- rm -f bin/FilterFusionAlignmentsByFilteredFusions bin/filterremappedfusion bin/MPSSam2fq bin/comp_fusiondb_offset bin/SeparateNormalFromFusionJunc bin/collectstats bin/SetUnmappedBitFlag bin/sam2fq bin/recover_fusion_alignments_order bin/SepSamUnmapped bin/swap_dRanger_and_MPS_matched bin/sepdRangerfusion bin/sepMPSfusion bin/generate_fusiongene_convert_coordinate_trim_dRanger bin/generate_fusiongene_convert_coordinate_trim bin/junc2bed bin/search_fusion_gene bin/AddFusionStrandConsistent bin/gtf2genetab bin/FilterFusionByNormalPaired bin/load_fusion_chrom_seq_std bin/matchfusion2normal bin/filteroriginalfusion bin/DNA2StdRegion bin/generate_combined_sequence bin/Convert2FusionAlignment bin/search_unmapped_reads bin/reads2unmappedsam bin/junc_db_fusion bin/bsb4 bin/fusionsam2junc_filteranchor_newfmt bin/mapsplice_multi_thread bin/bowtie-build bin/bowtie bin/bowtie-inspect bin/check_reads_format bin/samtools bin/alignment_handler_multi bin/parseCluster bin/cluster bin/junc_db bin/filterjuncbyROCarguNonCanonical bin/filter_1hits bin/newsam2junc bin/read_chromo_size bin/find_mate_sam_fq bin/alignment_handler bin/SepSam bin/RemovePairNo bin/check_index_consistency log
+\ No newline at end of file
++# cd ./src/bowtie ; make clean
++ rm -f bin/FilterFusionAlignmentsByFilteredFusions bin/filterremappedfusion bin/MPSSam2fq bin/comp_fusiondb_offset bin/SeparateNormalFromFusionJunc bin/collectstats bin/SetUnmappedBitFlag bin/sam2fq bin/recover_fusion_alignments_order bin/SepSamUnmapped bin/swap_dRanger_and_MPS_matched bin/sepdRangerfusion bin/sepMPSfusion bin/generate_fusiongene_convert_coordinate_trim_dRanger bin/generate_fusiongene_convert_coordinate_trim bin/junc2bed bin/search_fusion_gene bin/AddFusionStrandConsistent bin/gtf2genetab bin/FilterFusionByNormalPaired bin/load_fusion_chrom_seq_std bin/matchfusion2normal bin/filteroriginalfusion bin/DNA2StdRegion bin/generate_combined_sequence bin/Convert2FusionAlignment bin/search_unmapped_reads bin/reads2unmappedsam bin/junc_db_fusion bin/bsb4 bin/fusionsam2junc_filteranchor_newfmt bin/mapsplice_multi_thread bin/check_reads_format bin/alignment_handler_multi bin/parseCluster bin/cluster bin/junc_db bin/filterjuncbyROCarguNonCanonical bin/filter_1hits bin/newsam2junc bin/read_chromo_size bin/find_mate_sam_fq bin/alignment_handler bin/SepSam bin/RemovePairNo bin/check_index_consistency log
diff --git a/var/spack/repos/builtin/packages/mapsplice2/mapsplice_ebwt.patch b/var/spack/repos/builtin/packages/mapsplice2/mapsplice_ebwt.patch
new file mode 100644
index 0000000000..bd1a8be0cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mapsplice2/mapsplice_ebwt.patch
@@ -0,0 +1,20 @@
+--- a/src/MapSplice/ebwt.h
++++ b/src/MapSplice/ebwt.h
+@@ -430,7 +430,7 @@ public:
+ vector<uint32_t>& plens,
+ uint32_t sztot,
+ const RefReadInParams& refparams,
+- uint32_t seed,
++ uint32_t seed = 0,
+ int32_t __overrideOffRate = -1,
+ int32_t __overrideIsaRate = -1,
+ bool verbose = false,
+@@ -3942,7 +3942,7 @@ void Ebwt<TStr>::joinToDisk(
+ TStr& ret,
+ ostream& out1,
+ ostream& out2,
+- uint32_t seed = 0)
++ uint32_t seed /* = 0 */ )
+ {
+ RandomSource rand; // reproducible given same seed
+ rand.init(seed);
diff --git a/var/spack/repos/builtin/packages/mapsplice2/package.py b/var/spack/repos/builtin/packages/mapsplice2/package.py
new file mode 100644
index 0000000000..0f9f1c1139
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mapsplice2/package.py
@@ -0,0 +1,54 @@
+# Copyright 2013-2021 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 Mapsplice2(MakefilePackage):
+ """MapSplice is a software for mapping RNA-seq data to reference genome
+ for splice junction discovery that depends only on reference genome,
+ and not on any further annotations."""
+
+ homepage = "http://www.netlab.uky.edu/p/bioinfo/MapSplice2"
+ url = "https://protocols.netlab.uky.edu/~zeng/MapSplice-v2.2.1.zip"
+
+ version(
+ "2.2.1",
+ sha256="4f3c1cb49ba0abcfc952de5946ee0b56db28c51f4f4d4f5abca66b4461ca7d05",
+ )
+
+ patch("Makefile.patch")
+ patch("mapsplice_ebwt.patch")
+
+ depends_on("bowtie")
+ depends_on("ncurses", type="link")
+ depends_on("samtools", type="link")
+ depends_on("python", type="run")
+
+ def edit(self, spec, prefix):
+ for iscan in find(
+ "src",
+ [
+ "SamRec.*",
+ "AlignmentHandler.cpp",
+ "JunctionHandler.cpp",
+ "FusionSamRec.*",
+ ],
+ recursive=True,
+ ):
+ m = FileFilter(iscan)
+ m.filter(r"iscanonical", "iscanonical2")
+
+ for makefile in find(".", "[Mm]akefile", recursive=True):
+ m = FileFilter(makefile)
+ m.filter("g++", "{0}".format(spack_cxx), string=True)
+ m.filter(r"CC =.*", "CC = {0}".format(spack_cc))
+ m.filter(r"CPP =.*", "CPP = {0}".format(spack_cxx))
+ m.filter(r"CXX =.*", "CXX = {0}".format(spack_cxx))
+
+ def install(self, spec, prefix):
+ install("mapsplice.py", prefix)
+ install_tree("bin", prefix.bin)
diff --git a/var/spack/repos/builtin/packages/maq/package.py b/var/spack/repos/builtin/packages/maq/package.py
index 2fda250658..7f50f679ad 100644
--- a/var/spack/repos/builtin/packages/maq/package.py
+++ b/var/spack/repos/builtin/packages/maq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/margo/package.py b/var/spack/repos/builtin/packages/margo/package.py
index d43d29841f..27e43c261f 100644
--- a/var/spack/repos/builtin/packages/margo/package.py
+++ b/var/spack/repos/builtin/packages/margo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,43 +7,50 @@ from spack import *
class Margo(AutotoolsPackage):
- """Argobots bindings to the Mercury RPC API"""
-
- homepage = "https://xgitlab.cels.anl.gov/sds/margo"
- url = "https://xgitlab.cels.anl.gov/sds/margo/-/archive/v0.4.3/margo-v0.4.3.tar.gz"
- git = "https://xgitlab.cels.anl.gov/sds/margo.git"
-
- maintainers = ['fbudin69500', 'chuckatkins', 'carns']
-
- version('develop', branch='master')
- version('0.4.3', sha256='61a634d6983bee2ffa06e1e2da4c541cb8f56ddd9dd9f8e04e8044fb38657475')
-
- variant('shared', default=True,
- description='Build shared libraries instead of static libraries')
-
- depends_on('autoconf', type='build')
- depends_on('automake', type='build')
- depends_on('libtool', type='build')
- depends_on('m4', type='build')
- depends_on('pkgconfig', type='build')
-
- depends_on('mercury')
+ """A library that provides Argobots bindings to the Mercury RPC
+ implementation. This name will be deprecated soon; please use the
+ mochi-margo package instead."""
+
+ homepage = 'https://github.com/mochi-hpc/mochi-margo'
+ git = 'https://github.com/mochi-hpc/mochi-margo.git'
+ url = 'https://github.com/mochi-hpc/mochi-margo/archive/v0.9.tar.gz'
+
+ maintainers = ['carns', 'mdorier', 'fbudin69500', 'chuckatkins']
+
+ version('master', branch='master', deprecated=True)
+ version('0.9.1', sha256='3fe933f2d758ef23d582bc776e4f8cfae9bf9d0849b8b1f9d73ee024e218f2bc', deprecated=True)
+ version('0.9', sha256='a24376f66450cc8fd7a43043e189f8efce5a931585e53c1e2e41894a3e99b517', deprecated=True)
+ version('0.7', sha256='492d1afe2e7984fa638614a5d34486d2ff761f5599b5984efd5ae3f55cafde54', deprecated=True)
+ version('0.7.2', sha256='0ca796abdb82084813a5de033d92364910b5ad1a0df135534d6b1c36ef627859', deprecated=True)
+ version('0.7.1', sha256='eebbe02c47ed4c65ef1d4f23ffdc6a8aa2e2348ca6c51bfc3c4dfbf78fbfc30b', deprecated=True)
+ version('0.6', sha256='56feb718da2b155d7277a7b10b669516ebffaa034f811f3665ceed7ad0f19d1b', deprecated=True)
+ version('0.6.4', sha256='5ba1c72ee05aa9738d3dc4d6d01bd59790284c6c77b909c5d7756fe7049d6177', deprecated=True)
+ version('0.6.3', sha256='5f373cd554edd15cead58bd5d30093bd88d45039d06ff7738eb18b3674287c76', deprecated=True)
+ version('0.6.2', sha256='c6a6909439e1d3ba1a1693d8da66057eb7e4ec4b239c04bc7f19fc487c4c58da', deprecated=True)
+ version('0.6.1', sha256='80d8d15d0917b5522c31dc2d83136de2313d50ca05c71c5e5ad83c483a3214b7', deprecated=True)
+ version('0.5', sha256='d3b768b8300bc2cb87964e74c39b4e8eb9822d8a2e56fc93dc475ddcb1a868e3', deprecated=True)
+ version('0.5.2', sha256='73be3acaf012a85a91ac62824c93f5ee1ea0ffe4c25779ece19723f4baf9547d', deprecated=True)
+ version('0.5.1', sha256='6fdf58e189538e22341c8361ab069fc80fe5460a6869882359b295a890febad7', deprecated=True)
+ version('0.4.7', sha256='596d83b11fb2bd9950fd99c9ab12c14915ab2cda233084ae40ecae1e6c584333', deprecated=True)
+ version('0.4.6', sha256='b27447a2050ae61091bae3ff6b4d23a56153947f18847face9f98facbdb4e329', deprecated=True)
+ version('0.4.5', sha256='b0d02f73edf180f2393f54c5a980620b8d6dcd42b90efdea6866861824fa49cf', deprecated=True)
+ version('0.4.4', sha256='2e2e6e2a8a7d7385e2fe204c113cb149f30847f0b1f48ec8dd708a74280bd89e', deprecated=True)
+ version('0.4.3', sha256='61a634d6983bee2ffa06e1e2da4c541cb8f56ddd9dd9f8e04e8044fb38657475', deprecated=True)
+ version('0.4.2', sha256='91085e28f50e373b9616e1ae5c3c8d40a19a7d3776259592d8f361766890bcaa', deprecated=True)
+
+ depends_on('json-c', when='@0.9:')
+ depends_on('autoconf@2.65:', type=("build"))
+ depends_on('m4', type=('build'))
+ depends_on('automake', type=("build"))
+ depends_on('libtool', type=("build"))
+ depends_on('pkgconfig', type=("build"))
depends_on('argobots@1.0:')
+ # "breadcrumb" support not available in mercury-1.0
+ depends_on('mercury@1.0.0:', type=("build", "link", "run"), when='@:0.5.1')
+ depends_on('mercury@2.0.0:', type=("build", "link", "run"), when='@0.5.2:')
- build_directory = 'spack-build'
-
- def configure_args(self):
- spec = self.spec
- args = []
-
- if '+shared' in spec:
- args.append('--enable-shared')
- args.append('--disable-static')
- else:
- args.append('--enable-static')
- args.append('--disable-shared')
-
- return args
+ # dependencies for develop version
+ depends_on('mercury@master', type=("build", "link", "run"), when='@develop')
def autoreconf(self, spec, prefix):
sh = which('sh')
diff --git a/var/spack/repos/builtin/packages/mariadb-c-client/package.py b/var/spack/repos/builtin/packages/mariadb-c-client/package.py
index 1abd01301e..e6f2e0904b 100644
--- a/var/spack/repos/builtin/packages/mariadb-c-client/package.py
+++ b/var/spack/repos/builtin/packages/mariadb-c-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,12 +16,13 @@ class MariadbCClient(CMakePackage):
Connector', which enables connections to MariaDB and MySQL servers.
"""
- homepage = "http://mariadb.org/about/"
+ homepage = "https://mariadb.org/about/"
url = "https://downloads.mariadb.com/Connectors/c/connector-c-3.0.3/mariadb-connector-c-3.0.3-src.tar.gz"
list_url = "https://downloads.mariadb.com/Connectors/c/"
list_depth = 1
+ version('3.1.13', sha256='0271a5edfd64b13bca5937267474e4747d832ec62e169fc2589d2ead63746875')
version('3.1.9', sha256='108d99bf2add434dcb3bd9526ba1d89a2b9a943b62dcd9d0a41fcbef8ffbf2c7')
version('3.1.6', sha256='d266bb67df83c088c4fb05392713d2504c67be620894cedaf758a9561c116720')
version('3.1.5', sha256='a9de5fedd1a7805c86e23be49b9ceb79a86b090ad560d51495d7ba5952a9d9d5')
@@ -57,6 +58,10 @@ class MariadbCClient(CMakePackage):
depends_on('openssl')
depends_on('zlib')
+ # patch needed for cmake-3.20
+ patch('https://github.com/mariadb-corporation/mariadb-connector-c/commit/242cab8c.patch',
+ sha256='bcfa0a73a34654495f5dea3cecdcb7de911c7c2446240aeaa674a4b2ab46f58c', when='@:3.1.12')
+
def url_for_version(self, version):
url = "https://downloads.mariadb.com/Connectors/c/connector-c-{0}/mariadb-connector-c-{1}-src.tar.gz"
return url.format(version.up_to(3), version)
@@ -64,3 +69,9 @@ class MariadbCClient(CMakePackage):
def cmake_args(self):
args = ['-DWITH_EXTERNAL_ZLIB=ON', '-DWITH_MYSQLCOMPAT=ON']
return args
+
+ @property
+ def libs(self):
+ return find_libraries(
+ ['libmariadb'], root=self.prefix, recursive=True, shared=True
+ )
diff --git a/var/spack/repos/builtin/packages/mariadb/package.py b/var/spack/repos/builtin/packages/mariadb/package.py
index a16919192a..8ffac00eb1 100644
--- a/var/spack/repos/builtin/packages/mariadb/package.py
+++ b/var/spack/repos/builtin/packages/mariadb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -56,6 +56,12 @@ class Mariadb(CMakePackage):
conflicts('%gcc@9.1.0:', when='@:5.5')
+ # patch needed for cmake-3.20
+ patch('https://github.com/mariadb-corporation/mariadb-connector-c/commit/242cab8c.patch',
+ sha256='bcfa0a73a34654495f5dea3cecdcb7de911c7c2446240aeaa674a4b2ab46f58c',
+ working_dir='libmariadb',
+ when='@10.2.8:')
+
def cmake_args(self):
args = []
diff --git a/var/spack/repos/builtin/packages/mark/package.py b/var/spack/repos/builtin/packages/mark/package.py
index fa51131add..eda102108e 100644
--- a/var/spack/repos/builtin/packages/mark/package.py
+++ b/var/spack/repos/builtin/packages/mark/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Mark(Package):
"""Program MARK, developed and maintained by Gary White (Colorado State
@@ -17,9 +18,10 @@ class Mark(Package):
Step(1). Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "http://www.phidot.org/software/mark/index.html"
+ manual_download = True
version('1.0', sha256='5422c9444d5fa6b3b22f4a9f2ce41af2072a1a7283f6f9099dc02cc5282696bc',
expand=False)
diff --git a/var/spack/repos/builtin/packages/masa/package.py b/var/spack/repos/builtin/packages/masa/package.py
index 06bcefb4d3..ec72851f1a 100644
--- a/var/spack/repos/builtin/packages/masa/package.py
+++ b/var/spack/repos/builtin/packages/masa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -44,3 +44,10 @@ class Masa(AutotoolsPackage):
options.extend(['--enable-python-interfaces'])
return options
+
+ def setup_build_environment(self, env):
+ # Unfortunately can't use this because MASA overwrites it
+ # env.set('CXXFLAGS', self.compiler.cxx11_flag)
+ env.set('CXX', "{0} {1}".format(self.compiler.cxx, self.compiler.cxx11_flag))
+ if self.spec.satisfies('%apple-clang'):
+ env.set('CFLAGS', '-Wno-implicit-function-declaration')
diff --git a/var/spack/repos/builtin/packages/mash/package.py b/var/spack/repos/builtin/packages/mash/package.py
new file mode 100644
index 0000000000..e93cc3d672
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mash/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2021 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 Mash(AutotoolsPackage):
+ """
+ Fast genome and metagenome distance estimation using MinHash.
+ """
+
+ homepage = "https://mash.readthedocs.org/"
+ url = "https://github.com/marbl/Mash/archive/refs/tags/v2.3.tar.gz"
+
+ maintainers = ['marcusboden']
+
+ version('2.3', sha256='f96cf7305e010012c3debed966ac83ceecac0351dbbfeaa6cd7ad7f068d87fe1')
+
+ conflicts('%gcc@11:', msg='mash cannot be build with gcc >= 11')
+
+ depends_on("autoconf", type='build')
+ depends_on("automake", type='build')
+ depends_on("libtool", type='build')
+ depends_on("m4", type='build')
+ depends_on("capnproto")
+ depends_on("gsl")
+
+ def configure_args(self):
+ args = []
+ args.append("--with-capnp=" + self.spec['capnproto'].prefix)
+ args.append("--with-gsl=" + self.spec['gsl'].prefix)
+ return args
diff --git a/var/spack/repos/builtin/packages/masurca/package.py b/var/spack/repos/builtin/packages/masurca/package.py
index 1e0f74e3bb..673aed6259 100644
--- a/var/spack/repos/builtin/packages/masurca/package.py
+++ b/var/spack/repos/builtin/packages/masurca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Masurca(Package):
homepage = "http://www.genome.umd.edu/masurca.html"
url = "https://github.com/alekseyzimin/masurca/releases/download/v3.3.1/MaSuRCA-3.3.1.tar.gz"
+ version('4.0.1', sha256='68628acaf3681d09288b48a35fec7909b347b84494fb26c84051942256299870')
version('3.3.1', sha256='587d0ee2c6b9fbd3436ca2a9001e19f251b677757fe5e88e7f94a0664231e020')
version('3.2.9', sha256='795ad4bd42e15cf3ef2e5329aa7e4f2cdeb7e186ce2e350a45127e319db2904b')
@@ -30,7 +31,12 @@ class Masurca(Package):
m = join_path('global-1', makefile)
filter_file('-minline-all-stringops', '', m)
+ def setup_build_environment(self, env):
+ if '@4:' in self.spec:
+ env.set('DEST', self.prefix)
+
def install(self, spec, prefix):
installer = Executable('./install.sh')
installer()
- install_tree('.', prefix)
+ if '@:4' in self.spec:
+ install_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/mathematica/package.py b/var/spack/repos/builtin/packages/mathematica/package.py
index c775fc8b0d..3b9d4badd0 100644
--- a/var/spack/repos/builtin/packages/mathematica/package.py
+++ b/var/spack/repos/builtin/packages/mathematica/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Mathematica(Package):
"""Mathematica: high-powered computation with thousands of Wolfram Language
@@ -15,11 +16,15 @@ class Mathematica(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://www.wolfram.com/mathematica/"
url = 'file://{0}/Mathematica_12.0.0_LINUX.sh'.format(os.getcwd())
+ manual_download = True
+ version('12.2.0',
+ sha256='3b6676a203c6adb7e9c418a5484b037974287b5be09c64e7dfea74ddc0e400d7',
+ expand=False)
version('12.1.1',
sha256='ad47b886be4a9864d70f523f792615a051d4ebc987d9a0f654b645b4eb43b30a',
expand=False)
diff --git a/var/spack/repos/builtin/packages/matio/package.py b/var/spack/repos/builtin/packages/matio/package.py
index 5107058d58..1ee705ceff 100644
--- a/var/spack/repos/builtin/packages/matio/package.py
+++ b/var/spack/repos/builtin/packages/matio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -49,7 +49,7 @@ class Matio(AutotoolsPackage):
return args
def patch(self):
- if self.spec.satisfies('%nvhpc'):
+ if self.spec.satisfies('%nvhpc@:20.11'):
# workaround anonymous version tag linker error for the NVIDIA
# compilers
filter_file('${wl}-version-script '
diff --git a/var/spack/repos/builtin/packages/matlab/package.py b/var/spack/repos/builtin/packages/matlab/package.py
index aa7ebbc343..17cfe0e46a 100644
--- a/var/spack/repos/builtin/packages/matlab/package.py
+++ b/var/spack/repos/builtin/packages/matlab/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 subprocess
+from spack import *
+
class Matlab(Package):
"""MATLAB (MATrix LABoratory) is a multi-paradigm numerical computing
@@ -20,7 +21,7 @@ class Matlab(Package):
the MathWorks homepage and download MATLAB yourself. Spack will search your
current directory for the download file. Alternatively, add this file to a
mirror so that Spack can find it. For instructions on how to set up a
- mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+ mirror, see https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://www.mathworks.com/products/matlab.html"
manual_download = True
diff --git a/var/spack/repos/builtin/packages/maven/package.py b/var/spack/repos/builtin/packages/maven/package.py
index 0cc83948cd..6dc324af3a 100644
--- a/var/spack/repos/builtin/packages/maven/package.py
+++ b/var/spack/repos/builtin/packages/maven/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/maverick/package.py b/var/spack/repos/builtin/packages/maverick/package.py
index 60909c551b..fa14f9bda5 100644
--- a/var/spack/repos/builtin/packages/maverick/package.py
+++ b/var/spack/repos/builtin/packages/maverick/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mawk/package.py b/var/spack/repos/builtin/packages/mawk/package.py
index 89c8f9e3ac..ee5976fb6b 100644
--- a/var/spack/repos/builtin/packages/mawk/package.py
+++ b/var/spack/repos/builtin/packages/mawk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Mawk(AutotoolsPackage):
"""mawk is an interpreter for the AWK Programming Language."""
- homepage = "http://invisible-island.net/mawk/mawk.html"
- url = "http://invisible-mirror.net/archives/mawk/mawk-1.3.4.tgz"
+ homepage = "https://invisible-island.net/mawk/mawk.html"
+ url = "https://invisible-mirror.net/archives/mawk/mawk-1.3.4.tgz"
version('1.3.4-20171017', sha256='db17115d1ed18ed1607c8b93291db9ccd4fe5e0f30d2928c3c5d127b23ec9e5b')
version('1.3.4', sha256='2f2ab8831c441a5793ad333193c888c9ba29c900f009aa23c9fffc100c405925')
diff --git a/var/spack/repos/builtin/packages/mbdyn/package.py b/var/spack/repos/builtin/packages/mbdyn/package.py
index ccaf44a262..6130d08869 100644
--- a/var/spack/repos/builtin/packages/mbdyn/package.py
+++ b/var/spack/repos/builtin/packages/mbdyn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mbedtls/package.py b/var/spack/repos/builtin/packages/mbedtls/package.py
index 0d79e25af4..d09ec5b43f 100644
--- a/var/spack/repos/builtin/packages/mbedtls/package.py
+++ b/var/spack/repos/builtin/packages/mbedtls/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
from spack import *
-class Mbedtls(CMakePackage):
+class Mbedtls(MakefilePackage):
"""mbed TLS (formerly known as PolarSSL) makes it trivially easy for
developers to include cryptographic and SSL/TLS capabilities in
their (embedded) products, facilitating this functionality with a
@@ -17,32 +17,58 @@ class Mbedtls(CMakePackage):
url = "https://github.com/ARMmbed/mbedtls/archive/mbedtls-2.2.1.tar.gz"
maintainers = ['mwkrentel']
- version('2.16.7', sha256='4786b7d1676f5e4d248f3a7f2d28446876d64962634f060ff21b92c690cfbe86')
- version('2.16.1', sha256='daf0d40f3016c34eb42d1e4b3b52be047e976d566aba8668977723c829af72f3')
- version('2.7.10', sha256='42b19b30b86a798bdb69c5da2f8bbd7d72ffede9a35b888ab986a29480f9dc3e')
- version('2.3.0', sha256='1614ee70be99a18ca8298148308fb725aad4ad31c569438bb51655a4999b14f9')
- version('2.2.1', sha256='32819c62c20e8740a11b49daa5d09ac6f179edf120a87ac559cd63120b66b699')
- version('2.2.0', sha256='75494361e412444b38ebb9c908b7e17a5fb582eb9c3fadb2fe9b21e96f1bf8cb')
- version('2.1.4', sha256='a0ee4d3dd135baf67a3cf5ad9e70d67575561704325d6c93d8f087181f4db338')
- version('2.1.3', sha256='94da4618d5a518b99f7914a5e348be436e3571113d9a9978d130725a1fc7bfac')
- version('1.3.16', sha256='0c2666222b66cf09c4630fa60a715aafd7decb1a09933b75c0c540b0625ac5df')
+ version('3.0.0', sha256='377d376919be19f07c7e7adeeded088a525be40353f6d938a78e4f986bce2ae0')
+ version('2.27.0', sha256='4f6a43f06ded62aa20ef582436a39b65902e1126cbbe2fb17f394e9e9a552767')
+ version('2.16.11', sha256='51bb9685c4f4ff9255da5659ff346b89dcaf129e3ba0f3b2b0c48a1a7495e701')
+ version('2.16.9', sha256='b7ca99ee10551b5b13242b7effebefd2a5cc38c287e5f5be1267d51ee45effe3', deprecated=True)
+ version('2.16.7', sha256='4786b7d1676f5e4d248f3a7f2d28446876d64962634f060ff21b92c690cfbe86', deprecated=True)
+ version('2.16.1', sha256='daf0d40f3016c34eb42d1e4b3b52be047e976d566aba8668977723c829af72f3', deprecated=True)
+ version('2.7.19', sha256='3da12b1cebe1a25da8365d5349f67db514aefcaa75e26082d7cb2fa3ce9608aa')
+ version('2.7.10', sha256='42b19b30b86a798bdb69c5da2f8bbd7d72ffede9a35b888ab986a29480f9dc3e', deprecated=True)
+ version('2.3.0', sha256='1614ee70be99a18ca8298148308fb725aad4ad31c569438bb51655a4999b14f9', deprecated=True)
+ version('2.2.1', sha256='32819c62c20e8740a11b49daa5d09ac6f179edf120a87ac559cd63120b66b699', deprecated=True)
+ version('2.2.0', sha256='75494361e412444b38ebb9c908b7e17a5fb582eb9c3fadb2fe9b21e96f1bf8cb', deprecated=True)
+ version('2.1.4', sha256='a0ee4d3dd135baf67a3cf5ad9e70d67575561704325d6c93d8f087181f4db338', deprecated=True)
+ version('2.1.3', sha256='94da4618d5a518b99f7914a5e348be436e3571113d9a9978d130725a1fc7bfac', deprecated=True)
+ version('1.3.16', sha256='0c2666222b66cf09c4630fa60a715aafd7decb1a09933b75c0c540b0625ac5df', deprecated=True)
- variant('build_type', default='Release',
- description='The build type to build',
- values=('Debug', 'Release', 'Coverage', 'ASan', 'ASanDbg',
- 'MemSan', 'MemSanDbg', 'Check', 'CheckFull'))
+ variant('pic', default=False, description='Compile with position independent code.')
+ variant('build_type', default='Release', description='Build type',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
+ variant('libs', default='static', values=('shared', 'static'),
+ multi=True, description='What libraries to build')
- variant('pic', default=False,
- description='Compile with position independent code.')
+ depends_on('perl', type='test')
+ depends_on('python@3:', type='test', when='@3:')
+ depends_on('python@:2', type='test', when='@:2')
- depends_on('cmake@3.1.0:', type='build', when='@2.8.0:')
- depends_on('cmake@2.6:', type='build', when='@:2.7.99')
- depends_on('perl', type='build')
+ build_type_to_flags = {
+ 'Debug': '-O0 -g',
+ 'Release': '-O3',
+ 'RelWithDebInfo': '-O2 -g',
+ 'MinSizeRel': '-Os',
+ }
- def flag_handler(self, name, flags):
+ # TODO: Can't express this in spack right now; but we can live with
+ # libs=shared building both shared and static libs.
+ # conflicts('libs=shared', msg='Makefile build cannot build shared libs only now')
+ def flag_handler(self, name, flags):
# Compile with PIC, if requested.
- if name == 'cflags' and '+pic' in self.spec:
- flags.append(self.compiler.cc_pic_flag)
+ if name == 'cflags':
+ build_type = self.spec.variants['build_type'].value
+ flags.append(self.build_type_to_flags[build_type])
+ if self.spec.variants['pic'].value:
+ flags.append(self.compiler.cc_pic_flag)
+
+ return (None, flags, None)
+
+ def setup_build_environment(self, env):
+ if 'shared' in self.spec.variants['libs'].value:
+ env.set('SHARED', 'yes')
+
+ def build(self, spec, prefix):
+ make('no_test')
- return (flags, None, None)
+ def install(self, spec, prefix):
+ make('install', 'DESTDIR={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/mc/package.py b/var/spack/repos/builtin/packages/mc/package.py
index 611a104e11..e897d2158f 100644
--- a/var/spack/repos/builtin/packages/mc/package.py
+++ b/var/spack/repos/builtin/packages/mc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class Mc(AutotoolsPackage):
homepage = "https://midnight-commander.org"
url = "http://ftp.midnight-commander.org/mc-4.8.20.tar.bz2"
+ version('4.8.26', sha256='9d6358d0a351a455a1410aab57f33b6b48b0fcf31344b9a10b0ff497595979d1')
version('4.8.23', sha256='238c4552545dcf3065359bd50753abbb150c1b22ec5a36eaa02c82808293267d')
version('4.8.21', sha256='251d9f0ef9309ef3eea0fdc4c12b8b61149e5056bef1b2de2ccc7f015d973444')
version('4.8.20', sha256='2d85daaa6ab26e524946df4823ac2f69802bc16bc967781b5e28d5b86fc3b979')
diff --git a/var/spack/repos/builtin/packages/mcl/package.py b/var/spack/repos/builtin/packages/mcl/package.py
index 9b60faadce..457abaf364 100644
--- a/var/spack/repos/builtin/packages/mcl/package.py
+++ b/var/spack/repos/builtin/packages/mcl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,3 +15,8 @@ class Mcl(AutotoolsPackage):
url = "https://www.micans.org/mcl/src/mcl-14-137.tar.gz"
version('14-137', sha256='b5786897a8a8ca119eb355a5630806a4da72ea84243dba85b19a86f14757b497')
+
+ @when('%gcc@10:')
+ def patch(self):
+ filter_file('^dim', 'extern dim', 'src/impala/iface.h')
+ filter_file('^double', 'extern double', 'src/impala/iface.h')
diff --git a/var/spack/repos/builtin/packages/mcpp/package.py b/var/spack/repos/builtin/packages/mcpp/package.py
index a658480812..79e08ce462 100644
--- a/var/spack/repos/builtin/packages/mcpp/package.py
+++ b/var/spack/repos/builtin/packages/mcpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Mcpp(AutotoolsPackage, SourceforgePackage):
homepage = "https://sourceforge.net/projects/mcpp/"
sourceforge_mirror_path = "mcpp/mcpp/V.2.7.2/mcpp-2.7.2.tar.gz"
- version('2.7.2', sha256='3b9b4421888519876c4fc68ade324a3bbd81ceeb7092ecdbbc2055099fcb8864')
+ version('2.7.2', sha256='3b9b4421888519876c4fc68ade324a3bbd81ceeb7092ecdbbc2055099fcb8864')
def configure_args(self):
config_args = ['--enable-mcpplib', '--disable-static']
diff --git a/var/spack/repos/builtin/packages/mcutils/package.py b/var/spack/repos/builtin/packages/mcutils/package.py
index 3065f70fe0..a43425bb87 100644
--- a/var/spack/repos/builtin/packages/mcutils/package.py
+++ b/var/spack/repos/builtin/packages/mcutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,23 +10,26 @@ 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')
+ homepage = "https://gitlab.com/hepcedar/mcutils"
+ git = "https://gitlab.com/hepcedar/mcutils.git"
+
+ tags = ['hep']
+
+ version('1.3.5', tag='mcutils-1.3.5')
+ version('1.3.4', tag='mcutils-1.3.4')
+ version('1.3.3', tag='mcutils-1.3.3')
+ version('1.3.2', tag='mcutils-1.3.2')
+ version('1.3.1', tag='mcutils-1.3.1')
+ version('1.3.1', tag='mcutils-1.3.0')
+ version('1.2.1', tag='mcutils-1.2.1')
+ version('1.2.0', tag='mcutils-1.2.0')
+ version('1.1.2', tag='mcutils-1.1.2')
+ version('1.1.1', tag='mcutils-1.1.1')
+ version('1.1.0', tag='mcutils-1.1.0')
+ version('1.0.3', tag='mcutils-1.0.3')
+ version('1.0.2', tag='mcutils-1.0.2')
+ version('1.0.1', tag='mcutils-1.0.1')
+ version('1.0.0', tag='mcutils-1.0.0')
depends_on('heputils', when='@1.1.0:')
diff --git a/var/spack/repos/builtin/packages/mdsplus/package.py b/var/spack/repos/builtin/packages/mdsplus/package.py
new file mode 100644
index 0000000000..c7a8a7af01
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mdsplus/package.py
@@ -0,0 +1,55 @@
+# Copyright 2013-2021 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 Mdsplus(AutotoolsPackage):
+ """A set of software tools for data acquisition and storage and a
+ methodology for management of complex scientific data."""
+ homepage = "https://mdsplus.org"
+ git = "https://github.com/MDSplus/mdsplus.git"
+
+ maintainers = ['wmvanvliet']
+
+ parallel = False
+
+ version('stable_release-7-96-17', tag='stable_release-7-96-17',
+ submodules=True)
+
+ variant('java', default=True,
+ description='Build java libraries and applications')
+ variant('python', default=True,
+ description='Install python module')
+
+ # Autotools needed for building
+ depends_on('autoconf', type='build')
+ depends_on('autoconf-archive', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('pkgconfig', type='build')
+
+ # Libs needed for building and linking
+ depends_on('libxml2')
+ depends_on('readline')
+
+ # GUI bindings
+ depends_on('motif')
+
+ # Language bindings
+ depends_on('java', type=('build', 'run'), when='+java')
+
+ def configure_args(self):
+ return self.enable_or_disable('java')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./bootstrap')
+
+ def setup_run_environment(self, env):
+ env.set('MDSPLUS_DIR', self.prefix)
+ if '+python' in self.spec:
+ env.prepend_path('PYTHONPATH', '{0}/python'.format(self.prefix))
diff --git a/var/spack/repos/builtin/packages/mdtest/package.py b/var/spack/repos/builtin/packages/mdtest/package.py
index 6e18ef3b41..6144715614 100644
--- a/var/spack/repos/builtin/packages/mdtest/package.py
+++ b/var/spack/repos/builtin/packages/mdtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/med/package.py b/var/spack/repos/builtin/packages/med/package.py
index c4be8dfbea..fe8944a3eb 100644
--- a/var/spack/repos/builtin/packages/med/package.py
+++ b/var/spack/repos/builtin/packages/med/package.py
@@ -1,38 +1,52 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Med(CMakePackage):
"""The MED file format is a specialization of the HDF5 standard."""
- homepage = "http://docs.salome-platform.org/latest/dev/MEDCoupling/med-file.html"
- url = "http://files.salome-platform.org/Salome/other/med-3.2.0.tar.gz"
+ homepage = "https://docs.salome-platform.org/latest/dev/MEDCoupling/med-file.html"
+ url = "https://files.salome-platform.org/Salome/other/med-3.2.0.tar.gz"
maintainers = ['likask']
- version('4.0.0', sha256='a474e90b5882ce69c5e9f66f6359c53b8b73eb448c5f631fa96e8cd2c14df004')
+ # 4.1.0 does not compile in static mode
+ version('4.1.0', sha256='847db5d6fbc9ce6924cb4aea86362812c9a5ef6b9684377e4dd6879627651fce')
+ version('4.0.0', sha256='a474e90b5882ce69c5e9f66f6359c53b8b73eb448c5f631fa96e8cd2c14df004', preferred=True)
version('3.2.0', sha256='d52e9a1bdd10f31aa154c34a5799b48d4266dc6b4a5ee05a9ceda525f2c6c138')
variant('api23', default=True, description='Enable API2.3')
+ variant('mpi', default=True, description='Enable MPI')
+ variant('shared', default=False,
+ description='Builds a shared version of the library')
+ variant('fortran', default=False, description='Enable Fortran support')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('hdf5@:1.8.22+mpi', when='@3.2.0+mpi')
+ depends_on('hdf5@1.10.2:1.10.7+mpi', when='@4.0.0:+mpi')
+ depends_on('hdf5@:1.8.22~mpi', when='@3.2.0~mpi')
+ depends_on('hdf5@1.10.2:1.10.7~mpi', when='@4.0.0:~mpi')
- depends_on('mpi')
- depends_on('hdf5@:1.8.19+mpi', when='@3.2.0')
- depends_on('hdf5@:1.10.2+mpi', when='@4.0.0')
+ conflicts("@4.1.0", when="~shared", msg="Link error when static")
# C++11 requires a space between literal and identifier
patch('add_space.patch', when='@3.2.0')
- # FIXME This is minimal installation.
-
def cmake_args(self):
spec = self.spec
- options = []
+ options = [
+ self.define('HDF5_ROOT_DIR', spec['hdf5'].prefix),
+ self.define('MEDFILE_BUILD_TESTS', self.run_tests),
+ self.define('MEDFILE_BUILD_PYTHON', False),
+ self.define('MEDFILE_INSTALL_DOC', False),
+ ]
+ if '~fortran' in spec:
+ options.append('-DCMAKE_Fortran_COMPILER=')
if '+api23' in spec:
options.extend([
@@ -40,18 +54,19 @@ class Med(CMakePackage):
'-DCMAKE_C_FLAGS:STRING=-DMED_API_23=1',
'-DMED_API_23=1'])
- options.extend([
- '-DMEDFILE_USE_MPI=YES'
- '-DMEDFILE_BUILD_TESTS={0}'.format(
- 'ON' if self.run_tests else 'OFF'),
- '-DMEDFILE_BUILD_PYTHON=OFF',
- '-DMEDFILE_INSTALL_DOC=OFF',
- '-DMEDFILE_BUILD_SHARED_LIBS=OFF',
- '-DMEDFILE_BUILD_STATIC_LIBS=ON',
- '-DCMAKE_Fortran_COMPILER='])
-
- options.extend([
- '-DHDF5_ROOT_DIR=%s' % spec['hdf5'].prefix,
- '-DMPI_ROOT_DIR=%s' % spec['mpi'].prefix])
+ if '+shared' in spec:
+ options.extend([
+ '-DMEDFILE_BUILD_SHARED_LIBS=ON',
+ '-DMEDFILE_BUILD_STATIC_LIBS=OFF',
+ ])
+ else:
+ options.extend([
+ '-DMEDFILE_BUILD_SHARED_LIBS=OFF',
+ '-DMEDFILE_BUILD_STATIC_LIBS=ON',
+ ])
+
+ if '+mpi' in spec:
+ options.extend(['-DMEDFILE_USE_MPI=YES',
+ '-DMPI_ROOT_DIR=%s' % spec['mpi'].prefix])
return options
diff --git a/var/spack/repos/builtin/packages/meep/package.py b/var/spack/repos/builtin/packages/meep/package.py
index a5ffb30290..d7bfb0df83 100644
--- a/var/spack/repos/builtin/packages/meep/package.py
+++ b/var/spack/repos/builtin/packages/meep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mefit/package.py b/var/spack/repos/builtin/packages/mefit/package.py
index bd24a324cf..745b548195 100644
--- a/var/spack/repos/builtin/packages/mefit/package.py
+++ b/var/spack/repos/builtin/packages/mefit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/megadock/package.py b/var/spack/repos/builtin/packages/megadock/package.py
index f8131784c6..aa54a65941 100644
--- a/var/spack/repos/builtin/packages/megadock/package.py
+++ b/var/spack/repos/builtin/packages/megadock/package.py
@@ -1,18 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Megadock(MakefilePackage, CudaPackage):
"""an ultra-high-performance protein-protein docking for
heterogeneous supercomputers"""
- homepage = "http://www.bi.cs.titech.ac.jp/megadock/"
- url = "http://www.bi.cs.titech.ac.jp/megadock/archives/megadock-4.0.3.tgz"
+ homepage = "https://www.bi.cs.titech.ac.jp/megadock/"
+ url = "https://www.bi.cs.titech.ac.jp/megadock/archives/megadock-4.0.3.tgz"
version('4.0.3', sha256='c1409a411555f4f7b4eeeda81caf622d8a28259a599ea1d2181069c55f257664')
diff --git a/var/spack/repos/builtin/packages/megahit/package.py b/var/spack/repos/builtin/packages/megahit/package.py
index 863a684505..f28d96bdb9 100644
--- a/var/spack/repos/builtin/packages/megahit/package.py
+++ b/var/spack/repos/builtin/packages/megahit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/melissa/package.py b/var/spack/repos/builtin/packages/melissa/package.py
new file mode 100644
index 0000000000..6cf4b4de16
--- /dev/null
+++ b/var/spack/repos/builtin/packages/melissa/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2021 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 Melissa(CMakePackage):
+ """Melissa is a file-avoiding, adaptive, fault-tolerant and elastic
+ framework, to run large-scale sensitivity analysis on supercomputers.
+ """
+
+ homepage = 'https://gitlab.inria.fr/melissa/melissa'
+ url = 'https://gitlab.inria.fr/melissa/melissa/-/archive/v1.0/melissa-v1.0.tar.bz2'
+ git = 'https://gitlab.inria.fr/melissa/melissa.git'
+
+ # attention: Git**Hub**.com accounts
+ maintainers = ['christoph-conrads', 'raffino']
+
+ version('master', branch='master')
+ version('develop', branch='develop')
+ version('0.7.1', sha256='c30584f15fecf6297712a88e4d28851bfd992f31209fd7bb8af2feebe73d539d')
+ version('0.7.0', sha256='a801d0b512e31a0750f98cfca80f8338985e06abf9b26e96f7645a022864e41c', deprecated=True)
+
+ variant('no_mpi_api', default=False, description="Enable the deprecated no-MPI API")
+ variant('shared', default=True, description="Build shared libraries")
+
+ depends_on('cmake@3.7.2:', type='build')
+ depends_on('libzmq@4.1.5:')
+ depends_on('mpi')
+ depends_on('pkgconfig', type='build')
+ depends_on('python@3.5.3:', type=('build', 'run'))
+
+ def cmake_args(self):
+ args = [
+ self.define('BUILD_TESTING', self.run_tests),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('MELISSA_ENABLE_NO_MPI_API', 'no_mpi_api')
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/memaxes/package.py b/var/spack/repos/builtin/packages/memaxes/package.py
index f7f1da41a1..6dba723555 100644
--- a/var/spack/repos/builtin/packages/memaxes/package.py
+++ b/var/spack/repos/builtin/packages/memaxes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/memcached/package.py b/var/spack/repos/builtin/packages/memcached/package.py
index e082c6b04c..bd192869a0 100644
--- a/var/spack/repos/builtin/packages/memcached/package.py
+++ b/var/spack/repos/builtin/packages/memcached/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/meme/package.py b/var/spack/repos/builtin/packages/meme/package.py
index 8dcd186973..bf6b463e52 100644
--- a/var/spack/repos/builtin/packages/meme/package.py
+++ b/var/spack/repos/builtin/packages/meme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,11 @@ class Meme(AutotoolsPackage):
collections of unaligned nucleotide or protein sequences, and to perform a
wide variety of other motif-based analyses."""
- homepage = "http://meme-suite.org"
+ homepage = "https://meme-suite.org"
url = "http://meme-suite.org/meme-software/5.1.1/meme-5.1.1.tar.gz"
+ version('5.3.0', sha256='b2ddec9db972fcf77b29c7deb62df8b1dd8a6638c13c1aa06a5d563c4a7ff756')
+ version('5.2.0', sha256='0cbf8c2172e9b6c07855b8aeec457f4825f0b132f8cbb11192880e2f6033f54f')
version('5.1.1', sha256='38d73d256d431ad4eb7da2c817ce56ff2b4e26c39387ff0d6ada088938b38eb5')
version('4.12.0', sha256='49ff80f842b59d328588acfcd1d15bf94c55fed661d22b0f95f37430cc363a06')
version('4.11.4', sha256='3e869ff57e327a9c8615dbef784e3f1095f7f7a0120cecd55efe10c3f2ee8eb3')
diff --git a/var/spack/repos/builtin/packages/memkind/package.py b/var/spack/repos/builtin/packages/memkind/package.py
index 37175646c6..94d466f863 100644
--- a/var/spack/repos/builtin/packages/memkind/package.py
+++ b/var/spack/repos/builtin/packages/memkind/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Memkind(AutotoolsPackage):
"""The memkind library is a user extensible heap manager built on top of
@@ -23,6 +24,10 @@ class Memkind(AutotoolsPackage):
homepage = "https://github.com/memkind/memkind"
url = "https://github.com/memkind/memkind/archive/v1.7.0.tar.gz"
+ version('1.10.1', sha256='c203615d964a0bb151756ad8a5c9565391ee77d79c1f8b59d2ea8ff87989b294')
+ version('1.10.0', sha256='0399a1d6a179d065cdbc59bb687fcd00d09dfbb1789334acfdf7431a48707d26')
+ version('1.9.0', sha256='491f21c8d09904ad23700c755b9134fbed08bf227506c2fde135429688158b84')
+ version('1.8.0', sha256='8b57c5afa8afa6793e4662322e37620bbb11f119cd8d29654ec00945bbe13a17')
version('1.7.0', sha256='5048eaaa1bc484203c685a019f3f428ab6c9b1cf94ef6d264e299bc0127ec572')
depends_on('autoconf', type='build')
diff --git a/var/spack/repos/builtin/packages/memsurfer/package.py b/var/spack/repos/builtin/packages/memsurfer/package.py
index c7850d58a5..c204f3a168 100644
--- a/var/spack/repos/builtin/packages/memsurfer/package.py
+++ b/var/spack/repos/builtin/packages/memsurfer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/memtester/package.py b/var/spack/repos/builtin/packages/memtester/package.py
index 7821d1b15d..c30d7a4fee 100644
--- a/var/spack/repos/builtin/packages/memtester/package.py
+++ b/var/spack/repos/builtin/packages/memtester/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/meraculous/package.py b/var/spack/repos/builtin/packages/meraculous/package.py
index df4e7109b5..b446214738 100644
--- a/var/spack/repos/builtin/packages/meraculous/package.py
+++ b/var/spack/repos/builtin/packages/meraculous/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mercurial/package.py b/var/spack/repos/builtin/packages/mercurial/package.py
index 620ef19bdb..2041f79eef 100644
--- a/var/spack/repos/builtin/packages/mercurial/package.py
+++ b/var/spack/repos/builtin/packages/mercurial/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 llnl.util import tty
+from spack import *
+
class Mercurial(PythonPackage):
"""Mercurial is a free, distributed source control management tool."""
@@ -13,13 +14,10 @@ class Mercurial(PythonPackage):
homepage = "https://www.mercurial-scm.org"
url = "https://www.mercurial-scm.org/release/mercurial-5.3.tar.gz"
- import_modules = [
- 'hgext', 'hgext3rd', 'mercurial', 'hgext.convert', 'hgext.fsmonitor',
- 'hgext.highlight', 'hgext.largefiles', 'hgext.zeroconf',
- 'hgext.fsmonitor.pywatchman', 'mercurial.hgweb',
- 'mercurial.httpclient', 'mercurial.pure'
- ]
-
+ version('5.8', sha256='fc5d6a8f6478d88ef83cdd0ab6d86ad68ee722bbdf4964e6a0b47c3c6ba5309f')
+ version('5.7.1', sha256='cb5139144ccb2ef648f36963c8606d47dea1cb0e22aa2c055d6f860ce3fde7b0')
+ version('5.7', sha256='609c3e7c9276dd75b03b713eccc10f5e0553001f35ae21600bcea1509699c601')
+ version('5.6.1', sha256='e55c254f4904c45226a106780e57f4279aee03368f6ff6a981d5d2a38243ffad')
version('5.3', sha256='e57ff61d6b67695149dd451922b40aa455ab02e01711806a131a1e95c544f9b9')
version('5.1.2', sha256='15af0b090b23649e0e53621a88dde97b55a734d7cb08b77d3df284db70d44e2e')
version('5.1.1', sha256='35fc8ba5e0379c1b3affa2757e83fb0509e8ac314cbd9f1fd133cf265d16e49f')
@@ -33,8 +31,8 @@ class Mercurial(PythonPackage):
version('3.8.2', sha256='cb78b16956140625266a8a6d1fadc7c868969d994086e1ec60279a66bf20bffd')
version('3.8.1', sha256='face1f058de5530b56b0dfd3b4d0b23d89590c588605c06f3d18b79e8c30d594')
- depends_on('python@2.6:2.8', when='@:4.2.99', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.5.3:3.5.999,3.6.2:', when='@4.3:', type=('build', 'run'))
+ depends_on('python+bz2+ssl+zlib@2.6:2.8', when='@:4.2.99', type=('build', 'run'))
+ depends_on('python+bz2+ssl+zlib@2.7:2.8,3.5.3:3.5.999,3.6.2:', when='@4.3:', type=('build', 'run'))
depends_on('py-setuptools', when='@3.6:', type='build')
depends_on('py-docutils', type='build')
depends_on('py-pygments', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/mercury/package.py b/var/spack/repos/builtin/packages/mercury/package.py
index 239d911d15..3b348aeaeb 100644
--- a/var/spack/repos/builtin/packages/mercury/package.py
+++ b/var/spack/repos/builtin/packages/mercury/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,7 @@ class Mercury(CMakePackage):
maintainers = ['soumagne']
version('master', branch='master', submodules=True)
+ version('2.0.1', sha256='335946d9620ac669643ffd9861a5fb3ee486834bab674b7779eaac9d6662e3fa')
version('2.0.0', sha256='9e80923712e25df56014309df70660e828dbeabbe5fcc82ee024bcc86e7eb6b7')
version('1.0.1', sha256='02febd56c401ef7afa250caf28d012b37dee842bfde7ee16fcd2f741b9cf25b3')
version('1.0.0', sha256='fb0e44d13f4652f53e21040435f91d452bc2b629b6e98dcf5292cd0bece899d4')
@@ -39,6 +40,8 @@ class Mercury(CMakePackage):
description='Enable udreg on supported Cray platforms')
variant('debug', default=False,
description='Enable Mercury to print debug output')
+ variant('checksum', default=True,
+ description='Checksum verify all request/response messages')
depends_on('cmake@2.8.12.2:', type='build')
# depends_on('cci', when='+cci') # TODO: add CCI package
@@ -56,6 +59,12 @@ class Mercury(CMakePackage):
# See https://github.com/mercury-hpc/mercury/issues/299
patch('fix-cmake-3.15-check_symbol_exists.patch', when='@1.0.0:1.0.1')
+ def flag_handler(self, name, flags):
+ if self.spec.satisfies('%cce'):
+ if name == 'ldflags':
+ flags.append('-Wl,-z,muldefs')
+ return (None, None, flags)
+
def cmake_args(self):
"""Populate cmake arguments for Mercury."""
spec = self.spec
@@ -67,7 +76,7 @@ class Mercury(CMakePackage):
'-DBUILD_TESTING:BOOL=%s' % str(self.run_tests),
'-DMERCURY_ENABLE_PARALLEL_TESTING:BOOL=%s' % str(parallel_tests),
'-DMERCURY_USE_BOOST_PP:BOOL=ON',
- '-DMERCURY_USE_CHECKSUMS:BOOL=ON',
+ '-DMERCURY_USE_CHECKSUMS:BOOL=%s' % variant_bool('+checksum'),
'-DMERCURY_USE_SYSTEM_MCHECKSUM:BOOL=OFF',
'-DMERCURY_USE_XDR:BOOL=OFF',
'-DNA_USE_BMI:BOOL=%s' % variant_bool('+bmi'),
diff --git a/var/spack/repos/builtin/packages/mesa-demos/package.py b/var/spack/repos/builtin/packages/mesa-demos/package.py
index b6824b5602..8adc35710b 100644
--- a/var/spack/repos/builtin/packages/mesa-demos/package.py
+++ b/var/spack/repos/builtin/packages/mesa-demos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class MesaDemos(AutotoolsPackage):
"""This package provides some demo applications for testing Mesa."""
- homepage = "http://www.mesa3d.org"
+ homepage = "https://www.mesa3d.org"
url = "https://github.com/freedesktop/mesa-demos/archive/mesa-demos-8.3.0.tar.gz"
version('8.3.0', sha256='9bc1b37f4fc7bfc3f818f2d3851ffde28e8167ef11dca87f4781e9ef6206901f')
diff --git a/var/spack/repos/builtin/packages/mesa-glu/package.py b/var/spack/repos/builtin/packages/mesa-glu/package.py
index bd3c90b020..9cf5bd0e66 100644
--- a/var/spack/repos/builtin/packages/mesa-glu/package.py
+++ b/var/spack/repos/builtin/packages/mesa-glu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py
index e2da830f72..02c5f7d132 100644
--- a/var/spack/repos/builtin/packages/mesa/package.py
+++ b/var/spack/repos/builtin/packages/mesa/package.py
@@ -1,35 +1,41 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Mesa(MesonPackage):
"""Mesa is an open-source implementation of the OpenGL specification
- a system for rendering interactive 3D graphics."""
- homepage = "http://www.mesa3d.org"
+ homepage = "https://www.mesa3d.org"
maintainers = ['chuckatkins', 'v-dobrev']
git = "https://gitlab.freedesktop.org/mesa/mesa.git"
url = "https://archive.mesa3d.org/mesa-20.2.1.tar.xz"
version('master', tag='master')
+ version('21.2.1', sha256='2c65e6710b419b67456a48beefd0be827b32db416772e0e363d5f7d54dc01787')
+ version('21.0.3', sha256='565c6f4bd2d5747b919454fc1d439963024fc78ca56fd05158c3b2cde2f6912b')
+ version('21.0.0', sha256='e6204e98e6a8d77cf9dc5d34f99dd8e3ef7144f3601c808ca0dd26ba522e0d84')
+ version('20.3.4', sha256='dc21a987ec1ff45b278fe4b1419b1719f1968debbb80221480e44180849b4084')
version('20.2.1', sha256='d1a46d9a3f291bc0e0374600bdcb59844fa3eafaa50398e472a36fc65fd0244a')
depends_on('meson@0.52:', type='build')
depends_on('pkgconfig', type='build')
- depends_on('binutils', when=(sys.platform != 'darwin'), type='build')
depends_on('bison', type='build')
+ depends_on('cmake', type='build')
depends_on('flex', type='build')
depends_on('gettext', type='build')
depends_on('python@3:', type='build')
depends_on('py-mako@0.8.0:', type='build')
+ depends_on('expat')
+ depends_on('zlib@1.2.3:')
# Internal options
variant('llvm', default=True, description="Enable LLVM.")
@@ -70,7 +76,33 @@ class Mesa(MesonPackage):
depends_on('libxext', when='+glx')
depends_on('libxt', when='+glx')
depends_on('xrandr', when='+glx')
- depends_on('glproto@1.4.14:', when='+glx', type='build')
+ depends_on('glproto@1.4.14:', when='+glx')
+
+ # version specific issue
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96130
+ conflicts('%gcc@10.1.0', msg='GCC 10.1.0 has a bug')
+
+ # Require at least 1 front-end
+ # TODO: Add egl to this conflict once made available
+ conflicts('~osmesa ~glx')
+
+ # Require at least 1 back-end
+ # TODO: Add vulkan to this conflict once made available
+ conflicts('~opengl ~opengles')
+
+ # OpenGL ES requires OpenGL
+ conflicts('~opengl +opengles')
+
+ # requires native to be added to llvm_modules when using gallium swrast
+ patch('https://cgit.freedesktop.org/mesa/mesa/patch/meson.build?id=054dd668a69acc70d47c73abe4646e96a1f23577', sha256='36096a178070e40217945e12d542dfe80016cb897284a01114d616656c577d73', when='@21.0.0:21.0.3')
+
+ # 'auto' needed when shared llvm is built
+ @when('^llvm~shared_libs')
+ def patch(self):
+ filter_file(
+ r"_llvm_method = 'auto'",
+ "_llvm_method = 'config-tool'",
+ "meson.build")
def meson_args(self):
spec = self.spec
@@ -95,11 +127,17 @@ class Mesa(MesonPackage):
args.append('-Dlibunwind=disabled')
num_frontends = 0
+
+ if spec.satisfies('@:20.3'):
+ osmesa_enable, osmesa_disable = ('gallium', 'none')
+ else:
+ osmesa_enable, osmesa_disable = ('true', 'false')
+
if '+osmesa' in spec:
num_frontends += 1
- args.append('-Dosmesa=gallium')
+ args.append('-Dosmesa={0}'.format(osmesa_enable))
else:
- args.append('-Dosmesa=none')
+ args.append('-Dosmesa={0}'.format(osmesa_disable))
if '+glx' in spec:
num_frontends += 1
@@ -187,7 +225,6 @@ class Mesa(MesonPackage):
if libs_to_seek:
return find_libraries(list(libs_to_seek),
root=self.spec.prefix,
- shared='+shared' in self.spec,
recursive=True)
return LibraryList()
@@ -195,19 +232,16 @@ class Mesa(MesonPackage):
def osmesa_libs(self):
return find_libraries('libOSMesa',
root=self.spec.prefix,
- shared='+shared' in self.spec,
recursive=True)
@property
def glx_libs(self):
return find_libraries('libGL',
root=self.spec.prefix,
- shared='+shared' in self.spec,
recursive=True)
@property
def gl_libs(self):
return find_libraries('libGL',
root=self.spec.prefix,
- shared='+shared' in self.spec,
recursive=True)
diff --git a/var/spack/repos/builtin/packages/mesa18/package.py b/var/spack/repos/builtin/packages/mesa18/package.py
index 10d4275c6c..b75ef64751 100644
--- a/var/spack/repos/builtin/packages/mesa18/package.py
+++ b/var/spack/repos/builtin/packages/mesa18/package.py
@@ -1,19 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Mesa18(AutotoolsPackage):
"""Mesa is an open-source implementation of the OpenGL specification
- a system for rendering interactive 3D graphics."""
- homepage = "http://www.mesa3d.org"
- maintainers = ['v-dobrev', 'chuckatkins']
+ homepage = "https://www.mesa3d.org"
+ maintainers = ['v-dobrev', 'chuckatkins', 'ChristianTackeGSI']
# Note that we always want to build from the git repo instead of a
# tarball since the tarball has pre-generated files for certain versions
@@ -21,14 +21,14 @@ class Mesa18(AutotoolsPackage):
# whatever version of LLVM you're using.
git = "https://gitlab.freedesktop.org/mesa/mesa.git"
- version('18.3.6', tag='mesa-18.3.6', preferred=True)
+ version('18.3.6', tag='mesa-18.3.6')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
depends_on('pkgconfig', type='build')
- depends_on('binutils', when=(sys.platform != 'darwin'), type='build')
+ depends_on('binutils+plugins', when=(sys.platform != 'darwin'), type='build')
depends_on('bison', type='build')
depends_on('flex', type='build')
depends_on('gettext', type='build')
@@ -52,22 +52,12 @@ class Mesa18(AutotoolsPackage):
is_linux = sys.platform.startswith('linux')
variant('glx', default=is_linux, description="Enable the GLX frontend.")
- # TODO: effectively deal with EGL. The implications of this have not been
- # worked through yet
- # variant('egl', default=False, description="Enable the EGL frontend.")
-
- # TODO: Effectively deal with hardware drivers
- # The implication of this is enabling DRI, among other things, and
- # needing to check which llvm targets were built (ptx or amdgpu, etc.)
-
- # Back ends
- variant('opengl', default=True, description="Enable full OpenGL support.")
+ # Additional backends
variant('opengles', default=False, description="Enable OpenGL ES support.")
# Provides
- provides('gl@4.5', when='+opengl')
+ provides('gl@4.5')
provides('glx@1.4', when='+glx')
- # provides('egl@1.5', when='+egl')
provides('osmesa', when='+osmesa')
# Variant dependencies
@@ -75,7 +65,10 @@ class Mesa18(AutotoolsPackage):
depends_on('libx11', when='+glx')
depends_on('libxcb', when='+glx')
depends_on('libxext', when='+glx')
- depends_on('glproto@1.4.14:', when='+glx', type='build')
+ depends_on('glproto@1.4.14:', when='+glx')
+
+ # Require at least 1 front-end
+ conflicts('~osmesa ~glx')
# Prevent an unnecessary xcb-dri dependency
patch('autotools-x11-nodri.patch')
@@ -103,7 +96,12 @@ class Mesa18(AutotoolsPackage):
'--disable-xa',
'--disable-xvmc',
'--disable-osmesa',
- '--with-vulkan-drivers=']
+ '--with-vulkan-drivers=',
+ '--disable-egl',
+ '--disable-gbm',
+ '--disable-dri',
+ '--enable-opengl']
+
args_platforms = []
args_gallium_drivers = ['swrast']
args_dri_drivers = []
@@ -120,26 +118,11 @@ class Mesa18(AutotoolsPackage):
if '+glx' in spec:
num_frontends += 1
- if '+egl' in spec:
- args.append('--enable-glx=dri')
- else:
- args.append('--enable-glx=gallium-xlib')
+ args.append('--enable-glx=gallium-xlib')
args_platforms.append('x11')
else:
args.append('--disable-glx')
- if '+egl' in spec:
- num_frontends += 1
- args.extend(['--enable-egl', '--enable-gbm', '--enable-dri'])
- args_platforms.append('surfaceless')
- else:
- args.extend(['--disable-egl', '--disable-gbm', '--disable-dri'])
-
- if '+opengl' in spec:
- args.append('--enable-opengl')
- else:
- args.append('--disable-opengl')
-
if '+opengles' in spec:
args.extend(['--enable-gles1', '--enable-gles2'])
else:
@@ -193,8 +176,7 @@ class Mesa18(AutotoolsPackage):
if '+glx' in spec:
libs_to_seek.add('libGL')
- if '+opengl' in spec:
- libs_to_seek.add('libGL')
+ libs_to_seek.add('libGL')
if '+opengles' in spec:
libs_to_seek.add('libGLES')
@@ -203,7 +185,7 @@ class Mesa18(AutotoolsPackage):
if libs_to_seek:
return find_libraries(list(libs_to_seek),
root=self.spec.prefix,
- shared='+shared' in self.spec,
+ shared=True,
recursive=True)
return LibraryList()
@@ -211,19 +193,19 @@ class Mesa18(AutotoolsPackage):
def osmesa_libs(self):
return find_libraries('libOSMesa',
root=self.spec.prefix,
- shared='+shared' in self.spec,
+ shared=True,
recursive=True)
@property
def glx_libs(self):
return find_libraries('libGL',
root=self.spec.prefix,
- shared='+shared' in self.spec,
+ shared=True,
recursive=True)
@property
def gl_libs(self):
return find_libraries('libGL',
root=self.spec.prefix,
- shared='+shared' in self.spec,
+ shared=True,
recursive=True)
diff --git a/var/spack/repos/builtin/packages/meshkit/package.py b/var/spack/repos/builtin/packages/meshkit/package.py
index a103db11c9..4da9638c88 100644
--- a/var/spack/repos/builtin/packages/meshkit/package.py
+++ b/var/spack/repos/builtin/packages/meshkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class Meshkit(AutotoolsPackage):
meshing algorithms for use in real meshing problems, along with
other tools commonly needed to support mesh generation"""
- homepage = "http://sigma.mcs.anl.gov/meshkit-library"
- url = "http://ftp.mcs.anl.gov/pub/fathom/meshkit-1.5.0.tar.gz"
+ homepage = "https://sigma.mcs.anl.gov/meshkit-library"
+ url = "https://ftp.mcs.anl.gov/pub/fathom/meshkit-1.5.0.tar.gz"
version('1.5.0', sha256='6a4c119af191e24ef40644acb7cfbe967af0678ac3412f38a943fb28d661cac7')
diff --git a/var/spack/repos/builtin/packages/meson/package.py b/var/spack/repos/builtin/packages/meson/package.py
index e60101d5bc..4c40114030 100644
--- a/var/spack/repos/builtin/packages/meson/package.py
+++ b/var/spack/repos/builtin/packages/meson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,11 +11,20 @@ class Meson(PythonPackage):
"""Meson is a portable open source build system meant to be both
extremely fast, and as user friendly as possible."""
- homepage = "http://mesonbuild.com/"
+ homepage = "https://mesonbuild.com/"
url = "https://github.com/mesonbuild/meson/archive/0.49.0.tar.gz"
maintainers = ['michaelkuhn']
+ version('0.59.1', sha256='f256eb15329a6064f8cc1f23b29de1fa8d21e324f939041e1a4efe77cf1362ef')
+ version('0.59.0', sha256='fdbbe8ea8a47f9e21cf4f578f85be8ec3d9c030df3d8cb17df1ae59d8683813a')
+ version('0.58.2', sha256='58115604dea9c1f70811578df3c210f4d67cf795d21a4418f6e9bb35406953f5')
+ version('0.58.1', sha256='78e0f553dd3bc632d5f96ab943b1bbccb599c2c84ff27c5fb7f7fff9c8a3f6b4')
+ version('0.58.0', sha256='991b882bfe4d37acc23c064a29ca209458764a580d52f044f3d50055a132bed4')
+ version('0.57.2', sha256='cd3773625253df4fd1c380faf03ffae3d02198d6301e7c8bc7bba6c66af66096')
+ version('0.57.1', sha256='0c043c9b5350e9087cd4f6becf6c0d10b1d618ca3f919e0dcca2cdf342360d5d')
+ version('0.57.0', sha256='fd26a27c1a509240c668ebd29d280649d9239cf8684ead51d5cb499d1e1188bd')
+ version('0.56.2', sha256='aaae961c3413033789248ffe6762589e80b6cf487c334d0b808e31a32c48f35f')
version('0.56.0', sha256='a9ca7adf66dc69fbb7e583f7c7aef16b9fe56ec2874a3d58747e69a3affdf300')
version('0.55.3', sha256='2b276df50c5b13ccdbfb14d3333141e9e7985aca31b60400b3f3e0be2ee6897e')
version('0.55.2', sha256='56244896e56c2b619f819d047b6de412ecc5250975ee8717f1e329113d178e06')
@@ -32,6 +41,7 @@ class Meson(PythonPackage):
version('0.41.2', sha256='2daf448d3f2479d60e30617451f09bf02d26304dd1bd12ee1de936a53e42c7a4')
version('0.41.1', sha256='a48901f02ffeb9ff5cf5361d71b1fca202f9cd72998043ad011fc5de0294cf8b')
+ depends_on('python@3.6:', when='@0.57.0:', type=('build', 'run'))
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
depends_on('ninja', type='run')
@@ -41,7 +51,8 @@ class Meson(PythonPackage):
# are not reverted.
patch('rpath-0.49.patch', when='@0.49:0.53')
patch('rpath-0.54.patch', when='@0.54:0.55')
- patch('rpath-0.56.patch', when='@0.56')
+ patch('rpath-0.56.patch', when='@0.56:0.57')
+ patch('rpath-0.58.patch', when='@0.58:')
executables = ['^meson$']
diff --git a/var/spack/repos/builtin/packages/meson/rpath-0.58.patch b/var/spack/repos/builtin/packages/meson/rpath-0.58.patch
new file mode 100644
index 0000000000..9e35933ed9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/meson/rpath-0.58.patch
@@ -0,0 +1,12 @@
+--- a/mesonbuild/scripts/depfixer.py 2021-05-11 21:50:38.800645669 +0200
++++ b/mesonbuild/scripts/depfixer.py 2021-05-11 21:51:44.503883473 +0200
+@@ -479,6 +479,9 @@
+
+ def fix_rpath(fname: str, rpath_dirs_to_remove: T.Set[bytes], new_rpath: T.Union[str, bytes], final_path: str, install_name_mappings: T.Dict[str, str], verbose: bool = True) -> None:
+ global INSTALL_NAME_TOOL
++ # Do not strip rpath when run from within Spack
++ if 'SPACK_RPATH_DIRS' in os.environ:
++ return
+ # Static libraries, import libraries, debug information, headers, etc
+ # never have rpaths
+ # DLLs and EXE currently do not need runtime path fixing
diff --git a/var/spack/repos/builtin/packages/mesquite/package.py b/var/spack/repos/builtin/packages/mesquite/package.py
index d5f3516652..7d4843aee1 100644
--- a/var/spack/repos/builtin/packages/mesquite/package.py
+++ b/var/spack/repos/builtin/packages/mesquite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/metabat/package.py b/var/spack/repos/builtin/packages/metabat/package.py
index fa5a424396..8e7c675947 100644
--- a/var/spack/repos/builtin/packages/metabat/package.py
+++ b/var/spack/repos/builtin/packages/metabat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/metall/package.py b/var/spack/repos/builtin/packages/metall/package.py
index e3aee3ed98..1409f173d4 100644
--- a/var/spack/repos/builtin/packages/metall/package.py
+++ b/var/spack/repos/builtin/packages/metall/package.py
@@ -1,31 +1,57 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Metall(CMakePackage):
- """An allocator for persistent memory"""
+ """A Persistent Memory Allocator For Data-Centric Analytics"""
homepage = "https://github.com/LLNL/metall"
git = "https://github.com/LLNL/metall.git"
- url = "https://github.com/LLNL/metall/archive/v0.2.tar.gz"
+ url = "https://github.com/LLNL/metall/archive/v0.16.tar.gz"
maintainers = ['KIwabuchi', 'rogerpearce', 'mayagokhale']
version('master', branch='master')
version('develop', branch='develop')
- version('0.7', sha256='17430758a0d2821d1220b03c2635f44739400bad1ffe308fd3da6e38ae875ced')
- version('0.6', sha256='123234c7214b666ed51db255c3e2acf98c2cd91bdf1cd0a254bdb893c2148afa')
- version('0.5', sha256='7d710dc3d5270c799d3506566e5c3c45b94d6f87fb5e05bbaecdca04e42f2966')
- version('0.4', sha256='6309dab9cffba3bfc957f23e5a287de00966237baafea759866b2961d8db34ea')
- version('0.3', sha256='abecdd245eae69088e001cc0c641e8f560b554a726a515eebd7b7f7fb43361e5')
- version('0.2', sha256='35cdf3505d2f8d0282a0d5c60b69a0ec5ec6d77ac3facce7549eb874df27be1d')
+ version('0.16', sha256='190fa6936cbbfad1844659eb1fcfd1ad8c5880f60e76e223e33c506d371ea3a3')
+ version('0.15', sha256='a1ea475ce1297b0c4cdf450544dc60ecf1b0a30c548b08ba77ccda5585df7248')
+ version('0.14', sha256='386a6db0cfd3b3693cf8b0de323dcb60d43777aa5c871b744c9e8c19a572a917')
+ version('0.13', sha256='959d37d0a7e7e5b4d5e6c0334aaaeef1b463e855fa8e807042f662c993ed60b1')
+ version('0.12', sha256='b757b354b355e866bd6d42da53b0160442f3b7f663a19ba113da1ffc1a76176e')
+ version('0.11', sha256='7cfa6a7eaaeb7fd11ecfbe43a172a36c8cde200601d6cd3b309d7a0acf752f3c')
+ version('0.10', sha256='58b4b5507d4db5baca315b1bed2b728981755d755b91ef63bd0b6dfaf320f46b')
+ version('0.9', sha256='2d7bd9ea2f1e04136050f210884445a9e3dcb96c992cf42ff9ea4b392f85f927')
+ depends_on('cmake@3.10:', type='build')
depends_on('boost@1.64:', type=('build', 'link'))
+ # googletest is required only for test
+ # 'make test' is executed if '--run-tests' or '--test=root' is specified
+ depends_on('googletest', type=('test'))
def cmake_args(self):
- args = []
- args.append('-DINSTALL_HEADER_ONLY=ON')
- return args
+ if self.run_tests:
+ args = ['-DBUILD_TEST=ON', '-DSKIP_DOWNLOAD_GTEST=ON']
+ return args
+ else:
+ args = ['-DINSTALL_HEADER_ONLY=ON']
+ return args
+
+ # Set environmental variables for the build step
+ # setup_environment() was replaced by setup_build_environment()?
+ # (https://github.com/spack/spack/pull/11115)
+ # This page has not been updated?
+ # https://spack-tutorial.readthedocs.io/en/latest/tutorial_advanced_packaging.html
+ def setup_build_environment(self, env):
+ # Configure the directories for test
+ if self.run_tests:
+ env.set(
+ 'METALL_TEST_DIR',
+ join_path(self.build_directory, 'build_test')
+ )
+
+ # 'spack load metall' sets METALL_ROOT environmental variable
+ def setup_run_environment(self, env):
+ env.set('METALL_ROOT', self.prefix)
diff --git a/var/spack/repos/builtin/packages/metaphysicl/package.py b/var/spack/repos/builtin/packages/metaphysicl/package.py
index e281f40fe5..4adabea075 100644
--- a/var/spack/repos/builtin/packages/metaphysicl/package.py
+++ b/var/spack/repos/builtin/packages/metaphysicl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/metis/package.py b/var/spack/repos/builtin/packages/metis/package.py
index 37d8ef06be..193b41a6e2 100644
--- a/var/spack/repos/builtin/packages/metis/package.py
+++ b/var/spack/repos/builtin/packages/metis/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
import os
+import sys
+
+from spack import *
class Metis(Package):
@@ -16,19 +17,12 @@ class Metis(Package):
multilevel recursive-bisection, multilevel k-way, and multi-constraint
partitioning schemes."""
- #
- # The original metis website: http://glaros.dtc.umn.edu/gkhome/metis/metis/overview
- # is down sometimes. This is a github mirror that provides metis 5.1.0
- #
-
- homepage = "https://github.com/scivision/METIS/"
- url = "https://github.com/scivision/METIS/raw/master/metis-5.1.0.tar.gz"
+ homepage = "http://glaros.dtc.umn.edu/gkhome/metis/metis/overview"
+ url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz"
+ list_url = "http://glaros.dtc.umn.edu/gkhome/fsroot/sw/metis/OLD"
version('5.1.0', sha256='76faebe03f6c963127dbb73c13eab58c9a3faeae48779f049066a21c087c5db2')
- # For v4.0.3, use the original metis website since this version is not
- # mirrored at the above github location.
- version('4.0.3', url='http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-4.0.3.tar.gz',
- sha256='5efa35de80703c1b2c4d0de080fafbcf4e0d363a21149a1ad2f96e0144841a55')
+ version('4.0.3', sha256='5efa35de80703c1b2c4d0de080fafbcf4e0d363a21149a1ad2f96e0144841a55')
variant('shared', default=True, description='Enables the build of shared libraries.')
variant('gdb', default=False, description='Enables gdb support (version 5+).')
@@ -59,6 +53,17 @@ class Metis(Package):
# Ignore warnings/errors re unrecognized omp pragmas on %intel
if '%intel@14:' in self.spec:
env.append_flags('CFLAGS', '-diag-disable 3180')
+ # Ignore some warnings to get it to compile with %nvhpc
+ # 111: statement is unreachable
+ # 177: variable "foo" was declared but never referenced
+ # 188: enumerated type mixed with another type
+ # 550: variable "foo" was set but never used
+ if '%nvhpc' in self.spec:
+ env.append_flags('CFLAGS', '--display_error_number')
+ env.append_flags('CFLAGS', '--diag_suppress 111')
+ env.append_flags('CFLAGS', '--diag_suppress 177')
+ env.append_flags('CFLAGS', '--diag_suppress 188')
+ env.append_flags('CFLAGS', '--diag_suppress 550')
@when('@5:')
def patch(self):
diff --git a/var/spack/repos/builtin/packages/metkit/package.py b/var/spack/repos/builtin/packages/metkit/package.py
new file mode 100644
index 0000000000..e0324d6079
--- /dev/null
+++ b/var/spack/repos/builtin/packages/metkit/package.py
@@ -0,0 +1,51 @@
+# Copyright 2013-2021 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 Metkit(CMakePackage):
+ """Toolkit for manipulating and describing meteorological objects,
+ implementing the MARS language and associated processing and semantics."""
+
+ homepage = 'https://github.com/ecmwf/metkit'
+ url = 'https://github.com/ecmwf/metkit/archive/refs/tags/1.7.0.tar.gz'
+
+ maintainers = ['skosukhin']
+
+ version('1.7.0', sha256='8c34f6d8ea5381bd1bcfb22462349d03e1592e67d8137e76b3cecf134a9d338c')
+
+ variant('tools', default=True, description='Build the command line tools')
+ variant('grib', default=True, description='Enable support for GRIB format')
+ variant('odb', default=False, description='Enable support for ODB data')
+
+ depends_on('cmake@3.12:', type='build')
+ depends_on('ecbuild@3.4:', type='build')
+
+ depends_on('eckit@1.16:')
+
+ depends_on('eccodes@2.5:', when='+grib')
+
+ depends_on('odc', when='+odb')
+
+ conflicts('+tools', when='~grib~odb',
+ msg='None of the command line tools is built when both '
+ 'GRIB format and ODB data support are disabled')
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('ENABLE_BUILD_TOOLS', 'tools'),
+ self.define_from_variant('ENABLE_GRIB', 'grib'),
+ self.define_from_variant('ENABLE_ODC', 'odb'),
+ # The tests download additional data (~4KB):
+ self.define('ENABLE_TESTS', self.run_tests),
+ # The library does not really implement support for BUFR format:
+ self.define('ENABLE_BUFR', False),
+ # The library does not really implement support for NetCDF format:
+ self.define('ENABLE_NETCDF', False),
+ # We do not need any experimental features:
+ self.define('ENABLE_EXPERIMENTAL', False)
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/mfem/mfem-4.2-petsc-3.15.0.patch b/var/spack/repos/builtin/packages/mfem/mfem-4.2-petsc-3.15.0.patch
new file mode 100644
index 0000000000..cb79a2130f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mfem/mfem-4.2-petsc-3.15.0.patch
@@ -0,0 +1,32 @@
+diff --git a/linalg/petsc.cpp b/linalg/petsc.cpp
+index fcfdd325f..90eedf042 100644
+--- a/linalg/petsc.cpp
++++ b/linalg/petsc.cpp
+@@ -1872,8 +1872,13 @@ void PetscSolver::SetPrintLevel(int plev)
+ {
+ ierr = PetscViewerAndFormatCreate(viewer,PETSC_VIEWER_DEFAULT,&vf);
+ PCHKERRQ(viewer,ierr);
++#if PETSC_VERSION_LT(3,15,0)
+ ierr = KSPMonitorSet(ksp,(myMonitor)KSPMonitorTrueResidualNorm,vf,
+ (myPetscFunc)PetscViewerAndFormatDestroy);
++#else
++ ierr = KSPMonitorSet(ksp,(myMonitor)KSPMonitorTrueResidual,vf,
++ (myPetscFunc)PetscViewerAndFormatDestroy);
++#endif
+ PCHKERRQ(ksp,ierr);
+ }
+ }
+@@ -2887,8 +2892,13 @@ void PetscBDDCSolver::BDDCSolverConstructor(const PetscBDDCSolverParams &opts)
+
+ ierr = VecGetArrayRead(pvec_coords,&garray); CCHKERRQ(PETSC_COMM_SELF,ierr);
+ ierr = VecGetArray(lvec_coords,&larray); CCHKERRQ(PETSC_COMM_SELF,ierr);
++#if PETSC_VERSION_LT(3,15,0)
+ ierr = PetscSFBcastBegin(sf,MPIU_SCALAR,garray,larray); CCHKERRQ(comm,ierr);
+ ierr = PetscSFBcastEnd(sf,MPIU_SCALAR,garray,larray); CCHKERRQ(comm,ierr);
++#else
++ ierr = PetscSFBcastBegin(sf,MPIU_SCALAR,garray,larray,MPI_REPLACE); CCHKERRQ(comm,ierr);
++ ierr = PetscSFBcastEnd(sf,MPIU_SCALAR,garray,larray,MPI_REPLACE); CCHKERRQ(comm,ierr);
++#endif
+ ierr = VecRestoreArrayRead(pvec_coords,&garray); CCHKERRQ(PETSC_COMM_SELF,ierr);
+ ierr = VecRestoreArray(lvec_coords,&larray); CCHKERRQ(PETSC_COMM_SELF,ierr);
+ }
diff --git a/var/spack/repos/builtin/packages/mfem/mfem-4.2-slepc.patch b/var/spack/repos/builtin/packages/mfem/mfem-4.2-slepc.patch
new file mode 100644
index 0000000000..8ba4338c4e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mfem/mfem-4.2-slepc.patch
@@ -0,0 +1,40 @@
+diff --git a/linalg/slepc.hpp b/linalg/slepc.hpp
+index 7f8911ba2..5b1f1c686 100644
+--- a/linalg/slepc.hpp
++++ b/linalg/slepc.hpp
+@@ -19,12 +19,15 @@
+
+ #include "petsc.hpp"
+
+-// Forward declarations
+-typedef struct _p_EPS *EPS;
++// Forward declaration of SLEPc's internal struct _p_EPS:
++struct _p_EPS;
+
+ namespace mfem
+ {
+
++// Declare an alias of SLEPc's EPS type, mfem::slepc::EPS:
++namespace slepc { typedef struct ::_p_EPS *EPS; }
++
+ void MFEMInitializeSlepc();
+ void MFEMInitializeSlepc(int*,char***);
+ void MFEMInitializeSlepc(int*,char***,const char[],const char[]);
+@@ -37,7 +40,7 @@ private:
+ mutable bool clcustom;
+
+ /// SLEPc linear eigensolver object
+- EPS eps;
++ slepc::EPS eps;
+
+ /// Real and imaginary part of eigenvector
+ mutable PetscParVector *VR, *VC;
+@@ -102,7 +105,7 @@ public:
+ void SetSpectralTransformation(SpectralTransformation transformation);
+
+ /// Conversion function to SLEPc's EPS type.
+- operator EPS() const { return eps; }
++ operator slepc::EPS() const { return eps; }
+
+ /// Conversion function to PetscObject
+ operator PetscObject() const {return (PetscObject)eps; }
diff --git a/var/spack/repos/builtin/packages/mfem/mfem-4.2-umpire.patch b/var/spack/repos/builtin/packages/mfem/mfem-4.2-umpire.patch
new file mode 100644
index 0000000000..9ab0214d6c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mfem/mfem-4.2-umpire.patch
@@ -0,0 +1,24 @@
+diff --git a/general/mem_manager.cpp b/general/mem_manager.cpp
+index ff4a03465..748f6e673 100644
+--- a/general/mem_manager.cpp
++++ b/general/mem_manager.cpp
+@@ -482,7 +482,8 @@ public:
+ HostMemorySpace(),
+ name(mm.GetUmpireAllocatorHostName()),
+ rm(umpire::ResourceManager::getInstance()),
+- h_allocator(rm.isAllocator(name)? rm.getAllocator(name):
++ h_allocator((!std::strcmp(name, "HOST") || rm.isAllocator(name)) ?
++ rm.getAllocator(name) :
+ rm.makeAllocator<umpire::strategy::DynamicPool>
+ (name, rm.getAllocator("HOST"))),
+ strat(h_allocator.getAllocationStrategy()) { }
+@@ -506,7 +507,8 @@ public:
+ DeviceMemorySpace(),
+ name(mm.GetUmpireAllocatorDeviceName()),
+ rm(umpire::ResourceManager::getInstance()),
+- d_allocator(rm.isAllocator(name)? rm.getAllocator(name):
++ d_allocator((!std::strcmp(name, "DEVICE") || rm.isAllocator(name)) ?
++ rm.getAllocator(name) :
+ rm.makeAllocator<umpire::strategy::DynamicPool>
+ (name, rm.getAllocator("DEVICE"))) { }
+ void Alloc(Memory &base) { base.d_ptr = d_allocator.allocate(base.bytes); }
diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py
index c7f7e7e4d9..27fcac8d67 100644
--- a/var/spack/repos/builtin/packages/mfem/package.py
+++ b/var/spack/repos/builtin/packages/mfem/package.py
@@ -1,14 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+import sys
+
+from spack import *
-class Mfem(Package):
+class Mfem(Package, CudaPackage, ROCmPackage):
"""Free, lightweight, scalable C++ library for finite element methods."""
tags = ['FEM', 'finite elements', 'high-order', 'AMR', 'HPC']
@@ -19,6 +21,8 @@ class Mfem(Package):
maintainers = ['v-dobrev', 'tzanio', 'acfisher',
'goxberry', 'markcmiller86']
+ test_requires_compiler = True
+
# Recommended mfem builds to test when updating this file: see the shell
# script 'test_builds.sh' in the same directory as this file.
@@ -32,7 +36,7 @@ class Mfem(Package):
# 1. Verify that no checksums on old versions have changed.
#
# 2. Verify that the shortened URL for the new version is listed at:
- # http://mfem.org/download/
+ # https://mfem.org/download/
#
# 3. Use http://getlinkinfo.com or similar to verify that the
# underling download link for the latest version comes has the
@@ -45,47 +49,50 @@ class Mfem(Package):
# other version.
version('develop', branch='master')
+ version('4.3.0',
+ sha256='3a495602121b986049286ea0b23512279cdbdfb43c15c42a1511b521051fbe38',
+ url='https://bit.ly/mfem-4-3', extension='tar.gz')
+
version('4.2.0',
'4352a225b55948d2e73a5ee88cece0e88bdbe7ba6726a23d68b2736d3221a86d',
- url='https://bit.ly/mfem-4-2', extension='.tar.gz',
- preferred=True)
+ url='https://bit.ly/mfem-4-2', extension='tar.gz')
version('4.1.0',
'4c83fdcf083f8e2f5b37200a755db843cdb858811e25a8486ad36b2cbec0e11d',
- url='https://bit.ly/mfem-4-1', extension='.tar.gz')
+ url='https://bit.ly/mfem-4-1', extension='tar.gz')
# Tagged development version used by xSDK
version('4.0.1-xsdk', commit='c55c80d17b82d80de04b849dd526e17044f8c99a')
version('4.0.0',
'df5bdac798ea84a263979f6fbf79de9013e1c55562f95f98644c3edcacfbc727',
- url='https://bit.ly/mfem-4-0', extension='.tar.gz')
+ url='https://bit.ly/mfem-4-0', extension='tar.gz')
# Tagged development version used by the laghos package:
version('3.4.1-laghos-v2.0', tag='laghos-v2.0')
version('3.4.0',
sha256='4e73e4fe0482636de3c5dc983cd395839a83cb16f6f509bd88b053e8b3858e05',
- url='https://bit.ly/mfem-3-4', extension='.tar.gz')
+ url='https://bit.ly/mfem-3-4', extension='tar.gz')
version('3.3.2',
sha256='b70fa3c5080b9ec514fc05f4a04ff74322b99ac4ecd6d99c229f0ed5188fc0ce',
- url='https://goo.gl/Kd7Jk8', extension='.tar.gz')
+ url='https://goo.gl/Kd7Jk8', extension='tar.gz')
# Tagged development version used by the laghos package:
version('3.3.1-laghos-v1.0', tag='laghos-v1.0')
version('3.3',
sha256='b17bd452593aada93dc0fee748fcfbbf4f04ce3e7d77fdd0341cc9103bcacd0b',
- url='http://goo.gl/Vrpsns', extension='.tar.gz')
+ url='http://goo.gl/Vrpsns', extension='tar.gz')
version('3.2',
sha256='2938c3deed4ec4f7fd5b5f5cfe656845282e86e2dcd477d292390058b7b94340',
- url='http://goo.gl/Y9T75B', extension='.tar.gz')
+ url='http://goo.gl/Y9T75B', extension='tar.gz')
version('3.1',
sha256='841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57',
- url='http://goo.gl/xrScXn', extension='.tar.gz')
+ url='http://goo.gl/xrScXn', extension='tar.gz')
variant('static', default=True,
description='Build static library')
@@ -98,13 +105,13 @@ class Mfem(Package):
description='Enable METIS support')
variant('openmp', default=False,
description='Enable OpenMP parallelism')
- variant('cuda', default=False, description='Enable CUDA support')
- variant('cuda_arch', default='sm_60',
- description='CUDA architecture to compile for')
+ # Note: '+cuda' and 'cuda_arch' variants are added by the CudaPackage
+ # Note: '+rocm' and 'amdgpu_target' variants are added by the ROCmPackage
variant('occa', default=False, description='Enable OCCA backend')
variant('raja', default=False, description='Enable RAJA backend')
variant('libceed', default=False, description='Enable libCEED backend')
variant('umpire', default=False, description='Enable Umpire support')
+ variant('amgx', default=False, description='Enable NVIDIA AmgX solver support')
variant('threadsafe', default=False,
description=('Enable thread safe features.'
@@ -118,6 +125,8 @@ class Mfem(Package):
description='Enable serial, sparse direct solvers')
variant('petsc', default=False,
description='Enable PETSc solvers, preconditioners, etc.')
+ variant('slepc', default=False,
+ description='Enable SLEPc integration')
variant('sundials', default=False,
description='Enable Sundials time integrators')
variant('pumi', default=False,
@@ -140,6 +149,7 @@ class Mfem(Package):
description='Enable secure sockets using GnuTLS')
variant('libunwind', default=False,
description='Enable backtrace on error support using Libunwind')
+ # TODO: SIMD, Ginkgo, ADIOS2, HiOp, MKL CPardiso, Axom/Sidre
variant('timer', default='auto',
values=('auto', 'std', 'posix', 'mac', 'mpi'),
description='Timing functions to use in mfem::StopWatch')
@@ -150,18 +160,21 @@ class Mfem(Package):
conflicts('+shared', when='@:3.3.2')
conflicts('~static~shared')
- conflicts('~threadsafe', when='+openmp')
+ conflicts('~threadsafe', when='@:3.99.99+openmp')
conflicts('+cuda', when='@:3.99.99')
+ conflicts('+rocm', when='@:4.1.99')
+ conflicts('+cuda+rocm')
conflicts('+netcdf', when='@:3.1')
conflicts('+superlu-dist', when='@:3.1')
# STRUMPACK support was added in mfem v3.3.2, however, here we allow only
- # strumpack v3 support which is available starting with mfem v4.0:
+ # strumpack v3+ support for which is available starting with mfem v4.0:
conflicts('+strumpack', when='@:3.99.99')
conflicts('+gnutls', when='@:3.1')
conflicts('+zlib', when='@:3.2')
conflicts('+mpfr', when='@:3.2')
conflicts('+petsc', when='@:3.2')
+ conflicts('+slepc', when='@:4.1.99')
conflicts('+sundials', when='@:3.2')
conflicts('+pumi', when='@:3.3.2')
conflicts('+gslib', when='@:4.0.99')
@@ -174,42 +187,52 @@ class Mfem(Package):
conflicts('+raja', when='mfem@:3.99.99')
conflicts('+libceed', when='mfem@:4.0.99')
conflicts('+umpire', when='mfem@:4.0.99')
+ conflicts('+amgx', when='mfem@:4.1.99')
+ conflicts('+amgx', when='~cuda')
conflicts('+superlu-dist', when='~mpi')
conflicts('+strumpack', when='~mpi')
conflicts('+petsc', when='~mpi')
+ conflicts('+slepc', when='~petsc')
conflicts('+pumi', when='~mpi')
conflicts('timer=mpi', when='~mpi')
depends_on('mpi', when='+mpi')
depends_on('hypre@2.10.0:2.13.99', when='@:3.3.99+mpi')
- depends_on('hypre', when='@3.4:+mpi')
+ depends_on('hypre@:2.20.0', when='@3.4:4.2.99+mpi')
+ depends_on('hypre@:2.22.0', when='@4.3.0+mpi')
+ depends_on('hypre', when='+mpi')
depends_on('metis', when='+metis')
depends_on('blas', when='+lapack')
depends_on('lapack@3.0:', when='+lapack')
- depends_on('cuda', when='+cuda')
-
depends_on('sundials@2.7.0', when='@:3.3.0+sundials~mpi')
depends_on('sundials@2.7.0+mpi+hypre', when='@:3.3.0+sundials+mpi')
depends_on('sundials@2.7.0:', when='@3.3.2:+sundials~mpi')
depends_on('sundials@2.7.0:+mpi+hypre', when='@3.3.2:+sundials+mpi')
depends_on('sundials@5.0.0:', when='@4.0.1-xsdk:+sundials~mpi')
depends_on('sundials@5.0.0:+mpi+hypre', when='@4.0.1-xsdk:+sundials+mpi')
- depends_on('sundials@5.4.0:+cuda', when='@4.2.0:+sundials+cuda')
- depends_on('pumi@2.2.3', when='@4.2.0:+pumi')
+ for sm_ in CudaPackage.cuda_arch_values:
+ depends_on('sundials@5.4.0:+cuda cuda_arch={0}'.format(sm_),
+ when='@4.2.0:+sundials+cuda cuda_arch={0}'.format(sm_))
+ depends_on('pumi@2.2.3:', when='@4.2.0:+pumi')
depends_on('pumi', when='+pumi~shared')
depends_on('pumi+shared', when='+pumi+shared')
depends_on('gslib@1.0.5:+mpi', when='+gslib+mpi')
depends_on('gslib@1.0.5:~mpi~mpiio', when='+gslib~mpi')
depends_on('suite-sparse', when='+suite-sparse')
depends_on('superlu-dist', when='+superlu-dist')
- depends_on('strumpack@3.0.0:', when='+strumpack')
+ depends_on('strumpack@3.0.0:', when='+strumpack~shared')
+ depends_on('strumpack@3.0.0:+shared', when='+strumpack+shared')
+ for sm_ in CudaPackage.cuda_arch_values:
+ depends_on('strumpack+cuda cuda_arch={0}'.format(sm_),
+ when='+strumpack+cuda cuda_arch={0}'.format(sm_))
# The PETSc tests in MFEM will fail if PETSc is not configured with
# SuiteSparse and MUMPS. On the other hand, if we require the variants
# '+suite-sparse+mumps' of PETSc, the xsdk package concretization fails.
depends_on('petsc@3.8:+mpi+double+hypre', when='+petsc')
+ depends_on('slepc@3.8.0:', when='+slepc')
# Recommended when building outside of xsdk:
# depends_on('petsc@3.8:+mpi+double+hypre+suite-sparse+mumps',
# when='+petsc')
@@ -230,26 +253,53 @@ class Mfem(Package):
# when using hypre version >= 2.16.0.
# This issue is resolved in v4.2.
conflicts('+strumpack', when='mfem@4.0.0:4.1.99 ^hypre@2.16.0:')
+ conflicts('+strumpack ^strumpack+cuda', when='~cuda')
depends_on('occa@1.0.8:', when='@:4.1.99+occa')
depends_on('occa@1.1.0:', when='@4.2.0:+occa')
depends_on('occa+cuda', when='+occa+cuda')
+ # TODO: propagate '+rocm' variant to occa when it is supported
depends_on('raja@0.10.0:', when='@4.0.1:+raja')
depends_on('raja@0.7.0:0.9.0', when='@4.0.0+raja')
- depends_on('raja+cuda', when='+raja+cuda')
+ for sm_ in CudaPackage.cuda_arch_values:
+ depends_on('raja+cuda cuda_arch={0}'.format(sm_),
+ when='+raja+cuda cuda_arch={0}'.format(sm_))
+ for gfx in ROCmPackage.amdgpu_targets:
+ depends_on('raja+rocm amdgpu_target={0}'.format(gfx),
+ when='+raja+rocm amdgpu_target={0}'.format(gfx))
depends_on('libceed@0.6:', when='@:4.1.99+libceed')
depends_on('libceed@0.7:', when='@4.2.0:+libceed')
- depends_on('libceed+cuda', when='+libceed+cuda')
+ for sm_ in CudaPackage.cuda_arch_values:
+ depends_on('libceed+cuda cuda_arch={0}'.format(sm_),
+ when='+libceed+cuda cuda_arch={0}'.format(sm_))
+ for gfx in ROCmPackage.amdgpu_targets:
+ depends_on('libceed+rocm amdgpu_target={0}'.format(gfx),
+ when='+libceed+rocm amdgpu_target={0}'.format(gfx))
depends_on('umpire@2.0.0:', when='+umpire')
- depends_on('umpire+cuda', when='+umpire+cuda')
+ for sm_ in CudaPackage.cuda_arch_values:
+ depends_on('umpire+cuda cuda_arch={0}'.format(sm_),
+ when='+umpire+cuda cuda_arch={0}'.format(sm_))
+ for gfx in ROCmPackage.amdgpu_targets:
+ depends_on('umpire+rocm amdgpu_target={0}'.format(gfx),
+ when='+umpire+rocm amdgpu_target={0}'.format(gfx))
+
+ # AmgX: propagate the cuda_arch and mpi settings:
+ for sm_ in CudaPackage.cuda_arch_values:
+ depends_on('amgx+mpi cuda_arch={0}'.format(sm_),
+ when='+amgx+mpi cuda_arch={0}'.format(sm_))
+ depends_on('amgx~mpi cuda_arch={0}'.format(sm_),
+ when='+amgx~mpi cuda_arch={0}'.format(sm_))
patch('mfem_ppc_build.patch', when='@3.2:3.3.0 arch=ppc64le')
patch('mfem-3.4.patch', when='@3.4.0')
patch('mfem-3.3-3.4-petsc-3.9.patch',
when='@3.3.0:3.4.0 +petsc ^petsc@3.9.0:')
+ patch('mfem-4.2-umpire.patch', when='@4.2.0+umpire')
+ patch('mfem-4.2-slepc.patch', when='@4.2.0+slepc')
+ patch('mfem-4.2-petsc-3.15.0.patch', when='@4.2.0+petsc ^petsc@3.15.0:')
# Patch to fix MFEM makefile syntax error. See
# https://github.com/mfem/mfem/issues/1042 for the bug report and
@@ -327,6 +377,21 @@ class Mfem(Package):
return lib
return LibraryList([])
+ # Determine how to run MPI tests, e.g. when using '--test=root', when
+ # Spack is run inside a batch system job.
+ mfem_mpiexec = 'mpirun'
+ mfem_mpiexec_np = '-np'
+ if 'SLURM_JOBID' in os.environ:
+ mfem_mpiexec = 'srun'
+ mfem_mpiexec_np = '-n'
+ elif 'LSB_JOBID' in os.environ:
+ if 'LLNL_COMPUTE_NODES' in os.environ:
+ mfem_mpiexec = 'lrun'
+ mfem_mpiexec_np = '-n'
+ else:
+ mfem_mpiexec = 'jsrun'
+ mfem_mpiexec_np = '-p'
+
metis5_str = 'NO'
if ('+metis' in spec) and spec['metis'].satisfies('@5:'):
metis5_str = 'YES'
@@ -353,6 +418,7 @@ class Mfem(Package):
'MFEM_USE_SUITESPARSE=%s' % yes_no('+suite-sparse'),
'MFEM_USE_SUNDIALS=%s' % yes_no('+sundials'),
'MFEM_USE_PETSC=%s' % yes_no('+petsc'),
+ 'MFEM_USE_SLEPC=%s' % yes_no('+slepc'),
'MFEM_USE_PUMI=%s' % yes_no('+pumi'),
'MFEM_USE_GSLIB=%s' % yes_no('+gslib'),
'MFEM_USE_NETCDF=%s' % yes_no('+netcdf'),
@@ -361,10 +427,14 @@ class Mfem(Package):
'MFEM_USE_OPENMP=%s' % yes_no('+openmp'),
'MFEM_USE_CONDUIT=%s' % yes_no('+conduit'),
'MFEM_USE_CUDA=%s' % yes_no('+cuda'),
+ 'MFEM_USE_HIP=%s' % yes_no('+rocm'),
'MFEM_USE_OCCA=%s' % yes_no('+occa'),
'MFEM_USE_RAJA=%s' % yes_no('+raja'),
+ 'MFEM_USE_AMGX=%s' % yes_no('+amgx'),
'MFEM_USE_CEED=%s' % yes_no('+libceed'),
- 'MFEM_USE_UMPIRE=%s' % yes_no('+umpire')]
+ 'MFEM_USE_UMPIRE=%s' % yes_no('+umpire'),
+ 'MFEM_MPIEXEC=%s' % mfem_mpiexec,
+ 'MFEM_MPIEXEC_NP=%s' % mfem_mpiexec_np]
cxxflags = spec.compiler_flags['cxxflags']
@@ -387,7 +457,7 @@ class Mfem(Package):
cxxflags = [(xcompiler + flag) for flag in cxxflags]
if '+cuda' in spec:
cxxflags += [
- '-x=cu --expt-extended-lambda -arch=%s' % cuda_arch,
+ '-x=cu --expt-extended-lambda -arch=sm_%s' % cuda_arch,
'-ccbin %s' % (spec['mpi'].mpicxx if '+mpi' in spec
else env['CXX'])]
if self.spec.satisfies('@4.0.0:'):
@@ -401,8 +471,8 @@ class Mfem(Package):
options += ['STATIC=NO']
if '+shared' in spec:
options += [
- 'SHARED=YES', 'PICFLAG=%s' % self.compiler.cxx_pic_flag
- ]
+ 'SHARED=YES',
+ 'PICFLAG=%s' % (xcompiler + self.compiler.cxx_pic_flag)]
if '+mpi' in spec:
options += ['MPICXX=%s' % spec['mpi'].mpicxx]
@@ -446,24 +516,51 @@ class Mfem(Package):
# fortran library and also the MPI fortran library:
if '~shared' in strumpack:
if os.path.basename(env['FC']) == 'gfortran':
- sp_lib += ['-lgfortran']
- if '^mpich' in strumpack:
+ gfortran = Executable(env['FC'])
+ libext = 'dylib' if sys.platform == 'darwin' else 'so'
+ libfile = os.path.abspath(gfortran(
+ '-print-file-name=libgfortran.%s' % libext,
+ output=str).strip())
+ gfortran_lib = LibraryList(libfile)
+ sp_lib += [ld_flags_from_library_list(gfortran_lib)]
+ if ('^mpich' in strumpack) or ('^mvapich2' in strumpack):
sp_lib += ['-lmpifort']
elif '^openmpi' in strumpack:
sp_lib += ['-lmpi_mpifh']
+ elif '^spectrum-mpi' in strumpack:
+ sp_lib += ['-lmpi_ibm_mpifh']
if '+openmp' in strumpack:
- sp_opt += [self.compiler.openmp_flag]
- if '^scalapack' in strumpack:
+ # The '+openmp' in the spec means strumpack will TRY to find
+ # OpenMP; if not found, we should not add any flags -- how do
+ # we figure out if strumpack found OpenMP?
+ if not self.spec.satisfies('%apple-clang'):
+ sp_opt += [xcompiler + self.compiler.openmp_flag]
+ if '^parmetis' in strumpack:
+ parmetis = strumpack['parmetis']
+ sp_opt += [parmetis.headers.cpp_flags]
+ sp_lib += [ld_flags_from_library_list(parmetis.libs)]
+ if '^netlib-scalapack' in strumpack:
scalapack = strumpack['scalapack']
sp_opt += ['-I%s' % scalapack.prefix.include]
sp_lib += [ld_flags_from_dirs([scalapack.prefix.lib],
['scalapack'])]
+ elif '^scalapack' in strumpack:
+ scalapack = strumpack['scalapack']
+ sp_opt += [scalapack.headers.cpp_flags]
+ sp_lib += [ld_flags_from_library_list(scalapack.libs)]
if '+butterflypack' in strumpack:
bp = strumpack['butterflypack']
sp_opt += ['-I%s' % bp.prefix.include]
sp_lib += [ld_flags_from_dirs([bp.prefix.lib],
['dbutterflypack',
'zbutterflypack'])]
+ if '+zfp' in strumpack:
+ zfp = strumpack['zfp']
+ sp_opt += ['-I%s' % zfp.prefix.include]
+ sp_lib += [ld_flags_from_dirs([zfp.prefix.lib], ['zfp'])]
+ if '+cuda' in strumpack:
+ # assuming also ('+cuda' in spec)
+ sp_lib += ['-lcusolver', '-lcublas']
options += [
'STRUMPACK_OPT=%s' % ' '.join(sp_opt),
'STRUMPACK_LIB=%s' % ' '.join(sp_lib)]
@@ -491,6 +588,12 @@ class Mfem(Package):
else:
options += ['PETSC_DIR=%s' % petsc.prefix]
+ if '+slepc' in spec:
+ slepc = spec['slepc']
+ options += [
+ 'SLEPC_OPT=%s' % slepc.headers.cpp_flags,
+ 'SLEPC_LIB=%s' % ld_flags_from_library_list(slepc.libs)]
+
if '+pumi' in spec:
pumi_libs = ['pumi', 'crv', 'ma', 'mds', 'apf', 'pcu', 'gmi',
'parma', 'lion', 'mth', 'apf_zoltan', 'spr']
@@ -550,12 +653,19 @@ class Mfem(Package):
'LIBUNWIND_LIB=%s' % ld_flags_from_library_list(libs)]
if '+openmp' in spec:
- options += ['OPENMP_OPT=%s' % self.compiler.openmp_flag]
+ options += [
+ 'OPENMP_OPT=%s' % (xcompiler + self.compiler.openmp_flag)]
if '+cuda' in spec:
options += [
'CUDA_CXX=%s' % join_path(spec['cuda'].prefix, 'bin', 'nvcc'),
- 'CUDA_ARCH=%s' % cuda_arch]
+ 'CUDA_ARCH=sm_%s' % cuda_arch]
+
+ if '+rocm' in spec:
+ amdgpu_target = ','.join(spec.variants['amdgpu_target'].value)
+ options += [
+ 'HIP_CXX=%s' % spec['hip'].hipcc,
+ 'HIP_ARCH=%s' % amdgpu_target]
if '+occa' in spec:
options += ['OCCA_OPT=-I%s' % spec['occa'].prefix.include,
@@ -569,6 +679,15 @@ class Mfem(Package):
ld_flags_from_dirs([spec['raja'].prefix.lib],
['RAJA'])]
+ if '+amgx' in spec:
+ amgx = spec['amgx']
+ if '+shared' in amgx:
+ options += ['AMGX_OPT=-I%s' % amgx.prefix.include,
+ 'AMGX_LIB=%s' %
+ ld_flags_from_library_list(amgx.libs)]
+ else:
+ options += ['AMGX_DIR=%s' % amgx.prefix]
+
if '+libceed' in spec:
options += ['CEED_OPT=-I%s' % spec['libceed'].prefix.include,
'CEED_LIB=%s' %
@@ -677,11 +796,63 @@ class Mfem(Package):
if install_em:
install_tree('data', join_path(prefix_share, 'data'))
+ examples_src_dir = 'examples'
+ examples_data_dir = 'data'
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.examples_src_dir,
+ self.examples_data_dir])
+
+ def test(self):
+ test_dir = join_path(
+ self.test_suite.current_test_cache_dir,
+ self.examples_src_dir
+ )
+
+ # MFEM has many examples to serve as a suitable smoke check. ex10
+ # was chosen arbitrarily among the examples that work both with
+ # MPI and without it
+ test_exe = 'ex10p' if ('+mpi' in self.spec) else 'ex10'
+ self.run_test(
+ 'make',
+ [
+ 'CONFIG_MK={0}/share/mfem/config.mk'.format(self.prefix),
+ test_exe,
+ 'parallel=False'
+ ],
+ purpose='test: building {0}'.format(test_exe),
+ skip_missing=False,
+ work_dir=test_dir,
+ )
+
+ self.run_test(
+ './{0}'.format(test_exe),
+ [
+ '--mesh',
+ '../{0}/beam-quad.mesh'.format(self.examples_data_dir)
+ ],
+ [],
+ installed=False,
+ purpose='test: running {0}'.format(test_exe),
+ skip_missing=False,
+ work_dir=test_dir,
+ )
+
+ # this patch is only needed for mfem 4.1, where a few
+ # released files include byte order marks
+ @when('@4.1.0')
def patch(self):
# Remove the byte order mark since it messes with some compilers
- filter_file(u'\uFEFF', '', 'fem/gslib.hpp')
- filter_file(u'\uFEFF', '', 'fem/gslib.cpp')
- filter_file(u'\uFEFF', '', 'linalg/hiop.hpp')
+ files_with_bom = [
+ 'fem/gslib.hpp', 'fem/gslib.cpp', 'linalg/hiop.hpp',
+ 'miniapps/gslib/field-diff.cpp', 'miniapps/gslib/findpts.cpp',
+ 'miniapps/gslib/pfindpts.cpp']
+ bom = '\xef\xbb\xbf' if sys.version_info < (3,) else u'\ufeff'
+ for f in files_with_bom:
+ filter_file(bom, '', f)
@property
def suitesparse_components(self):
@@ -694,12 +865,15 @@ class Mfem(Package):
@property
def sundials_components(self):
"""Return the SUNDIALS components needed by MFEM."""
+ spec = self.spec
sun_comps = 'arkode,cvodes,nvecserial,kinsol'
- if '+mpi' in self.spec:
- if self.spec.satisfies('@4.2:'):
+ if '+mpi' in spec:
+ if spec.satisfies('@4.2:'):
sun_comps += ',nvecparallel,nvecmpiplusx'
else:
sun_comps += ',nvecparhyp,nvecparallel'
+ if '+cuda' in spec and '+cuda' in spec['sundials']:
+ sun_comps += ',nveccuda'
return sun_comps
@property
diff --git a/var/spack/repos/builtin/packages/mfem/test_builds.sh b/var/spack/repos/builtin/packages/mfem/test_builds.sh
index 4f3c3f787b..fd6624eaf5 100755
--- a/var/spack/repos/builtin/packages/mfem/test_builds.sh
+++ b/var/spack/repos/builtin/packages/mfem/test_builds.sh
@@ -2,50 +2,66 @@
# Set a compiler to test with, e.g. '%gcc', '%clang', etc.
compiler=''
+cuda_arch="70"
mfem='mfem'${compiler}
mfem_dev='mfem@develop'${compiler}
backends='+occa+raja+libceed'
-# Using occa@develop to help the spack concretization
-backends_specs='^occa@develop~cuda ^raja~openmp'
+backends_specs='^occa~cuda ^raja~openmp'
-# As of 03/20/20 +mpfr breaks one of the unit tests in both @4.1.0 and @develop,
-# so it is disabled here for now.
-# mpfr='+mpfr'
-mpfr=''
+# help the concrtizer find suitable hdf5 version (conduit constraint)
+hdf5_spec='^hdf5@1.8.19:1.8.999'
+# petsc spec
+petsc_spec='^petsc+suite-sparse+mumps'
+# strumpack spec without cuda
+strumpack_spec='^strumpack~slate~openmp~cuda'
+strumpack_cuda_spec='^strumpack~slate~openmp'
builds=(
# preferred version:
${mfem}
${mfem}'~mpi~metis~zlib'
- # NOTE: Skip +strumpack since mfem needs hypre < 2.16.0 in that case
- ${mfem}"$backends"'+superlu-dist+suite-sparse+petsc \
- +sundials+pumi+gslib'${mpfr}'+netcdf+zlib+gnutls+libunwind+conduit \
- ^petsc+suite-sparse+mumps'" $backends_specs"
+ ${mfem}"$backends"'+superlu-dist+strumpack+suite-sparse+petsc+slepc \
+ +sundials+pumi+gslib+mpfr+netcdf+zlib+gnutls+libunwind+conduit \
+ '"$backends_specs $petsc_spec $strumpack_spec $hdf5_spec"
${mfem}'~mpi \
- '"$backends"'+suite-sparse+sundials+gslib'${mpfr}'+netcdf \
- +zlib+gnutls+libunwind+conduit'" $backends_specs"
+ '"$backends"'+suite-sparse+sundials+gslib+mpfr+netcdf \
+ +zlib+gnutls+libunwind+conduit'" $backends_specs $hdf5_spec"
# develop version:
${mfem_dev}'+shared~static'
${mfem_dev}'+shared~static~mpi~metis~zlib'
- # NOTE: Skip +strumpack since mfem needs hypre < 2.16.0 in that case
+
# NOTE: Shared build with +gslib works on mac but not on linux
+ # FIXME: As of 2020/11/03 the next config fails in PETSc ex5p:
+ # ${mfem_dev}'+shared~static \
+ # '"$backends"'+superlu-dist+strumpack+suite-sparse+petsc \
+ # +sundials+pumi+mpfr+netcdf+zlib+gnutls+libunwind+conduit \
+ # '"$backends_specs $petsc_spec $strumpack_spec $hdf5_spec"
+ # Removing just petsc works:
${mfem_dev}'+shared~static \
- '"$backends"'+superlu-dist+suite-sparse+petsc \
- +sundials+pumi'${mpfr}'+netcdf+zlib+gnutls+libunwind+conduit \
- ^petsc+suite-sparse+mumps'" $backends_specs"
+ '"$backends"'+superlu-dist+strumpack+suite-sparse \
+ +sundials+pumi+mpfr+netcdf+zlib+gnutls+libunwind+conduit \
+ '"$backends_specs $strumpack_spec $hdf5_spec"
+ # Removing just strumpack works on linux, fails on mac:
+ # ${mfem_dev}'+shared~static \
+ # '"$backends"'+superlu-dist+suite-sparse+petsc \
+ # +sundials+pumi+mpfr+netcdf+zlib+gnutls+libunwind+conduit \
+ # '"$backends_specs $petsc_spec $hdf5_spec"
+ # Petsc and strumpack: fails on linux and mac in PETSc ex5p:
+ # ${mfem_dev}'+shared~static +strumpack+petsc \
+ # '$petsc_spec $strumpack_spec"
+
${mfem_dev}'+shared~static~mpi \
- '"$backends"'+suite-sparse+sundials'${mpfr}'+netcdf \
- +zlib+gnutls+libunwind+conduit'" $backends_specs"
+ '"$backends"'+suite-sparse+sundials+mpfr+netcdf \
+ +zlib+gnutls+libunwind+conduit'" $backends_specs $hdf5_spec"
)
builds2=(
# preferred version
${mfem}"$backends $backends_specs"
${mfem}'+superlu-dist'
- # NOTE: On mac +strumpack works only with gcc, as of 03/20/20.
- ${mfem}'+strumpack ^hypre@2.15.1'
+ ${mfem}'+strumpack'" $strumpack_spec"
${mfem}'+suite-sparse~mpi'
${mfem}'+suite-sparse'
${mfem}'+sundials~mpi'
@@ -54,16 +70,17 @@ builds2=(
${mfem}'+gslib'
${mfem}'+netcdf~mpi'
${mfem}'+netcdf'
- ${mfem}${mpfr}
+ ${mfem}'+mpfr'
${mfem}'+gnutls'
${mfem}'+conduit~mpi'
${mfem}'+conduit'
- ${mfem}'+petsc ^petsc+suite-sparse+mumps'
+ ${mfem}'+umpire'
+ ${mfem}'+petsc'" $petsc_spec"
+ ${mfem}'+petsc+slepc'" $petsc_spec"
# develop version
${mfem_dev}"$backends $backends_specs"
${mfem_dev}'+superlu-dist'
- # NOTE: On mac +strumpack works only with gcc, as of 03/20/20.
- ${mfem_dev}'+strumpack ^hypre@2.15.1'
+ ${mfem_dev}'+strumpack'" $strumpack_spec"
${mfem_dev}'+suite-sparse~mpi'
${mfem_dev}'+suite-sparse'
${mfem_dev}'+sundials~mpi'
@@ -72,19 +89,50 @@ builds2=(
${mfem_dev}'+gslib'
${mfem_dev}'+netcdf~mpi'
${mfem_dev}'+netcdf'
- ${mfem_dev}${mpfr}
+ ${mfem_dev}'+mpfr'
${mfem_dev}'+gnutls'
${mfem_dev}'+conduit~mpi'
${mfem_dev}'+conduit'
- ${mfem_dev}'+petsc ^petsc+suite-sparse+mumps'
+ ${mfem_dev}'+umpire'
+ ${mfem_dev}'+petsc'" $petsc_spec"
+ ${mfem_dev}'+petsc+slepc'" $petsc_spec"
)
+builds_cuda=(
+ ${mfem}'+cuda cuda_arch='"${cuda_arch}"
+
+ ${mfem}'+cuda+raja+occa+libceed cuda_arch='"${cuda_arch}"' \
+ ^raja+cuda~openmp'
+
+ ${mfem}'+cuda+openmp+raja+occa+libceed cuda_arch='"${cuda_arch}"' \
+ +superlu-dist+strumpack+suite-sparse+petsc+slepc \
+ +sundials+pumi+gslib+mpfr+netcdf+zlib+gnutls+libunwind+conduit \
+ ^raja+cuda+openmp'" $strumpack_cuda_spec $petsc_spec $hdf5_spec"
+
+ # same builds as above with ${mfem_dev}
+ ${mfem_dev}'+cuda cuda_arch='"${cuda_arch}"
+
+ ${mfem_dev}'+cuda+raja+occa+libceed cuda_arch='"${cuda_arch}"' \
+ ^raja+cuda~openmp'
+
+ # add '^sundials+hypre' to help the concretizer
+ ${mfem_dev}'+cuda+openmp+raja+occa+libceed cuda_arch='"${cuda_arch}"' \
+ +superlu-dist+strumpack+suite-sparse+petsc+slepc \
+ +sundials+pumi+gslib+mpfr+netcdf+zlib+gnutls+libunwind+conduit \
+ ^raja+cuda+openmp'" $strumpack_cuda_spec $petsc_spec"' \
+ ^sundials+hypre'" $hdf5_spec"
+)
+
+
trap 'printf "\nScript interrupted.\n"; exit 33' INT
SEP='=========================================================================='
sep='--------------------------------------------------------------------------'
-for bld in "${builds[@]}" "${builds2[@]}"; do
+run_builds=("${builds[@]}" "${builds2[@]}")
+# run_builds=("${builds_cuda[@]}")
+
+for bld in "${run_builds[@]}"; do
printf "\n%s\n" "${SEP}"
printf " %s\n" "${bld}"
printf "%s\n" "${SEP}"
diff --git a/var/spack/repos/builtin/packages/mg/package.py b/var/spack/repos/builtin/packages/mg/package.py
index b2059c5182..a550de0040 100644
--- a/var/spack/repos/builtin/packages/mg/package.py
+++ b/var/spack/repos/builtin/packages/mg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mgis/package.py b/var/spack/repos/builtin/packages/mgis/package.py
index c03680a7d6..79633592dd 100644
--- a/var/spack/repos/builtin/packages/mgis/package.py
+++ b/var/spack/repos/builtin/packages/mgis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,16 +18,18 @@ class Mgis(CMakePackage):
"""
homepage = "https://thelfer.github.io/mgis/web/index.html"
- url = "https://github.com/thelfer/MFrontGenericInterfaceSupport/archive/MFrontGenericInterfaceSupport-1.1.tar.gz"
+ url = "https://github.com/thelfer/MFrontGenericInterfaceSupport/archive/MFrontGenericInterfaceSupport-1.2.tar.gz"
git = "https://github.com/thelfer/MFrontGenericInterfaceSupport.git"
maintainers = ['thelfer']
# development branches
version("master", branch="master")
+ version("rliv-1.2", branch="rliv-1.2")
version("rliv-1.1", branch="rliv-1.1")
version("rliv-1.0", branch="rliv-1.0")
# released version
+ version('1.2', sha256='ed82ab91cbe17c00ef36578dbfcb4d1817d4c956619b7cccbea3e3f1a3b31940')
version('1.1', sha256='06593d7a052678deaee87ef60b2213db7545c5be9823f261d3388b3978a0b7a5')
version('1.0.1', sha256='6102621455bc5d9b1591cd33e93b2e15a9572d2ce59ca6dfa30ba57ae1265c08')
version('1.0', sha256='279c98da00fa6855edf29c2b8f8bad6e7732298dc62ef67d028d6bbeaac043b3')
@@ -44,9 +46,11 @@ class Mgis(CMakePackage):
values=('Debug', 'Release'))
# dependencies
+ depends_on('tfel@3.4.0', when="@1.2")
depends_on('tfel@3.3.0', when="@1.1")
depends_on('tfel@3.2.1', when="@1.0.1")
depends_on('tfel@3.2.0', when="@1.0")
+ depends_on('tfel@rliv-3.4', when="@rliv-1.2")
depends_on('tfel@rliv-3.3', when="@rliv-1.1")
depends_on('tfel@rliv-3.2', when="@rliv-1.0")
depends_on('tfel@master', when="@master")
@@ -57,6 +61,8 @@ class Mgis(CMakePackage):
args = []
+ args.append("-DUSE_EXTERNAL_COMPILER_FLAGS=ON")
+
for i in ['c', 'fortran', 'python']:
if '+' + i in self.spec:
args.append("-Denable-{0}-bindings=ON".format(i))
diff --git a/var/spack/repos/builtin/packages/microbiomeutil/package.py b/var/spack/repos/builtin/packages/microbiomeutil/package.py
index bcae7ad991..3735be53e7 100644
--- a/var/spack/repos/builtin/packages/microbiomeutil/package.py
+++ b/var/spack/repos/builtin/packages/microbiomeutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/migraphx/0001-Adding-nlohmann-json-include-directory.patch b/var/spack/repos/builtin/packages/migraphx/0001-Adding-nlohmann-json-include-directory.patch
new file mode 100644
index 0000000000..4554ca9f3b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/migraphx/0001-Adding-nlohmann-json-include-directory.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index eff5ab4..aca4441 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -197,6 +197,8 @@ add_subdirectory(doc)
+ add_subdirectory(test)
+ add_subdirectory(tools)
+
++target_include_directories(migraphx PUBLIC "${NLOHMANN_JSON_INCLUDE}")
++
+ set(DEST_DIR ${CMAKE_BINARY_DIR})
+ file(GLOB backend_files ${CMAKE_SOURCE_DIR}/src/py/backend/*.py)
+ file(MAKE_DIRECTORY ${DEST_DIR}/lib/onnx_migraphx)
diff --git a/var/spack/repos/builtin/packages/migraphx/package.py b/var/spack/repos/builtin/packages/migraphx/package.py
index 90b438dbf0..3d4b9d9d83 100644
--- a/var/spack/repos/builtin/packages/migraphx/package.py
+++ b/var/spack/repos/builtin/packages/migraphx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,40 +10,74 @@ class Migraphx(CMakePackage):
""" AMD's graph optimization engine."""
homepage = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX"
- url = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/archive/rocm-3.5.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX.git"
+ url = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
- def url_for_version(self, version):
- url = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/archive/{0}.tar.gz"
- if version > Version('3.5'):
- return url.format(version)
- else:
- return url.format('rocm-' + version)
-
+ version('4.3.1', sha256='e0b04da37aed937a2b2218059c189559a15460c191b5e9b00c7366c81c90b06e')
+ version('4.3.0', sha256='99cf202a5e86cf5502b0f8bf12f152dbd5a6aacc204b3d9d5efca67a54793408')
+ version('4.2.0', sha256='93f22f6c641dde5d7fb8abcbd99621b3c81e332e125a6f3a258d5e4cf2055f55')
+ version('4.1.0', sha256='f9b1d2e25cdbaf5d0bfb07d4c8ccef0abaa291757c4bce296c3b5b9488174045')
+ version('4.0.0', sha256='b8b845249626e9169353dbfa2530db468972a7569b248c8118ff19e029a12e55')
+ version('3.10.0', sha256='eda22b9af286afb7806e6b5d5ebb0d612dce87c9bad64ba5176fda1c2ed9c9b7')
+ version('3.9.0', sha256='7649689e06522302c07b39abb88bdcc3d4de18a7559d4f6a9e238e92b2074032')
version('3.8.0', sha256='08fa991349a2b95364b0a69be7960580c3e3fde2fda0f0c67bc41429ea2d67a0')
version('3.7.0', sha256='697c3c7babaa025eaabec630dbd8a87d10dc4fe35fafa3b0d3463aaf1fc46399')
version('3.5.0', sha256='5766f3b262468c500be5051a056811a8edfa741734a5c08c4ecb0337b7906377')
+ def url_for_version(self, version):
+ url = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/archive/"
+ if version <= Version('3.5.0'):
+ url += "{0}.tar.gz".format(version)
+ else:
+ url += "rocm-{0}.tar.gz".format(version)
+
+ return url
+
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
+ patch('0001-Adding-nlohmann-json-include-directory.patch', when='@3.9.0:')
+
depends_on('cmake@3:', type='build')
depends_on('protobuf', type='link')
depends_on('blaze', type='build')
depends_on('nlohmann-json', type='link')
- depends_on('py-pybind11', type='build')
depends_on('msgpack-c', type='link')
depends_on('half@1.12.0', type='link')
- for ver in ['3.5.0', '3.7.0', '3.8.0']:
- depends_on('hip@' + ver, type='build', when='@' + ver)
+ depends_on('python@3:', type='build')
+ depends_on('py-pybind11', type='build', when='@:4.0.0')
+ depends_on('py-pybind11@2.6:', type='build', when='@4.1.0:')
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
- depends_on('rocblas@' + ver, type='link', when='@' + ver)
- depends_on('miopen-hip@' + ver, type='link', when='@' + ver)
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('llvm-amdgpu@' + ver, when='@' + ver)
+ depends_on('rocblas@' + ver, when='@' + ver)
+ depends_on('miopen-hip@' + ver, when='@' + ver)
+
+ @property
+ def cmake_python_hints(self):
+ """Include the python include path to the
+ CMake based on current spec
+ """
+ python_spec = self.spec['python']
+ include_dir = join_path(
+ python_spec.prefix, python_spec.package.config_vars['python_inc']['false'])
+ return [
+ self.define('Python_INCLUDE_DIR', include_dir)
+ ]
def cmake_args(self):
args = [
'-DCMAKE_CXX_COMPILER={0}/bin/clang++'
.format(self.spec['llvm-amdgpu'].prefix)
]
+ if '@3.9.0:' in self.spec:
+ args.append('-DNLOHMANN_JSON_INCLUDE={0}'.format(
+ self.spec['nlohmann-json'].prefix.include))
+
+ if self.spec['cmake'].satisfies('@3.16.0:'):
+ args += self.cmake_python_hints
return args
diff --git a/var/spack/repos/builtin/packages/migrate/package.py b/var/spack/repos/builtin/packages/migrate/package.py
index 61602546a1..508c588d83 100644
--- a/var/spack/repos/builtin/packages/migrate/package.py
+++ b/var/spack/repos/builtin/packages/migrate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class Migrate(AutotoolsPackage):
between n population assuming a migration matrix model with asymmetric
migration rates and different subpopulation sizes"""
- homepage = "http://popgen.sc.fsu.edu/"
- url = "http://popgen.sc.fsu.edu/currentversions/migrate-3.6.11.src.tar.gz"
+ homepage = "https://popgen.sc.fsu.edu/"
+ url = "https://popgen.sc.fsu.edu/currentversions/migrate-3.6.11.src.tar.gz"
version('3.6.11', sha256='a9ba06a4e995a45b8d04037f5f2da23e1fe64a2f3565189bdd50c62c6fe01fb8')
diff --git a/var/spack/repos/builtin/packages/mii/package.py b/var/spack/repos/builtin/packages/mii/package.py
index 15e9dad660..1ac66410c8 100644
--- a/var/spack/repos/builtin/packages/mii/package.py
+++ b/var/spack/repos/builtin/packages/mii/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,10 +16,9 @@ class Mii(MakefilePackage):
on the homepage for more information."""
homepage = "https://github.com/codeandkey/mii"
- url = "https://github.com/codeandkey/mii/archive/1.0.2.tar.gz"
+ url = "https://github.com/codeandkey/mii/archive/v1.0.4.tar.gz"
- version('1.0.3', sha256='9b5a0e4e0961cf848677ed61b4f6c03e6a443f8592ed668d1afea302314b47a8')
- version('1.0.2', sha256='1c2c86ec37779ecd3821c30ce5b6dd19be4ec1813da41832d49ff3dcf615e22d')
+ version('1.0.4', sha256='3c4e7e6e8c21969da8dade05fecab35be61f2bb82d75eeaf19db8cc97f8058b5')
def setup_build_environment(self, env):
env.set('PREFIX', self.prefix)
diff --git a/var/spack/repos/builtin/packages/minc-toolkit/package.py b/var/spack/repos/builtin/packages/minc-toolkit/package.py
new file mode 100644
index 0000000000..442af8b88f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minc-toolkit/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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 MincToolkit(CMakePackage):
+ """Bundles multiple MINC-related packages"""
+
+ homepage = "https://github.com/BIC-MNI/minc-toolkit-v2"
+ git = "https://github.com/BIC-MNI/minc-toolkit-v2.git"
+
+ version('1.9.18.1', commit="38597c464b6e93eda680ab4a9e903366d53d7737",
+ submodules=True)
+
+ variant('shared', default=True,
+ description="Build shared libraries")
+ variant('visualisation', default=False,
+ description="Build visual tools (Display, register, etc.)")
+
+ depends_on('perl')
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
+ depends_on('zlib', type='link')
+ depends_on('freeglut', when="+visualisation")
+
+ def cmake_args(self):
+ return [self.define_from_variant('MT_BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('MT_BUILD_VISUAL_TOOLS', 'visualisation'),
+ # newer ANTs packaged separately
+ "-DMT_BUILD_ANTS=OFF",
+ # build error; should package newer c3d separately
+ "-DMT_BUILD_C3D=OFF",
+ # should be packaged separately with newer ITK
+ "-DMT_BUILD_ELASTIX=OFF"
+ ]
diff --git a/var/spack/repos/builtin/packages/minced/package.py b/var/spack/repos/builtin/packages/minced/package.py
index 06f1ff457f..7f62ba46c8 100644
--- a/var/spack/repos/builtin/packages/minced/package.py
+++ b/var/spack/repos/builtin/packages/minced/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mindthegap/package.py b/var/spack/repos/builtin/packages/mindthegap/package.py
index d3e847a129..b577464ea0 100644
--- a/var/spack/repos/builtin/packages/mindthegap/package.py
+++ b/var/spack/repos/builtin/packages/mindthegap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/miniaero/package.py b/var/spack/repos/builtin/packages/miniaero/package.py
index 3588e87d28..65c090d906 100644
--- a/var/spack/repos/builtin/packages/miniaero/package.py
+++ b/var/spack/repos/builtin/packages/miniaero/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Miniaero(MakefilePackage):
of programming models and hardware for next generation platforms.
"""
- homepage = "http://mantevo.org"
+ homepage = "https://mantevo.org"
git = "https://github.com/Mantevo/miniAero.git"
tags = ['proxy-app']
diff --git a/var/spack/repos/builtin/packages/miniamr/package.py b/var/spack/repos/builtin/packages/miniamr/package.py
index 262c7cb856..03d144a932 100644
--- a/var/spack/repos/builtin/packages/miniamr/package.py
+++ b/var/spack/repos/builtin/packages/miniamr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,6 +19,8 @@ class Miniamr(MakefilePackage):
tags = ['proxy-app', 'ecp-proxy-app']
version('master', branch='master')
+ version('1.6.6', sha256='a7f79fae49e433ef8350cbd34cbf57c486089cf7ac0d1f1f3b23c820d3e5bb9f')
+ version('1.6.5', sha256='c70f0f648c73ea4497817ceee158334eeb901fc5c32cf804deef3226cd9cf26a')
version('1.6.4', sha256='807d50608b69fb1a61924718964be96c0a2f9fa2e37fdc027bc3f0f116544732')
version('1.4.4', sha256='b83f438ff351481b4310c46ddf63b9fffc7f29f916a5717377e72919a5b788b6')
version('1.4.3', sha256='4c3fbc1662ae3e139669fb3844134486a7488a0b6e085c3b24bebcc8d12d3ac6')
@@ -26,20 +28,14 @@ class Miniamr(MakefilePackage):
version('1.4.1', sha256='dd8e8d9fd0768cb4f2c5d7fe6989dfa6bb95a8461f04deaccdbb50b0dd51e97a')
version('1.4.0', sha256='f0b959c90416288c5ab51ed86b6ba49bc8a319006c2a74a070c94133267edc6f')
- variant('mpi', default=True, description='Build with MPI support')
-
- depends_on('mpi', when="+mpi")
+ depends_on('mpi')
@property
def build_targets(self):
targets = []
- if '+mpi' in self.spec:
- targets.append('CC={0}'.format(self.spec['mpi'].mpicc))
- targets.append('LD={0}'.format(self.spec['mpi'].mpicc))
- targets.append('LDLIBS=-lm')
- else:
- targets.append('CC={0}'.format(self.compiler.cc))
- targets.append('LD={0}'.format(self.compiler.cc))
+ targets.append('CC={0}'.format(self.spec['mpi'].mpicc))
+ targets.append('LD={0}'.format(self.spec['mpi'].mpicc))
+ targets.append('LDLIBS=-lm')
targets.append('--directory=ref')
return targets
diff --git a/var/spack/repos/builtin/packages/miniapp-ascent/package.py b/var/spack/repos/builtin/packages/miniapp-ascent/package.py
new file mode 100644
index 0000000000..7a73151ec8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/miniapp-ascent/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 MiniappAscent(Package):
+ """Pantheon/E4S/Ascent in-situ miniapp example workflow"""
+
+ homepage = "https://github.com/cinemascienceworkflows/2021-04_Miniapp-Ascent"
+ git = "https://github.com/cinemascienceworkflows/2021-04_Miniapp-Ascent.git"
+ url = "https://github.com/cinemascienceworkflows/2021-04_Miniapp-Ascent/archive/refs/heads/master.zip"
+
+ version('master',
+ branch='master')
+
+ depends_on("ascent", type=('run'))
+
+ def install(self, spec, prefix):
+ install_tree(self.stage.source_path, prefix)
diff --git a/var/spack/repos/builtin/packages/miniasm/package.py b/var/spack/repos/builtin/packages/miniasm/package.py
index 3ab3832b7e..c8ede61a8f 100644
--- a/var/spack/repos/builtin/packages/miniasm/package.py
+++ b/var/spack/repos/builtin/packages/miniasm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/miniconda2/package.py b/var/spack/repos/builtin/packages/miniconda2/package.py
index 1173011a0e..992d40253a 100644
--- a/var/spack/repos/builtin/packages/miniconda2/package.py
+++ b/var/spack/repos/builtin/packages/miniconda2/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path import split
+from spack import *
+
class Miniconda2(Package):
"""The minimalist bootstrap toolset for conda and Python2."""
diff --git a/var/spack/repos/builtin/packages/miniconda3/package.py b/var/spack/repos/builtin/packages/miniconda3/package.py
index b3bda3dfaa..03d717e4bb 100644
--- a/var/spack/repos/builtin/packages/miniconda3/package.py
+++ b/var/spack/repos/builtin/packages/miniconda3/package.py
@@ -1,26 +1,48 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
from os.path import split
+from spack import *
+
+_versions = {
+ '4.10.3': {
+ 'Linux-x86_64': ('1ea2f885b4dbc3098662845560bc64271eb17085387a70c2ba3f29fff6f8d52f', 'https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh')},
+ '4.9.2': {
+ 'Linux-ppc64le': ('2b111dab4b72a34c969188aa7a91eca927a034b14a87f725fa8d295955364e71', 'https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-ppc64le.sh'),
+ 'Linux-x86_64': ('1314b90489f154602fd794accfc90446111514a5a72fe1f71ab83e07de9504a7', 'https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh')},
+ '4.8.2': {
+ 'Linux-x86_64': ('5bbb193fd201ebe25f4aeb3c58ba83feced6a25982ef4afa86d5506c3656c142', 'https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.2-Linux-x86_64.sh')},
+ '4.7.12.1': {
+ 'Linux-x86_64': ('bfe34e1fa28d6d75a7ad05fd02fa5472275673d5f5621b77380898dee1be15d2', 'https://repo.continuum.io/miniconda/Miniconda3-4.7.12.1-Linux-x86_64.sh')},
+ '4.6.14': {
+ 'Linux-x86_64': ('0d6b23895a91294a4924bd685a3a1f48e35a17970a073cd2f684ffe2c31fc4be', 'https://repo.continuum.io/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh')},
+ '4.5.11': {
+ 'Linux-x86_64': ('ea4594241e13a2671c5b158b3b813f0794fe58d514795fbf72a1aad24db918cf', 'https://repo.continuum.io/miniconda/Miniconda3-4.5.11-Linux-x86_64.sh')},
+ '4.5.4': {
+ 'Linux-x86_64': ('80ecc86f8c2f131c5170e43df489514f80e3971dd105c075935470bbf2476dea', 'https://repo.continuum.io/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh')},
+ '4.3.30': {
+ 'Linux-x86_64': ('66c822dfe76636b4cc2ae5604816e0e723aa01620f50087f06410ecf5bfdf38c', 'https://repo.continuum.io/miniconda/Miniconda3-4.3.30-Linux-x86_64.sh')},
+ '4.3.14': {
+ 'Linux-x86_64': ('902f31a46b4a05477a9862485be5f84af761a444f8813345ff8dad8f6d3bccb2', 'https://repo.continuum.io/miniconda/Miniconda3-4.3.14-Linux-x86_64.sh')},
+ '4.3.11': {
+ 'Linux-x86_64': ('b9fe70ce7b6fa8df05abfb56995959b897d0365299f5046063bc236843474fb8', 'https://repo.continuum.io/miniconda/Miniconda3-4.3.11-Linux-x86_64.sh')},
+}
+
class Miniconda3(Package):
"""The minimalist bootstrap toolset for conda and Python3."""
homepage = "https://conda.io/miniconda.html"
- url = "https://repo.continuum.io/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh"
-
- version('4.8.2', sha256='5bbb193fd201ebe25f4aeb3c58ba83feced6a25982ef4afa86d5506c3656c142', url='https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.2-Linux-x86_64.sh', expand=False)
- version('4.7.12.1', sha256='bfe34e1fa28d6d75a7ad05fd02fa5472275673d5f5621b77380898dee1be15d2', expand=False)
- version('4.6.14', sha256='0d6b23895a91294a4924bd685a3a1f48e35a17970a073cd2f684ffe2c31fc4be', expand=False)
- version('4.5.11', sha256='ea4594241e13a2671c5b158b3b813f0794fe58d514795fbf72a1aad24db918cf', expand=False)
- version('4.5.4', sha256='80ecc86f8c2f131c5170e43df489514f80e3971dd105c075935470bbf2476dea', expand=False)
- version('4.3.30', sha256='66c822dfe76636b4cc2ae5604816e0e723aa01620f50087f06410ecf5bfdf38c', expand=False)
- version('4.3.14', sha256='902f31a46b4a05477a9862485be5f84af761a444f8813345ff8dad8f6d3bccb2', expand=False)
- version('4.3.11', sha256='b9fe70ce7b6fa8df05abfb56995959b897d0365299f5046063bc236843474fb8', expand=False)
+
+ for ver, packages in _versions.items():
+ key = "{0}-{1}".format(platform.system(), platform.machine())
+ pkg = packages.get(key)
+ if pkg:
+ version(ver, sha256=pkg[0], url=pkg[1], expand=False)
def install(self, spec, prefix):
# peel the name of the script out of the pathname of the
diff --git a/var/spack/repos/builtin/packages/minife/package.py b/var/spack/repos/builtin/packages/minife/package.py
index 034b9f9569..2d5a2b1f09 100644
--- a/var/spack/repos/builtin/packages/minife/package.py
+++ b/var/spack/repos/builtin/packages/minife/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,7 +19,7 @@ class Minife(MakefilePackage):
version('2.1.0', sha256='59f4c56d73d2a758cba86939db2d36e12705282cb4174ce78223d984527f5d15')
variant('build', default='ref', description='Type of Parallelism',
- values=('ref', 'openmp_ref', 'qthreads', 'kokkos'))
+ values=('ref', 'openmp', 'qthreads', 'kokkos'))
depends_on('mpi')
depends_on('qthreads', when='build=qthreads')
diff --git a/var/spack/repos/builtin/packages/miniforge3/package.py b/var/spack/repos/builtin/packages/miniforge3/package.py
index 621db7b034..94152c2d8c 100644
--- a/var/spack/repos/builtin/packages/miniforge3/package.py
+++ b/var/spack/repos/builtin/packages/miniforge3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/minigan/package.py b/var/spack/repos/builtin/packages/minigan/package.py
index 5d3b553bcf..cba2ad3652 100644
--- a/var/spack/repos/builtin/packages/minigan/package.py
+++ b/var/spack/repos/builtin/packages/minigan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/minighost/package.py b/var/spack/repos/builtin/packages/minighost/package.py
index b1903f7e62..76944c2b29 100644
--- a/var/spack/repos/builtin/packages/minighost/package.py
+++ b/var/spack/repos/builtin/packages/minighost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,8 +15,8 @@ class Minighost(MakefilePackage):
across a homogenous three dimensional domain.
"""
- homepage = "http://mantevo.org"
- url = "http://downloads.mantevo.org/releaseTarballs/miniapps/MiniGhost/miniGhost_1.0.1.tar.gz"
+ homepage = "https://mantevo.org"
+ url = "https://downloads.mantevo.org/releaseTarballs/miniapps/MiniGhost/miniGhost_1.0.1.tar.gz"
tags = ['proxy-app']
diff --git a/var/spack/repos/builtin/packages/minigmg/package.py b/var/spack/repos/builtin/packages/minigmg/package.py
index ee519b2210..262bc91eb1 100644
--- a/var/spack/repos/builtin/packages/minigmg/package.py
+++ b/var/spack/repos/builtin/packages/minigmg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,7 +20,7 @@ class Minigmg(Package):
Note, miniGMG code has been supersceded by HPGMG. """
homepage = "http://crd.lbl.gov/departments/computer-science/PAR/research/previous-projects/miniGMG/"
- url = "http://crd.lbl.gov/assets/Uploads/FTG/Projects/miniGMG/miniGMG.tar.gz"
+ url = "https://crd.lbl.gov/assets/Uploads/FTG/Projects/miniGMG/miniGMG.tar.gz"
version('master', sha256='1c2d27496a881f655f5e849d6a7a132625e535739f82575991c511cc2cf899ac')
diff --git a/var/spack/repos/builtin/packages/minimap2/package.py b/var/spack/repos/builtin/packages/minimap2/package.py
index 4c8e2a1c4c..388371d17d 100644
--- a/var/spack/repos/builtin/packages/minimap2/package.py
+++ b/var/spack/repos/builtin/packages/minimap2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class Minimap2(PythonPackage):
url = "https://github.com/lh3/minimap2/releases/download/v2.2/minimap2-2.2.tar.bz2"
version('2.14', sha256='9088b785bb0c33488ca3a27c8994648ce21a8be54cb117f5ecee26343facd03b')
- version('2.10', sha256='52b36f726ec00bfca4a2ffc23036d1a2b5f96f0aae5a92fd826be6680c481c20')
+ version('2.10', sha256='52b36f726ec00bfca4a2ffc23036d1a2b5f96f0aae5a92fd826be6680c481c20')
version('2.2', sha256='7e8683aa74c4454a8cfe3821f405c4439082e24c152b4b834fdb56a117ecaed9')
conflicts('target=aarch64:', when='@:2.10')
diff --git a/var/spack/repos/builtin/packages/minimd/package.py b/var/spack/repos/builtin/packages/minimd/package.py
index ceac240146..563f9627cf 100644
--- a/var/spack/repos/builtin/packages/minimd/package.py
+++ b/var/spack/repos/builtin/packages/minimd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class Minimd(MakefilePackage):
in a typical molecular dynamics applications.
"""
- homepage = "http://mantevo.org"
- url = "http://downloads.mantevo.org/releaseTarballs/miniapps/MiniMD/miniMD_1.2.tgz"
+ homepage = "https://mantevo.org"
+ url = "https://downloads.mantevo.org/releaseTarballs/miniapps/MiniMD/miniMD_1.2.tgz"
tags = ['proxy-app']
diff --git a/var/spack/repos/builtin/packages/minio/package.py b/var/spack/repos/builtin/packages/minio/package.py
index 4485f650e7..90275e9b24 100644
--- a/var/spack/repos/builtin/packages/minio/package.py
+++ b/var/spack/repos/builtin/packages/minio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/miniqmc/package.py b/var/spack/repos/builtin/packages/miniqmc/package.py
index 4ac543c4dd..86b68b5fdd 100644
--- a/var/spack/repos/builtin/packages/miniqmc/package.py
+++ b/var/spack/repos/builtin/packages/miniqmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/minisign/package.py b/var/spack/repos/builtin/packages/minisign/package.py
index 7bb02eb453..eabc481236 100644
--- a/var/spack/repos/builtin/packages/minisign/package.py
+++ b/var/spack/repos/builtin/packages/minisign/package.py
@@ -1,8 +1,7 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 *
@@ -12,6 +11,16 @@ class Minisign(CMakePackage):
homepage = "https://jedisct1.github.io/minisign/"
url = "https://github.com/jedisct1/minisign/archive/0.7.tar.gz"
+ maintainers = ['alalazo']
+
+ version('0.9', sha256='caa4b3dd314e065c6f387b2713f7603673e39a8a0b1a76f96ef6c9a5b845da0f')
+ version('0.8', sha256='130eb5246076bc7ec42f13495a601382e566bb6733430d40a68de5e43a7f1082')
version('0.7', sha256='0c9f25ae647b6ba38cf7e6aea1da4e8fb20e1bc64ef0c679da737a38c8ad43ef')
+ variant('static', default=True,
+ description='builds a static version of the executable')
+
depends_on('libsodium')
+
+ def cmake_args(self):
+ return [self.define_from_variant('STATIC_LIBSODIUM', 'static')]
diff --git a/var/spack/repos/builtin/packages/minismac2d/package.py b/var/spack/repos/builtin/packages/minismac2d/package.py
index 5e89156278..a3828b2c47 100644
--- a/var/spack/repos/builtin/packages/minismac2d/package.py
+++ b/var/spack/repos/builtin/packages/minismac2d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class Minismac2d(MakefilePackage):
turbulence model on a structured body conforming grid.
"""
- homepage = "http://mantevo.org"
- url = "http://downloads.mantevo.org/releaseTarballs/miniapps/MiniSMAC2D/miniSMAC2D-2.0.tgz"
+ homepage = "https://mantevo.org"
+ url = "https://downloads.mantevo.org/releaseTarballs/miniapps/MiniSMAC2D/miniSMAC2D-2.0.tgz"
tags = ['proxy-app']
diff --git a/var/spack/repos/builtin/packages/minitri/package.py b/var/spack/repos/builtin/packages/minitri/package.py
index ec7aff1530..0cb0e95f4f 100644
--- a/var/spack/repos/builtin/packages/minitri/package.py
+++ b/var/spack/repos/builtin/packages/minitri/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/minivite/package.py b/var/spack/repos/builtin/packages/minivite/package.py
index 6fb46e80c4..3d92af95c3 100644
--- a/var/spack/repos/builtin/packages/minivite/package.py
+++ b/var/spack/repos/builtin/packages/minivite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Minivite(MakefilePackage):
"""
tags = ['proxy-app', 'ecp-proxy-app']
- homepage = "http://hpc.pnl.gov/people/hala/grappolo.html"
+ homepage = "https://hpc.pnl.gov/people/hala/grappolo.html"
git = "https://github.com/Exa-Graph/miniVite.git"
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/minixyce/package.py b/var/spack/repos/builtin/packages/minixyce/package.py
index 17d4a4b032..48a2d25c24 100644
--- a/var/spack/repos/builtin/packages/minixyce/package.py
+++ b/var/spack/repos/builtin/packages/minixyce/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Minixyce(MakefilePackage):
"""
homepage = "https://mantevo.org"
- url = "http://downloads.mantevo.org/releaseTarballs/miniapps/MiniXyce/miniXyce_1.0.tar.gz"
+ url = "https://downloads.mantevo.org/releaseTarballs/miniapps/MiniXyce/miniXyce_1.0.tar.gz"
tags = ['proxy-app']
diff --git a/var/spack/repos/builtin/packages/minizip/implicit.patch b/var/spack/repos/builtin/packages/minizip/implicit.patch
new file mode 100644
index 0000000000..86df7d46f0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minizip/implicit.patch
@@ -0,0 +1,10 @@
+--- a/contrib/minizip/miniunz.c 2010-07-18 11:04:24.000000000 -0500
++++ b/contrib/minizip/miniunz.c 2020-12-25 21:39:19.000000000 -0600
+@@ -45,6 +45,7 @@
+ #include <time.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <sys/stat.h>
+
+ #ifdef _WIN32
+ # include <direct.h>
diff --git a/var/spack/repos/builtin/packages/minizip/package.py b/var/spack/repos/builtin/packages/minizip/package.py
index 0bf524da48..9c1690ee3e 100644
--- a/var/spack/repos/builtin/packages/minizip/package.py
+++ b/var/spack/repos/builtin/packages/minizip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Minizip(AutotoolsPackage):
"""C library for zip/unzip via zLib."""
- homepage = "http://www.winimage.com/zLibDll/minizip.html"
+ homepage = "https://www.winimage.com/zLibDll/minizip.html"
url = "https://zlib.net/fossils/zlib-1.2.11.tar.gz"
version('1.2.11', sha256='c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1')
@@ -22,6 +22,14 @@ class Minizip(AutotoolsPackage):
depends_on('m4', type='build')
depends_on('zlib')
+ # error: implicit declaration of function 'mkdir' is invalid in C99
+ patch('implicit.patch', when='%apple-clang@12:')
+ patch('implicit.patch', when='%gcc@7.3.0:')
+
+ # statically link to libz.a
+ # https://github.com/Homebrew/homebrew-core/blob/master/Formula/minizip.rb
+ patch('static.patch', when='%apple-clang@12:')
+
# build minizip and miniunz
@run_before('autoreconf')
def build_minizip_binary(self):
diff --git a/var/spack/repos/builtin/packages/minizip/static.patch b/var/spack/repos/builtin/packages/minizip/static.patch
new file mode 100644
index 0000000000..3030a08e64
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minizip/static.patch
@@ -0,0 +1,26 @@
+--- a/contrib/minizip/Makefile.am 2012-03-26 22:17:41.000000000 -0500
++++ b/contrib/minizip/Makefile.am 2020-12-26 12:48:31.000000000 -0600
+@@ -8,7 +8,7 @@
+ zlib_top_builddir = $(top_builddir)/../..
+
+ AM_CPPFLAGS = -I$(zlib_top_srcdir)
+-AM_LDFLAGS = -L$(zlib_top_builddir)
++AM_LDFLAGS = $(zlib_top_builddir)/libz.a
+
+ if WIN32
+ iowin32_src = iowin32.c
+@@ -22,7 +22,7 @@
+ zip.c \
+ ${iowin32_src}
+
+-libminizip_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0 -lz
++libminizip_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0
+
+ minizip_includedir = $(includedir)/minizip
+ minizip_include_HEADERS = \
+@@ -42,4 +42,4 @@
+ miniunzip_LDADD = libminizip.la
+
+ minizip_SOURCES = minizip.c
+-minizip_LDADD = libminizip.la -lz
++minizip_LDADD = libminizip.la
diff --git a/var/spack/repos/builtin/packages/minuit/package.py b/var/spack/repos/builtin/packages/minuit/package.py
index d385fe5f7d..21f5280b6a 100644
--- a/var/spack/repos/builtin/packages/minuit/package.py
+++ b/var/spack/repos/builtin/packages/minuit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/miopen-hip/0001-Add-rocm-path-and-rocm-device-lib-path-flags.patch b/var/spack/repos/builtin/packages/miopen-hip/0001-Add-rocm-path-and-rocm-device-lib-path-flags.patch
new file mode 100644
index 0000000000..b98304529f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/miopen-hip/0001-Add-rocm-path-and-rocm-device-lib-path-flags.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 985f59f..515e7e0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -184,7 +184,8 @@ string(REGEX REPLACE --cuda-gpu-arch=[a-z0-9]+ "" HIP_COMPILER_FLAGS "${HIP_COMP
+ message(STATUS "Hip compiler flags: ${HIP_COMPILER_FLAGS}")
+
+ add_definitions("-DHIP_COMPILER_FLAGS=${HIP_COMPILER_FLAGS}")
+-
++add_definitions("--rocm-path=${HIP_PREFIX_PATH}")
++add_definitions("--rocm-device-lib-path=${DEVICELIBS_PREFIX_PATH}")
+
+
+ # HIP
diff --git a/var/spack/repos/builtin/packages/miopen-hip/package.py b/var/spack/repos/builtin/packages/miopen-hip/package.py
index 30577f58e5..96a5a3a3fa 100644
--- a/var/spack/repos/builtin/packages/miopen-hip/package.py
+++ b/var/spack/repos/builtin/packages/miopen-hip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,18 @@ class MiopenHip(CMakePackage):
"""AMD's library for high performance machine learning primitives."""
homepage = "https://github.com/ROCmSoftwarePlatform/MIOpen"
- url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/MIOpen.git"
+ url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='1fb2fd8b24f984174ec5338a58b7964e128b74dafb101373a41c8ed33955251a')
+ version('4.3.0', sha256='034445470cfd44480a1d9854f9fdfe92cfb8efa3f002dee508eb9585e338486d')
+ version('4.2.0', sha256='8ab02e784c8b3471159794766ed6303c333b33c69dc5186c0930e56504373b7c')
+ version('4.1.0', sha256='068b1bc33f90fe21d3aab5697d2b3b7b930e613c54d6c5ee820768579b2b41ee')
+ version('4.0.0', sha256='84c6c17be9c1a9cd0d3a2af283433f64b07a4b9941349f498e40fed82fb205a6')
+ version('3.10.0', sha256='926e43c5583cf70d6b247f9fe45971b8b1cc9668f9c8490c142c7e8b6e268f1a')
+ version('3.9.0', sha256='f57d75a220c1094395cc1dccab2185c759d779751ddbb5369a6f041ec77b2156')
version('3.8.0', sha256='612b30d4a967bf18c7fa7aa3ef12ed558314ed04cee2775b842bf6a96cd7276f')
version('3.7.0', sha256='f6a6ddd8d39bb76b7f7d91e68ade3b45e0201181145658c43b967065a354b103')
version('3.5.0', sha256='aa362e69c4dce7f5751f0ee04c745735ea5454c8101050e9b92cc60fa3c0fb82')
@@ -22,25 +30,51 @@ class MiopenHip(CMakePackage):
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
depends_on('cmake@3:', type='build')
- depends_on('boost@1.58.0', type='link')
depends_on('pkgconfig', type='build')
- depends_on('bzip2', type='link')
- depends_on('sqlite', type='link')
- depends_on('half', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0']:
- depends_on('hip@' + ver, type='build', when='@' + ver)
+ depends_on('boost@1.67.0:1.73.0')
+ depends_on('bzip2')
+ depends_on('sqlite')
+ depends_on('half')
+ depends_on('zlib', when='@3.9.0:')
+
+ patch('0001-Add-rocm-path-and-rocm-device-lib-path-flags.patch', when='@3.9.0:')
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('comgr@' + ver, type='link', when='@' + ver)
- depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
- depends_on('rocm-clang-ocl@' + ver, type='build', when='@' + ver)
- depends_on('rocblas@' + ver, type='link', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='link', when='@' + ver)
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('rocm-clang-ocl@' + ver, when='@' + ver)
+ depends_on('rocblas@' + ver, when='@' + ver)
+
+ def setup_build_environment(self, env):
+ if '@3.9.0:' in self.spec:
+ lib_dir = self.spec['zlib'].libs.directories[0]
+ env.prepend_path('LIBRARY_PATH', lib_dir)
+
+ def get_bitcode_dir(self):
+ spec = self.spec
+
+ # and the exact location of its bitcode depends on the version
+ if spec.version >= Version('3.9.0'):
+ return spec['llvm-amdgpu'].prefix.amdgcn.bitcode
+ else:
+ return spec['llvm-amdgpu'].prefix.lib
def cmake_args(self):
+ spec = self.spec
+
args = [
- '-DMIOPEN_BACKEND=HIP',
- '-DCMAKE_CXX_COMPILER={0}/bin/clang++'
- .format(self.spec['llvm-amdgpu'].prefix),
- '-DBoost_USE_STATIC_LIBS=Off'
+ self.define('MIOPEN_BACKEND', 'HIP'),
+ self.define(
+ 'CMAKE_CXX_COMPILER',
+ '{0}/bin/clang++'.format(spec['llvm-amdgpu'].prefix)
+ ),
+ self.define(
+ 'MIOPEN_AMDGCN_ASSEMBLER',
+ '{0}/bin/clang'.format(spec['llvm-amdgpu'].prefix)
+ ),
+ self.define('Boost_USE_STATIC_LIBS', 'Off'),
+ self.define('HIP_PREFIX_PATH', spec['hip'].prefix),
+ self.define('DEVICELIBS_PREFIX_PATH', self.get_bitcode_dir())
]
return args
diff --git a/var/spack/repos/builtin/packages/miopen-opencl/package.py b/var/spack/repos/builtin/packages/miopen-opencl/package.py
index d9a4c755af..81ba7bec3a 100644
--- a/var/spack/repos/builtin/packages/miopen-opencl/package.py
+++ b/var/spack/repos/builtin/packages/miopen-opencl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,17 @@ class MiopenOpencl(CMakePackage):
"""AMD's library for high performance machine learning primitives."""
homepage = "https://github.com/ROCmSoftwarePlatform/MIOpen"
- url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/MIOpen.git"
+ url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='1fb2fd8b24f984174ec5338a58b7964e128b74dafb101373a41c8ed33955251a')
+ version('4.3.0', sha256='034445470cfd44480a1d9854f9fdfe92cfb8efa3f002dee508eb9585e338486d')
+ version('4.2.0', sha256='8ab02e784c8b3471159794766ed6303c333b33c69dc5186c0930e56504373b7c')
+ version('4.1.0', sha256='068b1bc33f90fe21d3aab5697d2b3b7b930e613c54d6c5ee820768579b2b41ee')
+ version('4.0.0', sha256='84c6c17be9c1a9cd0d3a2af283433f64b07a4b9941349f498e40fed82fb205a6')
+ version('3.10.0', sha256='926e43c5583cf70d6b247f9fe45971b8b1cc9668f9c8490c142c7e8b6e268f1a')
version('3.9.0', sha256='f57d75a220c1094395cc1dccab2185c759d779751ddbb5369a6f041ec77b2156')
version('3.8.0', sha256='612b30d4a967bf18c7fa7aa3ef12ed558314ed04cee2775b842bf6a96cd7276f')
version('3.7.0', sha256='f6a6ddd8d39bb76b7f7d91e68ade3b45e0201181145658c43b967065a354b103')
@@ -23,30 +30,38 @@ class MiopenOpencl(CMakePackage):
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
depends_on('cmake@3:', type='build')
- depends_on('boost@1.58.0', type='link')
+ depends_on('boost@1.67.0:1.73.0', type='link')
depends_on('pkgconfig', type='build')
depends_on('bzip2', type='link')
depends_on('sqlite', type='link')
depends_on('half', type='build')
+
depends_on('miopengemm@1.1.6', type='link', when='@3.5.0')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hip@' + ver, type='build', when='@' + ver)
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('comgr@' + ver, type='link', when='@' + ver)
- depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
- depends_on('rocm-opencl@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='link', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
- for ver in ['3.7.0', '3.8.0', '3.9.0']:
- depends_on('miopengemm@' + ver, type='link', when='@' + ver)
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('rocm-opencl@' + ver, when='@' + ver)
+
+ for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('miopengemm@' + ver, when='@' + ver)
def cmake_args(self):
args = [
- '-DMIOPEN_BACKEND=OpenCL',
- '-DMIOPEN_HIP_COMPILER={0}/bin/clang++'
- .format(self.spec['llvm-amdgpu'].prefix),
- '-DHIP_CXX_COMPILER={0}/bin/clang++'
- .format(self.spec['llvm-amdgpu'].prefix),
- '-DBoost_USE_STATIC_LIBS=Off'
+ self.define('MIOPEN_BACKEND', 'OpenCL'),
+ self.define(
+ 'MIOPEN_HIP_COMPILER',
+ '{0}/bin/clang++'.format(self.spec['llvm-amdgpu'].prefix)
+ ),
+ self.define(
+ 'HIP_CXX_COMPILER',
+ '{0}/bin/clang++'.format(self.spec['llvm-amdgpu'].prefix)
+ ),
+ self.define(
+ 'MIOPEN_AMDGCN_ASSEMBLER',
+ '{0}/bin/clang'.format(self.spec['llvm-amdgpu'].prefix)
+ ),
+ self.define('Boost_USE_STATIC_LIBS', 'Off')
]
return args
diff --git a/var/spack/repos/builtin/packages/miopengemm/package.py b/var/spack/repos/builtin/packages/miopengemm/package.py
index 44f94738cb..ab88ea2554 100644
--- a/var/spack/repos/builtin/packages/miopengemm/package.py
+++ b/var/spack/repos/builtin/packages/miopengemm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,8 @@ class Miopengemm(CMakePackage):
and kernel generator"""
homepage = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM"
- url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM.git"
+ url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
@@ -21,6 +22,12 @@ class Miopengemm(CMakePackage):
url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-{0}.tar.gz"
return url.format(version)
+ version('4.3.1', sha256='0aee2281d9b8c625e9bda8efff3067237d6155a53f6c720dcb4e3b3ec8bf8d14')
+ version('4.3.0', sha256='d32b3b98e695b7db2fd2faa6587a57728d1252d6d649dcb2db3102f98cd5930e')
+ version('4.2.0', sha256='a11fa063248ed339fe897ab4c5d338b7279035fa37fcbe0909e2c4c352aaefb1')
+ version('4.1.0', sha256='389328eb4a16565853691bd5b01a0eab978d99e3217329236ddc63a38b8dd4eb')
+ version('4.0.0', sha256='366d03facb1ec5f6f4894aa88859df1d7fea00fee0cbac5173d7577e9a8ba799')
+ version('3.10.0', sha256='66d844a17729ab25c1c2a243667d9714eb89fd51e42bfc014e2faf54a8642064')
version('3.9.0', sha256='8e1273c35d50e9fd92e303d9bcbdd42ddbfda20844b3248428e16b54928f6dc2')
version('3.8.0', sha256='d76f5b4b3b9d1e3589a92f667f39eab5b5ab54ec3c4e04d412035be3ec623547')
version('3.7.0', sha256='392b280ca564b120f6b24ec1fe8782cba08a8a5fb52938e8bc3dc887d3fd08fa')
@@ -30,7 +37,9 @@ class Miopengemm(CMakePackage):
depends_on('cmake@3:', type='build')
depends_on('rocm-cmake@3.5.0', type='build', when='@1.1.6')
- depends_on('rocm-opencl@3.5.0', type='build', when='@1.1.6')
- for ver in ['3.7.0', '3.8.0', '3.9.0']:
+ depends_on('rocm-opencl@3.5.0', when='@1.1.6')
+
+ for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('rocm-opencl@' + ver, type='build', when='@' + ver)
+ depends_on('rocm-opencl@' + ver, when='@' + ver)
diff --git a/var/spack/repos/builtin/packages/mira/package.py b/var/spack/repos/builtin/packages/mira/package.py
index beee0a4906..e147000f0f 100644
--- a/var/spack/repos/builtin/packages/mira/package.py
+++ b/var/spack/repos/builtin/packages/mira/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Mira(AutotoolsPackage):
"""MIRA is a multi-pass DNA sequence data assembler/mapper for whole genome
and EST/RNASeq projects."""
- homepage = "http://sourceforge.net/projects/mira-assembler/"
+ homepage = "https://sourceforge.net/projects/mira-assembler/"
url = "https://downloads.sourceforge.net/project/mira-assembler/MIRA/stable/mira-4.0.2.tar.bz2"
version('4.0.2', sha256='a32cb2b21e0968a5536446287c895fe9e03d11d78957554e355c1080b7b92a80')
diff --git a/var/spack/repos/builtin/packages/miranda/package.py b/var/spack/repos/builtin/packages/miranda/package.py
index 7f17619f4b..ee05df09ae 100644
--- a/var/spack/repos/builtin/packages/miranda/package.py
+++ b/var/spack/repos/builtin/packages/miranda/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Miranda(AutotoolsPackage):
"""miRanda is an algorithm for finding genomic targets for microRNAs."""
homepage = "http://www.microrna.org/microrna/getDownloads.do"
- url = "http://cbio.mskcc.org/microrna_data/miRanda-aug2010.tar.gz"
+ url = "https://cbio.mskcc.org/microrna_data/miRanda-aug2010.tar.gz"
version('3.3a', sha256='a671da562cf4636ef5085b27349df2df2f335774663fd423deb08f31212ec778',
- url='http://cbio.mskcc.org/microrna_data/miRanda-aug2010.tar.gz')
+ url='https://cbio.mskcc.org/microrna_data/miRanda-aug2010.tar.gz')
diff --git a/var/spack/repos/builtin/packages/mirdeep2/package.py b/var/spack/repos/builtin/packages/mirdeep2/package.py
index b2c4cd60eb..7819e8941f 100644
--- a/var/spack/repos/builtin/packages/mirdeep2/package.py
+++ b/var/spack/repos/builtin/packages/mirdeep2/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 chmod
import glob
+from os import chmod
+
+from spack import *
class Mirdeep2(Package):
diff --git a/var/spack/repos/builtin/packages/mitofates/package.py b/var/spack/repos/builtin/packages/mitofates/package.py
index 0fb356637e..10a61d7809 100644
--- a/var/spack/repos/builtin/packages/mitofates/package.py
+++ b/var/spack/repos/builtin/packages/mitofates/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+from spack import *
+
class Mitofates(Package):
"""MitoFates predicts mitochondrial presequence, a cleavable localization
diff --git a/var/spack/repos/builtin/packages/mitos/package.py b/var/spack/repos/builtin/packages/mitos/package.py
index 080b6cd742..7ac17d906e 100644
--- a/var/spack/repos/builtin/packages/mitos/package.py
+++ b/var/spack/repos/builtin/packages/mitos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mivisionx/package.py b/var/spack/repos/builtin/packages/mivisionx/package.py
index 64f1d13a23..b5e132d9bd 100644
--- a/var/spack/repos/builtin/packages/mivisionx/package.py
+++ b/var/spack/repos/builtin/packages/mivisionx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,8 @@ class Mivisionx(CMakePackage):
applications bundled into a single toolkit."""
homepage = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX"
- url = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX.git"
+ url = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
@@ -23,12 +24,30 @@ class Mivisionx(CMakePackage):
url = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-{0}.tar.gz"
return url.format(version)
+ version('4.3.1', sha256='d77d63c0f148870dcd2a39a823e94b28adef9e84d2c37dfc3b05db5de4d7af83')
+ version('4.3.0', sha256='31f6ab9fb7f40b23d4b24c9a70f809623720943e0492c3d357dd22dcfa50efb2')
+ version('4.2.0', sha256='172857b1b340373ae81ed6aa241559aa781e32250e75c82d7ba3c002930a8a3a')
+ version('4.1.0', sha256='0b431a49807682b9a81adac6a64160a0712ddaa3963e0f05595c93b92be777ea')
+ version('4.0.0', sha256='e09d4890b729740ded056b3974daea84c8eb1fc93714c52bf89f853c2eef1fb5')
+ version('3.10.0', sha256='8a67fae77a05ef60a501e64a572a7bd2ccb9243518b1414112ccd1d1f78d08c8')
+ version('3.9.0', sha256='892812cc6e6977ed8cd4b69c63f4c17be43b83c78eeafd9549236c17f6eaa2af')
version('3.8.0', sha256='4e177a9b5dcae671d6ea9f0686cf5f73fcd1e3feb3c50425c8c6d43ac5d77feb')
version('3.7.0', sha256='3ce13c6449739c653139fc121411d94eaa9d764d3d339c4c78fab4b8aa199965')
version('1.7', sha256='ff77142fd4d4a93136fd0ac17348861f10e8f5d5f656fa9dacee08d8fcd2b1d8')
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
+ def patch(self):
+ if '@4.2.0' in self.spec:
+ filter_file('${ROCM_PATH}/opencl',
+ self.spec['rocm-opencl'].prefix,
+ 'amd_openvx/cmake/FindOpenCL.cmake',
+ string=True)
+ filter_file('/opt/rocm/mivisionx/include',
+ self.spec['mivisionx'].prefix.include,
+ 'utilities/mv_deploy/CMakeLists.txt',
+ string=True)
+
def flag_handler(self, name, flags):
spec = self.spec
protobuf = spec['protobuf'].prefix.include
@@ -36,23 +55,26 @@ class Mivisionx(CMakePackage):
flags.append('-I{0}'.format(protobuf))
return (flags, None, None)
- depends_on('ffmpeg@4.1.1', type='build')
- depends_on('protobuf@3.5.0', type='build')
- depends_on('opencv@3.4.6', type='build')
- depends_on('rocm-opencl@3.5.0', type='build', when='@1.7')
+ depends_on('cmake@3.5:', type='build')
+ depends_on('ffmpeg@:4', type='build')
+ depends_on('protobuf@:3', type='build')
+ depends_on('opencv@:3.4 +calib3d+core+features2d+highgui+imgcodecs+imgproc+video+videoio+flann+photo+objdetect', type='build')
+ depends_on('rocm-opencl@3.5.0', when='@1.7')
depends_on('rocm-cmake@3.5.0', type='build', when='@1.7')
- depends_on('miopen-opencl@3.5.0', type=('build', 'run', 'link'), when='@1.7')
- depends_on('miopengemm@1.1.6', type=('build', 'run', 'link'), when='@1.7')
- for ver in ['3.7.0', '3.8.0']:
- depends_on('rocm-opencl@' + ver, type='build', when='@' + ver)
- depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('miopengemm@' + ver, type=('build', 'run', 'link'), when='@' + ver)
- depends_on('miopen-opencl@' + ver, type='link', when='@' + ver)
+ depends_on('miopen-opencl@3.5.0', when='@1.7')
+ depends_on('miopengemm@1.1.6', when='@1.7')
+ depends_on('openssl', when='@4.0.0:')
+
+ for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0',
+ '4.3.0', '4.3.1']:
+ depends_on('rocm-opencl@' + ver, when='@' + ver)
+ depends_on('miopengemm@' + ver, when='@' + ver)
+ depends_on('miopen-opencl@' + ver, when='@' + ver)
def cmake_args(self):
spec = self.spec
protobuf = spec['protobuf'].prefix.include
args = [
- '-DCMAKE_CXX_FLAGS:String=-I{0}'.format(protobuf)
+ self.define('CMAKE_CXX_FLAGS', '-I{0}'.format(protobuf))
]
return args
diff --git a/var/spack/repos/builtin/packages/mixcr/package.py b/var/spack/repos/builtin/packages/mixcr/package.py
index 1b0e781b45..5990f5e063 100644
--- a/var/spack/repos/builtin/packages/mixcr/package.py
+++ b/var/spack/repos/builtin/packages/mixcr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mkfontdir/package.py b/var/spack/repos/builtin/packages/mkfontdir/package.py
index ae9885002e..ac06bfa704 100644
--- a/var/spack/repos/builtin/packages/mkfontdir/package.py
+++ b/var/spack/repos/builtin/packages/mkfontdir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Mkfontdir(AutotoolsPackage, XorgPackage):
core font system. The current implementation is a simple wrapper script
around the mkfontscale program, which must be built and installed first."""
- homepage = "http://cgit.freedesktop.org/xorg/app/mkfontdir"
+ homepage = "https://cgit.freedesktop.org/xorg/app/mkfontdir"
xorg_mirror_path = "app/mkfontdir-1.0.7.tar.gz"
version('1.0.7', sha256='bccc5fb7af1b614eabe4a22766758c87bfc36d66191d08c19d2fa97674b7b5b7')
diff --git a/var/spack/repos/builtin/packages/mkfontscale/package.py b/var/spack/repos/builtin/packages/mkfontscale/package.py
index d3ba5e0861..fa3628f35e 100644
--- a/var/spack/repos/builtin/packages/mkfontscale/package.py
+++ b/var/spack/repos/builtin/packages/mkfontscale/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Mkfontscale(AutotoolsPackage, XorgPackage):
"""mkfontscale creates the fonts.scale and fonts.dir index files used by the
legacy X11 font system."""
- homepage = "http://cgit.freedesktop.org/xorg/app/mkfontscale"
+ homepage = "https://cgit.freedesktop.org/xorg/app/mkfontscale"
xorg_mirror_path = "app/mkfontscale-1.1.2.tar.gz"
version('1.1.2', sha256='8bba59e60fbc4cb082092cf6b67e810b47b4fe64fbc77dbea1d7e7d55312b2e4')
@@ -18,6 +18,6 @@ class Mkfontscale(AutotoolsPackage, XorgPackage):
depends_on('libfontenc')
depends_on('freetype')
- depends_on('xproto@7.0.25:', type='build')
+ depends_on('xproto@7.0.25:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/mlhka/package.py b/var/spack/repos/builtin/packages/mlhka/package.py
index 32d259139c..9e3f16b02e 100644
--- a/var/spack/repos/builtin/packages/mlhka/package.py
+++ b/var/spack/repos/builtin/packages/mlhka/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mlocate/package.py b/var/spack/repos/builtin/packages/mlocate/package.py
index c33850fb31..ac0335fa11 100644
--- a/var/spack/repos/builtin/packages/mlocate/package.py
+++ b/var/spack/repos/builtin/packages/mlocate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mlperf-deepcam/package.py b/var/spack/repos/builtin/packages/mlperf-deepcam/package.py
index 55c74fda45..4c9cf34e5b 100644
--- a/var/spack/repos/builtin/packages/mlperf-deepcam/package.py
+++ b/var/spack/repos/builtin/packages/mlperf-deepcam/package.py
@@ -1,13 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 MlperfDeepcam(Package):
+class MlperfDeepcam(Package, CudaPackage):
"""PyTorch implementation for the climate segmentation benchmark,
based on the Exascale Deep Learning for Climate Analytics"""
diff --git a/var/spack/repos/builtin/packages/mmg/package.py b/var/spack/repos/builtin/packages/mmg/package.py
index b48f969bc8..0d985b8bb2 100644
--- a/var/spack/repos/builtin/packages/mmg/package.py
+++ b/var/spack/repos/builtin/packages/mmg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,9 +23,10 @@ class Mmg(CMakePackage):
libmmg3d libraries.
"""
- homepage = "http://www.mmgtools.org/"
+ homepage = "https://www.mmgtools.org/"
url = "https://github.com/MmgTools/mmg/archive/v5.3.13.tar.gz"
+ version('5.5.2', sha256='58e3b866101e6f0686758e16bcf9fb5fb06c85184533fc5054ef1c8adfd4be73')
version('5.4.0', sha256='2b5cc505018859856766be901797ff5d4789f89377038a0211176a5571039750')
version('5.3.13', sha256='d9a5925b69b0433f942ab2c8e55659d9ccea758743354b43d54fdf88a6c3c191')
diff --git a/var/spack/repos/builtin/packages/mmv/better-diagnostics-for-directories-584850.diff b/var/spack/repos/builtin/packages/mmv/better-diagnostics-for-directories-584850.diff
new file mode 100644
index 0000000000..57044a7405
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mmv/better-diagnostics-for-directories-584850.diff
@@ -0,0 +1,22 @@
+Description: Provide better diagnostic for directories
+ Provides better diagnostic when renaming directories. Based on patch
+ by Ulrich Eckhardt <doomster@knuut.de>.
+Debian-Bug: 584850
+Author: Axel Beckert <abe@debian.org>
+
+Index: mmv/mmv.c
+===================================================================
+--- mmv.orig/mmv.c 2012-09-16 20:03:04.269626454 +0200
++++ mmv/mmv.c 2012-09-16 20:06:18.220733497 +0200
+@@ -1215,7 +1215,11 @@
+ getstat(pathbuf, ffrom);
+ if ((ffrom->fi_stflags & FI_ISDIR) ? !dirs : !fils)
+ #endif
++ {
++ if (verbose)
++ printf("ignoring directory %s\n", ffrom->fi_name);
+ return(0);
++ }
+
+ if (needslash) {
+ strcpy(pathend + *pk, SLASHSTR);
diff --git a/var/spack/repos/builtin/packages/mmv/format-security.diff b/var/spack/repos/builtin/packages/mmv/format-security.diff
new file mode 100644
index 0000000000..3b813f1acd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mmv/format-security.diff
@@ -0,0 +1,17 @@
+Description: Fixes build failure with -Werror=format-security
+ ("format not a string literal and no format arguments")
+Author: Axel Beckert <abe@debian.org>
+
+Index: mmv/mmv.c
+===================================================================
+--- mmv.orig/mmv.c 2012-09-16 18:51:28.000000000 +0200
++++ mmv/mmv.c 2012-09-16 18:59:20.600733584 +0200
+@@ -2828,7 +2828,7 @@
+ static FILE *tty = NULL;
+ int c, r;
+
+- fprintf(stderr, m);
++ fprintf(stderr, "%s", m);
+ if (tty == NULL && (tty = fopen(TTY, "r")) == NULL) {
+ fprintf(stderr, "Can not open %s to get reply.\n", TTY);
+ if (failact == -1)
diff --git a/var/spack/repos/builtin/packages/mmv/man-page-examples.diff b/var/spack/repos/builtin/packages/mmv/man-page-examples.diff
new file mode 100644
index 0000000000..706f88af57
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mmv/man-page-examples.diff
@@ -0,0 +1,54 @@
+Description: Add examples section to man page
+ This patch adds several examples of common mmv usage to the man page
+Debian-Bug: 380327
+Author: Axel Beckert <abe@debian.org>
+Last-Update: 2012-12-29
+
+Index: mmv/mmv.1
+===================================================================
+--- mmv.orig/mmv.1 2012-12-29 02:20:59.510075480 +0100
++++ mmv/mmv.1 2012-12-29 02:39:33.591699513 +0100
+@@ -35,6 +35,43 @@
+ .B mmvpatch
+ [\fBexecutable\fP]
+ \}
++.SH "EXAMPLES"
++Rename all
++.I *.jpeg
++files in the current directory to
++\fI*.jpg\fR:
++
++.in +3
++mmv '*.jpeg' '#1.jpg'
++.in -3
++
++Replace the first occurrence of
++.I abc
++with
++.I xyz
++in all files in the current directory:
++
++.in +3
++mmv '*abc*' '#1xyz#2'
++.in -3
++
++Rename files ending in \fI.html.en\fR, \fI.html.de\fR, etc. to ending
++in \fI.en.html\fR, \fI.de.html\fR, etc. in the current directory:
++
++.in +3
++mmv '*.html.??' '#1.#2#3.html'
++.in -3
++
++Rename music files from
++.I <track no.> - <interpreter> - <song title>.ogg
++to
++.I <interpreter> - <track no.> - <song title>.ogg
++in the current directory:
++
++.in +3
++mmv '* - * - *.ogg' '#2 - #1 - #3.ogg'
++.in -3
++
+ .SH "DESCRIPTION"
+ .I Mmv
+ moves (or copies,
diff --git a/var/spack/repos/builtin/packages/mmv/man-page-fixes.diff b/var/spack/repos/builtin/packages/mmv/man-page-fixes.diff
new file mode 100644
index 0000000000..55696ba80c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mmv/man-page-fixes.diff
@@ -0,0 +1,361 @@
+Description: Man page fixes as of mmv 1.01b-15
+ This patch contains the man-page fixes as of mmv 1.01b-15 when it has
+ been converted to the source format "3.0 (quilt)"
+Author: Multiple Authors. See changelog for details.
+Reviewed-By: Axel Beckert <abe@debian.org>
+Last-Update: 2012-12-29
+
+--- mmv-1.01b.orig/mmv.1
++++ mmv-1.01b/mmv.1
+@@ -2,7 +2,7 @@
+ .\" To print the MS-DOS version, use option -rO2.
+ .\" Under System V, take out the '.\" ' from the next line.
+ .\" .nr O 1
+-.TH MMV 1 "November 20, 1989 (v1.0)"
++.TH MMV 1 "November 20, 2001 (v1.0lfs)"
+ .ie !'\nO'2' \{\
+ .SH NAME
+ mmv \- move/copy/append/link multiple files by wildcard patterns
+@@ -21,13 +21,14 @@ mmv \- move/copy/append multiple files b
+ \}
+ .SH SYNOPSIS
+ .B mmv
+-.if '\nO'2' [\fB-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBz\fP]
+-.if '\nO'0' [\fB-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBl\fP|\fBs\fP]
+-.if '\nO'1' [\fB-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBl\fP]
+-[\fB-h\fP]
+-[\fB-d\fP|\fBp\fP]
+-[\fB-g\fP|\fBt\fP]
+-[\fB-v\fP|\fBn\fP]
++.if '\nO'2' [\fB\-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBz\fP]
++.if '\nO'0' [\fB\-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBl\fP|\fBs\fP]
++.if '\nO'1' [\fB\-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBl\fP]
++[\fB\-h\fP]
++[\fB\-d\fP|\fBp\fP]
++[\fB\-g\fP|\fBt\fP]
++[\fB\-v\fP|\fBn\fP]
++[\fB\-\-\fP]
+ [\fBfrom to\fP]
+ .if '\nO'2' \{\
+ .br
+@@ -56,6 +57,9 @@ from the entire set of actions specified
+ and gives the user the choice of either
+ proceeding by avoiding the offending parts
+ or aborting.
++.I mmv
++does support large files (LFS) but it does *NOT* support
++sparse files (i.e. it explodes them).
+
+ .ce
+ The Task Options
+@@ -71,7 +75,7 @@ If none of these are specified,
+ .ie '\nO'2' \{\
+ a default (patchable by
+ .IR mmvpatch ,
+-and initially -x)
++and initially \-x)
+ determines the task.
+ \}
+ .el \{\
+@@ -81,18 +85,18 @@ was invoked (argv[0]):
+
+ command name default task
+
+- mmv -x
++ mmv \-x
+ .br
+- mcp -c
++ mcp \-c
+ .br
+- mad -a
++ mad \-a
+ .br
+- mln -l
++ mln \-l
+ \}
+ .PP
+ The task option choices are:
+ .TP
+--m :
++\-m :
+ move source file to target name.
+ Both must be on the same device.
+ Will not move directories.
+@@ -102,8 +106,8 @@ moves the link without checking if the l
+ directory is different than the old.
+ \}
+ .TP
+--x :
+-same as -m, except cross-device moves are done
++\-x :
++same as \-m, except cross-device moves are done
+ by copying, then deleting source.
+ When copying, sets the
+ .ie !'\nO'2' permission bits
+@@ -111,7 +115,7 @@ When copying, sets the
+ and file modification time
+ of the target file to that of the source file.
+ .TP
+--r :
++\-r :
+ rename source file or directory to target name.
+ The target name must not include a path:
+ the file remains in the same directory in all cases.
+@@ -119,7 +123,7 @@ This option is the only way of renaming
+ .IR mmv .
+ .if '\nO'2' It is only available under DOS version 3.0 or higher.
+ .TP
+--c :
++\-c :
+ copy source file to target name.
+ Sets the file modification time and
+ .ie !'\nO'2' permission bits
+@@ -128,7 +132,7 @@ of the target file to that of the source
+ regardless of whether the target file already exists.
+ Chains and cycles (to be explained below) are not allowed.
+ .TP
+--o :
++\-o :
+ overwrite target name with source file.
+ .ie '\nO'2' \{\
+ If target file exists, its attributes are left unchanged.
+@@ -146,38 +150,38 @@ and the execute permission bits copied f
+ In either case, the file modification time is set to the current time.
+ \}
+ .TP
+--a :
++\-a :
+ append contents of source file to target name.
+ Target file modification time is set to the current time.
+ If target file does not exist,
+ it is created with
+ .ie '\nO'2' attributes
+ .el permission bits
+-set as under -o.
+-Unlike all other options, -a allows multiple source files to have the
+-same target name, e.g. "mmv -a
++set as under \-o.
++Unlike all other options, \-a allows multiple source files to have the
++same target name, e.g. "mmv \-a
+ .ie '\nO'2' *.c
+ .el \\*.c
+ big" will append all ".c" files to "big".
+-Chains and cycles are also allowed, so "mmv -a f f" will double up "f".
++Chains and cycles are also allowed, so "mmv \-a f f" will double up "f".
+ .ie '\nO'2' \{\
+ .TP
+--z :
+-same as -a, but if the target file exists, and its last character is a ^Z,
++\-z :
++same as \-a, but if the target file exists, and its last character is a ^Z,
+ and the source file is not empty,
+ this ^Z is truncated before doing the append.
+ \}
+ .el \{\
+ .TP
+--l :
++\-l :
+ link target name to source file.
+ Both must be on the same device,
+ and the source must not be a directory.
+ Chains and cycles are not allowed.
+ .if '\nO'0' \{\
+ .TP
+--s :
+-same as -l, but use symbolic links instead of hard links.
++\-s :
++same as \-l, but use symbolic links instead of hard links.
+ For the resulting link to aim back at the source,
+ either the source name must begin with a '/',
+ or the target must reside in either the current or the source directory.
+@@ -190,7 +194,7 @@ and the source can be a directory.
+ Only one of these option may be given,
+ and it applies to all matching files.
+ Remaining options need not be given separately,
+-i.e. "mmv -mk" is allowed.
++i.e. "mmv \-mk" is allowed.
+
+ .ce
+ Multiple Pattern Pairs
+@@ -232,7 +236,7 @@ a b
+ a c
+ .in -3
+
+-would give the error message "a -> c : no match" because file "a"
++would give the error message "a \-> c : no match" because file "a"
+ (even if it exists)
+ was already matched by the first pattern pair.
+
+@@ -255,10 +259,10 @@ matching any single character,
+ and matching any one of a set of characters.
+ .PP
+ Between the '[' and ']', a range from character 'a' through character 'z'
+-is specified with "a-z".
++is specified with "a\-z".
+ The set of matching characters can be negated by inserting
+ a '^' after the '['.
+-Thus, "[^b-e2-5_]"
++Thus, "[^b\-e2\-5_]"
+ will match any character but 'b' through 'e', '2' through '5', and '_'.
+ .if '\nO'2' \{\
+ .PP
+@@ -305,13 +309,13 @@ However, the '~' is not treated as a wil
+ in the sense that it is not assigned a wildcard index (see below).
+ \}
+ .PP
+-Since matching a directory under a task option other than -r or -s
++Since matching a directory under a task option other than \-r or \-s
+ would result in an error,
+-tasks other than -r and -s
++tasks other than \-r and \-s
+ match directories only against completely explicit
+ .I from
+ patterns (i.e. not containing wildcards).
+-Under -r and -s, this applies only to "." and "..".
++Under \-r and \-s, this applies only to "." and "..".
+ .PP
+ .ie '\nO'2' \{\
+ Hidden and system files are also only matched
+@@ -324,7 +328,7 @@ Files beginning with '.' are only matche
+ .I from
+ patterns that begin with an explicit '.'.
+ \}
+-However, if -h is specified, they are matched normally.
++However, if \-h is specified, they are matched normally.
+ .if !'\nO'2' \{\
+ .PP
+ Warning: since the shell normally expands wildcards
+@@ -332,8 +336,9 @@ before passing the command-line argument
+ .IR mmv ,
+ it is usually necessary to enclose the command-line
+ .I from
+-pattern
+-in quotes.
++and
++.I to
++patterns in quotes.
+ \}
+
+ .ce
+@@ -363,7 +368,7 @@ pattern is "abc*.*" and the
+ pattern is "xyz#2.#1",
+ then "abc.txt" is targeted to "xyztxt.".
+ (The first '*' matched "", and the second matched "txt".)
+-Similarly, for the pattern pair ";*.[clp]" -> "#1#3\*(SL#2",
++Similarly, for the pattern pair ";*.[clp]" \-> "#1#3\*(SL#2",
+ "foo1\*(SLfoo2\*(SLprog.c" is targeted to "foo1\*(SLfoo2\*(SLc\*(SLprog".
+ Note that there is no '\*(SL' following the "#1" in the
+ .I to
+@@ -397,7 +402,7 @@ expands the '~' in the exact same manner
+ does not expand it at all).
+ \}
+ .PP
+-For all task options other than -r, if the target name is a directory,
++For all task options other than \-r, if the target name is a directory,
+ the real target name is formed by appending
+ a '\*(SL' followed by the last component
+ of the source file name.
+@@ -434,7 +439,7 @@ a b
+ .br
+ b c
+
+-specifies the chain "a" -> "b" -> "c".
++specifies the chain "a" \-> "b" \-> "c".
+ A cycle is a chain where the last target name
+ refers back to the first source file,
+ e.g. "mmv a a".
+@@ -461,9 +466,9 @@ Furthermore,
+ .I mmv
+ checks if any of its actions will result
+ in the destruction of existing files.
+-If the -d (delete) option is specified,
++If the \-d (delete) option is specified,
+ all file deletions or overwrites are done silently.
+-Under -p (protect), all deletions or overwrites
++Under \-p (protect), all deletions or overwrites
+ (except those specified with "(*)" on the standard input, see below)
+ are treated as errors.
+ And if neither option is specified,
+@@ -487,16 +492,16 @@ Once all errors are detected,
+ queries the user whether he wishes
+ to continue by avoiding the erroneous actions or to abort altogether.
+ This and all other queries may be avoided by specifying either the
+--g (go) or -t (terminate) option.
++\-g (go) or \-t (terminate) option.
+ The former will resolve all difficulties by avoiding the erroneous actions;
+ the latter will abort
+ .I mmv
+ if any errors are detected.
+ Specifying either of them defaults
+ .I mmv
+-to -p, unless -d is specified
++to \-p, unless \-d is specified
+ (see above).
+-Thus, -g and -t are most useful when running
++Thus, \-g and \-t are most useful when running
+ .I mmv
+ in the background or in
+ a shell script,
+@@ -508,28 +513,28 @@ Reports
+ Once the actions to be performed are determined,
+ .I mmv
+ performs them silently,
+-unless either the -v (verbose) or -n (no-execute) option is specified.
++unless either the \-v (verbose) or \-n (no-execute) option is specified.
+ The former causes
+ .I mmv
+ to report each performed action
+ on the standard output as
+
+-a -> b : done.
++a \-> b : done.
+
+ Here, "a" and "b" would be replaced by the source and target names,
+ respectively.
+ If the action deletes the old target,
+ a "(*)" is inserted after the the target name.
+-Also, the "->" symbol is modified when a cycle has to be broken:
++Also, the "\->" symbol is modified when a cycle has to be broken:
+ the '>' is changed to a '^' on the action prior to which the old target
+ is renamed to a temporary,
+-and the '-' is changed to a '=' on the action where the temporary is used.
++and the '\-' is changed to a '=' on the action where the temporary is used.
+ .PP
+-Under -n, none of the actions are performed,
++Under \-n, none of the actions are performed,
+ but messages like the above are printed on the standard output
+ with the ": done." omitted.
+ .PP
+-The output generated by -n can (after editing, if desired)
++The output generated by \-n can (after editing, if desired)
+ be fed back to
+ .I mmv
+ on the standard input
+@@ -545,9 +550,9 @@ To facilitate this,
+ ignores lines on the standard input that look
+ like its own error and "done" messages,
+ as well as all lines beginning with white space,
+-and will accept pattern pairs with or without the intervening "->"
+-(or "-^", "=>", or "=^").
+-Lines with "(*)" after the target pattern have the effect of enabling -d
++and will accept pattern pairs with or without the intervening "\->"
++(or "\-^", "=>", or "=^").
++Lines with "(*)" after the target pattern have the effect of enabling \-d
+ for the files matching this pattern only,
+ so that such deletions are done silently.
+ When feeding
+@@ -596,11 +601,11 @@ on a copy of
+ .I mmv
+ named as follows:
+
+- -x, -m, -r mmv.exe
++ \-x, \-m, \-r mmv.exe
+ .br
+- -c, -o mcp.exe
++ \-c, \-o mcp.exe
+ .br
+- -a, -z mad.exe
++ \-a, \-z mad.exe
+ .PP
+ .I Mmvpatch
+ also determines the best way to uniquely identify directories.
diff --git a/var/spack/repos/builtin/packages/mmv/man-page-warning-149873.diff b/var/spack/repos/builtin/packages/mmv/man-page-warning-149873.diff
new file mode 100644
index 0000000000..4f4815e310
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mmv/man-page-warning-149873.diff
@@ -0,0 +1,45 @@
+Description: Add warnings about #149873 to man page
+ This patch adds warnings about issues with spaces in patterns and
+ files when patterns are read from STDIN to the man page
+Debian-Bug: 149873
+Author: Axel Beckert <abe@debian.org>
+Last-Update: 2012-12-29
+
+Index: mmv/mmv.1
+===================================================================
+--- mmv.orig/mmv.1 2012-12-29 02:44:07.591288928 +0100
++++ mmv/mmv.1 2012-12-29 02:56:01.425012596 +0100
+@@ -234,7 +234,7 @@
+ i.e. "mmv \-mk" is allowed.
+
+ .ce
+-Multiple Pattern Pairs
++Multiple Pattern Pairs / Reading Patterns from STDIN
+ .PP
+ Multiple
+ .I from
+@@ -277,6 +277,11 @@
+ (even if it exists)
+ was already matched by the first pattern pair.
+
++\fBWARNING:\fR This operation mode does \fBnot\fR work if the patterns
++itself contain \fBspaces\fR. See
++.I http://bugs.debian.org/149873
++for details.
++
+ .ce
+ The \fIFrom\fP Pattern
+ .PP
+@@ -592,6 +597,12 @@
+ Lines with "(*)" after the target pattern have the effect of enabling \-d
+ for the files matching this pattern only,
+ so that such deletions are done silently.
++
++\fBWARNING:\fR This means that \fBunexpected things\fR may happen if
++\fBfiles\fR matched by the patterns contain \fBspaces\fR. See
++.I http://bugs.debian.org/149873
++for details.
++
+ When feeding
+ .I mmv
+ its own output,
diff --git a/var/spack/repos/builtin/packages/mmv/package.py b/var/spack/repos/builtin/packages/mmv/package.py
new file mode 100644
index 0000000000..b5c47f25bc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mmv/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Mmv(MakefilePackage):
+ """Move/Copy/Append/Link multiple files mmv is a program to
+ move/copy/append/link multiple files according to a set of wildcard
+ patterns. This multiple action is performed safely, i.e. without any
+ unexpected deletion of files due to collisions of target names with
+ existing filenames or with other target names. """
+
+ homepage = "https://packages.debian.org/source/buster/mmv"
+ url = "https://deb.debian.org/debian/pool/main/m/mmv/mmv_1.01b.orig.tar.gz"
+
+ version('1.01b', sha256='0399c027ea1e51fd607266c1e33573866d4db89f64a74be8b4a1d2d1ff1fdeef')
+
+ patch('better-diagnostics-for-directories-584850.diff')
+ patch('format-security.diff')
+ patch('man-page-examples.diff')
+ patch('man-page-fixes.diff')
+ patch('man-page-warning-149873.diff')
+ patch('patches-as-of-mmv-1.01b-15.diff')
+ patch('utime.diff')
+
+ def build(self, spec, prefix):
+ cc = Executable(self.compiler.cc)
+ cc('-DIS_SYSV', '-DHAS_DIRENT', '-DHAS_RENAME', '-O2', '-o', 'mmv', 'mmv.c')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('mmv', prefix.bin)
+ os.symlink(join_path(prefix.bin, 'mmv'), 'mad')
+ os.symlink(join_path(prefix.bin, 'mmv'), 'mcp')
+ os.symlink(join_path(prefix.bin, 'mmv'), 'mln')
+ mkdirp(prefix.man1)
+ install('mmv.1', prefix.man1)
+ os.symlink(join_path(prefix.man1, 'mmv.1'), 'mad.1')
+ os.symlink(join_path(prefix.man1, 'mmv.1'), 'mcp.1')
+ os.symlink(join_path(prefix.man1, 'mmv.1'), 'mln.1')
diff --git a/var/spack/repos/builtin/packages/mmv/patches-as-of-mmv-1.01b-15.diff b/var/spack/repos/builtin/packages/mmv/patches-as-of-mmv-1.01b-15.diff
new file mode 100644
index 0000000000..1c186b2cc2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mmv/patches-as-of-mmv-1.01b-15.diff
@@ -0,0 +1,368 @@
+Description: Patches as of mmv 1.01b-15
+ This patch contains the functional patches as of mmv 1.01b-15 when it
+ has been converted to the source format "3.0 (quilt)"
+Author: Multiple Authors. See changelog for details.
+Reviewed-By: Axel Beckert <abe@debian.org>
+Last-Update: 2012-12-29
+
+--- mmv-1.01b.orig/mmv.c
++++ mmv-1.01b/mmv.c
+@@ -62,7 +62,8 @@ static char USAGE[] =
+ %s [-m|x%s|c|o|a|z] [-h] [-d|p] [-g|t] [-v|n] [from to]\n\
+ \n\
+ Use #N in the ``to'' pattern to get the string matched\n\
+-by the N'th ``from'' pattern wildcard.\n";
++by the N'th ``from'' pattern wildcard.\n\
++Use -- as the end of options.\n";
+
+ #define OTHEROPT (_osmajor < 3 ? "" : "|r")
+
+@@ -75,7 +76,9 @@ Use #[l|u]N in the ``to'' pattern to get
+ string matched by the N'th ``from'' pattern wildcard.\n\
+ \n\
+ A ``from'' pattern containing wildcards should be quoted when given\n\
+-on the command line.\n";
++on the command line. Also you may need to quote ``to'' pattern.\n\
++\n\
++Use -- as the end of options.\n";
+
+ #ifdef IS_SYSV
+ #define OTHEROPT ""
+@@ -85,6 +88,7 @@ on the command line.\n";
+
+ #endif
+
++#include <unistd.h>
+ #include <stdio.h>
+ #include <ctype.h>
+
+@@ -120,14 +124,12 @@ extern unsigned _stklen = 10000;
+ #else
+ /* for various flavors of UN*X */
+
++#include <libgen.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/file.h>
+
+-extern char *getenv();
+-extern long lseek();
+-extern char *malloc();
+-
+ #ifdef HAS_DIRENT
+ #include <dirent.h>
+ typedef struct dirent DIRENTRY;
+@@ -390,7 +392,7 @@ static int movealias(/* REP *first, REP
+ static int snap(/* REP *first, REP *p */);
+ static void showdone(/* REP *fin */);
+ static void breakout(/* */);
+-static int breakrep(/* */);
++static void breakrep(int);
+ static void breakstat(/* */);
+ static void quit(/* */);
+ static int copymove(/* REP *p */);
+@@ -436,9 +438,11 @@ static CHUNK *freechunks = NULL;
+ static SLICER slicer[2] = {{NULL, NULL, 0}, {NULL, NULL, 0}};
+
+ static int badreps = 0, paterr = 0, direrr, failed = 0, gotsig = 0, repbad;
+-static FILE *outfile = stdout;
++static FILE *outfile;
+
++#ifdef IS_MSDOS
+ static char IDF[] = "$$mmvdid.";
++#endif
+ static char TEMP[] = "$$mmvtmp.";
+ static char TOOLONG[] = "(too long)";
+ static char EMPTY[] = "(empty)";
+@@ -456,12 +460,12 @@ char pathbuf[MAXPATH];
+ char fullrep[MAXPATH + 1];
+ static char *(start[MAXWILD]);
+ static int len[MAXWILD];
+-static char hasdot[MAXWILD];
+ static REP mistake;
+ #define MISTAKE (&mistake)
+
+ #ifdef IS_MSDOS
+
++static char hasdot[MAXWILD];
+ static int olddevflag, curdisk, maxdisk;
+ static struct {
+ char ph_banner[30];
+@@ -497,6 +501,8 @@ int main(argc, argv)
+ {
+ char *frompat, *topat;
+
++ outfile = stdout;
++
+ init();
+ procargs(argc, argv, &frompat, &topat);
+ domatch(frompat, topat);
+@@ -560,7 +566,7 @@ static void procargs(argc, argv, pfrompa
+ char **pfrompat, **ptopat;
+ {
+ char *p, c;
+- char *cmdname = argv[0];
++ char *cmdname = basename(argv[0]);
+
+ #ifdef IS_MSDOS
+ #define CMDNAME (patch.ph_name)
+@@ -575,6 +581,11 @@ static void procargs(argc, argv, pfrompa
+ for (argc--, argv++; argc > 0 && **argv == '-'; argc--, argv++)
+ for (p = *argv + 1; *p != '\0'; p++) {
+ c = mylower(*p);
++ if (c == '-') {
++ argc--;
++ argv++;
++ goto endargs;
++ }
+ if (c == 'v' && !noex)
+ verbose = 1;
+ else if (c == 'n' && !verbose)
+@@ -618,7 +629,8 @@ static void procargs(argc, argv, pfrompa
+ }
+ }
+
+- if (op == DFLT)
++endargs:
++ if (op == DFLT) {
+ if (strcmp(cmdname, MOVENAME) == 0)
+ op = XMOVE;
+ else if (strcmp(cmdname, COPYNAME) == 0)
+@@ -629,6 +641,8 @@ static void procargs(argc, argv, pfrompa
+ op = HARDLINK;
+ else
+ op = DFLTOP;
++ }
++
+ if (
+ op & DIRMOVE &&
+ #ifdef IS_MSDOS
+@@ -775,7 +789,7 @@ static void matchpat()
+ static int parsepat()
+ {
+ char *p, *lastname, c;
+- int totwilds, instage, x, havedot;
++ int totwilds, instage, x;
+ static char TRAILESC[] = "%s -> %s : trailing %c is superfluous.\n";
+
+ lastname = from;
+@@ -999,20 +1013,16 @@ static int parsepat()
+ printf(TRAILESC, from, to, ESC);
+ return(-1);
+ }
++#ifdef IS_MSDOS
+ default:
+ if (
+-#ifdef IS_MSDOS
+ c <= ' ' || c >= 127 ||
+ strchr(":/\\*?[]=+;,\"|<>", c) != NULL
+-#else
+- c & 0x80
+-#endif
+ ) {
+ printf("%s -> %s : illegal character '%c' (0x%02X).\n",
+ from, to, c, c);
+ return(-1);
+ }
+-#ifdef IS_MSDOS
+ if (isupper(c))
+ *p = c + ('a' - 'A');
+ #endif
+@@ -1042,7 +1052,7 @@ static int dostage(lastend, pathend, sta
+ DIRINFO *di;
+ HANDLE *h, *hto;
+ int prelen, litlen, nfils, i, k, flags, try;
+- FILEINFO **pf, *fdel;
++ FILEINFO **pf, *fdel = NULL;
+ char *nto, *firstesc;
+ REP *p;
+ int wantdirs, ret = 1, laststage = (stage + 1 == nstages);
+@@ -1172,11 +1182,12 @@ static int trymatch(ffrom, pat)
+ if (*p == '.' || (!matchall && ffrom->fi_attrib & (FA_HIDDEN | FA_SYSTEM)))
+ return(strcmp(pat, p) == 0);
+ #else
+- if (*p == '.')
++ if (*p == '.') {
+ if (p[1] == '\0' || (p[1] == '.' && p[2] == '\0'))
+ return(strcmp(pat, p) == 0);
+ else if (!matchall && *pat != '.')
+ return(0);
++ }
+ #endif
+ return(-1);
+ }
+@@ -1312,7 +1323,7 @@ static int checkto(hfrom, f, phto, pnto,
+ {
+ char tpath[MAXPATH + 1];
+ char *pathend;
+- FILEINFO *fdel;
++ FILEINFO *fdel = NULL;
+ int hlen, tlen;
+
+ if (op & DIRMOVE) {
+@@ -1405,7 +1416,9 @@ static char *getpath(tpath)
+ static int badname(s)
+ char *s;
+ {
++#ifdef IS_MSDOS
+ char *ext;
++#endif
+
+ return (
+ #ifdef IS_MSDOS
+@@ -1715,20 +1728,19 @@ static HANDLE *checkdir(p, pathend, whic
+ struct stat dstat;
+ DIRID d;
+ DEVID v;
+- DIRINFO **newdirs, *di;
+- int nfils;
+- FILEINFO **fils;
++ DIRINFO *di = NULL;
+ char *myp, *lastslash = NULL;
+ int sticky;
+ HANDLE *h;
+
+- if (hsearch(p, which, &h))
++ if (hsearch(p, which, &h)) {
+ if (h->h_di == NULL) {
+ direrr = h->h_err;
+ return(NULL);
+ }
+ else
+ return(h);
++ }
+
+ if (*p == '\0')
+ myp = ".";
+@@ -1899,7 +1911,10 @@ static int match(pat, s, start1, len1)
+ char *pat, *s, **start1;
+ int *len1;
+ {
+- char c, *olds;
++ char c;
++#ifdef IS_MSDOS
++ char *olds;
++#endif
+
+ *start1 = 0;
+ for(;;)
+@@ -2376,9 +2391,9 @@ static void goonordie()
+ static void doreps()
+ {
+ char *fstart;
+- int k, printaliased = 0, alias;
++ int k, printaliased = 0, alias = 0;
+ REP *first, *p;
+- long aliaslen;
++ long aliaslen = 0l;
+
+ #ifdef IS_MSDOS
+ ctrlbrk(breakrep);
+@@ -2396,11 +2411,12 @@ static void doreps()
+ }
+ strcpy(fullrep, p->r_hto->h_name);
+ strcat(fullrep, p->r_nto);
+- if (!noex && (p->r_flags & R_ISCYCLE))
++ if (!noex && (p->r_flags & R_ISCYCLE)) {
+ if (op & APPEND)
+ aliaslen = appendalias(first, p, &printaliased);
+ else
+ alias = movealias(first, p, &printaliased);
++ }
+ strcpy(pathbuf, p->r_hfrom->h_name);
+ fstart = pathbuf + strlen(pathbuf);
+ if ((p->r_flags & R_ISALIASED) && !(op & APPEND))
+@@ -2459,7 +2475,7 @@ static long appendalias(first, p, pprint
+ REP *first, *p;
+ int *pprintaliased;
+ {
+- long ret;
++ long ret = 0l;
+
+ #ifdef IS_MSDOS
+ int fd;
+@@ -2578,10 +2594,10 @@ static void breakout()
+ }
+
+
+-static int breakrep()
++static void breakrep(int signum)
+ {
+ gotsig = 1;
+- return(1);
++ return;
+ }
+
+
+@@ -2624,11 +2640,12 @@ static int copymove(p)
+
+ static int copy(ff, len)
+ FILEINFO *ff;
+- long len;
++ off_t len;
+ {
+- char buf[BUFSIZE], c;
++ char buf[BUFSIZE];
+ int f, t, k, mode, perm;
+ #ifdef IS_MSDOS
++ char c;
+ struct ftime tim;
+ #else
+ #ifdef IS_SYSV
+@@ -2672,7 +2689,7 @@ static int copy(ff, len)
+ return(-1);
+ }
+ if (op & APPEND)
+- lseek(t, 0L, 2);
++ lseek(t, (off_t)0, SEEK_END);
+ #ifdef IS_MSDOS
+ if (op & ZAPPEND && filelength(t) != 0) {
+ if (lseek(t, -1L, 1) == -1L || read(t, &c, 1) != 1) {
+@@ -2684,10 +2701,10 @@ static int copy(ff, len)
+ lseek(t, -1L, 1);
+ }
+ #endif
+- if ((op & APPEND) && len != -1L) {
++ if ((op & APPEND) && len != (off_t)-1) {
+ while (
+ len != 0 &&
+- (k = read(f, buf, len > BUFSIZE ? BUFSIZE : (unsigned)len)) > 0 &&
++ (k = read(f, buf, (len > BUFSIZE) ? BUFSIZE : (size_t)len)) > 0 &&
+ write(t, buf, k) == k
+ )
+ len -= k;
+@@ -2711,7 +2728,9 @@ static int copy(ff, len)
+ tim.modtime = fstat.st_mtime,
+ #else
+ tim[0].tv_sec = fstat.st_atime,
++ tim[0].tv_usec = 0,
+ tim[1].tv_sec = fstat.st_mtime,
++ tim[1].tv_usec = 0,
+ #endif
+ utimes(fullrep, tim)
+ )
+Index: mmv/Makefile
+===================================================================
+--- mmv.orig/Makefile 2012-09-16 18:24:31.375886230 +0200
++++ mmv/Makefile 2012-09-16 18:24:46.260122528 +0200
+@@ -1,16 +1,16 @@
+ # Possible defines in CONF:
+ # IS_MSDOS IS_SYSV IS_V7 IS_BSD HAS_DIRENT HAS_RENAME MV_DIR
+
+-CC =gcc -traditional
++CC =gcc
+ LD =$(CC)
+ CONF =-DIS_SYSV -DHAS_DIRENT -DHAS_RENAME
+-CFLAGS =-O2 -m486 $(CONF)
++CFLAGS =-O2 $(CONF)
+ LDFLAGS =-s -N
+
+ #IBIN =$(LOCAL)$(ARCH)/bin
+ #IMAN =$(LOCAL)$(ANY)/man
+ IBIN=$(DESTDIR)/usr/bin/
+-IMAN=$(DESTDIR)/usr/man/
++IMAN=$(DESTDIR)/usr/share/man/
+
+ mmv: mmv.o
+
diff --git a/var/spack/repos/builtin/packages/mmv/utime.diff b/var/spack/repos/builtin/packages/mmv/utime.diff
new file mode 100644
index 0000000000..1fcf49b8db
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mmv/utime.diff
@@ -0,0 +1,21 @@
+--- mmv-1.01b.orig/mmv.c
++++ mmv-1.01b/mmv.c
+@@ -123,6 +123,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/file.h>
++#include <utime.h>
+
+ extern char *getenv();
+ extern long lseek();
+@@ -192,10 +193,6 @@
+ #ifdef IS_SYSV
+
+ /* for System V and Version 7*/
+-struct utimbuf {
+- time_t actime;
+- time_t modtime;
+-};
+ #define utimes(f, t) utime((f), &(t))
+
+ #ifndef HAS_RENAME
diff --git a/var/spack/repos/builtin/packages/moab/package.py b/var/spack/repos/builtin/packages/moab/package.py
index 6ca3c70ba1..3d4f470c1a 100644
--- a/var/spack/repos/builtin/packages/moab/package.py
+++ b/var/spack/repos/builtin/packages/moab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,12 +18,16 @@ class Moab(AutotoolsPackage):
homepage = "https://bitbucket.org/fathomteam/moab"
git = "https://bitbucket.org/fathomteam/moab.git"
- url = "http://ftp.mcs.anl.gov/pub/fathom/moab-5.0.0.tar.gz"
+ url = "https://ftp.mcs.anl.gov/pub/fathom/moab-5.0.0.tar.gz"
+
+ maintainers = ['vijaysm', 'iulian787']
version('develop', branch='develop')
version('master', branch='master')
- # Version 5.0.2 disappeared from FTP server. Instead set temporary version
- # of MoAB to 5.0.2 set to current head of the master branch.
+ version('5.3.0', sha256='51c31ccbcaa76d9658a44452b9a39f076b795b27a1c9f408fc3d0eea97e032ef')
+ version('5.2.1', sha256='60d31762be3f0e5c89416c764e844ec88dac294169b59a5ead3c316b50f85c29')
+ version('5.2.0', sha256='805ed3546deff39e076be4d1f68aba1cf0dda8c34ce43e1fc179d1aff57c5d5d')
+ version('5.1.0', sha256='0371fc25d2594589e95700739f01614f097b6157fb6023ed8995e582726ca658')
version('5.0.2', commit='01d05b1805236ef44da36f67eb2701095f2e33c7')
version('5.0.1', commit='6cc12bd4ae3fa7c9ad81c595e4d38fa84f0884be')
version('5.0.0', sha256='df5d5eb8c0d0dbb046de2e60aa611f276cbf007c9226c44a24ed19c570244e64')
diff --git a/var/spack/repos/builtin/packages/mochi-margo/package.py b/var/spack/repos/builtin/packages/mochi-margo/package.py
new file mode 100644
index 0000000000..a02ed349b1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mochi-margo/package.py
@@ -0,0 +1,57 @@
+# Copyright 2013-2021 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 MochiMargo(AutotoolsPackage):
+ """A library that provides Argobots bindings to the Mercury RPC
+ implementation."""
+
+ homepage = 'https://github.com/mochi-hpc/mochi-margo'
+ git = 'https://github.com/mochi-hpc/mochi-margo.git'
+ url = 'https://github.com/mochi-hpc/mochi-margo/archive/v0.9.tar.gz'
+
+ maintainers = ['carns', 'mdorier', 'fbudin69500', 'chuckatkins']
+
+ version('main', branch='main')
+ version('0.9.5', sha256='b5c52477a82aa44a079f876cbb8166d0bce5a07a92bcf8a0c76670b245e728a3')
+ version('0.9.4', sha256='4292e083c8375ab07bc6dd0b3b1ea2ce9c9dd864c27ac7f07c6913dcccecc746')
+ version('0.9.3', sha256='1331423d4864349c3a9ec52b2114122659da310d5270fa1aea652e8ee48a0b3a')
+ version('0.9.2', sha256='de88cd725c8ff3ec63412f3f5ed22ad1a56cb367c31b842c816ce40cba777f7c')
+ version('0.9.1', sha256='3fe933f2d758ef23d582bc776e4f8cfae9bf9d0849b8b1f9d73ee024e218f2bc')
+ version('0.9', sha256='a24376f66450cc8fd7a43043e189f8efce5a931585e53c1e2e41894a3e99b517')
+ version('0.7', sha256='492d1afe2e7984fa638614a5d34486d2ff761f5599b5984efd5ae3f55cafde54')
+ version('0.7.2', sha256='0ca796abdb82084813a5de033d92364910b5ad1a0df135534d6b1c36ef627859')
+ version('0.7.1', sha256='eebbe02c47ed4c65ef1d4f23ffdc6a8aa2e2348ca6c51bfc3c4dfbf78fbfc30b')
+ version('0.6', sha256='56feb718da2b155d7277a7b10b669516ebffaa034f811f3665ceed7ad0f19d1b')
+ version('0.6.4', sha256='5ba1c72ee05aa9738d3dc4d6d01bd59790284c6c77b909c5d7756fe7049d6177')
+ version('0.6.3', sha256='5f373cd554edd15cead58bd5d30093bd88d45039d06ff7738eb18b3674287c76')
+ version('0.6.2', sha256='c6a6909439e1d3ba1a1693d8da66057eb7e4ec4b239c04bc7f19fc487c4c58da')
+ version('0.6.1', sha256='80d8d15d0917b5522c31dc2d83136de2313d50ca05c71c5e5ad83c483a3214b7')
+ version('0.5', sha256='d3b768b8300bc2cb87964e74c39b4e8eb9822d8a2e56fc93dc475ddcb1a868e3')
+ version('0.5.2', sha256='73be3acaf012a85a91ac62824c93f5ee1ea0ffe4c25779ece19723f4baf9547d')
+ version('0.5.1', sha256='6fdf58e189538e22341c8361ab069fc80fe5460a6869882359b295a890febad7')
+ version('0.4.7', sha256='596d83b11fb2bd9950fd99c9ab12c14915ab2cda233084ae40ecae1e6c584333')
+ version('0.4.6', sha256='b27447a2050ae61091bae3ff6b4d23a56153947f18847face9f98facbdb4e329')
+ version('0.4.5', sha256='b0d02f73edf180f2393f54c5a980620b8d6dcd42b90efdea6866861824fa49cf')
+ version('0.4.4', sha256='2e2e6e2a8a7d7385e2fe204c113cb149f30847f0b1f48ec8dd708a74280bd89e')
+ version('0.4.3', sha256='61a634d6983bee2ffa06e1e2da4c541cb8f56ddd9dd9f8e04e8044fb38657475')
+ version('0.4.2', sha256='91085e28f50e373b9616e1ae5c3c8d40a19a7d3776259592d8f361766890bcaa')
+
+ depends_on('json-c', when='@0.9:')
+ depends_on('autoconf@2.65:', type=("build"))
+ depends_on('m4', type=('build'))
+ depends_on('automake', type=("build"))
+ depends_on('libtool', type=("build"))
+ depends_on('pkgconfig', type=("build"))
+ depends_on('argobots@1.0:')
+ # "breadcrumb" support not available in mercury-1.0
+ depends_on('mercury@1.0.0:', type=("build", "link", "run"), when='@:0.5.1')
+ depends_on('mercury@2.0.0:', type=("build", "link", "run"), when='@0.5.2:')
+
+ def autoreconf(self, spec, prefix):
+ sh = which('sh')
+ sh('./prepare.sh')
diff --git a/var/spack/repos/builtin/packages/model-traits/package.py b/var/spack/repos/builtin/packages/model-traits/package.py
new file mode 100644
index 0000000000..980d6f5b8d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/model-traits/package.py
@@ -0,0 +1,56 @@
+# Copyright 2013-2021 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 ModelTraits(CMakePackage):
+ """ Model setup and querying in C++. """
+
+ homepage = "https://github.com/jacobmerson/model-traits/"
+ url = "https://github.com/jacobmerson/model-traits/archive/refs/tags/v0.1.0.tar.gz"
+ git = "https://github.com/jacobmerson/model-traits.git"
+
+ maintainers = ['jacobmerson']
+
+ version('0.1.1', sha256='75af53b4f576071570fdcfa7a4ce150b935cf21368da41d16d8377c5b3b93713')
+ version('0.1.0', sha256='ff7c1c5be6977f1d3dc592e8b6c5bff5a8b7ea80d0f059d85c02300bdb8faf2c')
+ version('main', branch='main')
+
+ variant('yaml', default=True, description='build the Yaml IO backend')
+ variant('simmetrix', default=False, description='build the Simmetrix backend')
+ variant('pumi', default=False, description='build the pumi examples')
+
+ depends_on('yaml-cpp@0.6.3:', when='+yaml')
+ depends_on('catch2@3.0.0-preview3:', type='test')
+ depends_on('pumi', when='+pumi')
+ depends_on('simmetrix-simmodsuite', when='+simmetrix')
+ depends_on('fmt@7.1.3')
+ depends_on('cmake@3.14.0:', type='build')
+ depends_on('mpi', when='+simmetrix')
+ depends_on('mpi', when='+pumi')
+
+ def cmake_args(self):
+ args = [self.define('BUILD_TESTING', self.run_tests)]
+ if self.spec.satisfies('@:0.1.1'):
+ args.extend([self.define('BUILD_EXTERNAL', False),
+ self.define_from_variant('ENABLE_SCOREC', 'pumi'),
+ self.define_from_variant('ENABLE_SIMMETRIX', 'simmetrix'),
+ self.define_from_variant('ENABLE_YAML', 'yaml')])
+ else:
+ args.extend([self.define('MODEL_TRAITS_BUILD_EXTERNAL', False),
+ self.define_from_variant('MODEL_TRAITS_ENABLE_SCOREC', 'pumi'),
+ self.define_from_variant('MODEL_TRAITS_ENABLE_SIMMETRIX',
+ 'simmetrix'),
+ self.define_from_variant('MODEL_TRAITS_ENABLE_YAML', 'yaml')])
+ if "+simmetrix" in self.spec:
+ args.append(self.define('SIM_MPI', self.spec['mpi'].name +
+ self.spec['mpi'].version.string))
+ args.append(self.define('SKIP_SIMMETRIX_VERSION_CHECK', True))
+ if '+pumi' in self.spec or "+simmetrix" in self.spec:
+ args.extend([self.define("CMAKE_CXX_COMPILER", self.spec['mpi'].mpicxx),
+ self.define("CMAKE_C_COMPILER", self.spec['mpi'].mpicc),
+ self.define("CMAKE_Fortran_COMPILER", self.spec['mpi'].mpif77)])
+ return args
diff --git a/var/spack/repos/builtin/packages/modeltest-ng/package.py b/var/spack/repos/builtin/packages/modeltest-ng/package.py
new file mode 100644
index 0000000000..508090fa6f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/modeltest-ng/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 ModeltestNg(CMakePackage):
+ """Best-fit model selection"""
+
+ homepage = "https://github.com/ddarriba/modeltest"
+ url = "https://github.com/ddarriba/modeltest/archive/refs/tags/v0.1.7.tar.gz"
+ git = "https://github.com/ddarriba/modeltest.git"
+
+ maintainers = ['dorton21']
+
+ version('0.1.7', commit="cc028888f1d4222aaa53b99c6b02cd934a279001", submodules=True)
+
+ variant('mpi', default=False, description="Enable MPI")
+
+ depends_on('glib')
+ depends_on('bison', type='build')
+ depends_on('flex', type='build')
+ depends_on('openmpi', when='+mpi')
+
+ def cmake_args(self):
+ return [
+ self.define_from_variant('ENABLE_MPI', 'mpi')]
diff --git a/var/spack/repos/builtin/packages/modern-wheel/package.py b/var/spack/repos/builtin/packages/modern-wheel/package.py
index 9fae68cd0d..1ad4623343 100644
--- a/var/spack/repos/builtin/packages/modern-wheel/package.py
+++ b/var/spack/repos/builtin/packages/modern-wheel/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class ModernWheel(CMakePackage):
"""C++ utility collection. Provides various facilities of common use in
@@ -40,10 +41,7 @@ class ModernWheel(CMakePackage):
patch('add_virtual_destructor.patch')
def cmake_args(self):
- spec = self.spec
return [
- '-DBUILD_UNIT_TEST:BOOL={0}'.format(
- 'ON' if '+test' in spec else 'OFF'),
- '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
- 'ON' if '+shared' in spec else 'OFF'),
+ self.define_from_variant('BUILD_UNIT_TEST', 'test'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
]
diff --git a/var/spack/repos/builtin/packages/modylas/package.py b/var/spack/repos/builtin/packages/modylas/package.py
index ada4bc7fed..c3e977e229 100644
--- a/var/spack/repos/builtin/packages/modylas/package.py
+++ b/var/spack/repos/builtin/packages/modylas/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Modylas(AutotoolsPackage):
"""
@@ -17,6 +18,7 @@ class Modylas(AutotoolsPackage):
homepage = "https://www.modylas.org"
url = "file://{0}/MODYLAS_1.0.4.tar.gz".format(os.getcwd())
+ manual_download = True
version('1.0.4', 'e0b5cccf8e363c1182eced37aa31b06b1c5b1526da7d449a6142424ac4ea6311')
diff --git a/var/spack/repos/builtin/packages/mofem-cephas/package.py b/var/spack/repos/builtin/packages/mofem-cephas/package.py
index 24e8815084..be19e838a2 100644
--- a/var/spack/repos/builtin/packages/mofem-cephas/package.py
+++ b/var/spack/repos/builtin/packages/mofem-cephas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -69,8 +69,7 @@ class MofemCephas(CMakePackage):
'-DBOOST_DIR=%s' % spec['boost'].prefix])
# build tests
- options.append('-DMOFEM_BUILD_TESTS={0}'.format(
- 'ON' if self.run_tests else 'OFF'))
+ options.append(self.define('MOFEM_BUILD_TESTS', self.run_tests))
# variant packages
if '+adol-c' in spec:
@@ -87,6 +86,5 @@ class MofemCephas(CMakePackage):
# copy users modules, i.e. stand alone vs linked users modules
options.append(
- '-DSTAND_ALLONE_USERS_MODULES=%s' %
- ('YES' if '+copy_user_modules' in spec else 'NO'))
+ self.define_from_variant('STAND_ALLONE_USERS_MODULES', 'copy_user_modules'))
return options
diff --git a/var/spack/repos/builtin/packages/mofem-fracture-module/package.py b/var/spack/repos/builtin/packages/mofem-fracture-module/package.py
index 784bb9931c..5c77a31f4e 100644
--- a/var/spack/repos/builtin/packages/mofem-fracture-module/package.py
+++ b/var/spack/repos/builtin/packages/mofem-fracture-module/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -54,18 +54,17 @@ class MofemFractureModule(CMakePackage):
def cmake_args(self):
spec = self.spec
- source = self.stage.source_path
-
- options = []
# obligatory options
- options.extend([
- '-DWITH_SPACK=YES',
- '-DEXTERNAL_MODULES_BUILD=YES',
- '-DUM_INSTALL_BREFIX=%s' % spec['mofem-users-modules'].prefix,
- '-DEXTERNAL_MODULE_SOURCE_DIRS=%s' % source,
- '-DSTAND_ALLONE_USERS_MODULES=%s' %
- ('YES' if '+copy_user_modules' in spec else 'NO')])
+ options = [
+ self.define('WITH_SPACK', True),
+ self.define('EXTERNAL_MODULES_BUILD', True),
+ self.define('UM_INSTALL_BREFIX',
+ spec['mofem-users-modules'].prefix),
+ self.define('EXTERNAL_MODULE_SOURCE_DIRS', self.stage.source_path),
+ self.define_from_variant('STAND_ALLONE_USERS_MODULES',
+ 'copy_user_modules')
+ ]
# Set module version
if self.spec.version == Version('develop'):
@@ -80,8 +79,7 @@ class MofemFractureModule(CMakePackage):
'-DFM_VERSION_BUILD=%s' % self.spec.version[2]])
# build tests
- options.append('-DMOFEM_UM_BUILD_TESTS={0}'.format(
- 'ON' if self.run_tests else 'OFF'))
+ options.append(self.define('MOFEM_UM_BUILD_TESTS', self.run_tests))
return options
diff --git a/var/spack/repos/builtin/packages/mofem-minimal-surface-equation/package.py b/var/spack/repos/builtin/packages/mofem-minimal-surface-equation/package.py
index 58e0342080..659f1134da 100644
--- a/var/spack/repos/builtin/packages/mofem-minimal-surface-equation/package.py
+++ b/var/spack/repos/builtin/packages/mofem-minimal-surface-equation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -45,6 +45,7 @@ class MofemMinimalSurfaceEquation(CMakePackage):
def cmake_args(self):
spec = self.spec
+ from_variant = self.define_from_variant
source = self.stage.source_path
options = []
@@ -55,12 +56,10 @@ class MofemMinimalSurfaceEquation(CMakePackage):
'-DEXTERNAL_MODULES_BUILD=YES',
'-DUM_INSTALL_BREFIX=%s' % spec['mofem-users-modules'].prefix,
'-DEXTERNAL_MODULE_SOURCE_DIRS=%s' % source,
- '-DSTAND_ALLONE_USERS_MODULES=%s' %
- ('YES' if '+copy_user_modules' in spec else 'NO')])
+ from_variant('STAND_ALLONE_USERS_MODULES', 'copy_user_modules')])
# build tests
- options.append('-DMOFEM_UM_BUILD_TESTS={0}'.format(
- 'ON' if self.run_tests else 'OFF'))
+ options.append(self.define('MOFEM_UM_BUILD_TESTS', self.run_tests))
return options
diff --git a/var/spack/repos/builtin/packages/mofem-users-modules/package.py b/var/spack/repos/builtin/packages/mofem-users-modules/package.py
index f0acc98d94..b65299b50c 100644
--- a/var/spack/repos/builtin/packages/mofem-users-modules/package.py
+++ b/var/spack/repos/builtin/packages/mofem-users-modules/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -46,6 +46,7 @@ class MofemUsersModules(CMakePackage):
def cmake_args(self):
spec = self.spec
+ from_variant = self.define_from_variant
options = []
@@ -53,12 +54,10 @@ class MofemUsersModules(CMakePackage):
options.extend([
'-DMOFEM_DIR=%s' % spec['mofem-cephas'].prefix.users_module,
'-DWITH_SPACK=YES',
- '-DSTAND_ALLONE_USERS_MODULES=%s' %
- ('YES' if '+copy_user_modules' in spec else 'NO')])
+ from_variant('STAND_ALLONE_USERS_MODULES', 'copy_user_modules')])
# build tests
- options.append('-DMOFEM_UM_BUILD_TESTS={0}'.format(
- 'ON' if self.run_tests else 'OFF'))
+ options.append(self.define('MOFEM_UM_BUILD_TESTS', self.run_tests))
return options
diff --git a/var/spack/repos/builtin/packages/mokutil/package.py b/var/spack/repos/builtin/packages/mokutil/package.py
index 6b7c4571f3..cc1722da72 100644
--- a/var/spack/repos/builtin/packages/mokutil/package.py
+++ b/var/spack/repos/builtin/packages/mokutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/molcas/package.py b/var/spack/repos/builtin/packages/molcas/package.py
index bbe92073ad..e6b384f128 100644
--- a/var/spack/repos/builtin/packages/molcas/package.py
+++ b/var/spack/repos/builtin/packages/molcas/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Molcas(CMakePackage):
"""Molcas is an ab initio quantum chemistry software package
@@ -13,7 +14,7 @@ class Molcas(CMakePackage):
Please set the path to licence file with the following command
export MOLCAS_LICENSE=/path/to/molcas/license/"""
- homepage = "http://www.molcas.org/"
+ homepage = "https://www.molcas.org/"
url = "file://{0}/molcas8.2.tar.gz".format(os.getcwd())
manual_download = True
diff --git a/var/spack/repos/builtin/packages/molden/for_aarch64.patch b/var/spack/repos/builtin/packages/molden/for_aarch64.patch
new file mode 100644
index 0000000000..8b2c6a8911
--- /dev/null
+++ b/var/spack/repos/builtin/packages/molden/for_aarch64.patch
@@ -0,0 +1,8 @@
+--- spack-src/src/xwin.c.bak 2020-09-18 19:13:33.000000000 +0900
++++ spack-src/src/xwin.c 2020-12-23 16:06:13.764560722 +0900
+@@ -1,4 +1,4 @@
+-#ifndef DARWIN
++#if 0
+ __asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
+ __asm__(".symver memmove,memmove@GLIBC_2.2.5");
+ __asm__(".symver log,log@GLIBC_2.2.5");
diff --git a/var/spack/repos/builtin/packages/molden/package.py b/var/spack/repos/builtin/packages/molden/package.py
index e70bcb5632..3c8f79d953 100644
--- a/var/spack/repos/builtin/packages/molden/package.py
+++ b/var/spack/repos/builtin/packages/molden/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,12 @@ class Molden(MakefilePackage):
Ab Initio packages"""
homepage = "https://www3.cmbi.umcn.nl/molden/"
- url = "ftp://ftp.cmbi.ru.nl/pub/molgraph/molden/molden6.5.tar.gz"
+ url = "ftp://ftp.cmbi.umcn.nl/pub/molgraph/molden/molden6.5.tar.gz"
maintainers = ['dev-zero']
+ version('6.7', sha256='ebd73e8d95271eb82a1464a7eab28a042662483bbff6e6dcc7db0d1c9b2e4432')
+ version('6.6', sha256='2a2a7a116a336b607b50e8135bc2cca764c50e4a6896013ee3c6f582b741ee72')
version('6.5', sha256='192631a0996b2bfa9f6b0769f83da38a9e4f83b1db9358982b23d6a594b4e8d4')
depends_on('libx11')
@@ -24,6 +26,9 @@ class Molden(MakefilePackage):
depends_on('makedepend', type='build')
parallel = False # building in parallel is broken
+ build_targets = ['clean', 'all']
+
+ patch('for_aarch64.patch', when='target=aarch64:')
def edit(self, spec, prefix):
makefile = FileFilter('makefile')
@@ -53,5 +58,9 @@ class Molden(MakefilePackage):
makefile.filter(r'CFLAGS = (.*)', r'CFLAGS = {0} \1'.format(cflags))
makefile.filter(r'FFLAGS = (.*)', r'FFLAGS = {0} \1'.format(fflags))
+ if spec.target.family == 'aarch64':
+ makefile.filter(r'AFLAG=*', r'AFLAG=')
+ makefile.filter(r'rm -f src/', r'rm -f ')
+
def install(self, spec, prefix):
install_tree('bin', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/mongo-c-driver/package.py b/var/spack/repos/builtin/packages/mongo-c-driver/package.py
index a399cef77d..2e8ce0a4d4 100644
--- a/var/spack/repos/builtin/packages/mongo-c-driver/package.py
+++ b/var/spack/repos/builtin/packages/mongo-c-driver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,8 @@ class MongoCDriver(Package):
maintainers = ['michaelkuhn']
+ version('1.17.6', sha256='8644deec7ae585e8d12566978f2017181e883f303a028b5b3ccb83c91248b150')
+ version('1.17.5', sha256='4b15b7e73a8b0621493e4368dc2de8a74af381823ae8f391da3d75d227ba16be')
version('1.17.0', sha256='90aa23a3f92be0a076fe0b903b68276a7973d4e472929943069f503d5ab50cb9')
version('1.16.2', sha256='0a722180e5b5c86c415b9256d753b2d5552901dc5d95c9f022072c3cd336887e')
version('1.9.5', sha256='4a4bd0b0375450250a3da50c050b84b9ba8950ce32e16555714e75ebae0b8019')
diff --git a/var/spack/repos/builtin/packages/mongo-cxx-driver/package.py b/var/spack/repos/builtin/packages/mongo-cxx-driver/package.py
index 7184995b5b..240152ca4a 100644
--- a/var/spack/repos/builtin/packages/mongo-cxx-driver/package.py
+++ b/var/spack/repos/builtin/packages/mongo-cxx-driver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mongodb-async-driver/package.py b/var/spack/repos/builtin/packages/mongodb-async-driver/package.py
index a2f6923b27..08ded87114 100644
--- a/var/spack/repos/builtin/packages/mongodb-async-driver/package.py
+++ b/var/spack/repos/builtin/packages/mongodb-async-driver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mono/package.py b/var/spack/repos/builtin/packages/mono/package.py
index 8b4e36b2b6..8ecc0add5b 100644
--- a/var/spack/repos/builtin/packages/mono/package.py
+++ b/var/spack/repos/builtin/packages/mono/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,9 @@ class Mono(AutotoolsPackage):
standards for C# and the Common Language Runtime.
"""
- homepage = "http://www.mono-project.com/"
+ homepage = "https://www.mono-project.com/"
url = "https://download.mono-project.com/sources/mono/mono-5.0.1.1.tar.bz2"
+ maintainers = ['grospelliergilles']
# /usr/share/.mono/keypairs needs to exist or be able to be
# created, e.g. https://github.com/gentoo/dotnet/issues/6
@@ -29,6 +30,8 @@ class Mono(AutotoolsPackage):
depends_on('perl', type=('build'))
depends_on('python', type=('build'))
+ version('6.12.0.122', sha256='29c277660fc5e7513107aee1cbf8c5057c9370a4cdfeda2fc781be6986d89d23',
+ url='https://download.mono-project.com/sources/mono/mono-6.12.0.122.tar.xz')
version('6.8.0.123', sha256='e2e42d36e19f083fc0d82f6c02f7db80611d69767112af353df2f279744a2ac5',
url='https://download.mono-project.com/sources/mono/mono-6.8.0.123.tar.xz')
version('6.8.0.105', sha256='578799c44c3c86a9eb5daf6dec6c60a24341940fd376371956d4a46cf8612178',
diff --git a/var/spack/repos/builtin/packages/montage/package.py b/var/spack/repos/builtin/packages/montage/package.py
index e663fb418c..08c8253ae6 100644
--- a/var/spack/repos/builtin/packages/montage/package.py
+++ b/var/spack/repos/builtin/packages/montage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/moosefs/package.py b/var/spack/repos/builtin/packages/moosefs/package.py
index c74de5a723..e2eab22f02 100644
--- a/var/spack/repos/builtin/packages/moosefs/package.py
+++ b/var/spack/repos/builtin/packages/moosefs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,3 +22,8 @@ class Moosefs(AutotoolsPackage):
version('3.0.105', sha256='12a5bb265d774da8fc6f051c51de08105ddeaa162b2d972d491caa542e01164f')
version('3.0.104', sha256='b3209ecd8366038ba898c4642dd6fdf2fa5d50a37345f01ed209e078700db5bb')
version('3.0.103', sha256='c5f1f6f78c2b7d8d6563000deed704ead3deac77279cb13f9f16d7ee56ee7ff7')
+
+ def configure_args(self):
+ args = ["--with-systemdsystemunitdir=" +
+ self.spec['moosefs'].prefix.lib.systemd.system]
+ return args
diff --git a/var/spack/repos/builtin/packages/moreutils/package.py b/var/spack/repos/builtin/packages/moreutils/package.py
index 96e081c92a..04131a213e 100644
--- a/var/spack/repos/builtin/packages/moreutils/package.py
+++ b/var/spack/repos/builtin/packages/moreutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,11 +16,13 @@ class Moreutils(MakefilePackage):
maintainers = ['matthiasdiener']
+ version('0.65', sha256='ba0cfaa1ff6ead2b15c62a67292de66a366f9b815a09697b54677f7e15f5a2b2')
version('0.63', sha256='01f0b331e07e62c70d58c2dabbb68f5c4ddae4ee6f2d8f070fd1e316108af72c')
depends_on('perl', type='build')
depends_on('docbook-xsl', type='build')
depends_on('libxml2', type='build')
+ depends_on('libxslt', type='build')
def edit(self, spec, prefix):
isutf8_makefile = FileFilter('is_utf8/Makefile')
diff --git a/var/spack/repos/builtin/packages/mosh/package.py b/var/spack/repos/builtin/packages/mosh/package.py
index f741279159..33d4cb435c 100644
--- a/var/spack/repos/builtin/packages/mosh/package.py
+++ b/var/spack/repos/builtin/packages/mosh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mothur/package.py b/var/spack/repos/builtin/packages/mothur/package.py
index 4e25a4dd3e..d525ccceb9 100644
--- a/var/spack/repos/builtin/packages/mothur/package.py
+++ b/var/spack/repos/builtin/packages/mothur/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Mothur(MakefilePackage):
homepage = "https://github.com/mothur/mothur"
url = "https://github.com/mothur/mothur/archive/v1.39.5.tar.gz"
+ version('1.46.1', sha256='29b500b3c92d726cde34922f697f2e47f0b7127d76d9a6fb167cc2b8ba3d00fd')
version('1.43.0', sha256='12ccd95a85bec3bb1564b8feabd244ea85413973740754803d01fc71ecb0a2c1')
version('1.42.1', sha256='6b61591dda289ac2d8361f9c1547ffbeeba3b9fbdff877dd286bad850bbd5539')
version('1.40.5', sha256='a0fbdfa68b966d7adc4560e3787506a0dad8b47b4b996c2663cd6c0b416d101a')
diff --git a/var/spack/repos/builtin/packages/motif/package.py b/var/spack/repos/builtin/packages/motif/package.py
index c64d35fc43..f2c5eed5e9 100644
--- a/var/spack/repos/builtin/packages/motif/package.py
+++ b/var/spack/repos/builtin/packages/motif/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class Motif(AutotoolsPackage):
"""
force_autoreconf = True
- homepage = "http://motif.ics.com/"
- url = "http://cfhcable.dl.sourceforge.net/project/motif/Motif%202.3.8%20Source%20Code/motif-2.3.8.tar.gz"
+ homepage = "https://motif.ics.com/"
+ url = "https://cfhcable.dl.sourceforge.net/project/motif/Motif%202.3.8%20Source%20Code/motif-2.3.8.tar.gz"
version('2.3.8', sha256='859b723666eeac7df018209d66045c9853b50b4218cecadb794e2359619ebce7')
diff --git a/var/spack/repos/builtin/packages/motioncor2/package.py b/var/spack/repos/builtin/packages/motioncor2/package.py
index 8ef8a5719f..a689bbb102 100644
--- a/var/spack/repos/builtin/packages/motioncor2/package.py
+++ b/var/spack/repos/builtin/packages/motioncor2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mount-point-attributes/package.py b/var/spack/repos/builtin/packages/mount-point-attributes/package.py
index 3ab6808c3e..bb0d70e701 100644
--- a/var/spack/repos/builtin/packages/mount-point-attributes/package.py
+++ b/var/spack/repos/builtin/packages/mount-point-attributes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,11 +12,15 @@ class MountPointAttributes(AutotoolsPackage):
homepage = "https://github.com/LLNL/MountPointAttributes"
url = 'https://github.com/LLNL/MountPointAttributes/files/2270601/mountpointattr-1.1.tar.gz'
+ git = "https://github.com/LLNL/MountPointAttributes.git"
+ maintainers = ['lee218llnl']
+ version('master', branch='master')
+ version('1.1.1', sha256='397de583a99e60aae8b4485d3decac6e23f50c658a6353fea149d6dd50d3ecee', url="https://github.com/LLNL/MountPointAttributes/releases/download/v1.1.1/mountpointattr-1.1.1.tar.gz")
version('1.1', sha256='bff84c75c47b74ea09b6cff949dd699b185ddba0463cb1ff39ab138003c96e02')
- depends_on('autoconf', type='build')
- depends_on('automake', type='build')
- depends_on('libtool', type='build')
+ depends_on('autoconf', type='build', when='@master')
+ depends_on('automake', type='build', when='@master')
+ depends_on('libtool', type='build', when='@master')
patch('mpa_type_conversion.patch', when='@1.1')
diff --git a/var/spack/repos/builtin/packages/mozjs/package.py b/var/spack/repos/builtin/packages/mozjs/package.py
index 4ba1faaa6a..9d41f73688 100644
--- a/var/spack/repos/builtin/packages/mozjs/package.py
+++ b/var/spack/repos/builtin/packages/mozjs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,18 +11,20 @@ class Mozjs(AutotoolsPackage):
It is used in various Mozilla products, including Firefox, and is
available under the MPL2."""
- homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+ homepage = "https://firefox-source-docs.mozilla.org/js/index.html"
version('24.2.0', sha256='e62f3f331ddd90df1e238c09d61a505c516fe9fd8c5c95336611d191d18437d8',
- url="http://ftp.mozilla.org/pub/js/mozjs-24.2.0.tar.bz2")
+ url="https://ftp.mozilla.org/pub/js/mozjs-24.2.0.tar.bz2")
version('17.0.0', sha256='321e964fe9386785d3bf80870640f2fa1c683e32fe988eeb201b04471c172fba',
- url="http://ftp.mozilla.org/pub/js/mozjs17.0.0.tar.gz")
+ url="https://ftp.mozilla.org/pub/js/mozjs17.0.0.tar.gz")
version('1.8.5', sha256='5d12f7e1f5b4a99436685d97b9b7b75f094d33580227aa998c406bbae6f2a687',
- url="http://ftp.mozilla.org/pub/js/js185-1.0.0.tar.gz")
+ url="https://ftp.mozilla.org/pub/js/js185-1.0.0.tar.gz")
depends_on('perl@5.6:', type='build')
depends_on('pkgconfig', type='build')
depends_on('python@2.7.3:2.8', type='build')
+ depends_on('zip', type='build')
+ depends_on('unzip', type='build')
depends_on('nspr', when='@:27')
depends_on('libffi@3.0.9:')
depends_on('readline', when='@17.0.0:')
@@ -34,7 +36,7 @@ class Mozjs(AutotoolsPackage):
patch('perl-bug.patch')
# Note: According to https://github.com/apache/couchdb-pkg/tree/master/js/rpm/SOURCES
# There is some patch for mozjs@1.8.5 to fix compile issue.
- # Patches required to fix the issue:https://bugzilla.mozilla.org/show_bug.cgi?id=638056
+ # Patches required to fix the issue:https://bugzilla.mozilla.org/show_bug.cgi?id=638056
patch('Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch',
sha256='b1c869a65f5ebc10741d4631cc2e1e166c6ed53035cfa56bede55a4c19b7b118', when='@1.8.5')
patch('fix-811665.patch',
diff --git a/var/spack/repos/builtin/packages/mpark-variant/icpc.patch b/var/spack/repos/builtin/packages/mpark-variant/icpc.patch
new file mode 100644
index 0000000000..a155f2fa59
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpark-variant/icpc.patch
@@ -0,0 +1,33 @@
+From 2d933fe544bd5841e9016ab7e8066521ebe33f30 Mon Sep 17 00:00:00 2001
+From: sbolding <sbolding@lanl.gov>
+Date: Mon, 29 Mar 2021 19:13:28 -0600
+Subject: [PATCH] Apply patch for icpc
+
+icpc in some way utilizes the preprocessor of the associated "developer
+tools" used by the compiler. This leads to, in some cases, a
+preprocessor claiming support for `__tuple_element_packs`, even though
+icpc (as of version 21.1) can't actually parse such code. Just use the
+MPARK_TUPLE_ELEMENT_PACK impl with __icc until icpc supports it.
+
+Fixes #77
+---
+ include/mpark/config.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/mpark/config.hpp b/include/mpark/config.hpp
+index f85ffb55c..128fa9235 100644
+--- a/include/mpark/config.hpp
++++ b/include/mpark/config.hpp
+@@ -50,7 +50,7 @@
+ #define MPARK_BUILTIN_UNREACHABLE
+ #endif
+
+-#if __has_builtin(__type_pack_element)
++#if __has_builtin(__type_pack_element) && !(defined(__ICC))
+ #define MPARK_TYPE_PACK_ELEMENT
+ #endif
+
+--
+2.24.3 (Apple Git-128)
+
+
diff --git a/var/spack/repos/builtin/packages/mpark-variant/package.py b/var/spack/repos/builtin/packages/mpark-variant/package.py
index 67fd8249de..b18b54e635 100644
--- a/var/spack/repos/builtin/packages/mpark-variant/package.py
+++ b/var/spack/repos/builtin/packages/mpark-variant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,9 @@ from spack import *
class MparkVariant(CMakePackage):
"""C++17 `std::variant` for C++11/14/17"""
- homepage = "https://mpark.github.io/variant"
- url = "https://github.com/mpark/variant/archive/v1.3.0.tar.gz"
+ homepage = "https://github.com/mpark/variant"
+ url = "https://github.com/mpark/variant/archive/v1.4.0.tar.gz"
+ git = "https://github.com/mpark/variant.git"
maintainers = ['ax3l']
version('1.4.0', sha256='8f6b28ab3640b5d76d5b6664dda7257a4405ce59179220431b8fd196c79b2ecb')
@@ -18,6 +19,10 @@ class MparkVariant(CMakePackage):
# Ref.: https://github.com/mpark/variant/pull/73
patch('nvcc.patch', when='@:1.4.0')
+ # Ref.: https://github.com/mpark/variant/issues/60
+ patch('version.patch', when='@1.4.0')
+ # Ref.: https://github.com/mpark/variant/pull/78
+ patch('icpc.patch', when='@:1.4.0')
cxx11_msg = 'MPark.Variant needs a C++11-capable compiler. ' \
'See https://github.com/mpark/variant#requirements'
diff --git a/var/spack/repos/builtin/packages/mpark-variant/version.patch b/var/spack/repos/builtin/packages/mpark-variant/version.patch
new file mode 100644
index 0000000000..56db93c87e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpark-variant/version.patch
@@ -0,0 +1,11 @@
+--- ./CMakeLists.txt 2021-02-21 17:27:04.709115800 -0700
++++ ./CMakeLists.txt.new 2021-02-21 17:27:35.589115800 -0700
+@@ -7,7 +7,7 @@
+
+ cmake_minimum_required(VERSION 3.6.3)
+
+-project(MPark.Variant VERSION 1.3.0 LANGUAGES CXX)
++project(MPark.Variant VERSION 1.4.0 LANGUAGES CXX)
+
+ # Option.
+ set(MPARK_VARIANT_INCLUDE_TESTS "" CACHE STRING
diff --git a/var/spack/repos/builtin/packages/mpas-model/makefile.patch b/var/spack/repos/builtin/packages/mpas-model/makefile.patch
new file mode 100644
index 0000000000..a03f40f397
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpas-model/makefile.patch
@@ -0,0 +1,13 @@
+--- spack-src/Makefile.org 2021-01-06 10:11:15.852202444 +0900
++++ spack-src/Makefile 2021-01-06 10:35:16.191769328 +0900
+@@ -459,8 +459,10 @@
+ # Keep open the possibility of shared libraries in future with, e.g., .so suffix
+ #
+ ifneq ($(wildcard $(PIO_LIB)/libpio\.*), )
++ifneq ($(wildcard $(PIO_LIB)/libpio\.*),$(PIO_LIB)/libpio.settings)
+ LIBS += -lpio
+ endif
++endif
+ ifneq ($(wildcard $(PIO_LIB)/libpiof\.*), )
+ LIBS += -lpiof
+ endif
diff --git a/var/spack/repos/builtin/packages/mpas-model/package.py b/var/spack/repos/builtin/packages/mpas-model/package.py
new file mode 100644
index 0000000000..4b71af3d14
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpas-model/package.py
@@ -0,0 +1,102 @@
+# Copyright 2013-2021 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 MpasModel(MakefilePackage):
+ """The Model for Prediction Across Scales (MPAS) is a collaborative
+ project for developing atmosphere, ocean and other earth-system
+ simulation components for use in climate, regional climate and weather
+ studies."""
+
+ homepage = "https://mpas-dev.github.io/"
+ url = "https://github.com/MPAS-Dev/MPAS-Model/archive/v7.0.tar.gz"
+ maintainers = ['t-brown']
+
+ version('7.1', sha256='9b5c181b7d0163ae33d24d7a79ede6990495134b58cf4500ba5c8c94192102bc')
+ version('7.0', sha256='f898ce257e66cff9e29320458870570e55721d16cb000de7f2cc27de7fdef14f')
+ version('6.3', sha256='e7f1d9ebfeb6ada37d42a286aaedb2e69335cbc857049dc5c5544bb51e7a8db8')
+ version('6.2', sha256='2a81825a62a468bf5c56ef9d9677aa2eb88acf78d4f996cb49a7db98b94a6b16')
+
+ depends_on('mpi')
+ depends_on('parallelio')
+
+ patch('makefile.patch', when='@7.0')
+
+ parallel = False
+
+ resource(when='@6.2:6.3',
+ name='MPAS-Data',
+ git='https://github.com/MPAS-Dev/MPAS-Data.git',
+ commit='33561790de8b43087ab850be833f51a4e605f1bb')
+ resource(when='@7.0:',
+ name='MPAS-Data',
+ git='https://github.com/MPAS-Dev/MPAS-Data.git',
+ tag='v7.0')
+
+ def target(self, model, action):
+ spec = self.spec
+ satisfies = spec.satisfies
+ fflags = [self.compiler.openmp_flag]
+ cppflags = ['-D_MPI']
+ if satisfies('%gcc'):
+ fflags.extend([
+ '-ffree-line-length-none',
+ '-fconvert=big-endian',
+ '-ffree-form',
+ '-fdefault-real-8',
+ '-fdefault-double-8',
+ ])
+ cppflags.append('-DUNDERSCORE')
+ elif satisfies('%fj'):
+ fflags.extend([
+ '-Free',
+ '-Fwide',
+ '-CcdRR8',
+ ])
+ elif satisfies('%intel'):
+ fflags.extend([
+ '-r8',
+ '-convert big_endian',
+ '-FR',
+ ])
+ cppflags.append('-DUNDERSCORE')
+ targets = [
+ 'FC_PARALLEL={0}'.format(spec['mpi'].mpifc),
+ 'CC_PARALLEL={0}'.format(spec['mpi'].mpicc),
+ 'CXX_PARALLEL={0}'.format(spec['mpi'].mpicxx),
+ 'FC_SERIAL={0}'.format(spack_fc),
+ 'CC_SERIAL={0}'.format(spack_cc),
+ 'CXX_SERIAL={0}'.format(spack_cxx),
+ 'CFLAGS_OMP={0}'.format(self.compiler.openmp_flag),
+ 'FFLAGS_OMP={0}'.format(' '.join(fflags)),
+ 'CPPFLAGS={0}'.format(' '.join(cppflags)),
+ 'PIO={0}'.format(spec['parallelio'].prefix),
+ 'NETCDF={0}'.format(spec['netcdf-c'].prefix),
+ 'NETCDFF={0}'.format(spec['netcdf-fortran'].prefix)
+ ]
+ if satisfies('^parallelio+pnetcdf'):
+ targets.append(
+ 'PNETCDF={0}'.format(spec['parallel-netcdf'].prefix)
+ )
+ targets.extend([
+ 'USE_PIO2=true', 'CPP_FLAGS=-D_MPI', 'OPENMP=true',
+ 'CORE={0}'.format(model), action
+ ])
+ return targets
+
+ def build(self, spec, prefix):
+ copy_tree(join_path('MPAS-Data', 'atmosphere'),
+ join_path('src', 'core_atmosphere', 'physics'))
+ make(*self.target('init_atmosphere', 'all'))
+ mkdir('bin')
+ copy('init_atmosphere_model', 'bin')
+ make(*self.target('init_atmosphere', 'clean'))
+ make(*self.target('atmosphere', 'all'))
+ copy('atmosphere_model', 'bin')
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/mpc/package.py b/var/spack/repos/builtin/packages/mpc/package.py
index adca4e3fcf..f5f84033f5 100644
--- a/var/spack/repos/builtin/packages/mpc/package.py
+++ b/var/spack/repos/builtin/packages/mpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mpdecimal/package.py b/var/spack/repos/builtin/packages/mpdecimal/package.py
index a8ae10d5ff..2f0cbafbbd 100644
--- a/var/spack/repos/builtin/packages/mpdecimal/package.py
+++ b/var/spack/repos/builtin/packages/mpdecimal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mpe2/package.py b/var/spack/repos/builtin/packages/mpe2/package.py
index 236b2550cc..e589275ccb 100644
--- a/var/spack/repos/builtin/packages/mpe2/package.py
+++ b/var/spack/repos/builtin/packages/mpe2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Mpe2(AutotoolsPackage):
"""Message Passing Extensions (MPE): Parallel, shared X window graphics"""
- homepage = "http://www.mcs.anl.gov/research/projects/perfvis/software/MPE/"
- url = "http://ftp.mcs.anl.gov/pub/mpi/mpe/mpe2-1.3.0.tar.gz"
+ homepage = "https://www.mcs.anl.gov/research/projects/perfvis/software/MPE/"
+ url = "https://ftp.mcs.anl.gov/pub/mpi/mpe/mpe2-1.3.0.tar.gz"
version('1.3.0', sha256='0faf32f9adab6fd882be30be913089ebf75272f8b5e4a012bb20c54abc21c0be')
diff --git a/var/spack/repos/builtin/packages/mpest/package.py b/var/spack/repos/builtin/packages/mpest/package.py
index 17787761fb..17df8ca3be 100644
--- a/var/spack/repos/builtin/packages/mpest/package.py
+++ b/var/spack/repos/builtin/packages/mpest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mpfi/package.py b/var/spack/repos/builtin/packages/mpfi/package.py
new file mode 100644
index 0000000000..c87e0006b4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpfi/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 Mpfi(AutotoolsPackage):
+ """Library for arbitrary precision interval arithmetic based on MPFR"""
+
+ # Notice: no simple way to deduct URL from version
+ homepage = "https://perso.ens-lyon.fr/nathalie.revol/software.html"
+
+ version('1.5.4', url='https://gforge.inria.fr/frs/download.php/file/38111/mpfi-1.5.4.tgz',
+ sha256='3b3938595d720af17973deaf727cfc0dd41c8b16c20adc103a970f4a43ae3a56')
+ version('1.5.3', url='https://gforge.inria.fr/frs/download.php/file/37331/mpfi-1.5.3.tar.bz2',
+ sha256='2383d457b208c6cd3cf2e66b69c4ce47477b2a0db31fbec0cd4b1ebaa247192f')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('texinfo', type='build')
+ depends_on('gmp', type=('build', 'link'))
+ depends_on('mpfr', type=('build', 'link'))
+
+ def configure_args(self):
+ args = ['--with-gmp=' + self.spec['gmp'].prefix,
+ '--with-mpfr=' + self.spec['mpfr'].prefix]
+ return args
diff --git a/var/spack/repos/builtin/packages/mpfr/package.py b/var/spack/repos/builtin/packages/mpfr/package.py
index fa97da76ed..b14913c01f 100644
--- a/var/spack/repos/builtin/packages/mpfr/package.py
+++ b/var/spack/repos/builtin/packages/mpfr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,7 @@ class Mpfr(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.mpfr.org/"
gnu_mirror_path = "mpfr/mpfr-4.0.2.tar.bz2"
+ version('4.1.0', sha256='feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926')
version('4.0.2', sha256='c05e3f02d09e0e9019384cdd58e0f19c64e6db1fd6f5ecf77b4b1c61ca253acc')
version('4.0.1', sha256='a4d97610ba8579d380b384b225187c250ef88cfe1d5e7226b89519374209b86b')
version('4.0.0', sha256='6aa31fbf3bd1f9f95bcfa241590a9d11cb0f874e2bb93b99c9e2de8eaea6d5fd')
@@ -31,6 +32,7 @@ class Mpfr(AutotoolsPackage, GNUMirrorPackage):
depends_on('libtool', type='build')
depends_on('m4', type='build')
depends_on('autoconf-archive', when='@4.0.2:', type='build')
+ depends_on('texinfo', when='@4.1.0', type='build')
force_autoreconf = True
diff --git a/var/spack/repos/builtin/packages/mpi-bash/package.py b/var/spack/repos/builtin/packages/mpi-bash/package.py
index 0a3d9eb30a..e221beac84 100644
--- a/var/spack/repos/builtin/packages/mpi-bash/package.py
+++ b/var/spack/repos/builtin/packages/mpi-bash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mpi/package.py b/var/spack/repos/builtin/packages/mpi/package.py
index 731a5ac731..c82af559b5 100644
--- a/var/spack/repos/builtin/packages/mpi/package.py
+++ b/var/spack/repos/builtin/packages/mpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mpibind/package.py b/var/spack/repos/builtin/packages/mpibind/package.py
new file mode 100644
index 0000000000..f448d9b952
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpibind/package.py
@@ -0,0 +1,47 @@
+# 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)
+
+import sys
+
+from spack import *
+
+
+class Mpibind(AutotoolsPackage):
+ """A memory-driven algorithm to map parallel codes
+ to heterogeneous architectures"""
+
+ homepage = "https://github.com/LLNL/mpibind"
+ url = "https://github.com/LLNL/mpibind/archive/refs/tags/v0.5.0.tar.gz"
+ git = "https://github.com/LLNL/mpibind.git"
+
+ maintainers = ['eleon']
+
+ # The build process uses 'git describe --tags' to get the
+ # package version, thus we need 'get_full_repo'
+ version('master', branch='master', get_full_repo=True)
+ version('0.5.0', sha256='51bb27341109aeef121a8630bd56f5551c70ebfd337a459fb70ef9015d97d2b7')
+
+ variant('cuda', default=False,
+ description='Build w/support for NVIDIA GPUs.')
+ variant('rocm', default=False,
+ description='Build w/support for AMD GPUs.')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('pkgconf', type='build')
+
+ depends_on('hwloc@2:+libxml2', type='link')
+ depends_on('hwloc@2:+pci', when=(sys.platform != 'darwin'), type='link')
+ depends_on('hwloc@2:+cuda+nvml', when='+cuda', type='link')
+ depends_on('hwloc@2.4:+rocm+opencl', when='+rocm', type='link')
+
+ def autoreconf(self, spec, prefix):
+ autoreconf('--install', '--verbose', '--force')
+
+ # To build and run the tests, make sure 'libtap' is installed
+ # on the target system and is recognized by pkg-config.
+ # Unfortunately, libtap is not in Spack.
diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py
index d44d8a5a2d..f8ee57aa0b 100644
--- a/var/spack/repos/builtin/packages/mpich/package.py
+++ b/var/spack/repos/builtin/packages/mpich/package.py
@@ -1,22 +1,23 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
import re
+import sys
+
+from spack import *
class Mpich(AutotoolsPackage):
"""MPICH is a high performance and widely portable implementation of
the Message Passing Interface (MPI) standard."""
- homepage = "http://www.mpich.org"
- url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
+ homepage = "https://www.mpich.org"
+ url = "https://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
git = "https://github.com/pmodels/mpich.git"
- list_url = "http://www.mpich.org/static/downloads/"
+ list_url = "https://www.mpich.org/static/downloads/"
list_depth = 1
maintainers = ['raffenet', 'yfguo']
@@ -24,6 +25,9 @@ class Mpich(AutotoolsPackage):
executables = ['^mpichversion$']
version('develop', submodules=True)
+ version('3.4.2', sha256='5c19bea8b84e8d74cca5f047e82b147ff3fba096144270e3911ad623d6c587bf')
+ version('3.4.1', sha256='8836939804ef6d492bcee7d54abafd6477d2beca247157d92688654d13779727')
+ version('3.4', sha256='ce5e238f0c3c13ab94a64936060cff9964225e3af99df1ea11b130f20036c24b')
version('3.3.2', sha256='4bfaf8837a54771d3e4922c84071ef80ffebddbb6971a006038d91ee7ef959b9')
version('3.3.1', sha256='fe551ef29c8eea8978f679484441ed8bb1d943f6ad25b63c235d4b9243d551e5')
version('3.3', sha256='329ee02fe6c3d101b6b30a7b6fb97ddf6e82b28844306771fa9dd8845108fa0b')
@@ -51,15 +55,16 @@ class Mpich(AutotoolsPackage):
)
variant(
'device',
- default='ch3',
+ default='ch4',
description='''Abstract Device Interface (ADI)
-implementation. The ch4 device is currently in experimental state''',
+implementation. The ch4 device is in experimental state for versions
+before 3.4.''',
values=('ch3', 'ch4'),
multi=False
)
variant(
'netmod',
- default='tcp',
+ default='ofi',
description='''Network module. Only single netmod builds are
supported. For ch3 device configurations, this presumes the
ch3:nemesis communication channel. ch3:sock is not supported by this
@@ -76,9 +81,11 @@ spack package at this time.''',
description='Enable Argobots support')
variant('fortran', default=True, description='Enable Fortran support')
- provides('mpi')
- provides('mpi@:3.0', when='@3:')
- provides('mpi@:1.3', when='@1:')
+ provides('mpi@:3.1')
+ provides('mpi@:3.0', when='@:3.1')
+ provides('mpi@:2.2', when='@:1.2')
+ provides('mpi@:2.1', when='@:1.1')
+ provides('mpi@:2.0', when='@:1.0')
filter_compiler_wrappers(
'mpicc', 'mpicxx', 'mpif77', 'mpif90', 'mpifort', relative_root='bin'
@@ -87,9 +94,10 @@ spack package at this time.''',
# Fix using an external hwloc
# See https://github.com/pmodels/mpich/issues/4038
# and https://github.com/pmodels/mpich/pull/3540
+ # landed in v3.4b1 v3.4a3
patch('https://github.com/pmodels/mpich/commit/8a851b317ee57366cd15f4f28842063d8eff4483.patch',
sha256='eb982de3366d48cbc55eb5e0df43373a45d9f51df208abf0835a72dc6c0b4774',
- when='@3.3 +hwloc')
+ when='@3.3:3.3.99 +hwloc')
# fix MPI_Barrier segmentation fault
# see https://lists.mpich.org/pipermail/discuss/2016-May/004764.html
@@ -159,10 +167,10 @@ spack package at this time.''',
depends_on("autoconf@2.67:", when='@develop', type=("build"))
# building with "+hwloc' also requires regenerating autotools files
- depends_on('automake@1.15:', when='@3.3 +hwloc', type="build")
- depends_on('libtool@2.4.4:', when='@3.3 +hwloc', type="build")
- depends_on("m4", when="@3.3 +hwloc", type="build"),
- depends_on("autoconf@2.67:", when='@3.3 +hwloc', type="build")
+ depends_on('automake@1.15:', when='@3.3:3.3.99 +hwloc', type="build")
+ depends_on('libtool@2.4.4:', when='@3.3:3.3.99 +hwloc', type="build")
+ depends_on("m4", when="@3.3:3.3.99 +hwloc", type="build"),
+ depends_on("autoconf@2.67:", when='@3.3:3.3.99 +hwloc', type="build")
# MPICH's Yaksa submodule requires python to configure
depends_on("python@3.0:", when="@develop", type="build")
@@ -183,6 +191,20 @@ spack package at this time.''',
conflicts('+pci', when='@:3.2~hydra')
conflicts('+libxml2', when='@:3.2~hydra')
+ # see https://github.com/pmodels/mpich/pull/5031
+ conflicts('%clang@:7', when='@3.4:3.4.1')
+
+ @run_after('configure')
+ def patch_cce(self):
+ # Configure misinterprets output from the cce compiler
+ # Patching configure instead should be possible, but a first
+ # implementation failed in obscure ways that were not worth
+ # tracking down when this worked
+ if self.spec.satisfies('%cce'):
+ filter_file('-L -L', '', 'config.lt', string=True)
+ filter_file('-L -L', '', 'libtool', string=True)
+ filter_file('-L -L', '', 'config.status', string=True)
+
@classmethod
def determine_version(cls, exe):
output = Executable(exe)(output=str, error=str)
@@ -267,12 +289,9 @@ spack package at this time.''',
elif re.search(r'--with-pmix', output):
variants += ' pmi=pmix'
- match = re.search(r'MPICH Device:\s+(\S+)', output)
+ match = re.search(r'MPICH Device:\s+(ch3|ch4)', output)
if match:
- if match.group(1) == 'ch3:nemesis':
- variants += ' device=ch3'
- else:
- variants += ' device=' + match.group(1)
+ variants += ' device=' + match.group(1)
match = re.search(r'--with-device=ch.\S+(ucx|ofi|mxm|tcp)', output)
if match:
@@ -296,6 +315,8 @@ spack package at this time.''',
# Same fix but for macOS - avoids issue #17934
if self.spec.satisfies('%apple-clang@11:'):
env.set('FFLAGS', '-fallow-argument-mismatch')
+ if self.spec.satisfies('%clang@11:'):
+ env.set('FFLAGS', '-fallow-argument-mismatch')
def setup_run_environment(self, env):
# Because MPI implementations provide compilers, they have to add to
@@ -304,6 +325,10 @@ spack package at this time.''',
# Cray MPIs always have cray in the module name, e.g. "cray-mpich"
external_modules = self.spec.external_modules
if external_modules and 'cray' in external_modules[0]:
+ # This is intended to support external MPICH instances registered
+ # by Spack on Cray machines prior to a879c87; users defining an
+ # external MPICH entry for Cray should generally refer to the
+ # "cray-mpich" package
env.set('MPICC', spack_cc)
env.set('MPICXX', spack_cxx)
env.set('MPIF77', spack_fc)
@@ -351,7 +376,7 @@ spack package at this time.''',
"""Not needed usually, configure should be already there"""
# If configure exists nothing needs to be done
if (os.path.exists(self.configure_abs_path) and
- not spec.satisfies('@3.3 +hwloc')):
+ not spec.satisfies('@3.3:3.3.99 +hwloc')):
return
# Else bootstrap with autotools
bash = which('bash')
diff --git a/var/spack/repos/builtin/packages/mpifileutils/package.py b/var/spack/repos/builtin/packages/mpifileutils/package.py
index e06f36ec54..6385f9270e 100644
--- a/var/spack/repos/builtin/packages/mpifileutils/package.py
+++ b/var/spack/repos/builtin/packages/mpifileutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,6 +21,7 @@ class Mpifileutils(Package):
git = "https://github.com/hpc/mpifileutils.git"
version('develop', branch='master')
+ version('0.11', sha256='f5dc1b39077b3c04f79b2c335c4fd80306f8c57ecfbcacbb82cf532caf02b5fd')
version('0.10.1', sha256='4c8409ef4140f6f557d0e93f0c1267baf5d893c203b29fb7a33d9bc3c5a5d25c')
version('0.10', sha256='5a71a9acd9841c3c258fc0eaea942f18abcb40098714cc90462b57696c07e3c5')
version('0.9.1', sha256='15a22450f86b15e7dc4730950b880fda3ef6f59ac82af0b268674d272aa61c69')
@@ -38,7 +39,17 @@ class Mpifileutils(Package):
depends_on('dtcmp@1.0.3', when='@:0.7')
depends_on('dtcmp@1.1.0:', when='@0.8:')
+ # fixes were added to libarchive somewhere between 3.1.2 and 3.5.0
+ # which helps with file names that start with "._", bumping to newer
+ # libarchive, but in a way that does not disrupt older mpiFileUtils installs
depends_on('libarchive')
+ depends_on('libarchive@3.5.1:', when='@0.11:')
+
+ depends_on('bzip2')
+
+ depends_on('libcap')
+
+ depends_on('openssl')
depends_on('cmake@3.1:', when='@0.9:', type='build')
diff --git a/var/spack/repos/builtin/packages/mpilander/package.py b/var/spack/repos/builtin/packages/mpilander/package.py
index 9b72915180..ce154f1251 100644
--- a/var/spack/repos/builtin/packages/mpilander/package.py
+++ b/var/spack/repos/builtin/packages/mpilander/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -37,10 +37,8 @@ class Mpilander(CMakePackage):
def cmake_args(self):
args = [
# tests and examples
- '-DBUILD_TESTING:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF'),
- '-DBUILD_EXAMPLES:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF'),
+ self.define('BUILD_TESTING', self.run_tests),
+ self.define('BUILD_EXAMPLES', self.run_tests),
]
return args
diff --git a/var/spack/repos/builtin/packages/mpileaks/package.py b/var/spack/repos/builtin/packages/mpileaks/package.py
index e30a1d62fb..18018d226e 100644
--- a/var/spack/repos/builtin/packages/mpileaks/package.py
+++ b/var/spack/repos/builtin/packages/mpileaks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mpip/package.py b/var/spack/repos/builtin/packages/mpip/package.py
index a9336086c2..bfeb7af6ff 100644
--- a/var/spack/repos/builtin/packages/mpip/package.py
+++ b/var/spack/repos/builtin/packages/mpip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -59,9 +59,8 @@ class Mpip(AutotoolsPackage):
depends_on('python@:2', when='@3.4.1', type='build')
depends_on('mpi')
- # Ideally would use libunwind, but provide backtrace and
- # setjmp functionality, if needed
- # depends_on('unwind')
+ # '+setjmp' adds '--disable-libunwind' to the confiure args
+ depends_on('unwind', when='@3.5: +libunwind ~setjmp')
@when('@3.5:')
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/mpir/package.py b/var/spack/repos/builtin/packages/mpir/package.py
index b2ec566f49..5f6a54d402 100644
--- a/var/spack/repos/builtin/packages/mpir/package.py
+++ b/var/spack/repos/builtin/packages/mpir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mpitrampoline/package.py b/var/spack/repos/builtin/packages/mpitrampoline/package.py
new file mode 100644
index 0000000000..3c0b463aa3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpitrampoline/package.py
@@ -0,0 +1,48 @@
+# Copyright 2013-2021 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 Mpitrampoline(CMakePackage):
+ """MPItrampoline: A forwarding MPI implementation that can use any other
+ MPI implementation via an MPI ABI."""
+
+ homepage = "https://github.com/eschnett/MPItrampoline"
+ url = "https://github.com/eschnett/MPItrampoline/archive/v1.0.1.tar.gz"
+ git = "https://github.com/eschnett/MPItrampoline.git"
+
+ maintainers = ['eschnett']
+
+ version('develop', branch='main')
+ version('1.0.1', sha256='4ce91b99fb6d2dab481b5e477b6b6a0709add48cf0f287afbbb440fdf3232500')
+
+ variant('shared', default=True,
+ description='Build a shared version of the library')
+
+ provides("mpi @3.1")
+
+ def cmake_args(self):
+ return [self.define_from_variant('BUILD_SHARED_LIBS', 'shared')]
+
+ def setup_run_environment(self, env):
+ # Because MPI implementations provide compilers, they have to add to
+ # their run environments the code to make the compilers available.
+ env.set('MPITRAMPOLINE_CC', self.compiler.cc_names[0])
+ env.set('MPITRAMPOLINE_CXX', self.compiler.cxx_names[0])
+ env.set('MPITRAMPOLINE_FC', self.compiler.fc_names[0])
+ env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
+ env.set('MPICXX', join_path(self.prefix.bin, 'mpicxx'))
+ env.set('MPIF77', join_path(self.prefix.bin, 'mpifc'))
+ env.set('MPIF90', join_path(self.prefix.bin, 'mpifc'))
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ self.setup_run_environment(env)
+
+ def setup_dependent_package(self, module, dependent_spec):
+ self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
+ self.spec.mpicxx = join_path(self.prefix.bin, 'mpicxx')
+ self.spec.mpif77 = join_path(self.prefix.bin, 'mpifc')
+ self.spec.mpifc = join_path(self.prefix.bin, 'mpifc')
diff --git a/var/spack/repos/builtin/packages/mpix-launch-swift/package.py b/var/spack/repos/builtin/packages/mpix-launch-swift/package.py
index 801d298110..f5ee161777 100644
--- a/var/spack/repos/builtin/packages/mpix-launch-swift/package.py
+++ b/var/spack/repos/builtin/packages/mpix-launch-swift/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mpt/package.py b/var/spack/repos/builtin/packages/mpt/package.py
index b9634248c6..9cef2ae05d 100644
--- a/var/spack/repos/builtin/packages/mpt/package.py
+++ b/var/spack/repos/builtin/packages/mpt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Mpt(Package):
Note: HPE MPI is proprietry software. Spack will search your
current directory for the download file. Alternatively, add this file to a
mirror so that Spack can find it. For instructions on how to set up a
- mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+ mirror, see https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://buy.hpe.com/us/en/software/high-performance-computing-software/hpe-message-passing-interface-mpi/p/1010144155"
diff --git a/var/spack/repos/builtin/packages/mptensor/package.py b/var/spack/repos/builtin/packages/mptensor/package.py
new file mode 100644
index 0000000000..6106682279
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mptensor/package.py
@@ -0,0 +1,96 @@
+# Copyright 2013-2021 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 Mptensor(CMakePackage):
+ """mptensor is parallel C++ libarary for tensor calculations.
+ It provides similar interfaces as Numpy and Scipy in Python."""
+
+ homepage = "https://github.com/smorita/mptensor"
+ url = "https://github.com/smorita/mptensor/archive/v0.3.0.tar.gz"
+
+ version('0.3.0', sha256='819395a91551bddb77958615042fcb935a4b67ee37f912b9a2ca5b49c71befae')
+
+ variant('mpi', default=False, description='Build with MPI library')
+ variant("doc", default=False, description="build documentation with Doxygen")
+
+ depends_on('cmake@3.6:', type='build')
+ depends_on('mpi', when="+mpi")
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('scalapack', when="+mpi")
+ depends_on('doxygen@:1.8.11', type="build", when="+doc")
+
+ test_requires_compiler = True
+
+ def cmake_args(self):
+ spec = self.spec
+ options = []
+
+ if "+mpi" in spec:
+ options.extend([
+ '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
+ '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
+ '-DSCALAPACK_LIBRARIES=%s' % spec['scalapack'].libs,
+ ])
+ else:
+ options.extend([
+ '-DCMAKE_C_COMPILER=%s' % spack_cc,
+ '-DCMAKE_CXX_COMPILER=%s' % spack_cxx,
+ '-DCMAKE_Fortran_COMPILER=%s' % spack_fc,
+ ])
+
+ blas = spec['blas'].libs
+ lapack = spec['lapack'].libs
+ options.extend([
+ '-DLAPACK_LIBRARIES=%s' % ';'.join(lapack),
+ '-DBLAS_LIBRARIES=%s' % ';'.join(blas),
+ self.define_from_variant('ENABLE_MPI', 'mpi'),
+ self.define_from_variant('BUILD_DOC', 'doc')
+ ])
+
+ return options
+
+ @run_after("install")
+ def setup_build_tests(self):
+ """Copy the build test files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources('.')
+
+ def test(self):
+ if "+mpi" not in self.spec:
+ print("Test of mptensor only runs with +mpi option.")
+ else:
+ with working_dir(join_path(self.install_test_root, "tests"), create=False):
+ make("clean")
+ makefile = FileFilter("Makefile")
+ makefile.filter("g++", "{0}".format(spack_cxx), string=True)
+
+ with working_dir(join_path(self.install_test_root), create=False):
+ makefile = FileFilter("Makefile.option")
+ makefile.filter("CXX =.*", "CXX ={0}".format(self.spec["mpi"].mpicxx))
+ makefile.filter(
+ "CXXFLAGS =.*", "CXXFLAGS ={0}".format(self.compiler.cxx11_flag)
+ )
+
+ math_libs = (
+ self.spec["scalapack"].libs
+ + self.spec["lapack"].libs
+ + self.spec["blas"].libs
+ )
+
+ with working_dir(join_path(self.install_test_root, "tests"), create=False):
+ make("LDFLAGS={0}".format(math_libs.ld_flags))
+
+ mpirun = self.spec["mpi"].prefix.bin.mpirun
+ mpiexec = Executable(mpirun)
+ mpiexec("-n", "1", "tensor_test.out")
+
+ # Test of mptensor has checker
+ # and checker is abort when check detect any errors.
+ print("Test of mptensor PASSED !")
diff --git a/var/spack/repos/builtin/packages/mrbayes/package.py b/var/spack/repos/builtin/packages/mrbayes/package.py
index bfc485eb31..c12c0df65a 100644
--- a/var/spack/repos/builtin/packages/mrbayes/package.py
+++ b/var/spack/repos/builtin/packages/mrbayes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mrbench/package.py b/var/spack/repos/builtin/packages/mrbench/package.py
index 168dea6b7f..673ae0c2ce 100644
--- a/var/spack/repos/builtin/packages/mrbench/package.py
+++ b/var/spack/repos/builtin/packages/mrbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mrchem/package.py b/var/spack/repos/builtin/packages/mrchem/package.py
index e6281df881..440cb6e94d 100644
--- a/var/spack/repos/builtin/packages/mrchem/package.py
+++ b/var/spack/repos/builtin/packages/mrchem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mrcpp/package.py b/var/spack/repos/builtin/packages/mrcpp/package.py
index f7f6d5e3d8..f4ee4ef494 100644
--- a/var/spack/repos/builtin/packages/mrcpp/package.py
+++ b/var/spack/repos/builtin/packages/mrcpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mrnet/package.py b/var/spack/repos/builtin/packages/mrnet/package.py
index f18286118e..f957689243 100644
--- a/var/spack/repos/builtin/packages/mrnet/package.py
+++ b/var/spack/repos/builtin/packages/mrnet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Mrnet(AutotoolsPackage):
"""The MRNet Multi-Cast Reduction Network."""
- homepage = "http://paradyn.org/mrnet"
- url = "http://ftp.cs.wisc.edu/pub/paradyn/mrnet/mrnet_5.0.1.tar.gz"
+ homepage = "https://paradyn.org/mrnet"
+ url = "https://ftp.cs.wisc.edu/pub/paradyn/mrnet/mrnet_5.0.1.tar.gz"
git = "https://github.com/dyninst/mrnet.git"
list_url = "http://ftp.cs.wisc.edu/paradyn/mrnet"
diff --git a/var/spack/repos/builtin/packages/mrtrix3/package.py b/var/spack/repos/builtin/packages/mrtrix3/package.py
index 4cb03770d6..c54fd35481 100644
--- a/var/spack/repos/builtin/packages/mrtrix3/package.py
+++ b/var/spack/repos/builtin/packages/mrtrix3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Mrtrix3(Package):
probabilistic tractography, track-density imaging, and apparent fibre
density."""
- homepage = "http://www.mrtrix.org/"
+ homepage = "https://www.mrtrix.org/"
git = "https://github.com/MRtrix3/mrtrix3.git"
version('2017-09-25', commit='72aca89e3d38c9d9e0c47104d0fb5bd2cbdb536d')
diff --git a/var/spack/repos/builtin/packages/mscgen/package.py b/var/spack/repos/builtin/packages/mscgen/package.py
index a39bdc0e3c..4cc72f497f 100644
--- a/var/spack/repos/builtin/packages/mscgen/package.py
+++ b/var/spack/repos/builtin/packages/mscgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class Mscgen(AutotoolsPackage):
and produces PNG, SVG, EPS or server side image maps (ismaps) as the
output."""
- homepage = "http://www.mcternan.me.uk/mscgen/"
- url = "http://www.mcternan.me.uk/mscgen/software/mscgen-src-0.20.tar.gz"
+ homepage = "https://www.mcternan.me.uk/mscgen/"
+ url = "https://www.mcternan.me.uk/mscgen/software/mscgen-src-0.20.tar.gz"
version('0.20', sha256='3c3481ae0599e1c2d30b7ed54ab45249127533ab2f20e768a0ae58d8551ddc23')
diff --git a/var/spack/repos/builtin/packages/msgpack-c/package.py b/var/spack/repos/builtin/packages/msgpack-c/package.py
index d7bc4708d1..ca90981c40 100644
--- a/var/spack/repos/builtin/packages/msgpack-c/package.py
+++ b/var/spack/repos/builtin/packages/msgpack-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,7 +22,6 @@ class MsgpackC(CMakePackage):
args = [
"-DCMAKE_CXX_FLAGS=-Wno-implicit-fallthrough",
"-DCMAKE_C_FLAGS=-Wno-implicit-fallthrough",
- '-DMSGPACK_BUILD_TESTS:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF')
+ self.define('MSGPACK_BUILD_TESTS', self.run_tests)
]
return args
diff --git a/var/spack/repos/builtin/packages/mshadow/package.py b/var/spack/repos/builtin/packages/mshadow/package.py
index 235ed182fa..8b9ce4e277 100644
--- a/var/spack/repos/builtin/packages/mshadow/package.py
+++ b/var/spack/repos/builtin/packages/mshadow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/msmc/package.py b/var/spack/repos/builtin/packages/msmc/package.py
index eec3682753..205bed71ee 100644
--- a/var/spack/repos/builtin/packages/msmc/package.py
+++ b/var/spack/repos/builtin/packages/msmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/msmc2/package.py b/var/spack/repos/builtin/packages/msmc2/package.py
index efd0bec341..e5d8b0397a 100644
--- a/var/spack/repos/builtin/packages/msmc2/package.py
+++ b/var/spack/repos/builtin/packages/msmc2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mstk/package.py b/var/spack/repos/builtin/packages/mstk/package.py
index bb56729bd6..ac8bf2d2af 100644
--- a/var/spack/repos/builtin/packages/mstk/package.py
+++ b/var/spack/repos/builtin/packages/mstk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,11 +23,12 @@ class Mstk(CMakePackage):
homepage = "https://github.com/MeshToolkit/MSTK"
git = "https://github.com/MeshToolkit/MSTK"
- url = "https://github.com/MeshToolkit/MSTK/archive/3.3.1.tar.gz"
+ url = "https://github.com/MeshToolkit/MSTK/archive/3.3.6.tar.gz"
maintainers = ['raovgarimella', 'julienloiseau']
version('master', branch='master')
+ version('3.3.6', sha256='30041ee6f32d754e5d9b46db8f62609bb66d2686f8e6e16ad254f552849cb0f1')
version('3.3.5', sha256='64c976e12d1393aafd086ef941b176add6cfb963f463c33259596e7ef641cdd8')
version('3.3.4', sha256='bd34d31fc1fc468147a51e8d837d6bf9902ca8d38c7c0615e7f20968d4659da2')
version('3.3.3', sha256='54ea7929c9046915472f38367c83f75af634a6989ce0b89aad17fb9f4a25023e')
diff --git a/var/spack/repos/builtin/packages/mt-metis/package.py b/var/spack/repos/builtin/packages/mt-metis/package.py
index 805c86836c..1ed6ed421a 100644
--- a/var/spack/repos/builtin/packages/mt-metis/package.py
+++ b/var/spack/repos/builtin/packages/mt-metis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/multitail/package.py b/var/spack/repos/builtin/packages/multitail/package.py
index 78fbdcfd33..c270ced021 100644
--- a/var/spack/repos/builtin/packages/multitail/package.py
+++ b/var/spack/repos/builtin/packages/multitail/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/multitime/package.py b/var/spack/repos/builtin/packages/multitime/package.py
index 00510c5cbc..51399a0bc8 100644
--- a/var/spack/repos/builtin/packages/multitime/package.py
+++ b/var/spack/repos/builtin/packages/multitime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/multiverso/package.py b/var/spack/repos/builtin/packages/multiverso/package.py
index 35535eff51..e4941c256f 100644
--- a/var/spack/repos/builtin/packages/multiverso/package.py
+++ b/var/spack/repos/builtin/packages/multiverso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mumax/package.py b/var/spack/repos/builtin/packages/mumax/package.py
index e221ece6bc..3e810b2736 100644
--- a/var/spack/repos/builtin/packages/mumax/package.py
+++ b/var/spack/repos/builtin/packages/mumax/package.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Mumax(MakefilePackage, CudaPackage):
"""GPU accelerated micromagnetic simulator."""
- homepage = "http://mumax.github.io"
+ homepage = "https://mumax.github.io"
url = "https://github.com/mumax/3/archive/v3.10.tar.gz"
maintainers = ['glennpj']
@@ -29,7 +30,7 @@ class Mumax(MakefilePackage, CudaPackage):
description='Use gnuplot for graphs')
depends_on('cuda')
- depends_on('go', type='build')
+ depends_on('go@:1.15', type='build')
depends_on('gnuplot', type='run', when='+gnuplot')
conflicts('~cuda', msg='mumax requires cuda')
diff --git a/var/spack/repos/builtin/packages/mummer/package.py b/var/spack/repos/builtin/packages/mummer/package.py
index e1edf39b8e..cfcdd7f927 100644
--- a/var/spack/repos/builtin/packages/mummer/package.py
+++ b/var/spack/repos/builtin/packages/mummer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mummer4/package.py b/var/spack/repos/builtin/packages/mummer4/package.py
index 2ba974dca9..b62701d2c5 100644
--- a/var/spack/repos/builtin/packages/mummer4/package.py
+++ b/var/spack/repos/builtin/packages/mummer4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class Mummer4(AutotoolsPackage):
homepage = "https://github.com/mummer4/mummer"
url = "https://github.com/mummer4/mummer/releases/download/v4.0.0beta2/mummer-4.0.0beta2.tar.gz"
+ version('4.0.0rc1', sha256='85006adb2d6539c2f738c3e3bb14b58bb6f62cd6c6ca5ede884a87ae76e07d1d')
version('4.0.0beta2', sha256='cece76e418bf9c294f348972e5b23a0230beeba7fd7d042d5584ce075ccd1b93')
conflicts('%gcc@:4.7')
diff --git a/var/spack/repos/builtin/packages/mumps/mumps.src-makefile.5.2.patch b/var/spack/repos/builtin/packages/mumps/mumps.src-makefile.5.2.patch
new file mode 100644
index 0000000000..70acfe6d08
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mumps/mumps.src-makefile.5.2.patch
@@ -0,0 +1,29 @@
+# This patchfile modifies src/Makefile to allow for extra libraries to be
+# added to lib[cdsz]mumps.so (e.g,. libmumps_common.so and possible libmpiseq.so)
+#
+# It also adds flags to produce PIC code
+
+diff -Naur spack-src/src/Makefile spack-src.patched/src/Makefile
+--- spack-src/src/Makefile 2019-04-18 05:55:07.000000000 -0400
++++ spack-src.patched/src/Makefile 2020-10-31 15:19:49.927297524 -0400
+@@ -182,7 +182,7 @@
+ $(RANLIB) $@
+
+ $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT): $(OBJS_MOD) $(OBJS_OTHER)
+- $(AR)$@ $?
++ $(AR)$@ $? $(EXTRA_LIBS4MUMPS)
+ $(RANLIB) $@
+
+ # Dependencies between modules:
+@@ -378,9 +378,9 @@
+
+ .SUFFIXES: .c .F .o
+ .F.o:
+- $(FC) $(OPTF) $(INCS) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -c $*.F $(OUTF)$*.o
++ $(FC) $(OPTF) $(FC_PIC_FLAG) $(INCS) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -c $*.F $(OUTF)$*.o
+ .c.o:
+- $(CC) $(OPTC) $(INCS) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC)$*.o
++ $(CC) $(OPTC) $(CC_PIC_FLAG) $(INCS) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC)$*.o
+
+ $(ARITH)mumps_c.o: mumps_c.c
+ $(CC) $(OPTC) $(INCS) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \
diff --git a/var/spack/repos/builtin/packages/mumps/mumps.src-makefile.5.3.patch b/var/spack/repos/builtin/packages/mumps/mumps.src-makefile.5.3.patch
new file mode 100644
index 0000000000..eb88806723
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mumps/mumps.src-makefile.5.3.patch
@@ -0,0 +1,24 @@
+diff -Naur spack-src/src/Makefile spack-src.patched/src/Makefile
+--- spack-src/src/Makefile 2020-06-15 05:57:25.000000000 -0400
++++ spack-src.patched/src/Makefile 2021-01-08 14:43:28.655026604 -0500
+@@ -193,7 +193,7 @@
+ $(RANLIB) $@
+
+ $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT): $(OBJS_MOD) $(OBJS_OTHER)
+- $(AR)$@ $?
++ $(AR)$@ $? $(EXTRA_LIBS4MUMPS)
+ $(RANLIB) $@
+
+ # Dependencies between modules:
+@@ -405,9 +405,9 @@
+
+ .SUFFIXES: .c .F .o
+ .F.o:
+- $(FC) $(OPTF) -I. -I../include $(INCS) $(IORDERINGSF) $(ORDERINGSF) -c $*.F $(OUTF)$*.o
++ $(FC) $(OPTF) $(FC_PIC_FLAG) -I. -I../include $(INCS) $(IORDERINGSF) $(ORDERINGSF) -c $*.F $(OUTF)$*.o
+ .c.o:
+- $(CC) $(OPTC) -I../include $(INCS) $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC)$*.o
++ $(CC) $(OPTC) $(CC_PIC_FLAG) -I../include $(INCS) $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC)$*.o
+
+ $(ARITH)mumps_c.o: mumps_c.c
+ $(CC) $(OPTC) -I../include $(INCS) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \
diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py
index 51fe2a9f06..9b9346785e 100644
--- a/var/spack/repos/builtin/packages/mumps/package.py
+++ b/var/spack/repos/builtin/packages/mumps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,15 +11,18 @@ class Mumps(Package):
"""MUMPS: a MUltifrontal Massively Parallel sparse direct Solver"""
homepage = "http://mumps.enseeiht.fr"
- url = "http://mumps.enseeiht.fr/MUMPS_5.0.1.tar.gz"
+ url = "http://mumps.enseeiht.fr/MUMPS_5.3.5.tar.gz"
+ version('5.4.0', sha256='c613414683e462da7c152c131cebf34f937e79b30571424060dd673368bbf627')
+ version('5.3.5', sha256='e5d665fdb7043043f0799ae3dbe3b37e5b200d1ab7a6f7b2a4e463fd89507fa4')
version('5.3.3', sha256='27e7749ac05006bf8e81a457c865402bb72a42bf3bc673da49de1020f0f32011')
version('5.2.0', sha256='41f2c7cb20d69599fb47e2ad6f628f3798c429f49e72e757e70722680f70853f')
version('5.1.2', sha256='eb345cda145da9aea01b851d17e54e7eef08e16bfa148100ac1f7f046cd42ae9')
version('5.1.1', sha256='a2a1f89c470f2b66e9982953cbd047d429a002fab9975400cef7190d01084a06')
version('5.0.2', sha256='77292b204942640256097a3da482c2abcd1e0d5a74ecd1d4bab0f5ef6e60fe45')
# Alternate location if main server is down.
- # version('5.0.1', sha256='50355b2e67873e2239b4998a46f2bbf83f70cdad6517730ab287ae3aae9340a0', url='http://pkgs.fedoraproject.org/repo/pkgs/MUMPS/MUMPS_5.0.1.tar.gz/md5/b477573fdcc87babe861f62316833db0/MUMPS_5.0.1.tar.gz')
+ # version('5.0.1', sha256='50355b2e67873e2239b4998a46f2bbf83f70cdad6517730ab287ae3aae9340a0',
+ # url='http://pkgs.fedoraproject.org/repo/pkgs/MUMPS/MUMPS_5.0.1.tar.gz/md5/b477573fdcc87babe861f62316833db0/MUMPS_5.0.1.tar.gz')
version('5.0.1', sha256='50355b2e67873e2239b4998a46f2bbf83f70cdad6517730ab287ae3aae9340a0')
variant('mpi', default=True,
@@ -41,6 +44,11 @@ class Mumps(Package):
variant('int64', default=False,
description='Use int64_t/integer*8 as default index type')
variant('shared', default=True, description='Build shared libraries')
+ variant('openmp', default=True,
+ description='Compile MUMPS with OpenMP support')
+ variant('blr_mt', default=False,
+ description='Allow BLAS calls in OpenMP regions ' +
+ '(warning: might not be supported by all multithread BLAS)')
depends_on('scotch + esmumps', when='~ptscotch+scotch')
depends_on('scotch + esmumps ~ metis + mpi', when='+ptscotch')
@@ -53,13 +61,21 @@ class Mumps(Package):
patch('examples.patch', when='@5.1.1%clang^spectrum-mpi')
patch('gfortran8.patch', when='@5.1.2')
+ # The following patches src/Makefile to fix some dependency
+ # issues in lib[cdsz]mumps.so
+ patch('mumps.src-makefile.5.2.patch', when='@5.2.0 +shared')
+ patch('mumps.src-makefile.5.3.patch', when='@5.3.0: +shared')
+
+ conflicts('+parmetis', when='~mpi',
+ msg="You cannot use the parmetis variant without mpi")
+ conflicts('+parmetis', when='~metis',
+ msg="You cannot use the parmetis variant without metis")
+ conflicts('+ptscotch', when='~mpi',
+ msg="You cannot use the ptscotch variant without mpi")
+ conflicts('+blr_mt', when='~openmp',
+ msg="You cannot use the blr_mt variant without openmp")
def write_makefile_inc(self):
- if ('+parmetis' in self.spec or '+ptscotch' in self.spec) and (
- '+mpi' not in self.spec):
- raise RuntimeError(
- 'You cannot use the variants parmetis or ptscotch without mpi')
-
# The makefile variables LIBBLAS, LSCOTCH, LMETIS, and SCALAP are only
# used to link the examples, so if building '+shared' there is no need
# to explicitly link with the respective libraries because we make sure
@@ -74,6 +90,10 @@ class Mumps(Package):
lapack_blas.ld_flags if not shared else '']
orderings = ['-Dpord']
+ # All of the lib[cdsz]mumps.* libs depend on mumps_common
+ extra_libs4mumps = ['-L$(topdir)/lib', '-lmumps_common']
+ # and mumps_common depends on pord
+ extra_libs4mumps += ['-L$(topdir)/PORD/lib', '-lpord']
if '+ptscotch' in self.spec or '+scotch' in self.spec:
makefile_conf.extend([
@@ -86,7 +106,7 @@ class Mumps(Package):
if '+ptscotch' in self.spec:
orderings.append('-Dptscotch')
- if '+parmetis' in self.spec and '+metis' in self.spec:
+ if '+parmetis' in self.spec:
makefile_conf.extend([
"IMETIS = -I%s" % self.spec['parmetis'].prefix.include,
("LMETIS = -L%s -l%s -L%s -l%s" % (
@@ -126,42 +146,63 @@ class Mumps(Package):
# when building shared libs need -fPIC, otherwise
# /usr/bin/ld: graph.o: relocation R_X86_64_32 against `.rodata.str1.1'
# can not be used when making a shared object; recompile with -fPIC
- cpic = self.compiler.cc_pic_flag if '+shared' in self.spec else ''
- fpic = self.compiler.fc_pic_flag if '+shared' in self.spec else ''
+ cpic = self.compiler.cc_pic_flag if shared else ''
+ fpic = self.compiler.fc_pic_flag if shared else ''
# TODO: test this part, it needs a full blas, scalapack and
# partitionning environment with 64bit integers
+ # The mumps.src-makefile.patch wants us to set these PIC variables
+ makefile_conf.append('FC_PIC_FLAG={0}'.format(fpic))
+ makefile_conf.append('CC_PIC_FLAG={0}'.format(cpic))
+
opt_level = '3' if using_xl else ''
+ optc = ['-O{0}'.format(opt_level)]
+ optf = ['-O{0}'.format(opt_level)]
+ optl = ['-O{0}'.format(opt_level)]
+
+ if shared:
+ optc.append(cpic)
+ optf.append(fpic)
+ optl.append(cpic)
+
+ if not using_xlf:
+ optf.append('-DALLOW_NON_INIT')
+
if '+int64' in self.spec:
- if using_xlf:
- makefile_conf.append('OPTF = -O%s' % opt_level)
- else:
+ if not using_xlf:
# the fortran compilation flags most probably are
# working only for intel and gnu compilers this is
# perhaps something the compiler should provide
- makefile_conf.extend([
- 'OPTF = %s -O -DALLOW_NON_INIT %s' % (
- fpic,
- '-fdefault-integer-8' if using_gcc
- else '-i8'), # noqa
- ])
+ optf.append('-fdefault-integer-8' if using_gcc else '-i8')
- makefile_conf.extend([
- 'OPTL = %s -O%s' % (cpic, opt_level),
- 'OPTC = %s -O%s -DINTSIZE64' % (cpic, opt_level)
- ])
+ optc.append('-DINTSIZE64')
else:
if using_xlf:
- makefile_conf.append('OPTF = -O%s -qfixed' % opt_level)
- else:
- makefile_conf.append('OPTF = %s -O%s -DALLOW_NON_INIT' % (
- fpic, opt_level))
-
- makefile_conf.extend([
- 'OPTL = %s -O%s' % (cpic, opt_level),
- 'OPTC = %s -O%s' % (cpic, opt_level)
- ])
+ optf.append('-qfixed')
+
+ # As of version 5.2.0, MUMPS is able to take advantage
+ # of the GEMMT BLAS extension. MKL is currently the only
+ # known BLAS implementation supported.
+ if '@5.2.0: ^mkl' in self.spec:
+ optf.append('-DGEMMT_AVAILABLE')
+
+ if '+openmp' in self.spec:
+ optc.append(self.compiler.openmp_flag)
+ optf.append(self.compiler.openmp_flag)
+ optl.append(self.compiler.openmp_flag)
+
+ # Using BLR_MT might not be supported by all multithreaded BLAS
+ # (MKL is known to work) but it is not something we can easily
+ # check so we trust that the user knows what he/she is doing.
+ if '+blr_mt' in self.spec:
+ optf.append('-DBLR_MT')
+
+ makefile_conf.extend([
+ 'OPTC = {0}'.format(' '.join(optc)),
+ 'OPTF = {0}'.format(' '.join(optf)),
+ 'OPTL = {0}'.format(' '.join(optl))
+ ])
if '+mpi' in self.spec:
scalapack = self.spec['scalapack'].libs if not shared \
@@ -178,6 +219,8 @@ class Mumps(Package):
"FC = {0}".format(spack_fc),
"FL = {0}".format(spack_fc),
"MUMPS_TYPE = seq"])
+ # For sequential MUMPS, we need to link to a fake MPI lib
+ extra_libs4mumps += ['-L$(topdir)/libseq', '-lmpiseq']
# TODO: change the value to the correct one according to the
# compiler possible values are -DAdd_, -DAdd__ and/or -DUPPER
@@ -228,8 +271,8 @@ class Mumps(Package):
makefile_conf.extend([
'LIBEXT=.so',
'AR=link_cmd() { $(FL) -%s -Wl,-soname '
- '-Wl,%s/$(notdir $@) -o "$$@" %s; }; link_cmd ' %
- (build_shared_flag, prefix.lib, inject_libs),
+ '-Wl,$(notdir $@) -o "$$@" %s; }; link_cmd ' %
+ (build_shared_flag, inject_libs),
'RANLIB=ls'
])
# When building libpord, read AR from Makefile.inc instead of
@@ -247,6 +290,10 @@ class Mumps(Package):
'RANLIB = ranlib'
])
+ # The mumps.src-makefile.patch wants EXTRA_LIBS4MUMPS defined
+ makefile_conf.extend([
+ 'EXTRA_LIBS4MUMPS = {0}'.format(' '.join(extra_libs4mumps))
+ ])
makefile_inc_template = join_path(
os.path.dirname(self.module.__file__), 'Makefile.inc')
with open(makefile_inc_template, "r") as fh:
@@ -257,6 +304,15 @@ class Mumps(Package):
makefile_inc = '\n'.join(makefile_conf)
fh.write(makefile_inc)
+ def flag_handler(self, name, flags):
+ if name == 'fflags':
+ if self.spec.satisfies('%gcc@10:'):
+ if flags is None:
+ flags = []
+ flags.append('-fallow-argument-mismatch')
+
+ return (flags, None, None)
+
def install(self, spec, prefix):
self.write_makefile_inc()
@@ -268,7 +324,10 @@ class Mumps(Package):
['d', '+double'], ['z', '+complex+double']]
for ltr, v in letters_variants:
if v in spec:
- make(ltr + 'examples')
+ if self.spec.satisfies('@5.4:'):
+ make(ltr)
+ else:
+ make(ltr + 'examples')
install_tree('lib', prefix.lib)
install_tree('include', prefix.include)
diff --git a/var/spack/repos/builtin/packages/munge/package.py b/var/spack/repos/builtin/packages/munge/package.py
index 2b47716aa2..61f28fdef1 100644
--- a/var/spack/repos/builtin/packages/munge/package.py
+++ b/var/spack/repos/builtin/packages/munge/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Munge(AutotoolsPackage):
""" MUNGE Uid 'N' Gid Emporium """
diff --git a/var/spack/repos/builtin/packages/muparser/package.py b/var/spack/repos/builtin/packages/muparser/package.py
index 3f0018e9d1..2b01e6f18a 100644
--- a/var/spack/repos/builtin/packages/muparser/package.py
+++ b/var/spack/repos/builtin/packages/muparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class Muparser(Package):
"""C++ math expression parser library."""
- homepage = "http://muparser.beltoforion.de/"
+ homepage = "https://beltoforion.de/en/muparser/"
url = "https://github.com/beltoforion/muparser/archive/v2.2.5.tar.gz"
version('2.2.6.1', sha256='d2562853d972b6ddb07af47ce8a1cdeeb8bb3fa9e8da308746de391db67897b3')
diff --git a/var/spack/repos/builtin/packages/muscle/package.py b/var/spack/repos/builtin/packages/muscle/package.py
index 0f5d5f5097..f874578bac 100644
--- a/var/spack/repos/builtin/packages/muscle/package.py
+++ b/var/spack/repos/builtin/packages/muscle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Muscle(MakefilePackage):
according to published benchmark tests, with accuracy and speed
that are consistently better than CLUSTALW."""
- homepage = "http://drive5.com/muscle/"
+ homepage = "https://drive5.com/muscle/"
version('3.8.31', sha256='43c5966a82133bd7da5921e8142f2f592c2b5f53d802f0527a2801783af809ad')
version('3.8.1551', sha256='c70c552231cd3289f1bad51c9bd174804c18bb3adcf47f501afec7a68f9c482e')
diff --git a/var/spack/repos/builtin/packages/muse/package.py b/var/spack/repos/builtin/packages/muse/package.py
index 4f1831416e..34d0cf5efe 100644
--- a/var/spack/repos/builtin/packages/muse/package.py
+++ b/var/spack/repos/builtin/packages/muse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Muse(MakefilePackage):
"""Somatic point mutation caller."""
- homepage = "http://bioinformatics.mdanderson.org/main/MuSE"
+ homepage = "https://bioinformatics.mdanderson.org/main/MuSE"
url = "https://github.com/danielfan/MuSE/archive/v1.0-rc.tar.gz"
version('1.0-rc', sha256='b48b8be0044a2249bdc0b625fe0192c65089c598bbd1b1142902dfa81e804023')
diff --git a/var/spack/repos/builtin/packages/musl/package.py b/var/spack/repos/builtin/packages/musl/package.py
index 05ec4eb5ff..c120e57214 100644
--- a/var/spack/repos/builtin/packages/musl/package.py
+++ b/var/spack/repos/builtin/packages/musl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/muster/package.py b/var/spack/repos/builtin/packages/muster/package.py
index 42c369f8d8..54d74b19c2 100644
--- a/var/spack/repos/builtin/packages/muster/package.py
+++ b/var/spack/repos/builtin/packages/muster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mutationpp/package.py b/var/spack/repos/builtin/packages/mutationpp/package.py
index 94abb0fbc4..3acbc9b1cb 100644
--- a/var/spack/repos/builtin/packages/mutationpp/package.py
+++ b/var/spack/repos/builtin/packages/mutationpp/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Mutationpp(CMakePackage):
"""Mutation++ is an open-source library originally developed
diff --git a/var/spack/repos/builtin/packages/mvapich2-gdr/package.py b/var/spack/repos/builtin/packages/mvapich2-gdr/package.py
index 45f834fac1..5b5820641c 100755
--- a/var/spack/repos/builtin/packages/mvapich2-gdr/package.py
+++ b/var/spack/repos/builtin/packages/mvapich2-gdr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,10 +17,12 @@ class Mvapich2Gdr(AutotoolsPackage):
"""
homepage = 'http://mvapich.cse.ohio-state.edu'
- url = 'http://mvapich.cse.ohio-state.edu/download/mvapich/spack-mirror/mvapich2-gdr/mvapich2-gdr-2.3.4.tar.gz'
+ url = 'http://mvapich.cse.ohio-state.edu/download/mvapich/spack-mirror/mvapich2-gdr/mvapich2-gdr-2.3.6.tar.gz'
- maintainers = ['nithintsk', 'harisubramoni']
+ maintainers = ['ndcontini', 'natshineman', 'harisubramoni']
+ version('2.3.6', sha256='618408431348164c0824f3a72dc406763f169f7f5400f3cc15dfebf8d7166005')
+ version('2.3.5', sha256='bcfe8197875405af0ddbf6462e585efc21668108bec9b481fe53616ad36a98b4')
version('2.3.4', sha256='ed78101e6bb807e979213006ee5f20ff466369b01f96b6d1cf0c471baf7e35aa')
version('2.3.3', sha256='9b7b5dd235dbf85099fba3b6f1ccb49bb755923efed66ddc335921f44cb1b8a8')
@@ -71,11 +73,27 @@ class Mvapich2Gdr(AutotoolsPackage):
default=False
)
+ variant(
+ 'cuda',
+ description='Enable/Disable support for cuda',
+ default=True
+ )
+
+ variant(
+ 'rocm',
+ description='Enable/Disable support for ROCM',
+ default=False
+ )
+ conflicts('+rocm', when='@:2.3.4', msg='MVAPICH2-GDR only supports ROCm in version >= 2.3.5')
+ conflicts('+cuda +rocm', msg='MVAPICH2-GDR can only be built with either CUDA or ROCm')
+ conflicts('~cuda ~rocm', msg='MVAPICH2-GDR must be built with either CUDA or ROCm')
+
depends_on('bison@3.4.2', type='build')
depends_on('libpciaccess@0.13.5', when=(sys.platform != 'darwin'))
depends_on('libxml2@2.9.10')
- depends_on('cuda@9.2.88:10.2.89')
+ depends_on('cuda@9.2.88:11.2.2', when='+cuda')
depends_on('pmix@3.1.3', when='pmi_version=pmix')
+ depends_on('hip@3.9.0:4.1.0', when='+rocm')
filter_compiler_wrappers(
'mpicc', 'mpicxx', 'mpif77', 'mpif90', 'mpifort', relative_root='bin'
@@ -108,6 +126,15 @@ class Mvapich2Gdr(AutotoolsPackage):
if '+openacc' in spec:
opts.append('--enable-openacc')
+ if '+cuda' in spec:
+ opts.append('--enable-cuda')
+ opts.append('--disable-gl')
+ opts.append('--with-cuda={0}'.format(spec['cuda'].prefix))
+
+ if '+rocm' in spec:
+ opts.append('--enable-hip=basic')
+ opts.append('--enable-rocm')
+
# See: http://slurm.schedmd.com/mpi_guide.html#mvapich2
if 'process_managers=slurm' in spec:
opts.append('--with-pm=slurm')
@@ -124,12 +151,6 @@ class Mvapich2Gdr(AutotoolsPackage):
'--with-pm=hydra',
'--with-pbs=/opt/pbs'
])
- if '~mcast' in spec:
- opts.append('--disable-mcast')
- if '+core_direct' in spec:
- opts.append('--with-core-direct')
- if '+openacc' in spec:
- opts.append('--enable-openacc')
elif 'process_managers=jsrun' in spec:
opts.append([
@@ -184,14 +205,12 @@ class Mvapich2Gdr(AutotoolsPackage):
]
def configure_args(self):
- args = ['--enable-cuda',
- '--disable-hybrid',
- '--with-ch3-rank-bits=32',
- '--disable-gl',
- '--without-hydra-ckpointlib',
- '--disable-static',
- '--enable-shared',
- '--disable-rdma-cm'
- ]
+ args = [
+ '--with-ch3-rank-bits=32',
+ '--without-hydra-ckpointlib',
+ '--disable-static',
+ '--enable-shared',
+ '--disable-rdma-cm'
+ ]
args.extend(self.process_manager_options)
return args
diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py
index 3031082ee7..af767b0496 100644
--- a/var/spack/repos/builtin/packages/mvapich2/package.py
+++ b/var/spack/repos/builtin/packages/mvapich2/package.py
@@ -1,10 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import re
import os.path
+import re
import sys
@@ -13,15 +13,17 @@ class Mvapich2(AutotoolsPackage):
networks (InfiniBand, Omni-Path, Ethernet/iWARP, and RoCE) and computing
platforms (x86 (Intel and AMD), ARM and OpenPOWER)"""
- homepage = "http://mvapich.cse.ohio-state.edu/"
- url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.4.tar.gz"
- list_url = "http://mvapich.cse.ohio-state.edu/downloads/"
+ homepage = "https://mvapich.cse.ohio-state.edu/userguide/userguide_spack/"
+ url = "https://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.6.tar.gz"
+ list_url = "https://mvapich.cse.ohio-state.edu/downloads/"
- maintainers = ['nithintsk', 'harisubramoni']
+ maintainers = ['natshineman', 'harisubramoni', 'ndcontini']
executables = ['^mpiname$']
# Prefer the latest stable release
+ version('2.3.6', sha256='b3a62f2a05407191b856485f99da05f5e769d6381cd63e2fcb83ee98fc46a249')
+ version('2.3.5', sha256='f9f467fec5fc981a89a7beee0374347b10c683023c76880f92a1a0ad4b961a8c')
version('2.3.4', sha256='7226a45c7c98333c8e5d2888119cce186199b430c13b7b1dca1769909e68ea7a')
version('2.3.3', sha256='41d3261be57e5bc8aabf4e32981543c015c5443ff032a26f18205985e18c2b73')
version('2.3.2', sha256='30cc0d7bcaa075d204692f76bca4d65a539e0f661c7460ffa9f835d6249e1ebf')
@@ -83,7 +85,12 @@ class Mvapich2(AutotoolsPackage):
variant(
'fabrics',
- description='The fabric enabled for this build',
+ description='Select the fabric to be enabled for this build.'
+ 'If you have verbs (either from OFED or MOFED), PSM or PSM2 '
+ 'installed on the system already, you may need to setup external '
+ 'packages in the package.yaml file for rdma-core, psm or opa-psm2. '
+ 'This is recommended to avoid unexpected runtime failures. For '
+ 'more info, visit the homepage url.',
default='mrail',
values=(
'psm', 'psm2', 'sock', 'nemesisib', 'nemesis', 'mrail',
diff --git a/var/spack/repos/builtin/packages/mvapich2x/package.py b/var/spack/repos/builtin/packages/mvapich2x/package.py
index 01f82c057d..3a75e3876e 100755
--- a/var/spack/repos/builtin/packages/mvapich2x/package.py
+++ b/var/spack/repos/builtin/packages/mvapich2x/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,10 +18,10 @@ class Mvapich2x(AutotoolsPackage):
http://mvapich.cse.ohio-state.edu/download/mvapich/spack-mirror/mvapich2x/
"""
- homepage = "http://mvapich.cse.ohio-state.edu"
+ homepage = "https://mvapich.cse.ohio-state.edu"
url = "http://mvapich.cse.ohio-state.edu/download/mvapich/spack-mirror/mvapich2x/mvapich2x-2.3.tar.gz"
- maintainers = ['nithintsk', 'harisubramoni']
+ maintainers = ['natshineman', 'harisubramoni', 'ndcontini']
version('2.3', sha256='fc47070e2e9fac09b97022be2320200d732a0a4a820a2b51532b88f8ded14536', preferred=True)
version('2.3rc3', sha256='85a9f1ea1a837d487e356f021ef6f3a4661ad270a0c5f54777b362ee4d45166f')
diff --git a/var/spack/repos/builtin/packages/mxm/package.py b/var/spack/repos/builtin/packages/mxm/package.py
index ba8c0dfa1c..8fd002c45b 100644
--- a/var/spack/repos/builtin/packages/mxm/package.py
+++ b/var/spack/repos/builtin/packages/mxm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/mxml/package.py b/var/spack/repos/builtin/packages/mxml/package.py
index 4fa90802a6..2406642576 100644
--- a/var/spack/repos/builtin/packages/mxml/package.py
+++ b/var/spack/repos/builtin/packages/mxml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Mxml(AutotoolsPackage):
non-standard libraries.
"""
- homepage = "http://michaelrsweet.github.io/mxml/"
+ homepage = "https://michaelrsweet.github.io/mxml/"
url = "https://github.com/michaelrsweet/mxml/releases/download/release-2.10/mxml-2.10.tar.gz"
version('2.10', sha256='267ff58b64ddc767170d71dab0c729c06f45e1df9a9b6f75180b564f09767891')
diff --git a/var/spack/repos/builtin/packages/mxnet/cmake_cuda_flags.patch b/var/spack/repos/builtin/packages/mxnet/cmake_cuda_flags.patch
new file mode 100644
index 0000000000..8019f7d423
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mxnet/cmake_cuda_flags.patch
@@ -0,0 +1,14 @@
+https://github.com/apache/incubator-mxnet/pull/17645
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 437d01668..1049a53b2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -662,7 +662,7 @@ add_subdirectory("3rdparty/mshadow")
+
+ set(MXNET_INSTALL_TARGETS mxnet)
+ if(UNIX)
+- string(APPEND CMAKE_CUDA_FLAGS "${CUDA_ARCH_FLAGS_SPACES}")
++ string(APPEND CMAKE_CUDA_FLAGS " ${CUDA_ARCH_FLAGS_SPACES}")
+ # Create dummy file since we want an empty shared library before linking
+ set(DUMMY_SOURCE ${CMAKE_BINARY_DIR}/dummy.c)
+ file(WRITE ${DUMMY_SOURCE} "")
diff --git a/var/spack/repos/builtin/packages/mxnet/makefile.opencv.patch b/var/spack/repos/builtin/packages/mxnet/makefile.opencv.patch
deleted file mode 100644
index 45e04ea626..0000000000
--- a/var/spack/repos/builtin/packages/mxnet/makefile.opencv.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit 638527ffaa35ffb0bf88a32910b809df09432406
-Author: Toyohisa Kameyama <kameyama@riken.jp>
-Date: Mon May 18 11:58:00 2020 +0900
-
- Makefile bug fix for opencv4.
-
-diff --git a/Makefile b/Makefile
-index 51930c782..7f5d4da39 100644
---- a/Makefile
-+++ b/Makefile
-@@ -165,7 +165,23 @@ endif
- ifeq ($(USE_OPENCV), 1)
- CFLAGS += -DMXNET_USE_OPENCV=1
- ifneq ($(filter-out NONE, $(USE_OPENCV_INC_PATH)),)
-- CFLAGS += -I$(USE_OPENCV_INC_PATH)/include
-+ ifneq ($(wildcard $(USE_OPENCV_INC_PATH)/include/opencv4/opencv2/opencv*),)
-+ opencv_inc = -I$(USE_OPENCV_INC_PATH)/include/opencv4
-+ endif
-+ ifneq ($(wildcard $(USE_OPENCV_INC_PATH)/include/opencv2/opencv*),)
-+ opencv_inc = -I$(USE_OPENCV_INC_PATH)/include
-+ endif
-+ ifneq ($(wildcard $(USE_OPENCV_INC_PATH)/opencv4/opencv2/opencv*),)
-+ opencv_inc = -I$(USE_OPENCV_INC_PATH)/opencv4
-+ endif
-+ ifneq ($(wildcard $(USE_OPENCV_INC_PATH)/opencv2/opencv*),)
-+ opencv_inc = -I$(USE_OPENCV_INC_PATH)
-+ endif
-+ ifneq ($(filter-out NONE, $(opencv_inc)),)
-+ CFLAGS += $(opencv_inc)
-+ else
-+$(error Cannot determine OpenCV include path)
-+ endif
- ifeq ($(filter-out NONE, $(USE_OPENCV_LIB_PATH)),)
- $(error Please add the path of OpenCV shared library path into `USE_OPENCV_LIB_PATH`, when `USE_OPENCV_INC_PATH` is not NONE)
- endif
diff --git a/var/spack/repos/builtin/packages/mxnet/makefile.patch b/var/spack/repos/builtin/packages/mxnet/makefile.patch
deleted file mode 100644
index ceebe21447..0000000000
--- a/var/spack/repos/builtin/packages/mxnet/makefile.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 22b64127d7acc9c255b007e120e2a721f4e136d2 Mon Sep 17 00:00:00 2001
-From: Jianwen WEI <weijianwen@gmail.com>
-Date: Fri, 18 Aug 2017 23:32:16 +0800
-Subject: [PATCH] Enable customize CUB MSHADOW PSLITE CUDA paths.
-
----
- Makefile | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index c71cb13..a53d072 100644
---- a/Makefile
-+++ b/Makefile
-@@ -14,6 +14,19 @@ ifndef DMLC_CORE
- DMLC_CORE = $(ROOTDIR)/dmlc-core
- endif
-
-+ifndef MSHADOW_PATH
-+ MSHADOW_PATH = $(ROOTDIR)/mshadow
-+endif
-+ifneq ("$(wildcard $(MSHADOW_PATH)/include/mshadow/base.h)","")
-+MSHADOW_INC = $(MSHADOW_PATH)/include
-+else
-+MSHADOW_INC = $(MSHADOW_PATH)
-+endif
-+
-+ifndef PS_PATH
-+ PS_PATH = $(ROOTDIR)/ps-lite
-+endif
-+
- ifndef NNVM_PATH
- NNVM_PATH = $(ROOTDIR)/nnvm
- endif
-@@ -32,7 +45,7 @@ ifeq ($(USE_MKL2017), 1)
- export USE_MKLML = $(lastword $(RETURN_STRING))
- endif
-
--include mshadow/make/mshadow.mk
-+include $(MSHADOW_PATH)/make/mshadow.mk
- include $(DMLC_CORE)/make/dmlc.mk
-
- # all tge possible warning tread
-@@ -49,7 +62,7 @@ ifeq ($(DEBUG), 1)
- else
- CFLAGS += -O3 -DNDEBUG=1
- endif
--CFLAGS += -I$(ROOTDIR)/mshadow/ -I$(ROOTDIR)/dmlc-core/include -fPIC -I$(NNVM_PATH)/include -Iinclude $(MSHADOW_CFLAGS)
-+CFLAGS += -I$(MSHADOW_INC) -I$(DMLC_CORE)/include -fPIC -I$(NNVM_PATH)/include -Iinclude $(MSHADOW_CFLAGS)
- LDFLAGS = -pthread $(MSHADOW_LDFLAGS) $(DMLC_LDFLAGS)
- ifeq ($(DEBUG), 1)
- NVCCFLAGS = -std=c++11 -Xcompiler -D_FORCE_INLINES -g -G -O0 -ccbin $(CXX) $(MSHADOW_NVCCFLAGS)
-@@ -125,8 +138,11 @@ ifneq ($(USE_CUDA_PATH), NONE)
- NVCC=$(USE_CUDA_PATH)/bin/nvcc
- endif
-
-+ifndef CUB_INCLUDE
-+ CUB_PATH = $(ROOTDIR)/cub
-+endif
-+
- # ps-lite
--PS_PATH=$(ROOTDIR)/ps-lite
- DEPS_PATH=$(shell pwd)/deps
- include $(PS_PATH)/make/ps.mk
- ifeq ($(USE_DIST_KVSTORE), 1)
-@@ -181,11 +197,11 @@ else
- endif
-
- # all dep
--LIB_DEP += $(DMLC_CORE)/libdmlc.a $(NNVM_PATH)/lib/libnnvm.a
-+LIB_DEP += $(DMLC_CORE)/lib/libdmlc.a $(NNVM_PATH)/lib/libnnvm.a
- ALL_DEP = $(OBJ) $(EXTRA_OBJ) $(PLUGIN_OBJ) $(LIB_DEP)
-
- ifeq ($(USE_CUDA), 1)
-- CFLAGS += -I$(ROOTDIR)/cub
-+ CFLAGS += -I$(CUB_INCLUDE) -I$(USE_CUDA_PATH)/include -I$(CUDNN_PATH)/include
- ALL_DEP += $(CUOBJ) $(EXTRA_CUOBJ) $(PLUGIN_CUOBJ)
- LDFLAGS += -lcuda -lcufft
- SCALA_PKG_PROFILE := $(SCALA_PKG_PROFILE)-gpu
---
-1.8.3.1
-
diff --git a/var/spack/repos/builtin/packages/mxnet/openblas-1.6.0.patch b/var/spack/repos/builtin/packages/mxnet/openblas-1.6.0.patch
new file mode 100644
index 0000000000..157b857c81
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mxnet/openblas-1.6.0.patch
@@ -0,0 +1,14 @@
+https://github.com/apache/incubator-mxnet/pull/19174
+--- a/CMakeLists.txt 2020-01-30 17:45:22.000000000 -0600
++++ b/CMakeLists.txt 2021-02-03 11:11:30.000000000 -0600
+@@ -446,7 +446,9 @@
+ if(USE_LAPACK)
+ message("USE_LAPACK is ON")
+ add_definitions(-DMXNET_USE_LAPACK=1)
+- if (NOT MSVC)
++ # BLAS=open case is handled in ChooseBlas.cmake
++ if(NOT MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Distribution"
++ AND NOT BLAS STREQUAL "Open" AND NOT BLAS STREQUAL "open")
+ list(APPEND mxnet_LINKER_LIBS lapack)
+ endif()
+ endif()
diff --git a/var/spack/repos/builtin/packages/mxnet/openblas-1.7.0.patch b/var/spack/repos/builtin/packages/mxnet/openblas-1.7.0.patch
new file mode 100644
index 0000000000..e143671a08
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mxnet/openblas-1.7.0.patch
@@ -0,0 +1,16 @@
+https://github.com/apache/incubator-mxnet/pull/19174
+--- a/CMakeLists.txt 2020-07-16 00:32:00.000000000 -0500
++++ b/CMakeLists.txt 2021-02-02 15:30:13.000000000 -0600
+@@ -446,9 +446,9 @@
+ if(USE_LAPACK)
+ message("USE_LAPACK is ON")
+ add_definitions(-DMXNET_USE_LAPACK=1)
+- # In the CMAKE_BUILD_TYPE="Distribution" case, we link against Blas libraries
+- # that already provide lapack symbols. Thus -llapack would be wrong.
+- if (NOT MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Distribution")
++ # BLAS=open case is handled in ChooseBlas.cmake
++ if(NOT MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Distribution"
++ AND NOT BLAS STREQUAL "Open" AND NOT BLAS STREQUAL "open")
+ list(APPEND mxnet_LINKER_LIBS lapack)
+ endif()
+ endif()
diff --git a/var/spack/repos/builtin/packages/mxnet/package.py b/var/spack/repos/builtin/packages/mxnet/package.py
index 8ef5035c07..46eaf8235e 100644
--- a/var/spack/repos/builtin/packages/mxnet/package.py
+++ b/var/spack/repos/builtin/packages/mxnet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,120 +6,149 @@
from spack import *
-class Mxnet(MakefilePackage):
+class Mxnet(CMakePackage, CudaPackage):
"""MXNet is a deep learning framework
designed for both efficiency and flexibility."""
- homepage = "http://mxnet.io"
- url = "https://github.com/apache/incubator-mxnet/releases/download/1.3.0/apache-mxnet-src-1.3.0-incubating.tar.gz"
+ homepage = "https://mxnet.apache.org"
+ url = "https://archive.apache.org/dist/incubator/mxnet/1.7.0/apache-mxnet-src-1.7.0-incubating.tar.gz"
+ list_url = "https://mxnet.apache.org/get_started/download"
+ git = "https://github.com/apache/incubator-mxnet.git"
maintainers = ['adamjstewart']
-
+ import_modules = [
+ 'mxnet', 'mxnet.numpy_extension', 'mxnet.optimizer', 'mxnet.module',
+ 'mxnet.io', 'mxnet.cython', 'mxnet.ndarray', 'mxnet.gluon',
+ 'mxnet.symbol', 'mxnet._cy3', 'mxnet.contrib', 'mxnet.numpy',
+ 'mxnet._ffi', 'mxnet.image', 'mxnet.kvstore', 'mxnet.notebook',
+ 'mxnet._ctypes', 'mxnet.rnn', 'mxnet.ndarray.numpy_extension',
+ 'mxnet.ndarray.numpy', 'mxnet.gluon.nn', 'mxnet.gluon.model_zoo',
+ 'mxnet.gluon.contrib', 'mxnet.gluon.data', 'mxnet.gluon.rnn',
+ 'mxnet.gluon.model_zoo.vision', 'mxnet.gluon.contrib.nn',
+ 'mxnet.gluon.contrib.estimator', 'mxnet.gluon.contrib.cnn',
+ 'mxnet.gluon.contrib.data', 'mxnet.gluon.contrib.rnn',
+ 'mxnet.gluon.data.vision', 'mxnet.symbol.numpy_extension',
+ 'mxnet.symbol.numpy', 'mxnet.contrib.onnx',
+ 'mxnet.contrib.svrg_optimization', 'mxnet.contrib.amp',
+ 'mxnet.contrib.text', 'mxnet.contrib.onnx.mx2onnx',
+ 'mxnet.contrib.onnx.onnx2mx', 'mxnet.contrib.amp.lists',
+ 'mxnet._ffi._cy3', 'mxnet._ffi._ctypes'
+ ]
+
+ version('master', branch='master', submodules=True)
+ version('1.master', branch='v1.x', submodules=True)
+ version('1.8.0', sha256='95aff985895aba409c08d5514510ae38b88490cfb6281ab3a5ff0f5826c8db54')
+ version('1.7.0', sha256='1d20c9be7d16ccb4e830e9ee3406796efaf96b0d93414d676337b64bc59ced18')
version('1.6.0', sha256='01eb06069c90f33469c7354946261b0a94824bbaf819fd5d5a7318e8ee596def')
- version('1.3.0', sha256='c00d6fbb2947144ce36c835308e603f002c1eb90a9f4c5a62f4d398154eed4d2')
-
- variant('cuda', default=False, description='Enable CUDA support')
+ version('1.3.0', sha256='c00d6fbb2947144ce36c835308e603f002c1eb90a9f4c5a62f4d398154eed4d2', deprecated=True)
+
+ variant('build_type', default='Distribution',
+ description='CMake build type',
+ values=('Distribution', 'Debug', 'Release',
+ 'RelWithDebInfo', 'MinSizeRel'))
+ variant('cuda', default=True, description='Enable CUDA support')
+ variant('cudnn', default=True, description='Build with cudnn support')
+ variant('nccl', default=False, description='Use NVidia NCCL with CUDA')
variant('opencv', default=True, description='Enable OpenCV support')
variant('openmp', default=False, description='Enable OpenMP support')
- variant('profiler', default=False, description='Enable Profiler (for verification and debug only).')
+ variant('lapack', default=True, description='Build with lapack support')
+ variant('mkldnn', default=False, description='Build with MKL-DNN support')
variant('python', default=True, description='Install python bindings')
- depends_on('dmlc-core@20170508')
- depends_on('dmlc-core+openmp', when='+openmp')
- depends_on('dmlc-core~openmp', when='~openmp')
- depends_on('mshadow@20170721')
- depends_on('ps-lite@20170328')
- depends_on('nnvm~shared@20170418')
+ depends_on('cmake@3.13:', type='build')
+ depends_on('ninja', type='build')
+ depends_on('pkgconfig', when='@1.6.0', type='build')
depends_on('blas')
- depends_on('cudnn', when='+cuda')
- depends_on('cudnn', when='+cuda')
- depends_on('cub', when='+cuda')
- depends_on('opencv+core+imgproc+highgui+jpeg+png+tiff~eigen~ipp@3.0:3.4.99', when='@1.3.0 +opencv')
- depends_on('opencv+core+imgproc+highgui+jpeg+png+tiff~eigen~ipp@3.0:', when='+opencv')
-
- # python extensions
- depends_on('python@2.7:', type=('build', 'run'), when='+python')
- depends_on('py-setuptools', type='build', when='+python')
- depends_on('py-numpy@:1.15.0', type=('build', 'run'), when='@1.3.0 +python')
- depends_on('py-numpy@1.16:', type=('build', 'run'), when='@1.6.0 +python')
+ depends_on('cuda@:10.2.999', when='@:1.8.0 +cuda')
+ depends_on('cuda@:11.3', when='@2.0.0: +cuda')
+ depends_on('cudnn', when='+cudnn')
+ depends_on('nccl', when='+nccl')
+ depends_on('opencv+core+highgui+imgproc+imgcodecs', when='+opencv')
+ depends_on('lapack', when='+lapack')
+ depends_on('onednn', when='+mkldnn')
+
+ # python/setup.py
extends('python', when='+python')
-
- patch('makefile.patch', when='@0.10:0.11')
- patch('makefile.opencv.patch', when='@1.6.0')
+ depends_on('python@2.7:2.8,3.4:', when='@:1.8.0+python', type=('build', 'run'))
+ depends_on('python@3.6:', when='@2.0.0:+python', type=('build', 'run'))
+ depends_on('py-contextvars', when='@2.0.0:+python ^python@3.6.0:3.6.999', type=('build', 'run'))
+ depends_on('py-setuptools', when='+python', type='build')
+ depends_on('py-cython', when='+python', type='build')
+ depends_on('py-numpy@1.17:', when='@2.0.0:+python', type=('build', 'run'))
+ depends_on('py-numpy@1.16.1:1.999', when='@1.6:1.8.0+python', type=('build', 'run'))
+ depends_on('py-numpy@1.8.2:1.15.0', when='@1.3.0+python', type=('build', 'run'))
+ depends_on('py-requests@2.20.0:2.999', when='@1.6:+python', type=('build', 'run'))
+ depends_on('py-requests@2.18.4:2.18.999', when='@1.3.0+python', type=('build', 'run'))
+ depends_on('py-graphviz@0.8.1:0.8.999', when='+python', type=('build', 'run'))
+
+ conflicts('+cudnn', when='~cuda')
+ conflicts('+nccl', when='~cuda')
+
+ patch('openblas-1.7.0.patch', when='@1.7.0:1.master')
+ patch('openblas-1.6.0.patch', when='@1.6.0')
+ patch('cmake_cuda_flags.patch', when='@1.6:1.7')
patch('parallell_shuffle.patch', when='@1.6.0')
- def build(self, spec, prefix):
- # copy template configuration file
- copy('make/config.mk', 'config.mk')
+ # python/setup.py assumes libs can be found in build directory
+ build_directory = 'build'
+ generator = 'Ninja'
- # remove compiler overrides
- filter_file('export CC = gcc', '', 'config.mk', string=True)
- filter_file('export CXX = g++', '', 'config.mk', string=True)
+ def setup_run_environment(self, env):
+ env.set('MXNET_LIBRARY_PATH', self.spec['mxnet'].libs[0])
- # add blas prefix to include paths
- filter_file(
- '-I$(NNVM_PATH)/include',
- '-I$(NNVM_PATH)/include -I%s/include' % spec['blas'].prefix,
- 'Makefile', string=True
- )
-
- # mxnet comes with its own version of nnvm and dmlc.
- # building it will fail if we use the spack paths
+ if self.spec.satisfies('+nccl ^nccl@2.1:'):
+ env.set('NCCL_LAUNCH_MODE', 'PARALLEL')
+ def cmake_args(self):
+ # https://mxnet.apache.org/get_started/build_from_source
args = [
- 'CC=%s' % self.compiler.cc,
- 'CXX=%s' % self.compiler.cxx,
- 'MSHADOW_PATH=%s' % spec['mshadow'].prefix,
- 'PS_PATH=%s' % spec['ps-lite'].prefix,
- 'USE_OPENMP=%s' % ('1' if '+openmp' in spec else '0'),
- 'USE_CUDA=%s' % ('1' if '+cuda' in spec else '0'),
- 'USE_CUDNN=%s' % ('1' if '+cuda' in spec else '0'),
- 'USE_OPENCV=%s' % ('1' if '+opencv' in spec else '0'),
- 'USE_PROFILER=%s' % ('1' if '+profiler' in spec else '0'),
+ self.define_from_variant('USE_CUDA', 'cuda'),
+ self.define_from_variant('USE_CUDNN', 'cudnn'),
+ self.define_from_variant('USE_OPENCV', 'opencv'),
+ self.define_from_variant('USE_OPENMP', 'openmp'),
+ self.define_from_variant('USE_LAPACK', 'lapack'),
]
-
- if '+opencv' in spec:
- if spec.satisfies('@1.3.0'):
- filter_file(
- '$(shell pkg-config --cflags opencv)',
- spec['opencv'].headers.include_flags,
- 'Makefile', string=True
- )
- filter_file(
- '$(filter-out -lopencv_ts, '
- '$(shell pkg-config --libs opencv))',
- spec['opencv'].libs.link_flags,
- 'Makefile', string=True
- )
- else:
- args.extend(
- ['USE_OPENCV_INC_PATH=' +
- spec['opencv'].headers.directories[0],
- 'USE_OPENCV_LIB_PATH=' +
- spec['opencv'].libs.directories[0]]
- )
-
- if 'openblas' in spec:
- args.extend(['USE_BLAS=openblas'])
- elif 'atlas' in spec or 'cblas' in spec:
- args.extend(['USE_BLAS=atlas'])
- else:
- args.extend(['USE_BLAS=blas'])
-
- if '+cuda' in spec:
- args.extend(['USE_CUDA_PATH=%s' % spec['cuda'].prefix,
- 'CUDNN_PATH=%s' % spec['cudnn'].prefix,
- 'CUB_INCLUDE=%s' % spec['cub'].prefix.include])
-
- make(*args)
-
- def install(self, spec, prefix):
- # mxnet is just a shared library -- no need to install a bin tree
-
- install_tree('include', prefix.include)
- install_tree('lib', prefix.lib)
-
- # install python bindings
- if '+python' in spec:
- python = which('python')
- python('python/setup.py', 'install', '--prefix={0}'.format(prefix))
+ if self.spec.satisfies('@:1.8.0'):
+ args.append(self.define_from_variant('USE_MKLDNN', 'mkldnn'))
+ if self.spec.satisfies('@2.0.0:'):
+ args.append(self.define_from_variant('USE_ONEDNN', 'mkldnn'))
+ args.append(self.define('USE_CUTENSOR', False))
+
+ if '+cuda' in self.spec:
+ if 'cuda_arch=none' not in self.spec:
+ cuda_arch = ';'.join('{0:.1f}'.format(float(i) / 10.0) for i
+ in self.spec.variants['cuda_arch'].value)
+ args.append(self.define('MXNET_CUDA_ARCH', cuda_arch))
+
+ args.append(self.define_from_variant('USE_NCCL', 'nccl'))
+
+ # Workaround for bug in GCC 8+ and CUDA 10 on PowerPC
+ args.append(self.define(
+ 'CMAKE_CUDA_FLAGS', self.compiler.cxx11_flag))
+
+ return args
+
+ @run_after('build')
+ def build_python(self):
+ if '+python' in self.spec:
+ with working_dir('python'):
+ setup_py('build')
+
+ @run_after('install')
+ def install_python(self):
+ if '+python' in self.spec:
+ with working_dir('python'):
+ setup_py('install', '--prefix={0}'.format(self.prefix),
+ '--single-version-externally-managed', '--root=/')
+
+ def test(self):
+ """Attempts to import modules of the installed package."""
+
+ if '+python' in self.spec:
+ # Make sure we are importing the installed modules,
+ # not the ones in the source directory
+ for module in self.import_modules:
+ self.run_test(self.spec['python'].command.path,
+ ['-c', 'import {0}'.format(module)],
+ purpose='checking import of {0}'.format(module),
+ work_dir='spack-test')
diff --git a/var/spack/repos/builtin/packages/mysql/package.py b/var/spack/repos/builtin/packages/mysql/package.py
index c84c311b56..945b191c70 100644
--- a/var/spack/repos/builtin/packages/mysql/package.py
+++ b/var/spack/repos/builtin/packages/mysql/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 tempfile
+from spack import *
+
class Mysql(CMakePackage):
"""MySQL is an open source relational database management system."""
@@ -81,7 +82,7 @@ class Mysql(CMakePackage):
# 8.0.19+
depends_on('boost@1.70.0 cxxstd=98', type='build', when='@8.0.19: cxxstd=98')
depends_on('boost@1.70.0 cxxstd=11', type='build', when='@8.0.19: cxxstd=11')
- depends_on('boost@1.70.0 cxxstd=11', type='build', when='@8.0.19: cxxstd=14')
+ depends_on('boost@1.70.0 cxxstd=14', type='build', when='@8.0.19: cxxstd=14')
depends_on('boost@1.70.0 cxxstd=17', type='build', when='@8.0.19: cxxstd=17')
# 8.0.16--8.0.18
depends_on('boost@1.69.0 cxxstd=98', type='build', when='@8.0.16:8.0.18 cxxstd=98')
@@ -117,6 +118,7 @@ class Mysql(CMakePackage):
depends_on('perl', type=['build', 'test'], when='@:7.99.99')
depends_on('bison@2.1:', type='build')
depends_on('m4', type='build', when='@develop platform=solaris')
+ depends_on('cyrus-sasl', when='@:5.7.999')
patch('fix-no-server-5.5.patch', level=1, when='@5.5.0:5.5.999')
diff --git a/var/spack/repos/builtin/packages/mysqlpp/package.py b/var/spack/repos/builtin/packages/mysqlpp/package.py
new file mode 100644
index 0000000000..8547cc11de
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mysqlpp/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 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 Mysqlpp(AutotoolsPackage):
+ """MySQL++ is a C++ wrapper for MySQL and MariaDB C APIs. It is built on
+ the same principles as the Standard C++ Library to make dealing with the
+ database as easy as dealing with std containers. MySQL++ also provides
+ facilities that let you avoid the most repetitive sorts of SQL within your
+ own code, providing native C++ interfaces for these common tasks."""
+
+ homepage = "https://tangentsoft.com/mysqlpp/home"
+ url = "https://tangentsoft.com/mysqlpp/releases/mysql++-3.2.5.tar.gz"
+
+ version('3.2.5', sha256='839cfbf71d50a04057970b8c31f4609901f5d3936eaa86dab3ede4905c4db7a8')
+
+ depends_on('mysql-client')
+
+ def configure_args(self):
+ if '^mariadb-c-client' in self.spec:
+ args = [
+ '--with-mysql-include={0}'.format(
+ self.spec['mysql-client'].prefix.include.mariadb),
+ '--with-mysql-lib={0}'.format(
+ self.spec['mysql-client'].prefix.lib.mariadb),
+ ]
+ else:
+ args = [
+ '--with-mysql={0}'.format(self.spec['mysql-client'].prefix),
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/n2p2/interface-makefile.patch b/var/spack/repos/builtin/packages/n2p2/interface-makefile.patch
new file mode 100644
index 0000000000..f987c9cb54
--- /dev/null
+++ b/var/spack/repos/builtin/packages/n2p2/interface-makefile.patch
@@ -0,0 +1,18 @@
+--- a/src/interface/makefile
++++ b/src/interface/makefile
+@@ -45,10 +45,11 @@ lammps-nnp:
+ tar -xzf $(LAMMPS_VERSION).tar.gz && mv lammps-$(LAMMPS_VERSION) lammps-nnp
+ ln -s $(PROJECT_DIR)/../../ lammps-nnp/lib/nnp
+ cp -r ./LAMMPS/src/USER-NNP lammps-nnp/src/
+- sed -i "s/^CC .*$$/CC = $(PROJECT_MPICC)/" lammps-nnp/src/MAKE/Makefile.mpi
+- sed -i "s/^CCFLAGS .*$$/CCFLAGS = $(PROJECT_CFLAGS) $(PROJECT_CFLAGS_MPI)/" lammps-nnp/src/MAKE/Makefile.mpi
+- sed -i "s/^LINK .*$$/LINK = $(PROJECT_MPICC)/" lammps-nnp/src/MAKE/Makefile.mpi
+- sed -i "s/^LINKFLAGS .*$$/LINKFLAGS = $(PROJECT_CFLAGS) $(PROJECT_CFLAGS_MPI)/" lammps-nnp/src/MAKE/Makefile.mpi
++ sed -i "s/final(/final2(/g" lammps-nnp/src/hashlittle.cpp
++ sed -i "s|^CC .*$$|CC = $(PROJECT_MPICC)|" lammps-nnp/src/MAKE/Makefile.mpi
++ sed -i "s|^CCFLAGS .*$$|CCFLAGS = $(PROJECT_CFLAGS) $(PROJECT_CFLAGS_MPI)|" lammps-nnp/src/MAKE/Makefile.mpi
++ sed -i "s|^LINK .*$$|LINK = $(PROJECT_MPICC)|" lammps-nnp/src/MAKE/Makefile.mpi
++ sed -i "s|^LINKFLAGS .*$$|LINKFLAGS = $(PROJECT_CFLAGS) $(PROJECT_CFLAGS_MPI)|" lammps-nnp/src/MAKE/Makefile.mpi
+ if [ "$(MODE)" = "test" ]; then \
+ sed -i "/^CCFLAGS =/ s/$$/ $(PROJECT_DEBUG) $(PROJECT_TEST)/" lammps-nnp/src/MAKE/Makefile.mpi; \
+ sed -i "/^LINKFLAGS =/ s/$$/ $(PROJECT_DEBUG) $(PROJECT_TEST)/" lammps-nnp/src/MAKE/Makefile.mpi; \
diff --git a/var/spack/repos/builtin/packages/n2p2/interface-makefile211.patch b/var/spack/repos/builtin/packages/n2p2/interface-makefile211.patch
new file mode 100644
index 0000000000..e4317b3c12
--- /dev/null
+++ b/var/spack/repos/builtin/packages/n2p2/interface-makefile211.patch
@@ -0,0 +1,17 @@
+--- a/src/interface/makefile
++++ b/src/interface/makefile
+@@ -46,10 +46,10 @@ lammps-nnp:
+ tar -xzf $(LAMMPS_VERSION).tar.gz && mv lammps-$(LAMMPS_VERSION) lammps-nnp
+ ln -s $(PROJECT_DIR)/../../ lammps-nnp/lib/nnp
+ cp -r ./LAMMPS/src/USER-NNP lammps-nnp/src/
+- @sed -i.bak "s/^CC .*$$/CC = $(PROJECT_MPICC)/" lammps-nnp/src/MAKE/Makefile.mpi
+- @sed -i.bak "s/^CCFLAGS .*$$/CCFLAGS = $(PROJECT_CFLAGS) $(PROJECT_CFLAGS_MPI)/" lammps-nnp/src/MAKE/Makefile.mpi
+- @sed -i.bak "s/^LINK .*$$/LINK = $(PROJECT_MPICC)/" lammps-nnp/src/MAKE/Makefile.mpi
+- @sed -i.bak "s/^LINKFLAGS .*$$/LINKFLAGS = $(PROJECT_CFLAGS) $(PROJECT_CFLAGS_MPI)/" lammps-nnp/src/MAKE/Makefile.mpi
++ @sed -i.bak "s|^CC .*$$|CC = $(PROJECT_MPICC)|" lammps-nnp/src/MAKE/Makefile.mpi
++ @sed -i.bak "s|^CCFLAGS .*$$|CCFLAGS = $(PROJECT_CFLAGS) $(PROJECT_CFLAGS_MPI)|" lammps-nnp/src/MAKE/Makefile.mpi
++ @sed -i.bak "s|^LINK .*$$|LINK = $(PROJECT_MPICC)|" lammps-nnp/src/MAKE/Makefile.mpi
++ @sed -i.bak "s|^LINKFLAGS .*$$|LINKFLAGS = $(PROJECT_CFLAGS) $(PROJECT_CFLAGS_MPI)|" lammps-nnp/src/MAKE/Makefile.mpi
+ if [ "$(MODE)" = "test" ]; then \
+ sed -i.bak "/^CCFLAGS =/ s/$$/ $(LAMMPS_DEBUG) $(PROJECT_TEST)/" lammps-nnp/src/MAKE/Makefile.mpi; \
+ sed -i.bak "/^LINKFLAGS =/ s/$$/ $(LAMMPS_DEBUG) $(PROJECT_TEST)/" lammps-nnp/src/MAKE/Makefile.mpi; \
diff --git a/var/spack/repos/builtin/packages/n2p2/libnnp-makefile.patch b/var/spack/repos/builtin/packages/n2p2/libnnp-makefile.patch
new file mode 100644
index 0000000000..0405845a34
--- /dev/null
+++ b/var/spack/repos/builtin/packages/n2p2/libnnp-makefile.patch
@@ -0,0 +1,30 @@
+--- a/src/libnnp/makefile
++++ b/src/libnnp/makefile
+@@ -72,11 +72,11 @@ headers: version
+
+ version:
+ @$(eval GIT_VERSION = $(shell git describe --tags --always))
+- @sed -i.bak -E "s/(NNP_GIT_VERSION) .*/\1 \"$(GIT_VERSION)\"/" version.h
++ @sed -i.bak -E "s|(NNP_GIT_VERSION) .*|\1 \"$(GIT_VERSION)\"|" version.h
+ @$(eval GIT_REV = $(shell git rev-parse HEAD))
+- @sed -i.bak -E "s/(NNP_GIT_REV) .*/\1 \"$(GIT_REV)\"/" version.h
++ @sed -i.bak -E "s|(NNP_GIT_REV) .*|\1 \"$(GIT_REV)\"|" version.h
+ @$(eval GIT_BRANCH = $(shell git rev-parse --abbrev-ref HEAD))
+- @sed -i.bak -E "s/(NNP_GIT_BRANCH) .*/\1 \"$(GIT_BRANCH)\"/" version.h
++ @sed -i.bak -E "s|(NNP_GIT_BRANCH) .*|\1 \"$(GIT_BRANCH)\"|" version.h
+ @rm version.h.bak
+
+ $(LIB).so: CFLAGS+= -fPIC
+@@ -97,9 +97,9 @@ clean: clean-version clean-headers
+ $(RM) $(PROJECT_LIB)/$(LIB).so $(PROJECT_LIB)/$(LIB).a
+
+ clean-version:
+- @sed -i.bak -E "s/(NNP_GIT_VERSION) .*/\1 \"\"/" version.h
+- @sed -i.bak -E "s/(NNP_GIT_REV) .*/\1 \"\"/" version.h
+- @sed -i.bak -E "s/(NNP_GIT_BRANCH) .*/\1 \"\"/" version.h
++ @sed -i.bak -E "s|(NNP_GIT_VERSION) .*|\1 \"\"|" version.h
++ @sed -i.bak -E "s|(NNP_GIT_REV) .*|\1 \"\"|" version.h
++ @sed -i.bak -E "s|(NNP_GIT_BRANCH) .*|\1 \"\"|" version.h
+ @rm version.h.bak
+
+ clean-headers:
diff --git a/var/spack/repos/builtin/packages/n2p2/libnnp-makefile212.patch b/var/spack/repos/builtin/packages/n2p2/libnnp-makefile212.patch
new file mode 100644
index 0000000000..d48955d48f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/n2p2/libnnp-makefile212.patch
@@ -0,0 +1,30 @@
+--- a/src/libnnp/makefile
++++ b/src/libnnp/makefile
+@@ -72,11 +72,11 @@ headers: version
+
+ version:
+ @$(eval GIT_VERSION = $(shell git describe --tags --always))
+- @sed -i.bak -E "s/(N2P2_GIT_VERSION) .*/\1 \"$(GIT_VERSION)\"/" version.h
++ @sed -i.bak -E "s|(N2P2_GIT_VERSION) .*|\1 \"$(GIT_VERSION)\"|" version.h
+ @$(eval GIT_REV = $(shell git rev-parse HEAD))
+- @sed -i.bak -E "s/(N2P2_GIT_REV) .*/\1 \"$(GIT_REV)\"/" version.h
++ @sed -i.bak -E "s|(N2P2_GIT_REV) .*|\1 \"$(GIT_REV)\"|" version.h
+ @$(eval GIT_BRANCH = $(shell git rev-parse --abbrev-ref HEAD))
+- @sed -i.bak -E "s/(N2P2_GIT_BRANCH) .*/\1 \"$(GIT_BRANCH)\"/" version.h
++ @sed -i.bak -E "s|(N2P2_GIT_BRANCH) .*|\1 \"$(GIT_BRANCH)\"|" version.h
+ @rm version.h.bak
+
+ $(LIB).so: CFLAGS+= -fPIC
+@@ -97,9 +97,9 @@ clean: clean-version clean-headers
+ $(RM) $(PROJECT_LIB)/$(LIB).so $(PROJECT_LIB)/$(LIB).a
+
+ clean-version:
+- @sed -i.bak -E "s/(N2P2_GIT_VERSION) .*/\1 \"\"/" version.h
+- @sed -i.bak -E "s/(N2P2_GIT_REV) .*/\1 \"\"/" version.h
+- @sed -i.bak -E "s/(N2P2_GIT_BRANCH) .*/\1 \"\"/" version.h
++ @sed -i.bak -E "s|(N2P2_GIT_VERSION) .*|\1 \"\"|" version.h
++ @sed -i.bak -E "s|(N2P2_GIT_REV) .*|\1 \"\"|" version.h
++ @sed -i.bak -E "s|(N2P2_GIT_BRANCH) .*|\1 \"\"|" version.h
+ @rm version.h.bak
+
+ clean-headers:
diff --git a/var/spack/repos/builtin/packages/n2p2/nnp_test.h.patch b/var/spack/repos/builtin/packages/n2p2/nnp_test.h.patch
new file mode 100644
index 0000000000..d5296ba1e4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/n2p2/nnp_test.h.patch
@@ -0,0 +1,10 @@
+--- a/test/cpp/nnp_test.h
++++ b/test/cpp/nnp_test.h
+@@ -7,6 +7,7 @@
+ #include <boost/process.hpp>
+ #include <boost/filesystem.hpp>
+ #include <iostream>
++#include <boost/asio.hpp>
+ #include "fileHelpers.h"
+
+ namespace bdata = boost::unit_test::data;
diff --git a/var/spack/repos/builtin/packages/n2p2/package.py b/var/spack/repos/builtin/packages/n2p2/package.py
new file mode 100644
index 0000000000..6fb12e5880
--- /dev/null
+++ b/var/spack/repos/builtin/packages/n2p2/package.py
@@ -0,0 +1,143 @@
+# Copyright 2013-2021 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 N2p2(MakefilePackage):
+ """N2p2 (The neural network potential package) provides ready-to-use
+ software for high-dimensional neural network potentials
+ in computational physics and chemistry."""
+
+ homepage = "https://github.com/CompPhysVienna/n2p2"
+ url = "https://github.com/CompPhysVienna/n2p2/archive/v2.1.0.tar.gz"
+
+ version(
+ "2.1.4",
+ sha256="f1672c09af4ed16a7f396606977e4675a0fee98f04bfd9574907fba4b83a14ef",
+ )
+ version(
+ "2.1.1",
+ sha256="90fbc0756132984d0d7e6d92d2f53358c120e75f148910d90c027158163251b9",
+ )
+ version(
+ "2.1.0",
+ sha256="283c00e9a5b964f4c84a70c5f1cef7167e9b881080b50a221da08799e5ede400",
+ )
+
+ variant("doc", default=False, description="build documentation with Doxygen")
+
+ patch("interface-makefile.patch", when="@2.1.0")
+ patch("interface-makefile211.patch", when="@2.1.1:")
+ patch("libnnp-makefile.patch", when="@:2.1.1")
+ patch("libnnp-makefile212.patch", when="@2.1.2:")
+ patch("nnp_test.h.patch")
+
+ depends_on("mpi")
+ depends_on("blas")
+ depends_on("gsl", type=("build", "run", "link"))
+ depends_on("eigen", type=("build", "run", "link"))
+ depends_on("doxygen", type="build", when="+doc")
+ depends_on("texlive", type="build", when="+doc")
+ depends_on("py-cython", type=("build", "run"))
+ depends_on("py-breathe", type="build", when="+doc")
+ depends_on("py-sphinx", type="build", when="+doc")
+ depends_on("py-sphinx-rtd-theme", type="build", when="+doc")
+
+ depends_on("boost", type="link")
+ depends_on("lcov", type=("build", "run"))
+ depends_on("py-pytest", type=("build", "run"))
+ depends_on("py-pytest-cov", type="run")
+ depends_on("py-coverage@4.5.4", type="run")
+ depends_on("py-packaging", type="run")
+ depends_on("python", type=("build", "run"))
+
+ test_requires_compiler = True
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter(join_path("src", "makefile.gnu"))
+ blas_libs = self.spec["blas"].libs
+ makefile.filter("PROJECT_CC=.*", "PROJECT_CC={0}".format(spack_cxx))
+ makefile.filter(
+ "PROJECT_MPICC=.*", "PROJECT_MPICC={0}".format(self.spec["mpi"].mpicxx)
+ )
+ makefile.filter(
+ "PROJECT_CFLAGS=.*", "PROJECT_CFLAGS={0}".format(self.compiler.cxx11_flag)
+ )
+ makefile.filter(
+ "PROJECT_LDFLAGS_BLAS.*",
+ "PROJECT_LDFLAGS_BLAS={0} -lgsl -lgslcblas".format(blas_libs.ld_flags),
+ )
+
+ def build(self, spec, prefix):
+ with working_dir("src"):
+ make()
+ make("lammps-nnp")
+ make("pynnp")
+ if "+doc" in self.spec:
+ make("doc")
+
+ def install(self, spec, prefix):
+ install_tree("bin", prefix.bin)
+ if "+doc" in self.spec:
+ install_tree("doc", prefix.doc)
+ install_tree("examples", prefix.examples)
+ install_tree("include", prefix.include)
+ install_tree("lib", prefix.lib)
+ install_tree("tools", prefix.tools)
+
+ @run_after("install")
+ def setup_build_tests(self):
+ """Copy the build test files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources(".")
+
+ def test(self):
+ with working_dir(join_path(self.install_test_root, "test"), create=False):
+ make("clean")
+
+ with working_dir(join_path(self.install_test_root, "src"), create=False):
+ make("clean")
+ make(
+ "MODE=test",
+ "PROJECT_GSL={0}".format(self.spec["gsl"].prefix.include),
+ "PROJECT_EIGEN={0}".format(self.spec["eigen"].prefix.include.eigen3),
+ )
+ make(
+ "MODE=test",
+ "lammps-nnp",
+ "PROJECT_GSL={0}".format(self.spec["gsl"].prefix.include),
+ "PROJECT_EIGEN={0}".format(self.spec["eigen"].prefix.include.eigen3),
+ )
+ make("pynnp", "MODE=test")
+
+ with working_dir(join_path(self.install_test_root, "test"), create=False):
+ if self.spec.satisfies("%fj"):
+ f = FileFilter(join_path("cpp", "nnp_test.h"))
+ f.filter(
+ "(example.co",
+ '("{0} -n 1 " + example.co'.format(
+ self.spec["mpi"].prefix.bin.mpirun
+ ),
+ string=True,
+ )
+
+ f = FileFilter(join_path("cpp", "makefile"))
+ f.filter(
+ "log_level=.*", "log_level=$(LOG_LEVEL) 2>&1 | tee -a ../output_cpp.txt"
+ )
+
+ f = FileFilter(join_path("python", "makefile"))
+ f.filter("term\\s-v.*", "term -v | tee -a ../output_python.txt")
+
+ make("cpp", parallel=False)
+ make("python", parallel=False)
+
+ test_dir = self.test_suite.current_test_data_dir
+ expected_file = join_path(
+ test_dir, "expected-result-{0}.txt".format(self.version)
+ )
+ check_n2p2 = Executable(join_path(test_dir, "result-check.sh"))
+ check_n2p2("./output_cpp.txt", "./output_python.txt", expected_file)
diff --git a/var/spack/repos/builtin/packages/n2p2/test/expected-result-2.1.0.txt b/var/spack/repos/builtin/packages/n2p2/test/expected-result-2.1.0.txt
new file mode 100644
index 0000000000..8fabaf2abd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/n2p2/test/expected-result-2.1.0.txt
@@ -0,0 +1,271 @@
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+test_Atom.py::Test___cinit__::test_skeleton_initialization PASSED [ 0%]
+test_Atom.py::Test___cinit__::test_empty_initialization PASSED [ 0%]
+test_Atom.py::Test_hasNeighborList::test_correct_type PASSED [ 1%]
+test_Atom.py::Test_hasNeighborList::test_set_and_get PASSED [ 1%]
+test_Atom.py::Test_hasSymmetryFunctions::test_correct_type PASSED [ 1%]
+test_Atom.py::Test_hasSymmetryFunctions::test_set_and_get PASSED [ 2%]
+test_Atom.py::Test_hasSymmetryFunctionDerivatives::test_correct_type PASSED [ 2%]
+test_Atom.py::Test_hasSymmetryFunctionDerivatives::test_set_and_get PASSED [ 3%]
+test_Atom.py::Test_index::test_correct_type PASSED [ 3%]
+test_Atom.py::Test_index::test_set_and_get PASSED [ 3%]
+test_Atom.py::Test_indexStructure::test_correct_type PASSED [ 4%]
+test_Atom.py::Test_indexStructure::test_set_and_get PASSED [ 4%]
+test_Atom.py::Test_tag::test_correct_type PASSED [ 5%]
+test_Atom.py::Test_tag::test_set_and_get PASSED [ 5%]
+test_Atom.py::Test_element::test_correct_type PASSED [ 5%]
+test_Atom.py::Test_element::test_set_and_get PASSED [ 6%]
+test_Atom.py::Test_numNeighbors::test_correct_type PASSED [ 6%]
+test_Atom.py::Test_numNeighbors::test_set_and_get PASSED [ 7%]
+test_Atom.py::Test_numNeighborsUnique::test_correct_type PASSED [ 7%]
+test_Atom.py::Test_numNeighborsUnique::test_set_and_get PASSED [ 7%]
+test_Atom.py::Test_numSymmetryFunctions::test_correct_type PASSED [ 8%]
+test_Atom.py::Test_numSymmetryFunctions::test_set_and_get PASSED [ 8%]
+test_Atom.py::Test_energy::test_correct_type PASSED [ 9%]
+test_Atom.py::Test_energy::test_set_and_get PASSED [ 9%]
+test_Atom.py::Test_charge::test_correct_type PASSED [ 9%]
+test_Atom.py::Test_charge::test_set_and_get PASSED [ 10%]
+test_Atom.py::Test_r::test_correct_type PASSED [ 10%]
+test_Atom.py::Test_r::test_set_and_get PASSED [ 10%]
+test_Atom.py::Test_f::test_correct_type PASSED [ 11%]
+test_Atom.py::Test_f::test_set_and_get PASSED [ 11%]
+test_Atom.py::Test_fRef::test_correct_type PASSED [ 12%]
+test_Atom.py::Test_fRef::test_set_and_get PASSED [ 12%]
+test_Atom.py::Test_neighborsUnique::test_correct_type PASSED [ 12%]
+test_Atom.py::Test_numNeighborsPerElement::test_correct_type PASSED [ 13%]
+test_Atom.py::Test_G::test_correct_type PASSED [ 13%]
+test_Atom.py::Test_dEdG::test_correct_type PASSED [ 14%]
+test_Atom.py::Test_dGdr::test_correct_type PASSED [ 14%]
+test_Atom.py::Test_neighbors::test_correct_type PASSED [ 14%]
+test_Atom.py::Test_info::test_return_list PASSED [ 15%]
+test_CutoffFunction.py::Test___cinit__::test_skeleton_initialization PASSED [ 15%]
+test_CutoffFunction.py::Test___cinit__::test_empty_initialization PASSED [ 16%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[0] PASSED [ 16%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[1] PASSED [ 16%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[2] PASSED [ 17%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[3] PASSED [ 17%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[4] PASSED [ 18%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[5] PASSED [ 18%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[6] PASSED [ 18%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[7] PASSED [ 19%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[8] PASSED [ 19%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_unknown_type PASSED [ 20%]
+test_CutoffFunction.py::Test_setCutoffRadius::test_set_float_value PASSED [ 20%]
+test_CutoffFunction.py::Test_setCutoffRadius::test_set_wrong_argument PASSED [ 20%]
+test_CutoffFunction.py::Test_setCutoffParameter::test_set_float_value PASSED [ 21%]
+test_CutoffFunction.py::Test_setCutoffParameter::test_set_wrong_float_value PASSED [ 21%]
+test_CutoffFunction.py::Test_setCutoffParameter::test_set_wrong_argument PASSED [ 21%]
+test_CutoffFunction.py::Test_f::test_boundaries[0] PASSED [ 22%]
+test_CutoffFunction.py::Test_f::test_boundaries[1] PASSED [ 22%]
+test_CutoffFunction.py::Test_f::test_boundaries[2] PASSED [ 23%]
+test_CutoffFunction.py::Test_f::test_boundaries[3] PASSED [ 23%]
+test_CutoffFunction.py::Test_f::test_boundaries[4] PASSED [ 23%]
+test_CutoffFunction.py::Test_f::test_boundaries[5] PASSED [ 24%]
+test_CutoffFunction.py::Test_f::test_boundaries[6] PASSED [ 24%]
+test_CutoffFunction.py::Test_f::test_boundaries[7] PASSED [ 25%]
+test_CutoffFunction.py::Test_f::test_boundaries[8] PASSED [ 25%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[0-1.0] PASSED [ 25%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[1-0.1464466094067261] PASSED [ 26%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[2-0.00768915371206977] PASSED [ 26%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[3-0.01740635089776903] PASSED [ 27%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[4-0.27645304662956416] PASSED [ 27%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[5-0.1562499999999999] PASSED [ 27%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[6-0.10351562500000003] PASSED [ 28%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[7-0.07055664062499914] PASSED [ 28%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[8-0.04892730712890944] PASSED [ 29%]
+test_CutoffFunction.py::Test_f::test_nonfloat_argument PASSED [ 29%]
+test_CutoffFunction.py::Test_df::test_boundaries[0] PASSED [ 29%]
+test_CutoffFunction.py::Test_df::test_boundaries[1] PASSED [ 30%]
+test_CutoffFunction.py::Test_df::test_boundaries[2] PASSED [ 30%]
+test_CutoffFunction.py::Test_df::test_boundaries[3] PASSED [ 30%]
+test_CutoffFunction.py::Test_df::test_boundaries[4] PASSED [ 31%]
+test_CutoffFunction.py::Test_df::test_boundaries[5] PASSED [ 31%]
+test_CutoffFunction.py::Test_df::test_boundaries[6] PASSED [ 32%]
+test_CutoffFunction.py::Test_df::test_boundaries[7] PASSED [ 32%]
+test_CutoffFunction.py::Test_df::test_boundaries[8] PASSED [ 32%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[0-0.0] PASSED [ 33%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[1--0.46280030605816297] PASSED [ 33%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[2--0.0374393678577051] PASSED [ 34%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[3--0.08475351107871792] PASSED [ 34%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[4--0.9027038257291898] PASSED [ 34%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[5--0.4687499999999999] PASSED [ 35%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[6--0.43945312499999917] PASSED [ 35%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[7--0.38452148437500033] PASSED [ 36%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[8--0.32444000244141674] PASSED [ 36%]
+test_CutoffFunction.py::Test_df::test_nonfloat_argument PASSED [ 36%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[0] PASSED [ 37%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[1] PASSED [ 37%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[2] PASSED [ 38%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[3] PASSED [ 38%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[4] PASSED [ 38%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[5] PASSED [ 39%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[6] PASSED [ 39%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[7] PASSED [ 40%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[8] PASSED [ 40%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[0-1.0-0.0] PASSED [ 40%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[1-0.1464466094067261--0.46280030605816297] PASSED [ 41%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[2-0.00768915371206977--0.0374393678577051] PASSED [ 41%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[3-0.01740635089776903--0.08475351107871792] PASSED [ 41%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[4-0.27645304662956416--0.9027038257291898] PASSED [ 42%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[5-0.1562499999999999--0.4687499999999999] PASSED [ 42%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[6-0.10351562500000003--0.43945312499999917] PASSED [ 43%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[7-0.07055664062499914--0.38452148437500033] PASSED [ 43%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[8-0.04892730712890944--0.32444000244141674] PASSED [ 43%]
+test_CutoffFunction.py::Test_fdf::test_nonfloat_argument PASSED [ 44%]
+test_ElementMap.py::Test___cinit__::test_skeleton_initialization PASSED [ 44%]
+test_ElementMap.py::Test___cinit__::test_empty_initialization PASSED [ 45%]
+test_ElementMap.py::Test_registerElements::test_nonstring_argument PASSED [ 45%]
+test_ElementMap.py::Test_registerElements::test_correct_elements_registered PASSED [ 45%]
+test_ElementMap.py::Test___getitem__::test_correct_element_index PASSED [ 46%]
+test_ElementMap.py::Test___getitem__::test_correct_element_symbol PASSED [ 46%]
+test_ElementMap.py::Test___getitem__::test_out_of_bounds_index PASSED [ 47%]
+test_ElementMap.py::Test___getitem__::test_unknown_symbol PASSED [ 47%]
+test_ElementMap.py::Test___getitem__::test_wrong_argument_type PASSED [ 47%]
+test_ElementMap.py::Test_size::test_correct_empty_size_returned PASSED [ 48%]
+test_ElementMap.py::Test_size::test_correct_size_returned PASSED [ 48%]
+test_ElementMap.py::Test_index::test_correct_element_index PASSED [ 49%]
+test_ElementMap.py::Test_index::test_wrong_argument_type PASSED [ 49%]
+test_ElementMap.py::Test_symbol::test_correct_element_index PASSED [ 49%]
+test_ElementMap.py::Test_symbol::test_wrong_argument_type PASSED [ 50%]
+test_ElementMap.py::Test_deregisterElements::test_empty_map PASSED [ 50%]
+test_ElementMap.py::Test_symbolFromAtomicNumber::test_some_elements PASSED [ 50%]
+test_ElementMap.py::Test_info::test_return_list PASSED [ 51%]
+test_Log.py::Test___cinit__::test_skeleton_initialization PASSED [ 51%]
+test_Log.py::Test___cinit__::test_empty_initialization PASSED [ 52%]
+test_Log.py::Test_addLogEntry::test_add_string_entry PASSED [ 52%]
+test_Log.py::Test_addLogEntry::test_add_nonstring_entry PASSED [ 52%]
+test_Log.py::Test_getLog::test_read_two_entries PASSED [ 53%]
+test_Log.py::Test_writeToStdout::test_correct_type PASSED [ 53%]
+test_Log.py::Test_writeToStdout::test_set_and_get PASSED [ 54%]
+test_Neighbor.py::Test___cinit__::test_skeleton_initialization PASSED [ 54%]
+test_Neighbor.py::Test___cinit__::test_empty_initialization PASSED [ 54%]
+test_Neighbor.py::Test_index::test_correct_type PASSED [ 55%]
+test_Neighbor.py::Test_index::test_set_and_get PASSED [ 55%]
+test_Neighbor.py::Test_tag::test_correct_type PASSED [ 56%]
+test_Neighbor.py::Test_tag::test_set_and_get PASSED [ 56%]
+test_Neighbor.py::Test_element::test_correct_type PASSED [ 56%]
+test_Neighbor.py::Test_element::test_set_and_get PASSED [ 57%]
+test_Neighbor.py::Test_d::test_correct_type PASSED [ 57%]
+test_Neighbor.py::Test_d::test_set_and_get PASSED [ 58%]
+test_Neighbor.py::Test_dr::test_correct_type PASSED [ 58%]
+test_Neighbor.py::Test_dr::test_set_and_get PASSED [ 58%]
+test_Neighbor.py::Test_dGdr::test_correct_type PASSED [ 59%]
+test_Neighbor.py::Test___eq__::test_not_equal PASSED [ 59%]
+test_Neighbor.py::Test___eq__::test_element_different PASSED [ 60%]
+test_Neighbor.py::Test___eq__::test_distance_different PASSED [ 60%]
+test_Neighbor.py::Test___eq__::test_equal PASSED [ 60%]
+test_Neighbor.py::Test___ne__::test_element_different PASSED [ 61%]
+test_Neighbor.py::Test___ne__::test_distance_different PASSED [ 61%]
+test_Neighbor.py::Test___ne__::test_equal PASSED [ 61%]
+test_Neighbor.py::Test___lt__::test_less_than PASSED [ 62%]
+test_Neighbor.py::Test___lt__::test_greater_than PASSED [ 62%]
+test_Neighbor.py::Test___lt__::test_equal_distance PASSED [ 63%]
+test_Neighbor.py::Test___lt__::test_equal_element PASSED [ 63%]
+test_Neighbor.py::Test___lt__::test_equal PASSED [ 63%]
+test_Neighbor.py::Test___gt__::test_less_than PASSED [ 64%]
+test_Neighbor.py::Test___gt__::test_greater_than PASSED [ 64%]
+test_Neighbor.py::Test___gt__::test_equal_distance PASSED [ 65%]
+test_Neighbor.py::Test___gt__::test_equal_element PASSED [ 65%]
+test_Neighbor.py::Test___gt__::test_equal PASSED [ 65%]
+test_Neighbor.py::Test___le__::test_less_than PASSED [ 66%]
+test_Neighbor.py::Test___le__::test_greater_than PASSED [ 66%]
+test_Neighbor.py::Test___le__::test_equal_distance PASSED [ 67%]
+test_Neighbor.py::Test___le__::test_equal_element PASSED [ 67%]
+test_Neighbor.py::Test___le__::test_equal PASSED [ 67%]
+test_Neighbor.py::Test___ge__::test_less_than PASSED [ 68%]
+test_Neighbor.py::Test___ge__::test_greater_than PASSED [ 68%]
+test_Neighbor.py::Test___ge__::test_equal_distance PASSED [ 69%]
+test_Neighbor.py::Test___ge__::test_equal_element PASSED [ 69%]
+test_Neighbor.py::Test___ge__::test_equal PASSED [ 69%]
+test_Settings.py::Test___cinit__::test_skeleton_initialization PASSED [ 70%]
+test_Settings.py::Test___cinit__::test_empty_initialization PASSED [ 70%]
+test_Settings.py::Test_loadFile::test_file_read[setups/Settings] PASSED [ 70%]
+test_Settings.py::Test___getitem__::test_existing_key[setups/Settings] PASSED [ 71%]
+test_Settings.py::Test___getitem__::test_nonexisting_key[setups/Settings] PASSED [ 71%]
+test_Settings.py::Test___getitem__::test_nonstring_key[setups/Settings] PASSED [ 72%]
+test_Settings.py::Test_keywordExists::test_existing_key[setups/Settings] PASSED [ 72%]
+test_Settings.py::Test_keywordExists::test_nonexisting_key[setups/Settings] PASSED [ 72%]
+test_Settings.py::Test_keywordExists::test_nonstring_key[setups/Settings] PASSED [ 73%]
+test_Settings.py::Test_getValue::test_existing_key[setups/Settings] PASSED [ 73%]
+test_Settings.py::Test_getValue::test_nonexisting_key[setups/Settings] PASSED [ 74%]
+test_Settings.py::Test_getValue::test_nonstring_key[setups/Settings] PASSED [ 74%]
+test_Settings.py::Test_info::test_return_list[setups/Settings] PASSED [ 74%]
+test_Settings.py::Test_getSettingsLines::test_return_list[setups/Settings] PASSED [ 75%]
+test_Vec3D.py::Test___cinit__::test_skeleton_initialization PASSED [ 75%]
+test_Vec3D.py::Test___cinit__::test_empty_initialization PASSED [ 76%]
+test_Vec3D.py::Test___cinit__::test_float_initialization PASSED [ 76%]
+test_Vec3D.py::Test___cinit__::test_Vec3D_initialization PASSED [ 76%]
+test_Vec3D.py::Test___getitem__::test_no_integer_index PASSED [ 77%]
+test_Vec3D.py::Test___getitem__::test_negative_index PASSED [ 77%]
+test_Vec3D.py::Test___getitem__::test_large_index PASSED [ 78%]
+test_Vec3D.py::Test___getitem__::test_components PASSED [ 78%]
+test_Vec3D.py::Test___setitem__::test_no_integer_index PASSED [ 78%]
+test_Vec3D.py::Test___setitem__::test_negative_index PASSED [ 79%]
+test_Vec3D.py::Test___setitem__::test_large_index PASSED [ 79%]
+test_Vec3D.py::Test___setitem__::test_wrong_type PASSED [ 80%]
+test_Vec3D.py::Test___setitem__::test_components PASSED [ 80%]
+test_Vec3D.py::Test___str__::test_return_string PASSED [ 80%]
+test_Vec3D.py::Test___str__::test_string_content PASSED [ 81%]
+test_Vec3D.py::Test___iadd__::test_wrong_type PASSED [ 81%]
+test_Vec3D.py::Test___iadd__::test_correct_addition PASSED [ 81%]
+test_Vec3D.py::Test___iadd__::test_added_Vec3D_unchanged PASSED [ 82%]
+test_Vec3D.py::Test___isub__::test_wrong_type PASSED [ 82%]
+test_Vec3D.py::Test___isub__::test_correct_subtraction PASSED [ 83%]
+test_Vec3D.py::Test___isub__::test_subtracted_Vec3D_unchanged PASSED [ 83%]
+test_Vec3D.py::Test___imul__::test_wrong_type PASSED [ 83%]
+test_Vec3D.py::Test___imul__::test_correct_float_multiplication PASSED [ 84%]
+test_Vec3D.py::Test___itruediv__::test_wrong_type PASSED [ 84%]
+test_Vec3D.py::Test___itruediv__::test_correct_float_division PASSED [ 85%]
+test_Vec3D.py::Test___mul__::test_wrong_type PASSED [ 85%]
+test_Vec3D.py::Test___mul__::test_scalar_product PASSED [ 85%]
+test_Vec3D.py::Test___mul__::test_right_float_multiplication PASSED [ 86%]
+test_Vec3D.py::Test___mul__::test_left_float_multiplication PASSED [ 86%]
+test_Vec3D.py::Test___eq__::test_wrong_type PASSED [ 87%]
+test_Vec3D.py::Test___eq__::test_equal_components PASSED [ 87%]
+test_Vec3D.py::Test___ne__::test_wrong_type PASSED [ 87%]
+test_Vec3D.py::Test___ne__::test_one_different_component PASSED [ 88%]
+test_Vec3D.py::Test_norm::test_correct_result PASSED [ 88%]
+test_Vec3D.py::Test_norm2::test_correct_result PASSED [ 89%]
+test_Vec3D.py::Test_normalize::test_correct_result PASSED [ 89%]
+test_Vec3D.py::Test_cross::test_wrong_type PASSED [ 89%]
+test_Vec3D.py::Test_cross::test_correct_return_type PASSED [ 90%]
+test_Vec3D.py::Test_cross::test_correct_result PASSED [ 90%]
+test_Vec3D.py::Test___add__::test_wrong_type PASSED [ 90%]
+test_Vec3D.py::Test___add__::test_correct_return_type PASSED [ 91%]
+test_Vec3D.py::Test___add__::test_new_object_returned PASSED [ 91%]
+test_Vec3D.py::Test___add__::test_correct_result PASSED [ 92%]
+test_Vec3D.py::Test___sub__::test_wrong_type PASSED [ 92%]
+test_Vec3D.py::Test___sub__::test_correct_return_type PASSED [ 92%]
+test_Vec3D.py::Test___sub__::test_new_object_returned PASSED [ 93%]
+test_Vec3D.py::Test___sub__::test_correct_result PASSED [ 93%]
+test_Vec3D.py::Test___neg__::test_correct_return_type PASSED [ 94%]
+test_Vec3D.py::Test___neg__::test_new_object_returned PASSED [ 94%]
+test_Vec3D.py::Test___neg__::test_correct_result PASSED [ 94%]
+test_Vec3D.py::Test___truediv__::test_wrong_type PASSED [ 95%]
+test_Vec3D.py::Test___truediv__::test_correct_return_type PASSED [ 95%]
+test_Vec3D.py::Test___truediv__::test_new_object_returned PASSED [ 96%]
+test_Vec3D.py::Test___truediv__::test_correct_result PASSED [ 96%]
+test_Vec3D.py::Test_r::test_getter_correct_type PASSED [ 96%]
+test_Vec3D.py::Test_r::test_getter_correct_size PASSED [ 97%]
+test_Vec3D.py::Test_r::test_getter_correct_content PASSED [ 97%]
+test_Vec3D.py::Test_r::test_setter_wrong_size PASSED [ 98%]
+test_Vec3D.py::Test_r::test_setter_wrong_type PASSED [ 98%]
+test_Vec3D.py::Test_r::test_setter_wrong_list_size PASSED [ 98%]
+test_Vec3D.py::Test_r::test_setter_correct_assignment PASSED [ 99%]
+test_Vec3D.py::Test_r::test_setter_correct_assignment_to_Vec3D PASSED [ 99%]
+test_Vec3D.py::Test_r::test_setter_index_assignment_not_possible PASSED [100%]
diff --git a/var/spack/repos/builtin/packages/n2p2/test/expected-result-2.1.1.txt b/var/spack/repos/builtin/packages/n2p2/test/expected-result-2.1.1.txt
new file mode 100644
index 0000000000..26fb530a38
--- /dev/null
+++ b/var/spack/repos/builtin/packages/n2p2/test/expected-result-2.1.1.txt
@@ -0,0 +1,272 @@
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+*** No errors detected
+test_Atom.py::Test___cinit__::test_skeleton_initialization PASSED [ 0%]
+test_Atom.py::Test___cinit__::test_empty_initialization PASSED [ 0%]
+test_Atom.py::Test_hasNeighborList::test_correct_type PASSED [ 1%]
+test_Atom.py::Test_hasNeighborList::test_set_and_get PASSED [ 1%]
+test_Atom.py::Test_hasSymmetryFunctions::test_correct_type PASSED [ 1%]
+test_Atom.py::Test_hasSymmetryFunctions::test_set_and_get PASSED [ 2%]
+test_Atom.py::Test_hasSymmetryFunctionDerivatives::test_correct_type PASSED [ 2%]
+test_Atom.py::Test_hasSymmetryFunctionDerivatives::test_set_and_get PASSED [ 3%]
+test_Atom.py::Test_index::test_correct_type PASSED [ 3%]
+test_Atom.py::Test_index::test_set_and_get PASSED [ 3%]
+test_Atom.py::Test_indexStructure::test_correct_type PASSED [ 4%]
+test_Atom.py::Test_indexStructure::test_set_and_get PASSED [ 4%]
+test_Atom.py::Test_tag::test_correct_type PASSED [ 5%]
+test_Atom.py::Test_tag::test_set_and_get PASSED [ 5%]
+test_Atom.py::Test_element::test_correct_type PASSED [ 5%]
+test_Atom.py::Test_element::test_set_and_get PASSED [ 6%]
+test_Atom.py::Test_numNeighbors::test_correct_type PASSED [ 6%]
+test_Atom.py::Test_numNeighbors::test_set_and_get PASSED [ 7%]
+test_Atom.py::Test_numNeighborsUnique::test_correct_type PASSED [ 7%]
+test_Atom.py::Test_numNeighborsUnique::test_set_and_get PASSED [ 7%]
+test_Atom.py::Test_numSymmetryFunctions::test_correct_type PASSED [ 8%]
+test_Atom.py::Test_numSymmetryFunctions::test_set_and_get PASSED [ 8%]
+test_Atom.py::Test_energy::test_correct_type PASSED [ 9%]
+test_Atom.py::Test_energy::test_set_and_get PASSED [ 9%]
+test_Atom.py::Test_charge::test_correct_type PASSED [ 9%]
+test_Atom.py::Test_charge::test_set_and_get PASSED [ 10%]
+test_Atom.py::Test_r::test_correct_type PASSED [ 10%]
+test_Atom.py::Test_r::test_set_and_get PASSED [ 10%]
+test_Atom.py::Test_f::test_correct_type PASSED [ 11%]
+test_Atom.py::Test_f::test_set_and_get PASSED [ 11%]
+test_Atom.py::Test_fRef::test_correct_type PASSED [ 12%]
+test_Atom.py::Test_fRef::test_set_and_get PASSED [ 12%]
+test_Atom.py::Test_neighborsUnique::test_correct_type PASSED [ 12%]
+test_Atom.py::Test_numNeighborsPerElement::test_correct_type PASSED [ 13%]
+test_Atom.py::Test_G::test_correct_type PASSED [ 13%]
+test_Atom.py::Test_dEdG::test_correct_type PASSED [ 14%]
+test_Atom.py::Test_dGdr::test_correct_type PASSED [ 14%]
+test_Atom.py::Test_neighbors::test_correct_type PASSED [ 14%]
+test_Atom.py::Test_info::test_return_list PASSED [ 15%]
+test_CutoffFunction.py::Test___cinit__::test_skeleton_initialization PASSED [ 15%]
+test_CutoffFunction.py::Test___cinit__::test_empty_initialization PASSED [ 16%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[0] PASSED [ 16%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[1] PASSED [ 16%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[2] PASSED [ 17%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[3] PASSED [ 17%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[4] PASSED [ 18%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[5] PASSED [ 18%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[6] PASSED [ 18%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[7] PASSED [ 19%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_correct_type[8] PASSED [ 19%]
+test_CutoffFunction.py::Test_setCutoffType::test_set_unknown_type PASSED [ 20%]
+test_CutoffFunction.py::Test_setCutoffRadius::test_set_float_value PASSED [ 20%]
+test_CutoffFunction.py::Test_setCutoffRadius::test_set_wrong_argument PASSED [ 20%]
+test_CutoffFunction.py::Test_setCutoffParameter::test_set_float_value PASSED [ 21%]
+test_CutoffFunction.py::Test_setCutoffParameter::test_set_wrong_float_value PASSED [ 21%]
+test_CutoffFunction.py::Test_setCutoffParameter::test_set_wrong_argument PASSED [ 21%]
+test_CutoffFunction.py::Test_f::test_boundaries[0] PASSED [ 22%]
+test_CutoffFunction.py::Test_f::test_boundaries[1] PASSED [ 22%]
+test_CutoffFunction.py::Test_f::test_boundaries[2] PASSED [ 23%]
+test_CutoffFunction.py::Test_f::test_boundaries[3] PASSED [ 23%]
+test_CutoffFunction.py::Test_f::test_boundaries[4] PASSED [ 23%]
+test_CutoffFunction.py::Test_f::test_boundaries[5] PASSED [ 24%]
+test_CutoffFunction.py::Test_f::test_boundaries[6] PASSED [ 24%]
+test_CutoffFunction.py::Test_f::test_boundaries[7] PASSED [ 25%]
+test_CutoffFunction.py::Test_f::test_boundaries[8] PASSED [ 25%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[0-1.0] PASSED [ 25%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[1-0.1464466094067261] PASSED [ 26%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[2-0.00768915371206977] PASSED [ 26%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[3-0.01740635089776903] PASSED [ 27%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[4-0.27645304662956416] PASSED [ 27%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[5-0.1562499999999999] PASSED [ 27%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[6-0.10351562500000003] PASSED [ 28%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[7-0.07055664062499914] PASSED [ 28%]
+test_CutoffFunction.py::Test_f::test_nonzero_radius[8-0.04892730712890944] PASSED [ 29%]
+test_CutoffFunction.py::Test_f::test_nonfloat_argument PASSED [ 29%]
+test_CutoffFunction.py::Test_df::test_boundaries[0] PASSED [ 29%]
+test_CutoffFunction.py::Test_df::test_boundaries[1] PASSED [ 30%]
+test_CutoffFunction.py::Test_df::test_boundaries[2] PASSED [ 30%]
+test_CutoffFunction.py::Test_df::test_boundaries[3] PASSED [ 30%]
+test_CutoffFunction.py::Test_df::test_boundaries[4] PASSED [ 31%]
+test_CutoffFunction.py::Test_df::test_boundaries[5] PASSED [ 31%]
+test_CutoffFunction.py::Test_df::test_boundaries[6] PASSED [ 32%]
+test_CutoffFunction.py::Test_df::test_boundaries[7] PASSED [ 32%]
+test_CutoffFunction.py::Test_df::test_boundaries[8] PASSED [ 32%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[0-0.0] PASSED [ 33%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[1--0.46280030605816297] PASSED [ 33%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[2--0.0374393678577051] PASSED [ 34%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[3--0.08475351107871792] PASSED [ 34%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[4--0.9027038257291898] PASSED [ 34%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[5--0.4687499999999999] PASSED [ 35%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[6--0.43945312499999917] PASSED [ 35%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[7--0.38452148437500033] PASSED [ 36%]
+test_CutoffFunction.py::Test_df::test_nonzero_radius[8--0.32444000244141674] PASSED [ 36%]
+test_CutoffFunction.py::Test_df::test_nonfloat_argument PASSED [ 36%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[0] PASSED [ 37%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[1] PASSED [ 37%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[2] PASSED [ 38%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[3] PASSED [ 38%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[4] PASSED [ 38%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[5] PASSED [ 39%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[6] PASSED [ 39%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[7] PASSED [ 40%]
+test_CutoffFunction.py::Test_fdf::test_boundaries[8] PASSED [ 40%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[0-1.0-0.0] PASSED [ 40%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[1-0.1464466094067261--0.46280030605816297] PASSED [ 41%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[2-0.00768915371206977--0.0374393678577051] PASSED [ 41%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[3-0.01740635089776903--0.08475351107871792] PASSED [ 41%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[4-0.27645304662956416--0.9027038257291898] PASSED [ 42%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[5-0.1562499999999999--0.4687499999999999] PASSED [ 42%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[6-0.10351562500000003--0.43945312499999917] PASSED [ 43%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[7-0.07055664062499914--0.38452148437500033] PASSED [ 43%]
+test_CutoffFunction.py::Test_fdf::test_nonzero_radius[8-0.04892730712890944--0.32444000244141674] PASSED [ 43%]
+test_CutoffFunction.py::Test_fdf::test_nonfloat_argument PASSED [ 44%]
+test_ElementMap.py::Test___cinit__::test_skeleton_initialization PASSED [ 44%]
+test_ElementMap.py::Test___cinit__::test_empty_initialization PASSED [ 45%]
+test_ElementMap.py::Test_registerElements::test_nonstring_argument PASSED [ 45%]
+test_ElementMap.py::Test_registerElements::test_correct_elements_registered PASSED [ 45%]
+test_ElementMap.py::Test___getitem__::test_correct_element_index PASSED [ 46%]
+test_ElementMap.py::Test___getitem__::test_correct_element_symbol PASSED [ 46%]
+test_ElementMap.py::Test___getitem__::test_out_of_bounds_index PASSED [ 47%]
+test_ElementMap.py::Test___getitem__::test_unknown_symbol PASSED [ 47%]
+test_ElementMap.py::Test___getitem__::test_wrong_argument_type PASSED [ 47%]
+test_ElementMap.py::Test_size::test_correct_empty_size_returned PASSED [ 48%]
+test_ElementMap.py::Test_size::test_correct_size_returned PASSED [ 48%]
+test_ElementMap.py::Test_index::test_correct_element_index PASSED [ 49%]
+test_ElementMap.py::Test_index::test_wrong_argument_type PASSED [ 49%]
+test_ElementMap.py::Test_symbol::test_correct_element_index PASSED [ 49%]
+test_ElementMap.py::Test_symbol::test_wrong_argument_type PASSED [ 50%]
+test_ElementMap.py::Test_deregisterElements::test_empty_map PASSED [ 50%]
+test_ElementMap.py::Test_symbolFromAtomicNumber::test_some_elements PASSED [ 50%]
+test_ElementMap.py::Test_info::test_return_list PASSED [ 51%]
+test_Log.py::Test___cinit__::test_skeleton_initialization PASSED [ 51%]
+test_Log.py::Test___cinit__::test_empty_initialization PASSED [ 52%]
+test_Log.py::Test_addLogEntry::test_add_string_entry PASSED [ 52%]
+test_Log.py::Test_addLogEntry::test_add_nonstring_entry PASSED [ 52%]
+test_Log.py::Test_getLog::test_read_two_entries PASSED [ 53%]
+test_Log.py::Test_writeToStdout::test_correct_type PASSED [ 53%]
+test_Log.py::Test_writeToStdout::test_set_and_get PASSED [ 54%]
+test_Neighbor.py::Test___cinit__::test_skeleton_initialization PASSED [ 54%]
+test_Neighbor.py::Test___cinit__::test_empty_initialization PASSED [ 54%]
+test_Neighbor.py::Test_index::test_correct_type PASSED [ 55%]
+test_Neighbor.py::Test_index::test_set_and_get PASSED [ 55%]
+test_Neighbor.py::Test_tag::test_correct_type PASSED [ 56%]
+test_Neighbor.py::Test_tag::test_set_and_get PASSED [ 56%]
+test_Neighbor.py::Test_element::test_correct_type PASSED [ 56%]
+test_Neighbor.py::Test_element::test_set_and_get PASSED [ 57%]
+test_Neighbor.py::Test_d::test_correct_type PASSED [ 57%]
+test_Neighbor.py::Test_d::test_set_and_get PASSED [ 58%]
+test_Neighbor.py::Test_dr::test_correct_type PASSED [ 58%]
+test_Neighbor.py::Test_dr::test_set_and_get PASSED [ 58%]
+test_Neighbor.py::Test_dGdr::test_correct_type PASSED [ 59%]
+test_Neighbor.py::Test___eq__::test_not_equal PASSED [ 59%]
+test_Neighbor.py::Test___eq__::test_element_different PASSED [ 60%]
+test_Neighbor.py::Test___eq__::test_distance_different PASSED [ 60%]
+test_Neighbor.py::Test___eq__::test_equal PASSED [ 60%]
+test_Neighbor.py::Test___ne__::test_element_different PASSED [ 61%]
+test_Neighbor.py::Test___ne__::test_distance_different PASSED [ 61%]
+test_Neighbor.py::Test___ne__::test_equal PASSED [ 61%]
+test_Neighbor.py::Test___lt__::test_less_than PASSED [ 62%]
+test_Neighbor.py::Test___lt__::test_greater_than PASSED [ 62%]
+test_Neighbor.py::Test___lt__::test_equal_distance PASSED [ 63%]
+test_Neighbor.py::Test___lt__::test_equal_element PASSED [ 63%]
+test_Neighbor.py::Test___lt__::test_equal PASSED [ 63%]
+test_Neighbor.py::Test___gt__::test_less_than PASSED [ 64%]
+test_Neighbor.py::Test___gt__::test_greater_than PASSED [ 64%]
+test_Neighbor.py::Test___gt__::test_equal_distance PASSED [ 65%]
+test_Neighbor.py::Test___gt__::test_equal_element PASSED [ 65%]
+test_Neighbor.py::Test___gt__::test_equal PASSED [ 65%]
+test_Neighbor.py::Test___le__::test_less_than PASSED [ 66%]
+test_Neighbor.py::Test___le__::test_greater_than PASSED [ 66%]
+test_Neighbor.py::Test___le__::test_equal_distance PASSED [ 67%]
+test_Neighbor.py::Test___le__::test_equal_element PASSED [ 67%]
+test_Neighbor.py::Test___le__::test_equal PASSED [ 67%]
+test_Neighbor.py::Test___ge__::test_less_than PASSED [ 68%]
+test_Neighbor.py::Test___ge__::test_greater_than PASSED [ 68%]
+test_Neighbor.py::Test___ge__::test_equal_distance PASSED [ 69%]
+test_Neighbor.py::Test___ge__::test_equal_element PASSED [ 69%]
+test_Neighbor.py::Test___ge__::test_equal PASSED [ 69%]
+test_Settings.py::Test___cinit__::test_skeleton_initialization PASSED [ 70%]
+test_Settings.py::Test___cinit__::test_empty_initialization PASSED [ 70%]
+test_Settings.py::Test_loadFile::test_file_read[setups/Settings] PASSED [ 70%]
+test_Settings.py::Test___getitem__::test_existing_key[setups/Settings] PASSED [ 71%]
+test_Settings.py::Test___getitem__::test_nonexisting_key[setups/Settings] PASSED [ 71%]
+test_Settings.py::Test___getitem__::test_nonstring_key[setups/Settings] PASSED [ 72%]
+test_Settings.py::Test_keywordExists::test_existing_key[setups/Settings] PASSED [ 72%]
+test_Settings.py::Test_keywordExists::test_nonexisting_key[setups/Settings] PASSED [ 72%]
+test_Settings.py::Test_keywordExists::test_nonstring_key[setups/Settings] PASSED [ 73%]
+test_Settings.py::Test_getValue::test_existing_key[setups/Settings] PASSED [ 73%]
+test_Settings.py::Test_getValue::test_nonexisting_key[setups/Settings] PASSED [ 74%]
+test_Settings.py::Test_getValue::test_nonstring_key[setups/Settings] PASSED [ 74%]
+test_Settings.py::Test_info::test_return_list[setups/Settings] PASSED [ 74%]
+test_Settings.py::Test_getSettingsLines::test_return_list[setups/Settings] PASSED [ 75%]
+test_Vec3D.py::Test___cinit__::test_skeleton_initialization PASSED [ 75%]
+test_Vec3D.py::Test___cinit__::test_empty_initialization PASSED [ 76%]
+test_Vec3D.py::Test___cinit__::test_float_initialization PASSED [ 76%]
+test_Vec3D.py::Test___cinit__::test_Vec3D_initialization PASSED [ 76%]
+test_Vec3D.py::Test___getitem__::test_no_integer_index PASSED [ 77%]
+test_Vec3D.py::Test___getitem__::test_negative_index PASSED [ 77%]
+test_Vec3D.py::Test___getitem__::test_large_index PASSED [ 78%]
+test_Vec3D.py::Test___getitem__::test_components PASSED [ 78%]
+test_Vec3D.py::Test___setitem__::test_no_integer_index PASSED [ 78%]
+test_Vec3D.py::Test___setitem__::test_negative_index PASSED [ 79%]
+test_Vec3D.py::Test___setitem__::test_large_index PASSED [ 79%]
+test_Vec3D.py::Test___setitem__::test_wrong_type PASSED [ 80%]
+test_Vec3D.py::Test___setitem__::test_components PASSED [ 80%]
+test_Vec3D.py::Test___str__::test_return_string PASSED [ 80%]
+test_Vec3D.py::Test___str__::test_string_content PASSED [ 81%]
+test_Vec3D.py::Test___iadd__::test_wrong_type PASSED [ 81%]
+test_Vec3D.py::Test___iadd__::test_correct_addition PASSED [ 81%]
+test_Vec3D.py::Test___iadd__::test_added_Vec3D_unchanged PASSED [ 82%]
+test_Vec3D.py::Test___isub__::test_wrong_type PASSED [ 82%]
+test_Vec3D.py::Test___isub__::test_correct_subtraction PASSED [ 83%]
+test_Vec3D.py::Test___isub__::test_subtracted_Vec3D_unchanged PASSED [ 83%]
+test_Vec3D.py::Test___imul__::test_wrong_type PASSED [ 83%]
+test_Vec3D.py::Test___imul__::test_correct_float_multiplication PASSED [ 84%]
+test_Vec3D.py::Test___itruediv__::test_wrong_type PASSED [ 84%]
+test_Vec3D.py::Test___itruediv__::test_correct_float_division PASSED [ 85%]
+test_Vec3D.py::Test___mul__::test_wrong_type PASSED [ 85%]
+test_Vec3D.py::Test___mul__::test_scalar_product PASSED [ 85%]
+test_Vec3D.py::Test___mul__::test_right_float_multiplication PASSED [ 86%]
+test_Vec3D.py::Test___mul__::test_left_float_multiplication PASSED [ 86%]
+test_Vec3D.py::Test___eq__::test_wrong_type PASSED [ 87%]
+test_Vec3D.py::Test___eq__::test_equal_components PASSED [ 87%]
+test_Vec3D.py::Test___ne__::test_wrong_type PASSED [ 87%]
+test_Vec3D.py::Test___ne__::test_one_different_component PASSED [ 88%]
+test_Vec3D.py::Test_norm::test_correct_result PASSED [ 88%]
+test_Vec3D.py::Test_norm2::test_correct_result PASSED [ 89%]
+test_Vec3D.py::Test_normalize::test_correct_result PASSED [ 89%]
+test_Vec3D.py::Test_cross::test_wrong_type PASSED [ 89%]
+test_Vec3D.py::Test_cross::test_correct_return_type PASSED [ 90%]
+test_Vec3D.py::Test_cross::test_correct_result PASSED [ 90%]
+test_Vec3D.py::Test___add__::test_wrong_type PASSED [ 90%]
+test_Vec3D.py::Test___add__::test_correct_return_type PASSED [ 91%]
+test_Vec3D.py::Test___add__::test_new_object_returned PASSED [ 91%]
+test_Vec3D.py::Test___add__::test_correct_result PASSED [ 92%]
+test_Vec3D.py::Test___sub__::test_wrong_type PASSED [ 92%]
+test_Vec3D.py::Test___sub__::test_correct_return_type PASSED [ 92%]
+test_Vec3D.py::Test___sub__::test_new_object_returned PASSED [ 93%]
+test_Vec3D.py::Test___sub__::test_correct_result PASSED [ 93%]
+test_Vec3D.py::Test___neg__::test_correct_return_type PASSED [ 94%]
+test_Vec3D.py::Test___neg__::test_new_object_returned PASSED [ 94%]
+test_Vec3D.py::Test___neg__::test_correct_result PASSED [ 94%]
+test_Vec3D.py::Test___truediv__::test_wrong_type PASSED [ 95%]
+test_Vec3D.py::Test___truediv__::test_correct_return_type PASSED [ 95%]
+test_Vec3D.py::Test___truediv__::test_new_object_returned PASSED [ 96%]
+test_Vec3D.py::Test___truediv__::test_correct_result PASSED [ 96%]
+test_Vec3D.py::Test_r::test_getter_correct_type PASSED [ 96%]
+test_Vec3D.py::Test_r::test_getter_correct_size PASSED [ 97%]
+test_Vec3D.py::Test_r::test_getter_correct_content PASSED [ 97%]
+test_Vec3D.py::Test_r::test_setter_wrong_size PASSED [ 98%]
+test_Vec3D.py::Test_r::test_setter_wrong_type PASSED [ 98%]
+test_Vec3D.py::Test_r::test_setter_wrong_list_size PASSED [ 98%]
+test_Vec3D.py::Test_r::test_setter_correct_assignment PASSED [ 99%]
+test_Vec3D.py::Test_r::test_setter_correct_assignment_to_Vec3D PASSED [ 99%]
+test_Vec3D.py::Test_r::test_setter_index_assignment_not_possible PASSED [100%]
diff --git a/var/spack/repos/builtin/packages/n2p2/test/result-check.sh b/var/spack/repos/builtin/packages/n2p2/test/result-check.sh
new file mode 100755
index 0000000000..cc7acd780a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/n2p2/test/result-check.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+grep -e "No errors detected" "$1" > test-result.txt
+grep -e "PASSED" "$2" >> test-result.txt
+
+if cmp -s $3 test-result.txt; then
+ echo "Test of n2p2 PASSED !"
+else
+ echo "Test of n2p2 Failed !"
+fi
+
+rm $1 $2 test-result.txt
diff --git a/var/spack/repos/builtin/packages/nacos/package.py b/var/spack/repos/builtin/packages/nacos/package.py
index 6aad25b31a..7688825a1f 100644
--- a/var/spack/repos/builtin/packages/nacos/package.py
+++ b/var/spack/repos/builtin/packages/nacos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nag/package.py b/var/spack/repos/builtin/packages/nag/package.py
index 4f39548065..dcddb3924a 100644
--- a/var/spack/repos/builtin/packages/nag/package.py
+++ b/var/spack/repos/builtin/packages/nag/package.py
@@ -1,20 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import re
-import spack.compiler
import llnl.util.tty as tty
+import spack.compiler
+
class Nag(Package):
"""The NAG Fortran Compiler."""
- homepage = "http://www.nag.com/nagware/np.asp"
+ homepage = "https://www.nag.com/nagware/np.asp"
maintainers = ['ThemosTsikas']
- version('7.0', sha256='99d5ba10b629ce1487a900d7a8fd92608536a6d0b168cd6cd8c5e7d000c30e2f')
+ version('7.0', sha256='6d509208533d79139e5a9f879b7b93e7b58372b78d404d51f35e491ecbaa54c7')
version('6.2', sha256='9b60f6ffa4f4be631079676963e74eea25e8824512e5c864eb06758b2a3cdd2d')
version('6.1', sha256='32580e0004e6798abf1fa52f0070281b28abeb0da2387530a4cc41218e813c7c')
diff --git a/var/spack/repos/builtin/packages/nalu-wind/package.py b/var/spack/repos/builtin/packages/nalu-wind/package.py
index 1f54887dc7..70e77ac765 100644
--- a/var/spack/repos/builtin/packages/nalu-wind/package.py
+++ b/var/spack/repos/builtin/packages/nalu-wind/package.py
@@ -1,16 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
+
+def _parse_float(val):
+ try:
+ return float(val) > 0.0
+ except ValueError:
+ return False
-class NaluWind(CMakePackage):
+
+class NaluWind(CMakePackage, CudaPackage):
"""Nalu-Wind: Wind energy focused variant of Nalu."""
- homepage = "https://github.com/exawind/nalu-wind"
+ homepage = "https://nalu-wind.readthedocs.io"
git = "https://github.com/exawind/nalu-wind.git"
maintainers = ['jrood-nrel']
@@ -19,14 +27,14 @@ class NaluWind(CMakePackage):
version('master', branch='master')
- # Options
- variant('shared', default=(sys.platform != 'darwin'),
- description='Build dependencies as shared libraries')
variant('pic', default=True,
description='Position independent code')
- variant('test_tol', default='default',
- description='Tolerance for regression tests')
- # Third party libraries
+ variant('abs_tol', default=1.0e-15,
+ values=_parse_float,
+ description='Absolute tolerance for regression tests')
+ variant('rel_tol', default=1.0e-12,
+ values=_parse_float,
+ description='Relative tolerance for regression tests')
variant('openfast', default=False,
description='Compile with OpenFAST support')
variant('tioga', default=False,
@@ -37,108 +45,83 @@ class NaluWind(CMakePackage):
description='Compile with Catalyst support')
variant('fftw', default=False,
description='Compile with FFTW support')
+ variant('boost', default=False,
+ description='Enable Boost integration')
+ variant('wind-utils', default=False,
+ description='Build wind-utils')
- # Required dependencies
depends_on('mpi')
- depends_on('yaml-cpp@0.5.3:', when='+shared')
- depends_on('yaml-cpp~shared@0.5.3:', when='~shared')
+ depends_on('yaml-cpp@0.5.3:')
+ depends_on('trilinos@master,develop ~cuda~wrapper+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+shards~hypre cxxstd=14', when='~cuda')
# Cannot build Trilinos as a shared library with STK on Darwin
- # which is why we have a 'shared' variant for Nalu-Wind
# https://github.com/trilinos/Trilinos/issues/2994
- depends_on('trilinos+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+pnetcdf+shards~hypre@master,develop', when='+shared')
- depends_on('trilinos~shared+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+pnetcdf+shards~hypre@master,develop', when='~shared')
- # Optional dependencies
- depends_on('openfast+cxx', when='+openfast+shared')
- depends_on('openfast+cxx~shared', when='+openfast~shared')
- depends_on('tioga', when='+tioga+shared')
- depends_on('tioga~shared', when='+tioga~shared')
- depends_on('hypre+mpi+int64~superlu-dist', when='+hypre+shared')
- depends_on('hypre+mpi+int64~superlu-dist~shared', when='+hypre~shared')
+ depends_on('trilinos@master,develop ~cuda~wrapper+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+shards~hypre~shared cxxstd=14', when=(sys.platform == 'darwin'))
+ depends_on('openfast@2.6.0 +cxx', when='+openfast')
+ depends_on('tioga@master,develop', when='+tioga')
+ depends_on('hypre@develop,2.18.2: ~int64+mpi~superlu-dist', when='+hypre')
+ depends_on('kokkos-nvcc-wrapper', type='build', when='+cuda')
+ for _arch in CudaPackage.cuda_arch_values:
+ depends_on('trilinos@master,develop ~shared+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+shards~hypre+cuda+cuda_rdc+wrapper cxxstd=14 cuda_arch={0}'.format(_arch),
+ when='+cuda cuda_arch={0}'.format(_arch))
+ depends_on('hypre@develop +mpi+cuda~int64~superlu-dist cuda_arch={0}'.format(_arch),
+ when='+hypre+cuda cuda_arch={0}'.format(_arch))
depends_on('trilinos-catalyst-ioss-adapter', when='+catalyst')
- # FFTW doesn't have a 'shared' variant at this moment
depends_on('fftw+mpi', when='+fftw')
+ depends_on('boost cxxstd=14', when='+boost')
+ depends_on('nccmp')
+ # indirect dependency needed to make original concretizer work
+ depends_on('netcdf-c+parallel-netcdf')
def cmake_args(self):
spec = self.spec
- options = []
-
- options.extend([
- '-DTrilinos_DIR:PATH=%s' % spec['trilinos'].prefix,
- '-DYAML_DIR:PATH=%s' % spec['yaml-cpp'].prefix,
- '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
- '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
- '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
- '-DMPI_C_COMPILER=%s' % spec['mpi'].mpicc,
- '-DMPI_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
- '-DMPI_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
- '-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=%s' % (
- 'ON' if '+pic' in spec else 'OFF'),
- ])
+ args = [
+ self.define_from_variant('CMAKE_POSITION_INDEPENDENT_CODE', 'pic'),
+ self.define('CMAKE_CXX_COMPILER', spec['mpi'].mpicxx),
+ self.define('CMAKE_C_COMPILER', spec['mpi'].mpicc),
+ self.define('CMAKE_Fortran_COMPILER', spec['mpi'].mpifc),
+ self.define('Trilinos_DIR', spec['trilinos'].prefix),
+ self.define('YAML_DIR', spec['yaml-cpp'].prefix),
+ self.define_from_variant('ENABLE_CUDA', 'cuda'),
+ self.define_from_variant('ENABLE_WIND_UTILS', 'wind-utils'),
+ self.define_from_variant('ENABLE_BOOST', 'boost'),
+ ]
+
+ args.append(self.define_from_variant('ENABLE_OPENFAST', 'openfast'))
if '+openfast' in spec:
- options.extend([
- '-DENABLE_OPENFAST:BOOL=ON',
- '-DOpenFAST_DIR:PATH=%s' % spec['openfast'].prefix
- ])
- else:
- options.append('-DENABLE_OPENFAST:BOOL=OFF')
+ args.append(self.define('OpenFAST_DIR', spec['openfast'].prefix))
+ args.append(self.define_from_variant('ENABLE_TIOGA', 'tioga'))
if '+tioga' in spec:
- options.extend([
- '-DENABLE_TIOGA:BOOL=ON',
- '-DTIOGA_DIR:PATH=%s' % spec['tioga'].prefix
- ])
- else:
- options.append('-DENABLE_TIOGA:BOOL=OFF')
+ args.append(self.define('TIOGA_DIR', spec['tioga'].prefix))
+ args.append(self.define_from_variant('ENABLE_HYPRE', 'hypre'))
if '+hypre' in spec:
- options.extend([
- '-DENABLE_HYPRE:BOOL=ON',
- '-DHYPRE_DIR:PATH=%s' % spec['hypre'].prefix
- ])
- else:
- options.append('-DENABLE_HYPRE:BOOL=OFF')
+ args.append(self.define('HYPRE_DIR', spec['hypre'].prefix))
+ args.append(self.define_from_variant('ENABLE_PARAVIEW_CATALYST', 'catalyst'))
if '+catalyst' in spec:
- options.extend([
- '-DENABLE_PARAVIEW_CATALYST:BOOL=ON',
- '-DPARAVIEW_CATALYST_INSTALL_PATH:PATH=%s' %
- spec['trilinos-catalyst-ioss-adapter'].prefix
- ])
- else:
- options.append('-DENABLE_PARAVIEW_CATALYST:BOOL=OFF')
+ args.append(self.define('PARAVIEW_CATALYST_INSTALL_PATH',
+ spec['trilinos-catalyst-ioss-adapter'].prefix))
+ args.append(self.define_from_variant('ENABLE_FFTW', 'fftw'))
if '+fftw' in spec:
- options.extend([
- '-DENABLE_FFTW:BOOL=ON',
- '-DFFTW_DIR:PATH=%s' % spec['fftw'].prefix
+ args.append(self.define('FFTW_DIR', spec['fftw'].prefix))
+
+ args.append(self.define('ENABLE_TESTS', self.run_tests))
+ if self.run_tests:
+ args.extend([
+ self.define('TEST_TOLERANCE', spec.variants['abs_tol'].value),
+ self.define('TEST_REL_TOL', spec.variants['rel_tol'].value),
])
- else:
- options.append('-DENABLE_FFTW:BOOL=OFF')
if 'darwin' in spec.architecture:
- options.append('-DCMAKE_MACOSX_RPATH:BOOL=ON')
+ args.append(self.define('CMAKE_MACOSX_RPATH', 'ON'))
- if self.run_tests:
- options.append('-DENABLE_TESTS:BOOL=ON')
- else:
- options.append('-DENABLE_TESTS:BOOL=OFF')
-
- if self.spec.variants['test_tol'].value != 'default':
- try:
- test_tol = float(self.spec.variants['test_tol'].value)
- if test_tol <= 0.0:
- raise ValueError
- options.append('-DTEST_TOLERANCE:STRING={tol}'.format(
- tol=test_tol))
- except ValueError:
- print("Specified test_tol must be a positive float. "
- "Using the default.")
-
- return options
+ return args
@run_before('cmake')
def add_submodules(self):
- if self.run_tests:
+ if self.run_tests or '+wind-utils' in self.spec:
git = which('git')
git('submodule', 'update', '--init', '--recursive')
diff --git a/var/spack/repos/builtin/packages/nalu/package.py b/var/spack/repos/builtin/packages/nalu/package.py
index 8e6abea569..f6973b8610 100644
--- a/var/spack/repos/builtin/packages/nalu/package.py
+++ b/var/spack/repos/builtin/packages/nalu/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Nalu(CMakePackage):
"""Nalu: a generalized unstructured massively parallel low Mach flow code
@@ -34,8 +35,8 @@ class Nalu(CMakePackage):
# Cannot build Trilinos as a shared library with STK on Darwin
# which is why we have a 'shared' variant for Nalu
# https://github.com/trilinos/Trilinos/issues/2994
- depends_on('trilinos+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+pnetcdf+shards~hypre@master,develop', when='+shared')
- depends_on('trilinos~shared+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+pnetcdf+shards~hypre@master,develop', when='~shared')
+ depends_on('trilinos+mpi+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+shards~hypre@master')
+ depends_on('trilinos~shared', when='~shared')
# Optional dependencies
depends_on('tioga', when='+tioga+shared')
depends_on('tioga~shared', when='+tioga~shared')
@@ -53,8 +54,7 @@ class Nalu(CMakePackage):
'-DMPI_C_COMPILER=%s' % spec['mpi'].mpicc,
'-DMPI_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
'-DMPI_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
- '-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=%s' % (
- 'ON' if '+pic' in spec else 'OFF'),
+ self.define_from_variant('CMAKE_POSITION_INDEPENDENT_CODE', 'pic'),
])
if '+tioga' in spec:
diff --git a/var/spack/repos/builtin/packages/namd/package.py b/var/spack/repos/builtin/packages/namd/package.py
index 1da71d20f5..db75d470f2 100644
--- a/var/spack/repos/builtin/packages/namd/package.py
+++ b/var/spack/repos/builtin/packages/namd/package.py
@@ -1,20 +1,22 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
import platform
import sys
-import os
-from spack import *
+
import llnl.util.tty as tty
+from spack import *
+
-class Namd(MakefilePackage):
+class Namd(MakefilePackage, CudaPackage):
"""NAMDis a parallel molecular dynamics code designed for
high-performance simulation of large biomolecular systems."""
- homepage = "http://www.ks.uiuc.edu/Research/namd/"
+ homepage = "https://www.ks.uiuc.edu/Research/namd/"
url = "file://{0}/NAMD_2.12_Source.tar.gz".format(os.getcwd())
git = "https://charm.cs.illinois.edu/gerrit/namd.git"
manual_download = True
@@ -26,8 +28,8 @@ class Namd(MakefilePackage):
version('2.13', '9e3323ed856e36e34d5c17a7b0341e38')
version('2.12', '2a1191909b1ab03bf0205971ad4d8ee9')
- variant('fftw', default='3', values=('none', '2', '3', 'mkl'),
- description='Enable the use of FFTW/FFTW3/MKL FFT')
+ variant('fftw', default='3', values=('none', '2', '3', 'mkl', 'amdfftw'),
+ description='Enable the use of FFTW/FFTW3/MKL FFT/AMDFFTW')
variant('interface', default='none', values=('none', 'tcl', 'python'),
description='Enables TCL and/or python interface')
@@ -45,6 +47,8 @@ class Namd(MakefilePackage):
depends_on('fftw@:2.99', when="fftw=2")
depends_on('fftw@3:', when="fftw=3")
+ depends_on('amdfftw', when="fftw=amdfftw")
+
depends_on('intel-mkl', when="fftw=mkl")
depends_on('tcl', when='interface=tcl')
@@ -52,6 +56,12 @@ class Namd(MakefilePackage):
depends_on('tcl', when='interface=python')
depends_on('python', when='interface=python')
+ # https://www.ks.uiuc.edu/Research/namd/2.12/features.html
+ # https://www.ks.uiuc.edu/Research/namd/2.13/features.html
+ # https://www.ks.uiuc.edu/Research/namd/2.14/features.html
+ depends_on('cuda@6.5.14:7.5.18', when='@2.12 +cuda')
+ depends_on('cuda@8.0.61:', when='@2.13: +cuda')
+
def _copy_arch_file(self, lib):
config_filename = 'arch/{0}.{1}'.format(self.arch, lib)
copy('arch/Linux-x86_64.{0}'.format(lib),
@@ -97,12 +107,16 @@ class Namd(MakefilePackage):
optims_opts = {
'gcc': m64 + '-O3 -fexpensive-optimizations \
-ffast-math -lpthread ' + archopt,
- 'intel': '-O2 -ip -qopenmp-simd' + archopt}
+ 'intel': '-O2 -ip -qopenmp-simd' + archopt,
+ 'aocc': m64 + '-O3 -ffp-contract=fast -ffast-math \
+ -fopenmp ' + archopt}
else:
optims_opts = {
'gcc': m64 + '-O3 -fexpensive-optimizations \
- -ffast-math ' + archopt,
- 'intel': '-O2 -ip ' + archopt}
+ -ffast-math -lpthread ' + archopt,
+ 'intel': '-O2 -ip ' + archopt,
+ 'aocc': m64 + '-O3 -ffp-contract=fast \
+ -ffast-math ' + archopt}
optim_opts = optims_opts[self.compiler.name] \
if self.compiler.name in optims_opts else ''
@@ -187,6 +201,10 @@ class Namd(MakefilePackage):
opts.append('--without-fftw')
elif fftw_version == 'mkl':
self._append_option(opts, 'mkl')
+ elif fftw_version == 'amdfftw':
+ self._copy_arch_file('fftw3')
+ opts.extend(['--with-fftw3',
+ '--fftw-prefix', spec['amdfftw'].prefix])
else:
_fftw = 'fftw{0}'.format('' if fftw_version == '2' else '3')
@@ -206,6 +224,12 @@ class Namd(MakefilePackage):
'--without-python'
])
+ if '+cuda' in spec:
+ self._append_option(opts, 'cuda')
+ filter_file('^CUDADIR=.*$',
+ 'CUDADIR={0}'.format(spec['cuda'].prefix),
+ join_path('arch', self.arch + '.cuda'))
+
config = Executable('./config')
config(self.build_directory, *opts)
diff --git a/var/spack/repos/builtin/packages/nano/package.py b/var/spack/repos/builtin/packages/nano/package.py
index 9fce06f929..a987d82304 100644
--- a/var/spack/repos/builtin/packages/nano/package.py
+++ b/var/spack/repos/builtin/packages/nano/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Nano(AutotoolsPackage):
"""Tiny little text editor"""
- homepage = "http://www.nano-editor.org"
+ homepage = "https://www.nano-editor.org"
url = "https://www.nano-editor.org/dist/v4/nano-4.9.tar.xz"
list_url = "https://www.nano-editor.org/dist/"
list_depth = 1
diff --git a/var/spack/repos/builtin/packages/nanoflann/package.py b/var/spack/repos/builtin/packages/nanoflann/package.py
index faeb5d7b16..8d80d79f3b 100644
--- a/var/spack/repos/builtin/packages/nanoflann/package.py
+++ b/var/spack/repos/builtin/packages/nanoflann/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nanomsg/package.py b/var/spack/repos/builtin/packages/nanomsg/package.py
index c3c5bb05e6..f22c50134b 100644
--- a/var/spack/repos/builtin/packages/nanomsg/package.py
+++ b/var/spack/repos/builtin/packages/nanomsg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nanopb/package.py b/var/spack/repos/builtin/packages/nanopb/package.py
index 60829cbd91..023184f101 100644
--- a/var/spack/repos/builtin/packages/nanopb/package.py
+++ b/var/spack/repos/builtin/packages/nanopb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nasm/package.py b/var/spack/repos/builtin/packages/nasm/package.py
index ee0da70daf..a45c02716d 100644
--- a/var/spack/repos/builtin/packages/nasm/package.py
+++ b/var/spack/repos/builtin/packages/nasm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -29,7 +29,7 @@ class Nasm(AutotoolsPackage):
def patch(self):
# Remove flags not recognized by the NVIDIA compiler
- if self.spec.satisfies('%nvhpc'):
+ if self.spec.satisfies('%nvhpc@:20.11'):
filter_file(r'CFLAGS="\$pa_add_cflags__old_cflags -Werror=.*"',
'CFLAGS="$pa_add_cflags__old_cflags"', 'configure')
filter_file(r'CFLAGS="\$pa_add_flags__old_flags -Werror=.*"',
diff --git a/var/spack/repos/builtin/packages/nauty/package.py b/var/spack/repos/builtin/packages/nauty/package.py
index cccacd8e6c..cc258339e4 100644
--- a/var/spack/repos/builtin/packages/nauty/package.py
+++ b/var/spack/repos/builtin/packages/nauty/package.py
@@ -1,18 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
class Nauty(AutotoolsPackage):
"""nauty and Traces are programs for computing automorphism groups of
graphsq and digraphs"""
- homepage = "http://pallini.di.uniroma1.it/index.html"
- url = "http://pallini.di.uniroma1.it/nauty26r7.tar.gz"
+ homepage = "https://pallini.di.uniroma1.it/index.html"
+ url = "https://pallini.di.uniroma1.it//nauty26r7.tar.gz"
version('2.6r7', sha256='97b5648de17645895cbd56a9a0b3e23cf01f5332c476d013ea459f1a0363cdc6')
@@ -65,7 +66,7 @@ class Nauty(AutotoolsPackage):
return self.spec.satisfies('@2.6r7')
def url_for_version(self, version):
- url = "http://pallini.di.uniroma1.it/nauty{0}.tar.gz"
+ url = "https://pallini.di.uniroma1.it//nauty{0}.tar.gz"
return url.format(version.joined)
def patch(self):
diff --git a/var/spack/repos/builtin/packages/nbdkit/package.py b/var/spack/repos/builtin/packages/nbdkit/package.py
index 864af474a8..9c8afaf88a 100644
--- a/var/spack/repos/builtin/packages/nbdkit/package.py
+++ b/var/spack/repos/builtin/packages/nbdkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,3 +24,8 @@ class Nbdkit(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ depends_on('pkg-config', type='build')
+
+ def configure_args(self):
+ args = ['bashcompdir={0}'.format(prefix)]
+ return args
diff --git a/var/spack/repos/builtin/packages/ncbi-magicblast/package.py b/var/spack/repos/builtin/packages/ncbi-magicblast/package.py
index 54588463bd..5c9164920d 100644
--- a/var/spack/repos/builtin/packages/ncbi-magicblast/package.py
+++ b/var/spack/repos/builtin/packages/ncbi-magicblast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,9 @@ class NcbiMagicblast(AutotoolsPackage):
version('1.5.0', sha256='b261914d9f7ffc0e655079ceba3e348ba11df1a1f73c4e47a4b1ca154754985c')
version('1.3.0', sha256='47b9b65d595b5cb0c4fef22bc7f7c038fb8d4a0accdbe560d7232820575aff67')
+ depends_on('cpio', type='build')
depends_on('lmdb')
+
configure_directory = 'c++'
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/ncbi-rmblastn/isb-2.9.0+-rmblast-p1.patch b/var/spack/repos/builtin/packages/ncbi-rmblastn/isb-2.9.0+-rmblast-p1.patch
deleted file mode 100644
index 6dd66369e5..0000000000
--- a/var/spack/repos/builtin/packages/ncbi-rmblastn/isb-2.9.0+-rmblast-p1.patch
+++ /dev/null
@@ -1,238 +0,0 @@
-diff -rupN ncbi-blast-2.9.0+-src.orig/c++/src/app/rmblastn/Makefile.in ncbi-blast-2.9.0+-src/c++/src/app/rmblastn/Makefile.in
---- ncbi-blast-2.9.0+-src.orig/c++/src/app/rmblastn/Makefile.in 1969-12-31 16:00:00.000000000 -0800
-+++ ncbi-blast-2.9.0+-src/c++/src/app/rmblastn/Makefile.in 2019-04-01 13:25:24.854320235 -0700
-@@ -0,0 +1,16 @@
-+# $Id: Makefile.in 371962 2012-08-14 09:45:56Z coulouri $
-+
-+# Meta-makefile("APP" project)
-+#################################
-+
-+REQUIRES = objects algo
-+
-+APP_PROJ = rmblastn
-+
-+srcdir = @srcdir@
-+include @builddir@/Makefile.meta
-+
-+.PHONY: all $(APP_PROJ)
-+
-+rmblastn:
-+ ${MAKE} ${MFLAGS} -f Makefile.rmblastn_app
-diff -rupN ncbi-blast-2.9.0+-src.orig/c++/src/app/rmblastn/Makefile.rmblastn.app ncbi-blast-2.9.0+-src/c++/src/app/rmblastn/Makefile.rmblastn.app
---- ncbi-blast-2.9.0+-src.orig/c++/src/app/rmblastn/Makefile.rmblastn.app 1969-12-31 16:00:00.000000000 -0800
-+++ ncbi-blast-2.9.0+-src/c++/src/app/rmblastn/Makefile.rmblastn.app 2019-04-01 13:25:24.856320218 -0700
-@@ -0,0 +1,16 @@
-+WATCHERS = camacho madden maning
-+
-+APP = rmblastn
-+SRC = rmblastn_app
-+LIB_ = $(BLAST_INPUT_LIBS) $(BLAST_LIBS) $(OBJMGR_LIBS)
-+LIB = blast_app_util $(LIB_:%=%$(STATIC))
-+
-+# De-universalize Mac builds to work around a PPC toolchain limitation
-+CFLAGS = $(FAST_CFLAGS:ppc=i386)
-+CXXFLAGS = $(FAST_CXXFLAGS:ppc=i386)
-+LDFLAGS = $(FAST_LDFLAGS:ppc=i386)
-+
-+CPPFLAGS = $(ORIG_CPPFLAGS)
-+LIBS = $(CMPRS_LIBS) $(DL_LIBS) $(PCRE_LIBS) $(NETWORK_LIBS) $(ORIG_LIBS)
-+
-+REQUIRES = objects -Cygwin
-diff -rupN ncbi-blast-2.9.0+-src.orig/c++/src/app/rmblastn/rmblastn_app.cpp ncbi-blast-2.9.0+-src/c++/src/app/rmblastn/rmblastn_app.cpp
---- ncbi-blast-2.9.0+-src.orig/c++/src/app/rmblastn/rmblastn_app.cpp 1969-12-31 16:00:00.000000000 -0800
-+++ ncbi-blast-2.9.0+-src/c++/src/app/rmblastn/rmblastn_app.cpp 2019-04-01 13:25:24.858320200 -0700
-@@ -0,0 +1,183 @@
-+/* $Id: rmblastn_app.cpp 371962 2012-08-14 09:45:56Z coulouri $
-+ * ===========================================================================
-+ *
-+ * PUBLIC DOMAIN NOTICE
-+ *
-+ * ===========================================================================
-+ *
-+ * Authors: Robert M. Hubley
-+ * Christiam Camacho ( original blastn_app.cpp )
-+ *
-+ */
-+
-+/** @file rmblastn_app.cpp
-+ * RMBLASTN command line application
-+ */
-+
-+#ifndef SKIP_DOXYGEN_PROCESSING
-+static char const rcsid[] =
-+ "$Id: rmblastn_app.cpp 371962 2012-08-14 09:45:56Z coulouri $";
-+#endif /* SKIP_DOXYGEN_PROCESSING */
-+
-+#include <ncbi_pch.hpp>
-+#include <corelib/ncbiapp.hpp>
-+#include <algo/blast/api/local_blast.hpp>
-+#include <algo/blast/api/remote_blast.hpp>
-+#include <algo/blast/blastinput/blast_fasta_input.hpp>
-+#include <algo/blast/blastinput/rmblastn_args.hpp>
-+#include <algo/blast/api/objmgr_query_data.hpp>
-+#include <algo/blast/format/blast_format.hpp>
-+#include "../blast/blast_app_util.hpp"
-+
-+#ifndef SKIP_DOXYGEN_PROCESSING
-+USING_NCBI_SCOPE;
-+USING_SCOPE(blast);
-+USING_SCOPE(objects);
-+#endif
-+
-+class CRMBlastnApp : public CNcbiApplication
-+{
-+public:
-+ /** @inheritDoc */
-+ CRMBlastnApp() {
-+ CRef<CVersion> version(new CVersion());
-+ version->SetVersionInfo(new CBlastVersion());
-+ SetFullVersion(version);
-+ }
-+private:
-+ /** @inheritDoc */
-+ virtual void Init();
-+ /** @inheritDoc */
-+ virtual int Run();
-+
-+ /// This application's command line args
-+ CRef<CRMBlastnAppArgs> m_CmdLineArgs;
-+};
-+
-+
-+
-+void CRMBlastnApp::Init()
-+{
-+ // formulate command line arguments
-+ m_CmdLineArgs.Reset(new CRMBlastnAppArgs());
-+
-+ // read the command line
-+
-+ HideStdArgs(fHideLogfile | fHideConffile | fHideFullVersion | fHideXmlHelp | fHideDryRun);
-+ SetupArgDescriptions(m_CmdLineArgs->SetCommandLine());
-+}
-+
-+int CRMBlastnApp::Run(void)
-+{
-+ int status = BLAST_EXIT_SUCCESS;
-+
-+ try {
-+
-+ // Allow the fasta reader to complain on invalid sequence input
-+ SetDiagPostLevel(eDiag_Warning);
-+
-+ /*** Get the BLAST options ***/
-+ const CArgs& args = GetArgs();
-+ CRef<CBlastOptionsHandle> opts_hndl;
-+ if(RecoverSearchStrategy(args, m_CmdLineArgs)) {
-+ opts_hndl.Reset(&*m_CmdLineArgs->SetOptionsForSavedStrategy(args));
-+ }
-+ else {
-+ opts_hndl.Reset(&*m_CmdLineArgs->SetOptions(args));
-+ }
-+ const CBlastOptions& opt = opts_hndl->GetOptions();
-+
-+ /*** Get the query sequence(s) ***/
-+ CRef<CQueryOptionsArgs> query_opts =
-+ m_CmdLineArgs->GetQueryOptionsArgs();
-+ SDataLoaderConfig dlconfig(query_opts->QueryIsProtein());
-+ dlconfig.OptimizeForWholeLargeSequenceRetrieval();
-+ CBlastInputSourceConfig iconfig(dlconfig, query_opts->GetStrand(),
-+ query_opts->UseLowercaseMasks(),
-+ query_opts->GetParseDeflines(),
-+ query_opts->GetRange());
-+ iconfig.SetSkipSeqCheck(true);
-+ CBlastFastaInputSource fasta(m_CmdLineArgs->GetInputStream(), iconfig);
-+ CBlastInput input(&fasta, m_CmdLineArgs->GetQueryBatchSize());
-+
-+ /*** Initialize the database/subject ***/
-+ CRef<CBlastDatabaseArgs> db_args(m_CmdLineArgs->GetBlastDatabaseArgs());
-+ CRef<CLocalDbAdapter> db_adapter;
-+ CRef<CScope> scope;
-+ InitializeSubject(db_args, opts_hndl, m_CmdLineArgs->ExecuteRemotely(),
-+ db_adapter, scope);
-+ _ASSERT(db_adapter && scope);
-+
-+ // Initialize the megablast database index now so we can know whether an indexed search will be run.
-+ // This is only important for the reference in the report, but would be done anyway.
-+ if (opt.GetUseIndex() && !m_CmdLineArgs->ExecuteRemotely()) {
-+ CRef<CBlastOptions> my_options(&(opts_hndl->SetOptions()));
-+ CSetupFactory::InitializeMegablastDbIndex(my_options);
-+ }
-+
-+ /*** Get the formatting options ***/
-+ CRef<CFormattingArgs> fmt_args(m_CmdLineArgs->GetFormattingArgs());
-+ CBlastFormat formatter(opt, *db_adapter,
-+ fmt_args->GetFormattedOutputChoice(),
-+ query_opts->GetParseDeflines(),
-+ m_CmdLineArgs->GetOutputStream(),
-+ fmt_args->GetNumDescriptions(),
-+ fmt_args->GetNumAlignments(),
-+ *scope,
-+ opt.GetMatrixName(),
-+ fmt_args->ShowGis(),
-+ fmt_args->DisplayHtmlOutput(),
-+ opt.GetQueryGeneticCode(),
-+ opt.GetDbGeneticCode(),
-+ opt.GetSumStatisticsMode(),
-+ m_CmdLineArgs->ExecuteRemotely(),
-+ db_adapter->GetFilteringAlgorithm(),
-+ fmt_args->GetCustomOutputFormatSpec(),
-+ m_CmdLineArgs->GetTask() == "megablast",
-+ opt.GetMBIndexLoaded());
-+
-+
-+ formatter.PrintProlog();
-+
-+ /*** Process the input ***/
-+ for (; !input.End(); formatter.ResetScopeHistory()) {
-+
-+ CRef<CBlastQueryVector> query_batch(input.GetNextSeqBatch(*scope));
-+ CRef<IQueryFactory> queries(new CObjMgr_QueryFactory(*query_batch));
-+
-+ SaveSearchStrategy(args, m_CmdLineArgs, queries, opts_hndl);
-+
-+ CRef<CSearchResultSet> results;
-+
-+ if (m_CmdLineArgs->ExecuteRemotely()) {
-+ CRef<CRemoteBlast> rmt_blast =
-+ InitializeRemoteBlast(queries, db_args, opts_hndl,
-+ m_CmdLineArgs->ProduceDebugRemoteOutput());
-+ results = rmt_blast->GetResultSet();
-+ } else {
-+ CLocalBlast lcl_blast(queries, opts_hndl, db_adapter);
-+ lcl_blast.SetNumberOfThreads(m_CmdLineArgs->GetNumThreads());
-+ results = lcl_blast.Run();
-+ }
-+
-+ ITERATE(CSearchResultSet, result, *results) {
-+ formatter.PrintOneResultSet(**result, query_batch);
-+ }
-+ }
-+
-+ formatter.PrintEpilog(opt);
-+
-+ if (m_CmdLineArgs->ProduceDebugOutput()) {
-+ opts_hndl->GetOptions().DebugDumpText(NcbiCerr, "BLAST options", 1);
-+ }
-+
-+ } CATCH_ALL(status)
-+ return status;
-+}
-+
-+#ifndef SKIP_DOXYGEN_PROCESSING
-+int main(int argc, const char* argv[] /*, const char* envp[]*/)
-+{
-+ return CRMBlastnApp().AppMain(argc, argv, 0, eDS_Default, 0);
-+}
-+#endif /* SKIP_DOXYGEN_PROCESSING */
-
---- ncbi-blast-2.9.0+-src.orig/c++/src/objtools/blast/seqdb_reader/seqdbimpl.cpp 2019-08-02 15:07:03.643749527 -0700
-+++ ncbi-blast-2.9.0+-src/c++/src/objtools/blast/seqdb_reader/seqdbimpl.cpp 2019-08-02 15:07:05.839730395 -0700
-@@ -808,7 +808,6 @@
- if (! m_OidListSetup) {
- x_GetOidList(locked);
- }
-- m_Atlas.Unlock(locked);
-
- if (const CSeqDBVol * vol = m_VolSet.FindVol(oid, vol_oid)) {
- return vol->GetSeqIDs(vol_oid);
diff --git a/var/spack/repos/builtin/packages/ncbi-rmblastn/package.py b/var/spack/repos/builtin/packages/ncbi-rmblastn/package.py
index a0f7873c33..3aa0f00c65 100644
--- a/var/spack/repos/builtin/packages/ncbi-rmblastn/package.py
+++ b/var/spack/repos/builtin/packages/ncbi-rmblastn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,14 +9,39 @@ from spack import *
class NcbiRmblastn(AutotoolsPackage):
"""RMBlast search engine for NCBI"""
- homepage = "http://www.repeatmasker.org/RMBlast.html"
+ homepage = "https://www.repeatmasker.org/RMBlast.html"
url = "ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.9.0/ncbi-blast-2.9.0+-src.tar.gz"
+ version('2.11.0', sha256='d88e1858ae7ce553545a795a2120e657a799a6d334f2a07ef0330cc3e74e1954')
version('2.9.0', sha256='a390cc2d7a09422759fc178db84de9def822cbe485916bbb2ec0d215dacdc257')
- patch('isb-2.9.0+-rmblast-p1.patch', when="@2.9.0")
+
+ # There is a corresponding gzipped patch file associated with each version.
+ # According to the documentation, https://www.repeatmasker.org/RMBlast.html,
+ # Download NCBI Blast+ and rmblast patch file:
+ # ncbi-blast-2.11.0+-src.tar.gz
+ # isb-2.11.0+-rmblast.patch.gz
+ # The patch is downloaded and unzipped in the ncbi-rmblastn Spack package
+ # directory to make it available for the patch directive.
+ patch(
+ 'https://www.repeatmasker.org/isb-2.11.0+-rmblast.patch.gz',
+ sha256='ce985abd3512834adb9ad3e4078fbf9608a33a2ee6538a1e94b641490c92f899',
+ archive_sha256='0fc27781c2ea2f17645247e2f3775b5d18c56f0b62761a865347be745ea4f6be',
+ when='@2.11.0'
+ )
+ patch(
+ 'https://www.repeatmasker.org/isb-2.9.0+-rmblast.patch.gz',
+ sha256='ffa0845801aed11f4215b452532f3ff5b3dcb49ac8c14169568aaa585b9450ed',
+ archive_sha256='e746ee480ade608052306fd21f015c8a323f27029f65399275216f9a4c882d59',
+ when='@2.9.0'
+ )
+ depends_on('cpio', type='build')
configure_directory = 'c++'
+ def url_for_version(self, version):
+ url = "ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/{0}/ncbi-blast-{1}+-src.tar.gz"
+ return url.format(version, version)
+
def configure_args(self):
args = [
"--with-mt",
diff --git a/var/spack/repos/builtin/packages/ncbi-toolkit/package.py b/var/spack/repos/builtin/packages/ncbi-toolkit/package.py
index c3be024e81..e8d62cb6c4 100644
--- a/var/spack/repos/builtin/packages/ncbi-toolkit/package.py
+++ b/var/spack/repos/builtin/packages/ncbi-toolkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nccl-tests/package.py b/var/spack/repos/builtin/packages/nccl-tests/package.py
index cb5c0cc9f0..9e1a202da2 100644
--- a/var/spack/repos/builtin/packages/nccl-tests/package.py
+++ b/var/spack/repos/builtin/packages/nccl-tests/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -31,6 +31,11 @@ class NcclTests(MakefilePackage, CudaPackage):
targets.append('MPI=1')
return targets
+ def setup_build_environment(self, env):
+ cuda_arch = self.spec.variants["cuda_arch"].value
+ cuda_gencode = " ".join(self.cuda_flags(cuda_arch))
+ env.set("NVCC_GENCODE", cuda_gencode)
+
def install(self, spec, prefix):
mkdirp(prefix.bin)
install_tree('./build', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/nccl/package.py b/var/spack/repos/builtin/packages/nccl/package.py
index f805f55b1c..ab578f0fd2 100644
--- a/var/spack/repos/builtin/packages/nccl/package.py
+++ b/var/spack/repos/builtin/packages/nccl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,11 @@ class Nccl(MakefilePackage, CudaPackage):
maintainers = ['adamjstewart']
+ version('2.9.9-1', sha256='01629a1bdadbadb2828e26023ba7685bbc07678468cb7df63cc96460f5337e08')
+ version('2.9.8-1', sha256='f6e5d9c10e6e54ee21f9707d2df684083d0cccf87bd5a4dbc795803da2bc9f5a')
+ version('2.9.6-1', sha256='c4b1f5a88f03c0ac8f1dcbe27723cd75cfe051754078d83629efaaed10ce8731')
+ version('2.8.4-1', sha256='a5c1b4da6e1608ee63baa87f6df424bba7a8b1cedad597a25d5b4cf8d56d0865')
+ version('2.8.3-1', sha256='3ae89ddb2956fff081e406a94ff54ae5e52359f5d645ce977c7eba09b3b782e6')
version('2.7.8-1', sha256='fa2bec307270f30fcf6280a85f24ea8801e0ce3b3027937c7325260a890b07e0')
version('2.7.6-1', sha256='60dd9b1743c2db6c05f60959edf98a4477f218115ef910d7ec2662f2fb5cf626')
version('2.7.5-1', sha256='26a8dec6fa0a776eb71205d618d58e26d372621719788a23b33db6fdce4426bf')
@@ -27,8 +32,8 @@ class Nccl(MakefilePackage, CudaPackage):
version('2.4.2-1', sha256='e3dd04b22eb541394bd818e5f78ac23a09cc549690d5d55d6fccc1a36155385a')
version('2.3.7-1', sha256='e6eff80d9d2db13c61f8452e1400ca2f098d2dfe42857cb23413ce081c5b9e9b')
version('2.3.5-5', sha256='bac9950b4d3980c25baa8e3e4541d2dfb4d21edf32ad3b89022d04920357142f')
- version('1.3.4-1', sha256='11e4eb44555bb28b9cbad973dacb4640b82710c9769e719afc2013b63ffaf884')
- version('1.3.0-1', sha256='53f36151061907bdcafad1c26c1d9370a0a8400f561a83704a5138213ba51003')
+ version('1.3.4-1', sha256='11e4eb44555bb28b9cbad973dacb4640b82710c9769e719afc2013b63ffaf884', deprecated=True)
+ version('1.3.0-1', sha256='53f36151061907bdcafad1c26c1d9370a0a8400f561a83704a5138213ba51003', deprecated=True)
variant('cuda', default=True, description='Build with CUDA')
diff --git a/var/spack/repos/builtin/packages/nccmp/package.py b/var/spack/repos/builtin/packages/nccmp/package.py
index db9603b42f..5e36ebfa00 100644
--- a/var/spack/repos/builtin/packages/nccmp/package.py
+++ b/var/spack/repos/builtin/packages/nccmp/package.py
@@ -1,29 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Nccmp(Package, SourceforgePackage):
+class Nccmp(CMakePackage):
"""Compare NetCDF Files"""
homepage = "http://nccmp.sourceforge.net/"
- sourceforge_mirror_path = "nccmp/nccmp-1.8.2.0.tar.gz"
+ url = "https://gitlab.com/remikz/nccmp/-/archive/1.9.0.1/nccmp-1.9.0.1.tar.gz"
+ version('1.9.0.1', sha256='81e9753cf451afe8248d44c841e102349e07cde942b11d1f91b5f85feb622b99')
+ version('1.8.9.0', sha256='da5d2b4dcd52aec96e7d96ba4d0e97efebbd40fe9e640535e5ee3d5cd082ae50')
version('1.8.2.0', sha256='7f5dad4e8670568a71f79d2bcebb08d95b875506d3d5faefafe1a8b3afa14f18')
depends_on('netcdf-c')
-
- def install(self, spec, prefix):
- # Configure says: F90 and F90FLAGS are replaced by FC and
- # FCFLAGS respectively in this configure, please unset
- # F90/F90FLAGS and set FC/FCFLAGS instead and rerun configure
- # again.
- env.pop('F90', None)
- env.pop('F90FLAGS', None)
-
- configure('--prefix=%s' % prefix)
- make()
- make("check")
- make("install")
diff --git a/var/spack/repos/builtin/packages/ncdu/package.py b/var/spack/repos/builtin/packages/ncdu/package.py
index 6218512e29..13f8d369c2 100644
--- a/var/spack/repos/builtin/packages/ncdu/package.py
+++ b/var/spack/repos/builtin/packages/ncdu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,11 @@ class Ncdu(Package):
to run in any minimal POSIX-like environment with ncurses installed.
"""
- homepage = "http://dev.yorhel.nl/ncdu"
- url = "http://dev.yorhel.nl/download/ncdu-1.11.tar.gz"
+ homepage = "https://dev.yorhel.nl/ncdu"
+ url = "https://dev.yorhel.nl/download/ncdu-1.11.tar.gz"
+ version('1.15.1', sha256='b02ddc4dbf1db139cc6fbbe2f54a282770380f0ca5c17089855eab52a9ea3fb0')
+ version('1.14.2', sha256='947a7f5c1d0cd4e338e72b4f5bc5e2873651442cec3cb012e04ad2c37152c6b1')
version('1.13', sha256='f4d9285c38292c2de05e444d0ba271cbfe1a705eee37c2b23ea7c448ab37255a')
version('1.12', sha256='820e4e4747a2a2ec7a2e9f06d2f5a353516362c22496a10a9834f871b877499a')
version('1.11', sha256='d0aea772e47463c281007f279a9041252155a2b2349b18adb9055075e141bb7b')
@@ -26,6 +28,7 @@ class Ncdu(Package):
version('1.7', sha256='70dfe10b4c0843050ee17ab27b7ad4d65714682f117079b85d779f83431fb333')
depends_on("ncurses")
+ depends_on('pkgconfig', type='build')
def install(self, spec, prefix):
configure('--prefix=%s' % prefix,
diff --git a/var/spack/repos/builtin/packages/ncep-post/cmake_findnetcdf.patch b/var/spack/repos/builtin/packages/ncep-post/cmake_findnetcdf.patch
new file mode 100644
index 0000000000..880660f05c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ncep-post/cmake_findnetcdf.patch
@@ -0,0 +1,350 @@
+--- a/CMakeModules/Modules/FindNetCDF.cmake 2021-07-26 07:16:22.760999830 -0600
++++ b/CMakeModules/Modules/FindNetCDF.cmake 2021-05-21 09:22:26.000000000 -0600
+@@ -0,0 +1,347 @@
++# (C) Copyright 2011- ECMWF.
++#
++# This software is licensed under the terms of the Apache Licence Version 2.0
++# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
++# In applying this licence, ECMWF does not waive the privileges and immunities
++# granted to it by virtue of its status as an intergovernmental organisation nor
++# does it submit to any jurisdiction.
++
++# Try to find NetCDF includes and library.
++# Supports static and shared libaries and allows each component to be found in sepearte prefixes.
++#
++# This module defines
++#
++# - NetCDF_FOUND - System has NetCDF
++# - NetCDF_INCLUDE_DIRS - the NetCDF include directories
++# - NetCDF_VERSION - the version of NetCDF
++# - NetCDF_CONFIG_EXECUTABLE - the netcdf-config executable if found
++# - NetCDF_PARALLEL - Boolean True if NetCDF4 has parallel IO support via hdf5 and/or pnetcdf
++# - NetCDF_HAS_PNETCDF - Boolean True if NetCDF4 has pnetcdf support
++#
++# Deprecated Defines
++# - NetCDF_LIBRARIES - [Deprecated] Use NetCDF::NetCDF_<LANG> targets instead.
++#
++#
++# Following components are available:
++#
++# - C - C interface to NetCDF (netcdf)
++# - CXX - CXX4 interface to NetCDF (netcdf_c++4)
++# - Fortran - Fortran interface to NetCDF (netcdff)
++#
++# For each component the following are defined:
++#
++# - NetCDF_<comp>_FOUND - whether the component is found
++# - NetCDF_<comp>_LIBRARIES - the libraries for the component
++# - NetCDF_<comp>_LIBRARY_SHARED - Boolean is true if libraries for component are shared
++# - NetCDF_<comp>_INCLUDE_DIRS - the include directories for specified component
++# - NetCDF::NetCDF_<comp> - target of component to be used with target_link_libraries()
++#
++# The following paths will be searched in order if set in CMake (first priority) or environment (second priority)
++#
++# - NetCDF_ROOT - root of NetCDF installation
++# - NetCDF_PATH - root of NetCDF installation
++#
++# The search process begins with locating NetCDF Include headers. If these are in a non-standard location,
++# set one of the following CMake or environment variables to point to the location:
++#
++# - NetCDF_INCLUDE_DIR or NetCDF_${comp}_INCLUDE_DIR
++# - NetCDF_INCLUDE_DIRS or NetCDF_${comp}_INCLUDE_DIR
++#
++# Notes:
++#
++# - Use "NetCDF::NetCDF_<LANG>" targets only. NetCDF_LIBRARIES exists for backwards compatibility and should not be used.
++# - These targets have all the knowledge of include directories and library search directories, and a single
++# call to target_link_libraries will provide all these transitive properties to your target. Normally all that is
++# needed to build and link against NetCDF is, e.g.:
++# target_link_libraries(my_c_tgt PUBLIC NetCDF::NetCDF_C)
++# - "NetCDF" is always the preferred naming for this package, its targets, variables, and environment variables
++# - For compatibility, some variables are also set/checked using alternate names NetCDF4, NETCDF, or NETCDF4
++# - Environments relying on these older environment variable names should move to using a "NetCDF_ROOT" environment variable
++# - Preferred component capitalization follows the CMake LANGUAGES variables: i.e., C, Fortran, CXX
++# - For compatibility, alternate capitalizations are supported but should not be used.
++# - If no components are defined, all components will be searched
++#
++
++list( APPEND _possible_components C CXX Fortran )
++
++## Include names for each component
++set( NetCDF_C_INCLUDE_NAME netcdf.h )
++set( NetCDF_CXX_INCLUDE_NAME netcdf )
++set( NetCDF_Fortran_INCLUDE_NAME netcdf.mod )
++
++## Library names for each component
++set( NetCDF_C_LIBRARY_NAME netcdf )
++set( NetCDF_CXX_LIBRARY_NAME netcdf_c++4 )
++set( NetCDF_Fortran_LIBRARY_NAME netcdff )
++
++## Enumerate search components
++foreach( _comp ${_possible_components} )
++ string( TOUPPER "${_comp}" _COMP )
++ set( _arg_${_COMP} ${_comp} )
++ set( _name_${_COMP} ${_comp} )
++endforeach()
++
++set( _search_components C)
++foreach( _comp ${${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS} )
++ string( TOUPPER "${_comp}" _COMP )
++ set( _arg_${_COMP} ${_comp} )
++ list( APPEND _search_components ${_name_${_COMP}} )
++ if( NOT _name_${_COMP} )
++ message(SEND_ERROR "Find${CMAKE_FIND_PACKAGE_NAME}: COMPONENT ${_comp} is not a valid component. Valid components: ${_possible_components}" )
++ endif()
++endforeach()
++list( REMOVE_DUPLICATES _search_components )
++
++## Search hints for finding include directories and libraries
++foreach( _comp IN ITEMS "_" "_C_" "_Fortran_" "_CXX_" )
++ foreach( _name IN ITEMS NetCDF4 NetCDF NETCDF4 NETCDF )
++ foreach( _var IN ITEMS ROOT PATH )
++ list(APPEND _search_hints ${${_name}${_comp}${_var}} $ENV{${_name}${_comp}${_var}} )
++ list(APPEND _include_search_hints
++ ${${_name}${_comp}INCLUDE_DIR} $ENV{${_name}${_comp}INCLUDE_DIR}
++ ${${_name}${_comp}INCLUDE_DIRS} $ENV{${_name}${_comp}INCLUDE_DIRS} )
++ endforeach()
++ endforeach()
++endforeach()
++#Old-school HPC module env variable names
++foreach( _name IN ITEMS NetCDF4 NetCDF NETCDF4 NETCDF )
++ foreach( _comp IN ITEMS "_C" "_Fortran" "_CXX" )
++ list(APPEND _search_hints ${${_name}} $ENV{${_name}})
++ list(APPEND _search_hints ${${_name}${_comp}} $ENV{${_name}${_comp}})
++ endforeach()
++endforeach()
++
++## Find headers for each component
++set(NetCDF_INCLUDE_DIRS)
++set(_new_search_components)
++foreach( _comp IN LISTS _search_components )
++ if(NOT ${PROJECT_NAME}_NetCDF_${_comp}_FOUND)
++ list(APPEND _new_search_components ${_comp})
++ endif()
++ find_file(NetCDF_${_comp}_INCLUDE_FILE
++ NAMES ${NetCDF_${_comp}_INCLUDE_NAME}
++ DOC "NetCDF ${_comp} include directory"
++ HINTS ${_include_search_hints} ${_search_hints}
++ PATH_SUFFIXES include include/netcdf
++ )
++ mark_as_advanced(NetCDF_${_comp}_INCLUDE_FILE)
++ message(DEBUG "NetCDF_${_comp}_INCLUDE_FILE: ${NetCDF_${_comp}_INCLUDE_FILE}")
++ if( NetCDF_${_comp}_INCLUDE_FILE )
++ get_filename_component(NetCDF_${_comp}_INCLUDE_FILE ${NetCDF_${_comp}_INCLUDE_FILE} ABSOLUTE)
++ get_filename_component(NetCDF_${_comp}_INCLUDE_DIR ${NetCDF_${_comp}_INCLUDE_FILE} DIRECTORY)
++ list(APPEND NetCDF_INCLUDE_DIRS ${NetCDF_${_comp}_INCLUDE_DIR})
++ endif()
++endforeach()
++if(NetCDF_INCLUDE_DIRS)
++ list(REMOVE_DUPLICATES NetCDF_INCLUDE_DIRS)
++endif()
++set(NetCDF_INCLUDE_DIRS "${NetCDF_INCLUDE_DIRS}" CACHE STRING "NetCDF Include directory paths" FORCE)
++
++## Find n*-config executables for search components
++foreach( _comp IN LISTS _search_components )
++ if( _comp MATCHES "^(C)$" )
++ set(_conf "c")
++ elseif( _comp MATCHES "^(Fortran)$" )
++ set(_conf "f")
++ elseif( _comp MATCHES "^(CXX)$" )
++ set(_conf "cxx4")
++ endif()
++ find_program( NetCDF_${_comp}_CONFIG_EXECUTABLE
++ NAMES n${_conf}-config
++ HINTS ${NetCDF_INCLUDE_DIRS} ${_include_search_hints} ${_search_hints}
++ PATH_SUFFIXES bin Bin ../bin ../../bin
++ DOC "NetCDF n${_conf}-config helper" )
++ message(DEBUG "NetCDF_${_comp}_CONFIG_EXECUTABLE: ${NetCDF_${_comp}_CONFIG_EXECUTABLE}")
++endforeach()
++
++set(_C_libs_flag --libs)
++set(_Fortran_libs_flag --flibs)
++set(_CXX_libs_flag --libs)
++set(_C_includes_flag --includedir)
++set(_Fortran_includes_flag --includedir)
++set(_CXX_includes_flag --includedir)
++function(netcdf_config exec flag output_var)
++ set(${output_var} False PARENT_SCOPE)
++ if( exec )
++ execute_process( COMMAND ${exec} ${flag} RESULT_VARIABLE _ret OUTPUT_VARIABLE _val)
++ if( _ret EQUAL 0 )
++ string( STRIP ${_val} _val )
++ set( ${output_var} ${_val} PARENT_SCOPE )
++ endif()
++ endif()
++endfunction()
++
++## Detect additional package properties
++netcdf_config(${NetCDF_C_CONFIG_EXECUTABLE} --has-parallel4 _val)
++if( NOT _val MATCHES "^(yes|no)$" )
++ netcdf_config(${NetCDF_C_CONFIG_EXECUTABLE} --has-parallel _val)
++endif()
++if( _val MATCHES "^(yes)$" )
++ set(NetCDF_PARALLEL TRUE CACHE STRING "NetCDF has parallel IO capability via pnetcdf or hdf5." FORCE)
++else()
++ set(NetCDF_PARALLEL FALSE CACHE STRING "NetCDF has no parallel IO capability." FORCE)
++endif()
++
++if(NetCDF_PARALLEL)
++ find_package(MPI REQUIRED)
++endif()
++
++## Find libraries for each component
++set( NetCDF_LIBRARIES )
++foreach( _comp IN LISTS _search_components )
++ string( TOUPPER "${_comp}" _COMP )
++
++ find_library( NetCDF_${_comp}_LIBRARY
++ NAMES ${NetCDF_${_comp}_LIBRARY_NAME}
++ DOC "NetCDF ${_comp} library"
++ HINTS ${NetCDF_${_comp}_INCLUDE_DIRS} ${_search_hints}
++ PATH_SUFFIXES lib64 lib ../lib64 ../lib ../../lib64 ../../lib )
++ mark_as_advanced( NetCDF_${_comp}_LIBRARY )
++ get_filename_component(NetCDF_${_comp}_LIBRARY ${NetCDF_${_comp}_LIBRARY} ABSOLUTE)
++ set(NetCDF_${_comp}_LIBRARY ${NetCDF_${_comp}_LIBRARY} CACHE STRING "NetCDF ${_comp} library" FORCE)
++ message(DEBUG "NetCDF_${_comp}_LIBRARY: ${NetCDF_${_comp}_LIBRARY}")
++
++ if( NetCDF_${_comp}_LIBRARY )
++ if( NetCDF_${_comp}_LIBRARY MATCHES ".a$" )
++ set( NetCDF_${_comp}_LIBRARY_SHARED FALSE )
++ set( _library_type STATIC)
++ else()
++ list( APPEND NetCDF_LIBRARIES ${NetCDF_${_comp}_LIBRARY} )
++ set( NetCDF_${_comp}_LIBRARY_SHARED TRUE )
++ set( _library_type SHARED)
++ endif()
++ endif()
++
++ #Use nc-config to set per-component LIBRARIES variable if possible
++ netcdf_config( ${NetCDF_${_comp}_CONFIG_EXECUTABLE} ${_${_comp}_libs_flag} _val )
++ if( _val )
++ set( NetCDF_${_comp}_LIBRARIES ${_val} )
++ if(NOT NetCDF_${_comp}_LIBRARY_SHARED AND NOT NetCDF_${_comp}_FOUND) #Static targets should use nc_config to get a proper link line with all necessary static targets.
++ list( APPEND NetCDF_LIBRARIES ${NetCDF_${_comp}_LIBRARIES} )
++ endif()
++ else()
++ set( NetCDF_${_comp}_LIBRARIES ${NetCDF_${_comp}_LIBRARY} )
++ if(NOT NetCDF_${_comp}_LIBRARY_SHARED)
++ message(SEND_ERROR "Unable to properly find NetCDF. Found static libraries at: ${NetCDF_${_comp}_LIBRARY} but could not run nc-config: ${NetCDF_CONFIG_EXECUTABLE}")
++ endif()
++ endif()
++
++ #Use nc-config to set per-component INCLUDE_DIRS variable if possible
++ netcdf_config( ${NetCDF_${_comp}_CONFIG_EXECUTABLE} ${_${_comp}_includes_flag} _val )
++ if( _val )
++ string( REPLACE " " ";" _val ${_val} )
++ set( NetCDF_${_comp}_INCLUDE_DIRS ${_val} )
++ else()
++ set( NetCDF_${_comp}_INCLUDE_DIRS ${NetCDF_${_comp}_INCLUDE_DIR} )
++ endif()
++
++ if( NetCDF_${_comp}_LIBRARIES AND NetCDF_${_comp}_INCLUDE_DIRS )
++ set( ${CMAKE_FIND_PACKAGE_NAME}_${_arg_${_COMP}}_FOUND TRUE )
++ if (NOT TARGET NetCDF::NetCDF_${_comp})
++ add_library(NetCDF::NetCDF_${_comp} ${_library_type} IMPORTED)
++ set_target_properties(NetCDF::NetCDF_${_comp} PROPERTIES
++ IMPORTED_LOCATION ${NetCDF_${_comp}_LIBRARY}
++ INTERFACE_INCLUDE_DIRECTORIES "${NetCDF_${_comp}_INCLUDE_DIRS}"
++ INTERFACE_LINK_LIBRARIES ${NetCDF_${_comp}_LIBRARIES} )
++ if( NOT _comp MATCHES "^(C)$" )
++ target_link_libraries(NetCDF::NetCDF_${_comp} INTERFACE NetCDF::NetCDF_C)
++ endif()
++ if(MPI_${_comp}_FOUND)
++ target_link_libraries(NetCDF::NetCDF_${_comp} INTERFACE MPI::MPI_${_comp})
++ endif()
++ endif()
++ endif()
++endforeach()
++if(NetCDF_LIBRARIES AND NetCDF_${_comp}_LIBRARY_SHARED)
++ list(REMOVE_DUPLICATES NetCDF_LIBRARIES)
++endif()
++set(NetCDF_LIBRARIES "${NetCDF_LIBRARIES}" CACHE STRING "NetCDF library targets" FORCE)
++
++## Find version via netcdf-config if possible
++if (NetCDF_INCLUDE_DIRS)
++ if( NetCDF_C_CONFIG_EXECUTABLE )
++ netcdf_config( ${NetCDF_C_CONFIG_EXECUTABLE} --version _vers )
++ if( _vers )
++ string(REGEX REPLACE ".* ((([0-9]+)\\.)+([0-9]+)).*" "\\1" NetCDF_VERSION "${_vers}" )
++ endif()
++ else()
++ foreach( _dir IN LISTS NetCDF_INCLUDE_DIRS)
++ if( EXISTS "${_dir}/netcdf_meta.h" )
++ file(STRINGS "${_dir}/netcdf_meta.h" _netcdf_version_lines
++ REGEX "#define[ \t]+NC_VERSION_(MAJOR|MINOR|PATCH|NOTE)")
++ string(REGEX REPLACE ".*NC_VERSION_MAJOR *\([0-9]*\).*" "\\1" _netcdf_version_major "${_netcdf_version_lines}")
++ string(REGEX REPLACE ".*NC_VERSION_MINOR *\([0-9]*\).*" "\\1" _netcdf_version_minor "${_netcdf_version_lines}")
++ string(REGEX REPLACE ".*NC_VERSION_PATCH *\([0-9]*\).*" "\\1" _netcdf_version_patch "${_netcdf_version_lines}")
++ string(REGEX REPLACE ".*NC_VERSION_NOTE *\"\([^\"]*\)\".*" "\\1" _netcdf_version_note "${_netcdf_version_lines}")
++ set(NetCDF_VERSION "${_netcdf_version_major}.${_netcdf_version_minor}.${_netcdf_version_patch}${_netcdf_version_note}")
++ unset(_netcdf_version_major)
++ unset(_netcdf_version_minor)
++ unset(_netcdf_version_patch)
++ unset(_netcdf_version_note)
++ unset(_netcdf_version_lines)
++ endif()
++ endforeach()
++ endif()
++endif ()
++
++## Finalize find_package
++include(FindPackageHandleStandardArgs)
++
++if(NOT NetCDF_FOUND OR _new_search_components)
++ find_package_handle_standard_args( ${CMAKE_FIND_PACKAGE_NAME}
++ REQUIRED_VARS NetCDF_INCLUDE_DIRS NetCDF_LIBRARIES
++ VERSION_VAR NetCDF_VERSION
++ HANDLE_COMPONENTS )
++endif()
++
++foreach( _comp IN LISTS _search_components )
++ if( NetCDF_${_comp}_FOUND )
++ #Record found components to avoid duplication in NetCDF_LIBRARIES for static libraries
++ set(NetCDF_${_comp}_FOUND ${NetCDF_${_comp}_FOUND} CACHE BOOL "NetCDF ${_comp} Found" FORCE)
++ #Set a per-package, per-component found variable to communicate between multiple calls to find_package()
++ set(${PROJECT_NAME}_NetCDF_${_comp}_FOUND True)
++ endif()
++endforeach()
++
++if( ${CMAKE_FIND_PACKAGE_NAME}_FOUND AND NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY AND _new_search_components)
++ message( STATUS "Find${CMAKE_FIND_PACKAGE_NAME} defines targets:" )
++ message( STATUS " - NetCDF_VERSION [${NetCDF_VERSION}]")
++ message( STATUS " - NetCDF_PARALLEL [${NetCDF_PARALLEL}]")
++ foreach( _comp IN LISTS _new_search_components )
++ string( TOUPPER "${_comp}" _COMP )
++ message( STATUS " - NetCDF_${_comp}_CONFIG_EXECUTABLE [${NetCDF_${_comp}_CONFIG_EXECUTABLE}]")
++ if( ${CMAKE_FIND_PACKAGE_NAME}_${_arg_${_COMP}}_FOUND )
++ get_filename_component(_root ${NetCDF_${_comp}_INCLUDE_DIR}/.. ABSOLUTE)
++ if( NetCDF_${_comp}_LIBRARY_SHARED )
++ message( STATUS " - NetCDF::NetCDF_${_comp} [SHARED] [Root: ${_root}] Lib: ${NetCDF_${_comp}_LIBRARY} ")
++ else()
++ message( STATUS " - NetCDF::NetCDF_${_comp} [STATIC] [Root: ${_root}] Lib: ${NetCDF_${_comp}_LIBRARY} ")
++ endif()
++ endif()
++ endforeach()
++endif()
++
++foreach( _prefix NetCDF NetCDF4 NETCDF NETCDF4 ${CMAKE_FIND_PACKAGE_NAME} )
++ set( ${_prefix}_INCLUDE_DIRS ${NetCDF_INCLUDE_DIRS} )
++ set( ${_prefix}_LIBRARIES ${NetCDF_LIBRARIES})
++ set( ${_prefix}_VERSION ${NetCDF_VERSION} )
++ set( ${_prefix}_FOUND ${${CMAKE_FIND_PACKAGE_NAME}_FOUND} )
++ set( ${_prefix}_CONFIG_EXECUTABLE ${NetCDF_CONFIG_EXECUTABLE} )
++ set( ${_prefix}_PARALLEL ${NetCDF_PARALLEL} )
++
++ foreach( _comp ${_search_components} )
++ string( TOUPPER "${_comp}" _COMP )
++ set( _arg_comp ${_arg_${_COMP}} )
++ set( ${_prefix}_${_comp}_FOUND ${${CMAKE_FIND_PACKAGE_NAME}_${_arg_comp}_FOUND} )
++ set( ${_prefix}_${_COMP}_FOUND ${${CMAKE_FIND_PACKAGE_NAME}_${_arg_comp}_FOUND} )
++ set( ${_prefix}_${_arg_comp}_FOUND ${${CMAKE_FIND_PACKAGE_NAME}_${_arg_comp}_FOUND} )
++
++ set( ${_prefix}_${_comp}_LIBRARIES ${NetCDF_${_comp}_LIBRARIES} )
++ set( ${_prefix}_${_COMP}_LIBRARIES ${NetCDF_${_comp}_LIBRARIES} )
++ set( ${_prefix}_${_arg_comp}_LIBRARIES ${NetCDF_${_comp}_LIBRARIES} )
++
++ set( ${_prefix}_${_comp}_INCLUDE_DIRS ${NetCDF_${_comp}_INCLUDE_DIRS} )
++ set( ${_prefix}_${_COMP}_INCLUDE_DIRS ${NetCDF_${_comp}_INCLUDE_DIRS} )
++ set( ${_prefix}_${_arg_comp}_INCLUDE_DIRS ${NetCDF_${_comp}_INCLUDE_DIRS} )
++ endforeach()
++endforeach()
diff --git a/var/spack/repos/builtin/packages/ncep-post/package.py b/var/spack/repos/builtin/packages/ncep-post/package.py
new file mode 100644
index 0000000000..fd82899fad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ncep-post/package.py
@@ -0,0 +1,49 @@
+# Copyright 2013-2021 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 NcepPost(CMakePackage):
+ """The NCEP Post Processor is a software package designed
+ to generate useful products from raw model output."""
+
+ homepage = "https://github.com/NOAA-EMC/EMC_post"
+ url = "https://github.com/NOAA-EMC/EMC_post/archive/refs/tags/upp_v10.0.8.tar.gz"
+
+ maintainers = ['t-brown']
+
+ version('10.0.8', sha256='b3b27d03250450159a8261c499d57168bdd833790c1c80c854d081fe37aaab47')
+
+ variant('wrf-io', default=True, description='Enable WRF I/O.')
+
+ depends_on('bacio')
+ depends_on('crtm')
+ depends_on('g2')
+ depends_on('g2tmpl')
+ depends_on('gfsio')
+ depends_on('ip')
+ depends_on('jasper')
+ depends_on('libpng')
+ depends_on('mpi')
+ depends_on('netcdf-c')
+ depends_on('netcdf-fortran')
+ depends_on('nemsio')
+ depends_on('sfcio')
+ depends_on('sigio')
+ depends_on('sp')
+ depends_on('w3emc')
+ depends_on('w3nco')
+ depends_on('w3nco')
+ depends_on('wrf-io', when='+wrf-io')
+ depends_on('zlib')
+
+ patch('cmake_findnetcdf.patch')
+
+ def cmake_args(self):
+ args = []
+ if '+wrf-io' in self.spec:
+ args.append('-DBUILD_WITH_WRFIO:BOOL=ON')
+ return args
diff --git a/var/spack/repos/builtin/packages/ncftp/package.py b/var/spack/repos/builtin/packages/ncftp/package.py
index 386d90b01a..e30d3c918f 100644
--- a/var/spack/repos/builtin/packages/ncftp/package.py
+++ b/var/spack/repos/builtin/packages/ncftp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Ncftp(AutotoolsPackage):
"""NcFTP Client is a set of application programs implementing the
File Transfer Protocol."""
- homepage = "http://www.ncftp.com/"
+ homepage = "https://www.ncftp.com/"
url = "ftp://ftp.ncftp.com/ncftp/ncftp-3.2.6-src.tar.gz"
version('3.2.6', sha256='129e5954850290da98af012559e6743de193de0012e972ff939df9b604f81c23')
diff --git a/var/spack/repos/builtin/packages/ncl/for_aarch64.patch b/var/spack/repos/builtin/packages/ncl/for_aarch64.patch
new file mode 100644
index 0000000000..23799d8d00
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ncl/for_aarch64.patch
@@ -0,0 +1,10 @@
+--- spack-src/config/ymake.bak 2021-02-26 14:49:53.611863443 +0900
++++ spack-src/config/ymake 2021-02-26 14:52:08.501852485 +0900
+@@ -367,6 +367,7 @@
+ case x*64:
+ case p*64:
+ case alpha:
++ case aarch64:
+ set model = $mach
+ set arch = $mach
+ set sysincs = LINUX
diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py
index 0046f425b8..a4bd503d07 100644
--- a/var/spack/repos/builtin/packages/ncl/package.py
+++ b/var/spack/repos/builtin/packages/ncl/package.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
import tempfile
+from spack import *
+
class Ncl(Package):
"""NCL is an interpreted language designed specifically for
@@ -23,6 +24,8 @@ class Ncl(Package):
version('6.5.0', sha256='133446f3302eddf237db56bf349e1ebf228240a7320699acc339a3d7ee414591')
version('6.4.0', sha256='0962ae1a1d716b182b3b27069b4afe66bf436c64c312ddfcf5f34d4ec60153c8')
+ patch('for_aarch64.patch', when='target=aarch64:')
+
patch('spack_ncl.patch')
# Make ncl compile with hdf5 1.10 (upstream as of 6.5.0)
patch('hdf5.patch', when="@6.4.0")
@@ -92,7 +95,7 @@ class Ncl(Package):
# triangle's features.
resource(
name='triangle',
- url='http://www.netlib.org/voronoi/triangle.zip',
+ url='https://www.netlib.org/voronoi/triangle.zip',
sha256='1766327add038495fa3499e9b7cc642179229750f7201b94f8e1b7bee76f8480',
placement='triangle_src',
when='+triangle')
diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py
index cd30f8742a..ad26bf792f 100644
--- a/var/spack/repos/builtin/packages/nco/package.py
+++ b/var/spack/repos/builtin/packages/nco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,9 @@ class Nco(AutotoolsPackage):
netCDF-accessible formats"""
homepage = "http://nco.sourceforge.net/"
- url = "https://github.com/nco/nco/archive/4.6.7.tar.gz"
+ url = "https://github.com/nco/nco/archive/5.0.1.tar.gz"
+ version('5.0.1', sha256='37d11ffe582aa0ee89f77a7b9a176b41e41900e9ab709e780ec0caf52ad60c4b')
version('4.9.3', sha256='eade5b79f3814b11ae3f52c34159567e76a73f05f0ab141eccaac68f0ca94aee')
version('4.9.2', sha256='1a98c37c946c00232fa7319d00d1d80f77603adda7c9239d10d68a8a3545a4d5')
version('4.9.1', sha256='9592efaf0dfd6ccdefd0b417d990cfccae7e89c20d90fb44ead6263009778834')
diff --git a/var/spack/repos/builtin/packages/ncompress/package.py b/var/spack/repos/builtin/packages/ncompress/package.py
index c3d31ce682..f95dc9b7d4 100644
--- a/var/spack/repos/builtin/packages/ncompress/package.py
+++ b/var/spack/repos/builtin/packages/ncompress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ncurses/package.py b/var/spack/repos/builtin/packages/ncurses/package.py
index 068bba6993..e9b469647e 100644
--- a/var/spack/repos/builtin/packages/ncurses/package.py
+++ b/var/spack/repos/builtin/packages/ncurses/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+from spack import *
+
class Ncurses(AutotoolsPackage, GNUMirrorPackage):
"""The ncurses (new curses) library is a free software emulation of
@@ -15,7 +16,7 @@ class Ncurses(AutotoolsPackage, GNUMirrorPackage):
characters and function-key mapping, and has all the other
SYSV-curses enhancements over BSD curses."""
- homepage = "http://invisible-island.net/ncurses/ncurses.html"
+ homepage = "https://invisible-island.net/ncurses/ncurses.html"
# URL must remain http:// so Spack can bootstrap curl
gnu_mirror_path = "ncurses/ncurses-6.1.tar.gz"
@@ -31,6 +32,10 @@ class Ncurses(AutotoolsPackage, GNUMirrorPackage):
variant('termlib', default=True,
description='Enables termlib features. This is an extra '
'lib and optional internal dependency.')
+ # Build ncurses with ABI compaitibility.
+ variant('abi', default='none', description='choose abi compatibility', values=('none', '5', '6'), multi=False)
+
+ conflicts('abi=6', when='@:5.9', msg='6 is not compatible with this release')
depends_on('pkgconfig', type='build')
@@ -65,6 +70,15 @@ class Ncurses(AutotoolsPackage, GNUMirrorPackage):
break
if usingSymlinks:
variants += '+symlinks'
+
+ abiVersion = 'none'
+ output = Executable(exe)('--abi-version', output=str, error=str)
+ if '6' in output:
+ abiVersion = '6'
+ elif '5' in output:
+ abiVersion = '5'
+ variants += ' abi=' + abiVersion
+
results.append(variants)
return results
@@ -108,6 +122,10 @@ class Ncurses(AutotoolsPackage, GNUMirrorPackage):
'--enable-tcap-names',
'--with-versioned-syms'))
+ abi = self.spec.variants['abi'].value
+ if abi != 'none':
+ opts.append('--with-abi-version=' + abi)
+
prefix = '--prefix={0}'.format(prefix)
configure = Executable('../configure')
diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py
index 3eb944ce9c..22fe338c50 100644
--- a/var/spack/repos/builtin/packages/ncview/package.py
+++ b/var/spack/repos/builtin/packages/ncview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class Ncview(AutotoolsPackage):
"""Simple viewer for NetCDF files."""
- homepage = "http://meteora.ucsd.edu/~pierce/ncview_home_page.html"
+ homepage = "https://cirrus.ucsd.edu/ncview/"
url = "ftp://cirrus.ucsd.edu/pub/ncview/ncview-2.1.7.tar.gz"
version('2.1.8', sha256='e8badc507b9b774801288d1c2d59eb79ab31b004df4858d0674ed0d87dfc91be')
diff --git a/var/spack/repos/builtin/packages/ndiff/package.py b/var/spack/repos/builtin/packages/ndiff/package.py
index a688a09241..145011cfe0 100644
--- a/var/spack/repos/builtin/packages/ndiff/package.py
+++ b/var/spack/repos/builtin/packages/ndiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,8 +15,8 @@ class Ndiff(Package):
"""
- homepage = "http://ftp.math.utah.edu/pub/ndiff/"
- url = "http://ftp.math.utah.edu/pub/ndiff/ndiff-2.00.tar.gz"
+ homepage = "https://ftp.math.utah.edu/pub/ndiff/"
+ url = "https://ftp.math.utah.edu/pub/ndiff/ndiff-2.00.tar.gz"
version('2.00', sha256='f2bbd9a2c8ada7f4161b5e76ac5ebf9a2862cab099933167fe604b88f000ec2c')
version('1.00', sha256='d4be3ab38e4b87da8d689fe47413e01a7bfdf8c8627bfb673aac37953a463a92')
diff --git a/var/spack/repos/builtin/packages/neartree/package.py b/var/spack/repos/builtin/packages/neartree/package.py
new file mode 100644
index 0000000000..51da0d1813
--- /dev/null
+++ b/var/spack/repos/builtin/packages/neartree/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 Neartree(MakefilePackage):
+ """This is a release of an API for finding nearest neighbors among
+ points in spaces of arbitrary dimensions."""
+
+ homepage = "http://neartree.sourceforge.net/"
+ url = "https://downloads.sourceforge.net/project/neartree/neartree/NearTree-3.1/NearTree-3.1.tar.gz"
+
+ version('3.1', sha256='07b668516f15a7c13c219fd005b14e73bced5dc6b23857edcc24d3e5cf0d3be3')
+
+ depends_on('libtool', type='build')
+ depends_on('cvector')
+
+ def edit(self, spec, prefix):
+ mf = FileFilter('Makefile')
+ mf.filter(r'^CC.+', "CC = {0}".format(spack_cc))
+ mf.filter(r'^INSTALL_PREFIX .+', "INSTALL_PREFIX = {0}".format(prefix))
+
+ def build(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin/packages/nek5000/package.py b/var/spack/repos/builtin/packages/nek5000/package.py
index 221b21cbb5..017079c771 100644
--- a/var/spack/repos/builtin/packages/nek5000/package.py
+++ b/var/spack/repos/builtin/packages/nek5000/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 shutil import copyfile
import os
+from shutil import copyfile
+
+from spack import *
class Nek5000(Package):
@@ -94,6 +95,11 @@ class Nek5000(Package):
else:
filter_file(r'^#MPI=0', 'MPI=0', 'makenek')
+ # Make sure nekmpi wrapper uses srun when we know OpenMPI
+ # is not built with mpiexec
+ if '^openmpi~legacylaunchers' in spec:
+ filter_file(r'mpiexec -np', 'srun -n', 'nekmpi')
+
if '+profiling' not in spec:
filter_file(r'^#PROFILING=0', 'PROFILING=0', 'makenek')
diff --git a/var/spack/repos/builtin/packages/nekbone/package.py b/var/spack/repos/builtin/packages/nekbone/package.py
index 6f8cd220ff..c70b3ffa84 100644
--- a/var/spack/repos/builtin/packages/nekbone/package.py
+++ b/var/spack/repos/builtin/packages/nekbone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nekcem/package.py b/var/spack/repos/builtin/packages/nekcem/package.py
index 09e1988224..80a41360f0 100644
--- a/var/spack/repos/builtin/packages/nekcem/package.py
+++ b/var/spack/repos/builtin/packages/nekcem/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 json
+import os
+
+from spack import *
class Nekcem(Package):
diff --git a/var/spack/repos/builtin/packages/nekrs/package.py b/var/spack/repos/builtin/packages/nekrs/package.py
new file mode 100644
index 0000000000..2a228e0347
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nekrs/package.py
@@ -0,0 +1,133 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Nekrs(Package, CudaPackage, ROCmPackage):
+ """nekRS is an open-source Navier Stokes solver based on the spectral
+ element method targeting classical processors and hardware accelerators
+ like GPUs"""
+
+ homepage = "https://github.com/Nek5000/nekRS"
+ git = "https://github.com/Nek5000/nekRS.git"
+
+ tags = ['cfd', 'flow', 'hpc', 'solver', 'navier-stokes',
+ 'spectral-elements', 'fluid', 'ecp', 'ecp-apps']
+
+ maintainers = ['thilinarmtb', 'stgeke']
+
+ version('21.0', tag='v21.0')
+
+ variant('opencl',
+ default=False,
+ description='Activates support for OpenCL')
+
+ # Conflicts:
+ # nekrs includes following packages, but in order to build as part of
+ # CEED we can't leave them in as conflicts. They should be enabled
+ # sometime in future.
+ # for pkg in ['occa', 'hyper', 'nek5000', 'blas', 'lapack', 'gslib']:
+ # conflicts('^' + pkg, msg=(pkg + " is built into nekRS"))
+
+ # Dependencies
+ depends_on('mpi')
+ depends_on('git')
+ depends_on('cmake')
+
+ @run_before('install')
+ def fortran_check(self):
+ if not self.compiler.f77:
+ msg = 'Cannot build NekRS without a Fortran 77 compiler.'
+ raise RuntimeError(msg)
+
+ # Following 4 methods are stolen from OCCA since we are using OCCA
+ # shipped with nekRS.
+ def _setup_runtime_flags(self, s_env):
+ spec = self.spec
+ s_env.set('OCCA_CXX', self.compiler.cxx)
+
+ cxxflags = spec.compiler_flags['cxxflags']
+ if cxxflags:
+ # Run-time compiler flags:
+ s_env.set('OCCA_CXXFLAGS', ' '.join(cxxflags))
+
+ if '+cuda' in spec:
+ cuda_dir = spec['cuda'].prefix
+ # Run-time CUDA compiler:
+ s_env.set('OCCA_CUDA_COMPILER',
+ join_path(cuda_dir, 'bin', 'nvcc'))
+
+ def setup_build_environment(self, env):
+ spec = self.spec
+ # The environment variable CXX is automatically set to the Spack
+ # compiler wrapper.
+
+ # The cxxflags, if specified, will be set by the Spack compiler wrapper
+ # while the environment variable CXXFLAGS will remain undefined.
+ # We define CXXFLAGS in the environment to tell OCCA to use the user
+ # specified flags instead of its defaults. This way the compiler will
+ # get the cxxflags twice - once from the Spack compiler wrapper and
+ # second time from OCCA - however, only the second one will be seen in
+ # the verbose output, so we keep both.
+ cxxflags = spec.compiler_flags['cxxflags']
+ if cxxflags:
+ env.set('CXXFLAGS', ' '.join(cxxflags))
+
+ # For the cuda, openmp, and opencl variants, set the environment
+ # variable OCCA_{CUDA,OPENMP,OPENCL}_ENABLED only if the variant is
+ # disabled. Otherwise, let OCCA autodetect what is available.
+
+ if '+cuda' in spec:
+ cuda_dir = spec['cuda'].prefix
+ cuda_libs_list = ['libcuda', 'libcudart', 'libOpenCL']
+ cuda_libs = find_libraries(cuda_libs_list,
+ cuda_dir,
+ shared=True,
+ recursive=True)
+ env.set('OCCA_INCLUDE_PATH', cuda_dir.include)
+ env.set('OCCA_LIBRARY_PATH', ':'.join(cuda_libs.directories))
+ env.set('OCCA_CUDA_ENABLED', '1')
+ else:
+ env.set('OCCA_CUDA_ENABLED', '0')
+
+ env.set('OCCA_OPENCL_ENABLED', '1' if '+opencl' in spec else '0')
+ env.set('OCCA_HIP_ENABLED', '1' if '+rocm' in spec else '0')
+
+ # Setup run-time environment for testing.
+ env.set('OCCA_VERBOSE', '1')
+ self._setup_runtime_flags(env)
+
+ def setup_run_environment(self, env):
+ # The 'env' is included in the Spack generated module files.
+ self._setup_runtime_flags(env)
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ # Export OCCA_* variables for everyone using this package from within
+ # Spack.
+ self._setup_runtime_flags(env)
+
+ def install(self, spec, prefix):
+ script_dir = 'scripts'
+
+ with working_dir(script_dir):
+ # Make sure nekmpi wrapper uses srun when we know OpenMPI
+ # is not built with mpiexec
+ if '^openmpi~legacylaunchers' in spec:
+ filter_file(r'mpirun -np', 'srun -n', 'nrsmpi')
+ filter_file(r'mpirun -np', 'srun -n', 'nrspre')
+ filter_file(r'mpirun -np', 'srun -n', 'nrsbmpi')
+
+ makenrs = Executable(os.path.join(os.getcwd(), "makenrs"))
+
+ makenrs.add_default_env("NEKRS_INSTALL_DIR", prefix)
+ makenrs.add_default_env("NEKRS_CC", spec['mpi'].mpicc)
+ makenrs.add_default_env("NEKRS_CXX", spec['mpi'].mpicxx)
+ makenrs.add_default_env("NEKRS_FC", spec['mpi'].mpifc)
+ makenrs.add_default_env("TRAVIS", "true")
+
+ makenrs(output=str, error=str, fail_on_error=True)
diff --git a/var/spack/repos/builtin/packages/nektar/package.py b/var/spack/repos/builtin/packages/nektar/package.py
index ed9a2bc966..43b73c731a 100644
--- a/var/spack/repos/builtin/packages/nektar/package.py
+++ b/var/spack/repos/builtin/packages/nektar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nektools/package.py b/var/spack/repos/builtin/packages/nektools/package.py
index d1f190e653..332a56c5c5 100644
--- a/var/spack/repos/builtin/packages/nektools/package.py
+++ b/var/spack/repos/builtin/packages/nektools/package.py
@@ -1,13 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 numbers
import os
+from spack import *
+
def is_integral(x):
"""Any integer value"""
@@ -19,7 +19,7 @@ def is_integral(x):
class Nektools(Package):
- """Tools reuqired by Nek5000"""
+ """Tools required by Nek5000"""
homepage = "https://nek5000.mcs.anl.gov/"
url = 'https://github.com/Nek5000/Nek5000/archive/v17.0.tar.gz'
@@ -50,6 +50,7 @@ class Nektools(Package):
variant('genmap', default=True, description='Build genmap tool.')
variant('nekmerge', default=True, description='Build nekmerge tool.')
variant('prenek', default=True, description='Build prenek tool.')
+ variant('visit', default=False, description='Enable support for visit')
depends_on('libx11', when="+prenek")
depends_on('libx11', when="+postnek")
diff --git a/var/spack/repos/builtin/packages/nemsio/package.py b/var/spack/repos/builtin/packages/nemsio/package.py
new file mode 100644
index 0000000000..d31ffc85ae
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nemsio/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 Nemsio(CMakePackage):
+ """The NOAA Environmental Modeling System I/O (NEMSIO) library. The
+ basic functions it provides are to read and write data sets for all the
+ NEMS applications."""
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS-nemsio"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-nemsio/archive/refs/tags/v2.5.2.tar.gz"
+
+ maintainers = ['t-brown']
+
+ version('2.5.2', sha256='c59e9379969690de8d030cbf4bbbbe3726faf13c304f3b88b0f6aec1496d2c08')
+
+ depends_on('bacio')
+ depends_on('mpi')
+ depends_on('w3nco')
+
+ def cmake_args(self):
+ return ['-DMPI_Fortran_COMPILER=%s' % self.spec['mpi'].mpifc]
diff --git a/var/spack/repos/builtin/packages/neo4j/package.py b/var/spack/repos/builtin/packages/neo4j/package.py
index 8f76eb8e64..8140868412 100644
--- a/var/spack/repos/builtin/packages/neo4j/package.py
+++ b/var/spack/repos/builtin/packages/neo4j/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Neo4j(MavenPackage):
enterprise-quality database. For many applications, Neo4j offers orders
of magnitude performance benefits compared to relational DBs."""
- homepage = "http://neo4j.com/"
+ homepage = "https://neo4j.com/"
url = "https://github.com/neo4j/neo4j/archive/4.0.3.tar.gz"
version('4.0.3', sha256='19d79052657665dd661bbe906b3552b88108bf379d39fa007b883fff718cabee')
diff --git a/var/spack/repos/builtin/packages/neovim/package.py b/var/spack/repos/builtin/packages/neovim/package.py
index c920ae114b..30460ba1a6 100644
--- a/var/spack/repos/builtin/packages/neovim/package.py
+++ b/var/spack/repos/builtin/packages/neovim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nest/package.py b/var/spack/repos/builtin/packages/nest/package.py
index 6524931f5e..4bb0058de5 100644
--- a/var/spack/repos/builtin/packages/nest/package.py
+++ b/var/spack/repos/builtin/packages/nest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,19 +12,19 @@ class Nest(CMakePackage):
It focuses on the dynamics, size and structure of neural systems rather
than on the exact morphology of individual neurons."""
- homepage = "http://www.nest-simulator.org"
- url = "https://github.com/nest/nest-simulator/releases/download/v2.12.0/nest-2.12.0.tar.gz"
+ homepage = "https://www.nest-simulator.org"
+ url = "https://github.com/nest/nest-simulator/archive/refs/tags/v3.0.tar.gz"
+ git = "https://github.com/nest/nest-simulator.git"
- version('2.14.0', sha256='d6316d6c9153100a3220488abfa738958c4b65bf2622bd15540e4aa81e79f17f')
- version('2.12.0', sha256='bac578f38bb0621618ee9d5f2f1febfee60cddc000ff32e51a5f5470bb3df40d')
- version('2.10.0', sha256='2b6fc562cd6362e812d94bb742562a5a685fb1c7e08403765dbe123d59b0996c')
- version('2.8.0', sha256='d47325b27a5599b6ea58a3c4ef06656e7c5a4941c4e94dec6a5c2fa956209915')
- version('2.6.0', sha256='5fe4924bc57d0c7dd820aa371de935eedf7e813832c0eee2c976b33c9a8db4cf')
- version('2.4.2', sha256='8f86e58c1a12b733ffabd8b0400326e5a3494a458149ea8ebe9f19674d05b91b')
+ version('master', branch='master')
+ version('3.0', sha256='d481ea67f3251fe3aadf5252ab0a999172f0cd5536c5985366d271d772e686e6')
+ version('2.20.1', sha256='df3d32b5899d5d444f708037b290f889ac6ff8eae6b7be9e9faee2c0d660d8e5')
- variant('python', default=True,
+ maintainers = ['ikitayama']
+
+ variant('python', default=False,
description='Build the PyNest interface')
- variant('mpi', default=True,
+ variant('mpi', default=False,
description='Build with MPI bindings')
variant('openmp', default=True,
description='"Enable OpenMP support"')
@@ -47,6 +47,7 @@ class Nest(CMakePackage):
depends_on('python@2.6:', when='+python', type=('build', 'run'))
depends_on('py-numpy', when='+python', type=('build', 'run'))
+ depends_on('py-scipy', when='+python', type=('run'))
depends_on('py-cython@0.19.2:', when='+python', type='build')
depends_on('py-nose', when='+python', type='test')
depends_on('py-setuptools', when='+python', type='build')
@@ -102,9 +103,8 @@ class Nest(CMakePackage):
else:
args.append('-Dwith-mpi=OFF')
- if '+python':
- version = self.spec['python'].version[0]
- args.append('-Dwith-python={0}'.format(version))
+ if '+python' in self.spec:
+ args.append('-Dwith-python=ON')
args.append('-Dcythonize-pynest=' + self.spec['py-cython'].prefix)
else:
args.append('-Dwith-python=OFF')
diff --git a/var/spack/repos/builtin/packages/net-snmp/package.py b/var/spack/repos/builtin/packages/net-snmp/package.py
new file mode 100644
index 0000000000..e017498ca4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/net-snmp/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 NetSnmp(AutotoolsPackage):
+ """A SNMP application library, tools and daemon."""
+
+ homepage = "http://www.net-snmp.org/"
+ url = "https://sourceforge.net/projects/net-snmp/files/net-snmp/5.9/net-snmp-5.9.tar.gz"
+
+ version('5.9', sha256='04303a66f85d6d8b16d3cc53bde50428877c82ab524e17591dfceaeb94df6071')
+
+ depends_on('perl-extutils-makemaker')
+ depends_on('ncurses')
+
+ def configure_args(self):
+ args = ['--with-defaults', 'LIBS=-ltinfo']
+ return args
diff --git a/var/spack/repos/builtin/packages/netcdf-c/4.7.3-spectrum-mpi-pnetcdf-detect.patch b/var/spack/repos/builtin/packages/netcdf-c/4.7.3-spectrum-mpi-pnetcdf-detect.patch
new file mode 100644
index 0000000000..0e04164ff6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/netcdf-c/4.7.3-spectrum-mpi-pnetcdf-detect.patch
@@ -0,0 +1,44 @@
+--- a/configure 2019-11-20 18:59:25.000000000 -0500
++++ b/configure 13:20:48.088873402 -0500
+@@ -18459,12 +18459,12 @@
+ $as_echo_n "checking Is libpnetcdf version 1.6.0 or later?... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
++#include <pnetcdf.h>
+
+ int
+ main ()
+ {
+
+-#include <pnetcdf.h>
+ #if (PNETCDF_VERSION_MAJOR*1000 + PNETCDF_VERSION_MINOR < 1006)
+ choke me
+ #endif
+@@ -18584,12 +18584,12 @@
+ $as_echo_n "checking if erange-fill is enabled in PnetCDF... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
++#include <pnetcdf.h>
+
+ int
+ main ()
+ {
+
+-#include <pnetcdf.h>
+ #if !defined(PNETCDF_ERANGE_FILL) || PNETCDF_ERANGE_FILL == 0
+ choke me
+ #endif
+@@ -18619,12 +18619,12 @@
+ $as_echo_n "checking if relax-coord-bound is enabled in PnetCDF... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
++#include <pnetcdf.h>
+
+ int
+ main ()
+ {
+
+-#include <pnetcdf.h>
+ #if !defined(PNETCDF_RELAX_COORD_BOUND) || PNETCDF_RELAX_COORD_BOUND == 0
+ choke me
+ #endif
diff --git a/var/spack/repos/builtin/packages/netcdf-c/package.py b/var/spack/repos/builtin/packages/netcdf-c/package.py
index 12853dfc46..f3e7da52b2 100644
--- a/var/spack/repos/builtin/packages/netcdf-c/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class NetcdfC(AutotoolsPackage):
machine-independent data formats that support the creation, access, and
sharing of array-oriented scientific data. This is the C distribution."""
- homepage = "http://www.unidata.ucar.edu/software/netcdf"
+ homepage = "https://www.unidata.ucar.edu/software/netcdf"
git = "https://github.com/Unidata/netcdf-c.git"
url = "ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-c-4.7.3.tar.gz"
@@ -26,6 +26,7 @@ class NetcdfC(AutotoolsPackage):
maintainers = ['skosukhin', 'WardF']
version('master', branch='master')
+ version('4.8.0', sha256='679635119a58165c79bb9736f7603e2c19792dd848f19195bf6881492246d6d5')
version('4.7.4', sha256='0e476f00aeed95af8771ff2727b7a15b2de353fb7bb3074a0d340b55c2bd4ea8')
version('4.7.3', sha256='8e8c9f4ee15531debcf83788594744bd6553b8489c06a43485a15c93b4e0448b')
version('4.7.2', sha256='b751cc1f314ac8357df2e0a1bacf35a624df26fe90981d3ad3fa85a5bbd8989a')
@@ -53,6 +54,9 @@ class NetcdfC(AutotoolsPackage):
patch('https://github.com/Unidata/netcdf-c/pull/1505.patch', sha256='f52db13c61b9c19aafe03c2a865163b540e9f6dee36e3a5f808f05fac59f2030', when='@4.7.2')
patch('https://github.com/Unidata/netcdf-c/pull/1508.patch', sha256='56532470875b9a97f3cf2a7d9ed16ef1612df3265ee38880c109428322ff3a40', when='@4.7.2')
+ # See https://github.com/Unidata/netcdf-c/pull/1752
+ patch('4.7.3-spectrum-mpi-pnetcdf-detect.patch', when='@4.7.3:4.7.4 +parallel-netcdf')
+
variant('mpi', default=True,
description='Enable parallel I/O for netcdf-4')
variant('parallel-netcdf', default=False,
@@ -63,6 +67,7 @@ class NetcdfC(AutotoolsPackage):
variant('shared', default=True, description='Enable shared library')
variant('dap', default=False, description='Enable DAP support')
variant('jna', default=False, description='Enable JNA support')
+ variant('fsync', default=False, description='Enable fsync support')
# It's unclear if cdmremote can be enabled if '--enable-netcdf-4' is passed
# to the configure script. Since netcdf-4 support is mandatory we comment
@@ -136,9 +141,7 @@ class NetcdfC(AutotoolsPackage):
'--enable-largefile',
'--enable-netcdf-4']
- # The flag was introduced in version 4.1.0
- if self.spec.satisfies('@4.1:'):
- config_args.append('--enable-fsync')
+ config_args.extend(self.enable_or_disable('fsync'))
# The flag was introduced in version 4.3.1
if self.spec.satisfies('@4.3.1:'):
diff --git a/var/spack/repos/builtin/packages/netcdf-cxx/package.py b/var/spack/repos/builtin/packages/netcdf-cxx/package.py
index 6a5f6aa183..f290a32b26 100644
--- a/var/spack/repos/builtin/packages/netcdf-cxx/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-cxx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class NetcdfCxx(AutotoolsPackage):
maintained by Unidata. Developers should migrate to current
NetCDF C++ bindings, in Spack package netcdf-cxx4."""
- homepage = "http://www.unidata.ucar.edu/software/netcdf"
- url = "http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-cxx-4.2.tar.gz"
+ homepage = "https://www.unidata.ucar.edu/software/netcdf"
+ url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-cxx-4.2.tar.gz"
version('4.2', sha256='95ed6ab49a0ee001255eac4e44aacb5ca4ea96ba850c08337a3e4c9a0872ccd1')
diff --git a/var/spack/repos/builtin/packages/netcdf-cxx4/package.py b/var/spack/repos/builtin/packages/netcdf-cxx4/package.py
index 66b294992f..20921a2f99 100644
--- a/var/spack/repos/builtin/packages/netcdf-cxx4/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-cxx4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/package.py b/var/spack/repos/builtin/packages/netcdf-fortran/package.py
index 1178de8d57..add133d56e 100644
--- a/var/spack/repos/builtin/packages/netcdf-fortran/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-fortran/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
-from shutil import copyfile, Error
+import os
+from shutil import Error, copyfile
+
+from spack import *
class NetcdfFortran(AutotoolsPackage):
@@ -136,6 +137,54 @@ class NetcdfFortran(AutotoolsPackage):
return config_args
+ @run_after('configure')
+ def patch_libtool(self):
+ """AOCC support for NETCDF-F"""
+ if '%aocc' in self.spec:
+ # Libtool does not fully support the compiler toolchain, therefore
+ # we have to patch the script. The C compiler normally gets
+ # configured correctly, the variables of interest in the
+ # 'BEGIN LIBTOOL CONFIG' section are set to non-empty values and,
+ # therefore, are not affected by the replacements below. A more
+ # robust solution would be to extend the filter_file function with
+ # an additional argument start_at and perform the replacements
+ # between the '# ### BEGIN LIBTOOL TAG CONFIG: FC' and
+ # '# ### END LIBTOOL TAG CONFIG: FC' markers for the Fortran
+ # compiler, and between the '# ### BEGIN LIBTOOL TAG CONFIG: F77'
+ # and '# ### END LIBTOOL TAG CONFIG: F77' markers for the Fortran 77
+ # compiler.
+
+ # How to pass a linker flag through the compiler:
+ filter_file(r'^wl=""$',
+ 'wl="{0}"'.format(self.compiler.linker_arg),
+ 'libtool')
+
+ # Additional compiler flags for building library objects (we need
+ # this to enable shared libraries when building with ~pic). Note
+ # that the following will set fc_pic_flag for both FC and F77, which
+ # in the case of AOCC, should not be a problem. If it is, the
+ # aforementioned modification of the filter_file function could be
+ # a solution.
+ filter_file(r'^pic_flag=""$',
+ 'pic_flag=" {0}"'.format(self.compiler.fc_pic_flag),
+ 'libtool')
+
+ # The following is supposed to tell the compiler to use the GNU
+ # linker. However, the replacement does not happen (at least for
+ # NetCDF-Fortran 4.5.3) because the replaced substring (i.e. the
+ # first argument passed to the filter_file function) is not present
+ # in the file. The flag should probably be added to 'ldflags' in the
+ # flag_handler method above (another option is to add the flag to
+ # 'ldflags' in compilers.yaml automatically as it was done for other
+ # flags in https://github.com/spack/spack/pull/22219).
+ filter_file(
+ r'\${wl}-soname \$wl\$soname',
+ r'-fuse-ld=ld -Wl,-soname,\$soname',
+ 'libtool', string=True)
+
+ # TODO: resolve the NAG-related issues in a similar way: remove the
+ # respective patch files and tune the generated libtool script instead.
+
@when('@:4.4.5')
def check(self):
with working_dir(self.build_directory):
diff --git a/var/spack/repos/builtin/packages/netdata/package.py b/var/spack/repos/builtin/packages/netdata/package.py
index 830e233452..51a6c64a60 100644
--- a/var/spack/repos/builtin/packages/netdata/package.py
+++ b/var/spack/repos/builtin/packages/netdata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,30 @@ class Netdata(AutotoolsPackage):
"""Real-time performance monitoring, done right!"""
homepage = "https://www.netdata.cloud/"
- url = "https://github.com/netdata/netdata/archive/v1.22.1.tar.gz"
+ url = "https://github.com/netdata/netdata/releases/download/v1.30.1/netdata-v1.30.1.tar.gz"
- version('1.22.1', sha256='6efd785eab82f98892b4b4017cadfa4ce1688985915499bc75f2f888765a3446')
+ version('1.31.0', sha256='ca68f725224e8bbec041b493891376fbf41aedb47c4ac06161c2eda990089c9f')
+ version('1.30.1', sha256='3df188ac04f17094cb929e2990841ba77f68aa6af484e0509b99db298fa206c9')
+ version('1.22.1', sha256='f169c8615a6823448c2f1923c87c286d798132ea29d26f366e96d26e0aec3697')
- depends_on('m4', type='build')
- depends_on('autoconf', type='build')
- depends_on('automake', type='build')
- depends_on('libtool', type='build')
+ depends_on('pkgconfig', type='build')
+ depends_on('json-c')
+ depends_on('judy')
+ depends_on('libelf')
+ depends_on('libmnl')
depends_on('libuv')
- depends_on('libuuid')
+ depends_on('lz4')
+ depends_on('openssl')
+ depends_on('python@3:', type=('build', 'run'))
+ depends_on('uuid')
+ depends_on('zlib')
+
+ def setup_run_environment(self, env):
+ env.prepend_path('PATH', self.prefix.sbin)
+
+ @run_after('install')
+ def setup_dirs(self):
+ # netdata requires the following directories to be able to run.
+ mkdirp(self.prefix.var.cache.netdata)
+ mkdirp(self.prefix.var.lib.netdata)
+ mkdirp(self.prefix.var.log.netdata)
diff --git a/var/spack/repos/builtin/packages/netgauge/package.py b/var/spack/repos/builtin/packages/netgauge/package.py
index 3c5d36e1fa..73dc1d2d88 100644
--- a/var/spack/repos/builtin/packages/netgauge/package.py
+++ b/var/spack/repos/builtin/packages/netgauge/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
diff --git a/var/spack/repos/builtin/packages/netgen/package.py b/var/spack/repos/builtin/packages/netgen/package.py
index f22ae4a168..63e51a22e5 100644
--- a/var/spack/repos/builtin/packages/netgen/package.py
+++ b/var/spack/repos/builtin/packages/netgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/netkit-ftp/package.py b/var/spack/repos/builtin/packages/netkit-ftp/package.py
index fe76bea86b..d2b6a69e61 100644
--- a/var/spack/repos/builtin/packages/netkit-ftp/package.py
+++ b/var/spack/repos/builtin/packages/netkit-ftp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/netlib-lapack/ibm-xl-3.9.1.patch b/var/spack/repos/builtin/packages/netlib-lapack/ibm-xl-3.9.1.patch
new file mode 100644
index 0000000000..38f4e9c41f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/netlib-lapack/ibm-xl-3.9.1.patch
@@ -0,0 +1,94 @@
+diff -Naur a/CBLAS/CMakeLists.txt b/CBLAS/CMakeLists.txt
+--- a/CBLAS/CMakeLists.txt 2021-03-25 12:25:15.000000000 -0600
++++ b/CBLAS/CMakeLists.txt 2021-09-01 16:27:23.561355382 -0600
+@@ -11,9 +11,7 @@
+ MACRO_NAMESPACE "F77_"
+ SYMBOL_NAMESPACE "F77_")
+ if(NOT FortranCInterface_GLOBAL_FOUND OR NOT FortranCInterface_MODULE_FOUND)
+- message(WARNING "Reverting to pre-defined include/lapacke_mangling.h")
+- configure_file(include/lapacke_mangling_with_flags.h.in
+- ${LAPACK_BINARY_DIR}/include/lapacke_mangling.h)
++ message(WARNING "Reverting to pre-defined include/cblas_mangling.h")
+ configure_file(include/cblas_mangling_with_flags.h.in
+ ${LAPACK_BINARY_DIR}/include/cblas_mangling.h)
+ endif()
+diff -Naur a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2021-03-25 12:25:15.000000000 -0600
++++ b/CMakeLists.txt 2021-09-02 09:49:18.070436958 -0600
+@@ -94,16 +94,22 @@
+
+ # Check if recursive flag exists
+ include(CheckFortranCompilerFlag)
+-check_fortran_compiler_flag("-recursive" _recursiveFlag)
+-check_fortran_compiler_flag("-frecursive" _frecursiveFlag)
+-check_fortran_compiler_flag("-Mrecursive" _MrecursiveFlag)
++if(CMAKE_Fortran_COMPILER_ID STREQUAL Flang)
++ check_fortran_compiler_flag("-Mrecursive" _MrecursiveFlag)
++elseif(CMAKE_Fortran_COMPILER_ID STREQUAL GNU)
++ check_fortran_compiler_flag("-frecursive" _frecursiveFlag)
++elseif(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
++ check_fortran_compiler_flag("-recursive" _recursiveFlag)
++elseif(CMAKE_Fortran_COMPILER_ID STREQUAL XL)
++ check_fortran_compiler_flag("-qrecur" _qrecurFlag)
++endif()
+
+ # Add recursive flag
+-if(_recursiveFlag)
+- string(REGEX MATCH "-recursive" output_test <string> "${CMAKE_Fortran_FLAGS}")
++if(_MrecursiveFlag)
++ string(REGEX MATCH "-Mrecursive" output_test <string> "${CMAKE_Fortran_FLAGS}")
+ if(NOT output_test)
+- set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -recursive"
+- CACHE STRING "Recursive flag must be set" FORCE)
++ set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Mrecursive"
++ CACHE STRING "Recursive flag must be set" FORCE)
+ endif()
+ elseif(_frecursiveFlag)
+ string(REGEX MATCH "-frecursive" output_test <string> "${CMAKE_Fortran_FLAGS}")
+@@ -111,11 +117,17 @@
+ set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -frecursive"
+ CACHE STRING "Recursive flag must be set" FORCE)
+ endif()
+-elseif(_MrecursiveFlag)
+- string(REGEX MATCH "-Mrecursive" output_test <string> "${CMAKE_Fortran_FLAGS}")
++elseif(_recursiveFlag)
++ string(REGEX MATCH "-recursive" output_test <string> "${CMAKE_Fortran_FLAGS}")
+ if(NOT output_test)
+- set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Mrecursive"
+- CACHE STRING "Recursive flag must be set" FORCE)
++ set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -recursive"
++ CACHE STRING "Recursive flag must be set" FORCE)
++ endif()
++elseif(_qrecurFlag)
++ string(REGEX MATCH "-qrecur" output_test <string> "${CMAKE_Fortran_FLAGS}")
++ if(NOT output_test)
++ set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -qrecur"
++ CACHE STRING "Recursive flag must be set" FORCE)
+ endif()
+ endif()
+
+@@ -124,7 +136,7 @@
+ set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fp-model strict")
+ endif()
+ if(CMAKE_Fortran_COMPILER_ID STREQUAL XL)
+- set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -qnosave -qstrict=none")
++ set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -qnosave -qstrict")
+ endif()
+ # Delete libmtsk in linking sequence for Sun/Oracle Fortran Compiler.
+ # This library is not present in the Sun package SolarisStudio12.3-linux-x86-bin
+diff -Naur a/INSTALL/make.inc.XLF b/INSTALL/make.inc.XLF
+--- a/INSTALL/make.inc.XLF 2021-03-25 12:25:15.000000000 -0600
++++ b/INSTALL/make.inc.XLF 2021-09-02 09:50:02.664646455 -0600
+@@ -14,10 +14,10 @@
+ # the compiler options desired when NO OPTIMIZATION is selected.
+ #
+ FC = xlf
+-FFLAGS = -O3 -qfixed -qnosave
++FFLAGS = -O3 -qfixed -qnosave -qrecur
+ # For -O2, add -qstrict=none
+ FFLAGS_DRV = $(FFLAGS)
+-FFLAGS_NOOPT = -O0 -qfixed -qnosave
++FFLAGS_NOOPT = -O0 -qfixed -qnosave -qrecur
+
+ # Define LDFLAGS to the desired linker options for your machine.
+ #
diff --git a/var/spack/repos/builtin/packages/netlib-lapack/package.py b/var/spack/repos/builtin/packages/netlib-lapack/package.py
index 91358bf60f..71135fc18b 100644
--- a/var/spack/repos/builtin/packages/netlib-lapack/package.py
+++ b/var/spack/repos/builtin/packages/netlib-lapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,11 +14,15 @@ class NetlibLapack(CMakePackage):
package that has found extensive use in the scientific community.
"""
- homepage = "http://www.netlib.org/lapack/"
- url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
+ homepage = "https://www.netlib.org/lapack/"
+ url = "https://www.netlib.org/lapack/lapack-3.5.0.tgz"
+ version('3.9.1', sha256='d0085d2caf997ff39299c05d4bacb6f3d27001d25a4cc613d48c1f352b73e7e0',
+ url='https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v3.9.1.tar.gz')
+ version('3.9.0', sha256='106087f1bb5f46afdfba7f569d0cbe23dacb9a07cd24733765a0e89dbe1ad573',
+ url='https://github.com/Reference-LAPACK/lapack/archive/v3.9.0.tar.gz')
version('3.8.0', sha256='deb22cc4a6120bff72621155a9917f485f96ef8319ac074a7afbc68aab88bcf6',
- url='http://www.netlib.org/lapack/lapack-3.8.0.tar.gz')
+ url='https://www.netlib.org/lapack/lapack-3.8.0.tar.gz')
version('3.7.1', sha256='f6c53fd9f56932f3ddb3d5e24c1c07e4cd9b3b08e7f89de9c867125eecc9a1c8')
version('3.7.0', sha256='ed967e4307e986474ab02eb810eed1d1adc73f5e1e3bc78fb009f6fe766db3be')
version('3.6.1', sha256='888a50d787a9d828074db581c80b2d22bdb91435a673b1bf6cd6eb51aa50d1de')
@@ -38,19 +42,18 @@ class NetlibLapack(CMakePackage):
variant('xblas', default=False,
description='Builds extended precision routines using XBLAS')
- patch('ibm-xl.patch', when='@3.7: %xl')
- patch('ibm-xl.patch', when='@3.7: %xl_r')
+ patch('ibm-xl.patch', when='@3.7:3.8 %xl')
+ patch('ibm-xl.patch', when='@3.7:3.8 %xl_r')
patch('ibm-xl.patch', when='@3.7: %cce@9:')
+ patch('ibm-xl-3.9.1.patch', when='@3.9.1 %xl')
+ patch('ibm-xl-3.9.1.patch', when='@3.9.1 %xl_r')
+
# https://github.com/Reference-LAPACK/lapack/issues/228
- # TODO: update 'when' once the version of lapack
- # containing the fix is released and added to Spack.
- patch('undefined_declarations.patch', when='@3.8.0:')
+ patch('undefined_declarations.patch', when='@3.8.0:3.8.9999')
# https://github.com/Reference-LAPACK/lapack/pull/268
- # TODO: update 'when' once the version of lapack
- # containing the fix is released and added to Spack.
- patch('testing.patch', when='@3.7.0:')
+ patch('testing.patch', when='@3.7.0:3.8.9999')
# virtual dependency
provides('blas', when='~external-blas')
diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/package.py b/var/spack/repos/builtin/packages/netlib-scalapack/package.py
index 51fa58d0e6..2605deaadd 100644
--- a/var/spack/repos/builtin/packages/netlib-scalapack/package.py
+++ b/var/spack/repos/builtin/packages/netlib-scalapack/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class ScalapackBase(CMakePackage):
"""Base class for building ScaLAPACK, shared with the AMD optimized version
@@ -104,8 +105,8 @@ class NetlibScalapack(ScalapackBase):
parallel distributed memory machines
"""
- homepage = "http://www.netlib.org/scalapack/"
- url = "http://www.netlib.org/scalapack/scalapack-2.0.2.tgz"
+ homepage = "https://www.netlib.org/scalapack/"
+ url = "https://www.netlib.org/scalapack/scalapack-2.0.2.tgz"
version('2.1.0', sha256='61d9216cf81d246944720cfce96255878a3f85dec13b9351f1fa0fd6768220a6')
version('2.0.2', sha256='0c74aeae690fe5ee4db7926f49c5d0bb69ce09eea75beb915e00bba07530395c')
diff --git a/var/spack/repos/builtin/packages/netlib-xblas/package.py b/var/spack/repos/builtin/packages/netlib-xblas/package.py
index 1431b78494..571140599b 100644
--- a/var/spack/repos/builtin/packages/netlib-xblas/package.py
+++ b/var/spack/repos/builtin/packages/netlib-xblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,8 +20,8 @@ class NetlibXblas(AutotoolsPackage):
made to optimize performance; performance should be as good as
straightforward but careful code written by hand."""
- homepage = "http://www.netlib.org/xblas"
- url = "http://www.netlib.org/xblas/xblas.tar.gz"
+ homepage = "https://www.netlib.org/xblas"
+ url = "https://www.netlib.org/xblas/xblas.tar.gz"
version('1.0.248', sha256='b5fe7c71c2da1ed9bcdc5784a12c5fa9fb417577513fe8a38de5de0007f7aaa1')
diff --git a/var/spack/repos/builtin/packages/netpbm/package.py b/var/spack/repos/builtin/packages/netpbm/package.py
new file mode 100644
index 0000000000..29a821276a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/netpbm/package.py
@@ -0,0 +1,208 @@
+# Copyright 2013-2021 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)
+
+import os
+from shutil import copyfile
+
+from spack import *
+
+
+class Netpbm(MakefilePackage):
+ """Netpbm - graphics tools and converters.
+
+ A whole bunch of utilities for primitive manipulation of
+ graphic images. Wide array of converters
+ from one graphics format to another. E.g.
+ from g3 fax format to jpeg. Many basic graphics
+ editing tools such as magnifying and cropping.
+ """
+
+ homepage = "http://netpbm.sourceforge.net"
+ url = "https://sourceforge.net/projects/netpbm/files/super_stable/10.73.35/netpbm-10.73.35.tgz"
+
+ maintainers = ['cessenat']
+
+ version('10.73.35', sha256='628dbe8490bc43557813d1fedb2720dfdca0b80dd3f2364cb2a45c6ff04b0f18')
+
+ # As a default we wish to commpile absolutely everything at once.
+ # Variants are there in case compilation was a problem.
+ variant('all', default=True,
+ description='Enable all 3rd party libs')
+ variant('X', default=True,
+ description='Enable X libs for pamx')
+ variant('fiasco', default=True,
+ description='Enable fiasco')
+ variant('ghostscript', default=True,
+ description='Ghostscript is called by pstopnm and pbmtextps')
+ # netpbm can provide it's own jasper and jbig : better use the ones
+ # from their respective spack package.
+ variant('builtin', default=False,
+ description='Use builtin libs instead of 3rd party')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('gmake', type='build')
+ depends_on('pkgconfig', type='build')
+
+ # These are general pre-requisites indicated at
+ # http://netpbm.sourceforge.net/prereq.html
+ depends_on('zlib')
+ depends_on('jpeg')
+ depends_on('libtiff')
+ depends_on('libpng')
+ # Ghostscript is called as "gs" by pstopnm and pbmtextps
+ depends_on('ghostscript', type='run', when='+ghostscript')
+
+ # These are the optional libs:
+ # svgtopam : http://netpbm.sourceforge.net/prereq.html
+ # homebrew also sets a dependancy to libxml2
+ # https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/netpbm.rb
+ depends_on('libxml2', when='+all')
+ # thinkjettopbm : http://netpbm.sourceforge.net/prereq.html
+ depends_on('flex', type=('build', 'run'), when='+all')
+ # https://formulae.brew.sh/formula/netpbm
+ depends_on('jasper', when='+all~builtin')
+ # Only Mac Ports sets a dependency to jbig
+ # https://ports.macports.org/port/netpbm/summary
+ depends_on('jbigkit', when='+all~builtin')
+
+ # pamx depends on X11 libraries:
+ depends_on('libx11', when='+X')
+
+ def edit(self, spec, prefix):
+ # We better not run the interactive perl script buildtools/configure.pl
+ # as explained by Todd in
+ # https://groups.google.com/g/spack/c/8sEqDkZ68DA/m/wpbB0wHaAgAJ
+ # so we will mimic the perl script bahavior
+ copyfile('config.mk.in', 'config.mk')
+ config = []
+ config.append('####Lines above were copied from config.mk.in')
+ # This is already the default but we make sure it is set
+ # even for a dev release for instance:
+ config.append('DEFAULT_TARGET = nonmerge')
+ config.append('NETPBMLIBSUFFIX={0}'.format(dso_suffix))
+ if 'platform=darwin' in spec:
+ config.append('NETPBMLIBTYPE=dylib')
+ args = ['-dynamiclib', '-Wl,-install_name']
+ args.append('-Wl,@rpath/libnetpbm.dylib')
+ config.append('LDSHLIB = {0}'.format(' '.join(args)))
+ elif 'platform=cygwin' in spec:
+ config.append('NETPBMLIBTYPE=dll')
+ config.append('NETPBMLIBSUFFIX=dll')
+ config.append('SHLIBPREFIXLIST=cyg lib')
+ config.append('EXE = .exe')
+ config.append('SYMLINK = cp')
+ config.append('LINKERISCOMPILER = Y')
+ config.append('WINICON_OBJECT = $(BUILDDIR)/icon/netpbm.o')
+ config.append('DLLVER=$(NETPBM_MAJOR_RELEASE)')
+ args = ['-shared', '-Wl,--image-base=0x10000000']
+ args.append('-Wl,--enable-auto-import')
+ config.append('LDSHLIB = {0}'.format(' '.join(args)))
+ else:
+ config.append('NETPBMLIBTYPE=unixshared')
+
+ if '~fiasco' in spec:
+ config.append('BUILD_FIASCO = N')
+
+ config.append('STATICLIB_TOO=Y')
+ config.append('OMIT_NETWORK = Y')
+ config.append('CC = {0}'.format(spack_cc))
+ config.append('LD = {0}'.format(spack_cc))
+ config.append('CC_FOR_BUILD = {0}'.format(spack_cc))
+ config.append('LD_FOR_BUILD = {0}'.format(spack_cc))
+ config.append('CFLAGS_SHLIB += {0}'.format(self.compiler.cc_pic_flag))
+ if '%gcc' in spec or 'platform=darwin' in spec:
+ cflags = ['-O3', '-ffast-math', '-pedantic', '-Wall', '-Wimplicit']
+ cflags.extend(['-Wno-uninitialized', '-Wmissing-declarations'])
+ cflags.extend(['-Wwrite-strings', '-Wmissing-prototypes'])
+ cflags.extend(['-Wundef', '-Wno-unknown-pragmas'])
+ if 'platform=darwin' in spec:
+ # https://github.com/macports/macports-ports/blob/master/graphics/netpbm/Portfile
+ cflags.append('-D_DARWIN_C_SOURCE')
+ # https://www.linuxquestions.org/questions/linux-from-scratch-13/can't-compile-luit-xorg-applications-4175476308/
+ # cflags.append('-U_XOPEN_SOURCE')
+ # https://www.mistys-internet.website/blog/blog/2013/10/19/no-cpp-precomp-the-compiler-flag-that-time-forgot/
+ # cflags.append('-no-cpp-precomp')
+ config.append('CFLAGS = {0}'.format(' '.join(cflags)))
+ config.append('CFLAGS_SHLIB += -fno-common')
+
+ if '+all' in spec:
+ flex = join_path(spec['flex'].prefix.bin, 'flex')
+ if os.path.exists(flex):
+ config.append('LEX = {0}'.format(flex))
+
+ config.append('TIFFLIB={0}'.format(
+ spec['libtiff'].libs.ld_flags))
+ config.append('TIFFHDR_DIR={0}'.format(
+ spec['libtiff'].headers.directories[0]))
+ config.append('PNGLIB={0}'.format(
+ spec['libpng'].libs.ld_flags))
+ config.append('PNGHDR_DIR={0}'.format(
+ spec['libpng'].headers.directories[0]))
+ config.append('JPEGLIB={0}'.format(
+ spec['jpeg'].libs.ld_flags))
+ config.append('JPEGHDR_DIR={0}'.format(
+ spec['jpeg'].headers.directories[0]))
+ if '+all' in spec and '+builtin' not in spec:
+ config.append('JASPERLIB={0}'.format(
+ spec['jasper'].libs.ld_flags))
+ config.append('JASPERHDR_DIR={0}'.format(
+ spec['jasper'].headers.directories[0]))
+ config.append('JBIGLIB={0}'.format(
+ spec['jbigkit'].libs.ld_flags))
+ config.append('JBIGHDR_DIR={0}'.format(
+ spec['jbigkit'].headers.directories[0]))
+ if '+X' in spec:
+ pkg_config = which('pkg-config')
+ if not pkg_config('x11', '--exists'):
+ config.append('X11LIB={0}'.format(
+ spec['libx11'].libs.ld_flags))
+ config.append('X11HDR_DIR={0}'.format(
+ spec['libx11'].headers.directories[0]))
+ config.append('ZLIB={0}'.format(spec['zlib'].libs.ld_flags))
+ config.append('NETPBM_DOCURL = http://netpbm.sourceforge.net/doc/')
+ if spec.target.family == 'x86_64':
+ config.append('WANT_SSE = Y')
+
+ with open('config.mk', 'a') as mk:
+ mk.write('\n'.join(config))
+
+ def build(self, spec, prefix):
+ make()
+
+ def install(self, spec, prefix):
+ bdir = join_path(self.build_directory, 'build')
+ make('package', 'pkgdir={0}'.format(bdir), parallel=False)
+ # Same as before build, mimic the interactive
+ # perl script buildtools/installnetpbm.pl
+ mkdirp(prefix.bin)
+ mkdirp(prefix.lib)
+ mkdirp(prefix.include)
+ mkdirp(prefix.man)
+ with working_dir('build'):
+ install_tree("bin", prefix.bin)
+ install_tree("lib", prefix.lib)
+ install_tree("misc", prefix.lib)
+ install_tree("include", prefix.include)
+ install_tree(join_path("include", "netpbm"), prefix.include)
+ if os.path.exists('man'):
+ install_tree("man", prefix.man)
+ # As a default a static lib is also created.
+ # We could put that as an option
+ staticlib = join_path('staticlink', 'libnetpbm.a')
+ if os.path.exists(staticlib):
+ install(staticlib, prefix.lib)
+ else:
+ staticlib = join_path('link', 'libnetpbm.a')
+ if os.path.exists(staticlib):
+ install(staticlib, prefix.lib)
+ # Make the .pc as done by installnetpbm.pl
+ src = join_path('buildtools', 'pkgconfig_template')
+ pdir = join_path(prefix.lib, 'pkgconfig')
+ mkdirp(pdir)
+ copyfile(src, join_path(pdir, 'netpbm.pc'))
+ pfic = FileFilter(join_path(pdir, 'netpbm.pc'))
+ pfic.filter('@VERSION@', 'Netpbm {0}'.format(str(spec.version)))
+ pfic.filter('@LINKDIR@', '{0}'.format(prefix.lib))
+ pfic.filter('@INCLUDEDIR@', '{0}'.format(prefix.include))
diff --git a/var/spack/repos/builtin/packages/netperf/package.py b/var/spack/repos/builtin/packages/netperf/package.py
index 484c6b961c..8bbc48b578 100644
--- a/var/spack/repos/builtin/packages/netperf/package.py
+++ b/var/spack/repos/builtin/packages/netperf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nettle/package.py b/var/spack/repos/builtin/packages/nettle/package.py
index 358294a22a..75f59b0b19 100644
--- a/var/spack/repos/builtin/packages/nettle/package.py
+++ b/var/spack/repos/builtin/packages/nettle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/neuron/package.py b/var/spack/repos/builtin/packages/neuron/package.py
index a3c6cbec05..0934e1834f 100644
--- a/var/spack/repos/builtin/packages/neuron/package.py
+++ b/var/spack/repos/builtin/packages/neuron/package.py
@@ -1,187 +1,138 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import os
from spack import *
-class Neuron(Package):
+class Neuron(CMakePackage):
"""NEURON is a simulation environment for single and networks of neurons.
NEURON is a simulation environment for modeling individual and networks of
neurons. NEURON models individual neurons via the use of sections that are
automatically subdivided into individual compartments, instead of
- requiring the user to manually create compartments. The primary scripting
- language is hoc but a Python interface is also available.
+ requiring the user to manually create compartments.
"""
homepage = "https://www.neuron.yale.edu/"
- url = "http://www.neuron.yale.edu/ftp/neuron/versions/v7.5/nrn-7.5.tar.gz"
- git = "https://github.com/nrnhines/nrn.git"
-
- version('develop', branch='master')
- version('7.5', sha256='67642216a969fdc844da1bd56643edeed5e9f9ab8c2a3049dcbcbcccba29c336')
- version('7.4', sha256='1403ba16b2b329d2376f4bf007d96e6bf2992fa850f137f1068ad5b22b432de6')
- version('7.3', sha256='71cff5962966c5cd5d685d90569598a17b4b579d342126b31e2d431128cc8832')
- version('7.2', sha256='c777d73a58ff17a073e8ea25f140cb603b8b5f0df3c361388af7175e44d85b0e')
-
- variant('mpi', default=True, description='Enable MPI parallelism')
- variant('python', default=True, description='Enable python')
- variant('shared', default=False, description='Build shared libraries')
- variant('cross-compile', default=False, description='Build for cross-compile environment')
- variant('multisend', default=True, description="Enable multi-send spike exchange")
- variant('rx3d', default=False, description="Enable cython translated 3-d rxd")
-
- depends_on('flex', type='build')
- depends_on('bison', type='build')
- depends_on('automake', type='build')
- depends_on('automake', type='build')
- depends_on('autoconf', type='build')
- depends_on('libtool', type='build')
- depends_on('pkgconfig', type='build')
-
- depends_on('mpi', when='+mpi')
- depends_on('python@2.6:', when='+python')
- depends_on('ncurses', when='~cross-compile')
-
- conflicts('~shared', when='+python')
-
- filter_compiler_wrappers('*/bin/nrniv_makefile')
-
- def get_neuron_archdir(self):
- """Determine the architecture-specific neuron base directory.
-
- Instead of recreating the logic of the neuron's configure
- we dynamically find the architecture-specific directory by
- looking for a specific binary.
- """
- file_list = find(self.prefix, '*/bin/nrniv_makefile')
- # check needed as when initially evaluated the prefix is empty
- if file_list:
- neuron_archdir = os.path.dirname(os.path.dirname(file_list[0]))
+ url = "https://neuron.yale.edu/ftp/neuron/versions/v7.7/nrn-7.7.tar.gz"
+ git = "https://github.com/neuronsimulator/nrn"
+ maintainers = ['pramodk', 'nrnhines', 'iomaganaris', 'alexsavulescu']
+
+ version('develop', branch='master', submodules='True')
+ version("8.0.0", tag="8.0.0", submodules='True')
+ version("7.8.2", tag="7.8.2", submodules='True')
+ version("7.8.1", tag="7.8.1", submodules='True')
+
+ variant("coreneuron", default=False, description="Enable CoreNEURON as submodule")
+ variant("cross-compile", default=False, description="Build for cross-compile environment")
+ variant("interviews", default=False, description="Enable GUI with INTERVIEWS")
+ variant("legacy-unit", default=False, description="Enable legacy units")
+ variant("mpi", default=True, description="Enable MPI parallelism")
+ variant("python", default=True, description="Enable python")
+ variant("rx3d", default=False, description="Enable cython translated 3-d rxd")
+ variant("tests", default=False, description="Enable unit tests")
+ variant("caliper", default=False, description="Add LLNL/Caliper support")
+
+ depends_on("bison", type="build")
+ depends_on("flex", type="build")
+ depends_on("py-cython", when="+rx3d", type="build")
+
+ depends_on("gettext")
+ depends_on("mpi", when="+mpi")
+ depends_on("ncurses")
+ depends_on("python@2.7:", when="+python")
+ depends_on("py-pytest", when="+python+tests")
+ depends_on("py-mpi4py", when="+mpi+python+tests")
+ depends_on("readline")
+ depends_on("caliper", when="+caliper")
+ depends_on("py-numpy", type='run')
+
+ conflicts("+rx3d", when="~python")
+
+ patch("patch-v782-git-cmake-avx512.patch", when="@7.8.2")
+
+ def cmake_args(self):
+ spec = self.spec
+
+ def cmake_options(spec_options):
+ value = "TRUE" if spec_options in spec else "FALSE"
+ cmake_name = spec_options[1:].upper().replace("-", "_")
+ return "-DNRN_ENABLE_" + cmake_name + ":BOOL=" + value
+
+ args = [cmake_options(variant) for variant in ["+coreneuron",
+ "+interviews",
+ "+mpi",
+ "+python",
+ "+rx3d",
+ "+coreneuron",
+ "+tests"]]
+ args.append("-DNRN_ENABLE_BINARY_SPECIAL=ON")
+
+ if "~mpi" in spec and '+coreneuron' in spec:
+ args.append("-DCORENRN_ENABLE_MPI=OFF")
+
+ if "+python" in spec:
+ args.append("-DPYTHON_EXECUTABLE:FILEPATH="
+ + spec["python"].command.path)
+
+ if spec.variants['build_type'].value == 'Debug':
+ args.append("-DCMAKE_C_FLAGS=-g -O0")
+ args.append("-DCMAKE_CXX_FLAGS=-g -O0")
+ args.append("-DCMAKE_BUILD_TYPE=Custom")
+
+ if "+legacy-unit" in spec:
+ args.append('-DNRN_DYNAMIC_UNITS_USE_LEGACY=ON')
+
+ if "+caliper" in spec:
+ args.append('-DCORENRN_CALIPER_PROFILING=ON')
+
+ return args
+
+ @run_after("install")
+ def filter_compilers(self):
+ """run after install to avoid spack compiler wrappers
+ getting embded into nrnivmodl script"""
+
+ spec = self.spec
+
+ if "cray" in spec.architecture:
+ cc_compiler = "cc"
+ cxx_compiler = "CC"
+ elif spec.satisfies("+mpi"):
+ cc_compiler = spec["mpi"].mpicc
+ cxx_compiler = spec["mpi"].mpicxx
else:
- neuron_archdir = self.prefix
+ cc_compiler = self.compiler.cc
+ cxx_compiler = self.compiler.cxx
- return neuron_archdir
-
- def patch(self):
- # aclocal need complete include path (especially on os x)
- pkgconf_inc = '-I %s/share/aclocal/' % (self.spec['pkgconfig'].prefix)
- libtool_inc = '-I %s/share/aclocal/' % (self.spec['libtool'].prefix)
- newpath = 'aclocal -I m4 %s %s' % (pkgconf_inc, libtool_inc)
- filter_file(r'aclocal -I m4', r'%s' % newpath, "build.sh")
-
- def get_arch_options(self, spec):
- options = []
-
- if spec.satisfies('+cross-compile'):
- options.extend(['cross_compiling=yes',
- '--without-memacs',
- '--without-nmodl'])
-
- # on os-x disable building carbon 'click' utility
- if 'darwin' in self.spec.architecture:
- options.append('macdarwin=no')
-
- return options
-
- def get_python_options(self, spec):
- options = []
-
- if spec.satisfies('+python'):
- python_exec = spec['python'].command.path
- py_inc = spec['python'].headers.directories[0]
- py_lib = spec['python'].prefix.lib
-
- if not os.path.isdir(py_lib):
- py_lib = spec['python'].prefix.lib64
-
- options.extend(['--with-nrnpython=%s' % python_exec,
- '--disable-pysetup',
- 'PYINCDIR=%s' % py_inc,
- 'PYLIBDIR=%s' % py_lib])
-
- if spec.satisfies('~cross-compile'):
- options.append('PYTHON_BLD=%s' % python_exec)
+ kwargs = {"backup": False, "string": True}
+ nrnmech_makefile = join_path(self.prefix,
+ "./bin/nrnmech_makefile")
+ # assign_operator is changed to fix wheel support
+ if self.spec.satisfies("@:7.99"):
+ assign_operator = "?="
else:
- options.append('--without-nrnpython')
-
- return options
-
- def get_compiler_options(self, spec):
- flags = '-O2 -g'
-
- if self.spec.satisfies('%pgi'):
- flags += ' ' + self.compiler.cc_pic_flag
-
- return ['CFLAGS=%s' % flags,
- 'CXXFLAGS=%s' % flags]
-
- def build_nmodl(self, spec, prefix):
- # build components for front-end arch in cross compiling environment
- options = ['--prefix=%s' % prefix,
- '--with-nmodl-only',
- '--without-x']
-
- if 'cray' in self.spec.architecture:
- flags = '-target-cpu=x86_64 -target-network=none'
- options.extend(['CFLAGS=%s' % flags,
- 'CXXFLAGS=%s' % flags])
-
- configure = Executable(join_path(self.stage.source_path, 'configure'))
- configure(*options)
- make()
- make('install')
-
- def install(self, spec, prefix):
-
- options = ['--prefix=%s' % prefix,
- '--without-iv',
- '--without-x',
- '--without-readline']
-
- if spec.satisfies('+multisend'):
- options.append('--with-multisend')
-
- if spec.satisfies('~rx3d'):
- options.append('--disable-rx3d')
-
- if spec.satisfies('+mpi'):
- options.extend(['MPICC=%s' % spec['mpi'].mpicc,
- 'MPICXX=%s' % spec['mpi'].mpicxx,
- '--with-paranrn'])
- else:
- options.append('--without-paranrn')
-
- if spec.satisfies('~shared'):
- options.extend(['--disable-shared',
- 'linux_nrnmech=no'])
-
- options.extend(self.get_arch_options(spec))
- options.extend(self.get_python_options(spec))
- options.extend(self.get_compiler_options(spec))
-
- build = Executable('./build.sh')
- build()
-
- with working_dir('build', create=True):
- if spec.satisfies('+cross-compile'):
- self.build_nmodl(spec, prefix)
- srcpath = self.stage.source_path
- configure = Executable(join_path(srcpath, 'configure'))
- configure(*options)
- make('VERBOSE=1')
- make('install')
+ assign_operator = "="
+
+ filter_file("CC {0} {1}".format(assign_operator, env["CC"]),
+ "CC = {0}".format(cc_compiler),
+ nrnmech_makefile,
+ **kwargs)
+ filter_file("CXX {0} {1}".format(assign_operator, env["CXX"]),
+ "CXX = {0}".format(cxx_compiler),
+ nrnmech_makefile,
+ **kwargs)
+
+ if spec.satisfies("+coreneuron"):
+ corenrn_makefile = join_path(self.prefix,
+ "share/coreneuron/nrnivmodl_core_makefile")
+ filter_file(env["CXX"], cxx_compiler, corenrn_makefile, **kwargs)
def setup_run_environment(self, env):
- neuron_archdir = self.get_neuron_archdir()
- env.prepend_path('PATH', join_path(neuron_archdir, 'bin'))
- env.prepend_path('LD_LIBRARY_PATH', join_path(neuron_archdir, 'lib'))
-
- def setup_dependent_build_environment(self, env, dependent_spec):
- neuron_archdir = self.get_neuron_archdir()
- env.prepend_path('PATH', join_path(neuron_archdir, 'bin'))
- env.prepend_path('LD_LIBRARY_PATH', join_path(neuron_archdir, 'lib'))
+ env.prepend_path("PATH", join_path(self.prefix, "bin"))
+ env.prepend_path("LD_LIBRARY_PATH", join_path(self.prefix, "lib"))
+ if self.spec.satisfies("+python"):
+ env.prepend_path("PYTHONPATH", self.spec.prefix.lib.python)
diff --git a/var/spack/repos/builtin/packages/neuron/patch-v782-git-cmake-avx512.patch b/var/spack/repos/builtin/packages/neuron/patch-v782-git-cmake-avx512.patch
new file mode 100644
index 0000000000..dc2a4b8fe4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/neuron/patch-v782-git-cmake-avx512.patch
@@ -0,0 +1,139 @@
+diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
+index 391d4daa..20b8b571 100644
+--- a/CONTRIBUTING.md
++++ b/CONTRIBUTING.md
+@@ -98,7 +98,7 @@ Currently we have enabled CMake code formatting using [cmake-format](https://git
+ * Make sure to install cmake-format utility with Python version you are using:
+
+ ```
+-pip3.7 install cmake-format==0.6.0 --user
++pip3.7 install cmake-format==0.6.0 pyyaml --user
+ ```
+ Now you should have `cmake-format` command available.
+
+diff --git a/cmake/ExternalProjectHelper.cmake b/cmake/ExternalProjectHelper.cmake
+index 57094e7e..eeb6dfc2 100644
+--- a/cmake/ExternalProjectHelper.cmake
++++ b/cmake/ExternalProjectHelper.cmake
+@@ -1,5 +1,15 @@
+ find_package(Git QUIET)
+
++if(${GIT_FOUND} AND EXISTS ${CMAKE_SOURCE_DIR}/.git)
++ execute_process(
++ COMMAND ${GIT_EXECUTABLE} --git-dir=.git describe --all
++ RESULT_VARIABLE NOT_A_GIT_REPO
++ ERROR_QUIET
++ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
++else()
++ set(NOT_A_GIT_REPO "NotAGitRepo")
++endif()
++
+ # initialize submodule with given path
+ function(initialize_submodule path)
+ if(NOT ${GIT_FOUND})
+@@ -9,7 +19,7 @@ function(initialize_submodule path)
+ message(STATUS "Sub-module : missing ${path} : running git submodule update --init --recursive")
+ execute_process(
+ COMMAND
+- git submodule update --init --recursive -- ${path}
++ ${GIT_EXECUTABLE} submodule update --init --recursive -- ${path}
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
+ endfunction()
+
+@@ -20,6 +30,9 @@ function(add_external_project name)
+ NAMES CMakeLists.txt
+ PATHS "${PROJECT_SOURCE_DIR}/external/${name}")
+ if(NOT EXISTS ${${name}_PATH})
++ if(NOT_A_GIT_REPO)
++ message(FATAL_ERROR "Looks like you are building from source. Git needed for ${name} feature.")
++ endif()
+ initialize_submodule(external/${name})
+ else()
+ message(STATUS "Sub-project : using ${name} from from external/${name}")
+diff --git a/git2nrnversion_h.sh b/git2nrnversion_h.sh
+index d62b7410..4d8e4015 100755
+--- a/git2nrnversion_h.sh
++++ b/git2nrnversion_h.sh
+@@ -20,10 +20,9 @@ if git log > /dev/null && test -d .git ; then
+ elif test -f src/nrnoc/nrnversion.h ; then
+ sed -n '1,$p' src/nrnoc/nrnversion.h
+ else
+- echo "#define GIT_DATE \"1999-12-31\""
+- echo "#define GIT_BRANCH \"?\""
+- echo "#define GIT_CHANGESET \"?\""
+- echo "#define GIT_DESCRIBE \"?\""
+- exit 1
++ echo "#define GIT_DATE \"Build Time: $(date "+%Y-%m-%d-%H:%M:%S")\""
++ echo "#define GIT_BRANCH \"unknown branch\""
++ echo "#define GIT_CHANGESET \"unknown commit id\""
++ echo "#define GIT_DESCRIBE \"${PROJECT_VERSION}.dev0\""
+ fi
+
+diff --git a/src/ivoc/ivocvect.cpp b/src/ivoc/ivocvect.cpp
+index 4884614a..4da9e17e 100644
+--- a/src/ivoc/ivocvect.cpp
++++ b/src/ivoc/ivocvect.cpp
+@@ -67,7 +67,26 @@ extern "C" {
+ #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {}
+ #endif
+
+-static double dmaxint_;
++/**
++ * As all parameters are passed from hoc as double, we need
++ * to calculate max integer that can fit into double variable.
++ *
++ * With IEEE 64-bit double has 52 bits of mantissa, so it's 2^53.
++ * calculating it with approach `while (dbl + 1 != dbl) dbl++;`
++ * has issues with SSE and other 32 bits platform. So we are using
++ * direct value here.
++ *
++ * The maximum mantissa 0xFFFFFFFFFFFFF which is 52 bits all 1.
++ * In Python it's:
++ *
++ * >>> (2.**53).hex()
++ * '0x1.0000000000000p+53'
++ * >>> (2.**53)
++ * 9007199254740992.0
++ *
++ * See https://stackoverflow.com/questions/1848700/biggest-integer-that-can-be-stored-in-a-double
++ */
++static double dmaxint_ = 9007199254740992;
+
+ // Definitions allow machine independent write and read
+ // note that must include BYTEHEADER at head of routine
+@@ -3776,20 +3795,7 @@ static void steer_x(void* v) {
+ }
+
+ void Vector_reg() {
+- dmaxint_ = 1073741824.;
+- for(;;) {
+- if (dmaxint_*2. == double(int(dmaxint_*2.))) {
+- dmaxint_ *= 2.;
+- }else{
+- if (dmaxint_*2. - 1. == double(int(dmaxint_*2. - 1.))) {
+- dmaxint_ = 2.*dmaxint_ - 1.;
+- }
+- break;
+- }
+- }
+- //printf("dmaxint=%30.20g %d\n", dmaxint_, (long)dmaxint_);
+- class2oc("Vector", v_cons, v_destruct, v_members, NULL, v_retobj_members,
+- v_retstr_members);
++ class2oc("Vector", v_cons, v_destruct, v_members, NULL, v_retobj_members, v_retstr_members);
+ svec_ = hoc_lookup("Vector");
+ // now make the x variable an actual double
+ Symbol* sv = hoc_lookup("Vector");
+diff --git a/src/nrniv/CMakeLists.txt b/src/nrniv/CMakeLists.txt
+index 30024d6e..26f76a98 100644
+--- a/src/nrniv/CMakeLists.txt
++++ b/src/nrniv/CMakeLists.txt
+@@ -139,7 +139,8 @@ set(NRN_INCLUDE_DIRS
+ # is different from the contents of nrnversion.h
+ # ~~~
+ add_custom_target(
+- nrnversion_h ${PROJECT_SOURCE_DIR}/git2nrnversion_h.sh ${PROJECT_SOURCE_DIR} > nrnversion.h.tmp
++ nrnversion_h
++ COMMAND ${CMAKE_COMMAND} -E env PROJECT_VERSION=${PROJECT_VERSION} $ENV{SHELL} ${PROJECT_SOURCE_DIR}/git2nrnversion_h.sh ${PROJECT_SOURCE_DIR} > nrnversion.h.tmp
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different nrnversion.h.tmp ${NRN_NRNOC_SRC_DIR}/nrnversion.h
+ DEPENDS ${PROJECT_SOURCE_DIR}/git2nrnversion_h.sh)
+
diff --git a/var/spack/repos/builtin/packages/newt/package.py b/var/spack/repos/builtin/packages/newt/package.py
index 5458dd5510..061daaaf4f 100644
--- a/var/spack/repos/builtin/packages/newt/package.py
+++ b/var/spack/repos/builtin/packages/newt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nextflow/package.py b/var/spack/repos/builtin/packages/nextflow/package.py
index b376a69820..b075de775a 100644
--- a/var/spack/repos/builtin/packages/nextflow/package.py
+++ b/var/spack/repos/builtin/packages/nextflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,10 @@ from spack import *
class Nextflow(Package):
"""Data-driven computational pipelines"""
- homepage = "http://www.nextflow.io"
+ homepage = "https://www.nextflow.io"
url = "https://github.com/nextflow-io/nextflow/releases/download/v0.24.1/nextflow"
+ version('20.10.0', sha256='54f76c83cbabe8ec68d6a878dcf921e647284499f4ae917356e594d873cb78dd', expand=False)
version('20.07.1', sha256='de4db5747a801af645d9b021c7b36f4a25c3ce1a8fda7705a5f37e8f9357443a', expand=False)
version('0.25.6', sha256='9498806596c96ba87396194fa6f1d7d1cdb739990f83e7e89d1d055366c5a943', expand=False)
version('0.24.1', sha256='0bfde5335b385e3cff99bf4aab619e583de5dc0849767240f675037a2e7c1d83', expand=False)
diff --git a/var/spack/repos/builtin/packages/nfft/package.py b/var/spack/repos/builtin/packages/nfft/package.py
index ccd1a8ade0..8e02e1e16e 100644
--- a/var/spack/repos/builtin/packages/nfft/package.py
+++ b/var/spack/repos/builtin/packages/nfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nfs-ganesha/package.py b/var/spack/repos/builtin/packages/nfs-ganesha/package.py
index 08bdfc8a43..9445c4c0c6 100644
--- a/var/spack/repos/builtin/packages/nfs-ganesha/package.py
+++ b/var/spack/repos/builtin/packages/nfs-ganesha/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nfs-utils/package.py b/var/spack/repos/builtin/packages/nfs-utils/package.py
index b28a8596a5..69c9edd893 100644
--- a/var/spack/repos/builtin/packages/nfs-utils/package.py
+++ b/var/spack/repos/builtin/packages/nfs-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -25,6 +25,7 @@ class NfsUtils(AutotoolsPackage):
depends_on('lvm2')
depends_on('keyutils')
depends_on('sqlite')
+ depends_on('uuid')
depends_on('util-linux')
depends_on('gettext')
diff --git a/var/spack/repos/builtin/packages/nghttp2/package.py b/var/spack/repos/builtin/packages/nghttp2/package.py
index e5a6cb60dc..c4000d1638 100644
--- a/var/spack/repos/builtin/packages/nghttp2/package.py
+++ b/var/spack/repos/builtin/packages/nghttp2/package.py
@@ -1,12 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Nghttp2(AutotoolsPackage):
"""nghttp2 is an implementation of HTTP/2 and its header compression
@@ -15,23 +13,25 @@ class Nghttp2(AutotoolsPackage):
homepage = "https://nghttp2.org/"
url = "https://github.com/nghttp2/nghttp2/releases/download/v1.26.0/nghttp2-1.26.0.tar.gz"
+ version('1.44.0', sha256='3e4824d02ae27eca931e0bb9788df00a26e5fd8eb672cf52cbb89c1463ba16e9')
version('1.26.0', sha256='daf7c0ca363efa25b2cbb1e4bd925ac4287b664c3d1465f6a390359daa3f0cf1')
- depends_on('python@2.7:', type=('build', 'run'))
- depends_on('py-cython@0.19:', type=('build', 'run'))
- depends_on('py-setuptools', type=('build'))
-
- def setup_build_environment(self, env):
- site_packages_dir = os.path.join(
- self.spec.prefix.lib,
- 'python' + str(self.spec['python'].version.up_to(2)),
- 'site-packages')
- env.prepend_path('PYTHONPATH', site_packages_dir)
-
- @run_before('install')
- def ensure_install_dir_exists(self):
- site_packages_dir = os.path.join(
- self.spec.prefix.lib,
- 'python' + str(self.spec['python'].version.up_to(2)),
- 'site-packages')
- mkdirp(site_packages_dir)
+ depends_on('pkgconfig', type='build')
+
+ def configure_args(self):
+ return [
+ '--enable-lib-only',
+ '--with-libxml2=no',
+ '--with-jansson=no',
+ '--with-zlib=no',
+ '--with-libevent-openssl=no',
+ '--with-libcares=no',
+ '--with-openssl=no',
+ '--with-libev=no',
+ '--with-cunit=no',
+ '--with-jemalloc=no',
+ '--with-systemd=no',
+ '--with-mruby=no',
+ '--with-neverbleed=no',
+ '--with-boost=no'
+ ]
diff --git a/var/spack/repos/builtin/packages/nginx/package.py b/var/spack/repos/builtin/packages/nginx/package.py
index 8c2c6a32dd..e9e32e91a5 100644
--- a/var/spack/repos/builtin/packages/nginx/package.py
+++ b/var/spack/repos/builtin/packages/nginx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ngmerge/package.py b/var/spack/repos/builtin/packages/ngmerge/package.py
index f471c2abd0..089061d1d1 100644
--- a/var/spack/repos/builtin/packages/ngmerge/package.py
+++ b/var/spack/repos/builtin/packages/ngmerge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ngmlr/for_aarch64.patch b/var/spack/repos/builtin/packages/ngmlr/for_aarch64.patch
index 9db5bb838a..000ffa5503 100644
--- a/var/spack/repos/builtin/packages/ngmlr/for_aarch64.patch
+++ b/var/spack/repos/builtin/packages/ngmlr/for_aarch64.patch
@@ -5,7 +5,7 @@
#include <stdint.h>
#include <string.h>
-#include <emmintrin.h>
-+#include <SSE2NEON.h>
++#include <sse2neon.h>
#ifdef __cplusplus
extern "C" {
@@ -16,7 +16,7 @@
*/
-#include <emmintrin.h>
-+#include <SSE2NEON.h>
++#include <sse2neon.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
@@ -27,7 +27,7 @@
#include <stdio.h>
#include <algorithm>
-#include <x86intrin.h>
-+#include <SSE2NEON.h>
++#include <sse2neon.h>
#include "IConfig.h"
diff --git a/var/spack/repos/builtin/packages/ngmlr/package.py b/var/spack/repos/builtin/packages/ngmlr/package.py
index 6dede65ee9..5329857a1f 100644
--- a/var/spack/repos/builtin/packages/ngmlr/package.py
+++ b/var/spack/repos/builtin/packages/ngmlr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ngspice/package.py b/var/spack/repos/builtin/packages/ngspice/package.py
new file mode 100644
index 0000000000..1cffd24ecc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ngspice/package.py
@@ -0,0 +1,132 @@
+# Copyright 2013-2021 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 Ngspice(AutotoolsPackage):
+ """ngspice is the open source spice simulator for electric and
+ electronic circuits."""
+
+ homepage = "http://ngspice.sourceforge.net/"
+ url = "https://sourceforge.net/projects/ngspice/files/ngspice-33.tar.gz"
+ git = "git://git.code.sf.net/p/ngspice/ngspice"
+
+ maintainers = ['aweits', 'cessenat']
+
+ # Master version by default adds the experimental adms feature
+ version('master', branch='master')
+ version('34', sha256='2263fffc6694754972af7072ef01cfe62ac790800dad651bc290bfcae79bd7b5')
+ version('33', sha256='b99db66cc1c57c44e9af1ef6ccb1dcbc8ae1df3e35acf570af578f606f8541f1')
+ version('32', sha256='3cd90c4e94516d87c5b4d02a3a6405b1136b25d05c871d4fee1fd7c4c0d03ef2')
+ version('31', sha256='845f3b0c962e47ded051dfbc134c3c1e4ac925c9f0ce1cb3df64eb9b9da5c282')
+ version('30', sha256='08fe0e2f3768059411328a33e736df441d7e6e7304f8dad0ed5f28e15d936097')
+ version('29', sha256='8d6d0ffbc15f248eb6ec3bde3b9d1397fbc95cb677e1c6a14ff46065c7f95c4a')
+ version('27', sha256='0c08c7d57a2e21cf164496f3237f66f139e0c78e38345fbe295217afaf150695')
+
+ # kicad needs build=lib, i.e. --with--ngshared
+ variant(
+ 'build', default='lib',
+ description='Build type: lib=ngshared, bin otherwise',
+ values=('lib', 'bin'),
+ multi=False,
+ )
+
+ variant('X', default=False, description='Use the X Window System')
+ variant(
+ 'debug', default='auto',
+ description='Enable debugging features: '
+ 'auto is yes for build=lib, no for build=bin',
+ values=('auto', 'yes', 'no'),
+ multi=False,
+ )
+ variant('xspice', default=False, description='Enable XSPICE enhancements')
+ variant('cider', default=False, description='Enable CIDER enhancements')
+ variant('openmp', default=False, description='Compile with multi-threading support')
+ variant('readline', default=True, description='Build readline support (for bin)')
+ variant('fft', default=True, description='Use external fftw lib')
+
+ depends_on('fftw-api@3:~mpi~openmp', when='+fft~openmp')
+ depends_on('fftw-api@3:~mpi+openmp', when='+fft+openmp')
+ depends_on('readline', when='+readline build=bin')
+
+ # Needed for autoreconf:
+ depends_on('bison', type='build', when='@master')
+ depends_on('flex', type='build', when='@master')
+
+ # INSTALL indicates dependency on these :
+ depends_on('freetype', when='+X build=bin')
+ depends_on('libxrender', when='+X build=bin')
+ depends_on('fontconfig', when='+X build=bin')
+ depends_on('libxft', when='+X build=bin')
+ depends_on('libxext', when='+X build=bin')
+ depends_on('libxmu', when='+X build=bin')
+ depends_on('libxaw', when='+X build=bin')
+ depends_on('libx11', when='+X build=bin')
+
+ # Need autotools when building on master:
+ depends_on("autoconf", type='build', when='@master')
+ depends_on("automake", type='build', when='@master')
+ depends_on("libtool", type='build', when='@master')
+
+ depends_on("adms", when='@master')
+
+ conflicts('%gcc@:4.9.9', when='@32:',
+ msg='Failure to compile recent release with old gcc due to hicum2')
+ conflicts('@28', msg='This release does not compile')
+
+ @when('@master')
+ def autoreconf(self, spec, prefix):
+ Executable('./autogen.sh')('--adms')
+
+ def configure_args(self):
+ spec = self.spec
+ args = []
+ if 'build=lib' in spec:
+ args.append('--with-ngshared')
+ # Legacy debug is activated in auto debug mode with build=lib
+ if 'debug=no' in spec:
+ args.append('--disable-debug')
+ args.append('--without-x')
+ else:
+ if 'debug=auto' in spec or 'debug=no' in spec:
+ args.append('--disable-debug')
+ if '+readline' in spec:
+ args.append('--with-readline=yes')
+ if '+X' in spec:
+ args.append('--with-x')
+ x = spec['libx11']
+ args.extend([
+ '--x-includes=%s' % x.prefix.include,
+ '--x-libraries=%s' % x.prefix.lib,
+ ])
+ else:
+ args.append('--without-x')
+ if '+xspice' in spec:
+ args.append('--enable-xspice')
+ if '+cider' in spec:
+ args.append('--enable-cider')
+
+ if '+openmp' in spec:
+ args.append('--enable-openmp')
+ if '~fft' in spec:
+ args.append('--with-fftw3=no')
+ if 'darwin' in spec.architecture:
+ args.append('--enable-pss')
+ if '@master' in spec:
+ args.append('--enable-adms')
+
+ # Do not hide compilation line (easier to debug compilation)
+ args.append('--disable-silent-rules')
+
+ return args
+
+ def flag_handler(self, name, flags):
+ if self.spec.satisfies('%nvhpc') and name == 'cflags':
+ flags.append('-Wall -Wextra -Wmissing-prototypes -Wstrict-prototypes')
+ flags.append('-Wnested-externs -Wredundant-decls')
+ if 'debug=yes' in self.spec:
+ flags.append('-g')
+ return (None, None, flags)
diff --git a/var/spack/repos/builtin/packages/nicstat/package.py b/var/spack/repos/builtin/packages/nicstat/package.py
index 054cc9c4d8..e8d45a3061 100644
--- a/var/spack/repos/builtin/packages/nicstat/package.py
+++ b/var/spack/repos/builtin/packages/nicstat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nim/package.py b/var/spack/repos/builtin/packages/nim/package.py
index bc5fb15916..0ccb6add93 100644
--- a/var/spack/repos/builtin/packages/nim/package.py
+++ b/var/spack/repos/builtin/packages/nim/package.py
@@ -1,41 +1,43 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
class Nim(Package):
"""Nim is a statically typed compiled systems programming language.
It combines successful concepts from mature languages like Python,
- Ada and Modula."""
+ Ada and Modula.
+ """
homepage = "https://nim-lang.org/"
- url = "https://nim-lang.org/download/nim-0.20.0.tar.xz"
+ url = "https://nim-lang.org/download/nim-1.4.4.tar.xz"
- version('0.20.0', sha256='4be00d7dd47220da508b30ce3b4deade4ba39800ea4a1e574018b3c733359780')
- version('0.19.6', sha256='a09f0c58d29392434d4fd6d15d4059cf7e013ae948413cb9233b8233d67e3a29')
+ version('1.4.4', sha256='6d73729def143f72fc2491ca937a9cab86d2a8243bd845a5d1403169ad20660e')
+ version('1.4.2', sha256='03a47583777dd81380a3407aa6a788c9aa8a67df4821025770c9ac4186291161')
+ version('0.20.0', sha256='51f479b831e87b9539f7264082bb6a64641802b54d2691b3c6e68ac7e2699a90', deprecated=True)
+ version('0.19.6', sha256='a09f0c58d29392434d4fd6d15d4059cf7e013ae948413cb9233b8233d67e3a29', deprecated=True)
version('0.19.9', sha256='154c440cb8f27da20b3d6b1a8cc03f63305073fb995bbf26ec9bc6ad891ce276',
- url='https://github.com/nim-lang/nightlies/releases/download/2019-06-02-devel-1255b3c/nim-0.19.9-linux_x64.tar.xz')
+ url='https://github.com/nim-lang/nightlies/releases/download/2019-06-02-devel-1255b3c/nim-0.19.9-linux_x64.tar.xz',
+ deprecated=True)
+
+ depends_on('pcre')
+ depends_on('openssl')
- depends_on('pcre', type='build')
- depends_on('openssl', type='build')
+ def patch(self):
+ install_sh_path = os.path.join(self.stage.source_path, 'install.sh')
+ filter_file("1/nim", "1", install_sh_path)
def install(self, spec, prefix):
bash = which('bash')
bash('./build.sh')
- nim = Executable(join_path('.', 'bin/nim'))
+ nim = Executable(os.path.join('bin', 'nim'))
nim('c', 'koch')
- koch = Executable(join_path('.', 'koch'))
+ koch = Executable('./koch')
+ koch('boot', '-d:release')
koch('tools')
- install_tree('bin', prefix.bin)
- install_tree('lib', prefix.lib)
- install_tree('compiler', prefix.compiler)
- install_tree('config', prefix.config)
- install_tree('doc', prefix.doc)
- install('compiler.nimble', prefix)
+ bash('./install.sh', prefix)
diff --git a/var/spack/repos/builtin/packages/ninja-fortran/package.py b/var/spack/repos/builtin/packages/ninja-fortran/package.py
index d85a5b4542..600a638826 100644
--- a/var/spack/repos/builtin/packages/ninja-fortran/package.py
+++ b/var/spack/repos/builtin/packages/ninja-fortran/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ninja/package.py b/var/spack/repos/builtin/packages/ninja/package.py
index 96cd0252a2..a354d9d254 100644
--- a/var/spack/repos/builtin/packages/ninja/package.py
+++ b/var/spack/repos/builtin/packages/ninja/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,6 +18,7 @@ class Ninja(Package):
version('kitware', branch='features-for-fortran', git='https://github.com/Kitware/ninja.git')
version('master', branch='master')
+ version('1.10.2', sha256='ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed')
version('1.10.1', sha256='a6b6f7ac360d4aabd54e299cc1d8fa7b234cd81b9401693da21221c62569a23e')
version('1.10.0', sha256='3810318b08489435f8efc19c05525e80a993af5a55baa0dfeae0465a9d45f99f')
version('1.9.0', sha256='5d7ec75828f8d3fd1a0c2f31b5b0cea780cdfe1031359228c428c1a48bfcd5b9')
diff --git a/var/spack/repos/builtin/packages/nix/package.py b/var/spack/repos/builtin/packages/nix/package.py
index 7025b65dc1..4abf655a1e 100644
--- a/var/spack/repos/builtin/packages/nix/package.py
+++ b/var/spack/repos/builtin/packages/nix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Nix(AutotoolsPackage):
"""Nix, the purely functional package manager"""
- homepage = "http://nixos.org/nix"
+ homepage = "https://nixos.org/nix"
url = "https://github.com/NixOS/nix/archive/2.2.1.zip"
version('2.2.1', sha256='b591664dd1b04a8f197407d445799ece41140a3117bcbdf8e3c5e94cd3f59854')
diff --git a/var/spack/repos/builtin/packages/njet/njet-2.0.0.patch b/var/spack/repos/builtin/packages/njet/njet-2.0.0.patch
new file mode 100644
index 0000000000..30883e323f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/njet/njet-2.0.0.patch
@@ -0,0 +1,17 @@
+--- blha/njet_olp.cpp.orig 2016-06-09 15:09:37.024953173 +0200
++++ blha/njet_olp.cpp 2016-06-09 15:09:41.783999034 +0200
+@@ -1076,12 +1076,12 @@
+ string line;
+ int linenum = 0;
+
+- while (is_good && (is_good = getline(*input, line))) {
++ while (is_good && (is_good = getline(*input, line).good())) {
+ linenum++;
+ if (line.find(SIGNPREF) == 0) {
+ is_njet = true;
+ if (stringstream(line.substr(SIGNPREF.length())) >> signval) {
+- is_good = getline(*input, line);
++ is_good = getline(*input, line).good();
+ linenum++;
+ body.push_back(line);
+ continue;
diff --git a/var/spack/repos/builtin/packages/njet/package.py b/var/spack/repos/builtin/packages/njet/package.py
index a22e6de0e7..a29079288f 100644
--- a/var/spack/repos/builtin/packages/njet/package.py
+++ b/var/spack/repos/builtin/packages/njet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,10 +13,15 @@ class Njet(AutotoolsPackage):
homepage = "https://bitbucket.org/njet/njet/wiki/Home"
url = "https://bitbucket.org/njet/njet/downloads/njet-2.1.1.tar.gz"
+ tags = ['hep']
+
version('2.1.1', sha256='3858ad37e84f3652711aa033819a6566352ecff04a1cb0189d6590af75b7bb56')
+ version('2.0.0', sha256='a1f5c171b8aff3553d9dde24d3ced5479bdaeec67f4c90c70a846ee3449b40ea')
depends_on('qd')
+ patch('njet-2.0.0.patch', when='@2.0.0', level=0)
+
def configure_args(self):
args = ['--with-qd=' + self.spec['qd'].prefix,
"FFLAGS=-ffixed-line-length-none -std=legacy"]
diff --git a/var/spack/repos/builtin/packages/nlcglib/package.py b/var/spack/repos/builtin/packages/nlcglib/package.py
index af001a6bd6..bc0481fe76 100644
--- a/var/spack/repos/builtin/packages/nlcglib/package.py
+++ b/var/spack/repos/builtin/packages/nlcglib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nlohmann-json-schema-validator/package.py b/var/spack/repos/builtin/packages/nlohmann-json-schema-validator/package.py
index ff2af6fcea..a21b239f32 100644
--- a/var/spack/repos/builtin/packages/nlohmann-json-schema-validator/package.py
+++ b/var/spack/repos/builtin/packages/nlohmann-json-schema-validator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nlohmann-json/package.py b/var/spack/repos/builtin/packages/nlohmann-json/package.py
index 8cba1e2a09..6784b63ea6 100644
--- a/var/spack/repos/builtin/packages/nlohmann-json/package.py
+++ b/var/spack/repos/builtin/packages/nlohmann-json/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,19 +13,21 @@ class NlohmannJson(CMakePackage):
url = "https://github.com/nlohmann/json/archive/v3.1.2.tar.gz"
maintainers = ['ax3l']
- version('3.9.1', sha256='4cf0df69731494668bdd6460ed8cb269b68de9c19ad8c27abc24cd72605b2d5b')
- version('3.8.0', sha256='7d0edf65f2ac7390af5e5a0b323b31202a6c11d744a74b588dc30f5a8c9865ba')
- version('3.7.2', sha256='914c4af3f14bb98ff084172685fba5d32e8ce4390ec8ba5da45c63daa305df4d')
- version('3.7.0', sha256='d51a3a8d3efbb1139d7608e28782ea9efea7e7933157e8ff8184901efd8ee760')
- version('3.6.1', sha256='80c45b090e40bf3d7a7f2a6e9f36206d3ff710acfa8d8cc1f8c763bb3075e22e')
- version('3.5.0', sha256='e0b1fc6cc6ca05706cce99118a87aca5248bd9db3113e703023d23f044995c1d')
- version('3.4.0', sha256='c377963a95989270c943d522bfefe7b889ef5ed0e1e15d535fd6f6f16ed70732')
- version('3.3.0', sha256='2fd1d207b4669a7843296c41d3b6ac5b23d00dec48dba507ba051d14564aa801')
- version('3.2.0', sha256='2de558ff3b3b32eebfb51cf2ceb835a0fa5170e6b8712b02be9c2c07fcfe52a1')
- version('3.1.2', sha256='e8fffa6cbdb3c15ecdff32eebf958b6c686bc188da8ad5c6489462d16f83ae54')
- version('3.1.1', sha256='9f3549824af3ca7e9707a2503959886362801fb4926b869789d6929098a79e47')
-
- variant('single_header', default=True,
+ version('3.10.0', sha256='eb8b07806efa5f95b349766ccc7a8ec2348f3b2ee9975ad879259a371aea8084')
+ version('3.9.1', sha256='4cf0df69731494668bdd6460ed8cb269b68de9c19ad8c27abc24cd72605b2d5b')
+ version('3.9.0', sha256='9943db11eeaa5b23e58a88fbc26c453faccef7b546e55063ad00e7caaaf76d0b')
+ version('3.8.0', sha256='7d0edf65f2ac7390af5e5a0b323b31202a6c11d744a74b588dc30f5a8c9865ba')
+ version('3.7.2', sha256='914c4af3f14bb98ff084172685fba5d32e8ce4390ec8ba5da45c63daa305df4d')
+ version('3.7.0', sha256='d51a3a8d3efbb1139d7608e28782ea9efea7e7933157e8ff8184901efd8ee760')
+ version('3.6.1', sha256='80c45b090e40bf3d7a7f2a6e9f36206d3ff710acfa8d8cc1f8c763bb3075e22e')
+ version('3.5.0', sha256='e0b1fc6cc6ca05706cce99118a87aca5248bd9db3113e703023d23f044995c1d')
+ version('3.4.0', sha256='c377963a95989270c943d522bfefe7b889ef5ed0e1e15d535fd6f6f16ed70732')
+ version('3.3.0', sha256='2fd1d207b4669a7843296c41d3b6ac5b23d00dec48dba507ba051d14564aa801')
+ version('3.2.0', sha256='2de558ff3b3b32eebfb51cf2ceb835a0fa5170e6b8712b02be9c2c07fcfe52a1')
+ version('3.1.2', sha256='e8fffa6cbdb3c15ecdff32eebf958b6c686bc188da8ad5c6489462d16f83ae54')
+ version('3.1.1', sha256='9f3549824af3ca7e9707a2503959886362801fb4926b869789d6929098a79e47')
+
+ variant('multiple_headers', default=False,
description='Use amalgamated single-header')
depends_on('cmake@3.8:', type='build')
@@ -39,12 +41,7 @@ class NlohmannJson(CMakePackage):
conflicts('%pgi@:14')
def cmake_args(self):
- spec = self.spec
- define = CMakePackage.define
-
- args = [
- define('JSON_MultipleHeaders', '~single_header' in spec),
- define('BUILD_TESTING', self.run_tests),
+ return [
+ self.define_from_variant('JSON_MultipleHeaders', 'multiple_headers'),
+ self.define('JSON_BuildTests', self.run_tests),
]
-
- return args
diff --git a/var/spack/repos/builtin/packages/nlopt/package.py b/var/spack/repos/builtin/packages/nlopt/package.py
index 509218ea83..2a4b7dc45b 100644
--- a/var/spack/repos/builtin/packages/nlopt/package.py
+++ b/var/spack/repos/builtin/packages/nlopt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,8 +17,12 @@ class Nlopt(CMakePackage):
git = "https://github.com/stevengj/nlopt.git"
version('master', branch='master')
- version('2.6.1', sha256='66d63a505187fb6f98642703bd0ef006fedcae2f9a6d1efa4f362ea919a02650')
- version('2.5.0', sha256='c6dd7a5701fff8ad5ebb45a3dc8e757e61d52658de3918e38bab233e7fd3b4ae')
+
+ version('2.7.0', 'b881cc2a5face5139f1c5a30caf26b7d3cb43d69d5e423c9d78392f99844499f')
+ version('2.6.2', 'cfa5981736dd60d0109c534984c4e13c615314d3584cf1c392a155bfe1a3b17e')
+ version('2.6.1', '66d63a505187fb6f98642703bd0ef006fedcae2f9a6d1efa4f362ea919a02650')
+ version('2.6.0', 'a13077cdf5f5f1127eaaac0bf1e06744bfe98d8a4a3430a15e0af50a69f451ab')
+ version('2.5.0', 'c6dd7a5701fff8ad5ebb45a3dc8e757e61d52658de3918e38bab233e7fd3b4ae')
variant('shared', default=True, description='Enables the build of shared libraries')
variant('python', default=True, description='Build python wrappers')
@@ -55,6 +59,10 @@ class Nlopt(CMakePackage):
if '-shared' in spec:
args.append('-DBUILD_SHARED_LIBS:Bool=OFF')
+ # On is default
+ if '-octave' in spec:
+ args.append('-DNLOPT_OCTAVE:Bool=OFF')
+
if '+cxx' in spec:
args.append('-DNLOPT_CXX:BOOL=ON')
diff --git a/var/spack/repos/builtin/packages/nmap/package.py b/var/spack/repos/builtin/packages/nmap/package.py
index a7e3d1a4b2..263549d4c8 100644
--- a/var/spack/repos/builtin/packages/nmap/package.py
+++ b/var/spack/repos/builtin/packages/nmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,41 @@ class Nmap(AutotoolsPackage):
homepage = "https://nmap.org"
url = "https://nmap.org/dist/nmap-7.70.tar.bz2"
+ list_url = "https://nmap.org/dist-old/"
+ version('7.92', sha256='a5479f2f8a6b0b2516767d2f7189c386c1dc858d997167d7ec5cfc798c7571a1')
+ version('7.91', sha256='18cc4b5070511c51eb243cdd2b0b30ff9b2c4dc4544c6312f75ce3a67a593300')
+ version('7.90', sha256='5557c3458275e8c43e1d0cfa5dad4e71dd39e091e2029a293891ad54098a40e8')
+ version('7.80', sha256='fcfa5a0e42099e12e4bf7a68ebe6fde05553383a682e816a7ec9256ab4773faa')
version('7.70', sha256='847b068955f792f4cc247593aca6dc3dc4aae12976169873247488de147a6e18')
+ version('7.60', sha256='a8796ecc4fa6c38aad6139d9515dc8113023a82e9d787e5a5fb5fa1b05516f21')
+ version('7.50', sha256='e9a96a8e02bfc9e80c617932acc61112c23089521ee7d6b1502ecf8e3b1674b2')
+ version('7.40', sha256='9e14665fffd054554d129d62c13ad95a7b5c7a046daa2290501909e65f4d3188')
version('7.31', sha256='cb9f4e03c0771c709cd47dc8fc6ac3421eadbdd313f0aae52276829290583842')
version('7.30', sha256='ba38a042ec67e315d903d28a4976b74999da94c646667c0c63f31e587d6d8d0f')
+ version('7.12', sha256='63df082a87c95a189865d37304357405160fc6333addcf5b84204c95e0539b04')
+ version('7.01', sha256='cf1fcd2643ba2ef52f47acb3c18e52fa12a4ae4b722804da0e54560704627705')
+ version('6.40', sha256='491f77d8b3fb3bb38ba4e3850011fe6fb43bbe197f9382b88cb59fa4e8f7a401')
+ version('6.01', sha256='77f6635b677d28b546cbef97e4ead6c2d4a5aebcaa108fe3a3c135db6448617a')
+
+ variant("liblua", default=True, description="Enable lua (required by all of NSE)")
+ variant("ncat", default=True, description="Enable ncat")
+ variant("ndiff", default=True, description="Enable ndiff")
+ variant("nping", default=True, description="Enable nping")
+ variant("zenmap", default=True, description="Enable zenmap")
+ variant("nmap-update", default=False, description="Enable nmap-update")
+
+ depends_on("openssl@1.1:", when="@7.50:")
+ depends_on("openssl@:1.0.9", when="@:7.49")
+
+ def configure_args(self):
+ args = []
+
+ args += self.with_or_without('liblua')
+ args += self.with_or_without('ncat')
+ args += self.with_or_without('ndiff')
+ args += self.with_or_without('nping')
+ args += self.with_or_without('zenmap')
+ args += self.with_or_without('nmap-update')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/nn-c/package.py b/var/spack/repos/builtin/packages/nn-c/package.py
index 01f8e652b3..fb68df6e6f 100644
--- a/var/spack/repos/builtin/packages/nn-c/package.py
+++ b/var/spack/repos/builtin/packages/nn-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nnpack/package.py b/var/spack/repos/builtin/packages/nnpack/package.py
new file mode 100644
index 0000000000..75e2b53379
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nnpack/package.py
@@ -0,0 +1,118 @@
+# Copyright 2013-2021 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 Nnpack(CMakePackage):
+ """Acceleration package for neural networks on multi-core CPUs."""
+
+ homepage = "https://github.com/Maratyszcza/NNPACK"
+ git = "https://github.com/Maratyszcza/NNPACK.git"
+
+ version('master', branch='master')
+ version('2020-12-21', commit='c07e3a0400713d546e0dea2d5466dd22ea389c73') # py-torch@1.8:1.9
+ version('2019-10-07', commit='24b55303f5cf65d75844714513a0d1b1409809bd') # py-torch@1.4:1.7
+ version('2019-03-23', commit='c039579abe21f5756e0f0e45e8e767adccc11852') # py-torch@1.1:1.3
+ version('2018-09-03', commit='1e005b0c2777f39972a4ac15bea03e0e315a3d92') # py-torch@1.0
+ version('2018-05-21', commit='3eb0d453662d05a708f43b108bed9e17b705383e') # py-torch@0.4.1
+ version('2018-04-05', commit='b63fe1ba8963f1756b8decc593766615cee99c35') # py-torch@:0.4.0
+
+ depends_on('cmake@2.8.12:', type='build')
+ depends_on('ninja', type='build')
+ depends_on('python', type='build')
+ depends_on('py-setuptools', type='build')
+
+ generator = 'Ninja'
+
+ resource(
+ name='six',
+ url='https://files.pythonhosted.org/packages/source/s/six/six-1.11.0.tar.gz',
+ sha256='70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9',
+ destination='deps',
+ placement='six',
+ )
+ resource(
+ name='opcodes',
+ url='https://files.pythonhosted.org/packages/source/o/opcodes/opcodes-0.3.13.tar.gz',
+ sha256='1859c23143fe20daa4110be87a947cbf3eefa048da71dde642290213f251590c',
+ destination='deps',
+ placement='opcodes',
+ )
+ resource(
+ name='peachpy',
+ git='https://github.com/Maratyszcza/PeachPy.git',
+ branch='master',
+ destination='deps',
+ placement='peachpy',
+ )
+ resource(
+ name='cpuinfo',
+ git='https://github.com/Maratyszcza/cpuinfo.git',
+ branch='master',
+ destination='deps',
+ placement='cpuinfo',
+ )
+ resource(
+ name='fp16',
+ git='https://github.com/Maratyszcza/FP16.git',
+ branch='master',
+ destination='deps',
+ placement='fp16',
+ )
+ resource(
+ name='fxdiv',
+ git='https://github.com/Maratyszcza/FXdiv.git',
+ branch='master',
+ destination='deps',
+ placement='fxdiv',
+ )
+ resource(
+ name='psimd',
+ git='https://github.com/Maratyszcza/psimd.git',
+ branch='master',
+ destination='deps',
+ placement='psimd',
+ )
+ resource(
+ name='pthreadpool',
+ git='https://github.com/Maratyszcza/pthreadpool.git',
+ branch='master',
+ destination='deps',
+ placement='pthreadpool',
+ )
+ resource(
+ name='googletest',
+ url='https://github.com/google/googletest/archive/release-1.8.0.zip',
+ sha256='f3ed3b58511efd272eb074a3a6d6fb79d7c2e6a0e374323d1e6bcbcc1ef141bf',
+ destination='deps',
+ placement='googletest',
+ )
+
+ @run_before('cmake')
+ def generate_peachpy(self):
+ # https://github.com/Maratyszcza/NNPACK/issues/203
+ with working_dir(join_path(self.stage.source_path, 'deps', 'peachpy')):
+ setup_py('generate')
+
+ def cmake_args(self):
+ return [
+ self.define('PYTHON_SIX_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'six')),
+ self.define('PYTHON_PEACHPY_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'peachpy')),
+ self.define('CPUINFO_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'cpuinfo')),
+ self.define('FP16_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'fp16')),
+ self.define('FXDIV_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'fxdiv')),
+ self.define('PSIMD_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'psimd')),
+ self.define('PTHREADPOOL_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'pthreadpool')),
+ self.define('GOOGLETEST_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googletest')),
+ ]
diff --git a/var/spack/repos/builtin/packages/nnvm/package.py b/var/spack/repos/builtin/packages/nnvm/package.py
index b341fc315a..ae82139089 100644
--- a/var/spack/repos/builtin/packages/nnvm/package.py
+++ b/var/spack/repos/builtin/packages/nnvm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,6 +26,6 @@ class Nnvm(CMakePackage):
def cmake_args(self):
spec = self.spec
return [
- '-DUSE_SHARED_NNVM=%s' % ('ON' if '+shared' in spec else 'OFF'),
+ self.define_from_variant('USE_SHARED_NNVM', 'shared'),
'-DUSE_STATIC_NNVM=%s' % ('ON' if '~shared' in spec else 'OFF'),
]
diff --git a/var/spack/repos/builtin/packages/node-js/package.py b/var/spack/repos/builtin/packages/node-js/package.py
index 28def78333..3b5902bef8 100644
--- a/var/spack/repos/builtin/packages/node-js/package.py
+++ b/var/spack/repos/builtin/packages/node-js/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
import subprocess
+import sys
+
+from spack import *
class NodeJs(Package):
@@ -18,13 +19,15 @@ class NodeJs(Package):
list_depth = 1
# Current (latest features)
+ version('15.3.0', sha256='cadfa384a5f14591b84ce07a1afe529f28deb0d43366fb0ae4e78afba96bfaf2')
version('14.13.0', sha256='8538b2e76aa06ee0e6eb1c118426c3c5ca53b2e49d66591738eacf76e89edd61')
version('14.10.0', sha256='7e0d7a1aa23697415e3588a1ca4f1c47496e6c88b9cf37c66be90353d3e4ac3e')
version('13.8.0', sha256='815b5e1b18114f35da89e4d98febeaba97555d51ef593bd5175db2b05f2e8be6')
version('13.5.0', sha256='4b8078d896a7550d7ed399c1b4ac9043e9f883be404d9b337185c8d8479f2db8')
# LTS (recommended for most users)
- version('12.18.4', sha256='a802d87e579e46fc52771ed6f2667048320caca867be3276f4c4f1bbb41389c3', preferred=True)
+ version('14.15.1', sha256='a1120472bf55aea745287693a6651e16973e1008c9d6107df350126adf9716fe', preferred=True)
+ version('12.18.4', sha256='a802d87e579e46fc52771ed6f2667048320caca867be3276f4c4f1bbb41389c3')
version('12.18.3', sha256='6ea85f80e01b007cc9b566b8836513bc5102667d833bad4c1092be60fa60c2d4')
version('12.16.0', sha256='ae2dfe74485d821d4fef7cf1802acd2322cd994c853a2327c4306952f4453441')
version('12.14.0', sha256='5c1939867228f3845c808ef84a89c8ee93cc35f857bf7587ecee1b5a6d9da67b')
diff --git a/var/spack/repos/builtin/packages/notmuch/package.py b/var/spack/repos/builtin/packages/notmuch/package.py
index 6a79d0b421..7366a44e06 100644
--- a/var/spack/repos/builtin/packages/notmuch/package.py
+++ b/var/spack/repos/builtin/packages/notmuch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/npb/package.py b/var/spack/repos/builtin/packages/npb/package.py
index bc9a10cc0d..9dd5ab5185 100644
--- a/var/spack/repos/builtin/packages/npb/package.py
+++ b/var/spack/repos/builtin/packages/npb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/npm/package.py b/var/spack/repos/builtin/packages/npm/package.py
index 7b11e83911..79aec470d2 100644
--- a/var/spack/repos/builtin/packages/npm/package.py
+++ b/var/spack/repos/builtin/packages/npm/package.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import shutil
+
from spack import *
@@ -13,9 +14,10 @@ class Npm(Package):
"""npm: A package manager for javascript."""
homepage = "https://github.com/npm/cli"
- # base http://www.npmjs.com/
+ # base https://www.npmjs.com/
url = "https://registry.npmjs.org/npm/-/npm-6.13.4.tgz"
+ version('6.14.9', sha256='1e0e880ce0d5adf0120fb3f92fc8e5ea5bac73681d37282615d074ff670f7703')
version('6.14.8', sha256='fe8e873cb606c06f67f666b4725eb9122c8927f677c8c0baf1477f0ff81f5a2c')
version('6.13.7', sha256='6adf71c198d61a5790cf0e057f4ab72c6ef6c345d72bed8bb7212cb9db969494')
version('6.13.4', sha256='a063290bd5fa06a8753de14169b7b243750432f42d01213fbd699e6b85916de7')
diff --git a/var/spack/repos/builtin/packages/npth/package.py b/var/spack/repos/builtin/packages/npth/package.py
index e5a82c4e83..0d2bbdebe7 100644
--- a/var/spack/repos/builtin/packages/npth/package.py
+++ b/var/spack/repos/builtin/packages/npth/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nrm/package.py b/var/spack/repos/builtin/packages/nrm/package.py
index d4d5bb4914..cee2d89547 100644
--- a/var/spack/repos/builtin/packages/nrm/package.py
+++ b/var/spack/repos/builtin/packages/nrm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ns-3-dev/package.py b/var/spack/repos/builtin/packages/ns-3-dev/package.py
index 6f1d85f6db..1168e28134 100644
--- a/var/spack/repos/builtin/packages/ns-3-dev/package.py
+++ b/var/spack/repos/builtin/packages/ns-3-dev/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nseg/package.py b/var/spack/repos/builtin/packages/nseg/package.py
index 76bf947f20..12a507cb4f 100644
--- a/var/spack/repos/builtin/packages/nseg/package.py
+++ b/var/spack/repos/builtin/packages/nseg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nsimd/package.py b/var/spack/repos/builtin/packages/nsimd/package.py
index f9706f834d..84c6326bae 100644
--- a/var/spack/repos/builtin/packages/nsimd/package.py
+++ b/var/spack/repos/builtin/packages/nsimd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,10 @@ class Nsimd(CMakePackage):
maintainers = ['eschnett']
+ version('2.2', sha256='7916bec6c8ea9ddc690a5bfc80fb1b9402f9e1b2a4b4bb6b6bb8eb5a07eb018e')
+ version('2.1', sha256='3274f1061d1fac170130b8c75378a6b94580629b3dc1d53db244b51500ee4695')
+ # Version 2.0 is disabled since it does not support cmake
+ # version('2.0', sha256='b239e98316f93257161b25c8232634884edcee358982a74742981cc9b68da642')
version('1.0', sha256='523dae83f1d93eab30114321f1c9a67e2006a52595da4c51f121ca139abe0857')
variant('simd',
@@ -21,17 +25,40 @@ class Nsimd(CMakePackage):
'none',
'CPU',
'SSE2', 'SSE42', 'AVX', 'AVX2', 'AVX512_KNL', 'AVX512_SKYLAKE',
- 'NEON128', 'AARCH64', 'SVE',
+ 'NEON128', 'AARCH64',
+ 'SVE', 'SVE128', 'SVE256', 'SVE512', 'SVE1024', 'SVE2048',
+ 'CUDA', 'ROCM',
),
multi=False)
variant('optionals', values=any_combination_of('FMA', 'FP16'),
description='Optional SIMD features',)
conflicts('simd=none', msg="SIMD instruction set not defined")
+ conflicts('simd=SVE128', when=('@:1'),
+ msg="SIMD extension not available in version @:1")
+ conflicts('simd=SVE256', when=('@:1'),
+ msg="SIMD extension not available in version @:1")
+ conflicts('simd=SVE512', when=('@:1'),
+ msg="SIMD extension not available in version @:1")
+ conflicts('simd=SVE1024', when=('@:1'),
+ msg="SIMD extension not available in version @:1")
+ conflicts('simd=SVE2048', when=('@:1'),
+ msg="SIMD extension not available in version @:1")
+ conflicts('simd=CUDA', when=('@:1'),
+ msg="SIMD extension not available in version @:1")
+ conflicts('simd=ROCM', when=('@:1'),
+ msg="SIMD extension not available in version @:1")
+ conflicts('optionals=FMA', when=('@2:'),
+ msg="SIMD optionals not available in version @2:")
+ conflicts('optionals=FP16', when=('@2:'),
+ msg="SIMD optionals not available in version @2:")
+ conflicts('optionals=FMA,FP16', when=('@2:'),
+ msg="SIMD optionals not available in version @2:")
# Requires a C++14 compiler for building.
# The C++ interface requires a C++11 compiler to use.
depends_on('cmake@2.8.7:', type='build')
+ depends_on('cmake@3.0.2:', type='build', when='@2:')
depends_on('python@3:', type='build')
# Add a 'generate_code' phase in the beginning
@@ -39,24 +66,28 @@ class Nsimd(CMakePackage):
def generate_code(self, spec, prefix):
"""Auto-generates code in the build directory"""
- options = [
- 'egg/hatch.py',
- '--all',
- '--force',
- '--disable-clang-format',
- ]
- python = spec['python'].command
- python(*options)
+ if self.spec.satisfies("@:1"):
+ options = [
+ 'egg/hatch.py',
+ '--all',
+ '--force',
+ ]
+ python = spec['python'].command
+ python(*options)
def cmake_args(self):
# Required SIMD argument
simd = self.spec.variants['simd'].value
- cmake_args = ["-DSIMD={0}".format(simd)]
+ if self.spec.satisfies("@:1"):
+ cmake_args = ["-DSIMD={0}".format(simd)]
+ else:
+ cmake_args = ["-Dsimd={0}".format(simd)]
- # Optional SIMD instructions to be turned on explicitly
- optionals_value = self.spec.variants['optionals'].value
- if optionals_value != 'none':
- optionals_arg = ';'.join(optionals_value)
- cmake_args.append("-DSIMD_OPTIONALS={0}".format(optionals_arg))
+ if self.spec.satisfies("@:1"):
+ # Optional SIMD instructions to be turned on explicitly
+ optionals_value = self.spec.variants['optionals'].value
+ if optionals_value != 'none':
+ optionals_arg = ';'.join(optionals_value)
+ cmake_args.append("-DSIMD_OPTIONALS={0}".format(optionals_arg))
return cmake_args
diff --git a/var/spack/repos/builtin/packages/nspr/package.py b/var/spack/repos/builtin/packages/nspr/package.py
index 5d697e6ddc..33b58f3b16 100644
--- a/var/spack/repos/builtin/packages/nspr/package.py
+++ b/var/spack/repos/builtin/packages/nspr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,10 @@ class Nspr(AutotoolsPackage):
"""Netscape Portable Runtime (NSPR) provides a platform-neutral API
for system level and libc-like functions."""
- homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR"
- url = "http://ftp.mozilla.org/pub/nspr/releases/v4.13.1/src/nspr-4.13.1.tar.gz"
+ homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Reference/NSPR_functions"
+ url = "https://ftp.mozilla.org/pub/nspr/releases/v4.13.1/src/nspr-4.13.1.tar.gz"
+ version('4.31', sha256='5729da87d5fbf1584b72840751e0c6f329b5d541850cacd1b61652c95015abc8')
version('4.13.1', sha256='5e4c1751339a76e7c772c0c04747488d7f8c98980b434dc846977e43117833ab')
depends_on('perl', type='build')
@@ -22,5 +23,12 @@ class Nspr(AutotoolsPackage):
def configure_args(self):
return [
'--with-mozilla',
- '--enable-64bit' # without this, fails when 32-bit glibc not found
+ '--enable-64bit', # without this, fails when 32-bit glibc not found
+ '--enable-optimize',
]
+
+ @property
+ def headers(self):
+ headers = find_headers('*', self.prefix.include, recursive=True)
+ headers.directories = [self.prefix.include.nspr]
+ return headers
diff --git a/var/spack/repos/builtin/packages/nss/package.py b/var/spack/repos/builtin/packages/nss/package.py
new file mode 100644
index 0000000000..42292e1ed2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nss/package.py
@@ -0,0 +1,69 @@
+# Copyright 2013-2021 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 Nss(MakefilePackage):
+ """Network Security Services (NSS) is a set of libraries designed to
+ support cross-platform development of security-enabled client and server
+ applications. Applications built with NSS can support SSL v3, TLS, PKCS #5,
+ PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other
+ security standards."""
+
+ homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS"
+ url = "https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_67_RTM/src/nss-3.67.tar.gz"
+
+ version('3.67', sha256='f6549a9148cd27b394b40c77fa73111d5ea23cdb51d796665de1b7458f88ce7f')
+
+ depends_on('nspr@4.24:')
+ depends_on('sqlite')
+ depends_on('zlib')
+
+ parallel = False
+
+ build_directory = 'nss'
+
+ @property
+ def build_targets(self):
+ # We cannot use nss_build_all because this will try to build nspr.
+ targets = ['all', 'latest']
+
+ targets.append('USE_64=1')
+ targets.append('BUILD_OPT=1')
+
+ for var in ('DIST', 'SOURCE_PREFIX', 'SOURCE_MD_DIR'):
+ targets.append('{0}={1}'.format(
+ var, join_path(self.stage.source_path, 'dist')))
+
+ targets.append('NSS_USE_SYSTEM_SQLITE=1')
+
+ if self.spec.satisfies('%gcc@10:'):
+ targets.append('NSS_ENABLE_WERROR=0')
+
+ return targets
+
+ def install(self, spec, prefix):
+ install_tree('dist/bin', prefix.bin, symlinks=False)
+ install_tree('dist/public/nss', prefix.include.nss, symlinks=False)
+ install_tree('dist/lib', prefix.lib, symlinks=False)
+
+ @run_after('install')
+ def install_pkgconfig(self):
+ pkg_path = join_path(self.prefix.lib, 'pkgconfig')
+ mkdirp(pkg_path)
+
+ with open(join_path(pkg_path, 'nss.pc'), 'w') as f:
+ f.write('prefix={0}\n'.format(self.prefix))
+ f.write('exec_prefix=${prefix}\n')
+ f.write('libdir={0}\n'.format(self.prefix.lib))
+ f.write('includedir={0}\n'.format(self.prefix.include.nss))
+ f.write('\n')
+ f.write('Name: NSS\n')
+ f.write('Description: Network Security Services\n')
+ f.write('Version: {0}\n'.format(self.spec.version))
+ f.write('Requires: nspr\n')
+ f.write('Cflags: -I${includedir}\n')
+ f.write('Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3\n')
diff --git a/var/spack/repos/builtin/packages/ntirpc/package.py b/var/spack/repos/builtin/packages/ntirpc/package.py
index fa29056e16..6d67a37777 100644
--- a/var/spack/repos/builtin/packages/ntirpc/package.py
+++ b/var/spack/repos/builtin/packages/ntirpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ntpoly/package.py b/var/spack/repos/builtin/packages/ntpoly/package.py
index d83a0bba78..0d657b0d56 100644
--- a/var/spack/repos/builtin/packages/ntpoly/package.py
+++ b/var/spack/repos/builtin/packages/ntpoly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/numactl/fix-empty-block.patch b/var/spack/repos/builtin/packages/numactl/fix-empty-block.patch
new file mode 100644
index 0000000000..9ddf07c6e1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/numactl/fix-empty-block.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index ef39707..659a765 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -17,7 +17,7 @@ AC_PROG_CC
+ # Override CFLAGS so that we can specify custom CFLAGS for numademo.
+ AX_AM_OVERRIDE_VAR([CFLAGS])
+
+-AX_TLS
++AX_TLS([:],[:])
+
+ AX_CHECK_COMPILE_FLAG([-ftree-vectorize], [tree_vectorize="true"])
+ AM_CONDITIONAL([HAVE_TREE_VECTORIZE], [test x"${tree_vectorize}" = x"true"])
diff --git a/var/spack/repos/builtin/packages/numactl/package.py b/var/spack/repos/builtin/packages/numactl/package.py
index 5070a9bfca..52abf2353a 100644
--- a/var/spack/repos/builtin/packages/numactl/package.py
+++ b/var/spack/repos/builtin/packages/numactl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Numactl(AutotoolsPackage):
"""NUMA support for Linux"""
- homepage = "http://oss.sgi.com/projects/libnuma/"
+ homepage = "https://github.com/numactl/numactl"
url = "https://github.com/numactl/numactl/archive/v2.0.11.tar.gz"
force_autoreconf = True
@@ -21,24 +21,36 @@ class Numactl(AutotoolsPackage):
patch('numactl-2.0.11-sysmacros.patch', when="@2.0.11")
# https://github.com/numactl/numactl/issues/94
patch('numactl-2.0.14-symver.patch', when="@2.0.14")
+ patch('fix-empty-block.patch', when="@2.0.10:2.0.14")
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ # Numactl has hardcoded minimum versions for libtool,
+ # libtool@develop returns UNKOWN as a version tag and fails
+ conflicts('libtool@develop')
+
def autoreconf(self, spec, prefix):
bash = which('bash')
bash('./autogen.sh')
+ @when('%nvhpc')
+ def patch(self):
+ self._nvhpc_patch()
+
+ @when('%pgi@20:')
def patch(self):
+ self._nvhpc_patch()
+
+ def _nvhpc_patch(self):
# Remove flags not recognized by the NVIDIA compiler
- if self.spec.satisfies('%nvhpc'):
- filter_file('-ffast-math -funroll-loops', '', 'Makefile.am')
- filter_file('-std=gnu99', '-c99', 'Makefile.am')
+ filter_file('-ffast-math -funroll-loops', '', 'Makefile.am')
+ filter_file('-std=gnu99', '-c99', 'Makefile.am')
# Avoid undefined reference errors
- if self.spec.satisfies('@2.0.14 %nvhpc'):
+ if self.spec.satisfies('@2.0.14'):
filter_file('numa_sched_setaffinity_v1_int',
'numa_sched_setaffinity_v1', 'libnuma.c')
filter_file('numa_sched_setaffinity_v2_int',
diff --git a/var/spack/repos/builtin/packages/numamma/package.py b/var/spack/repos/builtin/packages/numamma/package.py
index cc71495449..e188813ab7 100644
--- a/var/spack/repos/builtin/packages/numamma/package.py
+++ b/var/spack/repos/builtin/packages/numamma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/numap/package.py b/var/spack/repos/builtin/packages/numap/package.py
index 2df4cfd995..45be5cea89 100644
--- a/var/spack/repos/builtin/packages/numap/package.py
+++ b/var/spack/repos/builtin/packages/numap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/numdiff/package.py b/var/spack/repos/builtin/packages/numdiff/package.py
index 5205d0e1ac..4a693e1dd5 100644
--- a/var/spack/repos/builtin/packages/numdiff/package.py
+++ b/var/spack/repos/builtin/packages/numdiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Numdiff(AutotoolsPackage):
differences or/and different numeric formats."""
homepage = 'https://www.nongnu.org/numdiff'
- url = 'http://nongnu.askapache.com/numdiff/numdiff-5.8.1.tar.gz'
+ url = 'https://nongnu.askapache.com/numdiff/numdiff-5.8.1.tar.gz'
version('5.9.0', sha256='87284a117944723eebbf077f857a0a114d818f8b5b54d289d59e73581194f5ef')
version('5.8.1', sha256='99aebaadf63325f5658411c09c6dde60d2990c5f9a24a51a6851cb574a4af503')
diff --git a/var/spack/repos/builtin/packages/nut/package.py b/var/spack/repos/builtin/packages/nut/package.py
index 0cc637fbaa..257adb8c21 100644
--- a/var/spack/repos/builtin/packages/nut/package.py
+++ b/var/spack/repos/builtin/packages/nut/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,14 +21,16 @@ class Nut(CMakePackage):
version('master', branch='master')
version('0.1.1', sha256='9f1dca4a9d7003b170fd57d6720228ff25471616cf884e033652e90c49c089bb')
- depends_on('cmake@3.0:')
+ depends_on('cmake@3.0:', type='build')
depends_on('random123')
+ # The conflict with %nvhpc is inherited from random123,
+ # which is a C++ template library
+ conflicts('%nvhpc')
conflicts('%intel', when='@serial')
conflicts('%pgi', when='@serial')
conflicts('%xl', when='@serial')
conflicts('%nag', when='@serial')
-
build_targets = ['VERBOSE=on']
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/nvdimmsim/package.py b/var/spack/repos/builtin/packages/nvdimmsim/package.py
index 0d0a0964d4..e08e9883cb 100644
--- a/var/spack/repos/builtin/packages/nvdimmsim/package.py
+++ b/var/spack/repos/builtin/packages/nvdimmsim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/nvhpc/package.py b/var/spack/repos/builtin/packages/nvhpc/package.py
index 7a8ce0f36a..fbf4469221 100644
--- a/var/spack/repos/builtin/packages/nvhpc/package.py
+++ b/var/spack/repos/builtin/packages/nvhpc/package.py
@@ -1,15 +1,16 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
#
# Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
-from spack import *
-from spack.util.prefix import Prefix
import os
import platform
+from spack import *
+from spack.util.prefix import Prefix
+
# FIXME Remove hack for polymorphic versions
# This package uses a ugly hack to be able to dispatch, given the same
# version, to different binary packages based on the platform that is
@@ -21,6 +22,30 @@ import platform
# - package key must be in the form '{os}-{arch}' where 'os' is in the
# format returned by platform.system() and 'arch' by platform.machine()
_versions = {
+ '21.7': {
+ 'Linux-aarch64': ('73eb3513845b59645f118b1e313472f54519dc252d5f5c32a05df2a2a8a19878', 'https://developer.download.nvidia.com/hpc-sdk/21.7/nvhpc_2021_217_Linux_aarch64_cuda_multi.tar.gz'),
+ 'Linux-ppc64le': ('37ea23b5a9c696fb3fdb82855643afc4e02aea618102ec801206441f10fc9fba', 'https://developer.download.nvidia.com/hpc-sdk/21.7/nvhpc_2021_217_Linux_ppc64le_cuda_multi.tar.gz'),
+ 'Linux-x86_64': ('49d6e23492d131474698cf12971722d42e13a54a4eddec382e66e1053b4ac902', 'https://developer.download.nvidia.com/hpc-sdk/21.7/nvhpc_2021_217_Linux_x86_64_cuda_multi.tar.gz')},
+ '21.5': {
+ 'Linux-aarch64': ('1a1748cd7cf538199d92ab3b1208935fa4a62708ba21125aeadb328ddc7380d4', 'https://developer.download.nvidia.com/hpc-sdk/21.5/nvhpc_2021_215_Linux_aarch64_cuda_multi.tar.gz'),
+ 'Linux-ppc64le': ('4674931a5ce28724308cb9cebd546eefa3f0646d3d08adbea28ba5ad27f0c163', 'https://developer.download.nvidia.com/hpc-sdk/21.5/nvhpc_2021_215_Linux_ppc64le_cuda_multi.tar.gz'),
+ 'Linux-x86_64': ('21989e52c58a6914743631c8200de1fec7e10b3449c6c1833f3032ee74b85f8e', 'https://developer.download.nvidia.com/hpc-sdk/21.5/nvhpc_2021_215_Linux_x86_64_cuda_multi.tar.gz')},
+ '21.3': {
+ 'Linux-aarch64': ('88e0dbf8fcdd06a2ba06aacf65ae1625b8683688f6593ed3bf8ce129ce1b17b7', 'https://developer.download.nvidia.com/hpc-sdk/21.3/nvhpc_2021_213_Linux_aarch64_cuda_multi.tar.gz'),
+ 'Linux-ppc64le': ('08cd0cd6c80d633f107b44f88685ada7f014fbf6eac19ef5ae4a7952cabe4037', 'https://developer.download.nvidia.com/hpc-sdk/21.3/nvhpc_2021_213_Linux_ppc64le_cuda_multi.tar.gz'),
+ 'Linux-x86_64': ('391d5604a70f61bdd4ca6a3e4692f6f2391948990c8a35c395b6867341890031', 'https://developer.download.nvidia.com/hpc-sdk/21.3/nvhpc_2021_213_Linux_x86_64_cuda_multi.tar.gz')},
+ '21.2': {
+ 'Linux-aarch64': ('fe19c0232f7c9534f8699b7432483c9cc649f1e92e7f0961d1aa7c54d83297ff', 'https://developer.download.nvidia.com/hpc-sdk/21.2/nvhpc_2021_212_Linux_aarch64_cuda_multi.tar.gz'),
+ 'Linux-ppc64le': ('6b69b6e4ebec6a91b9f1627384c50adad79ebdd25dfb20a5f64cf01c3a07f11a', 'https://developer.download.nvidia.com/hpc-sdk/21.2/nvhpc_2021_212_Linux_ppc64le_cuda_multi.tar.gz'),
+ 'Linux-x86_64': ('a3e3393040185ae844002fbc6c8eb4ffdfb97ce8b2ce29d796fe7e9a521fdc59', 'https://developer.download.nvidia.com/hpc-sdk/21.2/nvhpc_2021_212_Linux_x86_64_cuda_multi.tar.gz')},
+ '21.1': {
+ 'Linux-aarch64': ('b276e7c0ff78cee837a597d9136cd1d8ded27a9d1fdae1e7d674e2a072a9a6aa', 'https://developer.download.nvidia.com/hpc-sdk/21.1/nvhpc_2021_211_Linux_aarch64_cuda_multi.tar.gz'),
+ 'Linux-ppc64le': ('bc236c212097bac6b7d04d627d9cc6b75bb6cd473a0b6a1bf010559ce328a2b0', 'https://developer.download.nvidia.com/hpc-sdk/21.1/nvhpc_2021_211_Linux_ppc64le_cuda_multi.tar.gz'),
+ 'Linux-x86_64': ('d529daf46404724ac3f005be4239f2c30e53f5220bb9453f367dccc3a74d6b41', 'https://developer.download.nvidia.com/hpc-sdk/21.1/nvhpc_2021_211_Linux_x86_64_cuda_multi.tar.gz')},
+ '20.11': {
+ 'Linux-aarch64': ('2f26ca45b07b694b8669e4f761760d4f7faa8d032b21e430adee1af0a27032c1', 'https://developer.download.nvidia.com/hpc-sdk/20.11/nvhpc_2020_2011_Linux_aarch64_cuda_multi.tar.gz'),
+ 'Linux-ppc64le': ('99e5a5437e82f3914e0fe81feb761a5b599a3fe8b31f3c2cac8ae47e8cdc7b0f', 'https://developer.download.nvidia.com/hpc-sdk/20.11/nvhpc_2020_2011_Linux_ppc64le_cuda_multi.tar.gz'),
+ 'Linux-x86_64': ('c80fc26e5ba586696f7030f03054c1aaca0752a891c7923faf47eb23b66857ec', 'https://developer.download.nvidia.com/hpc-sdk/20.11/nvhpc_2020_2011_Linux_x86_64_cuda_multi.tar.gz')},
'20.9': {
'Linux-aarch64': ('3bfb3d17f5ee99998bcc30d738e818d3b94b828e2d8da7db48bf152a01e22023', 'https://developer.download.nvidia.com/hpc-sdk/20.9/nvhpc_2020_209_Linux_aarch64_cuda_11.0.tar.gz'),
'Linux-ppc64le': ('b2966d4047e1dfd981ce63b333ab9c0acbdc2a6a505fa217456ac9fa3b8e7474', 'https://developer.download.nvidia.com/hpc-sdk/20.9/nvhpc_2020_209_Linux_ppc64le_cuda_multi.tar.gz'),
@@ -45,7 +70,7 @@ class Nvhpc(Package):
and debugging tools simplify porting and optimization of HPC
applications."""
- homepage = "http://developer.nvidia.com/hpc-sdk"
+ homepage = "https://developer.nvidia.com/hpc-sdk"
maintainers = ['samcmill']
@@ -98,7 +123,6 @@ class Nvhpc(Package):
env.set('FC', join_path(prefix.bin, 'nvfortran'))
env.prepend_path('PATH', prefix.bin)
- env.prepend_path('CPATH', prefix.include)
env.prepend_path('LIBRARY_PATH', prefix.lib)
env.prepend_path('LD_LIBRARY_PATH', prefix.lib)
env.prepend_path('MANPATH', prefix.man)
@@ -108,7 +132,21 @@ class Nvhpc(Package):
'Linux_%s' % self.spec.target.family,
self.version, 'comm_libs', 'mpi'))
env.prepend_path('PATH', mpi_prefix.bin)
- env.prepend_path('CPATH', mpi_prefix.include)
+ env.prepend_path('LD_LIBRARY_PATH', mpi_prefix.lib)
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ prefix = Prefix(join_path(self.prefix,
+ 'Linux_%s' % self.spec.target.family,
+ self.version, 'compilers'))
+
+ env.prepend_path('LIBRARY_PATH', prefix.lib)
+ env.prepend_path('LD_LIBRARY_PATH', prefix.lib)
+
+ if '+mpi' in self.spec:
+ mpi_prefix = Prefix(join_path(self.prefix,
+ 'Linux_%s' % self.spec.target.family,
+ self.version, 'comm_libs', 'mpi'))
+
env.prepend_path('LD_LIBRARY_PATH', mpi_prefix.lib)
def setup_dependent_package(self, module, dependent_spec):
diff --git a/var/spack/repos/builtin/packages/nvptx-tools/package.py b/var/spack/repos/builtin/packages/nvptx-tools/package.py
index 775b53e3fa..22c6bb6f08 100644
--- a/var/spack/repos/builtin/packages/nvptx-tools/package.py
+++ b/var/spack/repos/builtin/packages/nvptx-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,7 @@ class NvptxTools(AutotoolsPackage):
homepage = "https://github.com/MentorEmbedded/nvptx-tools"
git = "https://github.com/MentorEmbedded/nvptx-tools"
+ version('2021-05-21', commit='d0524fbdc86dfca068db5a21cc78ac255b335be5')
version('2018-03-01', commit='5f6f343a302d620b0868edab376c00b15741e39e')
depends_on('binutils')
diff --git a/var/spack/repos/builtin/packages/nvshmem/package.py b/var/spack/repos/builtin/packages/nvshmem/package.py
new file mode 100644
index 0000000000..3e2f619b6a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nvshmem/package.py
@@ -0,0 +1,70 @@
+# Copyright 2013-2021 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 Nvshmem(MakefilePackage, CudaPackage):
+ """NVSHMEM is a parallel programming interface based on OpenSHMEM that
+ provides efficient and scalable communication for NVIDIA GPU
+ clusters. NVSHMEM creates a global address space for data that spans
+ the memory of multiple GPUs and can be accessed with fine-grained
+ GPU-initiated operations, CPU-initiated operations, and operations on
+ CUDA streams."""
+
+ homepage = "https://developer.nvidia.com/nvshmem"
+
+ maintainers = ['bvanessen']
+
+ version('2.1.2-0', sha256='367211808df99b4575fb901977d9f4347065c61a26642d65887f24d60342a4ec')
+ version('2.0.3-0', sha256='20da93e8508511e21aaab1863cb4c372a3bec02307b932144a7d757ea5a1bad2')
+
+ variant('cuda', default=True, description='Build with CUDA')
+ variant('ucx', default=True, description='Build with UCX support')
+ variant('nccl', default=True, description='Build with NCCL support')
+ variant('gdrcopy', default=True, description='Build with gdrcopy support')
+ variant('mpi', default=True, description='Build with MPI support')
+ variant('shmem', default=False, description='Build with shmem support')
+ conflicts('~cuda')
+
+ def url_for_version(self, version):
+ ver_str = '{0}'.format(version)
+ directory = ver_str.split('-')[0]
+ url_fmt = "https://developer.download.nvidia.com/compute/redist/nvshmem/{0}/source/nvshmem_src_{1}.txz"
+ return url_fmt.format(directory, version)
+
+ depends_on('mpi', when='+mpi')
+ depends_on('ucx', when='+ucx')
+ depends_on('gdrcopy', when='+gdrcopy')
+ depends_on('nccl', when='+nccl')
+
+ def setup_build_environment(self, env):
+ env.set('CUDA_HOME', self.spec['cuda'].prefix)
+ env.set('NVSHMEM_PREFIX', self.prefix)
+
+ if '+ucx' in self.spec:
+ env.set('NVSHMEM_UCX_SUPPORT', '1')
+ env.set('UCX_HOME', self.spec['ucx'].prefix)
+
+ if '+gdrcopy' in self.spec:
+ env.set('NVSHMEM_USE_GDRCOPY', '1')
+ env.set('GDRCOPY_HOME', self.spec['gdrcopy'].prefix)
+
+ if '+nccl' in self.spec:
+ env.set('NVSHMEM_USE_NCCL', '1')
+ env.set('NCCL_HOME', self.spec['nccl'].prefix)
+
+ if '+mpi' in self.spec:
+ env.set('NVSHMEM_MPI_SUPPORT', '1')
+ env.set('MPI_HOME', self.spec['mpi'].prefix)
+
+ if self.spec.satisfies('^spectrum-mpi') or self.spec.satisfies('^openmpi'):
+ env.set('NVSHMEM_MPI_IS_OMPI', '1')
+ else:
+ env.set('NVSHMEM_MPI_IS_OMPI', '0')
+
+ if '+shmem' in self.spec:
+ env.set('NVSHMEM_SHMEM_SUPPORT', '1')
+ env.set('SHMEM_HOME', self.spec['mpi'].prefix)
diff --git a/var/spack/repos/builtin/packages/nvtop/package.py b/var/spack/repos/builtin/packages/nvtop/package.py
new file mode 100644
index 0000000000..a18d32188c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nvtop/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 Nvtop(CMakePackage, CudaPackage):
+ """Nvtop stands for NVidia TOP, a (h)top like task monitor for NVIDIA GPUs.
+ It can handle multiple GPUs and print information about them
+ in a htop familiar way."""
+
+ homepage = "https://github.com/Syllo/nvtop"
+ url = "https://github.com/Syllo/nvtop/archive/1.1.0.tar.gz"
+
+ version('1.1.0', sha256='00470cde8fc48d5a5ed7c96402607e474414d94b562b21189bdde1dbe6b1d1f3')
+
+ depends_on('ncurses')
+
+ def cmake_args(self):
+ return [self.define('NVML_RETRIEVE_HEADER_ONLINE', True)]
diff --git a/var/spack/repos/builtin/packages/nwchem/package.py b/var/spack/repos/builtin/packages/nwchem/package.py
index e31715ccd9..1ce1846834 100644
--- a/var/spack/repos/builtin/packages/nwchem/package.py
+++ b/var/spack/repos/builtin/packages/nwchem/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
import os
+import sys
+
+from spack import *
class Nwchem(Package):
@@ -96,8 +97,8 @@ class Nwchem(Package):
make(*args)
# need to install by hand. Follow Ubuntu:
- # http://packages.ubuntu.com/trusty/all/nwchem-data/filelist
- # http://packages.ubuntu.com/trusty/amd64/nwchem/filelist
+ # https://packages.ubuntu.com/trusty/all/nwchem-data/filelist
+ # https://packages.ubuntu.com/trusty/amd64/nwchem/filelist
share_path = join_path(prefix, 'share', 'nwchem')
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/nyancat/package.py b/var/spack/repos/builtin/packages/nyancat/package.py
index e96079814b..6a6e843038 100644
--- a/var/spack/repos/builtin/packages/nyancat/package.py
+++ b/var/spack/repos/builtin/packages/nyancat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class Nyancat(MakefilePackage):
"""Nyancat in your terminal, rendered through ANSI escape sequences."""
- homepage = "http://nyancat.dakko.us/"
+ homepage = "https://nyancat.dakko.us/"
url = "https://github.com/klange/nyancat/archive/1.5.1.tar.gz"
version('1.5.2', sha256='88cdcaa9c7134503dd0364a97fa860da3381a09cb555c3aae9918360827c2032')
diff --git a/var/spack/repos/builtin/packages/ocaml/package.py b/var/spack/repos/builtin/packages/ocaml/package.py
index 406deeed36..5f7fe77cfd 100644
--- a/var/spack/repos/builtin/packages/ocaml/package.py
+++ b/var/spack/repos/builtin/packages/ocaml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Ocaml(Package):
"""OCaml is an industrial strength programming language supporting
functional, imperative and object-oriented styles"""
- homepage = "http://ocaml.org/"
+ homepage = "https://ocaml.org/"
url = "https://caml.inria.fr/pub/distrib/ocaml-4.06/ocaml-4.06.0.tar.gz"
maintainers = ['scemama']
@@ -27,6 +27,11 @@ class Ocaml(Package):
version('4.03.0', sha256='7fdf280cc6c0a2de4fc9891d0bf4633ea417046ece619f011fd44540fcfc8da2')
patch('fix-duplicate-defs.patch', when="@4.08.0:4.09.0 %gcc@10.0:")
+ # #9969, #9981: Added mergeable flag to ELF sections containing mergeable
+ # constants. Fixes compatibility with the integrated assembler in clang 11.0.0.
+ # (Jacob Young, review by Nicolas Ojeda Bar)
+ patch('https://patch-diff.githubusercontent.com/raw/ocaml/ocaml/pull/9981.patch',
+ sha256='3b1ca67eb124f5460a077d9575f579ef9d2f0416424761ae9d6c701550c5b75b', when="@:4.11.0 %clang@11:")
depends_on('ncurses')
sanity_check_file = ['bin/ocaml']
diff --git a/var/spack/repos/builtin/packages/ocamlbuild/package.py b/var/spack/repos/builtin/packages/ocamlbuild/package.py
new file mode 100644
index 0000000000..0bee1bfd19
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ocamlbuild/package.py
@@ -0,0 +1,41 @@
+# Copyright 2013-2021 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 Ocamlbuild(MakefilePackage):
+ """OCamlbuild is a generic build tool,
+ that has built-in rules for building OCaml library and programs."""
+
+ # Add a proper url for your package's homepage here.
+ homepage = "https://ocaml.org/learn/tutorials/ocamlbuild/"
+ url = "https://github.com/ocaml/ocamlbuild/archive/0.14.0.tar.gz"
+ git = "https://github.com/ocaml/ocamlbuild/ocamlbuild.git"
+
+ # Add a list of GitHub accounts to
+ # notify when the package is updated.
+ maintainers = ['scemama', 'cessenat']
+
+ # Add proper versions here.
+ version('master', branch='master')
+ version('0.14.0', sha256='87b29ce96958096c0a1a8eeafeb6268077b2d11e1bf2b3de0f5ebc9cf8d42e78')
+ version('0.13.1', sha256='79839544bcaebc8f9f0d73d029e2b67e2c898bba046c559ea53de81ea763408c')
+
+ # Add dependencies if required.
+ depends_on('ocaml')
+
+ # Installation : https://github.com/ocaml/ocamlbuild/
+ def edit(self, spec, prefix):
+ makefile_inc = [
+ 'BINDIR = bin',
+ 'LIBDIR = lib',
+ 'MANDIR = man',
+ ]
+ makefile_inc.append('OCAML_PREFIX = %s' % self.spec['ocaml'].prefix)
+ makefile_inc.append('DESTDIR = %s/' % self.spec.prefix)
+ with open('Makefile.config', 'a') as fh:
+ fh.write('\n'.join(makefile_inc))
+ make('configure')
diff --git a/var/spack/repos/builtin/packages/occa/package.py b/var/spack/repos/builtin/packages/occa/package.py
index 5d72517b3d..688d24adf6 100644
--- a/var/spack/repos/builtin/packages/occa/package.py
+++ b/var/spack/repos/builtin/packages/occa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class Occa(Package):
using run-time compilation for device kernels.
"""
- homepage = "http://libocca.org"
+ homepage = "https://libocca.org"
git = 'https://github.com/libocca/occa.git'
maintainers = ['v-dobrev', 'dmed256']
diff --git a/var/spack/repos/builtin/packages/oce/package.py b/var/spack/repos/builtin/packages/oce/package.py
index dbd3f23182..d092d51355 100644
--- a/var/spack/repos/builtin/packages/oce/package.py
+++ b/var/spack/repos/builtin/packages/oce/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import platform
+
from spack import *
from spack.operating_systems.mac_os import macos_version
-import platform
class Oce(Package):
@@ -37,7 +38,7 @@ class Oce(Package):
# There is a bug in OCE which appears with Clang (version?) or GCC 6.0
# and has to do with compiler optimization, see
# https://github.com/tpaviot/oce/issues/576
- # http://tracker.dev.opencascade.org/view.php?id=26042
+ # https://tracker.dev.opencascade.org/view.php?id=26042
# https://github.com/tpaviot/oce/issues/605
# https://github.com/tpaviot/oce/commit/61cb965b9ffeca419005bc15e635e67589c421dd.patch
patch('null.patch', when='@0.16:0.17.1')
diff --git a/var/spack/repos/builtin/packages/oci-systemd-hook/package.py b/var/spack/repos/builtin/packages/oci-systemd-hook/package.py
index 3e45811b41..6938f5b4ff 100644
--- a/var/spack/repos/builtin/packages/oci-systemd-hook/package.py
+++ b/var/spack/repos/builtin/packages/oci-systemd-hook/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,6 +23,7 @@ class OciSystemdHook(AutotoolsPackage):
depends_on('m4', type='build')
depends_on('gettext')
depends_on('yajl')
+ depends_on('uuid')
depends_on('util-linux')
depends_on('go-md2man')
diff --git a/var/spack/repos/builtin/packages/ocl-icd/package.py b/var/spack/repos/builtin/packages/ocl-icd/package.py
index 88bd00a2e6..247d201880 100644
--- a/var/spack/repos/builtin/packages/ocl-icd/package.py
+++ b/var/spack/repos/builtin/packages/ocl-icd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,11 @@ OpenCL ICD loaders."""
homepage = "https://github.com/OCL-dev/ocl-icd"
url = "https://github.com/OCL-dev/ocl-icd/archive/v2.2.12.tar.gz"
+ maintainers = ['lorddavidiii']
+ version('2.3.1', sha256='a32b67c2d52ffbaf490be9fc18b46428ab807ab11eff7664d7ff75e06cfafd6d')
+ version('2.3.0', sha256='469f592ccd9b0547fb7212b17e1553b203d178634c20d3416640c0209e3ddd50')
+ version('2.2.14', sha256='46df23608605ad548e80b11f4ba0e590cef6397a079d2f19adf707a7c2fbfe1b')
version('2.2.13', sha256='f85d59f3e8327f15637b91e4ae8df0829e94daeff68c647b2927b8376b1f8d92')
version('2.2.12', sha256='17500e5788304eef5b52dbe784cec197bdae64e05eecf38317840d2d05484272')
version('2.2.11', sha256='c1865ef7701b8201ebc6930ed3ac757c7e5cb30f3aa4c1e742a6bc022f4f2292')
@@ -34,12 +38,18 @@ OpenCL ICD loaders."""
depends_on('ruby', type='build')
depends_on('asciidoc-py3', type='build')
depends_on('xmlto', type='build')
- depends_on('opencl-headers@2.2:', when='+headers')
+ depends_on('opencl-headers@3.0:', when='+headers')
- provides('opencl@:2.2', when='@2.2.12:+headers')
+ provides('opencl@:3.0', when='@2.2.13:+headers')
+ provides('opencl@:2.2', when='@2.2.12+headers')
provides('opencl@:2.1', when='@2.2.8:2.2.11+headers')
provides('opencl@:2.0', when='@2.2.3:2.2.7+headers')
+ # upstream patch to fix compatibility with the latest version of the
+ # official khronos OpenCL C headers release, ie opencl-c-headers@2021.04.29
+ patch('https://github.com/OCL-dev/ocl-icd/commit/aed1832c81c0971ea001e12d41e04df834257f94.patch',
+ sha256='c6bb2813e2a59ac9b79b86d7f421c3e6446c0f9d8a4c850e5641fb7273ab3b43', when='@2.3.0')
+
def flag_handler(self, name, flags):
if name == 'cflags' and self.spec.satisfies('@:2.2.12'):
# https://github.com/OCL-dev/ocl-icd/issues/8
diff --git a/var/spack/repos/builtin/packages/oclgrind/package.py b/var/spack/repos/builtin/packages/oclgrind/package.py
index c3b9302583..9fb81b0b93 100644
--- a/var/spack/repos/builtin/packages/oclgrind/package.py
+++ b/var/spack/repos/builtin/packages/oclgrind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/oclint/package.py b/var/spack/repos/builtin/packages/oclint/package.py
index 8731f6b5ad..5c2e39cecd 100644
--- a/var/spack/repos/builtin/packages/oclint/package.py
+++ b/var/spack/repos/builtin/packages/oclint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Oclint(Package):
reducing defects by inspecting C, C++ and Objective-C code and
looking for potential problems"""
- homepage = "http://oclint.org/"
+ homepage = "https://oclint.org/"
url = "https://github.com/oclint/oclint/archive/v0.13.tar.gz"
version('0.13', sha256='a0fd188673863e6357d6585b9bb9c3affe737df134b9383a1a5ed021d09ed848')
@@ -34,7 +34,7 @@ class Oclint(Package):
def install(self, spec, prefix):
# Build from source via directions from
- # http://docs.oclint.org/en/stable/intro/build.html,
+ # https://docs.oclint.org/en/stable/intro/build.html,
cd('oclint-scripts')
# ...but instead of using oclint-scripts/make, execute the
diff --git a/var/spack/repos/builtin/packages/oclock/package.py b/var/spack/repos/builtin/packages/oclock/package.py
index bf0345509d..ac8d9ec134 100644
--- a/var/spack/repos/builtin/packages/oclock/package.py
+++ b/var/spack/repos/builtin/packages/oclock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Oclock(AutotoolsPackage, XorgPackage):
"""oclock is a simple analog clock using the SHAPE extension to make
a round (possibly transparent) window."""
- homepage = "http://cgit.freedesktop.org/xorg/app/oclock"
+ homepage = "https://cgit.freedesktop.org/xorg/app/oclock"
xorg_mirror_path = "app/oclock-1.0.3.tar.gz"
version('1.0.3', sha256='6628d1abe1612b87db9d0170cbe7f1cf4205cd764274f648c3c1bdb745bff877')
diff --git a/var/spack/repos/builtin/packages/octave-arduino/package.py b/var/spack/repos/builtin/packages/octave-arduino/package.py
new file mode 100644
index 0000000000..46908525e9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octave-arduino/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 OctaveArduino(OctavePackage, SourceforgePackage):
+ """Provides an Octave look-alike implementation of the
+ Arduino extension for Matlab."""
+
+ homepage = "https://octave.sourceforge.io/arduino/"
+ sourceforge_mirror_path = "octave/arduino-0.2.0.tar.gz"
+
+ version('0.2.0', sha256='0562ff48ea4b2cef28e2e03ccc4678dafa16f91d1580245bb7f9f488c4f56238')
+
+ depends_on('octave-instrctl')
+ extends('octave@3.6.0:')
diff --git a/var/spack/repos/builtin/packages/octave-control/package.py b/var/spack/repos/builtin/packages/octave-control/package.py
new file mode 100644
index 0000000000..75b6406b54
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octave-control/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 OctaveControl(OctavePackage, SourceforgePackage):
+ """Computer-Aided Control System Design (CACSD) Tools for GNU Octave,
+ based on the proven SLICOT Library"""
+
+ homepage = "https://octave.sourceforge.io/control/"
+ sourceforge_mirror_path = "octave/control-3.2.0.tar.gz"
+
+ version('3.2.0', sha256='faf1d510d16ab46e4fa91a1288f4a7839ee05469c33e4698b7a007a0bb965e3e')
+
+ extends('octave@4.0.0:')
diff --git a/var/spack/repos/builtin/packages/octave-gsl/package.py b/var/spack/repos/builtin/packages/octave-gsl/package.py
new file mode 100644
index 0000000000..c5170f3397
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octave-gsl/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 OctaveGsl(OctavePackage, SourceforgePackage):
+ """Octave bindings to the GNU Scientific Library"""
+
+ homepage = "https://octave.sourceforge.io/gsl/"
+ sourceforge_mirror_path = "octave/gsl-2.1.1.tar.gz"
+
+ version('2.1.1', sha256='d028c52579e251c3f21ebfdf065dffab3ad7893434efda33b501225ef1ea6ed3')
+
+ depends_on('gsl@2.4:')
+ extends('octave@2.9.7:')
+
+ def setup_build_environment(self, env):
+ env.prepend_path('PKG_CONFIG_PATH', self.spec['gsl'].prefix)
diff --git a/var/spack/repos/builtin/packages/octave-instrctl/package.py b/var/spack/repos/builtin/packages/octave-instrctl/package.py
new file mode 100644
index 0000000000..a49d954cdd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octave-instrctl/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 OctaveInstrctl(OctavePackage, SourceforgePackage):
+ """Instrument-Control is a package for interfacing the outside world of hardware
+ via Serial, i2c or Parallel interfaces."""
+
+ homepage = "https://octave.sourceforge.io/instrument-control/"
+ sourceforge_mirror_path = "octave/instrument-control-0.3.1.tar.gz"
+
+ version('0.3.1', sha256='d9c3b2e258cc8245ebfdd282e6314af12987daf453f4356555f56ca5ec55873c')
+
+ extends('octave@3.6.0:')
diff --git a/var/spack/repos/builtin/packages/octave-io/package.py b/var/spack/repos/builtin/packages/octave-io/package.py
new file mode 100644
index 0000000000..42fd686410
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octave-io/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 OctaveIo(OctavePackage, SourceforgePackage):
+ """The IO package is part of the Octave Forge project
+ and provides input/output from/in external formats."""
+
+ homepage = "https://octave.sourceforge.io/io/"
+ sourceforge_mirror_path = "octave/io-2.6.3.tar.gz"
+
+ version('2.6.3', sha256='6bc63c6498d79cada01a6c4446f793536e0bb416ddec2a5201dd8d741d459e10')
+ version('2.6.2', sha256='01dbf8885a8011e76c919e271727c1d44f625bf6b217948b79438039ba368ceb')
+ version('2.6.1', sha256='83253561f883c96ca3021a771223d23795122dc4cb800766e9cb893c6f8262dd')
+ version('2.6.0', sha256='27f26273ced0b42c098e900136bb0ab2e542baf98d02bc0176cf47edbd0e6d7f')
+ version('2.2.7', sha256='4eed2ee4c89b49ab160546c77ed66a384598f3bbb1c6e3833529c2c55aa479b6')
+
+ extends('octave@4.2.0:')
diff --git a/var/spack/repos/builtin/packages/octave-optim/package.py b/var/spack/repos/builtin/packages/octave-optim/package.py
index 4f94c18ac4..52865115ba 100644
--- a/var/spack/repos/builtin/packages/octave-optim/package.py
+++ b/var/spack/repos/builtin/packages/octave-optim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,10 @@ class OctaveOptim(OctavePackage, SourceforgePackage):
homepage = "https://octave.sourceforge.io/optim/"
sourceforge_mirror_path = "octave/optim-1.5.2.tar.gz"
+ version('1.6.1', sha256='7150cdfac7e9da31ec7ac1cfe8619d9c0e9c8b3f787f54bf89e0fb1c275be584')
version('1.5.2', sha256='7b36033c5581559dc3e7616f97d402bc44dde0dfd74c0e3afdf47d452a76dddf')
depends_on('octave-struct@1.0.12:')
- extends('octave@3.6.0:')
+ depends_on('octave-statistics@1.4.0:')
+ extends('octave@3.6.0:', when='@:1.5.2')
+ extends('octave@4.0.0:', when='@1.6.1:')
diff --git a/var/spack/repos/builtin/packages/octave-quaternion/package.py b/var/spack/repos/builtin/packages/octave-quaternion/package.py
new file mode 100644
index 0000000000..4a09b93f27
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octave-quaternion/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 OctaveQuaternion(OctavePackage, SourceforgePackage):
+ """Quaternion package for GNU Octave,
+ includes a quaternion class with overloaded operators."""
+
+ homepage = "https://octave.sourceforge.io/quaternion/"
+ sourceforge_mirror_path = "octave/quaternion-2.4.0.tar.gz"
+
+ version('2.4.0', sha256='4c2d4dd8f1d213f080519c6f9dfbbdca068087ee0411122b16e377e0f4641610')
+ version('2.2.2', sha256='261d51657bc729c8f9fe915532d91e75e48dce2af2b298781e78cc93a5067cbd')
+
+ conflicts('octave@6:')
+ extends('octave@3.8.0:5.2.0')
diff --git a/var/spack/repos/builtin/packages/octave-signal/package.py b/var/spack/repos/builtin/packages/octave-signal/package.py
new file mode 100644
index 0000000000..0e8efd6014
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octave-signal/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 OctaveSignal(OctavePackage, SourceforgePackage):
+ """Signal processing tools, including filtering, windowing and display functions."""
+
+ homepage = "https://octave.sourceforge.io/optim/"
+ sourceforge_mirror_path = "octave/signal-1.4.1.tar.gz"
+
+ version('1.4.1', sha256='d978600f8b8f61339b986136c9862cad3e8f7015f84132f214bf63e9e281aeaa')
+
+ depends_on('octave-control@2.4:')
+ extends('octave@3.8.0:')
diff --git a/var/spack/repos/builtin/packages/octave-splines/package.py b/var/spack/repos/builtin/packages/octave-splines/package.py
index 5a9a5777c1..2c73b27064 100644
--- a/var/spack/repos/builtin/packages/octave-splines/package.py
+++ b/var/spack/repos/builtin/packages/octave-splines/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,5 +12,6 @@ class OctaveSplines(OctavePackage, SourceforgePackage):
homepage = "http://octave.sourceforge.net/splines/index.html"
sourceforge_mirror_path = "octave/splines-1.3.1.tar.gz"
+ version('1.3.3', sha256='0a4bf9544b1fedb4aed4222eff1333928b0e3c903f140822eb857585e0d5919b')
version('1.3.1', sha256='f9665d780c37aa6a6e17d1f424c49bdeedb89d1192319a4e39c08784122d18f9')
extends('octave@3.6.0:')
diff --git a/var/spack/repos/builtin/packages/octave-statistics/package.py b/var/spack/repos/builtin/packages/octave-statistics/package.py
new file mode 100644
index 0000000000..1a73d067e0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octave-statistics/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 OctaveStatistics(OctavePackage, SourceforgePackage):
+ """Additional statistics functions for Octave."""
+
+ homepage = "https://octave.sourceforge.io/statistics/"
+ sourceforge_mirror_path = "octave/statistics-1.4.2.tar.gz"
+
+ version('1.4.2', sha256='7976814f837508e70367548bfb0a6d30aa9e447d4e3a66914d069efb07876247')
+
+ depends_on('octave-io')
+ extends('octave@4.0.0:')
diff --git a/var/spack/repos/builtin/packages/octave-struct/package.py b/var/spack/repos/builtin/packages/octave-struct/package.py
index b428ce7872..eb88791e9f 100644
--- a/var/spack/repos/builtin/packages/octave-struct/package.py
+++ b/var/spack/repos/builtin/packages/octave-struct/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,5 +12,6 @@ class OctaveStruct(OctavePackage, SourceforgePackage):
homepage = "https://octave.sourceforge.io/struct/"
sourceforge_mirror_path = "octave/struct-1.0.14.tar.gz"
+ version('1.0.17', sha256='0137bbb5df650f29104f6243502f3a2302aaaa5e42ea9f02d8a3943aaf668433')
version('1.0.14', sha256='ad4e17687bc24650f032757271b20b70fe32c35513d4dd9ab1e549919df36b47')
extends('octave@2.9.7:')
diff --git a/var/spack/repos/builtin/packages/octave-symbolic/package.py b/var/spack/repos/builtin/packages/octave-symbolic/package.py
new file mode 100644
index 0000000000..223995fab1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/octave-symbolic/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 OctaveSymbolic(OctavePackage, SourceforgePackage):
+ """Adds symbolic calculation features to GNU Octave.
+ These include common Computer Algebra System tools such as algebraic operations,
+ calculus, equation solving, Fourier and Laplace transforms, variable precision
+ arithmetic and other features.
+ Compatibility with other symbolic toolboxes is intended."""
+
+ homepage = "https://octave.sourceforge.io/symbolic/"
+ sourceforge_mirror_path = "octave/symbolic-2.9.0.tar.gz"
+
+ version('2.9.0', sha256='089ec44a0a49417a8b78797e87f338da6a6e227509f3080724996483d39b23cb')
+
+ extends('octave@4.2.0:')
diff --git a/var/spack/repos/builtin/packages/octave/package.py b/var/spack/repos/builtin/packages/octave/package.py
index 3d6d3e5ad9..ba6709c822 100644
--- a/var/spack/repos/builtin/packages/octave/package.py
+++ b/var/spack/repos/builtin/packages/octave/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,6 +26,9 @@ class Octave(AutotoolsPackage, GNUMirrorPackage):
extendable = True
+ version('6.3.0', sha256='232065f3a72fc3013fe9f17f429a3df69d672c1f6b6077029a31c8f3cd58a66e')
+ version('6.2.0', sha256='457d1fda8634a839e2fd7cfc55b98bd56f36b6ae73d31bb9df43dde3012caa7c')
+ version('6.1.0', sha256='6ff34e401658622c44094ecb67e497672e4337ca2d36c0702d0403ecc60b0a57')
version('5.2.0', sha256='2fea62b3c78d6f38e9451da8a4d26023840725977dffee5250d3d180f56595e1')
version('5.1.0', sha256='e36b1124cac27c7caa51cc57de408c31676d5f0096349b4d50b57bfe1bcd7495')
version('4.4.1', sha256='09fbd0f212f4ef21e53f1d9c41cf30ce3d7f9450fb44911601e21ed64c67ae97')
@@ -86,12 +89,13 @@ class Octave(AutotoolsPackage, GNUMirrorPackage):
depends_on('gnuplot', when='+gnuplot')
depends_on('imagemagick', when='+magick')
depends_on('hdf5', when='+hdf5')
- depends_on('java', when='+jdk') # TODO: requires Java 6 ?
+ depends_on('java', when='+jdk') # TODO: requires Java 6 ?
depends_on('llvm', when='+llvm')
- # depends_on('opengl', when='+opengl') # TODO: add package
+ depends_on('gl', when='+opengl')
+ depends_on('gl', when='+fltk')
depends_on('qhull', when='+qhull')
depends_on('qrupdate', when='+qrupdate')
- # depends_on('qscintilla', when='+qscintilla) # TODO: add package
+ depends_on('qscintilla', when='+qscintilla')
depends_on('qt+opengl', when='+qt')
depends_on('suite-sparse', when='+suitesparse')
depends_on('zlib', when='+zlib')
@@ -237,7 +241,7 @@ class Octave(AutotoolsPackage, GNUMirrorPackage):
else:
config_args.append("--disable-java")
- if '~opengl' in spec:
+ if '~opengl' and '~fltk' in spec:
config_args.extend([
"--without-opengl",
"--without-framework-opengl"
diff --git a/var/spack/repos/builtin/packages/octopus/package.py b/var/spack/repos/builtin/packages/octopus/package.py
index b4cac8fbd5..20236119ad 100644
--- a/var/spack/repos/builtin/packages/octopus/package.py
+++ b/var/spack/repos/builtin/packages/octopus/package.py
@@ -1,19 +1,21 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 llnl.util.tty as tty
+from spack import *
+
-class Octopus(Package):
+class Octopus(Package, CudaPackage):
"""A real-space finite-difference (time-dependent) density-functional
theory code."""
homepage = "https://octopus-code.org/"
url = "http://octopus-code.org/down.php?file=6.0/octopus-6.0.tar.gz"
+ version('10.5', sha256='deb92e3491b0c6ac5736960d075b44cab466f528b69715ed44968ecfe2953ec4')
version('10.0', sha256='ccf62200e3f37911bfff6d127ebe74220996e9c09383a10b1420c81d931dcf23')
version('7.3', sha256='ad843d49d4beeed63e8b9a2ca6bfb2f4c5a421f13a4f66dc7b02f6d6a5c4d742')
version('6.0', sha256='4a802ee86c1e06846aa7fa317bd2216c6170871632c9e03d020d7970a08a8198')
@@ -36,10 +38,10 @@ class Octopus(Package):
depends_on('libxc@2:2.99', when='@:5.99')
depends_on('libxc@2:3.99', when='@6:7.99')
depends_on('libxc@2:4.99', when='@8:9.99')
- depends_on('libxc@3:5.0.0', when='@10.0')
+ depends_on('libxc@3:5.0.0', when='@10:')
depends_on('mpi')
- depends_on('fftw@3:+mpi+openmp', when='@:9.99')
- depends_on('fftw-api@3:', when='@10.0:')
+ depends_on('fftw@3:+mpi+openmp', when='@8:9.99')
+ depends_on('fftw-api@3:', when='@10:')
depends_on('metis@5:', when='+metis')
depends_on('parmetis', when='+parmetis')
depends_on('scalapack', when='+scalapack')
@@ -112,10 +114,15 @@ class Octopus(Package):
'--with-scalapack=%s' % spec['scalapack'].libs
])
- # --with-etsf-io-prefix=
- # --with-sparskit=${prefix}/lib/libskit.a
- # --with-pfft-prefix=${prefix} --with-mpifftw-prefix=${prefix}
- # --with-berkeleygw-prefix=${prefix}
+ if '+cuda' in spec:
+ args.extend([
+ '--enable-cuda'
+ ])
+
+ # --with-etsf-io-prefix=
+ # --with-sparskit=${prefix}/lib/libskit.a
+ # --with-pfft-prefix=${prefix} --with-mpifftw-prefix=${prefix}
+ # --with-berkeleygw-prefix=${prefix}
# When preprocessor expands macros (i.e. CFLAGS) defined as quoted
# strings the result may be > 132 chars and is terminated.
diff --git a/var/spack/repos/builtin/packages/odc/package.py b/var/spack/repos/builtin/packages/odc/package.py
new file mode 100644
index 0000000000..24bf25fbac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/odc/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 Odc(CMakePackage):
+ """ECMWF encoding and decoding of observational data in ODB2 format."""
+
+ homepage = 'https://github.com/ecmwf/odc'
+ url = 'https://github.com/ecmwf/odc/archive/refs/tags/1.3.0.tar.gz'
+
+ maintainers = ['skosukhin']
+
+ version('1.3.0', sha256='97a4f10765b341cc8ccbbf203f5559cb1b838cbd945f48d4cecb1bc4305e6cd6')
+
+ variant('fortran', default=False,
+ description='Enable the Fortran interface')
+
+ depends_on('ecbuild@3.4:', type='build')
+ depends_on('cmake@3.12:', type='build')
+
+ depends_on('eckit@1.4:+sql')
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('ENABLE_FORTRAN', 'fortran'),
+ # The tests download additional data (~650MB):
+ self.define('ENABLE_TESTS', self.run_tests)
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/of-catalyst/package.py b/var/spack/repos/builtin/packages/of-catalyst/package.py
index eb036b0db9..58898c658a 100644
--- a/var/spack/repos/builtin/packages/of-catalyst/package.py
+++ b/var/spack/repos/builtin/packages/of-catalyst/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/of-precice/package.py b/var/spack/repos/builtin/packages/of-precice/package.py
index 3cc9927f4a..e1f1f839a0 100644
--- a/var/spack/repos/builtin/packages/of-precice/package.py
+++ b/var/spack/repos/builtin/packages/of-precice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ from spack.pkg.builtin.openfoam import add_extra_files
class OfPrecice(Package):
"""preCICE adapter for OpenFOAM"""
- homepage = 'https://www.precice.org'
+ homepage = 'https://precice.org/'
git = 'https://github.com/precice/openfoam-adapter.git'
# Currently develop only
diff --git a/var/spack/repos/builtin/packages/omega-h/package.py b/var/spack/repos/builtin/packages/omega-h/package.py
index b2ba6be1f2..f2d6235dad 100644
--- a/var/spack/repos/builtin/packages/omega-h/package.py
+++ b/var/spack/repos/builtin/packages/omega-h/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,12 +12,13 @@ class OmegaH(CMakePackage):
"""
homepage = "https://github.com/SNLComputation/omega_h"
- url = "https://github.com/SNLComputation/omega_h/archive/v9.29.0.tar.gz"
+ url = "https://github.com/SNLComputation/omega_h/archive/v9.34.1.tar.gz"
git = "https://github.com/SNLComputation/omega_h.git"
maintainers = ['ibaned']
- version('develop', branch='master')
+ version('main', branch='main')
+ version('9.34.1', sha256='3a812da3b8df3e0e5d78055e91ad23333761bcd9ed9b2c8c13ee1ba3d702e46c')
version('9.32.5', sha256='963a203e9117024cd48d829d82b8543cd9133477fdc15386113b594fdc3246d8')
version('9.29.0', sha256='b41964b018909ffe9cea91c23a0509b259bfbcf56874fcdf6bd9f6a179938014')
version('9.27.0', sha256='aa51f83508cbd14a41ae953bda7da98a6ad2979465c76e5b3a3d9a7a651cb34a')
@@ -41,7 +42,7 @@ class OmegaH(CMakePackage):
depends_on('gmsh', when='+examples', type='build')
depends_on('mpi', when='+mpi')
- depends_on('trilinos +kokkos +teuchos', when='+trilinos')
+ depends_on('trilinos +kokkos', when='+trilinos')
depends_on('zlib', when='+zlib')
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86610
@@ -93,4 +94,8 @@ class OmegaH(CMakePackage):
flags = list(flags)
if name == 'cxxflags':
flags.append(self.compiler.cxx11_flag)
+
+ if self.spec.satisfies('%cce'):
+ flags.append("-Wno-final-dtor-non-final-class")
+
return (None, None, flags)
diff --git a/var/spack/repos/builtin/packages/ompss/package.py b/var/spack/repos/builtin/packages/ompss/package.py
index 669116328c..0c428942e3 100644
--- a/var/spack/repos/builtin/packages/ompss/package.py
+++ b/var/spack/repos/builtin/packages/ompss/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+import os
+
+from spack import *
class Ompss(Package):
@@ -19,9 +20,9 @@ class Ompss(Package):
Nanos++ runtime system.
"""
- homepage = "http://pm.bsc.es/"
+ homepage = "https://pm.bsc.es/"
url = "http://pm.bsc.es/sites/default/files/ftp/ompss/releases/ompss-14.10.tar.gz"
- list_url = 'http://pm.bsc.es/ompss-downloads'
+ list_url = 'https://pm.bsc.es/ompss-downloads'
version('14.10', sha256='5b38d3e6ce108e7ca73a2599bc698d75ea9f6d90a3be0349faf6d61022e62a38')
diff --git a/var/spack/repos/builtin/packages/ompt-openmp/package.py b/var/spack/repos/builtin/packages/ompt-openmp/package.py
index 7376efb76e..a3c65b3755 100644
--- a/var/spack/repos/builtin/packages/ompt-openmp/package.py
+++ b/var/spack/repos/builtin/packages/ompt-openmp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/onednn/package.py b/var/spack/repos/builtin/packages/onednn/package.py
index a10c409560..ee825deaad 100644
--- a/var/spack/repos/builtin/packages/onednn/package.py
+++ b/var/spack/repos/builtin/packages/onednn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,9 +13,15 @@ class Onednn(CMakePackage):
homepage = "https://01.org/onednn"
url = "https://github.com/oneapi-src/oneDNN/archive/v1.7.tar.gz"
+ git = "https://github.com/oneapi-src/oneDNN.git"
maintainers = ['adamjstewart']
+ version('master', branch='master')
+ version('2.1-rc', sha256='13d293e7368a8fdd8dd3c11c73352cf5f564398658dd027ce0acde947440b4cb')
+ version('2.0', sha256='922b42c3ea7a7122a77c61568dc4512aa8130c264c0489283c989919d1f59a6d')
+ version('1.8.1', sha256='1883ccfb037bd31f916203a38e877899fc27ae10bc9ebad686f78d189ba506a7')
+ version('1.8', sha256='0a1bfbbc6fd86c6ea4cf0f7c36fe3e69b0bbefa74158c65a5db28d589cb5fbe9')
version('1.7', sha256='2dbd53578b36bd84bbc3e411d1a4cacc0eed832892818c5fa16b72cbf1dab015')
version('1.6.5', sha256='6258d961fe1757b70d10cf34f0925079401ffae264f056b15024270b11d5c1eb')
version('1.6.4', sha256='5369f7b2f0b52b40890da50c0632c3a5d1082d98325d0f2bff125d19d0dcaa1d')
diff --git a/var/spack/repos/builtin/packages/oniguruma/package.py b/var/spack/repos/builtin/packages/oniguruma/package.py
index 91259d7588..82692ef59f 100644
--- a/var/spack/repos/builtin/packages/oniguruma/package.py
+++ b/var/spack/repos/builtin/packages/oniguruma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/onnx/package.py b/var/spack/repos/builtin/packages/onnx/package.py
new file mode 100644
index 0000000000..aac83a9477
--- /dev/null
+++ b/var/spack/repos/builtin/packages/onnx/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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 Onnx(CMakePackage):
+ """Open Neural Network Exchange (ONNX).
+
+ ONNX provides an open source format for AI models, both deep learning and
+ traditional ML. It defines an extensible computation graph model, as well
+ as definitions of built-in operators and standard data types."""
+
+ homepage = "https://github.com/onnx/onnx"
+ url = "https://github.com/onnx/onnx/archive/refs/tags/v1.9.0.tar.gz"
+ git = "https://github.com/onnx/onnx.git"
+
+ version('master', branch='master')
+ version('1.9.0', sha256='61d459a5f30604cabec352574119a6685dfd43bfa757cfbff52be9471d5b8ea0')
+ version('1.8.0_2020-11-03', commit='54c38e6eaf557b844e70cebc00f39ced3321e9ad') # py-torch@1.8:1.9
+ version('1.7.0_2020-05-31', commit='a82c6a7010e2e332d8f74ad5b0c726fd47c85376') # py-torch@1.6:1.7
+ version('1.6.0_2020-02-16', commit='9fdae4c68960a2d44cd1cc871c74a6a9d469fa1f') # py-torch@1.5
+ version('1.6.0_2019-11-06', commit='fea8568cac61a482ed208748fdc0e1a8e47f62f5') # py-torch@1.4
+ version('1.6.0_2019-09-26', commit='034921bd574cc84906b7996c07873454b7dd4135') # py-torch@1.3
+ version('1.5.0_2019-07-25', commit='28ca699b69b5a31892619defca2391044a9a6052') # py-torch@1.2
+ version('1.5.0_2019-04-25', commit='22662bfd4dcc6baebf29e3b823a051676f991001') # py-torch@1.1
+ version('1.3.0_2018-12-04', commit='42804705bdbf179d1a98394008417e1392013547') # py-torch@1.0
+ version('1.2.2_2018-07-16', commit='b2817a682f25f960586f06caa539bbbd7a96b859') # py-torch@0.4.1
+ version('1.1.0_2018-04-19', commit='7e1bed51cc508a25b22130de459830b5d5063c41') # py-torch@0.4.0
+
+ depends_on('cmake@3.1:', type='build')
+ depends_on('ninja', type='build')
+ depends_on('python', type='build')
+ depends_on('protobuf')
+
+ generator = 'Ninja'
diff --git a/var/spack/repos/builtin/packages/ont-albacore/package.py b/var/spack/repos/builtin/packages/ont-albacore/package.py
index b3bedf9da2..e920701550 100644
--- a/var/spack/repos/builtin/packages/ont-albacore/package.py
+++ b/var/spack/repos/builtin/packages/ont-albacore/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/opa-psm2/opa-psm2-install-prefix.patch b/var/spack/repos/builtin/packages/opa-psm2/opa-psm2-install-prefix.patch
deleted file mode 100644
index e03f7276b7..0000000000
--- a/var/spack/repos/builtin/packages/opa-psm2/opa-psm2-install-prefix.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-diff -Naupr opa-psm2-PSM2_11.2.68/Makefile opa-psm2-PSM2_11.2.68-pathfix/Makefile
---- opa-psm2-PSM2_11.2.68/Makefile 2018-09-27 19:48:03.000000000 -0400
-+++ opa-psm2-PSM2_11.2.68-pathfix/Makefile 2019-06-07 11:34:37.658270976 -0400
-@@ -135,9 +135,9 @@ endif
-
- ifndef LIBDIR
- ifeq (${arch},x86_64)
-- INSTALL_LIB_TARG=/usr/lib64
-+ INSTALL_LIB_TARG=/lib64
- else
-- INSTALL_LIB_TARG=/usr/lib
-+ INSTALL_LIB_TARG=/lib
- endif
- else
- INSTALL_LIB_TARG=${LIBDIR}
-@@ -177,7 +177,7 @@ UDEV_40_PSM_RULES := %{_udevrulesdir}/40
-
- ifeq (fedora,$(DISTRO))
- # On Fedora, we change these two variables to these values:
-- LIBPSM2_COMPAT_CONF_DIR := /usr/lib
-+ LIBPSM2_COMPAT_CONF_DIR := /lib
- LIBPSM2_COMPAT_SYM_CONF_DIR := %{_prefix}/lib
- SPEC_FILE_RELEASE_DIST := %{?dist}
- UDEV_40_PSM_RULES :=#
-@@ -411,20 +411,20 @@ install: all
- ln -sf ${TARGLIB}.so.${MAJOR} ${TARGLIB}.so)
- install -D $(OUTDIR)/${TARGLIB}.a \
- ${DESTDIR}${INSTALL_LIB_TARG}/${TARGLIB}.a
-- install -m 0644 -D psm2.h ${DESTDIR}/usr/include/psm2.h
-- install -m 0644 -D psm2_mq.h ${DESTDIR}/usr/include/psm2_mq.h
-- install -m 0644 -D psm2_am.h ${DESTDIR}/usr/include/psm2_am.h
-+ install -m 0644 -D psm2.h ${DESTDIR}/include/psm2.h
-+ install -m 0644 -D psm2_mq.h ${DESTDIR}/include/psm2_mq.h
-+ install -m 0644 -D psm2_am.h ${DESTDIR}/include/psm2_am.h
- ifneq (fedora,${DISTRO})
- install -m 0644 -D 40-psm.rules ${DESTDIR}$(UDEVDIR)/rules.d/40-psm.rules
- endif
- # The following files and dirs were part of the noship rpm:
-- mkdir -p ${DESTDIR}/usr/include/hfi1diag
-- mkdir -p ${DESTDIR}/usr/include/hfi1diag/linux-x86_64
-- install -m 0644 -D include/linux-x86_64/bit_ops.h ${DESTDIR}/usr/include/hfi1diag/linux-x86_64/bit_ops.h
-- install -m 0644 -D include/linux-x86_64/sysdep.h ${DESTDIR}/usr/include/hfi1diag/linux-x86_64/sysdep.h
-- install -m 0644 -D include/opa_udebug.h ${DESTDIR}/usr/include/hfi1diag/opa_udebug.h
-- install -m 0644 -D include/opa_debug.h ${DESTDIR}/usr/include/hfi1diag/opa_debug.h
-- install -m 0644 -D include/opa_intf.h ${DESTDIR}/usr/include/hfi1diag/opa_intf.h
-+ mkdir -p ${DESTDIR}/include/hfi1diag
-+ mkdir -p ${DESTDIR}/include/hfi1diag/linux-x86_64
-+ install -m 0644 -D include/linux-x86_64/bit_ops.h ${DESTDIR}/include/hfi1diag/linux-x86_64/bit_ops.h
-+ install -m 0644 -D include/linux-x86_64/sysdep.h ${DESTDIR}/include/hfi1diag/linux-x86_64/sysdep.h
-+ install -m 0644 -D include/opa_udebug.h ${DESTDIR}/include/hfi1diag/opa_udebug.h
-+ install -m 0644 -D include/opa_debug.h ${DESTDIR}/include/hfi1diag/opa_debug.h
-+ install -m 0644 -D include/opa_intf.h ${DESTDIR}/include/hfi1diag/opa_intf.h
- for h in opa_user_gen1.h opa_service_gen1.h opa_common_gen1.h ; do \
- sed -e 's/#include "opa_user_gen1.h"/#include "opa_user.h"/' \
- -e 's/#include "opa_common_gen1.h"/#include "opa_common.h"/' \
-@@ -434,14 +434,14 @@ endif
- done
- cat include/opa_user.h $(TEMP_INST_DIR)/opa_user_gen1.h > $(TEMP_INST_DIR)/opa_user.h
- cat include/opa_service.h $(TEMP_INST_DIR)/opa_service_gen1.h > $(TEMP_INST_DIR)/opa_service.h
-- install -m 0644 -D $(TEMP_INST_DIR)/opa_user.h ${DESTDIR}/usr/include/hfi1diag/opa_user.h
-- install -m 0644 -D $(TEMP_INST_DIR)/opa_service.h ${DESTDIR}/usr/include/hfi1diag/opa_service.h
-- install -m 0644 -D $(TEMP_INST_DIR)/opa_common_gen1.h ${DESTDIR}/usr/include/hfi1diag/opa_common.h
-- install -m 0644 -D include/opa_byteorder.h ${DESTDIR}/usr/include/hfi1diag/opa_byteorder.h
-- install -m 0644 -D include/psm2_mock_testing.h ${DESTDIR}/usr/include/hfi1diag/psm2_mock_testing.h
-- install -m 0644 -D include/opa_revision.h ${DESTDIR}/usr/include/hfi1diag/opa_revision.h
-- install -m 0644 -D psmi_wrappers.h ${DESTDIR}/usr/include/hfi1diag/psmi_wrappers.h
-- install -m 0644 -D psm_hal_gen1/hfi1_deprecated_gen1.h ${DESTDIR}/usr/include/hfi1diag/hfi1_deprecated.h
-+ install -m 0644 -D $(TEMP_INST_DIR)/opa_user.h ${DESTDIR}/include/hfi1diag/opa_user.h
-+ install -m 0644 -D $(TEMP_INST_DIR)/opa_service.h ${DESTDIR}/include/hfi1diag/opa_service.h
-+ install -m 0644 -D $(TEMP_INST_DIR)/opa_common_gen1.h ${DESTDIR}/include/hfi1diag/opa_common.h
-+ install -m 0644 -D include/opa_byteorder.h ${DESTDIR}/include/hfi1diag/opa_byteorder.h
-+ install -m 0644 -D include/psm2_mock_testing.h ${DESTDIR}/include/hfi1diag/psm2_mock_testing.h
-+ install -m 0644 -D include/opa_revision.h ${DESTDIR}/include/hfi1diag/opa_revision.h
-+ install -m 0644 -D psmi_wrappers.h ${DESTDIR}/include/hfi1diag/psmi_wrappers.h
-+ install -m 0644 -D psm_hal_gen1/hfi1_deprecated_gen1.h ${DESTDIR}/include/hfi1diag/hfi1_deprecated.h
- rm -fr $(TEMP_INST_DIR)
-
- specfile: specfile_clean | $(OUTDIR)
diff --git a/var/spack/repos/builtin/packages/opa-psm2/package.py b/var/spack/repos/builtin/packages/opa-psm2/package.py
index 304c7adafe..5a9044bbd0 100644
--- a/var/spack/repos/builtin/packages/opa-psm2/package.py
+++ b/var/spack/repos/builtin/packages/opa-psm2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,12 @@ from spack import *
class OpaPsm2(MakefilePackage):
- """ Intel Omni-Path Performance Scaled Messaging 2 (PSM2) library"""
+ """ Omni-Path Performance Scaled Messaging 2 (PSM2) library"""
- homepage = "http://github.com/intel/opa-psm2"
- url = "https://github.com/intel/opa-psm2/archive/PSM2_10.3-8.tar.gz"
+ homepage = "https://github.com/cornelisnetworks/opa-psm2"
+ url = "https://github.com/cornelisnetworks/opa-psm2/archive/PSM2_10.3-8.tar.gz"
+ version('11.2.185', sha256='8c0446e989feb4a3822791e4a3687060916f7c4612d1e8e493879be66f10db09')
version('11.2.77', sha256='5cc33d1e19d871a5861efe0bb897526f404b4bf2b88ac58bb277db96ac5ecb54')
version('11.2.68', sha256='42e16a14fc8c90b50855dcea46af3315bee32fb1ae89d83060f9b2ebdce1ec26')
version('10.3-37', sha256='43e46f6fb345db67bb45b48e2b2bb05f590f7ccbc3ee337b33312043b46946b9')
@@ -26,13 +27,8 @@ class OpaPsm2(MakefilePackage):
depends_on('numactl')
- # patch to prevent opa-psm2 from adding an additional "usr/"
- # subdirectory within the installation prefix, which breaks paths for
- # dependent packages like libfabric
- patch('opa-psm2-install-prefix.patch', when='@11.2.68:')
-
# patch to get the Makefile to use the spack compiler wrappers
- patch('opa-psm2-compiler.patch', when='@11.2.68:',
+ patch('opa-psm2-compiler.patch', when='@11.2.68:11.2.77',
sha256='fe31fda9aaee13acb87d178af2282446196d2cc0b21163034573706110b2e2d6')
def setup_build_environment(self, env):
@@ -46,7 +42,8 @@ class OpaPsm2(MakefilePackage):
# Change the makefile so libraries and includes are not
# placed under $PREFIX/usr
env['LIBDIR'] = '/lib'
- filter_file(r'${DESTDIR}/usr', '${DESTDIR}', 'Makefile')
+ filter_file(r'${DESTDIR}/usr', '${DESTDIR}', 'Makefile', string=True)
+ filter_file(r'/usr/lib', '/lib', 'Makefile', string=True)
if '~avx2' in spec:
env['PSM_DISABLE_AVX2'] = 'True'
diff --git a/var/spack/repos/builtin/packages/opam/package.py b/var/spack/repos/builtin/packages/opam/package.py
index d25999f89e..f88e2a570d 100644
--- a/var/spack/repos/builtin/packages/opam/package.py
+++ b/var/spack/repos/builtin/packages/opam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/opari2/package.py b/var/spack/repos/builtin/packages/opari2/package.py
index 9899e51544..3202d9ed14 100644
--- a/var/spack/repos/builtin/packages/opari2/package.py
+++ b/var/spack/repos/builtin/packages/opari2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,9 +17,10 @@ class Opari2(AutotoolsPackage):
tied tasks.
"""
- homepage = "http://www.vi-hps.org/projects/score-p"
+ homepage = "https://www.vi-hps.org/projects/score-p"
url = "https://www.vi-hps.org/cms/upload/packages/opari2/opari2-2.0.4.tar.gz"
+ version('2.0.6', sha256='55972289ce66080bb48622110c3189a36e88a12917635f049b37685b9d3bbcb0', url='https://perftools.pages.jsc.fz-juelich.de/cicd/opari2/tags/opari2-2.0.6/opari2-2.0.6.tar.gz')
version('2.0.5', sha256='9034dd7596ac2176401090fd5ced45d0ab9a9404444ff767f093ccce68114ef5')
version('2.0.4', sha256='f69e324792f66780b473daf2b3c81f58ee8188adc72b6fe0dacf43d4c1a0a131')
version('2.0.3', sha256='7e2efcfbc99152ee6e31454ef4fb747f77165691539d5d2c1df2abc4612de86c')
diff --git a/var/spack/repos/builtin/packages/open-iscsi/package.py b/var/spack/repos/builtin/packages/open-iscsi/package.py
index 0261105867..89c902072e 100644
--- a/var/spack/repos/builtin/packages/open-iscsi/package.py
+++ b/var/spack/repos/builtin/packages/open-iscsi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,6 +20,7 @@ class OpenIscsi(MakefilePackage):
version('2.0.876', sha256='9f01327d5e100ed794dc5083fc18dc4a06a0c29c77b252e21abd1b8f56edd9a7')
depends_on('gettext')
+ depends_on('uuid')
depends_on('util-linux+libmount')
depends_on('kmod')
depends_on('open-isns')
diff --git a/var/spack/repos/builtin/packages/open-isns/package.py b/var/spack/repos/builtin/packages/open-isns/package.py
index 220db25ce0..fbb2972c4b 100644
--- a/var/spack/repos/builtin/packages/open-isns/package.py
+++ b/var/spack/repos/builtin/packages/open-isns/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/openal-soft/package.py b/var/spack/repos/builtin/packages/openal-soft/package.py
new file mode 100644
index 0000000000..c1895be63a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openal-soft/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 OpenalSoft(CMakePackage):
+ """OpenAL provides capabilities for playing audio in a
+ virtual 3D environment. Distance attenuation, doppler
+ shift, and directional sound emitters are among the
+ features handled by the API."""
+
+ homepage = "https://openal-soft.org"
+ url = "https://openal-soft.org/openal-releases/openal-soft-1.21.1.tar.bz2"
+
+ version('1.21.1', sha256='c8ad767e9a3230df66756a21cc8ebf218a9d47288f2514014832204e666af5d8')
+
+ variant('alsa', default=False, description="ALSA support")
+
+ depends_on('alsa-lib', when="+alsa")
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('ALSOFT_REQUIRE_ALSA', 'alsa')
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/openbabel/package.py b/var/spack/repos/builtin/packages/openbabel/package.py
index 4d3b66d680..79cc0e5b0b 100644
--- a/var/spack/repos/builtin/packages/openbabel/package.py
+++ b/var/spack/repos/builtin/packages/openbabel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/openblas/0001-use-usr-bin-env-perl.patch b/var/spack/repos/builtin/packages/openblas/0001-use-usr-bin-env-perl.patch
new file mode 100644
index 0000000000..28de1277c9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openblas/0001-use-usr-bin-env-perl.patch
@@ -0,0 +1,55 @@
+From ec6b354c32e939605331e2081590815a86413ca8 Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Wed, 24 Feb 2021 14:07:20 +0100
+Subject: [PATCH] use /usr/bin/env perl
+
+---
+ c_check | 2 +-
+ exports/gensymbol | 2 +-
+ f_check | 2 +-
+ interface/create | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/c_check b/c_check
+index 9c8b1aba..e24943a2 100644
+--- a/c_check
++++ b/c_check
+@@ -1,4 +1,4 @@
+-#!/usr/bin/perl
++#!/usr/bin/env perl
+
+ #use File::Basename;
+ # use File::Temp qw(tempfile);
+diff --git a/exports/gensymbol b/exports/gensymbol
+index 857a17a9..e7210a03 100644
+--- a/exports/gensymbol
++++ b/exports/gensymbol
+@@ -1,4 +1,4 @@
+-#!/usr/bin/perl
++#!/usr/bin/env perl
+
+ # Changelog
+ # 2017/09/03 staticfloat
+diff --git a/f_check b/f_check
+index ffe9c6b4..d044f254 100644
+--- a/f_check
++++ b/f_check
+@@ -1,4 +1,4 @@
+-#!/usr/bin/perl
++#!/usr/bin/env perl
+
+ $hostos = `uname -s | sed -e s/\-.*//`; chop($hostos);
+
+diff --git a/interface/create b/interface/create
+index b7be8ab6..0b9cefa2 100755
+--- a/interface/create
++++ b/interface/create
+@@ -1,4 +1,4 @@
+-#!/usr/bin/perl
++#!/usr/bin/env perl
+
+ $count = 0;
+
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py
index 4121d558b7..337aad641c 100644
--- a/var/spack/repos/builtin/packages/openblas/package.py
+++ b/var/spack/repos/builtin/packages/openblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,6 +18,11 @@ class Openblas(MakefilePackage):
git = 'https://github.com/xianyi/OpenBLAS.git'
version('develop', branch='develop')
+ version('0.3.17', sha256='df2934fa33d04fd84d839ca698280df55c690c86a5a1133b3f7266fce1de279f')
+ version('0.3.16', sha256='fa19263c5732af46d40d3adeec0b2c77951b67687e670fb6ba52ea3950460d79')
+ version('0.3.15', sha256='30a99dec977594b387a17f49904523e6bc8dd88bd247266e83485803759e4bbe')
+ version('0.3.14', sha256='d381935d26f9cae8e4bbd7d7f278435adf8e3a90920edf284bb9ad789ee9ad60')
+ version('0.3.13', sha256='79197543b17cc314b7e43f7a33148c308b0807cd6381ee77f77e15acf3e6459e')
version('0.3.12', sha256='65a7d3a4010a4e3bd5c0baa41a234797cd3a1735449a4a5902129152601dc57b')
version('0.3.11', sha256='bc4617971179e037ae4e8ebcd837e46db88422f7b365325bd7aba31d1921a673')
version('0.3.10', sha256='0484d275f87e9b8641ff2eecaa9df2830cbe276ac79ad80494822721de6e1693')
@@ -42,7 +47,9 @@ class Openblas(MakefilePackage):
variant('pic', default=True, description='Build position independent code')
variant('shared', default=True, description='Build shared libraries')
variant('consistent_fpcsr', default=False, description='Synchronize FP CSR between threads (x86/x86_64 only)')
+ variant('bignuma', default=False, description='Enable experimental support for up to 1024 CPUs/Cores and 128 numa nodes')
+ variant('locking', default=True, description='Build with thread safety')
variant(
'threads', default='none',
description='Multithreading support',
@@ -61,8 +68,8 @@ class Openblas(MakefilePackage):
# UPD: the patch has been merged starting version 0.2.20
patch('openblas_icc.patch', when='@:0.2.19%intel')
patch('openblas_icc_openmp.patch', when='@:0.2.20%intel@16.0:')
- patch('openblas_icc_fortran.patch', when='%intel@16.0:')
- patch('openblas_icc_fortran2.patch', when='%intel@18.0:')
+ patch('openblas_icc_fortran.patch', when='@:0.3.14%intel@16.0:')
+ patch('openblas_icc_fortran2.patch', when='@:0.3.14%intel@18.0:')
# See https://github.com/spack/spack/issues/15385
patch('lapack-0.3.9-xerbl.patch', when='@0.3.8:0.3.9 %intel')
@@ -108,18 +115,32 @@ class Openblas(MakefilePackage):
when='@0.3.8:0.3.10 %apple-clang@12.0.0:')
# Add conditions to f_check to determine the Fujitsu compiler
+ # See https://github.com/xianyi/OpenBLAS/pull/3010
+ # UPD: the patch has been merged starting version 0.3.13
patch('openblas_fujitsu.patch', when='@:0.3.10 %fj')
- patch('openblas_fujitsu_v0.3.11.patch', when='@0.3.11: %fj')
- patch('openblas_fujitsu2.patch', when='@0.3.10: %fj')
+ patch('openblas_fujitsu_v0.3.11.patch', when='@0.3.11:0.3.12 %fj')
+ patch('openblas_fujitsu2.patch', when='@0.3.10:0.3.12 %fj')
+
+ # Use /usr/bin/env perl in build scripts
+ patch('0001-use-usr-bin-env-perl.patch', when='@:0.3.13')
+
+ # See https://github.com/spack/spack/issues/19932#issuecomment-733452619
+ conflicts('%gcc@7.0.0:7.3.99,8.0.0:8.2.99', when='@0.3.11:')
+
+ # See https://github.com/xianyi/OpenBLAS/issues/3074
+ conflicts('%gcc@:10.1.99', when='@0.3.13 target=ppc64le:')
# See https://github.com/spack/spack/issues/3036
conflicts('%intel@16', when='@0.2.15:0.2.19')
conflicts('+consistent_fpcsr', when='threads=none',
msg='FPCSR consistency only applies to multithreading')
+ conflicts('threads=pthreads', when='~locking', msg='Pthread support requires +locking')
conflicts('threads=openmp', when='%apple-clang', msg="Apple's clang does not support OpenMP")
conflicts('threads=openmp @:0.2.19', when='%clang', msg='OpenBLAS @:0.2.19 does not support OpenMP with clang!')
+ depends_on('perl', type='build')
+
@property
def parallel(self):
# unclear whether setting `-j N` externally was supported before 0.3
@@ -201,8 +222,15 @@ class Openblas(MakefilePackage):
if microarch.vendor == 'generic':
# User requested a generic platform, or we couldn't find a good
# match for the requested one. Allow OpenBLAS to determine
- # an optimized kernel at run time.
+ # an optimized kernel at run time, including older CPUs, while
+ # forcing it not to add flags for the current host compiler.
args.append('DYNAMIC_ARCH=1')
+ if self.spec.version >= Version('0.3.12'):
+ # These are necessary to prevent OpenBLAS from targeting the
+ # host architecture on newer version of OpenBLAS, but they
+ # cause build errors on 0.3.5 .
+ args.extend(['DYNAMIC_OLDER=1', 'TARGET=GENERIC'])
+
elif microarch.name in skylake:
# Special case for renaming skylake family
args.append('TARGET=SKYLAKEX')
@@ -246,6 +274,13 @@ class Openblas(MakefilePackage):
if self.spec.satisfies('@0.2.16'):
make_defs += ['BUILD_LAPACK_DEPRECATED=1']
+ # serial, but still thread-safe version
+ if self.spec.satisfies('@0.3.7:'):
+ if '+locking' in self.spec:
+ make_defs += ['USE_LOCKING=1']
+ else:
+ make_defs += ['USE_LOCKING=0']
+
# Add support for multithreading
if self.spec.satisfies('threads=openmp'):
make_defs += ['USE_OPENMP=1', 'USE_THREAD=1']
@@ -271,6 +306,18 @@ class Openblas(MakefilePackage):
if self.spec.satisfies('%gcc@:4.8.4'):
make_defs.append('NO_AVX2=1')
+ # Fujitsu Compiler dose not add Fortran runtime in rpath.
+ if self.spec.satisfies('%fj'):
+ make_defs.append('LDFLAGS=-lfj90i -lfj90f -lfjsrcinfo -lelf')
+
+ # Newer versions of openblas will try to find ranlib in the compiler's
+ # prefix, for instance, .../lib/spack/env/gcc/ranlib, which will fail.
+ if self.spec.satisfies('@0.3.13:'):
+ make_defs.append('RANLIB=ranlib')
+
+ if self.spec.satisfies('+bignuma'):
+ make_defs.append('BIGNUMA=1')
+
return make_defs
@property
diff --git a/var/spack/repos/builtin/packages/opencascade/package.py b/var/spack/repos/builtin/packages/opencascade/package.py
index 0cae5d3055..f18689bdaa 100644
--- a/var/spack/repos/builtin/packages/opencascade/package.py
+++ b/var/spack/repos/builtin/packages/opencascade/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,8 +14,12 @@ class Opencascade(CMakePackage):
visualization, data exchange and rapid application development."""
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"
+ url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V7_4_0;sf=tgz"
+ version('7.5.2', extension='tar.gz',
+ sha256='1a32d2b0d6d3c236163cb45139221fb198f0f3cdad56606c5b1c9a2a8869b3ac')
+ version('7.4.0p2', extension='tar.gz',
+ sha256='93565f9bdc9575e0d6fcb34c11c8f06d8f9394250bb427870da65424e8537f60')
version('7.4.0p1', extension='tar.gz',
sha256='e00fedc221560fda31653c23a8f3d0eda78095c87519f338d4f4088e2ee9a9c0')
version('7.4.0', extension='tar.gz',
@@ -31,7 +35,7 @@ class Opencascade(CMakePackage):
description='Build with rapidjson')
depends_on('intel-tbb', when='+tbb')
- depends_on('vtk', when='+vtk')
+ depends_on('vtk', when='+vtk')
depends_on('freeimage', when='+freeimage')
depends_on('rapidjson', when='+rapidjson')
depends_on('freetype')
@@ -44,7 +48,7 @@ class Opencascade(CMakePackage):
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"
+ url = "https://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):
diff --git a/var/spack/repos/builtin/packages/opencl-c-headers/package.py b/var/spack/repos/builtin/packages/opencl-c-headers/package.py
index c93d5eb53d..b47921723f 100644
--- a/var/spack/repos/builtin/packages/opencl-c-headers/package.py
+++ b/var/spack/repos/builtin/packages/opencl-c-headers/package.py
@@ -1,19 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class OpenclCHeaders(Package):
"""OpenCL (Open Computing Language) C header files"""
homepage = "https://www.khronos.org/registry/OpenCL/"
url = "https://github.com/KhronosGroup/OpenCL-Headers/archive/v2020.06.16.tar.gz"
+ maintainers = ['lorddavidiii']
+ version('2021.06.30', sha256='6640d590c30d90f89351f5e3043ae6363feeb19ac5e64bc35f8cfa1a6cd5498e')
+ version('2021.04.29', sha256='477e2b26125d99a9b2f20c68262f27ca3f3ca7899593a8af2b7fe077bdce18d1')
+ version('2020.12.18', sha256='5dad6d436c0d7646ef62a39ef6cd1f3eba0a98fc9157808dfc1d808f3705ebc2')
version('2020.06.16', sha256='2f5a60e5ac4b127650618c58a7e3b35a84dbf23c1a0ac72eb5e7baf221600e06')
version('2020.03.13', sha256='664bbe587e5a0a00aac267f645b7c413586e7bc56dca9ff3b00037050d06f476')
diff --git a/var/spack/repos/builtin/packages/opencl-clhpp/package.py b/var/spack/repos/builtin/packages/opencl-clhpp/package.py
index 3e335c2180..d1edf87550 100644
--- a/var/spack/repos/builtin/packages/opencl-clhpp/package.py
+++ b/var/spack/repos/builtin/packages/opencl-clhpp/package.py
@@ -1,19 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class OpenclClhpp(CMakePackage):
"""C++ headers for OpenCL development"""
homepage = "https://www.khronos.org/registry/OpenCL/"
url = "https://github.com/KhronosGroup/OpenCL-CLHPP/archive/v2.0.12.tar.gz"
+ maintainers = ['lorddavidiii']
+ version('2.0.15', sha256='0175806508abc699586fc9a9387e01eb37bf812ca534e3b493ff3091ec2a9246')
+ version('2.0.14', sha256='c8821a7638e57a2c4052631c941af720b581edda634db6ab0b59924c958d69b6')
+ version('2.0.13', sha256='8ff0d0cd94d728edd30c876db546bf13e370ee7863629b4b9b5e2ef8e130d23c')
version('2.0.12', sha256='20b28709ce74d3602f1a946d78a2024c1f6b0ef51358b9686612669897a58719')
version('2.0.11', sha256='ffc2ca08cf4ae90ee55f14ea3735ccc388f454f4422b69498b2e9b93a1d45181')
version('2.0.10', sha256='fa27456295c3fa534ce824eb0314190a8b3ebd3ba4d93a0b1270fc65bf378f2b')
diff --git a/var/spack/repos/builtin/packages/opencl-headers/package.py b/var/spack/repos/builtin/packages/opencl-headers/package.py
index dc6427d515..4e72e6d25e 100644
--- a/var/spack/repos/builtin/packages/opencl-headers/package.py
+++ b/var/spack/repos/builtin/packages/opencl-headers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,13 @@ class OpenclHeaders(BundlePackage):
homepage = "https://www.khronos.org/registry/OpenCL/"
+ version('3.0')
version('2.2')
version('2.1')
version('2.0')
- depends_on('opencl-c-headers@2020.03.13:')
- depends_on('opencl-clhpp@2.0.11:', when='@2.1:')
+ depends_on('opencl-c-headers@2020.12.18:', when='@3.0:')
+ depends_on('opencl-c-headers@2020.03.13:', when='@2.0:2.2')
+ depends_on('opencl-clhpp@2.0.13:', when='@3.0:')
+ depends_on('opencl-clhpp@2.0.11:', when='@2.1:2.2')
depends_on('opencl-clhpp@2.0.9:', when='@2.0')
diff --git a/var/spack/repos/builtin/packages/opencoarrays/package.py b/var/spack/repos/builtin/packages/opencoarrays/package.py
index d2d55add98..e00331c499 100644
--- a/var/spack/repos/builtin/packages/opencoarrays/package.py
+++ b/var/spack/repos/builtin/packages/opencoarrays/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/opencv/opencv3.2_compiler_cmake.patch b/var/spack/repos/builtin/packages/opencv/opencv3.2_compiler_cmake.patch
new file mode 100644
index 0000000000..4fe312e9ab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/opencv/opencv3.2_compiler_cmake.patch
@@ -0,0 +1,14 @@
+--- a/cmake/OpenCVCompilerOptions.cmake 2016-12-23 06:54:44.000000000 -0600
++++ b/cmake/OpenCVCompilerOptions.cmake 2021-06-16 11:51:11.616354728 -0500
+@@ -18,9 +18,9 @@
+ message(STATUS "Unable to compile program with enabled ccache, reverting...")
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${__OLD_RULE_LAUNCH_COMPILE}")
+ endif()
+- else()
+- message(STATUS "Looking for ccache - not found")
+ endif()
++ else()
++ message(STATUS "Looking for ccache - not found")
+ endif()
+ endif()
+
diff --git a/var/spack/repos/builtin/packages/opencv/package.py b/var/spack/repos/builtin/packages/opencv/package.py
index 7282ffe5bd..64f0b95789 100644
--- a/var/spack/repos/builtin/packages/opencv/package.py
+++ b/var/spack/repos/builtin/packages/opencv/package.py
@@ -1,364 +1,400 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Opencv(CMakePackage, CudaPackage):
- """OpenCV is released under a BSD license and hence it's free for both
- academic and commercial use. It has C++, C, Python and Java interfaces and
- supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for
- computational efficiency and with a strong focus on real-time applications.
- Written in optimized C/C++, the library can take advantage of multi-core
- processing. Enabled with OpenCL, it can take advantage of the hardware
- acceleration of the underlying heterogeneous compute platform. Adopted all
- around the world, OpenCV has more than 47 thousand people of user community
- and estimated number of downloads exceeding 9 million. Usage ranges from
- interactive art, to mines inspection, stitching maps on the web or through
- advanced robotics.
- """
-
- homepage = 'http://opencv.org/'
- url = 'https://github.com/Itseez/opencv/archive/3.1.0.tar.gz'
+ """OpenCV (Open Source Computer Vision Library) is an open source computer
+ vision and machine learning software library."""
+
+ homepage = 'https://opencv.org/'
+ url = 'https://github.com/opencv/opencv/archive/4.5.0.tar.gz'
git = 'https://github.com/opencv/opencv.git'
+ maintainers = ['bvanessen', 'adamjstewart']
+
version('master', branch='master')
- version('4.2.0', sha256='9ccb2192d7e8c03c58fee07051364d94ed7599363f3b0dce1c5e6cc11c1bb0ec')
- version('4.1.2', sha256='385dd0a9c25e67ef0dd60e022d2a2d7b17e2f36819cf3cb46aa8cdff5c5282c9')
- version('4.1.1', sha256='5de5d96bdfb9dad6e6061d70f47a0a91cee96bb35afb9afb9ecb3d43e243d217')
- version('4.1.0-openvino', sha256='58764d2487c6fb4cd950fb46483696ae7ae28e257223d6e44e162caa22ee9e5c')
- version('4.1.0', sha256='8f6e4ab393d81d72caae6e78bd0fd6956117ec9f006fba55fcdb88caf62989b7')
- version('4.0.1-openvino', sha256='8cbe32d12a70decad7a8327eb4fba46016a9c47ff3ba6e114d27b450f020716f')
- version('4.0.1', sha256='7b86a0ee804244e0c407321f895b15e4a7162e9c5c0d2efc85f1cadec4011af4')
- version('4.0.0-openvino', sha256='aa910078ed0b7e17bd10067e04995c131584a6ed6d0dcc9ca44a292aa8e296fc')
- version('4.0.0', sha256='3787b3cc7b21bba1441819cb00c636911a846c0392ddf6211d398040a1e4886c')
- version('3.4.6', sha256='e7d311ff97f376b8ee85112e2b536dbf4bdf1233673500175ed7cf21a0089f6d')
- version('3.4.5', sha256='0c57d9dd6d30cbffe68a09b03f4bebe773ee44dc8ff5cd6eaeb7f4d5ef3b428e')
- version('3.4.4', sha256='a35b00a71d77b484f73ec485c65fe56c7a6fa48acd5ce55c197aef2e13c78746')
+ version('4.5.2', sha256='ae258ed50aa039279c3d36afdea5c6ecf762515836b27871a8957c610d0424f8')
+ version('4.5.1', sha256='e27fe5b168918ab60d58d7ace2bd82dd14a4d0bd1d3ae182952c2113f5637513')
+ version('4.5.0', sha256='dde4bf8d6639a5d3fe34d5515eab4a15669ded609a1d622350c7ff20dace1907')
+ version('4.2.0', sha256='9ccb2192d7e8c03c58fee07051364d94ed7599363f3b0dce1c5e6cc11c1bb0ec')
+ version('4.1.2', sha256='385dd0a9c25e67ef0dd60e022d2a2d7b17e2f36819cf3cb46aa8cdff5c5282c9')
+ version('4.1.1', sha256='5de5d96bdfb9dad6e6061d70f47a0a91cee96bb35afb9afb9ecb3d43e243d217')
+ version('4.1.0', sha256='8f6e4ab393d81d72caae6e78bd0fd6956117ec9f006fba55fcdb88caf62989b7')
+ version('4.0.1', sha256='7b86a0ee804244e0c407321f895b15e4a7162e9c5c0d2efc85f1cadec4011af4')
+ version('4.0.0', sha256='3787b3cc7b21bba1441819cb00c636911a846c0392ddf6211d398040a1e4886c')
+ version('3.4.12', sha256='c8919dfb5ead6be67534bf794cb0925534311f1cd5c6680f8164ad1813c88d13')
+ version('3.4.6', sha256='e7d311ff97f376b8ee85112e2b536dbf4bdf1233673500175ed7cf21a0089f6d')
+ version('3.4.5', sha256='0c57d9dd6d30cbffe68a09b03f4bebe773ee44dc8ff5cd6eaeb7f4d5ef3b428e')
+ version('3.4.4', sha256='a35b00a71d77b484f73ec485c65fe56c7a6fa48acd5ce55c197aef2e13c78746')
version('3.4.3', sha256='4eef85759d5450b183459ff216b4c0fa43e87a4f6aa92c8af649f89336f002ec')
version('3.4.1', sha256='f1b87684d75496a1054405ae3ee0b6573acaf3dad39eaf4f1d66fdd7e03dc852')
version('3.4.0', sha256='678cc3d2d1b3464b512b084a8cca1fad7de207c7abdf2caa1fed636c13e916da')
version('3.3.1', sha256='5dca3bb0d661af311e25a72b04a7e4c22c47c1aa86eb73e70063cd378a2aa6ee')
version('3.3.0', sha256='8bb312b9d9fd17336dc1f8b3ac82f021ca50e2034afc866098866176d985adc6')
- version('3.2.0', sha256='9541efbf68f298f45914b4e837490647f4d5e472b4c0c04414a787d116a702b2')
- version('3.1.0', sha256='f3b160b9213dd17aa15ddd45f6fb06017fe205359dbd1f7219aad59c98899f15')
- version('2.4.13.2', sha256='4b00c110e6c54943cbbb7cf0d35c5bc148133ab2095ee4aaa0ac0a4f67c58080')
- version('2.4.13.1', sha256='0d5ce5e0973e3a745f927d1ee097aaf909aae59f787be6d27a03d639e2d96bd7')
- version('2.4.13', sha256='94ebcca61c30034d5fb16feab8ec12c8a868f5162d20a9f0396f0f5f6d8bbbff')
- version('2.4.12.3', sha256='a4cbcd2d470860b0cf1f8faf504619c18a8ac38fd414c5a88ed3e94c963aa750')
- version('2.4.12.2', sha256='150a165eb14a5ea74fb94dcc16ac7d668a6ff20a4449df2570734a2abaab9c0e')
- version('2.4.12.1', sha256='c1564771f79304a2597ae4f74f44032021e3a46657e4a117060c08f5ed05ad83')
-
- # Standard variants
+ version('3.2.0', sha256='9541efbf68f298f45914b4e837490647f4d5e472b4c0c04414a787d116a702b2', deprecated=True)
+ version('3.1.0', sha256='f3b160b9213dd17aa15ddd45f6fb06017fe205359dbd1f7219aad59c98899f15', deprecated=True)
+ version('2.4.13.2', sha256='4b00c110e6c54943cbbb7cf0d35c5bc148133ab2095ee4aaa0ac0a4f67c58080', deprecated=True)
+ version('2.4.13.1', sha256='0d5ce5e0973e3a745f927d1ee097aaf909aae59f787be6d27a03d639e2d96bd7', deprecated=True)
+ version('2.4.13', sha256='94ebcca61c30034d5fb16feab8ec12c8a868f5162d20a9f0396f0f5f6d8bbbff', deprecated=True)
+ version('2.4.12.3', sha256='a4cbcd2d470860b0cf1f8faf504619c18a8ac38fd414c5a88ed3e94c963aa750', deprecated=True)
+ version('2.4.12.2', sha256='150a165eb14a5ea74fb94dcc16ac7d668a6ff20a4449df2570734a2abaab9c0e', deprecated=True)
+ version('2.4.12.1', sha256='c1564771f79304a2597ae4f74f44032021e3a46657e4a117060c08f5ed05ad83', deprecated=True)
+
+ # OpenCV modules (variants)
+ # Defined in `modules/*/CMakeLists.txt` using
+ # `ocv_add_module(...)` and `ocv_define_module(...)`
+ modules = [
+ 'apps', 'calib3d', 'core', 'dnn', 'features2d', 'flann', 'gapi', 'highgui',
+ 'imgcodecs', 'imgproc', 'java', 'java_bindings_generator', 'js',
+ 'js_bindings_generator', 'ml', 'objc', 'objc_bindings_generator', 'objdetect',
+ 'photo', 'python2', 'python3', 'python_bindings_generator', 'python_tests',
+ 'stitching', 'ts', 'video', 'videoio', 'world'
+ ]
+
+ for mod in modules:
+ # At least one of these modules must be enabled to build OpenCV
+ variant(mod, default=mod == 'core',
+ description='Include opencv_{0} module'.format(mod))
+
+ # Optional 3rd party components (variants)
+ # Defined in `CMakeLists.txt` and `modules/gapi/cmake/init.cmake`
+ # using `OCV_OPTION(WITH_* ...)`
+ components = [
+ '1394', 'ade', 'android_mediandk', 'android_native_camera', 'aravis',
+ 'avfoundation', 'cap_ios', 'carotene', 'clp', 'cpufeatures', 'cublas', 'cuda',
+ 'cudnn', 'cufft', 'directx', 'dshow', 'eigen', 'ffmpeg', 'freetype', 'gdal',
+ 'gdcm', 'gphoto2', 'gstreamer', 'gtk', 'gtk_2_x', 'halide', 'hpx',
+ 'imgcodec_hdr', 'imgcode_pfm', 'imgcodec_pxm', 'imgcodec_sunraster',
+ 'inf_engine', 'ipp', 'itt', 'jasper', 'jpeg', 'lapack', 'librealsense', 'mfx',
+ 'msmf', 'msmf_dxva', 'ngraph', 'nvcuvid', 'onnx', 'opencl', 'openclamdblas',
+ 'openclamdfft', 'opencl_d3d11_nv', 'opencl_svm', 'openexr', 'opengl',
+ 'openjpeg', 'openmp', 'openni', 'openni2', 'openvx', 'plaidml', 'png',
+ 'protobuf', 'pthreads_pf', 'pvapi', 'qt', 'quirc', 'tbb', 'tengine', 'tiff',
+ 'ueye', 'v4l', 'va', 'va_intel', 'vtk', 'vulcan', 'webp', 'win32ui', 'ximea',
+ 'xine'
+ ]
+
+ for component in components:
+ variant(component, default=False,
+ description='Include {0} support'.format(component))
+
+ # Other (variants)
variant('shared', default=True,
description='Enables the build of shared libraries')
- variant('lapack', default=True, description='Include Lapack library support')
variant('powerpc', default=False, description='Enable PowerPC for GCC')
- variant('vsx', default=False, description='Enable POWER8 and above VSX (64-bit little-endian)')
variant('fast-math', default=False,
description='Enable -ffast-math (not recommended for GCC 4.6.x)')
-
- # OpenCV modules
- variant('calib3d', default=True, description='calib3d module')
- variant('core', default=True, description='Include opencv_core module into the OpenCV build')
- variant('cudacodec', default=False, description='Enable video encoding/decoding with CUDA')
- variant('dnn', default=True, description='Build DNN support')
- variant('features2d', default=True, description='features2d module')
- variant('flann', default=True, description='flann module')
- variant('highgui', default=True, description='Include opencv_highgui module into the OpenCV build')
- variant('imgproc', default=True, description='Include opencv_imgproc module into the OpenCV build')
- variant('java', default=True,
- description='Activates support for Java')
- variant('ml', default=True, description='Build ML support')
- variant('python', default=True,
- description='Enables the build of Python extensions')
- variant('stitching', default=True, description='stitching module')
- variant('superres', default=True, description='superres module')
- variant('ts', default=True, description='Include opencv_ts module into the OpenCV build')
- variant('video', default=True, description='video module')
- variant('videostab', default=True, description='videostab module')
- variant('videoio', default=True, description='videoio module')
-
- # Optional 3rd party components
- variant('eigen', default=True, description='Activates support for eigen')
- variant('ipp', default=True, description='Activates support for IPP')
- variant('ipp_iw', default=True, description='Build IPP IW from source')
- variant('jasper', default=True, description='Activates support for JasPer')
- variant('jpeg', default=True, description='Include JPEG support')
- variant('opencl', default=True, description='Include OpenCL Runtime support')
- variant('opencl_svm', default=True, description='Include OpenCL Shared Virtual Memory support')
- variant('openclamdfft', default=True, description='Include OpenCL AMD OpenCL FFT library support')
- variant('openclamdblas', default=True, description='Include OpenCL AMD OpenCL BLAS library support')
- variant('openmp', default=True, description='Activates support for OpenMP threads')
- variant('pthreads_pf', default=True, description='Use pthreads-based parallel_for')
- variant('png', default=True, description='Include PNG support')
- variant('qt', default=False, description='Activates support for QT')
- variant('gtk', default=True, description='Activates support for GTK')
- variant('tiff', default=True, description='Include TIFF support')
- variant('vtk', default=True, description='Activates support for VTK')
- variant('zlib', default=True, description='Build zlib from source')
+ variant('nonfree', default=False, description='Enable non-free algorithms')
variant('contrib', default=False, description='Adds in code from opencv_contrib.')
- contrib_vers = ['4.1.0', '4.1.1', '4.2.0']
+ contrib_vers = [
+ '3.1.0', '3.2.0', '3.3.0', '3.3.1', '3.4.0', '3.4.1', '3.4.3', '3.4.4',
+ '3.4.5', '3.4.6', '3.4.12', '4.0.0', '4.0.1', '4.1.0', '4.1.1',
+ '4.1.2', '4.2.0', '4.5.0', '4.5.1', '4.5.2'
+ ]
for cv in contrib_vers:
resource(name="contrib",
git='https://github.com/opencv/opencv_contrib.git',
tag="{0}".format(cv),
when='@{0}+contrib'.format(cv))
- resource(name="contrib",
- git='https://github.com/opencv/opencv_contrib.git',
- tag="{0}".format(cv),
- when='@{0}+cuda'.format(cv))
- depends_on('hdf5', when='+contrib')
- depends_on('hdf5', when='+cuda')
- depends_on('blas', when='+lapack')
+ # Required (dependencies)
+ depends_on('cmake@3.5.1:', type='build')
+ depends_on('python@2.7:2.8,3.2:', type='build')
+ depends_on('zlib@1.2.3:')
- # Patch to fix conflict between CUDA and OpenCV (reproduced with 3.3.0
- # and 3.4.1) header file that have the same name.Problem is fixed in
- # the current development branch of OpenCV. See #8461 for more information.
- patch('dnn_cuda.patch', when='@3.3.0:3.4.1+cuda+dnn')
-
- patch('opencv3.2_cmake.patch', when='@3.2')
- patch('opencv3.2_vtk.patch', when='@3.2+vtk')
- patch('opencv3.2_regacyvtk.patch', when='@3.2+vtk')
- patch('opencv3.2_ffmpeg.patch', when='@3.2+videoio')
- patch('opencv3.2_python3.7.patch', when='@3.2+python')
- patch('opencv3.2_fj.patch', when='@3.2 %fj')
+ # OpenCV modules (dependencies)
+ depends_on('java', when='+java_bindings_generator')
+ depends_on('ant', when='+java_bindings_generator', type='build')
+ extends('python', when='+python2')
+ depends_on('python@2.7:2.8', when='+python2', type=('build', 'link', 'run'))
+ depends_on('py-setuptools', when='+python2', type='build')
+ depends_on('py-numpy', when='+python2', type=('build', 'run'))
+ extends('python', when='+python3')
+ depends_on('python@3.2:', when='+python3', type=('build', 'link', 'run'))
+ depends_on('py-setuptools', when='+python3', type='build')
+ depends_on('py-numpy', when='+python3', type=('build', 'run'))
+ depends_on('ffmpeg', when='+videoio')
+ depends_on('mpi', when='+videoio')
+ # Optional 3rd party components (dependencies)
+ depends_on('clp', when='+clp')
+ depends_on('cuda@6.5:', when='+cuda')
+ depends_on('cuda@:10.2', when='@4.0:4.2+cuda')
+ depends_on('cuda@:9.0', when='@3.3.1:3.4+cuda')
+ depends_on('cuda@:8', when='@:3.3.0+cuda')
+ depends_on('cudnn', when='+cudnn')
+ depends_on('cudnn@:7.6', when='@4.0:4.2+cudnn')
+ depends_on('cudnn@:7.3', when='@3.3.1:3.4+cudnn')
+ depends_on('cudnn@:6', when='@:3.3.0+cudnn')
depends_on('eigen', when='+eigen')
- depends_on('zlib', when='+zlib')
- depends_on('libpng', when='+png')
+ depends_on('ffmpeg', when='+ffmpeg')
+ depends_on('freetype', when='+freetype')
+ depends_on('gdal', when='+gdal')
+ depends_on('gtkplus', when='+gtk')
+ depends_on('gtkplus@:2', when='+gtk_2_x')
+ depends_on('hpx', when='+hpx')
+ depends_on('ipp', when='+ipp')
+ depends_on('jasper', when='+jasper')
depends_on('jpeg', when='+jpeg')
+ depends_on('lapack', when='+lapack')
+ depends_on('onnx', when='+onnx')
+ depends_on('opencl', when='+opencl')
+ depends_on('openexr', when='+openexr')
+ depends_on('gl', when='+opengl')
+ depends_on('openjpeg@2:', when='+openjpeg')
+ depends_on('libpng', when='+png')
+ depends_on('protobuf@3.5.0:', when='@3.4.1: +protobuf')
+ depends_on('protobuf@3.1.0', when='@3.3.0:3.4.0 +protobuf')
+ depends_on('qt', when='+qt')
+ depends_on('tbb', when='+tbb')
depends_on('libtiff', when='+tiff')
-
- depends_on('jasper', when='+jasper')
- depends_on('cuda', when='+cuda')
- depends_on('gtkplus', when='+gtk')
depends_on('vtk', when='+vtk')
- depends_on('qt', when='+qt')
- depends_on('java', when='+java')
- depends_on('ant', when='+java', type='build')
- depends_on('py-numpy', when='+python', type=('build', 'run'))
- depends_on('protobuf@3.5.0:', when='@3.4.1: +dnn')
- depends_on('protobuf@3.1.0', when='@3.3.0:3.4.0 +dnn')
+ depends_on('libwebp', when='+webp')
- depends_on('ffmpeg', when='+videoio')
- depends_on('mpi', when='+videoio')
+ # Other (dependencies)
+ depends_on('hdf5', when='+contrib')
+
+ # OpenCV modules (conflicts)
+ # Defined in `apps/*/CMakeLists.txt` using `ocv_add_application(...)`
+ # Different apps require different modules, but no way to control which apps
+ # are installed. If +apps is requested, make sure all apps can be built.
+ conflicts('+apps', when='~calib3d')
+ conflicts('+apps', when='~core')
+ conflicts('+apps', when='~dnn')
+ conflicts('+apps', when='~features2d')
+ conflicts('+apps', when='~highgui')
+ conflicts('+apps', when='~imgcodecs')
+ conflicts('+apps', when='~imgproc')
+ conflicts('+apps', when='~objdetect')
+ conflicts('+apps', when='~videoio')
+ # Defined in `modules/*/CMakeLists.txt` using
+ # `ocv_add_module(...)` and `ocv_define_module(...)`
+ # If these required dependencies aren't found, CMake will silently
+ # disable the requested module
+ conflicts('+calib3d', when='~features2d')
+ conflicts('+calib3d', when='~flann')
+ conflicts('+calib3d', when='~imgproc')
+ conflicts('+dnn', when='~core')
+ conflicts('+dnn', when='~imgproc')
+ conflicts('+features2d', when='~imgproc')
+ conflicts('+flann', when='~core')
+ conflicts('+gapi', when='~imgproc')
+ conflicts('+highgui', when='~imgcodecs')
+ conflicts('+highgui', when='~imgproc')
+ conflicts('+imgcodecs', when='~imgproc')
+ conflicts('+imgproc', when='~core')
+ conflicts('+java', when='~core')
+ conflicts('+java', when='~imgproc')
+ conflicts('+java', when='~java_bindings_generator')
+ conflicts('+js', when='~js_bindings_generator')
+ conflicts('+ml', when='~core')
+ conflicts('+objc', when='~core')
+ conflicts('+objc', when='~imgproc')
+ conflicts('+objc', when='~objc_bindings_generator')
+ conflicts('+objc_bindings_generator', when='~core')
+ conflicts('+objc_bindings_generator', when='~imgproc')
+ conflicts('+objdetect', when='~calib3d')
+ conflicts('+objdetect', when='~core')
+ conflicts('+objdetect', when='~imgproc')
+ conflicts('+photo', when='~imgproc')
+ conflicts('+python2', when='~python_bindings_generator')
+ conflicts('+python2', when='+python3')
+ conflicts('+python3', when='~python_bindings_generator')
+ conflicts('+python3', when='+python2')
+ conflicts('+stitching', when='~calib3d')
+ conflicts('+stitching', when='~features2d')
+ conflicts('+stitching', when='~flann')
+ conflicts('+stitching', when='~imgproc')
+ conflicts('+ts', when='~core')
+ conflicts('+ts', when='~highgui')
+ conflicts('+ts', when='~imgcodecs')
+ conflicts('+ts', when='~imgproc')
+ conflicts('+ts', when='~videoio')
+ conflicts('+video', when='~imgproc')
+ conflicts('+videoio', when='~imgcodecs')
+ conflicts('+videoio', when='~imgproc')
+ conflicts('+world', when='~core')
+
+ # Optional 3rd party components (conflicts)
+ # Defined in `CMakeLists.txt` and `modules/gapi/cmake/init.cmake`
+ # using `OCV_OPTION(WITH_* ...)`
+ conflicts('+ade', when='~gapi')
+ conflicts('+android_mediandk', when='platform=darwin', msg='Android only')
+ conflicts('+android_mediandk', when='platform=linux', msg='Android only')
+ conflicts('+android_mediandk', when='platform=cray', msg='Android only')
+ conflicts('+android_native_camera', when='platform=darwin', msg='Android only')
+ conflicts('+android_native_camera', when='platform=linux', msg='Android only')
+ conflicts('+android_native_camera', when='platform=cray', msg='Android only')
+ conflicts('+avfoundation', when='platform=linux', msg='iOS/macOS only')
+ conflicts('+avfoundation', when='platform=cray', msg='iOS/macOS only')
+ conflicts('+cap_ios', when='platform=darwin', msg='iOS only')
+ conflicts('+cap_ios', when='platform=linux', msg='iOS only')
+ conflicts('+cap_ios', when='platform=cray', msg='iOS only')
+ conflicts('+carotene', when='target=x86:', msg='ARM/AARCH64 only')
+ conflicts('+carotene', when='target=x86_64:', msg='ARM/AARCH64 only')
+ conflicts('+cpufeatures', when='platform=darwin', msg='Android only')
+ conflicts('+cpufeatures', when='platform=linux', msg='Android only')
+ conflicts('+cpufeatures', when='platform=cray', msg='Android only')
+ conflicts('+cublas', when='~cuda')
+ conflicts('+cudnn', when='~cuda')
+ conflicts('+cufft', when='~cuda')
+ conflicts('+directx', when='platform=darwin', msg='Windows only')
+ conflicts('+directx', when='platform=linux', msg='Windows only')
+ conflicts('+directx', when='platform=cray', msg='Windows only')
+ conflicts('+dshow', when='platform=darwin', msg='Windows only')
+ conflicts('+dshow', when='platform=linux', msg='Windows only')
+ conflicts('+dshow', when='platform=cray', msg='Windows only')
+ conflicts('+freetype', when='~gapi')
+ conflicts('+gtk', when='platform=darwin', msg='Linux only')
+ conflicts('+gtk_2_x', when='platform=darwin', msg='Linux only')
+ conflicts('+ipp', when='target=aarch64:', msg='x86 or x86_64 only')
+ conflicts('+msmf', when='platform=darwin', msg='Windows only')
+ conflicts('+msmf', when='platform=linux', msg='Windows only')
+ conflicts('+msmf', when='platform=cray', msg='Windows only')
+ conflicts('+msmf_dxva', when='platform=darwin', msg='Windows only')
+ conflicts('+msmf_dxva', when='platform=linux', msg='Windows only')
+ conflicts('+msmf_dxva', when='platform=cray', msg='Windows only')
+ conflicts('+nvcuvid', when='~cuda')
+ conflicts('+opencl_d3d11_nv', when='platform=darwin', msg='Windows only')
+ conflicts('+opencl_d3d11_nv', when='platform=linux', msg='Windows only')
+ conflicts('+opencl_d3d11_nv', when='platform=cray', msg='Windows only')
+ conflicts('+plaidml', when='~gapi')
+ conflicts('+tengine', when='platform=darwin', msg='Linux only')
+ conflicts('+tengine', when='target=x86:', msg='ARM/AARCH64 only')
+ conflicts('+tengine', when='target=x86_64:', msg='ARM/AARCH64 only')
+ conflicts('+ueye', when='platform=darwin', msg='Linux only')
+ conflicts('+v4l', when='platform=darwin', msg='Linux only')
+ conflicts('+va', when='platform=darwin', msg='Linux only')
+ conflicts('+va_intel', when='platform=darwin', msg='Linux only')
+ conflicts('+win32ui', when='platform=darwin', msg='Windows only')
+ conflicts('+win32ui', when='platform=linux', msg='Windows only')
+ conflicts('+win32ui', when='platform=cray', msg='Windows only')
+ conflicts('+xine', when='platform=darwin', msg='Linux only')
- # TODO For Cuda >= 10, make sure 'dynlink_nvcuvid.h' or 'nvcuvid.h'
- # exists, otherwise build will fail
- # See https://github.com/opencv/opencv_contrib/issues/1786
- conflicts('^cuda@10:', when='+cudacodec')
- conflicts('^cuda', when='~contrib', msg='cuda support requires +contrib')
+ # Other (conflicts)
+ conflicts('+cuda', when='~contrib', msg='cuda support requires +contrib')
- # IPP is provided x86_64 only
- conflicts('+ipp', when="arch=aarch64:")
+ # Patch to fix conflict between CUDA and OpenCV (reproduced with 3.3.0
+ # and 3.4.1) header file that have the same name. Problem is fixed in
+ # the current development branch of OpenCV. See #8461 for more information.
+ patch('dnn_cuda.patch', when='@3.3.0:3.4.1+cuda+dnn')
- extends('python', when='+python')
+ patch('opencv3.2_cmake.patch', when='@3.2:3.4.1')
+ patch('opencv3.2_compiler_cmake.patch', when='@3.2')
+ patch('opencv3.2_vtk.patch', when='@3.2+vtk')
+ patch('opencv3.2_regacyvtk.patch', when='@3.2+vtk')
+ patch('opencv3.2_ffmpeg.patch', when='@3.2+videoio')
+ patch('opencv3.2_python3.7.patch', when='@3.2+python3')
+ patch('opencv3.2_fj.patch', when='@3.2 %fj')
def cmake_args(self):
spec = self.spec
+ args = []
- # Standard variants
- args = [
- '-DBUILD_SHARED_LIBS:BOOL={0}'.format((
- 'ON' if '+shared' in spec else 'OFF')),
- '-DENABLE_PRECOMPILED_HEADERS:BOOL=OFF',
- '-DWITH_LAPACK={0}'.format((
- 'ON' if '+lapack' in spec else 'OFF')),
- '-DENABLE_POWERPC={0}'.format((
- 'ON' if '+powerpc' in spec else 'OFF')),
- '-DENABLE_VSX={0}'.format((
- 'ON' if '+vsx' in spec else 'OFF')),
- '-DENABLE_FAST_MATH={0}'.format((
- 'ON' if '+fast-math' in spec else 'OFF')),
- ]
-
- # modules
- args.extend([
- '-DBUILD_opencv_calib3d={0}'.format((
- 'ON' if '+calib3d' in spec else 'OFF')),
- '-DBUILD_opencv_core:BOOL={0}'.format((
- 'ON' if '+core' in spec else 'OFF')),
- '-DBUILD_opencv_cudacodec={0}'.format((
- 'ON' if '+cudacodec' in spec else 'OFF')),
- '-DBUILD_opencv_dnn:BOOL={0}'.format((
- 'ON' if '+dnn' in spec else 'OFF')),
- '-DBUILD_opencv_features2d={0}'.format((
- 'ON' if '+features2d' in spec else 'OFF')),
- '-DBUILD_opencv_flann={0}'.format((
- 'ON' if '+flann' in spec else 'OFF')),
- '-DBUILD_opencv_highgui:BOOL={0}'.format((
- 'ON' if '+highgui' in spec else 'OFF')),
- '-DBUILD_opencv_imgproc:BOOL={0}'.format((
- 'ON' if '+imgproc' in spec else 'OFF')),
- '-DBUILD_opencv_java:BOOL={0}'.format((
- 'ON' if '+java' in spec else 'OFF')),
- '-DBUILD_opencv_ml={0}'.format((
- 'ON' if '+ml' in spec else 'OFF')),
- '-DBUILD_opencv_stitching={0}'.format((
- 'ON' if '+stitching' in spec else 'OFF')),
- '-DBUILD_opencv_superres={0}'.format((
- 'ON' if '+superres' in spec else 'OFF')),
- '-DBUILD_opencv_ts={0}'.format((
- 'ON' if '+ts' in spec else 'OFF')),
- '-DBUILD_opencv_video={0}'.format((
- 'ON' if '+video' in spec else 'OFF')),
- '-DBUILD_opencv_videostab={0}'.format((
- 'ON' if '+videostab' in spec else 'OFF')),
- '-DBUILD_opencv_videoio={0}'.format((
- 'ON' if '+videoio' in spec else 'OFF')),
- ])
+ # OpenCV modules
+ for mod in self.modules:
+ args.append(self.define_from_variant('BUILD_opencv_' + mod, mod))
- # 3rd party components
+ # Optional 3rd party components
+ for component in self.components:
+ args.append(self.define_from_variant(
+ 'WITH_' + component.upper(), component))
+
+ # Other
args.extend([
- '-DBUILD_IPP_IW:BOOL={0}'.format((
- 'ON' if '+ipp_iw' in spec else 'OFF')),
- '-DWITH_CUDA:BOOL={0}'.format((
- 'ON' if '+cuda' in spec else 'OFF')),
- '-DWITH_EIGEN:BOOL={0}'.format((
- 'ON' if '+eigen' in spec else 'OFF')),
- '-DWITH_IPP:BOOL={0}'.format((
- 'ON' if '+ipp' in spec else 'OFF')),
- '-DWITH_JASPER:BOOL={0}'.format((
- 'ON' if '+jasper' in spec else 'OFF')),
- '-DWITH_JPEG:BOOL={0}'.format((
- 'ON' if '+jpeg' in spec else 'OFF')),
- '-DWITH_OPENCL:BOOL={0}'.format((
- 'ON' if '+opencl' in spec else 'OFF')),
- '-DWITH_OPENCL_SVM:BOOL={0}'.format((
- 'ON' if '+opencl_svm' in spec else 'OFF')),
- '-DWITH_OPENCLAMDFFT:BOOL={0}'.format((
- 'ON' if '+openclamdfft' in spec else 'OFF')),
- '-DWITH_OPENCLAMDBLAS:BOOL={0}'.format((
- 'ON' if '+openclamdblas' in spec else 'OFF')),
- '-DWITH_OPENMP:BOOL={0}'.format((
- 'ON' if '+openmp' in spec else 'OFF')),
- '-DWITH_PTHREADS_PF:BOOL={0}'.format((
- 'ON' if '+pthreads_pf' in spec else 'OFF')),
- '-DWITH_PNG:BOOL={0}'.format((
- 'ON' if '+png' in spec else 'OFF')),
- '-DWITH_QT:BOOL={0}'.format((
- 'ON' if '+qt' in spec else 'OFF')),
- '-DWITH_TIFF:BOOL={0}'.format((
- 'ON' if '+tiff' in spec else 'OFF')),
- '-DWITH_VTK:BOOL={0}'.format((
- 'ON' if '+vtk' in spec else 'OFF')),
- '-DWITH_PROTOBUF:BOOL={0}'.format((
- 'ON' if '@3.3.0: +dnn' in spec else 'OFF')),
- '-DBUILD_PROTOBUF:BOOL=OFF',
- '-DPROTOBUF_UPDATE_FILES={0}'.format('ON')
+ self.define('ENABLE_CONFIG_VERIFICATION', True),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define('ENABLE_PRECOMPILED_HEADERS', False),
+ self.define_from_variant('WITH_LAPACK', 'lapack'),
+ self.define_from_variant('ENABLE_POWERPC', 'powerpc'),
+ self.define_from_variant('ENABLE_FAST_MATH', 'fast-math'),
+ self.define_from_variant('OPENCV_ENABLE_NONFREE', 'nonfree'),
])
- if '+contrib' in spec or '+cuda' in spec:
- args.append('-DOPENCV_EXTRA_MODULES_PATH={0}'.format(
- join_path(self.stage.source_path, 'opencv_contrib/modules')))
+ if '+contrib' in spec:
+ args.append(self.define('OPENCV_EXTRA_MODULES_PATH', join_path(
+ self.stage.source_path, 'opencv_contrib/modules')))
if '+cuda' in spec:
if spec.variants['cuda_arch'].value[0] != 'none':
- cuda_arch = [x for x in spec.variants['cuda_arch'].value if x]
- args.append('-DCUDA_ARCH_BIN={0}'.format(
- ' '.join(cuda_arch)))
+ cuda_arch = spec.variants['cuda_arch'].value
+ args.append(self.define('CUDA_ARCH_BIN', ' '.join(cuda_arch)))
+
+ # TODO: this CMake flag is deprecated
+ if spec.target.family == 'ppc64le':
+ args.append(self.define('ENABLE_VSX', True))
# Media I/O
- if '+zlib' in spec:
- zlib = spec['zlib']
- args.extend([
- '-DZLIB_LIBRARY_{0}:FILEPATH={1}'.format((
- 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'),
- zlib.libs[0]),
- '-DZLIB_INCLUDE_DIR:PATH={0}'.format(
- zlib.headers.directories[0])
- ])
+ zlib = spec['zlib']
+ args.extend([
+ self.define('BUILD_ZLIB', False),
+ self.define('ZLIB_LIBRARY', zlib.libs[0]),
+ self.define('ZLIB_INCLUDE_DIR', zlib.headers.directories[0]),
+ ])
if '+png' in spec:
libpng = spec['libpng']
args.extend([
- '-DPNG_LIBRARY_{0}:FILEPATH={1}'.format((
- 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'),
- libpng.libs[0]),
- '-DPNG_INCLUDE_DIR:PATH={0}'.format(
- libpng.headers.directories[0])
+ self.define('BUILD_PNG', False),
+ self.define('PNG_LIBRARY', libpng.libs[0]),
+ self.define('PNG_INCLUDE_DIR', libpng.headers.directories[0])
])
if '+jpeg' in spec:
libjpeg = spec['jpeg']
args.extend([
- '-DBUILD_JPEG:BOOL=OFF',
- '-DJPEG_LIBRARY:FILEPATH={0}'.format(libjpeg.libs[0]),
- '-DJPEG_INCLUDE_DIR:PATH={0}'.format(
- libjpeg.headers.directories[0])
+ self.define('BUILD_JPEG', False),
+ self.define('JPEG_LIBRARY', libjpeg.libs[0]),
+ self.define('JPEG_INCLUDE_DIR', libjpeg.headers.directories[0])
])
if '+tiff' in spec:
libtiff = spec['libtiff']
args.extend([
- '-DTIFF_LIBRARY_{0}:FILEPATH={1}'.format((
- 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'),
- libtiff.libs[0]),
- '-DTIFF_INCLUDE_DIR:PATH={0}'.format(
- libtiff.headers.directories[0])
+ self.define('BUILD_TIFF', False),
+ self.define('TIFF_LIBRARY', libtiff.libs[0]),
+ self.define('TIFF_INCLUDE_DIR', libtiff.headers.directories[0])
])
if '+jasper' in spec:
jasper = spec['jasper']
args.extend([
- '-DJASPER_LIBRARY_{0}:FILEPATH={1}'.format((
- 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'),
- jasper.libs[0]),
- '-DJASPER_INCLUDE_DIR:PATH={0}'.format(
- jasper.headers.directories[0])
+ self.define('BUILD_JASPER', False),
+ self.define('JASPER_LIBRARY', jasper.libs[0]),
+ self.define('JASPER_INCLUDE_DIR', jasper.headers.directories[0])
])
- # GUI
- if '+gtk' not in spec:
- args.extend([
- '-DWITH_GTK:BOOL=OFF',
- '-DWITH_GTK_2_X:BOOL=OFF'
- ])
- elif '^gtkplus@3:' in spec:
+ # Python
+ python_exe = spec['python'].command.path
+ python_lib = spec['python'].libs[0]
+ python_include_dir = spec['python'].headers.directories[0]
+
+ if '+python2' in spec:
args.extend([
- '-DWITH_GTK:BOOL=ON',
- '-DWITH_GTK_2_X:BOOL=OFF'
+ self.define('PYTHON2_EXECUTABLE', python_exe),
+ self.define('PYTHON2_LIBRARY', python_lib),
+ self.define('PYTHON2_INCLUDE_DIR', python_include_dir),
+ self.define('PYTHON3_EXECUTABLE', '')
])
- elif '^gtkplus@2:3' in spec:
+ elif '+python3' in spec:
args.extend([
- '-DWITH_GTK:BOOL=OFF',
- '-DWITH_GTK_2_X:BOOL=ON'
+ self.define('PYTHON3_EXECUTABLE', python_exe),
+ self.define('PYTHON3_LIBRARY', python_lib),
+ self.define('PYTHON3_INCLUDE_DIR', python_include_dir),
+ self.define('PYTHON2_EXECUTABLE', '')
])
-
- # Python
- if '+python' in spec:
- python_exe = spec['python'].command.path
- python_lib = spec['python'].libs[0]
- python_include_dir = spec['python'].headers.directories[0]
-
- if '^python@3:' in spec:
- args.extend([
- '-DBUILD_opencv_python3=ON',
- '-DPYTHON3_EXECUTABLE={0}'.format(python_exe),
- '-DPYTHON3_LIBRARY={0}'.format(python_lib),
- '-DPYTHON3_INCLUDE_DIR={0}'.format(python_include_dir),
- '-DBUILD_opencv_python2=OFF',
- ])
- elif '^python@2:3' in spec:
- args.extend([
- '-DBUILD_opencv_python2=ON',
- '-DPYTHON2_EXECUTABLE={0}'.format(python_exe),
- '-DPYTHON2_LIBRARY={0}'.format(python_lib),
- '-DPYTHON2_INCLUDE_DIR={0}'.format(python_include_dir),
- '-DBUILD_opencv_python3=OFF',
- ])
else:
args.extend([
- '-DBUILD_opencv_python2=OFF',
- '-DBUILD_opencv_python3=OFF'
+ self.define('PYTHON2_EXECUTABLE', ''),
+ self.define('PYTHON3_EXECUTABLE', ''),
])
return args
@property
def libs(self):
- shared = "+shared" in self.spec
+ shared = '+shared' in self.spec
return find_libraries(
- "libopencv_*", root=self.prefix, shared=shared, recursive=True
+ 'libopencv_*', root=self.prefix, shared=shared, recursive=True
)
diff --git a/var/spack/repos/builtin/packages/opendx/package.py b/var/spack/repos/builtin/packages/opendx/package.py
index 2cf5a9e5e3..f731c24246 100644
--- a/var/spack/repos/builtin/packages/opendx/package.py
+++ b/var/spack/repos/builtin/packages/opendx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/openexr/package.py b/var/spack/repos/builtin/packages/openexr/package.py
index 9663fd9ab7..2eb651fe25 100644
--- a/var/spack/repos/builtin/packages/openexr/package.py
+++ b/var/spack/repos/builtin/packages/openexr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,10 +6,10 @@
from spack import *
-class Openexr(Package):
+class Openexr(AutotoolsPackage):
"""OpenEXR Graphics Tools (high dynamic-range image file format)"""
- homepage = "http://www.openexr.com/"
+ homepage = "https://www.openexr.com/"
url = "https://github.com/openexr/openexr/releases/download/v2.3.0/openexr-2.3.0.tar.gz"
# New versions should come from github now
@@ -39,9 +39,9 @@ class Openexr(Package):
depends_on('ilmbase')
depends_on('zlib', type=('build', 'link'))
- def install(self, spec, prefix):
- configure_options = ['--prefix={0}'.format(prefix)]
- if '+debug' not in spec:
- configure_options.append('--disable-debug')
- configure(*configure_options)
- make('install')
+ def configure_args(self):
+ configure_options = []
+
+ configure_options += self.enable_or_disable('debug')
+
+ return configure_options
diff --git a/var/spack/repos/builtin/packages/openfast/package.py b/var/spack/repos/builtin/packages/openfast/package.py
index 70e49a8c4f..bdd7d7b6d6 100644
--- a/var/spack/repos/builtin/packages/openfast/package.py
+++ b/var/spack/repos/builtin/packages/openfast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,21 @@ from spack import *
class Openfast(CMakePackage):
"""Wind turbine simulation package from NREL"""
- homepage = "http://openfast.readthedocs.io/en/latest/"
+ homepage = "https://openfast.readthedocs.io/en/latest/"
git = "https://github.com/OpenFAST/openfast.git"
maintainers = ['jrood-nrel']
version('develop', branch='dev')
- version('master', branch='master')
+ version('master', branch='main')
+ version('2.6.0', tag='v2.6.0')
+ version('2.5.0', tag='v2.5.0')
+ version('2.4.0', tag='v2.4.0')
+ version('2.3.0', tag='v2.3.0')
+ version('2.2.0', tag='v2.2.0')
+ version('2.1.0', tag='v2.1.0')
+ version('2.0.0', tag='v2.0.0')
+ version('1.0.0', tag='v1.0.0')
variant('shared', default=True,
description="Build shared libraries")
@@ -47,16 +55,11 @@ class Openfast(CMakePackage):
options.extend([
'-DBUILD_DOCUMENTATION:BOOL=OFF',
'-DBUILD_TESTING:BOOL=OFF',
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
- '-DDOUBLE_PRECISION:BOOL=%s' % (
- 'ON' if '+double-precision' in spec else 'OFF'),
- '-DUSE_DLL_INTERFACE:BOOL=%s' % (
- 'ON' if '+dll-interface' in spec else 'OFF'),
- '-DBUILD_OPENFAST_CPP_API:BOOL=%s' % (
- 'ON' if '+cxx' in spec else 'OFF'),
- '-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=%s' % (
- 'ON' if '+pic' in spec else 'OFF'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('DOUBLE_PRECISION', 'double-precision'),
+ self.define_from_variant('USE_DLL_INTERFACE', 'dll-interface'),
+ self.define_from_variant('BUILD_OPENFAST_CPP_API', 'cxx'),
+ self.define_from_variant('CMAKE_POSITION_INDEPENDENT_CODE', 'pic'),
])
# Make sure we use Spack's blas/lapack:
diff --git a/var/spack/repos/builtin/packages/openfdtd/package.py b/var/spack/repos/builtin/packages/openfdtd/package.py
index 5af480448f..71f2f44755 100644
--- a/var/spack/repos/builtin/packages/openfdtd/package.py
+++ b/var/spack/repos/builtin/packages/openfdtd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,9 @@ class Openfdtd(MakefilePackage):
homepage = "http://www.e-em.co.jp/OpenFDTD/"
url = "http://www.e-em.co.jp/OpenFDTD/OpenFDTD.zip"
- version('2.3.0', sha256='10ac70f2ed7160da87dd9222a5a17ca7b72365ee886235359afc48c4fb7b4be4')
+ version('2.6.0', sha256='92f7b92dc55ff6d8fc8c31eda77ca10fe25a5f54b002f2523a3d67f485d77e9f')
+ version('2.3.0', sha256='10ac70f2ed7160da87dd9222a5a17ca7b72365ee886235359afc48c4fb7b4be4',
+ url='http://www.e-em.co.jp/OpenFDTD/old/OpenFDTD_230.zip')
variant('mpi', default=False, description='Build with MPI Support')
diff --git a/var/spack/repos/builtin/packages/openfoam-org/isnan.patch b/var/spack/repos/builtin/packages/openfoam-org/isnan.patch
new file mode 100644
index 0000000000..b84876c5a7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openfoam-org/isnan.patch
@@ -0,0 +1,31 @@
+--- a/src/conversion/ensight/part/ensightPart.C 2021-01-07 15:37:26.650557806 +0100
++++ b/src/conversion/ensight/part/ensightPart.C 2021-01-07 15:38:04.148140312 +0100
+@@ -51,7 +51,7 @@
+ {
+ const label id = idList[i];
+
+- if (id >= field.size() || isnan(field[id]))
++ if (id >= field.size() || std::isnan(field[id]))
+ {
+ return false;
+ }
+--- a/src/conversion/ensight/part/ensightPartIO.C 2021-01-07 15:37:26.650557806 +0100
++++ b/src/conversion/ensight/part/ensightPartIO.C 2021-01-07 15:38:38.580675503 +0100
+@@ -63,7 +63,7 @@
+ {
+ forAll(idList, i)
+ {
+- if (idList[i] >= field.size() || isnan(field[idList[i]]))
++ if (idList[i] >= field.size() || std::isnan(field[idList[i]]))
+ {
+ os.writeUndef();
+ }
+@@ -80,7 +80,7 @@
+ // no idList => perNode
+ forAll(field, i)
+ {
+- if (isnan(field[i]))
++ if (std::isnan(field[i]))
+ {
+ os.writeUndef();
+ }
diff --git a/var/spack/repos/builtin/packages/openfoam-org/package.py b/var/spack/repos/builtin/packages/openfoam-org/package.py
index d9bd136b2e..57b458e6ff 100644
--- a/var/spack/repos/builtin/packages/openfoam-org/package.py
+++ b/var/spack/repos/builtin/packages/openfoam-org/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -36,17 +36,19 @@
#
##############################################################################
import glob
-import re
import os
+import re
import llnl.util.tty as tty
from spack import *
-from spack.pkg.builtin.openfoam import add_extra_files
-from spack.pkg.builtin.openfoam import write_environ
-from spack.pkg.builtin.openfoam import rewrite_environ_files
-from spack.pkg.builtin.openfoam import mplib_content
-from spack.pkg.builtin.openfoam import OpenfoamArch
+from spack.pkg.builtin.openfoam import (
+ OpenfoamArch,
+ add_extra_files,
+ mplib_content,
+ rewrite_environ_files,
+ write_environ,
+)
from spack.util.environment import EnvironmentModifications
@@ -59,7 +61,7 @@ class OpenfoamOrg(Package):
and owner of the OPENFOAM trademark.
"""
- homepage = "http://www.openfoam.org/"
+ homepage = "https://www.openfoam.org/"
baseurl = "https://github.com/OpenFOAM"
url = "https://github.com/OpenFOAM/OpenFOAM-4.x/archive/version-4.1.tar.gz"
git = "https://github.com/OpenFOAM/OpenFOAM-dev.git"
@@ -77,6 +79,8 @@ class OpenfoamOrg(Package):
url=baseurl + '/OpenFOAM-4.x/archive/version-4.1.tar.gz')
version('2.4.0', sha256='9529aa7441b64210c400c019dcb2e0410fcfd62a6f62d23b6c5994c4753c4465',
url=baseurl + '/OpenFOAM-2.4.x/archive/version-2.4.0.tar.gz')
+ version('2.3.1', sha256='2bbcf4d5932397c2087a9b6d7eeee6d2b1350c8ea4f455415f05e7cd94d9e5ba',
+ url='http://downloads.sourceforge.net/foam/OpenFOAM-2.3.1.tgz')
variant('int64', default=False,
description='Compile with 64-bit label')
@@ -109,7 +113,11 @@ class OpenfoamOrg(Package):
patch('50-etc.patch', when='@5.0:5.9')
patch('41-etc.patch', when='@4.1')
patch('41-site.patch', when='@4.1:')
- patch('240-etc.patch', when='@2.4.0')
+ patch('240-etc.patch', when='@:2.4.0')
+ patch('isnan.patch', when='@:2.4.0')
+ # Add support for SYSTEMMPI
+ patch('https://github.com/OpenFOAM/OpenFOAM-2.3.x/commit/ae9a670c99472787f3a5446ac2b522bf3519b796.patch',
+ sha256='6c4c535baca3ce64035d512265c4ce8effd39de7602c923c5e19985db68b632a', when='@:2.3.1')
# The openfoam architecture, compiler information etc
_foam_arch = None
diff --git a/var/spack/repos/builtin/packages/openfoam/package.py b/var/spack/repos/builtin/packages/openfoam/package.py
index de5f766f3c..f7b0e0663f 100644
--- a/var/spack/repos/builtin/packages/openfoam/package.py
+++ b/var/spack/repos/builtin/packages/openfoam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -41,13 +41,13 @@
#
##############################################################################
import glob
-import re
import os
+import re
-from spack import *
-from spack.util.environment import EnvironmentModifications
import llnl.util.tty as tty
+from spack import *
+from spack.util.environment import EnvironmentModifications
# Not the nice way of doing things, but is a start for refactoring
__all__ = [
@@ -257,7 +257,7 @@ class Openfoam(Package):
"""
maintainers = ['olesenm']
- homepage = "http://www.openfoam.com/"
+ homepage = "https://www.openfoam.com/"
url = "https://sourceforge.net/projects/openfoam/files/v1906/OpenFOAM-v1906.tgz"
git = "https://develop.openfoam.com/Development/openfoam.git"
list_url = "https://sourceforge.net/projects/openfoam/files/"
@@ -265,6 +265,9 @@ class Openfoam(Package):
version('develop', branch='develop', submodules='True')
version('master', branch='master', submodules='True')
+ version('2106', sha256='11e41e5b9a253ef592a8f6b79f6aded623b28308192d02cec1327078523b5a37')
+ version('2012_210414', sha256='5260aaa79f91aad58a3a305c1a12d0d48b10f12e37cd99a6fa561969b15ea09d')
+ version('2012', sha256='3d6e39e39e7ae61d321fbc6db6c3748e6e5e1c4886454207a7f1a7321469e65a')
version('2006_201012', sha256='9afb7eee072bfddcf7f3e58420c93463027db2394997ac4c3b87a8b07c707fb0')
version('2006', sha256='30c6376d6f403985fc2ab381d364522d1420dd58a42cb270d2ad86f8af227edc')
version('1912_200506', sha256='831a39ff56e268e88374d0a3922479fd80260683e141e51980242cc281484121')
@@ -313,9 +316,10 @@ class Openfoam(Package):
# conflicts('^openmpi~thread_multiple', when='@1712:')
depends_on('zlib')
- depends_on('fftw')
+ depends_on('fftw-api')
depends_on('boost')
- depends_on('cgal')
+ # OpenFOAM does not play nice with CGAL 5.X
+ depends_on('cgal@:4.99')
# The flex restriction is ONLY to deal with a spec resolution clash
# introduced by the restriction within scotch!
depends_on('flex@:2.6.1,2.6.4:')
@@ -404,10 +408,7 @@ class Openfoam(Package):
def setup_build_environment(self, env):
"""Sets the build environment (prior to unpacking the sources).
"""
- # Avoid the exception that occurs at runtime
- # when building with the Fujitsu compiler.
- if self.spec.satisfies('%fj'):
- env.set('FOAM_SIGFPE', 'false')
+ pass
def setup_run_environment(self, env):
"""Sets the run environment (post-installation).
@@ -548,17 +549,28 @@ class Openfoam(Package):
rcfile,
backup=False)
- @when('@1906: %fj')
+ def configure_trapFpe_off(self):
+ """Disable trapFpe handling.
+ Seems to be needed for several clang-derivatives.
+ """
+ # Set 'trapFpe 0' in etc/controlDict
+ controlDict = 'etc/controlDict'
+ if os.path.exists(controlDict):
+ filter_file(r'trapFpe\s+\d+\s*;', 'trapFpe 0;',
+ controlDict, backup=False)
+
+ @when('@1812: %fj')
@run_before('configure')
def make_fujitsu_rules(self):
"""Create Fujitsu rules (clang variant) unless supplied upstream.
- Implemented for 1906 and later (older rules are too messy to edit).
+ Implemented for 1812 and later (older rules are too messy to edit).
Already included after 1912.
"""
general_rules = 'wmake/rules/General'
arch_rules = 'wmake/rules/linuxARM64' # self.arch
src = arch_rules + 'Clang'
dst = arch_rules + 'Fujitsu' # self.compiler
+ self.configure_trapFpe_off() # LLVM may falsely trigger FPE
if os.path.exists(dst):
return
@@ -573,15 +585,22 @@ class Openfoam(Package):
tty.info('Add Fujitsu wmake rules')
copy_tree(src, dst)
- for cfg in ['c', 'c++', 'general']:
- rule = join_path(dst, cfg)
- filter_file('Clang', 'Fujitsu', rule, backup=False)
+ if self.spec.version >= Version('1906'):
+ for cfg in ['c', 'c++', 'general']:
+ rule = join_path(dst, cfg)
+ filter_file('Clang', 'Fujitsu', rule, backup=False)
+ else:
+ filter_file('clang', spack_cc, join_path(dst, 'c'),
+ backup=False, string=True)
+ filter_file('clang++', spack_cxx, join_path(dst, 'c++'),
+ backup=False, string=True)
src = join_path(general_rules, 'Clang')
dst = join_path(general_rules, 'Fujitsu') # self.compiler
copy_tree(src, dst)
- filter_file('clang', spack_cc, join_path(dst, 'c'),
- backup=False, string=True)
+ if self.spec.version >= Version('1906'):
+ filter_file('clang', spack_cc, join_path(dst, 'c'),
+ backup=False, string=True)
filter_file('clang++', spack_cxx, join_path(dst, 'c++'),
backup=False, string=True)
@@ -621,10 +640,10 @@ class Openfoam(Package):
pkglib(spec['cgal'], '${CGAL_ARCH_PATH}'))),
],
'FFTW': [
- ('FFTW_ARCH_PATH', spec['fftw'].prefix), # Absolute
+ ('FFTW_ARCH_PATH', spec['fftw-api'].prefix), # Absolute
('LD_LIBRARY_PATH',
foam_add_lib(
- pkglib(spec['fftw'], '${BOOST_ARCH_PATH}'))),
+ pkglib(spec['fftw-api'], '${BOOST_ARCH_PATH}'))),
],
# User-defined MPI
'mpi-user': [
@@ -847,7 +866,8 @@ class OpenfoamArch(object):
#: Map spack compiler names to OpenFOAM compiler names
# By default, simply capitalize the first letter
- compiler_mapping = {'intel': 'Icc', 'fj': 'Fujitsu'}
+ compiler_mapping = {'aocc': 'Amd', 'fj': 'Fujitsu',
+ 'intel': 'Icc', 'oneapi': 'Icx'}
def __init__(self, spec, **kwargs):
# Some user settings, to be adjusted manually or via variants
diff --git a/var/spack/repos/builtin/packages/openfst/package.py b/var/spack/repos/builtin/packages/openfst/package.py
index 8399c6fcb9..523950f435 100644
--- a/var/spack/repos/builtin/packages/openfst/package.py
+++ b/var/spack/repos/builtin/packages/openfst/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,9 @@ class Openfst(AutotoolsPackage):
url = "http://www.openfst.org/twiki/pub/FST/FstDownload/openfst-1.6.1.tar.gz"
list_url = "http://www.openfst.org/twiki/bin/view/FST/FstDownload"
+ version('1.8.1', sha256='24fb53b72bb687e3fa8ee96c72a31ff2920d99b980a0a8f61dda426fca6713f0')
version('1.7.9', sha256='9319aeb31d1e2950ae25449884e255cc2bc9dfaf987f601590763e61a10fbdde')
+ version('1.7.3', sha256='b8dc6b4ca0f964faaf046577e4ad86b1a6ef544e35eacc6a5f16237f38300a0d')
version('1.6.7', sha256='e21a486d827cde6a592c8e91721e4540ad01a5ae35a60423cf17be4d716017f7')
version('1.6.1', sha256='5245af8ebccb96208eec2dfe3b3a81143d3565a4d41220bff299287fb3333f7d')
version('1.6.0', sha256='c03467951631af3f74a6f33ffd50f04285bc4562f79127afd95785120379d293')
@@ -31,9 +33,14 @@ class Openfst(AutotoolsPackage):
version('1.4.0', sha256='eb557f37560438f03912b4e43335c4c9e72aa486d4f2046127131185eb88f17a')
conflicts('%intel@16:')
- conflicts('%gcc@6:', when='@:1.6.7')
+ conflicts('%gcc@6:', when='@:1.6.1')
variant('far', default=False, description="Enable FAR support")
+ variant('python', default=False, description="Enable python extension")
+
+ depends_on('python@3.6:', when='+python')
+
+ extends('python', when='+python')
# Patch openfst-1.4.1 for kaldi@c024e8
# See https://github.com/kaldi-asr/kaldi/blob/c024e8aa0a727bf76c91a318f76a1f8b0b59249e/tools/Makefile#L82-L88
@@ -41,10 +48,4 @@ class Openfst(AutotoolsPackage):
patch('openfst_gcc41up.patch', when='@1.4.1-patch')
def configure_args(self):
- args = []
- spec = self.spec
- if '+far' in spec:
- args.append('--enable-far')
- else:
- args.append('--disable-far')
- return args
+ return self.enable_or_disable('far') + self.enable_or_disable('python')
diff --git a/var/spack/repos/builtin/packages/opengl/package.py b/var/spack/repos/builtin/packages/opengl/package.py
index 8be03f2577..763e2281fb 100644
--- a/var/spack/repos/builtin/packages/opengl/package.py
+++ b/var/spack/repos/builtin/packages/opengl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -91,8 +91,5 @@ class Opengl(Package):
@property
def libs(self):
- for dir in ['lib64', 'lib']:
- libs = find_libraries('libGL', join_path(self.prefix, dir),
- shared=True, recursive=False)
- if libs:
- return libs
+ return find_libraries(
+ 'libGL', self.prefix, shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/openglu/package.py b/var/spack/repos/builtin/packages/openglu/package.py
index 77ddbce2b9..d929adacdb 100644
--- a/var/spack/repos/builtin/packages/openglu/package.py
+++ b/var/spack/repos/builtin/packages/openglu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -61,8 +61,5 @@ class Openglu(Package):
@property
def libs(self):
- for dir in ['lib64', 'lib']:
- libs = find_libraries('libGLU', join_path(self.prefix, dir),
- shared=True, recursive=False)
- if libs:
- return libs
+ return find_libraries(
+ 'libGLU', self.prefix, shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/openimageio/package.py b/var/spack/repos/builtin/packages/openimageio/package.py
index 6b01cdaa4d..91f7881a97 100644
--- a/var/spack/repos/builtin/packages/openimageio/package.py
+++ b/var/spack/repos/builtin/packages/openimageio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Openimageio(CMakePackage):
"""OpenImageIO is a library for reading and writing images, and a bunch of
related classes, utilities, and applications."""
- homepage = "http://www.openimageio.org"
+ homepage = "https://www.openimageio.org"
url = "https://github.com/OpenImageIO/oiio/archive/Release-1.8.15.tar.gz"
version('2.2.7.0', sha256='857ac83798d6d2bda5d4d11a90618ff19486da2e5a4c4ff022c5976b5746fe8c')
diff --git a/var/spack/repos/builtin/packages/openipmi/package.py b/var/spack/repos/builtin/packages/openipmi/package.py
index 894897e9e7..bd54726c5e 100644
--- a/var/spack/repos/builtin/packages/openipmi/package.py
+++ b/var/spack/repos/builtin/packages/openipmi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,13 +14,18 @@ class Openipmi(AutotoolsPackage):
homepage = "https://sourceforge.net/projects/openipmi/"
url = "https://sourceforge.net/projects/openipmi/files/OpenIPMI%202.0%20Library/OpenIPMI-2.0.29.tar.gz"
+ version('2.0.29', sha256='2244124579afb14e569f34393e9ac61e658a28b6ffa8e5c0d2c1c12a8ce695cd')
version('2.0.28', sha256='8e8b1de2a9a041b419133ecb21f956e999841cf2e759e973eeba9a36f8b40996')
version('2.0.27', sha256='f3b1fafaaec2e2bac32fec5a86941ad8b8cb64543470bd6d819d7b166713d20b')
- depends_on('popt')
- depends_on('python')
- depends_on('termcap')
- depends_on('ncurses')
+ depends_on('popt', type='link')
+ depends_on('python', type=('build', 'link', 'run'))
+ depends_on('perl', type=('build', 'link', 'run'))
+ depends_on('termcap', type='link')
+ depends_on('ncurses', type='link')
+ depends_on('readline', type='link')
+
+ patch('readline.patch', when='@2.0.27')
def configure_args(self):
args = ['LIBS=' + self.spec['ncurses'].libs.link_flags]
diff --git a/var/spack/repos/builtin/packages/openipmi/readline.patch b/var/spack/repos/builtin/packages/openipmi/readline.patch
new file mode 100644
index 0000000000..193442101b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openipmi/readline.patch
@@ -0,0 +1,11 @@
+--- spack-src/sample/ipmi_serial_bmc_emu.c.org 2020-12-07 17:08:39.907878381 +0900
++++ spack-src/sample/ipmi_serial_bmc_emu.c 2020-12-07 17:08:56.713276894 +0900
+@@ -42,7 +42,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <sys/select.h>
+-#include <editline/readline.h>
++#include <readline/readline.h>
+
+ #define _GNU_SOURCE
+ #include <getopt.h>
diff --git a/var/spack/repos/builtin/packages/openjdk/package.py b/var/spack/repos/builtin/packages/openjdk/package.py
index 4c50bdfc2c..ab2aab9ae2 100644
--- a/var/spack/repos/builtin/packages/openjdk/package.py
+++ b/var/spack/repos/builtin/packages/openjdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,6 +7,7 @@ import os
import platform
import re
+from spack.util.prefix import Prefix
# If you need to add a new version, please be aware that:
# - versions in the following dict are automatically added to the package
@@ -16,12 +17,22 @@ import re
# format returned by platform.system() and 'arch' by platform.machine()
_versions = {
+ '11.0.9.1_1': {
+ 'Linux-ppc64le': ('d94b6b46a14ab0974b1c1b89661741126d8cf8a0068b471b8f5fa286a71636b1', 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9.1%2B1/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.9.1_1.tar.gz')},
+ '11.0.8_10': {
+ 'Linux-x86_64': ('6e4cead158037cb7747ca47416474d4f408c9126be5b96f9befd532e0a762b47', 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.8_10.tar.gz')},
'11.0.0-2020-01-01': {
'Linux-aarch64': ('05c7d9c90edacd853850fbb0f52f8aa482809d0452c599cb9fe0b28b3b4bf329', 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk11u-2020-01-01-06-13/OpenJDK11U-jdk_aarch64_linux_hotspot_2020-01-01-06-13.tar.gz')},
'11.0.2': {
- 'Linux-x86_64': ('99be79935354f5c0df1ad293620ea36d13f48ec3ea870c838f20c504c9668b57', 'https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz')},
+ 'Linux-x86_64': ('99be79935354f5c0df1ad293620ea36d13f48ec3ea870c838f20c504c9668b57', 'https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz'),
+ 'Darwin-x86_64': ('f365750d4be6111be8a62feda24e265d97536712bc51783162982b8ad96a70ee', 'https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_osx-x64_bin.tar.gz')
+ },
'11.0.1': {
- 'Linux-x86_64': ('7a6bb980b9c91c478421f865087ad2d69086a0583aeeb9e69204785e8e97dcfd', 'https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz')},
+ 'Linux-x86_64': ('7a6bb980b9c91c478421f865087ad2d69086a0583aeeb9e69204785e8e97dcfd', 'https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz'),
+ 'Darwin-x86_64': ('fa07eee08fa0f3de541ee1770de0cdca2ae3876f3bd78c329f27e85c287cd070', 'https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_osx-x64_bin.tar.gz')
+ },
+ '1.8.0_265-b01': {
+ 'Linux-x86_64': ('1285da6278f2d38a790a21148d7e683f20de0799c44b937043830ef6b57f58c4', 'https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u265-b01/OpenJDK8U-jdk_x64_linux_hotspot_8u265b01.tar.gz')},
'1.8.0_191-b12': {
'Linux-aarch64': ('8eee0aede947b804f9a5f49c8a38b52aace8a30a9ebd9383b7d06042fb5a237c', 'https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz')},
'1.8.0_222-b10': {
@@ -49,8 +60,7 @@ class Openjdk(Package):
provides('java@9', when='@9.0:9.99')
provides('java@8', when='@1.8.0:1.8.999')
- conflicts('target=ppc64:', msg='openjdk is only available for x86_64 and aarch64')
- conflicts('target=ppc64le:', msg='openjdk is only available for x86_64 and aarch64')
+ conflicts('target=ppc64:', msg='openjdk is not available for ppc64 (big endian)')
# FIXME:
# 1. `extends('java')` doesn't work, you need to use `extends('openjdk')`
@@ -109,7 +119,8 @@ class Openjdk(Package):
return find_libraries(['libjvm'], root=self.home, recursive=True)
def install(self, spec, prefix):
- install_tree('.', prefix)
+ top_dir = 'Contents/Home/' if platform.system() == "Darwin" else '.'
+ install_tree(top_dir, prefix)
def setup_run_environment(self, env):
"""Set JAVA_HOME."""
diff --git a/var/spack/repos/builtin/packages/openjpeg/package.py b/var/spack/repos/builtin/packages/openjpeg/package.py
index c451758ef0..676c567e35 100644
--- a/var/spack/repos/builtin/packages/openjpeg/package.py
+++ b/var/spack/repos/builtin/packages/openjpeg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/openkim-models/package.py b/var/spack/repos/builtin/packages/openkim-models/package.py
index 6e8819da66..ca41c8a1e5 100644
--- a/var/spack/repos/builtin/packages/openkim-models/package.py
+++ b/var/spack/repos/builtin/packages/openkim-models/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,20 +19,24 @@ class OpenkimModels(CMakePackage):
compatible with the kim-api package.
"""
homepage = "https://openkim.org/"
- url = "https://s3.openkim.org/archives/collection/openkim-models-2019-07-25.txz"
+ url = "https://s3.openkim.org/archives/collection/openkim-models-2021-01-28.txz"
maintainers = ['ellio167']
extends('kim-api')
+ depends_on('kim-api@2.2.1:', when='@2021-01-28:')
depends_on('kim-api@2.1.0:', when='@2019-07-25:')
depends_on('kim-api@:2.0.2', when='@:2019-03-29')
version(
- '2019-07-25',
- sha256='50338084ece92ec0fb13b0bbdf357b5d7450e26068ba501f23c315f814befc26')
+ '2021-01-28',
+ sha256='8824adee02ae4583bd378cc81140fbb49515c5965708ee98d856d122d48dd95f')
version(
- '2019-03-29',
- sha256='053dda2023fe4bb6d7c1d66530c758c4e633bbf1f1be17b6b075b276fe8874f6')
+ '2019-07-25',
+ sha256='50338084ece92ec0fb13b0bbdf357b5d7450e26068ba501f23c315f814befc26')
+ version(
+ '2019-03-29',
+ sha256='053dda2023fe4bb6d7c1d66530c758c4e633bbf1f1be17b6b075b276fe8874f6')
def cmake_args(self):
args = []
diff --git a/var/spack/repos/builtin/packages/openldap/package.py b/var/spack/repos/builtin/packages/openldap/package.py
index 89d190ae27..7591a3d4b6 100644
--- a/var/spack/repos/builtin/packages/openldap/package.py
+++ b/var/spack/repos/builtin/packages/openldap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -43,11 +43,11 @@ class Openldap(AutotoolsPackage):
# depends_on('Pth', when='~client_only') # not avail. in spack yet
depends_on('perl', when='~client_only+perl') # for slapd
- # Ref: http://www.linuxfromscratch.org/blfs/view/svn/server/openldap.html
+ # Ref: https://www.linuxfromscratch.org/blfs/view/svn/server/openldap.html
@when('+client_only')
def configure_args(self):
return ['CPPFLAGS=-D_GNU_SOURCE',
- '--disable-static',
+ '--enable-static',
'--enable-dynamic',
'--disable-debug',
'--disable-slapd',
@@ -57,7 +57,7 @@ class Openldap(AutotoolsPackage):
def configure_args(self):
# Ref: https://www.openldap.org/lists/openldap-technical/201009/msg00304.html
args = ['CPPFLAGS=-D_GNU_SOURCE', # fixes a build error, see Ref above
- '--disable-static',
+ '--enable-static',
'--disable-debug',
'--with-cyrus-sasl',
'--enable-dynamic',
diff --git a/var/spack/repos/builtin/packages/openloops/get-process-list.py b/var/spack/repos/builtin/packages/openloops/get-process-list.py
new file mode 100644
index 0000000000..6481865eef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openloops/get-process-list.py
@@ -0,0 +1,47 @@
+import re
+import urllib.request
+from html.parser import HTMLParser
+
+
+class my_html_parser(HTMLParser):
+ def error(self, message):
+ pass
+
+ def __init__(self):
+ super().__init__()
+ self.state = 0
+ self.processes = []
+
+ def handle_starttag(self, tag, attrs):
+ if tag == 'tr' and self.state == 2:
+ for att in attrs:
+ if att[0] == 'id':
+ return
+ self.state = 3
+ if tag == 'td' and self.state == 3:
+ self.state = 4
+ pass
+
+ def handle_endtag(self, tag):
+ if tag == 'table' and self.state == 1:
+ self.state = 2
+ pass
+
+ def handle_data(self, data):
+ # print("Encountered some data :", data)
+ if data == 'Categories' and self.state == 0:
+ self.state = 1
+
+ if self.state == 4:
+ if re.findall('[^a-z0-9_]', data):
+ return
+ self.processes.append(data)
+ self.state = 2
+
+
+if __name__ == '__main__':
+ url = "https://openloops.hepforge.org/process_library.php?repo=public"
+ data = urllib.request.urlopen(url).read()
+ parser = my_html_parser()
+ parser.feed(data.decode('UTF8'))
+ print(parser.processes)
diff --git a/var/spack/repos/builtin/packages/openloops/package.py b/var/spack/repos/builtin/packages/openloops/package.py
index 9a1081c2b6..7b0f357a3c 100644
--- a/var/spack/repos/builtin/packages/openloops/package.py
+++ b/var/spack/repos/builtin/packages/openloops/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Openloops(Package):
"""The OpenLoops 2 program is a fully automated implementation of the
@@ -15,49 +16,52 @@ class Openloops(Package):
at NLO QCD and NLO EW. """
homepage = "https://openloops.hepforge.org/"
- url = "https://openloops.hepforge.org/downloads?f=OpenLoops-2.1.1.tar.gz"
+ url = "https://openloops.hepforge.org/downloads?f=OpenLoops-2.1.1.tar.gz"
+
+ tags = ['hep']
+ version('2.1.2', sha256='f52575cae3d70b6b51a5d423e9cd0e076ed5961afcc015eec00987e64529a6ae')
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")
+ 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', 'ppllllbb', 'ppllllj',
+ 'ppllllj2', 'ppllllj2_nf5', 'ppllllj2_nf5_notridr',
+ 'ppllllj2_nf5_sr', 'ppllllj2_onlyh', 'ppllnnjj_ew',
+ 'ppllnnjj_vbs', 'pplnaj_ckm', 'pplnajj', 'pplnajj_ckm',
+ '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')
@@ -67,7 +71,7 @@ class Openloops(Package):
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. ' +
+ 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"))
@@ -95,14 +99,20 @@ class Openloops(Package):
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:
+ 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')
+ '-fdollar-ok ')
+ if self.spec.target.family == 'aarch64':
+ f.write('-mcmodel=small\n')
+ else:
+ f.write('-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'):
+ elif self.spec.satisfies('@2:2.1.2 processes=lcg.coll'):
copy(join_path(os.path.dirname(__file__), 'sft2.coll'), 'lcg.coll')
+ elif self.spec.satisfies('@2.1.2:2.99.99 processes=lcg.coll'):
+ copy(join_path(os.path.dirname(__file__), 'sft3.coll'), 'lcg.coll')
def build(self, spec, prefix):
scons = Executable('./scons')
diff --git a/var/spack/repos/builtin/packages/openloops/sft3.coll b/var/spack/repos/builtin/packages/openloops/sft3.coll
new file mode 100644
index 0000000000..a4d7715534
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openloops/sft3.coll
@@ -0,0 +1,171 @@
+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
+ppllllbb
+ppllllj
+ppllllj2
+ppllllj2_nf5
+ppllllj2_nf5_notridr
+ppllllj2_nf5_sr
+ppllllj2_onlyh
+ppllnnjj_ew
+ppllnnjj_vbs
+pplnaj_ckm
+pplnajj
+pplnajj_ckm
+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 \ No newline at end of file
diff --git a/var/spack/repos/builtin/packages/openmc/package.py b/var/spack/repos/builtin/packages/openmc/package.py
index 60ce6f4bba..4afe16437d 100644
--- a/var/spack/repos/builtin/packages/openmc/package.py
+++ b/var/spack/repos/builtin/packages/openmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,16 +14,43 @@ class Openmc(CMakePackage):
sections. The project started under the Computational Reactor Physics
Group at MIT."""
- homepage = "http://openmc.readthedocs.io/"
- url = "https://github.com/openmc-dev/openmc/tarball/v0.10.0"
+ homepage = "https://docs.openmc.org/"
+ url = "https://github.com/openmc-dev/openmc/tarball/v0.12.2"
git = "https://github.com/openmc-dev/openmc.git"
+ version('develop', branch='develop', submodules=True)
+ version('master', branch='master', submodules=True)
+ version('0.12.2', tag='v0.12.2', submodules=True)
+ version('0.12.1', tag='v0.12.1', submodules=True)
+ version('0.12.0', tag='v0.12.0', submodules=True)
+ version('0.11.0', sha256='19a9d8e9c3b581e9060fbd96d30f1098312d217cb5c925eb6372a5786d9175af')
version('0.10.0', sha256='47650cb45e2c326ae439208d6f137d75ad3e5c657055912d989592c6e216178f')
- version('develop')
- depends_on("hdf5+hl")
+ variant('mpi', default=False, description='Enable MPI support')
+ variant('openmp', default=True, description='Enable OpenMP support')
+ variant('optimize', default=False, description='Enable optimization flags')
+ variant('debug', default=False, description='Enable debug flags')
+
+ depends_on('git', type='build')
+ depends_on('hdf5+hl~mpi', when='~mpi')
+ depends_on('mpi', when='+mpi')
+ depends_on('hdf5+hl+mpi', when='+mpi')
def cmake_args(self):
- options = ['-DHDF5_ROOT:PATH=%s' % self.spec['hdf5'].prefix]
+ options = ['-DCMAKE_INSTALL_LIBDIR=lib'] # forcing bc sometimes goes to lib64
+
+ if '+mpi' in self.spec:
+ options += ['-DCMAKE_C_COMPILER=%s' % self.spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER=%s' % self.spec['mpi'].mpicxx]
+
+ options += [self.define_from_variant('openmp')]
+ options += [self.define_from_variant('optimize')]
+ options += [self.define_from_variant('debug')]
+
+ if '+optimize' in self.spec:
+ self.spec.variants['build_type'].value = 'Release'
+
+ if '+debug' in self.spec:
+ self.spec.variants['build_type'].value = 'Debug'
return options
diff --git a/var/spack/repos/builtin/packages/openmm/package.py b/var/spack/repos/builtin/packages/openmm/package.py
index 2867af4538..e786f0b88e 100644
--- a/var/spack/repos/builtin/packages/openmm/package.py
+++ b/var/spack/repos/builtin/packages/openmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,10 @@ class Openmm(CMakePackage, CudaPackage):
LGPL. Part of the Omnia suite of tools for predictive biomolecular
simulation. """
- homepage = "http://openmm.org/"
+ homepage = "https://openmm.org/"
url = "https://github.com/openmm/openmm/archive/7.4.1.tar.gz"
+ version('7.5.0', sha256='516748b4f1ae936c4d70cc6401174fc9384244c65cd3aef27bc2c53eac6d6de5')
version('7.4.1', sha256='e8102b68133e6dcf7fcf29bc76a11ea54f30af71d8a7705aec0aee957ebe3a6d')
install_targets = ['install', 'PythonInstall']
diff --git a/var/spack/repos/builtin/packages/openmolcas/package.py b/var/spack/repos/builtin/packages/openmolcas/package.py
index c8a6e2aaa0..61e507bf19 100644
--- a/var/spack/repos/builtin/packages/openmolcas/package.py
+++ b/var/spack/repos/builtin/packages/openmolcas/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -14,14 +16,19 @@ class Openmolcas(CMakePackage):
homepage = "https://gitlab.com/Molcas/OpenMolcas"
url = "https://github.com/Molcas/OpenMolcas/archive/v19.11.tar.gz"
+ version('21.02', sha256='d0b9731a011562ff4740c0e67e48d9af74bf2a266601a38b37640f72190519ca')
version('19.11', sha256='8ebd1dcce98fc3f554f96e54e34f1e8ad566c601196ee68153763b6c0a04c7b9')
+ variant('mpi', default=False, description='Build with mpi support.')
+
depends_on('hdf5')
depends_on('lapack')
depends_on('openblas+ilp64')
depends_on('python@3.7:', type=('build', 'run'))
depends_on('py-pyparsing', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
+ depends_on('mpi', when='+mpi')
+ depends_on('globalarrays', when='+mpi')
patch('CMakeLists.txt.patch', when='target=aarch64:')
@@ -30,10 +37,23 @@ class Openmolcas(CMakePackage):
def setup_run_environment(self, env):
env.set('MOLCAS', self.prefix)
+ if self.spec.version >= Version('21.02'):
+ env.append_path('PATH', self.prefix)
def cmake_args(self):
- return [
+ args = [
'-DLINALG=OpenBLAS',
'-DOPENBLASROOT=%s' % self.spec['openblas'].prefix,
- '-DPYTHON_EXECUTABLE=%s' % self.spec['python'].command.path,
+ '-DPYTHON_EXECUTABLE=%s' % self.spec['python'].command.path
]
+ if '+mpi' in self.spec:
+ mpi_args = [
+ '-DMPI=ON', '-DGA=ON',
+ '-DGA_INCLUDE_PATH=%s' % self.spec['globalarrays'].prefix.include,
+ '-DLIBGA=%s' %
+ os.path.join(self.spec['globalarrays'].prefix.lib, 'libga.so'),
+ '-DLIBARMCI=%s' %
+ os.path.join(self.spec['globalarrays'].prefix.lib, 'libarmci.so')
+ ]
+ args.extend(mpi_args)
+ return args
diff --git a/var/spack/repos/builtin/packages/openmpi/opal_assembly_arch.patch b/var/spack/repos/builtin/packages/openmpi/opal_assembly_arch.patch
new file mode 100644
index 0000000000..4fc3112567
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openmpi/opal_assembly_arch.patch
@@ -0,0 +1,27 @@
+diff --git a/opal/include/opal/sys/gcc_builtin/atomic.h b/opal/include/opal/sys/gcc_builtin/atomic.h
+index d85ff02bd6a..a465fdae5db 100644
+--- a/opal/include/opal/sys/gcc_builtin/atomic.h
++++ b/opal/include/opal/sys/gcc_builtin/atomic.h
+@@ -13,8 +13,8 @@
+ * Copyright (c) 2011 Sandia National Laboratories. All rights reserved.
+ * Copyright (c) 2014-2017 Los Alamos National Security, LLC. All rights
+ * reserved.
+- * Copyright (c) 2016-2017 Research Organization for Information Science
+- * and Technology (RIST). All rights reserved.
++ * Copyright (c) 2016-2021 Research Organization for Information Science
++ * and Technology (RIST). All rights reserved.
+ * Copyright (c) 2018 Triad National Security, LLC. All rights
+ * reserved.
+ * $COPYRIGHT$
+@@ -61,9 +61,8 @@ static inline void opal_atomic_rmb(void)
+ {
+ #if OPAL_ASSEMBLY_ARCH == OPAL_X86_64
+ /* work around a bug in older gcc versions where ACQUIRE seems to get
+- * treated as a no-op instead of being equivalent to
+- * __asm__ __volatile__("": : :"memory") */
+- __atomic_thread_fence (__ATOMIC_SEQ_CST);
++ * treated as a no-op instead */
++ __asm__ __volatile__("": : :"memory");
+ #else
+ __atomic_thread_fence (__ATOMIC_ACQUIRE);
+ #endif
diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index 124973bbc1..10ccc3a11f 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import itertools
-import re
import os
+import re
import sys
+
import llnl.util.tty as tty
@@ -24,18 +25,23 @@ class Openmpi(AutotoolsPackage):
application developers and computer science researchers.
"""
- homepage = "http://www.open-mpi.org"
- url = "https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.0.tar.bz2"
- list_url = "http://www.open-mpi.org/software/ompi/"
+ homepage = "https://www.open-mpi.org"
+ url = "https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.0.tar.bz2"
+ list_url = "https://www.open-mpi.org/software/ompi/"
git = "https://github.com/open-mpi/ompi.git"
- maintainers = ['hppritcha']
+ maintainers = ['hppritcha', 'naughtont3']
executables = ['^ompi_info$']
- version('master', branch='master')
+ version('master', branch='master', submodules=True)
# Current
+ version('4.1.1', sha256='e24f7a778bd11a71ad0c14587a7f5b00e68a71aa5623e2157bafee3d44c07cda') # libmpi.so.40.30.1
+
+ # Still supported
+ version('4.1.0', sha256='73866fb77090819b6a8c85cb8539638d37d6877455825b74e289d647a39fd5b5') # libmpi.so.40.30.0
+ version('4.0.6', sha256='94b7b59ae9860f3bd7b5f378a698713e7b957070fdff2c43453b6cbf8edb410c') # libmpi.so.40.20.6
version('4.0.5', sha256='c58f3863b61d944231077f344fe6b4b8fbb83f3d1bc93ab74640bf3e5acac009') # libmpi.so.40.20.5
version('4.0.4', sha256='47e24eb2223fe5d24438658958a313b6b7a55bb281563542e1afc9dec4a31ac4') # libmpi.so.40.20.4
version('4.0.3', sha256='1402feced8c3847b3ab8252165b90f7d1fa28c23b6b2ca4632b6e4971267fd03') # libmpi.so.40.20.3
@@ -43,8 +49,8 @@ class Openmpi(AutotoolsPackage):
version('4.0.1', sha256='cce7b6d20522849301727f81282201d609553103ac0b09162cf28d102efb9709') # libmpi.so.40.20.1
version('4.0.0', sha256='2f0b8a36cfeb7354b45dda3c5425ef8393c9b04115570b615213faaa3f97366b') # libmpi.so.40.20.0
- # Still supported
- version('3.1.6', preferred=True, sha256='50131d982ec2a516564d74d5616383178361c2f08fdd7d1202b80bdf66a0d279') # libmpi.so.40.10.4
+ # Retired
+ version('3.1.6', sha256='50131d982ec2a516564d74d5616383178361c2f08fdd7d1202b80bdf66a0d279') # libmpi.so.40.10.4
version('3.1.5', sha256='fbf0075b4579685eec8d56d34d4d9c963e6667825548554f5bf308610af72133') # libmpi.so.40.10.4
version('3.1.4', sha256='17a69e0054db530c7dc119f75bd07d079efa147cf94bf27e590905864fe379d6') # libmpi.so.40.10.4
version('3.1.3', sha256='8be04307c00f51401d3fb9d837321781ea7c79f2a5a4a2e5d4eaedc874087ab6') # libmpi.so.40.10.3
@@ -58,7 +64,6 @@ class Openmpi(AutotoolsPackage):
version('3.0.1', sha256='663450d1ee7838b03644507e8a76edfb1fba23e601e9e0b5b2a738e54acd785d') # libmpi.so.40.00.1
version('3.0.0', sha256='f699bff21db0125d8cccfe79518b77641cd83628725a1e1ed3e45633496a82d7') # libmpi.so.40.00.0
- # Retired
version('2.1.6', sha256='98b8e1b8597bbec586a0da79fcd54a405388190247aa04d48e8c40944d4ca86e') # libmpi.so.20.10.3
version('2.1.5', sha256='b807ccab801f27c3159a5edf29051cd3331d3792648919f9c4cee48e987e7794') # libmpi.so.20.10.3
version('2.1.4', sha256='3e03695ca8bd663bc2d89eda343c92bb3d4fc79126b178f5ddcb68a8796b24e2') # libmpi.so.20.10.3
@@ -73,6 +78,7 @@ class Openmpi(AutotoolsPackage):
version('2.0.1', sha256='fed74f4ae619b7ebcc18150bb5bdb65e273e14a8c094e78a3fea0df59b9ff8ff') # libmpi.so.20.0.1
version('2.0.0', sha256='08b64cf8e3e5f50a50b4e5655f2b83b54653787bd549b72607d9312be44c18e0') # libmpi.so.20.0.0
+ # Ancient
version('1.10.7', sha256='a089ece151fec974905caa35b0a59039b227bdea4e7933069e94bee4ed0e5a90') # libmpi.so.12.0.7
version('1.10.6', sha256='65606184a084a0eda6102b01e5a36a8f02d3195d15e91eabbb63e898bd110354') # libmpi.so.12.0.6
version('1.10.5', sha256='a95fa355ed3a905c7c187bc452529a9578e2d6bae2559d8197544ab4227b759e') # libmpi.so.12.0.5
@@ -106,7 +112,6 @@ class Openmpi(AutotoolsPackage):
version('1.6.1', sha256='077240dd1ab10f0caf26931e585db73848e9815c7119b993f91d269da5901e3a') # libmpi.so.1.0.3
version('1.6', sha256='6e0d8b336543fb9ab78c97d364484923167857d30b266dfde1ccf60f356b9e0e') # libmpi.so.1.0.3
- # Ancient
version('1.5.5', sha256='660e6e49315185f88a87b6eae3d292b81774eab7b29a9b058b10eb35d892ff23') # libmpi.so.1.0.3
version('1.5.4', sha256='81126a95a51b8af4bb0ad28790f852c30d22d989713ec30ad22e9e0a79587ef6') # libmpi.so.1.0.2
version('1.5.3', sha256='70745806cdbe9b945d47d9fa058f99e072328e41e40c0ced6dd75220885c5263') # libmpi.so.1.0.1
@@ -171,7 +176,7 @@ class Openmpi(AutotoolsPackage):
patch('nag_pthread/2.0.0_2.1.1.patch', when='@2.0.0:2.1.1%nag')
patch('nag_pthread/1.10.4_1.10.999.patch', when='@1.10.4:1.10.999%nag')
- patch('nvhpc-libtool.patch', when='%nvhpc@develop')
+ patch('nvhpc-libtool.patch', when='@master %nvhpc')
patch('nvhpc-configure.patch', when='%nvhpc')
# Fix MPI_Sizeof() in the "mpi" Fortran module for compilers that do not
@@ -186,6 +191,9 @@ class Openmpi(AutotoolsPackage):
# The second patch was applied starting version v4.0.0 and backported to
# v2.x, v3.0.x, and v3.1.x.
patch('use_mpi_tkr_sizeof/step_2.patch', when='@1.8.4:2.1.3,3:3.0.1')
+ # To fix performance regressions introduced while fixing a bug in older
+ # gcc versions on x86_64, Refs. open-mpi/ompi#8603
+ patch('opal_assembly_arch.patch', when='@4.0.0:4.0.5,4.1.0')
variant(
'fabrics',
@@ -247,6 +255,8 @@ class Openmpi(AutotoolsPackage):
default=False,
description='Do not remove mpirun/mpiexec when building with slurm'
)
+ # Variants to use internal packages
+ variant('internal-hwloc', default=False, description='Use internal hwloc')
provides('mpi')
provides('mpi@:2.2', when='@1.6.5')
@@ -256,22 +266,26 @@ class Openmpi(AutotoolsPackage):
if sys.platform != 'darwin':
depends_on('numactl')
- depends_on('autoconf', type='build', when='@develop')
- depends_on('automake', type='build', when='@develop')
- depends_on('libtool', type='build', when='@develop')
- depends_on('m4', type='build', when='@develop')
- depends_on('perl', type='build', when='@develop')
+ depends_on('autoconf', type='build', when='@master')
+ depends_on('automake', type='build', when='@master')
+ depends_on('libtool', type='build', when='@master')
+ depends_on('m4', type='build', when='@master')
+ depends_on('pandoc', type='build', when='@master')
+ depends_on('perl', type='build')
depends_on('pkgconfig', type='build')
- depends_on('hwloc@2.0:', when='@4:')
+ depends_on('libevent@2.0:', when='@4:')
+
+ depends_on('hwloc@2:', when='@4: ~internal-hwloc')
# ompi@:3.0.0 doesn't support newer hwloc releases:
# "configure: error: OMPI does not currently support hwloc v2 API"
# Future ompi releases may support it, needs to be verified.
# See #7483 for context.
- depends_on('hwloc@:1.999', when='@:3.999.9999')
+ depends_on('hwloc@:1.999', when='@:3.999.999 ~internal-hwloc')
- depends_on('hwloc +cuda', when='+cuda')
+ depends_on('hwloc +cuda', when='+cuda ~internal-hwloc')
+ depends_on('cuda', when='+cuda')
depends_on('java', when='+java')
depends_on('sqlite', when='+sqlite3@:1.11')
depends_on('zlib', when='@3.0.0:')
@@ -294,9 +308,11 @@ class Openmpi(AutotoolsPackage):
depends_on('knem', when='fabrics=knem')
depends_on('lsf', when='schedulers=lsf')
- depends_on('openpbs', when='schedulers=tm')
+ depends_on('pbs', when='schedulers=tm')
depends_on('slurm', when='schedulers=slurm')
+ depends_on('openssh', type='run')
+
# CUDA support was added in 1.7
conflicts('+cuda', when='@:1.6')
# PMI support was added in 1.5.5
@@ -326,7 +342,7 @@ class Openmpi(AutotoolsPackage):
# knem support was added in 1.5
conflicts('fabrics=knem', when='@:1.4')
- conflicts('schedulers=slurm ~pmi', when='@1.5.4:',
+ conflicts('schedulers=slurm ~pmi', when='@1.5.4:2.999.999',
msg='+pmi is required for openmpi(>=1.5.5) to work with SLURM.')
conflicts('schedulers=loadleveler', when='@3.0.0:',
msg='The loadleveler scheduler is not supported with '
@@ -442,15 +458,16 @@ class Openmpi(AutotoolsPackage):
# Get the appropriate compiler
match = re.search(r'\bC compiler absolute: (\S+)', output)
- compiler_spec = get_spack_compiler_spec(
- os.path.dirname(match.group(1)))
- if compiler_spec:
- variants += "%" + str(compiler_spec)
+ if match:
+ compiler_spec = get_spack_compiler_spec(
+ os.path.dirname(match.group(1)))
+ if compiler_spec:
+ variants += "%" + str(compiler_spec)
results.append(variants)
return results
def url_for_version(self, version):
- url = "http://www.open-mpi.org/software/ompi/v{0}/downloads/openmpi-{1}.tar.bz2"
+ url = "https://download.open-mpi.org/release/open-mpi/v{0}/openmpi-{1}.tar.bz2"
return url.format(version.up_to(2), version)
@property
@@ -572,7 +589,7 @@ class Openmpi(AutotoolsPackage):
def with_or_without_tm(self, activated):
if not activated:
return '--without-tm'
- return '--with-tm={0}'.format(self.spec['openpbs'].prefix)
+ return '--with-tm={0}'.format(self.spec['pbs'].prefix)
@run_before('autoreconf')
def die_without_fortran(self):
@@ -584,7 +601,7 @@ class Openmpi(AutotoolsPackage):
'OpenMPI requires both C and Fortran compilers!'
)
- @when('@develop')
+ @when('@master')
def autoreconf(self, spec, prefix):
perl = which('perl')
perl('autogen.pl')
@@ -619,7 +636,11 @@ class Openmpi(AutotoolsPackage):
# for versions older than 3.0.3,3.1.3,4.0.0
# Presumably future versions after 11/2018 should support slurm+static
if spec.satisfies('schedulers=slurm'):
- config_args.append('--with-pmi={0}'.format(spec['slurm'].prefix))
+ if spec.satisfies('+pmi'):
+ config_args.append('--with-pmi={0}'.format(
+ spec['slurm'].prefix))
+ else:
+ config_args.extend(self.with_or_without('pmi'))
if spec.satisfies('@3.1.3:') or spec.satisfies('@3.0.3'):
if '+static' in spec:
config_args.append('--enable-static')
@@ -674,8 +695,11 @@ class Openmpi(AutotoolsPackage):
if spec.satisfies('+lustre'):
lustre_opt = '--with-lustre={0}'.format(spec['lustre'].prefix)
config_args.append(lustre_opt)
+ # external libevent
+ if spec.satisfies('@4.0.0:'):
+ config_args.append('--with-libevent={0}'.format(spec['libevent'].prefix))
# Hwloc support
- if spec.satisfies('@1.5.2:'):
+ if '~internal-hwloc' in spec and spec.satisfies('@1.5.2:'):
config_args.append('--with-hwloc={0}'.format(spec['hwloc'].prefix))
# Java support
if spec.satisfies('@1.7.4:'):
@@ -737,7 +761,7 @@ class Openmpi(AutotoolsPackage):
else:
config_args.append('--without-cuda')
- if spec.satisfies('%nvhpc'):
+ if spec.satisfies('%nvhpc@:20.11'):
# Workaround compiler issues
config_args.append('CFLAGS=-O1')
@@ -871,9 +895,10 @@ class Openmpi(AutotoolsPackage):
'shmemrun': ls,
}
- for exe in checks:
- options, expected, status = checks[exe]
- reason = 'test: checking {0} output'.format(exe)
+ for binary in checks:
+ options, expected, status = checks[binary]
+ exe = join_path(self.prefix.bin, binary)
+ reason = 'test: checking {0} output'.format(binary)
self.run_test(exe, options, expected, status, installed=True,
purpose=reason, skip_missing=True)
@@ -922,21 +947,28 @@ class Openmpi(AutotoolsPackage):
'shmemcxx': comp_vers,
}
- for exe in checks:
- expected = checks[exe]
+ for binary in checks:
+ expected = checks[binary]
purpose = 'test: ensuring version of {0} is {1}' \
- .format(exe, expected)
+ .format(binary, expected)
+ exe = join_path(self.prefix.bin, binary)
self.run_test(exe, '--version', expected, installed=True,
purpose=purpose, skip_missing=True)
+ @property
+ def _cached_tests_work_dir(self):
+ """The working directory for cached test sources."""
+ return join_path(self.test_suite.current_test_cache_dir,
+ self.extra_install_tests)
+
def _test_examples(self):
- # First build the examples
+ """Run test examples copied from source at build-time."""
+ # Build the copied, cached test examples
self.run_test('make', ['all'], [],
- purpose='test: ensuring ability to build the examples',
- work_dir=join_path(self.install_test_root,
- self.extra_install_tests))
+ purpose='test: building cached test examples',
+ work_dir=self._cached_tests_work_dir)
- # Now run those with known results
+ # Run examples with known, simple-to-verify results
have_spml = self.spec.satisfies('@2.0.0:2.1.6')
hello_world = (['Hello, world', 'I am', '0 of', '1'], 0)
@@ -975,14 +1007,16 @@ class Openmpi(AutotoolsPackage):
}
for exe in checks:
- expected = checks[exe]
- reason = 'test: checking example {0} output'.format(exe)
- self.run_test(exe, [], expected, 0, installed=True,
- purpose=reason, skip_missing=True)
+ expected, status = checks[exe]
+ reason = 'test: checking {0} example output and status ({1})' \
+ .format(exe, status)
+ self.run_test(exe, [], expected, status, installed=False,
+ purpose=reason, skip_missing=True,
+ work_dir=self._cached_tests_work_dir)
def test(self):
- """Perform smoke tests on the installed package."""
- # Simple version check tests on known packages
+ """Perform stand-alone/smoke tests on the installed package."""
+ # Simple version check tests on selected installed binaries
self._test_check_versions()
# Test the operation of selected executables
diff --git a/var/spack/repos/builtin/packages/openmx/for_aarch64.patch b/var/spack/repos/builtin/packages/openmx/for_aarch64.patch
new file mode 100644
index 0000000000..33a80bf8ab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openmx/for_aarch64.patch
@@ -0,0 +1,11 @@
+--- spack-src/source/Krylov.c.bak 2016-03-27 15:53:28.000000000 +0900
++++ spack-src/source/Krylov.c 2021-01-28 15:31:32.660274698 +0900
+@@ -29,7 +29,7 @@
+ #ifdef nosse
+ #include "mimic_sse.h"
+ #else
+-#include <emmintrin.h>
++#include <sse2neon.h>
+ #endif
+
+ #ifdef kcomp
diff --git a/var/spack/repos/builtin/packages/openmx/package.py b/var/spack/repos/builtin/packages/openmx/package.py
index 5560820b59..50fcb23a2b 100644
--- a/var/spack/repos/builtin/packages/openmx/package.py
+++ b/var/spack/repos/builtin/packages/openmx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Openmx(MakefilePackage):
localized basis functions."""
homepage = "http://www.openmx-square.org/index.html"
- url = "http://t-ozaki.issp.u-tokyo.ac.jp/openmx3.8.tar.gz"
+ url = "https://t-ozaki.issp.u-tokyo.ac.jp/openmx3.8.tar.gz"
version('3.8', sha256='36ee10d8b1587b25a2ca1d57f110111be65c4fb4dc820e6d93e1ed2b562634a1')
@@ -25,6 +25,9 @@ class Openmx(MakefilePackage):
depends_on('fftw')
depends_on('blas')
depends_on('lapack')
+ depends_on('sse2neon', when='target=aarch64:')
+
+ patch('for_aarch64.patch', when='@3.8 target=aarch64:')
parallel = False
diff --git a/var/spack/repos/builtin/packages/opennurbs/package.py b/var/spack/repos/builtin/packages/opennurbs/package.py
index 7b3496364f..bfe4c2316e 100644
--- a/var/spack/repos/builtin/packages/opennurbs/package.py
+++ b/var/spack/repos/builtin/packages/opennurbs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -25,8 +25,7 @@ class Opennurbs(Package):
# CMake installation method
def install(self, spec, prefix):
cmake_args = [
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF')
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared')
]
cmake_args.extend(std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/openpa/package.py b/var/spack/repos/builtin/packages/openpa/package.py
index 7271d579e1..ddad783e78 100644
--- a/var/spack/repos/builtin/packages/openpa/package.py
+++ b/var/spack/repos/builtin/packages/openpa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class Openpa(AutotoolsPackage):
"""An open source, highly-portable library that provides atomic primitives
(and related constructs) for high performance, concurrent software"""
- homepage = 'https://trac.mpich.org/projects/openpa'
+ homepage = 'https://github.com/pmodels/openpa'
url = 'https://github.com/pmodels/openpa/releases/download/v1.0.4/openpa-1.0.4.tar.gz'
version('1.0.4', sha256='9e5904b3bbdcb24e8429c12d613422e716a3479f3e0aeefbd9ce546852899e3a')
diff --git a/var/spack/repos/builtin/packages/openpbs/package.py b/var/spack/repos/builtin/packages/openpbs/package.py
index 695e5ad595..7a45467d13 100644
--- a/var/spack/repos/builtin/packages/openpbs/package.py
+++ b/var/spack/repos/builtin/packages/openpbs/package.py
@@ -1,24 +1,23 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import llnl.util.tty as tty
+
from spack import *
class Openpbs(AutotoolsPackage):
- """PBS Professional software optimizes job scheduling and workload
+ """OpenPBS software optimizes job scheduling and workload
management in high-performance computing (HPC) environments - clusters,
clouds, and supercomputers - improving system efficiency and people's
productivity."""
- # TODO: update the description and the homepage url once the renaming is
- # finished: http://community.pbspro.org/t/openpbs-and-version-20-0/2075
-
- homepage = "https://www.pbspro.org"
+ homepage = "https://www.openpbs.org"
url = "https://github.com/openpbs/openpbs/archive/v19.1.3.tar.gz"
+ version('20.0.1', sha256='685a4abcea92bf518df02b544d25e237ae8cef76f86525f7bf3554812e9f50fa')
version('19.1.3', sha256='6e9d2614f839ff3d91d0ace3de04752b7c075da60c72fe6def76437aa05c9857')
depends_on('autoconf', type='build')
@@ -32,7 +31,8 @@ class Openpbs(AutotoolsPackage):
depends_on('ssmtp', type=('build', 'run'))
depends_on('xauth', type=('build', 'run'))
- depends_on('python@2.6:2.7', type=('build', 'link', 'run'))
+ depends_on('python@3.5:3.9', type=('build', 'link', 'run'), when='@20:')
+ depends_on('python@2.6:2.7', type=('build', 'link', 'run'), when='@:19')
depends_on('libx11')
depends_on('libice')
@@ -63,6 +63,9 @@ class Openpbs(AutotoolsPackage):
# Link to the dynamic library of Python instead of the static one.
patch('python.patch')
+ # Provides PBS functionality
+ provides('pbs')
+
def autoreconf(self, spec, prefix):
Executable('./autogen.sh')()
diff --git a/var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch b/var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch
index f190f12ff1..9574c8bc5c 100644
--- a/var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch
+++ b/var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch
@@ -1,23 +1,39 @@
-From 61ccc18cdd478c6281466f1f77de416559234dd8 Mon Sep 17 00:00:00 2001
+From 89c2219f0c5054e6f02df58f7a871110b5b5433c Mon Sep 17 00:00:00 2001
From: Axel Huebl <axel.huebl@plasma.ninja>
-Date: Tue, 17 Mar 2020 10:51:20 -0700
-Subject: [PATCH] HDF5: H5Oget_info Compatibility
+Date: Tue, 15 Jun 2021 10:35:16 -0700
+Subject: [PATCH] HDF5 1.12.0 fallback APIs: No Wrapper
-Update to work with HDF5 1.12.0 signature.
-Macro for older releases.
+HDF5 can be built with "old" API support, e.g. building the
+v1.10 or v1.8 APIs at compile-time.
+
+In that case, the HDF5 1.12.0 macro for `H5Oget_info` will resolve
+to `H5Oget_info1` which only took two arguments.
+
+In order to avoid breaking in such builds, we will now map explicitly
+to the 1.12.0 API `H5Oget_info3` function and avoid the compat.
+macros.
+
+Ref.: https://github.com/HDFGroup/hdf5/issues/754
---
- src/IO/HDF5/HDF5IOHandler.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
+ src/IO/HDF5/HDF5IOHandler.cpp | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/IO/HDF5/HDF5IOHandler.cpp b/src/IO/HDF5/HDF5IOHandler.cpp
-index 7043861b..c125e1f4 100644
+index 4ef7c0838..fad45d7a5 100644
--- a/src/IO/HDF5/HDF5IOHandler.cpp
+++ b/src/IO/HDF5/HDF5IOHandler.cpp
-@@ -1535,3 +1535,7 @@ void HDF5IOHandlerImpl::listAttributes(Writable* writable,
- H5O_info_t object_info;
+@@ -1773,11 +1773,12 @@ void HDF5IOHandlerImpl::listAttributes(Writable* writable,
+ H5P_DEFAULT);
+ VERIFY(node_id >= 0, "[HDF5] Internal error: Failed to open HDF5 group during attribute listing");
+
+- H5O_info_t object_info;
herr_t status;
-+#if H5_VERSION_GE(1,12,0)
-+ status = H5Oget_info(node_id, &object_info, H5O_INFO_NUM_ATTRS);
-+#else
+ #if H5_VERSION_GE(1,12,0)
+- status = H5Oget_info(node_id, &object_info, H5O_INFO_NUM_ATTRS);
++ H5O_info2_t object_info;
++ status = H5Oget_info3(node_id, &object_info, H5O_INFO_NUM_ATTRS);
+ #else
++ H5O_info_t object_info;
status = H5Oget_info(node_id, &object_info);
-+#endif
+ #endif
+ VERIFY(status == 0, "[HDF5] Internal error: Failed to get HDF5 object info for " + concrete_h5_file_position(writable) + " during attribute listing");
diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py
index 70cff5df46..48b8f9187c 100644
--- a/var/spack/repos/builtin/packages/openpmd-api/package.py
+++ b/var/spack/repos/builtin/packages/openpmd-api/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,27 @@ from spack import *
class OpenpmdApi(CMakePackage):
- """API for easy reading and writing of openPMD files"""
+ """C++ & Python API for Scientific I/O"""
- homepage = "http://www.openPMD.org"
+ homepage = "https://www.openPMD.org"
+ url = "https://github.com/openPMD/openPMD-api/archive/0.14.2.tar.gz"
git = "https://github.com/openPMD/openPMD-api.git"
maintainers = ['ax3l']
- version('dev', branch='dev')
+ # C++14 up until here
+ version('develop', branch='dev')
+ version('0.14.2', sha256='25c6b4bcd0ae1ba668b633b8514e66c402da54901c26861fc754fca55717c836')
+ version('0.14.1', sha256='172fd1d785627d01c77f1170adc5a18bd8a6302e804d0f271dc0d616a5156791')
+ version('0.14.0', sha256='7bb561c1a6f54e9a6a1b56aaf1d4d098bbe290d204f84ebe5a6f11b3cab2be6e')
+ version('0.13.4', sha256='46c013be5cda670f21969675ce839315d4f5ada0406a6546a91ec3441402cf5e')
+ version('0.13.3', sha256='4b8f84bd89cd540c73ffe8c21085970453cb7f0e4f125f11a4e288433f64b58c')
+ version('0.13.2', sha256='2e5170d41bb7b2c0608ec833eee7f9adf8175b46734743f6e46dcce6f6685fb0')
+ version('0.13.1', sha256='81ff79419982eb1b0865d1736f73f950f5d4c356d3c78200ceeab7f54dc07fd7')
+ version('0.13.0', sha256='97c2e43d80ee5c5288f278bd54f0dcb40e7f48a575b278fcef9660214b779bb0')
+ # C++11 up until here
version('0.12.0', tag='0.12.0-alpha')
version('0.11.1', tag='0.11.1-alpha')
- version('0.11.0', tag='0.11.0-alpha')
- version('0.10.3', tag='0.10.3-alpha')
- version('0.10.2', tag='0.10.2-alpha')
- version('0.10.1', tag='0.10.1-alpha')
- version('0.10.0', tag='0.10.0-alpha')
variant('shared', default=True,
description='Build a shared version of the library')
@@ -36,68 +42,71 @@ class OpenpmdApi(CMakePackage):
variant('python', default=False,
description='Enable Python bindings')
- depends_on('cmake@3.12.0:', type='build')
+ depends_on('cmake@3.15.0:', type='build')
depends_on('mpark-variant@1.4.0:')
depends_on('catch2@2.6.1:', type='test')
+ depends_on('catch2@2.13.4:', type='test', when='@0.14.0:')
depends_on('mpi@2.3:', when='+mpi') # might become MPI 3.0+
- depends_on('hdf5@1.8.13:', when='+hdf5')
- depends_on('hdf5@1.8.13: ~mpi', when='~mpi +hdf5')
- depends_on('hdf5@1.8.13: +mpi', when='+mpi +hdf5')
- depends_on('adios@1.13.1: ~sz', when='+adios1')
- depends_on('adios@1.13.1: ~mpi ~sz', when='~mpi +adios1')
- depends_on('adios@1.13.1: +mpi ~sz', when='+mpi +adios1')
- depends_on('adios2@2.5.0:', when='+adios2')
- depends_on('adios2@2.6.0:', when='+adios2 @0.12.0:')
- depends_on('adios2@2.5.0: ~mpi', when='~mpi +adios2')
- depends_on('adios2@2.5.0: +mpi', when='+mpi +adios2')
- depends_on('nlohmann-json@3.7.0:')
- depends_on('py-pybind11@2.3.0:', when='+python', type='link')
- depends_on('py-numpy@1.15.1:', when='+python', type=['test', 'run'])
- depends_on('py-mpi4py@2.1.0:', when='+python +mpi', type=['test', 'run'])
- depends_on('python@3.5:', when='+python', type=['link', 'test', 'run'])
+ depends_on('nlohmann-json@3.9.1:')
+ with when('+hdf5'):
+ depends_on('hdf5@1.8.13:')
+ depends_on('hdf5@1.8.13: ~mpi', when='~mpi')
+ depends_on('hdf5@1.8.13: +mpi', when='+mpi')
+ with when('+adios1'):
+ depends_on('adios@1.13.1: ~sz')
+ depends_on('adios@1.13.1: ~mpi ~sz', when='~mpi')
+ depends_on('adios@1.13.1: +mpi ~sz', when='+mpi')
+ with when('+adios2'):
+ depends_on('adios2@2.5.0:')
+ depends_on('adios2@2.6.0:', when='@0.12.0:')
+ depends_on('adios2@2.7.0:', when='@0.14.0:')
+ depends_on('adios2@2.5.0: ~mpi', when='~mpi')
+ depends_on('adios2@2.5.0: +mpi', when='+mpi')
+ with when('+python'):
+ depends_on('py-pybind11@2.6.2:', type='link')
+ depends_on('py-numpy@1.15.1:', type=['test', 'run'])
+ depends_on('py-mpi4py@2.1.0:', when='+mpi', type=['test', 'run'])
+ depends_on('python@3.6:', type=['link', 'test', 'run'])
+
+ conflicts('^hdf5 api=v16', msg='openPMD-api requires HDF5 APIs for 1.8+')
+
+ # Fix breaking HDF5 1.12.0 API when build with legacy api options
+ # https://github.com/openPMD/openPMD-api/pull/1012
+ patch('hdf5-1.12.0.patch', when='@:0.13.99 +hdf5')
extends('python', when='+python')
- # Fix breaking HDF5 1.12.0 API
- # https://github.com/openPMD/openPMD-api/pull/696
- patch('hdf5-1.12.0.patch', when='@:0.11.0 +hdf5')
-
def cmake_args(self):
spec = self.spec
args = [
- '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
- 'ON' if '+shared' in spec else 'OFF'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
# variants
- '-DopenPMD_USE_MPI:BOOL={0}'.format(
- 'ON' if '+mpi' in spec else 'OFF'),
- '-DopenPMD_USE_HDF5:BOOL={0}'.format(
- 'ON' if '+hdf5' in spec else 'OFF'),
- '-DopenPMD_USE_ADIOS1:BOOL={0}'.format(
- 'ON' if '+adios1' in spec else 'OFF'),
- '-DopenPMD_USE_ADIOS2:BOOL={0}'.format(
- 'ON' if '+adios2' in spec else 'OFF'),
- '-DopenPMD_USE_PYTHON:BOOL={0}'.format(
- 'ON' if '+python' in spec else 'OFF'),
+ self.define_from_variant('openPMD_USE_MPI', 'mpi'),
+ self.define_from_variant('openPMD_USE_HDF5', 'hdf5'),
+ self.define_from_variant('openPMD_USE_ADIOS1', 'adios1'),
+ self.define_from_variant('openPMD_USE_ADIOS2', 'adios2'),
+ self.define_from_variant('openPMD_USE_PYTHON', 'python'),
# tests and examples
- '-DBUILD_TESTING:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF'),
- '-DBUILD_EXAMPLES:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF'),
+ self.define('BUILD_TESTING', self.run_tests),
+ self.define('BUILD_EXAMPLES', self.run_tests)
]
# switch internally shipped third-party libraries for spack
if spec.satisfies('+python'):
- args.append('-DopenPMD_USE_INTERNAL_PYBIND11:BOOL=OFF')
- args.append('-DPYTHON_EXECUTABLE:FILEPATH={0}'.format(
- self.spec['python'].command.path))
-
- args.extend([
- '-DopenPMD_USE_INTERNAL_JSON:BOOL=OFF',
- '-DopenPMD_USE_INTERNAL_VARIANT:BOOL=OFF'
- ])
+ py_exe_define = 'Python_EXECUTABLE' \
+ if spec.version >= Version('0.13.0') else 'PYTHON_EXECUTABLE'
+ args += [
+ self.define(py_exe_define, self.spec['python'].command.path),
+ self.define('openPMD_USE_INTERNAL_PYBIND11', False)
+ ]
+
+ args += [
+ self.define('openPMD_USE_INTERNAL_JSON', False),
+ self.define('openPMD_USE_INTERNAL_VARIANT', False)
+ ]
if self.run_tests:
- args.append('-DopenPMD_USE_INTERNAL_CATCH:BOOL=OFF')
+ args.append(self.define('openPMD_USE_INTERNAL_CATCH', False))
return args
@@ -123,3 +132,23 @@ class OpenpmdApi(CMakePackage):
env.prepend_path('CMAKE_PREFIX_PATH',
self.spec['mpark-variant'].prefix)
env.prepend_path('CPATH', self.spec['mpark-variant'].prefix.include)
+
+ def check(self):
+ """CTest checks after the build phase"""
+ # note: for MPI-parallel tests, you can overwrite the standard CMake
+ # option -DMPIEXEC_EXECUTABLE=$(which jsrun) for jsrun or srun,
+ # etc.. Alternatively, you can also use -E <regex> to exclude
+ # parallel and MPI tests
+ with working_dir(self.build_directory):
+ # -j1 because individual tests create files that are read again by
+ # later tests
+ ctest('--output-on-failure', '-j1')
+
+ def test(self):
+ """Perform smoke tests on the installed package."""
+ exes = ['openpmd-ls'] # in 0.11.1+
+ for exe in exes:
+ spec_vers_str = '{0}'.format(self.spec.version)
+ reason = 'test version of {0} is {1}'.format(exe, spec_vers_str)
+ self.run_test(exe, ['--version'], [spec_vers_str],
+ installed=True, purpose=reason, skip_missing=False)
diff --git a/var/spack/repos/builtin/packages/openrasmol/package.py b/var/spack/repos/builtin/packages/openrasmol/package.py
new file mode 100644
index 0000000000..76ff5de93e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openrasmol/package.py
@@ -0,0 +1,68 @@
+# Copyright 2013-2021 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 Openrasmol(MakefilePackage):
+ """RasMol is a molecular graphics program intended for the
+ visualisation of proteins, nucleic acids and small molecules."""
+
+ homepage = "http://www.openrasmol.org/"
+ url = "https://sourceforge.net/projects/openrasmol/files/RasMol/RasMol_2.7.5/RasMol-2.7.5.2.tar.gz"
+
+ version('2.7.5.2', sha256='b975e6e69d5c6b161a81f04840945d2f220ac626245c61bcc6c56181b73a5718')
+
+ depends_on('imake', type='build')
+ depends_on('libxext', type='link')
+ depends_on('libxi', type='link')
+
+ depends_on('cbflib@0.9.2', type='link')
+ depends_on('cqrlib@1.1.2', type='link')
+ depends_on('cvector@1.0.3', type='link')
+ depends_on('neartree@3.1', type='link')
+ depends_on('xforms@1.0.91', type='link')
+
+ patch('rasmol_noqa.patch')
+ patch('rasmol_help.patch')
+
+ def edit(self, spec, prefix):
+ with working_dir('src'):
+ # Imakefile
+ bash = which('bash')
+ bash('./rasmol_build_options.sh')
+ # host.def
+ with open('host.def', 'w') as f:
+ f.write('#ifdef AfterVendorCF\n')
+ f.write('#define CcCmd {0}\n'.format(spack_cc))
+ f.write('#endif\n')
+
+ def setup_build_environment(self, env):
+ env.set('XFORMSLIB_DIR', self.spec['xforms'].prefix)
+ env.set('CBFLIB_DIR', self.spec['cbflib'].prefix)
+ env.set('CQRLIB_DIR', self.spec['cqrlib'].prefix)
+ env.set('CVECTOR_DIR', self.spec['cvector'].prefix)
+ env.set('NEARTREE_DIR', self.spec['neartree'].prefix)
+
+ def build(self, spec, prefix):
+ with working_dir('src'):
+ bash = which('bash')
+ bash('./build_all.sh')
+
+ def install(self, spec, prefix):
+ install_tree('./data', prefix.sample)
+ install_tree('./doc', prefix.doc)
+ with working_dir('src'):
+ bash = which('bash')
+ bash('./rasmol_install.sh', '--prefix={0}'.format(prefix))
+
+ def test(self):
+ testdir = self.test_suite.current_test_data_dir
+ opts = []
+ opts.append('-insecure')
+ opts.append('-script')
+ opts.append(join_path(testdir, 'test.rsc'))
+ opts.append(join_path(self.prefix.sample, '1crn.pdb'))
+ self.run_test('rasmol', options=opts)
diff --git a/var/spack/repos/builtin/packages/openrasmol/rasmol_help.patch b/var/spack/repos/builtin/packages/openrasmol/rasmol_help.patch
new file mode 100644
index 0000000000..5ced3123be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openrasmol/rasmol_help.patch
@@ -0,0 +1,22 @@
+--- a/src/command.c 2021-02-04 01:59:48.968985028 +0900
++++ b/src/command.c 2021-02-04 02:02:15.548984240 +0900
+@@ -118,6 +118,10 @@
+ #include <stdio.h>
+ #include <time.h>
+
++#include <limits.h>
++#ifndef PATH_MAX
++#define PATH_MAX 1024
++#endif
+
+ #if !defined(IBMPC) && !defined(VMS) && !defined(APPLEMAC)
+ #include <pwd.h>
+@@ -229,7 +233,7 @@
+
+ #define HelpPool 16
+ static char *HelpFileName;
+-static char HelpFileBuf[80];
++static char HelpFileBuf[PATH_MAX];
+ static HlpEntry __far *FreeInfo;
+ static HlpEntry __far *HelpInfo;
+
diff --git a/var/spack/repos/builtin/packages/openrasmol/rasmol_noqa.patch b/var/spack/repos/builtin/packages/openrasmol/rasmol_noqa.patch
new file mode 100644
index 0000000000..04c559b5cf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openrasmol/rasmol_noqa.patch
@@ -0,0 +1,26 @@
+--- a/src/rasmol_install.sh 2021-01-23 02:35:53.420843463 +0900
++++ b/src/rasmol_install.sh 2021-01-23 02:46:42.576839974 +0900
+@@ -226,11 +226,6 @@
+ fi
+ fi
+
+-echo -n "Install rasmol into \"$RASMOLPATH\"? [y/N] ";
+-read ok
+-if [ "$ok" != "y" ] && [ "$ok" != "Y" ] ; then exit 1 ;
+-fi
+-
+ savecurdir=`pwd` ;
+ cd $RASMOLPATH ;
+ rasmolpath=`pwd` ;
+@@ -245,11 +240,6 @@
+
+ fi
+
+-echo -n "Install rasmol program wrapper in \"$bindest/rasmol\"? [y/N] ";
+-read ok
+-if [ "$ok" != "y" ] && [ "$ok" != "Y" ]; then unset bindest ;
+-fi
+-
+
+ if ! [ -d $bindest ] ; then
+ mkdir -p $bindest ;
diff --git a/var/spack/repos/builtin/packages/openrasmol/test/test.rsc b/var/spack/repos/builtin/packages/openrasmol/test/test.rsc
new file mode 100644
index 0000000000..654f542115
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openrasmol/test/test.rsc
@@ -0,0 +1,3 @@
+wireframe true
+write ps test.ps
+quit
diff --git a/var/spack/repos/builtin/packages/openresty/package.py b/var/spack/repos/builtin/packages/openresty/package.py
index 23708b280d..591b6c902b 100644
--- a/var/spack/repos/builtin/packages/openresty/package.py
+++ b/var/spack/repos/builtin/packages/openresty/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/openscenegraph/package.py b/var/spack/repos/builtin/packages/openscenegraph/package.py
index e22d7fc625..87747b6bc7 100644
--- a/var/spack/repos/builtin/packages/openscenegraph/package.py
+++ b/var/spack/repos/builtin/packages/openscenegraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -27,7 +27,7 @@ class Openscenegraph(CMakePackage):
depends_on('cmake@2.8.7:', type='build')
depends_on('gl')
depends_on('qt+opengl', when='@:3.5.4') # Qt windowing system was moved into separate osgQt project
- depends_on('qt@4:', when='@3.2:')
+ depends_on('qt@4:', when='@3.2:3.5.4')
depends_on('qt@:4', when='@:3.1')
depends_on('libxinerama')
depends_on('libxrandr')
diff --git a/var/spack/repos/builtin/packages/openslide/package.py b/var/spack/repos/builtin/packages/openslide/package.py
index c41da2461b..38456d83de 100644
--- a/var/spack/repos/builtin/packages/openslide/package.py
+++ b/var/spack/repos/builtin/packages/openslide/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Openslide(AutotoolsPackage):
"""OpenSlide reads whole slide image files."""
- homepage = "http://openslide.org/"
+ homepage = "https://openslide.org/"
url = "https://github.com/openslide/openslide/releases/download/v3.4.1/openslide-3.4.1.tar.xz"
version('3.4.1', sha256='9938034dba7f48fadc90a2cdf8cfe94c5613b04098d1348a5ff19da95b990564')
diff --git a/var/spack/repos/builtin/packages/openslp/package.py b/var/spack/repos/builtin/packages/openslp/package.py
index 5957777b5f..5a7d595f99 100644
--- a/var/spack/repos/builtin/packages/openslp/package.py
+++ b/var/spack/repos/builtin/packages/openslp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
index 6b3645148e..56f6d3e488 100644
--- a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
@@ -1,45 +1,41 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 os.path
import spack
import spack.store
-
-import os
-import os.path
+from spack import *
class OpenspeedshopUtils(CMakePackage):
- """OpenSpeedShop is a community effort by The Krell Institute with
- current direct funding from DOEs NNSA. It builds on top of a
- broad list of community infrastructures, most notably Dyninst
- and MRNet from UW, libmonitor from Rice, and PAPI from UTK.
- OpenSpeedShop is an open source multi platform Linux performance
- tool which is targeted to support performance analysis of
- applications running on both single node and large scale IA64,
- IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue Gene and
- Cray platforms. OpenSpeedShop development is hosted by the Krell
- Institute. The infrastructure and base components of OpenSpeedShop
+ """OpenSpeedShop is a community effort led by Trenza, Inc.
+ It builds on top of a broad list of community infrastructures,
+ most notably Dyninst and MRNet from UW, libmonitor from Rice,
+ and PAPI from UTK. OpenSpeedShop is an open source multi platform
+ Linux performance tool which is targeted to support performance
+ analysis of applications running on both single node and large
+ scale IA64, IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue
+ Gene and Cray platforms. OpenSpeedShop development is hosted by
+ Trenza Inc.. The infrastructure and base components of OpenSpeedShop
are released as open source code primarily under LGPL.
openspeedshop-utils is a package that does not have the
qt3 gui. It was created to avoid a conflict between
openspeedshop and cbtf-argonavis-gui based on the fact
- that spack will not allow a qt3 and qt4/qt5 dependency in a packages
- dependency tree.
+ that spack will not allow a qt3 and qt4/qt5 dependency in a
+ packages dependency tree.
"""
homepage = "http://www.openspeedshop.org"
git = "https://github.com/OpenSpeedShop/openspeedshop.git"
version('develop', branch='master')
+ version('2.4.2.1', branch='2.4.2.1')
+ version('2.4.2', branch='2.4.2')
version('2.4.1', branch='2.4.1')
- version('2.4.0', branch='2.4.0')
- version('2.3.1.5', branch='2.3.1.5')
- version('2.3.1.4', branch='2.3.1.4')
- version('2.3.1.3', branch='2.3.1.3')
variant('runtime', default=False,
description="build only the runtime libraries and collectors.")
@@ -51,8 +47,9 @@ class OpenspeedshopUtils(CMakePackage):
variant('cuda', default=False,
description="build with cuda packages included.")
- variant('build_type', default='None', values=('None',),
- description='CMake build type')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo'))
# MPI variants
variant('openmpi', default=False,
@@ -83,9 +80,9 @@ class OpenspeedshopUtils(CMakePackage):
depends_on("flex@2.6.1", type='build')
# For binutils
- depends_on("binutils", type='build')
+ depends_on("binutils+plugins~gold@2.32", type='build')
- depends_on("elf", type="link")
+ depends_on("elfutils", type="link")
depends_on("libdwarf")
depends_on("sqlite")
@@ -94,7 +91,7 @@ class OpenspeedshopUtils(CMakePackage):
depends_on("boost@1.66.0:1.69.0")
depends_on("dyninst@develop", when='@develop')
- depends_on("dyninst@10:", when='@2.3.1.3:9999')
+ depends_on("dyninst@10:", when='@2.4.0:9999')
depends_on("python@2.7.14:2.7.99", type=('build', 'run'))
@@ -102,44 +99,44 @@ class OpenspeedshopUtils(CMakePackage):
# Dependencies for the openspeedshop cbtf packages.
depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run'))
- depends_on("cbtf@1.9.1.0:9999", when='@2.3.1.3:9999', type=('build', 'link', 'run'))
+ depends_on("cbtf@1.9.3:9999", when='@2.4.0:9999', type=('build', 'link', 'run'))
depends_on("cbtf-krell@develop", when='@develop', type=('build', 'link', 'run'))
- depends_on("cbtf-krell@1.9.1.0:9999", when='@2.3.1.3:9999', type=('build', 'link', 'run'))
+ depends_on("cbtf-krell@1.9.3:9999", when='@2.4.0:9999', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+crayfe', when='@2.3.1.3:9999+crayfe', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+crayfe', when='@2.4.0:9999+crayfe', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+cti', when='@develop+cti', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+cti', when='@2.3.1.3:9999+cti', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+cti', when='@2.4.0:9999+cti', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+mpich', when='@develop+mpich', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+mpich', when='@2.3.1.3:9999+mpich', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+mpich', when='@2.4.0:9999+mpich', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+mpich2', when='@2.3.1.3:9999+mpich2', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+mpich2', when='@2.4.0:9999+mpich2', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+mpt', when='@develop+mpt', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+mpt', when='@2.3.1.3:9999+mpt', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+mpt', when='@2.4.0:9999+mpt', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+mvapich', when='@develop+mvapich', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+mvapich', when='@2.3.1.3:9999+mvapich', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+mvapich', when='@2.4.0:9999+mvapich', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+mvapich2', when='@2.3.1.3:9999+mvapich2', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+mvapich2', when='@2.4.0:9999+mvapich2', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+openmpi', when='@2.3.1.3:9999+openmpi', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+openmpi', when='@2.4.0:9999+openmpi', type=('build', 'link', 'run'))
depends_on("cbtf-argonavis@develop", when='@develop+cuda', type=('build', 'link', 'run'))
- depends_on("cbtf-argonavis@1.9.1.0:9999", when='@2.3.1.3:9999+cuda', type=('build', 'link', 'run'))
+ depends_on("cbtf-argonavis@1.9.3:9999", when='@2.4.0:9999+cuda', type=('build', 'link', 'run'))
# For MRNet
depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run'))
depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run'))
- depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3:9999+cti', type=('build', 'link', 'run'))
- depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3:9999', type=('build', 'link', 'run'))
+ depends_on("mrnet@5.0.1-3:+cti", when='@2.4.0:9999+cti', type=('build', 'link', 'run'))
+ depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.4.0:9999', type=('build', 'link', 'run'))
patch('arm.patch', when='target=aarch64:')
parallel = False
@@ -162,7 +159,7 @@ class OpenspeedshopUtils(CMakePackage):
# Equivalent to install-tool cmake arg:
# '-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
- # % <base dir>/cbtf_v2.3.1.release/compute)
+ # % <base dir>/cbtf_v2.4.0elease/compute)
cray_login_node_options.append('-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
% be_ck.prefix)
cray_login_node_options.append('-DRUNTIME_PLATFORM=%s'
@@ -174,7 +171,7 @@ class OpenspeedshopUtils(CMakePackage):
# Appends base options to cmake_args
spec = self.spec
- compile_flags = "-O2 -g"
+ compile_flags = "-O2 -g -Wall"
cmake_args = []
@@ -227,7 +224,7 @@ class OpenspeedshopUtils(CMakePackage):
base_options = []
base_options.append('-DBINUTILS_DIR=%s' % spec['binutils'].prefix)
- base_options.append('-DLIBELF_DIR=%s' % spec['elf'].prefix)
+ base_options.append('-DLIBELF_DIR=%s' % spec['elfutils'].prefix)
base_options.append('-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix)
base_options.append('-DPYTHON_EXECUTABLE=%s' % python_exe)
base_options.append('-DPYTHON_INCLUDE_DIR=%s' % python_include)
diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py
index adb1d59ca0..3d5a34857c 100644
--- a/var/spack/repos/builtin/packages/openspeedshop/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop/package.py
@@ -1,25 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack.store
-import os
+from spack import *
class Openspeedshop(CMakePackage):
- """OpenSpeedShop is a community effort by The Krell Institute with
- current direct funding from DOEs NNSA. It builds on top of a
- broad list of community infrastructures, most notably Dyninst
- and MRNet from UW, libmonitor from Rice, and PAPI from UTK.
- OpenSpeedShop is an open source multi platform Linux performance
- tool which is targeted to support performance analysis of
- applications running on both single node and large scale IA64,
- IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue Gene and
- Cray platforms. OpenSpeedShop development is hosted by the Krell
- Institute. The infrastructure and base components of OpenSpeedShop
+ """OpenSpeedShop is a community effort led by Trenza, Inc.
+ It builds on top of a broad list of community infrastructures,
+ most notably Dyninst and MRNet from UW, libmonitor from Rice,
+ and PAPI from UTK. OpenSpeedShop is an open source multi platform
+ Linux performance tool which is targeted to support performance
+ analysis of applications running on both single node and large
+ scale IA64, IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue
+ Gene and Cray platforms. OpenSpeedShop development is hosted by
+ Trenza Inc.. The infrastructure and base components of OpenSpeedShop
are released as open source code primarily under LGPL.
"""
@@ -27,11 +26,9 @@ class Openspeedshop(CMakePackage):
git = "https://github.com/OpenSpeedShop/openspeedshop.git"
version('develop', branch='master')
+ version('2.4.2.1', branch='2.4.2.1')
+ version('2.4.2', branch='2.4.2')
version('2.4.1', branch='2.4.1')
- version('2.4.0', branch='2.4.0')
- version('2.3.1.5', branch='2.3.1.5')
- version('2.3.1.4', branch='2.3.1.4')
- version('2.3.1.3', branch='2.3.1.3')
variant('runtime', default=False,
description="build only the runtime libraries and collectors.")
@@ -43,11 +40,12 @@ class Openspeedshop(CMakePackage):
variant('cuda', default=False,
description="build with cuda packages included.")
- variant('gui', default='qt3', values=('none', 'qt3', 'qt4'),
+ variant('gui', default='none', values=('none', 'qt3', 'qt4'),
description='Build or not build a GUI of choice')
- variant('build_type', default='None', values=('None',),
- description='CMake build type')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo'))
# MPI variants
variant('openmpi', default=False,
@@ -78,19 +76,18 @@ class Openspeedshop(CMakePackage):
depends_on("flex@2.6.1", type='build')
# For binutils
- depends_on("binutils")
+ depends_on("binutils+plugins~gold@2.32")
- depends_on("elf", type="link")
+ depends_on("elfutils", type="link")
depends_on("libdwarf")
depends_on("sqlite")
# For boost
- # depends_on("boost@1.66.0:")
- depends_on("boost@1.66.0:1.69.0")
+ depends_on("boost@1.70.0:")
depends_on("dyninst@develop", when='@develop')
- depends_on("dyninst@10:", when='@2.3.1.3:9999')
+ depends_on("dyninst@10:", when='@2.4.0:9999')
depends_on("python@2.7.14:2.7.99", type=('build', 'run'))
@@ -100,44 +97,44 @@ class Openspeedshop(CMakePackage):
# Dependencies for the openspeedshop cbtf packages.
depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run'))
- depends_on("cbtf@1.9.1.0:9999", when='@2.3.1.3:9999', type=('build', 'link', 'run'))
+ depends_on("cbtf@1.9.3:9999", when='@2.4.0:9999', type=('build', 'link', 'run'))
depends_on("cbtf-krell@develop", when='@develop', type=('build', 'link', 'run'))
- depends_on("cbtf-krell@1.9.1.0:9999", when='@2.3.1.3:9999', type=('build', 'link', 'run'))
+ depends_on("cbtf-krell@1.9.3:9999", when='@2.4.0:9999', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+crayfe', when='@2.3.1.3:9999+crayfe', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+crayfe', when='@2.4.0:9999+crayfe', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+cti', when='@develop+cti', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+cti', when='@2.3.1.3:9999+cti', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+cti', when='@2.4.0:9999+cti', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+mpich', when='@develop+mpich', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+mpich', when='@2.3.1.3:9999+mpich', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+mpich', when='@2.4.0:9999+mpich', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+mpich2', when='@2.3.1.3:9999+mpich2', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+mpich2', when='@2.4.0:9999+mpich2', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+mpt', when='@develop+mpt', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+mpt', when='@2.3.1.3:9999+mpt', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+mpt', when='@2.4.0:9999+mpt', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+mvapich', when='@develop+mvapich', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+mvapich', when='@2.3.1.3:9999+mvapich', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+mvapich', when='@2.4.0:9999+mvapich', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+mvapich2', when='@2.3.1.3:9999+mvapich2', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+mvapich2', when='@2.4.0:9999+mvapich2', type=('build', 'link', 'run'))
depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi', type=('build', 'link', 'run'))
- depends_on('cbtf-krell@1.9.1.0:9999+openmpi', when='@2.3.1.3:9999+openmpi', type=('build', 'link', 'run'))
+ depends_on('cbtf-krell@1.9.3:9999+openmpi', when='@2.4.0:9999+openmpi', type=('build', 'link', 'run'))
depends_on("cbtf-argonavis@develop", when='@develop+cuda', type=('build', 'link', 'run'))
- depends_on("cbtf-argonavis@1.9.1.0:9999", when='@2.3.1.3:9999+cuda', type=('build', 'link', 'run'))
+ depends_on("cbtf-argonavis@1.9.3:9999", when='@2.4.0:9999+cuda', type=('build', 'link', 'run'))
# For MRNet
depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run'))
depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run'))
- depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3:9999+cti', type=('build', 'link', 'run'))
- depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3:9999', type=('build', 'link', 'run'))
+ depends_on("mrnet@5.0.1-3:+cti", when='@2.4.0:9999+cti', type=('build', 'link', 'run'))
+ depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.4.0:9999', type=('build', 'link', 'run'))
patch('arm.patch', when='target=aarch64:')
parallel = False
@@ -161,7 +158,7 @@ class Openspeedshop(CMakePackage):
# Equivalent to install-tool cmake arg:
# '-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
- # % <base dir>/cbtf_v2.3.1.release/compute)
+ # % <base dir>/cbtf_v2.4.0.release/compute)
cray_login_node_options.append('-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
% be_ck.prefix)
cray_login_node_options.append('-DRUNTIME_PLATFORM=%s'
@@ -173,7 +170,7 @@ class Openspeedshop(CMakePackage):
spec = self.spec
- compile_flags = "-O2 -g"
+ compile_flags = "-O2 -g -Wall"
cmake_args = []
@@ -186,10 +183,15 @@ class Openspeedshop(CMakePackage):
cmake_args.extend(
['-DCMAKE_CXX_FLAGS=%s' % compile_flags,
'-DCMAKE_C_FLAGS=%s' % compile_flags,
- '-DINSTRUMENTOR=%s' % instrumentor_setting,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix])
+ '-DINSTRUMENTOR=%s' % instrumentor_setting,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix])
+
+ if spec.satisfies('+cuda'):
+ cmake_args.extend(
+ ['-DCBTF_ARGONAVIS_DIR=%s'
+ % spec['cbtf-argonavis'].prefix])
else:
@@ -198,12 +200,12 @@ class Openspeedshop(CMakePackage):
guitype = self.spec.variants['gui'].value
cmake_args.extend(
['-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags,
- '-DINSTRUMENTOR=%s' % instrumentor_setting,
- '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix])
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DINSTRUMENTOR=%s' % instrumentor_setting,
+ '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix])
if guitype == 'none':
cmake_args.extend(
@@ -216,6 +218,11 @@ class Openspeedshop(CMakePackage):
['-DQTLIB_DIR=%s'
% spec['qt'].prefix])
+ if spec.satisfies('+cuda'):
+ cmake_args.extend(
+ ['-DCBTF_ARGONAVIS_DIR=%s'
+ % spec['cbtf-argonavis'].prefix])
+
if spec.satisfies('+crayfe'):
# We need to build target/compute node
# components/libraries first then pass
@@ -232,17 +239,18 @@ class Openspeedshop(CMakePackage):
python_exe = spec['python'].command.path
python_library = spec['python'].libs[0]
python_include = spec['python'].headers.directories[0]
+ true_value = 'TRUE'
base_options = []
base_options.append('-DBINUTILS_DIR=%s' % spec['binutils'].prefix)
- base_options.append('-DLIBELF_DIR=%s' % spec['elf'].prefix)
+ base_options.append('-DLIBELF_DIR=%s' % spec['elfutils'].prefix)
base_options.append('-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix)
base_options.append('-DPYTHON_EXECUTABLE=%s' % python_exe)
base_options.append('-DPYTHON_INCLUDE_DIR=%s' % python_include)
base_options.append('-DPYTHON_LIBRARY=%s' % python_library)
- base_options.append('-DBoost_NO_SYSTEM_PATHS=TRUE')
- base_options.append('-DBoost_NO_BOOST_CMAKE=TRUE')
+ base_options.append('-DBoost_NO_SYSTEM_PATHS=%s' % true_value)
+ base_options.append('-DBoost_NO_BOOST_CMAKE=%s' % true_value)
base_options.append('-DBOOST_ROOT=%s' % spec['boost'].prefix)
base_options.append('-DBoost_DIR=%s' % spec['boost'].prefix)
base_options.append('-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib)
@@ -298,6 +306,7 @@ class Openspeedshop(CMakePackage):
lib_dir = self.prefix.lib64
else:
lib_dir = self.prefix.lib
+
plugin_path = '/openspeedshop'
oss_plugin_path = lib_dir + plugin_path
env.set('OPENSS_PLUGIN_PATH', oss_plugin_path)
diff --git a/var/spack/repos/builtin/packages/openssh/package.py b/var/spack/repos/builtin/packages/openssh/package.py
index 41542691fc..51b25939cb 100644
--- a/var/spack/repos/builtin/packages/openssh/package.py
+++ b/var/spack/repos/builtin/packages/openssh/package.py
@@ -1,8 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import re
+import socket
+
from spack import *
@@ -16,29 +19,43 @@ class Openssh(AutotoolsPackage):
"""
homepage = "https://www.openssh.com/"
- url = "https://mirrors.sonic.net/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz"
-
- version('8.4p1', sha256='5a01d22e407eb1c05ba8a8f7c654d388a13e9f226e4ed33bd38748dafa1d2b24')
- version('8.3p1', sha256='f2befbe0472fe7eb75d23340eb17531cb6b3aac24075e2066b41f814e12387b2')
- version('8.1p1', sha256='02f5dbef3835d0753556f973cd57b4c19b6b1f6cd24c03445e23ac77ca1b93ff')
- version('7.9p1', sha256='6b4b3ba2253d84ed3771c8050728d597c91cfce898713beb7b64a305b6f11aad')
- version('7.6p1', sha256='a323caeeddfe145baaa0db16e98d784b1fbc7dd436a6bf1f479dfd5cd1d21723')
- version('7.5p1', sha256='9846e3c5fab9f0547400b4d2c017992f914222b3fd1f8eee6c7dc6bc5e59f9f0')
- version('7.4p1', sha256='1b1fc4a14e2024293181924ed24872e6f2e06293f3e8926a376b8aec481f19d1')
- version('7.3p1', sha256='3ffb989a6dcaa69594c3b550d4855a5a2e1718ccdde7f5e36387b424220fbecc')
- version('7.2p2', sha256='a72781d1a043876a224ff1b0032daa4094d87565a68528759c1c2cab5482548c')
- version('7.1p2', sha256='dd75f024dcf21e06a0d6421d582690bf987a1f6323e32ad6619392f3bfde6bbd')
- version('7.0p1', sha256='fd5932493a19f4c81153d812ee4e042b49bbd3b759ab3d9344abecc2bc1485e5')
- version('6.9p1', sha256='6e074df538f357d440be6cf93dc581a21f22d39e236f217fcd8eacbb6c896cfe')
- version('6.8p1', sha256='3ff64ce73ee124480b5bf767b9830d7d3c03bbcb6abe716b78f0192c37ce160e')
- version('6.7p1', sha256='b2f8394eae858dabbdef7dac10b99aec00c95462753e80342e530bbb6f725507')
- version('6.6p1', sha256='48c1f0664b4534875038004cc4f3555b8329c2a81c1df48db5c517800de203bb')
+ url = "https://mirrors.sonic.net/pub/OpenBSD/OpenSSH/portable/openssh-8.7p1.tar.gz"
+
+ version('8.7p1', sha256='7ca34b8bb24ae9e50f33792b7091b3841d7e1b440ff57bc9fabddf01e2ed1e24')
+ version('8.6p1', sha256='c3e6e4da1621762c850d03b47eed1e48dff4cc9608ddeb547202a234df8ed7ae')
+ version('8.5p1', sha256='f52f3f41d429aa9918e38cf200af225ccdd8e66f052da572870c89737646ec25')
+ version('8.4p1', sha256='5a01d22e407eb1c05ba8a8f7c654d388a13e9f226e4ed33bd38748dafa1d2b24')
+ version('8.3p1', sha256='f2befbe0472fe7eb75d23340eb17531cb6b3aac24075e2066b41f814e12387b2')
+ version('8.1p1', sha256='02f5dbef3835d0753556f973cd57b4c19b6b1f6cd24c03445e23ac77ca1b93ff')
+ version('7.9p1', sha256='6b4b3ba2253d84ed3771c8050728d597c91cfce898713beb7b64a305b6f11aad')
+ version('7.6p1', sha256='a323caeeddfe145baaa0db16e98d784b1fbc7dd436a6bf1f479dfd5cd1d21723')
+ version('7.5p1', sha256='9846e3c5fab9f0547400b4d2c017992f914222b3fd1f8eee6c7dc6bc5e59f9f0')
+ version('7.4p1', sha256='1b1fc4a14e2024293181924ed24872e6f2e06293f3e8926a376b8aec481f19d1')
+ version('7.3p1', sha256='3ffb989a6dcaa69594c3b550d4855a5a2e1718ccdde7f5e36387b424220fbecc')
+ version('7.2p2', sha256='a72781d1a043876a224ff1b0032daa4094d87565a68528759c1c2cab5482548c')
+ version('7.1p2', sha256='dd75f024dcf21e06a0d6421d582690bf987a1f6323e32ad6619392f3bfde6bbd')
+ version('7.0p1', sha256='fd5932493a19f4c81153d812ee4e042b49bbd3b759ab3d9344abecc2bc1485e5')
+ version('6.9p1', sha256='6e074df538f357d440be6cf93dc581a21f22d39e236f217fcd8eacbb6c896cfe')
+ version('6.8p1', sha256='3ff64ce73ee124480b5bf767b9830d7d3c03bbcb6abe716b78f0192c37ce160e')
+ version('6.7p1', sha256='b2f8394eae858dabbdef7dac10b99aec00c95462753e80342e530bbb6f725507')
+ version('6.6p1', sha256='48c1f0664b4534875038004cc4f3555b8329c2a81c1df48db5c517800de203bb')
depends_on('openssl@:1.0', when='@:7.7p1')
depends_on('openssl')
depends_on('libedit')
depends_on('ncurses')
depends_on('zlib')
+ depends_on('py-twisted', type='test')
+
+ maintainers = ['bernhardkaindl']
+ executables = ['^ssh$', '^scp$', '^sftp$', '^ssh-add$', '^ssh-agent$',
+ '^ssh-keygen$', '^ssh-keyscan$']
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('-V', output=str, error=str).rstrip()
+ match = re.search(r'OpenSSH_([^, ]+)', output)
+ return match.group(1) if match else None
def configure_args(self):
# OpenSSH's privilege separation path defaults to /var/empty. At
@@ -46,3 +63,40 @@ class Openssh(AutotoolsPackage):
# install step and fail if they cannot do so.
args = ['--with-privsep-path={0}'.format(self.prefix.var.empty)]
return args
+
+ def install(self, spec, prefix):
+ """Install generates etc/sshd_config, but it fails in parallel mode"""
+ make('install', parallel=False)
+
+ def setup_build_environment(self, env):
+ """Until spack supports a real implementation of setup_test_environment()"""
+ if self.run_tests:
+ self.setup_test_environment(env)
+
+ def setup_test_environment(self, env):
+ """Configure the regression test suite like Debian's openssh-tests package"""
+ p = self.prefix
+ j = join_path
+ env.set('TEST_SSH_SSH', p.bin.ssh)
+ env.set('TEST_SSH_SCP', p.bin.scp)
+ env.set('TEST_SSH_SFTP', p.bin.sftp)
+ env.set('TEST_SSH_SK_HELPER', j(p.libexec, 'ssh-sk-helper'))
+ env.set('TEST_SSH_SFTPSERVER', j(p.libexec, 'sftp-server'))
+ env.set('TEST_SSH_PKCS11_HELPER', j(p.libexec, 'ssh-pkcs11-helper'))
+ env.set('TEST_SSH_SSHD', p.sbin.sshd)
+ env.set('TEST_SSH_SSHADD', j(p.bin, 'ssh-add'))
+ env.set('TEST_SSH_SSHAGENT', j(p.bin, 'ssh-agent'))
+ env.set('TEST_SSH_SSHKEYGEN', j(p.bin, 'ssh-keygen'))
+ env.set('TEST_SSH_SSHKEYSCAN', j(p.bin, 'ssh-keyscan'))
+ env.set('TEST_SSH_UNSAFE_PERMISSIONS', '1')
+ # Get a free port for the simple tests and skip the complex tests:
+ tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ tcp.bind(('', 0))
+ host, port = tcp.getsockname()
+ tcp.close()
+ env.set('TEST_SSH_PORT', port)
+ env.set('SKIP_LTESTS', 'key-options forward-control forwarding '
+ 'multiplex addrmatch cfgmatch cfgmatchlisten percent')
+
+ def installcheck(self):
+ make('-e', 'tests', parallel=False)
diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py
index 3e6c6b4f7e..5c434ef32d 100644
--- a/var/spack/repos/builtin/packages/openssl/package.py
+++ b/var/spack/repos/builtin/packages/openssl/package.py
@@ -1,15 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+import re
+
import llnl.util.tty as tty
from spack import *
-import spack.architecture
-
-import os
-import re
class Openssl(Package): # Uses Fake Autotools, should subclass Package
@@ -17,63 +16,68 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
commercial-grade, and full-featured toolkit for the Transport
Layer Security (TLS) and Secure Sockets Layer (SSL) protocols.
It is also a general-purpose cryptography library."""
- homepage = "http://www.openssl.org"
+ homepage = "https://www.openssl.org"
# URL must remain http:// so Spack can bootstrap curl
- url = "http://www.openssl.org/source/openssl-1.1.1d.tar.gz"
- list_url = "http://www.openssl.org/source/old/"
+ url = "https://www.openssl.org/source/openssl-1.1.1d.tar.gz"
+ list_url = "https://www.openssl.org/source/old/"
list_depth = 1
executables = ['openssl']
# The latest stable version is the 1.1.1 series. This is also our Long Term
# Support (LTS) version, supported until 11th September 2023.
- version('1.1.1h', sha256='5c9ca8774bd7b03e5784f26ae9e9e6d749c9da2438545077e6b3d755a06595d9')
- version('1.1.1g', sha256='ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46')
- version('1.1.1f', sha256='186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35')
- version('1.1.1e', sha256='694f61ac11cb51c9bf73f54e771ff6022b0327a43bbdfa1b2f19de1662a6dcbe')
- version('1.1.1d', sha256='1e3a91bc1f9dfce01af26026f856e064eab4c8ee0a8f457b5ae30b40b8b711f2')
- version('1.1.1c', sha256='f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90')
- version('1.1.1b', sha256='5c557b023230413dfb0756f3137a13e6d726838ccd1430888ad15bfb2b43ea4b')
- version('1.1.1a', sha256='fc20130f8b7cbd2fb918b2f14e2f429e109c31ddd0fb38fc5d71d9ffed3f9f41')
- version('1.1.1', sha256='2836875a0f89c03d0fdf483941512613a50cfb421d6fd94b9f41d7279d586a3d')
+ version('1.1.1l', sha256='0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1')
+ version('1.1.1k', sha256='892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5', deprecated=True)
+ version('1.1.1j', sha256='aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf', deprecated=True)
+ version('1.1.1i', sha256='e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242', deprecated=True)
+ version('1.1.1h', sha256='5c9ca8774bd7b03e5784f26ae9e9e6d749c9da2438545077e6b3d755a06595d9', deprecated=True)
+ version('1.1.1g', sha256='ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46', deprecated=True)
+ version('1.1.1f', sha256='186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35', deprecated=True)
+ version('1.1.1e', sha256='694f61ac11cb51c9bf73f54e771ff6022b0327a43bbdfa1b2f19de1662a6dcbe', deprecated=True)
+ version('1.1.1d', sha256='1e3a91bc1f9dfce01af26026f856e064eab4c8ee0a8f457b5ae30b40b8b711f2', deprecated=True)
+ version('1.1.1c', sha256='f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90', deprecated=True)
+ version('1.1.1b', sha256='5c557b023230413dfb0756f3137a13e6d726838ccd1430888ad15bfb2b43ea4b', deprecated=True)
+ version('1.1.1a', sha256='fc20130f8b7cbd2fb918b2f14e2f429e109c31ddd0fb38fc5d71d9ffed3f9f41', deprecated=True)
+ version('1.1.1', sha256='2836875a0f89c03d0fdf483941512613a50cfb421d6fd94b9f41d7279d586a3d', deprecated=True)
# The 1.1.0 series is out of support and should not be used.
- version('1.1.0l', sha256='74a2f756c64fd7386a29184dc0344f4831192d61dc2481a93a4c5dd727f41148')
- version('1.1.0k', sha256='efa4965f4f773574d6cbda1cf874dbbe455ab1c0d4f906115f867d30444470b1')
- version('1.1.0j', sha256='31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246')
- version('1.1.0i', sha256='ebbfc844a8c8cc0ea5dc10b86c9ce97f401837f3fa08c17b2cdadc118253cf99')
- version('1.1.0g', sha256='de4d501267da39310905cb6dc8c6121f7a2cad45a7707f76df828fe1b85073af')
- version('1.1.0e', sha256='57be8618979d80c910728cfc99369bf97b2a1abd8f366ab6ebdee8975ad3874c')
- version('1.1.0d', sha256='7d5ebb9e89756545c156ff9c13cf2aa6214193b010a468a3bc789c3c28fe60df')
- version('1.1.0c', sha256='fc436441a2e05752d31b4e46115eb89709a28aef96d4fe786abe92409b2fd6f5')
+ version('1.1.0l', sha256='74a2f756c64fd7386a29184dc0344f4831192d61dc2481a93a4c5dd727f41148', deprecated=True)
+ version('1.1.0k', sha256='efa4965f4f773574d6cbda1cf874dbbe455ab1c0d4f906115f867d30444470b1', deprecated=True)
+ version('1.1.0j', sha256='31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246', deprecated=True)
+ version('1.1.0i', sha256='ebbfc844a8c8cc0ea5dc10b86c9ce97f401837f3fa08c17b2cdadc118253cf99', deprecated=True)
+ version('1.1.0g', sha256='de4d501267da39310905cb6dc8c6121f7a2cad45a7707f76df828fe1b85073af', deprecated=True)
+ version('1.1.0e', sha256='57be8618979d80c910728cfc99369bf97b2a1abd8f366ab6ebdee8975ad3874c', deprecated=True)
+ version('1.1.0d', sha256='7d5ebb9e89756545c156ff9c13cf2aa6214193b010a468a3bc789c3c28fe60df', deprecated=True)
+ version('1.1.0c', sha256='fc436441a2e05752d31b4e46115eb89709a28aef96d4fe786abe92409b2fd6f5', deprecated=True)
# The 1.0.2 series is out of support and should not be used.
- version('1.0.2u', sha256='ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16')
- version('1.0.2t', sha256='14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc')
- version('1.0.2s', sha256='cabd5c9492825ce5bd23f3c3aeed6a97f8142f606d893df216411f07d1abab96')
- version('1.0.2r', sha256='ae51d08bba8a83958e894946f15303ff894d75c2b8bbd44a852b64e3fe11d0d6')
- version('1.0.2p', sha256='50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00')
- version('1.0.2o', sha256='ec3f5c9714ba0fd45cb4e087301eb1336c317e0d20b575a125050470e8089e4d')
- version('1.0.2n', sha256='370babb75f278c39e0c50e8c4e7493bc0f18db6867478341a832a982fd15a8fe')
- version('1.0.2m', sha256='8c6ff15ec6b319b50788f42c7abc2890c08ba5a1cdcd3810eb9092deada37b0f')
- version('1.0.2k', sha256='6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0')
- version('1.0.2j', sha256='e7aff292be21c259c6af26469c7a9b3ba26e9abaaffd325e3dccc9785256c431')
- version('1.0.2i', sha256='9287487d11c9545b6efb287cdb70535d4e9b284dd10d51441d9b9963d000de6f')
- version('1.0.2h', sha256='1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919')
- version('1.0.2g', sha256='b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33')
- version('1.0.2f', sha256='932b4ee4def2b434f85435d9e3e19ca8ba99ce9a065a61524b429a9d5e9b2e9c')
- version('1.0.2e', sha256='e23ccafdb75cfcde782da0151731aa2185195ac745eea3846133f2e05c0e0bff')
- version('1.0.2d', sha256='671c36487785628a703374c652ad2cebea45fa920ae5681515df25d9f2c9a8c8')
+ version('1.0.2u', sha256='ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16', deprecated=True)
+ version('1.0.2t', sha256='14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc', deprecated=True)
+ version('1.0.2s', sha256='cabd5c9492825ce5bd23f3c3aeed6a97f8142f606d893df216411f07d1abab96', deprecated=True)
+ version('1.0.2r', sha256='ae51d08bba8a83958e894946f15303ff894d75c2b8bbd44a852b64e3fe11d0d6', deprecated=True)
+ version('1.0.2p', sha256='50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00', deprecated=True)
+ version('1.0.2o', sha256='ec3f5c9714ba0fd45cb4e087301eb1336c317e0d20b575a125050470e8089e4d', deprecated=True)
+ version('1.0.2n', sha256='370babb75f278c39e0c50e8c4e7493bc0f18db6867478341a832a982fd15a8fe', deprecated=True)
+ version('1.0.2m', sha256='8c6ff15ec6b319b50788f42c7abc2890c08ba5a1cdcd3810eb9092deada37b0f', deprecated=True)
+ version('1.0.2k', sha256='6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0', deprecated=True)
+ version('1.0.2j', sha256='e7aff292be21c259c6af26469c7a9b3ba26e9abaaffd325e3dccc9785256c431', deprecated=True)
+ version('1.0.2i', sha256='9287487d11c9545b6efb287cdb70535d4e9b284dd10d51441d9b9963d000de6f', deprecated=True)
+ version('1.0.2h', sha256='1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919', deprecated=True)
+ version('1.0.2g', sha256='b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33', deprecated=True)
+ version('1.0.2f', sha256='932b4ee4def2b434f85435d9e3e19ca8ba99ce9a065a61524b429a9d5e9b2e9c', deprecated=True)
+ version('1.0.2e', sha256='e23ccafdb75cfcde782da0151731aa2185195ac745eea3846133f2e05c0e0bff', deprecated=True)
+ version('1.0.2d', sha256='671c36487785628a703374c652ad2cebea45fa920ae5681515df25d9f2c9a8c8', deprecated=True)
# The 1.0.1 version is out of support and should not be used.
- version('1.0.1u', sha256='4312b4ca1215b6f2c97007503d80db80d5157f76f8f7d3febbe6b4c56ff26739')
- version('1.0.1t', sha256='4a6ee491a2fdb22e519c76fdc2a628bb3cec12762cd456861d207996c8a07088')
- version('1.0.1r', sha256='784bd8d355ed01ce98b812f873f8b2313da61df7c7b5677fcf2e57b0863a3346')
- version('1.0.1h', sha256='9d1c8a9836aa63e2c6adb684186cbd4371c9e9dcc01d6e3bb447abf2d4d3d093')
- version('1.0.1e', sha256='f74f15e8c8ff11aa3d5bb5f276d202ec18d7246e95f961db76054199c69c1ae3')
+ version('1.0.1u', sha256='4312b4ca1215b6f2c97007503d80db80d5157f76f8f7d3febbe6b4c56ff26739', deprecated=True)
+ version('1.0.1t', sha256='4a6ee491a2fdb22e519c76fdc2a628bb3cec12762cd456861d207996c8a07088', deprecated=True)
+ version('1.0.1r', sha256='784bd8d355ed01ce98b812f873f8b2313da61df7c7b5677fcf2e57b0863a3346', deprecated=True)
+ version('1.0.1h', sha256='9d1c8a9836aa63e2c6adb684186cbd4371c9e9dcc01d6e3bb447abf2d4d3d093', deprecated=True)
+ version('1.0.1e', sha256='f74f15e8c8ff11aa3d5bb5f276d202ec18d7246e95f961db76054199c69c1ae3', deprecated=True)
variant('systemcerts', default=True, description='Use system certificates')
+ variant('docs', default=False, description='Install docs and manpages')
depends_on('zlib')
@@ -110,8 +114,8 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
if spec.satisfies('@1.0'):
options.append('no-krb5')
# clang does not support the .arch directive in assembly files.
- if 'clang' in self.compiler.cc and \
- 'aarch64' in spack.architecture.sys_type():
+ if ('clang' in self.compiler.cc or 'nvc' in self.compiler.cc) and \
+ spec.target.family == 'aarch64':
options.append('no-asm')
# The default glibc provided by CentOS 7 does not provide proper
@@ -135,8 +139,10 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
if self.run_tests:
make('test', parallel=False) # 'VERBOSE=1'
+ install_tgt = 'install' if self.spec.satisfies('+docs') else 'install_sw'
+
# See https://github.com/openssl/openssl/issues/7466#issuecomment-432148137
- make('install', parallel=False)
+ make(install_tgt, parallel=False)
@run_after('install')
def link_system_certs(self):
@@ -154,7 +160,15 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
pkg_dir = join_path(self.prefix, 'etc', 'openssl')
+ mkdirp(pkg_dir)
+
for directory in system_dirs:
+ # Link configuration file
+ sys_conf = join_path(directory, 'openssl.cnf')
+ pkg_conf = join_path(pkg_dir, 'openssl.cnf')
+ if os.path.exists(sys_conf) and not os.path.exists(pkg_conf):
+ os.symlink(sys_conf, pkg_conf)
+
sys_cert = join_path(directory, 'cert.pem')
pkg_cert = join_path(pkg_dir, 'cert.pem')
# If a bundle exists, use it. This is the preferred way on Fedora,
@@ -168,8 +182,17 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package
# We symlink the whole directory instead of all files because
# the directory contents might change without Spack noticing.
if os.path.isdir(sys_certs) and not os.path.islink(pkg_certs):
- os.rmdir(pkg_certs)
+ if os.path.isdir(pkg_certs):
+ os.rmdir(pkg_certs)
os.symlink(sys_certs, pkg_certs)
+ def patch(self):
+ if self.spec.satisfies('%nvhpc'):
+ # Remove incompatible preprocessor flags
+ filter_file('-MF ', '',
+ 'Configurations/unix-Makefile.tmpl', string=True)
+ filter_file(r'-MT \$\@ ', '',
+ 'Configurations/unix-Makefile.tmpl', string=True)
+
def setup_build_environment(self, env):
env.set('PERL', self.spec['perl'].prefix.bin.perl)
diff --git a/var/spack/repos/builtin/packages/openstf/package.py b/var/spack/repos/builtin/packages/openstf/package.py
index 52f50b046a..3df68a3a42 100644
--- a/var/spack/repos/builtin/packages/openstf/package.py
+++ b/var/spack/repos/builtin/packages/openstf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,9 @@ class Openstf(MakefilePackage):
homepage = "http://www.e-em.co.jp/OpenSTF/"
url = "http://www.e-em.co.jp/OpenSTF/OpenSTF.zip"
- version('1.3.1', sha256='4c39c81f70e3f8017fcb9cd457436c77d29e016d78bc5337f152f2eb078aa7b6')
+ version('1.7.0', sha256='50a0406dd452e3ec09d29aa362a426ca04c8a586d817ab1295988f578baeac2a')
+ version('1.3.1', sha256='4c39c81f70e3f8017fcb9cd457436c77d29e016d78bc5337f152f2eb078aa7b6',
+ url='http://www.e-em.co.jp/OpenSTF/old/OpenSTF_131.zip')
variant('mpi', default=False, description='Build with MPI Support')
diff --git a/var/spack/repos/builtin/packages/opensubdiv/package.py b/var/spack/repos/builtin/packages/opensubdiv/package.py
index 69f9aeba4c..bc1a7ccc96 100644
--- a/var/spack/repos/builtin/packages/opensubdiv/package.py
+++ b/var/spack/repos/builtin/packages/opensubdiv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,12 +14,17 @@ class Opensubdiv(CMakePackage, CudaPackage):
This code path is optimized for drawing deforming surfaces
with static topology at interactive framerates."""
- homepage = "http://graphics.pixar.com/opensubdiv/docs/intro.html"
+ homepage = "https://graphics.pixar.com/opensubdiv/docs/intro.html"
url = "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v3_4_0.tar.gz"
git = "https://github.com/PixarAnimationStudios/OpenSubdiv"
version('develop', branch='dev')
- version('3_4_0', sha256='d932b292f83371c7518960b2135c7a5b931efb43cdd8720e0b27268a698973e4')
+ version('3.4.3', sha256='7b22eb27d636ab0c1e03722c7a5a5bd4f11664ee65c9b48f341a6d0ce7f36745')
+ version('3.4.0', sha256='d932b292f83371c7518960b2135c7a5b931efb43cdd8720e0b27268a698973e4')
+
+ def url_for_version(self, version):
+ url = "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v{0}.tar.gz"
+ return url.format(version.underscored)
variant('tbb', default=False, description='Builds with Intel TBB support')
variant('openmp', default=False, description='Builds with OpenMP support')
diff --git a/var/spack/repos/builtin/packages/opentsdb/package.py b/var/spack/repos/builtin/packages/opentsdb/package.py
index 04ba715d8e..703575350d 100644
--- a/var/spack/repos/builtin/packages/opentsdb/package.py
+++ b/var/spack/repos/builtin/packages/opentsdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/openvdb/package.py b/var/spack/repos/builtin/packages/openvdb/package.py
new file mode 100644
index 0000000000..f42efd4ed6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openvdb/package.py
@@ -0,0 +1,91 @@
+# Copyright 2013-2021 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)
+
+import os
+import sys
+
+from spack import *
+
+
+class Openvdb(CMakePackage):
+
+ """OpenVDB - a sparse volume data format."""
+
+ homepage = "https://github.com/AcademySoftwareFoundation/openvdb"
+ url = "https://github.com/AcademySoftwareFoundation/openvdb/archive/v8.0.1.tar.gz"
+ git = "https://github.com/AcademySoftwareFoundation/openvdb.git"
+
+ # Github account name for Drew.Whitehouse@gmail.com
+ maintainers = ['eloop']
+
+ version('develop', branch='develop')
+ version('8.0.1', 'a6845da7c604d2c72e4141c898930ac8a2375521e535f696c2cd92bebbe43c4f')
+ version('7.1.0', '0c3588c1ca6e647610738654ec2c6aaf41a203fd797f609fbeab1c9f7c3dc116')
+
+ variant('shared', default=True, description='Build as a shared library.')
+ variant('python', default=False, description='Build the pyopenvdb python extension.')
+ variant('vdb_print', default=False, description='Build the vdb_print tool.')
+ variant('vdb_lod', default=False, description='Build the vdb_lod tool.')
+ variant('vdb_render', default=False, description='Build the vdb_render tool.')
+ variant('ax', default=False, description='Build the AX extension (untested).')
+
+ depends_on('ilmbase')
+ depends_on('openexr')
+ depends_on('intel-tbb')
+
+ # Openvdb officially suggests an old version of blosc but it doesn't seem to be
+ # strictly neccessary and requires manual approval from spack.
+ depends_on('c-blosc') # depends_on('c-blosc@1.5:')
+
+ extends('python', when='+python')
+ depends_on('py-numpy', when='+python')
+
+ depends_on('boost+iostreams+system+python+numpy', when='+python')
+ depends_on('boost+iostreams+system', when='~python')
+
+ # AX requires quite a few things, and hasn't been properly released
+ # yet. I've only managed to build llvm@8.0.1 under centos8. It
+ # looks like the next version of OpenVDB will support llvm@12.0.0.
+ depends_on('llvm@8.0.1', when='+ax')
+ depends_on('bison', when='+ax')
+ depends_on('flex', when='+ax')
+
+ depends_on('git', type='build', when='@develop')
+
+ def cmake_args(self):
+ args = [
+ self.define('OPENVDB_BUILD_CORE', True),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('OPENVDB_BUILD_VDB_PRINT', 'vdb_print'),
+ self.define_from_variant('OPENVDB_BUILD_VDB_LOD', 'vdb_lod'),
+ self.define_from_variant('OPENVDB_BUILD_VDB_RENDER', 'vdb_render'),
+ self.define_from_variant('OPENVDB_BUILD_AX', 'ax'),
+ self.define_from_variant('OPENVDB_BUILD_AX_BINARIES', 'ax'),
+ self.define_from_variant('OPENVDB_BUILD_PYTHON_MODULE', 'python'),
+ self.define_from_variant('USE_NUMPY', 'python')
+ ]
+ return args
+
+ # The python extension is being put in the wrong directory
+ # by OpenVDB's cmake, instead it needs to be in
+ # site_packages_dir. For RHEL systems we seem to get the
+ # dso in lib64/ instead of lib/
+ @run_after('install')
+ def post_install(self):
+
+ spec = self.spec
+
+ if '+python' in spec:
+ if sys.platform == "darwin":
+ pyso = "pyopenvdb.dylib"
+ else:
+ pyso = "pyopenvdb.so"
+ pyver = 'python{0}'.format(spec['python'].package.version.up_to(2))
+
+ src = prefix.lib.join(pyver).join(pyso)
+ if not os.path.isfile(src):
+ src = prefix.lib64.join(pyver).join(pyso)
+ mkdirp(site_packages_dir)
+ os.rename(src, os.path.join(site_packages_dir, pyso))
diff --git a/var/spack/repos/builtin/packages/openvslam/package.py b/var/spack/repos/builtin/packages/openvslam/package.py
new file mode 100644
index 0000000000..505d838c61
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openvslam/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 Openvslam(CMakePackage):
+ """OpenVSLAM is a monocular, stereo, and RGBD visual SLAM system."""
+
+ homepage = "https://openvslam.readthedocs.io/"
+ git = "https://github.com/xdspacelab/openvslam.git"
+
+ version('master', branch='master')
+
+ # https://openvslam.readthedocs.io/en/master/installation.html
+ depends_on('cmake@3.1:', type='build')
+ depends_on('eigen@3.3.0:')
+ depends_on('g2o')
+ depends_on('dbow2@shinsumicco')
+ depends_on('yaml-cpp@0.6.0:')
+ depends_on('opencv@3.3.1:+core+imgcodecs+videoio+features2d+calib3d+highgui')
+ depends_on('pangolin')
+
+ patch('https://github.com/xdspacelab/openvslam/commit/eeb58880443700fd79688d9646fd633c42fa60eb.patch',
+ sha256='131159b0042300614d039ceb3538defe4d302b59dc748b02287fc8ff895e6bbd')
+
+ @run_after('install')
+ def post_install(self):
+ # https://github.com/xdspacelab/openvslam/issues/501
+ mkdir(self.prefix.bin)
+ with working_dir(self.build_directory):
+ install('run_*', self.prefix.bin)
+ install(join_path('lib*', 'libpangolin_viewer.*'), self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/openwsman/package.py b/var/spack/repos/builtin/packages/openwsman/package.py
index c355e2627f..562f6455ec 100644
--- a/var/spack/repos/builtin/packages/openwsman/package.py
+++ b/var/spack/repos/builtin/packages/openwsman/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,10 +16,66 @@ class Openwsman(CMakePackage):
version('2.6.11', sha256='895eaaae62925f9416766ea3e71a5368210e6cfe13b23e4e0422fa0e75c2541c')
version('2.6.10', sha256='d3c624a03d7bc1835544ce1af56efd010f77cbee0c02b34e0755aa9c9b2c317b')
- depends_on('python@3:', type='build')
- depends_on('curl')
- depends_on('libxml2')
- depends_on('sblim-sfcc')
+ variant('python', default=True, description='Enable python')
+
+ extends('python', when='+python')
+
+ depends_on('python', type=('build', 'link', 'run'))
+ depends_on('curl', type='link')
+ depends_on('swig', type='build')
+ depends_on('libxml2', type='link')
+ depends_on('openssl', type='link')
+ depends_on('sblim-sfcc', type='link')
+
+ def patch(self):
+ """ Change python install directory. """
+ if self.spec.satisfies('+python'):
+ python_spec = self.spec['python']
+ python_libdir = join_path(
+ self.spec.prefix.lib,
+ 'python' + str(python_spec.version.up_to(2)),
+ 'site-packages'
+ )
+ filter_file(
+ 'DESTINATION .*',
+ 'DESTINATION {0} )'.format(python_libdir),
+ join_path('bindings', 'python', 'CMakeLists.txt')
+ )
def cmake_args(self):
- return ['-DBUILD_PYTHON=OFF', '-DUSE_PAM=NO']
+ define = self.define
+ spec = self.spec
+ arg = [
+ define('BUILD_PERL', False),
+ define('BUILD_JAVA', False),
+ define('BUILD_CSHARP', False),
+ define('USE_PAM', 'OFF'),
+ ]
+ if spec.satisfies('+python'):
+ if spec.satisfies('^python@3:'):
+ arg.extend([
+ define('BUILD_PYTHON', False),
+ define('BUILD_PYTHON3', True)
+ ])
+ else:
+ arg.extend([
+ define('BUILD_PYTHON', True),
+ define('BUILD_PYTHON3', False)
+ ])
+ arg.append(define('PYTHON_EXECUTABLE',
+ spec['python'].command.path))
+ else:
+ arg.extend([
+ define('BUILD_PYTHON', False),
+ define('BUILD_PYTHON3', False)
+ ])
+ return arg
+
+ def flag_handler(self, name, flags):
+ flags = list(flags)
+ if name == 'cflags':
+ if self.spec.satisfies('%gcc'):
+ flags.append('-std=gnu99')
+ else:
+ flags.append(self.compiler.c99_flag)
+ return (None, None, flags)
diff --git a/var/spack/repos/builtin/packages/opium/package.py b/var/spack/repos/builtin/packages/opium/package.py
index 19f3b8fcf6..88e3791a10 100644
--- a/var/spack/repos/builtin/packages/opium/package.py
+++ b/var/spack/repos/builtin/packages/opium/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,28 +9,33 @@ from spack import *
class Opium(AutotoolsPackage):
"""DFT pseudopotential generation project"""
- homepage = "https://opium.sourceforge.net/index.html"
+ homepage = "http://opium.sourceforge.net"
url = "https://downloads.sourceforge.net/project/opium/opium/opium-v3.8/opium-v3.8-src.tgz"
+ version('4.1', sha256='e5a102b52601ad037d8a7b3e2dbd295baad23b8c1e4908b9014df2e432c23c60')
version('3.8', sha256='edee6606519330aecaee436ee8cfb0a33788b5677861d59e38aba936e87d5ad3')
- depends_on('blas')
- depends_on('lapack')
+ variant('external-lapack', default=False,
+ description='Links to externally installed LAPACK')
+
+ depends_on('lapack', when='+external-lapack')
+
+ parallel = False
+
+ def patch(self):
+ if '+external-lapack' in self.spec:
+ with working_dir('src'):
+ filter_file(r'(^subdirs=.*) lapack', r'\1', 'Makefile')
def configure_args(self):
- spec = self.spec
options = []
- libs = spec['lapack'].libs + spec['blas'].libs
- options.append('LDFLAGS=%s' % libs.ld_flags)
- return options
+ if '+external-lapack' in self.spec:
+ options.append('LDFLAGS={0}'.format(self.spec['lapack'].libs.ld_flags))
- def build(self, spec, prefix):
- with working_dir("src", create=False):
- make("all-subdirs")
- make("opium")
+ return options
def install(self, spec, prefix):
- # opium not have a make install :-((
+ # opium does not have a make install target :-((
mkdirp(self.prefix.bin)
install(join_path(self.stage.source_path, 'opium'),
self.prefix.bin)
diff --git a/var/spack/repos/builtin/packages/optional-lite/package.py b/var/spack/repos/builtin/packages/optional-lite/package.py
index 347ed93e87..3feb91ea95 100644
--- a/var/spack/repos/builtin/packages/optional-lite/package.py
+++ b/var/spack/repos/builtin/packages/optional-lite/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 shutil import copytree
+from spack import *
+
class OptionalLite(CMakePackage):
"""
diff --git a/var/spack/repos/builtin/packages/optipng/package.py b/var/spack/repos/builtin/packages/optipng/package.py
index 76e3b31834..5ccfd34ae7 100644
--- a/var/spack/repos/builtin/packages/optipng/package.py
+++ b/var/spack/repos/builtin/packages/optipng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/opus/package.py b/var/spack/repos/builtin/packages/opus/package.py
index b59de759a7..d888977fa1 100644
--- a/var/spack/repos/builtin/packages/opus/package.py
+++ b/var/spack/repos/builtin/packages/opus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,10 @@ from spack import *
class Opus(AutotoolsPackage):
"""Opus is a totally open, royalty-free, highly versatile audio codec."""
- homepage = "http://opus-codec.org/"
+ homepage = "https://opus-codec.org/"
url = "http://downloads.xiph.org/releases/opus/opus-1.1.4.tar.gz"
+ version('1.3.1', sha256='65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d')
version('1.1.4', sha256='9122b6b380081dd2665189f97bfd777f04f92dc3ab6698eea1dbb27ad59d8692')
version('1.1.3', sha256='58b6fe802e7e30182e95d0cde890c0ace40b6f125cffc50635f0ad2eef69b633')
version('1.1.2', sha256='0e290078e31211baa7b5886bcc8ab6bc048b9fc83882532da4a1a45e58e907fd')
diff --git a/var/spack/repos/builtin/packages/oracle-instant-client/package.py b/var/spack/repos/builtin/packages/oracle-instant-client/package.py
new file mode 100644
index 0000000000..dc53432fc8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/oracle-instant-client/package.py
@@ -0,0 +1,108 @@
+# Copyright 2013-2021 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)
+
+import glob
+
+from spack import *
+
+
+def oracleclient_releases():
+ releases = [
+ {
+ 'version': '21.1.0.0.0',
+ 'components': {
+ 'basic': ['https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-basic-linux.x64-21.1.0.0.0.zip', '9b63e264c01ac54a0f0e61bd638576aed6f04a36b305bcd17847755e7b9855ce'],
+ 'sqlplus': ['https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sqlplus-linux.x64-21.1.0.0.0.zip', '3220f486940e82f1a7825e8f0875729d63abd57cc708f1908e2d5f2163b93937'],
+ 'tools': ['https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-tools-linux.x64-21.1.0.0.0.zip', 'ff652d5bbfeaaa2403cbc13c5667f52e1d648aa2a5c59a50f4c9f84e6d2bba74'],
+ 'sdk': ['https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-21.1.0.0.0.zip', '80a465530a565ed327ab9ae0d9fc067ed42338536c7e8721cf2c26e474f4f75f'],
+ 'jdbc': ['https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-jdbc-linux.x64-21.1.0.0.0.zip', '76c866272712f2b432cc4be675605b22deca02f7a88a292b5ed8d29212d79dc7'],
+ 'odbc': ['https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-odbc-linux.x64-21.1.0.0.0.zip', 'ec7722b522684f0a3f63481573d0eb3537764224eabed6223f33699dd940bf20']
+ }
+ },
+ {
+ 'version': '19.10.0.0.0',
+ 'components': {
+ 'basic': ['https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-basic-linux.x64-19.10.0.0.0dbru.zip', 'c2eeea093d70f5416f8a8560f9fa5b57707a76ac9775906dbc4aaa778fdee84f'],
+ 'sqlplus': ['https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sqlplus-linux.x64-19.10.0.0.0dbru.zip', 'eee44825f348966796166beb8c0d8cc8f61929bae05229b65b34794e0f05659a'],
+ 'tools': ['https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-tools-linux.x64-19.10.0.0.0dbru.zip', '93bf58d2e15bb3ca98f8e5f579a93760571a37e0d9312187f6a5f228d492c863'],
+ 'sdk': ['https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-sdk-linux.x64-19.10.0.0.0dbru.zip', '2c4ae1b77fe32f3d3bf86a4ef560dc3a5dcbf5d11d742b4afeca414e5388ff2f'],
+ 'jdbc': ['https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-jdbc-linux.x64-19.10.0.0.0dbru.zip', '3fabbc4a86b8c5b4b29c4d76524c7d7e5bfab33cdbfa73f1199fc5582ed25df6'],
+ 'odbc': ['https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-odbc-linux.x64-19.10.0.0.0dbru.zip', '1c7ae3ea5913af9647ae68e2053cdaf9154ef6c9aa07e8b7d91e1ead9d5e675a']
+ }
+ }]
+
+ return releases
+
+
+class OracleInstantClient(Package):
+ """Oracle instant client"""
+
+ homepage = "https://www.oracle.com/database/technologies/instant-client.html"
+ url = "https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-basic-linux.x64-21.1.0.0.0.zip"
+
+ releases = oracleclient_releases()
+ for release in releases:
+ oracle_version = release['version']
+ main_pkg = release['components']['basic']
+ url, sha256 = main_pkg
+ version(oracle_version, sha256=sha256, url=url)
+ for rname, atts in release['components'].items():
+ if rname == 'basic':
+ continue
+ url, sha256 = atts
+ condition = "@{0}".format(oracle_version)
+ resource(name=rname, url=url, sha256=sha256, when=condition, placement=rname)
+
+ depends_on('libaio', type='link')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ mkdirp(prefix.include)
+ mkdirp(prefix.lib)
+ mkdirp(prefix.doc)
+
+ for dirn, fns in {'.': ('adrci', 'genezi', 'uidrvci'),
+ 'sqlplus': ('glogin.sql', 'sqlplus'),
+ 'odbc': ('odbc_update_ini.sh', ),
+ 'tools': ('exp', 'expdp', 'imp', 'impdp', 'sqlldr', 'wrc')
+ }.items():
+ for fn in fns:
+ install(join_path(dirn, fn), prefix.bin)
+
+ for fn in glob.glob(join_path(self.stage.source_path, '*.so*')):
+ install(fn, prefix.lib)
+
+ for fn in glob.glob(join_path(self.stage.source_path, '*.jar')):
+ install(fn, prefix.lib)
+
+ for fn in glob.glob(join_path(self.stage.source_path, 'sqlplus', '*.so*')):
+ install(fn, prefix.lib)
+
+ for fn in glob.glob(join_path(self.stage.source_path, 'jdbc', '*.so*')):
+ install(fn, prefix.lib)
+
+ for fn in glob.glob(join_path(self.stage.source_path, 'odbc', '*.so*')):
+ install(fn, prefix.lib)
+
+ for fn in glob.glob(join_path(self.stage.source_path, 'tools', '*.so*')):
+ install(fn, prefix.lib)
+
+ for fn in glob.glob(join_path(self.stage.source_path, 'jdbc', '*.jar')):
+ install(fn, prefix.lib)
+
+ install_tree('network', prefix.lib)
+
+ for dirn, fns in {'.': ('BASIC_LICENSE', 'BASIC_README'),
+ 'sqlplus': ('SQLPLUS_LICENSE', 'SQLPLUS_README'),
+ 'jdbc': ('JDBC_LICENSE', 'JDBC_README'),
+ 'odbc': ('ODBC_LICENSE', 'ODBC_README'),
+ 'sdk': ('SDK_LICENSE', 'SDK_README'),
+ 'tools': ('TOOLS_LICENSE', 'TOOLS_README')
+ }.items():
+ for fn in fns:
+ install(join_path(dirn, fn), prefix.doc)
+
+ install_tree(join_path('odbc', 'help'), prefix.doc)
+ install_tree(join_path('sdk', 'sdk', 'include'), prefix.include)
diff --git a/var/spack/repos/builtin/packages/orbit2/package.py b/var/spack/repos/builtin/packages/orbit2/package.py
index 6fed395b84..34de749143 100644
--- a/var/spack/repos/builtin/packages/orbit2/package.py
+++ b/var/spack/repos/builtin/packages/orbit2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/orc/package.py b/var/spack/repos/builtin/packages/orc/package.py
index f67111cc6a..ee0ab451b6 100644
--- a/var/spack/repos/builtin/packages/orc/package.py
+++ b/var/spack/repos/builtin/packages/orc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/orca/package.py b/var/spack/repos/builtin/packages/orca/package.py
index 475998e876..3c35441963 100644
--- a/var/spack/repos/builtin/packages/orca/package.py
+++ b/var/spack/repos/builtin/packages/orca/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Orca(Package):
"""An ab initio, DFT and semiempirical SCF-MO package
@@ -14,10 +15,11 @@ class Orca(Package):
on the Orca homepage and download Orca yourself. Spack will search
your current directory for the download file. Alternatively, add this
file to a mirror so that Spack can find it. For instructions on how to
- set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+ set up a mirror, see https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://cec.mpg.de"
url = "file://{0}/orca_4_0_1_2_linux_x86-64_openmpi202.tar.zst".format(os.getcwd())
+ manual_download = True
version('4.2.1', sha256='9bbb3bfdca8220b417ee898b27b2885508d8c82799adfa63dde9e72eab49a6b2',
expand=False)
diff --git a/var/spack/repos/builtin/packages/orfm/package.py b/var/spack/repos/builtin/packages/orfm/package.py
index 8c98bd4f1b..02da11bf55 100644
--- a/var/spack/repos/builtin/packages/orfm/package.py
+++ b/var/spack/repos/builtin/packages/orfm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/orientdb/package.py b/var/spack/repos/builtin/packages/orientdb/package.py
index bc605566dd..7bc623e088 100644
--- a/var/spack/repos/builtin/packages/orientdb/package.py
+++ b/var/spack/repos/builtin/packages/orientdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Orientdb(MavenPackage):
of Native Graphs, Documents Full-Text, Reactivity, Geo-Spatial and Object
Oriented concepts. It's written in Java and it's amazingly fast."""
- homepage = "https://orientdb.com/"
+ homepage = "https://orientdb.org"
url = "https://github.com/orientechnologies/orientdb/archive/3.1.2.tar.gz"
version('3.1.2', sha256='3c8e1f55de9e1a6c3cd714832deb7369f50096e85f1e048f0c0328e611970850')
diff --git a/var/spack/repos/builtin/packages/orthofiller/package.py b/var/spack/repos/builtin/packages/orthofiller/package.py
index b5376c7d2f..afec2c7ef7 100644
--- a/var/spack/repos/builtin/packages/orthofiller/package.py
+++ b/var/spack/repos/builtin/packages/orthofiller/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Orthofiller(Package):
"""OrthoFiller: Identifying missing annotations for evolutionarily
diff --git a/var/spack/repos/builtin/packages/orthofinder/package.py b/var/spack/repos/builtin/packages/orthofinder/package.py
index af6820cf16..a85f5746fd 100644
--- a/var/spack/repos/builtin/packages/orthofinder/package.py
+++ b/var/spack/repos/builtin/packages/orthofinder/package.py
@@ -1,8 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+import shutil
+
from spack import *
@@ -18,17 +21,34 @@ class Orthofinder(Package):
in FASTA format."""
homepage = "https://github.com/davidemms/OrthoFinder"
- url = "https://github.com/davidemms/OrthoFinder/releases/download/2.2.0/OrthoFinder-2.2.0.tar.gz"
+ url = "https://github.com/davidemms/OrthoFinder/releases/download/2.5.2/OrthoFinder_source.tar.gz"
- version('2.2.0', sha256='7314f3fdfb24d84aa5b9ee27ce9f670df314889c12b8100e4e476c2d21a1c8e7')
+ version('2.5.2', sha256='e0752b66866e23a11f0592e880fac5f67258f9cf926f926dec8849564c41b8f7')
+ version('2.2.0', sha256='375f711086b44e2118d7d460821294744245e254e5fa2151dfe73100c0707a8c')
+ depends_on('py-numpy', type='run')
+ depends_on('py-scipy', type='run')
+ depends_on('diamond', type='run')
depends_on('blast-plus', type='run')
depends_on('mcl', type='run')
depends_on('fastme', type='run')
- depends_on('py-dlcpar', type='run')
- def install(self, spec, prefix):
- install_tree('.', prefix.bin)
+ def url_for_version(self, version):
+ if '@:2.3.6' in self.spec:
+ url = "https://github.com/davidemms/OrthoFinder/releases/download/{0}/OrthoFinder-{0}_source.tar.gz"
+ return url.format(version)
+ else:
+ url = "https://github.com/davidemms/OrthoFinder/releases/download/{0}/OrthoFinder_source.tar.gz"
+ return url.format(version)
- chmod = which('chmod')
- chmod('+x', join_path(prefix.bin, 'orthofinder'))
+ def install(self, spec, prefix):
+ if '@2.2.0' in spec:
+ install_tree('./orthofinder', prefix.bin)
+ else:
+ install_tree('.', prefix.bin)
+ shutil.rmtree(prefix.bin.scripts_of.bin)
+ os.rename('%s/orthofinder.py' % prefix.bin, '%s/orthofinder' % prefix.bin)
+
+ def setup_run_environment(self, env):
+ env.prepend_path('PATH', prefix.bin)
+ env.prepend_path('PATH', prefix.bin.tools)
diff --git a/var/spack/repos/builtin/packages/orthomcl/package.py b/var/spack/repos/builtin/packages/orthomcl/package.py
index f06da0e2dc..177a275259 100644
--- a/var/spack/repos/builtin/packages/orthomcl/package.py
+++ b/var/spack/repos/builtin/packages/orthomcl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Orthomcl(Package):
"""OrthoMCL is a genome-scale algorithm for grouping orthologous protein
sequences."""
- homepage = "http://orthomcl.org/orthomcl/"
- url = "http://orthomcl.org/common/downloads/software/v2.0/orthomclSoftware-v2.0.9.tar.gz"
+ homepage = "https://orthomcl.org/orthomcl/"
+ url = "https://orthomcl.org/common/downloads/software/v2.0/orthomclSoftware-v2.0.9.tar.gz"
version('2.0.9', sha256='5f96d23ff255778535c4926d75b19f059db0c01be1ac599289d2431115d68640')
diff --git a/var/spack/repos/builtin/packages/osi/package.py b/var/spack/repos/builtin/packages/osi/package.py
index 16eaba412c..54525581c1 100644
--- a/var/spack/repos/builtin/packages/osi/package.py
+++ b/var/spack/repos/builtin/packages/osi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/osmctools/package.py b/var/spack/repos/builtin/packages/osmctools/package.py
index 84c23714bf..ebd1de09b1 100644
--- a/var/spack/repos/builtin/packages/osmctools/package.py
+++ b/var/spack/repos/builtin/packages/osmctools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/osqp/package.py b/var/spack/repos/builtin/packages/osqp/package.py
index 6597e9a701..7a053f7bbc 100644
--- a/var/spack/repos/builtin/packages/osqp/package.py
+++ b/var/spack/repos/builtin/packages/osqp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/uuid/package.py b/var/spack/repos/builtin/packages/ossp-uuid/package.py
index 3f7a7ec5a8..ff23ec92bf 100644
--- a/var/spack/repos/builtin/packages/uuid/package.py
+++ b/var/spack/repos/builtin/packages/ossp-uuid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,13 +6,23 @@
from spack import *
-class Uuid(AutotoolsPackage):
+class OsspUuid(AutotoolsPackage):
"""OSSP uuid is a ISO-C:1999 application programming interface (API) and
corresponding command line interface (CLI) for the generation of DCE 1.1,
ISO/IEC 11578:1996 and RFC 4122 compliant Universally Unique Identifier
(UUID)."""
homepage = "http://www.ossp.org/pkg/lib/uuid"
- url = "http://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-1.6.2.tar.gz"
+ url = "https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-1.6.2.tar.gz"
version('1.6.2', sha256='11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0')
+
+ provides('uuid')
+
+ @property
+ def libs(self):
+ return find_libraries('libuuid', self.prefix, recursive=True)
+
+ @property
+ def headers(self):
+ return find_headers('uuid', self.prefix, recursive=True)
diff --git a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py
index 273b02fd44..3c08f36095 100644
--- a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py
+++ b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class OsuMicroBenchmarks(AutotoolsPackage):
"""The Ohio MicroBenchmark suite is a collection of independent MPI
@@ -14,9 +15,11 @@ class OsuMicroBenchmarks(AutotoolsPackage):
performance measures such as latency, bandwidth and host overhead
and can be used for both traditional and GPU-enhanced nodes."""
- homepage = "http://mvapich.cse.ohio-state.edu/benchmarks/"
- url = "http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-5.6.3.tar.gz"
+ homepage = "https://mvapich.cse.ohio-state.edu/benchmarks/"
+ url = "https://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-5.6.3.tar.gz"
+ version('5.7.1', sha256='cb5ce4e2e68ed012d9952e96ef880a802058c87a1d840a2093b19bddc7faa165')
+ version('5.7', sha256='1470ebe00eb6ca7f160b2c1efda57ca0fb26b5c4c61148a3f17e8e79fbf34590')
version('5.6.3', sha256='c5eaa8c5b086bde8514fa4cac345d66b397e02283bc06e44cb6402268a60aeb8')
version('5.6.2', sha256='2ecb90abd85398786823c0716d92448d7094657d3f017c65d270ffe39afc7b95')
version('5.6.1', sha256='943c426a653a6c56200193d747755efaa4c4e6f23b3571b0e3ef81ecd21b1063')
@@ -29,6 +32,11 @@ class OsuMicroBenchmarks(AutotoolsPackage):
depends_on('mpi')
depends_on('cuda', when='+cuda')
+ def url_for_version(self, version):
+ ext = "tar.gz" if version < Version('5.7.1') else "tgz"
+ url = "http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-{0}.{1}"
+ return url.format(version, ext)
+
def configure_args(self):
spec = self.spec
config_args = [
diff --git a/var/spack/repos/builtin/packages/otf/package.py b/var/spack/repos/builtin/packages/otf/package.py
index cb19e3ee1b..7af02cdfdf 100644
--- a/var/spack/repos/builtin/packages/otf/package.py
+++ b/var/spack/repos/builtin/packages/otf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Otf(AutotoolsPackage):
successor format to the Vampir Trace Format (VTF3)."""
homepage = "http://tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/zih/forschung/projekte/otf/index_html/document_view?set_language=en"
- url = "http://wwwpub.zih.tu-dresden.de/%7Emlieber/dcount/dcount.php?package=otf&get=OTF-1.12.5salmon.tar.gz"
+ url = "https://wwwpub.zih.tu-dresden.de/%7Emlieber/dcount/dcount.php?package=otf&get=OTF-1.12.5salmon.tar.gz"
version('1.12.5salmon', sha256='0a8427360dedb38e8ddca30f14d95f826420c550337c5a79dbb754904e194088')
diff --git a/var/spack/repos/builtin/packages/otf2/collective_callbacks.patch b/var/spack/repos/builtin/packages/otf2/collective_callbacks.patch
new file mode 100644
index 0000000000..daa07d84cb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/otf2/collective_callbacks.patch
@@ -0,0 +1,13 @@
+diff --git a/src/otf2_archive_int.c b/src/otf2_archive_int.c
+index db9b7a9..68f1694 100644
+--- a/src/otf2_archive_int.c
++++ b/src/otf2_archive_int.c
+@@ -1083,7 +1083,7 @@ otf2_archive_set_collective_callbacks( OTF2_Archive* archive,
+ archive->global_comm_context = globalCommContext;
+ archive->local_comm_context = localCommContext;
+
+- OTF2_ErrorCode status;
++ OTF2_ErrorCode status = OTF2_SUCCESS;
+
+ /* It is time to create the directories by the root rank. */
+ if ( archive->file_mode == OTF2_FILEMODE_WRITE )
diff --git a/var/spack/repos/builtin/packages/otf2/cray_ac_scorep_sys_detection-m4.patch b/var/spack/repos/builtin/packages/otf2/cray_ac_scorep_sys_detection-m4.patch
new file mode 100644
index 0000000000..52ea2428ec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/otf2/cray_ac_scorep_sys_detection-m4.patch
@@ -0,0 +1,11 @@
+--- a/vendor/common/build-config/m4/ac_scorep_sys_detection.m4 2019-07-19 01:31:13.409311556 -0500
++++ b/vendor/common/build-config/m4/ac_scorep_sys_detection.m4 2021-03-04 22:11:30.278313559 -0600
+@@ -100,6 +100,8 @@
+ [test "x${build_cpu}" = "xpowerpc64" && test -d /bgsys],
+ [ac_scorep_platform="bgp"],
+ [(test "x${build_cpu}" = "xx86_64" || test "x${build_cpu}" = "xaarch64") && test -d /opt/cray],
++ [AS_IF([test -d /opt/cray/cs-prgenv],
++ [ac_scorep_platform="crayxc"])]
+ [AS_IF([test -L /opt/cray/pmi/default],
+ [AS_IF([test "x`readlink -f /opt/cray/pmi/default | grep -o --regexp=[[a-z]]*$ | grep -q ss && echo TRUE`" = "xTRUE"],
+ [ac_scorep_platform="crayxt"],
diff --git a/var/spack/repos/builtin/packages/otf2/package.py b/var/spack/repos/builtin/packages/otf2/package.py
index a2c197e98b..7265705a97 100644
--- a/var/spack/repos/builtin/packages/otf2/package.py
+++ b/var/spack/repos/builtin/packages/otf2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,10 @@ class Otf2(AutotoolsPackage):
trace data format plus support library.
"""
- homepage = "http://www.vi-hps.org/projects/score-p"
+ homepage = "https://www.vi-hps.org/projects/score-p"
url = "https://www.vi-hps.org/cms/upload/packages/otf2/otf2-2.1.1.tar.gz"
+ version('2.3', sha256='36957428d37c40d35b6b45208f050fb5cfe23c54e874189778a24b0e9219c7e3', url='https://perftools.pages.jsc.fz-juelich.de/cicd/otf2/tags/otf2-2.3/otf2-2.3.tar.gz')
version('2.2', sha256='d0519af93839dc778eddca2ce1447b1ee23002c41e60beac41ea7fe43117172d')
version('2.1.1', sha256='01591b42e76f396869ffc84672f4eaa90ee8ec2a8939755d9c0b5b8ecdcf47d3')
version('2.1', sha256='8ad38ea0461099e34f00f2947af4409ce9b9c379e14c3f449ba162e51ac4cad3')
@@ -24,6 +25,23 @@ class Otf2(AutotoolsPackage):
version('1.3.1', sha256='c4605ace845d89fb1a19223137b92cc503b01e3db5eda8c9e0715d0cfcf2e4b9')
version('1.2.1', sha256='1db9fb0789de4a9c3c96042495e4212a22cb581f734a1593813adaf84f2288e4')
+ with when('@2.2 %cce'):
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ # Fix missing initialization of variable resulting in issues when used by
+ # APEX/HPX: https://github.com/STEllAR-GROUP/hpx/issues/5239
+ patch('collective_callbacks.patch', when='@2.1:2.2')
+
+ # when using Cray's cs-prgenv, allow the build system to detect the systems as an XC
+ patch('cray_ac_scorep_sys_detection-m4.patch', when='@2.2 %cce')
+
+ @property
+ def force_autoreconf(self):
+ return self.spec.satisfies('@2.2 %cce')
+
def configure_args(self):
return [
'--enable-shared',
diff --git a/var/spack/repos/builtin/packages/p11-kit/package.py b/var/spack/repos/builtin/packages/p11-kit/package.py
index 4b6a110498..5eab2fc81e 100644
--- a/var/spack/repos/builtin/packages/p11-kit/package.py
+++ b/var/spack/repos/builtin/packages/p11-kit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/p3dfft3/package.py b/var/spack/repos/builtin/packages/p3dfft3/package.py
index a4dfe41941..31d961256e 100644
--- a/var/spack/repos/builtin/packages/p3dfft3/package.py
+++ b/var/spack/repos/builtin/packages/p3dfft3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/p4est/package.py b/var/spack/repos/builtin/packages/p4est/package.py
index e5ec4998da..f9d3beefa2 100644
--- a/var/spack/repos/builtin/packages/p4est/package.py
+++ b/var/spack/repos/builtin/packages/p4est/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,19 @@ from spack import *
class P4est(AutotoolsPackage):
"""Dynamic management of a collection (a forest) of adaptive octrees in
parallel"""
- homepage = "http://www.p4est.org"
- url = "http://p4est.github.io/release/p4est-2.2.tar.gz"
+ homepage = "https://www.p4est.org"
+
+ # Only use the official tarball releases provided on p4est.org or
+ # p4est.github.io. The automatically generated releases from the
+ # Github repository lack important parts.
+ url = "https://p4est.github.io/release/p4est-2.3.2.tar.gz"
maintainers = ['davydden']
+ version('2.3.2', sha256='076df9e5578e0e7fcfbe12e1a0b080104001f8c986ab1d5a69ec2220050df8e6')
+ version('2.3.1', sha256='be66893b039fb3f27aca3d5d00acff42c67bfad5aa09cea9253cdd628b2bdc9a')
version('2.2', sha256='1549cbeba29bee2c35e7cc50a90a04961da5f23b6eada9c8047f511b90a8e438')
+ version('2.1', sha256='07ab24bd63a652a30576fbca12c0fc068dffa615d888802d7f229fa994a9c1ef')
version('2.0', sha256='c522c5b69896aab39aa5a81399372a19a6b03fc6200d2d5d677d9a22fe31029a')
version('1.1', sha256='0b5327a35f0c869bf920b8cab5f20caa4eb55692eaaf1f451d5de30285b25139')
@@ -22,8 +29,8 @@ class P4est(AutotoolsPackage):
variant('openmp', default=False, description='Enable OpenMP')
# build dependencies
- depends_on('automake', type='build')
- depends_on('autoconf', type='build')
+ depends_on('automake', when='@2.0', type='build')
+ depends_on('autoconf', when='@2.0', type='build')
depends_on('libtool@2.4.2:', type='build')
# other dependencies
@@ -41,8 +48,9 @@ class P4est(AutotoolsPackage):
when='@2.0')
def autoreconf(self, spec, prefix):
- bootstrap = Executable('./bootstrap')
- bootstrap()
+ if self.spec.satisfies('@2.0'):
+ bootstrap = Executable('./bootstrap')
+ bootstrap()
def configure_args(self):
args = [
diff --git a/var/spack/repos/builtin/packages/p7zip/gcc10.patch b/var/spack/repos/builtin/packages/p7zip/gcc10.patch
new file mode 100644
index 0000000000..809b25a895
--- /dev/null
+++ b/var/spack/repos/builtin/packages/p7zip/gcc10.patch
@@ -0,0 +1,13 @@
+diff --git a/CPP/Windows/ErrorMsg.cpp.orig b/CPP/Windows/ErrorMsg.cpp
+index 99684ae..68416d6 100644
+--- a/CPP/Windows/ErrorMsg.cpp.orig
++++ b/CPP/Windows/ErrorMsg.cpp
+@@ -13,7 +13,7 @@ UString MyFormatMessage(DWORD errorCode)
+ const char * txt = 0;
+ AString msg;
+
+- switch(errorCode) {
++ switch((Int32)errorCode) {
+ case ERROR_NO_MORE_FILES : txt = "No more files"; break ;
+ case E_NOTIMPL : txt = "E_NOTIMPL"; break ;
+ case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
diff --git a/var/spack/repos/builtin/packages/p7zip/package.py b/var/spack/repos/builtin/packages/p7zip/package.py
index 5a0728eb29..ebadd36c98 100644
--- a/var/spack/repos/builtin/packages/p7zip/package.py
+++ b/var/spack/repos/builtin/packages/p7zip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,13 @@
class P7zip(MakefilePackage):
"""A Unix port of the 7z file archiver"""
+ maintainers = ['vmiheer']
homepage = "http://p7zip.sourceforge.net"
url = "https://downloads.sourceforge.net/project/p7zip/p7zip/16.02/p7zip_16.02_src_all.tar.bz2"
version('16.02', sha256='5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f')
+ patch('gcc10.patch', when='%gcc@10:', sha256='96914025b9f431fdd75ae69768162d57751413634622f9df1a4bc4960e7e8fe1')
# all3 includes 7z, 7za, and 7zr
build_targets = ['all3']
diff --git a/var/spack/repos/builtin/packages/pacbio-daligner/package.py b/var/spack/repos/builtin/packages/pacbio-daligner/package.py
index b3b6420ac1..81ec8cb9f8 100644
--- a/var/spack/repos/builtin/packages/pacbio-daligner/package.py
+++ b/var/spack/repos/builtin/packages/pacbio-daligner/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pacbio-damasker/package.py b/var/spack/repos/builtin/packages/pacbio-damasker/package.py
index 876e602a76..fcb8507c12 100644
--- a/var/spack/repos/builtin/packages/pacbio-damasker/package.py
+++ b/var/spack/repos/builtin/packages/pacbio-damasker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pacbio-dazz-db/package.py b/var/spack/repos/builtin/packages/pacbio-dazz-db/package.py
index f5b0958bfb..e2369f9cdd 100644
--- a/var/spack/repos/builtin/packages/pacbio-dazz-db/package.py
+++ b/var/spack/repos/builtin/packages/pacbio-dazz-db/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pacbio-dextractor/package.py b/var/spack/repos/builtin/packages/pacbio-dextractor/package.py
index 5d4d1bcd7f..bab6f85501 100644
--- a/var/spack/repos/builtin/packages/pacbio-dextractor/package.py
+++ b/var/spack/repos/builtin/packages/pacbio-dextractor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pacifica-cli/package.py b/var/spack/repos/builtin/packages/pacifica-cli/package.py
new file mode 100644
index 0000000000..b0c38cb15a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pacifica-cli/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PacificaCli(PythonPackage):
+ """Python CLI for Pacifica Core Services"""
+
+ homepage = "https://github.com/pacifica/pacifica-cli/"
+ pypi = "pacifica-cli/pacifica-cli-0.5.2.tar.gz"
+
+ version('0.5.2', sha256='fee5fa8ac38ffec2e9199bff23afbbae697c4f7554f13e340104f8b20a62843f')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-jsonschema', type=('build', 'run'))
+ depends_on('py-pacifica-uploader@0.3.1:', type=('build', 'run'))
+ depends_on('py-pacifica-downloader@0.4.1:', type=('build', 'run'))
+ depends_on('py-pacifica-namespace', type=('build', 'run'))
+ depends_on('py-pager', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/packmol/package.py b/var/spack/repos/builtin/packages/packmol/package.py
index 0d4465c958..1c7a71ddce 100644
--- a/var/spack/repos/builtin/packages/packmol/package.py
+++ b/var/spack/repos/builtin/packages/packmol/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Packmol(CMakePackage):
"""Packmol creates an initial point for molecular dynamics simulations
by packing molecules in defined regions of space."""
- homepage = "http://m3g.iqm.unicamp.br/packmol/home.shtml"
+ homepage = "https://m3g.iqm.unicamp.br/packmol/home.shtml"
url = "https://github.com/mcubeg/packmol/archive/18.169.tar.gz"
version('18.169', sha256='8acf2cbc742a609e763eb00cae55aecd09af2edb4cc4e931706e2f06ac380de9')
diff --git a/var/spack/repos/builtin/packages/pacparser/package.py b/var/spack/repos/builtin/packages/pacparser/package.py
new file mode 100644
index 0000000000..fc59419c61
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pacparser/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 Pacparser(MakefilePackage):
+ """pacparser is a library to parse proxy auto-config (PAC) files."""
+
+ homepage = "https://pacparser.github.io/"
+ url = "https://github.com/manugarg/pacparser/releases/download/1.3.7/pacparser-1.3.7.tar.gz"
+
+ version('1.3.7', sha256='eb48ec2fc202d12a4b882133048c7590329849f32c2285bc4dbe418f29aad249')
+
+ depends_on('python', when='+python')
+ depends_on('py-setuptools', when='+python', type=('build', 'run'))
+
+ variant('python', default=False,
+ description='Build and install python bindings')
+
+ def build(self, spec, prefix):
+ make('-C', 'src')
+ if '+python' in spec:
+ make('-C', 'src', 'pymod')
+
+ def install(self, spec, prefix):
+ make('-C', 'src', 'install', 'PREFIX=' + self.prefix)
+ if '+python' in spec:
+ make('-C', 'src', 'install-pymod', 'PREFIX=' + self.prefix,
+ 'EXTRA_ARGS=--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/pacvim/package.py b/var/spack/repos/builtin/packages/pacvim/package.py
index 6df19aee63..a40b0730bf 100644
--- a/var/spack/repos/builtin/packages/pacvim/package.py
+++ b/var/spack/repos/builtin/packages/pacvim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pagit/package.py b/var/spack/repos/builtin/packages/pagit/package.py
index e0fef6b568..86e8223f99 100644
--- a/var/spack/repos/builtin/packages/pagit/package.py
+++ b/var/spack/repos/builtin/packages/pagit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Pagit(Package):
"""PAGIT addresses the need for software to generate high quality draft
genomes."""
- homepage = "http://www.sanger.ac.uk/science/tools/pagit"
+ homepage = "https://www.sanger.ac.uk/science/tools/pagit"
url = "ftp://ftp.sanger.ac.uk/pub/resources/software/pagit/PAGIT.V1.01.64bit.tgz"
version('1.01', sha256='8069c1d236804cf4ea782495adcc50d18561ef466af06b21946b980b3c37ad55')
diff --git a/var/spack/repos/builtin/packages/pagmo/package.py b/var/spack/repos/builtin/packages/pagmo/package.py
index 406372843b..6ca785d7c5 100644
--- a/var/spack/repos/builtin/packages/pagmo/package.py
+++ b/var/spack/repos/builtin/packages/pagmo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -74,18 +74,18 @@ class Pagmo(CMakePackage):
spec = self.spec
args = [
- '-DBUILD_EXAMPLES={0}'.format(self.variant_to_bool('+examples')),
- '-DBUILD_MAIN={0}'.format(self.variant_to_bool('+cxx')),
- '-DBUILD_PYGMO={0}'.format(self.variant_to_bool('+python')),
- '-DENABLE_GSL={0}'.format(self.variant_to_bool('+gsl')),
- '-DENABLE_GTOP_DATABASE={0}'.format(self.variant_to_bool('+gtop')),
- '-DENABLE_IPOPT={0}'.format(self.variant_to_bool('+ipopt')),
- '-DENABLE_MPI={0}'.format(self.variant_to_bool('+mpi')),
- '-DENABLE_NLOPT={0}'.format(self.variant_to_bool('+nlopt')),
- '-DENABLE_SNOPT={0}'.format(self.variant_to_bool('+snopt')),
- '-DENABLE_WORHP={0}'.format(self.variant_to_bool('+worhp')),
- '-DINSTALL_HEADERS={0}'.format(self.variant_to_bool('+headers')),
- '-DENABLE_TESTS={0}'.format('ON' if self.run_tests else 'OFF'),
+ self.define_from_variant('BUILD_EXAMPLES', 'examples'),
+ self.define_from_variant('BUILD_MAIN', 'cxx'),
+ self.define_from_variant('BUILD_PYGMO', 'python'),
+ self.define_from_variant('ENABLE_GSL', 'gsl'),
+ self.define_from_variant('ENABLE_GTOP_DATABASE', 'gtop'),
+ self.define_from_variant('ENABLE_IPOPT', 'ipopt'),
+ self.define_from_variant('ENABLE_MPI', 'mpi'),
+ self.define_from_variant('ENABLE_NLOPT', 'nlopt'),
+ self.define_from_variant('ENABLE_SNOPT', 'snopt'),
+ self.define_from_variant('ENABLE_WORHP', 'worhp'),
+ self.define_from_variant('INSTALL_HEADERS', 'headers'),
+ self.define('ENABLE_TESTS', self.run_tests),
]
if '+python' in spec:
diff --git a/var/spack/repos/builtin/packages/pajeng/package.py b/var/spack/repos/builtin/packages/pajeng/package.py
new file mode 100644
index 0000000000..c0d3be4104
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pajeng/package.py
@@ -0,0 +1,69 @@
+# Copyright 2013-2021 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 Pajeng(CMakePackage):
+ """PajeNG is a re-implementation of the well-known Paje visualization
+ tool for the analysis of execution traces. PajeNG comprises the
+ libpaje library, and an auxiliary tool called pj_dump to transform
+ Paje trace files to Comma-Separated Value (CSV). The space-time
+ visualization tool called pajeng had been deprecated (removed from
+ the sources) since modern tools do a better job (see pj_gantt)."""
+
+ homepage = "https://github.com/schnorr/pajeng"
+ git = "https://github.com/schnorr/pajeng.git"
+ url = "https://github.com/schnorr/pajeng/archive/1.3.6.tar.gz"
+
+ maintainers = ['viniciusvgp', 'schnorr']
+
+ version('develop', git='https://github.com/schnorr/pajeng.git')
+ version('1.3.6', sha256='1a2722bfaeb0c6437fb9e8efc2592edbf14ba01172f97e01c7839ffea8b9d0b3')
+ version('1.3.5', sha256='ea8ca02484de4091dcf57289724876ec17dd98e3a032dc609b7ea020ca2629eb')
+ version('1.3.4', sha256='284e9a590a2861251e808542663bf1b77bc2c99650a1fbf945cd5bab65402f9e')
+ version('1.3.3', sha256='42cf44003d238fd5c4ab512bdeb445fc12f7e3bd3f0526b389f080c84b83b19f')
+ version('1.3.2', sha256='97154415a22f9b7f83516e988ea664b3990377d69fca859275ca48d7bfad0932')
+ version('1.3.1', sha256='4bc3764aaa7e79da9a81f40c0593b646007b689e4ac20886d06f271ce0fa0a60')
+ version('1.3', sha256='781b8be935e10b65470207f4f179bb1196aa6740547f9f1af0cb1c0193f11c6f')
+ version('1.1', sha256='986d03e6deed20a3b9d0e076b1be9053c1bc86c8b41ca36cce3ba3b22dc6abca')
+ version('1.0', sha256='4d98d1a78669290d0a2e6bfe07a1eb4ab96bd05e5ef78da96d2c3cf03b023aa0')
+
+ variant('static', default=False, description="Build as static library")
+ variant('doc', default=False, description="The Paje Trace File documentation")
+ variant('lib', default=True, description="Build libpaje")
+ variant('tools', default=True, description="Build auxiliary tools")
+ variant('gui', default=False, description="The PajeNG visualization tool")
+
+ depends_on('boost')
+ depends_on('flex')
+ depends_on('bison')
+ depends_on('qt@:4.999+opengl', when='@:1.3.2+gui')
+ depends_on('freeglut', when='@:1.3.2+gui')
+ depends_on('fmt', when='@develop')
+
+ conflicts('+tools', when='~lib', msg="Enable libpaje to compile tools.")
+ conflicts('+gui', when='@1.3.3:', msg="PajeNG visualization tool is available only for versions up to 1.3.2.")
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('STATIC_LINKING', 'static'),
+ self.define_from_variant('PAJE_DOC', 'doc'),
+ self.define_from_variant('PAJE_LIBRARY', 'lib'),
+ self.define_from_variant('PAJE_TOOLS', 'tools')
+ ]
+
+ if self.spec.satisfies('@:1.3.2'):
+ args.extend([self.define_from_variant('PAJENG', 'gui'),
+ self.define_from_variant('PAJE_UTILS_LIBRARY', 'gui'),
+ self.define_from_variant('PJ_DUMP', 'tools'),
+ self.define_from_variant('PJ_VALIDATE', 'tools')])
+
+ return args
+
+ @when('@1.1+lib')
+ def build(self, spec, prefix):
+ with working_dir(self.build_directory):
+ make('paje_library')
diff --git a/var/spack/repos/builtin/packages/pal/package.py b/var/spack/repos/builtin/packages/pal/package.py
index 53e092f70c..875e51ce0d 100644
--- a/var/spack/repos/builtin/packages/pal/package.py
+++ b/var/spack/repos/builtin/packages/pal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/paml/package.py b/var/spack/repos/builtin/packages/paml/package.py
index b56da09036..fb50d05b48 100644
--- a/var/spack/repos/builtin/packages/paml/package.py
+++ b/var/spack/repos/builtin/packages/paml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/panda/package.py b/var/spack/repos/builtin/packages/panda/package.py
index df0bf63a87..924807b5b0 100644
--- a/var/spack/repos/builtin/packages/panda/package.py
+++ b/var/spack/repos/builtin/packages/panda/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pandaseq/package.py b/var/spack/repos/builtin/packages/pandaseq/package.py
index a4693e7056..987d3639ff 100644
--- a/var/spack/repos/builtin/packages/pandaseq/package.py
+++ b/var/spack/repos/builtin/packages/pandaseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pandoc/package.py b/var/spack/repos/builtin/packages/pandoc/package.py
index c099ac3e6d..ca0c8371c8 100644
--- a/var/spack/repos/builtin/packages/pandoc/package.py
+++ b/var/spack/repos/builtin/packages/pandoc/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
+from spack import *
+
class Pandoc(Package):
"""If you need to convert files from one markup format into another, pandoc
@@ -19,15 +20,29 @@ class Pandoc(Package):
# the challenges with Haskell. Until the Haskell framework is in Spack this
# package will meet the needs of packages that have a dependency on pandoc.
- if platform.system() == "Linux":
- url = "https://github.com/jgm/pandoc/releases/download/2.7.3/pandoc-2.7.3-linux.tar.gz"
- version('2.7.3', sha256='eb775fd42ec50329004d00f0c9b13076e707cdd44745517c8ce2581fb8abdb75')
+ if platform.system() == "Linux" and platform.machine() == 'aarch64':
+ url = "https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-linux-arm64.tar.gz"
+ version('2.14.0.3', sha256='1212e528fb717e0ffa6662d4930640abdbe0c36d14d283560a9688c8403bf34c')
+
+ elif platform.system() == "Linux":
+ url = "https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-linux-amd64.tar.gz"
+
+ version('2.14.0.3', sha256='3ed8bf98126fb68fa6ce05861ab866f5100edc38bcf47bc0bb000692453344c0')
+ version('2.11.4', sha256='b15ce6009ab833fb51fc472bf8bb9683cd2bd7f8ac948f3ddeb6b8f9a366d69a')
+ version('2.7.3', sha256='eb775fd42ec50329004d00f0c9b13076e707cdd44745517c8ce2581fb8abdb75',
+ url="https://github.com/jgm/pandoc/releases/download/2.7.3/pandoc-2.7.3-linux.tar.gz")
+
elif platform.system() == "Darwin":
- url = "https://github.com/jgm/pandoc/releases/download/2.7.3/pandoc-2.7.3-macOS.zip"
+ url = "https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-macOS.zip"
+
+ version('2.14.0.3', sha256='c6c1addd968699733c7d597cf269cc66d692371995703c32e5262f84a125c27b')
+ version('2.11.4', sha256='13b8597860afa6ab802993a684b340be3f31f4d2a06c50b6601f9e726cf76f71')
version('2.7.3', sha256='fb93800c90f3fab05dbd418ee6180d086b619c9179b822ddfecb608874554ff0')
variant('texlive', default=True, description='Use TeX Live to enable PDF output')
+ conflicts('target=aarch64:', msg='aarch64 is not supported.', when='@:2.11')
+
depends_on('texlive', when='+texlive')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py
index 850c3f8bed..2005a0f185 100644
--- a/var/spack/repos/builtin/packages/pango/package.py
+++ b/var/spack/repos/builtin/packages/pango/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,11 +11,14 @@ class Pango(AutotoolsPackage):
an emphasis on internationalization. It can be used anywhere
that text layout is needed, though most of the work on Pango so
far has been done in the context of the GTK+ widget toolkit."""
- homepage = "http://www.pango.org"
+ homepage = "https://www.pango.org"
url = "http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.3.tar.xz"
list_url = "http://ftp.gnome.org/pub/gnome/sources/pango/"
list_depth = 1
+ # These are the last pango versions which can be built using autotools,
+ # Using Meson instead has some hurdles ahead, see PR #25472
+ version('1.42.0', sha256='9924d88a3dcedff753f0763814a1605307c5c9c931413b8b47ea7267d1b19446')
version('1.41.0', sha256='1f76ef95953dc58ee5d6a53e5f1cb6db913f3e0eb489713ee9266695cae580ba')
version('1.40.3', sha256='abba8b5ce728520c3a0f1535eab19eac3c14aeef7faa5aded90017ceac2711d3')
version('1.40.1', sha256='e27af54172c72b3ac6be53c9a4c67053e16c905e02addcf3a603ceb2005c1a40')
@@ -33,6 +36,7 @@ class Pango(AutotoolsPackage):
depends_on('gobject-introspection')
depends_on('fontconfig')
depends_on('freetype@2:')
+ depends_on('fribidi', when='@1.42:')
depends_on('libffi')
depends_on('harfbuzz@1.2.3:', when='@1.41.0')
diff --git a/var/spack/repos/builtin/packages/pangolin/package.py b/var/spack/repos/builtin/packages/pangolin/package.py
new file mode 100644
index 0000000000..8c0ecfd0c2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pangolin/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 Pangolin(CMakePackage):
+ """Pangolin is a lightweight portable rapid development library for
+ managing OpenGL display / interaction and abstracting video input."""
+
+ homepage = "https://github.com/stevenlovegrove/Pangolin"
+ git = "https://github.com/stevenlovegrove/Pangolin.git"
+
+ version('master', branch='master')
+
+ # Required dependencies
+ depends_on('cmake@2.8.12:', type='build')
+ depends_on('gl')
+ depends_on('glew')
+ depends_on('glu', type='link')
+
+ # Optional dependencies
+ depends_on('eigen')
diff --git a/var/spack/repos/builtin/packages/pangomm/package.py b/var/spack/repos/builtin/packages/pangomm/package.py
index e77aaf711b..9eebf07fd1 100644
--- a/var/spack/repos/builtin/packages/pangomm/package.py
+++ b/var/spack/repos/builtin/packages/pangomm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Pangomm(AutotoolsPackage):
"""Pangomm is a C++ interface to Pango."""
- homepage = "http://www.pango.org/"
+ homepage = "https://www.pango.org/"
url = "https://ftp.gnome.org/pub/GNOME/sources/pangomm/2.14/pangomm-2.14.1.tar.gz"
version('2.43.1', sha256='00483967b4ed0869da09dc0617de45625b9ab846c7b07aa25dfc940a4fc540a4')
diff --git a/var/spack/repos/builtin/packages/papi/crayftn-fixes.patch b/var/spack/repos/builtin/packages/papi/crayftn-fixes.patch
new file mode 100644
index 0000000000..bd4aa652d5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/papi/crayftn-fixes.patch
@@ -0,0 +1,57 @@
+From ddfa53f3e20218dceaed6e0bfbe307e531ae879f Mon Sep 17 00:00:00 2001
+From: Howard Pritchard <hppritcha@gmail.com>
+Date: Thu, 10 Dec 2020 15:05:33 -0700
+Subject: [PATCH] fix fixed form ftn argument for crayftn patch openmp.F
+
+Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
+
+diff --git a/src/ftests/Makefile b/src/ftests/Makefile
+index 315e1e76..d45fbb6d 100644
+--- a/src/ftests/Makefile
++++ b/src/ftests/Makefile
+@@ -3,7 +3,7 @@
+ include Makefile.target
+
+ INCLUDE = -I../testlib -I. -I..
+-FFLAGS = $(CFLAGS) -ffixed-line-length-132
++FFLAGS = $(CFLAGS) -N132
+ testlibdir=../testlib
+ TESTLIB= $(testlibdir)/libtestlib.a
+ DOLOOPS= $(testlibdir)/do_loops.o
+diff --git a/src/ftests/openmp.F b/src/ftests/openmp.F
+index 6cd5af23..ccf9030a 100644
+--- a/src/ftests/openmp.F
++++ b/src/ftests/openmp.F
+@@ -18,7 +18,7 @@
+ tests_quiet = get_quiet()
+ es = PAPI_NULL
+
+- call PAPIF_thread_init(omp_get_thread_num, retval)
++ call PAPIF_thread_init(my_thread_num, retval)
+
+
+ retval = PAPI_VER_CURRENT
+@@ -64,7 +64,6 @@
+
+ !$OMP END PARALLEL
+
+-
+ call PAPIf_stop(es, values(1), retval)
+ if ( retval .NE. PAPI_OK ) then
+ call ftest_fail(__FILE__, __LINE__,
+@@ -80,3 +79,12 @@
+ call ftests_pass(__FILE__)
+ end
+
++ function my_thread_num()
++ use omp_lib
++ integer::my_thread_num
++
++ my_thread_num = omp_get_thread_num()
++
++ end function my_thread_num
++
++
+--
+2.26.2
+
diff --git a/var/spack/repos/builtin/packages/papi/package.py b/var/spack/repos/builtin/packages/papi/package.py
index 04a425b3ad..700ba9e21d 100644
--- a/var/spack/repos/builtin/packages/papi/package.py
+++ b/var/spack/repos/builtin/packages/papi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,6 +6,7 @@
import glob
import os
import sys
+
import llnl.util.filesystem as fs
@@ -18,10 +19,13 @@ class Papi(AutotoolsPackage):
addition Component PAPI provides access to a collection of
components that expose performance measurement opportunities
across the hardware and software stack."""
- homepage = "http://icl.cs.utk.edu/papi/index.html"
+ homepage = "https://icl.cs.utk.edu/papi/index.html"
maintainers = ['G-Ragghianti']
- url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz"
+ url = "https://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz"
+ git = "https://bitbucket.org/icl/papi/src/master/"
+
+ version('master', branch='master')
version('6.0.0.1', sha256='3cd7ed50c65b0d21d66e46d0ba34cd171178af4bbf9d94e693915c1aca1e287f')
version('6.0.0', sha256='3442709dae3405c2845b304c06a8b15395ecf4f3899a89ceb4d715103cb4055f')
version('5.7.0', sha256='d1a3bb848e292c805bc9f29e09c27870e2ff4cda6c2fba3b7da8b4bba6547589')
@@ -62,6 +66,7 @@ class Papi(AutotoolsPackage):
# Does not build with newer versions of gcc, see
# https://bitbucket.org/icl/papi/issues/46/cannot-compile-on-arch-linux
patch('https://bitbucket.org/icl/papi/commits/53de184a162b8a7edff48fed01a15980664e15b1/raw', sha256='64c57b3ad4026255238cc495df6abfacc41de391a0af497c27d0ac819444a1f8', when='@5.4.0:5.6.99%gcc@8:')
+ patch('crayftn-fixes.patch', when='@6.0.0:%cce@9:')
configure_directory = 'src'
diff --git a/var/spack/repos/builtin/packages/papyrus/package.py b/var/spack/repos/builtin/packages/papyrus/package.py
index bb13155510..e5f17e6562 100644
--- a/var/spack/repos/builtin/packages/papyrus/package.py
+++ b/var/spack/repos/builtin/packages/papyrus/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -10,11 +12,75 @@ class Papyrus(CMakePackage):
"""Parallel Aggregate Persistent Storage"""
homepage = "https://code.ornl.gov/eck/papyrus"
- url = "https://code.ornl.gov/eck/papyrus/repository/archive.tar.bz2?ref=v1.0.1"
+ url = "https://code.ornl.gov/eck/papyrus/repository/archive.tar.bz2?ref=v1.0.2"
git = "https://code.ornl.gov/eck/papyrus.git"
version('master', branch='master')
+ version('1.0.2', sha256='b6cfcff99f73ded8e4ca4b165bc182cd5cac60f0c0cf4f93649b77d074445645')
version('1.0.1', sha256='3772fd6f2c301faf78f18c5e4dc3dbac57eb361861b091579609b3fff9e0bb17')
version('1.0.0', sha256='5d57c0bcc80de48951e42460785783b882087a5714195599d773a6eabde5c4c4')
depends_on('mpi')
+
+ test_requires_compiler = True
+
+ def setup_run_environment(self, env):
+ if os.path.isdir(self.prefix.lib64):
+ lib_dir = self.prefix.lib64
+ else:
+ lib_dir = self.prefix.lib
+
+ env.prepend_path('CPATH', self.prefix.include)
+ env.prepend_path('LIBRARY_PATH', lib_dir)
+ env.prepend_path('LD_LIBRARY_PATH', lib_dir)
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([join_path('kv', 'tests')])
+
+ def run_example_tests(self):
+ """Run all c & c++ stand alone test"""
+
+ example_dir = join_path(self.test_suite.current_test_cache_dir, 'kv', 'tests')
+
+ if not os.path.exists(example_dir):
+ print('Skipping all test')
+ return
+
+ if os.path.isdir(self.prefix.lib64):
+ lib_dir = self.prefix.lib64
+ else:
+ lib_dir = self.prefix.lib
+
+ example_list = ['01_open_close', '02_put_get', '03_barrier',
+ '04_delete', '05_fence', '06_signal',
+ '07_consistency', '08_protect', '09_cache',
+ '10_checkpoint', '11_restart', '12_free']
+
+ for example in example_list:
+
+ test_dir = join_path(self.test_suite.current_test_cache_dir,
+ 'kv', 'tests', example)
+ test_example = 'test{0}.c'.format(example)
+
+ if not os.path.exists(test_dir):
+ print('Skipping {0} test'.format(example))
+ continue
+
+ self.run_test(self.spec['mpi'].mpicxx,
+ options=['{0}'.format(join_path(test_dir, test_example)),
+ '-I{0}'.format(join_path(self.prefix, 'include')),
+ '-L{0}'.format(lib_dir), '-lpapyruskv', '-g', '-o',
+ example, '-lpthread', '-lm'],
+ purpose='test: compile {0} example'.format(example),
+ work_dir=test_dir)
+
+ self.run_test(self.spec['mpi'].prefix.bin.mpirun,
+ options=['-np', '4', example],
+ purpose='test: run {0} example'.format(example),
+ work_dir=test_dir)
+
+ def test(self):
+ self.run_example_tests()
diff --git a/var/spack/repos/builtin/packages/paradiseo/package.py b/var/spack/repos/builtin/packages/paradiseo/package.py
index c235acbdc8..206a920cb5 100644
--- a/var/spack/repos/builtin/packages/paradiseo/package.py
+++ b/var/spack/repos/builtin/packages/paradiseo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Paradiseo(CMakePackage):
"""A C++ white-box object-oriented framework dedicated to the reusable
design of metaheuristics."""
- homepage = "http://paradiseo.gforge.inria.fr/"
+ homepage = "https://paradiseo.gforge.inria.fr/"
git = "https://gforge.inria.fr/git/paradiseo/paradiseo.git"
# Installing from the development version is a better option at this
@@ -31,7 +31,6 @@ class Paradiseo(CMakePackage):
variant('edo', default=True,
description='Compile with (Experimental) EDO module')
- # variant('doc', default=False, description='Compile with documentation')
variant('openmp', default=False, description='Enable OpenMP support')
variant('gnuplot', default=False, description='Enable GnuPlot support')
@@ -40,7 +39,6 @@ class Paradiseo(CMakePackage):
# Optional dependencies
depends_on("mpi", when="+mpi")
- depends_on("doxygen", when='+doc', type='build')
depends_on("gnuplot", when='+gnuplot')
depends_on("eigen", when='+edo', type='build')
depends_on("boost~mpi", when='+edo~mpi')
@@ -53,18 +51,13 @@ class Paradiseo(CMakePackage):
patch('fix_tutorials.patch')
def cmake_args(self):
- spec = self.spec
-
return [
'-DINSTALL_TYPE:STRING=MIN',
- '-DMPI:BOOL=%s' % ('TRUE' if '+mpi' in spec else 'FALSE'),
+ self.define_from_variant('MPI', 'mpi'),
# Note: This requires a C++11 compatible compiler
- '-DSMP:BOOL=%s' % ('TRUE' if '+smp' in spec else 'FALSE'),
- '-DEDO:BOOL=%s' % ('TRUE' if '+edo' in spec else 'FALSE'),
- '-DENABLE_CMAKE_TESTING:BOOL=%s' % (
- 'TRUE' if self.run_tests else 'FALSE'),
- '-DENABLE_OPENMP:BOOL=%s' % (
- 'TRUE' if '+openmp' in spec else 'FALSE'),
- '-DENABLE_GNUPLOT:BOOL=%s' % (
- 'TRUE' if '+gnuplot' in spec else 'FALSE')
+ self.define_from_variant('SMP', 'smp'),
+ self.define_from_variant('EDO', 'edo'),
+ self.define('ENABLE_CMAKE_TESTING', self.run_tests),
+ self.define_from_variant('ENABLE_OPENMP', 'openmp'),
+ self.define_from_variant('ENABLE_GNUPLOT', 'gnuplot')
]
diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/package.py b/var/spack/repos/builtin/packages/parallel-netcdf/package.py
index 8f35ea98c6..0122b3707c 100644
--- a/var/spack/repos/builtin/packages/parallel-netcdf/package.py
+++ b/var/spack/repos/builtin/packages/parallel-netcdf/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -19,6 +21,8 @@ class ParallelNetcdf(AutotoolsPackage):
maintainers = ['skosukhin']
+ test_requires_compiler = True
+
def url_for_version(self, version):
if version >= Version('1.11.0'):
url = "https://parallel-netcdf.github.io/Release/pnetcdf-{0}.tar.gz"
@@ -28,6 +32,7 @@ class ParallelNetcdf(AutotoolsPackage):
return url.format(version.dotted)
version('master', branch='master')
+ version('1.12.2', sha256='3ef1411875b07955f519a5b03278c31e566976357ddfc74c2493a1076e7d7c74')
version('1.12.1', sha256='56f5afaa0ddc256791c405719b6436a83b92dcd5be37fe860dea103aee8250a2')
version('1.11.2', sha256='d2c18601b364c35b5acb0a0b46cd6e14cae456e0eb854e5c789cf65f3cd6a2a7')
version('1.11.1', sha256='0c587b707835255126a23c104c66c9614be174843b85b897b3772a590be45779')
@@ -169,3 +174,32 @@ class ParallelNetcdf(AutotoolsPackage):
args.append('--enable-burst-buffering')
return args
+
+ examples_src_dir = 'examples/CXX'
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.examples_src_dir])
+
+ def test(self):
+ test_dir = join_path(self.install_test_root, self.examples_src_dir)
+ # pnetcdf has many examples to serve as a suitable smoke check.
+ # column_wise was chosen based on the E4S test suite. Other
+ # examples should work as well.
+ test_exe = 'column_wise'
+ options = ['{0}.cpp'.format(test_exe), '-o', test_exe, '-lpnetcdf']
+ reason = 'test: compiling and linking pnetcdf example'
+ self.run_test(self.spec['mpi'].mpicxx, options, [],
+ installed=False, purpose=reason, work_dir=test_dir)
+ mpiexe_list = ['mpirun', 'mpiexec', 'srun']
+ for mpiexe in mpiexe_list:
+ if os.path.isfile(mpiexe):
+ self.run_test(mpiexe, ['-n', '4', test_exe], [],
+ installed=False,
+ purpose='test: pnetcdf smoke test',
+ skip_missing=True,
+ work_dir=test_dir)
+ break
+ self.run_test('rm', ['-f', test_exe], work_dir=test_dir)
diff --git a/var/spack/repos/builtin/packages/parallel/package.py b/var/spack/repos/builtin/packages/parallel/package.py
index 4346efcbbb..28d28a2d56 100644
--- a/var/spack/repos/builtin/packages/parallel/package.py
+++ b/var/spack/repos/builtin/packages/parallel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Parallel(AutotoolsPackage, GNUMirrorPackage):
script that has to be run for each of the lines in the input.
"""
- homepage = "http://www.gnu.org/software/parallel/"
+ homepage = "https://www.gnu.org/software/parallel/"
gnu_mirror_path = "parallel/parallel-20170122.tar.bz2"
version('20200822', sha256='9654226a808392c365b1e7b8dea91bf4870bc4f306228d853eb700679e21be09')
diff --git a/var/spack/repos/builtin/packages/parallelio/package.py b/var/spack/repos/builtin/packages/parallelio/package.py
new file mode 100644
index 0000000000..601f91089e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parallelio/package.py
@@ -0,0 +1,53 @@
+# Copyright 2013-2021 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 Parallelio(CMakePackage):
+ """The Parallel IO libraries (PIO) are high-level parallel I/O C and
+ Fortran libraries for applications that need to do netCDF I/O from
+ large numbers of processors on a HPC system."""
+
+ homepage = "https://ncar.github.io/ParallelIO/"
+ url = "https://github.com/NCAR/ParallelIO/archive/pio2_5_4.tar.gz"
+
+ maintainers = ['tkameyama']
+
+ version('2_5_4', sha256='e51dc71683da808a714deddc1a80c2650ce847110383e42f1710f3ba567e7a65')
+ version('2_5_2', sha256='935bc120ef3bf4fe09fb8bfdf788d05fb201a125d7346bf6b09e27ac3b5f345c')
+
+ variant('pnetcdf', default=False, description='enable pnetcdf')
+
+ depends_on('mpi')
+ depends_on('netcdf-c +mpi', type='link')
+ depends_on('netcdf-fortran', type='link')
+ depends_on('parallel-netcdf', type='link', when='+pnetcdf')
+
+ resource(name='CMake_Fortran_utils',
+ git='https://github.com/CESM-Development/CMake_Fortran_utils.git',
+ tag='master')
+ resource(name='genf90',
+ git='https://github.com/PARALLELIO/genf90.git',
+ tag='genf90_200608')
+
+ def cmake_args(self):
+ define = self.define
+ spec = self.spec
+ env['CC'] = spec['mpi'].mpicc
+ env['FC'] = spec['mpi'].mpifc
+ src = self.stage.source_path
+ args = [
+ define('NetCDF_C_PATH', spec['netcdf-c'].prefix),
+ define('NetCDF_Fortran_PATH', spec['netcdf-fortran'].prefix),
+ define('USER_CMAKE_MODULE_PATH', join_path(src, 'CMake_Fortran_utils')),
+ define('GENF90_PATH', join_path(src, 'genf90')),
+ ]
+ if spec.satisfies('+pnetcdf'):
+ args.extend([
+ define('PnetCDF_C_PATH', spec['parallel-netcdf'].prefix),
+ define('PnetCDF_Fortran_PATH', spec['parallel-netcdf'].prefix),
+ ])
+ return args
diff --git a/var/spack/repos/builtin/packages/parallelmergetree/package.py b/var/spack/repos/builtin/packages/parallelmergetree/package.py
index 36069e755f..54c246f0b0 100644
--- a/var/spack/repos/builtin/packages/parallelmergetree/package.py
+++ b/var/spack/repos/builtin/packages/parallelmergetree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,18 +17,30 @@ class Parallelmergetree(CMakePackage):
maintainers = ['spetruzza']
- version('develop',
- commit='6774ed74fd13b9747ac792978a676ce6e8b05cab',
+ version('1.0.2',
+ git='https://bitbucket.org/cedmav/parallelmergetree.git',
+ tag='v1.0.2',
submodules=True)
- depends_on('babelflow@develop')
+ version('1.0.0',
+ git='https://bitbucket.org/cedmav/parallelmergetree.git',
+ tag='v1.0.0',
+ submodules=True)
+
+ depends_on('babelflow')
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'
- ]
+ args = []
+
+ if "+shared" in self.spec:
+ args.append('-DBUILD_SHARED_LIBS=ON')
+ else:
+ args.append('-DBUILD_SHARED_LIBS=OFF')
+
+ args.append('-DLIBRARY_ONLY=ON')
+ args.append('-DBabelFlow_DIR={0}'.format(
+ self.spec['babelflow'].prefix))
+
return args
diff --git a/var/spack/repos/builtin/packages/paraver/package.py b/var/spack/repos/builtin/packages/paraver/package.py
index fe305fc07e..f184780e2f 100644
--- a/var/spack/repos/builtin/packages/paraver/package.py
+++ b/var/spack/repos/builtin/packages/paraver/package.py
@@ -1,29 +1,33 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Paraver(Package):
""""A very powerful performance visualization and analysis tool
based on traces that can be used to analyse any information that
is expressed on its input trace format. Traces for parallel MPI,
- OpenMP and other programs can be genereated with Extrae."""
+ OpenMP and other programs can be genereated with Extrae.
+
+ Note: This package is deprecated in favor of wxparaver"""
homepage = "https://tools.bsc.es/paraver"
- url = "https://ftp.tools.bsc.es/paraver/wxparaver-4.6.3-src.tar.bz2"
+ url = "https://ftp.tools.bsc.es/wxparaver/wxparaver-4.6.3-src.tar.bz2"
# NOTE: Paraver provides only latest version for download.
# Don't keep/add older versions.
- version('4.6.3', sha256='ac6025eec5419e1060967eab71dfd123e585be5b5f3ac3241085895dbeca255a')
- version('4.6.2', sha256='74b85bf9e6570001d372b376b58643526e349b1d2f1e7633ca38bb0800ecf929')
-
- depends_on("boost")
- # depends_on("extrae")
- depends_on("wxwidgets")
- depends_on("wxpropgrid")
+ version('4.6.3', sha256='ac6025eec5419e1060967eab71dfd123e585be5b5f3ac3241085895dbeca255a', deprecated=True)
+ version('4.6.2', sha256='74b85bf9e6570001d372b376b58643526e349b1d2f1e7633ca38bb0800ecf929', deprecated=True)
+
+ depends_on('boost@1.36: +serialization')
+ depends_on('wxwidgets@2.8:') # NOTE: using external for this one is usually simpler
+ depends_on('wxpropgrid@1.4:')
+ depends_on('libxml2')
+ depends_on('zlib')
def install(self, spec, prefix):
os.chdir("ptools_common_files")
diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py
index 18b3c36e24..b6122441ee 100644
--- a/var/spack/repos/builtin/packages/paraview/package.py
+++ b/var/spack/repos/builtin/packages/paraview/package.py
@@ -1,11 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 itertools
import os
+from spack import *
+
class Paraview(CMakePackage, CudaPackage):
"""ParaView is an open-source, multi-platform data analysis and
@@ -17,9 +19,11 @@ class Paraview(CMakePackage, CudaPackage):
list_depth = 1
git = "https://gitlab.kitware.com/paraview/paraview.git"
- maintainers = ['chuckatkins', 'danlipsa']
+ maintainers = ['chuckatkins', 'danlipsa', 'vicentebolea']
- version('develop', branch='master', submodules=True)
+ version('master', branch='master', submodules=True)
+ version('5.9.1', sha256='0d486cb6fbf55e428845c9650486f87466efcb3155e40489182a7ea85dfd4c8d', preferred=True)
+ version('5.9.0', sha256='b03258b7cddb77f0ee142e3e77b377e5b1f503bcabc02bfa578298c99a06980d')
version('5.8.1', sha256='7653950392a0d7c0287c26f1d3a25cdbaa11baa7524b0af0e6a1a0d7d487d034')
version('5.8.0', sha256='219e4107abf40317ce054408e9c3b22fb935d464238c1c00c0161f1c8697a3f9')
version('5.7.0', sha256='e41e597e1be462974a03031380d9e5ba9a7efcdb22e4ca2f3fec50361f310874')
@@ -51,6 +55,8 @@ class Paraview(CMakePackage, CudaPackage):
variant('kits', default=True,
description='Use module kits')
+ variant('advanced_debug', default=False, description="Enable all other debug flags beside build_type, such as VTK_DEBUG_LEAK")
+
conflicts('+python', when='+python3')
# Python 2 support dropped with 5.9.0
conflicts('+python', when='@5.9:')
@@ -60,6 +66,17 @@ class Paraview(CMakePackage, CudaPackage):
# See commit: https://gitlab.kitware.com/paraview/paraview/-/commit/798d328c
conflicts('~opengl2', when='@5.5:')
+ # We only support one single Architecture
+ for _arch, _other_arch in itertools.permutations(CudaPackage.cuda_arch_values, 2):
+ conflicts(
+ 'cuda_arch={0}'.format(_arch),
+ when='cuda_arch={0}'.format(_other_arch),
+ msg='Paraview only accepts one architecture value'
+ )
+
+ for _arch in range(10, 14):
+ conflicts('cuda_arch=%d' % _arch, when="+cuda", msg='ParaView requires cuda_arch >= 20')
+
depends_on('cmake@3.3:', type='build')
# Workaround for
@@ -119,17 +136,25 @@ class Paraview(CMakePackage, CudaPackage):
depends_on('netcdf-c')
depends_on('pegtl')
depends_on('protobuf@3.4:')
- depends_on('pugixml')
depends_on('libxml2')
depends_on('lz4')
- depends_on('lzma')
+ depends_on('xz')
depends_on('zlib')
+ # Older builds of pugi export their symbols differently,
+ # and pre-5.9 is unable to handle that.
+ depends_on('pugixml@:1.10', when='@:5.8.99')
+ depends_on('pugixml', when='@5.9:')
+
# Can't contretize with python2 and py-setuptools@45.0.0:
depends_on('py-setuptools@:44.99.99', when='+python')
# Can't contretize with python2 and py-pillow@7.0.0:
depends_on('pil@:6', when='+python')
+ # ParaView depends on cli11 due to changes in MR
+ # https://gitlab.kitware.com/paraview/paraview/-/merge_requests/4951
+ depends_on('cli11@1.9.1', when='@5.10:')
+
patch('stl-reader-pv440.patch', when='@4.4.0')
# Broken gcc-detection - improved in 5.1.0, redundant later
@@ -144,6 +169,12 @@ class Paraview(CMakePackage, CudaPackage):
# Broken H5Part with external parallel HDF5
patch('h5part-parallel.patch', when='@5.7:5.7.999')
+ # Broken downstream FindMPI
+ patch('vtkm-findmpi-downstream.patch', when='@5.9.0')
+
+ # Include limits header wherever needed to fix compilation with GCC 11
+ patch('paraview-gcc11-limits.patch', when='@5.9.1 %gcc@11.1.0:')
+
def url_for_version(self, version):
_urlfmt = 'http://www.paraview.org/files/v{0}/ParaView-v{1}{2}.tar.{3}'
"""Handle ParaView version-based custom URLs."""
@@ -157,7 +188,7 @@ class Paraview(CMakePackage, CudaPackage):
@property
def paraview_subdir(self):
"""The paraview subdirectory name as paraview-major.minor"""
- if self.spec.version == Version('develop'):
+ if self.spec.version == Version('master'):
return 'paraview-5.9'
else:
return 'paraview-{0}'.format(self.spec.version.up_to(2))
@@ -176,6 +207,12 @@ class Paraview(CMakePackage, CudaPackage):
env.set('PARAVIEW_VTK_DIR',
join_path(lib_dir, 'cmake', self.paraview_subdir, 'vtk'))
+ def flag_handler(self, name, flags):
+ if name == 'ldflags' and self.spec.satisfies('%intel'):
+ flags.append('-shared-intel')
+ return(None, flags, None)
+ return(flags, None, None)
+
def setup_run_environment(self, env):
# paraview 5.5 and later
# - cmake under lib/cmake/paraview-5.5
@@ -248,6 +285,14 @@ class Paraview(CMakePackage, CudaPackage):
'-DBUILD_TESTING:BOOL=OFF',
'-DOpenGL_GL_PREFERENCE:STRING=LEGACY']
+ if spec.satisfies('@5.10:'):
+ cmake_args.extend([
+ '-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst:BOOL=OFF',
+ '-DVTK_MODULE_USE_EXTERNAL_VTK_ioss:BOOL=OFF',
+ '-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF',
+ '-DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=OFF'
+ ])
+
if spec.satisfies('@:5.7') and spec['cmake'].satisfies('@3.17:'):
cmake_args.append('-DFPHSA_NAME_MISMATCHED:BOOL=ON')
@@ -256,6 +301,8 @@ class Paraview(CMakePackage, CudaPackage):
cmake_args.extend([
'-DPARAVIEW_USE_QT:BOOL=%s' % variant_bool('+qt'),
'-DPARAVIEW_BUILD_WITH_EXTERNAL=ON'])
+ if spec.satisfies('%cce'):
+ cmake_args.append('-DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF')
else: # @5.7:
cmake_args.extend([
'-DPARAVIEW_BUILD_QT_GUI:BOOL=%s' % variant_bool('+qt'),
@@ -334,6 +381,42 @@ class Paraview(CMakePackage, CudaPackage):
cmake_args.append('-DVTKm_ENABLE_CUDA:BOOL=%s' %
variant_bool('+cuda'))
+ # VTK-m expects cuda_arch to be the arch name vs. the arch version.
+ if spec.satisfies('+cuda'):
+ supported_cuda_archs = {
+
+ # VTK-m and transitively ParaView does not support Tesla Arch
+ '20': 'fermi',
+ '21': 'fermi',
+ '30': 'kepler',
+ '32': 'kepler',
+ '35': 'kepler',
+ '37': 'kepler',
+ '50': 'maxwel',
+ '52': 'maxwel',
+ '53': 'maxwel',
+ '60': 'pascal',
+ '61': 'pascal',
+ '62': 'pascal',
+ '70': 'volta',
+ '72': 'volta',
+ '75': 'turing',
+ '80': 'ampere',
+ '86': 'ampere',
+ }
+
+ cuda_arch_value = 'native'
+ requested_arch = spec.variants['cuda_arch'].value
+
+ # ParaView/VTK-m only accepts one arch, default to first element
+ if requested_arch[0] != 'none':
+ try:
+ cuda_arch_value = supported_cuda_archs[requested_arch[0]]
+ except KeyError:
+ raise InstallError("Incompatible cuda_arch=" + requested_arch[0])
+
+ cmake_args.append(self.define('VTKm_CUDA_Architecture', cuda_arch_value))
+
if 'darwin' in spec.architecture:
cmake_args.extend([
'-DVTK_USE_X:BOOL=OFF',
@@ -365,4 +448,16 @@ class Paraview(CMakePackage, CudaPackage):
if '%intel' in spec and spec.version >= Version('5.6'):
cmake_args.append('-DPARAVIEW_ENABLE_MOTIONFX:BOOL=OFF')
+ # Encourage Paraview to use the correct Python libs
+ if spec.satisfies('+python') or spec.satisfies('+python3'):
+ pylibdirs = spec['python'].libs.directories
+ cmake_args.append(
+ "-DCMAKE_INSTALL_RPATH={0}".format(
+ ":".join(self.rpath + pylibdirs)
+ )
+ )
+
+ if '+advanced_debug' in spec:
+ cmake_args.append('-DVTK_DEBUG_LEAKS:BOOL=ON')
+
return cmake_args
diff --git a/var/spack/repos/builtin/packages/paraview/paraview-gcc11-limits.patch b/var/spack/repos/builtin/packages/paraview/paraview-gcc11-limits.patch
new file mode 100644
index 0000000000..3010362083
--- /dev/null
+++ b/var/spack/repos/builtin/packages/paraview/paraview-gcc11-limits.patch
@@ -0,0 +1,49 @@
+Index: ParaView-v5.9.1/VTK/Common/Core/vtkGenericDataArrayLookupHelper.h
+===================================================================
+--- ParaView-v5.9.1.orig/VTK/Common/Core/vtkGenericDataArrayLookupHelper.h
++++ ParaView-v5.9.1/VTK/Common/Core/vtkGenericDataArrayLookupHelper.h
+@@ -25,6 +25,7 @@
+ #include "vtkIdList.h"
+ #include <algorithm>
+ #include <cmath>
++#include <limits>
+ #include <unordered_map>
+ #include <vector>
+
+Index: ParaView-v5.9.1/VTK/Rendering/Core/vtkColorTransferFunction.cxx
+===================================================================
+--- ParaView-v5.9.1.orig/VTK/Rendering/Core/vtkColorTransferFunction.cxx
++++ ParaView-v5.9.1/VTK/Rendering/Core/vtkColorTransferFunction.cxx
+@@ -21,6 +21,7 @@
+ #include <algorithm>
+ #include <cmath>
+ #include <iterator>
++#include <limits>
+ #include <set>
+ #include <vector>
+
+Index: ParaView-v5.9.1/VTK/Common/DataModel/vtkPiecewiseFunction.cxx
+===================================================================
+--- ParaView-v5.9.1.orig/VTK/Common/DataModel/vtkPiecewiseFunction.cxx
++++ ParaView-v5.9.1/VTK/Common/DataModel/vtkPiecewiseFunction.cxx
+@@ -22,6 +22,7 @@
+ #include <cassert>
+ #include <cmath>
+ #include <iterator>
++#include <limits>
+ #include <set>
+ #include <vector>
+
+Index: ParaView-v5.9.1/VTK/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx
+===================================================================
+--- ParaView-v5.9.1.orig/VTK/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx
++++ ParaView-v5.9.1/VTK/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx
+@@ -27,6 +27,7 @@
+ #include "vtkHyperTreeGridNonOrientedCursor.h"
+
+ #include <cmath>
++#include <limits>
+
+ vtkStandardNewMacro(vtkHyperTreeGridThreshold);
+
+
diff --git a/var/spack/repos/builtin/packages/paraview/vtkm-findmpi-downstream.patch b/var/spack/repos/builtin/packages/paraview/vtkm-findmpi-downstream.patch
new file mode 100644
index 0000000000..31356ea51a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/paraview/vtkm-findmpi-downstream.patch
@@ -0,0 +1,51 @@
+From 5bf0eff1563820d7c997649da372ab003fd4af81 Mon Sep 17 00:00:00 2001
+From: Chuck Atkins <chuck.atkins@kitware.com>
+Date: Mon, 15 Feb 2021 13:59:50 -0500
+Subject: [PATCH] CMake: Fix FindMPI getting consumed by newer CMake versions
+
+---
+ CMake/patches/FindMPI.cmake | 11 +++++++++++
+ CMakeLists.txt | 7 ++++++-
+ 2 files changed, 17 insertions(+), 1 deletion(-)
+ create mode 100644 CMake/patches/FindMPI.cmake
+
+diff --git a/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/patches/FindMPI.cmake b/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/patches/FindMPI.cmake
+new file mode 100644
+index 000000000..a4ed44f04
+--- /dev/null
++++ b/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/patches/FindMPI.cmake
+@@ -0,0 +1,11 @@
++#------------------------------------------------------------------------------#
++# Distributed under the OSI-approved Apache License, Version 2.0. See
++# accompanying file Copyright.txt for details.
++#------------------------------------------------------------------------------#
++
++# This module is already included in new versions of CMake
++if(CMAKE_VERSION VERSION_LESS 3.15)
++ include(${CMAKE_CURRENT_LIST_DIR}/3.15/FindMPI.cmake)
++else()
++ include(${CMAKE_ROOT}/Modules/FindMPI.cmake)
++endif()
+diff --git a/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt b/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt
+index e907495f3..fa464ab8d 100644
+--- a/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt
++++ b/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt
+@@ -277,9 +277,14 @@ if(NOT VTKm_INSTALL_ONLY_LIBRARIES)
+ FILES
+ ${VTKm_SOURCE_DIR}/CMake/VTKmCMakeBackports.cmake
+ ${VTKm_SOURCE_DIR}/CMake/FindTBB.cmake
+- ${VTKm_SOURCE_DIR}/CMake/patches/3.15/FindMPI.cmake
++ ${VTKm_SOURCE_DIR}/CMake/patches/FindMPI.cmake
+ DESTINATION ${VTKm_INSTALL_CMAKE_MODULE_DIR}
+ )
++ install(
++ FILES
++ ${VTKm_SOURCE_DIR}/CMake/patches/3.15/FindMPI.cmake
++ DESTINATION ${VTKm_INSTALL_CMAKE_MODULE_DIR}/3.15
++ )
+
+ # Install support files.
+ install(
+--
+2.24.2
+
diff --git a/var/spack/repos/builtin/packages/parflow/package.py b/var/spack/repos/builtin/packages/parflow/package.py
new file mode 100644
index 0000000000..22120a2dc7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parflow/package.py
@@ -0,0 +1,82 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Parflow(CMakePackage):
+ """ParFlow is an open-source parallel watershed simulator which
+ includes overland flow, complex topology, heterogeneity and coupled
+ land-surface processes."""
+
+ homepage = "https://www.parflow.org/"
+ url = "https://github.com/parflow/parflow/archive/v3.9.0.tar.gz"
+ git = "https://github.com/parflow/parflow.git"
+
+ maintainers = ['smithsg84']
+
+ version('develop', branch='master')
+ version('3.9.0', sha256='0ac610208baf973ac07ca93187ec289ba3f6e904d3f01d721ee96a2ace0f5e48')
+ version('3.8.0', sha256='5ad01457bb03265d1e221090450e3bac5a680d6290db7e3872c295ce6d6aaa08')
+
+ variant('mpi', default=True, description='Enable MPI support')
+
+ # Using explicit versions to keep builds consistent
+ depends_on('tcl@8.6.11')
+ depends_on('mpi@3.0.0', when='+mpi')
+ depends_on('hdf5@1.10.7 +mpi', when='+mpi')
+ depends_on('netcdf-c@4.5.0')
+ depends_on('silo@4.10.2 -hzip -fpzip')
+ depends_on('hypre@2.20.0')
+
+ parallel = False
+
+ def cmake_args(self):
+ """Populate cmake arguments for ParFlow."""
+ spec = self.spec
+
+ cmake_args = [
+ '-DCMAKE_BUILD_TYPE=Release',
+ '-DPARFLOW_AMPS_LAYER=mpi1',
+ '-DPARFLOW_HAVE_CLM=TRUE',
+ '-DTCL_TCLSH={0}'.format(spec['tcl'].prefix.bin.tclsh),
+ '-DTCL_LIBRARY={0}'.format(LibraryList(find_libraries('libtcl*',
+ self.spec['tcl'].prefix,
+ shared=True, recursive=True))),
+ '-DHDF5_ROOT={0}'.format(spec['hdf5'].prefix),
+ '-DSILO_ROOT={0}'.format(spec['silo'].prefix),
+ '-DHYPRE_ROOT={0}'.format(spec['hypre'].prefix),
+ '-DPARFLOW_ENABLE_NETCDF=TRUE',
+ '-DNETCDF_DIR={0}'.format(spec['netcdf-c'].prefix),
+ ]
+
+ return cmake_args
+
+ def setup_run_environment(self, env):
+ """Setup the run environment for ParFlow package."""
+ # ParFlow requires a PARFLOW_DIR env variable for correct execution
+ env.set('PARFLOW_DIR', self.spec.prefix)
+
+ examples_dir = "examples"
+
+ def test(self):
+ """Perform smoke test on installed ParFlow package."""
+ # Run the single phase flow test
+ run_path = join_path(self.spec.prefix, self.examples_dir)
+ if os.path.isdir(run_path):
+ with working_dir(run_path):
+ self.run_test(
+ '{0}/tclsh'.format(self.spec['tcl'].prefix.bin),
+ ['default_single.tcl', '1', '1' '1'])
+ else:
+ # If examples are not installed test if exe executes
+ exes = ['parflow']
+ for exe in exes:
+ reason = 'test version of {0} is {1}'.format(exe,
+ self.spec.version)
+ self.run_test(exe, ['-v'], [self.spec.version.string],
+ installed=True, purpose=reason)
diff --git a/var/spack/repos/builtin/packages/parmetis/package.py b/var/spack/repos/builtin/packages/parmetis/package.py
index d1f9c434af..2968c3a1d0 100644
--- a/var/spack/repos/builtin/packages/parmetis/package.py
+++ b/var/spack/repos/builtin/packages/parmetis/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Parmetis(CMakePackage):
"""ParMETIS is an MPI-based parallel library that implements a variety of
diff --git a/var/spack/repos/builtin/packages/parmgridgen/package.py b/var/spack/repos/builtin/packages/parmgridgen/package.py
index eccaec1263..8833afa815 100644
--- a/var/spack/repos/builtin/packages/parmgridgen/package.py
+++ b/var/spack/repos/builtin/packages/parmgridgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class Parmgridgen(Package):
ParMGridGen is the parallel version of MGridGen.
"""
- homepage = "http://www-users.cs.umn.edu/~moulitsa/software.html"
+ homepage = "https://github.com/mrklein/ParMGridGen"
url = "http://www.stasyan.com/devel/distfiles/ParMGridGen-1.0.tar.gz"
version('1.0', sha256='62cdb6e48cfc59124e5d5d360c2841e0fc2feecafe65bda110b74e942740b395')
diff --git a/var/spack/repos/builtin/packages/parmmg/package.py b/var/spack/repos/builtin/packages/parmmg/package.py
new file mode 100644
index 0000000000..aa151d9cff
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parmmg/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 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 Parmmg(CMakePackage):
+ """ParMMG is a parallel remesher based on MMG"""
+
+ homepage = "https://www.mmgtools.org"
+ url = "https://github.com/MmgTools/ParMmg/archive/refs/tags/v1.3.0.tar.gz"
+
+ maintainers = ['corentin-dev']
+
+ version('1.3.0', sha256='d43b73a73b62545b5a31bbe25562f69c9e63ad8a6d416bd459781203e37427cf')
+ version('1.2.0', sha256='99729cc292dcb59c87e3f25d4cabf5a64841e83b624d383e1fd3fb7f960df672')
+ version('1.1.0', sha256='a5904f1f56b7809ab9ec2f6118b03a082ec2b5564355a73c74fc55426cc69600')
+ version('1.0.0', sha256='614feb815ff6cdfc9bced30e8105994f0bf3a812243619d3349203ec1851cf6d')
+
+ depends_on('mmg')
+ depends_on('metis')
+ depends_on('vtk')
+ depends_on('mpi')
+
+ variant('pic', default=True,
+ description='Build with position independent code')
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('CMAKE_POSITION_INDEPENDENT_CODE', 'pic'),
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/parquet-cpp/package.py b/var/spack/repos/builtin/packages/parquet-cpp/package.py
index 85222f83a2..19ebba1e8a 100644
--- a/var/spack/repos/builtin/packages/parquet-cpp/package.py
+++ b/var/spack/repos/builtin/packages/parquet-cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/parquet-format/package.py b/var/spack/repos/builtin/packages/parquet-format/package.py
index ae65ccd211..31977d5b8e 100644
--- a/var/spack/repos/builtin/packages/parquet-format/package.py
+++ b/var/spack/repos/builtin/packages/parquet-format/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/parsec/package.py b/var/spack/repos/builtin/packages/parsec/package.py
new file mode 100644
index 0000000000..014b8e0256
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parsec/package.py
@@ -0,0 +1,91 @@
+# Copyright 2013-2021 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)
+#
+import llnl.util.tty as tty
+
+from spack import *
+
+
+class Parsec(CMakePackage, CudaPackage):
+ """PaRSEC: the Parallel Runtime Scheduler and Execution Controller
+
+ PaRSEC is a runtime and a programming toolbox that support the design and
+ parallel execution of micro-tasks on distributed, heterogeneous systems.
+ """
+
+ homepage = "https://icl.utk.edu/dte"
+ git = "https://bitbucket.org/icldistcomp/parsec.git"
+ url = "https://bitbucket.org/icldistcomp/parsec/get/parsec-3.0.2012.tar.bz2"
+ list_url = "https://bitbucket.org/icldistcomp/parsec/downloads/?tab=tags"
+ maintainers = ['abouteiller', 'bosilca', 'herault']
+
+ test_requires_compiler = True
+
+ version('master', branch='master')
+ version('3.0.2012', sha256='f565bcfffe106be8237b6aea3e83a5770607b7236606414b6f270244fa6ec3bc')
+ version('1.1.0', sha256='d2928033c121000ae0a554f1e7f757c1f22274a8b74457ecd52744ae1f70b95a', url='https://bitbucket.org/icldistcomp/parsec/get/v1.1.0.tar.bz2')
+
+ variant('build_type', default='RelWithDebInfo', description='CMake build type', values=('Debug', 'Release', 'RelWithDebInfo'))
+ variant('shared', default=True, description='Build a shared library')
+ variant('cuda', default=True, description='Build with CUDA')
+ variant('profile', default=False, description='Generate profiling data')
+ variant('debug_verbose', default=False, description='Debug version with verbose and paranoid (incurs performance overhead!)')
+ conflicts('+debug_verbose build_type=Release', msg='You need to set build_type=Debug for +debug_verbose')
+ conflicts('+debug_verbose build_type=RelWithDebInfo', msg='You need to set build_type=Debug for +debug_verbose')
+ # TODO: Spack does not handle cross-compilation atm
+ # variant('xcompile', default=False, description='Cross compile')
+
+ depends_on('cmake@3.16:', type='build')
+ depends_on('python', type='build')
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
+ depends_on('hwloc')
+ depends_on('mpi')
+ depends_on('papi', when='+profile')
+ depends_on('python', type=('build', 'run'), when='+profile')
+ depends_on('py-cython', type=('build', 'run'), when='+profile')
+ depends_on('py-pandas', type=('build', 'run'), when='+profile')
+ depends_on('py-matplotlib', type=('build', 'run'), when='+profile')
+ depends_on('py-tables', type=('build', 'run'), when='+profile')
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('PARSEC_GPU_WITH_CUDA', 'cuda'),
+ self.define_from_variant('PARSEC_PROF_TRACE', 'profile'),
+ self.define_from_variant('PARSEC_DEBUG_HISTORY', 'debug_verbose'),
+ self.define_from_variant('PARSEC_DEBUG_PARANOID', 'debug_verbose'),
+ ]
+ return args
+
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
+ def check(self):
+ """Run ctest after building binary."""
+ with working_dir(self.build_directory):
+ try:
+ ctest('--output-on-failure', '-j1')
+ except ProcessError:
+ warn = 'ctest tests failed.\n'
+ warn += 'Please report this failure to:\n'
+ warn += 'https://bitbucket.org/icldistcomp/parsec/issues'
+ tty.msg(warn)
+
+ def test(self):
+ """Compile and run a user program with the installed library"""
+ with working_dir(join_path(self.install_test_root,
+ 'contrib/build_with_parsec')):
+ self.run_test('cmake',
+ options=['.'],
+ purpose='Check if CMake can find PaRSEC and its targets')
+ self.run_test('make',
+ purpose='Check if tests can compile')
+ self.run_test('./dtd_test_allreduce')
+ self.run_test('./write_check')
+
+ @run_after('install')
+ def cache_test_sources(self):
+ srcs = ['contrib/build_with_parsec']
+ self.cache_extra_test_sources(srcs)
diff --git a/var/spack/repos/builtin/packages/parsimonator/package.py b/var/spack/repos/builtin/packages/parsimonator/package.py
index d83dbab338..fb17d2d39b 100644
--- a/var/spack/repos/builtin/packages/parsimonator/package.py
+++ b/var/spack/repos/builtin/packages/parsimonator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/parsplice/package.py b/var/spack/repos/builtin/packages/parsplice/package.py
index 308bcd79f4..c1e1ed2e1f 100644
--- a/var/spack/repos/builtin/packages/parsplice/package.py
+++ b/var/spack/repos/builtin/packages/parsplice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/partitionfinder/package.py b/var/spack/repos/builtin/packages/partitionfinder/package.py
index 302ead2b40..6ef6d5ef65 100644
--- a/var/spack/repos/builtin/packages/partitionfinder/package.py
+++ b/var/spack/repos/builtin/packages/partitionfinder/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pasta/package.py b/var/spack/repos/builtin/packages/pasta/package.py
index cb1c073c08..020897c6b2 100644
--- a/var/spack/repos/builtin/packages/pasta/package.py
+++ b/var/spack/repos/builtin/packages/pasta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/patch/package.py b/var/spack/repos/builtin/packages/patch/package.py
index a5e9a0f4bc..37b4ec0f3e 100644
--- a/var/spack/repos/builtin/packages/patch/package.py
+++ b/var/spack/repos/builtin/packages/patch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Patch(AutotoolsPackage, GNUMirrorPackage):
original files, producing patched versions.
"""
- homepage = "http://savannah.gnu.org/projects/patch/"
+ homepage = "https://savannah.gnu.org/projects/patch/"
gnu_mirror_path = "patch/patch-2.7.6.tar.xz"
version('2.7.6', sha256='ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd')
diff --git a/var/spack/repos/builtin/packages/patchelf/package.py b/var/spack/repos/builtin/packages/patchelf/package.py
index 796fd533eb..6a28465031 100644
--- a/var/spack/repos/builtin/packages/patchelf/package.py
+++ b/var/spack/repos/builtin/packages/patchelf/package.py
@@ -1,24 +1,38 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Patchelf(AutotoolsPackage):
"""PatchELF is a small utility to modify the dynamic linker and RPATH of
ELF executables."""
homepage = "https://nixos.org/patchelf.html"
- url = "https://nixos.org/releases/patchelf/patchelf-0.10/patchelf-0.10.tar.gz"
+ url = "https://github.com/NixOS/patchelf/releases/download/0.12/patchelf-0.12.tar.bz2"
list_url = "https://nixos.org/releases/patchelf/"
list_depth = 1
+ version('0.13', sha256='4c7ed4bcfc1a114d6286e4a0d3c1a90db147a4c3adda1814ee0eee0f9ee917ed')
+ version('0.12', sha256='699a31cf52211cf5ad6e35a8801eb637bc7f3c43117140426400d67b7babd792')
+ version('0.11', sha256='e52378cc2f9379c6e84a04ac100a3589145533a7b0cd26ef23c79dfd8a9038f9')
version('0.10', sha256='b2deabce05c34ce98558c0efb965f209de592197b2c88e930298d740ead09019')
version('0.9', sha256='f2aa40a6148cb3b0ca807a1bf836b081793e55ec9e5540a5356d800132be7e0a')
version('0.8', sha256='14af06a2da688d577d64ff8dac065bb8903bbffbe01d30c62df7af9bf4ce72fe')
+ # Fixes a bug where patchelf errors with 'unsupported overlap
+ # of SHT_NOTE and PT_NOTE'
+ patch('https://github.com/NixOS/patchelf/pull/230.patch', sha256='a155f233b228f02d7886e304cb13898d93801b52f351e098c2cc0719697ec9d0', when='@0.12')
+
+ def url_for_version(self, version):
+ if version < Version('0.12'):
+ return "https://nixos.org/releases/patchelf/patchelf-{0}/patchelf-{1}.tar.gz".format(version, version)
+
+ return "https://github.com/NixOS/patchelf/releases/download/{0}/patchelf-{1}.tar.bz2".format(version, version)
+
def test(self):
# Check patchelf in prefix and reports the correct version
reason = 'test: ensuring patchelf version is {0}' \
diff --git a/var/spack/repos/builtin/packages/patchutils/package.py b/var/spack/repos/builtin/packages/patchutils/package.py
index f89e60b1cc..1d7d1ecb95 100644
--- a/var/spack/repos/builtin/packages/patchutils/package.py
+++ b/var/spack/repos/builtin/packages/patchutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pathfinder/package.py b/var/spack/repos/builtin/packages/pathfinder/package.py
index 8ce7ecca1e..3304dae50b 100644
--- a/var/spack/repos/builtin/packages/pathfinder/package.py
+++ b/var/spack/repos/builtin/packages/pathfinder/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Pathfinder(MakefilePackage):
"""Proxy Application. Signature search."""
homepage = "https://mantevo.org/packages/"
- url = "http://downloads.mantevo.org/releaseTarballs/miniapps/PathFinder/PathFinder_1.0.0.tgz"
+ url = "https://downloads.mantevo.org/releaseTarballs/miniapps/PathFinder/PathFinder_1.0.0.tgz"
tags = ['proxy-app']
diff --git a/var/spack/repos/builtin/packages/pax-utils/package.py b/var/spack/repos/builtin/packages/pax-utils/package.py
index 62776831c0..7c7f1efbfa 100644
--- a/var/spack/repos/builtin/packages/pax-utils/package.py
+++ b/var/spack/repos/builtin/packages/pax-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pbbam/package.py b/var/spack/repos/builtin/packages/pbbam/package.py
index b84494d86d..425f7160b4 100644
--- a/var/spack/repos/builtin/packages/pbbam/package.py
+++ b/var/spack/repos/builtin/packages/pbbam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pbmpi/package.py b/var/spack/repos/builtin/packages/pbmpi/package.py
index 205af53280..d52148d5b5 100644
--- a/var/spack/repos/builtin/packages/pbmpi/package.py
+++ b/var/spack/repos/builtin/packages/pbmpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Pbmpi(MakefilePackage):
"""A Bayesian software for phylogenetic reconstruction using mixture models
"""
- homepage = "http://megasun.bch.umontreal.ca/People/lartillot/www/index.htm"
+ homepage = "https://megasun.bch.umontreal.ca/People/lartillot/www/index.htm"
git = "https://github.com/bayesiancook/pbmpi.git"
version('partition', branch='partition')
diff --git a/var/spack/repos/builtin/packages/pbsuite/package.py b/var/spack/repos/builtin/packages/pbsuite/package.py
index fb81eb65dc..68dedeeb4e 100644
--- a/var/spack/repos/builtin/packages/pbsuite/package.py
+++ b/var/spack/repos/builtin/packages/pbsuite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pciutils/package.py b/var/spack/repos/builtin/packages/pciutils/package.py
index da00975a02..dac91808e6 100644
--- a/var/spack/repos/builtin/packages/pciutils/package.py
+++ b/var/spack/repos/builtin/packages/pciutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,8 +16,16 @@ class Pciutils(MakefilePackage):
version('3.6.4', sha256='551d0ac33f030868b7e95c29e58dc2b1882455dbc9c15c15adf7086e664131f1')
version('3.6.3', sha256='7ab0fbb35cffa326eb852539260562bac14f3d27cda8c70bc2cf3211ed97c014')
+ variant('lib', default=False, description='Install libraries with headers')
+
+ def build(self, spec, prefix):
+ make('PREFIX={0}'.format(prefix))
+
def install(self, spec, prefix):
- make('install', 'PREFIX={0}'.format(prefix))
+ if '+lib' in spec:
+ make('install-lib', 'install', 'PREFIX={0}'.format(prefix))
+ else:
+ make('install', 'PREFIX={0}'.format(prefix))
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix.sbin)
diff --git a/var/spack/repos/builtin/packages/pcl/package.py b/var/spack/repos/builtin/packages/pcl/package.py
new file mode 100644
index 0000000000..5bd60d353f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pcl/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 Pcl(CMakePackage):
+ """The Point Cloud Library (PCL) is a standalone, large scale,
+ open project for 2D/3D image and point cloud processing."""
+
+ homepage = "https://pointclouds.org/"
+ url = "https://github.com/PointCloudLibrary/pcl/releases/download/pcl-1.11.1/source.tar.gz"
+
+ version('1.11.1', sha256='19d1a0bee2bc153de47c05da54fc6feb23393f306ab2dea2e25419654000336e')
+
+ depends_on('cmake@3.5:', type='build')
+ depends_on('eigen@3.1:')
+ depends_on('flann@1.7:')
+ depends_on('boost@1.55:+filesystem+date_time+iostreams+system')
diff --git a/var/spack/repos/builtin/packages/pcma/package.py b/var/spack/repos/builtin/packages/pcma/package.py
index efde640c07..095247dcb5 100644
--- a/var/spack/repos/builtin/packages/pcma/package.py
+++ b/var/spack/repos/builtin/packages/pcma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pcre/package.py b/var/spack/repos/builtin/packages/pcre/package.py
index a4d1794148..67cc84084f 100644
--- a/var/spack/repos/builtin/packages/pcre/package.py
+++ b/var/spack/repos/builtin/packages/pcre/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Pcre(AutotoolsPackage):
libraries. These are useful for implementing regular expression
pattern matching using the same syntax and semantics as Perl 5."""
- homepage = "http://www.pcre.org"
+ homepage = "https://www.pcre.org"
url = "https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.bz2"
version('8.44', sha256='19108658b23b3ec5058edc9f66ac545ea19f9537234be1ec62b714c84399366d')
diff --git a/var/spack/repos/builtin/packages/pcre2/package.py b/var/spack/repos/builtin/packages/pcre2/package.py
index 58a4e013f3..4f4dfa6a4f 100644
--- a/var/spack/repos/builtin/packages/pcre2/package.py
+++ b/var/spack/repos/builtin/packages/pcre2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,10 @@ class Pcre2(AutotoolsPackage):
libraries. These are useful for implementing regular expression
pattern matching using the same syntax and semantics as Perl 5."""
- homepage = "http://www.pcre.org"
+ homepage = "https://www.pcre.org"
url = "https://ftp.pcre.org/pub/pcre/pcre2-10.31.tar.bz2"
+ version('10.36', sha256='a9ef39278113542968c7c73a31cfcb81aca1faa64690f400b907e8ab6b4a665c')
version('10.35', sha256='9ccba8e02b0ce78046cdfb52e5c177f0f445e421059e43becca4359c669d4613')
version('10.31', sha256='e07d538704aa65e477b6a392b32ff9fc5edf75ab9a40ddfc876186c4ff4d68ac')
version('10.20', sha256='332e287101c9e9567d1ed55391b338b32f1f72c5b5ee7cc81ef2274a53ad487a')
diff --git a/var/spack/repos/builtin/packages/pdc/package.py b/var/spack/repos/builtin/packages/pdc/package.py
new file mode 100644
index 0000000000..2f96d12d79
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pdc/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2021 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 Pdc(CMakePackage):
+ """Proactive Data Containers (PDC) software provides an object-centric
+ API and a runtime system with a set of data object management services.
+ These services allow placing data in the memory and storage hierarchy,
+ performing data movement asynchronously, and providing scalable
+ metadata operations to find data objects."""
+
+ homepage = "https://pdc.readthedocs.io/en/latest/"
+ url = "https://github.com/hpc-io/pdc/archive/refs/tags/0.1.tar.gz"
+
+ maintainers = ['houjun', 'sbyna']
+
+ version('0.1', sha256='01b4207ecf71594a7f339c315f2869b3fa8fbd34b085963dc4c1bdc5b66bb93e')
+
+ conflicts('%clang')
+ depends_on('libfabric')
+ depends_on('mercury')
+ depends_on('mpi')
+
+ root_cmakelists_dir = 'src'
+
+ def cmake_args(self):
+ args = [
+ self.define('MPI_C_COMPILER', self.spec['mpi'].mpicc),
+ self.define('BUILD_MPI_TESTING', 'ON'),
+ self.define('BUILD_SHARED_LIBS', 'ON'),
+ self.define('BUILD_TESTING', 'ON'),
+ self.define('PDC_ENABLE_MPI', 'ON'),
+ self.define('CMAKE_C_COMPILER', self.spec['mpi'].mpicc)
+ ]
+
+ if self.spec.satisfies('platform=cray'):
+ args.append("-DRANKSTR_LINK_STATIC=ON")
+ return args
diff --git a/var/spack/repos/builtin/packages/pdf2svg/package.py b/var/spack/repos/builtin/packages/pdf2svg/package.py
index da10b3f5b0..116625cce4 100644
--- a/var/spack/repos/builtin/packages/pdf2svg/package.py
+++ b/var/spack/repos/builtin/packages/pdf2svg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pdftk/package.py b/var/spack/repos/builtin/packages/pdftk/package.py
index 0788be1861..795c293d4f 100644
--- a/var/spack/repos/builtin/packages/pdftk/package.py
+++ b/var/spack/repos/builtin/packages/pdftk/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Pdftk(MakefilePackage):
"""PDFtk Server is a command-line tool for working with PDFs. It is
diff --git a/var/spack/repos/builtin/packages/pdsh/package.py b/var/spack/repos/builtin/packages/pdsh/package.py
index d28c2f695d..6fa7b6e85e 100644
--- a/var/spack/repos/builtin/packages/pdsh/package.py
+++ b/var/spack/repos/builtin/packages/pdsh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pdt/cray_configure.patch b/var/spack/repos/builtin/packages/pdt/cray_configure.patch
new file mode 100644
index 0000000000..1c6a4a373d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pdt/cray_configure.patch
@@ -0,0 +1,14 @@
+--- a/configure 2019-05-13 21:57:59.000000000 -0500
++++ b/configure 2021-03-04 10:09:56.612397173 -0600
+@@ -98,6 +98,11 @@
+ ARCH=CRAYXMT
+ PLATFORM=crayxmt
+ echo "Looks like a Cray XMT machine..."
++ elif [ -r /opt/cray ]
++ then
++ ARCH=CRAY
++ PLATFORM=x86_64
++ echo "Looks like a Cray machine..."
+ else
+ ARCH=X86_64
+ PLATFORM=x86_64
diff --git a/var/spack/repos/builtin/packages/pdt/package.py b/var/spack/repos/builtin/packages/pdt/package.py
index bf3f954982..f643b81f60 100644
--- a/var/spack/repos/builtin/packages/pdt/package.py
+++ b/var/spack/repos/builtin/packages/pdt/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
@@ -16,8 +17,9 @@ class Pdt(AutotoolsPackage):
through a class library supporting common PDB operations.
"""
+ maintainers = ['wspear', 'eugeneswalker', 'khuck', 'sameershende']
homepage = "https://www.cs.uoregon.edu/research/pdt/home.php"
- url = "http://www.cs.uoregon.edu/research/paracomp/pdtoolkit/Download/pdtoolkit-3.25.1.tar.gz"
+ url = "https://www.cs.uoregon.edu/research/paracomp/pdtoolkit/Download/pdtoolkit-3.25.1.tar.gz"
version('3.25.1', sha256='0b6f8a6b8769c181b2ae6cae7298f04b8e3e3d68066f598ed24574e19500bc97')
version('3.25', sha256='1037628d854edfeded3d847150d3e8fbd3774e8146407ce32f5021c80f6299be')
@@ -32,6 +34,8 @@ class Pdt(AutotoolsPackage):
variant('pic', default=False, description="Builds with pic")
+ patch('cray_configure.patch', when='%cce')
+
def patch(self):
spec = self.spec
if spec.satisfies('%clang') or spec.satisfies('%apple-clang'):
@@ -42,7 +46,7 @@ class Pdt(AutotoolsPackage):
options = ['-prefix=%s' % prefix]
if self.compiler.name == 'xl':
options.append('-XLC')
- elif self.compiler.name == 'intel':
+ elif self.compiler.name == 'intel' or self.compiler.name == 'oneapi':
options.append('-icpc')
elif self.compiler.name == 'pgi':
options.append('-pgCC')
@@ -50,6 +54,8 @@ class Pdt(AutotoolsPackage):
options.append('-GNU')
elif self.compiler.name == 'clang':
options.append('-clang')
+ elif self.compiler.name == 'cce':
+ options.append('-CC')
else:
raise InstallError('Unknown/unsupported compiler family')
diff --git a/var/spack/repos/builtin/packages/pegtl/package.py b/var/spack/repos/builtin/packages/pegtl/package.py
index 1b972e40e6..e686c79f67 100644
--- a/var/spack/repos/builtin/packages/pegtl/package.py
+++ b/var/spack/repos/builtin/packages/pegtl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,9 +19,37 @@ class Pegtl(CMakePackage):
git = "https://github.com/taocpp/PEGTL.git"
version('master', branch='master')
+ version('3.2.0', sha256='91aa6529ef9e6b57368e7b5b1f04a3bd26a39419d30e35a3c5c66ef073926b56')
version('2.8.3', sha256='370afd0fbe6d73c448a33c10fbe4a7254f92077f5a217317d0a32a9231293015')
version('2.1.4', sha256='d990dccc07b4d9ba548326d11c5c5e34fa88b34fe113cb5377da03dda29f23f2')
version('2.0.0', sha256='5aae0505077e051cae4d855c38049cc6cf71103a6cc8d0ddef01a576e8a60cc0')
# Ref: https://github.com/taocpp/PEGTL/blob/master/src/example/pegtl/json_classes.hpp
patch('change_to_virtual_destructor.patch', when='@:2.4')
+
+ # Ref: https://bugs.gentoo.org/733678
+ patch_url = 'https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/pegtl/files/pegtl-2.8.3-gcc-10.patch'
+ patch_checksum = 'fc40b0c7390f8c0473f2cb4821bda7a5e107f93ca9d2fafeff2065445bb39981'
+ patch(patch_url, sha256=patch_checksum, level=0, when='@2.1.4:2.8.3')
+
+ def cmake_args(self):
+
+ args = []
+ if self.run_tests:
+ args.extend([
+ '-DPEGTL_BUILD_EXAMPLES=ON',
+ '-DPEGTL_BUILD_TESTS=ON'
+ ])
+ else:
+ args.extend([
+ '-DPEGTL_BUILD_EXAMPLES=OFF',
+ '-DPEGTL_BUILD_TESTS=OFF'
+ ])
+
+ return args
+
+ @run_after('build')
+ @on_package_attributes(run_tests=True)
+ def check(self):
+ with working_dir(self.build_directory):
+ make('test', parallel=False)
diff --git a/var/spack/repos/builtin/packages/pennant/package.py b/var/spack/repos/builtin/packages/pennant/package.py
index 80f79b0ecc..1cbe6b9c37 100644
--- a/var/spack/repos/builtin/packages/pennant/package.py
+++ b/var/spack/repos/builtin/packages/pennant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/percept/package.py b/var/spack/repos/builtin/packages/percept/package.py
index 745643f335..13c4e1a667 100644
--- a/var/spack/repos/builtin/packages/percept/package.py
+++ b/var/spack/repos/builtin/packages/percept/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -25,7 +25,7 @@ class Percept(CMakePackage):
depends_on('opennurbs@percept')
depends_on('boost+graph+mpi')
depends_on('yaml-cpp+pic~shared@0.5.3:')
- depends_on('trilinos~shared+exodus+tpetra+epetra+epetraext+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+pnetcdf+aztec+sacado~openmp+shards+intrepid+cgns@master,12.14.1:')
+ depends_on('trilinos~shared+exodus+mpi+tpetra+epetra+epetraext+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+aztec+sacado~openmp+shards+intrepid@master,12.14.1:')
def cmake_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/percona-server/package.py b/var/spack/repos/builtin/packages/percona-server/package.py
index a718612603..22095246ab 100644
--- a/var/spack/repos/builtin/packages/percona-server/package.py
+++ b/var/spack/repos/builtin/packages/percona-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,4 +26,4 @@ class PerconaServer(CMakePackage):
depends_on('curl')
depends_on('bison', type='build')
depends_on('flex', type='build')
- depends_on('rpcsvc-proto', type='build')
+ depends_on('rpcsvc-proto')
diff --git a/var/spack/repos/builtin/packages/perfstubs/package.py b/var/spack/repos/builtin/packages/perfstubs/package.py
index 9162e749fc..32f51fa978 100644
--- a/var/spack/repos/builtin/packages/perfstubs/package.py
+++ b/var/spack/repos/builtin/packages/perfstubs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -25,10 +25,7 @@ class Perfstubs(CMakePackage):
variant('static', default=False, description='Build static executable support')
def cmake_args(self):
- spec = self.spec
-
args = [
- '-DPERFSTUBS_USE_STATIC:BOOL={0}'.format(
- 'ON' if '+static' in spec else 'OFF')
+ self.define_from_variant('PERFSTUBS_USE_STATIC', 'static')
]
return args
diff --git a/var/spack/repos/builtin/packages/perl-acme-damn/package.py b/var/spack/repos/builtin/packages/perl-acme-damn/package.py
index ac5a5c0cad..79180eb922 100644
--- a/var/spack/repos/builtin/packages/perl-acme-damn/package.py
+++ b/var/spack/repos/builtin/packages/perl-acme-damn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-algorithm-diff/package.py b/var/spack/repos/builtin/packages/perl-algorithm-diff/package.py
index 9936e43f85..ceb700c2bc 100644
--- a/var/spack/repos/builtin/packages/perl-algorithm-diff/package.py
+++ b/var/spack/repos/builtin/packages/perl-algorithm-diff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlAlgorithmDiff(PerlPackage):
"""Compute 'intelligent' differences between two files / lists"""
- homepage = "http://search.cpan.org/~tyemq/Algorithm-Diff-1.1903/lib/Algorithm/Diff.pm"
+ homepage = "https://metacpan.org/pod/Algorithm::Diff"
url = "http://search.cpan.org/CPAN/authors/id/T/TY/TYEMQ/Algorithm-Diff-1.1903.tar.gz"
version('1.1903', sha256='30e84ac4b31d40b66293f7b1221331c5a50561a39d580d85004d9c1fff991751')
diff --git a/var/spack/repos/builtin/packages/perl-alien-build/package.py b/var/spack/repos/builtin/packages/perl-alien-build/package.py
index 7e227821aa..9fff553333 100644
--- a/var/spack/repos/builtin/packages/perl-alien-build/package.py
+++ b/var/spack/repos/builtin/packages/perl-alien-build/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py b/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py
index 0ec9551e4a..6e5d36685f 100644
--- a/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py
+++ b/var/spack/repos/builtin/packages/perl-alien-libxml2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-alien-svn/package.py b/var/spack/repos/builtin/packages/perl-alien-svn/package.py
new file mode 100644
index 0000000000..47fe0e112c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-alien-svn/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2021 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)
+
+import sys
+
+from spack import *
+
+
+class PerlAlienSvn(PerlPackage):
+ """Perl SVN extension."""
+
+ homepage = "http://metacpan.org/source/MSCHWERN/Alien-SVN-v1.8.11.0"
+ url = "https://cpan.metacpan.org/authors/id/M/MS/MSCHWERN/Alien-SVN-v1.8.11.0.tar.gz"
+
+ version('1.8.11.0', sha256='acf8ebce1cb6958ef24611a453abee32b8e4dfe767563834362891ef3f30fc68')
+ version('1.7.19.0', sha256='80df1eef9ffb7b0fb0c45285eec05d15bcb45c349c441f97131c64b8697dceb0')
+ version('1.7.17.1', sha256='35ae83fda2ef9a5b48012ac8317ec063058d1e9fc5f2719fa141eecedf6baef8')
+ version('1.7.17.0', sha256='f3e11ac89453e91f9c298c43958f8115bbb49cb67bb22a0e92690a8e8447c3d0')
+ version('1.7.3.1', sha256='e85efca8f9519b2cef81f39e026d227c077c9531c41f44995b31550c3af02366')
+ version('1.7.3.0', sha256='02abbe17ad7db912001e6f1c5018cec08c3840e0c32700363a79274e144e74e5')
+ version('1.6.12.1', sha256='a89d8eeff61e34aa7b3d35dee3e6752b12dfa5f0f04bf69d796846cf0391f53d')
+
+ depends_on('perl-module-build', type='build')
+ depends_on('apr@1.6.2', type='build')
+ depends_on('apr-util', type=('build', 'link'))
+ depends_on('sqlite', type='build')
+ depends_on('zlib')
+ depends_on('libbsd')
+
+ def setup_build_environment(self, env):
+ # non-interactive build, use defaults
+ env.set('PERL_MM_USE_DEFAULT', '1')
+
+ def setup_run_environment(self, env):
+ # SVN libs are not RPATHed correctly...
+ # TODO: extend to other plaforms
+ if sys.platform.startswith('linux'):
+ env.prepend_path('LD_LIBRARY_PATH', join_path(
+ self.prefix, 'lib', 'perl4', 'x86_64-linux-thread-multi',
+ 'Alien', 'SVN'))
diff --git a/var/spack/repos/builtin/packages/perl-app-cmd/package.py b/var/spack/repos/builtin/packages/perl-app-cmd/package.py
index 39fe52402c..d2937ef06d 100644
--- a/var/spack/repos/builtin/packages/perl-app-cmd/package.py
+++ b/var/spack/repos/builtin/packages/perl-app-cmd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlAppCmd(PerlPackage):
"""Write command line apps with less suffering"""
- homepage = "http://search.cpan.org/~rjbs/App-Cmd/lib/App/Cmd.pm"
+ homepage = "https://metacpan.org/pod/App::Cmd"
url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/App-Cmd-0.331.tar.gz"
version('0.331', sha256='4a5d3df0006bd278880d01f4957aaa652a8f91fe8f66e93adf70fba0c3ecb680')
diff --git a/var/spack/repos/builtin/packages/perl-array-utils/package.py b/var/spack/repos/builtin/packages/perl-array-utils/package.py
index beb3619ecb..8b3e862372 100644
--- a/var/spack/repos/builtin/packages/perl-array-utils/package.py
+++ b/var/spack/repos/builtin/packages/perl-array-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlArrayUtils(PerlPackage):
"""Small utils for array manipulation"""
- homepage = "http://search.cpan.org/~zmij/Array-Utils/Utils.pm"
+ homepage = "https://metacpan.org/pod/Array::Utils"
url = "http://search.cpan.org/CPAN/authors/id/Z/ZM/ZMIJ/Array/Array-Utils-0.5.tar.gz"
version('0.5', sha256='89dd1b7fcd9b4379492a3a77496e39fe6cd379b773fd03a6b160dd26ede63770')
diff --git a/var/spack/repos/builtin/packages/perl-b-hooks-endofscope/package.py b/var/spack/repos/builtin/packages/perl-b-hooks-endofscope/package.py
index 2fde7fc975..bc25067998 100644
--- a/var/spack/repos/builtin/packages/perl-b-hooks-endofscope/package.py
+++ b/var/spack/repos/builtin/packages/perl-b-hooks-endofscope/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlBHooksEndofscope(PerlPackage):
"""Execute code after a scope finished compilation."""
- homepage = "http://search.cpan.org/~ether/B-Hooks-EndOfScope-0.21/lib/B/Hooks/EndOfScope.pm"
+ homepage = "https://metacpan.org/pod/B::Hooks::EndOfScope"
url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.21.tar.gz"
version('0.21', sha256='90f3580880f1d68b843c142cc86f58bead1f3e03634c63868ac9eba5eedae02c')
diff --git a/var/spack/repos/builtin/packages/perl-bio-searchio-hmmer/package.py b/var/spack/repos/builtin/packages/perl-bio-searchio-hmmer/package.py
index ae1c8c0c78..35841c28ec 100644
--- a/var/spack/repos/builtin/packages/perl-bio-searchio-hmmer/package.py
+++ b/var/spack/repos/builtin/packages/perl-bio-searchio-hmmer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-bioperl/package.py b/var/spack/repos/builtin/packages/perl-bioperl/package.py
index 815eb8fcef..f5fbab7458 100644
--- a/var/spack/repos/builtin/packages/perl-bioperl/package.py
+++ b/var/spack/repos/builtin/packages/perl-bioperl/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 inspect
+from spack import *
+
class PerlBioperl(PerlPackage):
"""BioPerl is the product of a community effort to produce Perl code which
@@ -27,7 +28,7 @@ class PerlBioperl(PerlPackage):
The intent of the BioPerl development effort is to make reusable tools that
aid people in creating their own sites or job-specific applications.
- The BioPerl website at http://bioperl.org also attempts to maintain links
+ The BioPerl website at https://bioperl.org/ also attempts to maintain links
and archives of standalone bio-related Perl tools that are not affiliated
or related to the core BioPerl effort. Check the site for useful code ideas
and contribute your own if possible."""
diff --git a/var/spack/repos/builtin/packages/perl-bit-vector/package.py b/var/spack/repos/builtin/packages/perl-bit-vector/package.py
index 6d4fcbc44d..2389a337ec 100644
--- a/var/spack/repos/builtin/packages/perl-bit-vector/package.py
+++ b/var/spack/repos/builtin/packages/perl-bit-vector/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlBitVector(PerlPackage):
"""Efficient bit vector, set of integers and "big int" math library"""
- homepage = "http://search.cpan.org/~stbey/Bit-Vector-7.4/Vector.pod"
+ homepage = "https://metacpan.org/dist/Bit-Vector/view/Vector.pod"
url = "http://search.cpan.org/CPAN/authors/id/S/ST/STBEY/Bit-Vector-7.4.tar.gz"
version('7.4', sha256='3c6daa671fecfbc35f92a9385b563d65f50dfc6bdc8b4805f9ef46c0d035a926')
diff --git a/var/spack/repos/builtin/packages/perl-cairo/package.py b/var/spack/repos/builtin/packages/perl-cairo/package.py
index 6ac4f1e682..ed83ef02fd 100644
--- a/var/spack/repos/builtin/packages/perl-cairo/package.py
+++ b/var/spack/repos/builtin/packages/perl-cairo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlCairo(PerlPackage):
"""Perl interface to the cairo 2d vector graphics library"""
- homepage = "http://search.cpan.org/~xaoc/Cairo/lib/Cairo.pm"
+ homepage = "https://metacpan.org/pod/Cairo"
url = "http://search.cpan.org/CPAN/authors/id/X/XA/XAOC/Cairo-1.106.tar.gz"
version('1.106', sha256='e64803018bc7cba49e73e258547f5378cc4249797beafec524852140f49c45c4')
diff --git a/var/spack/repos/builtin/packages/perl-capture-tiny/package.py b/var/spack/repos/builtin/packages/perl-capture-tiny/package.py
index 0f6c7df5b3..81ea39a7dc 100644
--- a/var/spack/repos/builtin/packages/perl-capture-tiny/package.py
+++ b/var/spack/repos/builtin/packages/perl-capture-tiny/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlCaptureTiny(PerlPackage):
"""Capture STDOUT and STDERR from Perl, XS or external programs"""
- homepage = "http://search.cpan.org/~dagolden/Capture-Tiny-0.46/lib/Capture/Tiny.pm"
+ homepage = "https://metacpan.org/pod/Capture::Tiny"
url = "http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.46.tar.gz"
version('0.46', sha256='5d7a6a830cf7f2b2960bf8b8afaac16a537ede64f3023827acea5bd24ca77015')
diff --git a/var/spack/repos/builtin/packages/perl-carp-clan/package.py b/var/spack/repos/builtin/packages/perl-carp-clan/package.py
index 74058a6206..8ceef45670 100644
--- a/var/spack/repos/builtin/packages/perl-carp-clan/package.py
+++ b/var/spack/repos/builtin/packages/perl-carp-clan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlCarpClan(PerlPackage):
"""Report errors from perspective of caller of a "clan" of modules"""
- homepage = "http://search.cpan.org/~kentnl/Carp-Clan-6.06/lib/Carp/Clan.pod"
+ homepage = "https://metacpan.org/pod/Carp::Clan"
url = "http://search.cpan.org/CPAN/authors/id/K/KE/KENTNL/Carp-Clan-6.06.tar.gz"
version('6.06', sha256='ea4ac8f611354756d43cb369880032901e9cc4cc7e0bebb7b647186dac00c9d4')
diff --git a/var/spack/repos/builtin/packages/perl-cgi/package.py b/var/spack/repos/builtin/packages/perl-cgi/package.py
index 63b10b5ce2..e102e46c9d 100644
--- a/var/spack/repos/builtin/packages/perl-cgi/package.py
+++ b/var/spack/repos/builtin/packages/perl-cgi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,7 @@ class PerlCgi(PerlPackage):
homepage = "https://metacpan.org/pod/CGI"
url = "https://cpan.metacpan.org/authors/id/L/LE/LEEJO/CGI-4.40.tar.gz"
+ version('4.53', sha256='c67e732f3c96bcb505405fd944f131fe5c57b46e5d02885c00714c452bf14e60')
version('4.40', sha256='10efff3061b3c31a33b3cc59f955aef9c88d57d12dbac46389758cef92f24f56')
version('4.39', sha256='7e73417072445f24e03d63802ed3a9e368c9b103ddc96e2a9bcb6a251215fb76')
version('4.38', sha256='8c58f4a529bb92a914b22b7e64c5e31185c9854a4070a6dfad44fe5cc248e7d4')
diff --git a/var/spack/repos/builtin/packages/perl-class-data-inheritable/package.py b/var/spack/repos/builtin/packages/perl-class-data-inheritable/package.py
index 71cd1db575..4bc50c22e4 100644
--- a/var/spack/repos/builtin/packages/perl-class-data-inheritable/package.py
+++ b/var/spack/repos/builtin/packages/perl-class-data-inheritable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlClassDataInheritable(PerlPackage):
"""For creating accessor/mutators to class data."""
- homepage = "http://search.cpan.org/~tmtm/Class-Data-Inheritable-0.08/lib/Class/Data/Inheritable.pm"
+ homepage = "https://metacpan.org/pod/Class::Data::Inheritable"
url = "http://search.cpan.org/CPAN/authors/id/T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz"
version('0.08', sha256='9967feceea15227e442ec818723163eb6d73b8947e31f16ab806f6e2391af14a')
diff --git a/var/spack/repos/builtin/packages/perl-class-inspector/package.py b/var/spack/repos/builtin/packages/perl-class-inspector/package.py
index a1d1b87605..32dfa6fa9f 100644
--- a/var/spack/repos/builtin/packages/perl-class-inspector/package.py
+++ b/var/spack/repos/builtin/packages/perl-class-inspector/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlClassInspector(PerlPackage):
"""Get information about a class and its structure"""
- homepage = "http://search.cpan.org/~plicease/Class-Inspector-1.32/lib/Class/Inspector.pm"
+ homepage = "https://metacpan.org/pod/Class::Inspector"
url = "http://search.cpan.org/CPAN/authors/id/P/PL/PLICEASE/Class-Inspector-1.32.tar.gz"
version('1.32', sha256='cefadc8b5338e43e570bc43f583e7c98d535c17b196bcf9084bb41d561cc0535')
diff --git a/var/spack/repos/builtin/packages/perl-class-load-xs/package.py b/var/spack/repos/builtin/packages/perl-class-load-xs/package.py
index 6e4eb2b317..cfbf858ac5 100644
--- a/var/spack/repos/builtin/packages/perl-class-load-xs/package.py
+++ b/var/spack/repos/builtin/packages/perl-class-load-xs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PerlClassLoadXs(PerlPackage):
"""This module provides an XS implementation for portions of
Class::Load."""
- homepage = "http://search.cpan.org/~ether/Class-Load-XS-0.10/lib/Class/Load/XS.pm"
+ homepage = "https://metacpan.org/pod/Class::Load::XS"
url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Class-Load-XS-0.10.tar.gz"
version('0.10', sha256='5bc22cf536ebfd2564c5bdaf42f0d8a4cee3d1930fc8b44b7d4a42038622add1')
diff --git a/var/spack/repos/builtin/packages/perl-class-load/package.py b/var/spack/repos/builtin/packages/perl-class-load/package.py
index e2890a406d..48d4db5667 100644
--- a/var/spack/repos/builtin/packages/perl-class-load/package.py
+++ b/var/spack/repos/builtin/packages/perl-class-load/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlClassLoad(PerlPackage):
"""A working (require "Class::Name") and more"""
- homepage = "http://search.cpan.org/~ether/Class-Load-0.24/lib/Class/Load.pm"
+ homepage = "https://metacpan.org/pod/Class::Load"
url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Class-Load-0.24.tar.gz"
version('0.24', sha256='0bb983da46c146534fc77a556d6e40d925142f2eb43103534025ee545265ca36')
diff --git a/var/spack/repos/builtin/packages/perl-clone-choose/package.py b/var/spack/repos/builtin/packages/perl-clone-choose/package.py
index 903afa8800..8fd0307a83 100644
--- a/var/spack/repos/builtin/packages/perl-clone-choose/package.py
+++ b/var/spack/repos/builtin/packages/perl-clone-choose/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-clone/package.py b/var/spack/repos/builtin/packages/perl-clone/package.py
index baf0625396..9ad8fe1519 100644
--- a/var/spack/repos/builtin/packages/perl-clone/package.py
+++ b/var/spack/repos/builtin/packages/perl-clone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-compress-raw-bzip2/package.py b/var/spack/repos/builtin/packages/perl-compress-raw-bzip2/package.py
index 4935df1e1c..b780bb8a62 100644
--- a/var/spack/repos/builtin/packages/perl-compress-raw-bzip2/package.py
+++ b/var/spack/repos/builtin/packages/perl-compress-raw-bzip2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlCompressRawBzip2(PerlPackage):
"""A low-Level Interface to bzip2 compression library."""
- homepage = "http://search.cpan.org/~pmqs/Compress-Raw-Bzip2-2.081/lib/Compress/Raw/Bzip2.pm"
+ homepage = "https://metacpan.org/pod/Compress::Raw::Bzip2"
url = "http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.081.tar.gz"
version('2.081', sha256='8692b5c9db91954408e24e805fbfda222879da80d89d9410791421e3e5bc3520')
diff --git a/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py b/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py
index 4e850c1ca7..cde59db80c 100644
--- a/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py
+++ b/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlCompressRawZlib(PerlPackage):
"""A low-Level Interface to zlib compression library."""
- homepage = "http://search.cpan.org/~pmqs/Compress-Raw-Zlib-2.081/lib/Compress/Raw/Zlib.pm"
+ homepage = "https://metacpan.org/pod/Compress::Raw::Zlib"
url = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.081.tar.gz"
version('2.081', sha256='e156de345bd224bbdabfcab0eeb3f678a3099a4e86c9d1b6771d880b55aa3a1b')
diff --git a/var/spack/repos/builtin/packages/perl-config-general/package.py b/var/spack/repos/builtin/packages/perl-config-general/package.py
index 3cbc8cf636..a68e8c2554 100644
--- a/var/spack/repos/builtin/packages/perl-config-general/package.py
+++ b/var/spack/repos/builtin/packages/perl-config-general/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-contextual-return/package.py b/var/spack/repos/builtin/packages/perl-contextual-return/package.py
index 1e7c993917..a3f29f9fc4 100644
--- a/var/spack/repos/builtin/packages/perl-contextual-return/package.py
+++ b/var/spack/repos/builtin/packages/perl-contextual-return/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlContextualReturn(PerlPackage):
"""Create context-sensitive return values"""
- homepage = "http://search.cpan.org/~dconway/Contextual-Return/lib/Contextual/Return.pm"
+ homepage = "https://metacpan.org/pod/Contextual::Return"
url = "http://search.cpan.org/CPAN/authors/id/D/DC/DCONWAY/Contextual-Return-0.004014.tar.gz"
version('0.004014', sha256='09fe1415e16e49a69e13c0ef6e6a4a3fd8b856f389d3f3e624d7ab3b71719f78')
diff --git a/var/spack/repos/builtin/packages/perl-cpan-meta-check/package.py b/var/spack/repos/builtin/packages/perl-cpan-meta-check/package.py
index cdaf06be25..6ad071a296 100644
--- a/var/spack/repos/builtin/packages/perl-cpan-meta-check/package.py
+++ b/var/spack/repos/builtin/packages/perl-cpan-meta-check/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PerlCpanMetaCheck(PerlPackage):
"""This module verifies if requirements described in a CPAN::Meta object
are present.."""
- homepage = "http://search.cpan.org/~leont/CPAN-Meta-Check-0.014/lib/CPAN/Meta/Check.pm"
+ homepage = "https://metacpan.org/pod/CPAN::Meta::Check"
url = "http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/CPAN-Meta-Check-0.014.tar.gz"
version('0.014', sha256='28a0572bfc1c0678d9ce7da48cf521097ada230f96eb3d063fcbae1cfe6a351f')
diff --git a/var/spack/repos/builtin/packages/perl-data-dumper/package.py b/var/spack/repos/builtin/packages/perl-data-dumper/package.py
index 8c5d73a14e..69897c676e 100644
--- a/var/spack/repos/builtin/packages/perl-data-dumper/package.py
+++ b/var/spack/repos/builtin/packages/perl-data-dumper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlDataDumper(PerlPackage):
"""Stringified perl data structures, suitable for both printing and eval"""
- homepage = "http://search.cpan.org/dist/Data-Dumper/Dumper.pm"
+ homepage = "https://metacpan.org/pod/Data::Dumper"
url = "https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX/Data-Dumper-2.173.tar.gz"
version('2.173', sha256='697608b39330988e519131be667ff47168aaaaf99f06bd2095d5b46ad05d76fa')
diff --git a/var/spack/repos/builtin/packages/perl-data-optlist/package.py b/var/spack/repos/builtin/packages/perl-data-optlist/package.py
index d1e17f1ab8..5b1b7417c0 100644
--- a/var/spack/repos/builtin/packages/perl-data-optlist/package.py
+++ b/var/spack/repos/builtin/packages/perl-data-optlist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlDataOptlist(PerlPackage):
"""Parse and validate simple name/value option pairs"""
- homepage = "http://search.cpan.org/~rjbs/Data-OptList-0.110/lib/Data/OptList.pm"
+ homepage = "https://metacpan.org/pod/Data::OptList"
url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Data-OptList-0.110.tar.gz"
version('0.110', sha256='366117cb2966473f2559f2f4575ff6ae69e84c69a0f30a0773e1b51a457ef5c3')
diff --git a/var/spack/repos/builtin/packages/perl-data-stag/package.py b/var/spack/repos/builtin/packages/perl-data-stag/package.py
index f18fb9f255..d5f29dbf0b 100644
--- a/var/spack/repos/builtin/packages/perl-data-stag/package.py
+++ b/var/spack/repos/builtin/packages/perl-data-stag/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlDataStag(PerlPackage):
"""Structured Tags datastructures"""
- homepage = "http://search.cpan.org/~cmungall/Data-Stag-0.14/Data/Stag.pm"
+ homepage = "https://metacpan.org/pod/Data::Stag"
url = "http://search.cpan.org/CPAN/authors/id/C/CM/CMUNGALL/Data-Stag-0.14.tar.gz"
version('0.14', sha256='4ab122508d2fb86d171a15f4006e5cf896d5facfa65219c0b243a89906258e59')
diff --git a/var/spack/repos/builtin/packages/perl-date-manip/package.py b/var/spack/repos/builtin/packages/perl-date-manip/package.py
index 07f9850916..be1fedfa71 100644
--- a/var/spack/repos/builtin/packages/perl-date-manip/package.py
+++ b/var/spack/repos/builtin/packages/perl-date-manip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-db-file/package.py b/var/spack/repos/builtin/packages/perl-db-file/package.py
index 47791806a6..8e6a6d2e15 100644
--- a/var/spack/repos/builtin/packages/perl-db-file/package.py
+++ b/var/spack/repos/builtin/packages/perl-db-file/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py b/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py
index d7358ccca9..d968942c09 100644
--- a/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py
+++ b/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlDbdMysql(PerlPackage):
"""MySQL driver for the Perl5 Database Interface (DBI)"""
- homepage = "http://search.cpan.org/~michielb/DBD-mysql-4.043/lib/DBD/mysql.pm"
+ homepage = "https://metacpan.org/pod/DBD::mysql"
url = "http://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/DBD-mysql-4.043.tar.gz"
version('4.043', sha256='629f865e8317f52602b2f2efd2b688002903d2e4bbcba5427cb6188b043d6f99')
diff --git a/var/spack/repos/builtin/packages/perl-dbd-pg/package.py b/var/spack/repos/builtin/packages/perl-dbd-pg/package.py
index 04ed9af3b3..a00f1315bc 100644
--- a/var/spack/repos/builtin/packages/perl-dbd-pg/package.py
+++ b/var/spack/repos/builtin/packages/perl-dbd-pg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-dbd-sqlite/package.py b/var/spack/repos/builtin/packages/perl-dbd-sqlite/package.py
index 9a082332aa..9c2c7549f0 100644
--- a/var/spack/repos/builtin/packages/perl-dbd-sqlite/package.py
+++ b/var/spack/repos/builtin/packages/perl-dbd-sqlite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-dbi/package.py b/var/spack/repos/builtin/packages/perl-dbi/package.py
index 1bfb8c5f94..9eb37493b9 100644
--- a/var/spack/repos/builtin/packages/perl-dbi/package.py
+++ b/var/spack/repos/builtin/packages/perl-dbi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-devel-cycle/package.py b/var/spack/repos/builtin/packages/perl-devel-cycle/package.py
index 36d47053c2..0cf20235e5 100644
--- a/var/spack/repos/builtin/packages/perl-devel-cycle/package.py
+++ b/var/spack/repos/builtin/packages/perl-devel-cycle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlDevelCycle(PerlPackage):
"""Find memory cycles in objects"""
- homepage = "http://search.cpan.org/~lds/Devel-Cycle-1.12/lib/Devel/Cycle.pm"
+ homepage = "https://metacpan.org/pod/Devel::Cycle"
url = "http://search.cpan.org/CPAN/authors/id/L/LD/LDS/Devel-Cycle-1.12.tar.gz"
version('1.12', sha256='fd3365c4d898b2b2bddbb78a46d507a18cca8490a290199547dab7f1e7390bc2')
diff --git a/var/spack/repos/builtin/packages/perl-devel-globaldestruction/package.py b/var/spack/repos/builtin/packages/perl-devel-globaldestruction/package.py
index 888d592842..e780b3e0e1 100644
--- a/var/spack/repos/builtin/packages/perl-devel-globaldestruction/package.py
+++ b/var/spack/repos/builtin/packages/perl-devel-globaldestruction/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlDevelGlobaldestruction(PerlPackage):
"""Makes Perl's global destruction less tricky to deal with"""
- homepage = "http://search.cpan.org/~haarg/Devel-GlobalDestruction-0.14/lib/Devel/GlobalDestruction.pm"
+ homepage = "https://metacpan.org/pod/Devel::GlobalDestruction"
url = "http://search.cpan.org/CPAN/authors/id/H/HA/HAARG/Devel-GlobalDestruction-0.14.tar.gz"
version('0.14', sha256='34b8a5f29991311468fe6913cadaba75fd5d2b0b3ee3bb41fe5b53efab9154ab')
diff --git a/var/spack/repos/builtin/packages/perl-devel-overloadinfo/package.py b/var/spack/repos/builtin/packages/perl-devel-overloadinfo/package.py
index a1d11b5d24..de6d0e0ae3 100644
--- a/var/spack/repos/builtin/packages/perl-devel-overloadinfo/package.py
+++ b/var/spack/repos/builtin/packages/perl-devel-overloadinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlDevelOverloadinfo(PerlPackage):
"""Returns information about overloaded operators for a given class"""
- homepage = "http://search.cpan.org/~ilmari/Devel-OverloadInfo-0.004/lib/Devel/OverloadInfo.pm"
+ homepage = "https://metacpan.org/pod/Devel::OverloadInfo"
url = "http://search.cpan.org/CPAN/authors/id/I/IL/ILMARI/Devel-OverloadInfo-0.004.tar.gz"
version('0.005', sha256='8bfde2ffa47c9946f8adc8cfc445c2f97b8d1cdd678111bee9f444e82f7aa6e7')
diff --git a/var/spack/repos/builtin/packages/perl-devel-stacktrace/package.py b/var/spack/repos/builtin/packages/perl-devel-stacktrace/package.py
index 2f6a7c1696..d44ae7f80f 100644
--- a/var/spack/repos/builtin/packages/perl-devel-stacktrace/package.py
+++ b/var/spack/repos/builtin/packages/perl-devel-stacktrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlDevelStacktrace(PerlPackage):
"""An object representing a stack trace."""
- homepage = "http://search.cpan.org/~drolsky/Devel-StackTrace-2.02/lib/Devel/StackTrace.pm"
+ homepage = "https://metacpan.org/pod/Devel::StackTrace"
url = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Devel-StackTrace-2.02.tar.gz"
version('2.02', sha256='cbbd96db0ecf194ed140198090eaea0e327d9a378a4aa15f9a34b3138a91931f')
diff --git a/var/spack/repos/builtin/packages/perl-devel-symdump/package.py b/var/spack/repos/builtin/packages/perl-devel-symdump/package.py
index 83084c0d46..15395784fe 100644
--- a/var/spack/repos/builtin/packages/perl-devel-symdump/package.py
+++ b/var/spack/repos/builtin/packages/perl-devel-symdump/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-digest-md5/package.py b/var/spack/repos/builtin/packages/perl-digest-md5/package.py
index 577e223cf2..8149b39c2f 100644
--- a/var/spack/repos/builtin/packages/perl-digest-md5/package.py
+++ b/var/spack/repos/builtin/packages/perl-digest-md5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlDigestMd5(PerlPackage):
"""Perl interface to the MD5 Algorithm"""
- homepage = "http://search.cpan.org/dist/Digest-MD5/MD5.pm"
+ homepage = "https://metacpan.org/pod/Digest::MD5"
url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-MD5-2.55.tar.gz"
version('2.55', sha256='03b198a2d14425d951e5e50a885d3818c3162c8fe4c21e18d7798a9a179d0e3c')
diff --git a/var/spack/repos/builtin/packages/perl-dist-checkconflicts/package.py b/var/spack/repos/builtin/packages/perl-dist-checkconflicts/package.py
index 7a11c4ca3b..3d3e5b3760 100644
--- a/var/spack/repos/builtin/packages/perl-dist-checkconflicts/package.py
+++ b/var/spack/repos/builtin/packages/perl-dist-checkconflicts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlDistCheckconflicts(PerlPackage):
"""Declare version conflicts for your dist"""
- homepage = "http://search.cpan.org/~doy/Dist-CheckConflicts-0.11/lib/Dist/CheckConflicts.pm"
+ homepage = "https://metacpan.org/pod/Dist::CheckConflicts"
url = "http://search.cpan.org/CPAN/authors/id/D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz"
version('0.11', sha256='ea844b9686c94d666d9d444321d764490b2cde2f985c4165b4c2c77665caedc4')
diff --git a/var/spack/repos/builtin/packages/perl-encode-locale/package.py b/var/spack/repos/builtin/packages/perl-encode-locale/package.py
index 225c8c7752..d287545895 100644
--- a/var/spack/repos/builtin/packages/perl-encode-locale/package.py
+++ b/var/spack/repos/builtin/packages/perl-encode-locale/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlEncodeLocale(PerlPackage):
"""Determine the locale encoding"""
- homepage = "http://search.cpan.org/~gaas/Encode-Locale-1.05/lib/Encode/Locale.pm"
+ homepage = "https://metacpan.org/pod/Encode::Locale"
url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Encode-Locale-1.05.tar.gz"
version('1.05', sha256='176fa02771f542a4efb1dbc2a4c928e8f4391bf4078473bd6040d8f11adb0ec1')
diff --git a/var/spack/repos/builtin/packages/perl-error/package.py b/var/spack/repos/builtin/packages/perl-error/package.py
index f274b4e78c..35812a7aba 100644
--- a/var/spack/repos/builtin/packages/perl-error/package.py
+++ b/var/spack/repos/builtin/packages/perl-error/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-eval-closure/package.py b/var/spack/repos/builtin/packages/perl-eval-closure/package.py
index 5341d59640..7d041b50d1 100644
--- a/var/spack/repos/builtin/packages/perl-eval-closure/package.py
+++ b/var/spack/repos/builtin/packages/perl-eval-closure/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlEvalClosure(PerlPackage):
"""Safely and cleanly create closures via string eval"""
- homepage = "http://search.cpan.org/~doy/Eval-Closure-0.14/lib/Eval/Closure.pm"
+ homepage = "https://metacpan.org/pod/Eval::Closure"
url = "http://search.cpan.org/CPAN/authors/id/D/DO/DOY/Eval-Closure-0.14.tar.gz"
version('0.14', sha256='ea0944f2f5ec98d895bef6d503e6e4a376fea6383a6bc64c7670d46ff2218cad')
diff --git a/var/spack/repos/builtin/packages/perl-exception-class/package.py b/var/spack/repos/builtin/packages/perl-exception-class/package.py
index 893c2f817a..4d82e6b1b1 100644
--- a/var/spack/repos/builtin/packages/perl-exception-class/package.py
+++ b/var/spack/repos/builtin/packages/perl-exception-class/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlExceptionClass(PerlPackage):
"""A module that allows you to declare real exception classes in Perl"""
- homepage = "http://search.cpan.org/~drolsky/Exception-Class-1.43/lib/Exception/Class.pm"
+ homepage = "https://metacpan.org/pod/Exception::Class"
url = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Exception-Class-1.43.tar.gz"
version('1.43', sha256='ff3b4b3f706e84aaa87ab0dee5cec6bd7a8fc9f72cf76d115212541fa0a13760')
diff --git a/var/spack/repos/builtin/packages/perl-exporter-lite/package.py b/var/spack/repos/builtin/packages/perl-exporter-lite/package.py
new file mode 100644
index 0000000000..48b25d3e5f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-exporter-lite/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2021 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 PerlExporterLite(PerlPackage):
+ """Exporter::Lite is an alternative to Exporter, intended to provide a
+ lightweight subset of the most commonly-used functionality. It supports
+ import(), @EXPORT and @EXPORT_OK and not a whole lot else."""
+ homepage = "https://metacpan.org/pod/Exporter::Lite"
+ url = "https://cpan.metacpan.org/authors/id/N/NE/NEILB/Exporter-Lite-0.08.tar.gz"
+
+ version('0.08', sha256='c05b3909af4cb86f36495e94a599d23ebab42be7a18efd0d141fc1586309dac2')
diff --git a/var/spack/repos/builtin/packages/perl-exporter-tiny/package.py b/var/spack/repos/builtin/packages/perl-exporter-tiny/package.py
index f8fef2eada..7b8df5c171 100644
--- a/var/spack/repos/builtin/packages/perl-exporter-tiny/package.py
+++ b/var/spack/repos/builtin/packages/perl-exporter-tiny/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PerlExporterTiny(PerlPackage):
"""An exporter with the features of Sub::Exporter but only core
dependencies"""
- homepage = "http://search.cpan.org/~tobyink/Exporter-Tiny/lib/Exporter/Tiny.pm"
+ homepage = "https://metacpan.org/pod/Exporter::Tiny"
url = "http://search.cpan.org/CPAN/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.000000.tar.gz"
version('1.000000', sha256='ffdd77d57de099e8f64dd942ef12a00a3f4313c2531f342339eeed2d366ad078')
diff --git a/var/spack/repos/builtin/packages/perl-extutils-config/package.py b/var/spack/repos/builtin/packages/perl-extutils-config/package.py
index 65a426a239..bd8ca94557 100644
--- a/var/spack/repos/builtin/packages/perl-extutils-config/package.py
+++ b/var/spack/repos/builtin/packages/perl-extutils-config/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-extutils-depends/package.py b/var/spack/repos/builtin/packages/perl-extutils-depends/package.py
index e10e1848a3..c49c677175 100644
--- a/var/spack/repos/builtin/packages/perl-extutils-depends/package.py
+++ b/var/spack/repos/builtin/packages/perl-extutils-depends/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlExtutilsDepends(PerlPackage):
"""Easily build XS extensions that depend on XS extensions"""
- homepage = "http://search.cpan.org/~xaoc/ExtUtils-Depends/lib/ExtUtils/Depends.pm"
+ homepage = "https://metacpan.org/pod/ExtUtils::Depends"
url = "http://search.cpan.org/CPAN/authors/id/X/XA/XAOC/ExtUtils-Depends-0.405.tar.gz"
version('0.405', sha256='8ad6401ad7559b03ceda1fe4b191c95f417bdec7c542a984761a4656715a8a2c')
diff --git a/var/spack/repos/builtin/packages/perl-extutils-helpers/package.py b/var/spack/repos/builtin/packages/perl-extutils-helpers/package.py
index f6ba584389..61ac96b95c 100644
--- a/var/spack/repos/builtin/packages/perl-extutils-helpers/package.py
+++ b/var/spack/repos/builtin/packages/perl-extutils-helpers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-extutils-installpaths/package.py b/var/spack/repos/builtin/packages/perl-extutils-installpaths/package.py
index 4688f37daf..63548278bb 100644
--- a/var/spack/repos/builtin/packages/perl-extutils-installpaths/package.py
+++ b/var/spack/repos/builtin/packages/perl-extutils-installpaths/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-extutils-makemaker/package.py b/var/spack/repos/builtin/packages/perl-extutils-makemaker/package.py
index 0a7668428d..49adea5bfe 100644
--- a/var/spack/repos/builtin/packages/perl-extutils-makemaker/package.py
+++ b/var/spack/repos/builtin/packages/perl-extutils-makemaker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-extutils-pkgconfig/package.py b/var/spack/repos/builtin/packages/perl-extutils-pkgconfig/package.py
index bbe10419ce..774a91cced 100644
--- a/var/spack/repos/builtin/packages/perl-extutils-pkgconfig/package.py
+++ b/var/spack/repos/builtin/packages/perl-extutils-pkgconfig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlExtutilsPkgconfig(PerlPackage):
"""simplistic interface to pkg-config"""
- homepage = "http://search.cpan.org/~xaoc/ExtUtils-PkgConfig-1.16/lib/ExtUtils/PkgConfig.pm"
+ homepage = "https://metacpan.org/pod/ExtUtils::PkgConfig"
url = "http://search.cpan.org/CPAN/authors/id/X/XA/XAOC/ExtUtils-PkgConfig-1.16.tar.gz"
version('1.16', sha256='bbeaced995d7d8d10cfc51a3a5a66da41ceb2bc04fedcab50e10e6300e801c6e')
diff --git a/var/spack/repos/builtin/packages/perl-ffi-checklib/package.py b/var/spack/repos/builtin/packages/perl-ffi-checklib/package.py
index c2a83e1952..b5423df9e9 100644
--- a/var/spack/repos/builtin/packages/perl-ffi-checklib/package.py
+++ b/var/spack/repos/builtin/packages/perl-ffi-checklib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-file-chdir/package.py b/var/spack/repos/builtin/packages/perl-file-chdir/package.py
index d6d56f7760..173849fcca 100644
--- a/var/spack/repos/builtin/packages/perl-file-chdir/package.py
+++ b/var/spack/repos/builtin/packages/perl-file-chdir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-file-copy-recursive/package.py b/var/spack/repos/builtin/packages/perl-file-copy-recursive/package.py
index d4f2fe9705..a323f4d6cd 100644
--- a/var/spack/repos/builtin/packages/perl-file-copy-recursive/package.py
+++ b/var/spack/repos/builtin/packages/perl-file-copy-recursive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlFileCopyRecursive(PerlPackage):
"""Perl extension for recursively copying files and directories"""
- homepage = "http://search.cpan.org/~dmuey/File-Copy-Recursive-0.38/Recursive.pm"
+ homepage = "https://metacpan.org/pod/File::Copy::Recursive"
url = "http://search.cpan.org/CPAN/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.38.tar.gz"
version('0.40', sha256='e8b8923b930ef7bcb59d4a97456d0e149b8487597cd1550f836451d936ce55a1')
diff --git a/var/spack/repos/builtin/packages/perl-file-homedir/package.py b/var/spack/repos/builtin/packages/perl-file-homedir/package.py
index 08ca6a0854..460c3e6064 100644
--- a/var/spack/repos/builtin/packages/perl-file-homedir/package.py
+++ b/var/spack/repos/builtin/packages/perl-file-homedir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-file-listing/package.py b/var/spack/repos/builtin/packages/perl-file-listing/package.py
index f40ede5793..0159ad822f 100644
--- a/var/spack/repos/builtin/packages/perl-file-listing/package.py
+++ b/var/spack/repos/builtin/packages/perl-file-listing/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlFileListing(PerlPackage):
"""Parse directory listing"""
- homepage = "http://search.cpan.org/~gaas/File-Listing-6.04/lib/File/Listing.pm"
+ homepage = "https://metacpan.org/pod/File::Listing"
url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/File-Listing-6.04.tar.gz"
version('6.04', sha256='1e0050fcd6789a2179ec0db282bf1e90fb92be35d1171588bd9c47d52d959cf5')
diff --git a/var/spack/repos/builtin/packages/perl-file-pushd/package.py b/var/spack/repos/builtin/packages/perl-file-pushd/package.py
index 4d6ae057e1..24f16ed4fa 100644
--- a/var/spack/repos/builtin/packages/perl-file-pushd/package.py
+++ b/var/spack/repos/builtin/packages/perl-file-pushd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlFilePushd(PerlPackage):
"""Change directory temporarily for a limited scope"""
- homepage = "http://search.cpan.org/~dagolden/File-pushd-1.014/lib/File/pushd.pm"
+ homepage = "https://metacpan.org/pod/File::pushd"
url = "http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/File-pushd-1.014.tar.gz"
version('1.014', sha256='b5ab37ffe3acbec53efb7c77b4423a2c79afa30a48298e751b9ebee3fdc6340b')
diff --git a/var/spack/repos/builtin/packages/perl-file-sharedir-install/package.py b/var/spack/repos/builtin/packages/perl-file-sharedir-install/package.py
index 89eec13d46..63c84b2d59 100644
--- a/var/spack/repos/builtin/packages/perl-file-sharedir-install/package.py
+++ b/var/spack/repos/builtin/packages/perl-file-sharedir-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlFileSharedirInstall(PerlPackage):
"""Install shared files"""
- homepage = "http://search.cpan.org/~ether/File-ShareDir-Install-0.11/lib/File/ShareDir/Install.pm"
+ homepage = "https://metacpan.org/pod/File::ShareDir::Install"
url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/File-ShareDir-Install-0.11.tar.gz"
version('0.11', sha256='32bf8772e9fea60866074b27ff31ab5bc3f88972d61915e84cbbb98455e00cc8')
diff --git a/var/spack/repos/builtin/packages/perl-file-slurp-tiny/package.py b/var/spack/repos/builtin/packages/perl-file-slurp-tiny/package.py
index 881110d542..bc6e2c92b0 100644
--- a/var/spack/repos/builtin/packages/perl-file-slurp-tiny/package.py
+++ b/var/spack/repos/builtin/packages/perl-file-slurp-tiny/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlFileSlurpTiny(PerlPackage):
"""A simple, sane and efficient file slurper"""
- homepage = "http://search.cpan.org/~leont/File-Slurp-Tiny-0.004/lib/File/Slurp/Tiny.pm"
+ homepage = "https://metacpan.org/pod/File::Slurp::Tiny"
url = "http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/File-Slurp-Tiny-0.004.tar.gz"
version('0.004', sha256='452995beeabf0e923e65fdc627a725dbb12c9e10c00d8018c16d10ba62757f1e')
diff --git a/var/spack/repos/builtin/packages/perl-file-slurp/package.py b/var/spack/repos/builtin/packages/perl-file-slurp/package.py
index e759a60efc..623bd7acad 100644
--- a/var/spack/repos/builtin/packages/perl-file-slurp/package.py
+++ b/var/spack/repos/builtin/packages/perl-file-slurp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-file-slurper/package.py b/var/spack/repos/builtin/packages/perl-file-slurper/package.py
index 075ef52fe1..f7a11cdc7f 100644
--- a/var/spack/repos/builtin/packages/perl-file-slurper/package.py
+++ b/var/spack/repos/builtin/packages/perl-file-slurper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlFileSlurper(PerlPackage):
"""A simple, sane and efficient module to slurp a file"""
- homepage = "http://search.cpan.org/~leont/File-Slurper/lib/File/Slurper.pm"
+ homepage = "https://metacpan.org/pod/File::Slurper"
url = "http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/File-Slurper-0.011.tar.gz"
version('0.011', sha256='f6494844b9759b3d1dd8fc4ffa790f8e6e493c4eb58e88831a51e085f2e76010')
diff --git a/var/spack/repos/builtin/packages/perl-file-which/package.py b/var/spack/repos/builtin/packages/perl-file-which/package.py
index 636e8ae3ec..95ca303e7d 100644
--- a/var/spack/repos/builtin/packages/perl-file-which/package.py
+++ b/var/spack/repos/builtin/packages/perl-file-which/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-font-ttf/package.py b/var/spack/repos/builtin/packages/perl-font-ttf/package.py
index 20d1d374df..201b8b86a9 100644
--- a/var/spack/repos/builtin/packages/perl-font-ttf/package.py
+++ b/var/spack/repos/builtin/packages/perl-font-ttf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlFontTtf(PerlPackage):
"""Perl module for TrueType Font hacking"""
- homepage = "http://search.cpan.org/~bhallissy/Font-TTF-1.06/lib/Font/TTF.pm"
+ homepage = "https://metacpan.org/pod/Font::TTF"
url = "http://search.cpan.org/CPAN/authors/id/B/BH/BHALLISSY/Font-TTF-1.06.tar.gz"
version('1.06', sha256='4b697d444259759ea02d2c442c9bffe5ffe14c9214084a01f743693a944cc293')
diff --git a/var/spack/repos/builtin/packages/perl-forks/package.py b/var/spack/repos/builtin/packages/perl-forks/package.py
index b4fddbdd5e..7fbd843ac2 100644
--- a/var/spack/repos/builtin/packages/perl-forks/package.py
+++ b/var/spack/repos/builtin/packages/perl-forks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch b/var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch
new file mode 100644
index 0000000000..dbb38f7fc5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-fth/fth-shebang.patch
@@ -0,0 +1,10 @@
+diff --git a/bin/fth.pl b/bin/fth.pl
+--- a/bin/fth.pl
++++ b/bin/fth.pl
+@@ -1,6 +1,3 @@
+-#!/bin/ksh
+-eval 'exec perl -x -S $0 ${1+"$@"}'
+- if $running_under_some_shell;
+ #!/usr/bin/perl -w
+ # -*- Mode: cperl -*-
+ #|########################################################################
diff --git a/var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch b/var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch
new file mode 100644
index 0000000000..74003eae2a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-fth/fth-shebang2.patch
@@ -0,0 +1,10 @@
+diff --git a/bin/initmak.pl b/bin/initmak.pl
+--- a/bin/initmak.pl
++++ b/bin/initmak.pl
+@@ -1,6 +1,3 @@
+-#!/bin/ksh
+-eval 'exec perl -x -S $0 ${1+"$@"}'
+- if $running_under_some_shell;
+ #!/usr/bin/perl
+ # -*- Mode: cperl -*-
+ ############################################################################
diff --git a/var/spack/repos/builtin/packages/perl-fth/package.py b/var/spack/repos/builtin/packages/perl-fth/package.py
new file mode 100644
index 0000000000..3375944285
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-fth/package.py
@@ -0,0 +1,120 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class PerlFth(Package):
+ """Ftagshtml is a Fortran (and simple C) to HTML browsing,
+ resolves static interface overload.
+ It can handle some LaTeX comments inside the source files.
+ It only needs to be put somewhere into your disk since it uses Perl.
+ It also provides javatex2.pl initmak.pl getin.pl tex3ht.pl and view.pl:
+ (1) javatex2 complements latex2html to make nice browsing,
+ (2) initmak makes fortran 90 dependencies, either full deps or partial
+ (when interface is not modified it is silly to recompile everything)
+ (3) getin is an advanced search tool for Fortran variables and calls,
+ (4) view.pl is used for CGI search when source is on http server.
+ """
+
+ homepage = "https://sourceforge.net/projects/ftagshtml/"
+ url = "https://downloads.sourceforge.net/project/ftagshtml/ftagshtml-0.524.tgz"
+
+ maintainers = ['cessenat']
+
+ version('0.525', sha256='378116febeb20f4b0c1e298de90305e8494335949d853c7e390d1b6386c1326a')
+ version('0.524', sha256='2f378e969d1dd267985342f7fb1b3a0b9fd73334627cbc7ab17d61717bcd3c29')
+ version('0.523', sha256='d5d3fbd3caca30eee9de45baa46612841d55b2960db8e11411af6db76cf214ad')
+ version('0.522', sha256='acb73eb2c05b1ed7b75f86fbd9656c00158519b3d11d89a082117004deb0fb9e')
+ version('0.521', sha256='f980c9cc1ce644340a9e9630ef252f92bc89a411ea0a661fcb80cdae07f0731c')
+ version('0.520', sha256='0ac509a7416d67f5ddc4ad9f629cb0443e1ce515cf9eb92f4272eb6b545a4c50')
+ version('0.519', sha256='7a440ca08a18edbc57a4a5da7c90c98551ae1adaa303c9f984e5712e1cd54ffb')
+ version('0.518', sha256='7aed7c831270bb1935d4ccd090ef1360ec9446dd773c10350645985047f8879b')
+ version('0.517', sha256='e24488a7edbfa764060f007693329d5ee3154e1ce49a627ec109c41a9d7abcbe')
+
+ variant('hevea', default=False,
+ description="Use hevea when inputting LaTeX files (fth.pl -hevea)")
+ variant('pdflatex', default=False,
+ description="Use pdflatex to make a LaTeX index file (fth.pl -latexindex)")
+
+ depends_on('perl', type='run')
+ depends_on('perl-cgi', type='run')
+ # Actual dependency was on etags only, but no longer in recent releases:
+ depends_on('emacs', type='run', when='@:0.520')
+ # For fth.pl -hevea option
+ depends_on('hevea', when='+hevea', type='run')
+ # Actual dependency is on pdflatex only for fth.pl -latexindex option
+ depends_on('texlive', when='+pdflatex', type='run')
+ # initmak.pl uses md5sum provided by coreutils
+ depends_on('coreutils', type='run')
+ depends_on('dos2unix', type='build')
+
+ # Patches to remove the ancient ksh shebang for fth.pl and initmak.pl.
+ # git diff a/bin/fth.pl b/bin/fth.pl
+ patch('fth-shebang.patch', when='@0.517:0.522', sha256='3e82d34c8ae1709e5480fac87db387c1c2e219d7b7d596c8a9d62f0da2439ab3')
+ patch('fth-shebang2.patch', when='@0.517:0.522', sha256='839be7c0efad752ae341379c81ee1df4a3a81f608f802998c6b4ebc4bae8e167')
+
+ def _make_executable(self, name):
+ return Executable(join_path(self.prefix.bin, name + '.pl'))
+
+ def setup_dependent_package(self, module, dependent_spec):
+ # https://spack-tutorial.readthedocs.io/en/latest/tutorial_advanced_packaging.html
+ checks = ['fth', 'getin', 'view', 'javatex2', 'tex3ht', 'initmak']
+ for name in checks:
+ setattr(module, name, self._make_executable(name))
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.set('JAVATEX_DIR', self.prefix)
+ env.set('FTAGSHTML_DIR', self.prefix)
+ env.set('FTAGSHTML_DOC', join_path(self.prefix, 'doc'))
+
+ def setup_run_environment(self, env):
+ # https://github.com/spack/spack/discussions/13926
+ # Let us set the adequate environment when loading perl-fth
+ env.set('JAVATEX_DIR', self.prefix)
+ env.set('FTAGSHTML_DIR', self.prefix)
+ env.set('FTAGSHTML_DOC', join_path(self.prefix, 'doc'))
+
+ def install(self, spec, prefix):
+ # Remove the perl shebang with the local perl
+ # (since ftagshtml has no Makefile.PL to do it).
+ checks = ['fth', 'getin', 'view', 'javatex2', 'tex3ht', 'initmak']
+ # mstr = '#!' + join_path(spec['perl'].prefix.bin, 'perl')
+ mstr = '#!' + spec['perl'].command.path
+ with working_dir('bin'):
+ for exe in checks:
+ fic = exe + '.pl'
+ if os.path.exists(fic):
+ dos2unix = which('dos2unix')
+ dos2unix(fic)
+ fthfile = FileFilter(fic)
+ fthfile.filter('#!/usr/bin/perl', mstr, backup=False)
+ fthfile.filter('#!/usr/bin/env perl', mstr, backup=False)
+
+ # Adds a Makefile with an rsync rule
+ makefile_inc = [
+ 'RSYNC_OPTS = -avuzL',
+ 'RSYNC = rsync',
+ ]
+ makefile_inc.append('install:')
+ makefile_inc.append('\t$(RSYNC) $(RSYNC_OPTS) . %s' % prefix)
+ makefile_inc.append('')
+ with working_dir('.'):
+ with open('Makefile', 'a') as fh:
+ fh.write('\n'.join(makefile_inc))
+
+ # Remove obsolete ftagshtml files, if they exist:
+ with working_dir('bin'):
+ if os.path.exists("ftagshtml"):
+ os.remove("ftagshtml")
+ if os.path.exists("tata.pl"):
+ os.remove("tata.pl")
+ if os.path.exists("truc.pl"):
+ os.remove("truc.pl")
+
+ # Install the full directory structure
+ install_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/perl-gd/package.py b/var/spack/repos/builtin/packages/perl-gd/package.py
index 0990c198f8..009cd7189a 100644
--- a/var/spack/repos/builtin/packages/perl-gd/package.py
+++ b/var/spack/repos/builtin/packages/perl-gd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlGd(PerlPackage):
"""Interface to Gd Graphics Library"""
- homepage = "http://search.cpan.org/~lds/GD-2.53/GD.pm"
+ homepage = "https://metacpan.org/pod/GD"
url = "http://search.cpan.org/CPAN/authors/id/L/LD/LDS/GD-2.53.tar.gz"
version('2.53', sha256='d05d01fe95e581adb3468cf05ab5d405db7497c0fb3ec7ecf23d023705fab7aa')
diff --git a/var/spack/repos/builtin/packages/perl-gdgraph-histogram/package.py b/var/spack/repos/builtin/packages/perl-gdgraph-histogram/package.py
index 3c550e758c..8a18634fab 100644
--- a/var/spack/repos/builtin/packages/perl-gdgraph-histogram/package.py
+++ b/var/spack/repos/builtin/packages/perl-gdgraph-histogram/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-gdgraph/package.py b/var/spack/repos/builtin/packages/perl-gdgraph/package.py
index 3897af23cc..5bceb2473f 100644
--- a/var/spack/repos/builtin/packages/perl-gdgraph/package.py
+++ b/var/spack/repos/builtin/packages/perl-gdgraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlGdgraph(PerlPackage):
"""Graph Plotting Module for Perl 5"""
- homepage = "http://search.cpan.org/~bwarfield/GDGraph/Graph.pm"
+ homepage = "https://metacpan.org/pod/GD::Graph"
url = "http://search.cpan.org/CPAN/authors/id/B/BW/BWARFIELD/GDGraph-1.4308.tar.gz"
version('1.4308', sha256='75b3c7e280431404ed096c6e120d552cc39052a8610787149515e94b9ba237cb')
diff --git a/var/spack/repos/builtin/packages/perl-gdtextutil/package.py b/var/spack/repos/builtin/packages/perl-gdtextutil/package.py
index 4be0490125..5d19d38092 100644
--- a/var/spack/repos/builtin/packages/perl-gdtextutil/package.py
+++ b/var/spack/repos/builtin/packages/perl-gdtextutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlGdtextutil(PerlPackage):
"""Text utilities for use with GD"""
- homepage = "http://search.cpan.org/~mverb/GDTextUtil-0.86/Text.pm"
+ homepage = "https://metacpan.org/pod/GD::Text"
url = "http://search.cpan.org/CPAN/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz"
version('0.86', sha256='886ecbf85cfe94f4135ee5689c4847a9ae783ecb99e6759e12c734f2dd6116bc')
diff --git a/var/spack/repos/builtin/packages/perl-getopt-tabular/package.py b/var/spack/repos/builtin/packages/perl-getopt-tabular/package.py
new file mode 100644
index 0000000000..094d5f801c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-getopt-tabular/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2021 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 PerlGetoptTabular(PerlPackage):
+ """Getopt::Tabular is a Perl 5 module for table-driven argument parsing,
+ vaguely inspired by John Ousterhout's Tk_ParseArgv."""
+ homepage = "https://metacpan.org/pod/Getopt::Tabular"
+ url = "https://cpan.metacpan.org/authors/id/G/GW/GWARD/Getopt-Tabular-0.3.tar.gz"
+
+ version('0.3', sha256='9bdf067633b5913127820f4e8035edc53d08372faace56ba6bfa00c968a25377')
diff --git a/var/spack/repos/builtin/packages/perl-graph-readwrite/package.py b/var/spack/repos/builtin/packages/perl-graph-readwrite/package.py
index b89ca46e9f..589bea03bf 100644
--- a/var/spack/repos/builtin/packages/perl-graph-readwrite/package.py
+++ b/var/spack/repos/builtin/packages/perl-graph-readwrite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlGraphReadwrite(PerlPackage):
"""Write out directed graph in Dot format"""
- homepage = "http://search.cpan.org/~neilb/Graph-ReadWrite/lib/Graph/Writer/Dot.pm"
+ homepage = "https://metacpan.org/pod/Graph::ReadWrite"
url = "http://search.cpan.org/CPAN/authors/id/N/NE/NEILB/Graph-ReadWrite-2.09.tar.gz"
version('2.09', sha256='b01ef06ce922eea12d5ce614d63ddc5f3ee7ad0d05f9577051d3f87a89799a4a')
diff --git a/var/spack/repos/builtin/packages/perl-graph/package.py b/var/spack/repos/builtin/packages/perl-graph/package.py
index 6022a74c66..e609ba8309 100644
--- a/var/spack/repos/builtin/packages/perl-graph/package.py
+++ b/var/spack/repos/builtin/packages/perl-graph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlGraph(PerlPackage):
"""Graph data structures and algorithms"""
- homepage = "http://search.cpan.org/~jhi/Graph/lib/Graph.pod"
+ homepage = "https://metacpan.org/pod/Graph"
url = "http://search.cpan.org/CPAN/authors/id/J/JH/JHI/Graph-0.9704.tar.gz"
version('0.9704', sha256='325e8eb07be2d09a909e450c13d3a42dcb2a2e96cc3ac780fe4572a0d80b2a25')
diff --git a/var/spack/repos/builtin/packages/perl-hash-merge/package.py b/var/spack/repos/builtin/packages/perl-hash-merge/package.py
index 9fbcf05055..6649a8b88b 100644
--- a/var/spack/repos/builtin/packages/perl-hash-merge/package.py
+++ b/var/spack/repos/builtin/packages/perl-hash-merge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-html-parser/package.py b/var/spack/repos/builtin/packages/perl-html-parser/package.py
index cef4f955cf..1d7422ac9d 100644
--- a/var/spack/repos/builtin/packages/perl-html-parser/package.py
+++ b/var/spack/repos/builtin/packages/perl-html-parser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlHtmlParser(PerlPackage):
"""HTML parser class"""
- homepage = "http://search.cpan.org/~gaas/HTML-Parser-3.72/Parser.pm"
+ homepage = "https://metacpan.org/pod/HTML::Parser"
url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.72.tar.gz"
version('3.72', sha256='ec28c7e1d9e67c45eca197077f7cdc41ead1bb4c538c7f02a3296a4bb92f608b')
diff --git a/var/spack/repos/builtin/packages/perl-html-tagset/package.py b/var/spack/repos/builtin/packages/perl-html-tagset/package.py
index 523a597370..c4337d5a94 100644
--- a/var/spack/repos/builtin/packages/perl-html-tagset/package.py
+++ b/var/spack/repos/builtin/packages/perl-html-tagset/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlHtmlTagset(PerlPackage):
"""Data tables useful in parsing HTML"""
- homepage = "http://search.cpan.org/~petdance/HTML-Tagset-3.20/Tagset.pm"
+ homepage = "https://metacpan.org/pod/HTML::Tagset"
url = "http://search.cpan.org/CPAN/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz"
version('3.20', sha256='adb17dac9e36cd011f5243881c9739417fd102fce760f8de4e9be4c7131108e2')
diff --git a/var/spack/repos/builtin/packages/perl-http-cookies/package.py b/var/spack/repos/builtin/packages/perl-http-cookies/package.py
index 25e3a81d89..df39fa0cf0 100644
--- a/var/spack/repos/builtin/packages/perl-http-cookies/package.py
+++ b/var/spack/repos/builtin/packages/perl-http-cookies/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlHttpCookies(PerlPackage):
"""HTTP cookie jars"""
- homepage = "http://search.cpan.org/~oalders/HTTP-Cookies-6.04/lib/HTTP/Cookies.pm"
+ homepage = "https://metacpan.org/pod/HTTP::Cookies"
url = "http://search.cpan.org/CPAN/authors/id/O/OA/OALDERS/HTTP-Cookies-6.04.tar.gz"
version('6.04', sha256='0cc7f079079dcad8293fea36875ef58dd1bfd75ce1a6c244cd73ed9523eb13d4')
diff --git a/var/spack/repos/builtin/packages/perl-http-daemon/package.py b/var/spack/repos/builtin/packages/perl-http-daemon/package.py
index 18ba0e506c..a4bdf33921 100644
--- a/var/spack/repos/builtin/packages/perl-http-daemon/package.py
+++ b/var/spack/repos/builtin/packages/perl-http-daemon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlHttpDaemon(PerlPackage):
"""A simple http server class"""
- homepage = "http://search.cpan.org/~gaas/HTTP-Daemon-6.01/lib/HTTP/Daemon.pm"
+ homepage = "https://metacpan.org/pod/HTTP::Daemon"
url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTTP-Daemon-6.01.tar.gz"
version('6.01', sha256='43fd867742701a3f9fcc7bd59838ab72c6490c0ebaf66901068ec6997514adc2')
diff --git a/var/spack/repos/builtin/packages/perl-http-date/package.py b/var/spack/repos/builtin/packages/perl-http-date/package.py
index ae330f69e5..614ae761ae 100644
--- a/var/spack/repos/builtin/packages/perl-http-date/package.py
+++ b/var/spack/repos/builtin/packages/perl-http-date/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlHttpDate(PerlPackage):
"""Date conversion routines"""
- homepage = "http://search.cpan.org/~gaas/HTTP-Date-6.02/lib/HTTP/Date.pm"
+ homepage = "https://metacpan.org/pod/HTTP::Date"
url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTTP-Date-6.02.tar.gz"
version('6.02', sha256='e8b9941da0f9f0c9c01068401a5e81341f0e3707d1c754f8e11f42a7e629e333')
diff --git a/var/spack/repos/builtin/packages/perl-http-message/package.py b/var/spack/repos/builtin/packages/perl-http-message/package.py
index bedcb7d315..d03964b901 100644
--- a/var/spack/repos/builtin/packages/perl-http-message/package.py
+++ b/var/spack/repos/builtin/packages/perl-http-message/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlHttpMessage(PerlPackage):
"""HTTP style message (base class)"""
- homepage = "http://search.cpan.org/~oalders/HTTP-Message-6.13/lib/HTTP/Status.pm"
+ homepage = "https://metacpan.org/pod/HTTP::Message"
url = "http://search.cpan.org/CPAN/authors/id/O/OA/OALDERS/HTTP-Message-6.13.tar.gz"
version('6.13', sha256='f25f38428de851e5661e72f124476494852eb30812358b07f1c3a289f6f5eded')
diff --git a/var/spack/repos/builtin/packages/perl-http-negotiate/package.py b/var/spack/repos/builtin/packages/perl-http-negotiate/package.py
index dbb407ac05..e3e186260b 100644
--- a/var/spack/repos/builtin/packages/perl-http-negotiate/package.py
+++ b/var/spack/repos/builtin/packages/perl-http-negotiate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlHttpNegotiate(PerlPackage):
"""Choose a variant to serve"""
- homepage = "http://search.cpan.org/~gaas/HTTP-Negotiate-6.01/lib/HTTP/Negotiate.pm"
+ homepage = "https://metacpan.org/pod/HTTP::Negotiate"
url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz"
version('6.01', sha256='1c729c1ea63100e878405cda7d66f9adfd3ed4f1d6cacaca0ee9152df728e016')
diff --git a/var/spack/repos/builtin/packages/perl-inline-c/package.py b/var/spack/repos/builtin/packages/perl-inline-c/package.py
index f41c070d28..cf10b0821a 100644
--- a/var/spack/repos/builtin/packages/perl-inline-c/package.py
+++ b/var/spack/repos/builtin/packages/perl-inline-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlInlineC(PerlPackage):
"""C Language Support for Inline"""
- homepage = "http://search.cpan.org/~tinita/Inline-C-0.78/lib/Inline/C.pod"
+ homepage = "https://metacpan.org/pod/Inline::C"
url = "http://search.cpan.org/CPAN/authors/id/T/TI/TINITA/Inline-C-0.78.tar.gz"
version('0.78', sha256='9a7804d85c01a386073d2176582b0262b6374c5c0341049da3ef84c6f53efbc7')
diff --git a/var/spack/repos/builtin/packages/perl-inline/package.py b/var/spack/repos/builtin/packages/perl-inline/package.py
index 001553c399..acba6d1894 100644
--- a/var/spack/repos/builtin/packages/perl-inline/package.py
+++ b/var/spack/repos/builtin/packages/perl-inline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlInline(PerlPackage):
"""Write Perl Subroutines in Other Programming Languages"""
- homepage = "http://search.cpan.org/~ingy/Inline-0.80/lib/Inline.pod"
+ homepage = "https://metacpan.org/pod/Inline"
url = "http://search.cpan.org/CPAN/authors/id/I/IN/INGY/Inline-0.80.tar.gz"
version('0.80', sha256='7e2bd984b1ebd43e336b937896463f2c6cb682c956cbd2c311a464363d2ccef6')
diff --git a/var/spack/repos/builtin/packages/perl-io-all/package.py b/var/spack/repos/builtin/packages/perl-io-all/package.py
index 9e55fc06e8..fa8e8a5035 100644
--- a/var/spack/repos/builtin/packages/perl-io-all/package.py
+++ b/var/spack/repos/builtin/packages/perl-io-all/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-io-compress/package.py b/var/spack/repos/builtin/packages/perl-io-compress/package.py
index b28bf0c935..b1c2b45e17 100644
--- a/var/spack/repos/builtin/packages/perl-io-compress/package.py
+++ b/var/spack/repos/builtin/packages/perl-io-compress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PerlIoCompress(PerlPackage):
"""A perl library for uncompressing gzip, zip, bzip2
or lzop file/buffer."""
- homepage = "http://search.cpan.org/~pmqs/IO-Compress-2.070/lib/IO/Uncompress/AnyUncompress.pm"
+ homepage = "https://metacpan.org/pod/IO::Uncompress::AnyUncompress"
url = "http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/IO-Compress-2.081.tar.gz"
version('2.081', sha256='5211c775544dc8c511af08edfb1c0c22734daa2789149c2a88d68e17b43546d9')
diff --git a/var/spack/repos/builtin/packages/perl-io-html/package.py b/var/spack/repos/builtin/packages/perl-io-html/package.py
index 42950079dc..51a99aa688 100644
--- a/var/spack/repos/builtin/packages/perl-io-html/package.py
+++ b/var/spack/repos/builtin/packages/perl-io-html/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlIoHtml(PerlPackage):
"""Open an HTML file with automatic charset detection."""
- homepage = "http://search.cpan.org/~cjm/IO-HTML-1.001/lib/IO/HTML.pm"
+ homepage = "https://metacpan.org/pod/IO::HTML"
url = "http://search.cpan.org/CPAN/authors/id/C/CJ/CJM/IO-HTML-1.001.tar.gz"
version('1.001', sha256='ea78d2d743794adc028bc9589538eb867174b4e165d7d8b5f63486e6b828e7e0')
diff --git a/var/spack/repos/builtin/packages/perl-io-prompt/package.py b/var/spack/repos/builtin/packages/perl-io-prompt/package.py
index 9947434642..2dbb63a3c8 100644
--- a/var/spack/repos/builtin/packages/perl-io-prompt/package.py
+++ b/var/spack/repos/builtin/packages/perl-io-prompt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-io-sessiondata/package.py b/var/spack/repos/builtin/packages/perl-io-sessiondata/package.py
index 6f94b59fd8..d78449423f 100644
--- a/var/spack/repos/builtin/packages/perl-io-sessiondata/package.py
+++ b/var/spack/repos/builtin/packages/perl-io-sessiondata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlIoSessiondata(PerlPackage):
"""A wrapper around a single IO::Socket object"""
- homepage = "http://search.cpan.org/~phred/IO-SessionData-1.03/"
+ homepage = "https://metacpan.org/release/PHRED/IO-SessionData-1.03/source/lib/IO/SessionData.pm#PIO::SessionData"
url = "http://search.cpan.org/CPAN/authors/id/P/PH/PHRED/IO-SessionData-1.03.tar.gz"
version('1.03', sha256='64a4712a3edbb3fd10230db296c29c8c66f066adfbc0c3df6a48258fef392ddd')
diff --git a/var/spack/repos/builtin/packages/perl-io-socket-ssl/package.py b/var/spack/repos/builtin/packages/perl-io-socket-ssl/package.py
index 71fa915734..19a3b2b281 100644
--- a/var/spack/repos/builtin/packages/perl-io-socket-ssl/package.py
+++ b/var/spack/repos/builtin/packages/perl-io-socket-ssl/package.py
@@ -1,16 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 inspect
+from spack import *
+
class PerlIoSocketSsl(PerlPackage):
"""SSL sockets with IO::Socket interface"""
- homepage = "http://search.cpan.org/~sullr/IO-Socket-SSL-2.052/lib/IO/Socket/SSL.pod"
+ homepage = "https://metacpan.org/dist/IO-Socket-SSL/view/lib/IO/Socket/SSL.pod"
url = "http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-2.052.tar.gz"
version('2.052', sha256='e4897a9b17cb18a3c44aa683980d52cef534cdfcb8063d6877c879bfa2f26673')
diff --git a/var/spack/repos/builtin/packages/perl-io-string/package.py b/var/spack/repos/builtin/packages/perl-io-string/package.py
index 364e6eab6a..9879766b9b 100644
--- a/var/spack/repos/builtin/packages/perl-io-string/package.py
+++ b/var/spack/repos/builtin/packages/perl-io-string/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlIoString(PerlPackage):
"""Emulate file interface for in-core strings"""
- homepage = "http://search.cpan.org/~gaas/IO-String-1.08/String.pm"
+ homepage = "https://metacpan.org/pod/IO::String"
url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/IO-String-1.08.tar.gz"
version('1.08', sha256='2a3f4ad8442d9070780e58ef43722d19d1ee21a803bf7c8206877a10482de5a0')
diff --git a/var/spack/repos/builtin/packages/perl-io-stringy/package.py b/var/spack/repos/builtin/packages/perl-io-stringy/package.py
index 063c7b747b..b116a997fe 100644
--- a/var/spack/repos/builtin/packages/perl-io-stringy/package.py
+++ b/var/spack/repos/builtin/packages/perl-io-stringy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-io-tty/package.py b/var/spack/repos/builtin/packages/perl-io-tty/package.py
index 1700a20c84..aaec88d7e1 100644
--- a/var/spack/repos/builtin/packages/perl-io-tty/package.py
+++ b/var/spack/repos/builtin/packages/perl-io-tty/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-ipc-run/package.py b/var/spack/repos/builtin/packages/perl-ipc-run/package.py
index 26247138ee..96ad0118ff 100644
--- a/var/spack/repos/builtin/packages/perl-ipc-run/package.py
+++ b/var/spack/repos/builtin/packages/perl-ipc-run/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-json/package.py b/var/spack/repos/builtin/packages/perl-json/package.py
index c1dbe2634d..e9aff716f3 100644
--- a/var/spack/repos/builtin/packages/perl-json/package.py
+++ b/var/spack/repos/builtin/packages/perl-json/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlJson(PerlPackage):
"""JSON (JavaScript Object Notation) encoder/decoder"""
- homepage = "http://search.cpan.org/~ishigaki/JSON/lib/JSON.pm"
+ homepage = "https://metacpan.org/pod/JSON"
url = "http://search.cpan.org/CPAN/authors/id/I/IS/ISHIGAKI/JSON-2.97001.tar.gz"
version('2.97001', sha256='e277d9385633574923f48c297e1b8acad3170c69fa590e31fa466040fc6f8f5a')
diff --git a/var/spack/repos/builtin/packages/perl-libwww-perl/package.py b/var/spack/repos/builtin/packages/perl-libwww-perl/package.py
index f82663cdef..ece14eb617 100644
--- a/var/spack/repos/builtin/packages/perl-libwww-perl/package.py
+++ b/var/spack/repos/builtin/packages/perl-libwww-perl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-libxml-perl/package.py b/var/spack/repos/builtin/packages/perl-libxml-perl/package.py
index 06b598b36f..2d17ffe7f1 100644
--- a/var/spack/repos/builtin/packages/perl-libxml-perl/package.py
+++ b/var/spack/repos/builtin/packages/perl-libxml-perl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-list-moreutils-xs/package.py b/var/spack/repos/builtin/packages/perl-list-moreutils-xs/package.py
index 36812e5efc..250ba32d08 100644
--- a/var/spack/repos/builtin/packages/perl-list-moreutils-xs/package.py
+++ b/var/spack/repos/builtin/packages/perl-list-moreutils-xs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-list-moreutils/package.py b/var/spack/repos/builtin/packages/perl-list-moreutils/package.py
index 9e11513683..45c320eccb 100644
--- a/var/spack/repos/builtin/packages/perl-list-moreutils/package.py
+++ b/var/spack/repos/builtin/packages/perl-list-moreutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlListMoreutils(PerlPackage):
"""Provide the stuff missing in List::Util"""
- homepage = "http://search.cpan.org/~rehsack/List-MoreUtils/lib/List/MoreUtils.pm"
+ homepage = "https://metacpan.org/pod/List::MoreUtils"
url = "http://search.cpan.org/CPAN/authors/id/R/RE/REHSACK/List-MoreUtils-0.428.tar.gz"
version('0.428', sha256='713e0945d5f16e62d81d5f3da2b6a7b14a4ce439f6d3a7de74df1fd166476cc2')
diff --git a/var/spack/repos/builtin/packages/perl-log-log4perl/package.py b/var/spack/repos/builtin/packages/perl-log-log4perl/package.py
index c63584e302..2eec7b72c0 100644
--- a/var/spack/repos/builtin/packages/perl-log-log4perl/package.py
+++ b/var/spack/repos/builtin/packages/perl-log-log4perl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlLogLog4perl(PerlPackage):
"""Log4j implementation for Perl"""
- homepage = "http://search.cpan.org/~mschilli/Log-Log4perl-1.44/lib/Log/Log4perl.pm"
+ homepage = "https://metacpan.org/pod/Log::Log4perl"
url = "https://cpan.metacpan.org/authors/id/M/MS/MSCHILLI/Log-Log4perl-1.46.tar.gz"
version('1.46', sha256='31011a17c04e78016e73eaa4865d0481d2ffc3dc22813c61065d90ad73c64e6f')
diff --git a/var/spack/repos/builtin/packages/perl-logger-simple/package.py b/var/spack/repos/builtin/packages/perl-logger-simple/package.py
index 4db26ae672..75f58b070a 100644
--- a/var/spack/repos/builtin/packages/perl-logger-simple/package.py
+++ b/var/spack/repos/builtin/packages/perl-logger-simple/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-lwp-mediatypes/package.py b/var/spack/repos/builtin/packages/perl-lwp-mediatypes/package.py
index 9fc269ae5d..d65185e94b 100644
--- a/var/spack/repos/builtin/packages/perl-lwp-mediatypes/package.py
+++ b/var/spack/repos/builtin/packages/perl-lwp-mediatypes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlLwpMediatypes(PerlPackage):
"""Guess media type for a file or a URL"""
- homepage = "http://search.cpan.org/~gaas/LWP-MediaTypes-6.02/lib/LWP/MediaTypes.pm"
+ homepage = "https://metacpan.org/pod/LWP::MediaTypes"
url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/LWP-MediaTypes-6.02.tar.gz"
version('6.02', sha256='18790b0cc5f0a51468495c3847b16738f785a2d460403595001e0b932e5db676')
diff --git a/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py b/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py
index 8d2da894b0..0e28fb13e1 100644
--- a/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py
+++ b/var/spack/repos/builtin/packages/perl-lwp-protocol-https/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlLwpProtocolHttps(PerlPackage):
""" Provide https support for LWP::UserAgent"""
- homepage = "http://search.cpan.org/~gaas/LWP-Protocol-https-6.04/lib/LWP/Protocol/https.pm"
+ homepage = "https://metacpan.org/pod/LWP::Protocol::https"
url = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/LWP-Protocol-https-6.04.tar.gz"
version('6.04', sha256='1ef67750ee363525cf729b59afde805ac4dc80eaf8d36ca01082a4d78a7af629')
diff --git a/var/spack/repos/builtin/packages/perl-mailtools/package.py b/var/spack/repos/builtin/packages/perl-mailtools/package.py
index ae53c07582..4201c8a66b 100644
--- a/var/spack/repos/builtin/packages/perl-mailtools/package.py
+++ b/var/spack/repos/builtin/packages/perl-mailtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-math-bezier/package.py b/var/spack/repos/builtin/packages/perl-math-bezier/package.py
index d53aa00e33..01f1a818f7 100644
--- a/var/spack/repos/builtin/packages/perl-math-bezier/package.py
+++ b/var/spack/repos/builtin/packages/perl-math-bezier/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-math-cdf/package.py b/var/spack/repos/builtin/packages/perl-math-cdf/package.py
index 0572e5a8cd..24761d8703 100644
--- a/var/spack/repos/builtin/packages/perl-math-cdf/package.py
+++ b/var/spack/repos/builtin/packages/perl-math-cdf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PerlMathCdf(PerlPackage):
"""Generate probabilities and quantiles from several statistical
probability functions"""
- homepage = "http://search.cpan.org/~callahan/Math-CDF-0.1/CDF.pm"
+ homepage = "https://metacpan.org/pod/Math::CDF"
url = "http://search.cpan.org/CPAN/authors/id/C/CA/CALLAHAN/Math-CDF-0.1.tar.gz"
version('0.1', sha256='7896bf250835ce47dcc813cb8cf9dc576c5455de42e822dcd7d8d3fef2125565')
diff --git a/var/spack/repos/builtin/packages/perl-math-cephes/package.py b/var/spack/repos/builtin/packages/perl-math-cephes/package.py
index 70eea6616c..6dda7c9405 100644
--- a/var/spack/repos/builtin/packages/perl-math-cephes/package.py
+++ b/var/spack/repos/builtin/packages/perl-math-cephes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PerlMathCephes(PerlPackage):
"""This module provides an interface to over 150 functions of the
cephes math library of Stephen Moshier."""
- homepage = "http://search.cpan.org/~shlomif/Math-Cephes/lib/Math/Cephes.pod"
+ homepage = "https://metacpan.org/pod/Math::Cephes"
url = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/Math-Cephes-0.5305.tar.gz"
version('0.5305', sha256='561a800a4822e748d2befc366baa4b21e879a40cc00c22293c7b8736caeb83a1')
diff --git a/var/spack/repos/builtin/packages/perl-math-matrixreal/package.py b/var/spack/repos/builtin/packages/perl-math-matrixreal/package.py
index 66d742daad..c19f50082e 100644
--- a/var/spack/repos/builtin/packages/perl-math-matrixreal/package.py
+++ b/var/spack/repos/builtin/packages/perl-math-matrixreal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PerlMathMatrixreal(PerlPackage):
"""Implements the data type "matrix of real numbers" (and consequently
also "vector of real numbers")."""
- homepage = "http://search.cpan.org/~leto/Math-MatrixReal/lib/Math/MatrixReal.pm"
+ homepage = "https://metacpan.org/pod/Math::MatrixReal"
url = "http://search.cpan.org/CPAN/authors/id/L/LE/LETO/Math-MatrixReal-2.13.tar.gz"
version('2.13', sha256='4f9fa1a46dd34d2225de461d9a4ed86932cdd821c121fa501a15a6d4302fb4b2')
diff --git a/var/spack/repos/builtin/packages/perl-math-round/package.py b/var/spack/repos/builtin/packages/perl-math-round/package.py
index f9f94857be..46e4926c39 100644
--- a/var/spack/repos/builtin/packages/perl-math-round/package.py
+++ b/var/spack/repos/builtin/packages/perl-math-round/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-math-vecstat/package.py b/var/spack/repos/builtin/packages/perl-math-vecstat/package.py
index 404c92b762..c79d5c6dff 100644
--- a/var/spack/repos/builtin/packages/perl-math-vecstat/package.py
+++ b/var/spack/repos/builtin/packages/perl-math-vecstat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-mce/package.py b/var/spack/repos/builtin/packages/perl-mce/package.py
new file mode 100644
index 0000000000..4281e375cd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-mce/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PerlMce(PerlPackage):
+ """MCE - Many-Core Engine for Perl providing parallel processing
+ capabilities.
+
+ MCE spawns a pool of workers and therefore does not fork a new process per
+ each element of data. Instead, MCE follows a bank queuing model. Imagine
+ the line being the data and bank-tellers the parallel workers. MCE enhances
+ that model by adding the ability to chunk the next n elements from the
+ input stream to the next available worker."""
+
+ homepage = "https://github.com/marioroy/mce-perl"
+ url = "https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.874.tar.gz"
+
+ version('1.874', sha256='d809e3018475115ad7eccb8bef49bde3bf3e75abbbcd80564728bbcfab86d3d0')
diff --git a/var/spack/repos/builtin/packages/perl-module-build-tiny/package.py b/var/spack/repos/builtin/packages/perl-module-build-tiny/package.py
index 8cbfbe2651..486c59bb13 100644
--- a/var/spack/repos/builtin/packages/perl-module-build-tiny/package.py
+++ b/var/spack/repos/builtin/packages/perl-module-build-tiny/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-module-build/package.py b/var/spack/repos/builtin/packages/perl-module-build/package.py
index 2bb7ee2014..2d2066f88d 100644
--- a/var/spack/repos/builtin/packages/perl-module-build/package.py
+++ b/var/spack/repos/builtin/packages/perl-module-build/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class PerlModuleBuild(PerlPackage):
pure-perl and written in a very cross-platform way.
"""
- homepage = "http://search.cpan.org/perldoc/Module::Build"
+ homepage = "https://metacpan.org/pod/Module::Build"
url = "http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/Module-Build-0.4224.tar.gz"
version('0.4224', sha256='a6ca15d78244a7b50fdbf27f85c85f4035aa799ce7dd018a0d98b358ef7bc782')
diff --git a/var/spack/repos/builtin/packages/perl-module-implementation/package.py b/var/spack/repos/builtin/packages/perl-module-implementation/package.py
index 0f7fc9d2ea..b8af2e0062 100644
--- a/var/spack/repos/builtin/packages/perl-module-implementation/package.py
+++ b/var/spack/repos/builtin/packages/perl-module-implementation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PerlModuleImplementation(PerlPackage):
"""Loads one of several alternate underlying implementations for a
module"""
- homepage = "http://search.cpan.org/~drolsky/Module-Implementation/lib/Module/Implementation.pm"
+ homepage = "https://metacpan.org/pod/Module::Implementation"
url = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz"
version('0.09', sha256='c15f1a12f0c2130c9efff3c2e1afe5887b08ccd033bd132186d1e7d5087fd66d')
diff --git a/var/spack/repos/builtin/packages/perl-module-runtime-conflicts/package.py b/var/spack/repos/builtin/packages/perl-module-runtime-conflicts/package.py
index 3ee858b6e5..518ab7696e 100644
--- a/var/spack/repos/builtin/packages/perl-module-runtime-conflicts/package.py
+++ b/var/spack/repos/builtin/packages/perl-module-runtime-conflicts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlModuleRuntimeConflicts(PerlPackage):
"""Provide information on conflicts for Module::Runtime"""
- homepage = "http://search.cpan.org/~ether/Module-Runtime-Conflicts-0.003/lib/Module/Runtime/Conflicts.pm"
+ homepage = "https://metacpan.org/pod/Module::Runtime::Conflicts"
url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Module-Runtime-Conflicts-0.003.tar.gz"
version('0.003', sha256='707cdc75038c70fe91779b888ac050f128565d3967ba96680e1b1c7cc9733875')
diff --git a/var/spack/repos/builtin/packages/perl-module-runtime/package.py b/var/spack/repos/builtin/packages/perl-module-runtime/package.py
index 811fc818a5..0388efe9a0 100644
--- a/var/spack/repos/builtin/packages/perl-module-runtime/package.py
+++ b/var/spack/repos/builtin/packages/perl-module-runtime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlModuleRuntime(PerlPackage):
"""Runtime module handling"""
- homepage = "http://search.cpan.org/~zefram/Module-Runtime/lib/Module/Runtime.pm"
+ homepage = "https://metacpan.org/pod/Module::Runtime"
url = "http://search.cpan.org/CPAN/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz"
version('0.016', sha256='68302ec646833547d410be28e09676db75006f4aa58a11f3bdb44ffe99f0f024')
diff --git a/var/spack/repos/builtin/packages/perl-moose/package.py b/var/spack/repos/builtin/packages/perl-moose/package.py
index e6fe33a7a1..e3cba086b3 100644
--- a/var/spack/repos/builtin/packages/perl-moose/package.py
+++ b/var/spack/repos/builtin/packages/perl-moose/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PerlMoose(PerlPackage):
"""A postmodern object system for Perl 5"""
- homepage = "http://search.cpan.org/~ether/Moose-2.2006/lib/Moose.pm"
- url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Moose-2.2006.tar.gz"
+ homepage = "https://metacpan.org/pod/Moose"
+ url = "https://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Moose-2.2006.tar.gz"
version('2.2010', sha256='af0905b69f18c27de1177c9bc7778ee495d4ec91be1f223e8ca8333af4de08c5')
version('2.2009', sha256='63ba8a5e27dbcbdbac2cd8f4162fff50a31e9829d8955a196a5898240c02d194')
diff --git a/var/spack/repos/builtin/packages/perl-mozilla-ca/package.py b/var/spack/repos/builtin/packages/perl-mozilla-ca/package.py
index dcb7b7fbec..db1b539aaf 100644
--- a/var/spack/repos/builtin/packages/perl-mozilla-ca/package.py
+++ b/var/spack/repos/builtin/packages/perl-mozilla-ca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlMozillaCa(PerlPackage):
"""Mozilla's CA cert bundle in PEM format"""
- homepage = "http://search.cpan.org/~abh/Mozilla-CA-20160104/lib/Mozilla/CA.pm"
+ homepage = "https://metacpan.org/pod/Mozilla::CA"
url = "http://search.cpan.org/CPAN/authors/id/A/AB/ABH/Mozilla-CA-20160104.tar.gz"
version('20160104', sha256='27a7069a243162b65ada4194ff9d21b6ebc304af723eb5d3972fb74c11b03f2a')
diff --git a/var/spack/repos/builtin/packages/perl-mro-compat/package.py b/var/spack/repos/builtin/packages/perl-mro-compat/package.py
index 777dda8b19..96c576cd73 100644
--- a/var/spack/repos/builtin/packages/perl-mro-compat/package.py
+++ b/var/spack/repos/builtin/packages/perl-mro-compat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlMroCompat(PerlPackage):
"""Provides several utilities for dealing with method resolution order."""
- homepage = "http://search.cpan.org/~haarg/MRO-Compat-0.13/lib/MRO/Compat.pm"
+ homepage = "https://metacpan.org/pod/MRO::Compat"
url = "http://search.cpan.org/CPAN/authors/id/H/HA/HAARG/MRO-Compat-0.13.tar.gz"
version('0.13', sha256='8a2c3b6ccc19328d5579d02a7d91285e2afd85d801f49d423a8eb16f323da4f8')
diff --git a/var/spack/repos/builtin/packages/perl-namespace-clean/package.py b/var/spack/repos/builtin/packages/perl-namespace-clean/package.py
index 8434b43622..3fca3222e3 100644
--- a/var/spack/repos/builtin/packages/perl-namespace-clean/package.py
+++ b/var/spack/repos/builtin/packages/perl-namespace-clean/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlNamespaceClean(PerlPackage):
"""Keep imports and functions out of your namespace."""
- homepage = "http://search.cpan.org/~ribasushi/namespace-clean-0.27/lib/namespace/clean.pm"
+ homepage = "https://metacpan.org/pod/namespace::clean"
url = "http://search.cpan.org/CPAN/authors/id/R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz"
version('0.27', sha256='8a10a83c3e183dc78f9e7b7aa4d09b47c11fb4e7d3a33b9a12912fd22e31af9d')
diff --git a/var/spack/repos/builtin/packages/perl-net-http/package.py b/var/spack/repos/builtin/packages/perl-net-http/package.py
index 95abf9018d..2837c8bbba 100644
--- a/var/spack/repos/builtin/packages/perl-net-http/package.py
+++ b/var/spack/repos/builtin/packages/perl-net-http/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlNetHttp(PerlPackage):
"""Low-level HTTP connection (client)"""
- homepage = "http://search.cpan.org/~oalders/Net-HTTP-6.17/lib/Net/HTTP.pm"
+ homepage = "https://metacpan.org/pod/Net::HTTP"
url = "http://search.cpan.org/CPAN/authors/id/O/OA/OALDERS/Net-HTTP-6.17.tar.gz"
version('6.17', sha256='1e8624b1618dc6f7f605f5545643ebb9b833930f4d7485d4124aa2f2f26d1611')
diff --git a/var/spack/repos/builtin/packages/perl-net-scp-expect/package.py b/var/spack/repos/builtin/packages/perl-net-scp-expect/package.py
index bb56e653ed..cb508ebc3c 100644
--- a/var/spack/repos/builtin/packages/perl-net-scp-expect/package.py
+++ b/var/spack/repos/builtin/packages/perl-net-scp-expect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlNetScpExpect(PerlPackage):
"""Wrapper for scp that allows passwords via Expect."""
- homepage = "http://search.cpan.org/~rybskej/Net-SCP-Expect/Expect.pm"
+ homepage = "https://metacpan.org/pod/Net::SCP::Expect"
url = "http://search.cpan.org/CPAN/authors/id/R/RY/RYBSKEJ/Net-SCP-Expect-0.16.tar.gz"
version('0.16', sha256='97586e0ee0d61c987a7efaaffbfa551b95c426b3ef3625e046dc456fe9170591')
diff --git a/var/spack/repos/builtin/packages/perl-net-ssleay/package.py b/var/spack/repos/builtin/packages/perl-net-ssleay/package.py
index 90d622752b..81f78a9f6c 100644
--- a/var/spack/repos/builtin/packages/perl-net-ssleay/package.py
+++ b/var/spack/repos/builtin/packages/perl-net-ssleay/package.py
@@ -1,16 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 inspect
+from spack import *
+
class PerlNetSsleay(PerlPackage):
"""Perl extension for using OpenSSL"""
- homepage = "http://search.cpan.org/~mikem/Net-SSLeay-1.82/lib/Net/SSLeay.pod"
+ homepage = "https://metacpan.org/pod/Net::SSLeay"
url = "http://search.cpan.org/CPAN/authors/id/M/MI/MIKEM/Net-SSLeay-1.82.tar.gz"
version('1.85', sha256='9d8188b9fb1cae3bd791979c20554925d5e94a138d00414f1a6814549927b0c8')
diff --git a/var/spack/repos/builtin/packages/perl-number-format/package.py b/var/spack/repos/builtin/packages/perl-number-format/package.py
index 9743a62d0e..9050093576 100644
--- a/var/spack/repos/builtin/packages/perl-number-format/package.py
+++ b/var/spack/repos/builtin/packages/perl-number-format/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-object-insideout/package.py b/var/spack/repos/builtin/packages/perl-object-insideout/package.py
index 9eb1b1e216..8a8feb99b1 100644
--- a/var/spack/repos/builtin/packages/perl-object-insideout/package.py
+++ b/var/spack/repos/builtin/packages/perl-object-insideout/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-package-deprecationmanager/package.py b/var/spack/repos/builtin/packages/perl-package-deprecationmanager/package.py
index a230fb68b0..18cd35c285 100644
--- a/var/spack/repos/builtin/packages/perl-package-deprecationmanager/package.py
+++ b/var/spack/repos/builtin/packages/perl-package-deprecationmanager/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlPackageDeprecationmanager(PerlPackage):
"""Manage deprecation warnings for your distribution"""
- homepage = "http://search.cpan.org/~drolsky/Package-DeprecationManager-0.17/lib/Package/DeprecationManager.pm"
+ homepage = "https://metacpan.org/pod/Package::DeprecationManager"
url = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Package-DeprecationManager-0.17.tar.gz"
version('0.17', sha256='1d743ada482b5c9871d894966e87d4c20edc96931bb949fb2638b000ddd6684b')
diff --git a/var/spack/repos/builtin/packages/perl-package-stash-xs/package.py b/var/spack/repos/builtin/packages/perl-package-stash-xs/package.py
index fc4638e5f9..46465e0a09 100644
--- a/var/spack/repos/builtin/packages/perl-package-stash-xs/package.py
+++ b/var/spack/repos/builtin/packages/perl-package-stash-xs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlPackageStashXs(PerlPackage):
"""Faster and more correct implementation of the Package::Stash API"""
- homepage = "http://search.cpan.org/~doy/Package-Stash-XS-0.28/lib/Package/Stash/XS.pm"
+ homepage = "https://metacpan.org/pod/Package::Stash::XS"
url = "http://search.cpan.org/CPAN/authors/id/D/DO/DOY/Package-Stash-XS-0.28.tar.gz"
version('0.28', sha256='23d8c5c25768ef1dc0ce53b975796762df0d6e244445d06e48d794886c32d486')
diff --git a/var/spack/repos/builtin/packages/perl-package-stash/package.py b/var/spack/repos/builtin/packages/perl-package-stash/package.py
index d5691e3166..161d0a71f9 100644
--- a/var/spack/repos/builtin/packages/perl-package-stash/package.py
+++ b/var/spack/repos/builtin/packages/perl-package-stash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlPackageStash(PerlPackage):
"""Routines for manipulating stashes"""
- homepage = "http://search.cpan.org/~doy/Package-Stash-0.37/lib/Package/Stash.pm"
+ homepage = "https://metacpan.org/pod/Package::Stash"
url = "http://search.cpan.org/CPAN/authors/id/D/DO/DOY/Package-Stash-0.37.tar.gz"
version('0.37', sha256='06ab05388f9130cd377c0e1d3e3bafeed6ef6a1e22104571a9e1d7bfac787b2c')
diff --git a/var/spack/repos/builtin/packages/perl-padwalker/package.py b/var/spack/repos/builtin/packages/perl-padwalker/package.py
index 8722fcd46f..195b0bb0e3 100644
--- a/var/spack/repos/builtin/packages/perl-padwalker/package.py
+++ b/var/spack/repos/builtin/packages/perl-padwalker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlPadwalker(PerlPackage):
"""play with other peoples' lexical variables"""
- homepage = "http://search.cpan.org/~robin/PadWalker-2.2/PadWalker.pm"
+ homepage = "https://metacpan.org/pod/PadWalker"
url = "http://search.cpan.org/CPAN/authors/id/R/RO/ROBIN/PadWalker-2.2.tar.gz"
version('2.2', sha256='fc1df2084522e29e892da393f3719d2c1be0da022fdd89cff4b814167aecfea3')
diff --git a/var/spack/repos/builtin/packages/perl-parallel-forkmanager/package.py b/var/spack/repos/builtin/packages/perl-parallel-forkmanager/package.py
index dd6f3e8e26..3b3bd531b5 100644
--- a/var/spack/repos/builtin/packages/perl-parallel-forkmanager/package.py
+++ b/var/spack/repos/builtin/packages/perl-parallel-forkmanager/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlParallelForkmanager(PerlPackage):
"""A simple parallel processing fork manager"""
- homepage = "http://search.cpan.org/~yanick/Parallel-ForkManager/lib/Parallel/ForkManager.pm"
+ homepage = "https://metacpan.org/pod/Parallel::ForkManager"
url = "http://search.cpan.org/CPAN/authors/id/Y/YA/YANICK/Parallel-ForkManager-1.19.tar.gz"
version('1.19', sha256='f1de2e9875eeb77d65f80338905dedd522f3913822502982f805aa71cde5a472')
diff --git a/var/spack/repos/builtin/packages/perl-params-util/package.py b/var/spack/repos/builtin/packages/perl-params-util/package.py
index 4c21dff3f0..dd3f0b85f0 100644
--- a/var/spack/repos/builtin/packages/perl-params-util/package.py
+++ b/var/spack/repos/builtin/packages/perl-params-util/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlParamsUtil(PerlPackage):
"""Simple, compact and correct param-checking functions"""
- homepage = "http://search.cpan.org/~adamk/Params-Util-1.07/lib/Params/Util.pm"
+ homepage = "https://metacpan.org/pod/Params::Util"
url = "http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/Params-Util-1.07.tar.gz"
version('1.07', sha256='30f1ec3f2cf9ff66ae96f973333f23c5f558915bb6266881eac7423f52d7c76c')
diff --git a/var/spack/repos/builtin/packages/perl-params-validate/package.py b/var/spack/repos/builtin/packages/perl-params-validate/package.py
index e23f51433a..2ca31890ad 100644
--- a/var/spack/repos/builtin/packages/perl-params-validate/package.py
+++ b/var/spack/repos/builtin/packages/perl-params-validate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-parse-recdescent/package.py b/var/spack/repos/builtin/packages/perl-parse-recdescent/package.py
index 7d3668fcef..a3ebe0fafe 100644
--- a/var/spack/repos/builtin/packages/perl-parse-recdescent/package.py
+++ b/var/spack/repos/builtin/packages/perl-parse-recdescent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlParseRecdescent(PerlPackage):
"""Generate Recursive-Descent Parsers"""
- homepage = "http://search.cpan.org/~jtbraun/Parse-RecDescent-1.967015/lib/Parse/RecDescent.pm"
+ homepage = "https://metacpan.org/pod/Parse::RecDescent"
url = "http://search.cpan.org/CPAN/authors/id/J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz"
version('1.967015', sha256='1943336a4cb54f1788a733f0827c0c55db4310d5eae15e542639c9dd85656e37')
diff --git a/var/spack/repos/builtin/packages/perl-path-tiny/package.py b/var/spack/repos/builtin/packages/perl-path-tiny/package.py
index 6579aa788c..3e45e4f14a 100644
--- a/var/spack/repos/builtin/packages/perl-path-tiny/package.py
+++ b/var/spack/repos/builtin/packages/perl-path-tiny/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-pdf-api2/package.py b/var/spack/repos/builtin/packages/perl-pdf-api2/package.py
index 5f80edeb0f..3511278af7 100644
--- a/var/spack/repos/builtin/packages/perl-pdf-api2/package.py
+++ b/var/spack/repos/builtin/packages/perl-pdf-api2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlPdfApi2(PerlPackage):
"""Facilitates the creation and modification of PDF files"""
- homepage = "http://search.cpan.org/~ssimms/PDF-API2-2.033/lib/PDF/API2.pm"
+ homepage = "https://metacpan.org/pod/PDF::API2"
url = "http://search.cpan.org/CPAN/authors/id/S/SS/SSIMMS/PDF-API2-2.033.tar.gz"
version('2.033', sha256='9c0866ec1a3053f73afaca5f5cdbe6925903b4ce606f4bf4ac317731a69d27a0')
diff --git a/var/spack/repos/builtin/packages/perl-pegex/package.py b/var/spack/repos/builtin/packages/perl-pegex/package.py
index af916be11e..add63e0699 100644
--- a/var/spack/repos/builtin/packages/perl-pegex/package.py
+++ b/var/spack/repos/builtin/packages/perl-pegex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlPegex(PerlPackage):
"""Acmeist PEG Parser Framework"""
- homepage = "http://search.cpan.org/~ingy/Pegex-0.64/lib/Pegex.pod"
+ homepage = "https://metacpan.org/pod/Pegex"
url = "http://search.cpan.org/CPAN/authors/id/I/IN/INGY/Pegex-0.64.tar.gz"
version('0.64', sha256='27e00264bdafb9c2109212b9654542032617fecf7b7814915d2bdac198f067cd')
diff --git a/var/spack/repos/builtin/packages/perl-perl-unsafe-signals/package.py b/var/spack/repos/builtin/packages/perl-perl-unsafe-signals/package.py
index 36af1d8355..a4638d4ec8 100644
--- a/var/spack/repos/builtin/packages/perl-perl-unsafe-signals/package.py
+++ b/var/spack/repos/builtin/packages/perl-perl-unsafe-signals/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-perl-version/package.py b/var/spack/repos/builtin/packages/perl-perl-version/package.py
index d059adea86..b5aacdf59e 100644
--- a/var/spack/repos/builtin/packages/perl-perl-version/package.py
+++ b/var/spack/repos/builtin/packages/perl-perl-version/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlPerlVersion(PerlPackage):
"""Parse and manipulate Perl version strings"""
- homepage = "http://search.cpan.org/~bdfoy/Perl-Version-1.013/lib/Perl/Version.pm"
+ homepage = "https://metacpan.org/pod/Perl::Version"
url = "http://search.cpan.org/CPAN/authors/id/B/BD/BDFOY/Perl-Version-1.013_03.tar.gz"
version('1.013_03', sha256='6b5978f598dcdf8a304500c1b7bcdce967ca05e7b38673cebfdb4237531c2ff9')
diff --git a/var/spack/repos/builtin/packages/perl-perl4-corelibs/package.py b/var/spack/repos/builtin/packages/perl-perl4-corelibs/package.py
index 3f721225ef..21e0609979 100644
--- a/var/spack/repos/builtin/packages/perl-perl4-corelibs/package.py
+++ b/var/spack/repos/builtin/packages/perl-perl4-corelibs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-perl6-slurp/package.py b/var/spack/repos/builtin/packages/perl-perl6-slurp/package.py
index b6b4d1f154..3b37c51c6f 100644
--- a/var/spack/repos/builtin/packages/perl-perl6-slurp/package.py
+++ b/var/spack/repos/builtin/packages/perl-perl6-slurp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlPerl6Slurp(PerlPackage):
"""Perl6::Slurp - Implements the Perl 6 'slurp' built-in"""
- homepage = "http://search.cpan.org/~dconway/Perl6-Slurp-0.051005/lib/Perl6/Slurp.pm"
+ homepage = "https://metacpan.org/pod/Perl6::Slurp"
url = "http://search.cpan.org/CPAN/authors/id/D/DC/DCONWAY/Perl6-Slurp-0.051005.tar.gz"
version('0.051005', sha256='0e0ceb30495ecf64dc6cacd12113d604871104c0cfe153487b8d68bc9393d78f')
diff --git a/var/spack/repos/builtin/packages/perl-perlio-gzip/package.py b/var/spack/repos/builtin/packages/perl-perlio-gzip/package.py
index a25481e7e0..b70a2d2546 100644
--- a/var/spack/repos/builtin/packages/perl-perlio-gzip/package.py
+++ b/var/spack/repos/builtin/packages/perl-perlio-gzip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlPerlioGzip(PerlPackage):
"""Perl extension to provide a PerlIO layer to gzip/gunzip"""
- homepage = "http://search.cpan.org/~nwclark/PerlIO-gzip/gzip.pm"
+ homepage = "https://metacpan.org/pod/PerlIO::gzip"
url = "http://search.cpan.org/CPAN/authors/id/N/NW/NWCLARK/PerlIO-gzip-0.19.tar.gz"
version('0.20', sha256='4848679a3f201e3f3b0c5f6f9526e602af52923ffa471a2a3657db786bd3bdc5')
diff --git a/var/spack/repos/builtin/packages/perl-perlio-utf8-strict/package.py b/var/spack/repos/builtin/packages/perl-perlio-utf8-strict/package.py
index f34077aca8..b34da3382e 100644
--- a/var/spack/repos/builtin/packages/perl-perlio-utf8-strict/package.py
+++ b/var/spack/repos/builtin/packages/perl-perlio-utf8-strict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlPerlioUtf8Strict(PerlPackage):
"""This module provides a fast and correct UTF-8 PerlIO layer."""
- homepage = "http://search.cpan.org/~leont/PerlIO-utf8_strict/lib/PerlIO/utf8_strict.pm"
+ homepage = "https://metacpan.org/pod/PerlIO::utf8_strict"
url = "http://search.cpan.org/CPAN/authors/id/L/LE/LEONT/PerlIO-utf8_strict-0.002.tar.gz"
version('0.002', sha256='6e3163f8a2f1d276c975f21789d7a07843586d69e3e6156ffb67ef6680ceb75f')
diff --git a/var/spack/repos/builtin/packages/perl-readonly/package.py b/var/spack/repos/builtin/packages/perl-readonly/package.py
index 83c47b1af3..8ae8f85836 100644
--- a/var/spack/repos/builtin/packages/perl-readonly/package.py
+++ b/var/spack/repos/builtin/packages/perl-readonly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-regexp-common/package.py b/var/spack/repos/builtin/packages/perl-regexp-common/package.py
index 4468a61eb9..9bd3e7d9b0 100644
--- a/var/spack/repos/builtin/packages/perl-regexp-common/package.py
+++ b/var/spack/repos/builtin/packages/perl-regexp-common/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-scalar-list-utils/package.py b/var/spack/repos/builtin/packages/perl-scalar-list-utils/package.py
index a7e5af124c..cc4d242eb8 100644
--- a/var/spack/repos/builtin/packages/perl-scalar-list-utils/package.py
+++ b/var/spack/repos/builtin/packages/perl-scalar-list-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-scalar-util-numeric/package.py b/var/spack/repos/builtin/packages/perl-scalar-util-numeric/package.py
index 10047fbb8c..5eb82746f3 100644
--- a/var/spack/repos/builtin/packages/perl-scalar-util-numeric/package.py
+++ b/var/spack/repos/builtin/packages/perl-scalar-util-numeric/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-set-intervaltree/package.py b/var/spack/repos/builtin/packages/perl-set-intervaltree/package.py
index 222895ef49..9beca32318 100644
--- a/var/spack/repos/builtin/packages/perl-set-intervaltree/package.py
+++ b/var/spack/repos/builtin/packages/perl-set-intervaltree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-set-intspan/package.py b/var/spack/repos/builtin/packages/perl-set-intspan/package.py
index eb02324284..63e468cd85 100644
--- a/var/spack/repos/builtin/packages/perl-set-intspan/package.py
+++ b/var/spack/repos/builtin/packages/perl-set-intspan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-set-scalar/package.py b/var/spack/repos/builtin/packages/perl-set-scalar/package.py
index 9129381b0d..6443465a8a 100644
--- a/var/spack/repos/builtin/packages/perl-set-scalar/package.py
+++ b/var/spack/repos/builtin/packages/perl-set-scalar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-soap-lite/package.py b/var/spack/repos/builtin/packages/perl-soap-lite/package.py
index 0d79c0f9c1..291653a5d8 100644
--- a/var/spack/repos/builtin/packages/perl-soap-lite/package.py
+++ b/var/spack/repos/builtin/packages/perl-soap-lite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlSoapLite(PerlPackage):
"""Perl's Web Services Toolkit"""
- homepage = "http://search.cpan.org/~phred/SOAP-Lite-1.20/lib/SOAP/Lite.pm"
+ homepage = "https://metacpan.org/pod/SOAP::Lite"
url = "http://search.cpan.org/CPAN/authors/id/P/PH/PHRED/SOAP-Lite-1.22.tar.gz"
version('1.22', sha256='92f492f8722cb3002cd1dce11238cee5599bb5bd451a062966df45223d33693a')
diff --git a/var/spack/repos/builtin/packages/perl-star-fusion/package.py b/var/spack/repos/builtin/packages/perl-star-fusion/package.py
index 17482f6e25..019598852c 100644
--- a/var/spack/repos/builtin/packages/perl-star-fusion/package.py
+++ b/var/spack/repos/builtin/packages/perl-star-fusion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-statistics-basic/package.py b/var/spack/repos/builtin/packages/perl-statistics-basic/package.py
index 275ea7c29d..aa9fa59d65 100644
--- a/var/spack/repos/builtin/packages/perl-statistics-basic/package.py
+++ b/var/spack/repos/builtin/packages/perl-statistics-basic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-statistics-descriptive/package.py b/var/spack/repos/builtin/packages/perl-statistics-descriptive/package.py
index a4567cb9ad..df5791e373 100644
--- a/var/spack/repos/builtin/packages/perl-statistics-descriptive/package.py
+++ b/var/spack/repos/builtin/packages/perl-statistics-descriptive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlStatisticsDescriptive(PerlPackage):
"""Module of basic descriptive statistical functions."""
- homepage = "http://search.cpan.org/~shlomif/Statistics-Descriptive-3.0612/lib/Statistics/Descriptive.pm"
+ homepage = "https://metacpan.org/pod/Statistics::Descriptive"
url = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/Statistics-Descriptive-3.0612.tar.gz"
version('3.0612', sha256='772413148e5e00efb32f277c4254aa78b9112490a896208dcd0025813afdbf7a')
diff --git a/var/spack/repos/builtin/packages/perl-statistics-pca/package.py b/var/spack/repos/builtin/packages/perl-statistics-pca/package.py
index 9fd21bc7f3..6ab05b18d6 100644
--- a/var/spack/repos/builtin/packages/perl-statistics-pca/package.py
+++ b/var/spack/repos/builtin/packages/perl-statistics-pca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlStatisticsPca(PerlPackage):
"""A simple Perl implementation of Principal Component Analysis."""
- homepage = "http://search.cpan.org/~dsth/Statistics-PCA/lib/Statistics/PCA.pm"
+ homepage = "https://metacpan.org/pod/Statistics::PCA"
url = "http://search.cpan.org/CPAN/authors/id/D/DS/DSTH/Statistics-PCA-0.0.1.tar.gz"
version('0.0.1', sha256='f8adb10b00232123d103a5b49161ad46370f47fe0f752e5462a4dc15f9d46bc4')
diff --git a/var/spack/repos/builtin/packages/perl-sub-exporter-progressive/package.py b/var/spack/repos/builtin/packages/perl-sub-exporter-progressive/package.py
index d583c203a7..3b8f7e44be 100644
--- a/var/spack/repos/builtin/packages/perl-sub-exporter-progressive/package.py
+++ b/var/spack/repos/builtin/packages/perl-sub-exporter-progressive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlSubExporterProgressive(PerlPackage):
"""Progressive Sub::Exporter"""
- homepage = "http://search.cpan.org/~frew/Sub-Exporter-Progressive-0.001013/lib/Sub/Exporter/Progressive.pm"
+ homepage = "https://metacpan.org/pod/Sub::Exporter::Progressive"
url = "http://search.cpan.org/CPAN/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz"
version('0.001013', sha256='d535b7954d64da1ac1305b1fadf98202769e3599376854b2ced90c382beac056')
diff --git a/var/spack/repos/builtin/packages/perl-sub-exporter/package.py b/var/spack/repos/builtin/packages/perl-sub-exporter/package.py
index c500800417..dc9d007a2d 100644
--- a/var/spack/repos/builtin/packages/perl-sub-exporter/package.py
+++ b/var/spack/repos/builtin/packages/perl-sub-exporter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlSubExporter(PerlPackage):
"""A sophisticated exporter for custom-built routines"""
- homepage = "http://search.cpan.org/~rjbs/Sub-Exporter-0.987/lib/Sub/Exporter.pm"
+ homepage = "https://metacpan.org/pod/Sub::Exporter"
url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Sub-Exporter-0.987.tar.gz"
version('0.987', sha256='543cb2e803ab913d44272c7da6a70bb62c19e467f3b12aaac4c9523259b083d6')
diff --git a/var/spack/repos/builtin/packages/perl-sub-identify/package.py b/var/spack/repos/builtin/packages/perl-sub-identify/package.py
index 8f7cfe8e83..e7aa6f259c 100644
--- a/var/spack/repos/builtin/packages/perl-sub-identify/package.py
+++ b/var/spack/repos/builtin/packages/perl-sub-identify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlSubIdentify(PerlPackage):
"""Retrieve names of code references"""
- homepage = "http://search.cpan.org/~rgarcia/Sub-Identify-0.14/lib/Sub/Identify.pm"
+ homepage = "https://metacpan.org/pod/Sub::Identify"
url = "http://search.cpan.org/CPAN/authors/id/R/RG/RGARCIA/Sub-Identify-0.14.tar.gz"
version('0.14', sha256='068d272086514dd1e842b6a40b1bedbafee63900e5b08890ef6700039defad6f')
diff --git a/var/spack/repos/builtin/packages/perl-sub-install/package.py b/var/spack/repos/builtin/packages/perl-sub-install/package.py
index 6b3adf0925..a1fdae9568 100644
--- a/var/spack/repos/builtin/packages/perl-sub-install/package.py
+++ b/var/spack/repos/builtin/packages/perl-sub-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlSubInstall(PerlPackage):
"""Install subroutines into packages easily"""
- homepage = "http://search.cpan.org/~rjbs/Sub-Install-0.928/lib/Sub/Install.pm"
+ homepage = "https://metacpan.org/pod/Sub::Install"
url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Sub-Install-0.928.tar.gz"
version('0.928', sha256='61e567a7679588887b7b86d427bc476ea6d77fffe7e0d17d640f89007d98ef0f')
diff --git a/var/spack/repos/builtin/packages/perl-sub-name/package.py b/var/spack/repos/builtin/packages/perl-sub-name/package.py
index 3d98a9d9ec..5aad046d07 100644
--- a/var/spack/repos/builtin/packages/perl-sub-name/package.py
+++ b/var/spack/repos/builtin/packages/perl-sub-name/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlSubName(PerlPackage):
"""Name or rename a sub"""
- homepage = "http://search.cpan.org/~ether/Sub-Name-0.21/lib/Sub/Name.pm"
+ homepage = "https://metacpan.org/pod/Sub::Name"
url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Sub-Name-0.21.tar.gz"
version('0.21', sha256='bd32e9dee07047c10ae474c9f17d458b6e9885a6db69474c7a494ccc34c27117')
diff --git a/var/spack/repos/builtin/packages/perl-sub-uplevel/package.py b/var/spack/repos/builtin/packages/perl-sub-uplevel/package.py
index 9efb3f8515..f7df9b4744 100644
--- a/var/spack/repos/builtin/packages/perl-sub-uplevel/package.py
+++ b/var/spack/repos/builtin/packages/perl-sub-uplevel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlSubUplevel(PerlPackage):
"""apparently run a function in a higher stack frame"""
- homepage = "http://search.cpan.org/~dagolden/Sub-Uplevel-0.2800/lib/Sub/Uplevel.pm"
+ homepage = "https://metacpan.org/pod/Sub::Uplevel"
url = "http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz"
version('0.2800', sha256='b4f3f63b80f680a421332d8851ddbe5a8e72fcaa74d5d1d98f3c8cc4a3ece293')
diff --git a/var/spack/repos/builtin/packages/perl-svg/package.py b/var/spack/repos/builtin/packages/perl-svg/package.py
index 5f916455ef..33d02ad142 100644
--- a/var/spack/repos/builtin/packages/perl-svg/package.py
+++ b/var/spack/repos/builtin/packages/perl-svg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PerlSvg(PerlPackage):
"""Perl extension for generating Scalable Vector Graphics (SVG) documents.
"""
- homepage = "http://search.cpan.org/~manwar/SVG-2.78/lib/SVG.pm"
+ homepage = "https://metacpan.org/pod/SVG"
url = "http://search.cpan.org/CPAN/authors/id/M/MA/MANWAR/SVG-2.78.tar.gz"
version('2.78', sha256='a665c1f18c0529f3da0f4b631976eb47e0f71f6d6784ef3f44d32fd76643d6bb')
diff --git a/var/spack/repos/builtin/packages/perl-swissknife/package.py b/var/spack/repos/builtin/packages/perl-swissknife/package.py
index dcec6f3b78..ba09579fc0 100644
--- a/var/spack/repos/builtin/packages/perl-swissknife/package.py
+++ b/var/spack/repos/builtin/packages/perl-swissknife/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-sys-sigaction/package.py b/var/spack/repos/builtin/packages/perl-sys-sigaction/package.py
index d8c50b5c46..ccc88cb54e 100644
--- a/var/spack/repos/builtin/packages/perl-sys-sigaction/package.py
+++ b/var/spack/repos/builtin/packages/perl-sys-sigaction/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-task-weaken/package.py b/var/spack/repos/builtin/packages/perl-task-weaken/package.py
index 3ca09779a8..8accfc2dbe 100644
--- a/var/spack/repos/builtin/packages/perl-task-weaken/package.py
+++ b/var/spack/repos/builtin/packages/perl-task-weaken/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTaskWeaken(PerlPackage):
"""Ensure that a platform has weaken support"""
- homepage = "http://search.cpan.org/~adamk/Task-Weaken-1.04/lib/Task/Weaken.pm"
+ homepage = "https://metacpan.org/pod/Task::Weaken"
url = "http://search.cpan.org/CPAN/authors/id/A/AD/ADAMK/Task-Weaken-1.04.tar.gz"
version('1.04', sha256='67e271c55900fe7889584f911daa946e177bb60c8af44c32f4584b87766af3c4')
diff --git a/var/spack/repos/builtin/packages/perl-term-readline-gnu/package.py b/var/spack/repos/builtin/packages/perl-term-readline-gnu/package.py
index 2db6ca8d1a..da09ecd513 100644
--- a/var/spack/repos/builtin/packages/perl-term-readline-gnu/package.py
+++ b/var/spack/repos/builtin/packages/perl-term-readline-gnu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-termreadkey/package.py b/var/spack/repos/builtin/packages/perl-termreadkey/package.py
index dab402ed10..6891fa88aa 100644
--- a/var/spack/repos/builtin/packages/perl-termreadkey/package.py
+++ b/var/spack/repos/builtin/packages/perl-termreadkey/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,8 +15,8 @@ class PerlTermreadkey(PerlPackage):
"use Term::ReadKey" on any architecture and have a good likelihood of it
working."""
- homepage = "http://search.cpan.org/perldoc/Term::ReadKey"
- url = "http://www.cpan.org/authors/id/J/JS/JSTOWE/TermReadKey-2.37.tar.gz"
+ homepage = "https://metacpan.org/pod/Term::ReadKey"
+ url = "https://www.cpan.org/authors/id/J/JS/JSTOWE/TermReadKey-2.37.tar.gz"
version('2.38', sha256='5a645878dc570ac33661581fbb090ff24ebce17d43ea53fd22e105a856a47290')
version('2.37', sha256='4a9383cf2e0e0194668fe2bd546e894ffad41d556b41d2f2f577c8db682db241')
diff --git a/var/spack/repos/builtin/packages/perl-test-cleannamespaces/package.py b/var/spack/repos/builtin/packages/perl-test-cleannamespaces/package.py
index 84239d7d57..66ef54aa70 100644
--- a/var/spack/repos/builtin/packages/perl-test-cleannamespaces/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-cleannamespaces/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PerlTestCleannamespaces(PerlPackage):
"""This module lets you check your module's namespaces for imported
functions you might have forgotten to remove"""
- homepage = "http://search.cpan.org/~ether/Test-CleanNamespaces-0.22/lib/Test/CleanNamespaces.pm"
+ homepage = "https://metacpan.org/pod/Test::CleanNamespaces"
url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Test-CleanNamespaces-0.22.tar.gz"
version('0.22', sha256='862a221994dd413b2f350450f22c96f57cac78784b1aca1a8fc763fc5449aaca')
diff --git a/var/spack/repos/builtin/packages/perl-test-deep/package.py b/var/spack/repos/builtin/packages/perl-test-deep/package.py
index cb8aa6f76c..0eae96921f 100644
--- a/var/spack/repos/builtin/packages/perl-test-deep/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-deep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTestDeep(PerlPackage):
"""Extremely flexible deep comparison"""
- homepage = "http://search.cpan.org/~rjbs/Test-Deep-1.127/lib/Test/Deep.pm"
+ homepage = "https://metacpan.org/pod/Test::Deep"
url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Test-Deep-1.127.tar.gz"
version('1.127', sha256='b78cfc59c41ba91f47281e2c1d2bfc4b3b1b42bfb76b4378bc88cc37b7af7268')
diff --git a/var/spack/repos/builtin/packages/perl-test-differences/package.py b/var/spack/repos/builtin/packages/perl-test-differences/package.py
index 90d3a1f21f..e54a55a320 100644
--- a/var/spack/repos/builtin/packages/perl-test-differences/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-differences/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTestDifferences(PerlPackage):
"""Test strings and data structures and show differences if not ok"""
- homepage = "http://search.cpan.org/~dcantrell/Test-Differences-0.64/lib/Test/Differences.pm"
+ homepage = "https://metacpan.org/pod/Test::Differences"
url = "http://search.cpan.org/CPAN/authors/id/D/DC/DCANTRELL/Test-Differences-0.64.tar.gz"
version('0.64', sha256='9f459dd9c2302a0a73e2f5528a0ce7d09d6766f073187ae2c69e603adf2eb276')
diff --git a/var/spack/repos/builtin/packages/perl-test-exception/package.py b/var/spack/repos/builtin/packages/perl-test-exception/package.py
index fffa271abc..61ebd80164 100644
--- a/var/spack/repos/builtin/packages/perl-test-exception/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-exception/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTestException(PerlPackage):
"""Test exception-based code"""
- homepage = "http://search.cpan.org/~exodist/Test-Exception-0.43/lib/Test/Exception.pm"
+ homepage = "https://metacpan.org/pod/Test::Exception"
url = "http://search.cpan.org/CPAN/authors/id/E/EX/EXODIST/Test-Exception-0.43.tar.gz"
version('0.43', sha256='156b13f07764f766d8b45a43728f2439af81a3512625438deab783b7883eb533')
diff --git a/var/spack/repos/builtin/packages/perl-test-fatal/package.py b/var/spack/repos/builtin/packages/perl-test-fatal/package.py
index b2ae23ddb2..fa92751984 100644
--- a/var/spack/repos/builtin/packages/perl-test-fatal/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-fatal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTestFatal(PerlPackage):
"""Incredibly simple helpers for testing code with exceptions"""
- homepage = "http://search.cpan.org/~rjbs/Test-Fatal-0.014/lib/Test/Fatal.pm"
+ homepage = "https://metacpan.org/pod/Test::Fatal"
url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Test-Fatal-0.014.tar.gz"
version('0.014', sha256='bcdcef5c7b2790a187ebca810b0a08221a63256062cfab3c3b98685d91d1cbb0')
diff --git a/var/spack/repos/builtin/packages/perl-test-memory-cycle/package.py b/var/spack/repos/builtin/packages/perl-test-memory-cycle/package.py
index 497e0f6932..138d60dc58 100644
--- a/var/spack/repos/builtin/packages/perl-test-memory-cycle/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-memory-cycle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTestMemoryCycle(PerlPackage):
"""Check for memory leaks and circular memory references"""
- homepage = "http://search.cpan.org/~petdance/Test-Memory-Cycle-1.06/Cycle.pm"
+ homepage = "https://metacpan.org/pod/Test::Memory::Cycle"
url = "http://search.cpan.org/CPAN/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-1.06.tar.gz"
version('1.06', sha256='9d53ddfdc964cd8454cb0da4c695b6a3ae47b45839291c34cb9d8d1cfaab3202')
diff --git a/var/spack/repos/builtin/packages/perl-test-more/package.py b/var/spack/repos/builtin/packages/perl-test-more/package.py
new file mode 100644
index 0000000000..30a468174d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-test-more/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PerlTestMore(PerlPackage):
+ """Test2 is a new testing framework produced by forking Test::Builder,
+ completely refactoring it, adding many new features and capabilities."""
+
+ homepage = "https://github.com/Test-More/test-more"
+ url = "https://github.com/Test-More/test-more/archive/v1.302183.tar.gz"
+
+ version('1.302183', sha256='1356ec24c5ab3f7ad8327091ddc6ace164a27767be10325776bf9743360ab4f7')
+ version('1.302182', sha256='60727db9435cb244f6dcf4ca598c8ef39ac3035a0c36fd5c9c5b89be4f138366')
+ version('1.302181', sha256='acb3c990d646928e7571c140510d7424716d3281c4064b1787294e72b39f61ce')
+ version('1.302180', sha256='4dbed31e9434d74427b41a17ca3e0511a81ee5cb1240408c7f439c6449672a20')
diff --git a/var/spack/repos/builtin/packages/perl-test-most/package.py b/var/spack/repos/builtin/packages/perl-test-most/package.py
index 63fb0c8ea2..e8caaae4d0 100644
--- a/var/spack/repos/builtin/packages/perl-test-most/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-most/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTestMost(PerlPackage):
"""Most commonly needed test functions and features."""
- homepage = "http://search.cpan.org/~ovid/Test-Most-0.35/lib/Test/Most.pm"
+ homepage = "https://metacpan.org/pod/Test::Most"
url = "http://search.cpan.org/CPAN/authors/id/O/OV/OVID/Test-Most-0.35.tar.gz"
version('0.35', sha256='9897a6f4d751598d2ed1047e01c1554b01d0f8c96c45e7e845229782bf6f657f')
diff --git a/var/spack/repos/builtin/packages/perl-test-needs/package.py b/var/spack/repos/builtin/packages/perl-test-needs/package.py
index 5ac982eae2..28558cb850 100644
--- a/var/spack/repos/builtin/packages/perl-test-needs/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-needs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTestNeeds(PerlPackage):
"""Skip tests when modules not available."""
- homepage = "http://search.cpan.org/~haarg/Test-Needs-0.002005/lib/Test/Needs.pm"
- url = "http://search.cpan.org/CPAN/authors/id/H/HA/HAARG/Test-Needs-0.002005.tar.gz"
+ homepage = "https://metacpan.org/pod/Test::Needs"
+ url = "https://search.cpan.org/CPAN/authors/id/H/HA/HAARG/Test-Needs-0.002005.tar.gz"
version('0.002005', sha256='5a4f33983586edacdbe00a3b429a9834190140190dab28d0f873c394eb7df399')
diff --git a/var/spack/repos/builtin/packages/perl-test-output/package.py b/var/spack/repos/builtin/packages/perl-test-output/package.py
new file mode 100644
index 0000000000..10e5a2471d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-test-output/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PerlTestOutput(PerlPackage):
+ """Test::Output - Utilities to test STDOUT and STDERR messages."""
+
+ homepage = "https://github.com/briandfoy/test-output"
+ url = "https://github.com/briandfoy/test-output/archive/release-1.033.tar.gz"
+
+ version('1.033', sha256='35f0a4ef2449fc78886b4c99e1c1d23f432c2fae98538a4489439eb17223bfc2')
+ version('1.032', sha256='8b87e16b40199c9d62f07a821e1ff17a2701e42adffb281a649ed631823d5771')
+ version('1.031', sha256='1bb5847f26bee90e71b0af2a9d3a5eec4e17a63aacaf18ce5215f350961c5bf7')
+ version('1.03', sha256='cac7c9664105764f5845cb48bf7e5b2da806009d33360dab6a615c6dcfe7ca19')
+ version('1.02_01', sha256='fd762b929555b93ca7de05bbd02195c09019faf60d63e38cfca3bdf87dfadb56')
+ version('1.02', sha256='088a25e5802579e6d3e6669da4228b8897d1372a02998a6bf7435f22688d2e56')
diff --git a/var/spack/repos/builtin/packages/perl-test-requires/package.py b/var/spack/repos/builtin/packages/perl-test-requires/package.py
index ac812e33f1..69e5c21443 100644
--- a/var/spack/repos/builtin/packages/perl-test-requires/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-requires/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTestRequires(PerlPackage):
"""Checks to see if the module can be loaded."""
- homepage = "http://search.cpan.org/~tokuhirom/Test-Requires-0.10/lib/Test/Requires.pm"
+ homepage = "https://metacpan.org/pod/Test::Requires"
url = "http://search.cpan.org/CPAN/authors/id/T/TO/TOKUHIROM/Test-Requires-0.10.tar.gz"
version('0.10', sha256='2768a391d50ab94b95cefe540b9232d7046c13ee86d01859e04c044903222eb5')
diff --git a/var/spack/repos/builtin/packages/perl-test-requiresinternet/package.py b/var/spack/repos/builtin/packages/perl-test-requiresinternet/package.py
index 1300688bff..cdf2645263 100644
--- a/var/spack/repos/builtin/packages/perl-test-requiresinternet/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-requiresinternet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTestRequiresinternet(PerlPackage):
"""Easily test network connectivity"""
- homepage = "http://search.cpan.org/~mallen/Test-RequiresInternet-0.05/lib/Test/RequiresInternet.pm"
+ homepage = "https://metacpan.org/pod/Test::RequiresInternet"
url = "http://search.cpan.org/CPAN/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz"
version('0.05', sha256='bba7b32a1cc0d58ce2ec20b200a7347c69631641e8cae8ff4567ad24ef1e833e')
diff --git a/var/spack/repos/builtin/packages/perl-test-warn/package.py b/var/spack/repos/builtin/packages/perl-test-warn/package.py
index 0708909ba2..7fa8292fdb 100644
--- a/var/spack/repos/builtin/packages/perl-test-warn/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-warn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTestWarn(PerlPackage):
"""Perl extension to test methods for warnings"""
- homepage = "http://search.cpan.org/~chorny/Test-Warn-0.30/Warn.pm"
+ homepage = "https://metacpan.org/pod/Test::Warn"
url = "http://search.cpan.org/CPAN/authors/id/C/CH/CHORNY/Test-Warn-0.30.tar.gz"
version('0.30', sha256='8197555b94189d919349a03f7058f83861f145af9bee59f505bfe47562144e41')
diff --git a/var/spack/repos/builtin/packages/perl-test-warnings/package.py b/var/spack/repos/builtin/packages/perl-test-warnings/package.py
index a9385eaae6..a7c0fe1b11 100644
--- a/var/spack/repos/builtin/packages/perl-test-warnings/package.py
+++ b/var/spack/repos/builtin/packages/perl-test-warnings/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-text-csv/package.py b/var/spack/repos/builtin/packages/perl-text-csv/package.py
index 8c86a4ccb6..2a3b46b6a4 100644
--- a/var/spack/repos/builtin/packages/perl-text-csv/package.py
+++ b/var/spack/repos/builtin/packages/perl-text-csv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTextCsv(PerlPackage):
"""Comma-separated values manipulator (using XS or PurePerl)"""
- homepage = "http://search.cpan.org/~ishigaki/Text-CSV/lib/Text/CSV.pm"
+ homepage = "https://metacpan.org/pod/Text::CSV"
url = "http://search.cpan.org/CPAN/authors/id/I/IS/ISHIGAKI/Text-CSV-1.95.tar.gz"
version('1.95', sha256='7e0a11d9c1129a55b68a26aa4b37c894279df255aa63ec8341d514ab848dbf61')
diff --git a/var/spack/repos/builtin/packages/perl-text-diff/package.py b/var/spack/repos/builtin/packages/perl-text-diff/package.py
index 54b87ec592..4a6ebbf20b 100644
--- a/var/spack/repos/builtin/packages/perl-text-diff/package.py
+++ b/var/spack/repos/builtin/packages/perl-text-diff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTextDiff(PerlPackage):
"""Provides a basic set of services akin to the GNU diff utility."""
- homepage = "http://search.cpan.org/~neilb/Text-Diff-1.45/lib/Text/Diff.pm"
+ homepage = "https://metacpan.org/pod/Text::Diff"
url = "http://search.cpan.org/CPAN/authors/id/N/NE/NEILB/Text-Diff-1.45.tar.gz"
version('1.45', sha256='e8baa07b1b3f53e00af3636898bbf73aec9a0ff38f94536ede1dbe96ef086f04')
diff --git a/var/spack/repos/builtin/packages/perl-text-format/package.py b/var/spack/repos/builtin/packages/perl-text-format/package.py
index 2f38503de9..5efb63365d 100644
--- a/var/spack/repos/builtin/packages/perl-text-format/package.py
+++ b/var/spack/repos/builtin/packages/perl-text-format/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-text-simpletable/package.py b/var/spack/repos/builtin/packages/perl-text-simpletable/package.py
index b0da48547e..f417a1705b 100644
--- a/var/spack/repos/builtin/packages/perl-text-simpletable/package.py
+++ b/var/spack/repos/builtin/packages/perl-text-simpletable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTextSimpletable(PerlPackage):
"""Simple Eyecandy ASCII Tables"""
- homepage = "http://search.cpan.org/~mramberg/Text-SimpleTable/lib/Text/SimpleTable.pm"
+ homepage = "https://metacpan.org/pod/Text::SimpleTable"
url = "http://search.cpan.org/CPAN/authors/id/M/MR/MRAMBERG/Text-SimpleTable-2.04.tar.gz"
version('2.04', sha256='8d82f3140b1453b962956b7855ba288d435e7f656c3c40ced4e3e8e359ab5293')
diff --git a/var/spack/repos/builtin/packages/perl-text-soundex/package.py b/var/spack/repos/builtin/packages/perl-text-soundex/package.py
index 34c20e0f54..2e2d673257 100644
--- a/var/spack/repos/builtin/packages/perl-text-soundex/package.py
+++ b/var/spack/repos/builtin/packages/perl-text-soundex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PerlTextSoundex(PerlPackage):
pronunciation to be encoded to the same representation so
that they can be matched despite minor differences in spelling"""
- homepage = "http://search.cpan.org/~rjbs/Text-Soundex-3.05/Soundex.pm"
+ homepage = "https://metacpan.org/pod/Text::Soundex"
url = "http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Text-Soundex-3.05.tar.gz"
version('3.05', sha256='f6dd55b4280b25dea978221839864382560074e1d6933395faee2510c2db60ed')
diff --git a/var/spack/repos/builtin/packages/perl-text-unidecode/package.py b/var/spack/repos/builtin/packages/perl-text-unidecode/package.py
index e91f502234..d39e82d25b 100644
--- a/var/spack/repos/builtin/packages/perl-text-unidecode/package.py
+++ b/var/spack/repos/builtin/packages/perl-text-unidecode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTextUnidecode(PerlPackage):
"""plain ASCII transliterations of Unicode text"""
- homepage = "http://search.cpan.org/~sburke/Text-Unidecode/lib/Text/Unidecode.pm"
+ homepage = "https://metacpan.org/pod/Text::Unidecode"
url = "http://search.cpan.org/CPAN/authors/id/S/SB/SBURKE/Text-Unidecode-1.30.tar.gz"
version('1.30', sha256='6c24f14ddc1d20e26161c207b73ca184eed2ef57f08b5fb2ee196e6e2e88b1c6')
diff --git a/var/spack/repos/builtin/packages/perl-thread-queue/package.py b/var/spack/repos/builtin/packages/perl-thread-queue/package.py
new file mode 100644
index 0000000000..05d5faa44b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-thread-queue/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PerlThreadQueue(PerlPackage):
+ """Thread::Queue - Thread-safe queues.
+
+ This module provides thread-safe FIFO queues that can be accessed safely by
+ any number of threads."""
+
+ homepage = "https://metacpan.org/pod/Thread::Queue"
+ url = "https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN/Thread-Queue-3.13.tar.gz"
+
+ version('3.13', sha256='6ba3dacddd2fbb66822b4aa1d11a0a5273cd04c825cb3ff31c20d7037cbfdce8')
diff --git a/var/spack/repos/builtin/packages/perl-threads/package.py b/var/spack/repos/builtin/packages/perl-threads/package.py
new file mode 100644
index 0000000000..52253feb5b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-threads/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2021 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 PerlThreads(PerlPackage):
+ """threads - Perl interpreter-based threads"""
+
+ homepage = "https://metacpan.org/pod/threads"
+ url = "https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN/threads-2.21.tar.gz"
+
+ version('2.21', sha256='28394c98a2bcae6f20ffb8a3d965a1c194b764c650169e2050ee38dbaa10f110')
diff --git a/var/spack/repos/builtin/packages/perl-time-hires/package.py b/var/spack/repos/builtin/packages/perl-time-hires/package.py
index dd628ecbe3..8aeb3839a6 100644
--- a/var/spack/repos/builtin/packages/perl-time-hires/package.py
+++ b/var/spack/repos/builtin/packages/perl-time-hires/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTimeHires(PerlPackage):
"""High resolution alarm, sleep, gettimeofday, interval timers"""
- homepage = "http://search.cpan.org/~jhi/Time-HiRes-1.9746/HiRes.pm"
+ homepage = "https://metacpan.org/pod/Time::HiRes"
url = "http://search.cpan.org/CPAN/authors/id/J/JH/JHI/Time-HiRes-1.9746.tar.gz"
version('1.9746', sha256='89408c81bb827bc908c98eec50071e6e1158f38fa462865ecc3dc03aebf5f596')
diff --git a/var/spack/repos/builtin/packages/perl-time-piece/package.py b/var/spack/repos/builtin/packages/perl-time-piece/package.py
index ec607ecef7..883dba269c 100644
--- a/var/spack/repos/builtin/packages/perl-time-piece/package.py
+++ b/var/spack/repos/builtin/packages/perl-time-piece/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTimePiece(PerlPackage):
"""Object Oriented time objects"""
- homepage = "http://search.cpan.org/~esaym/Time-Piece/Piece.pm"
+ homepage = "https://metacpan.org/pod/Time::Piece"
url = "http://search.cpan.org/CPAN/authors/id/E/ES/ESAYM/Time-Piece-1.3203.tar.gz"
version('1.3203', sha256='6971faf6476e4f715a5b5336f0a97317f36e7880fcca6c4db7c3e38e764a6f41')
diff --git a/var/spack/repos/builtin/packages/perl-timedate/package.py b/var/spack/repos/builtin/packages/perl-timedate/package.py
index f5891903c7..7cb2bdf6a1 100644
--- a/var/spack/repos/builtin/packages/perl-timedate/package.py
+++ b/var/spack/repos/builtin/packages/perl-timedate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-tk/package.py b/var/spack/repos/builtin/packages/perl-tk/package.py
new file mode 100644
index 0000000000..a1f48a1fb2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-tk/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PerlTk(PerlPackage):
+ """Interface to Tk Graphics Library"""
+
+ homepage = "https://metacpan.org/pod/distribution/Tk/Tk.pod"
+ url = "https://cpan.metacpan.org/authors/id/S/SR/SREZIC/Tk-804.035.tar.gz"
+
+ version('804.035', sha256='4d2b80291ba6de34d8ec886a085a6dbd2b790b926035a087e99025614c5ffdd4')
+ version('804.033', sha256='84756e9b07a2555c8eecf88e63d5cbbba9b1aa97b1e71a3d4aa524a7995a88ad')
+
+ depends_on('perl-extutils-makemaker', type='build')
diff --git a/var/spack/repos/builtin/packages/perl-try-tiny/package.py b/var/spack/repos/builtin/packages/perl-try-tiny/package.py
index 7c21b12f77..79eb4220cc 100644
--- a/var/spack/repos/builtin/packages/perl-try-tiny/package.py
+++ b/var/spack/repos/builtin/packages/perl-try-tiny/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlTryTiny(PerlPackage):
"""Minimal try/catch with proper preservation of $@"""
- homepage = "http://search.cpan.org/~ether/Try-Tiny-0.28/lib/Try/Tiny.pm"
+ homepage = "https://metacpan.org/pod/Try::Tiny"
url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/Try-Tiny-0.28.tar.gz"
version('0.28', sha256='f1d166be8aa19942c4504c9111dade7aacb981bc5b3a2a5c5f6019646db8c146')
diff --git a/var/spack/repos/builtin/packages/perl-uri/package.py b/var/spack/repos/builtin/packages/perl-uri/package.py
index 057ff43d87..270ed504fc 100644
--- a/var/spack/repos/builtin/packages/perl-uri/package.py
+++ b/var/spack/repos/builtin/packages/perl-uri/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlUri(PerlPackage):
"""Uniform Resource Identifiers (absolute and relative)"""
- homepage = "http://search.cpan.org/~ether/URI-1.72/lib/URI.pm"
+ homepage = "https://metacpan.org/pod/URI"
url = "http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/URI-1.72.tar.gz"
version('1.72', sha256='35f14431d4b300de4be1163b0b5332de2d7fbda4f05ff1ed198a8e9330d40a32')
diff --git a/var/spack/repos/builtin/packages/perl-want/package.py b/var/spack/repos/builtin/packages/perl-want/package.py
index 82b926234a..5f3e21e8ca 100644
--- a/var/spack/repos/builtin/packages/perl-want/package.py
+++ b/var/spack/repos/builtin/packages/perl-want/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlWant(PerlPackage):
"""A generalisation of wantarray."""
- homepage = "http://search.cpan.org/~robin/Want/Want.pm"
+ homepage = "https://metacpan.org/pod/Want"
url = "http://search.cpan.org/CPAN/authors/id/R/RO/ROBIN/Want-0.29.tar.gz"
version('0.29', sha256='b4e4740b8d4cb783591273c636bd68304892e28d89e88abf9273b1de17f552f7')
diff --git a/var/spack/repos/builtin/packages/perl-www-robotrules/package.py b/var/spack/repos/builtin/packages/perl-www-robotrules/package.py
index e1cda90585..69066a503a 100644
--- a/var/spack/repos/builtin/packages/perl-www-robotrules/package.py
+++ b/var/spack/repos/builtin/packages/perl-www-robotrules/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-dom-xpath/package.py b/var/spack/repos/builtin/packages/perl-xml-dom-xpath/package.py
index 36408595df..4efaa15970 100644
--- a/var/spack/repos/builtin/packages/perl-xml-dom-xpath/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-dom-xpath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-dom/package.py b/var/spack/repos/builtin/packages/perl-xml-dom/package.py
index 3eeec70b70..6ed1bf7333 100644
--- a/var/spack/repos/builtin/packages/perl-xml-dom/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-dom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-filter-buffertext/package.py b/var/spack/repos/builtin/packages/perl-xml-filter-buffertext/package.py
index 28e9035034..5996757d83 100644
--- a/var/spack/repos/builtin/packages/perl-xml-filter-buffertext/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-filter-buffertext/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-libxml/package.py b/var/spack/repos/builtin/packages/perl-xml-libxml/package.py
index 3a4a21727c..1e6bffdffe 100644
--- a/var/spack/repos/builtin/packages/perl-xml-libxml/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-libxml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-libxslt/package.py b/var/spack/repos/builtin/packages/perl-xml-libxslt/package.py
index 86312928e1..9aa3b64870 100644
--- a/var/spack/repos/builtin/packages/perl-xml-libxslt/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-libxslt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py b/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py
index 91f50a70d5..1946451cac 100644
--- a/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-namespacesupport/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-parser-lite/package.py b/var/spack/repos/builtin/packages/perl-xml-parser-lite/package.py
index 6ba82d6eb9..6897d90b98 100644
--- a/var/spack/repos/builtin/packages/perl-xml-parser-lite/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-parser-lite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlXmlParserLite(PerlPackage):
"""Lightweight pure-perl XML Parser (based on regexps)"""
- homepage = "http://search.cpan.org/~phred/XML-Parser-Lite-0.721/lib/XML/Parser/Lite.pm"
+ homepage = "https://metacpan.org/pod/XML::Parser::Lite"
url = "http://search.cpan.org/CPAN/authors/id/P/PH/PHRED/XML-Parser-Lite-0.721.tar.gz"
version('0.721', sha256='5862a36ecab9db9aad021839c847e8d2f4ab5a7796c61d0fb069bb69cf7908ba')
diff --git a/var/spack/repos/builtin/packages/perl-xml-parser/package.py b/var/spack/repos/builtin/packages/perl-xml-parser/package.py
index 5f4aafa3fd..084baa5442 100644
--- a/var/spack/repos/builtin/packages/perl-xml-parser/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-parser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ from spack import *
class PerlXmlParser(PerlPackage):
"""XML::Parser - A perl module for parsing XML documents"""
- homepage = "http://search.cpan.org/perldoc/XML::Parser"
+ homepage = "https://metacpan.org/pod/XML::Parser"
url = "http://search.cpan.org/CPAN/authors/id/T/TO/TODDR/XML-Parser-2.44.tar.gz"
version('2.44', sha256='1ae9d07ee9c35326b3d9aad56eae71a6730a73a116b9fe9e8a4758b7cc033216')
diff --git a/var/spack/repos/builtin/packages/perl-xml-quote/package.py b/var/spack/repos/builtin/packages/perl-xml-quote/package.py
index d08e170109..d78d50a28b 100644
--- a/var/spack/repos/builtin/packages/perl-xml-quote/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-quote/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-regexp/package.py b/var/spack/repos/builtin/packages/perl-xml-regexp/package.py
index 1a7ad14196..f26c6700f3 100644
--- a/var/spack/repos/builtin/packages/perl-xml-regexp/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-regexp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-sax-base/package.py b/var/spack/repos/builtin/packages/perl-xml-sax-base/package.py
index 3fa83dff5c..545794631c 100644
--- a/var/spack/repos/builtin/packages/perl-xml-sax-base/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-sax-base/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-sax-writer/package.py b/var/spack/repos/builtin/packages/perl-xml-sax-writer/package.py
index ce276ea045..b14d443e64 100644
--- a/var/spack/repos/builtin/packages/perl-xml-sax-writer/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-sax-writer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-sax/package.py b/var/spack/repos/builtin/packages/perl-xml-sax/package.py
index 87646a73c1..56a175e7de 100644
--- a/var/spack/repos/builtin/packages/perl-xml-sax/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-sax/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-simple/package.py b/var/spack/repos/builtin/packages/perl-xml-simple/package.py
index eb7d89b92c..7b2ca9dcb9 100644
--- a/var/spack/repos/builtin/packages/perl-xml-simple/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-simple/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlXmlSimple(PerlPackage):
"""An API for simple XML files"""
- homepage = "http://search.cpan.org/~grantm/XML-Simple/lib/XML/Simple.pm"
+ homepage = "https://metacpan.org/pod/XML::Simple"
url = "http://search.cpan.org/CPAN/authors/id/G/GR/GRANTM/XML-Simple-2.24.tar.gz"
version('2.24', sha256='9a14819fd17c75fbb90adcec0446ceab356cab0ccaff870f2e1659205dc2424f')
diff --git a/var/spack/repos/builtin/packages/perl-xml-twig/package.py b/var/spack/repos/builtin/packages/perl-xml-twig/package.py
index f17251ea63..1593e05971 100644
--- a/var/spack/repos/builtin/packages/perl-xml-twig/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-twig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-writer/package.py b/var/spack/repos/builtin/packages/perl-xml-writer/package.py
index da5fdf7f6f..99ae3d6fe3 100644
--- a/var/spack/repos/builtin/packages/perl-xml-writer/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-writer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-xml-xpathengine/package.py b/var/spack/repos/builtin/packages/perl-xml-xpathengine/package.py
index cf514e9b52..a7f68c56a6 100644
--- a/var/spack/repos/builtin/packages/perl-xml-xpathengine/package.py
+++ b/var/spack/repos/builtin/packages/perl-xml-xpathengine/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl-yaml-libyaml/package.py b/var/spack/repos/builtin/packages/perl-yaml-libyaml/package.py
index 2e141c982b..26a1c07ee0 100644
--- a/var/spack/repos/builtin/packages/perl-yaml-libyaml/package.py
+++ b/var/spack/repos/builtin/packages/perl-yaml-libyaml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PerlYamlLibyaml(PerlPackage):
"""Perl YAML Serialization using XS and libyaml """
- homepage = "http://search.cpan.org/~tinita/YAML-LibYAML/"
+ homepage = "https://metacpan.org/pod/YAML::LibYAML"
url = "http://search.cpan.org/CPAN/authors/id/T/TI/TINITA/YAML-LibYAML-0.67.tar.gz"
version('0.67', sha256='e65a22abc912a46a10abddf3b88d806757f44f164ab3167c8f0ff6aa30648187')
diff --git a/var/spack/repos/builtin/packages/perl-yaml/package.py b/var/spack/repos/builtin/packages/perl-yaml/package.py
index 7d55b590ef..a7ab45438b 100644
--- a/var/spack/repos/builtin/packages/perl-yaml/package.py
+++ b/var/spack/repos/builtin/packages/perl-yaml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/perl/nvhpc.patch b/var/spack/repos/builtin/packages/perl/nvhpc-5.30.patch
index 5f3373bd1b..5f3373bd1b 100644
--- a/var/spack/repos/builtin/packages/perl/nvhpc.patch
+++ b/var/spack/repos/builtin/packages/perl/nvhpc-5.30.patch
diff --git a/var/spack/repos/builtin/packages/perl/nvhpc-5.32.patch b/var/spack/repos/builtin/packages/perl/nvhpc-5.32.patch
new file mode 100644
index 0000000000..655e560412
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl/nvhpc-5.32.patch
@@ -0,0 +1,42 @@
+--- a/Configure 2021-01-19 09:35:25.337234880 -0800
++++ b/Configure 2021-01-19 09:36:43.001275967 -0800
+@@ -4979,7 +4979,7 @@
+ # and usrinc directly from the compiler.
+ # Note that ccname for clang is also gcc.
+ case "$ccname" in
+- gcc)
++ XXX)
+ $echo 'extern int foo;' > try.c
+ set X `$cppstdin -v try.c 2>&1 | $awk '/^#include </,/^End of search /'|$cppfilter $grep '/include'`
+ shift
+--- a/Makefile.SH 2021-01-28 15:18:51.559057410 -0800
++++ b/Makefile.SH 2021-01-28 15:20:01.552036603 -0800
+@@ -1143,7 +1143,7 @@
+ # But also this ensures that all extensions are built before we try to scan
+ # them, which picks up Devel::PPPort's documentation.
+ pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) pod/buildtoc
+- $(RUN_PERL) -f pod/buildtoc -q
++ $(MINIPERL) -f pod/buildtoc -q
+
+ pod/perlapi.pod: pod/perlintern.pod
+
+@@ -1200,8 +1200,8 @@
+ $spitshell >>$Makefile <<EOT
+
+ install_$name install-$name: \$(INSTALL_DEPENDENCE) installperl all installman
+- \$(RUN_PERL) installperl --destdir=\$(DESTDIR) $flags \$(INSTALLFLAGS) \$(STRIPFLAGS)
+- \$(RUN_PERL) installman --destdir=\$(DESTDIR) $flags
++ \$(MINIPERL) installperl --destdir=\$(DESTDIR) $flags \$(INSTALLFLAGS) \$(STRIPFLAGS)
++ \$(MINIPERL) installman --destdir=\$(DESTDIR) $flags
+ EOT
+ fi
+
+@@ -1219,7 +1219,7 @@
+ LOCAL_PERL='$(RUN_PERL)'
+ $spitshell >>$Makefile <<'!NO!SUBS!'
+ install.perl: $(INSTALL_DEPENDENCE) installperl
+- $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
++ $(MINIPERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
+ -@test ! -s extras.lst || PATH="`pwd`:\${PATH}" PERL5LIB="`pwd`/lib" \$(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst`
+
+ !NO!SUBS!
diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py
index 2532f97160..be0cd770a4 100644
--- a/var/spack/repos/builtin/packages/perl/package.py
+++ b/var/spack/repos/builtin/packages/perl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@
# Author: Justin Too <justin@doubleotoo.com>
# Date: September 6, 2015
#
-import re
import os
+import re
from contextlib import contextmanager
from llnl.util.lang import match_predicate
@@ -24,22 +24,25 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package
"""Perl 5 is a highly capable, feature-rich programming language with over
27 years of development."""
- homepage = "http://www.perl.org"
+ homepage = "https://www.perl.org"
# URL must remain http:// so Spack can bootstrap curl
- url = "http://www.cpan.org/src/5.0/perl-5.24.1.tar.gz"
+ url = "http://www.cpan.org/src/5.0/perl-5.34.0.tar.gz"
executables = [r'^perl(-?\d+.*)?$']
- # see http://www.cpan.org/src/README.html for
+ # see https://www.cpan.org/src/README.html for
# explanation of version numbering scheme
# Development releases (odd numbers)
+ version('5.35.0', sha256='d6c0eb4763d1c73c1d18730664d43fcaf6100c31573c3b81e1504ec8f5b22708')
version('5.33.3', sha256='4f4ba0aceb932e6cf7c05674d05e51ef759d1c97f0685dee65a8f3d190f737cd')
version('5.31.7', sha256='d05c4e72128f95ef6ffad42728ecbbd0d9437290bf0f88268b51af011f26b57d')
version('5.31.4', sha256='418a7e6fe6485cc713a86d1227ef112f0bb3f80322e3b715ffe42851d97804a5')
# Maintenance releases (even numbers, recommended)
- version('5.32.0', sha256='efeb1ce1f10824190ad1cadbcccf6fdb8a5d37007d0100d2d9ae5f2b5900c0b4', preferred=True)
+ version('5.34.0', sha256='551efc818b968b05216024fb0b727ef2ad4c100f8cb6b43fab615fa78ae5be9a', preferred=True)
+ version('5.32.1', sha256='03b693901cd8ae807231b1787798cf1f2e0b8a56218d07b7da44f784a7caeb2c')
+ version('5.32.0', sha256='efeb1ce1f10824190ad1cadbcccf6fdb8a5d37007d0100d2d9ae5f2b5900c0b4')
version('5.30.3', sha256='32e04c8bb7b1aecb2742a7f7ac0eabac100f38247352a73ad7fa104e39e7406f')
version('5.30.2', sha256='66db7df8a91979eb576fac91743644da878244cf8ee152f02cd6f5cd7a731689')
version('5.30.1', sha256='bf3d25571ff1ee94186177c2cdef87867fd6a14aa5a84f0b1fb7bf798f42f964')
@@ -60,14 +63,29 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package
extendable = True
- depends_on('gdbm')
+ # Bind us below gdbm-1.20 due to API change: https://github.com/Perl/perl5/issues/18915
+ depends_on('gdbm@:1.19')
+ # :5.28 needs gdbm@:1:14.1: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295
+ depends_on('gdbm@:1.14.1', when='@:5.28.0')
depends_on('berkeley-db')
+ depends_on('bzip2')
+ depends_on('zlib')
+ # :5.24.1 needs zlib@:1.2.8: https://rt.cpan.org/Public/Bug/Display.html?id=120134
+ depends_on('zlib@:1.2.8', when='@5.20.3:5.24.1')
# there has been a long fixed issue with 5.22.0 with regard to the ccflags
# definition. It is well documented here:
# https://rt.perl.org/Public/Bug/Display.html?id=126468
patch('protect-quotes-in-ccflags.patch', when='@5.22.0')
+ # Fix the Time-Local testase http://blogs.perl.org/users/tom_wyant/2020/01/my-y2020-bug.html
+ patch('https://rt.cpan.org/Public/Ticket/Attachment/1776857/956088/0001-Fix-Time-Local-tests.patch',
+ when='@5.26.0:5.28.9',
+ sha256='8cf4302ca8b480c60ccdcaa29ec53d9d50a71d4baf469ac8c6fca00ca31e58a2')
+ patch('https://raw.githubusercontent.com/costabel/fink-distributions/master/10.9-libcxx/stable/main/finkinfo/languages/perl5162-timelocal-y2020.patch',
+ when='@:5.24.1',
+ sha256='3bbd7d6f9933d80b9571533867b444c6f8f5a1ba0575bfba1fba4db9d885a71a')
+
# Fix build on Fedora 28
# https://bugzilla.redhat.com/show_bug.cgi?id=1536752
patch('https://src.fedoraproject.org/rpms/perl/raw/004cea3a67df42e92ffdf4e9ac36d47a3c6a05a4/f/perl-5.26.1-guard_old_libcrypt_fix.patch', level=1, sha256='0eac10ed90aeb0459ad8851f88081d439a4e41978e586ec743069e8b059370ac', when='@:5.26.2')
@@ -77,7 +95,16 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package
patch('macos-11-version-check.patch', when='@5.24.1:5.32.0 platform=darwin')
# Enable builds with the NVIDIA compiler
- patch('nvhpc.patch', when='%nvhpc')
+ # The Configure script assumes some gcc specific behavior, and use
+ # the mini Perl environment to bootstrap installation.
+ patch('nvhpc-5.30.patch', when='@5.30.0:5.30.99 %nvhpc')
+ patch('nvhpc-5.32.patch', when='@5.32.0:5.32.99 %nvhpc')
+ conflicts('@5.32.0:', when='%nvhpc@:20.11',
+ msg='The NVIDIA compilers are incompatible with version 5.32 and later')
+
+ # Make sure we don't get "recompile with -fPIC" linker errors when using static libs
+ conflicts('^zlib~shared~pic', msg='Needs position independent code when using static zlib')
+ conflicts('^bzip2~shared~pic', msg='Needs position independent code when using static bzip2')
# Installing cpanm alongside the core makes it safe and simple for
# people/projects to install their own sets of perl modules. Not
@@ -261,6 +288,23 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package
# if it does not exist already.
mkdirp(module.perl_lib_dir)
+ def setup_build_environment(self, env):
+ spec = self.spec
+
+ # This is to avoid failures when using -mmacosx-version-min=11.1
+ # since not all Apple Clang compilers support that version range
+ # See https://eclecticlight.co/2020/07/21/big-sur-is-both-10-16-and-11-0-its-official/
+ if spec.satisfies('os=bigsur'):
+ env.set('SYSTEM_VERSION_COMPAT', 1)
+
+ # This is how we tell perl the locations of bzip and zlib.
+ env.set('BUILD_BZIP2', 0)
+ env.set('BZIP2_INCLUDE', spec['bzip2'].prefix.include)
+ env.set('BZIP2_LIB', spec['bzip2'].libs.directories[0])
+ env.set('BUILD_ZLIB', 0)
+ env.set('ZLIB_INCLUDE', spec['zlib'].prefix.include)
+ env.set('ZLIB_LIB', spec['zlib'].libs.directories[0])
+
@run_after('install')
def filter_config_dot_pm(self):
"""Run after install so that Config.pm records the compiler that Spack
diff --git a/var/spack/repos/builtin/packages/pestpp/package.py b/var/spack/repos/builtin/packages/pestpp/package.py
index f888c66638..9c16abb1ca 100644
--- a/var/spack/repos/builtin/packages/pestpp/package.py
+++ b/var/spack/repos/builtin/packages/pestpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py
index 4c2c3d4d49..738d8b73d7 100644
--- a/var/spack/repos/builtin/packages/petsc/package.py
+++ b/var/spack/repos/builtin/packages/petsc/package.py
@@ -1,24 +1,33 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
-class Petsc(Package):
+class Petsc(Package, CudaPackage, ROCmPackage):
"""PETSc is a suite of data structures and routines for the scalable
(parallel) solution of scientific applications modeled by partial
differential equations.
"""
- homepage = "http://www.mcs.anl.gov/petsc/index.html"
- url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-3.13.1.tar.gz"
+ homepage = "https://www.mcs.anl.gov/petsc/index.html"
+ url = "https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.15.0.tar.gz"
git = "https://gitlab.com/petsc/petsc.git"
maintainers = ['balay', 'barrysmith', 'jedbrown']
- version('develop', branch='master')
- version('xsdk-0.2.0', tag='xsdk-0.2.0')
-
+ version('main', branch='main')
+
+ version('3.15.4', sha256='1e62fb0859a12891022765d1e24660cfcd704291c58667082d81a0618d6b0047')
+ version('3.15.3', sha256='483028088020001e6f8d57b78a7fc880ed52d6693f57d627779c428f55cff73d')
+ version('3.15.2', sha256='3b10c19c69fc42e01a38132668724a01f1da56f5c353105cd28f1120cc9041d8')
+ version('3.15.1', sha256='c0ac6566e69d1d70b431e07e7598e9de95e84891c2452db1367c846b75109deb')
+ version('3.15.0', sha256='ac46db6bfcaaec8cd28335231076815bd5438f401a4a05e33736b4f9ff12e59a')
+ version('3.14.6', sha256='4de0c8820419fb15bc683b780127ff57067b62ca18749e864a87c6d7c93f1230')
+ version('3.14.5', sha256='8b8ff5c4e10468f696803b354a502d690c7d25c19d694a7e10008a302fdbb048')
+ version('3.14.4', sha256='b030969816e02c251a6d010c07a90b69ade44932f9ddfac3090ff5e95ab97d5c')
+ version('3.14.3', sha256='63ed7e3440f2bbc732a6c44aa878364f88f5016ab375d9b36d742893a049053d')
+ version('3.14.2', sha256='87a04fd05cac20a2ec47094b7d18b96e0651257d8c768ced2ef7db270ecfb9cb')
version('3.14.1', sha256='0b4681165a9af96594c794b97ac6993452ec902726679f6b50bb450f89d230ed')
version('3.14.0', sha256='a8f9caba03e0d57d8452c08505cf96be5f6949adaa266e819382162c03ddb9c5')
version('3.13.6', sha256='67ca2cf3040d08fdc51d27f660ea3157732b24c2f47aae1b19d63f62a39842c2')
@@ -70,7 +79,6 @@ class Petsc(Package):
variant('shared', default=True,
description='Enables the build of shared libraries')
variant('mpi', default=True, description='Activates MPI support')
- variant('cuda', default=False, description='Activates CUDA support')
variant('double', default=True,
description='Switches between single and double precision')
variant('complex', default=False, description='Build with complex numbers')
@@ -78,18 +86,34 @@ class Petsc(Package):
variant('metis', default=True,
description='Activates support for metis and parmetis')
+ variant('ptscotch', default=False,
+ description='Activates support for PTScotch (only parallel)')
variant('hdf5', default=True,
description='Activates support for HDF5 (only parallel)')
variant('hypre', default=True,
description='Activates support for Hypre (only parallel)')
+ variant('hpddm', default=False,
+ description='Activates support for HPDDM (only parallel)')
+ variant('mmg', default=False,
+ description='Activates support for MMG')
+ variant('parmmg', default=False,
+ description='Activates support for ParMMG (only parallel)')
+ variant('tetgen', default=False,
+ description='Activates support for Tetgen')
# Mumps is disabled by default, because it depends on Scalapack
# which is not portable to all HPC systems
variant('mumps', default=False,
description='Activates support for MUMPS (only parallel)')
variant('superlu-dist', default=True,
description='Activates support for SuperluDist (only parallel)')
+ variant('strumpack', default=False,
+ description='Activates support for Strumpack')
+ variant('scalapack', default=False,
+ description='Activates support for Scalapack')
variant('trilinos', default=False,
description='Activates support for Trilinos (only parallel)')
+ variant('mkl-pardiso', default=False,
+ description='Activates support for MKL Pardiso')
variant('int64', default=False,
description='Compile with 64bit indices')
variant('clanguage', default='C', values=('C', 'C++'),
@@ -131,6 +155,10 @@ class Petsc(Package):
description='Activates support for Saws')
variant('libyaml', default=False,
description='Activates support for YAML')
+ variant('openmp', default=False,
+ description='Activates support for openmp')
+ variant('hwloc', default=False,
+ description='Activates support for hwloc')
# 3.8.0 has a build issue with MKL - so list this conflict explicitly
conflicts('^intel-mkl', when='@3.8.0')
@@ -142,9 +170,12 @@ class Petsc(Package):
conflicts('+fftw', when='~mpi', msg=mpi_msg)
conflicts('+hdf5', when='~mpi', msg=mpi_msg)
conflicts('+hypre', when='~mpi', msg=mpi_msg)
+ conflicts('+hpddm', when='~mpi', msg=mpi_msg)
+ conflicts('+parmmg', when='~mpi', msg=mpi_msg)
conflicts('+moab', when='~mpi', msg=mpi_msg)
conflicts('+mumps', when='~mpi', msg=mpi_msg)
conflicts('+p4est', when='~mpi', msg=mpi_msg)
+ conflicts('+ptscotch', when='~mpi', msg=mpi_msg)
conflicts('+superlu-dist', when='~mpi', msg=mpi_msg)
conflicts('+trilinos', when='~mpi', msg=mpi_msg)
@@ -168,7 +199,7 @@ class Petsc(Package):
# Virtual dependencies
# Git repository needs sowing to build Fortran interface
- depends_on('sowing', when='@develop')
+ depends_on('sowing', when='@main')
depends_on('sowing@1.1.23-p1', when='@xsdk-0.2.0')
# PETSc, hypre, superlu_dist when built with int64 use 32 bit integers
@@ -177,6 +208,9 @@ class Petsc(Package):
depends_on('lapack')
depends_on('mpi', when='+mpi')
depends_on('cuda', when='+cuda')
+ depends_on('hip', when='+rocm')
+ depends_on('hipblas', when='+rocm')
+ depends_on('hipsparse', when='+rocm')
# Build dependencies
depends_on('python@2.6:2.8', type='build', when='@:3.10.99')
@@ -191,6 +225,11 @@ class Petsc(Package):
depends_on('metis@5:~int64', when='@3.8:+metis~int64')
depends_on('metis@5:+int64', when='@3.8:+metis+int64')
+ # PTScotch: Currently disable Parmetis wrapper, this means
+ # nested disection won't be available thought PTScotch
+ depends_on('scotch+esmumps~metis+mpi', when='+ptscotch')
+ depends_on('scotch+int64', when='+ptscotch+int64')
+
depends_on('hdf5@:1.10.99+mpi', when='@:3.12.99+hdf5+mpi')
depends_on('hdf5+mpi', when='@3.13:+hdf5+mpi')
depends_on('hdf5+mpi', when='+exodusii+mpi')
@@ -198,8 +237,12 @@ class Petsc(Package):
depends_on('zlib', when='+hdf5')
depends_on('zlib', when='+libpng')
depends_on('zlib', when='+p4est')
- depends_on('parmetis', when='+metis+mpi')
+ depends_on('parmetis+int64', when='+metis+mpi+int64')
+ depends_on('parmetis~int64', when='+metis+mpi~int64')
depends_on('valgrind', when='+valgrind')
+ depends_on('mmg', when='+mmg')
+ depends_on('parmmg', when='+parmmg')
+ depends_on('tetgen+pic', when='+tetgen')
# Hypre does not support complex numbers.
# Also PETSc prefer to build it without internal superlu, likely due to
# conflict in headers see
@@ -208,12 +251,14 @@ class Petsc(Package):
depends_on('hypre@:2.13.99+mpi~internal-superlu+int64', when='@:3.8.99+hypre+mpi~complex+int64')
depends_on('hypre@2.14:2.18.2+mpi~internal-superlu~int64', when='@3.9:3.13.99+hypre+mpi~complex~int64')
depends_on('hypre@2.14:2.18.2+mpi~internal-superlu+int64', when='@3.9:3.13.99+hypre+mpi~complex+int64')
- depends_on('hypre@2.14:+mpi~internal-superlu~int64', when='@3.14:+hypre+mpi~complex~int64')
- depends_on('hypre@2.14:+mpi~internal-superlu+int64', when='@3.14:+hypre+mpi~complex+int64')
+ depends_on('hypre@2.14:2.22.0+mpi~internal-superlu~int64', when='@3.14:3.15.99+hypre+mpi~complex~int64')
+ depends_on('hypre@2.14:2.22.0+mpi~internal-superlu+int64', when='@3.14:3.15.99+hypre+mpi~complex+int64')
+ depends_on('hypre@2.14:+mpi~internal-superlu~int64', when='@3.16:+hypre+mpi~complex~int64')
+ depends_on('hypre@2.14:+mpi~internal-superlu+int64', when='@3.16:+hypre+mpi~complex+int64')
depends_on('hypre@xsdk-0.2.0+mpi~internal-superlu+int64', when='@xsdk-0.2.0+hypre+mpi~complex+int64')
depends_on('hypre@xsdk-0.2.0+mpi~internal-superlu~int64', when='@xsdk-0.2.0+hypre+mpi~complex~int64')
- depends_on('hypre@develop+mpi~internal-superlu+int64', when='@develop+hypre+mpi~complex+int64')
- depends_on('hypre@develop+mpi~internal-superlu~int64', when='@develop+hypre+mpi~complex~int64')
+ depends_on('hypre@develop+mpi~internal-superlu+int64', when='@main+hypre+mpi~complex+int64')
+ depends_on('hypre@develop+mpi~internal-superlu~int64', when='@main+hypre+mpi~complex~int64')
depends_on('superlu-dist@:4.3~int64', when='@3.4.4:3.6.4+superlu-dist+mpi~int64')
depends_on('superlu-dist@:4.3+int64', when='@3.4.4:3.6.4+superlu-dist+mpi+int64')
depends_on('superlu-dist@5.0.0:5.1.3~int64', when='@3.7:3.7.99+superlu-dist+mpi~int64')
@@ -228,13 +273,21 @@ class Petsc(Package):
depends_on('superlu-dist@6.1:+int64', when='@3.13.0:+superlu-dist+mpi+int64')
depends_on('superlu-dist@xsdk-0.2.0~int64', when='@xsdk-0.2.0+superlu-dist+mpi~int64')
depends_on('superlu-dist@xsdk-0.2.0+int64', when='@xsdk-0.2.0+superlu-dist+mpi+int64')
- depends_on('superlu-dist@develop~int64', when='@develop+superlu-dist+mpi~int64')
- depends_on('superlu-dist@develop+int64', when='@develop+superlu-dist+mpi+int64')
- depends_on('mumps+mpi~int64', when='+mumps')
+ depends_on('superlu-dist@develop~int64', when='@main+superlu-dist+mpi~int64')
+ depends_on('superlu-dist@develop+int64', when='@main+superlu-dist+mpi+int64')
+ depends_on('strumpack', when='+strumpack')
+ depends_on('scalapack', when='+strumpack')
+ depends_on('metis', when='+strumpack')
+ depends_on('scalapack', when='+scalapack')
+ depends_on('mumps+mpi~int64~metis~parmetis~openmp', when='+mumps~metis~openmp')
+ depends_on('mumps+mpi~int64+metis+parmetis~openmp', when='+mumps+metis~openmp')
+ depends_on('mumps+mpi~int64~metis~parmetis+openmp', when='+mumps~metis+openmp')
+ depends_on('mumps+mpi~int64+metis+parmetis+openmp', when='+mumps+metis+openmp')
depends_on('scalapack', when='+mumps')
depends_on('trilinos@12.6.2:+mpi', when='@3.7.0:+trilinos+mpi')
depends_on('trilinos@xsdk-0.2.0+mpi', when='@xsdk-0.2.0+trilinos+mpi')
- depends_on('trilinos@develop+mpi', when='@xdevelop+trilinos+mpi')
+ depends_on('trilinos@develop+mpi', when='@main+trilinos+mpi')
+ depends_on('mkl', when='+mkl-pardiso')
depends_on('fftw+mpi', when='+fftw+mpi')
depends_on('suite-sparse', when='+suite-sparse')
depends_on('libx11', when='+X')
@@ -253,10 +306,14 @@ class Petsc(Package):
depends_on('p4est+mpi', when='+p4est+mpi')
depends_on('saws', when='+saws')
depends_on('libyaml', when='+libyaml')
+ depends_on('hwloc', when='+hwloc')
+ # Using the following tarballs
+ # * petsc-3.12 (and older) - includes docs
+ # * petsc-lite-3.13, petsc-lite-3.14 (without docs)
+ # * petsc-3.15 and newer (without docs)
def url_for_version(self, version):
- if version >= Version('3.13.0'):
- # petsc-lite tarballs are smaller by skipping docs
+ if self.spec.satisfies('@3.13.0:3.14.6'):
return "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-{0}.tar.gz".format(version)
else:
return "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-{0}.tar.gz".format(version)
@@ -299,6 +356,7 @@ class Petsc(Package):
'complex' if '+complex' in spec else 'real'),
'--with-shared-libraries=%s' % ('1' if '+shared' in spec else '0'),
'--with-debugging=%s' % ('1' if '+debug' in spec else '0'),
+ '--with-openmp=%s' % ('1' if '+openmp' in spec else '0'),
'--with-64-bit-indices=%s' % ('1' if '+int64' in spec else '0')
])
if '+debug' not in spec:
@@ -333,102 +391,110 @@ class Petsc(Package):
else:
options.append('--with-clanguage=C')
- # PETSc depends on scalapack when '+mumps' (see depends())
- # help PETSc pick up Scalapack from MKL
- if spec.satisfies('+mumps'):
- scalapack = spec['scalapack'].libs
- options.extend([
- '--with-scalapack-lib=%s' % scalapack.joined(),
- '--with-scalapack=1'
- ])
- else:
- options.extend([
- '--with-scalapack=0'
- ])
-
# Activates library support if needed (i.e. direct dependency)
- if '^libjpeg-turbo' in spec:
- jpeg_library = 'libjpeg-turbo'
- else:
- jpeg_library = 'libjpeg'
-
- for library in ('cuda', 'metis', 'hypre', 'parmetis', 'mumps',
- 'trilinos', 'fftw', 'valgrind', 'gmp', 'libpng',
- 'giflib', 'mpfr', 'netcdf-c', 'parallel-netcdf',
- 'moab', 'random123', 'exodusii', 'cgns', 'memkind',
- 'p4est', 'saws', 'libyaml', jpeg_library):
+ jpeg_sp = spec['jpeg'].name if 'jpeg' in spec else 'jpeg'
+ scalapack_sp = spec['scalapack'].name if 'scalapack' in spec else 'scalapack'
+
+ # tuple format (spacklibname, petsclibname, useinc, uselib)
+ # default: 'gmp', => ('gmp', 'gmp', True, True)
+ # any other combination needs a full tuple
+ # if not (useinc || uselib): usedir - i.e (False, False)
+ for library in (
+ ('cuda', 'cuda', False, False),
+ ('hip', 'hip', False, False),
+ 'metis',
+ 'hypre',
+ 'parmetis',
+ ('superlu-dist', 'superlu_dist', True, True),
+ ('scotch', 'ptscotch', True, True),
+ ('suite-sparse:umfpack,klu,cholmod,btf,ccolamd,colamd,camd,amd, \
+ suitesparseconfig', 'suitesparse', True, True),
+ ('hdf5:hl,fortran', 'hdf5', True, True),
+ 'zlib',
+ 'mumps',
+ ('trilinos', 'trilinos', False, False),
+ ('fftw:mpi', 'fftw', True, True),
+ ('valgrind', 'valgrind', False, False),
+ 'gmp',
+ 'libpng',
+ ('giflib', 'giflib', False, False),
+ 'mpfr',
+ ('netcdf-c', 'netcdf', True, True),
+ ('parallel-netcdf', 'pnetcdf', True, True),
+ ('moab', 'moab', False, False),
+ ('random123', 'random123', False, False),
+ 'exodusii',
+ 'cgns',
+ 'memkind',
+ 'p4est',
+ ('saws', 'saws', False, False),
+ ('libyaml', 'yaml', True, True),
+ 'hwloc',
+ (jpeg_sp, 'libjpeg', True, True),
+ (scalapack_sp, 'scalapack', False, True),
+ 'strumpack',
+ 'mmg',
+ 'parmmg',
+ ('tetgen', 'tetgen', False, False),
+ ):
# Cannot check `library in spec` because of transitive deps
# Cannot check variants because parmetis keys on +metis
- library_requested = library in spec.dependencies_dict()
+ if isinstance(library, tuple):
+ spacklibname, petsclibname, useinc, uselib = library
+ else:
+ spacklibname = library
+ petsclibname = library
+ useinc = True
+ uselib = True
+
+ library_requested = spacklibname.split(':')[0] in spec.dependencies_dict()
options.append(
'--with-{library}={value}'.format(
- library=('libjpeg' if library == 'libjpeg-turbo'
- else 'netcdf' if library == 'netcdf-c'
- else 'pnetcdf' if library == 'parallel-netcdf'
- else 'yaml' if library == 'libyaml'
- else library),
+ library=petsclibname,
value=('1' if library_requested else '0'))
)
if library_requested:
- options.append(
- '--with-{library}-dir={path}'.format(
- library=('libjpeg' if library == 'libjpeg-turbo'
- else 'netcdf' if library == 'netcdf-c'
- else 'pnetcdf' if library == 'parallel-netcdf'
- else 'yaml' if library == 'libyaml'
- else library), path=spec[library].prefix)
- )
-
- # PETSc does not pick up SuperluDist from the dir as they look for
- # superlu_dist_4.1.a
+ if useinc or uselib:
+ if useinc:
+ options.append(
+ '--with-{library}-include={value}'.format(
+ library=petsclibname,
+ value=spec[spacklibname].prefix.include)
+ )
+ if uselib:
+ options.append(
+ '--with-{library}-lib={value}'.format(
+ library=petsclibname,
+ value=spec[spacklibname].libs.joined())
+ )
+ else:
+ options.append(
+ '--with-{library}-dir={path}'.format(
+ library=petsclibname, path=spec[spacklibname].prefix)
+ )
+
+ if '+cuda' in spec:
+ if not spec.satisfies('cuda_arch=none'):
+ cuda_arch = spec.variants['cuda_arch'].value
+ if spec.satisfies('@3.14:'):
+ options.append('--with-cuda-gencodearch={0}'.format(cuda_arch[0]))
+ else:
+ options.append('CUDAFLAGS=-gencode arch=compute_{0},code=sm_{0}'
+ .format(cuda_arch[0]))
+
if 'superlu-dist' in spec:
if spec.satisfies('@3.10.3:'):
options.append('--with-cxx-dialect=C++11')
- options.extend([
- '--with-superlu_dist-include=%s' %
- spec['superlu-dist'].prefix.include,
- '--with-superlu_dist-lib=%s' %
- join_path(spec['superlu-dist'].prefix.lib,
- 'libsuperlu_dist.a'),
- '--with-superlu_dist=1'
- ])
- else:
+
+ if '+mkl-pardiso' in spec:
options.append(
- '--with-superlu_dist=0'
+ '--with-mkl_pardiso-dir=%s' % spec['mkl'].prefix
)
- # SuiteSparse: configuring using '--with-suitesparse-dir=...' has some
- # issues, so specify directly the include path and the libraries.
- if '+suite-sparse' in spec:
- ss_spec = 'suite-sparse:umfpack,klu,cholmod,btf,ccolamd,colamd,' \
- 'camd,amd,suitesparseconfig'
- options.extend([
- '--with-suitesparse-include=%s' % spec[ss_spec].prefix.include,
- '--with-suitesparse-lib=%s' % spec[ss_spec].libs.joined(),
- '--with-suitesparse=1'
- ])
- else:
- options.append('--with-suitesparse=0')
-
- # hdf5: configure detection is convoluted for pflotran
- if '+hdf5' in spec:
- options.extend([
- '--with-hdf5-include=%s' % spec['hdf5'].prefix.include,
- '--with-hdf5-lib=%s' % spec['hdf5:hl,fortran'].libs.joined(),
- '--with-hdf5=1'
- ])
- else:
- options.append('--with-hdf5=0')
-
- # zlib: configuring using '--with-zlib-dir=...' has some issues with
- # SuiteSparse so specify directly the include path and the libraries.
- if 'zlib' in spec:
- options.extend([
- '--with-zlib-include=%s' % spec['zlib'].prefix.include,
- '--with-zlib-lib=%s' % spec['zlib'].libs.joined(),
- '--with-zlib=1'
- ])
- else:
- options.append('--with-zlib=0')
+
+ # For the moment, HPDDM does not work as a dependency
+ # using download instead
+ if '+hpddm' in spec:
+ options.append('--download-hpddm')
python('configure', '--prefix=%s' % prefix, *options)
@@ -436,47 +502,9 @@ class Petsc(Package):
make('MAKE_NP=%s' % make_jobs, parallel=False)
make("install")
- # solve Poisson equation in 2D to make sure nothing is broken:
- if ('mpi' in spec) and self.run_tests:
- with working_dir('src/ksp/ksp/examples/tutorials'):
- env['PETSC_DIR'] = self.prefix
- cc = Executable(spec['mpi'].mpicc)
- cc('ex50.c', '-I%s' % prefix.include, '-L%s' % prefix.lib,
- '-lpetsc', '-lm', '-o', 'ex50')
- run = Executable(join_path(spec['mpi'].prefix.bin, 'mpirun'))
- # For Spectrum MPI, if -np is omitted, the default behavior is
- # to assign one process per process slot, where the default
- # process slot allocation is one per core. On systems with
- # many cores, the number of processes can exceed the size of
- # the grid specified when the testcase is run and the test case
- # fails. Specify a small number of processes to prevent
- # failure.
- # For more information about Spectrum MPI invocation, see URL
- # https://www.ibm.com/support/knowledgecenter/en/SSZTET_10.1.0/smpi02/smpi02_mpirun_options.html
- if ('spectrum-mpi' in spec):
- run.add_default_arg('-np')
- run.add_default_arg('4')
- run('ex50', '-da_grid_x', '4', '-da_grid_y', '4')
- if 'superlu-dist' in spec:
- run('ex50',
- '-da_grid_x', '4',
- '-da_grid_y', '4',
- '-pc_type', 'lu',
- '-pc_factor_mat_solver_package', 'superlu_dist')
-
- if 'mumps' in spec:
- run('ex50',
- '-da_grid_x', '4',
- '-da_grid_y', '4',
- '-pc_type', 'lu',
- '-pc_factor_mat_solver_package', 'mumps')
-
- if 'hypre' in spec:
- run('ex50',
- '-da_grid_x', '4',
- '-da_grid_y', '4',
- '-pc_type', 'hypre',
- '-pc_hypre_type', 'boomeramg')
+ if self.run_tests:
+ make('check PETSC_ARCH="" PETSC_DIR={0}'.format(self.prefix),
+ parallel=False)
def setup_build_environment(self, env):
# configure fails if these env vars are set outside of Spack
@@ -499,3 +527,49 @@ class Petsc(Package):
or None # return None to indicate failure
# For the 'libs' property - use the default handler.
+
+ @run_after('install')
+ def setup_build_tests(self):
+ """Copy the build test files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources('src/ksp/ksp/tutorials')
+
+ def test(self):
+ # solve Poisson equation in 2D to make sure nothing is broken:
+ spec = self.spec
+ env['PETSC_DIR'] = self.prefix
+ env['PETSC_ARCH'] = ''
+ if ('+mpi' in spec):
+ runexe = Executable(join_path(spec['mpi'].prefix.bin,
+ 'mpiexec')).command
+ runopt = ['-n', '4']
+ else:
+ runexe = Executable(join_path(self.prefix,
+ 'lib/petsc/bin/petsc-mpiexec.uni')).command
+ runopt = ['-n', '1']
+ w_dir = join_path(self.install_test_root, 'src/ksp/ksp/tutorials')
+ with working_dir(w_dir):
+ testexe = ['ex50', '-da_grid_x', '4', '-da_grid_y', '4']
+ testdict = {
+ None: [],
+ '+superlu-dist':
+ ['-pc_type', 'lu', '-pc_factor_mat_solver_type', 'superlu_dist'],
+ '+mumps':
+ ['-pc_type', 'lu', '-pc_factor_mat_solver_type', 'mumps'],
+ '+hypre':
+ ['-pc_type', 'hypre', '-pc_hypre_type', 'boomeramg'],
+ '+mkl-pardiso':
+ ['-pc_type', 'lu', '-pc_factor_mat_solver_type', 'mkl_pardiso'],
+ }
+ make('ex50', parallel=False)
+ for feature, featureopt in testdict.items():
+ if not feature or feature in spec:
+ self.run_test(runexe, runopt + testexe + featureopt)
+ if '+cuda' in spec:
+ make('ex7', parallel=False)
+ testexe = ['ex7', '-mat_type', 'aijcusparse',
+ '-sub_pc_factor_mat_solver_type', 'cusparse',
+ '-sub_ksp_type', 'preonly', '-sub_pc_type', 'ilu',
+ '-use_gpu_aware_mpi', '0']
+ self.run_test(runexe, runopt + testexe)
+ make('clean', parallel=False)
diff --git a/var/spack/repos/builtin/packages/pexsi/package.py b/var/spack/repos/builtin/packages/pexsi/package.py
index aef5546c9f..e3803b8b98 100644
--- a/var/spack/repos/builtin/packages/pexsi/package.py
+++ b/var/spack/repos/builtin/packages/pexsi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pfapack/package.py b/var/spack/repos/builtin/packages/pfapack/package.py
new file mode 100644
index 0000000000..73c83aac92
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pfapack/package.py
@@ -0,0 +1,66 @@
+# Copyright 2013-2021 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 Pfapack(MakefilePackage):
+ """A library for numerically computing the Pfaffian of
+ a real or complex skew-symmetric matrix. This is based on
+ computing the tridiagonal form of the matrix under
+ unitary congruence transformations."""
+
+ homepage = "https://michaelwimmer.org/downloads.html"
+ url = "https://michaelwimmer.org/pfapack.tgz"
+
+ version('2014-09-17', sha256='b68fc35dda23ee24c358641b1a92ef701c4ffa0b3f0b0808b24e68afeb58ef07')
+
+ parallel = False
+
+ depends_on('lapack')
+ depends_on('blas')
+ depends_on('python', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+
+ def edit(self, spec, prefix):
+ filter_file('FORT =.*', 'FORT = {0}'.format(spack_fc),
+ join_path('fortran', 'makefile'))
+ filter_file('CC =.*', 'CC = {0}'.format(spack_cc),
+ join_path('c_interface', 'makefile'))
+
+ def build(self, spec, prefix):
+ source_directory = self.stage.source_path
+ with working_dir(join_path(source_directory, 'fortran')):
+ make()
+ with working_dir(join_path(source_directory, 'c_interface')):
+ make()
+
+ def install(self, spec, prefix):
+ source_directory = self.stage.source_path
+ mkdirp(prefix.fortran)
+ install(join_path(source_directory, 'fortran', 'libpfapack.a'),
+ prefix.fortran)
+ install(join_path(source_directory, 'fortran', '*.mod'),
+ prefix.fortran)
+ install_tree(join_path(source_directory, 'fortran', 'EXAMPLES'),
+ prefix.fortran.EXAMPLES)
+ install_tree(join_path(source_directory, 'fortran', 'TESTING'),
+ prefix.fortran.TESTING)
+ mkdirp(prefix.c_interface)
+ install(join_path(source_directory, 'c_interface', 'libcpfapack.a'),
+ prefix.c_interface)
+ install(join_path(source_directory, 'c_interface', 'fortran.h'),
+ prefix.c_interface)
+ install(join_path(source_directory, 'c_interface',
+ 'fortran_pfapack.h'),
+ prefix.c_interface)
+ install(join_path(source_directory, 'c_interface', 'pfapack.h'),
+ prefix.c_interface)
+ install_tree(join_path(source_directory, 'c_interface', 'EXAMPLES'),
+ prefix.c_interface.EXAMPLES)
+ install_tree(join_path(source_directory, 'c_interface', 'TESTING'),
+ prefix.c_interface.TESTING)
+ install_tree(join_path(source_directory, 'python'), prefix.python)
diff --git a/var/spack/repos/builtin/packages/pfft/package.py b/var/spack/repos/builtin/packages/pfft/package.py
index 0dcbd0bb71..3398abcdd0 100644
--- a/var/spack/repos/builtin/packages/pfft/package.py
+++ b/var/spack/repos/builtin/packages/pfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pflask/package.py b/var/spack/repos/builtin/packages/pflask/package.py
index bd2274eeae..f104bbe269 100644
--- a/var/spack/repos/builtin/packages/pflask/package.py
+++ b/var/spack/repos/builtin/packages/pflask/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pflotran/package.py b/var/spack/repos/builtin/packages/pflotran/package.py
index fd300f9285..7fedce9edf 100644
--- a/var/spack/repos/builtin/packages/pflotran/package.py
+++ b/var/spack/repos/builtin/packages/pflotran/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Pflotran(AutotoolsPackage):
subsurface flow and reactive transport code.
"""
- homepage = "http://www.pflotran.org"
+ homepage = "https://www.pflotran.org"
git = "https://bitbucket.org/pflotran/pflotran.git"
maintainers = ['ghammond86', 'balay']
@@ -22,15 +22,13 @@ class Pflotran(AutotoolsPackage):
version('xsdk-0.5.0', commit='98a959c591b72f73373febf5f9735d2c523b4c20')
version('xsdk-0.4.0', commit='c851cbc94fc56a32cfdb0678f3c24b9936a5584e')
version('xsdk-0.3.0', branch='release/xsdk-0.3.0')
- version('xsdk-0.2.0', commit='4da763c6136df57caff43f98c926433958cfdea6')
depends_on('mpi')
depends_on('hdf5@1.8.12:+mpi+fortran+hl')
- depends_on('petsc@develop:+hdf5+metis', when='@develop')
+ depends_on('petsc@main:+hdf5+metis', when='@develop')
depends_on('petsc@3.14:+hdf5+metis', when='@xsdk-0.6.0')
depends_on('petsc@3.12:+hdf5+metis', when='@xsdk-0.5.0')
depends_on('petsc@3.10:+hdf5+metis', when='@xsdk-0.4.0')
- depends_on('petsc@xsdk-0.2.0+hdf5+metis', when='@xsdk-0.2.0')
depends_on('petsc@3.8.0:+hdf5+metis', when='@xsdk-0.3.0')
@property
diff --git a/var/spack/repos/builtin/packages/pfunit/package.py b/var/spack/repos/builtin/packages/pfunit/package.py
index 65d8b67365..16738f4d2f 100644
--- a/var/spack/repos/builtin/packages/pfunit/package.py
+++ b/var/spack/repos/builtin/packages/pfunit/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import glob
+
#
from spack import *
-import glob
class Pfunit(CMakePackage):
@@ -17,6 +18,9 @@ class Pfunit(CMakePackage):
maintainers = ['citibeth']
+ version('4.1.14', sha256='bada2be8d7e69ca1f16209ba92293fa1c06748b78534d71b24b2c825450a495f')
+ version('4.1.13', sha256='f388e08c67c51cbfd9f3a3658baac912b5506d2fc651410cd34a21260c309630')
+ version('4.1.12', sha256='7d71b0fb996497fe9a20eb818d02d596cd0d3cded1033a89a9081fbd925c68f2')
version('4.1.11', sha256='16160bac223aaa3ed2b27e30287d25fdaec3cf6f2c570ebd8d61196e6aa6180f')
version('4.1.10', sha256='051c35ad9678002943f4a4f2ab532a6b44de86ca414751616f93e69f393f5373')
version('3.3.3', sha256='9f673b58d20ad23148040a100227b4f876458a9d9aee0f0d84a5f0eef209ced5')
@@ -46,7 +50,6 @@ class Pfunit(CMakePackage):
# See https://github.com/Goddard-Fortran-Ecosystem/pFUnit/pull/179
conflicts("+shared", when="@4.0.0:")
conflicts("+use_comm_world", when="~mpi")
- conflicts('+mpi', when='@:3.99.99 %gcc@10.0.0:')
patch("mpi-test.patch", when="@:3.99.99 +use_comm_world")
def patch(self):
@@ -69,16 +72,19 @@ class Pfunit(CMakePackage):
spec = self.spec
args = [
'-DPYTHON_EXECUTABLE=%s' % spec['python'].command,
- '-DBUILD_SHARED=%s' % ('YES' if '+shared' in spec else 'NO'),
+ self.define_from_variant('BUILD_SHARED', 'shared'),
'-DCMAKE_Fortran_MODULE_DIRECTORY=%s' % spec.prefix.include,
- '-DBUILD_DOCS=%s' % ('YES' if '+docs' in spec else 'NO'),
- '-DOPENMP=%s' % ('YES' if '+openmp' in spec else 'NO'),
+ self.define_from_variant('BUILD_DOCS', 'docs'),
+ self.define_from_variant('OPENMP', 'openmp'),
'-DMAX_RANK=%s' % spec.variants['max_array_rank'].value]
+ if self.spec.satisfies('%gcc@10:'):
+ args.append('-DCMAKE_Fortran_FLAGS_DEBUG=-g -O2 -fallow-argument-mismatch')
+
if spec.satisfies('@4.0.0:'):
args.append('-DSKIP_MPI=%s' % ('YES' if '~mpi' in spec else 'NO'))
else:
- args.append('-DMPI=%s' % ('YES' if '+mpi' in spec else 'NO'))
+ args.append(self.define_from_variant('MPI', 'mpi'))
if spec.satisfies('+mpi'):
args.extend(['-DMPI_USE_MPIEXEC=YES',
@@ -100,7 +106,7 @@ class Pfunit(CMakePackage):
def compiler_vendor(self):
vendors = {'%gcc': 'GNU', '%clang': 'GNU', '%intel': 'Intel',
- '%pgi': 'PGI', '%nag': 'NAG'}
+ '%pgi': 'PGI', '%nag': 'NAG', '%cce': 'Cray'}
for key, value in vendors.items():
if self.spec.satisfies(key):
return value
diff --git a/var/spack/repos/builtin/packages/pgdspider/package.py b/var/spack/repos/builtin/packages/pgdspider/package.py
index 3c6f7ab1f3..89ec76480a 100644
--- a/var/spack/repos/builtin/packages/pgdspider/package.py
+++ b/var/spack/repos/builtin/packages/pgdspider/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Pgdspider(Package):
""""PGDSpider is a powerful automated data conversion tool for population
diff --git a/var/spack/repos/builtin/packages/pgi/package.py b/var/spack/repos/builtin/packages/pgi/package.py
index 1ad53bb20b..fefbfec885 100644
--- a/var/spack/repos/builtin/packages/pgi/package.py
+++ b/var/spack/repos/builtin/packages/pgi/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
from spack.util.prefix import Prefix
-import os
class Pgi(Package):
@@ -16,9 +17,10 @@ class Pgi(Package):
account on the PGI homepage and download PGI yourself. Spack will search
your current directory for the download tarball. Alternatively, add this
file to a mirror so that Spack can find it. For instructions on how to
- set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+ set up a mirror, see https://spack.readthedocs.io/en/latest/mirrors.html"""
- homepage = "http://www.pgroup.com/"
+ homepage = "https://www.pgroup.com/"
+ manual_download = True
version('20.4', sha256='f3ecc2104b304cd5c8b20e3ffdb5da88f2b5f7cc148e8daf00561928a5cbbc2e')
version('19.10', sha256='ac9db73ba80a66fe3bc875f63aaa9e16f54674a4e88b25416432430ba8cf203d')
diff --git a/var/spack/repos/builtin/packages/pgplot/g77_gcc.conf.patch b/var/spack/repos/builtin/packages/pgplot/g77_gcc.conf.patch
new file mode 100644
index 0000000000..e41e387cad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pgplot/g77_gcc.conf.patch
@@ -0,0 +1,55 @@
+diff -ruN a/sys_linux/g77_gcc.conf b/sys_linux/g77_gcc.conf
+--- a/sys_linux/g77_gcc.conf 1969-12-31 19:00:00.000000000 -0500
++++ b/sys_linux/g77_gcc.conf 2021-04-22 16:48:45.000000000 -0400
+@@ -34,13 +34,13 @@
+ # Mandatory.
+ # The FORTRAN compiler to use.
+
+- FCOMPL="g77"
++ FCOMPL="@FCOMPL@"
+
+ # Mandatory.
+ # The FORTRAN compiler flags to use when compiling the pgplot library.
+ # (NB. makemake prepends -c to $FFLAGC where needed)
+
+- FFLAGC="-u -Wall -fPIC -O"
++ FFLAGC="@FFLAGC@"
+
+ # Mandatory.
+ # The FORTRAN compiler flags to use when compiling fortran demo programs.
+@@ -52,12 +52,12 @@
+ # Mandatory.
+ # The C compiler to use.
+
+- CCOMPL="gcc"
++ CCOMPL="@CCOMPL@"
+
+ # Mandatory.
+ # The C compiler flags to use when compiling the pgplot library.
+
+- CFLAGC="-Wall -fPIC -DPG_PPU -O"
++ CFLAGC="@CFLAGC@"
+
+ # Mandatory.
+ # The C compiler flags to use when compiling C demo programs.
+@@ -73,9 +73,9 @@
+ # Mandatory.
+ # The library-specification flags to use when linking normal pgplot
+ # demo programs.
+
+- LIBS="-L/usr/X11R6/lib -lX11"
++ LIBS="@LIBS@"
+
+ # Optional: Needed by XMDRIV (/xmotif).
+ # The library-specification flags to use when linking motif
+ # demo programs.
+@@ -108,8 +108,8 @@
+ # Optional: Needed if SHARED_LIB is set.
+ # How to create a shared library from a trailing list of object files.
+
+- SHARED_LD="gcc -shared -o $SHARED_LIB"
++ SHARED_LD="@SHARED_LD@"
+
+ # Optional:
+ # On systems such as Solaris 2.x, that allow specification of the
+ # libraries that a shared library needs to be linked with when a
diff --git a/var/spack/repos/builtin/packages/pgplot/package.py b/var/spack/repos/builtin/packages/pgplot/package.py
new file mode 100644
index 0000000000..ac5011cdb7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pgplot/package.py
@@ -0,0 +1,92 @@
+# Copyright 2013-2021 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 Pgplot(MakefilePackage):
+ """PGPLOT Graphics Subroutine Library
+
+ The PGPLOT Graphics Subroutine Library is a Fortran- or
+ C-callable, device-independent graphics package for making
+ simple scientific graphs. It is intended for making
+ graphical images of publication quality with minimum effort
+ on the part of the user. For most applications, the program
+ can be device-independent, and the output can be directed to
+ the appropriate device at run time."""
+
+ homepage = "https://sites.astro.caltech.edu/~tjp/pgplot/"
+ url = "ftp://ftp.astro.caltech.edu/pub/pgplot/pgplot5.2.tar.gz"
+
+ maintainers = ['eschnett']
+
+ version('5.2.2',
+ url="ftp://ftp.astro.caltech.edu/pub/pgplot/pgplot5.2.tar.gz",
+ sha256='a5799ff719a510d84d26df4ae7409ae61fe66477e3f1e8820422a9a4727a5be4')
+
+ # Replace hard-coded compilers and options by tokens, so that Spack can
+ # edit the file more easily
+ patch('g77_gcc.conf.patch')
+
+ parallel = False
+
+ def edit(self, spec, prefix):
+ substitutions = [
+ ('@CCOMPL@', self.compiler.cc),
+ ('@CFLAGC@', ("-Wall -fPIC -DPG_PPU -O -std=c89 " +
+ "-Wno-error=implicit-function-declaration")),
+ ('@FCOMPL@', self.compiler.f77),
+ ('@FFLAGC@', "-Wall -fPIC -O -ffixed-line-length-none" +
+ (" -fallow-invalid-boz" if spec.satisfies('%gcc@10:') else "")),
+ ('@LIBS@', "-lgfortran"),
+ ('@SHARED_LD@', self.compiler.cc + " -shared -o $SHARED_LIB -lgfortran"),
+ ]
+ conf = join_path(
+ self.stage.source_path, 'sys_linux/g77_gcc.conf'
+ )
+ for key, value in substitutions:
+ filter_file(key, value, conf)
+
+ def build(self, spec, prefix):
+ makemake = which('./makemake')
+ makemake(self.build_directory, 'linux', 'g77_gcc')
+ make()
+ make('clean')
+ make('cpg')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('cpgdemo', prefix.bin)
+ install('pgbind', prefix.bin)
+ install('pgdemo1', prefix.bin)
+ install('pgdemo2', prefix.bin)
+ install('pgdemo3', prefix.bin)
+ install('pgdemo4', prefix.bin)
+ install('pgdemo5', prefix.bin)
+ install('pgdemo6', prefix.bin)
+ install('pgdemo7', prefix.bin)
+ install('pgdemo8', prefix.bin)
+ install('pgdemo9', prefix.bin)
+ install('pgdemo10', prefix.bin)
+ install('pgdemo11', prefix.bin)
+ install('pgdemo12', prefix.bin)
+ install('pgdemo13', prefix.bin)
+ install('pgdemo14', prefix.bin)
+ install('pgdemo15', prefix.bin)
+ install('pgdemo16', prefix.bin)
+ install('pgdemo17', prefix.bin)
+ mkdirp(prefix.include)
+ install('cpgplot.h', prefix.include)
+ mkdirp(prefix.lib)
+ install('libcpgplot.a', prefix.lib)
+ install('libpgplot.a', prefix.lib)
+ install('libpgplot.so', prefix.lib)
+
+ @property
+ def libs(self):
+ shared = "+shared" in self.spec
+ return find_libraries(
+ "lib*pgplot", root=self.prefix, shared=shared, recursive=True
+ )
diff --git a/var/spack/repos/builtin/packages/phantompeakqualtools/package.py b/var/spack/repos/builtin/packages/phantompeakqualtools/package.py
index 317d0e753d..1b75780f4c 100644
--- a/var/spack/repos/builtin/packages/phantompeakqualtools/package.py
+++ b/var/spack/repos/builtin/packages/phantompeakqualtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/phast/package.py b/var/spack/repos/builtin/packages/phast/package.py
index 7f787eb023..fac5739815 100644
--- a/var/spack/repos/builtin/packages/phast/package.py
+++ b/var/spack/repos/builtin/packages/phast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/phasta/package.py b/var/spack/repos/builtin/packages/phasta/package.py
index 6040d3f875..993ea56fdb 100644
--- a/var/spack/repos/builtin/packages/phasta/package.py
+++ b/var/spack/repos/builtin/packages/phasta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/phist/package.py b/var/spack/repos/builtin/packages/phist/package.py
index dbc620ff21..80f6436072 100644
--- a/var/spack/repos/builtin/packages/phist/package.py
+++ b/var/spack/repos/builtin/packages/phist/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import spack.hooks.sbang as sbang
from spack import *
@@ -26,13 +27,15 @@ class Phist(CMakePackage):
version('develop', branch='devel')
version('master', branch='master')
+ version('1.9.5', sha256='24faa3373003f185c82a658c510e36cba9acc4110eb60cbfded9de370ae9ea32')
+ version('1.9.4', sha256='9dde3ca0480358fa0877ec8424aaee4011c5defc929219a5930388a7cdb4c8a6')
version('1.9.3', sha256='3ab7157e9f535a4c8537846cb11b516271ef13f82d0f8ebb7f96626fb9ab86cf')
version('1.9.2', sha256='289678fa7172708f5d32d6bd924c8fdfe72b413bba5bbb8ce6373c85c5ec5ae5')
version('1.9.1', sha256='6e6411115ec48afe605b4f2179e9bc45d60f15459428f474f3f32b80d2830f1f')
version('1.9.0', sha256='990d3308fc0083ed0f9f565d00c649ee70c3df74d44cbe5f19dfe05263d06559')
version('1.8.0', sha256='ee42946bce187e126452053b5f5c200b57b6e40ee3f5bcf0751f3ced585adeb0')
version('1.7.5', sha256='f11fe27f2aa13d69eb285cc0f32c33c1603fa1286b84e54c81856c6f2bdef500')
- version('1.7.4', sha256='ef0c97fda9984f53011020aff3e61523833320f5f5719af2f2ed84463cccb98b')
+ version('1.7.4', sha256='c5324f639b8c95b07cd29c3cd8dd7dd576c84a0b9228dbb88f8b87605424419e')
version('1.7.3', sha256='ab2d853c9ba13bcd3069fcc61c359cb412466a2e4b22ebbd2f5263cffa685126')
version('1.7.2', sha256='29b504d78b5efd57b87d2ca6e20bc8a32b1ba55b40f5a5b7189cc0d28e43bcc0')
version('1.6.1', sha256='4ed4869f24f920a494aeae0f7d1d94fe9efce55ebe0d298a5948c9603e07994d')
@@ -101,6 +104,8 @@ class Phist(CMakePackage):
patch('update_tpetra_gotypes.patch', when='@:1.8.99')
+ patch('sbang.patch', when='+fortran')
+
# ###################### Dependencies ##########################
depends_on('cmake@3.8:', type='build')
@@ -120,7 +125,7 @@ class Phist(CMakePackage):
depends_on('eigen', when='kernel_lib=eigen')
depends_on('ghost', when='kernel_lib=ghost')
- depends_on('trilinos+anasazi+belos+teuchos', when='+trilinos')
+ depends_on('trilinos+anasazi+belos', when='+trilinos')
depends_on('parmetis+int64', when='+parmetis+int64')
depends_on('parmetis~int64', when='+parmetis~int64')
@@ -132,6 +137,9 @@ class Phist(CMakePackage):
# to compile some OpenMP statements
conflicts('%gcc@:4.9.1')
+ def setup_build_environment(self, env):
+ env.set('SPACK_SBANG', sbang.sbang_install_path())
+
def cmake_args(self):
spec = self.spec
@@ -147,26 +155,20 @@ class Phist(CMakePackage):
'-DPHIST_OUTLEV=%s' % outlev,
'-DTPL_LAPACKE_LIBRARIES=%s' % lapacke_libs,
'-DTPL_LAPACKE_INCLUDE_DIRS=%s' % lapacke_include_dir,
- '-DPHIST_ENABLE_MPI:BOOL=%s'
- % ('ON' if '+mpi' in spec else 'OFF'),
- '-DPHIST_ENABLE_OPENMP=%s'
- % ('ON' if '+openmp' in spec else 'OFF'),
- '-DBUILD_SHARED_LIBS:BOOL=%s'
- % ('ON' if '+shared' in spec else 'OFF'),
- '-DPHIST_ENABLE_SCAMAC:BOOL=%s'
- % ('ON' if '+scamac' in spec else 'OFF'),
+ self.define_from_variant('PHIST_ENABLE_MPI', 'mpi'),
+ self.define_from_variant('PHIST_ENABLE_OPENMP', 'openmp'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('PHIST_ENABLE_SCAMAC', 'scamac'),
'-DPHIST_USE_TRILINOS_TPLS:BOOL=%s'
% ('ON' if '^trilinos' in spec else 'OFF'),
'-DPHIST_USE_SOLVER_TPLS:BOOL=%s'
% ('ON' if '^trilinos+belos+anasazi' in spec else 'OFF'),
'-DPHIST_USE_PRECON_TPLS:BOOL=%s'
% ('ON' if '^trilinos' in spec else 'OFF'),
- '-DXSDK_ENABLE_Fortran:BOOL=%s'
- % ('ON' if '+fortran' in spec else 'OFF'),
+ self.define_from_variant('XSDK_ENABLE_Fortran', 'fortran'),
'-DXSDK_INDEX_SIZE=%s'
% ('64' if '+int64' in spec else '32'),
- '-DPHIST_HOST_OPTIMIZE:BOOL=%s'
- % ('ON' if '+host' in spec else 'OFF'),
+ self.define_from_variant('PHIST_HOST_OPTIMIZE', 'host'),
]
return args
diff --git a/var/spack/repos/builtin/packages/phist/sbang.patch b/var/spack/repos/builtin/packages/phist/sbang.patch
new file mode 100644
index 0000000000..331ebebabd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/phist/sbang.patch
@@ -0,0 +1,8 @@
+diff --git a/fortran_bindings/cfwrapper.py.in b/fortran_bindings/cfwrapper.py.in
+index 6eb9051..874ce48 100755
+--- a/fortran_bindings/cfwrapper.py.in
++++ b/fortran_bindings/cfwrapper.py.in
+@@ -1,3 +1,4 @@
++#!/bin/bash $ENV{SPACK_SBANG}
+ #!${PYTHON_EXECUTABLE}
+ # -*- coding: utf-8 -*-
diff --git a/var/spack/repos/builtin/packages/phoenix/package.py b/var/spack/repos/builtin/packages/phoenix/package.py
index e6d5afd2b9..9ab52f2115 100644
--- a/var/spack/repos/builtin/packages/phoenix/package.py
+++ b/var/spack/repos/builtin/packages/phoenix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/photos/package.py b/var/spack/repos/builtin/packages/photos/package.py
index 6304e194aa..94e6d46232 100644
--- a/var/spack/repos/builtin/packages/photos/package.py
+++ b/var/spack/repos/builtin/packages/photos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,18 +10,26 @@ class Photos(AutotoolsPackage):
""" Photos is a Monte Carlo program for bremsstrahlung in the decay
of particles and resonances."""
- homepage = "http://photospp.web.cern.ch/photospp/"
- url = "http://photospp.web.cern.ch/photospp/resources/PHOTOS.3.61/PHOTOS.3.61-LHC.tar.gz"
+ homepage = "https://photospp.web.cern.ch/photospp/"
+ url = "https://photospp.web.cern.ch/photospp/resources/PHOTOS.3.61/PHOTOS.3.61-LHC.tar.gz"
+ tags = ['hep']
+
+ version('3.64', sha256='cb4096b4804289fc4d54a992caa566cbbd33f41f65f8906deb01200dc5163027')
version('3.61', sha256='acd3bcb769ba2a3e263de399e9b89fd6296405c9cbc5045b83baba3e60db4b26')
+ variant('hepmc', default=True, description='Build with HepMC2 support')
+ variant('hepmc3', default=False, description='Build with HepMC3 support')
+
maintainers = ['vvolkl']
- depends_on('hepmc@:2.99.99')
+ depends_on('hepmc', when='+hepmc')
+ depends_on('hepmc3', when='+hepmc3')
def configure_args(self):
args = []
- args.append('--with-hepmc=%s' % self.spec["hepmc"].prefix)
- args.append('--without-hepmc3')
+ args.extend(self.with_or_without('hepmc', 'prefix'))
+ args.extend(self.with_or_without('hepmc3', 'prefix'))
+
return args
diff --git a/var/spack/repos/builtin/packages/php/package.py b/var/spack/repos/builtin/packages/php/package.py
index d5da45eb94..e8a743bb56 100644
--- a/var/spack/repos/builtin/packages/php/package.py
+++ b/var/spack/repos/builtin/packages/php/package.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack.hooks.sbang as sbang
+from spack import *
class Php(AutotoolsPackage):
diff --git a/var/spack/repos/builtin/packages/phrap-crossmatch-swat/package.py b/var/spack/repos/builtin/packages/phrap-crossmatch-swat/package.py
index 7cc86e5c7a..75625aade2 100644
--- a/var/spack/repos/builtin/packages/phrap-crossmatch-swat/package.py
+++ b/var/spack/repos/builtin/packages/phrap-crossmatch-swat/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PhrapCrossmatchSwat(MakefilePackage):
"""phrap is a program for assembling shotgun DNA sequence data.
@@ -16,6 +17,7 @@ class PhrapCrossmatchSwat(MakefilePackage):
homepage = "http://www.phrap.org/phredphrapconsed.html"
url = "file://{0}/phrap-crossmatch-swat-1.090518.tar.gz".format(os.getcwd())
+ manual_download = True
version('1.090518', sha256='81f50c4410e8604cdefcc34ef6dc7b037be3bb45b94c439611a5590c1cf83665')
diff --git a/var/spack/repos/builtin/packages/phred/package.py b/var/spack/repos/builtin/packages/phred/package.py
index cdfc8a41b3..99bc48446a 100644
--- a/var/spack/repos/builtin/packages/phred/package.py
+++ b/var/spack/repos/builtin/packages/phred/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Phred(MakefilePackage):
"""The phred software reads DNA sequencing trace files, calls bases,
@@ -13,6 +14,7 @@ class Phred(MakefilePackage):
homepage = "http://www.phrap.org/phredphrapconsed.html"
url = "file://{0}/phred.tar.gz".format(os.getcwd())
+ manual_download = True
version('071220', sha256='26212f13fa906c1ca0af61f48d52a5f2c1aacba802bf729ba65ca5222463abce')
diff --git a/var/spack/repos/builtin/packages/phylip/package.py b/var/spack/repos/builtin/packages/phylip/package.py
index 8eefcbe512..473a19de2e 100644
--- a/var/spack/repos/builtin/packages/phylip/package.py
+++ b/var/spack/repos/builtin/packages/phylip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Phylip(Package):
"""PHYLIP (the PHYLogeny Inference Package) is a package of programs for
inferring phylogenies (evolutionary trees)."""
- homepage = "http://evolution.genetics.washington.edu/phylip/"
- url = "http://evolution.gs.washington.edu/phylip/download/phylip-3.697.tar.gz"
+ homepage = "https://evolution.genetics.washington.edu/phylip/"
+ url = "https://evolution.gs.washington.edu/phylip/download/phylip-3.697.tar.gz"
version('3.697', sha256='9a26d8b08b8afea7f708509ef41df484003101eaf4beceb5cf7851eb940510c1')
diff --git a/var/spack/repos/builtin/packages/phylobayesmpi/package.py b/var/spack/repos/builtin/packages/phylobayesmpi/package.py
index 9a10a82054..726e8e94e1 100644
--- a/var/spack/repos/builtin/packages/phylobayesmpi/package.py
+++ b/var/spack/repos/builtin/packages/phylobayesmpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/phyluce/package.py b/var/spack/repos/builtin/packages/phyluce/package.py
index 2d6942b383..5fb589f485 100644
--- a/var/spack/repos/builtin/packages/phyluce/package.py
+++ b/var/spack/repos/builtin/packages/phyluce/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/picard/package.py b/var/spack/repos/builtin/packages/picard/package.py
index b8c0ac199d..e36e23f149 100644
--- a/var/spack/repos/builtin/packages/picard/package.py
+++ b/var/spack/repos/builtin/packages/picard/package.py
@@ -1,26 +1,37 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os.path
import re
+from spack import *
+
class Picard(Package):
"""Picard is a set of command line tools for manipulating high-throughput
sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF.
"""
- homepage = "http://broadinstitute.github.io/picard/"
- url = "https://github.com/broadinstitute/picard/releases/download/2.9.2/picard.jar"
+ homepage = "https://broadinstitute.github.io/picard/"
+ url = "https://github.com/broadinstitute/picard/releases/download/2.26.2/picard.jar"
_urlfmt = "https://github.com/broadinstitute/picard/releases/download/{0}/picard.jar"
_oldurlfmt = 'https://github.com/broadinstitute/picard/releases/download/{0}/picard-tools-{0}.zip'
# They started distributing a single jar file at v2.6.0, prior to
# that it was a .zip file with multiple .jar and .so files
+ version('2.26.2', sha256='99fab1699a735fd048a05975a243774f1cc99e87a9b28311d4aa872d06390474', expand=False)
+ version('2.25.7', sha256='dc0e830d3e838dee2b4f4aa1c9631fb3a4c3ec982de8dfe5145fc748104c7146', expand=False)
+ version('2.25.6', sha256='768709826514625381e6fa3920945360167f4e830bf72f79eb070da059676f02', expand=False)
+ version('2.25.5', sha256='f7fa9784b84d384abfcbd77076f5ceab7b2797dc863ac35fd41470daa3efe3a5', expand=False)
+ version('2.25.4', sha256='c3ac14471e48e28e24201ae5515f828ffa45db7ac3e37173251a672845b4a9b3', expand=False)
+ version('2.25.3', sha256='1d4dbfcb36d23fde11f173ab0de8a99835e04161efb04f246bbcbfc0bee3b493', expand=False)
+ version('2.25.2', sha256='aead4baf12028a5d2b9ef70e00c93e4bba8f6bece0b9a7104b89b842a8e0326f', expand=False)
+ version('2.25.1', sha256='6d6e622d6b465f9fc704c37bcba55b0dac5ad14d07088bbdbdfade5cd027ee1c', expand=False)
+ version('2.25.0', sha256='faf2434da84fe21b516d57817767920fdedfc19ebdc01d9cae8d6d3314f7e897', expand=False)
+ version('2.24.0', sha256='70e91039bccc6f6db60f18c41713218a8cdf45f591f02c1012c062152b27cd7b', expand=False)
version('2.20.8', sha256='aff92d618ee9e6bafc1ab4fbfa89fc557a0dbe596ae4b92fe3bf93ebf95c7105', expand=False)
version('2.19.0', sha256='f97fc3f7a73b55cceea8b6a6488efcf1b2fbf8cad61d88645704ddd45a8c5950', expand=False)
version('2.18.3', sha256='0e0fc45d9a822ee9fa562b3bb8f1525a439e4cd541429a1a4ca4646f37189b70', expand=False)
diff --git a/var/spack/repos/builtin/packages/picsar/package.py b/var/spack/repos/builtin/packages/picsar/package.py
index fc5335a91b..b8d7ede7d9 100644
--- a/var/spack/repos/builtin/packages/picsar/package.py
+++ b/var/spack/repos/builtin/packages/picsar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/picsarlite/package.py b/var/spack/repos/builtin/packages/picsarlite/package.py
index a688bb6c30..a10b6461aa 100644
--- a/var/spack/repos/builtin/packages/picsarlite/package.py
+++ b/var/spack/repos/builtin/packages/picsarlite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pidx/package.py b/var/spack/repos/builtin/packages/pidx/package.py
index 2f51f09301..eb5892141a 100644
--- a/var/spack/repos/builtin/packages/pidx/package.py
+++ b/var/spack/repos/builtin/packages/pidx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pig/package.py b/var/spack/repos/builtin/packages/pig/package.py
index 1a4e37b357..6872c8286c 100644
--- a/var/spack/repos/builtin/packages/pig/package.py
+++ b/var/spack/repos/builtin/packages/pig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,8 +14,8 @@ class Pig(Package):
transforms data.
"""
- homepage = "http://archive.apache.org"
- url = "http://archive.apache.org/dist/hadoop/pig/stable/pig-0.7.0.tar.gz"
+ homepage = "https://archive.apache.org"
+ url = "https://archive.apache.org/dist/hadoop/pig/stable/pig-0.7.0.tar.gz"
version('0.7.0', sha256='fa7211fb339f547f679a3dd90055f1ddc45d5754d88463e4cc39c380ddf8b02a')
diff --git a/var/spack/repos/builtin/packages/pigz/package.py b/var/spack/repos/builtin/packages/pigz/package.py
index c54a518993..ba602d633c 100644
--- a/var/spack/repos/builtin/packages/pigz/package.py
+++ b/var/spack/repos/builtin/packages/pigz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Pigz(MakefilePackage):
"""A parallel implementation of gzip for modern multi-processor,
multi-core machines."""
- homepage = "http://zlib.net/pigz/"
+ homepage = "https://zlib.net/pigz/"
url = "https://github.com/madler/pigz/archive/v2.3.4.tar.gz"
version('2.4', sha256='e228e7d18b34c4ece8d596eb6eee97bde533c6beedbb728d07d3abe90b4b1b52')
diff --git a/var/spack/repos/builtin/packages/pilon/package.py b/var/spack/repos/builtin/packages/pilon/package.py
index 75600c5854..09b9074091 100644
--- a/var/spack/repos/builtin/packages/pilon/package.py
+++ b/var/spack/repos/builtin/packages/pilon/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Pilon(Package):
"""Pilon is an automated genome assembly improvement and variant
diff --git a/var/spack/repos/builtin/packages/pindel/package.py b/var/spack/repos/builtin/packages/pindel/package.py
index ef7052b06f..15226c9520 100644
--- a/var/spack/repos/builtin/packages/pindel/package.py
+++ b/var/spack/repos/builtin/packages/pindel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Pindel(MakefilePackage):
"""Pindel can detect breakpoints from next-gen sequence data."""
- homepage = "http://gmt.genome.wustl.edu/packages/pindel/"
+ homepage = "https://gmt.genome.wustl.edu/packages/pindel/"
url = "https://github.com/genome/pindel/archive/v0.2.5.tar.gz"
version('0.2.5b8', sha256='7f21fda0b751d420831724d96e60873ce332139cfd24396e81c7f1ae2f707a19')
diff --git a/var/spack/repos/builtin/packages/pinentry/package.py b/var/spack/repos/builtin/packages/pinentry/package.py
index 3a9e6e526c..7b226f2cbe 100644
--- a/var/spack/repos/builtin/packages/pinentry/package.py
+++ b/var/spack/repos/builtin/packages/pinentry/package.py
@@ -1,41 +1,54 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Pinentry(AutotoolsPackage):
"""pinentry is a small collection of dialog programs that allow GnuPG to
- read passphrases and PIN numbers in a secure manner. There are versions for
- the common GTK and Qt toolkits as well as for the text terminal (Curses).
+ read passphrases and PIN numbers in a secure manner.
+
+ There are versions for the common GTK and Qt toolkits as well as for
+ the text terminal (Curses).
"""
homepage = "https://gnupg.org/related_software/pinentry/index.html"
url = "https://gnupg.org/ftp/gcrypt/pinentry/pinentry-1.1.0.tar.bz2"
+ maintainers = ['alalazo']
+
+ version('1.1.1', sha256='cd12a064013ed18e2ee8475e669b9f58db1b225a0144debdb85a68cecddba57f')
version('1.1.0', sha256='68076686fa724a290ea49cdf0d1c0c1500907d1b759a3bcbfbec0293e8f56570')
+ supported_guis = [
+ 'curses', 'tty', 'emacs', 'efl', 'gtk2', 'gnome3', 'qt', 'qt5', 'tqt', 'fltk'
+ ]
+
+ # Default to 'tty' as it has no additional dependencies
+ variant('gui', default='tty', description='GUI to use for passphrase entry',
+ values=supported_guis, multi=True)
+
depends_on('libgpg-error@1.16:')
depends_on('libassuan@2.1.0:')
- def configure_args(self):
- return [
- # Autotools automatically enables these if dependencies found
- # TODO: add variants for these
- '--disable-pinentry-curses',
- '--disable-pinentry-emacs',
- '--disable-pinentry-gtk2',
- '--disable-pinentry-gnome3',
- '--disable-pinentry-qt',
- '--disable-pinentry-qt5',
- '--disable-pinentry-tqt',
- '--disable-pinentry-fltk',
-
- # No dependencies, simplest installation
- '--enable-pinentry-tty',
+ # Optional GUI dependencies
+ depends_on('ncurses', when='gui=curses')
+ depends_on('emacs', when='gui=emacs')
+ # depends_on('efl@1.18:', when='gui=efl') # Enlightenment
+ depends_on('gtkplus@2:', when='gui=gtk2')
+ # depends_on('gnome@3:', when='gui=gnome3') # GNOME
+ depends_on('qt@4.4.0:', when='gui=qt')
+ depends_on('qt@5.0:5.999', when='gui=qt5')
+ # depends_on('tqt', when='gui=tqt') # Trinity QT
+ depends_on('fltk@1.3:', when='gui=fltk')
+ # TODO: add packages for these optional GUIs
+ conflicts('gui=efl')
+ conflicts('gui=gnome3')
+ conflicts('gui=tqt')
+
+ def configure_args(self):
+ args = [
# Disable extra features
'--disable-fallback-curses',
'--disable-inside-emacs',
@@ -45,3 +58,27 @@ class Pinentry(AutotoolsPackage):
'--with-gpg-error-prefix=' + self.spec['libgpg-error'].prefix,
'--with-libassuan-prefix=' + self.spec['libassuan'].prefix,
]
+
+ if 'gui=curses' in self.spec:
+ args.append('--with-ncurses-include-dir=' +
+ self.spec['ncurses'].headers.directories[0])
+
+ for gui in self.supported_guis:
+ if 'gui=' + gui in self.spec:
+ args.append('--enable-pinentry-' + gui)
+ else:
+ args.append('--disable-pinentry-' + gui)
+
+ return args
+
+ def test(self):
+ kwargs = {
+ 'exe': self.prefix.bin.pinentry,
+ 'options': ['--version'],
+ 'expected': [str(self.version)],
+ }
+ self.run_test(**kwargs)
+ for gui in self.supported_guis:
+ if 'gui=' + gui in self.spec:
+ kwargs['exe'] = self.prefix.bin.pinentry + '-' + gui
+ self.run_test(**kwargs)
diff --git a/var/spack/repos/builtin/packages/pinfo/package.py b/var/spack/repos/builtin/packages/pinfo/package.py
index 698897949f..a4ada3a763 100644
--- a/var/spack/repos/builtin/packages/pinfo/package.py
+++ b/var/spack/repos/builtin/packages/pinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pipework/package.py b/var/spack/repos/builtin/packages/pipework/package.py
index ad92723f64..eeb19e2eb0 100644
--- a/var/spack/repos/builtin/packages/pipework/package.py
+++ b/var/spack/repos/builtin/packages/pipework/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/piranha/package.py b/var/spack/repos/builtin/packages/piranha/package.py
index c8681c1607..a5a5346eeb 100644
--- a/var/spack/repos/builtin/packages/piranha/package.py
+++ b/var/spack/repos/builtin/packages/piranha/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,8 +23,8 @@ class Piranha(CMakePackage):
# Build dependencies
depends_on('cmake@3.2.0:', type='build')
- extends('python', when='+pyranha')
- depends_on('python@2.6:', type='build', when='+pyranha')
+ extends('python', when='+python')
+ depends_on('python@2.6:', type='build', when='+python')
# Other dependencies
depends_on('boost+iostreams+regex+serialization',
@@ -37,6 +37,6 @@ class Piranha(CMakePackage):
def cmake_args(self):
return [
- '-DBUILD_PYRANHA=%s' % ('ON' if '+python' in self.spec else 'OFF'),
+ self.define_from_variant('BUILD_PYRANHA', 'python'),
'-DBUILD_TESTS:BOOL=ON',
]
diff --git a/var/spack/repos/builtin/packages/pism/package.py b/var/spack/repos/builtin/packages/pism/package.py
index e25fab43c6..4a8b300f14 100644
--- a/var/spack/repos/builtin/packages/pism/package.py
+++ b/var/spack/repos/builtin/packages/pism/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -93,28 +93,17 @@ class Pism(CMakePackage):
'-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
# Fortran not needed for PISM...
# '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
- '-DPism_BUILD_EXTRA_EXECS=%s' %
- ('YES' if '+extra' in spec else 'NO'),
- '-DBUILD_SHARED_LIBS=%s' %
- ('YES' if '+shared' in spec else 'NO'),
- '-DPism_BUILD_PYTHON_BINDINGS=%s' %
- ('YES' if '+python' in spec else 'NO'),
- '-DPism_BUILD_ICEBIN=%s' %
- ('YES' if '+icebin' in spec else 'NO'),
- '-DPism_USE_PROJ4=%s' %
- ('YES' if '+proj' in spec else 'NO'),
- '-DPism_USE_PARALLEL_NETCDF4=%s' %
- ('YES' if '+parallel-netcdf4' in spec else 'NO'),
- '-DPism_USE_PNETCDF=%s' %
- ('YES' if '+parallel-netcdf3' in spec else 'NO'),
- '-DPism_USE_PARALLEL_HDF5=%s' %
- ('YES' if '+parallel-hdf5' in spec else 'NO'),
- '-DPism_BUILD_PDFS=%s' %
- ('YES' if '+doc' in spec else 'NO'),
- '-DPism_INSTALL_EXAMPLES=%s' %
- ('YES' if '+examples' in spec else 'NO'),
- '-DPism_USE_EVERYTRACE=%s' %
- ('YES' if '+everytrace' in spec else 'NO')]
+ self.define_from_variant('Pism_BUILD_EXTRA_EXECS', 'extra'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('Pism_BUILD_PYTHON_BINDINGS', 'python'),
+ self.define_from_variant('Pism_BUILD_ICEBIN', 'icebin'),
+ self.define_from_variant('Pism_USE_PROJ4', 'proj'),
+ self.define_from_variant('Pism_USE_PARALLEL_NETCDF4', 'parallel-netcdf4'),
+ self.define_from_variant('Pism_USE_PNETCDF', 'parallel-netcdf3'),
+ self.define_from_variant('Pism_USE_PARALLEL_HDF5', 'parallel-hdf5'),
+ self.define_from_variant('Pism_BUILD_PDFS', 'doc'),
+ self.define_from_variant('Pism_INSTALL_EXAMPLES', 'examples'),
+ self.define_from_variant('Pism_USE_EVERYTRACE', 'everytrace')]
def setup_run_environment(self, env):
env.set('PISM_PREFIX', self.prefix)
diff --git a/var/spack/repos/builtin/packages/pixman/package.py b/var/spack/repos/builtin/packages/pixman/package.py
index a145edc638..52deba5f4d 100644
--- a/var/spack/repos/builtin/packages/pixman/package.py
+++ b/var/spack/repos/builtin/packages/pixman/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Pixman(AutotoolsPackage):
"""The Pixman package contains a library that provides low-level
@@ -13,7 +14,7 @@ class Pixman(AutotoolsPackage):
trapezoid rasterization."""
homepage = "http://www.pixman.org"
- url = "http://cairographics.org/releases/pixman-0.32.6.tar.gz"
+ url = "https://cairographics.org/releases/pixman-0.32.6.tar.gz"
version('0.40.0', sha256='6d200dec3740d9ec4ec8d1180e25779c00bc749f94278c8b9021f5534db223fc')
version('0.38.4', sha256='da66d6fd6e40aee70f7bd02e4f8f76fc3f006ec879d346bae6a723025cfbdde7')
diff --git a/var/spack/repos/builtin/packages/pixz/package.py b/var/spack/repos/builtin/packages/pixz/package.py
index 5fad0583bb..4f1663f332 100644
--- a/var/spack/repos/builtin/packages/pixz/package.py
+++ b/var/spack/repos/builtin/packages/pixz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Pixz(AutotoolsPackage):
"""Pixz (pronounced pixie) is a parallel, indexing version of xz. """
- homepage = "http://www.github.com/vasi/pixz"
+ homepage = "https://www.github.com/vasi/pixz"
url = "https://github.com/vasi/pixz/releases/download/v1.0.6/pixz-1.0.6.tar.xz"
version('1.0.6', sha256='02c50746b134fa1b1aae41fcc314d7c6f1919b3d48bcdea01bf11769f83f72e8')
diff --git a/var/spack/repos/builtin/packages/pkg-config/package.py b/var/spack/repos/builtin/packages/pkg-config/package.py
index 0863e920a6..2bcb676967 100644
--- a/var/spack/repos/builtin/packages/pkg-config/package.py
+++ b/var/spack/repos/builtin/packages/pkg-config/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ class PkgConfig(AutotoolsPackage):
"""pkg-config is a helper tool used when compiling applications
and libraries"""
- homepage = "http://www.freedesktop.org/wiki/Software/pkg-config/"
- url = "http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz"
+ homepage = "https://www.freedesktop.org/wiki/Software/pkg-config/"
+ # URL must remain http:// so Spack can bootstrap curl
+ url = "https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz"
version('0.29.2', sha256='6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591')
version('0.29.1', sha256='beb43c9e064555469bd4390dcfd8030b1536e0aa103f08d7abf7ae8cac0cb001')
@@ -30,6 +31,8 @@ class PkgConfig(AutotoolsPackage):
parallel = False
+ tags = ['build-tools']
+
executables = ['^pkg-config$']
@classmethod
diff --git a/var/spack/repos/builtin/packages/pkgconf/package.py b/var/spack/repos/builtin/packages/pkgconf/package.py
index 87978eef11..c618722e6d 100644
--- a/var/spack/repos/builtin/packages/pkgconf/package.py
+++ b/var/spack/repos/builtin/packages/pkgconf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,8 +14,10 @@ class Pkgconf(AutotoolsPackage):
homepage = "http://pkgconf.org/"
# URL must remain http:// so Spack can bootstrap curl
- url = "http://distfiles.dereferenced.org/pkgconf/pkgconf-1.6.3.tar.xz"
+ url = "https://distfiles.dereferenced.org/pkgconf/pkgconf-1.6.3.tar.xz"
+ version('1.8.0', sha256='ef9c7e61822b7cb8356e6e9e1dca58d9556f3200d78acab35e4347e9d4c2bbaf')
+ version('1.7.4', sha256='d73f32c248a4591139a6b17777c80d4deab6b414ec2b3d21d0a24be348c476ab')
version('1.7.3', sha256='b846aea51cf696c3392a0ae58bef93e2e72f8e7073ca6ad1ed8b01c85871f9c0')
version('1.6.3', sha256='61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210')
version('1.6.1', sha256='22b9ee38438901f9d60f180e5182821180854fa738fd071f593ea26a81da208c')
@@ -37,6 +39,8 @@ class Pkgconf(AutotoolsPackage):
# https://github.com/spack/spack/issues/3525
conflicts('%pgi')
+ tags = ['build-tools']
+
executables = ['^pkgconf$', '^pkg-config$']
@classmethod
@@ -55,6 +59,12 @@ class Pkgconf(AutotoolsPackage):
"""Adds the ACLOCAL path for autotools."""
env.append_path('ACLOCAL_PATH', self.prefix.share.aclocal)
+ def check(self):
+ # TODO: running the checks needs kyua (a package not yet in spack)
+ # see TODO above
+ # thus disable the tests to be able to run --test=all for other specs
+ pass
+
@run_after('install')
def link_pkg_config(self):
symlink('pkgconf', '{0}/pkg-config'.format(self.prefix.bin))
diff --git a/var/spack/repos/builtin/packages/pktools/package.py b/var/spack/repos/builtin/packages/pktools/package.py
index ae26bba54a..c886fe4206 100644
--- a/var/spack/repos/builtin/packages/pktools/package.py
+++ b/var/spack/repos/builtin/packages/pktools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/planck-likelihood/package.py b/var/spack/repos/builtin/packages/planck-likelihood/package.py
index 7277ce5298..c012466731 100644
--- a/var/spack/repos/builtin/packages/planck-likelihood/package.py
+++ b/var/spack/repos/builtin/packages/planck-likelihood/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,10 @@ class PlanckLikelihood(Package):
"""2015 Cosmic Microwave Background (CMB) spectra and likelihood code"""
homepage = "https://wiki.cosmos.esa.int/planckpla2015/index.php/CMB_spectrum_%26_Likelihood_Code"
- url = "http://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Code-v2.0.R2.00.tar.bz2"
+ url = "https://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Code-v2.0.R2.00.tar.bz2"
version('2.00', sha256='c1efa208175b2751e75b2ad1c026dae744a7dd279eb74baa5db3098bc9c971bb',
- url="http://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Code-v2.0.R2.00.tar.bz2")
+ url="https://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Code-v2.0.R2.00.tar.bz2")
variant('lensing-ext', default=False,
description="Provide lensing-ext data")
@@ -31,30 +31,30 @@ class PlanckLikelihood(Package):
resource(
name='baseline',
- url="http://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Data-baseline_R2.00.tar.gz",
+ url="https://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Data-baseline_R2.00.tar.gz",
sha256='7c62c5afc105bff28c2da3eddb870b8180536d30e31c4d419b307ad3996e17ab',
destination='.')
resource(
name='lensing-ext',
- url="http://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Data-extra-lensing-ext.R2.00.tar.gz",
+ url="https://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Data-extra-lensing-ext.R2.00.tar.gz",
sha256='0c017984bfd12315b94958f48f8e61e625361a84066838976f676fb5c2e76dbc',
destination='.',
when='+lensing-ext')
resource(
name='plik-DS',
- url="http://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Data-extra-plik-DS.R2.00.tar.gz",
+ url="https://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Data-extra-plik-DS.R2.00.tar.gz",
sha256='f6b5ec6b284ea71008f071503faf8319dac48c3ea7fb13f5e5cbd23fff3efd84',
destination='.',
when='+plik-DS')
resource(
name='plik-HM-ext',
- url="http://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Data-extra-plik-HM-ext.R2.00.tar.gz",
+ url="https://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Data-extra-plik-HM-ext.R2.00.tar.gz",
sha256='b5b8ead297b31f9b2e4913b54b1d3bbe272075f85ce2ca9bf5d99dbbe1559f77',
destination='.',
when='+plik-HM-ext')
resource(
name='plik-unbinned',
- url="http://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Data-extra-plik-unbinned.R2.00.tar.gz",
+ url="https://irsa.ipac.caltech.edu/data/Planck/release_2/software/COM_Likelihood_Data-extra-plik-unbinned.R2.00.tar.gz",
sha256='69cdfee40d63a8b60b1f715d4e276d76693ec1a6f1b2658abac2b8d7dff4fa44',
destination='.',
when='+plik-unbinned')
diff --git a/var/spack/repos/builtin/packages/plasma/package.py b/var/spack/repos/builtin/packages/plasma/package.py
index 99ee4cb3a1..7e263dccdb 100644
--- a/var/spack/repos/builtin/packages/plasma/package.py
+++ b/var/spack/repos/builtin/packages/plasma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,12 +15,13 @@ class Plasma(CMakePackage):
solving linear systems of equations, least squares problems, eigenvalue
problems, and singular value problems."""
- homepage = "https://bitbucket.org/icl/plasma/"
- url = "https://bitbucket.org/icl/plasma/downloads/plasma-18.11.0.tar.gz"
- git = "https://bitbucket.org/icl/plasma"
+ homepage = "https://github.com/icl-utk-edu/plasma/"
+ url = "https://github.com/icl-utk-edu/plasma/releases/download/21.8.29/plasma-21.8.29.tar.gz"
+ git = "https://github.com/icl-utk-edu/plasma"
maintainers = ['luszczek']
version("develop", git=git)
+ version('21.8.29', sha256='e0bb4d9143c8540f9f46cbccac9ed0cbea12500a864e6954fce2fe94ea057a10')
version("20.9.20", sha256="2144a77b739f8dd2f0dbe5b64d94cde0e916f55c4eb170facd168c0db7fc7970")
version("19.8.1", sha256="3a5db6eabf91aec782b7f27b17a7f6b8ce2c9d8e648c0e9c0ff5d87277ba4d17")
version("19.8.0", sha256="19a950ade8a7c8d082f372789c9f874274a63217ecff26e33f366402f060f071")
@@ -30,7 +31,7 @@ class Plasma(CMakePackage):
version("18.9.0", sha256="753eae28ea48986a2cc7b8204d6eef646584541e59d42c3c94fa9879116b0774")
version("17.1",
sha256="d4b89f7c3d240a69dfe986284a14471eec4830b9e352ae902ea8861f15573dee",
- url="https://bitbucket.org/icl/plasma/downloads/plasma-17.1.tar.gz")
+ url="https://github.com/icl-utk-edu/plasma/releases/download/17.01/plasma-17.01.tar.gz")
variant("shared", default=True,
description="Build shared library (disables static library)")
diff --git a/var/spack/repos/builtin/packages/platypus/package.py b/var/spack/repos/builtin/packages/platypus/package.py
index 841464d5ec..ce3070b8ad 100644
--- a/var/spack/repos/builtin/packages/platypus/package.py
+++ b/var/spack/repos/builtin/packages/platypus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Platypus(Package):
"""A Haplotype-Based Variant Caller For Next Generation Sequence Data"""
homepage = "http://www.well.ox.ac.uk/platypus"
- url = "http://www.well.ox.ac.uk/bioinformatics/Software/Platypus-latest.tgz"
+ url = "https://www.well.ox.ac.uk/bioinformatics/Software/Platypus-latest.tgz"
version('0.8.1', sha256='a0f39e800ebdc5590e9b568a791bc6746df0fde4d1c3622140db64dea175622b')
diff --git a/var/spack/repos/builtin/packages/plink-ng/package.py b/var/spack/repos/builtin/packages/plink-ng/package.py
index 27b4a4ca95..11a44f5f1c 100644
--- a/var/spack/repos/builtin/packages/plink-ng/package.py
+++ b/var/spack/repos/builtin/packages/plink-ng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/plink/package.py b/var/spack/repos/builtin/packages/plink/package.py
index 83bc26409a..01fe3ad9a1 100644
--- a/var/spack/repos/builtin/packages/plink/package.py
+++ b/var/spack/repos/builtin/packages/plink/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,11 +14,11 @@ class Plink(Package):
homepage = "https://www.cog-genomics.org/plink/1.9/"
version('1.9-beta6.10', sha256='f8438656996c55a5edd95c223cce96277de6efaab1b9b1d457bfee0c272058d8',
- url='http://s3.amazonaws.com/plink1-assets/plink_linux_x86_64_20190617.zip')
+ url='https://s3.amazonaws.com/plink1-assets/plink_linux_x86_64_20190617.zip')
version('1.9-beta5', sha256='e00ef16ac5abeb6b4c4d77846bd655fafc62669fbebf8cd2e941f07b3111907e',
url='https://github.com/chrchang/plink-ng/archive/b15c19f.tar.gz')
version('1.07', sha256='70c52ee47eed854293832639dbabb41c7c036db3a4881c136e6a71ecff4ac7f4',
- url='http://zzz.bwh.harvard.edu/plink/dist/plink-1.07-x86_64.zip',
+ url='https://zzz.bwh.harvard.edu/plink/dist/plink-1.07-x86_64.zip',
preferred=True)
depends_on('atlas', when='@1.9-beta5')
diff --git a/var/spack/repos/builtin/packages/plplot/package.py b/var/spack/repos/builtin/packages/plplot/package.py
index 166890da95..6ed1fb5eaf 100644
--- a/var/spack/repos/builtin/packages/plplot/package.py
+++ b/var/spack/repos/builtin/packages/plplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/plumed/package.py b/var/spack/repos/builtin/packages/plumed/package.py
index 0eae1ac429..6408c15225 100644
--- a/var/spack/repos/builtin/packages/plumed/package.py
+++ b/var/spack/repos/builtin/packages/plumed/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,14 +20,20 @@ class Plumed(AutotoolsPackage):
The software, written in C++, can be easily interfaced with both fortran
and C/C++ codes.
"""
- homepage = 'http://www.plumed.org/'
- url = 'https://github.com/plumed/plumed2/archive/v2.5.3.tar.gz'
+ homepage = 'https://www.plumed.org/'
+ url = 'https://github.com/plumed/plumed2/archive/v2.6.3.tar.gz'
git = 'https://github.com/plumed/plumed2.git'
version('master', branch='master')
+ version('2.7.1', sha256='cb8b5735d8dd61980fa6441f3dde3f33544240ae4177da0f529fb5abb355cd4a')
+ version('2.7.0', sha256='14450ea566c25ac9bf71fd77bb9c0c95e9038462b5739c73a515be82e2011cd6')
+ version('2.6.3', preferred=True, sha256='d05b9e4a4c1329fc932d5bdd04f20419be230f98159bdc012a91716461ab4a2f')
+ version('2.6.2', sha256='bbc2ef0cb08d404513b8b737c72333b6656389e15effd6a0f9ace2a5758c9a4a')
version('2.6.1', sha256='c1b3c397b2d971140aa240dde50e48a04ce78e3dedb02b6dca80fa53f8026e4e')
version('2.6.0', sha256='3d57ae460607a49547ef38a52c4ac93493a3966857c352280a9c05f5dcdb1820')
- version('2.5.5', preferred=True, sha256='70faa9ff1938e286dc388cb793b39840953e5646855b684f48df1bc864b737e8')
+ version('2.5.7', sha256='aa10d2879c3edeaef9d5a530fe8b05f67ecfbec2e9423e0f95701d0bc54826c7')
+ version('2.5.6', sha256='1bc29b0274196fb553cdf7ba8ecb7a93a91d60a920d99863edbcd536d618ce8c')
+ version('2.5.5', sha256='70faa9ff1938e286dc388cb793b39840953e5646855b684f48df1bc864b737e8')
version('2.5.4', sha256='a1647e598191f261e75d06351e607475d395af481315052a4c28563ac9989a7f')
version('2.5.3', sha256='543288be667dc4201fc461ecd2dd4878ddfbeac682d0c021c99ea8e501c7c9dc')
version('2.5.2', sha256='85d10cc46e2e37c7719cf51c0931278f56c2c8f8a9d86188b2bf97c2535a2ab4')
@@ -56,6 +62,9 @@ class Plumed(AutotoolsPackage):
variant('shared', default=True, description='Builds shared libraries')
variant('mpi', default=True, description='Activates MPI support')
variant('gsl', default=True, description='Activates GSL support')
+ variant('arrayfire', default='none',
+ values=('none', 'cpu', 'cuda', 'opencl'),
+ description='Activates FireArray support')
# Dependencies. LAPACK and BLAS are recommended but not essential.
depends_on('zlib')
@@ -64,6 +73,9 @@ class Plumed(AutotoolsPackage):
# For libmatheval support through the 'function' module
# which is enabled by default (or when optional_modules=all)
depends_on('libmatheval', when='@:2.4.99')
+ depends_on('arrayfire', when='arrayfire=cpu')
+ depends_on('arrayfire+cuda', when='arrayfire=cuda')
+ depends_on('arrayfire+opencl', when='arrayfire=opencl')
depends_on('mpi', when='+mpi')
depends_on('gsl', when='+gsl')
@@ -71,6 +83,7 @@ class Plumed(AutotoolsPackage):
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
+ depends_on('m4', type='build')
depends_on('py-cython', type='build', when='@2.5:')
force_autoreconf = True
@@ -126,6 +139,14 @@ class Plumed(AutotoolsPackage):
# provided by optimized libraries due to linking order
filter_file('-lgslcblas', '', 'configure.ac')
+ def patch(self):
+ # Ensure Spack's wrappers are used to compile the Python interface
+ env = 'CXX={0} LDSHARED="{0} -pthread -shared" ' \
+ 'LDCXXSHARED="{0} -pthread -shared"'.format(spack_cxx)
+ filter_file('plumed_program_name=plumed',
+ '{0} plumed_program_name=plumed'.format(env),
+ 'src/lib/Makefile', 'python/Makefile')
+
def configure_args(self):
spec = self.spec
@@ -158,18 +179,31 @@ class Plumed(AutotoolsPackage):
'STATIC_LIBS=-mt_mpi'
])
+ extra_libs = []
# Set flags to help find gsl
- if '+gsl' in self.spec:
- gsl_libs = self.spec['gsl'].libs
- blas_libs = self.spec['blas'].libs
- configure_opts.append('LDFLAGS={0}'.format(
+ if '+gsl' in spec:
+ gsl_libs = spec['gsl'].libs
+ blas_libs = spec['blas'].libs
+ extra_libs.append(
(gsl_libs + blas_libs).ld_flags
+ )
+ # Set flags to help with ArrayFire
+ if 'arrayfire=none' not in spec:
+ libaf = 'arrayfire:{0}'.format(spec.variants['arrayfire'].value)
+ extra_libs.append(spec[libaf].libs.search_flags)
+
+ if extra_libs:
+ configure_opts.append('LDFLAGS={0}'.format(
+ ' '.join(extra_libs)
))
# Additional arguments
configure_opts.extend([
'--enable-shared={0}'.format('yes' if '+shared' in spec else 'no'),
- '--enable-gsl={0}'.format('yes' if '+gsl' in spec else 'no')
+ '--enable-gsl={0}'.format('yes' if '+gsl' in spec else 'no'),
+ '--enable-af_cpu={0}'.format('yes' if 'arrayfire=cpu' in spec else 'no'),
+ '--enable-af_cuda={0}'.format('yes' if 'arrayfire=cuda' in spec else 'no'),
+ '--enable-af_ocl={0}'.format('yes' if 'arrayfire=ocl' in spec else 'no')
])
# Construct list of optional modules
diff --git a/var/spack/repos/builtin/packages/ply/package.py b/var/spack/repos/builtin/packages/ply/package.py
new file mode 100644
index 0000000000..830a5ef718
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ply/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 Ply(AutotoolsPackage):
+ """A light-weight dynamic tracer for Linux that leverages the
+ kernel's BPF VM in concert with kprobes and tracepoints to attach
+ probes to arbitrary points in the kernel."""
+
+ homepage = "https://github.com/iovisor/ply"
+ git = "https://github.com/iovisor/ply.git"
+
+ version('2.1.1', commit='899afb0c35ba2191dd7aa21f13bc7fde2655c475')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ def autoreconf(self, spec, prefix):
+ bash = which("bash")
+ bash('./autogen.sh')
diff --git a/var/spack/repos/builtin/packages/pmdk/package.py b/var/spack/repos/builtin/packages/pmdk/package.py
index 54e777bf52..3879a724bc 100644
--- a/var/spack/repos/builtin/packages/pmdk/package.py
+++ b/var/spack/repos/builtin/packages/pmdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,16 +12,22 @@ class Pmdk(Package):
for persistent memory
"""
- homepage = "http://pmem.io/pmdk/"
+ homepage = "https://pmem.io/pmdk/"
url = "https://github.com/pmem/pmdk/archive/1.5.tar.gz"
git = "https://github.com/pmem/pmdk.git"
version('master', branch='master')
- version('1.9', sha256='2c8a148070f4bbf9f82e2ca63d2f84cb5101fc6e72c1ba93cc673ca3b7b95467')
- version('1.8', sha256='a241ea76ef76d233cb92826b6823ed48091a2fb6963282a4fea848dbce68aa21')
- version('1.7', sha256='865ce1b422bc83109cb4a63dcff8fd1077eea3617e668faf6a043208d8be03ca')
- version('1.6', sha256='3b99e6c30709326a94d2e73a9247a8dfb58d0a394c5b7714e5c3d8a3ad2e2e9f')
- version('1.5', sha256='6b069d7207febeb62440e89245e8b18fcdf40b6170d2ec2ef33c252ed16db2d4')
+ version('1.11.0', sha256='bfbc82e6bfd788c8bcb380da76172b83732d12775a719c9c423eb2fadc78bb3a')
+ version('1.10', sha256='06edcd43ef267c4cc70754d5d1a5d88aeb9f2086bc014bf2594df4c5efd8cc4e')
+ version('1.9.2', sha256='6bca98ecf9e036603951024b7436d688cd1907b2d8c428373697fafff4096a4f')
+ version('1.9.1', sha256='3d0ea15099d6dc7b454a67ecd0ed04d7426ff05ee0331a221cb384e293d841f0')
+ version('1.9', sha256='2c8a148070f4bbf9f82e2ca63d2f84cb5101fc6e72c1ba93cc673ca3b7b95467')
+ version('1.8.1', sha256='ee4e93bbf29976eac2444e4eb04a862f38b8446f7400f8f7cdcf58febf6f6ba2')
+ version('1.8', sha256='a241ea76ef76d233cb92826b6823ed48091a2fb6963282a4fea848dbce68aa21')
+ version('1.7.1', sha256='7e98c0522a3e96b64822902c66024e24455f4742246c679cc0f46036ef4685bc')
+ version('1.7', sha256='865ce1b422bc83109cb4a63dcff8fd1077eea3617e668faf6a043208d8be03ca')
+ version('1.6', sha256='3b99e6c30709326a94d2e73a9247a8dfb58d0a394c5b7714e5c3d8a3ad2e2e9f')
+ version('1.5', sha256='6b069d7207febeb62440e89245e8b18fcdf40b6170d2ec2ef33c252ed16db2d4')
variant('ndctl', default=False, description='Build components requiring ndctl')
variant('doc', default=False, description='Build documentation')
diff --git a/var/spack/repos/builtin/packages/pmemkv/package.py b/var/spack/repos/builtin/packages/pmemkv/package.py
new file mode 100644
index 0000000000..d3f4945984
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pmemkv/package.py
@@ -0,0 +1,88 @@
+# Copyright 2013-2021 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 Pmemkv(CMakePackage):
+ """pmemkv is a local/embedded key-value datastore,
+ optimized for persistent memory.
+ """
+
+ homepage = "https://pmem.io/pmemkv/"
+ url = "https://github.com/pmem/pmemkv/archive/1.4.tar.gz"
+ git = "https://github.com/pmem/pmemkv.git"
+
+ version('master', branch='master')
+ version('1.4', sha256='6630917e0203eff7a520071c858baa7b7e108088da2fe8c4b31ec5f8c661fbe9')
+ version('1.3', sha256='f1b946ef3545bcc2751fa2e4faab0538cd3072b66d4c4575f21712e0cc53bae8')
+ version('1.2', sha256='22de74392e0a6eea5aa1955ed2d59462bf45ec69a01eb1cf2115e39e7bdc4754')
+ version('1.1', sha256='c4ca07c1fecad39b5dbf197673f033f27d74c9f9987f036f6eaf5c7f23a342f3')
+ version('1.0.3', sha256='cae393a01ba69364271c5894046bf2c611f677ac88012f2473fadf6fcd20ff29')
+ version('1.0.2', sha256='a0cbbb60c0342d6fd0b73d2cee1a1423c6a894b8d21daf669016809961fe23b8')
+
+ depends_on('libpmemobj-cpp@develop', when='@master')
+ depends_on('libpmemobj-cpp@1.12:', when='@1.4:')
+ depends_on('libpmemobj-cpp@1.11:', when='@1.3:')
+ depends_on('libpmemobj-cpp@1.10:', when='@1.2:')
+ depends_on('libpmemobj-cpp@1.9:', when='@1.1:')
+ depends_on('libpmemobj-cpp@1.8:', when='@1.0.2:')
+
+ depends_on('pmdk@master', when='@master')
+ depends_on('pmdk@master', when='@1.4:')
+ depends_on('pmdk@1.8:', when='@1.1:')
+ depends_on('pmdk@1.7:', when='@1.0.2:')
+
+ depends_on('memkind@1.8.0:')
+
+ depends_on('rapidjson')
+
+ # tbb is one of virtual dependencies.
+ # Please refer https://spack.readthedocs.io/en/latest/packaging_guide.html#virtual-dependencies
+ # we can use any packages which provides 'tbb'
+ # For example, 'intel-tbb' or 'intel-oneapi-tbb'
+ # Default is 'intel-tbb' (etc/spack/defaults/packages.yaml)
+ depends_on('tbb')
+
+ depends_on('cmake@3.3:')
+
+ variant('cmap', default=True, description='enable cmap engine.')
+ variant('vcmap', default=True, description='enable vcmap engine.')
+ variant('vsmap', default=True, description='enable vsmap engine.')
+ variant('csmap', default=False, description='enable experimental csmap engine.')
+ variant('stree', default=True, description='enable experimental stree engine.')
+ variant('tree3', default=False, description='enable experimental tree3 engine.')
+ variant('radix', default=False, description='enable experimental radix engine.')
+ variant('robinhood', default=False, description='enable experimental robinhood engine.')
+ variant('dram_vcmap', default=False, description='enable testing dram_vcmap engine.')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ self.define('BUILD_DOC', False),
+ self.define('BUILD_EXAMPLES', False),
+ self.define('BUILD_TESTS', False),
+ self.define('BUILD_JSON_CONFIG', True),
+ self.define('TESTS_LONG', False),
+ self.define('TESTS_USE_FORCED_PMEM', False),
+ self.define('TESTS_USE_VALGRIND', False),
+ self.define('TESTS_PMEMOBJ_DRD_HELGRIND', False),
+ self.define('TESTS_JSON', False),
+ self.define_from_variant('ENGINE_CMAP', 'cmap'),
+ self.define_from_variant('ENGINE_VCMAP', 'vcmap'),
+ self.define_from_variant('ENGINE_VSMAP', 'vsmap'),
+ self.define_from_variant('ENGINE_CSMAP', 'csmap'),
+ self.define_from_variant('ENGINE_STREE', 'stree'),
+ self.define_from_variant('ENGINE_TREE3', 'tree3'),
+ self.define_from_variant('ENGINE_RADIX', 'radix'),
+ self.define_from_variant('ENGINE_ROBINHOOD', 'robinhood'),
+ self.define_from_variant('ENGINE_DRAM_VCMAP', 'dram_vcmap'),
+ ]
+
+ if ('+csmap' in spec) or ('+robinhood' in spec):
+ args.append(self.define('CXX_STANDARD', 14))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/pmerge/package.py b/var/spack/repos/builtin/packages/pmerge/package.py
new file mode 100644
index 0000000000..91411de322
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pmerge/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 Pmerge(AutotoolsPackage):
+ """PMERGE implements a new method that identifies candidate PSVs by
+ building networks of loci that share high levels of nucleotide
+ similarity. The PMERGE is embedded in the analysis pipeline of the
+ widely used Stacks software, and it is straightforward to apply it as
+ an additional filter in population-genomic studies using RAD-seq
+ data."""
+
+ homepage = "https://github.com/beiko-lab/PMERGE"
+ git = "https://github.com/beiko-lab/PMERGE.git"
+
+ version('master', branch='master')
+
+ depends_on('automake@1.14:1.14.99', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('m4', type='build')
+ depends_on('perl', type='build')
+
+ @property
+ def configure_directory(self):
+ return 'Install'
diff --git a/var/spack/repos/builtin/packages/pmgr-collective/package.py b/var/spack/repos/builtin/packages/pmgr-collective/package.py
index 80cb96cfc3..df311eb200 100644
--- a/var/spack/repos/builtin/packages/pmgr-collective/package.py
+++ b/var/spack/repos/builtin/packages/pmgr-collective/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PmgrCollective(Package):
"""PMGR_COLLECTIVE provides a scalable network for bootstrapping
MPI jobs."""
- homepage = "http://www.sourceforge.net/projects/pmgrcollective"
+ homepage = "https://www.sourceforge.net/projects/pmgrcollective"
url = "http://downloads.sourceforge.net/project/pmgrcollective/pmgrcollective/PMGR_COLLECTIVE-1.0/pmgr_collective-1.0.tgz"
version('1.0', sha256='c8022d1128ce5e8f637166af6e55c13700e665550e468b8cdb1531441c6bb7f5')
diff --git a/var/spack/repos/builtin/packages/pmix/package.py b/var/spack/repos/builtin/packages/pmix/package.py
index b752aca0bf..cc6099d41b 100644
--- a/var/spack/repos/builtin/packages/pmix/package.py
+++ b/var/spack/repos/builtin/packages/pmix/package.py
@@ -1,12 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-
+import os
from spack import *
-import spack.architecture
-import os
class Pmix(AutotoolsPackage):
@@ -37,6 +35,8 @@ class Pmix(AutotoolsPackage):
maintainers = ['rhc54']
version('master', branch='master')
+ version('3.2.1', sha256='7e5db8ada5828cf85c12f70db6bfcf777d13e5c4c73b2206bb5e394d47066a2b')
+ version('3.1.5', sha256='88934195174455df478b996313095df25b51d0caf5a5cce01b22f0ccdc6c5cf7')
version('3.1.3', sha256='118acb9c4e10c4e481406dcffdfa762f314af50db75336bf8460e53b56dc439d')
version('3.1.2', sha256='28aed0392d4ca2cdfbdd721e6210c94dadc9830677fea37a0abe9d592c00f9c3')
version('3.0.2', sha256='df68f35a3ed9517eeade80b13855cebad8fde2772b36a3f6be87559b6d430670')
@@ -59,6 +59,10 @@ class Pmix(AutotoolsPackage):
description="allow a PMIx server to request services from "
"a system-level REST server")
+ variant('docs',
+ default=False,
+ description='Build manpages')
+
depends_on('libevent@2.0.20:2.0.22,2.1.8')
depends_on('hwloc@1.11.0:1.11.99,2.0.1:', when='@3.0.0:')
depends_on("m4", type=("build"), when="@master")
@@ -68,6 +72,7 @@ class Pmix(AutotoolsPackage):
depends_on("perl", type=("build"), when="@master")
depends_on('curl', when="+restful")
depends_on('jansson@2.11:', when="+restful")
+ depends_on('pandoc', type='build', when='+docs')
conflicts('@:3.9.9', when='+restful')
@@ -93,6 +98,9 @@ class Pmix(AutotoolsPackage):
else:
config_args.append('--disable-pmi-backward-compatibility')
+ if '~docs' in self.spec:
+ config_args.append('--disable-man-pages')
+
# libevent support
config_args.append(
'--with-libevent={0}'.format(spec['libevent'].prefix))
@@ -100,8 +108,8 @@ class Pmix(AutotoolsPackage):
# Versions < 2.1.1 have a bug in the test code that *sometimes*
# causes problems on strict alignment architectures such as
# aarch64. Work-around is to just not build the test code.
- if 'aarch64' in spack.architecture.sys_type() and \
- self.spec.version < Version('2.1.1'):
+ if (self.spec.satisfies('target=aarch64:') and
+ self.spec.version < Version('2.1.1')):
config_args.append('--without-tests-examples')
# Versions >= 3.0 also use hwloc
diff --git a/var/spack/repos/builtin/packages/pmlib/package.py b/var/spack/repos/builtin/packages/pmlib/package.py
index 3c7ea4a0ed..31cd0a2404 100644
--- a/var/spack/repos/builtin/packages/pmlib/package.py
+++ b/var/spack/repos/builtin/packages/pmlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pnfft/package.py b/var/spack/repos/builtin/packages/pnfft/package.py
index 209263a440..ed8e7fac28 100644
--- a/var/spack/repos/builtin/packages/pnfft/package.py
+++ b/var/spack/repos/builtin/packages/pnfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pngquant/package.py b/var/spack/repos/builtin/packages/pngquant/package.py
index a6bcd69de7..1901654d20 100644
--- a/var/spack/repos/builtin/packages/pngquant/package.py
+++ b/var/spack/repos/builtin/packages/pngquant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Pngquant(AutotoolsPackage):
"""
homepage = "https://pngquant.org/"
- url = "http://pngquant.org/pngquant-2.12.5-src.tar.gz"
+ url = "https://pngquant.org/pngquant-2.12.5-src.tar.gz"
version('2.12.5', sha256='3638936cf6270eeeaabcee42e10768d78e4dc07cac9310307835c1f58b140808')
diff --git a/var/spack/repos/builtin/packages/pngwriter/package.py b/var/spack/repos/builtin/packages/pngwriter/package.py
index a544f48247..49b4f46fa9 100644
--- a/var/spack/repos/builtin/packages/pngwriter/package.py
+++ b/var/spack/repos/builtin/packages/pngwriter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pnmpi/package.py b/var/spack/repos/builtin/packages/pnmpi/package.py
index 8c936455b7..5efe1533eb 100644
--- a/var/spack/repos/builtin/packages/pnmpi/package.py
+++ b/var/spack/repos/builtin/packages/pnmpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/poamsa/package.py b/var/spack/repos/builtin/packages/poamsa/package.py
index deba0f0544..5cb548b0ee 100644
--- a/var/spack/repos/builtin/packages/poamsa/package.py
+++ b/var/spack/repos/builtin/packages/poamsa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pocl/package.py b/var/spack/repos/builtin/packages/pocl/package.py
index 121b240e28..e148b4b554 100644
--- a/var/spack/repos/builtin/packages/pocl/package.py
+++ b/var/spack/repos/builtin/packages/pocl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
import os
from spack import *
-from spack.package_test import compile_c_and_execute, compare_output_file
+from spack.package_test import compare_output_file, compile_c_and_execute
class Pocl(CMakePackage):
@@ -20,6 +20,7 @@ class Pocl(CMakePackage):
git = "https://github.com/pocl/pocl.git"
version("master", branch="master")
+ version('1.6', sha256='b0a4c0c056371b6f0db726b88fbb76bbee94948fb2abd4dbc8d958f7c42f766c')
version('1.5', sha256='4fcf4618171727d165fc044d465a66e3119217bb4577a97374f94fcd8aed330e')
version('1.4', sha256='ec237faa83bb1c803fbdf7c6e83d8a2ad68b6f0ed1879c3aa16c0e1dcc478742')
version('1.3', sha256='6527e3f47fab7c21e96bc757c4ae3303901f35e23f64642d6da5cc4c4fcc915a')
@@ -32,6 +33,9 @@ class Pocl(CMakePackage):
version('0.11', sha256='24bb801fb87d104b66faaa95d1890776fdeabb37ad1b12fb977281737c7f29bb')
version('0.10', sha256='e9c38f774a77e61f66d850b705a5ba42d49356c40e75733db4c4811e091e5088')
+ conflicts('@:1.5', when='target=a64fx',
+ msg='a64fx is supported by pocl v1.6 and above.')
+
# This is Github's pocl/pocl#373
patch("uint.patch", when="@:0.13")
patch("vecmathlib.patch", when="@:0.13")
@@ -51,7 +55,8 @@ class Pocl(CMakePackage):
# enabled by default, and also because they fail to build for us
# (see #1616)
# These are the supported LLVM versions
- depends_on("llvm +clang @6.0:10.0", when="@master")
+ depends_on("llvm +clang @6.0:11.0", when="@master")
+ depends_on("llvm +clang +shared_libs -flang @6.0:11.0", when="@1.6")
depends_on("llvm +clang @6.0:10.0", when="@1.5")
depends_on("llvm +clang @6.0:9.0", when="@1.4")
depends_on("llvm +clang @5.0:8.0", when="@1.3")
diff --git a/var/spack/repos/builtin/packages/podio/package.py b/var/spack/repos/builtin/packages/podio/package.py
index ebb1c0e880..a6e6e10a02 100644
--- a/var/spack/repos/builtin/packages/podio/package.py
+++ b/var/spack/repos/builtin/packages/podio/package.py
@@ -1,10 +1,8 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Podio(CMakePackage):
"""PODIO, or plain-old-data I/O, is a C++ library to support the creation
@@ -16,13 +14,17 @@ class Podio(CMakePackage):
maintainers = ['vvolkl', 'drbenmorgan']
+ tags = ["hep", "key4hep"]
+
version('master', branch='master')
- version('0.12.0', sha256='1729a2ce21e8b307fc37dfb9a9f5ae031e9f4be4992385cf99dba3e5fdf5323a')
- version('0.11.0', sha256='4b2765566a14f0ddece2c894634e0a8e4f42f3e44392addb9110d856f6267fb6')
- version('0.10.0', sha256='b5b42770ec8b96bcd2748abc05669dd3e4d4cc84f81ed57d57d2eda1ade90ef2')
+ version('0.13.1', sha256='2ae561c2a0e46c44245aa2098772374ad246c9fcb1956875c95c69c963501353')
+ version('0.13', sha256='e9cbd4e25730003d3706ad82e28b15cb5bdc524a78b0a26e90b89ea852101498')
+ version('0.12', sha256='1729a2ce21e8b307fc37dfb9a9f5ae031e9f4be4992385cf99dba3e5fdf5323a')
+ version('0.11', sha256='4b2765566a14f0ddece2c894634e0a8e4f42f3e44392addb9110d856f6267fb6')
+ version('0.10', sha256='b5b42770ec8b96bcd2748abc05669dd3e4d4cc84f81ed57d57d2eda1ade90ef2')
version('0.9.2', sha256='8234d1b9636029124235ef81199a1220968dcc7fdaeab81cdc96a47af332d240')
- version('0.9.0', sha256='3cde67556b6b76fd2d004adfaa3b3b6173a110c0c209792bfdb5f9353e21076f')
- version('0.8.0', sha256='9d035a7f5ebfae5279a17405003206853271af692f762e2bac8e73825f2af327')
+ version('0.9', sha256='3cde67556b6b76fd2d004adfaa3b3b6173a110c0c209792bfdb5f9353e21076f')
+ version('0.8', sha256='9d035a7f5ebfae5279a17405003206853271af692f762e2bac8e73825f2af327')
variant('build_type', default='Release',
description='The build type to build',
@@ -41,29 +43,46 @@ class Podio(CMakePackage):
depends_on('python', type=('build', 'run'))
depends_on('py-pyyaml', type=('build', 'run'))
depends_on('py-jinja2@2.10.1:', type=('build', 'run'), when='@0.12.0:')
- depends_on('sio', type=('build', 'run'), when='+sio')
+ depends_on('sio', type=('build', 'link'), when='+sio')
conflicts('+sio', when='@:0.12', msg='sio support requires at least podio@0.13')
def cmake_args(self):
args = [
- self.define('BUILD_TESTING', self.run_tests),
self.define_from_variant('ENABLE_SIO', 'sio')
]
return args
+ def setup_run_environment(self, env):
+ env.prepend_path('PYTHONPATH', self.prefix.python)
+
def url_for_version(self, version):
- # podio releases are dashes and padded with a leading zero
- # the patch version is omitted when 0
- # so for example v01-12-01, v01-12 ...
- major = (str(version[0]).zfill(2))
- minor = (str(version[1]).zfill(2))
- patch = (str(version[2]).zfill(2))
- if version[2] == 0:
- url = "https://github.com/AIDASoft/podio/archive/v%s-%s.tar.gz" % (major, minor)
+ """Translate version numbers to ilcsoft conventions.
+ in spack, the convention is: 0.1 (or 0.1.0) 0.1.1, 0.2, 0.2.1 ...
+ in ilcsoft, releases are dashed and padded with a leading zero
+ the patch version is omitted when 0
+ so for example v01-12-01, v01-12 ...
+ :param self: spack package class that has a url
+ :type self: class: `spack.PackageBase`
+ :param version: version
+ :type param: str
+ """
+ base_url = self.url.rsplit('/', 1)[0]
+
+ if len(version) == 1:
+ major = version[0]
+ minor, patch = 0, 0
+ elif len(version) == 2:
+ major, minor = version
+ patch = 0
else:
- url = "https://github.com/AIDASoft/podio/archive/v%s-%s-%s.tar.gz" % (major, minor, patch)
- return url
+ major, minor, patch = version
- def setup_run_environment(self, env):
- env.prepend_path('PYTHONPATH', self.prefix.python)
+ # By now the data is normalized enough to handle it easily depending
+ # on the value of the patch version
+ if patch == 0:
+ version_str = 'v%02d-%02d.tar.gz' % (major, minor)
+ else:
+ version_str = 'v%02d-%02d-%02d.tar.gz' % (major, minor, patch)
+
+ return base_url + '/' + version_str
diff --git a/var/spack/repos/builtin/packages/poke/package.py b/var/spack/repos/builtin/packages/poke/package.py
new file mode 100644
index 0000000000..f90c7149d5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/poke/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 Poke(AutotoolsPackage, GNUMirrorPackage):
+ """"The extensible editor for structured binary data"""
+ homepage = "https://www.jemarch.net/poke.html"
+ gnu_mirror_path = 'poke/poke-1.0.tar.gz'
+
+ maintainers = ['ChristianTackeGSI']
+
+ version('1.0', sha256='de930b8700c0772b3c2cd0d0ca35f50fd3d77bdf82c6251eb516b49e8ca25b0a')
+
+ depends_on('pkgconfig')
+ depends_on('readline')
+ depends_on('bdw-gc')
+ depends_on('json-c')
+
+ build_directory = 'spack-build'
diff --git a/var/spack/repos/builtin/packages/polymake/package.py b/var/spack/repos/builtin/packages/polymake/package.py
index f32033188c..3bede01dad 100644
--- a/var/spack/repos/builtin/packages/polymake/package.py
+++ b/var/spack/repos/builtin/packages/polymake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/poplddecay/package.py b/var/spack/repos/builtin/packages/poplddecay/package.py
index 6dbf55dc27..16d39d9e58 100644
--- a/var/spack/repos/builtin/packages/poplddecay/package.py
+++ b/var/spack/repos/builtin/packages/poplddecay/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,7 +17,7 @@ class Poplddecay(MakefilePackage):
maintainers = ['robqiao']
- version('3.41', sha256='09a1ad01581520b84ef73eaa0b199879c84e77b259ba6ff06dbca5fcfc090457')
+ version('3.41', sha256='b84fe5c9a1e1f6798eebbe4445b0b4bc7d02ac9f03fd01cb9cdcc8ee4db71040')
version('3.40', sha256='5070930166fb90f7eaaa4b87c4430caa8a827d79c54683e2f56434a4daf69778')
build_directory = 'src'
diff --git a/var/spack/repos/builtin/packages/poppler-data/package.py b/var/spack/repos/builtin/packages/poppler-data/package.py
index 19d0c0e3c7..f6d5c29001 100644
--- a/var/spack/repos/builtin/packages/poppler-data/package.py
+++ b/var/spack/repos/builtin/packages/poppler-data/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/poppler/package.py b/var/spack/repos/builtin/packages/poppler/package.py
index 7368e73428..fd6d8da504 100644
--- a/var/spack/repos/builtin/packages/poppler/package.py
+++ b/var/spack/repos/builtin/packages/poppler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,11 +10,13 @@ class Poppler(CMakePackage):
"""Poppler is a PDF rendering library based on the xpdf-3.0 code base."""
homepage = "https://poppler.freedesktop.org"
- url = "https://poppler.freedesktop.org/poppler-0.77.0.tar.xz"
+ url = "https://poppler.freedesktop.org/poppler-21.09.0.tar.xz"
list_url = "https://poppler.freedesktop.org/releases.html"
git = "https://gitlab.freedesktop.org/poppler/poppler.git"
version('master', branch='master')
+ version('21.09.0', sha256='5a47fef738c2b99471f9b459a8bf8b40aefb7eed92caa4861c3798b2e126d05b')
+ version('21.07.0', sha256='e26ab29f68065de4d6562f0a3e2b5435a83ca92be573b99a1c81998fa286a4d4')
version('0.90.1', sha256='984d82e72e91418d280885298c8bdc855a2fd92665fd52a1345b27235e0c71c4')
version('0.87.0', sha256='6f602b9c24c2d05780be93e7306201012e41459f289b8279a27a79431ad4150e')
version('0.79.0', sha256='f985a4608fe592d2546d9d37d4182e502ff6b4c42f8db4be0a021a1c369528c8')
@@ -24,6 +26,7 @@ class Poppler(CMakePackage):
version('0.64.0', sha256='b21df92ca99f78067785cf2dc8e06deb04726b62389c0ee1f5d8b103c77f64b1')
version('0.61.1', sha256='1266096343f5163c1a585124e9a6d44474e1345de5cdfe55dc7b47357bcfcda9')
+ variant('boost', default=False, description='Enable Boost for Splash')
variant('cms', default=False, description='Use color management system')
variant('cpp', default=False, description='Compile poppler cpp wrapper')
variant('glib', default=False, description='Compile poppler glib wrapper')
@@ -43,6 +46,7 @@ class Poppler(CMakePackage):
depends_on('fontconfig')
depends_on('freetype')
+ depends_on('boost@1.58.0:', when='+boost')
depends_on('lcms', when='+cms')
depends_on('glib@2.41:', when='+glib')
depends_on('gobject-introspection', when='+gobject')
@@ -63,7 +67,7 @@ class Poppler(CMakePackage):
# a small section of code in the QT5 wrappers that expects it
# to be present.
patch('poppler_page_splash.patch', when='@0.64.0:0.90.0 ^qt@5.0:')
- patch('poppler_page_splash.0.90.1.patch', when='@0.90.1: ^qt@5.0:')
+ patch('poppler_page_splash.0.90.1.patch', when='@0.90.1:21.06 ^qt@5.0:')
# Only needed to run `make test`
resource(
@@ -86,6 +90,11 @@ class Poppler(CMakePackage):
# Install header files
args.append('-DENABLE_UNSTABLE_API_ABI_HEADERS=ON')
+ if '+boost' in spec:
+ args.append('-DENABLE_BOOST=ON')
+ else:
+ args.append('-DENABLE_BOOST=OFF')
+
if '+cms' in spec:
args.append('-DENABLE_CMS=lcms2')
else:
diff --git a/var/spack/repos/builtin/packages/popt/package.py b/var/spack/repos/builtin/packages/popt/package.py
index 4256f4385f..2a28509c5b 100644
--- a/var/spack/repos/builtin/packages/popt/package.py
+++ b/var/spack/repos/builtin/packages/popt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,10 +14,10 @@ class Popt(AutotoolsPackage):
version('1.16', sha256='e728ed296fe9f069a0e005003c3d6b2dde3d9cad453422a10d6558616d304cc8')
- depends_on('libiconv')
+ depends_on('iconv')
def patch(self):
# Remove flags not recognized by the NVIDIA compilers
- if self.spec.satisfies('%nvhpc'):
+ if self.spec.satisfies('%nvhpc@:20.11'):
filter_file('CFLAGS="$CFLAGS -Wall -W"',
'CFLAGS="$CFLAGS -Wall"', 'configure', string=True)
diff --git a/var/spack/repos/builtin/packages/porta/package.py b/var/spack/repos/builtin/packages/porta/package.py
index b61ed84db0..950f78f363 100644
--- a/var/spack/repos/builtin/packages/porta/package.py
+++ b/var/spack/repos/builtin/packages/porta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ from spack import *
class Porta(Package):
"""PORTA is a collection of routines for analyzing polytopes and
polyhedra"""
- homepage = "http://porta.zib.de"
- url = "http://porta.zib.de/porta-1.4.1.zip"
+ homepage = "https://porta.zib.de"
+ url = "https://porta.zib.de/porta-1.4.1.zip"
version('1.4.1', sha256='21e3784f46f4f2154100a0c39cbd9211a26e513ffe0c9f70ab75a3bb2810b059')
diff --git a/var/spack/repos/builtin/packages/portage/package.py b/var/spack/repos/builtin/packages/portage/package.py
index 95c881ae6c..331e4aed48 100644
--- a/var/spack/repos/builtin/packages/portage/package.py
+++ b/var/spack/repos/builtin/packages/portage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,54 +12,94 @@ class Portage(CMakePackage):
to build a highly customized, hybrid parallel (MPI+X) conservative
remapping library for transfer of field data between meshes.
"""
- homepage = "http://portage.lanl.gov/"
+ homepage = "https://portage.lanl.gov/"
git = "https://github.com/laristra/portage.git"
+ url = "https://github.com/laristra/portage/releases/download/3.0.0/portage-3.0.0.tar.gz"
+
+ maintainers = ['raovgarimella']
# tarballs don't have submodules, so use git tags
- version('develop', branch='master', submodules=True)
- version('1.2.2', tag='v1.2.2', submodules=True)
- version('1.1.1', tag='v1.1.1', submodules=True)
- version('1.1.0', tag='v1.1.0', submodules=True)
-
- # fabs() needs math.h for gcc-7, got fixed in
- # versions above 1.2.2
- patch('gcc-7.patch', when='@:1.2.2 %gcc@7:')
- # part of https://github.com/laristra/cinch/commit/f87f848269fac25aa5b8d0bd5d9c9b2d2d6fb0ad
- # fixed in version above 1.2.2
- patch('p_lapacke_config.patch', when='@1.2.2')
- # don't enable debug prints in RelWithDebInfo build
- # fixed in version above 1.2.2
- patch('rel-with-deb-info.patch', when='@1.2.2')
-
- # intel/19.0.4 got an ICE (internal compiler error) compiling pairs.cc
- patch('p_intel_ice.patch', when='@1.2.2')
+ version('3.0.0', sha256='7a5a21ffbc35fa54a5136d937cfda6f836c7496ff2b5adf54deb4107501333da')
+ version('master', branch='master', submodules=True)
variant('mpi', default=True, description='Support MPI')
+ variant('tangram', default=False, description='Use Tangram interface reconstruction package')
+ variant('jali', default=False, description='Include support for Jali mesh framework')
+ variant('flecsisp', default=False, description='Include support for FleCSI mesh framework')
+ variant('thrust', default=False, description='Enable on-node parallelism using NVidia Thrust library')
+ variant('kokkos', default=False, description='Enable on-node or device parallelism with Kokkos')
+ variant('openmp', default=False, description="Enable on-node parallelism using OpenMP")
+ variant('cuda', default=False, description="Enable GPU parallelism using CUDA")
+
+ depends_on("cmake@3.13:", type='build')
- depends_on("cmake@3.1:", type='build')
depends_on('mpi', when='+mpi')
- depends_on('lapack')
- depends_on('boost')
+
+ depends_on('tangram', when='+tangram')
+ depends_on('tangram+mpi', when='+tangram+mpi')
+ depends_on('tangram+jali', when='+tangram+jali')
+ depends_on('tangram+flecsisp', when='+tangram+flecsisp')
+ depends_on('tangram+thrust', when='+tangram+thrust')
+ depends_on('tangram+kokkos', when='+tangram+kokkos')
+ depends_on('tangram+cuda', when='+tangram+cuda')
+
+ depends_on('wonton')
+ depends_on('wonton+mpi', when='+mpi')
+ depends_on('wonton+jali', when='+jali')
+ depends_on('wonton+flecsisp', when='+flecsisp')
+ depends_on('wonton+thrust', when='+thrust')
+ depends_on('wonton+kokkos', when='+kokkos')
+ depends_on('wonton+openmp', when='+openmp')
+ depends_on('wonton+cuda', when='+cuda')
+
+ # Jali needs MPI
+ conflicts('+jali ~mpi')
+
+ # Thrust with CUDA does not work as yet
+ conflicts('+thrust +cuda')
+
+ # Don't enable Kokkos and Thrust simultaneously
+ conflicts('+thrust +kokkos')
def cmake_args(self):
- options = ['-DENABLE_UNIT_TESTS=ON', '-DENABLE_APP_TESTS=ON']
+ options = []
if '+mpi' in self.spec:
- options.extend([
- '-DENABLE_MPI=ON',
- '-DENABLE_MPI_CXX_BINDINGS=ON',
- '-DCMAKE_CXX_COMPILER=%s' % self.spec['mpi'].mpicxx,
- '-DCMAKE_C_COMPILER=%s' % self.spec['mpi'].mpicc,
- ])
+ options.append('-DPORTAGE_ENABLE_MPI=ON')
else:
- options.append('-DENABLE_MPI=OFF')
+ options.append('-DPORTAGE_ENABLE_MPI=OFF')
- options.append('-DBLA_VENDOR=' + self.spec['blas'].name.upper())
- options.append('-DBLAS_LIBRARIES=' + self.spec['blas'].libs.joined())
- options.append('-DLAPACK_LIBRARIES=' +
- self.spec['lapack'].libs.joined())
+ if '+thrust' in self.spec:
+ options.append('-DPORTAGE_ENABLE_THRUST=ON')
+ else:
+ options.append('-DPORTAGE_ENABLE_THRUST=OFF')
- options.append("-DLAPACKE_LIBRARY=" +
- self.spec["lapack:c"].libs.joined(";"))
+ if '+kokkos' in self.spec:
+ options.append('-DPORTAGE_ENABLE_Kokkos=ON')
+ else:
+ options.append('-DPORTAGE_ENABLE_Kokkos=OFF')
+
+ if '+jali' in self.spec:
+ options.append('-DPORTAGE_ENABLE_Jali=ON')
+ else:
+ options.append('-DPORTAGE_ENABLE_Jali=OFF')
+
+ if '+flecsi' in self.spec:
+ options.append('-DPORTAGE_ENABLE_FleCSI=ON')
+ else:
+ options.append('-DPORTAGE_ENABLE_FleCSI=OFF')
+
+ if '+tangram' in self.spec:
+ options.append('-DPORTAGE_ENABLE_TANGRAM=ON')
+ else:
+ options.append('-DPORTAGE_ENABLE_TANGRAM=OFF')
+
+ # Unit test variant
+ if self.run_tests:
+ options.append('-DENABLE_UNIT_TESTS=ON')
+ options.append('-DENABLE_APP_TESTS=ON')
+ else:
+ options.append('-DENABLE_UNIT_TESTS=OFF')
+ options.append('-DENABLE_APP_TESTS=OFF')
return options
diff --git a/var/spack/repos/builtin/packages/portcullis/package.py b/var/spack/repos/builtin/packages/portcullis/package.py
index 6c4d0222c2..9f5b35a805 100644
--- a/var/spack/repos/builtin/packages/portcullis/package.py
+++ b/var/spack/repos/builtin/packages/portcullis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/postgis/package.py b/var/spack/repos/builtin/packages/postgis/package.py
index 95d7faee98..a0f3ddd57d 100644
--- a/var/spack/repos/builtin/packages/postgis/package.py
+++ b/var/spack/repos/builtin/packages/postgis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/postgresql/package.py b/var/spack/repos/builtin/packages/postgresql/package.py
index 328203138c..8f45c5c9d0 100644
--- a/var/spack/repos/builtin/packages/postgresql/package.py
+++ b/var/spack/repos/builtin/packages/postgresql/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
@@ -12,8 +14,8 @@ class Postgresql(AutotoolsPackage):
that has earned it a strong reputation for reliability, data integrity, and
correctness."""
- homepage = "http://www.postgresql.org/"
- url = "http://ftp.postgresql.org/pub/source/v9.3.4/postgresql-9.3.4.tar.bz2"
+ homepage = "https://www.postgresql.org/"
+ url = "https://ftp.postgresql.org/pub/source/v9.3.4/postgresql-9.3.4.tar.bz2"
list_url = "http://ftp.postgresql.org/pub/source"
list_depth = 1
@@ -44,6 +46,7 @@ class Postgresql(AutotoolsPackage):
variant('tcl', default=False, description='Enable Tcl bindings.')
variant('gssapi', default=False,
description='Build with GSSAPI functionality.')
+ variant('xml', default=False, description='Build with XML support.')
depends_on('readline', when='lineedit=readline')
depends_on('libedit', when='lineedit=libedit')
@@ -51,6 +54,7 @@ class Postgresql(AutotoolsPackage):
depends_on('tcl', when='+tcl')
depends_on('perl', when='+perl')
depends_on('python', when='+python')
+ depends_on('libxml2', when='+xml')
def configure_args(self):
config_args = ["--with-openssl"]
@@ -77,10 +81,13 @@ class Postgresql(AutotoolsPackage):
if '+tcl' in self.spec:
config_args.append('--with-tcl')
+ if '+xml' in self.spec:
+ config_args.append('--with-libxml')
+
return config_args
def install(self, spec, prefix):
- if '+client-only' in self.spec:
+ if '+client_only' in self.spec:
for subdir in ('bin', 'include', 'interfaces', 'pl'):
with working_dir(os.path.join('src', subdir)):
make('install')
diff --git a/var/spack/repos/builtin/packages/povray/fix_prebuild.sh.patch b/var/spack/repos/builtin/packages/povray/fix_prebuild.sh.patch
new file mode 100644
index 0000000000..785dc433b3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/povray/fix_prebuild.sh.patch
@@ -0,0 +1,15 @@
+diff -Naur spack-src/unix/prebuild.sh spack-src.patched/unix/prebuild.sh
+--- spack-src/unix/prebuild.sh 2020-11-19 16:49:04.573263288 -0500
++++ spack-src.patched/unix/prebuild.sh 2020-11-19 16:51:35.599850471 -0500
+@@ -62,8 +62,9 @@
+
+ # Prevents running from another directory.
+ if test x"`dirname $0`" != x"."; then
+- echo "$0: must ran from POV-Ray's unix/ directory"
+- exit 1
++ wdir=`dirname $0`
++ echo >&2 "Changing directory to '$wdir' ..."
++ cd $wdir
+ fi
+
+ # Check optional argument.
diff --git a/var/spack/repos/builtin/packages/povray/package.py b/var/spack/repos/builtin/packages/povray/package.py
new file mode 100644
index 0000000000..f59974529b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/povray/package.py
@@ -0,0 +1,159 @@
+# Copyright 2013-2021 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)
+
+# For getting username for defaulting COMPILED_BY
+import getpass
+
+# For getting fqdn for defaulting COMPILED_BY
+import socket
+
+from spack import *
+
+
+class Povray(AutotoolsPackage):
+ """The Persistence of Vision Raytracer creates three-dimensional,
+ photo-realistic images using a rendering technique called ray-tracing. It
+ reads in a text file containing information describing the objects and
+ lighting in a scene and generates an image of that scene from the view
+ point of a camera also described in the text file. Ray-tracing is not a
+ fast process by any means, but it produces very high quality images with
+ realistic reflections, shading, perspective and other effects.
+ """
+
+ # Add a proper url for your package's homepage here.
+ homepage = "http://povray.org/download/"
+ url = "https://github.com/POV-Ray/povray/archive/v3.7.0.8.tar.gz"
+ git = "https://github.com/POV-Ray/povray.git"
+
+ # maintainers = ['payerle' ]
+
+ version('3.7.0.8', sha256='53d11ebd2972fc452af168a00eb83aefb61387662c10784e81b63e44aa575de4')
+
+ variant('boost', default=True, description='Build with boost support')
+ variant('debug', default=False,
+ description='Enable compiler debugging mode')
+ variant('io-restrictions', default=True,
+ description='Enable POV-Rays mechanism for control of I/O '
+ 'operations')
+ variant('jpeg', default=True, description='Build with jpeg support')
+ variant('libpng', default=True, description='Build with libpng support')
+ variant('libtiff', default=True, description='Build with libtiff support')
+ variant('mkl', default=True, description='Build with Intel MKL support')
+ variant('openexr', default=True, description='Build with OpenEXR support')
+ variant('profile', default=False,
+ description='Enable program execution profiling')
+ variant('static', default=False,
+ description='Build static instead shared binaries')
+ variant('zlib', default=True, description='Build with zlib support')
+ # SDL support is limited to sdl version 1, not sdl2, and spack currently
+ # only supports sdl2
+ # variant('sdl', default=True,
+ # description='Build with SDL support (for display preview)')
+ # X11 support requires SDL, and I believe therefore lacks support for
+ # remote displays. As we do not have SDL support, no X11 support
+ # variant('x11', default=True, description='Build with X11 support')
+
+ # Build dependencies
+ depends_on('autoconf@2.59:', type='build')
+ depends_on('automake@1.9:', type='build')
+ depends_on('perl', type='build')
+ depends_on('m4', type='build')
+ depends_on('boost@1.37:', when='+boost')
+ depends_on('zlib@1.2.1:', when='+zlib')
+ depends_on('libpng@1.2.5:', when='+libpng')
+ depends_on('jpeg', when='+jpeg')
+ depends_on('libtiff@3.6.1:', when='+libtiff')
+ depends_on('mkl', when='+mkl')
+ depends_on('openexr@1.2:', when='+openexr')
+
+ # MKL conflicts
+ conflicts('+mkl', when='target=aarch64:',
+ msg='Intel MKL only runs on x86')
+ conflicts('+mkl', when='target=ppc64:',
+ msg='Intel MKL only runs on x86')
+ conflicts('+mkl', when='target=ppc64le:',
+ msg='Intel MKL only runs on x86')
+
+ # This patch enables prebuild.sh to be invoked from any directory
+ # (it immediately cds to the directory containing prebuild.sh)
+ # This is better than a broken check that it was called from the
+ # containing directory
+ patch('fix_prebuild.sh.patch')
+
+ @run_before('autoreconf')
+ def run_prebuild_script(self):
+ # We need to run <build_dir>/unix/prebuild.sh
+ # and it must be run from within the directory containing it
+ unix_dir = join_path(self.build_directory, 'unix')
+ prebuild_path = join_path(unix_dir, 'prebuild.sh')
+ prebuild_script = which(prebuild_path)
+ prebuild_script()
+
+ def configure_args(self):
+ extra_args = []
+
+ # POVRay insists upon a COMPILED_BY value being passed to configure
+ # We generate a generic using process owner and fqdn of build host.
+ fqdn = socket.getfqdn()
+ uname = getpass.getuser()
+ compiled_by = 'Installed by spack <{0}@{1}>'.format(uname, fqdn)
+ extra_args.append('COMPILED_BY={0}'.format(compiled_by))
+
+ extra_args.append('--disable-silent-rules') # Verbose make output
+ extra_args += self.enable_or_disable('debug')
+ extra_args += self.enable_or_disable('io-restrictions')
+ extra_args += self.enable_or_disable('profile')
+ extra_args += self.enable_or_disable('static')
+
+ if '+boost' in self.spec:
+ extra_args.append('--with-boost={0}'.format(
+ self.spec['boost'].prefix))
+ else:
+ extra_args.append('--without-boost')
+
+ if '+jpeg' in self.spec:
+ extra_args.append('--with-libjpeg={0}'.format(
+ self.spec['jpeg'].prefix))
+ else:
+ extra_args.append('--without-libjpeg')
+
+ if '+libpng' in self.spec:
+ extra_args.append('--with-libpng={0}'.format(
+ self.spec['libpng'].prefix))
+ else:
+ extra_args.append('--without-libpng')
+
+ if '+libtiff' in self.spec:
+ extra_args.append('--with-libtiff={0}'.format(
+ self.spec['libtiff'].prefix))
+ else:
+ extra_args.append('--without-libtiff')
+
+ if '+mkl' in self.spec:
+ extra_args.append('--with-libmkl={0}'.format(
+ self.spec['mkl'].prefix))
+ else:
+ extra_args.append('--without-libmkl')
+
+ if '+openexr' in self.spec:
+ extra_args.append('--with-openexr={0}'.format(
+ self.spec['openexr'].prefix))
+ else:
+ extra_args.append('--without-openexr')
+
+ # POV-Ray only supports sdl v1, spack only supports sdl2 at this time
+ # and X11 support requires sdl
+ extra_args.append('--without-libsdl')
+ extra_args.append('--without-x')
+
+ return extra_args
+
+ def test(self):
+ povs = find(self.prefix.share, 'biscuit.pov')[0]
+ copy(povs, '.')
+ self.run_test('povray', options=['biscuit.pov'],
+ purpose="test: render sample file",
+ expected=['POV-Ray finished']
+ )
diff --git a/var/spack/repos/builtin/packages/powerapi/package.py b/var/spack/repos/builtin/packages/powerapi/package.py
index 4b4fb5e3a0..5b3a876afe 100644
--- a/var/spack/repos/builtin/packages/powerapi/package.py
+++ b/var/spack/repos/builtin/packages/powerapi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/powertop/package.py b/var/spack/repos/builtin/packages/powertop/package.py
index 8279ccf826..59ff4a3c84 100644
--- a/var/spack/repos/builtin/packages/powertop/package.py
+++ b/var/spack/repos/builtin/packages/powertop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,13 @@ class Powertop(AutotoolsPackage):
"""Powertop is a Linux tool to diagnose issues with power consumption
and power management"""
- homepage = "http://01.org/powertop/"
- url = "http://01.org/sites/default/files/downloads/powertop/powertop-v2.9.tar.gz"
+ homepage = "https://01.org/powertop/"
+ url = "https://01.org/sites/default/files/downloads/powertop/powertop-v2.9.tar.gz"
version('2.9', sha256='aa7fb7d8e9a00f05e7d8a7a2866d85929741e0d03a5bf40cab22d2021c959250')
depends_on('libnl')
+ depends_on('ncurses', type='link')
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix.sbin)
diff --git a/var/spack/repos/builtin/packages/ppl/package.py b/var/spack/repos/builtin/packages/ppl/package.py
index 0fc42092ae..81faf81131 100644
--- a/var/spack/repos/builtin/packages/ppl/package.py
+++ b/var/spack/repos/builtin/packages/ppl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,7 +20,7 @@ class Ppl(Package):
solver, and primitives for termination analysis via the automatic
synthesis of linear ranking functions."""
- homepage = "http://bugseng.com/products/ppl/"
+ homepage = "https://bugseng.com/products/ppl/"
url = "http://bugseng.com/products/ppl/download/ftp/releases/1.1/ppl-1.1.tar.gz"
version('1.2', sha256='6bc36dd4a87abc429d8f9c00c53e334e5041a9b0857cfc00dbad6ef14294aac8')
diff --git a/var/spack/repos/builtin/packages/pplacer/package.py b/var/spack/repos/builtin/packages/pplacer/package.py
index af928f8247..6b0fd43d10 100644
--- a/var/spack/repos/builtin/packages/pplacer/package.py
+++ b/var/spack/repos/builtin/packages/pplacer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Pplacer(Package):
visualization and downstream analysis.
"""
- homepage = "http://matsen.fhcrc.org/pplacer/"
+ homepage = "https://matsen.fhcrc.org/pplacer/"
url = "https://github.com/matsen/pplacer/releases/download/v1.1.alpha19/pplacer-linux-v1.1.alpha19.zip"
version('1.1.alpha19', sha256='9131b45c35ddb927f866385f149cf64af5dffe724234cd4548c22303a992347d')
diff --git a/var/spack/repos/builtin/packages/ppopen-appl-amr-fdm/package.py b/var/spack/repos/builtin/packages/ppopen-appl-amr-fdm/package.py
index 3b7df081a2..9e21fd66d1 100755
--- a/var/spack/repos/builtin/packages/ppopen-appl-amr-fdm/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-appl-amr-fdm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ppopen-appl-bem-at/package.py b/var/spack/repos/builtin/packages/ppopen-appl-bem-at/package.py
index c4c90de105..b8c2d16b58 100644
--- a/var/spack/repos/builtin/packages/ppopen-appl-bem-at/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-appl-bem-at/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ppopen-appl-bem/package.py b/var/spack/repos/builtin/packages/ppopen-appl-bem/package.py
index 4aae619b31..9fa1c43aec 100644
--- a/var/spack/repos/builtin/packages/ppopen-appl-bem/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-appl-bem/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PpopenApplBem(MakefilePackage):
"""ppOpen-APPL/BEM is software used to support a boundary element analysis
diff --git a/var/spack/repos/builtin/packages/ppopen-appl-dem-util/package.py b/var/spack/repos/builtin/packages/ppopen-appl-dem-util/package.py
index b76c5ed567..508a068c05 100755
--- a/var/spack/repos/builtin/packages/ppopen-appl-dem-util/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-appl-dem-util/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ppopen-appl-fdm-at/package.py b/var/spack/repos/builtin/packages/ppopen-appl-fdm-at/package.py
index 625d81c7de..37820a5ce6 100755
--- a/var/spack/repos/builtin/packages/ppopen-appl-fdm-at/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-appl-fdm-at/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ppopen-appl-fdm/package.py b/var/spack/repos/builtin/packages/ppopen-appl-fdm/package.py
index 0bc7fc94ca..f1a4348e17 100755
--- a/var/spack/repos/builtin/packages/ppopen-appl-fdm/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-appl-fdm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ppopen-appl-fem/package.py b/var/spack/repos/builtin/packages/ppopen-appl-fem/package.py
index 8d6078bef8..c8be0bd094 100644
--- a/var/spack/repos/builtin/packages/ppopen-appl-fem/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-appl-fem/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PpopenApplFem(MakefilePackage):
"""
diff --git a/var/spack/repos/builtin/packages/ppopen-appl-fvm/package.py b/var/spack/repos/builtin/packages/ppopen-appl-fvm/package.py
index 944e6f6467..0c02922d18 100644
--- a/var/spack/repos/builtin/packages/ppopen-appl-fvm/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-appl-fvm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ppopen-at/package.py b/var/spack/repos/builtin/packages/ppopen-at/package.py
index 8d907beaa2..bb1ee3b139 100644
--- a/var/spack/repos/builtin/packages/ppopen-at/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-at/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ppopen-math-mp/package.py b/var/spack/repos/builtin/packages/ppopen-math-mp/package.py
index 317f364a71..470894c47b 100644
--- a/var/spack/repos/builtin/packages/ppopen-math-mp/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-math-mp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ppopen-math-vis/package.py b/var/spack/repos/builtin/packages/ppopen-math-vis/package.py
index 48d838857d..581f378e45 100644
--- a/var/spack/repos/builtin/packages/ppopen-math-vis/package.py
+++ b/var/spack/repos/builtin/packages/ppopen-math-vis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/prank/package.py b/var/spack/repos/builtin/packages/prank/package.py
index e87fca199e..718f17b1cb 100644
--- a/var/spack/repos/builtin/packages/prank/package.py
+++ b/var/spack/repos/builtin/packages/prank/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/precice/package.py b/var/spack/repos/builtin/packages/precice/package.py
index 68977cd7b9..742205000b 100644
--- a/var/spack/repos/builtin/packages/precice/package.py
+++ b/var/spack/repos/builtin/packages/precice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,12 +13,14 @@ class Precice(CMakePackage):
capable of simulating a subpart of the complete physics involved in
a simulation."""
- homepage = 'https://www.precice.org'
+ homepage = 'https://precice.org/'
git = 'https://github.com/precice/precice.git'
url = 'https://github.com/precice/precice/archive/v1.2.0.tar.gz'
maintainers = ['fsimonis', 'MakisH']
version('develop', branch='develop')
+ version('2.2.1', sha256='bca8cedfb5c86656e4fdfaca5cb982b861f9aba926538fa4411bc0d015e09c1f')
+ version('2.2.0', sha256='f8c4e0810dcaeb6a40a0fcab64b95c899f0121c968e0730416d4d2a97d39d0c4')
version('2.1.1', sha256='729b7c24a7a61b3953bb70d96a954ad3a85729a29a35a288b59ba25661117064')
version('2.1.0', sha256='1e6432724f70d0c6c05fdd645e0026754edbc547719a35bf1d3c12a779b1d00e')
version('2.0.2', sha256='72864480f32696e7b6da94fd404ef5cd6586e2e1640613e46b75f1afac8569ed')
@@ -42,9 +44,11 @@ class Precice(CMakePackage):
depends_on('cmake@3.5:', type='build')
depends_on('cmake@3.10.2:', type='build', when='@1.4:')
+ depends_on('pkgconfig', type='build', when='@2.2:')
depends_on('boost@1.60.0:')
depends_on('boost@1.65.1:', when='@1.4:')
depends_on('boost@:1.72.99', when='@:2.0.2')
+ depends_on('boost@:1.74.99', when='@:2.1.1')
depends_on('eigen@3.2:')
depends_on('eigen@:3.3.7', type='build', when='@:1.5') # bug in prettyprint
depends_on('libxml2')
@@ -60,13 +64,12 @@ class Precice(CMakePackage):
depends_on('py-numpy@:1.16', when='@:1.9+python', type=('build', 'run'))
depends_on('py-numpy@1.17:', when='@2:+python', type=('build', 'run'))
- # We require C++11 compiler support as well as
- # library support for time manipulators (N2071, N2072)
+ # We require C++14 compiler support
conflicts('%gcc@:4')
- conflicts('%apple-clang@:4')
+ conflicts('%apple-clang@:5')
conflicts('%clang@:3.7')
- conflicts('%intel@:14')
- conflicts('%pgi@:14')
+ conflicts('%intel@:16')
+ conflicts('%pgi@:17.3')
def cmake_args(self):
"""Populate cmake arguments for precice."""
diff --git a/var/spack/repos/builtin/packages/predixy/package.py b/var/spack/repos/builtin/packages/predixy/package.py
index 1d0c8d0660..5f71ebd3d3 100644
--- a/var/spack/repos/builtin/packages/predixy/package.py
+++ b/var/spack/repos/builtin/packages/predixy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/premake-core/package.py b/var/spack/repos/builtin/packages/premake-core/package.py
index 7401375511..afb690dbea 100644
--- a/var/spack/repos/builtin/packages/premake-core/package.py
+++ b/var/spack/repos/builtin/packages/premake-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/presentproto/package.py b/var/spack/repos/builtin/packages/presentproto/package.py
index 704552d769..4b0fd96645 100644
--- a/var/spack/repos/builtin/packages/presentproto/package.py
+++ b/var/spack/repos/builtin/packages/presentproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/preseq/package.py b/var/spack/repos/builtin/packages/preseq/package.py
index a446ad53c6..9ff1667d10 100644
--- a/var/spack/repos/builtin/packages/preseq/package.py
+++ b/var/spack/repos/builtin/packages/preseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/presto/package.py b/var/spack/repos/builtin/packages/presto/package.py
index 94b18d13d5..f32548f214 100644
--- a/var/spack/repos/builtin/packages/presto/package.py
+++ b/var/spack/repos/builtin/packages/presto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/price/package.py b/var/spack/repos/builtin/packages/price/package.py
index 746079fb17..dbbade60d2 100644
--- a/var/spack/repos/builtin/packages/price/package.py
+++ b/var/spack/repos/builtin/packages/price/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Price(MakefilePackage):
assembler implemented in C++."""
homepage = "http://derisilab.ucsf.edu/software/price/"
- url = "http://derisilab.ucsf.edu/software/price/PriceSource140408.tar.gz"
+ url = "https://derisilab.ucsf.edu/software/price/PriceSource140408.tar.gz"
version('140408', sha256='12276b2b15f4e020a772944a19fd2aaf089d3437cbc71e7486fa8db95014843f')
diff --git a/var/spack/repos/builtin/packages/primer3/package.py b/var/spack/repos/builtin/packages/primer3/package.py
index b4f2ad849b..f930549559 100644
--- a/var/spack/repos/builtin/packages/primer3/package.py
+++ b/var/spack/repos/builtin/packages/primer3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/prinseq-lite/package.py b/var/spack/repos/builtin/packages/prinseq-lite/package.py
index a101a7dcfa..273c90aa37 100644
--- a/var/spack/repos/builtin/packages/prinseq-lite/package.py
+++ b/var/spack/repos/builtin/packages/prinseq-lite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/printproto/package.py b/var/spack/repos/builtin/packages/printproto/package.py
index 028bfda890..e64fb940ff 100644
--- a/var/spack/repos/builtin/packages/printproto/package.py
+++ b/var/spack/repos/builtin/packages/printproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Printproto(AutotoolsPackage, XorgPackage):
"""Xprint extension to the X11 protocol - a portable, network-transparent
printing system."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/printproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/printproto"
xorg_mirror_path = "proto/printproto-1.0.5.tar.gz"
version('1.0.5', sha256='e8b6f405fd865f0ea7a3a2908dfbf06622f57f2f91359ec65d13b955e49843fc')
diff --git a/var/spack/repos/builtin/packages/prism/package.py b/var/spack/repos/builtin/packages/prism/package.py
index bc336c3174..0a2549feb0 100644
--- a/var/spack/repos/builtin/packages/prism/package.py
+++ b/var/spack/repos/builtin/packages/prism/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/prmon/package.py b/var/spack/repos/builtin/packages/prmon/package.py
index 4ae90c2531..4bb686e8f6 100644
--- a/var/spack/repos/builtin/packages/prmon/package.py
+++ b/var/spack/repos/builtin/packages/prmon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,15 @@ class Prmon(CMakePackage):
"""Standalone monitor for process resource consumption."""
homepage = "https://github.com/HSF/prmon/"
- url = "https://github.com/HSF/prmon/archive/v1.1.1.tar.gz"
+ url = "https://github.com/HSF/prmon/archive/refs/tags/v2.2.0.zip"
git = "https://github.com/HSF/prmon.git"
maintainers = ['vvolkl']
version("master", branch="master")
- version('1.1.1', sha256='5f074b05af2a12e2726c33f6a6e9e8e59ee0c4fb5fe056deb38abacd1bb6bf03')
+ version('2.2.0', sha256='7b3b887c679279f0e666e8c8c58ca1a22a328b8b94ecff09e61795a6a83e8ce5')
+ version('2.1.1', sha256='302d7a3fc5a403143d794e16dca1949e3d13e46cf9857dfaad4e374f4a468df2')
+ version('1.1.1', sha256='a6e6486bbc4d6cddf73affe07d9ff7948a424c9a02b3cdd5bbe5c6cafa06af2e')
variant('plot', default=True,
description='Make use of plotting scripts')
diff --git a/var/spack/repos/builtin/packages/prng/package.py b/var/spack/repos/builtin/packages/prng/package.py
index b892c9bcb4..3f97ed70d8 100644
--- a/var/spack/repos/builtin/packages/prng/package.py
+++ b/var/spack/repos/builtin/packages/prng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Prng(AutotoolsPackage):
"""Pseudo-Random Number Generator library."""
- homepage = "http://statmath.wu.ac.at/prng/"
- url = "http://statmath.wu.ac.at/prng/prng-3.0.2.tar.gz"
+ homepage = "https://statmath.wu.ac.at/prng/"
+ url = "https://statmath.wu.ac.at/prng/prng-3.0.2.tar.gz"
version('3.0.2', sha256='8299182b97c24b7891d74590a8a8438641a6c681ce34d6c3f7bc98a0649da48b')
diff --git a/var/spack/repos/builtin/packages/probconsrna/package.py b/var/spack/repos/builtin/packages/probconsrna/package.py
index 8db95ecb53..545ef569ea 100644
--- a/var/spack/repos/builtin/packages/probconsrna/package.py
+++ b/var/spack/repos/builtin/packages/probconsrna/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/procenv/7cafed1316ddb16fe0689d54ba10c05dd2edd347.patch b/var/spack/repos/builtin/packages/procenv/7cafed1316ddb16fe0689d54ba10c05dd2edd347.patch
new file mode 100644
index 0000000000..a185ad2120
--- /dev/null
+++ b/var/spack/repos/builtin/packages/procenv/7cafed1316ddb16fe0689d54ba10c05dd2edd347.patch
@@ -0,0 +1,34 @@
+From 7cafed1316ddb16fe0689d54ba10c05dd2edd347 Mon Sep 17 00:00:00 2001
+From: Lukas Maerdian <lukas.maerdian@canonical.com>
+Date: Mon, 10 Aug 2020 15:11:23 +0200
+Subject: [PATCH] Fix GCC-10 build when used with -Werror=format-overflow=
+ (Fixes #15)
+
+Process names have a maximum length of 16 bytes and the buffer used has a
+length of 16 bytes, but the compiler is picky about writing and arbirary
+string into that small buffer. Tell the compiler to write max. 15 chars +
+'\0', to make it happy.
+https://stackoverflow.com/questions/23534263/what-is-the-maximum-allowed-limit-on-the-length-of-a-process-name
+---
+ src/platform/linux/platform.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/platform/linux/platform.c b/src/platform/linux/platform.c
+index a392bc0..49ea36c 100644
+--- a/src/platform/linux/platform.c
++++ b/src/platform/linux/platform.c
+@@ -1263,12 +1263,12 @@ handle_proc_branch_linux (void)
+
+ if ((p=strstr (buffer, "Name:")) == buffer) {
+ p += 1+strlen ("Name:"); /* jump over tab char */
+- sprintf (name, "%s", p);
++ sprintf (name, "%.15s", p);
+ }
+
+ if ((p=strstr (buffer, "PPid:")) == buffer) {
+ p += 1+strlen ("PPid:"); /* jump over tab char */
+- sprintf (ppid, "%s", p);
++ sprintf (ppid, "%.15s", p);
+
+ /* got all we need now */
+ break;
diff --git a/var/spack/repos/builtin/packages/procenv/package.py b/var/spack/repos/builtin/packages/procenv/package.py
new file mode 100644
index 0000000000..b7f7958225
--- /dev/null
+++ b/var/spack/repos/builtin/packages/procenv/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 Procenv(AutotoolsPackage):
+ """A command-line tool that displays as much detail about itself and
+ its environment as possible. It can be used as a test tool, to
+ understand the type of environment a process runs in, and for
+ comparing system environments."""
+
+ homepage = "https://github.com/jamesodhunt/procenv/"
+ url = "https://github.com/jamesodhunt/procenv/archive/0.51.tar.gz"
+
+ version('0.51', sha256='b831c14729e06a285cc13eba095817ce3b6d0ddf484b1264951b03ee4fe25bc9')
+
+ # https://github.com/jamesodhunt/procenv/pull/16
+ patch("7cafed1316ddb16fe0689d54ba10c05dd2edd347.patch", when="@:0.51")
+
+ depends_on('expat')
+ depends_on('libpcap')
+ # Fixme: package these and use conditionally (on linux)
+ # depends_on('libselinux')
+ # depends_on('libapparmor')
+ depends_on('numactl')
+ depends_on('check', type='build')
diff --git a/var/spack/repos/builtin/packages/process-in-process/package.py b/var/spack/repos/builtin/packages/process-in-process/package.py
new file mode 100644
index 0000000000..5f9a3a5d02
--- /dev/null
+++ b/var/spack/repos/builtin/packages/process-in-process/package.py
@@ -0,0 +1,178 @@
+# Copyright 2013-2021 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 ProcessInProcess(Package):
+ """Process-in-Process"""
+
+ homepage = "https://github.com/RIKEN-SysSoft/PiP"
+ git = "https://github.com/RIKEN-SysSoft/PiP.git"
+
+ maintainers = ['ahori']
+
+ # PiP version 1 is obsolete
+ version('2', branch='pip-2', preferred=True)
+ version('3', branch='pip-3') # experimental
+
+ conflicts('%gcc@:3', when='os=centos7')
+ conflicts('%gcc@5:', when='os=centos7')
+ conflicts('%gcc@:3', when='os=rhel7')
+ conflicts('%gcc@5:', when='os=rhel7')
+ conflicts('%gcc@:7', when='os=centos8')
+ conflicts('%gcc@9:', when='os=centos8')
+ conflicts('%gcc@:7', when='os=rhel8')
+ conflicts('%gcc@9:', when='os=rhel8')
+
+ # packages required for building PiP-gdb
+ depends_on('texinfo', type='build')
+ depends_on('systemtap')
+
+ # resources for PiP version 2
+ # PiP-glibc resource
+ # for rhel/centos 7
+ resource(name='PiP-glibc',
+ git='https://github.com/RIKEN-SysSoft/PiP-glibc.git',
+ branch='centos/glibc-2.17-260.el7.pip.branch',
+ destination='PiP-glibc',
+ when='@2 os=centos7')
+ resource(name='PiP-glibc',
+ git='https://github.com/RIKEN-SysSoft/PiP-glibc.git',
+ branch='centos/glibc-2.17-260.el7.pip.branch',
+ destination='PiP-glibc',
+ when='@2 os=rhel7')
+ # for rhel/centos 8
+ resource(name='PiP-glibc',
+ git='https://github.com/RIKEN-SysSoft/PiP-glibc.git',
+ branch='centos/glibc-2.28-72.el8_1.1.pip.branch',
+ destination='PiP-glibc',
+ when='@2 os=centos8')
+ resource(name='PiP-glibc',
+ git='https://github.com/RIKEN-SysSoft/PiP-glibc.git',
+ branch='centos/glibc-2.28-72.el8_1.1.pip.branch',
+ destination='PiP-glibc',
+ when='@2 os=rhel8')
+
+ # PiP-gdb resource
+ # for rhel/centos 7
+ resource(name='PiP-gdb',
+ git='https://github.com/RIKEN-SysSoft/PiP-gdb.git',
+ branch='centos/gdb-7.6.1-94.el7.pip.branch',
+ destination='PiP-gdb',
+ when='@2 os=centos7')
+ resource(name='PiP-gdb',
+ git='https://github.com/RIKEN-SysSoft/PiP-gdb.git',
+ branch='centos/gdb-7.6.1-94.el7.pip.branch',
+ destination='PiP-gdb',
+ when='@2 os=rhel7')
+ # for rhel/centos 8
+ resource(name='PiP-gdb',
+ git='https://github.com/RIKEN-SysSoft/PiP-gdb.git',
+ branch='centos/gdb-8.2-12.el8.pip.branch',
+ destination='PiP-gdb',
+ when='@2 os=centos8')
+ resource(name='PiP-gdb',
+ git='https://github.com/RIKEN-SysSoft/PiP-gdb.git',
+ branch='centos/gdb-8.2-12.el8.pip.branch',
+ destination='PiP-gdb',
+ when='@2 os=rhel8')
+
+ # resources for PiP version 3
+ # PiP-glibc resource
+ # for rhel/centos 7
+ resource(name='PiP-glibc',
+ git='https://github.com/RIKEN-SysSoft/PiP-glibc.git',
+ branch='centos/glibc-2.17-260.el7.pip.branch',
+ destination='PiP-glibc',
+ when='@3 os=centos7')
+ resource(name='PiP-glibc',
+ git='https://github.com/RIKEN-SysSoft/PiP-glibc.git',
+ branch='centos/glibc-2.17-260.el7.pip.branch',
+ destination='PiP-glibc',
+ when='@3 os=rhel7')
+ # for rhel/centos 8
+ resource(name='PiP-glibc',
+ git='https://github.com/RIKEN-SysSoft/PiP-glibc.git',
+ branch='centos/glibc-2.28-72.el8_1.1.pip.branch',
+ destination='PiP-glibc',
+ when='@3 os=centos8')
+ resource(name='PiP-glibc',
+ git='https://github.com/RIKEN-SysSoft/PiP-glibc.git',
+ branch='centos/glibc-2.28-72.el8_1.1.pip.branch',
+ destination='PiP-glibc',
+ when='@3 os=rhel8')
+
+ # PiP-gdb resource
+ # for rhel/centos 7
+ resource(name='PiP-gdb',
+ git='https://github.com/RIKEN-SysSoft/PiP-gdb.git',
+ branch='centos/gdb-7.6.1-94.el7.pip.branch',
+ destination='PiP-gdb',
+ when='@3 os=centos7')
+ resource(name='PiP-gdb',
+ git='https://github.com/RIKEN-SysSoft/PiP-gdb.git',
+ branch='centos/gdb-7.6.1-94.el7.pip.branch',
+ destination='PiP-gdb',
+ when='@3 os=rhel7')
+ # for rhel/centos 8
+ resource(name='PiP-gdb',
+ git='https://github.com/RIKEN-SysSoft/PiP-gdb.git',
+ branch='centos/gdb-8.2-12.el8.pip.branch',
+ destination='PiP-gdb',
+ when='@3 os=centos8')
+ resource(name='PiP-gdb',
+ git='https://github.com/RIKEN-SysSoft/PiP-gdb.git',
+ branch='centos/gdb-8.2-12.el8.pip.branch',
+ destination='PiP-gdb',
+ when='@3 os=rhel8')
+
+ # PiP testsuite (agnostic with PiP and OS versions)
+ resource(name='PiP-Testsuite',
+ git='https://github.com/RIKEN-SysSoft/PiP-Testsuite.git',
+ destination='PiP-Testsuite')
+
+ def install(self, spec, prefix):
+ "Install Process-in-Process including PiP-glibc, PiP-gdb"
+
+ # checking os and arch
+ arch = self.spec.architecture
+ target = self.spec.target
+ if arch.os not in ['centos7', 'rhel7', 'centos8', 'rhel8']:
+ raise InstallError('PIP only supports rhel/centos 7 and 8')
+ if target.family not in ['x86_64', 'aarch64']:
+ raise InstallError('PIP only supports x86_64 and aarch64')
+
+ bash = which('bash')
+
+ # installing PiP-glibc
+ glibc_builddir = join_path('PiP-glibc', 'PiP-glibc.build')
+ with working_dir(glibc_builddir, create=True):
+ # build.sh does build and install
+ bash(join_path('..', 'PiP-glibc', 'build.sh'), prefix.glibc)
+
+ # installing PiP lib
+ configure('--prefix=%s' % prefix,
+ '--with-glibc-libdir=%s' % prefix.glibc.lib)
+ make()
+ make('install')
+ # installing already-doxygen-ed documents (man pages, html, ...)
+ make('doc')
+
+ # testing PiP by using PiP-Testsuite (another repo), no need install
+ with working_dir(join_path('PiP-Testsuite', 'PiP-Testsuite')):
+ bash('configure', '--with-pip=%s' % prefix)
+ # make test programs
+ make()
+ # and run the test programs
+ make('test10', parallel=False)
+
+ # installing PiP-gdb
+ with working_dir(join_path('PiP-gdb', 'PiP-gdb')):
+ # build.sh does build and install
+ bash('build.sh', '--prefix=%s' % prefix, '--with-pip=%s' % prefix)
+ # testing PiP-gdb
+ bash('test.sh', parallel=False)
+ # all done !!
diff --git a/var/spack/repos/builtin/packages/procps-ng/package.py b/var/spack/repos/builtin/packages/procps-ng/package.py
index 883a81df75..3932e4f56a 100644
--- a/var/spack/repos/builtin/packages/procps-ng/package.py
+++ b/var/spack/repos/builtin/packages/procps-ng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/procps/package.py b/var/spack/repos/builtin/packages/procps/package.py
index e18d6206cf..bb6b4a3dc0 100644
--- a/var/spack/repos/builtin/packages/procps/package.py
+++ b/var/spack/repos/builtin/packages/procps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/prodigal/package.py b/var/spack/repos/builtin/packages/prodigal/package.py
index 429d6d78a6..e6d6cc2611 100644
--- a/var/spack/repos/builtin/packages/prodigal/package.py
+++ b/var/spack/repos/builtin/packages/prodigal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/professor/package.py b/var/spack/repos/builtin/packages/professor/package.py
new file mode 100644
index 0000000000..199ddf755a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/professor/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 Professor(Package):
+ """Professor Monte-Carlo tuning package"""
+
+ homepage = "https://professor.hepforge.org/"
+ url = "https://professor.hepforge.org/downloads/?f=Professor-2.3.3.tar.gz"
+
+ maintainers = ['mjk655']
+
+ version('2.3.3', sha256='60c5ba00894c809e2c31018bccf22935a9e1f51c0184468efbdd5d27b211009f')
+
+ depends_on('wxwidgets')
+ depends_on('yoda')
+ depends_on('eigen')
+ depends_on('py-cython')
+ depends_on('py-iminuit')
+ depends_on('py-matplotlib')
+
+ def install(self, spec, prefix):
+ make()
+ make('PREFIX={0}'.format(prefix), "install")
diff --git a/var/spack/repos/builtin/packages/profugusmc/package.py b/var/spack/repos/builtin/packages/profugusmc/package.py
index 0922b3f470..12113ecbc6 100644
--- a/var/spack/repos/builtin/packages/profugusmc/package.py
+++ b/var/spack/repos/builtin/packages/profugusmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/proj/package.py b/var/spack/repos/builtin/packages/proj/package.py
index 3c8b30aa6c..9bf9745547 100644
--- a/var/spack/repos/builtin/packages/proj/package.py
+++ b/var/spack/repos/builtin/packages/proj/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,13 +13,18 @@ class Proj(AutotoolsPackage):
transformations."""
homepage = "https://proj.org/"
- url = "https://download.osgeo.org/proj/proj-7.1.0.tar.gz"
+ url = "https://download.osgeo.org/proj/proj-7.2.1.tar.gz"
maintainers = ['adamjstewart']
# Version 6 removes projects.h, while version 7 removes proj_api.h.
# Many packages that depend on proj do not yet support the newer API.
# See https://github.com/OSGeo/PROJ/wiki/proj.h-adoption-status
+ version('8.1.0', sha256='22c5cdc5aa0832077b16c95ebeec748a0942811c1c3438c33d43c8d2ead59f48')
+ version('8.0.1', sha256='e0463a8068898785ca75dd49a261d3d28b07d0a88f3b657e8e0089e16a0375fa')
+ version('8.0.0', sha256='aa5d4b934450149a350aed7e5fbac880e2f7d3fa2f251c26cb64228f96a2109e')
+ version('7.2.1', sha256='b384f42e5fb9c6d01fe5fa4d31da2e91329668863a684f97be5d4760dbbf0a14')
+ version('7.2.0', sha256='2957798e5fe295ff96a2af1889d0428e486363d210889422f76dd744f7885763')
version('7.1.0', sha256='876151e2279346f6bdbc63bd59790b48733496a957bccd5e51b640fdd26eaa8d')
version('7.0.1', sha256='a7026d39c9c80d51565cfc4b33d22631c11e491004e19020b3ff5a0791e1779f')
version('7.0.0', sha256='ee0e14c1bd2f9429b1a28999240304c0342ed739ebaea3d4ff44c585b1097be8')
@@ -44,10 +49,24 @@ class Proj(AutotoolsPackage):
# https://github.com/OSGeo/PROJ-data
resource(
name='proj-data',
+ url='https://download.osgeo.org/proj/proj-data-1.4.tar.gz',
+ sha256='76960d34d635aa127058ce654d89ea0eff91e2e4f2036482e677af5a88669b08',
+ placement='nad',
+ when='@7.2.1:',
+ )
+ resource(
+ name='proj-data',
+ url='https://download.osgeo.org/proj/proj-data-1.3.tar.gz',
+ sha256='0faa3e5ca6d816c907868c1ab2523668ccad27c6c4af9c7b00df9e4c3eb84398',
+ placement='nad',
+ when='@7.2.0',
+ )
+ resource(
+ name='proj-data',
url='https://download.osgeo.org/proj/proj-data-1.1.tar.gz',
sha256='df7c57e60f9e1d5bcc724f1def71d2a7cd33bd83c28f4b4bb71dbb2d8849c84a',
placement='nad',
- when='@7:',
+ when='@7:7.1',
)
# https://github.com/OSGeo/PROJ#distribution-files-and-format
@@ -88,3 +107,17 @@ class Proj(AutotoolsPackage):
args.append('--without-curl')
return args
+
+ def setup_run_environment(self, env):
+ # PROJ_LIB doesn't need to be set. However, it may be set by conda.
+ # If an incompatible version of PROJ is found in PROJ_LIB, it can
+ # cause the package to fail at run-time. See the following for details:
+ # * https://proj.org/usage/environmentvars.html
+ # * https://rasterio.readthedocs.io/en/latest/faq.html
+ env.set('PROJ_LIB', self.prefix.share.proj)
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ self.setup_run_environment(env)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ self.setup_run_environment(env)
diff --git a/var/spack/repos/builtin/packages/prokka/package.py b/var/spack/repos/builtin/packages/prokka/package.py
index eedb5fde08..8d2a65433b 100644
--- a/var/spack/repos/builtin/packages/prokka/package.py
+++ b/var/spack/repos/builtin/packages/prokka/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/prometheus/package.py b/var/spack/repos/builtin/packages/prometheus/package.py
index 10a9e956c3..12fedfdba6 100644
--- a/var/spack/repos/builtin/packages/prometheus/package.py
+++ b/var/spack/repos/builtin/packages/prometheus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/protobuf-c/package.py b/var/spack/repos/builtin/packages/protobuf-c/package.py
index 020e6297df..276f897399 100644
--- a/var/spack/repos/builtin/packages/protobuf-c/package.py
+++ b/var/spack/repos/builtin/packages/protobuf-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/protobuf/package.py b/var/spack/repos/builtin/packages/protobuf/package.py
index 060d345b45..f501d50d1a 100644
--- a/var/spack/repos/builtin/packages/protobuf/package.py
+++ b/var/spack/repos/builtin/packages/protobuf/package.py
@@ -1,46 +1,60 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import sys
-from spack import *
+
import spack.util.web
+from spack import *
class Protobuf(Package):
"""Google's data interchange format."""
homepage = "https://developers.google.com/protocol-buffers"
- 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')
- version('3.10.1', sha256='6adf73fd7f90409e479d6ac86529ade2d45f50494c5c10f539226693cb8fe4f7')
- version('3.10.0', sha256='758249b537abba2f21ebc2d02555bf080917f0f2f88f4cbe2903e0e28c4187ed')
- version('3.9.2', sha256='1fbf1c2962af287607232b2eddeaec9b4f4a7a6f5934e1a9276e9af76952f7e0')
- version('3.9.1', sha256='98e615d592d237f94db8bf033fba78cd404d979b0b70351a9e5aaff725398357')
- version('3.7.1', sha256='f1748989842b46fa208b2a6e4e2785133cfcc3e4d43c17fecb023733f0f5443f')
- version('3.7.0', sha256='a19dcfe9d156ae45d209b15e0faed5c7b5f109b6117bfc1974b6a7b98a850320')
- version('3.6.1', sha256='3d4e589d81b2006ca603c1ab712c9715a76227293032d05b26fca603f90b3f5b')
- version('3.5.2', sha256='4ffd420f39f226e96aebc3554f9c66a912f6cad6261f39f194f16af8a1f6dab2')
+ url = "https://github.com/protocolbuffers/protobuf/archive/v3.18.0.tar.gz"
+
+ version('3.18.0', sha256='14e8042b5da37652c92ef6a2759e7d2979d295f60afd7767825e3de68c856c54')
+ version('3.17.3', sha256='c6003e1d2e7fefa78a3039f19f383b4f3a61e81be8c19356f85b6461998ad3db')
+ version('3.17.0', sha256='eaba1dd133ac5167e8b08bc3268b2d33c6e9f2dcb14ec0f97f3d3eed9b395863')
+ version('3.16.0', sha256='7892a35d979304a404400a101c46ce90e85ec9e2a766a86041bb361f626247f5')
+ version('3.15.7', sha256='efdd6b932a2c0a88a90c4c80f88e4b2e1bf031e7514dbb5a5db5d0bf4f295504')
+ version('3.15.5', sha256='bc3dbf1f09dba1b2eb3f2f70352ee97b9049066c9040ce0c9b67fb3294e91e4b')
+ version('3.15.4', sha256='07f8a02afc14a657f727ed89a8ec5627b9ecc47116d60acaabaa1da233bd2e8f')
+ version('3.15.2', sha256='3c85fdac243dab1f6cd725eb58e361cdbb3ec4480052ac90b1ab55c608112cd0')
+ version('3.15.1', sha256='f18a40816260a9a3190a94efb0fc26270b244a2436681602f0a944739095d632')
+ version('3.15.0', sha256='6aff9834fd7c540875e1836967c8d14c6897e3785a2efac629f69860fb7834ff')
+ version('3.14.0', sha256='d0f5f605d0d656007ce6c8b5a82df3037e1d8fe8b121ed42e536f569dec16113')
+ version('3.13.0', sha256='9b4ee22c250fe31b16f1a24d61467e40780a3fbb9b91c3b65be2a376ed913a1a')
+ version('3.12.3', sha256='71030a04aedf9f612d2991c1c552317038c3c5a2b578ac4745267a45e7037c29')
+ 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')
+ version('3.10.1', sha256='6adf73fd7f90409e479d6ac86529ade2d45f50494c5c10f539226693cb8fe4f7')
+ version('3.10.0', sha256='758249b537abba2f21ebc2d02555bf080917f0f2f88f4cbe2903e0e28c4187ed')
+ version('3.9.2', sha256='1fbf1c2962af287607232b2eddeaec9b4f4a7a6f5934e1a9276e9af76952f7e0')
+ version('3.9.1', sha256='98e615d592d237f94db8bf033fba78cd404d979b0b70351a9e5aaff725398357')
+ version('3.7.1', sha256='f1748989842b46fa208b2a6e4e2785133cfcc3e4d43c17fecb023733f0f5443f')
+ version('3.7.0', sha256='a19dcfe9d156ae45d209b15e0faed5c7b5f109b6117bfc1974b6a7b98a850320')
+ version('3.6.1', sha256='3d4e589d81b2006ca603c1ab712c9715a76227293032d05b26fca603f90b3f5b')
+ version('3.5.2', sha256='4ffd420f39f226e96aebc3554f9c66a912f6cad6261f39f194f16af8a1f6dab2')
version('3.5.1.1', sha256='56b5d9e1ab2bf4f5736c4cfba9f4981fbc6976246721e7ded5602fbaee6d6869')
- version('3.5.1', sha256='826425182ee43990731217b917c5c3ea7190cfda141af4869e6d4ad9085a740f')
+ version('3.5.1', sha256='826425182ee43990731217b917c5c3ea7190cfda141af4869e6d4ad9085a740f')
version('3.5.0.1', sha256='86be71e61c76575c60839452a4f265449a6ea51570d7983cb929f06ad294b5f5')
- version('3.5.0', sha256='0cc6607e2daa675101e9b7398a436f09167dffb8ca0489b0307ff7260498c13c')
- version('3.4.1', sha256='8e0236242106e680b4f9f576cc44b8cd711e948b20a9fc07769b0a20ceab9cc4')
- version('3.4.0', sha256='f6600abeee3babfa18591961a0ff21e7db6a6d9ef82418a261ec4fee44ee6d44')
- version('3.3.0', sha256='9a36bc1265fa83b8e818714c0d4f08b8cec97a1910de0754a321b11e66eb76de')
- version('3.2.0', sha256='a839d3f1519ff9d68ab908de5a0f269650ef1fc501c10f6eefd4cae51d29b86f')
- version('3.1.0', sha256='fb2a314f4be897491bb2446697be693d489af645cb0e165a85e7e64e07eb134d')
- version('3.0.2', sha256='a0a265bcc9d4e98c87416e59c33afc37cede9fb277292523739417e449b18c1e')
- version('2.5.0', sha256='c2665a7aa2ac1a206e61b28e014486e3de59009ea2be2bde9182e0847f38b62f')
+ version('3.5.0', sha256='0cc6607e2daa675101e9b7398a436f09167dffb8ca0489b0307ff7260498c13c')
+ version('3.4.1', sha256='8e0236242106e680b4f9f576cc44b8cd711e948b20a9fc07769b0a20ceab9cc4')
+ version('3.4.0', sha256='f6600abeee3babfa18591961a0ff21e7db6a6d9ef82418a261ec4fee44ee6d44')
+ version('3.3.0', sha256='9a36bc1265fa83b8e818714c0d4f08b8cec97a1910de0754a321b11e66eb76de')
+ version('3.2.0', sha256='a839d3f1519ff9d68ab908de5a0f269650ef1fc501c10f6eefd4cae51d29b86f')
+ version('3.1.0', sha256='fb2a314f4be897491bb2446697be693d489af645cb0e165a85e7e64e07eb134d')
+ version('3.0.2', sha256='a0a265bcc9d4e98c87416e59c33afc37cede9fb277292523739417e449b18c1e')
+ version('2.5.0', sha256='c2665a7aa2ac1a206e61b28e014486e3de59009ea2be2bde9182e0847f38b62f', deprecated=True)
variant('shared', default=True,
description='Enables the build of shared libraries')
diff --git a/var/spack/repos/builtin/packages/proxymngr/package.py b/var/spack/repos/builtin/packages/proxymngr/package.py
index 7c3b9f0329..64c8eedcf4 100644
--- a/var/spack/repos/builtin/packages/proxymngr/package.py
+++ b/var/spack/repos/builtin/packages/proxymngr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Proxymngr(AutotoolsPackage, XorgPackage):
appropriate, and keeping track of all of the available proxy services.
The proxy manager strives to reuse existing proxies whenever possible."""
- homepage = "http://cgit.freedesktop.org/xorg/app/proxymngr"
+ homepage = "https://cgit.freedesktop.org/xorg/app/proxymngr"
xorg_mirror_path = "app/proxymngr-1.0.4.tar.gz"
version('1.0.4', sha256='d40f2d15985ee8e8ef5320a85c0b1899a7bc95974a65137ae886e499bced86f4')
@@ -21,7 +21,7 @@ class Proxymngr(AutotoolsPackage, XorgPackage):
depends_on('libxt')
depends_on('lbxproxy')
- depends_on('xproto@7.0.17:', type='build')
- depends_on('xproxymanagementprotocol', type='build')
+ depends_on('xproto@7.0.17:')
+ depends_on('xproxymanagementprotocol')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/prrte/package.py b/var/spack/repos/builtin/packages/prrte/package.py
index 58a3d10819..2bc81c1869 100644
--- a/var/spack/repos/builtin/packages/prrte/package.py
+++ b/var/spack/repos/builtin/packages/prrte/package.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
diff --git a/var/spack/repos/builtin/packages/pruners-ninja/package.py b/var/spack/repos/builtin/packages/pruners-ninja/package.py
index 6ea2b448f7..aa810c56e5 100644
--- a/var/spack/repos/builtin/packages/pruners-ninja/package.py
+++ b/var/spack/repos/builtin/packages/pruners-ninja/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ps-lite/package.py b/var/spack/repos/builtin/packages/ps-lite/package.py
index 525633514e..e1fc7e7198 100644
--- a/var/spack/repos/builtin/packages/ps-lite/package.py
+++ b/var/spack/repos/builtin/packages/ps-lite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/psi4/package.py b/var/spack/repos/builtin/packages/psi4/package.py
index bc2e6db011..912dac1854 100644
--- a/var/spack/repos/builtin/packages/psi4/package.py
+++ b/var/spack/repos/builtin/packages/psi4/package.py
@@ -1,18 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Psi4(CMakePackage):
"""Psi4 is an open-source suite of ab initio quantum chemistry
programs designed for efficient, high-accuracy simulations of
a variety of molecular properties."""
- homepage = "http://www.psicode.org/"
+ homepage = "https://www.psicode.org/"
url = "https://github.com/psi4/psi4/archive/v1.3.2.tar.gz"
version('1.3.2', sha256='ed76c67803b6420f35f57a6dd31c47108b9145b8c9fced5c94cdc179f6b5fbf3')
diff --git a/var/spack/repos/builtin/packages/psimd/package.py b/var/spack/repos/builtin/packages/psimd/package.py
new file mode 100644
index 0000000000..b0d3b0488d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/psimd/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 Psimd(CMakePackage):
+ """Portable 128-bit SIMD intrinsics."""
+
+ homepage = "https://github.com/Maratyszcza/psimd"
+ git = "https://github.com/Maratyszcza/psimd.git"
+
+ version('master', branch='master')
+ version('2020-05-17', commit='072586a71b55b7f8c584153d223e95687148a900') # py-torch@1.6:1.9
+ version('2019-12-26', commit='10b4ffc6ea9e2e11668f86969586f88bc82aaefa') # py-torch@1.5
+ version('2018-09-06', commit='90a938f30ba414ada2f4b00674ee9631d7d85e19') # py-torch@1.0:1.4
+ version('2017-10-26', commit='4ac61b112252778b174575931c641bef661ab3cd') # py-torch@0.4
+
+ depends_on('cmake@2.8.12:', type='build')
+ depends_on('ninja', type='build')
+
+ generator = 'Ninja'
diff --git a/var/spack/repos/builtin/packages/pslib/package.py b/var/spack/repos/builtin/packages/pslib/package.py
index 38e1e40dc5..1c2fe3e337 100644
--- a/var/spack/repos/builtin/packages/pslib/package.py
+++ b/var/spack/repos/builtin/packages/pslib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/psm/package.py b/var/spack/repos/builtin/packages/psm/package.py
index bf31fc4c90..9ce5b45924 100644
--- a/var/spack/repos/builtin/packages/psm/package.py
+++ b/var/spack/repos/builtin/packages/psm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class Psm(MakefilePackage):
conflicts('%gcc@6:', when='@3.3')
- depends_on('libuuid')
+ depends_on('uuid')
def edit(self, spec, prefix):
makefile = FileFilter('Makefile')
diff --git a/var/spack/repos/builtin/packages/psmc/package.py b/var/spack/repos/builtin/packages/psmc/package.py
index 243c740453..d282d85b42 100644
--- a/var/spack/repos/builtin/packages/psmc/package.py
+++ b/var/spack/repos/builtin/packages/psmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pstreams/package.py b/var/spack/repos/builtin/packages/pstreams/package.py
index 48afbe9388..7ad2c6335a 100644
--- a/var/spack/repos/builtin/packages/pstreams/package.py
+++ b/var/spack/repos/builtin/packages/pstreams/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pthreadpool/package.py b/var/spack/repos/builtin/packages/pthreadpool/package.py
new file mode 100644
index 0000000000..a2e7756065
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pthreadpool/package.py
@@ -0,0 +1,60 @@
+# Copyright 2013-2021 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 Pthreadpool(CMakePackage):
+ """pthreadpool is a portable and efficient thread pool implementation."""
+
+ homepage = "https://github.com/Maratyszcza/pthreadpool"
+ git = "https://github.com/Maratyszcza/pthreadpool.git"
+
+ version('master', branch='master')
+ version('2021-04-13', commit='a134dd5d4cee80cce15db81a72e7f929d71dd413') # py-torch@1.9
+ version('2020-10-05', commit='fa75e65a58a5c70c09c30d17a1fe1c1dff1093ae') # py-torch@1.8
+ version('2020-06-15', commit='029c88620802e1361ccf41d1970bd5b07fd6b7bb') # py-torch@1.6:1.7
+ version('2019-10-29', commit='d465747660ecf9ebbaddf8c3db37e4a13d0c9103') # py-torch@1.5
+ version('2018-10-08', commit='13da0b4c21d17f94150713366420baaf1b5a46f4') # py-torch@1.0:1.4
+ version('2018-02-25', commit='2b06b31f6a315162348e1f3c24325eedaf6cc559') # py-torch@:0.4
+
+ depends_on('cmake@3.5:', type='build')
+ depends_on('ninja', type='build')
+ depends_on('python', type='build')
+
+ generator = 'Ninja'
+
+ resource(
+ name='fxdiv',
+ git='https://github.com/Maratyszcza/FXdiv.git',
+ branch='master',
+ destination='deps',
+ placement='fxdiv',
+ )
+ resource(
+ name='googletest',
+ url='https://github.com/google/googletest/archive/release-1.10.0.zip',
+ sha256='94c634d499558a76fa649edb13721dce6e98fb1e7018dfaeba3cd7a083945e91',
+ destination='deps',
+ placement='googletest',
+ )
+ resource(
+ name='googlebenchark',
+ url='https://github.com/google/benchmark/archive/v1.5.3.zip',
+ sha256='bdefa4b03c32d1a27bd50e37ca466d8127c1688d834800c38f3c587a396188ee',
+ destination='deps',
+ placement='googlebenchmark',
+ )
+
+ def cmake_args(self):
+ return [
+ self.define('BUILD_SHARED_LIBS', True),
+ self.define('FXDIV_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'fxdiv')),
+ self.define('GOOGLETEST_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googletest')),
+ self.define('GOOGLEBENCHMARK_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googlebenchmark')),
+ ]
diff --git a/var/spack/repos/builtin/packages/pugixml/package.py b/var/spack/repos/builtin/packages/pugixml/package.py
index 8ac943e398..679f2754bf 100644
--- a/var/spack/repos/builtin/packages/pugixml/package.py
+++ b/var/spack/repos/builtin/packages/pugixml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,19 +10,22 @@ from spack import *
class Pugixml(CMakePackage):
"""Light-weight, simple, and fast XML parser for C++ with XPath support"""
- homepage = "http://pugixml.org/"
+ homepage = "https://pugixml.org/"
url = "https://github.com/zeux/pugixml/releases/download/v1.10/pugixml-1.10.tar.gz"
- version('1.8.1', sha256='929c4657c207260f8cc28e5b788b7499dffdba60d83d59f55ea33d873d729cd4')
+ version('1.11.4', sha256='8ddf57b65fb860416979a3f0640c2ad45ddddbbafa82508ef0a0af3ce7061716')
+ version('1.11', sha256='26913d3e63b9c07431401cf826df17ed832a20d19333d043991e611d23beaa2c')
version('1.10', sha256='55f399fbb470942410d348584dc953bcaec926415d3462f471ef350f29b5870a')
+ version('1.8.1', sha256='929c4657c207260f8cc28e5b788b7499dffdba60d83d59f55ea33d873d729cd4')
- variant('shared', default=True, description='Enable shared libraries')
+ variant('pic', default=True, description='Build position-independent code')
+ variant('shared', default=True, description='Build shared libraries')
- def cmake_args(self):
- args = [
- '-DBUILD_SHARED_AND_STATIC_LIBS:BOOL=OFF',
- '-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON',
- '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
- 'ON' if '+shared' in self.spec else 'OFF')]
+ conflicts('+shared', when='~pic')
- return args
+ def cmake_args(self):
+ return [
+ self.define('BUILD_SHARED_AND_STATIC_LIBS', False),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('CMAKE_POSITION_INDEPENDENT_CODE', 'pic'),
+ ]
diff --git a/var/spack/repos/builtin/packages/pulseaudio/package.py b/var/spack/repos/builtin/packages/pulseaudio/package.py
index 16f550c140..22400919bb 100644
--- a/var/spack/repos/builtin/packages/pulseaudio/package.py
+++ b/var/spack/repos/builtin/packages/pulseaudio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -42,7 +42,7 @@ class Pulseaudio(AutotoolsPackage):
depends_on('libsndfile@1.0.18:')
depends_on('libtool@2.4:') # links to libltdl.so
depends_on('libsm', when='+x11')
- depends_on('libuuid', when='+x11')
+ depends_on('uuid', when='+x11')
depends_on('libx11', when='+x11')
depends_on('libxcb', when='+x11')
depends_on('libxau', when='+x11')
diff --git a/var/spack/repos/builtin/packages/pumi/package.py b/var/spack/repos/builtin/packages/pumi/package.py
index 83560c2f45..7a732b9958 100644
--- a/var/spack/repos/builtin/packages/pumi/package.py
+++ b/var/spack/repos/builtin/packages/pumi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,6 +26,7 @@ class Pumi(CMakePackage):
# scorec/core develop branch and we perfer not to expose spack users
# to the added instability.
version('master', submodules=True, branch='master')
+ version('2.2.6', commit='4dd330e960b1921ae0d8d4039b8de8680a20d993') # tag 2.2.6
version('2.2.5', commit='73c16eae073b179e45ec625a5abe4915bc589af2') # tag 2.2.5
version('2.2.4', commit='8072fdbafd53e0c9a63248a269f4cce5000a4a8e') # tag 2.2.4
version('2.2.3', commit='d200cb366813695d0f18b514d8d8ecc382cb79fc') # tag 2.2.3
@@ -38,6 +39,7 @@ class Pumi(CMakePackage):
variant('shared', default=False, description='Build shared libraries')
variant('zoltan', default=False, description='Enable Zoltan Features')
variant('fortran', default=False, description='Enable FORTRAN interface')
+ variant('testing', default=False, description='Enable tests')
variant('simmodsuite', default='none',
values=('none', 'base', 'kernels', 'full'),
description="Enable Simmetrix SimModSuite Support: 'base' enables "
@@ -67,18 +69,20 @@ class Pumi(CMakePackage):
args = [
'-DSCOREC_CXX_WARNINGS=OFF',
- '-DENABLE_ZOLTAN=%s' % ('ON' if '+zoltan' in spec else 'OFF'),
+ self.define_from_variant('ENABLE_ZOLTAN', 'zoltan'),
'-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
'-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
- '-DBUILD_SHARED_LIBS=%s' % ('ON' if '+shared' in spec else 'OFF'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
'-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
- '-DPUMI_FORTRAN_INTERFACE=%s' %
- ('ON' if '+fortran' in spec else 'OFF'),
+ self.define_from_variant('PUMI_FORTRAN_INTERFACE', 'fortran'),
'-DMDS_ID_TYPE=%s' % ('long' if '+int64' in spec else 'int'),
'-DSKIP_SIMMETRIX_VERSION_CHECK=%s' %
('ON' if '~simmodsuite_version_check' in spec else 'OFF'),
- '-DMESHES=%s' % join_path(self.stage.source_path, 'pumi_meshes')
+ self.define_from_variant('IS_TESTING', 'testing'),
+ '-DMESHES=%s' % join_path(self.stage.source_path, 'pumi-meshes')
]
+ if spec.satisfies('@2.2.3'):
+ args += ['-DCMAKE_CXX_STANDARD=11']
if self.spec.satisfies('simmodsuite=base'):
args.append('-DENABLE_SIMMETRIX=ON')
if self.spec.satisfies('simmodsuite=kernels') or \
diff --git a/var/spack/repos/builtin/packages/pv/package.py b/var/spack/repos/builtin/packages/pv/package.py
index 6b9ecb0e4a..e8de7658d8 100644
--- a/var/spack/repos/builtin/packages/pv/package.py
+++ b/var/spack/repos/builtin/packages/pv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Pv(AutotoolsPackage):
of data through a pipeline
"""
- homepage = "http://www.ivarch.com/programs/pv.shtml"
- url = "http://www.ivarch.com/programs/sources/pv-1.6.6.tar.bz2"
+ homepage = "https://www.ivarch.com/programs/pv.shtml"
+ url = "https://www.ivarch.com/programs/sources/pv-1.6.6.tar.bz2"
version('1.6.6', sha256='608ef935f7a377e1439c181c4fc188d247da10d51a19ef79bcdee5043b0973f1')
diff --git a/var/spack/repos/builtin/packages/pvm/package.py b/var/spack/repos/builtin/packages/pvm/package.py
index cb76f739bb..44ec1d8818 100644
--- a/var/spack/repos/builtin/packages/pvm/package.py
+++ b/var/spack/repos/builtin/packages/pvm/package.py
@@ -1,35 +1,61 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 subprocess
+from spack import *
+
class Pvm(MakefilePackage):
"""PVM (Parallel Virtual Machine) is a software package that permits a
heterogeneous collection of Unix and/or Windows computers hooked together
by a network to be used as a single large parallel computer."""
- homepage = "http://www.csm.ornl.gov/pvm/pvm_home.html"
- url = "http://www.netlib.org/pvm3/pvm3.4.6.tgz"
+ homepage = "https://www.csm.ornl.gov/pvm/pvm_home.html"
+ url = "https://www.netlib.org/pvm3/pvm3.4.6.tgz"
version('3.4.6', sha256='482665e9bc975d826bcdacf1df1d42e43deda9585a2c430fd3b7b7ed08eada44')
+ depends_on('m4', type='build')
+ depends_on('libtirpc', type='link')
+
+ variant('fpic', default=False,
+ description='Enables -fPIC compilation flag on static libraries.')
+
parallel = False
@property
def pvm_arch(self):
"""Returns the appropriate PVM_ARCH."""
process = subprocess.Popen(['lib/pvmgetarch'], stdout=subprocess.PIPE)
- return process.communicate()[0].strip()
+ return process.communicate()[0].strip().decode()
def edit(self, spec, prefix):
# Before building PVM, you must set the environment
# variable "PVM_ROOT" to the path where PVM resides
env['PVM_ROOT'] = self.stage.source_path
+ def patch(self):
+
+ pvm_arch = self.pvm_arch
+
+ if '+fpic' in self.spec:
+ filter_file(
+ '^SHAREDCFLAGS =',
+ 'SHAREDCFLAGS = -fPIC',
+ join_path('conf', pvm_arch + '.def')
+ )
+
+ def setup_build_environment(self, env):
+ tirpc = self.spec['libtirpc'].prefix
+ env.prepend_path(
+ 'SPACK_INCLUDE_DIRS',
+ tirpc.include.tirpc,
+ )
+ env.set('SPACK_LDLIBS', '-ltirpc')
+
def install(self, spec, prefix):
pvm_arch = self.pvm_arch
diff --git a/var/spack/repos/builtin/packages/pxz/package.py b/var/spack/repos/builtin/packages/pxz/package.py
index cbc64a0e88..213099bef2 100644
--- a/var/spack/repos/builtin/packages/pxz/package.py
+++ b/var/spack/repos/builtin/packages/pxz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Pxz(MakefilePackage):
"""Pxz is a parallel LZMA compressor using liblzma."""
homepage = "https://jnovy.fedorapeople.org/pxz/pxz.html"
- url = "http://jnovy.fedorapeople.org/pxz/pxz-4.999.9beta.20091201git.tar.xz"
+ url = "https://jnovy.fedorapeople.org/pxz/pxz-4.999.9beta.20091201git.tar.xz"
git = "https://github.com/jnovy/pxz.git"
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/py-3to2/package.py b/var/spack/repos/builtin/packages/py-3to2/package.py
index facf4b4067..4ac91215fd 100644
--- a/var/spack/repos/builtin/packages/py-3to2/package.py
+++ b/var/spack/repos/builtin/packages/py-3to2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,6 @@ class Py3to2(PythonPackage):
"""lib3to2 is a set of fixers that are intended to backport code written
for Python version 3.x into Python version 2.x."""
- homepage = "https://pypi.python.org/pypi/3to2"
- url = "https://pypi.io/packages/source/3/3to2/3to2-1.1.1.zip"
+ pypi = "3to2/3to2-1.1.1.zip"
version('1.1.1', sha256='fef50b2b881ef743f269946e1090b77567b71bb9a9ce64b7f8e699b562ff685c')
diff --git a/var/spack/repos/builtin/packages/py-4suite-xml/package.py b/var/spack/repos/builtin/packages/py-4suite-xml/package.py
index a848e1a63a..60ce3b0fba 100644
--- a/var/spack/repos/builtin/packages/py-4suite-xml/package.py
+++ b/var/spack/repos/builtin/packages/py-4suite-xml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Py4suiteXml(PythonPackage):
XLink, XUpdate"""
homepage = "http://4suite.org/"
- url = "https://pypi.io/packages/source/4/4Suite-XML/4Suite-XML-1.0.2.tar.gz"
+ pypi = "4Suite-XML/4Suite-XML-1.0.2.tar.gz"
version('1.0.2', sha256='f0c24132eb2567e64b33568abff29a780a2f0236154074d0b8f5262ce89d8c03')
diff --git a/var/spack/repos/builtin/packages/py-abcpy/package.py b/var/spack/repos/builtin/packages/py-abcpy/package.py
new file mode 100644
index 0000000000..5ed72a3883
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-abcpy/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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 PyAbcpy(PythonPackage):
+ """
+ ABCpy is a highly modular, scientific library for approximate Bayesian
+ computation (ABC) written in Python. It is designed to run all included ABC
+ algorithms in parallel, either using multiple cores of a single computer or
+ using an Apache Spark or MPI enabled cluster.
+ """
+
+ homepage = "https://github.com/eth-cscs/abcpy"
+ pypi = "abcpy/abcpy-0.6.3.tar.gz"
+
+ version('0.6.3', sha256='14cd959f3ccff8f5fd1d16239b8706cc8d1c1e2fe25d72855f500f005de41245')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-scikit-learn@0.23.1:', type=('build', 'run'))
+ depends_on('py-glmnet@2.2.1:', type=('build', 'run'))
+ depends_on('py-mpi4py', type=('build', 'run'))
+ depends_on('py-cloudpickle', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-tqdm', type=('build', 'run'))
+ depends_on('py-pot', type=('build', 'run'))
+
+ # Development dependencies are required in setup.py :(
+ depends_on('py-sphinx', type='build')
+ depends_on('py-sphinx-rtd-theme', type='build')
+ depends_on('py-coverage', type='build')
diff --git a/var/spack/repos/builtin/packages/py-abipy/package.py b/var/spack/repos/builtin/packages/py-abipy/package.py
index b9b476b096..f9b1d517c3 100644
--- a/var/spack/repos/builtin/packages/py-abipy/package.py
+++ b/var/spack/repos/builtin/packages/py-abipy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyAbipy(PythonPackage):
the results."""
homepage = "https://github.com/abinit/abipy"
- url = "https://pypi.io/packages/source/a/abipy/abipy-0.2.0.tar.gz"
+ pypi = "abipy/abipy-0.2.0.tar.gz"
version('0.2.0', sha256='c72b796ba0f9ea4299eac3085bede092d2652e9e5e8074d3badd19ef7b600792')
diff --git a/var/spack/repos/builtin/packages/py-absl-py/package.py b/var/spack/repos/builtin/packages/py-absl-py/package.py
index 5d77a4095e..bf7fbb8c57 100644
--- a/var/spack/repos/builtin/packages/py-absl-py/package.py
+++ b/var/spack/repos/builtin/packages/py-absl-py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,12 @@ class PyAbslPy(PythonPackage):
extensively tested and used in production.
"""
- homepage = "https://pypi.org/project/absl-py/"
- url = "https://pypi.io/packages/source/a/absl-py/absl-py-0.7.0.tar.gz"
+ pypi = "absl-py/absl-py-0.7.0.tar.gz"
+ version('0.13.0', sha256='6953272383486044699fd0e9f00aad167a27e08ce19aae66c6c4b10e7e767793')
+ version('0.12.0', sha256='b44f68984a5ceb2607d135a615999b93924c771238a63920d17d3387b0d229d5')
+ version('0.11.0', sha256='673cccb88d810e5627d0c1c818158485d106f65a583880e2f730c997399bcfa7')
+ version('0.10.0', sha256='b20f504a7871a580be5268a18fbad48af4203df5d33dbc9272426cb806245a45')
version('0.7.1', sha256='b943d1c567743ed0455878fcd60bc28ac9fae38d129d1ccfad58079da00b8951')
version('0.7.0', sha256='8718189e4bd6013bf79910b9d1cb0a76aecad8ce664f78e1144980fabdd2cd23')
version('0.1.6', sha256='02c577d618a8bc0a2a5d1a51f160d3649745d7a2516d87025322f46ac1391a22')
diff --git a/var/spack/repos/builtin/packages/py-accimage/package.py b/var/spack/repos/builtin/packages/py-accimage/package.py
index 3ef812704c..1006c946f9 100644
--- a/var/spack/repos/builtin/packages/py-accimage/package.py
+++ b/var/spack/repos/builtin/packages/py-accimage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,6 +22,8 @@ class PyAccimage(PythonPackage):
depends_on('py-numpy', type='test')
depends_on('py-imageio', type='test')
- def test(self):
+ @run_after('build')
+ @on_package_attributes(run_tests=True)
+ def build_test(self):
pytest = which('pytest')
pytest('test.py')
diff --git a/var/spack/repos/builtin/packages/py-acme-tiny/package.py b/var/spack/repos/builtin/packages/py-acme-tiny/package.py
index 33db049299..beaaf6ec33 100644
--- a/var/spack/repos/builtin/packages/py-acme-tiny/package.py
+++ b/var/spack/repos/builtin/packages/py-acme-tiny/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-adal/package.py b/var/spack/repos/builtin/packages/py-adal/package.py
index b1fac54c0f..bf2bbc8d22 100644
--- a/var/spack/repos/builtin/packages/py-adal/package.py
+++ b/var/spack/repos/builtin/packages/py-adal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyAdal(PythonPackage):
DEPRECATED: replaced by MSAL Python."""
homepage = "https://github.com/AzureAD/azure-activedirectory-library-for-python"
- url = "https://pypi.io/packages/source/a/adal/adal-1.2.4.tar.gz"
+ pypi = "adal/adal-1.2.4.tar.gz"
version('1.2.4', sha256='7a15d22b1ee7ce1be92441199958748982feba6b7dec35fbf60f9b607bad1bc0')
diff --git a/var/spack/repos/builtin/packages/py-adb-enhanced/package.py b/var/spack/repos/builtin/packages/py-adb-enhanced/package.py
index 92eff9a04a..a2ae86872a 100644
--- a/var/spack/repos/builtin/packages/py-adb-enhanced/package.py
+++ b/var/spack/repos/builtin/packages/py-adb-enhanced/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,14 +15,15 @@ class PyAdbEnhanced(PythonPackage):
homepage = "https://opencollective.com/ashishb"
url = "https://github.com/ashishb/adb-enhanced/archive/2.5.4.tar.gz"
+ version('2.5.10', sha256='9e913d09814ce99974c455a766c5b616a92bca551e657517d6e079882eb19bdb')
version('2.5.4', sha256='329ee2e0cfceaa41c591398b365d9acdfd45ffe913c64ac06e1538041986fffb')
version('2.5.3', sha256='5a1d5182d1a073b440e862e5481c7a21073eccc3cda7a4774a2aa311fee9bbdc')
version('2.5.2', sha256='055676156c1566b8d952b9fdfdd89fc09f2d5d1e3b90b4cdf40858ce9947e2ca')
depends_on('python@3:', type=('build', 'run'))
+ depends_on('python@3.4:', when='@2.5.10:', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-docopt', type=('build', 'run'))
- depends_on('py-future', type=('build', 'run'))
+ depends_on('py-future', when='@:2.5.4', type=('build', 'run'))
depends_on('py-psutil', type=('build', 'run'))
- depends_on('py-asyncio', type=('build', 'run'))
- depends_on('py-pytest', type='test')
+ depends_on('py-asyncio', when='@:2.5.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-addict/package.py b/var/spack/repos/builtin/packages/py-addict/package.py
index b4b27f9975..99daa3e067 100644
--- a/var/spack/repos/builtin/packages/py-addict/package.py
+++ b/var/spack/repos/builtin/packages/py-addict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-adios/package.py b/var/spack/repos/builtin/packages/py-adios/package.py
index aace2cd98a..e7c6d87df3 100644
--- a/var/spack/repos/builtin/packages/py-adios/package.py
+++ b/var/spack/repos/builtin/packages/py-adios/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,14 @@ from spack import *
class PyAdios(PythonPackage):
"""NumPy bindings of ADIOS1"""
- homepage = "https://www.olcf.ornl.gov/center-projects/adios/"
+ homepage = "https://csmd.ornl.gov/adios"
url = "https://github.com/ornladios/ADIOS/archive/v1.12.0.tar.gz"
git = "https://github.com/ornladios/ADIOS.git"
maintainers = ['ax3l']
version('develop', branch='master')
+ version('1.13.1', sha256='b1c6949918f5e69f701cabfe5987c0b286793f1057d4690f04747852544e157b')
version('1.13.0', sha256='7b5ee8ff7a5f7215f157c484b20adb277ec0250f87510513edcc25d2c4739f50')
version('1.12.0', sha256='22bc22c157322abec2d1a0817a259efd9057f88c2113e67d918a9a5ebcb3d88d')
version('1.11.1', sha256='9f5c10b9471a721ba57d1cf6e5a55a7ad139a6c12da87b4dc128539e9eef370e')
@@ -26,7 +27,7 @@ class PyAdios(PythonPackage):
variant('mpi', default=True,
description='Enable MPI support')
- for v in ['1.9.0', '1.10.0', '1.11.0', '1.11.1', '1.12.0', '1.13.0',
+ for v in ['1.9.0', '1.10.0', '1.11.0', '1.11.1', '1.12.0', '1.13.0', '1.13.1',
'develop']:
depends_on('adios@{0} ~mpi'.format(v),
when='@{0} ~mpi'.format(v),
diff --git a/var/spack/repos/builtin/packages/py-advancedhtmlparser/package.py b/var/spack/repos/builtin/packages/py-advancedhtmlparser/package.py
index 11daf7db41..111c241822 100644
--- a/var/spack/repos/builtin/packages/py-advancedhtmlparser/package.py
+++ b/var/spack/repos/builtin/packages/py-advancedhtmlparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyAdvancedhtmlparser(PythonPackage):
modification, and formatting"""
homepage = "https://github.com/kata198/AdvancedHTMLParser"
- url = "https://pypi.io/packages/source/a/advancedhtmlparser/AdvancedHTMLParser-8.1.4.tar.gz"
+ pypi = "advancedhtmlparser/AdvancedHTMLParser-8.1.4.tar.gz"
version('8.1.4', sha256='21a73137026c8ec3248c654a24cc40064196029256cdf71681149f6835e9ed39')
diff --git a/var/spack/repos/builtin/packages/py-aenum/package.py b/var/spack/repos/builtin/packages/py-aenum/package.py
index 3fa4c63a80..b99a862702 100644
--- a/var/spack/repos/builtin/packages/py-aenum/package.py
+++ b/var/spack/repos/builtin/packages/py-aenum/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,8 @@ class PyAenum(PythonPackage):
"""Advanced Enumerations (compatible with Python's stdlib Enum),
NamedTuples, and NamedConstants."""
- homepage = "https://bitbucket.org/stoneleaf/aenum"
- url = "https://pypi.io/packages/source/a/aenum/aenum-2.1.2.tar.gz"
-
- import_modules = ['aenum']
+ homepage = "https://github.com/ethanfurman/aenum"
+ pypi = "aenum/aenum-2.1.2.tar.gz"
version('2.1.2', sha256='a3208e4b28db3a7b232ff69b934aef2ea1bf27286d9978e1e597d46f490e4687')
diff --git a/var/spack/repos/builtin/packages/py-affine/package.py b/var/spack/repos/builtin/packages/py-affine/package.py
index d473915436..1a554a4ea4 100644
--- a/var/spack/repos/builtin/packages/py-affine/package.py
+++ b/var/spack/repos/builtin/packages/py-affine/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-agate-dbf/package.py b/var/spack/repos/builtin/packages/py-agate-dbf/package.py
index e5a64ed299..16e1bd09f6 100644
--- a/var/spack/repos/builtin/packages/py-agate-dbf/package.py
+++ b/var/spack/repos/builtin/packages/py-agate-dbf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyAgateDbf(PythonPackage):
"""agate-dbf adds read support for dbf files to agate."""
homepage = "https://agate-dbf.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/a/agate-dbf/agate-dbf-0.2.1.tar.gz"
+ pypi = "agate-dbf/agate-dbf-0.2.1.tar.gz"
version('0.2.1', sha256='00c93c498ec9a04cc587bf63dd7340e67e2541f0df4c9a7259d7cb3dd4ce372f')
diff --git a/var/spack/repos/builtin/packages/py-agate-excel/package.py b/var/spack/repos/builtin/packages/py-agate-excel/package.py
index f129ff9b5c..39fa0237d8 100644
--- a/var/spack/repos/builtin/packages/py-agate-excel/package.py
+++ b/var/spack/repos/builtin/packages/py-agate-excel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyAgateExcel(PythonPackage):
agate."""
homepage = "https://agate-excel.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/a/agate-excel/agate-excel-0.2.3.tar.gz"
+ pypi = "agate-excel/agate-excel-0.2.3.tar.gz"
version('0.2.3', sha256='8f255ef2c87c436b7132049e1dd86c8e08bf82d8c773aea86f3069b461a17d52')
diff --git a/var/spack/repos/builtin/packages/py-agate-sql/package.py b/var/spack/repos/builtin/packages/py-agate-sql/package.py
index 340ac94245..51164b7514 100644
--- a/var/spack/repos/builtin/packages/py-agate-sql/package.py
+++ b/var/spack/repos/builtin/packages/py-agate-sql/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyAgateSql(PythonPackage):
"""agate-sql adds SQL read/write support to agate."""
homepage = "https://agate-sql.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/a/agate-sql/agate-sql-0.5.4.tar.gz"
+ pypi = "agate-sql/agate-sql-0.5.4.tar.gz"
version('0.5.4', sha256='9277490ba8b8e7c747a9ae3671f52fe486784b48d4a14e78ca197fb0e36f281b')
diff --git a/var/spack/repos/builtin/packages/py-agate/package.py b/var/spack/repos/builtin/packages/py-agate/package.py
index 849e65574b..ba7eda21e8 100644
--- a/var/spack/repos/builtin/packages/py-agate/package.py
+++ b/var/spack/repos/builtin/packages/py-agate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyAgate(PythonPackage):
real-world problems with readable code."""
homepage = "https://agate.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/a/agate/agate-1.6.1.tar.gz"
+ pypi = "agate/agate-1.6.1.tar.gz"
version('1.6.1', sha256='c93aaa500b439d71e4a5cf088d0006d2ce2c76f1950960c8843114e5f361dfd3')
diff --git a/var/spack/repos/builtin/packages/py-aiobotocore/package.py b/var/spack/repos/builtin/packages/py-aiobotocore/package.py
new file mode 100644
index 0000000000..00deac6247
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-aiobotocore/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyAiobotocore(PythonPackage):
+ """Async client for amazon services using botocore and aiohttp/asyncio."""
+
+ homepage = "https://aiobotocore.readthedocs.io/en/latest/"
+ pypi = "aiobotocore/aiobotocore-1.2.1.tar.gz"
+
+ version('1.2.1', sha256='58cc422e65fc89f7cb78eca740d241ac8e15f39f6b308cc23152711e8a987d45')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-botocore@1.19.52', type=('build', 'run'))
+ depends_on('py-aiohttp@3.3.1:', type=('build', 'run'))
+ depends_on('py-wrapt@1.10.10:', type=('build', 'run'))
+ depends_on('py-aioitertools@0.5.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-aiodns/package.py b/var/spack/repos/builtin/packages/py-aiodns/package.py
new file mode 100644
index 0000000000..d6494e57e8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-aiodns/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyAiodns(PythonPackage):
+ """Simple DNS resolver for asyncio.It provides a simple way for
+ doing asynchronous DNS resolutions using pycares."""
+
+ homepage = "https://pypi.org/project/aiodns/"
+ pypi = "aiodns/aiodns-2.0.0.tar.gz"
+
+ version('2.0.0', sha256='815fdef4607474295d68da46978a54481dd1e7be153c7d60f9e72773cd38d77d')
+ version('1.2.0', sha256='d67e14b32176bcf3ff79b5d47c466011ce4adeadfa264f7949da1377332a0449')
+ version('1.1.1', sha256='d8677adc679ce8d0ef706c14d9c3d2f27a0e0cc11d59730cdbaf218ad52dd9ea')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-typing', when='^python@:3.6.999', type=('build', 'run'))
+ depends_on('py-pycares@3.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-aiofiles/package.py b/var/spack/repos/builtin/packages/py-aiofiles/package.py
index b6248f37e7..bc0b6d99c0 100644
--- a/var/spack/repos/builtin/packages/py-aiofiles/package.py
+++ b/var/spack/repos/builtin/packages/py-aiofiles/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyAiofiles(PythonPackage):
handling local disk files in asyncio applications."""
homepage = "https://github.com/Tinche/aiofiles"
- url = "https://pypi.io/packages/source/a/aiofiles/aiofiles-0.5.0.tar.gz"
+ pypi = "aiofiles/aiofiles-0.5.0.tar.gz"
version('0.5.0', sha256='98e6bcfd1b50f97db4980e182ddd509b7cc35909e903a8fe50d8849e02d815af')
diff --git a/var/spack/repos/builtin/packages/py-aiohttp-cors/package.py b/var/spack/repos/builtin/packages/py-aiohttp-cors/package.py
new file mode 100644
index 0000000000..e5c2f67f63
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-aiohttp-cors/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyAiohttpCors(PythonPackage):
+ """aiohttp_cors library implements Cross Origin Resource Sharing (CORS)
+ support for aiohttp asyncio-powered asynchronous HTTP server."""
+
+ homepage = "https://github.com/aio-libs/aiohttp-cors"
+ pypi = "aiohttp_cors/aiohttp-cors-0.7.0.tar.gz"
+
+ version('0.7.0', sha256='4d39c6d7100fd9764ed1caf8cebf0eb01bf5e3f24e2e073fda6234bc48b19f5d')
+
+ depends_on('python@3.4.1:', type=('build', 'run'))
+ depends_on('py-setuptools@20.8.1:', type='build')
+ depends_on('py-aiohttp@1.1:', type=('build', 'run'))
+ depends_on('py-typing', when='^python@:3.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-aiohttp/package.py b/var/spack/repos/builtin/packages/py-aiohttp/package.py
index e29f467c29..a94fed955f 100644
--- a/var/spack/repos/builtin/packages/py-aiohttp/package.py
+++ b/var/spack/repos/builtin/packages/py-aiohttp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-aioitertools/package.py b/var/spack/repos/builtin/packages/py-aioitertools/package.py
new file mode 100644
index 0000000000..39484caaef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-aioitertools/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyAioitertools(PythonPackage):
+ """Implementation of itertools, builtins, and more for AsyncIO and mixed-type
+ iterables."""
+
+ homepage = "https://aioitertools.omnilib.dev/en/stable/"
+ pypi = "aioitertools/aioitertools-0.7.1.tar.gz"
+
+ version('0.7.1', sha256='54a56c7cf3b5290d1cb5e8974353c9f52c677612b5d69a859369a020c53414a3')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-typing-extensions@3.7:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-aioredis/package.py b/var/spack/repos/builtin/packages/py-aioredis/package.py
index 6760e58471..0b7e678dff 100644
--- a/var/spack/repos/builtin/packages/py-aioredis/package.py
+++ b/var/spack/repos/builtin/packages/py-aioredis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyAioredis(PythonPackage):
"""asyncio (PEP 3156) Redis support."""
homepage = "https://github.com/aio-libs/aioredis"
- url = "https://pypi.io/packages/source/a/aioredis/aioredis-1.3.1.tar.gz"
+ pypi = "aioredis/aioredis-1.3.1.tar.gz"
version('1.3.1', sha256='15f8af30b044c771aee6787e5ec24694c048184c7b9e54c3b60c750a4b93273a')
diff --git a/var/spack/repos/builtin/packages/py-alabaster/package.py b/var/spack/repos/builtin/packages/py-alabaster/package.py
index 5d623519b7..a1606d6105 100644
--- a/var/spack/repos/builtin/packages/py-alabaster/package.py
+++ b/var/spack/repos/builtin/packages/py-alabaster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,10 @@ class PyAlabaster(PythonPackage):
for the Sphinx documentation system."""
homepage = "https://alabaster.readthedocs.io/"
- url = "https://pypi.io/packages/source/a/alabaster/alabaster-0.7.10.tar.gz"
-
- import_modules = ['alabaster']
+ pypi = "alabaster/alabaster-0.7.10.tar.gz"
version('0.7.12', sha256='a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02')
version('0.7.10', sha256='37cdcb9e9954ed60912ebc1ca12a9d12178c26637abdf124e3cde2341c257fe0')
version('0.7.9', sha256='47afd43b08a4ecaa45e3496e139a193ce364571e7e10c6a87ca1a4c57eb7ea08')
depends_on('py-setuptools', type='build')
- depends_on('py-pygments', type='test')
diff --git a/var/spack/repos/builtin/packages/py-alembic/package.py b/var/spack/repos/builtin/packages/py-alembic/package.py
index 86b75bc361..b03bf6d5e6 100644
--- a/var/spack/repos/builtin/packages/py-alembic/package.py
+++ b/var/spack/repos/builtin/packages/py-alembic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,15 @@ from spack import *
class PyAlembic(PythonPackage):
"""Alembic is a database migrations tool."""
- homepage = "https://pypi.org/project/alembic/"
- url = "https://pypi.io/packages/source/a/alembic/alembic-1.0.7.tar.gz"
+ pypi = "alembic/alembic-1.0.7.tar.gz"
+ version('1.5.5', sha256='df0028c19275a2cff137e39617a39cdcdbd1173733b87b6bfa257b7c0860213b')
version('1.0.7', sha256='16505782b229007ae905ef9e0ae6e880fddafa406f086ac7d442c1aaf712f8c2')
+ depends_on('python@2.7:2.8,3.6:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-sqlalchemy@1.1.0:', type=('build', 'run'))
+ depends_on('py-sqlalchemy@1.3.0:', type=('build', 'run'), when='@1.5:')
+ depends_on('py-sqlalchemy@1.1.0:', type=('build', 'run'), when='@:1.4.999')
depends_on('py-mako', type=('build', 'run'))
depends_on('py-python-dateutil', type=('build', 'run'))
depends_on('py-python-editor@0.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-altgraph/package.py b/var/spack/repos/builtin/packages/py-altgraph/package.py
index 221fc3de85..596bd1eff0 100644
--- a/var/spack/repos/builtin/packages/py-altgraph/package.py
+++ b/var/spack/repos/builtin/packages/py-altgraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,7 @@ class PyAltgraph(PythonPackage):
topological sort, shortest paths, etc. with graphviz output.
"""
- homepage = "https://pypi.python.org/pypi/altgraph"
- url = "https://pypi.io/packages/source/a/altgraph/altgraph-0.16.1.tar.gz"
+ pypi = "altgraph/altgraph-0.16.1.tar.gz"
version('0.16.1', "ddf5320017147ba7b810198e0b6619bd7b5563aa034da388cea8546b877f9b0c")
diff --git a/var/spack/repos/builtin/packages/py-amqp/package.py b/var/spack/repos/builtin/packages/py-amqp/package.py
index 63f85069b0..ddd3a4dc7c 100644
--- a/var/spack/repos/builtin/packages/py-amqp/package.py
+++ b/var/spack/repos/builtin/packages/py-amqp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyAmqp(PythonPackage):
"""Low-level AMQP client for Python (fork of amqplib)."""
- homepage = "https://pypi.org/project/amqp/"
- url = "https://pypi.io/packages/source/a/amqp/amqp-2.4.1.tar.gz"
+ pypi = "amqp/amqp-2.4.1.tar.gz"
version('5.0.1', sha256='9881f8e6fe23e3db9faa6cfd8c05390213e1d1b95c0162bc50552cad75bffa5f')
version('2.6.1', sha256='70cdb10628468ff14e57ec2f751c7aa9e48e7e3651cfd62d431213c0c4e58f21')
diff --git a/var/spack/repos/builtin/packages/py-angel/package.py b/var/spack/repos/builtin/packages/py-angel/package.py
new file mode 100644
index 0000000000..31eb071227
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-angel/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyAngel(PythonPackage):
+ """ANGEL: Robust Open Reading Frame prediction"""
+
+ homepage = "https://github.com/PacificBiosciences/ANGEL"
+ url = "https://github.com/PacificBiosciences/ANGEL/archive/v3.0.tar.gz"
+
+ version('3.0', sha256='a0319553055d3dfc84a4f732ed246c180c23ee9c397810c96acd7940721ae57d')
+
+ depends_on('python@3.7:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython', type='build')
+ depends_on('py-numpy@1.7:', type=('build', 'run'))
+ depends_on('py-scikit-learn', type=('build', 'run'))
+
+ depends_on('py-biopython@:1.72', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-aniso8601/package.py b/var/spack/repos/builtin/packages/py-aniso8601/package.py
new file mode 100644
index 0000000000..e94e71d978
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-aniso8601/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyAniso8601(PythonPackage):
+ """A library for parsing ISO 8601 strings."""
+
+ homepage = "https://bitbucket.org/nielsenb/aniso8601"
+ pypi = "aniso8601/aniso8601-9.0.1.tar.gz"
+
+ version('9.0.1', sha256='72e3117667eedf66951bb2d93f4296a56b94b078a8a95905a052611fb3f1b973')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-annexremote/package.py b/var/spack/repos/builtin/packages/py-annexremote/package.py
new file mode 100644
index 0000000000..8187b70fdc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-annexremote/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyAnnexremote(PythonPackage):
+ """git annex special remotes made easy."""
+
+ homepage = "https://github.com/Lykos153/AnnexRemote"
+ pypi = "annexremote/annexremote-1.5.0.tar.gz"
+
+ version('1.5.0', sha256='92f32b6f5461cbaeefe0c60b32f9c1e0c1dbe4e57b8ee425affb56f4060f64ef')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-future', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-ansi2html/package.py b/var/spack/repos/builtin/packages/py-ansi2html/package.py
new file mode 100644
index 0000000000..04c45812a9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ansi2html/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyAnsi2html(PythonPackage):
+ """Convert text with ansi color codes to HTML"""
+
+ homepage = "https://github.com/pycontribs/ansi2html"
+ pypi = "ansi2html/ansi2html-1.6.0.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('1.6.0', sha256='0f124ea7efcf3f24f1f9398e527e688c9ae6eab26b0b84e1299ef7f94d92c596')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pip', type='build')
diff --git a/var/spack/repos/builtin/packages/py-ansible/package.py b/var/spack/repos/builtin/packages/py-ansible/package.py
index c3df51f2f2..ea3fa0357c 100644
--- a/var/spack/repos/builtin/packages/py-ansible/package.py
+++ b/var/spack/repos/builtin/packages/py-ansible/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-antlr4-python3-runtime/package.py b/var/spack/repos/builtin/packages/py-antlr4-python3-runtime/package.py
index 2684416f08..c25210e03b 100644
--- a/var/spack/repos/builtin/packages/py-antlr4-python3-runtime/package.py
+++ b/var/spack/repos/builtin/packages/py-antlr4-python3-runtime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,9 +13,11 @@ class PyAntlr4Python3Runtime(PythonPackage):
"""
homepage = "https://www.antlr.org"
- url = "https://pypi.io/packages/source/a/antlr4-python3-runtime/antlr4-python3-runtime-4.7.2.tar.gz"
+ pypi = "antlr4-python3-runtime/antlr4-python3-runtime-4.7.2.tar.gz"
+ version('4.8', sha256='15793f5d0512a372b4e7d2284058ad32ce7dd27126b105fb0b2245130445db33')
version('4.7.2', sha256='168cdcec8fb9152e84a87ca6fd261b3d54c8f6358f42ab3b813b14a7193bb50b')
depends_on('python@3:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
+ depends_on('py-typing', when='^python@:3.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-anuga/package.py b/var/spack/repos/builtin/packages/py-anuga/package.py
new file mode 100644
index 0000000000..931a45160d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-anuga/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 PyAnuga(PythonPackage):
+ """ANUGA (pronounced "AHnooGAH") is open-source software for the simulation
+ of the shallow water equation, in particular it can be used to model
+ tsunamis and floods."""
+
+ homepage = "https://github.com/GeoscienceAustralia/anuga_core"
+ url = "https://github.com/GeoscienceAustralia/anuga_core/archive/2.1.tar.gz"
+
+ version('2.1', sha256='0e56c4a7d55570d7b2c36fa9b53ee4e7b85f62be0b4c03ad8ab5f51464321d2f')
+
+ variant('mpi', default=True, description='Install anuga_parallel')
+
+ # At present AnuGA has only been run and tested using python 2.x.
+ # We recommend python 2.7.
+ depends_on('python@2.6:2.8', type=('build', 'run'))
+ depends_on('py-setuptools@:44', type='build')
+ depends_on('py-numpy@:1.16', type=('build', 'run'))
+ depends_on('py-netcdf4', type=('build', 'run'))
+ depends_on('py-matplotlib@:2', type=('build', 'run'))
+ depends_on('gdal@:3.2+python', type=('build', 'run'))
+ depends_on('py-pypar', when='+mpi', type=('build', 'run'))
+
+ # https://github.com/GeoscienceAustralia/anuga_core/issues/247
+ conflicts('%apple-clang@12:')
diff --git a/var/spack/repos/builtin/packages/py-anyio/package.py b/var/spack/repos/builtin/packages/py-anyio/package.py
new file mode 100644
index 0000000000..c7838e8228
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-anyio/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyAnyio(PythonPackage):
+ """High level compatibility layer for multiple asynchronous event loop
+ implementations."""
+
+ homepage = "https://github.com/agronholm/anyio"
+ pypi = "anyio/anyio-3.2.1.tar.gz"
+
+ version('3.2.1', sha256='07968db9fa7c1ca5435a133dc62f988d84ef78e1d9b22814a59d1c62618afbc5')
+
+ depends_on('python@3.6.2:', type=('build', 'run'))
+ depends_on('py-setuptools@42:', type='build')
+ depends_on('py-setuptools-scm+toml@3.4:', type='build')
+ depends_on('py-async-generator', when='^python@:3.6.999', type=('build', 'run'))
+ depends_on('py-dataclasses', when='^python@:3.6.999', type=('build', 'run'))
+ depends_on('py-idna@2.8:', type=('build', 'run'))
+ depends_on('py-sniffio@1.1:', type=('build', 'run'))
+ depends_on('py-typing-extensions', when='^python@:3.7.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-anytree/package.py b/var/spack/repos/builtin/packages/py-anytree/package.py
new file mode 100644
index 0000000000..b8bf4c54f0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-anytree/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyAnytree(PythonPackage):
+ """Python tree data library - lightweight and extensible Tree data structure."""
+
+ homepage = 'https://github.com/c0fec0de/anytree'
+ pypi = 'anytree/anytree-2.8.0.tar.gz'
+ maintainers = ['bernhardkaindl']
+
+ version('2.8.0', sha256='3f0f93f355a91bc3e6245319bf4c1d50e3416cc7a35cc1133c1ff38306bbccab')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-apache-beam/package.py b/var/spack/repos/builtin/packages/py-apache-beam/package.py
index d06ebd20bd..5878eeadec 100644
--- a/var/spack/repos/builtin/packages/py-apache-beam/package.py
+++ b/var/spack/repos/builtin/packages/py-apache-beam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyApacheBeam(PythonPackage):
"""Apache Beam is a unified programming model for Batch and Streaming."""
homepage = "https://github.com/apache/beam"
- url = "https://pypi.io/packages/source/a/apache-beam/apache-beam-2.24.0.zip"
+ pypi = "apache-beam/apache-beam-2.24.0.zip"
version('2.24.0', sha256='55c50b1a964bacc840a5e4cc3b4a42c4ef09d12192d215ba3cad65d4d22e09dd')
@@ -18,7 +18,6 @@ class PyApacheBeam(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('py-pip@7.0.0:', type=('build', 'run'))
depends_on('py-cython@0.28.1:', type=('build', 'run'))
- depends_on('py-avro@1.8.1:1.10.8', type=('build', 'run'), when='^python@:2.9')
depends_on('py-avro-python3@1.8.1:1.10.0', type=('build', 'run'), when='^python@3.0:')
depends_on('py-crcmod@1.7:', type=('build', 'run'))
depends_on('py-dill@0.3.1:0.3.2', type=('build', 'run'))
@@ -42,5 +41,3 @@ class PyApacheBeam(PythonPackage):
depends_on('py-requests@2.24.0:3.0.0', type=('build', 'run'))
depends_on('py-typing@3.7.0:3.8.0', type=('build', 'run'), when='^python@:3.5')
depends_on('py-typing-extensions@3.7.0:3.8.0', type=('build', 'run'))
-
- conflicts('+py-avro-python3', when='@1.9.2')
diff --git a/var/spack/repos/builtin/packages/py-apache-libcloud/package.py b/var/spack/repos/builtin/packages/py-apache-libcloud/package.py
index 2b2034d98d..b8340f1ed5 100644
--- a/var/spack/repos/builtin/packages/py-apache-libcloud/package.py
+++ b/var/spack/repos/builtin/packages/py-apache-libcloud/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyApacheLibcloud(PythonPackage):
"""Python library for multiple cloud provider APIs"""
- homepage = "http://libcloud.apache.org"
- url = "https://pypi.io/packages/source/a/apache-libcloud/apache-libcloud-1.2.1.tar.gz"
+ homepage = "https://libcloud.apache.org"
+ pypi = "apache-libcloud/apache-libcloud-1.2.1.tar.gz"
version('1.2.1', sha256='b26b542c6c9785dd4e34892d87421ffa4c043335c1cba301a97a8d9748c423f2')
diff --git a/var/spack/repos/builtin/packages/py-apex/package.py b/var/spack/repos/builtin/packages/py-apex/package.py
index 0132a01c4d..bed0e8a971 100644
--- a/var/spack/repos/builtin/packages/py-apex/package.py
+++ b/var/spack/repos/builtin/packages/py-apex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyApex(PythonPackage):
"""apex: Pyramid toolkit to add Velruse, Flash Messages,CSRF,
ReCaptcha and Sessions."""
- homepage = "https://pypi.org/project/apex/"
- url = "https://pypi.io/packages/source/a/apex/apex-0.9.10dev.tar.gz"
+ pypi = "apex/apex-0.9.10dev.tar.gz"
version('0.9.10dev', sha256='48aa6d9e805e661e609161bd52e0d02d89a9a32f32dc29cde6c950df58129119')
diff --git a/var/spack/repos/builtin/packages/py-apipkg/package.py b/var/spack/repos/builtin/packages/py-apipkg/package.py
index 6799ad8f26..abbac3bae6 100644
--- a/var/spack/repos/builtin/packages/py-apipkg/package.py
+++ b/var/spack/repos/builtin/packages/py-apipkg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyApipkg(PythonPackage):
"""apipkg: namespace control and lazy-import mechanism"""
- homepage = "https://pypi.python.org/pypi/apipkg"
- url = "https://pypi.io/packages/source/a/apipkg/apipkg-1.4.tar.gz"
+ pypi = "apipkg/apipkg-1.4.tar.gz"
version('1.5', sha256='37228cda29411948b422fae072f57e31d3396d2ee1c9783775980ee9c9990af6')
version('1.4', sha256='2e38399dbe842891fe85392601aab8f40a8f4cc5a9053c326de35a1cc0297ac6')
@@ -18,5 +17,3 @@ class PyApipkg(PythonPackage):
depends_on('py-setuptools@30.3.0:', type='build')
depends_on('py-setuptools-scm', type='build')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
- depends_on('py-py', type='test')
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-appdirs/package.py b/var/spack/repos/builtin/packages/py-appdirs/package.py
index 29b6c4f85b..101f32f6b4 100644
--- a/var/spack/repos/builtin/packages/py-appdirs/package.py
+++ b/var/spack/repos/builtin/packages/py-appdirs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,18 +11,10 @@ class PyAppdirs(PythonPackage):
dirs, e.g. a "user data dir"."""
homepage = "https://github.com/ActiveState/appdirs"
- url = "https://pypi.io/packages/source/a/appdirs/appdirs-1.4.3.tar.gz"
-
- import_modules = ['appdirs']
+ pypi = "appdirs/appdirs-1.4.3.tar.gz"
version('1.4.3', sha256='9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92')
version('1.4.0', sha256='8fc245efb4387a4e3e0ac8ebcc704582df7d72ff6a42a53f5600bbb18fdaadc5')
patch('setuptools-import.patch', when='@:1.4.0')
-
- # Newer versions of setuptools require appdirs. Although setuptools is an
- # optional dependency of appdirs, if it is not found, setup.py will
- # fallback on distutils.core instead. Don't add a setuptools dependency
- # or we won't be able to bootstrap setuptools.
-
- # depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-applicationinsights/package.py b/var/spack/repos/builtin/packages/py-applicationinsights/package.py
index a14808abab..ea155cdf19 100644
--- a/var/spack/repos/builtin/packages/py-applicationinsights/package.py
+++ b/var/spack/repos/builtin/packages/py-applicationinsights/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,16 @@ class PyApplicationinsights(PythonPackage):
Python."""
homepage = "https://github.com/Microsoft/ApplicationInsights-Python"
- url = "https://pypi.io/packages/source/a/applicationinsights/applicationinsights-0.11.9.tar.gz"
+ pypi = "applicationinsights/applicationinsights-0.11.9.tar.gz"
+
+ # 'applicationinsights.django' requires 'django', but 'django' isn't listed as a
+ # dependency. Leave out of 'import_modules' list to avoid unnecessary dependency.
+ import_modules = [
+ 'applicationinsights', 'applicationinsights.flask',
+ 'applicationinsights.exceptions', 'applicationinsights.requests',
+ 'applicationinsights.channel', 'applicationinsights.channel.contracts',
+ 'applicationinsights.logging'
+ ]
version('0.11.9', sha256='30a11aafacea34f8b160fbdc35254c9029c7e325267874e3c68f6bdbcd6ed2c3')
diff --git a/var/spack/repos/builtin/packages/py-appnope/package.py b/var/spack/repos/builtin/packages/py-appnope/package.py
index 07640da7f9..977942a7ba 100644
--- a/var/spack/repos/builtin/packages/py-appnope/package.py
+++ b/var/spack/repos/builtin/packages/py-appnope/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PyAppnope(PythonPackage):
"""Disable App Nap on OS X 10.9"""
homepage = "https://github.com/minrk/appnope"
- url = "https://pypi.io/packages/source/a/appnope/appnope-0.1.0.tar.gz"
+ pypi = "appnope/appnope-0.1.0.tar.gz"
version('0.1.0', sha256='8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71')
diff --git a/var/spack/repos/builtin/packages/py-apptools/package.py b/var/spack/repos/builtin/packages/py-apptools/package.py
index 4ac8da1c79..9fa3307bed 100644
--- a/var/spack/repos/builtin/packages/py-apptools/package.py
+++ b/var/spack/repos/builtin/packages/py-apptools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyApptools(PythonPackage):
that is commonly needed by many applications."""
homepage = "https://docs.enthought.com/apptools"
- url = "https://pypi.io/packages/source/a/apptools/apptools-4.5.0.tar.gz"
+ pypi = "apptools/apptools-4.5.0.tar.gz"
version('4.5.0', sha256='260ae0e2a86cb2df2fede631ab6ac8ece694a58a1def78cd015c890c57140582')
diff --git a/var/spack/repos/builtin/packages/py-apscheduler/package.py b/var/spack/repos/builtin/packages/py-apscheduler/package.py
index a4ba440e90..0269ed03c9 100644
--- a/var/spack/repos/builtin/packages/py-apscheduler/package.py
+++ b/var/spack/repos/builtin/packages/py-apscheduler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyApscheduler(PythonPackage):
"""In-process task scheduler with Cron-like capabilities."""
homepage = "https://github.com/agronholm/apscheduler"
- url = "https://pypi.io/packages/source/A/APScheduler/APScheduler-3.3.1.tar.gz"
+ pypi = "APScheduler/APScheduler-3.3.1.tar.gz"
version('3.3.1', sha256='f68874dff1bdffcc6ce3adb7840c1e4d162c609a3e3f831351df30b75732767b')
version('2.1.0', sha256='3b4b44387616902ad6d13122961013630eb25519937e5aa7c450de85656c9753')
diff --git a/var/spack/repos/builtin/packages/py-arcgis/package.py b/var/spack/repos/builtin/packages/py-arcgis/package.py
new file mode 100644
index 0000000000..fbe3a26680
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-arcgis/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2021 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 PyArcgis(PythonPackage):
+ """ArcGIS API for Python."""
+
+ homepage = "https://developers.arcgis.com/python/"
+ pypi = "arcgis/arcgis-1.8.4.tar.gz"
+
+ version('1.8.4', sha256='f1445dac25d3d4c03755d716c74a0930881c6be3cd36d22c6ff5ac754f9842d7')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-ipywidgets@7:', type=('build', 'run'))
+ depends_on('py-widgetsnbextension@3:', type=('build', 'run'))
+ depends_on('py-pandas@1:', type=('build', 'run'))
+ depends_on('py-numpy@1.16.2:', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-keyring@19:', type=('build', 'run'))
+ depends_on('py-lerc', type=('build', 'run'))
+ depends_on('py-ujson@3:', type=('build', 'run'))
+ depends_on('py-jupyterlab', type=('build', 'run'))
+ depends_on('py-python-certifi-win32', type=('build', 'run'))
+ depends_on('py-pyshp@2:', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-requests-oauthlib', type=('build', 'run'))
+ depends_on('py-requests-toolbelt', type=('build', 'run'))
+ depends_on('py-requests-ntlm', type=('build', 'run'))
+
+ def setup_py(self, *args, **kwargs):
+ super(PyArcgis, self).setup_py('--conda-install-mode', *args, **kwargs)
diff --git a/var/spack/repos/builtin/packages/py-archspec/package.py b/var/spack/repos/builtin/packages/py-archspec/package.py
index 54aaea8037..0d63a036bc 100644
--- a/var/spack/repos/builtin/packages/py-archspec/package.py
+++ b/var/spack/repos/builtin/packages/py-archspec/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,10 @@ class PyArchspec(PythonPackage):
"""
homepage = "https://archspec.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/a/archspec/archspec-0.1.1.tar.gz"
+ pypi = "archspec/archspec-0.1.1.tar.gz"
maintainers = ['alalazo']
- import_modules = ['archspec']
-
version('0.1.1', sha256='34bafad493b41208857232e21776216d716de37ab051a6a4a1cc1653f7e26423')
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-argcomplete/package.py b/var/spack/repos/builtin/packages/py-argcomplete/package.py
index f1362da76f..cb8d45fc77 100644
--- a/var/spack/repos/builtin/packages/py-argcomplete/package.py
+++ b/var/spack/repos/builtin/packages/py-argcomplete/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyArgcomplete(PythonPackage):
"""Bash tab completion for argparse."""
homepage = "https://github.com/kislyuk/argcomplete"
- url = "https://pypi.io/packages/source/a/argcomplete/argcomplete-1.12.0.tar.gz"
+ pypi = "argcomplete/argcomplete-1.12.0.tar.gz"
version('1.12.0', sha256='2fbe5ed09fd2c1d727d4199feca96569a5b50d44c71b16da9c742201f7cc295c')
version('1.1.1', sha256='cca45b5fe07000994f4f06a0b95bd71f7b51b04f81c3be0b4ea7b666e4f1f084')
diff --git a/var/spack/repos/builtin/packages/py-argh/package.py b/var/spack/repos/builtin/packages/py-argh/package.py
new file mode 100644
index 0000000000..3ea2908dba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-argh/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyArgh(PythonPackage):
+ """An argparse wrapper that doesn't make you say "argh" each time
+ you deal with it.
+
+ Building a command-line interface? Found yourself uttering "argh!"
+ while struggling with the API of argparse? Don't like the complexity
+ but need the power? Argh is a smart wrapper for argparse. Argparse is
+ a very powerful tool; Argh just makes it easy to use."""
+
+ homepage = "https://github.com/neithere/argh/"
+ pypi = "argh/argh-0.26.2.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('0.26.2', sha256='e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-argparse', when='^python@:2.6.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-argon2-cffi/package.py b/var/spack/repos/builtin/packages/py-argon2-cffi/package.py
index 954c86331c..79c81f53eb 100644
--- a/var/spack/repos/builtin/packages/py-argon2-cffi/package.py
+++ b/var/spack/repos/builtin/packages/py-argon2-cffi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyArgon2Cffi(PythonPackage):
"""The secure Argon2 password hashing algorithm.."""
homepage = "https://argon2-cffi.readthedocs.io/"
- url = "https://pypi.io/packages/source/a/argon2-cffi/argon2-cffi-20.1.0.tar.gz"
+ pypi = "argon2-cffi/argon2-cffi-20.1.0.tar.gz"
version('20.1.0', sha256='d8029b2d3e4b4cea770e9e5a0104dd8fa185c1724a0f01528ae4826a6d25f97d')
@@ -16,6 +16,3 @@ class PyArgon2Cffi(PythonPackage):
depends_on('py-cffi@1.0.0:', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
depends_on('py-enum34', when='^python@:3.3', type=('build', 'run'))
- depends_on('py-coverage@5.0.2:+toml', type='test')
- depends_on('py-hypothesis', type='test')
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-argparse/package.py b/var/spack/repos/builtin/packages/py-argparse/package.py
index 976e99d2a9..09cf35bf97 100644
--- a/var/spack/repos/builtin/packages/py-argparse/package.py
+++ b/var/spack/repos/builtin/packages/py-argparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyArgparse(PythonPackage):
"""Python command-line parsing library."""
homepage = "https://github.com/ThomasWaldmann/argparse/"
- url = "https://pypi.io/packages/source/a/argparse/argparse-1.4.0.tar.gz"
+ pypi = "argparse/argparse-1.4.0.tar.gz"
version('1.4.0', sha256='62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4')
diff --git a/var/spack/repos/builtin/packages/py-args/package.py b/var/spack/repos/builtin/packages/py-args/package.py
index 08364481e8..58a3ffa61f 100644
--- a/var/spack/repos/builtin/packages/py-args/package.py
+++ b/var/spack/repos/builtin/packages/py-args/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,8 @@ class PyArgs(PythonPackage):
"""Command Arguments for Humans."""
homepage = "https://github.com/kennethreitz/args"
- url = "https://pypi.io/packages/source/a/args/args-0.1.0.tar.gz"
+ pypi = "args/args-0.1.0.tar.gz"
version('0.1.0', sha256='a785b8d837625e9b61c39108532d95b85274acd679693b71ebb5156848fcf814')
depends_on('py-setuptools', type='build')
- depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-arrow/package.py b/var/spack/repos/builtin/packages/py-arrow/package.py
index 32a9885f8f..830f8bdc95 100644
--- a/var/spack/repos/builtin/packages/py-arrow/package.py
+++ b/var/spack/repos/builtin/packages/py-arrow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyArrow(PythonPackage):
work with dates and times with fewer imports and a lot less code."""
homepage = "https://arrow.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/a/arrow/arrow-0.16.0.tar.gz"
+ pypi = "arrow/arrow-0.16.0.tar.gz"
version('0.16.0', sha256='92aac856ea5175c804f7ccb96aca4d714d936f1c867ba59d747a8096ec30e90a')
version('0.14.7', sha256='67f8be7c0cf420424bc62d8d7dc40b44e4bb2f7b515f9cc2954fb36e35797656')
@@ -25,6 +25,3 @@ class PyArrow(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('py-backports-functools-lru-cache@1.2.1:', type=('build', 'run'), when='^python@2.7:2.8')
depends_on('py-python-dateutil', type=('build', 'run'))
- depends_on('py-chai', type='test')
- depends_on('py-mock', type='test')
- depends_on('py-pytz@2019.0:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-arviz/package.py b/var/spack/repos/builtin/packages/py-arviz/package.py
index 20e1be3839..62d73b1c97 100644
--- a/var/spack/repos/builtin/packages/py-arviz/package.py
+++ b/var/spack/repos/builtin/packages/py-arviz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class PyArviz(PythonPackage):
analysis of Bayesian models. Includes functions for posterior analysis,
model checking, comparison and diagnostics."""
- homepage = "http://github.com/arviz-devs/arviz"
- url = "https://pypi.io/packages/source/a/arviz/arviz-0.6.1.tar.gz"
+ homepage = "https://github.com/arviz-devs/arviz"
+ pypi = "arviz/arviz-0.6.1.tar.gz"
version('0.6.1', sha256='435edf8db49c41a8fa198f959e7581063006c49a4efdef4755bb778db6fd4f72')
diff --git a/var/spack/repos/builtin/packages/py-asciitree/package.py b/var/spack/repos/builtin/packages/py-asciitree/package.py
index adbd103c5b..6b2a6d571c 100644
--- a/var/spack/repos/builtin/packages/py-asciitree/package.py
+++ b/var/spack/repos/builtin/packages/py-asciitree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyAsciitree(PythonPackage):
"""Draws ASCII trees."""
homepage = "https://github.com/mbr/asciitree"
- url = "https://pypi.io/packages/source/a/asciitree/asciitree-0.3.3.tar.gz"
+ pypi = "asciitree/asciitree-0.3.3.tar.gz"
version('0.3.3', sha256='4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e')
diff --git a/var/spack/repos/builtin/packages/py-asdf/package.py b/var/spack/repos/builtin/packages/py-asdf/package.py
index 6fad12565d..51b0859025 100644
--- a/var/spack/repos/builtin/packages/py-asdf/package.py
+++ b/var/spack/repos/builtin/packages/py-asdf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyAsdf(PythonPackage):
implementation of the ASDF Standard."""
homepage = "https://github.com/spacetelescope/asdf"
- url = "https://pypi.io/packages/source/a/asdf/asdf-2.4.2.tar.gz"
+ pypi = "asdf/asdf-2.4.2.tar.gz"
version('2.4.2', sha256='6ff3557190c6a33781dae3fd635a8edf0fa0c24c6aca27d8679af36408ea8ff2')
diff --git a/var/spack/repos/builtin/packages/py-ase/package.py b/var/spack/repos/builtin/packages/py-ase/package.py
index 1e9c27921f..7538c06f9a 100644
--- a/var/spack/repos/builtin/packages/py-ase/package.py
+++ b/var/spack/repos/builtin/packages/py-ase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,16 +12,26 @@ class PyAse(PythonPackage):
visualizing and analyzing atomistic simulations."""
homepage = "https://wiki.fysik.dtu.dk/ase/"
- url = "https://pypi.io/packages/source/a/ase/ase-3.13.0.tar.gz"
+ pypi = "ase/ase-3.13.0.tar.gz"
- version('3.18.0',
- sha256='39d45f12def2669605bffc82926acfb13a0d0610e6d82740fa316aafa70f97f9')
+ version('3.21.1', sha256='78b01d88529d5f604e76bc64be102d48f058ca50faad72ac740d717545711c7b')
+ version('3.21.0', sha256='2c561e9b767cf16fc8ce198ea9326d77c6b67d33a85f44b68455e23466a64608')
+ version('3.20.1', sha256='72c81f21b6adb907595fce8d883c0231301cbd8e9f6e5ce8e98bab927054daca')
+ version('3.19.3', sha256='27c378b983dfacd49398236e7232c28590c218c31bb2205695818552c772bc4b')
+ version('3.19.2', sha256='89446a3d194d90f0758f0c7248a5095a5a05a16f2a0f7d53db4d3103ca516e62')
+ version('3.19.1', sha256='839029ed5ad9590b40c74773b9aef4733bfd9f8300cf998011584cad6ebdbf0f')
+ version('3.19.0', sha256='a8378ab57e91cfe1ba09b3639d8409bb7fc1a40b59479c7822d206e673ad93f9')
+ version('3.18.2', sha256='3930a561380dc3e4aa97f013933e68f858349abf9b4dbb0a035a4f2107b37ba4')
+ version('3.18.1', sha256='e21948dbf79011cc796d772885a8aafb255a6f365d112fe6a3bd26198c6cac7f')
+ version('3.18.0', sha256='39d45f12def2669605bffc82926acfb13a0d0610e6d82740fa316aafa70f97f9')
version('3.15.0', sha256='5e22d961b1311ef4ba2d83527f7cc7448abac8cf9bddd1593bee548459263fe8')
version('3.13.0', sha256='c4046c50debac28415b36616d79aa28e68ae2cd03c013c2aed6a1e3d465c0ee1')
depends_on('python@2.6:', type=('build', 'run'), when='@:3.15.0')
depends_on('python@3.5:', type=('build', 'run'), when='@3.18.0:')
- depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-matplotlib', type=('build', 'run'))
- depends_on('py-scipy', type=('build', 'run'))
- depends_on('py-flask', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'run'), when='@3.20.0:')
+ depends_on('py-numpy@1.11.3:', type=('build', 'run'))
+ depends_on('py-matplotlib@2.0.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.18.1:', type=('build', 'run'))
+ depends_on('py-flask', type=('build', 'run'), when='@:3.18.0')
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-asgiref/package.py b/var/spack/repos/builtin/packages/py-asgiref/package.py
index 6819d27aa9..f60f7e7a4c 100644
--- a/var/spack/repos/builtin/packages/py-asgiref/package.py
+++ b/var/spack/repos/builtin/packages/py-asgiref/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-asn1crypto/package.py b/var/spack/repos/builtin/packages/py-asn1crypto/package.py
index 81caf85143..d245efcb04 100644
--- a/var/spack/repos/builtin/packages/py-asn1crypto/package.py
+++ b/var/spack/repos/builtin/packages/py-asn1crypto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyAsn1crypto(PythonPackage):
"""Python ASN.1 library with a focus on performance and a pythonic API """
homepage = "https://github.com/wbond/asn1crypto"
- url = "https://pypi.io/packages/source/a/asn1crypto/asn1crypto-0.22.0.tar.gz"
+ pypi = "asn1crypto/asn1crypto-0.22.0.tar.gz"
version('0.24.0', sha256='9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49')
version('0.22.0', sha256='cbbadd640d3165ab24b06ef25d1dca09a3441611ac15f6a6b452474fdf0aed1a')
diff --git a/var/spack/repos/builtin/packages/py-aspy-yaml/package.py b/var/spack/repos/builtin/packages/py-aspy-yaml/package.py
index fb697e1f75..5d24272b18 100644
--- a/var/spack/repos/builtin/packages/py-aspy-yaml/package.py
+++ b/var/spack/repos/builtin/packages/py-aspy-yaml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyAspyYaml(PythonPackage):
"""Some extensions to pyyaml."""
homepage = "https://github.com/asottile/aspy.yaml/"
- url = "https://pypi.io/packages/source/a/aspy.yaml/aspy.yaml-1.3.0.tar.gz"
+ pypi = "aspy.yaml/aspy.yaml-1.3.0.tar.gz"
version('1.3.0', sha256='e7c742382eff2caed61f87a39d13f99109088e5e93f04d76eb8d4b28aa143f45')
diff --git a/var/spack/repos/builtin/packages/py-asserts/package.py b/var/spack/repos/builtin/packages/py-asserts/package.py
index 36f9b16d98..49f10de2e1 100644
--- a/var/spack/repos/builtin/packages/py-asserts/package.py
+++ b/var/spack/repos/builtin/packages/py-asserts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-asteval/package.py b/var/spack/repos/builtin/packages/py-asteval/package.py
index 4f80a22789..e4bf844845 100644
--- a/var/spack/repos/builtin/packages/py-asteval/package.py
+++ b/var/spack/repos/builtin/packages/py-asteval/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,11 +9,13 @@ from spack import *
class PyAsteval(PythonPackage):
"""Safe, minimalistic evaluator of python expression using ast module"""
- homepage = "http://github.com/newville/asteval"
- url = "https://pypi.io/packages/source/a/asteval/asteval-0.9.18.tar.gz"
+ homepage = "https://github.com/newville/asteval"
+ pypi = "asteval/asteval-0.9.18.tar.gz"
+ version('0.9.25', sha256='bea22b7d8fa16bcba95ebc72052ae5d8ca97114c9959bb47f8b8eebf30e4342f')
version('0.9.18', sha256='5d64e18b8a72c2c7ae8f9b70d1f80b68bbcaa98c1c0d7047c35489d03209bc86')
depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'run'), when='@0.9.25:')
depends_on('py-setuptools', type='build')
- depends_on('py-pytest', type='test')
+ depends_on('py-setuptools-scm', type='build', when='@0.9.25:')
diff --git a/var/spack/repos/builtin/packages/py-astor/package.py b/var/spack/repos/builtin/packages/py-astor/package.py
index 38c77c5196..0e56bb3955 100644
--- a/var/spack/repos/builtin/packages/py-astor/package.py
+++ b/var/spack/repos/builtin/packages/py-astor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,16 +10,14 @@ class PyAstor(PythonPackage):
astor is designed to allow easy manipulation of Python source via the AST.
"""
- homepage = "https://pypi.python.org/pypi/astor"
- url = "https://pypi.io/packages/source/a/astor/astor-0.8.0.tar.gz"
+ pypi = "astor/astor-0.8.1.tar.gz"
+ version('0.8.1', sha256='6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e')
version('0.8.0', sha256='37a6eed8b371f1228db08234ed7f6cfdc7817a3ed3824797e20cbb11dc2a7862')
version('0.6', sha256='175ec395cde36aa0178c5a3120d03954c65d1ef4bb19ec4aa30e9d7a7cc426c4')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-nose', type='test')
- depends_on('py-astunparse', type='test')
# Build fails with newer versions of setuptools
# https://github.com/berkerpeksag/astor/issues/162
diff --git a/var/spack/repos/builtin/packages/py-astpretty/package.py b/var/spack/repos/builtin/packages/py-astpretty/package.py
index b6b4e9855f..40228b163e 100644
--- a/var/spack/repos/builtin/packages/py-astpretty/package.py
+++ b/var/spack/repos/builtin/packages/py-astpretty/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyAstpretty(PythonPackage):
"""Pretty print the output of python stdlib `ast.parse`."""
homepage = "https://github.com/asottile/astpretty"
- url = "https://pypi.io/packages/source/a/astpretty/astpretty-2.0.0.tar.gz"
+ pypi = "astpretty/astpretty-2.0.0.tar.gz"
version('2.0.0', sha256='e4724bfd753636ba4a84384702e9796e5356969f40af2596d846ce64addde086')
diff --git a/var/spack/repos/builtin/packages/py-astroid/PR546.patch b/var/spack/repos/builtin/packages/py-astroid/PR546.patch
new file mode 100644
index 0000000000..974363d232
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-astroid/PR546.patch
@@ -0,0 +1,129 @@
+From beb8c1add0facf57d70d986812ffb45336b6b261 Mon Sep 17 00:00:00 2001
+From: Mario Corchero <mcorcherojim@bloomberg.net>
+Date: Mon, 14 May 2018 11:20:45 -0400
+Subject: [PATCH 1/2] Fix import of symlinks outside of path
+
+Makes load_module_from_file able to import files within the path that
+are just a symlink to a file outside of the path.
+modutils is using realpath at the moment which will resolve the symlink
+and don't allow the import as the file is detected outside of the
+available paths. By checking both abspath and realpath this patches add
+support for such scenarios.
+---
+ astroid/modutils.py | 64 ++++++++++++++++++++++++------
+ astroid/tests/unittest_modutils.py | 11 +++++
+ 2 files changed, 63 insertions(+), 12 deletions(-)
+
+diff --git a/astroid/modutils.py b/astroid/modutils.py
+index 83d0ba74..78a55575 100644
+--- a/astroid/modutils.py
++++ b/astroid/modutils.py
+@@ -285,26 +285,66 @@ def check_modpath_has_init(path, mod_path):
+ return True
+
+
++def _get_relative_base_path(filename, path_to_check):
++ """Extracts the relative mod path of the file to import from
++
++ Check if a file is within the passed in path and if so, returns the
++ relative mod path from the one passed in.
++
++ If the filename is no in path_to_check, returns None
++
++ Note this function will look for both abs and realpath of the file,
++ this allows to find the relative base path even if the file is a
++ symlink of a file in the passed in path
++
++ Examples:
++ _get_relative_base_path("/a/b/c/d.py", "/a/b") -> ["c","d"]
++ _get_relative_base_path("/a/b/c/d.py", "/dev") -> None
++
++ Given "/myfile.py" is a symlink of "/a/b/c/d.py":
++ _get_relative_base_path("/myfile.py", "/dev") -> ["c","d"]
++ """
++ importable_path = None
++ path_to_check = os.path.normcase(path_to_check)
++ abs_filename = os.path.abspath(filename)
++ if os.path.normcase(abs_filename).startswith(path_to_check):
++ importable_path = abs_filename
++
++ real_filename = os.path.realpath(filename)
++ if os.path.normcase(real_filename).startswith(path_to_check):
++ importable_path = real_filename
++
++ if importable_path:
++ base_path = os.path.splitext(importable_path)[0]
++ relative_base_path = base_path[len(path_to_check):]
++ return [pkg for pkg in relative_base_path.split(os.sep) if pkg]
++
++ return None
++
++
+ def modpath_from_file_with_callback(filename, extrapath=None, is_package_cb=None):
+- filename = _path_from_filename(filename)
+- filename = os.path.realpath(os.path.expanduser(filename))
+- base = os.path.splitext(filename)[0]
++ filename = os.path.expanduser(_path_from_filename(filename))
+
+ if extrapath is not None:
+ for path_ in six.moves.map(_canonicalize_path, extrapath):
+ path = os.path.abspath(path_)
+- if path and os.path.normcase(base[:len(path)]) == os.path.normcase(path):
+- submodpath = [pkg for pkg in base[len(path):].split(os.sep)
+- if pkg]
+- if is_package_cb(path, submodpath[:-1]):
+- return extrapath[path_].split('.') + submodpath
++ if not path:
++ continue
++ submodpath = _get_relative_base_path(filename, path)
++ if not submodpath:
++ continue
++ if is_package_cb(path, submodpath[:-1]):
++ return extrapath[path_].split('.') + submodpath
+
+ for path in six.moves.map(_canonicalize_path, sys.path):
+ path = _cache_normalize_path(path)
+- if path and os.path.normcase(base).startswith(path):
+- modpath = [pkg for pkg in base[len(path):].split(os.sep) if pkg]
+- if is_package_cb(path, modpath[:-1]):
+- return modpath
++ if not path:
++ continue
++ modpath = _get_relative_base_path(filename, path)
++ if not modpath:
++ continue
++ if is_package_cb(path, modpath[:-1]):
++ return modpath
+
+ raise ImportError('Unable to find module for %s in %s' % (
+ filename, ', \n'.join(sys.path)))
+diff --git a/astroid/tests/unittest_modutils.py b/astroid/tests/unittest_modutils.py
+index ef3c460c..76c04eb1 100644
+--- a/astroid/tests/unittest_modutils.py
++++ b/astroid/tests/unittest_modutils.py
+@@ -15,6 +15,7 @@
+ import sys
+ import unittest
+ from xml import etree
++import tempfile
+
+ import astroid
+ from astroid.interpreter._import import spec
+@@ -110,6 +111,16 @@ def test_knownValues_modpath_from_file_2(self):
+ def test_raise_modpath_from_file_Exception(self):
+ self.assertRaises(Exception, modutils.modpath_from_file, '/turlututu')
+
++ def test_import_symlink_with_source_outside_of_path(self):
++ with tempfile.NamedTemporaryFile() as tmpfile:
++ linked_file_name = 'symlinked_file.py'
++ try:
++ os.symlink(tmpfile.name, linked_file_name)
++ self.assertEqual(modutils.modpath_from_file(linked_file_name),
++ ['symlinked_file'])
++ finally:
++ os.remove(linked_file_name)
++
+
+ class LoadModuleFromPathTest(resources.SysPathSetup, unittest.TestCase):
+
+
diff --git a/var/spack/repos/builtin/packages/py-astroid/package.py b/var/spack/repos/builtin/packages/py-astroid/package.py
index 3eb5aece5b..15526117c1 100644
--- a/var/spack/repos/builtin/packages/py-astroid/package.py
+++ b/var/spack/repos/builtin/packages/py-astroid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,12 @@ class PyAstroid(PythonPackage):
homepage = "https://github.com/PyCQA/astroid"
url = "https://github.com/PyCQA/astroid/archive/astroid-1.4.5.tar.gz"
+ version('2.5.6', sha256='7fa655511c3726ce7058e9908065c385bcada47cb4cb31d5d6a7248b1fea58fa')
+ version('2.4.2', sha256='34d480d364dcf3e176bc302da56c5ef585ab45d4460f5a2761f960d2fd7b624c')
version('2.3.3', sha256='3a82983cf34dcbfe42ebcffeb98739e8a7bb868f03c1d9e298c530179b5075e7')
+ version('2.2.5', sha256='232c2cfc72bae18a28de6541bbd560a1a3f42e08c52e41bd3f1f00ed74b0a4a6')
version('2.2.0', sha256='7e289d0aa4a537b4aa798bd609fdf745de0f3c37e6b67642ed328e1482421a6d')
+ version('2.0.4', sha256='e2161452b7a07a4663dba61bfb2191a7b61b792fb8239427581dad43773e071e')
version('1.6.6', sha256='3fbcc144457ba598fb48e0ddce5eacee62610ab11e6fe374b6eef5f7df2a3fbb')
# version('1.5.3', sha256='6f65e4ea8290ec032320460905afb828') # has broken unit tests
version('1.4.5', sha256='28d8f5b898087ecf86fd66ca0934e5c0e51fc0beb5972cfc4e0c11080e0cb6ab')
@@ -23,18 +27,25 @@ class PyAstroid(PythonPackage):
version('1.4.2', sha256='f9007d651f4b3514ea5812127677a4bb681ff194164290cea358987920f24ee6')
version('1.4.1', sha256='f1ab3ee6f17f9d30981399a52b56a7a7d2747ba24f0aa504e411ee6205a01fc0')
+ # fixes symlink resolution, already included in 2: but not in 1.6.6
+ patch('PR546.patch', when='@1.6.6')
+
# Dependencies taken from astroid/__pkginfo__.py
depends_on('python@2.7:2.8,3.4:', when='@:1.999', type=('build', 'run'))
depends_on('python@3.4:', when='@2.0.0:', type=('build', 'run'))
depends_on('python@3.5:', when='@2.3.3:', type=('build', 'run'))
+ depends_on('python@3.6:', when='@2.5.6:', type=('build', 'run'))
depends_on('py-lazy-object-proxy', type=('build', 'run'))
- depends_on('py-lazy-object-proxy@1.4:1.4.999', when='@2.3.3:', type=('build', 'run'))
+ # Starting with astroid 2.3.1, astroid's dependencies were restricted
+ # to a given minor version, c.f. commit e1b4e11.
+ depends_on('py-lazy-object-proxy@1.4:1.4.999', when='@2.3.1:', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
depends_on('py-six@1.12:1.999', when='@2.3.3:', type=('build', 'run'))
- depends_on('py-wrapt', type=('build', 'run'))
- depends_on('py-wrapt@1.11:1.11.999', when='@2.3.3:', type=('build', 'run'))
+ depends_on('py-wrapt', when='@:2.2.999', type=('build', 'run'))
+ depends_on('py-wrapt@1.11:1.12.999', when='@2.3.3:', type=('build', 'run'))
depends_on('py-enum34@1.1.3:', when='^python@:3.3.99', type=('build', 'run'))
depends_on('py-singledispatch', when='^python@:3.3.99', type=('build', 'run'))
depends_on('py-backports-functools-lru-cache', when='^python@:3.2.99', type=('build', 'run'))
- depends_on('py-typed-ast@1.4.0:1.4.999', when='@2.3.3: ^python@:3.7.999', type=('build', 'run'))
+ depends_on('py-typed-ast@1.3.0:1.3.999', when='@2.2.5:2.3.0 ^python@3.7.0:3.7.999')
+ depends_on('py-typed-ast@1.4.0:1.4.999', when='@2.3.1: ^python@:3.7.999', type=('build', 'run'))
depends_on('py-setuptools@17.1:', type='build')
diff --git a/var/spack/repos/builtin/packages/py-astropy-healpix/package.py b/var/spack/repos/builtin/packages/py-astropy-healpix/package.py
index b83191ada3..e4482d3b30 100644
--- a/var/spack/repos/builtin/packages/py-astropy-healpix/package.py
+++ b/var/spack/repos/builtin/packages/py-astropy-healpix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyAstropyHealpix(PythonPackage):
representing data on a sphere."""
homepage = 'https://astropy-healpix.readthedocs.io/en/latest/'
- url = 'https://pypi.io/packages/source/a/astropy-healpix/astropy-healpix-0.5.tar.gz'
+ pypi = 'astropy-healpix/astropy-healpix-0.5.tar.gz'
version('0.5', sha256='5ae15da796a840f221fb83e25de791e827b6921bc21a365d99bc1a59c7c0cdad')
diff --git a/var/spack/repos/builtin/packages/py-astropy-helpers/package.py b/var/spack/repos/builtin/packages/py-astropy-helpers/package.py
index 636fcb8b30..d08e018813 100644
--- a/var/spack/repos/builtin/packages/py-astropy-helpers/package.py
+++ b/var/spack/repos/builtin/packages/py-astropy-helpers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-astropy/package.py b/var/spack/repos/builtin/packages/py-astropy/package.py
index 6e5dc8282b..cd2bcb1c70 100644
--- a/var/spack/repos/builtin/packages/py-astropy/package.py
+++ b/var/spack/repos/builtin/packages/py-astropy/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PyAstropy(PythonPackage):
"""The Astropy Project is a community effort to develop a single core
@@ -13,9 +14,7 @@ class PyAstropy(PythonPackage):
Python astronomy packages."""
homepage = 'https://astropy.org/'
- url = 'https://pypi.io/packages/source/a/astropy/astropy-4.0.1.post1.tar.gz'
-
- install_time_test_callbacks = ['install_test', 'import_module_test']
+ pypi = 'astropy/astropy-4.0.1.post1.tar.gz'
version('4.0.1.post1', sha256='5c304a6c1845ca426e7bc319412b0363fccb4928cb4ba59298acd1918eec44b5')
version('3.2.1', sha256='706c0457789c78285e5464a5a336f5f0b058d646d60f4e5f5ba1f7d5bf424b28')
@@ -87,6 +86,8 @@ class PyAstropy(PythonPackage):
return args
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
def install_test(self):
with working_dir('spack-test', create=True):
python('-c', 'import astropy; astropy.test()')
diff --git a/var/spack/repos/builtin/packages/py-astunparse/package.py b/var/spack/repos/builtin/packages/py-astunparse/package.py
index 996a59183e..c411120ed7 100644
--- a/var/spack/repos/builtin/packages/py-astunparse/package.py
+++ b/var/spack/repos/builtin/packages/py-astunparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,7 @@ class PyAstunparse(PythonPackage):
distribution; under Demo/parser in Python 2 and under Tools/parser in
Python 3."""
- homepage = "https://pypi.org/project/astunparse/"
- url = "https://pypi.io/packages/source/a/astunparse/astunparse-1.6.2.tar.gz"
+ pypi = "astunparse/astunparse-1.6.2.tar.gz"
version('1.6.3', sha256='5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872')
version('1.6.2', sha256='dab3e426715373fd76cd08bb1abe64b550f5aa494cf1e32384f26fd60961eb67')
diff --git a/var/spack/repos/builtin/packages/py-async-generator/package.py b/var/spack/repos/builtin/packages/py-async-generator/package.py
index 45d452d1d1..b6145e3a02 100644
--- a/var/spack/repos/builtin/packages/py-async-generator/package.py
+++ b/var/spack/repos/builtin/packages/py-async-generator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyAsyncGenerator(PythonPackage):
"""Provides async generator functionality to python 3.5."""
- homepage = "https://pypi.org/project/async_generator/"
- url = "https://pypi.io/packages/source/a/async_generator/async_generator-1.10.tar.gz"
+ pypi = "async_generator/async_generator-1.10.tar.gz"
version('1.10', sha256='6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144')
diff --git a/var/spack/repos/builtin/packages/py-async-timeout/package.py b/var/spack/repos/builtin/packages/py-async-timeout/package.py
index dd7ca9943c..31d4deb268 100644
--- a/var/spack/repos/builtin/packages/py-async-timeout/package.py
+++ b/var/spack/repos/builtin/packages/py-async-timeout/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-asyncio/package.py b/var/spack/repos/builtin/packages/py-asyncio/package.py
index 42de434cde..bb078bb958 100644
--- a/var/spack/repos/builtin/packages/py-asyncio/package.py
+++ b/var/spack/repos/builtin/packages/py-asyncio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-atomicwrites/package.py b/var/spack/repos/builtin/packages/py-atomicwrites/package.py
index de8ec7788b..a630545ebb 100644
--- a/var/spack/repos/builtin/packages/py-atomicwrites/package.py
+++ b/var/spack/repos/builtin/packages/py-atomicwrites/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyAtomicwrites(PythonPackage):
"""Atomic file writes."""
homepage = "https://github.com/untitaker/python-atomicwrites"
- url = "https://pypi.io/packages/source/a/atomicwrites/atomicwrites-1.3.0.tar.gz"
-
- import_modules = ['atomicwrites']
+ pypi = "atomicwrites/atomicwrites-1.3.0.tar.gz"
version('1.3.0', sha256='75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6')
version('1.1.5', sha256='240831ea22da9ab882b551b31d4225591e5e447a68c5e188db5b89ca1d487585')
diff --git a/var/spack/repos/builtin/packages/py-atpublic/package.py b/var/spack/repos/builtin/packages/py-atpublic/package.py
new file mode 100644
index 0000000000..b32564285a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-atpublic/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyAtpublic(PythonPackage):
+ """This library provides two very simple decorators that document
+ the publicness of the names in your module."""
+
+ homepage = "https://public.readthedocs.io"
+ pypi = "atpublic/atpublic-2.1.2.tar.gz"
+
+ version('2.1.2', sha256='82a2f2c0343ac67913f67cdee8fa4da294a4d6b863111527a459c8e4d1a646c8')
+ version('2.1.1', sha256='fa1d48bcb85bbed90f6ffee6936578f65ff0e93aa607397bd88eaeb408bd96d8')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-typing-extensions', when='^python@:3.7.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-atropos/package.py b/var/spack/repos/builtin/packages/py-atropos/package.py
index b08f3a818e..979bd9d250 100644
--- a/var/spack/repos/builtin/packages/py-atropos/package.py
+++ b/var/spack/repos/builtin/packages/py-atropos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyAtropos(PythonPackage):
reads. It is a fork of the venerable Cutadapt read trimmer."""
homepage = "https://atropos.readthedocs.io"
- url = "https://pypi.io/packages/source/a/atropos/atropos-1.1.22.tar.gz"
+ pypi = "atropos/atropos-1.1.22.tar.gz"
git = "https://github.com/jdidion/atropos.git"
version('1.1.22', sha256='05e40cb9337421479c692e1154b962fbf811d7939b72c197a024929b7ae88b78')
diff --git a/var/spack/repos/builtin/packages/py-attrs/package.py b/var/spack/repos/builtin/packages/py-attrs/package.py
index cdb3d490c5..d562f160c7 100644
--- a/var/spack/repos/builtin/packages/py-attrs/package.py
+++ b/var/spack/repos/builtin/packages/py-attrs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,8 @@ from spack import *
class PyAttrs(PythonPackage):
"""Classes Without Boilerplate"""
- homepage = "http://attrs.org/"
- url = "https://pypi.io/packages/source/a/attrs/attrs-20.3.0.tar.gz"
-
- import_modules = ['attr']
+ homepage = "https://attrs.org/"
+ pypi = "attrs/attrs-20.3.0.tar.gz"
version('20.3.0', sha256='832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700')
version('20.2.0', sha256='26b54ddbbb9ee1d34d5d3668dd37d6cf74990ab23c828c2888dccdceee395594')
@@ -25,11 +23,3 @@ class PyAttrs(PythonPackage):
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
-
- depends_on('py-coverage', type='test')
- depends_on('py-hypothesis', type='test')
- depends_on('py-pympler', type='test')
- depends_on('py-pytest', type='test')
- depends_on('py-pytest@4.3.0:', type='test', when='@19.3.0:')
- depends_on('py-six', type='test')
- depends_on('py-zope-interface', type='test')
diff --git a/var/spack/repos/builtin/packages/py-audioread/package.py b/var/spack/repos/builtin/packages/py-audioread/package.py
index b69f22b720..d2afde94ae 100644
--- a/var/spack/repos/builtin/packages/py-audioread/package.py
+++ b/var/spack/repos/builtin/packages/py-audioread/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyAudioread(PythonPackage):
Python."""
homepage = "https://github.com/beetbox/audioread"
- url = "https://pypi.io/packages/source/a/audioread/audioread-2.1.8.tar.gz"
+ pypi = "audioread/audioread-2.1.8.tar.gz"
version('2.1.8', sha256='073904fabc842881e07bd3e4a5776623535562f70b1655b635d22886168dd168')
diff --git a/var/spack/repos/builtin/packages/py-autograd-gamma/package.py b/var/spack/repos/builtin/packages/py-autograd-gamma/package.py
index 75436ea4c9..9d586c6a9c 100644
--- a/var/spack/repos/builtin/packages/py-autograd-gamma/package.py
+++ b/var/spack/repos/builtin/packages/py-autograd-gamma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAutogradGamma(PythonPackage):
Gamma-family of functions."""
homepage = "https://github.com/CamDavidsonPilon/autograd-gamma"
- url = "https://pypi.io/packages/source/a/autograd-gamma/autograd-gamma-0.4.3.tar.gz"
+ pypi = "autograd-gamma/autograd-gamma-0.4.3.tar.gz"
version('0.4.3', sha256='2cb570cbb8da61ede937ccc004d87d3924108f754b351a86cdd2ad31ace6cdf6')
diff --git a/var/spack/repos/builtin/packages/py-autograd/package.py b/var/spack/repos/builtin/packages/py-autograd/package.py
index 86aba0132d..48e4e9cd55 100644
--- a/var/spack/repos/builtin/packages/py-autograd/package.py
+++ b/var/spack/repos/builtin/packages/py-autograd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class PyAutograd(PythonPackage):
examples directory."""
homepage = "https://github.com/HIPS/autograd"
- url = "https://pypi.io/packages/source/a/autograd/autograd-1.3.tar.gz"
+ pypi = "autograd/autograd-1.3.tar.gz"
version('1.3', sha256='a15d147577e10de037de3740ca93bfa3b5a7cdfbc34cfb9105429c3580a33ec4')
diff --git a/var/spack/repos/builtin/packages/py-autopep8/package.py b/var/spack/repos/builtin/packages/py-autopep8/package.py
index 296d0bd4c3..979b206019 100644
--- a/var/spack/repos/builtin/packages/py-autopep8/package.py
+++ b/var/spack/repos/builtin/packages/py-autopep8/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyAutopep8(PythonPackage):
PEP 8 style guide."""
homepage = "https://github.com/hhatto/autopep8"
- url = "https://pypi.io/packages/source/a/autopep8/autopep8-1.2.4.tar.gz"
+ pypi = "autopep8/autopep8-1.2.4.tar.gz"
version('1.4.4', sha256='4d8eec30cc81bc5617dbf1218201d770dc35629363547f17577c61683ccfb3ee')
version('1.3.3', sha256='ff787bffb812818c3071784b5ce9a35f8c481a0de7ea0ce4f8b68b8788a12f30')
diff --git a/var/spack/repos/builtin/packages/py-auxlib/package.py b/var/spack/repos/builtin/packages/py-auxlib/package.py
index 4d18101e5d..a263eaadde 100644
--- a/var/spack/repos/builtin/packages/py-auxlib/package.py
+++ b/var/spack/repos/builtin/packages/py-auxlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyAuxlib(PythonPackage):
"""Auxlib is an auxiliary library to the python standard library."""
homepage = "https://github.com/kalefranz/auxlib"
- url = "https://pypi.io/packages/source/a/auxlib/auxlib-0.0.43.tar.gz"
+ pypi = "auxlib/auxlib-0.0.43.tar.gz"
version('0.0.43', sha256='0f175637e96a090a785767ce28483cf1aeec316a19afce9b2fbd113e1122786a')
diff --git a/var/spack/repos/builtin/packages/py-avro-json-serializer/package.py b/var/spack/repos/builtin/packages/py-avro-json-serializer/package.py
index 614d29196d..af1fb402ed 100644
--- a/var/spack/repos/builtin/packages/py-avro-json-serializer/package.py
+++ b/var/spack/repos/builtin/packages/py-avro-json-serializer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyAvroJsonSerializer(PythonPackage):
"""Serializes data into a JSON format using AVRO schema."""
homepage = "https://github.com/linkedin/python-avro-json-serializer"
- url = "https://pypi.io/packages/source/a/avro_json_serializer/avro_json_serializer-0.4.tar.gz"
+ pypi = "avro_json_serializer/avro_json_serializer-0.4.tar.gz"
version('0.4', sha256='f9dac2dac92036c5dd5aba8c716545fc0a0630cc365a51ab15bc2ac47eac28f1')
diff --git a/var/spack/repos/builtin/packages/py-avro-python3/package.py b/var/spack/repos/builtin/packages/py-avro-python3/package.py
index 2c62f35825..224bcec05e 100644
--- a/var/spack/repos/builtin/packages/py-avro-python3/package.py
+++ b/var/spack/repos/builtin/packages/py-avro-python3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyAvroPython3(PythonPackage):
functions will be made available for both python2 and python3."""
homepage = "https://github.com/apache/avro/tree/master/lang/py3"
- url = "https://pypi.io/packages/source/a/avro-python3/avro-python3-1.10.0.tar.gz"
+ pypi = "avro-python3/avro-python3-1.10.0.tar.gz"
version('1.10.0', sha256='a455c215540b1fceb1823e2a918e94959b54cb363307c97869aa46b5b55bde05')
diff --git a/var/spack/repos/builtin/packages/py-avro/package.py b/var/spack/repos/builtin/packages/py-avro/package.py
index 35c903a411..929b6deb4d 100644
--- a/var/spack/repos/builtin/packages/py-avro/package.py
+++ b/var/spack/repos/builtin/packages/py-avro/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyAvro(PythonPackage):
"""Avro is a serialization and RPC framework."""
- homepage = "http://avro.apache.org/docs/current/"
- url = "https://pypi.io/packages/source/a/avro/avro-1.8.2.tar.gz"
+ homepage = "https://avro.apache.org/docs/current/"
+ pypi = "avro/avro-1.8.2.tar.gz"
version('1.8.2', sha256='8f9ee40830b70b5fb52a419711c9c4ad0336443a6fba7335060805f961b04b59')
diff --git a/var/spack/repos/builtin/packages/py-awesome-slugify/package.py b/var/spack/repos/builtin/packages/py-awesome-slugify/package.py
index 2d8ac680e4..1db30c5296 100644
--- a/var/spack/repos/builtin/packages/py-awesome-slugify/package.py
+++ b/var/spack/repos/builtin/packages/py-awesome-slugify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyAwesomeSlugify(PythonPackage):
"""Python flexible slugify function"""
homepage = "https://github.com/dimka665/awesome-slugify"
- url = "https://pypi.io/packages/source/a/awesome-slugify/awesome-slugify-1.6.5.tar.gz"
+ pypi = "awesome-slugify/awesome-slugify-1.6.5.tar.gz"
version('1.6.5', sha256='bbdec3fa2187917473a2efad092b57f7125a55f841a7cf6a1773178d32ccfd71')
@@ -18,4 +18,3 @@ class PyAwesomeSlugify(PythonPackage):
depends_on('py-regex', type=('build', 'run'))
depends_on('py-unidecode@0.04.14:0.04.99', type=('build', 'run'))
- depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-awkward/package.py b/var/spack/repos/builtin/packages/py-awkward/package.py
new file mode 100644
index 0000000000..7d8b0cfa03
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-awkward/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2021 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 PyAwkward(PythonPackage):
+ """Manipulate JSON-like data with NumPy-like idioms."""
+
+ git = "https://github.com/scikit-hep/awkward-1.0.git"
+ pypi = "awkward/awkward-1.1.2.tar.gz"
+ homepage = "https://awkward-array.org"
+
+ maintainers = ['vvolkl']
+
+ version('1.4.0', sha256='25ae6114d5962c717cb87e3bc30a2f6eaa232b252cf8c51ba805b8f04664ae0d')
+ version('1.3.0', sha256='b6021694adec9813842bad1987b837e439dabaf5b0dff9041201d238fca71fb4')
+ version('1.2.3', sha256='7d727542927a926f488fa62d04e2c5728c72660f17f822e627f349285f295063')
+ version('1.2.2', sha256='89f126a072d3a6eee091e1afeed87e0b2ed3c34ed31a1814062174de3cab8d9b')
+ version('1.1.2', sha256='4ae8371d9e6d5bd3e90f3686b433cebc0541c88072655d2c75ec58e79b5d6943')
+
+ patch('pybind11.patch', when="@:1.2.2")
+ patch('pybind11_02.patch', when="@1.2.3:")
+
+ depends_on('py-setuptools', type='build')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-numpy@1.13.1:', type=('build', 'run'))
+ depends_on('py-pybind11', type=('build', 'link'))
+ depends_on('dlpack', when="@1.0.0:")
+ depends_on('rapidjson')
+ depends_on('cmake', type='build')
diff --git a/var/spack/repos/builtin/packages/py-awkward/pybind11.patch b/var/spack/repos/builtin/packages/py-awkward/pybind11.patch
new file mode 100644
index 0000000000..8edc76919f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-awkward/pybind11.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fedfe3a..bf762c9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -107,7 +107,7 @@ addtest(test0074 tests/test_0074-argsort-and-sort-rawarray.cpp)
+
+ # Third tier: Python modules.
+ if (PYBUILD)
+- add_subdirectory(pybind11)
++ find_package(pybind11)
+
+ file(GLOB LAYOUT_SOURCES "src/python/*.cpp")
+ pybind11_add_module(_ext ${LAYOUT_SOURCES})
+
diff --git a/var/spack/repos/builtin/packages/py-awkward/pybind11_02.patch b/var/spack/repos/builtin/packages/py-awkward/pybind11_02.patch
new file mode 100644
index 0000000000..5b33d80eac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-awkward/pybind11_02.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ba2c37f..bd7f268 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -96,7 +96,7 @@ option(PYBUILD "Build Python modules")
+
+ # Third tier: Python modules.
+ if(PYBUILD)
+- add_subdirectory(pybind11)
++ find_package(pybind11)
+
+ file(GLOB LAYOUT_SOURCES "src/python/*.cpp")
+ pybind11_add_module(_ext ${LAYOUT_SOURCES})
+
diff --git a/var/spack/repos/builtin/packages/py-awkward0/package.py b/var/spack/repos/builtin/packages/py-awkward0/package.py
new file mode 100644
index 0000000000..62afd740c7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-awkward0/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyAwkward0(PythonPackage):
+ """Manipulate arrays of complex data structures as easily as Numpy.
+
+ Awkward Array is a pure Python+Numpy library for manipulating complex data
+ structures as you would Numpy arrays."""
+
+ homepage = "https://github.com/scikit-hep/awkward-0.x"
+ pypi = "awkward0/awkward0-0.15.5.tar.gz"
+
+ version('0.15.5', sha256='156e6e338c56d857a7bb53c4fcc8b0b2592a3470eff0d854e6d68777986359ad')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytest-runner', type='build')
+ depends_on('py-numpy@1.13.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-awkward1/package.py b/var/spack/repos/builtin/packages/py-awkward1/package.py
index 515ef90a04..be14c4d815 100644
--- a/var/spack/repos/builtin/packages/py-awkward1/package.py
+++ b/var/spack/repos/builtin/packages/py-awkward1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class PyAwkward1(PythonPackage):
- """ROOT I/O in pure Python and NumPy."""
+ """DEPRECATED! This package was renamed to py-awkward."""
git = "https://github.com/scikit-hep/awkward-1.0.git"
url = "https://github.com/scikit-hep/awkward-1.0/archive/0.3.1.tar.gz"
@@ -15,14 +15,16 @@ class PyAwkward1(PythonPackage):
maintainers = ['vvolkl']
- version('0.3.1', sha256='7126d9feab8828b0b4f4c6dbc9e28c269a91e28eef4a6033d7ebb5db21f1dab3')
+ version('1.1.2', sha256='626e3a6a2a92dd67abc8692b1ebfa1b447b9594352d6ce8c86c37d7299dc4602', deprecated=True)
+ version('0.3.1', sha256='7126d9feab8828b0b4f4c6dbc9e28c269a91e28eef4a6033d7ebb5db21f1dab3', deprecated=True)
patch('pybind11.patch')
depends_on('py-setuptools', type='build')
depends_on('python@3.6:', type=('build', 'run'))
- depends_on('py-numpy@1.13.1:')
- depends_on('py-pybind11')
+ depends_on('py-numpy@1.13.1:', type=('build', 'run'))
+ depends_on('py-pybind11', type=('build', 'link'))
+ depends_on('dlpack', when="@1.0.0:")
depends_on('rapidjson')
- depends_on('cmake')
+ depends_on('cmake', type='build')
diff --git a/var/spack/repos/builtin/packages/py-azote/package.py b/var/spack/repos/builtin/packages/py-azote/package.py
index 60fdc86e5b..736ae9609d 100644
--- a/var/spack/repos/builtin/packages/py-azote/package.py
+++ b/var/spack/repos/builtin/packages/py-azote/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-azure-batch/package.py b/var/spack/repos/builtin/packages/py-azure-batch/package.py
index b201ec7660..f2bc719c30 100644
--- a/var/spack/repos/builtin/packages/py-azure-batch/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-batch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-batch/azure-batch-9.0.0.zip"
version('9.0.0', sha256='47ca6f50a640915e1cdc5ce3c1307abe5fa3a636236e561119cf62d9df384d84')
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
index 0a40cf2e44..027281f528 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-cli-command-modules-nspkg/azure-cli-command-modules-nspkg-2.0.3.tar.gz"
version('2.0.3', sha256='4bd62bf5facb92dd4f89080e75eaee2ea1d3dd4e57a3d2a760ce501cf53f4e7d')
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
index 07e520c530..c638326957 100644
--- a/var/spack/repos/builtin/packages/py-azure-cli-core/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-cli-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-cli-core/azure-cli-core-2.9.1.tar.gz"
version('2.9.1', sha256='8618a30f7ea2188506f29801220c06396d731c26e4de92c327e6b0e8cc790db5')
@@ -36,4 +36,3 @@ class PyAzureCliCore(PythonPackage):
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
index 31fab8f659..c5a9f8eaa3 100644
--- a/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-cli-nspkg/azure-cli-nspkg-3.0.4.tar.gz"
version('3.0.4', sha256='1bde56090f548c6435bd3093995cf88e4c445fb040604df8b5b5f70780d79181')
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
index bb379686be..327c3e4688 100644
--- a/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,10 @@ 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"
+ pypi = "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
index faa09d1cfd..cc5ed8aeef 100644
--- a/var/spack/repos/builtin/packages/py-azure-cli/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-cli/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-cli/azure-cli-2.9.1.tar.gz"
version('2.9.1', sha256='749d850f73ea8956ab510288c1061dd7066180a8583081a6d560fdc7ac8314d6')
@@ -99,4 +99,3 @@ class PyAzureCli(PythonPackage):
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-common/package.py b/var/spack/repos/builtin/packages/py-azure-common/package.py
index 72410b447e..6979ce1cfb 100644
--- a/var/spack/repos/builtin/packages/py-azure-common/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-common/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyAzureCommon(PythonPackage):
"""Microsoft Azure Client Library for Python (Common)."""
homepage = "https://github.com/Azure/azure-sdk-for-python"
- url = "https://pypi.io/packages/source/a/azure-common/azure-common-1.1.25.zip"
+ pypi = "azure-common/azure-common-1.1.25.zip"
version('1.1.25', sha256='ce0f1013e6d0e9faebaf3188cc069f4892fc60a6ec552e3f817c1a2f92835054')
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 e45bfcabfb..a7c9e591cc 100644
--- a/var/spack/repos/builtin/packages/py-azure-core/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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.7.0.zip"
+ pypi = "azure-core/azure-core-1.7.0.zip"
version('1.7.0', sha256='a66da240a287f447f9867f54ba09ea235895cec13ea38c5f490ce4eedefdd75c')
version('1.6.0', sha256='d10b74e783cff90d56360e61162afdd22276d62dc9467e657ae866449eae7648')
diff --git a/var/spack/repos/builtin/packages/py-azure-cosmos/package.py b/var/spack/repos/builtin/packages/py-azure-cosmos/package.py
index 56ed2ae59f..3d8ce9a111 100644
--- a/var/spack/repos/builtin/packages/py-azure-cosmos/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-cosmos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-cosmos/azure-cosmos-4.0.0.zip"
version('4.0.0', sha256='c4e40e0d378fd0c96664f46f1ad08e6c8aaaac31c463726a74aae9eae724442d')
version('3.2.0', sha256='4f77cc558fecffac04377ba758ac4e23f076dc1c54e2cf2515f85bc15cbde5c6',
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
index 84dc392932..d6f8199b43 100644
--- a/var/spack/repos/builtin/packages/py-azure-datalake-store/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-datalake-store/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-datalake-store/azure-datalake-store-0.0.48.tar.gz"
version('0.0.48', sha256='d27c335783d4add00b3a5f709341e4a8009857440209e15a739a9a96b52386f7')
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
index ee70dc2f03..9da4a4dd10 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureFunctionsDevopsBuild(PythonPackage):
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"
+ pypi = "azure-functions-devops-build/azure-functions-devops-build-0.0.22.tar.gz"
version('0.0.22', sha256='c6341abda6098813f8fa625acd1e925410a17a8a1c7aaabdf975bb7cecb14edf')
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 4cd0dd661f..d051d5f68a 100644
--- a/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyAzureGraphrbac(PythonPackage):
"""Microsoft Azure Graph RBAC Client Library for Python."""
homepage = "https://github.com/Azure/azure-sdk-for-python"
- url = "https://pypi.io/packages/source/a/azure-graphrbac/azure-graphrbac-0.61.1.zip"
+ pypi = "azure-graphrbac/azure-graphrbac-0.61.1.zip"
version('0.61.1', sha256='53e98ae2ca7c19b349e9e9bb1b6a824aeae8dcfcbe17190d20fe69c0f185b2e2')
version('0.60.0', sha256='d0bb62d8bf8e196b903f3971ba4afa448e4fe14e8394ebfcdd941d84d62ecafe')
diff --git a/var/spack/repos/builtin/packages/py-azure-identity/package.py b/var/spack/repos/builtin/packages/py-azure-identity/package.py
index e3835d9cef..76ad461663 100644
--- a/var/spack/repos/builtin/packages/py-azure-identity/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-identity/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,13 @@ class PyAzureIdentity(PythonPackage):
"""Microsoft Azure Identity Library for Python."""
homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/identity/azure-identity"
- url = "https://pypi.io/packages/source/a/azure-identity/azure-identity-1.3.1.zip"
+ pypi = "azure-identity/azure-identity-1.3.1.zip"
+
+ # 'azure.identity.aio' import doesn't work for some reason, leave out of
+ # 'import_modules' list to ensure that tests still pass for other imports.
+ import_modules = [
+ 'azure.identity', 'azure.identity._internal', 'azure.identity._credentials'
+ ]
version('1.3.1', sha256='5a59c36b4b05bdaec455c390feda71b6495fc828246593404351b9a41c2e877a')
version('1.2.0', sha256='b32acd1cdb6202bfe10d9a0858dc463d8960295da70ae18097eb3b85ab12cb91')
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
index 49ad0b0ea6..0a3142140c 100644
--- a/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-keyvault-certificates/azure-keyvault-certificates-4.1.0.zip"
version('4.1.0', sha256='544f56480619e1db350f2e7b117b22af778e02174bd6bcb0af9ae00c50353419')
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
index 7fa65939ac..ce910ec577 100644
--- a/var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-keyvault-keys/azure-keyvault-keys-4.1.0.zip"
version('4.1.0', sha256='f9967b4deb48e619f6c40558f69e48978779cc09c8a7fad33d536cfc41cd68f9')
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
index 16200150de..22632d0d66 100644
--- a/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-keyvault-nspkg/azure-keyvault-nspkg-1.0.0.zip"
version('1.0.0', sha256='ac68b88aab9c6caf54a23da2a1d1c718d7520bae5adff04dd0a743228269b641')
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
index cbc91cde3d..5761fd83f5 100644
--- a/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-keyvault-secrets/azure-keyvault-secrets-4.1.0.zip"
version('4.1.0', sha256='4f3bfac60e025e01dd1c1998b73649d45d706975356c0cf147174cf5a6ddf8be')
diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault/package.py
index b18a562226..7ab2dfb767 100644
--- a/var/spack/repos/builtin/packages/py-azure-keyvault/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-keyvault/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-keyvault/azure-keyvault-4.1.0.zip"
version('4.1.0', sha256='69002a546921a8290eb54d9a3805cfc515c321bc1d4c0bfcfb463620245eca40')
version('1.1.0', sha256='37a8e5f376eb5a304fcd066d414b5d93b987e68f9212b0c41efa37d429aadd49')
diff --git a/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py b/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py
index 25a4e42317..606c5ee879 100644
--- a/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-loganalytics/azure-loganalytics-0.1.0.zip"
version('0.1.0', sha256='3ceb350def677a351f34b0a0d1637df6be0c6fe87ff32a5270b17f540f6da06e')
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
index 5e19a89dea..ab5cb79d26 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-advisor/azure-mgmt-advisor-4.0.0.zip"
version('4.0.0', sha256='1ecea7a9dc48c099c06aab68aace7fdbded91a5522932882b1707c29fa055054')
version('2.0.1', sha256='1929d6d5ba49d055fdc806e981b93cf75ea42ba35f78222aaf42d8dcf29d4ef3')
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
index 538bfed522..f816f5fade 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-apimanagement/azure-mgmt-apimanagement-0.2.0.zip"
version('0.2.0', sha256='790f01c0b32583706b8b8c59667c0f5a51cd70444eee76474e23a598911e1d72')
version('0.1.0', sha256='5d45d3438c6a11bae6bb8d4d5173cdb44b85683695f9f3433f22f45aecc47819')
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
index 96f7a6dfff..9fd889dc10 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureMgmtAppconfiguration(PythonPackage):
"""
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"
+ pypi = "azure-mgmt-appconfiguration/azure-mgmt-appconfiguration-0.5.0.zip"
version('0.5.0', sha256='211527511d7616a383cc196956eaf2b7ee016f2367d367924b3715f2a41106da')
version('0.4.0', sha256='85f6202ba235fde6be274f3dec1578b90235cf31979abea3fcfa476d0b2ac5b6')
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
index b7b4089b9d..8289b7a2aa 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureMgmtApplicationinsights(PythonPackage):
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"
+ pypi = "azure-mgmt-applicationinsights/azure-mgmt-applicationinsights-0.3.0.zip"
version('0.3.0', sha256='3c788a54db4fbca1a8850151462ec1471ff59c86b3a10d6082952bbdaa7e6651')
version('0.1.1', sha256='f10229eb9e3e9d0ad20188b8d14d67055e86f3815b43b75eedf96b654bee2a9b')
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 5a5089966c..6990814ac1 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
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyAzureMgmtAuthorization(PythonPackage):
"""Microsoft Azure Authorization Management Client Library for Python."""
homepage = "https://github.com/Azure/azure-sdk-for-python"
- url = "https://pypi.io/packages/source/a/azure-mgmt-authorization/azure-mgmt-authorization-0.60.0.zip"
+ pypi = "azure-mgmt-authorization/azure-mgmt-authorization-0.60.0.zip"
version('0.60.0', sha256='31e875a34ac2c5d6fefe77b4a8079a8b2bdbe9edb957e47e8b44222fb212d6a7')
version('0.52.0', sha256='16a618c4357c11e96de376856c396f09e76a56473920cdf7a66735fabaa2a70c')
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
index f11c869362..e4a9a7682c 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-batch/azure-mgmt-batch-9.0.0.zip"
version('9.0.0', sha256='03417eecfa1fac906e674cb1cb43ed7da27a96277277b091d7c389ba39f6c3fe')
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
index ec279bfc50..301398f80f 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-batchai/azure-mgmt-batchai-2.0.0.zip"
version('2.0.0', sha256='f1870b0f97d5001cdb66208e5a236c9717a0ed18b34dbfdb238a828f3ca2a683')
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
index a124ac5931..a4ceadbe96 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-billing/azure-mgmt-billing-0.2.0.zip"
version('0.2.0', sha256='85f73bb3808a7d0d2543307e8f41e5b90a170ad6eeedd54fe7fcaac61b5b22d2')
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
index 168259dac0..10f403f43f 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-botservice/azure-mgmt-botservice-0.2.0.zip"
version('0.2.0', sha256='b21d8858e69aa16d25b908c40116a1f773c127ec4dd602cbb8542ebf39a55d83')
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
index 916934c841..7d181e5c3e 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-cdn/azure-mgmt-cdn-4.0.0.zip"
# Release candidate needed for py-azure-cli
version('4.1.0rc1', sha256='853c73d612f5d97387e079c5841a9f1a05702173d0c7c0c59ba7b0fd86380503')
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
index 067f980c7d..8d27014d96 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureMgmtCognitiveservices(PythonPackage):
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"
+ pypi = "azure-mgmt-cognitiveservices/azure-mgmt-cognitiveservices-6.2.0.zip"
version('6.2.0', sha256='93503507ba87c18fe24cd3dfcd54e6e69a4daf7636f38b7537e09cee9a4c13ce')
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
index 4b47781334..732010eb3d 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-compute/azure-mgmt-compute-13.0.0.zip"
version('13.0.0', sha256='7f331bafcbedf25d65aa42038f7553747dab18d7f10a5af3297192d31c45339e')
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
index 8974a4500d..eb9e8d1e39 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-consumption/azure-mgmt-consumption-3.0.0.zip"
version('3.0.0', sha256='035d4b74ca7c47e2683bea17105fd9014c27060336fb6255324ac86b27f70f5b')
version('2.0.0', sha256='9a85a89f30f224d261749be20b4616a0eb8948586f7f0f20573b8ea32f265189')
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
index c2ce7566d4..035b88f33c 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-containerinstance/azure-mgmt-containerinstance-2.0.0.zip"
version('2.0.0', sha256='5ad247d186c3c040da7a1d40ad39c9881e99afc58271f673abb602abb0b6b85b')
version('1.5.0', sha256='b055386f04ba8433112b0df7fcbc260b5208828d7bb8c057e760fe596aa7a8cd')
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 1a337d7a4a..947ee794ac 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
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyAzureMgmtContainerregistry(PythonPackage):
"""Microsoft Azure Container Registry Client Library for Python."""
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"
+ pypi = "azure-mgmt-containerregistry/azure-mgmt-containerregistry-2.8.0.zip"
# Release candidate needed for py-azure-cli
version('3.0.0rc14', sha256='d23ce93ec5903d00f79f0ac995e16bf47197130239f7f182509add3277b73071')
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
index 3e592e4a13..6c4daf4775 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureMgmtContainerservice(PythonPackage):
"""
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"
+ pypi = "azure-mgmt-containerservice/azure-mgmt-containerservice-9.2.0.zip"
version('9.2.0', sha256='e7904b60c42a153b64b1604f3c698602686b38787bebdaed6e808cd43b6e5967')
version('9.0.1', sha256='7e4459679bdba4aa67a4b5848e63d94e965a304a7418ef7607eb7a9ce295d886')
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
index 4dfca888f6..07b9620797 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-core/azure-mgmt-core-1.2.0.zip"
version('1.2.0', sha256='8fe3b59446438f27e34f7b24ea692a982034d9e734617ca1320eedeee1939998')
version('1.0.0', sha256='510faf49a10daec8346cc086143d8e667ef3b4f8c8022a8e710091027631a55e')
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
index 978d659b9e..903fd1963c 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-cosmosdb/azure-mgmt-cosmosdb-0.15.0.zip"
version('0.15.0', sha256='e70fe9b3d9554c501d46e69f18b73de18d77fbcb98a7a87b965b3dd027cada0f')
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
index bcb73cd655..a96112a8b3 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureMgmtDatalakeAnalytics(PythonPackage):
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"
+ pypi = "azure-mgmt-datalake-analytics/azure-mgmt-datalake-analytics-0.6.0.zip"
version('0.6.0', sha256='0d64c4689a67d6138eb9ffbaff2eda2bace7d30b846401673183dcb42714de8f')
version('0.2.1', sha256='4c7960d094f5847d9a456c18b8a3c8e60c428e3080a3905f1c943d81ba6351a4')
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
index 994c8a60c1..7e1cf9bd11 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-datalake-store/azure-mgmt-datalake-store-0.5.0.zip"
version('0.5.0', sha256='9376d35495661d19f8acc5604f67b0bc59493b1835bbc480f9a1952f90017a4c')
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
index 7eaf2e926b..e774c3a15d 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-datamigration/azure-mgmt-datamigration-4.0.0.zip"
version('4.0.0', sha256='1efda568d67af911156591eb308432b5f9a56075b57ac0a5dd9f7aee17d79217')
version('0.1.0', sha256='e754928992743f54d999800a5e0679ee3e91d804d23a25f12c2e6f2f86cd05df')
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
index 57d08f8805..fa28bd3a97 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-deploymentmanager/azure-mgmt-deploymentmanager-0.2.0.zip"
version('0.2.0', sha256='46e342227993fc9acab1dda42f2eb566b522a8c945ab9d0eea56276b46f6d730')
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
index 10094a24da..9a556a713d 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-devtestlabs/azure-mgmt-devtestlabs-4.0.0.zip"
version('4.0.0', sha256='59549c4c4068f26466b1097b574a8e5099fb2cd6c8be0a00395b06d3b29e278d')
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
index ef7bab9ef7..35dc48f3e2 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-dns/azure-mgmt-dns-3.0.0.zip"
version('3.0.0', sha256='6ecdf4e67d8eb5db593ec331e6d9f350616e77c31225c91d266605e03e63b37f')
version('2.1.0', sha256='3730b1b3f545a5aa43c0fff07418b362a789eb7d81286e2bed90ffef88bfa5d0')
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
index d1dc0f2264..93ad191352 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-eventgrid/azure-mgmt-eventgrid-2.2.0.zip"
# Release candidate needed for py-azure-cli
version('3.0.0rc7', sha256='68f9eb18b74fa86e07cf4e4d1a2ed16fe549bdd53f21a707b05798616b01a9d4')
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
index bd25960c8c..a5b9a45639 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-eventhub/azure-mgmt-eventhub-4.0.0.zip"
version('4.0.0', sha256='65223196cf132899656c2f9cb71a14c972d99e5ecd815ee050dae1072cb73ae2')
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
index 4107d2f68b..c35ed71e9d 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-hdinsight/azure-mgmt-hdinsight-1.5.1.zip"
version('1.5.1', sha256='76b94f3e43fdc6698023d79be731937dc645dc3178dc134854768528ecc0aea3')
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
index 44e3e311e4..ae171d1b92 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-imagebuilder/azure-mgmt-imagebuilder-0.4.0.zip"
version('0.4.0', sha256='4c9291bf16b40b043637e5e4f15650f71418ac237393e62219cab478a7951733')
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
index 80154d6528..7f18068803 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-iotcentral/azure-mgmt-iotcentral-3.1.0.zip"
version('3.1.0', sha256='c175f6642be514ad0efd3dc03d09e50d923596fd9e634381793dcc46bb8a57c7')
version('3.0.0', sha256='f6dacf442ccae2f18f1082e80bcbdcaa8c0efa2ba92b48c5db6ee01d37240047')
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
index a1954a9751..bcd3c93b88 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-iothub/azure-mgmt-iothub-0.12.0.zip"
version('0.12.0', sha256='da20ee2b9b9a2c2f89be9037c3ee5421152e7f6d718eafbf50a91dbf0a07ffa0')
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
index 37845cee5d..e9adf65bb9 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureMgmtIothubprovisioningservices(PythonPackage):
"""
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"
+ pypi = "azure-mgmt-iothubprovisioningservices/azure-mgmt-iothubprovisioningservices-0.2.0.zip"
version('0.2.0', sha256='8c37acfd1c33aba845f2e0302ef7266cad31cba503cc990a48684659acb7b91d')
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-keyvault/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-keyvault/package.py
index 5273aec0ff..7a8f3bef2f 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-keyvault/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-keyvault/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyAzureMgmtKeyvault(PythonPackage):
"""Microsoft Azure Key Vault Management Client Library for Python."""
homepage = "https://github.com/Azure/azure-sdk-for-python"
- url = "https://pypi.io/packages/source/a/azure-mgmt-keyvault/azure-mgmt-keyvault-2.2.0.zip"
+ pypi = "azure-mgmt-keyvault/azure-mgmt-keyvault-2.2.0.zip"
version('2.2.0', sha256='1883e12eeb5819064dc52bf3a3ade05c791f4b66e4aeec948bda28df6ce2bce4')
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
index faadc899cf..46a66a3ce0 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-kusto/azure-mgmt-kusto-0.9.0.zip"
version('0.9.0', sha256='9210db89fa18ee8ed53339cd63bbe6fe1d9624cd793b54b7451ddbda8ae92ef3')
version('0.3.0', sha256='9eb8b7781fd4410ee9e207cd0c3983baf9e58414b5b4a18849d09856e36bacde')
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
index 925db35fa1..c3b68318dc 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-loganalytics/azure-mgmt-loganalytics-0.7.0.zip"
version('0.7.0', sha256='50fb7f714685d170ce9607e3c30488e194015845ef7f0a717b80609837a6c2a2')
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
index d7ac227ef3..c031eade9d 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-managedservices/azure-mgmt-managedservices-1.0.0.zip"
version('1.0.0', sha256='fed8399fc6773aada37c1d0496a46f59410d77c9494d0ca5967c531c3376ad19')
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
index 6ce865aaba..2ac5535384 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-managementgroups/azure-mgmt-managementgroups-0.2.0.zip"
version('0.2.0', sha256='3d5237947458dc94b4a392141174b1c1258d26611241ee104e9006d1d798f682')
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
index 8448f6fde4..60f3ec3909 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-maps/azure-mgmt-maps-0.1.0.zip"
version('0.1.0', sha256='c120e210bb61768da29de24d28b82f8d42ae24e52396eb6569b499709e22f006')
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
index a09eaf331c..1e83ee1596 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-marketplaceordering/azure-mgmt-marketplaceordering-0.2.1.zip"
version('0.2.1', sha256='dc765cde7ec03efe456438c85c6207c2f77775a8ce8a7adb19b0df5c5dc513c2')
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
index 7ef8dd5201..9cbd96be7d 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-media/azure-mgmt-media-2.2.0.zip"
version('2.2.0', sha256='0adeee9e654a9011f5107def06fea6838864a3514a1e5a9ed495f3a56a687cc7')
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
index 681dbf6c22..013d79c517 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-monitor/azure-mgmt-monitor-0.11.0.zip"
version('0.11.0', sha256='c6e1fe83dd2ddffa7f6d90c7aa63b3128042396a3893c14dc4816ad28cb15016')
version('0.10.0', sha256='d57d604cc1a7a9ce35eb7cf8a00d4924887c688aa78dc035ea1f80066b297464')
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
index abdbdc640a..ddc265158b 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-msi/azure-mgmt-msi-1.0.0.zip"
version('1.0.0', sha256='d46f3aab25db3dad520e4055c1d67afe4fcc6d66335c762134e60f82265f8f58')
version('0.2.0', sha256='8622bc9a164169a0113728ebe7fd43a88189708ce6e10d4507247d6907987167')
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
index 401b2078c3..e8422694cc 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-netapp/azure-mgmt-netapp-0.11.0.zip"
version('0.11.0', sha256='621a76b06c97e858d49b68953e66eb718ac24f91aa6bf090f32a335a38f02305')
version('0.8.0', sha256='67df7c7391c2179423a95927a639492c3a177bff8f3a80e4b2d666a86e2d6f6d')
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 549160d7ea..b4f0403f54 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
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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-11.0.0.zip"
+ pypi = "azure-mgmt-network/azure-mgmt-network-11.0.0.zip"
version('11.0.0', sha256='7fdfc631c660cb173eee88abbb7b8be7742f91b522be6017867f217409cd69bc')
version('10.2.0', sha256='d50c74cdc1c9be6861ddef9adffd3b05afc5a5092baf0209eea30f4439cba2d9')
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-nspkg/package.py
index 4c4dda2d0d..0fc10037e9 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-nspkg/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-nspkg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyAzureMgmtNspkg(PythonPackage):
"""Microsoft Azure Resource Management Namespace Package [Internal]."""
homepage = "https://github.com/Azure/azure-sdk-for-python"
- url = "https://pypi.io/packages/source/a/azure-mgmt-nspkg/azure-mgmt-nspkg-3.0.2.zip"
+ pypi = "azure-mgmt-nspkg/azure-mgmt-nspkg-3.0.2.zip"
version('3.0.2', sha256='8b2287f671529505b296005e6de9150b074344c2c7d1c805b3f053d081d58c52')
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
index c0532b307a..95ac19a79e 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-policyinsights/azure-mgmt-policyinsights-0.5.0.zip"
version('0.5.0', sha256='ed229e3845c477e88dde413825d4fba0d38b3a5ffab4e694c7d0da995f3db0f3')
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
index 5aa65aec57..5d18ecef62 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-privatedns/azure-mgmt-privatedns-0.1.0.zip"
version('0.1.0', sha256='d29cfd8cec806e06673d9382d3f5766fc65d9a9de75b424705094a34a7db8d23')
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
index c375a82622..3d0e8ca4fa 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-rdbms/azure-mgmt-rdbms-2.2.0.zip"
version('2.2.0', sha256='f93344897a9bfa6ebc57dd0c10ad79602ff7965c322c65115e3f4b8584bbe1c7')
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
index 67a5987b8f..ec590b3a56 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-recoveryservices/azure-mgmt-recoveryservices-0.5.0.zip"
version('0.5.0', sha256='3c90e6b2e358dbe6d5c6d7204955bdf52c3e977c6f8b727cbbb8811427d7fd52')
version('0.4.0', sha256='e1e794760232239f8a9328d5de1740565ff70d1612a2921c9609746ba5671e6c')
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
index 96b755acef..2a03def283 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureMgmtRecoveryservicesbackup(PythonPackage):
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"
+ pypi = "azure-mgmt-recoveryservicesbackup/azure-mgmt-recoveryservicesbackup-0.8.0.zip"
version('0.8.0', sha256='a0ee89691b21945cc4b892a9194320f50c1cd242d98f00a82d7e3848c28517a5')
version('0.6.0', sha256='4df62479c90a6f93e7689f9d58e0a139899f0407f5e3298d5ce014442599428f')
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
index 6503254cd8..1056c043e1 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureMgmtRedhatopenshift(PythonPackage):
"""
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"
+ pypi = "azure-mgmt-redhatopenshift/azure-mgmt-redhatopenshift-0.1.0.zip"
version('0.1.0', sha256='565afbc63f5283f37c76135174f2ca20dd417da3e24b3fb1e132c4a0e2a2c5bc')
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
index 90d0e95241..99875a7902 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-redis/azure-mgmt-redis-6.0.0.zip"
# Release candidate needed for py-azure-cli
version('7.0.0rc1', sha256='d3cc259c507b79962495ed00d0a3432a45e4e90a0fb48b49e80d51cdc398dc20')
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
index fee12b519b..7eea1a44f0 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-relay/azure-mgmt-relay-0.2.0.zip"
version('0.2.0', sha256='a7e8341b2920d1d45bdf73d2b7825c44427d33fb0d820aceb11c94432323bf68')
version('0.1.0', sha256='d9f987cf2998b8a354f331b2a71082c049193f1e1cd345812e14b9b821365acb')
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
index b14a6d83dc..303e51db0a 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-reservations/azure-mgmt-reservations-0.7.0.zip"
version('0.7.0', sha256='f65c1985a47e0ac55e7d5d9cc1bd5e95335a111566edc289d460aa2bc8f80991')
version('0.6.0', sha256='83a9a70d6fd78b8b3e92ca64bbc1fde8d1bc5e2efea54076052c51c946b4cc9b')
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-resource/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-resource/package.py
index f22f77fd46..4fd05cf350 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-resource/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-resource/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyAzureMgmtResource(PythonPackage):
"""Microsoft Azure Resource Management Client Library for Python."""
homepage = "https://github.com/Azure/azure-sdk-for-python"
- url = "https://pypi.io/packages/source/a/azure-mgmt-resource/azure-mgmt-resource-10.0.0.zip"
+ pypi = "azure-mgmt-resource/azure-mgmt-resource-10.0.0.zip"
version('10.0.0', sha256='bd9a3938f5423741329436d2da09693845c2fad96c35fadbd7c5ae5213208345')
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
index 42e7eae43d..1444f58443 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-search/azure-mgmt-search-2.1.0.zip"
version('2.1.0', sha256='92a40a1a7a9e3a82b6fa302042799e8d5a67d3996c20835af72afc14f1610501')
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
index 27778ebcba..191dcd3345 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-security/azure-mgmt-security-0.4.1.zip"
version('0.4.1', sha256='391c8df5400485049a6c19d50e536304c186bb64fd569eec0c6d01d20220ee21')
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
index 22fba6dcf8..8890fab404 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-servicebus/azure-mgmt-servicebus-0.6.0.zip"
version('0.6.0', sha256='f20920b8fb119ef4abeda4d2dac765a4fc48cd0bcf30c27f8c4cc6d890bc08b1')
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
index 519f7c632f..d8a6de79d4 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-servicefabric/azure-mgmt-servicefabric-0.4.0.zip"
version('0.4.0', sha256='a2cbd2797e796a550a93d37229b2ded22765f50166730a63c8e20a27677e28f4')
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
index 298f1b7b05..19797f4d56 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-signalr/azure-mgmt-signalr-0.4.0.zip"
version('0.4.0', sha256='6503ddda9d6f4b634dfeb8eb4bcd14ede5e0900585f6c83bf9010cf82215c126')
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
index 8bfe3781bb..524886b480 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-sql/azure-mgmt-sql-0.19.0.zip"
version('0.19.0', sha256='694649d4c9c5f89e543f23ec10e450b6382b2f1bc5843ef266cfc302276038c6')
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
index 03565edb89..c5ac853281 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureMgmtSqlvirtualmachine(PythonPackage):
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"
+ pypi = "azure-mgmt-sqlvirtualmachine/azure-mgmt-sqlvirtualmachine-0.5.0.zip"
version('0.5.0', sha256='b5a9423512a7b12844ac014366a1d53c81017a14f39676beedf004a532aa2aad')
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 f53822ef94..47f7bd3b57 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
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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.1.0.zip"
+ pypi = "azure-mgmt-storage/azure-mgmt-storage-11.1.0.zip"
version('11.1.0', sha256='ef23587c1b6dc0866ebf0e91e83ba05d7f7e4fea7951b704781b9cd9f5f27f1c')
version('11.0.0', sha256='f9791c2a84eee0a55bbf757632a2a4d1e102db958e75422d5e0e7306041129b8')
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
index fa6dc2c756..2890197a95 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-trafficmanager/azure-mgmt-trafficmanager-0.51.0.zip"
version('0.51.0', sha256='fc8ae77022cfe52fda4379a2f31e0b857574d536e41291a7b569b5c0f4104186')
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
index b4d7f2ba45..2fbee188d1 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-mgmt-web/azure-mgmt-web-0.47.0.zip"
version('0.47.0', sha256='789a328e2a60df48a82452ca6fbc1a7b4adf3c38d4701d278efe4e81cf21cce8')
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
index 5d5a8442b5..06c3892b94 100644
--- a/var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyAzureMultiapiStorage(PythonPackage):
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"
+ pypi = "azure-multiapi-storage/azure-multiapi-storage-0.3.5.tar.gz"
version('0.3.5', sha256='71c238c785786a159b3ffd587a5e7fa1d9a517b66b592ae277fed73a9fbfa2b0')
diff --git a/var/spack/repos/builtin/packages/py-azure-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-nspkg/package.py
index 8e1b468565..a74afd4925 100644
--- a/var/spack/repos/builtin/packages/py-azure-nspkg/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-nspkg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyAzureNspkg(PythonPackage):
"""Microsoft Azure Namespace Package [Internal]."""
homepage = "hhttps://github.com/Azure/azure-sdk-for-python"
- url = "https://pypi.io/packages/source/a/azure-nspkg/azure-nspkg-3.0.2.zip"
+ pypi = "azure-nspkg/azure-nspkg-3.0.2.zip"
version('3.0.2', sha256='e7d3cea6af63e667d87ba1ca4f8cd7cb4dfca678e4c55fc1cedb320760e39dd0')
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
index 70902f28d9..f98a0a281f 100644
--- a/var/spack/repos/builtin/packages/py-azure-storage-common/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-storage-common/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-storage-common/azure-storage-common-2.1.0.tar.gz"
version('2.1.0', sha256='ccedef5c67227bc4d6670ffd37cec18fb529a1b7c3a5e53e4096eb0cf23dc73f')
version('1.4.2', sha256='4ec87c7537d457ec95252e0e46477e2c1ccf33774ffefd05d8544682cb0ae401')
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
index da8878813f..eb495ef64e 100644
--- a/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "azure-storage-nspkg/azure-storage-nspkg-3.1.0.tar.gz"
version('3.1.0', sha256='6f3bbe8652d5f542767d8433e7f96b8df7f518774055ac7c92ed7ca85f653811')
diff --git a/var/spack/repos/builtin/packages/py-azureml-automl-core/package.py b/var/spack/repos/builtin/packages/py-azureml-automl-core/package.py
index 9a50fbe3cc..15000c3ce4 100644
--- a/var/spack/repos/builtin/packages/py-azureml-automl-core/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-automl-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,7 @@ class PyAzuremlAutomlCore(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml_automl_core/azureml_automl_core-1.11.0-py3-none-any.whl"
+ version('1.23.0', sha256='1fa4a900856b15e1ec9a6bb949946ed0c873a5a54da3db592f03dbb46a117ceb', expand=False)
version('1.11.0', sha256='da1b9cef9aabbfaee69a19d5e15f5a911eefbd126546738343a78c032860b5a5', expand=False)
version('1.8.0', sha256='58ce54b01570996cda860c0c80693b8db19324785a356573f105afeaa31cae6c', expand=False)
@@ -18,6 +19,9 @@ class PyAzuremlAutomlCore(Package):
depends_on('python@3.5:3.999', type=('build', 'run'))
depends_on('py-pip', type='build')
+ depends_on('py-azureml-dataset-runtime@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-telemetry@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+
depends_on('py-azureml-dataset-runtime@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-telemetry@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azureml-core/package.py b/var/spack/repos/builtin/packages/py-azureml-core/package.py
index 673b7542de..caa3786dd4 100644
--- a/var/spack/repos/builtin/packages/py-azureml-core/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class PyAzuremlCore(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml_core/azureml_core-1.11.0-py3-none-any.whl"
+ version('1.23.0', sha256='0965d0741e39cdb95cff5880dbf1a55fdd87cd9fc316884f965668e6cc36e628', expand=False)
version('1.11.0', sha256='df8a01b04bb156852480de0bdd78434ed84f386e1891752bdf887faeaa2ca417', expand=False)
version('1.8.0', sha256='a0f2b0977f18fb7dcb88c314594a4a85c636a36be3d582be1cae25655fea6105', expand=False)
@@ -23,29 +24,29 @@ class PyAzuremlCore(Package):
depends_on('py-pytz', type=('build', 'run'))
depends_on('py-backports-tempfile', type=('build', 'run'))
depends_on('py-pathspec', type=('build', 'run'))
- depends_on('py-requests@2.19.1:', type=('build', 'run'))
- depends_on('py-azure-mgmt-resource@1.2.1:', type=('build', 'run'))
+ depends_on('py-requests@2.19.1:2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-resource@1.2.1:14.999', type=('build', 'run'))
depends_on('py-azure-mgmt-containerregistry@2.0.0:', type=('build', 'run'))
- depends_on('py-azure-mgmt-storage@1.5.0:', type=('build', 'run'))
- depends_on('py-azure-mgmt-keyvault@0.40.0:', type=('build', 'run'))
- depends_on('py-azure-mgmt-authorization@0.40.0:', type=('build', 'run'))
+ depends_on('py-azure-mgmt-storage@1.5.0:15.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-keyvault@0.40.0:6.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-authorization@0.40.0:0.999', type=('build', 'run'))
depends_on('py-azure-mgmt-network@10.0:10.999', when='@1.8.0', type=('build', 'run'))
- depends_on('py-azure-graphrbac@0.40.0:', type=('build', 'run'))
+ depends_on('py-azure-graphrbac@0.40.0:0.999', type=('build', 'run'))
depends_on('py-azure-common@1.1.12:', type=('build', 'run'))
depends_on('py-msrest@0.5.1:', type=('build', 'run'))
depends_on('py-msrestazure@0.4.33:', type=('build', 'run'))
depends_on('py-urllib3@1.23:', type=('build', 'run'))
- depends_on('py-cryptography@:1.8,2.3:', type=('build', 'run'))
+ depends_on('py-cryptography@:1.8,2.3:3.2', type=('build', 'run'))
depends_on('py-python-dateutil@2.7.3:', type=('build', 'run'))
depends_on('py-ndg-httpsclient', type=('build', 'run'))
depends_on('py-secretstorage', type=('build', 'run'))
- depends_on('py-ruamel-yaml@0.16.8:', type=('build', 'run'))
+ depends_on('py-ruamel-yaml@0.15.35:', type=('build', 'run'))
depends_on('py-jsonpickle', type=('build', 'run'))
depends_on('py-contextlib2', type=('build', 'run'))
depends_on('py-docker', type=('build', 'run'))
- depends_on('py-pyjwt', type=('build', 'run'))
+ depends_on('py-pyjwt@:2.999', type=('build', 'run'))
depends_on('py-adal@1.2.0:', type=('build', 'run'))
- depends_on('py-pyopenssl', type=('build', 'run'))
+ depends_on('py-pyopenssl@:20.999', type=('build', 'run'))
depends_on('py-jmespath', type=('build', 'run'))
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-azureml-dataprep-native/package.py b/var/spack/repos/builtin/packages/py-azureml-dataprep-native/package.py
index afd1a43272..3e4d4164ec 100644
--- a/var/spack/repos/builtin/packages/py-azureml-dataprep-native/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-dataprep-native/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,19 +9,48 @@ import sys
class PyAzuremlDataprepNative(Package):
"""Python Package for AzureML DataPrep specific native extensions."""
- homepage = "http://aka.ms/data-prep-sdk"
+ homepage = "https://docs.microsoft.com/en-us/python/api/overview/azure/ml/?view=azure-ml-py"
if sys.platform == 'darwin':
- version('14.2.1', sha256='0711ea6465a555d4ed052b7ecf3ed580d711ca7499a12be4c9736d5555ab2786', expand=False,
+ version('30.0.0-py3.9', sha256='eaf3fcd9f965e87b03fe89d7c6fe6abce53483a79afc963e4981061f4c250e85', expand=False,
+ url='https://pypi.io/packages/cp39/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp39-cp39-macosx_10_9_x86_64.whl')
+ version('30.0.0-py3.8', sha256='6772b638f9d03a041b17ce4343061f5d543019200904b9d361b2b2629c3595a7', expand=False, preferred=True,
+ url='https://pypi.io/packages/cp38/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp38-cp38-macosx_10_9_x86_64.whl')
+ version('30.0.0-py3.7', sha256='1fb47c48edf795aaa1b3e589a4d580fc61d639c0bb26519271736c72155d008e', expand=False,
+ url='https://pypi.io/packages/cp37/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp37-cp37m-macosx_10_9_x86_64.whl')
+ version('30.0.0-py3.6', sha256='bd81f0ac0df442b4e09bd2ee76ccff1279437b73e08324d9038c13a5e4708598', expand=False,
+ url='https://pypi.io/packages/cp36/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp36-cp36m-macosx_10_9_x86_64.whl')
+ version('30.0.0-py3.5', sha256='2d1702a2dd9b851ccba9d4624a240f5657f3f34a89977f01ee99f9ccaab905a9', expand=False,
+ url='https://pypi.io/packages/cp35/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp35-cp35m-macosx_10_9_x86_64.whl')
+
+ version('14.2.1-py3.7', sha256='0711ea6465a555d4ed052b7ecf3ed580d711ca7499a12be4c9736d5555ab2786', expand=False,
url='https://pypi.io/packages/cp37/a/azureml_dataprep_native/azureml_dataprep_native-14.2.1-cp37-cp37m-macosx_10_9_x86_64.whl')
elif sys.platform.startswith('linux'):
- version('14.2.1', sha256='0817ec5c378a9bcd1af8edda511ca9d02bdc7087e6f8802c459c9b8f3fde4ade', expand=False,
+ version('30.0.0-py3.9', sha256='b8673136948f682c84d047feacbfee436df053cba4f386f31c4c3a245a4e3646', expand=False,
+ url='https://pypi.io/packages/cp39/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp39-cp39-manylinux1_x86_64.whl')
+ version('30.0.0-py3.8', sha256='d07cf20f22b14c98576e135bbad9bb8aaa3108941d2beaadf050b4238bc93a18', expand=False, preferred=True,
+ url='https://pypi.io/packages/cp38/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp38-cp38-manylinux1_x86_64.whl')
+ version('30.0.0-py3.7', sha256='897063c21d7b1b8cb070f8992e78291c402559434e9d4a5bb85b595a5c676fe6', expand=False,
+ url='https://pypi.io/packages/cp37/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp37-cp37m-manylinux1_x86_64.whl')
+ version('30.0.0-py3.6', sha256='d2560d3f20cd3b8ad2d2159b1048b83dd330cf8c44aa8becedd6dcaf72876062', expand=False,
+ url='https://pypi.io/packages/cp36/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp36-cp36m-manylinux1_x86_64.whl')
+ version('30.0.0-py3.5', sha256='15b55d903d5688b5a9a290e388db62c8f3d042bc1796db44723f4455b7b18d07', expand=False,
+ url='https://pypi.io/packages/cp35/a/azureml_dataprep_native/azureml_dataprep_native-30.0.0-cp35-cp35m-manylinux1_x86_64.whl')
+
+ version('14.2.1-py3.7', sha256='0817ec5c378a9bcd1af8edda511ca9d02bdc7087e6f8802c459c9b8f3fde4ade', expand=False,
url='https://pypi.io/packages/cp37/a/azureml_dataprep_native/azureml_dataprep_native-14.2.1-cp37-cp37m-manylinux1_x86_64.whl')
extends('python')
- depends_on('python@3.7.0:3.7.999', type=('build', 'run'))
depends_on('py-pip', type='build')
+ depends_on('python@3.9.0:3.9.999', when='@30.0.0-py3.9', type=('build', 'run'))
+ depends_on('python@3.8.0:3.8.999', when='@30.0.0-py3.8', type=('build', 'run'))
+ depends_on('python@3.7.0:3.7.999', when='@30.0.0-py3.7', type=('build', 'run'))
+ depends_on('python@3.6.0:3.6.999', when='@30.0.0-py3.6', type=('build', 'run'))
+ depends_on('python@3.5.0:3.5.999', when='@30.0.0-py3.5', type=('build', 'run'))
+
+ depends_on('python@3.7.0:3.7.999', when='@14.2.1-py3.7', type=('build', 'run'))
+
def install(self, spec, prefix):
pip = which('pip')
pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-azureml-dataprep-rslex/package.py b/var/spack/repos/builtin/packages/py-azureml-dataprep-rslex/package.py
new file mode 100644
index 0000000000..e3b43b29a9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azureml-dataprep-rslex/package.py
@@ -0,0 +1,79 @@
+# Copyright 2013-2021 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)
+
+import sys
+
+import archspec
+
+from spack import *
+
+
+class PyAzuremlDataprepRslex(Package):
+ """Azure Machine Learning Data Prep RsLex is a Rust implementation of Data Prep's
+ capabilities to load, transform, and write data for machine learning workflows."""
+
+ homepage = "https://docs.microsoft.com/en-us/python/api/overview/azure/ml/?view=azure-ml-py"
+
+ if sys.platform == 'darwin':
+ version('1.9.0-py3.9', sha256='9bdaa31d129dac19ee20d5a3aad1726397e90d8d741b4f6de4554040800fefe8', expand=False,
+ url='https://pypi.io/packages/cp39/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl')
+ version('1.9.0-py3.8', sha256='9b2e741ac1c53d3f7e6061d264feccf157d97e404c772933a176e6021014484e', expand=False, preferred=True,
+ url='https://pypi.io/packages/cp38/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl')
+ version('1.9.0-py3.7', sha256='9993b369fb9d94d885611859ee957582304c1d8953fc8b48567b786bbfd8062b', expand=False,
+ url='https://pypi.io/packages/cp37/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl')
+ version('1.9.0-py3.6', sha256='80d518774591deb2c8f1457708c10c9ba348407d7aa49e0710358f46846fcbef', expand=False,
+ url='https://pypi.io/packages/cp36/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp36-cp36m-macosx_10_9_x86_64.whl')
+ version('1.9.0-py3.5', sha256='91a5c09796e60570620efb7d66f05647557ec6d39aab8b22c0e13926c402ca5b', expand=False,
+ url='https://pypi.io/packages/cp35/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp35-cp35m-macosx_10_9_x86_64.whl')
+
+ version('1.8.0-py3.9', sha256='677c25a7e23ec7f91d25aa596f382f7f3b6d60fbc3258bead2b2a6aa42f3a16d', expand=False,
+ url='https://pypi.io/packages/cp39/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl')
+ version('1.8.0-py3.8', sha256='d7f2dec06296544b1707f5b01c6a4eaad744b4abfe9e8e89830b561c84d95a7a', expand=False,
+ url='https://pypi.io/packages/cp38/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl')
+ version('1.8.0-py3.7', sha256='8e9feb3187f11fb86f525bc88bf6a6171d7e7d6e2860411a5b82d1f3ecaa8ae8', expand=False,
+ url='https://pypi.io/packages/cp37/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp37-cp37m-macosx_10_9_x86_64.whl')
+ version('1.8.0-py3.6', sha256='f5f7c9af1f1ecfbfee0e5822db180de05c6f5aeed34f6d0b3fd26e210f476d3e', expand=False,
+ url='https://pypi.io/packages/cp36/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp36-cp36m-macosx_10_9_x86_64.whl')
+ version('1.8.0-py3.5', sha256='1c610a25a3e09d4ebb95c42baaa57b5c0c66e31522a6bff52dda0df2d6ac7f4d', expand=False,
+ url='https://pypi.io/packages/cp35/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp35-cp35m-macosx_10_9_x86_64.whl')
+ elif sys.platform.startswith('linux'):
+ version('1.9.0-py3.9', sha256='79d52bb427e3ca781a645c4f11f7a8e5e2c8f61e61bfc162b4062d8e47bcf3d6', expand=False,
+ url='https://pypi.io/packages/cp39/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp39-cp39-manylinux1_x86_64.whl')
+ version('1.9.0-py3.8', sha256='a52461103b45867dd919bab593bb6f2426c9b5f5a435081e82a3c57c54c3add6', expand=False, preferred=True,
+ url='https://pypi.io/packages/cp38/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp38-cp38-manylinux1_x86_64.whl')
+ version('1.9.0-py3.7', sha256='d7b6e15401b88cec2915b0bd6298ae7f54584d01ee14e4a24ffb950b7578bceb', expand=False,
+ url='https://pypi.io/packages/cp37/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp37-cp37m-manylinux1_x86_64.whl')
+ version('1.9.0-py3.6', sha256='2723bf56f2d11e5ee00c6619f2365bd594e85ba116ffc912a2433c52913d0890', expand=False,
+ url='https://pypi.io/packages/cp36/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp36-cp36m-manylinux1_x86_64.whl')
+ version('1.9.0-py3.5', sha256='d5c6d363da2b3ace1baa9ad3e645ad8a19fdacf0b95dd1f8b6ab19c4371cc10f', expand=False,
+ url='https://pypi.io/packages/cp35/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.9.0-cp35-cp35m-manylinux1_x86_64.whl')
+
+ version('1.8.0-py3.9', sha256='e251a077669703ca117b157b225fbc20832169f913476cf79c01a5c6f8ff7a50', expand=False,
+ url='https://pypi.io/packages/cp39/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp39-cp39-manylinux1_x86_64.whl')
+ version('1.8.0-py3.8', sha256='2ebfa164f0933a5cec383cd27ba10d33861a73237ef481ada5a9a822bb55514a', expand=False,
+ url='https://pypi.io/packages/cp38/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp38-cp38-manylinux1_x86_64.whl')
+ version('1.8.0-py3.7', sha256='0588c6e503635aa6d4c64f7bbb3a3be52679f24ac89e2c8d4e96fd991d7006a2', expand=False,
+ url='https://pypi.io/packages/cp37/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp37-cp37m-manylinux1_x86_64.whl')
+ version('1.8.0-py3.6', sha256='195507ba55aa5ac7c5d37d05b8ac25813add0da5cc9bd4a04f2cb5da984cb287', expand=False,
+ url='https://pypi.io/packages/cp36/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp36-cp36m-manylinux1_x86_64.whl')
+ version('1.8.0-py3.5', sha256='9dfbd1065030dee3aa45b6796c087acffb06cfcbe97cc877e255e21e320362be', expand=False,
+ url='https://pypi.io/packages/cp35/a/azureml_dataprep_rslex/azureml_dataprep_rslex-1.8.0-cp35-cp35m-manylinux1_x86_64.whl')
+
+ extends('python')
+ depends_on('py-pip', type='build')
+
+ depends_on('python@3.9.0:3.9.999', when='@1.9.0-py3.9,1.8.0-py3.9', type=('build', 'run'))
+ depends_on('python@3.8.0:3.8.999', when='@1.9.0-py3.8,1.8.0-py3.8', type=('build', 'run'))
+ depends_on('python@3.7.0:3.7.999', when='@1.9.0-py3.7,1.8.0-py3.7', type=('build', 'run'))
+ depends_on('python@3.6.0:3.6.999', when='@1.9.0-py3.6,1.8.0-py3.6', type=('build', 'run'))
+ depends_on('python@3.5.0:3.5.999', when='@1.9.0-py3.5,1.8.0-py3.5', type=('build', 'run'))
+
+ for t in set([str(x.family) for x in archspec.cpu.TARGETS.values()
+ if str(x.family) != 'x86_64']):
+ conflicts('target={0}:'.format(t), msg='py-azureml-dataprep-rslex is available x86_64 only')
+
+ def install(self, spec, prefix):
+ pip = which('pip')
+ pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py b/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py
index 18a4dcfd72..94be3ecfd6 100644
--- a/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,9 +7,11 @@
class PyAzuremlDataprep(Package):
"""Azure ML Data Preparation SDK."""
- homepage = "http://aka.ms/data-prep-sdk"
+ homepage = "https://docs.microsoft.com/en-us/python/api/overview/azure/ml/?view=azure-ml-py"
url = "https://pypi.io/packages/py3/a/azureml_dataprep/azureml_dataprep-2.0.2-py3-none-any.whl"
+ version('2.11.0', sha256='755c0d7cfe228705aee7adc97813fb6d7d6ecb048b66f47c1fd5897f2709c3a2', expand=False)
+ version('2.10.1', sha256='a36f807112ff1e64d21265b8e7f40154c93e3bead539e2a74c9d74200fd77c86', expand=False)
version('2.0.2', sha256='9b9e97d9ed29c0641d3ceb37745ff078143bd235c53df528f847ec0684c52f79', expand=False)
version('1.8.2', sha256='e53f3206f0bd4af8d5e7de3a94c2c6e662902b86e94a7b9d930e36329fe5820f', expand=False)
@@ -18,10 +20,15 @@ class PyAzuremlDataprep(Package):
extends('python')
depends_on('python@3:', type=('build', 'run'))
depends_on('py-pip', type='build')
+
depends_on('py-dotnetcore2@2.1.14:2.999', type=('build', 'run'))
- depends_on('py-azureml-dataprep-native@14.2.1:14.999', type=('build', 'run'))
+ depends_on('py-azureml-dataprep-native@30.0.0:30.999', when='@2.10.0:', type=('build', 'run'))
+ depends_on('py-azureml-dataprep-native@14.2.1:14.999', when='@:2.0.2', type=('build', 'run'))
+ depends_on('py-azureml-dataprep-rslex@1.9.0:1.9.999', when='@2.11.0:', type=('build', 'run'))
+ depends_on('py-azureml-dataprep-rslex@1.8.0:1.8.999', when='@2.10.1', type=('build', 'run'))
depends_on('py-cloudpickle@1.1.0:1.999', type=('build', 'run'))
- depends_on('py-azure-identity@1.2.0:1.2.999', type=('build', 'run'))
+ depends_on('py-azure-identity@1.2.0:1.4.999', when='@2.10.0:', type=('build', 'run'))
+ depends_on('py-azure-identity@1.2.0:1.2.999', when='@:2.0.2', type=('build', 'run'))
depends_on('py-fusepy@3.0.1:3.999', when='+fuse', type=('build', 'run'))
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-azureml-dataset-runtime/package.py b/var/spack/repos/builtin/packages/py-azureml-dataset-runtime/package.py
index e7849b8b7e..6005b50ba4 100644
--- a/var/spack/repos/builtin/packages/py-azureml-dataset-runtime/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-dataset-runtime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,7 @@ class PyAzuremlDatasetRuntime(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml-dataset-runtime/azureml_dataset_runtime-1.11.0.post1-py3-none-any.whl"
+ version('1.23.0', sha256='96ca73d03ffedc0dd336d9383d2e17cf74548a89fc7ca4c201c599817c97bbc6', expand=False)
version('1.11.0.post1', sha256='65c20f276399a7d406c4850af7a6f149472d301931fd1da6a60bad59d43fa47b', expand=False)
variant('fuse', default=False, description='Build with FUSE support')
@@ -18,8 +19,11 @@ class PyAzuremlDatasetRuntime(Package):
extends('python')
depends_on('python@3.0:3.999', type=('build', 'run'))
depends_on('py-pip', type='build')
- depends_on('py-azureml-dataprep@2.0.1:2.0.999', type=('build', 'run'))
- depends_on('py-pyarrow@0.17.0:0.999', type=('build', 'run'))
+ depends_on('py-azureml-dataprep@2.10.0:2.10.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-dataprep@2.0.1:2.0.999', when='@1.11.0.post1', type=('build', 'run'))
+ depends_on('py-pyarrow@0.17.0:1.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-pyarrow@0.17.0:0.999', when='@1.11.0.post1', type=('build', 'run'))
+ depends_on('py-numpy@:1.19.2,1.19.4:', when='@1.23.0:', type=('build', 'run'))
depends_on('py-fusepy@3.0.1:3.999', when='+fuse', type=('build', 'run'))
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-azureml-pipeline-core/package.py b/var/spack/repos/builtin/packages/py-azureml-pipeline-core/package.py
index 2df7e538ac..14ba81928b 100644
--- a/var/spack/repos/builtin/packages/py-azureml-pipeline-core/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-pipeline-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,7 @@ class PyAzuremlPipelineCore(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml_pipeline_core/azureml_pipeline_core-1.11.0-py3-none-any.whl"
+ version('1.23.0', sha256='347e3e41559879611d53eeff5c05dd133db6fa537edcf2b9f70d91aad461df02', expand=False)
version('1.11.0', sha256='98012195e3bba12bf42ac69179549038b3563b39e3dadab4f1d06407a00ad8b3', expand=False)
version('1.8.0', sha256='24e1c57a57e75f9d74ea6f45fa4e93c1ee3114c8ed9029d538f9cc8e4f8945b2', expand=False)
@@ -17,6 +18,8 @@ class PyAzuremlPipelineCore(Package):
depends_on('python@3.5:3.999', type=('build', 'run'))
depends_on('py-pip', type='build')
+ depends_on('py-azureml-core@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+
depends_on('py-azureml-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azureml-pipeline-steps/package.py b/var/spack/repos/builtin/packages/py-azureml-pipeline-steps/package.py
index 5cb949660c..5ce52e7312 100644
--- a/var/spack/repos/builtin/packages/py-azureml-pipeline-steps/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-pipeline-steps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,7 @@ class PyAzuremlPipelineSteps(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml_pipeline_steps/azureml_pipeline_steps-1.11.0-py3-none-any.whl"
+ version('1.23.0', sha256='72154c2f75624a1e7500b8e2239ae1354eeedf66d2cabb11e213b7eb80aedddb', expand=False)
version('1.11.0', sha256='674317d9c74ec4cb05e443f50de1732e14dc4519cbe2743a44f8db0bc5e71214', expand=False)
version('1.8.0', sha256='3310674207ed457a26fb978e7168e400306c695f7f854f354dee9d5c7c81304c', expand=False)
@@ -17,6 +18,10 @@ class PyAzuremlPipelineSteps(Package):
depends_on('python@3:', type=('build', 'run'))
depends_on('py-pip', type='build')
+ depends_on('py-azureml-train-core@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-train-automl-client@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-pipeline-core@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+
depends_on('py-azureml-train-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-train-automl-client@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-pipeline-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azureml-pipeline/package.py b/var/spack/repos/builtin/packages/py-azureml-pipeline/package.py
index e66b510d68..902b197e90 100644
--- a/var/spack/repos/builtin/packages/py-azureml-pipeline/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-pipeline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,7 @@ class PyAzuremlPipeline(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml_pipeline/azureml_pipeline-1.11.0-py3-none-any.whl"
+ version('1.23.0', sha256='ed0fae96771840d3ffd63d63df1b1eed2f50c3b8dbe7b672a4f1ba6e66d0a392', expand=False)
version('1.11.0', sha256='8233c66b4120e86b9a9346608ca53bf48d5b9f0558300314034426dd0d7897d6', expand=False)
version('1.8.0', sha256='43ce39789d9a255f147311e40274b5f2571c7ef3b52e218f248724ccb377a02c', expand=False)
@@ -18,6 +19,9 @@ class PyAzuremlPipeline(Package):
depends_on('python@3:', type=('build', 'run'))
depends_on('py-pip', type='build')
+ depends_on('py-azureml-pipeline-core@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-pipeline-steps@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+
depends_on('py-azureml-pipeline-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-pipeline-steps@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azureml-sdk/package.py b/var/spack/repos/builtin/packages/py-azureml-sdk/package.py
index cd7f504fd3..730e4e5ffe 100644
--- a/var/spack/repos/builtin/packages/py-azureml-sdk/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-sdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,13 +12,21 @@ class PyAzuremlSdk(Package):
maintainers = ['adamjstewart']
+ version('1.23.0', sha256='b9520f426831acb99fafa1ecd154b6bfd4f73fbf71e918d819f9db4a75438ab9', expand=False)
version('1.11.0', sha256='d8c9d24ea90457214d798b0d922489863dad518adde3638e08ef62de28fb183a', expand=False)
version('1.8.0', sha256='61107db1403ce2c1a12064eb0fa31a1d075debbf32dd17cb93b7639b615b7839', expand=False)
extends('python')
- depends_on('python@3.5:3.999', type=('build', 'run'))
+ # https://github.com/Azure/MachineLearningNotebooks/issues/1285
+ depends_on('python@3.5:3.8.999', type=('build', 'run'))
depends_on('py-pip', type='build')
+ depends_on('py-azureml-core@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-dataset-runtime@1.23.0:1.23.999 +fuse', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-train@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-train-automl-client@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-pipeline@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+
depends_on('py-azureml-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-dataset-runtime@1.11.0:1.11.999 +fuse', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-train@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azureml-telemetry/package.py b/var/spack/repos/builtin/packages/py-azureml-telemetry/package.py
index 510ea5ec5d..6e838c0eba 100644
--- a/var/spack/repos/builtin/packages/py-azureml-telemetry/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-telemetry/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,7 @@ class PyAzuremlTelemetry(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml_telemetry/azureml_telemetry-1.11.0-py3-none-any.whl"
+ version('1.23.0', sha256='68f9aac77e468db80e60f75d0843536082e2884ab251b6d3054dd623bd9c9e0d', expand=False)
version('1.11.0', sha256='0d46c4a7bb8c0b188f1503504a6029384bc2237d82a131e7d1e9e89c3491b1fc', expand=False)
version('1.8.0', sha256='de657efe9773bea0de76c432cbab34501ac28606fe1b380d6883562ebda3d804', expand=False)
@@ -19,6 +20,8 @@ class PyAzuremlTelemetry(Package):
depends_on('py-pip', type='build')
depends_on('py-applicationinsights', type=('build', 'run'))
+ depends_on('py-azureml-core@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+
depends_on('py-azureml-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azureml-train-automl-client/package.py b/var/spack/repos/builtin/packages/py-azureml-train-automl-client/package.py
index 51f977dcf8..dec7a98dbf 100644
--- a/var/spack/repos/builtin/packages/py-azureml-train-automl-client/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-train-automl-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class PyAzuremlTrainAutomlClient(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml_train_automl_client/azureml_train_automl_client-1.11.0-py3-none-any.whl"
+ version('1.23.0', sha256='ac5f1ce9b04b4e61e2e28e0fa8d2d8e47937a546f624d1cd3aa6bc4f9110ecbe', expand=False)
version('1.11.0', sha256='3184df60a46917e92140a299aecb54591b19df490a3f4f571ff1f92c5e70a715', expand=False)
version('1.8.0', sha256='562300095db6c4dea7b052e255c53dd95c4c3d0589a828b545497fe1ca7e9677', expand=False)
@@ -19,6 +20,11 @@ class PyAzuremlTrainAutomlClient(Package):
depends_on('python@3.5:3.999', type=('build', 'run'))
depends_on('py-pip', type='build')
+ depends_on('py-azureml-automl-core@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-core@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-dataset-runtime@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-telemetry@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+
depends_on('py-azureml-automl-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-dataset-runtime@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azureml-train-core/package.py b/var/spack/repos/builtin/packages/py-azureml-train-core/package.py
index b15cd2e82b..0109a28056 100644
--- a/var/spack/repos/builtin/packages/py-azureml-train-core/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-train-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,7 @@ class PyAzuremlTrainCore(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml_train_core/azureml_train_core-1.11.0-py3-none-any.whl"
+ version('1.23.0', sha256='5c384ea0bea3ecd8bf2a1832dda906fd183cf2a03ad3372cb824ce8fa417979e', expand=False)
version('1.11.0', sha256='1b5fd813d21e75cd522d3a078eba779333980a309bcff6fc72b74ddc8e7a26f1', expand=False)
version('1.8.0', sha256='5a8d90a08d4477527049d793feb40d07dc32fafc0e4e57b4f0729d3c50b408a2', expand=False)
@@ -18,6 +19,10 @@ class PyAzuremlTrainCore(Package):
depends_on('python@3.5:3.999', type=('build', 'run'))
depends_on('py-pip', type='build')
+ depends_on('py-azureml-train-restclients-hyperdrive@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-core@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+ depends_on('py-azureml-telemetry@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+
depends_on('py-azureml-train-restclients-hyperdrive@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-telemetry@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azureml-train-restclients-hyperdrive/package.py b/var/spack/repos/builtin/packages/py-azureml-train-restclients-hyperdrive/package.py
index 36ce557724..a7159acaf9 100644
--- a/var/spack/repos/builtin/packages/py-azureml-train-restclients-hyperdrive/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-train-restclients-hyperdrive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,7 @@ class PyAzuremlTrainRestclientsHyperdrive(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml_train_restclients_hyperdrive/azureml_train_restclients_hyperdrive-1.11.0-py3-none-any.whl"
+ version('1.23.0', sha256='8ecee0cdb92a4a431b778ebcc7f9fe7c5bf63ea4cae9caa687980bc34ae3a42c', expand=False)
version('1.11.0', sha256='8bc6f9676a9f75e6ee06d201c418ea904c24e854f26cf799b08c259c3ac92d13', expand=False)
version('1.8.0', sha256='1633c7eb0fd96714f54f72072ccf1c5ee1ef0a8ba52680793f20d27e0fd43c87', expand=False)
diff --git a/var/spack/repos/builtin/packages/py-azureml-train/package.py b/var/spack/repos/builtin/packages/py-azureml-train/package.py
index c8917a5700..8f9f868d8f 100644
--- a/var/spack/repos/builtin/packages/py-azureml-train/package.py
+++ b/var/spack/repos/builtin/packages/py-azureml-train/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class PyAzuremlTrain(Package):
homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/"
url = "https://pypi.io/packages/py3/a/azureml_train/azureml_train-1.11.0-py3-none-any.whl"
+ version('1.23.0', sha256='e16cb8673d9c9c70966c37c7362ceed3514e9797b0816c0aa449730da3b9c857', expand=False)
version('1.11.0', sha256='7800a3067979972b976c81082dc509e23c04405129cc1fdef0f9cd7895bcafc7', expand=False)
version('1.8.0', sha256='124e5b7d8d64bac61db022f305bd31c25e57fdcb4be93eefd4244a04a13deab3', expand=False)
@@ -19,6 +20,8 @@ class PyAzuremlTrain(Package):
depends_on('python@3.5:3.999', type=('build', 'run'))
depends_on('py-pip', type='build')
+ depends_on('py-azureml-train-core@1.23.0:1.23.999', when='@1.23.0', type=('build', 'run'))
+
depends_on('py-azureml-train-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run'))
depends_on('py-azureml-train-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-babel/package.py b/var/spack/repos/builtin/packages/py-babel/package.py
index f95746fe8f..823b5f3b60 100644
--- a/var/spack/repos/builtin/packages/py-babel/package.py
+++ b/var/spack/repos/builtin/packages/py-babel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,8 @@ class PyBabel(PythonPackage):
internationalizing and localizing Python applications, with an
emphasis on web-based applications."""
- homepage = "http://babel.pocoo.org/en/latest/"
- url = "https://pypi.io/packages/source/B/Babel/Babel-2.7.0.tar.gz"
-
- import_modules = ['babel', 'babel.localtime', 'babel.messages']
+ homepage = "https://babel.pocoo.org/en/latest/"
+ pypi = "Babel/Babel-2.7.0.tar.gz"
version('2.7.0', sha256='e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28')
version('2.6.0', sha256='8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23')
@@ -24,5 +22,3 @@ class PyBabel(PythonPackage):
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-pytz@2015.7:', type=('build', 'run'))
- depends_on('py-pytest', type='test')
- depends_on('py-freezegun', type='test')
diff --git a/var/spack/repos/builtin/packages/py-backcall/package.py b/var/spack/repos/builtin/packages/py-backcall/package.py
index 084f6f833b..77c19b44d8 100644
--- a/var/spack/repos/builtin/packages/py-backcall/package.py
+++ b/var/spack/repos/builtin/packages/py-backcall/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PyBackcall(PythonPackage):
"""Specifications for callback functions passed in to an API"""
homepage = "https://github.com/takluyver/backcall"
- url = "https://pypi.io/packages/source/b/backcall/backcall-0.1.0.tar.gz"
+ pypi = "backcall/backcall-0.1.0.tar.gz"
version('0.1.0', sha256='38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4')
diff --git a/var/spack/repos/builtin/packages/py-backports-abc/package.py b/var/spack/repos/builtin/packages/py-backports-abc/package.py
index 6457b6b320..695768f064 100644
--- a/var/spack/repos/builtin/packages/py-backports-abc/package.py
+++ b/var/spack/repos/builtin/packages/py-backports-abc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-backports-functools-lru-cache/package.py b/var/spack/repos/builtin/packages/py-backports-functools-lru-cache/package.py
index aedc9c9ca7..ec8b9c9de0 100644
--- a/var/spack/repos/builtin/packages/py-backports-functools-lru-cache/package.py
+++ b/var/spack/repos/builtin/packages/py-backports-functools-lru-cache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyBackportsFunctoolsLruCache(PythonPackage):
"""Backport of functools.lru_cache from Python 3.3"""
homepage = "https://github.com/jaraco/backports.functools_lru_cache"
- url = "https://pypi.io/packages/source/b/backports.functools_lru_cache/backports.functools_lru_cache-1.4.tar.gz"
+ pypi = "backports.functools_lru_cache/backports.functools_lru_cache-1.4.tar.gz"
py_namespace = 'backports'
diff --git a/var/spack/repos/builtin/packages/py-backports-lzma/package.py b/var/spack/repos/builtin/packages/py-backports-lzma/package.py
index b13c4167bb..899c33716f 100644
--- a/var/spack/repos/builtin/packages/py-backports-lzma/package.py
+++ b/var/spack/repos/builtin/packages/py-backports-lzma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-backports-shutil-get-terminal-size/package.py b/var/spack/repos/builtin/packages/py-backports-shutil-get-terminal-size/package.py
index 43ea3b0cca..64da7c3c9e 100644
--- a/var/spack/repos/builtin/packages/py-backports-shutil-get-terminal-size/package.py
+++ b/var/spack/repos/builtin/packages/py-backports-shutil-get-terminal-size/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyBackportsShutilGetTerminalSize(PythonPackage):
"""A backport of the get_terminal_size function
from Python 3.3's shutil."""
- homepage = "https://pypi.python.org/pypi/backports.shutil_get_terminal_size"
- url = "https://pypi.io/packages/source/b/backports.shutil_get_terminal_size/backports.shutil_get_terminal_size-1.0.0.tar.gz"
+ pypi = "backports.shutil_get_terminal_size/backports.shutil_get_terminal_size-1.0.0.tar.gz"
py_namespace = 'backports'
diff --git a/var/spack/repos/builtin/packages/py-backports-ssl-match-hostname/package.py b/var/spack/repos/builtin/packages/py-backports-ssl-match-hostname/package.py
index 5a3559edef..977fea79c0 100644
--- a/var/spack/repos/builtin/packages/py-backports-ssl-match-hostname/package.py
+++ b/var/spack/repos/builtin/packages/py-backports-ssl-match-hostname/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyBackportsSslMatchHostname(PythonPackage):
"""The ssl.match_hostname() function from Python 3.5"""
- homepage = "https://pypi.python.org/pypi/backports.ssl_match_hostname"
- url = "https://pypi.io/packages/source/b/backports.ssl_match_hostname/backports.ssl_match_hostname-3.5.0.1.tar.gz"
+ pypi = "backports.ssl_match_hostname/backports.ssl_match_hostname-3.5.0.1.tar.gz"
py_namespace = 'backports'
diff --git a/var/spack/repos/builtin/packages/py-backports-tempfile/package.py b/var/spack/repos/builtin/packages/py-backports-tempfile/package.py
index b3771f02e1..3eefd9587c 100644
--- a/var/spack/repos/builtin/packages/py-backports-tempfile/package.py
+++ b/var/spack/repos/builtin/packages/py-backports-tempfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyBackportsTempfile(PythonPackage):
"""
homepage = "https://github.com/PiDelport/backports.tempfile"
- url = "https://pypi.io/packages/source/b/backports.tempfile/backports.tempfile-1.0.tar.gz"
+ pypi = "backports.tempfile/backports.tempfile-1.0.tar.gz"
version('1.0', sha256='1c648c452e8770d759bdc5a5e2431209be70d25484e1be24876cf2168722c762')
diff --git a/var/spack/repos/builtin/packages/py-backports-weakref/package.py b/var/spack/repos/builtin/packages/py-backports-weakref/package.py
index ef88d79256..8879650884 100644
--- a/var/spack/repos/builtin/packages/py-backports-weakref/package.py
+++ b/var/spack/repos/builtin/packages/py-backports-weakref/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyBackportsWeakref(PythonPackage):
"""Backports of new features in Python's weakref module"""
homepage = "https://github.com/PiDelport/backports.weakref"
- url = "https://pypi.io/packages/source/b/backports.weakref/backports.weakref-1.0.post1.tar.gz"
+ pypi = "backports.weakref/backports.weakref-1.0.post1.tar.gz"
version('1.0.post1', sha256='bc4170a29915f8b22c9e7c4939701859650f2eb84184aee80da329ac0b9825c2', preferred=True)
version('1.0rc1', sha256='8813bf712a66b3d8b85dc289e1104ed220f1878cf981e2fe756dfaabe9a82892')
diff --git a/var/spack/repos/builtin/packages/py-bandit/package.py b/var/spack/repos/builtin/packages/py-bandit/package.py
new file mode 100644
index 0000000000..f7408ec280
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-bandit/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyBandit(PythonPackage):
+ """Security oriented static analyser for python code."""
+
+ homepage = "https://bandit.readthedocs.io/en/latest/"
+ pypi = "bandit/bandit-1.7.0.tar.gz"
+
+ version('1.7.0', sha256='8a4c7415254d75df8ff3c3b15cfe9042ecee628a1e40b44c15a98890fbfc2608')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-pbr@2.0.0:', type='build')
+ depends_on('py-gitpython@1.0.1:', type=('build', 'run'))
+ depends_on('py-pyyaml@5.3.1:', type=('build', 'run'))
+ depends_on('py-six@1.10.0:', type=('build', 'run'))
+ depends_on('py-stevedore@1.20.0:', type=('build', 'run'))
+ depends_on('py-colorama@0.3.9:', when='platform=win32', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-basemap/package.py b/var/spack/repos/builtin/packages/py-basemap/package.py
index 95dda66b30..6ad56883d6 100644
--- a/var/spack/repos/builtin/packages/py-basemap/package.py
+++ b/var/spack/repos/builtin/packages/py-basemap/package.py
@@ -1,18 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PyBasemap(PythonPackage):
"""The matplotlib basemap toolkit is a library for plotting
2D data on maps in Python."""
url = 'https://github.com/matplotlib/basemap/archive/v1.2.0rel.tar.gz'
- homepage = "http://matplotlib.org/basemap/"
+ homepage = "https://matplotlib.org/basemap/"
version('1.2.1', sha256='3fb30424f18cd4ffd505e30fd9c810ae81b999bb92f950c76553e1abc081faa7')
version('1.2.0', sha256='bd5bf305918a2eb675939873b735238f9e3dfe6b5c290e37c41e5b082ff3639a')
diff --git a/var/spack/repos/builtin/packages/py-bash-kernel/package.py b/var/spack/repos/builtin/packages/py-bash-kernel/package.py
new file mode 100644
index 0000000000..8d2b28af6b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-bash-kernel/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyBashKernel(PythonPackage):
+ """A Jupyter kernel for bash."""
+
+ homepage = "https://github.com/takluyver/bash_kernel"
+ pypi = "bash_kernel/bash_kernel-0.7.2.tar.gz"
+
+ version('0.7.2', sha256='a08c84eddd8179de5234105821fd5cc210015671a0bd3cd0bc4f631c475e1670')
+
+ depends_on('py-pexpect@4.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py b/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py
index 92cd2b6d72..891aa4084a 100644
--- a/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py
+++ b/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -29,5 +29,3 @@ class PyBasisSetExchange(PythonPackage):
depends_on('py-jsonschema', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('python@3:', type=('build', 'run'))
- depends_on('py-pytest@4.0:', type='test')
- depends_on('py-pytest-cov', type='test')
diff --git a/var/spack/repos/builtin/packages/py-batchspawner/package.py b/var/spack/repos/builtin/packages/py-batchspawner/package.py
new file mode 100644
index 0000000000..5169641049
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-batchspawner/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 PyBatchspawner(PythonPackage):
+ """This is a custom spawner for Jupyterhub that is designed for
+ installations on clusters using batch scheduling software."""
+
+ homepage = "https://github.com/jupyterhub/batchspawner"
+ pypi = "batchspawner/batchspawner-1.1.0.tar.gz"
+
+ version('1.1.0', sha256='9bae72f7c1bd9bb11aa58ecc3bc9fae5475a10fdd92dc0c0d67fa7eb95c9dd3a')
+
+ depends_on('python@3.3:3.999', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-async-generator@1.8:', type=('build', 'run'))
+ depends_on('py-jinja2', type=('build', 'run'))
+ depends_on('py-jupyterhub@0.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-bayesian-optimization/package.py b/var/spack/repos/builtin/packages/py-bayesian-optimization/package.py
new file mode 100644
index 0000000000..6c21738d7a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-bayesian-optimization/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyBayesianOptimization(PythonPackage):
+ """Pure Python implementation of bayesian global
+ optimization with gaussian processes."""
+
+ homepage = "https://github.com/fmfn/BayesianOptimization"
+ pypi = 'bayesian-optimization/bayesian-optimization-1.2.0.tar.gz'
+
+ version('1.2.0', sha256='c2fd3af4b6cc24ee1c145295b2a900ffb9b455cad924e8185a8d5784712bc935')
+
+ depends_on('py-setuptools', type='build')
+ depends_on("py-numpy@1.9.0:", type=('build', 'run'))
+ depends_on("py-scipy@0.14.0:", type=('build', 'run'))
+ depends_on("py-scikit-learn@0.18.0:", type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-bcbio-gff/package.py b/var/spack/repos/builtin/packages/py-bcbio-gff/package.py
index 68e6abd7a3..4bb8588792 100644
--- a/var/spack/repos/builtin/packages/py-bcbio-gff/package.py
+++ b/var/spack/repos/builtin/packages/py-bcbio-gff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyBcbioGff(PythonPackage):
"""Read and write Generic Feature Format (GFF) with Biopython
integration."""
- homepage = "https://pypi.python.org/pypi/bcbio-gff/0.6.2"
- url = "https://pypi.io/packages/source/b/bcbio-gff/bcbio-gff-0.6.2.tar.gz"
+ pypi = "bcbio-gff/bcbio-gff-0.6.2.tar.gz"
version('0.6.2', sha256='c682dc46a90e9fdb124ab5723797a5f71b2e3534542ceff9f6572b64b9814e68')
diff --git a/var/spack/repos/builtin/packages/py-bcolz/package.py b/var/spack/repos/builtin/packages/py-bcolz/package.py
index 74791dcdc4..cab6554f96 100644
--- a/var/spack/repos/builtin/packages/py-bcolz/package.py
+++ b/var/spack/repos/builtin/packages/py-bcolz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class PyBcolz(PythonPackage):
"""
homepage = "https://github.com/Blosc/bcolz"
- url = "https://pypi.io/packages/source/b/bcolz/bcolz-1.2.1.tar.gz"
+ pypi = "bcolz/bcolz-1.2.1.tar.gz"
version('1.2.1', sha256='c017d09bb0cb5bbb07f2ae223a3f3638285be3b574cb328e91525b2880300bd1')
diff --git a/var/spack/repos/builtin/packages/py-bcrypt/package.py b/var/spack/repos/builtin/packages/py-bcrypt/package.py
index 1b64063991..f0e3513fc9 100644
--- a/var/spack/repos/builtin/packages/py-bcrypt/package.py
+++ b/var/spack/repos/builtin/packages/py-bcrypt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-beancount/package.py b/var/spack/repos/builtin/packages/py-beancount/package.py
new file mode 100644
index 0000000000..92460452fa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-beancount/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyBeancount(PythonPackage):
+ """A double-entry bookkeeping computer language that lets you define
+ financial transaction records in a text file, read them in memory,
+ generate a variety of reports from them, and provides a web
+ interface.."""
+
+ homepage = "http://furius.ca/beancount/"
+ pypi = "beancount/beancount-2.3.3.tar.gz"
+
+ version('2.3.3', sha256='d9a29839ea867d1dda7af1f4bf5d3959aa7c1574cd4a0bc86f69ee64c555c71c')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build'))
+
+ depends_on('py-bottle', type=('build', 'run'))
+ depends_on('py-lxml+htmlsoup', type=('build', 'run'))
+ depends_on('py-ply', type=('build', 'run'))
+ depends_on('py-python-dateutil', type=('build', 'run'))
+ depends_on('py-python-magic', type=('build', 'run'))
+ depends_on('py-beautifulsoup4', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-chardet', type=('build', 'run'))
+ depends_on('py-google-api-python-client', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py
index 5544150207..ac89f255f5 100644
--- a/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py
+++ b/var/spack/repos/builtin/packages/py-beautifulsoup4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,12 +12,21 @@ class PyBeautifulsoup4(PythonPackage):
of navigating, searching, and modifying the parse tree."""
homepage = "https://www.crummy.com/software/BeautifulSoup"
- url = "https://pypi.io/packages/source/b/beautifulsoup4/beautifulsoup4-4.8.0.tar.gz"
+ pypi = "beautifulsoup4/beautifulsoup4-4.8.0.tar.gz"
+ version('4.9.3', sha256='84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25')
version('4.8.0', sha256='25288c9e176f354bf277c0a10aa96c782a6a18a17122dba2e8cec4a97e03343b')
version('4.5.3', sha256='b21ca09366fa596043578fd4188b052b46634d22059e68dd0077d9ee77e08a3e')
version('4.5.1', sha256='3c9474036afda9136aac6463def733f81017bf9ef3510d25634f335b0c87f5e1')
version('4.4.1', sha256='87d4013d0625d4789a4f56b8d79a04d5ce6db1152bb65f1d39744f7709a366b4')
+ variant('lxml', default=False, description='Enable lxml parser')
+ variant('html5lib', default=False, description='Enable html5lib parser')
+
depends_on('py-setuptools', type='build')
+ depends_on('py-soupsieve@1.3:', when='@4.9.0: ^python@3:', type=('build', 'run'))
+ depends_on('py-soupsieve@1.3:1.99', when='@4.9.0: ^python@:2.8', type=('build', 'run'))
depends_on('py-soupsieve@1.2:', when='@4.7.0:', type=('build', 'run'))
+
+ depends_on('py-lxml', when='+lxml', type=('build', 'run'))
+ depends_on('py-html5lib', when='+html5lib', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-beniget/package.py b/var/spack/repos/builtin/packages/py-beniget/package.py
new file mode 100644
index 0000000000..a9a58e5ca0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-beniget/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyBeniget(PythonPackage):
+ """Extract semantic information about static Python code."""
+
+ homepage = "https://github.com/serge-sans-paille/beniget/"
+ pypi = "beniget/beniget-0.3.0.tar.gz"
+
+ version('0.4.0', sha256='72bbd47b1ae93690f5fb2ad3902ce1ae61dcd868ce6cfbf33e9bad71f9ed8749')
+ version('0.3.0', sha256='062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1')
+ version('0.2.3', sha256='350422b0598c92fcc5f8bcaf77f2a62f6744fb8f2fb495b10a50176c1283639f')
+
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-gast@0.5.0:0.5.999', when='@0.4.0:', type=('build', 'run'))
+ depends_on('py-gast@0.4.0:0.4.999', when='@0.3.0:0.3.999', type=('build', 'run'))
+ depends_on('py-gast@0.3.3:0.3.999', when='@:0.2.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-bids-validator/package.py b/var/spack/repos/builtin/packages/py-bids-validator/package.py
new file mode 100644
index 0000000000..6d388424b1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-bids-validator/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyBidsValidator(PythonPackage):
+ """Validator for the Brain Imaging Data Structure"""
+
+ homepage = "https://github.com/bids-standard/bids-validator"
+ pypi = "bids-validator/bids-validator-1.7.2.tar.gz"
+
+ version('1.7.2', sha256='12398831a3a3a2ed7c67e693cf596610c23dd23e0889bfeae0830bbd1d41e5b9')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-bigfloat/package.py b/var/spack/repos/builtin/packages/py-bigfloat/package.py
new file mode 100644
index 0000000000..075f7fa000
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-bigfloat/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyBigfloat(PythonPackage):
+ """Arbitrary-precision correctly-rounded floating-point arithmetic, via MPFR."""
+
+ homepage = "https://github.com/mdickinson/bigfloat"
+ pypi = "bigfloat/bigfloat-0.4.0.tar.gz"
+
+ version('0.4.0', sha256='58b96bde872aca5989d13d82eba3acf2aa1b94e22117dd72a16ba5911b0c0cb8')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('gmp', type='link')
+ depends_on('mpfr', type=('build', 'link'))
diff --git a/var/spack/repos/builtin/packages/py-billiard/package.py b/var/spack/repos/builtin/packages/py-billiard/package.py
index 93d717a9f9..3a4d4148af 100644
--- a/var/spack/repos/builtin/packages/py-billiard/package.py
+++ b/var/spack/repos/builtin/packages/py-billiard/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyBilliard(PythonPackage):
"""Python multiprocessing fork with improvements and bugfixes"""
- homepage = "https://pypi.org/project/billiard/"
- url = "https://pypi.io/packages/source/b/billiard/billiard-3.5.0.5.tar.gz"
+ pypi = "billiard/billiard-3.5.0.5.tar.gz"
version('3.6.3.0', sha256='d91725ce6425f33a97dfa72fb6bfef0e47d4652acd98a032bd1a7fbf06d5fa6a')
version('3.6.1.0', sha256='b8809c74f648dfe69b973c8e660bcec00603758c9db8ba89d7719f88d5f01f26')
diff --git a/var/spack/repos/builtin/packages/py-binaryornot/package.py b/var/spack/repos/builtin/packages/py-binaryornot/package.py
index 9b096c9def..de4922c501 100644
--- a/var/spack/repos/builtin/packages/py-binaryornot/package.py
+++ b/var/spack/repos/builtin/packages/py-binaryornot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-bintrees/package.py b/var/spack/repos/builtin/packages/py-bintrees/package.py
index b832d60d87..7fbc6e2f26 100644
--- a/var/spack/repos/builtin/packages/py-bintrees/package.py
+++ b/var/spack/repos/builtin/packages/py-bintrees/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyBintrees(PythonPackage):
"""
homepage = "https://github.com/mozman/bintrees"
- url = "https://pypi.io/packages/source/b/bintrees/bintrees-2.0.7.zip"
+ pypi = "bintrees/bintrees-2.0.7.zip"
version('2.0.7', sha256='60675e6602cef094abcd38bf4aecc067d78ae2d5e1645615c789724542d11270')
diff --git a/var/spack/repos/builtin/packages/py-binwalk/package.py b/var/spack/repos/builtin/packages/py-binwalk/package.py
index fce4309425..b92a2751c5 100644
--- a/var/spack/repos/builtin/packages/py-binwalk/package.py
+++ b/var/spack/repos/builtin/packages/py-binwalk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyBinwalk(PythonPackage):
and extracting firmware images."""
homepage = "https://github.com/devttys0/binwalk"
- url = "https://pypi.io/packages/source/b/binwalk/binwalk-2.1.0.tar.gz"
+ pypi = "binwalk/binwalk-2.1.0.tar.gz"
version('2.1.0', sha256='218c8045c6cb3ed6e21814fb89cdb913808b02dfe5a6cc30f85f4a59e8129f6b')
diff --git a/var/spack/repos/builtin/packages/py-biom-format/package.py b/var/spack/repos/builtin/packages/py-biom-format/package.py
index fae9305010..a298bff954 100644
--- a/var/spack/repos/builtin/packages/py-biom-format/package.py
+++ b/var/spack/repos/builtin/packages/py-biom-format/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,20 +11,22 @@ class PyBiomFormat(PythonPackage):
a general-use format for representing biological sample by observation
contingency tables."""
- homepage = "https://pypi.python.org/pypi/biom-format/2.1.6"
- url = "https://pypi.io/packages/source/b/biom-format/biom-format-2.1.6.tar.gz"
+ pypi = "biom-format/biom-format-2.1.6.tar.gz"
+ version('2.1.10', sha256='f5a277a8144f0b114606852c42f657b9cfde44b3cefa0b2638ab1c1d5e1d0488')
+ version('2.1.9', sha256='18a6e4d4b4b2a6bf2d5544fa357ad168bedeac93f0837015ef9c72f41fa89491')
+ version('2.1.7', sha256='b47e54282ef13cddffdb00aea9183a87175a2372c91a915259086a3f444c42f4')
version('2.1.6', sha256='8eefc275a85cc937f6d6f408d91b7b45eae854cd5d1cbda411a3af51f5b49b0d')
- variant('h5py', default=True, description='For use with BIOM 2.0+ files')
-
+ depends_on('python@2.7:', type=('build', 'run'))
+ depends_on('python@3:', type=('build', 'run'), when='@2.1.9:')
depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-cython', type='build')
- depends_on('py-h5py', type=('build', 'run'), when='+h5py')
- depends_on('py-click', type=('build', 'run'))
- depends_on('py-numpy@1.3.0:', type=('build', 'run'))
+ depends_on('py-cython@0.29:', type='build')
+ depends_on('py-h5py', type=('build', 'run'))
+ depends_on('py-click', type=('build', 'run'), when='@2.1.5:')
+ depends_on('py-numpy@1.9.2:', type=('build', 'run'))
depends_on('py-future@0.16.0:', type=('build', 'run'))
- depends_on('py-scipy@0.13.0:', type=('build', 'run'))
- depends_on('py-pandas@0.19.2:', type=('build', 'run'))
+ depends_on('py-scipy@1.3.1:', type=('build', 'run'))
+ depends_on('py-pandas@0.20.0:', type=('build', 'run'))
depends_on('py-six@1.10.0:', type=('build', 'run'))
- depends_on('py-pyqi', type=('build', 'run'))
+ depends_on('py-pyqi', type=('build', 'run'), when='^python@:2')
diff --git a/var/spack/repos/builtin/packages/py-biomine/package.py b/var/spack/repos/builtin/packages/py-biomine/package.py
index 8326bf8e99..8275ab3c48 100644
--- a/var/spack/repos/builtin/packages/py-biomine/package.py
+++ b/var/spack/repos/builtin/packages/py-biomine/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-biopandas/package.py b/var/spack/repos/builtin/packages/py-biopandas/package.py
index 720bd34d28..8dfdeb5bab 100644
--- a/var/spack/repos/builtin/packages/py-biopandas/package.py
+++ b/var/spack/repos/builtin/packages/py-biopandas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyBiopandas(PythonPackage):
"""Working with molecular structures in pandas DataFrames"""
- homepage = "http://rasbt.github.io/biopandas"
- url = "https://pypi.io/packages/source/b/biopandas/biopandas-0.2.5.tar.gz"
+ homepage = "https://rasbt.github.io/biopandas"
+ pypi = "biopandas/biopandas-0.2.5.tar.gz"
git = "https://github.com/rasbt/biopandas.git"
# Note that the source package on PyPi is broken as it
diff --git a/var/spack/repos/builtin/packages/py-biopython/package.py b/var/spack/repos/builtin/packages/py-biopython/package.py
index df5694de42..e40eee68f0 100644
--- a/var/spack/repos/builtin/packages/py-biopython/package.py
+++ b/var/spack/repos/builtin/packages/py-biopython/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,12 +12,14 @@ class PyBiopython(PythonPackage):
bioinformatics.
"""
- homepage = "http://biopython.org/wiki/Main_Page"
- url = "http://biopython.org/DIST/biopython-1.65.tar.gz"
+ homepage = "https://biopython.org/wiki/Main_Page"
+ url = "https://biopython.org/DIST/biopython-1.65.tar.gz"
+ version('1.78', sha256='1ee0a0b6c2376680fea6642d5080baa419fd73df104a62d58a8baf7a8bbe4564')
version('1.73', sha256='70c5cc27dc61c23d18bb33b6d38d70edc4b926033aea3b7434737c731c94a5e0')
version('1.70', sha256='4a7c5298f03d1a45523f32bae1fffcff323ea9dce007fb1241af092f5ab2e45b')
version('1.65', sha256='463cc81db84e9bfcdfb15629511c81ed556a6c0287e670dbfe80f03c65d2a88e')
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-setuptools', type='build')
+ depends_on('python@3.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-bitarray/package.py b/var/spack/repos/builtin/packages/py-bitarray/package.py
index e0efb22763..db9523c7f1 100644
--- a/var/spack/repos/builtin/packages/py-bitarray/package.py
+++ b/var/spack/repos/builtin/packages/py-bitarray/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyBitarray(PythonPackage):
"""Efficient array of booleans - C extension"""
- homepage = "https://pypi.python.org/pypi/bitarray"
- url = "https://pypi.io/packages/source/b/bitarray/bitarray-0.8.1.tar.gz"
+ pypi = "bitarray/bitarray-0.8.1.tar.gz"
version('0.8.1', sha256='7da501356e48a83c61f479393681c1bc4b94e5a34ace7e08cb29e7dd9290ab18')
diff --git a/var/spack/repos/builtin/packages/py-bitstring/package.py b/var/spack/repos/builtin/packages/py-bitstring/package.py
index 7d96b435dd..e1e7f55fce 100644
--- a/var/spack/repos/builtin/packages/py-bitstring/package.py
+++ b/var/spack/repos/builtin/packages/py-bitstring/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PyBitstring(PythonPackage):
"""Simple construction, analysis and modification of binary data."""
homepage = "http://pythonhosted.org/bitstring"
- url = "https://pypi.io/packages/source/b/bitstring/bitstring-3.1.5.zip"
+ pypi = "bitstring/bitstring-3.1.5.zip"
version('3.1.5', sha256='c163a86fcef377c314690051885d86b47419e3e1770990c212e16723c1c08faa')
diff --git a/var/spack/repos/builtin/packages/py-black/package.py b/var/spack/repos/builtin/packages/py-black/package.py
index 913b2592c8..872ab07b39 100644
--- a/var/spack/repos/builtin/packages/py-black/package.py
+++ b/var/spack/repos/builtin/packages/py-black/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,18 +13,55 @@ class PyBlack(PythonPackage):
"""
homepage = "https://github.com/psf/black"
- url = "https://pypi.io/packages/source/b/black/black-18.9b0.tar.gz"
+ pypi = "black/black-20.8b1.tar.gz"
+ version('21.7b0', sha256='c8373c6491de9362e39271630b65b964607bc5c79c83783547d76c839b3aa219')
+ version('21.6b0', sha256='dc132348a88d103016726fe360cb9ede02cecf99b76e3660ce6c596be132ce04')
+ version('21.4b0', sha256='915d916c48646dbe8040d5265cff7111421a60a3dfe7f7e07273176a57c24a34')
+ version('20.8b1', sha256='1c02557aa099101b9d21496f8a914e9ed2222ef70336404eeeac8edba836fbea')
version('19.3b0', sha256='68950ffd4d9169716bcb8719a56c07a2f4485354fec061cdd5910aa07369731c')
version('18.9b0', sha256='e030a9a28f542debc08acceb273f228ac422798e5215ba2a791a6ddeaaca22a5')
- depends_on('python@3.6.0:')
+ variant('colorama', default=False, description='enable colorama support')
+ variant('d', default=False, description='enable blackd HTTP server')
+ variant('python2', default=False, description='enable python 2 formatting support')
+
+ depends_on('python@3.6.0:', type=('build', 'run'))
+ depends_on('python@3.6.2:', when='@21:', type=('build', 'run'))
# Needs setuptools at runtime so that `import pkg_resources` succeeds
# See #8843 and #8689 for examples of setuptools added as a runtime dep
depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-setuptools-scm', when='@19.10:', type='build')
# Translated from black's setup.py:
# https://github.com/ambv/black/blob/master/setup.py
- depends_on('py-attrs@18.1.0:', type=('build', 'run'))
depends_on('py-click@6.5:', type=('build', 'run'))
+ depends_on('py-click@7.1.2:', when='@20.8b1:', type=('build', 'run'))
+ depends_on('py-attrs@18.1.0:', when='@:20.8b0', type=('build', 'run'))
depends_on('py-appdirs', type=('build', 'run'))
- depends_on('py-toml@0.9.4:', type=('build', 'run'))
+ depends_on('py-toml@0.9.4:', when='@:19', type=('build', 'run'))
+ depends_on('py-toml@0.10.1:', when='@20:21.6', type=('build', 'run'))
+ depends_on('py-tomli@0.2.6:1.999', when='@21.7:', type=('build', 'run'))
+ depends_on('py-typed-ast@1.4.0:', when='@19.10b0:20', type=('build', 'run'))
+ depends_on('py-typed-ast@1.4.2:', when='@21: ^python@:3.7.999', type=('build', 'run'))
+ depends_on('py-regex@2020.1.8:', when='@20.8b0:', type=('build', 'run'))
+ depends_on('py-pathspec@0.6:0.999', when='@19.10b0:', type=('build', 'run'))
+ depends_on('py-pathspec@0.8.1:0.999', when='@21.6:', type=('build', 'run'))
+ depends_on('py-dataclasses@0.6:', when='@20.8b0:^python@:3.6', type=('build', 'run'))
+ depends_on('py-typing-extensions@3.7.4:', when='@20.8b0:20.999', type=('build', 'run'))
+ depends_on('py-typing-extensions@3.7.4:', when='@21: ^python@:3.7.999', type=('build', 'run'))
+ depends_on('py-mypy-extensions@0.4.3:', when='@20.8b0:', type=('build', 'run'))
+ depends_on('py-colorama@0.4.3:', when='+colorama', type=('build', 'run'))
+ depends_on('py-aiohttp@3.3.2:', when='+d', type=('build', 'run'))
+ depends_on('py-aiohttp@3.6.0:', when='@21.6: +d', type=('build', 'run'))
+ depends_on('py-aiohttp-cors', when='+d', type=('build', 'run'))
+ depends_on('py-aiohttp-cors@0.4.0:', when='@21.6: +d', type=('build', 'run'))
+ depends_on('py-typed-ast@1.4.2:', when='+python2', type=('build', 'run'))
+
+ @property
+ def import_modules(self):
+ modules = ['blib2to3', 'blib2to3.pgen2', 'black']
+
+ if '+d' in self.spec:
+ modules.append('blackd')
+
+ return modules
diff --git a/var/spack/repos/builtin/packages/py-bleach/package.py b/var/spack/repos/builtin/packages/py-bleach/package.py
index bf01b9f223..5333e6afee 100644
--- a/var/spack/repos/builtin/packages/py-bleach/package.py
+++ b/var/spack/repos/builtin/packages/py-bleach/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,13 @@ from spack import *
class PyBleach(PythonPackage):
"""An easy whitelist-based HTML-sanitizing tool."""
- homepage = "http://github.com/mozilla/bleach"
- url = "https://pypi.io/packages/source/b/bleach/bleach-3.1.0.tar.gz"
+ homepage = "https://github.com/mozilla/bleach"
+ pypi = "bleach/bleach-3.1.0.tar.gz"
version('3.1.0', sha256='3fdf7f77adcf649c9911387df51254b813185e32b2c6619f690b593a617e19fa')
version('1.5.0', sha256='978e758599b54cd3caa2e160d74102879b230ea8dc93871d0783721eef58bc65')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
- depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-six@1.9.0:', type=('build', 'run'))
depends_on('py-webencodings', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-blessed/package.py b/var/spack/repos/builtin/packages/py-blessed/package.py
index 45b5b3b84c..3ce9f3e8be 100644
--- a/var/spack/repos/builtin/packages/py-blessed/package.py
+++ b/var/spack/repos/builtin/packages/py-blessed/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyBlessed(PythonPackage):
Python."""
homepage = "https://github.com/jquast/blessed"
- url = "https://pypi.io/packages/source/b/blessed/blessed-1.15.0.tar.gz"
+ pypi = "blessed/blessed-1.15.0.tar.gz"
version('1.15.0', sha256='777b0b6b5ce51f3832e498c22bc6a093b6b5f99148c7cbf866d26e2dec51ef21')
diff --git a/var/spack/repos/builtin/packages/py-blessings/package.py b/var/spack/repos/builtin/packages/py-blessings/package.py
index 9f563b308e..4dd301ece3 100644
--- a/var/spack/repos/builtin/packages/py-blessings/package.py
+++ b/var/spack/repos/builtin/packages/py-blessings/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyBlessings(PythonPackage):
"""A nicer, kinder way to write to the terminal """
homepage = "https://github.com/erikrose/blessings"
- url = "https://pypi.io/packages/source/b/blessings/blessings-1.6.tar.gz"
+ pypi = "blessings/blessings-1.6.tar.gz"
version('1.6', sha256='edc5713061f10966048bf6b40d9a514b381e0ba849c64e034c4ef6c1847d3007')
diff --git a/var/spack/repos/builtin/packages/py-blinker/package.py b/var/spack/repos/builtin/packages/py-blinker/package.py
index dd77fedbe0..26a0071fba 100644
--- a/var/spack/repos/builtin/packages/py-blinker/package.py
+++ b/var/spack/repos/builtin/packages/py-blinker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyBlinker(PythonPackage):
"""Fast, simple object-to-object and broadcast signaling"""
homepage = "https://pythonhosted.org/blinker/"
- url = "https://pypi.io/packages/source/b/blinker/blinker-1.4.tar.gz"
+ pypi = "blinker/blinker-1.4.tar.gz"
version('1.4', sha256='471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6')
diff --git a/var/spack/repos/builtin/packages/py-blis/package.py b/var/spack/repos/builtin/packages/py-blis/package.py
index ce7f6c4c65..a296d0933a 100644
--- a/var/spack/repos/builtin/packages/py-blis/package.py
+++ b/var/spack/repos/builtin/packages/py-blis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,9 @@ class PyBlis(PythonPackage):
without the tears"""
homepage = "https://github.com/explosion/cython-blis"
- url = "https://pypi.io/packages/source/b/blis/blis-0.4.1.tar.gz"
+ pypi = "blis/blis-0.4.1.tar.gz"
version('0.4.1', sha256='d69257d317e86f34a7f230a2fd1f021fd2a1b944137f40d8cdbb23bd334cd0c4')
depends_on('py-setuptools', type='build')
depends_on('py-numpy@1.15:', type=('build', 'run'))
- depends_on('py-hypothesis', type='test')
diff --git a/var/spack/repos/builtin/packages/py-blosc/package.py b/var/spack/repos/builtin/packages/py-blosc/package.py
index da185302ff..841e3ad5a3 100644
--- a/var/spack/repos/builtin/packages/py-blosc/package.py
+++ b/var/spack/repos/builtin/packages/py-blosc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,5 +19,3 @@ class PyBlosc(PythonPackage):
depends_on('python@3.6:', type=('build', 'run'))
depends_on('py-scikit-build', type='build')
# depends_on('c-blosc') # shipped internally
- depends_on('py-numpy', type='test')
- depends_on('py-psutil', type='test')
diff --git a/var/spack/repos/builtin/packages/py-bmap-tools/package.py b/var/spack/repos/builtin/packages/py-bmap-tools/package.py
index 9a3fe50d4b..e955abdd4a 100644
--- a/var/spack/repos/builtin/packages/py-bmap-tools/package.py
+++ b/var/spack/repos/builtin/packages/py-bmap-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-bokeh/package.py b/var/spack/repos/builtin/packages/py-bokeh/package.py
index 7b42fde368..05399e488f 100644
--- a/var/spack/repos/builtin/packages/py-bokeh/package.py
+++ b/var/spack/repos/builtin/packages/py-bokeh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,13 @@ from spack import *
class PyBokeh(PythonPackage):
"""Statistical and novel interactive HTML plots for Python"""
- homepage = "http://github.com/bokeh/bokeh"
- url = "https://pypi.io/packages/source/b/bokeh/bokeh-0.12.2.tar.gz"
+ homepage = "https://github.com/bokeh/bokeh"
+ pypi = "bokeh/bokeh-0.12.2.tar.gz"
version('1.3.4', sha256='e2d97bed5b199a10686486001fed5c854e4c04ebe28859923f27c52b93904754')
version('0.12.2', sha256='0a840f6267b6d342e1bd720deee30b693989538c49644142521d247c0f2e6939')
+ depends_on('py-setuptools', type='build', when="@1.3.4:")
depends_on('python@2.6:', type=('build', 'run'), when='@0.12.2')
depends_on('python@2.7:', type=('build', 'run'), when='@1.3.4:')
depends_on('py-requests@1.2.3:', type=('build', 'run'), when='@0.12.2')
diff --git a/var/spack/repos/builtin/packages/py-boltons/package.py b/var/spack/repos/builtin/packages/py-boltons/package.py
index 3ecf04e2c1..0513e82575 100644
--- a/var/spack/repos/builtin/packages/py-boltons/package.py
+++ b/var/spack/repos/builtin/packages/py-boltons/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyBoltons(PythonPackage):
Otherwise known as, "everyone's util.py," but cleaned up and tested.
"""
homepage = "https://boltons.readthedocs.io/"
- url = "https://pypi.io/packages/source/b/boltons/boltons-16.5.1.tar.gz"
+ pypi = "boltons/boltons-16.5.1.tar.gz"
version('16.5.1', sha256='fcded58596fa79bd1ada4488178e79fd11c7cb449f29ff9a6532411fb2db19b7')
diff --git a/var/spack/repos/builtin/packages/py-boom-boot-manager/package.py b/var/spack/repos/builtin/packages/py-boom-boot-manager/package.py
index 643d5ddb7c..77e3a0992c 100644
--- a/var/spack/repos/builtin/packages/py-boom-boot-manager/package.py
+++ b/var/spack/repos/builtin/packages/py-boom-boot-manager/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-boto/package.py b/var/spack/repos/builtin/packages/py-boto/package.py
index 005ba180ed..7b57a1cc45 100644
--- a/var/spack/repos/builtin/packages/py-boto/package.py
+++ b/var/spack/repos/builtin/packages/py-boto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-boto3/package.py b/var/spack/repos/builtin/packages/py-boto3/package.py
index e31d3b8110..29b679bb59 100644
--- a/var/spack/repos/builtin/packages/py-boto3/package.py
+++ b/var/spack/repos/builtin/packages/py-boto3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,20 +10,26 @@ class PyBoto3(PythonPackage):
"""The AWS SDK for Python."""
homepage = "https://github.com/boto/boto3"
- url = "https://pypi.io/packages/source/b/boto3/boto3-1.10.44.tar.gz"
-
- import_modules = [
- 'boto3', 'boto3.s3', 'boto3.resources', 'boto3.dynamodb',
- 'boto3.docs', 'boto3.ec2'
- ]
+ pypi = "boto3/boto3-1.10.44.tar.gz"
+ version('1.18.12', sha256='596fb9df00a816780db8620d9f62982eb783b3eb63a75947e172101d0785e6aa')
+ version('1.17.27', sha256='fa41987f9f71368013767306d9522b627946a01b4843938a26fb19cc8adb06c0')
version('1.10.44', sha256='adc0c0269bd65967fd528d7cd826304f381d40d94f2bf2b09f58167e5ac05d86')
version('1.10.38', sha256='6cdb063b2ae5ac7b93ded6b6b17e3da1325b32232d5ff56e6800018d4786bba6')
version('1.9.169', sha256='9d8bd0ca309b01265793b7e8d7b88c1df439737d77c8725988f0277bbf58d169')
+ depends_on('python@3.6:', when='@1.18:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.6:', when='@1.17.27', type=('build', 'run'))
+ depends_on('python@2.6:', when='@1.9:1.10', type=('build', 'run'))
depends_on('py-setuptools', type='build')
+ depends_on('py-botocore@1.21.12:1.21.999', when='@1.18.12:', type=('build', 'run'))
+ depends_on('py-botocore@1.20.27:1.20.999', when='@1.17.27', type=('build', 'run'))
depends_on('py-botocore@1.13.44:1.13.999', when='@1.10.44', type=('build', 'run'))
depends_on('py-botocore@1.13.38:1.13.999', when='@1.10.38', type=('build', 'run'))
depends_on('py-botocore@1.12.169:1.12.999', when='@1.9.169', type=('build', 'run'))
+
depends_on('py-jmespath@0.7.1:0.999', type=('build', 'run'))
- depends_on('py-s3transfer@0.2.0:0.2.999', type=('build', 'run'))
+
+ depends_on('py-s3transfer@0.5.0:0.5.999', when='@1.18.12:', type=('build', 'run'))
+ depends_on('py-s3transfer@0.3.0:0.3.999', when='@1.17.27', type=('build', 'run'))
+ depends_on('py-s3transfer@0.2.0:0.2.999', when='@:1.10', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-botocore/package.py b/var/spack/repos/builtin/packages/py-botocore/package.py
index 7b05bf0c72..1d8fa81362 100644
--- a/var/spack/repos/builtin/packages/py-botocore/package.py
+++ b/var/spack/repos/builtin/packages/py-botocore/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,23 +10,32 @@ class PyBotocore(PythonPackage):
"""Low-level, data-driven core of boto 3."""
homepage = "https://github.com/boto/botocore"
- url = "https://pypi.io/packages/source/b/botocore/botocore-1.13.44.tar.gz"
-
- import_modules = ['botocore']
+ pypi = "botocore/botocore-1.13.44.tar.gz"
+ version('1.21.12', sha256='8710d03b9de3e3d94ed410f3e83809ca02050b091100d68c22ff7bf986f29fb6')
+ version('1.20.27', sha256='4477803f07649f4d80b17d054820e7a09bb2cb0792d0decc2812108bc3759c4a')
+ version('1.19.52', sha256='dc5ec23deadbe9327d3c81d03fddf80805c549059baabd80dea605941fe6a221')
version('1.13.44', sha256='a4409008c32a3305b9c469c5cc92edb5b79d6fcbf6f56fe126886b545f0a4f3f')
version('1.13.38', sha256='15766a367f39dba9de3c6296aaa7da31030f08a0117fd12685e7df682d8acee2')
version('1.12.169', sha256='25b44c3253b5ed1c9093efb57ffca440c5099a2d62fa793e8b6c52e72f54b01e')
+ depends_on('python@2.6:', when='@1.12:1.13', type=('build', 'run'))
+ depends_on('python@2.7:', when='@1.19', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.6:', when='@1.20', type=('build', 'run'))
+ depends_on('python@3.6:', when='@1.21:', type=('build', 'run'))
+
depends_on('py-setuptools', type='build')
depends_on('py-jmespath@0.7.1:0.999', type=('build', 'run'))
- depends_on('py-docutils@0.10:0.15', type=('build', 'run'))
+ depends_on('py-docutils@0.10:0.15', type=('build', 'run'), when='@:1.17.999')
depends_on('py-ordereddict@1.1', type=('build', 'run'), when='^python@2.6.0:2.6.999')
depends_on('py-simplejson@3.3.0', type=('build', 'run'), when='^python@2.6.0:2.6.999')
depends_on('py-python-dateutil@2.1:2.999', type=('build', 'run'))
depends_on('py-python-dateutil@2.1:2.6', type=('build', 'run'), when='^python@2.6.0:2.6.999')
- depends_on('py-urllib3@1.20:1.25', type=('build', 'run'))
- depends_on('py-urllib3@1.20:1.23', type=('build', 'run'), when='^python@2.6.0:2.6.999')
- depends_on('py-urllib3@1.20:1.22', type=('build', 'run'), when='^python@3.3.0:3.3.999')
- depends_on('py-mock', type='test')
- depends_on('py-nose', type='test')
+ depends_on('py-urllib3@1.20:1.25', type=('build', 'run'), when='@:1.14.11')
+ depends_on('py-urllib3@1.20:1.23', type=('build', 'run'), when='@:1.13.999 ^python@2.6.0:2.6.999')
+ depends_on('py-urllib3@1.20:1.22', type=('build', 'run'), when='@:1.13.999 ^python@3.3.0:3.3.999')
+ depends_on('py-urllib3@1.20:1.25.7', type=('build', 'run'), when='@1.14.12:1.18.999 ^python@3.4.0:3.4.999')
+ depends_on('py-urllib3@1.20:1.25.999', type=('build', 'run'), when='@1.14.12:1.18.999')
+ depends_on('py-urllib3@1.25.4:1.25.7', type=('build', 'run'), when='@1.19.0: ^python@3.4.0:3.4.999')
+ depends_on('py-urllib3@1.25.4:1.25.999', type=('build', 'run'), when='@1.19.0:1.19.15')
+ depends_on('py-urllib3@1.25.4:1.26.999', type=('build', 'run'), when='@1.19.16:')
diff --git a/var/spack/repos/builtin/packages/py-bottle/package.py b/var/spack/repos/builtin/packages/py-bottle/package.py
index 5301354d8d..e41196bd1a 100644
--- a/var/spack/repos/builtin/packages/py-bottle/package.py
+++ b/var/spack/repos/builtin/packages/py-bottle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-bottleneck/package.py b/var/spack/repos/builtin/packages/py-bottleneck/package.py
index 8870b3197c..2ad3047faf 100644
--- a/var/spack/repos/builtin/packages/py-bottleneck/package.py
+++ b/var/spack/repos/builtin/packages/py-bottleneck/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,13 @@ from spack import *
class PyBottleneck(PythonPackage):
"""A collection of fast NumPy array functions written in Cython."""
- homepage = "https://pypi.python.org/pypi/Bottleneck/1.0.0"
- url = "https://pypi.io/packages/source/B/Bottleneck/Bottleneck-1.0.0.tar.gz"
+ pypi = "Bottleneck/Bottleneck-1.0.0.tar.gz"
+ version('1.3.2', sha256='20179f0b66359792ea283b69aa16366419132f3b6cf3adadc0c48e2e8118e573')
+ version('1.3.1', sha256='451586370462cb623d6ad604a545d1e97fb51d2ab5252b1ac57350a83e494a28')
+ version('1.3.0', sha256='9d7814c61c31f42cfb4f26e050c2659c88a198f1398a9714174ae78347aad737')
version('1.2.1', sha256='6efcde5f830aed64feafca0359b51db0e184c72af8ba6675b4a99f263922eb36')
version('1.0.0', sha256='8d9b7ad4fadf9648acc924a6ee522c7cb5b474e75faaad9d90dfd55e2805b495')
depends_on('py-setuptools', type='build')
depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-breakseq2/package.py b/var/spack/repos/builtin/packages/py-breakseq2/package.py
index 9c295e7023..339404ac00 100644
--- a/var/spack/repos/builtin/packages/py-breakseq2/package.py
+++ b/var/spack/repos/builtin/packages/py-breakseq2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyBreakseq2(PythonPackage):
"""nucleotide-resolution analysis of structural variants"""
- homepage = "http://bioinform.github.io/breakseq2/"
+ homepage = "https://bioinform.github.io/breakseq2/"
url = "https://github.com/bioinform/breakseq2/archive/2.2.tar.gz"
version('2.2', sha256='d149e803191e6bb0b749abfba2c258716d94a38e942aaed40eb1630ae84f91ee')
diff --git a/var/spack/repos/builtin/packages/py-breathe/package.py b/var/spack/repos/builtin/packages/py-breathe/package.py
index 7ddebbdb10..fe8121eeb3 100644
--- a/var/spack/repos/builtin/packages/py-breathe/package.py
+++ b/var/spack/repos/builtin/packages/py-breathe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-brian/package.py b/var/spack/repos/builtin/packages/py-brian/package.py
index 770c19340f..d7d6a4c991 100644
--- a/var/spack/repos/builtin/packages/py-brian/package.py
+++ b/var/spack/repos/builtin/packages/py-brian/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyBrian(PythonPackage):
"""A clock-driven simulator for spiking neural networks"""
- homepage = "http://www.briansimulator.org"
- url = "https://pypi.io/packages/source/b/brian/brian-1.4.3.tar.gz"
+ homepage = "https://www.briansimulator.org"
+ pypi = "brian/brian-1.4.3.tar.gz"
version('1.4.3', sha256='c881dcfcd1a21990f9cb3cca76cdd868111cfd9e227ef5c1b13bb372d2efeaa4')
diff --git a/var/spack/repos/builtin/packages/py-brian2/package.py b/var/spack/repos/builtin/packages/py-brian2/package.py
index 0e7a7bf31d..35edc02850 100644
--- a/var/spack/repos/builtin/packages/py-brian2/package.py
+++ b/var/spack/repos/builtin/packages/py-brian2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,10 @@ from spack import *
class PyBrian2(PythonPackage):
"""A clock-driven simulator for spiking neural networks"""
- homepage = "http://www.briansimulator.org"
- url = "https://pypi.io/packages/source/B/Brian2/Brian2-2.2.2.1.tar.gz"
+ homepage = "https://www.briansimulator.org"
+ pypi = "Brian2/Brian2-2.2.2.1.tar.gz"
+ version('2.4.2', sha256='7a711af40145d8c62b0bc0861d352dc64f341c3a738174d87ef9d71e50e959f2')
version('2.2.2.1', sha256='02075f66d42fd243fc5e28e1add8862709ae9fdabaffb69858e6d7f684a91525')
version('2.0.1', sha256='195d8ced0d20e9069917776948f92aa70b7457bbc6b5222b8199654402ee1153')
version('2.0rc3', sha256='05f347f5fa6b25d1ce5ec152a2407bbce033599eb6664f32f5331946eb3c7d66')
@@ -19,14 +20,19 @@ class PyBrian2(PythonPackage):
variant('docs', default=False, description='Build the documentation')
depends_on('python@2.7:', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'run'), when='@2.4:')
depends_on('py-numpy@1.10:', type=('build', 'run'))
+ depends_on('py-numpy@1.15:', type=('build', 'run'), when='@2.4:')
depends_on('py-cython@0.29:', type=('build', 'run'))
depends_on('py-sympy@0.7.6:1.0,1.1.1:', type=('build', 'run'))
+ depends_on('py-sympy@1.2:', type=('build', 'run'), when='@2.4:')
depends_on('py-pyparsing', type=('build', 'run'))
depends_on('py-jinja2@2.7:', type=('build', 'run'))
depends_on('py-setuptools@21:', type=('build', 'run'))
+ depends_on('py-setuptools@24.2:', type=('build', 'run'), when='@2.4:')
depends_on('py-sphinx@1.5:', type=('build', 'run'), when='+docs')
- depends_on('py-nose@1.0:', type='test')
+ depends_on('py-sphinx@1.8:', type=('build', 'run'), when='@2.4:+docs')
+ depends_on('py-ipython@5:', type=('build', 'run'), when='@2.4:+docs')
def build_args(self, spec, prefix):
return ['--with-cython']
diff --git a/var/spack/repos/builtin/packages/py-brotlipy/package.py b/var/spack/repos/builtin/packages/py-brotlipy/package.py
index e83bcafea0..e4e288b7a3 100644
--- a/var/spack/repos/builtin/packages/py-brotlipy/package.py
+++ b/var/spack/repos/builtin/packages/py-brotlipy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyBrotlipy(PythonPackage):
"""Python binding to the Brotli library."""
homepage = "https://github.com/python-hyper/brotlipy/"
- url = "https://pypi.io/packages/source/b/brotlipy/brotlipy-0.7.0.tar.gz"
+ pypi = "brotlipy/brotlipy-0.7.0.tar.gz"
version('0.7.0', sha256='36def0b859beaf21910157b4c33eb3b06d8ce459c942102f16988cca6ea164df')
diff --git a/var/spack/repos/builtin/packages/py-bsddb3/package.py b/var/spack/repos/builtin/packages/py-bsddb3/package.py
index 9dcff4735c..2c329e3bd6 100644
--- a/var/spack/repos/builtin/packages/py-bsddb3/package.py
+++ b/var/spack/repos/builtin/packages/py-bsddb3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,7 @@ class PyBsddb3(PythonPackage):
Sequence and Transaction objects, and each of these is exposed
as a Python type in the bsddb3.db module."""
- homepage = "https://pypi.python.org/pypi/bsddb3/6.2.5"
- url = "https://pypi.io/packages/source/b/bsddb3/bsddb3-6.2.5.tar.gz"
+ pypi = "bsddb3/bsddb3-6.2.5.tar.gz"
version('6.2.5', sha256='784bf40ad935258507594a89b32ea11f362cde120751c8b96de163955ced7db8')
@@ -22,4 +21,4 @@ class PyBsddb3(PythonPackage):
depends_on('berkeley-db')
# For testing... see here for an example that uses BerkeleyDB
- # http://code.activestate.com/recipes/189060-using-berkeley-db-database/
+ # https://code.activestate.com/recipes/189060-using-berkeley-db-database/
diff --git a/var/spack/repos/builtin/packages/py-bx-python/package.py b/var/spack/repos/builtin/packages/py-bx-python/package.py
index 3d73b21d18..bf0ffcacd6 100644
--- a/var/spack/repos/builtin/packages/py-bx-python/package.py
+++ b/var/spack/repos/builtin/packages/py-bx-python/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyBxPython(PythonPackage):
to allow for rapid implementation of genome scale analyses."""
homepage = "https://github.com/bxlab/bx-python"
- url = "https://pypi.io/packages/source/b/bx-python/bx-python-0.8.8.tar.gz"
+ pypi = "bx-python/bx-python-0.8.8.tar.gz"
version('0.8.8', sha256='ad0808ab19c007e8beebadc31827e0d7560ac0e935f1100fb8cc93607400bb47')
version('0.7.4',
diff --git a/var/spack/repos/builtin/packages/py-bz2file/package.py b/var/spack/repos/builtin/packages/py-bz2file/package.py
index 796e08250f..f883842822 100644
--- a/var/spack/repos/builtin/packages/py-bz2file/package.py
+++ b/var/spack/repos/builtin/packages/py-bz2file/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PyBz2file(PythonPackage):
"""Python library for reading and writing bzip2-compressed files."""
homepage = "https://github.com/nvawda/bz2file"
- url = "https://pypi.io/packages/source/b/bz2file/bz2file-0.98.tar.gz"
+ pypi = "bz2file/bz2file-0.98.tar.gz"
version('0.98', sha256='64c1f811e31556ba9931953c8ec7b397488726c63e09a4c67004f43bdd28da88')
diff --git a/var/spack/repos/builtin/packages/py-cached-property/package.py b/var/spack/repos/builtin/packages/py-cached-property/package.py
index e5e120e7dd..1fcf4ebfca 100644
--- a/var/spack/repos/builtin/packages/py-cached-property/package.py
+++ b/var/spack/repos/builtin/packages/py-cached-property/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyCachedProperty(PythonPackage):
"""A decorator for caching properties in classes."""
- homepage = "https://pypi.org/project/cached-property/"
- url = "https://pypi.io/packages/source/c/cached-property/cached-property-1.5.1.tar.gz"
+ pypi = "cached-property/cached-property-1.5.1.tar.gz"
version('1.5.2', sha256="9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130")
version('1.5.1', sha256="9217a59f14a5682da7c4b8829deadbfc194ac22e9908ccf7c8820234e80a1504")
diff --git a/var/spack/repos/builtin/packages/py-cachetools/package.py b/var/spack/repos/builtin/packages/py-cachetools/package.py
index a35b423504..03c9e260eb 100644
--- a/var/spack/repos/builtin/packages/py-cachetools/package.py
+++ b/var/spack/repos/builtin/packages/py-cachetools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyCachetools(PythonPackage):
decorator."""
homepage = "https://github.com/tkem/cachetools"
- url = "https://pypi.io/packages/source/c/cachetools/cachetools-3.1.1.tar.gz"
+ pypi = "cachetools/cachetools-3.1.1.tar.gz"
version('3.1.1', sha256='8ea2d3ce97850f31e4a08b0e2b5e6c34997d7216a9d2c98e0f3978630d4da69a')
diff --git a/var/spack/repos/builtin/packages/py-cairocffi/package.py b/var/spack/repos/builtin/packages/py-cairocffi/package.py
index d4cf1ca37c..8e524842e8 100644
--- a/var/spack/repos/builtin/packages/py-cairocffi/package.py
+++ b/var/spack/repos/builtin/packages/py-cairocffi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,15 +13,10 @@ class PyCairocffi(PythonPackage):
buffers, PNG, PostScript, PDF, and SVG file output."""
homepage = "https://github.com/Kozea/cairocffi"
- url = "https://pypi.io/packages/source/c/cairocffi/cairocffi-1.0.2.tar.gz"
- import_modules = ['cairocffi']
+ pypi = "cairocffi/cairocffi-1.0.2.tar.gz"
version('1.0.2', sha256='01ac51ae12c4324ca5809ce270f9dd1b67f5166fe63bd3e497e9ea3ca91946ff')
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-setuptools@39.2.0:', type='build')
depends_on('py-cffi@1.1.0:', type=('build', 'run'))
- depends_on('py-pytest-runner', type='test')
- depends_on('py-pytest-cov', type='test')
- depends_on('py-pytest-flake8', type='test')
- depends_on('py-pytest-isort', type='test')
diff --git a/var/spack/repos/builtin/packages/py-cantoolz/package.py b/var/spack/repos/builtin/packages/py-cantoolz/package.py
index 60e47cad32..1659190854 100644
--- a/var/spack/repos/builtin/packages/py-cantoolz/package.py
+++ b/var/spack/repos/builtin/packages/py-cantoolz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-cartopy/package.py b/var/spack/repos/builtin/packages/py-cartopy/package.py
index 1d19b4da2d..ba7a6d3da6 100644
--- a/var/spack/repos/builtin/packages/py-cartopy/package.py
+++ b/var/spack/repos/builtin/packages/py-cartopy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,9 +13,11 @@ class PyCartopy(PythonPackage):
url = "https://github.com/SciTools/cartopy/archive/v0.18.0.tar.gz"
maintainers = ['adamjstewart']
+
+ # Tests require extra dependencies, skip them in 'import_modules'
import_modules = [
'cartopy', 'cartopy.sphinxext', 'cartopy.io', 'cartopy.geodesic',
- 'cartopy.examples', 'cartopy.mpl', 'cartopy.feature',
+ 'cartopy.examples', 'cartopy.mpl', 'cartopy.feature'
]
version('0.18.0', sha256='493ced4698361ffabec1a213d2b711dc836117242c304f3b93f5406182fd8bc2')
@@ -36,8 +38,8 @@ class PyCartopy(PythonPackage):
depends_on('py-six@1.3.0:', type=('build', 'run'))
depends_on('py-futures', when='^python@:2', type=('build', 'run'))
depends_on('geos@3.3.3:')
- depends_on('proj@4.9.0:5', when='@:0.16.0')
- depends_on('proj@4.9:', when='@0.17.0:')
+ depends_on('proj@4.9:5', when='@:0.16.0')
+ depends_on('proj@4.9:7', when='@0.17.0:')
# Optional dependecies
depends_on('py-pyepsg@0.4.0:', type=('build', 'run'), when='+epsg')
@@ -48,15 +50,32 @@ class PyCartopy(PythonPackage):
depends_on('pil@1.7.8:', type=('build', 'run'), when='+plotting')
depends_on('py-scipy@0.10:', type=('build', 'run'), when='+plotting')
- # Testing dependencies
- depends_on('py-filelock', type='test')
- depends_on('py-mock@1.0.1:', type='test')
- depends_on('py-pytest@3.0.0:', type='test')
-
patch('proj6.patch', when='@0.17.0')
phases = ['build_ext', 'install']
+ def setup_build_environment(self, env):
+ # Needed for `spack install --test=root py-cartopy`
+ library_dirs = []
+ for dep in self.spec.dependencies(deptype='link'):
+ query = self.spec[dep.name]
+ library_dirs.extend(query.libs.directories)
+
+ # Cartopy uses ctypes.util.find_library, which searches LD_LIBRARY_PATH
+ # Our RPATH logic works fine, but the unit tests fail without this
+ libs = ':'.join(library_dirs)
+ if self.spec.satisfies('platform=darwin'):
+ env.prepend_path('DYLD_FALLBACK_LIBRARY_PATH', libs)
+ else:
+ env.prepend_path('LD_LIBRARY_PATH', libs)
+
+ # Needed for `spack test run py-cartopy`
+ setup_run_environment = setup_build_environment
+
+ # Needed for `spack test run py-foo` where `py-foo` depends on `py-cartopy`
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ self.setup_build_environment(env)
+
def build_ext_args(self, spec, prefix):
args = [
spec['geos'].headers.include_flags,
@@ -74,8 +93,6 @@ class PyCartopy(PythonPackage):
return args
# Tests need to be re-added since `phases` was overridden
- run_after('build_ext')(
- PythonPackage._run_default_build_time_test_callbacks)
run_after('install')(
PythonPackage._run_default_install_time_test_callbacks)
run_after('install')(PythonPackage.sanity_check_prefix)
diff --git a/var/spack/repos/builtin/packages/py-catalogue/package.py b/var/spack/repos/builtin/packages/py-catalogue/package.py
index 799f5bb2ff..42671fd164 100644
--- a/var/spack/repos/builtin/packages/py-catalogue/package.py
+++ b/var/spack/repos/builtin/packages/py-catalogue/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyCatalogue(PythonPackage):
"""catalogue: Super lightweight function registries for your library."""
homepage = "https://github.com/explosion/catalogue"
- url = "https://pypi.io/packages/source/c/catalogue/catalogue-2.0.0.tar.gz"
+ pypi = "catalogue/catalogue-2.0.0.tar.gz"
version('2.0.0', sha256='34f8416ec5e7ed08e55c10414416e67c3f4d66edf83bc67320c3290775293816')
version('1.0.0', sha256='d74d1d856c6b36a37bf14aa6dbbc27d0582667b7ab979a6108e61a575e8723f5')
diff --git a/var/spack/repos/builtin/packages/py-catkin-pkg/package.py b/var/spack/repos/builtin/packages/py-catkin-pkg/package.py
new file mode 100644
index 0000000000..0bf04a7b57
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-catkin-pkg/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyCatkinPkg(PythonPackage):
+ """Library for retrieving information about catkin packages."""
+
+ homepage = "https://wiki.ros.org/catkin_pkg"
+ pypi = "catkin-pkg/catkin_pkg-0.4.23.tar.gz"
+
+ version('0.4.23', sha256='28ee181cca827c0aabf9397351f58a97e1475ca5ac7c106a5916e3ee191cd3d0')
+
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-docutils', type=('build', 'run'))
+ depends_on('py-python-dateutil', type=('build', 'run'))
+ depends_on('py-pyparsing', type=('build', 'run'))
+ depends_on('py-argparse', when='^python@:2.6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cclib/package.py b/var/spack/repos/builtin/packages/py-cclib/package.py
index c7801a86a0..2f5fea76e2 100644
--- a/var/spack/repos/builtin/packages/py-cclib/package.py
+++ b/var/spack/repos/builtin/packages/py-cclib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-cdat-lite/package.py b/var/spack/repos/builtin/packages/py-cdat-lite/package.py
index db51d6e3ec..0c46ae53be 100644
--- a/var/spack/repos/builtin/packages/py-cdat-lite/package.py
+++ b/var/spack/repos/builtin/packages/py-cdat-lite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyCdatLite(PythonPackage):
developed by PCMDI at Lawrence Livermore National Laboratory."""
homepage = "http://proj.badc.rl.ac.uk/cedaservices/wiki/CdatLite"
- url = "https://pypi.io/packages/source/c/cdat-lite/cdat-lite-6.0.1.tar.gz"
+ pypi = "cdat-lite/cdat-lite-6.0.1.tar.gz"
version('6.0.1', sha256='092ae4ff1fb03dee00096e8dd595b769b422759ce972d96525950adf8e1c9374')
diff --git a/var/spack/repos/builtin/packages/py-cdo/package.py b/var/spack/repos/builtin/packages/py-cdo/package.py
index 674900d87d..fcd3203850 100644
--- a/var/spack/repos/builtin/packages/py-cdo/package.py
+++ b/var/spack/repos/builtin/packages/py-cdo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyCdo(PythonPackage):
"""The cdo package provides an interface to the Climate Data
Operators from Python."""
- homepage = "https://pypi.python.org/pypi/cdo"
- url = "https://pypi.io/packages/source/c/cdo/cdo-1.3.2.tar.gz"
+ pypi = "cdo/cdo-1.3.2.tar.gz"
version('1.3.2', sha256='9f78879d90d14134f2320565016d0d371b7dfe7ec71110fd313868ec1db34aee')
diff --git a/var/spack/repos/builtin/packages/py-cdsapi/package.py b/var/spack/repos/builtin/packages/py-cdsapi/package.py
index 7d5ed6c865..4b5699ae49 100644
--- a/var/spack/repos/builtin/packages/py-cdsapi/package.py
+++ b/var/spack/repos/builtin/packages/py-cdsapi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyCdsapi(PythonPackage):
"""The Climate Data Store Application Program Interface is a service providing programmatic access to CDS data. Get your UID and API key from the CDS portal at the address https://cds.climate.copernicus.eu/user and write it into the configuration file. Look at https://pypi.org/project/cdsapi/ for an example"""
homepage = "https://cds.climate.copernicus.eu"
- url = "https://pypi.io/packages/source/c/cdsapi/cdsapi-0.2.3.tar.gz"
+ pypi = "cdsapi/cdsapi-0.2.3.tar.gz"
version('0.2.3', sha256='333b31ec263224399635db9b21a2e1a50cd73451f5179f8d967437e7c9161d9b')
diff --git a/var/spack/repos/builtin/packages/py-cekit/package.py b/var/spack/repos/builtin/packages/py-cekit/package.py
index a51203aac9..f393d95bf5 100644
--- a/var/spack/repos/builtin/packages/py-cekit/package.py
+++ b/var/spack/repos/builtin/packages/py-cekit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-celery/package.py b/var/spack/repos/builtin/packages/py-celery/package.py
index ff0eab1b63..ae99dcf6a1 100644
--- a/var/spack/repos/builtin/packages/py-celery/package.py
+++ b/var/spack/repos/builtin/packages/py-celery/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyCelery(PythonPackage):
"""Celery - Distributed Task Queue."""
- homepage = "https://pypi.org/project/celery/"
- url = "https://pypi.io/packages/source/c/celery/celery-4.2.1.tar.gz"
+ pypi = "celery/celery-4.2.1.tar.gz"
version('5.0.0', sha256='313930fddde703d8e37029a304bf91429cd11aeef63c57de6daca9d958e1f255')
version('4.4.7', sha256='d220b13a8ed57c78149acf82c006785356071844afe0b27012a4991d44026f9f')
diff --git a/var/spack/repos/builtin/packages/py-certifi/package.py b/var/spack/repos/builtin/packages/py-certifi/package.py
index 033ac47a88..1836e10134 100644
--- a/var/spack/repos/builtin/packages/py-certifi/package.py
+++ b/var/spack/repos/builtin/packages/py-certifi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,8 @@ class PyCertifi(PythonPackage):
the trustworthiness of SSL certificates while verifying the identity of TLS
hosts."""
- homepage = "http://certifi.io/"
- url = "https://pypi.io/packages/source/c/certifi/certifi-2020.6.20.tar.gz"
-
- import_modules = ['certifi']
+ homepage = "https://github.com/certifi/python-certifi"
+ pypi = "certifi/certifi-2020.6.20.tar.gz"
version('2020.6.20', sha256='5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3')
version('2019.9.11', sha256='e4f3620cfea4f83eedc95b24abd9cd56f3c4b146dd0177e83a21b4eb49e21e50')
diff --git a/var/spack/repos/builtin/packages/py-certipy/package.py b/var/spack/repos/builtin/packages/py-certipy/package.py
index 1fe73e8dc7..4c79879695 100644
--- a/var/spack/repos/builtin/packages/py-certipy/package.py
+++ b/var/spack/repos/builtin/packages/py-certipy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyCertipy(PythonPackage):
"""A simple python tool for creating certificate authorities
and certificates on the fly."""
- homepage = "https://pypi.org/project/certipy/"
- url = "https://pypi.io/packages/source/c/certipy/certipy-0.1.3.tar.gz"
+ pypi = "certipy/certipy-0.1.3.tar.gz"
version('0.1.3', sha256='695704b7716b033375c9a1324d0d30f27110a28895c40151a90ec07ff1032859')
diff --git a/var/spack/repos/builtin/packages/py-cf-units/package.py b/var/spack/repos/builtin/packages/py-cf-units/package.py
index 54d6e909b3..ca14b17a26 100644
--- a/var/spack/repos/builtin/packages/py-cf-units/package.py
+++ b/var/spack/repos/builtin/packages/py-cf-units/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyCfUnits(PythonPackage):
"""
homepage = "https://scitools.org.uk"
- url = "https://pypi.io/packages/source/c/cf-units/cf-units-2.1.1.tar.gz"
+ pypi = "cf-units/cf-units-2.1.1.tar.gz"
git = "https://github.com/SciTools/cf-units.git"
version('master', branch='master')
diff --git a/var/spack/repos/builtin/packages/py-cffi/package.py b/var/spack/repos/builtin/packages/py-cffi/package.py
index f333c73ffa..5ab4a00a9f 100644
--- a/var/spack/repos/builtin/packages/py-cffi/package.py
+++ b/var/spack/repos/builtin/packages/py-cffi/package.py
@@ -1,19 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class PyCffi(PythonPackage):
"""Foreign Function Interface for Python calling C code"""
homepage = "https://cffi.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/c/cffi/cffi-1.13.0.tar.gz"
-
- import_modules = ['cffi']
+ pypi = "cffi/cffi-1.13.0.tar.gz"
version('1.14.3', sha256='f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591')
version('1.13.0', sha256='8fe230f612c18af1df6f348d02d682fe2c28ca0a6c3856c99599cdacae7cf226')
@@ -27,8 +26,6 @@ class PyCffi(PythonPackage):
depends_on('py-pycparser', type=('build', 'run'))
depends_on('py-pycparser@2.19:', when='^python@:2.6', type=('build', 'run'))
depends_on('libffi')
- depends_on('py-py', type='test')
- depends_on('py-pytest', type='test')
def setup_build_environment(self, env):
# This sets the compiler (and flags) that distutils will use
diff --git a/var/spack/repos/builtin/packages/py-cfgrib/package.py b/var/spack/repos/builtin/packages/py-cfgrib/package.py
new file mode 100644
index 0000000000..31bc473547
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-cfgrib/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2021 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 PyCfgrib(PythonPackage):
+ """Python interface to map GRIB files to the NetCDF Common Data Model
+ following the CF Convention using ecCodes."""
+
+ homepage = "https://github.com/ecmwf/cfgrib"
+ pypi = "cfgrib/cfgrib-0.9.8.5.tar.gz"
+
+ version('0.9.9.0', sha256='6ff0227df9c5ee34aa7d6ab1f7af3fbe6838523a8a9891c74040b419b03ad289')
+ version('0.9.8.5', sha256='07c224d7ac823a1df5738b96b9d3621515538f51f67e55044f9cc8ec1668e1bd')
+
+ # Warning: can create infinite dependency loop with xarray+io ^cfgrib+xarray
+ variant('xarray', default=False, description='Add xarray support')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytest-runner', when='@0.9.8.5', type='build')
+ depends_on('py-attrs@19.2:', type=('build', 'run'))
+ depends_on('py-cffi', when='@0.9.8.5', type=('build', 'run'))
+ depends_on('py-click', type=('build', 'run'))
+ depends_on('py-eccodes', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-xarray@0.12.0:', when='+xarray', type=('build', 'run'))
+
+ @property
+ def import_modules(self):
+ modules = ['cfgrib']
+
+ if '+xarray' in self.spec:
+ modules.append('cf2cdm')
+
+ return modules
diff --git a/var/spack/repos/builtin/packages/py-cfgv/package.py b/var/spack/repos/builtin/packages/py-cfgv/package.py
index a9465eb0fc..2ed399e835 100644
--- a/var/spack/repos/builtin/packages/py-cfgv/package.py
+++ b/var/spack/repos/builtin/packages/py-cfgv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyCfgv(PythonPackage):
"""Validate configuration and produce human readable error messages."""
homepage = "https://github.com/asottile/cfgv/"
- url = "https://pypi.io/packages/source/c/cfgv/cfgv-2.0.1.tar.gz"
+ pypi = "cfgv/cfgv-2.0.1.tar.gz"
version('2.0.1', sha256='edb387943b665bf9c434f717bf630fa78aecd53d5900d2e05da6ad6048553144')
diff --git a/var/spack/repos/builtin/packages/py-cftime/package.py b/var/spack/repos/builtin/packages/py-cftime/package.py
index 284284391a..c90bd32176 100644
--- a/var/spack/repos/builtin/packages/py-cftime/package.py
+++ b/var/spack/repos/builtin/packages/py-cftime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-chai/package.py b/var/spack/repos/builtin/packages/py-chai/package.py
index f2e7ff7f54..15f6a1e623 100644
--- a/var/spack/repos/builtin/packages/py-chai/package.py
+++ b/var/spack/repos/builtin/packages/py-chai/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyChai(PythonPackage):
"""Chai - Python Mocking Made Easy"""
homepage = "https://github.com/agoragames/chai"
- url = "https://pypi.io/packages/source/c/chai/chai-1.1.2.tar.gz"
+ pypi = "chai/chai-1.1.2.tar.gz"
version('1.1.2', sha256='ff8d2b6855f660cd23cd5ec79bd10264d39f24f6235773331b48e7fcd637d6cc')
diff --git a/var/spack/repos/builtin/packages/py-chainer/package.py b/var/spack/repos/builtin/packages/py-chainer/package.py
index c75383b469..ebf25e8ae7 100644
--- a/var/spack/repos/builtin/packages/py-chainer/package.py
+++ b/var/spack/repos/builtin/packages/py-chainer/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import json
+
from spack import *
@@ -25,6 +27,8 @@ class PyChainer(PythonPackage):
version('7.2.0', sha256='6e2fba648cc5b8a5421e494385b76fe5ec154f1028a1c5908557f5d16c04f0b3')
version('6.7.0', sha256='87cb3378a35e7c5c695028ec91d58dc062356bc91412384ea939d71374610389')
+ variant("mn", default=False, description="run with ChainerMN")
+
depends_on('python@3.5.1:', when='@7:', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-numpy@1.9:', type=('build', 'run'))
@@ -34,3 +38,49 @@ class PyChainer(PythonPackage):
depends_on('py-filelock', type=('build', 'run'))
depends_on('py-protobuf@3:', type=('build', 'run'))
depends_on('py-typing@:3.6.6', when='@:6', type=('build', 'run'))
+
+ # Dependencies only required for test of ChainerMN
+ depends_on('py-matplotlib', type=('build', 'run'), when='+mn')
+ depends_on('py-mpi4py', type=('build', 'run'), when='+mn')
+ depends_on("mpi", type=("build", "run"), when='+mn')
+
+ @run_after('install')
+ def cache_test_sources(self):
+ if '+mn' in self.spec:
+ self.cache_extra_test_sources("examples")
+
+ def test(self):
+ if "+mn" in self.spec:
+ # Run test of ChainerMN
+ test_dir = self.test_suite.current_test_data_dir
+
+ mnist_dir = join_path(
+ self.install_test_root, "examples", "chainermn", "mnist"
+ )
+ mnist_file = join_path(mnist_dir, "train_mnist.py")
+ mpi_name = self.spec["mpi"].prefix.bin.mpirun
+ python_exe = self.spec["python"].command.path
+ opts = [
+ "-n",
+ "4",
+ python_exe,
+ mnist_file,
+ "-o",
+ test_dir,
+ ]
+ env["OMP_NUM_THREADS"] = "4"
+
+ self.run_test(
+ mpi_name,
+ options=opts,
+ work_dir=test_dir,
+ )
+
+ # check results
+ json_open = open(join_path(test_dir, 'log'), 'r')
+ json_load = json.load(json_open)
+ v = dict([(d.get('epoch'), d.get('main/accuracy')) for d in json_load])
+ if 1 not in v or 20 not in v:
+ raise RuntimeError('Cannot find epoch 1 or epoch 20')
+ if abs(1.0 - v[1]) < abs(1.0 - v[20]):
+ raise RuntimeError('ChainerMN Test Failed !')
diff --git a/var/spack/repos/builtin/packages/py-chainmap/package.py b/var/spack/repos/builtin/packages/py-chainmap/package.py
index f68782e7b4..f41fe19a7c 100644
--- a/var/spack/repos/builtin/packages/py-chainmap/package.py
+++ b/var/spack/repos/builtin/packages/py-chainmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyChainmap(PythonPackage):
ChainMap implementations."""
homepage = "https://bitbucket.org/jeunice/chainmap/src/default/"
- url = "https://pypi.io/packages/source/c/chainmap/chainmap-1.0.3.tar.gz"
+ pypi = "chainmap/chainmap-1.0.3.tar.gz"
version('1.0.3', sha256='e42aaa4b3e2f66102a11bfd563069704bfbfd84fdcb517b564effd736bf53cd9')
version('1.0.2', sha256='405da3bce9913bfb33e6e497803b447b60d12ab44031ca357626143e087e0526')
diff --git a/var/spack/repos/builtin/packages/py-chalice/package.py b/var/spack/repos/builtin/packages/py-chalice/package.py
index 348b09c5e5..527f6cd9a1 100644
--- a/var/spack/repos/builtin/packages/py-chalice/package.py
+++ b/var/spack/repos/builtin/packages/py-chalice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -27,7 +27,7 @@ class PyChalice(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('py-click@7.0:8.0', type=('build', 'run'))
depends_on('py-botocore@1.12.86:2.0.0', type=('build', 'run'))
- depends_on('py-typing@3.6.4', type=('build', 'run'))
+ depends_on('py-typing@3.6.4', type=('build', 'run'), when='^python@:3.6.999')
depends_on('py-mypy-extensions@0.4.3', type=('build', 'run'))
depends_on('py-six@1.10.0:2.0.0', type=('build', 'run'))
depends_on('py-pip@9:20.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-chardet/package.py b/var/spack/repos/builtin/packages/py-chardet/package.py
index 8cd829597d..71f38e420b 100644
--- a/var/spack/repos/builtin/packages/py-chardet/package.py
+++ b/var/spack/repos/builtin/packages/py-chardet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyChardet(PythonPackage):
"""Universal encoding detector for Python 2 and 3"""
homepage = "https://github.com/chardet/chardet"
- url = "https://pypi.io/packages/source/c/chardet/chardet-3.0.4.tar.gz"
+ pypi = "chardet/chardet-3.0.4.tar.gz"
version('3.0.4', sha256='84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae')
version('3.0.2', sha256='4f7832e7c583348a9eddd927ee8514b3bf717c061f57b21dbe7697211454d9bb')
@@ -18,5 +18,3 @@ class PyChardet(PythonPackage):
depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-pytest-runner', type='build')
- depends_on('py-pytest', type='test')
- depends_on('py-hypothesis', type='test')
diff --git a/var/spack/repos/builtin/packages/py-charm4py/package.py b/var/spack/repos/builtin/packages/py-charm4py/package.py
index 7ebea4ddef..ebe181bcea 100644
--- a/var/spack/repos/builtin/packages/py-charm4py/package.py
+++ b/var/spack/repos/builtin/packages/py-charm4py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,7 +17,7 @@ class PyCharm4py(PythonPackage):
from small multi-core devices up to the largest supercomputers."""
homepage = "https://charmpy.readthedocs.io"
- url = "https://pypi.io/packages/source/c/charm4py/charm4py-1.0.tar.gz"
+ pypi = "charm4py/charm4py-1.0.tar.gz"
# Add a list of GitHub accounts to
# notify when the package is updated.
diff --git a/var/spack/repos/builtin/packages/py-checkm-genome/package.py b/var/spack/repos/builtin/packages/py-checkm-genome/package.py
index cc1bee25c9..d50f03bcf5 100644
--- a/var/spack/repos/builtin/packages/py-checkm-genome/package.py
+++ b/var/spack/repos/builtin/packages/py-checkm-genome/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyCheckmGenome(PythonPackage):
cells, and metagenomes"""
homepage = "https://ecogenomics.github.io/CheckM"
- url = "https://pypi.io/packages/source/c/checkm-genome/checkm-genome-1.0.11.tar.gz"
+ pypi = "checkm-genome/checkm-genome-1.0.11.tar.gz"
version('1.0.13', sha256='ffb7e4966c0fac07c7e6e7db6f6eb5b48587fa83987f8a68efbaff2afb7da82e')
version('1.0.11', sha256='e475d9817d12fa771dbccc80f47758b742fc67c25261dc8ca0c0dc898c2a5190')
@@ -20,7 +20,7 @@ class PyCheckmGenome(PythonPackage):
depends_on('pplacer', type=('build', 'run'))
depends_on('prodigal@2.6.1:', type=('build', 'run'))
depends_on('python@2.7.0:2.7.999', type=('build', 'run'))
- depends_on('py-backports-functools-lru-cache', type=('build', 'run'))
+ depends_on('py-backports-functools-lru-cache', type=('build', 'run'), when='^python@:3.2.99')
depends_on('py-numpy@1.8.0:', type=('build', 'run'))
depends_on('py-scipy@0.9.0:', type=('build', 'run'))
depends_on('py-matplotlib@1.3.1:2.2.3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cheetah/package.py b/var/spack/repos/builtin/packages/py-cheetah/package.py
index d150293c56..6b5b76813f 100644
--- a/var/spack/repos/builtin/packages/py-cheetah/package.py
+++ b/var/spack/repos/builtin/packages/py-cheetah/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,11 @@ from spack import *
class PyCheetah(PythonPackage):
"""Cheetah is a template engine and code generation tool."""
- homepage = "https://pypi.python.org/pypi/Cheetah/2.4.4"
- url = "https://pypi.io/packages/source/C/Cheetah/Cheetah-2.3.0.tar.gz"
+ pypi = "Cheetah/Cheetah-2.3.0.tar.gz"
+ version('2.4.4', sha256='be308229f0c1e5e5af4f27d7ee06d90bb19e6af3059794e5fd536a6f29a9b550')
version('2.3.0', sha256='2a32d7f7f70be98c2d57aa581f979bc799d4bf17d09fc0e7d77280501edf3e53')
+
+ depends_on('python@2:2.99.999', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-markdown@2.0.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cheetah3/package.py b/var/spack/repos/builtin/packages/py-cheetah3/package.py
new file mode 100644
index 0000000000..28e739934f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-cheetah3/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyCheetah3(PythonPackage):
+ """Cheetah3 is a template engine and code generation tool."""
+
+ pypi = "Cheetah3/Cheetah3-3.2.6.tar.gz"
+
+ version('3.2.6', sha256='f1c2b693cdcac2ded2823d363f8459ae785261e61c128d68464c8781dba0466b')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-markdown@2.0.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cheroot/package.py b/var/spack/repos/builtin/packages/py-cheroot/package.py
index f75ef07b58..3b62ac7a30 100644
--- a/var/spack/repos/builtin/packages/py-cheroot/package.py
+++ b/var/spack/repos/builtin/packages/py-cheroot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ from spack import *
class PyCheroot(PythonPackage):
""" Highly-optimized, pure-python HTTP server """
- homepage = "https://cheroot.cherrypy.org/"
- url = "https://pypi.io/packages/source/c/cheroot/cheroot-6.5.5.tar.gz"
+ homepage = "https://cheroot.readthedocs.io/en/latest/"
+ pypi = "cheroot/cheroot-6.5.5.tar.gz"
version('8.3.0', sha256='a0577e1f28661727d472671a7cc4e0c12ea0cbc5220265e70f00a8b8cb628931')
version('6.5.5', sha256='f6a85e005adb5bc5f3a92b998ff0e48795d4d98a0fbb7edde47a7513d4100601')
@@ -23,4 +23,5 @@ class PyCheroot(PythonPackage):
depends_on('py-six@1.11.0:', type=('build', 'run'))
depends_on('py-backports-functools-lru-cache', type=('build', 'run'),
when='^python@:3.3')
+ depends_on('py-jaraco-functools', when='@8.3.0:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cherrypy/package.py b/var/spack/repos/builtin/packages/py-cherrypy/package.py
index 848d185303..7f25f58b95 100644
--- a/var/spack/repos/builtin/packages/py-cherrypy/package.py
+++ b/var/spack/repos/builtin/packages/py-cherrypy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyCherrypy(PythonPackage):
"""CherryPy is a pythonic, object-oriented HTTP framework."""
- homepage = "https://cherrypy.org/"
- url = "https://pypi.io/packages/source/C/CherryPy/CherryPy-18.1.1.tar.gz"
+ homepage = "https://cherrypy.readthedocs.io/en/latest/"
+ pypi = "CherryPy/CherryPy-18.1.1.tar.gz"
version('18.1.1', sha256='6585c19b5e4faffa3613b5bf02c6a27dcc4c69a30d302aba819639a2af6fa48b')
diff --git a/var/spack/repos/builtin/packages/py-chronyk/package.py b/var/spack/repos/builtin/packages/py-chronyk/package.py
index 9523814f8e..a1a81ae552 100644
--- a/var/spack/repos/builtin/packages/py-chronyk/package.py
+++ b/var/spack/repos/builtin/packages/py-chronyk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-ci-info/package.py b/var/spack/repos/builtin/packages/py-ci-info/package.py
new file mode 100644
index 0000000000..c13667acc1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ci-info/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyCiInfo(PythonPackage):
+ """Continuous Integration Information.
+
+ A Python implementation of watson/ci-info. Get details about the current
+ Continuous Integration environment.
+ """
+
+ homepage = "https://github.com/mgxd/ci-info"
+ pypi = "ci-info/ci-info-0.2.0.tar.gz"
+
+ version('0.2.0', sha256='dd70632c977feb8797b1e633507166b64ad5f57183cebb2b0ea56934abba4616')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-cinema-lib/package.py b/var/spack/repos/builtin/packages/py-cinema-lib/package.py
index 8034e9c7a1..d8d4b97623 100644
--- a/var/spack/repos/builtin/packages/py-cinema-lib/package.py
+++ b/var/spack/repos/builtin/packages/py-cinema-lib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -37,5 +37,5 @@ class PyCinemaLib(PythonPackage):
depends_on('py-numpy@1.13:', when='+opencv', type=('build', 'run'))
depends_on('py-scikit-image@0.13.1:', when='+image',
type=('build', 'run'))
- depends_on('opencv@3.4:+python', when='+opencv', type=('build', 'run'))
+ depends_on('opencv@3.4:+python3', when='+opencv', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cinemasci/package.py b/var/spack/repos/builtin/packages/py-cinemasci/package.py
new file mode 100644
index 0000000000..3f70f82850
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-cinemasci/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyCinemasci(PythonPackage):
+ """A set of python tools for reading, writing and viewing Cinema
+ databases"""
+
+ homepage = "https://github.com/cinemascience"
+ pypi = "cinemasci/cinemasci-1.3.tar.gz"
+
+ maintainers = ['EthanS94']
+
+ version('1.3', sha256='c024ca9791de9d78e5dad3fd11e8f87d8bc1afa5830f2697d7ec4116a5d23c20')
+
+ variant('mpi', default=False, description='Enable MPI')
+
+ depends_on('hdf5 ~mpi', when='~mpi')
+ depends_on('hdf5 +mpi', when='+mpi')
+ depends_on('pil', type=('build', 'run'))
+ depends_on('python@3:', type=('build', 'run'))
+ depends_on('py-h5py~mpi', when='~mpi', type=('build', 'run'))
+ depends_on('py-h5py+mpi', when='+mpi', type=('build', 'run'))
+ depends_on('py-ipywidgets', type=('build', 'run'))
+ depends_on('py-jupyterlab', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build'))
diff --git a/var/spack/repos/builtin/packages/py-citeproc-py/package.py b/var/spack/repos/builtin/packages/py-citeproc-py/package.py
new file mode 100644
index 0000000000..af5311cf4b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-citeproc-py/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyCiteprocPy(PythonPackage):
+ """Citations and bibliography formatter."""
+
+ homepage = "https://github.com/brechtm/citeproc-py"
+ pypi = "citeproc-py/citeproc-py-0.6.0.tar.gz"
+
+ version('0.6.0', sha256='d9e3a224f936fe2e5033b5d9ffdacab769cedb61d96c4e0cf2f0b488f1d24b4e')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-rnc2rng@2.6.1,2.6.3:', type='build')
+ depends_on('py-lxml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-click-didyoumean/package.py b/var/spack/repos/builtin/packages/py-click-didyoumean/package.py
index 10052f429f..492ee04b2b 100644
--- a/var/spack/repos/builtin/packages/py-click-didyoumean/package.py
+++ b/var/spack/repos/builtin/packages/py-click-didyoumean/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyClickDidyoumean(PythonPackage):
"""Enable git-like did-you-mean feature in click"""
homepage = "https://github.com/click-contrib/click-didyoumean"
- url = "https://files.pythonhosted.org/packages/9f/79/d265d783dd022541b744d002745d9e55d84c04a41930e35d8795934f6526/click-didyoumean-0.0.3.tar.gz"
+ pypi = "click-didyoumean/click-didyoumean-0.0.3.tar.gz"
version('0.0.3', sha256='112229485c9704ff51362fe34b2d4f0b12fc71cc20f6d2b3afabed4b8bfa6aeb')
diff --git a/var/spack/repos/builtin/packages/py-click-plugins/package.py b/var/spack/repos/builtin/packages/py-click-plugins/package.py
index 33ec97c648..cf15ed4638 100644
--- a/var/spack/repos/builtin/packages/py-click-plugins/package.py
+++ b/var/spack/repos/builtin/packages/py-click-plugins/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyClickPlugins(PythonPackage):
"""An extension module for py-click to register external CLI
commands via setuptools entry-points."""
- homepage = "https://pypi.org/project/click-plugins/"
- url = "https://pypi.io/packages/source/c/click-plugins/click-plugins-1.0.4.tar.gz"
+ pypi = "click-plugins/click-plugins-1.0.4.tar.gz"
version('1.0.4', sha256='dfed74b5063546a137de99baaaf742b4de4337ad2b3e1df5ec7c8a256adc0847')
diff --git a/var/spack/repos/builtin/packages/py-click-repl/package.py b/var/spack/repos/builtin/packages/py-click-repl/package.py
index 11e1a693ae..0eff678cf7 100644
--- a/var/spack/repos/builtin/packages/py-click-repl/package.py
+++ b/var/spack/repos/builtin/packages/py-click-repl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyClickRepl(PythonPackage):
"""Subcommand REPL for click apps """
homepage = "https://github.com/click-contrib/click-repl"
- url = "https://files.pythonhosted.org/packages/51/99/6a722e232f92fdc21c46fd042fea63e7c2fcda3086ff5db62edd595d3f49/click-repl-0.1.6.tar.gz"
+ pypi = "click-repl/click-repl-0.1.6.tar.gz"
version('0.1.6', sha256='b9f29d52abc4d6059f8e276132a111ab8d94980afe6a5432b9d996544afa95d5')
diff --git a/var/spack/repos/builtin/packages/py-click/package.py b/var/spack/repos/builtin/packages/py-click/package.py
index 52e616dbfc..470f41590d 100644
--- a/var/spack/repos/builtin/packages/py-click/package.py
+++ b/var/spack/repos/builtin/packages/py-click/package.py
@@ -1,17 +1,26 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 PyClick(PythonPackage):
- """A simple wrapper around optparse for powerful command line utilities."""
+ """Python composable command line interface toolkit."""
- homepage = "http://github.com/mitsuhiko/click"
- url = "https://pypi.io/packages/source/c/click/click-7.1.2.tar.gz"
+ homepage = "https://click.palletsprojects.com"
+ pypi = "click/click-7.1.2.tar.gz"
+ version('8.0.1', sha256='8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a')
version('7.1.2', sha256='d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a')
version('7.0', sha256='5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7',
url='https://pypi.io/packages/source/c/click/Click-7.0.tar.gz')
version('6.6', sha256='cc6a19da8ebff6e7074f731447ef7e112bd23adf3de5c597cf9989f2fd8defe9')
+ depends_on('python@3.6:', type=('build', 'run'), when='@8.0.0:')
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
+
+ depends_on('py-importlib-metadata', type=('build', 'run'), when='@8.0.0: ^python@:3.7.999')
+ # depends_on('py-colorama', type=('build', 'run'), when='platform=windows')
diff --git a/var/spack/repos/builtin/packages/py-cligj/package.py b/var/spack/repos/builtin/packages/py-cligj/package.py
index f35a0ef68f..9f0cc7a391 100644
--- a/var/spack/repos/builtin/packages/py-cligj/package.py
+++ b/var/spack/repos/builtin/packages/py-cligj/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-clint/package.py b/var/spack/repos/builtin/packages/py-clint/package.py
index e8a82f5ddf..600e83d4e2 100644
--- a/var/spack/repos/builtin/packages/py-clint/package.py
+++ b/var/spack/repos/builtin/packages/py-clint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyClint(PythonPackage):
"""Python Command-line Application Tools"""
homepage = "https://github.com/kennethreitz-archive/clint"
- url = "https://pypi.io/packages/source/c/clint/clint-0.5.1.tar.gz"
+ pypi = "clint/clint-0.5.1.tar.gz"
version('0.5.1', sha256='05224c32b1075563d0b16d0015faaf9da43aa214e4a2140e51f08789e7a4c5aa')
diff --git a/var/spack/repos/builtin/packages/py-clipboard/package.py b/var/spack/repos/builtin/packages/py-clipboard/package.py
index b80f58d098..7b9373e787 100644
--- a/var/spack/repos/builtin/packages/py-clipboard/package.py
+++ b/var/spack/repos/builtin/packages/py-clipboard/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyClipboard(PythonPackage):
"""A cross platform clipboard operation library of Python."""
homepage = "https://github.com/terryyin/clipboard"
- url = "https://pypi.io/packages/source/c/clipboard/clipboard-0.0.4.tar.gz"
+ pypi = "clipboard/clipboard-0.0.4.tar.gz"
version('0.0.4', sha256='a72a78e9c9bf68da1c3f29ee022417d13ec9e3824b511559fd2b702b1dd5b817')
diff --git a/var/spack/repos/builtin/packages/py-cloudpickle/package.py b/var/spack/repos/builtin/packages/py-cloudpickle/package.py
index 0f7e525290..2f5ff6422c 100644
--- a/var/spack/repos/builtin/packages/py-cloudpickle/package.py
+++ b/var/spack/repos/builtin/packages/py-cloudpickle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,12 @@ class PyCloudpickle(PythonPackage):
"""Extended pickling support for Python objects."""
homepage = "https://github.com/cloudpipe/cloudpickle"
- url = "https://pypi.io/packages/source/c/cloudpickle/cloudpickle-0.5.2.tar.gz"
-
- import_modules = ['cloudpickle']
+ pypi = "cloudpickle/cloudpickle-0.5.2.tar.gz"
+ version('1.6.0', sha256='9bc994f9e9447593bd0a45371f0e7ac7333710fcf64a4eb9834bf149f4ef2f32')
version('1.2.1', sha256='603244e0f552b72a267d47a7d9b347b27a3430f58a0536037a290e7e0e212ecf')
+ version('1.1.1', sha256='7d43c4d0c7e9735ee8a352c96f84031dabd6676170c4e5e0585a469cc4769f22')
version('0.5.2', sha256='b0e63dd89ed5285171a570186751bc9b84493675e99e12789e9a5dc5490ef554')
+ depends_on('python@3.5:', type=('build', 'run'), when='@1.6.0:')
depends_on('py-setuptools', type='build')
-
- def build_test(self):
- # PyPI tarball does not come with unit tests
- pass
diff --git a/var/spack/repos/builtin/packages/py-clustershell/package.py b/var/spack/repos/builtin/packages/py-clustershell/package.py
index 5fd696ce89..dd37e61019 100644
--- a/var/spack/repos/builtin/packages/py-clustershell/package.py
+++ b/var/spack/repos/builtin/packages/py-clustershell/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyClustershell(PythonPackage):
node groups and execute commands on cluster nodes in parallel.
"""
- homepage = "http://cea-hpc.github.io/clustershell/"
+ homepage = "https://cea-hpc.github.io/clustershell/"
url = "https://github.com/cea-hpc/clustershell/archive/v1.8.tar.gz"
version('1.8', sha256='ad5a13e2d107b4095229810c35365e22ea94dfd2baf4fdcfcc68ce58ee37cee3')
diff --git a/var/spack/repos/builtin/packages/py-cmake-format/package.py b/var/spack/repos/builtin/packages/py-cmake-format/package.py
index b300b97379..cab5dc3e02 100644
--- a/var/spack/repos/builtin/packages/py-cmake-format/package.py
+++ b/var/spack/repos/builtin/packages/py-cmake-format/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,7 @@ class PyCmakeFormat(PythonPackage):
cmake. Tools include cmake-annotate, cmake-format, cmake-lint,
and ctest-to."""
- homepage = "https://pypi.python.org/pypi/cmake-format"
- url = "https://pypi.io/packages/source/c/cmake_format/cmake_format-0.6.9.tar.gz"
+ pypi = "cmake_format/cmake_format-0.6.9.tar.gz"
version('0.6.10', sha256='82f0ef16236225cb43f45bfb6983ef7f6f72634727a1a6c26290402527bdd793')
version('0.6.9', sha256='b2f8bf2e9c6651126f2f2954b7803222b0faf6b8649eabc4d965ea97483a4d20')
diff --git a/var/spack/repos/builtin/packages/py-cmake/package.py b/var/spack/repos/builtin/packages/py-cmake/package.py
index fc2ab57044..fab0dda083 100644
--- a/var/spack/repos/builtin/packages/py-cmake/package.py
+++ b/var/spack/repos/builtin/packages/py-cmake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyCmake(PythonPackage):
"""
homepage = "https://cmake.org/"
- url = "https://pypi.io/packages/source/c/cmake/cmake-3.18.0.tar.gz"
+ pypi = "cmake/cmake-3.18.0.tar.gz"
version('3.18.0', sha256='52b98c5ee70b5fa30a8623e96482227e065292f78794eb085fdf0fecb204b79b')
diff --git a/var/spack/repos/builtin/packages/py-cmocean/package.py b/var/spack/repos/builtin/packages/py-cmocean/package.py
index aca64870cc..ba33dd142f 100644
--- a/var/spack/repos/builtin/packages/py-cmocean/package.py
+++ b/var/spack/repos/builtin/packages/py-cmocean/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,10 @@ class PyCmocean(PythonPackage):
"""Colormaps for Oceanography."""
homepage = "https://matplotlib.org/cmocean/"
- url = "https://pypi.io/packages/source/c/cmocean/cmocean-2.0.tar.gz"
+ pypi = "cmocean/cmocean-2.0.tar.gz"
version('2.0', sha256='13eea3c8994d8e303e32a2db0b3e686f6edfb41cb21e7b0e663c2b17eea9b03a')
depends_on('py-setuptools', type='build')
depends_on('py-matplotlib', type=('build', 'run'))
depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-cnvkit/package.py b/var/spack/repos/builtin/packages/py-cnvkit/package.py
index 17d4508b15..a18fe650ef 100644
--- a/var/spack/repos/builtin/packages/py-cnvkit/package.py
+++ b/var/spack/repos/builtin/packages/py-cnvkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyCnvkit(PythonPackage):
"""Copy number variation toolkit for high-throughput sequencing."""
homepage = "https://github.com/etal/cnvkit"
- url = "https://pypi.io/packages/source/C/CNVkit/CNVkit-0.9.6.tar.gz"
+ pypi = "CNVkit/CNVkit-0.9.6.tar.gz"
version('0.9.6', sha256='be889c98a5cf0a994330b8c31c0a65151fb0095fe4e75a1e04118da2516248c2')
diff --git a/var/spack/repos/builtin/packages/py-coapthon3/package.py b/var/spack/repos/builtin/packages/py-coapthon3/package.py
index 2697b8e16a..22173535eb 100644
--- a/var/spack/repos/builtin/packages/py-coapthon3/package.py
+++ b/var/spack/repos/builtin/packages/py-coapthon3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-codecov/package.py b/var/spack/repos/builtin/packages/py-codecov/package.py
index afced5c19b..9025209f78 100644
--- a/var/spack/repos/builtin/packages/py-codecov/package.py
+++ b/var/spack/repos/builtin/packages/py-codecov/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyCodecov(PythonPackage):
"""Hosted coverage reports for Github, Bitbucket and Gitlab."""
homepage = "https://github.com/codecov/codecov-python"
- url = "https://pypi.io/packages/source/c/codecov/codecov-2.0.15.tar.gz"
-
- import_modules = ['codecov']
+ pypi = "codecov/codecov-2.0.15.tar.gz"
version('2.0.15', sha256='8ed8b7c6791010d359baed66f84f061bba5bd41174bf324c31311e8737602788')
@@ -20,5 +18,3 @@ class PyCodecov(PythonPackage):
depends_on('py-requests@2.7.9:', type=('build', 'run'))
depends_on('py-coverage', type=('build', 'run'))
depends_on('py-argparse', when='^python@:2.6', type=('build', 'run'))
- depends_on('py-unittest2', type='test')
- depends_on('py-linecache2', type='test')
diff --git a/var/spack/repos/builtin/packages/py-cogent/package.py b/var/spack/repos/builtin/packages/py-cogent/package.py
index 8605e05bea..b28a1b4bda 100644
--- a/var/spack/repos/builtin/packages/py-cogent/package.py
+++ b/var/spack/repos/builtin/packages/py-cogent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,12 @@ from spack import *
class PyCogent(PythonPackage):
"""A toolkit for statistical analysis of biological sequences."""
- homepage = "http://pycogent.org"
- url = "https://pypi.io/packages/source/c/cogent/cogent-1.9.tar.gz"
+ homepage = "https://github.com/Magdoll/Cogent/wiki/Installing-Cogent"
+ pypi = "cogent/cogent-1.9.tar.gz"
version('1.9', sha256='57d8c58e0273ffe4f2b907874f9b49dadfd0600f5507b7666369f4e44d56ce14')
version('1.5.3', url="https://pypi.io/packages/source/c/cogent/cogent-1.5.3.tgz",
- sha256='1215ac219070b7b2207b0b47b4388510f3e30ccd88160aa9f02f25d24bcbcd95')
+ sha256='1215ac219070b7b2207b0b47b4388510f3e30ccd88160aa9f02f25d24bcbcd95')
variant('matplotlib', default=False, description="graphs related to codon usage")
variant('mpi', default=False, description='MPI required for parallel computation.')
diff --git a/var/spack/repos/builtin/packages/py-coilmq/package.py b/var/spack/repos/builtin/packages/py-coilmq/package.py
index fc2f404e51..a341d1f979 100644
--- a/var/spack/repos/builtin/packages/py-coilmq/package.py
+++ b/var/spack/repos/builtin/packages/py-coilmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-colorama/package.py b/var/spack/repos/builtin/packages/py-colorama/package.py
index be101dc938..09dfe84552 100644
--- a/var/spack/repos/builtin/packages/py-colorama/package.py
+++ b/var/spack/repos/builtin/packages/py-colorama/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,12 @@ class PyColorama(PythonPackage):
"""Cross-platform colored terminal text."""
homepage = "https://github.com/tartley/colorama"
- url = "https://pypi.io/packages/source/c/colorama/colorama-0.3.7.tar.gz"
+ pypi = "colorama/colorama-0.3.7.tar.gz"
+ version('0.4.4', sha256='5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b')
version('0.4.1', sha256='05eed71e2e327246ad6b38c540c4a3117230b19679b875190486ddd2d721422d')
version('0.3.7', sha256='e043c8d32527607223652021ff648fbb394d5e19cba9f1a698670b338c9d782b')
+ depends_on('python@2.7:2.8,3.5:', when='@0.4.2:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-colorclass/package.py b/var/spack/repos/builtin/packages/py-colorclass/package.py
new file mode 100644
index 0000000000..66d1072142
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-colorclass/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyColorclass(PythonPackage):
+ """Colorful worry-free console applications for Linux, Mac OS X, and Windows."""
+
+ homepage = "https://github.com/Robpol86/colorclass"
+ pypi = "colorclass/colorclass-2.2.0.tar.gz"
+
+ version('2.2.0', sha256='b05c2a348dfc1aff2d502527d78a5b7b7e2f85da94a96c5081210d8e9ee8e18b')
+
+ depends_on('python@3.3.0:')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-docopt', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-colored-traceback/package.py b/var/spack/repos/builtin/packages/py-colored-traceback/package.py
new file mode 100644
index 0000000000..e643af79e0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-colored-traceback/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyColoredTraceback(PythonPackage):
+ """Automatically color Python's uncaught exception tracebacks."""
+
+ homepage = "https://github.com/staticshock/colored-traceback.py"
+ pypi = "colored-traceback/colored-traceback-0.3.0.tar.gz"
+
+ version('0.3.0', sha256='6da7ce2b1da869f6bb54c927b415b95727c4bb6d9a84c4615ea77d9872911b05')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pygments', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-colored/package.py b/var/spack/repos/builtin/packages/py-colored/package.py
new file mode 100644
index 0000000000..42a5007582
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-colored/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyColored(PythonPackage):
+ """Simple library for color and formatting to terminal
+
+ Very simple Python library for color and formatting in terminal.
+ Collection of color codes and names for 256 color terminal setups.
+ The following is a list of 256 colors for Xterm, containing an example
+ of the displayed color, Xterm Name, Xterm Number and HEX."""
+
+ homepage = "https://gitlab.com/dslackw/colored"
+ pypi = "colored/colored-1.4.2.tar.gz"
+
+ version('1.4.2', sha256='056fac09d9e39b34296e7618897ed1b8c274f98423770c2980d829fd670955ed')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-coloredlogs/package.py b/var/spack/repos/builtin/packages/py-coloredlogs/package.py
index bc4b8f1434..1cd4a1e14a 100644
--- a/var/spack/repos/builtin/packages/py-coloredlogs/package.py
+++ b/var/spack/repos/builtin/packages/py-coloredlogs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyColoredlogs(PythonPackage):
"""Colored terminal output for Python's logging module"""
- homepage = "https://pypi.org/project/coloredlogs/"
- url = "https://pypi.io/packages/source/c/coloredlogs/coloredlogs-10.0.tar.gz"
+ pypi = "coloredlogs/coloredlogs-10.0.tar.gz"
version('14.0', sha256='a1fab193d2053aa6c0a97608c4342d031f1f93a3d1218432c59322441d31a505')
version('10.0', sha256='b869a2dda3fa88154b9dd850e27828d8755bfab5a838a1c97fbc850c6e377c36')
diff --git a/var/spack/repos/builtin/packages/py-colorful/package.py b/var/spack/repos/builtin/packages/py-colorful/package.py
index 377b9e1c46..a2f767afad 100644
--- a/var/spack/repos/builtin/packages/py-colorful/package.py
+++ b/var/spack/repos/builtin/packages/py-colorful/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyColorful(PythonPackage):
"""Terminal string styling done right, in Python."""
homepage = "https://github.com/timofurrer/colorful"
- url = "https://pypi.io/packages/source/c/colorful/colorful-0.5.4.tar.gz"
+ pypi = "colorful/colorful-0.5.4.tar.gz"
version('0.5.4', sha256='86848ad4e2eda60cd2519d8698945d22f6f6551e23e95f3f14dfbb60997807ea')
diff --git a/var/spack/repos/builtin/packages/py-colorlog/package.py b/var/spack/repos/builtin/packages/py-colorlog/package.py
index 05268384f2..2e8f2b7f75 100644
--- a/var/spack/repos/builtin/packages/py-colorlog/package.py
+++ b/var/spack/repos/builtin/packages/py-colorlog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyColorlog(PythonPackage):
"""A colored formatter for the python logging module"""
homepage = "https://github.com/borntyping/python-colorlog"
- url = "https://pypi.io/packages/source/c/colorlog/colorlog-4.0.2.tar.gz"
+ pypi = "colorlog/colorlog-4.0.2.tar.gz"
version('4.0.2', sha256='3cf31b25cbc8f86ec01fef582ef3b840950dea414084ed19ab922c8b493f9b42')
version('3.1.4', sha256='418db638c9577f37f0fae4914074f395847a728158a011be2a193ac491b9779d')
diff --git a/var/spack/repos/builtin/packages/py-colormath/package.py b/var/spack/repos/builtin/packages/py-colormath/package.py
index b190cdd418..8e584938fa 100644
--- a/var/spack/repos/builtin/packages/py-colormath/package.py
+++ b/var/spack/repos/builtin/packages/py-colormath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyColormath(PythonPackage):
"""Color math and conversion library."""
- homepage = "https://pypi.python.org/pypi/colormath/2.1.1"
- url = "https://pypi.io/packages/source/c/colormath/colormath-2.1.1.tar.gz"
+ pypi = "colormath/colormath-2.1.1.tar.gz"
version('3.0.0', sha256='3d4605af344527da0e4f9f504fad7ddbebda35322c566a6c72e28edb1ff31217')
version('2.1.1', sha256='003a2b2d9c1f43aa7d90addf1863fb2d822463c839b1166ae3092950792f9707')
diff --git a/var/spack/repos/builtin/packages/py-colorpy/package.py b/var/spack/repos/builtin/packages/py-colorpy/package.py
index 909ad673ef..2aee0a5c97 100644
--- a/var/spack/repos/builtin/packages/py-colorpy/package.py
+++ b/var/spack/repos/builtin/packages/py-colorpy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyColorpy(PythonPackage):
"""
homepage = "http://markkness.net/colorpy/ColorPy.html"
- url = "https://pypi.io/packages/source/c/colorpy/colorpy-0.1.1.tar.gz"
+ pypi = "colorpy/colorpy-0.1.1.tar.gz"
version('0.1.1', sha256='e400a7e879adc83c6098dde13cdd093723f3936778c245b1caf88f5f1411170d')
diff --git a/var/spack/repos/builtin/packages/py-colorspacious/package.py b/var/spack/repos/builtin/packages/py-colorspacious/package.py
index 9efa00007f..4ace96ea36 100644
--- a/var/spack/repos/builtin/packages/py-colorspacious/package.py
+++ b/var/spack/repos/builtin/packages/py-colorspacious/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyColorspacious(PythonPackage):
"""
homepage = "https://github.com/njsmith/colorspacious"
- url = "https://pypi.io/packages/source/c/colorspacious/colorspacious-1.1.2.tar.gz"
+ pypi = "colorspacious/colorspacious-1.1.2.tar.gz"
version('1.1.2', sha256='5e9072e8cdca889dac445c35c9362a22ccf758e97b00b79ff0d5a7ba3e11b618')
diff --git a/var/spack/repos/builtin/packages/py-commonmark/package.py b/var/spack/repos/builtin/packages/py-commonmark/package.py
index 20d2b605a4..09fcc65150 100644
--- a/var/spack/repos/builtin/packages/py-commonmark/package.py
+++ b/var/spack/repos/builtin/packages/py-commonmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyCommonmark(PythonPackage):
modules."""
homepage = "https://github.com/readthedocs/commonmark.py"
- url = "https://pypi.io/packages/source/c/commonmark/commonmark-0.9.0.tar.gz"
+ pypi = "commonmark/commonmark-0.9.0.tar.gz"
version('0.9.0', sha256='867fc5db078ede373ab811e16b6789e9d033b15ccd7296f370ca52d1ee792ce0')
diff --git a/var/spack/repos/builtin/packages/py-configargparse/package.py b/var/spack/repos/builtin/packages/py-configargparse/package.py
index acaf0cc4bb..9871f2e4a6 100644
--- a/var/spack/repos/builtin/packages/py-configargparse/package.py
+++ b/var/spack/repos/builtin/packages/py-configargparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-configobj/package.py b/var/spack/repos/builtin/packages/py-configobj/package.py
index 350695780d..262fe83b05 100644
--- a/var/spack/repos/builtin/packages/py-configobj/package.py
+++ b/var/spack/repos/builtin/packages/py-configobj/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyConfigobj(PythonPackage):
"""
homepage = "https://github.com/DiffSK/configobj"
- url = "https://pypi.io/packages/source/c/configobj/configobj-5.0.6.tar.gz"
+ pypi = "configobj/configobj-5.0.6.tar.gz"
version('5.0.6', sha256='a2f5650770e1c87fb335af19a9b7eb73fc05ccf22144eb68db7d00cd2bcb0902')
version('4.7.2', sha256='515ff923462592e8321df8b48c47e3428f8d406ee22b8de77bef969d1af11171')
diff --git a/var/spack/repos/builtin/packages/py-configparser/package.py b/var/spack/repos/builtin/packages/py-configparser/package.py
index 7a4109552c..fd5349f3d3 100644
--- a/var/spack/repos/builtin/packages/py-configparser/package.py
+++ b/var/spack/repos/builtin/packages/py-configparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyConfigparser(PythonPackage):
Python 2.6-3.5."""
homepage = "https://docs.python.org/3/library/configparser.html"
- url = "https://pypi.io/packages/source/c/configparser/configparser-3.5.0.tar.gz"
+ pypi = "configparser/configparser-3.5.0.tar.gz"
version('3.5.1', sha256='f41e19cb29bebfccb1a78627b3f328ec198cc8f39510c7c55e7dfc0ab58c8c62')
version('3.5.0', sha256='5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a')
diff --git a/var/spack/repos/builtin/packages/py-contextily/package.py b/var/spack/repos/builtin/packages/py-contextily/package.py
new file mode 100644
index 0000000000..d5bcfa3dee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-contextily/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 PyContextily(PythonPackage):
+ """Context geo-tiles in Python."""
+
+ homepage = "https://github.com/darribas/contextily"
+ pypi = "contextily/contextily-1.0.1.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('1.0.1', sha256='f7dc25dbc8e01163be6cdeedb49a56da9cd0d586c838861f442ef2ee45eba9d4')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-geopy', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-mercantile', type=('build', 'run'))
+ depends_on('pil', type=('build', 'run'))
+ depends_on('py-rasterio', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-joblib', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-contextlib2/package.py b/var/spack/repos/builtin/packages/py-contextlib2/package.py
index 7231512b35..6bc59bb426 100644
--- a/var/spack/repos/builtin/packages/py-contextlib2/package.py
+++ b/var/spack/repos/builtin/packages/py-contextlib2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-contextvars/package.py b/var/spack/repos/builtin/packages/py-contextvars/package.py
index a0c1a87499..189d38cf0f 100644
--- a/var/spack/repos/builtin/packages/py-contextvars/package.py
+++ b/var/spack/repos/builtin/packages/py-contextvars/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyContextvars(PythonPackage):
(see PEP 567) for Python 3.6."""
homepage = "https://github.com/MagicStack/contextvars"
- url = "https://pypi.io/packages/source/c/contextvars/contextvars-2.4.tar.gz"
+ pypi = "contextvars/contextvars-2.4.tar.gz"
version('2.4', sha256='f38c908aaa59c14335eeea12abea5f443646216c4e29380d7bf34d2018e2c39e')
diff --git a/var/spack/repos/builtin/packages/py-convertdate/package.py b/var/spack/repos/builtin/packages/py-convertdate/package.py
index b75b839ad0..14fdb922b2 100644
--- a/var/spack/repos/builtin/packages/py-convertdate/package.py
+++ b/var/spack/repos/builtin/packages/py-convertdate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyConvertdate(PythonPackage):
Indian Civil, Islamic, ISO, Julian, Mayan and Persian."""
homepage = "https://github.com/fitnr/convertdate/"
- url = "https://pypi.io/packages/source/c/convertdate/convertdate-2.2.0.tar.gz"
+ pypi = "convertdate/convertdate-2.2.0.tar.gz"
version('2.2.0', sha256='9d2b0cd8d5382d2458d4cfa59665abba398a9e9bfd3a01c6f61b7b47768d28bf')
diff --git a/var/spack/repos/builtin/packages/py-cookiecutter/package.py b/var/spack/repos/builtin/packages/py-cookiecutter/package.py
index 4a39c6ea3d..efe34d3fb6 100644
--- a/var/spack/repos/builtin/packages/py-cookiecutter/package.py
+++ b/var/spack/repos/builtin/packages/py-cookiecutter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-cookies/package.py b/var/spack/repos/builtin/packages/py-cookies/package.py
new file mode 100644
index 0000000000..9d64b5212d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-cookies/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyCookies(PythonPackage):
+ """Friendlier RFC 6265-compliant cookie parser/renderer"""
+
+ homepage = "https://github.com/sashahart/cookies"
+ pypi = "cookies/cookies-2.2.1.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('2.2.1', sha256='d6b698788cae4cfa4e62ef8643a9ca332b79bd96cb314294b864ae8d7eb3ee8e')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-counter/package.py b/var/spack/repos/builtin/packages/py-counter/package.py
index f751818caa..2f949c5536 100644
--- a/var/spack/repos/builtin/packages/py-counter/package.py
+++ b/var/spack/repos/builtin/packages/py-counter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,8 @@ class PyCounter(PythonPackage):
"""Counter package defines the "counter.Counter" class similar to
bags or multisets in other languages."""
- import_modules = ['counter']
-
homepage = "https://github.com/KelSolaar/Counter"
- url = "https://pypi.io/packages/source/C/Counter/Counter-1.0.0.tar.gz"
+ pypi = "Counter/Counter-1.0.0.tar.gz"
version('1.0.0', sha256='9e008590e360936a66c98e1a01e7a9a0ecf6af19cc588107121f5fb4613bb60c')
diff --git a/var/spack/repos/builtin/packages/py-cov-core/package.py b/var/spack/repos/builtin/packages/py-cov-core/package.py
index 8ecc781755..6214952e07 100644
--- a/var/spack/repos/builtin/packages/py-cov-core/package.py
+++ b/var/spack/repos/builtin/packages/py-cov-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyCovCore(PythonPackage):
"""plugin core for use by pytest-cov, nose-cov and nose2-cov"""
homepage = "https://github.com/schlamar/cov-core"
- url = "https://pypi.io/packages/source/c/cov-core/cov-core-1.15.0.tar.gz"
+ pypi = "cov-core/cov-core-1.15.0.tar.gz"
version('1.15.0', sha256='4a14c67d520fda9d42b0da6134638578caae1d374b9bb462d8de00587dba764c')
diff --git a/var/spack/repos/builtin/packages/py-coverage/package.py b/var/spack/repos/builtin/packages/py-coverage/package.py
index 9ec93625d3..4902fe3aac 100644
--- a/var/spack/repos/builtin/packages/py-coverage/package.py
+++ b/var/spack/repos/builtin/packages/py-coverage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,14 +9,16 @@ from spack import *
class PyCoverage(PythonPackage):
""" Testing coverage checker for python """
- homepage = "http://nedbatchelder.com/code/coverage/"
- url = "https://pypi.io/packages/source/c/coverage/coverage-4.5.4.tar.gz"
+ homepage = "https://nedbatchelder.com/code/coverage/"
+ pypi = "coverage/coverage-4.5.4.tar.gz"
version('5.3', sha256='280baa8ec489c4f542f8940f9c4c2181f0306a8ee1a54eceba071a449fb870a0')
+ version('5.0.4', sha256='1b60a95fc995649464e0cd48cecc8288bac5f4198f21d04b8229dc4097d76823')
version('4.5.4', sha256='e07d9f1a23e9e93ab5c62902833bf3e4b1f65502927379148b6622686223125c')
version('4.5.3', sha256='9de60893fb447d1e797f6bf08fdf0dbcda0c1e34c1b06c92bd3a363c0ea8c609')
version('4.3.4', sha256='eaaefe0f6aa33de5a65f48dd0040d7fe08cac9ac6c35a56d0a7db109c3e733df')
version('4.0a6', sha256='85c7f3efceb3724ab066a3fcccc05b9b89afcaefa5b669a7e2222d31eac4728d')
depends_on('python@2.6:2.8,3.3:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when="@5.0.0:")
depends_on('py-setuptools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-coveralls/package.py b/var/spack/repos/builtin/packages/py-coveralls/package.py
new file mode 100644
index 0000000000..3691e32ad3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-coveralls/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyCoveralls(PythonPackage):
+ """coveralls.io is a service for publishing your coverage stats online."""
+
+ homepage = "https://coveralls-python.readthedocs.io/en/latest/index.html"
+ pypi = "coveralls/coveralls-3.0.1.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('3.0.1', sha256='cbb942ae5ef3d2b55388cb5b43e93a269544911535f1e750e1c656aef019ce60')
+
+ variant('pyyaml', default=False, description="Enable useage of pyyaml")
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pyyaml@3.10:', type=('build', 'run'), when='+pyyaml')
+ depends_on('py-coverage@4.1:5.999', type=('build', 'run'))
+ depends_on('py-docopt@0.6.1:', type=('build', 'run'))
+ depends_on('py-pyyaml@1.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cppheaderparser/package.py b/var/spack/repos/builtin/packages/py-cppheaderparser/package.py
index 23e4c1a700..a8f80896d3 100644
--- a/var/spack/repos/builtin/packages/py-cppheaderparser/package.py
+++ b/var/spack/repos/builtin/packages/py-cppheaderparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyCppheaderparser(PythonPackage):
"""Parse C++ header files and generate a data structure
representing the class"""
- homepage = "https://pypi.org/project/CppHeaderParser"
- url = "https://pypi.io/packages/source/C/CppHeaderParser/CppHeaderParser-2.7.4.tar.gz"
+ pypi = "CppHeaderParser/CppHeaderParser-2.7.4.tar.gz"
version('2.7.4', sha256='382b30416d95b0a5e8502b214810dcac2a56432917e2651447d3abe253e3cc42')
diff --git a/var/spack/repos/builtin/packages/py-crcmod/package.py b/var/spack/repos/builtin/packages/py-crcmod/package.py
index 4ca6189b9e..bd5b86470c 100644
--- a/var/spack/repos/builtin/packages/py-crcmod/package.py
+++ b/var/spack/repos/builtin/packages/py-crcmod/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyCrcmod(PythonPackage):
compute the Cyclic Redundancy Check (CRC)"""
homepage = "http://crcmod.sourceforge.net/"
- url = "https://pypi.io/packages/source/c/crcmod/crcmod-1.7.tar.gz"
+ pypi = "crcmod/crcmod-1.7.tar.gz"
version('1.7', sha256='dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e')
version('1.6', sha256='56d27d035ea029c6ed96779ca042c0136d39d106e3c30baa6422738c7d86aaa5')
diff --git a/var/spack/repos/builtin/packages/py-crispresso/package.py b/var/spack/repos/builtin/packages/py-crispresso/package.py
index fb46dca86a..093c52c323 100644
--- a/var/spack/repos/builtin/packages/py-crispresso/package.py
+++ b/var/spack/repos/builtin/packages/py-crispresso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyCrispresso(PythonPackage):
outcomes from deep sequencing data."""
homepage = "https://github.com/lucapinello/CRISPResso"
- url = "https://pypi.io/packages/source/C/CRISPResso/CRISPResso-1.0.8.tar.gz"
+ pypi = "CRISPResso/CRISPResso-1.0.8.tar.gz"
version('1.0.8', sha256='b04ac8781ff8ed56d018c357e741f146b72ad7e0d23c9e5bc1e1bcd1a873ebc3')
diff --git a/var/spack/repos/builtin/packages/py-crossmap/package.py b/var/spack/repos/builtin/packages/py-crossmap/package.py
index 14298c3a67..c2eee33fec 100644
--- a/var/spack/repos/builtin/packages/py-crossmap/package.py
+++ b/var/spack/repos/builtin/packages/py-crossmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-cryolobm/package.py b/var/spack/repos/builtin/packages/py-cryolobm/package.py
new file mode 100644
index 0000000000..f8ca6617ac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-cryolobm/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyCryolobm(PythonPackage):
+ """The crYOLO boxmanger was written to produce annotation data for crYOLO
+ as deep learning based particle picking procedure for cryo electro microscopy."""
+
+ homepage = "https://pypi.org/project/cryoloBM/#description"
+ pypi = "cryoloBM/cryoloBM-1.3.7.tar.gz"
+
+ version('1.3.7', sha256='e3505c95cddac3a344d1c6eddf1a9ff576a1384f9194b580287c76367912bedc')
+
+ depends_on('python@3.4.0:')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-matplotlib@2.2.3:', type=('build', 'run'))
+ depends_on('py-numpy@1.14.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cryptography/package.py b/var/spack/repos/builtin/packages/py-cryptography/package.py
index ee433a9d87..5c80b4aa34 100644
--- a/var/spack/repos/builtin/packages/py-cryptography/package.py
+++ b/var/spack/repos/builtin/packages/py-cryptography/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,26 +12,33 @@ class PyCryptography(PythonPackage):
and primitives to Python developers"""
homepage = "https://github.com/pyca/cryptography"
- url = "https://pypi.io/packages/source/c/cryptography/cryptography-1.8.1.tar.gz"
+ pypi = "cryptography/cryptography-1.8.1.tar.gz"
+ version('3.4.7', sha256='3d10de8116d25649631977cb37da6cbdd2d6fa0e0281d014a5b7d337255ca713')
version('2.7', sha256='e6347742ac8f35ded4a46ff835c60e68c22a536a8ae5c4422966d06946b6d4c6')
version('2.3.1', sha256='8d10113ca826a4c29d5b85b2c4e045ffa8bad74fb525ee0eceb1d38d4c70dfd6')
version('1.8.1', sha256='323524312bb467565ebca7e50c8ae5e9674e544951d28a2904a50012a8828190')
variant('idna', default=False, description='Deprecated U-label support')
- conflicts('+idna', when='@:2.4')
+ conflicts('+idna', when='@:2.4,3.1:')
# dependencies taken from https://github.com/pyca/cryptography/blob/master/setup.py
- depends_on('python@2.6:2.8,3.4:', type=('build', 'run'))
+ depends_on('python@3.6:', when='@3.4:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.4:', when='@2.3.1:', type=('build', 'run'))
+ depends_on('python@2.6:2.8,3.4:', type=('build', 'run'))
- depends_on('py-setuptools@20.5:', type='build')
+ depends_on('py-setuptools@40.6:', when='@2.7:', type='build')
+ depends_on('py-setuptools@18.5:', when='@2.2:2.6', type='build')
+ depends_on('py-setuptools@11.3:', when='@:2.1', type='build')
+ depends_on('py-setuptools-rust@0.11.4:', when='@3.4:', type=('build', 'run'))
- depends_on('py-cffi@1.4.1:', type=('build', 'run'))
- depends_on('py-cffi@1.8:1.11.2,1.11.4:', type=('build', 'run'), when='@2.7:')
+ depends_on('py-cffi@1.12:', when='@3.3:', type=('build', 'run'))
+ depends_on('py-cffi@1.8:1.11.2,1.11.4:', when='@2.5:3.2', type=('build', 'run'))
+ depends_on('py-cffi@1.7:1.11.2,1.11.4:', when='@1.9:2.4.2', type=('build', 'run'))
+ depends_on('py-cffi@1.4.1:', type=('build', 'run'))
- depends_on('py-asn1crypto@0.21.0:', type=('build', 'run'))
- depends_on('py-six@1.4.1:', type=('build', 'run'))
+ depends_on('py-asn1crypto@0.21.0:', type=('build', 'run'), when='@:2.7')
+ depends_on('py-six@1.4.1:', type=('build', 'run'), when='@:3.3')
depends_on('py-idna@2.1:', type=('build', 'run'), when='@:2.4') # deprecated
depends_on('py-idna@2.1:', type=('build', 'run'), when='@2.5: +idna') # deprecated
depends_on('py-enum34', type=('build', 'run'), when='^python@:3.4')
diff --git a/var/spack/repos/builtin/packages/py-cssselect/package.py b/var/spack/repos/builtin/packages/py-cssselect/package.py
index 6eec358501..5cf408f223 100644
--- a/var/spack/repos/builtin/packages/py-cssselect/package.py
+++ b/var/spack/repos/builtin/packages/py-cssselect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-csvkit/package.py b/var/spack/repos/builtin/packages/py-csvkit/package.py
index 217a5174f7..1bdf4fb282 100644
--- a/var/spack/repos/builtin/packages/py-csvkit/package.py
+++ b/var/spack/repos/builtin/packages/py-csvkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyCsvkit(PythonPackage):
formats"""
homepage = 'http://csvkit.rtfd.org/'
- url = "https://pypi.io/packages/source/c/csvkit/csvkit-0.9.1.tar.gz"
+ pypi = "csvkit/csvkit-0.9.1.tar.gz"
version('1.0.4', sha256='1353a383531bee191820edfb88418c13dfe1cdfa9dd3dc46f431c05cd2a260a0')
version('0.9.1', sha256='92f8b8647becb5cb1dccb3af92a13a4e85702d42ba465ce8447881fb38c9f93a')
diff --git a/var/spack/repos/builtin/packages/py-cudf/package.py b/var/spack/repos/builtin/packages/py-cudf/package.py
index 7d6e42db01..a660fa9b7a 100644
--- a/var/spack/repos/builtin/packages/py-cudf/package.py
+++ b/var/spack/repos/builtin/packages/py-cudf/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
diff --git a/var/spack/repos/builtin/packages/py-cuml/package.py b/var/spack/repos/builtin/packages/py-cuml/package.py
index 05d09fe3d5..1becd4d192 100644
--- a/var/spack/repos/builtin/packages/py-cuml/package.py
+++ b/var/spack/repos/builtin/packages/py-cuml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-cupy/package.py b/var/spack/repos/builtin/packages/py-cupy/package.py
index 3ed5b9f557..26b06235e2 100644
--- a/var/spack/repos/builtin/packages/py-cupy/package.py
+++ b/var/spack/repos/builtin/packages/py-cupy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class PyCupy(PythonPackage):
full use of the GPU architecture."""
homepage = "https://cupy.dev/"
- url = "https://pypi.io/packages/source/c/cupy/cupy-8.0.0.tar.gz"
+ pypi = "cupy/cupy-8.0.0.tar.gz"
version('8.0.0', sha256='d1dcba5070dfa754445d010cdc952ff6b646d5f9bdcd7a63e8246e2472c3ddb8')
diff --git a/var/spack/repos/builtin/packages/py-current/package.py b/var/spack/repos/builtin/packages/py-current/package.py
index 3604d3ca14..57b05eccc4 100644
--- a/var/spack/repos/builtin/packages/py-current/package.py
+++ b/var/spack/repos/builtin/packages/py-current/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyCurrent(PythonPackage):
"""Current module relative paths and imports"""
- homepage = "http://github.com/xflr6/current"
- url = "https://pypi.io/packages/source/c/current/current-0.3.1.zip"
+ homepage = "https://github.com/xflr6/current"
+ pypi = "current/current-0.3.1.zip"
version('0.3.1', sha256='207613dc19a6cc8e1a756f26e416733c8f82a70e4ae81103d22f483aae6492a8')
diff --git a/var/spack/repos/builtin/packages/py-cutadapt/package.py b/var/spack/repos/builtin/packages/py-cutadapt/package.py
index 056d112aa8..ff1d146cb6 100644
--- a/var/spack/repos/builtin/packages/py-cutadapt/package.py
+++ b/var/spack/repos/builtin/packages/py-cutadapt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyCutadapt(PythonPackage):
reads."""
homepage = "https://cutadapt.readthedocs.io"
- url = "https://pypi.io/packages/source/c/cutadapt/cutadapt-1.13.tar.gz"
+ pypi = "cutadapt/cutadapt-1.13.tar.gz"
git = "https://github.com/marcelm/cutadapt.git"
version('2.10', sha256='936b88374b5b393a954852a0fe317a85b798dd4faf5ec52cf3ef4f3c062c242a')
diff --git a/var/spack/repos/builtin/packages/py-cvxopt/package.py b/var/spack/repos/builtin/packages/py-cvxopt/package.py
index 1cc1a932c1..4dcd6e41dd 100644
--- a/var/spack/repos/builtin/packages/py-cvxopt/package.py
+++ b/var/spack/repos/builtin/packages/py-cvxopt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,8 @@ class PyCvxopt(PythonPackage):
"""CVXOPT is a free software package for convex optimization based on the
Python programming language."""
- homepage = "http://cvxopt.org/"
- url = "https://pypi.io/packages/source/c/cvxopt/cvxopt-1.1.9.tar.gz"
-
- import_modules = ['cvxopt']
+ homepage = "https://cvxopt.org/"
+ pypi = "cvxopt/cvxopt-1.1.9.tar.gz"
version('1.2.5', sha256='94ec8c36bd6628a11de9014346692daeeef99b3b7bae28cef30c7490bbcb2d72')
version('1.1.9', sha256='8f157e7397158812cabd340b68546f1baa55a486ed0aad8bc26877593dc2983d')
diff --git a/var/spack/repos/builtin/packages/py-cvxpy/package.py b/var/spack/repos/builtin/packages/py-cvxpy/package.py
index 68b82e8a59..fbb4e111b5 100644
--- a/var/spack/repos/builtin/packages/py-cvxpy/package.py
+++ b/var/spack/repos/builtin/packages/py-cvxpy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,18 +11,20 @@ class PyCvxpy(PythonPackage):
"""Convex optimization, for everyone."""
homepage = "https://www.cvxpy.org/index.html"
- url = "https://www.pypi.io/packages/source/c/cvxpy/cvxpy-1.0.25.tar.gz"
+ pypi = "cvxpy/cvxpy-1.0.25.tar.gz"
+ version('1.1.13', sha256='a9c781e74ad76097b47b86456cb3a943898f7ec9ac8f47bcefc922051cdc4a04')
version('1.0.25', sha256='8535529ddb807067b0d59661dce1d9a6ddb2a218398a38ea7772328ad8a6ea13')
+ # Dependency versions based on README.md in python packages
+ depends_on('python@3.4:', type=('build', 'run'), when='@1.1:')
+ depends_on('python@3.6:', type=('build', 'run'), when='@1.1.13:')
depends_on('py-setuptools', type='build')
- depends_on('py-nose', type='test')
-
depends_on('py-numpy@1.15:', type=('build', 'run'))
depends_on('py-scipy@1.1.0:', type=('build', 'run'))
depends_on('py-ecos@2:', type=('build', 'run'))
depends_on('py-scs@1.1.3:', type=('build', 'run'))
- depends_on('py-osqp@0.4.1', type=('build', 'run'))
-
+ depends_on('py-scs@1.1.6:', type=('build', 'run'), when='@1.1.13:')
+ depends_on('py-osqp@0.4.1:', type=('build', 'run'))
depends_on('py-multiprocess', type=('build', 'run'))
- depends_on('py-six', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'), when='@:1.0.99')
diff --git a/var/spack/repos/builtin/packages/py-cycler/package.py b/var/spack/repos/builtin/packages/py-cycler/package.py
index 9deebea972..23b429e97e 100644
--- a/var/spack/repos/builtin/packages/py-cycler/package.py
+++ b/var/spack/repos/builtin/packages/py-cycler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyCycler(PythonPackage):
"""Composable style cycles."""
- homepage = "http://matplotlib.org/cycler/"
+ homepage = "https://matplotlib.org/cycler/"
url = "https://github.com/matplotlib/cycler/archive/v0.10.0.tar.gz"
version('0.10.0', sha256='b6d217635e03024196225367b1a438996dbbf0271bec488f00584f0e7dc15cfa')
diff --git a/var/spack/repos/builtin/packages/py-cymem/package.py b/var/spack/repos/builtin/packages/py-cymem/package.py
index fa076b8836..674b530642 100644
--- a/var/spack/repos/builtin/packages/py-cymem/package.py
+++ b/var/spack/repos/builtin/packages/py-cymem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyCymem(PythonPackage):
"""Manage calls to calloc/free through Cython."""
homepage = "https://github.com/explosion/cymem"
- url = "https://pypi.io/packages/source/c/cymem/cymem-2.0.3.tar.gz"
+ pypi = "cymem/cymem-2.0.3.tar.gz"
version('2.0.3', sha256='5083b2ab5fe13ced094a82e0df465e2dbbd9b1c013288888035e24fd6eb4ed01')
diff --git a/var/spack/repos/builtin/packages/py-cyordereddict/package.py b/var/spack/repos/builtin/packages/py-cyordereddict/package.py
index 19640edae8..ec5fd981dc 100644
--- a/var/spack/repos/builtin/packages/py-cyordereddict/package.py
+++ b/var/spack/repos/builtin/packages/py-cyordereddict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,5 +11,5 @@ class PyCyordereddict(PythonPackage):
A drop-in replacement that is 2-6x faster."""
homepage = "https://github.com/shoyer/cyordereddict"
- url = "https://pypi.io/packages/source/c/cyordereddict/cyordereddict-1.0.0.tar.gz"
+ pypi = "cyordereddict/cyordereddict-1.0.0.tar.gz"
version('1.0.0', sha256='d9b2c31796999770801a9a49403b8cb49510ecb64e5d1e9d4763ed44f2d5a76e')
diff --git a/var/spack/repos/builtin/packages/py-cython-bbox/package.py b/var/spack/repos/builtin/packages/py-cython-bbox/package.py
new file mode 100644
index 0000000000..b0411fe56c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-cython-bbox/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyCythonBbox(PythonPackage):
+ """cython_bbox is widely used in object detection tasks. To my
+ best knowledge, it was first implemented in Faster-RCNN. Since
+ then, almost all object detection projects use the source code
+ directly. In order to use it in standalone code snippets or small projects,
+ I make it a pypi module. The cython_bbox.pyx is totally borrowed
+ from Faster-RCNN. Thanks RBG!"""
+
+ homepage = "https://github.com/samson-wang/cython_bbox.git"
+ pypi = "cython-bbox/cython_bbox-0.1.3.tar.gz"
+
+ version('0.1.3', sha256='82e2d887534ecc10d3507489a05b11259f3baacd29eee37e6d8c97e1ffb16554')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py
index 2dd532be2f..40d31f8eaf 100644
--- a/var/spack/repos/builtin/packages/py-cython/package.py
+++ b/var/spack/repos/builtin/packages/py-cython/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,18 +9,13 @@ from spack import *
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.21.tar.gz"
-
- import_modules = [
- 'cython', 'Cython', 'Cython.Build', 'Cython.Compiler',
- 'Cython.Runtime', 'Cython.Distutils', 'Cython.Debugger',
- 'Cython.Debugger.Tests', 'Cython.Plex', 'Cython.Tests',
- 'Cython.Build.Tests', 'Cython.Compiler.Tests', 'Cython.Utility',
- 'Cython.Tempita', 'pyximport',
- ]
+ pypi = "cython/Cython-0.29.21.tar.gz"
+ version('0.29.24', sha256='cdf04d07c3600860e8c2ebaad4e8f52ac3feb212453c1764a49ac08c827e8443')
+ version('0.29.23', sha256='6a0d31452f0245daacb14c979c77e093eb1a546c760816b5eed0047686baad8e')
+ version('0.29.22', sha256='df6b83c7a6d1d967ea89a2903e4a931377634a297459652e4551734c48195406')
version('0.29.21', sha256='e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad')
+ version('0.29.20', sha256='22d91af5fc2253f717a1b80b8bb45acb655f643611983fd6f782b9423f8171c7')
version('0.29.16', sha256='232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05')
version('0.29.15', sha256='60d859e1efa5cc80436d58aecd3718ff2e74b987db0518376046adedba97ac30')
version('0.29.14', sha256='e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414')
@@ -47,6 +42,8 @@ class PyCython(PythonPackage):
"""Returns the Cython command"""
return Executable(self.prefix.bin.cython)
+ @run_after('build')
+ @on_package_attributes(run_tests=True)
def build_test(self):
# Warning: full suite of unit tests takes a very long time
python('runtests.py', '-j', str(make_jobs))
diff --git a/var/spack/repos/builtin/packages/py-cyvcf2/package.py b/var/spack/repos/builtin/packages/py-cyvcf2/package.py
index 153d00fe29..c9af6c2bac 100644
--- a/var/spack/repos/builtin/packages/py-cyvcf2/package.py
+++ b/var/spack/repos/builtin/packages/py-cyvcf2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyCyvcf2(PythonPackage):
"""fast vcf parsing with cython + htslib"""
homepage = "https://github.com/brentp/cyvcf2"
- url = "https://pypi.io/packages/source/c/cyvcf2/cyvcf2-0.11.7.tar.gz"
+ pypi = "cyvcf2/cyvcf2-0.11.7.tar.gz"
version('0.11.7', sha256='a4b6229b89a0a1043684c65cbdd702c366a8800dc3591fb44c4b5a08640cbeec')
diff --git a/var/spack/repos/builtin/packages/py-d2to1/package.py b/var/spack/repos/builtin/packages/py-d2to1/package.py
index 040d0b8d4b..59f4b3c496 100644
--- a/var/spack/repos/builtin/packages/py-d2to1/package.py
+++ b/var/spack/repos/builtin/packages/py-d2to1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-dadi/package.py b/var/spack/repos/builtin/packages/py-dadi/package.py
new file mode 100644
index 0000000000..9f3a2071ea
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dadi/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 PyDadi(PythonPackage):
+ """Fit population genetic models of demography and selection using
+ diffusion approximations to the allele frequency spectrum """
+
+ homepage = "https://bitbucket.org/gutenkunstlab/dadi/src/master/"
+ git = "https://bitbucket.org/gutenkunstlab/dadi.git"
+ pypi = "dadi/dadi-2.1.0.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('2020-12-02', commit='047bac0')
+ version('2.1.0', sha256='97a15aa7ef501850cad4cff66b11b66ecb65d5d68acbf2ff713585c81c3a1038')
+
+ depends_on('py-setuptools', type=('build'))
+ depends_on('python@3:', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('nlopt', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-dask-glm/package.py b/var/spack/repos/builtin/packages/py-dask-glm/package.py
new file mode 100644
index 0000000000..9a8e280390
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dask-glm/package.py
@@ -0,0 +1,47 @@
+# Copyright 2013-2021 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 PyDaskGlm(PythonPackage):
+ """Dask-glm is a library for fitting Generalized Linear Models on
+ large datasets."""
+
+ homepage = "https://dask-glm.readthedocs.io/en/latest/"
+ pypi = "dask-glm/dask-glm-0.2.0.tar.gz"
+
+ version('0.2.0', sha256='58b86cebf04fe5b9e58092e1c467e32e60d01e11b71fdc628baaa9fc6d1adee5')
+
+ variant('docs', default=False, description='Build HTML documentation')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-cloudpickle@0.2.2:', type=('build', 'run'))
+ depends_on('py-dask+array', type=('build', 'run'))
+ depends_on('py-multipledispatch@0.4.9:', type=('build', 'run'))
+ depends_on('py-scipy@0.18.1:', type=('build', 'run'))
+ depends_on('py-scikit-learn@0.18:', type=('build', 'run'), when='~docs')
+ depends_on('py-scikit-learn@0.18:0.21.999', type=('build', 'run'), when='+docs')
+ depends_on('py-jupyter', type='build', when='+docs')
+ depends_on('py-nbsphinx', type='build', when='+docs')
+ depends_on('py-notebook', type='build', when='+docs')
+ depends_on('py-numpydoc', type='build', when='+docs')
+ depends_on('py-sphinx', type='build', when='+docs')
+ depends_on('py-sphinx-rtd-theme', type='build', when='+docs')
+ depends_on('pandoc', type='build', when='+docs')
+ depends_on('py-pip', type='build', when='+docs')
+ depends_on('py-s3fs', type='build', when='+docs')
+ depends_on('py-matplotlib', type='build', when='+docs')
+ depends_on('llvm@:10.0.1~flang', type='build', when='+docs')
+ depends_on('cairo+X+ft+fc+pdf+gobject', type='build', when='+docs')
+ depends_on('harfbuzz+graphite2', type='build', when='+docs')
+
+ @run_after('install')
+ def install_docs(self):
+ if '+docs' in self.spec:
+ with working_dir('docs'):
+ make('html')
+ install_tree('docs', self.prefix.docs)
diff --git a/var/spack/repos/builtin/packages/py-dask-ml/package.py b/var/spack/repos/builtin/packages/py-dask-ml/package.py
new file mode 100644
index 0000000000..272dcd46ee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dask-ml/package.py
@@ -0,0 +1,65 @@
+# Copyright 2013-2021 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 PyDaskMl(PythonPackage):
+ """Scalable Machine Learning with Dask."""
+
+ homepage = "https://ml.dask.org/"
+ pypi = "dask-ml/dask-ml-1.8.0.tar.gz"
+
+ version('1.8.0', sha256='8fc4ac3ec1915e382fb8cae9ff1ec9b5ac1bee0b6f4c6975d6e6cb7191a4a815')
+
+ variant('docs', default=False, description='Build HTML documentation')
+ variant('xgboost', default=False, description='Deploys XGBoost alongside Dask')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+
+ depends_on('py-dask+array+dataframe@2.4.0:', type=('build', 'run'))
+ depends_on('py-distributed@2.4.0:', type=('build', 'run'))
+ depends_on('py-numba', type=('build', 'run'))
+ depends_on('py-numpy@1.17.3:', type=('build', 'run'))
+ depends_on('py-pandas@0.24.2:', type=('build', 'run'))
+ depends_on('py-scikit-learn@0.23:', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-dask-glm@0.2.0:', type=('build', 'run'))
+ depends_on('py-multipledispatch@0.4.9:', type=('build', 'run'))
+ depends_on('py-packaging', type=('build', 'run'))
+
+ depends_on('py-graphviz', type=('build', 'run'), when='+docs')
+ depends_on('py-heapdict', type=('build', 'run'), when='+docs')
+ depends_on('py-ipykernel', type=('build', 'run'), when='+docs')
+ depends_on('py-ipython', type=('build', 'run'), when='+docs')
+ depends_on('py-nbsphinx', type=('build', 'run'), when='+docs')
+ depends_on('py-nose', type=('build', 'run'), when='+docs')
+ depends_on('py-numpydoc', type=('build', 'run'), when='+docs')
+ depends_on('py-sortedcontainers', type=('build', 'run'), when='+docs')
+ depends_on('py-sphinx', type=('build', 'run'), when='+docs')
+ depends_on('py-sphinx-rtd-theme', type=('build', 'run'), when='+docs')
+ depends_on('py-sphinx-gallery', type=('build', 'run'), when='+docs')
+ depends_on('py-testpath', type=('build', 'run'), when='+docs')
+ depends_on('py-tornado', type=('build', 'run'), when='+docs')
+ depends_on('py-zict', type=('build', 'run'), when='+docs')
+ depends_on('py-dask-sphinx-theme@1.1.0:', type=('build', 'run'), when='+docs')
+ depends_on('py-nbsphinx', type=('build', 'run'), when='+docs')
+
+ depends_on('py-xgboost+dask', type=('build', 'run'), when='+docs')
+ depends_on('py-xgboost+dask', type=('build', 'run'), when='+xgboost')
+
+ patch('xgboost_dependency.patch')
+
+ conflicts('+docs', when='%gcc target=aarch64:')
+
+ @run_after('install')
+ def install_docs(self):
+ if '+docs' in self.spec:
+ with working_dir('docs'):
+ make('html')
+ install_tree('docs', self.prefix.docs)
diff --git a/var/spack/repos/builtin/packages/py-dask-ml/xgboost_dependency.patch b/var/spack/repos/builtin/packages/py-dask-ml/xgboost_dependency.patch
new file mode 100644
index 0000000000..39fa59c943
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dask-ml/xgboost_dependency.patch
@@ -0,0 +1,23 @@
+diff --git a/dask_ml/xgboost.py b/dask_ml/xgboost.py
+index 86e841db..70551df7 100644
+--- a/dask_ml/xgboost.py
++++ b/dask_ml/xgboost.py
+@@ -4,4 +4,4 @@ This may be used for training an XGBoost model on a cluster. XGBoost
+ will be setup in distributed mode alongside your existing
+ ``dask.distributed`` cluster.
+ """
+-from dask_xgboost import * # noqa
++from xgboost import * # noqa
+diff --git a/setup.py b/setup.py
+index 857f6911..fb280973 100644
+--- a/setup.py
++++ b/setup.py
+@@ -35,7 +35,7 @@ test_requires = [
+ "pytest-mock",
+ ]
+ dev_requires = doc_requires + test_requires
+-xgboost_requires = ["dask-xgboost", "xgboost"]
++xgboost_requires = ["xgboost[dask]"]
+ complete_requires = xgboost_requires
+
+ extras_require = {
diff --git a/var/spack/repos/builtin/packages/py-dask-sphinx-theme/package.py b/var/spack/repos/builtin/packages/py-dask-sphinx-theme/package.py
new file mode 100644
index 0000000000..38f213b9d8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dask-sphinx-theme/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyDaskSphinxTheme(PythonPackage):
+ """Sphinx theme for Dask documentation."""
+
+ homepage = "https://github.com/dask/dask-sphinx-theme/"
+ pypi = "dask_sphinx_theme/dask_sphinx_theme-1.3.5.tar.gz"
+
+ version('1.3.5', sha256='151970cf0efedeb398fd6ca080407d3e81b4584d333e24498262d954171baa33')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-sphinx-rtd-theme', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-dask-xgboost/package.py b/var/spack/repos/builtin/packages/py-dask-xgboost/package.py
new file mode 100644
index 0000000000..3428d49d1e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dask-xgboost/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 PyDaskXgboost(PythonPackage):
+ """Distributed training with XGBoost and Dask.distributed.
+
+ Deprecated: use `py-xgboost+dask` instead."""
+
+ homepage = "https://github.com/dask/dask-xgboost/"
+ pypi = "dask-xgboost/dask-xgboost-0.1.11.tar.gz"
+
+ # Deprecated, see https://github.com/dask/dask-xgboost/issues/80
+ version('0.1.11', sha256='3fbe1bf4344dc74edfbe9f928c7e3e6acc26dc57cefd8da8ae56a15469c6941c', deprecated=True)
+
+ variant('sparse', default=False, description='Add sparse support')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-xgboost@:0.90', type=('build', 'run'))
+ depends_on('py-dask', type=('build', 'run'))
+ depends_on('py-distributed@1.15.2:', type=('build', 'run'))
+
+ depends_on('py-sparse', type=('build', 'run'), when='+sparse')
+ depends_on('py-scipy', type=('build', 'run'), when='+sparse')
diff --git a/var/spack/repos/builtin/packages/py-dask/package.py b/var/spack/repos/builtin/packages/py-dask/package.py
index b6f3a07f10..4358b7c258 100644
--- a/var/spack/repos/builtin/packages/py-dask/package.py
+++ b/var/spack/repos/builtin/packages/py-dask/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,12 @@ class PyDask(PythonPackage):
"""Dask is a flexible parallel computing library for analytics."""
homepage = "https://github.com/dask/dask/"
- url = "https://pypi.io/packages/source/d/dask/dask-1.1.0.tar.gz"
+ pypi = "dask/dask-1.1.0.tar.gz"
maintainers = ['skosukhin']
+ version('2021.6.2', sha256='8588fcd1a42224b7cfcd2ebc8ad616734abb6b1a4517efd52d89c7dd66eb91f8')
+ version('2020.12.0', sha256='43e745afd4b464e6c0113131e430a16dce6ac42460b06e24d799093d098f7ab0')
version('2.16.0', sha256='2af5b0dcd48ce679ce0321cf91de623f4fe376262789b951fefa3c334002f350')
version('1.2.2', sha256='5e7876bae2a01b355d1969b73aeafa23310febd8c353163910b73e93dc7e492c')
version('1.1.2', sha256='93b355b9a9c9a3ddbb39fab99d5759aad5cfd346f4520b87788970e80cf97256')
@@ -29,82 +31,104 @@ class PyDask(PythonPackage):
variant('delayed', default=True, description='Install requirements for dask.delayed (dask.imperative)')
variant('yaml', default=True, description='Ensure support for YAML configuration files')
+ conflicts('~bag', when='@2021.3.1:')
conflicts('+distributed', when='@:0.4.0,0.7.6:0.8.1')
conflicts('+diagnostics', when='@:0.5.0')
+ conflicts('~delayed', when='@2021.3.1:')
conflicts('+yaml', when='@:0.17.5')
+ conflicts('~yaml', when='@2.17.1:')
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
depends_on('python@3.5:', type=('build', 'run'), when='@2.0.0:')
depends_on('python@3.6:', type=('build', 'run'), when='@2.7.0:')
+ depends_on('python@3.7:', type=('build', 'run'), when='@2021.3.1:')
depends_on('py-setuptools', type='build')
- depends_on('py-pytest@3.1.0:', type='test')
- depends_on('py-requests', type='test')
- depends_on('py-pytest-runner', type='test')
+
+ # Common requirements
+ depends_on('py-pyyaml', type=('build', 'run'), when='@2.17.1:')
+ depends_on('py-cloudpickle@1.1.1:', type=('build', 'run'), when='@2021.3.1:')
+ depends_on('py-fsspec@0.6.0:', type=('build', 'run'), when='@2021.3.1:')
+ depends_on('py-toolz@0.8.2:', type=('build', 'run'), when='@2021.3.1:')
+ depends_on('py-partd@0.3.10:', type=('build', 'run'), when='@2021.3.1:')
# Requirements for dask.array
- depends_on('py-numpy@1.10.4:', type=('build', 'run'), when='+array')
+ depends_on('py-numpy', type=('build', 'run'), when='@:0.17.1 +array')
+ depends_on('py-numpy@1.10.4:', type=('build', 'run'), when='@0.17.2: +array')
depends_on('py-numpy@1.11.0:', type=('build', 'run'), when='@0.17.3: +array')
depends_on('py-numpy@1.13.0:', type=('build', 'run'), when='@1.2.1: +array')
+ depends_on('py-numpy@1.15.1:', type=('build', 'run'), when='@2020.12.0: +array')
+ depends_on('py-numpy@1.16.0:', type=('build', 'run'), when='@2021.3.1: +array')
- depends_on('py-toolz', type=('build', 'run'), when='+array')
+ depends_on('py-toolz', type=('build', 'run'), when='@:0.6.1 +array')
depends_on('py-toolz@0.7.2:', type=('build', 'run'), when='@0.7.0: +array')
depends_on('py-toolz@0.7.3:', type=('build', 'run'), when='@0.14.1: +array')
- depends_on('py-toolz@0.8.2:', type=('build', 'run'), when='@2.13.0: +array')
+ # The dependency on py-toolz is non-optional starting version 2021.3.1
+ depends_on('py-toolz@0.8.2:', type=('build', 'run'), when='@2.13.0:2021.3.0 +array')
# Requirements for dask.bag
depends_on('py-dill', type=('build', 'run'), when='@:0.7.5 +bag')
depends_on('py-cloudpickle', type=('build', 'run'), when='@0.7.6: +bag')
depends_on('py-cloudpickle@0.2.1:', type=('build', 'run'), when='@0.8.2: +bag')
- depends_on('py-cloudpickle@0.2.2:', type=('build', 'run'), when='@2.13.0: +bag')
+ # The dependency on py-cloudpickle is non-optional starting version 2021.3.1
+ depends_on('py-cloudpickle@0.2.2:', type=('build', 'run'), when='@2.13.0:2021.3.0 +bag')
depends_on('py-fsspec@0.3.3:', type=('build', 'run'), when='@2.2.0: +bag')
depends_on('py-fsspec@0.5.1:', type=('build', 'run'), when='@2.5.0: +bag')
- depends_on('py-fsspec@0.6.0:', type=('build', 'run'), when='@2.8.0: +bag')
+ # The dependency on py-fsspec is non-optional starting version 2021.3.1
+ depends_on('py-fsspec@0.6.0:', type=('build', 'run'), when='@2.8.0:2021.3.0 +bag')
- depends_on('py-toolz', type=('build', 'run'), when='+bag')
+ depends_on('py-toolz', type=('build', 'run'), when='@:0.6.1 +bag')
depends_on('py-toolz@0.7.2:', type=('build', 'run'), when='@0.7.0: +bag')
depends_on('py-toolz@0.7.3:', type=('build', 'run'), when='@0.14.1: +bag')
- depends_on('py-toolz@0.8.2:', type=('build', 'run'), when='@2.13.0: +bag')
+ # The dependency on py-toolz is non-optional starting version 2021.3.1
+ depends_on('py-toolz@0.8.2:', type=('build', 'run'), when='@2.13.0:2021.3.0 +bag')
- depends_on('py-partd', type=('build', 'run'), when='+bag')
depends_on('py-partd@0.3.2:', type=('build', 'run'), when='@0.6.0: +bag')
depends_on('py-partd@0.3.3:', type=('build', 'run'), when='@0.9.0: +bag')
depends_on('py-partd@0.3.5:', type=('build', 'run'), when='@0.10.2: +bag')
depends_on('py-partd@0.3.6:', type=('build', 'run'), when='@0.12.0: +bag')
depends_on('py-partd@0.3.7:', type=('build', 'run'), when='@0.13.0: +bag')
depends_on('py-partd@0.3.8:', type=('build', 'run'), when='@0.15.0: +bag')
- depends_on('py-partd@0.3.10:', type=('build', 'run'), when='@2.0.0: +bag')
+ # The dependency on py-partd is non-optional starting version 2021.3.1
+ depends_on('py-partd@0.3.10:', type=('build', 'run'), when='@2.0.0:2021.3.0 +bag')
# Requirements for dask.dataframe
- depends_on('py-numpy@1.10.4:', type=('build', 'run'), when='+dataframe')
+ depends_on('py-numpy', type=('build', 'run'), when='@:0.17.1 +dataframe')
+ depends_on('py-numpy@1.10.4:', type=('build', 'run'), when='@0.17.2: +dataframe')
depends_on('py-numpy@1.11.0:', type=('build', 'run'), when='@0.17.3: +dataframe')
depends_on('py-numpy@1.13.0:', type=('build', 'run'), when='@1.2.1: +dataframe')
+ depends_on('py-numpy@1.15.1:', type=('build', 'run'), when='@2020.12.0: +dataframe')
+ depends_on('py-numpy@1.16.0:', type=('build', 'run'), when='@2021.3.1: +dataframe')
depends_on('py-pandas@0.16.0:', type=('build', 'run'), when='+dataframe')
depends_on('py-pandas@0.18.0:', type=('build', 'run'), when='@0.9.0: +dataframe')
depends_on('py-pandas@0.19.0:', type=('build', 'run'), when='@0.14.0: +dataframe')
depends_on('py-pandas@0.21.0:', type=('build', 'run'), when='@1.2.1: +dataframe')
depends_on('py-pandas@0.23.0:', type=('build', 'run'), when='@2.11.0: +dataframe')
+ depends_on('py-pandas@0.25.0:', type=('build', 'run'), when='@2020.12.0: +dataframe')
- depends_on('py-toolz', type=('build', 'run'), when='+dataframe')
+ depends_on('py-toolz', type=('build', 'run'), when='@:0.6.1 +dataframe')
depends_on('py-toolz@0.7.2:', type=('build', 'run'), when='@0.7.0: +dataframe')
depends_on('py-toolz@0.7.3:', type=('build', 'run'), when='@0.14.1: +dataframe')
- depends_on('py-toolz@0.8.2:', type=('build', 'run'), when='@2.13.0: +dataframe')
+ # The dependency on py-toolz is non-optional starting version 2021.3.1
+ depends_on('py-toolz@0.8.2:', type=('build', 'run'), when='@2.13.0:2021.3.0 +dataframe')
- depends_on('py-partd', type=('build', 'run'), when='+dataframe')
depends_on('py-partd@0.3.2:', type=('build', 'run'), when='@0.6.0: +dataframe')
depends_on('py-partd@0.3.3:', type=('build', 'run'), when='@0.9.0: +dataframe')
depends_on('py-partd@0.3.5:', type=('build', 'run'), when='@0.10.2: +dataframe')
depends_on('py-partd@0.3.7:', type=('build', 'run'), when='@0.13.0: +dataframe')
depends_on('py-partd@0.3.8:', type=('build', 'run'), when='@0.15.0: +dataframe')
depends_on('py-partd@0.3.10:', type=('build', 'run'), when='@2.0.0: +dataframe')
+ # The dependency on py-partd is non-optional starting version 2021.3.1
+ depends_on('py-partd@0.3.10:', type=('build', 'run'), when='@2.0.0:2021.3.0 +dataframe')
depends_on('py-cloudpickle@0.2.1:', type=('build', 'run'), when='@0.8.2:2.6.0 +dataframe')
depends_on('py-fsspec@0.3.3:', type=('build', 'run'), when='@2.2.0: +dataframe')
depends_on('py-fsspec@0.5.1:', type=('build', 'run'), when='@2.5.0: +dataframe')
- depends_on('py-fsspec@0.6.0:', type=('build', 'run'), when='@2.8.0: +dataframe')
+ # The dependency on py-fsspec is non-optional starting version 2021.3.1
+ depends_on('py-fsspec@0.6.0:', type=('build', 'run'), when='@2.8.0:2021.3.0 +dataframe')
# Requirements for dask.distributed
depends_on('py-dill', type=('build', 'run'), when='@:0.7.5 +distributed')
@@ -119,21 +143,26 @@ class PyDask(PythonPackage):
depends_on('py-distributed@1.21:', type=('build', 'run'), when='@0.17.0: +distributed')
depends_on('py-distributed@1.22:', type=('build', 'run'), when='@0.18.0: +distributed')
depends_on('py-distributed@2.0:', type=('build', 'run'), when='@2.0.0: +distributed')
+ depends_on('py-distributed@2020.12.0:', type=('build', 'run'), when='@2020.12.0: +distributed')
+ depends_on('py-distributed@2021.6.2:', type=('build', 'run'), when='@2021.6.2: +distributed')
# Requirements for dask.diagnostics
- depends_on('py-bokeh', type=('build', 'run'), when='+diagnostics')
depends_on('py-bokeh@1.0.0:', type=('build', 'run'), when='@2.0.0: +diagnostics')
+ depends_on('py-bokeh@1.0.0:1.999,2.0.1:', type=('build', 'run'), when='@2.26.0: +diagnostics')
# Requirements for dask.delayed
- depends_on('py-cloudpickle@0.2.1:', type=('build', 'run'), when='@2,7.0: +delayed')
- depends_on('py-cloudpickle@0.2.2:', type=('build', 'run'), when='@2.13.0: +delayed')
+ depends_on('py-cloudpickle@0.2.1:', type=('build', 'run'), when='@2.7.0: +delayed')
+ # The dependency on py-cloudpickle is non-optional starting version 2021.3.1
+ depends_on('py-cloudpickle@0.2.2:', type=('build', 'run'), when='@2.13.0:2021.3.0 +delayed')
depends_on('py-toolz@0.7.2:', type=('build', 'run'), when='@0.8.1: +delayed')
depends_on('py-toolz@0.7.3:', type=('build', 'run'), when='@0.14.1: +delayed')
- depends_on('py-toolz@0.8.2:', type=('build', 'run'), when='@2.13.0: +delayed')
+ # The dependency on py-toolz is non-optional starting version 2021.3.1
+ depends_on('py-toolz@0.8.2:', type=('build', 'run'), when='@2.13.0:2021.3.0 +delayed')
# Support for YAML configuration files
- depends_on('py-pyyaml', type=('build', 'run'), when='+yaml')
+ # The dependency on py-pyyaml is non-optional starting version 2.17.1
+ depends_on('py-pyyaml', type=('build', 'run'), when='@0.18.0:2.17.0 +yaml')
@property
def import_modules(self):
diff --git a/var/spack/repos/builtin/packages/py-dataclasses/package.py b/var/spack/repos/builtin/packages/py-dataclasses/package.py
index c79947953d..33ec35fca1 100644
--- a/var/spack/repos/builtin/packages/py-dataclasses/package.py
+++ b/var/spack/repos/builtin/packages/py-dataclasses/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyDataclasses(PythonPackage):
"""A backport of the dataclasses module for Python 3.6"""
homepage = "https://github.com/ericvsmith/dataclasses"
- url = "https://pypi.io/packages/source/d/dataclasses/dataclasses-0.7.tar.gz"
+ pypi = "dataclasses/dataclasses-0.7.tar.gz"
version('0.7', sha256='494a6dcae3b8bcf80848eea2ef64c0cc5cd307ffc263e17cdf42f3e5420808e6')
diff --git a/var/spack/repos/builtin/packages/py-datacube/package.py b/var/spack/repos/builtin/packages/py-datacube/package.py
new file mode 100644
index 0000000000..d9ade69189
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-datacube/package.py
@@ -0,0 +1,49 @@
+# Copyright 2013-2021 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 PyDatacube(PythonPackage):
+ """An analysis environment for satellite and other earth observation data."""
+
+ homepage = "https://github.com/opendatacube/datacube-core"
+ pypi = "datacube/datacube-1.8.3.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('1.8.3', sha256='d1e1a49c615fdaebf6e6008da7f925bc09e9d7bf94f259a1c596d266d1c36649')
+
+ # Excluding 'datacube.utils.aws' since it requires 'boto3'
+ import_modules = [
+ 'datacube_apps', 'datacube_apps.stacker', 'datacube', 'datacube.ui',
+ 'datacube.drivers', 'datacube.drivers.rio', 'datacube.drivers.postgres',
+ 'datacube.drivers.netcdf', 'datacube.utils', 'datacube.utils.rio',
+ 'datacube.utils.geometry', 'datacube.storage', 'datacube.execution',
+ 'datacube.virtual', 'datacube.scripts', 'datacube.model', 'datacube.api',
+ 'datacube.index', 'datacube.testutils'
+ ]
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-affine', type=('build', 'run'))
+ depends_on('py-pyproj@2.5:', type=('build', 'run'))
+ depends_on('py-shapely@1.6.4:', type=('build', 'run'))
+ depends_on('py-cachetools', type=('build', 'run'))
+ depends_on('py-click@5.0:', type=('build', 'run'))
+ depends_on('py-cloudpickle@0.4:', type=('build', 'run'))
+ depends_on('py-dask+array', type=('build', 'run'))
+ depends_on('py-distributed', type=('build', 'run'))
+ depends_on('py-jsonschema', type=('build', 'run'))
+ depends_on('py-netcdf4', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-psycopg2', type=('build', 'run'))
+ depends_on('py-lark-parser@0.6.7:', type=('build', 'run'))
+ depends_on('py-python-dateutil', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-rasterio@1.0.2:', type=('build', 'run'))
+ depends_on('py-sqlalchemy', type=('build', 'run'))
+ depends_on('py-toolz', type=('build', 'run'))
+ depends_on('py-xarray@0.9:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-datalad/package.py b/var/spack/repos/builtin/packages/py-datalad/package.py
new file mode 100644
index 0000000000..c9194bfa32
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-datalad/package.py
@@ -0,0 +1,108 @@
+# Copyright 2013-2021 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 PyDatalad(PythonPackage):
+ """data distribution geared toward scientific datasets.
+
+ DataLad makes data management and data distribution more accessible. To do
+ that, it stands on the shoulders of Git and Git-annex to deliver a
+ decentralized system for data exchange. This includes automated ingestion
+ of data from online portals and exposing it in readily usable form as
+ Git(-annex) repositories, so-called datasets. The actual data storage and
+ permission management, however, remains with the original data providers.
+ """
+
+ homepage = "https://datalad.org/"
+ pypi = "datalad/datalad-0.14.6.tar.gz"
+
+ version('0.14.6', sha256='149b25a00da133a81be3cbdc041a1985418f0918fa5961ba979e23b5b3c08c63')
+
+ variant('downloaders-extra', default=False, description="Enable extra downloaders support")
+ variant('misc', default=False, description="Enable misc")
+ variant('tests', default=False, description="Enable tests")
+ variant('metadata-extra', default=False, description="Enable extra metadata support")
+ variant('duecredit', default=False, description="Enable duecredit support")
+ variant('full', default=False, description="Enable support for all available variants")
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools@40.8.0:', type='build')
+ depends_on('git', type=('build', 'run'))
+ depends_on('git-annex', type=('build', 'run'))
+
+ # core
+ depends_on('py-appdirs', type=('build', 'run'))
+ depends_on('py-chardet@3.0.4:', type=('build', 'run'))
+ depends_on('py-distro', type=('build', 'run'), when='^python@3.8:')
+ depends_on('py-importlib-metadata', type=('build', 'run'), when='^python@:3.7')
+ depends_on('py-iso8601', type=('build', 'run'))
+ depends_on('py-humanize', type=('build', 'run'))
+ depends_on('py-fasteners@0.14:', type=('build', 'run'))
+ depends_on('py-patool@1.7:', type=('build', 'run'))
+ depends_on('py-tqdm', type=('build', 'run'))
+ depends_on('py-wrapt', type=('build', 'run'))
+ depends_on('py-annexremote', type=('build', 'run'))
+ # additional dependency on 'colorama' if platform_system=="Windows"'
+
+ # downloaders
+ depends_on('py-boto', type=('build', 'run'))
+ depends_on('py-keyring@8.0:', type=('build', 'run'))
+ depends_on('py-keyrings-alt', type=('build', 'run'))
+ depends_on('py-msgpack', type=('build', 'run'))
+ depends_on('py-requests@1.2:', type=('build', 'run'))
+
+ # puplish
+ depends_on('py-jsmin', type=('build', 'run'))
+ depends_on('py-pygithub', type=('build', 'run'))
+
+ # metadata
+ depends_on('py-simplejson', type=('build', 'run'))
+ depends_on('py-whoosh', type=('build', 'run'))
+
+ with when('+downloaders-extra'):
+ depends_on('py-requests-ftp', type=('build', 'run'))
+
+ with when('+misc'):
+ depends_on('py-pyperclip', type=('build', 'run'))
+ depends_on('py-python-dateutil', type=('build', 'run'))
+
+ with when('+tests'):
+ depends_on('py-beautifulsoup4', type=('build', 'run'))
+ depends_on('py-httpretty@0.9.4:', type=('build', 'run'))
+ depends_on('py-nose@1.3.4:', type=('build', 'run'))
+ depends_on('py-vcrpy', type=('build', 'run'))
+
+ with when('+metadata-extra'):
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-mutagen@1.36:', type=('build', 'run'))
+ depends_on('py-exifread', type=('build', 'run'))
+ depends_on('py-python-xmp-toolkit', type=('build', 'run'))
+ depends_on('py-pillow', type=('build', 'run'))
+
+ with when('+duecredit'):
+ depends_on('py-duecredit', type=('build', 'run'))
+
+ with when('+full'):
+ # all the above
+ # downloader-extra
+ depends_on('py-requests-ftp', type=('build', 'run'))
+ # misc
+ depends_on('py-pyperclip', type=('build', 'run'))
+ depends_on('py-python-dateutil', type=('build', 'run'))
+ # tests
+ depends_on('py-beautifulsoup4', type=('build', 'run'))
+ depends_on('py-httpretty@0.9.4:', type=('build', 'run'))
+ depends_on('py-nose@1.3.4:', type=('build', 'run'))
+ depends_on('py-vcrpy', type=('build', 'run'))
+ # metadata-extra
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-mutagen@1.36:', type=('build', 'run'))
+ depends_on('py-exifread', type=('build', 'run'))
+ depends_on('py-python-xmp-toolkit', type=('build', 'run'))
+ depends_on('py-pillow', type=('build', 'run'))
+ # duecredit
+ depends_on('py-duecredit', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-datasets/package.py b/var/spack/repos/builtin/packages/py-datasets/package.py
new file mode 100644
index 0000000000..db8ed919bb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-datasets/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 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 PyDatasets(PythonPackage):
+ """Datasets is a lightweight library providing two main
+ features: one-line dataloaders for many public datasets and
+ efficient data pre-processing."""
+
+ homepage = "https://github.com/huggingface/datasets"
+ pypi = "datasets/datasets-1.8.0.tar.gz"
+
+ version('1.8.0', sha256='d57c32bb29e453ee7f3eb0bbca3660ab4dd2d0e4648efcfa987432624cab29d3')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.17:', type=('build', 'run'))
+ depends_on('py-pyarrow@1.0.0:3.999+parquet', type=('build', 'run'))
+ depends_on('py-dill', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-requests@2.19:', type=('build', 'run'))
+ depends_on('py-tqdm@4.27:4.49.999', type=('build', 'run'))
+ depends_on('py-dataclasses', when='^python@:3.6.999', type=('build', 'run'))
+ depends_on('py-xxhash', type=('build', 'run'))
+ depends_on('py-multiprocess', type=('build', 'run'))
+ depends_on('py-importlib-metadata', when='^python@:3.7.999', type=('build', 'run'))
+ depends_on('py-huggingface-hub@:0.0.999', type=('build', 'run'))
+ depends_on('py-packaging', type=('build', 'run'))
+
+ depends_on('py-fsspec@:0.8.0', when='^python@:3.7.999', type=('build', 'run'))
+ depends_on('py-fsspec', when='^python@3.8:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-dateparser/package.py b/var/spack/repos/builtin/packages/py-dateparser/package.py
index 5d233e6377..ac977d938d 100644
--- a/var/spack/repos/builtin/packages/py-dateparser/package.py
+++ b/var/spack/repos/builtin/packages/py-dateparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyDateparser(PythonPackage):
"""dateparser -- python parser for human readable dates"""
homepage = "https://github.com/scrapinghub/dateparser"
- url = "https://pypi.io/packages/source/d/dateparser/dateparser-0.7.2.tar.gz"
+ pypi = "dateparser/dateparser-0.7.2.tar.gz"
version('0.7.2', sha256='e1eac8ef28de69a554d5fcdb60b172d526d61924b1a40afbbb08df459a36006b')
@@ -26,8 +26,3 @@ class PyDateparser(PythonPackage):
depends_on('py-ruamel-yaml', type=('build', 'run'), when='+calendars')
depends_on('py-convertdate', type=('build', 'run'), when='+calendars')
depends_on('py-jdatetime', type=('build', 'run'), when='+calendars')
- depends_on('py-mock', type='test')
- depends_on('py-nose', type='test')
- depends_on('py-parameterized', type='test')
- depends_on('py-six', type='test')
- depends_on('py-coverage', type='test')
diff --git a/var/spack/repos/builtin/packages/py-dbf/package.py b/var/spack/repos/builtin/packages/py-dbf/package.py
index d5d2f3b5e7..c729c652b1 100644
--- a/var/spack/repos/builtin/packages/py-dbf/package.py
+++ b/var/spack/repos/builtin/packages/py-dbf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyDbf(PythonPackage):
"""Pure python package for reading/writing dBase, FoxPro, and Visual FoxPro
.dbf files (including memos)"""
- homepage = 'https://pypi.python.org/pypi/dbf'
- url = "https://pypi.io/packages/source/d/dbf/dbf-0.96.005.tar.gz"
+ pypi = "dbf/dbf-0.96.005.tar.gz"
version('0.96.005', sha256='d6e03f1dca40488c37cf38be9cb28b694c46cec747a064dcb0591987de58ed02')
version('0.94.003', sha256='c95b688d2f28944004368799cc6e2999d78af930a69bb2643ae098c721294444')
diff --git a/var/spack/repos/builtin/packages/py-dbfread/package.py b/var/spack/repos/builtin/packages/py-dbfread/package.py
index 338382d127..80ad1d8062 100644
--- a/var/spack/repos/builtin/packages/py-dbfread/package.py
+++ b/var/spack/repos/builtin/packages/py-dbfread/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyDbfread(PythonPackage):
batch jobs and one-off scripts."""
homepage = "https://dbfread.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/d/dbfread/dbfread-2.0.7.tar.gz"
+ pypi = "dbfread/dbfread-2.0.7.tar.gz"
version('2.0.7', sha256='07c8a9af06ffad3f6f03e8fe91ad7d2733e31a26d2b72c4dd4cfbae07ee3b73d')
diff --git a/var/spack/repos/builtin/packages/py-deap/package.py b/var/spack/repos/builtin/packages/py-deap/package.py
index 9940120413..7e51cc5c7f 100644
--- a/var/spack/repos/builtin/packages/py-deap/package.py
+++ b/var/spack/repos/builtin/packages/py-deap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyDeap(PythonPackage):
"""Distributed Evolutionary Algorithms in Python."""
- homepage = "http://deap.readthedocs.org/"
- url = "https://pypi.io/packages/source/d/deap/deap-1.3.1.tar.gz"
+ homepage = "https://deap.readthedocs.org/"
+ pypi = "deap/deap-1.3.1.tar.gz"
version('1.3.1', sha256='11f54493ceb54aae10dde676577ef59fc52d52f82729d5a12c90b0813c857a2f')
diff --git a/var/spack/repos/builtin/packages/py-debtcollector/package.py b/var/spack/repos/builtin/packages/py-debtcollector/package.py
new file mode 100644
index 0000000000..89598c845f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-debtcollector/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 PyDebtcollector(PythonPackage):
+ """
+ A collection of Python deprecation patterns and strategies that help you
+ collect your technical debt in a non-destructive manner.
+ """
+
+ homepage = "https://docs.openstack.org/debtcollector/latest"
+ pypi = "debtcollector/debtcollector-2.2.0.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('2.2.0', sha256='787981f4d235841bf6eb0467e23057fb1ac7ee24047c32028a8498b9128b6829')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build')
+
+ depends_on('py-six@1.10.0:', type=('build', 'run'))
+ depends_on('py-wrapt@1.7.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-debugpy/package.py b/var/spack/repos/builtin/packages/py-debugpy/package.py
new file mode 100644
index 0000000000..64dee06b76
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-debugpy/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyDebugpy(PythonPackage):
+ """An implementation of the Debug Adapter Protocol for Python."""
+
+ homepage = "https://github.com/microsoft/debugpy/"
+ pypi = "debugpy/debugpy-1.4.1.zip"
+
+ # 'debugpy._vendored' requires additional dependencies, Windows-specific
+ import_modules = [
+ 'debugpy', 'debugpy.adapter', 'debugpy.launcher', 'debugpy.server',
+ 'debugpy.common'
+ ]
+
+ version('1.4.1', sha256='889316de0b8ff3732927cb058cfbd3371e4cd0002ecc170d34c755ad289c867c')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'link', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-decorator/package.py b/var/spack/repos/builtin/packages/py-decorator/package.py
index d174fc8a1f..1c1c53c41f 100644
--- a/var/spack/repos/builtin/packages/py-decorator/package.py
+++ b/var/spack/repos/builtin/packages/py-decorator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyDecorator(PythonPackage):
various non-trivial examples."""
homepage = "https://github.com/micheles/decorator"
- url = "https://pypi.io/packages/source/d/decorator/decorator-4.4.2.tar.gz"
+ pypi = "decorator/decorator-4.4.2.tar.gz"
version('4.4.2', sha256='e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7')
version('4.4.0', sha256='86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de')
diff --git a/var/spack/repos/builtin/packages/py-deeptools/package.py b/var/spack/repos/builtin/packages/py-deeptools/package.py
index 35103a5e5d..f820b8d3e4 100644
--- a/var/spack/repos/builtin/packages/py-deeptools/package.py
+++ b/var/spack/repos/builtin/packages/py-deeptools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyDeeptools(PythonPackage):
"""deepTools addresses the challenge of handling the large amounts of data
that are now routinely generated from DNA sequencing centers."""
- homepage = "https://pypi.io/packages/source/d/deepTools"
# The test suite and associated test data is missing in the pypi tarball.
+ homepage = "https://pypi.python.org/pypi/deepTools/"
url = "https://github.com/deeptools/deepTools/archive/3.3.0.tar.gz"
version('3.3.0', sha256='a7aaf79fe939ca307fe6ec5e156750389fdfa4324bf0dd6bf5f53d5fda109358')
@@ -30,8 +30,6 @@ class PyDeeptools(PythonPackage):
depends_on('py-plotly@2.0.0:', type=('build', 'run'))
depends_on('py-deeptoolsintervals@0.1.8:', type=('build', 'run'))
- depends_on('py-nose', type='test')
-
def patch(self):
# Add nosetest hook for "python setup.py test" argument.
filter_file(r'^setup\(',
diff --git a/var/spack/repos/builtin/packages/py-deeptoolsintervals/package.py b/var/spack/repos/builtin/packages/py-deeptoolsintervals/package.py
index 09e5a32a58..576ae51692 100644
--- a/var/spack/repos/builtin/packages/py-deeptoolsintervals/package.py
+++ b/var/spack/repos/builtin/packages/py-deeptoolsintervals/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyDeeptoolsintervals(PythonPackage):
"""A python module creating/accessing GTF-based interval trees with
associated meta-data."""
- homepage = 'https://pypi.org/project/deeptoolsintervals/'
- url = 'https://pypi.io/packages/source/d/deeptoolsintervals/deeptoolsintervals-0.1.9.tar.gz'
+ pypi = 'deeptoolsintervals/deeptoolsintervals-0.1.9.tar.gz'
version('0.1.9', sha256='7d94c36fd2b6f10d8b99e536d2672e8228971f1fc810497d33527bba2c40d4f6')
diff --git a/var/spack/repos/builtin/packages/py-defusedxml/package.py b/var/spack/repos/builtin/packages/py-defusedxml/package.py
index 0b8261f6e5..f911614d29 100644
--- a/var/spack/repos/builtin/packages/py-defusedxml/package.py
+++ b/var/spack/repos/builtin/packages/py-defusedxml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyDefusedxml(PythonPackage):
"""defusing XML bombs and other exploits"""
homepage = "https://github.com/tiran/defusedxml"
- url = "https://pypi.io/packages/source/d/defusedxml/defusedxml-0.5.0.tar.gz"
+ pypi = "defusedxml/defusedxml-0.5.0.tar.gz"
version('0.6.0', sha256='f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5')
version('0.5.0', sha256='24d7f2f94f7f3cb6061acb215685e5125fbcdc40a857eff9de22518820b0a4f4')
diff --git a/var/spack/repos/builtin/packages/py-dendropy/package.py b/var/spack/repos/builtin/packages/py-dendropy/package.py
index aa58be0d77..e7515b8f68 100644
--- a/var/spack/repos/builtin/packages/py-dendropy/package.py
+++ b/var/spack/repos/builtin/packages/py-dendropy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class PyDendropy(PythonPackage):
NeXML, Phylip, FASTA, etc."""
homepage = "https://www.dendropy.org"
- url = "https://pypi.io/packages/source/d/dendropy/DendroPy-4.3.0.tar.gz"
+ pypi = "dendropy/DendroPy-4.3.0.tar.gz"
version('4.3.0', sha256='bd5b35ce1a1c9253209b7b5f3939ac22beaa70e787f8129149b4f7ffe865d510')
version('3.12.0', sha256='38a0f36f2f7aae43ec5599408b0d0a4c80996b749589f025940d955a70fc82d4')
diff --git a/var/spack/repos/builtin/packages/py-deprecated/package.py b/var/spack/repos/builtin/packages/py-deprecated/package.py
index 7d1fe4af93..992523088f 100644
--- a/var/spack/repos/builtin/packages/py-deprecated/package.py
+++ b/var/spack/repos/builtin/packages/py-deprecated/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-deprecation/package.py b/var/spack/repos/builtin/packages/py-deprecation/package.py
index 2128e78233..ba8a64d567 100644
--- a/var/spack/repos/builtin/packages/py-deprecation/package.py
+++ b/var/spack/repos/builtin/packages/py-deprecation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyDeprecation(PythonPackage):
"""The deprecation library provides a deprecated decorator and a
fail_if_not_removed decorator for your tests. """
- homepage = "http://deprecation.readthedocs.io/"
- url = "https://pypi.io/packages/source/d/deprecation/deprecation-2.0.7.tar.gz"
+ homepage = "https://deprecation.readthedocs.io/"
+ pypi = "deprecation/deprecation-2.0.7.tar.gz"
version('2.0.7', sha256='c0392f676a6146f0238db5744d73e786a43510d54033f80994ef2f4c9df192ed')
diff --git a/var/spack/repos/builtin/packages/py-descartes/package.py b/var/spack/repos/builtin/packages/py-descartes/package.py
index fb834d07c1..4a92a44ca8 100644
--- a/var/spack/repos/builtin/packages/py-descartes/package.py
+++ b/var/spack/repos/builtin/packages/py-descartes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyDescartes(PythonPackage):
"""Use Shapely or GeoJSON-like geometric objects as matplotlib paths
and patches"""
- homepage = "https://pypi.org/project/descartes/"
- url = "https://pypi.io/packages/source/d/descartes/descartes-1.1.0.tar.gz"
+ pypi = "descartes/descartes-1.1.0.tar.gz"
version('1.1.0', sha256='135a502146af5ed6ff359975e2ebc5fa4b71b5432c355c2cafdc6dea1337035b')
diff --git a/var/spack/repos/builtin/packages/py-devlib/package.py b/var/spack/repos/builtin/packages/py-devlib/package.py
index 5a9bb49486..f4cc8823f1 100644
--- a/var/spack/repos/builtin/packages/py-devlib/package.py
+++ b/var/spack/repos/builtin/packages/py-devlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-dgl/package.py b/var/spack/repos/builtin/packages/py-dgl/package.py
index 9ef1bd9ed8..e2fd91ff98 100644
--- a/var/spack/repos/builtin/packages/py-dgl/package.py
+++ b/var/spack/repos/builtin/packages/py-dgl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-dictdiffer/package.py b/var/spack/repos/builtin/packages/py-dictdiffer/package.py
new file mode 100644
index 0000000000..3d7fd248f3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dictdiffer/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyDictdiffer(PythonPackage):
+ """Dictdiffer is a helper module that helps you to diff and patch dictionares."""
+
+ homepage = "https://github.com/inveniosoftware/dictdiffer"
+ pypi = "dictdiffer/dictdiffer-0.8.1.tar.gz"
+
+ version('0.8.1', sha256='1adec0d67cdf6166bda96ae2934ddb5e54433998ceab63c984574d187cc563d2')
+
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-setuptools-scm@3.1.0:', type='build')
+ depends_on('py-pytest-runner@2.7:', type='build')
diff --git a/var/spack/repos/builtin/packages/py-dill/package.py b/var/spack/repos/builtin/packages/py-dill/package.py
index 0afa8d329c..656725f9bf 100644
--- a/var/spack/repos/builtin/packages/py-dill/package.py
+++ b/var/spack/repos/builtin/packages/py-dill/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ class PyDill(PythonPackage):
"""Serialize all of python """
homepage = "https://github.com/uqfoundation/dill"
- url = "https://pypi.io/packages/source/d/dill/dill-0.2.7.tar.gz"
+ pypi = "dill/dill-0.2.7.tar.gz"
+ version('0.3.4', sha256='9f9734205146b2b353ab3fec9af0070237b6ddae78452af83d2fca84d739e675')
version('0.3.1', sha256='d3ddddf2806a7bc9858b20c02dc174396795545e9d62f243b34481fd26eb3e2c')
version('0.2.9', sha256='f6d6046f9f9195206063dd0415dff185ad593d6ee8b0e67f12597c0f4df4986f')
version('0.2.7', sha256='ddda0107e68e4eb1772a9f434f62a513c080c7171bd0dd6fb65d992788509812')
@@ -25,13 +26,14 @@ class PyDill(PythonPackage):
depends_on('python@2.5:2.8,3.1:', type=('build', 'run'))
depends_on('python@2.6:2.8,3.1:', type=('build', 'run'), when='@0.3.0:')
+ depends_on('python@2.7:2.8,3.6:', type=('build', 'run'), when='@0.3.4:')
depends_on('py-setuptools@0.6:', type='build')
def url_for_version(self, version):
url = "https://pypi.io/packages/source/d/dill/"
- if version >= Version('0.2.7'):
+ if Version('0.3.4') > version >= Version('0.2.7'):
url += 'dill-{0}.tar.gz'
else:
url += 'dill-{0}.zip'
diff --git a/var/spack/repos/builtin/packages/py-discover/package.py b/var/spack/repos/builtin/packages/py-discover/package.py
index 8512294724..d0618e8783 100644
--- a/var/spack/repos/builtin/packages/py-discover/package.py
+++ b/var/spack/repos/builtin/packages/py-discover/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,6 @@ from spack import *
class PyDiscover(PythonPackage):
"""Test discovery for unittest."""
- homepage = "https://pypi.python.org/pypi/discover"
- url = "https://pypi.io/packages/source/d/discover/discover-0.4.0.tar.gz"
+ pypi = "discover/discover-0.4.0.tar.gz"
version('0.4.0', sha256='05c3fa9199e57d4b16fb653e02d65713adc1f89ef55324fb0c252b1cf9070d79')
diff --git a/var/spack/repos/builtin/packages/py-diskcache/package.py b/var/spack/repos/builtin/packages/py-diskcache/package.py
index 042183cdf3..c2c2bebc3b 100644
--- a/var/spack/repos/builtin/packages/py-diskcache/package.py
+++ b/var/spack/repos/builtin/packages/py-diskcache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,11 @@ class PyDiskcache(PythonPackage):
"""Disk Cache -- Disk and file backed persistent cache."""
homepage = "http://www.grantjenks.com/docs/diskcache/"
- url = "https://pypi.io/packages/source/d/diskcache/diskcache-4.1.0.tar.gz"
+ pypi = "diskcache/diskcache-4.1.0.tar.gz"
+ version('5.2.1', sha256='1805acd5868ac10ad547208951a1190a0ab7bbff4e70f9a07cde4dbdfaa69f64')
version('4.1.0', sha256='bcee5a59f9c264e2809e58d01be6569a3bbb1e36a1e0fb83f7ef9b2075f95ce0')
+ depends_on("python", type=("build", "run"), when="@:4.1.0")
+ depends_on("python@3:", type=("build", "run"), when="@5.2.1:")
depends_on('py-setuptools', type='build')
- depends_on('py-tox', type='test')
diff --git a/var/spack/repos/builtin/packages/py-distributed/package.py b/var/spack/repos/builtin/packages/py-distributed/package.py
index be4fb3b1c6..aec2bd4583 100644
--- a/var/spack/repos/builtin/packages/py-distributed/package.py
+++ b/var/spack/repos/builtin/packages/py-distributed/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,20 @@ class PyDistributed(PythonPackage):
"""Distributed scheduler for Dask"""
homepage = "https://distributed.dask.org/"
- url = "https://pypi.io/packages/source/d/distributed/distributed-2.10.0.tar.gz"
-
+ pypi = "distributed/distributed-2.10.0.tar.gz"
+
+ # 'distributed.dashboard.components' requires 'bokeh', but 'bokeh' is not listed as
+ # a dependency. Leave out of 'import_modules' list to avoid unnecessary dependency.
+ import_modules = [
+ 'distributed', 'distributed.deploy', 'distributed.comm',
+ 'distributed.comm.tests', 'distributed.protocol', 'distributed.cli',
+ 'distributed.dashboard', 'distributed.http', 'distributed.http.tests',
+ 'distributed.http.scheduler', 'distributed.http.scheduler.prometheus',
+ 'distributed.http.worker', 'distributed.diagnostics'
+ ]
+
+ version('2021.6.2', sha256='d7d112a86ab049dcefa3b21fd1baea4212a2c03d22c24bd55ad38d21a7f5d148')
+ version('2020.12.0', sha256='2a0b6acc921cd4e0143a7c4383cdcbed7defbc4bd9dc3aab0c7f1c45f14f80e1')
version('2.10.0', sha256='2f8cca741a20f776929cbad3545f2df64cf60207fb21f774ef24aad6f6589e8b')
version('1.28.1', sha256='3bd83f8b7eb5938af5f2be91ccff8984630713f36f8f66097e531a63f141c48a')
@@ -20,14 +32,21 @@ class PyDistributed(PythonPackage):
depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-click@6.6:', type=('build', 'run'))
- depends_on('py-cloudpickle@0.2.2:', type=('build', 'run'))
- depends_on('py-msgpack', type=('build', 'run'))
+ depends_on('py-cloudpickle@0.2.2:', type=('build', 'run'), when='@:2.16.0')
+ depends_on('py-cloudpickle@1.3.0:', type=('build', 'run'), when='@2.17.0:2.20.0')
+ depends_on('py-cloudpickle@1.5.0:', type=('build', 'run'), when='@2.21.0:')
+ depends_on('py-contextvars', type=('build', 'run'), when='@2020: ^python@:3.6')
+ depends_on('py-msgpack', type=('build', 'run'), when='@:2.10.0')
+ depends_on('py-msgpack@0.6.0:', type=('build', 'run'), when='@2.11.0:')
depends_on('py-psutil@5.0:', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'), when='@:1')
depends_on('py-sortedcontainers@:1.999,2.0.2:', type=('build', 'run'))
- depends_on('py-tblib', type=('build', 'run'))
- depends_on('py-toolz@0.7.4:', type=('build', 'run'))
- depends_on('py-tornado@5:', type=('build', 'run'))
+ depends_on('py-tblib', type=('build', 'run'), when='@:2.10.0')
+ depends_on('py-tblib@1.6.0:', type=('build', 'run'), when='@2.11.0:')
+ depends_on('py-toolz@0.7.4:', type=('build', 'run'), when='@:2.12.0')
+ depends_on('py-toolz@0.8.2:', type=('build', 'run'), when='@2.13.0:')
+ depends_on('py-tornado@5:', type=('build', 'run'), when='^python@:3.7')
+ depends_on('py-tornado@6.0.3:', type=('build', 'run'), when='^python@3.8:')
depends_on('py-zict@0.1.3:', type=('build', 'run'))
depends_on('py-pyyaml', type=('build', 'run'))
depends_on('py-futures', when='@:1 ^python@2.7:2.8', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-distro/package.py b/var/spack/repos/builtin/packages/py-distro/package.py
index 4bda8e4085..e8b944c8b4 100644
--- a/var/spack/repos/builtin/packages/py-distro/package.py
+++ b/var/spack/repos/builtin/packages/py-distro/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyDistro(PythonPackage):
"""Distro - an OS platform information API."""
homepage = "https://github.com/nir0s/distro"
- url = "https://pypi.io/packages/source/d/distro/distro-1.5.0.tar.gz"
+ pypi = "distro/distro-1.5.0.tar.gz"
version('1.5.0', sha256='0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92')
diff --git a/var/spack/repos/builtin/packages/py-django/package.py b/var/spack/repos/builtin/packages/py-django/package.py
index 0dc1fa1388..aa89dea5ce 100644
--- a/var/spack/repos/builtin/packages/py-django/package.py
+++ b/var/spack/repos/builtin/packages/py-django/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-dlcpar/package.py b/var/spack/repos/builtin/packages/py-dlcpar/package.py
index 53f8aa5547..fa3b9b571a 100644
--- a/var/spack/repos/builtin/packages/py-dlcpar/package.py
+++ b/var/spack/repos/builtin/packages/py-dlcpar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-dm-tree/package.py b/var/spack/repos/builtin/packages/py-dm-tree/package.py
new file mode 100644
index 0000000000..db112aaa5b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dm-tree/package.py
@@ -0,0 +1,59 @@
+# Copyright 2013-2021 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)
+
+import tempfile
+
+
+class PyDmTree(PythonPackage):
+ """tree is a library for working with nested data structures. In a
+ way, tree generalizes the builtin map() function which only
+ supports flat sequences, and allows to apply a function to each
+ leaf preserving the overall structure."""
+
+ homepage = "https://github.com/deepmind/tree"
+ pypi = "dm-tree/dm-tree-0.1.5.tar.gz"
+
+ maintainers = ['aweits']
+
+ version('0.1.5', sha256='a951d2239111dfcc468071bc8ff792c7b1e3192cab5a3c94d33a8b2bda3127fa')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('bazel', type='build')
+ depends_on('py-six@1.12.0:', type=('build', 'run'))
+
+ @run_after('install')
+ def clean(self):
+ remove_linked_tree(self.tmp_path)
+
+ def patch(self):
+ self.tmp_path = tempfile.mkdtemp(dir='/tmp', prefix='spack')
+ env['TEST_TMPDIR'] = self.tmp_path
+ env['HOME'] = self.tmp_path
+ args = [
+ # Don't allow user or system .bazelrc to override build settings
+ "'--nohome_rc',\n",
+ "'--nosystem_rc',\n",
+ # Bazel does not work properly on NFS, switch to /tmp
+ "'--output_user_root={0}',\n".format(self.tmp_path),
+ "'build',\n",
+ # Spack logs don't handle colored output well
+ "'--color=no',\n",
+ "'--jobs={0}',\n".format(make_jobs),
+ # Enable verbose output for failures
+ "'--verbose_failures',\n",
+ # Show (formatted) subcommands being executed
+ "'--subcommands=pretty_print',\n",
+ "'--spawn_strategy=local',\n",
+ # Ask bazel to explain what it's up to
+ # Needs a filename as argument
+ "'--explain=explainlogfile.txt',\n",
+ # Increase verbosity of explanation,
+ "'--verbose_explanations',\n",
+ # bazel uses system PYTHONPATH instead of spack paths
+ "'--action_env', 'PYTHONPATH={0}',\n".format(env['PYTHONPATH']),
+ ]
+ filter_file("'build',",
+ ' '.join(args),
+ 'setup.py')
diff --git a/var/spack/repos/builtin/packages/py-dnaio/package.py b/var/spack/repos/builtin/packages/py-dnaio/package.py
index c8e3250a15..34e47c774d 100644
--- a/var/spack/repos/builtin/packages/py-dnaio/package.py
+++ b/var/spack/repos/builtin/packages/py-dnaio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyDnaio(PythonPackage):
"""Read and write FASTQ and FASTA"""
homepage = "https://github.com/marcelm/dnaio"
- url = "https://pypi.io/packages/source/d/dnaio/dnaio-0.3.tar.gz"
+ pypi = "dnaio/dnaio-0.3.tar.gz"
git = "https://github.com/marcelm/dnaio.git"
version('0.4.2', sha256='fa55a45bfd5d9272409b714158fb3a7de5dceac1034a0af84502c7f503ee84f8')
diff --git a/var/spack/repos/builtin/packages/py-docker/package.py b/var/spack/repos/builtin/packages/py-docker/package.py
index 148da74a95..fe1f667fae 100644
--- a/var/spack/repos/builtin/packages/py-docker/package.py
+++ b/var/spack/repos/builtin/packages/py-docker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyDocker(PythonPackage):
"""A Python library for the Docker Engine API."""
homepage = "https://github.com/docker/docker-py"
- url = "https://pypi.io/packages/source/d/docker/docker-4.2.1.tar.gz"
+ pypi = "docker/docker-4.2.1.tar.gz"
version('4.2.1', sha256='380a20d38fbfaa872e96ee4d0d23ad9beb0f9ed57ff1c30653cbeb0c9c0964f2')
diff --git a/var/spack/repos/builtin/packages/py-dockerpy-creds/package.py b/var/spack/repos/builtin/packages/py-dockerpy-creds/package.py
index 01f681be87..44e85058a9 100644
--- a/var/spack/repos/builtin/packages/py-dockerpy-creds/package.py
+++ b/var/spack/repos/builtin/packages/py-dockerpy-creds/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-docopt/package.py b/var/spack/repos/builtin/packages/py-docopt/package.py
index ce0dcd40ad..1ba7f43d16 100644
--- a/var/spack/repos/builtin/packages/py-docopt/package.py
+++ b/var/spack/repos/builtin/packages/py-docopt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyDocopt(PythonPackage):
"""Command-line interface description language."""
homepage = "http://docopt.org/"
- url = "https://pypi.io/packages/source/d/docopt/docopt-0.6.2.tar.gz"
-
- import_modules = ['docopt']
+ pypi = "docopt/docopt-0.6.2.tar.gz"
version('0.6.2', sha256='49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491')
diff --git a/var/spack/repos/builtin/packages/py-docutils-stubs/package.py b/var/spack/repos/builtin/packages/py-docutils-stubs/package.py
index 02c7f99d47..f1f634ae68 100644
--- a/var/spack/repos/builtin/packages/py-docutils-stubs/package.py
+++ b/var/spack/repos/builtin/packages/py-docutils-stubs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyDocutilsStubs(PythonPackage):
"""PEP 561 based Type information for docutils."""
homepage = "https://github.com/tk0miya/docutils-stubs"
- url = "https://pypi.io/packages/source/d/docutils-stubs/docutils-stubs-0.0.21.tar.gz"
+ pypi = "docutils-stubs/docutils-stubs-0.0.21.tar.gz"
version('0.0.21', sha256='e0d3d2588a0c0b47bf66b917bf4ff2c100cf4cf77bbe2f518d97b8f4d63e735c')
diff --git a/var/spack/repos/builtin/packages/py-docutils/package.py b/var/spack/repos/builtin/packages/py-docutils/package.py
index 07b0da2534..b7874c5d72 100644
--- a/var/spack/repos/builtin/packages/py-docutils/package.py
+++ b/var/spack/repos/builtin/packages/py-docutils/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PyDocutils(PythonPackage):
"""Docutils is an open-source text processing system for processing
@@ -15,18 +16,7 @@ class PyDocutils(PythonPackage):
markup language."""
homepage = "http://docutils.sourceforge.net/"
- url = "https://pypi.io/packages/source/d/docutils/docutils-0.15.2.tar.gz"
-
- import_modules = [
- 'docutils', 'docutils.languages', 'docutils.parsers',
- 'docutils.readers', 'docutils.transforms', 'docutils.utils',
- 'docutils.writers', 'docutils.parsers.rst',
- 'docutils.parsers.rst.directives', 'docutils.parsers.rst.languages',
- 'docutils.utils.math', 'docutils.writers.html4css1',
- 'docutils.writers.html5_polyglot', 'docutils.writers.latex2e',
- 'docutils.writers.odf_odt', 'docutils.writers.pep_html',
- 'docutils.writers.s5_html', 'docutils.writers.xetex'
- ]
+ pypi = "docutils/docutils-0.15.2.tar.gz"
version('0.15.2', sha256='a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99')
version('0.14', sha256='51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274')
diff --git a/var/spack/repos/builtin/packages/py-dominate/package.py b/var/spack/repos/builtin/packages/py-dominate/package.py
index 2d3f438ea5..5e844e743a 100644
--- a/var/spack/repos/builtin/packages/py-dominate/package.py
+++ b/var/spack/repos/builtin/packages/py-dominate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyDominate(PythonPackage):
powerful features of Python."""
homepage = "https://github.com/Knio/dominate"
- url = "https://pypi.io/packages/source/d/dominate/dominate-2.6.0.tar.gz"
+ pypi = "dominate/dominate-2.6.0.tar.gz"
# license = "LGPL-3.0"
version('2.6.0', sha256='76ec2cde23700a6fc4fee098168b9dee43b99c2f1dd0ca6a711f683e8eb7e1e4')
diff --git a/var/spack/repos/builtin/packages/py-dotnetcore2/package.py b/var/spack/repos/builtin/packages/py-dotnetcore2/package.py
index 6ee28f6b68..ee671dc5d4 100644
--- a/var/spack/repos/builtin/packages/py-dotnetcore2/package.py
+++ b/var/spack/repos/builtin/packages/py-dotnetcore2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-doxypy/package.py b/var/spack/repos/builtin/packages/py-doxypy/package.py
index 103ac0488f..9effe56993 100644
--- a/var/spack/repos/builtin/packages/py-doxypy/package.py
+++ b/var/spack/repos/builtin/packages/py-doxypy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyDoxypy(PythonPackage):
"""doxypy is an input filter for Doxygen."""
- homepage = "https://pypi.python.org/pypi/doxypy"
- url = "https://pypi.io/packages/source/d/doxypy/doxypy-0.3.tar.gz"
+ pypi = "doxypy/doxypy-0.3.tar.gz"
version('0.3', sha256='55d621b0edebd9e2a58a266c0a1d086fc9892de8e07e04dfbb93880a7ae91f00')
diff --git a/var/spack/repos/builtin/packages/py-doxypypy/package.py b/var/spack/repos/builtin/packages/py-doxypypy/package.py
index e28970409e..1e841763a8 100644
--- a/var/spack/repos/builtin/packages/py-doxypypy/package.py
+++ b/var/spack/repos/builtin/packages/py-doxypypy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyDoxypypy(PythonPackage):
"""
homepage = "https://github.com/Feneric/doxypypy"
- url = "https://pypi.io/packages/source/d/doxypypy/doxypypy-0.8.8.6.tar.gz"
+ pypi = "doxypypy/doxypypy-0.8.8.6.tar.gz"
version('0.8.8.6', sha256='627571455c537eb91d6998d95b32efc3c53562b2dbadafcb17e49593e0dae01b')
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
index 42e56516d1..c4a329b217 100644
--- a/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py
+++ b/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from os import unlink
+
+from spack import *
class PyDpGpCluster(PythonPackage):
diff --git a/var/spack/repos/builtin/packages/py-dpath/package.py b/var/spack/repos/builtin/packages/py-dpath/package.py
new file mode 100644
index 0000000000..ceab57e57b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dpath/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyDpath(PythonPackage):
+ """A python library for accessing and searching dictionaries via
+ /slashed/paths ala xpath."""
+
+ homepage = "https://github.com/akesterson/dpath-python"
+ pypi = "dpath/dpath-2.0.1.tar.gz"
+
+ version('2.0.1', sha256='bea06b5f4ff620a28dfc9848cf4d6b2bfeed34238edeb8ebe815c433b54eb1fa')
+
+ depends_on('python@2.7:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-drmaa/package.py b/var/spack/repos/builtin/packages/py-drmaa/package.py
index c7df76190d..ee5ee1c192 100644
--- a/var/spack/repos/builtin/packages/py-drmaa/package.py
+++ b/var/spack/repos/builtin/packages/py-drmaa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyDrmaa(PythonPackage):
"""Python wrapper around the C DRMAA library."""
homepage = "https://github.com/pygridtools/drmaa-python"
- url = "https://pypi.io/packages/source/d/drmaa/drmaa-0.7.9.tar.gz"
+ pypi = "drmaa/drmaa-0.7.9.tar.gz"
version('0.7.9', sha256='12540cd98afc40d5c0b2f38d7b0e46468d1c45192a2f401f41fc2eda9c9f5542')
diff --git a/var/spack/repos/builtin/packages/py-dryscrape/package.py b/var/spack/repos/builtin/packages/py-dryscrape/package.py
index 8aa002bf7b..683266b624 100644
--- a/var/spack/repos/builtin/packages/py-dryscrape/package.py
+++ b/var/spack/repos/builtin/packages/py-dryscrape/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyDryscrape(PythonPackage):
for Python"""
homepage = "https://github.com/niklasb/dryscrape"
- url = "https://pypi.io/packages/source/d/dryscrape/dryscrape-1.0.tar.gz"
+ pypi = "dryscrape/dryscrape-1.0.tar.gz"
git = "https://github.com/niklasb/dryscrape.git"
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/py-duecredit/package.py b/var/spack/repos/builtin/packages/py-duecredit/package.py
new file mode 100644
index 0000000000..ec1ac2ce6c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-duecredit/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyDuecredit(PythonPackage):
+ """Publications (and donations) tracer."""
+
+ homepage = "https://github.com/duecredit/duecredit"
+ pypi = "duecredit/duecredit-0.9.1.tar.gz"
+
+ version('0.9.1', sha256='f6192ce9315b35f6a67174761291e61d0831e496e8ff4acbc061731e7604faf8')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-citeproc-py@0.4:', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-importlib-metadata', when='python@:3.7', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-dulwich/package.py b/var/spack/repos/builtin/packages/py-dulwich/package.py
new file mode 100644
index 0000000000..c66c4658f0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dulwich/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyDulwich(PythonPackage):
+ """Dulwich aims to provide an interface to Git repos
+ (both local and remote) that doesn't call out to Git
+ directory, but instead uses pure Python."""
+
+ homepage = "https://www.dulwich.io"
+ pypi = "dulwich/dulwich-0.20.15.tar.gz"
+
+ version('0.20.21', sha256='ac764c9a9b80fa61afe3404d5270c5060aa57f7f087b11a95395d3b76f3b71fd')
+ version('0.20.15', sha256='fb1773373ec2af896031f8312af6962a1b8b0176a2de3fb3d84a84ec04498888')
+ version('0.20.14', sha256='21d6ee82708f7c67ce3fdcaf1f1407e524f7f4f7411a410a972faa2176baec0d')
+
+ depends_on('python@3.5.0:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-certifi', type=('build', 'run'))
+ depends_on('py-urllib3@1.24.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-dvc/package.py b/var/spack/repos/builtin/packages/py-dvc/package.py
new file mode 100644
index 0000000000..6793937988
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dvc/package.py
@@ -0,0 +1,69 @@
+# Copyright 2013-2021 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 PyDvc(PythonPackage):
+ """Git for data scientists - manage your code and data together."""
+
+ homepage = "https://www.dvc.org"
+ pypi = "dvc/dvc-1.11.10.tar.gz"
+
+ version('2.1.0', sha256='46cfbf0db27107fb3a2d5c643e3a948bb24539bf165ef70e77ce64283959e481')
+ version('1.11.10', sha256='6b53ebf1bd5619836f131181402bb21f7b44109166e9db8f8d6a0d8c7ce9458d')
+ version('1.11.6', sha256='41ba76c51c6142b28dae3aab039cb12423ba52fed6bd2a838f8308f315cfc20b')
+
+ variant('ssh', default=False, description='Enable ssh storage support')
+ variant('s3', default=False, description='Enable s3 storage support')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-ply@3.9:', type=('build', 'run'))
+ depends_on('py-colorama@0.3.9:', type=('build', 'run'))
+ depends_on('py-configobj@5.0.6:', type=('build', 'run'))
+ depends_on('py-gitpython@3.1:', type=('build', 'run'))
+ depends_on('py-dulwich@0.20.14:', type=('build', 'run'), when='@:1.11.10')
+ depends_on('py-dulwich@0.20.21:', type=('build', 'run'), when='@2.1.0:')
+ depends_on('py-pygit2@1.5.0:', type=('build', 'run'), when='@2.1.0:')
+ depends_on('py-setuptools@34.0.0:', type=('build', 'run'))
+ depends_on('py-nanotime@0.5.2:', type=('build', 'run'))
+ depends_on('py-pyasn1@0.4.1:', type=('build', 'run'))
+ depends_on('py-voluptuous@0.11.7:', type=('build', 'run'))
+ depends_on('py-jsonpath-ng@1.5.1:', type=('build', 'run'))
+ depends_on('py-grandalf@0.6', type=('build', 'run'))
+ depends_on('py-distro@1.3.0:', type=('build', 'run'))
+ depends_on('py-appdirs@1.4.3:', type=('build', 'run'))
+ depends_on('py-ruamel-yaml@0.16.1:', type=('build', 'run'))
+ depends_on('py-toml@0.10.1:', type=('build', 'run'))
+ depends_on('py-funcy@1.14:', type=('build', 'run'))
+ depends_on('py-pathspec@0.6.0:', type=('build', 'run'))
+ depends_on('py-shortuuid@0.5.0:', type=('build', 'run'))
+ depends_on('py-tqdm@4.45.0:4.99', type=('build', 'run'))
+ depends_on('py-packaging@19.0:', type=('build', 'run'))
+ depends_on('py-flufl-lock@3.2:3.999', type=('build', 'run'))
+ depends_on('py-zc-lockfile@1.2.1:', type=('build', 'run'))
+ depends_on('py-networkx@2.1:2.4', when='@:1.11.6', type=('build', 'run'))
+ depends_on('py-networkx@2.1:', when='@1.11.7:', type=('build', 'run'))
+ depends_on('py-psutil@5.8.0:', type=('build', 'run'), when='@2.1.0:')
+ depends_on('py-pydot@1.2.4:', type=('build', 'run'))
+ depends_on('py-dataclasses@0.7', when='^python@:3.6.999', type=('build', 'run'))
+ depends_on('py-flatten-dict@0.3.0:0.99', type=('build', 'run'))
+ depends_on('py-tabulate@0.8.7:', type=('build', 'run'))
+ depends_on('py-pygtrie@2.3.2', type=('build', 'run'))
+ depends_on('py-dpath@2.0.1:2.99', type=('build', 'run'))
+ depends_on('py-shtab@1.3.2:1.99', type=('build', 'run'), when='@:1.11.10')
+ depends_on('py-shtab@1.3.4:1.99', type=('build', 'run'), when='@2.1.0:')
+ depends_on('py-rich@3.0.5:', type=('build', 'run'), when='@:1.11.10')
+ depends_on('py-rich@10.0.0:', type=('build', 'run'), when='@2.1.0:')
+ depends_on('py-dictdiffer@0.8.1:', type=('build', 'run'))
+ depends_on('py-python-benedict@0.21.1:', type=('build', 'run'))
+ depends_on('py-pyparsing@2.4.7', type=('build', 'run'))
+ depends_on('py-typing-extensions@3.7.4:', type=('build', 'run'))
+ depends_on('py-fsspec@0.9.0', type=('build', 'run'), when='@2.1.0:')
+ depends_on('py-diskcache@5.2.1:', type=('build', 'run'), when='@2.1.0:')
+
+ depends_on('py-paramiko@2.7.0:+invoke', when='+ssh', type=('build', 'run'))
+ depends_on('py-boto3@1.9.201:', when='+s3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-dxchange/package.py b/var/spack/repos/builtin/packages/py-dxchange/package.py
index be0a23916c..06e362a16a 100644
--- a/var/spack/repos/builtin/packages/py-dxchange/package.py
+++ b/var/spack/repos/builtin/packages/py-dxchange/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,8 +14,6 @@ class PyDxchange(PythonPackage):
homepage = "https://github.com/data-exchange/dxchange"
url = "https://github.com/data-exchange/dxchange/archive/v0.1.2.tar.gz"
- import_modules = ['dxchange']
-
version('0.1.2', sha256='d005b036b6323d0dffd5944c3da0b8a90496d96277654e72b53717058dd5fd87')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-dxfile/package.py b/var/spack/repos/builtin/packages/py-dxfile/package.py
index aa7eac9d91..b4df041a6c 100644
--- a/var/spack/repos/builtin/packages/py-dxfile/package.py
+++ b/var/spack/repos/builtin/packages/py-dxfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,6 @@ class PyDxfile(PythonPackage):
homepage = "https://github.com/data-exchange/dxfile"
url = "https://github.com/data-exchange/dxfile/archive/v0.4.tar.gz"
- import_modules = ['dxfile']
-
version('0.4', sha256='b7729eebdc7c99a66a8b339fc10019aa8565e02bd12708540fb3f47935f004c7')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-earthengine-api/package.py b/var/spack/repos/builtin/packages/py-earthengine-api/package.py
index 6125d918b6..7f61286ac2 100644
--- a/var/spack/repos/builtin/packages/py-earthengine-api/package.py
+++ b/var/spack/repos/builtin/packages/py-earthengine-api/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyEarthengineApi(PythonPackage):
using the Python programming language."""
homepage = "https://github.com/google/earthengine-api"
- url = "https://pypi.io/packages/source/e/earthengine-api/earthengine-api-0.1.186.tar.gz"
+ pypi = "earthengine-api/earthengine-api-0.1.186.tar.gz"
version('0.1.186', sha256='ced86dc969f5db13eea91944e29c39146bacbb7026a46f4b4ac349b365979627')
diff --git a/var/spack/repos/builtin/packages/py-easybuild-easyblocks/package.py b/var/spack/repos/builtin/packages/py-easybuild-easyblocks/package.py
index dcc295c63e..485c26d777 100644
--- a/var/spack/repos/builtin/packages/py-easybuild-easyblocks/package.py
+++ b/var/spack/repos/builtin/packages/py-easybuild-easyblocks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyEasybuildEasyblocks(PythonPackage):
"""
homepage = 'https://easybuilders.github.io/easybuild'
- url = 'https://pypi.io/packages/source/e/easybuild-easyblocks/easybuild-easyblocks-4.0.0.tar.gz'
+ pypi = 'easybuild-easyblocks/easybuild-easyblocks-4.0.0.tar.gz'
maintainers = ['boegel']
version('4.0.0', sha256='a0fdef6c33c786e323bde1b28bab942fd8e535c26842877d705e692e85b31b07')
diff --git a/var/spack/repos/builtin/packages/py-easybuild-easyconfigs/package.py b/var/spack/repos/builtin/packages/py-easybuild-easyconfigs/package.py
index 83c55889b5..167dc02f8e 100644
--- a/var/spack/repos/builtin/packages/py-easybuild-easyconfigs/package.py
+++ b/var/spack/repos/builtin/packages/py-easybuild-easyconfigs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyEasybuildEasyconfigs(PythonPackage):
"""
homepage = 'https://easybuilders.github.io/easybuild'
- url = 'https://pypi.io/packages/source/e/easybuild-easyconfigs/easybuild-easyconfigs-4.0.0.tar.gz'
+ pypi = 'easybuild-easyconfigs/easybuild-easyconfigs-4.0.0.tar.gz'
maintainers = ['boegel']
version('4.0.0', sha256='90d4e8f8abb11e7ae2265745bbd1241cd69d02570e9b4530175c4b2e2aba754e')
diff --git a/var/spack/repos/builtin/packages/py-easybuild-framework/package.py b/var/spack/repos/builtin/packages/py-easybuild-framework/package.py
index 9096f62708..762fe7a3c7 100644
--- a/var/spack/repos/builtin/packages/py-easybuild-framework/package.py
+++ b/var/spack/repos/builtin/packages/py-easybuild-framework/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyEasybuildFramework(PythonPackage):
"""
homepage = 'https://easybuilders.github.io/easybuild'
- url = 'https://pypi.io/packages/source/e/easybuild-framework/easybuild-framework-4.0.0.tar.gz'
+ pypi = 'easybuild-framework/easybuild-framework-4.0.0.tar.gz'
maintainers = ['boegel']
version('4.0.0', sha256='f5c40345cc8b9b5750f53263ade6c9c3a8cd3dfab488d58f76ac61a8ca7c5a77')
@@ -22,6 +22,3 @@ class PyEasybuildFramework(PythonPackage):
depends_on('python@2.6:2.8,3.5:', when='@4:', type=('build', 'run'))
depends_on('py-setuptools', when='@:3', type=('build', 'run'))
depends_on('py-vsc-base@2.5.4:', when='@2.9:3', type='run')
-
- # Only required for tests (python -O -m test.framework.suite)
- depends_on('py-vsc-install', when='@:3', type='test')
diff --git a/var/spack/repos/builtin/packages/py-eccodes/package.py b/var/spack/repos/builtin/packages/py-eccodes/package.py
new file mode 100644
index 0000000000..0fd0726bd5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-eccodes/package.py
@@ -0,0 +1,49 @@
+# Copyright 2013-2021 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)
+
+import sys
+
+from spack import *
+
+
+class PyEccodes(PythonPackage):
+ """Python interface to the ecCodes GRIB and BUFR decoder/encoder."""
+
+ homepage = "https://github.com/ecmwf/eccodes-python"
+ pypi = "eccodes/eccodes-1.3.2.tar.gz"
+
+ version('1.3.2', sha256='f282adfdc1bc658356163c9cef1857d4b2bae99399660d3d4fcb145a52d3b2a6')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-attrs', type=('build', 'run'))
+ depends_on('py-cffi', type=('build', 'run'))
+ depends_on('py-findlibs', type=('build', 'run'))
+ depends_on('eccodes', type='run')
+
+ def setup_build_environment(self, env):
+ if sys.platform == 'darwin':
+ env.prepend_path('DYLD_LIBRARY_PATH',
+ self.spec['eccodes'].libs.directories[0])
+ else:
+ env.prepend_path('LD_LIBRARY_PATH',
+ self.spec['eccodes'].libs.directories[0])
+
+ def setup_run_environment(self, env):
+ self.setup_build_environment(env)
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ self.setup_build_environment(env)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ self.setup_build_environment(env)
+
+ def test(self):
+ super(PyEccodes, self).test()
+
+ self.run_test(self.spec['python'].command.path,
+ ['-m', 'eccodes', 'selfcheck'],
+ purpose='checking system setup',
+ work_dir='spack-test')
diff --git a/var/spack/repos/builtin/packages/py-ecdsa/package.py b/var/spack/repos/builtin/packages/py-ecdsa/package.py
index 2401b9bd27..77e0487f91 100644
--- a/var/spack/repos/builtin/packages/py-ecdsa/package.py
+++ b/var/spack/repos/builtin/packages/py-ecdsa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyEcdsa(PythonPackage):
"""ECDSA cryptographic signature library (pure python)"""
homepage = "https://github.com/warner/python-ecdsa"
- url = "https://pypi.io/packages/source/e/ecdsa/ecdsa-0.15.tar.gz"
+ pypi = "ecdsa/ecdsa-0.15.tar.gz"
version('0.15', sha256='8f12ac317f8a1318efa75757ef0a651abe12e51fc1af8838fb91079445227277')
version('0.13.2', sha256='5c034ffa23413ac923541ceb3ac14ec15a0d2530690413bff58c12b80e56d884')
@@ -18,4 +18,3 @@ class PyEcdsa(PythonPackage):
depends_on('python@2.6:2.8,3.3:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-six@1.9.0:', type=('build', 'run'))
- depends_on('openssl', type='test')
diff --git a/var/spack/repos/builtin/packages/py-ecos/package.py b/var/spack/repos/builtin/packages/py-ecos/package.py
index 84e3bcd9eb..b71a96ba2d 100644
--- a/var/spack/repos/builtin/packages/py-ecos/package.py
+++ b/var/spack/repos/builtin/packages/py-ecos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,11 +11,10 @@ class PyEcos(PythonPackage):
"""This is the Python package for ECOS: Embedded Cone Solver."""
homepage = "https://github.com/embotech/ecos"
- url = "https://www.pypi.io/packages/source/e/ecos/ecos-2.0.7.post1.tar.gz"
+ pypi = "ecos/ecos-2.0.7.post1.tar.gz"
version('2.0.7.post1', sha256='83e90f42b3f32e2a93f255c3cfad2da78dbd859119e93844c45d2fca20bdc758')
depends_on('py-setuptools', type='build')
- depends_on('py-nose', type='test')
depends_on('py-numpy@1.6:', type=('build', 'run'))
depends_on('py-scipy@0.9:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-edffile/package.py b/var/spack/repos/builtin/packages/py-edffile/package.py
index ab4a9f9ed9..97bd01212a 100644
--- a/var/spack/repos/builtin/packages/py-edffile/package.py
+++ b/var/spack/repos/builtin/packages/py-edffile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,6 @@ class PyEdffile(PythonPackage):
homepage = "https://github.com/vasole/pymca/blob/master/PyMca5/PyMcaIO/EdfFile.py"
git = "https://github.com/conda-forge/edffile-feedstock.git"
- import_modules = ['EdfFile']
-
version('5.0.0', commit='be5ab4199db9f8209c59e31874934b8536b52301')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-editdistance/package.py b/var/spack/repos/builtin/packages/py-editdistance/package.py
index ccedeef495..d38930ea3f 100644
--- a/var/spack/repos/builtin/packages/py-editdistance/package.py
+++ b/var/spack/repos/builtin/packages/py-editdistance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyEditdistance(PythonPackage):
"""Fast implementation of the edit distance (Levenshtein distance)."""
homepage = "https://github.com/aflc/editdistance"
- url = "https://pypi.io/packages/source/e/editdistance/editdistance-0.4.tar.gz"
+ pypi = "editdistance/editdistance-0.4.tar.gz"
version('0.4', sha256='c765db6f8817d38922e4a50be4b9ab338b2c539377b6fcf0bca11dea72eeb8c1')
diff --git a/var/spack/repos/builtin/packages/py-efficientnet-pytorch/package.py b/var/spack/repos/builtin/packages/py-efficientnet-pytorch/package.py
new file mode 100644
index 0000000000..b2904d76d6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-efficientnet-pytorch/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyEfficientnetPytorch(PythonPackage):
+ """EfficientNet implemented in PyTorch."""
+
+ homepage = "https://github.com/lukemelas/efficientnet_pytorch"
+ pypi = "efficientnet_pytorch/efficientnet_pytorch-0.6.3.tar.gz"
+
+ version('0.7.1', sha256='00b9b261effce59d2d47aae2ad238c29a2a65175470f41ada7ecac439b7c1ee1')
+ version('0.6.3', sha256='6667459336893e9bf6367de3788ba449fed97f65da3b6782bf2204b6273a319f')
+
+ depends_on('python@3.5.0:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-torch', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-eg/package.py b/var/spack/repos/builtin/packages/py-eg/package.py
index a6ba806690..9146d1aa40 100644
--- a/var/spack/repos/builtin/packages/py-eg/package.py
+++ b/var/spack/repos/builtin/packages/py-eg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-einops/package.py b/var/spack/repos/builtin/packages/py-einops/package.py
new file mode 100644
index 0000000000..1a65b0713a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-einops/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyEinops(PythonPackage):
+ """Flexible and powerful tensor operations for readable and reliable code.
+
+ Supports numpy, pytorch, tensorflow, and others."""
+
+ homepage = "https://github.com/arogozhnikov/einops"
+ pypi = "einops/einops-0.3.2.tar.gz"
+
+ version('0.3.2', sha256='5200e413539f0377f4177ef00dc019968f4177c49b1db3e836c7883df2a5fe2e')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-elasticsearch/package.py b/var/spack/repos/builtin/packages/py-elasticsearch/package.py
index b87dd19f43..7429f21748 100644
--- a/var/spack/repos/builtin/packages/py-elasticsearch/package.py
+++ b/var/spack/repos/builtin/packages/py-elasticsearch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyElasticsearch(PythonPackage):
"""Python client for Elasticsearch"""
homepage = "https://github.com/elastic/elasticsearch-py"
- url = "https://pypi.io/packages/source/e/elasticsearch/elasticsearch-5.2.0.tar.gz"
+ pypi = "elasticsearch/elasticsearch-5.2.0.tar.gz"
version('7.5.1', sha256='2a0ca516378ae9b87ac840e7bb529ec508f3010360dd9feed605dff2a898aff5')
version('6.4.0', sha256='fb5ab15ee283f104b5a7a5695c7e879cb2927e4eb5aed9c530811590b41259ad')
diff --git a/var/spack/repos/builtin/packages/py-elephant/package.py b/var/spack/repos/builtin/packages/py-elephant/package.py
index 7d2477ef40..5b91b03219 100644
--- a/var/spack/repos/builtin/packages/py-elephant/package.py
+++ b/var/spack/repos/builtin/packages/py-elephant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyElephant(PythonPackage):
"""Elephant is a package for analysis of electrophysiology data in Python
"""
- homepage = "http://neuralensemble.org/elephant"
- url = "https://pypi.io/packages/source/e/elephant/elephant-0.3.0.tar.gz"
+ homepage = "https://neuralensemble.org/elephant"
+ pypi = "elephant/elephant-0.3.0.tar.gz"
version('0.4.1', sha256='86b21a44cbacdc09a6ba6f51738dcd5b42ecd553d73acb29f71a0be7c82eac81')
version('0.3.0', sha256='747251ccfb5820bdead6391411b5faf205b4ddf3ababaefe865f50b16540cfef')
@@ -25,6 +25,5 @@ class PyElephant(PythonPackage):
depends_on('py-quantities@0.10.1:', type=('build', 'run'))
depends_on('py-scipy@0.14.0:', type=('build', 'run'))
depends_on('py-pandas@0.14.1:', type=('build', 'run'), when='+pandas')
- depends_on('py-numpydoc@0.5:', type=('build', 'run'), when='+docs')
- depends_on('py-sphinx@1.2.2:', type=('build', 'run'), when='+docs')
- depends_on('py-nose@1.3.3:', type='test')
+ depends_on('py-numpydoc@0.5:', type=('build', 'run'), when='+doc')
+ depends_on('py-sphinx@1.2.2:', type=('build', 'run'), when='+doc')
diff --git a/var/spack/repos/builtin/packages/py-emcee/package.py b/var/spack/repos/builtin/packages/py-emcee/package.py
index 093a662b2b..b29644662b 100644
--- a/var/spack/repos/builtin/packages/py-emcee/package.py
+++ b/var/spack/repos/builtin/packages/py-emcee/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyEmcee(PythonPackage):
"""emcee is an MIT licensed pure-Python implementation of Goodman & Weare's
Affine Invariant Markov chain Monte Carlo (MCMC) Ensemble sampler."""
- homepage = "http://dan.iel.fm/emcee/current/"
- url = "https://pypi.io/packages/source/e/emcee/emcee-2.2.1.tar.gz"
+ homepage = "https://dan.iel.fm/emcee/current/"
+ pypi = "emcee/emcee-2.2.1.tar.gz"
version('2.2.1', sha256='b83551e342b37311897906b3b8acf32979f4c5542e0a25786ada862d26241172')
version('2.1.0', sha256='5ce1039a3d78fb9e7d53fcd768517585c5998193743bfcfaac407927d375ca63')
diff --git a/var/spack/repos/builtin/packages/py-empy/package.py b/var/spack/repos/builtin/packages/py-empy/package.py
index 54b1bd759a..557ddb48ef 100644
--- a/var/spack/repos/builtin/packages/py-empy/package.py
+++ b/var/spack/repos/builtin/packages/py-empy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,6 @@ class PyEmpy(PythonPackage):
"""A powerful and robust templating system for Python"""
homepage = "http://www.alcyone.com/software/empy"
- url = "https://pypi.io/packages/source/e/empy/empy-3.3.4.tar.gz"
+ pypi = "empy/empy-3.3.4.tar.gz"
version('3.3.4', sha256='73ac49785b601479df4ea18a7c79bc1304a8a7c34c02b9472cf1206ae88f01b3')
diff --git a/var/spack/repos/builtin/packages/py-entrypoints/package.py b/var/spack/repos/builtin/packages/py-entrypoints/package.py
index 84bc7c20f4..a86adfd36b 100644
--- a/var/spack/repos/builtin/packages/py-entrypoints/package.py
+++ b/var/spack/repos/builtin/packages/py-entrypoints/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,7 @@ from spack import *
class PyEntrypoints(PythonPackage):
"""Discover and load entry points from installed packages."""
- homepage = "https://pypi.python.org/pypi/entrypoints"
- url = "https://pypi.io/packages/source/e/entrypoints/entrypoints-0.2.3.tar.gz"
-
- import_modules = ['entrypoints']
+ pypi = "entrypoints/entrypoints-0.2.3.tar.gz"
version('0.3', sha256='c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451')
version('0.2.3', sha256='d2d587dde06f99545fb13a383d2cd336a8ff1f359c5839ce3a64c917d10c029f')
diff --git a/var/spack/repos/builtin/packages/py-enum34/package.py b/var/spack/repos/builtin/packages/py-enum34/package.py
index 7bcdf462b3..0628fa762b 100644
--- a/var/spack/repos/builtin/packages/py-enum34/package.py
+++ b/var/spack/repos/builtin/packages/py-enum34/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyEnum34(PythonPackage):
"""Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4."""
homepage = "https://bitbucket.org/stoneleaf/enum34/src"
- url = "https://pypi.io/packages/source/e/enum34/enum34-1.1.6.tar.gz"
+ pypi = "enum34/enum34-1.1.6.tar.gz"
version('1.1.6', sha256='8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1')
diff --git a/var/spack/repos/builtin/packages/py-envisage/package.py b/var/spack/repos/builtin/packages/py-envisage/package.py
index 06783c8fcb..7068987db6 100644
--- a/var/spack/repos/builtin/packages/py-envisage/package.py
+++ b/var/spack/repos/builtin/packages/py-envisage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class PyEnvisage(PythonPackage):
to the Eclipse and Netbeans frameworks for Java applications."""
homepage = "https://docs.enthought.com/envisage"
- url = "https://pypi.io/packages/source/e/envisage/envisage-4.9.2.tar.gz"
+ pypi = "envisage/envisage-4.9.2.tar.gz"
version('4.9.2', sha256='ed9580ac6ea17b333f1cce5b94656aed584798d56d8bd364f996a06fe1ac32eb')
diff --git a/var/spack/repos/builtin/packages/py-ephem/package.py b/var/spack/repos/builtin/packages/py-ephem/package.py
index b3f62ae3cf..fdbcb4cb8c 100644
--- a/var/spack/repos/builtin/packages/py-ephem/package.py
+++ b/var/spack/repos/builtin/packages/py-ephem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-epydoc/package.py b/var/spack/repos/builtin/packages/py-epydoc/package.py
index cfd14fa4eb..da62e048aa 100644
--- a/var/spack/repos/builtin/packages/py-epydoc/package.py
+++ b/var/spack/repos/builtin/packages/py-epydoc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,6 @@ from spack import *
class PyEpydoc(PythonPackage):
"""Epydoc is a tool for generating API documentation documentation for
Python modules, based on their docstrings."""
- homepage = "https://pypi.python.org/pypi/epydoc"
- url = "https://pypi.io/packages/source/e/epydoc/epydoc-3.0.1.tar.gz"
+ pypi = "epydoc/epydoc-3.0.1.tar.gz"
version('3.0.1', sha256='c81469b853fab06ec42b39e35dd7cccbe9938dfddef324683d89c1e5176e48f2')
diff --git a/var/spack/repos/builtin/packages/py-espresso/package.py b/var/spack/repos/builtin/packages/py-espresso/package.py
index 4891b8c53e..208ddfe33b 100644
--- a/var/spack/repos/builtin/packages/py-espresso/package.py
+++ b/var/spack/repos/builtin/packages/py-espresso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class PyEspresso(CMakePackage):
Boltzmann solver for hydrodynamic interactions, and allows several
particle couplings to the LB fluid.
"""
- homepage = "http://espressomd.org/"
+ homepage = "https://espressomd.org/"
git = "https://github.com/espressomd/espresso.git"
url = "https://github.com/espressomd/espresso/releases/download/4.0.0/espresso-4.0.0.tar.gz"
diff --git a/var/spack/repos/builtin/packages/py-espressopp/package.py b/var/spack/repos/builtin/packages/py-espressopp/package.py
index f243fcb4d2..66e0b5a363 100644
--- a/var/spack/repos/builtin/packages/py-espressopp/package.py
+++ b/var/spack/repos/builtin/packages/py-espressopp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,12 +14,13 @@ class PyEspressopp(CMakePackage):
atomistic or bead-spring models as they are used in soft matter research
"""
homepage = "https://espressopp.github.io"
- url = "https://github.com/espressopp/espressopp/tarball/v2.0.2"
+ url = "https://github.com/espressopp/espressopp/tarball/v3.0.0"
git = "https://github.com/espressopp/espressopp.git"
- version('develop', branch='master')
- version('2.0.2', sha256='8cf4525bca06426379f5b9fbb8cc2603f559d28a2e74d1d7694df963b8f3dc6c')
- version('1.9.5', sha256='8093f1a226f9fee8fb37c401767439a29ff3656dede3a44b4160169fc90d4d91')
+ version('master', branch='master')
+ version('3.0.0', sha256='63518e768a98179ad5ef3be96eabaa4d38063b34962e2278db7d59ed2bb8a32e')
+ version('2.0.2', sha256='8cf4525bca06426379f5b9fbb8cc2603f559d28a2e74d1d7694df963b8f3dc6c', deprecated=True)
+ version('1.9.5', sha256='8093f1a226f9fee8fb37c401767439a29ff3656dede3a44b4160169fc90d4d91', deprecated=True)
variant('ug', default=False, description='Build user guide')
variant('pdf', default=False, description='Build user guide in pdf format')
@@ -27,15 +28,16 @@ class PyEspressopp(CMakePackage):
depends_on("cmake@2.8:", type='build')
depends_on("mpi")
- depends_on("boost+serialization+filesystem+system+python+mpi cxxstd=11", when='@1.9.4:')
+ depends_on("boost+serialization+filesystem+system+python+mpi cxxstd=11")
extends("python")
- depends_on("python@2:2.8")
- depends_on("py-mpi4py@2.0.0:", when='@1.9.4', type=('build', 'run'))
- depends_on("py-mpi4py@1.3.1:", when='@1.9.4.1:', type=('build', 'run'))
+ depends_on("python@2:2.8", when="@:2.9999", type=('build', 'run'))
+ depends_on("python@3:", type=('build', 'run'))
+ depends_on("py-mpi4py@2.0.0:", type=('build', 'run'))
depends_on("fftw")
depends_on("py-sphinx", when="+ug", type='build')
depends_on("py-sphinx", when="+pdf", type='build')
- depends_on('py-numpy@:1.16.6', type=('build', 'run'))
+ depends_on('py-numpy@:1.16.6', when='@:2.9999', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
depends_on('py-matplotlib', when="+ug", type='build')
depends_on('py-matplotlib', when="+pdf", type='build')
depends_on("texlive", when="+pdf", type='build')
diff --git a/var/spack/repos/builtin/packages/py-et-xmlfile/package.py b/var/spack/repos/builtin/packages/py-et-xmlfile/package.py
index 49c508e32b..5ada975141 100644
--- a/var/spack/repos/builtin/packages/py-et-xmlfile/package.py
+++ b/var/spack/repos/builtin/packages/py-et-xmlfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyEtXmlfile(PythonPackage):
"""An implementation of lxml.xmlfile for the standard library."""
- homepage = "https://bitbucket.org/openpyxl/et_xmlfile"
- url = "https://pypi.io/packages/source/e/et_xmlfile/et_xmlfile-1.0.1.tar.gz"
+ homepage = "https://et-xmlfile.readthedocs.io/en/latest/"
+ pypi = "et_xmlfile/et_xmlfile-1.0.1.tar.gz"
version('1.0.1', sha256='614d9722d572f6246302c4491846d2c393c199cfa4edc9af593437691683335b')
diff --git a/var/spack/repos/builtin/packages/py-etelemetry/package.py b/var/spack/repos/builtin/packages/py-etelemetry/package.py
new file mode 100644
index 0000000000..539b3b0c2a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-etelemetry/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyEtelemetry(PythonPackage):
+ """A lightweight python client to communicate with the etelemetry server"""
+
+ homepage = "https://github.com/sensein/etelemetry-client"
+ url = "https://github.com/sensein/etelemetry-client/archive/refs/tags/v0.2.2.tar.gz"
+
+ version('0.2.2', sha256='bfec416552d248ad0f50b90ba5ff015e825ad70e4a87f7a06cc7da6d19152897')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-ci-info@0.2.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-eventlet/package.py b/var/spack/repos/builtin/packages/py-eventlet/package.py
index fa7f734348..54ca8e5710 100644
--- a/var/spack/repos/builtin/packages/py-eventlet/package.py
+++ b/var/spack/repos/builtin/packages/py-eventlet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-execnet/package.py b/var/spack/repos/builtin/packages/py-execnet/package.py
index 96c26f7717..74c6aaa6c5 100644
--- a/var/spack/repos/builtin/packages/py-execnet/package.py
+++ b/var/spack/repos/builtin/packages/py-execnet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class PyExecnet(PythonPackage):
communication for distributing execution across many Python interpreters
across version, platform and network barriers."""
- homepage = "http://codespeak.net/execnet"
- url = "https://pypi.io/packages/source/e/execnet/execnet-1.7.1.tar.gz"
+ homepage = "https://codespeak.net/execnet"
+ pypi = "execnet/execnet-1.7.1.tar.gz"
version('1.7.1', sha256='cacb9df31c9680ec5f95553976c4da484d407e85e41c83cb812aa014f0eddc50')
version('1.4.1', sha256='f66dd4a7519725a1b7e14ad9ae7d3df8e09b2da88062386e08e941cafc0ef3e6')
diff --git a/var/spack/repos/builtin/packages/py-exifread/package.py b/var/spack/repos/builtin/packages/py-exifread/package.py
new file mode 100644
index 0000000000..05e104f164
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-exifread/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyExifread(PythonPackage):
+ """Read Exif metadata from tiff and jpeg files."""
+
+ homepage = "https://github.com/ianare/exif-py"
+ pypi = "ExifRead/ExifRead-2.3.2.tar.gz"
+
+ version('2.3.2', sha256='a0f74af5040168d3883bbc980efe26d06c89f026dc86ba28eb34107662d51766')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-exodus-bundler/package.py b/var/spack/repos/builtin/packages/py-exodus-bundler/package.py
index eddb3da88f..4f31ce3574 100644
--- a/var/spack/repos/builtin/packages/py-exodus-bundler/package.py
+++ b/var/spack/repos/builtin/packages/py-exodus-bundler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyExodusBundler(PythonPackage):
ELF binaries from one system to another."""
homepage = "https://github.com/intoli/exodus"
- url = "https://pypi.io/packages/source/e/exodus-bundler/exodus-bundler-2.0.2.tar.gz"
+ pypi = "exodus-bundler/exodus-bundler-2.0.2.tar.gz"
version('2.0.2', sha256='4e896a2034b94cf7b4fb33d86a68e29a7d3b08e57541e444db34dddc6ac1ef68')
diff --git a/var/spack/repos/builtin/packages/py-extension-helpers/package.py b/var/spack/repos/builtin/packages/py-extension-helpers/package.py
index 698af27a49..f03d1a7ff3 100644
--- a/var/spack/repos/builtin/packages/py-extension-helpers/package.py
+++ b/var/spack/repos/builtin/packages/py-extension-helpers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyExtensionHelpers(PythonPackage):
to be general and usable by any Python package."""
homepage = 'https://github.com/astropy/astropy-helpers'
- url = 'https://pypi.io/packages/source/e/extension-helpers/extension-helpers-0.1.tar.gz'
+ pypi = 'extension-helpers/extension-helpers-0.1.tar.gz'
version('0.1', sha256='ac8a6fe91c6d98986a51a9f08ca0c7945f8fd70d95b662ced4040ae5eb973882')
diff --git a/var/spack/repos/builtin/packages/py-extras/package.py b/var/spack/repos/builtin/packages/py-extras/package.py
index 5705b0dfe6..ab4f9c1f6c 100644
--- a/var/spack/repos/builtin/packages/py-extras/package.py
+++ b/var/spack/repos/builtin/packages/py-extras/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyExtras(PythonPackage):
library."""
homepage = "https://github.com/testing-cabal/extras"
- url = "https://pypi.io/packages/source/e/extras/extras-1.0.0.tar.gz"
+ pypi = "extras/extras-1.0.0.tar.gz"
version('1.0.0', sha256='132e36de10b9c91d5d4cc620160a476e0468a88f16c9431817a6729611a81b4e')
diff --git a/var/spack/repos/builtin/packages/py-ez-setup/package.py b/var/spack/repos/builtin/packages/py-ez-setup/package.py
new file mode 100644
index 0000000000..41c2b34658
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ez-setup/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyEzSetup(PythonPackage):
+ """Setuptools bootstrap module, which is not always packaged with
+ setuptools."""
+
+ homepage = "https://github.com/ActiveState/ez_setup"
+ url = "https://github.com/ActiveState/ez_setup/archive/v0.9.tar.gz"
+
+ version('0.9', sha256='a35cb03142cc10b6bb2cf59999cf2f4e127ec0901606d02be57da5b34e6897fb')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-f90wrap/package.py b/var/spack/repos/builtin/packages/py-f90wrap/package.py
new file mode 100644
index 0000000000..84a4989280
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-f90wrap/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyF90wrap(PythonPackage):
+ """f90wrap is a tool to automatically generate Python extension
+ modules which interface to Fortran code that makes use of derived types."""
+
+ homepage = "https://github.com/jameskermode/f90wrap"
+ pypi = "f90wrap/f90wrap-0.2.3.tar.gz"
+
+ version('0.2.3', sha256='5577ea92934c5aad378df21fb0805b5fb433d6f2b8b9c1bf1a9ec1e3bf842cff')
+
+ # TODO errors with python 3.6 due to UnicodeDecodeError
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-fabric/package.py b/var/spack/repos/builtin/packages/py-fabric/package.py
index b8ccb624bb..1f63b06bdb 100644
--- a/var/spack/repos/builtin/packages/py-fabric/package.py
+++ b/var/spack/repos/builtin/packages/py-fabric/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "fabric/fabric-2.5.0.tar.gz"
version('2.5.0', sha256='24842d7d51556adcabd885ac3cf5e1df73fc622a1708bf3667bf5927576cdfa6')
diff --git a/var/spack/repos/builtin/packages/py-falcon/package.py b/var/spack/repos/builtin/packages/py-falcon/package.py
index c1003d9bbf..7100d9f77c 100644
--- a/var/spack/repos/builtin/packages/py-falcon/package.py
+++ b/var/spack/repos/builtin/packages/py-falcon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-fallocate/package.py b/var/spack/repos/builtin/packages/py-fallocate/package.py
index 0e0a442f2b..aee4656d7d 100644
--- a/var/spack/repos/builtin/packages/py-fallocate/package.py
+++ b/var/spack/repos/builtin/packages/py-fallocate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,6 @@ class PyFallocate(PythonPackage):
"""
homepage = "https://github.com/trbs/fallocate"
- url = "https://pypi.io/packages/source/f/fallocate/fallocate-1.6.4.tar.gz"
+ pypi = "fallocate/fallocate-1.6.4.tar.gz"
version('1.6.4', sha256='85ebeb2786761fbe80d88c52590a610bd3425fc89e188c208a3f261a5bd6acb3')
diff --git a/var/spack/repos/builtin/packages/py-fastaindex/package.py b/var/spack/repos/builtin/packages/py-fastaindex/package.py
index 8b37fd3a4e..f5c091c50e 100644
--- a/var/spack/repos/builtin/packages/py-fastaindex/package.py
+++ b/var/spack/repos/builtin/packages/py-fastaindex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyFastaindex(PythonPackage):
with 4 columns storing counts for A, C, G & T for each sequence.."""
homepage = "https://github.com/lpryszcz/FastaIndex"
- url = "https://pypi.io/packages/source/F/FastaIndex/FastaIndex-0.11rc7.tar.gz"
+ pypi = "FastaIndex/FastaIndex-0.11rc7.tar.gz"
version('0.11rc7', sha256='c130a2146bb178ea4f9d228e0d360787046ab4cb0ab53b5b43711dd57e31aff7')
diff --git a/var/spack/repos/builtin/packages/py-fastavro/package.py b/var/spack/repos/builtin/packages/py-fastavro/package.py
index e103a8cbac..6c13cc70f6 100644
--- a/var/spack/repos/builtin/packages/py-fastavro/package.py
+++ b/var/spack/repos/builtin/packages/py-fastavro/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-fastcache/package.py b/var/spack/repos/builtin/packages/py-fastcache/package.py
index bd58a14702..bb4b861f1f 100644
--- a/var/spack/repos/builtin/packages/py-fastcache/package.py
+++ b/var/spack/repos/builtin/packages/py-fastcache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyFastcache(PythonPackage):
"""C implementation of Python 3 functools.lru_cache"""
homepage = "https://github.com/pbrady/fastcache"
- url = "https://pypi.io/packages/source/f/fastcache/fastcache-1.1.0.tar.gz"
+ pypi = "fastcache/fastcache-1.1.0.tar.gz"
version('1.1.0', sha256='6de1b16e70335b7bde266707eb401a3aaec220fb66c5d13b02abf0eab8be782b')
diff --git a/var/spack/repos/builtin/packages/py-fastcluster/package.py b/var/spack/repos/builtin/packages/py-fastcluster/package.py
index bc09681527..f7bc397880 100644
--- a/var/spack/repos/builtin/packages/py-fastcluster/package.py
+++ b/var/spack/repos/builtin/packages/py-fastcluster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyFastcluster(PythonPackage):
"""Fast hierarchical clustering routines for R and Python."""
homepage = "http://danifold.net/"
- url = "https://pypi.io/packages/source/f/fastcluster/fastcluster-1.1.26.tar.gz"
+ pypi = "fastcluster/fastcluster-1.1.26.tar.gz"
version('1.1.26', sha256='a202f44a3b06f5cf9cdba3c67d6c523288922d6e6a1cdf737292f93759aa82f7')
diff --git a/var/spack/repos/builtin/packages/py-fastcov/package.py b/var/spack/repos/builtin/packages/py-fastcov/package.py
new file mode 100644
index 0000000000..1c3b57aeaf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-fastcov/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyFastcov(PythonPackage):
+ """
+ A parallelized gcov wrapper for generating intermediate coverage formats
+ fast
+ """
+
+ homepage = "https://github.com/RPGillespie6/fastcov"
+ pypi = "fastcov/fastcov-1.13.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('1.13', sha256='ec8a5271f90a2f8b894cb999e262c33e225ed6072d9a6ca38f636f88cc0543e8')
+
+ # Depends on gcov too, but that's installed with the compiler
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools@38.3:', type='build')
diff --git a/var/spack/repos/builtin/packages/py-fastdtw/package.py b/var/spack/repos/builtin/packages/py-fastdtw/package.py
index dbe31960f5..122c2f93cc 100644
--- a/var/spack/repos/builtin/packages/py-fastdtw/package.py
+++ b/var/spack/repos/builtin/packages/py-fastdtw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyFastdtw(PythonPackage):
complexity."""
homepage = "https://github.com/slaypni/fastdtw"
- url = "https://pypi.io/packages/source/f/fastdtw/fastdtw-0.3.4.tar.gz"
+ pypi = "fastdtw/fastdtw-0.3.4.tar.gz"
version('0.3.4', sha256='2350fa6ec36bcad186eaf81f46eff35181baf04e324f522de8aeb43d0243f64f')
diff --git a/var/spack/repos/builtin/packages/py-fasteners/package.py b/var/spack/repos/builtin/packages/py-fasteners/package.py
index 685b1dca0e..6c65b8b023 100644
--- a/var/spack/repos/builtin/packages/py-fasteners/package.py
+++ b/var/spack/repos/builtin/packages/py-fasteners/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyFasteners(PythonPackage):
"""A python package that provides useful locks."""
homepage = "https://github.com/harlowja/fasteners"
- url = "https://pypi.io/packages/source/f/fasteners/fasteners-0.14.1.tar.gz"
+ pypi = "fasteners/fasteners-0.14.1.tar.gz"
version('0.14.1', sha256='427c76773fe036ddfa41e57d89086ea03111bbac57c55fc55f3006d027107e18')
diff --git a/var/spack/repos/builtin/packages/py-fastrlock/package.py b/var/spack/repos/builtin/packages/py-fastrlock/package.py
index 83825227c5..c27e5c54a3 100644
--- a/var/spack/repos/builtin/packages/py-fastrlock/package.py
+++ b/var/spack/repos/builtin/packages/py-fastrlock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-faststructure/package.py b/var/spack/repos/builtin/packages/py-faststructure/package.py
index 60e123738f..07160c8e8c 100644
--- a/var/spack/repos/builtin/packages/py-faststructure/package.py
+++ b/var/spack/repos/builtin/packages/py-faststructure/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-fava/package.py b/var/spack/repos/builtin/packages/py-fava/package.py
new file mode 100644
index 0000000000..86af081df4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-fava/package.py
@@ -0,0 +1,43 @@
+# Copyright 2013-2021 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 PyFava(PythonPackage):
+ """Fava is a web interface for the double-entry bookkeeping software
+ Beancount with a focus on features and usability."""
+
+ homepage = "https://beancount.github.io/fava/"
+ pypi = "fava/fava-1.18.tar.gz"
+
+ version('1.18', sha256='21336b695708497e6f00cab77135b174c51feb2713b657e0e208282960885bf5')
+
+ # For some reason Fava adds a whole bunch of executables to
+ # its bin directory, and this causes clashes when loading
+ # the module.
+ extends('python', ignore='bin/^(?!fava).*')
+
+ # Some of the dependencies are not listed as required at
+ # build or run time, but actually are.
+ # - py-setuptools
+ # - py-importlib
+ # - py-pytest
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-setuptools-scm', type=('build'))
+
+ depends_on('py-babel@2.6.0:', type=('build', 'run'))
+ depends_on('py-beancount@2.3.0:', type=('build', 'run'))
+ depends_on('py-cheroot', type=('build', 'run'))
+ depends_on('py-click', type=('build', 'run'))
+ depends_on('py-flask@0.10.1:', type=('build', 'run'))
+ depends_on('py-flask-babel@1.0.0:', type=('build', 'run'))
+ depends_on('py-jinja2@2.10:', type=('build', 'run'))
+ depends_on('py-markdown2@2.3.0:', type=('build', 'run'))
+ depends_on('py-ply', type=('build', 'run'))
+ depends_on('py-pytest', type=('build', 'run'))
+ depends_on('py-simplejson@3.2.0:', type=('build', 'run'))
+ depends_on('py-werkzeug@0.15.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-fenics-basix/package.py b/var/spack/repos/builtin/packages/py-fenics-basix/package.py
new file mode 100644
index 0000000000..1f5c567059
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-fenics-basix/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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 PyFenicsBasix(PythonPackage):
+ """Python basis evaluation library for Next generation FEniCS problem solving
+ environment"""
+
+ homepage = "https://github.com/FEniCS/basix"
+ url = "https://github.com/FEniCS/basix/archive/v0.1.0.tar.gz"
+ git = "https://github.com/FEniCS/basix.git"
+ maintainers = ["chrisrichardson", "mscroggs", "garth-wells"]
+
+ version("main", branch="main")
+ version("0.3.0", sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07")
+ version("0.2.0", sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb")
+ version("0.1.0", sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7")
+
+ depends_on("fenics-basix@main", type=("build", "run"), when="@main")
+ depends_on("fenics-basix@0.3.0", type=("build", "run"), when="@0.3.0")
+ depends_on("fenics-basix@0.2.0", type=("build", "run"), when="@0.2.0")
+ depends_on("fenics-basix@0.1.0", type=("build", "run"), when="@0.1.0")
+
+ depends_on("python@3.7:", type=('build', 'run'))
+ depends_on("py-setuptools", type="build")
+ depends_on("cmake@3.18:", type="build")
+ depends_on("xtl@0.7.2:", type="build")
+ depends_on("xtensor@0.23.10:", type="build")
+ depends_on("py-pybind11@2.6.2:2.7.99", type="build")
+
+ phases = ['build_ext', 'build', 'install']
+
+ build_directory = 'python'
diff --git a/var/spack/repos/builtin/packages/py-fenics-dijitso/package.py b/var/spack/repos/builtin/packages/py-fenics-dijitso/package.py
index d2cd6865d3..9b0edc2cd8 100644
--- a/var/spack/repos/builtin/packages/py-fenics-dijitso/package.py
+++ b/var/spack/repos/builtin/packages/py-fenics-dijitso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,16 @@ class PyFenicsDijitso(PythonPackage):
"""A Python module for distributed just-in-time shared library building"""
homepage = "https://bitbucket.org/fenics-project/dijitso"
- url = "https://bitbucket.org/fenics-project/dijitso/downloads/dijitso-2018.1.0.tar.gz"
+ url = "https://bitbucket.org/fenics-project/dijitso/downloads/dijitso-2019.1.0.tar.gz"
git = "https://bitbucket.org/fenics-project/dijitso.git"
maintainers = ["js947", "chrisrichardson"]
version("master", branch="master")
- version("2018.1.0", sha256="2084ada1e7bd6ecec0999b15a17db98c72e26f1ccbf3fcbe240b1a035a1a2e64")
- version("2017.2.0", sha256="05a893d17f8a50067d303b232e41592dce2840d6499677ad8b457ba58a679b58")
- version("2017.1.0", sha256="ef23952539d349fbd384d41302abc94413d485ca7e8c29e8a0debc2aadaf8657")
- version("2016.2.0", sha256="1bfa0ac0d47dae75bbde8fabb1145d3caa2e6c28a1e4097ad5550a91a8a205e4")
+ version('2019.1.0', sha256='eaa45eec4457f3f865d72a926b7cba86df089410e78de04cd89b15bb405e8fd9')
+ version('2018.1.0', sha256='2084ada1e7bd6ecec0999b15a17db98c72e26f1ccbf3fcbe240b1a035a1a2e64')
+ version('2017.2.0', sha256='05a893d17f8a50067d303b232e41592dce2840d6499677ad8b457ba58a679b58')
+ version('2017.1.0', sha256='ef23952539d349fbd384d41302abc94413d485ca7e8c29e8a0debc2aadaf8657')
+ version('2016.2.0', sha256='1bfa0ac0d47dae75bbde8fabb1145d3caa2e6c28a1e4097ad5550a91a8a205e4')
depends_on("py-setuptools", type="build")
depends_on("python@3.5:", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py
index f84f9ce565..bb5d442be3 100644
--- a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py
+++ b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,26 +11,44 @@ class PyFenicsDolfinx(PythonPackage):
environment"""
homepage = "https://github.com/FEniCS/dolfinx"
+ url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz"
git = "https://github.com/FEniCS/dolfinx.git"
- maintainers = ["js947", "chrisrichardson"]
+ maintainers = ["js947", "chrisrichardson", "garth-wells"]
- version("master", branch="master")
+ version("main", branch="main")
+ version("0.3.0", sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed")
+ version("0.2.0", sha256="4c9b5a5c7ef33882c99299c9b4d98469fb7aa470a37a91bc5be3bb2fc5b863a4")
+ version("0.1.0", sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33")
- depends_on("cmake@3.9:", type="build")
+ depends_on("cmake@3.18:", type="build")
+ depends_on("hdf5", type="build")
depends_on("pkgconfig", type=("build", "run"))
- depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('python@3.7:', type=('build', 'run'))
depends_on("py-setuptools", type="build")
- depends_on("fenics-dolfinx@master")
+ depends_on("fenics-dolfinx@main", when="@main")
+ depends_on("fenics-dolfinx@0.3.0", when="@0.3.0")
+ depends_on("fenics-dolfinx@0.2.0", when="@0.2.0")
+ depends_on("fenics-dolfinx@0.1.0", when="@0.1.0")
+ depends_on("fenics-basix@main", type=("build", "link"), when="@main")
+ depends_on("fenics-basix@0.3.0", type=("build", "link"), when="@0.3.0")
+ depends_on("fenics-basix@0.2.0", type=("build", "link"), when="@0.2.0")
+ depends_on("fenics-basix@0.1.0", type=("build", "link"), when="@0.1.0")
+ depends_on("py-numpy@:1.20.3", type=("build", "run"))
depends_on("py-mpi4py", type=("build", "run"))
depends_on("py-petsc4py", type=("build", "run"))
- depends_on("py-pybind11", type=("build", "run"))
+ depends_on("py-pybind11@2.6.2:2.7.99", type=("build", "run"))
+ depends_on("xtensor@0.23.10:", type="build")
- depends_on("py-fenics-ffcx", type=("run"))
- depends_on("py-fenics-ufl", type=("run"))
- depends_on("py-cffi", type=("run"))
- depends_on("py-numpy", type=("run"))
+ depends_on("py-fenics-ffcx@main", type="run", when="@main")
+ depends_on("py-fenics-ffcx@0.3.0", type="run", when="@0.3.0")
+ depends_on("py-fenics-ffcx@0.2.0", type="run", when="@0.2.0")
+ depends_on("py-fenics-ffcx@0.1.0", type="run", when="@0.1.0")
+ depends_on("py-fenics-ufl@main", type="run", when="@main")
+ depends_on("py-fenics-ufl@2021.1.0", type="run", when="@0.1:")
+
+ depends_on("py-cffi", type="run")
+ depends_on("py-numpy", type="run")
- import_modules = ['dolfinx']
phases = ['build_ext', 'build', 'install']
build_directory = 'python'
diff --git a/var/spack/repos/builtin/packages/py-fenics-ffc/package.py b/var/spack/repos/builtin/packages/py-fenics-ffc/package.py
new file mode 100644
index 0000000000..0c3b9fbf66
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-fenics-ffc/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2021 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 PyFenicsFfc(PythonPackage):
+ """The FEniCS Form Compiler FFC is a compiler for finite element
+ variational forms, translating high-level mathematical descriptions
+ of variational forms into efficient low-level C++ code for finite
+ element assembly."""
+
+ homepage = "https://fenicsproject.org/"
+ git = "https://bitbucket.org/fenics-project/ffc.git"
+ url = "https://bitbucket.org/fenics-project/ffc/downloads/ffc-2019.1.0.post0.tar.gz"
+ maintainers = ['emai-imcs']
+
+ version('2019.1.0.post0', sha256='306e1179630200a34202975a5369194939b3482eebfc34bc44ad74dab1f109e8')
+ version('2018.1.0', sha256='c5a6511693106d1cd2fc013148d0cd01cd1b99fc65dab461ca0b95851a9ea271')
+ version('2017.2.0.post0', sha256='1969a5460cb866c478df64874ce213f81cb5c893b89f991a578e258b1a64fee5')
+ version('2016.2.0', sha256='097c284780447ea7bb47d4d51956648a1efb2cb9047eb1382944421dde351ecb')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+
+ for ver in ['2019.1.0.post0', '2018.1.0', '2017.2.0.post0', '2016.2.0']:
+ if ver in ['2019.1.0.post0', '2017.2.0.post0']:
+ ver = ver[:ver.rfind('.post')]
+ wver = '@' + ver
+ depends_on('py-fenics-fiat{0}'.format(wver), type=('build', 'run'), when=wver)
+ if(Version(ver) < Version('2017.2.0')):
+ depends_on('py-fenics-instant{0}'.format(wver), type=('build', 'run'), when=wver)
+ else:
+ depends_on('py-fenics-dijitso{0}'.format(wver), type=('build', 'run'), when=wver)
+ depends_on('py-fenics-ufl{0}'.format(wver), type=('build', 'run'), when=wver)
diff --git a/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py
index abc7792afb..8220ce2c53 100644
--- a/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py
+++ b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,14 +10,25 @@ class PyFenicsFfcx(PythonPackage):
"""Next generation FEniCS Form Compiler"""
homepage = "https://github.com/FEniCS/ffcx"
+ url = "https://github.com/FEniCS/ffcx/archive/v0.1.0.tar.gz"
git = "https://github.com/FEniCS/ffcx.git"
- maintainers = ["js947", "chrisrichardson"]
+ maintainers = ["js947", "chrisrichardson", "garth-wells"]
- version("master", branch="master")
+ version('main', branch='main')
+ version('0.3.0', sha256='33fa1a0cc5762f360033c25a99ec9462be933f8ba413279e35cd2c3b5c3e6096')
+ version('0.2.0', sha256='562a704163a6427e0341d267e69b8bf55d8f53d673829170b443191577e8d9b6')
+ version('0.1.0', sha256='98a47906146ac892fb4a358e04cbfd04066f12d0a4cdb505a6b08ff0b1a17e89')
- depends_on('python@3.5:', type=('build', 'run'))
- depends_on("py-setuptools", type=("build", "run"))
- depends_on("py-cffi", type=("build", "run"))
- depends_on("py-fenics-ufl@master", type=("build", "run"))
- depends_on("py-fenics-fiat@master", type=("build", "run"))
- depends_on("py-numpy", type=("build", "run"))
+ depends_on('python@3.7:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-cffi', type='run')
+
+ depends_on('py-fenics-ufl@main', type='run', when='@main')
+ depends_on('py-fenics-ufl@2021.1.0', type='run', when='@0.1:')
+
+ depends_on('py-fenics-basix@main', type='run', when='@main')
+ depends_on('py-fenics-basix@0.3.0', type='run', when='@0.3.0')
+ depends_on('py-fenics-basix@0.2.0', type='run', when='@0.2.0')
+ depends_on('py-fenics-basix@0.1.0', type='run', when='@0.1.0')
+
+ depends_on('py-numpy', type='run')
diff --git a/var/spack/repos/builtin/packages/py-fenics-fiat/package.py b/var/spack/repos/builtin/packages/py-fenics-fiat/package.py
index f6f9aa5825..135565888c 100644
--- a/var/spack/repos/builtin/packages/py-fenics-fiat/package.py
+++ b/var/spack/repos/builtin/packages/py-fenics-fiat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -27,8 +27,11 @@ class PyFenicsFiat(PythonPackage):
version('2017.2.0', sha256='e4d3ffc86a0a717b3f17b9bb2d922214c342be27e5bdfbe50f110030bfff9729')
version('2017.1.0.post1', sha256='1784fe1cb9479ca7cd85f63b0afa6e07634feec8d8e82fa8be4c480649cb9621')
version('2017.1.0', sha256='d4288401ad16c4598720f9db0810a522f7f0eadad35d8211bac7120bce5fde94')
+ version('2016.2.0', tag='fiat-2016.2.0')
depends_on('python@3:', type=('build', 'run'))
depends_on('py-setuptools', type="build")
depends_on('py-numpy', type=("build", "run"))
- depends_on('py-sympy', type=("build", "run"))
+ depends_on('py-sympy', type=("build", "run"), when='@2019.1.0')
+ # avoid compilation error of dolfin (ffc fails with latest sympy)
+ depends_on('py-sympy@1.0', type=("build", "run"), when='@:2018.1.0')
diff --git a/var/spack/repos/builtin/packages/py-fenics-instant/package.py b/var/spack/repos/builtin/packages/py-fenics-instant/package.py
new file mode 100644
index 0000000000..10de314363
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-fenics-instant/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 PyFenicsInstant(PythonPackage):
+ """Instant is a Python module that allows for instant inlining of C and C++
+ code in Python. It is a small Python module built on top of SWIG and
+ Distutils. Instant has been retired after 2017.2.0 release. It is no longer
+ needed in FEniCS and hence no longer maintained and tested. """
+
+ homepage = "https://fenicsproject.org"
+ url = "https://bitbucket.org/fenics-project/instant/downloads/instant-2017.2.0.tar.gz"
+ maintainers = ['emai-imcs']
+
+ version('2017.2.0', sha256='be24f162fd1a89b82fae002db8df0b4f111fd50db83d78c0c121015c02e45b7b')
+ version('2016.2.0', sha256='df5e8ca306546fd1ee1a28e36b61c5d46456dc8b07e3293d674ddff62cf8d953')
+
+ depends_on('python@2.7:', type=("build", "run"))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-subprocess32', when='^python@:2.999', type=('build', 'run'))
+ depends_on('py-setuptools', type="build")
+ depends_on('py-numpy', type=("build", "run"))
+ depends_on('cmake', type="run")
+ depends_on('swig', type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py
index 0476cd33c6..b23326123c 100644
--- a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py
+++ b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,15 +16,17 @@ class PyFenicsUfl(PythonPackage):
homepage = "https://fenicsproject.org/"
url = "https://github.com/FEniCS/ufl/archive/2019.1.0.tar.gz"
git = "https://github.com/FEniCS/ufl.git"
- maintainers = ["js947", "chrisrichardson"]
+ maintainers = ["js947", "chrisrichardson", "garth-wells"]
- version("master", branch="master")
+ version("main", branch="main")
+ version('2021.1.0', sha256='130fdc09bb7fcd39dcd2618426912b8a25a03431d94575711068b38c666b4337')
version('2019.1.0', sha256='46ac0df4e96327be10b9576d2b8fa8b2c4ca62d3c681d407f5718b162d3ca22d')
version('2018.1.0', sha256='b0d4c2f43f396fd5609317b70d55b53b89c649962fc8a593f4e0e21607da211d')
version('2017.2.0.post0', sha256='111e77707cd6731584b1041f405c2fd3f1752a86c51fd9c430524bd396f293b0')
version('2017.2.0', sha256='0adff7a511185b20c38ddaccdeed6c1b2ecafe4b163c688bfd1316d5c3b1c00d')
version('2017.1.0.post1', sha256='82c8170f44c2392c7e60aa86495df22cc209af50735af8115dc35aeda4b0ca96')
+ version('2016.2.0', tag='ufl-2016.2.0')
- depends_on("python@3.5:", type=('build', 'run'))
+ depends_on("python@3.7:", type=('build', 'run'))
depends_on("py-setuptools", type="build")
depends_on("py-numpy", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/py-filelock/package.py b/var/spack/repos/builtin/packages/py-filelock/package.py
index 27d9735598..ffa7a37685 100644
--- a/var/spack/repos/builtin/packages/py-filelock/package.py
+++ b/var/spack/repos/builtin/packages/py-filelock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyFilelock(PythonPackage):
inter-process communication"""
homepage = "https://github.com/benediktschmitt/py-filelock"
- url = "https://pypi.io/packages/source/f/filelock/filelock-3.0.4.tar.gz"
+ pypi = "filelock/filelock-3.0.4.tar.gz"
version('3.0.12', sha256='18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59')
version('3.0.4', sha256='011327d4ed939693a5b28c0fdf2fd9bda1f68614c1d6d0643a89382ce9843a71')
diff --git a/var/spack/repos/builtin/packages/py-filemagic/package.py b/var/spack/repos/builtin/packages/py-filemagic/package.py
index 8d425dfb37..cc3701a427 100644
--- a/var/spack/repos/builtin/packages/py-filemagic/package.py
+++ b/var/spack/repos/builtin/packages/py-filemagic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,8 @@ class PyFilemagic(PythonPackage):
"""A Python API for libmagic, the library behind the Unix file command"""
homepage = "https://filemagic.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/f/filemagic/filemagic-1.6.tar.gz"
+ pypi = "filemagic/filemagic-1.6.tar.gz"
version('1.6', sha256='e684359ef40820fe406f0ebc5bf8a78f89717bdb7fed688af68082d991d6dbf3')
depends_on('py-setuptools', type='build')
- depends_on('py-mock', type='test', when='^python@3:')
- depends_on('py-unittest2', type='test')
diff --git a/var/spack/repos/builtin/packages/py-filterpy/package.py b/var/spack/repos/builtin/packages/py-filterpy/package.py
new file mode 100644
index 0000000000..a67b0f2434
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-filterpy/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyFilterpy(PythonPackage):
+ """This library provides Kalman filtering and various
+ related optimal and non-optimal filtering software written
+ in Python."""
+
+ homepage = "https://github.com/rlabbe/filterpy/"
+ pypi = "filterpy/filterpy-1.4.5.zip"
+
+ version('1.4.5', sha256='4f2a4d39e4ea601b9ab42b2db08b5918a9538c168cff1c6895ae26646f3d73b1')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-findlibs/package.py b/var/spack/repos/builtin/packages/py-findlibs/package.py
new file mode 100644
index 0000000000..cfb1b35b81
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-findlibs/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyFindlibs(PythonPackage):
+ """A package to search for shared libraries on various platforms."""
+
+ homepage = "https://github.com/ecmwf/findlibs"
+ pypi = "findlibs/findlibs-0.0.2.tar.gz"
+
+ version('0.0.2', sha256='6c7e038496f9a97783ab2cd5736bb68522d5bebd8b0eb17c976b6a4ae4032c8d')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-fiona/package.py b/var/spack/repos/builtin/packages/py-fiona/package.py
index b4213d5f61..f2d55509f8 100644
--- a/var/spack/repos/builtin/packages/py-fiona/package.py
+++ b/var/spack/repos/builtin/packages/py-fiona/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,33 +7,34 @@ from spack import *
class PyFiona(PythonPackage):
- """Alternative Python binding for OGR"""
+ """Fiona reads and writes spatial data files."""
- homepage = "http://toblerity.org/fiona/"
- url = "https://pypi.io/packages/source/F/Fiona/Fiona-1.8.6.tar.gz"
+ homepage = "https://github.com/Toblerity/Fiona"
+ pypi = "Fiona/Fiona-1.8.18.tar.gz"
+ git = "https://github.com/Toblerity/Fiona.git"
maintainers = ['adamjstewart']
- import_modules = ['fiona', 'fiona.fio']
+ version('master', branch='master')
+ version('1.8.20', sha256='a70502d2857b82f749c09cb0dea3726787747933a2a1599b5ab787d74e3c143b')
+ version('1.8.18', sha256='b732ece0ff8886a29c439723a3e1fc382718804bb057519d537a81308854967a')
version('1.8.6', sha256='fa31dfe8855b9cd0b128b47a4df558f1b8eda90d2181bff1dd9854e5556efb3e')
version('1.7.12', sha256='8b54eb8422d7c502bb7776b184018186bede1a489cf438a7a47f992ade6a0e51')
- depends_on('python@3:', type=('build', 'run'), when='@1.9:')
- depends_on('python@2.6:', type=('build', 'run'))
- depends_on('gdal@1.8:', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'link', 'run'), when='@1.9:')
+ depends_on('python@2.6:', type=('build', 'link', 'run'))
+ depends_on('gdal@1.11:', type=('build', 'link', 'run'), when='@1.9:')
+ depends_on('gdal@1.8:', type=('build', 'link', 'run'))
- depends_on('py-setuptools', type='build')
- depends_on('py-cython', type='build')
+ depends_on('py-cython', type='build', when='@master')
depends_on('py-attrs@17:', type=('build', 'run'))
- depends_on('py-click@4:7', type=('build', 'run'))
+ depends_on('py-certifi', type=('build', 'run'), when='@1.8.18:')
+ depends_on('py-click@4:', type=('build', 'run'))
depends_on('py-cligj@0.5:', type=('build', 'run'))
depends_on('py-click-plugins@1:', type=('build', 'run'))
depends_on('py-six@1.7:', type=('build', 'run'))
depends_on('py-munch', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6')
depends_on('py-ordereddict', type=('build', 'run'), when='^python@:2.6')
depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3')
-
- def build_test(self):
- # PyPI tarball does not come with unit tests
- pass
diff --git a/var/spack/repos/builtin/packages/py-fiscalyear/package.py b/var/spack/repos/builtin/packages/py-fiscalyear/package.py
index 407caa7ce5..266f19018e 100644
--- a/var/spack/repos/builtin/packages/py-fiscalyear/package.py
+++ b/var/spack/repos/builtin/packages/py-fiscalyear/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,24 +8,24 @@ from spack import *
class PyFiscalyear(PythonPackage):
"""fiscalyear is a small, lightweight Python module providing helpful
- utilities for managing the fiscal calendar. It is designed as an extension
- of the built-in datetime and calendar modules, adding the ability to query
- the fiscal year and fiscal quarter of a date or datetime object."""
+ utilities for managing the fiscal calendar.
+
+ It is designed as an extension of the built-in datetime and calendar
+ modules, adding the ability to query the fiscal year, fiscal quarter,
+ fiscal month, and fiscal day of a date or datetime object."""
homepage = "https://github.com/adamjstewart/fiscalyear"
- url = "https://pypi.io/packages/source/f/fiscalyear/fiscalyear-0.2.0.tar.gz"
- git = "https://github.com/adamjstewart/fiscalyear.git"
+ pypi = "fiscalyear/fiscalyear-0.2.0.tar.gz"
+ git = "https://github.com/adamjstewart/fiscalyear.git"
maintainers = ['adamjstewart']
- import_modules = ['fiscalyear']
version('master', branch='master')
+ version('0.3.2', sha256='0697b2af4ab2d4c6188fac33d340f31dea9b0e1f0d3666d6752faeedd744f019')
+ version('0.3.1', sha256='5964b4be71453c1fa5da804343cea866e0299aff874aa59ae186a8a9b9ff62d0')
+ version('0.3.0', sha256='64f97b3a0ab6b2857d09f0016bd3aae37646a454a5c2c66e907fef03ae54a816')
version('0.2.0', sha256='f513616aeb03046406c56d7c69cd9e26f6a12963c71c1410cc3d4532a5bfee71')
version('0.1.0', sha256='3fde4a12eeb72da446beb487e078adf1223a92d130520e589b82d7d1509701a2')
depends_on('python@2.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
-
- depends_on('py-pytest', type='test')
- depends_on('py-pytest-runner', type='test')
- depends_on('py-pytest-mock', type='test')
diff --git a/var/spack/repos/builtin/packages/py-fisher/package.py b/var/spack/repos/builtin/packages/py-fisher/package.py
index 45e0fc5110..776ba03af6 100644
--- a/var/spack/repos/builtin/packages/py-fisher/package.py
+++ b/var/spack/repos/builtin/packages/py-fisher/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,9 @@ class PyFisher(PythonPackage):
Simple, fast implementation of Fisher's exact test."""
homepage = "https://github.com/brentp/fishers_exact_test"
- url = "https://pypi.io/packages/source/f/fisher/fisher-0.1.9.tar.gz"
+ pypi = "fisher/fisher-0.1.9.tar.gz"
version('0.1.9', sha256='d378b3f7e488e2a679c6d0e5ea1bce17bc931c2bfe8ec8424ee47a74f251968d')
depends_on('py-setuptools', type='build')
depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-fits-tools/package.py b/var/spack/repos/builtin/packages/py-fits-tools/package.py
index 5127d88727..abe29b1a90 100644
--- a/var/spack/repos/builtin/packages/py-fits-tools/package.py
+++ b/var/spack/repos/builtin/packages/py-fits-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-fixtures/package.py b/var/spack/repos/builtin/packages/py-fixtures/package.py
index 2cc0362c4e..c594f7bf60 100644
--- a/var/spack/repos/builtin/packages/py-fixtures/package.py
+++ b/var/spack/repos/builtin/packages/py-fixtures/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyFixtures(PythonPackage):
"""Fixtures, reusable state for writing clean tests and more."""
homepage = "https://launchpad.net/python-fixtures"
- url = "https://pypi.io/packages/source/f/fixtures/fixtures-3.0.0.tar.gz"
+ pypi = "fixtures/fixtures-3.0.0.tar.gz"
version('3.0.0', sha256='fcf0d60234f1544da717a9738325812de1f42c2fa085e2d9252d8fff5712b2ef')
diff --git a/var/spack/repos/builtin/packages/py-flake8-import-order/package.py b/var/spack/repos/builtin/packages/py-flake8-import-order/package.py
index a93236e60f..f11c20ff95 100644
--- a/var/spack/repos/builtin/packages/py-flake8-import-order/package.py
+++ b/var/spack/repos/builtin/packages/py-flake8-import-order/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyFlake8ImportOrder(PythonPackage):
"""
homepage = "https://github.com/PyCQA/flake8-import-order"
- url = "https://pypi.io/packages/source/f/flake8-import-order/flake8-import-order-0.18.1.tar.gz"
+ pypi = "flake8-import-order/flake8-import-order-0.18.1.tar.gz"
version('0.18.1', sha256='a28dc39545ea4606c1ac3c24e9d05c849c6e5444a50fb7e9cdd430fc94de6e92')
diff --git a/var/spack/repos/builtin/packages/py-flake8-polyfill/package.py b/var/spack/repos/builtin/packages/py-flake8-polyfill/package.py
index cc61a2e936..882ba736c0 100644
--- a/var/spack/repos/builtin/packages/py-flake8-polyfill/package.py
+++ b/var/spack/repos/builtin/packages/py-flake8-polyfill/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyFlake8Polyfill(PythonPackage):
simultaneously.
"""
homepage = "https://gitlab.com/pycqa/flake8-polyfill"
- url = "https://pypi.io/packages/source/f/flake8-polyfill/flake8-polyfill-1.0.2.tar.gz"
+ pypi = "flake8-polyfill/flake8-polyfill-1.0.2.tar.gz"
version('1.0.2', sha256='e44b087597f6da52ec6393a709e7108b2905317d0c0b744cdca6208e670d8eda')
diff --git a/var/spack/repos/builtin/packages/py-flake8/package.py b/var/spack/repos/builtin/packages/py-flake8/package.py
index 4c585ee755..a0da2f0c38 100644
--- a/var/spack/repos/builtin/packages/py-flake8/package.py
+++ b/var/spack/repos/builtin/packages/py-flake8/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-flameprof/package.py b/var/spack/repos/builtin/packages/py-flameprof/package.py
new file mode 100644
index 0000000000..7e97b48a69
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-flameprof/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyFlameprof(PythonPackage):
+ """Flamegraph generator for python's cProfile stats."""
+
+ homepage = "https://github.com/baverman/flameprof/"
+ pypi = "flameprof/flameprof-0.4.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('0.4', sha256='dbc86d4190cbbba624f1e0a40f44d9db96138e27534d83c8ef42d420857875a3')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-flask-babel/package.py b/var/spack/repos/builtin/packages/py-flask-babel/package.py
new file mode 100644
index 0000000000..4d91e33c96
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-flask-babel/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyFlaskBabel(PythonPackage):
+ """Implements i18n and l10n support for Flask."""
+
+ homepage = "https://pythonhosted.org/Flask-Babel/"
+ pypi = "Flask-Babel/Flask-Babel-2.0.0.tar.gz"
+
+ version('2.0.0', sha256='f9faf45cdb2e1a32ea2ec14403587d4295108f35017a7821a2b1acb8cfd9257d')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-flask', type=('build', 'run'))
+ depends_on('py-babel@2.3:', type=('build', 'run'))
+ depends_on('py-pytz', type=('build', 'run'))
+ depends_on('py-jinja2@2.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-flask-compress/package.py b/var/spack/repos/builtin/packages/py-flask-compress/package.py
index c8a2f4ea06..797f512740 100644
--- a/var/spack/repos/builtin/packages/py-flask-compress/package.py
+++ b/var/spack/repos/builtin/packages/py-flask-compress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyFlaskCompress(PythonPackage):
responses with gzip."""
homepage = "https://github.com/libwilliam/flask-compress"
- url = "https://pypi.io/packages/source/F/Flask-Compress/Flask-Compress-1.4.0.tar.gz"
+ pypi = "Flask-Compress/Flask-Compress-1.4.0.tar.gz"
version('1.4.0', sha256='468693f4ddd11ac6a41bca4eb5f94b071b763256d54136f77957cfee635badb3')
diff --git a/var/spack/repos/builtin/packages/py-flask-cors/package.py b/var/spack/repos/builtin/packages/py-flask-cors/package.py
new file mode 100644
index 0000000000..625a9bc6ce
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-flask-cors/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyFlaskCors(PythonPackage):
+ """A Flask extension for handling Cross Origin Resource Sharing (CORS),
+ making cross-origin AJAX possible.
+ """
+
+ homepage = "https://flask-cors.corydolphin.com/en/latest/index.html"
+ pypi = "Flask-Cors/Flask-Cors-3.0.10.tar.gz"
+
+ version('3.0.10', sha256='b60839393f3b84a0f3746f6cdca56c1ad7426aa738b70d6c61375857823181de')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-flask@0.9:', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-flask-restful/package.py b/var/spack/repos/builtin/packages/py-flask-restful/package.py
new file mode 100644
index 0000000000..0a56189471
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-flask-restful/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyFlaskRestful(PythonPackage):
+ """Simple framework for creating REST APIs"""
+
+ homepage = "https://www.github.com/flask-restful/flask-restful/"
+ pypi = "Flask-RESTful/Flask-RESTful-0.3.8.tar.gz"
+
+ version('0.3.9', sha256='ccec650b835d48192138c85329ae03735e6ced58e9b2d9c2146d6c84c06fa53e')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-aniso8601@0.82:', type=('build', 'run'))
+ depends_on('py-flask@0.8:', type=('build', 'run'))
+ depends_on('py-six@1.3.0:', type=('build', 'run'))
+ depends_on('py-pytz', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-flask-socketio/package.py b/var/spack/repos/builtin/packages/py-flask-socketio/package.py
index 5a31755694..a084643c4a 100644
--- a/var/spack/repos/builtin/packages/py-flask-socketio/package.py
+++ b/var/spack/repos/builtin/packages/py-flask-socketio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyFlaskSocketio(PythonPackage):
"""
homepage = "https://flask-socketio.readthedocs.io"
- url = "https://pypi.io/packages/source/F/Flask-SocketIO/Flask-SocketIO-2.9.6.tar.gz"
+ pypi = "Flask-SocketIO/Flask-SocketIO-2.9.6.tar.gz"
version('2.9.6', sha256='f49edfd3a44458fbb9f7a04a57069ffc0c37f000495194f943a25d370436bb69')
diff --git a/var/spack/repos/builtin/packages/py-flask/package.py b/var/spack/repos/builtin/packages/py-flask/package.py
index 4be2b1e1e1..53f5c6d3be 100644
--- a/var/spack/repos/builtin/packages/py-flask/package.py
+++ b/var/spack/repos/builtin/packages/py-flask/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyFlask(PythonPackage):
"""A simple framework for building complex web applications."""
homepage = "https://palletsprojects.com/p/flask/"
- url = "https://pypi.io/packages/source/F/Flask/Flask-1.1.1.tar.gz"
+ pypi = "Flask/Flask-1.1.1.tar.gz"
version('1.1.2', sha256='4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060')
version('1.1.1', sha256='13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52')
diff --git a/var/spack/repos/builtin/packages/py-flatten-dict/package.py b/var/spack/repos/builtin/packages/py-flatten-dict/package.py
new file mode 100644
index 0000000000..6b2eeb1d0a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-flatten-dict/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyFlattenDict(PythonPackage):
+ """A flexible utility for flattening and unflattening dict-lik objects
+ in Python"""
+
+ homepage = "https://github.com/ianlini/flatten-dict"
+ pypi = "flatten-dict/flatten-dict-0.3.0.tar.gz"
+
+ version('0.3.0', sha256='0ccc43f15c7c84c5ef387ad19254f6769a32d170313a1bcbf4ce582089313d7e')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six@1.12:1.999', type=('build', 'run'))
+ depends_on('py-pathlib2@2.3:2.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-flexmock/package.py b/var/spack/repos/builtin/packages/py-flexmock/package.py
new file mode 100644
index 0000000000..1fd10869f6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-flexmock/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyFlexmock(PythonPackage):
+ """flexmock is a testing library for Python that makes it easy to create
+ mocks,stubs and fakes.
+
+ Its API is inspired by a Ruby library of the same name. However, it is not
+ a goal of Python flexmock to be a clone of the Ruby version. Instead, the
+ focus is on providing full support for testing Python programs and making
+ the creation of fake objects as unobtrusive as possible."""
+
+ homepage = "https://flexmock.readthedocs.io/en/latest/"
+ pypi = "flexmock/flexmock-0.10.4.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('0.10.4', sha256='5033ceb974d6452cf8716c2ff5059074b77e546df5c849fb44a53f98dfe0d82c')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-flexx/package.py b/var/spack/repos/builtin/packages/py-flexx/package.py
index 127c97f1ad..2c3436542f 100644
--- a/var/spack/repos/builtin/packages/py-flexx/package.py
+++ b/var/spack/repos/builtin/packages/py-flexx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyFlexx(PythonPackage):
"""Write desktop and web apps in pure Python."""
- homepage = "http://flexx.readthedocs.io"
- url = "https://pypi.io/packages/source/f/flexx/flexx-0.4.1.zip"
+ homepage = "https://flexx.readthedocs.io"
+ pypi = "flexx/flexx-0.4.1.zip"
version('0.4.1', sha256='54be868f01d943018d0907821f2562f6eb31c568b3932abfd8518f75c29b8be1')
diff --git a/var/spack/repos/builtin/packages/py-flit-core/package.py b/var/spack/repos/builtin/packages/py-flit-core/package.py
new file mode 100644
index 0000000000..bd4c94e3a1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-flit-core/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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)
+
+import glob
+import os
+import zipfile
+
+from spack import *
+
+
+class PyFlitCore(PythonPackage):
+ """Distribution-building parts of Flit."""
+
+ homepage = "https://github.com/takluyver/flit"
+ url = "https://github.com/takluyver/flit/archive/refs/tags/3.3.0.tar.gz"
+ maintainers = ['takluyver']
+
+ version('3.3.0', sha256='f5340b268563dd408bf8e2df6dbc8d4d08bc76cdff0d8c7f8a4be94e5f01f22f')
+
+ depends_on('python@3.4:', type=('build', 'run'))
+ depends_on('py-toml', type=('build', 'run'))
+
+ def build(self, spec, prefix):
+ with working_dir('flit_core'):
+ python('build_dists.py')
+
+ def install(self, spec, prefix):
+ wheel = glob.glob(os.path.join('flit_core', 'dist', '*.whl'))[0]
+ with zipfile.ZipFile(wheel) as f:
+ f.extractall(site_packages_dir)
diff --git a/var/spack/repos/builtin/packages/py-flit/package.py b/var/spack/repos/builtin/packages/py-flit/package.py
new file mode 100644
index 0000000000..dd1d296ae3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-flit/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyFlit(PythonPackage):
+ """Flit is a simple way to put Python packages and modules on PyPI."""
+
+ pypi = "flit/flit-3.3.0.tar.gz"
+ maintainers = ['takluyver']
+
+ version('3.3.0', sha256='65fbe22aaa7f880b776b20814bd80b0afbf91d1f95b17235b608aa256325ce57')
+
+ depends_on('py-flit-core@3.3.0:', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-docutils', type=('build', 'run'))
+ depends_on('py-toml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-flufl-lock/package.py b/var/spack/repos/builtin/packages/py-flufl-lock/package.py
new file mode 100644
index 0000000000..70b57ff62f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-flufl-lock/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyFluflLock(PythonPackage):
+ """NFS-safe file locking with timeouts for POSIX and Windows"""
+
+ homepage = "https://fluflock.readthedocs.io"
+ pypi = "flufl.lock/flufl.lock-5.0.4.tar.gz"
+
+ version('5.0.4', sha256='09ffef831d57c4d182e398e97bb74ad8c8ffbd1710175a5a0b0f057095db12f1')
+ version('5.0.3', sha256='94df161caa489d74afc26df8c0b640770923ecc0c6c5d331fbeabe7b91d306cb')
+ version('3.2', sha256='a8d66accc9ab41f09961cd8f8db39f9c28e97e2769659a3567c63930a869ff5b')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-atpublic', type=('build', 'run'))
+ depends_on('py-psutil', type=('build', 'run'))
+ depends_on('py-typing-extensions', when='^python@:3.7.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-flye/package.py b/var/spack/repos/builtin/packages/py-flye/package.py
index be8821ca27..2105f86f73 100644
--- a/var/spack/repos/builtin/packages/py-flye/package.py
+++ b/var/spack/repos/builtin/packages/py-flye/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-fn-py/package.py b/var/spack/repos/builtin/packages/py-fn-py/package.py
index bc8e2f85a0..aa26aec47c 100644
--- a/var/spack/repos/builtin/packages/py-fn-py/package.py
+++ b/var/spack/repos/builtin/packages/py-fn-py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
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
index dcb2344977..b0154d9655 100644
--- a/var/spack/repos/builtin/packages/py-fortran-language-server/package.py
+++ b/var/spack/repos/builtin/packages/py-fortran-language-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-fortranformat/package.py b/var/spack/repos/builtin/packages/py-fortranformat/package.py
index d193494b6a..7170833816 100644
--- a/var/spack/repos/builtin/packages/py-fortranformat/package.py
+++ b/var/spack/repos/builtin/packages/py-fortranformat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PyFortranformat(PythonPackage):
"""Mimics Fortran textual IO in Python"""
homepage = "http://bitbucket.org/brendanarnold/py-fortranformat"
- url = "https://pypi.io/packages/source/f/fortranformat/fortranformat-0.2.5.tar.gz"
+ pypi = "fortranformat/fortranformat-0.2.5.tar.gz"
version('0.2.5', sha256='6b5fbc1f129c7a70543c3a81f334fb4d57f07df2834b22ce69f6d7e8539cd3f9')
diff --git a/var/spack/repos/builtin/packages/py-fparser/package.py b/var/spack/repos/builtin/packages/py-fparser/package.py
index e83f4b78ac..553e7cc4e7 100644
--- a/var/spack/repos/builtin/packages/py-fparser/package.py
+++ b/var/spack/repos/builtin/packages/py-fparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-fprettify/package.py b/var/spack/repos/builtin/packages/py-fprettify/package.py
index 404c688b09..3855af1d06 100644
--- a/var/spack/repos/builtin/packages/py-fprettify/package.py
+++ b/var/spack/repos/builtin/packages/py-fprettify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyFprettify(PythonPackage):
Python."""
homepage = "https://github.com/pseewald/fprettify"
- url = "https://pypi.io/packages/source/f/fprettify/fprettify-0.3.6.tar.gz"
+ pypi = "fprettify/fprettify-0.3.6.tar.gz"
version('0.3.6', sha256='5ee954763eba2bc54ee7444c1f592944f1c1933223bb0c07957d60d44f7f0b75')
diff --git a/var/spack/repos/builtin/packages/py-freezegun/package.py b/var/spack/repos/builtin/packages/py-freezegun/package.py
index 3329c975bc..7ad47c106e 100644
--- a/var/spack/repos/builtin/packages/py-freezegun/package.py
+++ b/var/spack/repos/builtin/packages/py-freezegun/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,7 @@ class PyFreezegun(PythonPackage):
through time by mocking the datetime module."""
homepage = "https://github.com/spulec/freezegun"
- url = "https://pypi.io/packages/source/f/freezegun/freezegun-0.3.12.tar.gz"
-
- import_modules = ['freezegun']
+ pypi = "freezegun/freezegun-0.3.12.tar.gz"
version('0.3.12', sha256='2a4d9c8cd3c04a201e20c313caf8b6338f1cfa4cda43f46a94cc4a9fd13ea5e7')
@@ -21,5 +19,3 @@ class PyFreezegun(PythonPackage):
depends_on('py-six', type=('build', 'run'))
depends_on('py-python-dateutil@1.0:1.999', type=('build', 'run'), when='^python@:2')
depends_on('py-python-dateutil@2:', type=('build', 'run'), when='^python@3:')
- depends_on('py-mock', type='test')
- depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-fsspec/package.py b/var/spack/repos/builtin/packages/py-fsspec/package.py
index bf82fc803a..fea9d9ee05 100644
--- a/var/spack/repos/builtin/packages/py-fsspec/package.py
+++ b/var/spack/repos/builtin/packages/py-fsspec/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,21 @@ class PyFsspec(PythonPackage):
"""A specification for pythonic filesystems."""
homepage = "https://github.com/intake/filesystem_spec"
- url = "https://pypi.io/packages/source/f/fsspec/fsspec-0.4.4.tar.gz"
-
- import_modules = ['fsspec', 'fsspec.implementations']
+ pypi = "fsspec/fsspec-0.4.4.tar.gz"
+ version('2021.7.0', sha256='792ebd3b54de0b30f1ce73f0ba0a8bcc864724f2d9f248cb8d0ece47db0cbde8')
+ version('2021.4.0', sha256='8b1a69884855d1a8c038574292e8b861894c3373282d9a469697a2b41d5289a6')
+ version('0.9.0', sha256='3f7a62547e425b0b336a6ac2c2e6c6ac824648725bc8391af84bb510a63d1a56')
+ version('0.8.0', sha256='176f3fc405471af0f1f1e14cffa3d53ab8906577973d068b976114433c010d9d')
version('0.7.3', sha256='1b540552c93b47e83c568e87507d6e02993e6d1b30bc7285f2336c81c5014103')
version('0.4.4', sha256='97697a46e8bf8be34461c2520d6fc4bfca0ed749b22bb2b7c21939fd450a7d63')
+ variant('http', default=False, description='HTTPFileSystem support (Requires version 0.8.1+)')
+
+ conflicts('+http', when='@:0.8.0', msg='Only available in 0.8.1+')
+
depends_on('python@3.5:', type=('build', 'run'))
depends_on('python@3.6:', type=('build', 'run'), when='@0.6.3:')
depends_on('py-setuptools', type='build')
+ depends_on('py-requests', type=('build', 'run'), when='+http')
+ depends_on('py-aiohttp', type=('build', 'run'), when='+http')
diff --git a/var/spack/repos/builtin/packages/py-ftfy/package.py b/var/spack/repos/builtin/packages/py-ftfy/package.py
new file mode 100644
index 0000000000..3d1594f80d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ftfy/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyFtfy(PythonPackage):
+ """Fixes Unicode that's broken in various ways."""
+
+ homepage = "https://ftfy.readthedocs.io"
+ pypi = "ftfy/ftfy-5.8.tar.gz"
+
+ version('5.8', sha256='51c7767f8c4b47d291fcef30b9625fb5341c06a31e6a3b627039c706c42f3720')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-wcwidth', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-funcsigs/package.py b/var/spack/repos/builtin/packages/py-funcsigs/package.py
index ec53173d15..56c8ed60bc 100644
--- a/var/spack/repos/builtin/packages/py-funcsigs/package.py
+++ b/var/spack/repos/builtin/packages/py-funcsigs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,9 @@ from spack import *
class PyFuncsigs(PythonPackage):
"""Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2."""
- homepage = "https://pypi.python.org/pypi/funcsigs"
- url = "https://pypi.io/packages/source/f/funcsigs/funcsigs-1.0.2.tar.gz"
-
- import_modules = ['funcsigs']
+ pypi = "funcsigs/funcsigs-1.0.2.tar.gz"
version('1.0.2', sha256='a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50')
version('0.4', sha256='d83ce6df0b0ea6618700fe1db353526391a8a3ada1b7aba52fed7a61da772033')
depends_on('py-setuptools@17.1:', type='build')
- depends_on('py-unittest2', type='test')
diff --git a/var/spack/repos/builtin/packages/py-functools32/package.py b/var/spack/repos/builtin/packages/py-functools32/package.py
index bcec6385a8..6dd79b73fd 100644
--- a/var/spack/repos/builtin/packages/py-functools32/package.py
+++ b/var/spack/repos/builtin/packages/py-functools32/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,6 @@ class PyFunctools32(PythonPackage):
PyPy."""
homepage = "https://github.com/MiCHiLU/python-functools32"
- url = "https://pypi.io/packages/source/f/functools32/functools32-3.2.3-2.tar.gz"
+ pypi = "functools32/functools32-3.2.3-2.tar.gz"
version('3.2.3-2', sha256='f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d')
diff --git a/var/spack/repos/builtin/packages/py-funcy/package.py b/var/spack/repos/builtin/packages/py-funcy/package.py
new file mode 100644
index 0000000000..e918f2e3d2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-funcy/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyFuncy(PythonPackage):
+ """A collection of fancy functional tools focused on practicality"""
+
+ homepage = "https://funcy.readthedocs.io"
+ pypi = "funcy/funcy-1.15.tar.gz"
+
+ version('1.15', sha256='65b746fed572b392d886810a98d56939c6e0d545abb750527a717c21ced21008')
+ version('1.14', sha256='75ee84c3b446f92e68a857c2267b15a1b49c631c9d5a87a5f063cd2d6761a5c4')
+
+ depends_on('python@2.7.0:2.7.999,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-fusepy/package.py b/var/spack/repos/builtin/packages/py-fusepy/package.py
index c9df4ba5ba..6c648e719b 100644
--- a/var/spack/repos/builtin/packages/py-fusepy/package.py
+++ b/var/spack/repos/builtin/packages/py-fusepy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,10 @@ class PyFusepy(PythonPackage):
MacFUSE. It's just one file and is implemented using ctypes."""
homepage = "https://github.com/fusepy/fusepy"
- url = "https://pypi.io/packages/source/f/fusepy/fusepy-3.0.1.tar.gz"
+ pypi = "fusepy/fusepy-3.0.1.tar.gz"
version('3.0.1', sha256='72ff783ec2f43de3ab394e3f7457605bf04c8cf288a2f4068b4cde141d4ee6bd')
version('2.0.4', sha256='10f5c7f5414241bffecdc333c4d3a725f1d6605cae6b4eaf86a838ff49cdaf6c')
depends_on('py-setuptools', type='build')
+ depends_on('fuse@2.6:')
diff --git a/var/spack/repos/builtin/packages/py-future/package.py b/var/spack/repos/builtin/packages/py-future/package.py
index af2bce85f0..0f6a65007b 100644
--- a/var/spack/repos/builtin/packages/py-future/package.py
+++ b/var/spack/repos/builtin/packages/py-future/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyFuture(PythonPackage):
"""Clean single-source support for Python 3 and 2"""
homepage = "https://python-future.org/"
- url = "https://pypi.io/packages/source/f/future/future-0.18.2.tar.gz"
+ pypi = "future/future-0.18.2.tar.gz"
version('0.18.2', sha256='b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d')
version('0.17.1', sha256='67045236dcfd6816dc439556d009594abf643e5eb48992e36beac09c2ca659b8')
@@ -21,3 +21,29 @@ class PyFuture(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('py-importlib', type=('build', 'run'), when='^python@:2.6')
depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6')
+
+ @property
+ def import_modules(self):
+ modules = [
+ 'copyreg', '_thread', 'past', 'past.types', 'past.translation',
+ 'past.utils', 'past.builtins', 'reprlib', 'html', 'builtins',
+ 'http', '_dummy_thread', 'queue', 'xmlrpc', 'libfuturize',
+ 'libfuturize.fixes', 'future', 'future.moves', 'future.moves.test',
+ 'future.moves.urllib', 'future.moves.html', 'future.moves.http',
+ 'future.moves.dbm', 'future.moves.xmlrpc', 'future.types',
+ 'future.tests', 'future.utils', 'future.builtins',
+ 'future.backports', 'future.backports.test',
+ 'future.backports.urllib', 'future.backports.html',
+ 'future.backports.http', 'future.backports.xmlrpc',
+ 'future.backports.email', 'future.backports.email.mime',
+ 'future.standard_library', 'libpasteurize', 'libpasteurize.fixes',
+ 'socketserver', '_markupbase'
+ ]
+
+ if 'platform=windows' in self.spec:
+ modules.append('winreg')
+
+ if '+tkinter' in self.spec['python']:
+ modules.extend(['tkinter', 'future.moves.tkinter'])
+
+ return modules
diff --git a/var/spack/repos/builtin/packages/py-futures/package.py b/var/spack/repos/builtin/packages/py-futures/package.py
index 5d3c82aacd..6556c510b8 100644
--- a/var/spack/repos/builtin/packages/py-futures/package.py
+++ b/var/spack/repos/builtin/packages/py-futures/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyFutures(PythonPackage):
"""Backport of the concurrent.futures package from Python 3.2"""
- homepage = "https://pypi.python.org/pypi/futures"
- url = "https://pypi.io/packages/source/f/futures/futures-3.0.5.tar.gz"
+ pypi = "futures/futures-3.0.5.tar.gz"
version('3.2.0', sha256='9ec02aa7d674acb8618afb127e27fde7fc68994c0437ad759fa094a574adb265')
version('3.0.5', sha256='0542525145d5afc984c88f914a0c85c77527f65946617edb5274f72406f981df')
diff --git a/var/spack/repos/builtin/packages/py-fuzzywuzzy/package.py b/var/spack/repos/builtin/packages/py-fuzzywuzzy/package.py
new file mode 100644
index 0000000000..f002467a9a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-fuzzywuzzy/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyFuzzywuzzy(PythonPackage):
+ """Fuzzy string matching in python."""
+
+ homepage = "https://github.com/seatgeek/fuzzywuzzy"
+ pypi = "fuzzywuzzy/fuzzywuzzy-0.18.0.tar.gz"
+
+ version('0.18.0', sha256='45016e92264780e58972dca1b3d939ac864b78437422beecebb3095f8efd00e8')
+
+ variant('speedup', default=False, description='Provide a 4-10x speedup')
+
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-python-levenshtein@0.12:', when='+speedup', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-fypp/package.py b/var/spack/repos/builtin/packages/py-fypp/package.py
index e28f8b5250..bdaab57c5d 100644
--- a/var/spack/repos/builtin/packages/py-fypp/package.py
+++ b/var/spack/repos/builtin/packages/py-fypp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-gast/package.py b/var/spack/repos/builtin/packages/py-gast/package.py
index c69b9bc475..83706e5056 100644
--- a/var/spack/repos/builtin/packages/py-gast/package.py
+++ b/var/spack/repos/builtin/packages/py-gast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,12 @@ class PyGast(PythonPackage):
"""Python AST that abstracts the underlying Python version"""
homepage = "https://github.com/serge-sans-paille/gast"
- url = "https://pypi.io/packages/source/g/gast/gast-0.3.2.tar.gz"
+ pypi = "gast/gast-0.3.2.tar.gz"
+ version('0.5.2', sha256='f81fcefa8b982624a31c9e4ec7761325a88a0eba60d36d1da90e47f8fe3c67f7')
+ version('0.5.1', sha256='b00e63584db482ffe6107b5832042bbe5c5bf856e3c7279b6e93201b3dcfcb46')
+ version('0.5.0', sha256='8109cbe7aa0f7bf7e4348379da05b8137ea1f059f073332c3c1cedd57db8541f')
+ version('0.4.0', sha256='40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1')
version('0.3.3', sha256='b881ef288a49aa81440d2c5eb8aeefd4c2bb8993d5f50edae7413a85bfdb3b57')
version('0.3.2', sha256='5c7617f1f6c8b8b426819642b16b9016727ddaecd16af9a07753e537eba8a3a5')
version('0.2.2', sha256='fe939df4583692f0512161ec1c880e0a10e71e6a232da045ab8edd3756fbadf0')
diff --git a/var/spack/repos/builtin/packages/py-gcovr/package.py b/var/spack/repos/builtin/packages/py-gcovr/package.py
index f5110bf31b..181f0b6d68 100644
--- a/var/spack/repos/builtin/packages/py-gcovr/package.py
+++ b/var/spack/repos/builtin/packages/py-gcovr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyGcovr(PythonPackage):
Python."""
homepage = "https://gcovr.com/"
- url = "https://pypi.io/packages/source/g/gcovr/gcovr-4.2.tar.gz"
+ pypi = "gcovr/gcovr-4.2.tar.gz"
version('4.2', sha256='5aae34dc81e51600cfecbbbce3c3a80ce3f7548bc0aa1faa4b74ecd18f6fca3f')
diff --git a/var/spack/repos/builtin/packages/py-gcs-oauth2-boto-plugin/package.py b/var/spack/repos/builtin/packages/py-gcs-oauth2-boto-plugin/package.py
new file mode 100644
index 0000000000..63d8548ab6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-gcs-oauth2-boto-plugin/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 PyGcsOauth2BotoPlugin(PythonPackage):
+ """Auth plugin allowing use the use of OAuth 2.0 credentials
+ for Google Cloud Storage in the Boto library."""
+
+ homepage = "https://github.com/GoogleCloudPlatform/gcs-oauth2-boto-plugin"
+ pypi = "gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-2.7.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('2.7', sha256='c95b011717911a6c40fbd3aa07a8faa0ab57570dee178d7148531327c4c6f93e')
+
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-rsa@:4.0', when='^python@:3.4.999', type=('build', 'run'))
+ depends_on('py-boto@2.29.1:', type=('build', 'run'))
+ depends_on('py-google-auth@0.1.0:', type=('build', 'run'))
+ depends_on('py-httplib2@0.18:', type=('build', 'run'))
+ depends_on('py-oauth2client@2.2.0:', type=('build', 'run'))
+ depends_on('py-pyopenssl@0.13:', type=('build', 'run'))
+ depends_on('py-retry-decorator@1.0.0:', type=('build', 'run'))
+ depends_on('py-six@1.12.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-gdbgui/package.py b/var/spack/repos/builtin/packages/py-gdbgui/package.py
index 551e0ef206..2bac7009ea 100644
--- a/var/spack/repos/builtin/packages/py-gdbgui/package.py
+++ b/var/spack/repos/builtin/packages/py-gdbgui/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGdbgui(PythonPackage):
"""gdbgui is a modern, free, browser-based frontend to gdb"""
homepage = "https://gdbgui.com"
- url = "https://pypi.io/packages/source/g/gdbgui/gdbgui-0.11.2.1.tar.gz"
+ pypi = "gdbgui/gdbgui-0.11.2.1.tar.gz"
version('0.13.2.0', sha256='80e347a08b8cc630ab9f68482a1ed92c844fbfde46dc21fd39f3e6ef14b72e54')
version('0.11.2.1', sha256='280945a37414c31a798f68f70c1bffbedd12dfb0ce77418357e7d42b667491c7')
diff --git a/var/spack/repos/builtin/packages/py-gdc-client/package.py b/var/spack/repos/builtin/packages/py-gdc-client/package.py
index 37bae78010..15f84364e6 100644
--- a/var/spack/repos/builtin/packages/py-gdc-client/package.py
+++ b/var/spack/repos/builtin/packages/py-gdc-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-gee-asset-manager/package.py b/var/spack/repos/builtin/packages/py-gee-asset-manager/package.py
index f32108bccd..d67224ee90 100644
--- a/var/spack/repos/builtin/packages/py-gee-asset-manager/package.py
+++ b/var/spack/repos/builtin/packages/py-gee-asset-manager/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,6 +22,5 @@ class PyGeeAssetManager(PythonPackage):
depends_on('py-retrying@1.3.3:', type=('build', 'run'))
depends_on('py-beautifulsoup4@4.5.1:', type=('build', 'run'))
depends_on('py-requests-toolbelt@0.7.0:', type=('build', 'run'))
- depends_on('py-pytest@3.0.0:', type=('build', 'test'))
depends_on('py-future@0.16.0:', type=('build', 'run'))
depends_on('py-google-cloud-storage@1.1.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-geeadd/package.py b/var/spack/repos/builtin/packages/py-geeadd/package.py
index 78c260243b..aa47e37cbe 100644
--- a/var/spack/repos/builtin/packages/py-geeadd/package.py
+++ b/var/spack/repos/builtin/packages/py-geeadd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGeeadd(PythonPackage):
"""Google Earth Engine Batch Assets Manager with Addons."""
homepage = "https://github.com/samapriya/gee_asset_manager_addon"
- url = "https://pypi.io/packages/source/g/geeadd/geeadd-0.3.0.tar.gz"
+ pypi = "geeadd/geeadd-0.3.0.tar.gz"
version('0.3.0', sha256='591e6ff2847122598ed5b0452a892a76e332ce227d4ba75e4d03eca2c7a4beea')
@@ -22,7 +22,6 @@ class PyGeeadd(PythonPackage):
depends_on('py-clipboard@0.0.4:', type=('build', 'run'))
depends_on('py-beautifulsoup4@4.5.1:', type=('build', 'run'))
depends_on('py-requests-toolbelt@0.7.0:', type=('build', 'run'))
- depends_on('py-pytest@3.0.0:', type=('build', 'test'))
depends_on('py-future@0.16.0:', type=('build', 'run'))
depends_on('py-google-cloud-storage@1.1.1:', type=('build', 'run'))
depends_on('py-oauth2client@4.1.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-geeup/package.py b/var/spack/repos/builtin/packages/py-geeup/package.py
index 6ac2cc37d0..a1128d4b4d 100644
--- a/var/spack/repos/builtin/packages/py-geeup/package.py
+++ b/var/spack/repos/builtin/packages/py-geeup/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGeeup(PythonPackage):
"""Simple Client for Earth Engine Uploads with Selenium Support."""
homepage = "https://github.com/samapriya/geeup"
- url = "https://pypi.io/packages/source/g/geeup/geeup-0.2.4.tar.gz"
+ pypi = "geeup/geeup-0.2.4.tar.gz"
version('0.2.4', sha256='20f62306ea900d7fa28a97cc92204716212dc030c50a6ac8214772a61a1a83fe')
@@ -29,6 +29,6 @@ class PyGeeup(PythonPackage):
depends_on('py-pysmartdl', type=('build', 'run'))
depends_on('py-pysmartdl@1.2.5', type=('build', 'run'), when='^python@:3.3')
depends_on('py-pysmartdl@1.3.1:', type=('build', 'run'), when='^python@3.4:')
- depends_on('py-pathlib@1.0.1:', type=('build', 'run'))
+ depends_on('py-pathlib@1.0.1:', when='^python@:3.3', type=('build', 'run'))
depends_on('py-lxml@4.1.1:', type=('build', 'run'))
depends_on('py-oauth2client@4.1.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-gemini/package.py b/var/spack/repos/builtin/packages/py-gemini/package.py
new file mode 100644
index 0000000000..cbb26e77e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-gemini/package.py
@@ -0,0 +1,58 @@
+# Copyright 2013-2021 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 PyGemini(PythonPackage):
+ """GEMINI (GEnome MINIng) is a flexible framework for exploring genetic
+ variation in the context of the wealth of genome annotations available
+ for the human genome.
+ """
+
+ homepage = "https://gemini.readthedocs.org"
+ url = "https://github.com/arq5x/gemini/archive/v0.30.2.tar.gz"
+
+ maintainers = ['robqiao']
+
+ version('0.30.2', sha256='c7af06a4cc475a846aeeb3cd7fcfb39d6cdd0b76e3b07abab2e5e6e68a3fe431')
+ version('0.30.1', sha256='af835ca33bc6d7865def2467c34cb1d539ec542f9514044435bd2252b25a046d')
+ version('0.30.0', sha256='a55d0c77342bf650f7e1300cb6ba485407ea3b42f4137a5197248d397a026030')
+ version('0.20.1', sha256='cd84aa45ace7a9ffb13ba4176122eab5b9fcc0445b1c0944ecec017f88f2b7f1')
+ version('0.20.0', sha256='640b40186fa00f54c1a0cdfab3fc3076b1d3bdf5c6327fcb2a0c51aa1b05878b')
+ version('0.19.1', sha256='1154bcb48b1bc78819c5a5e710f5cb0747b01fa0f3113e6081a5a2747c8703e5')
+ version('0.19.0', sha256='5146d1b5ed52139c50473aa3625d8df29f2db6d198cfd2c966469e7d585cccf2')
+ version('0.18.3', sha256='7c2f99069385547c656021fbb43e0bae4f9fb8a56ad3f6a61235b44fbc1ba6eb')
+ version('0.18.2', sha256='cf8a83d48d966a800aa2569076d52c307f4d8264a6ae804c176d61e705c0017e')
+ version('0.18.1', sha256='1d3d3b9d47555e1f62c1a870d8fd2ecbfc0bed25910cab31af5b585db3144a68')
+
+ depends_on('python@2.5:2.8', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('tabix', type=('build', 'run'))
+ depends_on('grabix', type=('build', 'run'))
+ depends_on('bedtools2', type=('build', 'run'))
+
+ depends_on('py-numpy@1.7.1:', type=('build', 'run'))
+ depends_on('py-inheritance@0.1.3:', type=('build', 'run'))
+ depends_on('py-geneimpacts@0.1.3:', type=('build', 'run'))
+ depends_on('py-cython@0.22.1:', type=('build', 'run'))
+ depends_on('py-sqlalchemy@1:', type=('build', 'run'))
+ depends_on('py-pysam@0.6:', type=('build', 'run'))
+ depends_on('py-cyvcf2@0.7.2:', type=('build', 'run'))
+ depends_on('py-pyyaml@3.10:', type=('build', 'run'))
+ depends_on('py-pybedtools@0.6.2:', type=('build', 'run'))
+ depends_on('py-jinja2@2.7.1:', type=('build', 'run'))
+ depends_on('py-networkx@1.10:', type=('build', 'run'))
+ depends_on('py-bottle@0.11.6:', type=('build', 'run'))
+ depends_on('py-ipyparallel@4.0:', type=('build', 'run'))
+ depends_on('py-ipython-cluster-helper@0.5.1:', type=('build', 'run'))
+ depends_on('py-bx-python@0.7.1:', type=('build', 'run'))
+ depends_on('py-pandas@0.11.0:', type=('build', 'run'))
+ depends_on('py-openpyxl@1.6.1:1.999', type=('build', 'run'))
+ depends_on('py-scipy@0.12.0:', type=('build', 'run'))
+ depends_on('py-unidecode@0.04.14:', type=('build', 'run'))
+ depends_on('py-cyordereddict@0.2.2', type=('build', 'run'))
+ depends_on('py-bcolz@0.11.3:', type=('build', 'run'))
+ depends_on('py-numexpr@2.4.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-genders/package.py b/var/spack/repos/builtin/packages/py-genders/package.py
index 33452991fd..f6f34137c0 100644
--- a/var/spack/repos/builtin/packages/py-genders/package.py
+++ b/var/spack/repos/builtin/packages/py-genders/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-geneimpacts/package.py b/var/spack/repos/builtin/packages/py-geneimpacts/package.py
index a5ef2fa91e..f38824a074 100644
--- a/var/spack/repos/builtin/packages/py-geneimpacts/package.py
+++ b/var/spack/repos/builtin/packages/py-geneimpacts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-genshi/package.py b/var/spack/repos/builtin/packages/py-genshi/package.py
index e43cf5d6e1..30d2efa821 100644
--- a/var/spack/repos/builtin/packages/py-genshi/package.py
+++ b/var/spack/repos/builtin/packages/py-genshi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-gensim/package.py b/var/spack/repos/builtin/packages/py-gensim/package.py
index fe3e4a192c..ad3c4d68bf 100644
--- a/var/spack/repos/builtin/packages/py-gensim/package.py
+++ b/var/spack/repos/builtin/packages/py-gensim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyGensim(PythonPackage):
language processing (NLP) and information retrieval (IR) community."""
homepage = "https://radimrehurek.com/gensim"
- url = "https://pypi.io/packages/source/g/gensim/gensim-3.8.1.tar.gz"
+ pypi = "gensim/gensim-3.8.1.tar.gz"
maintainers = ['adamjstewart']
diff --git a/var/spack/repos/builtin/packages/py-geoalchemy2/package.py b/var/spack/repos/builtin/packages/py-geoalchemy2/package.py
index dad20c8e16..d8a0903013 100644
--- a/var/spack/repos/builtin/packages/py-geoalchemy2/package.py
+++ b/var/spack/repos/builtin/packages/py-geoalchemy2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGeoalchemy2(PythonPackage):
"""Using SQLAlchemy with Spatial Databases"""
homepage = "https://geoalchemy-2.readthedocs.io/en/latest"
- url = "https://pypi.io/packages/source/G/GeoAlchemy2/GeoAlchemy2-0.6.3.tar.gz"
+ pypi = "GeoAlchemy2/GeoAlchemy2-0.6.3.tar.gz"
version('0.6.3', sha256='4dc4c6c2bda0fc82cccab4aaff185a6570e13a5351d85e29e12984a55d4138ee')
version('0.4.2', sha256='17fa10b0c01bd2ab036ea56975dfa850098aa394a5d6ee04d88b2aefc16751cb')
@@ -20,9 +20,3 @@ class PyGeoalchemy2(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('py-sqlalchemy@0.8:', type=('build', 'run'))
depends_on('py-shapely@1.3.0:', type=('build', 'run'), when='+dev')
-
- depends_on('py-pycodestyle@2.2.0', type='test')
- depends_on('py-flake8@3.2.0', type='test')
- depends_on('py-pytest@3.7.4', type='test', when='@0.6.3')
- depends_on('py-pytest@3.1.3', type='test', when='@0.4.2')
- depends_on('py-pytest-cov@2.5.1', type='test')
diff --git a/var/spack/repos/builtin/packages/py-geocube/package.py b/var/spack/repos/builtin/packages/py-geocube/package.py
new file mode 100644
index 0000000000..8a95352763
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-geocube/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 PyGeocube(PythonPackage):
+ """Tool to convert geopandas vector data into rasterized xarray data."""
+
+ homepage = "https://github.com/corteva/geocube"
+ pypi = "geocube/geocube-0.0.17.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('0.0.17', sha256='bf8da0fa96d772ebaea0b98bafa0ba5b8639669d5feb07465d4255af177bddc0')
+
+ depends_on('python@3.7:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-appdirs', type=('build', 'run'))
+ depends_on('py-click@6.0:', type=('build', 'run'))
+ depends_on('py-datacube', type=('build', 'run'))
+ depends_on('py-geopandas@0.7:', type=('build', 'run'))
+ depends_on('py-rasterio', type=('build', 'run'))
+ depends_on('py-rioxarray@0.4:', type=('build', 'run'))
+ depends_on('py-xarray@0.17:', type=('build', 'run'))
+ depends_on('py-pyproj@2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-geographiclib/package.py b/var/spack/repos/builtin/packages/py-geographiclib/package.py
new file mode 100644
index 0000000000..f1a16e0c7a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-geographiclib/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyGeographiclib(PythonPackage):
+ """The geodesic routines from GeographicLib."""
+
+ homepage = "https://geographiclib.sourceforge.io/1.50/python"
+ pypi = "geographiclib/geographiclib-1.50.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('1.50', sha256='12bd46ee7ec25b291ea139b17aa991e7ef373e21abd053949b75c0e9ca55c632')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-geopandas/package.py b/var/spack/repos/builtin/packages/py-geopandas/package.py
index 3373e961e5..866af609dc 100644
--- a/var/spack/repos/builtin/packages/py-geopandas/package.py
+++ b/var/spack/repos/builtin/packages/py-geopandas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,24 +13,29 @@ class PyGeopandas(PythonPackage):
performed by shapely. Geopandas further depends on fiona for file access
and descartes and matplotlib for plotting."""
- homepage = "http://geopandas.org/"
- url = "https://pypi.io/packages/source/g/geopandas/geopandas-0.5.0.tar.gz"
+ homepage = "https://geopandas.org/"
+ pypi = "geopandas/geopandas-0.8.1.tar.gz"
+ git = "https://github.com/geopandas/geopandas.git"
maintainers = ['adamjstewart']
- import_modules = [
- 'geopandas', 'geopandas.io', 'geopandas.tools', 'geopandas.datasets'
- ]
+ version('master', branch='master')
+ version('0.9.0', sha256='63972ab4dc44c4029f340600dcb83264eb8132dd22b104da0b654bef7f42630a')
+ version('0.8.2', sha256='aa9ae82e4e6b52efa244bd4b8bd2363d66693e5592ad1a0f52b6afa8c36348cb')
+ version('0.8.1', sha256='e28a729e44ac53c1891b54b1aca60e3bc0bb9e88ad0f2be8e301a03b9510f6e2')
version('0.5.0', sha256='d075d2ab61a502ab92ec6b72aaf9610a1340ec24ed07264fcbdbe944b9e68954')
version('0.4.0', sha256='9f5d24d23f33e6d3267a633025e4d9e050b3a1e86d41a96d3ccc5ad95afec3db')
version('0.3.0', sha256='e63bb32a3e516d8c9bcd149c22335575defdc5896c8bdf15c836608f152a920b')
- variant('plotting', default=False, description='Include dependencies required for plotting')
-
+ depends_on('python@3.5:', type=('build', 'run'), when='@0.7:')
+ depends_on('python@3.6:', type=('build', 'run'), when='@0.9:')
depends_on('py-setuptools', type='build')
depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-pandas@0.23.0:', type=('build', 'run'), when='@0.6:')
+ depends_on('py-pandas@0.24.0:', type=('build', 'run'), when='@0.9:')
depends_on('py-shapely', type=('build', 'run'))
+ depends_on('py-shapely@1.6:', type=('build', 'run'), when='@0.9:')
depends_on('py-fiona', type=('build', 'run'))
+ depends_on('py-fiona@1.8:', type=('build', 'run'), when='@0.9:')
depends_on('py-pyproj', type=('build', 'run'))
- depends_on('py-descartes', type=('build', 'run'), when='+plotting')
- depends_on('py-matplotlib', type=('build', 'run'), when='+plotting')
+ depends_on('py-pyproj@2.2.0:', type=('build', 'run'), when='@0.7:')
diff --git a/var/spack/repos/builtin/packages/py-geoplot/package.py b/var/spack/repos/builtin/packages/py-geoplot/package.py
new file mode 100644
index 0000000000..90a3893c19
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-geoplot/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyGeoplot(PythonPackage):
+ """geoplot is a high-level Python geospatial plotting library.
+
+ It's an extension to cartopy and matplotlib which makes mapping easy:
+ like seaborn for geospatial."""
+
+ homepage = "https://github.com/ResidentMario/geoplot"
+ pypi = "geoplot/geoplot-0.4.1.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('0.4.1', sha256='eb073436c5a1cb7f97caa217cdb109e6cad4f3774e657757005e3f0f5a3183ca')
+
+ depends_on('python@3.6.0:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-seaborn', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-geopandas', type=('build', 'run'))
+ depends_on('py-cartopy', type=('build', 'run'))
+ depends_on('py-descartes', type=('build', 'run'))
+ depends_on('py-mapclassify@2.1:', type=('build', 'run'))
+ depends_on('py-contextily@1.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-geopy/package.py b/var/spack/repos/builtin/packages/py-geopy/package.py
new file mode 100644
index 0000000000..89a0075536
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-geopy/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyGeopy(PythonPackage):
+ """geopy is a Python client for several popular geocoding web services."""
+
+ homepage = "https://github.com/geopy/geopy"
+ pypi = "geopy/geopy-2.1.0.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('2.1.0', sha256='892b219413e7955587b029949af3a1949c6fbac9d5ad17b79d850718f6a9550f')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-geographiclib@1.49:1.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-getorganelle/package.py b/var/spack/repos/builtin/packages/py-getorganelle/package.py
new file mode 100644
index 0000000000..b65ad0efa5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-getorganelle/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 PyGetorganelle(PythonPackage):
+ """Organelle Genome Assembly Toolkit (Chloroplast/Mitocondrial/ITS)"""
+
+ homepage = "https://github.com/Kinggerm/GetOrganelle"
+ url = "https://github.com/Kinggerm/GetOrganelle/archive/refs/tags/1.7.5.0.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('1.7.5.0', sha256='c498196737726cb4c0158f23037bf301a069f5028ece729bb4d09c7d915df93d')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.16.4:', type=('build', 'run'))
+ depends_on('py-scipy@1.3.0:', type=('build', 'run'))
+ depends_on('py-sympy@1.4:', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+
+ depends_on('bowtie2', type='run')
+ depends_on('spades', type='run')
+ depends_on('blast-plus', type='run')
+
+ # Allow access to relevant runtime scripts
+ # I.e. get_organelle_config.py, get_organelle_from_reads.py, etc.
+ def setup_run_environment(self, env):
+ env.prepend_path('PATH', prefix)
+ env.prepend_path('PATH', prefix.Utilities)
diff --git a/var/spack/repos/builtin/packages/py-gevent/package.py b/var/spack/repos/builtin/packages/py-gevent/package.py
index e1f28b445b..8d915c4984 100644
--- a/var/spack/repos/builtin/packages/py-gevent/package.py
+++ b/var/spack/repos/builtin/packages/py-gevent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyGevent(PythonPackage):
"""gevent is a coroutine-based Python networking library."""
- homepage = "http://www.gevent.org"
- url = "https://pypi.io/packages/source/g/gevent/gevent-1.3a2.tar.gz"
+ homepage = "https://www.gevent.org"
+ pypi = "gevent/gevent-1.3a2.tar.gz"
version('1.3a2', sha256='f7ab82697111ea233c7beeadf5240f669dfad9c4bbc89a3ec80a49e2c48a65bd')
diff --git a/var/spack/repos/builtin/packages/py-gf256/package.py b/var/spack/repos/builtin/packages/py-gf256/package.py
index 9527477a3f..be7051abcc 100644
--- a/var/spack/repos/builtin/packages/py-gf256/package.py
+++ b/var/spack/repos/builtin/packages/py-gf256/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-gffutils/package.py b/var/spack/repos/builtin/packages/py-gffutils/package.py
new file mode 100644
index 0000000000..8854e47df6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-gffutils/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 PyGffutils(PythonPackage):
+ """GFF and GTF file manipulation and interconversion
+
+ gffutils is a Python package for working with and manipulating the GFF and
+ GTF format files typically used for genomic annotations. Files are loaded
+ into a sqlite3 database, allowing much more complex manipulation of
+ hierarchical features (e.g., genes, transcripts, and exons) than is
+ possible with plain-text methods alone."""
+
+ homepage = "https://github.com/daler/gffutils"
+ pypi = "gffutils/gffutils-0.10.1.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('0.10.1', sha256='a8fc39006d7aa353147238160640e2210b168f7849cb99896be3fc9441e351cb')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pyfaidx@0.5.5.2:', type=('build', 'run'))
+ depends_on('py-six@1.12.0:', type=('build', 'run'))
+ depends_on('py-argh@0.26.2:', type=('build', 'run'))
+ depends_on('py-argcomplete@1.9.4:', type=('build', 'run'))
+ depends_on('py-simplejson', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-git-review/package.py b/var/spack/repos/builtin/packages/py-git-review/package.py
index 5f4caa3b5c..6e357bd22b 100644
--- a/var/spack/repos/builtin/packages/py-git-review/package.py
+++ b/var/spack/repos/builtin/packages/py-git-review/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,20 +9,23 @@ from spack import *
class PyGitReview(PythonPackage):
"""git-review is a tool that helps submitting git branches to gerrit"""
- homepage = "http://docs.openstack.org/infra/git-review"
- url = "https://pypi.io/packages/source/g/git-review/git-review-1.25.0.tar.gz"
+ homepage = "https://docs.openstack.org/infra/git-review"
+ pypi = "git-review/git-review-1.25.0.tar.gz"
+ version('2.1.0', sha256='3a6c775645b1fa8c40c49fbfce6f8d7e225a1e797a0aa92912607b1d97e61ed6')
+ version('2.0.0', sha256='6e6c86b61334526c5c0f200fdf61957310b0c32208339a38c890db7fe0de5452')
version('1.28.0', sha256='8e3aabb7b9484063e49c2504d137609401e32ad5128ff2a5cf43e98d5d3dc15a')
+ version('1.27.0', sha256='7a30afdd3c62e1ef69ebda3f22c17efccd1a0a89c761b9b0d301108a11a37476')
version('1.26.0', sha256='487c3c1d7cc81d02b303a1245e432579f683695c827ad454685b3953f70f0b94')
version('1.25.0', sha256='087e0a7dc2415796a9f21c484a6f652c5410e6ba4562c36291c5399f9395a11d')
- extends('python')
-
+ depends_on('python@3.5:', type=('build', 'run'), when='@2:')
depends_on('py-setuptools', type=('build'))
- depends_on('py-pbr', type=('build', 'run'))
+ depends_on('py-pbr', type=('build'))
+ depends_on('py-pbr@4.1.0:', type=('build'), when='@2:')
+ depends_on('py-six', type=('build', 'run'), when='@1.28.0')
depends_on('py-requests@1.1:', type=('build', 'run'))
depends_on('git', type=('run'))
- depends_on('tk', type=('run'))
def setup_run_environment(self, env):
env.set('PBR_VERSION', str(self.spec.version))
diff --git a/var/spack/repos/builtin/packages/py-gitdb/package.py b/var/spack/repos/builtin/packages/py-gitdb/package.py
index 50670dbcbf..0af83c876c 100644
--- a/var/spack/repos/builtin/packages/py-gitdb/package.py
+++ b/var/spack/repos/builtin/packages/py-gitdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyGitdb(PythonPackage):
to git repositories."""
homepage = "https://gitdb.readthedocs.io"
- url = "https://pypi.io/packages/source/g/gitdb/gitdb-4.0.5.tar.gz"
+ pypi = "gitdb/gitdb-4.0.5.tar.gz"
version('4.0.5', sha256='c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9')
diff --git a/var/spack/repos/builtin/packages/py-gitpython/package.py b/var/spack/repos/builtin/packages/py-gitpython/package.py
index 8e75089c46..509e74c21e 100644
--- a/var/spack/repos/builtin/packages/py-gitpython/package.py
+++ b/var/spack/repos/builtin/packages/py-gitpython/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,18 +9,23 @@ from spack import *
class PyGitpython(PythonPackage):
"""GitPython is a python library used to interact with Git repositories."""
- homepage = "http://gitpython.readthedocs.org"
- url = "https://pypi.io/packages/source/g/gitpython/GitPython-3.1.7.tar.gz"
+ homepage = "https://gitpython.readthedocs.org"
+ pypi = "GitPython/GitPython-3.1.12.tar.gz"
- version('3.1.8', sha256='49d4f859bda7bd6ef9ce72d9a2cddb6a59dd70f34a18ce409670bc655431c517')
- version('3.1.6', sha256='00d459b1fd2d4a2106252867701f7303485654bdb115275fa6f788756d18879e')
- version('3.1.5', sha256='2f7f9716afecc099bebf4d1a5e4a7df96f32c8255254e83642d8acf70f1b82c3')
- version('3.1.4', sha256='946e9c1daa755b8d4aaaad7f96c3fb4ac99ba36379b4355d6a3a4966ba68ca12')
- version('3.1.3', sha256='12da19250d1db60a9562780c3ecd8a9713da59ec69a3e207db2af1a0afe87c96')
- version('3.1.2', sha256='ce862c2c5e569728eae2d2441d358ab99a2492c7418cb3bdba1517c46a625cc1')
- version('3.1.1', sha256='76f35b8d99f02432632d33c0d64419c65d04377cb68b80bfc1819c421a3c05ca')
- version('3.1.0', sha256='a7d97b664ac61474147db23671aa8cc12be16248a405e3db15538d619d15cb51')
- version('3.0.9', sha256='d92bed79c12ce4198efe34337c55d85984def3d648ea465049e0ec6935e23c21')
+ version('3.1.12', sha256='42dbefd8d9e2576c496ed0059f3103dcef7125b9ce16f9d5f9c834aed44a1dac')
+ version('3.1.11', sha256='befa4d101f91bad1b632df4308ec64555db684c360bd7d2130b4807d49ce86b8')
+ version('3.1.10', sha256='f488d43600d7299567b59fe41497d313e7c1253a9f2a8ebd2df8af2a1151c71d')
+ version('3.1.9', sha256='a03f728b49ce9597a6655793207c6ab0da55519368ff5961e4a74ae475b9fa8e')
+ version('3.1.8', sha256='080bf8e2cf1a2b907634761c2eaefbe83b69930c94c66ad11b65a8252959f912')
+ version('3.1.7', sha256='2db287d71a284e22e5c2846042d0602465c7434d910406990d5b74df4afb0858')
+ version('3.1.6', sha256='b54969b3262d4647f80ace8e9dd4e3f99ac30cc0f3e766415b349208f810908f')
+ version('3.1.5', sha256='90400ecfa87bac36ac75dfa7b62e83a02017b51759f6eef4494e4de775b2b4be')
+ version('3.1.4', sha256='fa98ce1f05805d59bbc3adb16c0780e5ca43b5ea9422feecf1cd0949a61d947e')
+ version('3.1.3', sha256='e107af4d873daed64648b4f4beb89f89f0cfbe3ef558fc7821ed2331c2f8da1a')
+ version('3.1.2', sha256='864a47472548f3ba716ca202e034c1900f197c0fb3a08f641c20c3cafd15ed94')
+ version('3.1.1', sha256='6d4f10e2aaad1864bb0f17ec06a2c2831534140e5883c350d58b4e85189dab74')
+ version('3.1.0', sha256='e426c3b587bd58c482f0b7fe6145ff4ac7ae6c82673fc656f489719abca6f4cb')
+ version('3.0.9', sha256='7e5df21bfef38505115ad92544fb379e6fedb2753f3b709174c4358cecd0cb97')
version('0.3.6', sha256='e6599fcb939cb9b25a015a429702db39de10f2b493655ed5669c49c37707d233')
depends_on('python@3.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-glmnet/package.py b/var/spack/repos/builtin/packages/py-glmnet/package.py
new file mode 100644
index 0000000000..4f881a392e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-glmnet/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyGlmnet(PythonPackage):
+ """
+ This is a Python wrapper for the fortran library used in the R package
+ glmnet.
+ """
+
+ homepage = "https://github.com/civisanalytics/python-glmnet"
+ pypi = "glmnet/glmnet-2.2.1.tar.gz"
+
+ version('2.2.1', sha256='3222bca2e901b3f60c2dc22df7aeba6bb9c7b6451b44cbbe1b91084b66f14481')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build'))
+
+ depends_on('py-numpy@1.9.2:', type=('build', 'run'))
+ depends_on('py-scikit-learn@0.18.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.14.1:', type=('build', 'run'))
+ depends_on('py-joblib@0.14.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-gluoncv/package.py b/var/spack/repos/builtin/packages/py-gluoncv/package.py
index a584605d28..daf315726f 100644
--- a/var/spack/repos/builtin/packages/py-gluoncv/package.py
+++ b/var/spack/repos/builtin/packages/py-gluoncv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-gnuplot/package.py b/var/spack/repos/builtin/packages/py-gnuplot/package.py
index 38e5522370..6889ce41ab 100644
--- a/var/spack/repos/builtin/packages/py-gnuplot/package.py
+++ b/var/spack/repos/builtin/packages/py-gnuplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-goatools/package.py b/var/spack/repos/builtin/packages/py-goatools/package.py
index 863e329169..2b6c27343e 100644
--- a/var/spack/repos/builtin/packages/py-goatools/package.py
+++ b/var/spack/repos/builtin/packages/py-goatools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGoatools(PythonPackage):
"""Python scripts to find enrichment of GO terms"""
homepage = "https://github.com/tanghaibao/goatools"
- url = "https://pypi.io/packages/source/g/goatools/goatools-0.7.11.tar.gz"
+ pypi = "goatools/goatools-0.7.11.tar.gz"
version('0.7.11', sha256='753c6fb8c901367aa5d64ce5ad487d82903e424cf8ec7bac50ee069b307f6364')
diff --git a/var/spack/repos/builtin/packages/py-gooey/package.py b/var/spack/repos/builtin/packages/py-gooey/package.py
new file mode 100644
index 0000000000..ed5e32eaa9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-gooey/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyGooey(PythonPackage):
+ """Turn (almost) any command line program into
+ a full GUI application with one line"""
+
+ homepage = "https://pypi.org/project/Gooey/"
+ pypi = "Gooey/Gooey-1.0.8.1.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('1.0.8.1', sha256='08d6bf534f4d50d50dafba5cfc68dcf31a6e9eeef13a94cbe3ea17c4e45c4671')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pillow@4.3.0:', type=('build', 'run'))
+ depends_on('py-psutil@5.4.2:', type=('build', 'run'))
+ depends_on('py-colored@1.3.93:', type=('build', 'run'))
+ depends_on('py-pygtrie@2.3.3:', type=('build', 'run'))
+ depends_on('py-wxpython')
diff --git a/var/spack/repos/builtin/packages/py-google-api-core/package.py b/var/spack/repos/builtin/packages/py-google-api-core/package.py
index f8ca4ea2b5..bf0eb23d63 100644
--- a/var/spack/repos/builtin/packages/py-google-api-core/package.py
+++ b/var/spack/repos/builtin/packages/py-google-api-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,11 @@ class PyGoogleApiCore(PythonPackage):
"""Google API client core library."""
homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python"
- url = "https://pypi.io/packages/source/g/google-api-core/google-api-core-1.14.2.tar.gz"
+ pypi = "google-api-core/google-api-core-1.14.2.tar.gz"
+
+ # 'google.api_core.operations_v1' and 'google.api_core.gapic_v1' require 'grpc'.
+ # Leave them out of 'import_modules' to avoid optional dependency.
+ import_modules = ['google.api_core', 'google.api_core.future']
version('1.14.2', sha256='2c23fbc81c76b941ffb71301bb975ed66a610e9b03f918feacd1ed59cf43a6ec')
diff --git a/var/spack/repos/builtin/packages/py-google-api-python-client/package.py b/var/spack/repos/builtin/packages/py-google-api-python-client/package.py
index 5e85f7181c..7f9c3476a2 100644
--- a/var/spack/repos/builtin/packages/py-google-api-python-client/package.py
+++ b/var/spack/repos/builtin/packages/py-google-api-python-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyGoogleApiPythonClient(PythonPackage):
"""The Google API Client for Python is a client library for accessing the
Plus, Moderator, and many other Google APIs."""
- homepage = "http://github.com/google/google-api-python-client/"
- url = "https://pypi.io/packages/source/g/google-api-python-client/google-api-python-client-1.7.10.tar.gz"
+ homepage = "https://github.com/google/google-api-python-client/"
+ pypi = "google-api-python-client/google-api-python-client-1.7.10.tar.gz"
version('1.7.10', sha256='2e55a5c7b56233c68945b6804c73e253445933f4d485d4e69e321b38772b9dd6')
diff --git a/var/spack/repos/builtin/packages/py-google-apitools/package.py b/var/spack/repos/builtin/packages/py-google-apitools/package.py
new file mode 100644
index 0000000000..7b51805cd3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-google-apitools/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyGoogleApitools(PythonPackage):
+ """client libraries for humans"""
+
+ homepage = "https://github.com/google/apitools"
+ pypi = "google-apitools/google-apitools-0.5.32.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('0.5.32', sha256='c3763e52289f61e21c41d5531e20fbda9cc8484a088b8686fd460770db8bad13')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-httplib2@0.8:', type=('build', 'run'))
+ depends_on('py-fasteners@0.14:', type=('build', 'run'))
+ depends_on('py-oauth2client@1.4.12:', type=('build', 'run'))
+ depends_on('py-six@1.12.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-google-auth-httplib2/package.py b/var/spack/repos/builtin/packages/py-google-auth-httplib2/package.py
index ab4c3c7e72..c7b6612d55 100644
--- a/var/spack/repos/builtin/packages/py-google-auth-httplib2/package.py
+++ b/var/spack/repos/builtin/packages/py-google-auth-httplib2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGoogleAuthHttplib2(PythonPackage):
"""Google Authentication Library: httplib2 transport."""
homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python-httplib2"
- url = "https://pypi.io/packages/source/g/google-auth-httplib2/google-auth-httplib2-0.0.3.tar.gz"
+ pypi = "google-auth-httplib2/google-auth-httplib2-0.0.3.tar.gz"
version('0.0.3', sha256='098fade613c25b4527b2c08fa42d11f3c2037dda8995d86de0745228e965d445')
diff --git a/var/spack/repos/builtin/packages/py-google-auth-oauthlib/package.py b/var/spack/repos/builtin/packages/py-google-auth-oauthlib/package.py
index 416c9f7098..9caead3c5e 100644
--- a/var/spack/repos/builtin/packages/py-google-auth-oauthlib/package.py
+++ b/var/spack/repos/builtin/packages/py-google-auth-oauthlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyGoogleAuthOauthlib(PythonPackage):
"""This library provides oauthlib integration with google-auth."""
homepage = "https://github.com/googleapis/google-auth-library-python-oauthlib"
- url = "https://pypi.io/packages/source/g/google-auth-oauthlib/google-auth-oauthlib-0.4.1.tar.gz"
+ pypi = "google-auth-oauthlib/google-auth-oauthlib-0.4.1.tar.gz"
version('0.4.1', sha256='88d2cd115e3391eb85e1243ac6902e76e77c5fe438b7276b297fbe68015458dd')
diff --git a/var/spack/repos/builtin/packages/py-google-auth/package.py b/var/spack/repos/builtin/packages/py-google-auth/package.py
index 1bf19bdb08..cd0f8c3228 100644
--- a/var/spack/repos/builtin/packages/py-google-auth/package.py
+++ b/var/spack/repos/builtin/packages/py-google-auth/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyGoogleAuth(PythonPackage):
authentication mechanisms to access Google APIs."""
homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python"
- url = "https://pypi.io/packages/source/g/google-auth/google-auth-1.6.3.tar.gz"
+ pypi = "google-auth/google-auth-1.6.3.tar.gz"
version('1.6.3', sha256='0f7c6a64927d34c1a474da92cfc59e552a5d3b940d3266606c6a28b72888b9e4')
diff --git a/var/spack/repos/builtin/packages/py-google-cloud-core/package.py b/var/spack/repos/builtin/packages/py-google-cloud-core/package.py
index d32a1dbf15..f88f90a808 100644
--- a/var/spack/repos/builtin/packages/py-google-cloud-core/package.py
+++ b/var/spack/repos/builtin/packages/py-google-cloud-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGoogleCloudCore(PythonPackage):
"""Google Cloud API client core library."""
homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python"
- url = "https://pypi.io/packages/source/g/google-cloud-core/google-cloud-core-1.0.3.tar.gz"
+ pypi = "google-cloud-core/google-cloud-core-1.0.3.tar.gz"
version('1.0.3', sha256='10750207c1a9ad6f6e082d91dbff3920443bdaf1c344a782730489a9efa802f1')
diff --git a/var/spack/repos/builtin/packages/py-google-cloud-storage/package.py b/var/spack/repos/builtin/packages/py-google-cloud-storage/package.py
index d89b32b0d4..e605b58076 100644
--- a/var/spack/repos/builtin/packages/py-google-cloud-storage/package.py
+++ b/var/spack/repos/builtin/packages/py-google-cloud-storage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGoogleCloudStorage(PythonPackage):
"""Google Cloud Storage API client library."""
homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python"
- url = "https://pypi.io/packages/source/g/google-cloud-storage/google-cloud-storage-1.18.0.tar.gz"
+ pypi = "google-cloud-storage/google-cloud-storage-1.18.0.tar.gz"
version('1.18.0', sha256='9fb3dc68948f4c893c2b16f5a3db3daea2d2f3b8e9d5c2d505fe1523758009b6')
diff --git a/var/spack/repos/builtin/packages/py-google-pasta/package.py b/var/spack/repos/builtin/packages/py-google-pasta/package.py
index ee19406005..fc01482d46 100644
--- a/var/spack/repos/builtin/packages/py-google-pasta/package.py
+++ b/var/spack/repos/builtin/packages/py-google-pasta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,18 @@ class PyGooglePasta(PythonPackage):
"""pasta is an AST-based Python refactoring library."""
homepage = "https://github.com/google/pasta"
- url = "https://pypi.io/packages/source/g/google-pasta/google-pasta-0.1.8.tar.gz"
+ pypi = "google-pasta/google-pasta-0.1.8.tar.gz"
+ version('0.2.0', sha256='c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e')
version('0.1.8', sha256='713813a9f7d6589e5defdaf21e80e4392eb124662f8bd829acd51a4f8735c0cb')
+ version('0.1.7', sha256='324ae96cea1c27af1bbe289e502ad26673d9e00236a64a3efd68bf12dfd85a51')
+ version('0.1.6', sha256='11c4efd38f2cfb053c12ded1e1c3e1219a77b83ea83d783eaeba879faebe6b8c')
+ version('0.1.5', sha256='799bf5b40320495ebbb54706d35b8c8a818c39328aa4c27a842f5d2f645eef38')
+ version('0.1.4', sha256='8a9208c806c4e3f267269e4bae94c1f41d4777472cf7a813f74ba9e0907b1a5f')
+ version('0.1.3', sha256='29815aac18759d4518a80de24e23ac1ae3e098e9c5d7273abdc42174846a13e9')
+ version('0.1.2', sha256='53e4c009a5eac38e942deb48bfc2d3cfca62cd457255fa86ffedb7e40f726a0c')
+ version('0.1.1', sha256='66f6ea653c7caf5ad0a1cd6f69a750df9845ccce755ee3619db89b672d240c20')
+ version('0.1', sha256='33ce0c80b393d070a372cd65fd1471852507f0ccc5432687bb73589f05cb8452')
depends_on('py-setuptools', type='build')
depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-google-resumable-media/package.py b/var/spack/repos/builtin/packages/py-google-resumable-media/package.py
index ea84fc077a..86f726b124 100644
--- a/var/spack/repos/builtin/packages/py-google-resumable-media/package.py
+++ b/var/spack/repos/builtin/packages/py-google-resumable-media/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGoogleResumableMedia(PythonPackage):
"""Utilities for Google Media Downloads and Resumable Uploads."""
homepage = "https://github.com/GoogleCloudPlatform/google-resumable-media-python"
- url = "https://pypi.io/packages/source/g/google-resumable-media/google-resumable-media-0.3.2.tar.gz"
+ pypi = "google-resumable-media/google-resumable-media-0.3.2.tar.gz"
version('0.3.2', sha256='3e38923493ca0d7de0ad91c31acfefc393c78586db89364e91cb4f11990e51ba')
diff --git a/var/spack/repos/builtin/packages/py-google/package.py b/var/spack/repos/builtin/packages/py-google/package.py
index d0b70ba0a1..c57a4cb0ae 100644
--- a/var/spack/repos/builtin/packages/py-google/package.py
+++ b/var/spack/repos/builtin/packages/py-google/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,8 @@
class PyGoogle(PythonPackage):
"""Python bindings to the Google search engine."""
- homepage = "http://breakingcode.wordpress.com/"
- url = "https://pypi.io/packages/source/g/google/google-3.0.0.tar.gz"
+ homepage = "https://breakingcode.wordpress.com/"
+ pypi = "google/google-3.0.0.tar.gz"
version('3.0.0', sha256='143530122ee5130509ad5e989f0512f7cb218b2d4eddbafbad40fd10e8d8ccbe')
diff --git a/var/spack/repos/builtin/packages/py-googleapis-common-protos/package.py b/var/spack/repos/builtin/packages/py-googleapis-common-protos/package.py
index ce116afc5c..21b61eddc9 100644
--- a/var/spack/repos/builtin/packages/py-googleapis-common-protos/package.py
+++ b/var/spack/repos/builtin/packages/py-googleapis-common-protos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGoogleapisCommonProtos(PythonPackage):
"""Common protobufs used in Google APIs."""
homepage = "https://github.com/googleapis/googleapis"
- url = "https://pypi.io/packages/source/g/googleapis-common-protos/googleapis-common-protos-1.6.0.tar.gz"
+ pypi = "googleapis-common-protos/googleapis-common-protos-1.6.0.tar.gz"
version('1.6.0', sha256='e61b8ed5e36b976b487c6e7b15f31bb10c7a0ca7bd5c0e837f4afab64b53a0c6')
diff --git a/var/spack/repos/builtin/packages/py-googledrivedownloader/package.py b/var/spack/repos/builtin/packages/py-googledrivedownloader/package.py
index 96710e1a17..a35bdd76cc 100644
--- a/var/spack/repos/builtin/packages/py-googledrivedownloader/package.py
+++ b/var/spack/repos/builtin/packages/py-googledrivedownloader/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyGoogledrivedownloader(PythonPackage):
"""Minimal class to download shared files from Google Drive."""
homepage = "https://github.com/ndrplz/google-drive-downloader"
- url = "https://pypi.io/packages/source/g/googledrivedownloader/googledrivedownloader-0.4.tar.gz"
+ pypi = "googledrivedownloader/googledrivedownloader-0.4.tar.gz"
version('0.4', sha256='4b34c1337b2ff3bf2bd7581818efbdcaea7d50ffd484ccf80809688f5ca0e204')
diff --git a/var/spack/repos/builtin/packages/py-gosam/package.py b/var/spack/repos/builtin/packages/py-gosam/package.py
index 75d8cee2a8..6f7a797f0f 100644
--- a/var/spack/repos/builtin/packages/py-gosam/package.py
+++ b/var/spack/repos/builtin/packages/py-gosam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,15 +11,21 @@ class PyGosam(PythonPackage):
one-loop amplitudes for multi-particle processes in renormalizable
quantum field theories."""
- homepage = "https://gosam.hepforge.org"
- url = "https://gosam.hepforge.org/downloads/?f=gosam-2.0.4-6d9f1cba.tar.gz"
+ homepage = "https://github.com/gudrunhe/gosam"
+ git = "https://github.com/gudrunhe/gosam.git"
- version('2.0.4', sha256='faf621c70f66d9dffc16ac5cce66258067f39f686d722a4867eeb759fcde4f44')
+ tags = ['hep']
+
+ version('2.1.1', tag='2.1.1', commit='4b98559212dfcb71f9d983a3a605e4693ac7f83f')
+ version('2.0.4', sha256='faf621c70f66d9dffc16ac5cce66258067f39f686d722a4867eeb759fcde4f44',
+ url='https://gosam.hepforge.org/downloads/?f=gosam-2.0.4-6d9f1cba.tar.gz')
+ version('2.0.3', tag='v2.0.3', commit='4146ab23a06b7c57c10fb36df60758d34aa58387')
depends_on('form', type='run')
depends_on('qgraf', type='run')
depends_on('gosam-contrib', type='link')
- depends_on('python@2.7:2.7.99', type=('build', 'run'))
+ depends_on('python@2.7:2.7.99', type=('build', 'run'), when='@:2.0.4')
+ depends_on('python@3:', type=('build', 'run'), when='@2.1.1:')
def setup_run_environment(self, env):
gosam_contrib_lib_dir = self.spec['gosam-contrib'].prefix.lib
diff --git a/var/spack/repos/builtin/packages/py-gpaw/package.py b/var/spack/repos/builtin/packages/py-gpaw/package.py
index 4bb61361f6..a631d97d3d 100644
--- a/var/spack/repos/builtin/packages/py-gpaw/package.py
+++ b/var/spack/repos/builtin/packages/py-gpaw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,11 @@ class PyGpaw(PythonPackage):
(ASE)."""
homepage = "https://wiki.fysik.dtu.dk/gpaw/index.html"
- url = "https://pypi.io/packages/source/g/gpaw/gpaw-1.3.0.tar.gz"
+ pypi = "gpaw/gpaw-1.3.0.tar.gz"
+ version('21.1.0', sha256='96843b68e04bd1c12606036c9f99b0ddfa5e6ee08ce46835e6bb347a6bd560a3')
+ version('20.10.0', sha256='77c3d3918f5cc118e448f8063af4807d163b31d502067f5cbe31fc756eb3971d')
+ version('20.1.0', sha256='c84307eb9943852d78d966c0c8856fcefdefa68621139906909908fb641b8421')
version('19.8.1', sha256='79dee367d695d68409c4d69edcbad5c8679137d6715da403f6c2500cb2178c2a')
version('1.3.0', sha256='cf601c69ac496421e36111682bcc1d23da2dba2aabc96be51accf73dea30655c')
@@ -26,11 +29,15 @@ class PyGpaw(PythonPackage):
depends_on('mpi', when='+mpi', type=('build', 'link', 'run'))
depends_on('python@2.6:', type=('build', 'run'), when='@:1.3.0')
depends_on('python@3.5:', type=('build', 'run'), when='@19.8.1:')
+ depends_on('python@3.6:', type=('build', 'run'), when='@20.10.0:')
depends_on('py-ase@3.13.0:', type=('build', 'run'), when='@1.3.0')
depends_on('py-ase@3.18.0:', type=('build', 'run'), when='@19.8.1')
+ depends_on('py-ase@3.19.0:', type=('build', 'run'), when='@20.1.0')
+ depends_on('py-ase@3.20.1:', type=('build', 'run'), when='@20.10.0')
+ depends_on('py-ase@3.21.0:', type=('build', 'run'), when='@21.1.0')
depends_on('py-numpy +blas +lapack', type=('build', 'run'))
depends_on('py-scipy', type=('build', 'run'))
- depends_on('libxc')
+ depends_on('libxc@3:4.3.4')
depends_on('blas')
depends_on('lapack')
depends_on('fftw+mpi', when='+fftw +mpi')
@@ -85,7 +92,12 @@ class PyGpaw(PythonPackage):
libs = list(libs.names)
rpath_str = ':'.join(self.rpath)
- with open('customize.py', 'w') as f:
+ if spec.satisfies('@:19.8.1'):
+ cfgfile = 'customize.py'
+ else:
+ cfgfile = 'siteconfig.py'
+
+ with open(cfgfile, 'w') as f:
f.write("libraries = {0}\n".format(repr(libs)))
f.write("include_dirs = {0}\n".format(repr(include_dirs)))
f.write("library_dirs = {0}\n".format(repr(lib_dirs)))
diff --git a/var/spack/repos/builtin/packages/py-gpustat/package.py b/var/spack/repos/builtin/packages/py-gpustat/package.py
index 1bfab1ba35..740af6eb55 100644
--- a/var/spack/repos/builtin/packages/py-gpustat/package.py
+++ b/var/spack/repos/builtin/packages/py-gpustat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyGpustat(PythonPackage):
"""An utility to monitor NVIDIA GPU status and usage."""
homepage = "https://github.com/wookayin/gpustat"
- url = "https://pypi.io/packages/source/g/gpustat/gpustat-0.6.0.tar.gz"
+ pypi = "gpustat/gpustat-0.6.0.tar.gz"
version('0.6.0', sha256='f69135080b2668b662822633312c2180002c10111597af9631bb02e042755b6c')
@@ -19,5 +19,3 @@ class PyGpustat(PythonPackage):
depends_on('py-nvidia-ml-py3@7.352.0:', when='^python@3:', type=('build', 'run'))
depends_on('py-psutil', type=('build', 'run'))
depends_on('py-blessings@1.6:', type=('build', 'run'))
- depends_on('py-mock@2:', type='test')
- depends_on('py-pytest@:4', type='test')
diff --git a/var/spack/repos/builtin/packages/py-gputil/package.py b/var/spack/repos/builtin/packages/py-gputil/package.py
index 22a16dda7b..fd4e3af69b 100644
--- a/var/spack/repos/builtin/packages/py-gputil/package.py
+++ b/var/spack/repos/builtin/packages/py-gputil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyGputil(PythonPackage):
using nvidia-smi."""
homepage = "https://github.com/anderskm/gputil"
- url = "https://pypi.io/packages/source/G/GPUtil/GPUtil-1.4.0.tar.gz"
+ pypi = "GPUtil/GPUtil-1.4.0.tar.gz"
version('1.4.0', sha256='099e52c65e512cdfa8c8763fca67f5a5c2afb63469602d5dcb4d296b3661efb9')
diff --git a/var/spack/repos/builtin/packages/py-gpy/package.py b/var/spack/repos/builtin/packages/py-gpy/package.py
index d85c28b52d..920cd39755 100644
--- a/var/spack/repos/builtin/packages/py-gpy/package.py
+++ b/var/spack/repos/builtin/packages/py-gpy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyGpy(PythonPackage):
"""The Gaussian Process Toolbox."""
- homepage = "http://sheffieldml.github.com/GPy/"
- url = "https://pypi.io/packages/source/g/gpy/GPy-1.9.9.tar.gz"
+ homepage = "https://sheffieldml.github.io/GPy/"
+ pypi = "gpy/GPy-1.9.9.tar.gz"
version('1.9.9', sha256='04faf0c24eacc4dea60727c50a48a07ddf9b5751a3b73c382105e2a31657c7ed')
version('0.8.8', sha256='e135d928cf170e2ec7fb058a035b5a7e334dc6b84d0bfb981556782528341988')
diff --git a/var/spack/repos/builtin/packages/py-gpytorch/package.py b/var/spack/repos/builtin/packages/py-gpytorch/package.py
index 7635c07e60..649711c354 100644
--- a/var/spack/repos/builtin/packages/py-gpytorch/package.py
+++ b/var/spack/repos/builtin/packages/py-gpytorch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGpytorch(PythonPackage):
process models with ease."""
homepage = "https://gpytorch.ai/"
- url = "https://pypi.io/packages/source/g/gpytorch/gpytorch-1.2.1.tar.gz"
+ pypi = "gpytorch/gpytorch-1.2.1.tar.gz"
maintainers = ['adamjstewart']
diff --git a/var/spack/repos/builtin/packages/py-gql/package.py b/var/spack/repos/builtin/packages/py-gql/package.py
index a3962bc649..3e731471a3 100644
--- a/var/spack/repos/builtin/packages/py-gql/package.py
+++ b/var/spack/repos/builtin/packages/py-gql/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,19 @@ class PyGql(PythonPackage):
GQL architecture is inspired by React-Relay and Apollo-Client."""
homepage = "https://github.com/graphql-python/gql"
- url = "https://github.com/graphql-python/gql/archive/v3.0.0a1.tar.gz"
+ pypi = "gql/gql-2.0.0.tar.gz"
- version('3.0.0a1', sha256='3254a6010464932e3700a8d225cf6e40a6983aaf5f279615504c8196a374daf9')
+ version('3.0.0a1', sha256='ecd8fd0b6a5a8bb5c9e1a97eefad3f267fc889bd03316211193640d49b3e4525')
+ version('0.4.0', sha256='259b0c66d8dfe61feb06fe45b57713da0fe2e5ca13fa500a1fafc9bf2f195e81')
depends_on('py-setuptools', type='build')
- depends_on('py-aiohttp@3.6.2', type=('build', 'run'))
- depends_on('py-graphql-core@3.1.0:3.1.999', type=('build', 'run'))
- depends_on('py-requests@2.23:2.999', type=('build', 'run'))
- depends_on('py-websockets@8.1:8.999', type=('build', 'run'))
- depends_on('py-yarl@1.4:1.999', type=('build', 'run'))
+ depends_on('py-aiohttp@3.6.2', type=('build', 'run'), when='@3.0:')
+ depends_on('py-graphql-core@3.1.0:3.1.999', type=('build', 'run'), when='@3.0:')
+ depends_on('py-requests@2.23:2.999', type=('build', 'run'), when='@3.0:')
+ depends_on('py-websockets@8.1:8.999', type=('build', 'run'), when='@3.0:')
+ depends_on('py-yarl@1.4:1.999', type=('build', 'run'), when='@3.0:')
+
+ depends_on('py-graphql-core@2.0:2.999', type=('build', 'run'), when='@0.4.0')
+ depends_on('py-six@1.10.0:', type=('build', 'run'), when='@0.4.0')
+ depends_on('py-promise@2.0:2.999', type=('build', 'run'), when='@0.4.0')
+ depends_on('py-requests@2.12:2.999', type=('build', 'run'), when='@0.4.0')
diff --git a/var/spack/repos/builtin/packages/py-grandalf/package.py b/var/spack/repos/builtin/packages/py-grandalf/package.py
new file mode 100644
index 0000000000..b2059587ee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-grandalf/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyGrandalf(PythonPackage):
+ """Grandalf is a Python package made for experimentations with graph
+ drawing algorithms."""
+
+ homepage = "https://github.com/bdcht/grandalf"
+ url = "https://github.com/bdcht/grandalf/archive/v0.7.tar.gz"
+
+ version('0.7', sha256='b3112299fe0a9123c088a16bf2f1b541d0d91199b77170a9739b569bd16a828e')
+ version('0.6', sha256='928db4b90f7aff01e252a833951086b20d5958c00083411193c794de7bf59df2')
+
+ depends_on('python@3:', type=('build', 'run'))
+ depends_on('py-pyparsing', type=('build', 'run'))
+ depends_on('py-pytest-runner', type='build')
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-graphql-core/package.py b/var/spack/repos/builtin/packages/py-graphql-core/package.py
index 6b74fa9095..9c8ab6fead 100644
--- a/var/spack/repos/builtin/packages/py-graphql-core/package.py
+++ b/var/spack/repos/builtin/packages/py-graphql-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,11 @@ class PyGraphqlCore(PythonPackage):
for APIs created by Facebook."""
homepage = "https://github.com/graphql-python/graphql-core"
- url = "https://github.com/graphql-python/graphql-core/archive/v3.1.2.tar.gz"
+ pypi = "graphql-core/graphql-core-3.1.5.tar.gz"
- version('3.1.2', sha256='16087360d34f9cfa295b401fc17f9f11bcddef0e6e0dc5a694bbe2298b31949b')
- version('3.0.5', sha256='88021f8b879f18cf56523644e51e1552b126a9ad9ab218f579bf503d236d5272')
+ version('3.1.2', sha256='c056424cbdaa0ff67446e4379772f43746bad50a44ec23d643b9bdcd052f5b3a')
+ version('3.0.5', sha256='51f7dab06b5035515b23984f6fcb677ed909b56c672152699cca32e03624992e')
+ version('2.3.2', sha256='aac46a9ac524c9855910c14c48fc5d60474def7f99fd10245e76608eba7af746')
depends_on('python@3.6:3.999', type=('build', 'run'))
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-graphviz/package.py b/var/spack/repos/builtin/packages/py-graphviz/package.py
index 144321cccf..70b73593e2 100644
--- a/var/spack/repos/builtin/packages/py-graphviz/package.py
+++ b/var/spack/repos/builtin/packages/py-graphviz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,14 @@ class PyGraphviz(PythonPackage):
"""Simple Python interface for Graphviz"""
homepage = "https://github.com/xflr6/graphviz"
- url = "https://pypi.io/packages/source/g/graphviz/graphviz-0.10.1.zip"
+ pypi = "graphviz/graphviz-0.10.1.zip"
version('0.13.2', sha256='60acbeee346e8c14555821eab57dbf68a169e6c10bce40e83c1bf44f63a62a01')
version('0.13', sha256='dc08677f37c65a4a480f00df4bd0d19a0a103c06aad95f21a37f0b7fd440de81')
version('0.12', sha256='c60e232a66e4847f9f644fbaa94730ca4f78385a1314a2cc1e7f4cb2d7461298')
version('0.11.1', sha256='914b8b124942d82e3e1dcef499c9fe77c10acd3d18a1cfeeb2b9de05f6d24805')
version('0.10.1', sha256='d311be4fddfe832a56986ac5e1d6e8715d7fcb0208560da79d1bb0f72abef41f')
+ version('0.8.4', sha256='4958a19cbd8461757a08db308a4a15c3d586660417e1e364f0107d2fe481689f')
variant('dev', default=False, description='development mode')
variant('docs', default=False, description='build documentation')
@@ -30,10 +31,5 @@ class PyGraphviz(PythonPackage):
depends_on('py-pep8-naming', type=('build', 'run'), when='+dev')
depends_on('py-wheel', type=('build', 'run'), when='+dev')
depends_on('py-twine', type=('build', 'run'), when='+dev')
- depends_on('py-mock@2:', type='test')
- depends_on('py-pytest@3.4:', type='test')
- depends_on('py-pytest@3.4:3.9,3.11:', when='@0.11.1', type='test')
- depends_on('py-pytest-mock@1.8:', type='test')
- depends_on('py-pytest-cov', type='test')
depends_on('py-sphinx@1.7:', type=('build', 'run'), when='+docs')
depends_on('py-sphinx-rtd-theme', type=('build', 'run'), when='+docs')
diff --git a/var/spack/repos/builtin/packages/py-greenlet/package.py b/var/spack/repos/builtin/packages/py-greenlet/package.py
index cda196c519..43d9f197f2 100644
--- a/var/spack/repos/builtin/packages/py-greenlet/package.py
+++ b/var/spack/repos/builtin/packages/py-greenlet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,12 @@ class PyGreenlet(PythonPackage):
"""Lightweight in-process concurrent programming"""
homepage = "https://github.com/python-greenlet/greenlet"
- url = "https://pypi.io/packages/source/g/greenlet/greenlet-0.4.13.tar.gz"
+ pypi = "greenlet/greenlet-0.4.17.tar.gz"
+ version('1.1.0', sha256='c87df8ae3f01ffb4483c796fe1b15232ce2b219f0b18126948616224d3f658ee')
+ version('0.4.17', sha256='41d8835c69a78de718e466dd0e6bfd4b46125f21a67c3ff6d76d8d8059868d6b')
version('0.4.13', sha256='0fef83d43bf87a5196c91e73cb9772f945a4caaff91242766c5916d1dd1381e4')
+
+ depends_on('python@2.7:2.8,3.5:', when='@1:', type=('build', 'link', 'run'))
+ depends_on('python', when='@:0.9', type=('build', 'link', 'run'))
+ depends_on('py-setuptools', when='@1:', type='build')
diff --git a/var/spack/repos/builtin/packages/py-grequests/package.py b/var/spack/repos/builtin/packages/py-grequests/package.py
index 53b804bd6f..94ac957d72 100644
--- a/var/spack/repos/builtin/packages/py-grequests/package.py
+++ b/var/spack/repos/builtin/packages/py-grequests/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class PyGrequests(PythonPackage):
"""
homepage = "https://github.com/spyoungtech/grequests"
- url = "https://pypi.io/packages/source/g/grequests/grequests-0.4.0.tar.gz"
+ pypi = "grequests/grequests-0.4.0.tar.gz"
version('0.4.0', sha256='8aeccc15e60ec65c7e67ee32e9c596ab2196979815497f85cf863465a1626490')
version('0.3.0', sha256='0f41c4eee83bab39f5543af49665c08681637a0562a5704a3f7b2e4a996531c9')
@@ -22,4 +22,3 @@ class PyGrequests(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('py-gevent', type=('build', 'run'))
depends_on('py-requests', type=('build', 'run'))
- depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-griddataformats/package.py b/var/spack/repos/builtin/packages/py-griddataformats/package.py
index f7c8584ac0..c9b808bf60 100644
--- a/var/spack/repos/builtin/packages/py-griddataformats/package.py
+++ b/var/spack/repos/builtin/packages/py-griddataformats/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyGriddataformats(PythonPackage):
data again."""
homepage = "http://www.mdanalysis.org/GridDataFormats"
- url = "https://pypi.io/packages/source/G/GridDataFormats/GridDataFormats-0.5.0.tar.gz"
+ pypi = "GridDataFormats/GridDataFormats-0.5.0.tar.gz"
version('0.5.0', sha256='f317ed60708de22d1b2a76ce89a00f722d903291b1055ff1018d441870c39d69')
version('0.4.1', sha256='b362662c2dc475e2a3895fe044eaaa9a707bd660fd109a63dac84a47236690a3')
diff --git a/var/spack/repos/builtin/packages/py-grpcio/package.py b/var/spack/repos/builtin/packages/py-grpcio/package.py
index b53cb4a0f1..00c3cf32b1 100644
--- a/var/spack/repos/builtin/packages/py-grpcio/package.py
+++ b/var/spack/repos/builtin/packages/py-grpcio/package.py
@@ -1,20 +1,34 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 PyGrpcio(PythonPackage):
"""HTTP/2-based RPC framework."""
homepage = "https://grpc.io/"
- url = "https://pypi.io/packages/source/g/grpcio/grpcio-1.32.0.tar.gz"
-
+ pypi = "grpcio/grpcio-1.32.0.tar.gz"
+
+ version('1.39.0', sha256='57974361a459d6fe04c9ae0af1845974606612249f467bbd2062d963cb90f407')
+ version('1.38.1', sha256='1f79d8a24261e3c12ec3a6c25945ff799ae09874fd24815bc17c2dc37715ef6c')
+ version('1.38.0', sha256='abbf9c8c3df4d5233d5888c6cfa85c1bb68a6923749bd4dd1abc6e1e93986f17')
+ version('1.37.1', sha256='df8305806311d3fe913d4f7eb3ef28e2072159ea12f95baab5d447f1380a71e3')
+ version('1.37.0', sha256='b3ce16aa91569760fdabd77ca901b2288152eb16941d28edd9a3a75a0c4a8a85')
+ version('1.36.0', sha256='70b11805bc9385fcd24e15bcdc5bd8bed463026cd2227d9fdd1ebda612ba0cd9')
+ version('1.35.0', sha256='7bd0ebbb14dde78bf66a1162efd29d3393e4e943952e2f339757aa48a184645c')
+ version('1.34.1', sha256='1c746a3cd8a830d8d916a9d0476a786aaa98c5cc2a096344af2be955e439f8ac')
+ version('1.34.0', sha256='f98f746cacbaa681de0bcd90d7aa77b440e3e1327a9988f6a2b580d54e27d4c3')
+ version('1.33.2', sha256='21265511880056d19ce4f809ce3fbe2a3fa98ec1fc7167dbdf30a80d3276202e')
+ version('1.33.1', sha256='f19782ec5104599382a0f73f2dfea465d0e65f6818bb3c49ca672b97034c64c3')
version('1.32.0', sha256='01d3046fe980be25796d368f8fc5ff34b7cf5e1444f3789a017a7fe794465639')
version('1.30.0', sha256='e8f2f5d16e0164c415f1b31a8d9a81f2e4645a43d1b261375d6bab7b0adf511f')
version('1.29.0', sha256='a97ea91e31863c9a3879684b5fb3c6ab4b17c5431787548fc9f52b9483ea9c25')
version('1.27.2', sha256='5ae532b93cf9ce5a2a549b74a2c35e3b690b171ece9358519b3039c7b84c887e')
version('1.25.0', sha256='c948c034d8997526011960db54f512756fb0b4be1b81140a15b4ef094c6594a4')
+ version('1.16.0', sha256='d99db0b39b490d2469a8ef74197d5f211fa740fc9581dccecbb76c56d080fce1')
depends_on('python@3.5:', when='@1.30:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
@@ -34,6 +48,7 @@ class PyGrpcio(PythonPackage):
env.set('GRPC_PYTHON_BUILD_SYSTEM_CARES', True)
# https://github.com/grpc/grpc/pull/24449
env.set('GRPC_BUILD_WITH_BORING_SSL_ASM', '')
+ env.set('GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS', str(make_jobs))
for dep in self.spec.dependencies(deptype='link'):
query = self.spec[dep.name]
diff --git a/var/spack/repos/builtin/packages/py-gsd/package.py b/var/spack/repos/builtin/packages/py-gsd/package.py
index f130265d82..2cfd8719cc 100644
--- a/var/spack/repos/builtin/packages/py-gsd/package.py
+++ b/var/spack/repos/builtin/packages/py-gsd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class PyGsd(PythonPackage):
tool to explore the behavior of the simulation."""
homepage = "https://gsd.readthedocs.io/en/stable/#"
- url = "https://pypi.io/packages/source/g/gsd/gsd-1.9.3.tar.gz"
+ pypi = "gsd/gsd-1.9.3.tar.gz"
version('1.9.3', sha256='c6b37344e69020f69fda2b8d97f894cb41fd720840abeda682edd680d1cff838')
diff --git a/var/spack/repos/builtin/packages/py-gsi/package.py b/var/spack/repos/builtin/packages/py-gsi/package.py
index 3f09ff3b55..aa4a6b3b43 100644
--- a/var/spack/repos/builtin/packages/py-gsi/package.py
+++ b/var/spack/repos/builtin/packages/py-gsi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyGsi(PythonPackage):
"""Python interface for GSI authentication"""
homepage = "https://github.com/DIRACGrid/pyGSI"
- url = "https://pypi.io/packages/source/g/gsi/GSI-0.6.5.tar.gz"
+ pypi = "gsi/GSI-0.6.5.tar.gz"
version('0.6.5', sha256='8291dd2fab2be12626272629f7f9661487c4e29f1f9ab8c61614c54b06cb0643')
diff --git a/var/spack/repos/builtin/packages/py-gsutil/package.py b/var/spack/repos/builtin/packages/py-gsutil/package.py
new file mode 100644
index 0000000000..76ba3ea11f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-gsutil/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 PyGsutil(PythonPackage):
+ """A command line tool for interacting with cloud storage services."""
+
+ homepage = "https://cloud.google.com/storage/docs/gsutil"
+ pypi = "gsutil/gsutil-4.59.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('4.59', sha256='349e0e0b48c281659acec205917530ae57e2eb23db7220375f5add44688d3ddf')
+
+ depends_on('python@2.7:2.8,3.5:3.999', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-argcomplete@1.9.4:', type=('build', 'run'))
+ depends_on('py-crcmod@1.7:', type=('build', 'run'))
+ depends_on('py-fasteners@0.14.1:', type=('build', 'run'))
+ depends_on('py-gcs-oauth2-boto-plugin@2.7:', type=('build', 'run'))
+ depends_on('py-google-apitools@0.5.32:', type=('build', 'run'))
+ depends_on('py-httplib2@0.18:', type=('build', 'run'))
+ depends_on('py-google-auth@0.1.0:', type=('build', 'run'))
+ depends_on('py-mock@2.0.0', type=('build', 'run'))
+ depends_on('py-monotonic@1.4:', type=('build', 'run'))
+ depends_on('py-pyopenssl@0.13:', type=('build', 'run'))
+ depends_on('py-retry-decorator@1.0.0:', type=('build', 'run'))
+ depends_on('py-six@1.12.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-guidata/package.py b/var/spack/repos/builtin/packages/py-guidata/package.py
index 40ddc445b2..e5d76a7c03 100644
--- a/var/spack/repos/builtin/packages/py-guidata/package.py
+++ b/var/spack/repos/builtin/packages/py-guidata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyGuidata(PythonPackage):
and display"""
homepage = "https://github.com/PierreRaybaut/guidata"
- url = "https://pypi.io/packages/source/g/guidata/guidata-1.7.5.zip"
+ pypi = "guidata/guidata-1.7.5.zip"
version('1.7.5', sha256='531d5e9ea784120c2e14212cfbd9c63f78fc7a77bcb9c5497be984584ee455c0')
diff --git a/var/spack/repos/builtin/packages/py-guiqwt/package.py b/var/spack/repos/builtin/packages/py-guiqwt/package.py
index 86cb35e37f..dcdbb22570 100644
--- a/var/spack/repos/builtin/packages/py-guiqwt/package.py
+++ b/var/spack/repos/builtin/packages/py-guiqwt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyGuiqwt(PythonPackage):
(extension to PythonQwt)"""
homepage = "https://github.com/PierreRaybaut/guiqwt"
- url = "https://pypi.io/packages/source/g/guiqwt/guiqwt-3.0.2.zip"
+ pypi = "guiqwt/guiqwt-3.0.2.zip"
version('3.0.2', sha256='387c0b9430624ecc87931e33ff963785194968c9f848337eb050eca48c6cd858')
diff --git a/var/spack/repos/builtin/packages/py-gym/package.py b/var/spack/repos/builtin/packages/py-gym/package.py
new file mode 100644
index 0000000000..795c93fe25
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-gym/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyGym(PythonPackage):
+ """OpenAI Gym is a toolkit for developing and comparing
+ reinforcement learning algorithms. This is the gym open-source
+ library, which gives you access to a standardized set of
+ environments."""
+
+ homepage = "https://github.com/openai/gym"
+ pypi = "gym/0.18.0.tar.gz"
+
+ version('0.18.0', sha256='a0dcd25c1373f3938f4cb4565f74f434fba6faefb73a42d09c9dddd0c08af53e')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-numpy@1.10.4:', type=('build', 'run'))
+ depends_on('py-pyglet@1.4.0:1.5.0', type=('build', 'run'), when='@0.18.0')
+ depends_on('py-pyglet@1.4.0:1.5.15', type=('build', 'run'), when='@0.18.1')
+ depends_on('pil@:8.2.0', type=('build', 'run'), when='@0.18.1')
+ depends_on('pil@:7.2.0', type=('build', 'run'), when='@0.18.0')
+ depends_on('py-cloudpickle@1.2.0:1.6.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-h11/package.py b/var/spack/repos/builtin/packages/py-h11/package.py
index e31e940b7f..9864e1617a 100644
--- a/var/spack/repos/builtin/packages/py-h11/package.py
+++ b/var/spack/repos/builtin/packages/py-h11/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyH11(PythonPackage):
"""A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"""
homepage = "https://github.com/python-hyper/h11"
- url = "https://pypi.io/packages/source/h/h11/h11-0.10.0.tar.gz"
+ pypi = "h11/h11-0.10.0.tar.gz"
version('0.10.0', sha256='311dc5478c2568cc07262e0381cdfc5b9c6ba19775905736c87e81ae6662b9fd')
version('0.9.0', sha256='33d4bca7be0fa039f4e84d50ab00531047e53d6ee8ffbc83501ea602c169cae1')
diff --git a/var/spack/repos/builtin/packages/py-h2/package.py b/var/spack/repos/builtin/packages/py-h2/package.py
index 375f36c27d..ae263f1ff0 100644
--- a/var/spack/repos/builtin/packages/py-h2/package.py
+++ b/var/spack/repos/builtin/packages/py-h2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyH2(PythonPackage):
"""HTTP/2 State-Machine based protocol implementation"""
homepage = "https://github.com/python-hyper/hyper-h2"
- url = "https://pypi.io/packages/source/h/h2/h2-4.0.0.tar.gz"
+ pypi = "h2/h2-4.0.0.tar.gz"
version('4.0.0', sha256='bb7ac7099dd67a857ed52c815a6192b6b1f5ba6b516237fc24a085341340593d')
diff --git a/var/spack/repos/builtin/packages/py-h5glance/package.py b/var/spack/repos/builtin/packages/py-h5glance/package.py
index 9d3c3c9171..885929a09e 100644
--- a/var/spack/repos/builtin/packages/py-h5glance/package.py
+++ b/var/spack/repos/builtin/packages/py-h5glance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,11 +13,11 @@ class PyH5glance(PythonPackage):
"""
homepage = "https://github.com/European-XFEL/h5glance"
- url = "https://pypi.io/packages/source/h/h5glance/h5glance-0.4.tar.gz"
+ pypi = "h5glance/h5glance-0.4.tar.gz"
version('0.6', sha256='203369ab614273aaad3419f151e234609bb8390b201b65f678d7e17c57633e35')
version('0.5', sha256='bc34ee42429f0440b329083e3f67fbf3d7016a4aed9e8b30911e5905217bc8d9')
- version('0.4', sha256='03babaee0d481991062842796126bc9e6b11e2e6e7daba57c26f2b58bf3bbd32')
+ version('0.4', sha256='03babaee0d481991062842796126bc9e6b11e2e6e7daba57c26f2b58bf3bbd32')
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-h5py', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-h5netcdf/package.py b/var/spack/repos/builtin/packages/py-h5netcdf/package.py
new file mode 100644
index 0000000000..73538cdb44
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-h5netcdf/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyH5netcdf(PythonPackage):
+ """A Python interface for the netCDF4 file-format that reads and writes local or
+ remote HDF5 files directly via h5py or h5pyd, without relying on the Unidata netCDF
+ library."""
+
+ homepage = "https://github.com/h5netcdf/h5netcdf"
+ pypi = "h5netcdf/h5netcdf-0.10.0.tar.gz"
+
+ version('0.10.0', sha256='fc1cfec33bb9f730c412f87fcbc259167fd7620635679ccfc6e31971730dbd60')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-h5py', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py
index 2b7d34cc4b..e55e365c6c 100644
--- a/var/spack/repos/builtin/packages/py-h5py/package.py
+++ b/var/spack/repos/builtin/packages/py-h5py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,17 @@ class PyH5py(PythonPackage):
"""The h5py package provides both a high- and low-level interface to the
HDF5 library from Python."""
- homepage = "http://www.h5py.org/"
- url = "https://pypi.io/packages/source/h/h5py/h5py-2.10.0.tar.gz"
+ homepage = "https://www.h5py.org/"
+ pypi = "h5py/h5py-3.3.0.tar.gz"
git = "https://github.com/h5py/h5py.git"
-
- import_modules = ['h5py', 'h5py._hl']
+ maintainers = ['bryanherman', 'takluyver']
version('master', branch='master')
+ version('3.3.0', sha256='e0dac887d779929778b3cfd13309a939359cc9e74756fc09af7c527a82797186')
+ version('3.2.1', sha256='89474be911bfcdb34cbf0d98b8ec48b578c27a89fdb1ae4ee7513f1ef8d9249e')
+ version('3.2.0', sha256='4271c1a4b7d87aa76fe96d016368beb05a6c389d64882d58036964ce7d2d03c1')
+ version('3.1.0', sha256='1e2516f190652beedcb8c7acfa1c6fa92d99b42331cbef5e5c7ec2d65b0fc3c2')
+ version('3.0.0', sha256='7d3803be1b530c68c2955faba726dc0f591079b68941a0c0269b5384a42ab519')
version('2.10.0', sha256='84412798925dc870ffd7107f045d7659e60f5d46d1c70c700375248bf6bf512d')
version('2.9.0', sha256='9d41ca62daf36d6b6515ab8765e4c8c4388ee18e2a665701fef2b41563821002')
version('2.8.0', sha256='e626c65a8587921ebc7fb8d31a49addfdd0b9a9aa96315ea484c09803337b955')
@@ -28,30 +32,59 @@ class PyH5py(PythonPackage):
variant('mpi', default=True, description='Build with MPI support')
+ # Python versions
+ depends_on('python@3.6:', type=('build', 'run'), when='@3.0.0:3.1.99')
+ depends_on('python@3.7:', type=('build', 'run'), when='@3.2.0:')
+
# Build dependencies
- depends_on('py-cython@0.23:', type='build')
+ depends_on('py-cython@0.23:', type='build', when='@:2.99')
+ depends_on('py-cython@0.29:', type=('build'), when='@3.0.0:^python@:3.7.99')
+ depends_on('py-cython@0.29.14:', type=('build'), when='@3.0.0:^python@3.8.0:3.8.99')
+ depends_on('py-cython@0.29.15:', type=('build'), when='@3.0.0:^python@3.9.0:')
depends_on('py-pkgconfig', type='build')
depends_on('py-setuptools', type='build')
+ depends_on('py-wheel', type='build', when='@3.0.0:')
# Build and runtime dependencies
- depends_on('py-cached-property@1.5:', type=('build', 'run'))
- depends_on('py-numpy@1.7:', type=('build', 'run'))
- depends_on('py-six', type=('build', 'run'))
+ depends_on('py-cached-property@1.5:', type=('build', 'run'), when='^python@:3.7.99')
+ depends_on('py-numpy@1.7:', type=('build', 'run'), when='@:2.99')
+ depends_on('py-numpy@1.12:', type=('build', 'run'), when='@3.0.0:^python@3.6.0:3.6.99')
+ depends_on('py-numpy@1.14.5:', type=('build', 'run'), when='@3.0.0:^python@3.7.0:3.7.99')
+ depends_on('py-numpy@1.17.5:', type=('build', 'run'), when='@3.0.0:^python@3.8.0:3.8.99')
+ depends_on('py-numpy@1.19.3:', type=('build', 'run'), when='@3.0.0:^python@3.9.0:')
+ depends_on('py-six', type=('build', 'run'), when='@:2.99')
# Link dependencies
- depends_on('hdf5@1.8.4:+hl')
+ depends_on('hdf5@1.8.4:1.11+hl', when='@:2.99')
+ depends_on('hdf5@1.8.4:+hl', when='@3.0.0:')
# MPI dependencies
depends_on('hdf5+mpi', when='+mpi')
depends_on('mpi', when='+mpi')
- depends_on('py-mpi4py', when='+mpi', type=('build', 'run'))
+ depends_on('py-mpi4py', when='@:2.99 +mpi', type=('build', 'run'))
+ depends_on('py-mpi4py@3.0.0:', when='@3.0.0:3.2.99+mpi^python@3.0.0:3.7.99', type=('build', 'run'))
+ depends_on('py-mpi4py@3.0.2:', when='@3.3.0:+mpi^python@3.0.0:3.7.99', type=('build', 'run'))
+ depends_on('py-mpi4py@3.0.3:', when='@3.0.0:+mpi^python@3.8.0:', type=('build', 'run'))
phases = ['configure', 'install']
+ def setup_build_environment(self, env):
+ env.set('HDF5_DIR', self.spec['hdf5'].prefix)
+ if '+mpi' in self.spec:
+ env.set('CC', self.spec['mpi'].mpicc)
+ env.set('HDF5_MPI', 'ON')
+
+ # Disable build requirements meant for Python build tools, which pin
+ # versions of numpy & mpi4py.
+ env.set('H5PY_SETUP_REQUIRES', '0')
+
+ @when('@3.0.0:')
+ def configure(self, spec, prefix):
+ pass
+
+ @when('@:2.99')
def configure(self, spec, prefix):
self.setup_py('configure', '--hdf5={0}'.format(spec['hdf5'].prefix),
'--hdf5-version={0}'.format(spec['hdf5'].version))
-
if '+mpi' in spec:
- env['CC'] = spec['mpi'].mpicc
self.setup_py('configure', '--mpi')
diff --git a/var/spack/repos/builtin/packages/py-h5sh/package.py b/var/spack/repos/builtin/packages/py-h5sh/package.py
index a85c123475..042d595b99 100644
--- a/var/spack/repos/builtin/packages/py-h5sh/package.py
+++ b/var/spack/repos/builtin/packages/py-h5sh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyH5sh(PythonPackage):
"""Shell-like environment for HDF5."""
- homepage = "https://pypi.python.org/pypi/h5sh"
+ homepage = "https://github.com/sethrj/h5sh"
url = "https://github.com/sethrj/h5sh/archive/v0.1.1.tar.gz"
maintainers = ['sethrj']
@@ -22,4 +22,3 @@ class PyH5sh(PythonPackage):
depends_on('py-prompt-toolkit@2:', type=('build', 'run'))
depends_on('py-pygments', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-hacking/package.py b/var/spack/repos/builtin/packages/py-hacking/package.py
index dae3f8b281..01b0c0f79c 100644
--- a/var/spack/repos/builtin/packages/py-hacking/package.py
+++ b/var/spack/repos/builtin/packages/py-hacking/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyHacking(PythonPackage):
"""OpenStack Hacking Guideline Enforcement."""
homepage = "https://docs.openstack.org/hacking/latest/"
- url = "https://pypi.io/packages/source/h/hacking/hacking-1.1.0.tar.gz"
-
- import_modules = ['hacking']
+ pypi = "hacking/hacking-1.1.0.tar.gz"
version('1.1.0', sha256='23a306f3a1070a4469a603886ba709780f02ae7e0f1fc7061e5c6fb203828fee')
diff --git a/var/spack/repos/builtin/packages/py-haphpipe/package.py b/var/spack/repos/builtin/packages/py-haphpipe/package.py
new file mode 100644
index 0000000000..7686cc292b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-haphpipe/package.py
@@ -0,0 +1,49 @@
+# Copyright 2013-2021 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 PyHaphpipe(PythonPackage):
+ """HAplotype and PHylodynamics pipeline for viral assembly,
+ population genetics, and phylodynamics."""
+
+ homepage = "https://github.com/gwcbi/haphpipe"
+ url = "https://github.com/gwcbi/haphpipe/archive/v1.0.3.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('1.0.3', sha256='9a9e8632a217ff4207c1dea66887a471e0ea04bbb7c0f0d72631acaba214bd37')
+
+ # Deps. taken from
+ # https://github.com/bioconda/bioconda-recipes/blob/master/recipes/haphpipe/meta.yaml
+ # https://bioconda.github.io/recipes/haphpipe/README.html
+ # https://github.com/gwcbi/haphpipe/blob/master/environment.yml
+ depends_on('python@3.7:', type=('build', 'run'))
+ depends_on('py-future', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-biopython@1.73:', type=('build', 'run'))
+ depends_on('py-gsutil', type=('build', 'run'))
+ depends_on('py-sierrapy', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ depends_on('bowtie2', type=('build', 'run'))
+ depends_on('blast-plus', type=('build', 'run'))
+ depends_on('freebayes', type=('build', 'run'))
+ depends_on('modeltest-ng', type=('build', 'run'))
+ depends_on('libdeflate', type=('build', 'run'))
+ depends_on('sratoolkit', type=('build', 'run'))
+ depends_on('spades', type=('build', 'run'))
+ depends_on('seqtk', type=('build', 'run'))
+ depends_on('raxml-ng~mpi', type=('build', 'run'))
+ depends_on('gatk@3.8-0', type=('build', 'run'))
+ depends_on('trinity', type=('build', 'run'))
+ depends_on('trimmomatic@0.38:', type=('build', 'run'))
+ depends_on('flash@1.2.11:', type=('build', 'run'))
+ depends_on('mummer@3.23:', type=('build', 'run'))
+ depends_on('bwa', type=('build', 'run'))
+ depends_on('samtools@1.9:', type=('build', 'run'))
+ depends_on('mafft', type=('build', 'run'))
+ depends_on('picard', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-hatchet/package.py b/var/spack/repos/builtin/packages/py-hatchet/package.py
index 91df70b61b..41d27ff091 100644
--- a/var/spack/repos/builtin/packages/py-hatchet/package.py
+++ b/var/spack/repos/builtin/packages/py-hatchet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,18 @@ from spack import *
class PyHatchet(PythonPackage):
- """Hatchet is an analysis tool for structured tree or graph performance data
- using an indexed Pandas dataframe."""
+ """Hatchet is a performance tool for analyzing hierarchical performance data
+ using a graph-indexed Pandas dataframe."""
- homepage = "https://github.com/LLNL/hatchet"
- url = "https://github.com/LLNL/hatchet/archive/v1.0.0.tar.gz"
+ homepage = "https://github.com/hatchet/hatchet"
+ url = "https://github.com/hatchet/hatchet/archive/v1.0.0.tar.gz"
maintainers = ["slabasan", "bhatele", "tgamblin"]
+ version('1.3.0', sha256='d77d071fc37863fdc9abc3fd9ea1088904cd98c6980a014a31e44595d2deac5e')
+ version('1.2.0', sha256='1d5f80abfa69d1a379dff7263908c5c915023f18f26d50b639556e2f43ac755e')
+ version('1.1.0', sha256='71bfa2881ef295294e5b4493acb8cce98d14c354e9ae59b42fb56a76d8ec7056')
+ version('1.0.1', sha256='e5a4b455ab6bfbccbce3260673d9af8d1e4b21e19a2b6d0b6c1e1d7727613b7a')
version('1.0.0', sha256='efd218bc9152abde0a8006489a2c432742f00283a114c1eeb6d25abc10f5862d')
depends_on('python@2.7,3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-hdbscan/package.py b/var/spack/repos/builtin/packages/py-hdbscan/package.py
index 1d093dbf55..be6a532871 100644
--- a/var/spack/repos/builtin/packages/py-hdbscan/package.py
+++ b/var/spack/repos/builtin/packages/py-hdbscan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-hdfs/package.py b/var/spack/repos/builtin/packages/py-hdfs/package.py
index c84c3faca9..5c28dc6827 100644
--- a/var/spack/repos/builtin/packages/py-hdfs/package.py
+++ b/var/spack/repos/builtin/packages/py-hdfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyHdfs(PythonPackage):
"""API and command line interface for HDFS"""
homepage = "https://hdfscli.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/h/hdfs/hdfs-2.1.0.tar.gz"
+ pypi = "hdfs/hdfs-2.1.0.tar.gz"
version('2.1.0', sha256='a40fe99ccb03b5c3247b33a4110eb21b57405dd7c3f1b775e362e66c19b44bc6')
diff --git a/var/spack/repos/builtin/packages/py-healpy/package.py b/var/spack/repos/builtin/packages/py-healpy/package.py
index d1781d13a1..a93ebb67e4 100644
--- a/var/spack/repos/builtin/packages/py-healpy/package.py
+++ b/var/spack/repos/builtin/packages/py-healpy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,18 @@ class PyHealpy(PythonPackage):
"""healpy is a Python package to handle pixelated data on the sphere."""
homepage = "https://healpy.readthedocs.io/"
- url = "https://pypi.python.org/packages/source/h/healpy/healpy-1.13.0.tar.gz"
+ pypi = "healpy/healpy-1.13.0.tar.gz"
+ version('1.14.0', sha256='2720b5f96c314bdfdd20b6ffc0643ac8091faefcf8fd20a4083cedff85a66c5e')
version('1.13.0', sha256='d0ae02791c2404002a09c643e9e50bc58e3d258f702c736dc1f39ce1e6526f73')
version('1.7.4', sha256='3cca7ed7786ffcca70e2f39f58844667ffb8521180ac890d4da651b459f51442')
- depends_on('python', type=('build', 'run'))
depends_on('py-setuptools@3.2:', type='build')
+ depends_on('py-pkgconfig', type='build')
depends_on('py-numpy@1.13:', type=('build', 'run'))
depends_on('py-scipy', type=('build', 'run'))
depends_on('py-astropy', type=('build', 'run'))
depends_on('py-matplotlib', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
+ depends_on('cfitsio', type=('build', 'run'))
+ depends_on('healpix-cxx', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-heapdict/package.py b/var/spack/repos/builtin/packages/py-heapdict/package.py
index 7333f24c7a..99f27ce27e 100644
--- a/var/spack/repos/builtin/packages/py-heapdict/package.py
+++ b/var/spack/repos/builtin/packages/py-heapdict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyHeapdict(PythonPackage):
"""A heap with decrease-key and increase-key operations"""
homepage = "http://stutzbachenterprises.com/"
- url = "https://pypi.io/packages/source/H/HeapDict/HeapDict-1.0.1.tar.gz"
+ pypi = "HeapDict/HeapDict-1.0.1.tar.gz"
version('1.0.1', sha256='8495f57b3e03d8e46d5f1b2cc62ca881aca392fd5cc048dc0aa2e1a6d23ecdb6')
diff --git a/var/spack/repos/builtin/packages/py-hepdata-validator/package.py b/var/spack/repos/builtin/packages/py-hepdata-validator/package.py
index ca4daefff5..71a027085e 100644
--- a/var/spack/repos/builtin/packages/py-hepdata-validator/package.py
+++ b/var/spack/repos/builtin/packages/py-hepdata-validator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,9 @@ class PyHepdataValidator(PythonPackage):
"""Validation schema and code for HEPdata submissions."""
homepage = "https://github.com/hepdata/hepdata-validator"
- url = "https://pypi.io/packages/source/h/hepdata_validator/hepdata_validator-0.1.16.tar.gz"
+ pypi = "hepdata_validator/hepdata_validator-0.1.16.tar.gz"
+
+ tags = ['hep']
version('0.1.16', sha256='3d7f725328ecdbb66826bff2e48a40a1d9234249859c8092ca0e92be7fb78111')
version('0.1.15', sha256='1030654b1a1cfc387c2759f8613f033da467c8182dc027e181227aeb52854bb2')
diff --git a/var/spack/repos/builtin/packages/py-hepunits/package.py b/var/spack/repos/builtin/packages/py-hepunits/package.py
index d30fb48126..b11427a94f 100644
--- a/var/spack/repos/builtin/packages/py-hepunits/package.py
+++ b/var/spack/repos/builtin/packages/py-hepunits/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,16 @@ class PyHepunits(PythonPackage):
"""Units and constants in the HEP system of units."""
git = "https://github.com/scikit-hep/hepunits.git"
- url = "https://pypi.io/packages/source/h/hepunits/hepunits-1.2.1.tar.gz"
+ pypi = "hepunits/hepunits-1.2.1.tar.gz"
homepage = "https://github.com/scikit-hep/hepunits"
+ tags = ['hep']
+
maintainers = ['vvolkl']
version('master', branch='master')
+ version('2.1.1', sha256='21b18bbf82ade5e429e2c71ec41bc5ae8005b275466bdaef0159ddc4f8085b31')
+ version('2.1.0', sha256='9e8da814c242579ad1fde6ccff0514195c70ab6d232eab8ff0ad675239686ef6')
version('1.2.1', sha256='b05b0dda32bf797806d506d7508d4eb23b78f34d67bbba9348a2b4a9712666fa')
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-hieroglyph/package.py b/var/spack/repos/builtin/packages/py-hieroglyph/package.py
index fa8a0dab06..997e0ddf34 100644
--- a/var/spack/repos/builtin/packages/py-hieroglyph/package.py
+++ b/var/spack/repos/builtin/packages/py-hieroglyph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,11 +12,13 @@ class PyHieroglyph(PythonPackage):
"""
homepage = "https://github.com/nyergler/hieroglyph"
- url = "https://pypi.io/packages/source/h/hieroglyph/hieroglyph-1.0.0.tar.gz"
+ pypi = "hieroglyph/hieroglyph-1.0.0.tar.gz"
+ version('2.1.0', sha256='b4b5db13a9d387438e610c2ca1d81386ccd206944d9a9dd273f21874486cddaf')
version('1.0.0', sha256='8e137f0b1cd60c47b870011089790d3c8ddb74fcf409a75ddf2c7f2516ff337c')
- version('master')
- depends_on('py-setuptools')
- depends_on('py-sphinx@1.2:')
- depends_on('py-six')
+ depends_on('python@3:', when='@2:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-sphinx@1.2:', when='@1.0.0:1.9.999', type=('build', 'run'))
+ depends_on('py-sphinx@2.0:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('py-six', when='@1.0.0:1.9.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-hiredis/package.py b/var/spack/repos/builtin/packages/py-hiredis/package.py
index add8083916..2da29cd190 100644
--- a/var/spack/repos/builtin/packages/py-hiredis/package.py
+++ b/var/spack/repos/builtin/packages/py-hiredis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyHiredis(PythonPackage):
It primarily speeds up parsing of multi bulk replies."""
homepage = "https://github.com/redis/hiredis-py"
- url = "https://pypi.io/packages/source/h/hiredis/hiredis-1.1.0.tar.gz"
+ pypi = "hiredis/hiredis-1.1.0.tar.gz"
version('1.1.0', sha256='996021ef33e0f50b97ff2d6b5f422a0fe5577de21a8873b58a779a5ddd1c3132')
diff --git a/var/spack/repos/builtin/packages/py-holland-backup/package.py b/var/spack/repos/builtin/packages/py-holland-backup/package.py
new file mode 100644
index 0000000000..737884efdc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-holland-backup/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyHollandBackup(PythonPackage):
+ """Holland is an Open Source backup framework originally developed
+ by Rackspace and written in Python. Its goal is to help facilitate
+ backing up databases with greater configurability, consistency, and ease.
+ Holland currently focuses on MySQL, however future development will include
+ other database platforms and even non-database related applications.
+ Because of its plugin structure, Holland can be used to backup anything
+ you want by whatever means you want."""
+
+ homepage = "https://hollandbackup.org/"
+ url = "https://github.com/holland-backup/holland/archive/1.2.2.tar.gz"
+
+ version('1.2.2', sha256='836337c243b2dff5ff6a3ce0b647f123ab24697a5de8ac8ae8b7839aa23dff68')
+
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-configobj@4.6.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-horovod/package.py b/var/spack/repos/builtin/packages/py-horovod/package.py
index f377b6fcda..5fadc26f44 100644
--- a/var/spack/repos/builtin/packages/py-horovod/package.py
+++ b/var/spack/repos/builtin/packages/py-horovod/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,10 @@ class PyHorovod(PythonPackage, CudaPackage):
maintainers = ['adamjstewart', 'aweits', 'tgaddair']
version('master', branch='master', submodules=True)
+ version('0.21.3', tag='v0.21.3', submodules=True)
+ version('0.21.2', tag='v0.21.2', submodules=True)
+ version('0.21.1', tag='v0.21.1', submodules=True)
+ version('0.21.0', tag='v0.21.0', submodules=True)
version('0.20.3', tag='v0.20.3', submodules=True)
version('0.20.2', tag='v0.20.2', submodules=True)
version('0.20.1', tag='v0.20.1', submodules=True)
@@ -65,12 +69,14 @@ class PyHorovod(PythonPackage, CudaPackage):
depends_on('py-cffi@1.4.0:', type=('build', 'run'), when='frameworks=pytorch')
depends_on('mxnet@1.4.1:+python', type=('build', 'link', 'run'), when='frameworks=mxnet')
depends_on('py-keras@2.0.8,2.1.2:', type=('build', 'run'), when='frameworks=keras')
- depends_on('py-h5py@2.9:', type=('build', 'run'), when='frameworks=spark')
+ depends_on('py-h5py@:2.999', type=('build', 'run'), when='frameworks=spark')
depends_on('py-numpy', type=('build', 'run'), when='frameworks=spark')
depends_on('py-petastorm@0.8.2', type=('build', 'run'), when='frameworks=spark @:0.19.1')
- depends_on('py-petastorm@0.9.0:', type=('build', 'run'), when='frameworks=spark @0.19.2:')
+ depends_on('py-petastorm@0.9.0:', type=('build', 'run'), when='frameworks=spark @0.19.2:0.21.0')
+ depends_on('py-petastorm@0.9.8:', type=('build', 'run'), when='frameworks=spark @0.21.1:')
depends_on('py-pyarrow@0.15.0:', type=('build', 'run'), when='frameworks=spark')
- depends_on('py-pyspark@2.3.2:', type=('build', 'run'), when='frameworks=spark')
+ depends_on('py-pyspark@2.3.2:', type=('build', 'run'), when='frameworks=spark ^python@:3.7')
+ depends_on('py-pyspark@3.0.0:', type=('build', 'run'), when='frameworks=spark ^python@3.8:')
depends_on('py-ray', type=('build', 'run'), when='frameworks=ray')
# Build dependencies
@@ -89,12 +95,6 @@ class PyHorovod(PythonPackage, CudaPackage):
# There does not appear to be a way to use an external Gloo installation
depends_on('cmake', type='build', when='tensor_ops=gloo')
- # Test dependencies
- depends_on('py-mock', type='test')
- depends_on('py-pytest', type='test')
- depends_on('py-pytest-forked', type='test')
- depends_on('py-parameterized', type='test', when='@0.20:')
-
conflicts('cuda_arch=none', when='+cuda',
msg='Must specify CUDA compute capabilities of your GPU, see '
'https://developer.nvidia.com/cuda-gpus')
@@ -105,6 +105,51 @@ class PyHorovod(PythonPackage, CudaPackage):
# https://github.com/horovod/horovod/pull/1835
patch('fma.patch', when='@0.19.0:0.19.1')
+ @property
+ def import_modules(self):
+ modules = [
+ 'horovod', 'horovod.runner', 'horovod.runner.util',
+ 'horovod.runner.elastic', 'horovod.runner.driver',
+ 'horovod.runner.common', 'horovod.runner.common.util',
+ 'horovod.runner.common.service', 'horovod.runner.http',
+ 'horovod.runner.task', 'horovod.common'
+ ]
+
+ if 'frameworks=tensorflow' in self.spec:
+ modules.append('horovod.tensorflow')
+
+ if 'frameworks=pytorch' in self.spec:
+ modules.extend([
+ 'horovod.torch', 'horovod.torch.mpi_lib',
+ 'horovod.torch.elastic', 'horovod.torch.mpi_lib_impl'
+ ])
+
+ if 'frameworks=mxnet' in self.spec:
+ modules.append('horovod.mxnet')
+
+ if 'frameworks=keras' in self.spec:
+ modules.extend(['horovod.keras', 'horovod._keras'])
+
+ if 'frameworks=spark' in self.spec:
+ modules.extend([
+ 'horovod.spark', 'horovod.spark.driver',
+ 'horovod.spark.common', 'horovod.spark.task'
+ ])
+
+ if 'frameworks=ray' in self.spec:
+ modules.append('horovod.ray')
+
+ if 'frameworks=tensorflow,keras' in self.spec:
+ modules.append('horovod.tensorflow.keras')
+
+ if 'frameworks=spark,pytorch' in self.spec:
+ modules.append('horovod.spark.torch')
+
+ if 'frameworks=spark,keras' in self.spec:
+ modules.append('horovod.spark.keras')
+
+ return modules
+
def setup_build_environment(self, env):
# https://github.com/horovod/horovod/blob/master/docs/install.rst#environment-variables
@@ -126,6 +171,8 @@ class PyHorovod(PythonPackage, CudaPackage):
env.set('HOROVOD_WITHOUT_PYTORCH', 1)
if 'frameworks=mxnet' in self.spec:
env.set('HOROVOD_WITH_MXNET', 1)
+ env.set('MXNET_INCLUDE_PATH', self.spec['mxnet'].prefix.include)
+ env.set('MXNET_LIBRARY_PATH', join_path(self.spec['mxnet'].libs[0]))
else:
env.set('HOROVOD_WITHOUT_MXNET', 1)
@@ -167,8 +214,6 @@ class PyHorovod(PythonPackage, CudaPackage):
env.set('HOROVOD_CPU_OPERATIONS',
self.spec.variants['tensor_ops'].value.upper())
- @run_after('install')
- @on_package_attributes(run_tests=True)
- def install_test(self):
- horovodrun = Executable(self.prefix.bin.horovodrun)
- horovodrun('--check-build')
+ def test(self):
+ super(PyHorovod, self).test()
+ run_test(self.prefix.bin.horovodrun, '--check-build')
diff --git a/var/spack/repos/builtin/packages/py-hpack/package.py b/var/spack/repos/builtin/packages/py-hpack/package.py
index 8aae974133..b4621c40ae 100644
--- a/var/spack/repos/builtin/packages/py-hpack/package.py
+++ b/var/spack/repos/builtin/packages/py-hpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyHpack(PythonPackage):
"""Pure-Python HPACK header compression"""
homepage = "https://github.com/python-hyper/hpack"
- url = "https://pypi.io/packages/source/h/hpack/hpack-4.0.0.tar.gz"
+ pypi = "hpack/hpack-4.0.0.tar.gz"
version('4.0.0', sha256='fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095')
diff --git a/var/spack/repos/builtin/packages/py-hpcbench/package.py b/var/spack/repos/builtin/packages/py-hpcbench/package.py
index 7721655824..b53c1df5d6 100644
--- a/var/spack/repos/builtin/packages/py-hpcbench/package.py
+++ b/var/spack/repos/builtin/packages/py-hpcbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyHpcbench(PythonPackage):
homepage = "https://github.com/BlueBrain/hpcbench"
- url = "https://pypi.io/packages/source/h/hpcbench/hpcbench-0.8.tar.gz"
+ pypi = "hpcbench/hpcbench-0.8.tar.gz"
git = "https://github.com/BlueBrain/hpcbench.git"
version('master', branch='master')
diff --git a/var/spack/repos/builtin/packages/py-hpccm/package.py b/var/spack/repos/builtin/packages/py-hpccm/package.py
index db041ef65a..887df9d8cf 100644
--- a/var/spack/repos/builtin/packages/py-hpccm/package.py
+++ b/var/spack/repos/builtin/packages/py-hpccm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyHpccm(PythonPackage):
tool to make it easier to generate container specification files."""
homepage = "https://github.com/NVIDIA/hpc-container-maker"
- url = "https://pypi.io/packages/source/h/hpccm/hpccm-19.2.0.tar.gz"
+ pypi = "hpccm/hpccm-19.2.0.tar.gz"
version('19.2.0', sha256='c60eec914a802b0a76596cfd5fdf7122d3f8665fcef06ef928323f5dfb5219a6')
diff --git a/var/spack/repos/builtin/packages/py-hstspreload/package.py b/var/spack/repos/builtin/packages/py-hstspreload/package.py
index f3c304395b..88cde592d3 100644
--- a/var/spack/repos/builtin/packages/py-hstspreload/package.py
+++ b/var/spack/repos/builtin/packages/py-hstspreload/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyHstspreload(PythonPackage):
"""Chromium HSTS Preload list as a Python package and updated daily"""
homepage = "https://github.com/sethmlarson/hstspreload"
- url = "https://pypi.io/packages/source/h/hstspreload/hstspreload-2020.9.23.tar.gz"
+ pypi = "hstspreload/hstspreload-2020.9.23.tar.gz"
version('2020.9.23', sha256='35822733ba67cfb4efc6cd7d1230b509f0bd42c90eeb329faf2fe679f801e40f')
diff --git a/var/spack/repos/builtin/packages/py-html2text/package.py b/var/spack/repos/builtin/packages/py-html2text/package.py
index 69895a7361..3adc4770cd 100644
--- a/var/spack/repos/builtin/packages/py-html2text/package.py
+++ b/var/spack/repos/builtin/packages/py-html2text/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyHtml2text(PythonPackage):
"""Turn HTML into equivalent Markdown-structured text."""
homepage = "https://github.com/Alir3z4/html2text/"
- url = "https://pypi.io/packages/source/h/html2text/html2text-2016.9.19.tar.gz"
+ pypi = "html2text/html2text-2016.9.19.tar.gz"
version('2016.9.19', sha256='554ef5fd6c6cf6e3e4f725a62a3e9ec86a0e4d33cd0928136d1c79dbeb7b2d55')
diff --git a/var/spack/repos/builtin/packages/py-html5lib/package.py b/var/spack/repos/builtin/packages/py-html5lib/package.py
index e9e8b485ab..ea81a8beae 100644
--- a/var/spack/repos/builtin/packages/py-html5lib/package.py
+++ b/var/spack/repos/builtin/packages/py-html5lib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyHtml5lib(PythonPackage):
"""HTML parser based on the WHATWG HTML specification."""
homepage = "https://github.com/html5lib/html5lib-python"
- url = "https://pypi.io/packages/source/h/html5lib/html5lib-0.9999999.tar.gz"
+ pypi = "html5lib/html5lib-0.9999999.tar.gz"
version('1.0.1', sha256='66cb0dcfdbbc4f9c3ba1a63fdb511ffdbd4f513b2b6d81b80cd26ce6b3fb3736')
version('0.9999999', sha256='2612a191a8d5842bfa057e41ba50bbb9dcb722419d2408c78cff4758d0754868')
diff --git a/var/spack/repos/builtin/packages/py-htmlgen/package.py b/var/spack/repos/builtin/packages/py-htmlgen/package.py
index b15fe69769..6beb4732f4 100644
--- a/var/spack/repos/builtin/packages/py-htmlgen/package.py
+++ b/var/spack/repos/builtin/packages/py-htmlgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,5 +18,3 @@ class PyHtmlgen(PythonPackage):
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-asserts@0.8.0:0.8.999', type='test')
- depends_on('py-typing', type='test')
diff --git a/var/spack/repos/builtin/packages/py-htseq/package.py b/var/spack/repos/builtin/packages/py-htseq/package.py
index 693c12840c..3468ed7aa3 100644
--- a/var/spack/repos/builtin/packages/py-htseq/package.py
+++ b/var/spack/repos/builtin/packages/py-htseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyHtseq(PythonPackage):
"""HTSeq is a Python package that provides infrastructure to process
data from high-throughput sequencing assays."""
- homepage = "http://htseq.readthedocs.io/en/release_0.9.1/overview.html"
+ homepage = "https://htseq.readthedocs.io/en/release_0.9.1/overview.html"
url = "https://github.com/simon-anders/htseq/archive/release_0.9.1.tar.gz"
version('0.11.2', sha256='dfc707effa699d5ba9034e1bb9f13c0fb4e9bc60d31ede2444aa49c7e2fc71aa')
diff --git a/var/spack/repos/builtin/packages/py-httpbin/package.py b/var/spack/repos/builtin/packages/py-httpbin/package.py
index 815f748885..912ec6529d 100644
--- a/var/spack/repos/builtin/packages/py-httpbin/package.py
+++ b/var/spack/repos/builtin/packages/py-httpbin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyHttpbin(PythonPackage):
"""HTTP Request and Response Service"""
homepage = "https://github.com/Runscope/httpbin"
- url = "https://pypi.io/packages/source/h/httpbin/httpbin-0.7.0.tar.gz"
+ pypi = "httpbin/httpbin-0.7.0.tar.gz"
version('0.7.0', sha256='cbb37790c91575f4f15757f42ad41d9f729eb227d5edbe89e4ec175486db8dfa')
version('0.5.0', sha256='79fbc5d27e4194ea908b0fa18e09a59d95d287c91667aa69bcd010342d1589b5')
diff --git a/var/spack/repos/builtin/packages/py-httpcore/package.py b/var/spack/repos/builtin/packages/py-httpcore/package.py
index a161d9a171..311aa58924 100644
--- a/var/spack/repos/builtin/packages/py-httpcore/package.py
+++ b/var/spack/repos/builtin/packages/py-httpcore/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyHttpcore(PythonPackage):
which does one thing only. Sending HTTP requests."""
homepage = "https://github.com/encode/httpcore"
- url = "https://pypi.io/packages/source/h/httpcore/httpcore-0.11.0.tar.gz"
+ pypi = "httpcore/httpcore-0.11.0.tar.gz"
version('0.11.0', sha256='35ffc735d746b83f8fc6d36f82600e56117b9e8adc65d0c0423264b6ebfef7bf')
diff --git a/var/spack/repos/builtin/packages/py-httplib2/package.py b/var/spack/repos/builtin/packages/py-httplib2/package.py
index 73877056ac..91644edf2d 100644
--- a/var/spack/repos/builtin/packages/py-httplib2/package.py
+++ b/var/spack/repos/builtin/packages/py-httplib2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ class PyHttplib2(PythonPackage):
"""A comprehensive HTTP client library."""
homepage = "https://github.com/httplib2/httplib2"
- url = "https://pypi.io/packages/source/h/httplib2/httplib2-0.13.1.tar.gz"
+ pypi = "httplib2/httplib2-0.13.1.tar.gz"
+ version('0.18.0', sha256='b0e1f3ed76c97380fe2485bc47f25235453b40ef33ca5921bb2897e257a49c4c')
version('0.13.1', sha256='6901c8c0ffcf721f9ce270ad86da37bc2b4d32b8802d4a9cec38274898a64044')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-httpretty/package.py b/var/spack/repos/builtin/packages/py-httpretty/package.py
new file mode 100644
index 0000000000..03980d7b23
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-httpretty/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyHttpretty(PythonPackage):
+ """HTTP client mock for Python."""
+
+ homepage = "https://httpretty.readthedocs.io/en/latest/"
+ pypi = "httpretty/httpretty-1.1.3.tar.gz"
+
+ version('1.1.3', sha256='229ade39175ea4324e767f29dc24e5f846fbc72bf80e1a919b2547a6574ff601')
+
+ depends_on('python@3:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-httptools/package.py b/var/spack/repos/builtin/packages/py-httptools/package.py
index 9cb1f5df43..20afa6eec4 100644
--- a/var/spack/repos/builtin/packages/py-httptools/package.py
+++ b/var/spack/repos/builtin/packages/py-httptools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyHttptools(PythonPackage):
"""httptools is a Python binding for the nodejs HTTP parser."""
homepage = "https://github.com/MagicStack/httptools"
- url = "https://pypi.io/packages/source/h/httptools/httptools-0.1.1.tar.gz"
+ pypi = "httptools/httptools-0.1.1.tar.gz"
version('0.1.1', sha256='41b573cf33f64a8f8f3400d0a7faf48e1888582b6f6e02b82b9bd4f0bf7497ce')
diff --git a/var/spack/repos/builtin/packages/py-httpx/package.py b/var/spack/repos/builtin/packages/py-httpx/package.py
index 50dca9b2fb..ec3268461f 100644
--- a/var/spack/repos/builtin/packages/py-httpx/package.py
+++ b/var/spack/repos/builtin/packages/py-httpx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyHttpx(PythonPackage):
and async APIs, and support for both HTTP/1.1 and HTTP/2."""
homepage = "https://github.com/encode/httpx"
- url = "https://pypi.io/packages/source/h/httpx/httpx-0.15.2.tar.gz"
+ pypi = "httpx/httpx-0.15.2.tar.gz"
version('0.15.2', sha256='713a2deaf96d85bbd4a1fbdf0edb27d6b4ee2c9aaeda8433042367e4b9e1628d')
version('0.11.1', sha256='7d2bfb726eeed717953d15dddb22da9c2fcf48a4d70ba1456aa0a7faeda33cf7')
diff --git a/var/spack/repos/builtin/packages/py-huggingface-hub/package.py b/var/spack/repos/builtin/packages/py-huggingface-hub/package.py
new file mode 100644
index 0000000000..e3b3870b9a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-huggingface-hub/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyHuggingfaceHub(PythonPackage):
+ """This library allows anyone to work with the Hub
+ repositories: you can clone them, create them and upload
+ your models to them."""
+
+ homepage = "https://github.com/huggingface/huggingface_hub"
+ pypi = "huggingface_hub/huggingface_hub-0.0.10.tar.gz"
+
+ version('0.0.10', sha256='556765e4c7edd2d2c4c733809bae1069dca20e10ff043870ec40d53e498efae2')
+ version('0.0.8', sha256='be5b9a7ed36437bb10a780d500154d426798ec16803ff3406f7a61107e4ebfc2')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-filelock', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-tqdm', type=('build', 'run'))
+ depends_on('py-typing-extensions', when='@0.0.10:', type=('build', 'run'))
+ depends_on('py-importlib-metadata', when='^python@:3.7.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-humanfriendly/package.py b/var/spack/repos/builtin/packages/py-humanfriendly/package.py
index d6129f4db8..60e177e46a 100644
--- a/var/spack/repos/builtin/packages/py-humanfriendly/package.py
+++ b/var/spack/repos/builtin/packages/py-humanfriendly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyHumanfriendly(PythonPackage):
"""Human friendly output for text interfaces using Python"""
homepage = "https://humanfriendly.readthedocs.io/"
- url = "https://pypi.io/packages/source/h/humanfriendly/humanfriendly-8.1.tar.gz"
+ pypi = "humanfriendly/humanfriendly-8.1.tar.gz"
version('8.2', sha256='bf52ec91244819c780341a3438d5d7b09f431d3f113a475147ac9b7b167a3d12')
version('8.1', sha256='25c2108a45cfd1e8fbe9cdb30b825d34ef5d5675c8e11e4775c9aedbfb0bdee2')
diff --git a/var/spack/repos/builtin/packages/py-humanize/package.py b/var/spack/repos/builtin/packages/py-humanize/package.py
index c83200de00..8240561773 100644
--- a/var/spack/repos/builtin/packages/py-humanize/package.py
+++ b/var/spack/repos/builtin/packages/py-humanize/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,8 @@ class PyHumanize(PythonPackage):
"""
homepage = "https://github.com/jmoiron/humanize"
- url = "https://pypi.io/packages/source/h/humanize/humanize-0.5.1.tar.gz"
+ pypi = "humanize/humanize-0.5.1.tar.gz"
version('0.5.1', sha256='a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19')
depends_on('py-setuptools', type='build')
- depends_on('py-mock', type='test')
diff --git a/var/spack/repos/builtin/packages/py-hvac/package.py b/var/spack/repos/builtin/packages/py-hvac/package.py
index 968fef45e6..6358045a0d 100644
--- a/var/spack/repos/builtin/packages/py-hvac/package.py
+++ b/var/spack/repos/builtin/packages/py-hvac/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-hyperframe/package.py b/var/spack/repos/builtin/packages/py-hyperframe/package.py
index 046a0b828c..065add01cb 100644
--- a/var/spack/repos/builtin/packages/py-hyperframe/package.py
+++ b/var/spack/repos/builtin/packages/py-hyperframe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyHyperframe(PythonPackage):
"""HTTP/2 framing layer for Python"""
homepage = "https://github.com/python-hyper/hyperframe/"
- url = "https://pypi.io/packages/source/h/hyperframe/hyperframe-6.0.0.tar.gz"
+ pypi = "hyperframe/hyperframe-6.0.0.tar.gz"
version('6.0.0', sha256='742d2a4bc3152a340a49d59f32e33ec420aa8e7054c1444ef5c7efff255842f1')
diff --git a/var/spack/repos/builtin/packages/py-hyperopt/package.py b/var/spack/repos/builtin/packages/py-hyperopt/package.py
new file mode 100644
index 0000000000..b53c15b10e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-hyperopt/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 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 PyHyperopt(PythonPackage):
+ """Hyperopt is a Python library for serial and parallel optimization over
+ awkward search spaces, which may include real-valued, discrete, and
+ conditional dimensions."""
+
+ homepage = "https://hyperopt.github.io/hyperopt/"
+ pypi = "hyperopt/hyperopt-0.2.5.tar.gz"
+
+ version('0.2.5', sha256='bc6047d50f956ae64eebcb34b1fd40f186a93e214957f20e87af2f10195295cc')
+
+ variant('spark', default=False, description="SparkTrials")
+ variant('mongo', default=False, description="MongoTrials")
+ variant('atpe', default=False, description="ATPE")
+
+ depends_on('python@2.7:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-networkx@2.2:', type=('build', 'run'))
+ depends_on('py-future', type=('build', 'run'))
+ depends_on('py-tqdm', type=('build', 'run'))
+ depends_on('py-cloudpickle', type=('build', 'run'))
+ depends_on('py-pyspark', when="+spark", type=('build', 'run'))
+ depends_on('py-pymongo', when="+mongo", type=('build', 'run'))
+ depends_on('py-scikit-learn', when="+atpe", type=('build', 'run'))
+ depends_on('py-lightgbm', when="+atpe", type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-hypothesis/package.py b/var/spack/repos/builtin/packages/py-hypothesis/package.py
index 79a39055d0..825e37e981 100644
--- a/var/spack/repos/builtin/packages/py-hypothesis/package.py
+++ b/var/spack/repos/builtin/packages/py-hypothesis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,7 @@ class PyHypothesis(PythonPackage):
"""A library for property based testing."""
homepage = "https://github.com/HypothesisWorks/hypothesis-python"
- url = "https://pypi.io/packages/source/h/hypothesis/hypothesis-4.41.2.tar.gz"
-
- import_modules = [
- 'hypothesis', 'hypothesis.searchstrategy', 'hypothesis.extra',
- 'hypothesis.utils', 'hypothesis.vendor', 'hypothesis.internal',
- 'hypothesis.internal.conjecture'
- ]
-
- # TODO: Add missing dependency required to import hypothesis.extra.django
+ pypi = "hypothesis/hypothesis-4.41.2.tar.gz"
version('5.3.0', sha256='c9fdb53fe3bf1f8e7dcca1a7dd6e430862502f088aca2903d141511212e79429')
version('4.57.1', sha256='3c4369a4b0a1348561048bcda5f1db951a1b8e2a514ea8e8c70d36e656bf6fa0')
diff --git a/var/spack/repos/builtin/packages/py-ibm-cloud-sdk-core/package.py b/var/spack/repos/builtin/packages/py-ibm-cloud-sdk-core/package.py
new file mode 100644
index 0000000000..5b8923a29c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ibm-cloud-sdk-core/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyIbmCloudSdkCore(PythonPackage):
+ """This project contains core functionality required by
+ Python code generated by the IBM Cloud OpenAPI SDK
+ Generator (openapi-sdkgen)."""
+
+ homepage = "https://github.com/IBM/python-sdk-core"
+ pypi = "ibm-cloud-sdk-core/ibm-cloud-sdk-core-3.9.0.tar.gz"
+
+ version('3.10.0', sha256='ab9520be99066ec41a24e31ac653c28953adc8fc349f0fa53a598e1802a79cd6')
+ version('3.9.0', sha256='51403f33003254d83d5028d8cebd7617f5cca82af85b6e9c4ad553eccd079dbf')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-requests@2.20:2.999', type=('build', 'run'))
+ depends_on('py-python-dateutil@2.5.3:2.999', type=('build', 'run'))
+ depends_on('py-pyjwt@2.0.1:2.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-ibm-watson/package.py b/var/spack/repos/builtin/packages/py-ibm-watson/package.py
new file mode 100644
index 0000000000..8e023c2c32
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ibm-watson/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyIbmWatson(PythonPackage):
+ """Python client library to quickly get started with
+ the various Watson APIs services."""
+
+ homepage = "https://github.com/watson-developer-cloud/python-sdk"
+ pypi = "ibm-watson/ibm-watson-5.1.0.tar.gz"
+
+ version('5.1.0', sha256='faea1e519f6d846a5ca9e03aefc9f894ff8da1eed9117ace6a6fa8f218ba0bc7')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-requests@2.0:2.999', type=('build', 'run'))
+ depends_on('py-python-dateutil@2.5.3:', type=('build', 'run'))
+ depends_on('py-websocket-client@0.48.0', type=('build', 'run'))
+ depends_on('py-ibm-cloud-sdk-core@3.3.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-ics/package.py b/var/spack/repos/builtin/packages/py-ics/package.py
index c2c4a71346..db0df6608f 100644
--- a/var/spack/repos/builtin/packages/py-ics/package.py
+++ b/var/spack/repos/builtin/packages/py-ics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-identify/package.py b/var/spack/repos/builtin/packages/py-identify/package.py
index 3ffafe94d7..210a1550b7 100644
--- a/var/spack/repos/builtin/packages/py-identify/package.py
+++ b/var/spack/repos/builtin/packages/py-identify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyIdentify(PythonPackage):
standardized tags identifying what the file is."""
homepage = "https://github.com/chriskuehl/identify"
- url = "https://pypi.io/packages/source/i/identify/identify-1.4.7.tar.gz"
+ pypi = "identify/identify-1.4.7.tar.gz"
version('1.4.7', sha256='d8919589bd2a5f99c66302fec0ef9027b12ae150b0b0213999ad3f695fc7296e')
diff --git a/var/spack/repos/builtin/packages/py-idna-ssl/package.py b/var/spack/repos/builtin/packages/py-idna-ssl/package.py
index 273cdd9bc5..c79d2b46b6 100644
--- a/var/spack/repos/builtin/packages/py-idna-ssl/package.py
+++ b/var/spack/repos/builtin/packages/py-idna-ssl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-idna/package.py b/var/spack/repos/builtin/packages/py-idna/package.py
index 95498e38a6..619d8894b9 100644
--- a/var/spack/repos/builtin/packages/py-idna/package.py
+++ b/var/spack/repos/builtin/packages/py-idna/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyIdna(PythonPackage):
"""Internationalized Domain Names for Python (IDNA 2008 and UTS #46) """
homepage = "https://github.com/kjd/idna"
- url = "https://pypi.io/packages/source/i/idna/idna-2.8.tar.gz"
+ pypi = "idna/idna-2.8.tar.gz"
version('2.8', sha256='c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407')
version('2.5', sha256='3cb5ce08046c4e3a560fc02f138d0ac63e00f8ce5901a56b32ec8b7994082aab')
diff --git a/var/spack/repos/builtin/packages/py-illumina-utils/package.py b/var/spack/repos/builtin/packages/py-illumina-utils/package.py
index 081b14163a..f978230888 100644
--- a/var/spack/repos/builtin/packages/py-illumina-utils/package.py
+++ b/var/spack/repos/builtin/packages/py-illumina-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyIlluminaUtils(PythonPackage):
data (for CASAVA 1.8+)."""
homepage = "https://github.com/meren/illumina-utils"
- url = "https://pypi.io/packages/source/i/illumina-utils/illumina-utils-2.2.tar.gz"
+ pypi = "illumina-utils/illumina-utils-2.2.tar.gz"
version('2.3', sha256='0e8407b91d530d9a53d8ec3c83e60f25e7f8f80d06ce17b8e4f57a02d3262441')
version('2.2', sha256='6039c72d077c101710fe4fdbfeaa30caa1c3c2c84ffa6295456927d82def8e6d')
diff --git a/var/spack/repos/builtin/packages/py-ilmbase/package.py b/var/spack/repos/builtin/packages/py-ilmbase/package.py
new file mode 100644
index 0000000000..97e5246249
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ilmbase/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyIlmbase(AutotoolsPackage):
+ """The PyIlmBase libraries provides python bindings for the IlmBase libraries."""
+
+ homepage = "https://github.com/AcademySoftwareFoundation/openexr/tree/v2.3.0/PyIlmBase"
+ url = "https://github.com/AcademySoftwareFoundation/openexr/releases/download/v2.3.0/pyilmbase-2.3.0.tar.gz"
+
+ version('2.3.0', sha256='9c898bb16e7bc916c82bebdf32c343c0f2878fc3eacbafa49937e78f2079a425')
+
+ depends_on('ilmbase')
+ depends_on('boost+python')
+
+ # https://github.com/AcademySoftwareFoundation/openexr/issues/336
+ parallel = False
+
+ def configure_args(self):
+ spec = self.spec
+
+ args = [
+ '--with-boost-python-libname=boost_python{0}'.format(
+ spec['python'].version.up_to(2).joined)
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/py-imageio-ffmpeg/package.py b/var/spack/repos/builtin/packages/py-imageio-ffmpeg/package.py
new file mode 100644
index 0000000000..b7c51db642
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-imageio-ffmpeg/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyImageioFfmpeg(PythonPackage):
+ """The purpose of this project is to provide a simple and
+ reliable ffmpeg wrapper for working with video files. It
+ implements two simple generator functions for reading and
+ writing data from/to ffmpeg, which reliably terminate the
+ ffmpeg process when done. It also takes care of publishing
+ platform-specific wheels that include the binary ffmpeg
+ executables."""
+
+ homepage = "https://github.com/imageio/imageio-ffmpeg"
+ pypi = "imageio-ffmpeg/imageio-ffmpeg-0.4.3.tar.gz"
+
+ version('0.4.3', sha256='f826260a3207b872f1a4ba87ec0c8e02c00afba4fd03348a59049bdd8215841e')
+
+ depends_on('python@3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('ffmpeg', type='run')
diff --git a/var/spack/repos/builtin/packages/py-imageio/package.py b/var/spack/repos/builtin/packages/py-imageio/package.py
index 8dd09b1f3f..b69b0e3ae4 100644
--- a/var/spack/repos/builtin/packages/py-imageio/package.py
+++ b/var/spack/repos/builtin/packages/py-imageio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,10 @@ class PyImageio(PythonPackage):
images, video, volumetric data, and scientific formats. It is
cross-platform, runs on Python 2.7 and 3.4+, and is easy to install."""
- homepage = "http://imageio.github.io/"
- url = "https://pypi.io/packages/source/i/imageio/imageio-2.3.0.tar.gz"
+ homepage = "https://imageio.github.io/"
+ pypi = "imageio/imageio-2.3.0.tar.gz"
+ version('2.9.0', sha256='52ddbaeca2dccf53ba2d6dec5676ca7bc3b2403ef8b37f7da78b7654bb3e10f0')
version('2.5.0', sha256='42e65aadfc3d57a1043615c92bdf6319b67589e49a0aae2b985b82144aceacad')
version('2.4.1', sha256='16b8077bc8a5fa7a58b3e744f7ecbb156d8c088132df31e0f4f546c98de3514a')
version('2.3.0', sha256='c4fd5183c342d47fdc2e98552d14e3f24386021bbc3efedd1e3b579d7d249c07')
@@ -24,6 +25,7 @@ class PyImageio(PythonPackage):
# Fix for python 2 if needed.
depends_on('py-numpy', type=('build', 'run'))
depends_on('pil', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@:2.5.0')
+ depends_on('python@3.5:', type=('build', 'run'), when='@2.9.0:')
depends_on('py-setuptools', type='build')
depends_on('ffmpeg', type='run')
diff --git a/var/spack/repos/builtin/packages/py-imagesize/package.py b/var/spack/repos/builtin/packages/py-imagesize/package.py
index e9f2033413..78b4fe8477 100644
--- a/var/spack/repos/builtin/packages/py-imagesize/package.py
+++ b/var/spack/repos/builtin/packages/py-imagesize/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,7 @@ class PyImagesize(PythonPackage):
JPEG2000, and GIF image file formats."""
homepage = "https://github.com/shibukawa/imagesize_py"
- url = "https://pypi.io/packages/source/i/imagesize/imagesize-0.7.1.tar.gz"
-
- import_modules = ['imagesize']
+ pypi = "imagesize/imagesize-0.7.1.tar.gz"
version('1.1.0', sha256='f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5')
version('0.7.1', sha256='0ab2c62b87987e3252f89d30b7cedbec12a01af9274af9ffa48108f2c13c6062')
diff --git a/var/spack/repos/builtin/packages/py-imgaug/package.py b/var/spack/repos/builtin/packages/py-imgaug/package.py
new file mode 100644
index 0000000000..461f17bdd2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-imgaug/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyImgaug(PythonPackage):
+ """A library for image augmentation in machine learning experiments,
+ particularly convolutional neural networks. Supports the augmentation of
+ images, keypoints/landmarks, bounding boxes, heatmaps and segmentation maps
+ in a variety of different ways."""
+
+ homepage = "https://github.com/aleju/imgaug"
+ pypi = "imgaug/imgaug-0.3.0.tar.gz"
+
+ version('0.4.0', sha256='46bab63ed38f8980630ff721a09ca2281b7dbd4d8c11258818b6ebcc69ea46c7')
+ version('0.3.0', sha256='e1354d41921f1b306b50c5141b4870f17e81b531cae2f5c3093da9dc4dcb3cf4')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-imageio', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-numpy@1.15:', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-shapely', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-scikit-image@0.14.2:', type=('build', 'run'))
+ depends_on('pil', type=('build', 'run'))
+ depends_on('opencv+python2', when='^python@2.0:2.999', type=('build', 'run'))
+ depends_on('opencv+python3', when='^python@3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-iminuit/package.py b/var/spack/repos/builtin/packages/py-iminuit/package.py
index e9ec1b73bf..787cf7e2fe 100644
--- a/var/spack/repos/builtin/packages/py-iminuit/package.py
+++ b/var/spack/repos/builtin/packages/py-iminuit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,18 +9,13 @@ from spack import *
class PyIminuit(PythonPackage):
"""Interactive IPython-Friendly Minimizer based on SEAL Minuit2."""
- homepage = "https://pypi.python.org/pypi/iminuit"
- url = "https://pypi.io/packages/source/i/iminuit/iminuit-1.2.tar.gz"
+ pypi = "iminuit/iminuit-1.2.tar.gz"
+ version('1.3.7', sha256='9173e52cc4a0c0bda13ebfb862f9b074dc5de345b23cb15c1150863aafd8a26c')
version('1.3.6', sha256='d79a197f305d4708a0e3e52b0a6748c1a6997360d2fbdfd09c022995a6963b5e')
version('1.2', sha256='7651105fc3f186cfb5742f075ffebcc5088bf7797d8ed124c00977eebe0d1c64')
# Required dependencies
depends_on('py-setuptools', type='build')
- depends_on('py-numpy', type=('build', 'run'), when='@1.3:')
-
- # Optional dependencies
- depends_on('py-matplotlib', type='test', when='@1.3:')
- depends_on('py-cython', type='test', when='@1.3:')
- depends_on('py-pytest', type='test', when='@1.3:')
- depends_on('py-scipy', type='test', when='@1.3:')
+ depends_on('py-numpy', type=('build', 'run'), when='@1.3:1.3.6')
+ depends_on('py-numpy@1.11.3:', type=('build', 'run'), when='@1.3.7:')
diff --git a/var/spack/repos/builtin/packages/py-immutables/package.py b/var/spack/repos/builtin/packages/py-immutables/package.py
index 24a92efc3c..85199833fd 100644
--- a/var/spack/repos/builtin/packages/py-immutables/package.py
+++ b/var/spack/repos/builtin/packages/py-immutables/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyImmutables(PythonPackage):
"""An immutable mapping type for Python."""
homepage = "https://github.com/MagicStack/immutables"
- url = "https://pypi.io/packages/source/i/immutables/immutables-0.14.tar.gz"
+ pypi = "immutables/immutables-0.14.tar.gz"
version('0.14', sha256='a0a1cc238b678455145bae291d8426f732f5255537ed6a5b7645949704c70a78')
diff --git a/var/spack/repos/builtin/packages/py-importlib-metadata/package.py b/var/spack/repos/builtin/packages/py-importlib-metadata/package.py
index f22a812605..7df0c6862a 100644
--- a/var/spack/repos/builtin/packages/py-importlib-metadata/package.py
+++ b/var/spack/repos/builtin/packages/py-importlib-metadata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,20 +10,24 @@ class PyImportlibMetadata(PythonPackage):
"""Read metadata from Python packages."""
homepage = "https://importlib-metadata.readthedocs.io/"
- url = "https://pypi.io/packages/source/i/importlib_metadata/importlib_metadata-1.2.0.tar.gz"
+ pypi = "importlib_metadata/importlib_metadata-1.2.0.tar.gz"
+ version('4.6.1', sha256='079ada16b7fc30dfbb5d13399a5113110dab1aa7c2bc62f66af75f0b717c8cac')
+ version('3.10.1', sha256='c9356b657de65c53744046fa8f7358afe0714a1af7d570c00c3835c2d724a7c1')
+ version('3.10.0', sha256='c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a')
version('2.0.0', sha256='77a540690e24b0305878c37ffd421785a6f7e53c8b5720d211b211de8d0e95da')
version('1.2.0', sha256='41e688146d000891f32b1669e8573c57e39e5060e7f5f647aa617cd9a9568278')
version('0.23', sha256='aa18d7378b00b40847790e7c27e11673d7fed219354109d0e7b9e5b25dc3ad26')
version('0.19', sha256='23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8')
version('0.18', sha256='cb6ee23b46173539939964df59d3d72c3e0c1b5d54b84f1d8a7e912fe43612db')
+ depends_on('python@3.6:', type=('build', 'run'), when='@3:')
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-setuptools-scm', type='build')
+ depends_on('py-setuptools-scm@3.4.1:+toml', type='build', when='@3:')
depends_on('py-zipp@0.5:', type=('build', 'run'))
depends_on('py-pathlib2', when='^python@:2', type=('build', 'run'))
depends_on('py-contextlib2', when='^python@:2', type=('build', 'run'))
depends_on('py-configparser@3.5:', when='^python@:2', type=('build', 'run'))
- depends_on('py-importlib-resources', when='^python@:3.6', type='test')
- depends_on('py-packaging', type='test')
+ depends_on('py-typing-extensions@3.6.4:', type=('build', 'run'), when='@3: ^python@:3.7.999')
diff --git a/var/spack/repos/builtin/packages/py-importlib-resources/package.py b/var/spack/repos/builtin/packages/py-importlib-resources/package.py
index 4c0a6e1243..9f80b56bca 100644
--- a/var/spack/repos/builtin/packages/py-importlib-resources/package.py
+++ b/var/spack/repos/builtin/packages/py-importlib-resources/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,14 +9,17 @@ from spack import *
class PyImportlibResources(PythonPackage):
"""Read resources from Python packages"""
- homepage = "https://pypi.org/project/importlib_resources/"
- url = "https://pypi.io/packages/source/i/importlib_resources/importlib_resources-1.0.2.tar.gz"
+ pypi = "importlib_resources/importlib_resources-1.0.2.tar.gz"
+ version('5.1.0', sha256='bfdad047bce441405a49cf8eb48ddce5e56c696e185f59147a8b79e75e9e6380')
version('1.0.2', sha256='d3279fd0f6f847cced9f7acc19bd3e5df54d34f93a2e7bb5f238f81545787078')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('python@3.6:', when='@5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-wheel', type='build')
+ depends_on('py-setuptools-scm@3.4.1:+toml', when='@5:', type='build')
+ depends_on('py-zipp@0.4:', when='@5:', type=('build', 'run'))
+ depends_on('py-wheel', when='@1.0.2', type='build')
depends_on('py-pathlib2', 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-importlib/package.py b/var/spack/repos/builtin/packages/py-importlib/package.py
index 723eb00c05..e56a2ee537 100644
--- a/var/spack/repos/builtin/packages/py-importlib/package.py
+++ b/var/spack/repos/builtin/packages/py-importlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,8 @@ class PyImportlib(PythonPackage):
"""Packaging for importlib from Python 2.7"""
homepage = "https://github.com/brettcannon/importlib"
- url = "https://pypi.io/packages/source/i/importlib/importlib-1.0.4.zip"
+ pypi = "importlib/importlib-1.0.4.zip"
version('1.0.4', sha256='b6ee7066fea66e35f8d0acee24d98006de1a0a8a94a8ce6efe73a9a23c8d9826')
+
+ depends_on('python@:2.6.999,3.0.0:3.0.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-inference-schema/package.py b/var/spack/repos/builtin/packages/py-inference-schema/package.py
index 5d9795145e..b807709689 100644
--- a/var/spack/repos/builtin/packages/py-inference-schema/package.py
+++ b/var/spack/repos/builtin/packages/py-inference-schema/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-inheritance/package.py b/var/spack/repos/builtin/packages/py-inheritance/package.py
index 1620794a7b..f6bcc6ea3a 100644
--- a/var/spack/repos/builtin/packages/py-inheritance/package.py
+++ b/var/spack/repos/builtin/packages/py-inheritance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-iniconfig/package.py b/var/spack/repos/builtin/packages/py-iniconfig/package.py
new file mode 100644
index 0000000000..e658aba1d6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-iniconfig/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyIniconfig(PythonPackage):
+ """
+ iniconfig: brain-dead simple parsing of ini files
+ """
+
+ pypi = "iniconfig/iniconfig-1.1.1.tar.gz"
+
+ version('1.1.1', sha256='bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-iniparse/package.py b/var/spack/repos/builtin/packages/py-iniparse/package.py
index f8083f0c5f..945d1a030a 100644
--- a/var/spack/repos/builtin/packages/py-iniparse/package.py
+++ b/var/spack/repos/builtin/packages/py-iniparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyIniparse(PythonPackage):
"""Accessing and Modifying INI files"""
homepage = "https://github.com/candlepin/python-iniparse"
- url = "https://pypi.io/packages/source/i/iniparse/iniparse-0.4.tar.gz"
+ pypi = "iniparse/iniparse-0.4.tar.gz"
git = "https://github.com/candlepin/python-iniparse.git"
version('master', branch='master')
diff --git a/var/spack/repos/builtin/packages/py-intel-openmp/package.py b/var/spack/repos/builtin/packages/py-intel-openmp/package.py
new file mode 100644
index 0000000000..dfa02c55d8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-intel-openmp/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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)
+
+import sys
+
+from spack import *
+
+
+class PyIntelOpenmp(Package):
+ """Intel OpenMP* Runtime Library x86_64 dynamic libraries
+ for macOS*. Intel OpenMP* Runtime Library provides OpenMP
+ API specification support in Intel C Compiler, Intel C++
+ Compiler and Intel Fortran Compiler. It helps to improve
+ performance by creating multithreaded software using shared
+ memory and running on multi-core processor systems."""
+
+ homepage = "https://pypi.org/project/intel-openmp/"
+
+ if sys.platform.startswith('linux'):
+ version('2021.1.2',
+ url='https://pypi.io/packages/py2.py3/i/intel-openmp/intel_openmp-2021.1.2-py2.py3-none-manylinux1_x86_64.whl',
+ sha256='8796797ecae99f39b27065e4a7f1f435e2ca08afba654ca57a77a2717f864dca',
+ expand=False)
+
+ if sys.platform.startswith('darwin'):
+ version('2021.1.2',
+ url='https://pypi.io/packages/py2.py3/i/intel-openmp/intel_openmp-2021.1.2-py2.py3-none-macosx_10_15_x86_64.whl',
+ sha256='2af893738b4b06cb0183746f2992169111031340b59c84a0fd4dec1ed66b80f2',
+ expand=False)
+
+ depends_on('py-pip', type='build')
+
+ def install(self, spec, prefix):
+ pip = which('pip')
+ pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-intervaltree/package.py b/var/spack/repos/builtin/packages/py-intervaltree/package.py
index f5d4501dd7..333d3de4e7 100644
--- a/var/spack/repos/builtin/packages/py-intervaltree/package.py
+++ b/var/spack/repos/builtin/packages/py-intervaltree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,5 +15,4 @@ class PyIntervaltree(PythonPackage):
version('3.0.2', sha256='e8ab75b66077f2e5fb85ac56cb6df834689edb048d38601d53d8867cce3b77d1')
depends_on('py-sortedcontainers@2:2.999', type=('build', 'run'))
- depends_on('py-pytest', type='test')
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 29414d5fbc..52151c2663 100644
--- a/var/spack/repos/builtin/packages/py-invoke/package.py
+++ b/var/spack/repos/builtin/packages/py-invoke/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyInvoke(PythonPackage):
"""Pythonic task execution"""
- homepage = "http://www.pyinvoke.org/"
- url = "https://pypi.io/packages/source/i/invoke/invoke-1.4.1.tar.gz"
+ homepage = "https://www.pyinvoke.org/"
+ pypi = "invoke/invoke-1.4.1.tar.gz"
version('1.4.1', sha256='de3f23bfe669e3db1085789fd859eb8ca8e0c5d9c20811e2407fa042e8a5e15d')
version('1.2.0', sha256='dc492f8f17a0746e92081aec3f86ae0b4750bf41607ea2ad87e5a7b5705121b7')
diff --git a/var/spack/repos/builtin/packages/py-iocapture/package.py b/var/spack/repos/builtin/packages/py-iocapture/package.py
new file mode 100644
index 0000000000..59e7ac23f7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-iocapture/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyIocapture(PythonPackage):
+ """Capture stdout, stderr easily."""
+
+ homepage = "https://github.com/oinume/iocapture"
+ pypi = "iocapture/iocapture-0.1.2.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('0.1.2', sha256='86670e1808bcdcd4f70112f43da72ae766f04cd8311d1071ce6e0e0a72e37ee8')
+
+ depends_on('python@2.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-ipaddress/package.py b/var/spack/repos/builtin/packages/py-ipaddress/package.py
index 142bddd5fe..4b8aa5dc38 100644
--- a/var/spack/repos/builtin/packages/py-ipaddress/package.py
+++ b/var/spack/repos/builtin/packages/py-ipaddress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyIpaddress(PythonPackage):
"""Python 3.3's ipaddress for older Python versions"""
homepage = "https://github.com/phihag/ipaddress"
- url = "https://pypi.io/packages/source/i/ipaddress/ipaddress-1.0.23.tar.gz"
+ pypi = "ipaddress/ipaddress-1.0.23.tar.gz"
version('1.0.23', sha256='b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2')
version('1.0.22', sha256='b146c751ea45cad6188dd6cf2d9b757f6f4f8d6ffb96a023e6f2e26eea02a72c')
diff --git a/var/spack/repos/builtin/packages/py-ipdb/package.py b/var/spack/repos/builtin/packages/py-ipdb/package.py
index 81c4bfb705..f47c041be4 100644
--- a/var/spack/repos/builtin/packages/py-ipdb/package.py
+++ b/var/spack/repos/builtin/packages/py-ipdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyIpdb(PythonPackage):
"""ipdb is the iPython debugger and has many additional features, including
a better interactive debugging experience via colorized output."""
- homepage = "https://pypi.python.org/pypi/ipdb"
- url = "https://pypi.io/packages/source/i/ipdb/ipdb-0.10.1.tar.gz"
+ pypi = "ipdb/ipdb-0.10.1.tar.gz"
version('0.10.1', sha256='bb2948e726dbfb2687f4a582088b3f170b2556ba8e54ae1231c783c97e99ec87')
diff --git a/var/spack/repos/builtin/packages/py-ipykernel/package.py b/var/spack/repos/builtin/packages/py-ipykernel/package.py
index 1428f7d804..62eb5ad22e 100644
--- a/var/spack/repos/builtin/packages/py-ipykernel/package.py
+++ b/var/spack/repos/builtin/packages/py-ipykernel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,9 +7,10 @@
class PyIpykernel(PythonPackage):
"""IPython Kernel for Jupyter"""
- homepage = "https://pypi.python.org/pypi/ipykernel"
- url = "https://pypi.io/packages/source/i/ipykernel/ipykernel-5.3.4.tar.gz"
+ pypi = "ipykernel/ipykernel-5.3.4.tar.gz"
+ version('6.2.0', sha256='4439459f171d77f35b7f7e72dace5d7c2dd10a5c9e2c22b173ad9048fbfe7656')
+ version('5.5.5', sha256='e976751336b51082a89fc2099fb7f96ef20f535837c398df6eab1283c2070884')
version('5.3.4', sha256='9b2652af1607986a1b231c62302d070bc0534f564c393a5d9d130db9abbbe89d')
version('5.1.1', sha256='f0e962052718068ad3b1d8bcc703794660858f58803c3798628817f492a8769c')
version('5.1.0', sha256='0fc0bf97920d454102168ec2008620066878848fcfca06c22b669696212e292f')
@@ -28,18 +29,22 @@ class PyIpykernel(PythonPackage):
depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
depends_on('python@3.4:', when='@5.0:', type=('build', 'run'))
depends_on('python@3.5:', when='@5.2:', type=('build', 'run'))
+ depends_on('python@3.7:', when='@6.0:', type=('build', 'run'))
depends_on('py-setuptools', type='build', when='@5:')
- depends_on('py-ipython@4.0:', when='@:4.999', type=('build', 'run'))
- depends_on('py-ipython@5.0:', when='@5.0.0:', type=('build', 'run'))
+ depends_on('py-importlib-metadata@:4', when='@6:^python@:3.7', type=('build', 'run'))
+ depends_on('py-argcomplete@1.12.3:', when='@6:^python@:3.7', type=('build', 'run'))
+ depends_on('py-debugpy@1.0:1.999', when='@6:', type=('build', 'run'))
+ depends_on('py-ipython@4.0:', when='@:4', type=('build', 'run'))
+ depends_on('py-ipython@5.0:', when='@5', type=('build', 'run'))
+ depends_on('py-ipython@7.23.1:7.999', when='@6:', type=('build', 'run'))
depends_on('py-traitlets@4.1.0:', type=('build', 'run'))
+ depends_on('py-traitlets@4.1.0:5', when='@6:', type=('build', 'run'))
depends_on('py-jupyter-client', type=('build', 'run'))
- depends_on('py-tornado@4.0:', when='@:4.999', type=('build', 'run'))
- depends_on('py-tornado@4.2:', when='@5.0.0:', type=('build', 'run'))
+ depends_on('py-jupyter-client@:7', when='@6:', type=('build', 'run'))
+ depends_on('py-tornado@4.0:', when='@:4', type=('build', 'run'))
+ depends_on('py-tornado@4.2:', when='@5', type=('build', 'run'))
+ depends_on('py-tornado@4.2:6', when='@6:', type=('build', 'run'))
depends_on('py-appnope', when='platform=darwin', type=('build', 'run'))
- depends_on('py-pytest@:5.3.3,5.3.5:', type='test')
- depends_on('py-pytest-cov', type='test')
- # depends_on('py-flaky', type='test')
- depends_on('py-nose', type='test')
phases = ['build', 'install', 'install_data']
diff --git a/var/spack/repos/builtin/packages/py-ipyparallel/package.py b/var/spack/repos/builtin/packages/py-ipyparallel/package.py
index f208ac646a..9644a11939 100644
--- a/var/spack/repos/builtin/packages/py-ipyparallel/package.py
+++ b/var/spack/repos/builtin/packages/py-ipyparallel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-ipython-cluster-helper/package.py b/var/spack/repos/builtin/packages/py-ipython-cluster-helper/package.py
index b2555cabe2..02f2a1e563 100644
--- a/var/spack/repos/builtin/packages/py-ipython-cluster-helper/package.py
+++ b/var/spack/repos/builtin/packages/py-ipython-cluster-helper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-ipython-genutils/package.py b/var/spack/repos/builtin/packages/py-ipython-genutils/package.py
index b6a5d66085..b91e3fd3e2 100644
--- a/var/spack/repos/builtin/packages/py-ipython-genutils/package.py
+++ b/var/spack/repos/builtin/packages/py-ipython-genutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyIpythonGenutils(PythonPackage):
"""Vestigial utilities from IPython"""
- homepage = "https://pypi.python.org/pypi/ipython_genutils"
- url = "https://pypi.io/packages/source/i/ipython_genutils/ipython_genutils-0.1.0.tar.gz"
+ pypi = "ipython_genutils/ipython_genutils-0.1.0.tar.gz"
version('0.2.0', sha256='eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8')
version('0.1.0', sha256='3a0624a251a26463c9dfa0ffa635ec51c4265380980d9a50d65611c3c2bd82a6')
diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py
index 2f10a7dddf..ad8e73c3b4 100644
--- a/var/spack/repos/builtin/packages/py-ipython/package.py
+++ b/var/spack/repos/builtin/packages/py-ipython/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,22 @@ class PyIpython(PythonPackage):
"""IPython provides a rich toolkit to help you make the most out of using
Python interactively."""
- homepage = "https://pypi.python.org/pypi/ipython"
- url = "https://pypi.io/packages/source/i/ipython/ipython-7.18.1.tar.gz"
+ pypi = "ipython/ipython-7.18.1.tar.gz"
+ # 'IPython.kernel' is deprecated and fails to import, leave out of 'import_modules'
+ # to ensure that import tests pass.
+ import_modules = [
+ 'IPython', 'IPython.core', 'IPython.core.tests', 'IPython.core.magics',
+ 'IPython.sphinxext', 'IPython.terminal',
+ 'IPython.terminal.pt_inputhooks', 'IPython.terminal.tests',
+ 'IPython.utils', 'IPython.utils.tests', 'IPython.extensions',
+ 'IPython.extensions.tests', 'IPython.testing', 'IPython.testing.tests',
+ 'IPython.testing.plugin', 'IPython.lib', 'IPython.lib.tests',
+ 'IPython.external', 'IPython.external.decorators'
+ ]
+
+ version('7.26.0', sha256='0cff04bb042800129348701f7bd68a430a844e8fb193979c08f6c99f28bb735e')
+ version('7.21.0', sha256='04323f72d5b85b606330b6d7e2dc8d2683ad46c3905e955aa96ecc7a99388e70')
version('7.18.1', sha256='a331e78086001931de9424940699691ad49dfb457cea31f5471eae7b78222d5e')
version('7.5.0', sha256='e840810029224b56cd0d9e7719dc3b39cf84d577f8ac686547c8ba7a06eeab26')
version('7.3.0', sha256='06de667a9e406924f97781bda22d5d76bfb39762b678762d86a466e63f65dc39')
@@ -25,25 +38,23 @@ class PyIpython(PythonPackage):
depends_on('python@3.3:', type=('build', 'run'), when='@6:')
depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
depends_on('py-setuptools@18.5:', type='run', when='@4.1:')
- depends_on('py-jedi@0.10:', type=('build', 'run'), when='@7.5.0:')
+ depends_on('py-jedi@0.10:', type=('build', 'run'), when='@7.5:7.17,7.19')
+ depends_on('py-jedi@0.16:', type=('build', 'run'), when='@7.18,7.20:')
depends_on('py-decorator', type=('build', 'run'))
depends_on('py-pickleshare', type=('build', 'run'))
depends_on('py-traitlets@4.2:', type=('build', 'run'))
depends_on('py-prompt-toolkit@1.0.4:1.999', when='@:7.0.0', type=('build', 'run'))
- depends_on('py-prompt-toolkit@2.0.0:2.999', when='@7.0.0:', type=('build', 'run'))
+ depends_on('py-prompt-toolkit@2.0.0:2.999', when='@7.0.0:7.5.0', type=('build', 'run'))
depends_on('py-prompt-toolkit@2.0.0:2.0.999', when='@7.5.0', type=('build', 'run'))
- depends_on('py-prompt-toolkit@2.0.0:2.999,3.0.2:3.0.999', when='@7.18:', type=('build', 'run'))
+ depends_on('py-prompt-toolkit@3.0.2:3.0.999', when='@7.18:7.25', type=('build', 'run'))
+ depends_on('py-prompt-toolkit@2.0.0:2.999,3.0.2:3.0.999', when='@7.26:', type=('build', 'run'))
depends_on('py-pygments', type=('build', 'run'))
- depends_on('py-backcall', type=('build', 'run'), when='@7.5.0:')
+ depends_on('py-backcall', type=('build', 'run'), when='@7.3.0:')
+ depends_on('py-matplotlib-inline', when='@7.23:', type=('build', 'run'))
depends_on('py-pexpect', type=('build', 'run'))
depends_on('py-pexpect@4.3:', type=('build', 'run'), when='@7.18:')
depends_on('py-appnope', type=('build', 'run'), when='platform=darwin')
+ depends_on('py-colorama', when='platform=win32', type=('build', 'run'))
depends_on('py-backports-shutil-get-terminal-size', type=('build', 'run'), when="^python@:3.2")
depends_on('py-pathlib2', type=('build', 'run'), when="^python@:3.3")
depends_on('py-simplegeneric@0.8:', type=('build', 'run'), when='@:7.0.0')
- depends_on('py-nose@0.10.1:', type='test')
- depends_on('py-requests', type='test')
- depends_on('py-testpath', type='test')
- depends_on('py-nbformat', type='test')
- depends_on('py-ipykernel', type='test')
- depends_on('py-numpy@1.14:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-ipywidgets/package.py b/var/spack/repos/builtin/packages/py-ipywidgets/package.py
index 11b0989069..3936363119 100644
--- a/var/spack/repos/builtin/packages/py-ipywidgets/package.py
+++ b/var/spack/repos/builtin/packages/py-ipywidgets/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -30,5 +30,3 @@ class PyIpywidgets(PythonPackage):
when='@7.4.2')
depends_on('py-widgetsnbextension@3.5.0:3.5.999', type=('build', 'run'),
when='@7.5.1')
- depends_on('py-mock', type='test', when='^python@2.7:2.8')
- depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-irpf90/package.py b/var/spack/repos/builtin/packages/py-irpf90/package.py
index ffab335699..a4e6d6e9ce 100644
--- a/var/spack/repos/builtin/packages/py-irpf90/package.py
+++ b/var/spack/repos/builtin/packages/py-irpf90/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyIrpf90(PythonPackage):
performance computing."""
homepage = "http://irpf90.ups-tlse.fr"
- url = "https://pypi.io/packages/source/i/irpf90/irpf90-1.7.7.tar.gz"
+ pypi = "irpf90/irpf90-1.7.7.tar.gz"
maintainers = ['scemama']
diff --git a/var/spack/repos/builtin/packages/py-iso8601/package.py b/var/spack/repos/builtin/packages/py-iso8601/package.py
new file mode 100644
index 0000000000..eef351de1b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-iso8601/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyIso8601(PythonPackage):
+ """Simple module to parse ISO 8601 dates"""
+
+ homepage = "https://pyiso8601.readthedocs.io/en/latest/"
+ pypi = "iso8601/iso8601-0.1.14.tar.gz"
+
+ version('0.1.14', sha256='8aafd56fa0290496c5edbb13c311f78fa3a241f0853540da09d9363eae3ebd79')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-isodate/package.py b/var/spack/repos/builtin/packages/py-isodate/package.py
index bac6f2b44d..e2bf62fad2 100644
--- a/var/spack/repos/builtin/packages/py-isodate/package.py
+++ b/var/spack/repos/builtin/packages/py-isodate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyIsodate(PythonPackage):
there, then it is treated as non existent, and not as an allowed option."""
homepage = "https://github.com/gweis/isodate/"
- url = "https://pypi.io/packages/source/i/isodate/isodate-0.6.0.tar.gz"
+ pypi = "isodate/isodate-0.6.0.tar.gz"
version('0.6.0', sha256='2e364a3d5759479cdb2d37cce6b9376ea504db2ff90252a2e5b7cc89cc9ff2d8')
diff --git a/var/spack/repos/builtin/packages/py-isort/package.py b/var/spack/repos/builtin/packages/py-isort/package.py
index 1446f70979..c246d5fdd3 100644
--- a/var/spack/repos/builtin/packages/py-isort/package.py
+++ b/var/spack/repos/builtin/packages/py-isort/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,18 @@ class PyIsort(PythonPackage):
"""A Python utility / library to sort Python imports."""
homepage = "https://github.com/timothycrosley/isort"
- url = "https://pypi.io/packages/source/i/isort/isort-4.2.15.tar.gz"
+ pypi = "isort/isort-4.2.15.tar.gz"
+ version('5.9.1', sha256='83510593e07e433b77bd5bff0f6f607dbafa06d1a89022616f02d8b699cfcd56')
version('4.3.20', sha256='c40744b6bc5162bbb39c1257fe298b7a393861d50978b565f3ccd9cb9de0182a')
version('4.2.15', sha256='79f46172d3a4e2e53e7016e663cc7a8b538bec525c36675fcfd2767df30b3983')
- depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-pytest', type='test')
- depends_on('py-mock', type='test')
+ variant('colors', default=False, description='Install colorama for --color support')
+
+ depends_on('python@3.6.1:3.999', type=('build', 'run'), when='@5:')
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@4.3:')
depends_on('python@2.6:2.8,3.3:', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@4.3.0:')
- depends_on('py-futures', type=('build', 'run'), when='@4.3.0: ^python@:3.1')
- depends_on('py-backports-functools-lru-cache', type=('build', 'run'), when='@4.3.10: ^python@:3.1')
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-futures', type=('build', 'run'), when='@4.3:4.999 ^python@:3.1')
+ depends_on('py-backports-functools-lru-cache', type=('build', 'run'), when='@4.3.10:4.999 ^python@:3.1')
+ depends_on('py-colorama@0.4.3:0.4.999', type=('build', 'run'), when='+colors')
diff --git a/var/spack/repos/builtin/packages/py-itk/package.py b/var/spack/repos/builtin/packages/py-itk/package.py
new file mode 100644
index 0000000000..8d985dbd09
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-itk/package.py
@@ -0,0 +1,107 @@
+# Copyright 2013-2021 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)
+
+import sys
+
+import archspec
+
+from spack import *
+
+
+class PyItk(Package):
+ """ITK is an open-source toolkit for multidimensional image analysis"""
+
+ homepage = "https://itk.org/"
+
+ if sys.platform == 'darwin':
+ # version 5.1.1
+ version('5.1.1-cp35',
+ url='https://pypi.io/packages/cp35/i/itk/itk-5.1.1-cp35-cp35m-macosx_10_9_x86_64.whl',
+ sha256='e94d08a142b72b7219c828e7ca34788b59612fc10dbb2c65afd4457e9810eed1',
+ expand=False)
+ version('5.1.1-cp36',
+ url='https://pypi.io/packages/cp35/i/itk/itk-5.1.1-cp36-cp36m-macosx_10_9_x86_64.whl',
+ sha256='94b3c8d2ceba1685ae7e7f2b3bb88bdcd15dee93d369177eb03f676062f7e06f',
+ expand=False)
+ version('5.1.1-cp37',
+ url='https://pypi.io/packages/cp35/i/itk/itk-5.1.1-cp37-cp37m-macosx_10_9_x86_64.whl',
+ sha256='f112515483a073fae96d5cfce4eb9f95cbf57a145bbd196b2369a3194e27febf',
+ expand=False)
+ version('5.1.1-cp38',
+ url='https://pypi.io/packages/cp35/i/itk/itk-5.1.1-cp38-cp38-macosx_10_9_x86_64.whl',
+ sha256='94b09ab9dd59ceaecc456ede2b719a44b8f0d54d92409eede372c6004395ae7b',
+ expand=False)
+ # version 5.1.2
+ version('5.1.2-cp36',
+ url='https://pypi.io/packages/cp36/i/itk/itk-5.1.2-cp36-cp36m-macosx_10_9_x86_64.whl',
+ sha256='d66f5369768e9449c1bd07210a42e11c565602da1dde3128f554b653a2faaf7b',
+ expand=False)
+ version('5.1.2-cp37',
+ url='https://pypi.io/packages/cp37/i/itk/itk-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl',
+ sha256='0b494485d05306240eaa5ab1a5e00895fcce8fe684c632c02a2373f36d123902',
+ expand=False)
+ version('5.1.2-cp38',
+ url='https://pypi.io/packages/cp38/i/itk/itk-5.1.2-cp38-cp38-macosx_10_9_x86_64.whl',
+ sha256='e8dec75b4452bd2ee65beb4901b245fc3a2a2ccc46dfa008ae0b5b757718d458',
+ expand=False)
+ version('5.1.2-cp39',
+ url='https://pypi.io/packages/cp39/i/itk/itk-5.1.2-cp39-cp39-macosx_10_9_x86_64.whl',
+ sha256='e8dec75b4452bd2ee65beb4901b245fc3a2a2ccc46dfa008ae0b5b757718d458',
+ expand=False)
+ elif sys.platform.startswith('linux'):
+ # version 5.1.1
+ version('5.1.1-cp35',
+ url='https://pypi.io/packages/cp35/i/itk/itk-5.1.1-cp35-cp35m-manylinux1_x86_64.whl',
+ sha256='02ba37cda1f4190ca34133e056f9acd5c0104da64455dc9e0cc6bb3eec47f7a6',
+ expand=False)
+ version('5.1.1-cp36',
+ url='https://pypi.io/packages/cp36/i/itk/itk-5.1.1-cp36-cp36m-manylinux1_x86_64.whl',
+ sha256='a7602fe2ee031bf70acf54e1aef6e0e01e9fa821ca1926fc70fe3db9167a50f2',
+ expand=False)
+ version('5.1.1-cp37',
+ url='https://pypi.io/packages/cp37/i/itk/itk-5.1.1-cp37-cp37m-manylinux1_x86_64.whl',
+ sha256='7c313d2e3a3e37b8e78d0b2d70be2d478c87fde6f27912c714c855a05584b8ee',
+ expand=False)
+ version('5.1.1-cp38',
+ url='https://pypi.io/packages/cp38/i/itk/itk-5.1.1-cp38-cp38-manylinux1_x86_64.whl',
+ sha256='14cd6c3a25f0d69f45eda74b006eceeaf8e2b2fcbe7c343e49683edf97e0fb14',
+ expand=False)
+ # version 5.1.2
+ version('5.1.2-cp36',
+ url='https://pypi.io/packages/cp36/i/itk/itk-5.1.2-cp36-cp36m-manylinux1_x86_64.whl',
+ sha256='266e031a0656688b815dc60e9abd58e40ec37c9dcd25aa91634ed2b157ca974c',
+ expand=False)
+ version('5.1.2-cp37',
+ url='https://pypi.io/packages/cp37/i/itk/itk-5.1.2-cp37-cp37m-manylinux1_x86_64.whl',
+ sha256='064d9cfdd9547ae3ed850c35b989e0141c4bd434672bc2dd124248aab7bdf09a',
+ expand=False)
+ version('5.1.2-cp38',
+ url='https://pypi.io/packages/cp38/i/itk/itk-5.1.2-cp38-cp38-manylinux1_x86_64.whl',
+ sha256='fe9225ac353116f4000c0a3440bf151200beb4a65deec5b2e626edda5b498f16',
+ expand=False)
+ version('5.1.2-cp39',
+ url='https://pypi.io/packages/cp39/i/itk/itk-5.1.2-cp39-cp39-manylinux1_x86_64.whl',
+ sha256='5781b74410b7189a825c89d370411595e5e3d5dbb480201907f751f26698df83',
+ expand=False)
+
+ extends('python')
+ depends_on('py-pip', type='build')
+
+ depends_on('python@3.5.0:3.5.999', when='@5.1.1-cp35', type=('build', 'run'))
+ depends_on('python@3.6.0:3.6.999', when='@5.1.1-cp36,5.1.2-cp36', type=('build', 'run'))
+ depends_on('python@3.7.0:3.7.999', when='@5.1.1-cp37,5.1.2-cp37', type=('build', 'run'))
+ depends_on('python@3.8.0:3.8.999', when='@5.1.1-cp38,5.1.2-cp38', type=('build', 'run'))
+ depends_on('python@3.9.0:3.9.999', when='@5.1.2-cp39', type=('build', 'run'))
+
+ depends_on('itk@5.1.1', when='@5.1.1-cp35:5.1.1-cp39', type='run')
+ depends_on('itk@5.1.2', when='@5.1.2-cp35:5.1.2-cp39', type='run')
+
+ for t in set([str(x.family) for x in archspec.cpu.TARGETS.values()
+ if str(x.family) != 'x86_64']):
+ conflicts('target={0}:'.format(t), msg='py-itk is available x86_64 only')
+
+ def install(self, spec, prefix):
+ pip = which('pip')
+ pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-itsdangerous/package.py b/var/spack/repos/builtin/packages/py-itsdangerous/package.py
index 27278a879a..168af1fad0 100644
--- a/var/spack/repos/builtin/packages/py-itsdangerous/package.py
+++ b/var/spack/repos/builtin/packages/py-itsdangerous/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyItsdangerous(PythonPackage):
"""Various helpers to pass trusted data to untrusted environments."""
- homepage = "http://github.com/mitsuhiko/itsdangerous"
- url = "https://pypi.io/packages/source/i/itsdangerous/itsdangerous-1.1.0.tar.gz"
+ homepage = "https://github.com/mitsuhiko/itsdangerous"
+ pypi = "itsdangerous/itsdangerous-1.1.0.tar.gz"
version('1.1.0', sha256='321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19')
version('0.24', sha256='cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519')
diff --git a/var/spack/repos/builtin/packages/py-jaraco-functools/package.py b/var/spack/repos/builtin/packages/py-jaraco-functools/package.py
index 4b8af85094..52c85a5cea 100644
--- a/var/spack/repos/builtin/packages/py-jaraco-functools/package.py
+++ b/var/spack/repos/builtin/packages/py-jaraco-functools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyJaracoFunctools(PythonPackage):
"""Functools like those found in stdlib"""
homepage = "https://github.com/jaraco/jaraco.functools"
- url = "https://pypi.io/packages/source/j/jaraco.functools/jaraco.functools-2.0.tar.gz"
+ pypi = "jaraco.functools/jaraco.functools-2.0.tar.gz"
version(
'2.0', sha256='35ba944f52b1a7beee8843a5aa6752d1d5b79893eeb7770ea98be6b637bf9345')
diff --git a/var/spack/repos/builtin/packages/py-javaproperties/package.py b/var/spack/repos/builtin/packages/py-javaproperties/package.py
index 89358b1b67..d68bbd225a 100644
--- a/var/spack/repos/builtin/packages/py-javaproperties/package.py
+++ b/var/spack/repos/builtin/packages/py-javaproperties/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "javaproperties/javaproperties-0.7.0.tar.gz"
version('0.7.0', sha256='cf45b39fcbaeced1dfc0b7f2bda16e34fc0349116269e001dada42fd2e145d87')
version('0.5.1', sha256='2b0237b054af4d24c74f54734b7d997ca040209a1820e96fb4a82625f7bd40cf')
diff --git a/var/spack/repos/builtin/packages/py-jdatetime/package.py b/var/spack/repos/builtin/packages/py-jdatetime/package.py
index 1efdc373a5..fff18c8315 100644
--- a/var/spack/repos/builtin/packages/py-jdatetime/package.py
+++ b/var/spack/repos/builtin/packages/py-jdatetime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PyJdatetime(PythonPackage):
"""jdatetime is Jalali implementation of Python's datetime module"""
homepage = "https://github.com/slashmili/python-jalali"
- url = "https://pypi.io/packages/source/j/jdatetime/jdatetime-3.6.2.tar.gz"
+ pypi = "jdatetime/jdatetime-3.6.2.tar.gz"
version('3.6.2', sha256='a589e35f0dab89283c1a3de9d70ed6cf657932aaed8e8ce1b0e5801aaab1da67')
diff --git a/var/spack/repos/builtin/packages/py-jdcal/package.py b/var/spack/repos/builtin/packages/py-jdcal/package.py
index 06e1eba505..8e637fa0d9 100644
--- a/var/spack/repos/builtin/packages/py-jdcal/package.py
+++ b/var/spack/repos/builtin/packages/py-jdcal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyJdcal(PythonPackage):
"""Julian dates from proleptic Gregorian and Julian calendars"""
- homepage = "http://github.com/phn/jdcal"
- url = "https://pypi.io/packages/source/j/jdcal/jdcal-1.3.tar.gz"
+ homepage = "https://github.com/phn/jdcal"
+ pypi = "jdcal/jdcal-1.3.tar.gz"
version('1.3', sha256='b760160f8dc8cc51d17875c6b663fafe64be699e10ce34b6a95184b5aa0fdc9e')
version('1.2', sha256='5ebedb58b95ebabd30f56abef65139c6f69ec1687cf1d2f3a7c503f9a2cdfa4d')
diff --git a/var/spack/repos/builtin/packages/py-jedi/package.py b/var/spack/repos/builtin/packages/py-jedi/package.py
index 009b4c9d65..1c65e8e7d3 100644
--- a/var/spack/repos/builtin/packages/py-jedi/package.py
+++ b/var/spack/repos/builtin/packages/py-jedi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,19 +10,39 @@ class PyJedi(PythonPackage):
"""An autocompletion tool for Python that can be used for text editors."""
homepage = "https://github.com/davidhalter/jedi"
- url = "https://pypi.io/packages/source/j/jedi/jedi-0.9.0.tar.gz"
+ pypi = "jedi/jedi-0.9.0.tar.gz"
+ version('0.18.0', sha256='92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707')
+ version('0.17.2', sha256='08d43addcbd656ed07e929631f8071eec567092bf16f2c19fc7bc272a97a77ef')
+ version('0.17.1', sha256='807d5d4f96711a2bcfdd5dfa3b1ae6d09aa53832b182090b222b5efb81f52f63')
+ version('0.15.1', sha256='ba859c74fa3c966a22f2aeebe1b74ee27e2a462f56d3f5f7ca4a59af61bfe42e')
+ version('0.15.0', sha256='9f16cb00b2aee940df2efc1d7d7c848281fd16391536a3d4561f5aea49db1ee6')
+ version('0.14.1', sha256='53c850f1a7d3cfcd306cc513e2450a54bdf5cacd7604b74e42dd1f0758eaaf36')
+ version('0.14.0', sha256='49ccb782651bb6f7009810d17a3316f8867dde31654c750506970742e18b553d')
version('0.13.3', sha256='2bb0603e3506f708e792c7f4ad8fc2a7a9d9c2d292a358fbbd58da531695595b')
+ version('0.13.2', sha256='571702b5bd167911fe9036e5039ba67f820d6502832285cde8c881ab2b2149fd')
+ version('0.13.1', sha256='b7493f73a2febe0dc33d51c99b474547f7f6c0b2c8fb2b21f453eef204c12148')
+ version('0.13.0', sha256='e4db7a2e08980e48c6aec6588483629c81fdcf9b6d9e6a372b40ed7fec91f310')
+ version('0.12.1', sha256='b409ed0f6913a701ed474a614a3bb46e6953639033e31f769ca7581da5bd1ec1')
+ version('0.12.0', sha256='1972f694c6bc66a2fac8718299e2ab73011d653a6d8059790c3476d2353b99ad')
+ version('0.10.2', sha256='7abb618cac6470ebbd142e59c23daec5e6e063bfcecc8a43a037d2ab57276f4e')
+ version('0.10.1', sha256='2420daf6fd00e80caf1bc22903598b5bf5560c900113dcc120eaefc7b4d50e06')
# unfortunately pypi.io only offers a .whl for 0.10.0
version('0.10.0', sha256='d6a7344df9c80562c3f62199278004ccc7c5889be9f1a6aa5abde117ec085123',
- url='https://github.com/davidhalter/jedi/archive/v0.10.0.tar.gz')
+ url='https://github.com/davidhalter/jedi/archive/v0.10.0.tar.gz')
version('0.9.0', sha256='3b4c19fba31bdead9ab7350fb9fa7c914c59b0a807dcdd5c00a05feb85491d31')
depends_on('py-setuptools', type=('build', 'run'))
+
depends_on('python@2.6:2.8,3.2:', type=('build', 'run'), when='@0.9.0')
depends_on('python@2.6:2.8,3.3:', type=('build', 'run'), when='@0.10.0')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@0.13.3')
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@0.17.2')
+ depends_on('python@3.6:', type=('build', 'run'), when='@0.18.0')
+
depends_on('py-parso@0.1.0', type=('build', 'run'), when='@0.11.0')
depends_on('py-parso@0.1.1', type=('build', 'run'), when='@0.11.1')
depends_on('py-parso@0.2.0:', type=('build', 'run'), when='@0.12.0')
depends_on('py-parso@0.3.0:', type=('build', 'run'), when='@0.12.1:0.14.0')
+ depends_on('py-parso@0.7.0:0.7.99', type=('build', 'run'), when='@0.17.2')
+ depends_on('py-parso@0.8.0:0.8.99', type=('build', 'run'), when='@0.18.0')
diff --git a/var/spack/repos/builtin/packages/py-jeepney/package.py b/var/spack/repos/builtin/packages/py-jeepney/package.py
index c44cc4c3d5..e4004afe8a 100644
--- a/var/spack/repos/builtin/packages/py-jeepney/package.py
+++ b/var/spack/repos/builtin/packages/py-jeepney/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,10 @@ class PyJeepney(PythonPackage):
"""Low-level, pure Python DBus protocol wrapper."""
homepage = "https://gitlab.com/takluyver/jeepney"
- url = "https://pypi.io/packages/source/j/jeepney/jeepney-0.4.3.tar.gz"
+ pypi = "jeepney/jeepney-0.4.3.tar.gz"
+ version('0.6.0', sha256='7d59b6622675ca9e993a6bd38de845051d315f8b0c72cca3aef733a20b648657')
version('0.4.3', sha256='3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e')
- depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('python@3.6:', when='@0.5:', type=('build', 'run'))
+ depends_on('python@3.5:', when='@:0.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jellyfish/package.py b/var/spack/repos/builtin/packages/py-jellyfish/package.py
index 6316162289..8a0aaf3ff1 100644
--- a/var/spack/repos/builtin/packages/py-jellyfish/package.py
+++ b/var/spack/repos/builtin/packages/py-jellyfish/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ from spack import *
class PyJellyfish(PythonPackage):
"""a library for doing approximate and phonetic matching of strings."""
- homepage = "https://pypi.org/project/jellyfish/"
- url = "https://pypi.io/packages/source/j/jellyfish/jellyfish-0.6.1.tar.gz"
+ pypi = "jellyfish/jellyfish-0.6.1.tar.gz"
version('0.6.1', sha256='5104e45a2b804b48a46a92a5e6d6e86830fe60ae83b1da32c867402c8f4c2094')
version('0.5.6', sha256='887a9a49d0caee913a883c3e7eb185f6260ebe2137562365be422d1316bd39c9')
diff --git a/var/spack/repos/builtin/packages/py-jinja2-time/package.py b/var/spack/repos/builtin/packages/py-jinja2-time/package.py
index df57e84129..411881a770 100644
--- a/var/spack/repos/builtin/packages/py-jinja2-time/package.py
+++ b/var/spack/repos/builtin/packages/py-jinja2-time/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-jinja2/package.py b/var/spack/repos/builtin/packages/py-jinja2/package.py
index 588367c0f5..9367d18aa9 100644
--- a/var/spack/repos/builtin/packages/py-jinja2/package.py
+++ b/var/spack/repos/builtin/packages/py-jinja2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,10 @@ class PyJinja2(PythonPackage):
and an optional sandboxed environment."""
homepage = "https://palletsprojects.com/p/jinja/"
- url = "https://pypi.io/packages/source/J/Jinja2/Jinja2-2.10.3.tar.gz"
-
- import_modules = ['jinja2']
+ pypi = "Jinja2/Jinja2-2.10.3.tar.gz"
+ version('3.0.1', sha256='703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4')
+ version('2.11.3', sha256='a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6')
version('2.10.3', sha256='9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de')
version('2.10.1', sha256='065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013')
version('2.10', sha256='f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4')
@@ -26,6 +26,12 @@ class PyJinja2(PythonPackage):
version('2.7.1', sha256='5cc0a087a81dca1c08368482fb7a92fe2bdd8cfbb22bc0fccfe6c85affb04c8b')
version('2.7', sha256='474f1518d189ae7e318b139fecc1d30b943f124448cfa0f09582ca23e069fa4d')
+ variant('i18n', default=False, description="Enables I18N support with Babel")
+
+ depends_on('python@3.6:', when='@3:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
+ depends_on('py-markupsafe@2.0:', when='@3:', type=('build', 'run'))
depends_on('py-markupsafe@0.23:', type=('build', 'run'))
- depends_on('py-babel@0.8:', type=('build', 'run')) # optional, required for i18n
+ depends_on('py-babel@2.7:', when='@3:+i18n', type=('build', 'run'))
+ depends_on('py-babel@0.8:', when='+i18n', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jmespath/package.py b/var/spack/repos/builtin/packages/py-jmespath/package.py
index ed5da676f2..f8680c8f0f 100644
--- a/var/spack/repos/builtin/packages/py-jmespath/package.py
+++ b/var/spack/repos/builtin/packages/py-jmespath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,11 +10,9 @@ class PyJmespath(PythonPackage):
"""JSON Matching Expressions."""
homepage = "https://github.com/jmespath/jmespath.py"
- url = "https://pypi.io/packages/source/j/jmespath/jmespath-0.9.4.tar.gz"
-
- import_modules = ['jmespath']
+ pypi = "jmespath/jmespath-0.9.4.tar.gz"
+ version('0.10.0', sha256='b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9')
version('0.9.4', sha256='bde2aef6f44302dfb30320115b17d030798de8c4110e28d5cf6cf91a7a31074c')
depends_on('py-setuptools', type='build')
- depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-joblib/package.py b/var/spack/repos/builtin/packages/py-joblib/package.py
index 43ea04ed99..bab10e2c88 100644
--- a/var/spack/repos/builtin/packages/py-joblib/package.py
+++ b/var/spack/repos/builtin/packages/py-joblib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,32 @@ from spack import *
class PyJoblib(PythonPackage):
- """Python function as pipeline jobs"""
+ """Lightweight pipelining with Python functions."""
- homepage = "http://packages.python.org/joblib/"
- url = "https://pypi.io/packages/source/j/joblib/joblib-0.14.0.tar.gz"
+ homepage = "https://joblib.readthedocs.io/"
+ pypi = "joblib/joblib-0.14.0.tar.gz"
+ # 'joblib.test' requires 'pytest'. Leave out of 'import_modules' to avoid
+ # unnecessary dependencies.
import_modules = [
'joblib', 'joblib.externals', 'joblib.externals.cloudpickle',
'joblib.externals.loky', 'joblib.externals.loky.backend'
]
+ version('1.0.1', sha256='9c17567692206d2f3fb9ecf5e991084254fe631665c450b443761c4186a613f7')
+ version('1.0.0', sha256='7ad866067ac1fdec27d51c8678ea760601b70e32ff1881d4dc8e1171f2b64b24')
+ version('0.17.0', sha256='9e284edd6be6b71883a63c9b7f124738a3c16195513ad940eae7e3438de885d5')
+ version('0.16.0', sha256='8f52bf24c64b608bf0b2563e0e47d6fcf516abc8cfafe10cfd98ad66d94f92d6')
+ version('0.15.1', sha256='61e49189c84b3c5d99a969d314853f4d1d263316cc694bec17548ebaa9c47b6e')
+ version('0.15.0', sha256='f8f84dcef519233be4ede1c64fd1f2d48b1e8bbb632d1013ebca75f8b678ee72')
+ version('0.14.1', sha256='0630eea4f5664c463f23fbf5dcfc54a2bc6168902719fa8e19daf033022786c8')
version('0.14.0', sha256='6fcc57aacb4e89451fd449e9412687c51817c3f48662c3d8f38ba3f8a0a193ff')
version('0.13.2', sha256='315d6b19643ec4afd4c41c671f9f2d65ea9d787da093487a81ead7b0bac94524')
- version('0.11', sha256='7b8fd56df36d9731a83729395ccb85a3b401f62a96255deb1a77220c00ed4085')
+ version('0.11', sha256='7b8fd56df36d9731a83729395ccb85a3b401f62a96255deb1a77220c00ed4085')
version('0.10.3', sha256='29b2965a9efbc90a5fe66a389ae35ac5b5b0c1feabfc7cab7fd5d19f429a071d')
version('0.10.2', sha256='3123553bdad83b143428033537c9e1939caf4a4d8813dade6a2246948c94494b')
version('0.10.0', sha256='49b3a0ba956eaa2f077e1ebd230b3c8d7b98afc67520207ada20a4d8b8efd071')
- depends_on('py-setuptools', when='@0.14:', type='build')
+ depends_on('python@3.6:', when='@0.15:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', when='@0.14:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jplephem/package.py b/var/spack/repos/builtin/packages/py-jplephem/package.py
index fb4456d800..08508f7458 100644
--- a/var/spack/repos/builtin/packages/py-jplephem/package.py
+++ b/var/spack/repos/builtin/packages/py-jplephem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,7 @@ class PyJplephem(PythonPackage):
ephemeris for predicting the position and velocity of a planet or other
Solar System body."""
- homepage = "https://pypi.org/project/jplephem/"
- url = "https://pypi.io/packages/source/j/jplephem/jplephem-2.9.tar.gz"
+ pypi = "jplephem/jplephem-2.9.tar.gz"
version('2.9', sha256='9dffb9f3d3f6d996ade875102431fe385e8ea422da25c8ba17b0508d9ca1282b')
diff --git a/var/spack/repos/builtin/packages/py-jprops/package.py b/var/spack/repos/builtin/packages/py-jprops/package.py
index 2e6749077f..ae0113d8e1 100644
--- a/var/spack/repos/builtin/packages/py-jprops/package.py
+++ b/var/spack/repos/builtin/packages/py-jprops/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyJprops(PythonPackage):
"""Java properties file parser for Python"""
homepage = "https://github.com/mgood/jprops/"
- url = "https://pypi.io/packages/source/j/jprops/jprops-2.0.2.tar.gz"
+ pypi = "jprops/jprops-2.0.2.tar.gz"
version('2.0.2', sha256='d297231833b6cd0a3f982a48fe148a7f9817f2895661743d166b267e4d3d5b2c')
diff --git a/var/spack/repos/builtin/packages/py-jpype1/package.py b/var/spack/repos/builtin/packages/py-jpype1/package.py
index 4a27b24018..e9802cc963 100644
--- a/var/spack/repos/builtin/packages/py-jpype1/package.py
+++ b/var/spack/repos/builtin/packages/py-jpype1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyJpype1(PythonPackage):
libraries."""
homepage = "https://github.com/originell/jpype"
- url = "https://pypi.io/packages/source/J/JPype1/JPype1-0.6.2.tar.gz"
+ pypi = "JPype1/JPype1-0.6.2.tar.gz"
version('0.6.3', sha256='6841523631874a731e1f94e1b1f130686ad3772030eaa3b6946256eeb1d10dd1')
version('0.6.2', sha256='99206412d80b9d5a81a7cc205267ca63554403eb57f13420302e2f39bfad7f25')
diff --git a/var/spack/repos/builtin/packages/py-jsmin/package.py b/var/spack/repos/builtin/packages/py-jsmin/package.py
index b0ace422ee..ba9b90f02c 100644
--- a/var/spack/repos/builtin/packages/py-jsmin/package.py
+++ b/var/spack/repos/builtin/packages/py-jsmin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "jsmin/jsmin-2.2.2.tar.gz"
version('2.2.2', sha256='b6df99b2cd1c75d9d342e4335b535789b8da9107ec748212706ef7bbe5c2553b')
diff --git a/var/spack/repos/builtin/packages/py-json-get/package.py b/var/spack/repos/builtin/packages/py-json-get/package.py
index 2e178d1fa8..c66a717a3d 100644
--- a/var/spack/repos/builtin/packages/py-json-get/package.py
+++ b/var/spack/repos/builtin/packages/py-json-get/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-json5/package.py b/var/spack/repos/builtin/packages/py-json5/package.py
index b204b3016e..dd57aa26a3 100644
--- a/var/spack/repos/builtin/packages/py-json5/package.py
+++ b/var/spack/repos/builtin/packages/py-json5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyJson5(PythonPackage):
include some productions from ECMAScript 5.1."""
homepage = "https://github.com/dpranke/pyjson5"
- url = "https://pypi.io/packages/source/j/json5/json5-0.9.4.tar.gz"
+ pypi = "json5/json5-0.9.4.tar.gz"
version('0.9.4', sha256='2ebfad1cd502dca6aecab5b5c36a21c732c3461ddbc412fb0e9a52b07ddfe586')
diff --git a/var/spack/repos/builtin/packages/py-jsondiff/package.py b/var/spack/repos/builtin/packages/py-jsondiff/package.py
index a6bad6fa93..25f9e35e36 100644
--- a/var/spack/repos/builtin/packages/py-jsondiff/package.py
+++ b/var/spack/repos/builtin/packages/py-jsondiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "jsondiff/jsondiff-1.2.0.tar.gz"
version('1.2.0', sha256='34941bc431d10aa15828afe1cbb644977a114e75eef6cc74fb58951312326303')
diff --git a/var/spack/repos/builtin/packages/py-jsonpatch/package.py b/var/spack/repos/builtin/packages/py-jsonpatch/package.py
index eab7421ffb..233e3b1262 100644
--- a/var/spack/repos/builtin/packages/py-jsonpatch/package.py
+++ b/var/spack/repos/builtin/packages/py-jsonpatch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyJsonpatch(PythonPackage):
"""Library to apply JSON Patches according to RFC 6902"""
homepage = "https://github.com/stefankoegl/python-json-patch"
- url = "https://pypi.io/packages/source/j/jsonpatch/jsonpatch-1.23.tar.gz"
+ pypi = "jsonpatch/jsonpatch-1.23.tar.gz"
version('1.23', sha256='49f29cab70e9068db3b1dc6b656cbe2ee4edf7dfe9bf5a0055f17a4b6804a4b9')
diff --git a/var/spack/repos/builtin/packages/py-jsonpath-ng/package.py b/var/spack/repos/builtin/packages/py-jsonpath-ng/package.py
new file mode 100644
index 0000000000..4929e20a1c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jsonpath-ng/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyJsonpathNg(PythonPackage):
+ """A final implementation of JSONPath for Python that aims to be
+ standard compliant, including arithmetic and binary comparison
+ operators."""
+
+ homepage = "https://github.com/h2non/jsonpath-ng"
+ pypi = "jsonpath-ng/jsonpath-ng-1.5.2.tar.gz"
+
+ version('1.5.2', sha256='144d91379be14d9019f51973bd647719c877bfc07dc6f3f5068895765950c69d')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-ply', type=('build', 'run'))
+ depends_on('py-decorator', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jsonpickle/package.py b/var/spack/repos/builtin/packages/py-jsonpickle/package.py
index 7bc9aeda58..858743b658 100644
--- a/var/spack/repos/builtin/packages/py-jsonpickle/package.py
+++ b/var/spack/repos/builtin/packages/py-jsonpickle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,11 @@ class PyJsonpickle(PythonPackage):
"""Python library for serializing any arbitrary object graph into JSON."""
homepage = "https://github.com/jsonpickle/jsonpickle"
- url = "https://pypi.io/packages/source/j/jsonpickle/jsonpickle-1.4.1.tar.gz"
+ pypi = "jsonpickle/jsonpickle-1.4.1.tar.gz"
version('1.4.1', sha256='e8d4b7cd0bd6826001a74377df1079a76ad8bae0f909282de2554164c837c8ba')
depends_on('python@2.7:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-setuptools-scm@3.4.1:+toml', type='build')
- depends_on('py-importlib-metadata', type=('build', 'run'))
+ depends_on("py-importlib-metadata", when="^python@:3.7.99", type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jsonpointer/package.py b/var/spack/repos/builtin/packages/py-jsonpointer/package.py
index a9307fd3f6..f1eb2ae8a9 100644
--- a/var/spack/repos/builtin/packages/py-jsonpointer/package.py
+++ b/var/spack/repos/builtin/packages/py-jsonpointer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ class PyJsonpointer(PythonPackage):
"""Library to resolve JSON Pointers according to RFC 6901"""
homepage = "https://github.com/stefankoegl/python-json-pointer"
- url = "https://pypi.io/packages/source/j/jsonpointer/jsonpointer-2.0.tar.gz"
+ pypi = "jsonpointer/jsonpointer-2.0.tar.gz"
version('2.0', sha256='c192ba86648e05fdae4f08a17ec25180a9aef5008d973407b581798a83975362')
+ version('1.9', sha256='39403b47a71aa782de6d80db3b78f8a5f68ad8dfc9e674ca3bb5b32c15ec7308')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-jsonref/package.py b/var/spack/repos/builtin/packages/py-jsonref/package.py
index 405d2155d7..88056cdb47 100644
--- a/var/spack/repos/builtin/packages/py-jsonref/package.py
+++ b/var/spack/repos/builtin/packages/py-jsonref/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyJsonref(PythonPackage):
"""An implementation of JSON Reference for Python"""
homepage = "https://github.com/gazpachoking/jsonref"
- url = "https://pypi.io/packages/source/j/jsonref/jsonref-0.2.tar.gz"
+ pypi = "jsonref/jsonref-0.2.tar.gz"
version('0.2', sha256='f3c45b121cf6257eafabdc3a8008763aed1cd7da06dbabc59a9e4d2a5e4e6697')
diff --git a/var/spack/repos/builtin/packages/py-jsonschema/package.py b/var/spack/repos/builtin/packages/py-jsonschema/package.py
index c33cfc63e4..812a72c9a0 100644
--- a/var/spack/repos/builtin/packages/py-jsonschema/package.py
+++ b/var/spack/repos/builtin/packages/py-jsonschema/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyJsonschema(PythonPackage):
"""Jsonschema: An(other) implementation of JSON Schema for Python."""
- homepage = "http://github.com/Julian/jsonschema"
- url = "https://pypi.io/packages/source/j/jsonschema/jsonschema-3.2.0.tar.gz"
+ homepage = "https://github.com/Julian/jsonschema"
+ pypi = "jsonschema/jsonschema-3.2.0.tar.gz"
version('3.2.0', sha256='c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a')
version('3.1.1', sha256='2fa0684276b6333ff3c0b1b27081f4b2305f0a36cf702a23db50edb141893c3f')
diff --git a/var/spack/repos/builtin/packages/py-junit-xml/package.py b/var/spack/repos/builtin/packages/py-junit-xml/package.py
index 7d59fe205c..e3f1b2a421 100644
--- a/var/spack/repos/builtin/packages/py-junit-xml/package.py
+++ b/var/spack/repos/builtin/packages/py-junit-xml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyJunitXml(PythonPackage):
such as Jenkins"""
homepage = "https://github.com/kyrus/python-junit-xml"
- url = "https://pypi.io/packages/source/j/junit-xml/junit-xml-1.7.tar.gz"
+ pypi = "junit-xml/junit-xml-1.7.tar.gz"
version('1.7', sha256='5bc851b53e3e2153dcc62278ce2aa796a8ae9208f1dec36d1507b5af445ce355')
diff --git a/var/spack/repos/builtin/packages/py-jupyter-client/package.py b/var/spack/repos/builtin/packages/py-jupyter-client/package.py
index d14077195b..165cdaa71a 100644
--- a/var/spack/repos/builtin/packages/py-jupyter-client/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyter-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyJupyterClient(PythonPackage):
"""Jupyter protocol client APIs"""
homepage = "https://github.com/jupyter/jupyter_client"
- url = "https://pypi.io/packages/source/j/jupyter-client/jupyter_client-6.1.7.tar.gz"
+ pypi = "jupyter-client/jupyter_client-6.1.7.tar.gz"
version('6.1.7', sha256='49e390b36fe4b4226724704ea28d9fb903f1a3601b6882ce3105221cd09377a1')
version('5.3.4', sha256='60e6faec1031d63df57f1cc671ed673dced0ed420f4377ea33db37b1c188b910')
diff --git a/var/spack/repos/builtin/packages/py-jupyter-console/package.py b/var/spack/repos/builtin/packages/py-jupyter-console/package.py
index 0f06d1422d..9bed10217d 100644
--- a/var/spack/repos/builtin/packages/py-jupyter-console/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyter-console/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-jupyter-core/package.py b/var/spack/repos/builtin/packages/py-jupyter-core/package.py
index 42adbc81b4..357c89478e 100644
--- a/var/spack/repos/builtin/packages/py-jupyter-core/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyter-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,10 @@ from spack import *
class PyJupyterCore(PythonPackage):
"""Core Jupyter functionality"""
- homepage = "http://jupyter-core.readthedocs.io/"
- url = "https://pypi.io/packages/source/j/jupyter-core/jupyter_core-4.6.0.tar.gz"
+ homepage = "https://jupyter-core.readthedocs.io/"
+ pypi = "jupyter-core/jupyter_core-4.6.0.tar.gz"
+ version('4.7.1', sha256='79025cb3225efcd36847d0840f3fc672c0abd7afd0de83ba8a1d3837619122b4')
version('4.6.3', sha256='394fd5dd787e7c8861741880bdf8a00ce39f95de5d18e579c74b882522219e7e')
version('4.6.1', sha256='a183e0ec2e8f6adddf62b0a3fc6a2237e3e0056d381e536d3e7c7ecc3067e244')
version('4.6.0', sha256='85103cee6548992780912c1a0a9ec2583a4a18f1ef79a248ec0db4446500bce3')
@@ -27,7 +28,9 @@ class PyJupyterCore(PythonPackage):
version('4.0.1', sha256='7c165f7de7a063596f8be1bcfc86e9ba6897e38baf24e8510514690963600122')
version('4.0.0', sha256='9025208cdfc40718c7e3ab62b5e17aacf68e3fc66e34ff21fe032d553620122a')
+ depends_on('python@3.6:', when='@4.7:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.5:', when='@4.6.2:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@4.6.2:')
depends_on('py-setuptools', when='@4.5.0:', type=('build', 'run'))
depends_on('py-traitlets', type=('build', 'run'))
+ # additional pywin32>=1.0 dependency for windows
diff --git a/var/spack/repos/builtin/packages/py-jupyter-packaging/package.py b/var/spack/repos/builtin/packages/py-jupyter-packaging/package.py
new file mode 100644
index 0000000000..7875ec2b5d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jupyter-packaging/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyJupyterPackaging(PythonPackage):
+ """Jupyter Packaging Utilities."""
+
+ homepage = "https://github.com/jupyter/jupyter-packaging"
+ pypi = "jupyter_packaging/jupyter_packaging-0.10.4.tar.gz"
+
+ version('0.10.4', sha256='589db027cb85a92612f9bcfaeecaa8a9072ac8a4bddaf827f648664258e587c4')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools@46.4.0:', type=('build', 'run'))
+ depends_on('py-packaging', type=('build', 'run'))
+ depends_on('py-tomlkit', type=('build', 'run'))
+ depends_on('py-wheel', type=('build', 'run'))
+ depends_on('py-deprecation', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jupyter-server/package.py b/var/spack/repos/builtin/packages/py-jupyter-server/package.py
new file mode 100644
index 0000000000..3301cf8205
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jupyter-server/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2021 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 PyJupyterServer(PythonPackage):
+ """The Jupyter Server provides the backend (i.e. the core services, APIs,
+ and REST endpoints) for Jupyter web applications like Jupyter notebook,
+ JupyterLab, and Voila."""
+
+ homepage = "https://github.com/jupyter-server/jupyter_server"
+ pypi = "jupyter_server/jupyter_server-1.9.0.tar.gz"
+
+ version('1.9.0', sha256='7d19006380f6217458a9db309b54e3dab87ced6c06329c61823907bef2a6f51b')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-jinja2', type=('build', 'run'))
+ depends_on('py-tornado@6.1:', type=('build', 'run'))
+ depends_on('py-pyzmq@17:', type=('build', 'run'))
+ depends_on('py-argon2-cffi', type=('build', 'run'))
+ depends_on('py-ipython-genutils', type=('build', 'run'))
+ depends_on('py-traitlets@4.2.1:', type=('build', 'run'))
+ depends_on('py-jupyter-core@4.6.0:', type=('build', 'run'))
+ depends_on('py-jupyter-client@6.1.1:', type=('build', 'run'))
+ depends_on('py-nbformat', type=('build', 'run'))
+ depends_on('py-nbconvert', type=('build', 'run'))
+ depends_on('py-send2trash', type=('build', 'run'))
+ depends_on('py-terminado@0.8.3:', type=('build', 'run'))
+ depends_on('py-prometheus-client', type=('build', 'run'))
+ depends_on('py-anyio@3.1.0:3.99', type=('build', 'run'))
+ depends_on('py-websocket-client', type=('build', 'run'))
+ depends_on('py-requests-unixsocket', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jupyter-telemetry/package.py b/var/spack/repos/builtin/packages/py-jupyter-telemetry/package.py
new file mode 100644
index 0000000000..188bf5d09b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jupyter-telemetry/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyJupyterTelemetry(PythonPackage):
+ """Jupyter Telemetry enables Jupyter Applications to record events and transmit"""
+ """ them to destinations as structured data"""
+
+ pypi = "jupyter-telemetry/jupyter_telemetry-0.1.0.tar.gz"
+
+ version('0.1.0', sha256='445c613ae3df70d255fe3de202f936bba8b77b4055c43207edf22468ac875314')
+ version('0.0.5', sha256='d3eaac14be17510a4d288f3737580107ce14eef543e6133d56654d3f0e742b9b')
+
+ depends_on('py-python-json-logger', type=('build', 'run'))
+ depends_on('py-jsonschema', type=('build', 'run'))
+ depends_on('py-ruamel-yaml', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build'))
+ depends_on('py-traitlets', type=('build', 'run'))
+ depends_on('python@3.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jupyter/package.py b/var/spack/repos/builtin/packages/py-jupyter/package.py
index 4c6f0d9a07..b1b15ffdad 100644
--- a/var/spack/repos/builtin/packages/py-jupyter/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyJupyter(PythonPackage):
"""Jupyter metapackage. Install all the Jupyter components in one go."""
homepage = "https://jupyter.org/"
- url = "https://pypi.io/packages/source/j/jupyter/jupyter-1.0.0.tar.gz"
+ pypi = "jupyter/jupyter-1.0.0.tar.gz"
version('1.0.0', sha256='d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f')
diff --git a/var/spack/repos/builtin/packages/py-jupyterhub/package.py b/var/spack/repos/builtin/packages/py-jupyterhub/package.py
index 3e95b7496f..2e07238ac6 100644
--- a/var/spack/repos/builtin/packages/py-jupyterhub/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyterhub/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,27 +9,34 @@ from spack import *
class PyJupyterhub(PythonPackage):
"""Multi-user server for Jupyter notebooks."""
- homepage = "https://pypi.org/project/jupyterhub"
- url = "https://pypi.io/packages/source/j/jupyterhub/jupyterhub-1.0.0.tar.gz"
+ pypi = "jupyterhub/jupyterhub-1.0.0.tar.gz"
+ version('1.4.1', sha256='ee1b0718a4db8e0b339796e3e50b704ca6822ab22a7435289dbb5932f65b5199')
version('1.0.0', sha256='33541a515a041b9a518ca057c1c4ab4215a7450fdddc206401713ee8137fa67f')
version('0.9.4', sha256='7848bbb299536641a59eb1977ec3c7c95d931bace4a2803d7e9b28b9256714da')
- depends_on('python@3.5:', type=('build', 'run'))
- depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-python-dateutil', type=('build', 'run'))
- depends_on('py-jinja2', type=('build', 'run'))
- depends_on('py-sqlalchemy@1.1:', type=('build', 'run'))
- depends_on('py-tornado@5.0:', type=('build', 'run'))
- depends_on('py-traitlets@4.3.2:', type=('build', 'run'))
+ depends_on('py-alembic@1.4:', type=('build', 'run'), when='@1.4.1:')
depends_on('py-alembic', type=('build', 'run'))
- depends_on('py-mako', type=('build', 'run'))
+ depends_on('py-async-generator@1.9:', type=('build', 'run'), when='@1.4.1:')
depends_on('py-async-generator@1.8:', type=('build', 'run'))
- depends_on('py-requests', type=('build', 'run'))
depends_on('py-certipy@0.1.2:', when='@1.0.0:', type=('build', 'run'))
depends_on('py-entrypoints', when='@1.0.0:', type=('build', 'run'))
+ depends_on('py-jinja2@2.11.0:', type=('build', 'run'), when='@1.4.1:')
+ depends_on('py-jinja2', type=('build', 'run'))
+ depends_on('py-jupyter-telemetry@0.1.0:', type=('build', 'run'), when='@1.4.1:')
+ depends_on('py-mako', type=('build', 'run'), when='@:1.4.1')
+ depends_on('py-notebook', type=('build', 'run'), when='@:1.4.1')
depends_on('py-oauthlib@3.0:', when='@1.0.0:', type=('build', 'run'))
- depends_on('py-python-oauth2@1.0:', when='@:9.4', type=('build', 'run'))
depends_on('py-pamela', type=('build', 'run'))
- depends_on('py-notebook', type=('build', 'run'))
+ depends_on('py-prometheus-client@0.4.0:', type=('build', 'run'), when='@1.4.1:')
depends_on('py-prometheus-client@0.0.21:', type=('build', 'run'))
+ depends_on('py-python-dateutil', type=('build', 'run'))
+ depends_on('py-python-oauth2@1.0:', when='@:0.9.4', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-sqlalchemy@1.1:', type=('build', 'run'))
+ depends_on('py-tornado@5.1:', type=('build', 'run'), when='@1.4.1:')
+ depends_on('py-tornado@5.0:', type=('build', 'run'))
+ depends_on('py-traitlets@4.3.2:', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'run'), when='@1.4.1:')
+ depends_on('python@3.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jupyterlab-pygments/package.py b/var/spack/repos/builtin/packages/py-jupyterlab-pygments/package.py
index fc4bf5f6d4..0e6bbeddfe 100644
--- a/var/spack/repos/builtin/packages/py-jupyterlab-pygments/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyterlab-pygments/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyJupyterlabPygments(PythonPackage):
"""Pygments theme using JupyterLab CSS variables."""
homepage = "https://jupyter.org/"
- url = "https://pypi.io/packages/source/j/jupyterlab-pygments/jupyterlab_pygments-0.1.1.tar.gz"
+ pypi = "jupyterlab-pygments/jupyterlab_pygments-0.1.1.tar.gz"
version('0.1.1', sha256='19a0ccde7daddec638363cd3d60b63a4f6544c9181d65253317b2fb492a797b9')
diff --git a/var/spack/repos/builtin/packages/py-jupyterlab-server/package.py b/var/spack/repos/builtin/packages/py-jupyterlab-server/package.py
index 09bfce1b1f..3252bfc45e 100644
--- a/var/spack/repos/builtin/packages/py-jupyterlab-server/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyterlab-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,19 +8,22 @@ class PyJupyterlabServer(PythonPackage):
"""A set of server components for JupyterLab and JupyterLab
like applications"""
- homepage = "https://pypi.org/project/jupyterlab-server/"
- url = "https://pypi.io/packages/source/j/jupyterlab_server/jupyterlab_server-1.2.0.tar.gz"
+ homepage = "https://github.com/jupyterlab/jupyterlab_server"
+ pypi = "jupyterlab_server/jupyterlab_server-1.2.0.tar.gz"
+ version('2.6.0', sha256='f300adf6bb0a952bebe9c807a3b2a345d62da39b476b4f69ea0dc6b5f3f6b97d')
version('1.2.0', sha256='5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c')
version('1.1.0', sha256='bac27e2ea40f686e592d6429877e7d46947ea76c08c878081b028c2c89f71733')
+ depends_on('python@3.6:', when='@2.5:', type=('build', 'run'))
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-requests', type=('build', 'run'))
depends_on('py-json5', type=('build', 'run'))
depends_on('py-jsonschema@3.0.1:', type=('build', 'run'))
- depends_on('py-notebook@4.2.0:', type=('build', 'run'))
depends_on('py-jinja2@2.10:', type=('build', 'run'))
-
- depends_on('py-pytest', type='test')
+ depends_on('py-babel', when='@2.5.1:', type=('build', 'run'))
+ depends_on('py-packaging', when='@2.5.1:', type=('build', 'run'))
+ depends_on('py-jupyter-server@1.4:1.99', when='@2.5.1:', type=('build', 'run'))
+ depends_on('py-notebook@4.2.0:', when='@:2.5.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jupyterlab/package.py b/var/spack/repos/builtin/packages/py-jupyterlab/package.py
index f19c1b8174..a8cbed5857 100644
--- a/var/spack/repos/builtin/packages/py-jupyterlab/package.py
+++ b/var/spack/repos/builtin/packages/py-jupyterlab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,20 +8,41 @@ class PyJupyterlab(PythonPackage):
"""JupyterLab is the next-generation web-based user interface
for Project Jupyter."""
- homepage = "https://jupyterlab.readthedocs.io/"
- url = "https://pypi.io/packages/source/j/jupyterlab/jupyterlab-2.2.7.tar.gz"
+ homepage = "https://github.com/jupyterlab/jupyterlab"
+ pypi = "jupyterlab/jupyterlab-2.2.7.tar.gz"
+ # Skip 'jupyterlab.tests' packages
+ import_modules = ['jupyterlab', 'jupyterlab.handlers']
+
+ version('3.0.16', sha256='7ad4fbe1f6d38255869410fd151a8b15692a663ca97c0a8146b3f5c40e275c23')
version('2.2.7', sha256='a72ffd0d919cba03a5ef8422bc92c3332a957ff97b0490494209c83ad93826da')
version('2.1.0', sha256='8c239aababf5baa0b3d36e375fddeb9fd96f3a9a24a8cda098d6a414f5bbdc81')
+ depends_on('python@3.6:', when='@3:', type=('build', 'run'))
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-notebook@4.3.1:', type=('build', 'run'))
- depends_on('py-tornado@:5,6.0.3:', type=('build', 'run'))
- depends_on('py-jupyterlab-server@1.1.5:1.999', type=('build', 'run'))
+ depends_on('py-jupyter-packaging@0.9:1.999', when='@3.0.15:', type='build')
+ depends_on('py-jupyter-packaging@0.7.3:0.7.999', when='@3.0.0:3.0.14', type='build')
+ # dependency on py-jinja2@2.1 seems to be a migration issue from the switch
+ # to setup.cfg in 3.0.15, leave it a 2.10
depends_on('py-jinja2@2.10:', type=('build', 'run'))
- depends_on('py-pytest', type='test')
- depends_on('py-pytest-check-links', type='test')
- depends_on('py-requests', type='test')
- depends_on('py-wheel', type='test')
- depends_on('py-virtualenv', type='test')
+
+ # @3:
+ depends_on('py-ipython', when='@3:', type=('build', 'run'))
+ depends_on('py-packaging', when='@3:', type=('build', 'run'))
+ depends_on('py-tornado@6.1:', when='@3:', type=('build', 'run'))
+ depends_on('py-jupyter-core', when='@3:', type=('build', 'run'))
+ depends_on('py-jupyterlab-server@2.3:2.999', when='@3.0.9:', type=('build', 'run'))
+ depends_on('py-jupyterlab-server@2.0:2.999', when='@3.0.0:3.0.8', type=('build', 'run'))
+ depends_on('py-jupyter-server@1.4:1.999', when='@3.0.9:', type=('build', 'run'))
+ depends_on('py-jupyter-server@1.2:1.999', when='@3.0.3:3.0.8', type=('build', 'run'))
+ depends_on('py-jupyter-server@1.1:1.999', when='@3.0.0:3.0.2', type=('build', 'run'))
+ depends_on('py-nbclassic@0.2.0:0.999', when='@3:', type=('build', 'run'))
+
+ # @:3
+ depends_on('py-notebook@4.3.1:', when='@:2.99', type=('build', 'run'))
+ depends_on('py-tornado@:5,6.0.3:', when='@:2.99', type=('build', 'run'))
+ depends_on('py-jupyterlab-server@1.1.5:1.999', when='@:2.99', type=('build', 'run'))
+
+ def setup_run_environment(self, env):
+ env.set('JUPYTERLAB_DIR', self.prefix.share.jupyter.lab)
diff --git a/var/spack/repos/builtin/packages/py-keras-applications/package.py b/var/spack/repos/builtin/packages/py-keras-applications/package.py
index a26a4e8a26..0286cf7719 100644
--- a/var/spack/repos/builtin/packages/py-keras-applications/package.py
+++ b/var/spack/repos/builtin/packages/py-keras-applications/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyKerasApplications(PythonPackage):
"""Sample Deep Learning application in Keras.
Keras depends on this package to run properly."""
- homepage = "http://keras.io"
+ homepage = "https://keras.io"
url = "https://github.com/keras-team/keras-applications/archive/1.0.4.tar.gz"
version('1.0.8', sha256='7c37f9e9ef93efac9b4956301cb21ce46c474ce9da41fac9a46753bab6823dfc')
diff --git a/var/spack/repos/builtin/packages/py-keras-preprocessing/package.py b/var/spack/repos/builtin/packages/py-keras-preprocessing/package.py
index 5129e92201..717dd61b91 100644
--- a/var/spack/repos/builtin/packages/py-keras-preprocessing/package.py
+++ b/var/spack/repos/builtin/packages/py-keras-preprocessing/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyKerasPreprocessing(PythonPackage):
"""Utilities for working with image data, text data, and sequence data."""
homepage = "https://github.com/keras-team/keras-preprocessing"
- url = "https://pypi.io/packages/source/K/Keras-Preprocessing/Keras_Preprocessing-1.1.2.tar.gz"
+ pypi = "Keras-Preprocessing/Keras_Preprocessing-1.1.2.tar.gz"
version('1.1.2', sha256='add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3')
version('1.1.0', sha256='5a8debe01d840de93d49e05ccf1c9b81ae30e210d34dacbcc47aeb3049b528e5')
diff --git a/var/spack/repos/builtin/packages/py-keras/package.py b/var/spack/repos/builtin/packages/py-keras/package.py
index fc9eeaa8a4..164e86d9f9 100644
--- a/var/spack/repos/builtin/packages/py-keras/package.py
+++ b/var/spack/repos/builtin/packages/py-keras/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,10 @@ class PyKeras(PythonPackage):
"""Deep Learning library for Python. Convnets, recurrent neural networks,
and more. Runs on Theano or TensorFlow."""
- homepage = "http://keras.io"
- url = "https://pypi.io/packages/source/K/Keras/Keras-1.2.2.tar.gz"
+ homepage = "https://keras.io"
+ pypi = "Keras/Keras-1.2.2.tar.gz"
+ version('2.4.3', sha256='fedd729b52572fb108a98e3d97e1bac10a81d3917d2103cc20ab2a5f03beb973')
version('2.2.4', sha256='90b610a3dbbf6d257b20a079eba3fdf2eed2158f64066a7c6f7227023fd60bc9')
version('2.2.3', sha256='694aee60a6f8e0d3d6d3e4967e063b4623e3ca90032f023fd6d16bb5f81d18de')
version('2.2.2', sha256='468d98da104ec5c3dbb10c2ef6bb345ab154f6ca2d722d4c250ef4d6105de17a')
@@ -39,9 +40,13 @@ class PyKeras(PythonPackage):
version('1.1.1', sha256='be1b67f62e5119f6f24a239a865dc47e6d9aa93b97b506ba34cab7353dbc23b6')
version('1.1.0', sha256='36d83b027ba9d2c9da8e1eefc28f600ca93dc03423e033b633cbac9061af8a5d')
- depends_on('py-keras-applications', type='run', when='@2.2:')
- depends_on('py-keras-preprocessing', type='run', when='@2.2:')
+ depends_on('python@3.6:', type=('build', 'run'), when='@2.4:')
+ depends_on('py-numpy@1.9.1:', type=('build', 'run'), when='@2.4:')
+ depends_on('py-scipy@0.14:', type=('build', 'run'), when='@2.4:')
+ depends_on('py-h5py', type=('build', 'run'), when='@2.4:')
+ depends_on('py-keras-applications', type='run', when='@2.2')
+ depends_on('py-keras-preprocessing', type='run', when='@2.2')
depends_on('py-setuptools', type='build')
- depends_on('py-theano', type=('build', 'run'))
+ depends_on('py-theano', type=('build', 'run'), when='@:2.2')
depends_on('py-pyyaml', type=('build', 'run'))
- depends_on('py-six', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'), when='@:2.2')
diff --git a/var/spack/repos/builtin/packages/py-kerberos/package.py b/var/spack/repos/builtin/packages/py-kerberos/package.py
index 74cbc56a4c..84afbb8d7c 100644
--- a/var/spack/repos/builtin/packages/py-kerberos/package.py
+++ b/var/spack/repos/builtin/packages/py-kerberos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,10 @@ class PyKerberos(PythonPackage):
that wraps the entire Kerberos.framework, and instead offer a
limited set of functions that do what is needed for client/server
Kerberos authentication based on
- <http://www.ietf.org/rfc/rfc4559.txt>."""
+ <https://www.ietf.org/rfc/rfc4559.txt>."""
homepage = "https://github.com/apple/ccs-pykerberos"
- url = "https://pypi.io/packages/source/k/kerberos/kerberos-1.3.0.tar.gz"
+ pypi = "kerberos/kerberos-1.3.0.tar.gz"
version('1.3.0', sha256='f039b7dd4746df56f6102097b3dc250fe0078be75130b9dc4211a85a3b1ec6a4')
diff --git a/var/spack/repos/builtin/packages/py-keyboard/package.py b/var/spack/repos/builtin/packages/py-keyboard/package.py
new file mode 100644
index 0000000000..3c18da63b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-keyboard/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyKeyboard(PythonPackage):
+ """Take full control of your keyboard with this small
+ Python library. Hook global events, register hotkeys,
+ simulate key presses and much more."""
+
+ homepage = "https://github.com/boppreh/keyboard"
+ pypi = "keyboard/keyboard-0.13.5.zip"
+
+ version('0.13.5', sha256='63ed83305955939ca5c9a73755e5cc43e8242263f5ad5fd3bb7e0b032f3d308b')
+
+ depends_on('py-setuptools', type='build')
+ # depends_on('py-pyobjc', when='platform=darwin', type=('build', 'run'))
+
+ # Until py-pyobjc can be created, specifying conflict with platform=darwin
+ conflicts('platform=darwin')
diff --git a/var/spack/repos/builtin/packages/py-keyring/package.py b/var/spack/repos/builtin/packages/py-keyring/package.py
new file mode 100644
index 0000000000..2014acc389
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-keyring/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyKeyring(PythonPackage):
+ """The Python keyring library provides an easy way to access the system keyring
+ service from python. It can be used in any application that needs safe password
+ storage."""
+
+ homepage = "https://github.com/jaraco/keyring"
+ pypi = "keyring/keyring-23.0.1.tar.gz"
+
+ version('23.0.1', sha256='045703609dd3fccfcdb27da201684278823b72af515aedec1a8515719a038cb8')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm@3.4.1:+toml', type='build')
+ depends_on('py-importlib-metadata@3.6:', type=('build', 'run'))
+ depends_on('py-secretstorage@3.2:', type=('build', 'run'), when='platform=linux')
+ depends_on('py-jeepney@0.4.2:', type=('build', 'run'), when='platform=linux')
+
+ # TODO: additional dependency on pywin32-ctypes required for Windows
diff --git a/var/spack/repos/builtin/packages/py-keyrings-alt/package.py b/var/spack/repos/builtin/packages/py-keyrings-alt/package.py
new file mode 100644
index 0000000000..5d68941994
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-keyrings-alt/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyKeyringsAlt(PythonPackage):
+ """Alternate keyring implementations"""
+
+ homepage = "https://github.com/jaraco/keyrings.alt"
+ pypi = "keyrings.alt/keyrings.alt-4.0.2.tar.gz"
+
+ version('4.0.2', sha256='cc475635099d6edd7e475c5a479e5b4da5e811a3af04495a1e9ada488d16fe25')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm+toml@3.4.1:', type='build')
diff --git a/var/spack/repos/builtin/packages/py-keystoneauth1/package.py b/var/spack/repos/builtin/packages/py-keystoneauth1/package.py
new file mode 100644
index 0000000000..2f1b4714ab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-keystoneauth1/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyKeystoneauth1(PythonPackage):
+ """
+ This package contains tools for authenticating to an OpenStack-based
+ cloud
+ """
+
+ homepage = "https://docs.openstack.org/keystoneauth/"
+ pypi = "keystoneauth1/keystoneauth1-4.3.1.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('4.3.1', sha256='93605430a6d1424f31659bc5685e9dc1be9a6254e88c99f00cffc0a60c648a64')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+
+ depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build')
+ depends_on('py-setuptools', type='build')
+
+ depends_on('py-iso8601@0.1.11:', type=('build', 'run'))
+ depends_on('py-requests@2.14.2:', type=('build', 'run'))
+ depends_on('py-six@1.10.0:', type=('build', 'run'))
+ depends_on('py-stevedore@1.20.0:', type=('build', 'run'))
+ depends_on('py-os-service-types@1.2.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-kitchen/package.py b/var/spack/repos/builtin/packages/py-kitchen/package.py
index 0e8683d5d8..71c781cf9d 100644
--- a/var/spack/repos/builtin/packages/py-kitchen/package.py
+++ b/var/spack/repos/builtin/packages/py-kitchen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyKitchen(PythonPackage):
"""
homepage = "https://fedorahosted.org/kitchen"
- url = "https://pypi.io/packages/source/k/kitchen/kitchen-1.2.6.tar.gz"
+ pypi = "kitchen/kitchen-1.2.6.tar.gz"
version('1.2.6', sha256='b84cf582f1bd1556b60ebc7370b9d331eb9247b6b070ce89dfe959cba2c0b03c')
version('1.1.1', sha256='25670f80bcbabd0656946125cfad310980d5a5900d6c160d4f0187292120284e')
diff --git a/var/spack/repos/builtin/packages/py-kiwisolver/package.py b/var/spack/repos/builtin/packages/py-kiwisolver/package.py
index ebf05e6702..b8b0196db0 100644
--- a/var/spack/repos/builtin/packages/py-kiwisolver/package.py
+++ b/var/spack/repos/builtin/packages/py-kiwisolver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyKiwisolver(PythonPackage):
"""A fast implementation of the Cassowary constraint solver"""
homepage = "https://github.com/nucleic/kiwi"
- url = "https://pypi.io/packages/source/k/kiwisolver/kiwisolver-1.1.0.tar.gz"
+ pypi = "kiwisolver/kiwisolver-1.1.0.tar.gz"
version('1.1.0', sha256='53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75')
version('1.0.1', sha256='ce3be5d520b4d2c3e5eeb4cd2ef62b9b9ab8ac6b6fedbaa0e39cdb6f50644278')
diff --git a/var/spack/repos/builtin/packages/py-kmodes/package.py b/var/spack/repos/builtin/packages/py-kmodes/package.py
index a3bbe8ea75..6f43ac5390 100644
--- a/var/spack/repos/builtin/packages/py-kmodes/package.py
+++ b/var/spack/repos/builtin/packages/py-kmodes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,7 @@ class PyKmodes(PythonPackage):
algorithms for clustering categorical data."""
homepage = "https://github.com/nicodv/kmodes"
- url = "https://pypi.io/packages/source/k/kmodes/kmodes-0.10.1.tar.gz"
-
- import_modules = ['kmodes', 'kmodes.util']
+ pypi = "kmodes/kmodes-0.10.1.tar.gz"
version('0.10.1', sha256='3222c2f672a6356be353955c02d1e38472d9f6074744b4ffb0c058e8c2235ea1')
diff --git a/var/spack/repos/builtin/packages/py-knack/package.py b/var/spack/repos/builtin/packages/py-knack/package.py
index 4fb7ce188f..a11267ca89 100644
--- a/var/spack/repos/builtin/packages/py-knack/package.py
+++ b/var/spack/repos/builtin/packages/py-knack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "knack/knack-0.7.1.tar.gz"
version('0.7.1', sha256='fcef6040164ebe7d69629e4e089b398c9b980791446496301befcf8381dba0fc')
diff --git a/var/spack/repos/builtin/packages/py-kombu/package.py b/var/spack/repos/builtin/packages/py-kombu/package.py
index a4d3af4019..92d4ce9c86 100644
--- a/var/spack/repos/builtin/packages/py-kombu/package.py
+++ b/var/spack/repos/builtin/packages/py-kombu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyKombu(PythonPackage):
"""Messaging library for Python."""
- homepage = "https://pypi.org/project/kombu/"
- url = "https://pypi.io/packages/source/k/kombu/kombu-4.3.0.tar.gz"
+ pypi = "kombu/kombu-4.3.0.tar.gz"
version('5.0.2', sha256='f4965fba0a4718d47d470beeb5d6446e3357a62402b16c510b6a2f251e05ac3c')
version('4.6.11', sha256='ca1b45faac8c0b18493d02a8571792f3c40291cf2bcf1f55afed3d8f3aa7ba74')
diff --git a/var/spack/repos/builtin/packages/py-kornia/package.py b/var/spack/repos/builtin/packages/py-kornia/package.py
new file mode 100644
index 0000000000..e62e532b1c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-kornia/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyKornia(PythonPackage):
+ """Open Source Differentiable Computer Vision Library for PyTorch."""
+
+ homepage = "https://www.kornia.org/"
+ pypi = "kornia/kornia-0.5.10.tar.gz"
+
+ version('0.5.10', sha256='428b4b934a2ba7360cc6cba051ed8fd96c2d0f66611fdca0834e82845f14f65d')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytest-runner', type='build')
+ depends_on('py-torch@1.6.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-kubernetes/package.py b/var/spack/repos/builtin/packages/py-kubernetes/package.py
new file mode 100644
index 0000000000..39150f8fed
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-kubernetes/package.py
@@ -0,0 +1,37 @@
+# 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 PyKubernetes(PythonPackage):
+ """Official Python client library for kubernetes. """
+
+ homepage = "https://kubernetes.io"
+ git = "https://github.com/kubernetes-client/python.git"
+ pypi = "kubernetes/kubernetes-17.17.0.tar.gz"
+
+ maintainers = ['vvolkl']
+
+ version('17.17.0', sha256='c69b318696ba797dcf63eb928a8d4370c52319f4140023c502d7dfdf2080eb79')
+ version('12.0.1', sha256='ec52ea01d52e2ec3da255992f7e859f3a76f2bdb51cf65ba8cd71dfc309d8daa')
+ version('12.0.0', sha256='72f095a1cd593401ff26b3b8d71749340394ca6d8413770ea28ce18efd5bcf4c')
+ version('11.0.0', sha256='1a2472f8b01bc6aa87e3a34781f859bded5a5c8ff791a53d889a8bd6cc550430')
+ version('10.1.0', sha256='85a767d04f17d6d317374b6c35e09eb168a6bfd9276f0b3177cc206376bad968')
+ version('10.0.1', sha256='3770a496663396ad1def665eeadb947b3f45217a08b64b10c01a57e981ac8592')
+ version('9.0.0', sha256='a8b0aed55ba946faea660712595a52ae53a8854df773d96f47a63fa0c9d4e3bf')
+
+ depends_on('py-certifi@14.05.14:', type=('build', 'run'))
+ depends_on('py-six@1.9.0:', type=('build', 'run'))
+ depends_on('py-python-dateutil@2.5.3:', type=('build', 'run'))
+ depends_on('py-setuptools@21.0.0:', type=('build'))
+ depends_on('py-pyyaml@3.12:', type=('build', 'run'))
+ depends_on('py-google-auth@1.0.1:', type=('build', 'run'))
+ depends_on('py-ipaddress@1.0.17:', when='^python@:2.8', type=('build', 'run'))
+ depends_on('py-websocket-client@0.32:0.39,0.43:', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-requests-oauthlib', type=('build', 'run'))
+ depends_on('py-urllib3@1.24.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-labours/package.py b/var/spack/repos/builtin/packages/py-labours/package.py
index b33748ed0e..df8af5bc30 100644
--- a/var/spack/repos/builtin/packages/py-labours/package.py
+++ b/var/spack/repos/builtin/packages/py-labours/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-lap/package.py b/var/spack/repos/builtin/packages/py-lap/package.py
new file mode 100644
index 0000000000..f8e85f1043
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-lap/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyLap(PythonPackage):
+ """lap is a linear assignment problem solver using
+ Jonker-Volgenant algorithm for dense (LAPJV) or sparse (LAPMOD)
+ matrices."""
+
+ homepage = "https://github.com/gatagat/lap"
+ pypi = "lap/lap-0.4.0.tar.gz"
+
+ version('0.4.0', sha256='c4dad9976f0e9f276d8a676a6d03632c3cb7ab7c80142e3b27303d49f0ed0e3b')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython@0.21:', type='build')
+ depends_on('py-numpy@1.10.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-lark-parser/package.py b/var/spack/repos/builtin/packages/py-lark-parser/package.py
index d84e320f1f..bd09418ee1 100644
--- a/var/spack/repos/builtin/packages/py-lark-parser/package.py
+++ b/var/spack/repos/builtin/packages/py-lark-parser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ class PyLarkParser(PythonPackage):
"""Lark is a modern general-purpose parsing library for Python."""
homepage = "https://github.com/lark-parser/lark/"
- url = "https://pypi.io/packages/source/l/lark-parser/lark-parser-0.6.2.tar.gz"
+ pypi = "lark-parser/lark-parser-0.6.2.tar.gz"
+ version('0.11.3', sha256='e29ca814a98bb0f81674617d878e5f611cb993c19ea47f22c80da3569425f9bd')
version('0.7.1', sha256='8455e05d062fa7f9d59a2735583cf02291545f944955c4056bf1144c4e625344')
version('0.6.2', sha256='7e2934371e0e3a5daf9afc2e3ddda76117cabcd3c3f2edf7987c1e4e9b9e503c')
diff --git a/var/spack/repos/builtin/packages/py-latexcodec/package.py b/var/spack/repos/builtin/packages/py-latexcodec/package.py
index d379022142..0cf09c3aea 100644
--- a/var/spack/repos/builtin/packages/py-latexcodec/package.py
+++ b/var/spack/repos/builtin/packages/py-latexcodec/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,8 @@ from spack import *
class PyLatexcodec(PythonPackage):
"""A lexer and codec to work with LaTeX code in Python."""
- homepage = "http://latexcodec.readthedocs.io"
- url = "https://pypi.io/packages/source/l/latexcodec/latexcodec-1.0.4.tar.gz"
-
- import_modules = ['latexcodec']
+ homepage = "https://latexcodec.readthedocs.io"
+ pypi = "latexcodec/latexcodec-1.0.4.tar.gz"
version('1.0.4', sha256='62bf8a3ee298f169a4d014dad5522bc1325b54dc98789a453fd338620387cb6c')
diff --git a/var/spack/repos/builtin/packages/py-lazy-object-proxy/package.py b/var/spack/repos/builtin/packages/py-lazy-object-proxy/package.py
index 36cac03c58..2dac51e390 100644
--- a/var/spack/repos/builtin/packages/py-lazy-object-proxy/package.py
+++ b/var/spack/repos/builtin/packages/py-lazy-object-proxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,11 +10,12 @@ class PyLazyObjectProxy(PythonPackage):
"""A fast and thorough lazy object proxy."""
homepage = "https://github.com/ionelmc/python-lazy-object-proxy"
- url = "https://pypi.io/packages/source/l/lazy-object-proxy/lazy-object-proxy-1.3.1.tar.gz"
+ pypi = "lazy-object-proxy/lazy-object-proxy-1.3.1.tar.gz"
version('1.4.3', sha256='f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0')
version('1.3.1', sha256='eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools-scm@3.3.1:', type='build', when='@1.4.0:')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-lazy-property/package.py b/var/spack/repos/builtin/packages/py-lazy-property/package.py
index b6acd6a82e..b8d4e54743 100644
--- a/var/spack/repos/builtin/packages/py-lazy-property/package.py
+++ b/var/spack/repos/builtin/packages/py-lazy-property/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-lazy/package.py b/var/spack/repos/builtin/packages/py-lazy/package.py
index d8f2a46022..1d0d2c2255 100644
--- a/var/spack/repos/builtin/packages/py-lazy/package.py
+++ b/var/spack/repos/builtin/packages/py-lazy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyLazy(PythonPackage):
"""Lazy attributes for Python objects"""
- homepage = "https://pypi.python.org/pypi/lazy"
- url = "https://pypi.io/packages/source/l/lazy/lazy-1.2.zip"
+ pypi = "lazy/lazy-1.2.zip"
version('1.2', sha256='127ea610418057b953f0d102bed83f2c367be13b59f8d0ddf3b8a86c7d31b970')
diff --git a/var/spack/repos/builtin/packages/py-lazyarray/package.py b/var/spack/repos/builtin/packages/py-lazyarray/package.py
index cc9e68f8f3..21e6dc6da2 100644
--- a/var/spack/repos/builtin/packages/py-lazyarray/package.py
+++ b/var/spack/repos/builtin/packages/py-lazyarray/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,11 +10,17 @@ class PyLazyarray(PythonPackage):
"""a Python package that provides a lazily-evaluated numerical array class,
larray, based on and compatible with NumPy arrays."""
- homepage = "http://bitbucket.org/apdavison/lazyarray/"
- url = "https://pypi.io/packages/source/l/lazyarray/lazyarray-0.2.8.tar.gz"
+ homepage = "https://lazyarray.readthedocs.io/en/latest/"
+ pypi = "lazyarray/lazyarray-0.2.8.tar.gz"
+ version('0.3.2', sha256='be980534c5950a976709085570f69be9534bdf0f3e5c21a9113de3ee2052683e')
version('0.2.10', sha256='7a53f81b5f3a098c04003d2ad179fc197451fd96bc921510f8534c6af8cc8e19')
version('0.2.8', sha256='aaee4e18117cc512de7a4e64522f37bc6f4bf125ecffdbdbf4e4e390fbdd9ba2')
+ # Required versions come from doc/installation.txt or:
+ # https://lazyarray.readthedocs.io/en/latest/installation.html#dependencies
+ depends_on('python@2.7:', when='@0.3:', type=('build', 'run'))
depends_on('py-numpy@1.3:', type=('build', 'run'))
+ depends_on('py-numpy@1.8:', type=('build', 'run'), when='@0.3:')
depends_on('py-numpy@1.5:', type=('build', 'run'), when='^python@3:')
+ depends_on('py-numpy@1.12:', type=('build', 'run'), when='@0.3:^python@3:')
diff --git a/var/spack/repos/builtin/packages/py-leather/package.py b/var/spack/repos/builtin/packages/py-leather/package.py
index 96aecebd96..9747940972 100644
--- a/var/spack/repos/builtin/packages/py-leather/package.py
+++ b/var/spack/repos/builtin/packages/py-leather/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyLeather(PythonPackage):
don't care if they're perfect."""
homepage = "https://leather.readthedocs.io/en/stable/"
- url = "https://pypi.io/packages/source/l/leather/leather-0.3.3.tar.gz"
+ pypi = "leather/leather-0.3.3.tar.gz"
version('0.3.3', sha256='076d1603b5281488285718ce1a5ce78cf1027fe1e76adf9c548caf83c519b988')
diff --git a/var/spack/repos/builtin/packages/py-lerc/package.py b/var/spack/repos/builtin/packages/py-lerc/package.py
new file mode 100644
index 0000000000..fd7180bd86
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-lerc/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyLerc(PythonPackage):
+ """Limited Error Raster Compression."""
+
+ homepage = "https://github.com/Esri/lerc"
+ pypi = "lerc/lerc-0.1.0.tar.gz"
+
+ version('0.1.0', sha256='46cac3f5a0194518f49a52e3ae073093fc85b0d79396383b64b1f9dba4aeacc1')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-libconf/package.py b/var/spack/repos/builtin/packages/py-libconf/package.py
index 4cfeb251da..998f35e476 100644
--- a/var/spack/repos/builtin/packages/py-libconf/package.py
+++ b/var/spack/repos/builtin/packages/py-libconf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyLibconf(PythonPackage):
"""A pure-Python libconfig reader/writer with permissive license"""
- homepage = "https://pypi.python.org/pypi/libconf"
- url = "https://pypi.io/packages/source/l/libconf/libconf-1.0.1.tar.gz"
+ pypi = "libconf/libconf-1.0.1.tar.gz"
version('1.0.1', sha256='6dd62847bb69ab5a09155cb8be2328cce01e7ef88a35e7c37bea2b1a70f8bd58')
diff --git a/var/spack/repos/builtin/packages/py-libensemble/package.py b/var/spack/repos/builtin/packages/py-libensemble/package.py
index 55e7b46e59..bbc24170db 100644
--- a/var/spack/repos/builtin/packages/py-libensemble/package.py
+++ b/var/spack/repos/builtin/packages/py-libensemble/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,16 +11,18 @@ class PyLibensemble(PythonPackage):
"""Library for managing ensemble-like collections of computations."""
homepage = "https://libensemble.readthedocs.io"
- url = "https://pypi.io/packages/source/l/libensemble/libensemble-0.7.1.tar.gz"
- git = "https://github.com/Libensemble/libensemble.git"
+ pypi = "libensemble/libensemble-0.7.2.tar.gz"
+ git = "https://github.com/Libensemble/libensemble.git"
+ maintainers = ['shuds13']
version('develop', branch='develop')
+ version('0.7.2', sha256='69b64304d1ecce4d57687ea6062f89bd813ae93b2a290bb1f595c5626ab6f197')
version('0.7.1', sha256='5cb294269624c1284ea25be9ed3bc668a2333e21e97a97b57ad339eb85435e46')
version('0.7.0', sha256='4c3c16ef3d4750b7a54198fae5d7ae402c5f5411ae85189da41afd20e20027dc')
version('0.6.0', sha256='3f6a926d3868da53835ed93fc2e2a047b368dacb648c7608ee3a66debcee4d38')
version('0.5.2', sha256='3e36c29a4a2adc0984ecfcc998cb5bb8a2cdfbe7a1ae92f7b35b06e41d21b889')
version('0.5.1', sha256='522e0cc086a3ed75a101b704c0fe01eae07f2684bd8d6da7bdfe9371d3187362')
- version('0.5.0', sha256='c4623171dee049bfaa38a9c433609299a56b1afb774db8b71321247bc7556b8f')
+ version('0.5.0', sha256='c4623171dee049bfaa38a9c433609299a56b1afb774db8b71321247bc7556b8f')
version('0.4.1', sha256='282c32ffb79d84cc80b5cc7043c202d5f0b8ebff10f63924752f092e3938db5e')
version('0.4.0', sha256='9384aa3a58cbc20bbd1c6fddfadb5e6a943d593a3a81c8665f030dbc6d76e76e')
version('0.3.0', sha256='c8efdf45d0da0ef6299ee778cea1c285c95972af70d3a729ee6dc855e66f9294')
@@ -33,6 +35,7 @@ class PyLibensemble(PythonPackage):
variant('nlopt', default=False, description='Install with nlopt')
variant('mpmath', default=False, description='Install with mpmath')
variant('deap', default=False, description='Install with DEAP')
+ variant('tasmanian', default=False, description='Install with tasmanian')
# depends_on('python@2.7:2.8,3.3:', when='@:0.4.1')
# depends_on('python@3.5:', when='@0.5.0:')
@@ -46,8 +49,9 @@ class PyLibensemble(PythonPackage):
depends_on('py-mpi4py@2.0:', type=('build', 'run'), when='+mpi')
depends_on('py-scipy', type=('build', 'run'), when='+scipy')
depends_on('py-petsc4py', type=('build', 'run'), when='+petsc4py')
- depends_on('py-petsc4py@develop', type=('build', 'run'), when='@develop+petsc4py')
+ depends_on('py-petsc4py@main', type=('build', 'run'), when='@develop+petsc4py')
depends_on('nlopt', type=('build', 'run'), when='+nlopt')
depends_on('py-mpmath', type=('build', 'run'), when='+mpmath')
depends_on('py-deap', type=('build', 'run'), when='+deap')
+ depends_on('tasmanian+python', type=('build', 'run'), when='+tasmanian')
conflicts('~mpi', when='@:0.4.1')
diff --git a/var/spack/repos/builtin/packages/py-librosa/package.py b/var/spack/repos/builtin/packages/py-librosa/package.py
index c720c12e63..f579bd8c89 100644
--- a/var/spack/repos/builtin/packages/py-librosa/package.py
+++ b/var/spack/repos/builtin/packages/py-librosa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyLibrosa(PythonPackage):
"""A python package for music and audio analysis."""
- homepage = "http://github.com/librosa/librosa"
- url = "https://pypi.io/packages/source/l/librosa/librosa-0.7.2.tar.gz"
+ homepage = "https://github.com/librosa/librosa"
+ pypi = "librosa/librosa-0.7.2.tar.gz"
version('0.7.2', sha256='656bbda80e98e6330db1ead79cd084b13a762284834d7603fcf7cf7c0dc65f3c')
diff --git a/var/spack/repos/builtin/packages/py-lifelines/package.py b/var/spack/repos/builtin/packages/py-lifelines/package.py
index ddbe26a06e..581a66c339 100644
--- a/var/spack/repos/builtin/packages/py-lifelines/package.py
+++ b/var/spack/repos/builtin/packages/py-lifelines/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyLifelines(PythonPackage):
parts of survival analysis."""
homepage = "https://github.com/CamDavidsonPilon/lifelines"
- url = "https://pypi.io/packages/source/l/lifelines/lifelines-0.25.5.tar.gz"
+ pypi = "lifelines/lifelines-0.25.5.tar.gz"
version('0.25.5', sha256='f24260aa371829354440dfc2c1be8d59d9e841cce7a933230213cecd67787b89')
version('0.9.4', sha256='0f19a8b18ace80c231de60487b2b1a3de3eb418445c6a6d0d72c1110d860f676')
diff --git a/var/spack/repos/builtin/packages/py-lightgbm/package.py b/var/spack/repos/builtin/packages/py-lightgbm/package.py
new file mode 100644
index 0000000000..5bcef6498c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-lightgbm/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2021 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 PyLightgbm(PythonPackage):
+ """LightGBM is a gradient boosting framework that uses tree
+ based learning algorithms."""
+
+ homepage = "https://github.com/microsoft/LightGBM"
+ pypi = "lightgbm/lightgbm-3.1.1.tar.gz"
+
+ version('3.1.1', sha256='babece2e3613e97748a67ed45387bb0e984bdb1f4126e39f010fbfe7503c7b20')
+
+ variant('mpi', default=False, description="Build with mpi support")
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-wheel', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-scikit-learn@:0.21.999,0.22.1:', type=('build', 'run'))
+
+ depends_on('cmake@3.8:', type='build')
+
+ depends_on('mpi', when='+mpi')
+
+ def install_args(self, spec, prefix):
+ args = []
+
+ if spec.satisfies('+mpi'):
+ args.append('--mpi')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/py-ligo-segments/package.py b/var/spack/repos/builtin/packages/py-ligo-segments/package.py
index aacb0affc5..997e509f01 100644
--- a/var/spack/repos/builtin/packages/py-ligo-segments/package.py
+++ b/var/spack/repos/builtin/packages/py-ligo-segments/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyLigoSegments(PythonPackage):
"""Representations of semi-open intervals."""
- homepage = "https://pypi.org/project/ligo-segments/"
- url = "https://pypi.io/packages/source/l/ligo-segments/ligo-segments-1.2.0.tar.gz"
+ pypi = "ligo-segments/ligo-segments-1.2.0.tar.gz"
version('1.2.0', sha256='5edbcb88cae007c4e154a61cb2c9d0a6d6d4016c1ecaf0a59a667a267bd20e7a')
diff --git a/var/spack/repos/builtin/packages/py-line-profiler/package.py b/var/spack/repos/builtin/packages/py-line-profiler/package.py
index c252dca53f..dd6167db48 100644
--- a/var/spack/repos/builtin/packages/py-line-profiler/package.py
+++ b/var/spack/repos/builtin/packages/py-line-profiler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyLineProfiler(PythonPackage):
"""Line-by-line profiler."""
homepage = "https://github.com/rkern/line_profiler"
- url = "https://pypi.io/packages/source/l/line_profiler/line_profiler-2.0.tar.gz"
+ pypi = "line_profiler/line_profiler-2.0.tar.gz"
version('2.1.2', sha256='efa66e9e3045aa7cb1dd4bf0106e07dec9f80bc781a993fbaf8162a36c20af5c')
version('2.0', sha256='739f8ad0e4bcd0cb82e99afc09e00a0351234f6b3f0b1f7f0090a8a2fbbf8381')
diff --git a/var/spack/repos/builtin/packages/py-linecache2/package.py b/var/spack/repos/builtin/packages/py-linecache2/package.py
index b490059705..4ddd9f49a5 100644
--- a/var/spack/repos/builtin/packages/py-linecache2/package.py
+++ b/var/spack/repos/builtin/packages/py-linecache2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,11 +10,9 @@ class PyLinecache2(PythonPackage):
"""Backports of the linecache module"""
homepage = "https://github.com/testing-cabal/linecache2"
- url = "https://pypi.io/packages/source/l/linecache2/linecache2-1.0.0.tar.gz"
+ pypi = "linecache2/linecache2-1.0.0.tar.gz"
version('1.0.0', sha256='4b26ff4e7110db76eeb6f5a7b64a82623839d595c2038eeda662f2a2db78e97c')
depends_on('py-setuptools', type='build')
depends_on('py-pbr', type='build')
- depends_on('py-fixtures', type='test')
- depends_on('py-unittest2', type='test')
diff --git a/var/spack/repos/builtin/packages/py-lineenhancer/package.py b/var/spack/repos/builtin/packages/py-lineenhancer/package.py
new file mode 100644
index 0000000000..bc4432fede
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-lineenhancer/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyLineenhancer(PythonPackage):
+ """The line enhancer is only used by crYOLO internally"""
+
+ homepage = "https://github.com/MPI-Dortmund/LineEnhancer"
+ pypi = "lineenhancer/lineenhancer-1.0.8.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('1.0.8', sha256='a1c7f2556110135d7298b0002674b669b8bbf23f94d63e3e3db8f17f2fd3efbe')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.14.5:', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-mrcfile', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-lit/package.py b/var/spack/repos/builtin/packages/py-lit/package.py
index b09f8cb956..1c2eacfafb 100644
--- a/var/spack/repos/builtin/packages/py-lit/package.py
+++ b/var/spack/repos/builtin/packages/py-lit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,7 @@ class PyLit(PythonPackage):
designed to be a lightweight testing tool with as simple a user
interface as possible."""
- homepage = "https://pypi.python.org/pypi/lit"
- url = "https://pypi.io/packages/source/l/lit/lit-0.5.0.tar.gz"
+ pypi = "lit/lit-0.5.0.tar.gz"
version('0.7.1', sha256='ecef2833aef7f411cb923dac109c7c9dcc7dbe7cafce0650c1e8d19c243d955f')
version('0.5.0', sha256='3ea4251e78ebeb2e07be2feb33243d1f8931d956efc96ccc2b0846ced212b58c')
diff --git a/var/spack/repos/builtin/packages/py-llvmlite/package.py b/var/spack/repos/builtin/packages/py-llvmlite/package.py
index fcfcd0407e..4f8623748d 100644
--- a/var/spack/repos/builtin/packages/py-llvmlite/package.py
+++ b/var/spack/repos/builtin/packages/py-llvmlite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyLlvmlite(PythonPackage):
"""A lightweight LLVM python binding for writing JIT compilers"""
- homepage = "http://llvmlite.readthedocs.io/en/latest/index.html"
- url = "https://pypi.io/packages/source/l/llvmlite/llvmlite-0.23.0.tar.gz"
+ homepage = "https://llvmlite.readthedocs.io/en/latest/index.html"
+ pypi = "llvmlite/llvmlite-0.23.0.tar.gz"
version('0.34.0', sha256='f03ee0d19bca8f2fe922bb424a909d05c28411983b0c2bc58b020032a0d11f63')
version('0.33.0', sha256='9c8aae96f7fba10d9ac864b443d1e8c7ee4765c31569a2b201b3d0b67d8fc596')
@@ -28,15 +28,22 @@ class PyLlvmlite(PythonPackage):
depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3.99')
# llvmlite compatibility information taken from https://github.com/numba/llvmlite#compatibility
- depends_on('llvm@10.0:10.0.99', when='@0.34.0:')
- depends_on('llvm@9.0:9.0.99', when='@0.33.0:0.33.99')
- depends_on('llvm@7.0:8.0.99', when='@0.29.0:0.32.99')
- depends_on('llvm@7.0:7.0.99', when='@0.27.0:0.28.99')
- depends_on('llvm@6.0:6.0.99', when='@0.23.0:0.26.99')
- depends_on('llvm@4.0:4.0.99', when='@0.17.0:0.20.99')
+ for t in ['arm:', 'ppc:', 'ppc64:', 'ppc64le:', 'ppcle:',
+ 'sparc:', 'sparc64:', 'x86:', 'x86_64:']:
+ depends_on('llvm@10.0:10.0.99~flang', when='@0.34.0: target={0}'.format(t))
+ depends_on('llvm@9.0:9.0.99~flang', when='@0.34.0: target=aarch64:')
+ depends_on('llvm@9.0:9.0.99~flang', when='@0.33.0:0.33.99')
+ depends_on('llvm@7.0:8.0.99~flang', when='@0.29.0:0.32.99')
+ depends_on('llvm@7.0:7.0.99~flang', when='@0.27.0:0.28.99')
+ depends_on('llvm@6.0:6.0.99~flang', when='@0.23.0:0.26.99')
+ depends_on('llvm@4.0:4.0.99~flang', when='@0.17.0:0.20.99')
depends_on('binutils', type='build')
def setup_build_environment(self, env):
- # Need to set PIC flag since this is linking statically with LLVM
- env.set('CXX_FLTO_FLAGS', '-flto {0}'.format(
- self.compiler.cxx_pic_flag))
+ if self.spec.satisfies('%fj'):
+ env.set('CXX_FLTO_FLAGS', '{0}'.format(self.compiler.cxx_pic_flag))
+ env.set('LD_FLTO_FLAGS', '-Wl,--exclude-libs=ALL')
+ else:
+ # Need to set PIC flag since this is linking statically with LLVM
+ env.set('CXX_FLTO_FLAGS', '-flto {0}'.format(
+ self.compiler.cxx_pic_flag))
diff --git a/var/spack/repos/builtin/packages/py-lmfit/package.py b/var/spack/repos/builtin/packages/py-lmfit/package.py
index 9f70b89aa0..316565c175 100644
--- a/var/spack/repos/builtin/packages/py-lmfit/package.py
+++ b/var/spack/repos/builtin/packages/py-lmfit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,20 +9,25 @@ from spack import *
class PyLmfit(PythonPackage):
"""Least-Squares Minimization with Bounds and Constraints"""
- homepage = "http://lmfit.github.io/lmfit-py/"
- url = "https://pypi.io/packages/source/l/lmfit/lmfit-0.9.5.tar.gz"
+ homepage = "https://lmfit.github.io/lmfit-py/"
+ pypi = "lmfit/lmfit-0.9.5.tar.gz"
+ version('1.0.2', sha256='67090ce56685cf7f92bd7358a1e7d4ad862b3758988109ec440e9825e5184b45')
version('1.0.1', sha256='d249eb756899360f4d2a544c9458f47fc8f765ac22c09e099530585fd64e286e')
version('0.9.15', sha256='cd7bdf47c09a3d49f30dff9a1c7f778973d15d1e1b5dc642f14c22f6630eaf2f')
version('0.9.5', sha256='eebc3c34ed9f3e51bdd927559a5482548c423ad5a0690c6fdcc414bfb5be6667')
- depends_on('python@3.5:', type=('build', 'run'), when='@1:')
+ depends_on('python@3.6:', type=('build', 'run'), when='@1:')
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@0.9.15')
- depends_on('py-asteval@0.9.16', type=('build', 'run'), when='@0.9.15:')
+
+ depends_on('py-asteval@0.9.16:', type=('build', 'run'), when='@0.9.15:')
+
depends_on('py-numpy@1.5:', type=('build', 'run'), when='@0.9.5:')
depends_on('py-numpy@1.16:', type=('build', 'run'), when='@0.9.15:')
+
depends_on('py-scipy@0.14:', type=('build', 'run'), when='@0.9.5')
depends_on('py-scipy@1.2:', type=('build', 'run'), when='@0.9.15:')
+
depends_on('py-setuptools', type='build')
depends_on('py-six@1.11:', type=('build', 'run'), when='@0.9.15')
depends_on('py-uncertainties@3.0.1:', type=('build', 'run'), when='@0.9.15:')
diff --git a/var/spack/repos/builtin/packages/py-lmodule/package.py b/var/spack/repos/builtin/packages/py-lmodule/package.py
index 13574e88d6..36d0f20174 100644
--- a/var/spack/repos/builtin/packages/py-lmodule/package.py
+++ b/var/spack/repos/builtin/packages/py-lmodule/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyLmodule(PythonPackage):
environment-modules to interact with module using the Module class."""
homepage = "https://lmodule.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/l/lmodule/lmodule-0.1.0.tar.gz"
+ pypi = "lmodule/lmodule-0.1.0.tar.gz"
git = "https://github.com/buildtesters/lmodule"
maintainers = ['shahzebsiddiqui']
diff --git a/var/spack/repos/builtin/packages/py-localcider/package.py b/var/spack/repos/builtin/packages/py-localcider/package.py
index 7603a6045d..0a6ac349af 100644
--- a/var/spack/repos/builtin/packages/py-localcider/package.py
+++ b/var/spack/repos/builtin/packages/py-localcider/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyLocalcider(PythonPackage):
"""Tools for calculating sequence properties of disordered proteins"""
- homepage = "http://pappulab.github.io/localCIDER"
- url = "https://pypi.io/packages/source/l/localcider/localcider-0.1.14.tar.gz"
+ homepage = "https://pappulab.github.io/localCIDER"
+ pypi = "localcider/localcider-0.1.14.tar.gz"
version('0.1.14', sha256='54ff29e8a011947cca5df79e96f3c69a76c49c4db41dcf1608663992be3e3f5f')
diff --git a/var/spack/repos/builtin/packages/py-locket/package.py b/var/spack/repos/builtin/packages/py-locket/package.py
index 2ef69b2992..b90423b9c3 100644
--- a/var/spack/repos/builtin/packages/py-locket/package.py
+++ b/var/spack/repos/builtin/packages/py-locket/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,7 @@ from spack import *
class PyLocket(PythonPackage):
"""File-based locks for Python for Linux and Windows."""
- homepage = "http://github.com/mwilliamson/locket.py"
- url = "https://pypi.io/packages/source/l/locket/locket-0.2.0.tar.gz"
-
- import_modules = ['locket']
+ homepage = "https://github.com/mwilliamson/locket.py"
+ pypi = "locket/locket-0.2.0.tar.gz"
version('0.2.0', sha256='1fee63c1153db602b50154684f5725564e63a0f6d09366a1cb13dffcec179fb4')
diff --git a/var/spack/repos/builtin/packages/py-lockfile/package.py b/var/spack/repos/builtin/packages/py-lockfile/package.py
index 9731208b51..8de746add6 100644
--- a/var/spack/repos/builtin/packages/py-lockfile/package.py
+++ b/var/spack/repos/builtin/packages/py-lockfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,8 +17,7 @@ class PyLockfile(PythonPackage):
SQLite is also provided, more as a demonstration of the
possibilities it provides than as production-quality code.
"""
- homepage = "https://pypi.python.org/pypi/lockfile"
- url = "https://pypi.io/packages/source/l/lockfile/lockfile-0.10.2.tar.gz"
+ pypi = "lockfile/lockfile-0.10.2.tar.gz"
version('0.10.2', sha256='9e42252f17d1dd89ee31745e0c4fbe58862c25147eb0ef5295c9cd9bcb4ea2c1')
diff --git a/var/spack/repos/builtin/packages/py-logilab-common/package.py b/var/spack/repos/builtin/packages/py-logilab-common/package.py
index ad55892341..69c09f6fce 100644
--- a/var/spack/repos/builtin/packages/py-logilab-common/package.py
+++ b/var/spack/repos/builtin/packages/py-logilab-common/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyLogilabCommon(PythonPackage):
"""Common modules used by Logilab projects"""
homepage = "https://www.logilab.org/project/logilab-common"
- url = "https://pypi.io/packages/source/l/logilab-common/logilab-common-1.2.0.tar.gz"
+ pypi = "logilab-common/logilab-common-1.2.0.tar.gz"
version('1.4.2', sha256='cdda9ed0deca7c68f87f7a404ad742e47aaa1ca5956d12988236a5ec3bda13a0')
version('1.2.0', sha256='d4e5cec3be3a89f06ff05e359a221e69bd1da33cb7096cad648ddcccea8465b7')
@@ -18,4 +18,3 @@ class PyLogilabCommon(PythonPackage):
depends_on("py-setuptools", type=('build', 'run'))
depends_on("py-six@1.4.0:", type=('build', 'run'))
depends_on("py-unittest2@0.5.1:", type=('build', 'run'), when='^python@:2.7')
- depends_on("py-pytz", type='test')
diff --git a/var/spack/repos/builtin/packages/py-louie/package.py b/var/spack/repos/builtin/packages/py-louie/package.py
index dc23bd7a4d..f514e77c7f 100644
--- a/var/spack/repos/builtin/packages/py-louie/package.py
+++ b/var/spack/repos/builtin/packages/py-louie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-lru-dict/package.py b/var/spack/repos/builtin/packages/py-lru-dict/package.py
index aa31ec491e..e618fb48e6 100644
--- a/var/spack/repos/builtin/packages/py-lru-dict/package.py
+++ b/var/spack/repos/builtin/packages/py-lru-dict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyLruDict(PythonPackage):
"""A fast LRU cache"""
homepage = "https://github.com/amitdev/lru-dict"
- url = "https://pypi.io/packages/source/l/lru-dict/lru-dict-1.1.6.tar.gz"
+ pypi = "lru-dict/lru-dict-1.1.6.tar.gz"
version('1.1.6', sha256='365457660e3d05b76f1aba3e0f7fedbfcd6528e97c5115a351ddd0db488354cc')
diff --git a/var/spack/repos/builtin/packages/py-lscsoft-glue/package.py b/var/spack/repos/builtin/packages/py-lscsoft-glue/package.py
index f746285d3a..a8dab0ad45 100644
--- a/var/spack/repos/builtin/packages/py-lscsoft-glue/package.py
+++ b/var/spack/repos/builtin/packages/py-lscsoft-glue/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyLscsoftGlue(PythonPackage):
certain metadata services, such as the LSC segment database."""
homepage = "https://www.lsc-group.phys.uwm.edu/daswg/projects/glue.html"
- url = "https://pypi.io/packages/source/l/lscsoft-glue/lscsoft-glue-2.0.0.tar.gz"
+ pypi = "lscsoft-glue/lscsoft-glue-2.0.0.tar.gz"
version('2.0.0', sha256='9bdfaebe4c921d83d1e3d1ca24379a644665e9d7530e7070665f387767c66923')
diff --git a/var/spack/repos/builtin/packages/py-luigi/package.py b/var/spack/repos/builtin/packages/py-luigi/package.py
index 18adbff049..849c2a0228 100644
--- a/var/spack/repos/builtin/packages/py-luigi/package.py
+++ b/var/spack/repos/builtin/packages/py-luigi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,14 +10,27 @@ class PyLuigi(PythonPackage):
"""Workflow mgmgt + task scheduling + dependency resolution"""
homepage = "https://github.com/spotify/luigi"
- url = "https://pypi.io/packages/source/l/luigi/luigi-2.8.3.tar.gz"
+ pypi = "luigi/luigi-2.8.3.tar.gz"
+ version('3.0.3', sha256='7edc05a32bcff5aad28d7c7e3b15b761ef13fe2a495692602ebf0800eba66849')
+ version('3.0.2', sha256='b4b1ccf086586d041d7e91e68515d495c550f30e4d179d63863fea9ccdbb78eb')
+ version('3.0.1', sha256='f158f4e093638bf734e2f4f08261bdba414bac7187ab69f1d6f8c95b1c408409')
version('2.8.3', sha256='8b5c84a3c3f4df07309056d3b98348b93c054f1931b7ee22fc29e7989f645c9e')
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
+ depends_on('python@3.3:', type=('build', 'run'), when='@3.0.0:')
+ depends_on('python@3.5:', type=('build', 'run'), when='@3.0.2:')
+
depends_on('py-setuptools', type='build')
- depends_on('py-tornado@4.0:4.99', type=('build', 'run'))
- depends_on('py-python-daemon@:2.1', type=('build', 'run'))
- depends_on('py-python-dateutil@2.7.5', when='@2.8.3:', type=('build', 'run'))
- depends_on('py-pytest@3.3.0:', type='test')
+ depends_on('py-enum34@1.1.1:', when='^python@:3.3.999', type=('build', 'run'))
+
+ depends_on('py-tornado@4.0:4.999', type=('build', 'run'), when='@:2.999')
+ depends_on('py-tornado@5.0:5.999', type=('build', 'run'), when='@3.0.1')
+ depends_on('py-tornado@5.0:6.999', type=('build', 'run'), when='@3.0.2:')
+
+ depends_on('py-tenacity@6.3.0:6.999', type=('build', 'run'), when='@3.0.3:')
+
+ depends_on('py-python-daemon', type=('build', 'run'))
+
+ depends_on('py-python-dateutil@2.7.5:2.999', when='@2.8.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-lxml/package.py b/var/spack/repos/builtin/packages/py-lxml/package.py
index 78b82ccbf8..0a4cfe54f9 100644
--- a/var/spack/repos/builtin/packages/py-lxml/package.py
+++ b/var/spack/repos/builtin/packages/py-lxml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,11 @@ class PyLxml(PythonPackage):
"""lxml is the most feature-rich and easy-to-use library for processing
XML and HTML in the Python language."""
- homepage = "http://lxml.de/"
- url = "https://pypi.io/packages/source/l/lxml/lxml-4.4.1.tar.gz"
+ homepage = "https://lxml.de/"
+ pypi = "lxml/lxml-4.6.1.tar.gz"
+ version('4.6.3', sha256='39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468')
+ version('4.6.1', sha256='c152b2e93b639d1f36ec5a8ca24cde4a8eefb2b6b83668fcd8e83a67badcb367')
version('4.5.2', sha256='cdc13a1682b2a6241080745b1953719e7fe0850b40a5c71ca574f090a1391df6')
version('4.4.1', sha256='c81cb40bff373ab7a7446d6bbca0190bccc5be3448b47b51d729e37799bb5692')
version('4.3.3', sha256='4a03dd682f8e35a10234904e0b9508d705ff98cf962c5851ed052e9340df3d90')
@@ -26,8 +28,8 @@ class PyLxml(PythonPackage):
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('libxml2', type=('build', 'link', 'run'))
- depends_on('libxslt', type=('build', 'link', 'run'))
+ depends_on('libxml2@2.9.2:', type=('build', 'link', 'run'))
+ depends_on('libxslt@1.1.27:', type=('build', 'link', 'run'))
depends_on('py-html5lib', when='+html5', type=('build', 'run'))
depends_on('py-beautifulsoup4', when='+htmlsoup', type=('build', 'run'))
depends_on('py-cssselect@0.7:', when='+cssselect', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-lz4/package.py b/var/spack/repos/builtin/packages/py-lz4/package.py
index 656b7e0266..57fcf26afe 100644
--- a/var/spack/repos/builtin/packages/py-lz4/package.py
+++ b/var/spack/repos/builtin/packages/py-lz4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyLz4(PythonPackage):
"""lz4 (compression library) bindings for Python"""
homepage = "https://github.com/python-lz4/python-lz4"
- url = "https://pypi.io/packages/source/l/lz4/lz4-3.1.0.tar.gz"
+ pypi = "lz4/lz4-3.1.0.tar.gz"
version('3.1.0', sha256='debe75513db3eb9e5cdcd82a329ff38374b6316ab65b848b571e0404746c1e05')
diff --git a/var/spack/repos/builtin/packages/py-lzstring/package.py b/var/spack/repos/builtin/packages/py-lzstring/package.py
index 33eb630918..296e34f94e 100644
--- a/var/spack/repos/builtin/packages/py-lzstring/package.py
+++ b/var/spack/repos/builtin/packages/py-lzstring/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyLzstring(PythonPackage):
"""lz-string for python."""
homepage = "https://github.com/gkovacs/lz-string-python"
- url = "https://pypi.io/packages/source/l/lzstring/lzstring-1.0.3.tar.gz"
+ pypi = "lzstring/lzstring-1.0.3.tar.gz"
version('1.0.3', sha256='d54dd5a5f86837ccfc1343cc9f1cb0674d2d6ebd4b49f6408c35104f0a996cb4')
diff --git a/var/spack/repos/builtin/packages/py-m2r/package.py b/var/spack/repos/builtin/packages/py-m2r/package.py
index a107f6d18e..619e3128a8 100644
--- a/var/spack/repos/builtin/packages/py-m2r/package.py
+++ b/var/spack/repos/builtin/packages/py-m2r/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-macholib/package.py b/var/spack/repos/builtin/packages/py-macholib/package.py
index 702ea07e0b..fe59bcce3e 100644
--- a/var/spack/repos/builtin/packages/py-macholib/package.py
+++ b/var/spack/repos/builtin/packages/py-macholib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyMacholib(PythonPackage):
"""Python package for Mach-O header analysis and editing"""
- homepage = "https://pypi.python.org/pypi/macholib"
- url = "https://pypi.io/packages/source/m/macholib/macholib-1.11.tar.gz"
+ pypi = "macholib/macholib-1.11.tar.gz"
version('1.11', 'c4180ffc6f909bf8db6cd81cff4b6f601d575568f4d5dee148c830e9851eb9db')
diff --git a/var/spack/repos/builtin/packages/py-machotools/package.py b/var/spack/repos/builtin/packages/py-machotools/package.py
index a0b4337892..a322edb5b7 100644
--- a/var/spack/repos/builtin/packages/py-machotools/package.py
+++ b/var/spack/repos/builtin/packages/py-machotools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyMachotools(PythonPackage):
"""Python package for editing Mach-O headers using macholib"""
- homepage = "https://pypi.python.org/pypi/machotools"
- url = "https://pypi.io/packages/source/m/machotools/machotools-0.2.0.tar.gz"
+ pypi = "machotools/machotools-0.2.0.tar.gz"
version('0.2.0', sha256='e3950fa263169087d44a3d0521a3267d5128efd1b85252670c7171955939ab58')
diff --git a/var/spack/repos/builtin/packages/py-macs2/package.py b/var/spack/repos/builtin/packages/py-macs2/package.py
index b9703842b5..62c21dfa36 100644
--- a/var/spack/repos/builtin/packages/py-macs2/package.py
+++ b/var/spack/repos/builtin/packages/py-macs2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyMacs2(PythonPackage):
"""MACS2 Model-based Analysis of ChIP-Seq"""
homepage = "https://github.com/taoliu/MACS"
- url = "https://pypi.io/packages/source/M/MACS2/MACS2-2.2.4.tar.gz"
+ pypi = "MACS2/MACS2-2.2.4.tar.gz"
version('2.2.4', sha256='b131aadc8f5fd94bec35308b821e1f7585def788d2e7c756fc8cac402ffee25b')
version('2.1.4', sha256='e4966d001914320829ab859c7bc8e92c6410aa7bdbddfd00b7625e9a0fb15c97')
diff --git a/var/spack/repos/builtin/packages/py-maestrowf/package.py b/var/spack/repos/builtin/packages/py-maestrowf/package.py
index 69812a6b38..90826e746f 100644
--- a/var/spack/repos/builtin/packages/py-maestrowf/package.py
+++ b/var/spack/repos/builtin/packages/py-maestrowf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyMaestrowf(PythonPackage):
simulation studies."""
homepage = "https://github.com/LLNL/maestrowf/"
- url = "https://pypi.io/packages/source/m/maestrowf/maestrowf-1.1.8.tar.gz"
+ pypi = "maestrowf/maestrowf-1.1.8.tar.gz"
git = "https://github.com/LLNL/maestrowf/"
maintainers = ['FrankD412']
diff --git a/var/spack/repos/builtin/packages/py-magic/package.py b/var/spack/repos/builtin/packages/py-magic/package.py
index ed29fdcdbb..dcc5d9a1ba 100644
--- a/var/spack/repos/builtin/packages/py-magic/package.py
+++ b/var/spack/repos/builtin/packages/py-magic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-mailchecker/package.py b/var/spack/repos/builtin/packages/py-mailchecker/package.py
new file mode 100644
index 0000000000..f4191dfe99
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-mailchecker/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyMailchecker(PythonPackage):
+ """Cross-language email validation. Backed by a database of thousands
+ throwable email providers"""
+
+ homepage = "https://github.com/FGRibreau/mailchecker"
+ pypi = "mailchecker/mailchecker-4.0.3.tar.gz"
+
+ version('4.0.3', sha256='00dbe9739c754366233eb3887c5deef987672482a26e814314c3e749fc7b1d1f')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-mako/package.py b/var/spack/repos/builtin/packages/py-mako/package.py
index b60dd8d184..8ae2da458b 100644
--- a/var/spack/repos/builtin/packages/py-mako/package.py
+++ b/var/spack/repos/builtin/packages/py-mako/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,11 @@ class PyMako(PythonPackage):
"""A super-fast templating language that borrows the best
ideas from the existing templating languages."""
- homepage = "https://pypi.python.org/pypi/mako"
- url = "https://pypi.io/packages/source/M/Mako/Mako-1.0.1.tar.gz"
+ pypi = "Mako/Mako-1.0.1.tar.gz"
+ version('1.1.4', sha256='17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab')
version('1.0.4', sha256='fed99dbe4d0ddb27a33ee4910d8708aca9ef1fe854e668387a9ab9a90cbf9059')
version('1.0.1', sha256='45f0869febea59dab7efd256fb451c377cbb7947bef386ff0bb44627c31a8d1c')
depends_on('py-setuptools', type='build')
- depends_on('py-mock', type='test')
- depends_on('py-pytest', type='test')
depends_on('py-markupsafe@0.9.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-mapclassify/package.py b/var/spack/repos/builtin/packages/py-mapclassify/package.py
new file mode 100644
index 0000000000..b3974e42b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-mapclassify/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyMapclassify(PythonPackage):
+ """Classification Schemes for Choropleth Maps."""
+
+ homepage = "https://github.com/pysal/mapclassify"
+ pypi = "mapclassify/mapclassify-2.4.2.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('2.4.2', sha256='bc20954aa433466f5fbc572e3f23b05f9606b59209f40b0ded93ac1ca983d24e')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-scipy@1.0:', type=('build', 'run'))
+ depends_on('py-numpy@1.3:', type=('build', 'run'))
+ depends_on('py-scikit-learn', type=('build', 'run'))
+ depends_on('py-pandas@1.0:', type=('build', 'run'))
+ depends_on('py-networkx', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-markdown/package.py b/var/spack/repos/builtin/packages/py-markdown/package.py
index 665d94dee4..5fa98f749f 100644
--- a/var/spack/repos/builtin/packages/py-markdown/package.py
+++ b/var/spack/repos/builtin/packages/py-markdown/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,8 +14,8 @@ class PyMarkdown(PythonPackage):
Documentation for the syntax rules.
"""
- homepage = "https://pythonhosted.org/Markdown/"
- url = "https://pypi.io/packages/source/m/markdown/Markdown-2.6.11.tar.gz"
+ homepage = "https://python-markdown.github.io/"
+ pypi = "markdown/Markdown-2.6.11.tar.gz"
version('3.1.1', sha256='2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a')
version('2.6.11', sha256='a856869c7ff079ad84a3e19cd87a64998350c2b94e9e08e44270faef33400f81')
diff --git a/var/spack/repos/builtin/packages/py-markdown2/package.py b/var/spack/repos/builtin/packages/py-markdown2/package.py
new file mode 100644
index 0000000000..b3cf580238
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-markdown2/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyMarkdown2(PythonPackage):
+ """A fast and complete Python implementation of Markdown."""
+
+ homepage = "https://github.com/trentm/python-markdown2"
+ pypi = "markdown2/markdown2-2.3.9.tar.gz"
+
+ version('2.4.0', sha256='28d769f0e544e6f68f684f01e9b186747b079a6927d9ca77ebc8c640a2829b1b')
+
+ depends_on('python@3.5:3.999', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-markovify/package.py b/var/spack/repos/builtin/packages/py-markovify/package.py
index d7b93c1e3d..bb18d7ec74 100644
--- a/var/spack/repos/builtin/packages/py-markovify/package.py
+++ b/var/spack/repos/builtin/packages/py-markovify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyMarkovify(PythonPackage):
corpora of text and generating random sentences from that."""
homepage = "https://github.com/jsvine/markovify"
- url = "https://pypi.io/packages/source/m/markovify/markovify-0.8.3.tar.gz"
+ pypi = "markovify/markovify-0.8.3.tar.gz"
version('0.8.3', sha256='254405c5b2f819ae388c39a53e6bc038bfbc24713441869ce90a1cd67e4a89ce')
diff --git a/var/spack/repos/builtin/packages/py-markupsafe/package.py b/var/spack/repos/builtin/packages/py-markupsafe/package.py
index f334d03cee..c6c5157dce 100644
--- a/var/spack/repos/builtin/packages/py-markupsafe/package.py
+++ b/var/spack/repos/builtin/packages/py-markupsafe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,11 +12,10 @@ class PyMarkupsafe(PythonPackage):
implement automatic string escaping. It is used by Jinja 2, the
Mako templating engine, the Pylons web framework and many more."""
- homepage = "http://www.pocoo.org/projects/markupsafe/"
- url = "https://pypi.io/packages/source/M/MarkupSafe/MarkupSafe-1.1.1.tar.gz"
-
- import_modules = ['markupsafe']
+ homepage = "https://markupsafe.palletsprojects.com"
+ pypi = "MarkupSafe/MarkupSafe-1.1.1.tar.gz"
+ version('2.0.1', sha256='594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a')
version('1.1.1', sha256='29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b')
version('1.0', sha256='a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665')
version('0.23', sha256='a4ec1aff59b95a14b45eb2e23761a0179e98319da5a7eb76b56ea8cdc7b871c3')
@@ -25,5 +24,6 @@ class PyMarkupsafe(PythonPackage):
version('0.20', sha256='f6cf3bd233f9ea6147b21c7c02cac24e5363570ce4fd6be11dab9f499ed6a7d8')
version('0.19', sha256='62fcc5d641df8b5ad271ebbd6b77a19cd92eceba1e1a990de4e96c867789f037')
+ depends_on('python@3.6:', when='@2:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-matplotlib-inline/package.py b/var/spack/repos/builtin/packages/py-matplotlib-inline/package.py
new file mode 100644
index 0000000000..e4a2408f1d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-matplotlib-inline/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyMatplotlibInline(PythonPackage):
+ """Inline Matplotlib backend for Jupyter."""
+
+ homepage = "https://github.com/martinRenou/matplotlib-inline"
+ pypi = "matplotlib-inline/matplotlib-inline-0.1.2.tar.gz"
+
+ version('0.1.2', sha256='f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-traitlets', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py
index ebb95033cf..916b2fac63 100644
--- a/var/spack/repos/builtin/packages/py-matplotlib/package.py
+++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,20 +11,24 @@ class PyMatplotlib(PythonPackage):
and interactive visualizations in Python."""
homepage = "https://matplotlib.org/"
- url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.3.2.tar.gz"
+ pypi = "matplotlib/matplotlib-3.3.2.tar.gz"
maintainers = ['adamjstewart']
-
import_modules = [
- 'mpl_toolkits', 'matplotlib', 'mpl_toolkits.axes_grid1',
- 'mpl_toolkits.axes_grid', 'mpl_toolkits.mplot3d',
- 'mpl_toolkits.axisartist', 'matplotlib.compat', 'matplotlib.tri',
- 'matplotlib.axes', 'matplotlib.sphinxext', 'matplotlib.cbook',
- 'matplotlib.backends', 'matplotlib.style', 'matplotlib.projections',
- 'matplotlib.testing', 'matplotlib.backends.qt_editor',
- 'matplotlib.testing.jpl_units'
+ 'mpl_toolkits.axes_grid1', 'mpl_toolkits.axes_grid',
+ 'mpl_toolkits.mplot3d', 'mpl_toolkits.axisartist', 'matplotlib',
+ 'matplotlib.compat', 'matplotlib.tri', 'matplotlib.axes',
+ 'matplotlib.sphinxext', 'matplotlib.cbook', 'matplotlib.backends',
+ 'matplotlib.backends.qt_editor', 'matplotlib.style',
+ 'matplotlib.projections', 'matplotlib.testing',
+ 'matplotlib.testing.jpl_units', 'pylab'
]
+ version('3.4.3', sha256='fc4f526dfdb31c9bd6b8ca06bf9fab663ca12f3ec9cdf4496fb44bc680140318')
+ version('3.4.2', sha256='d8d994cefdff9aaba45166eb3de4f5211adb4accac85cbf97137e98f26ea0219')
+ version('3.4.1', sha256='84d4c4f650f356678a5d658a43ca21a41fca13f9b8b00169c0b76e6a6a948908')
+ version('3.4.0', sha256='424ddb3422c65b284a38a97eb48f5cb64b66a44a773e0c71281a347f1738f146')
+ version('3.3.4', sha256='3e477db76c22929e4c6876c44f88d790aacdf3c3f8f3a90cb1975c0bf37825b0')
version('3.3.3', sha256='b1b60c6476c4cfe9e5cf8ab0d3127476fd3d5f05de0f343a452badaad0e4bdec')
version('3.3.2', sha256='3d2edbf59367f03cd9daf42939ca06383a7d7803e3993eb5ff1bee8e8a3fbb6b')
version('3.3.1', sha256='87f53bcce90772f942c2db56736788b39332d552461a5cb13f05ff45c1680f0e')
@@ -44,10 +48,10 @@ class PyMatplotlib(PythonPackage):
version('2.2.2', sha256='4dc7ef528aad21f22be85e95725234c5178c0f938e2228ca76640e5e84d8cde8')
version('2.0.2', sha256='0ffbc44faa34a8b1704bc108c451ecf87988f900ef7ce757b8e2e84383121ff1')
version('2.0.0', sha256='36cf0985829c1ab2b8b1dae5e2272e53ae681bf33ab8bedceed4f0565af5f813')
- version('1.5.3', sha256='a0a5dc39f785014f2088fed2c6d2d129f0444f71afbb9c44f7bdf1b14d86ebbc')
- version('1.5.1', sha256='3ab8d968eac602145642d0db63dd8d67c85e9a5444ce0e2ecb2a8fedc7224d40')
- version('1.4.3', sha256='61f201c6a82e89e4d9e324266203fad44f95fd8f36d8eec0d8690273e1182f75')
- version('1.4.2', sha256='17a3c7154f152d8dfed1f37517c0a8c5db6ade4f6334f684989c36dab84ddb54')
+ version('1.5.3', sha256='a0a5dc39f785014f2088fed2c6d2d129f0444f71afbb9c44f7bdf1b14d86ebbc', deprecated=True)
+ version('1.5.1', sha256='3ab8d968eac602145642d0db63dd8d67c85e9a5444ce0e2ecb2a8fedc7224d40', deprecated=True)
+ version('1.4.3', sha256='61f201c6a82e89e4d9e324266203fad44f95fd8f36d8eec0d8690273e1182f75', deprecated=True)
+ version('1.4.2', sha256='17a3c7154f152d8dfed1f37517c0a8c5db6ade4f6334f684989c36dab84ddb54', deprecated=True)
# https://matplotlib.org/tutorials/introductory/usage.html#backends
# From `lib/matplotlib/rcsetup.py`:
@@ -65,7 +69,9 @@ class PyMatplotlib(PythonPackage):
if sys.platform == 'darwin':
default_backend = 'macosx'
- variant('backend', default=default_backend, description='Default backend',
+ variant('backend', default=default_backend,
+ description='Default backend. All backends are installed and ' +
+ 'functional as long as dependencies are found at run-time',
values=all_backends, multi=False)
variant('movies', default=False,
description='Enable support for saving movies')
@@ -84,19 +90,22 @@ class PyMatplotlib(PythonPackage):
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('python@3.7:', when='@3.4:', type=('build', 'link', 'run'))
depends_on('freetype@2.3:') # freetype 2.6.1 needed for tests to pass
depends_on('qhull@2015.2:', when='@3.3:')
depends_on('libpng@1.2:')
- depends_on('py-certifi@2020.6.20:', when='@3.3.1:3.3.2', type=('build', 'run'))
- depends_on('py-certifi@2020.6.20:', when='@3.3.3:', type='build')
+ depends_on('py-setuptools', type=('build', 'run')) # See #3813
+ depends_on('py-certifi@2020.6.20:', when='@3.3.1:', type='build')
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-numpy@1.16:', when='@3.4:', type=('build', 'run'))
depends_on('py-cycler@0.10:', type=('build', 'run'))
- depends_on('py-python-dateutil@2.1:', type=('build', 'run'))
depends_on('py-kiwisolver@1.0.1:', type=('build', 'run'), when='@2.2.0:')
- 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('pil@6.2.0:', when='@3.3:', type=('build', 'run'))
+ 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-pyparsing@2.2.1:', when='@3.4:', type=('build', 'run'))
+ depends_on('py-python-dateutil@2.1:', type=('build', 'run'))
+ depends_on('py-python-dateutil@2.7:', when='@3.4:', 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')
@@ -132,7 +141,7 @@ class PyMatplotlib(PythonPackage):
depends_on('imagemagick', when='+animation')
depends_on('pil@3.4:', when='+image', type=('build', 'run'))
depends_on('texlive', when='+latex', type='run')
- depends_on('ghostscript@0.9:', when='+latex', type='run')
+ depends_on('ghostscript@9.0:', when='+latex', type='run')
depends_on('fontconfig@2.7:', when='+fonts')
depends_on('pkgconfig', type='build')
@@ -182,7 +191,11 @@ class PyMatplotlib(PythonPackage):
setup.write('[libs]\n')
setup.write('system_freetype = True\n')
setup.write('system_qhull = True\n')
+ if self.spec.satisfies('%clang'):
+ setup.write('enable_lto = False\n')
+ @run_after('build')
+ @on_package_attributes(run_tests=True)
def build_test(self):
pytest = which('pytest')
pytest()
diff --git a/var/spack/repos/builtin/packages/py-mayavi/package.py b/var/spack/repos/builtin/packages/py-mayavi/package.py
index 1fe477bbc7..1d74cdbf0b 100644
--- a/var/spack/repos/builtin/packages/py-mayavi/package.py
+++ b/var/spack/repos/builtin/packages/py-mayavi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyMayavi(PythonPackage):
"""Mayavi: 3D visualization of scientific data in Python."""
homepage = "https://docs.enthought.com/mayavi/mayavi/index.html"
- url = "https://pypi.io/packages/source/m/mayavi/mayavi-4.7.1.tar.bz2"
+ pypi = "mayavi/mayavi-4.7.1.tar.bz2"
version('4.7.1', sha256='be51fb6f886f304f7c593c907e6a2e88d7919f8f446cdccfcd184fa35b3db724')
diff --git a/var/spack/repos/builtin/packages/py-mccabe/package.py b/var/spack/repos/builtin/packages/py-mccabe/package.py
index cd4c0df089..898ec641d1 100644
--- a/var/spack/repos/builtin/packages/py-mccabe/package.py
+++ b/var/spack/repos/builtin/packages/py-mccabe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -28,7 +28,6 @@ class PyMccabe(PythonPackage):
depends_on('python@2.7:2.8,3.3:')
depends_on('py-setuptools', type='build')
- depends_on('py-pytest', type='test')
def patch(self):
"""Filter pytest-runner requirement out of setup.py."""
diff --git a/var/spack/repos/builtin/packages/py-mdanalysis/package.py b/var/spack/repos/builtin/packages/py-mdanalysis/package.py
index 0651123ef3..ab1a86e3a7 100644
--- a/var/spack/repos/builtin/packages/py-mdanalysis/package.py
+++ b/var/spack/repos/builtin/packages/py-mdanalysis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class PyMdanalysis(PythonPackage):
Gromacs. (See the lists of supported trajectory formats and
topology formats.)"""
- homepage = "http://www.mdanalysis.org"
- url = "https://pypi.io/packages/source/M/MDAnalysis/MDAnalysis-0.19.2.tar.gz"
+ homepage = "https://www.mdanalysis.org"
+ pypi = "MDAnalysis/MDAnalysis-0.19.2.tar.gz"
version('1.0.0', sha256='f45a024aca45e390ff1c45ca90beb2180b78881be377e2a1aa9cd6c109bcfa81')
version('0.20.1', sha256='d04b71b193b9716d2597ffb9938b93f43487fa535da1bb5c1f2baccf356d7df9')
@@ -41,7 +41,7 @@ class PyMdanalysis(PythonPackage):
depends_on('py-six@1.4.0:', type=('build', 'run'))
depends_on('py-networkx@1.0:', type=('build', 'run'))
- depends_on('py-gsd@1.4.0:', when='@1.17.0:', type=('build', 'run'))
+ depends_on('py-gsd@1.4.0:', when='@0.17.0:', type=('build', 'run'))
depends_on('py-mmtf-python@1.0.0:', when='@0.16.0:', type=('build', 'run'))
depends_on('py-mock', when='@0.18.0:', type=('build', 'run'))
depends_on('py-tqdm@4.43.0:', when='@1.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-mechanize/package.py b/var/spack/repos/builtin/packages/py-mechanize/package.py
index 06ae015836..a85bdf4ccf 100644
--- a/var/spack/repos/builtin/packages/py-mechanize/package.py
+++ b/var/spack/repos/builtin/packages/py-mechanize/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyMechanize(PythonPackage):
"""Stateful programmatic web browsing."""
homepage = "https://github.com/python-mechanize/mechanize"
- url = "https://pypi.io/packages/source/m/mechanize/mechanize-0.4.3.tar.gz"
+ pypi = "mechanize/mechanize-0.4.3.tar.gz"
version('0.4.3', sha256='d7d7068be5e1b3069575c98c870aaa96dd26603fe8c8697b470e2f65259fddbf')
version('0.2.5', sha256='2e67b20d107b30c00ad814891a095048c35d9d8cb9541801cebe85684cc84766')
diff --git a/var/spack/repos/builtin/packages/py-memory-profiler/package.py b/var/spack/repos/builtin/packages/py-memory-profiler/package.py
index ee3f3ec760..cb942d458b 100644
--- a/var/spack/repos/builtin/packages/py-memory-profiler/package.py
+++ b/var/spack/repos/builtin/packages/py-memory-profiler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyMemoryProfiler(PythonPackage):
"""A module for monitoring memory usage of a python program"""
homepage = "https://github.com/fabianp/memory_profiler"
- url = "https://pypi.io/packages/source/m/memory_profiler/memory_profiler-0.57.0.tar.gz"
+ pypi = "memory_profiler/memory_profiler-0.57.0.tar.gz"
version('0.57.0', sha256='23b196f91ea9ac9996e30bfab1e82fecc30a4a1d24870e81d1e81625f786a2c3')
version('0.47', sha256='e992f2a341a5332dad1ad4a008eeac7cfe78c7ea4abdf7535a3e7e79093328cb')
diff --git a/var/spack/repos/builtin/packages/py-memprof/package.py b/var/spack/repos/builtin/packages/py-memprof/package.py
new file mode 100644
index 0000000000..c7d0c650c6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-memprof/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyMemprof(PythonPackage):
+ """memprof logs and plots the memory usage of all the
+ variables during the execution of the decorated methods."""
+
+ homepage = "https://jmdana.github.io/memprof/"
+ pypi = "memprof/memprof-0.3.6.tar.gz"
+
+ version('0.3.6', sha256='a8376ce476bf82a5eb465d1a30b8ffc86cc55b0b6de7aa4cdeccb4c99586d967')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython', type='build')
+ depends_on('py-argparse', when='^python@:2.6', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-mercantile/package.py b/var/spack/repos/builtin/packages/py-mercantile/package.py
new file mode 100644
index 0000000000..dc752b3477
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-mercantile/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyMercantile(PythonPackage):
+ """Web mercator XYZ tile utilities."""
+
+ homepage = "https://github.com/mapbox/mercantile"
+ pypi = "mercantile/mercantile-1.1.6.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('1.1.6', sha256='0dff4cbc2c92ceca0e0dfbb3dc74392a96d33cfa29afb1bdfcc80283d3ef4207')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-click@3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-merlin/package.py b/var/spack/repos/builtin/packages/py-merlin/package.py
index 199c0bcd5f..0d0aef7c8a 100644
--- a/var/spack/repos/builtin/packages/py-merlin/package.py
+++ b/var/spack/repos/builtin/packages/py-merlin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyMerlin(PythonPackage):
"""Merlin Workflow for HPC."""
homepage = "https://github.com/LLNL/merlin"
- url = "https://pypi.io/packages/source/m/merlin/merlin-1.4.1.tar.gz"
+ pypi = "merlin/merlin-1.4.1.tar.gz"
git = "https://github.com/LLNL/merlin.git"
version('1.7.5', sha256='1994c1770ec7fc9da216f9d0ca8214684dcc0daa5fd55337b96e308b2e68daaa')
@@ -21,9 +21,6 @@ class PyMerlin(PythonPackage):
depends_on('python@3.6:', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
-
- depends_on('py-pytest', type='test')
-
depends_on('py-cached-property', type=('build', 'run'))
depends_on('py-celery@5.0.0+redis+sqlalchemy', when="@1.7.5:", type=('build', 'run'))
depends_on('py-celery@4.3.0:4.999+redis+sqlalchemy', when="@:1.7.4", type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-meshio/package.py b/var/spack/repos/builtin/packages/py-meshio/package.py
new file mode 100644
index 0000000000..3efcf581e6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-meshio/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyMeshio(PythonPackage):
+ """MeshIO is a Python library to read and write many mesh formats."""
+
+ homepage = "https://github.com/nschloe/meshio"
+ pypi = "meshio/meshio-5.0.0.tar.gz"
+
+ version('5.0.0', sha256='f6327c06d6171d30e0991d3dcb048751035f9cfac1f19e2444971275fd971188')
+
+ # MeshIO uses a setup.cfg/pyproject.toml structure, which spack doesn't yet handle.
+ # This patch adds a small setup.py file that spack can call.
+ patch('setup.patch')
+
+ depends_on('python@3.7:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-importlib-metadata', when='^python@:3.7', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-meshio/setup.patch b/var/spack/repos/builtin/packages/py-meshio/setup.patch
new file mode 100644
index 0000000000..77089e871f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-meshio/setup.patch
@@ -0,0 +1,10 @@
+diff --git a/setup.py b/setup.py
+new file mode 100644
+index 0000000..7f1a176
+--- /dev/null
++++ b/setup.py
+@@ -0,0 +1,4 @@
++from setuptools import setup
++
++if __name__ == "__main__":
++ setup()
diff --git a/var/spack/repos/builtin/packages/py-metasv/package.py b/var/spack/repos/builtin/packages/py-metasv/package.py
index f9b81e4209..3ddece1a09 100644
--- a/var/spack/repos/builtin/packages/py-metasv/package.py
+++ b/var/spack/repos/builtin/packages/py-metasv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyMetasv(PythonPackage):
"""An accurate and integrative structural-variant caller for next
generation sequencing"""
- homepage = "http://bioinform.github.io/metasv/"
+ homepage = "https://bioinform.github.io/metasv/"
url = "https://github.com/bioinform/metasv/archive/0.5.4.tar.gz"
version('0.5.4', sha256='c8613b56f44b9303b9e126618b2aee9dbc0b26c03d14e70e1aeed918582eeec1')
diff --git a/var/spack/repos/builtin/packages/py-methylcode/package.py b/var/spack/repos/builtin/packages/py-methylcode/package.py
index 698588600a..1de785fbc3 100644
--- a/var/spack/repos/builtin/packages/py-methylcode/package.py
+++ b/var/spack/repos/builtin/packages/py-methylcode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-metpy/package.py b/var/spack/repos/builtin/packages/py-metpy/package.py
new file mode 100644
index 0000000000..b60b08fe9c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-metpy/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2021 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 PyMetpy(PythonPackage):
+ """Collection of tools for reading, visualizing and performing calculations
+ with weather data."""
+
+ homepage = "https://github.com/Unidata/MetPy"
+ pypi = "MetPy/MetPy-1.0.1.tar.gz"
+ maintainers = ['dopplershift']
+
+ # Importing 'metpy.io' results in downloads, so skip it.
+ # https://github.com/Unidata/MetPy/issues/1888
+ import_modules = ['metpy', 'metpy._vendor', 'metpy.calc', 'metpy.interpolate']
+
+ version('1.0.1', sha256='16fa9806facc24f31f454b898741ec5639a72ba9d4ff8a19ad0e94629d93cb95')
+ version('1.0', sha256='11b043aaa4e3d35db319e96bb9967eb9f73da653e155bca2d62f838108b100dc',
+ deprecated=True)
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-importlib-metadata@1.0.0:', when='^python@:3.7.999', type=('build', 'run'))
+ depends_on('py-importlib-resources@1.3.0:', when='^python@:3.8.999', type=('build', 'run'))
+ depends_on('py-matplotlib@2.1.0:', type=('build', 'run'))
+ depends_on('py-numpy@1.16.0:', type=('build', 'run'))
+ depends_on('py-pandas@0.22.0:', when='@1.0', type=('build', 'run'))
+ depends_on('py-pandas@0.24.0:', when='@1.0.1', type=('build', 'run'))
+ depends_on('py-pint@0.10.1:', type=('build', 'run'))
+ depends_on('py-pooch@0.1:', type=('build', 'run'))
+ depends_on('py-pyproj@2.3.0:', type=('build', 'run'))
+ depends_on('py-scipy@1.0:', type=('build', 'run'))
+ depends_on('py-traitlets@4.3.0:', type=('build', 'run'))
+ depends_on('py-xarray@0.14.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-mg-rast-tools/package.py b/var/spack/repos/builtin/packages/py-mg-rast-tools/package.py
index 80f444c207..a30d0d4738 100644
--- a/var/spack/repos/builtin/packages/py-mg-rast-tools/package.py
+++ b/var/spack/repos/builtin/packages/py-mg-rast-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-mido/package.py b/var/spack/repos/builtin/packages/py-mido/package.py
index 695d21623e..7bc86cf73f 100644
--- a/var/spack/repos/builtin/packages/py-mido/package.py
+++ b/var/spack/repos/builtin/packages/py-mido/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-mikado/package.py b/var/spack/repos/builtin/packages/py-mikado/package.py
new file mode 100644
index 0000000000..83a32b846f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-mikado/package.py
@@ -0,0 +1,41 @@
+# Copyright 2013-2021 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 PyMikado(PythonPackage):
+ """Mikado is a lightweight Python3 pipeline whose purpose is to facilitate
+ the identification of expressed loci from RNA-Seq data * and to select
+ the best models in each locus."""
+
+ homepage = "https://github.com/EI-CoreBioinformatics/mikado"
+ pypi = "Mikado/Mikado-1.2.4.tar.gz"
+
+ version('1.2.4', sha256='c0485dba3b7c285599809e058c83f33b5efa9522d20d9f980423410604207f61')
+
+ depends_on('py-wheel@0.28.0:', type='build')
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-jsonschema', type=('build', 'run'))
+ depends_on('py-cython@0.25:', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-networkx@1.10:', type=('build', 'run'))
+ depends_on('py-sqlalchemy@1:', type=('build', 'run'))
+ depends_on('py-sqlalchemy-utils', type=('build', 'run'))
+ depends_on('py-biopython@1.66:', type=('build', 'run'))
+ depends_on('py-intervaltree', type=('build', 'run'))
+ depends_on('py-nose', type=('build', 'run'))
+ depends_on('py-pyfaidx', type=('build', 'run'))
+ depends_on('py-scikit-learn@0.17.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.15.0:', type=('build', 'run'))
+ depends_on('py-python-magic', type=('build', 'run'))
+ depends_on('py-drmaa', type=('build', 'run'))
+ depends_on('snakemake', type=('build', 'run'))
+ depends_on('py-docutils@:0.13.0,0.13.2:', type=('build', 'run'))
+ depends_on('py-tabulate', type=('build', 'run'))
+ depends_on('py-ujson', type=('build', 'run'))
+ depends_on('py-simplejson', type=('build', 'run'))
+ depends_on('python@3.4:', type=('build', 'run'))
+ depends_on('py-typing', when='^python@:3.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-minrpc/package.py b/var/spack/repos/builtin/packages/py-minrpc/package.py
index 606c3c987b..5832f976e4 100644
--- a/var/spack/repos/builtin/packages/py-minrpc/package.py
+++ b/var/spack/repos/builtin/packages/py-minrpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyMinrpc(PythonPackage):
"""Minimalistic RPC utility (only used within cpymad and pytao)."""
homepage = "https://github.com/hibtc/minrpc"
- url = "https://pypi.io/packages/source/m/minrpc/minrpc-0.0.11.tar.gz"
+ pypi = "minrpc/minrpc-0.0.11.tar.gz"
version('0.0.11', sha256='bed53160f2774fdae7bd3d0fb5d1c77d17395394ec28a9e95a5859f486b54893')
diff --git a/var/spack/repos/builtin/packages/py-misopy/package.py b/var/spack/repos/builtin/packages/py-misopy/package.py
index d55896c680..a09959c93f 100644
--- a/var/spack/repos/builtin/packages/py-misopy/package.py
+++ b/var/spack/repos/builtin/packages/py-misopy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class PyMisopy(PythonPackage):
RNA-Seq data, and identifies differentially regulated isoforms or exons
across samples."""
- homepage = "http://miso.readthedocs.io/en/fastmiso/"
- url = "https://pypi.io/packages/source/m/misopy/misopy-0.5.4.tar.gz"
+ homepage = "https://miso.readthedocs.io/en/fastmiso/"
+ pypi = "misopy/misopy-0.5.4.tar.gz"
version('0.5.4', sha256='377a28b0c254b1920ffdc2d89cf96c3a21cadf1cf148ee6d6ef7a88ada067dfc')
diff --git a/var/spack/repos/builtin/packages/py-mistune/package.py b/var/spack/repos/builtin/packages/py-mistune/package.py
index f500e469d9..ea6402f7ac 100644
--- a/var/spack/repos/builtin/packages/py-mistune/package.py
+++ b/var/spack/repos/builtin/packages/py-mistune/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyMistune(PythonPackage):
"""
Python markdown parser
"""
- homepage = "http://mistune.readthedocs.org/en/latest/"
+ homepage = "https://mistune.readthedocs.org/en/latest/"
url = "https://github.com/lepture/mistune/archive/v0.7.1.tar.gz"
version('0.8.4', sha256='a1443771ea9ed7268a0cb3cf31462604ae148938ba32070bd5c54545f8f36a5d')
diff --git a/var/spack/repos/builtin/packages/py-mixedhtseq/package.py b/var/spack/repos/builtin/packages/py-mixedhtseq/package.py
index c01348a099..4a497872cf 100644
--- a/var/spack/repos/builtin/packages/py-mixedhtseq/package.py
+++ b/var/spack/repos/builtin/packages/py-mixedhtseq/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+from spack import *
+
class PyMixedhtseq(PythonPackage):
"""HTSeq for mixed single and paired end reads"""
diff --git a/var/spack/repos/builtin/packages/py-mlperf-logging/package.py b/var/spack/repos/builtin/packages/py-mlperf-logging/package.py
index 8511471c37..2db75fac19 100644
--- a/var/spack/repos/builtin/packages/py-mlperf-logging/package.py
+++ b/var/spack/repos/builtin/packages/py-mlperf-logging/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-mlxtend/package.py b/var/spack/repos/builtin/packages/py-mlxtend/package.py
index 3fb1aef151..6916148f5b 100644
--- a/var/spack/repos/builtin/packages/py-mlxtend/package.py
+++ b/var/spack/repos/builtin/packages/py-mlxtend/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyMlxtend(PythonPackage):
"""Mlxtend (machine learning extensions) is a Python library of useful
tools for the day-to-day data science tasks."""
- homepage = "http://rasbt.github.io/mlxtend/"
+ homepage = "https://rasbt.github.io/mlxtend/"
url = "https://github.com/rasbt/mlxtend/archive/v0.16.0.tar.gz"
version('0.16.0', sha256='38789b36173630bf18e2244b035e7e6b44a87a0ae65cf04935cd2eecbf6595a1')
diff --git a/var/spack/repos/builtin/packages/py-mmcv/package.py b/var/spack/repos/builtin/packages/py-mmcv/package.py
index c98d9014fc..d8a5ac91e0 100644
--- a/var/spack/repos/builtin/packages/py-mmcv/package.py
+++ b/var/spack/repos/builtin/packages/py-mmcv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-mmtf-python/package.py b/var/spack/repos/builtin/packages/py-mmtf-python/package.py
index e86f4b7f8e..2ad6ad5204 100644
--- a/var/spack/repos/builtin/packages/py-mmtf-python/package.py
+++ b/var/spack/repos/builtin/packages/py-mmtf-python/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyMmtfPython(PythonPackage):
biological structures."""
homepage = "https://github.com/rcsb/mmtf-python"
- url = "https://pypi.io/packages/source/m/mmtf-python/mmtf-python-1.1.2.tar.gz"
+ pypi = "mmtf-python/mmtf-python-1.1.2.tar.gz"
version('1.1.2', sha256='a5caa7fcd2c1eaa16638b5b1da2d3276cbd3ed3513f0c2322957912003b6a8df')
diff --git a/var/spack/repos/builtin/packages/py-mo-pack/package.py b/var/spack/repos/builtin/packages/py-mo-pack/package.py
index c880d5d584..bbbe0ee6c3 100644
--- a/var/spack/repos/builtin/packages/py-mo-pack/package.py
+++ b/var/spack/repos/builtin/packages/py-mo-pack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,3 +18,6 @@ class PyMoPack(PythonPackage):
depends_on('libmo-unpack')
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-cython', type=('build', 'run'))
+
+ def setup_build_environment(self, env):
+ env.append_flags('LDFLAGS', self.spec['libmo-unpack'].libs.search_flags)
diff --git a/var/spack/repos/builtin/packages/py-mock/package.py b/var/spack/repos/builtin/packages/py-mock/package.py
index 1f35d26020..e5a97fc89e 100644
--- a/var/spack/repos/builtin/packages/py-mock/package.py
+++ b/var/spack/repos/builtin/packages/py-mock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyMock(PythonPackage):
they have been used."""
homepage = "https://github.com/testing-cabal/mock"
- url = "https://pypi.io/packages/source/m/mock/mock-3.0.5.tar.gz"
+ pypi = "mock/mock-3.0.5.tar.gz"
version('3.0.5', sha256='83657d894c90d5681d62155c82bda9c1187827525880eda8ff5df4ec813437c3')
version('2.0.0', sha256='b158b6df76edd239b8208d481dc46b6afd45a846b7812ff0ce58971cf5bc8bba')
@@ -23,5 +23,3 @@ class PyMock(PythonPackage):
depends_on('py-six@1.7:', type=('build', 'run'))
depends_on('py-six@1.9:', type=('build', 'run'), when='@2.0.0:')
depends_on('py-funcsigs@1:', type=('build', 'run'), when='^python@:3.2')
- depends_on('py-pytest', type='test')
- depends_on('py-pytest-cov', type='test')
diff --git a/var/spack/repos/builtin/packages/py-modred/package.py b/var/spack/repos/builtin/packages/py-modred/package.py
index e4715365c7..761410ea02 100644
--- a/var/spack/repos/builtin/packages/py-modred/package.py
+++ b/var/spack/repos/builtin/packages/py-modred/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyModred(PythonPackage):
"""Modred is a parallelized library for finding
modal decompositions and reduced-order models.
"""
- homepage = "http://github.com/belson17/modred"
+ homepage = "https://github.com/belson17/modred"
git = "https://github.com/belson17/modred.git"
version('2.0.4', tag='v2.0.4')
diff --git a/var/spack/repos/builtin/packages/py-moltemplate/package.py b/var/spack/repos/builtin/packages/py-moltemplate/package.py
index ea2fed2e4f..0eff917533 100644
--- a/var/spack/repos/builtin/packages/py-moltemplate/package.py
+++ b/var/spack/repos/builtin/packages/py-moltemplate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyMoltemplate(PythonPackage):
"""Moltemplate is a general cross-platform text-based molecule builder for
LAMMPS."""
- homepage = "http://moltemplate.org"
+ homepage = "https://moltemplate.org"
url = "https://github.com/jewettaij/moltemplate/archive/v2.5.8.tar.gz"
version('2.5.8', sha256='f1e2d52249e996d85f5b1b7b50f50037da9e4b9c252cdfc622b21e79aa21162f')
diff --git a/var/spack/repos/builtin/packages/py-monotonic/package.py b/var/spack/repos/builtin/packages/py-monotonic/package.py
index fec3f99f96..42736d0b84 100644
--- a/var/spack/repos/builtin/packages/py-monotonic/package.py
+++ b/var/spack/repos/builtin/packages/py-monotonic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyMonotonic(PythonPackage):
"""An implementation of time.monotonic() for Python 2 & < 3.3"""
- homepage = "https://pypi.python.org/pypi/monotonic"
- url = "https://pypi.io/packages/source/m/monotonic/monotonic-1.2.tar.gz"
+ pypi = "monotonic/monotonic-1.2.tar.gz"
version('1.2', sha256='c0e1ceca563ca6bb30b0fb047ee1002503ae6ad3585fc9c6af37a8f77ec274ba')
diff --git a/var/spack/repos/builtin/packages/py-monty/package.py b/var/spack/repos/builtin/packages/py-monty/package.py
index 8b4d406242..394bfa3779 100644
--- a/var/spack/repos/builtin/packages/py-monty/package.py
+++ b/var/spack/repos/builtin/packages/py-monty/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyMonty(PythonPackage):
"""Monty is the missing complement to Python."""
homepage = "https://github.com/materialsvirtuallab/monty"
- url = "https://pypi.io/packages/source/m/monty/monty-0.9.6.tar.gz"
+ pypi = "monty/monty-0.9.6.tar.gz"
version('0.9.6', sha256='bbf05646c4e86731c2398a57b1044add7487fc4ad03122578599ddd9a8892780')
diff --git a/var/spack/repos/builtin/packages/py-more-itertools/package.py b/var/spack/repos/builtin/packages/py-more-itertools/package.py
index dba18e66b3..d96651f47a 100644
--- a/var/spack/repos/builtin/packages/py-more-itertools/package.py
+++ b/var/spack/repos/builtin/packages/py-more-itertools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyMoreItertools(PythonPackage):
"""Additions to the standard Python itertools package."""
homepage = "https://github.com/erikrose/more-itertools"
- url = "https://pypi.io/packages/source/m/more-itertools/more-itertools-7.2.0.tar.gz"
-
- import_modules = ['more_itertools', 'more_itertools.tests']
+ pypi = "more-itertools/more-itertools-7.2.0.tar.gz"
version('7.2.0', sha256='409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832')
version('7.0.0', sha256='c3e4748ba1aad8dba30a4886b0b1a2004f9a863837b8654e7059eebf727afa5a')
diff --git a/var/spack/repos/builtin/packages/py-motmetrics/package.py b/var/spack/repos/builtin/packages/py-motmetrics/package.py
new file mode 100644
index 0000000000..73dc3d7ba6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-motmetrics/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyMotmetrics(PythonPackage):
+ """The py-motmetrics library provides a Python implementation of
+ metrics for benchmarking multiple object trackers (MOT)."""
+
+ homepage = "https://github.com/cheind/py-motmetrics"
+ pypi = "motmetrics/motmetrics-1.2.0.tar.gz"
+
+ version('1.2.0', sha256='7328d8468c948400b38fcc212f3e448bc1f2fdfc727e170d85a029e49f1cdbc6')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.12.1:', type=('build', 'run'))
+ depends_on('py-pandas@0.23.1:', type=('build', 'run'))
+ depends_on('py-scipy@0.19.0:', type=('build', 'run'))
+ depends_on('py-xmltodict@0.12.0:', type=('build', 'run'))
+ depends_on('py-enum34', when='^python@:2.999', type=('build', 'run'))
+ depends_on('py-flake8', type=('build', 'run'))
+ depends_on('py-flake8-import-order', type=('build', 'run'))
+ depends_on('py-pytest', type=('build', 'run'))
+ depends_on('py-pytest-benchmark', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-mouseinfo/package.py b/var/spack/repos/builtin/packages/py-mouseinfo/package.py
new file mode 100644
index 0000000000..52d5ec4205
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-mouseinfo/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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 PyMouseinfo(PythonPackage):
+ """An application to display XY position and RGB color
+ information for the pixel currently under the mouse. Works
+ on Python 2 and 3. This is useful for GUI automation
+ planning."""
+
+ homepage = "https://github.com/asweigart/mouseinfo"
+ pypi = "MouseInfo/MouseInfo-0.1.3.tar.gz"
+
+ version('0.1.3', sha256='2c62fb8885062b8e520a3cce0a297c657adcc08c60952eb05bc8256ef6f7f6e7')
+
+ depends_on('python@2.7,3.2:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ # rubicon-objc;platform_system=="Darwin"',
+ # 'python3-Xlib;platform_system=="Linux" and python_version>="3.0"',
+ # 'Xlib;platform_system=="Linux" and python_version<"3.0"',
+ # Conflicting until rubicon-objc exists
+ conflicts('platform=darwin')
+ depends_on('py-python3-xlib', when='^python@3 platform=linux', type=('build', 'run'))
+ depends_on('py-python-xlib', when='^python@2 platform=linux', type=('build', 'run'))
+
+ depends_on('py-pyperclip', type=('build', 'run'))
+ depends_on('pil@5.2.0:', when='^python@3.7:', type=('build', 'run'))
+ depends_on('pil@4.0.0:', when='^python@3.6', type=('build', 'run'))
+ depends_on('pil@3.2.0:', when='^python@3.5', type=('build', 'run'))
+ depends_on('pil@2.5.0:5.4.1', when='^python@3.4', type=('build', 'run'))
+ depends_on('pil@2.0.0:4.3.0', when='^python@3.3', type=('build', 'run'))
+ depends_on('pil@2.0.0:3.4.2', when='^python@3.2', type=('build', 'run'))
+ depends_on('pil@2.0.0:', when='^python@2.7', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-moviepy/package.py b/var/spack/repos/builtin/packages/py-moviepy/package.py
new file mode 100644
index 0000000000..5746a6a5d1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-moviepy/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyMoviepy(PythonPackage):
+ """MoviePy is a Python module for video editing, which can
+ be used for basic operations (like cuts, concatenations,
+ title insertions), video compositing (a.k.a. non-linear
+ editing), video processing, or to create advanced effects.
+ It can read and write the most common video formats,
+ including GIF."""
+
+ homepage = "https://zulko.github.io/moviepy/"
+ pypi = "moviepy/moviepy-1.0.3.tar.gz"
+
+ version('1.0.3', sha256='2884e35d1788077db3ff89e763c5ba7bfddbd7ae9108c9bc809e7ba58fa433f5')
+ version('1.0.1', sha256='9d5b0a0e884c0eb92c431baa110e560059720aab15d2ef3e4cba3892c34cf1ed')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-decorator@4.0.2:4.9999', type=('build', 'run'))
+ depends_on('py-imageio@2.5:2.9999', when='^python@3.4:', type=('build', 'run'))
+ depends_on('py-imageio@2.0:2.4.9999', when='^python@:3.3.9999', type=('build', 'run'))
+ depends_on('py-imageio-ffmpeg@0.2.0:', when='^python@3.4:', type=('build', 'run'))
+ depends_on('py-tqdm@4.11.2:4.9999', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-requests@2.8.1:2.99999', type=('build', 'run'))
+ depends_on('py-proglog@:1.0.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-mpi4py/package.py b/var/spack/repos/builtin/packages/py-mpi4py/package.py
index f4af51fcfe..154669a671 100644
--- a/var/spack/repos/builtin/packages/py-mpi4py/package.py
+++ b/var/spack/repos/builtin/packages/py-mpi4py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,7 @@ class PyMpi4py(PythonPackage):
MPI-1/MPI-2 specification and exposes an API which grounds on the
standard MPI-2 C++ bindings.
"""
- homepage = "https://pypi.python.org/pypi/mpi4py"
- url = "https://pypi.io/packages/source/m/mpi4py/mpi4py-3.0.3.tar.gz"
+ pypi = "mpi4py/mpi4py-3.0.3.tar.gz"
git = "https://github.com/mpi4py/mpi4py.git"
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/py-mpld3/package.py b/var/spack/repos/builtin/packages/py-mpld3/package.py
index 9b5ba868cf..f3ba568b5d 100644
--- a/var/spack/repos/builtin/packages/py-mpld3/package.py
+++ b/var/spack/repos/builtin/packages/py-mpld3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyMpld3(PythonPackage):
"""An interactive D3js-based viewer which brings matplotlib graphics
to the browser."""
- homepage = "http://mpld3.github.com/"
- url = "https://pypi.io/packages/source/m/mpld3/mpld3-0.3.tar.gz"
+ homepage = "https://mpld3.github.io/"
+ pypi = "mpld3/mpld3-0.3.tar.gz"
version('0.3', sha256='4d455884a211bf99b37ecc760759435c7bb6a5955de47d8daf4967e301878ab7')
diff --git a/var/spack/repos/builtin/packages/py-mpmath/package.py b/var/spack/repos/builtin/packages/py-mpmath/package.py
index c6c4e02646..ae471b99b7 100644
--- a/var/spack/repos/builtin/packages/py-mpmath/package.py
+++ b/var/spack/repos/builtin/packages/py-mpmath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,8 @@ from spack import *
class PyMpmath(PythonPackage):
"""A Python library for arbitrary-precision floating-point arithmetic."""
- homepage = "http://mpmath.org"
- url = "https://pypi.io/packages/source/m/mpmath/mpmath-1.0.0.tar.gz"
+ homepage = "https://mpmath.org"
+ pypi = "mpmath/mpmath-1.0.0.tar.gz"
version('1.1.0', sha256='fc17abe05fbab3382b61a123c398508183406fa132e0223874578e20946499f6')
version('1.0.0', sha256='04d14803b6875fe6d69e6dccea87d5ae5599802e4b1df7997bddd2024001050c')
diff --git a/var/spack/repos/builtin/packages/py-mrcfile/package.py b/var/spack/repos/builtin/packages/py-mrcfile/package.py
new file mode 100644
index 0000000000..4c33617a80
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-mrcfile/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyMrcfile(PythonPackage):
+ """Python implementation of the MRC2014 file format, which is used
+ in structural biology to store image and volume data."""
+
+ homepage = "https://github.com/ccpem/mrcfile/"
+ url = "https://github.com/ccpem/mrcfile/archive/refs/tags/v1.3.0.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('1.3.0', sha256='034f1868abf87f4e494b8b039030b50045cabccf352b8b3e88a6bd3a6d665715')
+
+ depends_on('python@3.4.0:')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.12.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-msal-extensions/package.py b/var/spack/repos/builtin/packages/py-msal-extensions/package.py
index 75e6740f35..5c657ddcea 100644
--- a/var/spack/repos/builtin/packages/py-msal-extensions/package.py
+++ b/var/spack/repos/builtin/packages/py-msal-extensions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyMsalExtensions(PythonPackage):
Microsoft Authentication Library for Python (MSAL)."""
homepage = "https://github.com/AzureAD/microsoft-authentication-library-for-python"
- url = "https://pypi.io/packages/source/m/msal-extensions/msal-extensions-0.2.2.tar.gz"
+ pypi = "msal-extensions/msal-extensions-0.2.2.tar.gz"
version('0.2.2', sha256='31414753c484679bb3b6c6401623eb4c3ccab630af215f2f78c1d5c4f8e1d1a9')
version('0.1.3', sha256='59e171a9a4baacdbf001c66915efeaef372fb424421f1a4397115a3ddd6205dc')
@@ -20,4 +20,3 @@ class PyMsalExtensions(PythonPackage):
depends_on('py-msal@0.4.1:1.999', type=('build', 'run'))
depends_on('py-portalocker@1.0:1.999', type=('build', 'run'))
depends_on('py-pathlib2', when='@0.2:^python@:2', type=('build', 'run'))
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-msal/package.py b/var/spack/repos/builtin/packages/py-msal/package.py
index 7b870ed9d0..f71ecfff9c 100644
--- a/var/spack/repos/builtin/packages/py-msal/package.py
+++ b/var/spack/repos/builtin/packages/py-msal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyMsal(PythonPackage):
Accounts (MSA) using industry standard OAuth2 and OpenID Connect."""
homepage = "https://github.com/AzureAD/microsoft-authentication-library-for-python"
- url = "https://pypi.io/packages/source/m/msal/msal-1.3.0.tar.gz"
+ pypi = "msal/msal-1.3.0.tar.gz"
version('1.3.0', sha256='5442a3a9d006506e653d3c4daff40538bdf067bf07b6b73b32d1b231d5e77a92')
version('1.0.0', sha256='ecbe3f5ac77facad16abf08eb9d8562af3bc7184be5d4d90c9ef4db5bde26340')
diff --git a/var/spack/repos/builtin/packages/py-msgpack-numpy/package.py b/var/spack/repos/builtin/packages/py-msgpack-numpy/package.py
new file mode 100644
index 0000000000..225ab20c1f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-msgpack-numpy/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 PyMsgpackNumpy(PythonPackage):
+ """This package provides encoding and decoding routines
+ that enable the serialization and deserialization of
+ numerical and array data types provided by numpy using the
+ highly efficient msgpack format. Serialization of Python's
+ native complex data types is also supported."""
+
+ homepage = "https://github.com/lebedov/msgpack-numpy"
+ pypi = "msgpack-numpy/msgpack-numpy-0.4.7.1.tar.gz"
+
+ version('0.4.7.1', sha256='7eaf51acf82d7c467d21aa71df94e1c051b2055e54b755442051b474fa7cf5e1')
+ version('0.4.7', sha256='8e975dd7dd9eb13cbf5e8cd90af1f12af98706bbeb7acfcbd8d558fd005a85d7')
+ version('0.4.6', sha256='ef3c5fe3d6cbab5c9db97de7062681c18f82d32a37177aaaf58b483d0336f135')
+ version('0.4.5', sha256='4e88a4147db70f69dce1556317291e04e5107ee7b93ea300f92f1187120da7ec')
+ version('0.4.4.3', sha256='c7db37ce01e268190568cf66a6a65d1ad81e3bcfa55dd824103c9b324608a44e')
+ version('0.4.4.2', sha256='ac3db232710070ac64d8e1c5123550a1c1fef45d77b6789d2170cbfd2ec711f3')
+ version('0.4.4.1', sha256='b7641ccf9f0f4e91a533e8c7be5e34d3f12ff877480879b252113d65c510eeef')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.9:', type=('build', 'run'))
+ depends_on('py-msgpack@0.5.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-msgpack/package.py b/var/spack/repos/builtin/packages/py-msgpack/package.py
index 77442a5421..2fb4ade233 100644
--- a/var/spack/repos/builtin/packages/py-msgpack/package.py
+++ b/var/spack/repos/builtin/packages/py-msgpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,10 @@ class PyMsgpack(PythonPackage):
"""MessagePack (de)serializer."""
homepage = "https://msgpack.org/"
- url = "https://pypi.io/packages/source/m/msgpack/msgpack-1.0.0.tar.gz"
+ pypi = "msgpack/msgpack-1.0.0.tar.gz"
+ version('1.0.2', sha256='fae04496f5bc150eefad4e9571d1a76c55d021325dcd484ce45065ebbdd00984')
+ version('1.0.1', sha256='7033215267a0e9f60f4a5e4fb2228a932c404f237817caff8dc3115d9e7cd975')
version('1.0.0', sha256='9534d5cc480d4aff720233411a1f765be90885750b07df772380b34c10ecb5c0')
version('0.6.2', sha256='ea3c2f859346fcd55fc46e96885301d9c2f7a36d453f5d8f2967840efa1e1830')
diff --git a/var/spack/repos/builtin/packages/py-msrest/package.py b/var/spack/repos/builtin/packages/py-msrest/package.py
index f589d152e7..27b6171661 100644
--- a/var/spack/repos/builtin/packages/py-msrest/package.py
+++ b/var/spack/repos/builtin/packages/py-msrest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyMsrest(PythonPackage):
"""AutoRest swagger generator Python client runtime."""
homepage = "https://github.com/Azure/msrest-for-python"
- url = "https://pypi.io/packages/source/m/msrest/msrest-0.6.16.tar.gz"
+ pypi = "msrest/msrest-0.6.16.tar.gz"
version('0.6.16', sha256='214c5be98954cb45feb6a6a858a7ae6d41a664e80294b65db225bbaa33d9ca3c')
diff --git a/var/spack/repos/builtin/packages/py-msrestazure/package.py b/var/spack/repos/builtin/packages/py-msrestazure/package.py
index 40208cfa67..2ab33f4bf7 100644
--- a/var/spack/repos/builtin/packages/py-msrestazure/package.py
+++ b/var/spack/repos/builtin/packages/py-msrestazure/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyMsrestazure(PythonPackage):
Azure-specific module."""
homepage = "https://github.com/Azure/msrestazure-for-python"
- url = "https://pypi.io/packages/source/m/msrestazure/msrestazure-0.6.3.tar.gz"
+ pypi = "msrestazure/msrestazure-0.6.3.tar.gz"
version('0.6.3', sha256='0ec9db93eeea6a6cf1240624a04f49cd8bbb26b98d84a63a8220cfda858c2a96')
diff --git a/var/spack/repos/builtin/packages/py-multi-key-dict/package.py b/var/spack/repos/builtin/packages/py-multi-key-dict/package.py
index d30777b9ef..37ab4f83fe 100644
--- a/var/spack/repos/builtin/packages/py-multi-key-dict/package.py
+++ b/var/spack/repos/builtin/packages/py-multi-key-dict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PyMultiKeyDict(PythonPackage):
"""Multi key dictionary implementation"""
homepage = "https://github.com/formiaczek/multi_key_dict"
- url = "https://pypi.io/packages/source/m/multi_key_dict/multi_key_dict-2.0.3.tar.gz"
+ pypi = "multi_key_dict/multi_key_dict-2.0.3.tar.gz"
version('2.0.3', sha256='deebdec17aa30a1c432cb3f437e81f8621e1c0542a0c0617a74f71e232e9939e')
diff --git a/var/spack/repos/builtin/packages/py-multidict/package.py b/var/spack/repos/builtin/packages/py-multidict/package.py
index fe0d0ae627..0ea09e54c3 100644
--- a/var/spack/repos/builtin/packages/py-multidict/package.py
+++ b/var/spack/repos/builtin/packages/py-multidict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-multipledispatch/package.py b/var/spack/repos/builtin/packages/py-multipledispatch/package.py
new file mode 100644
index 0000000000..939d2c94ef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-multipledispatch/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyMultipledispatch(PythonPackage):
+ """A relatively sane approach to multiple dispatch in Python."""
+
+ homepage = "https://multiple-dispatch.readthedocs.io/"
+ url = "https://github.com/mrocklin/multipledispatch/archive/0.6.0.tar.gz"
+
+ version('0.6.0', sha256='649f6e61b8a6ce581c75f32365c926b55495c01b8177135408b83aa03886cde0')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-multiprocess/package.py b/var/spack/repos/builtin/packages/py-multiprocess/package.py
index f382ff050f..6e92fe6db9 100644
--- a/var/spack/repos/builtin/packages/py-multiprocess/package.py
+++ b/var/spack/repos/builtin/packages/py-multiprocess/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,23 +10,26 @@ class PyMultiprocess(PythonPackage):
"""Better multiprocessing and multithreading in Python"""
homepage = "https://github.com/uqfoundation/multiprocess"
- url = "https://pypi.io/packages/source/m/multiprocess/multiprocess-0.70.5.zip"
+ pypi = "multiprocess/multiprocess-0.70.5.zip"
+ version('0.70.12.2', sha256='206bb9b97b73f87fec1ed15a19f8762950256aa84225450abc7150d02855a083')
version('0.70.9', sha256='9fd5bd990132da77e73dec6e9613408602a4612e1d73caf2e2b813d2b61508e5')
version('0.70.7', sha256='3394f1fbd0d87112690a877e49eb7917d851ee8d822294d522dd4deae12febdb')
version('0.70.5', sha256='c4c196f3c4561dc1d78139c3e73709906a222d2fc166ef3eef895d8623df7267')
version('0.70.4', sha256='a692c6dc8392c25b29391abb58a9fbdc1ac38bca73c6f27d787774201e68e12c')
depends_on('python@2.5:2.8,3.1:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.6:', when='@0.70.12.2:', type=('build', 'run'))
depends_on('py-setuptools@0.6:', type='build')
depends_on('py-dill@0.2.6:', type=('build', 'run'))
depends_on('py-dill@0.2.9:', type=('build', 'run'), when='@0.70.7:')
depends_on('py-dill@0.3.1:', type=('build', 'run'), when='@0.70.9:')
+ depends_on('py-dill@0.3.4:', type=('build', 'run'), when='@0.70.12.2:')
def url_for_version(self, version):
url = self.url.rsplit('/', 1)[0]
- if version >= Version('0.70.7'):
+ if Version('0.70.12.2') > version >= Version('0.70.7'):
url += '/multiprocess-{0}.tar.gz'
else:
url += '/multiprocess-{0}.zip'
diff --git a/var/spack/repos/builtin/packages/py-multiqc/package.py b/var/spack/repos/builtin/packages/py-multiqc/package.py
index a1ab08fae8..fb1c620204 100644
--- a/var/spack/repos/builtin/packages/py-multiqc/package.py
+++ b/var/spack/repos/builtin/packages/py-multiqc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyMultiqc(PythonPackage):
for a large number of common bioinformatics tools."""
homepage = "https://multiqc.info"
- url = "https://pypi.io/packages/source/m/multiqc/multiqc-1.0.tar.gz"
+ pypi = "multiqc/multiqc-1.0.tar.gz"
version('1.7', sha256='02e6a7fac7cd9ed036dcc6c92b8f8bcacbd28983ba6be53afb35e08868bd2d68')
version('1.5', sha256='fe0ffd2b0d1067365ba4e54ae8991f2f779c7c684b037549b617020ea883310a')
diff --git a/var/spack/repos/builtin/packages/py-munch/package.py b/var/spack/repos/builtin/packages/py-munch/package.py
index 9360e01efb..8c03a24d48 100644
--- a/var/spack/repos/builtin/packages/py-munch/package.py
+++ b/var/spack/repos/builtin/packages/py-munch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-murmurhash/package.py b/var/spack/repos/builtin/packages/py-murmurhash/package.py
index 3cb59de262..a21cabd104 100644
--- a/var/spack/repos/builtin/packages/py-murmurhash/package.py
+++ b/var/spack/repos/builtin/packages/py-murmurhash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyMurmurhash(PythonPackage):
"""Cython bindings for MurmurHash."""
homepage = "https://github.com/explosion/murmurhash"
- url = "https://pypi.io/packages/source/m/murmurhash/murmurhash-1.0.2.tar.gz"
+ pypi = "murmurhash/murmurhash-1.0.2.tar.gz"
version('1.0.2', sha256='c7a646f6b07b033642b4f52ae2e45efd8b80780b3b90e8092a0cec935fbf81e2')
diff --git a/var/spack/repos/builtin/packages/py-mutagen/package.py b/var/spack/repos/builtin/packages/py-mutagen/package.py
new file mode 100644
index 0000000000..3befa29a16
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-mutagen/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyMutagen(PythonPackage):
+ """Read and write audio tags for many formats."""
+
+ homepage = "https://github.com/quodlibet/mutagen"
+ pypi = "mutagen/mutagen-1.45.1.tar.gz"
+
+ version('1.45.1', sha256='6397602efb3c2d7baebd2166ed85731ae1c1d475abca22090b7141ff5034b3e1')
+
+ depends_on('python@3.5:3.99', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-mx/package.py b/var/spack/repos/builtin/packages/py-mx/package.py
index 6dfdddc487..71930fffba 100644
--- a/var/spack/repos/builtin/packages/py-mx/package.py
+++ b/var/spack/repos/builtin/packages/py-mx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyMx(PythonPackage):
date/time processing and high speed data types.
"""
- homepage = "http://www.egenix.com/products/python/mxBase/"
+ homepage = "https://www.egenix.com/products/python/mxBase/"
url = "https://downloads.egenix.com/python/egenix-mx-base-3.2.8.tar.gz"
version('3.2.8', sha256='0da55233e45bc3f88870e62e60a79c2c86bad4098b8128343fd7be877f44a3c0')
diff --git a/var/spack/repos/builtin/packages/py-myhdl/package.py b/var/spack/repos/builtin/packages/py-myhdl/package.py
index 98056266b8..c5c2b8589e 100644
--- a/var/spack/repos/builtin/packages/py-myhdl/package.py
+++ b/var/spack/repos/builtin/packages/py-myhdl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyMyhdl(PythonPackage):
"""Python as a Hardware Description Language"""
homepage = "http://www.myhdl.org"
- url = "https://pypi.io/packages/source/m/myhdl/myhdl-0.9.0.tar.gz"
+ pypi = "myhdl/myhdl-0.9.0.tar.gz"
version('0.9.0', sha256='52d12a5fe2cda22558806272af3c2b519b6f7095292b8e6c8ad255fb604507a5')
diff --git a/var/spack/repos/builtin/packages/py-mypy-extensions/package.py b/var/spack/repos/builtin/packages/py-mypy-extensions/package.py
index 4a31b6816b..d7b657ede5 100644
--- a/var/spack/repos/builtin/packages/py-mypy-extensions/package.py
+++ b/var/spack/repos/builtin/packages/py-mypy-extensions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyMypyExtensions(PythonPackage):
mypy typechecker."""
homepage = "https://github.com/python/mypy_extensions"
- url = "https://pypi.io/packages/source/m/mypy-extensions/mypy_extensions-0.4.3.tar.gz"
+ pypi = "mypy-extensions/mypy_extensions-0.4.3.tar.gz"
version('0.4.3', sha256='2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8')
diff --git a/var/spack/repos/builtin/packages/py-mypy/package.py b/var/spack/repos/builtin/packages/py-mypy/package.py
index f822ea567e..1725986b4f 100644
--- a/var/spack/repos/builtin/packages/py-mypy/package.py
+++ b/var/spack/repos/builtin/packages/py-mypy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,17 +10,18 @@ class PyMypy(PythonPackage):
"""Optional static typing for Python."""
homepage = "http://www.mypy-lang.org/"
- url = "https://pypi.io/packages/source/m/mypy/mypy-0.740.tar.gz"
+ pypi = "mypy/mypy-0.740.tar.gz"
+ version('0.910', sha256='704098302473cb31a218f1775a873b376b30b4c18229421e9e9dc8916fd16150')
+ version('0.900', sha256='65c78570329c54fb40f956f7645e2359af5da9d8c54baa44f461cdc7f4984108')
+ version('0.800', sha256='e0202e37756ed09daf4b0ba64ad2c245d357659e014c3f51d8cd0681ba66940a')
version('0.740', sha256='48c8bc99380575deb39f5d3400ebb6a8a1cb5cc669bbba4d3bb30f904e0a0e7d')
- depends_on('python@3.5:', type=('build', 'run'))
+ variant('python2', default=False, description='Enable checking of python 2 type annotations')
+
+ depends_on("python@3.5:", type=("build", "run"))
depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-typed-ast@1.4.0:1.4.999', type=('build', 'run'))
depends_on('py-typing-extensions@3.7.4:', type=('build', 'run'))
- depends_on('py-mypy-extensions@0.4.0:0.4.999', type=('build', 'run'))
- depends_on('py-pytest', type='test')
- depends_on('py-virtualenv', type='test')
- depends_on('py-pip', type='test')
- depends_on('py-lxml', type='test')
- depends_on('googletest', type='test')
+ depends_on('py-mypy-extensions@0.4.3:0.4.999', type=('build', 'run'))
+ depends_on('py-toml', when='@0.900:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-mysql-connector-python/package.py b/var/spack/repos/builtin/packages/py-mysql-connector-python/package.py
index 2ebd16a459..9a51999d80 100644
--- a/var/spack/repos/builtin/packages/py-mysql-connector-python/package.py
+++ b/var/spack/repos/builtin/packages/py-mysql-connector-python/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-mysqlclient/package.py b/var/spack/repos/builtin/packages/py-mysqlclient/package.py
index a1f1d09e13..5af4bf64ca 100644
--- a/var/spack/repos/builtin/packages/py-mysqlclient/package.py
+++ b/var/spack/repos/builtin/packages/py-mysqlclient/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyMysqlclient(PythonPackage):
# The documentation is misleading about this.
homepage = "https://github.com/PyMySQL/mysqlclient-python"
- url = "https://pypi.io/packages/source/m/mysqlclient/mysqlclient-1.4.4.tar.gz"
+ pypi = "mysqlclient/mysqlclient-1.4.4.tar.gz"
version('1.4.6', sha256='f3fdaa9a38752a3b214a6fe79d7cae3653731a53e577821f9187e67cbecb2e16')
version('1.4.5', sha256='e80109b0ae8d952b900b31b623181532e5e89376d707dcbeb63f99e69cefe559')
diff --git a/var/spack/repos/builtin/packages/py-mysqldb1/package.py b/var/spack/repos/builtin/packages/py-mysqldb1/package.py
index daa13088f6..0765a663bb 100644
--- a/var/spack/repos/builtin/packages/py-mysqldb1/package.py
+++ b/var/spack/repos/builtin/packages/py-mysqldb1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-nanotime/package.py b/var/spack/repos/builtin/packages/py-nanotime/package.py
new file mode 100644
index 0000000000..8b206f7ad4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-nanotime/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyNanotime(PythonPackage):
+ """The nanotime module provides a time object that keeps time as the
+ number of nanoseconds since the UNIX epoch. In other words, it is
+ a 64bit UNIX timestamp with nanosecond precision.
+ """
+
+ homepage = "https://github.com/jbenet/nanotime"
+ pypi = "nanotime/nanotime-0.5.2.tar.gz"
+
+ version('0.5.2', sha256='c7cc231fc5f6db401b448d7ab51c96d0a4733f4b69fabe569a576f89ffdf966b')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-natsort/package.py b/var/spack/repos/builtin/packages/py-natsort/package.py
index 32358db64f..daa15a4d71 100644
--- a/var/spack/repos/builtin/packages/py-natsort/package.py
+++ b/var/spack/repos/builtin/packages/py-natsort/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,19 @@ from spack import *
class PyNatsort(PythonPackage):
"""Simple yet flexible natural sorting in Python."""
- homepage = "https://pypi.org/project/natsort/"
+ homepage = "https://github.com/SethMMorton/natsort"
url = "https://github.com/SethMMorton/natsort/archive/5.2.0.zip"
+ version('7.1.1', sha256='ada96d9ca0db0d44b891718ff7baff5ac34cf5b6d9def356c0f7a8ea67ae2113')
+ version('7.1.0', sha256='c3de32c8e5e91cf4f2dd1655b4c167ca4676cc28ce397050fc8d229582a71f0d')
+ version('7.0.1', sha256='1a422a344d089f7a2acba788087ca6253ca47a544bda677721f99516cdfd8668')
+ version('7.0.0', sha256='0a5ff72173091e69d67c4711616713ddf090980ab11cbe4a1f269be3e697678a')
+ version('6.2.1', sha256='f14b62b37c78387e38cf1421867e8b5aed849b67d46f2351ee187ef4e9e814e1')
+ version('6.2.0', sha256='4a9587bfd3559900b64727be380236160e4c5a16b5a3643f5001d0bcfb0d63eb')
+ version('6.1.0', sha256='51f1ef44cbe4537fdb70ec55f3584f70ea2070fc37915239ecb0595c1ff055f9')
+ version('6.0.0', sha256='39c46bf2f4dc17fd0ea6210932eeaf7c806cac79dd354295d70e9b44f75a096b')
+ version('5.5.0', sha256='62e8fa3d7697b922e1d786b531a68bd07a7f6ba10a3bdf79a0bf52ef2cdccc41')
+ version('5.4.1', sha256='077ce724aa0c27df2bbcaef9c9f096c99ccd62eb4fffe68512c46edc3b714452')
version('5.2.0', sha256='0ae15082842e8a3598750b4bbaa4f7c138caf004e59c7040429d56bf9e9631bd')
version('5.1.1', sha256='6467eeca268d9accb2e3149acace49649f865b0051a672006a64b20597f04561')
version('5.1.0', sha256='79279792cc97a0005b2075ed2bc9b8a3e25e5edffe43ee2fb26b116283f5dab4')
diff --git a/var/spack/repos/builtin/packages/py-nbclassic/package.py b/var/spack/repos/builtin/packages/py-nbclassic/package.py
new file mode 100644
index 0000000000..ab98af4ddf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-nbclassic/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyNbclassic(PythonPackage):
+ """Jupyter Notebook as a Jupyter Server Extension."""
+
+ homepage = "https://github.com/jupyterlab/nbclassic"
+ pypi = "nbclassic/nbclassic-0.3.1.tar.gz"
+
+ version('0.3.1', sha256='f920f8d09849bea7950e1017ff3bd101763a8d68f565a51ce053572e65aa7947')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-jupyter-server@1.8:1.999', type=('build', 'run'))
+ depends_on('py-notebook@:6.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-nbclient/package.py b/var/spack/repos/builtin/packages/py-nbclient/package.py
index e5284508b5..d181f2ae4b 100644
--- a/var/spack/repos/builtin/packages/py-nbclient/package.py
+++ b/var/spack/repos/builtin/packages/py-nbclient/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyNbclient(PythonPackage):
Formally nbconvert's ExecutePreprocessor."""
homepage = "https://jupyter.org/"
- url = "https://pypi.io/packages/source/n/nbclient/nbclient-0.5.0.tar.gz"
+ pypi = "nbclient/nbclient-0.5.0.tar.gz"
version('0.5.0', sha256='8ad52d27ba144fca1402db014857e53c5a864a2f407be66ca9d74c3a56d6591d')
diff --git a/var/spack/repos/builtin/packages/py-nbconvert/package.py b/var/spack/repos/builtin/packages/py-nbconvert/package.py
index 1cb8b009ad..f75cf1d1cb 100644
--- a/var/spack/repos/builtin/packages/py-nbconvert/package.py
+++ b/var/spack/repos/builtin/packages/py-nbconvert/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyNbconvert(PythonPackage):
"""Jupyter Notebook Conversion"""
homepage = "https://github.com/jupyter/nbconvert"
- url = "https://pypi.io/packages/source/n/nbconvert/nbconvert-6.0.1.tar.gz"
+ pypi = "nbconvert/nbconvert-6.0.1.tar.gz"
version('6.0.1', sha256='db94117fbac29153834447e31b30cda337d4450e46e0bdb1a36eafbbf4435156')
version('5.6.0', sha256='427a468ec26e7d68a529b95f578d5cbf018cb4c1f889e897681c2b6d11897695')
@@ -49,3 +49,12 @@ class PyNbconvert(PythonPackage):
# doesn't try to download it.
install(join_path(self.package_dir, 'style.min.css'),
join_path('nbconvert', 'resources', 'style.min.css'))
+
+ def setup_run_environment(self, env):
+ env.prepend_path("JUPYTER_PATH", self.prefix.share.jupyter)
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.prepend_path("JUPYTER_PATH", self.prefix.share.jupyter)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ env.prepend_path("JUPYTER_PATH", self.prefix.share.jupyter)
diff --git a/var/spack/repos/builtin/packages/py-nbformat/package.py b/var/spack/repos/builtin/packages/py-nbformat/package.py
index d8f93315c3..9ee100e72a 100644
--- a/var/spack/repos/builtin/packages/py-nbformat/package.py
+++ b/var/spack/repos/builtin/packages/py-nbformat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,14 +8,17 @@ class PyNbformat(PythonPackage):
"""The Jupyter Notebook format"""
homepage = "https://github.com/jupyter/nbformat"
- url = "https://pypi.io/packages/source/n/nbformat/nbformat-5.0.7.tar.gz"
+ pypi = "nbformat/nbformat-5.0.7.tar.gz"
+ version('5.1.3', sha256='b516788ad70771c6250977c1374fcca6edebe6126fd2adb5a69aa5c2356fd1c8')
version('5.0.7', sha256='54d4d6354835a936bad7e8182dcd003ca3dc0cedfee5a306090e04854343b340')
version('4.4.0', sha256='f7494ef0df60766b7cabe0a3651556345a963b74dbc16bc7c18479041170d402')
version('4.1.0', sha256='dbf6c0ed0cb7c5a7184536368f1dd1ada2d48fd6f016e0f9e9b69236e28c0857')
version('4.0.1', sha256='5261c957589b9dfcd387c338d59375162ba9ca82c69e378961a1f4e641285db5')
version('4.0.0', sha256='daf9b990e96863d120aff123361156a316757757b81a8070eb6945e4a9774b2d')
+ depends_on('python@3.5:', when='@5:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.3:', when='@:4', type=('build', 'run'))
depends_on('py-ipython-genutils', type=('build', 'run'))
depends_on('py-traitlets@4.1:', type=('build', 'run'))
depends_on('py-jsonschema@2.4.0:2.4.999,2.5.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-nbmake/package.py b/var/spack/repos/builtin/packages/py-nbmake/package.py
new file mode 100644
index 0000000000..77166847c2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-nbmake/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyNbmake(PythonPackage):
+ """Pytest plugin for testing notebooks."""
+
+ homepage = "https://github.com/treebeardtech/nbmake"
+ pypi = "nbmake/nbmake-0.5.tar.gz"
+
+ version('0.5', sha256='da9bf1bbc377c9d1d697f99952834017c39b4983e7e482a038dec705955a8ae9')
+
+ depends_on('python@3.6.1:3.999', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pygments@2.7.3:2.999', type=('build', 'run'))
+ depends_on('py-ipykernel@5.4.0:5.999', type=('build', 'run'))
+ depends_on('py-nbclient@0.3:0.999', type=('build', 'run'))
+ depends_on('py-nbformat@5.0.8:5.999', type=('build', 'run'))
+ depends_on('py-pathlib@1.0.1:1.999', when='^python@:3.3', type=('build', 'run'))
+ depends_on('py-pydantic@1.7.2:1.999', type=('build', 'run'))
+ depends_on('py-pytest@6.1.2:6.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-nbsphinx/package.py b/var/spack/repos/builtin/packages/py-nbsphinx/package.py
new file mode 100644
index 0000000000..8044792297
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-nbsphinx/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2021 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 PyNbsphinx(PythonPackage):
+ """nbsphinx is a Sphinx extension that provides a source parser for
+ *.ipynb files.
+ """
+
+ # It should be noted that in order to have nbsphinx work,
+ # one must create a Spack view of the dependencies.
+
+ homepage = "https://nbsphinx.readthedocs.io"
+ pypi = "nbsphinx/nbsphinx-0.8.0.tar.gz"
+
+ version('0.8.7', sha256='ff91b5b14ceb1a9d44193b5fc3dd3617e7b8ab59c788f7710049ce5faff2750c')
+ version('0.8.1', sha256='24d59aa3a1077ba58d9769c64c38fb05b761a1af21c1ac15f6393500cd008ea6')
+ version('0.8.0', sha256='369c16fe93af14c878d61fb3e81d838196fb35b27deade2cd7b95efe1fe56ea0')
+
+ # https://nbsphinx.readthedocs.io/en/latest/installation.html
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-docutils', type=('build', 'run'))
+ depends_on('py-jinja2', type=('build', 'run'))
+ depends_on('py-nbconvert@:5.3,5.5:', type=('build', 'run'))
+ depends_on('py-traitlets', type=('build', 'run'))
+ depends_on('py-nbformat', type=('build', 'run'))
+ depends_on('py-sphinx@1.8:', type=('build', 'run'))
+ depends_on('pandoc', type='run')
diff --git a/var/spack/repos/builtin/packages/py-nc-time-axis/package.py b/var/spack/repos/builtin/packages/py-nc-time-axis/package.py
index 0703e25af7..2e3a81c80a 100644
--- a/var/spack/repos/builtin/packages/py-nc-time-axis/package.py
+++ b/var/spack/repos/builtin/packages/py-nc-time-axis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyNcTimeAxis(PythonPackage):
"""cftime support for matplotlib axis."""
homepage = "https://github.com/scitools/nc-time-axis"
- url = "https://pypi.io/packages/source/n/nc-time-axis/nc-time-axis-1.1.0.tar.gz"
+ pypi = "nc-time-axis/nc-time-axis-1.1.0.tar.gz"
version('1.1.0', sha256='ea9d4f7f9e9189c96f7d320235ac6c4be7f63dc5aa256b3ee5d5cca5845e6e26')
diff --git a/var/spack/repos/builtin/packages/py-ndg-httpsclient/package.py b/var/spack/repos/builtin/packages/py-ndg-httpsclient/package.py
index 91a815ce99..168b8ca2b4 100644
--- a/var/spack/repos/builtin/packages/py-ndg-httpsclient/package.py
+++ b/var/spack/repos/builtin/packages/py-ndg-httpsclient/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyNdgHttpsclient(PythonPackage):
PyOpenSSL."""
homepage = "https://github.com/cedadev/ndg_httpsclient/"
- url = "https://pypi.io/packages/source/n/ndg_httpsclient/ndg_httpsclient-0.5.1.tar.gz"
+ pypi = "ndg_httpsclient/ndg_httpsclient-0.5.1.tar.gz"
version('0.5.1', sha256='d72faed0376ab039736c2ba12e30695e2788c4aa569c9c3e3d72131de2592210')
diff --git a/var/spack/repos/builtin/packages/py-neo/package.py b/var/spack/repos/builtin/packages/py-neo/package.py
index 9015a53edf..9e23395cef 100644
--- a/var/spack/repos/builtin/packages/py-neo/package.py
+++ b/var/spack/repos/builtin/packages/py-neo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,10 @@ class PyNeo(PythonPackage):
together with support for reading a wide range of neurophysiology
file formats"""
- homepage = "http://neuralensemble.org/neo"
- url = "https://pypi.io/packages/source/n/neo/neo-0.4.1.tar.gz"
+ homepage = "https://neuralensemble.org/neo"
+ pypi = "neo/neo-0.4.1.tar.gz"
+ version('0.8.0', sha256='3382a37b24a384006238b72981f1e9259de9bfa71886f8ed564d35d254ace458')
version('0.5.2', sha256='1de436b7d5e72a5b4f1baa68bae5b790624a9ac44b2673811cb0b6ef554d3f8b')
version('0.4.1', sha256='a5a4f3aa31654d52789f679717c9fb622ad4f59b56d227dca490357b9de0a1ce')
diff --git a/var/spack/repos/builtin/packages/py-neobolt/package.py b/var/spack/repos/builtin/packages/py-neobolt/package.py
index 7e19e529fd..fe871734c1 100644
--- a/var/spack/repos/builtin/packages/py-neobolt/package.py
+++ b/var/spack/repos/builtin/packages/py-neobolt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyNeobolt(PythonPackage):
"""Neo4j Bolt connector for Python"""
homepage = "https://github.com/neo4j-drivers/neobolt"
- url = "https://pypi.io/packages/source/n/neobolt/neobolt-1.7.16.tar.gz"
+ pypi = "neobolt/neobolt-1.7.16.tar.gz"
version('1.7.16', sha256='ca4e87679fe3ed39aec23638658e02dbdc6bbc3289a04e826f332e05ab32275d')
diff --git a/var/spack/repos/builtin/packages/py-neotime/package.py b/var/spack/repos/builtin/packages/py-neotime/package.py
index 31769361c1..8ba8dcb78a 100644
--- a/var/spack/repos/builtin/packages/py-neotime/package.py
+++ b/var/spack/repos/builtin/packages/py-neotime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyNeotime(PythonPackage):
"""Nanosecond resolution temporal types"""
- homepage = "https://neotime.readthedocs.io/"
- url = "https://pypi.io/packages/source/n/neotime/neotime-1.7.4.tar.gz"
+ homepage = "https://github.com/neo4j-drivers/neotime"
+ pypi = "neotime/neotime-1.7.4.tar.gz"
version('1.7.4', sha256='4e0477ba0f24e004de2fa79a3236de2bd941f20de0b5db8d976c52a86d7363eb')
diff --git a/var/spack/repos/builtin/packages/py-nest-asyncio/package.py b/var/spack/repos/builtin/packages/py-nest-asyncio/package.py
index 5ffcde84d9..74a8fc7fe3 100644
--- a/var/spack/repos/builtin/packages/py-nest-asyncio/package.py
+++ b/var/spack/repos/builtin/packages/py-nest-asyncio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyNestAsyncio(PythonPackage):
"""Patch asyncio to allow nested event loops."""
homepage = "https://github.com/erdewit/nest_asyncio"
- url = "https://pypi.io/packages/source/n/nest-asyncio/nest_asyncio-1.4.0.tar.gz"
+ pypi = "nest-asyncio/nest_asyncio-1.4.0.tar.gz"
version('1.4.0', sha256='5773054bbc14579b000236f85bc01ecced7ffd045ec8ca4a9809371ec65a59c8')
diff --git a/var/spack/repos/builtin/packages/py-nestle/package.py b/var/spack/repos/builtin/packages/py-nestle/package.py
index 941e5b0234..7b58ae7d8d 100644
--- a/var/spack/repos/builtin/packages/py-nestle/package.py
+++ b/var/spack/repos/builtin/packages/py-nestle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyNestle(PythonPackage):
"""Nested sampling algorithms for evaluating Bayesian evidence."""
- homepage = "http://kbarbary.github.io/nestle/"
- url = "https://pypi.io/packages/source/n/nestle/nestle-0.1.1.tar.gz"
+ homepage = "https://kbarbary.github.io/nestle/"
+ pypi = "nestle/nestle-0.1.1.tar.gz"
version('0.1.1', sha256='d236a04f25494af5cda572eecf62729592b3231fbd874b1f72aff54718a3bb08')
diff --git a/var/spack/repos/builtin/packages/py-netaddr/package.py b/var/spack/repos/builtin/packages/py-netaddr/package.py
new file mode 100644
index 0000000000..1231a1e089
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-netaddr/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyNetaddr(PythonPackage):
+ """A system-independent network address manipulation library for Python"""
+
+ homepage = "https://netaddr.readthedocs.io/en/latest/"
+ pypi = "netaddr/netaddr-0.8.0.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('0.8.0', sha256='d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ depends_on('py-importlib-resources', when='^python@:3.6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-netcdf4/package.py b/var/spack/repos/builtin/packages/py-netcdf4/package.py
index 93fa8641cc..81a7f538de 100644
--- a/var/spack/repos/builtin/packages/py-netcdf4/package.py
+++ b/var/spack/repos/builtin/packages/py-netcdf4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyNetcdf4(PythonPackage):
"""Python interface to the netCDF Library."""
homepage = "https://github.com/Unidata/netcdf4-python"
- url = "https://pypi.io/packages/source/n/netCDF4/netCDF4-1.2.7.tar.gz"
+ pypi = "netCDF4/netCDF4-1.2.7.tar.gz"
maintainers = ['skosukhin']
diff --git a/var/spack/repos/builtin/packages/py-netifaces/package.py b/var/spack/repos/builtin/packages/py-netifaces/package.py
index 08d8200904..8604d54e3e 100644
--- a/var/spack/repos/builtin/packages/py-netifaces/package.py
+++ b/var/spack/repos/builtin/packages/py-netifaces/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyNetifaces(PythonPackage):
"""Portable network interface information"""
- homepage = "https://bitbucket.org/al45tair/netifaces"
- url = "https://pypi.io/packages/source/n/netifaces/netifaces-0.10.5.tar.gz"
+ homepage = "https://0xbharath.github.io/python-network-programming/libraries/netifaces/index.html"
+ pypi = "netifaces/netifaces-0.10.5.tar.gz"
version('0.10.5', sha256='59d8ad52dd3116fcb6635e175751b250dc783fb011adba539558bd764e5d628b')
diff --git a/var/spack/repos/builtin/packages/py-netket/package.py b/var/spack/repos/builtin/packages/py-netket/package.py
index d8950057a4..e9ece8d7de 100644
--- a/var/spack/repos/builtin/packages/py-netket/package.py
+++ b/var/spack/repos/builtin/packages/py-netket/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-networkit/package.py b/var/spack/repos/builtin/packages/py-networkit/package.py
index 3fabec5089..375cc0c49c 100644
--- a/var/spack/repos/builtin/packages/py-networkit/package.py
+++ b/var/spack/repos/builtin/packages/py-networkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,14 +18,22 @@ class PyNetworkit(PythonPackage):
parallelism and scalability."""
homepage = "https://networkit.github.io/"
- url = "https://pypi.io/packages/source/n/networkit/networkit-6.1.tar.gz"
+ pypi = "networkit/networkit-6.1.tar.gz"
+ maintainers = ['fabratu']
+
+ version('9.0', sha256='e27872d0d6a8a0a1ba862b0dab6adb4f0046fe6b20d3c47863075d1ee70226d3')
+ version('8.1', sha256='5ff9e61496259280df4f913b1e37f51ca6f94974c4b9f623851f4d518f5ce0d5')
+ version('8.0', sha256='36c30e894e835bf93f0aa0fb0b526758234e74318150820911e024ffe5ec1fd2')
version('7.1', sha256='8609dc7a574a8a82d8880b8b1e3dfdd9c59ad67cd02135628e675c482fe98a96')
version('7.0', sha256='eea4b5e565d6990b674e1c7f4d598be9377d57b61d0d82883ecc39edabaf3631')
version('6.1', sha256='f7fcb50dec66a8253f85c10ff9314100de013c7578d531c81d3f71bc6cf8f093')
# Required dependencies
depends_on('cmake', type='build')
+ depends_on('libnetworkit@9.0', type=('build', 'link'), when='@9.0')
+ depends_on('libnetworkit@8.1', type=('build', 'link'), when='@8.1')
+ depends_on('libnetworkit@8.0', type=('build', 'link'), when='@8.0')
depends_on('libnetworkit@7.1', type=('build', 'link'), when='@7.1')
depends_on('libnetworkit@7.0', type=('build', 'link'), when='@7.0')
depends_on('libnetworkit@6.1', type=('build', 'link'), when='@6.1')
@@ -35,6 +43,7 @@ class PyNetworkit(PythonPackage):
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-scipy', type=('build', 'run'))
depends_on('py-setuptools', type='build')
+ depends_on('python@3:', type=('build', 'run'))
phases = ['build_ext', 'install']
diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py
index 04f82dac03..e76b355a5e 100644
--- a/var/spack/repos/builtin/packages/py-networkx/package.py
+++ b/var/spack/repos/builtin/packages/py-networkx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,10 @@ class PyNetworkx(PythonPackage):
"""NetworkX is a Python package for the creation, manipulation, and study
of the structure, dynamics, and functions of complex networks."""
- homepage = "http://networkx.github.io/"
- url = "https://pypi.io/packages/source/n/networkx/networkx-2.4.tar.gz"
+ homepage = "https://networkx.github.io/"
+ pypi = "networkx/networkx-2.4.tar.gz"
+ version('2.5.1', sha256='109cd585cac41297f71103c3c42ac6ef7379f29788eb54cb751be5a663bb235a')
version('2.4', sha256='f8f4ff0b6f96e4f9b16af6b84622597b5334bf9cae8cf9b2e42e7985d5c95c64')
version('2.3', sha256='8311ddef63cf5c5c5e7c1d0212dd141d9a1fe3f474915281b73597ed5f1d4e3d')
version('2.2', sha256='45e56f7ab6fe81652fb4bc9f44faddb0e9025f469f602df14e3b2551c2ea5c8b')
@@ -23,10 +24,12 @@ class PyNetworkx(PythonPackage):
depends_on('python@2.7:', type=('build', 'run'))
depends_on('python@3.5:', type=('build', 'run'), when='@2.3:')
+ depends_on('python@3.6:', type=('build', 'run'), when='@2.5:')
depends_on('py-setuptools', type='build')
depends_on('py-decorator@3.4.0:', type=('build', 'run'))
depends_on('py-decorator@4.1.0:', type=('build', 'run'), when='@2.0:')
depends_on('py-decorator@4.3.0:', type=('build', 'run'), when='@2.2:')
+ depends_on('py-decorator@4.3.0:4.999', type=('build', 'run'), when='@2.5.1:')
def url_for_version(self, version):
ext = 'tar.gz'
diff --git a/var/spack/repos/builtin/packages/py-neurokit2/package.py b/var/spack/repos/builtin/packages/py-neurokit2/package.py
new file mode 100644
index 0000000000..8c12cd174c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-neurokit2/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 PyNeurokit2(PythonPackage):
+ """The Python Toolbox for Neurophysiological Signal Processing.
+
+ This package is the continuation of NeuroKit 1. It's a user-friendly
+ package providing easy access to advanced biosignal processing routines.
+ Researchers and clinicians without extensive knowledge of programming or
+ biomedical signal processing can analyze physiological data with only two
+ lines of code.
+ """
+
+ homepage = "https://github.com/neuropsychology/NeuroKit"
+ pypi = "neurokit2/neurokit2-0.1.2.tar.gz"
+
+ version('0.1.2', sha256='5ef40037c2d7078ecb713ab0b77b850267babf133856b59595de9613f29787bc')
+
+ depends_on('py-setuptools@040.6.0:', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-scikit-learn', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-nibabel/package.py b/var/spack/repos/builtin/packages/py-nibabel/package.py
new file mode 100644
index 0000000000..e2d8be7e8f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-nibabel/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyNibabel(PythonPackage):
+ """Access a multitude of neuroimaging data formats"""
+
+ homepage = "https://nipy.org/nibabel"
+ pypi = "nibabel/nibabel-3.2.1.tar.gz"
+
+ version('3.2.1', sha256='4d2ff9426b740011a1c916b54fc25da9348282e727eaa2ea163f42e00f1fc29e')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools@30.3.0:', type=('build', 'run'))
+ depends_on('py-numpy@1.14:', type='run')
+ depends_on('py-packaging@14.3:', type='run')
diff --git a/var/spack/repos/builtin/packages/py-nilearn/package.py b/var/spack/repos/builtin/packages/py-nilearn/package.py
new file mode 100644
index 0000000000..8bcdb4ce58
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-nilearn/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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 PyNilearn(PythonPackage):
+ """Statistical learning for neuroimaging in Python."""
+
+ homepage = "https://nilearn.github.io/"
+ pypi = "nilearn/nilearn-0.7.1.tar.gz"
+
+ version('0.8.0', sha256='f2d3dc81005f829f3a183efa6c90d698ea6818c06264d2e3f03e805c4340febb')
+ version('0.7.1', sha256='8b1409a5e1f0f6d1a1f02555c2f11115a2364f45f1e57bcb5fb3c9ea11f346fa')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'run'), when='@0.8.0:')
+ depends_on('py-setuptools', type='build')
+
+ variant('plotting', default=False, description='Enable plotting functionalities')
+
+ depends_on('py-numpy@1.16:', type=('build', 'run'), when='@0.8:')
+ depends_on('py-scipy@1.2:', type=('build', 'run'), when='@0.8:')
+ depends_on('py-scikit-learn@0.21:', type=('build', 'run'), when='@0.8:')
+ depends_on('py-joblib@0.12:', type=('build', 'run'))
+ depends_on('py-nibabel@2.5:', type=('build', 'run'), when='@0.8:')
+ depends_on('py-pandas@0.24.0:', type=('build', 'run'), when='@0.8:')
+ depends_on('py-requests@2:', type=('build', 'run'))
+ depends_on('py-matplotlib@2.0:', type=('build', 'run'), when='+plotting')
+
+ depends_on('py-numpy@1.11:', type=('build', 'run'), when='@:0.7')
+ depends_on('py-scipy@0.19:', type=('build', 'run'), when='@:0.7')
+ depends_on('py-scikit-learn@0.19:', type=('build', 'run'), when='@:0.7')
+ depends_on('py-nibabel@2.0.2:', type=('build', 'run'), when='@:0.7')
+ depends_on('py-pandas@0.18.0:', type=('build', 'run'), when='@:0.7')
diff --git a/var/spack/repos/builtin/packages/py-nipype/package.py b/var/spack/repos/builtin/packages/py-nipype/package.py
new file mode 100644
index 0000000000..2b96768487
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-nipype/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 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 PyNipype(PythonPackage):
+ """Neuroimaging in Python: Pipelines and Interfaces."""
+
+ homepage = "https://nipy.org/nipype"
+ pypi = "nipype/nipype-1.6.0.tar.gz"
+
+ version('1.6.1', sha256='8428cfc633d8e3b8c5650e241e9eedcf637b7969bcd40f3423334d4c6b0992b5')
+ version('1.6.0', sha256='bc56ce63f74c9a9a23c6edeaf77631377e8ad2bea928c898cc89527a47f101cf')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ depends_on('py-click@6.6.0:', type=('build', 'run'))
+ depends_on('py-networkx@2.0:', type=('build', 'run'))
+ depends_on('py-nibabel@2.1.0:', type=('build', 'run'))
+ depends_on('py-numpy@1.13:', type=('build', 'run'), when='^python@:3.6.999')
+ depends_on('py-numpy@1.15.3:', type=('build', 'run'), when='^python@3.7:')
+ depends_on('py-packaging', type=('build', 'run'))
+ depends_on('py-prov@1.5.2:', type=('build', 'run'))
+ depends_on('py-pydot@1.2.3:', type=('build', 'run'))
+ depends_on('py-python-dateutil@2.2:', type=('build', 'run'))
+ depends_on('py-rdflib@5.0.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.14:', type=('build', 'run'))
+ depends_on('py-simplejson@3.8.0:', type=('build', 'run'))
+ depends_on('py-traits@4.6:4.99,5.1:', type=('build', 'run'))
+ depends_on('py-filelock@3.0.0:', type=('build', 'run'))
+ depends_on('py-etelemetry@0.2.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-nltk/package.py b/var/spack/repos/builtin/packages/py-nltk/package.py
index a19244e5fc..b6835a8edf 100644
--- a/var/spack/repos/builtin/packages/py-nltk/package.py
+++ b/var/spack/repos/builtin/packages/py-nltk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyNltk(PythonPackage):
natural language processing."""
homepage = "https://www.nltk.org/"
- url = "https://pypi.io/packages/source/n/nltk/nltk-3.5.zip"
+ pypi = "nltk/nltk-3.5.zip"
version('3.5', sha256='845365449cd8c5f9731f7cb9f8bd6fd0767553b9d53af9eb1b3abf7700936b35')
diff --git a/var/spack/repos/builtin/packages/py-nltk/resourcegen.py b/var/spack/repos/builtin/packages/py-nltk/resourcegen.py
index 77042e70c0..7a1fa49a3c 100644
--- a/var/spack/repos/builtin/packages/py-nltk/resourcegen.py
+++ b/var/spack/repos/builtin/packages/py-nltk/resourcegen.py
@@ -2,9 +2,10 @@
#
# Helper script for maintainers to autogenerate resources for py-nltk
#
+import hashlib
import urllib.request
import xml.etree.ElementTree
-import hashlib
+
url = 'https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml'
document = urllib.request.urlopen(url).read()
tree = xml.etree.ElementTree.fromstring(document)
diff --git a/var/spack/repos/builtin/packages/py-nodeenv/package.py b/var/spack/repos/builtin/packages/py-nodeenv/package.py
index 03120dd227..80c974dd20 100644
--- a/var/spack/repos/builtin/packages/py-nodeenv/package.py
+++ b/var/spack/repos/builtin/packages/py-nodeenv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyNodeenv(PythonPackage):
"""Node.js virtual environment"""
homepage = "https://github.com/ekalinin/nodeenv"
- url = "https://pypi.io/packages/source/n/nodeenv/nodeenv-1.3.3.tar.gz"
+ pypi = "nodeenv/nodeenv-1.3.3.tar.gz"
version('1.3.3', sha256='ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a')
diff --git a/var/spack/repos/builtin/packages/py-nose-cov/package.py b/var/spack/repos/builtin/packages/py-nose-cov/package.py
index 88431ff9e5..bd0cc839d9 100644
--- a/var/spack/repos/builtin/packages/py-nose-cov/package.py
+++ b/var/spack/repos/builtin/packages/py-nose-cov/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyNoseCov(PythonPackage):
"""This plugin produces coverage reports."""
- homepage = "http://bitbucket.org/memedough/nose-cov/overview"
- url = "https://pypi.io/packages/source/n/nose-cov/nose-cov-1.6.tar.gz"
+ pypi = "nose-cov/nose-cov-1.6.tar.gz"
version('1.6', sha256='8bec0335598f1cc69e3262cc50d7678c1a6010fa44625ce343c4ec1500774412')
diff --git a/var/spack/repos/builtin/packages/py-nose/package.py b/var/spack/repos/builtin/packages/py-nose/package.py
index fcafc521c7..542931d39c 100644
--- a/var/spack/repos/builtin/packages/py-nose/package.py
+++ b/var/spack/repos/builtin/packages/py-nose/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,7 @@ class PyNose(PythonPackage):
"""nose extends the test loading and running features of unittest,
making it easier to write, find and run tests."""
- homepage = "https://pypi.python.org/pypi/nose"
- url = "https://pypi.io/packages/source/n/nose/nose-1.3.4.tar.gz"
-
- import_modules = [
- 'nose', 'nose.ext', 'nose.plugins', 'nose.sphinx', 'nose.tools'
- ]
+ pypi = "nose/nose-1.3.4.tar.gz"
version('1.3.7', sha256='f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98')
version('1.3.6', sha256='f61e0909a743eed37b1207e38a8e7b4a2fe0a82185e36f2be252ef1b3f901758')
diff --git a/var/spack/repos/builtin/packages/py-nose2/package.py b/var/spack/repos/builtin/packages/py-nose2/package.py
index 510fbd8850..287bfee0de 100644
--- a/var/spack/repos/builtin/packages/py-nose2/package.py
+++ b/var/spack/repos/builtin/packages/py-nose2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyNose2(PythonPackage):
"""unittest2 with plugins, the succesor to nose"""
homepage = "https://github.com/nose-devs/nose2"
- url = "https://pypi.io/packages/source/n/nose2/nose2-0.9.1.tar.gz"
+ pypi = "nose2/nose2-0.9.1.tar.gz"
version('0.9.1', sha256='0ede156fd7974fa40893edeca0b709f402c0ccacd7b81b22e76f73c116d1b999')
version('0.6.0', sha256='daa633e92a52e0db60ade7e105a2ba5cad7ac819f3608740dcfc6140b9fd0a94')
diff --git a/var/spack/repos/builtin/packages/py-nosexcover/package.py b/var/spack/repos/builtin/packages/py-nosexcover/package.py
index c92b5f9d77..df6e91579f 100644
--- a/var/spack/repos/builtin/packages/py-nosexcover/package.py
+++ b/var/spack/repos/builtin/packages/py-nosexcover/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyNosexcover(PythonPackage):
out an XML coverage report to a file named coverage.xml."""
homepage = "https://github.com/cmheisel/nose-xcover"
- url = "https://pypi.io/packages/source/n/nosexcover/nosexcover-1.0.11.tar.gz"
+ pypi = "nosexcover/nosexcover-1.0.11.tar.gz"
version('1.0.11', sha256='298c3c655da587f6cab8a666e9f4b150320032431062dea91353988d45c8b883')
diff --git a/var/spack/repos/builtin/packages/py-notebook/package.py b/var/spack/repos/builtin/packages/py-notebook/package.py
index aa9b8799c0..0bbbcbc70e 100644
--- a/var/spack/repos/builtin/packages/py-notebook/package.py
+++ b/var/spack/repos/builtin/packages/py-notebook/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,20 @@ class PyNotebook(PythonPackage):
"""Jupyter Interactive Notebook"""
homepage = "https://github.com/jupyter/notebook"
- url = "https://pypi.io/packages/source/n/notebook/notebook-6.1.4.tar.gz"
+ pypi = "notebook/notebook-6.1.4.tar.gz"
version('6.1.4', sha256='687d01f963ea20360c0b904ee7a37c3d8cda553858c8d6e33fd0afd13e89de32')
version('6.0.3', sha256='47a9092975c9e7965ada00b9a20f0cf637d001db60d241d479f53c0be117ad48')
version('6.0.1', sha256='660976fe4fe45c7aa55e04bf4bccb9f9566749ff637e9020af3422f9921f9a5d')
+ version('6.0.0', sha256='5c16dbf4fa824db19de43637ebfb24bcbd3b4f646e5d6a0414ed3a376d6bc951')
version('5.7.8', sha256='573e0ae650c5d76b18b6e564ba6d21bf321d00847de1d215b418acb64f056eb8')
+ version('5.7.6', sha256='18a98858c0331fb65a60f2ebb6439f8c0c4defd14ca363731b6cabc7f61624b4')
+ version('5.7.5', sha256='c5011449a1a6d9f96bf65c4c2d6713802a21125476312b39c99010ccd7a2e2ed')
+ version('5.7.4', sha256='d908673a4010787625c8952e91a22adf737db031f2aa0793ad92f6558918a74a')
+ version('5.7.3', sha256='f57d470401b2d7434587bcf4dd9263e73f139bf070b1b81a7ed4dfae7ec83f71')
+ version('5.7.2', sha256='91705b109fc785198faed892489cddb233265564d5e2dad5e4f7974af05ee8dd')
+ version('5.7.1', sha256='24f38c9cc7d7bd0a4c429cc8381e602e58b2b176d6071096a09a0e6c9cd0b463')
+ version('5.7.0', sha256='b85e4de3d54cf4f14fe1d0515a980ccb49ddd4cdd21250cc0d4fb6374d50b1a7')
version('4.2.3', sha256='39a9603d3fe88b60de2903680c965cf643acf2c16fb2c6bac1d905e1042b5851')
version('4.2.2', sha256='418ba230c9b2e7e739940cae9fb4625e10a63f038e9c95cf1a9b7a244256ba38')
version('4.2.1', sha256='a49de524dabb99f214bdf2a58f26c7892650251a23a3669c6492fb180492e197')
diff --git a/var/spack/repos/builtin/packages/py-ntlm-auth/package.py b/var/spack/repos/builtin/packages/py-ntlm-auth/package.py
new file mode 100644
index 0000000000..46c3245ec9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ntlm-auth/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyNtlmAuth(PythonPackage):
+ """Creates NTLM authentication structures."""
+
+ homepage = "https://github.com/jborean93/ntlm-auth"
+ pypi = "ntlm-auth/ntlm-auth-1.5.0.tar.gz"
+
+ version('1.5.0', sha256='c9667d361dc09f6b3750283d503c689070ff7d89f2f6ff0d38088d5436ff8543')
+
+ depends_on('python@2.6:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-ordereddict', type=('build', 'run'), when='^python@:2.6.999')
diff --git a/var/spack/repos/builtin/packages/py-ntplib/package.py b/var/spack/repos/builtin/packages/py-ntplib/package.py
new file mode 100755
index 0000000000..5fe6aa25a0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ntplib/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyNtplib(PythonPackage):
+ """Simple interface to query NTP servers from Python."""
+
+ homepage = 'https://github.com/cf-natali/ntplib'
+ git = 'https://github.com/cf-natali/ntplib.git'
+ pypi = 'ntplib/ntplib-0.4.0.tar.gz'
+
+ version('0.4.0', sha256='899d8fb5f8c2555213aea95efca02934c7343df6ace9d7628a5176b176906267')
+
+ depends_on('python@2.7,3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-num2words/package.py b/var/spack/repos/builtin/packages/py-num2words/package.py
new file mode 100644
index 0000000000..3f0e986bb4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-num2words/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyNum2words(PythonPackage):
+ """Modules to convert numbers to words. Easily extensible."""
+
+ homepage = "https://github.com/savoirfairelinux/num2words"
+ pypi = "num2words/num2words-0.5.10.tar.gz"
+
+ version('0.5.10', sha256='37cd4f60678f7e1045cdc3adf6acf93c8b41bf732da860f97d301f04e611cc57')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-docopt@0.6.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-numba/package.py b/var/spack/repos/builtin/packages/py-numba/package.py
index a108341740..83347b7983 100644
--- a/var/spack/repos/builtin/packages/py-numba/package.py
+++ b/var/spack/repos/builtin/packages/py-numba/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ class PyNumba(PythonPackage):
"""NumPy aware dynamic Python compiler using LLVM"""
homepage = "https://numba.pydata.org/"
- url = "https://pypi.io/packages/source/n/numba/numba-0.35.0.tar.gz"
+ pypi = "numba/numba-0.35.0.tar.gz"
+ version('0.51.1', sha256='1e765b1a41535684bf3b0465c1d0a24dcbbff6af325270c8f4dad924c0940160')
version('0.50.1', sha256='89e81b51b880f9b18c82b7095beaccc6856fcf84ba29c4f0ced42e4e5748a3a7')
version('0.48.0', sha256='9d21bc77e67006b5723052840c88cc59248e079a907cc68f1a1a264e1eaba017')
version('0.40.1', sha256='52d046c13bcf0de79dbfb936874b7228f141b9b8e3447cc35855e9ad3e12aa33')
@@ -28,10 +29,11 @@ class PyNumba(PythonPackage):
# That's why it was chosen as an upper bound in the following depends_on
# calls. If newer versions maintain backwards compatibility, the calls
# can be updated accordingly.
- depends_on('py-llvmlite@0.33:0.34', type=('build', 'run'), when='@0.50.1')
- depends_on('py-llvmlite@0.31.0:0.32.0', type=('build', 'run'), when='@0.48.0')
- depends_on('py-llvmlite@0.25:', type=('build', 'run'), when='@0.40.1:')
- depends_on('py-llvmlite@0.20:0.25', type=('build', 'run'), when='@0.35.1')
+ depends_on('py-llvmlite@0.34.0:0.34.999', type=('build', 'run'), when='@0.51.1')
+ depends_on('py-llvmlite@0.33.0:0.33.999', type=('build', 'run'), when='@0.50.1')
+ depends_on('py-llvmlite@0.31.0:0.31.999', type=('build', 'run'), when='@0.48.0')
+ depends_on('py-llvmlite@0.25.0:', type=('build', 'run'), when='@0.40.1')
+ depends_on('py-llvmlite@0.20:0.25', type=('build', 'run'), when='@0.35.1')
depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6')
depends_on('py-funcsigs', type=('build', 'run'), when='^python@:3.3.99')
diff --git a/var/spack/repos/builtin/packages/py-numcodecs/apple-clang-12.patch b/var/spack/repos/builtin/packages/py-numcodecs/apple-clang-12.patch
new file mode 100644
index 0000000000..818bba165c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-numcodecs/apple-clang-12.patch
@@ -0,0 +1,14 @@
+https://github.com/Blosc/c-blosc/issues/316
+diff --git a/c-blosc/internal-complibs/zlib-1.2.8/gzguts.h b/c-blosc/internal-complibs/zlib-1.2.8/gzguts.h
+index d87659d..f6823ed 100644
+--- a/c-blosc/internal-complibs/zlib-1.2.8/gzguts.h
++++ b/c-blosc/internal-complibs/zlib-1.2.8/gzguts.h
+@@ -26,6 +26,7 @@
+ # include <limits.h>
+ #endif
+ #include <fcntl.h>
++#include <unistd.h>
+
+ #ifdef _WIN32
+ # include <stddef.h>
+
diff --git a/var/spack/repos/builtin/packages/py-numcodecs/package.py b/var/spack/repos/builtin/packages/py-numcodecs/package.py
index 2fd992447e..3a788b981c 100644
--- a/var/spack/repos/builtin/packages/py-numcodecs/package.py
+++ b/var/spack/repos/builtin/packages/py-numcodecs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,13 +13,25 @@ class PyNumcodecs(PythonPackage):
"""
homepage = "https://github.com/zarr-developers/numcodecs"
- url = "https://pypi.io/packages/source/n/numcodecs/numcodecs-0.6.4.tar.gz"
+ pypi = "numcodecs/numcodecs-0.6.4.tar.gz"
+ git = "https://github.com/zarr-developers/numcodecs.git"
+ # 'numcodecs.tests' excluded from 'import_modules' because it requires
+ # an additional dependency on 'pytest'
+ import_modules = ['numcodecs']
+
+ version('master', branch='master', submodules=True)
+ version('0.7.3', sha256='022b12ad83eb623ec53f154859d49f6ec43b15c36052fa864eaf2d9ee786dd85')
version('0.6.4', sha256='ef4843d5db4d074e607e9b85156835c10d006afc10e175bda62ff5412fca6e4d')
variant('msgpack', default=False, description='Codec to encode data as msgpacked bytes.')
- depends_on('py-setuptools@18.0:', type='build')
- depends_on('py-setuptools-scm@1.5.4:', type=('build', 'run'))
- depends_on('py-numpy@1.7:', type=('build', 'run'))
+ depends_on('python@3.6:3.999', when='@0.7:', type=('build', 'link', 'run'))
+ depends_on('python@2.7:2.8,3.5:', when='@:0.6.999', type=('build', 'link', 'run'))
+ depends_on('py-setuptools@18.1:', type='build')
+ depends_on('py-setuptools-scm@1.5.5:', type='build')
+ depends_on('py-cython', type='build')
+ depends_on('py-numpy@1.7:', type=('build', 'run'))
depends_on('py-msgpack', type=('build', 'run'), when='+msgpack')
+
+ patch('apple-clang-12.patch', when='%apple-clang@12:')
diff --git a/var/spack/repos/builtin/packages/py-numexpr/package.py b/var/spack/repos/builtin/packages/py-numexpr/package.py
index 21fd4bf81a..5c824f3774 100644
--- a/var/spack/repos/builtin/packages/py-numexpr/package.py
+++ b/var/spack/repos/builtin/packages/py-numexpr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,11 @@ from spack import *
class PyNumexpr(PythonPackage):
"""Fast numerical expression evaluator for NumPy"""
- homepage = "https://pypi.python.org/pypi/numexpr"
+
+ homepage = "https://github.com/pydata/numexpr"
url = "https://github.com/pydata/numexpr/archive/v2.7.0.tar.gz"
+ version('2.7.2', sha256='7d1b3790103221feda07f4a93a4fa5c6654f46865197a677ca6f27eb5cb4e5ef')
version('2.7.0', sha256='1923f038b90cc69635871968ed742be7775c879451c612f173c2547c823c9561')
version('2.6.9', sha256='d57267bbdf10906f5ed7841b3484bec4af0494102b50e89ba316924cc7a7fd46')
version('2.6.5', sha256='fe78a78e002806e87e012b6105f3b3d52d47fc7a72bafb56341fcec7ce02cfd7')
diff --git a/var/spack/repos/builtin/packages/py-numexpr3/package.py b/var/spack/repos/builtin/packages/py-numexpr3/package.py
index f58baaf3f9..991f24a245 100644
--- a/var/spack/repos/builtin/packages/py-numexpr3/package.py
+++ b/var/spack/repos/builtin/packages/py-numexpr3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class PyNumexpr3(PythonPackage):
SSE2 or AVX2, if your processor supports them. Use of a newer version of
gcc such as 5.4 is strongly recommended."""
homepage = "https://github.com/pydata/numexpr/tree/numexpr-3.0"
- url = "https://pypi.io/packages/source/n/numexpr3/numexpr3-3.0.1a1.tar.gz"
+ pypi = "numexpr3/numexpr3-3.0.1a1.tar.gz"
version('3.0.1a1', sha256='de06f1b4206704b5bc19ea09b5c94350b97c211c26bc866f275252a8461b87e6')
# TODO: Add CMake build system for better control of passing flags related
diff --git a/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler.patch b/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler.patch
index 75ae8cb93a..50df963581 100644
--- a/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler.patch
+++ b/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler.patch
@@ -1,13 +1,13 @@
-diff -urN numpy-1.19.4.org/numpy/distutils/fcompiler/fj.py numpy-1.19.4/numpy/distutils/fcompiler/fj.py
---- numpy-1.19.4.org/numpy/distutils/fcompiler/fj.py 1970-01-01 09:00:00.000000000 +0900
-+++ numpy-1.19.4/numpy/distutils/fcompiler/fj.py 2020-11-10 17:21:43.324928283 +0900
-@@ -0,0 +1,38 @@
+diff -urN numpy-1.19.4.org/numpy/distutils/fcompiler/fujitsu.py numpy-1.19.4/numpy/distutils/fcompiler/fujitsu.py
+--- numpy-1.19.4.org/numpy/distutils/fcompiler/fujitsu.py 1970-01-01 09:00:00.000000000 +0900
++++ numpy-1.19.4/numpy/distutils/fcompiler/fujitsu.py 2020-11-10 17:21:43.324928283 +0900
+@@ -0,0 +1,40 @@
+from numpy.distutils.fcompiler import FCompiler
+
-+compilers = ['FJFCompiler']
++compilers = ['FujitsuFCompiler']
+
-+class FJFCompiler(FCompiler):
-+ compiler_type = 'fj'
++class FujitsuFCompiler(FCompiler):
++ compiler_type = 'fujitsu'
+ description = 'Fujitsu Fortran Compiler'
+
+ possible_executables = ['frt']
@@ -34,12 +34,14 @@ diff -urN numpy-1.19.4.org/numpy/distutils/fcompiler/fj.py numpy-1.19.4/numpy/di
+ return ['-g']
+ def runtime_library_dir_option(self, dir):
+ return f'-Wl,-rpath={dir}'
++ def get_libraries(self):
++ return ['fj90f', 'fj90i', 'fjsrcinfo']
+
+if __name__ == '__main__':
+ from distutils import log
+ from numpy.distutils import customized_fcompiler
+ log.set_verbosity(2)
-+ print(customized_fcompiler('fj').get_version())
++ print(customized_fcompiler('fujitsu').get_version())
diff -urN numpy-1.19.4.org/numpy/distutils/fcompiler/__init__.py numpy-1.19.4/numpy/distutils/fcompiler/__init__.py
--- numpy-1.19.4.org/numpy/distutils/fcompiler/__init__.py 2020-11-09 10:51:35.693490207 +0900
+++ numpy-1.19.4/numpy/distutils/fcompiler/__init__.py 2020-11-16 17:48:49.316744476 +0900
@@ -48,7 +50,7 @@ diff -urN numpy-1.19.4.org/numpy/distutils/fcompiler/__init__.py numpy-1.19.4/nu
('cygwin.*', ('gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95')),
('linux.*', ('gnu95', 'intel', 'lahey', 'pg', 'nv', 'absoft', 'nag', 'vast', 'compaq',
- 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor')),
-+ 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor', 'fj')),
++ 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor', 'fujitsu')),
('darwin.*', ('gnu95', 'nag', 'absoft', 'ibm', 'intel', 'gnu', 'g95', 'pg')),
('sunos.*', ('sun', 'gnu', 'gnu95', 'g95')),
('irix.*', ('mips', 'gnu', 'gnu95',)),
diff --git a/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler2.patch b/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler2.patch
index 6e605cb137..4526ddeadb 100644
--- a/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler2.patch
+++ b/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler2.patch
@@ -1,13 +1,13 @@
-diff -urN spack-src.org/numpy/distutils/fcompiler/fj.py spack-src/numpy/distutils/fcompiler/fj.py
---- spack-src.org/numpy/distutils/fcompiler/fj.py 1970-01-01 09:00:00.000000000 +0900
-+++ spack-src/numpy/distutils/fcompiler/fj.py 2020-11-16 17:55:57.608802456 +0900
-@@ -0,0 +1,38 @@
+diff -urN spack-src.org/numpy/distutils/fcompiler/fujitsu.py spack-src/numpy/distutils/fcompiler/fujitsu.py
+--- spack-src.org/numpy/distutils/fcompiler/fujitsu.py 1970-01-01 09:00:00.000000000 +0900
++++ spack-src/numpy/distutils/fcompiler/fujitsu.py 2020-11-16 17:55:57.608802456 +0900
+@@ -0,0 +1,40 @@
+from numpy.distutils.fcompiler import FCompiler
+
-+compilers = ['FJFCompiler']
++compilers = ['FujitsuFCompiler']
+
-+class FJFCompiler(FCompiler):
-+ compiler_type = 'fj'
++class FujitsuFCompiler(FCompiler):
++ compiler_type = 'fujitsu'
+ description = 'Fujitsu Fortran Compiler'
+
+ possible_executables = ['frt']
@@ -34,12 +34,14 @@ diff -urN spack-src.org/numpy/distutils/fcompiler/fj.py spack-src/numpy/distutil
+ return ['-g']
+ def runtime_library_dir_option(self, dir):
+ return f'-Wl,-rpath={dir}'
++ def get_libraries(self):
++ return ['fj90f', 'fj90i', 'fjsrcinfo']
+
+if __name__ == '__main__':
+ from distutils import log
+ from numpy.distutils import customized_fcompiler
+ log.set_verbosity(2)
-+ print(customized_fcompiler('fj').get_version())
++ print(customized_fcompiler('fujitsu').get_version())
diff -urN spack-src.org/numpy/distutils/fcompiler/__init__.py spack-src/numpy/distutils/fcompiler/__init__.py
--- spack-src.org/numpy/distutils/fcompiler/__init__.py 2020-11-16 17:55:31.638677631 +0900
+++ spack-src/numpy/distutils/fcompiler/__init__.py 2020-11-16 17:56:29.978957954 +0900
@@ -48,7 +50,7 @@ diff -urN spack-src.org/numpy/distutils/fcompiler/__init__.py spack-src/numpy/di
('cygwin.*', ('gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95')),
('linux.*', ('gnu95', 'intel', 'lahey', 'pg', 'absoft', 'nag', 'vast', 'compaq',
- 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor')),
-+ 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor', 'fj')),
++ 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor', 'fujitsu')),
('darwin.*', ('gnu95', 'nag', 'absoft', 'ibm', 'intel', 'gnu', 'g95', 'pg')),
('sunos.*', ('sun', 'gnu', 'gnu95', 'g95')),
('irix.*', ('mips', 'gnu', 'gnu95',)),
diff --git a/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler3.patch b/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler3.patch
index 710720b5c5..034cac069b 100644
--- a/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler3.patch
+++ b/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler3.patch
@@ -1,13 +1,13 @@
-diff -urN spack-src.org/numpy/distutils/fcompiler/fj.py spack-src/numpy/distutils/fcompiler/fj.py
---- spack-src.org/numpy/distutils/fcompiler/fj.py 1970-01-01 09:00:00.000000000 +0900
-+++ spack-src/numpy/distutils/fcompiler/fj.py 2020-11-16 18:30:06.698641953 +0900
-@@ -0,0 +1,38 @@
+diff -urN spack-src.org/numpy/distutils/fcompiler/fujitsu.py spack-src/numpy/distutils/fcompiler/fujitsu.py
+--- spack-src.org/numpy/distutils/fcompiler/fujitsu.py 1970-01-01 09:00:00.000000000 +0900
++++ spack-src/numpy/distutils/fcompiler/fujitsu.py 2020-11-16 18:30:06.698641953 +0900
+@@ -0,0 +1,40 @@
+from numpy.distutils.fcompiler import FCompiler
+
-+compilers = ['FJFCompiler']
++compilers = ['FujitsuFCompiler']
+
-+class FJFCompiler(FCompiler):
-+ compiler_type = 'fj'
++class FujitsuFCompiler(FCompiler):
++ compiler_type = 'fujitsu'
+ description = 'Fujitsu Fortran Compiler'
+
+ possible_executables = ['frt']
@@ -34,12 +34,14 @@ diff -urN spack-src.org/numpy/distutils/fcompiler/fj.py spack-src/numpy/distutil
+ return ['-g']
+ def runtime_library_dir_option(self, dir):
+ return '-Wl,-rpath=%s' %dir
++ def get_libraries(self):
++ return ['fj90f', 'fj90i', 'fjsrcinfo']
+
+if __name__ == '__main__':
+ from distutils import log
+ from numpy.distutils import customized_fcompiler
+ log.set_verbosity(2)
-+ print(customized_fcompiler('fj').get_version())
++ print(customized_fcompiler('fujitsu').get_version())
diff -urN spack-src.org/numpy/distutils/fcompiler/__init__.py spack-src/numpy/distutils/fcompiler/__init__.py
--- spack-src.org/numpy/distutils/fcompiler/__init__.py 2020-11-16 18:25:26.087294181 +0900
+++ spack-src/numpy/distutils/fcompiler/__init__.py 2020-11-16 18:26:19.987553070 +0900
@@ -48,7 +50,7 @@ diff -urN spack-src.org/numpy/distutils/fcompiler/__init__.py spack-src/numpy/di
('cygwin.*', ('gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95')),
('linux.*', ('gnu95', 'intel', 'lahey', 'pg', 'absoft', 'nag', 'vast', 'compaq',
- 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor')),
-+ 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor', 'fj')),
++ 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'nagfor', 'fujitsu')),
('darwin.*', ('gnu95', 'nag', 'absoft', 'ibm', 'intel', 'gnu', 'g95', 'pg')),
('sunos.*', ('sun', 'gnu', 'gnu95', 'g95')),
('irix.*', ('mips', 'gnu', 'gnu95',)),
diff --git a/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler4.patch b/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler4.patch
index 9b8d56c8d5..83f2be5d82 100644
--- a/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler4.patch
+++ b/var/spack/repos/builtin/packages/py-numpy/add_fj_compiler4.patch
@@ -1,13 +1,13 @@
-diff -urN spack-src.org/numpy/distutils/fcompiler/fj.py spack-src/numpy/distutils/fcompiler/fj.py
---- spack-src.org/numpy/distutils/fcompiler/fj.py 1970-01-01 09:00:00.000000000 +0900
-+++ spack-src/numpy/distutils/fcompiler/fj.py 2020-11-16 18:42:47.672297372 +0900
-@@ -0,0 +1,38 @@
+diff -urN spack-src.org/numpy/distutils/fcompiler/fujitsu.py spack-src/numpy/distutils/fcompiler/fujitsu.py
+--- spack-src.org/numpy/distutils/fcompiler/fujitsu.py 1970-01-01 09:00:00.000000000 +0900
++++ spack-src/numpy/distutils/fcompiler/fujitsu.py 2020-11-16 18:42:47.672297372 +0900
+@@ -0,0 +1,40 @@
+from numpy.distutils.fcompiler import FCompiler
+
-+compilers = ['FJFCompiler']
++compilers = ['FujitsuFCompiler']
+
-+class FJFCompiler(FCompiler):
-+ compiler_type = 'fj'
++class FujitsuFCompiler(FCompiler):
++ compiler_type = 'fujitsu'
+ description = 'Fujitsu Fortran Compiler'
+
+ possible_executables = ['frt']
@@ -34,12 +34,14 @@ diff -urN spack-src.org/numpy/distutils/fcompiler/fj.py spack-src/numpy/distutil
+ return ['-g']
+ def runtime_library_dir_option(self, dir):
+ return '-Wl,-rpath=%s' %dir
++ def get_libraries(self):
++ return ['fj90f', 'fj90i', 'fjsrcinfo']
+
+if __name__ == '__main__':
+ from distutils import log
+ from numpy.distutils import customized_fcompiler
+ log.set_verbosity(2)
-+ print(customized_fcompiler('fj').get_version())
++ print(customized_fcompiler('fujitsu').get_version())
diff -urN spack-src.org/numpy/distutils/fcompiler/__init__.py spack-src/numpy/distutils/fcompiler/__init__.py
--- spack-src.org/numpy/distutils/fcompiler/__init__.py 2020-11-16 18:43:18.112443626 +0900
+++ spack-src/numpy/distutils/fcompiler/__init__.py 2020-11-16 18:44:54.062904636 +0900
@@ -48,7 +50,7 @@ diff -urN spack-src.org/numpy/distutils/fcompiler/__init__.py spack-src/numpy/di
('cygwin.*', ('gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95')),
('linux.*', ('gnu95', 'intel', 'lahey', 'pg', 'absoft', 'nag', 'vast', 'compaq',
- 'intele', 'intelem', 'gnu', 'g95', 'pathf95')),
-+ 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'fj')),
++ 'intele', 'intelem', 'gnu', 'g95', 'pathf95', 'fujitsu')),
('darwin.*', ('gnu95', 'nag', 'absoft', 'ibm', 'intel', 'gnu', 'g95', 'pg')),
('sunos.*', ('sun', 'gnu', 'gnu95', 'g95')),
('irix.*', ('mips', 'gnu', 'gnu95',)),
diff --git a/var/spack/repos/builtin/packages/py-numpy/check_executables.patch b/var/spack/repos/builtin/packages/py-numpy/check_executables.patch
new file mode 100644
index 0000000000..ee4ac1b45e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-numpy/check_executables.patch
@@ -0,0 +1,16 @@
+--- numpy-1.20.0/numpy/distutils/fcompiler/__init__.py.org 2021-02-04 17:38:42.000000000 +0900
++++ numpy-1.20.0/numpy/distutils/fcompiler/__init__.py 2021-02-04 18:29:21.000000000 +0900
+@@ -314,7 +314,12 @@
+ if not exe_from_environ:
+ possibles = [f90, f77] + self.possible_executables
+ else:
+- possibles = [exe_from_environ] + self.possible_executables
++ matching_executables = []
++ for e in exe_from_environ:
++ for p in self.possible_executables:
++ if p in e:
++ matching_executables.append(e)
++ possibles = [matching_executables] + self.possible_executables
+
+ seen = set()
+ unique_possibles = []
diff --git a/var/spack/repos/builtin/packages/py-numpy/check_executables2.patch b/var/spack/repos/builtin/packages/py-numpy/check_executables2.patch
new file mode 100644
index 0000000000..0d0b78f647
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-numpy/check_executables2.patch
@@ -0,0 +1,16 @@
+--- spack-src/numpy/distutils/fcompiler/__init__.py.orig 2021-01-04 15:16:38.000000000 +0900
++++ spack-src/numpy/distutils/fcompiler/__init__.py 2021-02-12 17:20:07.327563118 +0900
+@@ -316,7 +316,12 @@
+ if not exe_from_environ:
+ possibles = [f90, f77] + self.possible_executables
+ else:
+- possibles = [exe_from_environ] + self.possible_executables
++ matching_executables = []
++ for e in exe_from_environ:
++ for p in self.possible_executables:
++ if p in e:
++ matching_executables.append(e)
++ possibles = [matching_executables] + self.possible_executables
+
+ seen = set()
+ unique_possibles = []
diff --git a/var/spack/repos/builtin/packages/py-numpy/check_executables3.patch b/var/spack/repos/builtin/packages/py-numpy/check_executables3.patch
new file mode 100644
index 0000000000..078211e337
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-numpy/check_executables3.patch
@@ -0,0 +1,16 @@
+--- spack-src/numpy/distutils/fcompiler/__init__.py.orig 2020-06-02 17:24:58.000000000 +0900
++++ spack-src/numpy/distutils/fcompiler/__init__.py 2021-02-12 17:33:11.483728471 +0900
+@@ -320,7 +320,12 @@
+ if not exe_from_environ:
+ possibles = [f90, f77] + self.possible_executables
+ else:
+- possibles = [exe_from_environ] + self.possible_executables
++ matching_executables = []
++ for e in exe_from_environ:
++ for p in self.possible_executables:
++ if p in e:
++ matching_executables.append(e)
++ possibles = [matching_executables] + self.possible_executables
+
+ seen = set()
+ unique_possibles = []
diff --git a/var/spack/repos/builtin/packages/py-numpy/check_executables4.patch b/var/spack/repos/builtin/packages/py-numpy/check_executables4.patch
new file mode 100644
index 0000000000..b553acb46f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-numpy/check_executables4.patch
@@ -0,0 +1,16 @@
+--- spack-src/numpy/distutils/fcompiler/__init__.py.orig 2018-11-03 10:49:58.000000000 +0900
++++ spack-src/numpy/distutils/fcompiler/__init__.py 2021-02-12 17:57:50.632263931 +0900
+@@ -318,7 +318,12 @@
+ if not exe_from_environ:
+ possibles = [f90, f77] + self.possible_executables
+ else:
+- possibles = [exe_from_environ] + self.possible_executables
++ matching_executables = []
++ for e in exe_from_environ:
++ for p in self.possible_executables:
++ if p in e:
++ matching_executables.append(e)
++ possibles = [matching_executables] + self.possible_executables
+
+ seen = set()
+ unique_possibles = []
diff --git a/var/spack/repos/builtin/packages/py-numpy/check_executables5.patch b/var/spack/repos/builtin/packages/py-numpy/check_executables5.patch
new file mode 100644
index 0000000000..4ae9fe4009
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-numpy/check_executables5.patch
@@ -0,0 +1,16 @@
+--- spack-src/numpy/distutils/fcompiler/__init__.py.orig 2017-09-29 13:31:46.000000000 +0900
++++ spack-src/numpy/distutils/fcompiler/__init__.py 2021-02-12 18:06:12.001479417 +0900
+@@ -322,7 +322,12 @@
+ if not exe_from_environ:
+ possibles = [f90, f77] + self.possible_executables
+ else:
+- possibles = [exe_from_environ] + self.possible_executables
++ matching_executables = []
++ for e in exe_from_environ:
++ for p in self.possible_executables:
++ if p in e:
++ matching_executables.append(e)
++ possibles = [matching_executables] + self.possible_executables
+
+ seen = set()
+ unique_possibles = []
diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py
index fd09019469..4dfac98a8a 100644
--- a/var/spack/repos/builtin/packages/py-numpy/package.py
+++ b/var/spack/repos/builtin/packages/py-numpy/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 platform
import subprocess
+from spack import *
+
class PyNumpy(PythonPackage):
"""NumPy is the fundamental package for scientific computing with Python.
@@ -16,20 +17,21 @@ class PyNumpy(PythonPackage):
number capabilities"""
homepage = "https://numpy.org/"
- url = "https://pypi.io/packages/source/n/numpy/numpy-1.19.4.zip"
+ pypi = "numpy/numpy-1.19.4.zip"
git = "https://github.com/numpy/numpy.git"
maintainers = ['adamjstewart']
- install_time_test_callbacks = ['install_test', 'import_module_test']
- import_modules = [
- 'numpy', 'numpy.compat', 'numpy.core', 'numpy.distutils', 'numpy.doc',
- 'numpy.f2py', 'numpy.fft', 'numpy.lib', 'numpy.linalg', 'numpy.ma',
- 'numpy.matrixlib', 'numpy.polynomial', 'numpy.random', 'numpy.testing',
- 'numpy.distutils.command', 'numpy.distutils.fcompiler'
- ]
-
- version('master', branch='master')
+ version('main', branch='main')
+ version('master', branch='main', deprecated=True)
+ version('1.21.2', sha256='423216d8afc5923b15df86037c6053bf030d15cc9e3224206ef868c2d63dd6dc')
+ version('1.21.1', sha256='dff4af63638afcc57a3dfb9e4b26d434a7a602d225b42d746ea7fe2edf1342fd')
+ version('1.21.0', sha256='e80fe25cba41c124d04c662f33f6364909b985f2eb5998aaa5ae4b9587242cce')
+ version('1.20.3', sha256='e55185e51b18d788e49fe8305fd73ef4470596b33fc2c1ceb304566b99c71a69')
+ version('1.20.2', sha256='878922bf5ad7550aa044aa9301d417e2d3ae50f0f577de92051d739ac6096cee')
+ version('1.20.1', sha256='3bc63486a870294683980d76ec1e3efc786295ae00128f9ea38e2c6e74d5a60a')
+ version('1.20.0', sha256='3d8233c03f116d068d5365fed4477f2947c7229582dad81e5953088989294cec')
+ version('1.19.5', sha256='a76f502430dd98d7546e1ea2250a7360c065a5fdea52b2dffe8ae7180909b6f4')
version('1.19.4', sha256='141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512')
version('1.19.3', sha256='35bf5316af8dc7c7db1ad45bec603e5fb28671beb98ebd1d65e8059efcfd3b72')
version('1.19.2', sha256='0d310730e1e793527065ad7dde736197b705d0e4c9999775f212b03c44a8484c')
@@ -84,15 +86,18 @@ class PyNumpy(PythonPackage):
variant('blas', default=True, description='Build with BLAS support')
variant('lapack', default=True, description='Build with LAPACK support')
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@1.16:')
- depends_on('python@3.5:', type=('build', 'run'), when='@1.17:')
- depends_on('python@3.6:', type=('build', 'run'), when='@1.19:')
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'link', 'run'), when='@:1.15')
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'link', 'run'), when='@1.16')
+ depends_on('python@3.5:', type=('build', 'link', 'run'), when='@1.17:1.18')
+ depends_on('python@3.6:', type=('build', 'link', 'run'), when='@1.19')
+ depends_on('python@3.7:', type=('build', 'link', 'run'), when='@1.20:1.21.1')
+ depends_on('python@3.7:3.10', type=('build', 'link', 'run'), when='@1.21.2:')
depends_on('py-setuptools', type=('build', 'run'))
# Check pyproject.toml for updates to the required cython version
depends_on('py-cython@0.29.13:', when='@1.18.0:', type='build')
depends_on('py-cython@0.29.14:', when='@1.18.1:', type='build')
depends_on('py-cython@0.29.21:', when='@1.19.1:', type='build')
+ depends_on('py-cython@0.29.24:', when='@1.21.2:', type='build')
depends_on('blas', when='+blas')
depends_on('lapack', when='+lapack')
@@ -105,14 +110,27 @@ class PyNumpy(PythonPackage):
patch('blas-lapack-order.patch', when='@1.15:1.16')
# Add Fujitsu Fortran compiler
- patch('add_fj_compiler.patch', when='@1.19.3:%fj')
+ patch('add_fj_compiler.patch', when='@1.19.3:1.19.5%fj')
patch('add_fj_compiler2.patch', when='@1.19.0:1.19.2%fj')
patch('add_fj_compiler3.patch', when='@1.14.0:1.18.5%fj')
patch('add_fj_compiler4.patch', when='@:1.13.3%fj')
+ patch('check_executables.patch', when='@1.20.0:')
+ patch('check_executables2.patch', when='@1.19.0:1.19.5')
+ patch('check_executables3.patch', when='@1.16.0:1.18.5')
+ patch('check_executables4.patch', when='@1.14.0:1.15.4')
+ patch('check_executables5.patch', when='@:1.13.3')
+
+ # version 1.21.0 runs into an infinit loop during printing
+ # (e.g. print(numpy.ones(1000)) when compiled with gcc 11
+ conflicts('%gcc@11:', when='@1.21.0')
+
# GCC 4.8 is the minimum version that works
conflicts('%gcc@:4.7', msg='GCC 4.8+ required')
+ # NVHPC support added in https://github.com/numpy/numpy/pull/17344
+ conflicts('%nvhpc', when='@:1.19.999')
+
def flag_handler(self, name, flags):
# -std=c99 at least required, old versions of GCC default to -std=c90
if self.spec.satisfies('%gcc@:5.1') and name == 'cflags':
@@ -139,6 +157,7 @@ class PyNumpy(PythonPackage):
'{0}'.format(gcc_version))
if gcc_version <= Version('5.1'):
flags.append(self.compiler.c99_flag)
+
return (flags, None, None)
@run_before('build')
@@ -248,6 +267,28 @@ class PyNumpy(PythonPackage):
write_library_dirs(f, lapack_lib_dirs)
f.write('include_dirs = {0}\n'.format(lapack_header_dirs))
+ if '^fujitsu-ssl2' in spec:
+ if spec.satisfies('+blas'):
+ f.write('[blas]\n')
+ f.write('libraries = {0}\n'.format(spec['blas'].libs.names[0]))
+ write_library_dirs(f, blas_lib_dirs)
+ f.write('include_dirs = {0}\n'.format(blas_header_dirs))
+ f.write(
+ "extra_link_args = {0}\n".format(
+ self.spec["blas"].libs.ld_flags
+ )
+ )
+ if spec.satisfies('+lapack'):
+ f.write('[lapack]\n')
+ f.write('libraries = {0}\n'.format(spec['lapack'].libs.names[0]))
+ write_library_dirs(f, lapack_lib_dirs)
+ f.write('include_dirs = {0}\n'.format(lapack_header_dirs))
+ f.write(
+ "extra_link_args = {0}\n".format(
+ self.spec["lapack"].libs.ld_flags
+ )
+ )
+
def setup_build_environment(self, env):
# Tell numpy which BLAS/LAPACK libraries we want to use.
# https://github.com/numpy/numpy/pull/13132
@@ -306,21 +347,8 @@ class PyNumpy(PythonPackage):
return args
- def build_test(self):
- # `setup.py test` is not supported. Use one of the following
- # instead:
- #
- # - `python runtests.py` (to build and test)
- # - `python runtests.py --no-build` (to test installed numpy)
- # - `>>> numpy.test()` (run tests for installed numpy
- # from within an interpreter)
- pass
-
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
def install_test(self):
- # Change directories due to the following error:
- #
- # ImportError: Error importing numpy: you should not try to import
- # numpy from its source directory; please exit the numpy
- # source tree, and relaunch your python interpreter from there.
with working_dir('spack-test', create=True):
python('-c', 'import numpy; numpy.test("full", verbose=2)')
diff --git a/var/spack/repos/builtin/packages/py-numpydoc/package.py b/var/spack/repos/builtin/packages/py-numpydoc/package.py
index cef8a2f7d2..86babbd46a 100644
--- a/var/spack/repos/builtin/packages/py-numpydoc/package.py
+++ b/var/spack/repos/builtin/packages/py-numpydoc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,14 @@ class PyNumpydoc(PythonPackage):
"""numpydoc - Numpy's Sphinx extensions"""
homepage = "https://github.com/numpy/numpydoc"
- url = "https://pypi.io/packages/source/n/numpydoc/numpydoc-0.6.0.tar.gz"
+ pypi = "numpydoc/numpydoc-0.6.0.tar.gz"
+ version('1.1.0', sha256='c36fd6cb7ffdc9b4e165a43f67bf6271a7b024d0bb6b00ac468c9e2bfc76448e')
version('0.6.0', sha256='1ec573e91f6d868a9940d90a6599f3e834a2d6c064030fbe078d922ee21dcfa1')
- depends_on('python@2.6:2.8,3.3:')
+ depends_on('python@2.6:2.8,3.3:', when='@0.6.0')
+ depends_on('python@3.5:', when='@1.1.0')
depends_on('py-setuptools', type='build')
- depends_on('py-sphinx@1.0.1:', type='build')
+ depends_on('py-sphinx@1.0.1:1.6.7', type='build', when='@0.6.0')
+ depends_on('py-sphinx@1.6.5:', type='build', when='@1.1.0')
+ depends_on('py-jinja2@2.3:', type='build', when='@1.1.0')
diff --git a/var/spack/repos/builtin/packages/py-nvidia-ml-py/package.py b/var/spack/repos/builtin/packages/py-nvidia-ml-py/package.py
index a37a50366b..ee2e2890af 100644
--- a/var/spack/repos/builtin/packages/py-nvidia-ml-py/package.py
+++ b/var/spack/repos/builtin/packages/py-nvidia-ml-py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@
class PyNvidiaMlPy(PythonPackage):
"""Python Bindings for the NVIDIA Management Library."""
- homepage = "http://www.nvidia.com/"
- url = "https://pypi.io/packages/source/n/nvidia-ml-py/nvidia-ml-py-11.450.51.tar.gz"
+ homepage = "https://www.nvidia.com/"
+ pypi = "nvidia-ml-py/nvidia-ml-py-11.450.51.tar.gz"
version('11.450.51', sha256='5aa6dd23a140b1ef2314eee5ca154a45397b03e68fd9ebc4f72005979f511c73')
diff --git a/var/spack/repos/builtin/packages/py-nvidia-ml-py3/package.py b/var/spack/repos/builtin/packages/py-nvidia-ml-py3/package.py
index 711f579dc9..14db622563 100644
--- a/var/spack/repos/builtin/packages/py-nvidia-ml-py3/package.py
+++ b/var/spack/repos/builtin/packages/py-nvidia-ml-py3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@
class PyNvidiaMlPy3(PythonPackage):
"""Python Bindings for the NVIDIA Management Library."""
- homepage = "http://www.nvidia.com/"
- url = "https://pypi.io/packages/source/n/nvidia-ml-py3/nvidia-ml-py3-7.352.0.tar.gz"
+ homepage = "https://www.nvidia.com/"
+ pypi = "nvidia-ml-py3/nvidia-ml-py3-7.352.0.tar.gz"
version('7.352.0', sha256='390f02919ee9d73fe63a98c73101061a6b37fa694a793abf56673320f1f51277')
diff --git a/var/spack/repos/builtin/packages/py-oauth2client/package.py b/var/spack/repos/builtin/packages/py-oauth2client/package.py
index 2b05c982fc..1e64160d4c 100644
--- a/var/spack/repos/builtin/packages/py-oauth2client/package.py
+++ b/var/spack/repos/builtin/packages/py-oauth2client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class PyOauth2client(PythonPackage):
the libraries and the core team is turning down support. We recommend you
use google-auth and oauthlib."""
- homepage = "http://github.com/google/oauth2client/"
- url = "https://pypi.io/packages/source/o/oauth2client/oauth2client-4.1.3.tar.gz"
+ homepage = "https://github.com/google/oauth2client/"
+ pypi = "oauth2client/oauth2client-4.1.3.tar.gz"
version('4.1.3', sha256='d486741e451287f69568a4d26d70d9acd73a2bbfa275746c535b4209891cccc6')
diff --git a/var/spack/repos/builtin/packages/py-oauthlib/package.py b/var/spack/repos/builtin/packages/py-oauthlib/package.py
index 93fbb9aacc..be59718198 100644
--- a/var/spack/repos/builtin/packages/py-oauthlib/package.py
+++ b/var/spack/repos/builtin/packages/py-oauthlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyOauthlib(PythonPackage):
"""
homepage = "https://github.com/oauthlib/oauthlib"
- url = "https://pypi.io/packages/source/o/oauthlib/oauthlib-3.1.0.tar.gz"
+ pypi = "oauthlib/oauthlib-3.1.0.tar.gz"
version('3.1.0', sha256='bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889')
version('3.0.1', sha256='0ce32c5d989a1827e3f1148f98b9085ed2370fc939bf524c9c851d8714797298')
@@ -22,16 +22,7 @@ class PyOauthlib(PythonPackage):
variant('extras', default=True, description='Build with pyjwt, blinker, cryptography')
depends_on('py-setuptools', type='build')
-
depends_on('py-pyjwt@1.0.0:', type=('build', 'run'), when='+extras')
depends_on('py-blinker', type=('build', 'run'), when='+extras')
depends_on('py-cryptography', type=('build', 'run'), when='+extras')
-
- depends_on('py-mock@2.0:', type='test')
- depends_on('py-pytest@4.0:', type='test')
- depends_on('py-pytest-cov@2.6:', type='test')
-
- depends_on('py-nose', type='test', when='@2.0.2')
- depends_on('py-unittest2', type='test', when='^python@2.0.2')
-
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-olefile/package.py b/var/spack/repos/builtin/packages/py-olefile/package.py
index 4e9826b18b..2db8fcad6c 100644
--- a/var/spack/repos/builtin/packages/py-olefile/package.py
+++ b/var/spack/repos/builtin/packages/py-olefile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyOlefile(PythonPackage):
"""Python package to parse, read and write Microsoft OLE2 files"""
homepage = "https://www.decalage.info/python/olefileio"
- url = "https://pypi.io/packages/source/o/olefile/olefile-0.44.zip"
-
- import_modules = ['olefile']
+ pypi = "olefile/olefile-0.44.zip"
version('0.44', sha256='61f2ca0cd0aa77279eb943c07f607438edf374096b66332fae1ee64a6f0f73ad')
diff --git a/var/spack/repos/builtin/packages/py-omegaconf/package.py b/var/spack/repos/builtin/packages/py-omegaconf/package.py
new file mode 100644
index 0000000000..3cac5fe0d5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-omegaconf/package.py
@@ -0,0 +1,29 @@
+
+# Copyright 2013-2021 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 PyOmegaconf(PythonPackage):
+ """A hierarchical configuration system, with support for merging configurations from
+ multiple sources (YAML config files, dataclasses/objects and CLI arguments)
+ providing a consistent API regardless of how the configuration was created.
+ """
+
+ homepage = "https://github.com/omry/omegaconf"
+ url = 'https://github.com/omry/omegaconf/archive/refs/tags/v2.1.0.tar.gz'
+
+ maintainers = ['calebrob6']
+
+ version('2.1.0', sha256='0168f962822b7059c7553c4346541596ea48c0b542628d41a348a12eeaf971ff')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytest-runner', type='build')
+ depends_on('py-antlr4-python3-runtime@4.8', type=('build', 'run'))
+ depends_on('py-pyyaml@5.1.0:', type=('build', 'run'))
+ depends_on('py-dataclasses', when='^python@:3.6', type=('build', 'run'))
+ depends_on('java', type='build')
diff --git a/var/spack/repos/builtin/packages/py-onnx/package.py b/var/spack/repos/builtin/packages/py-onnx/package.py
index f0a5838462..86355dd317 100644
--- a/var/spack/repos/builtin/packages/py-onnx/package.py
+++ b/var/spack/repos/builtin/packages/py-onnx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,7 +17,7 @@ class PyOnnx(PythonPackage):
on the capabilities needed for inferencing (scoring)."""
homepage = "https://github.com/onnx/onnx"
- url = "https://pypi.io/packages/source/O/Onnx/onnx-1.6.0.tar.gz"
+ pypi = "Onnx/onnx-1.6.0.tar.gz"
version('1.6.0', sha256='3b88c3fe521151651a0403c4d131cb2e0311bd28b753ef692020a432a81ce345')
version('1.5.0', sha256='1a584a4ef62a6db178c257fffb06a9d8e61b41c0a80bfd8bcd8a253d72c4b0b4')
diff --git a/var/spack/repos/builtin/packages/py-ont-fast5-api/package.py b/var/spack/repos/builtin/packages/py-ont-fast5-api/package.py
index 9c71274e60..df0883ea8c 100644
--- a/var/spack/repos/builtin/packages/py-ont-fast5-api/package.py
+++ b/var/spack/repos/builtin/packages/py-ont-fast5-api/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyOntFast5Api(PythonPackage):
API, without having to directly invoke the h5py library."""
homepage = "https://github.com/nanoporetech/ont_fast5_api"
- url = "https://pypi.io/packages/source/o/ont-fast5-api/ont-fast5-api-0.3.2.tar.gz"
+ pypi = "ont-fast5-api/ont-fast5-api-0.3.2.tar.gz"
version('0.3.2', sha256='ae44b1bcd812e8acf8beff3db92456647c343cf19340f97cff4847de5cc905d8')
diff --git a/var/spack/repos/builtin/packages/py-opcodes/package.py b/var/spack/repos/builtin/packages/py-opcodes/package.py
new file mode 100644
index 0000000000..f9bcea9470
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-opcodes/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyOpcodes(PythonPackage):
+ """Database of Processor Instructions/Opcodes."""
+
+ homepage = "https://github.com/Maratyszcza/Opcodes"
+ pypi = "opcodes/opcodes-0.3.14.tar.gz"
+
+ version('0.3.14', sha256='16ec1cea4cf3dda767e6c0a718f664ef97a34ed24c91998a3c25c3f960c15fba')
+
+ depends_on('py-setuptools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-opencensus-context/package.py b/var/spack/repos/builtin/packages/py-opencensus-context/package.py
index 87d7d25c30..5e8a66c622 100644
--- a/var/spack/repos/builtin/packages/py-opencensus-context/package.py
+++ b/var/spack/repos/builtin/packages/py-opencensus-context/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-opencensus/package.py b/var/spack/repos/builtin/packages/py-opencensus/package.py
index ef8222c9ae..76643d9fc1 100644
--- a/var/spack/repos/builtin/packages/py-opencensus/package.py
+++ b/var/spack/repos/builtin/packages/py-opencensus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyOpencensus(PythonPackage):
"""A stats collection and distributed tracing framework."""
homepage = "https://github.com/census-instrumentation/opencensus-python"
- url = "https://pypi.io/packages/source/o/opencensus/opencensus-0.7.10.tar.gz"
+ pypi = "opencensus/opencensus-0.7.10.tar.gz"
version('0.7.10', sha256='2921e3e570cfadfd123cd8e3636a405031367fddff74c55d3fe627a4cf8b981c')
diff --git a/var/spack/repos/builtin/packages/py-openidc-client/package.py b/var/spack/repos/builtin/packages/py-openidc-client/package.py
new file mode 100644
index 0000000000..b112133b85
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-openidc-client/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyOpenidcClient(PythonPackage):
+ """A python OpenID Connect client with token caching and management"""
+
+ homepage = "https://github.com/puiterwijk/python-openidc-client"
+ pypi = "openidc-client/openidc-client-0.6.0.tar.gz"
+
+ version('0.6.0', sha256='680e969cae18c30adbddd6a087ed09f6a296b4937b4c8bc69be813bdbbfa9847')
+ version('0.5.0', sha256='59d59d6fbfd26c5b57c53e582bdf2379274602f96133a163e7ff1ef39c363353')
+ version('0.2.0', sha256='50a1f5abc1960c206a462b3b2f2da1f03abdcb542beb1d6d89d2736def228ab9')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-requests', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-openmc/package.py b/var/spack/repos/builtin/packages/py-openmc/package.py
new file mode 100644
index 0000000000..6f03b07327
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-openmc/package.py
@@ -0,0 +1,58 @@
+# Copyright 2013-2021 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 PyOpenmc(PythonPackage):
+ """The OpenMC project aims to provide a fully-featured Monte Carlo particle
+ transport code based on modern methods. It is a constructive solid
+ geometry, continuous-energy transport code that uses ACE format cross
+ sections. The project started under the Computational Reactor Physics
+ Group at MIT."""
+
+ homepage = "https://docs.openmc.org/"
+ url = "https://github.com/openmc-dev/openmc/tarball/v0.12.2"
+ git = "https://github.com/openmc-dev/openmc.git"
+
+ version('develop', branch='develop')
+ version('master', branch='master')
+ version('0.12.2', tag='v0.12.2', submodules=True)
+ version('0.12.1', tag='v0.12.1', submodules=True)
+ version('0.12.0', tag='v0.12.0', submodules=True)
+ version('0.11.0', sha256='19a9d8e9c3b581e9060fbd96d30f1098312d217cb5c925eb6372a5786d9175af')
+
+ variant('mpi', default=False, description='Enable MPI support')
+
+ # keep py-openmc and openmc at the same version
+ for ver in ['develop', 'master', '0.12.2', '0.12.1', '0.12.0', '0.11.0']:
+ depends_on(
+ 'openmc+mpi@{0}'.format(ver), when='@{0}+mpi'.format(ver),
+ type=('build', 'run')
+ )
+ depends_on(
+ 'openmc~mpi@{0}'.format(ver), when='@{0}~mpi'.format(ver),
+ type=('build', 'run')
+ )
+
+ depends_on('git', type='build')
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-cython', type='build')
+ depends_on('py-h5py~mpi', when='~mpi', type=('build', 'run'))
+ depends_on('py-h5py+mpi', when='+mpi', type=('build', 'run'))
+ depends_on('py-ipython', type=('build', 'run'))
+ depends_on('py-lxml', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-mpi4py', when='+mpi', type=('build', 'run'))
+ depends_on('py-numpy@1.9:', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-uncertainties', type=('build', 'run'))
+
+ @run_after('install')
+ def install_lib(self):
+ install(join_path(self.spec['openmc'].prefix.lib, 'libopenmc.*'),
+ self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/py-openpmd-validator/package.py b/var/spack/repos/builtin/packages/py-openpmd-validator/package.py
index 3da15810d5..08bd31120b 100644
--- a/var/spack/repos/builtin/packages/py-openpmd-validator/package.py
+++ b/var/spack/repos/builtin/packages/py-openpmd-validator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyOpenpmdValidator(PythonPackage):
openPMD is an open standard for particle-mesh data files."""
- homepage = "http://www.openPMD.org"
+ homepage = "https://www.openPMD.org"
url = "https://github.com/openPMD/openPMD-validator/archive/1.0.0.2.tar.gz"
maintainers = ['ax3l']
diff --git a/var/spack/repos/builtin/packages/py-openpyxl/package.py b/var/spack/repos/builtin/packages/py-openpyxl/package.py
index f929fe6a9b..67ba77c738 100644
--- a/var/spack/repos/builtin/packages/py-openpyxl/package.py
+++ b/var/spack/repos/builtin/packages/py-openpyxl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyOpenpyxl(PythonPackage):
"""A Python library to read/write Excel 2010 xlsx/xlsm files"""
- homepage = "http://openpyxl.readthedocs.org/"
- url = "https://pypi.io/packages/source/o/openpyxl/openpyxl-3.0.3.tar.gz"
+ homepage = "https://openpyxl.readthedocs.org/"
+ pypi = "openpyxl/openpyxl-3.0.3.tar.gz"
version('3.0.3', sha256='547a9fc6aafcf44abe358b89ed4438d077e9d92e4f182c87e2dc294186dc4b64')
version('2.4.5', sha256='78c331e819fb0a63a1339d452ba0b575d1a31f09fdcce793a31bec7e9ef4ef21')
diff --git a/var/spack/repos/builtin/packages/py-openslide-python/package.py b/var/spack/repos/builtin/packages/py-openslide-python/package.py
index 371b218cb3..9cc665e367 100644
--- a/var/spack/repos/builtin/packages/py-openslide-python/package.py
+++ b/var/spack/repos/builtin/packages/py-openslide-python/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,8 +14,6 @@ class PyOpenslidePython(PythonPackage):
version('1.1.1', sha256='33c390fe43e3d7d443fafdd66969392d3e9efd2ecd5d4af73c3dbac374485ed5')
- import_modules = ['openslide']
-
depends_on('openslide@3.4.0:')
depends_on('python@2.6:2.8,3.3:')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-opentuner/package.py b/var/spack/repos/builtin/packages/py-opentuner/package.py
index b55a9073c4..0e367bf55d 100644
--- a/var/spack/repos/builtin/packages/py-opentuner/package.py
+++ b/var/spack/repos/builtin/packages/py-opentuner/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-opppy/package.py b/var/spack/repos/builtin/packages/py-opppy/package.py
index 0ba7aecaf2..b92610528f 100644
--- a/var/spack/repos/builtin/packages/py-opppy/package.py
+++ b/var/spack/repos/builtin/packages/py-opppy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,7 @@ class PyOpppy(PythonPackage):
maintainers = ['clevelam']
version('master', branch='master')
+ version('0_1_5', sha256='d9df166d347c18d4f145059b4c2fb23dbfbecf0dd5a3398f29e52d3e261844b0')
version('0_1_4', sha256='22d81a64856f4c12f8079440c837d7d1f45153e68c405b45bed8b6d35831e948')
version('0_1_3', sha256='c3ca97f2ff8ab319b5c7257baa8cab852387dc00d426b4534c06f0894363c541')
version('0_1_2', sha256='ef3795d3164fa0aa7ea7da7e223d6d0a48d2960aefd03a7d90cdb8b8f480cd4c')
@@ -26,6 +27,5 @@ class PyOpppy(PythonPackage):
depends_on('py-sphinx', type=('build'))
depends_on('py-numpy@1.6:', type=('build', 'run'))
depends_on('python@3:', type=('build', 'run'))
- depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6')
depends_on('py-scipy', type=('build', 'run'))
depends_on('py-matplotlib', 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 0f430c76f8..cb71c6d7c8 100644
--- a/var/spack/repos/builtin/packages/py-opt-einsum/package.py
+++ b/var/spack/repos/builtin/packages/py-opt-einsum/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ class PyOptEinsum(PythonPackage):
"""Optimized Einsum: A tensor contraction order optimizer."""
homepage = "https://github.com/dgasmith/opt_einsum"
- url = "https://pypi.io/packages/source/o/opt_einsum/opt_einsum-3.1.0.tar.gz"
+ pypi = "opt_einsum/opt_einsum-3.1.0.tar.gz"
+ version('3.3.0', sha256='59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549')
version('3.2.1', sha256='83b76a98d18ae6a5cc7a0d88955a7f74881f0e567a0f4c949d24c942753eb998')
version('3.2.0', sha256='738b0a1db1d3084d360081bb64d826f9db06d2df7cc0bf8e2c9356028da1fa31')
version('3.1.0', sha256='edfada4b1d0b3b782ace8bc14e80618ff629abf53143e1e6bbf9bd00b11ece77')
@@ -21,6 +22,3 @@ class PyOptEinsum(PythonPackage):
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')
- depends_on('py-pytest-cov', type='test')
- depends_on('py-pytest-pep8', type='test')
diff --git a/var/spack/repos/builtin/packages/py-or-tools/package.py b/var/spack/repos/builtin/packages/py-or-tools/package.py
index 068a22d165..8f79c14c3d 100644
--- a/var/spack/repos/builtin/packages/py-or-tools/package.py
+++ b/var/spack/repos/builtin/packages/py-or-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-ordered-set/package.py b/var/spack/repos/builtin/packages/py-ordered-set/package.py
new file mode 100644
index 0000000000..da41af3de1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ordered-set/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyOrderedSet(PythonPackage):
+ """An OrderedSet is a mutable data structure that is a hybrid of a list and
+ a set. It remembers the order of its entries, and every entry has an index
+ number that can be looked up."""
+
+ homepage = "https://github.com/LuminosoInsight/ordered-set"
+ pypi = "ordered-set/ordered-set-4.0.2.tar.gz"
+
+ version('4.0.2', sha256='ba93b2df055bca202116ec44b9bead3df33ea63a7d5827ff8e16738b97f33a95')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-ordereddict/package.py b/var/spack/repos/builtin/packages/py-ordereddict/package.py
index afba6ee6f3..490aaf5560 100644
--- a/var/spack/repos/builtin/packages/py-ordereddict/package.py
+++ b/var/spack/repos/builtin/packages/py-ordereddict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,6 @@ class PyOrdereddict(PythonPackage):
"""A drop-in substitute for Py2.7's new collections.
OrderedDict that works in Python 2.4-2.6."""
- homepage = "https://pypi.python.org/pypi/ordereddict"
- url = "https://pypi.io/packages/source/o/ordereddict/ordereddict-1.1.tar.gz"
-
- import_modules = ['ordereddict']
+ pypi = "ordereddict/ordereddict-1.1.tar.gz"
version('1.1', sha256='1c35b4ac206cef2d24816c89f89cf289dd3d38cf7c449bb3fab7bf6d43f01b1f')
diff --git a/var/spack/repos/builtin/packages/py-os-service-types/package.py b/var/spack/repos/builtin/packages/py-os-service-types/package.py
new file mode 100644
index 0000000000..7f405ce383
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-os-service-types/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyOsServiceTypes(PythonPackage):
+ """Python library for consuming OpenStack sevice-types-authority data"""
+
+ homepage = "https://docs.openstack.org/os-service-types/"
+ pypi = "os-service-types/os-service-types-1.7.0.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('1.7.0', sha256='31800299a82239363995b91f1ebf9106ac7758542a1e4ef6dc737a5932878c6c')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build')
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-oset/package.py b/var/spack/repos/builtin/packages/py-oset/package.py
index 9dfb7c47db..37b623aeb4 100644
--- a/var/spack/repos/builtin/packages/py-oset/package.py
+++ b/var/spack/repos/builtin/packages/py-oset/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,7 @@ from spack import *
class PyOset(PythonPackage):
"""Set that remembers original insertion order."""
- homepage = "https://pypi.python.org/pypi/oset"
- url = "https://pypi.io/packages/source/o/oset/oset-0.1.3.tar.gz"
-
- import_modules = ['oset']
+ pypi = "oset/oset-0.1.3.tar.gz"
version('0.1.3', sha256='4c1fd7dec96eeff9d3260995a8e37f9f415d0bdb79975f57824e68716ac8f904')
diff --git a/var/spack/repos/builtin/packages/py-oslo-config/package.py b/var/spack/repos/builtin/packages/py-oslo-config/package.py
new file mode 100644
index 0000000000..b637a58985
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-oslo-config/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 PyOsloConfig(PythonPackage):
+ """
+ The Oslo configuration API supports parsing command line arguments and .ini
+ style configuration files.
+ """
+
+ homepage = "https://docs.openstack.org/oslo.config/"
+ pypi = "oslo.config/oslo.config-8.7.1.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('8.7.1', sha256='a0c346d778cdc8870ab945e438bea251b5f45fae05d6d99dfe4953cca2277b60')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pbr@2.0.0:', type='build')
+
+ depends_on('py-debtcollector@1.2.0:', type=('build', 'run'))
+ depends_on('py-netaddr@0.7.18:', type=('build', 'run'))
+ depends_on('py-stevedore@1.20.0:', type=('build', 'run'))
+ depends_on('py-oslo-i18n@3.15.3:', type=('build', 'run'))
+ depends_on('py-rfc3986@1.2.0:', type=('build', 'run'))
+ depends_on('py-pyyaml@5.1:', type=('build', 'run'))
+ depends_on('py-requests@2.18.0:', type=('build', 'run'))
+ depends_on('py-importlib-metadata@1.7.0:', when='^python@:3.7', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-oslo-i18n/package.py b/var/spack/repos/builtin/packages/py-oslo-i18n/package.py
new file mode 100644
index 0000000000..1b0196095c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-oslo-i18n/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 PyOsloI18n(PythonPackage):
+ """
+ The oslo.i18n library contain utilities for working with
+ internationalization (i18n) features, especially translation for text
+ strings in an application or library.
+ """
+
+ homepage = "https://docs.openstack.org/oslo.i18n"
+ pypi = "oslo.i18n/oslo.i18n-5.0.1.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('5.0.1', sha256='3484b71e30f75c437523302d1151c291caf4098928269ceec65ce535456e035b')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type=('build', 'run'))
+
+ depends_on('py-six@1.10.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-oslo-serialization/package.py b/var/spack/repos/builtin/packages/py-oslo-serialization/package.py
new file mode 100644
index 0000000000..438c40ff61
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-oslo-serialization/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 PyOsloSerialization(PythonPackage):
+ """
+ The oslo.serialization library provides support for representing objects in
+ transmittable and storable formats, such as Base64, JSON and MessagePack.
+ """
+
+ homepage = "https://docs.openstack.org/oslo.serialization/"
+ pypi = "oslo.serialization/oslo.serialization-4.1.0.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('4.1.0', sha256='cecc7794df806c85cb70dbd6c2b3af19bc68047ad29e3c6442be90a0a4de5379')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build')
+
+ depends_on('py-msgpack@0.5.2:', type=('build', 'run'))
+ depends_on('py-oslo-utils@3.33.0:', type=('build', 'run'))
+ depends_on('py-pytz@2013.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-oslo-utils/package.py b/var/spack/repos/builtin/packages/py-oslo-utils/package.py
new file mode 100644
index 0000000000..adf936142a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-oslo-utils/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2021 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 PyOsloUtils(PythonPackage):
+ """
+ The oslo.utils library provides support for common utility type functions,
+ such as encoding, exception handling, string manipulation, and time
+ handling.
+ """
+
+ homepage = "https://docs.openstack.org/oslo.utils/"
+ pypi = "oslo.utils/oslo.utils-4.9.2.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('4.9.2', sha256='20db285734ff6c3b50d5a6afcb2790ade0c7ba02fbc876feed43733f2c41a5c9')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build')
+
+ depends_on('py-iso8601@0.1.11:', type=('build', 'run'))
+ depends_on('py-oslo-i18n@3.15.3:', type=('build', 'run'))
+ depends_on('py-pytz@2013.6:', type=('build', 'run'))
+ depends_on('py-netaddr@0.7.18:', type=('build', 'run'))
+ depends_on('py-netifaces@0.10.4:', type=('build', 'run'))
+ depends_on('py-debtcollector@1.2.0:', type=('build', 'run'))
+ depends_on('py-pyparsing@2.1.0:', type=('build', 'run'))
+ depends_on('py-packaging@20.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-osqp/package.py b/var/spack/repos/builtin/packages/py-osqp/package.py
index 1bec5cdf49..1e4b0f9d4c 100644
--- a/var/spack/repos/builtin/packages/py-osqp/package.py
+++ b/var/spack/repos/builtin/packages/py-osqp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyOsqp(PythonPackage):
"""OSQP: The Operator Splitting QP Solver"""
homepage = "https://osqp.org/"
- url = "https://pypi.io/packages/source/o/osqp/osqp-0.6.1.tar.gz"
+ pypi = "osqp/osqp-0.6.1.tar.gz"
version('0.6.1', sha256='47b17996526d6ecdf35cfaead6e3e05d34bc2ad48bcb743153cefe555ecc0e8c')
diff --git a/var/spack/repos/builtin/packages/py-overpy/package.py b/var/spack/repos/builtin/packages/py-overpy/package.py
index 24b3186e17..f34b2c4c8d 100644
--- a/var/spack/repos/builtin/packages/py-overpy/package.py
+++ b/var/spack/repos/builtin/packages/py-overpy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,11 @@ class PyOverpy(PythonPackage):
"""A Python Wrapper to access the Overpass API."""
homepage = "https://github.com/DinoTools/python-overpy"
- url = "https://pypi.io/packages/source/o/overpy/overpy-0.4.tar.gz"
+ pypi = "overpy/overpy-0.4.tar.gz"
version('0.4', sha256='6e5bfcd9368f0c33a5d7615b18dbcac18444157f447639287c6743aa2de8964d')
version('0.3.1', sha256='3c6f6afe262ccf50c983617fc4ec5f381c2e1f6391aa974fbcc39203802bc3ff')
depends_on('py-setuptools', type='build')
depends_on('py-pytest-runner', type='build')
- depends_on('py-pytest', type='test')
depends_on('python@2.7:2.8,3.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-owslib/package.py b/var/spack/repos/builtin/packages/py-owslib/package.py
index 459dab7727..3b44452959 100644
--- a/var/spack/repos/builtin/packages/py-owslib/package.py
+++ b/var/spack/repos/builtin/packages/py-owslib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyOwslib(PythonPackage):
related content models."""
homepage = "http://http://geopython.github.io/OWSLib/#installation"
- url = "https://pypi.io/packages/source/O/OWSLib/OWSLib-0.16.0.tar.gz"
+ pypi = "OWSLib/OWSLib-0.16.0.tar.gz"
version('0.17.1', sha256='b2e7fd694d3cffcee79317bad492d60c0aa887aea6916517c051c3247b33b5a5')
version('0.16.0', sha256='ec95a5e93c145a5d84b0074b9ea27570943486552a669151140debf08a100554')
diff --git a/var/spack/repos/builtin/packages/py-pacifica-downloader/package.py b/var/spack/repos/builtin/packages/py-pacifica-downloader/package.py
new file mode 100644
index 0000000000..109c458762
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pacifica-downloader/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyPacificaDownloader(PythonPackage):
+ """Python Pacifica Download Library"""
+
+ homepage = "https://github.com/pacifica/pacifica-python-downloader/"
+ pypi = "pacifica-downloader/pacifica-downloader-0.4.1.tar.gz"
+
+ version('0.4.1', sha256='11da2032a07ca7bb06fed38dc8d7c4c57267ff98c5fd925271083e18dd85d9f4')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-requests', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pacifica-namespace/package.py b/var/spack/repos/builtin/packages/py-pacifica-namespace/package.py
new file mode 100644
index 0000000000..2db81023bb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pacifica-namespace/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyPacificaNamespace(PythonPackage):
+ """Python Pacifica Namespace Library"""
+
+ homepage = "https://github.com/pacifica/pacifica-namespace/"
+ pypi = "pacifica-namespace/pacifica-namespace-0.0.2.tar.gz"
+
+ version('0.0.2', sha256='a8f59aea1203a1557f7f57887b61e92f8450c74a8522798c5ddecf8fffb0b224')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pacifica-uploader/package.py b/var/spack/repos/builtin/packages/py-pacifica-uploader/package.py
new file mode 100644
index 0000000000..c2d486d2fd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pacifica-uploader/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyPacificaUploader(PythonPackage):
+ """Python Pacifica Uploader Library"""
+
+ homepage = "https://github.com/pacifica/pacifica-python-uploader/"
+ pypi = "pacifica-uploader/pacifica-uploader-0.3.1.tar.gz"
+
+ version('0.3.1', sha256='adda18b28f01f0b1e6fbaf927fec9b8cf07c86f1b74185bed2a624e8a4597578')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-requests', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-packaging/package.py b/var/spack/repos/builtin/packages/py-packaging/package.py
index 30b44d9522..7519081fbe 100644
--- a/var/spack/repos/builtin/packages/py-packaging/package.py
+++ b/var/spack/repos/builtin/packages/py-packaging/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,9 @@ class PyPackaging(PythonPackage):
"""Core utilities for Python packages."""
homepage = "https://github.com/pypa/packaging"
- url = "https://pypi.io/packages/source/p/packaging/packaging-19.2.tar.gz"
-
- import_modules = ['packaging']
+ pypi = "packaging/packaging-19.2.tar.gz"
+ version('20.9', sha256='5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5')
version('19.2', sha256='28b924174df7a2fa32c1953825ff29c61e2f5e082343165438812f00d3a7fc47')
version('19.1', sha256='c491ca87294da7cc01902edbe30a5bc6c4c28172b5138ab4e4aa1b9d7bfaeafe')
version('19.0', sha256='0c98a5d0be38ed775798ece1b9727178c4469d9c3b4ada66e8e6b7849f8732af')
@@ -21,13 +20,8 @@ class PyPackaging(PythonPackage):
version('16.8', sha256='5d50835fdf0a7edf0b55e311b7c887786504efea1177abd7e69329a8e5ea619e')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
- depends_on('py-attrs', when='@19.1', type=('build', 'run'))
- depends_on('py-pyparsing@2.0.2:', type=('build', 'run'))
- depends_on('py-six', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
- # Newer versions of setuptools require packaging. Although setuptools is an
- # optional dependency of packaging, if it is not found, setup.py will
- # fallback on distutils.core instead. Don't add a setuptools dependency
- # or we won't be able to bootstrap setuptools.
-
- # depends_on('py-setuptools', type='build')
+ depends_on('py-pyparsing@2.0.2:', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'), when='@:20.7.99')
+ depends_on('py-attrs', type=('build', 'run'), when='@19.1')
diff --git a/var/spack/repos/builtin/packages/py-pager/package.py b/var/spack/repos/builtin/packages/py-pager/package.py
new file mode 100644
index 0000000000..6e46b021bc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pager/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2021 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 PyPager(PythonPackage):
+ """Python module that pages output to the screen,
+ reads keys and console dimensions without executing external utils."""
+
+ pypi = "pager/pager-3.3.tar.gz"
+
+ version('3.3', sha256='18aa45ec877dca732e599531c7b3b0b22ed6a4445febdf1bdf7da2761cca340d')
diff --git a/var/spack/repos/builtin/packages/py-palettable/package.py b/var/spack/repos/builtin/packages/py-palettable/package.py
index aa17c77c4b..df2d34ac25 100644
--- a/var/spack/repos/builtin/packages/py-palettable/package.py
+++ b/var/spack/repos/builtin/packages/py-palettable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPalettable(PythonPackage):
"""Color palettes for Python."""
homepage = "https://jiffyclub.github.io/palettable/"
- url = "https://pypi.io/packages/source/p/palettable/palettable-3.0.0.tar.gz"
+ pypi = "palettable/palettable-3.0.0.tar.gz"
version('3.3.0', sha256='72feca71cf7d79830cd6d9181b02edf227b867d503bec953cf9fa91bf44896bd')
version('3.0.0', sha256='eed9eb0399386ff42f90ca61d4fa38a1819a93d5adfc2d546e3e2869d9972c31')
diff --git a/var/spack/repos/builtin/packages/py-pamela/package.py b/var/spack/repos/builtin/packages/py-pamela/package.py
index 58312ce3c3..7f80ae8091 100644
--- a/var/spack/repos/builtin/packages/py-pamela/package.py
+++ b/var/spack/repos/builtin/packages/py-pamela/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPamela(PythonPackage):
"""Python wrapper for PAM"""
- homepage = "https://pypi.org/project/pamela/"
- url = "https://pypi.io/packages/source/p/pamela/pamela-1.0.0.tar.gz"
+ pypi = "pamela/pamela-1.0.0.tar.gz"
version('1.0.0', sha256='65c9389bef7d1bb0b168813b6be21964df32016923aac7515bdf05366acbab6c')
diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py
index 154cbcba06..e5aad49409 100644
--- a/var/spack/repos/builtin/packages/py-pandas/package.py
+++ b/var/spack/repos/builtin/packages/py-pandas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,23 +10,36 @@ class PyPandas(PythonPackage):
programming language."""
homepage = "https://pandas.pydata.org/"
- url = "https://pypi.io/packages/source/p/pandas/pandas-1.1.4.tar.gz"
+ pypi = "pandas/pandas-1.2.0.tar.gz"
maintainers = ['adamjstewart']
import_modules = [
- 'pandas', 'pandas.compat', 'pandas.core', 'pandas.util', 'pandas.io',
- 'pandas.tseries', 'pandas._libs', 'pandas.plotting', 'pandas.arrays',
- 'pandas.api', 'pandas.errors', 'pandas._config', 'pandas.compat.numpy',
+ 'pandas', 'pandas.compat', 'pandas.compat.numpy', 'pandas.core',
'pandas.core.reshape', 'pandas.core.tools', 'pandas.core.util',
- 'pandas.core.dtypes', 'pandas.core.groupby', 'pandas.core.internals',
- 'pandas.core.computation', 'pandas.core.arrays', 'pandas.core.ops',
- 'pandas.core.sparse', 'pandas.core.indexes', 'pandas.io.msgpack',
- 'pandas.io.formats', 'pandas.io.excel', 'pandas.io.json',
- 'pandas.io.sas', 'pandas.io.clipboard', 'pandas._libs.tslibs',
- 'pandas.plotting._matplotlib', 'pandas.api.types',
- 'pandas.api.extensions'
+ 'pandas.core.array_algos', 'pandas.core.dtypes', 'pandas.core.groupby',
+ 'pandas.core.internals', 'pandas.core.computation',
+ 'pandas.core.window', 'pandas.core.arrays',
+ 'pandas.core.arrays.sparse', 'pandas.core.ops', 'pandas.core.sparse',
+ 'pandas.core.indexes', 'pandas.util', 'pandas.io', 'pandas.io.formats',
+ 'pandas.io.excel', 'pandas.io.json', 'pandas.io.sas',
+ 'pandas.io.clipboard', 'pandas.tseries', 'pandas._libs',
+ 'pandas._libs.window', 'pandas._libs.tslibs', 'pandas.plotting',
+ 'pandas.arrays', 'pandas.api', 'pandas.api.indexers',
+ 'pandas.api.types', 'pandas.api.extensions', 'pandas.errors',
+ 'pandas._config'
]
+ version('1.3.3', sha256='272c8cb14aa9793eada6b1ebe81994616e647b5892a370c7135efb2924b701df')
+ version('1.3.2', sha256='cbcb84d63867af3411fa063af3de64902665bb5b3d40b25b2059e40603594e87')
+ version('1.3.1', sha256='341935a594db24f3ff07d1b34d1d231786aa9adfa84b76eab10bf42907c8aed3')
+ version('1.3.0', sha256='c554e6c9cf2d5ea1aba5979cc837b3649539ced0e18ece186f055450c86622e2')
+ version('1.2.5', sha256='14abb8ea73fce8aebbb1fb44bec809163f1c55241bcc1db91c2c780e97265033')
+ version('1.2.4', sha256='649ecab692fade3cbfcf967ff936496b0cfba0af00a55dfaacd82bdda5cb2279')
+ version('1.2.3', sha256='df6f10b85aef7a5bb25259ad651ad1cc1d6bb09000595cab47e718cbac250b1d')
+ version('1.2.2', sha256='14ed84b463e9b84c8ff9308a79b04bf591ae3122a376ee0f62c68a1bd917a773')
+ version('1.2.1', sha256='5527c5475d955c0bc9689c56865aaa2a7b13c504d6c44f0aadbf57b565af5ebd')
+ version('1.2.0', sha256='e03386615b970b8b41da6a68afe717626741bb2431cec993640685614c0680e4')
+ version('1.1.5', sha256='f10fc41ee3c75a474d3bdf68d396f10782d013d7f67db99c0efbfd0acb99701b')
version('1.1.4', sha256='a979d0404b135c63954dea79e6246c45dd45371a88631cdbb4877d844e6de3b6')
version('1.1.3', sha256='babbeda2f83b0686c9ad38d93b10516e68cdcd5771007eb80a763e98aaf44613')
version('1.1.2', sha256='b64ffd87a2cfd31b40acd4b92cb72ea9a52a48165aec4c140e78fd69c45d1444')
@@ -55,6 +68,7 @@ class PyPandas(PythonPackage):
# Required dependencies
# https://pandas.pydata.org/pandas-docs/stable/getting_started/install.html#dependencies
+ depends_on('python@3.7.1:', type=('build', 'run'), when='@1.2:')
depends_on('python@3.6.1:', type=('build', 'run'), when='@1:')
depends_on('python@3.5.3:', type=('build', 'run'), when='@0.25:')
# https://pandas.pydata.org/docs/whatsnew/v1.0.0.html#build-changes
@@ -62,27 +76,26 @@ class PyPandas(PythonPackage):
depends_on('py-cython@0.29.16:2', type='build', when='@1.1:')
depends_on('py-cython@0.29.21:2', type='build', when='@1.1.3:')
depends_on('py-setuptools@24.2.0:', type='build')
+ depends_on('py-setuptools@38.6.0:', type='build', when='@1.3:')
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-numpy@1.13.3:', type=('build', 'run'), when='@0.25:')
depends_on('py-numpy@1.15.4:', type=('build', 'run'), when='@1.1:')
+ depends_on('py-numpy@1.16.5:', type=('build', 'run'), when='@1.2:')
+ depends_on('py-numpy@1.17.3:', type=('build', 'run'), when='@1.3:')
depends_on('py-python-dateutil', type=('build', 'run'))
depends_on('py-python-dateutil@2.6.1:', type=('build', 'run'), when='@0.25:')
depends_on('py-python-dateutil@2.7.3:', type=('build', 'run'), when='@1.1:')
depends_on('py-pytz@2017.2:', type=('build', 'run'))
+ depends_on('py-pytz@2017.3:', type=('build', 'run'), when='@1.2:')
# Recommended dependencies
# https://pandas.pydata.org/pandas-docs/stable/getting_started/install.html#recommended-dependencies
depends_on('py-numexpr', type=('build', 'run'))
depends_on('py-numexpr@2.6.2:', type=('build', 'run'), when='@0.25:')
+ depends_on('py-numexpr@2.6.8:', type=('build', 'run'), when='@1.2:')
+ depends_on('py-numexpr@2.7.0:', type=('build', 'run'), when='@1.3:')
depends_on('py-bottleneck', type=('build', 'run'))
depends_on('py-bottleneck@1.2.1:', type=('build', 'run'), when='@0.25:')
# Optional dependencies
# https://pandas.pydata.org/pandas-docs/stable/getting_started/install.html#optional-dependencies
-
- # Test dependencies
- # https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#running-the-test-suite
- depends_on('py-pytest@4.0.2:', type='test')
- depends_on('py-pytest-xdist', type='test')
- depends_on('py-hypothesis@3.58:', type='test')
- depends_on('py-pyarrow@0.10.0:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-pandocfilters/package.py b/var/spack/repos/builtin/packages/py-pandocfilters/package.py
index 168a2363f3..719ac3163f 100644
--- a/var/spack/repos/builtin/packages/py-pandocfilters/package.py
+++ b/var/spack/repos/builtin/packages/py-pandocfilters/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PyPandocfilters(PythonPackage):
"""A python module for writing pandoc filters"""
homepage = "https://github.com/jgm/pandocfilters"
- url = "https://pypi.io/packages/source/p/pandocfilters/pandocfilters-1.4.2.tar.gz"
+ pypi = "pandocfilters/pandocfilters-1.4.2.tar.gz"
version('1.4.2', sha256='b3dd70e169bb5449e6bc6ff96aea89c5eea8c5f6ab5e207fc2f521a2cf4a0da9')
diff --git a/var/spack/repos/builtin/packages/py-parameterized/package.py b/var/spack/repos/builtin/packages/py-parameterized/package.py
index ff68c38080..9dfcd7a4b5 100644
--- a/var/spack/repos/builtin/packages/py-parameterized/package.py
+++ b/var/spack/repos/builtin/packages/py-parameterized/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyParameterized(PythonPackage):
"""Parameterized testing with any Python test framework."""
homepage = "https://github.com/wolever/parameterized"
- url = "https://pypi.io/packages/source/p/parameterized/parameterized-0.7.1.tar.gz"
+ pypi = "parameterized/parameterized-0.7.1.tar.gz"
version('0.7.1', sha256='6a94dbea30c6abde99fd4c2f2042c1bf7f980e48908bf92ead62394f93cf57ed')
diff --git a/var/spack/repos/builtin/packages/py-paramiko/package.py b/var/spack/repos/builtin/packages/py-paramiko/package.py
index db07fccd09..a34870e536 100644
--- a/var/spack/repos/builtin/packages/py-paramiko/package.py
+++ b/var/spack/repos/builtin/packages/py-paramiko/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,20 @@ from spack import *
class PyParamiko(PythonPackage):
"""SSH2 protocol library"""
- homepage = "http://www.paramiko.org/"
- url = "https://pypi.io/packages/source/p/paramiko/paramiko-2.7.1.tar.gz"
+ homepage = "https://www.paramiko.org/"
+ pypi = "paramiko/paramiko-2.7.1.tar.gz"
version('2.7.1', sha256='920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f')
version('2.1.2', sha256='5fae49bed35e2e3d45c4f7b0db2d38b9ca626312d91119b3991d0ecf8125e310')
+ variant('invoke', default=False, description='Enable invoke support')
+
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'))
+
+ depends_on('py-invoke@1.3:', when='+invoke', type=('build', 'run'))
+ conflicts('+invoke', when='@2.1.2')
diff --git a/var/spack/repos/builtin/packages/py-paramz/package.py b/var/spack/repos/builtin/packages/py-paramz/package.py
index 77c5996d12..14e88bfbde 100644
--- a/var/spack/repos/builtin/packages/py-paramz/package.py
+++ b/var/spack/repos/builtin/packages/py-paramz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyParamz(PythonPackage):
"""The Parameterization Framework."""
homepage = "https://github.com/sods/paramz"
- url = "https://pypi.io/packages/source/p/paramz/paramz-0.9.5.tar.gz"
+ pypi = "paramz/paramz-0.9.5.tar.gz"
version('0.9.5', sha256='0917211c0f083f344e7f1bc997e0d713dbc147b6380bc19f606119394f820b9a')
diff --git a/var/spack/repos/builtin/packages/py-parse/package.py b/var/spack/repos/builtin/packages/py-parse/package.py
index da7323e510..cea8db54b2 100644
--- a/var/spack/repos/builtin/packages/py-parse/package.py
+++ b/var/spack/repos/builtin/packages/py-parse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyParse(PythonPackage):
"""parse() is the opposite of format()"""
- homepage = "https://pypi.org/project/parse/"
- url = "https://pypi.io/packages/source/p/parse/parse-1.11.1.tar.gz"
+ pypi = "parse/parse-1.11.1.tar.gz"
version('1.18.0', sha256='91666032d6723dc5905248417ef0dc9e4c51df9526aaeef271eacad6491f06a4')
version('1.12.1', sha256='a5fca7000c6588d77bc65c28f3f21bfce03b5e44daa8f9f07c17fe364990d717')
diff --git a/var/spack/repos/builtin/packages/py-parsedatetime/package.py b/var/spack/repos/builtin/packages/py-parsedatetime/package.py
index afb8db85bb..4edd86f58b 100644
--- a/var/spack/repos/builtin/packages/py-parsedatetime/package.py
+++ b/var/spack/repos/builtin/packages/py-parsedatetime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyParsedatetime(PythonPackage):
"""Parse human-readable date/time strings."""
homepage = "https://github.com/bear/parsedatetime"
- url = "https://pypi.io/packages/source/p/parsedatetime/parsedatetime-2.5.tar.gz"
+ pypi = "parsedatetime/parsedatetime-2.5.tar.gz"
version('2.5', sha256='d2e9ddb1e463de871d32088a3f3cea3dc8282b1b2800e081bd0ef86900451667')
diff --git a/var/spack/repos/builtin/packages/py-parso/package.py b/var/spack/repos/builtin/packages/py-parso/package.py
index 3f54eca9ce..07364b0bbb 100644
--- a/var/spack/repos/builtin/packages/py-parso/package.py
+++ b/var/spack/repos/builtin/packages/py-parso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,12 +12,14 @@ class PyParso(PythonPackage):
Parso is also able to list multiple syntax errors
in your python file."""
- homepage = "https://pypi.org/project/parso/"
- url = "https://pypi.io/packages/source/p/parso/parso-0.6.1.tar.gz"
+ pypi = "parso/parso-0.6.1.tar.gz"
+ version('0.8.1', sha256='8519430ad07087d4c997fda3a7918f7cfa27cb58972a8c89c2a0295a1c940e9e')
+ version('0.7.1', sha256='caba44724b994a8a5e086460bb212abc5a8bc46951bf4a9a1210745953622eb9')
version('0.6.1', sha256='56b2105a80e9c4df49de85e125feb6be69f49920e121406f15e7acde6c9dfc57')
+ version('0.4.0', sha256='2e9574cb12e7112a87253e14e2c380ce312060269d04bd018478a3c92ea9a376')
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'run'), when='@0.8.1:')
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@0.6.1:')
+ depends_on('python@2.6:2.8,3.3:', type=('build', 'run'), when='@0.4.0:')
depends_on('py-setuptools', type='build')
- depends_on('py-pytest@3.0.7:', type='test')
- depends_on('py-docopt', type='test')
diff --git a/var/spack/repos/builtin/packages/py-partd/package.py b/var/spack/repos/builtin/packages/py-partd/package.py
index 8e99413822..307546c16e 100644
--- a/var/spack/repos/builtin/packages/py-partd/package.py
+++ b/var/spack/repos/builtin/packages/py-partd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,8 @@ from spack import *
class PyPartd(PythonPackage):
"""Key-value byte store with appendable values."""
- homepage = "http://github.com/dask/partd/"
- url = "https://pypi.io/packages/source/p/partd/partd-0.3.8.tar.gz"
-
- import_modules = ['partd']
+ homepage = "https://github.com/dask/partd/"
+ pypi = "partd/partd-0.3.8.tar.gz"
version('1.1.0', sha256='6e258bf0810701407ad1410d63d1a15cfd7b773fd9efe555dac6bb82cc8832b0')
version('0.3.10', sha256='33722a228ebcd1fa6f44b1631bdd4cff056376f89eb826d7d880b35b637bcfba')
diff --git a/var/spack/repos/builtin/packages/py-particle/package.py b/var/spack/repos/builtin/packages/py-particle/package.py
index b8b03b21d0..c293d9e04a 100644
--- a/var/spack/repos/builtin/packages/py-particle/package.py
+++ b/var/spack/repos/builtin/packages/py-particle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,19 +12,24 @@ class PyParticle(PythonPackage):
particle information and extra goodies."""
git = "https://github.com/scikit-hep/particle.git"
- url = "https://pypi.io/packages/source/p/particle/particle-0.11.0.tar.gz"
+ pypi = "particle/particle-0.11.0.tar.gz"
homepage = "https://github.com/scikit-hep/particle"
maintainers = ['vvolkl']
+ tags = ['hep']
+
version('master', branch='master')
+ version('0.15.1', sha256='6b05cdc4b76c70f785e89258a470504ad87ca119057c65da30a7d4412cca824f')
+ version('0.14.1', sha256='05b345f8fbfdb12a0aa744c788b6e1b22326b5a6ad95230596e0fc9ebad56621')
version('0.11.0', sha256='e90dc36c8b7d7431bd14ee5a28486d28b6c0708555845d1d7bdf59a165405f12')
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-attrs@19.2.0:', type=('build', 'run'))
- depends_on('py-hepunits@1.2.0:', type=('build', 'run'))
+ depends_on('py-hepunits@1.2.0:', when='@:0.12', type=('build', 'run'))
+ depends_on('py-hepunits@2.0.0:', when='@0.13:', type=('build', 'run'))
depends_on('py-importlib-resources@1.0:', when='^python@:3.6', type=('build', 'run'))
depends_on('py-enum34@1.1:', when='^python@:3.3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-path-py/package.py b/var/spack/repos/builtin/packages/py-path-py/package.py
index 6d578b2d8b..9b694a5305 100644
--- a/var/spack/repos/builtin/packages/py-path-py/package.py
+++ b/var/spack/repos/builtin/packages/py-path-py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPathPy(PythonPackage):
"""A module wrapper for os.path"""
homepage = "https://github.com/jaraco/path.py"
- url = "https://pypi.io/packages/source/p/path.py/path.py-12.0.1.tar.gz"
+ pypi = "path.py/path.py-12.0.1.tar.gz"
version('12.0.1', sha256='9f2169633403aa0423f6ec000e8701dd1819526c62465f5043952f92527fea0f')
version('5.2', sha256='9916ae9aa603ce7e131e4ac76c25bcdbf6208f8fe5cc565a5022b85dc9d7022c')
diff --git a/var/spack/repos/builtin/packages/py-pathlib/package.py b/var/spack/repos/builtin/packages/py-pathlib/package.py
index a0676b0494..5c05c4e82c 100644
--- a/var/spack/repos/builtin/packages/py-pathlib/package.py
+++ b/var/spack/repos/builtin/packages/py-pathlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,14 @@ class PyPathlib(PythonPackage):
instead."""
homepage = "https://pathlib.readthedocs.org/"
- url = "https://pypi.io/packages/source/p/pathlib/pathlib-1.0.1.tar.gz"
+ pypi = "pathlib/pathlib-1.0.1.tar.gz"
version('1.0.1', sha256='6940718dfc3eff4258203ad5021090933e5c04707d5ca8cc9e73c94a7894ea9f')
+
+ # This is a backport of the pathlib module from Python 3.4. Since pathlib is now
+ # part of the standard library, this module isn't needed in Python 3.4+. Although it
+ # can be installed, differences between this implementation and the standard library
+ # implementation can cause other packages to fail. If it is installed, it ends up
+ # masking the standard library and doesn't have the same features that the standard
+ # library has in newer versions of Python.
+ conflicts('^python@3.4:')
diff --git a/var/spack/repos/builtin/packages/py-pathlib2/package.py b/var/spack/repos/builtin/packages/py-pathlib2/package.py
index 5da1abbe18..c8a2427603 100644
--- a/var/spack/repos/builtin/packages/py-pathlib2/package.py
+++ b/var/spack/repos/builtin/packages/py-pathlib2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,7 @@ from spack import *
class PyPathlib2(PythonPackage):
"""Backport of pathlib from python 3.4"""
- homepage = "https://pypi.python.org/pypi/pathlib2"
- url = "https://pypi.io/packages/source/p/pathlib2/pathlib2-2.3.2.tar.gz"
-
- import_modules = ['pathlib2']
+ pypi = "pathlib2/pathlib2-2.3.2.tar.gz"
version('2.3.3', sha256='25199318e8cc3c25dcb45cbe084cc061051336d5a9ea2a12448d3d8cb748f742')
version('2.3.2', sha256='8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83')
diff --git a/var/spack/repos/builtin/packages/py-pathos/package.py b/var/spack/repos/builtin/packages/py-pathos/package.py
index e4b2bc6c4f..da3de4f513 100644
--- a/var/spack/repos/builtin/packages/py-pathos/package.py
+++ b/var/spack/repos/builtin/packages/py-pathos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,22 +10,28 @@ class PyPathos(PythonPackage):
"""Parallel graph management and execution in heterogeneous computing """
homepage = "https://github.com/uqfoundation/pathos"
- url = "https://pypi.io/packages/source/p/pathos/pathos-0.2.3.tar.gz"
+ pypi = "pathos/pathos-0.2.3.tar.gz"
+ version('0.2.8', sha256='1f0f27a90f7ab66c423ba796529000fde9360d17b2d8e50097641ff405fc6f15')
version('0.2.3', sha256='954c5b0a8b257c375e35d311c65fa62a210a3d65269195557de38418ac9f61f9')
version('0.2.0', sha256='2f4e67e7914c95fb0cce766bab173eb2c5860ee420108fa183099557ac2e50e9')
- depends_on('python@2.6:2.8,3.1:')
+ depends_on('python@2.6:2.8,3.1:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.6:', when='@0.2.8:', type=('build', 'run'))
depends_on('py-setuptools@0.6:', type='build')
depends_on('py-multiprocess@0.70.7:', type=('build', 'run'))
depends_on('py-pox@0.2.5:', type=('build', 'run'))
+ depends_on('py-pox@0.3.0:', type=('build', 'run'), when='@0.2.8:')
depends_on('py-ppft@1.6.4.9:', type=('build', 'run'))
+ depends_on('py-ppft@1.6.6.4:', type=('build', 'run'), when='@0.2.8:')
depends_on('py-dill@0.2.9:', type=('build', 'run'))
+ depends_on('py-dill@0.3.4:', type=('build', 'run'), when='@0.2.8:')
+ depends_on('py-multiprocess@0.70.12:', type=('build', 'run'), when='@0.2.8:')
def url_for_version(self, version):
url = self.url.rsplit('/', 1)[0]
- if version >= Version('0.2.2'):
+ if Version('0.2.8') > version >= Version('0.2.2'):
url += '/pathos-{0}.tar.gz'
else:
url += '/pathos-{0}.zip'
diff --git a/var/spack/repos/builtin/packages/py-pathspec/package.py b/var/spack/repos/builtin/packages/py-pathspec/package.py
index fdf65b9484..7e1a586775 100644
--- a/var/spack/repos/builtin/packages/py-pathspec/package.py
+++ b/var/spack/repos/builtin/packages/py-pathspec/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,10 @@ class PyPathspec(PythonPackage):
"""pathspec extends the test loading and running features of unittest,
making it easier to write, find and run tests."""
- homepage = "https://pypi.python.org/pypi/pathspec"
- url = "https://pypi.io/packages/source/p/pathspec/pathspec-0.3.4.tar.gz"
+ pypi = "pathspec/pathspec-0.8.1.tar.gz"
+ version('0.8.1', sha256='86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd')
version('0.3.4', sha256='7605ca5c26f554766afe1d177164a2275a85bb803b76eba3428f422972f66728')
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pathtools/package.py b/var/spack/repos/builtin/packages/py-pathtools/package.py
new file mode 100644
index 0000000000..18d5608738
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pathtools/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyPathtools(PythonPackage):
+ """Path utilities for Python"""
+
+ homepage = "https://github.com/gorakhargosh/pathtools"
+ pypi = "pathtools/pathtools-0.1.2.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('0.1.2', sha256='7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-patool/package.py b/var/spack/repos/builtin/packages/py-patool/package.py
new file mode 100644
index 0000000000..a05bc2577c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-patool/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyPatool(PythonPackage):
+ """portable archive file manager"""
+
+ homepage = "https://wummel.github.io/patool/"
+ pypi = "patool/patool-1.12.tar.gz"
+
+ version('1.12', sha256='e3180cf8bfe13bedbcf6f5628452fca0c2c84a3b5ae8c2d3f55720ea04cb1097')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-patsy/package.py b/var/spack/repos/builtin/packages/py-patsy/package.py
index eb20c74049..0c5b5ce35b 100644
--- a/var/spack/repos/builtin/packages/py-patsy/package.py
+++ b/var/spack/repos/builtin/packages/py-patsy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyPatsy(PythonPackage):
building design matrices."""
homepage = "https://github.com/pydata/patsy"
- url = "https://pypi.io/packages/source/p/patsy/patsy-0.4.1.zip"
+ pypi = "patsy/patsy-0.4.1.zip"
version('0.5.1', sha256='f115cec4201e1465cd58b9866b0b0e7b941caafec129869057405bfe5b5e3991',
url="https://pypi.io/packages/source/p/patsy/patsy-0.5.1.tar.gz")
@@ -21,5 +21,3 @@ class PyPatsy(PythonPackage):
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-scipy', type=('build', 'run'), when="+splines")
depends_on('py-six', type=('build', 'run'))
-
- depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-pauvre/package.py b/var/spack/repos/builtin/packages/py-pauvre/package.py
index d022d882c4..af1b630c0e 100644
--- a/var/spack/repos/builtin/packages/py-pauvre/package.py
+++ b/var/spack/repos/builtin/packages/py-pauvre/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pbr/package.py b/var/spack/repos/builtin/packages/py-pbr/package.py
index 80abed9db0..09bb49d295 100644
--- a/var/spack/repos/builtin/packages/py-pbr/package.py
+++ b/var/spack/repos/builtin/packages/py-pbr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,10 @@ class PyPbr(PythonPackage):
"""PBR is a library that injects some useful and sensible default
behaviors into your setuptools run."""
- homepage = "https://pypi.python.org/pypi/pbr"
- url = "https://pypi.io/packages/source/p/pbr/pbr-5.4.3.tar.gz"
+ pypi = "pbr/pbr-5.4.3.tar.gz"
+
+ # Skip 'pbr.tests' imports
+ import_modules = ['pbr', 'pbr.cmd', 'pbr.hooks']
version('5.4.3', sha256='2c8e420cd4ed4cec4e7999ee47409e876af575d4c35a45840d59e8b5f3155ab8')
version('5.2.1', sha256='93d2dc6ee0c9af4dbc70bc1251d0e545a9910ca8863774761f92716dece400b6')
@@ -22,19 +24,3 @@ class PyPbr(PythonPackage):
depends_on('python@2.6:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
-
- # test-requirements.txt
- depends_on('py-wheel@0.32.0:', type='test')
- depends_on('py-fixtures@3.0.0:', type='test')
- depends_on('py-hacking@0.12.0:0.12.999,0.13.1:0.13.999', type='test')
- depends_on('py-mock@2.0.0:', type='test')
- depends_on('py-six@1.10.0:', type='test')
- depends_on('py-stestr@2.1.0:', type='test')
- depends_on('py-testresources@2.0.0:', type='test')
- depends_on('py-testscenarios@0.4:', type='test')
- depends_on('py-testtools@2.2.0:', type='test')
- depends_on('py-virtualenv@14.0.6:', type='test')
- depends_on('py-coverage@4.0:4.3,4.5:', type='test')
- depends_on('py-sphinx@1.6.2:1.6.5,1.6.8:1.999', when='^python@:2', type='test')
- depends_on('py-sphinx@1.6.2:1.6.5,1.6.8:', type='test')
- depends_on('py-testrepository@0.0.18:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-peachpy/package.py b/var/spack/repos/builtin/packages/py-peachpy/package.py
new file mode 100644
index 0000000000..7ff0e52b44
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-peachpy/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyPeachpy(PythonPackage):
+ """Portable Efficient Assembly Codegen in Higher-level Python."""
+
+ homepage = "https://github.com/Maratyszcza/PeachPy"
+ git = "https://github.com/Maratyszcza/PeachPy.git"
+
+ version('master', branch='master')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-opcodes@0.3.13:', type='build')
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-enum34', when='^python@:3.3.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pem/package.py b/var/spack/repos/builtin/packages/py-pem/package.py
new file mode 100644
index 0000000000..b2eea492a4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pem/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 PyPem(PythonPackage):
+ """
+ pem is an MIT-licensed Python module for parsing and splitting of PEM
+ files, i.e. Base64 encoded DER keys and certificates.
+ """
+
+ homepage = "https://pem.readthedocs.io/en/stable/"
+ url = "https://github.com/hynek/pem/archive/20.1.0.tar.gz"
+
+ version('20.1.0', sha256='140df7388f72bdf95d5a40e152cfda4fd62856b8320a9a808ffdc2bee37d5c36')
+ version('19.3.0', sha256='22c526314db05559d5a6b0661aa6a21f26a1ad9f6f10a6ba2d386534ad12b175')
+ version('19.2.0', sha256='93772e1574c8ff3442e553025fe42ed66cea3abff7ce75363baffa8eb606e596')
+ version('19.1.0', sha256='da4035ce675c0bd572e9e1b75e30c38553610a7d861460299ee18d72928379de')
+ version('18.2.0', sha256='18d8440b62ae264343da72b0f6df934291c2fcdaffbeaf249150a3fe76751ed5')
+ version('18.1.0', sha256='6bcb3474d112c9dc4aca6900e6b4967cbc1db11f693c8e535f728be2f5620604')
+ version('17.1.0', sha256='f33191c11e0bcba2c3d36dc5cfeefe5cc692778a4d33e2a51e56ed7c2c22a4ce')
+ version('16.1.0', sha256='5204e85da8561e98f96fa0be9aec6e15ee9fd40499fb4ec533e0513a42effa0b')
+ version('16.0.0', sha256='a7a00aa4e1e82d39ae78f7705b0e5dfc7d7b2cf8a16ee073c24af330f75b421e')
+ version('15.0.0', sha256='e93e3cfc017fca98223e9842f9ce5df1ad58bf5b4fb1fe82092fd1b778c187e1')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pep8-naming/package.py b/var/spack/repos/builtin/packages/py-pep8-naming/package.py
index fe3e929996..ba90bad4f1 100644
--- a/var/spack/repos/builtin/packages/py-pep8-naming/package.py
+++ b/var/spack/repos/builtin/packages/py-pep8-naming/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPep8Naming(PythonPackage):
"""Check PEP-8 naming conventions, plugin for flake8."""
homepage = "https://github.com/PyCQA/pep8-naming"
- url = "https://pypi.io/packages/source/p/pep8-naming/pep8-naming-0.10.0.tar.gz"
+ pypi = "pep8-naming/pep8-naming-0.10.0.tar.gz"
version('0.10.0', sha256='f3b4a5f9dd72b991bf7d8e2a341d2e1aa3a884a769b5aaac4f56825c1763bf3a')
version('0.7.0', sha256='624258e0dd06ef32a9daf3c36cc925ff7314da7233209c5b01f7e5cdd3c34826')
diff --git a/var/spack/repos/builtin/packages/py-pep8/package.py b/var/spack/repos/builtin/packages/py-pep8/package.py
index d1eaa13470..fdd6d1f92a 100644
--- a/var/spack/repos/builtin/packages/py-pep8/package.py
+++ b/var/spack/repos/builtin/packages/py-pep8/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyPep8(PythonPackage):
"""Python style guide checker (deprecated, use py-pycodestyle instead)."""
homepage = "https://pep8.readthedocs.org/"
- url = "https://pypi.io/packages/source/p/pep8/pep8-1.7.1.tar.gz"
-
- import_modules = ['pep8']
+ pypi = "pep8/pep8-1.7.1.tar.gz"
version('1.7.1', sha256='fe249b52e20498e59e0b5c5256aa52ee99fc295b26ec9eaa85776ffdb9fe6374')
diff --git a/var/spack/repos/builtin/packages/py-performance/package.py b/var/spack/repos/builtin/packages/py-performance/package.py
index 41c12556d3..1fe0a2472d 100644
--- a/var/spack/repos/builtin/packages/py-performance/package.py
+++ b/var/spack/repos/builtin/packages/py-performance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-periodictable/package.py b/var/spack/repos/builtin/packages/py-periodictable/package.py
index 253a808c0b..0e48f6fa70 100644
--- a/var/spack/repos/builtin/packages/py-periodictable/package.py
+++ b/var/spack/repos/builtin/packages/py-periodictable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyPeriodictable(PythonPackage):
"""nose extends the test loading and running features of unittest,
making it easier to write, find and run tests."""
- homepage = "https://pypi.python.org/pypi/periodictable"
- url = "https://pypi.io/packages/source/p/periodictable/periodictable-1.4.1.tar.gz"
+ pypi = "periodictable/periodictable-1.4.1.tar.gz"
version('1.5.0', sha256='b020c04c6765d21903e4604a76ca33cda98677003fe6eb48ed3690cfb03253b2')
version('1.4.1', sha256='f42e66f6efca33caec4f27dad8d6a6d4e59da147ecf5adfce152cb84e7bd160b')
diff --git a/var/spack/repos/builtin/packages/py-petastorm/package.py b/var/spack/repos/builtin/packages/py-petastorm/package.py
index 2c6cc5e34f..a7dcca0ba1 100644
--- a/var/spack/repos/builtin/packages/py-petastorm/package.py
+++ b/var/spack/repos/builtin/packages/py-petastorm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,13 @@ class PyPetastorm(PythonPackage):
Tensorflow, Pytorch, and other Python-based ML training frameworks."""
homepage = "https://github.com/uber/petastorm"
- url = "https://pypi.io/packages/source/p/petastorm/petastorm-0.8.2.tar.gz"
+ pypi = "petastorm/petastorm-0.8.2.tar.gz"
maintainers = ['adamjstewart']
-
+ version('0.9.8', sha256='66009b7ad3f08b0485a748f12b2095a0d2470e04f0c63de43cd5b099f270c268')
version('0.8.2', sha256='7782c315e1ee8d15c7741e3eea41e77b9efce661cf58aa0220a801db64f52f91')
+ depends_on('python@3:', when='@0.9.8:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-dill@0.2.1:', type=('build', 'run'))
depends_on('py-diskcache@3.0.0:', type=('build', 'run'))
@@ -26,5 +27,6 @@ class PyPetastorm(PythonPackage):
depends_on('py-psutil@4.0.0:', type=('build', 'run'))
depends_on('py-pyspark@2.1.0:', type=('build', 'run'))
depends_on('py-pyzmq@14.0.0:', type=('build', 'run'))
- depends_on('py-pyarrow@0.12.0:', type=('build', 'run'))
+ depends_on('py-pyarrow@0.12.0:', type=('build', 'run'), when='@:0.8.2')
+ depends_on('py-pyarrow@0.17.1:', type=('build', 'run'), when='@0.9.8:')
depends_on('py-six@1.5.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-petsc4py/ldshared-dev.patch b/var/spack/repos/builtin/packages/py-petsc4py/ldshared-dev.patch
new file mode 100644
index 0000000000..46a403d1ff
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-petsc4py/ldshared-dev.patch
@@ -0,0 +1,13 @@
+diff --git a/src/binding/petsc4py/conf/baseconf.py b/src/binding/petsc4py/conf/baseconf.py
+index 8a2466a5bd..73c08b923a 100644
+--- a/src/binding/petsc4py/conf/baseconf.py
++++ b/src/binding/petsc4py/conf/baseconf.py
+@@ -211,7 +211,7 @@ class PetscConfig:
+ ldshared = getenv('LDSHARED', ldshared)
+ ldflags = getenv('LDFLAGS', cflags + ' ' + (ldflags or ''))
+ ldcmd = split_quoted(ld) + split_quoted(ldflags)
+- ldshared = [flg for flg in split_quoted(ldshared) if flg not in ldcmd]
++ ldshared = [flg for flg in split_quoted(ldshared) if flg not in ldcmd and (flg.find('/lib/spack/env')<0)]
+ ldshared = str.join(' ', ldshared)
+ #
+ def get_flags(cmd):
diff --git a/var/spack/repos/builtin/packages/py-petsc4py/ldshared.patch b/var/spack/repos/builtin/packages/py-petsc4py/ldshared.patch
new file mode 100644
index 0000000000..026a48722e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-petsc4py/ldshared.patch
@@ -0,0 +1,13 @@
+diff --git a/conf/baseconf.py b/conf/baseconf.py
+index 8a2466a5bd..73c08b923a 100644
+--- a/conf/baseconf.py
++++ b/conf/baseconf.py
+@@ -211,7 +211,7 @@ class PetscConfig:
+ ldshared = getenv('LDSHARED', ldshared)
+ ldflags = getenv('LDFLAGS', cflags + ' ' + (ldflags or ''))
+ ldcmd = split_quoted(ld) + split_quoted(ldflags)
+- ldshared = [flg for flg in split_quoted(ldshared) if flg not in ldcmd]
++ ldshared = [flg for flg in split_quoted(ldshared) if flg not in ldcmd and (flg.find('/lib/spack/env')<0)]
+ ldshared = str.join(' ', ldshared)
+ #
+ def get_flags(cmd):
diff --git a/var/spack/repos/builtin/packages/py-petsc4py/package.py b/var/spack/repos/builtin/packages/py-petsc4py/package.py
index f9d1d09f42..9811562ad8 100644
--- a/var/spack/repos/builtin/packages/py-petsc4py/package.py
+++ b/var/spack/repos/builtin/packages/py-petsc4py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,12 +11,18 @@ class PyPetsc4py(PythonPackage):
"""
homepage = "https://gitlab.com/petsc/petsc4py"
- url = "https://pypi.io/packages/source/p/petsc4py/petsc4py-3.14.0.tar.gz"
- git = "https://gitlab.com/petsc/petsc4py.git"
+ url = "https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc4py-3.15.0.tar.gz"
+ git = "https://gitlab.com/petsc/petsc.git"
- maintainers = ['dalcinl', 'balay']
+ maintainers = ['balay']
- version('develop', branch='master')
+ version('main', branch='main')
+ version('3.15.4', sha256='f3e1ae8db824d7ac6994f6ae4e04fdd76381f060ca350fee2a85aac668125a8c')
+ version('3.15.3', sha256='06e7a5de3509067d8625330b10c1ab200b36df1dfdc2e93922038784b2722f8e')
+ version('3.15.2', sha256='d7ed1d79d88b35da563d25e733f276595ba538c52756225f79ba92e1cc4658d3')
+ version('3.15.1', sha256='4ec8f42081e4d6a61157b32869b352dcb18c69077f2d1e4160f3837efd9e150f')
+ version('3.15.0', sha256='87dcc5ef63a1f0e1a963619f7527e623f52341b2806056b0ef5fdfb0b8b287ad')
+ version('3.14.1', sha256='f5f8daf3a4cd1dfc945876b0d83a05b25f3c54e08046312eaa3e3036b24139c0')
version('3.14.0', sha256='33ac9fb55a541e4c1deabd6e2144da96d5ae70e70c830a55de558000cf3f0ec5')
version('3.13.0', sha256='0e11679353c0c2938336a3c8d1a439b853e20d3bccd7d614ad1dbea3ec5cb31f')
version('3.12.0', sha256='4c94a1dbbf244b249436b266ac5fa4e67080d205420805deab5ec162b979df8d')
@@ -31,7 +37,10 @@ class PyPetsc4py(PythonPackage):
variant('mpi', default=True, description='Activates MPI support')
- depends_on('py-cython', type='build', when='@develop')
+ patch('ldshared.patch', when='@:99')
+ patch('ldshared-dev.patch', when='@main')
+
+ depends_on('py-cython', type='build', when='@main')
depends_on('python@2.6:2.8,3.3:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-numpy', type=('build', 'run'))
@@ -39,8 +48,10 @@ class PyPetsc4py(PythonPackage):
depends_on('petsc+mpi', when='+mpi')
depends_on('petsc~mpi', when='~mpi')
- depends_on('petsc@develop', when='@develop')
- depends_on('petsc@3.14:3.14.99', when='@3.14:3.14.99')
+ depends_on('petsc@main', when='@main')
+ depends_on('petsc@3.15.0:3.15.99', when='@3.15.0:3.15.99')
+ depends_on('petsc@3.14.2:3.14.99', when='@3.14.1:3.14.99')
+ depends_on('petsc@3.14.0:3.14.1', when='@3.14.0')
depends_on('petsc@3.13:3.13.99', when='@3.13:3.13.99')
depends_on('petsc@3.12:3.12.99', when='@3.12:3.12.99')
depends_on('petsc@3.11:3.11.99', when='@3.11:3.11.99')
@@ -50,3 +61,11 @@ class PyPetsc4py(PythonPackage):
depends_on('petsc@3.8:3.8.99', when='@3.8:3.8.99')
depends_on('petsc@3.7:3.7.99', when='@3.7:3.7.99')
depends_on('petsc@3.6:3.6.99', when='@3.6:3.6.99')
+
+ @property
+ def build_directory(self):
+ import os
+ if self.spec.satisfies('@main'):
+ return os.path.join(self.stage.source_path, 'src', 'binding', 'petsc4py')
+ else:
+ return self.stage.source_path
diff --git a/var/spack/repos/builtin/packages/py-pexpect/package.py b/var/spack/repos/builtin/packages/py-pexpect/package.py
index 174edadffc..431219bf4e 100644
--- a/var/spack/repos/builtin/packages/py-pexpect/package.py
+++ b/var/spack/repos/builtin/packages/py-pexpect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,7 @@ from spack import *
class PyPexpect(PythonPackage):
"""Pexpect allows easy control of interactive console applications."""
- homepage = "https://pypi.python.org/pypi/pexpect"
- url = "https://pypi.io/packages/source/p/pexpect/pexpect-4.2.1.tar.gz"
+ pypi = "pexpect/pexpect-4.2.1.tar.gz"
version('4.7.0', sha256='9e2c1fd0e6ee3a49b28f95d4b33bc389c89b20af6a1255906e90ff1262ce62eb')
version('4.6.0', sha256='2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba')
diff --git a/var/spack/repos/builtin/packages/py-phonenumbers/package.py b/var/spack/repos/builtin/packages/py-phonenumbers/package.py
new file mode 100644
index 0000000000..c614550f2a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-phonenumbers/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyPhonenumbers(PythonPackage):
+ """Python version of Google's common library for parsing, formatting
+ and validating international phone numbers."""
+
+ homepage = "https://github.com/daviddrysdale/python-phonenumbers"
+ pypi = "phonenumbers/phonenumbers-8.12.16.tar.gz"
+
+ version('8.12.16', sha256='a820ab08c980ef24a2d2a1ead4f8d7016fdf008e484d1aecf7ff0b32cc475e16')
+ version('8.12.15', sha256='b734bfcf33e87ddae72196a40b3d1af35abd0beb263816ae18e1bff612926406')
+ version('8.12.14', sha256='58817072cf2b80fcc8710e7a2c395cd32fce2b70a259e36ff81916862f578d61')
+
+ depends_on('python@2.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-phonopy/package.py b/var/spack/repos/builtin/packages/py-phonopy/package.py
index f297faf44d..26bf06f7df 100644
--- a/var/spack/repos/builtin/packages/py-phonopy/package.py
+++ b/var/spack/repos/builtin/packages/py-phonopy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyPhonopy(PythonPackage):
"""Phonopy is an open source package for phonon
calculations at harmonic and quasi-harmonic levels."""
- homepage = "http://atztogo.github.io/phonopy/index.html"
+ homepage = "https://atztogo.github.io/phonopy/index.html"
url = "http://sourceforge.net/projects/phonopy/files/phonopy/phonopy-1.10/phonopy-1.10.0.tar.gz"
version('1.10.0', sha256='6b7c540bbbb033203c45b8472696db02a3a55913a0e5eb23de4dc9a3bee473f7')
diff --git a/var/spack/repos/builtin/packages/py-pickleshare/package.py b/var/spack/repos/builtin/packages/py-pickleshare/package.py
index 3e1b7b6f01..050f3b0ee4 100644
--- a/var/spack/repos/builtin/packages/py-pickleshare/package.py
+++ b/var/spack/repos/builtin/packages/py-pickleshare/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPickleshare(PythonPackage):
"""Tiny 'shelve'-like database with concurrency support"""
- homepage = "https://pypi.python.org/pypi/pickleshare"
- url = "https://pypi.io/packages/source/p/pickleshare/pickleshare-0.7.4.tar.gz"
+ pypi = "pickleshare/pickleshare-0.7.4.tar.gz"
version('0.7.5', sha256='87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca')
version('0.7.4', sha256='84a9257227dfdd6fe1b4be1319096c20eb85ff1e82c7932f36efccfe1b09737b')
diff --git a/var/spack/repos/builtin/packages/py-picmistandard/package.py b/var/spack/repos/builtin/packages/py-picmistandard/package.py
new file mode 100644
index 0000000000..7c850b36c1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-picmistandard/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyPicmistandard(PythonPackage):
+ """Standard input format for Particle-In-Cell codes"""
+
+ homepage = "https://picmi-standard.github.io"
+ url = "https://github.com/picmi-standard/picmi/archive/refs/tags/0.0.14.tar.gz"
+ git = "https://github.com/picmi-standard/picmi.git"
+
+ maintainers = ['ax3l', 'dpgrote', 'RemiLehe']
+
+ version('develop', branch='master')
+ version('0.0.14', sha256='b7eefdae1c43119984226b2df358c86fdeef7495084e47b3575e3d07e790ba30')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ build_directory = 'PICMI_Python'
diff --git a/var/spack/repos/builtin/packages/py-picrust/package.py b/var/spack/repos/builtin/packages/py-picrust/package.py
index e346e5b012..d506dbf43d 100644
--- a/var/spack/repos/builtin/packages/py-picrust/package.py
+++ b/var/spack/repos/builtin/packages/py-picrust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPicrust(PythonPackage):
"""bioinformatics software package designed to predict metagenome
functional content from marker gene surveys and full genomes."""
- homepage = "http://picrust.github.io/picrust/index.html"
+ homepage = "https://picrust.github.io/picrust/index.html"
url = "https://github.com/picrust/picrust/releases/download/v1.1.3/picrust-1.1.3.tar.gz"
version('1.1.3', sha256='7538c8544899b8855deb73a2d7a4ccac4808ff294e161530a8c8762d472d8906')
diff --git a/var/spack/repos/builtin/packages/py-picrust2/package.py b/var/spack/repos/builtin/packages/py-picrust2/package.py
new file mode 100644
index 0000000000..f29f1b7143
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-picrust2/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyPicrust2(PythonPackage):
+ """PICRUSt2 is a software for predicting functional
+ abundances based only on marker gene sequences."""
+
+ homepage = "https://github.com/picrust/picrust2"
+ url = "https://github.com/picrust/picrust2/archive/v2.3.0-b.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('2.3.0-b', sha256='ac12c372bc263e750d9101eca0cd0e57de37089b661fa1a13caf5a544d293737')
+ version('2.2.0-b', sha256='c41e1f487b33179f4aecede50cfd8b652aa3cef2ea1ae5fd022f531c7d549097')
+ version('2.1.4-b', sha256='f781eb323914979b6d3bca088a5152f085f53e6e38f1c3be94b35f99fc1db2d8')
+
+ depends_on('py-setuptools', type=('build'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-h5py', type=('build', 'run'))
+ depends_on('py-joblib', type=('build', 'run'))
+ depends_on('py-biom-format', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pid/package.py b/var/spack/repos/builtin/packages/py-pid/package.py
index b9b20428a9..5ab1f6a3da 100644
--- a/var/spack/repos/builtin/packages/py-pid/package.py
+++ b/var/spack/repos/builtin/packages/py-pid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPid(PythonPackage):
"""Pidfile featuring stale detection and file-locking, can also be
used as context-manager or decorator."""
- homepage = "https://pypi.org/project/pid/"
+ homepage = "https://github.com/trbs/pid/"
url = "https://github.com/trbs/pid/archive/3.0.3.tar.gz"
version('3.0.3', sha256='082281e2f6b99b4aaa02a24ae4796c604ac17f19cdd0327b8c1ba9c2e73aadc8')
diff --git a/var/spack/repos/builtin/packages/py-pika/package.py b/var/spack/repos/builtin/packages/py-pika/package.py
new file mode 100755
index 0000000000..236c81c2c4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pika/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyPika(PythonPackage):
+ """Pika is a RabbitMQ (AMQP 0-9-1) client library for Python."""
+
+ homepage = 'https://pika.readthedocs.io/'
+ git = 'https://github.com/pika/pika.git'
+ pypi = 'pika/pika-1.2.0.tar.gz'
+
+ version('1.2.0', sha256='f023d6ac581086b124190cb3dc81dd581a149d216fa4540ac34f9be1e3970b89')
+ version('1.1.0', sha256='9fa76ba4b65034b878b2b8de90ff8660a59d925b087c5bb88f8fdbb4b64a1dbf')
+ version('1.0.0', sha256='fba41293b35c845bd96cfdd29981f0eeff91f705ac0c3ba361a771c4bfbc3485')
+ version('0.13.1', sha256='b0640085f1d6398fd47bb16a17713053e26578192821ea5d928772b8e6a28789')
+ version('0.13.0', sha256='5338d829d1edb3e5bcf1523b4a9e32c56dea5a8bda7018825849e35325580484')
+
+ depends_on('python@2.7,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pil/package.py b/var/spack/repos/builtin/packages/py-pil/package.py
index 0fd20fdb4c..04acd5347a 100644
--- a/var/spack/repos/builtin/packages/py-pil/package.py
+++ b/var/spack/repos/builtin/packages/py-pil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyPil(PythonPackage):
to your Python interpreter. This library supports many file formats,
and provides powerful image processing and graphics capabilities."""
- homepage = "http://www.pythonware.com/products/pil/"
+ homepage = "https://pillow.readthedocs.io/en/stable/"
url = "http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz"
version('1.1.7', sha256='895bc7c2498c8e1f9b99938f1a40dc86b3f149741f105cf7c7bd2e0725405211')
diff --git a/var/spack/repos/builtin/packages/py-pillow-simd/package.py b/var/spack/repos/builtin/packages/py-pillow-simd/package.py
index f1f6939d4c..5298685150 100644
--- a/var/spack/repos/builtin/packages/py-pillow-simd/package.py
+++ b/var/spack/repos/builtin/packages/py-pillow-simd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyPillowSimd(PyPillowBase):
# See https://github.com/spack/spack/pull/15566
_name = 'py-pillow-simd'
homepage = "https://github.com/uploadcare/pillow-simd"
- url = "https://pypi.io/packages/source/P/Pillow-SIMD/Pillow-SIMD-7.0.0.post3.tar.gz"
+ pypi = "Pillow-SIMD/Pillow-SIMD-7.0.0.post3.tar.gz"
version('7.0.0.post3', sha256='c27907af0e7ede1ceed281719e722e7dbf3e1dbfe561373978654a6b64896cb7')
version('6.2.2.post1', sha256='d29b673ac80091797f1e8334458be307e4ac4ab871b0e495cfe56cb7b1d7704e')
diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py
index 5ff2621c2d..4388a6d8dd 100644
--- a/var/spack/repos/builtin/packages/py-pillow/package.py
+++ b/var/spack/repos/builtin/packages/py-pillow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,6 @@ class PyPillowBase(PythonPackage):
"""Base class for Pillow and its fork Pillow-SIMD."""
maintainers = ['adamjstewart']
- import_modules = ['PIL']
provides('pil')
@@ -36,9 +35,6 @@ class PyPillowBase(PythonPackage):
depends_on('python@2.6:2.8,3.2:3.5', when='@2:3', type=('build', 'run'))
depends_on('python@2.4:2.7', when='@:1', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-pytest', type='test')
- depends_on('py-pytest-runner', type='test')
- depends_on('imagemagick', type='test')
# Optional dependencies
depends_on('zlib', when='+zlib')
@@ -98,8 +94,6 @@ class PyPillowBase(PythonPackage):
env.set('MAX_CONCURRENCY', str(make_jobs))
# Tests need to be re-added since `phases` was overridden
- run_after('build_ext')(
- PythonPackage._run_default_build_time_test_callbacks)
run_after('install')(
PythonPackage._run_default_install_time_test_callbacks)
run_after('install')(PythonPackage.sanity_check_prefix)
@@ -112,7 +106,7 @@ class PyPillow(PyPillowBase):
capabilities."""
homepage = "https://python-pillow.org/"
- url = "https://pypi.io/packages/source/P/Pillow/Pillow-7.2.0.tar.gz"
+ pypi = "Pillow/Pillow-7.2.0.tar.gz"
version('8.0.0', sha256='59304c67d12394815331eda95ec892bf54ad95e0aa7bc1ccd8e0a4a5a25d4bf3')
version('7.2.0', sha256='97f9e7953a77d5a70f49b9a48da7776dc51e9b738151b22dacf101641594a626')
diff --git a/var/spack/repos/builtin/packages/py-pint/package.py b/var/spack/repos/builtin/packages/py-pint/package.py
index fd2736f7c6..ade1726835 100644
--- a/var/spack/repos/builtin/packages/py-pint/package.py
+++ b/var/spack/repos/builtin/packages/py-pint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,13 @@ class PyPint(PythonPackage):
It allows arithmetic operations between them and conversions from and
to different units."""
- homepage = "https://pypi.org/project/Pint"
- url = "https://pypi.io/packages/source/p/pint/Pint-0.11.tar.gz"
+ pypi = "pint/Pint-0.11.tar.gz"
+ # 'pint' requires 'xarray', creating a circular dependency. Don't bother attempting
+ # any import tests for this package.
+ import_modules = []
+
+ version('0.17', sha256='f4d0caa713239e6847a7c6eefe2427358566451fe56497d533f21fb590a3f313')
version('0.11', sha256='308f1070500e102f83b6adfca6db53debfce2ffc5d3cbe3f6c367da359b5cf4d')
version('0.10.1', sha256='d739c364b8326fe3d70773d5720fa8b005ea6158695cad042677a588480c86e6')
version('0.10', sha256='38a4d6e242b8bab693cd83a5f5ade3d816463b498658e7ab14ce64c4d458c88b')
@@ -22,5 +26,8 @@ class PyPint(PythonPackage):
version('0.8.1', sha256='afcf31443a478c32bbac4b00337ee9026a13d0e2ac83d30c79151462513bb0d4')
depends_on('python@3.6:', type=('build', 'run'), when='@0.10:')
- depends_on('py-setuptools', type=('build', ))
- depends_on('py-setuptools-scm', type=('build', ))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-setuptools-scm', type=('build'))
+ depends_on('py-packaging', type=('build', 'run'), when='@0.17:')
+ depends_on('py-importlib-metadata', type=('build', 'run'), when='@0.17: ^python@:3.7.999')
+ depends_on('py-importlib-resources', type=('build', 'run'), when='@0.17: ^python@:3.6.999')
diff --git a/var/spack/repos/builtin/packages/py-pip/package.py b/var/spack/repos/builtin/packages/py-pip/package.py
index ed5171411c..41a8b17351 100644
--- a/var/spack/repos/builtin/packages/py-pip/package.py
+++ b/var/spack/repos/builtin/packages/py-pip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ class PyPip(PythonPackage):
"""The PyPA recommended tool for installing Python packages."""
homepage = "https://pip.pypa.io/"
- url = "https://pypi.io/packages/source/p/pip/pip-20.2.tar.gz"
+ pypi = "pip/pip-20.2.tar.gz"
+ version('21.1.2', sha256='eb5df6b9ab0af50fe1098a52fd439b04730b6e066887ff7497357b9ebd19f79b')
version('20.2', sha256='912935eb20ea6a3b5ed5810dde9754fde5563f5ca9be44a8a6e5da806ade970b')
version('19.3', sha256='324d234b8f6124846b4e390df255cacbe09ce22791c3b714aa1ea6e44a4f2861')
version('19.1.1', sha256='44d3d7d3d30a1eb65c7e5ff1173cdf8f7467850605ac7cc3707b6064bddd0958')
@@ -20,7 +21,7 @@ class PyPip(PythonPackage):
version('10.0.1', sha256='f2bd08e0cd1b06e10218feaf6fef299f473ba706582eb3bd9d52203fdbd7ee68')
version('9.0.1', sha256='09f243e1a7b461f654c26a725fa373211bb7ff17a9300058b205c61658ca940d')
- depends_on('python@3.5:', when='@21:', type=('build', 'run'))
+ depends_on('python@3.6:', when='@21:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.5:', when='@19.2:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.4:', when='@18:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.3:', when='@10:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pipits/package.py b/var/spack/repos/builtin/packages/py-pipits/package.py
index f1a4067f8d..36b550aa3d 100644
--- a/var/spack/repos/builtin/packages/py-pipits/package.py
+++ b/var/spack/repos/builtin/packages/py-pipits/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pispino/package.py b/var/spack/repos/builtin/packages/py-pispino/package.py
index c216c220a5..bf282e2576 100644
--- a/var/spack/repos/builtin/packages/py-pispino/package.py
+++ b/var/spack/repos/builtin/packages/py-pispino/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pkgconfig/package.py b/var/spack/repos/builtin/packages/py-pkgconfig/package.py
index f519422138..0f2e7171e0 100644
--- a/var/spack/repos/builtin/packages/py-pkgconfig/package.py
+++ b/var/spack/repos/builtin/packages/py-pkgconfig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyPkgconfig(PythonPackage):
"""Interface Python with pkg-config."""
- homepage = "http://github.com/matze/pkgconfig"
- url = "https://pypi.io/packages/source/p/pkgconfig/pkgconfig-1.2.2.tar.gz"
+ homepage = "https://github.com/matze/pkgconfig"
+ pypi = "pkgconfig/pkgconfig-1.2.2.tar.gz"
version('1.5.1', sha256='97bfe3d981bab675d5ea3ef259045d7919c93897db7d3b59d4e8593cba8d354f')
version('1.4.0', sha256='048c3b457da7b6f686b647ab10bf09e2250e4c50acfe6f215398a8b5e6fcdb52')
@@ -19,7 +19,4 @@ class PyPkgconfig(PythonPackage):
depends_on('python@2.6:2.8,3.3:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.3:', when='@1.5:', type=('build', 'run'))
depends_on('py-setuptools', when='@:1.4', type=('build', 'run'))
-
depends_on('pkgconfig', type=('build', 'run'))
-
- depends_on('py-nose@1.0:', type=('build', 'test'))
diff --git a/var/spack/repos/builtin/packages/py-pkginfo/package.py b/var/spack/repos/builtin/packages/py-pkginfo/package.py
index ed00f37a5d..7d6efa869e 100644
--- a/var/spack/repos/builtin/packages/py-pkginfo/package.py
+++ b/var/spack/repos/builtin/packages/py-pkginfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,8 @@ class PyPkginfo(PythonPackage):
"""Query metadatdata from sdists / bdists / installed packages."""
homepage = "https://code.launchpad.net/~tseaver/pkginfo/trunk"
- url = "https://pypi.io/packages/source/p/pkginfo/pkginfo-1.5.0.1.tar.gz"
+ pypi = "pkginfo/pkginfo-1.5.0.1.tar.gz"
version('1.5.0.1', sha256='7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb')
depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-nose', type='test')
- depends_on('py-coverage', type='test')
diff --git a/var/spack/repos/builtin/packages/py-plac/package.py b/var/spack/repos/builtin/packages/py-plac/package.py
index 18d18cf5dd..746e8ead71 100644
--- a/var/spack/repos/builtin/packages/py-plac/package.py
+++ b/var/spack/repos/builtin/packages/py-plac/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyPlac(PythonPackage):
"""The smartest command line arguments parser in the world."""
homepage = "https://github.com/micheles/plac"
- url = "https://pypi.io/packages/source/p/plac/plac-1.1.3.tar.gz"
+ pypi = "plac/plac-1.1.3.tar.gz"
version('1.1.3', sha256='398cb947c60c4c25e275e1f1dadf027e7096858fb260b8ece3b33bcff90d985f')
diff --git a/var/spack/repos/builtin/packages/py-planar/package.py b/var/spack/repos/builtin/packages/py-planar/package.py
index b01737828f..ac3cedffd6 100644
--- a/var/spack/repos/builtin/packages/py-planar/package.py
+++ b/var/spack/repos/builtin/packages/py-planar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PyPlanar(PythonPackage):
"""2D planar geometry library for Python."""
homepage = "https://bitbucket.org/caseman/planar/src/default/"
- url = "https://pypi.io/packages/source/p/planar/planar-0.4.zip"
+ pypi = "planar/planar-0.4.zip"
version('0.4', sha256='cbfb9cbae8b0e296e6e7e3552b7d685c7ed5cae295b7a61f2b2b096b231dad76')
diff --git a/var/spack/repos/builtin/packages/py-planet/package.py b/var/spack/repos/builtin/packages/py-planet/package.py
index 89b888097e..5f0c89b1fe 100644
--- a/var/spack/repos/builtin/packages/py-planet/package.py
+++ b/var/spack/repos/builtin/packages/py-planet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,10 @@ class PyPlanet(PythonPackage):
"""Python client library and CLI for Planet's public API"""
homepage = "https://github.com/planetlabs/planet-client-python"
- url = "https://pypi.io/packages/source/p/planet/planet-1.4.6.tar.gz"
+ pypi = "planet/planet-1.4.6.tar.gz"
version('1.4.6', sha256='43ff6a765f465302f500aaf65b81a46ac6aad7bb42899e4a7543bdc293d4ca0d')
depends_on('py-setuptools', type='build')
- depends_on('py-mock', type='test')
- depends_on('py-pytest', type='test')
- depends_on('py-requests-mock', type='test')
depends_on('py-click', type=('build', 'run'))
depends_on('py-requests', type=('build', 'run'))
depends_on('py-requests-futures@0.9.7', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-plotly/package.py b/var/spack/repos/builtin/packages/py-plotly/package.py
index 7a62596eea..b103663130 100644
--- a/var/spack/repos/builtin/packages/py-plotly/package.py
+++ b/var/spack/repos/builtin/packages/py-plotly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,19 @@ class PyPlotly(PythonPackage):
"""An interactive, browser-based graphing library for Python"""
homepage = "https://plot.ly/python/"
- url = "https://pypi.io/packages/source/p/plotly/plotly-2.2.0.tar.gz"
+ pypi = "plotly/plotly-2.2.0.tar.gz"
+ version('5.2.2', sha256='809f0674a7991daaf4f287964d617d24e9fa44463acd5a5352ebd874cfd98b07')
version('2.2.0', sha256='ca668911ffb4d11fed6d7fbb12236f8ecc6a7209db192326bcb64bdb41451a58')
+ depends_on('python@3.6:', when='@5.2.2:', type=('build', 'run'))
+
depends_on('py-setuptools', type='build')
- depends_on('py-decorator@4.0.6:', type=('build', 'run'))
- depends_on('py-nbformat@4.2.0:', type=('build', 'run'))
- depends_on('py-requests', type=('build', 'run'))
- depends_on('py-six', type=('build', 'run'))
- depends_on('py-pytz', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+
+ depends_on('py-pytz', when='@:2.2.0', type=('build', 'run'))
+ depends_on('py-decorator@4.0.6:', when='@:2.2.0', type=('build', 'run'))
+ depends_on('py-nbformat@4.2.0:', when='@:2.2.0', type=('build', 'run'))
+ depends_on('py-requests', when='@:2.2.0', type=('build', 'run'))
+
+ depends_on('py-tenacity@6.2.0:', when='@5.2.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pluggy/package.py b/var/spack/repos/builtin/packages/py-pluggy/package.py
index 1e2fb3f2bd..7c543bbdd1 100644
--- a/var/spack/repos/builtin/packages/py-pluggy/package.py
+++ b/var/spack/repos/builtin/packages/py-pluggy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,12 @@ class PyPluggy(PythonPackage):
"""Plugin and hook calling mechanisms for python."""
homepage = "https://github.com/pytest-dev/pluggy"
- url = "https://pypi.io/packages/source/p/pluggy/pluggy-0.13.0.tar.gz"
-
- import_modules = ['pluggy']
+ pypi = "pluggy/pluggy-0.13.0.tar.gz"
version('0.13.0', sha256='fa5fa1622fa6dd5c030e9cad086fa19ef6a0cf6d7a2d12318e10cb49d6d68f34')
version('0.12.0', sha256='0825a152ac059776623854c1543d65a4ad408eb3d33ee114dff91e57ec6ae6fc')
+ version('0.9.0', sha256='19ecf9ce9db2fce065a7a0586e07cfb4ac8614fe96edf628a264b1c70116cf8f')
+ version('0.8.1', sha256='8ddc32f03971bfdf900a81961a48ccf2fb677cf7715108f85295c67405798616')
version('0.7.1', sha256='95eb8364a4708392bae89035f45341871286a333f749c3141c20573d2b3876e1')
version('0.6.0', sha256='7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff')
diff --git a/var/spack/repos/builtin/packages/py-ply/package.py b/var/spack/repos/builtin/packages/py-ply/package.py
index 6149a4f9de..2c1b064d76 100644
--- a/var/spack/repos/builtin/packages/py-ply/package.py
+++ b/var/spack/repos/builtin/packages/py-ply/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyPly(PythonPackage):
"""PLY is nothing more than a straightforward lex/yacc implementation."""
homepage = "http://www.dabeaz.com/ply"
- url = "http://www.dabeaz.com/ply/ply-3.11.tar.gz"
+ url = "https://www.dabeaz.com/ply/ply-3.11.tar.gz"
version('3.11', sha256='00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3')
version('3.8', sha256='e7d1bdff026beb159c9942f7a17e102c375638d9478a7ecd4cc0c76afd8de0b8')
diff --git a/var/spack/repos/builtin/packages/py-pmw/package.py b/var/spack/repos/builtin/packages/py-pmw/package.py
index 3ccc11fef4..c553196f6c 100644
--- a/var/spack/repos/builtin/packages/py-pmw/package.py
+++ b/var/spack/repos/builtin/packages/py-pmw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPmw(PythonPackage):
"""Pmw is a toolkit for building high-level compound widgets, or
megawidgets, constructed using other widgets as component parts."""
- homepage = "https://pypi.python.org/pypi/Pmw"
- url = "https://pypi.io/packages/source/P/Pmw/Pmw-2.0.0.tar.gz"
+ pypi = "Pmw/Pmw-2.0.0.tar.gz"
version('2.0.1', sha256='0b9d28f52755a7a081b44591c3dd912054f896e56c9a627db4dd228306ad1120')
version('2.0.0', sha256='2babb2855feaabeea1003c6908b61c9d39cff606d418685f0559952714c680bb')
diff --git a/var/spack/repos/builtin/packages/py-pomegranate/package.py b/var/spack/repos/builtin/packages/py-pomegranate/package.py
index 91085ba554..14a97f842d 100644
--- a/var/spack/repos/builtin/packages/py-pomegranate/package.py
+++ b/var/spack/repos/builtin/packages/py-pomegranate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPomegranate(PythonPackage):
"""Fast, flexible and easy to use probabilistic modelling in Python."""
homepage = "https://github.com/jmschrei/pomegranate"
- url = "https://pypi.io/packages/source/p/pomegranate/pomegranate-0.12.0.tar.gz"
+ pypi = "pomegranate/pomegranate-0.12.0.tar.gz"
version('0.12.0', sha256='8b00c88f7cf9cad8d38ea00ea5274821376fefb217a1128afe6b1fcac54c975a')
diff --git a/var/spack/repos/builtin/packages/py-pooch/package.py b/var/spack/repos/builtin/packages/py-pooch/package.py
new file mode 100644
index 0000000000..3bdb51c1b6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pooch/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyPooch(PythonPackage):
+ """Pooch manages your Python library's sample data files: it automatically
+ downloads and stores them in a local directory, with support for versioning
+ and corruption checks."""
+
+ homepage = "https://github.com/fatiando/pooch"
+ pypi = "pooch/pooch-1.3.0.tar.gz"
+
+ version('1.3.0', sha256='30d448e825904e2d763bbbe418831a788813c32f636b21c8d60ee5f474532898')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-packaging', type=('build', 'run'))
+ depends_on('py-appdirs', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-portalocker/package.py b/var/spack/repos/builtin/packages/py-portalocker/package.py
index f4aa514550..84f964b4a7 100644
--- a/var/spack/repos/builtin/packages/py-portalocker/package.py
+++ b/var/spack/repos/builtin/packages/py-portalocker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-portend/package.py b/var/spack/repos/builtin/packages/py-portend/package.py
index b039fb06aa..eb271ea4a6 100644
--- a/var/spack/repos/builtin/packages/py-portend/package.py
+++ b/var/spack/repos/builtin/packages/py-portend/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPortend(PythonPackage):
"""TCP port monitoring and discovery """
homepage = "https://github.com/jaraco/portend"
- url = "https://pypi.io/packages/source/p/portend/portend-2.5.tar.gz"
+ pypi = "portend/portend-2.5.tar.gz"
version(
'2.5', sha256='19dc27bfb3c72471bd30a235a4d5fbefef8a7e31cab367744b5d87a205e7bfd9')
diff --git a/var/spack/repos/builtin/packages/py-poster/package.py b/var/spack/repos/builtin/packages/py-poster/package.py
index a5fde5f22d..36b90fde28 100644
--- a/var/spack/repos/builtin/packages/py-poster/package.py
+++ b/var/spack/repos/builtin/packages/py-poster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyPoster(PythonPackage):
"""Streaming HTTP uploads and multipart/form-data encoding."""
- homepage = "https://pypi.org/project/poster/"
+ homepage = "https://atlee.ca/software/poster"
url = "https://atlee.ca/software/poster/dist/0.8.1/poster-0.8.1.tar.gz"
version('0.8.1', sha256='af5bf45da4a916db2b638cffd9e9d6668b33020e2b8ca9f864db79b49331c6ff')
diff --git a/var/spack/repos/builtin/packages/py-pot/175.patch b/var/spack/repos/builtin/packages/py-pot/175.patch
new file mode 100644
index 0000000000..1bc1c17ac2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pot/175.patch
@@ -0,0 +1,59 @@
+From a91d88847531e3d9b889881770db9dcbb4b41389 Mon Sep 17 00:00:00 2001
+From: "D.J. Sutherland" <djs@djsutherland.ml>
+Date: Wed, 13 May 2020 14:21:54 -0500
+Subject: [PATCH 1/2] only mangle CC/etc if on mac and not told not to
+
+---
+ setup.py | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 91c24d91..58c7da57 100755
+--- a/setup.py
++++ b/setup.py
+@@ -14,9 +14,6 @@
+ here = path.abspath(path.dirname(__file__))
+
+
+-os.environ["CC"] = "g++"
+-os.environ["CXX"] = "g++"
+-
+ # dirty but working
+ __version__ = re.search(
+ r'__version__\s*=\s*[\'"]([^\'"]*)[\'"]', # It excludes inline comment too
+@@ -39,7 +36,9 @@
+
+
+ # add platform dependant optional compilation argument
+-if sys.platform.startswith('darwin'):
++if sys.platform.startswith('darwin') and not os.environ.get('POT_LEAVE_CC', ''):
++ os.environ["CC"] = "g++"
++ os.environ["CXX"] = "g++"
+ opt_arg.append("-stdlib=libc++")
+ sdk_path = subprocess.check_output(['xcrun', '--show-sdk-path'])
+ os.environ['CFLAGS'] = '-isysroot "{}"'.format(sdk_path.rstrip().decode("utf-8"))
+
+From 8d9ad11abdd1a3d5d42c57592b2700e3592f7d77 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Flamary?= <remi.flamary@gmail.com>
+Date: Fri, 15 May 2020 08:36:58 +0200
+Subject: [PATCH 2/2] remove CC for macosx (test)
+
+---
+ setup.py | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index f5c82993..40d50dff 100755
+--- a/setup.py
++++ b/setup.py
+@@ -36,9 +36,7 @@
+
+
+ # add platform dependant optional compilation argument
+-if sys.platform.startswith('darwin') and not os.environ.get('POT_LEAVE_CC', ''):
+- os.environ["CC"] = "g++"
+- os.environ["CXX"] = "g++"
++if sys.platform.startswith('darwin'):
+ opt_arg.append("-stdlib=libc++")
+ sdk_path = subprocess.check_output(['xcrun', '--show-sdk-path'])
+ os.environ['CFLAGS'] = '-isysroot "{}"'.format(sdk_path.rstrip().decode("utf-8"))
diff --git a/var/spack/repos/builtin/packages/py-pot/package.py b/var/spack/repos/builtin/packages/py-pot/package.py
new file mode 100644
index 0000000000..a5cdf51da2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pot/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 PyPot(PythonPackage):
+ """
+ This open source Python library provide several solvers for optimization
+ problems related to Optimal Transport for signal, image processing and
+ machine learning.
+ """
+
+ homepage = "https://github.com/PythonOT/POT"
+ pypi = "POT/POT-0.7.0.tar.gz"
+
+ version('0.7.0', sha256='d4ac2bc8791f049a3166820d51e218d6c299885449b735eafef8d18c76d4ad06')
+
+ # Avoid that CC and CXX are overridden with g++ in setup.py.
+ patch('175.patch', when='@0.7.0')
+
+ depends_on('python@2.7:2.7.999,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ depends_on('py-numpy@1.16:', type=('build', 'run'))
+ depends_on('py-scipy@1.0:', type=('build', 'run'))
+ depends_on('py-cython@0.23:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pox/package.py b/var/spack/repos/builtin/packages/py-pox/package.py
index 5ab43df6b4..b9d1bcd628 100644
--- a/var/spack/repos/builtin/packages/py-pox/package.py
+++ b/var/spack/repos/builtin/packages/py-pox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,20 +10,22 @@ class PyPox(PythonPackage):
"""Utilities for filesystem exploration and automated builds."""
homepage = "https://github.com/uqfoundation/pox"
- url = "https://pypi.io/packages/source/p/pox/pox-0.2.5.tar.gz"
+ pypi = "pox/pox-0.2.5.tar.gz"
+ version('0.3.0', sha256='cb968350b186466bb4905a21084587ec3aa6fd7aa0ef55d416ee0d523e2abe31')
version('0.2.5', sha256='2b53fbdf02596240483dc2cb94f94cc21252ad1b1858c7b1c151afeec9022cc8')
version('0.2.3', sha256='d3e8167a1ebe08ae56262a0b9359118d90bc4648cd284b5d10ae240343100a75')
version('0.2.2', sha256='c0b88e59ef0e4f2fa4839e11bf90d2c32d6ceb5abaf01f0c8138f7558e6f87c1')
version('0.2.1', sha256='580bf731fee233c58eac0974011b5bf0698efb7337b0a1696d289043b4fcd7f4')
- depends_on('python@2.5:2.8,3.1:')
+ depends_on('python@2.5:2.8,3.1:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.6:', when='@0.3.0:', type=('build', 'run'))
depends_on('py-setuptools@0.6:', type='build')
def url_for_version(self, version):
url = "https://pypi.io/packages/source/p/pox/"
- if version >= Version('0.2.4'):
+ if Version('0.3.0') > version >= Version('0.2.4'):
url += 'pox-{0}.tar.gz'
else:
url += 'pox-{0}.zip'
diff --git a/var/spack/repos/builtin/packages/py-poyo/package.py b/var/spack/repos/builtin/packages/py-poyo/package.py
index a1be8b682f..5e21bf855d 100644
--- a/var/spack/repos/builtin/packages/py-poyo/package.py
+++ b/var/spack/repos/builtin/packages/py-poyo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-ppft/package.py b/var/spack/repos/builtin/packages/py-ppft/package.py
index 810d61c315..758280ed5c 100644
--- a/var/spack/repos/builtin/packages/py-ppft/package.py
+++ b/var/spack/repos/builtin/packages/py-ppft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,22 +10,25 @@ class PyPpft(PythonPackage):
"""Distributed and parallel python """
homepage = "https://github.com/uqfoundation/ppft"
- url = "https://pypi.io/packages/source/p/ppft/ppft-1.6.4.9.tar.gz"
+ pypi = "ppft/ppft-1.6.4.9.tar.gz"
+ version('1.6.6.4', sha256='473442cc6731856990bd25bd6b454bb98720007de4523a73c560bdd0060463d2')
version('1.6.4.9', sha256='5537b00afb7b247da0f59cc57ee5680178be61c8b2e21b5a0672b70a3d247791')
version('1.6.4.7.1', sha256='f94b26491b4a36adc975fc51dba7568089a24756007a3a4ef3414a98d7337651')
version('1.6.4.6', sha256='92d09061f5425634c43dbf99c5558f2cf2a2e1e351929f8da7e85f4649c11095')
version('1.6.4.5', sha256='d47da9d2e553848b75727ce7c510f9e149965d5c68f9fc56c774a7c6a3d18214')
- depends_on('python@2.5:2.8,3.1:')
+ depends_on('python@2.5:2.8,3.1:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.6:', when='@1.6.6.4:', type=('build', 'run'))
depends_on('py-setuptools@0.6:', type='build')
depends_on('py-six@1.7.3:', type=('build', 'run'))
depends_on('py-dill@0.2.6:', type=('build', 'run'))
+ depends_on('py-dill@0.3.4:', type=('build', 'run'), when='@1.6.6.4:')
def url_for_version(self, version):
url = "https://pypi.io/packages/source/p/ppft/"
- if version >= Version('1.6.4.8'):
+ if Version('1.6.6.4') > version >= Version('1.6.4.8'):
url += 'ppft-{0}.tar.gz'
else:
url += 'ppft-{0}.zip'
diff --git a/var/spack/repos/builtin/packages/py-pre-commit/package.py b/var/spack/repos/builtin/packages/py-pre-commit/package.py
index 5a6c381118..502f2adabd 100644
--- a/var/spack/repos/builtin/packages/py-pre-commit/package.py
+++ b/var/spack/repos/builtin/packages/py-pre-commit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPreCommit(PythonPackage):
hooks."""
homepage = "https://github.com/pre-commit/pre-commit"
- url = "https://pypi.io/packages/source/p/pre_commit/pre_commit-1.20.0.tar.gz"
+ pypi = "pre_commit/pre_commit-1.20.0.tar.gz"
version('1.20.0', sha256='9f152687127ec90642a2cc3e4d9e1e6240c4eb153615cb02aa1ad41d331cbb6e')
diff --git a/var/spack/repos/builtin/packages/py-preshed/package.py b/var/spack/repos/builtin/packages/py-preshed/package.py
index cb8cc2ed10..27c70ec90e 100644
--- a/var/spack/repos/builtin/packages/py-preshed/package.py
+++ b/var/spack/repos/builtin/packages/py-preshed/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,10 @@ class PyPreshed(PythonPackage):
"""preshed: Cython Hash Table for Pre-Hashed Keys."""
homepage = "https://github.com/explosion/preshed"
- url = "https://pypi.io/packages/source/p/preshed/preshed-3.0.2.tar.gz"
+ pypi = "preshed/preshed-3.0.2.tar.gz"
version('3.0.2', sha256='61d73468c97c1d6d5a048de0b01d5a6fd052123358aca4823cdb277e436436cb')
depends_on('py-setuptools', type='build')
depends_on('py-cymem@2.0.2:2.0.999', type=('build', 'run'))
depends_on('py-murmurhash@0.28:1.0', type=('build', 'run'))
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-pretrainedmodels/package.py b/var/spack/repos/builtin/packages/py-pretrainedmodels/package.py
new file mode 100644
index 0000000000..64171f11b9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pretrainedmodels/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyPretrainedmodels(PythonPackage):
+ """Pretrained models for Pytorch."""
+
+ homepage = "https://github.com/cadene/pretrained-models.pytorch"
+ pypi = "pretrainedmodels/pretrainedmodels-0.7.4.tar.gz"
+
+ version('0.7.4', sha256='7e77ead4619a3e11ab3c41982c8ad5b86edffe37c87fd2a37ec3c2cc6470b98a')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-torch', type=('build', 'run'))
+ depends_on('py-torchvision', type=('build', 'run'))
+ depends_on('py-munch', type=('build', 'run'))
+ depends_on('py-tqdm', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-prettytable/package.py b/var/spack/repos/builtin/packages/py-prettytable/package.py
index b2969b6e1f..cad349dc3e 100644
--- a/var/spack/repos/builtin/packages/py-prettytable/package.py
+++ b/var/spack/repos/builtin/packages/py-prettytable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyPrettytable(PythonPackage):
"""
homepage = "https://code.google.com/archive/p/prettytable/"
- url = "https://pypi.io/packages/source/p/prettytable/prettytable-0.7.2.tar.gz"
+ pypi = "prettytable/prettytable-0.7.2.tar.gz"
version('0.7.2', sha256='2d5460dc9db74a32bcc8f9f67de68b2c4f4d2f01fa3bd518764c69156d9cacd9')
diff --git a/var/spack/repos/builtin/packages/py-profilehooks/package.py b/var/spack/repos/builtin/packages/py-profilehooks/package.py
index 47b52a455c..af77a67391 100644
--- a/var/spack/repos/builtin/packages/py-profilehooks/package.py
+++ b/var/spack/repos/builtin/packages/py-profilehooks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyProfilehooks(PythonPackage):
"""Python decorators for profiling/tracing/timing a single function"""
homepage = "https://mg.pov.lt/profilehooks/"
- url = "https://pypi.io/packages/source/p/profilehooks/profilehooks-1.11.2.tar.gz"
+ pypi = "profilehooks/profilehooks-1.11.2.tar.gz"
git = "https://github.com/mgedmin/profilehooks.git"
diff --git a/var/spack/repos/builtin/packages/py-proglog/package.py b/var/spack/repos/builtin/packages/py-proglog/package.py
new file mode 100644
index 0000000000..6cf2ba4527
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-proglog/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyProglog(PythonPackage):
+ """Proglog is a progress logging system for Python. It
+ allows to build complex libraries while giving the user
+ control on the management of logs, callbacks and progress
+ bars."""
+
+ homepage = "https://pypi.org/project/proglog/"
+ pypi = "proglog/proglog-0.1.9.tar.gz"
+
+ version('0.1.9', sha256='d8c4ccbf2138e0c5e3f3fc0d80dc51d7e69dcfe8bfde4cacb566725092a5b18d')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-tqdm', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-progress/package.py b/var/spack/repos/builtin/packages/py-progress/package.py
index cff57e9f77..0e0be1a15c 100644
--- a/var/spack/repos/builtin/packages/py-progress/package.py
+++ b/var/spack/repos/builtin/packages/py-progress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyProgress(PythonPackage):
"""Easy progress reporting for Python"""
homepage = "https://github.com/verigak/progress/"
- url = "https://pypi.io/packages/source/p/progress/progress-1.4.tar.gz"
+ pypi = "progress/progress-1.4.tar.gz"
version('1.4', sha256='5e2f9da88ed8236a76fffbee3ceefd259589cf42dfbc2cec2877102189fae58a')
diff --git a/var/spack/repos/builtin/packages/py-progressbar2/package.py b/var/spack/repos/builtin/packages/py-progressbar2/package.py
index 196d303591..b64ab06dff 100644
--- a/var/spack/repos/builtin/packages/py-progressbar2/package.py
+++ b/var/spack/repos/builtin/packages/py-progressbar2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyProgressbar2(PythonPackage):
"""A progress bar for Python 2 and Python 3"""
homepage = "https://github.com/WoLpH/python-progressbar"
- url = "https://pypi.io/packages/source/p/progressbar2/progressbar2-3.50.1.tar.gz"
+ pypi = "progressbar2/progressbar2-3.50.1.tar.gz"
version('3.50.1', sha256='2c21c14482016162852c8265da03886c2b4dea6f84e5a817ad9b39f6bd82a772')
version('3.39.3', sha256='8e5b5419e04193bb7c3fea71579937bbbcd64c26472b929718c2fe7ec420fe39')
diff --git a/var/spack/repos/builtin/packages/py-projectq/package.py b/var/spack/repos/builtin/packages/py-projectq/package.py
index d22a51584f..90e40d6f6f 100644
--- a/var/spack/repos/builtin/packages/py-projectq/package.py
+++ b/var/spack/repos/builtin/packages/py-projectq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,11 +19,6 @@ class PyProjectq(PythonPackage):
homepage = "https://projectq.ch"
git = "https://github.com/projectq-framework/projectq.git"
- # Provided python modules
- import_modules = ['projectq', 'projectq.backends', 'projectq.cengines',
- 'projectq.libs', 'projectq.meta', 'projectq.ops',
- 'projectq.setups', 'projectq.types']
-
# Versions
version('develop', branch='develop')
version('0.3.6', commit='fa484fe037a3a1772127bbd00fe4628ddba34611')
@@ -33,7 +28,6 @@ class PyProjectq(PythonPackage):
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-scipy', type=('build', 'run'))
depends_on('py-future', type=('build', 'run'))
- depends_on('py-pytest@3.1.0:', type=('test'))
depends_on('py-requests', type=('build', 'run'))
# conflict with pybind11@2.2.0 -> see requirements.txt
depends_on('py-pybind11@1.7:2.1,2.2.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-prometheus-client/package.py b/var/spack/repos/builtin/packages/py-prometheus-client/package.py
index 86733359cf..9bd8df3a64 100644
--- a/var/spack/repos/builtin/packages/py-prometheus-client/package.py
+++ b/var/spack/repos/builtin/packages/py-prometheus-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPrometheusClient(PythonPackage):
"""Prometheus instrumentation library for Python applications."""
- homepage = "https://pypi.org/project/prometheus_client/"
- url = "https://pypi.io/packages/source/p/prometheus_client/prometheus_client-0.7.1.tar.gz"
+ pypi = "prometheus_client/prometheus_client-0.7.1.tar.gz"
version('0.7.1', sha256='71cd24a2b3eb335cb800c7159f423df1bd4dcd5171b234be15e3f31ec9f622da')
version('0.7.0', sha256='ee0c90350595e4a9f36591f291e6f9933246ea67d7cd7d1d6139a9781b14eaae')
@@ -20,3 +19,15 @@ class PyPrometheusClient(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('py-twisted', type=('build', 'run'), when='+twisted')
+
+ @property
+ def import_modules(self):
+ modules = [
+ 'prometheus_client', 'prometheus_client.openmetrics',
+ 'prometheus_client.bridge'
+ ]
+
+ if '+twisted' in self.spec:
+ modules.append('prometheus_client.twisted')
+
+ return modules
diff --git a/var/spack/repos/builtin/packages/py-promise/package.py b/var/spack/repos/builtin/packages/py-promise/package.py
new file mode 100644
index 0000000000..305079b86a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-promise/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyPromise(PythonPackage):
+ """This is a implementation of Promises in Python. It is a super set of
+ Promises/A+ designed to have readable, performant code and to provide
+ just the extensions that are absolutely necessary for
+ using promises in Python."""
+
+ homepage = "https://github.com/syrusakbary/promise"
+ pypi = "promise/promise-2.3.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('2.3', sha256='dfd18337c523ba4b6a58801c164c1904a9d4d1b1747c7d5dbf45b693a49d93d0')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-typing@3.6.4:', when='^python@:3.4.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py b/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py
index ea23b23181..863f5f51b7 100644
--- a/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py
+++ b/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,14 +9,33 @@ from spack import *
class PyPromptToolkit(PythonPackage):
"""Library for building powerful interactive command lines in Python"""
- homepage = "https://pypi.python.org/pypi/prompt_toolkit"
- url = "https://pypi.io/packages/source/p/prompt_toolkit/prompt_toolkit-1.0.9.tar.gz"
+ pypi = "prompt_toolkit/prompt_toolkit-1.0.9.tar.gz"
+ # 'prompt_toolkit.contrib.ssh' requires 'asyncssh', but 'asyncssh' isn't listed as a
+ # dependency. Leave out of 'import_modules' to avoid unnecessary dependency.
+ import_modules = [
+ 'prompt_toolkit', 'prompt_toolkit.filters', 'prompt_toolkit.lexers',
+ 'prompt_toolkit.input', 'prompt_toolkit.layout', 'prompt_toolkit.output',
+ 'prompt_toolkit.completion', 'prompt_toolkit.contrib',
+ 'prompt_toolkit.contrib.completers', 'prompt_toolkit.contrib.regular_languages',
+ 'prompt_toolkit.contrib.telnet', 'prompt_toolkit.key_binding',
+ 'prompt_toolkit.key_binding.bindings', 'prompt_toolkit.styles',
+ 'prompt_toolkit.shortcuts', 'prompt_toolkit.shortcuts.progress_bar',
+ 'prompt_toolkit.formatted_text', 'prompt_toolkit.eventloop',
+ 'prompt_toolkit.application', 'prompt_toolkit.widgets',
+ 'prompt_toolkit.clipboard'
+ ]
+
+ version('3.0.17', sha256='9397a7162cf45449147ad6042fa37983a081b8a73363a5253dd4072666333137')
+ version('3.0.16', sha256='0fa02fa80363844a4ab4b8d6891f62dd0645ba672723130423ca4037b80c1974')
version('3.0.7', sha256='822f4605f28f7d2ba6b0b09a31e25e140871e96364d1d377667b547bb3bf4489')
+ version('2.0.10', sha256='f15af68f66e664eaa559d4ac8a928111eebd5feda0c11738b5998045224829db')
version('2.0.9', sha256='2519ad1d8038fd5fc8e770362237ad0364d16a7650fb5724af6997ed5515e3c1')
version('1.0.16', sha256='c1cedd626e08b8ee830ee65897de754113ff3f3035880030c08b01674d85c5b4')
version('1.0.9', sha256='cd6523b36adc174cc10d54b1193eb626b4268609ff6ea92c15bcf1996609599c')
+ depends_on('python@3.6.1:', when='@3:', type=('build', 'run'))
+ depends_on('python@2.6:2.8,3.3:', when='@:2.999', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-six@1.9.0:', type=('build', 'run'))
+ depends_on('py-six@1.9.0:', when='@:2.999', type=('build', 'run'))
depends_on('py-wcwidth', 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 4876832dcf..bacad6f018 100644
--- a/var/spack/repos/builtin/packages/py-protobuf/package.py
+++ b/var/spack/repos/builtin/packages/py-protobuf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,11 +15,21 @@ class PyProtobuf(PythonPackage):
and using a variety of languages."""
homepage = 'https://developers.google.com/protocol-buffers/'
- url = 'https://pypi.io/packages/source/p/protobuf/protobuf-3.11.0.tar.gz'
+ pypi = 'protobuf/protobuf-3.11.0.tar.gz'
variant('cpp', default=False,
description='Enable the cpp implementation')
+ version('3.17.3', sha256='72804ea5eaa9c22a090d2803813e280fb273b62d5ae497aaf3553d141c4fdd7b')
+ version('3.17.2', sha256='5a3450acf046716e4a4f02a3f7adfb7b86f1b5b3ae392cec759915e79538d40d')
+ version('3.17.1', sha256='25bc4f1c23aced9b3a9e70eef7f03e63bcbd6cfbd881a91b5688412dce8992e1')
+ version('3.17.0', sha256='05dfe9319939a8473c21b469f34f6486646e54fb8542637cf7ed8e2fbfe21538')
+ version('3.16.0', sha256='228eecbedd46d75010f1e0f8ce34dbcd11ae5a40c165a9fc9d330a58aa302818')
+ version('3.15.8', sha256='0277f62b1e42210cafe79a71628c1d553348da81cbd553402a7f7549c50b11d0')
+ version('3.15.7', sha256='2d03fc2591543cd2456d0b72230b50c4519546a8d379ac6fd3ecd84c6df61e5d')
+ version('3.15.6', sha256='2b974519a2ae83aa1e31cff9018c70bbe0e303a46a598f982943c49ae1d4fcd3')
+ version('3.15.5', sha256='be8a929c6178bb6cbe9e2c858be62fa08966a39ae758a8493a88f0ed1efb6097')
+ version('3.15.1', sha256='824dbae3390fcc3ea1bf96748e6da951a601802894cf7e1465e72b4732538cab')
version('3.12.2', sha256='49ef8ab4c27812a89a76fa894fe7a08f42f2147078392c0dee51d4a444ef6df5')
version('3.11.2', sha256='3d7a7d8d20b4e7a8f63f62de2d192cfd8b7a53c56caba7ece95367ca2b80c574')
version('3.11.1', sha256='aecdf12ef6dc7fd91713a6da93a86c2f2a8fe54840a3b1670853a2b7402e77c9')
@@ -35,7 +45,8 @@ class PyProtobuf(PythonPackage):
version('3.4.0', sha256='ef02609ef445987976a3a26bff77119c518e0915c96661c3a3b17856d0ef6374')
version('3.3.0', sha256='1cbcee2c45773f57cb6de7ee0eceb97f92b9b69c0178305509b162c0160c1f04')
version('3.1.0', sha256='0bc10bfd00a9614fae58c86c21fbcf339790e48accf6d45f098034de985f5405',
- url='https://github.com/protocolbuffers/protobuf/releases/download/v3.1.0/protobuf-python-3.1.0.tar.gz')
+ url='https://github.com/protocolbuffers/protobuf/releases/download/v3.1.0/protobuf-python-3.1.0.tar.gz',
+ deprecated=True)
version('3.0.0', sha256='ecc40bc30f1183b418fe0ec0c90bc3b53fa1707c4205ee278c6b90479e5b6ff5')
version('3.0.0b2', sha256='d5b560bbc4b7d97cc2455c05cad9299d9db02d7bd11193b05684e3a86303c229')
version('3.0.0a3', sha256='b61622de5048415bfd3f2d812ad64606438ac9e25009ae84191405fe58e522c1')
@@ -58,6 +69,11 @@ class PyProtobuf(PythonPackage):
return '.'
@when('+cpp')
+ def setup_build_environment(self, env):
+ protobuf_dir = self.spec['protobuf'].libs.directories[0]
+ env.prepend_path('LIBRARY_PATH', protobuf_dir)
+
+ @when('+cpp')
def build_args(self, spec, prefix):
return ['--cpp_implementation']
diff --git a/var/spack/repos/builtin/packages/py-prov/package.py b/var/spack/repos/builtin/packages/py-prov/package.py
new file mode 100644
index 0000000000..983a2b0b21
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-prov/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyProv(PythonPackage):
+ """A Python library for W3C Provenance Data Model (PROV).
+
+ A library for W3C Provenance Data Model supporting PROV-JSON, PROV-XML and
+ PROV-O (RDF)
+ """
+
+ homepage = "prov.readthedocs.io/"
+ pypi = "prov/prov-2.0.0.tar.gz"
+
+ version('2.0.0', sha256='b6438f2195ecb9f6e8279b58971e02bc51814599b5d5383366eef91d867422ee')
+
+ variant('dot', default=False, description='Graphical visualisation support for prov.model')
+
+ depends_on('python@3.6:3.999', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ depends_on('py-lxml@3.3.5:', type=('build', 'run'))
+ depends_on('py-networkx@2.0:', type=('build', 'run'))
+ depends_on('py-python-dateutil@2.2:', type=('build', 'run'))
+ depends_on('py-rdflib@4.2.1:', type=('build', 'run'))
+ depends_on('py-pydot@1.2.0:', when='+dot', type=('build', 'run'))
+ depends_on('graphviz', when='+dot', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-psutil/package.py b/var/spack/repos/builtin/packages/py-psutil/package.py
index ba64a0e0eb..3ec037ddbf 100644
--- a/var/spack/repos/builtin/packages/py-psutil/package.py
+++ b/var/spack/repos/builtin/packages/py-psutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,9 @@ class PyPsutil(PythonPackage):
running processes and system utilization (CPU, memory, disks, network)
in Python."""
- homepage = "https://pypi.python.org/pypi/psutil"
- url = "https://pypi.io/packages/source/p/psutil/psutil-5.6.3.tar.gz"
+ pypi = "psutil/psutil-5.6.3.tar.gz"
+ version('5.8.0', sha256='0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6')
version('5.7.2', sha256='90990af1c3c67195c44c9a889184f84f5b2320dce3ee3acbd054e3ba0b4a7beb')
version('5.6.3', sha256='863a85c1c0a5103a12c05a35e59d336e1d665747e531256e061213e2e90f63f3')
version('5.6.2', sha256='828e1c3ca6756c54ac00f1427fdac8b12e21b8a068c3bb9b631a1734cada25ed')
@@ -23,6 +23,3 @@ class PyPsutil(PythonPackage):
depends_on('python@2.6:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-unittest2', when='^python@:2.6', type='test')
- depends_on('py-mock', when='^python@:2.7', type='test')
- depends_on('py-ipaddress', when='^python@:3.2', type='test')
diff --git a/var/spack/repos/builtin/packages/py-psyclone/package.py b/var/spack/repos/builtin/packages/py-psyclone/package.py
index 0a1510677c..c3c6d766ca 100644
--- a/var/spack/repos/builtin/packages/py-psyclone/package.py
+++ b/var/spack/repos/builtin/packages/py-psyclone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-psycopg2/package.py b/var/spack/repos/builtin/packages/py-psycopg2/package.py
index ff478455fb..24bad042a5 100644
--- a/var/spack/repos/builtin/packages/py-psycopg2/package.py
+++ b/var/spack/repos/builtin/packages/py-psycopg2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,17 @@ from spack import *
class PyPsycopg2(PythonPackage):
"""Python interface to PostgreSQL databases"""
- homepage = "http://initd.org/psycopg/"
- url = "http://initd.org/psycopg/tarballs/PSYCOPG-2-7/psycopg2-2.7.5.tar.gz"
+ homepage = "https://psycopg.org/"
+ pypi = "psycopg2/psycopg2-2.8.6.tar.gz"
+ version('2.9.1', sha256='de5303a6f1d0a7a34b9d40e4d3bef684ccc44a49bbe3eb85e3c0bffb4a131b7c')
version('2.8.6', sha256='fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543')
version('2.7.5', sha256='eccf962d41ca46e6326b97c8fe0a6687b58dfc1a5f6540ed071ff1474cea749e')
- depends_on('python@2.7:2.8,3.4:3.8', type=('build', 'run'), when='@2.8:')
- depends_on('python@2.6:2.8,3.2:3.7', type=('build', 'run'), when='@2.7')
+ # https://www.psycopg.org/docs/install.html#prerequisites
+ depends_on('python@3.6:3.9', type=('build', 'link', 'run'), when='@2.9:')
+ depends_on('python@2.7:2.8,3.4:3.8', type=('build', 'link', 'run'), when='@2.8')
+ depends_on('python@2.6:2.8,3.2:3.7', type=('build', 'link', 'run'), when='@:2.7')
depends_on('py-setuptools', type='build')
- depends_on('postgresql', type=('build', 'run'))
+ depends_on('postgresql@9.1:13', type=('build', 'link', 'run'), when='@2.9:')
+ depends_on('postgresql@9.1:12', type=('build', 'link', 'run'), when='@:2.8')
diff --git a/var/spack/repos/builtin/packages/py-ptyprocess/package.py b/var/spack/repos/builtin/packages/py-ptyprocess/package.py
index 2e8c3cd5c6..7fa5f0bbb0 100644
--- a/var/spack/repos/builtin/packages/py-ptyprocess/package.py
+++ b/var/spack/repos/builtin/packages/py-ptyprocess/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPtyprocess(PythonPackage):
"""Run a subprocess in a pseudo terminal"""
- homepage = "https://pypi.python.org/pypi/ptyprocess"
- url = "https://pypi.io/packages/source/p/ptyprocess/ptyprocess-0.5.1.tar.gz"
+ pypi = "ptyprocess/ptyprocess-0.5.1.tar.gz"
version('0.6.0', sha256='923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0')
version('0.5.1', sha256='0530ce63a9295bfae7bd06edc02b6aa935619f486f0f1dc0972f516265ee81a6')
diff --git a/var/spack/repos/builtin/packages/py-pudb/package.py b/var/spack/repos/builtin/packages/py-pudb/package.py
index 4d7b43b7f0..67ef2faf64 100644
--- a/var/spack/repos/builtin/packages/py-pudb/package.py
+++ b/var/spack/repos/builtin/packages/py-pudb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ from spack import *
class PyPudb(PythonPackage):
"""Full-screen console debugger for Python"""
- homepage = "http://mathema.tician.de/software/pudb"
- url = "https://pypi.io/packages/source/p/pudb/pudb-2017.1.1.tar.gz"
+ homepage = "https://mathema.tician.de/software/pudb"
+ pypi = "pudb/pudb-2017.1.1.tar.gz"
version('2017.1.1', sha256='87117640902c5f602c8517d0167eb5c953a5bdede97975ba29ff17e3d570442c')
version('2016.2', sha256='e958d7f7b1771cf297714e95054075df3b2a47455d7a740be4abbbd41289505a')
diff --git a/var/spack/repos/builtin/packages/py-pure-eval/package.py b/var/spack/repos/builtin/packages/py-pure-eval/package.py
index 9fcf6b0746..40d9d9315a 100644
--- a/var/spack/repos/builtin/packages/py-pure-eval/package.py
+++ b/var/spack/repos/builtin/packages/py-pure-eval/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pure-sasl/package.py b/var/spack/repos/builtin/packages/py-pure-sasl/package.py
index 81149d3889..5e9e270ca0 100644
--- a/var/spack/repos/builtin/packages/py-pure-sasl/package.py
+++ b/var/spack/repos/builtin/packages/py-pure-sasl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyPureSasl(PythonPackage):
but by default, support for PLAIN, ANONYMOUS, EXTERNAL, CRAM-MD5,
DIGEST-MD5, and GSSAPI are provided."""
- homepage = "http://github.com/thobbs/pure-sasl"
- url = "https://pypi.io/packages/source/p/pure-sasl/pure-sasl-0.6.2.tar.gz"
+ homepage = "https://github.com/thobbs/pure-sasl"
+ pypi = "pure-sasl/pure-sasl-0.6.2.tar.gz"
version('0.6.2', sha256='53c1355f5da95e2b85b2cc9a6af435518edc20c81193faa0eea65fdc835138f4')
diff --git a/var/spack/repos/builtin/packages/py-py-cpuinfo/package.py b/var/spack/repos/builtin/packages/py-py-cpuinfo/package.py
index 9e56235f18..a00121add2 100644
--- a/var/spack/repos/builtin/packages/py-py-cpuinfo/package.py
+++ b/var/spack/repos/builtin/packages/py-py-cpuinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,10 @@ class PyPyCpuinfo(PythonPackage):
"""Get CPU info with pure Python 2 & 3"""
homepage = "https://github.com/workhorsy/py-cpuinfo"
- url = "https://pypi.io/packages/source/p/py-cpuinfo/py-cpuinfo-0.2.3.tar.gz"
+ pypi = "py-cpuinfo/py-cpuinfo-0.2.3.tar.gz"
+ version('8.0.0', sha256='5f269be0e08e33fd959de96b34cd4aeeeacac014dd8305f70eb28d06de2345c5')
+ version('6.0.0', sha256='7ffb31dea845b9f359b99bd5f7eea72dc70f852e0e34547d261a630f2b8c9c61')
version('0.2.3', sha256='f6a016fdbc4e7fadf2d519090fcb4fa9d0831bad4e85245d938e5c2fe7623ca6')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-py-spy/package.py b/var/spack/repos/builtin/packages/py-py-spy/package.py
index 63cd99dfe3..1e8bc72754 100644
--- a/var/spack/repos/builtin/packages/py-py-spy/package.py
+++ b/var/spack/repos/builtin/packages/py-py-spy/package.py
@@ -1,19 +1,26 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 PyPySpy(PythonPackage):
+
+class PyPySpy(Package):
"""A Sampling Profiler for Python."""
homepage = "https://github.com/benfred/py-spy"
- url = "https://github.com/benfred/py-spy/archive/v0.3.3.tar.gz"
+ url = "https://github.com/benfred/py-spy/archive/v0.3.8.tar.gz"
+ version('0.3.8', sha256='9dbfd0ea79ef31a2966891e86cf6238ed3831938cf562e71848e07b7009cf57d')
version('0.3.3', sha256='41454d3d9132da45c72f7574faaff65f40c757720293a277ffa5ec5a4b44f902')
- depends_on('py-setuptools', type='build')
# TODO: uses cargo to download and build dozens of dependencies.
# Need to figure out how to manage these with Spack once we have a
# CargoPackage base class.
depends_on('rust', type='build')
+ depends_on('unwind')
+
+ def install(self, spec, prefix):
+ cargo = which('cargo')
+ cargo('install', '--root', prefix, '--path', '.')
diff --git a/var/spack/repos/builtin/packages/py-py/package.py b/var/spack/repos/builtin/packages/py-py/package.py
index 995612d20a..aa7ff323a5 100644
--- a/var/spack/repos/builtin/packages/py-py/package.py
+++ b/var/spack/repos/builtin/packages/py-py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,14 +9,11 @@ from spack import *
class PyPy(PythonPackage):
"""Library with cross-python path, ini-parsing, io, code, log facilities"""
- homepage = "http://pylib.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/p/py/py-1.8.0.tar.gz"
-
- import_modules = [
- 'py', 'py._process', 'py._vendored_packages', 'py._path',
- 'py._log', 'py._code', 'py._io'
- ]
+ homepage = "https://pylib.readthedocs.io/en/latest/"
+ pypi = "py/py-1.8.0.tar.gz"
+ version('1.9.0', sha256='9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342')
+ version('1.8.2', sha256='f3b3a4c36512a4c4f024041ab51866f11761cc169670204b235f6b20523d4e6b')
version('1.8.0', sha256='dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53')
version('1.5.4', sha256='3fd59af7435864e1a243790d322d763925431213b6b8529c6ca71081ace3bbf7')
version('1.5.3', sha256='29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881')
@@ -27,7 +24,3 @@ class PyPy(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('py-setuptools-scm', type='build')
-
- def build_test(self):
- # Tests require pytest, creating a circular dependency
- pass
diff --git a/var/spack/repos/builtin/packages/py-py2bit/package.py b/var/spack/repos/builtin/packages/py-py2bit/package.py
index 7df420e00d..4ec515541a 100644
--- a/var/spack/repos/builtin/packages/py-py2bit/package.py
+++ b/var/spack/repos/builtin/packages/py-py2bit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPy2bit(PythonPackage):
"""A package for accessing 2bit files using lib2bit."""
- homepage = "https://pypi.python.org/pypi/py2bit"
- url = "https://pypi.io/packages/source/p/py2bit/py2bit-0.2.1.tar.gz"
+ pypi = "py2bit/py2bit-0.2.1.tar.gz"
version('0.2.1', sha256='34f7ac22be0eb4b5493063826bcc2016a78eb216bb7130890b50f3572926aeb1')
diff --git a/var/spack/repos/builtin/packages/py-py2cairo/package.py b/var/spack/repos/builtin/packages/py-py2cairo/package.py
index 5c492a9167..82d413398e 100644
--- a/var/spack/repos/builtin/packages/py-py2cairo/package.py
+++ b/var/spack/repos/builtin/packages/py-py2cairo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,6 +23,8 @@ class PyPy2cairo(WafPackage):
depends_on('py-pytest', type='test')
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
def install_test(self):
with working_dir('test'):
pytest = which('py.test')
diff --git a/var/spack/repos/builtin/packages/py-py2neo/package.py b/var/spack/repos/builtin/packages/py-py2neo/package.py
index 69e98d7b0b..896a6f52e4 100644
--- a/var/spack/repos/builtin/packages/py-py2neo/package.py
+++ b/var/spack/repos/builtin/packages/py-py2neo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyPy2neo(PythonPackage):
"""Py2neo is a client library and toolkit for working with Neo4j from
within Python applications and from the command line."""
- homepage = "http://py2neo.org/"
- url = "https://pypi.io/packages/source/p/py2neo/py2neo-2.0.8.tar.gz"
+ homepage = "https://py2neo.org/"
+ pypi = "py2neo/py2neo-2.0.8.tar.gz"
version('4.3.0', sha256='a218ccb4b636e3850faa6b74ebad80f00600217172a57f745cf223d38a219222')
version('2.0.8', sha256='06167f5a91a0d9b9b73431baacd876f2d507650a681fdce1fcf3b383a9b991c1')
diff --git a/var/spack/repos/builtin/packages/py-py4j/package.py b/var/spack/repos/builtin/packages/py-py4j/package.py
index e67f5a3ec7..8260ad5648 100644
--- a/var/spack/repos/builtin/packages/py-py4j/package.py
+++ b/var/spack/repos/builtin/packages/py-py4j/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,12 +11,14 @@ class PyPy4j(PythonPackage):
objects."""
homepage = "https://www.py4j.org/"
- url = "https://pypi.io/packages/source/p/py4j/py4j-0.10.4.zip"
+ pypi = "py4j/py4j-0.10.4.zip"
+ version('0.10.9',
+ url='https://files.pythonhosted.org/packages/10/ed/9dad8808c34bc5b0b1a44b13c0bddeea0c8df59956eb20ac2fecc373f322/py4j-0.10.9.tar.gz',
+ sha256='36ec57f43ff8ced260a18aa9a4e46c3500a730cac8860e259cbaa546c2b9db2f')
version('0.10.7', sha256='721189616b3a7d28212dfb2e7c6a1dd5147b03105f1fc37ff2432acd0e863fa5')
version('0.10.6', sha256='d3e7ac7c2171c290eba87e70aa5095b7eb6d6ad34789c007c88d550d9f575083')
version('0.10.4', sha256='406fbfdbcbbb398739f61fafd25724670a405a668eb08c1721d832eadce06aae')
version('0.10.3', sha256='f4570108ad014dd52a65c2288418e31cb8227b5ecc39ad7fc7fe98314f7a26f2')
depends_on('py-setuptools', type='build')
- depends_on('py-nose@1.3.7:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-py6s/package.py b/var/spack/repos/builtin/packages/py-py6s/package.py
index 4afd65d000..6a99032bd8 100644
--- a/var/spack/repos/builtin/packages/py-py6s/package.py
+++ b/var/spack/repos/builtin/packages/py-py6s/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class PyPy6s(PythonPackage):
an easily processable form.
"""
- homepage = "http://py6s.rtwilson.com/"
- url = "https://pypi.io/packages/source/p/py6s/Py6S-1.8.0.tar.gz"
+ homepage = "https://py6s.rtwilson.com/"
+ pypi = "py6s/Py6S-1.8.0.tar.gz"
version('1.8.0', sha256='256162d2f1f558e601d4f79022c037a0051838ba307b9f4d1f5fcf0b46a0c277')
diff --git a/var/spack/repos/builtin/packages/py-pyaestro/package.py b/var/spack/repos/builtin/packages/py-pyaestro/package.py
new file mode 100644
index 0000000000..7c2858ed58
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyaestro/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyPyaestro(PythonPackage):
+ """A collection of data classes, data structures, and other utility classes
+ that are aimed for use in workflow """
+
+ homepage = "https://github.com/FrankD412/pyaestro"
+ pypi = "pyaestro/pyaestro-0.0.1a2.tar.gz"
+ git = "https://github.com/FrankD412/pyaestro"
+
+ maintainers = ['FrankD412']
+
+ # git branches
+ version('main', branch='main')
+ version('0.0.1a2', sha256='1f6a5068ff8dd9fe4838aba43850e51a5b622f379819ae62103617bf9c8aaa31')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-coloredlogs', type=('build', 'run'))
+ depends_on('py-psutil', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pyamg/package.py b/var/spack/repos/builtin/packages/py-pyamg/package.py
new file mode 100644
index 0000000000..24e0d7732c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyamg/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyPyamg(PythonPackage):
+ """PyAMG is a library of Algebraic Multigrid (AMG) solvers with
+ a convenient Python interface."""
+
+ homepage = "https://github.com/pyamg/pyamg"
+ url = "https://github.com/pyamg/pyamg/archive/v4.0.0.zip"
+
+ # A list of GitHub accounts to notify when the package is updated.
+ maintainers = ['benc303']
+
+ version('4.0.0', sha256="015d5e706e6e54d3de82e05fdb173c30d8b27cb8a117ab584cd62ad41d9ea042")
+
+ # Dependencies. A generic python dependency is added implicity by the
+ # PythonPackage class.
+ depends_on("py-setuptools", type="build")
+ depends_on("py-numpy", type=("build", "run"))
+ depends_on("py-scipy", type=("build", "run"))
diff --git a/var/spack/repos/builtin/packages/py-pyani/package.py b/var/spack/repos/builtin/packages/py-pyani/package.py
index afa5fdf640..e417b5519a 100644
--- a/var/spack/repos/builtin/packages/py-pyani/package.py
+++ b/var/spack/repos/builtin/packages/py-pyani/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class PyPyani(PythonPackage):
available, it takes advantage of multicore systems, and can integrate
with SGE/OGE-type job schedulers for the sequence comparisons."""
- homepage = "http://widdowquinn.github.io/pyani"
- url = "https://pypi.io/packages/source/p/pyani/pyani-0.2.7.tar.gz"
+ homepage = "https://widdowquinn.github.io/pyani"
+ pypi = "pyani/pyani-0.2.7.tar.gz"
version('0.2.7', sha256='dbc6c71c46fbbfeced3f8237b84474221268b51170caf044bec8559987a7deb9')
version('0.2.6', sha256='e9d899bccfefaabe7bfa17d48eef9c713d321d2d15465f7328c8984807c3dd8d')
diff --git a/var/spack/repos/builtin/packages/py-pyarrow/for_aarch64.patch b/var/spack/repos/builtin/packages/py-pyarrow/for_aarch64.patch
new file mode 100644
index 0000000000..b269aa09a6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyarrow/for_aarch64.patch
@@ -0,0 +1,14 @@
+--- spack-src/CMakeLists.txt.bak 2020-05-14 19:42:00.000000000 +0900
++++ spack-src/CMakeLists.txt 2020-12-11 14:02:52.645857641 +0900
+@@ -97,6 +97,11 @@
+ # Cython generated code emits way to many warnings at CHECKIN and EVERYTHING
+ set(BUILD_WARNING_LEVEL "PRODUCTION")
+
++# This must be synchronized with the definition in
++# cmake_modules/DefineOptions.cmake.
++set(ARROW_ARMV8_ARCH
++ "armv8-a"
++ CACHE STRING "Arm64 arch and extensions: armv8-a, armv8-a or armv8-a+crc+crypto")
+ include(SetupCxxFlags)
+
+ # Add common flags
diff --git a/var/spack/repos/builtin/packages/py-pyarrow/package.py b/var/spack/repos/builtin/packages/py-pyarrow/package.py
index 8e4514b8f3..a3852da42f 100644
--- a/var/spack/repos/builtin/packages/py-pyarrow/package.py
+++ b/var/spack/repos/builtin/packages/py-pyarrow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,10 @@ class PyPyarrow(PythonPackage, CudaPackage):
"""
homepage = "https://arrow.apache.org"
- url = 'https://pypi.io/packages/source/p/pyarrow/pyarrow-0.17.1.tar.gz'
+ pypi = 'pyarrow/pyarrow-0.17.1.tar.gz'
+ version('4.0.1', sha256='11517f0b4f4acbab0c37c674b4d1aad3c3dfea0f6b1bb322e921555258101ab3')
+ version('3.0.0', sha256='4bf8cc43e1db1e0517466209ee8e8f459d9b5e1b4074863317f2a965cf59889e')
version('0.17.1', sha256='278d11800c2e0f9bea6314ef718b2368b4046ba24b6c631c14edad5a1d351e49')
version('0.15.1', sha256='7ad074690ba38313067bf3bbda1258966d38e2037c035d08b9ffe3cce07747a5')
version('0.12.1', sha256='10db6e486c918c3af999d0114a22d92770687e3a6607ea3f14e6748854824c2a')
@@ -27,21 +29,18 @@ class PyPyarrow(PythonPackage, CudaPackage):
depends_on('cmake@3.0.0:', type='build')
depends_on('pkgconfig', type='build')
depends_on('python@3.5:', type=('build', 'run'), when='@0.17:')
+ depends_on('python@3.6:', type=('build', 'run'), when='@3.0.0:')
depends_on('py-setuptools', type='build')
depends_on('py-setuptools-scm', type='build', when='@0.15.0:')
depends_on('py-cython', type='build')
depends_on('py-cython@0.29:', type='build', when='@0.15.0:')
- depends_on('py-pytest-runner', type='test', when='@0.17:')
- depends_on('py-pytest', type='test', when='@0.15.0:')
- depends_on('py-pandas', type='test', when='@0.15.0:')
- depends_on('py-hypothesis', type='test', when='@0.15.0:')
- depends_on('py-pathlib2', type='test', when='@0.15.0: ^python@:3.3.99')
depends_on('py-numpy@1.14:', type=('build', 'run'), when='@0.15.0:')
- depends_on('py-six@1.0.0:', type=('build', 'run'), when='@0.15.0:')
+ depends_on('py-numpy@1.16.6:', type=('build', 'run'), when='@3.0.0:')
+ depends_on('py-six@1.0.0:', type=('build', 'run'), when='@0.15.0')
depends_on('py-futures', type=('build', 'run'), when='@0.15.0:^python@:3.1.99')
depends_on('py-enum34@1.1.6:', type=('build', 'run'), when='@0.15.0:^python@:3.3.99')
- for v in ('@0.9.0', '@0.11.0', '@0.12.1', '@0.15.1', '@0.17.1'):
+ for v in ('@0.9.0', '@0.11.0', '@0.12.1', '@0.15.1', '@0.17.1', '@3.0.0', '@4.0.1'):
depends_on('arrow+python' + v, when=v)
depends_on('arrow+parquet+python' + v, when='+parquet' + v)
depends_on('arrow+cuda' + v, when='+cuda' + v)
@@ -49,6 +48,8 @@ class PyPyarrow(PythonPackage, CudaPackage):
phases = ['build_ext', 'install']
+ patch('for_aarch64.patch', when='target=aarch64:')
+
def build_ext_args(self, spec, prefix):
args = []
if spec.satisfies('+parquet'):
diff --git a/var/spack/repos/builtin/packages/py-pyasn1-modules/package.py b/var/spack/repos/builtin/packages/py-pyasn1-modules/package.py
index 649d0e367e..e1d4fa7c96 100644
--- a/var/spack/repos/builtin/packages/py-pyasn1-modules/package.py
+++ b/var/spack/repos/builtin/packages/py-pyasn1-modules/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPyasn1Modules(PythonPackage):
structures (X.509, PKCS etc.)."""
homepage = "https://github.com/etingof/pyasn1-modules"
- url = "https://pypi.io/packages/source/p/pyasn1-modules/pyasn1-modules-0.2.6.tar.gz"
+ pypi = "pyasn1-modules/pyasn1-modules-0.2.6.tar.gz"
version('0.2.6', sha256='43c17a83c155229839cc5c6b868e8d0c6041dba149789b6d6e28801c64821722')
version('0.2.5', sha256='ef721f68f7951fab9b0404d42590f479e30d9005daccb1699b0a51bb4177db96')
diff --git a/var/spack/repos/builtin/packages/py-pyasn1/package.py b/var/spack/repos/builtin/packages/py-pyasn1/package.py
index ea95f32844..7b982c014d 100644
--- a/var/spack/repos/builtin/packages/py-pyasn1/package.py
+++ b/var/spack/repos/builtin/packages/py-pyasn1/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPyasn1(PythonPackage):
(X.208)."""
homepage = "https://github.com/etingof/pyasn1"
- url = "https://pypi.io/packages/source/p/pyasn1/pyasn1-0.4.6.tar.gz"
+ pypi = "pyasn1/pyasn1-0.4.6.tar.gz"
version('0.4.6', sha256='b773d5c9196ffbc3a1e13bdf909d446cad80a039aa3340bcad72f395b76ebc86')
version('0.4.5', sha256='da2420fe13a9452d8ae97a0e478adde1dee153b11ba832a95b223a2ba01c10f7')
diff --git a/var/spack/repos/builtin/packages/py-pyautogui/package.py b/var/spack/repos/builtin/packages/py-pyautogui/package.py
new file mode 100644
index 0000000000..619171d061
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyautogui/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 PyPyautogui(PythonPackage):
+ """PyAutoGUI lets your Python scripts control the mouse and
+ keyboard to automate interactions with other
+ applications."""
+
+ homepage = "https://pyautogui.readthedocs.io/en/latest/"
+ pypi = "PyAutoGUI/PyAutoGUI-0.9.52.tar.gz"
+
+ version('0.9.52', sha256='a486cb6b818bcbcdf98b48d010c7cee964134fa394b756e8ce6e50d43b58ecc8')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pymsgbox', type=('build', 'run'))
+ depends_on('py-pytweening@1.0.1:', type=('build', 'run'))
+ depends_on('py-pyscreeze@0.1.21:', type=('build', 'run'))
+ depends_on('py-pygetwindow@0.0.5:', type=('build', 'run'))
+ depends_on('py-mouseinfo', type=('build', 'run'))
+
+ depends_on('py-python3-xlib', when='^python@3: platform=linux', type=('build', 'run'))
+ depends_on('py-python-xlib', when='^python@:2.999 platform=linux', type=('build', 'run'))
+
+ # Missing packages; commented out for now
+ # depends_on('py-pyobjc-core', when='platform=darwin', type=('build', 'run'))
+ # depends_on('py-pyobjc', when='platform=darwin', type=('build', 'run'))
+ conflicts('platform=darwin')
diff --git a/var/spack/repos/builtin/packages/py-pybedtools/package.py b/var/spack/repos/builtin/packages/py-pybedtools/package.py
index fc8e0fe7c7..02c76b11ca 100644
--- a/var/spack/repos/builtin/packages/py-pybedtools/package.py
+++ b/var/spack/repos/builtin/packages/py-pybedtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,15 +9,27 @@ from spack import *
class PyPybedtools(PythonPackage):
"""Python wrapper -- and more -- for Aaron Quinlan's BEDTools"""
- homepage = "http://daler.github.io/pybedtools"
+ homepage = "https://daler.github.io/pybedtools"
url = "https://github.com/daler/pybedtools/archive/v0.6.9.tar.gz"
- version('0.6.9', sha256='2639e80917999e76572017fd93757e8d7ceb384f0b92647ccfdd23a0d60def7c')
+ version('0.8.0', sha256='f0d9f24135d13d6d02d5c0d1bded771848d3642b00a2d3c3d86b2a1fcd5ce532')
+ version('0.7.10', sha256='bc81c1655e998d8090d852f109925fc7fd3dad3ff90371cf80807dd4438a826a')
+ version('0.7.9', sha256='49cdb62b81bb6bf28fecf6fc9519aa31e333d150347ca4ce2d2cd2aa5ec2ca57')
+ version('0.7.8', sha256='0d49d92ba6d6cec85956cc4f947c9f431dc30aeea05125643a1b8786a59dc402')
+ version('0.7.7', sha256='e4f87da5009928046ac233d2c8a7c2121820aa6d74de45922ec1405464c62862')
+ version('0.7.6', sha256='639880a45ef60bd10d4ed31e6e7f7e901a6dbd909373df8f63f5aeccde446754')
+ version('0.7.5', sha256='ef221c38281cb9be1e8014d6513f6fd9b2722306a70e4ac2484d0d7034bc5b03')
+ version('0.7.4', sha256='39172a31c59ccf355fcff885f652cdc825341cabbab4ba78ac03862c42caa9da')
+ version('0.7.3', sha256='ba6875297116b776cb1eb79ddb9fe24db9cbee8f6922940f84984d533ef9000b')
+ version('0.7.2', sha256='0d0a80a42667742d53b1ef1947f4645dc16b060c7aacb4721c48f8028cc33c5e')
+ version('0.6.9', sha256='2639e80917999e76572017fd93757e8d7ceb384f0b92647ccfdd23a0d60def7c')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython', type='build')
depends_on('bedtools2', type='run')
- depends_on('py-cython', type=('build', 'run'))
- depends_on('py-pysam', type=('build', 'run'))
+
+ depends_on('py-numpy', type=('build', 'run'))
depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-pysam', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
- depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pybids/package.py b/var/spack/repos/builtin/packages/py-pybids/package.py
new file mode 100644
index 0000000000..74720b2653
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pybids/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 PyPybids(PythonPackage):
+ """bids: interface with datasets conforming to BIDS"""
+
+ homepage = "https://github.com/bids-standard/pybids"
+ pypi = "pybids/pybids-0.13.1.tar.gz"
+
+ version('0.13.1', sha256='c920e1557e1dae8b671625d70cafbdc28437ba2822b2db9da4c2587a7625e3ba')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools@30.3.0:', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-nibabel@2.1:', type=('build', 'run'))
+ depends_on('py-pandas@0.23:', type=('build', 'run'))
+ depends_on('py-patsy', type=('build', 'run'))
+ depends_on('py-sqlalchemy@:1.3.999', type=('build', 'run'))
+ depends_on('py-bids-validator', type=('build', 'run'))
+ depends_on('py-num2words', type=('build', 'run'))
+ depends_on('py-click', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pybigwig/package.py b/var/spack/repos/builtin/packages/py-pybigwig/package.py
index 41f6ee7ffa..1a4e198097 100644
--- a/var/spack/repos/builtin/packages/py-pybigwig/package.py
+++ b/var/spack/repos/builtin/packages/py-pybigwig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPybigwig(PythonPackage):
"""A package for accessing bigWig files using libBigWig."""
- homepage = "https://pypi.python.org/pypi/pyBigWig"
- url = "https://pypi.io/packages/source/p/pyBigWig/pyBigWig-0.3.4.tar.gz"
+ pypi = "pyBigWig/pyBigWig-0.3.4.tar.gz"
version('0.3.12', sha256='e01991790ece496bf6d3f00778dcfb136dd9ca0fd28acc1b3fb43051ad9b8403')
version('0.3.4', sha256='8c97a19218023190041c0e426f1544f7a4944a7bb4568faca1d85f1975af9ee2')
diff --git a/var/spack/repos/builtin/packages/py-pybind11-stubgen/package.py b/var/spack/repos/builtin/packages/py-pybind11-stubgen/package.py
new file mode 100644
index 0000000000..b3f9d343a4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pybind11-stubgen/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyPybind11Stubgen(PythonPackage):
+ """Generates stubs for pybind11-wrapped python modules"""
+
+ homepage = "https://github.com/sizmailov/pybind11-stubgen"
+ pypi = "pybind11-stubgen/pybind11-stubgen-0.3.0.tar.gz"
+
+ version('0.8.7', sha256='79e24009137cd51ef7201c5b9f4d0d072824b260cff751ec8200a8886e06adbf')
+ version('0.3.0', sha256='fb9bc977df46d7f1aecd33258e34abbbd01f1f461862c8a2a85341b96e6e6bdf')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pybind11/package.py b/var/spack/repos/builtin/packages/py-pybind11/package.py
index 1c07734e6f..35cdb8ead0 100644
--- a/var/spack/repos/builtin/packages/py-pybind11/package.py
+++ b/var/spack/repos/builtin/packages/py-pybind11/package.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
-class PyPybind11(CMakePackage):
+class PyPybind11(CMakePackage, PythonPackage):
"""pybind11 -- Seamless operability between C++11 and Python.
pybind11 is a lightweight header-only library that exposes C++ types in
@@ -18,13 +19,17 @@ class PyPybind11(CMakePackage):
introspection."""
homepage = "https://pybind11.readthedocs.io"
- url = "https://github.com/pybind/pybind11/archive/v2.1.0.tar.gz"
+ url = "https://github.com/pybind/pybind11/archive/v2.6.2.tar.gz"
git = "https://github.com/pybind/pybind11.git"
maintainers = ['ax3l']
version('master', branch='master')
- version('2.5.0', sha256='97504db65640570f32d3fdf701c25a340c8643037c3b69aec469c10c93dc8504')
+ version('2.7.1', sha256='616d1c42e4cf14fa27b2a4ff759d7d7b33006fdc5ad8fd603bb2c22622f27020')
+ version('2.7.0', sha256='6cd73b3d0bf3daf415b5f9b87ca8817cc2e2b64c275d65f9500250f9fee1677e')
+ version('2.6.2', sha256='8ff2fff22df038f5cd02cea8af56622bc67f5b64534f1b83b9f133b8366acff2')
+ version('2.6.1', sha256='cdbe326d357f18b83d10322ba202d69f11b2f49e2d87ade0dc2be0c5c34f8e2a')
+ version('2.5.0', sha256='97504db65640570f32d3fdf701c25a340c8643037c3b69aec469c10c93dc8504', preferred=True)
version('2.4.3', sha256='1eed57bc6863190e35637290f97a20c81cfe4d9090ac0a24f3bbf08f265eb71d')
version('2.3.0', sha256='0f34838f2c8024a6765168227ba587b3687729ebf03dc912f88ff75c7aa9cfe8')
version('2.2.4', sha256='b69e83658513215b8d1443544d0549b7d231b9f201f6fc787a2b2218b408181e')
@@ -35,23 +40,22 @@ class PyPybind11(CMakePackage):
version('2.1.1', sha256='f2c6874f1ea5b4ad4ffffe352413f7d2cd1a49f9050940805c2a082348621540')
version('2.1.0', sha256='2860f2b8d0c9f65f0698289a161385f59d099b7ead1bf64e8993c486f2b93ee0')
- depends_on('py-pytest', type='test')
depends_on('py-setuptools', type='build')
-
- extends('python')
+ depends_on('py-pytest', type='test')
# compiler support
conflicts('%gcc@:4.7')
conflicts('%clang@:3.2')
conflicts('%intel@:16')
+ build_directory = '.'
+
def cmake_args(self):
args = []
args.append('-DPYTHON_EXECUTABLE:FILEPATH=%s'
% self.spec['python'].command.path)
args += [
- '-DPYBIND11_TEST:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF')
+ self.define('PYBIND11_TEST', self.run_tests)
]
return args
@@ -68,9 +72,8 @@ class PyPybind11(CMakePackage):
string=True)
def install(self, spec, prefix):
- super(PyPybind11, self).install(spec, prefix)
- setup_py('install', '--single-version-externally-managed', '--root=/',
- '--prefix={0}'.format(prefix))
+ CMakePackage.install(self, spec, prefix)
+ PythonPackage.install(self, spec, prefix)
@run_after('install')
@on_package_attributes(run_tests=True)
diff --git a/var/spack/repos/builtin/packages/py-pybtex-docutils/package.py b/var/spack/repos/builtin/packages/py-pybtex-docutils/package.py
index ba93a2a994..7d5af532b6 100644
--- a/var/spack/repos/builtin/packages/py-pybtex-docutils/package.py
+++ b/var/spack/repos/builtin/packages/py-pybtex-docutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,14 +9,15 @@ from spack import *
class PyPybtexDocutils(PythonPackage):
"""A docutils backend for pybtex."""
- homepage = "https://pypi.python.org/pypi/pybtex-docutils/"
- url = "https://pypi.io/packages/source/p/pybtex-docutils/pybtex-docutils-0.2.1.tar.gz"
-
- import_modules = ['pybtex_docutils']
+ pypi = "pybtex-docutils/pybtex-docutils-0.2.1.tar.gz"
+ version('1.0.0', sha256='cead6554b4af99c287dd29f38b1fa152c9542f56a51cb6cbc3997c95b2725b2e')
+ version('0.2.2', sha256='ea90935da188a0f4de2fe6b32930e185c33a0e306154322ccc12e519ebb5fa7d')
version('0.2.1', sha256='e4b075641c1d68a3e98a6d73ad3d029293fcf9e0773512315ef9c8482f251337')
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'run'), when='@1.0.0:')
depends_on('py-setuptools', type='build')
depends_on('py-docutils@0.8:', type=('build', 'run'))
depends_on('py-pybtex@0.16:', type=('build', 'run'))
- depends_on('py-six', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'), when='@:0.2.2')
diff --git a/var/spack/repos/builtin/packages/py-pybtex/package.py b/var/spack/repos/builtin/packages/py-pybtex/package.py
index 56bfb42a50..819d573e66 100644
--- a/var/spack/repos/builtin/packages/py-pybtex/package.py
+++ b/var/spack/repos/builtin/packages/py-pybtex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,23 +12,14 @@ class PyPybtex(PythonPackage):
Python."""
homepage = "https://pybtex.org"
- url = "https://pypi.io/packages/source/P/Pybtex/pybtex-0.21.tar.gz"
-
- import_modules = [
- 'custom_fixers', 'pybtex', 'pybtex.style', 'pybtex.tests',
- 'pybtex.database', 'pybtex.backends', 'pybtex.bibtex',
- 'pybtex.charwidths', 'pybtex.markup', 'pybtex.plugin',
- 'pybtex.style.sorting', 'pybtex.style.names',
- 'pybtex.style.labels', 'pybtex.style.formatting',
- 'pybtex.tests.database_test', 'pybtex.tests.bst_parser_test',
- 'pybtex.tests.data', 'pybtex.database.output',
- 'pybtex.database.input', 'pybtex.database.format',
- 'pybtex.database.convert'
- ]
+ pypi = "pybtex/pybtex-0.24.0.tar.gz"
+ version('0.24.0', sha256='818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755')
version('0.21', sha256='af8a6c7c74954ad305553b118d2757f68bc77c5dd5d5de2cc1fd16db90046000')
+ depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-latexcodec@1.0.4:', type=('build', 'run'))
depends_on('py-pyyaml@3.01:', type=('build', 'run'))
depends_on('py-counter@1:', when='^python@:2.6', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'), when='@0.24.0:')
diff --git a/var/spack/repos/builtin/packages/py-pycairo/package.py b/var/spack/repos/builtin/packages/py-pycairo/package.py
index a8838cfa19..0ad69c46f0 100644
--- a/var/spack/repos/builtin/packages/py-pycairo/package.py
+++ b/var/spack/repos/builtin/packages/py-pycairo/package.py
@@ -1,26 +1,30 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PyPycairo(PythonPackage):
"""Pycairo is a set of Python bindings for the cairo graphics library."""
homepage = "https://www.cairographics.org/pycairo/"
- url = "https://pypi.io/packages/source/p/pycairo/pycairo-1.17.1.tar.gz"
+ pypi = "pycairo/pycairo-1.17.1.tar.gz"
+ version('1.20.0', sha256='5695a10cb7f9ae0d01f665b56602a845b0a8cb17e2123bfece10c2e58552468c')
version('1.18.1', sha256='70172e58b6bad7572a3518c26729b074acdde15e6fee6cbab6d3528ad552b786')
version('1.17.1', sha256='0f0a35ec923d87bc495f6753b1e540fd046d95db56a35250c44089fbce03b698')
- depends_on('cairo@1.13.1:')
+ depends_on('cairo@1.15.10: +pdf', when='@1.20.0:')
+ depends_on('cairo@1.13.1: +pdf', when='@:1.18.1')
depends_on('pkgconfig', type='build')
depends_on('py-setuptools', type='build')
depends_on('python@2.7:2.8,3.3:', when='@:1.17.1', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.4:', when='@1.18.1:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.4:3.7.999', when='@1.18.1:1.19.999', type=('build', 'run'))
+ depends_on('python@3.6:3.999', when='@1.20.0:', type=('build', 'run'))
@run_after('install')
def post_install(self):
diff --git a/var/spack/repos/builtin/packages/py-pycares/package.py b/var/spack/repos/builtin/packages/py-pycares/package.py
index c782f719b4..96f899802d 100644
--- a/var/spack/repos/builtin/packages/py-pycares/package.py
+++ b/var/spack/repos/builtin/packages/py-pycares/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pycbc/package.py b/var/spack/repos/builtin/packages/py-pycbc/package.py
index d315133885..6f8b4dd64c 100644
--- a/var/spack/repos/builtin/packages/py-pycbc/package.py
+++ b/var/spack/repos/builtin/packages/py-pycbc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyPycbc(PythonPackage):
the flagship analysis of LIGO and Virgo data."""
homepage = "https://pycbc.org/"
- url = "https://pypi.io/packages/source/P/PyCBC/PyCBC-1.14.1.tar.gz"
+ pypi = "PyCBC/PyCBC-1.14.1.tar.gz"
version('1.14.1', sha256='4b0a309cb6209837aaebbd691413a286dd7200ccf4b977ffed1462a65ac35dc0')
diff --git a/var/spack/repos/builtin/packages/py-pychecker/package.py b/var/spack/repos/builtin/packages/py-pychecker/package.py
index 04e06a50fc..6e94a041de 100644
--- a/var/spack/repos/builtin/packages/py-pychecker/package.py
+++ b/var/spack/repos/builtin/packages/py-pychecker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pycifrw/package.py b/var/spack/repos/builtin/packages/py-pycifrw/package.py
index c16a3b2894..0b38275ec2 100644
--- a/var/spack/repos/builtin/packages/py-pycifrw/package.py
+++ b/var/spack/repos/builtin/packages/py-pycifrw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPycifrw(PythonPackage):
Framework (CIF) files."""
homepage = "https://bitbucket.org/jamesrhester/pycifrw/src/development/"
- url = "https://pypi.io/packages/source/P/PyCifRW/PyCifRW-4.4.1.tar.gz"
+ pypi = "PyCifRW/PyCifRW-4.4.1.tar.gz"
version('4.4.1', sha256='cef7662f475e0eb78a55c2d55774d474e888c96b0539e5f08550afa902cdc4e1')
diff --git a/var/spack/repos/builtin/packages/py-pycmd/package.py b/var/spack/repos/builtin/packages/py-pycmd/package.py
index 791852e95b..620fce5c12 100644
--- a/var/spack/repos/builtin/packages/py-pycmd/package.py
+++ b/var/spack/repos/builtin/packages/py-pycmd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyPycmd(PythonPackage):
"""pycmd is a collection of command line tools for helping with Python
development."""
- homepage = "https://pypi.org/project/pycmd/"
- url = "https://pypi.io/packages/source/p/pycmd/pycmd-1.2.tar.gz"
+ pypi = "pycmd/pycmd-1.2.tar.gz"
version('1.2', sha256='adc1976c0106919e9338db20102b91009256dcfec924a66928d7297026f72477')
diff --git a/var/spack/repos/builtin/packages/py-pycocotools/package.py b/var/spack/repos/builtin/packages/py-pycocotools/package.py
new file mode 100644
index 0000000000..1fa3413f8f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pycocotools/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyPycocotools(PythonPackage):
+ """Official APIs for the MS-COCO dataset."""
+
+ homepage = "https://github.com/cocodataset/cocoapi"
+ pypi = "pycocotools/pycocotools-2.0.2.tar.gz"
+
+ version('2.0.2', sha256='24717a12799b4471c2e54aa210d642e6cd4028826a1d49fcc2b0e3497e041f1a')
+
+ depends_on('python', type=('build', 'link', 'run'))
+ depends_on('py-setuptools@18.0:', type='build')
+ depends_on('py-cython@0.27.3:', type='build')
+ depends_on('py-numpy', type=('build', 'link', 'run'))
+ depends_on('py-matplotlib@2.1.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pycodestyle/package.py b/var/spack/repos/builtin/packages/py-pycodestyle/package.py
index 48e833ec2f..d9bb3ced5d 100644
--- a/var/spack/repos/builtin/packages/py-pycodestyle/package.py
+++ b/var/spack/repos/builtin/packages/py-pycodestyle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pycosat/package.py b/var/spack/repos/builtin/packages/py-pycosat/package.py
index ac10891cef..94bb571b2f 100644
--- a/var/spack/repos/builtin/packages/py-pycosat/package.py
+++ b/var/spack/repos/builtin/packages/py-pycosat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,6 @@ class PyPycosat(PythonPackage):
extracted from the picosat source (picosat-965.tar.gz)."""
homepage = "https://github.com/ContinuumIO/pycosat"
- url = "https://pypi.io/packages/source/p/pycosat/pycosat-0.6.3.zip"
+ pypi = "pycosat/pycosat-0.6.3.zip"
version('0.6.3', sha256='4c99874946a7e939bb941bbb019dd2c20e6068e3107c91366e7779c69d70e0ed')
diff --git a/var/spack/repos/builtin/packages/py-pycparser/package.py b/var/spack/repos/builtin/packages/py-pycparser/package.py
index 6d8c217e91..035b432ad6 100644
--- a/var/spack/repos/builtin/packages/py-pycparser/package.py
+++ b/var/spack/repos/builtin/packages/py-pycparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyPycparser(PythonPackage):
"""A complete parser of the C language, written in pure python."""
homepage = "https://github.com/eliben/pycparser"
- url = "https://pypi.io/packages/source/p/pycparser/pycparser-2.19.tar.gz"
-
- import_modules = ['pycparser', 'pycparser.ply']
+ pypi = "pycparser/pycparser-2.19.tar.gz"
version('2.20', sha256='2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0')
version('2.19', sha256='a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3')
diff --git a/var/spack/repos/builtin/packages/py-pycrypto/package.py b/var/spack/repos/builtin/packages/py-pycrypto/package.py
index 4de3bca71f..245095f711 100644
--- a/var/spack/repos/builtin/packages/py-pycrypto/package.py
+++ b/var/spack/repos/builtin/packages/py-pycrypto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPycrypto(PythonPackage):
"""The Python Cryptography Toolkit"""
homepage = "https://www.dlitz.net/software/pycrypto/"
- url = "https://pypi.io/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz"
+ pypi = "pycrypto/pycrypto-2.6.1.tar.gz"
version('2.6.1', sha256='f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c')
diff --git a/var/spack/repos/builtin/packages/py-pycuda/package.py b/var/spack/repos/builtin/packages/py-pycuda/package.py
index a5f2153d9d..db5a4798ff 100644
--- a/var/spack/repos/builtin/packages/py-pycuda/package.py
+++ b/var/spack/repos/builtin/packages/py-pycuda/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,20 +12,33 @@ class PyPycuda(PythonPackage):
"""
homepage = "https://mathema.tician.de/software/pycuda/"
- url = "https://pypi.io/packages/source/p/pycuda/pycuda-2019.1.2.tar.gz"
+ pypi = "pycuda/pycuda-2019.1.2.tar.gz"
+ version('2020.1', sha256='effa3b99b55af67f3afba9b0d1b64b4a0add4dd6a33bdd6786df1aa4cc8761a5')
version('2019.1.2', sha256='ada56ce98a41f9f95fe18809f38afbae473a5c62d346cfa126a2d5477f24cc8a')
version('2016.1.2', sha256='a7dbdac7e2f0c0d2ad98f5f281d5a9d29d6673b3c20210e261b96e9a2d0b6e37')
+ @run_before('build')
+ def configure(self):
+ pyver = self.spec['python'].version.up_to(2).joined
+ boostlib = 'boost_python{0}'.format(pyver)
+ configure_args = [
+ '--no-use-shipped-boost',
+ '--boost-inc-dir={0}'.format(self.spec['boost'].prefix.include),
+ '--boost-lib-dir={0}'.format(self.spec['boost'].libs.directories[0]),
+ '--boost-python-libname={0}'.format(boostlib)
+ ]
+ python('configure.py', *configure_args)
+
depends_on('py-setuptools', type='build')
depends_on('cuda')
- depends_on('boost')
+ depends_on('boost+python')
+ depends_on('python@3.6:3.999', type=('build', 'run'), when='@2020.1:')
depends_on('py-numpy@1.6:', type=('build', 'run'))
+ depends_on('py-pytools@2011.2:', type=('build', 'run'))
depends_on('py-six', type='run')
- depends_on('py-decorator@3.2.0:', type='run')
- depends_on('py-appdirs@1.4.0:', type='run')
- depends_on('py-mako', type='run')
+ depends_on('py-decorator@3.2.0:', type=('build', 'run'))
+ depends_on('py-appdirs@1.4.0:', type=('build', 'run'))
+ depends_on('py-mako', type=('build', 'run'))
depends_on('cuda@:8.0.61', when='@2016.1.2')
-
- depends_on('py-pytest@2:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-pycurl/package.py b/var/spack/repos/builtin/packages/py-pycurl/package.py
index ba23c5238a..b82974139b 100644
--- a/var/spack/repos/builtin/packages/py-pycurl/package.py
+++ b/var/spack/repos/builtin/packages/py-pycurl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPycurl(PythonPackage):
objects identified by a URL from a Python program."""
homepage = "http://pycurl.io/"
- url = "https://pypi.io/packages/source/p/pycurl/pycurl-7.43.0.tar.gz"
+ pypi = "pycurl/pycurl-7.43.0.tar.gz"
version('7.43.0', sha256='aa975c19b79b6aa6c0518c0cc2ae33528900478f0b500531dbcdbf05beec584c')
diff --git a/var/spack/repos/builtin/packages/py-pydantic/package.py b/var/spack/repos/builtin/packages/py-pydantic/package.py
new file mode 100644
index 0000000000..4334e4a90e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pydantic/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyPydantic(PythonPackage):
+ """Data validation and settings management using Python type hinting."""
+
+ homepage = "https://github.com/samuelcolvin/pydantic"
+ pypi = "pydantic/pydantic-1.8.2.tar.gz"
+
+ version('1.8.2', sha256='26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b')
+
+ depends_on('python@3.6.1:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-dataclasses@0.6:', when='^python@:3.6', type=('build', 'run'))
+ depends_on('py-typing-extensions@3.7.4.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pydap/package.py b/var/spack/repos/builtin/packages/py-pydap/package.py
new file mode 100644
index 0000000000..c0c714f4e6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pydap/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyPydap(PythonPackage):
+ """An implementation of the Data Access Protocol."""
+
+ homepage = "https://www.pydap.org/en/latest/"
+ pypi = "Pydap/Pydap-3.2.2.tar.gz"
+
+ version('3.2.2', sha256='86326642e24f421595a74b0f9986da76d7932b277768f501fe214d72592bdc40')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-webob', type=('build', 'run'))
+ depends_on('py-jinja2', type=('build', 'run'))
+ depends_on('py-docopt', type=('build', 'run'))
+ depends_on('py-six@1.4.0:', type=('build', 'run'))
+ depends_on('py-beautifulsoup4', type=('build', 'run'))
+ depends_on('py-singledispatch', when='^python@:3.4.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pydatalog/package.py b/var/spack/repos/builtin/packages/py-pydatalog/package.py
index 41b6a26993..fe8f253105 100644
--- a/var/spack/repos/builtin/packages/py-pydatalog/package.py
+++ b/var/spack/repos/builtin/packages/py-pydatalog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,6 @@ from spack import *
class PyPydatalog(PythonPackage):
"""pyDatalog adds logic programming to Python."""
- homepage = 'https://pypi.python.org/pypi/pyDatalog/'
- url = 'https://pypi.io/packages/source/p/pyDatalog/pyDatalog-0.17.1.zip'
+ pypi = 'pyDatalog/pyDatalog-0.17.1.zip'
version('0.17.1', sha256='b3d9cff0b9431e0fd0b2d5eefe4414c3d3c20bd18fdd7d1b42b2f01f25bac808')
diff --git a/var/spack/repos/builtin/packages/py-pydeprecate/package.py b/var/spack/repos/builtin/packages/py-pydeprecate/package.py
new file mode 100644
index 0000000000..241e6da476
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pydeprecate/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyPydeprecate(PythonPackage):
+ """Simple tooling for marking deprecated functions or classes and re-routing
+ to the new successors' instance."""
+
+ homepage = "https://borda.github.io/pyDeprecate/"
+ pypi = "pyDeprecate/pyDeprecate-0.3.0.tar.gz"
+
+ version('0.3.1', sha256='fa26870924d3475621c344045c2c01a16ba034113a902600c78e75b3fac5f72c')
+ version('0.3.0', sha256='335742ec53b9d22a0a9ff4f3470300c94935f6e169c74b08aee14d871ca40e00')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pydeps/package.py b/var/spack/repos/builtin/packages/py-pydeps/package.py
index 65eafb46cd..b56662392c 100644
--- a/var/spack/repos/builtin/packages/py-pydeps/package.py
+++ b/var/spack/repos/builtin/packages/py-pydeps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,7 @@
class PyPydeps(PythonPackage):
"""Python module dependency visualization."""
- homepage = "https://pypi.python.org/project/pydeps"
- url = "https://pypi.io/packages/source/p/pydeps/pydeps-1.7.1.tar.gz"
+ pypi = "pydeps/pydeps-1.7.1.tar.gz"
version('1.9.0', sha256='ba9b8c7d72cb4dfd3f4dd6b8a250c240d15824850a415fd428f2660ed371361f')
version('1.7.1', sha256='7eeb8d0ec2713befe81dd0d15eac540e843b1daae13613df1c572528552d6340')
diff --git a/var/spack/repos/builtin/packages/py-pydicom/package.py b/var/spack/repos/builtin/packages/py-pydicom/package.py
new file mode 100644
index 0000000000..54e24b5c30
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pydicom/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyPydicom(PythonPackage):
+ """Pure python package for DICOM medical file reading and writing
+
+ pydicom is a pure Python package for working with DICOM files. It lets you
+ read, modify and write DICOM data in an easy "pythonic" way."""
+
+ homepage = "https://github.com/pydicom/pydicom"
+ pypi = "pydicom/pydicom-2.1.2.tar.gz"
+
+ version('2.1.2', sha256='65f36820c5fec24b4e7ca45b7dae93e054ed269d55f92681863d39d30459e2fd')
+
+ variant('numpy', default=False, description='Use NumPy for Pixel data')
+
+ depends_on('python@3.6.1:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-numpy', when='+numpy', type='run')
diff --git a/var/spack/repos/builtin/packages/py-pydispatcher/package.py b/var/spack/repos/builtin/packages/py-pydispatcher/package.py
index 8cb0218bd9..b344744e9f 100644
--- a/var/spack/repos/builtin/packages/py-pydispatcher/package.py
+++ b/var/spack/repos/builtin/packages/py-pydispatcher/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPydispatcher(PythonPackage):
"""Multi-producer-multi-consumer signal dispatching mechanism."""
homepage = "http://pydispatcher.sourceforge.net/"
- url = "https://pypi.io/packages/source/P/PyDispatcher/PyDispatcher-2.0.5.tar.gz"
+ pypi = "PyDispatcher/PyDispatcher-2.0.5.tar.gz"
version('2.0.5', sha256='5570069e1b1769af1fe481de6dd1d3a388492acddd2cdad7a3bde145615d5caf')
diff --git a/var/spack/repos/builtin/packages/py-pydmd/isuue-133.patch b/var/spack/repos/builtin/packages/py-pydmd/isuue-133.patch
new file mode 100644
index 0000000000..a7a55260ef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pydmd/isuue-133.patch
@@ -0,0 +1,31 @@
+diff --git a/pydmd/dmdbase.py b/pydmd/dmdbase.py
+index 17f3662..778a6b8 100644
+--- a/pydmd/dmdbase.py
++++ b/pydmd/dmdbase.py
+@@ -201,7 +201,7 @@ class DMDBase(object):
+ else:
+ input_shapes = [np.asarray(x).shape for x in X]
+
+- if len(set(input_shapes)) is not 1:
++ if len(set(input_shapes)) != 1:
+ raise ValueError('Snapshots have not the same dimension.')
+
+ snapshots_shape = input_shapes[0]
+@@ -235,7 +235,7 @@ class DMDBase(object):
+ https://arxiv.org/pdf/1502.03854.pdf
+ """
+ # Do not perform tlsq
+- if tlsq_rank is 0:
++ if tlsq_rank == 0:
+ return X, Y
+
+ V = np.linalg.svd(np.append(X, Y, axis=0), full_matrices=False)[-1]
+@@ -269,7 +269,7 @@ class DMDBase(object):
+ U, s, V = np.linalg.svd(X, full_matrices=False)
+ V = V.conj().T
+
+- if svd_rank is 0:
++ if svd_rank == 0:
+ omega = lambda x: 0.56 * x ** 3 - 0.95 * x ** 2 + 1.82 * x + 1.43
+ beta = np.divide(*sorted(X.shape))
+ tau = np.median(s) * omega(beta)
diff --git a/var/spack/repos/builtin/packages/py-pydmd/package.py b/var/spack/repos/builtin/packages/py-pydmd/package.py
new file mode 100644
index 0000000000..cc0cee1185
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pydmd/package.py
@@ -0,0 +1,49 @@
+# Copyright 2013-2021 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 PyPydmd(PythonPackage):
+ """PyDMD is a Python package that uses Dynamic Mode Decomposition
+ for a data-driven model simplification based on spatiotemporal
+ coherent structures."""
+
+ homepage = "https://mathlab.github.io/PyDMD/"
+ url = "https://github.com/mathLab/PyDMD/archive/v0.3.tar.gz"
+
+ version('0.3', sha256='f490fc139677e4d9fc1240636a2c5992d22879517c9574d13164dc5179b0f785')
+
+ variant('docs', default=False, description='Build HTML documentation')
+
+ depends_on('python@3:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-future', type=('build', 'run'))
+ depends_on('py-nose', type='test')
+ depends_on('texlive', type='build', when='+docs')
+ depends_on('py-sphinx@1.4.0:1.4.99', type='build', when='+docs')
+ depends_on('py-sphinx-rtd-theme', type='build', when='+docs')
+
+ # https://github.com/mathLab/PyDMD/pull/133
+ patch('isuue-133.patch', when='@0.3')
+
+ @run_after('build')
+ def build_docs(self):
+ if '+docs' in self.spec:
+ with working_dir('docs'):
+ make('html')
+
+ @run_after('install')
+ def install_docs(self):
+ if '+docs' in self.spec:
+ install_tree('docs', self.prefix.docs)
+
+ @run_after('build')
+ @on_package_attributes(run_tests=True)
+ def build_test(self):
+ python('test.py')
diff --git a/var/spack/repos/builtin/packages/py-pydocstyle/package.py b/var/spack/repos/builtin/packages/py-pydocstyle/package.py
new file mode 100644
index 0000000000..12c50b83eb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pydocstyle/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyPydocstyle(PythonPackage):
+ """Python docstring style checker."""
+
+ homepage = "https://github.com/PyCQA/pydocstyle/"
+ pypi = "pydocstyle/pydocstyle-6.1.1.tar.gz"
+
+ version('6.1.1', sha256='1d41b7c459ba0ee6c345f2eb9ae827cab14a7533a88c5c6f7e94923f72df92dc')
+
+ variant('toml', default=True, description='Allow pydocstyle to read pyproject.toml')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-snowballstemmer', type=('build', 'run'))
+ depends_on('py-toml', when='+toml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pydot/package.py b/var/spack/repos/builtin/packages/py-pydot/package.py
index a9989cdeab..46b8776a38 100644
--- a/var/spack/repos/builtin/packages/py-pydot/package.py
+++ b/var/spack/repos/builtin/packages/py-pydot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,14 @@ class PyPydot(PythonPackage):
"""Python interface to Graphviz's Dot language"""
homepage = "https://github.com/erocarrera/pydot/"
- url = "https://pypi.io/packages/source/p/pydot/pydot-1.2.3.tar.gz"
+ pypi = "pydot/pydot-1.2.3.tar.gz"
+ version('1.4.2', sha256='248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d')
version('1.4.1', sha256='d49c9d4dd1913beec2a997f831543c8cbd53e535b1a739e921642fe416235f01')
version('1.2.3', sha256='edb5d3f249f97fbd9c4bb16959e61bc32ecf40eee1a9f6d27abe8d01c0a73502')
version('1.2.2', sha256='04a97a885ed418dcc193135cc525fa356cad8b16719293295a149b30718ce400')
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@1.3.0:')
depends_on('py-setuptools', type='build')
depends_on('py-pyparsing@2.1.4:', type=('build', 'run'))
depends_on('graphviz', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pydot2/package.py b/var/spack/repos/builtin/packages/py-pydot2/package.py
index 9894d47659..1d9e8a1910 100644
--- a/var/spack/repos/builtin/packages/py-pydot2/package.py
+++ b/var/spack/repos/builtin/packages/py-pydot2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPydot2(PythonPackage):
"""Python interface to Graphviz's Dot"""
- homepage = "https://pypi.org/project/pydot2/"
- url = "https://pypi.io/packages/source/p/pydot2/pydot2-1.0.33.tar.gz"
+ pypi = "pydot2/pydot2-1.0.33.tar.gz"
version('1.0.33', sha256='02c0e681a1c437077e2bb2522fb81fa322e53ba7002cfda8b894db0392a1bc9b')
diff --git a/var/spack/repos/builtin/packages/py-pydotplus/package.py b/var/spack/repos/builtin/packages/py-pydotplus/package.py
index 07370cbc1c..e1119049b1 100644
--- a/var/spack/repos/builtin/packages/py-pydotplus/package.py
+++ b/var/spack/repos/builtin/packages/py-pydotplus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPydotplus(PythonPackage):
"""Python interface to Graphviz's Dot language"""
homepage = "https://pydotplus.readthedocs.io/"
- url = "https://pypi.io/packages/source/p/pydotplus/pydotplus-2.0.2.tar.gz"
+ pypi = "pydotplus/pydotplus-2.0.2.tar.gz"
version('2.0.2', sha256='91e85e9ee9b85d2391ead7d635e3d9c7f5f44fd60a60e59b13e2403fa66505c4')
@@ -18,7 +18,6 @@ class PyPydotplus(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('py-pyparsing@2.0.1:', type=('build', 'run'))
- depends_on('py-pytest', type='test')
depends_on('py-sphinx', type='build', when='+docs')
depends_on('py-sphinx-rtd-theme', type='build', when='+docs')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pydv/package.py b/var/spack/repos/builtin/packages/py-pydv/package.py
index 147b6374a6..b43ae2a9fd 100644
--- a/var/spack/repos/builtin/packages/py-pydv/package.py
+++ b/var/spack/repos/builtin/packages/py-pydv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pyeda/package.py b/var/spack/repos/builtin/packages/py-pyeda/package.py
index d6f3b4a3f9..df966f50ca 100644
--- a/var/spack/repos/builtin/packages/py-pyeda/package.py
+++ b/var/spack/repos/builtin/packages/py-pyeda/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPyeda(PythonPackage):
"""PyEDA is a Python library for electronic design automation."""
homepage = "https://github.com/cjdrake/pyeda"
- url = "https://pypi.io//packages/source/p/pyeda/pyeda-0.28.0.tar.gz"
+ pypi = "pyeda/pyeda-0.28.0.tar.gz"
version('0.28.0', sha256='07185f458d5d0b2ba5058da8b95dad6ab7684ceaf41237a25bcd3f005490f59d')
diff --git a/var/spack/repos/builtin/packages/py-pyelftools/package.py b/var/spack/repos/builtin/packages/py-pyelftools/package.py
index 0607560e0b..eeb7144893 100644
--- a/var/spack/repos/builtin/packages/py-pyelftools/package.py
+++ b/var/spack/repos/builtin/packages/py-pyelftools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPyelftools(PythonPackage):
"""A pure-Python library for parsing and analyzing ELF files and DWARF
debugging information"""
- homepage = "https://pypi.python.org/pypi/pyelftools"
- url = "https://pypi.io/packages/source/p/pyelftools/pyelftools-0.26.tar.gz"
+ pypi = "pyelftools/pyelftools-0.26.tar.gz"
version('0.26', sha256='86ac6cee19f6c945e8dedf78c6ee74f1112bd14da5a658d8c9d4103aed5756a2')
version('0.23', sha256='fc57aadd096e8f9b9b03f1a9578f673ee645e1513a5ff0192ef439e77eab21de')
diff --git a/var/spack/repos/builtin/packages/py-pyem/package.py b/var/spack/repos/builtin/packages/py-pyem/package.py
new file mode 100644
index 0000000000..e8940b9722
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyem/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 PyPyem(PythonPackage):
+ """Project-level Python virtual environment management tool.
+
+ PyEM manages multiple virtual environments local to projects.
+ It provides shortcuts to create, remove, switch between, and run
+ commands against virtual environments created against
+ various Python interpreters."""
+
+ pypi = "pyem/pyem-2.1.0.tar.gz"
+
+ version('2.1.0', sha256='5234a20427ab2813a8a0bf1e9112d4d854b1b0502b3e63d17c1b1a3c4be9340e')
+
+ depends_on('python@3.7:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ # distutils does not support entry_points, setuptools needed to install pyem binary
+ def patch(self):
+ filter_file(r'from distutils.core import setup',
+ 'from setuptools import setup', 'setup.py')
diff --git a/var/spack/repos/builtin/packages/py-pyepsg/package.py b/var/spack/repos/builtin/packages/py-pyepsg/package.py
index 2b0ecd21a4..25f180d37c 100644
--- a/var/spack/repos/builtin/packages/py-pyepsg/package.py
+++ b/var/spack/repos/builtin/packages/py-pyepsg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,10 @@ from spack import *
class PyPyepsg(PythonPackage):
- """Provides simple access to http://epsg.io/."""
+ """Provides simple access to https://epsg.io/."""
homepage = "https://pyepsg.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/p/pyepsg/pyepsg-0.3.2.tar.gz"
+ pypi = "pyepsg/pyepsg-0.3.2.tar.gz"
version('0.3.2', sha256='597ef8c0e8c1be3db8f68c5985bcfbbc32e22f087e93e81ceb03ff094898e059')
diff --git a/var/spack/repos/builtin/packages/py-pyface/package.py b/var/spack/repos/builtin/packages/py-pyface/package.py
index 197e3d9ab2..2f768975aa 100644
--- a/var/spack/repos/builtin/packages/py-pyface/package.py
+++ b/var/spack/repos/builtin/packages/py-pyface/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPyface(PythonPackage):
care of the details of displaying them."""
homepage = "https://docs.enthought.com/pyface"
- url = "https://pypi.io/packages/source/p/pyface/pyface-6.1.2.tar.gz"
+ pypi = "pyface/pyface-6.1.2.tar.gz"
version('6.1.2', sha256='7c2ac3d5cbec85e8504b3b0b63e9307be12c6d710b46bae372ce6562d41f4fbc')
diff --git a/var/spack/repos/builtin/packages/py-pyfaidx/package.py b/var/spack/repos/builtin/packages/py-pyfaidx/package.py
index 22740a4f83..04093d655f 100644
--- a/var/spack/repos/builtin/packages/py-pyfaidx/package.py
+++ b/var/spack/repos/builtin/packages/py-pyfaidx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPyfaidx(PythonPackage):
"""pyfaidx: efficient pythonic random access to fasta subsequences"""
- homepage = "https://pypi.org/project/pyfaidx/"
- url = "https://pypi.io/packages/source/p/pyfaidx/pyfaidx-0.5.5.2.tar.gz"
+ pypi = "pyfaidx/pyfaidx-0.5.5.2.tar.gz"
version('0.5.5.2', sha256='9ac22bdc7b9c5d995d32eb9dc278af9ba970481636ec75c0d687d38c26446caa')
diff --git a/var/spack/repos/builtin/packages/py-pyfasta/package.py b/var/spack/repos/builtin/packages/py-pyfasta/package.py
index 961bc0f75e..e24e25693f 100644
--- a/var/spack/repos/builtin/packages/py-pyfasta/package.py
+++ b/var/spack/repos/builtin/packages/py-pyfasta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyPyfasta(PythonPackage):
"""Pyfasta: fast, memory-efficient, pythonic (and command-line)
access to fasta sequence files"""
- homepage = "https://pypi.python.org/pypi/pyfasta/"
- url = "https://pypi.io/packages/source/p/pyfasta/pyfasta-0.5.2.tar.gz"
+ pypi = "pyfasta/pyfasta-0.5.2.tar.gz"
version('0.5.2', sha256='ab08d75fa90253bc91933d10567d5d9cca2718f4796ef3bdc36b68df0e45b258')
diff --git a/var/spack/repos/builtin/packages/py-pyfftw/package.py b/var/spack/repos/builtin/packages/py-pyfftw/package.py
index 41d9db5b74..4f55477f84 100644
--- a/var/spack/repos/builtin/packages/py-pyfftw/package.py
+++ b/var/spack/repos/builtin/packages/py-pyfftw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPyfftw(PythonPackage):
presenting a unified interface for all the supported transforms."""
homepage = "http://hgomersall.github.com/pyFFTW"
- url = "https://pypi.io/packages/source/p/pyFFTW/pyFFTW-0.10.4.tar.gz"
+ pypi = "pyFFTW/pyFFTW-0.10.4.tar.gz"
version('0.12.0', sha256='60988e823ca75808a26fd79d88dbae1de3699e72a293f812aa4534f8a0a58cb0')
version('0.11.1', sha256='05ea28dede4c3aaaf5c66f56eb0f71849d0d50f5bc0f53ca0ffa69534af14926')
@@ -22,3 +22,6 @@ class PyPyfftw(PythonPackage):
depends_on('py-cython@0.29:0.999', type='build')
depends_on('py-numpy@1.6:', type=('build', 'run'), when='@:0.10.4')
depends_on('py-numpy@1.10:1.999', type=('build', 'run'), when='@0.11.0:')
+
+ def setup_build_environment(self, env):
+ env.append_flags('LDFLAGS', self.spec['fftw'].libs.search_flags)
diff --git a/var/spack/repos/builtin/packages/py-pyfiglet/package.py b/var/spack/repos/builtin/packages/py-pyfiglet/package.py
new file mode 100644
index 0000000000..8ac1bf87f6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyfiglet/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyPyfiglet(PythonPackage):
+ """ pyfiglet is a full port of FIGlet (http://www.figlet.org/)
+ into purepython. It takes ASCII text and renders it in ASCII
+ art font."""
+
+ homepage = "https://github.com/pwaller/pyfiglet"
+ pypi = "pyfiglet/pyfiglet-0.7.tar.gz"
+
+ version('0.8.post1', sha256='c6c2321755d09267b438ec7b936825a4910fec696292139e664ca8670e103639')
+ version('0.8.post0', sha256='2994451ea67c77cd97f81f52087ccae6921d78d9402920995419893a979b5ace')
+ version('0.7.6', sha256='97d59651b40da6ddf7e961157c480a7a04b48214d8c7231adc8c15e43aa5d722')
+ version('0.7.5', sha256='446194e1fc3257ffc8024eafd3b486394847597f6210278d76bd582850205e12')
+
+ depends_on('py-setuptools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pyfits/package.py b/var/spack/repos/builtin/packages/py-pyfits/package.py
index f013175d33..dcbddbfe07 100644
--- a/var/spack/repos/builtin/packages/py-pyfits/package.py
+++ b/var/spack/repos/builtin/packages/py-pyfits/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pyflakes/package.py b/var/spack/repos/builtin/packages/py-pyflakes/package.py
index 402a6c525b..5cbd268fdf 100644
--- a/var/spack/repos/builtin/packages/py-pyflakes/package.py
+++ b/var/spack/repos/builtin/packages/py-pyflakes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pygdal/package.py b/var/spack/repos/builtin/packages/py-pygdal/package.py
index 403e020043..2e74f36f34 100644
--- a/var/spack/repos/builtin/packages/py-pygdal/package.py
+++ b/var/spack/repos/builtin/packages/py-pygdal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class PyPygdal(PythonPackage):
"""
homepage = "https://github.com/nextgis/pygdal"
- url = "https://pypi.io/packages/source/p/pygdal/pygdal-3.0.1.5.tar.gz"
+ pypi = "pygdal/pygdal-3.0.1.5.tar.gz"
version('3.0.4.6', sha256='8e39b58cd9465bb5f41786a7cf6a62df93334c104db05a5bfb8181a0be276b86')
version('3.0.1.5', sha256='1222f69fe5e6b632d0d2a42d3acb8fac80fb4577c05e01969d8cd5548192ccaa')
diff --git a/var/spack/repos/builtin/packages/py-pygdbmi/package.py b/var/spack/repos/builtin/packages/py-pygdbmi/package.py
index 8bf181f4a7..13f32c68ee 100644
--- a/var/spack/repos/builtin/packages/py-pygdbmi/package.py
+++ b/var/spack/repos/builtin/packages/py-pygdbmi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPygdbmi(PythonPackage):
"""Parse gdb machine interface output with Python"""
homepage = "https://github.com/cs01/pygdbmi"
- url = "https://pypi.io/packages/source/p/pygdbmi/pygdbmi-0.8.2.0.tar.gz"
+ pypi = "pygdbmi/pygdbmi-0.8.2.0.tar.gz"
version('0.9.0.3', sha256='5bdf2f072e8f2f6471f19f8dcd87d6425c5d8069d47c0a5ffe8d0eff48cb171e')
version('0.8.2.0', sha256='47cece65808ca42edf6966ac48e2aedca7ae1c675c4d2f0d001c7f3a7fa245fe')
diff --git a/var/spack/repos/builtin/packages/py-pygelf/package.py b/var/spack/repos/builtin/packages/py-pygelf/package.py
index c2b20b5703..b7502d2870 100644
--- a/var/spack/repos/builtin/packages/py-pygelf/package.py
+++ b/var/spack/repos/builtin/packages/py-pygelf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,11 +11,12 @@ class PyPygelf(PythonPackage):
support."""
homepage = "https://github.com/keeprocking/pygelf"
- url = "https://pypi.io/packages/source/p/pygelf/pygelf-0.3.6.tar.gz"
+ pypi = "pygelf/pygelf-0.3.6.tar.gz"
# notify when the package is updated.
maintainers = ['victorusu', 'vkarak']
+ version('0.4.0', sha256='3693da38794561d42b0556a78af7dcb22d92ea450125577e58089ab89a890ee5')
version('0.3.6', sha256='3e5bc59e3b5a754556a76ff2c69fcf2003218ad7b5ff8417482fa1f6a7eba5f9')
depends_on('python', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pygeos/package.py b/var/spack/repos/builtin/packages/py-pygeos/package.py
new file mode 100644
index 0000000000..b56981294f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pygeos/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyPygeos(PythonPackage):
+ """PyGEOS is a C/Python library with vectorized geometry functions.
+
+ The geometry operations are done in the open-source geometry library GEOS.
+ PyGEOS wraps these operations in NumPy ufuncs providing a performance
+ improvement when operating on arrays of geometries."""
+
+ homepage = "https://github.com/pygeos/pygeos"
+ pypi = "pygeos/pygeos-0.8.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('0.10', sha256='8ad4703cf8f983a6878a885765be975709a2fe300e54bc6c8623ddbca4903b6c')
+ version('0.9', sha256='c0584b20e95f80ee57277a6eb1e5d7f86600f8b1ef3c627d238e243afdcc0cc7')
+ version('0.8', sha256='45b7e1aaa5fc9ff53565ef089fb75c53c419ace8cee18385ec1d7c1515c17cbc')
+
+ depends_on('python@3.6:', when='@0.10:', type=('build', 'link', 'run'))
+ depends_on('python@3:', type=('build', 'link', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython', type='build')
+ depends_on('py-numpy@1.13:', when='@0.9:', type=('build', 'link', 'run'))
+ depends_on('py-numpy@1.10:', type=('build', 'link', 'run'))
+ depends_on('geos@3.5:')
diff --git a/var/spack/repos/builtin/packages/py-pygetwindow/package.py b/var/spack/repos/builtin/packages/py-pygetwindow/package.py
new file mode 100644
index 0000000000..01bd71e179
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pygetwindow/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyPygetwindow(PythonPackage):
+ """A simple, cross-platform module for obtaining GUI
+ information on and controlling application's windows."""
+
+ homepage = "https://github.com/asweigart/pygetwindow"
+ pypi = "PyGetWindow/PyGetWindow-0.0.9.tar.gz"
+
+ version('0.0.9', sha256='17894355e7d2b305cd832d717708384017c1698a90ce24f6f7fbf0242dd0a688')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pyrect', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pygit2/package.py b/var/spack/repos/builtin/packages/py-pygit2/package.py
index b90652fa33..1459dc2a23 100644
--- a/var/spack/repos/builtin/packages/py-pygit2/package.py
+++ b/var/spack/repos/builtin/packages/py-pygit2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,21 +11,34 @@ class PyPygit2(PythonPackage):
libgit2 implements the core of Git.
"""
- homepage = "http://www.pygit2.org/"
- url = "https://pypi.io/packages/source/p/pygit2/pygit2-0.24.1.tar.gz"
+ homepage = "https://www.pygit2.org/"
+ pypi = "pygit2/pygit2-0.24.1.tar.gz"
+ version('1.6.0', sha256='7aacea4e57011777f4774421228e5d0ddb9a6ddb87ac4b542346d17ab12a4d62')
+ version('1.4.0', sha256='cbeb38ab1df9b5d8896548a11e63aae8a064763ab5f1eabe4475e6b8a78ee1c8')
+ version('1.3.0', sha256='0be93f6a8d7cbf0cc79ae2f0afb1993fc055fc0018c27e2bd01ba143e51d4452')
+ version('0.28.2', sha256='4d8c3fbbf2e5793a9984681a94e6ac2f1bc91a92cbac762dbdfbea296b917f86')
version('0.24.1', sha256='4d1d0196b38d6012faf0a7c45e235c208315672b6035da504566c605ba494064')
- extends('python')
depends_on('py-setuptools', type='build')
# Version must match with libgit2
- # See: http://www.pygit2.org/install.html
- depends_on('libgit2@0.24:', when='@0.24:')
- depends_on('py-six', type=('build', 'run'))
- depends_on('py-cffi', type=('build', 'run'))
+ # See: https://www.pygit2.org/install.html
+ depends_on('libgit2@1.1:1.1.99', when='@1.4:')
+ depends_on('libgit2@1.0:1.0.99', when='@1.2:1.3.99')
+ depends_on('libgit2@0.99:1.0.99', when='@1.1:1.1.99')
+ depends_on('libgit2@0.28:0.28.99', when='@0.28:1.0.99')
+ depends_on('libgit2@0.24:0.27.99', when='@0.24:0.27.99')
+ depends_on('python@3.6:', when='@1.4.0:')
+ depends_on('python@3.6:3.8.99', when='@1.2:1.3.99')
+ depends_on('python@3.5:3.8.99', when='@1.0:1.1.99')
+ depends_on('python@2.7:3.7.99', when='@0.28:0.99.99')
+ depends_on('py-six', type=('build', 'run'), when='@:0.28.2')
+ depends_on('py-cffi@1.4.0:', type=('build', 'run'))
+ depends_on('py-cached-property', when='@1.1.0:1.5', type=('build', 'run'))
+ depends_on('py-cached-property', when='@1.6.0: ^python@:3.7', type=('build', 'run'))
def setup_build_environment(self, env):
spec = self.spec
- # http://www.pygit2.org/install.html
+ # https://www.pygit2.org/install.html
env.set('LIBGIT2', spec['libgit2'].prefix)
env.set('LIBGIT2_LIB', spec['libgit2'].prefix.lib)
diff --git a/var/spack/repos/builtin/packages/py-pygithub/package.py b/var/spack/repos/builtin/packages/py-pygithub/package.py
new file mode 100644
index 0000000000..da6c3aac82
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pygithub/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyPygithub(PythonPackage):
+ """Use the full Github API v3"""
+
+ homepage = "https://pygithub.readthedocs.io/"
+ pypi = "PyGithub/PyGithub-1.54.1.tar.gz"
+
+ version('1.55', sha256='1bbfff9372047ff3f21d5cd8e07720f3dbfdaf6462fcaed9d815f528f1ba7283')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-deprecated', type=('build', 'run'))
+ depends_on('py-pyjwt@2:', type=('build', 'run'))
+ depends_on('py-pynacl@1.4.0:', type=('build', 'run'))
+ depends_on('py-requests@2.14.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pyglet/package.py b/var/spack/repos/builtin/packages/py-pyglet/package.py
index ff01b7f2d6..a2b2ff7e4f 100644
--- a/var/spack/repos/builtin/packages/py-pyglet/package.py
+++ b/var/spack/repos/builtin/packages/py-pyglet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPyglet(PythonPackage):
"""
homepage = "https://github.com/pyglet/pygle://github.com/pyglet/pyglet"
- url = "https://pypi.io/packages/source/p/pyglet/pyglet-1.4.2.tar.gz"
+ pypi = "pyglet/pyglet-1.4.2.tar.gz"
version('1.4.2', sha256='fda25ae5e99057f05bd339ea7972196d2f44e6fe8fb210951ab01f6609cdbdb7')
version('1.2.1', sha256='d1afb253d6de230e73698377566da333ef42e1c82190216aa7a0c1b729d6ff4d')
diff --git a/var/spack/repos/builtin/packages/py-pygments-pytest/package.py b/var/spack/repos/builtin/packages/py-pygments-pytest/package.py
index 3808bb80b7..59378a4309 100644
--- a/var/spack/repos/builtin/packages/py-pygments-pytest/package.py
+++ b/var/spack/repos/builtin/packages/py-pygments-pytest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPygmentsPytest(PythonPackage):
"""A pygments lexer for pytest output."""
homepage = "https://github.com/asottile/pygments-pytest"
- url = "https://pypi.io/packages/source/P/pygments-pytest-1.2.0.tar.gz"
+ pypi = "pygments-pytest/pygments_pytest-1.2.0.tar.gz"
version('1.2.0', sha256='fc48e2fffd6d3c047a61c1db8b88ab069983f50e733fe70a7846098eb28bc955')
diff --git a/var/spack/repos/builtin/packages/py-pygments/package.py b/var/spack/repos/builtin/packages/py-pygments/package.py
index d7559b36d8..5f00a7905d 100644
--- a/var/spack/repos/builtin/packages/py-pygments/package.py
+++ b/var/spack/repos/builtin/packages/py-pygments/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,14 +9,10 @@ from spack import *
class PyPygments(PythonPackage):
"""Pygments is a syntax highlighting package written in Python."""
- homepage = "http://pygments.org/"
- url = "https://pypi.io/packages/source/P/Pygments/Pygments-2.4.2.tar.gz"
-
- import_modules = [
- 'pygments', 'pygments.filters', 'pygments.formatters',
- 'pygments.lexers', 'pygments.styles'
- ]
+ homepage = "https://pygments.org/"
+ pypi = "Pygments/Pygments-2.4.2.tar.gz"
+ version('2.10.0', sha256='f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6')
version('2.6.1', sha256='647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44')
version('2.4.2', sha256='881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297')
version('2.3.1', sha256='5ffada19f6203563680669ee7f53b64dabbeb100eb51b61996085e99c03b284a')
@@ -28,7 +24,3 @@ class PyPygments(PythonPackage):
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@:2.5')
depends_on('python@3.5:', type=('build', 'run'), when='@2.6:')
depends_on('py-setuptools', type=('build', 'run'))
-
- def build_test(self):
- # Unit tests require sphinx, but that creates a circular dependency
- pass
diff --git a/var/spack/repos/builtin/packages/py-pygobject/package.py b/var/spack/repos/builtin/packages/py-pygobject/package.py
index 27b41f6c9c..02e283806e 100644
--- a/var/spack/repos/builtin/packages/py-pygobject/package.py
+++ b/var/spack/repos/builtin/packages/py-pygobject/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pygps/package.py b/var/spack/repos/builtin/packages/py-pygps/package.py
index ffb556c007..41657612ca 100644
--- a/var/spack/repos/builtin/packages/py-pygps/package.py
+++ b/var/spack/repos/builtin/packages/py-pygps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPygps(PythonPackage):
Regression and Classification."""
homepage = "https://github.com/marionmari/pyGPs"
- url = "https://pypi.io/packages/source/p/pygps/pyGPs-1.3.5.tar.gz"
+ pypi = "pygps/pyGPs-1.3.5.tar.gz"
version('1.3.5', sha256='5af668415a7bf1666c7c6da3bb09d29e48c395862c6feb23964b476972a015d4')
diff --git a/var/spack/repos/builtin/packages/py-pygpu/package.py b/var/spack/repos/builtin/packages/py-pygpu/package.py
index aea5939995..c7968913ab 100644
--- a/var/spack/repos/builtin/packages/py-pygpu/package.py
+++ b/var/spack/repos/builtin/packages/py-pygpu/package.py
@@ -1,16 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PyPygpu(PythonPackage):
"""Python packge for the libgpuarray C library."""
- homepage = "http://deeplearning.net/software/libgpuarray/"
+ homepage = "https://github.com/Theano/libgpuarray"
url = "https://github.com/Theano/libgpuarray/archive/v0.6.1.tar.gz"
version('0.7.6', sha256='ad1c00dd47c3d36ee1708e5167377edbfcdb7226e837ef9c68b841afbb4a4f6a')
diff --git a/var/spack/repos/builtin/packages/py-pygresql/package.py b/var/spack/repos/builtin/packages/py-pygresql/package.py
index 9db0bc7d20..250411ff5a 100644
--- a/var/spack/repos/builtin/packages/py-pygresql/package.py
+++ b/var/spack/repos/builtin/packages/py-pygresql/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pygtk/package.py b/var/spack/repos/builtin/packages/py-pygtk/package.py
index 661661a39e..db4274a8c9 100644
--- a/var/spack/repos/builtin/packages/py-pygtk/package.py
+++ b/var/spack/repos/builtin/packages/py-pygtk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pygtrie/package.py b/var/spack/repos/builtin/packages/py-pygtrie/package.py
new file mode 100644
index 0000000000..ce1479f46c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pygtrie/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyPygtrie(PythonPackage):
+ """A pure Python implementation of a trie data structure."""
+
+ homepage = "https://github.com/mina86/pygtrie"
+ pypi = "pygtrie/pygtrie-2.4.2.tar.gz"
+
+ version('2.4.2', sha256='43205559d28863358dbbf25045029f58e2ab357317a59b11f11ade278ac64692')
+ version('2.4.0', sha256='77700d2fcaab321ac65e86c2969fb4b64c116796baf52ab12d07de2e1f6cfc5d')
+ version('2.3.2', sha256='6299cdedd2cbdfda0895c2dbc43efe8828e698c62b574f3ef7e14b3253f80e23')
diff --git a/var/spack/repos/builtin/packages/py-pyheadtail/package.py b/var/spack/repos/builtin/packages/py-pyheadtail/package.py
index 811bf63b4b..2316cd2dbb 100644
--- a/var/spack/repos/builtin/packages/py-pyheadtail/package.py
+++ b/var/spack/repos/builtin/packages/py-pyheadtail/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPyheadtail(PythonPackage):
macro-particle beam dynamics with collective effects."""
homepage = "https://github.com/PyCOMPLETE/PyHEADTAIL"
- url = "https://pypi.io/packages/source/P/PyHEADTAIL/PyHEADTAIL-1.14.1.tar.gz"
+ pypi = "PyHEADTAIL/PyHEADTAIL-1.14.1.tar.gz"
version('1.14.1', sha256='bf90ac7e8764176c55e82c363cad7ab43543863b6ef482760ced23b78e917bb4')
version('1.13.1', sha256='29c742573a918126b5a9c21806ee0ec6a34ec642a0e6ad200f6d4551bf1bb310')
diff --git a/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py b/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py
index 4eb2f799c1..bd1625e9f7 100644
--- a/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py
+++ b/var/spack/repos/builtin/packages/py-pyinstrument-cext/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,8 @@ class PyPyinstrumentCext(PythonPackage):
"""A CPython extension supporting pyinstrument."""
homepage = "https://github.com/joerick/pyinstrument_cext"
- url = "https://pypi.io/packages/source/p/pyinstrument_cext/pyinstrument_cext-0.2.2.tar.gz"
+ pypi = "pyinstrument_cext/pyinstrument_cext-0.2.2.tar.gz"
version('0.2.2', sha256='f29e25f71d74c0415ca9310e5567fff0f5d29f4240a09a885abf8b0eed71cc5b')
depends_on('py-setuptools', type='build')
- depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-pyinstrument/package.py b/var/spack/repos/builtin/packages/py-pyinstrument/package.py
index ffc4c9ef0b..104680d4bf 100644
--- a/var/spack/repos/builtin/packages/py-pyinstrument/package.py
+++ b/var/spack/repos/builtin/packages/py-pyinstrument/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,15 @@ class PyPyinstrument(PythonPackage):
"""Call stack profiler for Python. Shows you why your code is slow!"""
homepage = "https://github.com/joerick/pyinstrument"
- url = "https://github.com/joerick/pyinstrument/archive/v3.1.3.tar.gz"
+ pypi = "pyinstrument/pyinstrument-4.0.3.tar.gz"
- version('3.1.3', sha256='ca4571775caa06444cd7e832056afc21175130271fe3f3481e3ab1bf67f96c8b')
- version('3.1.0', sha256='02319607daf65110e246085f5e2ee111f565f213eed1991229f2d58e9a7657a5')
+ version('4.0.3', sha256='08caf41d21ae8f24afe79c664a34af1ed1e17aa5d4441cd9b1dc15f87bbbac95')
+ version('3.1.3', sha256='353c7000a6563b16c0be0c6a04104d42b3154c5cd7c1979ab66efa5fdc5f5571')
+ version('3.1.0', sha256='10c1fed4996a72c3e1e2bac1940334756894dbd116df3cc3b2d9743f2ae43016')
+ depends_on('python@3.7:', when='@4:', type=('build', 'run'))
+ depends_on('python@3.6:', when='@3.3:3.4', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-pytest-runner', type='build')
- depends_on('npm', type='build')
- depends_on('py-pyinstrument-cext@0.2.2:', type=('build', 'run'))
- depends_on('py-pytest', type='test')
+ depends_on('py-pytest-runner', when='@:3.1.3', type='build')
+ depends_on('npm', when='@:3', type='build')
+ depends_on('py-pyinstrument-cext@0.2.2:', when='@:3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pyjnius/package.py b/var/spack/repos/builtin/packages/py-pyjnius/package.py
new file mode 100644
index 0000000000..78ee5467a5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyjnius/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyPyjnius(PythonPackage):
+ """Pyjnius is a Python library for accessing Java classes."""
+
+ homepage = "https://pyjnius.readthedocs.io/en/stable"
+ pypi = "pyjnius/pyjnius-1.3.0.0.tar.gz"
+
+ version('1.3.0.0', sha256='d20845e75a2d18224e661d0e2bc2ce9141f17472e685cd6579847b0a7b5da6ad')
+
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-six@1.7:', type=('build', 'run'))
+ depends_on('py-cython', type=('build', 'run'))
+ depends_on('java', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pyjwt/package.py b/var/spack/repos/builtin/packages/py-pyjwt/package.py
index a8006ef623..e8e86ac83f 100644
--- a/var/spack/repos/builtin/packages/py-pyjwt/package.py
+++ b/var/spack/repos/builtin/packages/py-pyjwt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,15 @@ class PyPyjwt(PythonPackage):
"""JSON Web Token implementation in Python"""
homepage = "https://github.com/jpadilla/pyjwt"
- url = "https://pypi.io/packages/source/P/PyJWT/PyJWT-1.7.1.tar.gz"
+ pypi = "PyJWT/PyJWT-1.7.1.tar.gz"
+ version('2.1.0', sha256='fba44e7898bbca160a2b2b501f492824fc8382485d3a6f11ba5d0c1937ce6130')
version('1.7.1', sha256='8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96')
variant('crypto', default=False, description='Build with cryptography support')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('python@3.6:', when='@2.1.0:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-cryptography@1.4:', when='+crypto', type=('build', 'run'))
- depends_on('py-pytest@4.0.1:4.99.99', type='test')
- depends_on('py-pytest-cov@2.6.0:2.99.99', type='test')
- depends_on('py-pytest-runner@4.2:4.99', type='test')
+ depends_on('py-cryptography@3.3.1:3.999', when='@2.1.0:+crypto', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pyke/package.py b/var/spack/repos/builtin/packages/py-pyke/package.py
index 634e109e20..11709272b9 100644
--- a/var/spack/repos/builtin/packages/py-pyke/package.py
+++ b/var/spack/repos/builtin/packages/py-pyke/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPyke(PythonPackage):
engine (expert system) written in 100% Python.
"""
- homepage = "http://sourceforge.net/projects/pyke"
+ homepage = "https://sourceforge.net/projects/pyke"
url = "https://sourceforge.net/projects/pyke/files/pyke/1.1.1/pyke-1.1.1.zip"
version('1.1.1', sha256='b0b294f435c6e6d2d4a80badf57d92cb66814dfe21e644a521901209e6a3f8ae')
diff --git a/var/spack/repos/builtin/packages/py-pykml/package.py b/var/spack/repos/builtin/packages/py-pykml/package.py
index bfa1359ebf..2f389166cf 100644
--- a/var/spack/repos/builtin/packages/py-pykml/package.py
+++ b/var/spack/repos/builtin/packages/py-pykml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,11 +12,9 @@ class PyPykml(PythonPackage):
XML documents.
"""
- homepage = "https://pypi.org/project/pykml/"
- url = "https://pypi.io/packages/source/p/pykml/pykml-0.1.3.tar.gz"
+ pypi = "pykml/pykml-0.1.3.tar.gz"
version('0.1.3', sha256='e1a133e582f0b4652a6b00bac970b446d90580664e5a634a670731c990ff9f05')
depends_on('py-setuptools', type='build')
depends_on('py-lxml@2.2.6:', type=('build', 'run'))
- depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-pykokkos-base/package.py b/var/spack/repos/builtin/packages/py-pykokkos-base/package.py
new file mode 100644
index 0000000000..cfe0744fb9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pykokkos-base/package.py
@@ -0,0 +1,62 @@
+# Copyright 2013-2021 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 PyPykokkosBase(CMakePackage, PythonPackage):
+ '''Minimal set of bindings for Kokkos interoperability with Python
+ (initialize, finalize, View, DynRankView, Kokkos-tools)'''
+
+ homepage = 'https://github.com/kokkos/pykokkos-base.git'
+ git = 'https://github.com/kokkos/pykokkos-base.git'
+ maintainers = ['jrmadsen']
+
+ version('main', branch='main', submodules=False)
+ version('0.0.5', commit='45f6e892c007ab124fabb3a545f4744537eafb55', submodules=False)
+ version('0.0.4', commit='2efe1220d0128d3f2d371c9ed5234c4978d73a77', submodules=False)
+ version('0.0.3', commit='4fe4421ac624ba2efe1eee265153e690622a18a5', submodules=False)
+
+ variant(
+ 'layouts',
+ default=True,
+ description='Build Kokkos View/DynRankView with layout variants',
+ )
+ variant(
+ 'memory_traits',
+ default=True,
+ description='Build Kokkos View/DynRankView with memory trait variants',
+ )
+ variant(
+ 'view_ranks',
+ default='4',
+ description='Max Kokkos View dimensions',
+ values=('1', '2', '3', '4', '5', '6', '7'),
+ multi=False,
+ )
+
+ extends('python')
+ depends_on('cmake@3.16:', type='build')
+ depends_on('py-pybind11', type='build')
+ depends_on('kokkos@3.4.00:', type=('build', 'run'))
+ depends_on('python@3:', type=('build', 'run'))
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ self.define('ENABLE_INTERNAL_KOKKOS', False),
+ self.define('ENABLE_INTERNAL_PYBIND11', False),
+ self.define('PYTHON_EXECUTABLE', spec['python'].command.path),
+ self.define('Python3_EXECUTABLE', spec['python'].command.path),
+ self.define_from_variant('ENABLE_VIEW_RANKS', 'view_ranks'),
+ ]
+
+ for dep in ('layouts', 'memory_traits'):
+ args.append(self.define_from_variant('ENABLE_' + dep.upper(), dep))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/py-pykwalify/package.py b/var/spack/repos/builtin/packages/py-pykwalify/package.py
index 4439f1d0f4..46c3195640 100644
--- a/var/spack/repos/builtin/packages/py-pykwalify/package.py
+++ b/var/spack/repos/builtin/packages/py-pykwalify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPykwalify(PythonPackage):
"""
homepage = "https://github.com/grokzen/pykwalify"
- url = "https://pypi.io/packages/source/p/pykwalify/pykwalify-1.7.0.tar.gz"
+ pypi = "pykwalify/pykwalify-1.7.0.tar.gz"
version('1.7.0', sha256='7e8b39c5a3a10bc176682b3bd9a7422c39ca247482df198b402e8015defcceb2')
version('1.6.1', sha256='191fd3f457f23c0aa8538c3a5c0249f70eeb1046e88d0eaaef928e09c44dff8d')
diff --git a/var/spack/repos/builtin/packages/py-pyliblzma/package.py b/var/spack/repos/builtin/packages/py-pyliblzma/package.py
index 5630768af5..5533795e52 100644
--- a/var/spack/repos/builtin/packages/py-pyliblzma/package.py
+++ b/var/spack/repos/builtin/packages/py-pyliblzma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPyliblzma(PythonPackage):
"""Python bindings for liblzma"""
homepage = "https://launchpad.net/pyliblzma"
- url = "https://pypi.io/packages/source/p/pyliblzma/pyliblzma-0.5.3.tar.bz2"
+ pypi = "pyliblzma/pyliblzma-0.5.3.tar.bz2"
version('0.5.3', sha256='08d762f36d5e59fb9bb0e22e000c300b21f97e35b713321ee504cfb442667957')
diff --git a/var/spack/repos/builtin/packages/py-pylikwid/package.py b/var/spack/repos/builtin/packages/py-pylikwid/package.py
new file mode 100644
index 0000000000..01869732e1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pylikwid/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyPylikwid(PythonPackage):
+ """Python interface to the LIKWID tools library with calls for system
+ topology, process/thread affinity, hardware performance monitoring
+ and the manipulation of system features like frequencies and
+ prefetchers."""
+
+ homepage = "https://github.com/RRZE-HPC/pylikwid"
+ pypi = "pylikwid/pylikwid-0.4.0.tar.gz"
+ git = "https://github.com/RRZE-HPC/pylikwid.git"
+
+ maintainers = ['TomTheBear']
+
+ version('0.4.0', sha256='f7894a6d7ebcea7da133ef639599a314f850f55cd6c5ffdd630bb879bd2aa0b8')
+
+ variant('cuda',
+ default=False,
+ description='with Nvidia GPU profiling support')
+
+ depends_on('likwid', when='~cuda')
+ depends_on('likwid+cuda', when='+cuda')
+
+ def setup_build_environment(self, env):
+ env.set('LIKWID_PREFIX', self.spec['likwid'].prefix)
diff --git a/var/spack/repos/builtin/packages/py-pylint/package.py b/var/spack/repos/builtin/packages/py-pylint/package.py
index 23cbfcf93a..3f2ffce12c 100644
--- a/var/spack/repos/builtin/packages/py-pylint/package.py
+++ b/var/spack/repos/builtin/packages/py-pylint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,9 @@ from spack import *
class PyPylint(PythonPackage):
"""python code static checker"""
- homepage = "https://pypi.python.org/pypi/pylint"
- url = "https://pypi.io/packages/source/p/pylint/pylint-1.6.5.tar.gz"
+ pypi = "pylint/pylint-1.6.5.tar.gz"
+ version('2.8.2', sha256='586d8fa9b1891f4b725f587ef267abe2a1bad89d6b184520c7f07a253dd6e217')
version('2.3.1', sha256='723e3db49555abaf9bf79dc474c6b9e2935ad82230b10c1138a71ea41ac0fff1')
version('2.3.0', sha256='ee80c7af4f127b2a480d83010c9f0e97beb8eaa652b78c2837d3ed30b12e1182')
version('1.9.4', sha256='ee1e85575587c5b58ddafa25e1c1b01691ef172e139fc25585e5d3f02451da93')
@@ -22,21 +22,26 @@ class PyPylint(PythonPackage):
extends('python', ignore=r'bin/pytest')
depends_on('python@2.7:2.8,3.4:3.6', when='@:1', type=('build', 'run'))
- depends_on('python@3.4:', when='@2:', type=('build', 'run'))
+ depends_on('python@3.4:', when='@2:2.7.999', type=('build', 'run'))
+ depends_on('python@3.6:', when='@2.8.2:', type=('build', 'run'))
depends_on('py-astroid', type=('build', 'run'))
# note there is no working version of astroid for this
depends_on('py-astroid@1.5.1:', type=('build', 'run'), when='@1.7:')
depends_on('py-astroid@1.6:1.9', type=('build', 'run'), when='@1.9.4')
depends_on('py-astroid@2.0:', type=('build', 'run'), when='@2.2.0:')
- depends_on('py-astroid@2.2.0:2.999.999', type=('build', 'run'), when='@2.3.0:')
- depends_on('py-six', type=('build', 'run'), when='@1:')
+ depends_on('py-astroid@2.2.0:2.999.999', type=('build', 'run'), when='@2.3.0:2.7.999')
+ depends_on('py-astroid@2.5.6:2.6.999', type=('build', 'run'), when='@2.8.0:')
+
+ depends_on('py-six', type=('build', 'run'), when='@1:2.3.1')
depends_on('py-isort@4.2.5:', type=('build', 'run'))
- depends_on('py-isort@4.2.5:4.999', when='@2.3.1:', type=('build', 'run'))
+ depends_on('py-isort@4.2.5:5.999', when='@2.3.1:', type=('build', 'run'))
depends_on('py-mccabe', type=('build', 'run'))
depends_on('py-mccabe@0.6.0:0.6.999', when='@2.3.1:', type=('build', 'run'))
depends_on('py-editdistance', type=('build', 'run'), when='@:1.7')
depends_on('py-setuptools@17.1:', type='build')
+ depends_on('py-setuptools-scm', type='build', when='@2.8.2:')
# depends_on('py-setuptools-scm@1.15.0:', type='build')
depends_on('py-configparser', when='^python@:2.8', type=('build', 'run'))
depends_on('py-backports-functools-lru-cache', when='^python@:2.8', type=('build', 'run'))
depends_on('py-singledispatch', when='^python@:3.3.99', type=('build', 'run'))
+ depends_on('py-toml@0.7.1:', type=('build', 'run'), when='@2.8.2:')
diff --git a/var/spack/repos/builtin/packages/py-pylops/package.py b/var/spack/repos/builtin/packages/py-pylops/package.py
new file mode 100644
index 0000000000..0a4092084b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pylops/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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 PyPylops(PythonPackage):
+ """Many useful operators, however, do not lend themselves to an explicit
+ matrix representation when used to solve large-scale problems. PyLops operators,
+ on the other hand, still represent a matrix and can be treated in a similar way,
+ but do not rely on the explicit creation of a dense (or sparse) matrix itself.
+ Conversely, the forward and adjoint operators are represented by small pieces of
+ codes that mimic the effect of the matrix on a vector or another matrix."""
+
+ pypi = "pylops/pylops-1.12.0.tar.gz"
+ git = "https://github.com/PyLops/pylops.git"
+
+ maintainers = ['archxlith']
+
+ version('master', branch='master')
+ version('1.12.0', sha256='0e9caef46bbef9691acd133cb9b6d13e19510e8682aaa8f4eb15d9bd9ff9ebb6')
+ version('1.11.1', sha256='87010358b1119ebe1f8a601b2768d16d7bd26d55bd0c91a6e83db763e5715f7c')
+
+ variant('advanced', default=False, description='Install optional libraries')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-numpy@1.15:', type=('build', 'run'))
+ depends_on('py-scipy@1.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-llvmlite', when='+advanced', type=('build', 'run'))
+ depends_on('py-numba', when='+advanced', type=('build', 'run'))
+ depends_on('py-pyfftw', when='+advanced', type=('build', 'run'))
+ depends_on('py-pywavelets', when='+advanced', type=('build', 'run'))
+ depends_on('py-scikit-fmm', when='+advanced', type=('build', 'run'))
+ depends_on('py-spgl1', when='+advanced', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pymatgen/package.py b/var/spack/repos/builtin/packages/py-pymatgen/package.py
index 5da5c1bee3..c0e8710772 100644
--- a/var/spack/repos/builtin/packages/py-pymatgen/package.py
+++ b/var/spack/repos/builtin/packages/py-pymatgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyPymatgen(PythonPackage):
analysis code powering the Materials Project."""
homepage = "http://www.pymatgen.org/"
- url = "https://pypi.io/packages/source/p/pymatgen/pymatgen-4.7.2.tar.gz"
+ pypi = "pymatgen/pymatgen-4.7.2.tar.gz"
version('4.7.2', sha256='e439b78cc3833a03963c3c3efe349d8a0e52a1550c8a05c56a89aa1b86657436')
version('4.6.2', sha256='f34349090c6f604f7d402cb09cd486830b38523639d7160d7fd282d504036a0e')
diff --git a/var/spack/repos/builtin/packages/py-pymc3/package.py b/var/spack/repos/builtin/packages/py-pymc3/package.py
index 5f4fbce9a6..63e53d12be 100644
--- a/var/spack/repos/builtin/packages/py-pymc3/package.py
+++ b/var/spack/repos/builtin/packages/py-pymc3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class PyPymc3(PythonPackage):
Carlo (MCMC) and variational inference (VI) algorithms. Its flexibility and
extensibility make it applicable to a large suite of problems."""
- homepage = "http://github.com/pymc-devs/pymc3"
- url = "https://pypi.io/packages/source/p/pymc3/pymc3-3.8.tar.gz"
+ homepage = "https://github.com/pymc-devs/pymc3"
+ pypi = "pymc3/pymc3-3.8.tar.gz"
version('3.8', sha256='1bb2915e4a29877c681ead13932b0b7d276f7f496e9c3f09ba96b977c99caf00')
diff --git a/var/spack/repos/builtin/packages/py-pymeeus/package.py b/var/spack/repos/builtin/packages/py-pymeeus/package.py
index 7dc522bd51..7fed1f69c2 100644
--- a/var/spack/repos/builtin/packages/py-pymeeus/package.py
+++ b/var/spack/repos/builtin/packages/py-pymeeus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPymeeus(PythonPackage):
"""Library of astronomical algorithms in Python."""
homepage = "https://github.com/architest/pymeeus"
- url = "https://pypi.io/packages/source/P/PyMeeus/PyMeeus-0.3.6.tar.gz"
+ pypi = "PyMeeus/PyMeeus-0.3.6.tar.gz"
version('0.3.6', sha256='1f1ba0682e1b5c6b0cd6432c966e8bc8acc31737ea6f0ae79917a2189a98bb87')
diff --git a/var/spack/repos/builtin/packages/py-pyminifier/package.py b/var/spack/repos/builtin/packages/py-pyminifier/package.py
index edff48c36c..ab5394c501 100644
--- a/var/spack/repos/builtin/packages/py-pyminifier/package.py
+++ b/var/spack/repos/builtin/packages/py-pyminifier/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyPyminifier(PythonPackage):
"""Pyminifier is a Python code minifier, obfuscator, and compressor."""
- homepage = "http://liftoff.github.io/pyminifier/"
- url = "https://pypi.io/packages/source/p/pyminifier/pyminifier-2.1.tar.gz"
+ homepage = "https://liftoff.github.io/pyminifier/"
+ pypi = "pyminifier/pyminifier-2.1.tar.gz"
version('2.1', sha256='e192618fe901830e9298825b32828bc9555ae8649e05af37bfab2db328546777')
diff --git a/var/spack/repos/builtin/packages/py-pymol/package.py b/var/spack/repos/builtin/packages/py-pymol/package.py
index ba0d0e9275..557caf7692 100644
--- a/var/spack/repos/builtin/packages/py-pymol/package.py
+++ b/var/spack/repos/builtin/packages/py-pymol/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pymongo/package.py b/var/spack/repos/builtin/packages/py-pymongo/package.py
index 41e13d305f..5804ffc1be 100644
--- a/var/spack/repos/builtin/packages/py-pymongo/package.py
+++ b/var/spack/repos/builtin/packages/py-pymongo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,8 +15,7 @@ class PyPymongo(PythonPackage):
PyMongo supports MongoDB 2.6, 3.0, 3.2, 3.4, 3.6, 4.0 and 4.2."""
- homepage = "https://pypi.org/project/pymongo/"
- url = "https://pypi.io/packages/source/p/pymongo/pymongo-3.9.0.tar.gz"
+ pypi = "pymongo/pymongo-3.9.0.tar.gz"
version('3.9.0', sha256='4249c6ba45587b959292a727532826c5032d59171f923f7f823788f413c2a5a3')
version('3.6.0', sha256='c6de26d1e171cdc449745b82f1addbc873d105b8e7335097da991c0fc664a4a8')
diff --git a/var/spack/repos/builtin/packages/py-pymorph/package.py b/var/spack/repos/builtin/packages/py-pymorph/package.py
index 5ef91f7f3f..d17509d76a 100644
--- a/var/spack/repos/builtin/packages/py-pymorph/package.py
+++ b/var/spack/repos/builtin/packages/py-pymorph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPymorph(PythonPackage):
"""
homepage = "http://luispedro.org/software/pymorph/"
- url = "https://pypi.io/packages/source/p/pymorph/pymorph-0.96.tar.gz"
+ pypi = "pymorph/pymorph-0.96.tar.gz"
version('0.96', sha256='5dd648e4cb4c3495ee6031bc8020ed8216f3d6cb8c0dcd0427b215b75d7d29ad')
diff --git a/var/spack/repos/builtin/packages/py-pympler/package.py b/var/spack/repos/builtin/packages/py-pympler/package.py
index 0aa7d03986..35c1abca04 100644
--- a/var/spack/repos/builtin/packages/py-pympler/package.py
+++ b/var/spack/repos/builtin/packages/py-pympler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPympler(PythonPackage):
"""
homepage = "https://github.com/pympler/pympler"
- url = "https://pypi.io/packages/source/P/Pympler/Pympler-0.4.3.tar.gz"
+ pypi = "Pympler/Pympler-0.4.3.tar.gz"
version('0.4.3', sha256='430528fff6cde1bae0a305e8df647b158c3cc4930cff122bf228293829ee1e56')
version('0.4.2', sha256='3c3f9d8eb3dddf4f29c433433ea77c9c3f2f0dcc06575c0c2a9d81b2602893b2')
diff --git a/var/spack/repos/builtin/packages/py-pymsgbox/package.py b/var/spack/repos/builtin/packages/py-pymsgbox/package.py
new file mode 100644
index 0000000000..4d067d5c4e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pymsgbox/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyPymsgbox(PythonPackage):
+ """A simple, cross-platform, pure Python module for
+ JavaScript-like message boxes."""
+
+ homepage = "https://github.com/asweigart/pymsgbox"
+ pypi = "PyMsgBox/PyMsgBox-1.0.9.tar.gz"
+
+ version('1.0.9', sha256='2194227de8bff7a3d6da541848705a155dcbb2a06ee120d9f280a1d7f51263ff')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pymumps/package.py b/var/spack/repos/builtin/packages/py-pymumps/package.py
new file mode 100644
index 0000000000..c3c1fb4eb6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pymumps/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2021 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 PyPymumps(PythonPackage):
+ """Python bindings for MUMPS, a parallel sparse direct solver"""
+
+ homepage = "https://github.com/pymumps/pymumps"
+ pypi = "PyMUMPS/PyMUMPS-0.3.2.tar.gz"
+ git = "https://github.com/PyMumps/pymumps.git"
+
+ # Add a list of GitHub accounts to notify when the
+ # package is updated
+ maintainers = ['payerle']
+
+ version('0.3.2', sha256='f290ec4850098f108fb91cb9e7fa07302ebf5076e4329f8e6ea4924de8ba35df')
+
+ depends_on('py-cython', type='build')
+ depends_on('py-setuptools', type='build')
+ depends_on('mumps', type='link')
+ depends_on('py-mpi4py', type=('build', 'run'))
+
+ # Patch to add libmumps_common.so to library dependencies
+ # See https://github.com/PyMumps/pymumps/issues/13
+ patch('py-pymumps.setup.patch')
+
+ phases = ['build_ext', 'install']
+
+ def build_ext_args(self, spec, prefix):
+ # Requires --library-dirs,
+ # '--libraries', spec['mumps'].prefix.libs, does not cut it
+ args = ['--include-dirs',
+ spec['mumps'].prefix.include,
+ '--library-dirs',
+ spec['mumps'].libs.directories[0],
+ '--rpath',
+ spec['mumps'].libs.directories[0],
+ '-l', 'dmumps',
+ '-l', 'mumps_common',
+ '-l', 'pord',
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/py-pymumps/py-pymumps.setup.patch b/var/spack/repos/builtin/packages/py-pymumps/py-pymumps.setup.patch
new file mode 100644
index 0000000000..c4743ae541
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pymumps/py-pymumps.setup.patch
@@ -0,0 +1,15 @@
+# Add mumps_common to library list
+# This is solution proposed in
+# https://github.com/PyMumps/pymumps/issues/13
+diff -Naur spack-src/setup.py spack-src.patched/setup.py
+--- spack-src/setup.py 2018-11-05 16:57:21.000000000 -0500
++++ spack-src.patched/setup.py 2020-10-26 11:23:41.363767947 -0400
+@@ -35,7 +35,7 @@
+ Extension(
+ 'mumps._dmumps',
+ sources=['mumps/_dmumps.pyx'],
+- libraries=['dmumps'],
++ libraries=['dmumps', 'mumps_common'],
+ ),
+ ],
+ install_requires=['mpi4py'],
diff --git a/var/spack/repos/builtin/packages/py-pymysql/package.py b/var/spack/repos/builtin/packages/py-pymysql/package.py
index 96f23fa088..63f5ed2a42 100644
--- a/var/spack/repos/builtin/packages/py-pymysql/package.py
+++ b/var/spack/repos/builtin/packages/py-pymysql/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPymysql(PythonPackage):
"""Pure-Python MySQL client library"""
homepage = "https://github.com/PyMySQL/PyMySQL/"
- url = "https://pypi.io/packages/source/p/pymysql/PyMySQL-0.9.2.tar.gz"
+ pypi = "pymysql/PyMySQL-0.9.2.tar.gz"
version('0.9.2', sha256='9ec760cbb251c158c19d6c88c17ca00a8632bac713890e465b2be01fdc30713f')
diff --git a/var/spack/repos/builtin/packages/py-pynacl/package.py b/var/spack/repos/builtin/packages/py-pynacl/package.py
index a428b3756e..5840ac831e 100644
--- a/var/spack/repos/builtin/packages/py-pynacl/package.py
+++ b/var/spack/repos/builtin/packages/py-pynacl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "PyNaCl/PyNaCl-1.4.0.tar.gz"
version('1.4.0', sha256='54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505')
@@ -16,3 +16,4 @@ class PyPynacl(PythonPackage):
depends_on('py-setuptools', type='build')
depends_on('py-six', type=('build', 'run'))
depends_on('py-cffi@1.4.1:', type=('build', 'run'))
+ depends_on('py-wheel', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pynio/package.py b/var/spack/repos/builtin/packages/py-pynio/package.py
index 3f24c7165f..2ff4cd7085 100644
--- a/var/spack/repos/builtin/packages/py-pynio/package.py
+++ b/var/spack/repos/builtin/packages/py-pynio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pynn/package.py b/var/spack/repos/builtin/packages/py-pynn/package.py
index 12304f9c9c..5f5775c77d 100644
--- a/var/spack/repos/builtin/packages/py-pynn/package.py
+++ b/var/spack/repos/builtin/packages/py-pynn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class PyPynn(PythonPackage):
network models
"""
- homepage = "http://neuralensemble.org/PyNN/"
- url = "https://pypi.io/packages/source/P/PyNN/PyNN-0.8.3.tar.gz"
+ homepage = "https://neuralensemble.org/PyNN/"
+ pypi = "PyNN/PyNN-0.8.3.tar.gz"
git = "https://github.com/NeuralEnsemble/PyNN.git"
version('0.9.1', sha256='bbc60fea3235427191feb2daa0e2fa07eb1c3946104c068ac8a2a0501263b0b1')
@@ -30,5 +30,3 @@ class PyPynn(PythonPackage):
depends_on('py-neo@0.3:0.4.1', type=('build', 'run'), when="@:0.8.3")
depends_on('py-neo@0.5.0:', type=('build', 'run'), when="@0.9.0:")
-
- depends_on('py-mock@1.0:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-pynvml/package.py b/var/spack/repos/builtin/packages/py-pynvml/package.py
new file mode 100644
index 0000000000..9eea797d0d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pynvml/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyPynvml(PythonPackage):
+ """Provides a Python interface to GPU management and monitoring
+ functions. This is a wrapper around the NVML library. For
+ information about the NVML library, see the NVML developer page
+ https://developer.nvidia.com/nvidia-management-library-nvml"""
+
+ homepage = "https://www.nvidia.com/"
+ pypi = "pynvml/pynvml-8.0.4.tar.gz"
+
+ version('8.0.4', sha256='c8d4eadc648c7e12a3c9182a9750afd8481b76412f83747bcc01e2aa829cde5d')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@3.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pyodbc/package.py b/var/spack/repos/builtin/packages/py-pyodbc/package.py
index 68a83caf2c..459968a038 100644
--- a/var/spack/repos/builtin/packages/py-pyodbc/package.py
+++ b/var/spack/repos/builtin/packages/py-pyodbc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPyodbc(PythonPackage):
decimal."""
homepage = "https://github.com/mkleehammer/pyodbc"
- url = "https://pypi.io/packages/source/p/pyodbc/pyodbc-4.0.26.tar.gz"
+ pypi = "pyodbc/pyodbc-4.0.26.tar.gz"
version('4.0.26', sha256='e52700b5d24a846483b5ab80acd9153f8e593999c9184ffea11596288fb33de3')
diff --git a/var/spack/repos/builtin/packages/py-pyomo/package.py b/var/spack/repos/builtin/packages/py-pyomo/package.py
index c56f5b9d77..32cb85b9f3 100644
--- a/var/spack/repos/builtin/packages/py-pyomo/package.py
+++ b/var/spack/repos/builtin/packages/py-pyomo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pyopencl/package.py b/var/spack/repos/builtin/packages/py-pyopencl/package.py
index 78baa07ea5..d73bc1419d 100644
--- a/var/spack/repos/builtin/packages/py-pyopencl/package.py
+++ b/var/spack/repos/builtin/packages/py-pyopencl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPyopencl(PythonPackage):
"""Python wrapper for OpenCL."""
homepage = "https://documen.tician.de/pyopencl/"
- url = "https://pypi.io/packages/source/p/pyopencl/pyopencl-2020.2.2.tar.gz"
+ pypi = "pyopencl/pyopencl-2020.2.2.tar.gz"
maintainers = ['matthiasdiener']
diff --git a/var/spack/repos/builtin/packages/py-pyopenssl/package.py b/var/spack/repos/builtin/packages/py-pyopenssl/package.py
index 70e0c86c72..424d815685 100644
--- a/var/spack/repos/builtin/packages/py-pyopenssl/package.py
+++ b/var/spack/repos/builtin/packages/py-pyopenssl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyPyopenssl(PythonPackage):
drop your pyOpenSSL dependency."""
homepage = "https://pyopenssl.org/"
- url = "https://pypi.io/packages/source/p/pyOpenSSL/pyOpenSSL-19.0.0.tar.gz"
+ pypi = "pyOpenSSL/pyOpenSSL-19.0.0.tar.gz"
version('19.0.0', sha256='aeca66338f6de19d1aa46ed634c3b9ae519a64b458f8468aec688e7e3c20f200')
diff --git a/var/spack/repos/builtin/packages/py-pypar/package.py b/var/spack/repos/builtin/packages/py-pypar/package.py
index b8ead69dbb..a742d350a2 100644
--- a/var/spack/repos/builtin/packages/py-pypar/package.py
+++ b/var/spack/repos/builtin/packages/py-pypar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPypar(PythonPackage):
"""Pypar is an efficient but easy-to-use module that allows programs
written in Python to run in parallel on multiple processors and
communicate using MPI."""
- homepage = "http://code.google.com/p/pypar/"
+ homepage = "https://github.com/daleroberts/pypar"
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pypar/pypar-2.1.5_108.tgz"
version('2.1.5_108', sha256='6076c47d32d48424a07c7b7b29ac16e12cc4b2d28b681b895f94fa76cd82fa12')
diff --git a/var/spack/repos/builtin/packages/py-pyparsing/package.py b/var/spack/repos/builtin/packages/py-pyparsing/package.py
index ea7efac809..76ad6fb0eb 100644
--- a/var/spack/repos/builtin/packages/py-pyparsing/package.py
+++ b/var/spack/repos/builtin/packages/py-pyparsing/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,10 @@ from spack import *
class PyPyparsing(PythonPackage):
"""A Python Parsing Module."""
- homepage = "http://pyparsing.wikispaces.com/"
- url = "https://pypi.io/packages/source/p/pyparsing/pyparsing-2.4.2.tar.gz"
-
- import_modules = ['pyparsing']
+ homepage = "https://pyparsing-docs.readthedocs.io/en/latest/"
+ pypi = "pyparsing/pyparsing-2.4.2.tar.gz"
+ version('2.4.7', sha256='c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1')
version('2.4.2', sha256='6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80')
version('2.4.0', sha256='1873c03321fc118f4e9746baf201ff990ceb915f433f23b395f5580d1840cb2a')
version('2.3.1', sha256='66c9268862641abcac4a96ba74506e594c884e3f57690a696d21ad8210ed667a')
diff --git a/var/spack/repos/builtin/packages/py-pypeflow/package.py b/var/spack/repos/builtin/packages/py-pypeflow/package.py
index 225ad550fa..444767d2de 100644
--- a/var/spack/repos/builtin/packages/py-pypeflow/package.py
+++ b/var/spack/repos/builtin/packages/py-pypeflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pypeg2/package.py b/var/spack/repos/builtin/packages/py-pypeg2/package.py
index 344f9cd5c1..3b4d77c881 100644
--- a/var/spack/repos/builtin/packages/py-pypeg2/package.py
+++ b/var/spack/repos/builtin/packages/py-pypeg2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPypeg2(PythonPackage):
"""A PEG Parser-Interpreter in Python"""
homepage = "https://fdik.org/pyPEG2/"
- url = "https://pypi.io/packages/source/p/pypeg2/pyPEG2-2.15.2.tar.gz"
+ pypi = "pypeg2/pyPEG2-2.15.2.tar.gz"
version('2.15.2', sha256='2b2d4f80d8e1a9370b2a91f4a25f4abf7f69b85c8da84cd23ec36451958a1f6d')
diff --git a/var/spack/repos/builtin/packages/py-pyperclip/package.py b/var/spack/repos/builtin/packages/py-pyperclip/package.py
index 441f5fca3a..f1947cc507 100644
--- a/var/spack/repos/builtin/packages/py-pyperclip/package.py
+++ b/var/spack/repos/builtin/packages/py-pyperclip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,10 @@ class PyPyperclip(PythonPackage):
"""A cross-platform clipboard module for Python."""
homepage = "https://github.com/asweigart/pyperclip"
- url = "https://pypi.io/packages/source/p/pyperclip/pyperclip-1.7.0.tar.gz"
+ pypi = "pyperclip/pyperclip-1.7.0.tar.gz"
+ version('1.8.2', sha256='105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57')
version('1.7.0', sha256='979325468ccf682104d5dcaf753f869868100631301d3e72f47babdea5700d1c')
depends_on('py-setuptools', type='build')
+ depends_on('xclip', type='run', when='platform=linux')
diff --git a/var/spack/repos/builtin/packages/py-pyperf/package.py b/var/spack/repos/builtin/packages/py-pyperf/package.py
index 435e1d8255..802742d63a 100644
--- a/var/spack/repos/builtin/packages/py-pyperf/package.py
+++ b/var/spack/repos/builtin/packages/py-pyperf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPyperf(PythonPackage):
analyze benchmarks.
"""
- homepage = "https://pypi.python.org/pypi/pyperf"
+ homepage = "https://github.com/vstinner/pyperf"
url = "https://github.com/vstinner/pyperf/archive/1.5.1.tar.gz"
version('1.6.1', sha256='fbe793f6f2e036ab4dcca105b5c5aa34fd331dd881e7a3e158e5e218c63cfc32')
diff --git a/var/spack/repos/builtin/packages/py-pyprecice/deactivate-version-check-via-pip.patch b/var/spack/repos/builtin/packages/py-pyprecice/deactivate-version-check-via-pip.patch
deleted file mode 100644
index e7b13aa666..0000000000
--- a/var/spack/repos/builtin/packages/py-pyprecice/deactivate-version-check-via-pip.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 9282639..d69c285 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1,15 +1,20 @@
- import os
- import subprocess
- import warnings
--from packaging import version
--import pip
-+from setuptools._vendor.packaging import version
-+
-+# If installed with pip we need to check its version
-+try:
-+ import pip
-+ if version.parse(pip.__version__) < version.parse("19.0"):
-+ # version 19.0 is required, since we are using pyproject.toml for definition of build-time depdendencies. See https://pip.pypa.io/en/stable/news/#id209
-+ warnings.warn("You are using pip version {}. However, pip version > 19.0 is recommended. You can continue with the installation, but installation problems can occour. Please refer to https://github.com/precice/python-bindings#build-time-dependencies-cython-numpy-defined-in-pyprojecttoml-are-not-installed-automatically for help.".format(pip.__version__))
-
--if version.parse(pip.__version__) < version.parse("19.0"):
-- # version 19.0 is required, since we are using pyproject.toml for definition of build-time depdendencies. See https://pip.pypa.io/en/stable/news/#id209
-- warnings.warn("You are using pip version {}. However, pip version > 19.0 is recommended. You can continue with the installation, but installation problems can occour. Please refer to https://github.com/precice/python-bindings#build-time-dependencies-cython-numpy-defined-in-pyprojecttoml-are-not-installed-automatically for help.".format(pip.__version__))
-+ if version.parse(pip.__version__) < version.parse("10.0.1"):
-+ warnings.warn("You are using pip version {}. However, pip version > 10.0.1 is required. If you continue with installation it is likely that you will face an error. See https://github.com/precice/python-bindings#version-of-pip3-is-too-old".format(pip.__version__))
-+except:
-+ warnings.warn("Assuming that you are not using pip!")
-
--if version.parse(pip.__version__) < version.parse("10.0.1"):
-- warnings.warn("You are using pip version {}. However, pip version > 10.0.1 is required. If you continue with installation it is likely that you will face an error. See https://github.com/precice/python-bindings#version-of-pip3-is-too-old".format(pip.__version__))
-
- from enum import Enum
- from setuptools import setup
diff --git a/var/spack/repos/builtin/packages/py-pyprecice/package.py b/var/spack/repos/builtin/packages/py-pyprecice/package.py
index 36cb9957f5..6df24e4d20 100644
--- a/var/spack/repos/builtin/packages/py-pyprecice/package.py
+++ b/var/spack/repos/builtin/packages/py-pyprecice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,13 +12,17 @@ class PyPyprecice(PythonPackage):
C++ library preCICE.
"""
- homepage = "https://www.precice.org"
+ homepage = "https://precice.org"
git = "https://github.com/precice/python-bindings.git"
url = "https://github.com/precice/python-bindings/archive/v2.0.0.1.tar.gz"
- maintainers = ["ajaust", "BenjaminRueth"]
+ maintainers = ["ajaust", "BenjaminRodenberg", "IshaanDesai"]
# Always prefer final version of release candidate
version("develop", branch="develop")
+ version('2.2.1.1', sha256='d96674f1ff91761c29efce34f8e09e2ec29a4862227b7204439e865dbe755a86')
+ version('2.2.0.2', sha256='2287185f9ad7500dced53459543d27bb66bd2438c2e4bf81ee3317e6a00513d5')
+ version('2.2.0.1', sha256='229625e2e6df03987ababce5abe2021b0974cbe5a588b936a9cba653f4908d4b')
+ version('2.1.1.2', sha256='363eb3eeccf964fd5ee87012c1032353dd1518662868f2b51f04a6d8a7154045')
version("2.1.1.1", sha256="972f574549344b6155a8dd415b6d82512e00fa154ca25ae7e36b68d4d2ed2cf4")
version("2.1.0.1", sha256="ac5cb7412c6b96b08a04fa86ea38e52d91ea739a3bd1c209baa93a8275e4e01a")
version("2.0.2.1", sha256="c6fca26332316de041f559aecbf23122a85d6348baa5d3252be4ddcd5e94c09a")
@@ -26,34 +30,25 @@ class PyPyprecice(PythonPackage):
version("2.0.0.2", sha256="5f055d809d65ec2e81f4d001812a250f50418de59990b47d6bcb12b88da5f5d7")
version("2.0.0.1", sha256="96eafdf421ec61ad6fcf0ab1d3cf210831a815272984c470b2aea57d4d0c9e0e")
- # Import module as a test
- import_modules = ["precice"]
-
- patch("deactivate-version-check-via-pip.patch")
-
- variant("mpi", default=True, description="Enables MPI support")
-
- depends_on("mpi", when="+mpi")
+ depends_on("precice@develop", when="@develop")
+ depends_on("precice@2.2.1", when="@2.2.1.1:2.2.1.99")
+ depends_on("precice@2.2.0", when="@2.2.0.1:2.2.0.99")
depends_on("precice@2.1.1", when="@2.1.1.1:2.1.1.99")
depends_on("precice@2.1.0", when="@2.1.0.1:2.1.0.99")
depends_on("precice@2.0.2", when="@2.0.2.1:2.0.2.99")
depends_on("precice@2.0.1", when="@2.0.1.1:2.0.1.99")
depends_on("precice@2.0.0", when="@2.0.0.1:2.0.0.99")
- depends_on("python@3:", type=("build", "run"))
+ depends_on("python@3:", type=("build", "link", "run"))
depends_on("py-setuptools", type="build")
- depends_on("py-wheel", type="build")
- depends_on("py-numpy", type=("build", "run"))
- depends_on("py-mpi4py", type=("build", "run"), when="+mpi")
- depends_on("py-cython@0.29:", type=("build"))
-
- phases = ['build_ext', 'install']
-
- def build_ext_args(self, spec, prefix):
- return [
- "--include-dirs=" + spec["precice"].headers.directories[0],
- "--library-dirs=" + spec["precice"].libs.directories[0]
- ]
-
- def install(self, spec, prefix):
- self.setup_py("install", "--prefix={0}".format(prefix))
+ depends_on("py-numpy", type=("build", "link", "run"))
+ depends_on("py-mpi4py", type=("build", "run"))
+ depends_on("py-cython@0.29:", type="build")
+ depends_on("py-packaging", when="@:2.1", type="build")
+ depends_on("py-pip", when="@:2.1", type="build")
+
+ @when("@:2.1")
+ def patch(self):
+ filter_file(
+ "distutils.command.install", "setuptools.command.install", "setup.py"
+ )
diff --git a/var/spack/repos/builtin/packages/py-pyprof2html/package.py b/var/spack/repos/builtin/packages/py-pyprof2html/package.py
index 1ed3728834..df3585369d 100644
--- a/var/spack/repos/builtin/packages/py-pyprof2html/package.py
+++ b/var/spack/repos/builtin/packages/py-pyprof2html/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPyprof2html(PythonPackage):
"""Python cProfile and hotshot profile's data to HTML Converter"""
- homepage = "https://pypi.python.org/pypi/pyprof2html/"
- url = "https://pypi.io/packages/source/p/pyprof2html/pyprof2html-0.3.1.tar.gz"
+ pypi = "pyprof2html/pyprof2html-0.3.1.tar.gz"
version('0.3.1', sha256='db2d37e21d8c76f2fd25fb1ba9273c9b3ff4a98a327e37d943fed1ea225a6720')
diff --git a/var/spack/repos/builtin/packages/py-pyproj/package.py b/var/spack/repos/builtin/packages/py-pyproj/package.py
index dfc0edf924..01dc4cccdf 100644
--- a/var/spack/repos/builtin/packages/py-pyproj/package.py
+++ b/var/spack/repos/builtin/packages/py-pyproj/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,32 +7,53 @@ from spack import *
class PyPyproj(PythonPackage):
- """Python interface to the PROJ.4 Library."""
+ """Python interface to PROJ (cartographic projections and
+ coordinate transformations library)."""
homepage = "https://github.com/pyproj4/pyproj"
- url = "https://pypi.io/packages/source/p/pyproj/pyproj-2.2.0.tar.gz"
+ pypi = "pyproj/pyproj-2.2.0.tar.gz"
git = "https://github.com/pyproj4/pyproj.git"
maintainers = ['citibeth', 'adamjstewart']
- import_modules = ['pyproj']
+ version('3.1.0', sha256='67b94f4e694ae33fc90dfb7da0e6b5ed5f671dd0acc2f6cf46e9c39d56e16e1a')
+ version('3.0.1', sha256='bfbac35490dd17f706700673506eeb8170f8a2a63fb5878171d4e6eef242d141')
+ version('3.0.0', sha256='539e320d06e5441edadad2e2ab276e1877445eca384fc1c056b5501453d433c2')
+ version('2.6.1', sha256='52556f245f1112f121091937b47738d1fbcbd0f13be6fb32689de31ab0975d24')
version('2.6.0', sha256='977542d2f8cf2981cf3ad72cedfebcd6ac56977c7aa830d9b49fa7888b56e83d')
version('2.2.0', sha256='0a4f793cc93539c2292638c498e24422a2ec4b25cb47545addea07724b2a56e5')
version('2.1.3', sha256='99c52788b01a7bb9a88024bf4d40965c0a66a93d654600b5deacf644775f424d')
- version('1.9.6', sha256='e0c02b1554b20c710d16d673817b2a89ff94738b0b537aead8ecb2edc4c4487b')
- version('1.9.5.1', sha256='53fa54c8fa8a1dfcd6af4bf09ce1aae5d4d949da63b90570ac5ec849efaf3ea8')
-
- depends_on('python@:2', when='@:1.9.5.1')
- depends_on('python@3:', when='@2.3:')
- depends_on('python@3.5:', when='@2.6.0:')
- depends_on('py-setuptools', type='build')
- depends_on('py-cython', type='build')
- depends_on('py-cython@0.28:', when='@2.6.0:')
- depends_on('py-aenum', type=('build', 'run'), when='@2.2:^python@:3.5')
+ version('1.9.6', sha256='e0c02b1554b20c710d16d673817b2a89ff94738b0b537aead8ecb2edc4c4487b', deprecated=True)
+ version('1.9.5.1', sha256='53fa54c8fa8a1dfcd6af4bf09ce1aae5d4d949da63b90570ac5ec849efaf3ea8', deprecated=True)
+
+ # In setup.cfg and setup.py
+ depends_on('python@3.7:', when='@3.1:', type=('build', 'link', 'run'))
+ depends_on('python@3.6:', when='@3.0:', type=('build', 'link', 'run'))
+ depends_on('python@3.5:', when='@2.3:', type=('build', 'link', 'run'))
+ depends_on('python@2.7:2.8,3.5:', when='@2.2:', type=('build', 'link', 'run'))
+ depends_on('python@2.6:2.8,3.3:', type=('build', 'link', 'run'))
+
+ # In setup.py
+ # https://pyproj4.github.io/pyproj/stable/installation.html#installing-from-source
depends_on('proj')
- depends_on('proj@:5', when='@:1')
- depends_on('proj@6.1:', when='@2.2:')
- depends_on('proj@6.0:', when='@2.0:')
+ depends_on('proj@7.2:', when='@3.0.1:')
+ depends_on('proj@7.2.0:7.2.999', when='@3.0.0')
+ depends_on('proj@6.2:7.0', when='@2.4:2.6')
+ depends_on('proj@6.1:7.0', when='@2.2:2.3')
+ depends_on('proj@6.0:6.999', when='@2.0:2.1')
+ depends_on('proj@:5.2', when='@:1.9')
+
+ # In setup.py
+ depends_on('py-setuptools', type='build')
+ depends_on('py-certifi', when='@3.0:', type=('build', 'run'))
+ depends_on('py-aenum', when='@2.2.0:2.2.999 ^python@:3.5.999', type=('build', 'run'))
+
+ # In pyproject.toml
+ depends_on('py-cython@0.28.4:', when='@2.0:')
def setup_build_environment(self, env):
+ # https://pyproj4.github.io/pyproj/stable/installation.html#pyproj-build-environment-variables
+ env.set('PROJ_VERSION', self.spec['proj'].version)
env.set('PROJ_DIR', self.spec['proj'].prefix)
+ env.set('PROJ_LIBDIR', self.spec['proj'].libs.directories[0])
+ env.set('PROJ_INCDIR', self.spec['proj'].headers.directories[0])
diff --git a/var/spack/repos/builtin/packages/py-pyqi/package.py b/var/spack/repos/builtin/packages/py-pyqi/package.py
index 9cca0d591b..dfd1c0e613 100644
--- a/var/spack/repos/builtin/packages/py-pyqi/package.py
+++ b/var/spack/repos/builtin/packages/py-pyqi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPyqi(PythonPackage):
including at the command line, HTML, and API levels."""
homepage = "https://pyqi.readthedocs.io"
- url = "https://pypi.io/packages/source/p/pyqi/pyqi-0.3.2.tar.gz"
+ pypi = "pyqi/pyqi-0.3.2.tar.gz"
version('0.3.2', sha256='8f1711835779704e085e62194833fed9ac2985e398b4ceac6faf6c7f40f5d15f')
diff --git a/var/spack/repos/builtin/packages/py-pyqt4/package.py b/var/spack/repos/builtin/packages/py-pyqt4/package.py
index 5405911401..73a72efcb8 100644
--- a/var/spack/repos/builtin/packages/py-pyqt4/package.py
+++ b/var/spack/repos/builtin/packages/py-pyqt4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,13 +16,6 @@ class PyPyqt4(SIPPackage):
url = "http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.12.3/PyQt4_gpl_x11-4.12.3.tar.gz"
sip_module = 'PyQt4.sip'
- import_modules = [
- 'PyQt4', 'PyQt4.Qt', 'PyQt4.QtCore', 'PyQt4.QtDeclarative',
- 'PyQt4.QtDesigner', 'PyQt4.QtGui', 'PyQt4.QtHelp',
- 'PyQt4.QtMultimedia', 'PyQt4.QtNetwork', 'PyQt4.QtOpenGL',
- 'PyQt4.QtScript', 'PyQt4.QtScriptTools', 'PyQt4.QtSql', 'PyQt4.QtSvg',
- 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXml', 'PyQt4.QtXmlPatterns'
- ]
version('4.12.3', sha256='a00f5abef240a7b5852b7924fa5fdf5174569525dc076cd368a566619e56d472')
version('4.11.3', sha256='853780dcdbe2e6ba785d703d059b096e1fc49369d3e8d41a060be874b8745686',
diff --git a/var/spack/repos/builtin/packages/py-pyqt5/package.py b/var/spack/repos/builtin/packages/py-pyqt5/package.py
index e26c66a891..5556e76576 100644
--- a/var/spack/repos/builtin/packages/py-pyqt5/package.py
+++ b/var/spack/repos/builtin/packages/py-pyqt5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,14 +16,6 @@ class PyPyqt5(SIPPackage):
list_url = "https://www.riverbankcomputing.com/software/pyqt/download5"
sip_module = 'PyQt5.sip'
- import_modules = [
- 'PyQt5', 'PyQt5.QtCore', 'PyQt5.QtGui', 'PyQt5.QtHelp',
- 'PyQt5.QtMultimedia', 'PyQt5.QtMultimediaWidgets', 'PyQt5.QtNetwork',
- 'PyQt5.QtOpenGL', 'PyQt5.QtPrintSupport', 'PyQt5.QtQml',
- 'PyQt5.QtQuick', 'PyQt5.QtSvg', 'PyQt5.QtTest', 'PyQt5.QtWebChannel',
- 'PyQt5.QtWebSockets', 'PyQt5.QtWidgets', 'PyQt5.QtXml',
- 'PyQt5.QtXmlPatterns'
- ]
version('5.13.1', sha256='54b7f456341b89eeb3930e786837762ea67f235e886512496c4152ebe106d4af')
version('5.13.0', sha256='0cdbffe5135926527b61cc3692dd301cd0328dd87eeaf1313e610787c46faff9')
@@ -45,6 +37,8 @@ class PyPyqt5(SIPPackage):
args = [
'--pyuic5-interpreter', self.spec['python'].command.path,
'--sipdir', self.prefix.share.sip.PyQt5,
+ '--designer-plugindir', self.prefix.plugins.designer,
+ '--qml-plugindir', self.prefix.plugins.PyQt5,
'--stubsdir', join_path(
self.prefix,
self.spec['python'].package.site_packages_dir,
@@ -54,3 +48,6 @@ class PyPyqt5(SIPPackage):
args.extend(['--qsci-api',
'--qsci-api-destdir', self.prefix.share.qsci])
return args
+
+ def setup_run_environment(self, env):
+ env.prepend_path('QT_PLUGIN_PATH', self.prefix.plugins)
diff --git a/var/spack/repos/builtin/packages/py-pyquaternion/package.py b/var/spack/repos/builtin/packages/py-pyquaternion/package.py
index 82dc26d796..399f7ad994 100644
--- a/var/spack/repos/builtin/packages/py-pyquaternion/package.py
+++ b/var/spack/repos/builtin/packages/py-pyquaternion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPyquaternion(PythonPackage):
"""Python morphology manipulation toolkit"""
homepage = "https://kieranwynn.github.io/pyquaternion/"
- url = "https://pypi.org/packages/source/p/pyquaternion/pyquaternion-0.9.5.tar.gz"
+ pypi = "pyquaternion/pyquaternion-0.9.5.tar.gz"
version('0.9.5', sha256='2d89d19259d62a8fbd25219eee7dacc1f6bb570becb70e1e883f622597c7d81d')
diff --git a/var/spack/repos/builtin/packages/py-pyrad/package.py b/var/spack/repos/builtin/packages/py-pyrad/package.py
index cb16b4296d..758699b0aa 100644
--- a/var/spack/repos/builtin/packages/py-pyrad/package.py
+++ b/var/spack/repos/builtin/packages/py-pyrad/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pyrect/package.py b/var/spack/repos/builtin/packages/py-pyrect/package.py
new file mode 100644
index 0000000000..e77adbb17b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyrect/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyPyrect(PythonPackage):
+ """PyRect is a simple module with a Rect class for
+ Pygame-like rectangular areas."""
+
+ homepage = "https://github.com/asweigart/pyrect"
+ pypi = "PyRect/PyRect-0.1.4.tar.gz"
+
+ version('0.1.4', sha256='3b2fa7353ce32a11aa6b0a15495968d2a763423c8947ae248b92c037def4e202')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pyrosar/package.py b/var/spack/repos/builtin/packages/py-pyrosar/package.py
index b0af64b270..5c82d856dc 100644
--- a/var/spack/repos/builtin/packages/py-pyrosar/package.py
+++ b/var/spack/repos/builtin/packages/py-pyrosar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pyrsistent/package.py b/var/spack/repos/builtin/packages/py-pyrsistent/package.py
index 0a1baafdd8..765760efe5 100644
--- a/var/spack/repos/builtin/packages/py-pyrsistent/package.py
+++ b/var/spack/repos/builtin/packages/py-pyrsistent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,11 +11,11 @@ class PyPyrsistent(PythonPackage):
(by some referred to as functional data structures).
Persistent in the sense that they are immutable."""
- homepage = "http://github.com/tobgu/pyrsistent/"
- url = "https://pypi.io/packages/source/p/pyrsistent/pyrsistent-0.15.7.tar.gz"
+ homepage = "https://github.com/tobgu/pyrsistent/"
+ pypi = "pyrsistent/pyrsistent-0.15.7.tar.gz"
version('0.15.7', sha256='cdc7b5e3ed77bed61270a47d35434a30617b9becdf2478af76ad2c6ade307280')
- depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'link', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-six', 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 5459ef0a16..a11b6fd5e7 100644
--- a/var/spack/repos/builtin/packages/py-pysam/package.py
+++ b/var/spack/repos/builtin/packages/py-pysam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,10 @@ class PyPysam(PythonPackage):
"""A python module for reading, manipulating and writing genomic data
sets."""
- homepage = "https://pypi.python.org/pypi/pysam"
+ homepage = "https://github.com/pysam-developers/pysam"
url = "https://github.com/pysam-developers/pysam/archive/v0.14.1.tar.gz"
+ version('0.15.3', sha256='f553d48d0345404b6b103d0b82bad09c8d78420e1cc6bef33040553fc579e284')
version('0.15.2', sha256='8cb3dd70f0d825086ac059ec2445ebd2ec5f14af73e7f1f4bd358966aaee5ed3')
version('0.15.1', sha256='12221285af17e32b8f3fed033f90c6177a798afe41420eb5c3352d4e18ee12ed')
version('0.14.1', sha256='d2bb40cd083c1357768e4683377f03471d160cfe8421136630bfa47f5adb3219')
diff --git a/var/spack/repos/builtin/packages/py-pyscaf/package.py b/var/spack/repos/builtin/packages/py-pyscaf/package.py
index 53a9adfc56..7bcff058f4 100644
--- a/var/spack/repos/builtin/packages/py-pyscaf/package.py
+++ b/var/spack/repos/builtin/packages/py-pyscaf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyPyscaf(PythonPackage):
"""pyScaf orders contigs from genome assemblies utilising several types of
information"""
- homepage = "https://pypi.python.org/pypi/pyScaf"
- url = "https://pypi.io/packages/source/p/pyScaf/pyScaf-0.12a4.tar.gz"
+ pypi = "pyScaf/pyScaf-0.12a4.tar.gz"
version('0.12a4', sha256='3ce3f6fe80bd058831b6a38a56d464ef10f3ebbdd6bc3dcb0d7f127c0b2c1b36')
diff --git a/var/spack/repos/builtin/packages/py-pyscf/package.py b/var/spack/repos/builtin/packages/py-pyscf/package.py
index d0c36d5a79..0afc825828 100644
--- a/var/spack/repos/builtin/packages/py-pyscf/package.py
+++ b/var/spack/repos/builtin/packages/py-pyscf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,7 @@ class PyPyscf(PythonPackage):
maintainers = ['naromero77']
+ version('1.7.5', tag='v1.7.5')
version('1.7.3', tag='v1.7.3')
# dependencies
@@ -27,7 +28,8 @@ class PyPyscf(PythonPackage):
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'
+ depends_on('xcfun')
+ depends_on('xcfun@2.0.0a2', when='@:1.7.4')
def setup_build_environment(self, env):
# Tell PSCF where supporting libraries are located."
@@ -36,6 +38,7 @@ class PyPyscf(PythonPackage):
pyscf_search_dir = []
pyscf_search_dir.append(spec['blas'].prefix)
pyscf_search_dir.append(spec['libcint'].prefix)
+ pyscf_search_dir.append(spec['libcint'].prefix.lib64)
pyscf_search_dir.append(spec['libxc'].prefix)
pyscf_search_dir.append(spec['xcfun'].prefix)
pyscf_search_dir.append(spec['xcfun'].prefix.include.XCFun)
diff --git a/var/spack/repos/builtin/packages/py-pyscreeze/package.py b/var/spack/repos/builtin/packages/py-pyscreeze/package.py
new file mode 100644
index 0000000000..08248b7af8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyscreeze/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyPyscreeze(PythonPackage):
+ """PyScreeze can take screenshots, save them to files, and
+ locate images within the screen. This is useful if you have
+ a small image of, say, a button that needs to be clicked
+ and want to locate it on the screen."""
+
+ homepage = "https://github.com/asweigart/pyscreeze"
+ pypi = "PyScreeze/PyScreeze-0.1.27.tar.gz"
+
+ version('0.1.27', sha256='cba2f264fe4b6c70510061cb2ba6e1da0e3bfecfdbe8a3b2cd6305a2afda9e6b')
+
+ depends_on('python@2.7:2.999,3.2:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('pil', type=('build', 'run'))
+ depends_on('scrot', type='run')
diff --git a/var/spack/repos/builtin/packages/py-pyserial/package.py b/var/spack/repos/builtin/packages/py-pyserial/package.py
index 07534b8c6b..43fe374209 100644
--- a/var/spack/repos/builtin/packages/py-pyserial/package.py
+++ b/var/spack/repos/builtin/packages/py-pyserial/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPyserial(PythonPackage):
"""Python Serial Port Extension"""
homepage = "https://github.com/pyserial/pyserial"
- url = "https://pypi.io/packages/source/p/pyserial/pyserial-3.1.1.tar.gz"
+ pypi = "pyserial/pyserial-3.1.1.tar.gz"
version('3.1.1', sha256='d657051249ce3cbd0446bcfb2be07a435e1029da4d63f53ed9b4cdde7373364c')
diff --git a/var/spack/repos/builtin/packages/py-pyshp/package.py b/var/spack/repos/builtin/packages/py-pyshp/package.py
index 1c0ff61d21..3ffaaeadd6 100644
--- a/var/spack/repos/builtin/packages/py-pyshp/package.py
+++ b/var/spack/repos/builtin/packages/py-pyshp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPyshp(PythonPackage):
pure Python."""
homepage = "https://github.com/GeospatialPython/pyshp"
- url = "https://pypi.io/packages/source/p/pyshp/pyshp-1.2.12.tar.gz"
+ pypi = "pyshp/pyshp-1.2.12.tar.gz"
version('2.1.0', sha256='e65c7f24d372b97d0920b864bbeb78322bb37b83f2606e2a2212631d5d51e5c0')
version('1.2.12', sha256='8dcd65e0aa2aa2951527ddb7339ea6e69023543d8a20a73fc51e2829b9ed6179')
diff --git a/var/spack/repos/builtin/packages/py-pyside/package.py b/var/spack/repos/builtin/packages/py-pyside/package.py
index f6c86506c1..4e267c781d 100644
--- a/var/spack/repos/builtin/packages/py-pyside/package.py
+++ b/var/spack/repos/builtin/packages/py-pyside/package.py
@@ -1,20 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PyPyside(PythonPackage):
"""Python bindings for Qt."""
- homepage = "https://pypi.python.org/pypi/pyside"
- url = "https://pypi.io/packages/source/P/PySide/PySide-1.2.2.tar.gz"
+ pypi = "PySide/PySide-1.2.2.tar.gz"
# More recent versions of PySide2 (for Qt5) have been taken under
# the offical Qt umbrella. For more information, see:
- # http://wiki.qt.io/Qt_for_Python_Development_Getting_Started
+ # https://wiki.qt.io/Qt_for_Python_Development_Getting_Started
# Version 1.2.4 claims to not work with Python 3.5, mostly
# because it hasn't been tested. Otherwise, it's the same as v1.2.3
diff --git a/var/spack/repos/builtin/packages/py-pyside2/package.py b/var/spack/repos/builtin/packages/py-pyside2/package.py
index fa70f45b0b..b98244a4f5 100644
--- a/var/spack/repos/builtin/packages/py-pyside2/package.py
+++ b/var/spack/repos/builtin/packages/py-pyside2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,13 +8,13 @@ from spack import *
class PyPyside2(PythonPackage):
"""Python bindings for Qt."""
- homepage = "https://pypi.org/project/PySide2/"
- url = "https://code.qt.io/pyside/pyside-setup.git"
+
+ homepage = "https://www.pyside.org/"
git = "https://code.qt.io/pyside/pyside-setup.git"
# More recent versions of PySide2 (for Qt5) have been taken under
# the offical Qt umbrella. For more information, see:
- # http://wiki.qt.io/Qt_for_Python_Development_Getting_Started
+ # https://wiki.qt.io/Qt_for_Python_Development_Getting_Started
version('develop', tag='dev')
version('5.14.2.1', tag='v5.14.2.1', submodules=True)
diff --git a/var/spack/repos/builtin/packages/py-pysmartdl/package.py b/var/spack/repos/builtin/packages/py-pysmartdl/package.py
index 16ba79f983..0508546226 100644
--- a/var/spack/repos/builtin/packages/py-pysmartdl/package.py
+++ b/var/spack/repos/builtin/packages/py-pysmartdl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPysmartdl(PythonPackage):
"""A Smart Download Manager for Python."""
- homepage = "https://pypi.python.org/pypi/pySmartDL/"
- url = "https://pypi.io/packages/source/p/pySmartDL/pySmartDL-1.3.2.tar.gz"
+ pypi = "pySmartDL/pySmartDL-1.3.2.tar.gz"
version('1.3.2', sha256='9a96deb3ee4f4ab2279b22eb908d506f57215e1fbad290d540adcebff187a52c')
version('1.2.5', sha256='d3968ce59412f99d8e17ca532a1d949d2aa770a914e3f5eb2c0385579dc2b6b8')
diff --git a/var/spack/repos/builtin/packages/py-pysocks/package.py b/var/spack/repos/builtin/packages/py-pysocks/package.py
index 200902f536..80866b0215 100644
--- a/var/spack/repos/builtin/packages/py-pysocks/package.py
+++ b/var/spack/repos/builtin/packages/py-pysocks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPysocks(PythonPackage):
"""A Python SOCKS client module."""
homepage = "https://github.com/Anorov/PySocks"
- url = "https://pypi.io/packages/source/P/PySocks/PySocks-1.7.1.tar.gz"
+ pypi = "PySocks/PySocks-1.7.1.tar.gz"
version('1.7.1', sha256='3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0')
version('1.6.6', sha256='02419a225ff5dcfc3c9695ef8fc9b4d8cc99658e650c6d4718d4c8f451e63f41')
@@ -18,5 +18,3 @@ class PyPysocks(PythonPackage):
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-psutil', type='test')
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-pysolar/package.py b/var/spack/repos/builtin/packages/py-pysolar/package.py
index 54edb7fd87..1f523c10aa 100644
--- a/var/spack/repos/builtin/packages/py-pysolar/package.py
+++ b/var/spack/repos/builtin/packages/py-pysolar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class PyPysolar(PythonPackage):
irradiation of any point on earth by the sun. It includes code
for extremely precise ephemeris calculations, and more."""
- homepage = "http://pysolar.readthedocs.io"
- url = "https://pypi.io/packages/source/p/pysolar/pysolar-0.8.tar.gz"
+ homepage = "https://pysolar.readthedocs.io"
+ pypi = "pysolar/pysolar-0.8.tar.gz"
version('0.8', sha256='548c05177acd2845143d9624e670635cd3e5c3a63782449ca35e090ca755c617')
diff --git a/var/spack/repos/builtin/packages/py-pyspark/package.py b/var/spack/repos/builtin/packages/py-pyspark/package.py
index 8b25e54c4b..68d5be974f 100644
--- a/var/spack/repos/builtin/packages/py-pyspark/package.py
+++ b/var/spack/repos/builtin/packages/py-pyspark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,11 +9,16 @@ from spack import *
class PyPyspark(PythonPackage):
"""Python bindings for Apache Spark"""
- homepage = "http://spark.apache.org"
- url = "https://pypi.io/packages/source/p/pyspark/pyspark-2.3.0.tar.gz"
+ homepage = "https://spark.apache.org"
+ pypi = "pyspark/pyspark-3.0.1.tar.gz"
+ version('3.0.1', sha256='38b485d3634a86c9a2923c39c8f08f003fdd0e0a3d7f07114b2fb4392ce60479')
version('2.4.4', sha256='13655eb113b8cf5f3f85b24fd92f86c4668a723723bd68949d028fa0df2cf694')
version('2.3.0', sha256='0b3536910e154c36a94239f0ba0a201f476aadc72006409e5787198ffd01986e')
+ depends_on('python@2.7:3.7', when='@:2.999', type=('build', 'run'))
+ depends_on('python@2.7:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-py4j', type=('build', 'run'))
+ depends_on('py-py4j@0.10.9', when='@3.0.1', type=('build', 'run'))
+ depends_on('py-py4j@0.10.7', when='@2.4.4', type=('build', 'run'))
+ depends_on('py-py4j@0.10.6', when='@2.3.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pysqlite/package.py b/var/spack/repos/builtin/packages/py-pysqlite/package.py
index a624f47dd6..ea470f7350 100644
--- a/var/spack/repos/builtin/packages/py-pysqlite/package.py
+++ b/var/spack/repos/builtin/packages/py-pysqlite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPysqlite(PythonPackage):
"""Python DB-API module for SQLite 3."""
homepage = "https://github.com/ghaering/pysqlite"
- url = "https://pypi.io/packages/source/p/pysqlite/pysqlite-2.8.3.tar.gz"
+ pypi = "pysqlite/pysqlite-2.8.3.tar.gz"
version('2.8.3', sha256='17d3335863e8cf8392eea71add33dab3f96d060666fe68ab7382469d307f4490')
diff --git a/var/spack/repos/builtin/packages/py-pystac/package.py b/var/spack/repos/builtin/packages/py-pystac/package.py
new file mode 100644
index 0000000000..03201993d1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pystac/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyPystac(PythonPackage):
+ """Python library for working with Spatiotemporal Asset Catalog (STAC)."""
+
+ homepage = "https://github.com/azavea/pystac.git"
+ pypi = "pystac/pystac-0.5.4.tar.gz"
+
+ version('0.5.4', sha256='9fc3359364685adf54e3bc78c87550a8bc8b0a927405419bd8e4bbd42a8efc79')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-python-dateutil@2.7.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytailf/package.py b/var/spack/repos/builtin/packages/py-pytailf/package.py
index 0b08866c12..a5bcdbe68f 100644
--- a/var/spack/repos/builtin/packages/py-pytailf/package.py
+++ b/var/spack/repos/builtin/packages/py-pytailf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPytailf(PythonPackage):
"""Simple python tail -f wrapper"""
homepage = "https://bitbucket.org/angry_elf/pytailf/src/default/"
- url = "https://pypi.io/packages/source/p/pytailf/pytailf-1.1.tar.bz2"
+ pypi = "pytailf/pytailf-1.1.tar.bz2"
version('1.1', sha256='d97135ef28ac4a51dfd98887131ce2bffd5d0d6ba757793a4b79740dfb067ace')
diff --git a/var/spack/repos/builtin/packages/py-pytest-arraydiff/package.py b/var/spack/repos/builtin/packages/py-pytest-arraydiff/package.py
new file mode 100644
index 0000000000..3dba597714
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-arraydiff/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyPytestArraydiff(PythonPackage):
+ """pytest plugin to help with comparing array output from tests"""
+
+ homepage = "https://github.com/astropy/pytest-arraydiff"
+ pypi = "pytest-arraydiff/pytest-arraydiff-0.3.tar.gz"
+
+ version('0.3', sha256='de2d62f53ecc107ed754d70d562adfa7573677a263216a7f19aa332f20dc6c15')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-pytest', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytest-benchmark/package.py b/var/spack/repos/builtin/packages/py-pytest-benchmark/package.py
new file mode 100644
index 0000000000..80c0b0c70d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-benchmark/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyPytestBenchmark(PythonPackage):
+ """A pytest fixture for benchmarking code."""
+
+ homepage = "https://github.com/ionelmc/pytest-benchmark"
+ pypi = "pytest-benchmark/pytest-benchmark-3.2.3.tar.gz"
+
+ version('3.2.3', sha256='ad4314d093a3089701b24c80a05121994c7765ce373478c8f4ba8d23c9ba9528')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytest@3.8:', type=('build', 'run'))
+ depends_on('py-py-cpuinfo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytest-cache/package.py b/var/spack/repos/builtin/packages/py-pytest-cache/package.py
index c74cd44384..b844f356bc 100644
--- a/var/spack/repos/builtin/packages/py-pytest-cache/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-cache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPytestCache(PythonPackage):
"""
homepage = "https://bitbucket.org/hpk42/pytest-cache/src/default/"
- url = "https://pypi.io/packages/source/p/pytest-cache/pytest-cache-1.0.tar.gz"
+ pypi = "pytest-cache/pytest-cache-1.0.tar.gz"
version('1.0', sha256='be7468edd4d3d83f1e844959fd6e3fd28e77a481440a7118d430130ea31b07a9')
diff --git a/var/spack/repos/builtin/packages/py-pytest-check-links/package.py b/var/spack/repos/builtin/packages/py-pytest-check-links/package.py
index 49269ce1f2..64688b7e19 100644
--- a/var/spack/repos/builtin/packages/py-pytest-check-links/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-check-links/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPytestCheckLinks(PythonPackage):
"""pytest plugin that checks URLs for HTML-containing files."""
homepage = "https://github.com/jupyterlab/pytest-check-links"
- url = "https://pypi.io/packages/source/p/pytest-check-links/pytest_check_links-0.3.4.tar.gz"
+ pypi = "pytest-check-links/pytest_check_links-0.3.4.tar.gz"
version('0.3.4', sha256='4b3216548431bf9796557e8ee8fd8e5e77a69a4690b3b2f9bcf6fb5af16a502b')
diff --git a/var/spack/repos/builtin/packages/py-pytest-cov/package.py b/var/spack/repos/builtin/packages/py-pytest-cov/package.py
index 154547cda9..d0cd2f2fe3 100644
--- a/var/spack/repos/builtin/packages/py-pytest-cov/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-cov/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPytestCov(PythonPackage):
"""Pytest plugin for measuring coverage."""
homepage = "https://github.com/pytest-dev/pytest-cov"
- url = "https://pypi.io/packages/source/p/pytest-cov/pytest-cov-2.8.1.tar.gz"
+ pypi = "pytest-cov/pytest-cov-2.8.1.tar.gz"
version('2.8.1', sha256='cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b')
version('2.3.1', sha256='fa0a212283cdf52e2eecc24dd6459bb7687cc29adb60cb84258fab73be8dda0f')
diff --git a/var/spack/repos/builtin/packages/py-pytest-cpp/package.py b/var/spack/repos/builtin/packages/py-pytest-cpp/package.py
new file mode 100644
index 0000000000..78bf707499
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-cpp/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyPytestCpp(PythonPackage):
+ """Use pytest runner to discover and execute C++ tests."""
+
+ homepage = "https://github.com/pytest-dev/pytest-cpp"
+ pypi = "pytest-cpp/pytest-cpp-1.4.0.tar.gz"
+
+ version('1.5.0', sha256='efb7eaac30f9f61515be181d04b70d80d60ce8871426f726ef1844e2db4f3353')
+ version('1.4.0', sha256='aa3a04fe7906e50094d1a9b8d38bc10eb59d0a8330a11a0f7a660405228b48ca')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-pytest@:5.3.999,5.4.2:', type=('build', 'run'))
+ depends_on('py-colorama', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytest-doctestplus/package.py b/var/spack/repos/builtin/packages/py-pytest-doctestplus/package.py
new file mode 100644
index 0000000000..bab8fabb89
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-doctestplus/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyPytestDoctestplus(PythonPackage):
+ """Pytest plugin with advanced doctest features."""
+
+ homepage = "https://www.astropy.org/"
+ pypi = "pytest-doctestplus/pytest-doctestplus-0.8.0.tar.gz"
+
+ version('0.9.0', sha256='6fe747418461d7b202824a3486ba8f4fa17a9bd0b1eddc743ba1d6d87f03391a')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools@30.3.0:', type=('build', 'run'))
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-pytest@4.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytest-flake8/package.py b/var/spack/repos/builtin/packages/py-pytest-flake8/package.py
index 108196f7cc..6c3ea2498d 100644
--- a/var/spack/repos/builtin/packages/py-pytest-flake8/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-flake8/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPytestFlake8(PythonPackage):
"""pytest plugin to check FLAKE8 requirements."""
homepage = "https://github.com/tholo/pytest-flake8"
- url = "https://pypi.io/packages/source/p/pytest-flake8/pytest-flake8-0.8.1.tar.gz"
+ pypi = "pytest-flake8/pytest-flake8-0.8.1.tar.gz"
version('0.8.1', sha256='aa10a6db147485d71dad391d4149388904c3072194d51755f64784ff128845fd')
diff --git a/var/spack/repos/builtin/packages/py-pytest-flakes/package.py b/var/spack/repos/builtin/packages/py-pytest-flakes/package.py
new file mode 100644
index 0000000000..47bfb13ebd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-flakes/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyPytestFlakes(PythonPackage):
+ """py.test plugin for efficiently checking python source with pyflakes."""
+
+ homepage = "https://github.com/asmeurer/pytest-flakes"
+ pypi = "pytest-flakes/pytest-flakes-4.0.2.tar.gz"
+
+ version('4.0.3', sha256='bf070c5485dad82d5b5f5d0eb08d269737e378492d9a68f5223b0a90924c7754')
+ version('4.0.2', sha256='6733db47937d9689032876359e5ee0ee6926e3638546c09220e2f86b3581d4c1')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytest@5:', type=('build', 'run'))
+ depends_on('py-pyflakes', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytest-forked/package.py b/var/spack/repos/builtin/packages/py-pytest-forked/package.py
index 9fe5556428..879d1d3e1d 100644
--- a/var/spack/repos/builtin/packages/py-pytest-forked/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-forked/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPytestForked(PythonPackage):
"""Run tests in isolated forked subprocesses."""
homepage = "https://github.com/pytest-dev/pytest-forked"
- url = "https://pypi.io/packages/source/p/pytest-forked/pytest-forked-1.1.1.tar.gz"
+ pypi = "pytest-forked/pytest-forked-1.1.1.tar.gz"
version('1.1.1', sha256='e2d46f319c8063a3a0536b18f9cdea6eea3bc9fe2cb16c94e1d6fad3abc37300')
diff --git a/var/spack/repos/builtin/packages/py-pytest-html/package.py b/var/spack/repos/builtin/packages/py-pytest-html/package.py
new file mode 100644
index 0000000000..bf914ce223
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-html/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyPytestHtml(PythonPackage):
+ """pytest-html is a plugin for pytest that generates
+ a HTML report for test results
+ """
+
+ homepage = "https://github.com/pytest-dev/pytest-html"
+ pypi = "pytest-html/pytest-html-3.1.1.tar.gz"
+
+ version('3.1.1', sha256='3ee1cf319c913d19fe53aeb0bc400e7b0bc2dbeb477553733db1dad12eb75ee3')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-pytest@5.0:5.999,6.0.1:', type=('build', 'run'))
+ depends_on('py-pytest-metadata', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytest-httpbin/package.py b/var/spack/repos/builtin/packages/py-pytest-httpbin/package.py
index 5e270bf4df..80c0c68946 100644
--- a/var/spack/repos/builtin/packages/py-pytest-httpbin/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-httpbin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPytestHttpbin(PythonPackage):
"""Easily test your HTTP library against a local copy of httpbin"""
homepage = "https://github.com/kevin1024/pytest-httpbin"
- url = "https://pypi.io/packages/source/p/pytest-httpbin/pytest-httpbin-1.0.0.tar.gz"
+ pypi = "pytest-httpbin/pytest-httpbin-1.0.0.tar.gz"
version('1.0.0', sha256='d8ce547f42423026550ed7765f6c6d50c033b43025e8592270a7abf970e19b72')
version('0.2.3', sha256='c5b698dfa474ffc9caebcb35e34346b753eb226aea5c2e1b69fefedbcf161bf8')
@@ -23,4 +23,3 @@ class PyPytestHttpbin(PythonPackage):
depends_on('py-decorator', when='@:0.2', type=('build', 'run'))
depends_on('py-httpbin', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-pytest-isort/package.py b/var/spack/repos/builtin/packages/py-pytest-isort/package.py
index d55b9550e2..846ac3671b 100644
--- a/var/spack/repos/builtin/packages/py-pytest-isort/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-isort/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,8 @@ from spack import *
class PyPytestIsort(PythonPackage):
"""py.test plugin to check import ordering using isort"""
- homepage = "http://github.com/moccu/pytest-isort/"
- url = "https://pypi.io/packages/source/p/pytest-isort/pytest-isort-0.3.1.tar.gz"
- import_modules = ['pytest_isort']
+ homepage = "https://github.com/moccu/pytest-isort/"
+ pypi = "pytest-isort/pytest-isort-0.3.1.tar.gz"
version('0.3.1', sha256='4bfee60dad1870b51700d55a85f5ceda766bd9d3d2878c1bbabee80e61b1be1a')
diff --git a/var/spack/repos/builtin/packages/py-pytest-metadata/package.py b/var/spack/repos/builtin/packages/py-pytest-metadata/package.py
new file mode 100644
index 0000000000..03e7ab92cf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-metadata/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyPytestMetadata(PythonPackage):
+ """pytest plugin for test session metadata"""
+
+ homepage = "https://github.com/pytest-dev/pytest-metadata"
+ pypi = "pytest-metadata/pytest-metadata-1.11.0.tar.gz"
+
+ version('1.11.0', sha256='71b506d49d34e539cc3cfdb7ce2c5f072bea5c953320002c95968e0238f8ecf1')
+
+ depends_on('python@2.7:2.8,3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-pytest@2.9:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytest-mock/package.py b/var/spack/repos/builtin/packages/py-pytest-mock/package.py
index e5a3240d99..125623ef75 100644
--- a/var/spack/repos/builtin/packages/py-pytest-mock/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-mock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPytestMock(PythonPackage):
"""Thin-wrapper around the mock package for easier use with py.test"""
homepage = "https://github.com/pytest-dev/pytest-mock"
- url = "https://pypi.io/packages/source/p/pytest-mock/pytest-mock-1.11.1.tar.gz"
+ pypi = "pytest-mock/pytest-mock-1.11.1.tar.gz"
version('1.11.1', sha256='f1ab8aefe795204efe7a015900296d1719e7bf0f4a0558d71e8599da1d1309d0')
version('1.2', sha256='f78971ed376fcb265255d1e4bb313731b3a1be92d7f3ecb19ea7fedc4a56fd0f',
diff --git a/var/spack/repos/builtin/packages/py-pytest-mypy/package.py b/var/spack/repos/builtin/packages/py-pytest-mypy/package.py
index 1f7cc82af8..6cb84feccb 100644
--- a/var/spack/repos/builtin/packages/py-pytest-mypy/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-mypy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPytestMypy(PythonPackage):
"""Mypy static type checker plugin for Pytest."""
homepage = "https://github.com/dbader/pytest-mypy"
- url = "https://pypi.io/packages/source/p/pytest-mypy/pytest-mypy-0.4.2.tar.gz"
+ pypi = "pytest-mypy/pytest-mypy-0.4.2.tar.gz"
version('0.4.2', sha256='5a5338cecff17f005b181546a13e282761754b481225df37f33d37f86ac5b304')
diff --git a/var/spack/repos/builtin/packages/py-pytest-openfiles/package.py b/var/spack/repos/builtin/packages/py-pytest-openfiles/package.py
new file mode 100644
index 0000000000..4707c3cd1a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-openfiles/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyPytestOpenfiles(PythonPackage):
+ """A plugin for the pytest framework that allows developers to detect
+ whether any file handles or other file-like objects were inadvertently
+ left open at the end of a unit test"""
+
+ homepage = "https://github.com/astropy/pytest-openfiles"
+ pypi = "pytest-openfiles/pytest-openfiles-0.5.0.tar.gz"
+
+ version('0.5.0', sha256='179c2911d8aee3441fee051aba08e0d9b4dab61b829ae4811906d5c49a3b0a58')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools@30.3.1:', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-pytest@4.6:', type=('build', 'run'))
+ depends_on('py-psutil', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytest-pep8/package.py b/var/spack/repos/builtin/packages/py-pytest-pep8/package.py
index f365a172eb..8f8fc59c59 100644
--- a/var/spack/repos/builtin/packages/py-pytest-pep8/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-pep8/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,7 @@ from spack import *
class PyPytestPep8(PythonPackage):
"""pytest plugin for efficiently checking PEP8 compliance"""
- homepage = "https://bitbucket.org/pytest-dev/pytest-pep8"
- url = "https://pypi.io/packages/source/p/pytest-pep8/pytest-pep8-1.0.6.tar.gz"
-
- import_modules = ['pytest_pep8']
+ pypi = "pytest-pep8/pytest-pep8-1.0.6.tar.gz"
version('1.0.6', sha256='032ef7e5fa3ac30f4458c73e05bb67b0f036a8a5cb418a534b3170f89f120318')
diff --git a/var/spack/repos/builtin/packages/py-pytest-qt/package.py b/var/spack/repos/builtin/packages/py-pytest-qt/package.py
new file mode 100644
index 0000000000..88b828e0b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-qt/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyPytestQt(PythonPackage):
+ """A pytest plugin that allows programmers to write tests for
+ PySide, PySide2 and PyQt applications."""
+
+ homepage = "https://github.com/pytest-dev/pytest-qt"
+ pypi = "pytest-qt/pytest-qt-3.3.0.tar.gz"
+
+ version('3.3.0', sha256='714b0bf86c5313413f2d300ac613515db3a1aef595051ab8ba2ffe619dbe8925')
+
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-pytest@3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytest-runner/package.py b/var/spack/repos/builtin/packages/py-pytest-runner/package.py
index d3337bcac9..1221464219 100644
--- a/var/spack/repos/builtin/packages/py-pytest-runner/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-runner/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,10 @@ class PyPytestRunner(PythonPackage):
"""Invoke py.test as distutils command with dependency resolution."""
homepage = "https://github.com/pytest-dev/pytest-runner"
- url = "https://pypi.io/packages/source/p/pytest-runner/pytest-runner-5.1.tar.gz"
-
- import_modules = ['ptr']
+ pypi = "pytest-runner/pytest-runner-5.1.tar.gz"
version('5.1', sha256='25a013c8d84f0ca60bb01bd11913a3bcab420f601f0f236de4423074af656e7a')
version('2.11.1', sha256='983a31eab45e375240e250161a556163bc8d250edaba97960909338c273a89b3')
- depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-setuptools-scm@1.15:', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pytest-timeout/package.py b/var/spack/repos/builtin/packages/py-pytest-timeout/package.py
new file mode 100644
index 0000000000..a9de608856
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-timeout/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyPytestTimeout(PythonPackage):
+ """A plugin which will terminate tests after a certain timeout,
+ assuming the test session isn't being debugged."""
+
+ homepage = "https://github.com/pytest-dev/pytest-timeout/"
+ pypi = "pytest-timeout/pytest-timeout-1.4.2.tar.gz"
+
+ version('1.4.2', sha256='20b3113cf6e4e80ce2d403b6fb56e9e1b871b510259206d40ff8d609f48bda76')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytest@3.6.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytest-xdist/package.py b/var/spack/repos/builtin/packages/py-pytest-xdist/package.py
index 389d7c7689..ed112cc47b 100644
--- a/var/spack/repos/builtin/packages/py-pytest-xdist/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest-xdist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPytestXdist(PythonPackage):
"""py.test xdist plugin for distributed testing and loop-on-failing mode"""
homepage = "https://github.com/pytest-dev/pytest-xdist"
- url = "https://pypi.io/packages/source/p/pytest-xdist/pytest-xdist-1.30.0.tar.gz"
+ pypi = "pytest-xdist/pytest-xdist-1.30.0.tar.gz"
version('1.30.0', sha256='5d1b1d4461518a6023d56dab62fb63670d6f7537f23e2708459a557329accf48')
version('1.29.0', sha256='3489d91516d7847db5eaecff7a2e623dba68984835dbe6cedb05ae126c4fb17f')
diff --git a/var/spack/repos/builtin/packages/py-pytest/package.py b/var/spack/repos/builtin/packages/py-pytest/package.py
index b6d2c914c5..65715fff73 100644
--- a/var/spack/repos/builtin/packages/py-pytest/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,17 +9,19 @@ from spack import *
class PyPytest(PythonPackage):
"""pytest: simple powerful testing with Python."""
- homepage = "http://pytest.org/"
- url = "https://pypi.io/packages/source/p/pytest/pytest-5.2.1.tar.gz"
-
- import_modules = ['pytest']
+ homepage = "https://pytest.org/"
+ pypi = "pytest/pytest-5.2.1.tar.gz"
+ version('6.2.4', sha256='50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b')
+ version('6.2.1', sha256='66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306')
+ version('6.1.1', sha256='8f593023c1a0f916110285b6efd7f99db07d59546e3d8c36fc60e2ab05d3be92')
version('5.3.4', sha256='1d122e8be54d1a709e56f82e2d85dcba3018313d64647f38a91aec88c239b600')
version('5.2.1', sha256='ca563435f4941d0cb34767301c27bc65c510cb82e90b9ecf9cb52dc2c63caaa0')
version('5.1.1', sha256='c3d5020755f70c82eceda3feaf556af9a341334414a8eca521a18f463bcead88')
version('4.6.9', sha256='19e8f75eac01dd3f211edd465b39efbcbdc8fc5f7866d7dd49fedb30d8adf339')
version('4.6.5', sha256='8fc39199bdda3d9d025d3b1f4eb99a192c20828030ea7c9a0d2840721de7d347')
version('4.6.2', sha256='bea27a646a3d74cbbcf8d3d4a06b2dfc336baf3dc2cc85cf70ad0157e73e8322')
+ version('4.4.0', sha256='f21d2f1fb8200830dcbb5d8ec466a9c9120e20d8b53c7585d180125cce1d297a')
version('4.3.0', sha256='067a1d4bf827ffdd56ad21bd46674703fce77c5957f6c1eef731f6146bfcef1c')
version('3.7.2', sha256='3459a123ad5532852d36f6f4501dfe1acf4af1dd9541834a164666aa40395b02')
version('3.7.1', sha256='86a8dbf407e437351cef4dba46736e9c5a6e3c3ac71b2e942209748e76ff2086')
@@ -27,29 +29,26 @@ class PyPytest(PythonPackage):
version('3.0.7', sha256='b70696ebd1a5e6b627e7e3ac1365a4bc60aaf3495e843c1e70448966c5224cab')
version('3.0.2', sha256='64d8937626dd2a4bc15ef0edd307d26636a72a3f3f9664c424d78e40efb1e339')
- depends_on('python@3.5:', when='@5:', type=('build', 'run'))
+ # python_requires
+ depends_on('python@3.6:', when='@6.2:', type=('build', 'run'))
+ depends_on('python@3.5:', when='@5:6.1', type=('build', 'run'))
depends_on('python@2.7:2.8,3.4:', when='@3.3:4', type=('build', 'run'))
depends_on('python@2.6:2.8,3.3:', when='@:3.2', type=('build', 'run'))
- # Most Python packages only require setuptools as a build dependency.
- # However, pytest requires setuptools during runtime as well.
- # FIXME: May no longer be needed at runtime, see:
- # https://github.com/pytest-dev/pytest/pull/5063
- depends_on('py-setuptools@40.0:', when='@3.9.2:', type=('build', 'run'))
+ # setup_requires
+ depends_on('py-setuptools@42.0:', when='@6.2:', type=('build', 'run'))
+ depends_on('py-setuptools@40.0:', when='@3.9.2:6.1.999', type=('build', 'run'))
depends_on('py-setuptools@30.3:', when='@3.9.0:3.9.1', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-setuptools-scm@3.4:', when='@6.2:', type='build')
depends_on('py-setuptools-scm', when='@3.1:', type='build')
- depends_on('py-py@1.5.0:', when='@3.3:', type=('build', 'run'))
- depends_on('py-py@1.4.33:', when='@3.1.2:3.2.3,3.2.5:3.2.999', type=('build', 'run'))
- depends_on('py-py@1.4.33:1.4.999', when='@3.2.4', type=('build', 'run'))
- depends_on('py-py@1.4.29:', when='@:3.1.1', type=('build', 'run'))
- depends_on('py-six@1.10.0:', when='@3.3:4', type=('build', 'run'))
- depends_on('py-packaging', when='@4.6:', type=('build', 'run'))
+
+ # install_requires
+ depends_on('py-attrs@19.2.0:', when='@6.2:', type=('build', 'run'))
+ depends_on('py-attrs@17.4.0:', when='@3.5:6.1.999', type=('build', 'run'))
depends_on('py-attrs@17.2.0:', when='@3.3:3.4', type=('build', 'run'))
- depends_on('py-attrs@17.4.0:', when='@3.5:', type=('build', 'run'))
- depends_on('py-more-itertools@4.0.0:', when='@3.5.1:', type=('build', 'run'))
- depends_on('py-more-itertools@4.0.0:6.0.0', when='@4.2.1:4.6.9 ^python@:2', type=('build', 'run'))
- depends_on('py-atomicwrites@1.0:', when='@3.6:5.2.999', type=('build', 'run'))
+ depends_on('py-iniconfig', when='@6.0:', type=('build', 'run'))
+ depends_on('py-packaging', when='@4.6:', type=('build', 'run'))
depends_on('py-pluggy@0.12:0.999', when='@4.6:', type=('build', 'run'))
depends_on('py-pluggy@0.9.0:0.9.999,0.11:0.999', when='@4.5.0:4.5.999', type=('build', 'run'))
depends_on('py-pluggy@0.11:', when='@4.4.2:4.4.999', type=('build', 'run'))
@@ -57,10 +56,24 @@ class PyPytest(PythonPackage):
depends_on('py-pluggy@0.7:', when='@3.7:4.3', type=('build', 'run'))
depends_on('py-pluggy@0.5:0.7', when='@3.6.4:3.6.999', type=('build', 'run'))
depends_on('py-pluggy@0.5:0.6', when='@:3.6.3', type=('build', 'run'))
+ depends_on('py-py@1.8.2:', when='@6:', type=('build', 'run'))
+ depends_on('py-py@1.5.0:', when='@3.3:5.999', type=('build', 'run'))
+ depends_on('py-py@1.4.33:', when='@3.1.2:3.2.3,3.2.5:3.2.999', type=('build', 'run'))
+ depends_on('py-py@1.4.33:1.4.999', when='@3.2.4', type=('build', 'run'))
+ depends_on('py-py@1.4.29:', when='@:3.1.1', type=('build', 'run'))
+ depends_on('py-toml', when='@6.0:', type=('build', 'run'))
+ depends_on('py-atomicwrites@1.0:', when='@5.3: platform=win32', type=('build', 'run'))
+ depends_on('py-atomicwrites@1.0:', when='@3.6:5.2.999', type=('build', 'run'))
+ depends_on('py-colorama', when='platform=win32', type=('build', 'run'))
+ depends_on('py-importlib-metadata@0.12:', when='@4.6:5.0', type=('build', 'run'))
+ depends_on('py-importlib-metadata@0.12:', when='@5.1: ^python@:3.7', type=('build', 'run'))
+
+ # Historic dependencies
+ depends_on('py-six@1.10.0:', when='@3.3:4', type=('build', 'run'))
+ depends_on('py-more-itertools@4.0.0:', when='@3.5.1:5.999', type=('build', 'run'))
+ depends_on('py-more-itertools@4.0.0:6.0.0', when='@4.2.1:4.6.9 ^python@:2', type=('build', 'run'))
depends_on('py-funcsigs@1.0:', when='@4.4: ^python@:2', type=('build', 'run'))
depends_on('py-funcsigs', when='@3.3:4.3 ^python@:2', type=('build', 'run'))
depends_on('py-pathlib2@2.2.0:', when='@3.7.1: ^python@:3.5', type=('build', 'run'))
depends_on('py-pathlib2', when='@3.7.0 ^python@:3.5', type=('build', 'run'))
- depends_on('py-importlib-metadata@0.12:', when='@4.6:5.0', type=('build', 'run'))
- depends_on('py-importlib-metadata@0.12:', when='@5.1: ^python@:3.7', type=('build', 'run'))
- depends_on('py-wcwidth', when='@4.5:', type=('build', 'run'))
+ depends_on('py-wcwidth', when='@4.5:5.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-python-benedict/package.py b/var/spack/repos/builtin/packages/py-python-benedict/package.py
new file mode 100644
index 0000000000..5f4f0da674
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python-benedict/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyPythonBenedict(PythonPackage):
+ """A dict subclass with keylist/keypath support, I/O shortcuts
+ and many utilities."""
+
+ homepage = "https://github.com/fabiocaccamo/python-benedict"
+ pypi = "python-benedict/python-benedict-0.22.2.tar.gz"
+
+ version('0.23.2', sha256='b7bdffd92ba1c9b9e044bda08ed545a48a45bd7a5207f93b4b2a8eb2660d1b4c')
+
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-ftfy@4.4.3', when='^python@:3.3.999', type=('build', 'run'))
+ depends_on('py-ftfy', when='^python@3.4:', type=('build', 'run'))
+ depends_on('py-mailchecker', type=('build', 'run'))
+ depends_on('py-phonenumbers', type=('build', 'run'))
+ depends_on('py-python-dateutil', type=('build', 'run'))
+ depends_on('py-python-fsutil', type=('build', 'run'))
+ depends_on('py-python-slugify', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-toml', type=('build', 'run'))
+ depends_on('py-xmltodict', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-python-box/package.py b/var/spack/repos/builtin/packages/py-python-box/package.py
new file mode 100644
index 0000000000..a80f0f0fa8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python-box/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 PyPythonBox(PythonPackage):
+ """Advanced Python dictionaries with dot notation access
+
+ Box will automatically make otherwise inaccessible keys safe to access as
+ an attribute. You can always pass conversion_box=False to Box to disable
+ that behavior. Also, all new dict and lists added to a Box or BoxList
+ object are converted automatically."""
+
+ homepage = "https://github.com/cdgriffith/Box"
+ pypi = "python-box/python-box-5.3.0.tar.gz"
+
+ version('5.3.0', sha256='4ed4ef5d34de505a65c01e3f1911de8cdb29484fcae0c035141dce535c6c194a')
+
+ variant('extras',
+ default=False,
+ description='install the "extras" packages')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+
+ depends_on('py-ruamel-yaml', when='+extras')
+ depends_on('py-toml', when='+extras')
+ depends_on('py-msgpack', when='+extras')
diff --git a/var/spack/repos/builtin/packages/py-python-certifi-win32/package.py b/var/spack/repos/builtin/packages/py-python-certifi-win32/package.py
new file mode 100644
index 0000000000..a7588f6612
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python-certifi-win32/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyPythonCertifiWin32(PythonPackage):
+ """This package patches certifi at runtime to also include certificates from the
+ windows certificate store."""
+
+ homepage = "https://gitlab.com/alelec/python-certifi-win32"
+ git = "https://gitlab.com/alelec/python-certifi-win32.git"
+
+ # Tarball missing version information, need to use git checkout
+ version('1.6', tag='v1.6')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-wrapt@1.10.4:', type=('build', 'run'))
+ depends_on('py-wincertstore', type=('build', 'run'), when='^python@:3.3.999')
+ depends_on('py-certifi', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-python-daemon/package.py b/var/spack/repos/builtin/packages/py-python-daemon/package.py
index 6b70c03234..8185918c75 100644
--- a/var/spack/repos/builtin/packages/py-python-daemon/package.py
+++ b/var/spack/repos/builtin/packages/py-python-daemon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,8 +18,7 @@ class PyPythonDaemon(PythonPackage):
environment for the program; use the instance as a context manager
to enter a daemon state.
"""
- homepage = "https://pypi.python.org/pypi/python-daemon/"
- url = "https://pypi.io/packages/source/p/python-daemon/python-daemon-2.0.5.tar.gz"
+ pypi = "python-daemon/python-daemon-2.0.5.tar.gz"
version('2.0.5', sha256='afde4fa433d94d007206ee31a0941d55b5eb232a5422b670aad628547b46bf68')
diff --git a/var/spack/repos/builtin/packages/py-python-dateutil/package.py b/var/spack/repos/builtin/packages/py-python-dateutil/package.py
index 16bff6858d..50e207dd8a 100644
--- a/var/spack/repos/builtin/packages/py-python-dateutil/package.py
+++ b/var/spack/repos/builtin/packages/py-python-dateutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,10 @@ class PyPythonDateutil(PythonPackage):
"""Extensions to the standard Python datetime module."""
homepage = "https://dateutil.readthedocs.io/"
- url = "https://pypi.io/packages/source/p/python-dateutil/python-dateutil-2.8.0.tar.gz"
-
- import_modules = [
- 'dateutil', 'dateutil.zoneinfo', 'dateutil.parser', 'dateutil.tz'
- ]
+ pypi = "python-dateutil/python-dateutil-2.8.0.tar.gz"
+ version('2.8.2', sha256='0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86')
+ version('2.8.1', sha256='73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c')
version('2.8.0', sha256='c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e')
version('2.7.5', sha256='88f9287c0174266bb0d8cedd395cfba9c58e87e5ad86b2ce58859bc11be3cf02')
version('2.5.2', sha256='063907ef47f6e187b8fe0728952e4effb587a34f2dc356888646f9b71fbb2e4b')
@@ -23,17 +21,7 @@ class PyPythonDateutil(PythonPackage):
version('2.4.0', sha256='439df33ce47ef1478a4f4765f3390eab0ed3ec4ae10be32f2930000c8d19f417')
version('2.2', sha256='eec865307ebe7f329a6a9945c15453265a449cdaaf3710340828a1934d53e468')
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.3:', when='@2.7.5:', type=('build', 'run'))
depends_on('py-setuptools@24.3:', type='build')
depends_on('py-setuptools-scm', type='build', when='@2.7.0:')
depends_on('py-six@1.5:', type=('build', 'run'))
- # depends_on('py-pytest', type='test')
- # depends_on('py-hypothesis', type='test')
- # depends_on('py-freezegun', type='test')
-
- def build_test(self):
- # Tests require freezegun, which depends on python-dateutil,
- # creating circular dependency
- # pytest = which('pytest')
- # pytest()
- pass
diff --git a/var/spack/repos/builtin/packages/py-python-docs-theme/package.py b/var/spack/repos/builtin/packages/py-python-docs-theme/package.py
index 4b1b7232b4..21350e73ab 100644
--- a/var/spack/repos/builtin/packages/py-python-docs-theme/package.py
+++ b/var/spack/repos/builtin/packages/py-python-docs-theme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPythonDocsTheme(PythonPackage):
"""
homepage = "https://docs.python.org/3/"
- url = "https://pypi.io/packages/source/p/python-docs-theme/python-docs-theme-2018.7.tar.gz"
+ pypi = "python-docs-theme/python-docs-theme-2018.7.tar.gz"
version('2020.1', sha256='29c33ba393bdb9377910116a0c1cc329573a4e040227c58a3293d27928d8262a')
version('2018.7', sha256='018a5bf2a7318c9c9a8346303dac8afc6bc212d92e86561c9b95a3372714155a')
diff --git a/var/spack/repos/builtin/packages/py-python-editor/package.py b/var/spack/repos/builtin/packages/py-python-editor/package.py
index 3db92f7a21..1fbc451c5f 100644
--- a/var/spack/repos/builtin/packages/py-python-editor/package.py
+++ b/var/spack/repos/builtin/packages/py-python-editor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyPythonEditor(PythonPackage):
"""python-editor is a library that provides the editor module for
programmatically interfacing with your system's EDITOR variable."""
- homepage = "https://pypi.org/project/python-editor/"
- url = "https://pypi.io/packages/source/p/python-editor/python-editor-1.0.4.tar.gz"
+ pypi = "python-editor/python-editor-1.0.4.tar.gz"
version('1.0.4', sha256='51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b')
diff --git a/var/spack/repos/builtin/packages/py-python-engineio/package.py b/var/spack/repos/builtin/packages/py-python-engineio/package.py
index 3d6ccca57b..c1e35072db 100644
--- a/var/spack/repos/builtin/packages/py-python-engineio/package.py
+++ b/var/spack/repos/builtin/packages/py-python-engineio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPythonEngineio(PythonPackage):
cross-browser/cross-device bi-directional communication
layer for Socket.IO."""
- homepage = "http://python-engineio.readthedocs.io/en/latest/"
+ homepage = "https://python-engineio.readthedocs.io/en/latest/"
url = "https://github.com/miguelgrinberg/python-engineio/archive/v2.0.2.tar.gz"
version('2.0.2', sha256='9fbe531108a95bc61518b61c4718e2661fc81d32b54fd6af34799bf10a367a6b')
diff --git a/var/spack/repos/builtin/packages/py-python-fmask/package.py b/var/spack/repos/builtin/packages/py-python-fmask/package.py
index fe914a5a3b..9e5acb9b9e 100644
--- a/var/spack/repos/builtin/packages/py-python-fmask/package.py
+++ b/var/spack/repos/builtin/packages/py-python-fmask/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPythonFmask(PythonPackage):
"""A set of command line utilities and Python modules that implement
the FMASK algorithm for Landsat and Sentinel-2"""
- homepage = "http://pythonfmask.org"
+ homepage = "https://www.pythonfmask.org/en/latest/"
url = "https://github.com/ubarsc/python-fmask/archive/pythonfmask-0.5.4.tar.gz"
version('0.5.4', sha256='a216aa3108de837fec182602b2b4708442746be31fc1585906802437784a63fe')
diff --git a/var/spack/repos/builtin/packages/py-python-fsutil/package.py b/var/spack/repos/builtin/packages/py-python-fsutil/package.py
new file mode 100644
index 0000000000..eda87766f2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python-fsutil/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyPythonFsutil(PythonPackage):
+ """file-system utilities for lazy devs."""
+
+ homepage = "https://github.com/fabiocaccamo/python-fsutil"
+ pypi = "python-fsutil/python-fsutil-0.4.0.tar.gz"
+
+ version('0.4.0', sha256='873eceb11fb488fc2d7675cd1bc74a743502f674f0be88f5e7b920c7baeefed6')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-python-gitlab/package.py b/var/spack/repos/builtin/packages/py-python-gitlab/package.py
index e21c10b24d..42b41db0d5 100644
--- a/var/spack/repos/builtin/packages/py-python-gitlab/package.py
+++ b/var/spack/repos/builtin/packages/py-python-gitlab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPythonGitlab(PythonPackage):
"""Python wrapper for the GitLab API"""
homepage = "https://github.com/gpocentek/python-gitlab"
- url = "https://pypi.io/packages/source/p/python-gitlab/python-gitlab-0.19.tar.gz"
+ pypi = "python-gitlab/python-gitlab-0.19.tar.gz"
version('1.8.0', sha256='a6b03bc53f6e2e22b88d5ff9772b1bb360570ec82752f1def3d6eb60cda093e7')
version('0.19', sha256='88b65591db7a10a0d9979797e4e654a113e2b93b3a559309f6092b27ab93934a')
diff --git a/var/spack/repos/builtin/packages/py-python-igraph/package.py b/var/spack/repos/builtin/packages/py-python-igraph/package.py
index 88da5b0656..78110b9f15 100644
--- a/var/spack/repos/builtin/packages/py-python-igraph/package.py
+++ b/var/spack/repos/builtin/packages/py-python-igraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyPythonIgraph(PythonPackage):
"""igraph is a collection of network analysis tools with the emphasis on
efficiency, portability and ease of use."""
- homepage = "http://igraph.org/"
- url = "http://igraph.org/nightly/get/python/python-igraph-0.7.0.tar.gz"
+ homepage = "https://igraph.org/"
+ url = "https://igraph.org/nightly/get/python/python-igraph-0.7.0.tar.gz"
version('0.7.0', sha256='64ac270e80a92066d489407be1900a329df8e26844430f941ecc88771188c471')
diff --git a/var/spack/repos/builtin/packages/py-python-jenkins/package.py b/var/spack/repos/builtin/packages/py-python-jenkins/package.py
index 601951c90e..5a152de56e 100644
--- a/var/spack/repos/builtin/packages/py-python-jenkins/package.py
+++ b/var/spack/repos/builtin/packages/py-python-jenkins/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPythonJenkins(PythonPackage):
"""Python bindings for the remote Jenkins API"""
homepage = "https://opendev.org/jjb/python-jenkins/"
- url = "https://pypi.io/packages/source/p/python-jenkins/python-jenkins-1.5.0.tar.gz"
+ pypi = "python-jenkins/python-jenkins-1.5.0.tar.gz"
version('1.5.0', sha256='0b11f7c1dffc48579afefa8a310cba5b1c98785b9132892ff8cf5312f32ebc90')
version('1.0.2', sha256='54aba30cf49f78f9eb64e9717ad8049dacf090731a3e0c27e6035f9ec52ff78e')
diff --git a/var/spack/repos/builtin/packages/py-python-json-logger/package.py b/var/spack/repos/builtin/packages/py-python-json-logger/package.py
index b3aa3efbca..913f871939 100644
--- a/var/spack/repos/builtin/packages/py-python-json-logger/package.py
+++ b/var/spack/repos/builtin/packages/py-python-json-logger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPythonJsonLogger(PythonPackage):
""""A python library adding a json log formatter."""
homepage = "https://github.com/madzak/python-json-logger"
- url = "https://pypi.io/packages/source/p/python-json-logger/python-json-logger-0.1.11.tar.gz"
+ pypi = "python-json-logger/python-json-logger-0.1.11.tar.gz"
version('0.1.11', sha256='b7a31162f2a01965a5efb94453ce69230ed208468b0bbc7fdfc56e6d8df2e281')
diff --git a/var/spack/repos/builtin/packages/py-python-keystoneclient/package.py b/var/spack/repos/builtin/packages/py-python-keystoneclient/package.py
new file mode 100644
index 0000000000..dc61adb66b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python-keystoneclient/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 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 PyPythonKeystoneclient(PythonPackage):
+ """
+ This is a client for the OpenStack Identity API, implemented by the
+ Keystone team
+ """
+
+ homepage = "https://docs.openstack.org/python-keystoneclient"
+ pypi = "python-keystoneclient/python-keystoneclient-4.2.0.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('4.2.0', sha256='0248426e483b95de395086482c077d48e45990d3b1a3e334b2ec8b2e108f5a8a')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+
+ depends_on('py-pbr@2.0.0:2.0.999,2.1.1:', type='build')
+ depends_on('py-setuptools', type='build')
+
+ depends_on('py-debtcollector@1.2.0:', type=('build', 'run'))
+ depends_on('py-keystoneauth1@3.4.0:', type=('build', 'run'))
+ depends_on('py-oslo-config@5.2.0:', type=('build', 'run'))
+ depends_on('py-oslo-i18n@3.15.3:', type=('build', 'run'))
+ depends_on('py-oslo-serialization@2.18.0:2.19.0,2.19.2:', type=('build', 'run'))
+ depends_on('py-oslo-utils@3.33.0:', type=('build', 'run'))
+ depends_on('py-requests@2.14.2:', type=('build', 'run'))
+ depends_on('py-six@1.10.0:', type=('build', 'run'))
+ depends_on('py-stevedore@1.20.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-python-ldap/package.py b/var/spack/repos/builtin/packages/py-python-ldap/package.py
index e4f8cc1938..ca12163460 100644
--- a/var/spack/repos/builtin/packages/py-python-ldap/package.py
+++ b/var/spack/repos/builtin/packages/py-python-ldap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyPythonLdap(PythonPackage):
"""
homepage = "https://www.python-ldap.org/en/python-ldap-3.2.0/"
- url = "https://pypi.io/packages/source/p/python-ldap/python-ldap-3.2.0.tar.gz"
+ pypi = "python-ldap/python-ldap-3.2.0.tar.gz"
version('3.2.0', sha256='7d1c4b15375a533564aad3d3deade789221e450052b21ebb9720fb822eccdb8e')
version('3.0.0', sha256='86746b912a2cd37a54b06c694f021b0c8556d4caeab75ef50435ada152e2fbe1')
@@ -22,3 +22,4 @@ class PyPythonLdap(PythonPackage):
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-pyasn1@0.3.7:', type=('build', 'run'))
depends_on('py-pyasn1-modules@0.1.5:', type=('build', 'run'))
+ depends_on('cyrus-sasl', type='link')
diff --git a/var/spack/repos/builtin/packages/py-python-levenshtein/package.py b/var/spack/repos/builtin/packages/py-python-levenshtein/package.py
index 5dc3a4305d..83449ca44a 100644
--- a/var/spack/repos/builtin/packages/py-python-levenshtein/package.py
+++ b/var/spack/repos/builtin/packages/py-python-levenshtein/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPythonLevenshtein(PythonPackage):
similarities."""
homepage = "https://github.com/ztane/python-Levenshtein"
- url = "https://pypi.io/packages/source/p/python-Levenshtein/python-Levenshtein-0.12.0.tar.gz"
+ pypi = "python-Levenshtein/python-Levenshtein-0.12.0.tar.gz"
version('0.12.0', sha256='033a11de5e3d19ea25c9302d11224e1a1898fe5abd23c61c7c360c25195e3eb1')
diff --git a/var/spack/repos/builtin/packages/py-python-logstash/package.py b/var/spack/repos/builtin/packages/py-python-logstash/package.py
index 5eb60590d2..73fcc8c617 100644
--- a/var/spack/repos/builtin/packages/py-python-logstash/package.py
+++ b/var/spack/repos/builtin/packages/py-python-logstash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PyPythonLogstash(PythonPackage):
"""Python logging handler for Logstash."""
homepage = "https://github.com/vklochan/python-logstash"
- url = "https://pypi.io/packages/source/p/python-logstash/python-logstash-0.4.6.tar.gz"
+ pypi = "python-logstash/python-logstash-0.4.6.tar.gz"
version('0.4.6', sha256='10943e5df83f592b4d61b63ad1afff855ccc8c9467f78718f0a59809ba1fe68c')
diff --git a/var/spack/repos/builtin/packages/py-python-louvain/package.py b/var/spack/repos/builtin/packages/py-python-louvain/package.py
new file mode 100644
index 0000000000..7e49f607e6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python-louvain/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyPythonLouvain(PythonPackage):
+ """This module implements community detection.
+ It uses the louvain method described in Fast unfolding of communities
+ in large networks, Vincent D Blondel, Jean-Loup Guillaume, Renaud
+ Lambiotte, Renaud Lefebvre, Journal of Statistical Mechanics: Theory
+ and Experiment 2008(10), P10008 (12pp) """
+
+ homepage = "https://github.com/taynaud/python-louvain"
+ pypi = "python-louvain/python-louvain-0.14.tar.gz"
+
+ version('0.15', sha256='2a856edfbe29952a60a5538a84bb78cca18f6884a88b9325e85a11c8dd4917eb')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-networkx', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-python-lzo/package.py b/var/spack/repos/builtin/packages/py-python-lzo/package.py
index acf60351b7..8a18db57d1 100644
--- a/var/spack/repos/builtin/packages/py-python-lzo/package.py
+++ b/var/spack/repos/builtin/packages/py-python-lzo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPythonLzo(PythonPackage):
library."""
homepage = "https://github.com/jd-boyd/python-lzo"
- url = "https://pypi.io/packages/source/p/python-lzo/python-lzo-1.12.tar.gz"
+ pypi = "python-lzo/python-lzo-1.12.tar.gz"
version('1.12', sha256='97a8e46825e8f1abd84c2a3372bc09adae9745a5be5d3af2692cd850dac35345')
diff --git a/var/spack/repos/builtin/packages/py-python-magic/package.py b/var/spack/repos/builtin/packages/py-python-magic/package.py
index 7fe5bab70c..f3ac87c720 100644
--- a/var/spack/repos/builtin/packages/py-python-magic/package.py
+++ b/var/spack/repos/builtin/packages/py-python-magic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyPythonMagic(PythonPackage):
"""A python wrapper for libmagic"""
homepage = "https://github.com/ahupp/python-magic"
- url = "https://pypi.io/packages/source/p/python-magic/python-magic-0.4.15.tar.gz"
+ pypi = "python-magic/python-magic-0.4.15.tar.gz"
version('0.4.15', sha256='f3765c0f582d2dfc72c15f3b5a82aecfae9498bd29ca840d72f37d7bd38bfcd5')
diff --git a/var/spack/repos/builtin/packages/py-python-mapnik/package.py b/var/spack/repos/builtin/packages/py-python-mapnik/package.py
index 79e2bc41a6..1df131f814 100644
--- a/var/spack/repos/builtin/packages/py-python-mapnik/package.py
+++ b/var/spack/repos/builtin/packages/py-python-mapnik/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-python-meep/package.py b/var/spack/repos/builtin/packages/py-python-meep/package.py
index d7e50e8509..4b8d7b0c2f 100644
--- a/var/spack/repos/builtin/packages/py-python-meep/package.py
+++ b/var/spack/repos/builtin/packages/py-python-meep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-python-memcached/package.py b/var/spack/repos/builtin/packages/py-python-memcached/package.py
index 9347aea117..29f58a19b5 100644
--- a/var/spack/repos/builtin/packages/py-python-memcached/package.py
+++ b/var/spack/repos/builtin/packages/py-python-memcached/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,7 @@ class PyPythonMemcached(PythonPackage):
or more, possibly remote, memcached servers. Search google for memcached
for more information."""
- homepage = "https://pypi.org/project/python-memcached/"
- url = "https://pypi.io/packages/source/p/python-memcached/python-memcached-1.59.tar.gz"
+ pypi = "python-memcached/python-memcached-1.59.tar.gz"
version('1.59', sha256='a2e28637be13ee0bf1a8b6843e7490f9456fd3f2a4cb60471733c7b5d5557e4f')
diff --git a/var/spack/repos/builtin/packages/py-python-oauth2/package.py b/var/spack/repos/builtin/packages/py-python-oauth2/package.py
index 1ced77c542..4214067dbd 100644
--- a/var/spack/repos/builtin/packages/py-python-oauth2/package.py
+++ b/var/spack/repos/builtin/packages/py-python-oauth2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyPythonOauth2(PythonPackage):
"""python-oauth2 is a framework that aims at making it easy to
provide authentication via OAuth 2.0 within an application stack."""
- homepage = "https://pypi.org/project/python-oauth2/"
- url = "https://pypi.io/packages/source/p/python-oauth2/python-oauth2-1.1.1.tar.gz"
+ pypi = "python-oauth2/python-oauth2-1.1.1.tar.gz"
version('1.1.1', sha256='d7a8544927ac18215ba5317edd8f640a5f1f0593921bcf3ce862178312c8c9a4')
diff --git a/var/spack/repos/builtin/packages/py-python-rapidjson/package.py b/var/spack/repos/builtin/packages/py-python-rapidjson/package.py
index 3715c34b64..0df7feb954 100644
--- a/var/spack/repos/builtin/packages/py-python-rapidjson/package.py
+++ b/var/spack/repos/builtin/packages/py-python-rapidjson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPythonRapidjson(PythonPackage):
"""Python wrapper around rapidjson."""
homepage = "https://github.com/python-rapidjson/python-rapidjson"
- url = "https://pypi.io/packages/source/p/python-rapidjson/python-rapidjson-0.9.1.tar.gz"
+ pypi = "python-rapidjson/python-rapidjson-0.9.1.tar.gz"
version('0.9.1', sha256='ad80bd7e4bb15d9705227630037a433e2e2a7982b54b51de2ebabdd1611394a1')
diff --git a/var/spack/repos/builtin/packages/py-python-slugify/package.py b/var/spack/repos/builtin/packages/py-python-slugify/package.py
index 506fb66810..739836c8ae 100644
--- a/var/spack/repos/builtin/packages/py-python-slugify/package.py
+++ b/var/spack/repos/builtin/packages/py-python-slugify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPythonSlugify(PythonPackage):
"""A Python Slugify application that handles Unicode"""
homepage = "https://github.com/un33k/python-slugify"
- url = "https://pypi.io/packages/source/p/python-slugify/python-slugify-4.0.0.tar.gz"
+ pypi = "python-slugify/python-slugify-4.0.0.tar.gz"
version('4.0.0', sha256='a8fc3433821140e8f409a9831d13ae5deccd0b033d4744d94b31fea141bdd84c')
diff --git a/var/spack/repos/builtin/packages/py-python-socketio/package.py b/var/spack/repos/builtin/packages/py-python-socketio/package.py
index dad0618940..311ec2f078 100644
--- a/var/spack/repos/builtin/packages/py-python-socketio/package.py
+++ b/var/spack/repos/builtin/packages/py-python-socketio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPythonSocketio(PythonPackage):
"""Python implementation of the Socket.IO realtime server."""
homepage = "https://github.com/miguelgrinberg/python-socketio"
- url = "https://pypi.io/packages/source/p/python-socketio/python-socketio-1.8.4.tar.gz"
+ pypi = "python-socketio/python-socketio-1.8.4.tar.gz"
version('1.8.4', sha256='13807ce17e85371d15b31295a43b1fac1c0dba1eb5fc233353a3efd53aa122cc')
diff --git a/var/spack/repos/builtin/packages/py-python-subunit/package.py b/var/spack/repos/builtin/packages/py-python-subunit/package.py
index e894ae2b71..8f1a0d3d0a 100644
--- a/var/spack/repos/builtin/packages/py-python-subunit/package.py
+++ b/var/spack/repos/builtin/packages/py-python-subunit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPythonSubunit(PythonPackage):
"""Python implementation of subunit test streaming protocol."""
homepage = "https://launchpad.net/subunit"
- url = "https://pypi.io/packages/source/p/python-subunit/python-subunit-1.3.0.tar.gz"
+ pypi = "python-subunit/python-subunit-1.3.0.tar.gz"
version('1.3.0', sha256='9607edbee4c1e5a30ff88549ce8d9feb0b9bcbcb5e55033a9d76e86075465cbb')
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 a016686406..d8c4c47270 100644
--- a/var/spack/repos/builtin/packages/py-python-swiftclient/package.py
+++ b/var/spack/repos/builtin/packages/py-python-swiftclient/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,21 +10,26 @@ class PyPythonSwiftclient(PythonPackage):
"""This is a python client for the Swift API."""
homepage = "https://docs.openstack.org/python-swiftclient"
- url = "https://pypi.io/packages/source/p/python-swiftclient/python-swiftclient-3.9.0.tar.gz"
+ pypi = "python-swiftclient/python-swiftclient-3.9.0.tar.gz"
maintainers = ['ajkotobi']
- import_modules = ['sys', 'setuptools', 'requests']
-
+ version('3.12.0', sha256='313b444a14d0f9b628cbf3e8c52f2c4271658f9e8a33d4222851c2e4f0f7b7a0')
+ version('3.11.1', sha256='06919d59676d3e215f4da4f3f930d71880dda3528289842b25199509df712411')
version('3.10.0', sha256='66227eaf29a691c70675fb9982022980b92797c273dd5e6dc7e680425e9a3634')
version('3.9.0', sha256='4f2097492e4c76e948882fc859bfa033ade09bed72f8e6b328e34a3467d9a377')
version('3.8.1', sha256='3a013303643f77a99befa05582dfb93671e1fba1aed9f4a517418129700aedb8')
version('3.8.0', sha256='107a9d5356663365a9f7c0b3a2b55da97a0a9ba7f10da2319b3972481510f33d')
version('3.7.1', sha256='06bda5a6f81ea132e5cb52d0eb0616a0ab0958b4ec0d1cb7f850f04bf178852f')
- depends_on('py-setuptools', type=('build', 'run'))
+ variant('keystone', default=False, description='Enable keystone authentication')
+
depends_on('python@2.7:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pbr', type='build')
+
depends_on('py-futures@3:', type=('build', 'run'), when='^python@:2')
depends_on('py-requests@1.1.0:', type=('build', 'run'))
depends_on('py-six@1.9:', type=('build', 'run'))
- depends_on('py-pbr', type='build')
+
+ depends_on('py-python-keystoneclient@0.7.0:', when='+keystone', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-python-utils/package.py b/var/spack/repos/builtin/packages/py-python-utils/package.py
index 6c8e3aa732..9cc0a44d6d 100644
--- a/var/spack/repos/builtin/packages/py-python-utils/package.py
+++ b/var/spack/repos/builtin/packages/py-python-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,12 +12,10 @@ class PyPythonUtils(PythonPackage):
which make common patterns shorter and easier."""
homepage = "https://github.com/WoLpH/python-utils"
- url = "https://pypi.io/packages/source/p/python-utils/python-utils-2.4.0.tar.gz"
+ pypi = "python-utils/python-utils-2.4.0.tar.gz"
version('2.4.0', sha256='f21fc09ff58ea5ebd1fd2e8ef7f63e39d456336900f26bdc9334a03a3f7d8089')
version('2.3.0', sha256='34aaf26b39b0b86628008f2ae0ac001b30e7986a8d303b61e1357dfcdad4f6d3')
depends_on('py-setuptools', type='build')
depends_on('py-six', type=('build', 'run'))
- depends_on('py-pytest', type='test')
- depends_on('py-pytest-runner', type='test')
diff --git a/var/spack/repos/builtin/packages/py-python-xlib/package.py b/var/spack/repos/builtin/packages/py-python-xlib/package.py
new file mode 100644
index 0000000000..44700c1c84
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python-xlib/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyPythonXlib(PythonPackage):
+ """The Python X Library is intended to be a fully
+ functional X client library for Python programs. It is
+ written entirely in Python, in contrast to earlier X
+ libraries for Python (the ancient X extension and the newer
+ plxlib) which were interfaces to the C Xlib."""
+
+ homepage = "https://github.com/python-xlib/python-xlib"
+ pypi = "python-xlib/python-xlib-0.30.tar.gz"
+
+ version('0.30', sha256='74131418faf9e7b83178c71d9d80297fbbd678abe99ae9258f5a20cd027acb5f')
+
+ depends_on('python@2.7,3.3:', type=('build', 'run'))
+ depends_on('py-setuptools@30.3.0:', type='build')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('py-six@1.10.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-python-xmp-toolkit/package.py b/var/spack/repos/builtin/packages/py-python-xmp-toolkit/package.py
new file mode 100644
index 0000000000..1c31bf028e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python-xmp-toolkit/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyPythonXmpToolkit(PythonPackage):
+ """Python XMP Toolkit for working with metadata."""
+
+ homepage = "https://github.com/python-xmp-toolkit/python-xmp-toolkit"
+ pypi = "python-xmp-toolkit/python-xmp-toolkit-2.0.1.tar.gz"
+
+ version('2.0.1', sha256='f8d912946ff9fd46ed5c7c355aa5d4ea193328b3f200909ef32d9a28a1419a38')
+
+ depends_on('python@2.6:2.7,3.3:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytz', type=('build', 'run'))
+ depends_on('exempi@2.2.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-python3-xlib/package.py b/var/spack/repos/builtin/packages/py-python3-xlib/package.py
new file mode 100644
index 0000000000..e48a1c7356
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-python3-xlib/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2021 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 PyPython3Xlib(PythonPackage):
+ """python3-xlib is python3 version of python-xlib."""
+
+ pypi = "python3-xlib/python3-xlib-0.15.tar.gz"
+
+ version('0.15', sha256='dc4245f3ae4aa5949c1d112ee4723901ade37a96721ba9645f2bfa56e5b383f8')
+
+ depends_on('python@3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pythonqwt/package.py b/var/spack/repos/builtin/packages/py-pythonqwt/package.py
index 8de66c15bb..8f7678a6e3 100644
--- a/var/spack/repos/builtin/packages/py-pythonqwt/package.py
+++ b/var/spack/repos/builtin/packages/py-pythonqwt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPythonqwt(PythonPackage):
"""Qt plotting widgets for Python"""
homepage = "https://github.com/PierreRaybaut/PythonQwt"
- url = "https://pypi.io/packages/source/P/PythonQwt/PythonQwt-0.5.5.zip"
+ pypi = "PythonQwt/PythonQwt-0.5.5.zip"
version('0.5.5', sha256='1f13cc8b555a57f8fe0f806d6c2f6d847050e4d837649503932b81316d12788a')
diff --git a/var/spack/repos/builtin/packages/py-pythonsollya/package.py b/var/spack/repos/builtin/packages/py-pythonsollya/package.py
new file mode 100644
index 0000000000..02decf6b86
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pythonsollya/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyPythonsollya(PythonPackage):
+ """Python wrapper for the Sollya library"""
+
+ homepage = "Python wrapper for the Sollya library"
+ url = "https://gitlab.com/metalibm-dev/pythonsollya/-/archive/release-0.4.0-alpha0/pythonsollya-release-0.4.0-alpha0.tar.gz"
+
+ version('0.4.0-alpha0', sha256='faac899744c92b1d20980cadef309cd5610d79722322e97940ff142c207c41b5')
+ version('0.3.0', url='https://gitlab.com/metalibm-dev/pythonsollya/-/archive/0.3/pythonsollya-0.3.tar.gz',
+ sha256='cdccd0c5549247ad7498546095544d8d01e78bcb4a3e55c32d6daea6b845b6b9', preferred=True)
+
+ depends_on('py-cython', type='build')
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('libffi', type='build')
+ depends_on('sollya', type=('build', 'link'))
+ depends_on('py-bigfloat', type=('build', 'run'))
+ depends_on('mpfi', type=('build', 'link'))
diff --git a/var/spack/repos/builtin/packages/py-pythran/omp.patch b/var/spack/repos/builtin/packages/py-pythran/omp.patch
new file mode 100644
index 0000000000..19aa2c6863
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pythran/omp.patch
@@ -0,0 +1,70 @@
+diff --git a/omp/__init__.py b/omp/__init__.py
+index bddae3063..10a4cc995 100644
+--- a/omp/__init__.py
++++ b/omp/__init__.py
+@@ -69,10 +69,16 @@ class OpenMP(object):
+
+ def init_not_msvc(self):
+ """ Find OpenMP library and try to load if using ctype interface. """
+- # find_library() does not search automatically LD_LIBRARY_PATH
++ # find_library() does not automatically search LD_LIBRARY_PATH
++ # until Python 3.6+, so we explicitly add it.
++ # LD_LIBRARY_PATH is used on Linux, while macOS uses DYLD_LIBRARY_PATH
++ # and DYLD_FALLBACK_LIBRARY_PATH.
+ paths = os.environ.get('LD_LIBRARY_PATH', '').split(':')
++ paths += os.environ.get('DYLD_LIBRARY_PATH', '').split(':')
++ paths += os.environ.get('DYLD_FALLBACK_LIBRARY_PATH', '').split(':')
+
+- for libomp_name in self.get_libomp_names():
++ libomp_names = self.get_libomp_names()
++ for libomp_name in libomp_names:
+ if cxx is None or sys.platform == 'win32':
+ # Note: Clang supports -print-file-name, but not yet for
+ # clang-cl as of v12.0.0 (April '21)
+@@ -87,25 +93,27 @@ class OpenMP(object):
+ except (OSError, CalledProcessError):
+ pass
+
+- # Try to load find libgomp shared library using loader search dirs
+- libgomp_path = find_library("gomp")
+-
+- # Try to use custom paths if lookup failed
+- for path in paths:
+- if libgomp_path:
+- break
+- path = path.strip()
+- if os.path.isdir(path):
+- libgomp_path = find_library(os.path.join(str(path), "libgomp"))
+-
+- if not libgomp_path:
+- raise ImportError("I can't find a shared library for libgomp,"
+- " you may need to install it or adjust the "
+- "LD_LIBRARY_PATH environment variable.")
+- else:
+- # Load the library (shouldn't fail with an absolute path right?)
+- self.libomp = ctypes.CDLL(libgomp_path)
+- self.version = 45
++ for libomp_name in libomp_names:
++ # Try to load find libomp shared library using loader search dirs
++ libomp_path = find_library(libomp_name)
++
++ # Try to use custom paths if lookup failed
++ for path in paths:
++ if libomp_path:
++ break
++ path = path.strip()
++ if os.path.isfile(os.path.join(path, libomp_name)):
++ libomp_path = os.path.join(path, libomp_name)
++
++ if libomp_path:
++ # Load the library (shouldn't fail with an absolute path right?)
++ self.libomp = ctypes.CDLL(libomp_path)
++ self.version = 45
++ return
++
++ raise ImportError("I can't find a shared library for libomp,"
++ " you may need to install it or adjust the "
++ "LD_LIBRARY_PATH environment variable.")
+
+ def __getattr__(self, name):
+ """
diff --git a/var/spack/repos/builtin/packages/py-pythran/package.py b/var/spack/repos/builtin/packages/py-pythran/package.py
new file mode 100644
index 0000000000..e48928a90b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pythran/package.py
@@ -0,0 +1,75 @@
+# Copyright 2013-2021 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)
+
+import sys
+
+from spack import *
+
+
+class PyPythran(PythonPackage):
+ """Ahead of Time compiler for numeric kernels."""
+
+ homepage = "https://github.com/serge-sans-paille/pythran"
+ pypi = "pythran/pythran-0.9.11.tar.gz"
+
+ version('0.9.12', sha256='5d50dc74dca1d3f902941865acbae981fc24cceeb9d54673d68d6b5c8c1b0001')
+ version('0.9.11', sha256='a317f91e2aade9f6550dc3bf40b5caeb45b7e012daf27e2b3e4ad928edb01667')
+ version('0.9.10', sha256='8fa1d19624cb2950e5a18974fdcb0dffc57e1a821049dc95df09563edd673915')
+ version('0.9.9', sha256='aaabc97f30ad46d1d62303323de6697d2933779afa4666c15b0f433cb50825b1')
+ version('0.9.8', sha256='81c10a16fce9ed41211fb70e82fda6984e93f4602a164934648db8cbb08156b3')
+ version('0.9.7', sha256='ac36a94bd862e3c80dae585158b90d3e7c5c05fd252819f3ca7d880a1c7c1012')
+ version('0.9.6', sha256='2d102a55d9d53f77cf0f4a904eeb5cbaa8fe76e4892319a859fc618401e2f6ba')
+ version('0.9.5', sha256='815a778d6889593c0b8ddf08052cff36a504ce4cc8bd8d7bfb856a212f91486e')
+ version('0.9.4', sha256='ec9c91f5331454263b064027292556a184a9f55a50f8615e09b08f57a4909855')
+ version('0.9.3', sha256='217427a8225a331fdc8f3efe57871aed775cdf2c6e847a0a83df0aaae4b02493')
+
+ depends_on('python@3:', when='@0.9.6:', type=('build', 'run'))
+ depends_on('python@2.7:', when='@:0.9.5', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytest-runner', type='build')
+ depends_on('py-ply@3.4:', type=('build', 'run'))
+ depends_on('py-networkx@2:', when='@:0.9.11', type=('build', 'run'))
+ depends_on('py-decorator', when='@:0.9.11', type=('build', 'run'))
+ depends_on('py-gast@0.5.0:0.5.999', when='@0.9.12:', type=('build', 'run'))
+ depends_on('py-gast@0.4.0:0.4.999', when='@0.9.7:0.9.11', type=('build', 'run'))
+ depends_on('py-gast@0.3.3:0.3.999', when='@0.9.6', type=('build', 'run'))
+ depends_on('py-gast@0.3.0:', when='@0.9.4:0.9.5', type=('build', 'run'))
+ depends_on('py-gast', when='@:0.9.3', type=('build', 'run'))
+ depends_on('py-six', when='@:0.9.11', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-beniget@0.4.0:0.4.999', when='@0.9.12:', type=('build', 'run'))
+ depends_on('py-beniget@0.3.0:0.3.999', when='@0.9.7:0.9.11', type=('build', 'run'))
+ depends_on('py-beniget@0.2.1:0.2.999', when='@0.9.6', type=('build', 'run'))
+ depends_on('py-beniget@0.2.0:', when='@0.9.4:0.9.5', type=('build', 'run'))
+ depends_on('py-beniget', when='@:0.9.3', type=('build', 'run'))
+ depends_on('llvm-openmp', when='%apple-clang', type=('build', 'run'))
+
+ # https://github.com/serge-sans-paille/pythran/pull/1856
+ patch('omp.patch', when='@0.9.10:0.9.12')
+
+ def patch(self):
+ # Compiler is used at run-time to determine name of OpenMP library to search for
+ cfg_file = join_path('pythran', 'pythran-{0}.cfg'.format(sys.platform))
+ filter_file('CXX=', 'CXX=' + self.compiler.cxx, cfg_file)
+
+ def setup_build_environment(self, env):
+ # Needed for `spack install --test=root py-pythran`
+ if self.spec.satisfies('%apple-clang'):
+ env.prepend_path(
+ 'DYLD_FALLBACK_LIBRARY_PATH',
+ self.spec['llvm-openmp'].libs.directories[0]
+ )
+
+ def setup_run_environment(self, env):
+ # Needed for `spack test run py-pythran`
+ self.setup_build_environment(env)
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ # Needed for `spack install py-scipy`
+ self.setup_build_environment(env)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ # Probably needed for something?
+ self.setup_build_environment(env)
diff --git a/var/spack/repos/builtin/packages/py-pytimeparse/package.py b/var/spack/repos/builtin/packages/py-pytimeparse/package.py
index ef2a2e8196..af392a6bd7 100644
--- a/var/spack/repos/builtin/packages/py-pytimeparse/package.py
+++ b/var/spack/repos/builtin/packages/py-pytimeparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPytimeparse(PythonPackage):
"""A small Python library to parse various kinds of time expressions."""
homepage = "https://github.com/wroberts/pytimeparse"
- url = "https://pypi.io/packages/source/p/pytimeparse/pytimeparse-1.1.8.tar.gz"
+ pypi = "pytimeparse/pytimeparse-1.1.8.tar.gz"
version('1.1.8', sha256='e86136477be924d7e670646a98561957e8ca7308d44841e21f5ddea757556a0a')
diff --git a/var/spack/repos/builtin/packages/py-pytools/package.py b/var/spack/repos/builtin/packages/py-pytools/package.py
index 95b33b9707..22a380fa34 100644
--- a/var/spack/repos/builtin/packages/py-pytools/package.py
+++ b/var/spack/repos/builtin/packages/py-pytools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyPytools(PythonPackage):
"""A collection of tools for Python"""
- homepage = "https://pypi.org/project/pytools/"
- url = "https://pypi.io/packages/source/p/pytools/pytools-2019.1.1.tar.gz"
+ pypi = "pytools/pytools-2019.1.1.tar.gz"
version('2019.1.1', sha256='ce2d702ae4ef10a70197b00b93141461140d00578f2a862fa946ca1446a300db')
version('2016.2.6', sha256='6dd49932b8f81a8b622685cff3dd515e351a9290aef0fd5d020e4df00c06aa95')
diff --git a/var/spack/repos/builtin/packages/py-pytorch-gradual-warmup-lr/package.py b/var/spack/repos/builtin/packages/py-pytorch-gradual-warmup-lr/package.py
index d6f7d6cc50..231fee0cff 100644
--- a/var/spack/repos/builtin/packages/py-pytorch-gradual-warmup-lr/package.py
+++ b/var/spack/repos/builtin/packages/py-pytorch-gradual-warmup-lr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py
new file mode 100644
index 0000000000..4c2578b6ab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2021 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 PyPytorchLightning(PythonPackage):
+ """PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers."""
+
+ homepage = "https://github.com/PyTorchLightning/pytorch-lightning"
+ pypi = "pytorch-lightning/pytorch-lightning-1.2.10.tar.gz"
+
+ version('1.4.1', sha256='1d1128aeb5d0e523d2204c4d9399d65c4e5f41ff0370e96d694a823af5e8e6f3')
+ version('1.4.0', sha256='6529cf064f9dc323c94f3ce84b56ee1a05db1b0ab17db77c4d15aa36e34da81f')
+ version('1.3.8', sha256='60b0a3e464d394864dae4c8d251afa7aa453644a19bb7672f5ee400343cdf7b0')
+ version('1.2.10', sha256='2d8365e30ded0c20e73ce6e5b6028478ae460b8fd33727df2275666df005a301')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.17.2:', when='@1.3:', type=('build', 'run'))
+ depends_on('py-numpy@1.16.6:', when='@:1.2', type=('build', 'run'))
+ depends_on('py-torch@1.6:', when='@1.4:', type=('build', 'run'))
+ depends_on('py-torch@1.4:', when='@:1.3', type=('build', 'run'))
+ depends_on('py-future@0.17.1:', type=('build', 'run'))
+ depends_on('py-tqdm@4.41.0:', type=('build', 'run'))
+ depends_on('py-pyyaml@5.1:', when='@1.4:', type=('build', 'run'))
+ depends_on('py-pyyaml@5.1:5.4.1', when='@1.3', type=('build', 'run'))
+ depends_on('py-pyyaml@5.1:5.3,5.5:', when='@:1.2', type=('build', 'run'))
+ depends_on('py-fsspec@2021.05.0:2021.05.999,2021.06.1:+http', when='@1.3:', type=('build', 'run'))
+ depends_on('py-fsspec@0.8.1:+http', when='@:1.2', type=('build', 'run'))
+ depends_on('py-tensorboard@2.2.0:2.4.999,2.5.1:', type=('build', 'run'))
+ depends_on('py-torchmetrics@0.4.0:', when='@1.4:', type=('build', 'run'))
+ depends_on('py-torchmetrics@0.2.0:', when='@1.3', type=('build', 'run'))
+ depends_on('py-torchmetrics@0.2.0', when='@:1.2', type=('build', 'run'))
+ depends_on('py-pydeprecate@0.3.1', when='@1.4:', type=('build', 'run'))
+ depends_on('py-pydeprecate@0.3.0', when='@1.3', type=('build', 'run'))
+ depends_on('py-packaging@17.0:', when='@1.3:', type=('build', 'run'))
+ depends_on('py-packaging', type=('build', 'run'))
+ depends_on('py-typing-extensions', when='@1.4:', type=('build', 'run'))
+ depends_on('pil@:8.2.999,8.3.1:', when='@1.3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytorch-sphinx-theme/package.py b/var/spack/repos/builtin/packages/py-pytorch-sphinx-theme/package.py
new file mode 100644
index 0000000000..539e8130ec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytorch-sphinx-theme/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyPytorchSphinxTheme(PythonPackage):
+ """PyTorch Sphinx Theme."""
+
+ homepage = "https://github.com/pytorch/pytorch_sphinx_theme"
+ git = "https://github.com/pytorch/pytorch_sphinx_theme.git"
+
+ version('master', branch='master')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-sphinx', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pytweening/package.py b/var/spack/repos/builtin/packages/py-pytweening/package.py
new file mode 100644
index 0000000000..339f910e1d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytweening/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyPytweening(PythonPackage):
+ """A collection of tweening / easing functions implemented
+ in Python."""
+
+ homepage = "https://github.com/asweigart/pytweening"
+ pypi = "PyTweening/PyTweening-1.0.3.zip"
+
+ version('1.0.3', sha256='4b608a570f4dccf2201e898f643c2a12372eb1d71a3dbc7e778771b603ca248b')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pytz/package.py b/var/spack/repos/builtin/packages/py-pytz/package.py
index d4d752fdaa..f995af7ac2 100644
--- a/var/spack/repos/builtin/packages/py-pytz/package.py
+++ b/var/spack/repos/builtin/packages/py-pytz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,8 @@ from spack import *
class PyPytz(PythonPackage):
"""World timezone definitions, modern and historical."""
- homepage = "http://pythonhosted.org/pytz"
- url = "https://pypi.io/packages/source/p/pytz/pytz-2019.3.tar.gz"
-
- import_modules = ['pytz']
+ homepage = "https://pythonhosted.org/pytz"
+ pypi = "pytz/pytz-2019.3.tar.gz"
version('2020.1', sha256='c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048')
version('2019.3', sha256='b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be')
diff --git a/var/spack/repos/builtin/packages/py-pyudev/package.py b/var/spack/repos/builtin/packages/py-pyudev/package.py
index 700eec6b62..c9609a223f 100644
--- a/var/spack/repos/builtin/packages/py-pyudev/package.py
+++ b/var/spack/repos/builtin/packages/py-pyudev/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPyudev(PythonPackage):
"""Pure Python libudev binding"""
homepage = "https://pyudev.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/p/pyudev/pyudev-0.9.tar.gz"
+ pypi = "pyudev/pyudev-0.9.tar.gz"
version('0.21.0', sha256='094b7a100150114748aaa3b70663485dd360457a709bfaaafe5a977371033f2b')
version('0.15', sha256='12f462b777388c447edaac9e4b423a38a76eeb43f36b1a42288e771309d663c2')
diff --git a/var/spack/repos/builtin/packages/py-pyugrid/package.py b/var/spack/repos/builtin/packages/py-pyugrid/package.py
index c411460ea6..c6e9949797 100644
--- a/var/spack/repos/builtin/packages/py-pyugrid/package.py
+++ b/var/spack/repos/builtin/packages/py-pyugrid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPyugrid(PythonPackage):
"""Work with triangular unstructured grids and the data on them."""
homepage = "https://github.com/pyugrid/pyugrid"
- url = "https://pypi.io/packages/source/p/pyugrid/pyugrid-0.3.1.tar.gz"
+ pypi = "pyugrid/pyugrid-0.3.1.tar.gz"
version('0.3.1', sha256='eddadc1e88c0e801f780b1e6f636fbfc00e3d14cdab82b43300fde0918310053')
diff --git a/var/spack/repos/builtin/packages/py-pyusb/package.py b/var/spack/repos/builtin/packages/py-pyusb/package.py
new file mode 100644
index 0000000000..df0d338537
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyusb/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyPyusb(PythonPackage):
+ """Easy USB access from Python."""
+
+ homepage = "https://github.com/pyusb/pyusb"
+ pypi = "pyusb/pyusb-1.0.2.tar.gz"
+
+ version('1.0.2', sha256='4e9b72cc4a4205ca64fbf1f3fff39a335512166c151ad103e55c8223ac147362')
+
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-setuptools-scm@:1.999', type='build', when='^py-setuptools@:11.999')
+ depends_on('py-setuptools-scm', type='build')
+ depends_on('libusb')
diff --git a/var/spack/repos/builtin/packages/py-pyutilib/package.py b/var/spack/repos/builtin/packages/py-pyutilib/package.py
index 0fc62c07a4..79318b3deb 100644
--- a/var/spack/repos/builtin/packages/py-pyutilib/package.py
+++ b/var/spack/repos/builtin/packages/py-pyutilib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pyvcf/package.py b/var/spack/repos/builtin/packages/py-pyvcf/package.py
index f1a3f7201d..9285fc84eb 100644
--- a/var/spack/repos/builtin/packages/py-pyvcf/package.py
+++ b/var/spack/repos/builtin/packages/py-pyvcf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyPyvcf(PythonPackage):
"""A Variant Call Format reader for Python"""
- homepage = "http://pyvcf.readthedocs.org/en/latest/index.html"
+ homepage = "https://pyvcf.readthedocs.org/en/latest/index.html"
url = "https://github.com/jamescasbon/PyVCF/archive/v0.6.0.tar.gz"
version('0.6.0', sha256='a360376d445e27b74db3216f6931a94a4ea99aa4a7f4b4a8347e7f11836698b9')
diff --git a/var/spack/repos/builtin/packages/py-pywavelets/package.py b/var/spack/repos/builtin/packages/py-pywavelets/package.py
index 460c6011e7..a735566afb 100644
--- a/var/spack/repos/builtin/packages/py-pywavelets/package.py
+++ b/var/spack/repos/builtin/packages/py-pywavelets/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,13 +12,11 @@ class PyPywavelets(PythonPackage):
in Python"""
homepage = "https://github.com/PyWavelets"
- url = "https://pypi.io/packages/source/P/PyWavelets/PyWavelets-0.5.2.tar.gz"
+ pypi = "PyWavelets/PyWavelets-0.5.2.tar.gz"
version('1.1.1', sha256='1a64b40f6acb4ffbaccce0545d7fc641744f95351f62e4c6aaa40549326008c9')
version('0.5.2', sha256='ce36e2f0648ea1781490b09515363f1f64446b0eac524603e5db5e180113bed9')
- import_modules = ['pywt', 'pywt.data']
-
depends_on('python@3.5:', type=('build', 'run'), when='@1.1.1:')
depends_on('py-setuptools', type='build')
depends_on('py-cython', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pywcs/package.py b/var/spack/repos/builtin/packages/py-pywcs/package.py
index dea2adb2d9..a7bb6e4fc4 100644
--- a/var/spack/repos/builtin/packages/py-pywcs/package.py
+++ b/var/spack/repos/builtin/packages/py-pywcs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py
index 00b3d848b7..1c5e7d02eb 100644
--- a/var/spack/repos/builtin/packages/py-pyyaml/package.py
+++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyPyyaml(PythonPackage):
"""PyYAML is a YAML parser and emitter for Python."""
homepage = "https://pyyaml.org/wiki/PyYAML"
- url = "https://pypi.io/packages/source/P/PyYAML/PyYAML-5.3.1.tar.gz"
+ pypi = "PyYAML/PyYAML-5.3.1.tar.gz"
git = "https://github.com/yaml/pyyaml.git"
maintainers = ['adamjstewart']
@@ -61,8 +61,6 @@ class PyPyyaml(PythonPackage):
return args
# Tests need to be re-added since `phases` was overridden
- run_after('build_ext')(
- PythonPackage._run_default_build_time_test_callbacks)
run_after('install')(
PythonPackage._run_default_install_time_test_callbacks)
run_after('install')(PythonPackage.sanity_check_prefix)
diff --git a/var/spack/repos/builtin/packages/py-pyzmq/package.py b/var/spack/repos/builtin/packages/py-pyzmq/package.py
index 9cd9e46242..9230b285e3 100644
--- a/var/spack/repos/builtin/packages/py-pyzmq/package.py
+++ b/var/spack/repos/builtin/packages/py-pyzmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,14 @@ class PyPyzmq(PythonPackage):
homepage = "https://github.com/zeromq/pyzmq"
url = "https://github.com/zeromq/pyzmq/archive/v14.7.0.tar.gz"
+ import_modules = [
+ 'zmq', 'zmq.green', 'zmq.green.eventloop', 'zmq.sugar', 'zmq.auth',
+ 'zmq.auth.asyncio', 'zmq.utils', 'zmq.backend', 'zmq.backend.cffi',
+ 'zmq.backend.cython', 'zmq.ssh', 'zmq.eventloop',
+ 'zmq.eventloop.minitornado', 'zmq.eventloop.minitornado.platform',
+ 'zmq.log', 'zmq.asyncio', 'zmq.devices'
+ ]
+
version('18.1.0', sha256='32f7618b8104021bc96cbd60be4330bdf37b929e8061dbce362c9f3478a08e21')
version('18.0.1', sha256='7b0107992d8cc4c43d9af1c2e13d573ea761c7feb23d7e0e7da9dc963811e68f')
version('17.1.2', sha256='77a32350440e321466b1748e6063b34a8a73768b62cb674e7d799fbc654b7c45')
@@ -18,9 +26,21 @@ class PyPyzmq(PythonPackage):
version('14.7.0', sha256='809a5fcc720d286c840f7f64696e60322b5b2544795a73db626f09b344d16a15')
depends_on('python@2.7:2.8,3.3:', type=('build', 'run'), when='@18:')
- depends_on('py-cython@0.16:', type=('build', 'run'))
- depends_on('py-cython@0.20:', type=('build', 'run'), when='@18:')
- # these dependencies might only be needed for pypy
+ depends_on('py-cython@0.16:', type='build')
+ depends_on('py-cython@0.20:', type='build', when='@18:')
depends_on('py-py', type=('build', 'run'))
depends_on('py-cffi', type=('build', 'run'))
+ depends_on('py-gevent', type=('build', 'run'))
depends_on('libzmq')
+
+ def setup_build_environment(self, env):
+ # Needed for `spack install --test=root py-pyzmq`
+ # Fixes import failure for zmq.backend.cffi
+ # https://github.com/zeromq/pyzmq/issues/395#issuecomment-22041019
+ env.prepend_path(
+ 'C_INCLUDE_PATH', self.spec['libzmq'].headers.directories[0])
+ env.prepend_path(
+ 'LIBRARY_PATH', self.spec['libzmq'].libs.directories[0])
+
+ # Needed for `spack test run py-pyzmq`
+ setup_run_environment = setup_build_environment
diff --git a/var/spack/repos/builtin/packages/py-qsymm/package.py b/var/spack/repos/builtin/packages/py-qsymm/package.py
new file mode 100644
index 0000000000..7c7f3e5f7f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-qsymm/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 PyQsymm(PythonPackage):
+ """Qsymm is a symmetry finder and symmetric Hamiltonian generator.
+ It automatically generates model Hamiltonians from symmetry
+ constraints and finds the full symmetry group of your Hamiltonian."""
+
+ homepage = "https://gitlab.kwant-project.org/qt/qsymm"
+ pypi = "qsymm/qsymm-1.2.7.tar.gz"
+ git = "https://gitlab.kwant-project.org/qt/qsymm.git"
+
+ # Add a list of GitHub accounts to notify when the
+ # package is updated
+ maintainers = ['payerle']
+
+ version('1.2.7', sha256='9af92a30c3f72883c744d4717e4ec30c8b48121e208c10553e8e0e428fe43bbc')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.13:', type=('build', 'run'))
+ depends_on('py-scipy@0.19:', type=('build', 'run'))
+ depends_on('py-sympy@1.1:', type=('build', 'run'))
+ depends_on('py-tinyarray', type=('build', 'run'))
+ depends_on('py-pytest-runner', type='build')
diff --git a/var/spack/repos/builtin/packages/py-qtawesome/package.py b/var/spack/repos/builtin/packages/py-qtawesome/package.py
index 962a74654a..68d7ddb5af 100644
--- a/var/spack/repos/builtin/packages/py-qtawesome/package.py
+++ b/var/spack/repos/builtin/packages/py-qtawesome/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyQtawesome(PythonPackage):
"""FontAwesome icons in PyQt and PySide applications"""
homepage = "https://github.com/spyder-ide/qtawesome"
- url = "https://pypi.io/packages/source/Q/QtAwesome/QtAwesome-0.4.1.tar.gz"
+ pypi = "QtAwesome/QtAwesome-0.4.1.tar.gz"
version('0.4.1', sha256='9ea91efeb83e8b73f814aeca898c29cade0c087acec58e91b4f384595aeb4cfd')
version('0.3.3', sha256='c3c98ee4df0133ae42d202fea20253f8746266b4541c5df4269ca4131792ce0f')
diff --git a/var/spack/repos/builtin/packages/py-qtconsole/package.py b/var/spack/repos/builtin/packages/py-qtconsole/package.py
index 046e04c2e5..8ff12768b1 100644
--- a/var/spack/repos/builtin/packages/py-qtconsole/package.py
+++ b/var/spack/repos/builtin/packages/py-qtconsole/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,13 @@ from spack import *
class PyQtconsole(PythonPackage):
"""Jupyter Qt console"""
- homepage = "http://ipython.org"
- url = "https://pypi.io/packages/source/q/qtconsole/qtconsole-4.2.1.tar.gz"
+ homepage = "https://ipython.org"
+ pypi = "qtconsole/qtconsole-4.2.1.tar.gz"
version('4.5.1', sha256='4af84facdd6f00a6b9b2927255f717bb23ae4b7a20ba1d9ef0a5a5a8dbe01ae2')
version('4.2.1', sha256='25ec7d345528b3e8f3c91be349dd3c699755f206dc4b6ec668e2e5dd60ea18ef')
- variant('doc', default=False, description='Build documentation')
+ variant('docs', default=False, description='Build documentation')
depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
depends_on('py-ipykernel@4.1:', type=('build', 'run'))
@@ -26,5 +26,3 @@ class PyQtconsole(PythonPackage):
depends_on('py-ipython-genutils', type=('build', 'run'), when='@4.5.1:')
depends_on('py-sphinx@1.3:', type=('build', 'run'), when='+docs')
depends_on('py-pyqt5', type='run')
-
- depends_on('py-mock', type='test', when='^python@2.7:2.8')
diff --git a/var/spack/repos/builtin/packages/py-qtpy/package.py b/var/spack/repos/builtin/packages/py-qtpy/package.py
index 6acb27f6cf..24f28280e2 100644
--- a/var/spack/repos/builtin/packages/py-qtpy/package.py
+++ b/var/spack/repos/builtin/packages/py-qtpy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyQtpy(PythonPackage):
"""QtPy: Abtraction layer for PyQt5/PyQt4/PySide/PySide2"""
homepage = "https://github.com/spyder-ide/qtpy"
- url = "https://pypi.io/packages/source/Q/QtPy/QtPy-1.2.1.tar.gz"
+ pypi = "QtPy/QtPy-1.2.1.tar.gz"
version('1.7.1', sha256='e97275750934b3a1f4d8e263f5b889ae817ed36f26867ab0ce52be731ab1ed9e')
version('1.2.1', sha256='5803ce31f50b24295e8e600b76cc91d7f2a3140a5a0d526d40226f9ec5e9097d')
@@ -22,7 +22,7 @@ class PyQtpy(PythonPackage):
depends_on('py-setuptools', type='build')
for api in apis:
- depends_on('py-' + api, when='+' + api, type='run')
+ depends_on('py-' + api, when='api=' + api, type='run')
def setup_run_environment(self, env):
env.set('QT_API', self.spec.variants['api'].value)
diff --git a/var/spack/repos/builtin/packages/py-quantities/package.py b/var/spack/repos/builtin/packages/py-quantities/package.py
index 0f46396aff..fcb2abd41a 100644
--- a/var/spack/repos/builtin/packages/py-quantities/package.py
+++ b/var/spack/repos/builtin/packages/py-quantities/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyQuantities(PythonPackage):
"""Support for physical quantities with units, based on numpy"""
- homepage = "http://python-quantities.readthedocs.org"
- url = "https://pypi.io/packages/source/q/quantities/quantities-0.12.1.tar.gz"
+ homepage = "https://python-quantities.readthedocs.org"
+ pypi = "quantities/quantities-0.12.1.tar.gz"
version('0.12.1', sha256='0a03e8511db603c57ca80dee851c43f08d0457f4d592bcac2e154570756cb934')
version('0.11.1', sha256='4382098a501b55bf0fdb3dba2061a161041253697d78811ecfd7c55449836660',
diff --git a/var/spack/repos/builtin/packages/py-quast/package.py b/var/spack/repos/builtin/packages/py-quast/package.py
index 5f8962ab78..b0aaaab286 100644
--- a/var/spack/repos/builtin/packages/py-quast/package.py
+++ b/var/spack/repos/builtin/packages/py-quast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyQuast(PythonPackage):
"""Quality Assessment Tool for Genome Assemblies"""
- homepage = "http://cab.spbu.ru/software/quast"
+ homepage = "https://cab.spbu.ru/software/quast"
url = "https://github.com/ablab/quast/archive/quast_4.6.1.tar.gz"
version('4.6.3', sha256='d7f5e670563d17d683f6df057086f7b816b6a088266c6270f7114a1406aaab63')
diff --git a/var/spack/repos/builtin/packages/py-queryablelist/package.py b/var/spack/repos/builtin/packages/py-queryablelist/package.py
index f69e621e83..e8bd2b713c 100644
--- a/var/spack/repos/builtin/packages/py-queryablelist/package.py
+++ b/var/spack/repos/builtin/packages/py-queryablelist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyQueryablelist(PythonPackage):
items"""
homepage = "https://github.com/kata198/QueryableList"
- url = "https://pypi.io/packages/source/q/queryablelist/QueryableList-3.1.0.tar.gz"
+ pypi = "queryablelist/QueryableList-3.1.0.tar.gz"
version('3.1.0', sha256='8891dccbadc69a35f5944e1826d8f8db224522aa3af913e301a7a448f5b411e9')
diff --git a/var/spack/repos/builtin/packages/py-questionary/package.py b/var/spack/repos/builtin/packages/py-questionary/package.py
new file mode 100644
index 0000000000..62b21eed9e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-questionary/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyQuestionary(PythonPackage):
+ """Questionary is a Python library for effortlessly building pretty
+ command line interfaces."""
+
+ homepage = "https://github.com/tmbo/questionary"
+ pypi = "questionary/questionary-1.9.0.tar.gz"
+
+ version('1.9.0', sha256='a050fdbb81406cddca679a6f492c6272da90cb09988963817828f697cf091c55')
+
+ depends_on('python@3.6:3.9.999', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-prompt-toolkit@2.0:3.99', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-radiant-mlhub/package.py b/var/spack/repos/builtin/packages/py-radiant-mlhub/package.py
new file mode 100644
index 0000000000..b0846f3aaf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-radiant-mlhub/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyRadiantMlhub(PythonPackage):
+ """A Python client for Radiant MLHub."""
+
+ homepage = "https://github.com/radiantearth/radiant-mlhub"
+ pypi = "radiant-mlhub/radiant_mlhub-0.2.1.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('0.2.1', sha256='75a2f096b09a87191238fe557dc64dda8c44156351b4026c784c848c7d84b6fb')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-requests@2.25.1:2.25.999', type=('build', 'run'))
+ depends_on('py-pystac@0.5.4', type=('build', 'run'))
+ depends_on('py-click@7.1.2:7.1.999', type=('build', 'run'))
+ depends_on('py-tqdm@4.56.0:4.56.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-radical-entk/package.py b/var/spack/repos/builtin/packages/py-radical-entk/package.py
new file mode 100755
index 0000000000..2cbd6a1ac4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-radical-entk/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 PyRadicalEntk(PythonPackage):
+ """RADICAL Ensemble Toolkit is used for developing and executing
+ large-scale ensemble-based workflows."""
+
+ homepage = 'https://radical-cybertools.github.io'
+ git = 'https://github.com/radical-cybertools/radical.entk.git'
+ pypi = 'radical.entk/radical.entk-1.6.7.tar.gz'
+
+ maintainers = ['andre-merzky']
+
+ version('develop', branch='devel')
+ version('1.6.7', sha256='9384568279d29b9619a565c075f287a08bca8365e2af55e520af0c2f3595f8a2')
+
+ depends_on('py-radical-utils', type=('build', 'run'))
+ depends_on('py-radical-pilot', type=('build', 'run'))
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-pika@0.13.0', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-radical-gtod/package.py b/var/spack/repos/builtin/packages/py-radical-gtod/package.py
new file mode 100755
index 0000000000..4e8eda7ea2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-radical-gtod/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyRadicalGtod(PythonPackage):
+ """RADICAL-GTOD provides a single method, gtod, which returns the current
+ time in seconds since epoch (01.01.1970) with sub-second resolution and a
+ binary tool, radical-gtod, which is a compiled binary and does not require
+ the invocation of the Python interpreter."""
+
+ homepage = 'https://radical-cybertools.github.io'
+ git = 'https://github.com/radical-cybertools/radical.gtod.git'
+ pypi = 'radical.gtod/radical.gtod-1.6.7.tar.gz'
+
+ maintainers = ['andre-merzky']
+
+ version('develop', branch='devel')
+ version('1.6.7', sha256='8d7d32e3d0bcf6d7cf176454a9892a46919b03e1ed96bee389380e6d75d6eff8')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-radical-pilot/package.py b/var/spack/repos/builtin/packages/py-radical-pilot/package.py
new file mode 100755
index 0000000000..20a08e4187
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-radical-pilot/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 PyRadicalPilot(PythonPackage):
+ """RADICAL-Pilot is a Pilot system specialized in executing applications
+ composed of many computational tasks on high performance computing (HPC)
+ platforms."""
+
+ homepage = 'https://radical-cybertools.github.io'
+ git = 'https://github.com/radical-cybertools/radical.pilot.git'
+ pypi = 'radical.pilot/radical.pilot-1.6.7.tar.gz'
+
+ maintainers = ['andre-merzky']
+
+ version('develop', branch='devel')
+ version('1.6.7', sha256='6ca0a3bd3cda65034fa756f37fa05681d5a43441c1605408a58364f89c627970')
+
+ depends_on('py-radical-utils@1.6.7:', type=('build', 'run'))
+ depends_on('py-radical-saga@1.6.6:', type=('build', 'run'))
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-pymongo', type=('build', 'run'))
+ depends_on('py-setproctitle', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-radical-saga/package.py b/var/spack/repos/builtin/packages/py-radical-saga/package.py
new file mode 100755
index 0000000000..cf72b75aab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-radical-saga/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 PyRadicalSaga(PythonPackage):
+ """RADICAL-SAGA (RS) implements the interface specification of the Open
+ Grid Forum (OGF) Simple API for Grid Applications (SAGA) standard. RS works
+ as a light-weight access layer for distributed computing infrastructures,
+ providing adaptors for different middleware systems and services."""
+
+ homepage = 'https://radical-cybertools.github.io'
+ git = 'https://github.com/radical-cybertools/radical.saga.git'
+ pypi = 'radical.saga/radical.saga-1.6.10.tar.gz'
+
+ maintainers = ['andre-merzky']
+
+ version('develop', branch='devel')
+ version('1.6.10', sha256='8fe7e281e9f81234f34f5c7c7986871761e9e37230d2a874c65d18daeccd976a')
+ version('1.6.8', sha256='d5e9f95a027087fb637cef065ff3af848e5902e403360189e36c9aa7c3f6f29b')
+
+ depends_on('py-radical-utils', type=('build', 'run'))
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-apache-libcloud', type=('build', 'run'))
+ depends_on('py-parse', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-radical-utils/package.py b/var/spack/repos/builtin/packages/py-radical-utils/package.py
index c0c38ecd40..d8c0276320 100644..100755
--- a/var/spack/repos/builtin/packages/py-radical-utils/package.py
+++ b/var/spack/repos/builtin/packages/py-radical-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,30 @@ from spack import *
class PyRadicalUtils(PythonPackage):
- """Shared code and tools for various RADICAL Projects"""
+ """RADICAL-Utils contains shared code and tools for various
+ RADICAL-Cybertools packages."""
- homepage = "http://radical.rutgers.edu"
- url = "https://pypi.io/packages/source/r/radical.utils/radical.utils-0.45.tar.gz"
+ homepage = 'https://radical-cybertools.github.io'
+ git = 'https://github.com/radical-cybertools/radical.utils.git'
+ pypi = 'radical.utils/radical.utils-1.6.7.tar.gz'
- version('0.45', sha256='1333cff1a69532e51d4484fbac3fad6b172d415d2055a3141117c7cf8bdee6c5')
- version('0.41.1', sha256='582900e0434f49b69885a89bc65dc787362756e1014d52a4afac0bb61bcaa3ce')
+ maintainers = ['andre-merzky']
- depends_on('py-setuptools', type='build')
- depends_on('py-colorama', type=('build', 'run'))
- depends_on('py-netifaces', type=('build', 'run'))
+ version('develop', branch='devel')
+ version('1.6.7', sha256='552f6c282f960ccd9d2401d686b0b3bfab35dfa94a26baeb2d3b4e45211f05a9')
+
+ version('0.45', sha256='1333cff1a69532e51d4484fbac3fad6b172d415d2055a3141117c7cf8bdee6c5', deprecated=True)
+ version('0.41.1', sha256='582900e0434f49b69885a89bc65dc787362756e1014d52a4afac0bb61bcaa3ce', deprecated=True)
+
+ depends_on('py-radical-gtod', type=('build', 'run'))
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-colorama', type=('build', 'run'))
+ depends_on('py-msgpack', type=('build', 'run'))
+ depends_on('py-netifaces', type=('build', 'run'))
+ depends_on('py-ntplib', type=('build', 'run'))
+ depends_on('py-pymongo', type=('build', 'run'))
+ depends_on('py-pyzmq', type=('build', 'run'))
+ depends_on('py-regex', type=('build', 'run'))
+ depends_on('py-setproctitle', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-ranger-fm/package.py b/var/spack/repos/builtin/packages/py-ranger-fm/package.py
index 92485a649b..2b61107f9d 100644
--- a/var/spack/repos/builtin/packages/py-ranger-fm/package.py
+++ b/var/spack/repos/builtin/packages/py-ranger-fm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ from spack import *
class PyRangerFm(PythonPackage):
"""A VIM-inspired filemanager for the console"""
- homepage = "https://pypi.python.org/pypi/ranger-fm"
- url = "https://pypi.io/packages/source/r/ranger-fm/ranger-fm-1.9.2.tar.gz"
+ pypi = "ranger-fm/ranger-fm-1.9.2.tar.gz"
git = "https://github.com/ranger/ranger.git"
version('1.9.2', sha256='0ec62031185ad1f40b9faebd5a2d517c8597019c2eee919e3f1c60ce466d8625')
diff --git a/var/spack/repos/builtin/packages/py-rarfile/package.py b/var/spack/repos/builtin/packages/py-rarfile/package.py
new file mode 100644
index 0000000000..b7d81e5499
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rarfile/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyRarfile(PythonPackage):
+ """RAR archive reader for Python."""
+
+ homepage = "https://github.com/markokr/rarfile"
+ pypi = "rarfile/rarfile-4.0.tar.gz"
+
+ version('4.0', sha256='67548769229c5bda0827c1663dce3f54644f9dbfba4ae86d4da2b2afd3e602a1')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('unrar', type='run')
diff --git a/var/spack/repos/builtin/packages/py-rasterio/package.py b/var/spack/repos/builtin/packages/py-rasterio/package.py
index 8d3b131b4e..09ef44d0ec 100644
--- a/var/spack/repos/builtin/packages/py-rasterio/package.py
+++ b/var/spack/repos/builtin/packages/py-rasterio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,39 +8,40 @@ from spack import *
class PyRasterio(PythonPackage):
"""Rasterio reads and writes geospatial raster data.
+
Geographic information systems use GeoTIFF and other formats to
organize and store gridded, or raster, datasets. Rasterio reads
and writes these formats and provides a Python API based on N-D
arrays."""
homepage = "https://github.com/mapbox/rasterio"
- url = "https://pypi.io/packages/source/r/rasterio/rasterio-1.1.5.tar.gz"
+ pypi = "rasterio/rasterio-1.1.8.tar.gz"
+ git = "https://github.com/mapbox/rasterio.git"
maintainers = ['adamjstewart']
- import_modules = ['rasterio', 'rasterio.rio']
+ version('master', branch='master')
+ version('1.2.3', sha256='d8c345e01052b70ac3bbbe100c83def813c0ab19f7412c2c98e553d03720c1c5')
+ version('1.1.8', sha256='f7cac7e2ecf65b4b1eb78c994c63bd429b67dc679b0bc0ecfe487d3d5bf88fd5')
version('1.1.5', sha256='ebe75c71f9257c780615caaec8ef81fa4602702cf9290a65c213e1639284acc9')
version('1.0.24', sha256='4839479621045211f66868ec49625979693450bc2e476f23e7e8ac4804eaf452')
version('1.0a12', sha256='47d460326e04c64590ff56952271a184a6307f814efc34fb319c12e690585f3c')
- depends_on('python@3.5:', type=('build', 'link', 'run'), when='@1.2:')
+ depends_on('python@3.6:3.9', type=('build', 'link', 'run'), when='@1.2:')
depends_on('python@2.7:2.8,3.5:3.8', type=('build', 'link', 'run'), when='@1.1.0:1.1.999')
depends_on('python@2.7:2.8,3.5:3.7', type=('build', 'link', 'run'), when='@:1.0')
- depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-cython', type='build', when='@master')
depends_on('py-affine', type=('build', 'run'))
depends_on('py-attrs', type=('build', 'run'))
depends_on('py-click@4:7', type=('build', 'run'))
depends_on('py-cligj@0.5:', type=('build', 'run'))
+ depends_on('py-numpy@1.15:', type=('build', 'link', 'run'), when='@1.2:')
depends_on('py-numpy', type=('build', 'link', 'run'))
depends_on('py-snuggs@1.4.1:', type=('build', 'run'))
depends_on('py-click-plugins', type=('build', 'run'))
depends_on('py-enum34', type='run', when='^python@:3.3')
- depends_on('gdal@1.11:3.0', when='@1.0.25:')
+ depends_on('gdal@2.3:3.2', when='@1.2.0:')
+ depends_on('gdal@1.11:3.2', when='@1.1.0:1.1.999')
+ depends_on('gdal@1.11:3.0', when='@1.0.25:1.0.999')
depends_on('gdal@1.11:2', when='@:1.0.24')
- depends_on('py-pytest@2.8.2:', type='test')
- depends_on('py-pytest-cov@2.2.0:', type='test')
- depends_on('py-boto3@1.2.4:', type='test')
- depends_on('py-packaging', type='test')
- depends_on('py-hypothesis', type='test')
- depends_on('py-futures', type='test', when='^python@:3.1')
- depends_on('py-mock', type='test', when='^python@:3.1')
diff --git a/var/spack/repos/builtin/packages/py-ratelim/package.py b/var/spack/repos/builtin/packages/py-ratelim/package.py
index 30653282cb..354739a68d 100644
--- a/var/spack/repos/builtin/packages/py-ratelim/package.py
+++ b/var/spack/repos/builtin/packages/py-ratelim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyRatelim(PythonPackage):
"""Makes it easy to respect rate limits."""
homepage = "https://github.com/themiurgo/ratelim"
- url = "https://pypi.io/packages/source/r/ratelim/ratelim-0.1.6.tar.gz"
+ pypi = "ratelim/ratelim-0.1.6.tar.gz"
version('0.1.6', sha256='826d32177e11f9a12831901c9fda6679fd5bbea3605910820167088f5acbb11d')
diff --git a/var/spack/repos/builtin/packages/py-raven/package.py b/var/spack/repos/builtin/packages/py-raven/package.py
index a78fc59f0a..dc3b40977f 100644
--- a/var/spack/repos/builtin/packages/py-raven/package.py
+++ b/var/spack/repos/builtin/packages/py-raven/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyRaven(PythonPackage):
"""Raven is a client for Sentry."""
homepage = "https://github.com/getsentry/raven-python"
- url = "https://pypi.io/packages/source/r/raven/raven-6.10.0.tar.gz"
+ pypi = "raven/raven-6.10.0.tar.gz"
version('6.10.0', sha256='3fa6de6efa2493a7c827472e984ce9b020797d0da16f1db67197bcc23c8fae54')
diff --git a/var/spack/repos/builtin/packages/py-ray/package.py b/var/spack/repos/builtin/packages/py-ray/package.py
index 8d7b1c2769..7b620d650e 100644
--- a/var/spack/repos/builtin/packages/py-ray/package.py
+++ b/var/spack/repos/builtin/packages/py-ray/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class PyRay(PythonPackage):
build_directory = 'python'
depends_on('python@3.6:', type=('build', 'run'))
- depends_on('bazel@3.2.0:', type='build')
+ depends_on('bazel@3.2.0', type='build')
depends_on('py-setuptools', type='build')
depends_on('py-cython@0.29.14:', type='build')
depends_on('py-wheel', type='build')
diff --git a/var/spack/repos/builtin/packages/py-rbtools/package.py b/var/spack/repos/builtin/packages/py-rbtools/package.py
index 4315936c80..1f46324100 100644
--- a/var/spack/repos/builtin/packages/py-rbtools/package.py
+++ b/var/spack/repos/builtin/packages/py-rbtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-rdflib/package.py b/var/spack/repos/builtin/packages/py-rdflib/package.py
index 5e1b8da03a..ae79ffa481 100644
--- a/var/spack/repos/builtin/packages/py-rdflib/package.py
+++ b/var/spack/repos/builtin/packages/py-rdflib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class PyRdflib(PythonPackage):
statements """
homepage = "https://github.com/RDFLib/rdflib"
- url = "https://pypi.io/packages/source/r/rdflib/rdflib-5.0.0.tar.gz"
+ pypi = "rdflib/rdflib-5.0.0.tar.gz"
version('5.0.0', sha256='78149dd49d385efec3b3adfbd61c87afaf1281c30d3fcaf1b323b34f603fb155')
diff --git a/var/spack/repos/builtin/packages/py-readme-renderer/package.py b/var/spack/repos/builtin/packages/py-readme-renderer/package.py
index edfdfa6d46..fc5c2dcb44 100644
--- a/var/spack/repos/builtin/packages/py-readme-renderer/package.py
+++ b/var/spack/repos/builtin/packages/py-readme-renderer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyReadmeRenderer(PythonPackage):
for Warehouse."""
homepage = "https://github.com/pypa/readme_renderer"
- url = "https://pypi.io/packages/source/r/readme_renderer/readme_renderer-24.0.tar.gz"
+ pypi = "readme_renderer/readme_renderer-24.0.tar.gz"
version('24.0', sha256='bb16f55b259f27f75f640acf5e00cf897845a8b3e4731b5c1a436e4b8529202f')
version('16.0', sha256='c46b3418ddef3c3c3f819a4a9cfd56ede15c03d12197962a7e7a89edf1823dd5')
@@ -21,5 +21,3 @@ class PyReadmeRenderer(PythonPackage):
depends_on('py-docutils@0.13.1:', type=('build', 'run'))
depends_on('py-pygments', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
- depends_on('py-pytest', type='test')
- depends_on('py-mock', type='test')
diff --git a/var/spack/repos/builtin/packages/py-recommonmark/package.py b/var/spack/repos/builtin/packages/py-recommonmark/package.py
index ad27abc0c1..056f448a34 100644
--- a/var/spack/repos/builtin/packages/py-recommonmark/package.py
+++ b/var/spack/repos/builtin/packages/py-recommonmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyRecommonmark(PythonPackage):
http://recommonmark.readthedocs.org"""
homepage = "https://github.com/readthedocs/recommonmark"
- url = "https://pypi.io/packages/source/r/recommonmark/recommonmark-0.6.0.tar.gz"
+ pypi = "recommonmark/recommonmark-0.6.0.tar.gz"
version('0.6.0', sha256='29cd4faeb6c5268c633634f2d69aef9431e0f4d347f90659fd0aab20e541efeb')
diff --git a/var/spack/repos/builtin/packages/py-redis/package.py b/var/spack/repos/builtin/packages/py-redis/package.py
index 970f97f12e..2d99d04e4b 100644
--- a/var/spack/repos/builtin/packages/py-redis/package.py
+++ b/var/spack/repos/builtin/packages/py-redis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,14 +9,13 @@ from spack import *
class PyRedis(PythonPackage):
"""The Python interface to the Redis key-value store."""
- homepage = "https://pypi.org/project/redis/"
- url = "https://pypi.io/packages/source/r/redis/redis-3.3.8.tar.gz"
+ pypi = "redis/redis-3.3.8.tar.gz"
version('3.5.3', sha256='0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2')
version('3.5.0', sha256='7378105cd8ea20c4edc49f028581e830c01ad5f00be851def0f4bc616a83cd89')
version('3.3.8', sha256='98a22fb750c9b9bb46e75e945dc3f61d0ab30d06117cbb21ff9cd1d315fedd3b')
- variant("hiredis", default=False, description="Support for hiredis which speeds up parsing of multi bulk replies")
+ variant("hiredis", default=False, description="Support for hiredis which speeds up parsing of multi bulk replies")
depends_on('python@2.7:2.8,3.4:', when="@3.3.0:3.3.99", type=('build', 'run'))
depends_on('python@2.7:2.8,3.5:', when="@3.4.0:", type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-regex/package.py b/var/spack/repos/builtin/packages/py-regex/package.py
index a6ab78adb7..95046d308b 100644
--- a/var/spack/repos/builtin/packages/py-regex/package.py
+++ b/var/spack/repos/builtin/packages/py-regex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,12 @@ from spack import *
class PyRegex(PythonPackage):
"""Alternative regular expression module, to replace re."""
- homepage = "https://pypi.python.org/pypi/regex/"
- url = "https://pypi.io/packages/source/r/regex/regex-2017.07.11.tar.gz"
+ pypi = "regex/regex-2020.11.13.tar.gz"
- version('2019.11.1', sha256='720e34a539a76a1fedcebe4397290604cc2bdf6f81eca44adb9fb2ea071c0c69')
+ version('2020.11.13', sha256='83d6b356e116ca119db8e7c6fc2983289d87b27b3fac238cfe5dca529d884562')
+ version('2019.11.1', sha256='720e34a539a76a1fedcebe4397290604cc2bdf6f81eca44adb9fb2ea071c0c69')
+ version('2019.02.07', sha256='4a1a1d963f462c13722b34ef1f82c4707091b0a3fb9b5fd79b6670c38b734095')
+ version('2018.01.10', sha256='139678fc013b75e486e580c39b4c52d085ed7362e400960f8be1711a414f16b5')
version('2017.07.11', sha256='dbda8bdc31a1c85445f1a1b29d04abda46e5c690f8f933a9cc3a85a358969616')
- depends_on('py-setuptools', type='build', when='@2017.07.11')
+ depends_on('py-setuptools', type='build', when='@:2018,2020:')
diff --git a/var/spack/repos/builtin/packages/py-reindent/package.py b/var/spack/repos/builtin/packages/py-reindent/package.py
new file mode 100644
index 0000000000..09c489faff
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-reindent/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyReindent(PythonPackage):
+ """Change Python (.py) files to use 4-space indents and no hard tab
+ characters. Also trim excess spaces and tabs from ends of lines, and remove
+ empty lines at the end of files. Also ensure the last line ends with a
+ newline."""
+
+ pypi = "reindent/reindent-3.5.1.tar.gz"
+
+ version('3.5.1', sha256='59aeb8fbc16e45686f65df23b91896a17eb14ace7a7546860f50d2bb5ec4c9c0')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-reportlab/package.py b/var/spack/repos/builtin/packages/py-reportlab/package.py
index 222890124f..34f7d31169 100644
--- a/var/spack/repos/builtin/packages/py-reportlab/package.py
+++ b/var/spack/repos/builtin/packages/py-reportlab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyReportlab(PythonPackage):
"""The ReportLab Toolkit. An Open Source Python library for generating
PDFs and graphics."""
- homepage = "https://pypi.python.org/pypi/reportlab"
- url = "https://pypi.io/packages/source/r/reportlab/reportlab-3.4.0.tar.gz"
+ pypi = "reportlab/reportlab-3.4.0.tar.gz"
version('3.4.0', sha256='5beaf35e59dfd5ebd814fdefd76908292e818c982bd7332b5d347dfd2f01c343')
diff --git a/var/spack/repos/builtin/packages/py-repoze-lru/package.py b/var/spack/repos/builtin/packages/py-repoze-lru/package.py
index ceec2fcb87..49e6a98d53 100644
--- a/var/spack/repos/builtin/packages/py-repoze-lru/package.py
+++ b/var/spack/repos/builtin/packages/py-repoze-lru/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyRepozeLru(PythonPackage):
"""A tiny LRU cache implementation and decorator"""
- homepage = "https://pypi.org/project/repoze.lru/"
- url = "https://pypi.io/packages/source/r/repoze.lru/repoze.lru-0.7.tar.gz"
+ pypi = "repoze.lru/repoze.lru-0.7.tar.gz"
version('0.7', sha256='0429a75e19380e4ed50c0694e26ac8819b4ea7851ee1fc7583c8572db80aff77')
diff --git a/var/spack/repos/builtin/packages/py-reproject/package.py b/var/spack/repos/builtin/packages/py-reproject/package.py
index 3b73633641..0fea64d769 100644
--- a/var/spack/repos/builtin/packages/py-reproject/package.py
+++ b/var/spack/repos/builtin/packages/py-reproject/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,7 +17,7 @@ class PyReproject(PythonPackage):
astropy-healpix package."""
homepage = 'https://reproject.readthedocs.io/'
- url = 'https://pypi.io/packages/source/r/reproject/reproject-0.7.1.tar.gz'
+ pypi = 'reproject/reproject-0.7.1.tar.gz'
version('0.7.1', sha256='95c0fa49e6b4e36455b91fa09ad1b71b230c990ad91d948af67ea3509a1a4ccb')
diff --git a/var/spack/repos/builtin/packages/py-requests-ftp/package.py b/var/spack/repos/builtin/packages/py-requests-ftp/package.py
new file mode 100644
index 0000000000..b61c3a5122
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-requests-ftp/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyRequestsFtp(PythonPackage):
+ """FTP Transport Adapter for Requests.."""
+
+ homepage = "https://github.com/Lukasa/requests-ftp"
+ pypi = "requests-ftp/requests-ftp-0.3.1.tar.gz"
+
+ version('0.3.1', sha256='7504ceb5cba8a5c0135ed738596820a78c5f2be92d79b29f96ba99b183d8057a')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-requests', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-requests-futures/package.py b/var/spack/repos/builtin/packages/py-requests-futures/package.py
index a11d577e1c..dd69b2ff03 100644
--- a/var/spack/repos/builtin/packages/py-requests-futures/package.py
+++ b/var/spack/repos/builtin/packages/py-requests-futures/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyRequestsFutures(PythonPackage):
"""Asynchronous Python HTTP Requests for Humans using Futures"""
homepage = "https://github.com/ross/requests-futures"
- url = "https://pypi.io/packages/source/r/requests-futures/requests-futures-1.0.0.tar.gz"
+ pypi = "requests-futures/requests-futures-1.0.0.tar.gz"
version('1.0.0', sha256='35547502bf1958044716a03a2f47092a89efe8f9789ab0c4c528d9c9c30bc148')
diff --git a/var/spack/repos/builtin/packages/py-requests-mock/package.py b/var/spack/repos/builtin/packages/py-requests-mock/package.py
index 94807b5cbd..8b44cbf5f7 100644
--- a/var/spack/repos/builtin/packages/py-requests-mock/package.py
+++ b/var/spack/repos/builtin/packages/py-requests-mock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyRequestsMock(PythonPackage):
"""Mock out responses from the requests package."""
homepage = "https://requests-mock.readthedocs.io/"
- url = "https://pypi.io/packages/source/r/requests-mock/requests-mock-1.7.0.tar.gz"
-
- import_modules = ['requests_mock']
+ pypi = "requests-mock/requests-mock-1.7.0.tar.gz"
version('1.7.0', sha256='88d3402dd8b3c69a9e4f9d3a73ad11b15920c6efd36bc27bf1f701cf4a8e4646')
diff --git a/var/spack/repos/builtin/packages/py-requests-ntlm/package.py b/var/spack/repos/builtin/packages/py-requests-ntlm/package.py
new file mode 100644
index 0000000000..011b219959
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-requests-ntlm/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyRequestsNtlm(PythonPackage):
+ """This package allows for HTTP NTLM authentication using the requests library."""
+
+ homepage = "https://github.com/requests/requests-ntlm"
+ pypi = "requests_ntlm/requests_ntlm-1.1.0.tar.gz"
+
+ version('1.1.0', sha256='9189c92e8c61ae91402a64b972c4802b2457ce6a799d658256ebf084d5c7eb71')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-requests@2.0.0:', type=('build', 'run'))
+ depends_on('py-ntlm-auth@1.0.2:', type=('build', 'run'))
+ depends_on('py-cryptography@1.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py b/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py
index 6c6a633e47..09d8de87e5 100644
--- a/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py
+++ b/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyRequestsOauthlib(PythonPackage):
"""
homepage = "https://github.com/requests/requests-oauthlib"
- url = "https://pypi.io/packages/source/r/requests-oauthlib/requests-oauthlib-1.2.0.tar.gz"
+ pypi = "requests-oauthlib/requests-oauthlib-1.2.0.tar.gz"
version('1.2.0', sha256='bd6533330e8748e94bf0b214775fed487d309b8b8fe823dc45641ebcd9a32f57')
version('0.3.3', sha256='37557b4de3eef50d2a4c65dc9382148b8331f04b1c637c414b3355feb0f007e9')
@@ -20,5 +20,3 @@ class PyRequestsOauthlib(PythonPackage):
depends_on('py-oauthlib@3.0.0:', type=('build', 'run'))
depends_on('py-requests@2.0.0:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
- depends_on('py-mock', type='test')
- depends_on('py-requests-mock', type='test')
diff --git a/var/spack/repos/builtin/packages/py-requests-toolbelt/package.py b/var/spack/repos/builtin/packages/py-requests-toolbelt/package.py
index e34d1c5a73..100efc5020 100644
--- a/var/spack/repos/builtin/packages/py-requests-toolbelt/package.py
+++ b/var/spack/repos/builtin/packages/py-requests-toolbelt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyRequestsToolbelt(PythonPackage):
python-requests"""
homepage = "https://toolbelt.readthedocs.org/"
- url = "https://pypi.io/packages/source/r/requests-toolbelt/requests-toolbelt-0.9.1.tar.gz"
+ pypi = "requests-toolbelt/requests-toolbelt-0.9.1.tar.gz"
version('0.9.1', sha256='968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0')
version('0.8.0', sha256='f6a531936c6fa4c6cfce1b9c10d5c4f498d16528d2a54a22ca00011205a187b5')
diff --git a/var/spack/repos/builtin/packages/py-requests-unixsocket/package.py b/var/spack/repos/builtin/packages/py-requests-unixsocket/package.py
new file mode 100644
index 0000000000..f2e5c41a1e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-requests-unixsocket/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyRequestsUnixsocket(PythonPackage):
+ """Use requests to talk HTTP via a UNIX domain socket."""
+
+ homepage = "https://github.com/msabramo/requests-unixsocket"
+ pypi = "requests-unixsocket/requests-unixsocket-0.2.0.tar.gz"
+
+ version('0.2.0', sha256='9e5c1a20afc3cf786197ae59c79bcdb0e7565f218f27df5f891307ee8817c1ea')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pbr', type='build')
+ depends_on('py-requests@1.1:', type=('build', 'run'))
+ depends_on('py-urllib3@1.8:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-requests/package.py b/var/spack/repos/builtin/packages/py-requests/package.py
index 30af0cd73f..01e97ff5f3 100644
--- a/var/spack/repos/builtin/packages/py-requests/package.py
+++ b/var/spack/repos/builtin/packages/py-requests/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,19 +10,9 @@ class PyRequests(PythonPackage):
"""Python HTTP for Humans."""
homepage = "http://python-requests.org"
- url = "https://pypi.io/packages/source/r/requests/requests-2.24.0.tar.gz"
-
- import_modules = [
- 'requests', 'requests.packages', 'requests.packages.chardet',
- 'requests.packages.urllib3', 'requests.packages.idna',
- 'requests.packages.chardet.cli', 'requests.packages.urllib3.util',
- 'requests.packages.urllib3.packages',
- 'requests.packages.urllib3.contrib',
- 'requests.packages.urllib3.packages.ssl_match_hostname',
- 'requests.packages.urllib3.packages.backports',
- 'requests.packages.urllib3.contrib._securetransport'
- ]
+ pypi = "requests/requests-2.24.0.tar.gz"
+ version('2.25.1', sha256='27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804')
version('2.24.0', sha256='b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b')
version('2.23.0', sha256='b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6')
version('2.22.0', sha256='11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4')
@@ -35,16 +25,11 @@ class PyRequests(PythonPackage):
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
+ depends_on('py-chardet@3.0.2:4.999', type=('build', 'run'), when='@2.25.1:')
+ depends_on('py-chardet@3.0.2:3.999', type=('build', 'run'), when='@2.23.0:2.25.0')
depends_on('py-chardet@3.0.2:3.0.999', type=('build', 'run'), when='@2.16.0:2.22.999')
- depends_on('py-idna@2.5:2.8', type=('build', 'run'), when='@2.16.0:2.22.999')
- depends_on('py-chardet@3.0.2:3.999', type=('build', 'run'), when='@2.23.0:')
depends_on('py-idna@2.5:2.999', type=('build', 'run'), when='@2.23.0:')
- depends_on('py-urllib3@1.21.1:1.24,1.25.2:1.25.999', type=('build', 'run'), when='@2.16.0:')
+ depends_on('py-idna@2.5:2.8', type=('build', 'run'), when='@2.16.0:2.22.999')
+ depends_on('py-urllib3@1.21.1:1.26.999', type=('build', 'run'), when='@2.25.0:')
+ depends_on('py-urllib3@1.21.1:1.24,1.25.2:1.25.999', type=('build', 'run'), when='@2.16.0:2.24.999')
depends_on('py-certifi@2017.4.17:', type=('build', 'run'), when='@2.16.0:')
-
- depends_on('py-pytest-httpbin@0.0.7', type='test')
- depends_on('py-pytest-cov', type='test')
- depends_on('py-pytest-mock', type='test')
- depends_on('py-pytest-xdist', type='test')
- depends_on('py-pysocks@1.5.6,1.5.8:', type='test')
- depends_on('py-pytest@2.8.0:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-resampy/package.py b/var/spack/repos/builtin/packages/py-resampy/package.py
index 35249c8acc..d591a22fb4 100644
--- a/var/spack/repos/builtin/packages/py-resampy/package.py
+++ b/var/spack/repos/builtin/packages/py-resampy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyResampy(PythonPackage):
"""Efficient sample rate conversion in python"""
homepage = "https://github.com/bmcfee/resampy"
- url = "https://pypi.io/packages/source/r/resampy/resampy-0.2.2.tar.gz"
+ pypi = "resampy/resampy-0.2.2.tar.gz"
version('0.2.2', sha256='62af020d8a6674d8117f62320ce9470437bb1d738a5d06cd55591b69b463929e')
diff --git a/var/spack/repos/builtin/packages/py-responses/package.py b/var/spack/repos/builtin/packages/py-responses/package.py
new file mode 100644
index 0000000000..25cb4b337b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-responses/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyResponses(PythonPackage):
+ """A utility library for mocking out the `requests` Python library."""
+
+ homepage = "https://github.com/getsentry/responses"
+ pypi = "responses/responses-0.13.3.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('0.13.3', sha256='18a5b88eb24143adbf2b4100f328a2f5bfa72fbdacf12d97d41f07c26c45553d')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-mock', when='^python@:3.2.999', type=('build', 'run'))
+ depends_on('py-cookies', when='^python@:3.3.999', type=('build', 'run'))
+ depends_on('py-requests@2.0:', type=('build', 'run'))
+ depends_on('py-urllib3@1.25.10:', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-restview/package.py b/var/spack/repos/builtin/packages/py-restview/package.py
index 40d2765aec..48e951944f 100644
--- a/var/spack/repos/builtin/packages/py-restview/package.py
+++ b/var/spack/repos/builtin/packages/py-restview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyRestview(PythonPackage):
"""A viewer for ReStructuredText documents that renders them on the fly."""
homepage = "https://mg.pov.lt/restview/"
- url = "https://pypi.io/packages/source/r/restview/restview-2.6.1.tar.gz"
+ pypi = "restview/restview-2.6.1.tar.gz"
version('2.6.1', sha256='14d261ee0edf30e0ebc1eb320428ef4898e97422b00337863556966b851fb5af')
diff --git a/var/spack/repos/builtin/packages/py-resultsfile/package.py b/var/spack/repos/builtin/packages/py-resultsfile/package.py
index 6f00a3ab1d..0b1b862416 100644
--- a/var/spack/repos/builtin/packages/py-resultsfile/package.py
+++ b/var/spack/repos/builtin/packages/py-resultsfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-retry-decorator/package.py b/var/spack/repos/builtin/packages/py-retry-decorator/package.py
new file mode 100644
index 0000000000..f0c677a746
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-retry-decorator/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyRetryDecorator(PythonPackage):
+ """Decorator for retrying when exceptions occur"""
+
+ homepage = "https://github.com/pnpnpn/retry-decorator"
+ pypi = "retry-decorator/retry_decorator-1.1.1.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('1.1.1', sha256='e1e8ad02e518fe11073f2ea7d80b6b8be19daa27a60a1838aff7c731ddcf2ebe')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-retrying/package.py b/var/spack/repos/builtin/packages/py-retrying/package.py
index ef5a7d05ca..401431d860 100644
--- a/var/spack/repos/builtin/packages/py-retrying/package.py
+++ b/var/spack/repos/builtin/packages/py-retrying/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyRetrying(PythonPackage):
about anything."""
homepage = "https://github.com/rholder/retrying"
- url = "https://pypi.io/packages/source/r/retrying/retrying-1.3.3.tar.gz"
+ pypi = "retrying/retrying-1.3.3.tar.gz"
version('1.3.3', sha256='08c039560a6da2fe4f2c426d0766e284d3b736e355f8dd24b37367b0bb41973b')
diff --git a/var/spack/repos/builtin/packages/py-rfc3986/package.py b/var/spack/repos/builtin/packages/py-rfc3986/package.py
index 1650562db2..60af8af588 100644
--- a/var/spack/repos/builtin/packages/py-rfc3986/package.py
+++ b/var/spack/repos/builtin/packages/py-rfc3986/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyRfc3986(PythonPackage):
"""A Python implementation of RFC 3986 including
validation and authority parsing."""
- homepage = "http://rfc3986.readthedocs.io/"
- url = "https://pypi.io/packages/source/r/rfc3986/rfc3986-1.4.0.tar.gz"
+ homepage = "https://rfc3986.readthedocs.io/"
+ pypi = "rfc3986/rfc3986-1.4.0.tar.gz"
version('1.4.0', sha256='112398da31a3344dc25dbf477d8df6cb34f9278a94fee2625d89e4514be8bb9d')
diff --git a/var/spack/repos/builtin/packages/py-rich/package.py b/var/spack/repos/builtin/packages/py-rich/package.py
new file mode 100644
index 0000000000..11de5526b9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rich/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2021 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 PyRich(PythonPackage):
+ """Rich is a Python library for rich text and beautiful formatting
+ in the terminal.
+ """
+
+ homepage = "https://github.com/willmcgugan/rich"
+ pypi = "rich/rich-9.4.0.tar.gz"
+
+ version('10.0.0', sha256='4674bd3056a72bb282ad581e3f8092dc110cdcc456b5ba76e34965cb85a69724')
+ version('9.9.0', sha256='0bd8f42c3a03b7ef5e311d5e37f47bea9d268f541981c169072be5869c007957')
+ version('9.8.2', sha256='c0d5903b463f015b254d6f52da82af3821d266fe516ae05fdc266e6abba5c3a8')
+ version('9.8.1', sha256='0ec853f882613e75a5e46d545ddaa48cad235c616eaeb094792012fe22e8b2c6')
+ version('9.8.0', sha256='c91c2587dba9aa8dd30c5f090e700f54433ccd73e209f4737e10385c4c1cbf19')
+ version('9.7.0', sha256='25583ce533afae71de086ca97cf0aa883a5e1a220dfcc6049a2809a74bc79ca0')
+ version('9.6.2', sha256='b6a7f9ef1a35c248498952d3454fb4f88de415dd989f97c3e5c5e2235d66e3a5')
+ version('9.6.1', sha256='5ac9f4f7f6b0e32e7e412de127f15b94144e22c9a7896551474d640143bbaa7b')
+ version('9.6.0', sha256='ae7f5f24fc90c76ccb54883f4bd633cbd146e0bbe3e070275ca97038ce53cf2f')
+ version('9.5.1', sha256='8b937e2d2c4ff9dcfda8a5910a8cd384bd30f50ec92346d616f62065c662df5f')
+ version('9.5.0', sha256='a65a9d003cb6e87e6fa5d1b53bff6f43a8d7475524c58873acdbf5bba0683fa3')
+ version('9.4.0', sha256='bde23a1761373fed2802502ff98292c5d735a5389ed96f4fe1be5fb4c2cde8ea')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-typing-extensions@3.7.4:3.99', type=('build', 'run'))
+ depends_on('py-dataclasses@0.7:0.8', when='^python@:3.6', type=('build', 'run'))
+ depends_on('py-pygments@2.6:2.99', type=('build', 'run'))
+ depends_on('py-commonmark@0.9.0:0.9.999', type=('build', 'run'))
+ depends_on('py-colorama@0.4.0:0.4.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-rios/package.py b/var/spack/repos/builtin/packages/py-rios/package.py
index a2b56e941a..1eac1c5b33 100644
--- a/var/spack/repos/builtin/packages/py-rios/package.py
+++ b/var/spack/repos/builtin/packages/py-rios/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class PyRios(PythonPackage):
etc., allowing the programmer to concentrate on the processing involved.
"""
- homepage = "http://rioshome.org"
+ homepage = "https://www.rioshome.org/en/latest/"
url = "https://github.com/ubarsc/rios/archive/rios-1.4.10.tar.gz"
version('1.4.10', sha256='7f11b54eb1f2ec551d7fc01c039b60bf2c67f0c2fc5b2946f8d986d6a9bc7063')
diff --git a/var/spack/repos/builtin/packages/py-rioxarray/package.py b/var/spack/repos/builtin/packages/py-rioxarray/package.py
new file mode 100644
index 0000000000..9173d4f38f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rioxarray/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 PyRioxarray(PythonPackage):
+ """rasterio xarray extension."""
+
+ homepage = "https://github.com/corteva/rioxarray"
+ pypi = "rioxarray/rioxarray-0.4.1.post0.tar.gz"
+
+ maintainers = ['adamjstewart']
+
+ version('0.4.1.post0', sha256='f043f846724a58518f87dd3fa84acbe39e15a1fac7e64244be3d5dacac7fe62b')
+
+ depends_on('python@3.7:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-rasterio', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-xarray@0.17:', type=('build', 'run'))
+ depends_on('py-pyproj@2.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-rise/package.py b/var/spack/repos/builtin/packages/py-rise/package.py
index e9eba520ef..3f4d480dfe 100644
--- a/var/spack/repos/builtin/packages/py-rise/package.py
+++ b/var/spack/repos/builtin/packages/py-rise/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyRise(PythonPackage):
"""Reveal.js - Jupyter/IPython Slideshow Extension"""
- homepage = "http://rise.readthedocs.io/"
- url = "https://pypi.io/packages/source/r/rise/rise-5.6.1.tar.gz"
+ homepage = "https://rise.readthedocs.io/"
+ pypi = "rise/rise-5.6.1.tar.gz"
version('5.6.1', sha256='1343f068d01adc4dd0226d9b278ce93fc92f365d827431a57e8d5679eb39f4d6')
diff --git a/var/spack/repos/builtin/packages/py-rmm/package.py b/var/spack/repos/builtin/packages/py-rmm/package.py
index 96631d3fbb..69d88ebb19 100644
--- a/var/spack/repos/builtin/packages/py-rmm/package.py
+++ b/var/spack/repos/builtin/packages/py-rmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-rnacocktail/package.py b/var/spack/repos/builtin/packages/py-rnacocktail/package.py
index 13c05186e4..2250d96813 100644
--- a/var/spack/repos/builtin/packages/py-rnacocktail/package.py
+++ b/var/spack/repos/builtin/packages/py-rnacocktail/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyRnacocktail(PythonPackage):
"""RNACocktail: A comprehensive framework
for accurate and efficient RNA-Seq analysis."""
- homepage = "http://bioinform.github.io/rnacocktail/"
+ homepage = "https://bioinform.github.io/rnacocktail/"
url = "https://github.com/bioinform/rnacocktail/archive/v0.2.2.tar.gz"
version('0.2.2', sha256='34aa0d1d7bd9d80303fe7dac5acc0519f7c1ed986397692588343d82ce45c7a5')
diff --git a/var/spack/repos/builtin/packages/py-rnc2rng/package.py b/var/spack/repos/builtin/packages/py-rnc2rng/package.py
new file mode 100644
index 0000000000..d9282d36b3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rnc2rng/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyRnc2rng(PythonPackage):
+ """RELAX NG Compact to regular syntax conversion library."""
+
+ homepage = "https://github.com/djc/rnc2rng"
+ pypi = "rnc2rng/rnc2rng-2.6.5.tar.gz"
+
+ version('2.6.5', sha256='d354afcf0bf8e3b1e8f8d37d71a8fe5b1c0cf75cbd4b71364a9d90b5108a16e5')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-rply', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-robotframework/package.py b/var/spack/repos/builtin/packages/py-robotframework/package.py
index 6eaa479102..8db83f3f8b 100644
--- a/var/spack/repos/builtin/packages/py-robotframework/package.py
+++ b/var/spack/repos/builtin/packages/py-robotframework/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,3 @@ class PyRobotframework(PythonPackage):
version('3.2.1', sha256='9805faa0990125ff2c9689b673448d5f47e78470e7a8e95af1606a775fa8379f')
depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-enum34', type='test')
- depends_on('py-ipaddress', type='test')
- depends_on('py-mock', type='test')
- depends_on('py-unittest2', type='test')
diff --git a/var/spack/repos/builtin/packages/py-rope/package.py b/var/spack/repos/builtin/packages/py-rope/package.py
index 7ea1eea1fc..4ee57419b0 100644
--- a/var/spack/repos/builtin/packages/py-rope/package.py
+++ b/var/spack/repos/builtin/packages/py-rope/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyRope(PythonPackage):
"""a python refactoring library."""
homepage = "https://github.com/python-rope/rope"
- url = "https://pypi.io/packages/source/r/rope/rope-0.10.5.tar.gz"
+ pypi = "rope/rope-0.10.5.tar.gz"
version('0.11.0', sha256='a108c445e1cd897fe19272ab7877d172e7faf3d4148c80e7d20faba42ea8f7b2')
version('0.10.7', sha256='a09edfd2034fd50099a67822f9bd851fbd0f4e98d3b87519f6267b60e50d80d1')
diff --git a/var/spack/repos/builtin/packages/py-rosdep/package.py b/var/spack/repos/builtin/packages/py-rosdep/package.py
new file mode 100644
index 0000000000..83ddbc5ef9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rosdep/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyRosdep(PythonPackage):
+ """rosdep package manager abstraction tool for ROS."""
+
+ homepage = "https://wiki.ros.org/rosdep"
+ pypi = "rosdep/rosdep-0.20.0.tar.gz"
+
+ version('0.20.0', sha256='1de76e41ef17c7289a11d9de594f6c08e8422f26ad09bc855b4f1f4da5e9bfe7')
+
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-catkin-pkg@0.4.0:', type=('build', 'run'))
+ depends_on('py-rospkg@1.2.7:', type=('build', 'run'))
+ depends_on('py-rosdistro@0.7.5:', type=('build', 'run'))
+ depends_on('py-pyyaml@3.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-rosdistro/package.py b/var/spack/repos/builtin/packages/py-rosdistro/package.py
new file mode 100644
index 0000000000..70ba8cd13d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rosdistro/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyRosdistro(PythonPackage):
+ """A tool to work with rosdistro files."""
+
+ homepage = "https://wiki.ros.org/rosdistro"
+ pypi = "rosdistro/rosdistro-0.8.3.tar.gz"
+
+ version('0.8.3', sha256='e14893e0408a2e1fb3ecaef0a9fc978a3675519b828c1fff29ba6a78299b37bd')
+
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-argparse', when='^python@:2.6', type=('build', 'run'))
+ depends_on('py-catkin-pkg', type=('build', 'run'))
+ depends_on('py-rospkg', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-rosinstall-generator/package.py b/var/spack/repos/builtin/packages/py-rosinstall-generator/package.py
new file mode 100644
index 0000000000..e534eacfcc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rosinstall-generator/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyRosinstallGenerator(PythonPackage):
+ """A tool for generating rosinstall files."""
+
+ homepage = "https://wiki.ros.org/rosinstall_generator"
+ pypi = "rosinstall-generator/rosinstall_generator-0.1.22.tar.gz"
+
+ version('0.1.22', sha256='22d22599cd3f08a1f77fb2b1d9464cc8062ede50752a75564d459fcf5447b8c5')
+
+ depends_on('py-catkin-pkg@0.1.28:', type=('build', 'run'))
+ depends_on('py-rosdistro@0.7.3:', type=('build', 'run'))
+ depends_on('py-rospkg', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-rosinstall/package.py b/var/spack/repos/builtin/packages/py-rosinstall/package.py
new file mode 100644
index 0000000000..eb5e58b661
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rosinstall/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyRosinstall(PythonPackage):
+ """The installer for ROS."""
+
+ homepage = "https://wiki.ros.org/rosinstall"
+ pypi = "rosinstall/rosinstall-0.7.8.tar.gz"
+
+ version('0.7.8', sha256='2ba808bf8bac2cc3f13af9745184b9714c1426e11d09eb96468611b2ad47ed40')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-vcstools@0.1.38:', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-rosdistro@0.3.0:', type=('build', 'run'))
+ depends_on('py-catkin-pkg', type=('build', 'run'))
+ depends_on('py-wstool@0.1.12:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-rospkg/package.py b/var/spack/repos/builtin/packages/py-rospkg/package.py
new file mode 100644
index 0000000000..8ce4dfe107
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rospkg/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyRospkg(PythonPackage):
+ """Library for retrieving information about ROS packages and stacks."""
+
+ homepage = "https://wiki.ros.org/rospkg"
+ pypi = "rospkg/rospkg-1.2.9.tar.gz"
+
+ version('1.2.9', sha256='d57aea0e7fdbf42e8189ef5e21b9fb4f8a70ecb6cd1a56a278eab301f6a2b074')
+
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-catkin-pkg', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-distro', type=('build', 'run'))
+ depends_on('py-argparse', when='^python@:2.6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-rply/package.py b/var/spack/repos/builtin/packages/py-rply/package.py
new file mode 100644
index 0000000000..7fd1505a85
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rply/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyRply(PythonPackage):
+ """A pure Python Lex/Yacc that works with RPython."""
+
+ homepage = "https://github.com/alex/rply/"
+ pypi = "rply/rply-0.7.8.tar.gz"
+
+ version('0.7.8', sha256='2a808ac25a4580a9991fc304d64434e299a8fc75760574492f242cbb5bb301c9')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-appdirs', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-rpy2/package.py b/var/spack/repos/builtin/packages/py-rpy2/package.py
index ef9b847b00..87a7b9d003 100644
--- a/var/spack/repos/builtin/packages/py-rpy2/package.py
+++ b/var/spack/repos/builtin/packages/py-rpy2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,7 @@ class PyRpy2(PythonPackage):
structures and functions.
"""
- homepage = "https://pypi.python.org/pypi/rpy2"
- url = "https://pypi.io/packages/source/r/rpy2/rpy2-2.5.4.tar.gz"
+ pypi = "rpy2/rpy2-2.5.4.tar.gz"
version('3.0.4', sha256='2af5158a5d56af7f7bf5e54d8d7e87b6f115ff40f056d82f93cad0cbf6acc0cb')
version('3.0.0', sha256='34efc2935d9015527837d6b1de29641863d184b19d39ad415d5384be8a015bce')
diff --git a/var/spack/repos/builtin/packages/py-rq/package.py b/var/spack/repos/builtin/packages/py-rq/package.py
index 13fc0493a3..ac3c01eccb 100644
--- a/var/spack/repos/builtin/packages/py-rq/package.py
+++ b/var/spack/repos/builtin/packages/py-rq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-rsa/package.py b/var/spack/repos/builtin/packages/py-rsa/package.py
index 85e2b84d00..45fbc3fa9e 100644
--- a/var/spack/repos/builtin/packages/py-rsa/package.py
+++ b/var/spack/repos/builtin/packages/py-rsa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyRsa(PythonPackage):
"""Pure-Python RSA implementation"""
homepage = "https://stuvel.eu/rsa"
- url = "https://pypi.io/packages/source/r/rsa/rsa-3.4.2.tar.gz"
-
- import_modules = ['rsa']
+ pypi = "rsa/rsa-3.4.2.tar.gz"
version('4.0', sha256='1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487')
version('3.4.2', sha256='25df4e10c263fb88b5ace923dd84bf9aa7f5019687b5e55382ffcdb8bede9db5')
diff --git a/var/spack/repos/builtin/packages/py-rseqc/package.py b/var/spack/repos/builtin/packages/py-rseqc/package.py
index fa9fc581b4..194a3145de 100644
--- a/var/spack/repos/builtin/packages/py-rseqc/package.py
+++ b/var/spack/repos/builtin/packages/py-rseqc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyRseqc(PythonPackage):
data."""
homepage = "http://rseqc.sourceforge.net"
- url = "https://pypi.io/packages/source/R/RSeQC/RSeQC-2.6.4.tar.gz"
+ pypi = "RSeQC/RSeQC-2.6.4.tar.gz"
version('3.0.1', sha256='d5f4cb2c24a7348929f5c4947d84c5869e8cd2cba5ba5248d991ebb37c4c6b3d')
version('2.6.4', sha256='e11df661bda1c24fc950f0bce06f586a68ab5f4a2c356f43e4a0dfdc1e184315')
diff --git a/var/spack/repos/builtin/packages/py-rtree/package.py b/var/spack/repos/builtin/packages/py-rtree/package.py
index 1c62efb500..4550ba8841 100644
--- a/var/spack/repos/builtin/packages/py-rtree/package.py
+++ b/var/spack/repos/builtin/packages/py-rtree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,21 @@ from spack import *
class PyRtree(PythonPackage):
- """Python interface to the RTREE.4 Library."""
- homepage = "http://toblerity.org/rtree/"
- url = "https://pypi.io/packages/source/R/Rtree/Rtree-0.8.3.tar.gz"
+ """R-Tree spatial index for Python GIS."""
+ homepage = "https://github.com/Toblerity/rtree"
+ pypi = "Rtree/Rtree-0.8.3.tar.gz"
+
+ version('0.9.7', sha256='be8772ca34699a9ad3fb4cfe2cfb6629854e453c10b3328039301bbfc128ca3e')
version('0.8.3', sha256='6cb9cf3000963ea6a3db777a597baee2bc55c4fc891e4f1967f262cc96148649')
+ depends_on('python@3:', when='@0.9.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('libspatialindex')
+ depends_on('py-wheel', when='@0.9.4:', type='build')
+ depends_on('libspatialindex@1.8.5:')
def setup_build_environment(self, env):
- lib = self.spec['libspatialindex'].prefix.lib
- env.set('SPATIALINDEX_LIBRARY',
- join_path(lib, 'libspatialindex.%s' % dso_suffix))
- env.set('SPATIALINDEX_C_LIBRARY',
- join_path(lib, 'libspatialindex_c.%s' % dso_suffix))
+ env.set('SPATIALINDEX_C_LIBRARY', self.spec['libspatialindex'].libs[0])
+
+ def setup_run_environment(self, env):
+ self.setup_build_environment(env)
diff --git a/var/spack/repos/builtin/packages/py-ruamel-ordereddict/package.py b/var/spack/repos/builtin/packages/py-ruamel-ordereddict/package.py
index 88cdd59914..0ebbbf4606 100644
--- a/var/spack/repos/builtin/packages/py-ruamel-ordereddict/package.py
+++ b/var/spack/repos/builtin/packages/py-ruamel-ordereddict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class PyRuamelOrdereddict(PythonPackage):
at the back). The standard library module OrderedDict, implemented later,
implements a subset of ordereddict functionality."""
- homepage = "https://bitbucket.org/ruamel/ordereddict"
- url = "https://pypi.io/packages/source/r/ruamel.ordereddict/ruamel.ordereddict-0.4.14.tar.gz"
+ homepage = "https://sourceforge.net/projects/ruamel-ordereddict/"
+ pypi = "ruamel.ordereddict/ruamel.ordereddict-0.4.14.tar.gz"
version('0.4.14', sha256='281051d26eb2b18ef3d920e1e260716a52bd058a6b1a2f324102fc6a15cb8d4a')
diff --git a/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py b/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py
index 9724bff0af..bf4d6ef3f6 100644
--- a/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py
+++ b/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,8 @@ class PyRuamelYamlClib(PythonPackage):
"""C version of reader, parser and emitter for ruamel.yaml derived from
libyaml."""
- homepage = "https://bitbucket.org/ruamel/yaml.clib"
- url = "https://pypi.io/packages/source/r/ruamel.yaml.clib/ruamel.yaml.clib-0.2.0.tar.gz"
+ homepage = "https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree/"
+ pypi = "ruamel.yaml.clib/ruamel.yaml.clib-0.2.0.tar.gz"
version('0.2.0', sha256='b66832ea8077d9b3f6e311c4a53d06273db5dc2db6e8a908550f3c14d67e718c')
diff --git a/var/spack/repos/builtin/packages/py-ruamel-yaml/package.py b/var/spack/repos/builtin/packages/py-ruamel-yaml/package.py
index 68e9348936..3375827faf 100644
--- a/var/spack/repos/builtin/packages/py-ruamel-yaml/package.py
+++ b/var/spack/repos/builtin/packages/py-ruamel-yaml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyRuamelYaml(PythonPackage):
"""
homepage = "https://sourceforge.net/p/ruamel-yaml/code/ci/default/tree"
- url = "https://pypi.io/packages/source/r/ruamel.yaml/ruamel.yaml-0.16.10.tar.gz"
+ pypi = "ruamel.yaml/ruamel.yaml-0.16.10.tar.gz"
version('0.16.10', sha256='099c644a778bf72ffa00524f78dd0b6476bca94a1da344130f4bf3381ce5b954')
version('0.16.5', sha256='412a6f5cfdc0525dee6a27c08f5415c7fd832a7afcb7a0ed7319628aed23d408')
diff --git a/var/spack/repos/builtin/packages/py-rx/package.py b/var/spack/repos/builtin/packages/py-rx/package.py
new file mode 100644
index 0000000000..e81c5d22e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-rx/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyRx(PythonPackage):
+ """Reactive Extensions (Rx) for Python"""
+
+ homepage = "http://reactivex.io/"
+ pypi = "Rx/Rx-3.2.0.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('3.2.0', sha256='b657ca2b45aa485da2f7dcfd09fac2e554f7ac51ff3c2f8f2ff962ecd963d91c')
+ version('1.6.1', sha256='13a1d8d9e252625c173dc795471e614eadfe1cf40ffc684e08b8fff0d9748c23')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-s3cmd/package.py b/var/spack/repos/builtin/packages/py-s3cmd/package.py
index 469ee29703..fc8391c561 100644
--- a/var/spack/repos/builtin/packages/py-s3cmd/package.py
+++ b/var/spack/repos/builtin/packages/py-s3cmd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-s3fs/package.py b/var/spack/repos/builtin/packages/py-s3fs/package.py
new file mode 100644
index 0000000000..359b228222
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-s3fs/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyS3fs(PythonPackage):
+ """S3FS builds on aiobotocore to provide a convenient Python filesystem
+ interface for S3."""
+
+ homepage = "https://s3fs.readthedocs.io/en/latest/"
+ pypi = "s3fs/s3fs-0.5.2.tar.gz"
+
+ version('0.5.2', sha256='87e5210415db17b9de18c77bcfc4a301570cc9030ee112b77dc47ab82426bae1')
+
+ depends_on('python@3.7:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-aiobotocore@1.0.1:', type=('build', 'run'))
+ depends_on('py-fsspec@0.8.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-s3transfer/package.py b/var/spack/repos/builtin/packages/py-s3transfer/package.py
index 5db6bd28a3..f683e94820 100644
--- a/var/spack/repos/builtin/packages/py-s3transfer/package.py
+++ b/var/spack/repos/builtin/packages/py-s3transfer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,17 @@ class PyS3transfer(PythonPackage):
"""S3transfer is a Python library for managing Amazon S3 transfers."""
homepage = "https://github.com/boto/s3transfer"
- url = "https://pypi.io/packages/source/s/s3transfer/s3transfer-0.2.1.tar.gz"
+ pypi = "s3transfer/s3transfer-0.2.1.tar.gz"
- import_modules = ['s3transfer']
+ depends_on('python@3.6:', when='@0.5.0', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.6:', when='@0.4.2', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.4:', when='@0.3.4', type=('build', 'run'))
+ version('0.5.0', sha256='50ed823e1dc5868ad40c8dc92072f757aa0e653a192845c94a3b676f4a62da4c')
+ version('0.4.2', sha256='cb022f4b16551edebbb31a377d3f09600dbada7363d8c5db7976e7f47732e1b2')
+ version('0.3.4', sha256='7fdddb4f22275cf1d32129e21f056337fd2a80b6ccef1664528145b72c49e6d2')
version('0.2.1', sha256='6efc926738a3cd576c2a79725fed9afde92378aa5c6a957e3af010cb019fac9d')
depends_on('py-setuptools', type='build')
depends_on('py-botocore@1.12.36:1.999', type=('build', 'run'))
depends_on('py-futures@2.2:3', type=('build', 'run'), when='^python@:2')
- depends_on('py-mock', type='test')
diff --git a/var/spack/repos/builtin/packages/py-sacremoses/package.py b/var/spack/repos/builtin/packages/py-sacremoses/package.py
index 35166e245c..4a92ca03e8 100644
--- a/var/spack/repos/builtin/packages/py-sacremoses/package.py
+++ b/var/spack/repos/builtin/packages/py-sacremoses/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PySacremoses(PythonPackage):
"""LGPL MosesTokenizer in Python."""
homepage = "https://github.com/alvations/sacremoses"
- url = "https://pypi.io/packages/source/s/sacremoses/sacremoses-0.0.39.tar.gz"
+ pypi = "sacremoses/sacremoses-0.0.39.tar.gz"
version('0.0.39', sha256='53fad38b93dd5bf1657a68d52bcca5d681d4246477a764b7791a2abd5c7d1f4c')
diff --git a/var/spack/repos/builtin/packages/py-saga-python/package.py b/var/spack/repos/builtin/packages/py-saga-python/package.py
index 96fb39c3f5..8eb16622dd 100644
--- a/var/spack/repos/builtin/packages/py-saga-python/package.py
+++ b/var/spack/repos/builtin/packages/py-saga-python/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,17 @@ from spack import *
class PySagaPython(PythonPackage):
- """A light-weight access layer for distributed computing infrastructure"""
+ """A light-weight access layer for distributed computing infrastructure.
+ DEPRECATED (Please use `py-radical-saga`)"""
- homepage = "http://radical.rutgers.edu"
- url = "https://pypi.io/packages/source/s/saga-python/saga-python-0.41.3.tar.gz"
+ homepage = 'https://radical-cybertools.github.io'
+ pypi = 'saga-python/saga-python-0.41.3.tar.gz'
- version('0.41.3', sha256='b30961e634f32f6008e292aa1fe40560f257d5294b0cda95baac1cf5391feb5d')
+ maintainers = ['andre-merzky']
- depends_on('py-setuptools', type='build')
- depends_on('py-apache-libcloud', type=('build', 'run'))
- depends_on('py-radical-utils', type=('build', 'run'))
+ version('0.41.3', sha256='b30961e634f32f6008e292aa1fe40560f257d5294b0cda95baac1cf5391feb5d', deprecated=True)
+
+ depends_on('py-radical-utils@:0.45', type=('build', 'run'))
+
+ depends_on('py-apache-libcloud', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-salib/package.py b/var/spack/repos/builtin/packages/py-salib/package.py
new file mode 100644
index 0000000000..8a1de65e0e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-salib/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 PySalib(PythonPackage):
+ """Python implementations of commonly used sensitivity analysis methods."""
+
+ homepage = "https://salib.readthedocs.org"
+ pypi = "SALib/SALib-1.4.0.1.tar.gz"
+
+ maintainers = ['schmitts']
+
+ version('1.4.4', sha256='50a6459088700f55261a683752818530d14ede30cece2c324ac94d4b9e288b6d')
+ version('1.4.0.1', sha256='dbf6e865af9f3be82a79cf64889ed66d6d3b6803f0c22a242a112876789d49e7')
+
+ depends_on('py-setuptools@38.3:', type=('build', 'run'))
+ depends_on('py-numpy@1.16.5:', type=('build', 'run'))
+ depends_on('py-scipy@1.5.2:', type=('build', 'run'))
+ depends_on('py-matplotlib@3.2.2:', type=('build', 'run'))
+ depends_on('py-pandas@1.1.2:', type=('build', 'run'))
+ depends_on('py-pathos@0.2.5:', type=('build', 'run'))
+ depends_on('py-importlib-metadata', type=('build', 'run'), when='@1.4.4: ^python@:3.7')
+ depends_on('py-setuptools-scm', type=('build', 'run'), when='@1.4.4:')
+ depends_on('py-wheel', type=('build', 'run'), when='@1.4.4:')
diff --git a/var/spack/repos/builtin/packages/py-sanic/package.py b/var/spack/repos/builtin/packages/py-sanic/package.py
index e97622a750..facb5a13be 100644
--- a/var/spack/repos/builtin/packages/py-sanic/package.py
+++ b/var/spack/repos/builtin/packages/py-sanic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PySanic(PythonPackage):
It is based on the work done by the amazing folks at magicstack"""
homepage = "https://github.com/huge-success/sanic"
- url = "https://pypi.io/packages/source/s/sanic/sanic-20.6.3.tar.gz"
+ pypi = "sanic/sanic-20.6.3.tar.gz"
version('20.6.3', sha256='30e83d9f677b609d6b8ccab7c9551ca7e9a5f19ac0579f5aa10199ab6d4138ed')
diff --git a/var/spack/repos/builtin/packages/py-scandir/package.py b/var/spack/repos/builtin/packages/py-scandir/package.py
index a32b03a06e..e990b80f5d 100644
--- a/var/spack/repos/builtin/packages/py-scandir/package.py
+++ b/var/spack/repos/builtin/packages/py-scandir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyScandir(PythonPackage):
"""scandir, a better directory iterator and faster os.walk()."""
homepage = "https://github.com/benhoyt/scandir"
- url = "https://pypi.io/packages/source/s/scandir/scandir-1.9.0.tar.gz"
-
- import_modules = ['scandir']
+ pypi = "scandir/scandir-1.9.0.tar.gz"
version('1.10.0', sha256='4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae')
version('1.9.0', sha256='44975e209c4827fc18a3486f257154d34ec6eaec0f90fef0cca1caa482db7064')
diff --git a/var/spack/repos/builtin/packages/py-scientificpython/package.py b/var/spack/repos/builtin/packages/py-scientificpython/package.py
index 58a142ccbd..1ddfbb493f 100644
--- a/var/spack/repos/builtin/packages/py-scientificpython/package.py
+++ b/var/spack/repos/builtin/packages/py-scientificpython/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-scikit-build/package.py b/var/spack/repos/builtin/packages/py-scikit-build/package.py
index 911a6edf15..f6fab07c95 100644
--- a/var/spack/repos/builtin/packages/py-scikit-build/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-build/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-scikit-fmm/package.py b/var/spack/repos/builtin/packages/py-scikit-fmm/package.py
new file mode 100644
index 0000000000..fb80e46f69
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-scikit-fmm/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyScikitFmm(PythonPackage):
+ """scikit-fmm is a Python extension module which implements the fast marching
+ method."""
+
+ pypi = "scikit-fmm/scikit-fmm-2019.1.30.tar.gz"
+ git = "https://github.com/scikit-fmm/scikit-fmm.git"
+
+ maintainers = ['archxlith']
+
+ version('master', branch='master')
+ version('2019.1.30', sha256='eb64b6d8e30b8df8f8636d5fc4fd7ca6a9b05938ccd62518c80c1d9e823069dd')
+
+ depends_on('py-numpy@1.0.2:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-scikit-image/package.py b/var/spack/repos/builtin/packages/py-scikit-image/package.py
index 90f1470e96..a8bd361cba 100644
--- a/var/spack/repos/builtin/packages/py-scikit-image/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-image/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,20 +10,24 @@ class PyScikitImage(PythonPackage):
"""Image processing algorithms for SciPy, including IO, morphology,
filtering, warping, color manipulation, object detection, etc."""
- homepage = "http://scikit-image.org/"
- url = "https://pypi.io/packages/source/s/scikit-image/scikit-image-0.17.2.tar.gz"
+ homepage = "https://scikit-image.org/"
+ pypi = "scikit-image/scikit-image-0.17.2.tar.gz"
+ version('0.18.1', sha256='fbb618ca911867bce45574c1639618cdfb5d94e207432b19bc19563d80d2f171')
version('0.17.2', sha256='bd954c0588f0f7e81d9763dc95e06950e68247d540476e06cb77bcbcd8c2d8b3')
version('0.14.2', sha256='1afd0b84eefd77afd1071c5c1c402553d67be2d7db8950b32d6f773f25850c1f')
version('0.12.3', sha256='82da192f0e524701e89c5379c79200bc6dc21373f48bf7778a864c583897d7c7')
extends('python', ignore=r'bin/.*\.py$')
- depends_on('python@3.6:', when='@0.16.1:')
+ depends_on('python@3.7:', when='@0.18:', type=('build', 'link', 'run'))
+ depends_on('python@3.6:', when='@0.16.1:', type=('build', 'link', 'run'))
+ depends_on('py-setuptools', type='build')
depends_on('py-cython@0.23.4:', type='build')
depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-numpy@1.14.1:', type=('build', 'run'), when='@0.16.1:')
- depends_on('py-numpy@1.15.1:', type=('build', 'run'), when='@0.17.1:')
+ depends_on('py-numpy@1.14.1:', type=('build', 'link', 'run'), when='@0.16.1:')
+ depends_on('py-numpy@1.15.1:', type=('build', 'link', 'run'), when='@0.17.1:')
+ depends_on('py-numpy@1.16.5:', type=('build', 'link', 'run'), when='@0.18:')
depends_on('py-scipy', type=('build', 'run'))
depends_on('py-scipy@0.19.0:', type=('build', 'run'), when='@0.16.1:')
depends_on('py-scipy@1.0.1:', type=('build', 'run'), when='@0.17.1:')
diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
index 0a9bf34523..3da2128a0c 100644
--- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,30 +7,15 @@
class PyScikitLearn(PythonPackage):
"""A set of python modules for machine learning and data mining."""
- homepage = "https://pypi.python.org/pypi/scikit-learn"
- url = "https://pypi.io/packages/source/s/scikit-learn/scikit-learn-0.23.2.tar.gz"
+ pypi = "scikit-learn/scikit-learn-0.24.0.tar.gz"
git = "https://github.com/scikit-learn/scikit-learn.git"
maintainers = ['adamjstewart']
- install_time_test_callbacks = ['install_test', 'import_module_test']
-
- import_modules = [
- 'sklearn', 'sklearn.tree', 'sklearn.metrics', 'sklearn.ensemble',
- 'sklearn.experimental', 'sklearn.cluster',
- 'sklearn.feature_extraction', 'sklearn.__check_build',
- 'sklearn.semi_supervised', 'sklearn.gaussian_process',
- 'sklearn.compose', 'sklearn.datasets', 'sklearn.externals',
- 'sklearn.linear_model', 'sklearn.impute', 'sklearn.utils',
- 'sklearn.covariance', 'sklearn.neural_network',
- 'sklearn.feature_selection', 'sklearn.inspection', 'sklearn.svm',
- 'sklearn.manifold', 'sklearn.mixture', 'sklearn.preprocessing',
- 'sklearn.model_selection', 'sklearn._build_utils',
- 'sklearn.decomposition', 'sklearn.cross_decomposition',
- 'sklearn.neighbors', 'sklearn.metrics.cluster',
- 'sklearn.ensemble._hist_gradient_boosting'
- ]
version('master', branch='master')
+ version('0.24.2', sha256='d14701a12417930392cd3898e9646cf5670c190b933625ebe7511b1f7d7b8736')
+ version('0.24.1', sha256='a0334a1802e64d656022c3bfab56a73fbd6bf4b1298343f3688af2151810bbdf')
+ version('0.24.0', sha256='076369634ee72b5a5941440661e2f306ff4ac30903802dc52031c7e9199ac640')
version('0.23.2', sha256='20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480')
version('0.23.1', sha256='e3fec1c8831f8f93ad85581ca29ca1bb88e2da377fb097cf8322aa89c21bc9b8')
version('0.23.0', sha256='639a53df6273acc6a7510fb0c658b94e0c70bb13dafff9d14932c981ff9baff4')
@@ -67,7 +52,7 @@ class PyScikitLearn(PythonPackage):
depends_on('py-threadpoolctl@2.0.0:', when='@0.23:', type=('build', 'run'))
depends_on('py-cython@0.23:', type='build')
depends_on('py-cython@0.28.5:', when='@0.21:', type='build')
- depends_on('py-pytest@3.3.0:', type='test')
+ depends_on('py-pytest@5.0.1:', type='test')
depends_on('py-pandas', type='test')
depends_on('py-setuptools', type='build')
depends_on('llvm-openmp', when='@0.21: %apple-clang +openmp')
@@ -79,6 +64,9 @@ class PyScikitLearn(PythonPackage):
conflicts('~openmp', when='@:999', msg='Only master supports ~openmp')
def setup_build_environment(self, env):
+ # enable parallel builds of the sklearn backend
+ env.append_flags("SKLEARN_BUILD_PARALLEL", str(make_jobs))
+
# https://scikit-learn.org/stable/developers/advanced_installation.html#building-from-source
if self.spec.satisfies('~openmp'):
env.set('SKLEARN_NO_OPENMP', 'True')
@@ -93,6 +81,8 @@ class PyScikitLearn(PythonPackage):
env.append_flags(
'LDFLAGS', self.spec['llvm-openmp'].libs.ld_flags)
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
def install_test(self):
# https://scikit-learn.org/stable/developers/advanced_installation.html#testing
with working_dir('spack-test', create=True):
diff --git a/var/spack/repos/builtin/packages/py-scikit-optimize/package.py b/var/spack/repos/builtin/packages/py-scikit-optimize/package.py
index 6f148d5fe1..b3d62fc1d3 100644
--- a/var/spack/repos/builtin/packages/py-scikit-optimize/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-optimize/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyScikitOptimize(PythonPackage):
The library is built on top of NumPy, SciPy and Scikit-Learn."""
homepage = "https://scikit-optimize.github.io"
- url = "https://pypi.io/packages/source/s/scikit-optimize/scikit-optimize-0.5.2.tar.gz"
+ pypi = "scikit-optimize/scikit-optimize-0.5.2.tar.gz"
version('0.5.2', sha256='1d7657a4b8ef9aa6d81e49b369c677c584e83269f11710557741d3b3f8fa0a75')
@@ -28,4 +28,3 @@ class PyScikitOptimize(PythonPackage):
depends_on('py-scikit-learn@0.19.1:', type=('build', 'run'))
depends_on('py-matplotlib', when='+plots')
- depends_on('py-pytest@3.3.0:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py
index afeae0dd1c..54d367324c 100644
--- a/var/spack/repos/builtin/packages/py-scipy/package.py
+++ b/var/spack/repos/builtin/packages/py-scipy/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import platform
+
class PyScipy(PythonPackage):
"""SciPy (pronounced "Sigh Pie") is a Scientific Library for Python.
@@ -10,26 +12,18 @@ 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.4.tar.gz"
- git = "https://github.com/scipy/scipy.git"
+ pypi = "scipy/scipy-1.5.4.tar.gz"
+ git = "https://github.com/scipy/scipy.git"
maintainers = ['adamjstewart']
- install_time_test_callbacks = ['install_test', 'import_module_test']
-
- import_modules = [
- 'scipy', 'scipy._build_utils', 'scipy._lib', 'scipy.cluster',
- 'scipy.constants', 'scipy.fftpack', 'scipy.integrate',
- 'scipy.interpolate', 'scipy.io', 'scipy.linalg', 'scipy.misc',
- 'scipy.ndimage', 'scipy.odr', 'scipy.optimize', 'scipy.signal',
- 'scipy.sparse', 'scipy.spatial', 'scipy.special', 'scipy.stats',
- 'scipy.io.arff', 'scipy.io.harwell_boeing', 'scipy.io.matlab',
- 'scipy.optimize._lsq', 'scipy.sparse.csgraph', 'scipy.sparse.linalg',
- 'scipy.sparse.linalg.dsolve', 'scipy.sparse.linalg.eigen',
- 'scipy.sparse.linalg.isolve', 'scipy.sparse.linalg.eigen.arpack',
- 'scipy.sparse.linalg.eigen.lobpcg', 'scipy.special._precompute'
- ]
version('master', branch='master')
+ version('1.7.1', sha256='6b47d5fa7ea651054362561a28b1ccc8da9368a39514c1bbf6c0977a1c376764')
+ version('1.7.0', sha256='998c5e6ea649489302de2c0bc026ed34284f531df89d2bdc8df3a0d44d165739')
+ version('1.6.3', sha256='a75b014d3294fce26852a9d04ea27b5671d86736beb34acdfc05859246260707')
+ version('1.6.2', sha256='e9da33e21c9bc1b92c20b5328adb13e5f193b924c9b969cd700c8908f315aa59')
+ version('1.6.1', sha256='c4fceb864890b6168e79b0e714c585dbe2fd4222768ee90bc1aa0f8218691b11')
+ version('1.6.0', sha256='cb6dc9f82dfd95f6b9032a8d7ea70efeeb15d5b5fd6ed4e8537bb3c673580566')
version('1.5.4', sha256='4a453d5e5689de62e5d38edf40af3f17560bfd63c9c5bd228c18c1f99afa155b')
version('1.5.3', sha256='ddae76784574cc4c172f3d5edd7308be16078dd3b977e8746860c76c195fa707')
version('1.5.2', sha256='066c513d90eb3fd7567a9e150828d39111ebd88d3e924cdfc9f8ce19ab6f90c9')
@@ -52,20 +46,29 @@ class PyScipy(PythonPackage):
version('0.15.1', sha256='a212cbc3b79e9a563aa45fc5c517b3499198bd7eb7e7be1e047568a5f48c259a')
version('0.15.0', sha256='0c74e31e08acc8bf9b6ceb9bced73df2ae0cc76003e0366350bc7b26292bf8b1')
- depends_on('python@2.6:2.8,3.2:', type=('build', 'link', 'run'))
- depends_on('python@2.7:2.8,3.4:', when='@0.18:', type=('build', 'link', 'run'))
- depends_on('python@3.5:', when='@1.3:', type=('build', 'link', 'run'))
- depends_on('python@3.6:', when='@1.5:', type=('build', 'link', 'run'))
- depends_on('py-setuptools', type='build')
- depends_on('py-pybind11@2.2.4:', when='@1.4.0:', type=('build', 'link'))
- depends_on('py-pybind11@2.4.0:', when='@1.4.1:', type=('build', 'link'))
- depends_on('py-pybind11@2.4.3:', when='@1.5.0:', type=('build', 'link'))
- depends_on('py-numpy@1.5.1:+blas+lapack', type=('build', 'link', 'run'))
- depends_on('py-numpy@1.6.2:+blas+lapack', when='@0.16:', type=('build', 'link', 'run'))
- depends_on('py-numpy@1.7.1:+blas+lapack', when='@0.18:', type=('build', 'link', 'run'))
- depends_on('py-numpy@1.8.2:+blas+lapack', when='@0.19:', type=('build', 'link', 'run'))
- depends_on('py-numpy@1.13.3:+blas+lapack', when='@1.3:', type=('build', 'link', 'run'))
- depends_on('py-numpy@1.14.5:+blas+lapack', when='@1.5:', type=('build', 'link', 'run'))
+ depends_on('python@2.6:2.8,3.2:', when='@:0.17.999', type=('build', 'link', 'run'))
+ depends_on('python@2.7:2.8,3.4:', when='@0.18:1.2.999', type=('build', 'link', 'run'))
+ depends_on('python@3.5:', when='@1.3:1.4.999', type=('build', 'link', 'run'))
+ depends_on('python@3.6:', when='@1.5:1.5.999', type=('build', 'link', 'run'))
+ depends_on('python@3.7:', when='@1.6:1.6.1', type=('build', 'link', 'run'))
+ depends_on('python@3.7:3.9.999', when='@1.6.2:', type=('build', 'link', 'run'))
+ depends_on('py-setuptools', when='@:1.5', type='build')
+ depends_on('py-setuptools@:51.0.0', when='@1.6', type='build')
+ depends_on('py-setuptools@:57', when='@1.7:', type='build')
+ depends_on('py-pybind11@2.2.4:', when='@1.4.0', type=('build', 'link'))
+ depends_on('py-pybind11@2.4.0:', when='@1.4.1:1.4.999', type=('build', 'link'))
+ depends_on('py-pybind11@2.4.3:', when='@1.5:1.6.1', type=('build', 'link'))
+ depends_on('py-pybind11@2.4.3:2.6.999', when='@1.6.2:', type=('build', 'link'))
+ depends_on('py-numpy@1.5.1:+blas+lapack', when='@:0.15.999', type=('build', 'link', 'run'))
+ depends_on('py-numpy@1.6.2:+blas+lapack', when='@0.16:0.17.999', type=('build', 'link', 'run'))
+ depends_on('py-numpy@1.7.1:+blas+lapack', when='@0.18:0.18.999', type=('build', 'link', 'run'))
+ depends_on('py-numpy@1.8.2:+blas+lapack', when='@0.19:1.2.999', type=('build', 'link', 'run'))
+ depends_on('py-numpy@1.13.3:+blas+lapack', when='@1.3:1.4.999', type=('build', 'link', 'run'))
+ depends_on('py-numpy@1.14.5:+blas+lapack', when='@1.5:1.5.999', type=('build', 'link', 'run'))
+ depends_on('py-numpy@1.16.5:+blas+lapack', when='@1.6:1.6.1', type=('build', 'link', 'run'))
+ depends_on('py-numpy@1.16.5:1.22.999+blas+lapack', when='@1.6.2:', type=('build', 'link', 'run'))
+ depends_on('py-cython@0.29.18:2.9', when='@1.7:', type='build')
+ depends_on('py-pythran@0.9.11:', when='@1.7:', type=('build', 'link'))
depends_on('py-pytest', type='test')
# NOTE: scipy picks up Blas/Lapack from numpy, see
@@ -77,6 +80,8 @@ class PyScipy(PythonPackage):
patch('https://git.sagemath.org/sage.git/plain/build/pkgs/scipy/patches/extern_decls.patch?id=711fe05025795e44b84233e065d240859ccae5bd',
sha256='5433f60831cb554101520a8f8871ac5a32c95f7a971ccd68b69049535b106780', when='@1.2:1.5.3')
+ patch('scipy-clang.patch', when='@1.5.0:1.6.3 %clang')
+
def setup_build_environment(self, env):
# https://github.com/scipy/scipy/issues/9080
env.set('F90', spack_fc)
@@ -85,10 +90,16 @@ class PyScipy(PythonPackage):
if self.spec.satisfies('@:1.4 %gcc@10:'):
env.set('FFLAGS', '-fallow-argument-mismatch')
+ # Kluge to get the gfortran linker to work correctly on Big
+ # Sur, at least until a gcc release > 10.2 is out with a fix.
+ # (There is a fix in their development tree.)
+ if platform.mac_ver()[0][0:2] == '11':
+ env.set('MACOSX_DEPLOYMENT_TARGET', '10.15')
+
def build_args(self, spec, prefix):
args = []
if spec.satisfies('%fj'):
- args.extend(['config_fc', '--fcompiler=fj'])
+ args.extend(['config_fc', '--fcompiler=fujitsu'])
# Build in parallel
# Known problems with Python 3.5+
@@ -99,21 +110,8 @@ class PyScipy(PythonPackage):
return args
- def build_test(self):
- # `setup.py test` is not supported. Use one of the following
- # instead:
- #
- # - `python runtests.py` (to build and test)
- # - `python runtests.py --no-build` (to test installed scipy)
- # - `>>> scipy.test()` (run tests for installed scipy
- # from within an interpreter)
- pass
-
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
def install_test(self):
- # Change directories due to the following error:
- #
- # ImportError: Error importing scipy: you should not try to import
- # scipy from its source directory; please exit the scipy
- # source tree, and relaunch your python interpreter from there.
with working_dir('spack-test', create=True):
python('-c', 'import scipy; scipy.test("full", verbose=2)')
diff --git a/var/spack/repos/builtin/packages/py-scipy/scipy-clang.patch b/var/spack/repos/builtin/packages/py-scipy/scipy-clang.patch
new file mode 100644
index 0000000000..dcca99bd85
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-scipy/scipy-clang.patch
@@ -0,0 +1,13 @@
+diff --git a/scipy/special/_faddeeva.cxx b/scipy/special/_faddeeva.cxx
+index 9134516..159122c 100644
+--- a/scipy/special/_faddeeva.cxx
++++ b/scipy/special/_faddeeva.cxx
+@@ -130,7 +130,7 @@ double faddeeva_voigt_profile(double x, double sigma, double gamma)
+
+ if(sigma == 0){
+ if (gamma == 0){
+- if (isnan(x))
++ if (std::isnan(x))
+ return x;
+ if (x == 0)
+ return NPY_INFINITY;
diff --git a/var/spack/repos/builtin/packages/py-scoop/package.py b/var/spack/repos/builtin/packages/py-scoop/package.py
index e1e25abd01..f47c66c798 100644
--- a/var/spack/repos/builtin/packages/py-scoop/package.py
+++ b/var/spack/repos/builtin/packages/py-scoop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyScoop(PythonPackage):
environments, from heterogeneous grids to supercomputers."""
homepage = "https://github.com/soravux/scoop"
- url = "https://pypi.io/packages/source/s/scoop/scoop-0.7.1.1.tar.gz"
+ pypi = "scoop/scoop-0.7.1.1.tar.gz"
version('0.7.1.1', sha256='d8b6444c7bac901171e3327a97e241dde63f060354e162a65551fd8083ca62b4')
diff --git a/var/spack/repos/builtin/packages/py-scp/package.py b/var/spack/repos/builtin/packages/py-scp/package.py
index 85bb112cd4..e137055426 100644
--- a/var/spack/repos/builtin/packages/py-scp/package.py
+++ b/var/spack/repos/builtin/packages/py-scp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyScp(PythonPackage):
"""scp module for paramiko"""
homepage = "https://github.com/jbardin/scp.py"
- url = "https://pypi.io/packages/source/s/scp/scp-0.13.2.tar.gz"
+ pypi = "scp/scp-0.13.2.tar.gz"
version('0.13.2', sha256='ef9d6e67c0331485d3db146bf9ee9baff8a48f3eb0e6c08276a8584b13bf34b3')
diff --git a/var/spack/repos/builtin/packages/py-scs/package.py b/var/spack/repos/builtin/packages/py-scs/package.py
index 7715349fb3..42fb916091 100644
--- a/var/spack/repos/builtin/packages/py-scs/package.py
+++ b/var/spack/repos/builtin/packages/py-scs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyScs(PythonPackage):
"""SCS: splitting conic solver"""
homepage = "https://github.com/cvxgrp/scs"
- url = "https://www.pypi.io/packages/source/s/scs/scs-2.1.1-2.tar.gz"
+ pypi = "scs/scs-2.1.1-2.tar.gz"
version('2.1.1-2', sha256='f816cfe3d4b4cff3ac2b8b96588c5960ddd2a3dc946bda6b09db04e7bc6577f2')
diff --git a/var/spack/repos/builtin/packages/py-seaborn/package.py b/var/spack/repos/builtin/packages/py-seaborn/package.py
index feaf12abb2..a2862014ba 100644
--- a/var/spack/repos/builtin/packages/py-seaborn/package.py
+++ b/var/spack/repos/builtin/packages/py-seaborn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,15 +14,28 @@ class PySeaborn(PythonPackage):
integrated with the PyData stack, including support for numpy and pandas
data structures and statistical routines from scipy and statsmodels."""
- homepage = "http://seaborn.pydata.org/"
- url = "https://pypi.io/packages/source/s/seaborn/seaborn-0.7.1.tar.gz"
+ homepage = "https://seaborn.pydata.org/"
+ pypi = "seaborn/seaborn-0.7.1.tar.gz"
+ version('0.11.1', sha256='44e78eaed937c5a87fc7a892c329a7cc091060b67ebd1d0d306b446a74ba01ad')
version('0.9.0', sha256='76c83f794ca320fb6b23a7c6192d5e185a5fcf4758966a0c0a54baee46d41e2f')
version('0.7.1', sha256='fa274344b1ee72f723bab751c40a5c671801d47a29ee9b5e69fcf63a18ce5c5d')
+ depends_on('python@3.6:', when='@0.10:', type='build')
depends_on('py-setuptools', type='build')
- depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-numpy@1.15:', when='@0.11:', type=('build', 'run'))
+ depends_on('py-numpy@1.9.3:', when='@0.9:', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy@1:', when='@0.11:', type=('build', 'run'))
+ depends_on('py-scipy@1.0.1:', when='@0.10:', type=('build', 'run'))
+ depends_on('py-scipy@0.14:', when='@0.9.0:', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-pandas@0.23:', when='@0.11:', type=('build', 'run'))
+ depends_on('py-pandas@0.22:', when='@0.10:', type=('build', 'run'))
+ depends_on('py-pandas@0.15.2:', when='@0.9:', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-matplotlib@2.2:', when='@0.11:', type=('build', 'run'))
+ depends_on('py-matplotlib@2.1.2:', when='@0.10:', type=('build', 'run'))
+ depends_on('py-matplotlib@1.4.3:', when='@0.9:', type=('build', 'run'))
depends_on('py-matplotlib', type=('build', 'run'))
- depends_on('py-pandas', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-secretstorage/package.py b/var/spack/repos/builtin/packages/py-secretstorage/package.py
index 36be45cd0e..8676609e36 100644
--- a/var/spack/repos/builtin/packages/py-secretstorage/package.py
+++ b/var/spack/repos/builtin/packages/py-secretstorage/package.py
@@ -1,18 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 PySecretstorage(PythonPackage):
"""Python bindings to FreeDesktop.org Secret Service API."""
homepage = "https://github.com/mitya57/secretstorage"
- url = "https://pypi.io/packages/source/S/SecretStorage/SecretStorage-3.1.2.tar.gz"
+ pypi = "SecretStorage/SecretStorage-3.1.2.tar.gz"
+ version('3.3.1', sha256='fd666c51a6bf200643495a04abb261f83229dcb6fd8472ec393df7ffc8b6f195')
version('3.1.2', sha256='15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6')
- depends_on('python@3.5:', type=('build', 'run'))
- depends_on('py-setuptools', type='build')
- depends_on('py-cryptography', type=('build', 'run'))
- depends_on('py-jeepney@0.4.2:', type=('build', 'run'))
+ depends_on('python@3.6:', when='@3.3:', type=('build', 'run'))
+ depends_on('python@3.5:', when='@:3.2', type=('build', 'run'))
+ depends_on('py-setuptools@30.3:', type='build')
+ depends_on('py-cryptography@2.0:', when='@3.2:', type=('build', 'run'))
+ depends_on('py-cryptography', when='@:3.1', type=('build', 'run'))
+ depends_on('py-jeepney@0.6:', when='@3.3:', type=('build', 'run'))
+ depends_on('py-jeepney@0.4.2:', when='@:3.2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-segmentation-models-pytorch/package.py b/var/spack/repos/builtin/packages/py-segmentation-models-pytorch/package.py
new file mode 100644
index 0000000000..11bfd998e9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-segmentation-models-pytorch/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PySegmentationModelsPytorch(PythonPackage):
+ """Python library with Neural Networks for Image Segmentation based on PyTorch."""
+
+ homepage = "https://github.com/qubvel/segmentation_models.pytorch"
+ pypi = "segmentation_models_pytorch/segmentation_models_pytorch-0.2.0.tar.gz"
+
+ version('0.2.0', sha256='247266722c23feeef16b0862456c5ce815e5f0a77f95c2cd624a71bf00d955df')
+
+ depends_on('python@3:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-torchvision@0.5.0:', type=('build', 'run'))
+ depends_on('py-pretrainedmodels@0.7.4', type=('build', 'run'))
+ depends_on('py-efficientnet-pytorch@0.6.3', type=('build', 'run'))
+ depends_on('py-timm@0.4.12', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-selenium/package.py b/var/spack/repos/builtin/packages/py-selenium/package.py
index 33082ec78f..7bd73d39fa 100644
--- a/var/spack/repos/builtin/packages/py-selenium/package.py
+++ b/var/spack/repos/builtin/packages/py-selenium/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PySelenium(PythonPackage):
Python."""
homepage = "https://github.com/SeleniumHQ/selenium/"
- url = "https://pypi.io/packages/source/s/selenium/selenium-3.141.0.tar.gz"
+ pypi = "selenium/selenium-3.141.0.tar.gz"
version('3.141.0', sha256='deaf32b60ad91a4611b98d8002757f29e6f2c2d5fcaf202e1c9ad06d6772300d')
diff --git a/var/spack/repos/builtin/packages/py-semantic-version/package.py b/var/spack/repos/builtin/packages/py-semantic-version/package.py
index d05d902e10..fb0f0940d3 100644
--- a/var/spack/repos/builtin/packages/py-semantic-version/package.py
+++ b/var/spack/repos/builtin/packages/py-semantic-version/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PySemanticVersion(PythonPackage):
Python. It follows strictly the 2.0.0 version of the SemVer scheme."""
homepage = "https://github.com/rbarrois/python-semanticversion"
- url = "https://pypi.io/packages/source/s/semantic_version/semantic_version-2.8.2.tar.gz"
+ pypi = "semantic_version/semantic_version-2.8.2.tar.gz"
version('2.8.2', sha256='71c716e99086c44d068262b86e4775aa6db7fabee0743e4e33b00fbf6f672585')
version('2.6.0', sha256='2a4328680073e9b243667b201119772aefc5fc63ae32398d6afafff07c4f54c0')
diff --git a/var/spack/repos/builtin/packages/py-semver/package.py b/var/spack/repos/builtin/packages/py-semver/package.py
index a73401d254..ced20b28e8 100644
--- a/var/spack/repos/builtin/packages/py-semver/package.py
+++ b/var/spack/repos/builtin/packages/py-semver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PySemver(PythonPackage):
Simplifies comparing versions."""
homepage = "https://semver.org/"
- url = "https://pypi.io/packages/source/s/semver/semver-2.8.1.tar.gz"
+ pypi = "semver/semver-2.8.1.tar.gz"
version('2.8.1', sha256='5b09010a66d9a3837211bb7ae5a20d10ba88f8cb49e92cb139a69ef90d5060d8')
diff --git a/var/spack/repos/builtin/packages/py-send2trash/package.py b/var/spack/repos/builtin/packages/py-send2trash/package.py
index c4882b8e95..ef8b88a9ed 100644
--- a/var/spack/repos/builtin/packages/py-send2trash/package.py
+++ b/var/spack/repos/builtin/packages/py-send2trash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-sentencepiece/package.py b/var/spack/repos/builtin/packages/py-sentencepiece/package.py
index 9d9552a47b..1f34573442 100644
--- a/var/spack/repos/builtin/packages/py-sentencepiece/package.py
+++ b/var/spack/repos/builtin/packages/py-sentencepiece/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,10 +14,12 @@ class PySentencepiece(PythonPackage):
maintainers = ['adamjstewart']
+ version('0.1.91', sha256='acbc7ea12713cd2a8d64892f8d2033c7fd2bb4faecab39452496120ace9a4b1b')
version('0.1.85', sha256='dd4956287a1b6af3cbdbbd499b7227a859a4e3f41c9882de5e6bdd929e219ae6')
depends_on('sentencepiece')
depends_on('sentencepiece@0.1.85', when='@0.1.85')
+ depends_on('sentencepiece@0.1.91', when='@0.1.91')
depends_on('pkgconfig', type='build')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-sentry-sdk/package.py b/var/spack/repos/builtin/packages/py-sentry-sdk/package.py
index 6214b0c7d8..c283ee7f1b 100644
--- a/var/spack/repos/builtin/packages/py-sentry-sdk/package.py
+++ b/var/spack/repos/builtin/packages/py-sentry-sdk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PySentrySdk(PythonPackage):
"""The new Python SDK for Sentry.io"""
homepage = "https://github.com/getsentry/sentry-python"
- url = "https://pypi.io/packages/source/s/sentry-sdk/sentry-sdk-0.17.6.tar.gz"
+ pypi = "sentry-sdk/sentry-sdk-0.17.6.tar.gz"
version('0.17.6', sha256='1a086486ff9da15791f294f6e9915eb3747d161ef64dee2d038a4d0b4a369b24')
diff --git a/var/spack/repos/builtin/packages/py-seqeval/package.py b/var/spack/repos/builtin/packages/py-seqeval/package.py
new file mode 100644
index 0000000000..de534624dc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-seqeval/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PySeqeval(PythonPackage):
+ """seqeval is a Python framework for sequence labeling
+ evaluation. seqeval can evaluate the performance of
+ chunking tasks such as named-entity recognition,
+ part-of-speech tagging, semantic role labeling and so on."""
+
+ homepage = "https://github.com/chakki-works/seqeval"
+ pypi = "seqeval/seqeval-1.2.2.tar.gz"
+
+ version('1.2.2', sha256='f28e97c3ab96d6fcd32b648f6438ff2e09cfba87f05939da9b3970713ec56e6f')
+
+ depends_on('python@2.6:2.999,3.3:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.14:', type=('build', 'run'))
+ depends_on('py-scikit-learn@0.21.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-seriate/package.py b/var/spack/repos/builtin/packages/py-seriate/package.py
index c1c81e97af..0e2740b7a8 100644
--- a/var/spack/repos/builtin/packages/py-seriate/package.py
+++ b/var/spack/repos/builtin/packages/py-seriate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-setproctitle/package.py b/var/spack/repos/builtin/packages/py-setproctitle/package.py
index 972e595cad..137919dd05 100644
--- a/var/spack/repos/builtin/packages/py-setproctitle/package.py
+++ b/var/spack/repos/builtin/packages/py-setproctitle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PySetproctitle(PythonPackage):
displayed by system tools such as ps and top)."""
homepage = "https://github.com/dvarrazzo/py-setproctitle"
- url = "https://pypi.io/packages/source/s/setproctitle/setproctitle-1.1.10.tar.gz"
+ pypi = "setproctitle/setproctitle-1.1.10.tar.gz"
version('1.1.10', sha256='6283b7a58477dd8478fbb9e76defb37968ee4ba47b05ec1c053cb39638bd7398')
diff --git a/var/spack/repos/builtin/packages/py-setuptools-git/package.py b/var/spack/repos/builtin/packages/py-setuptools-git/package.py
index fa8a51908e..b3962c48a1 100644
--- a/var/spack/repos/builtin/packages/py-setuptools-git/package.py
+++ b/var/spack/repos/builtin/packages/py-setuptools-git/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PySetuptoolsGit(PythonPackage):
"""Setuptools revision control system plugin for Git"""
- homepage = "https://pypi.python.org/pypi/setuptools-git"
- url = "https://pypi.io/packages/source/s/setuptools-git/setuptools-git-1.2.tar.gz"
+ pypi = "setuptools-git/setuptools-git-1.2.tar.gz"
version('1.2', sha256='ff64136da01aabba76ae88b050e7197918d8b2139ccbf6144e14d472b9c40445')
diff --git a/var/spack/repos/builtin/packages/py-setuptools-rust/package.py b/var/spack/repos/builtin/packages/py-setuptools-rust/package.py
index 262ea03bbe..868bc5007a 100644
--- a/var/spack/repos/builtin/packages/py-setuptools-rust/package.py
+++ b/var/spack/repos/builtin/packages/py-setuptools-rust/package.py
@@ -1,18 +1,37 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 PySetuptoolsRust(PythonPackage):
"""Setuptools rust extension plugin."""
homepage = "https://github.com/PyO3/setuptools-rust"
- url = "https://github.com/PyO3/setuptools-rust/archive/v0.10.6.tar.gz"
+ pypi = "setuptools-rust/setuptools-rust-0.12.1.tar.gz"
- version('0.10.6', sha256='1446d3985e4aaf4cc679fda8a48a73ac1390b627c8ae1bebe7d9e08bb3b33769')
+ version('0.12.1', sha256='647009e924f0ae439c7f3e0141a184a69ad247ecb9044c511dabde232d3d570e')
+ # Version 0.10.6 is not available on pypi and can only be found on github
+ version('0.10.6', sha256='1446d3985e4aaf4cc679fda8a48a73ac1390b627c8ae1bebe7d9e08bb3b33769',
+ # version specific url is not used here because spack checksum would
+ # use it instead of pypi (see #24668)
+ # url="https://github.com/PyO3/setuptools-rust/archive/v0.10.6.tar.gz",
+ deprecated=True)
+ depends_on('python@3.6:', when='@0.12:', type=('build', 'run'))
+ depends_on('py-setuptools@46.1:', when='@0.11.6:', type='build')
depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm+toml@3.4.3:', when='@0.11:', type='build')
depends_on('py-semantic-version@2.6.0:', type=('build', 'run'))
depends_on('py-toml@0.9.0:', type=('build', 'run'))
depends_on('rust', type='run')
+
+ # when #24668 is fixed remove url_for_version and use url= (see above) for
+ # version 0.10.6
+ def url_for_version(self, version):
+ if version >= Version('0.12.0'):
+ return 'https://files.pythonhosted.org/packages/source/s/setuptools-rust/setuptools-rust-{0}.tar.gz'.format(version)
+ else:
+ return 'https://github.com/PyO3/setuptools-rust/archive/v{0}.tar.gz'.format(version)
diff --git a/var/spack/repos/builtin/packages/py-setuptools-scm-git-archive/package.py b/var/spack/repos/builtin/packages/py-setuptools-scm-git-archive/package.py
index 2fb6a9e267..86545dd628 100644
--- a/var/spack/repos/builtin/packages/py-setuptools-scm-git-archive/package.py
+++ b/var/spack/repos/builtin/packages/py-setuptools-scm-git-archive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PySetuptoolsScmGitArchive(PythonPackage):
(for example the ones GitHub automatically generates)."""
homepage = "https://github.com/Changaco/setuptools_scm_git_archive/"
- url = "https://pypi.io/packages/source/s/setuptools_scm_git_archive/setuptools_scm_git_archive-1.1.tar.gz"
+ pypi = "setuptools_scm_git_archive/setuptools_scm_git_archive-1.1.tar.gz"
maintainers = ['marcmengel']
diff --git a/var/spack/repos/builtin/packages/py-setuptools-scm/package.py b/var/spack/repos/builtin/packages/py-setuptools-scm/package.py
index eb157f8ef5..8997a44918 100644
--- a/var/spack/repos/builtin/packages/py-setuptools-scm/package.py
+++ b/var/spack/repos/builtin/packages/py-setuptools-scm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,18 +10,22 @@ class PySetuptoolsScm(PythonPackage):
"""The blessed package to manage your versions by scm tags."""
homepage = "https://github.com/pypa/setuptools_scm"
- url = "https://pypi.io/packages/source/s/setuptools_scm/setuptools_scm-4.1.2.tar.gz"
-
- import_modules = ['setuptools_scm']
+ pypi = "setuptools_scm/setuptools_scm-4.1.2.tar.gz"
+ version('6.0.1', sha256='d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92')
version('4.1.2', sha256='a8994582e716ec690f33fec70cca0f85bd23ec974e3f783233e4879090a7faa8')
+ version('3.5.0', sha256='5bdf21a05792903cafe7ae0c9501182ab52497614fa6b1750d9dbae7b60c1a87')
version('3.3.3', sha256='bd25e1fb5e4d603dcf490f1fde40fb4c595b357795674c3e5cb7f6217ab39ea5')
version('3.1.0', sha256='1191f2a136b5e86f7ca8ab00a97ef7aef997131f1f6d4971be69a1ef387d8b40')
version('1.15.6', sha256='49ab4685589986a42da85706b3311a2f74f1af567d39fee6cb1e088d7a75fb5f')
- variant('toml', default=False, description='Build with TOML support')
+ variant('toml', default=True, description='Build with TOML support')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.5:', when='@4:', type=('build', 'run'))
+ depends_on('python@3.6:', when='@6:', type=('build', 'run'))
+
depends_on('py-setuptools@34.4:', type=('build', 'run'))
+ depends_on('py-setuptools@45:', type=('build', 'run'), when='@6:')
+
depends_on('py-toml', when='+toml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-setuptools/package.py b/var/spack/repos/builtin/packages/py-setuptools/package.py
index 1a2930498b..ea29311239 100644
--- a/var/spack/repos/builtin/packages/py-setuptools/package.py
+++ b/var/spack/repos/builtin/packages/py-setuptools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,16 +11,10 @@ class PySetuptools(PythonPackage):
upgrading, installing, and uninstalling Python packages."""
homepage = "https://github.com/pypa/setuptools"
- url = "https://pypi.io/packages/source/s/setuptools/setuptools-49.2.0.zip"
-
- import_modules = [
- 'setuptools', 'pkg_resources', 'setuptools._vendor',
- 'setuptools.command', 'setuptools.extern',
- 'setuptools._vendor.packaging', 'pkg_resources._vendor',
- 'pkg_resources.extern', 'pkg_resources._vendor.packaging',
- 'easy_install'
- ]
+ pypi = "setuptools/setuptools-57.4.0.tar.gz"
+ version('57.4.0', sha256='6bac238ffdf24e8806c61440e755192470352850f3419a52f26ffe0a1a64f465')
+ version('51.0.0', sha256='029c49fd713e9230f6a41c0298e6e1f5839f2cde7104c0ad5e053a37777e7688')
version('50.3.2', sha256='ed0519d27a243843b05d82a5e9d01b0b083d9934eaa3d02779a23da18077bd3c')
version('50.1.0', sha256='4a7708dafd2d360ce5e2ac7577374da9fb65fc867bc4cdaf461f9f834dfa6ac3')
version('49.6.0', sha256='46bd862894ed22c2edff033c758c2dc026324788d758e96788e8f7c11f4e9707')
@@ -28,6 +22,7 @@ class PySetuptools(PythonPackage):
version('46.1.3', sha256='795e0475ba6cd7fa082b1ee6e90d552209995627a2a227a47c6ea93282f4bfb1')
version('44.1.0', sha256='794a96b0c1dc6f182c36b72ab70d7e90f1d59f7a132e6919bb37b4fd4d424aca')
version('41.4.0', sha256='7eae782ccf36b790c21bde7d86a4f303a441cd77036b25c559a602cf5186ce4d')
+ version('41.3.0', sha256='9f5c54b529b2156c6f288e837e625581bb31ff94d4cfd116b8f271c589749556')
version('41.0.1', sha256='a222d126f5471598053c9a77f4b5d4f26eaa1f150ad6e01dcf1a42e185d05613')
version('41.0.0', sha256='79d30254b6fe7a8e672e43cd85f13a9f3f2a50080bc81d851143e2219ef0dcb1')
version('40.8.0', sha256='6e4eec90337e849ade7103723b9a99631c1f0d19990d6e8412dc42f5ae8b304d')
@@ -35,9 +30,6 @@ class PySetuptools(PythonPackage):
version('40.2.0', sha256='47881d54ede4da9c15273bac65f9340f8929d4f0213193fa7894be384f2dcfa6')
version('39.2.0', sha256='f7cddbb5f5c640311eb00eab6e849f7701fa70bf6a183fc8a2c33dd1d1672fb2')
version('39.0.1', sha256='bec7badf0f60e7fc8153fac47836edc41b74e5d541d7692e614e635720d6a7c7')
- version('35.0.2', sha256='1e55496ca8058db68ae12ac29a985d1ee2c2483a5901f7692fb68fa2f9a250fd')
- version('34.4.1', sha256='704cc0c9fe6c97edd3c6370d165c5a754dfde318b671058523ed3226d944ea1b')
- version('34.2.0', sha256='7b551f5070f9414d48c08dda58bcb879c8d9276199283a99dc8e1362e2f378a2')
version('25.2.0', sha256='b2757ddac2c41173140b111e246d200768f6dd314110e1e40661d0ecf9b4d6a6')
version('20.7.0', sha256='505cdf282c5f6e3a056e79f0244b8945f3632257bba8469386c6b9b396400233')
version('20.6.7', sha256='d20152ee6337323d3b6d95cd733fb719d6b4f3fbc40f61f7a48e5a1bb96478b2')
@@ -46,31 +38,17 @@ class PySetuptools(PythonPackage):
version('16.0', sha256='aa86255dee2c4a0056509750008007667c29306b7a6c13801468515b2c672845')
version('11.3.1', sha256='bd25f17de4ecf00116a9f7368b614a54ca1612d7945d2eafe5d97bc08c138bc5')
- depends_on('python@3.5:', type=('build', 'run'), when='@45.0.0:')
- depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@44.0.0:44.99.99')
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@:43.99.99')
-
- # Previously, setuptools vendored all of its dependencies to allow
- # easy bootstrapping. As of version 34.0.0, this is no longer done
- # and the dependencies need to be installed externally. As of version
- # 36.0.0, setuptools now vendors its dependencies again. See
- # https://github.com/pypa/setuptools/issues/980 for the reason they
- # reverted back to vendoring again.
- depends_on('py-packaging@16.8:', when='@34:35', type=('build', 'run'))
- depends_on('py-six@1.6.0:', when='@34:35', type=('build', 'run'))
- depends_on('py-appdirs@1.4.0:', when='@34:35', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'run'), when='@51:')
+ depends_on('python@3.5:', type=('build', 'run'), when='@45:50')
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@44')
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@:43')
def url_for_version(self, version):
- url = 'https://pypi.io/packages/source/s/setuptools/setuptools-{0}'
- url = url.format(version)
+ url = 'https://pypi.io/packages/source/s/setuptools/setuptools-{0}.{1}'
- if version > Version('32.1.2'):
- url += '.zip'
+ if Version('32.1.2') <= version <= Version('51.0.0'):
+ ext = 'zip'
else:
- url += '.tar.gz'
-
- return url
+ ext = 'tar.gz'
- def build_test(self):
- # Unit tests require pytest, creating a circular dependency
- pass
+ return url.format(version, ext)
diff --git a/var/spack/repos/builtin/packages/py-sfepy/package.py b/var/spack/repos/builtin/packages/py-sfepy/package.py
index 579f11b1b7..7d126b764a 100644
--- a/var/spack/repos/builtin/packages/py-sfepy/package.py
+++ b/var/spack/repos/builtin/packages/py-sfepy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,13 @@ from spack import *
class PySfepy(PythonPackage):
- """SfePy (http://sfepy.org) is a software for solving systems of coupled
+ """SfePy (https://sfepy.org/) is a software for solving systems of coupled
partial differential equations (PDEs) by the finite element method in 1D,
2D and 3D. It can be viewed both as black-box PDE solver, and as a Python
package which can be used for building custom applications.
"""
- homepage = "http://sfepy.org"
+ homepage = "https://sfepy.org"
url = "https://github.com/sfepy/sfepy/archive/release_2017.3.tar.gz"
version('2017.3', sha256='d13642b7abed63b83b7eaef4dfce6e84a5afc5798bc7ffa1c413e3e44b5e5996')
diff --git a/var/spack/repos/builtin/packages/py-sgp4/package.py b/var/spack/repos/builtin/packages/py-sgp4/package.py
index 79af5e7112..e8a563110a 100644
--- a/var/spack/repos/builtin/packages/py-sgp4/package.py
+++ b/var/spack/repos/builtin/packages/py-sgp4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PySgp4(PythonPackage):
"""
homepage = "https://github.com/brandon-rhodes/python-sgp4"
- url = "https://pypi.io/packages/source/s/sgp4/sgp4-1.4.tar.gz"
+ pypi = "sgp4/sgp4-1.4.tar.gz"
version('1.4', sha256='1fb3cdbc11981a9ff34a032169f83c1f4a2877d1b6c295aed044e1d890b73892')
diff --git a/var/spack/repos/builtin/packages/py-sh/package.py b/var/spack/repos/builtin/packages/py-sh/package.py
index 7f8b639fbf..ba0fbc8f41 100644
--- a/var/spack/repos/builtin/packages/py-sh/package.py
+++ b/var/spack/repos/builtin/packages/py-sh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PySh(PythonPackage):
"""Python subprocess interface"""
homepage = "https://github.com/amoffat/sh"
- url = "https://pypi.io/packages/source/s/sh/sh-1.12.9.tar.gz"
+ pypi = "sh/sh-1.12.9.tar.gz"
version('1.12.9', sha256='579aa19bae7fe86b607df1afaf4e8537c453d2ce3d84e1d3957e099359a51677')
version('1.11', sha256='590fb9b84abf8b1f560df92d73d87965f1e85c6b8330f8a5f6b336b36f0559a4')
diff --git a/var/spack/repos/builtin/packages/py-shapely/package.py b/var/spack/repos/builtin/packages/py-shapely/package.py
index c03106a6be..ec8bd6af9c 100644
--- a/var/spack/repos/builtin/packages/py-shapely/package.py
+++ b/var/spack/repos/builtin/packages/py-shapely/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,26 +12,22 @@ class PyShapely(PythonPackage):
"""
homepage = "https://github.com/Toblerity/Shapely"
- url = "https://pypi.io/packages/source/S/Shapely/Shapely-1.7.1.tar.gz"
+ pypi = "Shapely/Shapely-1.7.1.tar.gz"
git = "https://github.com/Toblerity/Shapely.git"
maintainers = ['adamjstewart']
- import_modules = [
- 'shapely', 'shapely.geometry', 'shapely.algorithms',
- 'shapely.examples', 'shapely.speedups', 'shapely.vectorized',
- ]
version('master', branch='master')
version('1.7.1', sha256='1641724c1055459a7e2b8bbe47ba25bdc89554582e62aec23cb3f3ca25f9b129')
version('1.7.0', sha256='e21a9fe1a416463ff11ae037766fe410526c95700b9e545372475d2361cc951e')
version('1.6.4', sha256='b10bc4199cfefcf1c0e5d932eac89369550320ca4bdf40559328d85f1ca4f655')
- depends_on('python@3.5:', when='@1.8:', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.4:', when='@1.7:', type=('build', 'run'))
- depends_on('python@2.6:', type=('build', 'run'))
+ depends_on('python@3.5:', when='@1.8:', type=('build', 'link', 'run'))
+ depends_on('python@2.7:2.8,3.4:', when='@1.7:', type=('build', 'link', 'run'))
+ depends_on('python@2.6:', type=('build', 'link', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-cython', type='build')
- depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'link', 'run'))
depends_on('geos')
depends_on('geos@3.3:', when='@1.3:')
depends_on('py-pytest', type='test')
@@ -64,5 +60,7 @@ class PyShapely(PythonPackage):
else:
env.prepend_path('LD_LIBRARY_PATH', libs)
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
def test_install(self):
python('-m', 'pytest')
diff --git a/var/spack/repos/builtin/packages/py-shiboken/package.py b/var/spack/repos/builtin/packages/py-shiboken/package.py
index e7403bbfd6..5395682533 100644
--- a/var/spack/repos/builtin/packages/py-shiboken/package.py
+++ b/var/spack/repos/builtin/packages/py-shiboken/package.py
@@ -1,16 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PyShiboken(PythonPackage):
"""Shiboken generates bindings for C++ libraries using CPython."""
homepage = "https://shiboken.readthedocs.org/"
- url = "https://pypi.io/packages/source/S/Shiboken/Shiboken-1.2.2.tar.gz"
+ pypi = "Shiboken/Shiboken-1.2.2.tar.gz"
version('1.2.2', sha256='0baee03c6244ab56e42e4200d0cb5e234682b11cc296ed0a192fe457d054972f')
diff --git a/var/spack/repos/builtin/packages/py-shortuuid/package.py b/var/spack/repos/builtin/packages/py-shortuuid/package.py
index 4bf5e9d7db..d81c68befa 100644
--- a/var/spack/repos/builtin/packages/py-shortuuid/package.py
+++ b/var/spack/repos/builtin/packages/py-shortuuid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-shroud/package.py b/var/spack/repos/builtin/packages/py-shroud/package.py
index 0e66ca1a23..993a629181 100644
--- a/var/spack/repos/builtin/packages/py-shroud/package.py
+++ b/var/spack/repos/builtin/packages/py-shroud/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-shtab/package.py b/var/spack/repos/builtin/packages/py-shtab/package.py
new file mode 100644
index 0000000000..20d8086edc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-shtab/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PyShtab(PythonPackage):
+ """Automatically generate shell tab completion scripts for python CLI apps."""
+
+ homepage = "https://github.com/iterative/shtab"
+ pypi = "shtab/shtab-1.3.3.tar.gz"
+
+ version('1.3.4', sha256='353f2a3a5178cd2df8eb746e7ab26a5039a9989e4386de8fd239d8c1653a8887')
+ version('1.3.3', sha256='1f7f263631acdf0a9e685bbf7126a0fa711c2d663db12441670b1cea3fa431d4')
+
+ # setuptools and setuptools_scm imported in shtab/__init__.py
+ depends_on('python@2.7:2.8,3.2:', type=('build', 'run'))
+ depends_on('py-setuptools@42:', type='build')
+ depends_on('py-setuptools-scm@3.4:+toml', type='build')
diff --git a/var/spack/repos/builtin/packages/py-sierrapy/package.py b/var/spack/repos/builtin/packages/py-sierrapy/package.py
new file mode 100644
index 0000000000..d17262e327
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-sierrapy/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 PySierrapy(PythonPackage):
+ """A Client of HIVdb Sierra GraphQL Webservice"""
+
+ homepage = "https://github.com/hivdb/sierra-client/tree/master/python"
+ pypi = "sierrapy/sierrapy-0.3.0.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('0.3.0', sha256='82474b3815d79d16a480b0cc70b9f7075430ff4990f33306c880b240a3141b6e')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-certifi@2020.4.5.1', type='build')
+
+ depends_on('py-chardet@3.0.4', type=('build', 'run'))
+ depends_on('py-click@7.1.2', type=('build', 'run'))
+ depends_on('py-gql@0.4.0', type=('build', 'run'))
+ depends_on('py-graphql-core@2.3.2', type=('build', 'run'))
+ depends_on('py-idna@2.9', type=('build', 'run'))
+ depends_on('py-rx@1.6.1', type=('build', 'run'))
+ depends_on('py-promise@2.3', type=('build', 'run'))
+ depends_on('py-requests@2.23.0', type=('build', 'run'))
+ depends_on('py-six@1.14.0', type=('build', 'run'))
+ depends_on('py-tqdm@4.46.0', type=('build', 'run'))
+ depends_on('py-voluptuous@0.11.7', type=('build', 'run'))
+ depends_on('py-urllib3@1.25.9', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-simplegeneric/package.py b/var/spack/repos/builtin/packages/py-simplegeneric/package.py
index eb92c5d8de..74dac1f7f4 100644
--- a/var/spack/repos/builtin/packages/py-simplegeneric/package.py
+++ b/var/spack/repos/builtin/packages/py-simplegeneric/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PySimplegeneric(PythonPackage):
"""Simple generic functions (similar to Python's own len(),
pickle.dump(), etc.)"""
- homepage = "https://pypi.python.org/pypi/simplegeneric"
- url = "https://pypi.io/packages/source/s/simplegeneric/simplegeneric-0.8.zip"
+ pypi = "simplegeneric/simplegeneric-0.8.zip"
version('0.8.1', sha256='dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173')
version('0.8', sha256='8c0c4963da2695ba7c0f953f2cdac31d2c41d619fe9419e9d75432f8a231f966')
diff --git a/var/spack/repos/builtin/packages/py-simplejson/package.py b/var/spack/repos/builtin/packages/py-simplejson/package.py
index 7206102d2e..4cfe8fdd4b 100644
--- a/var/spack/repos/builtin/packages/py-simplejson/package.py
+++ b/var/spack/repos/builtin/packages/py-simplejson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,9 @@ class PySimplejson(PythonPackage):
Python"""
homepage = "https://github.com/simplejson/simplejson"
- url = "https://pypi.io/packages/source/s/simplejson/simplejson-3.10.0.tar.gz"
+ pypi = "simplejson/simplejson-3.10.0.tar.gz"
+ version('3.17.2', sha256='75ecc79f26d99222a084fbdd1ce5aad3ac3a8bd535cd9059528452da38b68841')
version('3.16.0', sha256='b1f329139ba647a9548aa05fb95d046b4a677643070dc2afc05fa2e975d09ca5')
version('3.10.0', sha256='953be622e88323c6f43fad61ffd05bebe73b9fd9863a46d68b052d2aa7d71ce2')
version('3.9.0', sha256='e9abeee37424f4bfcd27d001d943582fb8c729ffc0b74b72bd0e9b626ed0d1b6')
@@ -20,4 +21,5 @@ class PySimplejson(PythonPackage):
version('3.8.1', sha256='428ac8f3219c78fb04ce05895d5dff9bd813c05a9a7922c53dc879cd32a12493')
version('3.8.0', sha256='217e4797da3a9a4a9fbe6722e0db98070b8443a88212d7acdbd241a7668141d9')
+ depends_on('python@2.5:2.8,3.3:', type=('build', 'run'), when='@3.16.0:')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-simplekml/package.py b/var/spack/repos/builtin/packages/py-simplekml/package.py
index 23b309f670..8613346177 100644
--- a/var/spack/repos/builtin/packages/py-simplekml/package.py
+++ b/var/spack/repos/builtin/packages/py-simplekml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PySimplekml(PythonPackage):
"""
homepage = "https://readthedocs.org/projects/simplekml/"
- url = "https://pypi.io/packages/source/s/simplekml/simplekml-1.3.1.tar.gz"
+ pypi = "simplekml/simplekml-1.3.1.tar.gz"
version('1.3.1', sha256='30c121368ce1d73405721730bf766721e580cae6fbb7424884c734c89ec62ad7')
diff --git a/var/spack/repos/builtin/packages/py-singledispatch/package.py b/var/spack/repos/builtin/packages/py-singledispatch/package.py
index 21c91a6465..aba411640f 100644
--- a/var/spack/repos/builtin/packages/py-singledispatch/package.py
+++ b/var/spack/repos/builtin/packages/py-singledispatch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PySingledispatch(PythonPackage):
"""This library brings functools.singledispatch to Python 2.6-3.3."""
- homepage = "https://pypi.python.org/pypi/singledispatch"
- url = "https://pypi.io/packages/source/s/singledispatch/singledispatch-3.4.0.3.tar.gz"
+ pypi = "singledispatch/singledispatch-3.4.0.3.tar.gz"
version('3.4.0.3', sha256='5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c')
diff --git a/var/spack/repos/builtin/packages/py-sip/package.py b/var/spack/repos/builtin/packages/py-sip/package.py
index d454f05740..2a6d79fe48 100644
--- a/var/spack/repos/builtin/packages/py-sip/package.py
+++ b/var/spack/repos/builtin/packages/py-sip/package.py
@@ -1,43 +1,44 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class PySip(Package):
"""SIP is a tool that makes it very easy to create Python bindings for C
and C++ libraries."""
homepage = "https://www.riverbankcomputing.com/software/sip/intro"
- url = "https://www.riverbankcomputing.com/static/Downloads/sip/4.19.18/sip-4.19.18.tar.gz"
- list_url = "https://www.riverbankcomputing.com/software/sip/download"
+ url = "https://www.riverbankcomputing.com/hg/sip/archive/4.19.21.tar.gz"
+ list_url = "https://www.riverbankcomputing.com/hg/sip/archive"
hg = "https://www.riverbankcomputing.com/hg/sip"
version('develop', hg=hg) # wasn't actually able to clone this
- version('4.19.21', sha256='6af9979ab41590e8311b8cc94356718429ef96ba0e3592bdd630da01211200ae')
- version('4.19.20', sha256='04cc2f87ac97e8718d8e1ef036e3ec26050ab44c21f9277618d5b67432fcbfd6')
- version('4.19.19', sha256='5436b61a78f48c7e8078e93a6b59453ad33780f80c644e5f3af39f94be1ede44')
- version('4.19.18', sha256='c0bd863800ed9b15dcad477c4017cdb73fa805c25908b0240564add74d697e1e')
- version('4.19.15', sha256='2b5c0b2c0266b467b365c21376d50dde61a3236722ab87ff1e8dacec283eb610')
- version('4.19.13', sha256='e353a7056599bf5fbd5d3ff9842a6ab2ea3cf4e0304a0f925ec5862907c0d15e')
+ version('4.19.21', sha256='3bfd58e875a87471c00e008f25a01d8312885aa01efc4f688e5cac861c8676e4')
+ version('4.19.20', sha256='475f85277a6601c406ade508b6c935b9f2a170c16fd3ae9dd4cdee7a4f7f340d')
+ version('4.19.19', sha256='348cd6229b095a3090e851555814f5147bffcb601cec891f1038eb6b38c9d856')
+ version('4.19.18', sha256='e274a8b9424047c094a40a8e70fc5e596c191cb8820472846d7bf739e461b2e8')
+ version('4.19.15', sha256='02bff1ac89253e12cdf1406ad39f841d0e264b0d96a7de13dfe9e29740df2053')
+ version('4.19.13', sha256='92193fcf990503bf29f03e290efc4ee1812d556efc18acf5c8b88c090177a630')
variant('module', default='sip', description='Name of private SIP module',
values=str, multi=False)
extends('python')
- depends_on('flex', type='build', when='@develop')
- depends_on('bison', type='build', when='@develop')
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
# https://www.riverbankcomputing.com/static/Docs/sip/installation.html
phases = ['configure', 'build', 'install']
@run_before('configure')
def prepare(self):
- if self.spec.satisfies('@develop'):
+ if not os.path.exists('configure.py'):
python('build.py', 'prepare')
def configure(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-six/package.py b/var/spack/repos/builtin/packages/py-six/package.py
index 22490eb9a2..121d71df58 100644
--- a/var/spack/repos/builtin/packages/py-six/package.py
+++ b/var/spack/repos/builtin/packages/py-six/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,11 +9,9 @@ from spack import *
class PySix(PythonPackage):
"""Python 2 and 3 compatibility utilities."""
- homepage = "https://pypi.python.org/pypi/six"
- url = "https://pypi.io/packages/source/s/six/six-1.11.0.tar.gz"
-
- import_modules = ['six']
+ pypi = "six/six-1.11.0.tar.gz"
+ version('1.15.0', sha256='30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259')
version('1.14.0', sha256='236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a')
version('1.12.0', sha256='d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73')
version('1.11.0', sha256='70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9')
@@ -22,10 +20,5 @@ class PySix(PythonPackage):
version('1.8.0', sha256='047bbbba41bac37c444c75ddfdf0573dd6e2f1fbd824e6247bb26fa7d8fa3830')
extends('python', ignore=r'bin/pytest')
-
- # Newer versions of setuptools require six. Although setuptools is an
- # optional dependency of six, if it is not found, setup.py will fallback
- # on distutils.core instead. Don't add a setuptools dependency or we
- # won't be able to bootstrap setuptools.
-
- # depends_on('py-setuptools', type='build')
+ depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-slepc4py/ldshared-dev.patch b/var/spack/repos/builtin/packages/py-slepc4py/ldshared-dev.patch
new file mode 100644
index 0000000000..fbe430af1b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-slepc4py/ldshared-dev.patch
@@ -0,0 +1,13 @@
+diff --git a/src/binding/slepc4py/conf/baseconf.py b/src/binding/slepc4py/conf/baseconf.py
+index b0707a65a..44ba8f194 100644
+--- a/src/binding/slepc4py/conf/baseconf.py
++++ b/src/binding/slepc4py/conf/baseconf.py
+@@ -213,7 +213,7 @@ class PetscConfig:
+ ldshared = getenv('LDSHARED', ldshared)
+ ldflags = getenv('LDFLAGS', cflags + ' ' + (ldflags or ''))
+ ldcmd = split_quoted(ld) + split_quoted(ldflags)
+- ldshared = [flg for flg in split_quoted(ldshared) if flg not in ldcmd]
++ ldshared = [flg for flg in split_quoted(ldshared) if flg not in ldcmd and (flg.find('/lib/spack/env')<0)]
+ ldshared = str.join(' ', ldshared)
+ #
+ def get_flags(cmd):
diff --git a/var/spack/repos/builtin/packages/py-slepc4py/ldshared.patch b/var/spack/repos/builtin/packages/py-slepc4py/ldshared.patch
new file mode 100644
index 0000000000..65efde5b84
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-slepc4py/ldshared.patch
@@ -0,0 +1,13 @@
+diff --git a/src/binding/slepc4py/conf/baseconf.py b/src/binding/slepc4py/conf/baseconf.py
+index b0707a65a..44ba8f194 100644
+--- a/conf/baseconf.py
++++ b/conf/baseconf.py
+@@ -213,7 +213,7 @@ class PetscConfig:
+ ldshared = getenv('LDSHARED', ldshared)
+ ldflags = getenv('LDFLAGS', cflags + ' ' + (ldflags or ''))
+ ldcmd = split_quoted(ld) + split_quoted(ldflags)
+- ldshared = [flg for flg in split_quoted(ldshared) if flg not in ldcmd]
++ ldshared = [flg for flg in split_quoted(ldshared) if flg not in ldcmd and (flg.find('/lib/spack/env')<0)]
+ ldshared = str.join(' ', ldshared)
+ #
+ def get_flags(cmd):
diff --git a/var/spack/repos/builtin/packages/py-slepc4py/package.py b/var/spack/repos/builtin/packages/py-slepc4py/package.py
index 58b00ce02b..80ea5eb0d6 100644
--- a/var/spack/repos/builtin/packages/py-slepc4py/package.py
+++ b/var/spack/repos/builtin/packages/py-slepc4py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,11 +11,14 @@ class PySlepc4py(PythonPackage):
"""
homepage = "https://gitlab.com/slepc/slepc4py"
- url = "https://gitlab.com/slepc/slepc4py/-/archive/3.12.0/slepc4py-3.12.0.tar.gz"
- git = "https://gitlab.com/slepc/slepc4py.git"
+ url = "https://slepc.upv.es/download/distrib/slepc4py-3.15.1.tar.gz"
+ git = "https://gitlab.com/slepc/slepc.git"
- maintainers = ['dalcinl', 'joseeroman', 'balay']
+ maintainers = ['joseeroman', 'balay']
+ version('main', branch='main')
+ version('3.15.1', sha256='bcdab6d2101ae00e189f4b33072805358cee2dda806a6b6a8e3c2f1b9f619dfd')
+ version('3.15.0', sha256='2f5f5cc25ab4dd3782046c65e97265b39be0cf9cc74c5c0100c3c580c3c32395')
version('3.13.0', sha256='780eff0eea1a5217642d23cd563786ef22df27e1d772a1b0bb4ccc5701df5ea5')
version('3.12.0', sha256='d8c06953b7d00f529a9a7fd016dfa8efdf1d05995baeea7688d1d59611f424f7')
version('3.11.0', sha256='1e591056beee209f585cd781e5fe88174cd2a61215716a71d9eaaf9411b6a775')
@@ -24,9 +27,14 @@ class PySlepc4py(PythonPackage):
version('3.8.0', sha256='988815b3650b69373be9abbf2355df512dfd200aa74b1785b50a484d6dfee971')
version('3.7.0', sha256='139f8bb325dad00a0e8dbe5b3e054050c82547936c1b6e7812fb1a3171c9ad0b')
+ patch('ldshared.patch', when='@:99')
+ patch('ldshared-dev.patch', when='@main')
+
+ depends_on('py-cython', type='build', when='@main')
depends_on('py-setuptools', type='build')
depends_on('py-petsc4py', type=('build', 'run'))
+ depends_on('py-petsc4py@3.15:3.15.99', when='@3.15:3.15.99', type=('build', 'run'))
depends_on('py-petsc4py@3.13:3.13.99', when='@3.13:3.13.99', type=('build', 'run'))
depends_on('py-petsc4py@3.12:3.12.99', when='@3.12:3.12.99', type=('build', 'run'))
depends_on('py-petsc4py@3.11:3.11.99', when='@3.11:3.11.99', type=('build', 'run'))
@@ -37,6 +45,8 @@ class PySlepc4py(PythonPackage):
depends_on('py-petsc4py@3.6:3.6.99', when='@3.6:3.6.99', type=('build', 'run'))
depends_on('slepc')
+ depends_on('slepc@3.15:3.15.99', when='@3.15:3.15.99')
+ depends_on('slepc@3.13:3.13.99', when='@3.13:3.13.99')
depends_on('slepc@3.12:3.12.99', when='@3.12:3.12.99')
depends_on('slepc@3.11:3.11.99', when='@3.11:3.11.99')
depends_on('slepc@3.10:3.10.99', when='@3.10:3.10.99')
@@ -44,3 +54,11 @@ class PySlepc4py(PythonPackage):
depends_on('slepc@3.8:3.8.99', when='@3.8:3.8.99')
depends_on('slepc@3.7:3.7.99', when='@3.7:3.7.99')
depends_on('slepc@3.6:3.6.99', when='@3.6:3.6.99')
+
+ @property
+ def build_directory(self):
+ import os
+ if self.spec.satisfies('@main'):
+ return os.path.join(self.stage.source_path, 'src', 'binding', 'slepc4py')
+ else:
+ return self.stage.source_path
diff --git a/var/spack/repos/builtin/packages/py-slurm-pipeline/package.py b/var/spack/repos/builtin/packages/py-slurm-pipeline/package.py
index a04d974aa8..190fcc60ed 100644
--- a/var/spack/repos/builtin/packages/py-slurm-pipeline/package.py
+++ b/var/spack/repos/builtin/packages/py-slurm-pipeline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ class PySlurmPipeline(PythonPackage):
"""A Python class for scheduling SLURM jobs"""
homepage = "https://github.com/acorg/slurm-pipeline"
- url = "https://pypi.io/packages/source/s/slurm-pipeline/slurm-pipeline-1.1.13.tar.gz"
+ pypi = "slurm-pipeline/slurm-pipeline-1.1.13.tar.gz"
+ version('3.0.2', sha256='28e07eb93e846b395a16e6778fd3fc8344a82d115a6a8420276ec68f67f7131c')
version('2.0.9', sha256='2360e43965ecfa3701f287b7d597c99b4accd4dc8faf9d55cfdcc2228c4054cc')
version('1.1.13', sha256='6d6ca2e96a16780fd9520957166afd06272c57abd962e76bfe74c4d394b38da1')
diff --git a/var/spack/repos/builtin/packages/py-smart-open/package.py b/var/spack/repos/builtin/packages/py-smart-open/package.py
index f58683af38..5fbf871dc6 100644
--- a/var/spack/repos/builtin/packages/py-smart-open/package.py
+++ b/var/spack/repos/builtin/packages/py-smart-open/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PySmartOpen(PythonPackage):
different formats."""
homepage = "https://github.com/piskvorky/smart_open"
- url = "https://pypi.io/packages/source/s/smart_open/smart_open-1.10.0.tar.gz"
+ pypi = "smart_open/smart_open-1.10.0.tar.gz"
version('1.10.0', sha256='bea5624c0c2e49987c227bdf3596573157eccd96fd1d53198856c8d53948fa2c')
version('1.8.4', sha256='788e07f035defcbb62e3c1e313329a70b0976f4f65406ee767db73ad5d2d04f9')
diff --git a/var/spack/repos/builtin/packages/py-smmap/package.py b/var/spack/repos/builtin/packages/py-smmap/package.py
index f8baa0de0e..589bdf2263 100644
--- a/var/spack/repos/builtin/packages/py-smmap/package.py
+++ b/var/spack/repos/builtin/packages/py-smmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PySmmap(PythonPackage):
"""
homepage = "https://github.com/gitpython-developers/smmap"
- url = "https://pypi.io/packages/source/s/smmap/smmap-3.0.4.tar.gz"
+ pypi = "smmap/smmap-3.0.4.tar.gz"
version('3.0.4', sha256='9c98bbd1f9786d22f14b3d4126894d56befb835ec90cef151af566c7e19b5d24')
diff --git a/var/spack/repos/builtin/packages/py-snappy/package.py b/var/spack/repos/builtin/packages/py-snappy/package.py
index bcb9c5d749..699eb45cf1 100644
--- a/var/spack/repos/builtin/packages/py-snappy/package.py
+++ b/var/spack/repos/builtin/packages/py-snappy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-sncosmo/package.py b/var/spack/repos/builtin/packages/py-sncosmo/package.py
index 3108b961cf..cdc2f2e934 100644
--- a/var/spack/repos/builtin/packages/py-sncosmo/package.py
+++ b/var/spack/repos/builtin/packages/py-sncosmo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PySncosmo(PythonPackage):
"""SNCosmo is a Python library for high-level supernova cosmology
analysis."""
- homepage = "http://sncosmo.readthedocs.io/"
- url = "https://pypi.io/packages/source/s/sncosmo/sncosmo-1.2.0.tar.gz"
+ homepage = "https://sncosmo.readthedocs.io/"
+ pypi = "sncosmo/sncosmo-1.2.0.tar.gz"
version('1.2.0', sha256='f3969eec5b25f60c70418dbd64765a2b4735bb53c210c61d0aab68916daea588')
diff --git a/var/spack/repos/builtin/packages/py-sniffio/package.py b/var/spack/repos/builtin/packages/py-sniffio/package.py
index 7ededd453a..280179cf11 100644
--- a/var/spack/repos/builtin/packages/py-sniffio/package.py
+++ b/var/spack/repos/builtin/packages/py-sniffio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PySniffio(PythonPackage):
async library your code is running under."""
homepage = "https://github.com/python-trio/sniffio"
- url = "https://pypi.io/packages/source/s/sniffio/sniffio-1.1.0.tar.gz"
+ pypi = "sniffio/sniffio-1.1.0.tar.gz"
version('1.1.0', sha256='8e3810100f69fe0edd463d02ad407112542a11ffdc29f67db2bf3771afb87a21')
diff --git a/var/spack/repos/builtin/packages/py-snowballstemmer/package.py b/var/spack/repos/builtin/packages/py-snowballstemmer/package.py
index 80af93c40a..621becfe68 100644
--- a/var/spack/repos/builtin/packages/py-snowballstemmer/package.py
+++ b/var/spack/repos/builtin/packages/py-snowballstemmer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,7 @@ class PySnowballstemmer(PythonPackage):
English stemmer) generated from Snowball algorithms."""
homepage = "https://github.com/shibukawa/snowball_py"
- url = "https://pypi.io/packages/source/s/snowballstemmer/snowballstemmer-2.0.0.tar.gz"
-
- import_modules = ['snowballstemmer']
+ pypi = "snowballstemmer/snowballstemmer-2.0.0.tar.gz"
version('2.0.0', sha256='df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52')
version('1.2.1', sha256='919f26a68b2c17a7634da993d91339e288964f93c274f1343e3bbbe2096e1128')
diff --git a/var/spack/repos/builtin/packages/py-snuggs/package.py b/var/spack/repos/builtin/packages/py-snuggs/package.py
index 181ae5d11c..53b746ffb7 100644
--- a/var/spack/repos/builtin/packages/py-snuggs/package.py
+++ b/var/spack/repos/builtin/packages/py-snuggs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class PySnuggs(PythonPackage):
version('1.4.1', sha256='b37ed4e11c5f372695dc6fe66fce6cede124c90a920fe4726c970c9293b71233')
+ depends_on('py-setuptools', type='build')
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-click', type=('build', 'run'))
depends_on('py-pyparsing', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-sonlib/package.py b/var/spack/repos/builtin/packages/py-sonlib/package.py
index 68710835c7..a6ecbdb2bd 100644
--- a/var/spack/repos/builtin/packages/py-sonlib/package.py
+++ b/var/spack/repos/builtin/packages/py-sonlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-sortedcollections/package.py b/var/spack/repos/builtin/packages/py-sortedcollections/package.py
new file mode 100644
index 0000000000..1024d0d220
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-sortedcollections/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PySortedcollections(PythonPackage):
+ """Sorted Collections is an Apache2 licensed Python sorted collections library."""
+
+ homepage = "http://www.grantjenks.com/docs/sortedcollections/"
+ pypi = "sortedcollections/sortedcollections-1.2.1.tar.gz"
+
+ version('1.2.1', sha256='58c31f35e3d052ada6a1fbfc235a408e9ec5e2cfc64a02731cf97cac4afd306a')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-sortedcontainers', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-sortedcontainers/package.py b/var/spack/repos/builtin/packages/py-sortedcontainers/package.py
index 33ab9ee443..32ca17ca4b 100644
--- a/var/spack/repos/builtin/packages/py-sortedcontainers/package.py
+++ b/var/spack/repos/builtin/packages/py-sortedcontainers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PySortedcontainers(PythonPackage):
written in pure-Python, and fast as C-extensions."""
homepage = "http://www.grantjenks.com/docs/sortedcontainers/"
- url = "https://pypi.io/packages/source/s/sortedcontainers/sortedcontainers-2.1.0.tar.gz"
+ pypi = "sortedcontainers/sortedcontainers-2.1.0.tar.gz"
version('2.1.0', sha256='974e9a32f56b17c1bac2aebd9dcf197f3eb9cd30553c5852a3187ad162e1a03a')
diff --git a/var/spack/repos/builtin/packages/py-soundfile/package.py b/var/spack/repos/builtin/packages/py-soundfile/package.py
index aa485deca3..207746fd8c 100644
--- a/var/spack/repos/builtin/packages/py-soundfile/package.py
+++ b/var/spack/repos/builtin/packages/py-soundfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PySoundfile(PythonPackage):
"""SoundFile is an audio library based on libsndfile, CFFI and NumPy."""
homepage = "https://github.com/bastibe/PySoundFile"
- url = "https://pypi.io/packages/source/S/SoundFile/SoundFile-0.10.3.post1.tar.gz"
+ pypi = "SoundFile/SoundFile-0.10.3.post1.tar.gz"
version('0.10.3.post1', sha256='490cff42650733d1832728b937fe99fa1802896f5ef4d61bcf78cf7ebecb107b')
diff --git a/var/spack/repos/builtin/packages/py-soupsieve/package.py b/var/spack/repos/builtin/packages/py-soupsieve/package.py
index be9d52e208..534cd2007f 100644
--- a/var/spack/repos/builtin/packages/py-soupsieve/package.py
+++ b/var/spack/repos/builtin/packages/py-soupsieve/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,13 @@ class PySoupsieve(PythonPackage):
"""A modern CSS selector implementation for Beautiful Soup."""
homepage = "https://github.com/facelessuser/soupsieve"
- url = "https://pypi.io/packages/source/s/soupsieve/soupsieve-1.9.3.tar.gz"
+ pypi = "soupsieve/soupsieve-1.9.3.tar.gz"
+ version('2.2.1', sha256='052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc')
+ version('1.9.6', sha256='7985bacc98c34923a439967c1a602dc4f1e15f923b6fcf02344184f86cc7efaa')
version('1.9.3', sha256='8662843366b8d8779dec4e2f921bebec9afd856a5ff2e82cd419acc5054a1a92')
+ depends_on('python@3.6:', when='@2.2:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools@42:', when='@2.2:', type='build')
depends_on('py-backports-functools-lru-cache', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-spacy-models-en-core-web-sm/package.py b/var/spack/repos/builtin/packages/py-spacy-models-en-core-web-sm/package.py
index 24c3af8d74..e0e236fe76 100644
--- a/var/spack/repos/builtin/packages/py-spacy-models-en-core-web-sm/package.py
+++ b/var/spack/repos/builtin/packages/py-spacy-models-en-core-web-sm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-spacy-models-en-vectors-web-lg/package.py b/var/spack/repos/builtin/packages/py-spacy-models-en-vectors-web-lg/package.py
index cbaf1027bc..05409a3901 100644
--- a/var/spack/repos/builtin/packages/py-spacy-models-en-vectors-web-lg/package.py
+++ b/var/spack/repos/builtin/packages/py-spacy-models-en-vectors-web-lg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-spacy/package.py b/var/spack/repos/builtin/packages/py-spacy/package.py
index 74e3a35708..c120ba17fe 100644
--- a/var/spack/repos/builtin/packages/py-spacy/package.py
+++ b/var/spack/repos/builtin/packages/py-spacy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PySpacy(PythonPackage):
Python and Cython."""
homepage = "https://spacy.io/"
- url = "https://pypi.io/packages/source/s/spacy/spacy-2.3.2.tar.gz"
+ pypi = "spacy/spacy-2.3.2.tar.gz"
version('2.3.2', sha256='818de26e0e383f64ccbe3db185574920de05923d8deac8bbb12113b9e33cee1f')
version('2.2.4', sha256='f0f3a67c5841e6e35d62c98f40ebb3d132587d3aba4f4dccac5056c4e90ff5b9')
diff --git a/var/spack/repos/builtin/packages/py-sparse/package.py b/var/spack/repos/builtin/packages/py-sparse/package.py
new file mode 100644
index 0000000000..814b5aa6e5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-sparse/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PySparse(PythonPackage):
+ """This library provides multi-dimensional sparse arrays."""
+
+ homepage = "https://sparse.pydata.org"
+ url = "https://github.com/pydata/sparse/archive/0.11.2.tar.gz"
+
+ version('0.11.2', sha256='365b6f038c4d331b3913e5fb00f5bc5dc5eadc49ef2feef332214f9bf33dbc82')
+
+ depends_on('python@3.6:3.999', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy@0.19:', type=('build', 'run'))
+ depends_on('py-numba@0.49:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-spatialist/package.py b/var/spack/repos/builtin/packages/py-spatialist/package.py
index ff7386fd00..1925711eda 100644
--- a/var/spack/repos/builtin/packages/py-spatialist/package.py
+++ b/var/spack/repos/builtin/packages/py-spatialist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PySpatialist(PythonPackage):
processing using GDAL and OGR."""
homepage = "https://github.com/johntruckenbrodt/spatialist"
- url = "https://pypi.io/packages/source/s/spatialist/spatialist-0.4.tar.gz"
+ pypi = "spatialist/spatialist-0.4.tar.gz"
maintainers = ['adamjstewart']
diff --git a/var/spack/repos/builtin/packages/py-spatialite/package.py b/var/spack/repos/builtin/packages/py-spatialite/package.py
index e78cff81ad..88fd83e183 100644
--- a/var/spack/repos/builtin/packages/py-spatialite/package.py
+++ b/var/spack/repos/builtin/packages/py-spatialite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PySpatialite(PythonPackage):
"""
homepage = "https://github.com/malexer/spatialite"
- url = "https://pypi.io/packages/source/s/spatialite/spatialite-0.0.3.tar.gz"
+ pypi = "spatialite/spatialite-0.0.3.tar.gz"
version('0.0.3', sha256='a0761f239a52f326b14ce41ba61b6614dfcc808b978a0bec4a37c1de9ad9071e')
diff --git a/var/spack/repos/builtin/packages/py-spdlog/package.py b/var/spack/repos/builtin/packages/py-spdlog/package.py
index 2e149b6b30..26886f4d1e 100644
--- a/var/spack/repos/builtin/packages/py-spdlog/package.py
+++ b/var/spack/repos/builtin/packages/py-spdlog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PySpdlog(PythonPackage):
to the C++ spdlog library."""
homepage = 'https://github.com/bodgergely/spdlog-python'
- url = 'https://pypi.io/packages/source/s/spdlog/spdlog-2.0.0.tar.gz'
+ pypi = 'spdlog/spdlog-2.0.0.tar.gz'
git = 'https://github.com/bodgergely/spdlog-python.git'
# NOTE: Righ now py-spdlog works with a git submodule containing a copy
@@ -25,4 +25,3 @@ class PySpdlog(PythonPackage):
depends_on('py-pybind11@2.2:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-pytest-runner', type='build')
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-spectra/package.py b/var/spack/repos/builtin/packages/py-spectra/package.py
index 063680bb7c..365c597a00 100644
--- a/var/spack/repos/builtin/packages/py-spectra/package.py
+++ b/var/spack/repos/builtin/packages/py-spectra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PySpectra(PythonPackage):
"""Color scales and color conversion made easy for Python."""
- homepage = "https://pypi.python.org/pypi/spectra/0.0.8"
- url = "https://pypi.io/packages/source/s/spectra/spectra-0.0.8.tar.gz"
+ pypi = "spectra/spectra-0.0.8.tar.gz"
version('0.0.11', sha256='8eb362a5187cb63cee13cd01186799c0c791a3ad3bec57b279132e12521762b8')
version('0.0.8', sha256='851b88c9c0bba84e0be1fce5b9c02a7b4ef139a2b3e590b0d082d679e19f0759')
diff --git a/var/spack/repos/builtin/packages/py-speech-recognition/package.py b/var/spack/repos/builtin/packages/py-speech-recognition/package.py
new file mode 100644
index 0000000000..e8dfa4ced2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-speech-recognition/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PySpeechRecognition(PythonPackage):
+ """Library for performing speech recognition, with support
+ for several engines and APIs, online and offline."""
+
+ homepage = "https://github.com/Uberi/speech_recognition"
+ url = "https://github.com/Uberi/speech_recognition/archive/refs/tags/3.8.1.tar.gz"
+
+ version('3.8.1', sha256='82d3313db383409ddaf3e42625fb0c3518231a1feb5e2ed5473b10b3d5ece7bd')
+
+ depends_on('python@2.6:2.999,3.3:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-spefile/package.py b/var/spack/repos/builtin/packages/py-spefile/package.py
index 54eec9ff91..6a9a645ea1 100644
--- a/var/spack/repos/builtin/packages/py-spefile/package.py
+++ b/var/spack/repos/builtin/packages/py-spefile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,6 @@ class PySpefile(PythonPackage):
homepage = "https://github.com/conda-forge/spefile-feedstock"
git = "https://github.com/conda-forge/spefile-feedstock.git"
- import_modules = ['spefile']
-
version('1.6', commit='24394e066da8dee5e7608f556ca0203c9db217f9')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-spgl1/package.py b/var/spack/repos/builtin/packages/py-spgl1/package.py
new file mode 100644
index 0000000000..185576f848
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-spgl1/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 PySpgl1(PythonPackage):
+ """SPGL1 is a solver for large-scale one-norm regularized least squares. It is
+ designed to solve any of the following three problems: Basis pursuit denoise
+ (BPDN): minimize ||x||_1 subject to ||Ax - b||_2 <= sigma, Basis pursuit (BP):
+ minimize ||x||_1 subject to Ax = b Lasso: minimize ||Ax - b||_2 subject to
+ ||x||_1 <= tau, The matrix A can be defined explicitly, or as an operator that
+ returns both both Ax and A'b. SPGL1 can solve these three problems in both
+ the real and complex domains."""
+
+ pypi = "spgl1/spgl1-0.0.2.tar.gz"
+ git = "https://github.com/drrelyea/spgl1.git"
+
+ maintainers = ['archxlith']
+
+ version('master', branch='master')
+ version('0.0.2', sha256='a2a524724097bad18dd88a306dbcc99124c6c46ffcbb1a96d6ba6dd6fe2f7404')
+ version('0.0.1', sha256='24ff37ab5be57f0ccf14c53090b171e019c3c12799c80f368e628e1cc9ac9a1f')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-numpy@1.15:', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-spglib/package.py b/var/spack/repos/builtin/packages/py-spglib/package.py
index c1b6cf6981..064cec083f 100644
--- a/var/spack/repos/builtin/packages/py-spglib/package.py
+++ b/var/spack/repos/builtin/packages/py-spglib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PySpglib(PythonPackage):
"""Python bindings for C library for finding and handling
crystal symmetries."""
- homepage = "http://atztogo.github.io/spglib/"
- url = "https://pypi.io/packages/source/s/spglib/spglib-1.9.9.18.tar.gz"
+ homepage = "https://atztogo.github.io/spglib/"
+ pypi = "spglib/spglib-1.9.9.18.tar.gz"
version('1.9.9.18', sha256='cbbb8383320b500dc6100b83d5e914a26a97ef8fc97c82d8921b10220e4126cd')
diff --git a/var/spack/repos/builtin/packages/py-sphinx-bootstrap-theme/package.py b/var/spack/repos/builtin/packages/py-sphinx-bootstrap-theme/package.py
index f24af6bbb7..dcffde6815 100644
--- a/var/spack/repos/builtin/packages/py-sphinx-bootstrap-theme/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinx-bootstrap-theme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PySphinxBootstrapTheme(PythonPackage):
"""Sphinx Bootstrap Theme."""
- homepage = "https://pypi.python.org/pypi/sphinx-bootstrap-theme/"
- url = "https://pypi.io/packages/source/s/sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.13.tar.gz"
+ pypi = "sphinx-bootstrap-theme/sphinx-bootstrap-theme-0.4.13.tar.gz"
version('0.4.13', sha256='47f7719e56304026f285455bbb115525d227a6e23341d4b7f6f0b48b2eface82')
diff --git a/var/spack/repos/builtin/packages/py-sphinx-copybutton/package.py b/var/spack/repos/builtin/packages/py-sphinx-copybutton/package.py
index 12d4df06dd..2a334adee5 100644
--- a/var/spack/repos/builtin/packages/py-sphinx-copybutton/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinx-copybutton/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PySphinxCopybutton(PythonPackage):
"""A small sphinx extension to add a "copy" button to code blocks."""
homepage = "https://github.com/choldgraf/sphinx-copybutton"
- url = "https://files.pythonhosted.org/packages/b7/74/da355d8a909a7934b5f1711fce6f056e0c398094918dec3a23703662a0fe/sphinx-copybutton-0.2.12.tar.gz"
+ pypi = "sphinx-copybutton/sphinx-copybutton-0.2.12.tar.gz"
version('0.2.12', sha256='9492883786984b6179c92c07ab0410237b26efa826adfa792acfd17b91a63e5c')
diff --git a/var/spack/repos/builtin/packages/py-sphinx-gallery/package.py b/var/spack/repos/builtin/packages/py-sphinx-gallery/package.py
index 067ea9b40c..7f4e9b0c8e 100644
--- a/var/spack/repos/builtin/packages/py-sphinx-gallery/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinx-gallery/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PySphinxGallery(PythonPackage):
"""
homepage = "https://sphinx-gallery.github.io"
- url = "https://files.pythonhosted.org/packages/9d/20/79118154e64a5280060b55c7ad025ad16f89b8192a6a9f0ffdbf71717bf0/sphinx-gallery-0.7.0.tar.gz"
+ pypi = "sphinx-gallery/sphinx-gallery-0.7.0.tar.gz"
version('0.7.0', sha256='05ead72c947718ab4183c33a598e29743e771dcf75aec84c53048423bd2f4580')
version('0.4.0', sha256='a286cf2eea47ce838a0754ecef617616afb1f40e41e52fe765723464f52e0c2f')
diff --git a/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py b/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py
index bc09b3324b..6608086b86 100644
--- a/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,17 +9,19 @@ from spack import *
class PySphinxRtdTheme(PythonPackage):
"""ReadTheDocs.org theme for Sphinx."""
- homepage = "https://github.com/rtfd/sphinx_rtd_theme/"
- url = "https://github.com/readthedocs/sphinx_rtd_theme/archive/0.5.0.tar.gz"
+ homepage = "https://github.com/readthedocs/sphinx_rtd_theme"
+ pypi = "sphinx-rtd-theme/sphinx_rtd_theme-0.5.1.tar.gz"
- import_modules = ['sphinx_rtd_theme']
-
- version('0.5.0', sha256='f5c77e9026e2bd0b3d2530f9f8a6681808b216ba70195fe56e7ad89f641ac447')
- version('0.4.3', sha256='3412195caad06e4537ad741596d57706c3ed29073d1e0e6b46f25e344d0f393b')
- version('0.2.5b1', sha256='31924cdaa5232d1d573423ebebeb1e8f02c8b3cd8cd0662b8a91f3b12efbc12e')
- version('0.1.10-alpha', sha256='a4c120c0d5c87a2541da9d5e48d3c43b96ea7d7867eacbd5dbf125cdeaa0b4f0')
+ version('0.5.2', sha256='32bd3b5d13dc8186d7a42fc816a23d32e83a4827d7d9882948e7b837c232da5a')
+ version('0.5.1', sha256='eda689eda0c7301a80cf122dad28b1861e5605cbf455558f3775e1e8200e83a5')
+ version('0.5.0', sha256='22c795ba2832a169ca301cd0a083f7a434e09c538c70beb42782c073651b707d')
+ version('0.4.3', sha256='728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a')
depends_on('py-setuptools', type='build')
- depends_on('npm', when='@0.5.0:', type='build')
depends_on('py-sphinx', when='@0.4.1:', type=('build', 'run'))
- depends_on('py-pytest', when='@0.5.0:', type='test')
+ depends_on('py-docutils@:0.16', when='@0.5.2:', type=('build', 'run'))
+
+ def setup_build_environment(self, env):
+ # Hack to prevent usage of npm in 0.5+
+ # https://github.com/readthedocs/sphinx_rtd_theme/issues/1014
+ env.set('CI', True)
diff --git a/var/spack/repos/builtin/packages/py-sphinx/package.py b/var/spack/repos/builtin/packages/py-sphinx/package.py
index d326c53f4c..5a94395e1b 100644
--- a/var/spack/repos/builtin/packages/py-sphinx/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,22 +9,18 @@ from spack import *
class PySphinx(PythonPackage):
"""Sphinx Documentation Generator."""
- homepage = "https://sphinx-doc.org/"
- url = "https://pypi.io/packages/source/S/Sphinx/Sphinx-3.2.0.tar.gz"
-
- import_modules = [
- 'sphinx', 'sphinx.testing', 'sphinx.ext', 'sphinx.pycode',
- 'sphinx.search', 'sphinx.transforms', 'sphinx.builders',
- 'sphinx.directives', 'sphinx.util', 'sphinx.environment',
- 'sphinx.writers', 'sphinx.domains', 'sphinx.locale',
- 'sphinx.ext.napoleon', 'sphinx.ext.autosummary', 'sphinx.pycode.pgen2',
- 'sphinx.transforms.post_transforms', 'sphinx.util.stemmer',
- 'sphinx.environment.collectors', 'sphinx.environment.adapters'
- ]
+ homepage = "https://www.sphinx-doc.org/en/master/"
+ pypi = "Sphinx/Sphinx-3.2.0.tar.gz"
+ version('4.1.2', sha256='3092d929cd807926d846018f2ace47ba2f3b671b309c7a89cd3306e80c826b13')
+ version('4.1.1', sha256='23c846a1841af998cb736218539bb86d16f5eb95f5760b1966abcd2d584e62b8')
+ version('4.0.2', sha256='b5c2ae4120bf00c799ba9b3699bc895816d272d120080fbc967292f29b52b48c')
+ version('3.5.4', sha256='19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1')
version('3.2.0', sha256='cf2d5bc3c6c930ab0a1fbef3ad8a82994b1bf4ae923f8098a05c7e5516f07177')
version('3.0.0', sha256='6a099e6faffdc3ceba99ca8c2d09982d43022245e409249375edf111caf79ed3')
+ version('2.4.4', sha256='b4c750d546ab6d7e05bdff6ac24db8ae3e8b8253a3569b754e445110a0a12b66')
version('2.2.0', sha256='0d586b0f8c2fc3cc6559c5e8fd6124628110514fda0e5d7c82e682d749d2e845')
+ version('1.8.5', sha256='c7658aab75c920288a8cf6f09f244c6cfdae30d82d803ac1634d9f223a80ca08')
version('1.8.4', sha256='c1c00fc4f6e8b101a0d037065043460dffc2d507257f2f11acaed71fd2b0c83c')
version('1.8.2', sha256='120732cbddb1b2364471c3d9f8bfd4b0c5b550862f99a65736c77f970b142aea')
version('1.7.4', sha256='e9b1a75a3eae05dded19c80eb17325be675e0698975baae976df603b6ed1eb10')
@@ -40,6 +36,7 @@ class PySphinx(PythonPackage):
# https://github.com/sphinx-doc/sphinx/blob/master/setup.py
# See http://www.sphinx-doc.org/en/stable/changes.html for when each
# dependency was added or removed.
+ depends_on('python@3.6:', when='@4:', type=('build', 'run'))
depends_on('python@3.5:', when='@2:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.4:', when='@:1', type=('build', 'run'))
@@ -47,13 +44,17 @@ class PySphinx(PythonPackage):
depends_on('py-sphinxcontrib-applehelp', when='@2:', type=('build', 'run'))
depends_on('py-sphinxcontrib-devhelp', when='@2:', type=('build', 'run'))
depends_on('py-sphinxcontrib-jsmath', when='@2:', type=('build', 'run'))
+ depends_on('py-sphinxcontrib-htmlhelp@2.0.0:', when='@4.1.1:', type=('build', 'run'))
depends_on('py-sphinxcontrib-htmlhelp', when='@2:', type=('build', 'run'))
+ depends_on('py-sphinxcontrib-serializinghtml@1.1.5:', when='@4.1.1:', type=('build', 'run'))
depends_on('py-sphinxcontrib-serializinghtml', when='@2:', type=('build', 'run'))
depends_on('py-sphinxcontrib-qthelp', when='@2:', type=('build', 'run'))
depends_on('py-six@1.5:', when='@:1', type=('build', 'run'))
depends_on('py-jinja2@2.3:', type=('build', 'run'))
+ depends_on('py-jinja2@2.3:2.999', when='@:4.0.1', type=('build', 'run'))
depends_on('py-pygments@2.0:', type=('build', 'run'))
- depends_on('py-docutils@0.12:', type=('build', 'run'))
+ depends_on('py-docutils@0.14:0.17', when='@4:', type=('build', 'run'))
+ depends_on('py-docutils@0.12:', when='@:3', type=('build', 'run'))
depends_on('py-snowballstemmer@1.1:', type=('build', 'run'))
depends_on('py-babel@1.3:1.999,2.1:', type=('build', 'run'))
depends_on('py-alabaster@0.7.0:0.7.999', type=('build', 'run'))
@@ -64,11 +65,3 @@ class PySphinx(PythonPackage):
depends_on('py-packaging', when='@1.7.4:', type=('build', 'run'))
depends_on('py-typing', when='@1.6.1', type=('build', 'run'))
depends_on('py-typing', when='@1.6.2:^python@2.7:3.4', type=('build', 'run'))
-
- depends_on('py-pytest', type='test')
- depends_on('py-pytest-cov', type='test')
- depends_on('py-html5lib', type='test')
- depends_on('py-flake8@3.5.0:', type='test')
- depends_on('py-flake8-import-order', type='test')
- depends_on('py-mypy@0.720:', type='test')
- depends_on('py-docutils-stubs', type='test')
diff --git a/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py b/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py
index 7538121854..503c77d831 100644
--- a/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxautomodapi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PySphinxautomodapi(PythonPackage):
"""Provides Sphinx directives to autogenerate API documentation pages"""
homepage = "https://sphinx-automodapi.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/s/sphinx-automodapi/sphinx-automodapi-0.9.tar.gz"
+ pypi = "sphinx-automodapi/sphinx-automodapi-0.9.tar.gz"
version('0.9', sha256='71a69e1a7ab8d849f416d7431db854d7b1925f749ba6345bc7d88f288892871d')
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-applehelp/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-applehelp/package.py
index 67ba38134c..0051b2541e 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-applehelp/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-applehelp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,14 @@ class PySphinxcontribApplehelp(PythonPackage):
help books."""
homepage = "http://sphinx-doc.org/"
- url = "https://pypi.io/packages/source/s/sphinxcontrib-applehelp/sphinxcontrib-applehelp-1.0.1.tar.gz"
+ pypi = "sphinxcontrib-applehelp/sphinxcontrib-applehelp-1.0.1.tar.gz"
+
+ # 'sphinx' requires 'sphinxcontrib-applehelp' at build-time, but
+ # 'sphinxcontrib-applehelp' requires 'sphinx' at run-time. Don't bother trying to
+ # import any modules for this package.
+ import_modules = []
version('1.0.1', sha256='edaa0ab2b2bc74403149cb0209d6775c96de797dfd5b5e2a71981309efab3897')
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
-
- def build_test(self):
- # Requires sphinx, creating a circular dependency
- pass
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 d7820786b0..27e2e5e1b1 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,19 +9,30 @@ from spack import *
class PySphinxcontribBibtex(PythonPackage):
"""A Sphinx extension for BibTeX style citations."""
- homepage = "https://pypi.python.org/pypi/sphinxcontrib-bibtex"
- url = "https://pypi.io/packages/source/s/sphinxcontrib-bibtex/sphinxcontrib-bibtex-0.3.5.tar.gz"
-
- import_modules = ['sphinxcontrib', 'sphinxcontrib.bibtex']
+ pypi = "sphinxcontrib-bibtex/sphinxcontrib-bibtex-0.3.5.tar.gz"
+ version('2.2.1', sha256='00d474092e04b1d941e645cf6c027632a975cd0b9337cf47d379f63a5928f334')
+ version('2.2.0', sha256='7500843e154d76983c23bca5ca7380965e0725c46b8f484c1322d0b58a6ce3b2')
+ version('2.1.4', sha256='f53ec0cd534d2c8f0a51b4b3473ced46e9cb0dd99a7c5019249fe0ef9cbef18e')
+ version('2.0.0', sha256='98e18eb0b088d3f556199f3fbb91d3d48ebb7596fe86b6c37cc4c4dc5419b7a1')
version('1.0.0', sha256='629612b001f86784669d65e662377a482052decfd9a0a17c46860878eef7b9e0')
version('0.3.5', sha256='c93e2b4a0d14f0ab726f95f0a33c1675965e9df3ed04839635577b8f978206cd')
+ depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
+ depends_on('python@3.5:', type=('build', 'run'), when='@1:')
+ depends_on('python@3.6:', type=('build', 'run'), when='@2:')
depends_on('py-setuptools', type='build')
- depends_on('py-latexcodec@0.3.0:', type=('build', 'run'))
- depends_on('py-pybtex@0.17:', type=('build', 'run'))
- depends_on('py-pybtex-docutils@0.2.0:', type=('build', 'run'))
- depends_on('py-six@1.4.1:', type=('build', 'run'))
- depends_on('py-sphinx@1.0:', type=('build', 'run'))
- depends_on('py-oset@0.1.3:', type=('build', 'run'))
+ depends_on('py-latexcodec@0.3.0:', type=('build', 'run'), when='@:0.3.6')
+ depends_on('py-pybtex@0.17:', type=('build', 'run'), when='@:1.9.9')
+ depends_on('py-pybtex@0.20:', type=('build', 'run'), when='@2.0.0:')
+ depends_on('py-pybtex-docutils@0.2.0:', type=('build', 'run'), when='@:1.9.9')
+ depends_on('py-pybtex-docutils@0.2.2:', type=('build', 'run'), when='@2.0.0:')
+ depends_on('py-pybtex-docutils@1.0.0:', type=('build', 'run'), when='@2.2.0:')
+ depends_on('py-six@1.4.1:', type=('build', 'run'), when='@0.3.5')
+ depends_on('py-sphinx@1.0:', type=('build', 'run'), when='@:1.9.9')
+ depends_on('py-sphinx@2.0:', type=('build', 'run'), when='@2.0.0:')
+ depends_on('py-sphinx@2.1:', type=('build', 'run'), when='@2.1.3:')
+ depends_on('py-oset@0.1.3:', type=('build', 'run'), when='@:2.0.0')
depends_on('py-ordereddict@1.1:', when='^python@:2.6', type=('build', 'run'))
+ depends_on('py-docutils@0.8:', type=('build', 'run'), when='@2.1.0:')
+ depends_on('py-dataclasses', when='@2.2.0: ^python@:3.6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-devhelp/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-devhelp/package.py
index 1954fc9677..0cbe377807 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-devhelp/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-devhelp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,14 @@ class PySphinxcontribDevhelp(PythonPackage):
Devhelp document."""
homepage = "http://sphinx-doc.org/"
- url = "https://pypi.io/packages/source/s/sphinxcontrib-devhelp/sphinxcontrib-devhelp-1.0.1.tar.gz"
+ pypi = "sphinxcontrib-devhelp/sphinxcontrib-devhelp-1.0.1.tar.gz"
+
+ # 'sphinx' requires 'sphinxcontrib-devhelp' at build-time, but
+ # 'sphinxcontrib-devhelp' requires 'sphinx' at run-time. Don't bother trying to
+ # import any modules.
+ import_modules = []
version('1.0.1', sha256='6c64b077937330a9128a4da74586e8c2130262f014689b4b89e2d08ee7294a34')
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
-
- def build_test(self):
- # Requires sphinx, creating a circular dependency
- pass
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-htmlhelp/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-htmlhelp/package.py
index 95f6819d59..1684148c34 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-htmlhelp/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-htmlhelp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,16 @@ class PySphinxcontribHtmlhelp(PythonPackage):
document."""
homepage = "http://sphinx-doc.org/"
- url = "https://pypi.io/packages/source/s/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-1.0.2.tar.gz"
+ pypi = "sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-1.0.2.tar.gz"
+ # 'sphinx' requires 'sphinxcontrib-htmlhelp' at build-time, but
+ # 'sphinxcontrib-htmlhelp' requires 'sphinx' at run-time. Don't bother trying to
+ # import any modules.
+ import_modules = []
+
+ version('2.0.0', sha256='f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2')
version('1.0.2', sha256='4670f99f8951bd78cd4ad2ab962f798f5618b17675c35c5ac3b2132a14ea8422')
+ depends_on('python@3.6:', when='@2:', type=('build', 'run'))
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
-
- def build_test(self):
- # Requires sphinx, creating a circular dependency
- pass
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-issuetracker/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-issuetracker/package.py
index 2197c3080c..dad1b340c5 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-issuetracker/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-issuetracker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PySphinxcontribIssuetracker(PythonPackage):
"""Sphinx integration with different issuetrackers."""
homepage = "https://sphinxcontrib-issuetracker.readthedocs.org/"
- url = "https://pypi.io/packages/source/s/sphinxcontrib-issuetracker/sphinxcontrib-issuetracker-0.11.tar.gz"
+ pypi = "sphinxcontrib-issuetracker/sphinxcontrib-issuetracker-0.11.tar.gz"
version('0.11', sha256='843753d8b5e989116378ab45ecccb368fb78dc56eaa1554ed25e4fbf22745f4e')
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-jsmath/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-jsmath/package.py
index add0160ac8..115a3678b8 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-jsmath/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-jsmath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,14 @@ class PySphinxcontribJsmath(PythonPackage):
"""A sphinx extension which renders display math in HTML via JavaScript."""
homepage = "http://sphinx-doc.org/"
- url = "https://pypi.io/packages/source/s/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1.tar.gz"
+ pypi = "sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1.tar.gz"
+
+ # 'sphinx' requires 'sphinxcontrib-jsmath' at build-time, but
+ # 'sphinxcontrib-jsmath' requires 'sphinx' at run-time. Don't bother trying to
+ # import any modules.
+ import_modules = []
version('1.0.1', sha256='a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8')
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
-
- def build_test(self):
- # Requires sphinx, creating a circular dependency
- pass
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py
index b525971d46..464924247c 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,8 @@ class PySphinxcontribMermaid(PythonPackage):
including general flowcharts, sequence and gantt diagrams."""
homepage = "https://github.com/mgaitan/sphinxcontrib-mermaid"
- url = "https://files.pythonhosted.org/packages/8e/0a/8a97b65608a63c43a99a9d6a37a5baff853f306e8506bf21ce54bb50d4f3/sphinxcontrib-mermaid-0.4.0.tar.gz"
+ pypi = "sphinxcontrib-mermaid/sphinxcontrib-mermaid-0.4.0.tar.gz"
- version('0.4.0', sha256='0ee45ba45b9575505eacdd6212e4e545213f4f93dfa32c7eeca32720dbc3b468')
- version('0.3.1', sha256='649738afc3022d25a742a928f7b4146cf6024b1d8bb49017962713d2de78123c', extension='zip')
+ version('0.4.0', sha256='0ee45ba45b9575505eacdd6212e4e545213f4f93dfa32c7eeca32720dbc3b468')
depends_on('py-sphinx@1.7:')
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-programoutput/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-programoutput/package.py
index 56028f5163..a1425dd44a 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-programoutput/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-programoutput/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,7 @@ class PySphinxcontribProgramoutput(PythonPackage):
into documents, helping you to keep your command examples up to date."""
homepage = "https://sphinxcontrib-programoutput.readthedocs.org/"
- url = "https://pypi.io/packages/source/s/sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.15.tar.gz"
-
- # FIXME: These import tests don't work for some reason
- # import_modules = ['sphinxcontrib', 'sphinxcontrib.programoutput']
+ pypi = "sphinxcontrib-programoutput/sphinxcontrib-programoutput-0.15.tar.gz"
version('0.15', sha256='80dd5b4eab780a13ff2c23500cac3dbf0e04ef9976b409ef25a47c263ef8ab94')
version('0.10', sha256='fdee94fcebb0d8fddfccac5c4fa560f6177d5340c4349ee447c890bea8857094')
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-qthelp/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-qthelp/package.py
index 19fd328f37..5907734984 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-qthelp/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-qthelp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,14 @@ class PySphinxcontribQthelp(PythonPackage):
document."""
homepage = "http://sphinx-doc.org/"
- url = "https://pypi.io/packages/source/s/sphinxcontrib-qthelp/sphinxcontrib-qthelp-1.0.2.tar.gz"
+ pypi = "sphinxcontrib-qthelp/sphinxcontrib-qthelp-1.0.2.tar.gz"
+
+ # 'sphinx' requires 'sphinxcontrib-qthelp' at build-time, but
+ # 'sphinxcontrib-qthelp' requires 'sphinx' at run-time. Don't bother trying to
+ # import any modules.
+ import_modules = []
version('1.0.2', sha256='79465ce11ae5694ff165becda529a600c754f4bc459778778c7017374d4d406f')
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
-
- def build_test(self):
- # Requires sphinx, creating a circular dependency
- pass
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-serializinghtml/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-serializinghtml/package.py
index 3bad6d661a..09025564ac 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-serializinghtml/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-serializinghtml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,15 @@ class PySphinxcontribSerializinghtml(PythonPackage):
"serialized" HTML files (json and pickle)."""
homepage = "http://sphinx-doc.org/"
- url = "https://pypi.io/packages/source/s/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-1.1.3.tar.gz"
+ pypi = "sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-1.1.3.tar.gz"
+ # 'sphinx' requires 'sphinxcontrib-serializinghtml' at build-time, but
+ # 'sphinxcontrib-serializinghtml' requires 'sphinx' at run-time. Don't bother trying
+ # to import any modules.
+ import_modules = []
+
+ version('1.1.5', sha256='aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952')
version('1.1.3', sha256='c0efb33f8052c04fd7a26c0a07f1678e8512e0faec19f4aa8f2473a8b81d5227')
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
-
- def build_test(self):
- # Requires sphinx, creating a circular dependency
- pass
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py
index 191907db4f..fd4aea9243 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PySphinxcontribTrio(PythonPackage):
or ... you get the idea."""
homepage = "https://github.com/python-trio/sphinxcontrib-trio"
- url = "https://files.pythonhosted.org/packages/ca/33/ee48d86e30bb3c5d72a47f49b1ebf5c23dd253b04d8d5fc3e6c68407a03e/sphinxcontrib-trio-1.1.2.tar.gz"
+ pypi = "sphinxcontrib-trio/sphinxcontrib-trio-1.1.2.tar.gz"
version('1.1.2', sha256='9f1ba9c1d5965b534e85258d8b677dd94e9b1a9a2e918b85ccd42590596b47c0')
version('1.1.0', sha256='d90f46d239ba0556e53d9a110989f98c9eb2cea76ab47937a1f39b62f63fe654')
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-websupport/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-websupport/package.py
index 1e4d1051a3..97642c20a2 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-websupport/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-websupport/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,7 @@ class PySphinxcontribWebsupport(PythonPackage):
Sphinx documentation into your Web application."""
homepage = "http://sphinx-doc.org/"
- url = "https://pypi.io/packages/source/s/sphinxcontrib-websupport/sphinxcontrib-websupport-1.1.2.tar.gz"
-
- # FIXME: These import tests don't work for some reason
- # import_modules = [
- # 'sphinxcontrib', 'sphinxcontrib.websupport',
- # 'sphinxcontrib.websupport.storage', 'sphinxcontrib.websupport.search'
- # ]
+ pypi = "sphinxcontrib-websupport/sphinxcontrib-websupport-1.1.2.tar.gz"
version('1.1.2', sha256='1501befb0fdf1d1c29a800fdbf4ef5dc5369377300ddbdd16d2cd40e54c6eefc')
version('1.1.0', sha256='9de47f375baf1ea07cdb3436ff39d7a9c76042c10a769c52353ec46e4e8fc3b9')
@@ -25,7 +19,3 @@ class PySphinxcontribWebsupport(PythonPackage):
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
-
- def build_test(self):
- # Unit tests require sphinx, creating a circular dependency
- pass
diff --git a/var/spack/repos/builtin/packages/py-sphobjinv/package.py b/var/spack/repos/builtin/packages/py-sphobjinv/package.py
new file mode 100644
index 0000000000..d70185b7ff
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-sphobjinv/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PySphobjinv(PythonPackage):
+ """Sphinx objects.inv Inspection/Manipulation Tool."""
+
+ homepage = "https://github.com/bskinn/sphobjinv"
+ url = "https://github.com/bskinn/sphobjinv/archive/refs/tags/v2.1.tar.gz"
+
+ version('2.1', sha256='e41950a578dfd5acae24f12c7fe12b8d5e44f9162487aaa27189ca2e5c45d30c')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-attrs@19.2:', type=('build', 'run'))
+ depends_on('py-certifi', type=('build', 'run'))
+ depends_on('py-fuzzywuzzy@0.8:', type=('build', 'run'))
+ depends_on('py-jsonschema@3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-spyder/package.py b/var/spack/repos/builtin/packages/py-spyder/package.py
index a6ee780dd6..a5ee45024a 100644
--- a/var/spack/repos/builtin/packages/py-spyder/package.py
+++ b/var/spack/repos/builtin/packages/py-spyder/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PySpyder(PythonPackage):
"""Scientific PYthon Development EnviRonment"""
homepage = "https://github.com/spyder-ide/spyder"
- url = "https://pypi.io/packages/source/s/spyder/spyder-3.1.3.tar.gz"
+ pypi = "spyder/spyder-3.1.3.tar.gz"
version('3.1.3', sha256='4978872cc5a006803bc8742d0a8fb43c49aef9524f0a9fcb8bd6dfcfdc2d2d6a')
diff --git a/var/spack/repos/builtin/packages/py-spykeutils/package.py b/var/spack/repos/builtin/packages/py-spykeutils/package.py
index bef3f0589d..941a5aa54b 100644
--- a/var/spack/repos/builtin/packages/py-spykeutils/package.py
+++ b/var/spack/repos/builtin/packages/py-spykeutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PySpykeutils(PythonPackage):
"""Utilities for analyzing electrophysiological data"""
homepage = "https://github.com/rproepp/spykeutils"
- url = "https://pypi.io/packages/source/s/spykeutils/spykeutils-0.4.3.tar.gz"
+ pypi = "spykeutils/spykeutils-0.4.3.tar.gz"
version('0.4.3', sha256='ff6206d9116d665024109c997377bfed37d953a4cac2859b79a610f395b6b37b')
diff --git a/var/spack/repos/builtin/packages/py-sqlalchemy-utils/package.py b/var/spack/repos/builtin/packages/py-sqlalchemy-utils/package.py
index 1687054ccf..1373f1d2b4 100644
--- a/var/spack/repos/builtin/packages/py-sqlalchemy-utils/package.py
+++ b/var/spack/repos/builtin/packages/py-sqlalchemy-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PySqlalchemyUtils(PythonPackage):
"""Various utility functions and custom data types for SQLAlchemy."""
homepage = "https://github.com/kvesteri/sqlalchemy-utils"
- url = "https://pypi.io/packages/source/s/sqlalchemy-utils/SQLAlchemy-Utils-0.36.8.tar.gz"
+ pypi = "sqlalchemy-utils/SQLAlchemy-Utils-0.36.8.tar.gz"
version('0.36.8', sha256='fb66e9956e41340011b70b80f898fde6064ec1817af77199ee21ace71d7d6ab0')
diff --git a/var/spack/repos/builtin/packages/py-sqlalchemy/package.py b/var/spack/repos/builtin/packages/py-sqlalchemy/package.py
index b1497b6da0..8e342fd738 100644
--- a/var/spack/repos/builtin/packages/py-sqlalchemy/package.py
+++ b/var/spack/repos/builtin/packages/py-sqlalchemy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,22 @@ class PySqlalchemy(PythonPackage):
"""The Python SQL Toolkit and Object Relational Mapper"""
homepage = 'http://www.sqlalchemy.org/'
- url = "https://pypi.io/packages/source/S/SQLAlchemy/SQLAlchemy-1.3.9.tar.gz"
-
+ pypi = "SQLAlchemy/SQLAlchemy-1.3.9.tar.gz"
+
+ # 'sqlalchemy.testing.suite' requires 'pytest'
+ # Attempt to import everything other than 'sqlalchemy.testing'
+ # to avoid unnecessary 'pytest' dependency
+ import_modules = [
+ 'sqlalchemy', 'sqlalchemy.connectors', 'sqlalchemy.databases',
+ 'sqlalchemy.util', 'sqlalchemy.ext', 'sqlalchemy.ext.declarative',
+ 'sqlalchemy.dialects', 'sqlalchemy.dialects.sybase',
+ 'sqlalchemy.dialects.postgresql', 'sqlalchemy.dialects.oracle',
+ 'sqlalchemy.dialects.sqlite', 'sqlalchemy.dialects.mysql',
+ 'sqlalchemy.dialects.mssql', 'sqlalchemy.dialects.firebird', 'sqlalchemy.orm',
+ 'sqlalchemy.engine', 'sqlalchemy.pool', 'sqlalchemy.event', 'sqlalchemy.sql'
+ ]
+
+ version('1.4.20', sha256='38ee3a266afef2978e82824650457f70c5d74ec0cadec1b10fe5ed6f038eb5d0')
version('1.3.19', sha256='3bba2e9fbedb0511769780fe1d63007081008c5c2d7d715e91858c94dbaa260e')
version('1.3.9', sha256='272a835758908412e75e87f75dd0179a51422715c125ce42109632910526b1fd')
version('1.2.19', sha256='5bb2c4fc2bcc3447ad45716c66581eab982c007dcf925482498d8733f86f17c7')
@@ -19,15 +33,23 @@ class PySqlalchemy(PythonPackage):
version('1.1.18', sha256='8b0ec71af9291191ba83a91c03d157b19ab3e7119e27da97932a4773a3f664a9')
version('1.0.12', sha256='6679e20eae780b67ba136a4a76f83bb264debaac2542beefe02069d0206518d1')
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.6:', when='@1.4:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.4:', when='@:1.3', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-pytest@2.5.2:3.9.0,3.9.3:', type='test')
- depends_on('py-mock', type='test')
- depends_on('py-pytest-xdist', type='test')
+ depends_on('py-importlib-metadata', when='@1.4.0: ^python@:3.7', type='run')
+ depends_on('py-greenlet@:0.4.16,0.4.18:', when='@1.4.0: ^python@3:', type='run')
variant('backend', description='Python modules for database access',
values=any_combination_of('mysql', 'pymysql', 'postgresql'))
- depends_on('py-mysqlclient', when='backend=mysql', type=('build', 'run'))
- depends_on('py-pymysql', when='backend=pymysql', type=('build', 'run'))
- depends_on('py-psycopg2', when='backend=postgresql', type=('build', 'run'))
+ # >=1.4.0
+ depends_on('py-mysqlclient@1.4:', when='backend=mysql @1.4: ^python@3:', type=('build', 'run'))
+ depends_on('py-mysqlclient@1.4:,:1.99', when='backend=mysql @1.4: ^python@:2.7', type=('build', 'run'))
+ depends_on('py-pymysql', when='backend=pymysql @1.4: ^python@3:', type=('build', 'run'))
+ depends_on('py-pymysql@:0.999', when='backend=pymysql @1.4: ^python@:2.7', type=('build', 'run'))
+ depends_on('py-psycopg2@2.7:', when='backend=postgresql @1.4:', type=('build', 'run'))
+
+ # < 1.4.0
+ depends_on('py-mysqlclient', when='backend=mysql @:1.3', type=('build', 'run'))
+ depends_on('py-pymysql', when='backend=pymysql @:1.3', type=('build', 'run'))
+ depends_on('py-psycopg2', when='backend=postgresql @:1.3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-sqlparse/package.py b/var/spack/repos/builtin/packages/py-sqlparse/package.py
index 73916d40e5..831ecef206 100644
--- a/var/spack/repos/builtin/packages/py-sqlparse/package.py
+++ b/var/spack/repos/builtin/packages/py-sqlparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class PySqlparse(PythonPackage):
homepage = "https://github.com/andialbrecht/sqlparse"
url = "https://github.com/andialbrecht/sqlparse/archive/0.3.1.tar.gz"
+ version('0.4.1', sha256='f75cdec98a4cc8296890279d744e1ae8618bb14dbad77e3d0637f0d7bb5d6535')
version('0.3.1', sha256='344b539482b75c244ac69fbb160d0f4d63a288a392475c8418ca692c594561f9')
version('0.3.0', sha256='a75fddae009fba1d66786203c9dd3a842aa4415475c466d15484139117108474')
version('0.2.4', sha256='7087a2bd385c06ac1a5cf343e2e5ea7ce2bb6386849e59ef214e02af68f73fb4')
diff --git a/var/spack/repos/builtin/packages/py-srsly/package.py b/var/spack/repos/builtin/packages/py-srsly/package.py
index 46b1b50af0..76641befb6 100644
--- a/var/spack/repos/builtin/packages/py-srsly/package.py
+++ b/var/spack/repos/builtin/packages/py-srsly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PySrsly(PythonPackage):
"""srsly: Modern high-performance serialization utilities for Python."""
homepage = "https://github.com/explosion/srsly"
- url = "https://pypi.io/packages/source/s/srsly/srsly-2.0.1.tar.gz"
+ pypi = "srsly/srsly-2.0.1.tar.gz"
version('2.0.1', sha256='fa3c7375be8fe75f23c27feafbfb5f738d55ffdbf02964c6896fb7684f519a52')
version('2.0.0', sha256='785b00e00406120dbef4ca82925051e6b60fe870c5f84f0d22b3632d574eb870')
@@ -19,11 +19,6 @@ class PySrsly(PythonPackage):
depends_on('py-wheel', when='@2:', type='build')
depends_on('py-cython@0.25:', when='@2:', type='build')
depends_on('py-pathlib@1.0.1', when='^python@:3.3', type=('build', 'run'))
- depends_on('py-pytest', type='test')
- depends_on('py-mock', type='test')
- depends_on('py-numpy', type='test')
- depends_on('py-six', when='@:1', type='test')
- depends_on('py-pytz', when='@:1', type='test')
# https://github.com/explosion/srsly/pull/24
patch('subprocess.patch', when='@2.0.0:2.0.1')
diff --git a/var/spack/repos/builtin/packages/py-sshtunnel/package.py b/var/spack/repos/builtin/packages/py-sshtunnel/package.py
index c9a13fa06e..9a88f6042f 100644
--- a/var/spack/repos/builtin/packages/py-sshtunnel/package.py
+++ b/var/spack/repos/builtin/packages/py-sshtunnel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "sshtunnel/sshtunnel-0.1.5.tar.gz"
version('0.1.5', sha256='c813fdcda8e81c3936ffeac47cb69cfb2d1f5e77ad0de656c6dab56aeebd9249')
diff --git a/var/spack/repos/builtin/packages/py-statsmodels/package.py b/var/spack/repos/builtin/packages/py-statsmodels/package.py
index b00e51730b..c5fd16cf90 100644
--- a/var/spack/repos/builtin/packages/py-statsmodels/package.py
+++ b/var/spack/repos/builtin/packages/py-statsmodels/package.py
@@ -1,47 +1,58 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+from spack import *
+
class PyStatsmodels(PythonPackage):
"""Statistical computations and models for use with SciPy"""
- homepage = "http://www.statsmodels.org"
- url = "https://pypi.io/packages/source/s/statsmodels/statsmodels-0.8.0.tar.gz"
+ homepage = "https://www.statsmodels.org"
+ pypi = "statsmodels/statsmodels-0.8.0.tar.gz"
+ version('0.12.2', sha256='8ad7a7ae7cdd929095684118e3b05836c0ccb08b6a01fe984159475d174a1b10')
+ version('0.12.1', sha256='a271b4ccec190148dccda25f0cbdcbf871f408fc1394a10a7dc1af4a62b91c8e')
version('0.10.2', sha256='9cd2194c6642a8754e85f9a6e6912cdf996bebf6ff715d3cc67f65dadfd37cc9')
version('0.10.1', sha256='320659a80f916c2edf9dfbe83512d9004bb562b72eedb7d9374562038697fa10')
version('0.8.0', sha256='26431ab706fbae896db7870a0892743bfbb9f5c83231644692166a31d2d86048')
variant('plotting', default=False, description='With matplotlib')
- depends_on('python@:3.6', when='@:0.8.0', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.4:', when='@0.10.1:', type=('build', 'run'))
+ depends_on('python@:3.6', when='@:0.8.0', type=('build', 'link', 'run'))
+ depends_on('python@2.7:2.8,3.4:', when='@0.10.1:', type=('build', 'link', 'run'))
+ depends_on('python@3.6:', when='@0.12.1:', type=('build', 'link', 'run'))
- # according to http://www.statsmodels.org/dev/install.html earlier versions
+ # according to https://www.statsmodels.org/dev/install.html earlier versions
# might work.
depends_on('py-setuptools@0.6c5:', type='build')
+ depends_on('py-cython@0.29:', type='build')
# patsy@0.5.1 works around a Python change
# https://github.com/statsmodels/statsmodels/issues/5343 and
# https://github.com/pydata/patsy/pull/131
- depends_on('py-numpy@1.7.0:', type=('build', 'run'), when='@0.8.0:')
- depends_on('py-numpy@1.11.0:', type=('build', 'run'), when='@0.10.1:')
+ depends_on('py-numpy@1.7.0:', type=('build', 'link', 'run'), when='@0.8.0:')
+ depends_on('py-numpy@1.11.0:', type=('build', 'link', 'run'), when='@0.10.1:')
+ depends_on('py-numpy@1.15.0:', type=('build', 'link', 'run'), when='@0.12.1:')
depends_on('py-pandas@0.12:', type=('build', 'run'), when='@0.8.0:')
depends_on('py-pandas@0.19:', type=('build', 'run'), when='@0.10.1:')
+ depends_on('py-pandas@0.21:', type=('build', 'run'), when='@0.12.1:')
depends_on('py-patsy@0.2.1:', type=('build', 'run'), when='@0.8.0:')
depends_on('py-patsy@0.4.0:', type=('build', 'run'), when='@0.10.1:')
+ depends_on('py-patsy@0.5.0:', type=('build', 'run'), when='@0.12.1:')
depends_on('py-scipy@0.11:', type=('build', 'run'), when='@0.8.0:')
depends_on('py-scipy@0.18:', type=('build', 'run'), when='@0.10.1:')
+ depends_on('py-scipy@1.1:', type=('build', 'run'), when='@0.12.1:')
depends_on('py-matplotlib@1.3:', type=('build', 'run'), when='@0.8.0 +plotting')
depends_on('py-pytest', type='test')
+ @run_after('build')
+ @on_package_attributes(run_tests=True)
def build_test(self):
dirs = glob.glob("build/lib*") # There can be only one...
with working_dir(dirs[0]):
diff --git a/var/spack/repos/builtin/packages/py-stdlib-list/package.py b/var/spack/repos/builtin/packages/py-stdlib-list/package.py
index 3bbe840729..5e815aa3e6 100644
--- a/var/spack/repos/builtin/packages/py-stdlib-list/package.py
+++ b/var/spack/repos/builtin/packages/py-stdlib-list/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ class PyStdlibList(PythonPackage):
for Python, along with the code for scraping the official Python
docs to get said lists."""
- homepage = "https://pypi.python.org/project/stdlib-list"
- url = "https://pypi.io/packages/source/s/stdlib-list/stdlib-list-0.6.0.tar.gz"
+ pypi = "stdlib-list/stdlib-list-0.6.0.tar.gz"
version('0.6.0', sha256='133cc99104f5a4e1604dc88ebb393529bd4c2b99ae7e10d46c0b596f3c67c3f0')
diff --git a/var/spack/repos/builtin/packages/py-stestr/package.py b/var/spack/repos/builtin/packages/py-stestr/package.py
index fbc7259d2c..4aa5ce5ee8 100644
--- a/var/spack/repos/builtin/packages/py-stestr/package.py
+++ b/var/spack/repos/builtin/packages/py-stestr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyStestr(PythonPackage):
"""A parallel Python test runner built around subunit."""
homepage = "https://stestr.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/s/stestr/stestr-2.5.1.tar.gz"
+ pypi = "stestr/stestr-2.5.1.tar.gz"
version('2.5.1', sha256='151479fdf2db9f5f492b5285f4696f2d38960639054835dbdcd4c0687122c0fd')
diff --git a/var/spack/repos/builtin/packages/py-stevedore/package.py b/var/spack/repos/builtin/packages/py-stevedore/package.py
index d57b6f373b..7900375d4e 100644
--- a/var/spack/repos/builtin/packages/py-stevedore/package.py
+++ b/var/spack/repos/builtin/packages/py-stevedore/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyStevedore(PythonPackage):
"""Manage Dynamic Plugins for Python Applications."""
homepage = "https://docs.openstack.org/stevedore/latest/"
- url = "https://pypi.io/packages/source/s/stevedore/stevedore-1.28.0.tar.gz"
+ pypi = "stevedore/stevedore-1.28.0.tar.gz"
version('1.28.0', sha256='f1c7518e7b160336040fee272174f1f7b29a46febb3632502a8f2055f973d60b')
diff --git a/var/spack/repos/builtin/packages/py-stopit/package.py b/var/spack/repos/builtin/packages/py-stopit/package.py
index 5fd754d278..c766c0a139 100644
--- a/var/spack/repos/builtin/packages/py-stopit/package.py
+++ b/var/spack/repos/builtin/packages/py-stopit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,7 @@ class PyStopit(PythonPackage):
blocks or callables with two context managers and two decorators.
"""
- homepage = "https://pypi.org/project/stopit/"
- url = "https://pypi.io/packages/source/s/stopit/stopit-1.1.2.tar.gz"
+ pypi = "stopit/stopit-1.1.2.tar.gz"
version('1.1.2', sha256='f7f39c583fd92027bd9d06127b259aee7a5b7945c1f1fa56263811e1e766996d')
diff --git a/var/spack/repos/builtin/packages/py-storm/package.py b/var/spack/repos/builtin/packages/py-storm/package.py
index 64a631b200..8361f87a90 100644
--- a/var/spack/repos/builtin/packages/py-storm/package.py
+++ b/var/spack/repos/builtin/packages/py-storm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-stratify/package.py b/var/spack/repos/builtin/packages/py-stratify/package.py
index bce0899efe..86e546545b 100644
--- a/var/spack/repos/builtin/packages/py-stratify/package.py
+++ b/var/spack/repos/builtin/packages/py-stratify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyStratify(PythonPackage):
"""
homepage = "https://github.com/SciTools-incubator/python-stratify"
- url = "https://pypi.io/packages/source/s/stratify/stratify-0.1.tar.gz"
+ pypi = "stratify/stratify-0.1.tar.gz"
version('0.1', sha256='5426f3b66e45e1010952d426e5a7be42cd45fe65f1cd73a98fee1eb7c110c6ee')
diff --git a/var/spack/repos/builtin/packages/py-stsci-distutils/package.py b/var/spack/repos/builtin/packages/py-stsci-distutils/package.py
index f14a6ebd46..b8c89349b8 100644
--- a/var/spack/repos/builtin/packages/py-stsci-distutils/package.py
+++ b/var/spack/repos/builtin/packages/py-stsci-distutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-submitit/package.py b/var/spack/repos/builtin/packages/py-submitit/package.py
new file mode 100644
index 0000000000..0e8bfa31e9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-submitit/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 PySubmitit(PythonPackage):
+ """Python toolbox for submitting jobs to Slurm."""
+
+ homepage = "https://github.com/facebookincubator/submitit"
+ pypi = "submitit/submitit-1.3.3.tar.gz"
+
+ version('1.3.3', sha256='efaa77b2df9ea9ee02545478cbfc377853ddf8016bff59df6988bebcf51ffa7e')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+
+ depends_on('py-cloudpickle@1.2.1:', type=('build', 'run'))
+ depends_on('py-typing-extensions@3.7.4.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-subprocess32/package.py b/var/spack/repos/builtin/packages/py-subprocess32/package.py
index 9c362b30cf..ff277258b3 100644
--- a/var/spack/repos/builtin/packages/py-subprocess32/package.py
+++ b/var/spack/repos/builtin/packages/py-subprocess32/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PySubprocess32(PythonPackage):
"""A backport of the subprocess module from Python 3.2/3.3 for 2.x."""
- homepage = "https://pypi.python.org/pypi/subprocess32"
- url = "https://pypi.io/packages/source/s/subprocess32/subprocess32-3.2.7.tar.gz"
+ pypi = "subprocess32/subprocess32-3.2.7.tar.gz"
version('3.5.4', sha256='eb2937c80497978d181efa1b839ec2d9622cf9600a039a79d0e108d1f9aec79d')
version('3.2.7', sha256='1e450a4a4c53bf197ad6402c564b9f7a53539385918ef8f12bdf430a61036590')
diff --git a/var/spack/repos/builtin/packages/py-subrosa/package.py b/var/spack/repos/builtin/packages/py-subrosa/package.py
index 19420f3574..0120e4e831 100644
--- a/var/spack/repos/builtin/packages/py-subrosa/package.py
+++ b/var/spack/repos/builtin/packages/py-subrosa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-svgpathtools/package.py b/var/spack/repos/builtin/packages/py-svgpathtools/package.py
index b4e23be0a7..fd394d0cb9 100644
--- a/var/spack/repos/builtin/packages/py-svgpathtools/package.py
+++ b/var/spack/repos/builtin/packages/py-svgpathtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,7 @@ class PySvgpathtools(PythonPackage):
"""A collection of tools for manipulating and analyzing SVG Path objects
and Bezier curves."""
- homepage = "https://pypi.org/project/svgpathtools/"
- url = "https://pypi.io/packages/source/s/svgpathtools/svgpathtools-1.3.3.tar.gz"
+ pypi = "svgpathtools/svgpathtools-1.3.3.tar.gz"
version('1.3.3', sha256='e4b3784ae41b725fbce6a33a8981210967b16d0b557cb5d98c0ed0c81f0f89b9')
diff --git a/var/spack/repos/builtin/packages/py-svgwrite/package.py b/var/spack/repos/builtin/packages/py-svgwrite/package.py
index 23373f95e5..e5ebef7780 100644
--- a/var/spack/repos/builtin/packages/py-svgwrite/package.py
+++ b/var/spack/repos/builtin/packages/py-svgwrite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ from spack import *
class PySvgwrite(PythonPackage):
"""A Python library to create SVG drawings."""
- homepage = "https://pypi.org/project/svgwrite/"
- url = "https://pypi.io/packages/source/s/svgwrite/svgwrite-1.1.12.zip"
+ pypi = "svgwrite/svgwrite-1.1.12.zip"
version('1.1.12', sha256='968c99f193f34f0fa7f0b3e82f49b93789c7c45cd89ce190480f16020d41ab79')
diff --git a/var/spack/repos/builtin/packages/py-symengine/package.py b/var/spack/repos/builtin/packages/py-symengine/package.py
index c9eb6078f0..7b5b4d6eda 100644
--- a/var/spack/repos/builtin/packages/py-symengine/package.py
+++ b/var/spack/repos/builtin/packages/py-symengine/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PySymengine(PythonPackage):
"""Python wrappers for SymEngine, a symbolic manipulation library."""
homepage = "https://github.com/symengine/symengine.py"
- url = "https://pypi.io/packages/source/s/symengine/symengine-0.2.0.tar.gz"
+ pypi = "symengine/symengine-0.2.0.tar.gz"
git = "https://github.com/symengine/symengine.py.git"
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/py-symfit/package.py b/var/spack/repos/builtin/packages/py-symfit/package.py
index 2124792628..0ec51b82c5 100644
--- a/var/spack/repos/builtin/packages/py-symfit/package.py
+++ b/var/spack/repos/builtin/packages/py-symfit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PySymfit(PythonPackage):
"""Symbolic Fitting; fitting as it should be."""
- homepage = "http://symfit.readthedocs.org"
- url = "https://pypi.io/packages/source/s/symfit/symfit-0.3.5.tar.gz"
+ homepage = "https://symfit.readthedocs.org"
+ pypi = "symfit/symfit-0.3.5.tar.gz"
version('0.3.5', sha256='24c66305895c590249da7e61f62f128ee1c0c43c0a8c8e33b8abd3e0931f0881')
diff --git a/var/spack/repos/builtin/packages/py-sympy/package.py b/var/spack/repos/builtin/packages/py-sympy/package.py
index 8aec875219..0a66ac6025 100644
--- a/var/spack/repos/builtin/packages/py-sympy/package.py
+++ b/var/spack/repos/builtin/packages/py-sympy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,14 +8,25 @@ from spack import *
class PySympy(PythonPackage):
"""SymPy is a Python library for symbolic mathematics."""
- homepage = "https://pypi.python.org/pypi/sympy"
- url = "https://pypi.io/packages/source/s/sympy/sympy-0.7.6.tar.gz"
+ pypi = "sympy/sympy-0.7.6.tar.gz"
+ version('1.8', sha256='1ca588a9f6ce6a323c5592f9635159c2093572826668a1022c75c75bdf0297cb')
+ version('1.7.1', sha256='a3de9261e97535b83bb8607b0da2c7d03126650fafea2b2789657b229c246b2e')
+ version('1.7', sha256='9104004669cda847f38cfd8cd16dd174952c537349dbae740fea5331d2b3a51b')
+ version('1.6.2', sha256='1cfadcc80506e4b793f5b088558ca1fcbeaec24cd6fc86f1fdccaa3ee1d48708')
+ version('1.6.1', sha256='7386dba4f7e162e90766b5ea7cab5938c2fe3c620b310518c8ff504b283cb15b')
+ version('1.6', sha256='9769e3d2952e211b1245f1d0dfdbfbdde1f7779a3953832b7dd2b88a21ca6cc6')
+ version('1.5.1', sha256='d77901d748287d15281f5ffe5b0fef62dd38f357c2b827c44ff07f35695f4e7e')
+ version('1.5', sha256='31567dc010bff0967ef7a87210acf3f938c6ab24481581fc143536fb103e9ce8')
version('1.4', sha256='71a11e5686ae7ab6cb8feb5bd2651ef4482f8fd43a7c27e645a165e4353b23e1')
version('1.3', sha256='e1319b556207a3758a0efebae14e5e52c648fc1db8975953b05fff12b6871b54')
version('1.1.1', sha256='ac5b57691bc43919dcc21167660a57cc51797c28a4301a6144eff07b751216a4')
version('1.0', sha256='3eacd210d839e4db911d216a9258a3ac6f936992f66db211e22767983297ffae')
version('0.7.6', sha256='dfa3927e9befdfa7da7a18783ccbc2fe489ce4c46aa335a879e49e48fc03d7a7')
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.4:', when='@:1.4', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.5:', when='@1.5', type=('build', 'run'))
+ depends_on('python@3.5:', when='@1.6', type=('build', 'run'))
+ depends_on('python@3.6:', when='@1.7:', type=('build', 'run'))
+
depends_on('py-mpmath@0.19:', when='@1.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-syned/package.py b/var/spack/repos/builtin/packages/py-syned/package.py
index 12c1a98343..adedb292c5 100644
--- a/var/spack/repos/builtin/packages/py-syned/package.py
+++ b/var/spack/repos/builtin/packages/py-syned/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-systemd-python/package.py b/var/spack/repos/builtin/packages/py-systemd-python/package.py
index 82a9d44870..cdb531c4b2 100644
--- a/var/spack/repos/builtin/packages/py-systemd-python/package.py
+++ b/var/spack/repos/builtin/packages/py-systemd-python/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,6 @@ class PySystemdPython(PythonPackage):
"""Python interface for libsystemd"""
homepage = "https://github.com/systemd/python-systemd"
- url = "https://pypi.io/packages/source/s/systemd-python/systemd-python-234.tar.gz"
+ pypi = "systemd-python/systemd-python-234.tar.gz"
version('234', sha256='fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895db83e7')
diff --git a/var/spack/repos/builtin/packages/py-tables/package.py b/var/spack/repos/builtin/packages/py-tables/package.py
index 2abece3e51..551c774f7b 100644
--- a/var/spack/repos/builtin/packages/py-tables/package.py
+++ b/var/spack/repos/builtin/packages/py-tables/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,8 @@ class PyTables(PythonPackage):
"""PyTables is a package for managing hierarchical datasets and designed to
efficiently and easily cope with extremely large amounts of data."""
- homepage = "http://www.pytables.org/"
- url = "https://pypi.io/packages/source/t/tables/tables-3.6.1.tar.gz"
-
- import_modules = [
- 'tables', 'tables.misc', 'tables.nodes', 'tables.scripts'
- ]
+ homepage = "https://www.pytables.org/"
+ pypi = "tables/tables-3.6.1.tar.gz"
version('3.6.1', sha256='49a972b8a7c27a8a173aeb05f67acb45fe608b64cd8e9fa667c0962a60b71b49')
version('3.6.0', sha256='db3488214864fb313a611fca68bf1c9019afe4e7877be54d0e61c84416603d4d')
@@ -38,7 +34,6 @@ class PyTables(PythonPackage):
depends_on('py-numpy@1.9.3:', type=('build', 'run'))
depends_on('py-numexpr@2.6.2:', type=('build', 'run'))
depends_on('py-six@1.9.0:', when='@:3.5', type=('build', 'run'))
- depends_on('py-mock@2.0:', type='test')
# tables/req_versions.py
depends_on('hdf5@1.8.4:1.8.999', when='@:3.3.99')
depends_on('hdf5@1.8.4:', when='@3.4.0:')
diff --git a/var/spack/repos/builtin/packages/py-tabulate/package.py b/var/spack/repos/builtin/packages/py-tabulate/package.py
index 45cc865bbb..af5b33c314 100644
--- a/var/spack/repos/builtin/packages/py-tabulate/package.py
+++ b/var/spack/repos/builtin/packages/py-tabulate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyTabulate(PythonPackage):
"""Pretty-print tabular data"""
homepage = "https://bitbucket.org/astanin/python-tabulate"
- url = "https://pypi.io/packages/source/t/tabulate/tabulate-0.8.6.tar.gz"
+ pypi = "tabulate/tabulate-0.8.6.tar.gz"
version('0.8.7', sha256='db2723a20d04bcda8522165c73eea7c300eda74e0ce852d9022e0159d7895007')
version('0.8.6', sha256='5470cc6687a091c7042cee89b2946d9235fe9f6d49c193a4ae2ac7bf386737c8')
diff --git a/var/spack/repos/builtin/packages/py-tap-py/package.py b/var/spack/repos/builtin/packages/py-tap-py/package.py
index a0c9c84ee6..4af1d074ea 100644
--- a/var/spack/repos/builtin/packages/py-tap-py/package.py
+++ b/var/spack/repos/builtin/packages/py-tap-py/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyTapPy(PythonPackage):
"""Python TAP interface module for unit tests"""
homepage = "https://github.com/python-tap/tappy"
- url = "https://pypi.io/packages/source/t/tap.py/tap.py-3.0.tar.gz"
+ pypi = "tap.py/tap.py-3.0.tar.gz"
version('3.0', sha256='f5eeeeebfd64e53d32661752bb4c288589a3babbb96db3f391a4ec29f1359c70')
version('2.6.2', sha256='5f219d92dbad5e378f8f7549cdfe655b0d5fd2a778f9c83bee51b61c6ca40efb')
diff --git a/var/spack/repos/builtin/packages/py-tatsu/package.py b/var/spack/repos/builtin/packages/py-tatsu/package.py
index 8b157932bf..eb831caa2a 100644
--- a/var/spack/repos/builtin/packages/py-tatsu/package.py
+++ b/var/spack/repos/builtin/packages/py-tatsu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyTatsu(PythonPackage):
parsers in Python."""
homepage = "https://github.com/neogeny/tatsu"
- url = "https://pypi.io/packages/source/T/TatSu/TatSu-4.4.0.zip"
+ pypi = "TatSu/TatSu-4.4.0.zip"
version('4.4.0', sha256='80713413473a009f2081148d0f494884cabaf9d6866b71f2a68a92b6442f343d')
@@ -22,6 +22,5 @@ class PyTatsu(PythonPackage):
depends_on('py-setuptools', type='build')
# part of the standard lib in python@3.7.0, required in the current HEAD
depends_on('py-dataclasses@0.6:', type=('build', 'run'), when='@4.5:^python@:3.6.99')
- depends_on('py-pytest-mypy', type='test')
# optional dependency, otherwise falls back to standard implementation
depends_on('py-regex@2018.8:', type=('build', 'run'), when='+future_regex')
diff --git a/var/spack/repos/builtin/packages/py-tblib/package.py b/var/spack/repos/builtin/packages/py-tblib/package.py
index f32e292c12..45474211b3 100644
--- a/var/spack/repos/builtin/packages/py-tblib/package.py
+++ b/var/spack/repos/builtin/packages/py-tblib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyTblib(PythonPackage):
"""Traceback fiddling library. Allows you to pickle tracebacks."""
homepage = "https://github.com/ionelmc/python-tblib"
- url = "https://pypi.io/packages/source/t/tblib/tblib-1.6.0.tar.gz"
+ pypi = "tblib/tblib-1.6.0.tar.gz"
version('1.6.0', sha256='229bee3754cb5d98b4837dd5c4405e80cfab57cb9f93220410ad367f8b352344')
version('1.4.0', sha256='bd1ad564564a158ff62c290687f3db446038f9ac11a0bf6892712e3601af3bcd')
diff --git a/var/spack/repos/builtin/packages/py-tempora/package.py b/var/spack/repos/builtin/packages/py-tempora/package.py
index cb69e148ad..a065b37773 100644
--- a/var/spack/repos/builtin/packages/py-tempora/package.py
+++ b/var/spack/repos/builtin/packages/py-tempora/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyTempora(PythonPackage):
"""Objects and routines pertaining to date and time (tempora) """
homepage = "https://github.com/jaraco/tempora"
- url = "https://pypi.io/packages/source/t/tempora/tempora-1.14.1.tar.gz"
+ pypi = "tempora/tempora-1.14.1.tar.gz"
version('1.14.1', sha256='cb60b1d2b1664104e307f8e5269d7f4acdb077c82e35cd57246ae14a3427d2d6')
diff --git a/var/spack/repos/builtin/packages/py-tenacity/package.py b/var/spack/repos/builtin/packages/py-tenacity/package.py
new file mode 100644
index 0000000000..0e6393167c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-tenacity/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyTenacity(PythonPackage):
+ """Retrying library for Python"""
+
+ homepage = "https://github.com/jd/tenacity"
+ pypi = "tenacity/tenacity-6.3.1.tar.gz"
+
+ version('6.3.1', sha256='e14d191fb0a309b563904bbc336582efe2037de437e543b38da749769b544d7f')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build')
+
+ depends_on('py-six@1.9.0:', type=('build', 'run'))
+
+ depends_on('py-futures@3.0:', when='^python@:2.999', type=('build', 'run'))
+ depends_on('py-monotonic@0.6:', when='^python@:2.999', type=('build', 'run'))
+ depends_on('py-typing@3.7.4.1:', when='^python@:2.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-tensorboard-plugin-wit/package.py b/var/spack/repos/builtin/packages/py-tensorboard-plugin-wit/package.py
index 53f4130e98..74775535b0 100644
--- a/var/spack/repos/builtin/packages/py-tensorboard-plugin-wit/package.py
+++ b/var/spack/repos/builtin/packages/py-tensorboard-plugin-wit/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import tempfile
+
class PyTensorboardPluginWit(Package):
"""The What-If Tool makes it easy to efficiently and
@@ -13,16 +15,19 @@ class PyTensorboardPluginWit(Package):
datapoint values. All this and more, in a visual way
that requires minimal code."""
- homepage = "https://pypi.python.org/project/tensorboard-plugin-wit"
+ homepage = "https://pypi.org/project/tensorboard-plugin-wit/"
url = "https://github.com/PAIR-code/what-if-tool/archive/v1.7.0.tar.gz"
git = "https://github.com/pair-code/what-if-tool.git"
maintainers = ['aweits']
version('master', branch='master')
+ version('1.8.0', sha256='1e4de1bbf6ae61c4d27b114ec2e1093bc4765b8c2bbb2cc5d43e2075b08a5fea')
version('1.7.0', sha256='30dcab9065b02c3f1476f4fb92b27f6feb6c00cdb281699c44d8e69c86745247')
- depends_on('bazel@0.26.1:', type='build')
+ # Bazel 3.7+ does not work
+ # https://github.com/PAIR-code/what-if-tool/issues/140
+ depends_on('bazel@0.26.1:3.6', type='build')
depends_on('py-setuptools@36.2.0:', type='build')
depends_on('python@2.7:2.8,3.2:', type=('build', 'run'))
depends_on('py-wheel', type='build')
@@ -31,12 +36,16 @@ class PyTensorboardPluginWit(Package):
patch('tboard_shellenv.patch')
+ # On Ubuntu, sh -> dash, and the script contains tools like pushd that require bash
+ patch('https://patch-diff.githubusercontent.com/raw/PAIR-code/what-if-tool/pull/154.patch',
+ sha256='b40fbc73fb07ed933f9d845b65fdbf7a94644f7ec7ca8637eda002171e71bbb6',
+ when='@:1.8.0')
+
phases = ['setup', 'build', 'install']
def setup_build_environment(self, env):
- tmp_path = '/tmp/spack/tb-plugin'
- mkdirp(tmp_path)
- env.set('TEST_TMPDIR', tmp_path)
+ self.tmp_path = tempfile.mkdtemp(dir='/tmp', prefix='spack')
+ env.set('TEST_TMPDIR', self.tmp_path)
def setup(self, spec, prefix):
builddir = join_path(self.stage.source_path, 'spack-build')
@@ -53,18 +62,27 @@ class PyTensorboardPluginWit(Package):
filter_file(r'virtualenv venv',
'',
'tensorboard_plugin_wit/pip_package/build_pip_package.sh')
+ filter_file('unset PYTHON_HOME',
+ 'export PYTHONPATH="{0}"'.format(env['PYTHONPATH']),
+ 'tensorboard_plugin_wit/pip_package/build_pip_package.sh')
+ filter_file('python setup.py',
+ '{0} setup.py'.format(spec['python'].command.path),
+ 'tensorboard_plugin_wit/pip_package/build_pip_package.sh')
def build(self, spec, prefix):
- tmp_path = env['TEST_TMPDIR']
bazel('--nohome_rc',
'--nosystem_rc',
- '--output_user_root=' + tmp_path,
+ '--output_user_root=' + self.tmp_path,
'run',
+ # watch https://github.com/bazelbuild/bazel/issues/7254
+ '--define=EXECUTOR=remote',
'--verbose_failures',
'--subcommands=pretty_print',
+ '--spawn_strategy=local',
'tensorboard_plugin_wit/pip_package:build_pip_package')
def install(self, spec, prefix):
with working_dir('spack-build/release'):
setup_py('install', '--prefix={0}'.format(prefix),
'--single-version-externally-managed', '--root=/')
+ remove_linked_tree(self.tmp_path)
diff --git a/var/spack/repos/builtin/packages/py-tensorboard/package.py b/var/spack/repos/builtin/packages/py-tensorboard/package.py
index 3ce199fb6f..2f043eafd1 100644
--- a/var/spack/repos/builtin/packages/py-tensorboard/package.py
+++ b/var/spack/repos/builtin/packages/py-tensorboard/package.py
@@ -1,42 +1,44 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import tempfile
+
class PyTensorboard(Package):
"""TensorBoard is a suite of web applications for
inspecting and understanding your TensorFlow runs and
graphs."""
- homepage = "https://pypi.python.org/project/tensorboard"
+ homepage = "https://github.com/tensorflow/tensorboard"
url = "https://github.com/tensorflow/tensorboard/archive/2.2.0.tar.gz"
maintainers = ['aweits']
+ version('2.4.1', sha256='736dc204aa292d221f5871077e60994a9a9ea8e33b841f0d754d510fe6cc7635')
+ version('2.4.0', sha256='28a30794c1c797357b2086477394b59afa0b18ca48592ca3c0627f7f10536373')
version('2.3.0', sha256='947a58702c2841eb4559637dbf8639633f79de9a0f422be9737f3563a1725440')
version('2.2.0', sha256='d0dfbf0e4b3b5ebbc3fafa6d281d4b9aa5478eac6bac3330652ab6674278ab77')
depends_on('python@2.7:2.8,3.2:', type=('build', 'run'))
- depends_on('bazel@0.26.1:', type='build')
+ depends_on('bazel@2.1.0:', type='build', when='@2.2.0:')
depends_on('py-setuptools@41.0.0:', type=('build', 'run'))
depends_on('py-absl-py@0.4:', type=('build', 'run'))
depends_on('py-markdown@2.6.8:', type=('build', 'run'))
depends_on('py-requests@2.21.0:2.999', type=('build', 'run'))
depends_on('py-futures@3.1.1:', type=('build', 'run'), when='^python@:2')
- depends_on('py-grpcio@1.24.3:', type=('build', 'run'), when='@2.3.0')
- depends_on('py-grpcio@1.23.3:', type=('build', 'run'), when='@2.2.0')
+ depends_on('py-grpcio@1.24.3:', type=('build', 'run'), when='@2.3:')
+ depends_on('py-grpcio@1.23.3:', type=('build', 'run'), when='@2.2')
depends_on('py-google-auth@1.6.3:1.99.99', type=('build', 'run'))
depends_on('py-numpy@1.12.0:', type=('build', 'run'))
depends_on('py-protobuf@3.6.0:', type=('build', 'run'))
depends_on('py-six@1.10.0:', type=('build', 'run'))
depends_on('py-werkzeug@0.11.15:', type=('build', 'run'))
- depends_on('py-wheel', type='build')
- depends_on('py-wheel@0.26:', type='build', when='@0.6: ^python@3:')
+ depends_on('py-wheel', type=('build', 'run'))
+ depends_on('py-wheel@0.26:', type=('build', 'run'), when='@0.6: ^python@3:')
depends_on('py-google-auth-oauthlib@0.4.1:0.4.999', type=('build', 'run'))
depends_on('py-tensorboard-plugin-wit@1.6.0:', type=('build', 'run'), when='@2.2.0:')
- depends_on('py-tensorflow-estimator@2.2.0', type='run', when='@2.2.0')
- depends_on('py-tensorflow-estimator@2.3.0', type='run', when='@2.3.0')
extends('python')
@@ -53,9 +55,8 @@ class PyTensorboard(Package):
'.bazelrc')
def setup_build_environment(self, env):
- tmp_path = '/tmp/spack/tb'
- mkdirp(tmp_path)
- env.set('TEST_TMPDIR', tmp_path)
+ self.tmp_path = tempfile.mkdtemp(dir='/tmp', prefix='spack')
+ env.set('TEST_TMPDIR', self.tmp_path)
def configure(self, spec, prefix):
builddir = join_path(self.stage.source_path, 'spack-build')
@@ -75,13 +76,25 @@ class PyTensorboard(Package):
filter_file('trap cleanup EXIT',
'',
'tensorboard/pip_package/build_pip_package.sh')
+ filter_file('unset PYTHON_HOME',
+ 'export PYTHONPATH="{0}"'.format(env['PYTHONPATH']),
+ 'tensorboard/pip_package/build_pip_package.sh')
+ filter_file('python setup.py',
+ '{0} setup.py'.format(spec['python'].command.path),
+ 'tensorboard/pip_package/build_pip_package.sh')
+ if self.spec.satisfies('@2.4.0:'):
+ filter_file('"@npm//@polymer/polymer",',
+ '"@npm//@polymer/polymer",\n'
+ '"@npm//@types/d3",',
+ 'tensorboard/plugins/projector/vz_projector/BUILD')
def build(self, spec, prefix):
- tmp_path = env['TEST_TMPDIR']
bazel('--nohome_rc',
'--nosystem_rc',
- '--output_user_root=' + tmp_path,
+ '--output_user_root=' + self.tmp_path,
'build',
+ # watch https://github.com/bazelbuild/bazel/issues/7254
+ '--define=EXECUTOR=remote',
'--verbose_failures',
'--spawn_strategy=local',
'--subcommands=pretty_print',
@@ -91,3 +104,4 @@ class PyTensorboard(Package):
with working_dir('spack-build'):
setup_py('install', '--prefix={0}'.format(prefix),
'--single-version-externally-managed', '--root=/')
+ remove_linked_tree(self.tmp_path)
diff --git a/var/spack/repos/builtin/packages/py-tensorboardx/package.py b/var/spack/repos/builtin/packages/py-tensorboardx/package.py
index 7faba61060..d089c4371f 100644
--- a/var/spack/repos/builtin/packages/py-tensorboardx/package.py
+++ b/var/spack/repos/builtin/packages/py-tensorboardx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,9 @@ class PyTensorboardx(PythonPackage):
histogram, text, embedding, and the route of back-propagation."""
homepage = "https://github.com/lanpa/tensorboardX"
- url = "https://pypi.io/packages/source/t/tensorboardx/tensorboardX-1.8.tar.gz"
+ pypi = "tensorboardx/tensorboardX-1.8.tar.gz"
+ version('2.1', sha256='9e8907cf2ab900542d6cb72bf91aa87b43005a7f0aa43126268697e3727872f9')
version('2.0', sha256='835d85db0aef2c6768f07c35e69a74e3dcb122d6afceaf2b8504d7d16c7209a5')
version('1.9', sha256='2505d0092e6212f04c4522eea7123e8886c4d0a0b2c406e480fa61ca3c1da7ea')
version('1.8', sha256='13fe0abba27f407778a7321937190eedaf12bc8c544d9a4e294fcf0ba177fd76')
diff --git a/var/spack/repos/builtin/packages/py-tensorflow-estimator/package.py b/var/spack/repos/builtin/packages/py-tensorflow-estimator/package.py
index cf227eec27..71d49302c5 100644
--- a/var/spack/repos/builtin/packages/py-tensorflow-estimator/package.py
+++ b/var/spack/repos/builtin/packages/py-tensorflow-estimator/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import tempfile
+
from spack import *
@@ -15,6 +17,7 @@ class PyTensorflowEstimator(Package):
maintainers = ['aweits']
+ version('2.4.0', sha256='e6ea12014c3d8c89a81ace95f8f8b7c39ffcd3e4e4626709e4aee0010eefd962')
version('2.3.0', sha256='75403e7de7e8ec30ec0781ede56ed84cbe5e90daad64a9c242cd489c8fe63a17')
version('2.2.0', sha256='2d68cb6e6442e7dcbfa2e092aa25bdcb0eda420536a829b85d732854a4c85d46')
version('2.1', sha256='1d74c8181b981748976fa33ad97d3434c3cf2b7e29a0b00861365fe8329dbc4e')
@@ -23,34 +26,27 @@ class PyTensorflowEstimator(Package):
extends('python')
- depends_on('py-tensorflow@2.3.0:', when='@2.3.0')
- depends_on('py-tensorflow@2.2.0', when='@2.2.0')
- depends_on('py-tensorflow@2.1.0:2.1.999', when='@2.1')
- depends_on('py-tensorflow@2.0.0:2.0.999', when='@2.0.0')
- depends_on('py-tensorflow@1.13.1', when='@1.13.0')
-
- depends_on('py-absl-py@0.7.0:', type=('build', 'run'), when='@1.12.1,1.14:')
- depends_on('py-numpy@1.16.0:1.18', type=('build', 'run'), when='@1.13.2,1.15:')
- depends_on('py-six@1.12.0:', type=('build', 'run'), when='@2.1:')
- depends_on('py-keras-preprocessing@1.1.1:1.999', type=('build', 'run'), when='@2.3:')
+ depends_on('py-tensorflow@2.4.0:2.4.999', type=('build', 'run'), when='@2.4.0')
+ depends_on('py-tensorflow@2.3.0:2.3.999', type=('build', 'run'), when='@2.3.0')
+ depends_on('py-tensorflow@2.2.0:2.2.999', type=('build', 'run'), when='@2.2.0')
+ depends_on('py-tensorflow@2.1.0:2.1.999', type=('build', 'run'), when='@2.1')
+ depends_on('py-tensorflow@2.0.0:2.0.999', type=('build', 'run'), when='@2.0.0')
+ depends_on('py-tensorflow@1.13.1', type=('build', 'run'), when='@1.13.0')
depends_on('bazel@0.19.0:', type='build')
depends_on('py-funcsigs@1.0.2:', type=('build', 'run'))
def install(self, spec, prefix):
- tmp_path = join_path(env.get('SPACK_TMPDIR', '/tmp/spack'),
- 'tf-estimator',
- self.module.site_packages_dir[1:])
- mkdirp(tmp_path)
- env['TEST_TMPDIR'] = tmp_path
- env['HOME'] = tmp_path
+ self.tmp_path = tempfile.mkdtemp(dir='/tmp', prefix='spack')
+ env['TEST_TMPDIR'] = self.tmp_path
+ env['HOME'] = self.tmp_path
args = [
# Don't allow user or system .bazelrc to override build settings
'--nohome_rc',
'--nosystem_rc',
# Bazel does not work properly on NFS, switch to /tmp
- '--output_user_root=' + tmp_path,
+ '--output_user_root=' + self.tmp_path,
'build',
# Spack logs don't handle colored output well
'--color=no',
@@ -59,6 +55,7 @@ class PyTensorflowEstimator(Package):
'--verbose_failures',
# Show (formatted) subcommands being executed
'--subcommands=pretty_print',
+ '--spawn_strategy=local',
# Ask bazel to explain what it's up to
# Needs a filename as argument
'--explain=explainlogfile.txt',
@@ -79,3 +76,4 @@ class PyTensorflowEstimator(Package):
with working_dir(buildpath):
setup_py('install', '--prefix={0}'.format(prefix),
'--single-version-externally-managed', '--root=/')
+ remove_linked_tree(self.tmp_path)
diff --git a/var/spack/repos/builtin/packages/py-tensorflow-hub/package.py b/var/spack/repos/builtin/packages/py-tensorflow-hub/package.py
new file mode 100644
index 0000000000..f432c8fc8c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-tensorflow-hub/package.py
@@ -0,0 +1,75 @@
+# Copyright 2013-2021 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)
+
+import tempfile
+
+
+class PyTensorflowHub(Package):
+ """TensorFlow Hub is a library to foster the publication, discovery, and
+ consumption of reusable parts of machine learning models."""
+
+ homepage = "https://github.com/tensorflow/hub"
+ url = "https://github.com/tensorflow/hub/archive/refs/tags/v0.12.0.tar.gz"
+
+ maintainers = ['aweits']
+
+ version('0.12.0', sha256='b192ef3a9a6cbeaee46142d64b47b979828dbf41fc56d48c6587e08f6b596446')
+ version('0.11.0', sha256='4715a4212b45531a7c25ada7207d850467d1b5480f1940f16623f8770ad64df4')
+
+ extends('python')
+
+ depends_on('bazel', type='build')
+ depends_on('py-setuptools', type='build')
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-numpy@1.12.0:', type=('build', 'run'))
+ depends_on('py-protobuf@3.8.0:', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ tmp_path = tempfile.mkdtemp(prefix='spack')
+ env['TEST_TMPDIR'] = tmp_path
+ env['HOME'] = tmp_path
+ args = [
+ # Don't allow user or system .bazelrc to override build settings
+ '--nohome_rc',
+ '--nosystem_rc',
+ # Bazel does not work properly on NFS, switch to /tmp
+ '--output_user_root=' + tmp_path,
+ 'build',
+ # Spack logs don't handle colored output well
+ '--color=no',
+ '--jobs={0}'.format(make_jobs),
+ # Enable verbose output for failures
+ '--verbose_failures',
+ # Show (formatted) subcommands being executed
+ '--subcommands=pretty_print',
+ '--spawn_strategy=local',
+ # Ask bazel to explain what it's up to
+ # Needs a filename as argument
+ '--explain=explainlogfile.txt',
+ # Increase verbosity of explanation,
+ '--verbose_explanations',
+ # bazel uses system PYTHONPATH instead of spack paths
+ '--action_env', 'PYTHONPATH={0}'.format(env['PYTHONPATH']),
+ '//tensorflow_hub/pip_package:build_pip_package',
+ ]
+
+ bazel(*args)
+
+ runfiles = join_path('bazel-bin', 'tensorflow_hub', 'pip_package',
+ 'build_pip_package.runfiles', 'org_tensorflow_hub')
+ insttmp_path = tempfile.mkdtemp(prefix='spack')
+ install(join_path('tensorflow_hub', 'pip_package', 'setup.py'), insttmp_path)
+ install(join_path('tensorflow_hub', 'pip_package', 'setup.cfg'), insttmp_path)
+ install('LICENSE', join_path(insttmp_path, 'LICENSE.txt'))
+ mkdirp(join_path(insttmp_path, 'tensorflow_hub'))
+ install_tree(join_path(runfiles, 'tensorflow_hub'),
+ join_path(insttmp_path, 'tensorflow_hub'))
+
+ with working_dir(insttmp_path):
+ setup_py('install', '--prefix={0}'.format(prefix),
+ '--single-version-externally-managed', '--root=/')
+
+ remove_linked_tree(tmp_path)
+ remove_linked_tree(insttmp_path)
diff --git a/var/spack/repos/builtin/packages/py-tensorflow-probability/package.py b/var/spack/repos/builtin/packages/py-tensorflow-probability/package.py
new file mode 100644
index 0000000000..f3a483557a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-tensorflow-probability/package.py
@@ -0,0 +1,84 @@
+# Copyright 2013-2021 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)
+
+import tempfile
+
+
+class PyTensorflowProbability(Package):
+ """TensorFlow Probability (TFP) is a Python library built on
+ TensorFlow that makes it easy to combine probabilistic models and
+ deep learning on modern hardware (TPU, GPU). It's for data
+ scientists, statisticians, ML researchers, and practitioners who
+ want to encode domain knowledge to understand data and make
+ predictions."""
+
+ homepage = "https://www.tensorflow.org/probability"
+ url = "https://github.com/tensorflow/probability/archive/v0.12.1.tar.gz"
+
+ maintainers = ['aweits']
+
+ version('0.12.1', sha256='1fe89e85fd053bf36e8645a5a1a53b729bc254cf1516bc224fcbd1e4ff50083a')
+ version('0.8.0', sha256='f6049549f6d6b82962523a6bf61c40c1d0c7ac685f209c0084a6da81dd78181d',
+ url='https://github.com/tensorflow/probability/archive/0.8.0.tar.gz')
+
+ extends('python')
+ depends_on('py-setuptools', type='build')
+
+ depends_on('py-six@1.10.0:', type=('build', 'run'))
+ depends_on('py-numpy@1.13.3:', type=('build', 'run'))
+ depends_on('py-decorator', type=('build', 'run'))
+
+ depends_on('py-tensorflow@1.14:', type=('build', 'run'), when='@0.8.0')
+ depends_on('py-gast@0.2:0.2.999', type=('build', 'run'), when='@0.8.0')
+ depends_on('py-cloudpickle@1.1.1', type=('build', 'run'), when='@0.8.0')
+
+ depends_on('py-tensorflow@2.4:', type=('build', 'run'), when='@0.12.0:')
+ depends_on('py-cloudpickle@1.3:', type=('build', 'run'), when='@0.12.0:')
+ depends_on('py-gast@0.3.2:', type=('build', 'run'), when='@0.12.0:')
+ depends_on('py-dm-tree', type=('build', 'run'), when='@0.12.0:')
+
+ depends_on('bazel@3.2.0:', type='build')
+
+ def install(self, spec, prefix):
+ self.tmp_path = tempfile.mkdtemp(dir='/tmp', prefix='spack')
+ env['TEST_TMPDIR'] = self.tmp_path
+ env['HOME'] = self.tmp_path
+
+ args = [
+ # Don't allow user or system .bazelrc to override build settings
+ '--nohome_rc',
+ '--nosystem_rc',
+ # Bazel does not work properly on NFS, switch to /tmp
+ '--output_user_root=' + self.tmp_path,
+ 'build',
+ # Spack logs don't handle colored output well
+ '--color=no',
+ '--jobs={0}'.format(make_jobs),
+ # Enable verbose output for failures
+ '--verbose_failures',
+ # Show (formatted) subcommands being executed
+ '--subcommands=pretty_print',
+ '--spawn_strategy=local',
+ # Ask bazel to explain what it's up to
+ # Needs a filename as argument
+ '--explain=explainlogfile.txt',
+ # Increase verbosity of explanation,
+ '--verbose_explanations',
+ # bazel uses system PYTHONPATH instead of spack paths
+ '--action_env', 'PYTHONPATH={0}'.format(env['PYTHONPATH']),
+ '--copt=-O3',
+ '--copt=-march=native',
+ ':pip_pkg',
+ ]
+
+ bazel(*args)
+
+ with working_dir(join_path('bazel-bin',
+ 'pip_pkg.runfiles',
+ 'tensorflow_probability')):
+ setup_py('install', '--prefix={0}'.format(prefix),
+ '--single-version-externally-managed', '--root=/')
+
+ remove_linked_tree(self.tmp_path)
diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py
index a5c285fa01..8fd5390ed2 100644
--- a/var/spack/repos/builtin/packages/py-tensorflow/package.py
+++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import sys
+import tempfile
class PyTensorflow(Package, CudaPackage):
@@ -16,17 +17,24 @@ class PyTensorflow(Package, CudaPackage):
maintainers = ['adamjstewart', 'aweits']
import_modules = ['tensorflow']
+ version('2.4.1', sha256='f681331f8fc0800883761c7709d13cda11942d4ad5ff9f44ad855e9dc78387e0')
+ version('2.4.0', sha256='26c833b7e1873936379e810a39d14700281125257ddda8cd822c89111db6f6ae')
+ version('2.3.2', sha256='21a703d2e68cd0677f6f9ce329198c24fd8203125599d791af9f1de61aadf31f')
version('2.3.1', sha256='ee534dd31a811f7a759453567257d1e643f216d8d55a25c32d2fbfff8153a1ac')
version('2.3.0', sha256='2595a5c401521f20a2734c4e5d54120996f8391f00bb62a57267d930bce95350')
+ version('2.2.2', sha256='fb4b5d26c5b983350f7ce8297b71176a86a69e91faf66e6ebb1e58538ad3bb51')
version('2.2.1', sha256='e6a28e64236d729e598dbeaa02152219e67d0ac94d6ed22438606026a02e0f88')
version('2.2.0', sha256='69cd836f87b8c53506c4f706f655d423270f5a563b76dc1cfa60fbc3184185a3')
+ version('2.1.3', sha256='cfa66cce372f486e95a42beb1aacfefdaf0092c5efaaaa92459b381fde931fb8')
version('2.1.2', sha256='3f941cda0ed12dfef5472e46f1d0238ea85da7583d73f1132d2ef050fda6e8ad')
version('2.1.1', sha256='a200bc16e4b630db3ac7225bcb6f239a76841967b0aec1d7d7bbe44dc5661318')
version('2.1.0', sha256='638e541a4981f52c69da4a311815f1e7989bf1d67a41d204511966e1daed14f7')
+ version('2.0.4', sha256='6ca3ce1255da8d655080a89db10da03f72c361d7faecc9a35e6af26ff12c06e6')
version('2.0.3', sha256='6314299a723441bd9892e5c2af182c2be7d2256e20e71026e1cb1264cb497f33')
version('2.0.2', sha256='a548742bbafd302eec51e2794d7687674a64f6b10ce1414073858cb83c0cefc2')
version('2.0.1', sha256='29197d30923b9670992ee4b9c6161f50c7452e9a4158c720746e846080ac245a')
version('2.0.0', sha256='49b5f0495cd681cbcb5296a4476853d4aea19a43bdd9f179c928a977308a0617')
+ version('1.15.5', sha256='4c4d23e311093ded2d2e287b18d7c45b07b5984ab88a1d2f91f8f13c886123db')
version('1.15.4', sha256='e18c55e771ad136f9bf3a70ea8f0e2d36662b2ba7c890f9eaf7950554557c7fa')
version('1.15.3', sha256='9ab1d92e58eb813922b040acc7622b32d73c2d8d971fe6491a06f9df4c778151')
version('1.15.2', sha256='d95d75d26a298211b5e802842e87fda5b8b14f6ad83719377b391e5fb71b8746')
@@ -93,6 +101,9 @@ class PyTensorflow(Package, CudaPackage):
extends('python')
depends_on('python@3:', type=('build', 'run'), when='@2.1:')
+ # python 3.8 support in tensorflow 2.2
+ # see tensorflow issue #33374
+ depends_on('python@:3.7', type=('build', 'run'), when='@:2.2')
# TODO: Older versions of TensorFlow don't list the viable version range,
# just the minimum version of bazel that will work. The latest version of
@@ -127,9 +138,11 @@ class PyTensorflow(Package, CudaPackage):
depends_on('py-future', type='build', when='^python@:2')
# Listed under REQUIRED_PACKAGES in tensorflow/tools/pip_package/setup.py
- depends_on('py-absl-py@0.7.0:', type=('build', 'run'), when='@1.12.1,1.14:')
- depends_on('py-absl-py@0.1.6:', type=('build', 'run'), when='@1.5:')
- depends_on('py-astunparse@1.6.3', type=('build', 'run'), when='@2.2:')
+ depends_on('py-absl-py@0.10:0.999', type=('build', 'run'), when='@2.4.0:')
+ depends_on('py-absl-py@0.7.0:', type=('build', 'run'), when='@1.12.1,1.14:2.3')
+ depends_on('py-absl-py@0.1.6:', type=('build', 'run'), when='@1.5:1.11')
+ depends_on('py-astunparse@1.6.3:1.6.999', type=('build', 'run'), when='@2.4.0:')
+ depends_on('py-astunparse@1.6.3', type=('build', 'run'), when='@2.2:2.3')
depends_on('py-astor@0.6.0:', type=('build', 'run'), when='@1.6:2.1')
depends_on('py-backports-weakref@1.0:', type=('build', 'run'), when='@1.3: ^python@:3.3')
depends_on('py-backports-weakref@1.0rc1', type=('build', 'run'), when='@1.2.0:1.2.1')
@@ -138,66 +151,80 @@ class PyTensorflow(Package, CudaPackage):
depends_on('py-gast@0.3.3', type=('build', 'run'), when='@2.2:')
depends_on('py-gast@0.2.2', type=('build', 'run'), when='@1.15:2.1')
depends_on('py-gast@0.2.0:', type=('build', 'run'), when='@1.6:1.14')
- depends_on('py-google-pasta@0.1.8:', type=('build', 'run'), when='@2.1:')
- depends_on('py-google-pasta@0.1.6:', type=('build', 'run'), when='@1.14:')
+ depends_on('py-google-pasta@0.2:0.999', type=('build', 'run'), when='@2.4.0:')
+ depends_on('py-google-pasta@0.1.8:', type=('build', 'run'), when='@2.1:2.3')
+ depends_on('py-google-pasta@0.1.6:', type=('build', 'run'), when='@1.14:2.0')
depends_on('py-google-pasta@0.1.2:', type=('build', 'run'), when='@1.12.1')
- depends_on('py-h5py@2.10.0:2.10.999', type=('build', 'run'), when='@2.2:')
+ # propagate the mpi variant setting for h5py/hdf5 to avoid unexpected crashes
+ depends_on('py-h5py@2.10.0:2.10.999+mpi', type=('build', 'run'), when='@2.2:+mpi')
+ depends_on('py-h5py@2.10.0:2.10.999~mpi', type=('build', 'run'), when='@2.2:~mpi')
+ depends_on('hdf5+mpi', type='build', when='@2.2:+mpi')
+ depends_on('hdf5~mpi', type='build', when='@2.2:~mpi')
depends_on('py-keras-applications@1.0.8:', type=('build', 'run'), when='@1.15:2.1')
depends_on('py-keras-applications@1.0.6:', type=('build', 'run'), when='@1.12:1.14')
depends_on('py-keras-applications@1.0.5:', type=('build', 'run'), when='@1.11.0:1.11.999')
- depends_on('py-keras-preprocessing@1.1.1:1.999', type=('build', 'run'), when='@2.3:')
- 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-keras-preprocessing@1.1.2:1.1.999', type=('build', 'run'), when='@2.4:')
+ depends_on('py-keras-preprocessing@1.1.1:1.999', type=('build', 'run'), when='@2.3:2.3.999')
+ depends_on('py-keras-preprocessing@1.1.0:', type=('build', 'run'), when='@2.1:2.2')
+ depends_on('py-keras-preprocessing@1.0.5:', type=('build', 'run'), when='@1.12:2.0')
+ depends_on('py-keras-preprocessing@1.0.3:', type=('build', 'run'), when='@1.11:1.11.999')
# 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.19.2:1.19.999', type=('build', 'run'), when='@2.4.0:')
+ depends_on('py-numpy@1.16.0:1.18', type=('build', 'run'), when='@1.13.2,1.15:2.3')
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:')
- depends_on('py-numpy@1.11.0:', type=('build', 'run'), when='@0.11:')
- depends_on('py-numpy@1.10.1:', type=('build', 'run'), when='@0.7.1: platform=darwin')
- depends_on('py-numpy@1.8.2:', type=('build', 'run'), when='@0.6:')
+ depends_on('py-numpy@1.13.3:', type=('build', 'run'), when='@1.6:1.9')
+ depends_on('py-numpy@1.12.1:', type=('build', 'run'), when='@1.4:1.5')
+ depends_on('py-numpy@1.11.0:', type=('build', 'run'), when='@0.11:1.3')
+ depends_on('py-numpy@1.10.1:', type=('build', 'run'), when='@0.7.1:0.7.999 platform=darwin')
+ depends_on('py-numpy@1.8.2:', type=('build', 'run'), when='@0.6:0.10')
depends_on('py-numpy@1.9.2:', type=('build', 'run'), when='@0.5.0')
- depends_on('py-opt-einsum@2.3.2:', type=('build', 'run'), when='@1.15:')
+ depends_on('py-opt-einsum@3.3.0:3.3.999', type=('build', 'run'), when='@2.4.0:')
+ depends_on('py-opt-einsum@2.3.2:', type=('build', 'run'), when='@1.15:2.3')
depends_on('py-protobuf@3.9.2:', type=('build', 'run'), when='@2.3:')
- depends_on('py-protobuf@3.8.0:', type=('build', 'run'), when='@2.1:')
- depends_on('py-protobuf@3.6.1:', type=('build', 'run'), when='@1.12:')
- depends_on('py-protobuf@3.6.0:', type=('build', 'run'), when='@1.10:')
- depends_on('py-protobuf@3.4.0:', type=('build', 'run'), when='@1.5:')
- depends_on('py-protobuf@3.3.0:', type=('build', 'run'), when='@1.3:')
- depends_on('py-protobuf@3.2.0:', type=('build', 'run'), when='@1.1:')
- depends_on('py-protobuf@3.1.0:', type=('build', 'run'), when='@0.12.1:')
+ depends_on('py-protobuf@3.8.0:', type=('build', 'run'), when='@2.1:2.2')
+ depends_on('py-protobuf@3.6.1:', type=('build', 'run'), when='@1.12:2.0')
+ depends_on('py-protobuf@3.6.0:', type=('build', 'run'), when='@1.10:1.11')
+ depends_on('py-protobuf@3.4.0:', type=('build', 'run'), when='@1.5:1.9')
+ depends_on('py-protobuf@3.3.0:', type=('build', 'run'), when='@1.3:1.4')
+ depends_on('py-protobuf@3.2.0:', type=('build', 'run'), when='@1.1:1.2')
+ depends_on('py-protobuf@3.1.0:', type=('build', 'run'), when='@0.12.1:1.0')
depends_on('py-protobuf@3.1.0', type=('build', 'run'), when='@0.12.0')
depends_on('py-protobuf@3.0.0', type=('build', 'run'), when='@0.11.0')
depends_on('py-protobuf@3.0.0b2', type=('build', 'run'), when='@0.7.1:0.10')
depends_on('py-protobuf@3.0.0a3', type=('build', 'run'), when='@0.6:0.7.0')
depends_on('protobuf')
+ depends_on('flatbuffers+python@1.12.0:1.12.999', type=('build', 'run'), when='@2.4.0:')
# tensorboard
# tensorflow-estimator
- depends_on('py-termcolor@1.1.0:', type=('build', 'run'), when='@1.6:')
- depends_on('py-wrapt@1.11.1:', type=('build', 'run'), when='@1.12.1,1.14:')
- depends_on('py-wheel', type=('build', 'run'), when='@0.6:')
- depends_on('py-wheel@0.26:', type=('build', 'run'), when='@0.6: ^python@3:')
+ depends_on('py-termcolor@1.1.0:1.1.999', type=('build', 'run'), when='@2.4.0:')
+ depends_on('py-termcolor@1.1.0:', type=('build', 'run'), when='@1.6:2.3')
+ depends_on('py-wrapt@1.12.1:1.12.999', type=('build', 'run'), when='@2.4.0:')
+ depends_on('py-wrapt@1.11.1:', type=('build', 'run'), when='@1.12.1,1.14:2.3')
+ depends_on('py-wheel', type=('build', 'run'), when='@0.6:2.3')
+ depends_on('py-wheel@0.26:', type=('build', 'run'), when='@0.6:2.3 ^python@3:')
+ depends_on('py-wheel@0.35:0.999', type=('build', 'run'), when='@2.4.0: ^python@3:')
depends_on('py-mock@2.0.0:', type=('build', 'run'), when='@0.10: ^python@:2')
depends_on('py-functools32@3.2.3:', type=('build', 'run'), when='@1.15: ^python@:2')
- depends_on('py-six@1.12.0:', type=('build', 'run'), when='@2.1:')
+ depends_on('py-six@1.15.0:1.15.999', type=('build', 'run'), when='@2.4.0:')
+ depends_on('py-six@1.12.0:', type=('build', 'run'), when='@2.1:2.3')
depends_on('py-six@1.10.0:', type=('build', 'run'), when='@:2.0')
depends_on('py-scipy@1.2.2', type=('build', 'run'), when='@2.1.0:2.1.1,2.2.0,2.3.0 ^python@:2')
depends_on('py-scipy@1.4.1', type=('build', 'run'), when='@2.1.0:2.1.1,2.2.0,2.3.0 ^python@3:')
depends_on('py-grpcio@1.8.6:', type=('build', 'run'), when='@1.6:1.7')
+ depends_on('py-typing-extensions@3.7.4:3.7.999', type=('build', 'run'), when='@2.4.0:')
if sys.byteorder == 'little':
# Only builds correctly on little-endian machines
- depends_on('py-grpcio@1.8.6:', type=('build', 'run'), when='@1.8:')
-
- # Listed under TEST_PACKAGES in tensorflow/tools/pip_package/setup.py
- depends_on('py-scipy@0.15.1:', type='test')
+ depends_on('py-grpcio@1.8.6:', type=('build', 'run'), when='@1.8:2.3')
+ depends_on('py-grpcio@1.32.0:1.32.999', type=('build', 'run'), when='@2.4:')
# TODO: add packages for some of these dependencies
depends_on('mkl', when='+mkl')
depends_on('curl', when='+gcp')
# depends_on('computecpp', when='+opencl+computecpp')
# depends_on('trisycl', when='+opencl~computepp')
+ depends_on('cuda@:10.2', when='+cuda @:2.3')
+ depends_on('cuda@:11.1', when='+cuda @2.4.0:')
depends_on('cudnn', when='+cuda')
depends_on('cudnn@6.5', when='@0.5:0.6 +cuda')
# depends_on('tensorrt', when='+tensorrt')
@@ -260,7 +287,7 @@ class PyTensorflow(Package, CudaPackage):
# "Remove contrib cloud bigtable and storage ops/kernels."
# Allows 2.0.* releases to build with '--config=nogcp'
patch('0001-Remove-contrib-cloud-bigtable-and-storage-ops-kernel.patch',
- when='@2.0.0:2.0.1')
+ when='@2.0.0:2.0.999')
# for fcc
patch('1-1_fcc_tf_patch.patch', when='@2.1.0:2.1.99%fj')
@@ -523,8 +550,7 @@ class PyTensorflow(Package, CudaPackage):
# ])
# to not be nfs. This is only valid for Linux and we'd like to
# stay at least also OSX compatible
- tmp_path = '/tmp/spack/tf'
- mkdirp(tmp_path)
+ tmp_path = tempfile.mkdtemp(prefix='spack')
env.set('TEST_TMPDIR', tmp_path)
env.set('TF_SYSTEM_LIBS', 'com_google_protobuf')
@@ -533,11 +559,24 @@ class PyTensorflow(Package, CudaPackage):
env.set('INCLUDEDIR', spec['protobuf'].prefix.include)
def patch(self):
- if self.spec.satisfies('@2.3.0:2.3.1'):
+ if self.spec.satisfies('@2.3.0:'):
filter_file('deps = protodeps + well_known_proto_libs(),',
'deps = protodeps,',
'tensorflow/core/platform/default/build_config.bzl',
string=True)
+ if self.spec.satisfies('@2.4.0:'):
+ text = '''
+def protobuf_deps():
+ pass
+'''
+ with open('third_party/systemlibs/protobuf_deps.bzl', 'w') as f:
+ f.write(text)
+ filter_file(
+ '"//third_party/systemlibs:protobuf.bzl": "protobuf.bzl",',
+ '"//third_party/systemlibs:protobuf.bzl": "protobuf.bzl",\n'
+ '"//third_party/systemlibs:protobuf_deps.bzl": "protobuf_deps.bzl",', # noqa: E501
+ 'tensorflow/workspace.bzl',
+ string=True)
def configure(self, spec, prefix):
# NOTE: configure script is interactive. If you set the appropriate
@@ -633,7 +672,7 @@ class PyTensorflow(Package, CudaPackage):
'.tf_configure.bazelrc')
# see tensorflow issue #31187 on github
- if spec.satisfies('@2.0.0:2.0.1'):
+ if spec.satisfies('@2.0.0:2.0.999'):
filter_file(r'\#define RUY_DONOTUSEDIRECTLY_AVX512 1',
'#define RUY_DONOTUSEDIRECTLY_AVX512 0',
'tensorflow/lite/experimental/ruy/platform.h')
@@ -679,11 +718,14 @@ class PyTensorflow(Package, CudaPackage):
# Ask bazel to explain what it's up to
# Needs a filename as argument
'--explain=explainlogfile.txt',
- '--incompatible_no_support_tools_in_action_inputs=false',
# Increase verbosity of explanation,
'--verbose_explanations',
]
+ if spec.satisfies('^bazel@:3.5'):
+ # removed in bazel 3.6
+ args.append('--incompatible_no_support_tools_in_action_inputs=false')
+
# See .bazelrc for when each config flag is supported
if spec.satisfies('@1.12.1:'):
if '+mkl' in spec:
@@ -743,15 +785,21 @@ class PyTensorflow(Package, CudaPackage):
build_pip_package('--src', buildpath)
def install(self, spec, prefix):
+ tmp_path = env['TEST_TMPDIR']
buildpath = join_path(self.stage.source_path, 'spack-build')
with working_dir(buildpath):
setup_py('install', '--prefix={0}'.format(prefix),
'--single-version-externally-managed', '--root=/')
-
- @run_after('install')
- @on_package_attributes(run_tests=True)
- def import_module_test(self):
- with working_dir('spack-test', create=True):
- for module in self.import_modules:
- python('-c', 'import {0}'.format(module))
+ remove_linked_tree(tmp_path)
+
+ def test(self):
+ """Attempts to import modules of the installed package."""
+
+ # Make sure we are importing the installed modules,
+ # not the ones in the source directory
+ for module in self.import_modules:
+ self.run_test(self.spec['python'].command.path,
+ ['-c', 'import {0}'.format(module)],
+ purpose='checking import of {0}'.format(module),
+ work_dir='spack-test')
diff --git a/var/spack/repos/builtin/packages/py-termcolor/package.py b/var/spack/repos/builtin/packages/py-termcolor/package.py
index f6319e6dac..9bd6d5c0d6 100644
--- a/var/spack/repos/builtin/packages/py-termcolor/package.py
+++ b/var/spack/repos/builtin/packages/py-termcolor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,6 @@ from spack import *
class PyTermcolor(PythonPackage):
"""ANSII Color formatting for output in terminal."""
- homepage = "https://pypi.org/project/termcolor/"
- url = "https://pypi.io/packages/source/t/termcolor/termcolor-1.1.0.tar.gz"
+ pypi = "termcolor/termcolor-1.1.0.tar.gz"
version('1.1.0', sha256='1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b')
diff --git a/var/spack/repos/builtin/packages/py-terminado/package.py b/var/spack/repos/builtin/packages/py-terminado/package.py
index dc43118738..0e7c5c605b 100644
--- a/var/spack/repos/builtin/packages/py-terminado/package.py
+++ b/var/spack/repos/builtin/packages/py-terminado/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,7 @@
class PyTerminado(PythonPackage):
"""Terminals served to term.js using Tornado websockets"""
- homepage = "https://pypi.python.org/pypi/terminado"
- url = "https://pypi.io/packages/source/t/terminado/terminado-0.8.3.tar.gz"
+ pypi = "terminado/terminado-0.8.3.tar.gz"
version('0.8.3', sha256='4804a774f802306a7d9af7322193c5390f1da0abb429e082a10ef1d46e6fb2c2')
version('0.8.2', sha256='de08e141f83c3a0798b050ecb097ab6259c3f0331b2f7b7750c9075ced2c20c2')
diff --git a/var/spack/repos/builtin/packages/py-terminaltables/package.py b/var/spack/repos/builtin/packages/py-terminaltables/package.py
new file mode 100644
index 0000000000..d8f3308f42
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-terminaltables/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 PyTerminaltables(PythonPackage):
+ """Generate simple tables in terminals from a nested list of strings."""
+
+ homepage = "https://github.com/Robpol86/terminaltables"
+ pypi = "terminaltables/terminaltables-3.1.0.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('3.1.0', sha256='f3eb0eb92e3833972ac36796293ca0906e998dc3be91fbe1f8615b331b853b81')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-colorama', type=('build', 'run'))
+ depends_on('py-termcolor', type=('build', 'run'))
+ depends_on('py-colorclass', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-testfixtures/package.py b/var/spack/repos/builtin/packages/py-testfixtures/package.py
new file mode 100644
index 0000000000..8e70a3657a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-testfixtures/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyTestfixtures(PythonPackage):
+ """Testfixtures is a collection of helpers and mock objects that are useful
+ when writing automated tests in Python."""
+
+ homepage = "https://github.com/Simplistix/testfixtures"
+ url = "https://github.com/Simplistix/testfixtures/archive/6.16.0.zip"
+
+ version('6.16.0', sha256='6b5bbca4f7d5692ca4566c60c0383b121d9f1cfecbc3de8442c499a63c264eb8')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-testinfra/package.py b/var/spack/repos/builtin/packages/py-testinfra/package.py
index 40e7cd440c..ffee23c864 100644
--- a/var/spack/repos/builtin/packages/py-testinfra/package.py
+++ b/var/spack/repos/builtin/packages/py-testinfra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyTestinfra(PythonPackage):
Chef and so on."""
homepage = "https://testinfra.readthedocs.io"
- url = "https://pypi.io/packages/source/t/testinfra/testinfra-1.11.1.tar.gz"
+ pypi = "testinfra/testinfra-1.11.1.tar.gz"
version('1.18.0', sha256='4a0a70355b007729d78446c86bffd80bcea4ffe9adc9571f9c9779476c49153d')
version('1.13.0', sha256='b5afa23d71ee49ad81aed104e4a0f1c02819ef791291cd308fe27aa7f3d3b01f')
diff --git a/var/spack/repos/builtin/packages/py-testpath/package.py b/var/spack/repos/builtin/packages/py-testpath/package.py
index 717f63dc6b..f5f8cd4a3a 100644
--- a/var/spack/repos/builtin/packages/py-testpath/package.py
+++ b/var/spack/repos/builtin/packages/py-testpath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,6 @@ class PyTestpath(PythonPackage):
files and commands."""
homepage = "https://github.com/jupyter/testpath"
- url = "https://pypi.io/packages/source/t/testpath/testpath-0.4.2.tar.gz"
+ pypi = "testpath/testpath-0.4.2.tar.gz"
version('0.4.2', sha256='b694b3d9288dbd81685c5d2e7140b81365d46c29f5db4bc659de5aa6b98780f8')
diff --git a/var/spack/repos/builtin/packages/py-testrepository/package.py b/var/spack/repos/builtin/packages/py-testrepository/package.py
index 881191bc3f..c8d7806b0a 100644
--- a/var/spack/repos/builtin/packages/py-testrepository/package.py
+++ b/var/spack/repos/builtin/packages/py-testrepository/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,7 @@ class PyTestrepository(PythonPackage):
"""A repository of test results."""
homepage = "https://launchpad.net/testrepository"
- url = "https://pypi.io/packages/source/t/testrepository/testrepository-0.0.20.tar.gz"
-
- import_modules = [
- 'testrepository', 'testrepository.arguments',
- 'testrepository.commands', 'testrepository.repository',
- 'testrepository.tests', 'testrepository.tests.arguments',
- 'testrepository.tests.commands', 'testrepository.tests.repository',
- 'testrepository.tests.ui', 'testrepository.ui',
- ]
+ pypi = "testrepository/testrepository-0.0.20.tar.gz"
version('0.0.20', sha256='752449bc98c20253ec4611c40564aea93d435a5bf3ff672208e01cc10e5858eb')
diff --git a/var/spack/repos/builtin/packages/py-testresources/package.py b/var/spack/repos/builtin/packages/py-testresources/package.py
index 4468655863..563f62087b 100644
--- a/var/spack/repos/builtin/packages/py-testresources/package.py
+++ b/var/spack/repos/builtin/packages/py-testresources/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyTestresources(PythonPackage):
"""
homepage = "https://launchpad.net/testresources"
- url = "https://pypi.io/packages/source/t/testresources/testresources-2.0.1.tar.gz"
+ pypi = "testresources/testresources-2.0.1.tar.gz"
version('2.0.1', sha256='ee9d1982154a1e212d4e4bac6b610800bfb558e4fb853572a827bc14a96e4417')
diff --git a/var/spack/repos/builtin/packages/py-testscenarios/package.py b/var/spack/repos/builtin/packages/py-testscenarios/package.py
index 0dc8a07d46..a528aea218 100644
--- a/var/spack/repos/builtin/packages/py-testscenarios/package.py
+++ b/var/spack/repos/builtin/packages/py-testscenarios/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyTestscenarios(PythonPackage):
"""Testscenarios, a pyunit extension for dependency injection"""
homepage = "https://launchpad.net/testscenarios"
- url = "https://pypi.io/packages/source/t/testscenarios/testscenarios-0.5.0.tar.gz"
+ pypi = "testscenarios/testscenarios-0.5.0.tar.gz"
version('0.5.0', sha256='c257cb6b90ea7e6f8fef3158121d430543412c9a87df30b5dde6ec8b9b57a2b6')
diff --git a/var/spack/repos/builtin/packages/py-testtools/package.py b/var/spack/repos/builtin/packages/py-testtools/package.py
index 11a59423ec..161f61ab08 100644
--- a/var/spack/repos/builtin/packages/py-testtools/package.py
+++ b/var/spack/repos/builtin/packages/py-testtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyTesttools(PythonPackage):
"""Extensions to the Python standard library unit testing framework."""
homepage = "https://github.com/testing-cabal/testtools"
- url = "https://pypi.io/packages/source/t/testtools/testtools-2.3.0.tar.gz"
+ pypi = "testtools/testtools-2.3.0.tar.gz"
version('2.3.0', sha256='5827ec6cf8233e0f29f51025addd713ca010061204fdea77484a2934690a0559')
diff --git a/var/spack/repos/builtin/packages/py-tetoolkit/package.py b/var/spack/repos/builtin/packages/py-tetoolkit/package.py
index de755e15f3..c2c236d256 100644
--- a/var/spack/repos/builtin/packages/py-tetoolkit/package.py
+++ b/var/spack/repos/builtin/packages/py-tetoolkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyTetoolkit(PythonPackage):
experiments."""
homepage = "http://hammelllab.labsites.cshl.edu/software"
- url = "https://pypi.io/packages/source/T/TEToolkit/TEToolkit-1.5.1.tar.gz"
+ pypi = "TEToolkit/TEToolkit-1.5.1.tar.gz"
version('2.0.3', sha256='1d0f5928b30c6cd9dbef8e092ae0c11e9e707faf92a19af8eed3e360da7d4e46')
version('1.5.1', sha256='22c13ca45bccc89e9d9bf48d59ae6db1fa4c634def64fc56ba9bffd23aa689ac')
diff --git a/var/spack/repos/builtin/packages/py-text-unidecode/package.py b/var/spack/repos/builtin/packages/py-text-unidecode/package.py
index 768b8a3dd8..c665919190 100644
--- a/var/spack/repos/builtin/packages/py-text-unidecode/package.py
+++ b/var/spack/repos/builtin/packages/py-text-unidecode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyTextUnidecode(PythonPackage):
library."""
homepage = "https://github.com/kmike/text-unidecode/"
- url = "https://pypi.io/packages/source/t/text-unidecode/text-unidecode-1.3.tar.gz"
+ pypi = "text-unidecode/text-unidecode-1.3.tar.gz"
version('1.3', sha256='bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93')
diff --git a/var/spack/repos/builtin/packages/py-textblob/package.py b/var/spack/repos/builtin/packages/py-textblob/package.py
index 57784919e6..ead172d44d 100644
--- a/var/spack/repos/builtin/packages/py-textblob/package.py
+++ b/var/spack/repos/builtin/packages/py-textblob/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-texttable/package.py b/var/spack/repos/builtin/packages/py-texttable/package.py
index 1aec6a03f6..61a442f888 100644
--- a/var/spack/repos/builtin/packages/py-texttable/package.py
+++ b/var/spack/repos/builtin/packages/py-texttable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyTexttable(PythonPackage):
"""Python module for creating simple ASCII tables."""
homepage = "https://github.com/foutaise/texttable/"
- url = "https://pypi.io/packages/source/t/texttable/texttable-1.6.1.tar.gz"
+ pypi = "texttable/texttable-1.6.1.tar.gz"
version('1.6.1', sha256='2b60a5304ccfbeac80ffae7350d7c2f5d7a24e9aab5036d0f82489746419d9b2')
diff --git a/var/spack/repos/builtin/packages/py-tfdlpack/package.py b/var/spack/repos/builtin/packages/py-tfdlpack/package.py
index 678cc2d6db..ce0771a5f4 100644
--- a/var/spack/repos/builtin/packages/py-tfdlpack/package.py
+++ b/var/spack/repos/builtin/packages/py-tfdlpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-theano/package.py b/var/spack/repos/builtin/packages/py-theano/package.py
index c7c95fd0e3..5d62a8f136 100644
--- a/var/spack/repos/builtin/packages/py-theano/package.py
+++ b/var/spack/repos/builtin/packages/py-theano/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyTheano(PythonPackage, CudaPackage):
"""Optimizing compiler for evaluating mathematical expressions on CPUs
and GPUs."""
- homepage = "http://deeplearning.net/software/theano/"
- url = "https://pypi.io/packages/source/T/Theano/Theano-0.8.2.tar.gz"
+ homepage = "https://theano-pymc.readthedocs.io/en/latest/"
+ pypi = "Theano/Theano-0.8.2.tar.gz"
git = "https://github.com/Theano/Theano.git"
version('master', branch='master')
@@ -33,7 +33,3 @@ class PyTheano(PythonPackage, CudaPackage):
depends_on('cudnn', when='+cuda')
depends_on('py-pygpu', when='+cuda', type=('build', 'run'))
depends_on('libgpuarray', when='+cuda')
-
- depends_on('py-nose@1.3.0:', type='test')
- depends_on('py-parameterized', type='test')
- depends_on('py-flake8', type='test')
diff --git a/var/spack/repos/builtin/packages/py-thinc/package.py b/var/spack/repos/builtin/packages/py-thinc/package.py
index 8976478000..051833128b 100644
--- a/var/spack/repos/builtin/packages/py-thinc/package.py
+++ b/var/spack/repos/builtin/packages/py-thinc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyThinc(PythonPackage):
"""Thinc: Practical Machine Learning for NLP in Python."""
homepage = "https://github.com/explosion/thinc"
- url = "https://pypi.io/packages/source/t/thinc/thinc-7.4.1.tar.gz"
+ pypi = "thinc/thinc-7.4.1.tar.gz"
version('7.4.1', sha256='0139fa84dc9b8d88af15e648fc4ae13d899b8b5e49cb26a8f4a0604ee9ad8a9e')
version('7.4.0', sha256='523e9be1bfaa3ed1d03d406ce451b6b4793a9719d5b83d2ea6b3398b96bc58b8')
@@ -25,6 +25,3 @@ class PyThinc(PythonPackage):
depends_on('py-plac@0.9.6:1.1', type=('build', 'run'))
depends_on('py-tqdm@4.10:4.999', type=('build', 'run'))
depends_on('py-pathlib@1.0.1', when='^python@:3.3', type=('build', 'run'))
- depends_on('py-pytest', type='test')
- depends_on('py-mock', type='test')
- depends_on('py-hypothesis', type='test')
diff --git a/var/spack/repos/builtin/packages/py-thirdorder/package.py b/var/spack/repos/builtin/packages/py-thirdorder/package.py
index 66b01f0d88..4b77d2d3cd 100644
--- a/var/spack/repos/builtin/packages/py-thirdorder/package.py
+++ b/var/spack/repos/builtin/packages/py-thirdorder/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyThirdorder(PythonPackage):
"""It helps ShengBTE users create FORCE_CONSTANTS_3RD files efficiently"""
- homepage = "http://www.shengbte.org"
+ homepage = "https://www.shengbte.org"
url = "http://www.shengbte.org/downloads/thirdorder-v1.1.1-8526f47.tar.bz2"
version('1.1.1-8526f47', '5e1cc8d6ffa7efdb7325c397ca236863ea8a9c5bed1c558acca68b140f89167e')
diff --git a/var/spack/repos/builtin/packages/py-threadpoolctl/package.py b/var/spack/repos/builtin/packages/py-threadpoolctl/package.py
index f28c9a37b5..3f93c470a9 100644
--- a/var/spack/repos/builtin/packages/py-threadpoolctl/package.py
+++ b/var/spack/repos/builtin/packages/py-threadpoolctl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyThreadpoolctl(PythonPackage):
computing and data science (e.g. BLAS and OpenMP)."""
homepage = "https://github.com/joblib/threadpoolctl"
- url = "https://pypi.io/packages/source/t/threadpoolctl/threadpoolctl-2.0.0.tar.gz"
-
- import_modules = ['threadpoolctl']
+ pypi = "threadpoolctl/threadpoolctl-2.0.0.tar.gz"
version('2.0.0', sha256='48b3e3e9ee079d6b5295c65cbe255b36a3026afc6dde3fb49c085cd0c004bbcf')
diff --git a/var/spack/repos/builtin/packages/py-tifffile/package.py b/var/spack/repos/builtin/packages/py-tifffile/package.py
index 905718ec89..fdbfd27233 100644
--- a/var/spack/repos/builtin/packages/py-tifffile/package.py
+++ b/var/spack/repos/builtin/packages/py-tifffile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyTifffile(PythonPackage):
"""Read and write image data from and to TIFF files."""
homepage = "https://github.com/blink1073/tifffile"
- url = "https://pypi.io/packages/source/t/tifffile/tifffile-0.12.1.tar.gz"
-
- import_modules = ['tifffile']
+ pypi = "tifffile/tifffile-0.12.1.tar.gz"
version('2020.10.1', sha256='799feeccc91965b69e1288c51a1d1118faec7f40b2eb89ad2979591b85324830')
version('0.12.1', sha256='802367effe86b0d1e64cb5c2ed886771f677fa63260b945e51a27acccdc08fa1')
diff --git a/var/spack/repos/builtin/packages/py-timm/package.py b/var/spack/repos/builtin/packages/py-timm/package.py
new file mode 100644
index 0000000000..3799ca3aea
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-timm/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyTimm(PythonPackage):
+ """(Unofficial) PyTorch Image Models."""
+
+ homepage = "https://github.com/rwightman/pytorch-image-models"
+ pypi = "timm/timm-0.4.12.tar.gz"
+
+ version('0.4.12', sha256='b14be70dbd4528b5ca8657cf5bc2672c7918c3d9ebfbffe80f4785b54e884b1e')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-torch@1.4:', type=('build', 'run'))
+ depends_on('py-torchvision', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-tinyarray/package.py b/var/spack/repos/builtin/packages/py-tinyarray/package.py
index 6c6bb9b154..00a1cb01af 100644
--- a/var/spack/repos/builtin/packages/py-tinyarray/package.py
+++ b/var/spack/repos/builtin/packages/py-tinyarray/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-tokenizers/package.py b/var/spack/repos/builtin/packages/py-tokenizers/package.py
index 20de8c9141..5242d2ac97 100644
--- a/var/spack/repos/builtin/packages/py-tokenizers/package.py
+++ b/var/spack/repos/builtin/packages/py-tokenizers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyTokenizers(PythonPackage):
"""Fast and Customizable Tokenizers."""
homepage = "https://github.com/huggingface/tokenizers"
- url = "https://pypi.io/packages/source/t/tokenizers/tokenizers-0.6.0.tar.gz"
+ pypi = "tokenizers/tokenizers-0.6.0.tar.gz"
version('0.6.0', sha256='1da11fbfb4f73be695bed0d655576097d09a137a16dceab2f66399716afaffac')
version('0.5.2', sha256='b5a235f9c71d04d4925df6c4fa13b13f1d03f9b7ac302b89f8120790c4f742bc')
diff --git a/var/spack/repos/builtin/packages/py-toml/package.py b/var/spack/repos/builtin/packages/py-toml/package.py
index baccd323ef..3e75d2d946 100644
--- a/var/spack/repos/builtin/packages/py-toml/package.py
+++ b/var/spack/repos/builtin/packages/py-toml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,12 +12,11 @@ class PyToml(PythonPackage):
https://github.com/toml-lang/toml.git"""
homepage = "https://github.com/uiri/toml.git"
- url = "https://github.com/uiri/toml/archive/0.9.3.tar.gz"
+ url = "https://github.com/uiri/toml/archive/0.10.2.tar.gz"
+ version('0.10.2', sha256='71d4039bbdec91e3e7591ec5d6c943c58f9a2d17e5f6783acdc378f743fcdd2a')
version('0.10.0', sha256='c3821b94be15da61d631bfff45b5c58074f01149792182e68f8690829cabfcf6')
version('0.9.3', sha256='633a90ecb1f5665b58f0c94153fcf519313ef53e1de0eac90929cd6b6a014235')
depends_on('py-setuptools', type='build')
depends_on('python@2.6:2.8,3.3:', type=('build', 'run'))
-
- phases = ['build', 'check', 'install']
diff --git a/var/spack/repos/builtin/packages/py-tomli/package.py b/var/spack/repos/builtin/packages/py-tomli/package.py
new file mode 100644
index 0000000000..914e2098a5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-tomli/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyTomli(Package):
+ """Tomli is a Python library for parsing TOML.
+
+ Tomli is fully compatible with TOML v1.0.0."""
+
+ homepage = "https://github.com/hukkin/tomli"
+ url = "https://pypi.io/packages/py3/t/tomli/tomli-1.2.1-py3-none-any.whl"
+
+ version('1.2.1', sha256='8dd0e9524d6f386271a36b41dbf6c57d8e32fd96fd22b6584679dc569d20899f', expand=False)
+
+ extends('python')
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-pip', type='build')
+
+ def install(self, spec, prefix):
+ # TODO: figure out how to build with flit
+ pip = which('pip')
+ pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-tomlkit/package.py b/var/spack/repos/builtin/packages/py-tomlkit/package.py
index c534d7521c..b5614bb648 100644
--- a/var/spack/repos/builtin/packages/py-tomlkit/package.py
+++ b/var/spack/repos/builtin/packages/py-tomlkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyTomlkit(PythonPackage):
"""Style preserving TOML library"""
homepage = "https://github.com/sdispater/tomlkit"
- url = "https://pypi.io/packages/source/t/tomlkit/tomlkit-0.7.0.tar.gz"
+ pypi = "tomlkit/tomlkit-0.7.0.tar.gz"
version('0.7.0', sha256='ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618')
diff --git a/var/spack/repos/builtin/packages/py-tomopy/package.py b/var/spack/repos/builtin/packages/py-tomopy/package.py
index 0b7f814775..4eac916511 100644
--- a/var/spack/repos/builtin/packages/py-tomopy/package.py
+++ b/var/spack/repos/builtin/packages/py-tomopy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,14 +11,9 @@ class PyTomopy(PythonPackage):
"""TomoPy is an open-source Python package for tomographic data
processing and image reconstruction."""
- homepage = "http://tomopy.readthedocs.io/en/latest/index.html"
+ homepage = "https://tomopy.readthedocs.io/en/latest/index.html"
url = "https://github.com/tomopy/tomopy/archive/1.0.0.tar.gz"
- import_modules = [
- 'tomopy', 'doc', 'tomopy.util', 'tomopy.sim', 'tomopy.recon',
- 'tomopy.prep', 'tomopy.misc', 'tomopy.io', 'doc.demo'
- ]
-
version('1.0.0', sha256='ee45f7a062e5a66d6f18a904d2e204e48d85a1ce1464156f9e2f6353057dfe4c')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-toolz/package.py b/var/spack/repos/builtin/packages/py-toolz/package.py
index 058d1a9283..68b31ae463 100644
--- a/var/spack/repos/builtin/packages/py-toolz/package.py
+++ b/var/spack/repos/builtin/packages/py-toolz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,10 +9,8 @@ from spack import *
class PyToolz(PythonPackage):
"""A set of utility functions for iterators, functions, and dictionaries"""
- homepage = "http://github.com/pytoolz/toolz/"
- url = "https://pypi.io/packages/source/t/toolz/toolz-0.9.0.tar.gz"
-
- import_modules = ['toolz', 'tlz', 'toolz.curried', 'toolz.sandbox']
+ homepage = "https://github.com/pytoolz/toolz/"
+ pypi = "toolz/toolz-0.9.0.tar.gz"
version('0.9.0', sha256='929f0a7ea7f61c178bd951bdae93920515d3fbdbafc8e6caf82d752b9b3b31c9')
diff --git a/var/spack/repos/builtin/packages/py-torch-cluster/package.py b/var/spack/repos/builtin/packages/py-torch-cluster/package.py
index 4d59fce476..d3c965f797 100644
--- a/var/spack/repos/builtin/packages/py-torch-cluster/package.py
+++ b/var/spack/repos/builtin/packages/py-torch-cluster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class PyTorchCluster(PythonPackage):
homepage = "https://github.com/rusty1s/pytorch_cluster"
url = "https://github.com/rusty1s/pytorch_cluster/archive/1.5.7.tar.gz"
+ version('1.5.8', sha256='95c6e81e9c4a6235e1b2152ab917021d2060ad995199f6bd7fb39986d37310f0')
version('1.5.7', sha256='71701d2f7f3e458ebe5904c982951349fdb60e6f1654e19c7e102a226e2de72e')
variant('cuda', default=False, description='Enables CUDA support')
diff --git a/var/spack/repos/builtin/packages/py-torch-geometric/package.py b/var/spack/repos/builtin/packages/py-torch-geometric/package.py
index a8fc7ed366..95fd361020 100644
--- a/var/spack/repos/builtin/packages/py-torch-geometric/package.py
+++ b/var/spack/repos/builtin/packages/py-torch-geometric/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,6 +18,7 @@ class PyTorchGeometric(PythonPackage):
homepage = "https://github.com/rusty1s/pytorch_geometric"
url = "https://github.com/rusty1s/pytorch_geometric/archive/1.6.0.tar.gz"
+ version('1.6.3', sha256='1907c0f5eb7ab8f6f79a7e43703579b39b514501dd956ed0fc3d33210bcbb4c2')
version('1.6.0', sha256='7d5231cdcc2ebd4444f406cbf1537eb49bf90ab6f446eaf1b7af5cdbe105f3c9')
variant('cuda', default=False, description="Enable CUDA support")
@@ -32,6 +33,7 @@ class PyTorchGeometric(PythonPackage):
depends_on('py-networkx', type=('build', 'run'))
depends_on('py-scikit-learn', type=('build', 'run'))
depends_on('py-numba', type=('build', 'run'))
+ depends_on('py-python-louvain', type=('build', 'run'), when='@1.6.2:')
depends_on('py-requests', type=('build', 'run'))
depends_on('py-pandas', type=('build', 'run'))
depends_on('py-rdflib', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-torch-nvidia-apex/package.py b/var/spack/repos/builtin/packages/py-torch-nvidia-apex/package.py
index 1ba461b5fb..af6666b6c8 100644
--- a/var/spack/repos/builtin/packages/py-torch-nvidia-apex/package.py
+++ b/var/spack/repos/builtin/packages/py-torch-nvidia-apex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-torch-scatter/package.py b/var/spack/repos/builtin/packages/py-torch-scatter/package.py
index 7950abb7b9..b2c84d4969 100644
--- a/var/spack/repos/builtin/packages/py-torch-scatter/package.py
+++ b/var/spack/repos/builtin/packages/py-torch-scatter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-torch-sparse/package.py b/var/spack/repos/builtin/packages/py-torch-sparse/package.py
index 4c16b1d8a7..28d20685a1 100644
--- a/var/spack/repos/builtin/packages/py-torch-sparse/package.py
+++ b/var/spack/repos/builtin/packages/py-torch-sparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,7 @@ class PyTorchSparse(PythonPackage):
homepage = "https://github.com/rusty1s/pytorch_sparse/"
url = "https://github.com/rusty1s/pytorch_sparse/archive/0.6.7.tar.gz"
+ version('0.6.8', sha256='98f7ff1f0f9cd5031bc81c70c11970c3864545ae33677025a6efd2466a97e6f9')
version('0.6.7', sha256='0d038a1502548692972a085cd0496460b5d2050bb7328427add990f081d6c44d')
variant('cuda', default=False, description="Enable CUDA support")
diff --git a/var/spack/repos/builtin/packages/py-torch-spline-conv/package.py b/var/spack/repos/builtin/packages/py-torch-spline-conv/package.py
index 5806f3e958..ad3489686d 100644
--- a/var/spack/repos/builtin/packages/py-torch-spline-conv/package.py
+++ b/var/spack/repos/builtin/packages/py-torch-spline-conv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-torch/cusparseGetErrorString.patch b/var/spack/repos/builtin/packages/py-torch/cusparseGetErrorString.patch
new file mode 100644
index 0000000000..9cb136b3f8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-torch/cusparseGetErrorString.patch
@@ -0,0 +1,53 @@
+diff --git a/aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu b/aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu
+index 1cee04c200..f46003d9a9 100644
+--- a/aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu
++++ b/aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu
+@@ -10,48 +10,6 @@
+ namespace at { namespace native { namespace sparse { namespace cuda {
+
+
+-std::string cusparseGetErrorString(cusparseStatus_t status) {
+- switch(status)
+- {
+- case CUSPARSE_STATUS_SUCCESS:
+- return "success";
+-
+- case CUSPARSE_STATUS_NOT_INITIALIZED:
+- return "library not initialized";
+-
+- case CUSPARSE_STATUS_ALLOC_FAILED:
+- return "resource allocation failed";
+-
+- case CUSPARSE_STATUS_INVALID_VALUE:
+- return "an invalid numeric value was used as an argument";
+-
+- case CUSPARSE_STATUS_ARCH_MISMATCH:
+- return "an absent device architectural feature is required";
+-
+- case CUSPARSE_STATUS_MAPPING_ERROR:
+- return "an access to GPU memory space failed";
+-
+- case CUSPARSE_STATUS_EXECUTION_FAILED:
+- return "the GPU program failed to execute";
+-
+- case CUSPARSE_STATUS_INTERNAL_ERROR:
+- return "an internal operation failed";
+-
+- case CUSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED:
+- return "the matrix type is not supported by this function";
+-
+- case CUSPARSE_STATUS_ZERO_PIVOT:
+- return "an entry of the matrix is either structural zero or numerical zero (singular block)";
+-
+- default:
+- {
+- std::ostringstream oss;
+- oss << "unknown error " << static_cast<int64_t>(status);
+- return oss.str();
+- }
+- }
+-}
+-
+ inline void CUSPARSE_CHECK(cusparseStatus_t status)
+ {
+ if (status != CUSPARSE_STATUS_SUCCESS) {
diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py
index 41393899e3..487a619f20 100644
--- a/var/spack/repos/builtin/packages/py-torch/package.py
+++ b/var/spack/repos/builtin/packages/py-torch/package.py
@@ -1,10 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+
+from spack import *
class PyTorch(PythonPackage, CudaPackage):
@@ -13,50 +15,25 @@ class PyTorch(PythonPackage, CudaPackage):
homepage = "https://pytorch.org/"
git = "https://github.com/pytorch/pytorch.git"
- install_time_test_callbacks = ['install_test', 'import_module_test']
maintainers = ['adamjstewart']
- import_modules = [
- 'tools', 'caffe2', 'torch', 'tools.cwrap', 'tools.autograd',
- 'tools.setup_helpers', 'tools.shared', 'tools.jit', 'tools.pyi',
- 'tools.nnwrap', 'tools.cwrap.plugins', 'caffe2.core', 'caffe2.proto',
- 'caffe2.python', 'caffe2.distributed', 'caffe2.perfkernels',
- 'caffe2.experiments', 'caffe2.contrib', 'caffe2.quantization',
- 'caffe2.core.nomnigraph', 'caffe2.python.ideep', 'caffe2.python.mint',
- 'caffe2.python.layers', 'caffe2.python.onnx', 'caffe2.python.trt',
- 'caffe2.python.models', 'caffe2.python.docs', 'caffe2.python.modeling',
- 'caffe2.python.mkl', 'caffe2.python.examples',
- 'caffe2.python.predictor', 'caffe2.python.helpers',
- 'caffe2.python.rnn', 'caffe2.python.onnx.bin',
- 'caffe2.python.models.seq2seq', 'caffe2.experiments.python',
- 'caffe2.contrib.nnpack', 'caffe2.contrib.warpctc',
- 'caffe2.contrib.nccl', 'caffe2.contrib.playground',
- 'caffe2.contrib.gloo', 'caffe2.contrib.script', 'caffe2.contrib.prof',
- 'caffe2.contrib.tensorboard', 'caffe2.contrib.aten',
- 'caffe2.contrib.playground.resnetdemo',
- 'caffe2.contrib.script.examples', 'caffe2.contrib.aten.docs',
- 'caffe2.quantization.server', 'torch.nn', 'torch.onnx',
- 'torch.distributed', 'torch.autograd', 'torch.multiprocessing',
- 'torch.cuda', 'torch.backends', 'torch.optim', 'torch.utils',
- 'torch.contrib', 'torch.jit', 'torch.sparse',
- 'torch.for_onnx', 'torch._thnn', 'torch.distributions',
- 'torch.nn.parallel', 'torch.nn._functions', 'torch.nn.backends',
- 'torch.nn.utils', 'torch.nn.modules', 'torch.nn.parallel.deprecated',
- 'torch.nn._functions.thnn', 'torch.distributed.deprecated',
- 'torch.autograd._functions', 'torch.backends.cuda',
- 'torch.backends.mkl', 'torch.backends.mkldnn', 'torch.backends.openmp',
- 'torch.backends.cudnn', 'torch.utils.backcompat',
- 'torch.utils.bottleneck', 'torch.utils.ffi', 'torch.utils.tensorboard',
- 'torch.utils.data', 'torch.utils.data._utils'
- ]
+
+ # Exact set of modules is version- and variant-specific, just attempt to import the
+ # core libraries to ensure that the package was successfully installed.
+ import_modules = ['torch', 'torch.autograd', 'torch.nn', 'torch.utils']
version('master', branch='master', submodules=True)
+ version('1.9.0', tag='v1.9.0', submodules=True)
+ version('1.8.2', tag='v1.8.2', submodules=True)
+ version('1.8.1', tag='v1.8.1', submodules=True)
+ version('1.8.0', tag='v1.8.0', submodules=True)
+ version('1.7.1', tag='v1.7.1', submodules=True)
version('1.7.0', tag='v1.7.0', submodules=True)
version('1.6.0', tag='v1.6.0', submodules=True)
version('1.5.1', tag='v1.5.1', submodules=True)
version('1.5.0', tag='v1.5.0', submodules=True)
version('1.4.1', tag='v1.4.1', submodules=True)
- version('1.4.0', tag='v1.4.0', submodules=True,
+ version('1.4.0', tag='v1.4.0', submodules=True, deprecated=True,
submodules_delete=['third_party/fbgemm'])
version('1.3.1', tag='v1.3.1', submodules=True)
version('1.3.0', tag='v1.3.0', submodules=True)
@@ -64,134 +41,185 @@ class PyTorch(PythonPackage, CudaPackage):
version('1.1.0', tag='v1.1.0', submodules=True)
version('1.0.1', tag='v1.0.1', submodules=True)
version('1.0.0', tag='v1.0.0', submodules=True)
- version('0.4.1', tag='v0.4.1', submodules=True,
+ version('0.4.1', tag='v0.4.1', submodules=True, deprecated=True,
submodules_delete=['third_party/nervanagpu'])
- version('0.4.0', tag='v0.4.0', submodules=True)
- version('0.3.1', tag='v0.3.1', submodules=True)
-
- 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')
- variant('miopen', default=False, description='Enables the MIOpen build')
- variant('mkldnn', default=True, description='Enables use of MKLDNN')
- variant('nnpack', default=False, description='Enables NNPACK build')
- variant('qnnpack', default=False, description='Enables QNNPACK build (quantized 8-bit operators)')
- variant('xnnpack', default=False, description='Enables XNNPACK build')
- variant('distributed', default=False, description='Enables distributed (c10d, gloo, mpi, etc.) build')
- variant('nccl', default=True, description='Use Spack-installed NCCL')
- variant('caffe2', default=False, description='Enables Caffe2 operators build')
- variant('gloo', default=False, description='Enables features related to distributed support')
- variant('opencv', default=False, description='Enables use of OpenCV for additional operators')
- variant('openmp', default=True, description='Enables use of OpenMP for parallelization')
- variant('ffmpeg', default=False, description='Enables use of ffmpeg for additional operators')
- variant('leveldb', default=False, description='Enables use of LevelDB for storage')
- variant('lmdb', default=False, description='Enables use of LMDB for storage')
- variant('binary', default=False, description='Enables the additional binaries/ build')
- variant('redis', default=False, description='Use Redis for distributed workflows')
- variant('zstd', default=False, description='Enables use of ZSTD')
- variant('tbb', default=False, description='Enables TBB support')
-
+ version('0.4.0', tag='v0.4.0', submodules=True, deprecated=True)
+ version('0.3.1', tag='v0.3.1', submodules=True, deprecated=True)
+
+ is_darwin = sys.platform == 'darwin'
+
+ # All options are defined in CMakeLists.txt.
+ # Some are listed in setup.py, but not all.
+ variant('caffe2', default=True, description='Build Caffe2')
+ variant('test', default=False, description='Build C++ test binaries')
+ variant('cuda', default=not is_darwin, description='Use CUDA')
+ variant('rocm', default=False, description='Use ROCm')
+ variant('cudnn', default=not is_darwin, description='Use cuDNN')
+ variant('fbgemm', default=True, description='Use FBGEMM (quantized 8-bit server operators)')
+ variant('kineto', default=True, description='Use Kineto profiling library')
+ variant('magma', default=not is_darwin, description='Use MAGMA')
+ variant('metal', default=is_darwin, description='Use Metal for Caffe2 iOS build')
+ variant('nccl', default=not is_darwin, description='Use NCCL')
+ variant('nnpack', default=True, description='Use NNPACK')
+ variant('numa', default=not is_darwin, description='Use NUMA')
+ variant('numpy', default=True, description='Use NumPy')
+ variant('openmp', default=True, description='Use OpenMP for parallel code')
+ variant('qnnpack', default=True, description='Use QNNPACK (quantized 8-bit operators)')
+ variant('valgrind', default=not is_darwin, description='Use Valgrind')
+ variant('xnnpack', default=True, description='Use XNNPACK')
+ variant('mkldnn', default=True, description='Use MKLDNN')
+ variant('distributed', default=not is_darwin, description='Use distributed')
+ variant('mpi', default=not is_darwin, description='Use MPI for Caffe2')
+ variant('gloo', default=not is_darwin, description='Use Gloo')
+ variant('tensorpipe', default=not is_darwin, description='Use TensorPipe')
+ variant('onnx_ml', default=True, description='Enable traditional ONNX ML API')
+
+ conflicts('+cuda', when='+rocm')
conflicts('+cudnn', when='~cuda')
conflicts('+magma', when='~cuda')
- conflicts('+fbgemm', when='@:0.4')
- conflicts('+miopen', when='@:0.4')
- conflicts('+mkldnn', when='@:0.3')
- conflicts('+qnnpack', when='@:0.4')
- conflicts('+xnnpack', when='@:1.4')
- conflicts('+nccl', when='~cuda')
- conflicts('+opencv', when='@:0.4')
- conflicts('+ffmpeg', when='@:0.4')
- conflicts('+leveldb', when='@:0.4')
- conflicts('+lmdb', when='@:0.4')
- conflicts('+binary', when='@:0.4')
- conflicts('+redis', when='@:1.0')
- conflicts('+zstd', when='@:1.0')
- conflicts('+tbb', when='@:1.1')
- # https://github.com/pytorch/pytorch/issues/35149
- conflicts('+fbgemm', when='@1.4.0')
+ conflicts('+nccl', when='~cuda~rocm')
+ conflicts('+nccl', when='platform=darwin')
+ conflicts('+numa', when='platform=darwin', msg='Only available on Linux')
+ conflicts('+valgrind', when='platform=darwin', msg='Only available on Linux')
+ conflicts('+mpi', when='~distributed')
+ conflicts('+gloo', when='~distributed')
+ conflicts('+tensorpipe', when='~distributed')
+ conflicts('+kineto', when='@:1.7.999')
+ conflicts('+valgrind', when='@:1.7.999')
+ conflicts('~caffe2', when='@0.4.0:1.6.999') # no way to disable caffe2?
+ conflicts('+caffe2', when='@:0.3.1') # caffe2 did not yet exist?
+ conflicts('+tensorpipe', when='@:1.5.999')
+ conflicts('+xnnpack', when='@:1.4.999')
+ conflicts('~onnx_ml', when='@:1.4.999') # no way to disable ONNX?
+ conflicts('+rocm', when='@:0.4.999')
+ conflicts('+cudnn', when='@:0.4.999')
+ conflicts('+fbgemm', when='@:0.4.999,1.4.0')
+ conflicts('+qnnpack', when='@:0.4.999')
+ conflicts('+mkldnn', when='@:0.4.999')
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')
- # Use Ninja generator to speed up build times
- # Automatically used if found
- depends_on('ninja@1.5:', type='build')
- depends_on('python@3.6.1:', when='@1.6:', type=('build', 'run'))
- depends_on('python@3.5:', when='@1.5:', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ # Use Ninja generator to speed up build times, automatically used if found
+ depends_on('ninja@1.5:', when='@1.1.0:', type='build')
+ # See python_min_version in setup.py
+ depends_on('python@3.6.2:', when='@1.7.1:', type=('build', 'link', 'run'))
+ depends_on('python@3.6.1:', when='@1.6.0:1.7.0', type=('build', 'link', 'run'))
+ depends_on('python@3.5:', when='@1.5.0:1.5.999', type=('build', 'link', 'run'))
+ depends_on('python@2.7:2.8,3.5:', when='@1.4.0:1.4.999', type=('build', 'link', 'run'))
+ depends_on('python@2.7:2.8,3.5:3.7.999', when='@:1.3.999', type=('build', 'link', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-numpy', type=('build', 'run'))
depends_on('py-future', when='@1.5:', type=('build', 'run'))
depends_on('py-future', when='@1.1: ^python@:2', type=('build', 'run'))
depends_on('py-pyyaml', type=('build', 'run'))
depends_on('py-typing', when='@0.4: ^python@:3.4', type=('build', 'run'))
depends_on('py-typing-extensions', when='@1.7:', type=('build', 'run'))
- depends_on('py-pybind11', when='@0.4:', type=('build', 'link', 'run'))
+ depends_on('py-pybind11@master', when='@master', type=('build', 'link', 'run'))
+ depends_on('py-pybind11@2.6.2', when='@1.8.0:1.9.999', type=('build', 'link', 'run'))
+ depends_on('py-pybind11@2.3.0', when='@1.1.0:1.7.999', type=('build', 'link', 'run'))
+ depends_on('py-pybind11@2.2.4', when='@1.0.0:1.0.999', type=('build', 'link', 'run'))
+ depends_on('py-pybind11@2.2.2', when='@0.4.0:0.4.999', type=('build', 'link', 'run'))
depends_on('py-dataclasses', when='@1.7: ^python@3.6.0:3.6.999', type=('build', 'run'))
+ depends_on('py-tqdm', type='run')
+ depends_on('py-protobuf', when='@0.4:', type=('build', 'run'))
+ depends_on('protobuf', when='@0.4:')
depends_on('blas')
depends_on('lapack')
- depends_on('protobuf', when='@0.4:')
depends_on('eigen', when='@0.4:')
- # TODO: replace all third_party packages with Spack packages
+ # https://github.com/pytorch/pytorch/issues/60329
+ # depends_on('cpuinfo@master', when='@master')
+ # depends_on('cpuinfo@2020-12-17', when='@1.8.0:1.9.999')
+ # depends_on('cpuinfo@2020-06-11', when='@1.6.0:1.7.999')
+ # https://github.com/shibatch/sleef/issues/427
+ # depends_on('sleef@master', when='@master')
+ # depends_on('sleef@3.5.1_2020-12-22', when='@1.8.0:1.9.999')
+ # https://github.com/pytorch/pytorch/issues/60334
+ # depends_on('sleef@3.4.0_2019-07-30', when='@1.6.0:1.7.999')
+ # https://github.com/Maratyszcza/FP16/issues/18
+ # depends_on('fp16@master', when='@master')
+ # depends_on('fp16@2020-05-14', when='@1.6.0:1.9.999')
+ depends_on('pthreadpool@master', when='@master')
+ depends_on('pthreadpool@2021-04-13', when='@1.9.0:1.9.999')
+ depends_on('pthreadpool@2020-10-05', when='@1.8.0:1.8.999')
+ depends_on('pthreadpool@2020-06-15', when='@1.6.0:1.7.999')
+ depends_on('psimd@master', when='@master')
+ depends_on('psimd@2020-05-17', when='@1.6.0:1.9.999')
+ depends_on('fxdiv@master', when='@master')
+ depends_on('fxdiv@2020-04-17', when='@1.6.0:1.9.999')
+ depends_on('benchmark', when='@1.6:+test')
# Optional dependencies
depends_on('cuda@7.5:', when='+cuda', type=('build', 'link', 'run'))
depends_on('cuda@9:', when='@1.1:+cuda', type=('build', 'link', 'run'))
- depends_on('cudnn@6:', when='+cudnn')
- depends_on('cudnn@7:', when='@1.1:+cudnn')
+ depends_on('cuda@9.2:', when='@1.6:+cuda', type=('build', 'link', 'run'))
+ depends_on('cudnn@6.0:7.999', when='@:1.0.999+cudnn')
+ depends_on('cudnn@7.0:7.999', when='@1.1.0:1.5.999+cudnn')
+ depends_on('cudnn@7.0:', when='@1.6.0:+cudnn')
depends_on('magma', when='+magma')
- # TODO: add dependency: https://github.com/pytorch/FBGEMM
- # depends_on('fbgemm', when='+fbgemm')
- # TODO: add dependency: https://github.com/ROCmSoftwarePlatform/MIOpen
- # depends_on('miopen', when='+miopen')
- # TODO: See if there is a way to use an external mkldnn installation.
- # Currently, only older versions of py-torch use an external mkldnn
- # library.
- depends_on('onednn', when='@0.4:0.4.1+mkldnn')
- # TODO: add dependency: https://github.com/Maratyszcza/NNPACK
- # depends_on('nnpack', when='+nnpack')
- depends_on('qnnpack', when='+qnnpack')
- # TODO: add dependency: https://github.com/google/XNNPACK
- # depends_on('xnnpack', when='+xnnpack')
- depends_on('mpi', when='+distributed')
depends_on('nccl', when='+nccl')
- depends_on('gloo', when='+gloo')
- depends_on('opencv', when='+opencv')
+ depends_on('numactl', when='+numa')
+ depends_on('py-numpy', when='+numpy', type=('build', 'run'))
depends_on('llvm-openmp', when='%apple-clang +openmp')
- depends_on('ffmpeg', when='+ffmpeg')
- depends_on('leveldb', when='+leveldb')
- depends_on('lmdb', when='+lmdb')
- depends_on('redis', when='+redis')
- depends_on('zstd', when='+zstd')
- depends_on('tbb', when='+tbb')
+ depends_on('valgrind', when='+valgrind')
+ # https://github.com/pytorch/pytorch/issues/60332
+ # depends_on('xnnpack@master', when='@master+xnnpack')
+ # depends_on('xnnpack@2021-02-22', when='@1.8.0:1.9.999+xnnpack')
+ # depends_on('xnnpack@2020-03-23', when='@1.6.0:1.7.999+xnnpack')
+ depends_on('mpi', when='+mpi')
+ # https://github.com/pytorch/pytorch/issues/60270
+ # depends_on('gloo@master', when='@master+gloo')
+ # depends_on('gloo@2021-05-04', when='@1.9.0:1.9.999+gloo')
+ # depends_on('gloo@2020-09-18', when='@1.7.0:1.8.999+gloo')
+ # depends_on('gloo@2020-03-17', when='@1.6.0:1.6.999+gloo')
+ # https://github.com/pytorch/pytorch/issues/60331
+ # depends_on('onnx@master', when='@master+onnx_ml')
+ # depends_on('onnx@1.8.0_2020-11-03', when='@1.8.0:1.9.999+onnx_ml')
+ # depends_on('onnx@1.7.0_2020-05-31', when='@1.6.0:1.7.999+onnx_ml')
+ depends_on('mkl', when='+mkldnn')
# Test dependencies
depends_on('py-hypothesis', type='test')
depends_on('py-six', type='test')
depends_on('py-psutil', type='test')
+ # Fix BLAS being overridden by MKL
+ # https://github.com/pytorch/pytorch/issues/60328
+ patch('https://patch-diff.githubusercontent.com/raw/pytorch/pytorch/pull/59220.patch',
+ sha256='e37afffe45cf7594c22050109942370e49983ad772d12ebccf508377dc9dcfc9',
+ when='@1.2.0:')
+
+ # Fixes build on older systems with glibc <2.12
+ patch('https://patch-diff.githubusercontent.com/raw/pytorch/pytorch/pull/55063.patch',
+ sha256='e17eaa42f5d7c18bf0d7c37d7b0910127a01ad53fdce3e226a92893356a70395',
+ when='@1.1.0:1.8.1')
+
+ # Fixes CMake configuration error when XNNPACK is disabled
# https://github.com/pytorch/pytorch/pull/35607
# https://github.com/pytorch/pytorch/pull/37865
- # 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
+ # Fixes build error when ROCm is enabled for pytorch-1.5 release
patch('rocm.patch', when='@1.5.0:1.5.999+rocm')
- # https://github.com/pytorch/pytorch/pull/37086
+ # Fixes fatal error: sleef.h: No such file or directory
+ # https://github.com/pytorch/pytorch/pull/35359
+ # https://github.com/pytorch/pytorch/issues/26555
+ # patch('sleef.patch', when='@1.0.0:1.5.999')
+
# Fixes compilation with Clang 9.0.0 and Apple Clang 11.0.3
+ # https://github.com/pytorch/pytorch/pull/37086
patch('https://github.com/pytorch/pytorch/commit/e921cd222a8fbeabf5a3e74e83e0d8dfb01aa8b5.patch',
sha256='17561b16cd2db22f10c0fe1fdcb428aecb0ac3964ba022a41343a6bb8cba7049',
when='@1.1:1.5')
- # Fix for 'FindOpenMP.cmake'
+ # Removes duplicate definition of getCusparseErrorString
+ # https://github.com/pytorch/pytorch/issues/32083
+ patch('cusparseGetErrorString.patch', when='@0.4.1:1.0.999^cuda@10.1.243:')
+
+ # Fixes 'FindOpenMP.cmake'
# to detect openmp settings used by Fujitsu compiler.
patch('detect_omp_of_fujitsu_compiler.patch', when='%fj')
@@ -201,21 +229,36 @@ class PyTorch(PythonPackage, CudaPackage):
@property
def libs(self):
- root = join_path(
- self.prefix, self.spec['python'].package.site_packages_dir,
- 'torch', 'lib')
+ root = join_path(self.prefix, self.spec['python'].package.site_packages_dir,
+ 'torch', 'lib')
return find_libraries('libtorch', root)
@property
def headers(self):
- root = join_path(
- self.prefix, self.spec['python'].package.site_packages_dir,
- 'torch', 'include')
+ root = join_path(self.prefix, self.spec['python'].package.site_packages_dir,
+ 'torch', 'include')
headers = find_all_headers(root)
headers.directories = [root]
return headers
+ @when('@1.5.0:')
+ def patch(self):
+ # https://github.com/pytorch/pytorch/issues/52208
+ filter_file('torch_global_deps PROPERTIES LINKER_LANGUAGE C',
+ 'torch_global_deps PROPERTIES LINKER_LANGUAGE CXX',
+ 'caffe2/CMakeLists.txt')
+
def setup_build_environment(self, env):
+ """Set environment variables used to control the build.
+
+ PyTorch's ``setup.py`` is a thin wrapper around ``cmake``.
+ In ``tools/setup_helpers/cmake.py``, you can see that all
+ environment variables that start with ``BUILD_``, ``USE_``,
+ or ``CMAKE_``, plus a few more explicitly specified variable
+ names, are passed directly to the ``cmake`` call. Therefore,
+ most flags defined in ``CMakeLists.txt`` can be specified as
+ environment variables.
+ """
def enable_or_disable(variant, keyword='USE', var=None, newer=False):
"""Set environment variable to enable or disable support for a
particular variant.
@@ -248,90 +291,141 @@ class PyTorch(PythonPackage, CudaPackage):
# Spack logs have trouble handling colored output
env.set('COLORIZE_OUTPUT', 'OFF')
- # Don't use vendored third-party libraries
- env.set('BUILD_CUSTOM_PROTOBUF', 'OFF')
- env.set('USE_PYTORCH_QNNPACK', 'OFF')
- env.set('USE_SYSTEM_EIGEN_INSTALL', 'ON')
- env.set('pybind11_DIR', self.spec['py-pybind11'].prefix)
- env.set('pybind11_INCLUDE_DIR',
- self.spec['py-pybind11'].prefix.include)
+ if self.spec.satisfies('@0.4:'):
+ enable_or_disable('test', keyword='BUILD')
+
+ if self.spec.satisfies('@1.7:'):
+ enable_or_disable('caffe2', keyword='BUILD')
enable_or_disable('cuda')
if '+cuda' in self.spec:
- env.set('CUDA_HOME', self.spec['cuda'].prefix)
+ # cmake/public/cuda.cmake
+ # cmake/Modules_CUDA_fix/upstream/FindCUDA.cmake
+ env.unset('CUDA_ROOT')
torch_cuda_arch = ';'.join('{0:.1f}'.format(float(i) / 10.0) for i
in
self.spec.variants['cuda_arch'].value)
env.set('TORCH_CUDA_ARCH_LIST', torch_cuda_arch)
+ enable_or_disable('rocm')
+
enable_or_disable('cudnn')
if '+cudnn' in self.spec:
- env.set('CUDNN_LIB_DIR', self.spec['cudnn'].libs.directories[0])
+ # cmake/Modules_CUDA_fix/FindCUDNN.cmake
env.set('CUDNN_INCLUDE_DIR', self.spec['cudnn'].prefix.include)
env.set('CUDNN_LIBRARY', self.spec['cudnn'].libs[0])
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)
- env.set('MIOPEN_LIBRARY', self.spec['miopen'].libs[0])
-
- enable_or_disable('mkldnn')
- if '@0.4:0.4.1+mkldnn' in self.spec:
- env.set('MKLDNN_HOME', self.spec['onednn'].prefix)
-
- enable_or_disable('nnpack')
- enable_or_disable('qnnpack')
- enable_or_disable('xnnpack')
- enable_or_disable('distributed')
+ if self.spec.satisfies('@1.8:'):
+ enable_or_disable('kineto')
+ enable_or_disable('magma')
+ enable_or_disable('metal')
enable_or_disable('nccl')
- enable_or_disable('nccl', var='SYSTEM_NCCL')
if '+nccl' in self.spec:
- env.set('NCCL_ROOT', self.spec['nccl'].prefix)
env.set('NCCL_LIB_DIR', self.spec['nccl'].libs.directories[0])
env.set('NCCL_INCLUDE_DIR', self.spec['nccl'].prefix.include)
- enable_or_disable('caffe2', keyword='BUILD', var='CAFFE2_OPS')
- enable_or_disable('gloo', newer=True)
- enable_or_disable('opencv', newer=True)
+ # cmake/External/nnpack.cmake
+ enable_or_disable('nnpack')
+
+ enable_or_disable('numa')
+ if '+numa' in self.spec:
+ # cmake/Modules/FindNuma.cmake
+ env.set('NUMA_ROOT_DIR', self.spec['numactl'].prefix)
+
+ # cmake/Modules/FindNumPy.cmake
+ enable_or_disable('numpy')
+ # cmake/Modules/FindOpenMP.cmake
enable_or_disable('openmp', newer=True)
- enable_or_disable('ffmpeg', newer=True)
- enable_or_disable('leveldb', newer=True)
- enable_or_disable('lmdb', newer=True)
- enable_or_disable('binary', keyword='BUILD', newer=True)
+ enable_or_disable('qnnpack')
+ if self.spec.satisfies('@1.3:'):
+ enable_or_disable('qnnpack', var='PYTORCH_QNNPACK')
+ if self.spec.satisfies('@1.8:'):
+ enable_or_disable('valgrind')
+ if self.spec.satisfies('@1.5:'):
+ enable_or_disable('xnnpack')
+ enable_or_disable('mkldnn')
+ enable_or_disable('distributed')
+ enable_or_disable('mpi')
+ # cmake/Modules/FindGloo.cmake
+ enable_or_disable('gloo', newer=True)
+ if self.spec.satisfies('@1.6:'):
+ enable_or_disable('tensorpipe')
+
+ if '+onnx_ml' in self.spec:
+ env.set('ONNX_ML', 'ON')
+ else:
+ env.set('ONNX_ML', 'OFF')
if not self.spec.satisfies('@master'):
env.set('PYTORCH_BUILD_VERSION', self.version)
env.set('PYTORCH_BUILD_NUMBER', 0)
# BLAS to be used by Caffe2
- if '^mkl' in self.spec:
- env.set('BLAS', 'MKL')
- elif '^atlas' in self.spec:
+ # Options defined in cmake/Dependencies.cmake and cmake/Modules/FindBLAS.cmake
+ if self.spec['blas'].name == 'atlas':
env.set('BLAS', 'ATLAS')
- elif '^openblas' in self.spec:
+ env.set('WITH_BLAS', 'atlas')
+ elif self.spec['blas'].name in ['blis', 'amdblis']:
+ env.set('BLAS', 'BLIS')
+ env.set('WITH_BLAS', 'blis')
+ elif self.spec['blas'].name == 'eigen':
+ env.set('BLAS', 'Eigen')
+ elif self.spec['lapack'].name in ['libflame', 'amdlibflame']:
+ env.set('BLAS', 'FLAME')
+ env.set('WITH_BLAS', 'FLAME')
+ elif self.spec['blas'].name in [
+ 'intel-mkl', 'intel-parallel-studio', 'intel-oneapi-mkl']:
+ env.set('BLAS', 'MKL')
+ env.set('WITH_BLAS', 'mkl')
+ elif self.spec['blas'].name == 'openblas':
env.set('BLAS', 'OpenBLAS')
- elif '^veclibfort' in self.spec:
+ env.set('WITH_BLAS', 'open')
+ elif self.spec['blas'].name == 'veclibfort':
env.set('BLAS', 'vecLib')
- elif '^libflame' in self.spec:
- env.set('BLAS', 'FLAME')
- elif '^eigen' in self.spec:
- env.set('BLAS', 'Eigen')
+ env.set('WITH_BLAS', 'veclib')
+ else:
+ env.set('BLAS', 'Generic')
+ env.set('WITH_BLAS', 'generic')
- enable_or_disable('redis', newer=True)
- enable_or_disable('zstd', newer=True)
- enable_or_disable('tbb', newer=True)
+ # Don't use vendored third-party libraries when possible
+ env.set('BUILD_CUSTOM_PROTOBUF', 'OFF')
+ env.set('USE_SYSTEM_NCCL', 'ON')
+ env.set('USE_SYSTEM_EIGEN_INSTALL', 'ON')
+ if self.spec.satisfies('@0.4:'):
+ env.set('pybind11_DIR', self.spec['py-pybind11'].prefix)
+ env.set('pybind11_INCLUDE_DIR',
+ self.spec['py-pybind11'].prefix.include)
+ if self.spec.satisfies('@1.10:'):
+ env.set('USE_SYSTEM_PYBIND11', 'ON')
+ # https://github.com/pytorch/pytorch/issues/60334
+ # if self.spec.satisfies('@1.8:'):
+ # env.set('USE_SYSTEM_SLEEF', 'ON')
+ if self.spec.satisfies('@1.6:'):
+ # env.set('USE_SYSTEM_LIBS', 'ON')
+ # https://github.com/pytorch/pytorch/issues/60329
+ # env.set('USE_SYSTEM_CPUINFO', 'ON')
+ # https://github.com/pytorch/pytorch/issues/60270
+ # env.set('USE_SYSTEM_GLOO', 'ON')
+ # https://github.com/Maratyszcza/FP16/issues/18
+ # env.set('USE_SYSTEM_FP16', 'ON')
+ env.set('USE_SYSTEM_PTHREADPOOL', 'ON')
+ env.set('USE_SYSTEM_PSIMD', 'ON')
+ env.set('USE_SYSTEM_FXDIV', 'ON')
+ env.set('USE_SYSTEM_BENCHMARK', 'ON')
+ # https://github.com/pytorch/pytorch/issues/60331
+ # env.set('USE_SYSTEM_ONNX', 'ON')
+ # https://github.com/pytorch/pytorch/issues/60332
+ # env.set('USE_SYSTEM_XNNPACK', 'ON')
@run_before('install')
def build_amd(self):
if '+rocm' in self.spec:
python(os.path.join('tools', 'amd_build', 'build_amd.py'))
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
def install_test(self):
with working_dir('test'):
python('run_test.py')
diff --git a/var/spack/repos/builtin/packages/py-torch/sleef.patch b/var/spack/repos/builtin/packages/py-torch/sleef.patch
new file mode 100644
index 0000000000..67f0234162
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-torch/sleef.patch
@@ -0,0 +1,12 @@
+diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
+index 8025a7de3c..2e5cdbb5c9 100644
+--- a/caffe2/CMakeLists.txt
++++ b/caffe2/CMakeLists.txt
+@@ -1232,6 +1232,7 @@ if (BUILD_TEST)
+ add_executable(${test_name} "${test_src}")
+ target_link_libraries(${test_name} ${Caffe2_MAIN_LIBS} gtest_main)
+ target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
++ target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
+ target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
+ add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
+ if (INSTALL_TEST)
diff --git a/var/spack/repos/builtin/packages/py-torchaudio/package.py b/var/spack/repos/builtin/packages/py-torchaudio/package.py
index 5b17373c66..cfee7f41fd 100644
--- a/var/spack/repos/builtin/packages/py-torchaudio/package.py
+++ b/var/spack/repos/builtin/packages/py-torchaudio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-torchfile/package.py b/var/spack/repos/builtin/packages/py-torchfile/package.py
index e739c065b7..5e4c9fb459 100644
--- a/var/spack/repos/builtin/packages/py-torchfile/package.py
+++ b/var/spack/repos/builtin/packages/py-torchfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyTorchfile(PythonPackage):
including torch.Tensors is preserved."""
homepage = "https://github.com/bshillingford/python-torchfile"
- url = "https://pypi.io/packages/source/t/torchfile/torchfile-0.1.0.tar.gz"
+ pypi = "torchfile/torchfile-0.1.0.tar.gz"
# license = "BSD-3-Clause"
version('0.1.0', sha256='a53dfe134b737845a9f2cb24fe0585317874f965932cebdb0439d13c8da4136e')
diff --git a/var/spack/repos/builtin/packages/py-torchgeo/package.py b/var/spack/repos/builtin/packages/py-torchgeo/package.py
new file mode 100644
index 0000000000..931f8d474c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-torchgeo/package.py
@@ -0,0 +1,77 @@
+# Copyright 2013-2021 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 PyTorchgeo(PythonPackage):
+ """TorchGeo: datasets, transforms, and models for geospatial data.
+
+ TorchGeo is a PyTorch domain library, similar to torchvision, that provides
+ datasets, transforms, samplers, and pre-trained models specific to geospatial data.
+ """
+
+ homepage = "https://github.com/microsoft/torchgeo"
+ git = "https://github.com/microsoft/torchgeo.git"
+
+ maintainers = ['adamjstewart', 'calebrob6']
+
+ version('main', branch='main')
+
+ variant('datasets', default=False, description='Install optional dataset dependencies')
+ variant('docs', default=False, description='Install documentation dependencies')
+ variant('style', default=False, description='Install style checking tools')
+ variant('tests', default=False, description='Install testing tools')
+ variant('train', default=False, description='Install optional trainer dependencies')
+
+ # Required dependencies
+ depends_on('python@3.6:+bz2', type=('build', 'run'))
+ depends_on('py-setuptools@30.4:', type='build')
+ depends_on('py-einops', type=('build', 'run'))
+ depends_on('py-fiona@1.5:', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('pil@2.9:', type=('build', 'run'))
+ depends_on('py-pyproj@2.2:', type=('build', 'run'))
+ depends_on('py-rasterio@1.0.16:', type=('build', 'run'))
+ depends_on('py-rtree@0.5:', type=('build', 'run'))
+ depends_on('py-shapely@1.3:', type=('build', 'run'))
+ depends_on('py-torch@1.7:', type=('build', 'run'))
+ depends_on('py-torchvision@0.3:', type=('build', 'run'))
+
+ # Optional dependencies
+ with when('+datasets'):
+ depends_on('py-h5py', type='run')
+ depends_on('opencv+python3+imgcodecs+tiff+jpeg+png', type='run')
+ depends_on('py-pycocotools', type='run')
+ depends_on('py-radiant-mlhub@0.2.1:', type='run')
+ depends_on('py-rarfile@3:', type='run')
+ depends_on('py-scipy@0.9:', type='run')
+
+ with when('+docs'):
+ depends_on('py-ipywidgets@7:', type='run')
+ depends_on('py-jupyterlab', type='run')
+ depends_on('py-nbmake@0.1:', type='run')
+ depends_on('py-nbsphinx@0.8.5:', type='run')
+ depends_on('py-sphinx@3:', type='run')
+ depends_on('py-pydocstyle@6.1:+toml', type='run')
+ depends_on('py-pytorch-sphinx-theme', type='run')
+
+ with when('+style'):
+ depends_on('py-black@21:', type='run')
+ depends_on('py-flake8@3.8:', type='run')
+ depends_on('py-isort@5.8:+colors', type='run')
+
+ with when('+tests'):
+ depends_on('py-mypy@0.900:', type='run')
+ depends_on('py-pytest@6:', type='run')
+ depends_on('py-pytest-cov@2.4:', type='run')
+
+ with when('+train'):
+ depends_on('py-omegaconf@2.1:', type='run')
+ depends_on('py-pytorch-lightning@1.3:', type='run')
+ depends_on('py-scikit-learn@0.18:', type='run')
+ depends_on('py-segmentation-models-pytorch@0.2:', type='run')
+ depends_on('py-torchmetrics', type='run')
diff --git a/var/spack/repos/builtin/packages/py-torchmeta/package.py b/var/spack/repos/builtin/packages/py-torchmeta/package.py
new file mode 100644
index 0000000000..e2400926ab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-torchmeta/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 PyTorchmeta(PythonPackage):
+ """A collection of extensions and data-loaders for few-shot learning &
+ meta-learning in PyTorch. Torchmeta contains popular meta-learning
+ benchmarks, fully compatible with both torchvision and PyTorch's DataLoader."""
+
+ homepage = "https://github.com/tristandeleu/pytorch-meta"
+ pypi = "torchmeta/torchmeta-1.7.0.tar.gz"
+
+ version('1.7.0', sha256='148d42b6a1ec27970408f7bcb97cf1cb203f8699214e06424fe43d78faa848d9')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.14:', type=('build', 'run'))
+ depends_on('py-torch@1.4.0:1.8.999', type=('build', 'run'))
+ depends_on('py-torchvision@0.5.0:0.9.999', type=('build', 'run'))
+ depends_on('pil@7.0:', type=('build', 'run'))
+ depends_on('py-h5py', type=('build', 'run'))
+ depends_on('py-tqdm@4.0.0:', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-ordered-set', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-torchmetrics/package.py b/var/spack/repos/builtin/packages/py-torchmetrics/package.py
new file mode 100644
index 0000000000..201e479bd7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-torchmetrics/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyTorchmetrics(PythonPackage):
+ """Machine learning metrics for distributed, scalable PyTorch applications."""
+
+ homepage = "https://github.com/PyTorchLightning/metrics"
+ pypi = "torchmetrics/torchmetrics-0.3.1.tar.gz"
+
+ version('0.5.1', sha256='22fbcb6fc05348ca3f2bd06e0763e88411a6b68c2b9fc26084b39d40cc4021b0')
+ version('0.4.1', sha256='2fc50f812210c33b8c2649dbb1482e3c47e93cae33e4b3d0427fb830384effbd')
+ version('0.3.1', sha256='78f4057db53f7c219fdf9ec9eed151adad18dd43488a44e5c780806d218e3f1d')
+ version('0.2.0', sha256='481a28759acd2d77cc088acba6bc7dc4a356c7cb767da2e1495e91e612e2d548')
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.17.2:', when='@0.4:', type=('build', 'run'))
+ depends_on('py-numpy', when='@0.3:', type=('build', 'run'))
+ depends_on('py-torch@1.3.1:', type=('build', 'run'))
+ depends_on('py-packaging', when='@0.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-torchsummary/package.py b/var/spack/repos/builtin/packages/py-torchsummary/package.py
index af1e39bcfb..27745d48b7 100644
--- a/var/spack/repos/builtin/packages/py-torchsummary/package.py
+++ b/var/spack/repos/builtin/packages/py-torchsummary/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyTorchsummary(PythonPackage):
print(your_model) in PyTorch."""
homepage = "https://github.com/sksq96/pytorch-summary"
- url = "https://pypi.io/packages/source/t/torchsummary/torchsummary-1.5.1.tar.gz"
+ pypi = "torchsummary/torchsummary-1.5.1.tar.gz"
version('1.5.1', sha256='981bf689e22e0cf7f95c746002f20a24ad26aa6b9d861134a14bc6ce92230590')
diff --git a/var/spack/repos/builtin/packages/py-torchtext/package.py b/var/spack/repos/builtin/packages/py-torchtext/package.py
index 6bcae3d1e9..7d22aae920 100644
--- a/var/spack/repos/builtin/packages/py-torchtext/package.py
+++ b/var/spack/repos/builtin/packages/py-torchtext/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class PyTorchtext(PythonPackage):
"""Text utilities and datasets for PyTorch."""
homepage = "https://github.com/pytorch/text"
- url = "https://pypi.io/packages/source/t/torchtext/torchtext-0.5.0.tar.gz"
+ pypi = "torchtext/torchtext-0.5.0.tar.gz"
maintainers = ['adamjstewart']
diff --git a/var/spack/repos/builtin/packages/py-torchvision/package.py b/var/spack/repos/builtin/packages/py-torchvision/package.py
index aaca507ba9..983cec2d6b 100644
--- a/var/spack/repos/builtin/packages/py-torchvision/package.py
+++ b/var/spack/repos/builtin/packages/py-torchvision/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,18 +9,16 @@ class PyTorchvision(PythonPackage):
architectures, and common image transformations for computer vision."""
homepage = "https://github.com/pytorch/vision"
- url = "https://github.com/pytorch/vision/archive/v0.8.1.tar.gz"
+ url = "https://github.com/pytorch/vision/archive/v0.8.2.tar.gz"
git = "https://github.com/pytorch/vision.git"
maintainers = ['adamjstewart']
- import_modules = [
- 'torchvision', 'torchvision.datasets', 'torchvision.models',
- 'torchvision.transforms', 'torchvision.ops',
- 'torchvision.models.segmentation',
- 'torchvision.models.detection'
- ]
version('master', branch='master')
+ version('0.10.0', sha256='82bb2c2b03d8a65f4ea74bb0ee5566b0876a1992aceefb1e11475c7b5d2e857b')
+ version('0.9.1', sha256='79964773729880e0eee0e6af13f336041121d4cc8491a3e2c0e5f184cac8a718')
+ version('0.9.0', sha256='9351ed92aded632f8c7f59dfadac13c191a834babe682f5785ea47e6fcf6b472')
+ version('0.8.2', sha256='9a866c3c8feb23b3221ce261e6153fc65a98ce9ceaa71ccad017016945c178bf')
version('0.8.1', sha256='c46734c679c99f93e5c06654f4295a05a6afe6c00a35ebd26a2cce507ae1ccbd')
version('0.8.0', sha256='b5f040faffbfc7bac8d4687d8665bd1196937334589b3fb5fcf15bb69ca25391')
version('0.7.0', sha256='fa0a6f44a50451115d1499b3f2aa597e0092a07afce1068750260fa7dd2c85cb')
@@ -37,10 +35,10 @@ class PyTorchvision(PythonPackage):
values=('pil', 'accimage', 'png', 'jpeg'), multi=False)
# https://github.com/pytorch/vision#installation
- depends_on('python@3.6:', when='@0.7:', type=('build', 'run'))
- depends_on('python@3.5:', when='@0.6.0:0.6.999', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.5:3.8', when='@0.5.0', type=('build', 'run'))
- depends_on('python@2.7:2.8,3.5:3.7', when='@:0.4', type=('build', 'run'))
+ depends_on('python@3.6:', when='@0.7:', type=('build', 'link', 'run'))
+ depends_on('python@3.5:', when='@0.6.0:0.6.999', type=('build', 'link', 'run'))
+ depends_on('python@2.7:2.8,3.5:3.8', when='@0.5.0', type=('build', 'link', 'run'))
+ depends_on('python@2.7:2.8,3.5:3.7', when='@:0.4', type=('build', 'link', 'run'))
depends_on('py-setuptools', type='build')
depends_on('ninja', type='build')
@@ -49,12 +47,16 @@ class PyTorchvision(PythonPackage):
# https://github.com/pytorch/vision#installation
depends_on('py-torch@master', when='@master', type=('build', 'link', 'run'))
+ depends_on('py-torch@1.9.0', when='@0.10.0', type=('build', 'link', 'run'))
+ depends_on('py-torch@1.8.1', when='@0.9.1', type=('build', 'link', 'run'))
+ depends_on('py-torch@1.8.0', when='@0.9.0', type=('build', 'link', 'run'))
+ depends_on('py-torch@1.7.1', when='@0.8.2', type=('build', 'link', 'run'))
depends_on('py-torch@1.7.0', when='@0.8.1', type=('build', 'link', 'run'))
depends_on('py-torch@1.7.0', when='@0.8.0', type=('build', 'link', 'run'))
depends_on('py-torch@1.6.0', when='@0.7.0', type=('build', 'link', 'run'))
depends_on('py-torch@1.5.1', when='@0.6.1', type=('build', 'link', 'run'))
depends_on('py-torch@1.5.0', when='@0.6.0', type=('build', 'link', 'run'))
- depends_on('py-torch@1.4.0', when='@0.5.0', type=('build', 'link', 'run'))
+ depends_on('py-torch@1.4.1', when='@0.5.0', type=('build', 'link', 'run'))
depends_on('py-torch@1.3.1', when='@0.4.2', type=('build', 'link', 'run'))
depends_on('py-torch@1.3.0', when='@0.4.1', type=('build', 'link', 'run'))
depends_on('py-torch@1.2.0', when='@0.4.0', type=('build', 'link', 'run'))
@@ -64,13 +66,13 @@ class PyTorchvision(PythonPackage):
# https://github.com/pytorch/vision/issues/1712
depends_on('pil@4.1.1:6', when='@:0.4 backend=pil', type=('build', 'run'))
depends_on('pil@4.1.1:', when='@0.5: backend=pil', type=('build', 'run'))
+ depends_on('pil@5.3.0:', when='@0.10: backend=pil', type=('build', 'run'))
depends_on('py-accimage', when='backend=accimage', type=('build', 'run'))
- depends_on('libpng', when='backend=png')
+ depends_on('libpng@1.6.0:', when='backend=png')
depends_on('jpeg', when='backend=jpeg')
# Many of the datasets require additional dependencies to use.
# These can be installed after the fact.
- depends_on('py-scipy', type='test')
depends_on('ffmpeg@3.1:', when='@0.4.2:')
diff --git a/var/spack/repos/builtin/packages/py-tornado/package.py b/var/spack/repos/builtin/packages/py-tornado/package.py
index 0aea05faf0..8a82739250 100644
--- a/var/spack/repos/builtin/packages/py-tornado/package.py
+++ b/var/spack/repos/builtin/packages/py-tornado/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,20 +9,21 @@ from spack import *
class PyTornado(PythonPackage):
"""Tornado is a Python web framework and asynchronous networking
library."""
+
homepage = "https://github.com/tornadoweb/tornado"
- url = "https://github.com/tornadoweb/tornado/archive/v6.0.3.tar.gz"
+ pypi = "tornado/tornado-6.1.tar.gz"
- version('6.0.3', sha256='a97ac3b8c95867e534b48cb6fbbf156f5ca5b20c423bb06894c17b240d7a18fc')
- version('5.1.1', sha256='a1da335a2978b9a8c3544cab10076d799442d7988ed0b4f2be035fe4388ca8dd')
- version('4.4.0', sha256='ae556a0848e5d428d00597a18b38b9ca9d20f4600535e1dd33b3a576ab234194')
+ version('6.1', sha256='33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791')
+ version('6.0.3', sha256='c845db36ba616912074c5b1ee897f8e0124df269468f25e4fe21fe72f6edd7a9')
+ version('5.1.1', sha256='4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409')
+ version('4.4', sha256='3176545b6cb2966870db4def4f646da6ab7a0c19400576969c57279a7561ab02')
depends_on('py-setuptools', type='build')
- # requirements from setup.py
- depends_on('python@3.5:', when='@6:', type=('build', 'run'))
+ depends_on('python@3.5.2:', when='@6:', type=('build', 'run'))
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-backports-ssl-match-hostname', when='@:4 ^python@:2.7.8', type=('build', 'run'))
- depends_on('py-singledispatch', when='^python@:3.3', type=('build', 'run'))
+ depends_on('py-singledispatch', when='@:5.99 ^python@:3.3', type=('build', 'run'))
depends_on('py-certifi', when='@:4 ^python@:3.3', type=('build', 'run'))
- depends_on('py-backports-abc@0.4:', when='^python@:3.4', type=('build', 'run'))
- depends_on('py-futures', when='@5: ^python@:3.1', type=('build', 'run'))
+ depends_on('py-backports-abc@0.4:5.99', when='^python@:3.4', type=('build', 'run'))
+ depends_on('py-futures', when='@5:5.99 ^python@:3.1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-tox/package.py b/var/spack/repos/builtin/packages/py-tox/package.py
index 43b4c1e49c..d2f4674529 100644
--- a/var/spack/repos/builtin/packages/py-tox/package.py
+++ b/var/spack/repos/builtin/packages/py-tox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyTox(PythonPackage):
"""tox is a generic virtualenv management and test command line tool."""
homepage = "https://tox.readthedocs.org/"
- url = "https://pypi.io/packages/source/t/tox/tox-3.14.2.tar.gz"
+ pypi = "tox/tox-3.14.2.tar.gz"
version('3.14.2', sha256='7efd010a98339209f3a8292f02909b51c58417bfc6838ab7eca14cf90f96117a')
diff --git a/var/spack/repos/builtin/packages/py-tpot/package.py b/var/spack/repos/builtin/packages/py-tpot/package.py
index 856336b54f..b595adc69e 100644
--- a/var/spack/repos/builtin/packages/py-tpot/package.py
+++ b/var/spack/repos/builtin/packages/py-tpot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,15 +12,14 @@ class PyTpot(PythonPackage):
pipelines using genetic programming.
"""
- homepage = "http://epistasislab.github.io/tpot/"
- url = "https://pypi.io/packages/source/t/tpot/TPOT-0.11.5.tar.gz"
+ homepage = "https://epistasislab.github.io/tpot/"
+ pypi = "tpot/TPOT-0.11.5.tar.gz"
version('0.11.5', sha256='909be08b29165ce48de5e5d2e3fd73fee9aeeaf1030f2e0912ce0f0bd9c3d2f3')
depends_on('py-setuptools', type='build')
depends_on('python@3.5:', type=('build', 'run'))
depends_on('py-deap@1.2:', type=('build', 'run'))
- depends_on('py-nose', type='test')
depends_on('py-numpy@1.16.3:', type=('build', 'run'))
depends_on('py-scikit-learn@0.22.0:', type=('build', 'run'))
depends_on('py-scipy@1.3.1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-tqdm/package.py b/var/spack/repos/builtin/packages/py-tqdm/package.py
index b9e6a5b2a9..1514f19e21 100644
--- a/var/spack/repos/builtin/packages/py-tqdm/package.py
+++ b/var/spack/repos/builtin/packages/py-tqdm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,14 +10,19 @@ class PyTqdm(PythonPackage):
"""A Fast, Extensible Progress Meter"""
homepage = "https://github.com/tqdm/tqdm"
- url = "https://pypi.io/packages/source/t/tqdm/tqdm-4.45.0.tar.gz"
+ pypi = "tqdm/tqdm-4.45.0.tar.gz"
+ version('4.59.0', sha256='d666ae29164da3e517fcf125e41d4fe96e5bb375cd87ff9763f6b38b5592fe33')
+ version('4.56.2', sha256='11d544652edbdfc9cc41aa4c8a5c166513e279f3f2d9f1a9e1c89935b51de6ff')
version('4.45.0', sha256='00339634a22c10a7a22476ee946bbde2dbe48d042ded784e4d88e0236eca5d81')
version('4.36.1', sha256='abc25d0ce2397d070ef07d8c7e706aede7920da163c64997585d42d3537ece3d')
version('4.8.4', sha256='bab05f8bb6efd2702ab6c532e5e6a758a66c0d2f443e09784b73e4066e6b3a37')
- depends_on('python@2.6:2.8,3.2:', type=('build', 'run'))
- depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-nose', type='test')
- depends_on('py-flake8', type='test')
- depends_on('py-coverage', type='test')
+ variant('telegram', default=False, description='Enable Telegram bot support')
+ variant('notebook', default=False, description='Enable Jupyter Notebook support')
+
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools@42:', type=('build', 'run'))
+ depends_on('py-setuptools-scm@3.4:+toml', type='build')
+ depends_on('py-requests', when='+telegram', type=('build', 'run'))
+ depends_on('py-ipywidgets@6:', when='+notebook', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-traceback2/package.py b/var/spack/repos/builtin/packages/py-traceback2/package.py
index 766acea59a..23bcc8f60c 100644
--- a/var/spack/repos/builtin/packages/py-traceback2/package.py
+++ b/var/spack/repos/builtin/packages/py-traceback2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,9 @@ class PyTraceback2(PythonPackage):
"""Backports of the traceback module"""
homepage = "https://github.com/testing-cabal/traceback2"
- url = "https://pypi.io/packages/source/t/traceback2/traceback2-1.4.0.tar.gz"
+ pypi = "traceback2/traceback2-1.4.0.tar.gz"
version('1.4.0', sha256='05acc67a09980c2ecfedd3423f7ae0104839eccb55fc645773e1caa0951c3030')
depends_on('py-setuptools', type='build')
depends_on('py-pbr', type='build')
-
- # test-requirements.txt
- depends_on('py-contextlib2', type='test')
- depends_on('py-fixtures', type='test')
- depends_on('py-testtools', type='test')
- depends_on('py-unittest2', type='test')
diff --git a/var/spack/repos/builtin/packages/py-traitlets/package.py b/var/spack/repos/builtin/packages/py-traitlets/package.py
index df854d70c6..3fc0241114 100644
--- a/var/spack/repos/builtin/packages/py-traitlets/package.py
+++ b/var/spack/repos/builtin/packages/py-traitlets/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyTraitlets(PythonPackage):
"""Traitlets Python config system"""
- homepage = "https://pypi.python.org/pypi/traitlets"
- url = "https://pypi.io/packages/source/t/traitlets/traitlets-5.0.4.tar.gz"
+ pypi = "traitlets/traitlets-5.0.4.tar.gz"
version('5.0.4', sha256='86c9351f94f95de9db8a04ad8e892da299a088a64fd283f9f6f18770ae5eae1b')
version('4.3.3', sha256='d023ee369ddd2763310e4c3eae1ff649689440d4ae59d7485eb4cfbbe3e359f7')
@@ -29,4 +28,3 @@ class PyTraitlets(PythonPackage):
depends_on('py-six', when='@:4', type=('build', 'run'))
depends_on('py-decorator', when='@:4', type=('build', 'run'))
depends_on('py-enum34', when='^python@:3.3', type=('build', 'run'))
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-traits/package.py b/var/spack/repos/builtin/packages/py-traits/package.py
index 868e1de0a2..98e5ba5088 100644
--- a/var/spack/repos/builtin/packages/py-traits/package.py
+++ b/var/spack/repos/builtin/packages/py-traits/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,11 @@ class PyTraits(PythonPackage):
"""Explicitly typed attributes for Python."""
homepage = "https://docs.enthought.com/traits"
- url = "https://pypi.io/packages/source/t/traits/traits-6.0.0.tar.gz"
+ pypi = "traits/traits-6.0.0.tar.gz"
+ version('6.2.0', sha256='16fa1518b0778fd53bf0547e6a562b1787bf68c8f6b7995a13bd1902529fdb0c')
version('6.0.0', sha256='dbcd70166feca434130a1193284d5819ca72ffbc8dbce8deeecc0cebb41a3bfb')
- depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('python@3.6:', type=('build', 'run'), when='@6.2.0:')
+ depends_on('python@3.5:', type=('build', 'run'), when='@:6.1.999')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-traitsui/package.py b/var/spack/repos/builtin/packages/py-traitsui/package.py
index f77e92cc4f..e9b3dd2125 100644
--- a/var/spack/repos/builtin/packages/py-traitsui/package.py
+++ b/var/spack/repos/builtin/packages/py-traitsui/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyTraitsui(PythonPackage):
the details of displaying them."""
homepage = "https://docs.enthought.com/traitsui"
- url = "https://pypi.io/packages/source/t/traitsui/traitsui-6.1.3.tar.gz"
+ pypi = "traitsui/traitsui-6.1.3.tar.gz"
version('6.1.3', sha256='48381763b181efc58eaf288431d1d92d028d0d97dfdd33eba7809aae8aef814f')
diff --git a/var/spack/repos/builtin/packages/py-transformers/package.py b/var/spack/repos/builtin/packages/py-transformers/package.py
index 0480ed06c2..422f61f01d 100644
--- a/var/spack/repos/builtin/packages/py-transformers/package.py
+++ b/var/spack/repos/builtin/packages/py-transformers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,21 +9,33 @@ class PyTransformers(PythonPackage):
PyTorch"""
homepage = "https://github.com/huggingface/transformers"
- url = "https://pypi.io/packages/source/t/transformers/transformers-2.8.0.tar.gz"
+ pypi = "transformers/transformers-2.8.0.tar.gz"
maintainers = ['adamjstewart']
+ version('4.6.1', sha256='83dbff763b7e7dc57cbef1a6b849655d4fcab6bffdd955c5e8bea12a4f76dc10')
version('2.8.0', sha256='b9f29cdfd39c28f29e0806c321270dea337d6174a7aa60daf9625bf83dbb12ee')
depends_on('python@3.6:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
+
depends_on('py-numpy', type=('build', 'run'))
- depends_on('py-tokenizers@0.5.2', type=('build', 'run'))
+ depends_on('py-numpy@1.17:', when='@4.6.1:', type=('build', 'run'))
+
+ depends_on('py-tokenizers', type=('build', 'run'))
+ depends_on('py-tokenizers@0.10.1:0.10.999', when='@4.6.1:', type=('build', 'run'))
+
depends_on('py-dataclasses', when='^python@:3.6', type=('build', 'run'))
- depends_on('py-boto3', type=('build', 'run'))
+ depends_on('py-boto3', when='@2.8.0', type=('build', 'run'))
depends_on('py-filelock', type=('build', 'run'))
depends_on('py-requests', type=('build', 'run'))
depends_on('py-tqdm@4.27:', type=('build', 'run'))
depends_on('py-regex@:2019.12.16,2019.12.18:', type=('build', 'run'))
+
depends_on('py-sentencepiece', type=('build', 'run'))
+ depends_on('py-sentencepiece@0.1.91', when='@4.6.1:', type=('build', 'run'))
+
depends_on('py-sacremoses', type=('build', 'run'))
+ depends_on('py-importlib-metadata', when='@4.6.1: ^python@:3.7.999', type=('build', 'run'))
+ depends_on('py-huggingface-hub@0.0.8', when='@4.6.1:', type=('build', 'run'))
+ depends_on('py-packaging', when='@4.6.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-treehash/package.py b/var/spack/repos/builtin/packages/py-treehash/package.py
index 8925504b74..5373ef5179 100644
--- a/var/spack/repos/builtin/packages/py-treehash/package.py
+++ b/var/spack/repos/builtin/packages/py-treehash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,6 @@ class PyTreehash(PythonPackage):
function) "tree" hash, as used by e.g. Amazon Glacier."""
homepage = "https://github.com/jdswinbank/treehash"
- url = "https://pypi.io/packages/source/t/treehash/TreeHash-1.0.2.tar.gz"
+ pypi = "treehash/TreeHash-1.0.2.tar.gz"
version('1.0.2', sha256='fefcadd6a1e8ba2808897d776d5ae8bdae56ec3fe90ed385c1322357269f27a4')
diff --git a/var/spack/repos/builtin/packages/py-tuiview/package.py b/var/spack/repos/builtin/packages/py-tuiview/package.py
index 9757dd2343..e78153d2c1 100644
--- a/var/spack/repos/builtin/packages/py-tuiview/package.py
+++ b/var/spack/repos/builtin/packages/py-tuiview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-twine/package.py b/var/spack/repos/builtin/packages/py-twine/package.py
index 46ca3ae9b8..271f0d7563 100644
--- a/var/spack/repos/builtin/packages/py-twine/package.py
+++ b/var/spack/repos/builtin/packages/py-twine/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyTwine(PythonPackage):
"""Twine is a utility for publishing Python packages on PyPI."""
homepage = "https://twine.readthedocs.io/"
- url = "https://pypi.io/packages/source/t/twine/twine-2.0.0.tar.gz"
+ pypi = "twine/twine-2.0.0.tar.gz"
version('2.0.0', sha256='9fe7091715c7576df166df8ef6654e61bada39571783f2fd415bdcba867c6993')
diff --git a/var/spack/repos/builtin/packages/py-twisted/package.py b/var/spack/repos/builtin/packages/py-twisted/package.py
index 52f3d4039f..2c6579d48c 100644
--- a/var/spack/repos/builtin/packages/py-twisted/package.py
+++ b/var/spack/repos/builtin/packages/py-twisted/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyTwisted(PythonPackage):
"""An asynchronous networking framework written in Python"""
homepage = "https://twistedmatrix.com/"
- url = "https://pypi.io/packages/source/T/Twisted/Twisted-15.3.0.tar.bz2"
+ pypi = "Twisted/Twisted-15.3.0.tar.bz2"
version('15.4.0', sha256='78862662fa9ae29654bc2b9d349c3f1d887e6b2ed978512c4442d53ea861f05c')
version('15.3.0', sha256='025729751cf898842262375a40f70ae1d246daea88369eab9f6bb96e528bf285')
diff --git a/var/spack/repos/builtin/packages/py-typed-ast/package.py b/var/spack/repos/builtin/packages/py-typed-ast/package.py
index ddbb6ff519..2de58678a3 100644
--- a/var/spack/repos/builtin/packages/py-typed-ast/package.py
+++ b/var/spack/repos/builtin/packages/py-typed-ast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,13 @@ class PyTypedAst(PythonPackage):
"""A fork of Python 2 and 3 ast modules with type comment support."""
homepage = "https://github.com/python/typed_ast"
- url = "https://pypi.io/packages/source/t/typed-ast/typed_ast-1.4.0.tar.gz"
+ pypi = "typed-ast/typed_ast-1.4.0.tar.gz"
+ version('1.4.3', sha256='fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65')
+ version('1.4.2', sha256='9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a')
+ version('1.4.1', sha256='8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b')
version('1.4.0', sha256='66480f95b8167c9c5c5c87f32cf437d585937970f3fc24386f313a4c97b44e34')
- depends_on('python@3.3:', type=('build', 'run'))
+ depends_on('python@3.3:', type=('build', 'link', 'run'))
+ depends_on('python@:3.8', when="@:1.4.0") # build errors with 3.9 until 1.4.1
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-typesentry/package.py b/var/spack/repos/builtin/packages/py-typesentry/package.py
index 0fbd891ae9..12afda00c3 100644
--- a/var/spack/repos/builtin/packages/py-typesentry/package.py
+++ b/var/spack/repos/builtin/packages/py-typesentry/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-typing-extensions/package.py b/var/spack/repos/builtin/packages/py-typing-extensions/package.py
index 02376449f0..39b34f8836 100644
--- a/var/spack/repos/builtin/packages/py-typing-extensions/package.py
+++ b/var/spack/repos/builtin/packages/py-typing-extensions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,10 @@ class PyTypingExtensions(PythonPackage):
details about protocols and static duck typing)."""
homepage = "https://github.com/python/typing/tree/master/typing_extensions"
- url = "https://pypi.io/packages/source/t/typing_extensions/typing_extensions-3.7.4.tar.gz"
+ pypi = "typing_extensions/typing_extensions-3.7.4.tar.gz"
+ version('3.10.0.0', sha256='50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342')
+ version('3.7.4.3', sha256='99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c')
version('3.7.4', sha256='2ed632b30bb54fc3941c382decfd0ee4148f5c591651c9272473fea2c6397d95')
version('3.7.2', sha256='fb2cd053238d33a8ec939190f30cfd736c00653a85a2919415cecf7dc3d9da71')
version('3.6.6', sha256='51e7b7f3dcabf9ad22eed61490f3b8d23d9922af400fe6656cb08e66656b701f')
diff --git a/var/spack/repos/builtin/packages/py-typing/package.py b/var/spack/repos/builtin/packages/py-typing/package.py
index ee713c9213..7b9d339fdc 100644
--- a/var/spack/repos/builtin/packages/py-typing/package.py
+++ b/var/spack/repos/builtin/packages/py-typing/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,14 +11,17 @@ class PyTyping(PythonPackage):
versions older than 3.6."""
homepage = "https://docs.python.org/3/library/typing.html"
- url = "https://pypi.io/packages/source/t/typing/typing-3.7.4.1.tar.gz"
-
- import_modules = ['typing']
+ pypi = "typing/typing-3.7.4.1.tar.gz"
+ version('3.7.4.3', sha256='1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9')
version('3.7.4.1', sha256='91dfe6f3f706ee8cc32d38edbbf304e9b7583fb37108fef38229617f8b3eba23')
version('3.6.6', sha256='4027c5f6127a6267a435201981ba156de91ad0d1d98e9ddc2aa173453453492d')
version('3.6.4', sha256='d400a9344254803a2368533e4533a4200d21eb7b6b729c173bc38201a74db3f2')
version('3.6.1', sha256='c36dec260238e7464213dcd50d4b5ef63a507972f5780652e835d0228d0edace')
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ # Don't use this with new versions of python (3.5+)
+ # python 3.7 and later will actively not import
+ # https://github.com/python/typing/issues/573
+ # _abc_registry now private https://bugs.python.org/issue31333
+ depends_on('python@2.7:2.8,3.4:3.6', type=('build', 'run'))
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-tzlocal/package.py b/var/spack/repos/builtin/packages/py-tzlocal/package.py
index 354653f7a5..d6d0b888eb 100644
--- a/var/spack/repos/builtin/packages/py-tzlocal/package.py
+++ b/var/spack/repos/builtin/packages/py-tzlocal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyTzlocal(PythonPackage):
"""tzinfo object for the local timezone."""
homepage = "https://github.com/regebro/tzlocal"
- url = "https://pypi.io/packages/source/t/tzlocal/tzlocal-1.3.tar.gz"
+ pypi = "tzlocal/tzlocal-1.3.tar.gz"
version('2.0.0', sha256='949b9dd5ba4be17190a80c0268167d7e6c92c62b30026cf9764caf3e308e5590')
version('1.3', sha256='d160c2ce4f8b1831dabfe766bd844cf9012f766539cf84139c2faac5201882ce')
diff --git a/var/spack/repos/builtin/packages/py-ucsf-pyem/package.py b/var/spack/repos/builtin/packages/py-ucsf-pyem/package.py
new file mode 100644
index 0000000000..5e4e0b7f1f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ucsf-pyem/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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 PyUcsfPyem(PythonPackage):
+ """UCSF pyem is a collection of Python modules and command-line
+ utilities for electron microscopy of biological samples."""
+
+ homepage = "https://github.com/asarnow/pyem"
+ git = "https://github.com/asarnow/pyem.git"
+
+ maintainers = ['dorton21']
+
+ # Using commit since releases haven't been updated in 2 years
+ version('2021-04-07', commit='ed0527f98657d21d887357426b74e5240d477fae')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.14:', type=('build', 'run'))
+ depends_on('py-scipy@1.2:', type=('build', 'run'))
+ depends_on('py-matplotlib@2.2:', type=('build', 'run'))
+ depends_on('py-future@0.15:', type=('build', 'run'))
+ depends_on('py-numba@0.41:', type=('build', 'run'))
+ depends_on('py-seaborn@0.9:', type=('build', 'run'))
+ depends_on('py-pandas@0.23.4:', type=('build', 'run'))
+ depends_on('py-pathos@0.2.1:', type=('build', 'run'))
+ depends_on('py-pyfftw@0.10:', type=('build', 'run'))
+ depends_on('py-healpy@1.11:', type=('build', 'run'))
+ depends_on('py-natsort@6.0:', type=('build', 'run'))
+
+ # Extracts files into bin for proper useage
+ @run_after('install')
+ def extraction(self):
+ mkdir(self.prefix.bin)
+ install('*.py', self.prefix.bin)
diff --git a/var/spack/repos/builtin/packages/py-ucx-py/package.py b/var/spack/repos/builtin/packages/py-ucx-py/package.py
new file mode 100644
index 0000000000..5a6939b769
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-ucx-py/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 PyUcxPy(PythonPackage):
+ """UCX-Py is the Python interface for UCX, a low-level
+ high-performance networking library. UCX and UCX-Py supports
+ several transport methods including InfiniBand and NVLink while
+ still using traditional networking protocols like TCP."""
+
+ homepage = "https://ucx-py.readthedocs.io/en/latest/"
+ url = "https://github.com/rapidsai/ucx-py/archive/v0.16.0.tar.gz"
+
+ version('0.16.0', sha256='12c1c982ee337b8dc026d3a6e8e63d96bf021c5c555fe173642908d3c3bec36e')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-cython@0.29.14:2.999.999', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-psutil', type=('build', 'run'))
+ depends_on('py-pynvml', type=('build', 'run'))
+ depends_on('ucx')
+ depends_on('hwloc')
diff --git a/var/spack/repos/builtin/packages/py-ujson/package.py b/var/spack/repos/builtin/packages/py-ujson/package.py
index 45e9b280e8..3dec146d93 100644
--- a/var/spack/repos/builtin/packages/py-ujson/package.py
+++ b/var/spack/repos/builtin/packages/py-ujson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,11 @@ class PyUjson(PythonPackage):
bindings."""
homepage = "https://github.com/esnme/ultrajson"
- url = "https://pypi.io/packages/source/u/ujson/ujson-1.35.tar.gz"
+ pypi = "ujson/ujson-1.35.tar.gz"
+ version('4.0.2', sha256='c615a9e9e378a7383b756b7e7a73c38b22aeb8967a8bfbffd4741f7ffd043c4d')
version('1.35', sha256='f66073e5506e91d204ab0c614a148d5aa938bdbf104751be66f8ad7a222f5f86')
+ depends_on('python@3.6:', type=('build', 'run'), when='@4:')
depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools-scm', type='build', when='@4:')
diff --git a/var/spack/repos/builtin/packages/py-umalqurra/package.py b/var/spack/repos/builtin/packages/py-umalqurra/package.py
index c96dd625a5..d5cef2ab9a 100644
--- a/var/spack/repos/builtin/packages/py-umalqurra/package.py
+++ b/var/spack/repos/builtin/packages/py-umalqurra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class PyUmalqurra(PythonPackage):
"""Date Api that support Hijri Umalqurra calendar."""
homepage = "https://github.com/tytkal/python-hijiri-ummalqura"
- url = "https://pypi.io/packages/source/u/umalqurra/umalqurra-0.2.tar.gz"
+ pypi = "umalqurra/umalqurra-0.2.tar.gz"
version('0.2', sha256='719f6a36f908ada1c29dae0d934dd0f1e1f6e3305784edbec23ad719397de678')
diff --git a/var/spack/repos/builtin/packages/py-umi-tools/package.py b/var/spack/repos/builtin/packages/py-umi-tools/package.py
index 3a89b102a1..efbde8be79 100644
--- a/var/spack/repos/builtin/packages/py-umi-tools/package.py
+++ b/var/spack/repos/builtin/packages/py-umi-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-uncertainties/package.py b/var/spack/repos/builtin/packages/py-uncertainties/package.py
index 67a9ee0cc5..8a1d8f0dda 100644
--- a/var/spack/repos/builtin/packages/py-uncertainties/package.py
+++ b/var/spack/repos/builtin/packages/py-uncertainties/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyUncertainties(PythonPackage):
"""
homepage = "https://uncertainties-python-package.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/u/uncertainties/uncertainties-3.1.4.tar.gz"
+ pypi = "uncertainties/uncertainties-3.1.4.tar.gz"
version('3.1.4', sha256='63548a94899f2a51eeb89b640f6ac311f481a8016b37dce157186e44619bc968')
diff --git a/var/spack/repos/builtin/packages/py-unicycler/package.py b/var/spack/repos/builtin/packages/py-unicycler/package.py
index 441f66289a..6d038a858d 100644
--- a/var/spack/repos/builtin/packages/py-unicycler/package.py
+++ b/var/spack/repos/builtin/packages/py-unicycler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-unidecode/package.py b/var/spack/repos/builtin/packages/py-unidecode/package.py
index c5acb2dc4c..842eb2b106 100644
--- a/var/spack/repos/builtin/packages/py-unidecode/package.py
+++ b/var/spack/repos/builtin/packages/py-unidecode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyUnidecode(PythonPackage):
"""ASCII transliterations of Unicode text"""
- homepage = "https://pypi.org/project/Unidecode"
- url = "https://pypi.io/packages/source/u/unidecode/Unidecode-1.1.1.tar.gz"
+ pypi = "unidecode/Unidecode-1.1.1.tar.gz"
version('1.1.1', sha256='2b6aab710c2a1647e928e36d69c21e76b453cd455f4e2621000e54b2a9b8cce8')
version('0.04.21', sha256='280a6ab88e1f2eb5af79edff450021a0d3f0448952847cd79677e55e58bad051')
diff --git a/var/spack/repos/builtin/packages/py-unittest2/package.py b/var/spack/repos/builtin/packages/py-unittest2/package.py
index 1838843874..2510d3739b 100644
--- a/var/spack/repos/builtin/packages/py-unittest2/package.py
+++ b/var/spack/repos/builtin/packages/py-unittest2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ class PyUnittest2(PythonPackage):
"""unittest2 is a backport of the new features added to the unittest
testing framework in Python 2.7 and onwards."""
- homepage = "https://pypi.python.org/pypi/unittest2"
- url = "https://pypi.io/packages/source/u/unittest2/unittest2-1.1.0.tar.gz"
+ pypi = "unittest2/unittest2-1.1.0.tar.gz"
version('1.1.0', sha256='22882a0e418c284e1f718a822b3b022944d53d2d908e1690b319a9d3eb2c0579')
diff --git a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
index bf20186afd..3dc23c5941 100644
--- a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
+++ b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,7 @@ class PyUnittest2py3k(PythonPackage):
testing framework in Python 2.7 and 3.2. This is a Python 3 compatible
version of unittest2."""
- homepage = "https://pypi.python.org/pypi/unittest2py3k"
- url = "https://pypi.io/packages/source/u/unittest2py3k/unittest2py3k-0.5.1.tar.gz"
+ pypi = "unittest2py3k/unittest2py3k-0.5.1.tar.gz"
version('0.5.1', sha256='78249c5f1ac508a34d9d131d43a89d77bf154186f3ea5f7a6b993d3f3535d403')
diff --git a/var/spack/repos/builtin/packages/py-unshare/package.py b/var/spack/repos/builtin/packages/py-unshare/package.py
new file mode 100644
index 0000000000..03a56e53d2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-unshare/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyUnshare(PythonPackage):
+ """Python extension for Linux kernel's unshare syscall."""
+
+ homepage = "https://github.com/shubham1172/unshare"
+ pypi = "unshare/unshare-0.22.tar.gz"
+
+ version('0.22', sha256='d521d72cca6e876f22cbd5ff5eb51f1beef75e8f9c53b599b55fa05fba1dd3a6')
+
+ depends_on('py-setuptools', type='build')
+
+ conflicts('platform=darwin', msg='unshare is linux-only')
diff --git a/var/spack/repos/builtin/packages/py-update-checker/package.py b/var/spack/repos/builtin/packages/py-update-checker/package.py
index a1fbc7f368..2e203cc860 100644
--- a/var/spack/repos/builtin/packages/py-update-checker/package.py
+++ b/var/spack/repos/builtin/packages/py-update-checker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,12 @@ class PyUpdateChecker(PythonPackage):
"""A python module that will check for package updates."""
homepage = "https://github.com/bboe/update_checker"
- url = "https://pypi.io/packages/source/u/update_checker/update_checker-0.18.0.tar.gz"
+ pypi = "update_checker/update_checker-0.18.0.tar.gz"
version('0.18.0', sha256='6a2d45bb4ac585884a6b03f9eade9161cedd9e8111545141e9aa9058932acb13')
version('0.17', sha256='2def8db7f63bd45c7d19df5df570f3f3dfeb1a1f050869d7036529295db10e62')
depends_on('py-setuptools', type='build')
- depends_on('py-pytest@2.7.3:', type='test')
depends_on('python@3.6:', type=('build', 'run'), when='@0.18.0:')
depends_on('python@2.7:2.8,3.3:', type=('build', 'run'), when='@0.17')
depends_on('py-requests@2.3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-uproot/package.py b/var/spack/repos/builtin/packages/py-uproot/package.py
new file mode 100644
index 0000000000..2d911e9d05
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-uproot/package.py
@@ -0,0 +1,52 @@
+# Copyright 2013-2021 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 PyUproot(PythonPackage):
+ """ROOT I/O in pure Python and NumPy.
+
+ Uproot is a reader and a writer of the ROOT file format using only Python
+ and Numpy. Unlike the standard C++ ROOT implementation, Uproot is only an
+ I/O library, primarily intended to stream data into machine learning
+ libraries in Python. Unlike PyROOT and root_numpy, Uproot does not depend
+ on C++ ROOT. Instead, it uses Numpy to cast blocks of data from the ROOT
+ file as Numpy arrays."""
+
+ homepage = "https://github.com/scikit-hep/uproot4"
+ pypi = "uproot/uproot-4.0.6.tar.gz"
+
+ maintainers = ['vvolkl']
+
+ tags = ['hep']
+
+ version('4.0.11', sha256='5c8f62c7eeaa50e1315e05469580130d0bcc50a6cb4456825777f73cfaf5938a')
+ version('4.0.10', sha256='b7f9786d87227fcdc6b84305a6219cd615844f934e3b7c2509e2d4ed095950ab')
+ version('4.0.9', sha256='345c20dd4e1921e3493200bf9ed4079909fb1277d02faf3136e19f4b90f8aa86')
+ version('4.0.8', sha256='98282142725d678815ec6f8c76f42cfb3539c9c3d5b5561b8ef2129ac5a86bcd')
+ version('4.0.7', sha256='7adb688601fda1e9ab8eeb9a9de681f645827dac0943c6180cf85f03f73fb789')
+ version('4.0.6', sha256='1bea2ccc899c6959fb2af69d7e5d1e2df210caab30d3510e26f3fc07c143c37e')
+
+ variant('xrootd', default=True,
+ description='Build with xrootd support ')
+ variant('lz4', default=True,
+ description='Build with support for reading '
+ 'lz4-compressed rootfiles ')
+
+ variant('zstd', default=True,
+ description='Build with support for reading '
+ 'zstd-compressed rootfiles ')
+
+ depends_on('python@2.6:2.999,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+
+ depends_on('xrootd', when="+xrootd")
+
+ depends_on('lz4', when="+lz4")
+ depends_on('xxhash', when="+lz4")
+
+ depends_on('zstd', when="+zstd")
diff --git a/var/spack/repos/builtin/packages/py-uproot3-methods/package.py b/var/spack/repos/builtin/packages/py-uproot3-methods/package.py
new file mode 100644
index 0000000000..b7640cb15d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-uproot3-methods/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 PyUproot3Methods(PythonPackage):
+ """Pythonic mix-ins for ROOT classes.
+
+ This package is typically used as a dependency for uproot 3.x, to define
+ methods on the classes that are automatically generated from ROOT files.
+ This includes histograms (TH*) and physics objects like TLorentzVectors.
+ The reason it's a separate library is so that we can add physics-specific
+ functionality on a shorter timescale than we can update Uproot 3 itself,
+ which is purely an I/O package."""
+
+ homepage = "https://github.com/scikit-hep/uproot3-methods"
+ pypi = "uproot3-methods/uproot3-methods-0.10.1.tar.gz"
+
+ version('0.10.1', sha256='dd68f90be1ea276360b96369836849df29045f7fe4e534f9ac21ea00798ee358')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.13.1:', type=('build', 'run'))
+ depends_on('py-awkward0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-uproot3/package.py b/var/spack/repos/builtin/packages/py-uproot3/package.py
new file mode 100644
index 0000000000..656c2cd305
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-uproot3/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 PyUproot3(PythonPackage):
+ """ROOT I/O in pure Python and Numpy.
+
+ uproot is a reader and a writer of the ROOT file format using only Python
+ and Numpy. Unlike the standard C++ ROOT implementation, uproot is only an
+ I/O library, primarily intended to stream data into machine learning
+ libraries in Python. Unlike PyROOT and root_numpy, uproot does not depend
+ on C++ ROOT. Instead, it uses Numpy to cast blocks of data from the ROOT
+ file as Numpy arrays."""
+
+ homepage = "https://github.com/scikit-hep/uproot3"
+ pypi = "uproot3/uproot3-3.14.4.tar.gz"
+
+ version('3.14.4', sha256='4396746ba5ef9071bb0a9da53294e4613a7f4548218940f86496e79d682d20eb')
+
+ depends_on('python@2.7:2.9,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pytest-runner', type='build')
+ depends_on('py-numpy@1.13.1:', type=('build', 'run'))
+ depends_on('py-awkward0', type=('build', 'run'))
+ depends_on('py-uproot3-methods', type=('build', 'run'))
+ depends_on('py-cachetools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-uproot4/package.py b/var/spack/repos/builtin/packages/py-uproot4/package.py
index 4befa0ee76..e7d6610b3f 100644
--- a/var/spack/repos/builtin/packages/py-uproot4/package.py
+++ b/var/spack/repos/builtin/packages/py-uproot4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class PyUproot4(PythonPackage):
- """ROOT I/O in pure Python and NumPy."""
+ """DEPRECATED! This package was renamed to py-uproot.
+
+ ROOT I/O in pure Python and NumPy."""
homepage = "https://uproot4.readthedocs.io"
git = "https://github.com/scikit-hep/uproot4"
@@ -15,8 +17,18 @@ class PyUproot4(PythonPackage):
maintainers = ['vvolkl']
- version('master', branch='master')
- version('0.0.27', sha256='de87555937332998b476f3e310392962bc983bddc008ed2b3c07a25c0379c4c9')
+ tags = ['hep']
+
+ version('master', branch='master', deprecated=True)
+ version('4.0.2',
+ sha256='8145af29788cbe6bf0ee279a7f176159f3eee801641ead4ad6e627f8c4dff0a9',
+ deprecated=True)
+ version('0.1.2',
+ sha256='b32dbffadc87bc5707ee0093964d2ce4a5ccfd521b17bbf10732afc25b820d82',
+ deprecated=True)
+ version('0.0.27',
+ sha256='de87555937332998b476f3e310392962bc983bddc008ed2b3c07a25c0379c4c9',
+ deprecated=True)
variant('xrootd', default=True,
description='Build with xrootd support ')
diff --git a/var/spack/repos/builtin/packages/py-uritemplate/package.py b/var/spack/repos/builtin/packages/py-uritemplate/package.py
index 9b901e6a2f..1a4e762765 100644
--- a/var/spack/repos/builtin/packages/py-uritemplate/package.py
+++ b/var/spack/repos/builtin/packages/py-uritemplate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyUritemplate(PythonPackage):
"""Simple python library to deal with URI Templates."""
homepage = "https://uritemplate.readthedocs.org/"
- url = "https://pypi.io/packages/source/u/uritemplate/uritemplate-3.0.0.tar.gz"
+ pypi = "uritemplate/uritemplate-3.0.0.tar.gz"
version('3.0.0', sha256='c02643cebe23fc8adb5e6becffe201185bf06c40bda5c0b4028a93f1527d011d')
diff --git a/var/spack/repos/builtin/packages/py-urllib3/package.py b/var/spack/repos/builtin/packages/py-urllib3/package.py
index cbe4577ca4..b60f827909 100644
--- a/var/spack/repos/builtin/packages/py-urllib3/package.py
+++ b/var/spack/repos/builtin/packages/py-urllib3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,26 +11,30 @@ class PyUrllib3(PythonPackage):
more."""
homepage = "https://urllib3.readthedocs.io/"
- url = "https://pypi.io/packages/source/u/urllib3/urllib3-1.25.6.tar.gz"
+ pypi = "urllib3/urllib3-1.25.6.tar.gz"
+ version('1.26.6', sha256='f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f')
version('1.25.6', sha256='9a107b99a5393caf59c7aa3c1249c16e6879447533d0887f4336dde834c7be86')
version('1.25.3', sha256='dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232')
version('1.21.1', sha256='b14486978518ca0901a76ba973d7821047409d7f726f22156b24e83fd71382a5')
version('1.20', sha256='97ef2b6e2878d84c0126b9f4e608e37a951ca7848e4855a7f7f4437d5c34a72f')
version('1.14', sha256='dd4fb13a4ce50b18338c7e4d665b21fd38632c5d4b1d9f1a1379276bd3c08d37')
- depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ variant('socks', default=False, description='SOCKS and HTTP proxy support')
+ variant('secure', default=False, description='Add SSL/TLS support')
+ variant('brotli', default=False, description='Add Brotli support')
+
+ depends_on('python@2.7:2.8,3.4:', when='@:1.25', type=('build', 'run'))
+ depends_on('python@2.7:2.8,3.5:', when='@1.26.6', type=('build', 'run'))
+
depends_on('py-setuptools', type='build')
- depends_on('py-pytest', type='test')
- depends_on('py-mock', type='test')
- depends_on('py-tornado', type='test')
- variant('secure', default=False, description='Add SSL/TLS support')
depends_on('py-pyopenssl@0.14:', when='+secure')
depends_on('py-cryptography@1.3.4:', when='+secure')
depends_on('py-idna@2:', when='+secure')
depends_on('py-certifi', when='+secure')
depends_on('py-ipaddress', when='+secure ^python@2.7:2.8')
- variant('socks', default=False, description='SOCKS and HTTP proxy support')
depends_on('py-pysocks@1.5.6,1.5.8:1.999', when='+socks')
+
+ depends_on('py-brotlipy@0.6:', when='+brotli')
diff --git a/var/spack/repos/builtin/packages/py-urwid/package.py b/var/spack/repos/builtin/packages/py-urwid/package.py
index bf606f81b7..a04c4e3e2d 100644
--- a/var/spack/repos/builtin/packages/py-urwid/package.py
+++ b/var/spack/repos/builtin/packages/py-urwid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,8 @@ from spack import *
class PyUrwid(PythonPackage):
"""A full-featured console UI library"""
- homepage = "http://urwid.org/"
- url = "https://pypi.io/packages/source/u/urwid/urwid-1.3.0.tar.gz"
+ homepage = "https://urwid.org/"
+ pypi = "urwid/urwid-1.3.0.tar.gz"
version('1.3.0', sha256='29f04fad3bf0a79c5491f7ebec2d50fa086e9d16359896c9204c6a92bc07aba2')
diff --git a/var/spack/repos/builtin/packages/py-us/package.py b/var/spack/repos/builtin/packages/py-us/package.py
index 81ea11e9d8..5a1a33d75c 100644
--- a/var/spack/repos/builtin/packages/py-us/package.py
+++ b/var/spack/repos/builtin/packages/py-us/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,7 @@ from spack import *
class PyUs(PythonPackage):
"""US state meta information and other fun stuff."""
- homepage = "https://pypi.org/project/us/"
- url = "https://pypi.io/packages/source/u/us/us-1.0.0.tar.gz"
+ pypi = "us/us-1.0.0.tar.gz"
version('1.0.0', sha256='09dc9ba763e2e4399e6a042104f3e415a7de6bfa4df6f557b4f19e3ba9a22fda')
diff --git a/var/spack/repos/builtin/packages/py-usgs/package.py b/var/spack/repos/builtin/packages/py-usgs/package.py
index 69f2b97056..608e381547 100644
--- a/var/spack/repos/builtin/packages/py-usgs/package.py
+++ b/var/spack/repos/builtin/packages/py-usgs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,13 @@ class PyUsgs(PythonPackage):
"""Client library for interfacing with USGS datasets"""
homepage = "https://github.com/kapadia/usgs"
- url = "https://pypi.io/packages/source/u/usgs/usgs-0.2.7.tar.gz"
+ pypi = "usgs/usgs-0.2.7.tar.gz"
maintainers = ['adamjstewart']
version('0.2.7', sha256='484e569ea1baf9574e11ccf15219957364690dcf06ee3d09afef030df944e79b')
depends_on('py-setuptools', type='build')
- depends_on('py-mock', type='test')
- depends_on('py-pytest@2.8.7', type='test')
depends_on('py-click@4.0:', type=('build', 'run'))
depends_on('py-requests@2.7.0:', type=('build', 'run'))
depends_on('py-requests-futures@0.9.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-utils/package.py b/var/spack/repos/builtin/packages/py-utils/package.py
index e5a6c46989..4a95b7583c 100644
--- a/var/spack/repos/builtin/packages/py-utils/package.py
+++ b/var/spack/repos/builtin/packages/py-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-uvloop/package.py b/var/spack/repos/builtin/packages/py-uvloop/package.py
index 52a7709640..34248b23c0 100644
--- a/var/spack/repos/builtin/packages/py-uvloop/package.py
+++ b/var/spack/repos/builtin/packages/py-uvloop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyUvloop(PythonPackage):
"""uvloop is a fast, drop-in replacement of the built-in asyncio event"""
- homepage = "http://github.com/MagicStack/uvloop"
- url = "https://pypi.io/packages/source/u/uvloop/uvloop-0.14.0.tar.gz"
+ homepage = "https://github.com/MagicStack/uvloop"
+ pypi = "uvloop/uvloop-0.14.0.tar.gz"
version('0.14.0', sha256='123ac9c0c7dd71464f58f1b4ee0bbd81285d96cdda8bc3519281b8973e3a461e')
diff --git a/var/spack/repos/builtin/packages/py-uvw/package.py b/var/spack/repos/builtin/packages/py-uvw/package.py
index 0a87855fab..691277d3ee 100644
--- a/var/spack/repos/builtin/packages/py-uvw/package.py
+++ b/var/spack/repos/builtin/packages/py-uvw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyUvw(PythonPackage):
"""
homepage = "https://github.com/prs513rosewood/uvw"
- url = "https://pypi.io/packages/source/u/uvw/uvw-0.3.1.tar.gz"
+ pypi = "uvw/uvw-0.3.1.tar.gz"
maintainers = ['prs513rosewood']
diff --git a/var/spack/repos/builtin/packages/py-uwsgi/package.py b/var/spack/repos/builtin/packages/py-uwsgi/package.py
index fdc990d48d..6b083a7342 100644
--- a/var/spack/repos/builtin/packages/py-uwsgi/package.py
+++ b/var/spack/repos/builtin/packages/py-uwsgi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,9 @@ class PyUwsgi(PythonPackage):
"""Web Application framework for low overhead web services"""
homepage = "https://github.com/unbit/uwsgi/"
- url = "https://pypi.io/packages/source/u/uwsgi/uwsgi-2.0.18.tar.gz"
+ pypi = "uwsgi/uwsgi-2.0.18.tar.gz"
version('2.0.18', sha256='4972ac538800fb2d421027f49b4a1869b66048839507ccf0aa2fda792d99f583')
depends_on('py-setuptools', type='build')
+ depends_on('python', type=('build', 'link', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-vcf-kit/package.py b/var/spack/repos/builtin/packages/py-vcf-kit/package.py
index f3f4b0302b..6875ce7d6a 100644
--- a/var/spack/repos/builtin/packages/py-vcf-kit/package.py
+++ b/var/spack/repos/builtin/packages/py-vcf-kit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-vcrpy/package.py b/var/spack/repos/builtin/packages/py-vcrpy/package.py
new file mode 100644
index 0000000000..120e9b8767
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-vcrpy/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyVcrpy(PythonPackage):
+ """Automatically mock your HTTP interactions to simplify and speed up testing."""
+
+ homepage = "https://github.com/kevin1024/vcrpy"
+ pypi = "vcrpy/vcrpy-4.1.1.tar.gz"
+
+ version('4.1.1', sha256='57095bf22fc0a2d99ee9674cdafebed0f3ba763018582450706f7d3a74fff599')
+
+ depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-wrapt', type=('build', 'run'))
+ depends_on('py-six@1.5:', type=('build', 'run'))
+ depends_on('py-yarl', when='^python@3.6:', type=('build', 'run'))
+ depends_on('py-yarl@:1.3', when='^python@3.5', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-vcstool/package.py b/var/spack/repos/builtin/packages/py-vcstool/package.py
new file mode 100644
index 0000000000..b0e733d70c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-vcstool/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyVcstool(PythonPackage):
+ """vcstool enables batch commands on multiple different vcs repositories.
+
+ Currently it supports git, hg, svn and bzr."""
+
+ homepage = "https://github.com/dirk-thomas/vcstool"
+ pypi = "vcstool/vcstool-0.2.15.tar.gz"
+
+ version('0.2.15', sha256='b1fce6fcef7b117b245a72dc8658a128635749d01dc7e9d1316490f89f9c2fde')
+
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build', 'run'))
+ depends_on('py-argparse', when='^python@:2.6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-vcstools/package.py b/var/spack/repos/builtin/packages/py-vcstools/package.py
new file mode 100644
index 0000000000..691e23fb30
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-vcstools/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyVcstools(PythonPackage):
+ """VCS/SCM source control library for svn, git, hg, and bzr."""
+
+ homepage = "https://wiki.ros.org/vcstools"
+ pypi = "vcstools/vcstools-0.1.42.tar.gz"
+
+ version('0.1.42', sha256='9e48d8ed8b0fdda739af56e05bf10da1a509cb7d4950a19c73264c770802777a')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-python-dateutil', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-vcversioner/package.py b/var/spack/repos/builtin/packages/py-vcversioner/package.py
index 7feda4a213..fc9000831e 100644
--- a/var/spack/repos/builtin/packages/py-vcversioner/package.py
+++ b/var/spack/repos/builtin/packages/py-vcversioner/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyVcversioner(PythonPackage):
"""Vcversioner: Take version numbers from version control."""
homepage = "https://github.com/habnabit/vcversioner"
- url = "https://pypi.io/packages/source/v/vcversioner/vcversioner-2.16.0.0.tar.gz"
+ pypi = "vcversioner/vcversioner-2.16.0.0.tar.gz"
version('2.16.0.0', sha256='dae60c17a479781f44a4010701833f1829140b1eeccd258762a74974aa06e19b')
diff --git a/var/spack/repos/builtin/packages/py-vermin/package.py b/var/spack/repos/builtin/packages/py-vermin/package.py
index bff9e0fc57..59c7e30ea5 100644
--- a/var/spack/repos/builtin/packages/py-vermin/package.py
+++ b/var/spack/repos/builtin/packages/py-vermin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,15 @@ class PyVermin(PythonPackage):
"""Concurrently detect the minimum Python versions needed to run code."""
homepage = "https://github.com/netromdk/vermin"
- url = "https://github.com/netromdk/vermin/archive/v1.0.3.tar.gz"
+ url = "https://github.com/netromdk/vermin/archive/v1.2.2.tar.gz"
maintainers = ['netromdk']
- import_modules = ['vermin']
+ version('1.2.2', sha256='d0343b2a78d7e4de67dfd2d882eeaf8b241db724f7e67f83bdd4111edb97f1e2')
+ version('1.2.1', sha256='b7b2c77cf67a27a432371cbc7f184151b6f3dd22bd9ccf3a7a10b7ae3532ac81')
+ version('1.2.0', sha256='a3ab6dc6608b859f301b9a77d5cc0d03335aae10c49d47a91b82be5be48c4f1f')
+ version('1.1.1', sha256='d13b2281ba16c9d5b0913646483771789552230a9ed625e2cd92c5a112e4ae80')
+ version('1.1.0', sha256='62d9f1b6694f50c22343cead2ddb6e2b007d24243fb583f61ceed7540fbe660b')
version('1.0.3', sha256='1503be05b55cacde1278a1fe55304d8ee889ddef8ba16e120ac6686259bec95c')
version('1.0.2', sha256='e999d5f5455e1116b366cd1dcc6fecd254c7ae3606549a61bc044216f9bb5b55')
version('1.0.1', sha256='c06183ba653b9d5f6687a6686da8565fb127fab035f9127a5acb172b7c445079')
@@ -24,5 +28,7 @@ class PyVermin(PythonPackage):
depends_on('python@2.7:', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
- def test(self):
+ @run_after('build')
+ @on_package_attributes(run_tests=True)
+ def build_test(self):
make('test')
diff --git a/var/spack/repos/builtin/packages/py-versioneer/package.py b/var/spack/repos/builtin/packages/py-versioneer/package.py
index d98ec6524c..c35990e4ea 100644
--- a/var/spack/repos/builtin/packages/py-versioneer/package.py
+++ b/var/spack/repos/builtin/packages/py-versioneer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-vine/package.py b/var/spack/repos/builtin/packages/py-vine/package.py
index 415276611c..ed2da70383 100644
--- a/var/spack/repos/builtin/packages/py-vine/package.py
+++ b/var/spack/repos/builtin/packages/py-vine/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyVine(PythonPackage):
"""Promises, promises, promises."""
- homepage = "https://pypi.org/project/vine/"
- url = "https://pypi.io/packages/source/v/vine/vine-1.2.0.tar.gz"
+ pypi = "vine/vine-1.2.0.tar.gz"
version('5.0.0', sha256='7d3b1624a953da82ef63462013bbd271d3eb75751489f9807598e8f340bd637e')
version('1.3.0', sha256='133ee6d7a9016f177ddeaf191c1f58421a1dcc6ee9a42c58b34bed40e1d2cd87')
diff --git a/var/spack/repos/builtin/packages/py-virtualenv-clone/package.py b/var/spack/repos/builtin/packages/py-virtualenv-clone/package.py
index 287a4152dc..422c6489c8 100644
--- a/var/spack/repos/builtin/packages/py-virtualenv-clone/package.py
+++ b/var/spack/repos/builtin/packages/py-virtualenv-clone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyVirtualenvClone(PythonPackage):
"""A script for cloning a non-relocatable virtualenv."""
homepage = "https://github.com/edwardgeorge/virtualenv-clone"
- url = "https://pypi.io/packages/source/v/virtualenv-clone/virtualenv-clone-0.2.6.tar.gz"
+ pypi = "virtualenv-clone/virtualenv-clone-0.2.6.tar.gz"
version('0.2.6', sha256='6b3be5cab59e455f08c9eda573d23006b7d6fb41fae974ddaa2b275c93cc4405')
diff --git a/var/spack/repos/builtin/packages/py-virtualenv/package.py b/var/spack/repos/builtin/packages/py-virtualenv/package.py
index 3a1c593023..6098c804fe 100644
--- a/var/spack/repos/builtin/packages/py-virtualenv/package.py
+++ b/var/spack/repos/builtin/packages/py-virtualenv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyVirtualenv(PythonPackage):
"""virtualenv is a tool to create isolated Python environments."""
homepage = "https://virtualenv.pypa.io/"
- url = "https://pypi.io/packages/source/v/virtualenv/virtualenv-16.7.6.tar.gz"
+ pypi = "virtualenv/virtualenv-16.7.6.tar.gz"
version('16.7.6', sha256='5d370508bf32e522d79096e8cbea3499d47e624ac7e11e9089f9397a0b3318df')
version('16.4.1', sha256='5a3ecdfbde67a4a3b3111301c4d64a5b71cf862c8c42958d30cf3253df1f29dd')
diff --git a/var/spack/repos/builtin/packages/py-virtualenvwrapper/package.py b/var/spack/repos/builtin/packages/py-virtualenvwrapper/package.py
index 235761f58a..61aab2c210 100644
--- a/var/spack/repos/builtin/packages/py-virtualenvwrapper/package.py
+++ b/var/spack/repos/builtin/packages/py-virtualenvwrapper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class PyVirtualenvwrapper(PythonPackage):
without introducing conflicts in their dependencies."""
homepage = "https://bitbucket.org/virtualenvwrapper/virtualenvwrapper.git"
- url = "https://pypi.io/packages/source/v/virtualenvwrapper/virtualenvwrapper-4.8.2.tar.gz"
+ pypi = "virtualenvwrapper/virtualenvwrapper-4.8.2.tar.gz"
version('4.8.2', sha256='18d8e4c500c4c4ee794f704e050cf2bbb492537532a4521d1047e7dd1ee4e374')
diff --git a/var/spack/repos/builtin/packages/py-visdom/package.py b/var/spack/repos/builtin/packages/py-visdom/package.py
index b6bd808346..3a24e7f971 100644
--- a/var/spack/repos/builtin/packages/py-visdom/package.py
+++ b/var/spack/repos/builtin/packages/py-visdom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyVisdom(PythonPackage):
experimentation."""
homepage = "https://github.com/facebookresearch/visdom"
- url = "https://pypi.io/packages/source/v/visdom/visdom-0.1.8.9.tar.gz"
+ pypi = "visdom/visdom-0.1.8.9.tar.gz"
version('0.1.8.9', sha256='c73ad23723c24a48156899f78dd76bd4538eba3edf9120b6c65a9528fa677126')
diff --git a/var/spack/repos/builtin/packages/py-voluptuous/package.py b/var/spack/repos/builtin/packages/py-voluptuous/package.py
index 1d497d8ea2..d78bb37699 100644
--- a/var/spack/repos/builtin/packages/py-voluptuous/package.py
+++ b/var/spack/repos/builtin/packages/py-voluptuous/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class PyVoluptuous(PythonPackage):
"""Voluptous, despite the name, is a Python data validation library."""
homepage = "https://github.com/alecthomas/voluptuous"
- url = "https://pypi.io/packages/source/v/voluptuous/voluptuous-0.11.5.tar.gz"
+ pypi = "voluptuous/voluptuous-0.11.5.tar.gz"
version('0.11.7', sha256='2abc341dbc740c5e2302c7f9b8e2e243194fb4772585b991931cb5b22e9bf456')
version('0.11.6', sha256='d2ca99ae1d1ed0313e8965720d1d75a780fc7f312fea4e3dbbb56ccfe5a8306d')
diff --git a/var/spack/repos/builtin/packages/py-vsc-base/package.py b/var/spack/repos/builtin/packages/py-vsc-base/package.py
index 159eace26d..6778fbe048 100644
--- a/var/spack/repos/builtin/packages/py-vsc-base/package.py
+++ b/var/spack/repos/builtin/packages/py-vsc-base/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyVscBase(PythonPackage):
"""Common Python libraries tools created by HPC-UGent"""
homepage = 'https://github.com/hpcugent/vsc-base/'
- url = 'https://pypi.io/packages/source/v/vsc-base/vsc-base-2.5.8.tar.gz'
+ pypi = 'vsc-base/vsc-base-2.5.8.tar.gz'
version('2.5.8', sha256='7fcd300f842edf4baade7d0b7a3b462ca7dfb2a411a7532694a90127c6646ee2')
diff --git a/var/spack/repos/builtin/packages/py-vsc-install/package.py b/var/spack/repos/builtin/packages/py-vsc-install/package.py
index fb0e2135d5..a4155ee2d5 100644
--- a/var/spack/repos/builtin/packages/py-vsc-install/package.py
+++ b/var/spack/repos/builtin/packages/py-vsc-install/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class PyVscInstall(PythonPackage):
"""
homepage = 'https://github.com/hpcugent/vsc-install/'
- url = 'https://pypi.io/packages/source/v/vsc-install/vsc-install-0.10.25.tar.gz'
+ pypi = 'vsc-install/vsc-install-0.10.25.tar.gz'
version('0.10.25', sha256='744fa52b45577251d94e9298ecb115afd295f2530eba64c524f469b5e283f19c')
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
index 0e44620e69..5891351a76 100644
--- a/var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py
+++ b/var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "vsts-cd-manager/vsts-cd-manager-1.0.2.tar.gz"
version('1.0.2', sha256='0bb09059cd553e1c206e92ef324cb0dcf92334846d646c44c684f6256b86447b')
diff --git a/var/spack/repos/builtin/packages/py-vsts/package.py b/var/spack/repos/builtin/packages/py-vsts/package.py
index ed597e3cbd..75eb7ac9b6 100644
--- a/var/spack/repos/builtin/packages/py-vsts/package.py
+++ b/var/spack/repos/builtin/packages/py-vsts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ 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"
+ pypi = "vsts/vsts-0.1.25.tar.gz"
version('0.1.25', sha256='da179160121f5b38be061dbff29cd2b60d5d029b2207102454d77a7114e64f97')
diff --git a/var/spack/repos/builtin/packages/py-walinuxagent/package.py b/var/spack/repos/builtin/packages/py-walinuxagent/package.py
index 8d4bf4cb9f..079dd8cb28 100644
--- a/var/spack/repos/builtin/packages/py-walinuxagent/package.py
+++ b/var/spack/repos/builtin/packages/py-walinuxagent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-wand/package.py b/var/spack/repos/builtin/packages/py-wand/package.py
index 17a5af30b3..8ca6df2c2c 100644
--- a/var/spack/repos/builtin/packages/py-wand/package.py
+++ b/var/spack/repos/builtin/packages/py-wand/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyWand(PythonPackage):
"""Wand is a ctypes-based simple ImageMagick binding for Python.
"""
- homepage = "http://docs.wand-py.org"
- url = "https://pypi.io/packages/source/W/Wand/Wand-0.5.6.tar.gz"
+ homepage = "https://docs.wand-py.org"
+ pypi = "Wand/Wand-0.5.6.tar.gz"
version('0.5.6', sha256='d06b59f36454024ce952488956319eb542d5dc65f1e1b00fead71df94dbfcf88')
version('0.4.2', sha256='a0ded99a9824ddd82617a4b449164e2c5c93853aaff96f9e0bab8b405d62ca7c')
@@ -24,7 +24,3 @@ class PyWand(PythonPackage):
depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
depends_on('py-sphinx@1:', type='build', when='+docs')
-
- depends_on('py-pytest@2.3.0:', type='test')
- depends_on('py-pytest-xdist@1.8:', type='test')
- depends_on('py-psutil@1.0.1:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-wandb/package.py b/var/spack/repos/builtin/packages/py-wandb/package.py
index 9c3348cca8..5dbb59999d 100644
--- a/var/spack/repos/builtin/packages/py-wandb/package.py
+++ b/var/spack/repos/builtin/packages/py-wandb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-warlock/package.py b/var/spack/repos/builtin/packages/py-warlock/package.py
index 60e36680e3..55177bd0ec 100644
--- a/var/spack/repos/builtin/packages/py-warlock/package.py
+++ b/var/spack/repos/builtin/packages/py-warlock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-warpx/package.py b/var/spack/repos/builtin/packages/py-warpx/package.py
new file mode 100644
index 0000000000..8c3f6d9538
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-warpx/package.py
@@ -0,0 +1,54 @@
+# Copyright 2013-2021 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 PyWarpx(PythonPackage):
+ """WarpX is an advanced electromagnetic Particle-In-Cell code. It supports
+ many features including Perfectly-Matched Layers (PML) and mesh refinement.
+ In addition, WarpX is a highly-parallel and highly-optimized code and
+ features hybrid OpenMP/MPI parallelization, advanced vectorization
+ techniques and load balancing capabilities.
+
+ These are the Python bindings of WarpX with PICMI input support.
+ See the C++ 'warpx' package for the WarpX application and library.
+ """
+
+ homepage = "https://ecp-warpx.github.io"
+ url = "https://github.com/ECP-WarpX/WarpX/archive/refs/tags/21.04.tar.gz"
+ git = "https://github.com/ECP-WarpX/WarpX.git"
+
+ maintainers = ['ax3l', 'dpgrote', 'RemiLehe']
+
+ # NOTE: if you update the versions here, also see warpx
+ version('develop', branch='development')
+ version('21.09', sha256='861a65f11846541c803564db133c8678b9e8779e69902ef1637b21399d257eab')
+ version('21.08', sha256='6128a32cfd075bc63d08eebea6d4f62d33ce0570f4fd72330a71023ceacccc86')
+ version('21.07', sha256='a8740316d813c365715f7471201499905798b50bd94950d33f1bd91478d49561')
+ version('21.06', sha256='a26039dc4061da45e779dd5002467c67a533fc08d30841e01e7abb3a890fbe30')
+ version('21.05', sha256='f835f0ae6c5702550d23191aa0bb0722f981abb1460410e3d8952bc3d945a9fc')
+ version('21.04', sha256='51d2d8b4542eada96216e8b128c0545c4b7527addc2038efebe586c32c4020a0')
+
+ variant('mpi', default=True,
+ description='Enable MPI support')
+
+ for v in ['21.09', '21.08', '21.07', '21.06', '21.05', '21.04', 'develop']:
+ depends_on('warpx@{0}'.format(v),
+ when='@{0}'.format(v),
+ type=['build', 'link'])
+
+ depends_on('python@3.6:', type=('build', 'run'))
+ depends_on('py-numpy@1.15.0:1.99.99', type=('build', 'run'))
+ depends_on('py-mpi4py@2.0.0:', type=('build', 'run'), when='+mpi')
+ depends_on('py-periodictable@1.5:1.99', type=('build', 'run'))
+ depends_on('py-picmistandard@0.0.14', type=('build', 'run'))
+ depends_on('py-setuptools@38.6:', type='build')
+ depends_on('py-wheel', type='build')
+ depends_on('warpx +lib ~mpi +shared', type=('build', 'link'), when='~mpi')
+ depends_on('warpx +lib +mpi +shared', type=('build', 'link'), when='+mpi')
+
+ def setup_build_environment(self, env):
+ env.set('PYWARPX_LIB_DIR', self.spec['warpx'].prefix.lib)
diff --git a/var/spack/repos/builtin/packages/py-wasabi/package.py b/var/spack/repos/builtin/packages/py-wasabi/package.py
index c03d14f3e1..9629741e35 100644
--- a/var/spack/repos/builtin/packages/py-wasabi/package.py
+++ b/var/spack/repos/builtin/packages/py-wasabi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,8 @@ class PyWasabi(PythonPackage):
"""wasabi: A lightweight console printing and formatting toolkit."""
homepage = "https://ines.io/"
- url = "https://pypi.io/packages/source/w/wasabi/wasabi-0.6.0.tar.gz"
+ pypi = "wasabi/wasabi-0.6.0.tar.gz"
version('0.6.0', sha256='b8dd3e963cd693fde1eb6bfbecf51790171aa3534fa299faf35cf269f2fd6063')
depends_on('py-setuptools', type='build')
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-watchdog/package.py b/var/spack/repos/builtin/packages/py-watchdog/package.py
index c4f5c5b233..cbeaf68879 100644
--- a/var/spack/repos/builtin/packages/py-watchdog/package.py
+++ b/var/spack/repos/builtin/packages/py-watchdog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-wcsaxes/package.py b/var/spack/repos/builtin/packages/py-wcsaxes/package.py
index eff494c3c6..3072e53da4 100644
--- a/var/spack/repos/builtin/packages/py-wcsaxes/package.py
+++ b/var/spack/repos/builtin/packages/py-wcsaxes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyWcsaxes(PythonPackage):
"""WCSAxes is a framework for making plots of Astronomical data
in Matplotlib."""
- homepage = "http://wcsaxes.readthedocs.io/en/latest/index.html"
+ homepage = "https://wcsaxes.readthedocs.io/en/latest/index.html"
url = "https://github.com/astrofrog/wcsaxes/archive/v0.8.tar.gz"
version('0.8', sha256='9c6addc1ec04cc99617850354b2c03dbd4099d2e43b45a81f8bc3069de9c8e83')
diff --git a/var/spack/repos/builtin/packages/py-wcwidth/package.py b/var/spack/repos/builtin/packages/py-wcwidth/package.py
index 150ad6793c..67c05b27c4 100644
--- a/var/spack/repos/builtin/packages/py-wcwidth/package.py
+++ b/var/spack/repos/builtin/packages/py-wcwidth/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyWcwidth(PythonPackage):
"""Measures number of Terminal column cells of wide-character codes"""
- homepage = "https://pypi.python.org/pypi/wcwidth"
- url = "https://pypi.io/packages/source/w/wcwidth/wcwidth-0.1.7.tar.gz"
+ pypi = "wcwidth/wcwidth-0.1.7.tar.gz"
version('0.1.7', sha256='3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e')
diff --git a/var/spack/repos/builtin/packages/py-weave/package.py b/var/spack/repos/builtin/packages/py-weave/package.py
index bb45340d84..9c448f8119 100644
--- a/var/spack/repos/builtin/packages/py-weave/package.py
+++ b/var/spack/repos/builtin/packages/py-weave/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class PyWeave(PythonPackage):
``scipy.weave``. For new code, users are recommended to use Cython."""
homepage = "https://www.github.com/scipy/weave"
- url = "https://pypi.io/packages/source/w/weave/weave-0.17.0.tar.gz"
+ pypi = "weave/weave-0.17.0.tar.gz"
version('0.17.0', sha256='2703f3ae6d23ad47b5f09b6bcb7affd0fb587120a0c973e7be40ef24de709998')
diff --git a/var/spack/repos/builtin/packages/py-webencodings/package.py b/var/spack/repos/builtin/packages/py-webencodings/package.py
index fd65a0655d..328d3dd031 100644
--- a/var/spack/repos/builtin/packages/py-webencodings/package.py
+++ b/var/spack/repos/builtin/packages/py-webencodings/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyWebencodings(PythonPackage):
"""This is a Python implementation of the WHATWG Encoding standard."""
homepage = "https://github.com/gsnedders/python-webencodings"
- url = "https://pypi.io/packages/source/w/webencodings/webencodings-0.5.1.tar.gz"
+ pypi = "webencodings/webencodings-0.5.1.tar.gz"
version('0.5.1', sha256='b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923')
diff --git a/var/spack/repos/builtin/packages/py-webkit-server/package.py b/var/spack/repos/builtin/packages/py-webkit-server/package.py
index c3aebca85e..985c6d511d 100644
--- a/var/spack/repos/builtin/packages/py-webkit-server/package.py
+++ b/var/spack/repos/builtin/packages/py-webkit-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyWebkitServer(PythonPackage):
"""a Webkit-based, headless web client"""
homepage = "https://github.com/niklasb/webkit-server"
- url = "https://pypi.io/packages/source/w/webkit-server/webkit-server-1.0.tar.gz"
+ pypi = "webkit-server/webkit-server-1.0.tar.gz"
git = "https://github.com/niklasb/webkit-server.git"
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/py-weblogo/package.py b/var/spack/repos/builtin/packages/py-weblogo/package.py
index d48fb5b381..e988f2905a 100644
--- a/var/spack/repos/builtin/packages/py-weblogo/package.py
+++ b/var/spack/repos/builtin/packages/py-weblogo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyWeblogo(PythonPackage):
sequence logos as easy and painless as possible."""
homepage = "http://weblogo.threeplusone.com"
- url = "https://pypi.io/packages/source/w/weblogo/weblogo-3.6.0.tar.gz"
+ pypi = "weblogo/weblogo-3.6.0.tar.gz"
version('3.6.0', sha256='af5a9f065581f18d71bd7c22b160c1e443932f22cab992d439d3dc8757c80a85')
diff --git a/var/spack/repos/builtin/packages/py-webob/package.py b/var/spack/repos/builtin/packages/py-webob/package.py
new file mode 100644
index 0000000000..5c16b5ccb1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-webob/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyWebob(PythonPackage):
+ """WebOb provides objects for HTTP requests and responses."""
+
+ homepage = "https://webob.org/"
+ pypi = "WebOb/WebOb-1.8.7.tar.gz"
+
+ version('1.8.7', sha256='b64ef5141be559cfade448f044fa45c2260351edcb6a8ef6b7e00c7dcef0c323')
+
+ depends_on('python@2.7:2.8,3.3:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
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 c55df5e899..3cdef8b4e9 100644
--- a/var/spack/repos/builtin/packages/py-websocket-client/package.py
+++ b/var/spack/repos/builtin/packages/py-websocket-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,10 +8,11 @@ class PyWebsocketClient(PythonPackage):
"""WebSocket client for Python. hybi13 is supported."""
homepage = "https://github.com/websocket-client/websocket-client.git"
- url = "https://pypi.io/packages/source/w/websocket_client/websocket_client-0.57.0.tar.gz"
+ pypi = "websocket_client/websocket_client-0.57.0.tar.gz"
version('0.57.0', sha256='d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010')
version('0.56.0', sha256='1fd5520878b68b84b5748bb30e592b10d0a91529d5383f74f4964e72b297fd3a')
+ version('0.48.0', sha256='18f1170e6a1b5463986739d9fd45c4308b0d025c1b2f9b88788d8f69e8a5eb4a')
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/py-websockets/package.py b/var/spack/repos/builtin/packages/py-websockets/package.py
index 891678934c..4e592f4aea 100644
--- a/var/spack/repos/builtin/packages/py-websockets/package.py
+++ b/var/spack/repos/builtin/packages/py-websockets/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-werkzeug/package.py b/var/spack/repos/builtin/packages/py-werkzeug/package.py
index 876deeb445..8d4f3c0e84 100644
--- a/var/spack/repos/builtin/packages/py-werkzeug/package.py
+++ b/var/spack/repos/builtin/packages/py-werkzeug/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,18 @@ class PyWerkzeug(PythonPackage):
"""The Swiss Army knife of Python web development"""
homepage = "http://werkzeug.pocoo.org"
- url = "https://pypi.io/packages/source/W/Werkzeug/Werkzeug-0.16.0.tar.gz"
+ pypi = "Werkzeug/Werkzeug-0.16.0.tar.gz"
version('0.16.0', sha256='7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7')
+ version('0.15.6', sha256='0a24d43be6a7dce81bae05292356176d6c46d63e42a0dd3f9504b210a9cfaa43')
+ version('0.15.5', sha256='a13b74dd3c45f758d4ebdb224be8f1ab8ef58b3c0ffc1783a8c7d9f4f50227e6')
version('0.15.4', sha256='a0b915f0815982fb2a09161cb8f31708052d0951c3ba433ccc5e1aa276507ca6')
+ version('0.15.3', sha256='cfd1281b1748288e59762c0e174d64d8bcb2b70e7c57bc4a1203c8825af24ac3')
+ version('0.15.2', sha256='0a73e8bb2ff2feecfc5d56e6f458f5b99290ef34f565ffb2665801ff7de6af7a')
+ version('0.15.1', sha256='ca5c2dcd367d6c0df87185b9082929d255358f5391923269335782b213d52655')
+ version('0.15.0', sha256='590abe38f8be026d78457fe3b5200895b3543e58ac3fc1dd792c6333ea11af64')
version('0.11.15', sha256='455d7798ac263266dbd38d4841f7534dd35ca9c3da4a8df303f8488f38f3bcc0')
version('0.11.11', sha256='e72c46bc14405cba7a26bd2ce28df734471bc9016bc8b4cb69466c2c14c2f7e5')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
- depends_on('py-pytest', type='test')
- depends_on('py-hypothesis', type='test')
- depends_on('py-requests', type='test')
diff --git a/var/spack/repos/builtin/packages/py-wget/package.py b/var/spack/repos/builtin/packages/py-wget/package.py
new file mode 100644
index 0000000000..329abed851
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-wget/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyWget(PythonPackage):
+ """pure python download utility
+
+ Download the file for your platform. If you're not sure which to choose,
+ learn more about installing packages."""
+
+ pypi = "wget/wget-3.2.zip"
+
+ version('3.2', sha256='35e630eca2aa50ce998b9b1a127bb26b30dfee573702782aa982f875e3f16061')
diff --git a/var/spack/repos/builtin/packages/py-whatshap/package.py b/var/spack/repos/builtin/packages/py-whatshap/package.py
index 62ff90ff82..68ac8b9df0 100644
--- a/var/spack/repos/builtin/packages/py-whatshap/package.py
+++ b/var/spack/repos/builtin/packages/py-whatshap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-wheel/package.py b/var/spack/repos/builtin/packages/py-wheel/package.py
index 846d315650..a5737d5b92 100644
--- a/var/spack/repos/builtin/packages/py-wheel/package.py
+++ b/var/spack/repos/builtin/packages/py-wheel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,12 @@ class PyWheel(PythonPackage):
"""A built-package format for Python."""
homepage = "https://github.com/pypa/wheel"
- url = "https://pypi.io/packages/source/w/wheel/wheel-0.34.2.tar.gz"
+ pypi = "wheel/wheel-0.34.2.tar.gz"
+ version('0.36.2', sha256='e11eefd162658ea59a60a0f6c7d493a7190ea4b9a85e335b33489d9f17e0245e')
+ version('0.35.1', sha256='99a22d87add3f634ff917310a3d87e499f19e663413a52eb9232c447aa646c9f')
version('0.34.2', sha256='8788e9155fe14f54164c1b9eb0a319d98ef02c160725587ad60f14ddc57b6f96')
+ version('0.33.6', sha256='10c9da68765315ed98850f8e048347c3eb06dd81822dc2ab1d4fde9dc9702646')
version('0.33.4', sha256='62fcfa03d45b5b722539ccbc07b190e4bfff4bb9e3a4d470dd9f6a0981002565')
version('0.33.1', sha256='66a8fd76f28977bb664b098372daef2b27f60dc4d1688cfab7b37a09448f0e9d')
version('0.32.3', sha256='029703bf514e16c8271c3821806a1c171220cc5bdd325cbf4e7da1e056a01db6')
@@ -25,5 +28,3 @@ class PyWheel(PythonPackage):
depends_on('py-setuptools@40.9.0:', when='@0.34.1:', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-setuptools-scm@3.4:', when='@0.34.0', type='build')
- depends_on('py-pytest@3.0.0:', type='test')
- depends_on('py-pytest-cov', type='test')
diff --git a/var/spack/repos/builtin/packages/py-whichcraft/package.py b/var/spack/repos/builtin/packages/py-whichcraft/package.py
index 24dec3f888..2456c4f871 100644
--- a/var/spack/repos/builtin/packages/py-whichcraft/package.py
+++ b/var/spack/repos/builtin/packages/py-whichcraft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-whoosh/package.py b/var/spack/repos/builtin/packages/py-whoosh/package.py
new file mode 100644
index 0000000000..e61b07733a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-whoosh/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyWhoosh(PythonPackage):
+ """Fast, pure-Python full text indexing, search, and spell checking library."""
+
+ homepage = "https://whoosh.readthedocs.io"
+ pypi = "Whoosh/Whoosh-2.7.4.tar.gz"
+
+ version('2.7.4', sha256='7ca5633dbfa9e0e0fa400d3151a8a0c4bec53bd2ecedc0a67705b17565c31a83')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py
index 347641a8da..1650736439 100644
--- a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py
+++ b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyWidgetsnbextension(PythonPackage):
"""IPython HTML widgets for Jupyter"""
- homepage = "https://pypi.python.org/pypi/widgetsnbextension"
- url = "https://pypi.io/packages/source/w/widgetsnbextension/widgetsnbextension-1.2.6.tar.gz"
+ pypi = "widgetsnbextension/widgetsnbextension-1.2.6.tar.gz"
version('3.5.1', sha256='079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7')
version('3.4.2', sha256='fa618be8435447a017fd1bf2c7ae922d0428056cfc7449f7a8641edf76b48265')
diff --git a/var/spack/repos/builtin/packages/py-wincertstore/package.py b/var/spack/repos/builtin/packages/py-wincertstore/package.py
new file mode 100644
index 0000000000..6361e93c78
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-wincertstore/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyWincertstore(PythonPackage):
+ """wincertstore provides an interface to access Windows' CA and CRL certificates.
+ It uses ctypes and Windows's sytem cert store API through crypt32.dll."""
+
+ homepage = "https://github.com/tiran/wincertstore"
+ pypi = "wincertstore/wincertstore-0.2.zip"
+
+ version('0.2', sha256='780bd1557c9185c15d9f4221ea7f905cb20b93f7151ca8ccaed9714dce4b327a')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-word2number/package.py b/var/spack/repos/builtin/packages/py-word2number/package.py
new file mode 100644
index 0000000000..de80d9041f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-word2number/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyWord2number(PythonPackage):
+ """This is a Python module to convert number words (eg.
+ twenty one) to numeric digits (21). It works for positive
+ numbers upto the range of 999,999,999,999 (i.e.
+ billions)."""
+
+ homepage = "https://w2n.readthedocs.io"
+ pypi = "word2number/word2number-1.1.zip"
+
+ version('1.1', sha256='70e27a5d387f67b04c71fbb7621c05930b19bfd26efd6851e6e0f9969dcde7d0')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-workload-automation/package.py b/var/spack/repos/builtin/packages/py-workload-automation/package.py
index bc65e210ff..d6ed783527 100644
--- a/var/spack/repos/builtin/packages/py-workload-automation/package.py
+++ b/var/spack/repos/builtin/packages/py-workload-automation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-wradlib/package.py b/var/spack/repos/builtin/packages/py-wradlib/package.py
index 14ae8b347a..f5b9c0455c 100644
--- a/var/spack/repos/builtin/packages/py-wradlib/package.py
+++ b/var/spack/repos/builtin/packages/py-wradlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class PyWradlib(PythonPackage):
attenuation) and visualising the data."""
homepage = "https://docs.wradlib.org"
- url = "https://pypi.io/packages/source/w/wradlib/wradlib-1.5.0.tar.gz"
+ pypi = "wradlib/wradlib-1.5.0.tar.gz"
version('1.5.0', sha256='9bf0742d7235ea830e83c2269f6b5d1afd83d92696efce0a7bcdb0c4f6604784')
diff --git a/var/spack/repos/builtin/packages/py-wrapt/package.py b/var/spack/repos/builtin/packages/py-wrapt/package.py
index bc2a4ae804..6d2aec630e 100644
--- a/var/spack/repos/builtin/packages/py-wrapt/package.py
+++ b/var/spack/repos/builtin/packages/py-wrapt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,9 @@ class PyWrapt(PythonPackage):
"""Module for decorators, wrappers and monkey patching."""
homepage = "https://github.com/GrahamDumpleton/wrapt"
- url = "https://pypi.io/packages/source/w/wrapt/wrapt-1.11.2.tar.gz"
+ pypi = "wrapt/wrapt-1.11.2.tar.gz"
+ version('1.12.1', sha256='b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7')
version('1.11.2', sha256='565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1')
version('1.11.1', sha256='4aea003270831cceb8a90ff27c4031da6ead7ec1886023b80ce0dfe0adf61533')
version('1.10.10', sha256='42160c91b77f1bc64a955890038e02f2f72986c01d462d53cb6cb039b995cdd9')
diff --git a/var/spack/repos/builtin/packages/py-wstool/package.py b/var/spack/repos/builtin/packages/py-wstool/package.py
new file mode 100644
index 0000000000..9673e97495
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-wstool/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 PyWstool(PythonPackage):
+ """A tool for managing a workspace of multiple heterogenous SCM
+ repositories."""
+
+ homepage = "https://wiki.ros.org/wstool"
+ pypi = "wstool/wstool-0.1.17.tar.gz"
+
+ version('0.1.17', sha256='c79b4f110ef17004c24972d742d2c5f606b0f6b424295e7ed029a48e857de237')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-vcstools@0.1.38:', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-wub/package.py b/var/spack/repos/builtin/packages/py-wub/package.py
index 13e6309667..53681bc0d5 100644
--- a/var/spack/repos/builtin/packages/py-wub/package.py
+++ b/var/spack/repos/builtin/packages/py-wub/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,13 +17,13 @@ class PyWub(PythonPackage):
version('0.4.0', sha256='1526aa392bccac71b872211c45f5b403ad3d55f5762e0ed34ff9086bc1dab6fd')
depends_on('py-six', type=('build', 'run'))
- depends_on('py-pytest', type=('build', 'run', 'test'))
- depends_on('py-pycmd', type=('build', 'run', 'test'))
+ depends_on('py-pytest', type=('build', 'run'))
+ depends_on('py-pycmd', type=('build', 'run'))
depends_on('py-biopython', type=('build', 'run'))
- depends_on('py-numpy', type=('build', 'run', 'test'))
+ depends_on('py-numpy', type=('build', 'run'))
depends_on('py-matplotlib', type=('build', 'run'))
depends_on('py-seaborn', type=('build', 'run'))
- depends_on('py-editdistance', type=('build', 'run', 'test'))
+ depends_on('py-editdistance', type=('build', 'run'))
depends_on('py-pandas@0.20.2:', type=('build', 'run'))
depends_on('py-pysam', type=('build', 'run'))
depends_on('py-tqdm', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-wxmplot/package.py b/var/spack/repos/builtin/packages/py-wxmplot/package.py
index 0d88748979..06962e1515 100644
--- a/var/spack/repos/builtin/packages/py-wxmplot/package.py
+++ b/var/spack/repos/builtin/packages/py-wxmplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,7 @@ class PyWxmplot(PythonPackage):
"""wxPython plotting widgets using matplotlib."""
homepage = "https://newville.github.io/wxmplot/"
- url = "https://pypi.io/packages/source/w/wxmplot/wxmplot-0.9.38.tar.gz"
-
- import_modules = ['wxmplot']
+ pypi = "wxmplot/wxmplot-0.9.38.tar.gz"
version('0.9.38', sha256='82dc64abb42bdd03ec7067a3aa2a475001f2bc8e4772149bae47facf460c0081')
@@ -21,4 +19,3 @@ class PyWxmplot(PythonPackage):
depends_on('py-six@1.10:', type=('build', 'run'))
depends_on('py-matplotlib@2.0:', type=('build', 'run'))
depends_on('py-wxpython@4.0.3:', type=('build', 'run'))
- depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-wxpython/package.py b/var/spack/repos/builtin/packages/py-wxpython/package.py
index 0eef3935f0..62ea1eba88 100644
--- a/var/spack/repos/builtin/packages/py-wxpython/package.py
+++ b/var/spack/repos/builtin/packages/py-wxpython/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,20 +10,9 @@ class PyWxpython(PythonPackage):
"""Cross platform GUI toolkit for Python."""
homepage = "https://www.wxpython.org/"
- url = "https://pypi.io/packages/source/w/wxPython/wxPython-4.0.6.tar.gz"
-
- import_modules = [
- 'wx', 'wx.tools', 'wx.py', 'wx.lib', 'wx.lib.analogclock',
- 'wx.lib.floatcanvas', 'wx.lib.plot', 'wx.lib.mixins', 'wx.lib.gizmos',
- 'wx.lib.art', 'wx.lib.pdfviewer', 'wx.lib.colourchooser',
- 'wx.lib.masked', 'wx.lib.ogl', 'wx.lib.wxcairo', 'wx.lib.agw',
- 'wx.lib.pubsub', 'wx.lib.editor', 'wx.lib.analogclock.lib_setup',
- 'wx.lib.floatcanvas.Utilities', 'wx.lib.plot.examples',
- 'wx.lib.agw.aui', 'wx.lib.agw.ribbon', 'wx.lib.agw.persist',
- 'wx.lib.pubsub.core', 'wx.lib.pubsub.utils', 'wx.lib.pubsub.core.arg1',
- 'wx.lib.pubsub.core.kwargs'
- ]
+ pypi = "wxPython/wxPython-4.0.6.tar.gz"
+ version('4.1.1', sha256='00e5e3180ac7f2852f342ad341d57c44e7e4326de0b550b9a5c4a8361b6c3528')
version('4.0.6', sha256='35cc8ae9dd5246e2c9861bb796026bbcb9fb083e4d49650f776622171ecdab37')
depends_on('wxwidgets')
@@ -33,6 +22,6 @@ class PyWxpython(PythonPackage):
depends_on('py-pathlib2', type='build')
# Needed at runtime
- depends_on('py-numpy', type='run')
- depends_on('pil', type='run')
- depends_on('py-six', type='run')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('pil', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-xarray/package.py b/var/spack/repos/builtin/packages/py-xarray/package.py
index 6615247e5c..ba2cef62ab 100644
--- a/var/spack/repos/builtin/packages/py-xarray/package.py
+++ b/var/spack/repos/builtin/packages/py-xarray/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,25 +10,52 @@ class PyXarray(PythonPackage):
"""N-D labeled arrays and datasets in Python"""
homepage = "https://github.com/pydata/xarray"
- url = "https://pypi.io/packages/source/x/xarray/xarray-0.9.1.tar.gz"
+ pypi = "xarray/xarray-0.9.1.tar.gz"
+ # 'xarray.tests' requires 'pytest'. Leave out of 'import_modules' to avoid
+ # unnecessary dependency.
+ import_modules = [
+ 'xarray', 'xarray.core', 'xarray.plot', 'xarray.util',
+ 'xarray.backends', 'xarray.coding'
+ ]
+
+ version('0.17.0', sha256='9c2edad2a4e588f9117c666a4249920b9717fb75703b96998cf65fcd4f60551f')
+ version('0.16.2', sha256='38e8439d6c91bcd5b7c0fca349daf8e0643ac68850c987262d53526e9d7d01e4')
version('0.14.0', sha256='a8b93e1b0af27fa7de199a2d36933f1f5acc9854783646b0f1b37fed9b4da091')
version('0.13.0', sha256='80e5746ffdebb96b997dba0430ff02d98028ef3828e6db6106cbbd6d62e32825')
version('0.12.0', sha256='856fd062c55208a248ac3784cac8d3524b355585387043efc92a4188eede57f3')
version('0.11.0', sha256='636964baccfca0e5d69220ac4ecb948d561addc76f47704064dcbe399e03a818')
version('0.9.1', sha256='89772ed0e23f0e71c3fb8323746374999ecbe79c113e3fadc7ae6374e6dc0525')
+ variant('io', default=False, description='Build io backends')
+
depends_on('python@2.7:2.8,3.5:', when='@0.11:', type=('build', 'run'))
depends_on('python@3.5:', when='@0.12', type=('build', 'run'))
depends_on('python@3.5.3:', when='@0.13', type=('build', 'run'))
depends_on('python@3.6:', when='@0.14:', type=('build', 'run'))
+ depends_on('python@3.7:', when='@0.17:', type=('build', 'run'))
- depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools', when='@:0.15', type='build')
+ depends_on('py-setuptools@38.4:', when='@0.16:', type=('build', 'run'))
+ depends_on('py-setuptools@40.4:', when='@0.17:', type=('build', 'run'))
+ depends_on('py-setuptools-scm', when='@0.15:', type='build')
depends_on('py-pandas@0.15.0:', when='@0.9.1', type=('build', 'run'))
depends_on('py-pandas@0.19.2:', when='@0.11:0.13', type=('build', 'run'))
- depends_on('py-pandas@0.24:', when='@0.14:', type=('build', 'run'))
+ depends_on('py-pandas@0.24:', when='@0.14.0', type=('build', 'run'))
+ depends_on('py-pandas@0.25:', when='@0.15:', type=('build', 'run'))
depends_on('py-numpy@1.7:', when='@0.9.1', type=('build', 'run'))
depends_on('py-numpy@1.12:', when='@0.11:0.13', type=('build', 'run'))
- depends_on('py-numpy@1.14:', when='@0.14:', type=('build', 'run'))
+ depends_on('py-numpy@1.14:', when='@0.14.0', type=('build', 'run'))
+ depends_on('py-numpy@1.15:', when='@0.15:', type=('build', 'run'))
+
+ depends_on('py-netcdf4', when='+io', type=('build', 'run'))
+ depends_on('py-h5netcdf', when='+io', type=('build', 'run'))
+ depends_on('py-scipy', when='+io', type=('build', 'run'))
+ depends_on('py-pydap', when='+io', type=('build', 'run'))
+ depends_on('py-zarr', when='+io', type=('build', 'run'))
+ depends_on('py-fsspec', when='+io', type=('build', 'run'))
+ depends_on('py-cftime', when='+io', type=('build', 'run'))
+ depends_on('py-rasterio', when='+io', type=('build', 'run'))
+ depends_on('py-cfgrib', when='+io', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-xattr/package.py b/var/spack/repos/builtin/packages/py-xattr/package.py
index 8375fa8c09..9cf6d2494b 100644
--- a/var/spack/repos/builtin/packages/py-xattr/package.py
+++ b/var/spack/repos/builtin/packages/py-xattr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ class PyXattr(PythonPackage):
sans libattr dependency.
"""
- homepage = "http://pyxattr.k1024.org/"
- url = "https://pypi.io/packages/source/x/xattr/xattr-0.9.6.tar.gz"
+ homepage = "https://pyxattr.k1024.org/"
+ pypi = "xattr/xattr-0.9.6.tar.gz"
git = "https://github.com/iustin/pyxattr.git"
version('master', branch='master')
diff --git a/var/spack/repos/builtin/packages/py-xdot/package.py b/var/spack/repos/builtin/packages/py-xdot/package.py
index 684df310d9..12d448eeea 100644
--- a/var/spack/repos/builtin/packages/py-xdot/package.py
+++ b/var/spack/repos/builtin/packages/py-xdot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,12 @@ class PyXdot(PythonPackage):
dot language."""
homepage = "https://github.com/jrfonseca/xdot.py"
- url = "https://pypi.io/packages/source/x/xdot/xdot-1.0.tar.gz"
+ pypi = "xdot/xdot-1.0.tar.gz"
git = "https://github.com/jrfonseca/xdot.py.git"
+ maintainers = ['lee218llnl']
version('master', branch='master')
+ version('1.2', sha256='3df91e6c671869bd2a6b2a8883fa3476dbe2ba763bd2a7646cf848a9eba71b70')
version('1.0', sha256='7e067896d729af82f1fd0758e265f129944d469c30f550e3f15dbdb751cc42a1')
version('0.9', sha256='a33701664ecfefe7c7313a120a587e87334f3a566409bc451538fcde5edd6907')
@@ -28,6 +30,7 @@ class PyXdot(PythonPackage):
depends_on('atk', type=('build', 'run'))
depends_on('gdk-pixbuf', type=('build', 'run'))
depends_on('gtkplus', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'), when='@1.2:')
@run_after('install')
def post_install(self):
diff --git a/var/spack/repos/builtin/packages/py-xenv/package.py b/var/spack/repos/builtin/packages/py-xenv/package.py
index 1ccda61959..cf80182cc7 100644
--- a/var/spack/repos/builtin/packages/py-xenv/package.py
+++ b/var/spack/repos/builtin/packages/py-xenv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyXenv(PythonPackage):
"""Helpers to work with the environment in a platform independent way."""
homepage = "https://gitlab.cern.ch/gaudi/xenv"
- url = "https://pypi.io/packages/source/x/xenv/xenv-1.0.0.tar.gz"
+ pypi = "xenv/xenv-1.0.0.tar.gz"
git = "https://gitlab.cern.ch/gaudi/xenv.git"
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/py-xgboost/package.py b/var/spack/repos/builtin/packages/py-xgboost/package.py
new file mode 100644
index 0000000000..746d58a1f4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-xgboost/package.py
@@ -0,0 +1,90 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class PyXgboost(PythonPackage):
+ """XGBoost is an optimized distributed gradient boosting library designed to be
+ highly efficient, flexible and portable."""
+
+ homepage = 'https://xgboost.ai/'
+ pypi = 'xgboost/xgboost-1.3.3.tar.gz'
+
+ maintainers = ['adamjstewart']
+ import_modules = ['xgboost']
+
+ version('1.3.3', sha256='397051647bb837915f3ff24afc7d49f7fca57630ffd00fb5ef66ae2a0881fb43')
+ version('0.90', sha256='d69f90d61a63e8889fd39a31ad00c629bac1ca627f8406b9b6d4594c9e29ab84', deprecated=True)
+
+ variant('pandas', default=False, description='Enable Pandas extensions for training.')
+ variant('scikit-learn', default=False, description='Enable scikit-learn extensions for training.')
+ variant('dask', default=False, description='Enables Dask extensions for distributed training.')
+ variant('plotting', default=False, description='Enables tree and importance plotting.')
+
+ for ver in ['1.3.3']:
+ depends_on('xgboost@' + ver, when='@' + ver)
+
+ depends_on('cmake@3.12:', when='@1.0:1.2.999', type='build')
+ depends_on('llvm-openmp', when='@:1.2.999 %apple-clang')
+ depends_on('python@3.6:', when='@1.2:', type=('build', 'run'))
+ depends_on('python@3.5:', when='@1.0:', type=('build', 'run'))
+ depends_on('python@3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type=('build'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+
+ depends_on('py-pandas', when='+pandas', type=('build', 'run'))
+
+ depends_on('py-scikit-learn', when='+scikit-learn', type=('build', 'run'))
+
+ depends_on('py-dask', when='+dask', type=('build', 'run'))
+ depends_on('py-pandas', when='+dask', type=('build', 'run'))
+ depends_on('py-distributed', when='+dask', type=('build', 'run'))
+
+ depends_on('py-graphviz', when='+plotting', type=('build', 'run'))
+ depends_on('py-matplotlib', when='+plotting', type=('build', 'run'))
+
+ conflicts('+pandas', when='@:0.999')
+ conflicts('+scikit-learn', when='@:0.999')
+ conflicts('+dask', when='@:0.999')
+ conflicts('+plotting', when='@:0.999')
+
+ # `--use-system-libxgboost` is only valid for the 'install' phase, but we want to
+ # skip building of the C++ library and rely on an external dependency
+ phases = ['install']
+
+ @when('@:0.90')
+ def patch(self):
+ # Fix OpenMP support on macOS
+ filter_file("OPENMP_FLAGS = -fopenmp",
+ "OPENMP_FLAGS = {0}".format(self.compiler.openmp_flag),
+ os.path.join("xgboost", "Makefile"), string=True)
+
+ @when('@1.3:')
+ def patch(self):
+ # https://github.com/dmlc/xgboost/issues/6706
+ # 'setup.py' is hard-coded to search in Python installation prefix
+ filter_file("lib_path = os.path.join(sys.prefix, 'lib')",
+ "lib_path = '{0}'".format(self.spec['xgboost'].libs.directories[0]),
+ "setup.py", string=True)
+
+ # Same for run-time search
+ filter_file("os.path.join(curr_path, 'lib'),",
+ "'{0}',".format(self.spec['xgboost'].libs.directories[0]),
+ os.path.join('xgboost', 'libpath.py'), string=True)
+
+ @when('@1.3:')
+ def install_args(self, spec, prefix):
+ args = super(PyXgboost, self).install_args(spec, prefix)
+ args.append('--use-system-libxgboost')
+ return args
+
+ # Tests need to be re-added since `phases` was overridden
+ run_after('install')(
+ PythonPackage._run_default_install_time_test_callbacks)
+ run_after('install')(PythonPackage.sanity_check_prefix)
diff --git a/var/spack/repos/builtin/packages/py-xlrd/package.py b/var/spack/repos/builtin/packages/py-xlrd/package.py
index ae155a964d..a25feef600 100644
--- a/var/spack/repos/builtin/packages/py-xlrd/package.py
+++ b/var/spack/repos/builtin/packages/py-xlrd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,6 +11,6 @@ class PyXlrd(PythonPackage):
spreadsheet files"""
homepage = 'http://www.python-excel.org/'
- url = "https://pypi.io/packages/source/x/xlrd/xlrd-0.9.4.tar.gz"
+ pypi = "xlrd/xlrd-0.9.4.tar.gz"
version('0.9.4', sha256='8e8d3359f39541a6ff937f4030db54864836a06e42988c452db5b6b86d29ea72')
diff --git a/var/spack/repos/builtin/packages/py-xlsxwriter/package.py b/var/spack/repos/builtin/packages/py-xlsxwriter/package.py
index 6989800313..34e93b0606 100644
--- a/var/spack/repos/builtin/packages/py-xlsxwriter/package.py
+++ b/var/spack/repos/builtin/packages/py-xlsxwriter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,6 @@ class PyXlsxwriter(PythonPackage):
"""XlsxWriter is a Python module for writing files in the Excel 2007+ XLSX
file format."""
- homepage = "https://pypi.python.org/pypi/XlsxWriter"
- url = "https://pypi.io/packages/source/X/XlsxWriter/XlsxWriter-1.0.2.tar.gz"
+ pypi = "XlsxWriter/XlsxWriter-1.0.2.tar.gz"
version('1.0.2', sha256='a26bbbafff88abffce592ffd5dfaa4c9f08dc44ef4afbf45c70d3e270325f856')
diff --git a/var/spack/repos/builtin/packages/py-xlwt/package.py b/var/spack/repos/builtin/packages/py-xlwt/package.py
index 981f3e5df7..b393299ef4 100644
--- a/var/spack/repos/builtin/packages/py-xlwt/package.py
+++ b/var/spack/repos/builtin/packages/py-xlwt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,7 @@ class PyXlwt(PythonPackage):
MS Excel 97/2000/XP/2003 XLS files, on any platform,
with Python 2.6, 2.7, 3.3+."""
- homepage = "https://pypi.org/project/xlwt/"
- url = "https://pypi.io/packages/source/x/xlwt/xlwt-1.3.0.tar.gz"
+ pypi = "xlwt/xlwt-1.3.0.tar.gz"
version('1.3.0', sha256='c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88')
diff --git a/var/spack/repos/builtin/packages/py-xmlrunner/package.py b/var/spack/repos/builtin/packages/py-xmlrunner/package.py
index c6e7f3a21f..c27223bcd6 100644
--- a/var/spack/repos/builtin/packages/py-xmlrunner/package.py
+++ b/var/spack/repos/builtin/packages/py-xmlrunner/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyXmlrunner(PythonPackage):
"""PyUnit-based test runner with JUnit like XML reporting."""
homepage = "https://github.com/pycontribs/xmlrunner"
- url = "https://pypi.io/packages/source/x/xmlrunner/xmlrunner-1.7.7.tar.gz"
+ pypi = "xmlrunner/xmlrunner-1.7.7.tar.gz"
version('1.7.7', sha256='5a6113d049eca7646111ee657266966e5bbfb0b5ceb2e83ee0772e16d7110f39')
diff --git a/var/spack/repos/builtin/packages/py-xmltodict/package.py b/var/spack/repos/builtin/packages/py-xmltodict/package.py
index 49a3fd4bd8..2b64e79674 100644
--- a/var/spack/repos/builtin/packages/py-xmltodict/package.py
+++ b/var/spack/repos/builtin/packages/py-xmltodict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyXmltodict(PythonPackage):
you are working with JSON."""
homepage = "https://github.com/martinblech/xmltodict"
- url = "https://pypi.io/packages/source/x/xmltodict/xmltodict-0.12.0.tar.gz"
+ pypi = "xmltodict/xmltodict-0.12.0.tar.gz"
version('0.12.0', sha256='50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21')
diff --git a/var/spack/repos/builtin/packages/py-xopen/package.py b/var/spack/repos/builtin/packages/py-xopen/package.py
index 65bbb0fa73..ecfd23d7eb 100644
--- a/var/spack/repos/builtin/packages/py-xopen/package.py
+++ b/var/spack/repos/builtin/packages/py-xopen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,9 +13,11 @@ class PyXopen(PythonPackage):
recognized by their file extensions .gz, .bz2 or .xz."""
homepage = "https://github.com/marcelm/xopen"
- url = "https://pypi.io/packages/source/x/xopen/xopen-0.1.1.tar.gz"
+ pypi = "xopen/xopen-0.1.1.tar.gz"
+ version('1.0.1', sha256='79d7e425fb0930b0153eb6beba9a540ca3e07ac254ca828577ad2e8fa24105dc')
version('0.9.0', sha256='1e3918c8a5cd2bd128ba05b3b883ee322349219c99c305e10114638478e3162a')
+ version('0.8.4', sha256='dcd8f5ef5da5564f514a990573a48a0c347ee1fdbb9b6374d31592819868f7ba')
version('0.8.2', sha256='003749e09af74103a29e9c64c468c03e084aa6dfe6feff4fe22366679a6534f7')
version('0.5.0', sha256='b097cd25e8afec42b6e1780c1f6315016171b5b6936100cdf307d121e2cbab9f')
version('0.1.1', sha256='d1320ca46ed464a59db4c27c7a44caf5e268301e68319f0295d06bf6a9afa6f3')
diff --git a/var/spack/repos/builtin/packages/py-xpyb/package.py b/var/spack/repos/builtin/packages/py-xpyb/package.py
index 7960870492..8d385c9a4a 100644
--- a/var/spack/repos/builtin/packages/py-xpyb/package.py
+++ b/var/spack/repos/builtin/packages/py-xpyb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,4 +19,4 @@ class PyXpyb(AutotoolsPackage):
depends_on('libxcb@1.5:')
- depends_on('xcb-proto@1.7.1:', type='build')
+ depends_on('xcb-proto@1.7.1:')
diff --git a/var/spack/repos/builtin/packages/py-xvfbwrapper/package.py b/var/spack/repos/builtin/packages/py-xvfbwrapper/package.py
index 766432857c..da791421f3 100644
--- a/var/spack/repos/builtin/packages/py-xvfbwrapper/package.py
+++ b/var/spack/repos/builtin/packages/py-xvfbwrapper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyXvfbwrapper(PythonPackage):
"""run headless display inside X virtual framebuffer (Xvfb)"""
- homepage = "https://pypi.python.org/pypi/xvfbwrapper/0.2.9"
- url = "https://pypi.io/packages/source/x/xvfbwrapper/xvfbwrapper-0.2.9.tar.gz"
+ pypi = "xvfbwrapper/xvfbwrapper-0.2.9.tar.gz"
version('0.2.9', sha256='bcf4ae571941b40254faf7a73432dfc119ad21ce688f1fdec533067037ecfc24')
diff --git a/var/spack/repos/builtin/packages/py-xxhash/package.py b/var/spack/repos/builtin/packages/py-xxhash/package.py
new file mode 100644
index 0000000000..a15d94cca3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-xxhash/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 PyXxhash(PythonPackage):
+ """xxhash is a Python binding for the xxHash library by
+ Yann Collet."""
+
+ homepage = "https://github.com/ifduyue/python-xxhash"
+ pypi = "xxhash/xxhash-2.0.2.tar.gz"
+
+ version('2.0.2', sha256='b7bead8cf6210eadf9cecf356e17af794f57c0939a3d420a00d87ea652f87b49')
+
+ depends_on('python@2.6:2.999,3.3:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('xxhash@0.8.0')
+
+ def setup_build_environment(self, env):
+ env.set('XXHASH_LINK_SO', '1')
diff --git a/var/spack/repos/builtin/packages/py-yacs/package.py b/var/spack/repos/builtin/packages/py-yacs/package.py
new file mode 100644
index 0000000000..f0707b8687
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-yacs/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 PyYacs(PythonPackage):
+ """YACS was created as a lightweight library to define and manage
+ system configurations, such as those commonly found in software
+ designed for scientific experimentation."""
+
+ homepage = "https://github.com/rbgirshick/yacs"
+ pypi = "yacs/yacs-0.1.8.tar.gz"
+
+ version('0.1.8', sha256='efc4c732942b3103bea904ee89af98bcd27d01f0ac12d8d4d369f1e7a2914384')
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pyyaml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-yahmm/package.py b/var/spack/repos/builtin/packages/py-yahmm/package.py
index a612930d49..d499107b5e 100644
--- a/var/spack/repos/builtin/packages/py-yahmm/package.py
+++ b/var/spack/repos/builtin/packages/py-yahmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyYahmm(PythonPackage):
"""YAHMM is a HMM package for Python, implemented in Cython for speed."""
- homepage = "http://pypi.python.org/pypi/yahmm/"
- url = "https://pypi.io/packages/source/y/yahmm/yahmm-1.1.3.zip"
+ pypi = "yahmm/yahmm-1.1.3.zip"
version('1.1.3', sha256='fe3614ef96da9410468976756fb93dc8235485242c05df01d8e5ed356a7dfb43')
@@ -19,4 +18,3 @@ class PyYahmm(PythonPackage):
depends_on('py-scipy@0.13.3:', type=('build', 'run'))
depends_on('py-matplotlib@1.3.1:', type=('build', 'run'))
depends_on('py-networkx@1.8.1:', type=('build', 'run'))
- depends_on('py-nose@1.3.3:', type='test')
diff --git a/var/spack/repos/builtin/packages/py-yajl/package.py b/var/spack/repos/builtin/packages/py-yajl/package.py
index b6e95ff8e8..62a59b8a7e 100644
--- a/var/spack/repos/builtin/packages/py-yajl/package.py
+++ b/var/spack/repos/builtin/packages/py-yajl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyYajl(PythonPackage):
"""Python bindings for the Yajl JSON encoder/decoder library."""
homepage = "https://github.com/rtyler/py-yajl"
- url = "https://pypi.io/packages/source/y/yajl/yajl-0.3.5.tar.gz"
+ pypi = "yajl/yajl-0.3.5.tar.gz"
version('0.3.5', sha256='432321ea613692a4782a2368a300f57b59c64a3c8508c7465af3fdc045e7bcc2')
diff --git a/var/spack/repos/builtin/packages/py-yamlreader/package.py b/var/spack/repos/builtin/packages/py-yamlreader/package.py
index 2a11c38345..a8ab80b262 100644
--- a/var/spack/repos/builtin/packages/py-yamlreader/package.py
+++ b/var/spack/repos/builtin/packages/py-yamlreader/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class PyYamlreader(PythonPackage):
"""Yamlreader merges YAML data from a directory, a list of files or a
file glob."""
- homepage = "http://pyyaml.org/wiki/PyYAML"
- url = "https://pypi.io/packages/source/y/yamlreader/yamlreader-3.0.4.tar.gz"
+ homepage = "https://pyyaml.org/wiki/PyYAML"
+ pypi = "yamlreader/yamlreader-3.0.4.tar.gz"
version('3.0.4', sha256='765688036d57104ac26e4500ab088d42f4f2d06687ce3daa26543d7ae38c2470')
diff --git a/var/spack/repos/builtin/packages/py-yapf/package.py b/var/spack/repos/builtin/packages/py-yapf/package.py
index f9834d8dd2..d0c8e7cc8f 100644
--- a/var/spack/repos/builtin/packages/py-yapf/package.py
+++ b/var/spack/repos/builtin/packages/py-yapf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,7 @@ class PyYapf(PythonPackage):
url = "https://github.com/google/yapf/archive/v0.2.1.tar.gz"
version('0.30.0', sha256='9f561af26f8d27c3a334d3d2ee8947b8826a86691087e447ce483512d834682c')
+ version('0.29.0', sha256='f4bc9924de51d30da0241503d56e9e26a1a583bc58b3a13b2c450c4d16c9920d')
version('0.2.1', sha256='13158055acd8e3c2f3a577528051a1c5057237f699150211a86fb405c4ea3936')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-yarl/package.py b/var/spack/repos/builtin/packages/py-yarl/package.py
index 3b33ac4776..ccd33ef75a 100644
--- a/var/spack/repos/builtin/packages/py-yarl/package.py
+++ b/var/spack/repos/builtin/packages/py-yarl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-yolk3k/package.py b/var/spack/repos/builtin/packages/py-yolk3k/package.py
index d744f93f94..f256b50bb5 100644
--- a/var/spack/repos/builtin/packages/py-yolk3k/package.py
+++ b/var/spack/repos/builtin/packages/py-yolk3k/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class PyYolk3k(PythonPackage):
adds additional features."""
homepage = "https://github.com/myint/yolk"
- url = "https://pypi.io/packages/source/y/yolk3k/yolk3k-0.9.tar.gz"
+ pypi = "yolk3k/yolk3k-0.9.tar.gz"
version('0.9', sha256='cf8731dd0a9f7ef50b5dc253fe0174383e3fed295a653672aa918c059eef86ae')
diff --git a/var/spack/repos/builtin/packages/py-youtube-dl/package.py b/var/spack/repos/builtin/packages/py-youtube-dl/package.py
index 48fdf7dea7..08efb4f523 100644
--- a/var/spack/repos/builtin/packages/py-youtube-dl/package.py
+++ b/var/spack/repos/builtin/packages/py-youtube-dl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class PyYoutubeDl(PythonPackage):
sites."""
homepage = "https://github.com/ytdl-org/youtube-dl"
- url = "https://pypi.io/packages/source/y/youtube_dl/youtube_dl-2020.3.24.tar.gz"
+ pypi = "youtube_dl/youtube_dl-2020.3.24.tar.gz"
version('2020.3.24', sha256='4b03efe439f7cae26eba909821d1df00a9a4eb82741cb2e8b78fe29702bd4633')
diff --git a/var/spack/repos/builtin/packages/py-yt/package.py b/var/spack/repos/builtin/packages/py-yt/package.py
index 461e21217b..6c8a4c1ea4 100644
--- a/var/spack/repos/builtin/packages/py-yt/package.py
+++ b/var/spack/repos/builtin/packages/py-yt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,13 +15,17 @@ class PyYt(PythonPackage):
simulations, radio telescopes, and a burgeoning
interdisciplinary community.
"""
- homepage = "http://yt-project.org"
+ homepage = "https://yt-project.org"
url = "https://github.com/yt-project/yt/archive/yt-3.5.0.tar.gz"
git = "https://github.com/yt-project/yt.git"
+ maintainers = ['qobilidop']
+
version("develop", branch="master")
version("develop-4.0", branch="yt-4.0")
+ version('3.6.1', sha256='a1be3ea7e18729d3cd86e9234dc4731bf23200dff3344fa756fe173ea36cc747')
+ version('3.6.0', sha256='4e3bab11766d5950477ba4d6c528a495e12cda1155227361b4579ac4ac0bf975')
version('3.5.1', sha256='cdc0ecb153e737d74820581f311d1be7b6f1a7ee065ad69706470939db88b041')
version('3.5.0', sha256='548598912adba72b782b7422d40d1d12a8c1a6cd064281a9a537fdb2a5af89fc')
version('3.4.1', sha256='b9a73ade3726a8163fc992999c8c1010ca89473131901fe4d48b820ab2ced486')
@@ -40,18 +44,19 @@ class PyYt(PythonPackage):
variant("scipy", default=True, description="enable scipy support")
variant("rockstar", default=False, description="enable rockstar support")
- depends_on("py-astropy", type=('build', 'run'), when="+astropy")
- depends_on("py-cython", type=('build', 'run'))
- depends_on("py-h5py", type=('build', 'run'), when="+h5py")
- depends_on("py-ipython", type=('build', 'run'))
+ depends_on("py-astropy@4.0.1:", type=('build', 'run'), when="+astropy")
+ depends_on("py-cython@0.24:", type=('build', 'run'))
+ depends_on("py-h5py@3.1:", type=('build', 'run'), when="+h5py")
+ depends_on("py-ipython@1.0:", type=('build', 'run'))
depends_on("py-ipython@:6.99", type=('build', 'run'), when="^python@:2.99")
- depends_on("py-matplotlib", type=('build', 'run'))
- depends_on("py-numpy", type=('build', 'run'))
- depends_on("py-scipy", type=('build', 'run'), when="+scipy")
- depends_on("py-setuptools", type=('build', 'run'))
- depends_on("py-sympy", type=('build', 'run'))
+ depends_on("py-matplotlib@1.5.3:", type=('build', 'run'))
+ depends_on("py-matplotlib@:3.2.2", type=('build', 'run'), when="@:3.6.0")
+ depends_on("py-numpy@1.10.4:", type=('build', 'run'))
+ depends_on("py-scipy@1.5.0:", type=('build', 'run'), when="+scipy")
+ depends_on("py-setuptools@19.6:", type=('build', 'run'))
+ depends_on("py-sympy@1.0:", type=('build', 'run'))
depends_on("rockstar@yt", type=('build', 'run'), when="+rockstar")
- depends_on("python@2.7:2.8,3.4:")
+ depends_on("python@2.7.0:2.7.99,3.5:", type=('build', 'run'))
@run_before('install')
def prep_yt(self):
diff --git a/var/spack/repos/builtin/packages/py-ytopt/package.py b/var/spack/repos/builtin/packages/py-ytopt/package.py
index 18cfcac443..f5e33b8f18 100644
--- a/var/spack/repos/builtin/packages/py-ytopt/package.py
+++ b/var/spack/repos/builtin/packages/py-ytopt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/py-zarr/package.py b/var/spack/repos/builtin/packages/py-zarr/package.py
index 0e1dbbeaae..da85cac771 100644
--- a/var/spack/repos/builtin/packages/py-zarr/package.py
+++ b/var/spack/repos/builtin/packages/py-zarr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,15 +11,22 @@ class PyZarr(PythonPackage):
compressed, N-dimensional arrays."""
homepage = "https://zarr.readthedocs.io"
- url = "https://pypi.io/packages/source/z/zarr/zarr-2.3.2.tar.gz"
+ pypi = "zarr/zarr-2.3.2.tar.gz"
+ version('2.6.1', sha256='fa7eac1e4ff47ff82d09c42bb4679e18e8a05a73ee81ce59cee6a441a210b2fd')
+ version('2.5.0', sha256='d54f060739208392494c3dbcbfdf41c8df9fa23d9a32b91aea0549b4c5e2b77f')
+ version('2.4.0', sha256='53aa21b989a47ddc5e916eaff6115b824c0864444b1c6f3aaf4f6cf9a51ed608')
version('2.3.2', sha256='c62d0158fb287151c978904935a177b3d2d318dea3057cfbeac8541915dfa105')
+ depends_on('python@3.5:', type=('build', 'run'), when='@2.4.0:')
+ depends_on('python@3.6:', type=('build', 'run'), when='@2.6.0:')
depends_on('py-asciitree', type=('build', 'run'))
depends_on('py-fasteners', type=('build', 'run'))
- depends_on('py-msgpack', type=('build', 'run'))
- depends_on('py-setuptools@18.1:', type='build')
+ depends_on('py-msgpack', type=('build', 'run'), when='@:2.3.2')
+ depends_on('py-setuptools@18.0:', type='build')
+ depends_on('py-setuptools@38.6.0:', type='build', when='@2.4.0:')
depends_on('py-setuptools-scm@1.5.5:', type='build')
depends_on('py-numcodecs@0.6.2:', type=('build', 'run'))
+ depends_on('py-numcodecs@0.6.4:', type=('build', 'run'), when='@2.4.0:')
depends_on('py-numpy@1.7:', type=('build', 'run'))
- depends_on('py-scandir', type=('build', 'run'), when='^python@:3.4')
+ depends_on('py-scandir', type=('build', 'run'), when='^python@:3.4')
diff --git a/var/spack/repos/builtin/packages/py-zc-buildout/package.py b/var/spack/repos/builtin/packages/py-zc-buildout/package.py
index 6aa1938369..f244a7b0ca 100644
--- a/var/spack/repos/builtin/packages/py-zc-buildout/package.py
+++ b/var/spack/repos/builtin/packages/py-zc-buildout/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyZcBuildout(PythonPackage):
"""System for managing development buildouts"""
- homepage = "http://buildout.org/"
- url = "https://pypi.io/packages/source/z/zc.buildout/zc.buildout-2.13.1.tar.gz"
+ pypi = "zc.buildout/zc.buildout-2.13.1.tar.gz"
version('2.13.1', sha256='3d14d07226963a517295dfad5879d2799e2e3b65b2c61c71b53cb80f5ab11484')
diff --git a/var/spack/repos/builtin/packages/py-zc-lockfile/package.py b/var/spack/repos/builtin/packages/py-zc-lockfile/package.py
index 707448e813..befc4cae6d 100644
--- a/var/spack/repos/builtin/packages/py-zc-lockfile/package.py
+++ b/var/spack/repos/builtin/packages/py-zc-lockfile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,7 @@ from spack import *
class PyZcLockfile(PythonPackage):
"""Basic inter-process locks"""
- homepage = "https://www.python.org/pypi/zc.lockfile"
- url = "https://pypi.io/packages/source/z/zc.lockfile/zc.lockfile-1.4.tar.gz"
+ pypi = "zc.lockfile/zc.lockfile-1.4.tar.gz"
version('1.4', sha256='95a8e3846937ab2991b61703d6e0251d5abb9604e18412e2714e1b90db173253')
diff --git a/var/spack/repos/builtin/packages/py-zict/package.py b/var/spack/repos/builtin/packages/py-zict/package.py
index 5830be23cf..5988c4fb57 100644
--- a/var/spack/repos/builtin/packages/py-zict/package.py
+++ b/var/spack/repos/builtin/packages/py-zict/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class PyZict(PythonPackage):
"""Mutable mapping tools"""
- homepage = "http://zict.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/z/zict/zict-1.0.0.tar.gz"
+ homepage = "https://zict.readthedocs.io/en/latest/"
+ pypi = "zict/zict-1.0.0.tar.gz"
version('1.0.0', sha256='e34dd25ea97def518fb4c77f2c27078f3a7d6c965b0a3ac8fe5bdb0a8011a310')
diff --git a/var/spack/repos/builtin/packages/py-zipp/package.py b/var/spack/repos/builtin/packages/py-zipp/package.py
index 424062ee6e..38421acc84 100644
--- a/var/spack/repos/builtin/packages/py-zipp/package.py
+++ b/var/spack/repos/builtin/packages/py-zipp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class PyZipp(PythonPackage):
"""Backport of pathlib-compatible object wrapper for zip files."""
homepage = "https://github.com/jaraco/zipp"
- url = "https://pypi.io/packages/source/z/zipp/zipp-0.6.0.tar.gz"
+ pypi = "zipp/zipp-0.6.0.tar.gz"
version('0.6.0', sha256='3718b1cbcd963c7d4c5511a8240812904164b7f381b647143a89d3b98f9bcd8e')
version('0.5.1', sha256='ca943a7e809cc12257001ccfb99e3563da9af99d52f261725e96dfe0f9275bc3')
diff --git a/var/spack/repos/builtin/packages/py-zope-event/package.py b/var/spack/repos/builtin/packages/py-zope-event/package.py
index 6ad1049a89..405c2cf2d0 100644
--- a/var/spack/repos/builtin/packages/py-zope-event/package.py
+++ b/var/spack/repos/builtin/packages/py-zope-event/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,8 @@ from spack import *
class PyZopeEvent(PythonPackage):
"""Very basic event publishing system."""
- homepage = "http://github.com/zopefoundation/zope.event"
- url = "https://pypi.io/packages/source/z/zope.event/zope.event-4.3.0.tar.gz"
-
- # FIXME: No idea why this import test fails.
- # Maybe some kind of namespace issue?
- # import_modules = ['zope.event']
+ homepage = "https://github.com/zopefoundation/zope.event"
+ pypi = "zope.event/zope.event-4.3.0.tar.gz"
version('4.3.0', sha256='e0ecea24247a837c71c106b0341a7a997e3653da820d21ef6c08b32548f733e7')
diff --git a/var/spack/repos/builtin/packages/py-zope-interface/package.py b/var/spack/repos/builtin/packages/py-zope-interface/package.py
index 7a45399ea8..c5545aef0f 100644
--- a/var/spack/repos/builtin/packages/py-zope-interface/package.py
+++ b/var/spack/repos/builtin/packages/py-zope-interface/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,11 +13,7 @@ class PyZopeInterface(PythonPackage):
of the Design By Contract methodology support in Python."""
homepage = "https://github.com/zopefoundation/zope.interface"
- url = "https://pypi.io/packages/source/z/zope.interface/zope.interface-4.5.0.tar.gz"
-
- # FIXME: No idea why these import tests fail.
- # Maybe some kind of namespace issue?
- # import_modules = ['zope.interface', 'zope.interface.common']
+ pypi = "zope.interface/zope.interface-4.5.0.tar.gz"
version('5.1.0', sha256='40e4c42bd27ed3c11b2c983fecfb03356fae1209de10686d03c02c8696a1d90e')
version('4.5.0', sha256='57c38470d9f57e37afb460c399eb254e7193ac7fb8042bd09bdc001981a9c74c')
@@ -26,6 +22,3 @@ class PyZopeInterface(PythonPackage):
depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@5.1.0:')
depends_on('py-setuptools', type=('build', 'run'))
- depends_on('py-zope-event', type='test')
- depends_on('py-nose', type='test')
- depends_on('py-coverage', type='test')
diff --git a/var/spack/repos/builtin/packages/py-zxcvbn/package.py b/var/spack/repos/builtin/packages/py-zxcvbn/package.py
index d95f9d60ab..722a09b8a6 100644
--- a/var/spack/repos/builtin/packages/py-zxcvbn/package.py
+++ b/var/spack/repos/builtin/packages/py-zxcvbn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/pythia6/package.py b/var/spack/repos/builtin/packages/pythia6/package.py
index fee36c1830..3fca50a240 100644
--- a/var/spack/repos/builtin/packages/pythia6/package.py
+++ b/var/spack/repos/builtin/packages/pythia6/package.py
@@ -1,14 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 numbers
import os
+
from six import iteritems
from six.moves.urllib.parse import urlparse
+from spack import *
+
def _is_integral(x):
"""Accepts only integral values."""
@@ -31,9 +33,13 @@ class Pythia6(CMakePackage):
"""
homepage = 'https://pythiasix.hepforge.org/'
- url = 'http://www.hepforge.org/archive/pythiasix/pythia-6.4.28.tgz'
+ url = 'https://pythia.org/download/pythia6/pythia6428-split.tgz'
+
+ tags = ['hep']
+
+ maintainers = ['gartung', 'chissg']
- version('6.4.28',
+ version('6.4.28', url='https://pythia.org/download/pythia6/pythia6428-split.tgz',
sha256='01cbff47e99365b5e46f6d62c1735d3cae1932c4710604850d59f538cb758020')
# Root's TPythia6 interface requires extra sources to be built into
@@ -131,6 +137,7 @@ class Pythia6(CMakePackage):
# majority of cases. If your case is different, platform- or
# variant-based adjustments should be made.
patch('pythia6.patch', level=0)
+ patch('pythia6-root.patch', level=1, when='+root')
def patch(self):
# Use our provided CMakeLists.txt. The Makefile provided with
diff --git a/var/spack/repos/builtin/packages/pythia6/pythia6-root.patch b/var/spack/repos/builtin/packages/pythia6/pythia6-root.patch
new file mode 100644
index 0000000000..c3c6f1daac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pythia6/pythia6-root.patch
@@ -0,0 +1,8 @@
+--- rootinterface/pythia6_common_address.c.orig 2020-11-12 14:07:37.000000000 +0100
++++ rootinterface/pythia6_common_address.c 2020-11-12 14:08:54.000000000 +0100
+@@ -1,4 +1,5 @@
+ // declaration of PYTHIA6 common clocks
++# include <string.h>
+ #ifndef WIN32
+ # define pyjets pyjets_
+ # define pydat1 pydat1_
diff --git a/var/spack/repos/builtin/packages/pythia6/pythia6.patch b/var/spack/repos/builtin/packages/pythia6/pythia6.patch
index 5d45541e07..c2e62c402f 100644
--- a/var/spack/repos/builtin/packages/pythia6/pythia6.patch
+++ b/var/spack/repos/builtin/packages/pythia6/pythia6.patch
@@ -276,3 +276,16 @@ diff -Naur upveto.f upveto.f
RETURN
END
+
+--- pystrf.f.orig 2014-05-14 18:12:02.000000001 +0200
++++ pystrf.f 2014-05-14 18:10:23.000000001 +0200
+@@ -805,7 +805,9 @@
+
+ C...Closed string: random initial breakup flavour, pT and vertex.
+ ELSE
+- KFL(3)=INT(1D0+(2D0+PARJ(2))*PYR(0))*(-1)**INT(PYR(0)+0.5D0)
++ RNDM1=PYR(0)
++ RNDM2=PYR(0)
++ KFL(3)=INT(1D0+(2D0+PARJ(2))*RNDM1)*(-1)**INT(RNDM2+0.5D0)
+ IBMO=0
+ 770 CALL PYKFDI(KFL(3),0,KFL(1),KDUMP)
+ C.. Closed string: first vertex diq attempt => enforced second
diff --git a/var/spack/repos/builtin/packages/pythia8/package.py b/var/spack/repos/builtin/packages/pythia8/package.py
index 856aa103b5..0973f63d54 100644
--- a/var/spack/repos/builtin/packages/pythia8/package.py
+++ b/var/spack/repos/builtin/packages/pythia8/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,8 +15,11 @@ class Pythia8(AutotoolsPackage):
homepage = "http://home.thep.lu.se/Pythia/"
url = "http://home.thep.lu.se/~torbjorn/pythia8/pythia8244.tgz"
+ tags = ['hep']
+
maintainers = ['ChristianTackeGSI']
+ version('8304', sha256='d3897018fb6d545eaf93bf43f32580c984a9bff49259d9dd29dff6edfbe9d9a1')
version('8303', sha256='cd7c2b102670dae74aa37053657b4f068396988ef7da58fd3c318c84dc37913e')
version('8302', sha256='7372e4cc6f48a074e6b7bc426b040f218ec4a64b0a55e89da6af56933b5f5085')
version('8301', sha256='51382768eb9aafb97870dca1909516422297b64ef6a6b94659259b3e4afa7f06')
@@ -56,7 +59,7 @@ class Pythia8(AutotoolsPackage):
if '+fastjet' in self.spec:
args.append('--with-fastjet3=%s' % self.spec["fastjet"].prefix)
else:
- args.append('--without-fastjet')
+ args.append('--without-fastjet3')
if '+evtgen' in self.spec:
args.append('--with-evtgen=%s' % self.spec["evtgen"].prefix)
else:
@@ -64,7 +67,7 @@ class Pythia8(AutotoolsPackage):
if '+root' in self.spec:
args.append('--with-root=%s' % self.spec["root"].prefix)
else:
- args.append('--without-evtgen')
+ args.append('--without-root')
return args
diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py
index 4d0df211e6..e1e504bb60 100644
--- a/var/spack/repos/builtin/packages/python/package.py
+++ b/var/spack/repos/builtin/packages/python/package.py
@@ -1,24 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import ast
+import json
import os
import platform
import re
-import sys
import llnl.util.tty as tty
+from llnl.util.filesystem import get_filetype, path_contains_subdirectory
from llnl.util.lang import match_predicate
-from llnl.util.filesystem import (force_remove, get_filetype,
- path_contains_subdirectory)
-import spack.store
-import spack.util.spack_json as sjson
+from spack import *
from spack.util.environment import is_system_path
from spack.util.prefix import Prefix
-from spack import *
class Python(AutotoolsPackage):
@@ -29,16 +25,28 @@ class Python(AutotoolsPackage):
list_url = "https://www.python.org/ftp/python/"
list_depth = 1
- maintainers = ['adamjstewart']
+ maintainers = ['adamjstewart', 'skosukhin']
+ version('3.9.6', sha256='d0a35182e19e416fc8eae25a3dcd4d02d4997333e4ad1f2eee6010aadc3fe866')
+ version('3.9.5', sha256='e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab')
+ version('3.9.4', sha256='66c4de16daa74a825cf9da9ddae1fe020b72c3854b73b1762011cc33f9e4592f')
+ version('3.9.2', sha256='7899e8a6f7946748830d66739f2d8f2b30214dad956e56b9ba216b3de5581519')
+ version('3.9.1', sha256='29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117')
version('3.9.0', sha256='df796b2dc8ef085edae2597a41c1c0a63625ebd92487adaef2fed22b567873e8')
- version('3.8.6', sha256='313562ee9986dc369cd678011bdfd9800ef62fbf7b1496228a18f86b36428c21', preferred=True)
+ version('3.8.11', sha256='b77464ea80cec14581b86aeb7fb2ff02830e0abc7bcdc752b7b4bdfcd8f3e393', preferred=True)
+ version('3.8.10', sha256='b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65')
+ version('3.8.9', sha256='9779ec1df000bf86914cdd40860b88da56c1e61db59d37784beca14a259ac9e9')
+ version('3.8.8', sha256='76c0763f048e4f9b861d24da76b7dd5c7a3ba7ec086f40caedeea359263276f7')
+ version('3.8.7', sha256='20e5a04262f0af2eb9c19240d7ec368f385788bba2d8dfba7e74b20bab4d2bac')
+ version('3.8.6', sha256='313562ee9986dc369cd678011bdfd9800ef62fbf7b1496228a18f86b36428c21')
version('3.8.5', sha256='015115023c382eb6ab83d512762fe3c5502fa0c6c52ffebc4831c4e1a06ffc49')
version('3.8.4', sha256='32c4d9817ef11793da4d0d95b3191c4db81d2e45544614e8449255ca9ae3cc18')
version('3.8.3', sha256='6af6d4d2e010f9655518d0fc6738c7ff7069f10a4d2fbd55509e467f092a8b90')
version('3.8.2', sha256='e634a7a74776c2b89516b2e013dda1728c89c8149b9863b8cea21946daf9d561')
version('3.8.1', sha256='c7cfa39a43b994621b245e029769e9126caa2a93571cee2e743b213cceac35fb')
version('3.8.0', sha256='f1069ad3cae8e7ec467aa98a6565a62a48ef196cb8f1455a245a08db5e1792df')
+ version('3.7.11', sha256='b4fba32182e16485d0a6022ba83c9251e6a1c14676ec243a9a07d3722cd4661a')
+ version('3.7.10', sha256='c9649ad84dc3a434c8637df6963100b2e5608697f9ba56d82e3809e4148e0975')
version('3.7.9', sha256='39b018bc7d8a165e59aa827d9ae45c45901739b0bbb13721e4f973f3521c166a')
version('3.7.8', sha256='0e25835614dc221e3ecea5831b38fa90788b5389b99b675a751414c858789ab0')
version('3.7.7', sha256='8c8be91cd2648a1a0c251f04ea0bb4c2a5570feb9c45eaaa2241c785585b475a')
@@ -49,6 +57,8 @@ class Python(AutotoolsPackage):
version('3.7.2', sha256='f09d83c773b9cc72421abba2c317e4e6e05d919f9bcf34468e192b6a6c8e328d')
version('3.7.1', sha256='36c1b81ac29d0f8341f727ef40864d99d8206897be96be73dc34d4739c9c9f06')
version('3.7.0', sha256='85bb9feb6863e04fb1700b018d9d42d1caac178559ffa453d7e6a436e259fd0d')
+ version('3.6.14', sha256='70064897bc434d6eae8bcc3e5678f282b5ea776d60e695da548a1219ccfd27a5')
+ version('3.6.13', sha256='614950d3d54f6e78dac651b49c64cfe2ceefea5af3aff3371a9e4b27a53b2669')
version('3.6.12', sha256='12dddbe52385a0f702fb8071e12dcc6b3cb2dde07cd8db3ed60e90d90ab78693')
version('3.6.11', sha256='96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c')
version('3.6.10', sha256='7034dd7cba98d4f94c74f9edd7345bac71c8814c41672c64d9044fa2f96f334d')
@@ -155,7 +165,9 @@ class Python(AutotoolsPackage):
# https://docs.python.org/3.5/whatsnew/changelog.html#python-3-5-4rc1
depends_on('openssl@:1.0.2z', when='@:2.7.13,3.0.0:3.5.2+ssl')
depends_on('openssl@1.0.2:', when='@3.7:+ssl') # https://docs.python.org/3/whatsnew/3.7.html#build-changes
- depends_on('sqlite@3.0.8:', when='+sqlite3')
+ depends_on('openssl@1.1.1:', when='@3.10:+ssl') # https://docs.python.org/3.10/whatsnew/3.10.html#build-changes
+ depends_on('sqlite@3.0.8:', when='@:3.9+sqlite3')
+ depends_on('sqlite@3.7.15:', when='@3.10:+sqlite3') # https://docs.python.org/3.10/whatsnew/3.10.html#build-changes
depends_on('gdbm', when='+dbm') # alternatively ndbm or berkeley-db
depends_on('libnsl', when='+nis')
depends_on('zlib@1.1.3:', when='+zlib')
@@ -165,14 +177,8 @@ class Python(AutotoolsPackage):
depends_on('libffi', when='+ctypes')
depends_on('tk', when='+tkinter')
depends_on('tcl', when='+tkinter')
+ depends_on('uuid', when='+uuid')
depends_on('tix', when='+tix')
- if sys.platform != 'darwin':
- # On macOS systems, Spack's libuuid conflicts with the system-installed
- # version and breaks anything linked against Cocoa/Carbon. Since the
- # system-provided version is sufficient to build Python's UUID support,
- # the easy solution is to only depend on Spack's libuuid when *not* on
- # a Mac.
- depends_on('libuuid', when='+uuid')
# Python needs to be patched to build extensions w/ mixed C/C++ code:
# https://github.com/NixOS/nixpkgs/pull/19585/files
@@ -226,12 +232,8 @@ class Python(AutotoolsPackage):
conflicts('%nvhpc')
- _DISTUTIL_VARS_TO_SAVE = ['LDSHARED']
- _DISTUTIL_CACHE_FILENAME = 'sysconfig.json'
- _distutil_vars = None
-
- # Used to cache home locations, since computing them might be expensive
- _homes = {}
+ # Used to cache various attributes that are expensive to compute
+ _config_vars = {}
# An in-source build with --enable-optimizations fails for python@3.X
build_directory = 'spack-build'
@@ -388,6 +390,7 @@ class Python(AutotoolsPackage):
def configure_args(self):
spec = self.spec
config_args = []
+ cflags = []
# setup.py needs to be able to read the CPPFLAGS and LDFLAGS
# as it scans for the library and headers to build
@@ -422,8 +425,8 @@ class Python(AutotoolsPackage):
config_args.append('--disable-toolbox-glue')
if spec.satisfies('%intel', strict=True) and \
- spec.satisfies('@2.7.12:2.8,3.5.2:', strict=True):
- config_args.append('--with-icc')
+ spec.satisfies('@2.7.12:2.8,3.5.2:3.7', strict=True):
+ config_args.append('--with-icc={0}'.format(spack_cc))
if '+debug' in spec:
config_args.append('--with-pydebug')
@@ -449,7 +452,7 @@ class Python(AutotoolsPackage):
config_args.append('--without-ensurepip')
if '+pic' in spec:
- config_args.append('CFLAGS={0}'.format(self.compiler.cc_pic_flag))
+ cflags.append(self.compiler.cc_pic_flag)
if '+ssl' in spec:
if spec.satisfies('@3.7:'):
@@ -484,91 +487,13 @@ class Python(AutotoolsPackage):
if spec.satisfies('@3.2: +sqlite3'):
config_args.append('--enable-loadable-sqlite-extensions')
- return config_args
-
- @run_after('install')
- def _save_distutil_vars(self):
- """
- Run before changing automatically generated contents of the
- _sysconfigdata.py, which is used by distutils to figure out what
- executables to use while compiling and linking extensions. If we build
- extensions with spack those executables should be spack's wrappers.
- Spack partially covers this by setting environment variables that
- are also accounted for by distutils. Currently there is one more known
- variable that must be set, which is LDSHARED, so the method saves its
- autogenerated value to pass it to the dependent package's setup script.
- """
-
- self._distutil_vars = {}
-
- input_filename = self.get_sysconfigdata_name()
- input_dict = None
- try:
- with open(input_filename) as input_file:
- match = re.search(r'build_time_vars\s*=\s*(?P<dict>{.*})',
- input_file.read(),
- flags=re.DOTALL)
-
- if match:
- input_dict = ast.literal_eval(match.group('dict'))
- except (IOError, SyntaxError):
- pass
-
- if not input_dict:
- tty.warn("Failed to find 'build_time_vars' dictionary in file "
- "'%s'. This might cause the extensions that are "
- "installed with distutils to call compilers directly "
- "avoiding Spack's wrappers." % input_filename)
- return
-
- for var_name in Python._DISTUTIL_VARS_TO_SAVE:
- if var_name in input_dict:
- self._distutil_vars[var_name] = input_dict[var_name]
- else:
- tty.warn("Failed to find key '%s' in 'build_time_vars' "
- "dictionary in file '%s'. This might cause the "
- "extensions that are installed with distutils to "
- "call compilers directly avoiding Spack's wrappers."
- % (var_name, input_filename))
-
- if len(self._distutil_vars) > 0:
- output_filename = None
- try:
- output_filename = join_path(
- spack.store.layout.metadata_path(self.spec),
- Python._DISTUTIL_CACHE_FILENAME)
- with open(output_filename, 'w') as output_file:
- sjson.dump(self._distutil_vars, output_file)
- except Exception:
- tty.warn("Failed to save metadata for distutils. This might "
- "cause the extensions that are installed with "
- "distutils to call compilers directly avoiding "
- "Spack's wrappers.")
- # We make the cache empty if we failed to save it to file
- # to provide the same behaviour as in the case when the cache
- # is initialized by the method load_distutils_data().
- self._distutil_vars = {}
- if output_filename:
- force_remove(output_filename)
-
- def _load_distutil_vars(self):
- # We update and keep the cache unchanged only if the package is
- # installed.
- if not self._distutil_vars and self.installed:
- try:
- input_filename = join_path(
- spack.store.layout.metadata_path(self.spec),
- Python._DISTUTIL_CACHE_FILENAME)
- if os.path.isfile(input_filename):
- with open(input_filename) as input_file:
- self._distutil_vars = sjson.load(input_file)
- except Exception:
- pass
+ if spec.satisfies('%oneapi'):
+ cflags.append('-fp-model=strict')
- if not self._distutil_vars:
- self._distutil_vars = {}
+ if cflags:
+ config_args.append('CFLAGS={0}'.format(' '.join(cflags)))
- return self._distutil_vars
+ return config_args
@run_after('install')
def filter_compilers(self):
@@ -582,7 +507,7 @@ class Python(AutotoolsPackage):
kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
filenames = [
- self.get_sysconfigdata_name(), self.get_makefile_filename()
+ self.get_sysconfigdata_name(), self.config_vars['makefile_filename']
]
filter_file(spack_cc, self.compiler.cc, *filenames, **kwargs)
@@ -618,6 +543,13 @@ class Python(AutotoolsPackage):
os.path.join(prefix.bin, 'python-config'))
@run_after('install')
+ def install_python_gdb(self):
+ # https://devguide.python.org/gdb/
+ src = os.path.join('Tools', 'gdb', 'libpython.py')
+ if os.path.exists(src):
+ install(src, self.command.path + '-gdb.py')
+
+ @run_after('install')
@on_package_attributes(run_tests=True)
def import_tests(self):
"""Test that basic Python functionality works."""
@@ -755,57 +687,61 @@ class Python(AutotoolsPackage):
else:
return 'print({0})'.format(string)
- def get_config_var(self, key):
- """Return the value of a single variable. Wrapper around
- ``distutils.sysconfig.get_config_var()``."""
-
- cmd = 'from distutils.sysconfig import get_config_var; '
- cmd += self.print_string("get_config_var('{0}')".format(key))
-
- return self.command('-c', cmd, output=str).strip()
-
- def get_config_h_filename(self):
- """Return the full path name of the configuration header.
- Wrapper around ``distutils.sysconfig.get_config_h_filename()``."""
-
- cmd = 'from distutils.sysconfig import get_config_h_filename; '
- cmd += self.print_string('get_config_h_filename()')
-
- return self.command('-c', cmd, output=str).strip()
-
- def get_makefile_filename(self):
- """Return the full path name of ``Makefile`` used to build Python.
- Wrapper around ``distutils.sysconfig.get_makefile_filename()``."""
-
- cmd = 'from distutils.sysconfig import get_makefile_filename; '
- cmd += self.print_string('get_makefile_filename()')
+ @property
+ def config_vars(self):
+ """Return a set of variable definitions associated with a Python installation.
- return self.command('-c', cmd, output=str).strip()
+ Wrapper around various ``distutils.sysconfig`` functions.
- def get_python_inc(self):
- """Return the directory for either the general or platform-dependent C
- include files. Wrapper around ``distutils.sysconfig.get_python_inc()``.
+ Returns:
+ dict: variable definitions
"""
+ # TODO: distutils is deprecated in Python 3.10 and will be removed in
+ # Python 3.12, find a different way to access this information.
+ # Also, calling the python executable disallows us from cross-compiling,
+ # so we want to try to avoid that if possible.
+ cmd = """
+import json
+from distutils.sysconfig import (
+ get_config_vars,
+ get_config_h_filename,
+ get_makefile_filename,
+ get_python_inc,
+ get_python_lib,
+)
+
+config = get_config_vars()
+config['config_h_filename'] = get_config_h_filename()
+config['makefile_filename'] = get_makefile_filename()
+config['python_inc'] = {}
+config['python_lib'] = {}
+
+for plat_specific in [True, False]:
+ plat_key = str(plat_specific).lower()
+ config['python_inc'][plat_key] = get_python_inc(plat_specific, prefix='')
+ config['python_lib'][plat_key] = {}
+ for standard_lib in [True, False]:
+ lib_key = str(standard_lib).lower()
+ config['python_lib'][plat_key][lib_key] = get_python_lib(
+ plat_specific, standard_lib, prefix=''
+ )
+
+%s
+""" % self.print_string("json.dumps(config)")
- cmd = 'from distutils.sysconfig import get_python_inc; '
- cmd += self.print_string('get_python_inc()')
-
- return self.command('-c', cmd, output=str).strip()
-
- def get_python_lib(self):
- """Return the directory for either the general or platform-dependent
- library installation. Wrapper around
- ``distutils.sysconfig.get_python_lib()``."""
-
- cmd = 'from distutils.sysconfig import get_python_lib; '
- cmd += self.print_string('get_python_lib()')
-
- return self.command('-c', cmd, output=str).strip()
+ dag_hash = self.spec.dag_hash()
+ if dag_hash not in self._config_vars:
+ try:
+ config = json.loads(self.command('-c', cmd, output=str))
+ except (ProcessError, RuntimeError):
+ config = {}
+ self._config_vars[dag_hash] = config
+ return self._config_vars[dag_hash]
def get_sysconfigdata_name(self):
"""Return the full path name of the sysconfigdata file."""
- libdest = self.get_config_var('LIBDEST')
+ libdest = self.config_vars['LIBDEST']
filename = '_sysconfigdata.py'
if self.spec.satisfies('@3.6:'):
@@ -829,14 +765,11 @@ class Python(AutotoolsPackage):
determine exactly where it is installed. Fall back on
``spec['python'].prefix`` if that doesn't work."""
- dag_hash = self.spec.dag_hash()
- if dag_hash not in self._homes:
- try:
- prefix = self.get_config_var('prefix')
- except ProcessError:
- prefix = self.prefix
- self._homes[dag_hash] = Prefix(prefix)
- return self._homes[dag_hash]
+ if 'prefix' in self.config_vars:
+ prefix = self.config_vars['prefix']
+ else:
+ prefix = self.prefix
+ return Prefix(prefix)
@property
def libs(self):
@@ -844,19 +777,19 @@ class Python(AutotoolsPackage):
# installs them into lib64. If the user is using an externally
# installed package, it may be in either lib or lib64, so we need
# to ask Python where its LIBDIR is.
- libdir = self.get_config_var('LIBDIR')
+ libdir = self.config_vars['LIBDIR']
# In Ubuntu 16.04.6 and python 2.7.12 from the system, lib could be
# in LBPL
# https://mail.python.org/pipermail/python-dev/2013-April/125733.html
- libpl = self.get_config_var('LIBPL')
+ libpl = self.config_vars['LIBPL']
# The system Python installation on macOS and Homebrew installations
# install libraries into a Frameworks directory
- frameworkprefix = self.get_config_var('PYTHONFRAMEWORKPREFIX')
+ frameworkprefix = self.config_vars['PYTHONFRAMEWORKPREFIX']
if '+shared' in self.spec:
- ldlibrary = self.get_config_var('LDLIBRARY')
+ ldlibrary = self.config_vars['LDLIBRARY']
if os.path.exists(os.path.join(libdir, ldlibrary)):
return LibraryList(os.path.join(libdir, ldlibrary))
@@ -868,7 +801,7 @@ class Python(AutotoolsPackage):
msg = 'Unable to locate {0} libraries in {1}'
raise RuntimeError(msg.format(ldlibrary, libdir))
else:
- library = self.get_config_var('LIBRARY')
+ library = self.config_vars['LIBRARY']
if os.path.exists(os.path.join(libdir, library)):
return LibraryList(os.path.join(libdir, library))
@@ -880,16 +813,16 @@ class Python(AutotoolsPackage):
@property
def headers(self):
- try:
- config_h = self.get_config_h_filename()
+ if 'config_h_filename' in self.config_vars:
+ config_h = self.config_vars['config_h_filename']
if not os.path.exists(config_h):
- includepy = self.get_config_var('INCLUDEPY')
+ includepy = self.config_vars['INCLUDEPY']
msg = 'Unable to locate {0} headers in {1}'
raise RuntimeError(msg.format(self.name, includepy))
headers = HeaderList(config_h)
- except ProcessError:
+ else:
headers = find_headers(
'pyconfig', self.prefix.include, recursive=True)
config_h = headers[0]
@@ -898,16 +831,75 @@ class Python(AutotoolsPackage):
return headers
@property
- def python_lib_dir(self):
- return join_path('lib', 'python{0}'.format(self.version.up_to(2)))
+ def python_include_dir(self):
+ """Directory for the include files.
+
+ On most systems, and for Spack-installed Python, this will look like:
+
+ ``include/pythonX.Y``
+
+ However, some systems append a ``m`` to the end of this path.
+
+ Returns:
+ str: include files directory
+ """
+ try:
+ return self.config_vars['python_inc']['false']
+ except KeyError:
+ return os.path.join('include', 'python{0}'.format(self.version.up_to(2)))
@property
- def python_include_dir(self):
- return join_path('include', 'python{0}'.format(self.version.up_to(2)))
+ def python_lib_dir(self):
+ """Directory for the standard library.
+
+ On most systems, and for Spack-installed Python, this will look like:
+
+ ``lib/pythonX.Y``
+
+ On RHEL/CentOS/Fedora, when using the system Python, this will look like:
+
+ ``lib64/pythonX.Y``
+
+ On Debian/Ubuntu, when using the system Python, this will look like:
+
+ ``lib/pythonX``
+
+ Returns:
+ str: standard library directory
+ """
+ try:
+ return self.config_vars['python_lib']['false']['true']
+ except KeyError:
+ return os.path.join('lib', 'python{0}'.format(self.version.up_to(2)))
@property
def site_packages_dir(self):
- return join_path(self.python_lib_dir, 'site-packages')
+ """Directory where third-party extensions should be installed.
+
+ On most systems, and for Spack-installed Python, this will look like:
+
+ ``lib/pythonX.Y/site-packages``
+
+ On RHEL/CentOS/Fedora, when using the system Python, this will look like:
+
+ ``lib64/pythonX.Y/site-packages``
+
+ On Debian/Ubuntu, when using the system Python, this will look like:
+
+ ``lib/pythonX/dist-packages``
+
+ Returns:
+ str: site-packages directory
+ """
+ try:
+ return self.config_vars['python_lib']['true']['false']
+ except KeyError:
+ return self.default_site_packages_dir
+
+ @property
+ def default_site_packages_dir(self):
+ python_dir = 'python{0}'.format(self.version.up_to(2))
+ return os.path.join('lib', python_dir, 'site-packages')
@property
def easy_install_file(self):
@@ -919,8 +911,8 @@ class Python(AutotoolsPackage):
def setup_dependent_build_environment(self, env, dependent_spec):
"""Set PYTHONPATH to include the site-packages directory for the
- extension and any other python extensions it depends on."""
-
+ extension and any other python extensions it depends on.
+ """
# If we set PYTHONHOME, we must also ensure that the corresponding
# python is found in the build environment. This to prevent cases
# where a system provided python is run against the standard libraries
@@ -931,45 +923,82 @@ class Python(AutotoolsPackage):
if not is_system_path(path):
env.prepend_path('PATH', path)
- python_paths = []
- for d in dependent_spec.traverse(deptype=('build', 'run', 'test')):
+ for d in dependent_spec.traverse(deptype=('build', 'run', 'test'), root=True):
if d.package.extends(self.spec):
- # Python libraries may be installed in lib or lib64
- # See issues #18520 and #17126
- for lib in ['lib', 'lib64']:
- python_paths.append(join_path(
- d.prefix, lib, 'python' + str(self.version.up_to(2)),
- 'site-packages'))
-
- pythonpath = ':'.join(python_paths)
- env.set('PYTHONPATH', pythonpath)
+ env.prepend_path('PYTHONPATH', join_path(
+ d.prefix, self.site_packages_dir))
+
+ # We need to make sure that the extensions are compiled and linked with
+ # the Spack wrapper. Paths to the executables that are used for these
+ # operations are normally taken from the sysconfigdata file, which we
+ # modify after the installation (see method filter compilers). The
+ # modified file contains paths to the real compilers, not the wrappers.
+ # The values in the file, however, can be overridden with environment
+ # variables. The first variable, CC (CXX), which is used for
+ # compilation, is set by Spack for the dependent package by default.
+ # That is not 100% correct because the value for CC (CXX) in the
+ # sysconfigdata file often contains additional compiler flags (e.g.
+ # -pthread), which we lose by simply setting CC (CXX) to the path to the
+ # Spack wrapper. Moreover, the user might try to build an extension with
+ # a compiler that is different from the one that was used to build
+ # Python itself, which might have unexpected side effects. However, the
+ # experience shows that none of the above is a real issue and we will
+ # not try to change the default behaviour. Given that, we will simply
+ # try to modify LDSHARED (LDCXXSHARED), the second variable, which is
+ # used for linking, in a consistent manner.
+
+ for compile_var, link_var in [('CC', 'LDSHARED'),
+ ('CXX', 'LDCXXSHARED')]:
+ # First, we get the values from the sysconfigdata:
+ config_compile = self.config_vars[compile_var]
+ config_link = self.config_vars[link_var]
+
+ # The dependent environment will have the compilation command set to
+ # the following:
+ new_compile = join_path(
+ spack.paths.build_env_path,
+ dependent_spec.package.compiler.link_paths[compile_var.lower()])
+
+ # Normally, the link command starts with the compilation command:
+ if config_link.startswith(config_compile):
+ new_link = new_compile + config_link[len(config_compile):]
+ else:
+ # Otherwise, we try to replace the compiler command if it
+ # appears "in the middle" of the link command; to avoid
+ # mistaking some substring of a path for the compiler (e.g. to
+ # avoid replacing "gcc" in "-L/path/to/gcc/"), we require that
+ # the compiler command be surrounded by spaces. Note this may
+ # leave "config_link" unchanged if the compilation command does
+ # not appear in the link command at all, for example if "ld" is
+ # invoked directly (no change would be required in that case
+ # because Spack arranges for the Spack ld wrapper to be the
+ # first instance of "ld" in PATH).
+ new_link = config_link.replace(" {0} ".format(config_compile),
+ " {0} ".format(new_compile))
+
+ # There is logic in the sysconfig module that is sensitive to the
+ # fact that LDSHARED is set in the environment, therefore we export
+ # the variable only if the new value is different from what we got
+ # from the sysconfigdata file:
+ if config_link != new_link:
+ env.set(link_var, new_link)
def setup_dependent_run_environment(self, env, dependent_spec):
- # For run time environment set only the path for
- # dependent_spec and prepend it to PYTHONPATH
- if dependent_spec.package.extends(self.spec):
- for lib in ['lib', 'lib64']:
+ """Set PYTHONPATH to include the site-packages directory for the
+ extension and any other python extensions it depends on.
+ """
+ for d in dependent_spec.traverse(deptype=('run'), root=True):
+ if d.package.extends(self.spec):
env.prepend_path('PYTHONPATH', join_path(
- dependent_spec.prefix, lib,
- 'python' + str(self.version.up_to(2)), 'site-packages'))
+ d.prefix, self.site_packages_dir))
def setup_dependent_package(self, module, dependent_spec):
- """Called before python modules' install() methods.
-
- In most cases, extensions will only need to have one line::
-
- setup_py('install', '--prefix={0}'.format(prefix))"""
+ """Called before python modules' install() methods."""
module.python = self.command
module.setup_py = Executable(
self.command.path + ' setup.py --no-user-cfg')
- distutil_vars = self._load_distutil_vars()
-
- if distutil_vars:
- for key, value in distutil_vars.items():
- module.setup_py.add_default_env(key, value)
-
# Add variables for lib/pythonX.Y and lib/pythonX.Y/site-packages dirs.
module.python_lib_dir = join_path(dependent_spec.prefix,
self.python_lib_dir)
@@ -993,17 +1022,17 @@ class Python(AutotoolsPackage):
ignore_arg = args.get('ignore', lambda f: False)
# Always ignore easy-install.pth, as it needs to be merged.
- patterns = [r'site-packages/easy-install\.pth$']
+ patterns = [r'(site|dist)-packages/easy-install\.pth$']
# Ignore pieces of setuptools installed by other packages.
# Must include directory name or it will remove all site*.py files.
if ext_pkg.name != 'py-setuptools':
patterns.extend([
r'bin/easy_install[^/]*$',
- r'site-packages/setuptools[^/]*\.egg$',
- r'site-packages/setuptools\.pth$',
- r'site-packages/site[^/]*\.pyc?$',
- r'site-packages/__pycache__/site[^/]*\.pyc?$'
+ r'(site|dist)-packages/setuptools[^/]*\.egg$',
+ r'(site|dist)-packages/setuptools\.pth$',
+ r'(site|dist)-packages/site[^/]*\.pyc?$',
+ r'(site|dist)-packages/__pycache__/site[^/]*\.pyc?$'
])
if ext_pkg.name != 'py-pygments':
patterns.append(r'bin/pygmentize$')
diff --git a/var/spack/repos/builtin/packages/q-e-sirius/package.py b/var/spack/repos/builtin/packages/q-e-sirius/package.py
index 82468ea892..b91235f85a 100644
--- a/var/spack/repos/builtin/packages/q-e-sirius/package.py
+++ b/var/spack/repos/builtin/packages/q-e-sirius/package.py
@@ -1,11 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
# adapted from official quantum espresso package
-class QESirius(Package):
+class QESirius(CMakePackage):
"""SIRIUS enabled fork of QuantumESPRESSO. """
homepage = 'https://github.com/electronic-structure/q-e-sirius/'
@@ -14,297 +14,50 @@ class QESirius(Package):
maintainers = ['simonpintarelli']
- version('develop', branch='ristretto')
+ version('develop-ristretto', branch='ristretto', submodules=True)
+ version('6.7-rc1-sirius', tag='v6.7-rc1-sirius', submodules=True)
- version('6.5-rc2-sirius', sha256='460b678406eec36e4ee828c027929cf8720c3965a85c20084c53398b123c9ae9')
- version('6.5-rc3-sirius', sha256='1bfb8c1bba815b5ab2d733f51a8f9aa7b079f2859e6f14e4dcda708ebf172b02')
- version('6.5-rc4-sirius', sha256='be5529d65e4b301d6a6d1235e8d88277171c1732768bf1cf0c7fdeae154c79f1')
+ variant('mpi', default=True, description='Builds with MPI support')
+ variant('openmp', default=True, description='Enables OpenMP support')
+ variant('scalapack', default=False, description='Enables SCALAPACK support')
+ variant('elpa', default=False, description='Uses ELPA as an eigenvalue solver')
+ variant('libxc', default=False, description='Support functionals through libxc')
+ variant('hdf5', default=False, description='Enables HDF5 support')
- variant('mpi', default=True, description='Builds with mpi support')
- variant('openmp', default=True, description='Enables openMP support')
- variant('scalapack', default=True, description='Enables scalapack support')
- variant('elpa', default=False, description='Uses elpa as an eigenvalue solver')
+ depends_on('sirius +fortran ~apps')
+ depends_on('sirius +openmp', when='+openmp')
+ depends_on('sirius@develop', when='@develop')
- # Support for HDF5 has been added starting in version 6.1.0 and is
- # still experimental, therefore we default to False for the variant
- variant(
- 'hdf5', default='none', description='Builds with HDF5 support',
- values=('parallel', 'serial', 'none'), multi=False
- )
-
- # Enables building Electron-phonon Wannier 'epw.x' executable
- # http://epw.org.uk/Main/About
- variant('epw', default=False,
- description='Builds Electron-phonon Wannier executable')
-
- # Apply upstream patches by default. Variant useful for 3rd party
- # patches which are incompatible with upstream patches
- desc = 'Apply recommended upstream patches. May need to be set '
- desc += 'to False for third party patches or plugins'
- variant('patch', default=True, description=desc)
-
- # QMCPACK converter patch
- # https://github.com/QMCPACK/qmcpack/tree/develop/external_codes/quantum_espresso
- variant('qmcpack', default=False,
- description='Build QE-to-QMCPACK wave function converter')
-
- # Dependencies
- depends_on('blas')
- depends_on('lapack')
- depends_on('fftw-api@3')
- depends_on('sirius+fortran+shared')
depends_on('mpi', when='+mpi')
- depends_on('scalapack', when='+scalapack+mpi')
- depends_on('elpa+openmp', when='+elpa+openmp')
- depends_on('elpa~openmp', when='+elpa~openmp')
- # Versions of HDF5 prior to 1.8.16 lead to QE runtime errors
- depends_on('hdf5@1.8.16:+fortran+hl+mpi', when='hdf5=parallel')
- depends_on('hdf5@1.8.16:+fortran+hl~mpi', when='hdf5=serial')
- depends_on('hdf5', when='+qmcpack')
- # TODO: enable building EPW when ~mpi
- depends_on('mpi', when='+epw')
-
- # CONFLICTS SECTION
- # Omitted for now due to concretizer bug
- # MKL with 64-bit integers not supported.
- # conflicts(
- # '^mkl+ilp64',
- # msg='Quantum ESPRESSO does not support MKL 64-bit integer variant'
- # )
-
- # We can't ask for scalapack or elpa if we don't want MPI
- conflicts(
- '+scalapack',
- when='~mpi',
- msg='scalapack is a parallel library and needs MPI support'
- )
-
- conflicts(
- '+elpa',
- when='~mpi',
- msg='elpa is a parallel library and needs MPI support'
- )
-
- # HDF5 support introduced in 6.1.0, but the configure had some limitations.
- # In recent tests (Oct 2019), GCC and Intel work with the HDF5 Spack
- # package for the default variant. This is only for hdf5=parallel variant.
- # Support, for hdf5=serial was introduced in 6.4.1 but required a patch
- # for the serial (no MPI) case. This patch was to work around an issue
- # that only manifested itself inside the Spack environment.
- conflicts(
- 'hdf5=parallel',
- when='@:6.0',
- msg='parallel HDF5 support only in QE 6.1.0 and later'
- )
-
- conflicts(
- 'hdf5=serial',
- when='@:6.4.0',
- msg='serial HDF5 support only in QE 6.4.1 and later'
- )
-
- conflicts(
- 'hdf5=parallel',
- when='~mpi',
- msg='parallel HDF5 requires MPI support'
- )
-
- # Elpa is formally supported by @:5.4.0, but QE configure searches
- # for it in the wrong folders (or tries to download it within
- # the build directory). Instead of patching Elpa to provide the
- # folder QE expects as a link, we issue a conflict here.
- conflicts('+elpa', when='@:5.4.0')
-
- # Some QMCPACK converters are incompatible with upstream patches.
- # HDF5 is a hard requirement. Need to do two HDF5 cases explicitly
- # since Spack lacks support for expressing NOT operation.
- conflicts(
- '@6.4+patch',
- when='+qmcpack',
- msg='QE-to-QMCPACK wave function converter requires '
- 'deactivatation of upstream patches'
- )
- conflicts(
- '@6.3:6.4.0 hdf5=serial',
- when='+qmcpack',
- msg='QE-to-QMCPACK wave function converter only '
- 'supported with parallel HDF5'
- )
- conflicts(
- 'hdf5=none',
- when='+qmcpack',
- msg='QE-to-QMCPACK wave function converter requires HDF5'
- )
-
- # The first version of Q-E to feature integrated EPW is 6.0.0,
- # as per http://epw.org.uk/Main/DownloadAndInstall .
- # Complain if trying to install a version older than this.
- conflicts('+epw', when='@:5',
- msg='EPW only available from version 6.0.0 and on')
-
- # Below goes some constraints as shown in the link above.
- # Constraints may be relaxed as successful reports
- # of different compiler+mpi combinations arrive
-
- # TODO: enable building EPW when ~mpi
- conflicts('+epw', when='~mpi', msg='EPW needs MPI')
-
- # EPW doesn't gets along well with OpenMPI 2.x.x
- conflicts('+epw', when='^openmpi@2.0.0:2.999.999',
- msg='OpenMPI version incompatible with EPW')
-
- # EPW also doesn't gets along well with PGI 17.x + OpenMPI 1.10.7
- conflicts('+epw', when='^openmpi@1.10.7%pgi@17.0:17.12',
- msg='PGI+OpenMPI version combo incompatible with EPW')
-
- # Spurious problems running in parallel the Makefile
- # generated by the configure
- parallel = False
-
- def install(self, spec, prefix):
-
- prefix_path = prefix.bin if '@:5.4.0' in spec else prefix
- options = ['-prefix={0}'.format(prefix_path)]
-
- sirius = spec['sirius']
- options.append('LIBS={0}'.format(sirius.libs[0]))
- options.append('LD_LIBS={0}'.format(sirius.libs[0]))
-
- options.append('--disable-xml')
-
- # QE autoconf compiler variables has some limitations:
- # 1. There is no explicit MPICC variable so we must re-purpose
- # CC for the case of MPI.
- # 2. F90 variable is set to be consistent with MPIF90 wrapper
- # 3. If an absolute path for F90 is set, the build system breaks.
- #
- # Thus, due to 2. and 3. the F90 variable is not explictly set
- # because it would be mostly pointless and could lead to erroneous
- # behaviour.
- if '+mpi' in spec:
- mpi = spec['mpi']
- options.append('--enable-parallel=yes')
- options.append('MPIF90={0}'.format(mpi.mpifc))
- options.append('CC={0}'.format(mpi.mpicc))
- else:
- options.append('--enable-parallel=no')
- options.append('CC={0}'.format(spack_cc))
-
- options.append('F77={0}'.format(spack_f77))
- options.append('F90={0}'.format(spack_fc))
-
- header_dir = sirius.headers.directories[0]
- f90flags = 'F90FLAGS=-cpp -I {0}/sirius'.format(header_dir)
-
- if self.spec.satisfies('%gcc@10:'):
- f90flags += ' -fallow-argument-mismatch'
-
- options.append(f90flags)
-
- if '+openmp' in spec:
- options.append('--enable-openmp')
-
- # QE external BLAS, FFT, SCALAPACK detection is a bit tricky.
- # More predictable to pass in the correct link line to QE.
- # If external detection of BLAS, LAPACK and FFT fails, QE
- # is supposed to revert to internal versions of these libraries
- # instead -- but more likely it will pickup versions of these
- # libraries found in its the system path, e.g. Red Hat or
- # Ubuntu's FFTW3 package.
-
- # FFT
- # FFT detection gets derailed if you pass into the CPPFLAGS, instead
- # you need to pass it in the FFTW_INCLUDE and FFT_LIBS directory.
- # QE supports an internal FFTW2, but only an external FFTW3 interface.
-
- if '^mkl' in spec:
- # A seperate FFT library is not needed when linking against MKL
- options.append(
- 'FFTW_INCLUDE={0}'.format(join_path(env['MKLROOT'],
- 'include/fftw')))
- if '^fftw@3:' in spec:
- fftw_prefix = spec['fftw'].prefix
- options.append('FFTW_INCLUDE={0}'.format(fftw_prefix.include))
- fftw_ld_flags = spec['fftw'].libs.ld_flags
- options.append('FFT_LIBS={0}'.format(fftw_ld_flags))
-
- # External BLAS and LAPACK requires the correct link line into
- # BLAS_LIBS, do no use LAPACK_LIBS as the autoconf scripts indicate
- # that this variable is largely ignored/obsolete.
-
- # For many Spack packages, lapack.libs = blas.libs, hence it will
- # appear twice in in link line but this is harmless
- lapack_blas = spec['lapack'].libs + spec['blas'].libs
-
- # qe-6.5 fails to detect MKL for FFT if BLAS_LIBS is set due to
- # an unfortunate upsteam change in their autoconf/configure:
- # - qe-6.5/install/m4/x_ac_qe_blas.m4 only sets 'have_blas'
- # but no 'have_mkl' if BLAS_LIBS is set (which seems to be o.k.)
- # - however, qe-6.5/install/m4/x_ac_qe_fft.m4 in 6.5 unfortunately
- # relies on x_ac_qe_blas.m4 to detect MKL and set 'have_mkl'
- # - qe-5.4 up to 6.4.1 had a different logic and worked fine with
- # BLAS_LIBS being set
- # However, MKL is correctly picked up by qe-6.5 for BLAS and FFT if
- # MKLROOT is set (which SPACK does automatically for ^mkl)
- if not ('quantum-espresso@6.5' in spec and '^mkl' in spec):
- options.append('BLAS_LIBS={0}'.format(lapack_blas.ld_flags))
-
- if '+scalapack' in spec:
- scalapack_option = 'intel' if '^mkl' in spec else 'yes'
- options.append('--with-scalapack={0}'.format(scalapack_option))
-
- if '+elpa' in spec:
-
- # Spec for elpa
- elpa = spec['elpa']
-
- # Compute the include directory from there: versions
- # of espresso prior to 6.1 requires -I in front of the directory
- elpa_include = '' if '@6.1:' in spec else '-I'
- elpa_include += join_path(
- elpa.headers.directories[0],
- 'modules'
- )
-
- options.extend([
- '--with-elpa-include={0}'.format(elpa_include),
- '--with-elpa-lib={0}'.format(elpa.libs[0])
- ])
-
- if spec.variants['hdf5'].value != 'none':
- options.append('--with-hdf5={0}'.format(spec['hdf5'].prefix))
- if spec.satisfies('@6.4.1,6.5'):
- options.extend([
- '--with-hdf5-include={0}'.format(
- spec['hdf5'].headers.directories[0]
- ),
- '--with-hdf5-libs={0}'.format(
- spec['hdf5:hl,fortran'].libs.ld_flags
- )
- ])
-
- configure(*options)
-
- # Filter file must be applied after configure executes
- # QE 6.1.0 to QE 6.4 have `-L` missing in front of zlib library
- # This issue is backported through an internal patch in 6.4.1, but
- # can't be applied to the '+qmcpack' variant
- if spec.variants['hdf5'].value != 'none':
- if (spec.satisfies('@6.1.0:6.4.0') or
- (spec.satisfies('@6.4.1') and '+qmcpack' in spec)):
- make_inc = join_path(self.stage.source_path, 'make.inc')
- zlib_libs = spec['zlib'].prefix.lib + ' -lz'
- filter_file(
- zlib_libs, format(spec['zlib'].libs.ld_flags), make_inc
- )
-
- if '+epw' in spec:
- make('all', 'epw')
- else:
- make('all')
-
- if 'platform=darwin' in spec:
- mkdirp(prefix.bin)
- install('bin/*.x', prefix.bin)
- else:
- make('install')
+ depends_on('scalapack', when='+scalapack')
+ depends_on('elpa', when='+elpa')
+ depends_on('libxc', when='+libxc')
+ depends_on('hdf5', when='+hdf5')
+
+ depends_on('git', type='build')
+ depends_on('pkgconfig', type='build')
+
+ conflicts('~mpi', when='+scalapack', msg='SCALAPACK requires MPI support')
+ conflicts('~scalapack', when='+elpa', msg='ELPA requires SCALAPACK support')
+
+ def cmake_args(self):
+ args = [
+ '-DQE_ENABLE_SIRIUS=ON',
+ '-DQE_ENABLE_CUDA=OFF',
+ '-DQE_LAPACK_INTERNAL=OFF',
+ '-DQE_ENABLE_DOC=OFF',
+ self.define_from_variant('QE_ENABLE_MPI', 'mpi'),
+ self.define_from_variant('QE_ENABLE_OPENMP', 'openmp'),
+ self.define_from_variant('QE_ENABLE_ELPA', 'elpa'),
+ self.define_from_variant('QE_ENABLE_LIBXC', 'libxc'),
+ self.define_from_variant('QE_ENABLE_HDF5', 'hdf5'),
+ self.define_from_variant('QE_ENABLE_SCALAPACK', 'scalapack')
+ ]
+
+ # Work around spack issue #19970 where spack sets
+ # rpaths for MKL just during make, but cmake removes
+ # them during make install.
+ if '^mkl' in self.spec:
+ args.append('-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/qbank/package.py b/var/spack/repos/builtin/packages/qbank/package.py
index 95a3782778..98f0ff599e 100644
--- a/var/spack/repos/builtin/packages/qbank/package.py
+++ b/var/spack/repos/builtin/packages/qbank/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Qbank(Package):
"""QBank is a unique dynamic reservation-based allocation management system
@@ -20,7 +21,7 @@ class Qbank(Package):
# QBank is so old that it no longer has (never had?) a homepage
# but it was developed at Pacific Northwest National Laboratory
# by Scott Jackson <Scott.Jackson@pnl.gov>
- homepage = "http://www.pnnl.gov/"
+ homepage = "https://www.pnnl.gov/"
url = "file://{0}/qbank-2.10.4.tar.gz".format(os.getcwd())
manual_download = True
diff --git a/var/spack/repos/builtin/packages/qbox/package.py b/var/spack/repos/builtin/packages/qbox/package.py
index 0233f62956..68179eaf1b 100644
--- a/var/spack/repos/builtin/packages/qbox/package.py
+++ b/var/spack/repos/builtin/packages/qbox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/qca/package.py b/var/spack/repos/builtin/packages/qca/package.py
index 9a040bc667..36da912b04 100644
--- a/var/spack/repos/builtin/packages/qca/package.py
+++ b/var/spack/repos/builtin/packages/qca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/qcachegrind/package.py b/var/spack/repos/builtin/packages/qcachegrind/package.py
index ff9c436795..5ef0877126 100644
--- a/var/spack/repos/builtin/packages/qcachegrind/package.py
+++ b/var/spack/repos/builtin/packages/qcachegrind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Qcachegrind(QMakePackage):
homepage = "https://github.com/KDE/kcachegrind"
url = "https://github.com/KDE/kcachegrind/archive/v20.08.0.tar.gz"
+ version('20.12.2', sha256='935cf6665fac274f84af84d0a30cc2fdf27d437234b9accbf8ec0a5dba6ad867')
version('20.08.0', sha256='ffb50a7c536042ff11eed714b359b8bc419cb12402a31ebe78c3d06363f234e6')
depends_on('qt@5.2:')
diff --git a/var/spack/repos/builtin/packages/qd/package.py b/var/spack/repos/builtin/packages/qd/package.py
index 100fa9cc63..e205ccd004 100644
--- a/var/spack/repos/builtin/packages/qd/package.py
+++ b/var/spack/repos/builtin/packages/qd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,8 @@ class Qd(AutotoolsPackage):
homepage = "https://bitbucket.org/njet/qd-library/src/master/"
git = "https://bitbucket.org/njet/qd-library.git"
+ tags = ['hep']
+
version('2.3.13', commit='a57dde9')
depends_on('autoconf', type='build')
diff --git a/var/spack/repos/builtin/packages/qemu/package.py b/var/spack/repos/builtin/packages/qemu/package.py
index a1f745203b..eab99fdb6c 100644
--- a/var/spack/repos/builtin/packages/qemu/package.py
+++ b/var/spack/repos/builtin/packages/qemu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/qgis/package.py b/var/spack/repos/builtin/packages/qgis/package.py
index dad5d6ba76..95a45656cf 100644
--- a/var/spack/repos/builtin/packages/qgis/package.py
+++ b/var/spack/repos/builtin/packages/qgis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,14 +17,16 @@ class Qgis(CMakePackage):
maintainers = ['adamjstewart', 'Sinan81']
+ version('3.18.2', sha256='1913e4d5596bbc8b7d143f3defb18bf376f750a71f334f69d76af5deca7ecc5d')
+ # Prefer latest long term release
+ version('3.16.5', sha256='525f469ad6e40dd7a8f09ebab5eb6a2dffc45939b99b7d937750cc04ed78d61c', preferred=True)
version('3.14.16', sha256='c9915c2e577f1812a2b35b678b123c58407e07824d73e5ec0dda13db7ca75c04')
version('3.14.0', sha256='1b76c5278def0c447c3d354149a2afe2562ac26cf0bcbe69b9e0528356d407b8')
version('3.12.3', sha256='c2b53815f9b994e1662995d1f25f90628156b996758f5471bffb74ab29a95220')
version('3.12.2', sha256='501f81715672205afd2c1a289ffc765aff96eaa8ecb49d079a58ef4d907467b8')
version('3.12.1', sha256='a7dc7af768b8960c08ce72a06c1f4ca4664f4197ce29c7fe238429e48b2881a8')
version('3.12.0', sha256='19e9c185dfe88cad7ee6e0dcf5ab7b0bbfe1672307868a53bf771e0c8f9d5e9c')
- # Prefer latest long term release
- version('3.10.10', sha256='e21a778139823fb6cf12e4a38f00984fcc060f41abcd4f0af83642d566883839', preferred=True)
+ version('3.10.10', sha256='e21a778139823fb6cf12e4a38f00984fcc060f41abcd4f0af83642d566883839')
version('3.10.7', sha256='f6c02489e065bae355d2f4374b84a1624379634c34a770b6d65bf38eb7e71564')
version('3.10.6', sha256='a96791bf6615e4f8ecdbbb9a90a8ef14a12459d8c5c374ab22eb5f776f864bb5')
version('3.10.5', sha256='f3e1cc362941ec69cc21062eeaea160354ef71382b21dc4b3191c315447b4ce1')
@@ -71,8 +73,7 @@ class Qgis(CMakePackage):
variant('txt2tags', default=False, description='Generate PDF for txt2tags documentation')
# Ref. for dependencies:
- # http://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html
- # https://github.com/qgis/QGIS/blob/master/INSTALL
+ # https://github.com/qgis/QGIS/blob/master/INSTALL.md
depends_on('exiv2')
depends_on('expat@1.95:')
depends_on('gdal@2.1.0: +python', type=('build', 'link', 'run'))
@@ -96,6 +97,7 @@ class Qgis(CMakePackage):
depends_on('qwt@5:')
depends_on('qwtpolar')
depends_on('sqlite@3.0.0: +column_metadata')
+ depends_on('protobuf', when='@3.16.4:')
# Runtime python dependencies, not mentioned in install instructions
depends_on('py-pyyaml', type='run')
@@ -126,8 +128,13 @@ class Qgis(CMakePackage):
depends_on('qt@5.9.0:', when='@3.10.0:')
depends_on('qtkeychain@:1.5.99', when='^qt@4')
depends_on('qt@:4', when='@2')
+ # Help concretizer
+ # +qsci_api is implied by qscintilla+python dependency
+ depends_on('py-pyqt4 +qsci_api', when='@2')
+ depends_on('py-pyqt5@5.3: +qsci_api', when='@3')
- patch('pyqt5.patch', when='^qt@5')
+ patch('pyqt5.patch', when='@:3.14 ^qt@5')
+ patch('pyqt5_3165x.patch', when='@3.16.5: ^qt@5')
def cmake_args(self):
spec = self.spec
@@ -184,8 +191,7 @@ class Qgis(CMakePackage):
'TRUE' if '+gui' in spec else 'FALSE'),
'-DWITH_INTERNAL_MDAL={0}'.format(
'TRUE' if '+internal_mdal' in spec else 'FALSE'),
- '-DWITH_INTERNAL_O2={0}'.format(
- 'ON' if '+internal_o2' in spec else 'OFF'),
+ self.define_from_variant('WITH_INTERNAL_O2', 'internal_o2'),
'-DWITH_OAUTH2_PLUGIN={0}'.format(
'TRUE' if '+oauth2_plugin' in spec else 'FALSE'),
'-DWITH_ORACLE={0}'.format(
@@ -196,14 +202,12 @@ class Qgis(CMakePackage):
'TRUE' if '+py_compile' in spec else 'FALSE'),
'-DWITH_QSCIAPI={0}'.format(
'TRUE' if '+qsciapi' in spec else 'FALSE'),
- '-DWITH_QSPATIALITE={0}'.format(
- 'ON' if '+qspatialite' in spec else 'OFF'),
+ self.define_from_variant('WITH_QSPATIALITE', 'qspatialite'),
'-DWITH_QT5SERIALPORT={0}'.format(
'TRUE' if '+qt5serialport' in spec else 'FALSE'),
'-DWITH_QTMOBILITY={0}'.format(
'TRUE' if '+qtmobility' in spec else 'FALSE'),
- '-DWITH_QTWEBKIT={0}'.format(
- 'ON' if '+qtwebkit' in spec else 'OFF'),
+ self.define_from_variant('WITH_QTWEBKIT', 'qtwebkit'),
'-DWITH_QUICK={0}'.format(
'TRUE' if '+quick' in spec else 'FALSE'),
'-DWITH_QWTPOLAR={0}'.format(
diff --git a/var/spack/repos/builtin/packages/qgis/pyqt5_3165x.patch b/var/spack/repos/builtin/packages/qgis/pyqt5_3165x.patch
new file mode 100644
index 0000000000..931dcaee01
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qgis/pyqt5_3165x.patch
@@ -0,0 +1,29 @@
+diff -ru a/cmake/FindPyQt5.py b/cmake/FindPyQt5.py
+--- a/cmake/FindPyQt5.py 2021-04-18 11:12:34.520409268 -0700
++++ b/cmake/FindPyQt5.py 2021-04-18 11:17:56.574204157 -0700
+@@ -41,6 +41,7 @@
+
+ cfg = sipconfig.Configuration()
+ sip_dir = cfg.default_sip_dir
++ pyqt_prefix = os.sep.join(PyQt5.QtCore.__file__.split(os.sep)[0:-5])
+ if sys.platform.startswith('freebsd'):
+ py_version = str(sys.version_info.major) + str(sys.version_info.minor)
+ sip_dir = sip_dir.replace(py_version, '')
+@@ -51,12 +52,12 @@
+ if os.path.exists(os.path.join(p, "QtCore", "QtCoremod.sip")):
+ sip_dir = p
+ break
+- else:
+- sys.exit(1)
++# else:
++# sys.exit(1)
+ cfg = {
+- 'pyqt_mod_dir': os.path.join(cfg.default_mod_dir, "PyQt5"),
+- 'pyqt_sip_dir': sip_dir,
+- 'pyqt_bin_dir': cfg.default_bin_dir,
++ 'pyqt_mod_dir': os.path.dirname(PyQt5.QtCore.__file__),
++ 'pyqt_sip_dir': os.path.join(pyqt_prefix,'share','sip','PyQt5'),
++ 'pyqt_bin_dir': os.path.join(pyqt_prefix,'bin'),
+ }
+ else: # Code for SIP v5
+ from distutils.sysconfig import get_python_lib
diff --git a/var/spack/repos/builtin/packages/qgraf/package.py b/var/spack/repos/builtin/packages/qgraf/package.py
index 5affba785f..6ca1c80480 100644
--- a/var/spack/repos/builtin/packages/qgraf/package.py
+++ b/var/spack/repos/builtin/packages/qgraf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,8 @@ class Qgraf(Package):
homepage = "http://cfif.ist.utl.pt/~paulo/qgraf.html"
url = "http://anonymous:anonymous@qgraf.tecnico.ulisboa.pt/v3.4/qgraf-3.4.2.tgz"
+ tags = ['hep']
+
version('3.4.2', sha256='cfc029fb871c78943865ef8b51ebcd3cd4428448b8816714b049669dfdeab8aa')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/qhull/package.py b/var/spack/repos/builtin/packages/qhull/package.py
index 884499fd36..a3887b8ce8 100644
--- a/var/spack/repos/builtin/packages/qhull/package.py
+++ b/var/spack/repos/builtin/packages/qhull/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/qjson/package.py b/var/spack/repos/builtin/packages/qjson/package.py
index 389cda9835..655285a7e5 100644
--- a/var/spack/repos/builtin/packages/qjson/package.py
+++ b/var/spack/repos/builtin/packages/qjson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/qmcpack/package.py b/var/spack/repos/builtin/packages/qmcpack/package.py
index 07724f63fe..a7124fe946 100644
--- a/var/spack/repos/builtin/packages/qmcpack/package.py
+++ b/var/spack/repos/builtin/packages/qmcpack/package.py
@@ -1,18 +1,19 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 llnl.util.tty as tty
+from spack import *
+
class Qmcpack(CMakePackage, CudaPackage):
"""QMCPACK, is a modern high-performance open-source Quantum Monte
Carlo (QMC) simulation code."""
# Package information
- homepage = "http://www.qmcpack.org/"
+ homepage = "https://www.qmcpack.org/"
git = "https://github.com/QMCPACK/qmcpack.git"
maintainers = ['naromero77']
tags = ['ecp', 'ecp-apps']
@@ -22,6 +23,8 @@ class Qmcpack(CMakePackage, CudaPackage):
# can occasionally change.
# NOTE: 12/19/2017 QMCPACK 3.0.0 does not build properly with Spack.
version('develop')
+ version('3.11.0', tag='v3.11.0')
+ version('3.10.0', tag='v3.10.0')
version('3.9.2', tag='v3.9.2')
version('3.9.1', tag='v3.9.1')
version('3.9.0', tag='v3.9.0')
@@ -40,16 +43,18 @@ class Qmcpack(CMakePackage, CudaPackage):
description='The build type to build',
values=('Debug', 'Release', 'RelWithDebInfo'))
variant('mpi', default=True, description='Build with MPI support')
- variant('phdf5', default=True, description='Build with parallel collective I/O')
+ variant('phdf5', default=False, description='Build with parallel collective I/O')
variant('complex', default=False,
description='Build the complex (general twist/k-point) version')
variant('mixed', default=False,
description='Build the mixed precision (mixture of single and '
'double precision) version')
variant('soa', default=True,
- description='Build with Structure-of-Array instead of '
- 'Array-of-Structure code. Only for CPU code')
- variant('timers', default=False,
+ description='Build with Structure-of-Array (SoA) instead of '
+ 'Array-of-Structure code (AoS). This is a legacy '
+ 'option and the AoS code is not available after '
+ 'v3.10.0. Only affected performance, not results.')
+ variant('timers', default=True,
description='Build with support for timers')
variant('da', default=False,
description='Install with support for basic data analysis tools')
@@ -74,6 +79,11 @@ class Qmcpack(CMakePackage, CudaPackage):
# high-level variant conflicts
conflicts(
+ '~soa',
+ when='@3.10.0:',
+ msg='AoS code path is not available after QMCPACK v3.10.0')
+
+ conflicts(
'+phdf5',
when='~mpi',
msg='Parallel collective I/O requires MPI-enabled QMCPACK. '
@@ -87,17 +97,28 @@ class Qmcpack(CMakePackage, CudaPackage):
conflicts('^openblas+ilp64',
msg='QMCPACK does not support OpenBLAS 64-bit integer variant')
+ conflicts('cuda_arch=none',
+ when='+cuda',
+ msg='A value for cuda_arch must be specified. Add cuda_arch=XX')
+
# Omitted for now due to concretizer bug
# conflicts('^intel-mkl+ilp64',
# msg='QMCPACK does not support MKL 64-bit integer variant')
+ # QMCPACK 3.10.0 increased the minimum requirements for compiler versions
+ newer_compiler_warning = 'QMCPACK v3.10.0 or later requires a newer ' \
+ 'version of this compiler'
+ conflicts('%gcc@:6', when='@3.10.0:', msg=newer_compiler_warning)
+ conflicts('%intel@:18', when='@3.10.0:', msg=newer_compiler_warning)
+ conflicts('%clang@:6', when='@3.10.0:', msg=newer_compiler_warning)
+
# QMCPACK 3.6.0 or later requires support for C++14
- compiler_warning = 'QMCPACK 3.6.0 or later requires a ' \
- 'compiler with support for C++14'
- conflicts('%gcc@:4', when='@3.6.0:', msg=compiler_warning)
- conflicts('%intel@:17', when='@3.6.0:', msg=compiler_warning)
- conflicts('%pgi@:17', when='@3.6.0:', msg=compiler_warning)
- conflicts('%llvm@:3.4', when='@3.6.0:', msg=compiler_warning)
+ cpp14_warning = 'QMCPACK v3.6.0 or later requires a ' \
+ 'compiler with support for C++14'
+ conflicts('%gcc@:4', when='@3.6.0:', msg=cpp14_warning)
+ conflicts('%intel@:17', when='@3.6.0:', msg=cpp14_warning)
+ conflicts('%pgi@:17', when='@3.6.0:', msg=cpp14_warning)
+ conflicts('%clang@:3.4', when='@3.6.0:', msg=cpp14_warning)
conflicts('+afqmc', when='@:3.6.0', msg='AFQMC not recommended before v3.7')
conflicts('+afqmc', when='~mpi', msg='AFQMC requires building with +mpi')
@@ -125,8 +146,9 @@ class Qmcpack(CMakePackage, CudaPackage):
# Essential libraries
depends_on('cmake@3.4.3:', when='@:3.5.0', type='build')
depends_on('cmake@3.6.0:', when='@3.6.0:', type='build')
- depends_on('boost')
- depends_on('boost@1.61.0:', when='@3.6.0:')
+ depends_on('cmake@3.14.0:', when='@3.10.0:', type='build')
+ depends_on('boost', type='build')
+ depends_on('boost@1.61.0:', when='@3.6.0:', type='build')
depends_on('libxml2')
depends_on('mpi', when='+mpi')
depends_on('python@3:', when='@3.9:')
@@ -265,14 +287,7 @@ class Qmcpack(CMakePackage, CudaPackage):
'QMCPACK only supports compilation for a single '
'GPU architecture at a time'
)
- if cuda_arch != 'none':
- args.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch))
- else:
- # This is the default value set in QMCPACK's CMake
- # Not possible to set default value for cuda_arch,
- # thus this won't be stored in the spec, which is
- # a problem.
- args.append('-DCUDA_ARCH=sm_35')
+ args.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch))
else:
args.append('-DQMC_CUDA=0')
@@ -352,7 +367,6 @@ class Qmcpack(CMakePackage, CudaPackage):
# We assume cwd is self.stage.source_path, then
# install manual, labs, and nexus
- install_tree('manual', prefix.manual)
install_tree('labs', prefix.labs)
install_tree('nexus', prefix.nexus)
diff --git a/var/spack/repos/builtin/packages/qmd-progress/package.py b/var/spack/repos/builtin/packages/qmd-progress/package.py
index 7d7a6cfda6..ff71f469eb 100644
--- a/var/spack/repos/builtin/packages/qmd-progress/package.py
+++ b/var/spack/repos/builtin/packages/qmd-progress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/qnnpack/package.py b/var/spack/repos/builtin/packages/qnnpack/package.py
index a5c1f73e71..379af6e8f0 100644
--- a/var/spack/repos/builtin/packages/qnnpack/package.py
+++ b/var/spack/repos/builtin/packages/qnnpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,8 +16,13 @@ class Qnnpack(CMakePackage):
git = "https://github.com/pytorch/QNNPACK.git"
version('master', branch='master')
+ version('2019-08-28', commit='7d2a4e9931a82adc3814275b6219a03e24e36b4c') # py-torch@1.3:1.9
+ version('2018-12-27', commit='6c62fddc6d15602be27e9e4cbb9e985151d2fa82') # py-torch@1.2
+ version('2018-12-04', commit='ef05e87cef6b8e719989ce875b5e1c9fdb304c05') # py-torch@1.0:1.1
depends_on('cmake@3.5:', type='build')
+ depends_on('ninja', type='build')
+ depends_on('python', type='build')
resource(
name='cpuinfo',
@@ -64,20 +69,22 @@ class Qnnpack(CMakePackage):
placement='pthreadpool'
)
+ generator = 'Ninja'
+
def cmake_args(self):
return [
- '-DCPUINFO_SOURCE_DIR={0}'.format(
- join_path(self.stage.source_path, 'deps/cpuinfo')),
- '-DFP16_SOURCE_DIR={0}'.format(
- join_path(self.stage.source_path, 'deps/fp16')),
- '-DFXDIV_SOURCE_DIR={0}'.format(
- join_path(self.stage.source_path, 'deps/fxdiv')),
- '-DPSIMD_SOURCE_DIR={0}'.format(
- join_path(self.stage.source_path, 'deps/psimd')),
- '-DPTHREADPOOL_SOURCE_DIR={0}'.format(
- join_path(self.stage.source_path, 'deps/pthreadpool')),
- '-DGOOGLEBENCHMARK_SOURCE_DIR={0}'.format(
- join_path(self.stage.source_path, 'deps/googlebenchmark')),
- '-DGOOGLETEST_SOURCE_DIR={0}'.format(
- join_path(self.stage.source_path, 'deps/googletest')),
+ self.define('CPUINFO_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'cpuinfo')),
+ self.define('FP16_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'fp16')),
+ self.define('FXDIV_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'fxdiv')),
+ self.define('PSIMD_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'psimd')),
+ self.define('PTHREADPOOL_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'pthreadpool')),
+ self.define('GOOGLEBENCHMARK_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googlebenchmark')),
+ self.define('GOOGLETEST_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googletest')),
]
diff --git a/var/spack/repos/builtin/packages/qorts/package.py b/var/spack/repos/builtin/packages/qorts/package.py
index 89a4ea2508..4fdc432270 100644
--- a/var/spack/repos/builtin/packages/qorts/package.py
+++ b/var/spack/repos/builtin/packages/qorts/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Qorts(RPackage):
"""The QoRTs software package is a fast, efficient, and portable
diff --git a/var/spack/repos/builtin/packages/qperf/package.py b/var/spack/repos/builtin/packages/qperf/package.py
index 1de0100db0..372bef5b78 100644
--- a/var/spack/repos/builtin/packages/qperf/package.py
+++ b/var/spack/repos/builtin/packages/qperf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/qrupdate/package.py b/var/spack/repos/builtin/packages/qrupdate/package.py
index 760500dfa4..de91ecc2fc 100644
--- a/var/spack/repos/builtin/packages/qrupdate/package.py
+++ b/var/spack/repos/builtin/packages/qrupdate/package.py
@@ -1,10 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import sys
+
from spack import *
@@ -12,7 +13,7 @@ class Qrupdate(MakefilePackage, SourceforgePackage):
"""qrupdate is a Fortran library for fast updates of QR and
Cholesky decompositions."""
- homepage = "http://sourceforge.net/projects/qrupdate/"
+ homepage = "https://sourceforge.net/projects/qrupdate/"
sourceforge_mirror_path = "qrupdate/qrupdate-1.1.2.tar.gz"
version('1.1.2', sha256='e2a1c711dc8ebc418e21195833814cb2f84b878b90a2774365f0166402308e08')
@@ -23,12 +24,22 @@ class Qrupdate(MakefilePackage, SourceforgePackage):
def edit(self, spec, prefix):
# BSD "install" does not understand GNU -D flag.
# We will create the parent directory ourselves.
- makefile = FileFilter('src/Makefile')
if (sys.platform == 'darwin'):
+ makefile = FileFilter('src/Makefile')
makefile.filter('-D', '')
+
+ # Concurrent (parallel) Compilation requires calling $(MAKE) not make
+ makefile = FileFilter('Makefile')
+ makefile.filter('make', '$(MAKE)')
+
+ # We may like to compile with any Forran compiler, not always gfortran
+ makefile = FileFilter('Makeconf')
+ makefile.filter('FC=gfortran', 'FC ?= gfortran')
+
return
- def install(self, spec, prefix):
+ # The Makefile does not take the simple "make" rule
+ def build(self, spec, prefix):
lapack_blas = spec['lapack'].libs + spec['blas'].libs
@@ -41,11 +52,17 @@ class Qrupdate(MakefilePackage, SourceforgePackage):
if (spec.satisfies('^openblas+ilp64') or
spec.satisfies('^intel-mkl+ilp64') or
spec.satisfies('^intel-parallel-studio+mkl+ilp64')):
- make_args.append('FFLAGS=-fdefault-integer-8')
+ if (spec.satisfies('%intel') or spec.satisfies('%oneapi')
+ or spec.satisfies('%nvhpc')):
+ # 64bits integer for ifort and nvfortran are promoted by:
+ make_args.append('FFLAGS=-i8')
+ else:
+ make_args.append('FFLAGS=-fdefault-integer-8')
# Build static and dynamic libraries:
make('lib', 'solib', *make_args)
+ def install(self, spec, prefix):
# "INSTALL" confuses "make install" on case-insensitive filesystems:
if os.path.isfile("INSTALL"):
os.remove("INSTALL")
diff --git a/var/spack/repos/builtin/packages/qscintilla/package.py b/var/spack/repos/builtin/packages/qscintilla/package.py
index ec20257676..5c1cd35766 100644
--- a/var/spack/repos/builtin/packages/qscintilla/package.py
+++ b/var/spack/repos/builtin/packages/qscintilla/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Qscintilla(QMakePackage):
"""
@@ -13,25 +14,29 @@ class Qscintilla(QMakePackage):
"""
homepage = "https://www.riverbankcomputing.com/software/qscintilla/intro"
- url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.11.2/QScintilla_gpl-2.11.2.tar.gz"
+ url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.12.0/QScintilla_src-2.12.0.tar.gz"
- version('2.11.2', sha256='029bdc476a069fda2cea3cd937ba19cc7fa614fb90578caef98ed703b658f4a1')
- # Newer versions of Qscintilla won't build, so prefer the following version
- version('2.10.2', sha256='14b31d20717eed95ea9bea4cd16e5e1b72cee7ebac647cba878e0f6db6a65ed0', preferred=True)
+ # Directory structure is changed in latest release, logic is lost
+ version('2.12.0', sha256='a4cc9e7d2130ecfcdb18afb43b813ef122473f6f35deff747415fbc2fe0c60ed', url='https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.12.0/QScintilla_src-2.12.0.tar.gz')
+
+ # Last standard release dates back to 2021/11/23
+ version('2.11.6', sha256='e7346057db47d2fb384467fafccfcb13aa0741373c5d593bc72b55b2f0dd20a7', preferred=True, url='https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.11.6/QScintilla-2.11.6.tar.gz')
+ version('2.11.2', sha256='029bdc476a069fda2cea3cd937ba19cc7fa614fb90578caef98ed703b658f4a1', url='https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.11.2/QScintilla_gpl-2.11.2.tar.gz')
+ version('2.10.2', sha256='14b31d20717eed95ea9bea4cd16e5e1b72cee7ebac647cba878e0f6db6a65ed0', url='https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.10.2/QScintilla-2.10.2.tar.gz')
variant('designer', default=False, description="Enable pluging for Qt-Designer")
variant('python', default=False, description="Build python bindings")
+ depends_on('qt+opengl', when='+python')
depends_on('qt')
depends_on('py-pyqt5 +qsci_api', type=('build', 'run'), when='+python ^qt@5')
depends_on('py-pyqt4 +qsci_api', type=('build', 'run'), when='+python ^qt@4')
depends_on('python', type=('build', 'run'), when='+python')
+ # adter install inquires py-sip variant : so we need to have it
+ depends_on('py-sip', type='build', when='~python')
extends('python', when='+python')
-
- @run_before('qmake')
- def chdir(self):
- os.chdir(str(self.stage.source_path) + '/Qt4Qt5')
+ build_directory = 'Qt4Qt5'
def qmake_args(self):
# below, DEFINES ... gets rid of ...regex...errors during build
@@ -50,7 +55,7 @@ class Qscintilla(QMakePackage):
# Fix install prefix
@run_after('qmake')
def fix_install_path(self):
- makefile = FileFilter('Makefile')
+ makefile = FileFilter(join_path('Qt4Qt5', 'Makefile'))
makefile.filter(r'\$\(INSTALL_ROOT\)' +
self.spec['qt'].prefix, '$(INSTALL_ROOT)')
@@ -128,7 +133,10 @@ class Qscintilla(QMakePackage):
makefile = FileFilter('Qsci/Makefile')
makefile.filter(r'\$\(INSTALL_ROOT\)', '')
- make('install')
+ if '@2.11:' in self.spec:
+ make('install', parallel=False)
+ else:
+ make('install')
@run_after('install')
def extend_path_setup(self):
diff --git a/var/spack/repos/builtin/packages/qt-creator/package.py b/var/spack/repos/builtin/packages/qt-creator/package.py
index 6b37a1a6c7..69c1462e91 100644
--- a/var/spack/repos/builtin/packages/qt-creator/package.py
+++ b/var/spack/repos/builtin/packages/qt-creator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,9 @@ from spack import *
class QtCreator(QMakePackage):
"""The Qt Creator IDE."""
homepage = 'https://www.qt.io/ide/'
- url = 'http://download.qt.io/official_releases/qtcreator/4.8/4.8.0/qt-creator-opensource-src-4.8.0.tar.gz'
+ url = 'https://download.qt.io/official_releases/qtcreator/4.8/4.8.0/qt-creator-opensource-src-4.8.0.tar.gz'
- list_url = 'http://download.qt.io/official_releases/qtcreator/'
+ list_url = 'https://download.qt.io/official_releases/qtcreator/'
list_depth = 2
version('4.8.0', sha256='4c4813454637141a45aa8f18be5733e4ba993335d95940aadf12fda66cf6f849')
@@ -29,7 +29,7 @@ class QtCreator(QMakePackage):
conflicts('%gcc@:4.8', when='@4.3.0:')
def url_for_version(self, version):
- url = 'http://download.qt.io/official_releases/qtcreator/{0}/{1}/qt-creator-opensource-src-{1}.tar.gz'
+ url = 'https://download.qt.io/official_releases/qtcreator/{0}/{1}/qt-creator-opensource-src-{1}.tar.gz'
return url.format(version.up_to(2), version)
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py
index de058431da..eeb48391ea 100644
--- a/var/spack/repos/builtin/packages/qt/package.py
+++ b/var/spack/repos/builtin/packages/qt/package.py
@@ -1,47 +1,54 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack.operating_systems.mac_os import macos_version
-import llnl.util.tty as tty
import itertools
import os
import sys
+import llnl.util.tty as tty
+
+from spack import *
+from spack.operating_systems.mac_os import macos_version
+
MACOS_VERSION = macos_version() if sys.platform == 'darwin' else None
class Qt(Package):
"""Qt is a comprehensive cross-platform C++ application framework."""
- homepage = 'http://qt.io'
- # Alternative location 'http://download.qt.io/official_releases/qt/'
- url = 'http://download.qt.io/archive/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz'
- list_url = 'http://download.qt.io/archive/qt/'
+ homepage = 'https://qt.io'
+
+ # Supported releases: 'https://download.qt.io/official_releases/qt/'
+ # Older archives: 'https://download.qt.io/new_archive/qt/'
+ url = 'https://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz'
+ list_url = 'https://download.qt.io/archive/qt/'
list_depth = 3
maintainers = ['sethrj']
phases = ['configure', 'build', 'install']
+ version('5.15.2', sha256='3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240')
version('5.14.2', sha256='c6fcd53c744df89e7d3223c02838a33309bd1c291fcb6f9341505fe99f7f19fa')
- version('5.14.1', sha256='6f17f488f512b39c2feb57d83a5e0a13dcef32999bea2e2a8f832f54a29badb8')
- version('5.14.0', sha256='be9a77cd4e1f9d70b58621d0753be19ea498e6b0da0398753e5038426f76a8ba')
- version('5.13.1', sha256='adf00266dc38352a166a9739f1a24a1e36f1be9c04bf72e16e142a256436974e')
- version('5.12.7', sha256='873783a0302129d98a8f63de9afe4520fb5f8d5316be8ad7b760c59875cd8a8d')
- version('5.12.5', sha256='a2299e21db7767caf98242767bffb18a2a88a42fee2d6a393bedd234f8c91298')
- version('5.12.2', sha256='59b8cb4e728450b21224dcaaa40eb25bafc5196b6988f2225c394c6b7f881ff5')
- version('5.11.3', sha256='859417642713cee2493ee3646a7fee782c9f1db39e41d7bb1322bba0c5f0ff4d')
- version('5.11.2', sha256='c6104b840b6caee596fa9a35bc5f57f67ed5a99d6a36497b6fe66f990a53ca81')
- version('5.10.0', sha256='936d4cf5d577298f4f9fdb220e85b008ae321554a5fcd38072dc327a7296230e')
- version('5.9.1', sha256='7b41a37d4fe5e120cdb7114862c0153f86c07abbec8db71500443d2ce0c89795')
- version('5.9.0', sha256='f70b5c66161191489fc13c7b7eb69bf9df3881596b183e7f6d94305a39837517')
- version('5.8.0', sha256='9dc5932307ae452855863f6405be1f7273d91173dcbe4257561676a599bd58d3')
- version('5.7.1', sha256='c86684203be61ae7b33a6cf33c23ec377f246d697bd9fb737d16f0ad798f89b7')
- version('5.7.0', sha256='4661905915d6265243e17fe59852930a229cf5b054ce5af5f48b34da9112ab5f')
- version('5.5.1', sha256='c7fad41a009af1996b62ec494e438aedcb072b3234b2ad3eeea6e6b1f64be3b3')
- version('5.4.2', sha256='cfc768c55f0a0cd232bed914a9022528f8f2e50cb010bf0e4f3f62db3dfa17bd')
- version('5.4.0', sha256='1739633424bde3d89164ae6ff1c5c913be38b9997e451558ef873aac4bbc408a')
+ version('5.14.1', sha256='6f17f488f512b39c2feb57d83a5e0a13dcef32999bea2e2a8f832f54a29badb8', deprecated=True)
+ version('5.14.0', sha256='be9a77cd4e1f9d70b58621d0753be19ea498e6b0da0398753e5038426f76a8ba', deprecated=True)
+ version('5.13.1', sha256='adf00266dc38352a166a9739f1a24a1e36f1be9c04bf72e16e142a256436974e', deprecated=True)
+ version('5.12.10', sha256='3e0ee1e57f5cf3eeb038d0b4b22c7eb442285c62639290756b39dc93a1d0e14f')
+ version('5.12.7', sha256='873783a0302129d98a8f63de9afe4520fb5f8d5316be8ad7b760c59875cd8a8d', deprecated=True)
+ version('5.12.5', sha256='a2299e21db7767caf98242767bffb18a2a88a42fee2d6a393bedd234f8c91298', deprecated=True)
+ version('5.12.2', sha256='59b8cb4e728450b21224dcaaa40eb25bafc5196b6988f2225c394c6b7f881ff5', deprecated=True)
+ version('5.11.3', sha256='859417642713cee2493ee3646a7fee782c9f1db39e41d7bb1322bba0c5f0ff4d', deprecated=True)
+ version('5.11.2', sha256='c6104b840b6caee596fa9a35bc5f57f67ed5a99d6a36497b6fe66f990a53ca81', deprecated=True)
+ version('5.10.0', sha256='936d4cf5d577298f4f9fdb220e85b008ae321554a5fcd38072dc327a7296230e', deprecated=True)
+ version('5.9.9', sha256='5ce285209290a157d7f42ec8eb22bf3f1d76f2e03a95fc0b99b553391be01642')
+ version('5.9.1', sha256='7b41a37d4fe5e120cdb7114862c0153f86c07abbec8db71500443d2ce0c89795', deprecated=True)
+ version('5.9.0', sha256='f70b5c66161191489fc13c7b7eb69bf9df3881596b183e7f6d94305a39837517', deprecated=True)
+ version('5.8.0', sha256='0f4c54386d3dbac0606a936a7145cebb7b94b0ca2d29bc001ea49642984824b6', deprecated=True)
+ version('5.7.1', sha256='46ebca977deb629c5e69c2545bc5fe13f7e40012e5e2e451695c583bd33502fa', deprecated=True)
+ version('5.7.0', sha256='a6a2632de7e44bbb790bc3b563f143702c610464a7f537d02036749041fd1800', deprecated=True)
+ version('5.6.3', sha256='2fa0cf2e5e8841b29a4be62062c1a65c4f6f2cf1beaf61a5fd661f520cd776d0')
+ version('5.5.1', sha256='c7fad41a009af1996b62ec494e438aedcb072b3234b2ad3eeea6e6b1f64be3b3', deprecated=True)
+ version('5.4.2', sha256='cfc768c55f0a0cd232bed914a9022528f8f2e50cb010bf0e4f3f62db3dfa17bd', deprecated=True)
+ version('5.4.0', sha256='1739633424bde3d89164ae6ff1c5c913be38b9997e451558ef873aac4bbc408a', deprecated=True)
version('5.3.2', sha256='c8d3fd2ead30705c6673c5e4af6c6f3973346b4fb2bd6079c7be0943a5b0282d')
version('5.2.1', sha256='84e924181d4ad6db00239d87250cc89868484a14841f77fb85ab1f1dbdcd7da1')
version('4.8.7', sha256='e2882295097e47fe089f8ac741a95fef47e0a73a3f3cdf21b56990638f626ea0')
@@ -51,30 +58,32 @@ class Qt(Package):
variant('debug', default=False,
description="Build debug version.")
- variant('gtk', default=False,
- description="Build with gtkplus.")
- variant('webkit', default=False,
- description="Build the Webkit extension")
+ variant('dbus', default=False,
+ description="Build with D-Bus support.")
+ variant('doc', default=False,
+ description="Build QDoc and documentation.")
variant('examples', default=False,
description="Build examples.")
variant('framework', default=bool(MACOS_VERSION),
description="Build as a macOS Framework package.")
- variant('tools', default=True,
- description="Build tools, including Qt Designer.")
- variant('dbus', default=False,
- description="Build with D-Bus support.")
- variant('phonon', default=False,
- description="Build with phonon support.")
+ variant('gtk', default=False,
+ description="Build with gtkplus.")
+ variant('gui', default=True,
+ description='Build the Qt GUI module and dependencies')
variant('opengl', default=False,
description="Build with OpenGL support.")
- variant('sql', default=True,
- description="Build with SQL support.")
+ variant('phonon', default=False,
+ description="Build with phonon support.")
variant('shared', default=True,
description='Build shared libraries.')
+ variant('sql', default=True,
+ description="Build with SQL support.")
variant('ssl', default=True,
description="Build with OpenSSL support.")
- variant('freetype', default='spack', description='Freetype2 support',
- values=('spack', 'qt', 'none'), multi=False)
+ variant('tools', default=True,
+ description="Build tools, including Qt Designer.")
+ variant('webkit', default=False,
+ description="Build the Webkit extension")
# Patches for qt@3
patch('qt3-accept.patch', when='@3')
@@ -103,7 +112,7 @@ class Qt(Package):
# https://bugreports.qt.io/browse/QTBUG-57656
patch('qt5-8-framework.patch', when='@5.8.0 +framework')
# https://bugreports.qt.io/browse/QTBUG-58038
- patch('qt5-8-freetype.patch', when='@5.8.0 freetype=spack')
+ patch('qt5-8-freetype.patch', when='@5.8.0 +gui')
# https://codereview.qt-project.org/c/qt/qtbase/+/245425
patch('https://github.com/qt/qtbase/commit/a52d7861edfb5956de38ba80015c4dd0b596259b.patch',
sha256='c49b228c27e3ad46ec3af4bac0e9985af5b5b28760f238422d32e14f98e49b1e',
@@ -115,12 +124,28 @@ class Qt(Package):
patch('qt5-11-intel-overflow.patch', when='@5.11 %intel')
patch('qt5-12-intel-overflow.patch', when='@5.12:5.14.0 %intel')
# https://bugreports.qt.io/browse/QTBUG-78937
- patch('qt5-12-configure.patch', when='@5.12')
+ patch('qt5-12-configure.patch', when='@5.12.7')
+ # https://bugreports.qt.io/browse/QTBUG-93402
+ patch('qt5-15-gcc-10.patch', when='@5.12.7:5.15 %gcc@8:')
+ patch('qt514.patch', when='@5.14')
+ patch('qt514-isystem.patch', when='@5.14.2')
+ # https://bugreports.qt.io/browse/QTBUG-90395
+ patch('https://src.fedoraproject.org/rpms/qt5-qtbase/raw/6ae41be8260f0f5403367eb01f7cd8319779674a/f/qt5-qtbase-gcc11.patch',
+ sha256='9378afd071ad5c0ec8f7aef48421e4b9fab02f24c856bee9c0951143941913c5',
+ working_dir='qtbase',
+ when='@5.14: %gcc@11:')
+ patch('https://src.fedoraproject.org/rpms/qt5-qtdeclarative/raw/593481a2541d3218f285dd7b46bdc5f4c76075ab/f/qt5-qtdeclarative-gcc11.patch',
+ sha256='2081e9cb85f6712be9b63c70204efa3da954c07d857283eeae16d1b0409704bd',
+ working_dir='qtdeclarative',
+ when='@5.14: %gcc@11:')
+ patch('https://src.fedoraproject.org/rpms/qt5-qtwebsockets/raw/f54f4ce6fa27941e9e6d606103d32056078edc74/f/qt5-qtwebsockets-gcc11.patch',
+ sha256='84b099109d08adf177adf9d3542b6215ec3e42138041d523860dbfdcb59fdaae',
+ working_dir='qtwebsockets',
+ when='@5.14: %gcc@11:')
+ conflicts('%gcc@10:', when='@5.9:5.12.6 +opengl')
# Build-only dependencies
depends_on("pkgconfig", type='build')
- depends_on("flex", when='+webkit', type='build')
- depends_on("bison", when='+webkit', type='build')
depends_on("python", when='@5.7.0:', type='build')
# Dependencies, then variant- and version-specific dependencies
@@ -130,8 +155,7 @@ class Qt(Package):
depends_on("libtiff")
depends_on("libxml2")
depends_on("zlib")
- depends_on("freetype", when='freetype=spack')
- depends_on("gperf", when='+webkit')
+ depends_on("freetype", when='+gui')
depends_on("gtkplus", when='+gtk')
depends_on("openssl", when='+ssl')
depends_on("sqlite+column_metadata", when='+sql', type=('build', 'run'))
@@ -150,6 +174,34 @@ class Qt(Package):
depends_on("harfbuzz", when='@5:')
depends_on("double-conversion", when='@5.7:')
depends_on("pcre2+multibyte", when='@5.9:')
+ depends_on("llvm", when='@5.11: +doc')
+
+ with when('+webkit'):
+ patch(
+ 'https://src.fedoraproject.org/rpms/qt5-qtwebengine/raw/32062243e895612823b47c2ae9eeb873a98a3542/f/qtwebengine-gcc11.patch',
+ sha256='14e2d6baff0d09a528ee3e2b5a14de160859880360100af75ea17f3e0f672787',
+ working_dir='qtwebengine',
+ when='@5.15.2: %gcc@11:'
+ )
+ # the gl headers and dbus are needed to build webkit
+ conflicts('~opengl')
+ conflicts('~dbus')
+
+ depends_on("flex", type='build')
+ depends_on("bison", type='build')
+ depends_on("gperf")
+ depends_on("python@2.7.5:2.999", type='build')
+
+ with when('@5.7:'):
+ depends_on("nss")
+ depends_on("libdrm")
+ depends_on("libxcomposite")
+ depends_on("libxcursor")
+ depends_on("libxi")
+ depends_on("libxtst")
+ depends_on("libxrandr")
+ depends_on("libxdamage")
+ depends_on("gettext")
# gcc@4 is not supported as of Qt@5.14
# https://doc.qt.io/qt-5.14/supported-platforms.html
@@ -157,21 +209,23 @@ 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")
- depends_on("xcb-util-image")
- depends_on("xcb-util-keysyms")
- depends_on("xcb-util-renderutil")
- depends_on("xcb-util-wm")
- depends_on("libxext")
- depends_on("libxrender")
+ with when('+gui'):
+ depends_on("fontconfig")
+ depends_on("libsm")
+ depends_on("libx11")
+ depends_on("libxcb")
+ depends_on("libxkbcommon")
+ depends_on("xcb-util-image")
+ depends_on("xcb-util-keysyms")
+ depends_on("xcb-util-renderutil")
+ depends_on("xcb-util-wm")
+ depends_on("libxext")
+ depends_on("libxrender")
+
conflicts('+framework',
msg="QT cannot be built as a framework except on macOS.")
else:
- conflicts('platform=darwin', when='@4.8.6',
+ conflicts('platform=darwin', when='@:4.8.6',
msg="QT 4 for macOS is only patched for 4.8.7")
use_xcode = True
@@ -185,7 +239,14 @@ class Qt(Package):
def url_for_version(self, version):
# URL keeps getting more complicated with every release
- url = self.list_url
+ url = self.list_url.replace('http:', 'https:')
+
+ if version < Version('5.12') and version.up_to(2) != Version('5.9'):
+ # As of 28 April 2021:
+ # - new_archive contains 1-5.8, 5.10-5.11
+ # - archive contains 1-5.1, 5.9, 5.12-6.0
+ # - official_releases containis 5.9, 5.12, 5.15, 6.0
+ url = url.replace('archive', 'new_archive')
if version >= Version('4.0'):
url += str(version.up_to(2)) + '/'
@@ -212,8 +273,8 @@ class Qt(Package):
elif version >= Version('3'):
url += 'free-'
- # 5.9 only has xz format. From 5.2.1 -> 5.8.0 .gz or .xz were possible
- if version >= Version('5.9'):
+ # 5.6.3 and 5.9 only has xz format. Some older versions have only .gz
+ if version >= Version('5.6'):
url += str(version) + '.tar.xz'
else:
url += str(version) + '.tar.gz'
@@ -222,12 +283,27 @@ class Qt(Package):
def setup_build_environment(self, env):
env.set('MAKEFLAGS', '-j{0}'.format(make_jobs))
+ if self.version >= Version('5.11'):
+ # QDoc uses LLVM as of 5.11; remove the LLVM_INSTALL_DIR to
+ # disable
+ try:
+ llvm_path = self.spec['llvm'].prefix
+ except KeyError:
+ # Prevent possibly incompatible system LLVM from being found
+ llvm_path = "/spack-disable-llvm"
+ env.set('LLVM_INSTALL_DIR', llvm_path)
def setup_run_environment(self, env):
env.set('QTDIR', self.prefix)
+ env.set('QTINC', self.prefix.inc)
+ env.set('QTLIB', self.prefix.lib)
+ env.prepend_path('QT_PLUGIN_PATH', self.prefix.plugins)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('QTDIR', self.prefix)
+ env.set('QTINC', self.prefix.inc)
+ env.set('QTLIB', self.prefix.lib)
+ env.prepend_path('QT_PLUGIN_PATH', self.prefix.plugins)
def setup_dependent_package(self, module, dependent_spec):
module.qmake = Executable(join_path(self.spec.prefix.bin, 'qmake'))
@@ -260,6 +336,14 @@ class Qt(Package):
return (mkspec_dir, qtplat)
+ # webkit requires libintl (gettext), but does not test for it
+ # correctly, so add it here.
+ def flag_handler(self, name, flags):
+ if '+webkit' in self.spec and name == 'ldlibs':
+ flags.append('-lintl')
+
+ return (flags, None, None)
+
@when('@4 platform=darwin')
def patch(self):
ogl = self.spec['opengl'] if '+opengl' in self.spec else None
@@ -363,124 +447,98 @@ class Qt(Package):
with open(conf_file, 'a') as f:
f.write("QMAKE_CXXFLAGS += -std=gnu++98\n")
+ @when('@5.9 platform=darwin')
+ def patch(self):
+ # 'javascriptcore' is in the include path, so its file named 'version'
+ # interferes with the standard library
+ os.unlink(join_path(self.stage.source_path,
+ 'qtscript/src/3rdparty/javascriptcore/version'))
+
@property
def common_config_args(self):
- # incomplete list is here http://doc.qt.io/qt-5/configure-options.html
+ spec = self.spec
+ version = self.version
+
+ # incomplete list is here https://doc.qt.io/qt-5/configure-options.html
config_args = [
'-prefix', self.prefix,
'-v',
'-opensource',
- '-{0}opengl'.format('' if '+opengl' in self.spec else 'no-'),
- '-{0}'.format('debug' if '+debug' in self.spec else 'release'),
+ '-{0}opengl'.format('' if '+opengl' in spec else 'no-'),
+ '-{0}'.format('debug' if '+debug' in spec else 'release'),
'-confirm-license',
'-optimized-qmake',
'-no-pch',
]
- if self.spec.variants['freetype'].value == 'spack':
- config_args.extend([
- '-system-freetype'
- ])
- config_args.extend(
- self.spec['freetype'].headers.include_flags.split()
- )
+ def use_spack_dep(spack_pkg, qt_name=None):
+ pkg = spec[spack_pkg]
+ config_args.append('-system-' + (qt_name or spack_pkg))
+ if not pkg.external:
+ config_args.extend(pkg.libs.search_flags.split())
+ config_args.extend(pkg.headers.include_flags.split())
+
+ if '+gui' in spec:
+ use_spack_dep('freetype')
if not MACOS_VERSION:
config_args.append('-fontconfig')
-
- elif self.spec.variants['freetype'].value == 'qt':
- config_args.append('-qt-freetype')
else:
config_args.append('-no-freetype')
+ config_args.append('-no-gui')
- if '+ssl' in self.spec:
- openssl = self.spec['openssl']
- config_args.extend([
- '-openssl-linked',
- openssl.libs.search_flags,
- openssl.headers.include_flags,
- ])
+ if '+ssl' in spec:
+ pkg = spec['openssl']
+ config_args.append('-openssl-linked')
+ config_args.extend(pkg.libs.search_flags.split())
+ config_args.extend(pkg.headers.include_flags.split())
else:
config_args.append('-no-openssl')
- if '+sql' in self.spec:
- sqlite = self.spec['sqlite']
- config_args.extend([
- '-system-sqlite',
- '-R', sqlite.prefix.lib,
- ])
+ if '+sql' in spec:
+ use_spack_dep('sqlite')
else:
comps = ['db2', 'ibase', 'oci', 'tds', 'mysql', 'odbc', 'psql',
'sqlite', 'sqlite2']
config_args.extend("-no-sql-" + component for component in comps)
- if '+shared' in self.spec:
+ if '+shared' in spec:
config_args.append('-shared')
else:
config_args.append('-static')
- if self.spec.satisfies('@5:'):
- pcre = self.spec['pcre'] if self.spec.satisfies('@5.0:5.8') \
- else self.spec['pcre2']
- harfbuzz = self.spec['harfbuzz']
- config_args.extend([
- '-system-harfbuzz',
- harfbuzz.libs.search_flags,
- harfbuzz.headers.include_flags,
- '-system-pcre',
- pcre.libs.search_flags,
- pcre.headers.include_flags
- ])
+ if version >= Version('5'):
+ use_spack_dep('pcre' if spec.satisfies('@5.0:5.8') else 'pcre2',
+ 'pcre')
+ use_spack_dep('harfbuzz')
- if self.spec.satisfies('@5.7:'):
- dc = self.spec['double-conversion']
- config_args.extend([
- '-system-doubleconversion',
- dc.libs.search_flags,
- dc.headers.include_flags
- ])
+ if version >= Version('5.7'):
+ use_spack_dep('double-conversion', 'doubleconversion')
- if '@:5.7.1' in self.spec:
+ if version <= Version('5.7.1'):
config_args.append('-no-openvg')
else:
# FIXME: those could work for other versions
- png = self.spec['libpng']
- config_args.append('-system-libpng')
- if not png.external:
- config_args.extend([
- png.libs.search_flags,
- png.headers.include_flags
- ])
+ use_spack_dep('libpng')
+ use_spack_dep('jpeg', 'libjpeg')
+ use_spack_dep('zlib')
- jpeg = self.spec['jpeg']
- config_args.append('-system-libjpeg')
- if not jpeg.external:
- config_args.extend([
- jpeg.libs.search_flags,
- jpeg.headers.include_flags,
- ])
- zlib = self.spec['zlib']
- config_args.append('-system-zlib')
- if not zlib.external:
- config_args.extend([
- zlib.libs.search_flags,
- zlib.headers.include_flags
- ])
-
- if '@:5.7.0' in self.spec:
+ if '@:5.7.0' in spec:
config_args.extend([
# NIS is deprecated in more recent glibc,
# but qt-5.7.1 does not recognize this option
'-no-nis',
])
- if '~examples' in self.spec:
+ # COMPONENTS
+
+ if '~examples' in spec:
config_args.extend(['-nomake', 'examples'])
- if '~tools' in self.spec:
+ if '~tools' in spec:
config_args.extend(['-nomake', 'tools'])
- if '+dbus' in self.spec:
- dbus = self.spec['dbus'].prefix
+ if '+dbus' in spec:
+ dbus = spec['dbus'].prefix
config_args.append('-dbus-linked')
config_args.append('-I%s/dbus-1.0/include' % dbus.lib)
config_args.append('-I%s/dbus-1.0' % dbus.include)
@@ -490,7 +548,7 @@ class Qt(Package):
if MACOS_VERSION:
config_args.append('-{0}framework'.format(
- '' if '+framework' in self.spec else 'no-'))
+ '' if '+framework' in spec else 'no-'))
(_, qtplat) = self.get_mkspec()
if qtplat is not None:
@@ -558,14 +616,15 @@ class Qt(Package):
])
if MACOS_VERSION:
- config_args.extend([
- '-no-xcb-xlib',
- '-no-pulseaudio',
- '-no-alsa',
- ])
+ if version < Version('5.9'):
+ config_args.append('-no-xcb-xlib')
if version < Version('5.12'):
config_args.append('-no-xinput2')
- else:
+ if spec.satisfies('@5.9'):
+ # Errors on bluetooth even when bluetooth is disabled...
+ # at least on apple-clang%12
+ config_args.extend(['-skip', 'connectivity'])
+ elif version < Version('5.15') and '+gui' in spec:
# Linux-only QT5 dependencies
config_args.append('-system-xcb')
@@ -584,15 +643,26 @@ class Qt(Package):
# https://wiki.qt.io/QtWayland
config_args.extend(['-skip', 'wayland'])
- if version >= Version('5.10') and '~opengl' in spec:
- config_args.extend([
- '-skip', 'webglplugin',
- '-skip', 'qt3d',
- ])
+ if '~opengl' in spec:
+ config_args.extend(['-skip', 'multimedia'])
+ if version >= Version('5.10'):
+ config_args.extend([
+ '-skip', 'webglplugin',
+ '-skip', 'qt3d',
+ ])
- if version >= Version('5.14') and '~opengl' in spec:
+ if version >= Version('5.14'):
+ config_args.extend(['-skip', 'qtquick3d'])
+
+ if version >= Version('5.15'):
+ config_args.extend(['-skip', 'qtlocation'])
+ elif MACOS_VERSION:
+ # These options are only valid if 'multimedia' is enabled, i.e.
+ # +opengl is selected. Force them to be off on macOS, but let other
+ # platforms decide for themselves.
config_args.extend([
- '-skip', 'qtquick3d',
+ '-no-pulseaudio',
+ '-no-alsa',
])
configure(*config_args)
@@ -602,3 +672,11 @@ class Qt(Package):
def install(self, spec, prefix):
make("install")
+
+ # Documentation generation requires the doc tools to be installed.
+ # @when @run_after currently seems to ignore the 'when' restriction.
+ @run_after('install')
+ def install_docs(self):
+ if '+doc' in self.spec:
+ make('docs')
+ make('install_docs')
diff --git a/var/spack/repos/builtin/packages/qt/qt5-15-gcc-10.patch b/var/spack/repos/builtin/packages/qt/qt5-15-gcc-10.patch
new file mode 100644
index 0000000000..32fbfba130
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qt/qt5-15-gcc-10.patch
@@ -0,0 +1,39 @@
+diff --git a/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/convert.hpp b/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/convert.hpp
+index 02ec7fe..6c1284e 100644
+--- a/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/convert.hpp
++++ b/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/convert.hpp
+@@ -1,6 +1,7 @@
+ #include <mbgl/util/util.hpp>
+
+ #include <array>
++#include <stdint.h>
+ #include <type_traits>
+ #include <utility>
+
+diff --git a/qtlocation/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp b/qtlocation/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
+index d475c38..6947f0b 100644
+--- a/qtlocation/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
++++ b/qtlocation/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
+@@ -4,6 +4,7 @@
+ #include <unicode/ubidi.h>
+ #include <unicode/ushape.h>
+
++#include <stdexcept>
+ #include <memory>
+
+ namespace mbgl {
+diff --git a/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/renderer/sources/render_vector_source.cpp b/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/renderer/sources/render_vector_source.cpp
+index 4de4f01..afb639d 100644
+--- a/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/renderer/sources/render_vector_source.cpp
++++ b/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/renderer/sources/render_vector_source.cpp
+@@ -2,6 +2,7 @@
+ #include <mbgl/renderer/render_tile.hpp>
+ #include <mbgl/renderer/paint_parameters.hpp>
+ #include <mbgl/tile/vector_tile.hpp>
++#include <mbgl/tile/tile_loader_impl.hpp>
+
+ #include <mbgl/algorithm/generate_clip_ids.hpp>
+ #include <mbgl/algorithm/generate_clip_ids_impl.hpp>
+--
+2.26.0
+
diff --git a/var/spack/repos/builtin/packages/qt/qt514-isystem.patch b/var/spack/repos/builtin/packages/qt/qt514-isystem.patch
new file mode 100644
index 0000000000..b72717958b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qt/qt514-isystem.patch
@@ -0,0 +1,107 @@
+diff --git a/qtbase/mkspecs/common/clang.conf b/qtbase/mkspecs/common/clang.conf
+index 2499c8b6d88..dad15a22a88 100644
+--- a/qtbase/mkspecs/common/clang.conf
++++ b/qtbase/mkspecs/common/clang.conf
+@@ -18,7 +18,6 @@ QMAKE_PCH_OUTPUT_EXT = .pch
+
+ QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
+
+-QMAKE_CFLAGS_ISYSTEM = -isystem
+ QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
+ QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT}
+ QMAKE_CFLAGS_LTCG = -flto=thin
+diff --git a/qtbase/mkspecs/common/gcc-base.conf b/qtbase/mkspecs/common/gcc-base.conf
+index 3c2d5fdd533..99d77156fd7 100644
+--- a/qtbase/mkspecs/common/gcc-base.conf
++++ b/qtbase/mkspecs/common/gcc-base.conf
+@@ -46,7 +46,6 @@ QMAKE_CFLAGS_DEBUG += -g
+ QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC
+ QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC
+ QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC
+-QMAKE_CFLAGS_ISYSTEM = -isystem
+ QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
+ QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
+ QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
+diff --git a/qtbase/mkspecs/linux-icc/qmake.conf b/qtbase/mkspecs/linux-icc/qmake.conf
+index 75a601b1f1b..09f897d0934 100644
+--- a/qtbase/mkspecs/linux-icc/qmake.conf
++++ b/qtbase/mkspecs/linux-icc/qmake.conf
+@@ -9,7 +9,6 @@ include(../common/icc-base-unix.conf)
+ # modifications to icc-base-unix.conf
+
+ QMAKE_CFLAGS_YACC =
+-QMAKE_CFLAGS_ISYSTEM = -isystem
+ QMAKE_CFLAGS_THREAD = -D_REENTRANT
+
+ QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+diff --git a/qtbase/qmake/generators/unix/unixmake2.cpp b/qtbase/qmake/generators/unix/unixmake2.cpp
+index 0412b528134..ad6a0e94f2b 100644
+--- a/qtbase/qmake/generators/unix/unixmake2.cpp
++++ b/qtbase/qmake/generators/unix/unixmake2.cpp
+@@ -198,18 +198,13 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
+ t << "CXXFLAGS = " << var("QMAKE_CXXFLAGS") << " $(DEFINES)\n";
+ t << "INCPATH =";
+ {
+- QString isystem = var("QMAKE_CFLAGS_ISYSTEM");
+ const ProStringList &incs = project->values("INCLUDEPATH");
+ for(int i = 0; i < incs.size(); ++i) {
+ const ProString &inc = incs.at(i);
+ if (inc.isEmpty())
+ continue;
+
+- if (!isystem.isEmpty() && isSystemInclude(inc.toQString()))
+- t << ' ' << isystem << ' ';
+- else
+- t << " -I";
+- t << escapeFilePath(inc);
++ t << " -I" << escapeFilePath(inc);
+ }
+ }
+ if(!project->isEmpty("QMAKE_FRAMEWORKPATH_FLAGS"))
+@@ -1393,8 +1388,7 @@ void UnixMakefileGenerator::init2()
+ }
+
+ if (include_deps && project->isActiveConfig("gcc_MD_depends")) {
+- // use -MMD if we know about -isystem too
+- ProString MD_flag(project->values("QMAKE_CFLAGS_ISYSTEM").isEmpty() ? "-MD" : "-MMD");
++ ProString MD_flag("-MD");
+ project->values("QMAKE_CFLAGS") += MD_flag;
+ project->values("QMAKE_CXXFLAGS") += MD_flag;
+ }
+diff --git a/qtbase/qmake/generators/win32/mingw_make.cpp b/qtbase/qmake/generators/win32/mingw_make.cpp
+index d778790f8ac..ee9a41838bc 100644
+--- a/qtbase/qmake/generators/win32/mingw_make.cpp
++++ b/qtbase/qmake/generators/win32/mingw_make.cpp
+@@ -200,17 +200,12 @@ void MingwMakefileGenerator::writeIncPart(QTextStream &t)
+ {
+ t << "INCPATH = ";
+
+- QString isystem = var("QMAKE_CFLAGS_ISYSTEM");
+ const ProStringList &incs = project->values("INCLUDEPATH");
+ for (ProStringList::ConstIterator incit = incs.begin(); incit != incs.end(); ++incit) {
+ QString inc = (*incit).toQString();
+ inc.replace(QRegExp("\\\\$"), "");
+
+- if (!isystem.isEmpty() && isSystemInclude(inc))
+- t << isystem << ' ';
+- else
+- t << "-I";
+- t << escapeFilePath(inc) << ' ';
++ t << "-I" << escapeFilePath(inc) << ' ';
+ }
+ t << Qt::endl;
+ }
+diff --git a/qtbase/src/plugins/platformthemes/gtk3/gtk3.pro b/qtbase/src/plugins/platformthemes/gtk3/gtk3.pro
+index cac6f7054d3..8d217396d34 100644
+--- a/qtbase/src/plugins/platformthemes/gtk3/gtk3.pro
++++ b/qtbase/src/plugins/platformthemes/gtk3/gtk3.pro
+@@ -10,6 +10,8 @@ QT += core-private gui-private theme_support-private
+ CONFIG += X11
+ QMAKE_USE += gtk3
+ DEFINES += GDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_6
++# Needed for GTK < 3.23
++QMAKE_CXXFLAGS_WARN_ON += -Wno-error=parentheses
+
+ HEADERS += \
+ qgtk3dialoghelpers.h \
+
diff --git a/var/spack/repos/builtin/packages/qt/qt514.patch b/var/spack/repos/builtin/packages/qt/qt514.patch
new file mode 100644
index 0000000000..d752a52bf7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qt/qt514.patch
@@ -0,0 +1,9 @@
+diff -ruN qt-everywhere-src-5.14.2.orig/qtimageformats/src/plugins/imageformats/jp2/qjp2handler.cpp qt-everywhere-src-5.14.2/qtimageformats/src/plugins/imageformats/jp2/qjp2handler.cpp
+--- qt-everywhere-src-5.14.2.orig/qtimageformats/src/plugins/imageformats/jp2/qjp2handler.cpp 2020-03-03 13:10:30.000000000 +0000
++++ qt-everywhere-src-5.14.2/qtimageformats/src/plugins/imageformats/jp2/qjp2handler.cpp 2020-11-16 19:57:56.792619032 +0000
+@@ -38,4 +38,5 @@
+ **
+ ****************************************************************************/
+
++#include <math.h>
+ #include "qjp2handler_p.h"
diff --git a/var/spack/repos/builtin/packages/qtgraph/package.py b/var/spack/repos/builtin/packages/qtgraph/package.py
index 01096dbc17..25f503d576 100644
--- a/var/spack/repos/builtin/packages/qtgraph/package.py
+++ b/var/spack/repos/builtin/packages/qtgraph/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Qtgraph(QMakePackage):
"""The baseline library used in the CUDA-centric Open|SpeedShop Graphical
diff --git a/var/spack/repos/builtin/packages/qthreads/package.py b/var/spack/repos/builtin/packages/qthreads/package.py
index a50acdee81..1ef735f7eb 100644
--- a/var/spack/repos/builtin/packages/qthreads/package.py
+++ b/var/spack/repos/builtin/packages/qthreads/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -29,6 +29,12 @@ class Qthreads(AutotoolsPackage):
homepage = "http://www.cs.sandia.gov/qthreads/"
url = "https://github.com/Qthreads/qthreads/releases/download/1.10/qthread-1.10.tar.bz2"
+ test_requires_compiler = True
+ test_base_path = 'test/basics/'
+ test_list = ['hello_world_multi', 'hello_world']
+
+ version('1.16', sha256='0a95e20b08cb486de6c33bff16590f41e444ca64ab738aee697ef982fbb021d8')
+ version('1.15', sha256='3ac2dc24debff004a2998933de5724b1e14e1ae262fa9942acbb01f77819a23b')
version("1.14", sha256="16f15e5b2e35b6329a857d24c283a1e43cd49921ee49a1446d4f31bf9c6f5cf9")
version("1.12", sha256="2c13a5f6f45bc2f22038d272be2e748e027649d3343a9f824da9e86a88b594c9")
version("1.11", sha256="dbde6c7cb7de7e89921e47363d09cecaebf775c9d090496c2be8350355055571")
@@ -56,7 +62,8 @@ class Qthreads(AutotoolsPackage):
description='Specify number of bytes to use in a stack',
values=is_integer)
- depends_on("hwloc@1.0:1.99", when="+hwloc")
+ depends_on("hwloc@1.0:1.99", when="@:1.15 +hwloc")
+ depends_on("hwloc@1.5:2.99", when="@1.16: +hwloc")
def configure_args(self):
spec = self.spec
@@ -83,5 +90,52 @@ class Qthreads(AutotoolsPackage):
args.append('--with-scheduler=%s'
% self.spec.variants['scheduler'].value)
-
return args
+
+ @run_after('install')
+ def setup_build_tests(self):
+ """Copy the build test files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ tests = self.test_list
+ relative_test_dir = self.test_base_path
+ files_to_cpy = []
+ header = 'test/argparsing.h'
+ for test in tests:
+ test_path = join_path(relative_test_dir, test + '.c')
+ files_to_cpy.append(test_path)
+ files_to_cpy.append(header)
+ self.cache_extra_test_sources(files_to_cpy)
+
+ def build_tests(self):
+ """Build and run the added smoke (install) test."""
+ tests = self.test_list
+ relative_test_dir = self.test_base_path
+
+ for test in tests:
+ options = [
+ '-I{0}'.format(self.prefix.include),
+ '-I{0}'.format(self.install_test_root + '/test'),
+ join_path(self.install_test_root, relative_test_dir,
+ test + '.c'),
+ '-o',
+ test,
+ '-L{0}'.format(self.prefix.lib),
+ '-lqthread',
+ '{0}{1}'.format(self.compiler.cc_rpath_arg,
+ self.prefix.lib)]
+ reason = 'test:{0}: Checking ability to link to the library.'\
+ .format(test)
+ self.run_test('cc', options, [], installed=False, purpose=reason)
+
+ def run_tests(self):
+ tests = self.test_list
+ # Now run the program
+ for test in tests:
+ reason = 'test:{0}: Checking ability to execute.'.format(test)
+ self.run_test(test, [], purpose=reason)
+
+ def test(self):
+ # Build
+ self.build_tests()
+ # Run test programs pulled from the build
+ self.run_tests()
diff --git a/var/spack/repos/builtin/packages/qtkeychain/package.py b/var/spack/repos/builtin/packages/qtkeychain/package.py
index c7ebfa822e..9d9d4efedd 100644
--- a/var/spack/repos/builtin/packages/qtkeychain/package.py
+++ b/var/spack/repos/builtin/packages/qtkeychain/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch b/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch
new file mode 100644
index 0000000000..fcfae27854
--- /dev/null
+++ b/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch
@@ -0,0 +1,72 @@
+diff --git a/install/configure b/install/configure_aocc
+index 66337d1..d2c04af 100755
+--- a/install/configure
++++ b/install/configure_aocc
+@@ -3203,6 +3203,7 @@ case "$arch" in
+ nagfor_version=`$mpif90 -v 2>&1 | grep "NAG Fortran"`
+ xlf_version=`$mpif90 -v 2>&1 | grep "xlf"`
+ armflang_version=`$mpif90 -v 2>&1 | grep "Arm C/C++/Fortran Compiler version"`
++ aoccflang_version=`$mpif90 -v 2>&1 | grep "AMD clang version"`
+ #
+ if test "$ifort_version" != ""
+ then
+@@ -3215,6 +3216,12 @@ case "$arch" in
+ version=`echo $nvfortran_version | cut -d ' ' -f2`
+ echo "${ECHO_T}nvfortran $version"
+ f90_in_mpif90="nvfortran"
++ elif test "$aoccflang_version" != ""
++ then
++ version=`echo $aoccflang_version | cut -d" " -f 5`
++ echo "${ECHO_T}mpif90 $version"
++ f90_in_mpif90="mpif90"
++ try_foxflags="-D__PGI"
+ elif test "$pgf_version" != ""
+ then
+ version=`echo $pgf_version | cut -d ' ' -f2`
+@@ -3397,6 +3404,9 @@ ppc64-bg*:*xlf90_r )
+ ppc64-bg*:*xlf90 )
+ try_cc="bgxlc"
+ ;;
++*:mpif90 )
++ try_cc="mpicc $try_cc"
++ ;;
+ ppc64:*xlf* | ppc64le:*xlf* )
+ try_cc="xlc_r $try_cc"
+ ;;
+@@ -3779,6 +3789,10 @@ necsx:* )
+ ppc64le:* )
+ try_cflags="-O3"
+ ;;
++x86_64:* )
++ try_cflags="-Ofast -Mstack_arrays"
++ try_dflags="-D__OPENMP"
++ ;;
+ ppc64-bg:* )
+ try_cflags="-O3 -q32"
+ ;;
+@@ -3915,6 +3929,16 @@ crayxt*:cray* )
+ try_dflags="$try_dflags -D__CRAY"
+ have_cpp=0
+ ;;
++*:*mpif90 )
++ try_fflags="-Ofast -Mstack_arrays"
++ try_fflags_openmp="-fopenmp"
++ try_f90flags=" \$(FFLAGS) -cpp -Ofast -Mpreprocess -Mstack_arrays"
++ try_foxflags="-D__PGI"
++ try_fflags_noopt="-O0"
++ try_ldflags=""
++ try_ldflags_openmp="-fopenmp"
++ try_ldflags_static="-static"
++ ;;
+ crayxt*:pgf* )
+ # see comment above for pgf*
+ try_fflags_nomain="-Mnomain"
+@@ -7815,7 +7839,7 @@ $as_echo "$as_me: WARNING: *** HDF5 version must be 1.8.16 or later" >&2;};
+ if test $with_hdf5_libs -eq 1; then
+ hdf5_libs=$with_hdf5_libline
+ else
+- hdf5_libs=`$with_hdf5_path/bin/h5pfc -show | awk -F'-L' '{$1=""; for (i=2; i<=NF;i++) $i="-L"$i; print $0}'`
++ hdf5_libs=`$with_hdf5_path/bin/h5pfc -show | awk -F'-L' '{$1=""; for (i=2; i<=NF;i++) $i="-L"$i; print $0}' | xargs`
+ fi
+ elif command -v h5pfc >/dev/null; then
+ if test $with_hdf5_libs -eq 1; then
diff --git a/var/spack/repos/builtin/packages/quantum-espresso/fj-fox.patch b/var/spack/repos/builtin/packages/quantum-espresso/fj-fox.patch
new file mode 100644
index 0000000000..d4fb79ab2c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/quantum-espresso/fj-fox.patch
@@ -0,0 +1,10 @@
+--- spack-src/install/extlibs_makefile.org 2021-01-22 10:11:00.527343202 +0900
++++ spack-src/install/extlibs_makefile 2021-01-22 10:15:24.319956918 +0900
+@@ -89,6 +89,7 @@
+ mkdir ../FoX; \
+ (gzip -dc ../archive/fox.tgz | (cd ../FoX; tar -xvf -)); \
+ cd ../FoX/fox/; export FC=$(F90); export FCFLAGS="$(FOX_FLAGS)"; \
++ sed -i 's/"-out " "-o "/"-o " "-out "/' configure; \
+ ./configure --prefix=$(TOPDIR)/FoX ;\
+ $(MAKE) install; cd ../; rm -fr fox;fi
+ # ELPA
diff --git a/var/spack/repos/builtin/packages/quantum-espresso/fj-intent.6.4.1.patch b/var/spack/repos/builtin/packages/quantum-espresso/fj-intent.6.4.1.patch
new file mode 100644
index 0000000000..7266a9b568
--- /dev/null
+++ b/var/spack/repos/builtin/packages/quantum-espresso/fj-intent.6.4.1.patch
@@ -0,0 +1,11 @@
+--- spack-src/PHonon/Gamma/dgradcorr.f90.org 2021-01-27 16:41:04.692204340 +0900
++++ spack-src/PHonon/Gamma/dgradcorr.f90 2021-01-27 16:44:03.877839298 +0900
+@@ -22,7 +22,7 @@
+
+ REAL(DP), INTENT(IN) :: rho (dfft%nnr, nspin), grho (3, dfft%nnr, nspin), &
+ g (3, dfft%ngm)
+- REAL(DP), INTENT(OUT):: drho (dfft%nnr,nspin),&
++ REAL(DP), INTENT(IN):: drho (dfft%nnr,nspin),&
+ dvxc_rr(dfft%nnr, nspin, nspin), dvxc_sr (dfft%nnr, nspin, nspin), &
+ dvxc_ss (dfft%nnr,nspin, nspin), dvxc_s (dfft%nnr, nspin, nspin)
+ REAL(DP), INTENT(INOUT) :: dvxc (dfft%nnr, nspin)
diff --git a/var/spack/repos/builtin/packages/quantum-espresso/fj.6.5.patch b/var/spack/repos/builtin/packages/quantum-espresso/fj.6.5.patch
new file mode 100644
index 0000000000..503a0e9ecf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/quantum-espresso/fj.6.5.patch
@@ -0,0 +1,23 @@
+--- spack-src/install/configure.org 2021-01-22 12:21:20.196915072 +0900
++++ spack-src/install/configure 2021-01-22 12:24:47.562530103 +0900
+@@ -3127,6 +3127,7 @@
+ pgf_version=`$mpif90 -V 2>&1 | grep "^pgf"`
+ gfortran_version=`$mpif90 -v 2>&1 | grep "gcc version"`
+ nagfor_version=`$mpif90 -v 2>&1 | grep "NAG Fortran"`
++ frt_version=`$mpif90 -v 2>&1 | grep "Fujitsu Fortran Compiler"`
+ xlf_version=`$mpif90 -v 2>&1 | grep "xlf"`
+ #
+ if test "$ifort_version" != ""
+@@ -3160,6 +3161,12 @@
+ echo "${ECHO_T}xlf (version unknonw)"
+ f90_in_mpif90="xlf"
+ try_dflags="-D__XLF"
++ elif test "$frt_version" != ""
++ then
++ version=`echo $frt_version | cut -d" " -f 5`
++ echo "${ECHO_T}frt $version"
++ f90_in_mpif90="frt"
++ try_foxflags="-D__FUJITSU"
+ else
+ echo "${ECHO_T}unknown, assuming gfortran"
+ f90_in_mpif90="gfortran"
diff --git a/var/spack/repos/builtin/packages/quantum-espresso/fj.6.6.patch b/var/spack/repos/builtin/packages/quantum-espresso/fj.6.6.patch
new file mode 100644
index 0000000000..7b2db5d8d5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/quantum-espresso/fj.6.6.patch
@@ -0,0 +1,23 @@
+--- spack-src/install/configure.org 2021-01-15 09:27:53.000000000 +0900
++++ spack-src/install/configure 2021-01-15 09:26:53.000000000 +0900
+@@ -3200,6 +3200,7 @@
+ nagfor_version=`$mpif90 -v 2>&1 | grep "NAG Fortran"`
+ xlf_version=`$mpif90 -v 2>&1 | grep "xlf"`
+ armflang_version=`$mpif90 -v 2>&1 | grep "Arm C/C++/Fortran Compiler version"`
++ frt_version=`$mpif90 -v 2>&1 | grep "Fujitsu Fortran Compiler"`
+ #
+ if test "$ifort_version" != ""
+ then
+@@ -3237,6 +3238,12 @@
+ f90_minor_version=`echo $version | cut -d. -f2`
+ f90_in_mpif90="armflang"
+ try_foxflags="-D__PGI"
++ elif test "$frt_version" != ""
++ then
++ version=`echo $frt_version | cut -d" " -f 5`
++ echo "${ECHO_T}frt $version"
++ f90_in_mpif90="frt"
++ try_foxflags="-D__FUJITSU"
+ else
+ echo "${ECHO_T}unknown, assuming gfortran"
+ f90_in_mpif90="gfortran"
diff --git a/var/spack/repos/builtin/packages/quantum-espresso/package.py b/var/spack/repos/builtin/packages/quantum-espresso/package.py
index d3fdbc2bb3..5d87ef6645 100644
--- a/var/spack/repos/builtin/packages/quantum-espresso/package.py
+++ b/var/spack/repos/builtin/packages/quantum-espresso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,10 @@ class QuantumEspresso(Package):
maintainers = ['naromero77']
version('develop', branch='develop')
- version('6.6', sha256='924656cb083f52e5d2fe71ade05881389dac64b45316f1bdd6dee1c6170a672c', preferred=True)
+ version('6.7', sha256='fe0ce74ff736b10d2a20c9d59025c01f88f86b00d229c123b1791f1edd7b4315',
+ url='https://gitlab.com/QEF/q-e/-/archive/qe-6.7MaX-Release/q-e-qe-6.7MaX-Release.tar.gz'
+ )
+ version('6.6', sha256='924656cb083f52e5d2fe71ade05881389dac64b45316f1bdd6dee1c6170a672c')
version('6.5', sha256='258b2a8a6280e86dad779e5c56356d8b35dc96d12ff33dabeee914bc03d6d602')
version('6.4.1', sha256='b0d7e9f617b848753ad923d8c6ca5490d5d82495f82b032b71a0ff2f2e9cfa08')
version('6.4', sha256='781366d03da75516fdcf9100a1caadb26ccdd1dedd942a6f8595ff0edca74bfe')
@@ -30,6 +33,20 @@ class QuantumEspresso(Package):
version('5.4', sha256='e3993fccae9cea04a5c6492e8b961a053a63727051cb5c4eb6008f62cda8f335')
version('5.3', sha256='3b26038efb9e3f8ac7a2b950c31d8c29169a3556c0b68c299eb88a4be8dc9048')
+ resource(name='environ',
+ git='https://github.com/environ-developers/Environ.git',
+ tag='v1.1',
+ when='@6.3:6.4.99 +environ',
+ destination='.'
+ )
+
+ resource(name='environ',
+ git='https://github.com/environ-developers/Environ.git',
+ tag='v1.0',
+ when='@6.2.1:6.2.99 +environ',
+ destination='.'
+ )
+
variant('mpi', default=True, description='Builds with mpi support')
variant('openmp', default=False, description='Enables openMP support')
variant('scalapack', default=True, description='Enables scalapack support')
@@ -58,6 +75,11 @@ class QuantumEspresso(Package):
variant('qmcpack', default=False,
description='Build QE-to-QMCPACK wave function converter')
+ variant('environ', default=False,
+ description='Enables support for introducing environment effects '
+ 'into atomistic first-principles simulations.'
+ 'See http://quantum-environ.org/about.html')
+
# Dependencies
depends_on('blas')
depends_on('lapack')
@@ -171,14 +193,29 @@ class QuantumEspresso(Package):
# NOTE: *SOME* third-party patches will require deactivation of
# upstream patches using `~patch` variant
- # QMCPACK converter patches for QE 6.4.1, 6.4, and 6.3
- conflicts('@:6.2,6.5:', when='+qmcpack',
+ # QMCPACK converter patches for QE 6.7, 6.4.1, 6.4, and 6.3
+ conflicts('@:6.2,6.5:6.6', when='+qmcpack',
msg='QMCPACK converter NOT available for this version of QE')
# Internal compiler error gcc8 and a64fx, I check only 6.5 and 6.6
conflicts('@5.3:', when='%gcc@8 target=a64fx',
msg='Internal compiler error with gcc8 and a64fx')
+ conflicts('@6.5:', when='+environ',
+ msg='6.4.x is the latest QE series supported by Environ')
+
+ # 6.7
+ patch_url = 'https://raw.githubusercontent.com/QMCPACK/qmcpack/develop/external_codes/quantum_espresso/add_pw2qmcpack_to_qe-6.7.0.diff'
+ patch_checksum = '72564c168231dd4a1279a74e76919af701d47cee9a851db6e205753004fe9bb5'
+ patch(patch_url, sha256=patch_checksum, when='@6.7+qmcpack')
+
+ # Need OpenMP threaded FFTW and BLAS libraries when configured
+ # with OpenMP support
+ conflicts('^fftw~openmp', when='+openmp')
+ conflicts('^amdfftw~openmp', when='+openmp')
+ conflicts('^openblas threads=none', when='+openmp')
+ conflicts('^openblas threads=pthreads', when='+openmp')
+
# 6.4.1
patch_url = 'https://raw.githubusercontent.com/QMCPACK/qmcpack/develop/external_codes/quantum_espresso/add_pw2qmcpack_to_qe-6.4.1.diff'
patch_checksum = '57cb1b06ee2653a87c3acc0dd4f09032fcf6ce6b8cbb9677ae9ceeb6a78f85e2'
@@ -201,6 +238,16 @@ class QuantumEspresso(Package):
patch('https://gitlab.com/QEF/q-e/-/commit/cf1fedefc20d39f5cd7551ded700ea4c77ad6e8f.diff',
sha256='8f179663a8d031aff9b1820a32449942281195b6e7b1ceaab1f729651b43fa58',
when='+patch@6.6')
+ # QE 6.5 INTENT(OUT) without settig value in tetra_weights_only(..., ef):
+ # For Fujitsu compiler
+ patch('https://gitlab.com/QEF/q-e/-/commit/8f096b53e75026701c681c508e2c24a9378c0950.diff',
+ sha256='f4f1cce4182b57ac797c8f6ec8460fe375ee96385fcd8f6a61e1460bc957eb67',
+ when='+patch@6.5')
+ # QE 6.5 Fix INTENT
+ # For Fujitsu compiler
+ patch('https://gitlab.com/QEF/q-e/-/commit/c2a86201ed72693ffa50cc99b22f5d3365ae2c2b.diff',
+ sha256='b2dadc0bc008a3ad4b74ae85cc380dd2b63f2ae43a634e6f9d8db8077efcea6c',
+ when='+patch@6.5')
# QE 6.3 requires multiple patches to fix MKL detection
# There may still be problems on Mac with MKL detection
patch('https://gitlab.com/QEF/q-e/commit/0796e1b7c55c9361ecb6515a0979280e78865e36.diff',
@@ -219,12 +266,30 @@ class QuantumEspresso(Package):
sha256='b1aa3179ee1c069964fb9c21f3b832aebeae54947ce8d3cc1a74e7b154c3c10f',
when='+patch@6.4.1:6.5.0')
+ # QE 6.4.1 Fix intent for Fujitsu compiler
+ patch('fj-intent.6.4.1.patch', when='+patch@6.4.1')
+ # QE 6.4.1 Fix intent
+ patch('https://gitlab.com/QEF/q-e/-/commit/c2a86201ed72693ffa50cc99b22f5d3365ae2c2b.diff',
+ sha256='b2dadc0bc008a3ad4b74ae85cc380dd2b63f2ae43a634e6f9d8db8077efcea6c',
+ when='+patch@6.4.1')
+
+ # QE 6.4.1 Small fixes for XLF compilation
+ patch('https://gitlab.com/QEF/q-e/-/commit/cf088926d68792cbaea48960c222e336a3965df6.diff',
+ sha256='bbceba1fb08d01d548d4393bbcaeae966def13f75884268a0f84448457b8eaa3',
+ when='+patch@6.4.1:6.5.0')
+
+ # Configure updated to work with AOCC compilers
+ patch('configure_aocc.patch', when='@6.7 %aocc')
+
# Configure updated to work with NVIDIA compilers
patch('nvhpc.patch', when='@6.5 %nvhpc')
- # Spurious problems running in parallel the Makefile
- # generated by the configure
- parallel = False
+ # Configure updated to work with Fujitsu compilers
+ patch('fj.6.5.patch', when='@6.5+patch %fj')
+ patch('fj.6.6.patch', when='@6.6:6.7+patch %fj')
+
+ # extlibs_makefile updated to work with fujitsu compilers
+ patch('fj-fox.patch', when='+patch %fj')
def install(self, spec, prefix):
@@ -289,7 +354,19 @@ class QuantumEspresso(Package):
if '^fftw@3:' in spec:
fftw_prefix = spec['fftw'].prefix
options.append('FFTW_INCLUDE={0}'.format(fftw_prefix.include))
- fftw_ld_flags = spec['fftw'].libs.ld_flags
+ if '+openmp' in spec:
+ fftw_ld_flags = spec['fftw:openmp'].libs.ld_flags
+ else:
+ fftw_ld_flags = spec['fftw'].libs.ld_flags
+ options.append('FFT_LIBS={0}'.format(fftw_ld_flags))
+
+ if '^amdfftw' in spec:
+ fftw_prefix = spec['amdfftw'].prefix
+ options.append('FFTW_INCLUDE={0}'.format(fftw_prefix.include))
+ if '+openmp' in spec:
+ fftw_ld_flags = spec['amdfftw:openmp'].libs.ld_flags
+ else:
+ fftw_ld_flags = spec['amdfftw'].libs.ld_flags
options.append('FFT_LIBS={0}'.format(fftw_ld_flags))
# External BLAS and LAPACK requires the correct link line into
@@ -310,8 +387,11 @@ class QuantumEspresso(Package):
# BLAS_LIBS being set
# However, MKL is correctly picked up by qe-6.5 for BLAS and FFT if
# MKLROOT is set (which SPACK does automatically for ^mkl)
- if not ('quantum-espresso@6.5' in spec and '^mkl' in spec):
+ if spec.satisfies('@:6.4'): # set even if MKL is selected
options.append('BLAS_LIBS={0}'.format(lapack_blas.ld_flags))
+ else: # behavior changed at 6.5 and later
+ if not spec.satisfies('^mkl'):
+ options.append('BLAS_LIBS={0}'.format(lapack_blas.ld_flags))
if '+scalapack' in spec:
if '^mkl' in spec:
@@ -322,6 +402,8 @@ class QuantumEspresso(Package):
else:
scalapack_option = 'yes'
options.append('--with-scalapack={0}'.format(scalapack_option))
+ scalapack_lib = spec['scalapack'].libs
+ options.append('SCALAPACK_LIBS={0}'.format(scalapack_lib.ld_flags))
if '+elpa' in spec:
@@ -338,9 +420,24 @@ class QuantumEspresso(Package):
options.extend([
'--with-elpa-include={0}'.format(elpa_include),
- '--with-elpa-lib={0}'.format(elpa.libs[0])
+ '--with-elpa-version={0}'.format(elpa.version.version[0]),
])
+ elpa_suffix = '_openmp' if '+openmp' in elpa else ''
+
+ # Currently AOCC support only static libraries of ELPA
+ if '%aocc' in spec:
+ options.extend([
+ '--with-elpa-lib={0}'.format(
+ join_path(elpa.prefix.lib,
+ 'libelpa{elpa_suffix}.a'
+ .format(elpa_suffix=elpa_suffix)))
+ ])
+ else:
+ options.extend([
+ '--with-elpa-lib={0}'.format(elpa.libs[0])
+ ])
+
if spec.variants['hdf5'].value != 'none':
options.append('--with-hdf5={0}'.format(spec['hdf5'].prefix))
if spec.satisfies('@6.4.1,6.5'):
@@ -368,10 +465,29 @@ class QuantumEspresso(Package):
zlib_libs, format(spec['zlib'].libs.ld_flags), make_inc
)
+ # QE 6.6 and later has parallel builds fixed
+ if spec.satisfies('@:6.5'):
+ parallel_build_on = False
+ else:
+ parallel_build_on = True
+
if '+epw' in spec:
- make('all', 'epw')
+ make('all', 'epw', parallel=parallel_build_on)
else:
- make('all')
+ make('all', parallel=parallel_build_on)
+
+ if '+environ' in spec:
+ addsonpatch = Executable('./install/addsonpatch.sh')
+ environpatch = Executable('./Environ/patches/environpatch.sh')
+ makedeps = Executable('./install/makedeps.sh')
+
+ addsonpatch('Environ', 'Environ/src', 'Modules', '-patch')
+
+ environpatch('-patch')
+
+ makedeps()
+
+ make('pw', parallel=parallel_build_on)
if 'platform=darwin' in spec:
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/quartz/package.py b/var/spack/repos/builtin/packages/quartz/package.py
index 1ae0cea830..c5303a937a 100644
--- a/var/spack/repos/builtin/packages/quartz/package.py
+++ b/var/spack/repos/builtin/packages/quartz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Quartz(MavenPackage):
application - from the smallest stand-alone application
to the largest e-commerce system."""
- homepage = "http://www.quartz-scheduler.org/"
+ homepage = "https://www.quartz-scheduler.org/"
url = "https://github.com/quartz-scheduler/quartz/archive/v2.3.2.tar.gz"
version('2.3.2', sha256='058c64777956aeaad3e79e2307f0f512c66d29acf026ea8373ad359050f6856c')
diff --git a/var/spack/repos/builtin/packages/qucs/package.py b/var/spack/repos/builtin/packages/qucs/package.py
new file mode 100644
index 0000000000..ecec0511e2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qucs/package.py
@@ -0,0 +1,64 @@
+# Copyright 2013-2021 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)
+import os
+
+from spack import *
+
+
+class Qucs(AutotoolsPackage):
+ """QUCS - Quite Universal Circuit Simulator
+
+ Qucs is an integrated circuit simulator which means you are able to
+ setup a circuit with a graphical user interface (GUI) and simulate
+ the large-signal, small-signal and noise behaviour of the circuit.
+ After that simulation has finished you can view the simulation results
+ on a presentation page or window.
+ """
+
+ homepage = "http://qucs.sourceforge.net/"
+ url = "https://sourceforge.net/projects/qucs/files/qucs/0.0.19/qucs-0.0.19.tar.gz"
+ git = "https://git.code.sf.net/p/qucs/git"
+
+ version('master', branch='master')
+ version('0.0.19', sha256='45c6434fde24c533e63550675ac21cdbd3cc6cbba29b82a1dc3f36e7dd4b3b3e')
+ version('0.0.18', sha256='3609a18b57485dc9f19886ac6694667f3251702175bd1cbbbea37981b2c482a7')
+
+ # Can use external simulators:
+ variant(
+ 'simulators', default='qucs', multi=True,
+ values=('qucs', 'ngspice', 'xyce'),
+ description='Circuits simulators (builtin qucsator and external ngspice, xyce)'
+ )
+
+ depends_on('flex@2.5.9:', type='build')
+ depends_on('bison@2.5:', type='build')
+ depends_on('pkgconfig', type='build')
+
+ depends_on("autoconf@2.64:", type='build')
+ depends_on("automake@1.7.0:", type='build')
+ depends_on("libtool", type='build')
+ depends_on("m4", type='build')
+
+ depends_on('adms', when='@0.0.19:')
+ depends_on('qt@4.8.5:4.8.7')
+ depends_on('gperf@3.0.1:')
+
+ # Simulators can be qucsator, the Circuit simulator of the Qucs project
+ # from https://github.com/Qucs/qucsator, or they can also be provided by
+ # ngspice and xyce.
+ # See https://qucs-help.readthedocs.io/en/spice4qucs/BasSim.html
+ depends_on('ngspice build=bin', type='run', when='simulators=ngspice')
+ depends_on('xyce', type='run', when='simulators=xyce')
+
+ def autoreconf(self, spec, prefix):
+ sh = which('sh')
+ if os.path.exists('bootstrap'):
+ sh('./bootstrap')
+ else:
+ sh('./autogen.sh')
+
+ def configure_args(self):
+ args = ['--disable-doc']
+ return args
diff --git a/var/spack/repos/builtin/packages/quicksilver/package.py b/var/spack/repos/builtin/packages/quicksilver/package.py
index e39a82337d..8c73ad7152 100644
--- a/var/spack/repos/builtin/packages/quicksilver/package.py
+++ b/var/spack/repos/builtin/packages/quicksilver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/quinoa/package.py b/var/spack/repos/builtin/packages/quinoa/package.py
index e29c953f3e..7188fe029d 100644
--- a/var/spack/repos/builtin/packages/quinoa/package.py
+++ b/var/spack/repos/builtin/packages/quinoa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,14 +14,14 @@ class Quinoa(CMakePackage):
systems.
"""
- homepage = "http://quinoacomputing.org"
+ homepage = "https://quinoacomputing.org"
git = "https://github.com/quinoacomputing/quinoa.git"
version('develop', branch='master')
depends_on('hdf5+mpi')
depends_on("charmpp backend=mpi")
- depends_on("trilinos+exodus")
+ depends_on("trilinos+exodus+mpi")
depends_on("boost")
depends_on("hypre~internal-superlu")
depends_on("random123")
diff --git a/var/spack/repos/builtin/packages/quota/package.py b/var/spack/repos/builtin/packages/quota/package.py
index edbe3f7528..ffb0e83376 100644
--- a/var/spack/repos/builtin/packages/quota/package.py
+++ b/var/spack/repos/builtin/packages/quota/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Quota(AutotoolsPackage):
"""Linux Diskquota system as part of the Linux kernel."""
- homepage = "http://sourceforge.net/projects/linuxquota"
+ homepage = "https://sourceforge.net/projects/linuxquota"
url = "https://udomain.dl.sourceforge.net/project/linuxquota/quota-tools/4.05/quota-4.05.tar.gz"
version('4.05', sha256='ef3b5b5d1014ed1344b46c1826145e20cbef8db967b522403c9a060761cf7ab9')
diff --git a/var/spack/repos/builtin/packages/qwt/package.py b/var/spack/repos/builtin/packages/qwt/package.py
index be7aba6372..5c4afe43fd 100644
--- a/var/spack/repos/builtin/packages/qwt/package.py
+++ b/var/spack/repos/builtin/packages/qwt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,7 @@ class Qwt(QMakePackage):
homepage = "http://qwt.sourceforge.net/"
url = "https://sourceforge.net/projects/qwt/files/qwt/6.1.3/qwt-6.1.3.tar.bz2"
+ version('6.1.6', sha256='99460d31c115ee4117b0175d885f47c2c590d784206f09815dc058fbe5ede1f6')
version('6.1.4', sha256='1529215329e51fc562e0009505a838f427919a18b362afff441f035b2d9b5bd9')
version('6.1.3', sha256='f3ecd34e72a9a2b08422fb6c8e909ca76f4ce5fa77acad7a2883b701f4309733')
version('5.2.2', sha256='36bf2ee51ca9c74fde1322510ffd39baac0db60d5d410bb157968a78d9c1464b')
@@ -25,7 +26,7 @@ class Qwt(QMakePackage):
patch('no-designer.patch', when='~designer')
- depends_on('qt+opengl')
+ depends_on('qt@:5.14.2+opengl')
depends_on('qt+tools', when='+designer')
# Qwt 6.1.1 and older use a constant that was removed in Qt 5.4
# https://bugs.launchpad.net/ubuntu/+source/qwt-qt5/+bug/1485213
diff --git a/var/spack/repos/builtin/packages/qwtpolar/package.py b/var/spack/repos/builtin/packages/qwtpolar/package.py
index 9c70dc162a..4425b7f117 100644
--- a/var/spack/repos/builtin/packages/qwtpolar/package.py
+++ b/var/spack/repos/builtin/packages/qwtpolar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-a4/package.py b/var/spack/repos/builtin/packages/r-a4/package.py
index 07591bc8dd..0ae69276b2 100644
--- a/var/spack/repos/builtin/packages/r-a4/package.py
+++ b/var/spack/repos/builtin/packages/r-a4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,15 @@ from spack import *
class RA4(RPackage):
- """Automated Affymetrix Array Analysis Umbrella Package."""
+ """Automated Affymetrix Array Analysis Umbrella Package
+
+ Umbrella package is available for the entire Automated Affymetrix Array
+ Analysis suite of package."""
homepage = "https://bioconductor.org/packages/a4"
git = "https://git.bioconductor.org/packages/a4.git"
+ version('1.38.0', commit='5b7a9087bab10c55e24707e96e48046995236c94')
version('1.32.0', commit='03770d4e53be4eed1bd0ab8f8cddba66854b4712')
version('1.30.0', commit='771e01ae3aaac1c4db12f781c41d90fa7191b64d')
version('1.28.0', commit='e81a8c15e1062ed9433e2d4d333f0484bc0e8bfb')
diff --git a/var/spack/repos/builtin/packages/r-a4base/package.py b/var/spack/repos/builtin/packages/r-a4base/package.py
index 306d42a273..08f6432e2e 100644
--- a/var/spack/repos/builtin/packages/r-a4base/package.py
+++ b/var/spack/repos/builtin/packages/r-a4base/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,25 +7,29 @@ from spack import *
class RA4base(RPackage):
- """Automated Affymetrix Array Analysis Base Package."""
+ """Automated Affymetrix Array Analysis Base Package
+
+ Base utility functions are available for the Automated Affymetrix Array
+ Analysis set of packages."""
homepage = "https://bioconductor.org/packages/a4Base"
git = "https://git.bioconductor.org/packages/a4Base.git"
+ version('1.38.0', commit='4add242fa9c62795aca5b0dfca34a43484c5aa82')
version('1.32.0', commit='8a1e15d25494c54db8c1de5dbbd69e628569e3d7')
version('1.30.0', commit='fc370b2bd8286acc1e42a10344d91974f5b94229')
version('1.28.0', commit='3918a9ebafa065027c29620ee4d83789cb02f932')
version('1.26.0', commit='9b8ee4a8be90f5035a4b105ecebb8bb5b50cd0d9')
version('1.24.0', commit='f674afe424a508df2c8ee6c87a06fbd4aa410ef6')
+ depends_on('r-a4preproc', type=('build', 'run'))
+ depends_on('r-a4core', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
- depends_on('r-annotationdbi', type=('build', 'run'))
depends_on('r-annaffy', type=('build', 'run'))
depends_on('r-mpm', type=('build', 'run'))
depends_on('r-genefilter', type=('build', 'run'))
depends_on('r-limma', type=('build', 'run'))
depends_on('r-multtest', type=('build', 'run'))
depends_on('r-glmnet', type=('build', 'run'))
- depends_on('r-a4preproc', type=('build', 'run'))
- depends_on('r-a4core', type=('build', 'run'))
depends_on('r-gplots', type=('build', 'run'))
+ depends_on('r-annotationdbi', when='@:1.32.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-a4classif/package.py b/var/spack/repos/builtin/packages/r-a4classif/package.py
index 38cc611b41..9886e0023d 100644
--- a/var/spack/repos/builtin/packages/r-a4classif/package.py
+++ b/var/spack/repos/builtin/packages/r-a4classif/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,16 @@ from spack import *
class RA4classif(RPackage):
- """Automated Affymetrix Array Analysis Classification Package."""
+ """Automated Affymetrix Array Analysis Classification Package
+
+ Functionalities for classification of Affymetrix microarray data,
+ integrating within the Automated Affymetrix Array Analysis set of
+ packages."""
homepage = "https://bioconductor.org/packages/a4Classif"
git = "https://git.bioconductor.org/packages/a4Classif.git"
+ version('1.38.0', commit='c4d058813efb835774813b2d69c52912162f8e75')
version('1.32.0', commit='aa4f22df2da54b71e1a238d2b9cbcb3afa6f7f88')
version('1.30.0', commit='b62841bff2f8894a3011a4e74afc37076d1322a3')
version('1.28.0', commit='3464011f6c3ddb41b78acc47e775539034287be7')
@@ -20,8 +25,9 @@ class RA4classif(RPackage):
depends_on('r-a4core', type=('build', 'run'))
depends_on('r-a4preproc', type=('build', 'run'))
- depends_on('r-mlinterfaces', type=('build', 'run'))
+ depends_on('r-biobase', when='@1.38.0:', type=('build', 'run'))
depends_on('r-rocr', type=('build', 'run'))
depends_on('r-pamr', type=('build', 'run'))
depends_on('r-glmnet', type=('build', 'run'))
depends_on('r-varselrf', type=('build', 'run'))
+ depends_on('r-mlinterfaces', when='@:1.32.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-a4core/package.py b/var/spack/repos/builtin/packages/r-a4core/package.py
index d89db83f1d..0cfe0706ef 100644
--- a/var/spack/repos/builtin/packages/r-a4core/package.py
+++ b/var/spack/repos/builtin/packages/r-a4core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,15 @@ from spack import *
class RA4core(RPackage):
- """Automated Affymetrix Array Analysis Core Package."""
+ """Automated Affymetrix Array Analysis Core Package
+
+ Utility functions for the Automated Affymetrix Array Analysis set of
+ packages."""
homepage = "https://bioconductor.org/packages/a4Core"
git = "https://git.bioconductor.org/packages/a4Core.git"
+ version('1.38.0', commit='a027dcd3486c64950815ec7c7271f1f65ba3d8a1')
version('1.32.0', commit='2916a29723bdd514d5d987f89725d141d1d2dfce')
version('1.30.0', commit='e392b1b4339a34f93d5d9bc520a1a9385ea63141')
version('1.28.0', commit='39b6ee29bc2f2fdc5733438c14dc02f8abc6460b')
diff --git a/var/spack/repos/builtin/packages/r-a4preproc/package.py b/var/spack/repos/builtin/packages/r-a4preproc/package.py
index 934b6b6129..b0d3e8e1b9 100644
--- a/var/spack/repos/builtin/packages/r-a4preproc/package.py
+++ b/var/spack/repos/builtin/packages/r-a4preproc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,21 @@ from spack import *
class RA4preproc(RPackage):
- """Automated Affymetrix Array Analysis Preprocessing Package."""
+ """Automated Affymetrix Array Analysis Preprocessing Package
+
+ Utility functions to pre-process data for the Automated Affymetrix Array
+ Analysis set of packages."""
homepage = "https://bioconductor.org/packages/a4Preproc"
git = "https://git.bioconductor.org/packages/a4Preproc.git"
+ version('1.38.0', commit='c93c223bd531bff090531a109b51f8dcd710d0cb')
version('1.32.0', commit='0da742e500892b682feeb39256906282ad20c558')
version('1.30.0', commit='e6fb9fa2e7c703974e6ca10c0e9681b097b05978')
version('1.28.0', commit='435d66727f1187020d034a1beaf4cd8bd4f76981')
version('1.26.0', commit='be7403acc06670c05ead1adaf60533b0fe3a65ea')
version('1.24.0', commit='651014b8102807aea4f1274e34e083e70b5e7ee7')
- depends_on('r-annotationdbi', type=('build', 'run'))
+ depends_on('r-biocgenerics', when='@1.38.0:', type=('build', 'run'))
+ depends_on('r-biobase', when='@1.38.0:', type=('build', 'run'))
+ depends_on('r-annotationdbi', when='@:1.32.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-a4reporting/package.py b/var/spack/repos/builtin/packages/r-a4reporting/package.py
index a99ce79bda..5f132f17ba 100644
--- a/var/spack/repos/builtin/packages/r-a4reporting/package.py
+++ b/var/spack/repos/builtin/packages/r-a4reporting/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,20 @@ from spack import *
class RA4reporting(RPackage):
- """Automated Affymetrix Array Analysis Reporting Package."""
+ """Automated Affymetrix Array Analysis Reporting Package
+
+ Utility functions to facilitate the reporting of the Automated Affymetrix
+ Array Analysis Reporting set of packages."""
homepage = "https://bioconductor.org/packages/a4Reporting"
git = "https://git.bioconductor.org/packages/a4Reporting.git"
+ version('1.38.0', commit='cd3cf244e7a299b2485684ed15519cbbda1c590f')
version('1.32.0', commit='8d781899c625892080eb50f322694dd640d5f792')
version('1.30.0', commit='ae9b9ade45cfac2636d0445a7e0a029dfe3b9390')
version('1.28.0', commit='0fe72f48374353c39479a45e5516d0709f8c9ef7')
version('1.26.0', commit='cce201502e2d3b28fd2823b66d9f81b034dc7eaa')
version('1.24.0', commit='bf22c4d50daf40fc9eaf8c476385bf4a24a5b5ce')
- depends_on('r-annaffy', type=('build', 'run'))
depends_on('r-xtable', type=('build', 'run'))
+ depends_on('r-annaffy', when='@:1.32.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-abadata/package.py b/var/spack/repos/builtin/packages/r-abadata/package.py
index 3fdc18a8c0..d40325e79d 100644
--- a/var/spack/repos/builtin/packages/r-abadata/package.py
+++ b/var/spack/repos/builtin/packages/r-abadata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAbadata(RPackage):
- """Averaged gene expression in human brain regions from Allen Brain Atlas.
+ """Averaged gene expression in human brain regions from Allen Brain Atlas
Provides the data for the gene expression enrichment analysis conducted
in the package 'ABAEnrichment'. The package includes three datasets
@@ -21,6 +21,7 @@ class RAbadata(RPackage):
homepage = "https://bioconductor.org/packages/ABAData"
git = "https://git.bioconductor.org/packages/ABAData.git"
+ version('1.20.0', commit='c08a841ffb54d6555eb80b90a7a8afe7e48201b3')
version('1.14.0', commit='ed7460e7d2948684db69dd4b4f8e135af50198bd')
version('1.12.0', commit='9c2f0fbda75b06a0807bd714528915920899282d')
version('1.10.0', commit='197edb2c3fc733c9e44dde2b9b86ecedcd2c5e1a')
diff --git a/var/spack/repos/builtin/packages/r-abaenrichment/package.py b/var/spack/repos/builtin/packages/r-abaenrichment/package.py
index 13ff668a73..cf00e7def8 100644
--- a/var/spack/repos/builtin/packages/r-abaenrichment/package.py
+++ b/var/spack/repos/builtin/packages/r-abaenrichment/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAbaenrichment(RPackage):
- """Gene expression enrichment in human brain regions.
+ """Gene expression enrichment in human brain regions
The package ABAEnrichment is designed to test for enrichment of user
defined candidate genes in the set of expressed genes in different human
@@ -25,19 +25,19 @@ class RAbaenrichment(RPackage):
homepage = "https://bioconductor.org/packages/ABAEnrichment"
git = "https://git.bioconductor.org/packages/ABAEnrichment.git"
+ version('1.20.0', commit='608433a0b07e6dd99915dc536a038d960f1be1d5')
version('1.14.1', commit='e1ebfb5de816b924af16675a5ba9ed1a6b527b23')
version('1.12.0', commit='1320e932deafd71d67c7a6f758d15b00d6d7f7d7')
version('1.10.0', commit='15f33ccb694a91d2d2067c937682c4bc952def6c')
version('1.8.0', commit='cb8155ee9a04fb55b2a2e8c23df7c0be15bb2624')
version('1.6.0', commit='d2a0467dcb7aa6e103e3b83dccd6510b0e142ac1')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@3.2:', type=('build', 'run'))
+ depends_on('r@3.4:', when='@1.8.0:', type=('build', 'run'))
depends_on('r-rcpp@0.11.5:', type=('build', 'run'))
depends_on('r-gplots@2.14.2:', type=('build', 'run'))
depends_on('r-gtools@3.5.0:', type=('build', 'run'))
depends_on('r-abadata@0.99.2:', type=('build', 'run'))
-
- depends_on('r@3.4:', when='@1.8.0:', type=('build', 'run'))
depends_on('r-data-table@1.10.4:', when='@1.8.0:', type=('build', 'run'))
-
depends_on('r-gofuncr@1.1.2:', when='@1.12.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-abind/package.py b/var/spack/repos/builtin/packages/r-abind/package.py
index 72e8013b64..3641213a24 100644
--- a/var/spack/repos/builtin/packages/r-abind/package.py
+++ b/var/spack/repos/builtin/packages/r-abind/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-absseq/package.py b/var/spack/repos/builtin/packages/r-absseq/package.py
index 13b9c1b7f7..8a89c49be6 100644
--- a/var/spack/repos/builtin/packages/r-absseq/package.py
+++ b/var/spack/repos/builtin/packages/r-absseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RAbsseq(RPackage):
"""ABSSeq: a new RNA-Seq analysis method based on modelling absolute
- expression differences.
+ expression differences
Inferring differential expression genes by absolute counts difference
between two groups, utilizing Negative binomial distribution and
@@ -18,6 +18,7 @@ class RAbsseq(RPackage):
homepage = "https://bioconductor.org/packages/ABSSeq"
git = "https://git.bioconductor.org/packages/ABSSeq.git"
+ version('1.44.0', commit='c202b4a059021ed1228ccee7303c69b0aa4ca1ee')
version('1.38.0', commit='b686d92f0f0efdb835982efe761d059bc24b34ce')
version('1.36.0', commit='bd419072432cba4ef58b4b37b3c69c85d78b1c4a')
version('1.34.1', commit='0c3a2514ef644c6e0de3714bc91959a302c9e006')
diff --git a/var/spack/repos/builtin/packages/r-acde/package.py b/var/spack/repos/builtin/packages/r-acde/package.py
index 83af5e4cc0..47d8a802ed 100644
--- a/var/spack/repos/builtin/packages/r-acde/package.py
+++ b/var/spack/repos/builtin/packages/r-acde/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAcde(RPackage):
- """Artificial Components Detection of Differentially Expressed Genes.
+ """Artificial Components Detection of Differentially Expressed Genes
This package provides a multivariate inferential analysis method for
detecting differentially expressed genes in gene expression data. It
@@ -23,6 +23,7 @@ class RAcde(RPackage):
homepage = "https://bioconductor.org/packages/acde"
git = "https://git.bioconductor.org/packages/acde.git"
+ version('1.20.0', commit='cefb4f2e2b0ef3c5f51944c0ece7a71294020350')
version('1.14.0', commit='6017c7436a46f186b2a3cea9d2b93274f6dd3417')
version('1.12.0', commit='f6ce5926ac915c2d73436f47daf7f9791645dad4')
version('1.10.0', commit='2c303dec45f3c70bf333a6eacae568a08d5ca010')
diff --git a/var/spack/repos/builtin/packages/r-acepack/package.py b/var/spack/repos/builtin/packages/r-acepack/package.py
index e116916827..8b4e29390a 100644
--- a/var/spack/repos/builtin/packages/r-acepack/package.py
+++ b/var/spack/repos/builtin/packages/r-acepack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-acgh/package.py b/var/spack/repos/builtin/packages/r-acgh/package.py
index 7e83884223..edf91d13e5 100644
--- a/var/spack/repos/builtin/packages/r-acgh/package.py
+++ b/var/spack/repos/builtin/packages/r-acgh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAcgh(RPackage):
- """Classes and functions for Array Comparative Genomic Hybridization data..
+ """Classes and functions for Array Comparative Genomic Hybridization data
Functions for reading aCGH data from image analysis output files and
clone information files, creation of aCGH S3 objects for storing these
@@ -17,6 +17,7 @@ class RAcgh(RPackage):
homepage = "https://bioconductor.org/packages/aCGH"
git = "https://git.bioconductor.org/packages/aCGH.git"
+ version('1.68.0', commit='91f41a3917ddce43eb05e11c90eb99c467ba2247')
version('1.62.0', commit='3b68b69c3380fa3b66dfb060457628a4a9c22d4f')
version('1.60.0', commit='ae581758aaa1755448f0cfef5adfb30d1e820b21')
version('1.58.0', commit='2decc79a21bff5a14d708cdc654e351515b20d3e')
diff --git a/var/spack/repos/builtin/packages/r-acme/package.py b/var/spack/repos/builtin/packages/r-acme/package.py
index c3d2e0a7fc..025950a3d8 100644
--- a/var/spack/repos/builtin/packages/r-acme/package.py
+++ b/var/spack/repos/builtin/packages/r-acme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAcme(RPackage):
- """Algorithms for Calculating Microarray Enrichment (ACME).
+ """Algorithms for Calculating Microarray Enrichment (ACME)
ACME (Algorithms for Calculating Microarray Enrichment) is a set of
tools for analysing tiling array ChIP/chip, DNAse hypersensitivity, or
@@ -22,6 +22,7 @@ class RAcme(RPackage):
homepage = "https://bioconductor.org/packages/ACME"
git = "https://git.bioconductor.org/packages/ACME.git"
+ version('2.46.0', commit='68f45c9f7d34c28adf6a0fc4245fdf63881109de')
version('2.40.0', commit='38499e512998d54d874a0bfdc173f4ba5de5f01a')
version('2.38.0', commit='cd03196428e8adf62e84f25c4d4545429e2c908b')
version('2.36.0', commit='39e056435b9775d35e7f7fc5446c2c3cafe15670')
diff --git a/var/spack/repos/builtin/packages/r-ada/package.py b/var/spack/repos/builtin/packages/r-ada/package.py
index e7c860cd65..ee91963925 100644
--- a/var/spack/repos/builtin/packages/r-ada/package.py
+++ b/var/spack/repos/builtin/packages/r-ada/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-adabag/package.py b/var/spack/repos/builtin/packages/r-adabag/package.py
index 9d4986fca6..e80ebe01cb 100644
--- a/var/spack/repos/builtin/packages/r-adabag/package.py
+++ b/var/spack/repos/builtin/packages/r-adabag/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ade4/package.py b/var/spack/repos/builtin/packages/r-ade4/package.py
index d81b2815a0..84dda495db 100644
--- a/var/spack/repos/builtin/packages/r-ade4/package.py
+++ b/var/spack/repos/builtin/packages/r-ade4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,15 +8,26 @@ from spack import *
class RAde4(RPackage):
"""Analysis of Ecological Data : Exploratory and Euclidean Methods in
- Environmental Sciences"""
+ Environmental Sciences
- homepage = "http://pbil.univ-lyon1.fr/ADE-4"
+ Tools for multivariate data analysis. Several methods are provided for the
+ analysis (i.e., ordination) of one-table (e.g., principal component
+ analysis, correspondence analysis), two-table (e.g., coinertia analysis,
+ redundancy analysis), three-table (e.g., RLQ analysis) and K-table (e.g.,
+ STATIS, multiple coinertia analysis). The philosophy of the package is
+ described in Dray and Dufour (2007) <doi:10.18637/jss.v022.i04>."""
+
+ homepage = "https://pbil.univ-lyon1.fr/ADE-4"
url = "https://cloud.r-project.org/src/contrib/ade4_1.7-6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ade4"
+ version('1.7-16', sha256='9bd7a25ff4fe30a32fd8f6b71909f4c638a0e2f002fc8303c0a4795423385590')
version('1.7-13', sha256='f5d0a7356ae63f82d3adb481a39007e7b0d70211b8724aa686af0c89c994e99b')
version('1.7-11', sha256='4ccd799ae99bd625840b866a697c4a48adb751660470bf0d6cf9207b1927a572')
version('1.7-6', sha256='80848e1650dcc0ec921c130efa6f7e9b307f0d107c63e49faa52296eda19cc52')
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-pixmap', when='@1.7-16:', type=('build', 'run'))
+ depends_on('r-sp', when='@1.7-16:', type=('build', 'run'))
+ depends_on('r-progress', when='@1.7-16:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-adegenet/package.py b/var/spack/repos/builtin/packages/r-adegenet/package.py
index 3eac280830..3348afa567 100644
--- a/var/spack/repos/builtin/packages/r-adegenet/package.py
+++ b/var/spack/repos/builtin/packages/r-adegenet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RAdegenet(RPackage):
- """Toolset for the exploration of genetic and genomic data. Adegenet
+ """Exploratory Analysis of Genetic and Genomic Data
+
+ Toolset for the exploration of genetic and genomic data. Adegenet
provides formal (S4) classes for storing and handling various genetic
data, including genetic markers with varying ploidy and hierarchical
population structure ('genind' class), alleles counts by populations
@@ -21,6 +23,7 @@ class RAdegenet(RPackage):
url = "https://cloud.r-project.org/src/contrib/adegenet_2.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/adegenet"
+ version('2.1.3', sha256='0790114ecb22642683b5be1f4b3a6a49856e06dc2f9e21b9cba4390c2257f6c6')
version('2.1.1', sha256='3043fe5d731a38ff0e266f090dcda448640c3d0fd61934c76da32d082e5dce7a')
version('2.1.0', sha256='7ee44061002b41164bbc09256307ab02e536f4f2ac03f36c7dc8f85f6af4639a')
version('2.0.1', sha256='7eddf46e64f680d54d034b68c50900d9bd5bc2e08309d062e230121b7460bb10')
@@ -34,7 +37,7 @@ class RAdegenet(RPackage):
depends_on('r-ggplot2', type=('build', 'run'))
depends_on('r-seqinr', type=('build', 'run'))
depends_on('r-spdep', type=('build', 'run'))
+ depends_on('r-boot', type=('build', 'run'))
depends_on('r-reshape2', type=('build', 'run'))
depends_on('r-dplyr@0.4.1:', type=('build', 'run'))
depends_on('r-vegan', type=('build', 'run'))
- depends_on('r-boot', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-adegraphics/package.py b/var/spack/repos/builtin/packages/r-adegraphics/package.py
index d007d6cb97..d74f11d953 100644
--- a/var/spack/repos/builtin/packages/r-adegraphics/package.py
+++ b/var/spack/repos/builtin/packages/r-adegraphics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class RAdegraphics(RPackage):
It is a complete re-implementation of the functions available in the 'ade4'
package."""
- homepage = "http://pbil.univ-lyon1.fr/ADE-4"
+ homepage = "https://pbil.univ-lyon1.fr/ADE-4"
url = "https://cloud.r-project.org/src/contrib/adegraphics_1.0-15.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/adegraphics"
diff --git a/var/spack/repos/builtin/packages/r-adephylo/package.py b/var/spack/repos/builtin/packages/r-adephylo/package.py
index 3527a2fb6f..5259673222 100644
--- a/var/spack/repos/builtin/packages/r-adephylo/package.py
+++ b/var/spack/repos/builtin/packages/r-adephylo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-adespatial/package.py b/var/spack/repos/builtin/packages/r-adespatial/package.py
index aeaaae67f5..4de4296a47 100644
--- a/var/spack/repos/builtin/packages/r-adespatial/package.py
+++ b/var/spack/repos/builtin/packages/r-adespatial/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-adgoftest/package.py b/var/spack/repos/builtin/packages/r-adgoftest/package.py
index 1117c5c986..1e453c4907 100644
--- a/var/spack/repos/builtin/packages/r-adgoftest/package.py
+++ b/var/spack/repos/builtin/packages/r-adgoftest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-adsplit/package.py b/var/spack/repos/builtin/packages/r-adsplit/package.py
index 29dd6a088f..ad1ec8163c 100644
--- a/var/spack/repos/builtin/packages/r-adsplit/package.py
+++ b/var/spack/repos/builtin/packages/r-adsplit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAdsplit(RPackage):
- """Annotation-Driven Clustering.
+ """Annotation-Driven Clustering
This package implements clustering of microarray gene expression
profiles according to functional annotations. For each term genes are
@@ -17,6 +17,7 @@ class RAdsplit(RPackage):
homepage = "https://bioconductor.org/packages/adSplit"
git = "https://git.bioconductor.org/packages/adSplit.git"
+ version('1.60.0', commit='de5abccfe652cbc5b5f49fb6ed77cdd15cc760cd')
version('1.54.0', commit='ce8fb61f4a3d0942294da2baa28be1472acb0652')
version('1.52.0', commit='3bd105dbd76c52798b7d52f60c17de62ef13da19')
version('1.50.0', commit='a02e2c994e78ececd5a248575109c5ed36c969db')
diff --git a/var/spack/repos/builtin/packages/r-aer/package.py b/var/spack/repos/builtin/packages/r-aer/package.py
index 0b9cb5aaf1..2e0c3f6537 100644
--- a/var/spack/repos/builtin/packages/r-aer/package.py
+++ b/var/spack/repos/builtin/packages/r-aer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RAer(RPackage):
- """Functions, data sets, examples, demos, and vignettes
+ """Applied Econometrics with R
+
+ Functions, data sets, examples, demos, and vignettes
for the book Christian Kleiber and Achim Zeileis (2008),
Applied Econometrics with R, Springer-Verlag, New York.
ISBN 978-0-387-77316-2."""
@@ -16,6 +18,7 @@ class RAer(RPackage):
url = "https://cloud.r-project.org/src/contrib/AER_1.2-5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/AER"
+ version('1.2-9', sha256='3b79390b14766419fc1e8912689bc462d4beb01aff9dad26d628aed69d04540d')
version('1.2-7', sha256='3aee5c606313710c2dca6c1e9b2c20a145aa33f2a3ecc5cfcec66c8e91838a93')
version('1.2-6', sha256='653c3a2d253819e0ce8c2cf12cff2ab222bf3d19dbf382b7c4b4c3d762469474')
version('1.2-5', sha256='ef0cf14ff9d3de2b97e5855243426cc918808eb1011f0e2253b3b00043927a62')
diff --git a/var/spack/repos/builtin/packages/r-afex/package.py b/var/spack/repos/builtin/packages/r-afex/package.py
new file mode 100644
index 0000000000..dac1a2dc61
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-afex/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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 RAfex(RPackage):
+ """Analysis of Factorial Experiments
+
+ Convenience functions for analyzing factorial experiments using ANOVA or
+ mixed models. aov_ez(), aov_car(), and aov_4() allow specification of
+ between, within (i.e., repeated-measures), or mixed (i.e., split-plot)
+ ANOVAs for data in long format (i.e., one observation per row),
+ automatically aggregating multiple observations per individual and cell
+ of the design. mixed() fits mixed models using lme4::lmer() and computes
+ p-values for all fixed effects using either Kenward-Roger or Satterthwaite
+ approximation for degrees of freedom (LMM only), parametric bootstrap
+ (LMMs and GLMMs), or likelihood ratio tests (LMMs and GLMMs).
+ afex_plot() provides a high-level interface for interaction or one-way
+ plots using ggplot2, combining raw data and model estimates. afex uses
+ type 3 sums of squares as default (imitating commercial statistical
+ software).
+ """
+
+ homepage = "https://github.com/singmann/afex"
+ cran = "afex"
+
+ version('0.28-1', sha256='cfb0b79bfa01b590afc3354a5b2ad3640d2f4974b036d6c256fa8e684bc69c2e')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-lme4@1.1-8:', type=('build', 'run'))
+ depends_on('r-pbkrtest@0.4-1:', type=('build', 'run'))
+ depends_on('r-lmertest@3.0-0:', type=('build', 'run'))
+ depends_on('r-car', type=('build', 'run'))
+ depends_on('r-reshape2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-affxparser/package.py b/var/spack/repos/builtin/packages/r-affxparser/package.py
index c2814bbca0..c6b0adc57c 100644
--- a/var/spack/repos/builtin/packages/r-affxparser/package.py
+++ b/var/spack/repos/builtin/packages/r-affxparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffxparser(RPackage):
- """Affymetrix File Parsing SDK.
+ """Affymetrix File Parsing SDK
Package for parsing Affymetrix files (CDF, CEL, CHP, BPMAP, BAR). It
provides methods for fast and memory efficient parsing of Affymetrix
@@ -21,6 +21,7 @@ class RAffxparser(RPackage):
homepage = "https://bioconductor.org/packages/affxparser"
git = "https://git.bioconductor.org/packages/affxparser.git"
+ version('1.62.0', commit='b3e988e5c136c3f1a064e1da13730b403c8704c0')
version('1.56.0', commit='20d27701ad2bdfacf34d857bb8ecb4f505b4d056')
version('1.54.0', commit='dce83d23599a964086a84ced4afd13fc43e7cd4f')
version('1.52.0', commit='8e0c4b89ee1cb4ff95f58a5dd947249dc718bc58')
diff --git a/var/spack/repos/builtin/packages/r-affy/package.py b/var/spack/repos/builtin/packages/r-affy/package.py
index 06d65f113a..47722b3496 100644
--- a/var/spack/repos/builtin/packages/r-affy/package.py
+++ b/var/spack/repos/builtin/packages/r-affy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffy(RPackage):
- """Methods for Affymetrix Oligonucleotide Arrays.
+ """Methods for Affymetrix Oligonucleotide Arrays
The package contains functions for exploratory oligonucleotide array
analysis. The dependence on tkWidgets only concerns few convenience
@@ -16,6 +16,7 @@ class RAffy(RPackage):
homepage = "https://bioconductor.org/packages/affy"
git = "https://git.bioconductor.org/packages/affy.git"
+ version('1.68.0', commit='1664399610c9aa519399445a2ef8bb9ea2233eac')
version('1.62.0', commit='097ab4aa98a1700c5fae65d07bed44a477714605')
version('1.60.0', commit='fcae363e58b322ad53584d9e15e80fa2f9d17206')
version('1.58.0', commit='4698231f45f225228f56c0708cd477ad450b4ee6')
@@ -26,8 +27,7 @@ class RAffy(RPackage):
depends_on('r-biocgenerics@0.1.12:', type=('build', 'run'))
depends_on('r-biobase@2.5.5:', type=('build', 'run'))
depends_on('r-affyio@1.13.3:', type=('build', 'run'))
- depends_on('r-biocinstaller', when='@1.54.0:1.58.0', type=('build', 'run'))
+ depends_on('r-biocmanager', when='@1.60.0:', type=('build', 'run'))
depends_on('r-preprocesscore', type=('build', 'run'))
depends_on('r-zlibbioc', type=('build', 'run'))
-
- depends_on('r-biocmanager', when='@1.60.0:', type=('build', 'run'))
+ depends_on('r-biocinstaller', when='@1.54.0:1.58.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-affycomp/package.py b/var/spack/repos/builtin/packages/r-affycomp/package.py
index aa434c3de9..af49dd6212 100644
--- a/var/spack/repos/builtin/packages/r-affycomp/package.py
+++ b/var/spack/repos/builtin/packages/r-affycomp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffycomp(RPackage):
- """Graphics Toolbox for Assessment of Affymetrix Expression Measures.
+ """Graphics Toolbox for Assessment of Affymetrix Expression Measures
The package contains functions that can be used to compare expression
measures for Affymetrix Oligonucleotide Arrays."""
@@ -15,6 +15,7 @@ class RAffycomp(RPackage):
homepage = "https://bioconductor.org/packages/affycomp"
git = "https://git.bioconductor.org/packages/affycomp.git"
+ version('1.66.0', commit='388d01af8b1e6ab11051407f77d0206512df8424')
version('1.60.0', commit='5dbe61fa04941529a0fc70b728021c8e00c4ba0c')
version('1.58.0', commit='99607b2c4aad37e3e63eccbd12d0d533762f28ef')
version('1.56.0', commit='b0994da338be19396e647c680059fd35341b50a2')
diff --git a/var/spack/repos/builtin/packages/r-affycompatible/package.py b/var/spack/repos/builtin/packages/r-affycompatible/package.py
index 0baa5f8bd0..324d239007 100644
--- a/var/spack/repos/builtin/packages/r-affycompatible/package.py
+++ b/var/spack/repos/builtin/packages/r-affycompatible/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffycompatible(RPackage):
- """Affymetrix GeneChip software compatibility.
+ """Affymetrix GeneChip software compatibility
This package provides an interface to Affymetrix chip annotation and
sample attribute files. The package allows an easy way for users to
@@ -19,6 +19,7 @@ class RAffycompatible(RPackage):
homepage = "https://bioconductor.org/packages/AffyCompatible"
git = "https://git.bioconductor.org/packages/AffyCompatible.git"
+ version('1.50.0', commit='3b12d12bd6d1a9f0d45e012817231d137d47089e')
version('1.44.0', commit='98a27fbe880551fd32a5febb6c7bde0807eac476')
version('1.42.0', commit='699303cc20f292591e2faa12e211c588efb9eaa8')
version('1.40.0', commit='44838bdb5e8c26afbd898c49ed327ddd1a1d0301')
diff --git a/var/spack/repos/builtin/packages/r-affycontam/package.py b/var/spack/repos/builtin/packages/r-affycontam/package.py
index 4df3ea750e..22c9ddbf12 100644
--- a/var/spack/repos/builtin/packages/r-affycontam/package.py
+++ b/var/spack/repos/builtin/packages/r-affycontam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffycontam(RPackage):
- """structured corruption of affymetrix cel file data.
+ """structured corruption of affymetrix cel file data
structured corruption of cel file data to demonstrate QA
effectiveness"""
@@ -15,6 +15,7 @@ class RAffycontam(RPackage):
homepage = "https://bioconductor.org/packages/affyContam"
git = "https://git.bioconductor.org/packages/affyContam.git"
+ version('1.48.0', commit='88387a2ad4be4234d36710c65f2ca3a5b06b67da')
version('1.42.0', commit='8a5e94a5ae8c2ecfafa6177b84a6e8ab07e14fbe')
version('1.40.0', commit='dfd5fd6ae04941dddbda03f656540b71b2fbc614')
version('1.38.0', commit='84651e8eade61619afefc83bb290047da101a5bc')
diff --git a/var/spack/repos/builtin/packages/r-affycoretools/package.py b/var/spack/repos/builtin/packages/r-affycoretools/package.py
index bdb1467a9c..822e2a574b 100644
--- a/var/spack/repos/builtin/packages/r-affycoretools/package.py
+++ b/var/spack/repos/builtin/packages/r-affycoretools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RAffycoretools(RPackage):
"""Functions useful for those doing repetitive analyses with Affymetrix
- GeneChips.
+ GeneChips
Various wrapper functions that have been written to streamline the more
common analyses that a core Biostatistician might see."""
@@ -16,12 +16,14 @@ class RAffycoretools(RPackage):
homepage = "https://bioconductor.org/packages/affycoretools"
git = "https://git.bioconductor.org/packages/affycoretools.git"
+ version('1.62.0', commit='c9779e4da648fd174c9bd575c6020be1c03047c4')
version('1.56.0', commit='71eab04056a8d696470420a600b14900186be898')
version('1.54.0', commit='1e1f9680bc3e1fa443f4a81ce5ab81349959b845')
version('1.52.2', commit='2f98c74fad238b94c1e453b972524ab7b573b0de')
version('1.50.6', commit='4be92bcb55d7bace2a110865b7530dcfac14e76e')
version('1.48.0', commit='e0d52e34eead1ac45d3e60c59efd940e4889eb99')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-affy', type=('build', 'run'))
depends_on('r-limma', type=('build', 'run'))
@@ -39,5 +41,5 @@ class RAffycoretools(RPackage):
depends_on('r-edger', type=('build', 'run'))
depends_on('r-rsqlite', type=('build', 'run'))
depends_on('r-biocgenerics', type=('build', 'run'))
-
depends_on('r-dbi', when='@1.50.6:', type=('build', 'run'))
+ depends_on('r-glimma', when='@1.62.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-affydata/package.py b/var/spack/repos/builtin/packages/r-affydata/package.py
index 720477642f..f43c8e603a 100644
--- a/var/spack/repos/builtin/packages/r-affydata/package.py
+++ b/var/spack/repos/builtin/packages/r-affydata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffydata(RPackage):
- """Affymetrix Data for Demonstration Purpose.
+ """Affymetrix Data for Demonstration Purpose
Example datasets of a slightly large size. They represent 'real world
examples', unlike the artificial examples included in the package
@@ -16,6 +16,7 @@ class RAffydata(RPackage):
homepage = "https://bioconductor.org/packages/affydata"
git = "https://git.bioconductor.org/packages/affydata.git"
+ version('1.38.0', commit='b5e843b2514789d0d87bea44d762c89a95314ee7')
version('1.32.0', commit='c7cef93f6edd23024f4b1985b90e89058874c2bd')
version('1.30.0', commit='d5408d84b37ebae73b40a448dd52baf7b4a13bea')
version('1.28.0', commit='a106a5514c352bf0bbc624ded58a93886d4ce96f')
diff --git a/var/spack/repos/builtin/packages/r-affyexpress/package.py b/var/spack/repos/builtin/packages/r-affyexpress/package.py
index c01d921fa2..7f9ec7dfa0 100644
--- a/var/spack/repos/builtin/packages/r-affyexpress/package.py
+++ b/var/spack/repos/builtin/packages/r-affyexpress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffyexpress(RPackage):
- """Affymetrix Quality Assessment and Analysis Tool.
+ """Affymetrix Quality Assessment and Analysis Tool
The purpose of this package is to provide a comprehensive and easy-to-
use tool for quality assessment and to identify differentially expressed
@@ -16,6 +16,7 @@ class RAffyexpress(RPackage):
homepage = "https://bioconductor.org/packages/AffyExpress"
git = "https://git.bioconductor.org/packages/AffyExpress.git"
+ version('1.56.0', commit='e07085833de2bbf81537410cad526d39f8a82478')
version('1.50.0', commit='8b98703b63396df9692afb0e15b594658125cc96')
version('1.48.0', commit='dbaed516b7529ef4f7588aafaf3c5f1d53a9bb92')
version('1.46.0', commit='2add4a4436e21aa20f1ededbfd5f1365a3d28c85')
diff --git a/var/spack/repos/builtin/packages/r-affyilm/package.py b/var/spack/repos/builtin/packages/r-affyilm/package.py
index 45ea59fb14..aa772ab218 100644
--- a/var/spack/repos/builtin/packages/r-affyilm/package.py
+++ b/var/spack/repos/builtin/packages/r-affyilm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffyilm(RPackage):
- """Linear Model of background subtraction and the Langmuir isotherm.
+ """Linear Model of background subtraction and the Langmuir isotherm
affyILM is a preprocessing tool which estimates gene expression levels
for Affymetrix Gene Chips. Input from physical chemistry is employed to
@@ -17,6 +17,7 @@ class RAffyilm(RPackage):
homepage = "https://bioconductor.org/packages/affyILM"
git = "https://git.bioconductor.org/packages/affyILM.git"
+ version('1.42.0', commit='b97b29786b866de38802ebbb995169be91e90942')
version('1.36.0', commit='619ced931ba72860ce4cb41c841bbca1636a1132')
version('1.34.0', commit='2c02ed2d8fa9a9585d41cf4db0b75d0a07ad8564')
version('1.32.0', commit='860f2ddada80435d309ba334eff3fab503817755')
diff --git a/var/spack/repos/builtin/packages/r-affyio/package.py b/var/spack/repos/builtin/packages/r-affyio/package.py
index 5379253475..df46f43194 100644
--- a/var/spack/repos/builtin/packages/r-affyio/package.py
+++ b/var/spack/repos/builtin/packages/r-affyio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffyio(RPackage):
- """Tools for parsing Affymetrix data files.
+ """Tools for parsing Affymetrix data files
Routines for parsing Affymetrix data files based upon file format
information. Primary focus is on accessing the CEL and CDF file
@@ -16,6 +16,7 @@ class RAffyio(RPackage):
homepage = "https://bioconductor.org/packages/affyio"
git = "https://git.bioconductor.org/packages/affyio.git"
+ version('1.60.0', commit='ee20528b32700e99768da48143d6d45c9a7bbe91')
version('1.54.0', commit='c0e306e1805a556a1074d1af1acdd18e0a04477f')
version('1.52.0', commit='9da725ac1098a22a370fa96eb03e51e4f6d5d963')
version('1.50.0', commit='911ea4f8e4cdf7b649b87ef7ed1a5f5b111ef38a')
diff --git a/var/spack/repos/builtin/packages/r-affypdnn/package.py b/var/spack/repos/builtin/packages/r-affypdnn/package.py
index b78e98745e..f10a0e6a79 100644
--- a/var/spack/repos/builtin/packages/r-affypdnn/package.py
+++ b/var/spack/repos/builtin/packages/r-affypdnn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-affyplm/package.py b/var/spack/repos/builtin/packages/r-affyplm/package.py
index 29ca0119bd..e837d04fea 100644
--- a/var/spack/repos/builtin/packages/r-affyplm/package.py
+++ b/var/spack/repos/builtin/packages/r-affyplm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffyplm(RPackage):
- """Methods for fitting probe-level models.
+ """Methods for fitting probe-level models
A package that extends and improves the functionality of the base affy
package. Routines that make heavy use of compiled code for speed.
@@ -18,6 +18,7 @@ class RAffyplm(RPackage):
homepage = "https://bioconductor.org/packages/affyPLM"
git = "https://git.bioconductor.org/packages/affyPLM.git"
+ version('1.66.0', commit='f0780c3d0e9dccaff83861b98beb5c1d324c4399')
version('1.60.0', commit='b11e377d6af3fd0f28aba8195ebf171003da1a9d')
version('1.58.0', commit='32764c7691d9a72a301d50042a8844112887a1c8')
version('1.56.0', commit='13dfc558281af9a177d4d592c34cf7ace629af0e')
diff --git a/var/spack/repos/builtin/packages/r-affyqcreport/package.py b/var/spack/repos/builtin/packages/r-affyqcreport/package.py
index 17c7fa1661..526f7c2410 100644
--- a/var/spack/repos/builtin/packages/r-affyqcreport/package.py
+++ b/var/spack/repos/builtin/packages/r-affyqcreport/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAffyqcreport(RPackage):
- """QC Report Generation for affyBatch objects.
+ """QC Report Generation for affyBatch objects
This package creates a QC report for an AffyBatch object. The report is
intended to allow the user to quickly assess the quality of a set of
@@ -16,6 +16,7 @@ class RAffyqcreport(RPackage):
homepage = "https://bioconductor.org/packages/affyQCReport"
git = "https://git.bioconductor.org/packages/affyQCReport.git"
+ version('1.68.0', commit='34b42a16f87a90a595146f4a1802ed04f6bfccca')
version('1.62.0', commit='92d4124b688b90a6a9b8a21ab9d13d92b368cee4')
version('1.60.0', commit='d0c15b1c56fc1caf6f114877ea6c1b8483a0dcfa')
version('1.58.0', commit='14be93a1e7a6d1a64c38ed2f53e0c52a389b2a1b')
@@ -26,6 +27,7 @@ class RAffyqcreport(RPackage):
depends_on('r-affy', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-affyplm', type=('build', 'run'))
+ depends_on('r-biobase', when='@1.68.0:', type=('build', 'run'))
depends_on('r-genefilter', type=('build', 'run'))
depends_on('r-rcolorbrewer', type=('build', 'run'))
depends_on('r-simpleaffy', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-affyrnadegradation/package.py b/var/spack/repos/builtin/packages/r-affyrnadegradation/package.py
index f03e50594f..adb6649f9a 100644
--- a/var/spack/repos/builtin/packages/r-affyrnadegradation/package.py
+++ b/var/spack/repos/builtin/packages/r-affyrnadegradation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RAffyrnadegradation(RPackage):
"""Analyze and correct probe positional bias in microarray data due to RNA
- degradation.
+ degradation
The package helps with the assessment and correction of RNA degradation
effects in Affymetrix 3' expression arrays. The parameter d gives a
@@ -19,6 +19,7 @@ class RAffyrnadegradation(RPackage):
homepage = "https://bioconductor.org/packages/AffyRNADegradation"
git = "https://git.bioconductor.org/packages/AffyRNADegradation.git"
+ version('1.36.0', commit='89662b93076659db2967a526899184c12c156bc5')
version('1.30.0', commit='620c464fb09248e1c7a122828eab59a4fb778cc1')
version('1.28.0', commit='aff91d78fa9e76edaa3ef6a9a43b98b86cc44c24')
version('1.26.0', commit='6ab03ad624701464280bf7dfe345d200e846298a')
diff --git a/var/spack/repos/builtin/packages/r-agdex/package.py b/var/spack/repos/builtin/packages/r-agdex/package.py
index 03aea88d09..4c34d5e317 100644
--- a/var/spack/repos/builtin/packages/r-agdex/package.py
+++ b/var/spack/repos/builtin/packages/r-agdex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAgdex(RPackage):
- """Agreement of Differential Expression Analysis.
+ """Agreement of Differential Expression Analysis
A tool to evaluate agreement of differential expression for cross-
species genomics"""
@@ -15,6 +15,7 @@ class RAgdex(RPackage):
homepage = "https://bioconductor.org/packages/AGDEX"
git = "https://git.bioconductor.org/packages/AGDEX.git"
+ version('1.38.0', commit='7e2c1f5f27ccbea6a7157f5122212e40408b74da')
version('1.32.0', commit='254ad2c876ab9ac48c3c3b395160dccabc084acf')
version('1.30.0', commit='d6cc21ed7e11e6644399495fa5f8b36368625d4b')
version('1.28.0', commit='7d78ee424485018b73cd019ceaed7a2ed53adf3f')
diff --git a/var/spack/repos/builtin/packages/r-agilp/package.py b/var/spack/repos/builtin/packages/r-agilp/package.py
index fdc829b212..66527ad2bd 100644
--- a/var/spack/repos/builtin/packages/r-agilp/package.py
+++ b/var/spack/repos/builtin/packages/r-agilp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RAgilp(RPackage):
- """Agilent expression array processing package.
+ """Agilent expression array processing package
- More about what it does (maybe more than one line)"""
+ More about what it does (maybe more than one line)."""
homepage = "https://bioconductor.org/packages/agilp"
git = "https://git.bioconductor.org/packages/agilp.git"
+ version('3.22.0', commit='7d089d576752e0526f15a1007e94436089954313')
version('3.16.0', commit='2900d6066317f21d076b3a043b16f32eca168c47')
version('3.14.0', commit='8feb047d70216013462ea7806e9227d192b60c61')
version('3.12.0', commit='a86dea1b03b2b56c2c8317d4b10903fb8948ffcb')
diff --git a/var/spack/repos/builtin/packages/r-agimicrorna/package.py b/var/spack/repos/builtin/packages/r-agimicrorna/package.py
index 77444f68a3..01d44cc3d9 100644
--- a/var/spack/repos/builtin/packages/r-agimicrorna/package.py
+++ b/var/spack/repos/builtin/packages/r-agimicrorna/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,17 +8,21 @@ from spack import *
class RAgimicrorna(RPackage):
"""Processing and Differential Expression Analysis of Agilent microRNA
- chips."""
+ chips
+
+ Processing and Analysis of Agilent microRNA data."""
homepage = "https://bioconductor.org/packages/AgiMicroRna"
git = "https://git.bioconductor.org/packages/AgiMicroRna.git"
+ version('2.40.0', commit='cfa4acb2215da44767ab3a45845bcd587c309e74')
version('2.34.0', commit='aaa8cdd70ed2696c313f6240ffbfa044f0d97a7a')
version('2.32.0', commit='681ae17d07e8e533f798a607b761b71a31f407d8')
version('2.30.0', commit='99b5a8284cfe3e93c3ae85a2436e87101b9599dd')
version('2.28.0', commit='62c4a12f1168c7aa1ab46d2c97090ef71478328e')
version('2.26.0', commit='6dd74bae47986f2a23d03e3f1f9f78f701dd8053')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-limma', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-aims/package.py b/var/spack/repos/builtin/packages/r-aims/package.py
index 72bb4bc0b4..e80f9f710a 100644
--- a/var/spack/repos/builtin/packages/r-aims/package.py
+++ b/var/spack/repos/builtin/packages/r-aims/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAims(RPackage):
- """AIMS : Absolute Assignment of Breast Cancer Intrinsic Molecular Subtype.
+ """AIMS : Absolute Assignment of Breast Cancer Intrinsic Molecular Subtype
This package contains the AIMS implementation. It contains necessary
functions to assign the five intrinsic molecular subtypes (Luminal A,
@@ -18,6 +18,7 @@ class RAims(RPackage):
homepage = "https://bioconductor.org/packages/AIMS"
git = "https://git.bioconductor.org/packages/AIMS.git"
+ version('1.22.0', commit='34a38978b24377abb864eff7683bb36344ff171d')
version('1.16.0', commit='86cb8c998ade3003cd34a5405b218ae07d97bf84')
version('1.14.1', commit='4125c4217a7e4f00169b5ba65dcc3778fdd33c6f')
version('1.12.0', commit='d7eaa723d19a6aca37df244fd0b3d5426ed0a626')
diff --git a/var/spack/repos/builtin/packages/r-aldex2/package.py b/var/spack/repos/builtin/packages/r-aldex2/package.py
index 8b8d5635da..a930970424 100644
--- a/var/spack/repos/builtin/packages/r-aldex2/package.py
+++ b/var/spack/repos/builtin/packages/r-aldex2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAldex2(RPackage):
- """Analysis Of Differential Abundance Taking Sample Variation Into Account.
+ """Analysis Of Differential Abundance Taking Sample Variation Into Account
A differential abundance analysis for the comparison of two or more
conditions. Useful for analyzing data from standard RNA-seq or meta-RNA-
@@ -24,16 +24,17 @@ class RAldex2(RPackage):
homepage = "https://bioconductor.org/packages/ALDEx2"
git = "https://git.bioconductor.org/packages/ALDEx2.git"
+ version('1.22.0', commit='ac7f0ab3f094ec52713da7620a27058b14c7181d')
version('1.16.0', commit='bd698a896a5bea91187e3060e56a147bad1d586f')
version('1.14.1', commit='a8b970c594a00a37c064227bf312d5f89dccabe8')
version('1.12.0', commit='9efde428d22a0be1fe7b6655d45ddce8fcded180')
version('1.10.0', commit='e43f99e4009ad4d5ed200cc8a19faf7091c0c98a')
version('1.8.0', commit='24104824ca2402ad4f54fbf1ed9cee7fac2aaaf1')
- depends_on('r-s4vectors', type=('build', 'run'))
- depends_on('r-iranges', type=('build', 'run'))
+ depends_on('r-zcompositions', when='@1.22.0:', type=('build', 'run'))
+ depends_on('r-biocparallel', type=('build', 'run'))
depends_on('r-genomicranges', type=('build', 'run'))
+ depends_on('r-iranges', type=('build', 'run'))
+ depends_on('r-s4vectors', type=('build', 'run'))
depends_on('r-summarizedexperiment', type=('build', 'run'))
- depends_on('r-biocparallel', type=('build', 'run'))
-
depends_on('r-multtest', when='@1.10.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-allelicimbalance/package.py b/var/spack/repos/builtin/packages/r-allelicimbalance/package.py
index d90389605e..5d97d3081d 100644
--- a/var/spack/repos/builtin/packages/r-allelicimbalance/package.py
+++ b/var/spack/repos/builtin/packages/r-allelicimbalance/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAllelicimbalance(RPackage):
- """Investigates Allele Specific Expression.
+ """Investigates Allele Specific Expression
Provides a framework for allelic specific expression investigation using
RNA-seq data."""
@@ -15,6 +15,7 @@ class RAllelicimbalance(RPackage):
homepage = "https://bioconductor.org/packages/AllelicImbalance"
git = "https://git.bioconductor.org/packages/AllelicImbalance.git"
+ version('1.28.0', commit='ac5d13c9ee0935bf9500ee542792644e752a1fde')
version('1.22.0', commit='04692e367e8c6aac475d06adfd7cfa629baab05a')
version('1.20.0', commit='4cd3a789d872151b0d906ec419677271fecdf7c3')
version('1.18.0', commit='6d6eed7487e9207dba556bc76283bcc7745808ea')
@@ -22,18 +23,29 @@ class RAllelicimbalance(RPackage):
version('1.14.0', commit='35958534945819baafde0e13d1eb4d05a514142c')
depends_on('r@3.2.0:', type=('build', 'run'))
+ depends_on('r@4.0.0:', when='@1.28.0:', type=('build', 'run'))
depends_on('r-genomicranges', type=('build', 'run'))
+ depends_on('r-genomicranges@1.31.8:', when='@1.18.0:', type=('build', 'run'))
depends_on('r-summarizedexperiment@0.2.0:', type=('build', 'run'))
depends_on('r-genomicalignments', type=('build', 'run'))
+ depends_on('r-genomicalignments@1.15.6:', when='@1.18.0:', type=('build', 'run'))
depends_on('r-biocgenerics', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
depends_on('r-bsgenome', type=('build', 'run'))
+ depends_on('r-bsgenome@1.47.3:', when='@1.18.0:', type=('build', 'run'))
depends_on('r-variantannotation', type=('build', 'run'))
+ depends_on('r-variantannotation@1.25.11:', when='@1.18.0:', type=('build', 'run'))
depends_on('r-biostrings', type=('build', 'run'))
+ depends_on('r-biostrings@2.47.6:', when='@1.18.0:', type=('build', 'run'))
depends_on('r-s4vectors@0.9.25:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.25:', when='@1.18.0:', type=('build', 'run'))
depends_on('r-iranges', type=('build', 'run'))
+ depends_on('r-iranges@2.13.12:', when='@1.18.0:', type=('build', 'run'))
depends_on('r-rsamtools', type=('build', 'run'))
+ depends_on('r-rsamtools@1.31.2:', when='@1.18.0:', type=('build', 'run'))
+ depends_on('r-rsamtools@1.99.3:', when='@1.22.0:', type=('build', 'run'))
depends_on('r-genomicfeatures', type=('build', 'run'))
+ depends_on('r-genomicfeatures@1.31.3:', when='@1.18.0:', type=('build', 'run'))
depends_on('r-gviz', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-latticeextra', type=('build', 'run'))
@@ -41,15 +53,3 @@ class RAllelicimbalance(RPackage):
depends_on('r-seqinr', type=('build', 'run'))
depends_on('r-genomeinfodb', type=('build', 'run'))
depends_on('r-nlme', type=('build', 'run'))
-
- depends_on('r-genomicranges@1.31.8:', when='@1.18.0:', type=('build', 'run'))
- depends_on('r-genomicalignments@1.15.6:', when='@1.18.0:', type=('build', 'run'))
- depends_on('r-bsgenome@1.47.3:', when='@1.18.0:', type=('build', 'run'))
- depends_on('r-variantannotation@1.25.11:', when='@1.18.0:', type=('build', 'run'))
- depends_on('r-biostrings@2.47.6:', when='@1.18.0:', type=('build', 'run'))
- depends_on('r-s4vectors@0.17.25:', when='@1.18.0:', type=('build', 'run'))
- depends_on('r-iranges@2.13.12:', when='@1.18.0:', type=('build', 'run'))
- depends_on('r-rsamtools@1.31.2:', when='@1.18.0:', type=('build', 'run'))
- depends_on('r-genomicfeatures@1.31.3:', when='@1.18.0:', type=('build', 'run'))
-
- depends_on('r-rsamtools@1.99.3:', when='@1.22.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-alpine/package.py b/var/spack/repos/builtin/packages/r-alpine/package.py
index cf8a203975..2be92fe260 100644
--- a/var/spack/repos/builtin/packages/r-alpine/package.py
+++ b/var/spack/repos/builtin/packages/r-alpine/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAlpine(RPackage):
- """alpine.
+ """alpine
Fragment sequence bias modeling and correction for RNA-seq transcript
abundance estimation."""
@@ -15,6 +15,7 @@ class RAlpine(RPackage):
homepage = "https://bioconductor.org/packages/alpine"
git = "https://git.bioconductor.org/packages/alpine.git"
+ version('1.16.0', commit='aee397774ac6cd17ad45dc05be14c526647f3c13')
version('1.10.0', commit='bf22597eb2c6c6aaa26900ed4ece96ce7256e77c')
version('1.8.0', commit='ddaa0b4517f0909460aa1bd33c8e43dc6c8d23d4')
version('1.6.0', commit='ea55fcb3cedb5caa20d8264bb29a4975041f5274')
diff --git a/var/spack/repos/builtin/packages/r-als/package.py b/var/spack/repos/builtin/packages/r-als/package.py
index bf696f7123..76e3529ac0 100644
--- a/var/spack/repos/builtin/packages/r-als/package.py
+++ b/var/spack/repos/builtin/packages/r-als/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-alsace/package.py b/var/spack/repos/builtin/packages/r-alsace/package.py
index d039edd0f6..35c04521d1 100644
--- a/var/spack/repos/builtin/packages/r-alsace/package.py
+++ b/var/spack/repos/builtin/packages/r-alsace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAlsace(RPackage):
- """ALS for the Automatic Chemical Exploration of mixtures.
+ """ALS for the Automatic Chemical Exploration of mixtures
Alternating Least Squares (or Multivariate Curve Resolution) for
analytical chemical data, in particular hyphenated data where the first
@@ -19,6 +19,7 @@ class RAlsace(RPackage):
homepage = "https://bioconductor.org/packages/alsace"
git = "https://git.bioconductor.org/packages/alsace.git"
+ version('1.26.0', commit='40a76404acb1466723a78a55d87c67eec3e6f306')
version('1.20.0', commit='47f1cf8daafc864e5e3418009f349ce85d6b0389')
version('1.18.0', commit='c9fc43c7b441de43b14ef1be69926c4c4a566191')
version('1.16.0', commit='5a51a19aeccbba0123222201cb7a228559f29653')
diff --git a/var/spack/repos/builtin/packages/r-altcdfenvs/package.py b/var/spack/repos/builtin/packages/r-altcdfenvs/package.py
index d49a46bff3..0724e52243 100644
--- a/var/spack/repos/builtin/packages/r-altcdfenvs/package.py
+++ b/var/spack/repos/builtin/packages/r-altcdfenvs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RAltcdfenvs(RPackage):
- """alternative CDF environments (aka probeset mappings).
+ """alternative CDF environments (aka probeset mappings)
- Convenience data structures and functions to handle cdfenvs"""
+ Convenience data structures and functions to handle cdfenvs."""
homepage = "https://bioconductor.org/packages/altcdfenvs"
git = "https://git.bioconductor.org/packages/altcdfenvs.git"
+ version('2.52.0', commit='21329abf82eae26f84b7c0270e81c8e089c548ce')
version('2.46.0', commit='90a11e748a5af98cabfd6670a5b7b256420d172b')
version('2.44.0', commit='d804f6432422bd532abab415710f890b36cc8133')
version('2.42.0', commit='00ec6461877a063d938494b8ed0cd273a3b20b85')
diff --git a/var/spack/repos/builtin/packages/r-amap/package.py b/var/spack/repos/builtin/packages/r-amap/package.py
index cfc312a9e9..4c98db4345 100644
--- a/var/spack/repos/builtin/packages/r-amap/package.py
+++ b/var/spack/repos/builtin/packages/r-amap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RAmap(RPackage):
- """Tools for Clustering and Principal Component Analysis
- (With robust methods, and parallelized functions)."""
+ """Another Multidimensional Analysis Package
- homepage = "http://mulcyber.toulouse.inra.fr/projects/amap/"
+ Tools for Clustering and Principal Component Analysis (With robust methods,
+ and parallelized functions)."""
+
+ homepage = "https://cran.r-project.org/web/packages/amap/index.html"
url = "https://cloud.r-project.org/src/contrib/amap_0.8-16.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/amap/"
+ version('0.8-18', sha256='7afbbdd681a201121374821b733c9000ca1046a2353ee386507604c2c759ec7e')
version('0.8-17', sha256='6b8473d1d35a9cbc611661882c8f681162e8f913f911ccd51629200ae72289c6')
version('0.8-16', sha256='d3775ad7f660581f7d2f070e426be95ae0d6743622943e6f5491988e5217d4e2')
diff --git a/var/spack/repos/builtin/packages/r-amelia/package.py b/var/spack/repos/builtin/packages/r-amelia/package.py
new file mode 100644
index 0000000000..f8c08f4dc5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-amelia/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RAmelia(RPackage):
+ """Amelia: A Program for Missing Data
+
+ Amelia II "multiply imputes" missing data in a single
+ cross-section (such as a survey), from a time series (like
+ variables collected for each year in a country), or from a
+ time-series-cross-sectional data set (such as collected by
+ years for each of several countries)."""
+
+ homepage = "https://gking.harvard.edu/amelia"
+ url = "https://cloud.r-project.org/src/contrib/Amelia_1.7.6.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/Amelia"
+
+ version('1.7.6', sha256='63c08d374aaf78af46c34dc78da719b3085e58d9fabdc76c6460d5193a621bea')
+
+ depends_on('r@3.0.2:', type=('build', 'run'))
+ depends_on('r-rcpp@0.11:', type=('build', 'run'))
+ depends_on('r-foreign', type=('build', 'run'))
+ depends_on('r-rcpparmadillo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ampliqueso/package.py b/var/spack/repos/builtin/packages/r-ampliqueso/package.py
index 94292707b9..cbd5f7cf4a 100644
--- a/var/spack/repos/builtin/packages/r-ampliqueso/package.py
+++ b/var/spack/repos/builtin/packages/r-ampliqueso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,6 +21,7 @@ class RAmpliqueso(RPackage):
version('1.16.0', commit='25d2543ff9dedef4f966f999c95cdf87185d3bb3')
version('1.14.0', commit='9a4c26ec594171279aba8ab7fe59c4a2ea09b06b')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@2.15.0:', type=('build', 'run'))
depends_on('r-rnaseqmap@2.17.1:', type=('build', 'run'))
depends_on('r-knitr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-analysispageserver/package.py b/var/spack/repos/builtin/packages/r-analysispageserver/package.py
index d72e3c5a50..a2e425c447 100644
--- a/var/spack/repos/builtin/packages/r-analysispageserver/package.py
+++ b/var/spack/repos/builtin/packages/r-analysispageserver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-anaquin/package.py b/var/spack/repos/builtin/packages/r-anaquin/package.py
index 10a8e15160..ecd641d3cd 100644
--- a/var/spack/repos/builtin/packages/r-anaquin/package.py
+++ b/var/spack/repos/builtin/packages/r-anaquin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAnaquin(RPackage):
- """Statistical analysis of sequins.
+ """Statistical analysis of sequins
The project is intended to support the use of sequins (synthetic
sequencing spike-in controls) owned and made available by the Garvan
@@ -18,6 +18,7 @@ class RAnaquin(RPackage):
homepage = "https://bioconductor.org/packages/Anaquin"
git = "https://git.bioconductor.org/packages/Anaquin.git"
+ version('2.14.0', commit='d0a34c931a0e72080bff91dacb37dbbe26b45386')
version('2.8.0', commit='f591d420740b77881ae0a4c16b208c63d460c601')
version('2.6.1', commit='22b6c71697fe1e2db8f6d18f77728d0fd96fa6d6')
version('2.4.0', commit='0d6ae80ff622151a782e4774ca274f06024a71d2')
diff --git a/var/spack/repos/builtin/packages/r-aneufinder/package.py b/var/spack/repos/builtin/packages/r-aneufinder/package.py
index ece9dc0c9a..31894e53dc 100644
--- a/var/spack/repos/builtin/packages/r-aneufinder/package.py
+++ b/var/spack/repos/builtin/packages/r-aneufinder/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAneufinder(RPackage):
- """Analysis of Copy Number Variation in Single-Cell-Sequencing Data.
+ """Analysis of Copy Number Variation in Single-Cell-Sequencing Data
AneuFinder implements functions for copy-number detection, breakpoint
detection, and karyotype and heterogeneity analysis in single-cell whole
@@ -16,6 +16,7 @@ class RAneufinder(RPackage):
homepage = "https://bioconductor.org/packages/AneuFinder"
git = "https://git.bioconductor.org/packages/AneuFinder.git"
+ version('1.18.0', commit='76ec9af947f97212084ca478e8e82f9e0eb79de9')
version('1.12.1', commit='e788fd0c864f0bf0abd93df44c6d42f82eb37e0e')
version('1.10.2', commit='56578ae69abac93dfea6bcac1fc205b14b6ba9dd')
version('1.8.0', commit='36a729d244add5aafbe21c37a1baaea6a50354d3')
@@ -23,27 +24,26 @@ class RAneufinder(RPackage):
version('1.4.0', commit='e5bdf4d5e4f84ee5680986826ffed636ed853b8e')
depends_on('r@3.3:', type=('build', 'run'))
+ depends_on('r@3.5:', when='@1.10.2:', type=('build', 'run'))
depends_on('r-genomicranges', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
depends_on('r-cowplot', type=('build', 'run'))
depends_on('r-aneufinderdata', type=('build', 'run'))
depends_on('r-foreach', type=('build', 'run'))
depends_on('r-doparallel', type=('build', 'run'))
depends_on('r-biocgenerics', when='@1.4.0:1.6.0', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.31.6:', when='@1.18.0:', type=('build', 'run'))
depends_on('r-s4vectors', type=('build', 'run'))
depends_on('r-genomeinfodb', type=('build', 'run'))
depends_on('r-iranges', type=('build', 'run'))
depends_on('r-rsamtools', type=('build', 'run'))
depends_on('r-bamsignals', type=('build', 'run'))
depends_on('r-dnacopy', type=('build', 'run'))
+ depends_on('r-ecp', when='@1.8.0:', type=('build', 'run'))
depends_on('r-biostrings', type=('build', 'run'))
depends_on('r-genomicalignments', type=('build', 'run'))
- depends_on('r-ggplot2', type=('build', 'run'))
depends_on('r-reshape2', type=('build', 'run'))
depends_on('r-ggdendro', type=('build', 'run'))
depends_on('r-ggrepel', type=('build', 'run'))
depends_on('r-reordercluster', type=('build', 'run'))
depends_on('r-mclust', type=('build', 'run'))
-
- depends_on('r-ecp', when='@1.8.0:', type=('build', 'run'))
-
- depends_on('r@3.5:', when='@1.10.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-aneufinderdata/package.py b/var/spack/repos/builtin/packages/r-aneufinderdata/package.py
index 18d1ec2534..5189efaf29 100644
--- a/var/spack/repos/builtin/packages/r-aneufinderdata/package.py
+++ b/var/spack/repos/builtin/packages/r-aneufinderdata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAneufinderdata(RPackage):
- """WGSCS Data for Demonstration Purposes.
+ """WGSCS Data for Demonstration Purposes
Whole-genome single cell sequencing data for demonstration purposes in
the AneuFinder package."""
@@ -15,6 +15,7 @@ class RAneufinderdata(RPackage):
homepage = "https://bioconductor.org/packages/AneuFinderData"
git = "https://git.bioconductor.org/packages/AneuFinderData.git"
+ version('1.18.0', commit='1bf1657b28fc8c1425e611980a692da952ce3d1e')
version('1.12.0', commit='7350f38856b6278e07eca141f7f3cb24bc60c3a1')
version('1.10.0', commit='ef7fc27f9af4f178fa45a21aba30709e1ebde035')
version('1.8.0', commit='4f00f8d5f2e968fea667a7feafc0a4607d6e0c6e')
diff --git a/var/spack/repos/builtin/packages/r-animation/package.py b/var/spack/repos/builtin/packages/r-animation/package.py
index a60ad02998..6cc3e1bb4e 100644
--- a/var/spack/repos/builtin/packages/r-animation/package.py
+++ b/var/spack/repos/builtin/packages/r-animation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,6 +20,7 @@ class RAnimation(RPackage):
version('2.6', sha256='90293638920ac436e7e4de76ebfd92e1643ccdb0259b62128f16dd0b13245b0a')
version('2.5', sha256='b232fef1b318c79710e5e1923d87baba4c85ffe2c77ddb188130e0911d8cb55f')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@2.14:', type=('build', 'run'))
depends_on('r-magick', when='@2.6:', type=('build', 'run'))
depends_on('imagemagick')
diff --git a/var/spack/repos/builtin/packages/r-annaffy/package.py b/var/spack/repos/builtin/packages/r-annaffy/package.py
index 596be2a18f..964fbb3b9f 100644
--- a/var/spack/repos/builtin/packages/r-annaffy/package.py
+++ b/var/spack/repos/builtin/packages/r-annaffy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAnnaffy(RPackage):
- """Annotation tools for Affymetrix biological metadata.
+ """Annotation tools for Affymetrix biological metadata
Functions for handling data from Bioconductor Affymetrix annotation data
packages. Produces compact HTML and text reports including experimental
@@ -17,6 +17,7 @@ class RAnnaffy(RPackage):
homepage = "https://bioconductor.org/packages/annaffy"
git = "https://git.bioconductor.org/packages/annaffy.git"
+ version('1.62.0', commit='ad9c37e0e7e45e0f35c208ce528ba48000b37432')
version('1.56.0', commit='8c8e16aa0f3073880c39684fd8e554a052ec6233')
version('1.54.0', commit='e1b3bf10515255eb994cd8bdf85697ea728c3484')
version('1.52.0', commit='ef84030163045f702941c8d5a59fbd4a09f30e2c')
diff --git a/var/spack/repos/builtin/packages/r-annotate/package.py b/var/spack/repos/builtin/packages/r-annotate/package.py
index da58ce0c2a..6544684005 100644
--- a/var/spack/repos/builtin/packages/r-annotate/package.py
+++ b/var/spack/repos/builtin/packages/r-annotate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RAnnotate(RPackage):
- """Annotation for microarrays.
+ """Annotation for microarrays
Using R enviroments for annotation."""
homepage = "https://bioconductor.org/packages/annotate"
git = "https://git.bioconductor.org/packages/annotate.git"
+ version('1.68.0', commit='98cdb12c612b3f3fc06329a89a1ffb0a92b555c0')
version('1.62.0', commit='19af0b39747ea83fe8fe9b8bbb6036363bc815cd')
version('1.60.1', commit='9d8f87db02bf0c1593e79da754335a24d3a8ed16')
version('1.58.0', commit='d1b5dd5feb8793f4f816d9a4aecbebb5ec7df7bc')
@@ -27,4 +28,5 @@ class RAnnotate(RPackage):
depends_on('r-dbi', type=('build', 'run'))
depends_on('r-xtable', type=('build', 'run'))
depends_on('r-biocgenerics@0.13.8:', type=('build', 'run'))
- depends_on('r-rcurl', type=('build', 'run'))
+ depends_on('r-httr', when='@1.68.0:', type=('build', 'run'))
+ depends_on('r-rcurl', when='@:1.62.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-annotationdbi/package.py b/var/spack/repos/builtin/packages/r-annotationdbi/package.py
index 8ffc832848..61a9fa9669 100644
--- a/var/spack/repos/builtin/packages/r-annotationdbi/package.py
+++ b/var/spack/repos/builtin/packages/r-annotationdbi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAnnotationdbi(RPackage):
- """Manipulation of SQLite-based annotations in Bioconductor.
+ """Manipulation of SQLite-based annotations in Bioconductor
Implements a user-friendly interface for querying SQLite-based
annotation data packages."""
@@ -15,6 +15,7 @@ class RAnnotationdbi(RPackage):
homepage = "https://bioconductor.org/packages/AnnotationDbi"
git = "https://git.bioconductor.org/packages/AnnotationDbi.git"
+ version('1.52.0', commit='c4e0ca9bd65362ae9cad6a98d90f54267b0ae838')
version('1.46.1', commit='ff260913741d0fcf9487eeb1f44a6c6968ced5b9')
version('1.44.0', commit='ce191b08cfd612d014431325c26c91b11c5f13ac')
version('1.42.1', commit='71085b47ea2e1ef929bebe8b17eb8e8a573f98e3')
@@ -23,12 +24,10 @@ class RAnnotationdbi(RPackage):
depends_on('r@2.7.0:', type=('build', 'run'))
depends_on('r-biocgenerics@0.15.10:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.23.1:', when='@1.40.0:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.29.2:', when='@1.46.1:', type=('build', 'run'))
depends_on('r-biobase@1.17.0:', type=('build', 'run'))
depends_on('r-iranges', type=('build', 'run'))
depends_on('r-dbi', type=('build', 'run'))
depends_on('r-rsqlite', type=('build', 'run'))
depends_on('r-s4vectors@0.9.25:', type=('build', 'run'))
-
- depends_on('r-biocgenerics@0.23.1:', when='@1.40.0:', type=('build', 'run'))
-
- depends_on('r-biocgenerics@0.29.2:', when='@1.46.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-annotationfilter/package.py b/var/spack/repos/builtin/packages/r-annotationfilter/package.py
index 2705074a7a..ba5ae683ad 100644
--- a/var/spack/repos/builtin/packages/r-annotationfilter/package.py
+++ b/var/spack/repos/builtin/packages/r-annotationfilter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAnnotationfilter(RPackage):
- """Facilities for Filtering Bioconductor Annotation Resources.
+ """Facilities for Filtering Bioconductor Annotation Resources
This package provides class and other infrastructure to implement
filters for manipulating Bioconductor annotation resources. The filters
@@ -16,6 +16,7 @@ class RAnnotationfilter(RPackage):
homepage = "https://bioconductor.org/packages/AnnotationFilter"
git = "https://git.bioconductor.org/packages/AnnotationFilter.git"
+ version('1.14.0', commit='6ee3a13ed93a535ed452cbc8c118151a2cbb732c')
version('1.8.0', commit='9bf70ead899e32e84e2908f2b29cd38250d2d1ed')
version('1.6.0', commit='fa40a7e17e93fac9e85091ff93f256adf145dec3')
version('1.4.0', commit='acbd3309f478843a7899bd9773af5f19f986b829')
diff --git a/var/spack/repos/builtin/packages/r-annotationforge/package.py b/var/spack/repos/builtin/packages/r-annotationforge/package.py
index cffa1d1dbd..6840dedf8f 100644
--- a/var/spack/repos/builtin/packages/r-annotationforge/package.py
+++ b/var/spack/repos/builtin/packages/r-annotationforge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAnnotationforge(RPackage):
- """Tools for building SQLite-based annotation data packages.
+ """Tools for building SQLite-based annotation data packages
Provides code for generating Annotation packages and their databases.
Packages produced are intended to be used with AnnotationDbi."""
@@ -15,6 +15,7 @@ class RAnnotationforge(RPackage):
homepage = "https://bioconductor.org/packages/AnnotationForge"
git = "https://git.bioconductor.org/packages/AnnotationForge.git"
+ version('1.32.0', commit='3d17c2a945951c02fe152e5a8a8e9c6cb41e30f7')
version('1.26.0', commit='5d181f32df1fff6446af64a2538a7d25c23fe46e')
version('1.24.0', commit='3e1fe863573e5b0f69f35a9ad6aebce11ef83d0d')
version('1.22.2', commit='8eafb1690c1c02f6291ccbb38ac633d54b8217f8')
diff --git a/var/spack/repos/builtin/packages/r-annotationhub/package.py b/var/spack/repos/builtin/packages/r-annotationhub/package.py
index 4437ec2c14..457d541d06 100644
--- a/var/spack/repos/builtin/packages/r-annotationhub/package.py
+++ b/var/spack/repos/builtin/packages/r-annotationhub/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RAnnotationhub(RPackage):
- """Client to access AnnotationHub resources.
+ """Client to access AnnotationHub resources
This package provides a client for the Bioconductor AnnotationHub web
resource. The AnnotationHub web resource provides a central location
@@ -21,6 +21,7 @@ class RAnnotationhub(RPackage):
homepage = "https://bioconductor.org/packages/AnnotationHub"
git = "https://git.bioconductor.org/packages/AnnotationHub.git"
+ version('2.22.0', commit='3ab7dceebbc31ac14ca931f66c662cf9538b7d0a')
version('2.16.1', commit='f8cefaae603b782e1c1ad277a3fb89d44e3aa1ed')
version('2.14.5', commit='993a98ce3de04a0bbddcbde5b1ab2a9550275a12')
version('2.12.1', commit='471407bd9cdc612e01deb071c91bd9e5f1ea5e55')
@@ -28,18 +29,16 @@ class RAnnotationhub(RPackage):
version('2.8.3', commit='8aa9c64262a8d708d2bf1c82f82dfc3d7d4ccc0c')
depends_on('r-biocgenerics@0.15.10:', type=('build', 'run'))
+ depends_on('r-biocfilecache@1.5.1:', when='@2.16.1:', type=('build', 'run'))
depends_on('r-rsqlite', type=('build', 'run'))
- depends_on('r-biocinstaller', type=('build', 'run'))
+ depends_on('r-biocmanager', when='@2.14.5:', type=('build', 'run'))
+ depends_on('r-biocversion', when='@2.22.0:', type=('build', 'run'))
+ depends_on('r-curl', when='@2.10.1:', type=('build', 'run'))
+ depends_on('r-rappdirs', when='@2.16.1:', type=('build', 'run'))
depends_on('r-annotationdbi@1.31.19:', type=('build', 'run'))
depends_on('r-s4vectors', type=('build', 'run'))
depends_on('r-interactivedisplaybase', type=('build', 'run'))
depends_on('r-httr', type=('build', 'run'))
depends_on('r-yaml', type=('build', 'run'))
-
- depends_on('r-curl', when='@2.10.1:', type=('build', 'run'))
-
- depends_on('r-biocmanager', when='@2.14.5:', type=('build', 'run'))
-
- depends_on('r-biocfilecache@1.5.1:', when='@2.16.1:', type=('build', 'run'))
- depends_on('r-rappdirs', when='@2.16.1:', type=('build', 'run'))
depends_on('r-dplyr', when='@2.16.1:', type=('build', 'run'))
+ depends_on('r-biocinstaller', when='@:2.16.1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-anytime/package.py b/var/spack/repos/builtin/packages/r-anytime/package.py
new file mode 100644
index 0000000000..e452285f95
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-anytime/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RAnytime(RPackage):
+ """Anything to 'POSIXct' or 'Date' Converter
+
+ Convert input in any one of character, integer, numeric,
+ factor, or ordered type into 'POSIXct' (or 'Date') objects,
+ using one of a number of predefined formats, and relying on
+ Boost facilities for date and time parsing."""
+
+ homepage = "https://dirk.eddelbuettel.com/code/anytime.html"
+ url = "https://cloud.r-project.org/src/contrib/anytime_0.3.9.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/anytime"
+
+ version('0.3.9', sha256='1096c15249ac70997a8a41c37eeb2a6d38530621abeae05d3dcd96a8acc7574a')
+
+ depends_on('r@3.2.0:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.9:', type=('build', 'run'))
+ depends_on('r-bh', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-aod/package.py b/var/spack/repos/builtin/packages/r-aod/package.py
index f221cf661d..e344f49432 100644
--- a/var/spack/repos/builtin/packages/r-aod/package.py
+++ b/var/spack/repos/builtin/packages/r-aod/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ape/package.py b/var/spack/repos/builtin/packages/r-ape/package.py
index b67a872986..896f1745e7 100644
--- a/var/spack/repos/builtin/packages/r-ape/package.py
+++ b/var/spack/repos/builtin/packages/r-ape/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RApe(RPackage):
- """Functions for reading, writing, plotting, and manipulating phylogenetic
+ """Analyses of Phylogenetics and Evolution
+
+ Functions for reading, writing, plotting, and manipulating phylogenetic
trees, analyses of comparative data in a phylogenetic framework, ancestral
character analyses, analyses of diversification and macroevolution,
computing distances from DNA sequences, reading and writing nucleotide
@@ -27,6 +29,7 @@ class RApe(RPackage):
url = "https://cloud.r-project.org/src/contrib/ape_4.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ape"
+ version('5.4-1', sha256='f0316c8e74ce900053e8b3e8c9322b9d10e7730f3be2150365f74630bee7eee4')
version('5.3', sha256='08b0df134c523feb00a86896d1aa2a43f0f0dab20a53bc6b5d6268d867988b23')
version('5.2', sha256='27eb02856c130d59de6e06276be4981709923756319e465a7f2d4756d4f46415')
version('5.1', sha256='b7d5dca66881638227a40aa59533904aa5efe0f4b867851b248e8f948a01a26e')
diff --git a/var/spack/repos/builtin/packages/r-argparse/package.py b/var/spack/repos/builtin/packages/r-argparse/package.py
index bfd15a6c08..da88eb8a8b 100644
--- a/var/spack/repos/builtin/packages/r-argparse/package.py
+++ b/var/spack/repos/builtin/packages/r-argparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class RArgparse(RPackage):
- """A command line parser to be used with Rscript to write "#!"
- shebang scripts that gracefully accept positional and optional
- arguments and automatically generate usage."""
+ """Command Line Optional and Positional Argument Parser
+
+ A command line parser to be used with Rscript to write "#!" shebang scripts
+ that gracefully accept positional and optional arguments and automatically
+ generate usage."""
homepage = "https://github.com/trevorld/argparse"
url = "https://cloud.r-project.org/src/contrib/argparse_1.1.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/argparse"
+ version('2.0.3', sha256='d26139c610ea0adf8d6632699cd34c4595ae3e7963bfc7a00cb3b7504f2059b0')
version('2.0.1', sha256='949843920d14fc7c162aedab331a936499541736e7dafbb103fbfd79be8147ab')
version('1.1.1', sha256='441449f0816411a868fd1b15cf4b2bc45931bbd4b67d6592dbe48875905cf93b')
@@ -23,3 +26,4 @@ class RArgparse(RPackage):
depends_on('r-r6', when='@2.0.0:', type=('build', 'run'))
depends_on('r-findpython', type=('build', 'run'))
depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('python@3.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-aroma-light/package.py b/var/spack/repos/builtin/packages/r-aroma-light/package.py
index a704ac72b4..00be416162 100644
--- a/var/spack/repos/builtin/packages/r-aroma-light/package.py
+++ b/var/spack/repos/builtin/packages/r-aroma-light/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,23 @@ from spack import *
class RAromaLight(RPackage):
- """Methods for microarray analysis that take basic data types such as
+ """Light-Weight Methods for Normalization and Visualization of Microarray
+ Data using Only Basic R Data Types
+
+ Methods for microarray analysis that take basic data types such as
matrices and lists of vectors. These methods can be used standalone, be
utilized in other packages, or be wrapped up in higher-level classes."""
homepage = "https://www.aroma-project.org/"
git = "https://git.bioconductor.org/packages/aroma.light"
+ version('3.20.0', commit='02cde7fa166259bce73c396a87dca2ecc8249c39')
version('3.16.0', commit='fc16179fc4bee8954c5415d7cd13e3112b75b4fd')
depends_on('r@2.15.2:', type=('build', 'run'))
depends_on('r-r-methodss3@1.7.1:', type=('build', 'run'))
depends_on('r-r-oo@1.22.0:', type=('build', 'run'))
+ depends_on('r-r-oo@1.23.0:', when='@3.20.0:', type=('build', 'run'))
depends_on('r-r-utils@2.9.0:', type=('build', 'run'))
depends_on('r-matrixstats@0.54.0:', type=('build', 'run'))
+ depends_on('r-matrixstats@0.55.0:', when='@3.20.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-askpass/package.py b/var/spack/repos/builtin/packages/r-askpass/package.py
index c87c23cc68..8e6d22243b 100644
--- a/var/spack/repos/builtin/packages/r-askpass/package.py
+++ b/var/spack/repos/builtin/packages/r-askpass/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-assertive-base/package.py b/var/spack/repos/builtin/packages/r-assertive-base/package.py
new file mode 100644
index 0000000000..89290be035
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-base/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RAssertiveBase(RPackage):
+ """assertive.base: A Lightweight Core of the 'assertive' Package
+
+ A minimal set of predicates and assertions used by the assertive package.
+ This is mainly for use by other package developers who want to include run-time
+ testing features in their own packages. End-users will usually want to use
+ assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.base"
+ url = "https://cloud.r-project.org/src/contrib/assertive.base_0.0-7.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.base"
+
+ version('0.0-7', sha256='f02d4eca849f512500abb266a2a751d1fa2cf064f7142e5161a77c20b7f643f7')
+ version('0.0-1', sha256='6a5fb06ad912f01cd8aaf2aa7c8ca03b8ebbb1c5eb2be47fa145930f15f4d258')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-code/package.py b/var/spack/repos/builtin/packages/r-assertive-code/package.py
new file mode 100644
index 0000000000..050f41d1cf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-code/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RAssertiveCode(RPackage):
+ """assertive.code: Assertions to Check Properties of Code
+
+ A set of predicates and assertions for checking the
+ properties of code. This is mainly for use by other package
+ developers who want to include run-time testing features in
+ their own packages. End-users will usually want to use
+ assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.code"
+ url = "https://cloud.r-project.org/src/contrib/assertive.code_0.0-3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.code"
+
+ version('0.0-3', sha256='ef80e8d1d683d776a7618e78ddccffca7f72ab4a0fcead90c670bb8f8cb90be2')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-2:', type=('build', 'run'))
+ depends_on('r-assertive-properties', type=('build', 'run'))
+ depends_on('r-assertive-types', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-data-uk/package.py b/var/spack/repos/builtin/packages/r-assertive-data-uk/package.py
new file mode 100644
index 0000000000..36c9a34700
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-data-uk/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RAssertiveDataUk(RPackage):
+ """assertive.data.uk: Assertions to Check Properties of Strings
+
+ A set of predicates and assertions for checking the
+ properties of UK-specific complex data types. This is
+ mainly for use by other package developers who want to
+ include run-time testing features in their own packages.
+ End-users will usually want to use assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.data.uk"
+ url = "https://cloud.r-project.org/src/contrib/assertive.data.uk_0.0-2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.data.uk"
+
+ version('0.0-2', sha256='ab48dab6977e8f43d6fffb33228d158865f68dde7026d123c693d77339dcf2bb')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-2:', type=('build', 'run'))
+ depends_on('r-assertive-strings', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-data-us/package.py b/var/spack/repos/builtin/packages/r-assertive-data-us/package.py
new file mode 100644
index 0000000000..b5b00f8363
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-data-us/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RAssertiveDataUs(RPackage):
+ """assertive.data.us: Assertions to Check Properties of Strings
+
+ A set of predicates and assertions for checking the
+ properties of US-specific complex data types. This is
+ mainly for use by other package developers who want to
+ include run-time testing features in their own packages.
+ End-users will usually want to use assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.data.us"
+ url = "https://cloud.r-project.org/src/contrib/assertive.data.us_0.0-2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.data.us"
+
+ version('0.0-2', sha256='180e64dfe6339d25dd27d7fe9e77619ef697ef6e5bb6a3cf4fb732a681bdfaad')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-2:', type=('build', 'run'))
+ depends_on('r-assertive-strings', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-data/package.py b/var/spack/repos/builtin/packages/r-assertive-data/package.py
new file mode 100644
index 0000000000..47479eefe2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-data/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RAssertiveData(RPackage):
+ """assertive.data: Assertions to Check Properties of Data
+
+ A set of predicates and assertions for checking the
+ properties of (country independent) complex data types.
+ This is mainly for use by other package developers who want
+ to include run-time testing features in their own packages.
+ End-users will usually want to use assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.data"
+ url = "https://cloud.r-project.org/src/contrib/assertive.data_0.0-3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.data"
+
+ version('0.0-3', sha256='5a00fb48ad870d9b3c872ce3d6aa20a7948687a980f49fe945b455339e789b01')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-2:', type=('build', 'run'))
+ depends_on('r-assertive-strings', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-datetimes/package.py b/var/spack/repos/builtin/packages/r-assertive-datetimes/package.py
new file mode 100644
index 0000000000..b02060640a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-datetimes/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RAssertiveDatetimes(RPackage):
+ """assertive.datetimes: Assertions to Check Properties of Dates and Times
+
+ A set of predicates and assertions for checking the properties of
+ dates and times. This is mainly for use by other package developers
+ who want to include run-time testing features in their own packages.
+ End-users will usually want to use assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.datetimes"
+ url = "https://cloud.r-project.org/src/contrib/assertive.datetimes_0.0-3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.datetimes"
+
+ version('0.0-3', sha256='014e2162f5a8d95138ed8330f7477e71c908a29341697c09a1b7198b7e012d94')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-7:', type=('build', 'run'))
+ depends_on('r-assertive-types', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-files/package.py b/var/spack/repos/builtin/packages/r-assertive-files/package.py
new file mode 100644
index 0000000000..4bc9727306
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-files/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RAssertiveFiles(RPackage):
+ """assertive.files: Assertions to Check Properties of Files
+
+ A set of predicates and assertions for checking the
+ properties of files and connections. This is mainly for use
+ by other package developers who want to include run-time
+ testing features in their own packages. End-users will
+ usually want to use assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.files"
+ url = "https://cloud.r-project.org/src/contrib/assertive.files_0.0-2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.files"
+
+ version('0.0-2', sha256='be6adda6f18a0427449249e44c2deff4444a123244b16fe82c92f15d24faee0a')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-2:', type=('build', 'run'))
+ depends_on('r-assertive-numbers', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-matrices/package.py b/var/spack/repos/builtin/packages/r-assertive-matrices/package.py
new file mode 100644
index 0000000000..bf2e83fb45
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-matrices/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RAssertiveMatrices(RPackage):
+ """assertive.matrices: Assertions to Check Properties of
+ Matrices
+
+ A set of predicates and assertions for checking the
+ properties of matrices. This is mainly for use by other
+ package developers who want to include run-time testing
+ features in their own packages. End-users will usually want
+ to use assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.matrices"
+ url = "https://cloud.r-project.org/src/contrib/assertive.matrices_0.0-2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.matrices"
+
+ version('0.0-2', sha256='3462a7a7e11d7cc24180330d48cc3067cf92eab1699b3e4813deec66d99f5e9b')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-models/package.py b/var/spack/repos/builtin/packages/r-assertive-models/package.py
new file mode 100644
index 0000000000..4d8722e54f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-models/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RAssertiveModels(RPackage):
+ """assertive.models: Assertions to Check Properties of Models
+
+ A set of predicates and assertions for checking the
+ properties of models. This is mainly for use by other
+ package developers who want to include run-time testing
+ features in their own packages. End-users will usually want
+ to use assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.models"
+ url = "https://cloud.r-project.org/src/contrib/assertive.models_0.0-2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.models"
+
+ version('0.0-2', sha256='b9a6d8786f352d53371dbe8c5f2f2a62a7866e30313f268e69626d5c3691c42e')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-numbers/package.py b/var/spack/repos/builtin/packages/r-assertive-numbers/package.py
new file mode 100644
index 0000000000..7374d83f0b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-numbers/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RAssertiveNumbers(RPackage):
+ """assertive.numbers: Assertions to Check Properties of Numbers
+
+ A set of predicates and assertions for checking the
+ properties of numbers. This is mainly for use by other
+ package developers who want to include run-time testing
+ features in their own packages. End-users will usually want
+ to use assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.numbers"
+ url = "https://cloud.r-project.org/src/contrib/assertive.numbers_0.0-2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.numbers"
+
+ version('0.0-2', sha256='bae18c0b9e5b960a20636e127eb738ecd8a266e5fc29d8bc5ca712498cd68349')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-properties/package.py b/var/spack/repos/builtin/packages/r-assertive-properties/package.py
new file mode 100644
index 0000000000..d297feb5e5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-properties/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RAssertiveProperties(RPackage):
+ """assertive.properties: Assertions to Check Properties of
+ Variables
+
+ A set of predicates and assertions for checking the
+ properties of variables, such as length, names and
+ attributes. This is mainly for use by other package
+ developers who want to include run-time testing features in
+ their own packages. End-users will usually want to use
+ assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.properties"
+ url = "https://cloud.r-project.org/src/contrib/assertive.properties_0.0-4.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.properties"
+
+ version('0.0-4', sha256='5c0663fecb4b7c30f2e1d65da8644534fcfe97fb3d8b51f74c1327cd14291a6b')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-7:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-reflection/package.py b/var/spack/repos/builtin/packages/r-assertive-reflection/package.py
new file mode 100644
index 0000000000..af84a126e2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-reflection/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RAssertiveReflection(RPackage):
+ """assertive.reflection: Assertions for Checking the State of R
+
+ A set of predicates and assertions for checking the state
+ and capabilities of R, the operating system it is running
+ on, and the IDE being used. This is mainly for use by other
+ package developers who want to include run-time testing
+ features in their own packages. End-users will usually want
+ to use assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.reflection"
+ url = "https://cloud.r-project.org/src/contrib/assertive.reflection_0.0-5.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.reflection"
+
+ version('0.0-5', sha256='c2ca9b27cdddb9b9876351afd2ebfaf0fbe72c636cd12aa2af5d64e33fbf34bd')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-7:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-sets/package.py b/var/spack/repos/builtin/packages/r-assertive-sets/package.py
new file mode 100644
index 0000000000..3433831c0a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-sets/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RAssertiveSets(RPackage):
+ """assertive.sets: Assertions to Check Properties of Sets
+
+ A set of predicates and assertions for checking the
+ properties of sets. This is mainly for use by other package
+ developers who want to include run-time testing features in
+ their own packages. End-users will usually want to use
+ assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.sets"
+ url = "https://cloud.r-project.org/src/contrib/assertive.sets_0.0-3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.sets"
+
+ version('0.0-3', sha256='876975a16ed911ea1ad12da284111c6eada6abfc0118585033abc0edb5801bb3')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-7:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-strings/package.py b/var/spack/repos/builtin/packages/r-assertive-strings/package.py
new file mode 100644
index 0000000000..c964dcfee8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-strings/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RAssertiveStrings(RPackage):
+ """assertive.strings: Assertions to Check Properties of Strings
+
+ A set of predicates and assertions for checking the
+ properties of strings. This is mainly for use by other
+ package developers who want to include run-time testing
+ features in their own packages. End-users will usually want
+ to use assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.strings"
+ url = "https://cloud.r-project.org/src/contrib/assertive.strings_0.0-3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.strings"
+
+ version('0.0-3', sha256='d541d608a01640347d661cc9a67af8202904142031a20caa270f1c83d0ccd258')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-2:', type=('build', 'run'))
+ depends_on('r-assertive-types', type=('build', 'run'))
+ depends_on('r-stringi', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive-types/package.py b/var/spack/repos/builtin/packages/r-assertive-types/package.py
new file mode 100644
index 0000000000..51bda36381
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive-types/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RAssertiveTypes(RPackage):
+ """assertive.types: Assertions to Check Types of Variables
+
+ A set of predicates and assertions for checking the types
+ of variables. This is mainly for use by other package
+ developers who want to include run-time testing features in
+ their own packages. End-users will usually want to use
+ assertive directly."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive.types"
+ url = "https://cloud.r-project.org/src/contrib/assertive.types_0.0-3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive.types"
+
+ version('0.0-3', sha256='ab6db2eb926e7bc885f2043fab679330aa336d07755375282d89bf9f9d0cb87f')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-7:', type=('build', 'run'))
+ depends_on('r-assertive-properties', type=('build', 'run'))
+ depends_on('r-codetools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertive/package.py b/var/spack/repos/builtin/packages/r-assertive/package.py
new file mode 100644
index 0000000000..4468526d76
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-assertive/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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 RAssertive(RPackage):
+ """assertive: Readable Check Functions to Ensure Code Integrity
+
+ Lots of predicates (is_* functions) to check the state of your
+ variables, and assertions (assert_* functions) to throw errors if
+ they aren't in the right form."""
+
+ homepage = "https://bitbucket.org/richierocks/assertive"
+ url = "https://cloud.r-project.org/src/contrib/assertive_0.3-6.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/assertive"
+
+ version('0.3-6', sha256='c403169e83c433b65e911f7fd640b378e2a4a4765a36063584b8458168a4ea0a')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-assertive-base@0.0-4:', type=('build', 'run'))
+ depends_on('r-assertive-properties@0.0-2:', type=('build', 'run'))
+ depends_on('r-assertive-types@0.0-2:', type=('build', 'run'))
+ depends_on('r-assertive-numbers', type=('build', 'run'))
+ depends_on('r-assertive-strings', type=('build', 'run'))
+ depends_on('r-assertive-datetimes', type=('build', 'run'))
+ depends_on('r-assertive-files', type=('build', 'run'))
+ depends_on('r-assertive-sets@0.0-2:', type=('build', 'run'))
+ depends_on('r-assertive-matrices', type=('build', 'run'))
+ depends_on('r-assertive-models', type=('build', 'run'))
+ depends_on('r-assertive-data', type=('build', 'run'))
+ depends_on('r-assertive-data-uk', type=('build', 'run'))
+ depends_on('r-assertive-data-us', type=('build', 'run'))
+ depends_on('r-assertive-reflection@0.0-2:', type=('build', 'run'))
+ depends_on('r-assertive-code', type=('build', 'run'))
+ depends_on('r-knitr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-assertthat/package.py b/var/spack/repos/builtin/packages/r-assertthat/package.py
index d0c0f6a829..ce599c0cad 100644
--- a/var/spack/repos/builtin/packages/r-assertthat/package.py
+++ b/var/spack/repos/builtin/packages/r-assertthat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-backports/package.py b/var/spack/repos/builtin/packages/r-backports/package.py
index c715bafc1e..1d9c9de415 100644
--- a/var/spack/repos/builtin/packages/r-backports/package.py
+++ b/var/spack/repos/builtin/packages/r-backports/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,20 @@ from spack import *
class RBackports(RPackage):
- """Implementations of functions which have been introduced
- in R since version 3.0.0. The backports are conditionally
- exported which results in R resolving the function names to
- the version shipped with R (if available) and uses the
- implemented backports as fallback. This way package developers
- can make use of the new functions without worrying about the
- minimum required R version."""
+ """Reimplementations of Functions Introduced Since R-3.0.0
+
+ Functions introduced or changed since R v3.0.0 are re-implemented in this
+ package. The backports are conditionally exported in order to let R resolve
+ the function name to either the implemented backport, or the respective
+ base version, if available. Package developers can make use of new
+ functions or arguments by selectively importing specific backports to
+ support older installations."""
homepage = "https://cloud.r-project.org/package=backports"
url = "https://cloud.r-project.org/src/contrib/backports_1.1.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/backports"
+ version('1.2.1', sha256='a2834bbd57e305e5d8010322f1906ea1789b3b5ba5eca77c5ff4248aceb7c2d5')
version('1.1.4', sha256='ee4b5efef22fa7ef27d7983ffcd31db52f81e1fbb7189c6e89ee09b69349ff03')
version('1.1.3', sha256='e41bd146824ec921994f1b176d0e4cca0b36dd3db32ca7a954d872a5ba214cc1')
version('1.1.1', sha256='494e81a4829339c8f1cc3e015daa807e9138b8e21b929965fc7c00b1abbe8897')
diff --git a/var/spack/repos/builtin/packages/r-bamsignals/package.py b/var/spack/repos/builtin/packages/r-bamsignals/package.py
index 59d8dceae2..5deebb1697 100644
--- a/var/spack/repos/builtin/packages/r-bamsignals/package.py
+++ b/var/spack/repos/builtin/packages/r-bamsignals/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBamsignals(RPackage):
- """Extract read count signals from bam files.
+ """Extract read count signals from bam files
This package allows to efficiently obtain count vectors from indexed bam
files. It counts the number of reads in given genomic ranges and it
@@ -17,6 +17,7 @@ class RBamsignals(RPackage):
homepage = "https://bioconductor.org/packages/bamsignals"
git = "https://git.bioconductor.org/packages/bamsignals.git"
+ version('1.22.0', commit='5f533969c84212406bcb3ebf725ebb6d77e9947a')
version('1.16.0', commit='dba9a4ae1613d2700f122ade1e9b90ca8fce5657')
version('1.14.0', commit='3107d3a35830e879eeddf127a81016ea1ca9b53d')
version('1.12.1', commit='06b6282df377cf9db58e8016be4ac8ddcc960939')
@@ -30,7 +31,9 @@ class RBamsignals(RPackage):
depends_on('r-genomicranges', type=('build', 'run'))
depends_on('r-zlibbioc', type=('build', 'run'))
depends_on('r-rhtslib', type=('build', 'run'))
-
depends_on('r-rhtslib@1.12.1:', when='@1.12.1:', type=('build', 'run'))
-
depends_on('r-rhtslib@1.13.1:', when='@1.14.0:', type=('build', 'run'))
+ depends_on('gmake', type='build')
+
+ # this is no listed but is needed
+ depends_on('curl')
diff --git a/var/spack/repos/builtin/packages/r-base64/package.py b/var/spack/repos/builtin/packages/r-base64/package.py
index eb72a27388..7a8c6041aa 100644
--- a/var/spack/repos/builtin/packages/r-base64/package.py
+++ b/var/spack/repos/builtin/packages/r-base64/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-base64enc/package.py b/var/spack/repos/builtin/packages/r-base64enc/package.py
index 3e49d856d8..494e3e54ff 100644
--- a/var/spack/repos/builtin/packages/r-base64enc/package.py
+++ b/var/spack/repos/builtin/packages/r-base64enc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class RBase64enc(RPackage):
"""This package provides tools for handling base64 encoding. It is more
flexible than the orphaned base64 package."""
- homepage = "http://www.rforge.net/base64enc"
+ homepage = "https://www.rforge.net/base64enc"
url = "https://cloud.r-project.org/src/contrib/base64enc_0.1-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/base64enc"
diff --git a/var/spack/repos/builtin/packages/r-bayesm/package.py b/var/spack/repos/builtin/packages/r-bayesm/package.py
index dd2d009f4a..ac7d1de5a4 100644
--- a/var/spack/repos/builtin/packages/r-bayesm/package.py
+++ b/var/spack/repos/builtin/packages/r-bayesm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,33 @@ from spack import *
class RBayesm(RPackage):
- """Bayesian Inference for Marketing/Micro-Econometrics"""
+ """Bayesian Inference for Marketing/Micro-Econometrics
+
+ Covers many important models used in marketing and micro-econometrics
+ applications. The package includes: Bayes Regression (univariate or
+ multivariate dep var), Bayes Seemingly Unrelated Regression (SUR), Binary
+ and Ordinal Probit, Multinomial Logit (MNL) and Multinomial Probit (MNP),
+ Multivariate Probit, Negative Binomial (Poisson) Regression, Multivariate
+ Mixtures of Normals (including clustering), Dirichlet Process Prior Density
+ Estimation with normal base, Hierarchical Linear Models with normal prior
+ and covariates, Hierarchical Linear Models with a mixture of normals prior
+ and covariates, Hierarchical Multinomial Logits with a mixture of normals
+ prior and covariates, Hierarchical Multinomial Logits with a Dirichlet
+ Process prior and covariates, Hierarchical Negative Binomial Regression
+ Models, Bayesian analysis of choice-based conjoint data, Bayesian treatment
+ of linear instrumental variables models, Analysis of Multivariate Ordinal
+ survey data with scale usage heterogeneity (as in Rossi et al, JASA (01)),
+ Bayesian Analysis of Aggregate Random Coefficient Logit Models as in BLP
+ (see Jiang, Manchanda, Rossi 2009) For further reference, consult our book,
+ Bayesian Statistics and Marketing by Rossi, Allenby and McCulloch (Wiley
+ 2005) and Bayesian Non- and Semi-Parametric Methods and Applications
+ (Princeton U Press 2014)."""
homepage = "https://cloud.r-project.org/package=bayesm"
url = "https://cloud.r-project.org/src/contrib/bayesm_3.1-0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/bayesm"
+ version('3.1-4', sha256='061b216c62bc72eab8d646ad4075f2f78823f9913344a781fa53ea7cf4a48f94')
version('3.1-3', sha256='51e4827eca8cd4cf3626f3c2282543df7c392b3ffb843f4bfb386fe104642a10')
version('3.1-2', sha256='a332f16e998ab10b17a2b1b9838d61660c36e914fe4d2e388a59f031d52ad736')
version('3.1-1', sha256='4854517dec30ab7c994de862aae1998c2d0c5e71265fd9eb7ed36891d4676078')
diff --git a/var/spack/repos/builtin/packages/r-bayesplot/package.py b/var/spack/repos/builtin/packages/r-bayesplot/package.py
new file mode 100644
index 0000000000..1bc82a2a83
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-bayesplot/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2021 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 RBayesplot(RPackage):
+ """Plotting for Bayesian Models:
+
+ Plotting functions for posterior analysis, MCMC diagnostics, prior and
+ posterior predictive checks, and other visualizations to support the
+ applied Bayesian workflow advocated in Gabry, Simpson, Vehtari, Betancourt,
+ and Gelman (2019) <doi:10.1111/rssa.12378>. The package is designed not
+ only to provide convenient functionality for users, but also a common set
+ of functions that can be easily used by developers working on a variety of
+ R packages for Bayesian modeling, particularly (but not exclusively)
+ packages interfacing with 'Stan'."""
+
+ homepage = "https://mc-stan.org/bayesplot/"
+ cran = "bayesplot"
+
+ version('1.8.0', sha256='a605f9929e681593a3ef3ca9c836e713314994aaea00f359f71cfc42d151c948')
+
+ depends_on('r@3.1.0:', type=('build', 'run'))
+ depends_on('r-dplyr@0.8.0:', type=('build', 'run'))
+ depends_on('r-ggplot2@3.0.0:', type=('build', 'run'))
+ depends_on('r-ggridges', type=('build', 'run'))
+ depends_on('r-glue', type=('build', 'run'))
+ depends_on('r-reshape2', type=('build', 'run'))
+ depends_on('r-rlang@0.3.0:', type=('build', 'run'))
+ depends_on('r-tibble', type=('build', 'run'))
+ depends_on('r-tidyselect', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-bbmisc/package.py b/var/spack/repos/builtin/packages/r-bbmisc/package.py
index 6bc0688330..885cee7e6b 100644
--- a/var/spack/repos/builtin/packages/r-bbmisc/package.py
+++ b/var/spack/repos/builtin/packages/r-bbmisc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-beachmat/package.py b/var/spack/repos/builtin/packages/r-beachmat/package.py
index 9ba18d7592..2008fd0b69 100644
--- a/var/spack/repos/builtin/packages/r-beachmat/package.py
+++ b/var/spack/repos/builtin/packages/r-beachmat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBeachmat(RPackage):
- """Compiling Bioconductor to Handle Each Matrix Type.
+ """Compiling Bioconductor to Handle Each Matrix Type
Provides a consistent C++ class interface for reading from and writing
data to a variety of commonly used matrix types. Ordinary matrices and
@@ -18,23 +18,24 @@ class RBeachmat(RPackage):
homepage = "https://bioconductor.org/packages/beachmat"
git = "https://git.bioconductor.org/packages/beachmat.git"
+ version('2.6.4', commit='7d9dc6379017d723dda3e8dc9fd1f6de7fd33cdb')
version('2.0.0', commit='2bdac6ce7b636fd16f78641a0bcc2181670107ab')
version('1.4.0', commit='e3b7a21cae0080d077a0d40e35d1d148f088720a')
version('1.2.1', commit='ebae81772045a314e568c2f7d73ea3b27e7bf7d8')
version('1.0.2', commit='6bd57b91d6428ac916f46572d685d3cb01a757f7')
depends_on('r@3.4:', type=('build', 'run'))
- depends_on('r-rhdf5lib', when='@1.0.2:1.4.0', type=('build', 'run'))
- depends_on('r-hdf5array', when='@1.0.2:1.4.0', type=('build', 'run'))
- depends_on('r-delayedarray', type=('build', 'run'))
- depends_on('r-rcpp@0.12.14:', when='@1.0.2:1.4.0', type=('build', 'run'))
- depends_on('r-rhdf5', when='@1.0.2:1.4.0', type=('build', 'run'))
-
depends_on('r@3.5:', when='@1.2.1:1.4.0', type=('build', 'run'))
- depends_on('r-rhdf5lib@1.1.4:', when='@1.2.1', type=('build', 'run'))
- depends_on('r-hdf5array@1.7.3:', when='@1.2.1', type=('build', 'run'))
+ depends_on('r-delayedarray', type=('build', 'run'))
depends_on('r-delayedarray@0.5.30:', when='@1.2.1', type=('build', 'run'))
-
- depends_on('r-hdf5array@1.9.5:', when='@1.4.0', type=('build', 'run'))
depends_on('r-delayedarray@0.7.38:', when='@1.4.0', type=('build', 'run'))
+ depends_on('r-delayedarray@0.15.14:', when='@2.6.4', type=('build', 'run'))
depends_on('r-biocgenerics', when='@1.4.0:', type=('build', 'run'))
+ depends_on('r-matrix', when='@2.6.4:', type=('build', 'run'))
+ depends_on('r-rhdf5lib', when='@1.0.2:1.4.0', type=('build', 'run'))
+ depends_on('r-rhdf5lib@1.1.4:', when='@1.2.1', type=('build', 'run'))
+ depends_on('r-hdf5array', when='@1.0.2:1.4.0', type=('build', 'run'))
+ depends_on('r-hdf5array@1.7.3:', when='@1.2.1', type=('build', 'run'))
+ depends_on('r-hdf5array@1.9.5:', when='@1.4.0', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.14:', when='@1.0.2:1.4.0', type=('build', 'run'))
+ depends_on('r-rhdf5', when='@1.0.2:1.4.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-beanplot/package.py b/var/spack/repos/builtin/packages/r-beanplot/package.py
index 1edacea4a0..06faf068e9 100644
--- a/var/spack/repos/builtin/packages/r-beanplot/package.py
+++ b/var/spack/repos/builtin/packages/r-beanplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-beeswarm/package.py b/var/spack/repos/builtin/packages/r-beeswarm/package.py
index 4b4821e0fa..37bc2ba755 100644
--- a/var/spack/repos/builtin/packages/r-beeswarm/package.py
+++ b/var/spack/repos/builtin/packages/r-beeswarm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class RBeeswarm(RPackage):
"""beeswarm: The Bee Swarm Plot, an Alternative to Stripchart"""
- homepage = "http://www.cbs.dtu.dk/~eklund/beeswarm/"
+ homepage = "https://www.cbs.dtu.dk/~eklund/beeswarm/"
url = "https://cloud.r-project.org/src/contrib/beeswarm_0.2.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/beeswarm"
diff --git a/var/spack/repos/builtin/packages/r-bfast/package.py b/var/spack/repos/builtin/packages/r-bfast/package.py
index f2250effb7..7b71cd4aca 100644
--- a/var/spack/repos/builtin/packages/r-bfast/package.py
+++ b/var/spack/repos/builtin/packages/r-bfast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-bfastspatial/package.py b/var/spack/repos/builtin/packages/r-bfastspatial/package.py
index 82b751da7a..5ce11f3120 100644
--- a/var/spack/repos/builtin/packages/r-bfastspatial/package.py
+++ b/var/spack/repos/builtin/packages/r-bfastspatial/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-bglr/package.py b/var/spack/repos/builtin/packages/r-bglr/package.py
index 267e18d959..2d24967fb4 100644
--- a/var/spack/repos/builtin/packages/r-bglr/package.py
+++ b/var/spack/repos/builtin/packages/r-bglr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-bh/package.py b/var/spack/repos/builtin/packages/r-bh/package.py
index 6065f5609f..9c3e58a69e 100644
--- a/var/spack/repos/builtin/packages/r-bh/package.py
+++ b/var/spack/repos/builtin/packages/r-bh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,6 +26,7 @@ class RBh(RPackage):
url = "https://cloud.r-project.org/src/contrib/BH_1.65.0-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/BH"
+ version('1.72.0-3', sha256='888ec1a3316bb69e1ba749b08ba7e0903ebc4742e3a185de8d148c13cddac8ab')
version('1.69.0-1', sha256='a0fd4364b7e368f09c56dec030823f52c16da0787580af7e4615eddeb99baca2')
version('1.65.0-1', sha256='82baa78afe8f1edc3c7e84e1c9924321047e14c1e990df9b848407baf3f7cb58')
version('1.60.0-2', sha256='e441aede925d760dc0142be77079ebd7a46f2392772b875cde6ca567dd49c48c')
diff --git a/var/spack/repos/builtin/packages/r-biasedurn/package.py b/var/spack/repos/builtin/packages/r-biasedurn/package.py
index 8defc86345..1bcf808069 100644
--- a/var/spack/repos/builtin/packages/r-biasedurn/package.py
+++ b/var/spack/repos/builtin/packages/r-biasedurn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class RBiasedurn(RPackage):
hypergeometric distribution). See vignette("UrnTheory") for
explanation of these distributions."""
- homepage = "http://www.agner.org/random/"
+ homepage = "https://www.agner.org/random/"
url = "https://cloud.r-project.org/src/contrib/BiasedUrn_1.07.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/BiasedUrn/"
diff --git a/var/spack/repos/builtin/packages/r-bibtex/package.py b/var/spack/repos/builtin/packages/r-bibtex/package.py
index 840aa5b06c..70ee681a0c 100644
--- a/var/spack/repos/builtin/packages/r-bibtex/package.py
+++ b/var/spack/repos/builtin/packages/r-bibtex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBibtex(RPackage):
- """bibtex: Bibtex Parser
+ """Bibtex Parser
Utility to parse a bibtex file."""
@@ -15,6 +15,7 @@ class RBibtex(RPackage):
url = "https://cloud.r-project.org/src/contrib/bibtex_0.4.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/bibtex/"
+ version('0.4.2.3', sha256='7bad194920b412781ac9754ad41058d52d3cd7186e1851c2bce3640490e9bc6d')
version('0.4.2', sha256='1f06ab3660c940405230ad16ff6e4ba38d4418a59cd9b16d78a4349f8b488372')
depends_on('r@3.0.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-bigalgebra/package.py b/var/spack/repos/builtin/packages/r-bigalgebra/package.py
index fdee29e59b..8febbcb0b2 100644
--- a/var/spack/repos/builtin/packages/r-bigalgebra/package.py
+++ b/var/spack/repos/builtin/packages/r-bigalgebra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-bigmemory-sri/package.py b/var/spack/repos/builtin/packages/r-bigmemory-sri/package.py
index c03333ab6a..a14d433d27 100644
--- a/var/spack/repos/builtin/packages/r-bigmemory-sri/package.py
+++ b/var/spack/repos/builtin/packages/r-bigmemory-sri/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-bigmemory/package.py b/var/spack/repos/builtin/packages/r-bigmemory/package.py
index 1719cd3ad7..2618520329 100644
--- a/var/spack/repos/builtin/packages/r-bigmemory/package.py
+++ b/var/spack/repos/builtin/packages/r-bigmemory/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-bindr/package.py b/var/spack/repos/builtin/packages/r-bindr/package.py
index bdb58185b7..83f37760e5 100644
--- a/var/spack/repos/builtin/packages/r-bindr/package.py
+++ b/var/spack/repos/builtin/packages/r-bindr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-bindrcpp/package.py b/var/spack/repos/builtin/packages/r-bindrcpp/package.py
index 68347869ad..422a5a274a 100644
--- a/var/spack/repos/builtin/packages/r-bindrcpp/package.py
+++ b/var/spack/repos/builtin/packages/r-bindrcpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-bio3d/package.py b/var/spack/repos/builtin/packages/r-bio3d/package.py
index b65ab46afe..e62bcd2733 100644
--- a/var/spack/repos/builtin/packages/r-bio3d/package.py
+++ b/var/spack/repos/builtin/packages/r-bio3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,26 @@ from spack import *
class RBio3d(RPackage):
- """bio3d: Biological Structure Analysis"""
+ """Biological Structure Analysis
+
+ Utilities to process, organize and explore protein structure, sequence and
+ dynamics data. Features include the ability to read and write structure,
+ sequence and dynamic trajectory data, perform sequence and structure
+ database searches, data summaries, atom selection, alignment,
+ superposition, rigid core identification, clustering, torsion analysis,
+ distance matrix analysis, structure and sequence conservation analysis,
+ normal mode analysis, principal component analysis of heterogeneous
+ structure data, and correlation network analysis from normal mode and
+ molecular dynamics data. In addition, various utility functions are
+ provided to enable the statistical and graphical power of the R environment
+ to work with biological sequence and structural data. Please refer to the
+ URLs below for more information."""
homepage = "http://thegrantlab.org/bio3d/"
url = "https://cloud.r-project.org/src/contrib/bio3d_2.3-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/bio3d"
+ version('2.4-1', sha256='679fbd87fe9fb82a65427d281d3b68906509e411270cd87d2deb95d404333c1f')
version('2.3-4', sha256='f9b39ab242cbedafcd98c1732cb1f5c0dd9ef66e28be39695e3420dd93e2bafe')
depends_on('r@3.1.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biobase/package.py b/var/spack/repos/builtin/packages/r-biobase/package.py
index 5481b80cdf..c359050afb 100644
--- a/var/spack/repos/builtin/packages/r-biobase/package.py
+++ b/var/spack/repos/builtin/packages/r-biobase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBiobase(RPackage):
- """Biobase: Base functions for Bioconductor.
+ """Biobase: Base functions for Bioconductor
Functions that are needed by many other packages or which replace R
functions."""
@@ -15,6 +15,7 @@ class RBiobase(RPackage):
homepage = "https://bioconductor.org/packages/Biobase"
git = "https://git.bioconductor.org/packages/Biobase.git"
+ version('2.50.0', commit='9927f90d0676382f2f99e099d8d2c8e2e6f1b4de')
version('2.44.0', commit='bde2077f66047986297ec35a688751cdce150dd3')
version('2.42.0', commit='3e5bd466b99e3cc4af1b0c3b32687fa56d6f8e4d')
version('2.40.0', commit='6555edbbcb8a04185ef402bfdea7ed8ac72513a5')
@@ -23,5 +24,4 @@ class RBiobase(RPackage):
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-biocgenerics@0.3.2:', type=('build', 'run'))
-
depends_on('r-biocgenerics@0.27.1:', when='@2.42.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biocfilecache/package.py b/var/spack/repos/builtin/packages/r-biocfilecache/package.py
index 378532e558..4bcdcf7023 100644
--- a/var/spack/repos/builtin/packages/r-biocfilecache/package.py
+++ b/var/spack/repos/builtin/packages/r-biocfilecache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBiocfilecache(RPackage):
- """Manage Files Across Sessions.
+ """Manage Files Across Sessions
This package creates a persistent on-disk cache of files that the user
can add, update, and retrieve. It is useful for managing resources (such
@@ -17,6 +17,7 @@ class RBiocfilecache(RPackage):
homepage = "https://bioconductor.org/packages/BiocFileCache"
git = "https://git.bioconductor.org/packages/BiocFileCache.git"
+ version('1.14.0', commit='cdcde4b59ae73dda12aa225948dbd0a058d9be6d')
version('1.8.0', commit='0e3542b6aae849b01240d8055a48da1b267bd5a0')
version('1.6.0', commit='c2de6c1cdef6294e5d0adea31e4ebf25865742ba')
version('1.4.0', commit='a2c473d17f78899c7899b9638faea8c30735eb80')
@@ -24,11 +25,10 @@ class RBiocfilecache(RPackage):
version('1.0.1', commit='dbf4e8dd4d8d9f475066cd033481efe95c56df75')
depends_on('r@3.4.0:', type=('build', 'run'))
- depends_on('r-dbplyr@1.0.0:', type=('build', 'run'))
depends_on('r-dplyr', type=('build', 'run'))
+ depends_on('r-dbplyr@1.0.0:', when='@1.2.3:', type=('build', 'run'))
depends_on('r-rsqlite', type=('build', 'run'))
depends_on('r-dbi', type=('build', 'run'))
depends_on('r-rappdirs', type=('build', 'run'))
- depends_on('r-httr', type=('build', 'run'))
-
depends_on('r-curl', when='@1.6.0:', type=('build', 'run'))
+ depends_on('r-httr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biocgenerics/package.py b/var/spack/repos/builtin/packages/r-biocgenerics/package.py
index 2bee149fb8..6558fb633c 100644
--- a/var/spack/repos/builtin/packages/r-biocgenerics/package.py
+++ b/var/spack/repos/builtin/packages/r-biocgenerics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RBiocgenerics(RPackage):
- """S4 generic functions used in Bioconductor.
+ """S4 generic functions used in Bioconductor
The package defines S4 generic functions used in Bioconductor."""
homepage = "https://bioconductor.org/packages/BiocGenerics"
git = "https://git.bioconductor.org/packages/BiocGenerics.git"
+ version('0.36.0', commit='0d5d169d7d64d648a22f9043837c93bc784e71ed')
version('0.34.0', commit='f7c2020')
version('0.30.0', commit='fc7c3af4a5635a30988a062ed09332c13ca1d1a8')
version('0.28.0', commit='041fc496504f2ab1d4d863fffb23372db214394b')
@@ -22,3 +23,4 @@ class RBiocgenerics(RPackage):
version('0.22.1', commit='9c90bb8926885289d596a81ff318ee3745cbb6ad')
depends_on('r@3.6.0:', when='@0.30.0:', type=('build', 'run'))
+ depends_on('r@4.0.0:', when='@0.36.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biocinstaller/package.py b/var/spack/repos/builtin/packages/r-biocinstaller/package.py
index 09d942279f..9f2fddbcd1 100644
--- a/var/spack/repos/builtin/packages/r-biocinstaller/package.py
+++ b/var/spack/repos/builtin/packages/r-biocinstaller/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-biocmanager/package.py b/var/spack/repos/builtin/packages/r-biocmanager/package.py
index d31929e914..fab2479c8a 100644
--- a/var/spack/repos/builtin/packages/r-biocmanager/package.py
+++ b/var/spack/repos/builtin/packages/r-biocmanager/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-biocneighbors/package.py b/var/spack/repos/builtin/packages/r-biocneighbors/package.py
index dd2d8619fe..50cbf21970 100644
--- a/var/spack/repos/builtin/packages/r-biocneighbors/package.py
+++ b/var/spack/repos/builtin/packages/r-biocneighbors/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBiocneighbors(RPackage):
- """Nearest Neighbor Detection for Bioconductor Packages.
+ """Nearest Neighbor Detection for Bioconductor Packages
Implements exact and approximate methods for nearest neighbor detection,
in a framework that allows them to be easily switched within
@@ -22,14 +22,15 @@ class RBiocneighbors(RPackage):
homepage = "https://bioconductor.org/packages/BiocNeighbors"
git = "https://git.bioconductor.org/packages/BiocNeighbors.git"
+ version('1.8.2', commit='889bc91f8cb45d210b47ae5c0b9cfb86fb071ca2')
version('1.2.0', commit='f754c6300f835142536a4594ddf750481e0fe273')
version('1.0.0', commit='e252fc04b6d22097f2c5f74406e77d85e7060770')
depends_on('r@3.5:', when='@1.0.0', type=('build', 'run'))
- depends_on('r-biocparallel', type=('build', 'run'))
depends_on('r-rcpp', type=('build', 'run'))
depends_on('r-s4vectors', type=('build', 'run'))
- depends_on('r-rcppannoy', type=('build', 'run'))
-
- depends_on('r-biocgenerics', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-biocparallel', type=('build', 'run'))
+ depends_on('r-matrix', when='@1.8.2:', type=('build', 'run'))
depends_on('r-rcpphnsw', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-rcppannoy', when='@:1.2.0', type=('build', 'run'))
+ depends_on('r-biocgenerics', when='@1.2.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biocparallel/package.py b/var/spack/repos/builtin/packages/r-biocparallel/package.py
index 14fd27a8b5..b1849c5420 100644
--- a/var/spack/repos/builtin/packages/r-biocparallel/package.py
+++ b/var/spack/repos/builtin/packages/r-biocparallel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBiocparallel(RPackage):
- """Bioconductor facilities for parallel evaluation.
+ """Bioconductor facilities for parallel evaluation
This package provides modified versions and novel implementation of
functions for parallel evaluation, tailored to use with Bioconductor
@@ -16,6 +16,7 @@ class RBiocparallel(RPackage):
homepage = "https://bioconductor.org/packages/BiocParallel"
git = "https://git.bioconductor.org/packages/BiocParallel.git"
+ version('1.24.1', commit='f713caa4314ec0ddeba7fe0eb599ad417efb413f')
version('1.18.1', commit='348264af782d7dcd41a1879400f348f836767f6e')
version('1.16.6', commit='7f7a54c47f4949b600b9fd568289a519496bc4d4')
version('1.14.2', commit='1d5a44960b19e9dbbca04c7290c8c58b0a7fc299')
@@ -24,5 +25,4 @@ class RBiocparallel(RPackage):
depends_on('r-futile-logger', type=('build', 'run'))
depends_on('r-snow', type=('build', 'run'))
-
depends_on('r-bh', when='@1.12.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biocsingular/package.py b/var/spack/repos/builtin/packages/r-biocsingular/package.py
index 5531981958..355aab3563 100644
--- a/var/spack/repos/builtin/packages/r-biocsingular/package.py
+++ b/var/spack/repos/builtin/packages/r-biocsingular/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBiocsingular(RPackage):
- """Singular Value Decomposition for Bioconductor Packages.
+ """Singular Value Decomposition for Bioconductor Packages
Implements exact and approximate methods for singular value
decomposition and principal components analysis, in a framework that
@@ -18,6 +18,7 @@ class RBiocsingular(RPackage):
homepage = "https://bioconductor.org/packages/BiocSingular"
git = "https://git.bioconductor.org/packages/BiocSingular.git"
+ version('1.6.0', commit='11baf1080d6f791439cd5d97357589d6451643d9')
version('1.0.0', commit='d2b091c072d0312698c9bb6611eb1bdf8aebf833')
depends_on('r-biocgenerics', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biocstyle/package.py b/var/spack/repos/builtin/packages/r-biocstyle/package.py
index b9ec8c5fe0..a2f0988910 100644
--- a/var/spack/repos/builtin/packages/r-biocstyle/package.py
+++ b/var/spack/repos/builtin/packages/r-biocstyle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBiocstyle(RPackage):
- """Standard styles for vignettes and other Bioconductor documents.
+ """Standard styles for vignettes and other Bioconductor documents
Provides standard formatting styles for Bioconductor PDF and HTML
documents. Package vignettes illustrate use and functionality."""
@@ -15,15 +15,17 @@ class RBiocstyle(RPackage):
homepage = "https://bioconductor.org/packages/BiocStyle"
git = "https://git.bioconductor.org/packages/BiocStyle.git"
+ version('2.18.1', commit='956f0654e8e18882ba09305742401128c9c7d47d')
version('2.12.0', commit='0fba3fe6e6a38504f9aadcd3dc95bb83d7e92498')
version('2.10.0', commit='8fc946044c6b6a8a3104ddbc546baed49ee3aa70')
version('2.8.2', commit='3210c19ec1e5e0ed8d5a2d31da990aa47b42dbd8')
version('2.6.1', commit='5ff52cbb439a45575d0f58c4f7a83195a8b7337b')
version('2.4.1', commit='ef10764b68ac23a3a7a8ec3b6a6436187309c138')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r-bookdown', type=('build', 'run'))
depends_on('r-knitr@1.12:', type=('build', 'run'))
+ depends_on('r-knitr@1.30:', when='@2.18.1:', type=('build', 'run'))
depends_on('r-rmarkdown@1.2:', type=('build', 'run'))
depends_on('r-yaml', type=('build', 'run'))
-
depends_on('r-biocmanager', when='@2.10.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biocversion/package.py b/var/spack/repos/builtin/packages/r-biocversion/package.py
new file mode 100644
index 0000000000..4d021a161f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-biocversion/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 RBiocversion(RPackage):
+ """Set the appropriate version of Bioconductor packages
+
+ This package provides repository information for the appropriate
+ version of Bioconductor."""
+
+ homepage = "https://bioconductor.org/packages/BiocVersion/"
+ git = "https://git.bioconductor.org/packages/BiocVersion"
+
+ version('3.12.0', commit='23b971963c6b73550a7e330dab5a046d58ce0223')
+
+ depends_on('r@4.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biom-utils/package.py b/var/spack/repos/builtin/packages/r-biom-utils/package.py
index bd57636a67..5cf396e03f 100644
--- a/var/spack/repos/builtin/packages/r-biom-utils/package.py
+++ b/var/spack/repos/builtin/packages/r-biom-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RBiomUtils(RPackage):
"""Provides utilities to facilitate import, export and computation with
- the BIOM (Biological Observation Matrix) format (http://biom-format.org).
+ the BIOM (Biological Observation Matrix) format (https://biom-format.org/).
"""
homepage = "https://github.com/braithwaite/BIOM.utils/"
diff --git a/var/spack/repos/builtin/packages/r-biomart/package.py b/var/spack/repos/builtin/packages/r-biomart/package.py
index 6e24a66a41..d1c4387288 100644
--- a/var/spack/repos/builtin/packages/r-biomart/package.py
+++ b/var/spack/repos/builtin/packages/r-biomart/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBiomart(RPackage):
- """Interface to BioMart databases (i.e. Ensembl).
+ """Interface to BioMart databases (i.e. Ensembl)
In recent years a wealth of biological data has become available in
public data repositories. Easy access to these valuable data resources
@@ -25,6 +25,7 @@ class RBiomart(RPackage):
homepage = "https://bioconductor.org/packages/biomaRt"
git = "https://git.bioconductor.org/packages/biomaRt.git"
+ version('2.46.2', commit='90d6abfdfa04259006f7b47efb10271ada76aec1')
version('2.40.5', commit='ed9ddafb0d620168ea8e3ab4884f3457b8525c68')
version('2.38.0', commit='16b997aba19a90a1c5fa64c442b1e7fcff99a658')
version('2.36.1', commit='5634e57e20199f9dc1f8b927eb3893143fc02f4f')
@@ -32,9 +33,12 @@ class RBiomart(RPackage):
version('2.32.1', commit='f84d74424fa599f6d08f8db4612ca09914a9087f')
depends_on('r-xml', type=('build', 'run'))
- depends_on('r-rcurl', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
-
depends_on('r-progress', when='@2.34.2:', type=('build', 'run'))
depends_on('r-stringr', when='@2.34.2:', type=('build', 'run'))
depends_on('r-httr', when='@2.34.2:', type=('build', 'run'))
+ depends_on('r-openssl', when='@2.46.2:', type=('build', 'run'))
+ depends_on('r-biocfilecache', when='@2.46.2:', type=('build', 'run'))
+ depends_on('r-rappdirs', when='@2.46.2:', type=('build', 'run'))
+ depends_on('r-xml2', when='@2.46.2:', type=('build', 'run'))
+ depends_on('r-rcurl', when='@:2.40.5', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biomartr/package.py b/var/spack/repos/builtin/packages/r-biomartr/package.py
index 6cb63e979c..7d67c10230 100644
--- a/var/spack/repos/builtin/packages/r-biomartr/package.py
+++ b/var/spack/repos/builtin/packages/r-biomartr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-biomformat/package.py b/var/spack/repos/builtin/packages/r-biomformat/package.py
index 8c3d9a7d63..ba8a137e81 100644
--- a/var/spack/repos/builtin/packages/r-biomformat/package.py
+++ b/var/spack/repos/builtin/packages/r-biomformat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBiomformat(RPackage):
- """An interface package for the BIOM file format.
+ """An interface package for the BIOM file format
This is an R package for interfacing with the BIOM format. This package
includes basic tools for reading biom-format files, accessing and
@@ -22,6 +22,7 @@ class RBiomformat(RPackage):
homepage = "https://bioconductor.org/packages/biomformat"
git = "https://git.bioconductor.org/packages/biomformat.git"
+ version('1.18.0', commit='dc18859c139f4d76805adb6f01e199573cdd5a8b')
version('1.12.0', commit='6e946123bb59da262cbb0c17dc5ab49328a89d4a')
version('1.10.1', commit='e67c6f4b70201f748fa49a4938e1af0cd0613f09')
version('1.8.0', commit='acd207377b24e4d8310eaff06c16dcfe6c04509a')
diff --git a/var/spack/repos/builtin/packages/r-biostrings/package.py b/var/spack/repos/builtin/packages/r-biostrings/package.py
index a0bd89cfe0..7ae78acdc4 100644
--- a/var/spack/repos/builtin/packages/r-biostrings/package.py
+++ b/var/spack/repos/builtin/packages/r-biostrings/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBiostrings(RPackage):
- """Efficient manipulation of biological strings.
+ """Efficient manipulation of biological strings
Memory efficient string containers, string matching algorithms, and
other utilities, for fast manipulation of large biological sequences or
@@ -16,6 +16,7 @@ class RBiostrings(RPackage):
homepage = "https://bioconductor.org/packages/Biostrings"
git = "https://git.bioconductor.org/packages/Biostrings.git"
+ version('2.58.0', commit='0ec1a5455d5e9eebd14b26228906bb04e2abb197')
version('2.52.0', commit='b78fe7c1f3cdbbb7affb1ca7164fe5a1f8b868f5')
version('2.50.2', commit='025e734641a93f6c5d44243297cb4264ea0e34a2')
version('2.48.0', commit='aa3599a7d259d658014d087b86d71ab1deb5f12b')
@@ -23,18 +24,19 @@ class RBiostrings(RPackage):
version('2.44.2', commit='e4a2b320fb21c5cab3ece7b3c6fecaedfb1e5200')
depends_on('r@2.8.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@2.50.2:', type=('build', 'run'))
depends_on('r-biocgenerics@0.15.6:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.31.5:', when='@2.58.0:', type=('build', 'run'))
depends_on('r-s4vectors@0.13.13:', type=('build', 'run'))
- depends_on('r-iranges@2.9.18:', when='@2.44.2:2.46.0', type=('build', 'run'))
- depends_on('r-xvector@0.11.6:', type=('build', 'run'))
-
depends_on('r-s4vectors@0.17.25:', when='@2.48.0:', type=('build', 'run'))
- depends_on('r-iranges@2.13.24:', when='@2.48.0', type=('build', 'run'))
+ depends_on('r-s4vectors@0.21.13:', when='@2.52.0:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.27.12:', when='@2.58.0:', type=('build', 'run'))
+ depends_on('r-iranges@2.9.18:', when='@2.44.2:', type=('build', 'run'))
+ depends_on('r-iranges@2.13.24:', when='@2.48.0:', type=('build', 'run'))
+ depends_on('r-iranges@2.23.9:', when='@2.58.0:', type=('build', 'run'))
+ depends_on('r-xvector@0.11.6:', type=('build', 'run'))
depends_on('r-xvector@0.19.8:', when='@2.48.0:', type=('build', 'run'))
-
- depends_on('r@3.5.0:', when='@2.50.2:', type=('build', 'run'))
depends_on('r-xvector@0.21.4:', when='@2.50.2:', type=('build', 'run'))
- depends_on('r-iranges', when='@2.50.2:', type=('build', 'run'))
-
- depends_on('r-s4vectors@0.21.13:', when='@2.52.0:', type=('build', 'run'))
depends_on('r-xvector@0.23.2:', when='@2.52.0:', type=('build', 'run'))
+ depends_on('r-xvector@0.29.2:', when='@2.58.0:', type=('build', 'run'))
+ depends_on('r-crayon', when='@2.58.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-biovizbase/package.py b/var/spack/repos/builtin/packages/r-biovizbase/package.py
index 61ba92c203..0f0dbad6e0 100644
--- a/var/spack/repos/builtin/packages/r-biovizbase/package.py
+++ b/var/spack/repos/builtin/packages/r-biovizbase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RBiovizbase(RPackage):
- """Basic graphic utilities for visualization of genomic data..
+ """Basic graphic utilities for visualization of genomic data.
The biovizBase package is designed to provide a set of utilities, color
schemes and conventions for genomic data. It serves as the base for
@@ -17,6 +17,7 @@ class RBiovizbase(RPackage):
homepage = "https://bioconductor.org/packages/biovizBase"
git = "https://git.bioconductor.org/packages/biovizBase.git"
+ version('1.38.0', commit='d0f3362e0ad0e90b4b1d3e47b13ed57907d03403')
version('1.32.0', commit='de044bf236cdcd71214ae7b77689a8f0ab4f5cc8')
version('1.30.1', commit='b6776d0470e2920f71127652f185f68ca1fd2c82')
version('1.28.2', commit='43d09060028665a237b04bfeb9e2575782b08063')
@@ -24,12 +25,14 @@ class RBiovizbase(RPackage):
version('1.24.0', commit='ae9cd2ff665b74a8f45ed9c1d17fc0a778b4af6c')
depends_on('r@2.10:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@1.38.0:', type=('build', 'run'))
depends_on('r-scales', type=('build', 'run'))
depends_on('r-hmisc', type=('build', 'run'))
depends_on('r-rcolorbrewer', type=('build', 'run'))
depends_on('r-dichromat', type=('build', 'run'))
depends_on('r-biocgenerics', type=('build', 'run'))
depends_on('r-s4vectors@0.9.25:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.23.19:', when='@1.38.0:', type=('build', 'run'))
depends_on('r-iranges@1.99.28:', type=('build', 'run'))
depends_on('r-genomeinfodb@1.5.14:', type=('build', 'run'))
depends_on('r-genomicranges@1.23.21:', type=('build', 'run'))
@@ -42,5 +45,4 @@ class RBiovizbase(RPackage):
depends_on('r-variantannotation@1.11.4:', type=('build', 'run'))
depends_on('r-ensembldb@1.99.13:', type=('build', 'run'))
depends_on('r-annotationfilter@0.99.8:', type=('build', 'run'))
-
depends_on('r-rlang', when='@1.28.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-bit/package.py b/var/spack/repos/builtin/packages/r-bit/package.py
index f792e9e6f9..572f3b4c0b 100644
--- a/var/spack/repos/builtin/packages/r-bit/package.py
+++ b/var/spack/repos/builtin/packages/r-bit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,18 @@ from spack import *
class RBit(RPackage):
- """ A class for vectors of 1-bit booleans."""
+ """Classes and Methods for Fast Memory-Efficient Boolean Selections
+
+ Provided are classes for boolean and skewed boolean vectors, fast boolean
+ methods, fast unique and non-unique integer sorting, fast set operations on
+ sorted and unsorted sets of integers, and foundations for ff (range index,
+ compression, chunked processing)."""
homepage = "https://cloud.r-project.org/package=bit"
url = "https://cloud.r-project.org/src/contrib/bit_1.1-12.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/bit"
+ version('4.0.4', sha256='e404841fbe4ebefe4ecd4392effe673a8c9fa05f97952c4ce6e2f6159bd2f168')
version('1.1-14', sha256='5cbaace1fb643a665a6ca69b90f7a6d624270de82420ca7a44f306753fcef254')
version('1.1-12', sha256='ce281c87fb7602bf1a599e72f3e25f9ff7a13e390c124a4506087f69ad79d128')
diff --git a/var/spack/repos/builtin/packages/r-bit64/package.py b/var/spack/repos/builtin/packages/r-bit64/package.py
index 3f3d71fc74..9ff47e31d5 100644
--- a/var/spack/repos/builtin/packages/r-bit64/package.py
+++ b/var/spack/repos/builtin/packages/r-bit64/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,24 +7,27 @@ from spack import *
class RBit64(RPackage):
- """Package 'bit64' provides serializable S3 atomic 64bit (signed)
- integers. These are useful for handling database keys and exact
- counting in +-2^63. WARNING: do not use them as replacement for 32bit
- integers, integer64 are not supported for subscripting by R-core and
- they have different semantics when combined with double, e.g.
- integer64 + double => integer64. Class integer64 can be used in vectors,
- matrices, arrays and data.frames. Methods are available for coercion
- from and to logicals, integers, doubles, characters and factors
- as well as many elementwise and summary functions. Many fast
- algorithmic operations such as 'match' and 'order' support
- inter- active data exploration
- and manipulation and optionally leverage caching."""
+ """A S3 Class for Vectors of 64bit Integers
+
+ Package 'bit64' provides serializable S3 atomic 64bit (signed) integers.
+ These are useful for handling database keys and exact counting in +-2^63.
+ WARNING: do not use them as replacement for 32bit integers, integer64 are
+ not supported for subscripting by R-core and they have different semantics
+ when combined with double, e.g. integer64 + double => integer64. Class
+ integer64 can be used in vectors, matrices, arrays and data.frames. Methods
+ are available for coercion from and to logicals, integers, doubles,
+ characters and factors as well as many elementwise and summary functions.
+ Many fast algorithmic operations such as 'match' and 'order' support inter-
+ active data exploration and manipulation and optionally leverage
+ caching."""
homepage = "https://cloud.r-project.org/package=bit64"
url = "https://cloud.r-project.org/src/contrib/bit64_0.9-7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/bit64"
+ version('4.0.5', sha256='25df6826ea5e93241c4874cad4fa8dadc87a40f4ff74c9107aa12a9e033e1578')
version('0.9-7', sha256='7b9aaa7f971198728c3629f9ba1a1b24d53db5c7e459498b0fdf86bbd3dff61f')
depends_on('r@3.0.1:', type=('build', 'run'))
- depends_on('r-bit@1.1-12:', type=('build', 'run'))
+ depends_on('r-bit@1.1-12:', when='@:9.9-7', type=('build', 'run'))
+ depends_on('r-bit@4.0.0:', when='@4.0.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-bitops/package.py b/var/spack/repos/builtin/packages/r-bitops/package.py
index 0c78b1e1b5..2bc64aacf4 100644
--- a/var/spack/repos/builtin/packages/r-bitops/package.py
+++ b/var/spack/repos/builtin/packages/r-bitops/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-blavaan/package.py b/var/spack/repos/builtin/packages/r-blavaan/package.py
new file mode 100644
index 0000000000..1451e52758
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-blavaan/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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 RBlavaan(RPackage):
+ """Bayesian Latent Variable Analysis:
+
+ Fit a variety of Bayesian latent variable models, including confirmatory
+ factor analysis, structural equation models, and latent growth curve
+ models."""
+
+ cran = "blavaan"
+
+ version('0.3-15', sha256='f73ead024bc3b65bdb0c5e5cd5458845158914eb579c07be2fd697a3573ebe6f')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-lavaan@0.6-5:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.15:', type=('build', 'run'))
+ depends_on('r-rcppparallel@5.0.1:', type=('build', 'run'))
+ depends_on('r-mcmcpack', type=('build', 'run'))
+ depends_on('r-coda', type=('build', 'run'))
+ depends_on('r-mnormt', type=('build', 'run'))
+ depends_on('r-nonnest2@0.5-5:', type=('build', 'run'))
+ depends_on('r-loo@2.0:', type=('build', 'run'))
+ depends_on('r-rstan@2.19.2:', type=('build', 'run'))
+ depends_on('r-rstantools@1.5.0:', type=('build', 'run'))
+ depends_on('r-bayesplot', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-future-apply', type=('build', 'run'))
+ depends_on('r-stanheaders@2.18.1:', type=('build', 'run'))
+ depends_on('r-bh@1.69.0:', type=('build', 'run'))
+ depends_on('r-rcppeigen@0.3.3.4.0:', type=('build', 'run'))
+ depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-blob/package.py b/var/spack/repos/builtin/packages/r-blob/package.py
index af2c39362d..a56c0a5642 100644
--- a/var/spack/repos/builtin/packages/r-blob/package.py
+++ b/var/spack/repos/builtin/packages/r-blob/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RBlob(RPackage):
- """R's raw vector is useful for storing a single binary object.
+ """A Simple S3 Class for Representing Vectors of Binary Data ('BLOBS')
+
+ R's raw vector is useful for storing a single binary object.
What if you want to put a vector of them in a data frame? The blob
package provides the blob object, a list of raw vectors, suitable
for use as a column in data frame."""
@@ -16,10 +18,12 @@ class RBlob(RPackage):
url = "https://cloud.r-project.org/src/contrib/blob_1.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/blob"
+ version('1.2.1', sha256='ef54bc7a9646c1b73f4d2f60c869b4f1940bc3505874175114297ad7772d8bea')
version('1.2.0', sha256='1af1cfa28607bc0e2f1f01598a00a7d5d1385ef160a9e79e568f30f56538e023')
version('1.1.0', sha256='16d6603df3ddba177f0ac4d9469c938f89131c4bf8834345db838defd9ffea16')
depends_on('r-tibble', when='@:1.1.0', type=('build', 'run'))
- depends_on('r-prettyunits', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-prettyunits', when='@1.2.0', type=('build', 'run'))
depends_on('r-rlang', when='@1.2.0:', type=('build', 'run'))
depends_on('r-vctrs@0.2.0:', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-vctrs@0.2.1:', when='@1.2.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-blockmodeling/package.py b/var/spack/repos/builtin/packages/r-blockmodeling/package.py
index 08257860f6..1ce04a935c 100644
--- a/var/spack/repos/builtin/packages/r-blockmodeling/package.py
+++ b/var/spack/repos/builtin/packages/r-blockmodeling/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,21 @@ from spack import *
class RBlockmodeling(RPackage):
- """blockmodeling: Generalized and Classical
- Blockmodeling of Valued Networks"""
+ """Generalized and Classical Blockmodeling of Valued Networks
+
+ This is primarily meant as an implementation of generalized blockmodeling
+ for valued networks."""
homepage = "https://cloud.r-project.org/package=blockmodeling"
url = "https://cloud.r-project.org/src/contrib/blockmodeling_0.3.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/blockmodeling/"
+ version('1.0.0', sha256='f10c41fff56dc7dc46dffbceacb8ff905eca06578d610a5a590fb408f0149cfc')
version('0.3.4', sha256='a269c83669dd5294cff0adddab36bc023db6a276a06b74b1fa94b7e407486987')
version('0.3.1', sha256='39e8360400cec6baa920d5589d4e779568bdf2954f7331be0e3cadf22a217d31')
+ depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
- depends_on('r-doparallel', type=('build', 'run'))
- depends_on('r-dorng', type=('build', 'run'))
- depends_on('r-foreach', type=('build', 'run'))
+ depends_on('r-doparallel', when='@:0.3.4', type=('build', 'run'))
+ depends_on('r-dorng', when='@:0.3.4', type=('build', 'run'))
+ depends_on('r-foreach', when='@:0.3.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-bmp/package.py b/var/spack/repos/builtin/packages/r-bmp/package.py
index 6f6a37b7c3..59dfd71ea6 100644
--- a/var/spack/repos/builtin/packages/r-bmp/package.py
+++ b/var/spack/repos/builtin/packages/r-bmp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-bookdown/package.py b/var/spack/repos/builtin/packages/r-bookdown/package.py
index a1df872699..f22be5a417 100644
--- a/var/spack/repos/builtin/packages/r-bookdown/package.py
+++ b/var/spack/repos/builtin/packages/r-bookdown/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,20 +7,27 @@ from spack import *
class RBookdown(RPackage):
- """Output formats and utilities for authoring books and technical
+ """Authoring Books and Technical Documents with R Markdown
+
+ Output formats and utilities for authoring books and technical
documents with R Markdown."""
homepage = "https://cloud.r-project.org/package=bookdown"
url = "https://cloud.r-project.org/src/contrib/bookdown_0.5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/bookdown"
+ version('0.21', sha256='47c0fa7a65da83753c2f445e0e972913f9203460f1daae3ab255d0d4b30eba76')
version('0.12', sha256='38eb4c5b877ccd85b16cfe74a48c3bc53de2f276da98e5515f37e7a06e065bb0')
version('0.5', sha256='b7331fd56f64bd2bddc34e2a188fc491f9ff5308f44f7e3151721247f21ca67e')
- depends_on('r-yaml@2.1.14:', when='@:0.10', type=('build', 'run'))
- depends_on('r-rmarkdown@1.12:', type=('build', 'run'))
- depends_on('r-knitr@1.22:', type=('build', 'run'))
+ depends_on('r+X', type=('build', 'run'))
depends_on('r-htmltools@0.3.6:', type=('build', 'run'))
- depends_on('r-xfun@0.6:', when='@0.12:', type=('build', 'run'))
+ depends_on('r-knitr@1.22:', type=('build', 'run'))
+ depends_on('r-rmarkdown@1.12:', when='@:0.12', type=('build', 'run'))
+ depends_on('r-rmarkdown@2.4:', when='@0.21:', type=('build', 'run'))
+ depends_on('r-xfun@0.6:', when='@:0.12', type=('build', 'run'))
+ depends_on('r-xfun@0.13:', when='@0.21:', type=('build', 'run'))
depends_on('r-tinytex@0.12:', when='@0.12:', type=('build', 'run'))
+ depends_on('r-yaml@2.1.14:', when='@:0.12', type=('build', 'run'))
+ depends_on('r-yaml@2.1.19:', when='@0.21:', type=('build', 'run'))
depends_on('pandoc@1.17.2:')
diff --git a/var/spack/repos/builtin/packages/r-boot/package.py b/var/spack/repos/builtin/packages/r-boot/package.py
index 1db6349b5b..722972e2d0 100644
--- a/var/spack/repos/builtin/packages/r-boot/package.py
+++ b/var/spack/repos/builtin/packages/r-boot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RBoot(RPackage):
- """Functions and datasets for bootstrapping from the book "Bootstrap
+ """Bootstrap Functions (Originally by Angelo Canty for S)
+
+ Functions and datasets for bootstrapping from the book "Bootstrap
Methods and Their Application" by A. C. Davison and D. V. Hinkley (1997,
CUP), originally written by Angelo Canty for S."""
@@ -15,6 +17,8 @@ class RBoot(RPackage):
url = "https://cloud.r-project.org/src/contrib/boot_1.3-18.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/boot"
+ version('1.3-28', sha256='9f7158fd2714659f590c3955651893dc24bd8f39196bc5a4cc35b0b031744a32')
+ version('1.3-25', sha256='464835fcb453072346ce49e4ae318e04c9dba682349be49db616623b6088fbbe')
version('1.3-23', sha256='79236a5a770dc8bf5ce25d9aa303c5dc0574d94aa043fd00b8b4c8ccc877357f')
version('1.3-22', sha256='cf1f0cb1e0a7a36dcb6ae038f5d0211a0e7a009c149bc9d21acb9c58c38b4dfc')
version('1.3-20', sha256='adcb90b72409705e3f9c69ea6c15673dcb649b464fed06723fe0930beac5212a')
diff --git a/var/spack/repos/builtin/packages/r-boruta/package.py b/var/spack/repos/builtin/packages/r-boruta/package.py
index 45b4f22d57..bc95b2c611 100644
--- a/var/spack/repos/builtin/packages/r-boruta/package.py
+++ b/var/spack/repos/builtin/packages/r-boruta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-brew/package.py b/var/spack/repos/builtin/packages/r-brew/package.py
index 80d075c547..0bb431eb49 100644
--- a/var/spack/repos/builtin/packages/r-brew/package.py
+++ b/var/spack/repos/builtin/packages/r-brew/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-bridgesampling/package.py b/var/spack/repos/builtin/packages/r-bridgesampling/package.py
new file mode 100644
index 0000000000..f6a0002589
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-bridgesampling/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 RBridgesampling(RPackage):
+ """Bridge Sampling for Marginal Likelihoods and Bayes Factors:
+
+ Provides functions for estimating marginal likelihoods, Bayes factors,
+ posterior model probabilities, and normalizing constants in general, via
+ different versions of bridge sampling (Meng & Wong, 1996,
+ <http://www3.stat.sinica.edu.tw/statistica/j6n4/j6n43/j6n43.htm>). Gronau,
+ Singmann, & Wagenmakers (2020) <doi:10.18637/jss.v092.i10>."""
+
+ homepage = "https://github.com/quentingronau/bridgesampling"
+ cran = "bridgesampling"
+
+ version('1.1-2', sha256='54ecd39aa2e36d4d521d3d36425f9fe56a3f8547df6048c814c5931d790f3e6b')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-mvtnorm', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-brobdingnag', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-coda', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-brio/package.py b/var/spack/repos/builtin/packages/r-brio/package.py
new file mode 100644
index 0000000000..4042b85592
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-brio/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 RBrio(RPackage):
+ """Basic R Input Output
+
+ Functions to handle basic input output, these functions always read and
+ write UTF-8 (8-bit Unicode Transformation Format) files and provide more
+ explicit control over line endings."""
+
+ homepage = "https://github.com/r-lib/brio"
+ url = "https://cloud.r-project.org/src/contrib/brio_1.1.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/brio"
+
+ version('1.1.0', sha256='6bb3a3b47bea13f1a1e3dcdc8b9f688502643e4b40a481a34aa04a261aabea38')
diff --git a/var/spack/repos/builtin/packages/r-brms/package.py b/var/spack/repos/builtin/packages/r-brms/package.py
new file mode 100644
index 0000000000..7da8d8fa12
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-brms/package.py
@@ -0,0 +1,52 @@
+# Copyright 2013-2021 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 RBrms(RPackage):
+ """Bayesian Regression Models using 'Stan':
+
+ Fit Bayesian generalized (non-)linear multivariate multilevel models using
+ 'Stan' for full Bayesian inference. A wide range of distributions and link
+ functions are supported, allowing users to fit - among others - linear,
+ robust linear, count data, survival, response times, ordinal,
+ zero-inflated, hurdle, and even self-defined mixture models all in a
+ multilevel context. Further modeling options include non-linear and smooth
+ terms, auto-correlation structures, censored data, meta-analytic standard
+ errors, and quite a few more. In addition, all parameters of the response
+ distribution can be predicted in order to perform distributional
+ regression. Prior specifications are flexible and explicitly encourage
+ users to apply prior distributions that actually reflect their beliefs.
+ Model fit can easily be assessed and compared with posterior predictive
+ checks and leave-one-out cross-validation. References: Burkner (2017)
+ <doi:10.18637/jss.v080.i01>; Burkner (2018) <doi:10.32614/RJ-2018-017>;
+ Carpenter et al. (2017) <doi:10.18637/jss.v076.i01>."""
+
+ homepage = "https://github.com/paul-buerkner/brms"
+ cran = "brms"
+
+ version('2.15.0', sha256='c11701d1d8758590b74bb845b568b736e4455a81b114c7dfde0b27b7bd1bcc2f')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.0:', type=('build', 'run'))
+ depends_on('r-rstan@2.19.2:', type=('build', 'run'))
+ depends_on('r-ggplot2@2.0.0:', type=('build', 'run'))
+ depends_on('r-loo@2.3.1:', type=('build', 'run'))
+ depends_on('r-matrix@1.1.1:', type=('build', 'run'))
+ depends_on('r-mgcv@1.8-13:', type=('build', 'run'))
+ depends_on('r-rstantools@2.1.1:', type=('build', 'run'))
+ depends_on('r-bayesplot@1.5.0:', type=('build', 'run'))
+ depends_on('r-shinystan@2.4.0:', type=('build', 'run'))
+ depends_on('r-projpred@2.0.0:', type=('build', 'run'))
+ depends_on('r-bridgesampling@0.3-0:', type=('build', 'run'))
+ depends_on('r-glue@1.3.0:', type=('build', 'run'))
+ depends_on('r-future@1.19.0:', type=('build', 'run'))
+ depends_on('r-matrixstats', type=('build', 'run'))
+ depends_on('r-nleqslv', type=('build', 'run'))
+ depends_on('r-nlme', type=('build', 'run'))
+ depends_on('r-coda', type=('build', 'run'))
+ depends_on('r-abind', type=('build', 'run'))
+ depends_on('r-backports', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-brobdingnag/package.py b/var/spack/repos/builtin/packages/r-brobdingnag/package.py
new file mode 100644
index 0000000000..ad32d3bca8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-brobdingnag/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 RBrobdingnag(RPackage):
+ """Very Large Numbers in R:
+
+ Handles very large numbers in R. Real numbers are held using their natural
+ logarithms, plus a logical flag indicating sign. The package includes a
+ vignette that gives a step-by-step introduction to using S4 methods."""
+
+ homepage = "https://github.com/RobinHankin/Brobdingnag.git"
+ cran = "Brobdingnag"
+
+ version('1.2-6', sha256='19eccaed830ce9d93b70642f6f126ac66722a98bbd48586899cc613dd9966ad4')
+
+ depends_on('r@2.13.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-broom/package.py b/var/spack/repos/builtin/packages/r-broom/package.py
index bd0f70b070..6153e41a69 100644
--- a/var/spack/repos/builtin/packages/r-broom/package.py
+++ b/var/spack/repos/builtin/packages/r-broom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,32 +7,41 @@ from spack import *
class RBroom(RPackage):
- """Convert statistical analysis objects from R into tidy data frames, so
- that they can more easily be combined, reshaped and otherwise processed
- with tools like 'dplyr', 'tidyr' and 'ggplot2'. The package provides
- three S3 generics: tidy, which summarizes a model's statistical
- findings such as coefficients of a regression; augment, which adds
- columns to the original data such as predictions, residuals and cluster
- assignments; and glance, which provides a one-row summary of
- model-level statistics."""
+ """Convert Statistical Objects into Tidy Tibbles
- homepage = "http://github.com/tidyverse/broom"
+ Summarizes key information about statistical objects in tidy tibbles. This
+ makes it easy to report results, create plots and consistently work with
+ large numbers of models at once. Broom provides three verbs that each
+ provide different types of information about a model. tidy() summarizes
+ information about model components such as coefficients of a regression.
+ glance() reports information about an entire model, such as goodness of fit
+ measures like AIC and BIC. augment() adds information about individual
+ observations to a dataset, such as fitted values or influence measures."""
+
+ homepage = "https://github.com/tidyverse/broom"
url = "https://cloud.r-project.org/src/contrib/broom_0.4.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/broom"
+ version('0.7.3', sha256='de5650e46ca6884876b63bc401d22bef9eace671147774466406d43324aebc2f')
version('0.5.2', sha256='16af7b446b24bc14461efbda9bea1521cf738c778c5e48fcc7bad45660a4ac62')
version('0.5.1', sha256='da9e6bf7cb8f960b83309cf107743976cc32b54524675f6471982abe3d1aae2e')
version('0.4.2', sha256='9f409413623cf25e7110452e6215353af5114f7044d73af182bd6c10971c5a44')
depends_on('r@3.1:', type=('build', 'run'))
- depends_on('r-plyr', when='@:0.4.2', type=('build', 'run'))
- depends_on('r-dplyr', type=('build', 'run'))
- depends_on('r-tidyr', type=('build', 'run'))
- depends_on('r-psych', when='@:0.4.2', type=('build', 'run'))
- depends_on('r-stringr', type=('build', 'run'))
- depends_on('r-reshape2', type=('build', 'run'))
- depends_on('r-nlme', type=('build', 'run'))
depends_on('r-backports', when='@0.5.0:', type=('build', 'run'))
+ depends_on('r-dplyr', type=('build', 'run'))
+ depends_on('r-dplyr@1.0.0:', when='@0.7.3:', type=('build', 'run'))
+ depends_on('r-ellipsis', when='@0.7.3:', type=('build', 'run'))
depends_on('r-generics@0.0.2:', when='@0.5.1:', type=('build', 'run'))
+ depends_on('r-glue', when='@0.7.3:', type=('build', 'run'))
depends_on('r-purrr', when='@0.5.0:', type=('build', 'run'))
+ depends_on('r-rlang', when='@0.7.3:', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
depends_on('r-tibble', when='@0.5.0:', type=('build', 'run'))
+ depends_on('r-tibble@3.0.0:', when='@0.7.3:', type=('build', 'run'))
+ depends_on('r-tidyr', type=('build', 'run'))
+ depends_on('r-tidyr@1.0.0:', when='@0.7.3:', type=('build', 'run'))
+ depends_on('r-plyr', when='@:0.4.2', type=('build', 'run'))
+ depends_on('r-psych', when='@:0.4.2', type=('build', 'run'))
+ depends_on('r-reshape2', when='@:0.5.2', type=('build', 'run'))
+ depends_on('r-nlme', when='@:0.5.2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-bsgenome-hsapiens-ucsc-hg19/package.py b/var/spack/repos/builtin/packages/r-bsgenome-hsapiens-ucsc-hg19/package.py
index bc536f9ccd..bd6f8ee30a 100644
--- a/var/spack/repos/builtin/packages/r-bsgenome-hsapiens-ucsc-hg19/package.py
+++ b/var/spack/repos/builtin/packages/r-bsgenome-hsapiens-ucsc-hg19/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,22 @@ from spack import *
class RBsgenomeHsapiensUcscHg19(RPackage):
- """Full genome sequences for Homo sapiens (Human) as provided by UCSC
+ """Full genome sequences for Homo sapiens (UCSC version hg19, based on
+ GRCh37.p13)
+
+ Full genome sequences for Homo sapiens (Human) as provided by UCSC
(hg19, Feb. 2009) and stored in Biostrings objects."""
# This is a bioconductor package but there is no available git repo.
- homepage = "http://www.bioconductor.org/packages/release/data/annotation/html/BSgenome.Hsapiens.UCSC.hg19.html"
+ homepage = "https://bioconductor.org/packages/BSgenome.Hsapiens.UCSC.hg19/"
url = "http://www.bioconductor.org/packages/release/data/annotation/src/contrib/BSgenome.Hsapiens.UCSC.hg19_1.4.0.tar.gz"
- version('1.4.0', sha256='88f515e5c27dd11d10654250e3a0a9389e4dfeb0b1c2d43419aa7086e6c516f8')
+ version('1.4.3',
+ sha256='5bfa65d7836449d9b30c356968497cdfaa98be48c4e329e71e8f8a120f3e9d1a',
+ url='https://bioconductor.org/packages/3.12/data/annotation/src/contrib/BSgenome.Hsapiens.UCSC.hg19_1.4.3.tar.gz')
+ version('1.4.0',
+ sha256='88f515e5c27dd11d10654250e3a0a9389e4dfeb0b1c2d43419aa7086e6c516f8',
+ url='https://bioconductor.org/packages/3.10/data/annotation/src/contrib/BSgenome.Hsapiens.UCSC.hg19_1.4.0.tar.gz')
depends_on('r-bsgenome@1.33.5:', type=('build', 'run'))
+ depends_on('r-bsgenome@1.54.0:', when='@1.4.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-bsgenome/package.py b/var/spack/repos/builtin/packages/r-bsgenome/package.py
index afbc8225dd..bf23766f83 100644
--- a/var/spack/repos/builtin/packages/r-bsgenome/package.py
+++ b/var/spack/repos/builtin/packages/r-bsgenome/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,14 @@ from spack import *
class RBsgenome(RPackage):
"""Software infrastructure for efficient representation of full genomes and
- their SNPs."""
+ their SNPs
+
+ Infrastructure shared by all the Biostrings-based genome data packages."""
homepage = "https://bioconductor.org/packages/BSgenome"
git = "https://git.bioconductor.org/packages/BSgenome.git"
+ version('1.58.0', commit='3a4926e03a7a1d7140a10c1b2bf6090808470145')
version('1.52.0', commit='5398eba1cb56a873b29c04a7ce6858d5d60ff75b')
version('1.50.0', commit='43910755f7477e4fe9bb968f186fddbb2f7355f9')
version('1.48.0', commit='092a1b90482ace329cbd8ca2a338e91449acb93e')
@@ -22,21 +25,22 @@ class RBsgenome(RPackage):
depends_on('r@2.8.0:', type=('build', 'run'))
depends_on('r-biocgenerics@0.13.8:', type=('build', 'run'))
depends_on('r-s4vectors@0.9.36:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.28:', when='@1.48.0:', type=('build', 'run'))
depends_on('r-iranges@2.1.33:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.11.4:', type=('build', 'run'))
- depends_on('r-genomicranges@1.27.6:', type=('build', 'run'))
- depends_on('r-biostrings@2.35.3:', type=('build', 'run'))
- depends_on('r-rtracklayer@1.25.8:', type=('build', 'run'))
- depends_on('r-xvector', type=('build', 'run'))
- depends_on('r-rsamtools', type=('build', 'run'))
-
depends_on('r-iranges@2.11.16:', when='@1.46.0:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.13.1:', when='@1.46.0:', type=('build', 'run'))
- depends_on('r-genomicranges@1.29.14:', when='@1.46.0:', type=('build', 'run'))
-
- depends_on('r-s4vectors@0.17.28:', when='@1.48.0:', type=('build', 'run'))
depends_on('r-iranges@2.13.16:', when='@1.48.0:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.11.4:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.13.1:', when='@1.46.0:', type=('build', 'run'))
depends_on('r-genomeinfodb@1.15.2:', when='@1.48.0:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.25.6:', when='@1.58.0:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.27.6:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.29.14:', when='@1.46.0:', type=('build', 'run'))
depends_on('r-genomicranges@1.31.10:', when='@1.48.0:', type=('build', 'run'))
+ depends_on('r-biostrings@2.35.3:', type=('build', 'run'))
depends_on('r-biostrings@2.47.6:', when='@1.48.0:', type=('build', 'run'))
+ depends_on('r-rtracklayer@1.25.8:', type=('build', 'run'))
depends_on('r-rtracklayer@1.39.7:', when='@1.48.0:', type=('build', 'run'))
+ depends_on('r-matrixstats', when='@1.58.0:', type=('build', 'run'))
+ depends_on('r-xvector', type=('build', 'run'))
+ depends_on('r-xvector@0.29.3:', when='@1.58.0:', type=('build', 'run'))
+ depends_on('r-rsamtools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-bsseq/package.py b/var/spack/repos/builtin/packages/r-bsseq/package.py
index c753c549a0..fe8cebe8fd 100644
--- a/var/spack/repos/builtin/packages/r-bsseq/package.py
+++ b/var/spack/repos/builtin/packages/r-bsseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,49 +7,52 @@ from spack import *
class RBsseq(RPackage):
- """A collection of tools for analyzing and visualizing bisulfite sequencing
+ """Analyze, manage and store bisulfite sequencing data
+
+ A collection of tools for analyzing and visualizing bisulfite sequencing
data."""
homepage = "https://github.com/kasperdanielhansen/bsseq"
git = "https://git.bioconductor.org/packages/bsseq"
+ version('1.26.0', commit='fae32292687625012a2938a48c93df55ad4257b5')
version('1.24.4', commit='8fe7a03')
version('1.22.0', commit='d4f7301')
version('1.20.0', commit='07e398b')
depends_on('r@3.5:', type=('build', 'run'))
-
+ depends_on('r@4.0:', when='@1.26.0:', type=('build', 'run'))
depends_on('r-biocgenerics', type=('build', 'run'))
-
depends_on('r-genomicranges@1.29.14:', type=('build', 'run'))
depends_on('r-genomicranges@1.33.6:', when='@1.24.4:', type=('build', 'run'))
-
+ depends_on('r-genomicranges@1.41.5:', when='@1.26.0:', type=('build', 'run'))
depends_on('r-summarizedexperiment@1.9.18:', type=('build', 'run'))
depends_on('r-summarizedexperiment@1.17.4:', when='@1.24.4:', type=('build', 'run'))
-
+ depends_on('r-summarizedexperiment@1.19.5:', when='@1.26.0:', type=('build', 'run'))
depends_on('r-iranges@2.11.16:', type=('build', 'run'))
depends_on('r-iranges@2.22.2:', when='@1.24.4:', type=('build', 'run'))
-
+ depends_on('r-iranges@2.23.9:', when='@1.26.0:', type=('build', 'run'))
depends_on('r-genomeinfodb', type=('build', 'run'))
depends_on('r-scales', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-locfit', type=('build', 'run'))
depends_on('r-gtools', type=('build', 'run'))
depends_on('r-data-table@1.11.8:', type=('build', 'run'))
-
depends_on('r-s4vectors', type=('build', 'run'))
depends_on('r-s4vectors@0.23.11:', when='@1.22.0:', type=('build', 'run'))
- depends_on('r-s4vectors@0.25.14:', when='@1.24.4', type=('build', 'run'))
-
+ depends_on('r-s4vectors@0.25.14:', when='@1.24.4:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.27.12:', when='@1.26.0:', type=('build', 'run'))
depends_on('r-r-utils@2.0.0:', type=('build', 'run'))
depends_on('r-delayedmatrixstats@1.5.2:', type=('build', 'run'))
depends_on('r-permute', type=('build', 'run'))
depends_on('r-limma', type=('build', 'run'))
depends_on('r-delayedarray@0.9.8:', type=('build', 'run'))
+ depends_on('r-delayedarray@0.15.16:', when='@1.26.0:', type=('build', 'run'))
depends_on('r-rcpp', type=('build', 'run'))
depends_on('r-biocparallel', type=('build', 'run'))
depends_on('r-bsgenome', type=('build', 'run'))
depends_on('r-biostrings', type=('build', 'run'))
depends_on('r-hdf5array@1.11.9:', type=('build', 'run'))
+ depends_on('r-hdf5array@1.15.19:', when='@1.26.0:', type=('build', 'run'))
depends_on('r-rhdf5', type=('build', 'run'))
depends_on('r-beachmat', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-bumphunter/package.py b/var/spack/repos/builtin/packages/r-bumphunter/package.py
index e40d70fc88..0768927a8c 100644
--- a/var/spack/repos/builtin/packages/r-bumphunter/package.py
+++ b/var/spack/repos/builtin/packages/r-bumphunter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RBumphunter(RPackage):
- """Bump Hunter.
+ """Bump Hunter
Tools for finding bumps in genomic data"""
homepage = "https://bioconductor.org/packages/bumphunter"
git = "https://git.bioconductor.org/packages/bumphunter.git"
+ version('1.32.0', commit='b7d39c2a6385ca217dceefc918b3ccd5c31bbaa0')
version('1.26.0', commit='606bee8708a0911ced3efb197970b4c9fa52f2fa')
version('1.24.5', commit='29b874033a38e86103b58ef2d4a55f285758147b')
version('1.22.0', commit='fb71b193f4ef7fa12d100441e6eb498765f7afde')
@@ -21,6 +22,8 @@ class RBumphunter(RPackage):
version('1.16.0', commit='1c3ab4d1fd2d75b1586ccef12665960b3602080a')
depends_on('r@2.10:', type=('build', 'run'))
+ depends_on('r@3.4:', when='@1.20.0:', type=('build', 'run'))
+ depends_on('r@3.5:', when='@1.24.5:', type=('build', 'run'))
depends_on('r-s4vectors@0.9.25:', type=('build', 'run'))
depends_on('r-iranges@2.3.23:', type=('build', 'run'))
depends_on('r-genomeinfodb', type=('build', 'run'))
@@ -34,7 +37,3 @@ class RBumphunter(RPackage):
depends_on('r-biocgenerics', type=('build', 'run'))
depends_on('r-genomicfeatures', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
-
- depends_on('r@3.4:', when='@1.20.0:', type=('build', 'run'))
-
- depends_on('r@3.5:', when='@1.24.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-c50/package.py b/var/spack/repos/builtin/packages/r-c50/package.py
index f92f57de8d..29556a3d10 100644
--- a/var/spack/repos/builtin/packages/r-c50/package.py
+++ b/var/spack/repos/builtin/packages/r-c50/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,16 +8,21 @@ from spack import *
class RC50(RPackage):
- """C5.0 decision trees and rule-based models for pattern recognition."""
+ """C5.0 Decision Trees and Rule-Based Models
+
+ C5.0 decision trees and rule-based models for pattern recognition that
+ extend the work of Quinlan (1993, ISBN:1-55860-238-0)."""
homepage = "https://cloud.r-project.org/package=C50"
url = "https://cloud.r-project.org/src/contrib/C50_0.1.0-24.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/C50"
+ version('0.1.3.1', sha256='0b151ba8deef50ab2e2ad8469d87f54f0c6ab862f5c790ed8bb16cb3b8027546')
version('0.1.2', sha256='8f459856e0309274bee24462b7145db4eba1d71031c236db39000a5375bdfaba')
version('0.1.1', sha256='03bc1fc2f64bcd5c680568a24902deafab1965074a66f8802bc4cd0335bd01df')
version('0.1.0-24', sha256='617ee8ae617a075213414c07739ce92d9e6927783d01588fd0e2315157065e9d')
depends_on('r@2.10.0:', type=('build', 'run'))
depends_on('r-partykit', type=('build', 'run'))
- depends_on('r-cubist@0.2.1:', type=('build', 'run'))
+ depends_on('r-cubist@0.2.1:', when='@:0.1.2', type=('build', 'run'))
+ depends_on('r-cubist@0.2.3:', when='@0.1.3.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ca/package.py b/var/spack/repos/builtin/packages/r-ca/package.py
new file mode 100644
index 0000000000..48ef681659
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-ca/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RCa(RPackage):
+ """Simple, Multiple and Joint Correspondence Analysis
+
+ Computation and visualization of simple, multiple and joint
+ correspondence analysis."""
+
+ homepage = "http://www.carme-n.org/?sec=ca"
+ url = "https://cloud.r-project.org/src/contrib/ca_0.71.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/ca"
+
+ version('0.71.1', sha256='040c2fc94c356075f116cc7cd880530b3c9e02206c0035182c03a525ee99b424')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-cairo/package.py b/var/spack/repos/builtin/packages/r-cairo/package.py
index d6cb5c93a2..e600f0d7ac 100644
--- a/var/spack/repos/builtin/packages/r-cairo/package.py
+++ b/var/spack/repos/builtin/packages/r-cairo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,15 +8,30 @@ from spack import *
class RCairo(RPackage):
"""R graphics device using cairo graphics library for creating high-quality
- bitmap (PNG, JPEG, TIFF), vector (PDF, SVG, PostScript) and display
- (X11 and Win32) output"""
+ bitmap (PNG, JPEG, TIFF), vector (PDF, SVG, PostScript) and display (X11
+ and Win32) output
+
+ R graphics device using cairographics library that can be used to create
+ high-quality vector (PDF, PostScript and SVG) and bitmap output
+ (PNG,JPEG,TIFF), and high-quality rendering in displays (X11 and Win32).
+ Since it uses the same back-end for all output, copying across formats is
+ WYSIWYG. Files are created without the dependence on X11 or other external
+ programs. This device supports alpha channel (semi-transparent drawing) and
+ resulting images can contain transparent and semi-transparent regions. It
+ is ideal for use in server environments (file output) and as a replacement
+ for other devices that don't have Cairo's capabilities such as alpha
+ support or anti-aliasing. Backends are modular such that any subset of
+ backends is supported."""
homepage = "https://cloud.r-project.org/package=Cairo"
url = "https://cloud.r-project.org/src/contrib/Cairo_1.5-9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Cairo"
+ version('1.5-12.2', sha256='dd524105c83b82b5c3b3ee2583ef90d4cafa54b0c29817dac48b425b79f90f92')
version('1.5-10', sha256='7837f0c384cd49bb3342cb39a916d7a80b02fffbf123913a58014e597f69b5d5')
version('1.5-9', sha256='2a867b6cae96671d6bc3acf9334d6615dc01f6ecf1953a27cde8a43c724a38f4')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@2.4.0:', type=('build', 'run'))
depends_on('cairo@1.2:')
+ depends_on('libxt')
diff --git a/var/spack/repos/builtin/packages/r-callr/package.py b/var/spack/repos/builtin/packages/r-callr/package.py
index 22122f8030..367cc88a08 100644
--- a/var/spack/repos/builtin/packages/r-callr/package.py
+++ b/var/spack/repos/builtin/packages/r-callr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class RCallr(RPackage):
- """It is sometimes useful to perform a computation in a separate R
- process, without affecting the current R process at all. This packages
- does exactly that."""
+ """Call R from R
+
+ It is sometimes useful to perform a computation in a separate R process,
+ without affecting the current R process at all. This packages does exactly
+ that."""
homepage = "https://github.com/MangoTheCat/callr"
url = "https://cloud.r-project.org/src/contrib/callr_1.0.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/callr/"
+ version('3.5.1', sha256='ce338c648cc9ab501168a55f93e68fc81e31dc5ec881e908b5b4a9d6f5bd8696')
version('3.4.3', sha256='01b7277f20c1d662c6bebbfa2798d179922b36d4148b4298853579aeda0382b5')
version('3.3.1', sha256='bf60da47357d3336aa395b0c9643235a621763c80d28bc9bb2257767d0a37967')
version('3.2.0', sha256='4bb47b1018e8eb5c683a86c05d0d9b8b25848db1f1b30e92cfebedc0ce14b0e8')
diff --git a/var/spack/repos/builtin/packages/r-car/package.py b/var/spack/repos/builtin/packages/r-car/package.py
index eab030ef3c..74c38972d5 100644
--- a/var/spack/repos/builtin/packages/r-car/package.py
+++ b/var/spack/repos/builtin/packages/r-car/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RCar(RPackage):
- """Functions and Datasets to Accompany J. Fox and S. Weisberg, An R
+ """Companion to Applied Regression
+
+ Functions and Datasets to Accompany J. Fox and S. Weisberg, An R
Companion to Applied Regression, Second Edition, Sage, 2011."""
homepage = "https://r-forge.r-project.org/projects/car/"
url = "https://cloud.r-project.org/src/contrib/car_2.1-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/car"
+ version('3.0-10', sha256='1ce316d2fee9b47c951d25d096be732489a3c9f6fc9e612a1eca2e50fb5925f1')
version('3.0-3', sha256='fa807cb12f6e7fb38ec534cac4eef54747945c2119a7d51155a2492ad778c36f')
version('3.0-2', sha256='df59a9ba8fed67eef5ddb8f92f2b41745df715d5695c71d562d7031513f37c50')
version('2.1-4', sha256='fd39cf1750cb560a66623fea3fa9e6a94fc24e3dc36367aff24df7d0743edb28')
diff --git a/var/spack/repos/builtin/packages/r-caracas/package.py b/var/spack/repos/builtin/packages/r-caracas/package.py
index 74f9c77e54..0d02a1465a 100644
--- a/var/spack/repos/builtin/packages/r-caracas/package.py
+++ b/var/spack/repos/builtin/packages/r-caracas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,17 @@ from spack import *
class RCaracas(RPackage):
- """Computer algebra via the 'SymPy' library (<https://www.sympy.org/>).
- This makes it possible to solve equations symbolically, find symbolic
- integrals, symbolic sums and other important quantities.
- """
+ """Computer Algebra
+
+ Computer algebra via the 'SymPy' library (<https://www.sympy.org/>). This
+ makes it possible to solve equations symbolically, find symbolic integrals,
+ symbolic sums and other important quantities."""
homepage = "https://cloud.r-project.org/package=caracas"
url = "https://cloud.r-project.org/src/contrib/caracas_1.0.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/caracas"
+ version('1.0.1', sha256='2482dd7b77791243b8174cb41b80b735c3ebd7db837bbf991127514f492af594')
version('1.0.0', sha256='0da6f1d94d1dacb1c11a3635bdff8f7cd8f84373deffa7126636d0876d48e42b')
depends_on('r@3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-cardata/package.py b/var/spack/repos/builtin/packages/r-cardata/package.py
index c2b3d3b7c2..50b56ac8e4 100644
--- a/var/spack/repos/builtin/packages/r-cardata/package.py
+++ b/var/spack/repos/builtin/packages/r-cardata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,17 @@ from spack import *
class RCardata(RPackage):
- """Datasets to Accompany J. Fox and S. Weisberg, An R Companion to Applied
- Regression, Third Edition, Sage (forthcoming)."""
+ """Companion to Applied Regression Data Sets
+
+ Datasets to Accompany J. Fox and S. Weisberg, An R Companion to Applied
+ Regression, Third Edition, Sage (2019)."""
homepage = "https://r-forge.r-project.org/projects/car/"
url = "https://cloud.r-project.org/src/contrib/carData_3.0-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/carData"
+ version('3.0-4', sha256='cda6f5e3efc1d955a4a0625e9c33f90d49f5455840e88b3bd757129b86044724')
version('3.0-2', sha256='3b5c4eff1cc1e456a5331084774503eaa06cf61fb7acf6b9e8a6bfabd5735494')
depends_on('r@3.0:', type=('build', 'run'))
+ depends_on('r@3.5:', when='@3.0-4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-caret/package.py b/var/spack/repos/builtin/packages/r-caret/package.py
index 7d7631c66d..8d49232086 100644
--- a/var/spack/repos/builtin/packages/r-caret/package.py
+++ b/var/spack/repos/builtin/packages/r-caret/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,27 +7,33 @@ from spack import *
class RCaret(RPackage):
- """Misc functions for training and plotting classification and regression
+ """Classification and Regression Training
+
+ Misc functions for training and plotting classification and regression
models."""
homepage = "https://github.com/topepo/caret/"
url = "https://cloud.r-project.org/src/contrib/caret_6.0-73.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/caret"
+ version('6.0-86', sha256='da4a1c7c3fbf645c5b02871e563a77404622b83623f0d1c5dc1425de7aa4ce37')
version('6.0-84', sha256='a1831c086a9c71b469f7405649ba04517683cdf229e119c005189cf57244090d')
version('6.0-83', sha256='9bde5e4da1f0b690bfe06c2439c0136504e851a8d360bf56b644f171fe20dcef')
version('6.0-73', sha256='90a0a4a10f1a3b37502cb0ed7d8830063d059a548faabb9cc5d8d34736c7eacb')
version('6.0-70', sha256='21c5bdf7cf07bece38729465366564d8ca104c2466ee9fd800ca1fd88eb82f38')
- depends_on('r@2.10:', when='@:6.0-81', type=('build', 'run'))
+ depends_on('r@2.10:', type=('build', 'run'))
depends_on('r@3.2.0:', when='@6.0-82:', type=('build', 'run'))
depends_on('r-lattice@0.20:', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
- depends_on('r-car', when='@:6.0-73', type=('build', 'run'))
depends_on('r-foreach', type=('build', 'run'))
depends_on('r-plyr', type=('build', 'run'))
depends_on('r-modelmetrics@1.1.0:', type=('build', 'run'))
+ depends_on('r-modelmetrics@1.2.2.2:', when='@6.0-86:', type=('build', 'run'))
depends_on('r-nlme', type=('build', 'run'))
depends_on('r-reshape2', type=('build', 'run'))
- depends_on('r-recipes@0.1.4:', when='@6.0-83:', type=('build', 'run'))
+ depends_on('r-recipes@0.1.4:', when='@6.0-83:6.0-84', type=('build', 'run'))
+ depends_on('r-recipes@0.1.10:', when='@6.0-86:', type=('build', 'run'))
depends_on('r-withr@2.0.0:', when='@6.0-83:', type=('build', 'run'))
+ depends_on('r-proc', when='@6.0-86:', type=('build', 'run'))
+ depends_on('r-car', when='@:6.0-73', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-caretensemble/package.py b/var/spack/repos/builtin/packages/r-caretensemble/package.py
new file mode 100644
index 0000000000..986dedf4b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-caretensemble/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 RCaretensemble(RPackage):
+ """caretEnsemble: Ensembles of Caret Models
+
+ Functions for creating ensembles of caret models: caretList() and
+ caretStack(). caretList() is a convenience function for fitting multiple
+ caret::train() models to the same dataset. caretStack() will make linear or
+ non-linear combinations of these models, using a caret::train() model as a
+ meta-model, and caretEnsemble() will make a robust linear combination of
+ models using a GLM."""
+
+ homepage = "https://github.com/zachmayer/caretEnsemble"
+ url = "https://cloud.r-project.org/src/contrib/caretEnsemble_2.0.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/caretEnsemble"
+
+ version('2.0.1', sha256='7e595e604ce2d9d32afbc5404e6fcbcd7f80e687316e9ca3303aca3e44c3ef88')
+
+ depends_on('r@3.2.0:', type=('build', 'run'))
+ depends_on('r-pbapply', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-lattice', type=('build', 'run'))
+ depends_on('r-gridextra', type=('build', 'run'))
+ depends_on('r-data-table', type=('build', 'run'))
+ depends_on('r-caret', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-caroline/package.py b/var/spack/repos/builtin/packages/r-caroline/package.py
index 13d6771f3e..5678a465e5 100644
--- a/var/spack/repos/builtin/packages/r-caroline/package.py
+++ b/var/spack/repos/builtin/packages/r-caroline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-category/package.py b/var/spack/repos/builtin/packages/r-category/package.py
index 3e933e3ecb..f5546a2da3 100644
--- a/var/spack/repos/builtin/packages/r-category/package.py
+++ b/var/spack/repos/builtin/packages/r-category/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RCategory(RPackage):
- """Category Analysis.
+ """Category Analysis
A collection of tools for performing category (gene set enrichment)
analysis."""
@@ -15,6 +15,7 @@ class RCategory(RPackage):
homepage = "https://bioconductor.org/packages/Category"
git = "https://git.bioconductor.org/packages/Category.git"
+ version('2.56.0', commit='ad478caa9d693dbc2770608e79dd852375b9a223')
version('2.50.0', commit='d96f0b29cb778f6697b44d7ba7b0abd7086074a9')
version('2.48.1', commit='941819a3d9dd129f47b4ea00fa74032e405be3a5')
version('2.46.0', commit='c8aeee4dee3fb120f25e0647dd06e895a3ffbc2a')
diff --git a/var/spack/repos/builtin/packages/r-catools/package.py b/var/spack/repos/builtin/packages/r-catools/package.py
index c8a2b9a5f0..a99cee38af 100644
--- a/var/spack/repos/builtin/packages/r-catools/package.py
+++ b/var/spack/repos/builtin/packages/r-catools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,9 @@ from spack import *
class RCatools(RPackage):
- """Contains several basic utility functions including: moving (rolling,
+ """Tools: Moving Window Statistics, GIF, Base64, ROC AUC, etc
+
+ Contains several basic utility functions including: moving (rolling,
running) window statistic functions, read/write for GIF and ENVI binary
files, fast calculation of AUC, LogitBoost classifier, base64
encoder/decoder, round-off-error-free sum and cumsum, etc."""
@@ -17,9 +19,11 @@ class RCatools(RPackage):
url = "https://cloud.r-project.org/src/contrib/caTools_1.17.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/caTools"
+ version('1.18.1', sha256='ffeba4ffbeed5d491bf79b1fde3477f413341e412f77316af20439f54447c9f9')
version('1.17.1.2', sha256='69cc542fab5677462b1a768709d0c4a0a0790f5db53e1fe9ae7123787c18726b')
version('1.17.1.1', sha256='d53e2c5c77f1bd4744703d7196dbc9b4671a120bbb5b9b3edc45fc57c0650c06')
version('1.17.1', sha256='d32a73febf00930355cc00f3e4e71357412e0f163faae6a4bf7f552cacfe9af4')
depends_on('r@2.2.0:', type=('build', 'run'))
+ depends_on('r@3.6.0:', when='@1.18.1:', type=('build', 'run'))
depends_on('r-bitops', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-cdcfluview/package.py b/var/spack/repos/builtin/packages/r-cdcfluview/package.py
index d00215eb28..b0f164bf9d 100644
--- a/var/spack/repos/builtin/packages/r-cdcfluview/package.py
+++ b/var/spack/repos/builtin/packages/r-cdcfluview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,11 @@ from spack import *
class RCdcfluview(RPackage):
- """The 'U.S.' Centers for Disease Control ('CDC') maintains a portal
- <http://gis.cdc.gov/grasp/fluview/fluportaldashboard.html> for accessing
+ """Retrieve Flu Season Data from the United States Centers for Disease
+ Control and Prevention ('CDC') 'FluView' Portal
+
+ The 'U.S.' Centers for Disease Control ('CDC') maintains a portal
+ <https://gis.cdc.gov/grasp/fluview/fluportaldashboard.html> for accessing
state, regional and national influenza statistics as well as Mortality
Surveillance Data. The web interface makes it difficult and time-consuming
to select and retrieve influenza data. Tools are provided to access the
@@ -18,13 +21,17 @@ class RCdcfluview(RPackage):
url = "https://cloud.r-project.org/src/contrib/cdcfluview_0.7.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/cdcfluview"
+ version('0.9.2', sha256='f2080fc80c5e0241f8b657f5ac3a251ea89dfc26c1ab13bdfaed4d4e97495015')
version('0.9.0', sha256='1b2064886858cbb1790ef808d88fbab75d3a9cf55e720638221a3377ff8dd244')
version('0.7.0', sha256='8c8978d081f8472a6ed5ec54c4e6dd906f97ee28d0f88eef1514088f041ecc03')
- depends_on('r@3.2.0:', type=('build', 'run'))
+ depends_on('r@3.2.0:', when='@:0.9.0', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@0.9.2:', type=('build', 'run'))
depends_on('r-httr', type=('build', 'run'))
+ depends_on('r-progress', when='@0.9.2:', type=('build', 'run'))
depends_on('r-dplyr', type=('build', 'run'))
depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-tibble', when='@0.9.2:', type=('build', 'run'))
depends_on('r-sf', type=('build', 'run'))
depends_on('r-xml2', type=('build', 'run'))
depends_on('r-purrr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-cellranger/package.py b/var/spack/repos/builtin/packages/r-cellranger/package.py
index d2a6aeeb4d..8ca00b70cb 100644
--- a/var/spack/repos/builtin/packages/r-cellranger/package.py
+++ b/var/spack/repos/builtin/packages/r-cellranger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-champ/package.py b/var/spack/repos/builtin/packages/r-champ/package.py
new file mode 100644
index 0000000000..478030a7c5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-champ/package.py
@@ -0,0 +1,60 @@
+# Copyright 2013-2021 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 RChamp(RPackage):
+ """Chip Analysis Methylation Pipeline for Illumina HumanMethylation450 and
+ EPIC:
+
+ The package includes quality control metrics, a selection of
+ normalization methods and novel methods to identify differentially
+ methylated regions and to highlight copy number alterations."""
+
+ bioc = "ChAMP"
+
+ version('2.20.1', commit='99ea0463bce59f5b06bcc91f479dcd4065074896')
+
+ depends_on('r@3.3:', type=('build', 'run'))
+ depends_on('r-minfi', type=('build', 'run'))
+ depends_on('r-champdata@2.6.0:', type=('build', 'run'))
+ depends_on('r-dmrcate', type=('build', 'run'))
+ depends_on('r-illumina450probevariants-db', type=('build', 'run'))
+ depends_on('r-illuminahumanmethylationepicmanifest', type=('build', 'run'))
+ depends_on('r-dt', type=('build', 'run'))
+ depends_on('r-rpmm', type=('build', 'run'))
+ depends_on('r-prettydoc', type=('build', 'run'))
+ depends_on('r-hmisc', type=('build', 'run'))
+ depends_on('r-globaltest', type=('build', 'run'))
+ depends_on('r-sva', type=('build', 'run'))
+ depends_on('r-illuminaio', type=('build', 'run'))
+ depends_on('r-rmarkdown', type=('build', 'run'))
+ depends_on('r-illuminahumanmethylation450kmanifest', type=('build', 'run'))
+ depends_on('r-illuminahumanmethylationepicanno-ilm10b4-hg19', type=('build', 'run'))
+ depends_on('r-limma', type=('build', 'run'))
+ depends_on('r-dnacopy', type=('build', 'run'))
+ depends_on('r-preprocesscore', type=('build', 'run'))
+ depends_on('r-impute', type=('build', 'run'))
+ depends_on('r-marray', type=('build', 'run'))
+ depends_on('r-watermelon', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-goseq', type=('build', 'run'))
+ depends_on('r-missmethyl', type=('build', 'run'))
+ depends_on('r-kpmt', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-genomicranges', type=('build', 'run'))
+ depends_on('r-qvalue', type=('build', 'run'))
+ depends_on('r-isva', type=('build', 'run'))
+ depends_on('r-doparallel', type=('build', 'run'))
+ depends_on('r-bumphunter', type=('build', 'run'))
+ depends_on('r-quadprog', type=('build', 'run'))
+ depends_on('r-shiny', type=('build', 'run'))
+ depends_on('r-shinythemes', type=('build', 'run'))
+ depends_on('r-plotly@4.5.6:', type=('build', 'run'))
+ depends_on('r-rcolorbrewer', type=('build', 'run'))
+ depends_on('r-dendextend', type=('build', 'run'))
+ depends_on('r-matrixstats', type=('build', 'run'))
+ depends_on('r-combinat', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-champdata/package.py b/var/spack/repos/builtin/packages/r-champdata/package.py
new file mode 100644
index 0000000000..261463286d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-champdata/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 RChampdata(RPackage):
+ """Packages for ChAMP package:
+
+ Provides datasets needed for ChAMP including a test dataset and blood
+ controls for CNA analysis."""
+
+ bioc = "ChAMPdata"
+
+ version('2.22.0', commit='eeedd4c477fac79f00743da8ff7da064221c5f3d')
+
+ depends_on('r@3.3:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.22.4:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.16.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-checkmate/package.py b/var/spack/repos/builtin/packages/r-checkmate/package.py
index 7904ee365b..e1e145590a 100644
--- a/var/spack/repos/builtin/packages/r-checkmate/package.py
+++ b/var/spack/repos/builtin/packages/r-checkmate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RCheckmate(RPackage):
- """Tests and assertions to perform frequent argument checks.
+ """Fast and Versatile Argument Checks
+
+ Tests and assertions to perform frequent argument checks.
A substantial part of the package was written in C to
minimize any worries about execution time overhead."""
@@ -15,6 +17,7 @@ class RCheckmate(RPackage):
url = "https://cloud.r-project.org/src/contrib/checkmate_1.8.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/checkmate"
+ version('2.0.0', sha256='0dc25b0e20c04836359df1885d099c6e4ad8ae0e585a9e4107f7ea945d9c6fa4')
version('1.9.4', sha256='faa25754b757fe483b876f5d07b73f76f69a1baa971420892fadec4af4bbad21')
version('1.8.4', sha256='6f948883e5a885a1c409d997f0c782e754a549227ec3c8eb18318deceb38f8f6')
diff --git a/var/spack/repos/builtin/packages/r-checkpoint/package.py b/var/spack/repos/builtin/packages/r-checkpoint/package.py
index 4bed14e6e1..6b5da99426 100644
--- a/var/spack/repos/builtin/packages/r-checkpoint/package.py
+++ b/var/spack/repos/builtin/packages/r-checkpoint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,29 @@ from spack import *
class RCheckpoint(RPackage):
- """The goal of checkpoint is to solve the problem of package
- reproducibility in R. Specifically, checkpoint allows you to
- install packages as they existed on CRAN on a specific snapshot
- date as if you had a CRAN time machine."""
+ """Install Packages from Snapshots on the Checkpoint Server for Reproducibility
+
+ The goal of checkpoint is to solve the problem of package reproducibility
+ in R. Specifically, checkpoint allows you to install packages as they
+ existed on CRAN on a specific snapshot date as if you had a CRAN time
+ machine. To achieve reproducibility, the checkpoint() function installs the
+ packages required or called by your project and scripts to a local library
+ exactly as they existed at the specified point in time. Only those packages
+ are available to your project, thereby avoiding any package updates that
+ came later and may have altered your results. In this way, anyone using
+ checkpoint's checkpoint() can ensure the reproducibility of your scripts or
+ projects at any time. To create the snapshot archives, once a day (at
+ midnight UTC) Microsoft refreshes the Austria CRAN mirror on the "Microsoft
+ R Archived Network" server (<https://mran.microsoft.com/>). Immediately
+ after completion of the rsync mirror process, the process takes a snapshot,
+ thus creating the archive. Snapshot archives exist starting from
+ 2014-09-17."""
homepage = "https://cloud.r-project.org/package=checkpoint"
url = "https://cloud.r-project.org/src/contrib/checkpoint_0.4.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/checkpoint"
+ version('0.4.10', sha256='7362ae9703763fe4652d0b592cd913ce506f072a18e5cf5970d08d7cdf4d126a')
version('0.4.6', sha256='fd1a5edb5cb1a40d7ed26bb196de566110fe2ef62e70b4e947c003576a03ebb2')
version('0.4.3', sha256='c3e862f89f8838183d6028f7ed13683aec562e6dab77ad4b6a5e24ec653cfb64')
version('0.3.15', sha256='09f1feeb2b5b8b409a2e16a9185827b8da5e555f1aa84442a287f15e452beed7')
diff --git a/var/spack/repos/builtin/packages/r-chemometrics/package.py b/var/spack/repos/builtin/packages/r-chemometrics/package.py
index b4b8f01804..ee97cbaa49 100644
--- a/var/spack/repos/builtin/packages/r-chemometrics/package.py
+++ b/var/spack/repos/builtin/packages/r-chemometrics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-chipseq/package.py b/var/spack/repos/builtin/packages/r-chipseq/package.py
new file mode 100644
index 0000000000..6c955c8940
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-chipseq/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RChipseq(RPackage):
+ """A package for analyzing chipseq data
+
+ Tools for helping process short read data for chipseq experiments"""
+
+ homepage = "https://bioconductor.org/packages/release/bioc/html/chipseq.html"
+ git = "https://git.bioconductor.org/packages/chipseq"
+
+ maintainers = ['dorton21']
+
+ version('1.40.0', commit='84bcbc0b7ad732730b5989a308f1624a6a358df1')
+
+ depends_on('r@2.10:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.1.0:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.25:', type=('build', 'run'))
+ depends_on('r-iranges@2.13.12:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.31.8:', type=('build', 'run'))
+ depends_on('r-shortread', type=('build', 'run'))
+ depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-chron/package.py b/var/spack/repos/builtin/packages/r-chron/package.py
index f47ab66c6f..33cf9edf8e 100644
--- a/var/spack/repos/builtin/packages/r-chron/package.py
+++ b/var/spack/repos/builtin/packages/r-chron/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,16 @@ from spack import *
class RChron(RPackage):
- """Chronological objects which can handle dates and times."""
+ """Chronological objects which can handle dates and times.
+
+ Provides chronological objects which can handle dates and times.
+ """
homepage = "https://cloud.r-project.org/package=chron"
url = "https://cloud.r-project.org/src/contrib/chron_2.3-47.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/chron"
+ version('2.3-56', sha256='863ecbb951a3da994761ea9062fa96d34e94e19fbc4122521ac179274dfa3f5d')
version('2.3-53', sha256='521814b46ba958eae28e29d8766aebd285da5e6fa16c5806603df3ae39f77309')
version('2.3-52', sha256='c47fcf4abb635babe6337604c876d4853d8a24639a98b71523746c56ce75b4a0')
version('2.3-47', sha256='9a8c771021165de517e54c3369c622aaac1bf3e220a2fbf595aba285e60445f6')
diff --git a/var/spack/repos/builtin/packages/r-circlize/package.py b/var/spack/repos/builtin/packages/r-circlize/package.py
index ea9dc2e012..14af2b7475 100644
--- a/var/spack/repos/builtin/packages/r-circlize/package.py
+++ b/var/spack/repos/builtin/packages/r-circlize/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,26 +7,31 @@ from spack import *
class RCirclize(RPackage):
- """Circular layout is an efficient way for the visualization of huge
- amounts of information. Here this package provides an implementation
- of circular layout generation in R as well as an enhancement of
- available software. The flexibility of the package is based on the
- usage of low-level graphics functions such that self-defined
- high-level graphics can be easily implemented by users for specific
- purposes. Together with the seamless connection between the powerful
- computational and visual environment in R, it gives users more
- convenience and freedom to design figures for better understanding
- complex patterns behind multiple dimensional data."""
+ """Circular Visualization
+
+ Circular layout is an efficient way for the visualization of huge amounts
+ of information. Here this package provides an implementation of circular
+ layout generation in R as well as an enhancement of available software. The
+ flexibility of the package is based on the usage of low-level graphics
+ functions such that self-defined high-level graphics can be easily
+ implemented by users for specific purposes. Together with the seamless
+ connection between the powerful computational and visual environment in R,
+ it gives users more convenience and freedom to design figures for better
+ understanding complex patterns behind multiple dimensional data. The
+ package is described in Gu et al. 2014
+ <doi:10.1093/bioinformatics/btu393>."""
homepage = "https://cloud.r-project.org/package=circlize"
url = "https://cloud.r-project.org/src/contrib/circlize_0.4.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/circlize"
+ version('0.4.12', sha256='b3b60caa5292cf980cf474c85f59582f6862925631a4da86a78eac05903252f4')
version('0.4.6', sha256='cec88cfc5e512a111cc37177552c25698ccc0e9bbecb0d6e60657e7b115a56fa')
version('0.4.1', sha256='204a170ae3b982f09b652c4583189907cfa42a29bc7efaba02a1e0d79f1cf1f0')
version('0.4.0', sha256='abdc1bbe264be42c1d7b65869979da7cd131032fd6fd3f11f9744dae54e83f5c')
depends_on('r@3.0.0:', type=('build', 'run'))
- depends_on('r-globaloptions@0.1.0:', type=('build', 'run'))
+ depends_on('r-globaloptions@0.1.0:', when='@:0.4.6', type=('build', 'run'))
+ depends_on('r-globaloptions@0.1.2:', when='@0.4.12:', type=('build', 'run'))
depends_on('r-shape', type=('build', 'run'))
depends_on('r-colorspace', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-circstats/package.py b/var/spack/repos/builtin/packages/r-circstats/package.py
new file mode 100644
index 0000000000..dad3b152f6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-circstats/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RCircstats(RPackage):
+ """Circular Statistics, from "Topics in Circular Statistics" (2001)
+
+ Circular Statistics, from "Topics in Circular Statistics" (2001) S.
+ Rao Jammalamadaka and A. SenGupta, World Scientific."""
+
+ homepage = "https://cloud.r-project.org/package=CircStats"
+ url = "https://cloud.r-project.org/src/contrib/CircStats_0.2-6.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/CircStats"
+
+ maintainers = ['dorton21']
+
+ version('0.2-6', sha256='8efed93b75b314577341effea214e3dd6e0a515cfe1212eb051047a1f3276f1d')
+
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-boot', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-class/package.py b/var/spack/repos/builtin/packages/r-class/package.py
index d15932eae2..b61fb9b8c6 100644
--- a/var/spack/repos/builtin/packages/r-class/package.py
+++ b/var/spack/repos/builtin/packages/r-class/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RClass(RPackage):
- """Various functions for classification, including k-nearest neighbour,
+ """Functions for Classification
+
+ Various functions for classification, including k-nearest neighbour,
Learning Vector Quantization and Self-Organizing Maps."""
- homepage = "http://www.stats.ox.ac.uk/pub/MASS4/"
+ homepage = "https://www.stats.ox.ac.uk/pub/MASS4/"
url = "https://cloud.r-project.org/src/contrib/class_7.3-14.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/class"
+ version('7.3-17', sha256='be1f85b6df7556db93f50cb08106aac6620d4b5bb3fee846422863a022461313')
version('7.3-15', sha256='f6bf33d610c726d58622b6cea78a808c7d6a317d02409d27c17741dfd1c730f4')
version('7.3-14', sha256='18b876dbc18bebe6a00890eab7d04ef72b903ba0049d5ce50731406a82426b9c')
diff --git a/var/spack/repos/builtin/packages/r-classint/package.py b/var/spack/repos/builtin/packages/r-classint/package.py
index 66f2e095a9..a39327aa88 100644
--- a/var/spack/repos/builtin/packages/r-classint/package.py
+++ b/var/spack/repos/builtin/packages/r-classint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RClassint(RPackage):
- """Selected commonly used methods for choosing univariate class intervals
- for mapping or other graphics purposes."""
+ """Choose Univariate Class Intervals
+
+ Selected commonly used methods for choosing univariate class intervals for
+ mapping or other graphics purposes."""
homepage = "https://cloud.r-project.org/package=classInt"
url = "https://cloud.r-project.org/src/contrib/classInt_0.1-24.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/classInt"
+ version('0.4-3', sha256='9ede7a2a7a6b6c114919a3315a884fb592e33b037a50a4fe45cbd4fe2fc434ac')
version('0.4-1', sha256='39c63f8e37b379033d73d57929b5b8ea41b0023626cc1cec648d66bade5d0103')
version('0.3-3', sha256='a93e685ef9c40d5977bb91d7116505a25303b229897a20544722a94ea1365f30')
version('0.3-1', sha256='e2e6f857b544dfecb482b99346aa3ecfdc27b4d401c3537ee8fbaf91caca92b9')
diff --git a/var/spack/repos/builtin/packages/r-cli/package.py b/var/spack/repos/builtin/packages/r-cli/package.py
index d8a169c779..8f5f73ed25 100644
--- a/var/spack/repos/builtin/packages/r-cli/package.py
+++ b/var/spack/repos/builtin/packages/r-cli/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,20 @@ from spack import *
class RCli(RPackage):
- """A suite of tools designed to build attractive command line interfaces
- ('CLIs'). Includes tools for drawing rules, boxes, trees, and
- 'Unicode' symbols with 'ASCII' alternatives."""
+ """Helpers for Developing Command Line Interfaces
+
+ A suite of tools to build attractive command line interfaces ('CLIs'), from
+ semantic elements: headings, lists, alerts, paragraphs, etc. Supports
+ custom themes via a 'CSS'-like language. It also contains a number of lower
+ level 'CLI' elements: rules, boxes, trees, and 'Unicode' symbols with
+ 'ASCII' alternatives. It integrates with the 'crayon' package to support
+ 'ANSI' terminal colors."""
homepage = "https://github.com/r-lib/cli#readme"
url = "https://cloud.r-project.org/src/contrib/cli_1.0.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/cli"
+ version('2.2.0', sha256='39a77af61724f8cc1f5117011e17bb2a488cbac61a7c112db078a675d3ac40b8')
version('2.0.2', sha256='490834e5b80eb036befa0e150996bcab1c4d5d168c3d45209926e52d0d5413b6')
version('1.1.0', sha256='4fc00fcdf4fdbdf9b5792faee8c7cf1ed5c4f45b1221d961332cda82dbe60d0a')
version('1.0.1', sha256='ef80fbcde15760fd55abbf9413b306e3971b2a7034ab8c415fb52dc0088c5ee4')
diff --git a/var/spack/repos/builtin/packages/r-clipr/package.py b/var/spack/repos/builtin/packages/r-clipr/package.py
index 7ea728fe97..e97fd95623 100644
--- a/var/spack/repos/builtin/packages/r-clipr/package.py
+++ b/var/spack/repos/builtin/packages/r-clipr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RClipr(RPackage):
- """Simple utility functions to read from and write to the Windows, OS X,
- and X11 clipboards."""
+ """Read and Write from the System Clipboard
+
+ Simple utility functions to read from and write to the Windows, OS X, and
+ X11 clipboards."""
homepage = "https://github.com/mdlincoln/clipr"
url = "https://cloud.r-project.org/src/contrib/clipr_0.4.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/clipr"
+ version('0.7.1', sha256='ffad477b07847e3b68f7e4406bbd323025a8dae7e3c768943d4d307ee3248afb')
version('0.7.0', sha256='03a4e4b72ec63bd08b53fe62673ffc19a004cc846957a335be2b30d046b8c2e2')
version('0.5.0', sha256='fd303f8b7f29badcdf490bb2d579acdfc4f4e1aa9c90ac77ab9d05ce3d053dbf')
version('0.4.0', sha256='44a2f1ab4fde53e4fe81cf5800aa6ad45b72b5da93d6fe4d3661d7397220e8af')
diff --git a/var/spack/repos/builtin/packages/r-clisymbols/package.py b/var/spack/repos/builtin/packages/r-clisymbols/package.py
index c5ed8c3e9f..1834c6111c 100644
--- a/var/spack/repos/builtin/packages/r-clisymbols/package.py
+++ b/var/spack/repos/builtin/packages/r-clisymbols/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-clue/package.py b/var/spack/repos/builtin/packages/r-clue/package.py
index 30893dccaf..c442e863d5 100644
--- a/var/spack/repos/builtin/packages/r-clue/package.py
+++ b/var/spack/repos/builtin/packages/r-clue/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,13 @@ from spack import *
class RClue(RPackage):
- """clue: Cluster Ensembles"""
+ """Cluster Ensembles"""
homepage = "https://cloud.r-project.org/package=clue"
url = "https://cloud.r-project.org/src/contrib/clue_0.3-57.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/clue"
+ version('0.3-58', sha256='2ab6662eaa1103a7b633477e8ebd266b262ed54fac6f9326b160067a2ded9ce7')
version('0.3-57', sha256='6e369d07b464a9624209a06b5078bf988f01f7963076e946649d76aea0622d17')
depends_on('r@3.2.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-cluster/package.py b/var/spack/repos/builtin/packages/r-cluster/package.py
index 34a504e751..20c0ff716c 100644
--- a/var/spack/repos/builtin/packages/r-cluster/package.py
+++ b/var/spack/repos/builtin/packages/r-cluster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-clustergeneration/package.py b/var/spack/repos/builtin/packages/r-clustergeneration/package.py
index c7cd14d97c..6e9fb3fd73 100644
--- a/var/spack/repos/builtin/packages/r-clustergeneration/package.py
+++ b/var/spack/repos/builtin/packages/r-clustergeneration/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,24 @@ from spack import *
class RClustergeneration(RPackage):
- """Random Cluster Generation (with Specified Degree of Separation)"""
+ """Random Cluster Generation (with Specified Degree of Separation)
+
+ We developed the clusterGeneration package to provide functions for
+ generating random clusters, generating random covariance/correlation
+ matrices, calculating a separation index (data and population version) for
+ pairs of clusters or cluster distributions, and 1-D and 2-D projection
+ plots to visualize clusters. The package also contains a function to
+ generate random clusters based on factorial designs with factors such as
+ degree of separation, number of clusters, number of variables, number of
+ noisy variables."""
homepage = "https://cloud.r-project.org/package=clusterGeneration"
url = "https://cloud.r-project.org/src/contrib/clusterGeneration_1.3.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/clusterGeneration/"
+ version('1.3.7', sha256='534f29d8f7ed11e6e9a496f15845b588ec7133f3da5e6def8140b88500e52d5c')
version('1.3.4', sha256='7c591ad95a8a9d7fb0e4d5d80dfd78f7d6a63cf7d11eb53dd3c98fdfb5b868aa')
depends_on('r@2.9.1:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@1.3.7:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-clusterprofiler/package.py b/var/spack/repos/builtin/packages/r-clusterprofiler/package.py
index 2f71d6df7a..7f6c6be3eb 100644
--- a/var/spack/repos/builtin/packages/r-clusterprofiler/package.py
+++ b/var/spack/repos/builtin/packages/r-clusterprofiler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RClusterprofiler(RPackage):
"""statistical analysis and visualization of functional profiles for genes
- and gene clusters.
+ and gene clusters
This package implements methods to analyze and visualize functional
profiles (GO and KEGG) of gene and gene clusters."""
@@ -16,6 +16,7 @@ class RClusterprofiler(RPackage):
homepage = "https://bioconductor.org/packages/clusterProfiler"
git = "https://git.bioconductor.org/packages/clusterProfiler.git"
+ version('3.18.0', commit='064a6e612ce27e260e33af78b907bee4065ff821')
version('3.12.0', commit='6ec88d10832bdfd938e9c065b377015eedb7eee2')
version('3.10.1', commit='39927ef7ff6f97e27557bcf4147e2133b364fd3c')
version('3.8.1', commit='81e1a7ac49e4713703c55f87f945b20de5e7ab36')
@@ -23,20 +24,23 @@ class RClusterprofiler(RPackage):
version('3.4.4', commit='b86b00e8405fe130e439362651a5567736e2d9d7')
depends_on('r@3.3.1:', type=('build', 'run'))
- depends_on('r-dose@3.1.3:', type=('build', 'run'))
+ depends_on('r@3.4.0:', when='@3.8.1:', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
- depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-downloader', when='@3.18.0:', type=('build', 'run'))
+ depends_on('r-dose@3.1.3:', type=('build', 'run'))
+ depends_on('r-dose@3.3.2:', when='@3.6.0:', type=('build', 'run'))
+ depends_on('r-dose@3.5.1:', when='@3.8.1:', type=('build', 'run'))
+ depends_on('r-dose@3.13.1:', when='@3.18.0:', type=('build', 'run'))
+ depends_on('r-dplyr', when='@3.18.0:', type=('build', 'run'))
+ depends_on('r-enrichplot@0.99.7:', when='@3.8.1:', type=('build', 'run'))
+ depends_on('r-enrichplot@1.9.3:', when='@3.18.0:', type=('build', 'run'))
depends_on('r-go-db', type=('build', 'run'))
- depends_on('r-gosemsim@2.0.0:', when='@3.4.4:3.6.0', type=('build', 'run'))
depends_on('r-gosemsim', type=('build', 'run'))
+ depends_on('r-gosemsim@2.0.0:', when='@3.4.4:3.6.0', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-plyr', type=('build', 'run'))
depends_on('r-qvalue', type=('build', 'run'))
+ depends_on('r-rlang', when='@3.18.0:', type=('build', 'run'))
depends_on('r-rvcheck', type=('build', 'run'))
depends_on('r-tidyr', type=('build', 'run'))
-
- depends_on('r-dose@3.3.2:', when='@3.6.0:', type=('build', 'run'))
-
- depends_on('r@3.4.0:', when='@3.8.1:', type=('build', 'run'))
- depends_on('r-dose@3.5.1:', when='@3.8.1:', type=('build', 'run'))
- depends_on('r-enrichplot@0.99.7:', when='@3.8.1:', type=('build', 'run'))
+ depends_on('r-ggplot2', when='@:3.12.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-cner/package.py b/var/spack/repos/builtin/packages/r-cner/package.py
index 1eadf7f279..6f652c74b1 100644
--- a/var/spack/repos/builtin/packages/r-cner/package.py
+++ b/var/spack/repos/builtin/packages/r-cner/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RCner(RPackage):
- """CNE Detection and Visualization.
+ """CNE Detection and Visualization
Large-scale identification and advanced visualization of sets of
conserved noncoding elements."""
@@ -15,6 +15,7 @@ class RCner(RPackage):
homepage = "https://bioconductor.org/packages/CNEr"
git = "https://git.bioconductor.org/packages/CNEr.git"
+ version('1.26.0', commit='e5e582da6feeae0618c4460f16ece724215e3b20')
version('1.20.0', commit='9c25d8e8f6f5fd8a5311f554c86e7ca1140a4ca5')
version('1.18.1', commit='66aa88af04364c81832f3b09bad898f3c117f606')
version('1.16.1', commit='a2bec4b98d5938709f959a69c151f553ef357941')
@@ -22,14 +23,16 @@ class RCner(RPackage):
version('1.12.1', commit='90d611f9cd19a73d0fe92ab03ef428519d64c017')
depends_on('r@3.2.2:', type=('build', 'run'))
+ depends_on('r@3.4:', when='@1.14.0:', type=('build', 'run'))
depends_on('r-biostrings@2.33.4:', type=('build', 'run'))
+ depends_on('r-dbi@0.6:', type=('build', 'run'))
+ depends_on('r-dbi@0.7:', when='@1.14.0:', type=('build', 'run'))
depends_on('r-rsqlite@0.11.4:', type=('build', 'run'))
depends_on('r-genomeinfodb@1.1.3:', type=('build', 'run'))
depends_on('r-genomicranges@1.23.16:', type=('build', 'run'))
depends_on('r-rtracklayer@1.25.5:', type=('build', 'run'))
depends_on('r-xvector@0.5.4:', type=('build', 'run'))
depends_on('r-genomicalignments@1.1.9:', type=('build', 'run'))
- depends_on('r-dbi@0.6:', type=('build', 'run'))
depends_on('r-s4vectors@0.13.13:', type=('build', 'run'))
depends_on('r-iranges@2.5.27:', type=('build', 'run'))
depends_on('r-readr@0.2.2:', type=('build', 'run'))
@@ -41,6 +44,3 @@ class RCner(RPackage):
depends_on('r-go-db@3.3.0:', type=('build', 'run'))
depends_on('r-r-utils@2.3.0:', type=('build', 'run'))
depends_on('r-keggrest@1.14.0:', type=('build', 'run'))
-
- depends_on('r@3.4:', when='@1.14.0:', type=('build', 'run'))
- depends_on('r-dbi@0.7:', when='@1.14.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-coda/package.py b/var/spack/repos/builtin/packages/r-coda/package.py
index 98397e80af..228d511951 100644
--- a/var/spack/repos/builtin/packages/r-coda/package.py
+++ b/var/spack/repos/builtin/packages/r-coda/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,17 @@ from spack import *
class RCoda(RPackage):
- """Provides functions for summarizing and plotting the output from
- Markov Chain Monte Carlo (MCMC) simulations, as well as
- diagnostic tests of convergence to the equilibrium distribution
- of the Markov chain."""
+ """Output Analysis and Diagnostics for MCMC
+
+ Provides functions for summarizing and plotting the output from Markov
+ Chain Monte Carlo (MCMC) simulations, as well as diagnostic tests of
+ convergence to the equilibrium distribution of the Markov chain."""
homepage = "https://cloud.r-project.org/package=coda"
url = "https://cloud.r-project.org/src/contrib/coda_0.19-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/coda"
+ version('0.19-4', sha256='422d3cfd34797a3631e9c4812431940599c0ca4bb9937797bed07b7b1d6fe58f')
version('0.19-3', sha256='d3df1fc848bcf1af8fae13d61eeab60e99a3d4b4db384bec4326f909f502c5d6')
version('0.19-2', sha256='678a7e6a87a2723089daeb780ea37ac3d4319b37eabe26928ea3fa9c9b1eda0d')
version('0.19-1', sha256='d41ff5731da6805170769dba75dd011ab33f916d15b2336001f279e21a524491')
diff --git a/var/spack/repos/builtin/packages/r-codetools/package.py b/var/spack/repos/builtin/packages/r-codetools/package.py
index a1e189a942..1b8d808491 100644
--- a/var/spack/repos/builtin/packages/r-codetools/package.py
+++ b/var/spack/repos/builtin/packages/r-codetools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,8 @@ class RCodetools(RPackage):
url = "https://cloud.r-project.org/src/contrib/codetools_0.2-15.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/codetools"
- version('0.2-16', sha256='f67a66175cb5d8882457d1e9b91ea2f16813d554fa74f80c1fd6e17cf1877501')
+ version('0.2-18', sha256='1a9ea6b9792dbd1688078455929385acc3a5e4bef945c77bec1261fa4a084c28')
+ version('0.2-16', sha256='c276757c3adabaf700f2ea25835892b09bc1bd438ebd17c805ea9073ed8a74b6')
version('0.2-15', sha256='4e0798ed79281a614f8cdd199e25f2c1bd8f35ecec902b03016544bd7795fa40')
version('0.2-14', sha256='270d603b89076081af8d2db0256927e55ffeed4c27309d50deea75b444253979')
diff --git a/var/spack/repos/builtin/packages/r-codex/package.py b/var/spack/repos/builtin/packages/r-codex/package.py
index 11b161ce43..da5678202b 100644
--- a/var/spack/repos/builtin/packages/r-codex/package.py
+++ b/var/spack/repos/builtin/packages/r-codex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,10 @@ from spack import *
class RCodex(RPackage):
- """A normalization and copy number variation calling procedure for whole
+ """A Normalization and Copy Number Variation Detection Method for Whole
+ Exome Sequencing
+
+ A normalization and copy number variation calling procedure for whole
exome DNA sequencing data. CODEX relies on the availability of multiple
samples processed using the same sequencing pipeline for normalization, and
does not require matched controls. The normalization model in CODEX
@@ -17,9 +20,10 @@ class RCodex(RPackage):
segmentation procedure that explicitly models the count-based exome
sequencing data."""
- homepage = "http://www.bioconductor.org/packages/release/bioc/html/CODEX.html"
+ homepage = "https://www.bioconductor.org/packages/release/bioc/html/CODEX.html"
git = "https://git.bioconductor.org/packages/CODEX"
+ version('1.22.0', commit='aa0ee4278111a46e0c790312b0526ba07aab22eb')
version('1.18.0', commit='9a95cccc7ff3fe587636317e21e39a07dddf80bc')
depends_on('r@3.2.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-coin/package.py b/var/spack/repos/builtin/packages/r-coin/package.py
index 5e65ba4922..91fe394026 100644
--- a/var/spack/repos/builtin/packages/r-coin/package.py
+++ b/var/spack/repos/builtin/packages/r-coin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RCoin(RPackage):
- """Conditional inference procedures for the general independence problem
+ """Conditional Inference Procedures in a Permutation Test Framework
+
+ Conditional inference procedures for the general independence problem
including two-sample, K-sample (non-parametric ANOVA), correlation,
censored, ordered and multivariate problems."""
@@ -15,6 +17,7 @@ class RCoin(RPackage):
url = "https://cloud.r-project.org/src/contrib/coin_1.1-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/coin"
+ version('1.3-1', sha256='5de2519a6e2b059bba9d74c58085cccaff1aaaa0454586ed164a108ebd1b2062')
version('1.3-0', sha256='adcebb37e0a7dfddbf8ec1e09c12a809bd76d90b5b8ff2b1048a75252ba11ef8')
version('1.2-2', sha256='d518065d3e1eb00121cb4e0200e1e4ae6b68eca6e249afc38bbffa35d24105bb')
version('1.1-3', sha256='8b88ecc25903c83539dfc73cdc31a160e2aa4a7bea1773b22c79133d2f006035')
@@ -22,8 +25,8 @@ class RCoin(RPackage):
depends_on('r@2.14.0:', when='@:1.2-2', type=('build', 'run'))
depends_on('r@3.4.0:', when='@1.3-0:', type=('build', 'run'))
depends_on('r-survival', type=('build', 'run'))
+ depends_on('r-libcoin@1.0-0:', when='@1.3-0:', type=('build', 'run'))
+ depends_on('r-matrixstats@0.54.0:', when='@1.3-0:', type=('build', 'run'))
depends_on('r-modeltools@0.2-9:', type=('build', 'run'))
depends_on('r-mvtnorm@1.0-5:', type=('build', 'run'))
depends_on('r-multcomp', type=('build', 'run'))
- depends_on('r-libcoin@1.0-0:', when='@1.3-0:', type=('build', 'run'))
- depends_on('r-matrixstats@0.54.0:', when='@1.3-0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-colorspace/package.py b/var/spack/repos/builtin/packages/r-colorspace/package.py
index 8e1d6a700b..fe71033bda 100644
--- a/var/spack/repos/builtin/packages/r-colorspace/package.py
+++ b/var/spack/repos/builtin/packages/r-colorspace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,29 @@ from spack import *
class RColorspace(RPackage):
- """Carries out mapping between assorted color spaces including RGB, HSV,
- HLS, CIEXYZ, CIELUV, HCL (polar CIELUV), CIELAB and polar CIELAB.
- Qualitative, sequential, and diverging color palettes based on HCL colors
- are provided."""
+ """A Toolbox for Manipulating and Assessing Colors and Palettes
+
+ Carries out mapping between assorted color spaces including RGB, HSV, HLS,
+ CIEXYZ, CIELUV, HCL (polar CIELUV), CIELAB, and polar CIELAB. Qualitative,
+ sequential, and diverging color palettes based on HCL colors are provided
+ along with corresponding ggplot2 color scales. Color palette choice is
+ aided by an interactive app (with either a Tcl/Tk or a shiny graphical user
+ interface) and shiny apps with an HCL color picker and a color vision
+ deficiency emulator. Plotting functions for displaying and assessing
+ palettes include color swatches, visualizations of the HCL space, and
+ trajectories in HCL and/or RGB spectrum. Color manipulation functions
+ include: desaturation, lightening/darkening, mixing, and simulation of
+ color vision deficiencies (deutanomaly, protanomaly, tritanomaly). Details
+ can be found on the project web page at
+ <https://colorspace.R-Forge.R-project.org/> and in the accompanying
+ scientific paper: Zeileis et al. (2020, Journal of Statistical Software,
+ <doi:10.18637/jss.v096.i01>)."""
homepage = "https://cloud.r-project.org/package=colorspace"
url = "https://cloud.r-project.org/src/contrib/colorspace_1.3-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/colorspace"
+ version('2.0-0', sha256='4e6a53af9918db282cefdc71eaa30f507d4d1d682bcfb74cb0dd68a0b282018e')
version('1.4-1', sha256='693d713a050f8bfecdb7322739f04b40d99b55aed168803686e43401d5f0d673')
version('1.4-0', sha256='ce003c5958dd704697959e9dc8a108c8cb568f8d78ece113235732afc5dff556')
version('1.3-2', sha256='dd9fd2342b650456901d014e7ff6d2e201f8bec0b555be63b1a878d2e1513e34')
diff --git a/var/spack/repos/builtin/packages/r-colourpicker/package.py b/var/spack/repos/builtin/packages/r-colourpicker/package.py
new file mode 100644
index 0000000000..97620f0d7c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-colourpicker/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 RColourpicker(RPackage):
+ """A Colour Picker Tool for Shiny and for Selecting Colours in Plots:
+
+ A colour picker that can be used as an input in 'Shiny' apps or Rmarkdown
+ documents. The colour picker supports alpha opacity, custom colour
+ palettes, and many more options. A Plot Colour Helper tool is available as
+ an 'RStudio' Addin, which helps you pick colours to use in your plots. A
+ more generic Colour Picker 'RStudio' Addin is also provided to let you
+ select colours to use in your R code."""
+
+ homepage = "https://github.com/daattali/colourpicker"
+ cran = "colourpicker"
+
+ version('1.1.0', sha256='2dfbb6262d187d3b17357ff9c22670ced3621feda5b2a2a500558478e4d551e2')
+
+ depends_on('r@3.1.0:', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-htmlwidgets@0.7:', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-miniui@0.1.1:', type=('build', 'run'))
+ depends_on('r-shiny@0.11.1:', type=('build', 'run'))
+ depends_on('r-shinyjs@2.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-combinat/package.py b/var/spack/repos/builtin/packages/r-combinat/package.py
index 25323c66c5..ee3cfd134a 100644
--- a/var/spack/repos/builtin/packages/r-combinat/package.py
+++ b/var/spack/repos/builtin/packages/r-combinat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-commonmark/package.py b/var/spack/repos/builtin/packages/r-commonmark/package.py
index 79d831d895..b2ff563661 100644
--- a/var/spack/repos/builtin/packages/r-commonmark/package.py
+++ b/var/spack/repos/builtin/packages/r-commonmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-complexheatmap/package.py b/var/spack/repos/builtin/packages/r-complexheatmap/package.py
index 6d4469ed09..71309ea39f 100644
--- a/var/spack/repos/builtin/packages/r-complexheatmap/package.py
+++ b/var/spack/repos/builtin/packages/r-complexheatmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RComplexheatmap(RPackage):
- """Make Complex Heatmaps.
+ """Make Complex Heatmaps
Complex heatmaps are efficient to visualize associations between
different sources of data sets and reveal potential patterns. Here the
@@ -17,6 +17,7 @@ class RComplexheatmap(RPackage):
homepage = "https://bioconductor.org/packages/ComplexHeatmap"
git = "https://git.bioconductor.org/packages/ComplexHeatmap.git"
+ version('2.6.2', commit='0383bada2c76dc3dde71cf6a625016b619aec4d3')
version('2.0.0', commit='97863d8ddfe36a52df0149b0b040dc386a03d2e4')
version('1.20.0', commit='1501ecc92fda07efa3652e41626b21741951ce0f')
version('1.18.1', commit='be0dd9d666a219c61335efe0dac50b2eed2a8825')
@@ -25,16 +26,18 @@ class RComplexheatmap(RPackage):
depends_on('r@3.1.2:', type=('build', 'run'))
depends_on('r-circlize@0.3.4:', type=('build', 'run'))
+ depends_on('r-circlize@0.4.1:', when='@1.17.1:', type=('build', 'run'))
+ depends_on('r-circlize@0.4.5:', when='@2.0.0:', type=('build', 'run'))
depends_on('r-getoptlong', type=('build', 'run'))
depends_on('r-colorspace', type=('build', 'run'))
+ depends_on('r-clue', when='@2.0.0:', type=('build', 'run'))
depends_on('r-rcolorbrewer', type=('build', 'run'))
- depends_on('r-dendextend@1.0.1:', when='@1.14.0:1.17.1', type=('build', 'run'))
depends_on('r-globaloptions@0.0.10:', type=('build', 'run'))
-
- depends_on('r-circlize@0.4.1:', when='@1.17.1:', type=('build', 'run'))
-
depends_on('r-globaloptions@0.1.0:', when='@1.20.0:', type=('build', 'run'))
-
- depends_on('r-circlize@0.4.5:', when='@2.0.0:', type=('build', 'run'))
- depends_on('r-clue', when='@2.0.0:', type=('build', 'run'))
depends_on('r-png', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-cairo', when='@2.6.2:', type=('build', 'run'))
+ depends_on('r-digest', when='@2.6.2:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.26.1:', when='@2.6.2:', type=('build', 'run'))
+ depends_on('r-iranges', when='@2.6.2:', type=('build', 'run'))
+ depends_on('r-matrixstats', when='@2.6.2:', type=('build', 'run'))
+ depends_on('r-dendextend@1.0.1:', when='@1.14.0:1.17.1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-compositions/package.py b/var/spack/repos/builtin/packages/r-compositions/package.py
index 49c8c48e9c..4f6c43359f 100644
--- a/var/spack/repos/builtin/packages/r-compositions/package.py
+++ b/var/spack/repos/builtin/packages/r-compositions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,22 @@ from spack import *
class RCompositions(RPackage):
- """Compositional Data Analysis"""
+ """Compositional Data Analysis
+
+ Provides functions for the consistent analysis of compositional data (e.g.
+ portions of substances) and positive numbers (e.g. concentrations) in the
+ way proposed by J. Aitchison and V. Pawlowsky-Glahn."""
homepage = "https://cloud.r-project.org/package=compositions"
url = "https://cloud.r-project.org/src/contrib/compositions_1.40-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/compositions"
+ version('2.0-1', sha256='84a291308faf858e5a9d9570135c2da5e57b0887f407903485fa85d09da61a0f')
version('1.40-2', sha256='110d71ae000561987cb73fc76cd953bd69d37562cb401ed3c36dca137d01b78a')
depends_on('r@2.2.0:', type=('build', 'run'))
depends_on('r-tensora', type=('build', 'run'))
depends_on('r-robustbase', type=('build', 'run'))
- depends_on('r-energy', type=('build', 'run'))
depends_on('r-bayesm', type=('build', 'run'))
+ depends_on('r-mass', when='@2.0-1:', type=('build', 'run'))
+ depends_on('r-energy', when='@:1.40-2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-compquadform/package.py b/var/spack/repos/builtin/packages/r-compquadform/package.py
new file mode 100644
index 0000000000..2cd7184238
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-compquadform/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 RCompquadform(RPackage):
+ """Distribution Function of Quadratic Forms in Normal Variables:
+
+ Computes the distribution function of quadratic forms in normal variables
+ using Imhof's method, Davies's algorithm, Farebrother's algorithm or Liu et
+ al.'s algorithm."""
+
+ cran = "CompQuadForm"
+
+ version('1.4.3', sha256='042fc56c800dd8f5f47a017e2efa832caf74f0602824abf7099898d9708660c4')
diff --git a/var/spack/repos/builtin/packages/r-condop/package.py b/var/spack/repos/builtin/packages/r-condop/package.py
index 2a51e5f3db..bc15240ddd 100644
--- a/var/spack/repos/builtin/packages/r-condop/package.py
+++ b/var/spack/repos/builtin/packages/r-condop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-conquer/package.py b/var/spack/repos/builtin/packages/r-conquer/package.py
new file mode 100644
index 0000000000..9051a0de80
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-conquer/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RConquer(RPackage):
+ """Convolution-Type Smoothed Quantile Regression
+
+ Fast and accurate convolution-type smoothed quantile regression.
+ Implemented using Barzilai-Borwein gradient descent with a Huber regression
+ warm start. Construct confidence intervals for regression coefficients
+ using multiplier bootstrap."""
+
+ homepage = "https://github.com/XiaoouPan/conquer"
+ url = "https://cloud.r-project.org/src/contrib/conquer_1.0.2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/conquer"
+
+ version('1.0.2', sha256='542f6154ce1ffec0c1b4dd4e1f5b86545015f4b378c4c66a0840c65c57d674ff')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-rcpp@1.0.3:', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-matrixstats', type=('build', 'run'))
+ depends_on('r-rcpparmadillo@0.9.850.1.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-construct/package.py b/var/spack/repos/builtin/packages/r-construct/package.py
index 04ca748153..130fc7e8d8 100644
--- a/var/spack/repos/builtin/packages/r-construct/package.py
+++ b/var/spack/repos/builtin/packages/r-construct/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,24 +7,32 @@ from spack import *
class RConstruct(RPackage):
- """conStruct: Models Spatially Continuous and Discrete Population
- GeneticStructure"""
+ """Models Spatially Continuous and Discrete Population GeneticStructure
+
+ A method for modeling genetic data as a combination of discrete layers,
+ within each of which relatedness may decay continuously with geographic
+ distance. This package contains code for running analyses (which are
+ implemented in the modeling language 'rstan') and visualizing and
+ interpreting output. See the paper for more details on the model and its
+ utility."""
homepage = "https://cloud.r-project.org/package=conStruct"
url = "https://cloud.r-project.org/src/contrib/conStruct_1.0.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/conStruct"
+ version('1.0.4', sha256='4e585b718a361061bc1432cea46fc65f802fb0ef58e4516d33e1af99bbfe90ce')
version('1.0.3', sha256='b449c133a944ad05a28f84f312ed4ccbc1574c4659aa09c678618d2ae9008310')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@3.4.0:', type=('build', 'run'))
- depends_on('r-bh@1.66.0:', type=('build', 'run'))
- depends_on('r-caroline', type=('build', 'run'))
- depends_on('r-doparallel', type=('build', 'run'))
- depends_on('r-foreach', type=('build', 'run'))
- depends_on('r-gtools', type=('build', 'run'))
depends_on('r-rcpp@0.12.0:', type=('build', 'run'))
- depends_on('r-rcppeigen@0.3.3.3.0:', type=('build', 'run'))
depends_on('r-rstan@2.18.1:', type=('build', 'run'))
depends_on('r-rstantools@1.5.0:', type=('build', 'run'))
+ depends_on('r-caroline', type=('build', 'run'))
+ depends_on('r-gtools', type=('build', 'run'))
+ depends_on('r-foreach', type=('build', 'run'))
+ depends_on('r-doparallel', type=('build', 'run'))
depends_on('r-stanheaders@2.18.0:', type=('build', 'run'))
+ depends_on('r-bh@1.66.0:', type=('build', 'run'))
+ depends_on('r-rcppeigen@0.3.3.3.0:', type=('build', 'run'))
depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-convevol/package.py b/var/spack/repos/builtin/packages/r-convevol/package.py
index e3771856a3..ca5c6b2c5b 100644
--- a/var/spack/repos/builtin/packages/r-convevol/package.py
+++ b/var/spack/repos/builtin/packages/r-convevol/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-copula/package.py b/var/spack/repos/builtin/packages/r-copula/package.py
index 0090a65a79..908bf3ab05 100644
--- a/var/spack/repos/builtin/packages/r-copula/package.py
+++ b/var/spack/repos/builtin/packages/r-copula/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RCopula(RPackage):
- """Classes (S4) of commonly used elliptical, Archimedean, extreme-value and
+ """Multivariate Dependence with Copulas
+
+ Classes (S4) of commonly used elliptical, Archimedean, extreme-value and
other copula families, as well as their rotations, mixtures and
asymmetrizations. Nested Archimedean copulas, related tools and special
functions. Methods for density, distribution, random number generation,
@@ -20,13 +22,15 @@ class RCopula(RPackage):
copula, smoothed versions, and non-parametric estimators of the Pickands
dependence function."""
- homepage = "http://copula.r-forge.r-project.org/"
+ homepage = "https://copula.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/copula_0.999-20.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/copula"
+ version('1.0-1', sha256='d09b2ccffc7379e48b00952aa6b282baf502feebaf55cc44e93f881d7b909742')
version('0.999-20', sha256='7d3d47bce2dacb05b94a772f84dbf3d83c99ac2ac11e5f1b4b03d50d9d5c0fb0')
depends_on('r@3.2.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@1.0-1:', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-colorspace', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-corhmm/package.py b/var/spack/repos/builtin/packages/r-corhmm/package.py
index d4c8d6d5e0..ee1701b3f9 100644
--- a/var/spack/repos/builtin/packages/r-corhmm/package.py
+++ b/var/spack/repos/builtin/packages/r-corhmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,17 @@ from spack import *
class RCorhmm(RPackage):
- """corHMM: Analysis of Binary Character Evolution
+ """Hidden Markov Models of Character Evolution
- Fits a hidden rates model that allows different transition rate classes
- on different portions of a phylogeny by treating rate classes as hidden
- states in a Markov process and various other functions for evaluating
- models of binary character evolution."""
+ Fits hidden Markov models of discrete character evolution which allow
+ different transition rate classes on different portions of a phylogeny.
+ Beaulieu et al (2013) <doi:10.1093/sysbio/syt034>."""
homepage = "https://cloud.r-project.org/package=corHMM"
url = "https://cloud.r-project.org/src/contrib/corHMM_1.22.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/corHMM/"
+ version('2.6', sha256='726de9707ede8ef447915171a3abe1003a0e42fe8e17eb440442cac9adf8cdcf')
version('1.22', sha256='d262fa1183eab32087afb70f1789fabae6fb49bec01d627974c54a088a48b10d')
depends_on('r-ape', type=('build', 'run'))
@@ -25,7 +25,11 @@ class RCorhmm(RPackage):
depends_on('r-gensa', type=('build', 'run'))
depends_on('r-expm', type=('build', 'run'))
depends_on('r-numderiv', type=('build', 'run'))
- depends_on('r-nnet', type=('build', 'run'))
depends_on('r-corpcor', type=('build', 'run'))
+ depends_on('r-mass', when='@2.6:', type=('build', 'run'))
+ depends_on('r-nnet', type=('build', 'run'))
depends_on('r-phangorn', type=('build', 'run'))
+ depends_on('r-viridis', when='@2.6:', type=('build', 'run'))
depends_on('r-rmpfr', type=('build', 'run'))
+ depends_on('r-igraph', when='@2.6:', type=('build', 'run'))
+ depends_on('r-phytools', when='@2.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-corpcor/package.py b/var/spack/repos/builtin/packages/r-corpcor/package.py
index 2ecc478894..d92acc0e6d 100644
--- a/var/spack/repos/builtin/packages/r-corpcor/package.py
+++ b/var/spack/repos/builtin/packages/r-corpcor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-corrplot/package.py b/var/spack/repos/builtin/packages/r-corrplot/package.py
index 0cf25830ed..2e39e92df1 100644
--- a/var/spack/repos/builtin/packages/r-corrplot/package.py
+++ b/var/spack/repos/builtin/packages/r-corrplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-countrycode/package.py b/var/spack/repos/builtin/packages/r-countrycode/package.py
index b2b07ff2e4..f8b03108db 100644
--- a/var/spack/repos/builtin/packages/r-countrycode/package.py
+++ b/var/spack/repos/builtin/packages/r-countrycode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-covr/package.py b/var/spack/repos/builtin/packages/r-covr/package.py
index e2c60194db..6a7cfe0391 100644
--- a/var/spack/repos/builtin/packages/r-covr/package.py
+++ b/var/spack/repos/builtin/packages/r-covr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,9 +7,11 @@ from spack import *
class RCovr(RPackage):
- """Track and report code coverage for your package and (optionally)
+ """Test Coverage for Packages
+
+ Track and report code coverage for your package and (optionally)
upload the results to a coverage service like 'Codecov'
- <http://codecov.io> or 'Coveralls' <http://coveralls.io>. Code
+ <http://codecov.io> or 'Coveralls' <https://coveralls.io/>. Code
coverage is a measure of the amount of code being exercised by a
set of tests. It is an indirect measure of test quality and
completeness. This package is compatible with any testing methodology
@@ -20,6 +22,7 @@ class RCovr(RPackage):
url = "https://cloud.r-project.org/src/contrib/covr_3.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/covr"
+ version('3.5.1', sha256='a54cfc3623ea56084158ac5d7fe33f216f45191f6dcddab9c9ed4ec1d9d8ac6c')
version('3.5.0', sha256='cb919912018130164a40803ac573a37dde2186678c058c03c6303d79604979df')
version('3.3.0', sha256='c0aa0bd7b2dc05effdc2367c59d45294f46858930d1b14efb393b205021fc65a')
version('3.2.1', sha256='ea90daa48011e4ac4431ae47ee02fad98f54b529fc3900281cbeef7a2edef0a0')
diff --git a/var/spack/repos/builtin/packages/r-cowplot/package.py b/var/spack/repos/builtin/packages/r-cowplot/package.py
index 8b5ba4e174..16fb5234cf 100644
--- a/var/spack/repos/builtin/packages/r-cowplot/package.py
+++ b/var/spack/repos/builtin/packages/r-cowplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,21 @@ from spack import *
class RCowplot(RPackage):
- """Some helpful extensions and modifications to the 'ggplot2'
- package. In particular, this package makes it easy to combine
- multiple 'ggplot2' plots into one and label them with letters,
- e.g. A, B, C, etc., as is often required for scientific
- publications. The package also provides a streamlined and clean
- theme that is used in the Wilke lab, hence the package name,
- which stands for Claus O. Wilke's plot package."""
+ """Streamlined Plot Theme and Plot Annotations for 'ggplot2'
+
+ Provides various features that help with creating publication-quality
+ figures with 'ggplot2', such as a set of themes, functions to align plots
+ and arrange them into complex compound figures, and functions that make it
+ easy to annotate plots and or mix plots with images. The package was
+ originally written for internal use in the Wilke lab, hence the name (Claus
+ O. Wilke's plot package). It has also been used extensively in the book
+ Fundamentals of Data Visualization."""
homepage = "https://cloud.r-project.org/package=cowplot"
url = "https://cloud.r-project.org/src/contrib/cowplot_0.8.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/cowplot"
+ version('1.1.1', sha256='c7dce625b456dffc59ba100c816e16226048d12fdd29a7335dc1f6f6e12eed48')
version('1.0.0', sha256='70f9a7c46d10f409d1599f1afc9fd3c947051cf2b430f01d903c64ef1e6c98a5')
version('0.9.3', sha256='3e10475fd7506ea9297ed72eb1a3acf858c6fa99d26e46fc39654eba000c3dcb')
version('0.9.2', sha256='8b92ce7f92937fde06b0cfb86c7634a39b3b2101e362cc55c4bec6b3fde1d28f')
@@ -28,8 +31,9 @@ class RCowplot(RPackage):
depends_on('r@3.3.0:', when='@:0.9.4', type=('build', 'run'))
depends_on('r@3.5.0:', when='@1.0.0:', type=('build', 'run'))
- depends_on('r-ggplot2@2.1.1:', type=('build', 'run'))
+ depends_on('r-ggplot2@2.1.1:', when='@:1.0.0', type=('build', 'run'))
+ depends_on('r-ggplot2@2.2.1:', when='@1.1.1:', type=('build', 'run'))
depends_on('r-gtable', type=('build', 'run'))
- depends_on('r-plyr@1.8.2:', when='@:0.9.9', type=('build', 'run'))
- depends_on('r-scales', type=('build', 'run'))
depends_on('r-rlang', when='@1.0.0:', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
+ depends_on('r-plyr@1.8.2:', when='@:0.9.9', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-cpp11/package.py b/var/spack/repos/builtin/packages/r-cpp11/package.py
new file mode 100644
index 0000000000..3177c36021
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-cpp11/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 RCpp11(RPackage):
+ """cpp11: A C++11 Interface for R's C Interface
+
+ Provides a header only, C++11 interface to R's C interface. Compared to
+ other approaches 'cpp11' strives to be safe against long jumps from the C
+ API as well as C++ exceptions, conform to normal R function semantics and
+ supports interaction with 'ALTREP' vectors."""
+
+ homepage = "https://github.com/r-lib/cpp11"
+ url = "https://cloud.r-project.org/src/contrib/cpp11_0.2.5.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/cpp11"
+
+ version('0.2.5', sha256='6fef9306c0c3043252c987e77c99ef679b2ea46dffafae318dbeb38ad21a2e20')
diff --git a/var/spack/repos/builtin/packages/r-crayon/package.py b/var/spack/repos/builtin/packages/r-crayon/package.py
index ebb0aa75be..3c17bf51ea 100644
--- a/var/spack/repos/builtin/packages/r-crayon/package.py
+++ b/var/spack/repos/builtin/packages/r-crayon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-credentials/package.py b/var/spack/repos/builtin/packages/r-credentials/package.py
new file mode 100644
index 0000000000..3484a84368
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-credentials/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 RCredentials(RPackage):
+ """Tools for Managing SSH and Git Credentials
+
+ Setup and retrieve HTTPS and SSH credentials for use with 'git' and other
+ services. For HTTPS remotes the package interfaces the 'git-credential'
+ utility which 'git' uses to store HTTP usernames and passwords. For SSH
+ remotes we provide convenient functions to find or generate appropriate SSH
+ keys. The package both helps the user to setup a local git installation,
+ and also provides a back-end for git/ssh client libraries to authenticate
+ with existing user credentials."""
+
+ homepage = "https://docs.ropensci.org/credentials"
+ url = "https://cloud.r-project.org/src/contrib/credentials_1.3.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/credentials"
+
+ version('1.3.0', sha256='c119ec26fd97b977c3b0cd1eb8fad3c59b84df6262c3adbf5ee9f3d6c9903ff1')
+
+ depends_on('r-openssl@1.3:', type=('build', 'run'))
+ depends_on('r-sys@2.1:', type=('build', 'run'))
+ depends_on('r-curl', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-askpass', type=('build', 'run'))
+ depends_on('git', type='run')
diff --git a/var/spack/repos/builtin/packages/r-crosstalk/package.py b/var/spack/repos/builtin/packages/r-crosstalk/package.py
index 63d29bda13..ad3abb0342 100644
--- a/var/spack/repos/builtin/packages/r-crosstalk/package.py
+++ b/var/spack/repos/builtin/packages/r-crosstalk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,23 @@ from spack import *
class RCrosstalk(RPackage):
- """Provides building blocks for allowing HTML widgets to communicate with
- each other, with Shiny or without (i.e. static .html files)."""
+ """Inter-Widget Interactivity for HTML Widgets
+
+ Provides building blocks for allowing HTML widgets to communicate with each
+ other, with Shiny or without (i.e. static .html files). Currently supports
+ linked brushing and filtering."""
homepage = "https://cloud.r-project.org/package=crosstalk"
url = "https://cloud.r-project.org/src/contrib/crosstalk_1.0.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/crosstalk"
+ version('1.1.0.1', sha256='36a70b10bc11826e314c05f9579fd791b9ac3b3a2cfed4d4ca74ce1ad991300e')
version('1.0.0', sha256='b31eada24cac26f24c9763d9a8cbe0adfd87b264cf57f8725027fe0c7742ca51')
depends_on('r-htmltools@0.3.5:', type=('build', 'run'))
+ depends_on('r-htmltools@0.3.6:', when='@1.1.0.1:', type=('build', 'run'))
depends_on('r-jsonlite', type=('build', 'run'))
depends_on('r-lazyeval', type=('build', 'run'))
- depends_on('r-ggplot2', type=('build', 'run'))
- depends_on('r-shiny@0.11:', type=('build', 'run'))
depends_on('r-r6', type=('build', 'run'))
+ depends_on('r-ggplot2', when='@:1.0.0', type=('build', 'run'))
+ depends_on('r-shiny@0.11:', when='@:1.0.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-crul/package.py b/var/spack/repos/builtin/packages/r-crul/package.py
index 1f68e69287..7fa9254273 100644
--- a/var/spack/repos/builtin/packages/r-crul/package.py
+++ b/var/spack/repos/builtin/packages/r-crul/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,26 @@ from spack import *
class RCrul(RPackage):
- """crul: HTTP Client"""
+ """HTTP Client
+
+ A simple HTTP client, with tools for making HTTP requests, and mocking HTTP
+ requests. The package is built on R6, and takes inspiration from Ruby's
+ 'faraday' gem (<https://rubygems.org/gems/faraday>). The package name is a
+ play on curl, the widely used command line tool for HTTP, and this package
+ is built on top of the R package 'curl', an interface to 'libcurl'
+ (<https://curl.haxx.se/libcurl>)."""
homepage = "https://cloud.r-project.org/package=crul"
url = "https://cloud.r-project.org/src/contrib/crul_0.7.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/crul"
+ version('1.0.0', sha256='2ade500f6cf89b2d0ca8496b8d4df9937d6f802a35c9ad10d9fab8632cdb1027')
version('0.8.4', sha256='dbd950ad3b68402e5a5955615b1abcb5c9bdc846c93aa25f96a7a58913d04c8b')
version('0.7.4', sha256='c963dd666ae3fc89b661ce19fce2fa19a16fc3825e1502105cae98ceb92c6014')
depends_on('r-curl@3.3:', type=('build', 'run'))
- depends_on('r-httpcode@0.2.0:', type=('build', 'run'))
- depends_on('r-mime', type=('build', 'run'))
depends_on('r-r6@2.2.0:', type=('build', 'run'))
depends_on('r-urltools@1.6.0:', type=('build', 'run'))
+ depends_on('r-httpcode@0.2.0:', type=('build', 'run'))
depends_on('r-jsonlite', when='@0.8.4:', type=('build', 'run'))
+ depends_on('r-mime', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ctc/package.py b/var/spack/repos/builtin/packages/r-ctc/package.py
index 7fbe647f6c..2eedb9d528 100644
--- a/var/spack/repos/builtin/packages/r-ctc/package.py
+++ b/var/spack/repos/builtin/packages/r-ctc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RCtc(RPackage):
- """Cluster and Tree Conversion..
+ """Cluster and Tree Conversion.
Tools for export and import classification trees and clusters to other
programs"""
@@ -15,6 +15,7 @@ class RCtc(RPackage):
homepage = "https://bioconductor.org/packages/ctc"
git = "https://git.bioconductor.org/packages/ctc.git"
+ version('1.64.0', commit='35dbe620a21056b8f69890e6f9a7c320528d8621')
version('1.58.0', commit='c41df03ac149db20c5e337142142d61cfb9b43fb')
version('1.56.0', commit='cbd5befdda4630799f8fe0d868d83b094e3d352f')
version('1.54.0', commit='0c3df81dfc8fabe12e11884bed44b64e11fd6d4e')
diff --git a/var/spack/repos/builtin/packages/r-cubature/package.py b/var/spack/repos/builtin/packages/r-cubature/package.py
index e137d8bc59..7536a7d92a 100644
--- a/var/spack/repos/builtin/packages/r-cubature/package.py
+++ b/var/spack/repos/builtin/packages/r-cubature/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,21 @@ from spack import *
class RCubature(RPackage):
- """Adaptive multivariate integration over hypercubes"""
+ """Adaptive multivariate integration over hypercubes
+
+ R wrappers around the cubature C library of Steven G. Johnson for adaptive
+ multivariate integration over hypercubes and the Cuba C library of Thomas
+ Hahn for deterministic and Monte Carlo integration. Scalar and vector
+ interfaces for cubature and Cuba routines are provided"""
homepage = "https://cloud.r-project.org/package=cubature"
url = "https://cloud.r-project.org/src/contrib/cubature_1.1-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/cubature"
+ version('2.0.4.1', sha256='383fbdf49d1cdf760ad5d88d353e69118c7c663cde126c5bdd33b6fecc50d400')
version('2.0.3', sha256='79bf03ebdb64b0de1ef19d24051b9d922df9310254bee459bb47764522407a73')
version('2.0.2', sha256='641165c665ff490c523bccc05c42bb6851e42676b6b366b55fc442a51a8fbe8c')
version('1.1-2', sha256='0a05469bdc85d6bd8165a42a3fc5c35a06700d279e4e8b3cf4669df19edffeed')
depends_on('r-rcpp', when='@2.0.3:', type=('build', 'run'))
+ depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-cubist/package.py b/var/spack/repos/builtin/packages/r-cubist/package.py
index 9738b682ad..24ef01f6e4 100644
--- a/var/spack/repos/builtin/packages/r-cubist/package.py
+++ b/var/spack/repos/builtin/packages/r-cubist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,15 @@ from spack import *
class RCubist(RPackage):
- """Regression modeling using rules with added instance-based corrections"""
+ """Rule- And Instance-Based Regression Modeling
+
+ Regression modeling using rules with added instance-based corrections"""
homepage = "https://cloud.r-project.org/package=Cubist"
url = "https://cloud.r-project.org/src/contrib/Cubist_0.0.19.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Cubist"
+ version('0.2.3', sha256='19845f585e073f316bb4bdf74b28a624e839561faeedd40ef5548960c5b1e1f4')
version('0.2.2', sha256='cd3e152cc72ab33f720a8fb6b8b6787171e1c037cfda48f1735ab692ed6d85d4')
version('0.2.1', sha256='b310c3f166f15fa3e16f8d110d39931b0bb1b0aa8d0c9ac2af5a9a45081588a3')
version('0.0.19', sha256='101379979acb12a58bcf32a912fef32d497b00263ebea918f2b85a2c32934aae')
diff --git a/var/spack/repos/builtin/packages/r-curl/package.py b/var/spack/repos/builtin/packages/r-curl/package.py
index f1a7a2de60..948410fb08 100644
--- a/var/spack/repos/builtin/packages/r-curl/package.py
+++ b/var/spack/repos/builtin/packages/r-curl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-dada2/package.py b/var/spack/repos/builtin/packages/r-dada2/package.py
index da4be89f98..3013d434dd 100644
--- a/var/spack/repos/builtin/packages/r-dada2/package.py
+++ b/var/spack/repos/builtin/packages/r-dada2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class RDada2(RPackage):
"""Accurate sample inference from amplicon data with single nucleotide
resolution"""
- homepage = "http://benjjneb.github.io/dada2/"
+ homepage = "https://benjjneb.github.io/dada2/"
url = "https://github.com/benjjneb/dada2/archive/v1.14.tar.gz"
version('1.14', sha256='19980b9d7b0a0e80e86010357cae11d1fc07c2d02067c4445169143cf1f99906')
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 87d5735541..000f1d802e 100644
--- a/var/spack/repos/builtin/packages/r-data-table/package.py
+++ b/var/spack/repos/builtin/packages/r-data-table/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RDataTable(RPackage):
- """Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins,
+ """Extension of `data.frame`
+
+ Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins,
fast add/modify/delete of columns by group using no copies at all, list
columns and a fast file reader (fread). Offers a natural and flexible
syntax, for faster development."""
@@ -16,6 +18,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.13.6', sha256='d50cdd4c4f89cabf83baa9114e49a3b8179f403c499d6e0be7791a44ffcd3e9b')
version('1.12.8', sha256='d3a75f3a355ff144cc20a476041617e21fcf2a9f79265fd9bbd4693f3671f9dc')
version('1.12.2', sha256='db55c18f0d703a8bc1c806dd1f7551bb405cb867717f52ef9dd64405394d22f5')
version('1.12.0', sha256='611b112123dbd4ebd5200770fcdfaaeaab622adeb2b290d36018d3092742e3f7')
@@ -34,3 +37,4 @@ class RDataTable(RPackage):
version('1.9.6', sha256='6f74c349c1731823aef6899edcf18418454167d04eba983e3a6fe17ee9fd236e')
depends_on('r@3.1.0:', type=('build', 'run'))
+ depends_on('zlib')
diff --git a/var/spack/repos/builtin/packages/r-dbi/package.py b/var/spack/repos/builtin/packages/r-dbi/package.py
index cca20df5ec..e62a09ed2d 100644
--- a/var/spack/repos/builtin/packages/r-dbi/package.py
+++ b/var/spack/repos/builtin/packages/r-dbi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-dbplyr/package.py b/var/spack/repos/builtin/packages/r-dbplyr/package.py
index b73d44a34f..3ed51d78cc 100644
--- a/var/spack/repos/builtin/packages/r-dbplyr/package.py
+++ b/var/spack/repos/builtin/packages/r-dbplyr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,18 @@ from spack import *
class RDbplyr(RPackage):
- """A 'dplyr' back end for databases that allows you to work with remote
- database tables as if they are in-memory data frames. Basic features
- works with any database that has a 'DBI' back end; more advanced
- features require 'SQL' translation to be provided by the package
- author."""
+ """A 'dplyr' Back End for Databases
+
+ A 'dplyr' back end for databases that allows you to work with remote
+ database tables as if they are in-memory data frames. Basic features works
+ with any database that has a 'DBI' back end; more advanced features require
+ 'SQL' translation to be provided by the package author."""
homepage = "https://github.com/tidyverse/dbplyr"
url = "https://cloud.r-project.org/src/contrib/dbplyr_1.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/dbplyr"
+ version('2.0.0', sha256='ecd71936ecfefbdda0fad24e52653ac9c0913e01126e467c92c8ba9de37b4069')
version('1.4.2', sha256='b783f0da2c09a1e63f41168b02c0715b08820f02a351f7ab0aaa688432754de0')
version('1.4.1', sha256='cfe829f56acdc785c5af21bf3927cf08327504d78c4ae1477c405c81b131da95')
version('1.2.2', sha256='9d410bb0055fffe10f1f8da55a5b24d98322c7b571d74df61427d5888332bc48')
@@ -29,8 +31,12 @@ class RDbplyr(RPackage):
depends_on('r-dbi@1.0.0:', type=('build', 'run'))
depends_on('r-dplyr@0.8.0:', type=('build', 'run'))
depends_on('r-glue@1.2.0:', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-magrittr', when='@2.0.0:', type=('build', 'run'))
depends_on('r-purrr@0.2.5:', type=('build', 'run'))
depends_on('r-r6@2.2.2:', type=('build', 'run'))
depends_on('r-rlang@0.2.0:', type=('build', 'run'))
depends_on('r-tibble@1.4.2:', type=('build', 'run'))
depends_on('r-tidyselect@0.2.4:', type=('build', 'run'))
+ depends_on('r-blob@1.2.0:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-withr', when='@2.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-debugme/package.py b/var/spack/repos/builtin/packages/r-debugme/package.py
index 9d8146d31b..22f591021a 100644
--- a/var/spack/repos/builtin/packages/r-debugme/package.py
+++ b/var/spack/repos/builtin/packages/r-debugme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-decipher/package.py b/var/spack/repos/builtin/packages/r-decipher/package.py
index d4d2a881b8..4da3f90c1f 100644
--- a/var/spack/repos/builtin/packages/r-decipher/package.py
+++ b/var/spack/repos/builtin/packages/r-decipher/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,14 @@ from spack import *
class RDecipher(RPackage):
- """Tools for curating, analyzing, and manipulating biological sequences."""
+ """Tools for curating, analyzing, and manipulating biological sequences
+
+ A toolset for deciphering and managing biological sequences."""
homepage = "https://bioconductor.org/packages/DECIPHER"
git = "https://git.bioconductor.org/packages/DECIPHER.git"
+ version('2.18.1', commit='6a708421550e6705d05e2fb50a0f5ab4f9041cb0')
version('2.12.0', commit='658ae23870383b25b96a03a18d4ecac228a2650f')
version('2.10.2', commit='db7b017c9050a7ec1d4daa15352994890095e9c3')
version('2.8.1', commit='35aa66f48e06b93a98d1060c90c44d34ce05ccd9')
@@ -19,6 +22,7 @@ class RDecipher(RPackage):
version('2.4.0', commit='1a57b8e4c7d7dec1c233f79c9a88d3705e0ad432')
depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@2.18.1:', type=('build', 'run'))
depends_on('r-biostrings@2.35.12:', type=('build', 'run'))
depends_on('r-rsqlite@1.1:', type=('build', 'run'))
depends_on('r-dbi', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-delayedarray/package.py b/var/spack/repos/builtin/packages/r-delayedarray/package.py
index b4f79d524c..ad8c4f0f60 100644
--- a/var/spack/repos/builtin/packages/r-delayedarray/package.py
+++ b/var/spack/repos/builtin/packages/r-delayedarray/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RDelayedarray(RPackage):
"""A unified framework for working transparently with on-disk and in-memory
- array-like datasets.
+ array-like datasets
Wrapping an array-like object (typically an on-disk object) in a
DelayedArray object allows one to perform common array operations on it
@@ -21,6 +21,7 @@ class RDelayedarray(RPackage):
homepage = "https://bioconductor.org/packages/DelayedArray"
git = "https://git.bioconductor.org/packages/DelayedArray.git"
+ version('0.16.1', commit='c95eba771ad3fee1b49ec38c51cd8fd1486feadc')
version('0.10.0', commit='4781d073110a3fd1e20c4083b6b2b0f260d0cb0a')
version('0.8.0', commit='7c23cf46558de9dbe7a42fba516a9bb660a0f19f')
version('0.6.6', commit='bdb0ac0eee71edd40ccca4808f618fa77f595a64')
@@ -28,21 +29,20 @@ class RDelayedarray(RPackage):
version('0.2.7', commit='909c2ce1665ebae2543172ead50abbe10bd42bc4')
depends_on('r@3.4:', type=('build', 'run'))
+ depends_on('r-matrix', when='@0.10.0:', type=('build', 'run'))
depends_on('r-biocgenerics', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.25.1:', when='@0.6.6:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.27.1:', when='@0.8.0:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.31.5:', when='@0.16.1:', type=('build', 'run'))
+ depends_on('r-matrixgenerics@1.1.3:', when='@0.16.1:', type=('build', 'run'))
depends_on('r-s4vectors@0.14.3:', type=('build', 'run'))
- depends_on('r-iranges', type=('build', 'run'))
- depends_on('r-matrixstats', type=('build', 'run'))
-
depends_on('r-s4vectors@0.15.3:', when='@0.4.1:', type=('build', 'run'))
- depends_on('r-iranges@2.11.17:', when='@0.4.1:', type=('build', 'run'))
-
- depends_on('r-biocgenerics@0.25.1:', when='@0.6.6:', type=('build', 'run'))
depends_on('r-s4vectors@0.17.43:', when='@0.6.6:', type=('build', 'run'))
- depends_on('r-biocparallel', when='@0.6.6:', type=('build', 'run'))
-
- depends_on('r-biocgenerics@0.27.1:', when='@0.8.0:', type=('build', 'run'))
depends_on('r-s4vectors@0.19.15:', when='@0.8.0:', type=('build', 'run'))
-
depends_on('r-s4vectors@0.21.7:', when='@0.10.0:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.27.2:', when='@0.16.1:', type=('build', 'run'))
+ depends_on('r-iranges', type=('build', 'run'))
+ depends_on('r-iranges@2.11.17:', when='@0.4.1:', type=('build', 'run'))
depends_on('r-iranges@2.17.3:', when='@0.10.0:', type=('build', 'run'))
- depends_on('r-matrix', when='@0.10.0:', type=('build', 'run'))
+ depends_on('r-matrixstats', when='@:0.10.0', type=('build', 'run'))
+ depends_on('r-biocparallel', when='@0.6.6:0.10.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-delayedmatrixstats/package.py b/var/spack/repos/builtin/packages/r-delayedmatrixstats/package.py
index 3898c8d15f..4f8ac5e4cd 100644
--- a/var/spack/repos/builtin/packages/r-delayedmatrixstats/package.py
+++ b/var/spack/repos/builtin/packages/r-delayedmatrixstats/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RDelayedmatrixstats(RPackage):
- """Functions that Apply to Rows and Columns of 'DelayedMatrix' Objects.
+ """Functions that Apply to Rows and Columns of 'DelayedMatrix' Objects
A port of the 'matrixStats' API for use with DelayedMatrix objects from
the 'DelayedArray' package. High-performing functions operating on rows
@@ -16,26 +16,29 @@ class RDelayedmatrixstats(RPackage):
for subsetted calculations such that both memory usage and processing
time is minimized."""
- homepage = "https://bioconductor.org/packages/DelayedMatrixStats"
+ homepage = "https://github.com/PeteHaitch/DelayedMatrixStats"
git = "https://git.bioconductor.org/packages/DelayedMatrixStats.git"
+ version('1.12.3', commit='2b3091dfa9b3bab914e3a4157182063714ba86ae')
version('1.6.1', commit='4378d1898a403305a94b122c4f36d1215fa7708d')
version('1.4.0', commit='eb5b390ef99651fe87a346848f807de95afe8971')
version('1.2.0', commit='de868e730be6280dfad41a280ab09f4d3083c9ac')
version('1.0.3', commit='e29a3444980ff727c5b12286884b06dfaebf5b5b')
+ depends_on('r-matrixgenerics', when='@1.12.2:', type=('build', 'run'))
depends_on('r-delayedarray', type=('build', 'run'))
+ depends_on('r-delayedarray@0.5.27:', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-delayedarray@0.7.37:', when='@1.4.0:', type=('build', 'run'))
+ depends_on('r-delayedarray@0.9.8:', when='@1.6.1:', type=('build', 'run'))
+ depends_on('r-delayedarray@0.15.3:', when='@1.12.2:', type=('build', 'run'))
depends_on('r-matrixstats@0.53.1:', type=('build', 'run'))
+ depends_on('r-matrixstats@0.55.0:', when='@1.6.1:', type=('build', 'run'))
+ depends_on('r-matrixstats@0.56.0:', when='@1.12.2:', type=('build', 'run'))
+ depends_on('r-sparsematrixstats', when='@1.12.2:', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
depends_on('r-s4vectors', type=('build', 'run'))
- depends_on('r-iranges', type=('build', 'run'))
-
- depends_on('r-delayedarray@0.5.27:', when='@1.2.0:', type=('build', 'run'))
depends_on('r-s4vectors@0.17.5:', when='@1.2.0:', type=('build', 'run'))
-
- depends_on('r-delayedarray@0.7.37:', when='@1.4.0:', type=('build', 'run'))
+ depends_on('r-iranges', type=('build', 'run'))
depends_on('r-hdf5array@1.7.10:', when='@1.4.0:', type=('build', 'run'))
+ depends_on('r-hdf5array@1.17.2:', when='@1.12.2:', type=('build', 'run'))
depends_on('r-biocparallel', when='@1.4.0:', type=('build', 'run'))
-
- depends_on('r-delayedarray@0.9.8:', when='@1.6.1:', type=('build', 'run'))
- depends_on('r-matrixstats@0.55.0:', when='@1.6.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-deldir/package.py b/var/spack/repos/builtin/packages/r-deldir/package.py
index 5654a5c403..eed65df65e 100644
--- a/var/spack/repos/builtin/packages/r-deldir/package.py
+++ b/var/spack/repos/builtin/packages/r-deldir/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RDeldir(RPackage):
- """Calculates the Delaunay triangulation and the Dirichlet or Voronoi
+ """Delaunay Triangulation and Dirichlet (Voronoi) Tessellation
+
+ Calculates the Delaunay triangulation and the Dirichlet or Voronoi
tessellation (with respect to the entire plane) of a planar point set.
Plots triangulations and tessellations in various ways. Clips
tessellations to sub-windows. Calculates perimeters of tessellations.
@@ -17,8 +19,10 @@ class RDeldir(RPackage):
url = "https://cloud.r-project.org/src/contrib/deldir_0.1-14.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/deldir"
+ version('0.2-3', sha256='2d24800f5ec6ad9dc57b9b265365b29c07717f4562d8f3e6344336d3340c364e')
version('0.1-23', sha256='e0112bce9fc94daf73596a0fff9b3958b80872e3bbb487be73e157b13a6f201d')
version('0.1-21', sha256='b9dabcc1813c7a0f8edaf720a94bdd611a83baf3d3e52e861d352369e815690c')
version('0.1-14', sha256='89d365a980ef8589971e5d311c6bd59fe32c48dbac8000a880b9655032c99289')
depends_on('r@0.99:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@0.2-3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dendextend/package.py b/var/spack/repos/builtin/packages/r-dendextend/package.py
index d5bd7f4af0..7e036cbd24 100644
--- a/var/spack/repos/builtin/packages/r-dendextend/package.py
+++ b/var/spack/repos/builtin/packages/r-dendextend/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,19 @@ from spack import *
class RDendextend(RPackage):
- """dendextend: Extending 'Dendrogram' Functionality in R"""
+ """Extending 'Dendrogram' Functionality in R
+
+ Offers a set of functions for extending 'dendrogram' objects in R, letting
+ you visualize and compare trees of 'hierarchical clusterings'. You can (1)
+ Adjust a tree's graphical parameters - the color, size, type, etc of its
+ branches, nodes and labels. (2) Visually and statistically compare
+ different 'dendrograms' to one another."""
homepage = "https://cloud.r-project.org/package=dendextend"
url = "https://cloud.r-project.org/src/contrib/dendextend_1.5.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/dendextend"
+ version('1.14.0', sha256='3789461bc474e146b077ad26566b1fa05be32fc7e57ab1fb5e78bdabcc797858')
version('1.12.0', sha256='b487fed8c1878a23b9e28394ee11f16a1831b76c90793eb486e6963c7162fa55')
version('1.10.0', sha256='88f0fb3362d69144daf4f35d0ea09f32c2df1adf614e040327a42552a8fd3224')
version('1.5.2', sha256='8228cf9cfd31ec30038aaa61a35959179bad748582d796999cd9ad78152a5f12')
@@ -20,6 +27,6 @@ class RDendextend(RPackage):
depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r-magrittr@1.0.1:', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-viridis', type=('build', 'run'))
depends_on('r-fpc', when='@:1.10.0', type=('build', 'run'))
depends_on('r-whisker', when='@:1.5.2', type=('build', 'run'))
- depends_on('r-viridis', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-deoptim/package.py b/var/spack/repos/builtin/packages/r-deoptim/package.py
index e4dc1f87a6..6fd5364b31 100644
--- a/var/spack/repos/builtin/packages/r-deoptim/package.py
+++ b/var/spack/repos/builtin/packages/r-deoptim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,15 @@ from spack import *
class RDeoptim(RPackage):
- """Implements the differential evolution algorithm for global optimization
+ """Global Optimization by Differential Evolution
+
+ Implements the differential evolution algorithm for global optimization
of a real-valued function of a real-valued parameter vector."""
homepage = "https://cloud.r-project.org/package=DEoptim"
url = "https://cloud.r-project.org/src/contrib/DEoptim_2.2-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/DEoptim"
+ version('2.2-5', sha256='ae12dedcd4a43994e811e7285f8c12bfdb688e7c99d65515cf7e8cb6db13955a')
version('2.2-4', sha256='0a547784090d1e9b93efc53768110621f35bed3692864f6ce5c0dda2ebd6d482')
version('2.2-3', sha256='af2120feea3a736ee7a5a93c6767d464abc0d45ce75568074b233405e73c9a5d')
diff --git a/var/spack/repos/builtin/packages/r-deoptimr/package.py b/var/spack/repos/builtin/packages/r-deoptimr/package.py
index 5531bc894b..ea7855b29b 100644
--- a/var/spack/repos/builtin/packages/r-deoptimr/package.py
+++ b/var/spack/repos/builtin/packages/r-deoptimr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-deriv/package.py b/var/spack/repos/builtin/packages/r-deriv/package.py
new file mode 100644
index 0000000000..521ac66fec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-deriv/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 RDeriv(RPackage):
+ """Deriv: Symbolic Differentiation
+
+ R-based solution for symbolic differentiation. It admits user-defined
+ function as well as function substitution in arguments of functions to be
+ differentiated. Some symbolic simplification is part of the work."""
+
+ homepage = "https://cloud.r-project.org/package=Deriv"
+ url = "https://cloud.r-project.org/src/contrib/Deriv_4.1.3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/Deriv"
+
+ version('4.1.3', sha256='dbdbf5ed8babf706373ae33a937d013c46110a490aa821bcd158a70f761d0f8c')
+ version('4.1.2', sha256='c4b0c3f351f6df53778d48033460cf8674e7a7878fbc542085d66a9a78803ac9')
diff --git a/var/spack/repos/builtin/packages/r-desc/package.py b/var/spack/repos/builtin/packages/r-desc/package.py
index b3b61283ed..da96469f53 100644
--- a/var/spack/repos/builtin/packages/r-desc/package.py
+++ b/var/spack/repos/builtin/packages/r-desc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-deseq/package.py b/var/spack/repos/builtin/packages/r-deseq/package.py
index 107d581494..169828fc00 100644
--- a/var/spack/repos/builtin/packages/r-deseq/package.py
+++ b/var/spack/repos/builtin/packages/r-deseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RDeseq(RPackage):
"""Differential gene expression analysis based on the negative binomial
- distribution.
+ distribution
Estimate variance-mean dependence in count data from high-throughput
sequencing assays and test for differential expression based on a model
@@ -17,6 +17,7 @@ class RDeseq(RPackage):
homepage = "https://bioconductor.org/packages/DESeq"
git = "https://git.bioconductor.org/packages/DESeq.git"
+ version('1.42.0', commit='da76bc64e8c4073b58eaf1c93aa4e89bec5c4e50')
version('1.36.0', commit='db4af67b49d3bd8c321d19efbe9415cd2e4ddb7e')
version('1.34.1', commit='e86f1b03a30bc02de4bfd4a0759af2f65cb48c62')
version('1.32.0', commit='e3d623b815b53d79eae7cdd09d097cc6098d28c9')
diff --git a/var/spack/repos/builtin/packages/r-deseq2/package.py b/var/spack/repos/builtin/packages/r-deseq2/package.py
index 8d0fbc2900..a547f1cd9c 100644
--- a/var/spack/repos/builtin/packages/r-deseq2/package.py
+++ b/var/spack/repos/builtin/packages/r-deseq2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RDeseq2(RPackage):
"""Differential gene expression analysis based on the negative binomial
- distribution.
+ distribution
Estimate variance-mean dependence in count data from high-throughput
sequencing assays and test for differential expression based on a model
@@ -17,6 +17,7 @@ class RDeseq2(RPackage):
homepage = "https://bioconductor.org/packages/DESeq2"
git = "https://git.bioconductor.org/packages/DESeq2.git"
+ version('1.30.0', commit='f4b47b208ee26ab23fe65c345f907fcfe70b3f77')
version('1.24.0', commit='3ce7fbbebac526b726a6f85178063d02eb0314bf')
version('1.22.2', commit='3c6a89b61add635d6d468c7fa00192314f8ca4ce')
version('1.20.0', commit='7e88ea5c5e68473824ce0af6e10f19e22374cb7c')
@@ -24,6 +25,7 @@ class RDeseq2(RPackage):
version('1.16.1', commit='f41d9df2de25fb57054480e50bc208447a6d82fb')
depends_on('r-s4vectors@0.9.25:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.23.18:', when='@1.30.0:', type=('build', 'run'))
depends_on('r-iranges', type=('build', 'run'))
depends_on('r-genomicranges', type=('build', 'run'))
depends_on('r-summarizedexperiment@1.1.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-desolve/package.py b/var/spack/repos/builtin/packages/r-desolve/package.py
index 88918d33f5..df56b54656 100644
--- a/var/spack/repos/builtin/packages/r-desolve/package.py
+++ b/var/spack/repos/builtin/packages/r-desolve/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,28 @@ from spack import *
class RDesolve(RPackage):
- """Functions that solve initial value problems of a system of first-order
- ordinary differential equations ('ODE'), of partial differential
- equations ('PDE'), of differential algebraic equations ('DAE'), and of
- delay differential equations."""
+ """Solvers for Initial Value Problems of Differential Equations ('ODE',
+ 'DAE', 'DDE')
+
+ Functions that solve initial value problems of a system of first-order
+ ordinary differential equations ('ODE'), of partial differential equations
+ ('PDE'), of differential algebraic equations ('DAE'), and of delay
+ differential equations. The functions provide an interface to the FORTRAN
+ functions 'lsoda', 'lsodar', 'lsode', 'lsodes' of the 'ODEPACK' collection,
+ to the FORTRAN functions 'dvode', 'zvode' and 'daspk' and a
+ C-implementation of solvers of the 'Runge-Kutta' family with fixed or
+ variable time steps. The package contains routines designed for solving
+ 'ODEs' resulting from 1-D, 2-D and 3-D partial differential equations
+ ('PDE') that have been converted to 'ODEs' by numerical differencing."""
homepage = "https://cloud.r-project.org/package=deSolve"
url = "https://cloud.r-project.org/src/contrib/deSolve_1.20.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/deSolve"
+ version('1.28', sha256='4c55ef4cae841df91034382d277b483985af120240f87af587ff82177fdb5a49')
version('1.24', sha256='3aa52c822abb0348a904d5bbe738fcea2b2ba858caab9f2831125d07f0d57b42')
version('1.21', sha256='45c372d458fe4c7c11943d4c409517849b1be6782dc05bd9a74b066e67250c63')
version('1.20', sha256='56e945835b0c66d36ebc4ec8b55197b616e387d990788a2e52e924ce551ddda2')
depends_on('r@2.15.0:', type=('build', 'run'))
+ depends_on('r@3.3.0:', when='@1.28:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-devtools/package.py b/var/spack/repos/builtin/packages/r-devtools/package.py
index 385be67559..0241f11b64 100644
--- a/var/spack/repos/builtin/packages/r-devtools/package.py
+++ b/var/spack/repos/builtin/packages/r-devtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,15 @@ from spack import *
class RDevtools(RPackage):
- """Collection of package development tools."""
+ """Tools to Make Developing R Packages Easier
+
+ Collection of package development tools."""
homepage = "https://github.com/hadley/devtools"
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.2', sha256='e5086106baef6bb925445dfdddb3cd5ff4f8fff96353365b135aba5618d1986d')
version('2.3.0', sha256='4fc375c171335c67bd71df4e0b1b3dff2ae3aa17b3e0566b790ba0808b39dcd0')
version('2.1.0', sha256='c1f75346a90adf0669b5508fe68cc78bd3b114c1303fa7d22bf90991edd9230d')
version('2.0.2', sha256='99a2fa957068254b8ecdb3fc2d50e2950230910ea31c314fc0e7d934e4bd1709')
@@ -22,41 +25,55 @@ class RDevtools(RPackage):
depends_on('r@3.0.2:', 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-usethis@1.6.3:', when='@2.3.2:', 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-callr@3.4.4:', when='@2.3.2:', 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-covr@3.5.1:', when='@2.3.2:', 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-dt@0.15:', when='@2.3.2:', 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-ellipsis@0.3.1:', when='@2.3.2:', 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-httr@1.4.2:', when='@2.3.2:', 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-jsonlite@1.7.1:', when='@2.3.2:', 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-pkgbuild@1.1.0:', when='@2.3.2:', type=('build', 'run'))
depends_on('r-pkgload@1.0.2:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-pkgload@1.1.0:', when='@2.0.2:', 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-remotes@2.2.0:', when='@2.3.2:', type=('build', 'run'))
depends_on('r-rlang@0.4.5:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-rlang@0.4.7:', when='@2.3.2:', 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-roxygen2@7.1.1:', when='@2.3.2:', type=('build', 'run'))
depends_on('r-rstudioapi@0.7.0:', type=('build', 'run'))
depends_on('r-rstudioapi@0.11:', when='@2.3.0:', type=('build', 'run'))
depends_on('r-rversions@2.0.1:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-rversions@2.0.2:', when='@2.3.2:', 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'))
+ depends_on('r-withr@2.2.0:', when='@2.3.2:', type=('build', 'run'))
+ depends_on('r-crayon@1.3.4:', when='@2.3.0', type=('build', 'run'))
+ depends_on('r-digest', when='@:2.3.0', type=('build', 'run'))
+ depends_on('r-digest@0.6.25:', 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:', when='@:2.3.0', type=('build', 'run'))
+ depends_on('r-git2r@0.26.1:', when='@2.3.0', type=('build', 'run'))
+ depends_on('r-whisker', when='@:1.9.9', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dexseq/package.py b/var/spack/repos/builtin/packages/r-dexseq/package.py
new file mode 100644
index 0000000000..f3f584c8e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-dexseq/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2021 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 RDexseq(RPackage):
+ """Inference of differential exon usage in RNA-Seq
+
+ The package is focused on finding differential exon usage using RNA-seq
+ exon counts between samples with different experimental designs. It
+ provides functions that allows the user to make the necessary
+ statistical tests based on a model that uses the negative binomial
+ distribution to estimate the variance between biological replicates
+ and generalized linear models for testing. The package also provides
+ functions for the visualization and exploration of the results."""
+
+ bioc = "DEXSeq"
+
+ maintainers = ['dorton21']
+
+ version('1.36.0', commit='f0a361af6954fcc2abb2db801c26e303570669b2')
+
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-geneplotter', type=('build', 'run'))
+ depends_on('r-genefilter', type=('build', 'run'))
+ depends_on('r-biocgenerics', type=('build', 'run'))
+ depends_on('r-biomart', type=('build', 'run'))
+ depends_on('r-hwriter', type=('build', 'run'))
+ depends_on('r-rsamtools', type=('build', 'run'))
+ depends_on('r-statmod', type=('build', 'run'))
+ depends_on('r-biocparallel', type=('build', 'run'))
+ depends_on('r-biobase', type=('build', 'run'))
+ depends_on('r-summarizedexperiment', type=('build', 'run'))
+ depends_on('r-iranges@2.5.17:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.23.7:', type=('build', 'run'))
+ depends_on('r-deseq2@1.9.11:', type=('build', 'run'))
+ depends_on('r-annotationdbi', type=('build', 'run'))
+ depends_on('r-rcolorbrewer', type=('build', 'run'))
+ depends_on('r-s4vectors@0.23.18:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-diagrammer/package.py b/var/spack/repos/builtin/packages/r-diagrammer/package.py
index 08bcb255c5..fe6657b91c 100644
--- a/var/spack/repos/builtin/packages/r-diagrammer/package.py
+++ b/var/spack/repos/builtin/packages/r-diagrammer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,34 +7,53 @@ from spack import *
class RDiagrammer(RPackage):
- """Create graph diagrams and flowcharts using R."""
+ """Graph/Network Visualization
+
+ Build graph/network structures using functions for stepwise addition and
+ deletion of nodes and edges. Work with data available in tables for bulk
+ addition of nodes, edges, and associated metadata. Use graph selections and
+ traversals to apply changes to specific nodes or edges. A wide selection of
+ graph algorithms allow for the analysis of graphs. Visualize the graphs and
+ take advantage of any aesthetic properties assigned to nodes and edges."""
homepage = "https://github.com/rich-iannone/DiagrammeR"
url = "https://cloud.r-project.org/src/contrib/DiagrammeR_0.8.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/DiagrammeR"
+ version('1.0.6.1', sha256='be4e4c520a3692902ce405e8225aef9f3d5f0cd11fcde614f6541e981b63673d')
version('1.0.1', sha256='ccee8acf608fc909e73c6de4374cef5a570cb62e5f454ac55dda736f22f3f013')
version('1.0.0', sha256='2b186dae1b19018681b979e9444bf16559c42740d8382676fbaf3b0f8a44337e')
version('0.8.4', sha256='0503935fa120c7c7cdcfd4dce85558b23fd0bcb7e6b32fa6989087d3c88ec404')
depends_on('r@3.2.0:', when='@0.9.2:', type=('build', 'run'))
- depends_on('r-htmlwidgets@1.0:', type=('build', 'run'))
- depends_on('r-igraph@1.1.2:', type=('build', 'run'))
- depends_on('r-influencer@0.1.0:', type=('build', 'run'))
- depends_on('r-rstudioapi@0.7:', type=('build', 'run'))
- depends_on('r-stringr@1.3.0:', type=('build', 'run'))
- depends_on('r-visnetwork@2.0.3:', type=('build', 'run'))
- depends_on('r-scales@0.5.0:', type=('build', 'run'))
depends_on('r-dplyr@0.7.4:', when='@1.0.0:', type=('build', 'run'))
+ depends_on('r-dplyr@0.7.6:', when='@1.0.6.1:', type=('build', 'run'))
depends_on('r-downloader@0.4:', when='@1.0.0:', type=('build', 'run'))
depends_on('r-glue@1.2.0:', when='@1.0.0:', type=('build', 'run'))
+ depends_on('r-glue@1.3.0:', when='@1.0.6.1:', type=('build', 'run'))
depends_on('r-htmltools@0.3.6:', when='@1.0.0:', type=('build', 'run'))
+ depends_on('r-htmlwidgets@1.0:', type=('build', 'run'))
+ depends_on('r-htmlwidgets@1.2:', when='@1.0.6.1:', type=('build', 'run'))
+ depends_on('r-igraph@1.1.2:', type=('build', 'run'))
+ depends_on('r-igraph@1.2.2:', when='@1.0.6.1:', type=('build', 'run'))
+ depends_on('r-influencer@0.1.0:', type=('build', 'run'))
depends_on('r-magrittr@1.5:', when='@1.0.0:', type=('build', 'run'))
depends_on('r-purrr@0.2.4:', when='@1.0.0:', type=('build', 'run'))
+ depends_on('r-purrr@0.2.5:', when='@1.0.6.1:', type=('build', 'run'))
depends_on('r-rcolorbrewer@1.1-2:', when='@1.0.0:', type=('build', 'run'))
depends_on('r-readr@1.1.1:', when='@1.0.0:', type=('build', 'run'))
depends_on('r-rlang@0.2.0:', when='@1.0.0:', type=('build', 'run'))
- depends_on('r-rgexf@0.15.3:', when='@1.0.0:', type=('build', 'run'))
+ depends_on('r-rlang@0.2.2:', when='@1.0.6.1:', type=('build', 'run'))
+ depends_on('r-rstudioapi@0.7:', type=('build', 'run'))
+ depends_on('r-scales@0.5.0:', type=('build', 'run'))
+ depends_on('r-scales@1.0.0:', when='@1.0.6.1:', type=('build', 'run'))
+ depends_on('r-stringr@1.3.0:', type=('build', 'run'))
+ depends_on('r-stringr@1.3.1:', when='@1.0.6.1:', type=('build', 'run'))
depends_on('r-tibble@1.4.2:', when='@1.0.0:', type=('build', 'run'))
depends_on('r-tidyr@0.8.0:', when='@1.0.0:', type=('build', 'run'))
+ depends_on('r-tidyr@0.8.1:', when='@1.0.6.1:', type=('build', 'run'))
depends_on('r-viridis@0.5.0:', when='@1.0.0:', type=('build', 'run'))
+ depends_on('r-viridis@0.5.1:', when='@1.0.6.1:', type=('build', 'run'))
+ depends_on('r-visnetwork@2.0.3:', type=('build', 'run'))
+ depends_on('r-visnetwork@2.0.4:', when='@1.0.6.1:', type=('build', 'run'))
+ depends_on('r-rgexf@0.15.3:', when='@1.0.0:1.0.1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dicekriging/package.py b/var/spack/repos/builtin/packages/r-dicekriging/package.py
index ace01e38a4..3972f40e5c 100644
--- a/var/spack/repos/builtin/packages/r-dicekriging/package.py
+++ b/var/spack/repos/builtin/packages/r-dicekriging/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,15 @@ from spack import *
class RDicekriging(RPackage):
- """Estimation, validation and prediction of kriging models. Important
- functions : km, print.km, plot.km, predict.km."""
+ """Kriging Methods for Computer Experiments
+
+ Estimation, validation and prediction of kriging models. Important
+ functions : km, print.km, plot.km, predict.km."""
homepage = "http://dice.emse.fr/"
url = "https://cloud.r-project.org/src/contrib/DiceKriging_1.5.5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/DiceKriging"
+ version('1.5.8', sha256='11d02b894cb509dbb8887ae27b6d08ba25aa52ac3ece134c3759c2b3b1bf4d77')
version('1.5.6', sha256='25466d2db9f17083d1c7b9545e5ec88f630be934f9373c2f7b36c38de4e64e92')
version('1.5.5', sha256='55fe161f867a0c3772023c3047041b877aa54d29cb474ec87293ec31cc5cb30c')
diff --git a/var/spack/repos/builtin/packages/r-dichromat/package.py b/var/spack/repos/builtin/packages/r-dichromat/package.py
index 5fbadf1af3..d7bd5fc364 100644
--- a/var/spack/repos/builtin/packages/r-dichromat/package.py
+++ b/var/spack/repos/builtin/packages/r-dichromat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-diffobj/package.py b/var/spack/repos/builtin/packages/r-diffobj/package.py
new file mode 100644
index 0000000000..6445949014
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-diffobj/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RDiffobj(RPackage):
+ """Diffs for R Objects
+
+ Generate a colorized diff of two R objects for an intuitive visualization
+ of their differences."""
+
+ homepage = "https://github.com/brodieG/diffobj"
+ url = "https://cloud.r-project.org/src/contrib/diffobj_0.3.3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/diffobj"
+
+ version('0.3.3', sha256='414e5573470b9565b9149a0a61c7e8344fb37f889d23dc4e131acc8aa62e6df4')
+
+ depends_on('r@3.1.0:', type=('build', 'run'))
+ depends_on('r-crayon@1.3.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-diffusionmap/package.py b/var/spack/repos/builtin/packages/r-diffusionmap/package.py
index 3002ec28cb..1d51bb74aa 100644
--- a/var/spack/repos/builtin/packages/r-diffusionmap/package.py
+++ b/var/spack/repos/builtin/packages/r-diffusionmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,18 @@ from spack import *
class RDiffusionmap(RPackage):
- """Allows to display a progress bar in the R console for long running
- computations taking place in c++ code, and support for interrupting those
- computations even in multithreaded code, typically using OpenMP."""
+ """Diffusion Map
+
+ Implements diffusion map method of data parametrization, including creation
+ and visualization of diffusion map, clustering with diffusion K-means and
+ regression using adaptive regression model. Richards (2009)
+ <doi:10.1088/0004-637X/691/1/32>."""
homepage = "https://cloud.r-project.org/package=diffusionMap"
url = "https://cloud.r-project.org/src/contrib/diffusionMap_1.1-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/diffusionMap"
+ version('1.2.0', sha256='523847592fbc3a29252bc92b5821e17564ce6b188c483c930e95e6950c3873e7')
version('1.1-0.1', sha256='b24cf841af2566ac36f4ede2885f2ff355a7905398444d6d89747315d99a8486')
version('1.1-0', sha256='637b810140145fa0cbafb1c13da347c2f456c425334ae554d11a3107052e28d1')
version('1.0-0', sha256='1e3c54f72cbb2bce1b06b85fda33242b9041d30d4ac8c12df4dc9a3a95a44044')
@@ -22,6 +26,7 @@ class RDiffusionmap(RPackage):
version('0.0-1', sha256='38c4af2d2a4fa4116c2e01a5e67ba313e7a8e76f724a3312a3c12b26e299f844')
depends_on('r@2.4.0:', type=('build', 'run'))
- depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r@2.10:', when='@1.2.0:', type=('build', 'run'))
depends_on('r-scatterplot3d', type=('build', 'run'))
depends_on('r-igraph', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-digest/package.py b/var/spack/repos/builtin/packages/r-digest/package.py
index 6d02efcbdf..07ea211795 100644
--- a/var/spack/repos/builtin/packages/r-digest/package.py
+++ b/var/spack/repos/builtin/packages/r-digest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RDigest(RPackage):
- """Implementation of a function 'digest()' for the creation of hash digests
+ """Create Compact Hash Digests of R Objects
+
+ Implementation of a function 'digest()' for the creation of hash digests
of arbitrary R objects (using the md5, sha-1, sha-256, crc32, xxhash and
murmurhash algorithms) permitting easy comparison of R language objects, as
well as a function 'hmac()' to create hash-based message authentication
@@ -24,10 +26,11 @@ class RDigest(RPackage):
comprehensive (and widely tested) libraries such as OpenSSL should be
used."""
- homepage = "http://dirk.eddelbuettel.com/code/digest.html"
+ homepage = "https://dirk.eddelbuettel.com/code/digest.html"
url = "https://cloud.r-project.org/src/contrib/digest_0.6.12.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/digest"
+ version('0.6.27', sha256='f485f75122907da24c41d4a62c91a232f0c371befd2f77e973342a1bef00253f')
version('0.6.25', sha256='15ccadb7b8bccaa221b6700bb549011719d0f4b38dbd3a1f29face3e019e2de5')
version('0.6.20', sha256='05674b0b5d888461ff770176c67b10a11be062b0fee5dbd9298f25a9a49830c7')
version('0.6.19', sha256='28d159bd589ecbd01b8da0826eaed417f5c1bf5a11b79e76bf67ce8d935cccf4')
@@ -35,5 +38,6 @@ class RDigest(RPackage):
version('0.6.11', sha256='edab2ca2a38bd7ee19482c9d2531cd169d5123cde4aa2a3dd65c0bcf3d1d5209')
version('0.6.9', sha256='95fdc36011869fcfe21b40c3b822b931bc01f8a531e2c9260582ba79560dbe47')
- depends_on('r@2.4.1:', when='@:0.6.15', type=('build', 'run'))
+ depends_on('r@2.4.1:', type=('build', 'run'))
depends_on('r@3.1.0:', when='@0.6.16:', type=('build', 'run'))
+ depends_on('r@3.3.0:', when='@0.6.27:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-diptest/package.py b/var/spack/repos/builtin/packages/r-diptest/package.py
index 6a13308a66..7cd11956b8 100644
--- a/var/spack/repos/builtin/packages/r-diptest/package.py
+++ b/var/spack/repos/builtin/packages/r-diptest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-dirichletmultinomial/package.py b/var/spack/repos/builtin/packages/r-dirichletmultinomial/package.py
index 8b692dc475..9b5fcf2d35 100644
--- a/var/spack/repos/builtin/packages/r-dirichletmultinomial/package.py
+++ b/var/spack/repos/builtin/packages/r-dirichletmultinomial/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RDirichletmultinomial(RPackage):
"""Dirichlet-Multinomial Mixture Model Machine Learning for Microbiome
- Data.
+ Data
Dirichlet-multinomial mixture models can be used to describe variability
in microbial metagenomic data. This package is an interface to code
@@ -19,6 +19,7 @@ class RDirichletmultinomial(RPackage):
homepage = "https://bioconductor.org/packages/DirichletMultinomial"
git = "https://git.bioconductor.org/packages/DirichletMultinomial.git"
+ version('1.32.0', commit='6949abab2462b2c09f7a0ca5b5cbf0c95a40ad16')
version('1.26.0', commit='7daa84948020811bb8a27d2e633fccfdcdd1018f')
version('1.24.1', commit='50195d9b1986852da29100e77f6f09df5d6e2a35')
version('1.22.0', commit='5864f4298105d12f345f27df77ad13bae4061ca5')
diff --git a/var/spack/repos/builtin/packages/r-dismo/package.py b/var/spack/repos/builtin/packages/r-dismo/package.py
index 9564211ed1..7b0010a58e 100644
--- a/var/spack/repos/builtin/packages/r-dismo/package.py
+++ b/var/spack/repos/builtin/packages/r-dismo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,20 @@ from spack import *
class RDismo(RPackage):
- """Functions for species distribution modeling, that is, predicting
- entire geographic distributions form occurrences at a number of sites
- and the environment at these sites."""
+ """Species Distribution Modeling
+
+ Methods for species distribution modeling, that is, predicting the
+ environmental similarity of any site to that of the locations of known
+ occurrences of a species."""
homepage = "https://cloud.r-project.org/package=dismo"
url = "https://cloud.r-project.org/src/contrib/dismo_1.1-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/dismo"
+ version('1.3-3', sha256='fd65331ac18a4287ba0856b90508ddd0e2738c653eecc5f3eb2b14e1d06949ca')
version('1.1-4', sha256='f2110f716cd9e4cca5fd2b22130c6954658aaf61361d2fe688ba22bbfdfa97c8')
depends_on('r@3.2.0:', type=('build', 'run'))
depends_on('r-raster@2.5-2:', type=('build', 'run'))
depends_on('r-sp@1.2-0:', type=('build', 'run'))
+ depends_on('java@8:', when='@1.3-3:')
diff --git a/var/spack/repos/builtin/packages/r-diversitree/package.py b/var/spack/repos/builtin/packages/r-diversitree/package.py
index d661a11453..8b51ceb4e9 100644
--- a/var/spack/repos/builtin/packages/r-diversitree/package.py
+++ b/var/spack/repos/builtin/packages/r-diversitree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RDiversitree(RPackage):
- """Contains a number of comparative 'phylogenetic' methods.
+ """Comparative 'Phylogenetic' Analyses of Diversification
Mostly focusing on analysing diversification and character
evolution. Contains implementations of 'BiSSE' (Binary State
@@ -18,14 +18,15 @@ class RDiversitree(RPackage):
models of discrete and continuous trait evolution and constant
rate 'speciation' and extinction."""
- homepage = "http://www.zoology.ubc.ca/prog/diversitree"
+ homepage = "https://www.zoology.ubc.ca/prog/diversitree"
url = "https://cloud.r-project.org/src/contrib/diversitree_0.9-10.tar.gz"
list_url = "https://cron.r-project.org/src/contrib/Archive/diversitree"
+ version('0.9-15', sha256='c739ef3d4fcc24fd6855b1d297d31e0f89fbaff1efe8a2d149044458ecd363ea')
version('0.9-11', sha256='4caa6a468f93de9f1c8c30e4457f34bb8346e1acdaf74f684005bfa86a950ecb')
version('0.9-10', sha256='e7df5910c8508a5c2c2d6d3deea53dd3f947bb762196901094c32a7033cb043e')
- depends_on('r@2.1.0:', type=('build', 'run'))
+ depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-ape', type=('build', 'run'))
depends_on('r-desolve@1.7:', type=('build', 'run'))
depends_on('r-subplex', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dmrcate/package.py b/var/spack/repos/builtin/packages/r-dmrcate/package.py
new file mode 100644
index 0000000000..5f04590e15
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-dmrcate/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2021 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 RDmrcate(RPackage):
+ """Methylation array and sequencing spatial analysis methods:
+
+ De novo identification and extraction of differentially methylated regions
+ (DMRs) from the human genome using Whole Genome Bisulfite Sequencing (WGBS)
+ and Illumina Infinium Array (450K and EPIC) data. Provides functionality
+ for filtering probes possibly confounded by SNPs and cross-hybridisation.
+ Includes GRanges generation and plotting functions."""
+
+ bioc = "DMRcate"
+
+ version('2.4.1', commit='bc6242a0291a9b997872f575a4417d38550c9550')
+
+ depends_on('r@3.6.0:', type=('build', 'run'))
+ depends_on('r-minfi', type=('build', 'run'))
+ depends_on('r-summarizedexperiment', type=('build', 'run'))
+ depends_on('r-experimenthub', type=('build', 'run'))
+ depends_on('r-bsseq', type=('build', 'run'))
+ depends_on('r-genomeinfodb', type=('build', 'run'))
+ depends_on('r-limma', type=('build', 'run'))
+ depends_on('r-edger', type=('build', 'run'))
+ depends_on('r-dss', type=('build', 'run'))
+ depends_on('r-missmethyl', type=('build', 'run'))
+ depends_on('r-genomicranges', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-gviz', type=('build', 'run'))
+ depends_on('r-iranges', type=('build', 'run'))
+ depends_on('r-s4vectors', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dnacopy/package.py b/var/spack/repos/builtin/packages/r-dnacopy/package.py
index 4ddea98cdc..00358abc46 100644
--- a/var/spack/repos/builtin/packages/r-dnacopy/package.py
+++ b/var/spack/repos/builtin/packages/r-dnacopy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RDnacopy(RPackage):
- """DNA copy number data analysis.
+ """DNA copy number data analysis
Implements the circular binary segmentation (CBS) algorithm to segment
DNA copy number data and identify genomic regions with abnormal copy
@@ -16,6 +16,7 @@ class RDnacopy(RPackage):
homepage = "https://bioconductor.org/packages/DNAcopy"
git = "https://git.bioconductor.org/packages/DNAcopy.git"
+ version('1.64.0', commit='01650266ea7a4e5c600de545fe70a1103e79b2d8')
version('1.58.0', commit='1954745eafca990d6ddeefe84059c54a8c37df23')
version('1.56.0', commit='e521826f2515b309921272f65db421cbe2ff961a')
version('1.54.0', commit='fe2657936afbce8ee03221461dff4265e3ded4c4')
diff --git a/var/spack/repos/builtin/packages/r-do-db/package.py b/var/spack/repos/builtin/packages/r-do-db/package.py
index be152d3049..5b09a3e727 100644
--- a/var/spack/repos/builtin/packages/r-do-db/package.py
+++ b/var/spack/repos/builtin/packages/r-do-db/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RDoDb(RPackage):
- """A set of annotation maps describing the entire Disease
+ """A set of annotation maps describing the entire Disease Ontology
+
+ A set of annotation maps describing the entire Disease
Ontology assembled using data from DO."""
homepage = "https://bioconductor.org/packages/DO.db/"
@@ -15,4 +17,5 @@ class RDoDb(RPackage):
version('2.9', sha256='762bcb9b5188274fd81d82f785cf2846a5acc61fad55e2ff8ec1502282c27881')
+ depends_on('r@2.7.0:', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-domc/package.py b/var/spack/repos/builtin/packages/r-domc/package.py
index 8df8cbf523..46a7cbe2e3 100644
--- a/var/spack/repos/builtin/packages/r-domc/package.py
+++ b/var/spack/repos/builtin/packages/r-domc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RDomc(RPackage):
- """Provides a parallel backend for the %dopar% function using
+ """Foreach Parallel Adaptor for 'parallel'
+
+ Provides a parallel backend for the %dopar% function using
the multicore functionality of the parallel package."""
homepage = "https://cloud.r-project.org/package=doMC"
url = "https://cloud.r-project.org/src/contrib/doMC_1.3.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/doMC"
+ version('1.3.7', sha256='defab27adc298a6746896d83251f8355d62c01012d51ef96d491875a2e74b54d')
version('1.3.6', sha256='2977fc9e2dc54d85d45b4a36cd286dff72834fbc73f38b6ee45a6eb8557fc9b2')
version('1.3.4', sha256='76a1092fca59b441e6f89eb7e2fb3a12de807f736a217949c80339f20c958778')
diff --git a/var/spack/repos/builtin/packages/r-doparallel/package.py b/var/spack/repos/builtin/packages/r-doparallel/package.py
index fc06d2f142..6e6bb023fb 100644
--- a/var/spack/repos/builtin/packages/r-doparallel/package.py
+++ b/var/spack/repos/builtin/packages/r-doparallel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RDoparallel(RPackage):
- """Provides a parallel backend for the %dopar% function using the parallel
+ """Foreach Parallel Adaptor for the 'parallel' Package
+
+ Provides a parallel backend for the %dopar% function using the parallel
package."""
homepage = "https://cloud.r-project.org/package=doParallel"
url = "https://cloud.r-project.org/src/contrib/doParallel_1.0.10.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/doParallel"
+ version('1.0.16', sha256='f1bb26f964f30d47ae4d6cf2b0a2ca0c2122d376424875e82d9abe9e7b054eb2')
version('1.0.15', sha256='71ad7ea69616468996aefdd8d02a4a234759a21ddde9ed1657e3c537145cd86e')
version('1.0.11', sha256='4ccbd2eb46d3e4f5251b0c3de4d93d9168b02bb0be493656d6aea236667ff76a')
version('1.0.10', sha256='70024b6950025cc027022ee409f382e5ad3680c0a25bcd404bfc16418be8add5')
diff --git a/var/spack/repos/builtin/packages/r-dorng/package.py b/var/spack/repos/builtin/packages/r-dorng/package.py
index 5c4f0fbc78..637128a31f 100644
--- a/var/spack/repos/builtin/packages/r-dorng/package.py
+++ b/var/spack/repos/builtin/packages/r-dorng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,25 +7,27 @@ from spack import *
class RDorng(RPackage):
- """Provides functions to perform reproducible parallel foreach loops,
- using independent random streams as generated by L'Ecuyer's combined
- multiple-recursive generator (L'Ecuyer (1999),
- <doi:10.1287/opre.47.1.159>).
+ """Generic Reproducible Parallel Backend for 'foreach' Loops
- It enables to easily convert standard %dopar% loops into fully
- reproducible loops, independently of the number of workers, the task
- scheduling strategy, or the chosen parallel environment and associated
- foreach backend."""
+ Provides functions to perform reproducible parallel foreach loops, using
+ independent random streams as generated by L'Ecuyer's combined
+ multiple-recursive generator (L'Ecuyer (1999),
+ <doi:10.1287/opre.47.1.159>). It enables to easily convert standard
+ %dopar% loops into fully reproducible loops, independently of the number of
+ workers, the task scheduling strategy, or the chosen parallel environment
+ and associated foreach backend."""
homepage = "https://cloud.r-project.org/package=doRNG"
url = "https://cloud.r-project.org/src/contrib/doRNG_1.6.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/doRNG"
+ version('1.8.2', sha256='33e9d45b91b0fde2e35e911b9758d0c376049121a98a1e4c73a1edfcff11cec9')
version('1.7.1', sha256='27533d54464889d1c21301594137fc0f536574e3a413d61d7df9463ab12a67e9')
version('1.6.6', sha256='939c2282c72c0b89fc7510f4bff901a4e99007dc006f46762c8f594c0ecbd876')
depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r-foreach', type=('build', 'run'))
depends_on('r-rngtools@1.3:', type=('build', 'run'))
+ depends_on('r-rngtools@1.5:', when='@1.8.2:', type=('build', 'run'))
depends_on('r-iterators', type=('build', 'run'))
- depends_on('r-pkgmaker@0.20:', type=('build', 'run'))
+ depends_on('r-pkgmaker@0.20:', when='@:1.7.1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dose/package.py b/var/spack/repos/builtin/packages/r-dose/package.py
index 70e5f103d9..0de5b437e1 100644
--- a/var/spack/repos/builtin/packages/r-dose/package.py
+++ b/var/spack/repos/builtin/packages/r-dose/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RDose(RPackage):
- """Disease Ontology Semantic and Enrichment analysis.
+ """Disease Ontology Semantic and Enrichment analysis
This package implements five methods proposed by Resnik, Schlicker,
Jiang, Lin and Wang respectively for measuring semantic similarities
@@ -19,6 +19,7 @@ class RDose(RPackage):
homepage = "https://bioconductor.org/packages/DOSE"
git = "https://git.bioconductor.org/packages/DOSE.git"
+ version('3.16.0', commit='a534a4f2ef1e54e8b92079cf1bbedb5042fd90cd')
version('3.10.2', commit='5ea51a2e2a04b4f3cc974cecb4537e14efd6a7e3')
version('3.8.2', commit='4d3d1ca710aa7e4288a412c8d52b054b86a57639')
version('3.6.1', commit='f2967f0482cea39222bfd15767d0f4a5994f241b')
@@ -26,18 +27,17 @@ class RDose(RPackage):
version('3.2.0', commit='71f563fc39d02dfdf65184c94e0890a63b96b86b')
depends_on('r@3.3.1:', type=('build', 'run'))
+ depends_on('r@3.4.0:', when='@3.6.1:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@3.16.0:', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
depends_on('r-biocparallel', type=('build', 'run'))
depends_on('r-do-db', type=('build', 'run'))
depends_on('r-fgsea', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
depends_on('r-gosemsim@2.0.0:', type=('build', 'run'))
- depends_on('r-igraph', when='@3.2.0:3.4.0', type=('build', 'run'))
depends_on('r-qvalue', type=('build', 'run'))
depends_on('r-reshape2', type=('build', 'run'))
- depends_on('r-s4vectors', type=('build', 'run'))
+ depends_on('r-s4vectors', when='@:3.10.2', type=('build', 'run'))
depends_on('r-scales', when='@3.2.0:3.4.0', type=('build', 'run'))
-
depends_on('r-rvcheck', when='@3.4.0', type=('build', 'run'))
-
- depends_on('r@3.4.0:', when='@3.6.1:', type=('build', 'run'))
+ depends_on('r-igraph', when='@3.2.0:3.4.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dosnow/package.py b/var/spack/repos/builtin/packages/r-dosnow/package.py
index 18de14a737..3d9addb2fc 100644
--- a/var/spack/repos/builtin/packages/r-dosnow/package.py
+++ b/var/spack/repos/builtin/packages/r-dosnow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RDosnow(RPackage):
- """Provides a parallel backend for the %dopar% function using the snow
+ """Foreach Parallel Adaptor for the 'snow' Package
+
+ Provides a parallel backend for the %dopar% function using the snow
package of Tierney, Rossini, Li, and Sevcikova."""
homepage = "https://cloud.r-project.org/package=doSNOW"
url = "https://cloud.r-project.org/src/contrib/doSNOW_1.0.18.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/doSNOW"
+ version('1.0.19', sha256='4cd2d080628482f4c6ecab593313d7e42516f5ff13fbf9f90e461fcad0580738')
version('1.0.18', sha256='70e7bd82186e477e3d1610676d4c6a75258ac08f104ecf0dcc971550ca174766')
depends_on('r@2.5.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dotcall64/package.py b/var/spack/repos/builtin/packages/r-dotcall64/package.py
index b9214c5a95..3c92545fdc 100644
--- a/var/spack/repos/builtin/packages/r-dotcall64/package.py
+++ b/var/spack/repos/builtin/packages/r-dotcall64/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-downloader/package.py b/var/spack/repos/builtin/packages/r-downloader/package.py
index ecf053e698..f6dc6783be 100644
--- a/var/spack/repos/builtin/packages/r-downloader/package.py
+++ b/var/spack/repos/builtin/packages/r-downloader/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-dplyr/package.py b/var/spack/repos/builtin/packages/r-dplyr/package.py
index d6936c182c..956bc1c36e 100644
--- a/var/spack/repos/builtin/packages/r-dplyr/package.py
+++ b/var/spack/repos/builtin/packages/r-dplyr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RDplyr(RPackage):
- """A fast, consistent tool for working with data frame like objects, both
+ """A Grammar of Data Manipulation
+
+ A fast, consistent tool for working with data frame like objects, both
in memory and out of memory."""
homepage = "https://cloud.r-project.org/package=dplyr"
url = "https://cloud.r-project.org/src/contrib/dplyr_0.7.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/dplyr"
+ version('1.0.3', sha256='28a1a9d87e99154d4d1542ef9da9fd70f869a173dc9709f4583a5770bae58441')
version('0.8.3', sha256='68b4aac65a69ea6390e90991d9c7ce7a011a07e5db439d60cce911a078424c0c')
version('0.8.2', sha256='e2b6d5b30d04d86f270374623da426541cee8e33ce446fcab6cd7862abf8e18b')
version('0.7.7', sha256='0553db5a55f0e6f5d2d111e88422c6d26e9d54cb36b860ad2ca28e3826e3d4a4')
@@ -26,17 +29,26 @@ class RDplyr(RPackage):
version('0.7.0', sha256='27b3593c09da5e99c0c4fb19ea826edd2cab619f8aaefd0cfd2a4140a0bd9410')
version('0.5.0', sha256='93d3b829f1c2d38e14a4f2fa7d6398fc6c1a9e4189b3e78bc38a0eb0e864454f')
- depends_on('r@3.1.2:', when='@:0.8.0.1', type=('build', 'run'))
+ depends_on('r@3.1.2:', type=('build', 'run'))
depends_on('r@3.2.0:', when='@0.8.1:', type=('build', 'run'))
- depends_on('r-assertthat@0.2.0:', type=('build', 'run'))
- depends_on('r-bindrcpp@0.2.0:', when='@:0.7.9', type=('build', 'run'))
+ depends_on('r@3.3.0:', when='@1.0.3:', type=('build', 'run'))
+ depends_on('r-ellipsis', when='@1.0.3:', type=('build', 'run'))
+ depends_on('r-generics', when='@1.0.3:', type=('build', 'run'))
depends_on('r-glue@1.3.0:', type=('build', 'run'))
+ depends_on('r-glue@1.3.2:', when='@1.0.3:', type=('build', 'run'))
+ depends_on('r-lifecycle@0.2.0:', when='@1.0.3:', type=('build', 'run'))
depends_on('r-magrittr@1.5:', type=('build', 'run'))
- depends_on('r-pkgconfig', type=('build', 'run'))
depends_on('r-r6', type=('build', 'run'))
- depends_on('r-rcpp@1.0.1:', type=('build', 'run'))
depends_on('r-rlang@0.4.0:', type=('build', 'run'))
+ depends_on('r-rlang@0.4.9:', when='@1.0.3:', type=('build', 'run'))
depends_on('r-tibble@2.0.0:', type=('build', 'run'))
+ depends_on('r-tibble@2.1.3:', when='@1.0.3:', type=('build', 'run'))
depends_on('r-tidyselect@0.2.5:', type=('build', 'run'))
- depends_on('r-bh', type=('build', 'run'))
- depends_on('r-plogr@0.2.0:', when='@0.7.0:', type=('build', 'run'))
+ depends_on('r-tidyselect@1.1.0:', when='@1.0.3:', type=('build', 'run'))
+ depends_on('r-vctrs@0.3.5:', when='@1.0.3:', type=('build', 'run'))
+ depends_on('r-assertthat@0.2.0:', when='@:0.8.3', type=('build', 'run'))
+ depends_on('r-bindrcpp@0.2.0:', when='@:0.7.9', type=('build', 'run'))
+ depends_on('r-pkgconfig', when='@:0.8.3', type=('build', 'run'))
+ depends_on('r-rcpp@1.0.1:', when='@:0.8.3', type=('build', 'run'))
+ depends_on('r-bh', when='@:0.8.3', type=('build', 'run'))
+ depends_on('r-plogr@0.2.0:', when='@0.7.0:0.8.3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dqrng/package.py b/var/spack/repos/builtin/packages/r-dqrng/package.py
index 07109336c3..42ff453a5e 100644
--- a/var/spack/repos/builtin/packages/r-dqrng/package.py
+++ b/var/spack/repos/builtin/packages/r-dqrng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-dss/package.py b/var/spack/repos/builtin/packages/r-dss/package.py
index 7d4f8f2318..0b66b4ac00 100644
--- a/var/spack/repos/builtin/packages/r-dss/package.py
+++ b/var/spack/repos/builtin/packages/r-dss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RDss(RPackage):
- """Dispersion shrinkage for sequencing data.
+ """Dispersion shrinkage for sequencing data
DSS is an R library performing differntial analysis for count-based
sequencing data. It detectes differentially expressed genes (DEGs) from
@@ -16,15 +16,16 @@ class RDss(RPackage):
shrinkage method for estimating the dispersion parameter from Gamma-Poisson
or Beta-Binomial distributions."""
- homepage = "http://bioconductor.org/packages/DSS/"
+ homepage = "https://bioconductor.org/packages/DSS/"
git = "https://git.bioconductor.org/packages/DSS"
+ version('2.38.0', commit='82e65b92e6e227f1f99620362db8b03059e07e98')
version('2.36.0', commit='841c7ed')
version('2.34.0', commit='f9819c7')
version('2.32.0', commit='ffb502d')
depends_on('r@3.3:', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
- depends_on('r-bsseq', type=('build', 'run'))
depends_on('r-biocparallel', when='@2.36.0:', type=('build', 'run'))
+ depends_on('r-bsseq', type=('build', 'run'))
depends_on('r-delayedarray', when='@2.36.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dt/package.py b/var/spack/repos/builtin/packages/r-dt/package.py
index b1e899093a..a0fc8655a6 100644
--- a/var/spack/repos/builtin/packages/r-dt/package.py
+++ b/var/spack/repos/builtin/packages/r-dt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,18 @@ from spack import *
class RDt(RPackage):
- """Data objects in R can be rendered as HTML tables using the JavaScript
+ """A Wrapper of the JavaScript Library 'DataTables'
+
+ Data objects in R can be rendered as HTML tables using the JavaScript
library 'DataTables' (typically via R Markdown or Shiny). The 'DataTables'
library has been included in this R package. The package name 'DT' is an
abbreviation of 'DataTables'."""
- homepage = "http://rstudio.github.io/DT"
+ homepage = "https://rstudio.github.io/DT"
url = "https://cloud.r-project.org/src/contrib/DT_0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/DT"
+ version('0.17', sha256='e3430292421dcc2b6ad5f2deda729f0603da4eb31f86d071833e6e11abf3fb56')
version('0.13', sha256='79a073fe96980ce150d790ab76133c9e80bd463270c34d149c03934a622d63b5')
version('0.8', sha256='90195054148806cf31c7db5c41f72d5389c75adc0b1183606a9babd2c6ae8e21')
version('0.7', sha256='1de3f170deccd9e3aaefc057dd87c498e3b3f7f88eff645cf165ac34ffe3de2c')
@@ -27,7 +30,7 @@ class RDt(RPackage):
depends_on('r-htmltools@0.3.6:', type=('build', 'run'))
depends_on('r-htmlwidgets@1.3:', type=('build', 'run'))
+ depends_on('r-jsonlite@0.9.16:', when='@0.8:', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-crosstalk', type=('build', 'run'))
depends_on('r-promises', when='@0.5:', type=('build', 'run'))
- depends_on('r-jsonlite@0.9.16:', when='@0.8:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dtw/package.py b/var/spack/repos/builtin/packages/r-dtw/package.py
index ea6af863ee..3bb9f24b6e 100644
--- a/var/spack/repos/builtin/packages/r-dtw/package.py
+++ b/var/spack/repos/builtin/packages/r-dtw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,21 @@ from spack import *
class RDtw(RPackage):
- """A comprehensive implementation of dynamic time warping (DTW) algorithms
- in R. DTW computes the optimal (least cumulative distance) alignment
- between points of two time series."""
+ """Dynamic Time Warping Algorithms
+
+ A comprehensive implementation of dynamic time warping (DTW) algorithms in
+ R. DTW computes the optimal (least cumulative distance) alignment between
+ points of two time series. Common DTW variants covered include local
+ (slope) and global (window) constraints, subsequence matches, arbitrary
+ distance definitions, normalizations, minimum variance matching, and so on.
+ Provides cumulative distances, alignments, specialized plot styles, etc.,
+ as described in Giorgino (2009) <doi:10.18637/jss.v031.i07>."""
homepage = "https://cloud.r-project.org/package=dtw"
url = "https://cloud.r-project.org/src/contrib/dtw_1.18-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/dtw"
+ version('1.22-3', sha256='df7cf9adf613422ddb22a160597eb5f5475ab6c67c0d790092edb7f72ba98f00')
version('1.20-1', sha256='43ca1a47a7c81a2b5d5054da1be8b8af79a85d6f9ce7b4512e9ed91f790f60f0')
version('1.18-1', sha256='d9dab25bdf61705f9f28dc5ca1c96a7465b269233e878516c52c01b5a0da21ad')
version('1.17-1', sha256='0fc3afcebc58135c78abd7545a3549466ac051a058f913db16214c12141a6e4d')
diff --git a/var/spack/repos/builtin/packages/r-dygraphs/package.py b/var/spack/repos/builtin/packages/r-dygraphs/package.py
index f4b659eeed..16ff6911d9 100644
--- a/var/spack/repos/builtin/packages/r-dygraphs/package.py
+++ b/var/spack/repos/builtin/packages/r-dygraphs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-dynamictreecut/package.py b/var/spack/repos/builtin/packages/r-dynamictreecut/package.py
index d3da482416..cae54847b8 100644
--- a/var/spack/repos/builtin/packages/r-dynamictreecut/package.py
+++ b/var/spack/repos/builtin/packages/r-dynamictreecut/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-e1071/package.py b/var/spack/repos/builtin/packages/r-e1071/package.py
index b853a44f65..fd2d77dd9e 100644
--- a/var/spack/repos/builtin/packages/r-e1071/package.py
+++ b/var/spack/repos/builtin/packages/r-e1071/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,10 @@ from spack import *
class RE1071(RPackage):
- """Functions for latent class analysis, short time Fourier transform, fuzzy
+ """Misc Functions of the Department of Statistics, Probability Theory Group
+ (Formerly: E1071), TU Wien
+
+ Functions for latent class analysis, short time Fourier transform, fuzzy
clustering, support vector machines, shortest path computation, bagged
clustering, naive Bayes classifier, ..."""
@@ -15,6 +18,7 @@ class RE1071(RPackage):
url = "https://cloud.r-project.org/src/contrib/e1071_1.6-7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/e1071"
+ version('1.7-4', sha256='e6ab871b06f500dc65f8f781cc7253f43179698784c06dab040b4aa6592f2309')
version('1.7-2', sha256='721c299ce83047312acfa3e0c4b3d4c223d84a4c53400c73465cca2c92913752')
version('1.7-1', sha256='5c5f04a51c1cd2c7dbdf69987adef9bc07116804c63992cd36d804a1daf89dfe')
version('1.6-7', sha256='7048fbc0ac17d7e3420fe68081d0e0a2176b1154ee3191d53558ea9724c7c980')
diff --git a/var/spack/repos/builtin/packages/r-earth/package.py b/var/spack/repos/builtin/packages/r-earth/package.py
index e1dc5b293d..69e0c81ae0 100644
--- a/var/spack/repos/builtin/packages/r-earth/package.py
+++ b/var/spack/repos/builtin/packages/r-earth/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class REarth(RPackage):
- """earth: Multivariate Adaptive Regression Splines.
+ """Multivariate Adaptive Regression Splines.
Build regression models using the techniques in Friedman's papers
"Fast MARS" and "Multivariate Adaptive Regression Splines"
@@ -17,9 +17,11 @@ class REarth(RPackage):
url = "https://cloud.r-project.org/src/contrib/earth_5.1.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/earth"
+ version('5.3.0', sha256='05ace806271a74b3ddf8718a93237fe2a8550a8659ebd87f8079c0bda5e02437')
version('5.1.2', sha256='326f98e8c29365ca3cd5584cf2bd6529358f5ef81664cbd494162f92b6c3488d')
depends_on('r@3.4.0:', type=('build', 'run'))
depends_on('r-formula@1.2-3:', type=('build', 'run'))
depends_on('r-plotmo@3.5.4:', type=('build', 'run'))
+ depends_on('r-plotmo@3.6.0:', when='@5.3.0', type=('build', 'run'))
depends_on('r-teachingdemos@2.10:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ecp/package.py b/var/spack/repos/builtin/packages/r-ecp/package.py
index 700c1780e0..1eb3e7346c 100644
--- a/var/spack/repos/builtin/packages/r-ecp/package.py
+++ b/var/spack/repos/builtin/packages/r-ecp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,22 @@ from spack import *
class REcp(RPackage):
- """ecp: Non-Parametric Multiple Change-Point Analysis of
- MultivariateData"""
+ """Non-Parametric Multiple Change-Point Analysis of MultivariateData
+
+ Implements various procedures for finding multiple change-points from
+ Matteson D. et al (2013) <doi:10.1080/01621459.2013.849605>, Zhang W. et al
+ (2017) <doi:10.1109/ICDMW.2017.44>, Arlot S. et al (2019). Two methods make
+ use of dynamic programming and pruning, with no distributional assumptions
+ other than the existence of certain absolute moments in one method.
+ Hierarchical and exact search methods are included. All methods return the
+ set of estimated change-points as well as other summary information."""
homepage = "https://cloud.r-project.org/package=ecp"
url = "https://cloud.r-project.org/src/contrib/ecp_3.1.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ecp"
+ version('3.1.3', sha256='a80ab10bafe30cc96287b9220e44c4b4eda40f5dd0546e4d2a2e1baab514c058')
version('3.1.1', sha256='d2ab194e22e6ab0168222fbccfcf2e25c6cd51a73edc959086b0c6e0a7410268')
- depends_on('r@3.00:', type=('build', 'run'))
+ depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-edger/package.py b/var/spack/repos/builtin/packages/r-edger/package.py
index 5d7f481a70..f8cc2dbf8e 100644
--- a/var/spack/repos/builtin/packages/r-edger/package.py
+++ b/var/spack/repos/builtin/packages/r-edger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class REdger(RPackage):
- """Empirical Analysis of Digital Gene Expression Data in R.
+ """Empirical Analysis of Digital Gene Expression Data in R
Differential expression analysis of RNA-seq expression profiles with
biological replication. Implements a range of statistical methodology
@@ -20,6 +20,7 @@ class REdger(RPackage):
homepage = "https://bioconductor.org/packages/edgeR"
git = "https://git.bioconductor.org/packages/edgeR.git"
+ version('3.32.1', commit='b881d801d60e5b38413d27f149384c218621c55a')
version('3.26.8', commit='836809e043535f2264e5db8b5c0eabcffe85613f')
version('3.24.3', commit='d1260a2aeba67b9ab7a9b8b197b746814ad0716d')
version('3.22.5', commit='44461aa0412ef4a0d955730f365e44fc64fe1902')
@@ -27,10 +28,9 @@ class REdger(RPackage):
version('3.18.1', commit='101106f3fdd9e2c45d4a670c88f64c12e97a0495')
depends_on('r@2.15.0:', type=('build', 'run'))
+ depends_on('r@3.6.0:', when='@3.26.8:', type=('build', 'run'))
depends_on('r-limma', type=('build', 'run'))
- depends_on('r-locfit', type=('build', 'run'))
-
depends_on('r-limma@3.34.5:', when='@3.20.9:', type=('build', 'run'))
+ depends_on('r-limma@3.41.5:', when='@3.32.1:', type=('build', 'run'))
+ depends_on('r-locfit', type=('build', 'run'))
depends_on('r-rcpp', when='@3.20.9:', type=('build', 'run'))
-
- depends_on('r@3.6.0:', when='@3.26.8:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-effects/package.py b/var/spack/repos/builtin/packages/r-effects/package.py
new file mode 100644
index 0000000000..3a7c569638
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-effects/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 REffects(RPackage):
+ """Effect Displays for Linear, Generalized Linear, and Other Models
+
+ Graphical and tabular effect displays, e.g., of interactions, for various
+ statistical models with linear predictors."""
+
+ cran = "effects"
+
+ version('4.2-0', sha256='6833dfbc65f3f33191a24e9b0d2aa0c964caeebb6c4fd2036ad94ed2723a7a46')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-cardata', type=('build', 'run'))
+ depends_on('r-lme4', type=('build', 'run'))
+ depends_on('r-nnet', type=('build', 'run'))
+ depends_on('r-lattice', type=('build', 'run'))
+ depends_on('r-colorspace', type=('build', 'run'))
+ depends_on('r-survey', type=('build', 'run'))
+ depends_on('r-estimability', type=('build', 'run'))
+ depends_on('r-insight', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-elemstatlearn/package.py b/var/spack/repos/builtin/packages/r-elemstatlearn/package.py
new file mode 100644
index 0000000000..b42a4b67ca
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-elemstatlearn/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 RElemstatlearn(RPackage):
+ """ElemStatLearn: Data Sets, Functions and Examples from the Book: "The
+ Elements of Statistical Learning, Data Mining, Inference, and Prediction" by
+ Trevor Hastie, Robert Tibshirani and Jerome Friedman"""
+
+ homepage = "https://cloud.r-project.org/package=ElemStatLearn"
+ url = "https://cloud.r-project.org/src/contrib/Archive/ElemStatLearn/ElemStatLearn_2015.6.26.2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/ElemStatLearn"
+
+ version('2015.6.26.2', sha256='a0f94a72f6188a0a5c855e3362b6b849bf7fd14efc2d824a8d2581f8bb1bd7fa')
+
+ depends_on('r@2.10.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ellipse/package.py b/var/spack/repos/builtin/packages/r-ellipse/package.py
index bbeec79275..bbb1684d2f 100644
--- a/var/spack/repos/builtin/packages/r-ellipse/package.py
+++ b/var/spack/repos/builtin/packages/r-ellipse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,20 @@ from spack import *
class REllipse(RPackage):
- """This package contains various routines for drawing ellipses and
- ellipse-like confidence regions."""
+ """Functions for Drawing Ellipses and Ellipse-Like Confidence Regions
+
+ Contains various routines for drawing ellipses and ellipse-like confidence
+ regions, implementing the plots described in Murdoch and Chow (1996), A
+ graphical display of large correlation matrices, The American Statistician
+ 50, 178-180. There are also routines implementing the profile plots
+ described in Bates and Watts (1988), Nonlinear Regression Analysis and its
+ Applications."""
homepage = "https://cloud.r-project.org/package=ellipse"
url = "https://cloud.r-project.org/src/contrib/ellipse_0.3-8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ellipse"
+ version('0.4.2', sha256='1719ce9a00b9ac4d56dbf961803085b892d3359726fda3567bb989ddfed9a5f2')
version('0.4.1', sha256='1a9a9c52195b26c2b4d51ad159ab98aff7aa8ca25fdc6b2198818d1a0adb023d')
version('0.3-8', sha256='508d474c142f0770c25763d6c8f8f8c9dcf8205afd42ffa22e6be1e0360e7f45')
diff --git a/var/spack/repos/builtin/packages/r-ellipsis/package.py b/var/spack/repos/builtin/packages/r-ellipsis/package.py
index 3c583459f8..99af59d4c9 100644
--- a/var/spack/repos/builtin/packages/r-ellipsis/package.py
+++ b/var/spack/repos/builtin/packages/r-ellipsis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class REllipsis(RPackage):
- """The ellipsis is a powerful tool for extending functions. Unfortunately
+ """Tools for Working with ...
+
+ The ellipsis is a powerful tool for extending functions. Unfortunately
this power comes at a cost: misspelled arguments will be silently ignored.
The ellipsis package provides a collection of functions to catch problems
and alert the user."""
@@ -16,6 +18,7 @@ class REllipsis(RPackage):
url = "https://cloud.r-project.org/src/contrib/ellipsis_0.2.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ellipsis"
+ version('0.3.1', sha256='4f8a15158dfc27cdc0f7554c7a61e92b02e4d70bfc3d968f01a99da2189b75db')
version('0.3.0', sha256='0bf814cb7a1f0ee1f2949bdc98752a0d535f2a9489280dd4d8fcdb10067ee907')
version('0.2.0.1', sha256='0e6528c5e8016c3617cc1cfcdb5a4bfeb073e0bd5ea76b43e56b0c3208a0a943')
diff --git a/var/spack/repos/builtin/packages/r-emmeans/package.py b/var/spack/repos/builtin/packages/r-emmeans/package.py
new file mode 100644
index 0000000000..15762df117
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-emmeans/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 REmmeans(RPackage):
+ """Estimated Marginal Means, aka Least-Squares Means
+
+ Obtain estimated marginal means (EMMs) for many linear, generalized
+ linear, and mixed models. Compute contrasts or linear functions of EMMs,
+ trends, and comparisons of slopes. Plots and other displays.
+ Least-squares means are discussed, and the term "estimated marginal means"
+ is suggested, in Searle, Speed, and Milliken (1980) Population marginal
+ means in the linear model: An alternative to least squares means, The
+ American Statistician 34(4), 216-221 <doi:10.1080/00031305.1980.10483031>.
+ """
+
+ homepage = "https://github.com/rvlenth/emmeans"
+ cran = "emmeans"
+
+ version('1.6.0', sha256='201bb7b008dde94231ed60bcc6a32749442faaab4baeea99ad28b97c951b3c1e')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-estimability@1.3:', type=('build', 'run'))
+ depends_on('r-numderiv', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-mvtnorm', type=('build', 'run'))
+ depends_on('r-xtable@1.8-2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-emmli/package.py b/var/spack/repos/builtin/packages/r-emmli/package.py
index 1144e2d105..f01b09d31b 100644
--- a/var/spack/repos/builtin/packages/r-emmli/package.py
+++ b/var/spack/repos/builtin/packages/r-emmli/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-energy/package.py b/var/spack/repos/builtin/packages/r-energy/package.py
index db396a6bf5..dd354e1c56 100644
--- a/var/spack/repos/builtin/packages/r-energy/package.py
+++ b/var/spack/repos/builtin/packages/r-energy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,23 @@ from spack import *
class REnergy(RPackage):
- """E-Statistics: Multivariate Inference via the Energy of Data"""
+ """Statistics: Multivariate Inference via the Energy of Data
+
+ E-statistics (energy) tests and statistics for multivariate and univariate
+ inference, including distance correlation, one-sample, two-sample, and
+ multi-sample tests for comparing multivariate distributions, are
+ implemented. Measuring and testing multivariate independence based on
+ distance correlation, partial distance correlation, multivariate
+ goodness-of-fit tests, k-groups and hierarchical clustering based on energy
+ distance, testing for multivariate normality, distance components (disco)
+ for non-parametric analysis of structured data, and other energy
+ statistics/methods are implemented."""
homepage = "https://cloud.r-project.org/package=energy"
url = "https://cloud.r-project.org/src/contrib/energy_1.7-5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/energy"
+ version('1.7-7', sha256='67b88fb33ee6e7bec2e4fe356a4efd36f70c3cf9b0ebe2f6d9da9ec96de9968f')
version('1.7-6', sha256='900edbb28e1f1bccd78580828470628cf75eb6333b63e1a58e4da7fc5c5fa89a')
version('1.7-5', sha256='24c2cf080939f8f56cd9cda06d2dfc30d0389cd3ec7250af4f9a09a4c06b6996')
diff --git a/var/spack/repos/builtin/packages/r-enrichplot/package.py b/var/spack/repos/builtin/packages/r-enrichplot/package.py
index 8a30292b50..4521f4b953 100644
--- a/var/spack/repos/builtin/packages/r-enrichplot/package.py
+++ b/var/spack/repos/builtin/packages/r-enrichplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class REnrichplot(RPackage):
- """Visualization of Functional Enrichment Result.
+ """Visualization of Functional Enrichment Result
The 'enrichplot' package implements several visualization methods for
interpreting functional enrichment results obtained from ORA or GSEA
@@ -17,24 +17,30 @@ class REnrichplot(RPackage):
homepage = "https://bioconductor.org/packages/enrichplot"
git = "https://git.bioconductor.org/packages/enrichplot.git"
+ version('1.10.2', commit='77ee04f60a07cc31151f8f47f8ee64f3a43c9760')
version('1.4.0', commit='6ffe5d9c5dbe5cbea29f2e0941595475bbbcea0e')
version('1.2.0', commit='2eeaafb571d35a106eba8ae7df014f3201066e8b')
version('1.0.2', commit='ba7726fa0d4b581b7514dcbb04889cdbdd75ff29')
depends_on('r@3.4.0:', type=('build', 'run'))
- depends_on('r-annotationdbi', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@1.10.2:', type=('build', 'run'))
depends_on('r-cowplot', type=('build', 'run'))
- depends_on('r-dose@3.5.1:', type=('build', 'run'))
+ depends_on('r-dose', type=('build', 'run'))
+ depends_on('r-dose@3.5.1:', when='@:1.4.0', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
depends_on('r-ggraph', type=('build', 'run'))
- depends_on('r-ggridges', type=('build', 'run'))
- depends_on('r-gosemsim', type=('build', 'run'))
depends_on('r-igraph', type=('build', 'run'))
- depends_on('r-reshape2', type=('build', 'run'))
- depends_on('r-upsetr', type=('build', 'run'))
-
- depends_on('r-europepmc', when='@1.2.0:', type=('build', 'run'))
- depends_on('r-ggplotify', when='@1.2.0:', type=('build', 'run'))
- depends_on('r-gridextra', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-plyr', when='@1.10.2:', type=('build', 'run'))
depends_on('r-purrr', when='@1.2.0:', type=('build', 'run'))
depends_on('r-rcolorbrewer', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-reshape2', type=('build', 'run'))
+ depends_on('r-scatterpie', when='@1.10.2:', type=('build', 'run'))
+ depends_on('r-shadowtext', when='@1.10.2:', type=('build', 'run'))
+ depends_on('r-gosemsim', type=('build', 'run'))
+ depends_on('r-magrittr', when='@1.10.2:', type=('build', 'run'))
+ depends_on('r-ggridges', when='@:1.4.0', type=('build', 'run'))
+ depends_on('r-upsetr', when='@:1.4.0', type=('build', 'run'))
+ depends_on('r-annotationdbi', when='@:1.4.0', type=('build', 'run'))
+ depends_on('r-europepmc', when='@1.2.0:1.4.0', type=('build', 'run'))
+ depends_on('r-ggplotify', when='@1.2.0:1.4.0', type=('build', 'run'))
+ depends_on('r-gridextra', when='@1.2.0:1.4.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ensembldb/package.py b/var/spack/repos/builtin/packages/r-ensembldb/package.py
index 71aaf50c22..03f782030e 100644
--- a/var/spack/repos/builtin/packages/r-ensembldb/package.py
+++ b/var/spack/repos/builtin/packages/r-ensembldb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class REnsembldb(RPackage):
- """Utilities to create and use Ensembl-based annotation databases.
+ """Utilities to create and use Ensembl-based annotation databases
The package provides functions to create and use transcript centric
annotation databases/packages. The annotation for the databases are
@@ -25,6 +25,7 @@ class REnsembldb(RPackage):
homepage = "https://bioconductor.org/packages/ensembldb"
git = "https://git.bioconductor.org/packages/ensembldb.git"
+ version('2.14.0', commit='c7150519ed4ef38e5eac1043209863dbc7be43a1')
version('2.8.1', commit='a4d8d89c143dca86b364d59dff8e46cc81c41ac0')
version('2.6.8', commit='c2c4f41b4ecc81d5328ce1d380065dfcb5e0c54c')
version('2.4.1', commit='b5b6b94826a2f46a4faecb9dde750ecd3bfaf327')
@@ -33,8 +34,12 @@ class REnsembldb(RPackage):
depends_on('r-biocgenerics@0.15.10:', type=('build', 'run'))
depends_on('r-genomicranges@1.23.21:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.31.18:', when='@2.4.1:', type=('build', 'run'))
depends_on('r-genomicfeatures@1.23.18:', type=('build', 'run'))
+ depends_on('r-genomicfeatures@1.29.10:', when='@2.2.2:', type=('build', 'run'))
depends_on('r-annotationfilter@0.99.7:', type=('build', 'run'))
+ depends_on('r-annotationfilter@1.1.9:', when='@2.2.2:', type=('build', 'run'))
+ depends_on('r-annotationfilter@1.5.2:', when='@2.6.8:', type=('build', 'run'))
depends_on('r-rsqlite@1.1:', type=('build', 'run'))
depends_on('r-dbi', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
@@ -42,19 +47,13 @@ class REnsembldb(RPackage):
depends_on('r-annotationdbi@1.31.19:', type=('build', 'run'))
depends_on('r-rtracklayer', type=('build', 'run'))
depends_on('r-s4vectors', type=('build', 'run'))
- depends_on('r-annotationhub', when='@2.0.4:2.2.2', type=('build', 'run'))
+ depends_on('r-s4vectors@0.23.10:', when='@2.14.0:', type=('build', 'run'))
depends_on('r-rsamtools', type=('build', 'run'))
depends_on('r-iranges', type=('build', 'run'))
- depends_on('r-protgenerics', type=('build', 'run'))
- depends_on('r-biostrings', type=('build', 'run'))
- depends_on('r-curl', type=('build', 'run'))
-
- depends_on('r-genomicfeatures@1.29.10:', when='@2.2.2:', type=('build', 'run'))
- depends_on('r-annotationfilter@1.1.9:', when='@2.2.2:', type=('build', 'run'))
depends_on('r-iranges@2.11.16:', when='@2.2.2:', type=('build', 'run'))
-
- depends_on('r-genomicranges@1.31.18:', when='@2.4.1:', type=('build', 'run'))
depends_on('r-iranges@2.13.24:', when='@2.4.1:', type=('build', 'run'))
+ depends_on('r-protgenerics', type=('build', 'run'))
+ depends_on('r-biostrings', type=('build', 'run'))
depends_on('r-biostrings@2.47.9:', when='@2.4.1:', type=('build', 'run'))
-
- depends_on('r-annotationfilter@1.5.2:', when='@2.6.8:', type=('build', 'run'))
+ depends_on('r-curl', type=('build', 'run'))
+ depends_on('r-annotationhub', when='@2.0.4:2.2.2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-envstats/package.py b/var/spack/repos/builtin/packages/r-envstats/package.py
index 42e1726959..6090df3b6e 100644
--- a/var/spack/repos/builtin/packages/r-envstats/package.py
+++ b/var/spack/repos/builtin/packages/r-envstats/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,25 @@ from spack import *
class REnvstats(RPackage):
- """Graphical and statistical analyses of environmental data, with focus
- on analyzing chemical concentrations and physical parameters, usually
- in the context of mandated environmental monitoring.
- """
+ """Package for Environmental Statistics, Including US EPA Guidance
+
+ Graphical and statistical analyses of environmental data, with focus on
+ analyzing chemical concentrations and physical parameters, usually in the
+ context of mandated environmental monitoring. Major environmental
+ statistical methods found in the literature and regulatory guidance
+ documents, with extensive help that explains what these methods do, how to
+ use them, and where to find them in the literature. Numerous built-in
+ data sets from regulatory guidance documents and environmental statistics
+ literature. Includes scripts reproducing analyses presented in the book
+ "EnvStats: An R Package for Environmental Statistics" (Millard, 2013,
+ Springer, ISBN 978-1-4614-8455-4,
+ <https://www.springer.com/book/9781461484554>)."""
homepage = "https://cloud.r-project.org/package=EnvStats"
url = "https://cloud.r-project.org/src/contrib/EnvStats_2.3.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/EnvStats"
+ version('2.4.0', sha256='49459e76412037b3d8021bd83ee93d140bc3e715a2a2282a347ef60061900514')
version('2.3.1', sha256='d753d42b42ff28c1cd25c63916fb2aa9e325941672fb16f7dfd97e218416cf2a')
version('2.3.0', sha256='51b7c982b4ffc6506579ec6933c817b780b8dade9f5e7754122e4132cb677a75')
version('2.2.1', sha256='bbad7736272a404302190ccf1095abd8674d4366f3827a1c0a9540bcafe0523e')
diff --git a/var/spack/repos/builtin/packages/r-ergm/package.py b/var/spack/repos/builtin/packages/r-ergm/package.py
index 0b853f1fbd..67dfc4487c 100644
--- a/var/spack/repos/builtin/packages/r-ergm/package.py
+++ b/var/spack/repos/builtin/packages/r-ergm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,22 @@ from spack import *
class RErgm(RPackage):
- """An integrated set of tools to analyze and simulate networks based
- on exponential-family random graph models (ERGM). "ergm" is a
- part of the "statnet" suite of packages for network analysis."""
+ """Fit, Simulate and Diagnose Exponential-Family Models for Networks
- homepage = "http://statnet.org"
+ An integrated set of tools to analyze and simulate networks based on
+ exponential-family random graph models (ERGM). "ergm" is a part of the
+ "statnet" suite of packages for network analysis."""
+
+ homepage = "https://statnet.org"
url = "https://cloud.r-project.org/src/contrib/ergm_3.7.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ergm"
+ version('3.11.0', sha256='4e5506b44badc2343be3657acbf2bca51b47d7c187ff499d5a5e70a9811fe9f2')
version('3.10.4', sha256='885f0b1a23c5a2c1947962350cfab66683dfdfd1db173c115e90396d00831f22')
version('3.10.1', sha256='a2ac249ff07ba55b3359242f20389a892543b4fff5956d74143d2d41fa6d4beb')
version('3.7.1', sha256='91dd011953b93ecb2b84bb3ababe7bddae25d9d86e69337156effd1da84b54c3')
+ depends_on('r-network@1.15:', type=('build', 'run'))
depends_on('r-robustbase@0.93-5:', type=('build', 'run'))
depends_on('r-coda@0.19-2:', type=('build', 'run'))
depends_on('r-trust@0.1.7:', type=('build', 'run'))
@@ -26,11 +30,12 @@ class RErgm(RPackage):
depends_on('r-lpsolve@5.6.13:', type=('build', 'run'))
depends_on('r-mass@7.3-51.4:', type=('build', 'run'))
depends_on('r-statnet-common@4.3.0:', type=('build', 'run'))
- depends_on('r-network@1.15:', type=('build', 'run'))
+ depends_on('r-statnet-common@4.4.0:', when='@3.11.0:', type=('build', 'run'))
+ depends_on('r-rle', when='@3.11.0:', type=('build', 'run'))
depends_on('r-purrr@0.3.2:', when='@3.10.0:', type=('build', 'run'))
depends_on('r-rlang@0.3.4:', when='@3.10.0:', type=('build', 'run'))
depends_on('r-tibble@2.1.1:', when='@3.10.0:', type=('build', 'run'))
- depends_on('r-dplyr@0.8.0.1:', when='@3.10.0:', type=('build', 'run'))
+ depends_on('r-dplyr@0.8.0.1:', when='@3.10.0:3.10.4', type=('build', 'run'))
# The CRAN page list OpenMPI as a dependency but this is not a dependency
# for using the package. If one wishes to use MPI, simply load an MPI
# package, along with r-dosnow and r-rmpi when using r-ergm, and set the
diff --git a/var/spack/repos/builtin/packages/r-estimability/package.py b/var/spack/repos/builtin/packages/r-estimability/package.py
new file mode 100644
index 0000000000..7ec7a71578
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-estimability/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 REstimability(RPackage):
+ """Tools for Assessing Estimability of Linear Predictions
+
+ Provides tools for determining estimability of linear functions
+ of regression coefficients, and 'epredict' methods that handle
+ non-estimable cases correctly. Estimability theory is discussed in
+ many linear-models textbooks including Chapter 3 of Monahan, JF (2008),
+ "A Primer on Linear Models", Chapman and Hall (ISBN 978-1-4200-6201-4).
+ """
+
+ homepage = "https://github.com/rvlenth/estimability"
+ cran = "estimability"
+
+ version('1.3', sha256='a33179c5fbd6a1a623d90cb6f1743148f92c09429fac466867f3ea70946a2e32')
diff --git a/var/spack/repos/builtin/packages/r-europepmc/package.py b/var/spack/repos/builtin/packages/r-europepmc/package.py
index 27480f7787..fcf63a69e1 100644
--- a/var/spack/repos/builtin/packages/r-europepmc/package.py
+++ b/var/spack/repos/builtin/packages/r-europepmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,36 @@ from spack import *
class REuropepmc(RPackage):
- """europepmc: R Interface to the Europe PubMed Central RESTful Web
- Service"""
+ """R Interface to the Europe PubMed Central RESTful Web Service
- homepage = "http://github.com/ropensci/europepmc/"
+ An R Client for the Europe PubMed Central RESTful Web Service (see
+ <https://europepmc.org/RestfulWebService> for more information). It gives
+ access to both metadata on life science literature and open access full
+ texts. Europe PMC indexes all PubMed content and other literature sources
+ including Agricola, a bibliographic database of citations to the
+ agricultural literature, or Biological Patents. In addition to
+ bibliographic metadata, the client allows users to fetch citations and
+ reference lists. Links between life-science literature and other EBI
+ databases, including ENA, PDB or ChEMBL are also accessible. No
+ registration or API key is required. See the vignettes for usage
+ examples."""
+
+ homepage = "https://github.com/ropensci/europepmc/"
url = "https://cloud.r-project.org/src/contrib/europepmc_0.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/europepmc"
+ version('0.4', sha256='d55f62963d0ee84830654bbc78f4ad8285e376b04be137cbeaf8ad2a98b7969c')
version('0.3', sha256='5044a253d223e2bb8502063cd03c0fe4db856467e497d650da7ccd8f75d0f8d9')
- depends_on('r@3.00:', type=('build', 'run'))
- depends_on('r-dplyr', type=('build', 'run'))
+ depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r-httr', type=('build', 'run'))
depends_on('r-jsonlite', type=('build', 'run'))
depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-dplyr', type=('build', 'run'))
depends_on('r-progress', type=('build', 'run'))
- depends_on('r-purrr', type=('build', 'run'))
depends_on('r-urltools', type=('build', 'run'))
+ depends_on('r-purrr', type=('build', 'run'))
depends_on('r-xml2', type=('build', 'run'))
+ depends_on('r-tibble', when='@0.4:', type=('build', 'run'))
+ depends_on('r-tidyr', when='@0.4:', type=('build', 'run'))
+ depends_on('r-rlang', when='@0.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-evaluate/package.py b/var/spack/repos/builtin/packages/r-evaluate/package.py
index d946976bf1..05ec1a4727 100644
--- a/var/spack/repos/builtin/packages/r-evaluate/package.py
+++ b/var/spack/repos/builtin/packages/r-evaluate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-evd/package.py b/var/spack/repos/builtin/packages/r-evd/package.py
index c30bac399c..0d0d5fa4e5 100644
--- a/var/spack/repos/builtin/packages/r-evd/package.py
+++ b/var/spack/repos/builtin/packages/r-evd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-exactextractr/package.py b/var/spack/repos/builtin/packages/r-exactextractr/package.py
index 8374c5dcea..2adb6e73bc 100644
--- a/var/spack/repos/builtin/packages/r-exactextractr/package.py
+++ b/var/spack/repos/builtin/packages/r-exactextractr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,20 +7,21 @@ from spack import *
class RExactextractr(RPackage):
- """Provides a replacement for the 'extract' function from the 'raster'
- package that is suitable for extracting raster values using 'sf'
- polygons.
- """
+ """Fast Extraction from Raster Datasets using Polygons
+
+ Provides a replacement for the 'extract' function from the 'raster' package
+ that is suitable for extracting raster values using 'sf' polygons."""
homepage = "https://cloud.r-project.org/package=exactextractr"
url = "https://cloud.r-project.org/src/contrib/exactextractr_0.3.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/exactextractr"
+ version('0.5.1', sha256='47ddfb4b9e42e86957e03b1c745d657978d7c4bed12ed3aa053e1bc89f20616d')
version('0.3.0', sha256='c7fb38b38b9dc8b3ca5b8f1f84f4ba3256efd331f2b4636b496d42689ffc3fb0')
version('0.2.1', sha256='d0b998c77c3fd9265a600a0e08e9bf32a2490a06c19df0d0c0dea4b5c9ab5773')
- depends_on('r@3.4:', type=('build', 'run'))
+ depends_on('r@3.4.0:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.12:', type=('build', 'run'))
depends_on('r-raster', type=('build', 'run'))
depends_on('r-sf', type=('build', 'run'))
- depends_on('r-rcpp@0.12.12:', type=('build', 'run'))
- depends_on('geos@3.5:', type=('build', 'run', 'link'))
+ depends_on('geos@3.5.0:', type=('build', 'run', 'link'))
diff --git a/var/spack/repos/builtin/packages/r-exomecopy/package.py b/var/spack/repos/builtin/packages/r-exomecopy/package.py
index dbdcba29cd..10b5b51b7d 100644
--- a/var/spack/repos/builtin/packages/r-exomecopy/package.py
+++ b/var/spack/repos/builtin/packages/r-exomecopy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,18 @@ from spack import *
class RExomecopy(RPackage):
- """Detection of copy number variants (CNV) from exome sequencing samples,
+ """Copy number variant detection from exome sequencing read depth
+
+ Detection of copy number variants (CNV) from exome sequencing samples,
including unpaired samples. The package implements a hidden Markov model
which uses positional covariates, such as background read depth and
GC-content, to simultaneously normalize and segment the samples into
regions of constant copy count."""
- homepage = "http://www.bioconductor.org/packages/release/bioc/html/exomeCopy.html"
+ homepage = "https://www.bioconductor.org/packages/release/bioc/html/exomeCopy.html"
git = "https://git.bioconductor.org/packages/exomeCopy"
+ version('1.36.0', commit='cbe3134acbbc9b7d5426ae2f142dc64cadb3fc26')
version('1.32.0', commit='c9a884427d91b6d62ddc16a939bd808e389d3ea6')
depends_on('r-iranges@2.5.27:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-exomedepth/package.py b/var/spack/repos/builtin/packages/r-exomedepth/package.py
index 972c92c0b4..69da92775b 100644
--- a/var/spack/repos/builtin/packages/r-exomedepth/package.py
+++ b/var/spack/repos/builtin/packages/r-exomedepth/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-experimenthub/package.py b/var/spack/repos/builtin/packages/r-experimenthub/package.py
new file mode 100644
index 0000000000..c3b76f2435
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-experimenthub/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 RExperimenthub(RPackage):
+ """Client to access ExperimentHub resources:
+
+ This package provides a client for the Bioconductor ExperimentHub web
+ resource. ExperimentHub provides a central location where curated data from
+ experiments, publications or training courses can be accessed. Each
+ resource has associated metadata, tags and date of modification. The client
+ creates and manages a local cache of files retrieved enabling quick and
+ reproducible access."""
+
+ bioc = "ExperimentHub"
+
+ version('1.16.1', commit='61d51b7ca968d6cc1befe299e0784d9a19ca51f6')
+
+ depends_on('r-biocgenerics@0.15.10:', type=('build', 'run'))
+ depends_on('r-annotationhub@2.19.3:', type=('build', 'run'))
+ depends_on('r-biocfilecache@1.5.1:', type=('build', 'run'))
+ depends_on('r-s4vectors', type=('build', 'run'))
+ depends_on('r-biocmanager', type=('build', 'run'))
+ depends_on('r-curl', type=('build', 'run'))
+ depends_on('r-rappdirs', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-expint/package.py b/var/spack/repos/builtin/packages/r-expint/package.py
index 7fc6486a17..cae67e7a86 100644
--- a/var/spack/repos/builtin/packages/r-expint/package.py
+++ b/var/spack/repos/builtin/packages/r-expint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,21 @@ from spack import *
class RExpint(RPackage):
- """expint: Exponential Integral and Incomplete Gamma Function"""
+ """Exponential Integral and Incomplete Gamma Function
+
+ The exponential integrals E_1(x), E_2(x), E_n(x) and Ei(x), and the
+ incomplete gamma function G(a, x) defined for negative values of its first
+ argument. The package also gives easy access to the underlying C routines
+ through an API; see the package vignette for details. A test package
+ included in sub-directory example_API provides an implementation. C
+ routines derived from the GNU Scientific Library
+ <https://www.gnu.org/software/gsl/>."""
homepage = "https://cloud.r-project.org/package=expint"
url = "https://cloud.r-project.org/src/contrib/expint_0.1-5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/expint"
+ version('0.1-6', sha256='c7d13a8e299a91e94622047fe22b0006137e7bf82e34d10871b631fa58115145')
version('0.1-5', sha256='b03d60938cd6cf615aa3a02b1bf73436785eca89eaff56059ee0807b8244718a')
depends_on('r@3.3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-expm/package.py b/var/spack/repos/builtin/packages/r-expm/package.py
index af64603e2c..66a99ed0c7 100644
--- a/var/spack/repos/builtin/packages/r-expm/package.py
+++ b/var/spack/repos/builtin/packages/r-expm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RExpm(RPackage):
- """Computation of the matrix exponential, logarithm, sqrt, and related
+ """Matrix Exponential, Log, 'etc'
+
+ Computation of the matrix exponential, logarithm, sqrt, and related
quantities."""
- homepage = "http://r-forge.r-project.org/projects/expm"
+ homepage = "https://r-forge.r-project.org/projects/expm"
url = "https://cloud.r-project.org/src/contrib/expm_0.999-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/expm"
+ version('0.999-6', sha256='2c79912fd2e03fcf89c29f09555880934402fcb2359af8b4579d79b4f955addc')
version('0.999-4', sha256='58d06427a08c9442462b00a5531e2575800be13ed450c5a1546261251e536096')
version('0.999-3', sha256='511bac5860cc5b3888bca626cdf23241b6118eabcc82d100935386039e516412')
version('0.999-2', sha256='38f1e5bfa90f794486789695d0d9e49158c7eb9445dc171dd83dec3d8fa130d6')
diff --git a/var/spack/repos/builtin/packages/r-factoextra/package.py b/var/spack/repos/builtin/packages/r-factoextra/package.py
index b5b4caf941..48e4884a14 100644
--- a/var/spack/repos/builtin/packages/r-factoextra/package.py
+++ b/var/spack/repos/builtin/packages/r-factoextra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,22 @@ from spack import *
class RFactoextra(RPackage):
- """factoextra: Extract and Visualize the Results of Multivariate Data
- Analyses"""
+ """Extract and Visualize the Results of Multivariate Data Analyses
+
+ Provides some easy-to-use functions to extract and visualize the output of
+ multivariate data analyses, including 'PCA' (Principal Component Analysis),
+ 'CA' (Correspondence Analysis), 'MCA' (Multiple Correspondence Analysis),
+ 'FAMD' (Factor Analysis of Mixed Data), 'MFA' (Multiple Factor Analysis)
+ and 'HMFA' (Hierarchical Multiple Factor Analysis) functions from different
+ R packages. It contains also functions for simplifying some clustering
+ analysis steps and provides 'ggplot2' - based elegant data
+ visualization."""
homepage = "http://www.sthda.com/english/rpkgs/factoextra"
url = "https://cloud.r-project.org/src/contrib/factoextra_1.0.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/factoextra"
+ version('1.0.7', sha256='624ff01c74933352aca55966f8a052b1ccc878f52c2c307e47f88e0665db94aa')
version('1.0.5', sha256='8177a3f5107883ae248b2cd0afa388a1794741f5155a9455b3883788cf44d5d0')
version('1.0.4', sha256='e4a000a04ef5b9aa0790dc6e5277451c482a19ba10dda9474f6c6982424aeed3')
diff --git a/var/spack/repos/builtin/packages/r-factominer/package.py b/var/spack/repos/builtin/packages/r-factominer/package.py
index dbae32d420..4ec3de8676 100644
--- a/var/spack/repos/builtin/packages/r-factominer/package.py
+++ b/var/spack/repos/builtin/packages/r-factominer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,22 @@ from spack import *
class RFactominer(RPackage):
- """FactoMineR: Multivariate Exploratory Data Analysis and Data Mining"""
+ """Multivariate Exploratory Data Analysis and Data Mining
+
+ Exploratory data analysis methods to summarize, visualize and describe
+ datasets. The main principal component methods are available, those with
+ the largest potential in terms of applications: principal component
+ analysis (PCA) when variables are quantitative, correspondence analysis
+ (CA) and multiple correspondence analysis (MCA) when variables are
+ categorical, Multiple Factor Analysis when variables are structured in
+ groups, etc. and hierarchical cluster analysis. F. Husson, S. Le and J.
+ Pages (2017)."""
homepage = "http://factominer.free.fr"
url = "https://cloud.r-project.org/src/contrib/FactoMineR_1.35.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/FactoMineR"
+ version('2.4', sha256='b9e3adce9a66b4daccc85fa67cb0769d6be230beeb126921b386ccde5db2e851')
version('1.42', sha256='4cd9efb3681767c3bd48ddc3504ebead1493fcbbc0a9f759a00955b16c3481fa')
version('1.41', sha256='a9889d69e298b8a01e8d0a5a54260730e742c95681e367d759829aad9a8740c0')
version('1.40', sha256='68cb778fe7581b55666a5ae4aa7a5e7fa3ecbd133ae8cff1b2371a737b6d95e8')
@@ -22,11 +32,15 @@ class RFactominer(RPackage):
version('1.35', sha256='afe176fe561d1d16c5965ecb2b80ec90a56d0fbcd75c43ec8025a401a5b715a9')
depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@2.4:', type=('build', 'run'))
depends_on('r-car', type=('build', 'run'))
depends_on('r-cluster', type=('build', 'run'))
+ depends_on('r-dt', when='@2.4:', type=('build', 'run'))
depends_on('r-ellipse', type=('build', 'run'))
depends_on('r-flashclust', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-leaps', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
depends_on('r-scatterplot3d', type=('build', 'run'))
+ depends_on('r-ggplot2', when='@2.4:', type=('build', 'run'))
+ depends_on('r-ggrepel', when='@2.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-fansi/package.py b/var/spack/repos/builtin/packages/r-fansi/package.py
index 7e25449302..a6312bb4d1 100644
--- a/var/spack/repos/builtin/packages/r-fansi/package.py
+++ b/var/spack/repos/builtin/packages/r-fansi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,10 @@ class RFansi(RPackage):
for the effects of ANSI text formatting control sequences."""
homepage = "https://cloud.r-project.org/package=fansi"
- url = "https://cloud.r-project.org/src/contrib/fansi_0.4.0.tar.gz"
+ url = "https://cloud.r-project.org/src/contrib/fansi_0.4.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/fansi"
+ version('0.4.1', sha256='3c69eec803a3827e5227f9cf084976eeb738b22c7eb7665bb5faa251bce41e09')
version('0.4.0', sha256='e104e9d01c7ff8a847f6b332ef544c0ef912859f9c6a514fe2e6f3b34fcfc209')
version('0.3.0', sha256='dd6401d5c91ff4c45d752cceddd5379d1ae39a8a1196f236b0bc0ec6d691b88c')
version('0.2.3', sha256='db6dfef8bfe6682d58b654b6a6a1d59cb07225ca41755176b465ab8611fd96c9')
diff --git a/var/spack/repos/builtin/packages/r-farver/package.py b/var/spack/repos/builtin/packages/r-farver/package.py
index db4d14228a..868e2e216b 100644
--- a/var/spack/repos/builtin/packages/r-farver/package.py
+++ b/var/spack/repos/builtin/packages/r-farver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,19 @@ from spack import *
class RFarver(RPackage):
- """farver: High Performance Colour Space Manipulation"""
+ """High Performance Colour Space Manipulation
+
+ The encoding of colour can be handled in many different ways, using
+ different colour spaces. As different colour spaces have different uses,
+ efficient conversion between these representations are important. The
+ 'farver' package provides a set of functions that gives access to very fast
+ colour space conversion and comparisons implemented in C++, and offers
+ speed improvements over the 'convertColor' function in the 'grDevices'
+ package."""
homepage = "https://github.com/thomasp85/farver"
url = "https://cloud.r-project.org/src/contrib/farver_2.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/farver"
- version('2.0.1', sha256='1642ca1519ef80616ab044ae7f6eaf464118356f2a7875e9d0e3df60ca84012b')
+ version('2.0.3', sha256='0e1590df79ec6078f10426411b96216b70568a4eaf3ffd84ca723add0ed8e5cc')
+ version('2.0.1', sha256='71473e21727357084c6aec4bb9bb258a6797a0f676b4b27504a03f16aa2f4e54')
diff --git a/var/spack/repos/builtin/packages/r-fastcluster/package.py b/var/spack/repos/builtin/packages/r-fastcluster/package.py
index 2848a10923..1a11c60cf9 100644
--- a/var/spack/repos/builtin/packages/r-fastcluster/package.py
+++ b/var/spack/repos/builtin/packages/r-fastcluster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-fastdigest/package.py b/var/spack/repos/builtin/packages/r-fastdigest/package.py
new file mode 100644
index 0000000000..35ad430ffb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-fastdigest/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RFastdigest(RPackage):
+ """Fast, Low Memory-Footprint Digests of R Objects
+
+ Provides an R interface to Bob Jenkin's streaming, non-cryptographic
+ 'SpookyHash' hash algorithm for use in digest-based comparisons of R
+ objects. 'fastdigest' plugs directly into R's internal serialization
+ machinery, allowing digests of all R objects the serialize() function
+ supports, including reference-style objects via custom hooks. Speed is
+ high and scales linearly by object size;
+ memory usage is constant and negligible."""
+
+ homepage = "https://cloud.r-project.org/web/packages/fastdigest/index.html"
+ url = "https://cloud.r-project.org/src/contrib/fastdigest_0.6-3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/fastdigest"
+
+ maintainers = ['dorton21']
+
+ version('0.6-3', sha256='62a04aa39f751cf9bb7ff43cadb3c1a8d2270d7f3e8550a2d6ca9e1d8ca09a09')
diff --git a/var/spack/repos/builtin/packages/r-fastica/package.py b/var/spack/repos/builtin/packages/r-fastica/package.py
new file mode 100644
index 0000000000..03e8c56193
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-fastica/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 RFastica(RPackage):
+ """FastICA Algorithms to Perform ICA and Projection Pursuit:
+
+ Implementation of FastICA algorithm to perform Independent Component
+ Analysis (ICA) and Projection Pursuit."""
+
+ cran = "fastICA"
+
+ version('1.2-2', sha256='32223593374102bf54c8fdca7b57231e4f4d0dd0be02d9f3500ad41b1996f1fe')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-fastmap/package.py b/var/spack/repos/builtin/packages/r-fastmap/package.py
new file mode 100644
index 0000000000..52dd7db5b1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-fastmap/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 RFastmap(RPackage):
+ """Fast Implementation of a Key-Value Store
+
+ Fast implementation of a key-value store. Environments are commonly used as
+ key-value stores, but every time a new key is used, it is added to R's
+ global symbol table, causing a small amount of memory leakage. This can be
+ problematic in cases where many different keys are used. Fastmap avoids
+ this memory leak issue by implementing the map using data structures in
+ C++."""
+
+ homepage = "https://r-lib.github.io/fastmap/"
+ url = "https://cloud.r-project.org/src/contrib/fastmap_1.0.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/fastmap"
+
+ version('1.0.1', sha256='4778b05dfebd356f8df980dfeff3b973a72bca14898f870e5c40c1d84db9faec')
diff --git a/var/spack/repos/builtin/packages/r-fastmatch/package.py b/var/spack/repos/builtin/packages/r-fastmatch/package.py
index 5c4c5a4895..2af39a3941 100644
--- a/var/spack/repos/builtin/packages/r-fastmatch/package.py
+++ b/var/spack/repos/builtin/packages/r-fastmatch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class RFastmatch(RPackage):
function on first match against a table, but extremely fast on any
subsequent lookup as it keeps the hash table in memory."""
- homepage = "http://www.rforge.net/fastmatch"
+ homepage = "https://www.rforge.net/fastmatch"
url = "https://cloud.r-project.org/src/contrib/fastmatch_1.1-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/fastmatch"
diff --git a/var/spack/repos/builtin/packages/r-fastmatrix/package.py b/var/spack/repos/builtin/packages/r-fastmatrix/package.py
new file mode 100644
index 0000000000..2a69b92f64
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-fastmatrix/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 RFastmatrix(RPackage):
+ """Fast Computation of some Matrices Useful in Statistics
+
+ Small set of functions to fast computation of some matrices and operations
+ useful in statistics."""
+
+ homepage = "https://faosorios.github.io/fastmatrix/"
+ url = "https://cloud.r-project.org/src/contrib/fastmatrix_0.3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/fastmatrix"
+
+ version('0.3', sha256='d92e789454a129db5f6f5b23e0d2245f3d55ff34b167427af265b9a6331e7c21')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg18/package.py b/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg18/package.py
index 98b09d0353..f2e81cfe40 100644
--- a/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg18/package.py
+++ b/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg18/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,13 @@ from spack import *
class RFdbInfiniummethylationHg18(RPackage):
- """Compiled HumanMethylation27 and HumanMethylation450 annotations"""
+ """Annotation package for Illumina Infinium DNA methylation probes
+
+ Compiled HumanMethylation27 and HumanMethylation450 annotations"""
# This is a bioconductor package but there is no available git repository
- homepage = "http://bioconductor.org/packages/release/data/annotation/html/FDb.InfiniumMethylation.hg18.html"
- url = "http://bioconductor.org/packages/release/data/annotation/src/contrib/FDb.InfiniumMethylation.hg18_2.2.0.tar.gz"
+ homepage = "https://bioconductor.org/packages/release/data/annotation/html/FDb.InfiniumMethylation.hg18.html"
+ url = "https://bioconductor.org/packages/release/data/annotation/src/contrib/FDb.InfiniumMethylation.hg18_2.2.0.tar.gz"
version('2.2.0', sha256='4a9028ac03c11fffbab731ea750bc7f9b0884fc43c6a8dac6eb2c644e4c79f6f')
diff --git a/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg19/package.py b/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg19/package.py
index ae6749434a..0c9d2459b5 100644
--- a/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg19/package.py
+++ b/var/spack/repos/builtin/packages/r-fdb-infiniummethylation-hg19/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RFdbInfiniummethylationHg19(RPackage):
- """Compiled HumanMethylation27 and HumanMethylation450 annotations."""
+ """Annotation package for Illumina Infinium DNA methylation probes
+
+ Compiled HumanMethylation27 and HumanMethylation450 annotations."""
# No available git repository
homepage = "https://bioconductor.org/packages/release/data/annotation/html/FDb.InfiniumMethylation.hg19.html"
diff --git a/var/spack/repos/builtin/packages/r-ff/package.py b/var/spack/repos/builtin/packages/r-ff/package.py
index 72eb021612..92ba43bd00 100644
--- a/var/spack/repos/builtin/packages/r-ff/package.py
+++ b/var/spack/repos/builtin/packages/r-ff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,60 @@ from spack import *
class RFf(RPackage):
- """memory-efficient storage of large data on disk and
- fast access functions."""
+ """Memory-Efficient Storage of Large Data on Disk and Fast Access Functions
- homepage = "http://ff.r-forge.r-project.org/"
+ The ff package provides data structures that are stored on disk but behave
+ (almost) as if they were in RAM by transparently mapping only a section
+ (pagesize) in main memory - the effective virtual memory consumption per
+ ff object. ff supports R's standard atomic data types 'double', 'logical',
+ 'raw' and 'integer' and non-standard atomic types boolean (1 bit), quad (2
+ bit unsigned), nibble (4 bit unsigned), byte (1 byte signed with NAs),
+ ubyte (1 byte unsigned), short (2 byte signed with NAs), ushort (2 byte
+ unsigned), single (4 byte float with NAs). For example 'quad' allows
+ efficient storage of genomic data as an 'A','T','G','C' factor. The
+ unsigned types support 'circular' arithmetic. There is also support for
+ close-to-atomic types 'factor', 'ordered', 'POSIXct', 'Date' and custom
+ close-to-atomic types. ff not only has native C-support for vectors,
+ matrices and arrays with flexible dimorder (major column-order, major
+ row-order and generalizations for arrays). There is also a ffdf class not
+ unlike data.frames and import/export filters for csv files. ff objects
+ store raw data in binary flat files in native encoding, and complement this
+ with metadata stored in R as physical and virtual attributes. ff objects
+ have well-defined hybrid copying semantics, which gives rise to certain
+ performance improvements through virtualization. ff objects can be stored
+ and reopened across R sessions. ff files can be shared by multiple ff R
+ objects (using different data en/de-coding schemes) in the same process
+ or from multiple R processes to exploit parallelism. A wide choice of
+ finalizer options allows to work with 'permanent' files as well as
+ creating/removing 'temporary' ff files completely transparent to the user.
+ On certain OS/Filesystem combinations, creating the ff files works without
+ notable delay thanks to using sparse file allocation. Several access
+ optimization techniques such as Hybrid Index Preprocessing and
+ Virtualization are implemented to achieve good performance even with large
+ datasets, for example virtual matrix transpose without touching a single
+ byte on disk. Further, to reduce disk I/O, 'logicals' and non-standard
+ data types get stored native and compact on binary flat files i.e.
+ logicals take up exactly 2 bits to represent TRUE, FALSE and NA. Beyond
+ basic access functions, the ff package also provides compatibility
+ functions that facilitate writing code for ff and ram objects and support
+ for batch processing on ff objects (e.g. as.ram, as.ff, ffapply). ff
+ interfaces closely with functionality from package 'bit': chunked looping,
+ fast bit operations and coercions between different objects that can store
+ subscript information ('bit', 'bitwhich', ff 'boolean', ri range index, hi
+ hybrid index). This allows to work interactively with selections of large
+ datasets and quickly modify selection criteria. Further high-performance
+ enhancements can be made available upon request.x """
+
+ homepage = "https://ff.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/ff_2.2-13.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ff"
+ version('4.0.4', sha256='22ecf1811263f27c9fd9f7e13e77f97dcbc0b8ae6f59b76dbaed77569c13d2e5')
version('2.2-14', sha256='1c6307847275b1b8ad9e2ffdce3f4df3c9d955dc2e8a45e3fd7bfd2b0926e2f0')
version('2.2-13', sha256='8bfb08afe0651ef3c23aaad49208146d5f929af5af12a25262fe7743fa346ddb')
depends_on('r@2.10.1:', type=('build', 'run'))
depends_on('r-bit@1.1-13:', type=('build', 'run'))
+ depends_on('r-bit@4.0.0:', when='@4.0.4:', type=('build', 'run'))
patch('utk_platform_macros.hpp.patch', when='target=aarch64:')
diff --git a/var/spack/repos/builtin/packages/r-fftwtools/package.py b/var/spack/repos/builtin/packages/r-fftwtools/package.py
index 4f3074e7c4..831037cf1c 100644
--- a/var/spack/repos/builtin/packages/r-fftwtools/package.py
+++ b/var/spack/repos/builtin/packages/r-fftwtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,22 @@ from spack import *
class RFftwtools(RPackage):
- """Provides a wrapper for several 'FFTW' functions. This package provides
- access to the two-dimensional 'FFT', the multivariate 'FFT', and the
- one-dimensional real to complex 'FFT' using the 'FFTW3' library. The
- package includes the functions fftw() and mvfftw() which are designed
- to mimic the functionality of the R functions fft() and mvfft().
- The 'FFT' functions have a parameter that allows them to not return
- the redundant complex conjugate when the input is real data."""
+ """Wrapper for 'FFTW3' Includes: One-Dimensional Univariate,
+ One-Dimensional Multivariate, and Two-Dimensional Transform
+
+ Provides a wrapper for several 'FFTW' functions. This package provides
+ access to the two-dimensional 'FFT', the multivariate 'FFT', and the
+ one-dimensional real to complex 'FFT' using the 'FFTW3' library. The
+ package includes the functions fftw() and mvfftw() which are designed to
+ mimic the functionality of the R functions fft() and mvfft(). The 'FFT'
+ functions have a parameter that allows them to not return the redundant
+ complex conjugate when the input is real data."""
homepage = "https://github.com/krahim/fftwtools"
url = "https://cloud.r-project.org/src/contrib/fftwtools_0.9-8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/fftwtools"
+ version('0.9-9', sha256='a9273b7e495d228d740ab4525467e4bbefe8614bd2d97e7234017f1305f51441')
version('0.9-8', sha256='4641c8cd70938c2a8bde0b6da6cf7f83e96175ef52f1ca42ec3920a1dabf1bdb')
depends_on('r@2.15.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-fgsea/package.py b/var/spack/repos/builtin/packages/r-fgsea/package.py
index 6787e4d33f..80ab4145c8 100644
--- a/var/spack/repos/builtin/packages/r-fgsea/package.py
+++ b/var/spack/repos/builtin/packages/r-fgsea/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RFgsea(RPackage):
- """Fast Gene Set Enrichment Analysis.
+ """Fast Gene Set Enrichment Analysis
The package implements an algorithm for fast gene set enrichment
analysis. Using the fast algorithm allows to make more permutations and
@@ -17,6 +17,7 @@ class RFgsea(RPackage):
homepage = "https://bioconductor.org/packages/fgsea"
git = "https://git.bioconductor.org/packages/fgsea.git"
+ version('1.16.0', commit='9d9df596c7e160afa18e067b7637cfc465494318')
version('1.10.1', commit='fb06a6ebfb4a195e77e37226d100a2148b90c5f3')
version('1.8.0', commit='bb2898aca9fb23e90770671a83fe23f79bb1841b')
version('1.6.0', commit='52b801b7c2dfd8238fa8f2b402fddb4fda60271d')
@@ -30,7 +31,5 @@ class RFgsea(RPackage):
depends_on('r-ggplot2@2.2.0:', type=('build', 'run'))
depends_on('r-gridextra', type=('build', 'run'))
depends_on('r-fastmatch', type=('build', 'run'))
-
depends_on('r-matrix', when='@1.6.0:', type=('build', 'run'))
-
depends_on('r-bh', when='@1.10.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-fields/package.py b/var/spack/repos/builtin/packages/r-fields/package.py
index 9d1aae306a..44dd2fc8ba 100644
--- a/var/spack/repos/builtin/packages/r-fields/package.py
+++ b/var/spack/repos/builtin/packages/r-fields/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,40 @@ from spack import *
class RFields(RPackage):
- """fields: Tools for Spatial Data"""
+ """Tools for Spatial Data
+
+ For curve, surface and function fitting with an emphasis; on splines,
+ spatial data, geostatistics, and spatial statistics. The major methods;
+ include cubic, and thin plate splines, Kriging, and compactly supported;
+ covariance functions for large data sets. The splines and Kriging methods
+ are; supported by functions that can determine the smoothing parameter;
+ (nugget and sill variance) and other covariance function parameters by
+ cross; validation and also by restricted maximum likelihood. For Kriging;
+ there is an easy to use function that also estimates the correlation; scale
+ (range parameter). A major feature is that any covariance function;
+ implemented in R and following a simple format can be used for; spatial
+ prediction. There are also many useful functions for plotting; and working
+ with spatial data as images. This package also contains; an implementation
+ of sparse matrix methods for large spatial data; sets and currently
+ requires the sparse matrix (spam) package. Use; help(fields) to get started
+ and for an overview. The fields source; code is deliberately commented and
+ provides useful explanations of; numerical details as a companion to the
+ manual pages. The commented; source code can be viewed by expanding the
+ source code version; and looking in the R subdirectory. The reference for
+ fields can be generated; by the citation function in R and has DOI
+ <doi:10.5065/D6W957CT>. Development; of this package was supported in part
+ by the National Science Foundation Grant; 1417857, the National Center
+ for Atmospheric Research, and Colorado School of Mines.; See the Fields
+ URL; for a vignette on using this package and some background on spatial
+ statistics."""
homepage = "https://github.com/NCAR/Fields"
url = "https://cloud.r-project.org/src/contrib/fields_9.9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/fields"
+ version('11.6', sha256='8600d1d992c40668cc2ab01b3c17d0e1bd44a001ec7ba9f468bc0e9ef87c59db')
version('9.9', sha256='262f03c630773b580c7162ab2a031c894ca489fd83989fd8a2f67573306e78e1')
depends_on('r@3.0:', type=('build', 'run'))
- depends_on('r-maps', type=('build', 'run'))
depends_on('r-spam', type=('build', 'run'))
+ depends_on('r-maps', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-filehash/package.py b/var/spack/repos/builtin/packages/r-filehash/package.py
index 5a5c60a782..a9926f0a60 100644
--- a/var/spack/repos/builtin/packages/r-filehash/package.py
+++ b/var/spack/repos/builtin/packages/r-filehash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-findpython/package.py b/var/spack/repos/builtin/packages/r-findpython/package.py
index c6e0754c3c..406bd11cbc 100644
--- a/var/spack/repos/builtin/packages/r-findpython/package.py
+++ b/var/spack/repos/builtin/packages/r-findpython/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-fit-models/package.py b/var/spack/repos/builtin/packages/r-fit-models/package.py
index c7809293a6..973b479e12 100644
--- a/var/spack/repos/builtin/packages/r-fit-models/package.py
+++ b/var/spack/repos/builtin/packages/r-fit-models/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,23 @@ from spack import *
class RFitModels(RPackage):
- """Compare Fitted Models"""
+ """Compare Fitted Models
+
+ The fit.models function and its associated methods (coefficients, print,
+ summary, plot, etc.) were originally provided in the robust package to
+ compare robustly and classically fitted model objects. See chapters 2, 3,
+ and 5 in Insightful (2002) 'Robust Library User's Guide'
+ <https://robust.r-forge.r-project.org/Robust.pdf>). The aim of the
+ fit.models package is to separate this fitted model object comparison
+ functionality from the robust package and to extend it to support fitting
+ methods (e.g., classical, robust, Bayesian, regularized, etc.) more
+ generally."""
homepage = "https://cloud.r-project.org/package=fit.models"
url = "https://cloud.r-project.org/src/contrib/fit.models_0.5-14.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/fit.models"
+ version('0.64', sha256='f70806bfa85a05337fa5a665264d640e307584714a07a329fbe96c86b0e864da')
version('0.5-14', sha256='93b9d119e97b36c648a19c891fc5e69f5306eb5b9bac16bf377555057afd4b6e')
version('0.5-13', sha256='7df545fce135159e9abf0a19076628d3ec2999e89f018e142a7a970428823d48')
diff --git a/var/spack/repos/builtin/packages/r-fitdistrplus/package.py b/var/spack/repos/builtin/packages/r-fitdistrplus/package.py
index bef9620500..935c3784af 100644
--- a/var/spack/repos/builtin/packages/r-fitdistrplus/package.py
+++ b/var/spack/repos/builtin/packages/r-fitdistrplus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RFitdistrplus(RPackage):
- """Extends the fitdistr() function (of the MASS package) with several
+ """Help to Fit of a Parametric Distribution to Non-Censored or Censored Data
+
+ Extends the fitdistr() function (of the MASS package) with several
functions to help the fit of a parametric distribution to non-censored or
censored data. Censored data may contain left censored, right censored and
interval censored values, with several lower and upper bounds. In addition
@@ -21,9 +23,10 @@ class RFitdistrplus(RPackage):
url = "https://cloud.r-project.org/src/contrib/fitdistrplus_1.0-14.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/fitdistrplus"
+ version('1.1-3', sha256='776d5456e14398e44b78b3d7db526559bb7a3537e546a29c88aa192141c756de')
version('1.0-14', sha256='85082590f62aa08d99048ea3414c5cc1e5b780d97b3779d2397c6cb435470083')
depends_on('r@3.2.0:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
depends_on('r-survival', type=('build', 'run'))
- depends_on('r-npsurv', type=('build', 'run'))
+ depends_on('r-npsurv', when='@:1.0-14', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-flashclust/package.py b/var/spack/repos/builtin/packages/r-flashclust/package.py
index 091175742e..9952dd0075 100644
--- a/var/spack/repos/builtin/packages/r-flashclust/package.py
+++ b/var/spack/repos/builtin/packages/r-flashclust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-flexclust/package.py b/var/spack/repos/builtin/packages/r-flexclust/package.py
index df2e3bc286..321c940cc5 100644
--- a/var/spack/repos/builtin/packages/r-flexclust/package.py
+++ b/var/spack/repos/builtin/packages/r-flexclust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-flexmix/package.py b/var/spack/repos/builtin/packages/r-flexmix/package.py
index 8cced441c5..c44c6213a3 100644
--- a/var/spack/repos/builtin/packages/r-flexmix/package.py
+++ b/var/spack/repos/builtin/packages/r-flexmix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,19 @@ from spack import *
class RFlexmix(RPackage):
- """flexmix: Flexible Mixture Modeling"""
+ """Flexible Mixture Modeling
+
+ A general framework for finite mixtures of regression models using the EM
+ algorithm is implemented. The E-step and all data handling are provided,
+ while the M-step can be supplied by the user to easily define new models.
+ Existing drivers implement mixtures of standard linear models, generalized
+ linear models and model-based clustering."""
homepage = "https://cloud.r-project.org/package=flexmix"
url = "https://cloud.r-project.org/src/contrib/flexmix_2.3-14.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/flexmix"
+ version('2.3-17', sha256='36019b7833032409ac61720dd625fa5a581a1d8bcba9045b04979c90907b5649')
version('2.3-15', sha256='ba444c0bfe33ab87d440ab590c06b03605710acd75811c1622253171bb123f43')
version('2.3-14', sha256='837c7f175a211b3c484b2c7b81ec9729889a614c5c6e7d70c95a2c1d60ff846a')
diff --git a/var/spack/repos/builtin/packages/r-fnn/package.py b/var/spack/repos/builtin/packages/r-fnn/package.py
index b41b878476..85955c4dd7 100644
--- a/var/spack/repos/builtin/packages/r-fnn/package.py
+++ b/var/spack/repos/builtin/packages/r-fnn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-forcats/package.py b/var/spack/repos/builtin/packages/r-forcats/package.py
index f9d2b3858c..cc3c11e15a 100644
--- a/var/spack/repos/builtin/packages/r-forcats/package.py
+++ b/var/spack/repos/builtin/packages/r-forcats/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,25 @@ from spack import *
class RForcats(RPackage):
- """Helpers for reordering factor levels (including moving specified levels
- to front, ordering by first appearance, reversing, and randomly
- shuffling), and tools for modifying factor levels (including collapsing
- rare levels into other, 'anonymising', and manually 'recoding')."""
+ """Tools for Working with Categorical Variables (Factors)
- homepage = "http://forcats.tidyverse.org/"
+ Helpers for reordering factor levels (including moving specified levels to
+ front, ordering by first appearance, reversing, and randomly shuffling),
+ and tools for modifying factor levels (including collapsing rare levels
+ into other, 'anonymising', and manually 'recoding')."""
+
+ homepage = "https://forcats.tidyverse.org/"
url = "https://cloud.r-project.org/src/contrib/forcats_0.2.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/forcats"
+ version('0.5.0', sha256='8f960e789333ec597ddf2d653a64e330f03b86f465e9b71f6779f227355d90c4')
version('0.4.0', sha256='7c83cb576aa6fe1379d7506dcc332f7560068b2025f9e3ab5cd0a5f28780d2b2')
version('0.3.0', sha256='95814610ec18b8a8830eba63751954387f9d21400d6ab40394ed0ff22c0cb657')
version('0.2.0', sha256='b5bce370422d4c0ec9509249ae645373949bfbe9217cdf50dce2bfbdad9f7cd7')
depends_on('r@3.1:', type=('build', 'run'))
- depends_on('r-tibble', type=('build', 'run'))
- depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r@3.2:', when='@0.5.0:', type=('build', 'run'))
depends_on('r-ellipsis', when='@0.4.0:', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-rlang', when='@0.4.0:', type=('build', 'run'))
+ depends_on('r-tibble', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-foreach/package.py b/var/spack/repos/builtin/packages/r-foreach/package.py
index d87d126173..32eabf22a8 100644
--- a/var/spack/repos/builtin/packages/r-foreach/package.py
+++ b/var/spack/repos/builtin/packages/r-foreach/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RForeach(RPackage):
- """Support for the foreach looping construct. Foreach is an idiom that
+ """Provides Foreach Looping Construct
+
+ Support for the foreach looping construct. Foreach is an idiom that
allows for iterating over elements in a collection, without the use of an
explicit loop counter. This package in particular is intended to be used
for its return value, rather than for its side effects. In that sense, it
@@ -19,6 +21,7 @@ class RForeach(RPackage):
url = "https://cloud.r-project.org/src/contrib/foreach_1.4.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/foreach"
+ version('1.5.1', sha256='fb5ad69e295618c52b2ac7dff84a0771462870a97345374d43b3de2dc31a68e1')
version('1.4.7', sha256='95632c0b1182fc01490718d82fa3b2bce864f2a011ae53282431c7c2a3f5f160')
version('1.4.3', sha256='1ef03f770f726a62e3753f2402eb26b226245958fa99d570d003fc9e47d35881')
diff --git a/var/spack/repos/builtin/packages/r-forecast/package.py b/var/spack/repos/builtin/packages/r-forecast/package.py
index 7b51195eb2..cc307f472e 100644
--- a/var/spack/repos/builtin/packages/r-forecast/package.py
+++ b/var/spack/repos/builtin/packages/r-forecast/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RForecast(RPackage):
- """Methods and tools for displaying and analysing univariate time
+ """Forecasting Functions for Time Series and Linear Models
+
+ Methods and tools for displaying and analysing univariate time
series forecasts including exponential smoothing via state space
models and automatic ARIMA modelling."""
@@ -15,20 +17,21 @@ class RForecast(RPackage):
url = "https://cloud.r-project.org/src/contrib/forecast_8.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/forecast"
+ version('8.13', sha256='490e3a2beb71c238dd26e7afa0b33394b9906dd0dc54712d4808894d5aa1386f')
version('8.8', sha256='d077074d77d3ea00e9215c828b3689a8c841a16af1e6859bb2dfdede081c2c1d')
version('8.6', sha256='4279e4f700e26310bae39419ab4a9b5918a850148667a5e577a4807d53eb4d02')
version('8.2', sha256='eb3fab64ed139d068e7d026cd3880f1b623f4153a832fb71845488fa75e8b812')
depends_on('r@3.0.2:', type=('build', 'run'))
- depends_on('r-magrittr', type=('build', 'run'))
- depends_on('r-ggplot2@2.2.1:', type=('build', 'run'))
depends_on('r-colorspace', type=('build', 'run'))
+ depends_on('r-fracdiff', type=('build', 'run'))
+ depends_on('r-ggplot2@2.2.1:', type=('build', 'run'))
+ depends_on('r-lmtest', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-nnet', type=('build', 'run'))
depends_on('r-rcpp@0.11.0:', type=('build', 'run'))
- depends_on('r-fracdiff', type=('build', 'run'))
+ depends_on('r-timedate', type=('build', 'run'))
depends_on('r-tseries', type=('build', 'run'))
- depends_on('r-lmtest', type=('build', 'run'))
+ depends_on('r-urca', when='@8.6:', type=('build', 'run'))
depends_on('r-zoo', type=('build', 'run'))
- depends_on('r-timedate', type=('build', 'run'))
depends_on('r-rcpparmadillo@0.2.35:', type=('build', 'run'))
- depends_on('r-urca', when='@8.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-foreign/package.py b/var/spack/repos/builtin/packages/r-foreign/package.py
index a7f322cfc0..af628204fc 100644
--- a/var/spack/repos/builtin/packages/r-foreign/package.py
+++ b/var/spack/repos/builtin/packages/r-foreign/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,21 @@ from spack import *
class RForeign(RPackage):
- """Functions for reading and writing data stored by some versions of Epi
- Info, Minitab, S, SAS, SPSS, Stata, Systat and Weka and for reading and
- writing some dBase files."""
+ """Read Data Stored by 'Minitab', 'S', 'SAS', 'SPSS', 'Stata', 'Systat',
+ 'Weka', 'dBase', ...
+
+ Reading and writing data stored by some versions of 'Epi Info', 'Minitab',
+ 'S', 'SAS', 'SPSS', 'Stata', 'Systat', 'Weka', and for reading and writing
+ some 'dBase' files."""
homepage = "https://cloud.r-project.org/package=foreign"
url = "https://cloud.r-project.org/src/contrib/foreign_0.8-66.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/foreign"
+ version('0.8-81', sha256='1ae8f9f18f2a037697fa1a9060417ff255c71764f0145080b2bd23ba8262992c')
version('0.8-72', sha256='439c17c9cd387e180b1bb640efff3ed1696b1016d0f7b3b3b884e89884488c88')
version('0.8-70.2', sha256='ae82fad68159860b8ca75b49538406ef3d2522818e649d7ccc209c18085ef179')
version('0.8-66', sha256='d7401e5fcab9ce6e697d3520dbb8475e229c30341c0004c4fa489c82aa4447a4')
depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r@4.0.0:', when='@0.8-81:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-formatr/package.py b/var/spack/repos/builtin/packages/r-formatr/package.py
index 2286379cfb..0a4ff03258 100644
--- a/var/spack/repos/builtin/packages/r-formatr/package.py
+++ b/var/spack/repos/builtin/packages/r-formatr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-formula/package.py b/var/spack/repos/builtin/packages/r-formula/package.py
index 575a11f0ab..41fa4abc93 100644
--- a/var/spack/repos/builtin/packages/r-formula/package.py
+++ b/var/spack/repos/builtin/packages/r-formula/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,13 +8,17 @@ from spack import *
class RFormula(RPackage):
- """Infrastructure for extended formulas with multiple parts on the right-hand
- side and/or multiple responses on the left-hand side."""
+ """Extended Model Formulas
+
+ Infrastructure for extended formulas with multiple parts on the right-hand
+ side and/or multiple responses on the left-hand side (see
+ <doi:10.18637/jss.v034.i01>)."""
homepage = "https://cloud.r-project.org/package=Formula"
url = "https://cloud.r-project.org/src/contrib/Formula_1.2-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Formula"
+ version('1.2-4', sha256='cb70e373b5ed2fc8450937fb3321d37dfd22dcc6f07cb872a419d51205125caf')
version('1.2-3', sha256='1411349b20bd09611a9fd0ee6d15f780c758ad2b0e490e908facb49433823872')
version('1.2-2', sha256='8def4600fb7457d38db8083733477501b54528974aa216e4adf8871bff4aa429')
version('1.2-1', sha256='5db1ef55119b299c9d291e1c5c08e2d51b696303daf4e7295c38ff5fc428360a')
diff --git a/var/spack/repos/builtin/packages/r-fpc/package.py b/var/spack/repos/builtin/packages/r-fpc/package.py
index adec9cd72b..39faad197b 100644
--- a/var/spack/repos/builtin/packages/r-fpc/package.py
+++ b/var/spack/repos/builtin/packages/r-fpc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,30 @@ from spack import *
class RFpc(RPackage):
- """fpc: Flexible Procedures for Clustering"""
+ """Flexible Procedures for Clustering
- homepage = "http://www.homepages.ucl.ac.uk/~ucakche"
+ Various methods for clustering and cluster validation. Fixed point
+ clustering. Linear regression clustering. Clustering by merging Gaussian
+ mixture components. Symmetric and asymmetric discriminant projections for
+ visualisation of the separation of groupings. Cluster validation
+ statistics for distance based clustering including corrected Rand index.
+ Standardisation of cluster validation statistics by random clusterings and
+ comparison between many clustering methods and numbers of clusters based on
+ this. Cluster-wise cluster stability assessment. Methods for estimation
+ of the number of clusters: Calinski-Harabasz, Tibshirani and Walther's
+ prediction strength, Fang and Wang's bootstrap stability.
+ Gaussian/multinomial mixture fitting for mixed continuous/categorical
+ variables. Variable-wise statistics for cluster interpretation. DBSCAN
+ clustering. Interface functions for many clustering methods implemented in
+ R, including estimating the number of clusters with kmeans, pam and clara.
+ Modality diagnosis for Gaussian mixtures. For an overview see
+ package?fpc."""
+
+ homepage = "https://www.homepages.ucl.ac.uk/~ucakche"
url = "https://cloud.r-project.org/src/contrib/fpc_2.1-10.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/fpc"
+ version('2.2-9', sha256='29b0006e96c8645645d215d3378551bd6525aaf45abde2d9f12933cf6e75fa38')
version('2.2-3', sha256='8100a74e6ff96b1cd65fd22494f2d200e54ea5ea533cfca321fa494914bdc3b7')
version('2.2-2', sha256='b6907019eb161d5c8c814cf02a4663cc8aae6322699932881ce5b02f45ecf8d3')
version('2.1-10', sha256='5d17c5f475c3f24a4809678cbc6186a357276240cf7fcb00d5670b9e68baa096')
@@ -25,7 +43,7 @@ class RFpc(RPackage):
depends_on('r-prabclus', type=('build', 'run'))
depends_on('r-class', type=('build', 'run'))
depends_on('r-diptest', type=('build', 'run'))
- depends_on('r-mvtnorm', when='@:2.2-2', type=('build', 'run'))
depends_on('r-robustbase', type=('build', 'run'))
depends_on('r-kernlab', type=('build', 'run'))
depends_on('r-trimcluster', when='@:2.1-10', type=('build', 'run'))
+ depends_on('r-mvtnorm', when='@:2.2-2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-fpcompare/package.py b/var/spack/repos/builtin/packages/r-fpcompare/package.py
new file mode 100644
index 0000000000..4a42706321
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-fpcompare/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 RFpcompare(RPackage):
+ """Reliable Comparison of Floating Point Numbers
+
+ Comparisons of floating point numbers are problematic due to errors
+ associated with the binary representation of decimal numbers. Despite
+ being aware of these problems, people still use numerical methods
+ that fail to account for these and other rounding errors (this pitfall
+ is the first to be highlighted in Circle 1 of Burns (2012) 'The R
+ Inferno' <https://www.burns-stat.com/pages/Tutor/R_inferno.pdf>). This
+ package provides new relational operators useful for performing
+ floating point number comparisons with a set tolerance."""
+
+ homepage = "https://github.com/PredictiveEcology/fpCompare"
+ url = "https://cloud.r-project.org/src/contrib/fpCompare_0.2.3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/fpCompare"
+
+ maintainers = ['dorton21']
+
+ version('0.2.3', sha256='f89be3568544a3a44e4f01b5050ed03705805308ec1aa4add9a5e1b5b328dbdf')
+
+ depends_on('r@3.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-fracdiff/package.py b/var/spack/repos/builtin/packages/r-fracdiff/package.py
index 8353598e0e..25c8a161fb 100644
--- a/var/spack/repos/builtin/packages/r-fracdiff/package.py
+++ b/var/spack/repos/builtin/packages/r-fracdiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,16 @@ from spack import *
class RFracdiff(RPackage):
- """Maximum likelihood estimation of the parameters of a
- fractionally differenced ARIMA(p,d,q) model (Haslett and
- Raftery, Appl.Statistics, 1989)."""
+ """Fractionally Differenced ARIMA aka ARFIMA(P,d,q) Models
+
+ Maximum likelihood estimation of the parameters of a fractionally
+ differenced ARIMA(p,d,q) model (Haslett and Raftery, Appl.Statistics,
+ 1989); including inference and basic methods. Some alternative algorithms
+ to estimate "H"."""
homepage = "https://cloud.r-project.org/package=fracdiff"
url = "https://cloud.r-project.org/src/contrib/fracdiff_1.4-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/fracdiff"
+ version('1.5-1', sha256='b8103b32a4ca3a59dda1624c07da08ecd144c7a91a747d1f4663e99421950eb6')
version('1.4-2', sha256='983781cedc2b4e3ba9fa020213957d5133ae9cd6710bc61d6225728e2f6e850e')
diff --git a/var/spack/repos/builtin/packages/r-fs/package.py b/var/spack/repos/builtin/packages/r-fs/package.py
index 9f48c24270..8693725cc9 100644
--- a/var/spack/repos/builtin/packages/r-fs/package.py
+++ b/var/spack/repos/builtin/packages/r-fs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,18 @@ from spack import *
class RFs(RPackage):
- """A cross-platform interface to file system operations, built on top of
+ """Cross-Platform File System Operations Based on 'libuv'
+
+ A cross-platform interface to file system operations, built on top of
the 'libuv' C library."""
- homepage = "http://fs.r-lib.org/"
+ homepage = "https://ggplot2.tidyverse.org/"
url = "https://cloud.r-project.org/src/contrib/fs_1.3.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/fs"
+ version('1.5.0', sha256='36df1653571de3c628a4f769c4627f6ac53d0f9e4106d9d476afb22ae9603897')
version('1.3.1', sha256='d6934dca8f835d8173e3fb9fd4d5e2740c8c04348dd2bcc57df1b711facb46bc')
depends_on('r@3.1:', type=('build', 'run'))
- depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-rcpp', when='@:1.3.1', type=('build', 'run'))
depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-futile-logger/package.py b/var/spack/repos/builtin/packages/r-futile-logger/package.py
index 0925af275f..fda161da16 100644
--- a/var/spack/repos/builtin/packages/r-futile-logger/package.py
+++ b/var/spack/repos/builtin/packages/r-futile-logger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-futile-options/package.py b/var/spack/repos/builtin/packages/r-futile-options/package.py
index feca56c4ae..2108bd0acc 100644
--- a/var/spack/repos/builtin/packages/r-futile-options/package.py
+++ b/var/spack/repos/builtin/packages/r-futile-options/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-future-apply/package.py b/var/spack/repos/builtin/packages/r-future-apply/package.py
index 025d406ff5..6a436a1514 100644
--- a/var/spack/repos/builtin/packages/r-future-apply/package.py
+++ b/var/spack/repos/builtin/packages/r-future-apply/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RFutureApply(RPackage):
- """Implementations of apply(), by(), eapply(), lapply(), Map(), mapply(),
+ """Apply Function to Elements in Parallel using Futures
+
+ Implementations of apply(), by(), eapply(), lapply(), Map(), mapply(),
replicate(), sapply(), tapply(), and vapply() that can be resolved using
any future-supported backend, e.g. parallel on the local machine or
distributed on a compute cluster. These future_*apply() functions come with
@@ -19,8 +21,11 @@ class RFutureApply(RPackage):
url = "https://cloud.r-project.org/src/contrib/future.apply_1.3.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/future.apply"
+ version('1.7.0', sha256='2ffa6adb55f239918ce9679b7eac8dcc4bf2e6bed35c9cbedf4bf90d906345db')
version('1.3.0', sha256='6374eca49bb81e05c013509c8e324cf9c5d023f9f8217b29ce7b7e12025ca371')
depends_on('r@3.2.0:', type=('build', 'run'))
depends_on('r-future@1.13.0:', type=('build', 'run'))
+ depends_on('r-future@1.17.0:', when='@1.7.0:', type=('build', 'run'))
depends_on('r-globals@0.12.4:', type=('build', 'run'))
+ depends_on('r-globals@0.12.5:', when='@1.7.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-future/package.py b/var/spack/repos/builtin/packages/r-future/package.py
index a8214cd9ea..d7a943e8f4 100644
--- a/var/spack/repos/builtin/packages/r-future/package.py
+++ b/var/spack/repos/builtin/packages/r-future/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RFuture(RPackage):
- """The purpose of this package is to provide a lightweight and unified
+ """Unified Parallel and Distributed Processing in R for Everyone
+
+ The purpose of this package is to provide a lightweight and unified
Future API for sequential and parallel processing of R expression via
futures. The simplest way to evaluate an expression in parallel is to use
'x %<-% { expression }' with 'plan(multiprocess)'. This package implements
@@ -26,8 +28,12 @@ class RFuture(RPackage):
url = "https://cloud.r-project.org/src/contrib/future_1.14.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/future"
+ version('1.21.0', sha256='909e6602068eba543a6d2e464b911123cc29efdb600a7000eff0e5624ff0d12d')
version('1.14.0', sha256='0a535010d97a01b21aaf9d863603e44359335e273019c1e1980bbb5b2917dbcb')
depends_on('r-digest', type=('build', 'run'))
depends_on('r-globals@0.12.4:', type=('build', 'run'))
+ depends_on('r-globals@0.13.1:', when='@1.21.0:', type=('build', 'run'))
depends_on('r-listenv@0.7.0:', type=('build', 'run'))
+ depends_on('r-listenv@0.8.0:', when='@1.21.0:', type=('build', 'run'))
+ depends_on('r-parallelly@1.21.0:', when='@1.21.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gamlss-data/package.py b/var/spack/repos/builtin/packages/r-gamlss-data/package.py
index 2cfe4008f5..f12d359a00 100644
--- a/var/spack/repos/builtin/packages/r-gamlss-data/package.py
+++ b/var/spack/repos/builtin/packages/r-gamlss-data/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gamlss-dist/package.py b/var/spack/repos/builtin/packages/r-gamlss-dist/package.py
index 49a2e5fc56..ad5fbbd4ce 100644
--- a/var/spack/repos/builtin/packages/r-gamlss-dist/package.py
+++ b/var/spack/repos/builtin/packages/r-gamlss-dist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,23 @@ from spack import *
class RGamlssDist(RPackage):
- """gamlss.dist: Distributions for Generalized Additive Models for
- Location Scale and Shape"""
+ """dist: Distributions for Generalized Additive Models for Location Scale
+ and Shape
+
+ A set of distributions which can be used for modelling the response
+ variables in Generalized Additive Models for Location Scale and Shape,
+ Rigby and Stasinopoulos (2005), <doi:10.1111/j.1467-9876.2005.00510.x>. The
+ distributions can be continuous, discrete or mixed distributions. Extra
+ distributions can be created, by transforming, any continuous distribution
+ defined on the real line, to a distribution defined on ranges 0 to
+ infinity or 0 to 1, by using a ''log'' or a ''logit' transformation
+ respectively."""
homepage = "https://cloud.r-project.org/package=gamlss.dist"
url = "https://cloud.r-project.org/src/contrib/gamlss.dist_5.1-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gamlss.dist/"
+ version('5.1-7', sha256='9871c38c893a8df7874c533351858dfe4e7587c71021dbbf88c0c76ff3c0ef5b')
version('5.1-4', sha256='343c6ca0fd8a1c1dfdf9ffc65c95d4dae0c6c80b3e60fccba003e5171f3d287e')
version('5.1-3', sha256='87fd643c82579519b67c66c1d87383fa1e203e8b09f607649ee7bce142bda404')
version('5.1-1', sha256='44f999ff74ee516757eb39c8308c48aa850523aad2f38e622268313a13dda0b1')
diff --git a/var/spack/repos/builtin/packages/r-gamlss/package.py b/var/spack/repos/builtin/packages/r-gamlss/package.py
index fbec727878..7b9291c98b 100644
--- a/var/spack/repos/builtin/packages/r-gamlss/package.py
+++ b/var/spack/repos/builtin/packages/r-gamlss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,20 @@ from spack import *
class RGamlss(RPackage):
- """gamlss: Generalised Additive Models for Location Scale and Shape"""
+ """Generalised Additive Models for Location Scale and Shape
+
+ Functions for fitting the Generalized Additive Models for Location Scale
+ and Shape introduced by Rigby and Stasinopoulos (2005),
+ <doi:10.1111/j.1467-9876.2005.00510.x>. The models use a distributional
+ regression approach where all the parameters of the conditional
+ distribution of the response variable are modelled using explanatory
+ variables."""
homepage = "https://cloud.r-project.org/package=gamlss"
url = "https://cloud.r-project.org/src/contrib/gamlss_5.1-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gamlss/"
+ version('5.2-0', sha256='d3927547109064cbe7b0f955144f53204b5dc86c6b2dbc8f0551a74140ab02e1')
version('5.1-4', sha256='e2fc36fe6ca3a69d69cdafd9533a4ff35090fdfb01df126f6a49156f4aa3376c')
version('5.1-3', sha256='d37d121bc2acdbacc20cea04a1ed4489a575079e2a7b17b4a9823ee283857317')
version('5.1-2', sha256='0d404e74768a8f98c6a5e9a48bd2cf4280125831a5dcd8c7f7b57922f57e016b')
@@ -20,6 +28,6 @@ class RGamlss(RPackage):
depends_on('r@3.3.0:', type=('build', 'run'))
depends_on('r-gamlss-data@5.0-0:', type=('build', 'run'))
depends_on('r-gamlss-dist@4.3.1:', type=('build', 'run'))
+ depends_on('r-nlme', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
depends_on('r-survival', type=('build', 'run'))
- depends_on('r-nlme', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gamm4/package.py b/var/spack/repos/builtin/packages/r-gamm4/package.py
new file mode 100644
index 0000000000..6212ee8e3b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gamm4/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RGamm4(RPackage):
+ """Generalized Additive Mixed Models using 'mgcv' and 'lme4':
+
+ Estimate generalized additive mixed models via a version of function gamm()
+ from 'mgcv', using 'lme4' for estimation."""
+
+ cran = "gamm4"
+
+ version('0.2-6', sha256='57c5b66582b2adc32f6a3bb6a259f5b95198e283a96d966a6007e8e48b380c89')
+
+ depends_on('r@2.9.0:', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-lme4@1.0:', type=('build', 'run'))
+ depends_on('r-mgcv@1.7-23:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gbm/package.py b/var/spack/repos/builtin/packages/r-gbm/package.py
index 079e4aed67..01e0ba8db6 100644
--- a/var/spack/repos/builtin/packages/r-gbm/package.py
+++ b/var/spack/repos/builtin/packages/r-gbm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,25 @@ from spack import *
class RGbm(RPackage):
- """Generalized Boosted Regression Models."""
+ """Generalized Boosted Regression Models
+
+ An implementation of extensions to Freund and Schapire's AdaBoost
+ algorithm and Friedman's gradient boosting machine. Includes regression
+ methods for least squares, absolute loss, t-distribution loss, quantile
+ regression, logistic, multinomial logistic, Poisson, Cox proportional
+ hazards partial likelihood, AdaBoost exponential loss, Huberized hinge
+ loss, and Learning to Rank measures (LambdaMart). Originally developed by
+ Greg Ridgeway."""
homepage = "https://cloud.r-project.org/package=gbm"
url = "https://cloud.r-project.org/src/contrib/gbm_2.1.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gbm"
+ version('2.1.8', sha256='7d5de3b980b8f23275e86ac9bed48a497c9aa53c58e407dfd676309f38272ec1')
version('2.1.5', sha256='06fbde10639dfa886554379b40a7402d1f1236a9152eca517e97738895a4466f')
version('2.1.3', sha256='eaf24be931d762f1ccca4f90e15997719d01005f152160a3d20d858a0bbed92b')
depends_on('r@2.9.0:', type=('build', 'run'))
- depends_on('r-gridextra', when='@2.1.5:', type=('build', 'run'))
- depends_on('r-survival', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
+ depends_on('r-survival', type=('build', 'run'))
+ depends_on('r-gridextra', when='@2.1.5', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gbrd/package.py b/var/spack/repos/builtin/packages/r-gbrd/package.py
index 5f6b9c55c1..af3416760f 100644
--- a/var/spack/repos/builtin/packages/r-gbrd/package.py
+++ b/var/spack/repos/builtin/packages/r-gbrd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gcrma/package.py b/var/spack/repos/builtin/packages/r-gcrma/package.py
index f37c63dc68..2ef16bbdd4 100644
--- a/var/spack/repos/builtin/packages/r-gcrma/package.py
+++ b/var/spack/repos/builtin/packages/r-gcrma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,14 @@ from spack import *
class RGcrma(RPackage):
- """Background Adjustment Using Sequence Information."""
+ """Background Adjustment Using Sequence Information
+
+ Background adjustment using sequence information."""
homepage = "https://bioconductor.org/packages/gcrma"
git = "https://git.bioconductor.org/packages/gcrma.git"
+ version('2.62.0', commit='b91bdf5bf4e875defedb4d4e3e1e75867773287a')
version('2.56.0', commit='1f37bbfb4d3ed542b1e90704ab0fa8914d5e0224')
version('2.54.0', commit='9515fdbbc766a2a3b2ec61cf530c57bbded77ccc')
version('2.52.0', commit='d6e90b05432d2a8b0583d3fed001811ecdf49d7d')
@@ -24,6 +27,5 @@ class RGcrma(RPackage):
depends_on('r-affyio@1.13.3:', type=('build', 'run'))
depends_on('r-xvector', type=('build', 'run'))
depends_on('r-biostrings@2.11.32:', type=('build', 'run'))
- depends_on('r-biocinstaller', type=('build', 'run'))
-
depends_on('r-biocmanager', when='@2.54.0:', type=('build', 'run'))
+ depends_on('r-biocinstaller', when='@:2.52.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gdalutils/package.py b/var/spack/repos/builtin/packages/r-gdalutils/package.py
index 7488b2813d..884ca695b5 100644
--- a/var/spack/repos/builtin/packages/r-gdalutils/package.py
+++ b/var/spack/repos/builtin/packages/r-gdalutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,13 @@ from spack import *
class RGdalutils(RPackage):
- """gdalUtils: Wrappers for the Geospatial Data Abstraction Library"""
+ """Wrappers for the Geospatial Data Abstraction Library (GDAL) Utilities"""
homepage = "https://cloud.r-project.org/package=gdalUtils"
url = "https://cloud.r-project.org/src/contrib/gdalUtils_2.0.1.14.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gdalUtils"
+ version('2.0.3.2', sha256='4c6faabee2db8a87b7ea0f8e67e9fce3c5db7f4be353d7d86ea559507cbb2a4f')
version('2.0.1.14', sha256='890a502b2eb5f1b23655fab94caad5d32adca05b93f5db1d96d9dcde3f0e7737')
depends_on('r@2.14.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gdata/package.py b/var/spack/repos/builtin/packages/r-gdata/package.py
index 5750daf212..1ac8da437d 100644
--- a/var/spack/repos/builtin/packages/r-gdata/package.py
+++ b/var/spack/repos/builtin/packages/r-gdata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gdsfmt/package.py b/var/spack/repos/builtin/packages/r-gdsfmt/package.py
index 3bf613dda2..c4cd3e9ae4 100644
--- a/var/spack/repos/builtin/packages/r-gdsfmt/package.py
+++ b/var/spack/repos/builtin/packages/r-gdsfmt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGdsfmt(RPackage):
- """R Interface to CoreArray Genomic Data Structure (GDS) Files.
+ """R Interface to CoreArray Genomic Data Structure (GDS) Files
This package provides a high-level R interface to CoreArray Genomic Data
Structure (GDS) data files, which are portable across platforms with
@@ -25,6 +25,7 @@ class RGdsfmt(RPackage):
homepage = "https://bioconductor.org/packages/gdsfmt"
git = "https://git.bioconductor.org/packages/gdsfmt.git"
+ version('1.26.1', commit='bd180b21b1ace120035f0da255cbf6f13088f069')
version('1.20.0', commit='b1fbaba0a5ace3dc45daecc85168651cd85dce00')
version('1.18.1', commit='b911b953e9db7988e93ec2010b0ab1e384d073c9')
version('1.16.0', commit='49b011452585e432b983b68466a230c9b71d8a95')
diff --git a/var/spack/repos/builtin/packages/r-geiger/package.py b/var/spack/repos/builtin/packages/r-geiger/package.py
index fb5aa1b76c..ba32471a54 100644
--- a/var/spack/repos/builtin/packages/r-geiger/package.py
+++ b/var/spack/repos/builtin/packages/r-geiger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,23 @@ from spack import *
class RGeiger(RPackage):
- """Methods for fitting macroevolutionary models to phylogenetic trees."""
+ """Analysis of Evolutionary Diversification
+
+ Methods for fitting macroevolutionary models to phylogenetic trees Pennell
+ (2014) <doi:10.1093/bioinformatics/btu181>."""
homepage = "https://cloud.r-project.org/package=geiger"
url = "https://cloud.r-project.org/src/contrib/geiger_2.0.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/geiger"
+ version('2.0.7', sha256='d200736c4ad7ed4bc55a13e7d0126ddc7fed88e245cd5706d4692aaa437e9596')
version('2.0.6.2', sha256='9153047b608d652821251206d1450bb3f517c8884379f498a695315574ae001d')
version('2.0.6.1', sha256='2a95e20a3a90c096343b014344dd97e699e954da99c151c17fc6c245c77dba0b')
version('2.0.6', sha256='e13b2c526378eaf9356b00bbe21b3c2c956327f8062fed638ccc1f49591c3eff')
depends_on('r@2.15.0:', type=('build', 'run'))
depends_on('r-ape@3.0-6:', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
depends_on('r-mvtnorm', type=('build', 'run'))
depends_on('r-subplex', type=('build', 'run'))
depends_on('r-desolve@1.7:', type=('build', 'run'))
@@ -27,4 +32,4 @@ class RGeiger(RPackage):
depends_on('r-coda', type=('build', 'run'))
depends_on('r-ncbit', type=('build', 'run'))
depends_on('r-colorspace', type=('build', 'run'))
- depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-phytools@0.7.31:', when='@2.0.7:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-genefilter/package.py b/var/spack/repos/builtin/packages/r-genefilter/package.py
index 3be80d3bae..a50b89da99 100644
--- a/var/spack/repos/builtin/packages/r-genefilter/package.py
+++ b/var/spack/repos/builtin/packages/r-genefilter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,20 +7,24 @@ from spack import *
class RGenefilter(RPackage):
- """genefilter: methods for filtering genes from high-throughput
- experiments."""
+ """genefilter: methods for filtering genes from high-throughput experiments
+
+ Some basic functions for filtering genes."""
homepage = "https://bioconductor.org/packages/genefilter"
git = "https://git.bioconductor.org/packages/genefilter.git"
+ version('1.72.1', commit='b01b00a766982ef7d80b90a252085c8c4f085e1b')
+ version('1.72.0', commit='8cb0b2e73531a417d53e5625bcf436265cdbe101')
version('1.66.0', commit='1c4c471ccca873bf92dcf0b50f611eaa64c4f0cf')
version('1.64.0', commit='82e91b7751bae997b9c898c219ea201fd02a8512')
version('1.62.0', commit='eb119894f015c759f93f458af7733bdb770a22ad')
version('1.60.0', commit='c98f695253c330a9380b2b4ffa27f3b7d66773e4')
version('1.58.1', commit='ace2556049677f60882adfe91f8cc96791556fc2')
- depends_on('r-s4vectors@0.9.42:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.31.2:', when='@1.68.0:', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
depends_on('r-annotate', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-survival', type=('build', 'run'))
+ depends_on('r-s4vectors@0.9.42:', when='@:1.66.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-genelendatabase/package.py b/var/spack/repos/builtin/packages/r-genelendatabase/package.py
index 44559a0ff6..b9f00c16cc 100644
--- a/var/spack/repos/builtin/packages/r-genelendatabase/package.py
+++ b/var/spack/repos/builtin/packages/r-genelendatabase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGenelendatabase(RPackage):
- """Lengths of mRNA transcripts for a number of genomes.
+ """Lengths of mRNA transcripts for a number of genomes
Length of mRNA transcripts for a number of genomes and gene ID formats,
largely based on UCSC table browser"""
@@ -15,6 +15,7 @@ class RGenelendatabase(RPackage):
homepage = "https://bioconductor.org/packages/geneLenDataBase"
git = "https://git.bioconductor.org/packages/geneLenDataBase.git"
+ version('1.26.0', commit='2724715ae23a6647d1c0c6e934720aad9377d65e')
version('1.20.0', commit='70a1abed00ee68f7bfa07c42c011f9edae9915e4')
version('1.18.0', commit='77db87e5a4819bf94761fabef0d2ff741a1c5d07')
version('1.16.0', commit='c2a8b2359c6c59388853d6f6d15d71dffb17a198')
diff --git a/var/spack/repos/builtin/packages/r-genemeta/package.py b/var/spack/repos/builtin/packages/r-genemeta/package.py
index b8eb41c46b..2a9f67c3b8 100644
--- a/var/spack/repos/builtin/packages/r-genemeta/package.py
+++ b/var/spack/repos/builtin/packages/r-genemeta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGenemeta(RPackage):
- """MetaAnalysis for High Throughput Experiments.
+ """MetaAnalysis for High Throughput Experiments
A collection of meta-analysis tools for analysing high throughput
experimental data"""
@@ -15,6 +15,7 @@ class RGenemeta(RPackage):
homepage = "https://bioconductor.org/packages/GeneMeta"
git = "https://git.bioconductor.org/packages/GeneMeta.git"
+ version('1.62.0', commit='eb4273ff5867e39592f50b97b454fa5e32b4a9bf')
version('1.56.0', commit='cb2c9e353d34ea9f3db06cb236c7a89674f2682d')
version('1.54.0', commit='932553cd8df82b7df804fccda9bfd4b0f36d79d7')
version('1.52.0', commit='1f21759984a5852c42a19e89ee53ffd72053d49c')
diff --git a/var/spack/repos/builtin/packages/r-geneplotter/package.py b/var/spack/repos/builtin/packages/r-geneplotter/package.py
index 460dc46b0d..d52bce1c6f 100644
--- a/var/spack/repos/builtin/packages/r-geneplotter/package.py
+++ b/var/spack/repos/builtin/packages/r-geneplotter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,14 @@ from spack import *
class RGeneplotter(RPackage):
- """Graphics related functions for Bioconductor."""
+ """Graphics related functions for Bioconductor
+
+ Functions for plotting genomic data."""
homepage = "https://bioconductor.org/packages/geneplotter"
git = "https://git.bioconductor.org/packages/geneplotter.git"
+ version('1.68.0', commit='f1fea7e468fb24fdfa93ef4493600a4d8d183f69')
version('1.62.0', commit='1fbaddde11014b453b131860409f89cd784e8e48')
version('1.60.0', commit='6723a9fc0730e146187e79c2ddab6a68186dc5ad')
version('1.58.0', commit='2b3f44804d61a40cfe7eaedf74ac9f5a054f7fde')
diff --git a/var/spack/repos/builtin/packages/r-generics/package.py b/var/spack/repos/builtin/packages/r-generics/package.py
index 6886d22757..6da6887c8a 100644
--- a/var/spack/repos/builtin/packages/r-generics/package.py
+++ b/var/spack/repos/builtin/packages/r-generics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RGenerics(RPackage):
- """In order to reduce potential package dependencies and conflicts,
+ """Common S3 Generics not Provided by Base R Methods Related to Model Fitting
+
+ In order to reduce potential package dependencies and conflicts,
generics provides a number of commonly used S3 generics."""
homepage = "https://github.com/r-lib/generics"
url = "https://cloud.r-project.org/src/contrib/generics_0.0.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/generics"
+ version('0.1.0', sha256='ab71d1bdbb66c782364c61cede3c1186d6a94c03635f9af70d926e2c1ac88763')
version('0.0.2', sha256='71b3d1b719ce89e71dd396ac8bc6aa5f1cd99bbbf03faff61dfbbee32fec6176')
depends_on('r@3.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-genetics/package.py b/var/spack/repos/builtin/packages/r-genetics/package.py
index 1ef79e4ea0..df820cc1c3 100644
--- a/var/spack/repos/builtin/packages/r-genetics/package.py
+++ b/var/spack/repos/builtin/packages/r-genetics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-genie3/package.py b/var/spack/repos/builtin/packages/r-genie3/package.py
index 14e7abf982..819983efa9 100644
--- a/var/spack/repos/builtin/packages/r-genie3/package.py
+++ b/var/spack/repos/builtin/packages/r-genie3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGenie3(RPackage):
- """GEne Network Inference with Ensemble of trees.
+ """GEne Network Inference with Ensemble of trees
This package implements the GENIE3 algorithm for inferring gene
regulatory networks from expression data."""
@@ -15,6 +15,7 @@ class RGenie3(RPackage):
homepage = "https://bioconductor.org/packages/GENIE3"
git = "https://git.bioconductor.org/packages/GENIE3.git"
+ version('1.12.0', commit='14289cee9bed113ab35ba03bcaac4a30e5784497')
version('1.6.0', commit='d6a49182e098342afe77f01c322dfc7b72450502')
version('1.4.3', commit='ae719c759f23f09d28fcf1acc45b860cd7761f08')
version('1.2.1', commit='1b56fe8184d521d1bb247f000efe9e2b540604c9')
diff --git a/var/spack/repos/builtin/packages/r-genomeinfodb/package.py b/var/spack/repos/builtin/packages/r-genomeinfodb/package.py
index dc4b314142..3b45b55f0b 100644
--- a/var/spack/repos/builtin/packages/r-genomeinfodb/package.py
+++ b/var/spack/repos/builtin/packages/r-genomeinfodb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RGenomeinfodb(RPackage):
"""Utilities for manipulating chromosome names, including modifying them to
- follow a particular naming style.
+ follow a particular naming style
Contains data and functions that define and allow translation between
different chromosome sequence naming conventions (e.g., "chr1" versus
@@ -18,6 +18,7 @@ class RGenomeinfodb(RPackage):
homepage = "https://bioconductor.org/packages/GenomeInfoDb"
git = "https://git.bioconductor.org/packages/GenomeInfoDb.git"
+ version('1.26.2', commit='96dd27a7e3ef476790b1475aab50dbbed7df67a2')
version('1.20.0', commit='ea771e3b429ef17fb912fb37333556c6f77f2265')
version('1.18.2', commit='557b75ea7734749a2650d30f5c5d52c57a6bcc6f')
version('1.16.0', commit='6543dad89bbc2c275010b329eb114b237fd712fa')
@@ -27,9 +28,9 @@ class RGenomeinfodb(RPackage):
depends_on('r@3.1:', type=('build', 'run'))
depends_on('r-biocgenerics@0.13.8:', type=('build', 'run'))
depends_on('r-s4vectors@0.9.25:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.25:', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.25.12:', when='@1.26.2:', type=('build', 'run'))
depends_on('r-iranges@1.99.26:', type=('build', 'run'))
+ depends_on('r-iranges@2.13.12:', when='@1.16.0:', type=('build', 'run'))
depends_on('r-rcurl', type=('build', 'run'))
depends_on('r-genomeinfodbdata', type=('build', 'run'))
-
- depends_on('r-s4vectors@0.17.25:', when='@1.16.0:', type=('build', 'run'))
- depends_on('r-iranges@2.13.12:', when='@1.16.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-genomeinfodbdata/package.py b/var/spack/repos/builtin/packages/r-genomeinfodbdata/package.py
index 93d621e2dc..572c15c9d6 100644
--- a/var/spack/repos/builtin/packages/r-genomeinfodbdata/package.py
+++ b/var/spack/repos/builtin/packages/r-genomeinfodbdata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-genomicalignments/package.py b/var/spack/repos/builtin/packages/r-genomicalignments/package.py
index 99292cd505..fb3a12639c 100644
--- a/var/spack/repos/builtin/packages/r-genomicalignments/package.py
+++ b/var/spack/repos/builtin/packages/r-genomicalignments/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGenomicalignments(RPackage):
- """Representation and manipulation of short genomic alignments.
+ """Representation and manipulation of short genomic alignments
Provides efficient containers for storing and manipulating short genomic
alignments (typically obtained by aligning short reads to a reference
@@ -17,6 +17,7 @@ class RGenomicalignments(RPackage):
homepage = "https://bioconductor.org/packages/GenomicAlignments"
git = "https://git.bioconductor.org/packages/GenomicAlignments.git"
+ version('1.26.0', commit='6c74c74ee53efcd880171126366fee4bd72357bc')
version('1.20.1', commit='9dce402071e4cd945de7ff82ea574c79993625fd')
version('1.18.1', commit='8ac41e5981cf343076044f451a984afb651688ab')
version('1.16.0', commit='db032a459e5cf05a2a5c2059662a541827112974')
@@ -26,25 +27,26 @@ class RGenomicalignments(RPackage):
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-biocgenerics@0.15.3:', type=('build', 'run'))
depends_on('r-s4vectors@0.13.13:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.28:', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.19.11:', when='@1.18.1:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.27.12:', when='@1.26.0:', type=('build', 'run'))
depends_on('r-iranges@2.5.36:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.11.5:', type=('build', 'run'))
- depends_on('r-genomicranges@1.27.19:', type=('build', 'run'))
- depends_on('r-summarizedexperiment@1.5.3:', type=('build', 'run'))
- depends_on('r-biostrings@2.37.1:', type=('build', 'run'))
- depends_on('r-rsamtools@1.21.4:', type=('build', 'run'))
- depends_on('r-biocparallel', type=('build', 'run'))
-
depends_on('r-iranges@2.11.16:', when='@1.14.2:', type=('build', 'run'))
+ depends_on('r-iranges@2.13.25:', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-iranges@2.15.12:', when='@1.18.1:', type=('build', 'run'))
+ depends_on('r-iranges@2.23.9:', when='@1.26.0:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.11.5:', type=('build', 'run'))
depends_on('r-genomeinfodb@1.13.1:', when='@1.14.2:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.27.19:', type=('build', 'run'))
depends_on('r-genomicranges@1.29.14:', when='@1.14.2:', type=('build', 'run'))
-
- depends_on('r-s4vectors@0.17.28:', when='@1.16.0:', type=('build', 'run'))
- depends_on('r-iranges@2.13.25:', when='@1.16.0:', type=('build', 'run'))
depends_on('r-genomicranges@1.31.19:', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.33.4:', when='@1.18.1:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.41.5:', when='@1.26.0:', type=('build', 'run'))
+ depends_on('r-summarizedexperiment@1.5.3:', type=('build', 'run'))
depends_on('r-summarizedexperiment@1.9.13:', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-biostrings@2.37.1:', type=('build', 'run'))
depends_on('r-biostrings@2.47.6:', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-biostrings@2.55.7:', when='@1.26.0:', type=('build', 'run'))
+ depends_on('r-rsamtools@1.21.4:', type=('build', 'run'))
depends_on('r-rsamtools@1.31.2:', when='@1.16.0:', type=('build', 'run'))
-
- depends_on('r-s4vectors@0.19.11:', when='@1.18.1:', type=('build', 'run'))
- depends_on('r-iranges@2.15.12:', when='@1.18.1:', type=('build', 'run'))
- depends_on('r-genomicranges@1.33.4:', when='@1.18.1:', type=('build', 'run'))
+ depends_on('r-biocparallel', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-genomicfeatures/package.py b/var/spack/repos/builtin/packages/r-genomicfeatures/package.py
index b232e467f9..ce4c878c18 100644
--- a/var/spack/repos/builtin/packages/r-genomicfeatures/package.py
+++ b/var/spack/repos/builtin/packages/r-genomicfeatures/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGenomicfeatures(RPackage):
- """Conveniently import and query gene models.
+ """Conveniently import and query gene models
A set of tools and methods for making and manipulating transcript
centric annotations. With these tools the user can easily download the
@@ -21,6 +21,7 @@ class RGenomicfeatures(RPackage):
homepage = "https://bioconductor.org/packages/GenomicFeatures"
git = "https://git.bioconductor.org/packages/GenomicFeatures.git"
+ version('1.42.1', commit='2e82891974138b0e976799d64a8938f0be61284d')
version('1.36.4', commit='28082ec465c91ccaec6881ff348b380edac1b555')
version('1.34.8', commit='c798b3bb111f4de30632303540074ec1875c1387')
version('1.32.3', commit='80807d88048858846de3750cecb9431a0e5e69e1')
@@ -29,29 +30,28 @@ class RGenomicfeatures(RPackage):
depends_on('r-biocgenerics@0.1.0:', type=('build', 'run'))
depends_on('r-s4vectors@0.9.47:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.29:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-iranges@2.9.19:', type=('build', 'run'))
+ depends_on('r-iranges@2.11.16:', when='@1.30.3:', type=('build', 'run'))
+ depends_on('r-iranges@2.13.23:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-genomeinfodb@1.11.4:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.13.1:', when='@1.30.3:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.15.4:', when='@1.32.3:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.25.7:', when='@1.42.1:', type=('build', 'run'))
depends_on('r-genomicranges@1.27.6:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.29.14:', when='@1.30.3:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.31.17:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-annotationdbi@1.33.15:', type=('build', 'run'))
+ depends_on('r-annotationdbi@1.41.4:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-dbi', type=('build', 'run'))
depends_on('r-rsqlite@2.0:', type=('build', 'run'))
depends_on('r-rcurl', type=('build', 'run'))
depends_on('r-xvector', type=('build', 'run'))
+ depends_on('r-xvector@0.19.7:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-biostrings@2.23.3:', type=('build', 'run'))
+ depends_on('r-biostrings@2.47.6:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-rtracklayer@1.29.24:', type=('build', 'run'))
+ depends_on('r-rtracklayer@1.39.7:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-biomart@2.17.1:', type=('build', 'run'))
depends_on('r-biobase@2.15.1:', type=('build', 'run'))
-
- depends_on('r-iranges@2.11.16:', when='@1.30.3:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.13.1:', when='@1.30.3:', type=('build', 'run'))
- depends_on('r-genomicranges@1.29.14:', when='@1.30.3:', type=('build', 'run'))
depends_on('r-rmysql', when='@1.30.3', type=('build', 'run'))
-
- depends_on('r-s4vectors@0.17.29:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-iranges@2.13.23:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.15.4:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-genomicranges@1.31.17:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-annotationdbi@1.41.4:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-xvector@0.19.7:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-biostrings@2.47.6:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-rtracklayer@1.39.7:', when='@1.32.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-genomicranges/package.py b/var/spack/repos/builtin/packages/r-genomicranges/package.py
index 9ca2058064..ad364e78c1 100644
--- a/var/spack/repos/builtin/packages/r-genomicranges/package.py
+++ b/var/spack/repos/builtin/packages/r-genomicranges/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGenomicranges(RPackage):
- """Representation and manipulation of genomic intervals.
+ """Representation and manipulation of genomic intervals
The ability to efficiently represent and manipulate genomic annotations
and alignments is playing a central role when it comes to analyzing
@@ -23,6 +23,7 @@ class RGenomicranges(RPackage):
homepage = "https://bioconductor.org/packages/GenomicRanges"
git = "https://git.bioconductor.org/packages/GenomicRanges.git"
+ version('1.42.0', commit='32baca734b599d60fa13bdbe31c5712e648f538d')
version('1.36.1', commit='418e7e5647dd54d81b804455ddfcbc027fd0164a')
version('1.34.0', commit='ebaad5ca61abb67c2c30c132e07531ba4257bccd')
version('1.32.7', commit='4c56dc836dbfd0d228dc810e8d401811cdbc267c')
@@ -31,21 +32,20 @@ class RGenomicranges(RPackage):
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-biocgenerics@0.21.2:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.25.3:', when='@1.32.7:', type=('build', 'run'))
depends_on('r-s4vectors@0.9.47:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.32:', when='@1.32.7:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.19.11:', when='@1.34.0:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.27.12:', when='@1.42.0:', type=('build', 'run'))
depends_on('r-iranges@2.9.11:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.11.5:', type=('build', 'run'))
- depends_on('r-xvector', type=('build', 'run'))
-
depends_on('r-iranges@2.11.16:', when='@1.30.3:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.13.1:', when='@1.30.3:', type=('build', 'run'))
-
- depends_on('r-biocgenerics@0.25.3:', when='@1.32.7:', type=('build', 'run'))
- depends_on('r-s4vectors@0.17.32:', when='@1.32.7:', type=('build', 'run'))
depends_on('r-iranges@2.14.4:', when='@1.32.7:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.15.2:', when='@1.32.7:', type=('build', 'run'))
- depends_on('r-xvector@0.19.8:', when='@1.32.7:', type=('build', 'run'))
-
- depends_on('r-s4vectors@0.19.11:', when='@1.34.0:', type=('build', 'run'))
depends_on('r-iranges@2.15.12:', when='@1.34.0:', type=('build', 'run'))
-
depends_on('r-iranges@2.17.1:', when='@1.36.1:', type=('build', 'run'))
+ depends_on('r-iranges@2.23.9:', when='@1.42.0:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.11.5:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.13.1:', when='@1.30.3:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.15.2:', when='@1.32.7:', type=('build', 'run'))
+ depends_on('r-xvector', type=('build', 'run'))
+ depends_on('r-xvector@0.19.8:', when='@1.32.7:', type=('build', 'run'))
+ depends_on('r-xvector@0.29.2:', when='@1.42.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gensa/package.py b/var/spack/repos/builtin/packages/r-gensa/package.py
index aa055f07df..7f945455f4 100644
--- a/var/spack/repos/builtin/packages/r-gensa/package.py
+++ b/var/spack/repos/builtin/packages/r-gensa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-geomorph/package.py b/var/spack/repos/builtin/packages/r-geomorph/package.py
index d0be730b65..849cf0fa41 100644
--- a/var/spack/repos/builtin/packages/r-geomorph/package.py
+++ b/var/spack/repos/builtin/packages/r-geomorph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,24 +7,29 @@ from spack import *
class RGeomorph(RPackage):
- """Read, manipulate, and digitize landmark data, generate shape variables
- via Procrustes analysis for points, curves and surfaces, perform shape
- analyses, and provide graphical depictions of shapes and patterns of
- shape variation."""
+ """Geometric Morphometric Analyses of 2D/3D Landmark Data
+
+ Read, manipulate, and digitize landmark data, generate shape variables via
+ Procrustes analysis for points, curves and surfaces, perform shape
+ analyses, and provide graphical depictions of shapes and patterns of shape
+ variation."""
homepage = "https://cloud.r-project.org/package=geomorph"
url = "https://cloud.r-project.org/src/contrib/geomorph_3.0.5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/geomorph"
+ version('3.3.2', sha256='5f1d17cb98c54e40c4bbc650f7ccb5cb26e8d63934f810644facc69e91c1b7b7')
version('3.1.2', sha256='29cf1c484f756cb44808cfdbc20137a6fbc4bd0c5c6f98c6c3f397c5aebda8f1')
version('3.1.1', sha256='8eb222011433100860b308beef6f02ade7c421785f575ab4461ee25e38dfa1bd')
version('3.0.7', sha256='68f8942e1a5bc3f0298c9f5b8f69c4702c8e12ecb2275d740fda4d04d66d38e1')
version('3.0.5', sha256='7a3a587b253770a5e7e70536234dee13e6a073f1fdf1d644ae4f11d2eb95b104')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@3.1.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@3.3.2:', type=('build', 'run'))
+ depends_on('r-rrpp', type=('build', 'run'), when='@3.0.7:')
depends_on('r-rgl', type=('build', 'run'))
- depends_on('r-ape', type=('build', 'run'))
depends_on('r-jpeg', type=('build', 'run'))
+ depends_on('r-ape', type=('build', 'run'))
depends_on('r-geiger', when='@:3.1.1', type=('build', 'run'))
depends_on('r-matrix', when='@:3.1.1', type=('build', 'run'))
- depends_on('r-rrpp', type=('build', 'run'), when='@3.0.7:')
diff --git a/var/spack/repos/builtin/packages/r-geonames/package.py b/var/spack/repos/builtin/packages/r-geonames/package.py
index 23b82a6b44..3b8a0c2585 100644
--- a/var/spack/repos/builtin/packages/r-geonames/package.py
+++ b/var/spack/repos/builtin/packages/r-geonames/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-geoquery/package.py b/var/spack/repos/builtin/packages/r-geoquery/package.py
index 1a89aba6bb..60a02bedcc 100644
--- a/var/spack/repos/builtin/packages/r-geoquery/package.py
+++ b/var/spack/repos/builtin/packages/r-geoquery/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGeoquery(RPackage):
- """Get data from NCBI Gene Expression Omnibus (GEO).
+ """Get data from NCBI Gene Expression Omnibus (GEO)
The NCBI Gene Expression Omnibus (GEO) is a public repository of
microarray data. Given the rich and varied nature of this resource, it
@@ -17,6 +17,7 @@ class RGeoquery(RPackage):
homepage = "https://bioconductor.org/packages/GEOquery"
git = "https://git.bioconductor.org/packages/GEOquery.git"
+ version('2.58.0', commit='6332ca3791ddcfb233b9ad75b5904b3d60f49b93')
version('2.52.0', commit='3059331eb82ad4947c2d1bef86ff9526e70af643')
version('2.50.5', commit='135c17f8fe535acda14f95a37d1be1ff2bd80f97')
version('2.48.0', commit='6a8d1ca195b5c26fb717ae93beb1a8d9b7031c5e')
@@ -24,15 +25,13 @@ class RGeoquery(RPackage):
version('2.42.0', commit='c26adef8d3ddbd6932a3170f2f84f6e4327641fb')
depends_on('r-biobase', type=('build', 'run'))
- depends_on('r-xml', when='@2.42.0', type=('build', 'run'))
- depends_on('r-rcurl', when='@2.42.0', type=('build', 'run'))
depends_on('r-httr', type=('build', 'run'))
-
depends_on('r-readr', when='@2.46.15:', type=('build', 'run'))
+ depends_on('r-readr@1.3.1:', when='@2.50.5:', type=('build', 'run'))
depends_on('r-xml2', when='@2.46.15:', type=('build', 'run'))
depends_on('r-dplyr', when='@2.46.15:', type=('build', 'run'))
depends_on('r-tidyr', when='@2.46.15:', type=('build', 'run'))
depends_on('r-magrittr', when='@2.46.15:', type=('build', 'run'))
depends_on('r-limma', when='@2.46.15:', type=('build', 'run'))
-
- depends_on('r-readr@1.3.1:', when='@2.50.5:', type=('build', 'run'))
+ depends_on('r-xml', when='@2.42.0', type=('build', 'run'))
+ depends_on('r-rcurl', when='@2.42.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-geor/package.py b/var/spack/repos/builtin/packages/r-geor/package.py
index 5f1cface6d..916a061b0c 100644
--- a/var/spack/repos/builtin/packages/r-geor/package.py
+++ b/var/spack/repos/builtin/packages/r-geor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,20 @@ from spack import *
class RGeor(RPackage):
- """Geostatistical analysis including traditional, likelihood-based
- and Bayesian methods."""
+ """Analysis of Geostatistical Data
+
+ Geostatistical analysis including variogram-based, likelihood-based and
+ Bayesian methods. Software companion for Diggle and Ribeiro (2007)
+ <doi:10.1007/978-0-387-48536-2>."""
homepage = "https://cloud.r-project.org/package=geoR"
url = "https://cloud.r-project.org/src/contrib/geoR_1.7-5.2.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/geoR"
+ version('1.8-1', sha256='990647804590b925a50f72897b24bbabd331cebef0be1696a60528b2f79d6fd3')
version('1.7-5.2.1', sha256='3895e49c005a5745738d190ccaad43bb0aa49c74465d4d0b4dd88c5850ed63b9')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
depends_on('r-sp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-geosphere/package.py b/var/spack/repos/builtin/packages/r-geosphere/package.py
index afea256fd6..db03650ad1 100644
--- a/var/spack/repos/builtin/packages/r-geosphere/package.py
+++ b/var/spack/repos/builtin/packages/r-geosphere/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gert/package.py b/var/spack/repos/builtin/packages/r-gert/package.py
new file mode 100644
index 0000000000..ee7c83abbe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gert/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 RGert(RPackage):
+ """Simple Git Client for R
+
+ Simple git client for R based on 'libgit2' with support for SSH and HTTPS
+ remotes. All functions in 'gert' use basic R data types (such as vectors
+ and data-frames) for their arguments and return values. User credentials
+ are shared with command line 'git' through the git-credential store and ssh
+ keys stored on disk or ssh-agent. On Linux, a somewhat recent version of
+ 'libgit2' is required; we provide a 'PPA' for older Ubuntu 'LTS'
+ versions."""
+
+ homepage = "https://docs.ropensci.org/gert/"
+ url = "https://cloud.r-project.org/src/contrib/gert_1.0.2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/gert"
+
+ version('1.0.2', sha256='36687ab98291d50a35752fcb2e734a926a6b845345c18d36e3f48823f68304d3')
+
+ depends_on('r-askpass', type=('build', 'run'))
+ depends_on('r-credentials@1.2.1:', type=('build', 'run'))
+ depends_on('r-openssl@1.4.1:', type=('build', 'run'))
+ depends_on('r-rstudioapi@0.11:', type=('build', 'run'))
+ depends_on('r-zip@2.1.0:', type=('build', 'run'))
+ depends_on('libgit2@0.26:')
diff --git a/var/spack/repos/builtin/packages/r-getopt/package.py b/var/spack/repos/builtin/packages/r-getopt/package.py
index b8d7a9bf46..a1c72d229e 100644
--- a/var/spack/repos/builtin/packages/r-getopt/package.py
+++ b/var/spack/repos/builtin/packages/r-getopt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-getoptlong/package.py b/var/spack/repos/builtin/packages/r-getoptlong/package.py
index d732f50d08..9558f9b725 100644
--- a/var/spack/repos/builtin/packages/r-getoptlong/package.py
+++ b/var/spack/repos/builtin/packages/r-getoptlong/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,25 @@ from spack import *
class RGetoptlong(RPackage):
- """This is yet another command-line argument parser which wraps the
- powerful Perl module Getopt::Long and with some adaptation for easier
- use in R. It also provides a simple way for variable interpolation in
- R."""
+ """Parsing Command-Line Arguments and Simple Variable Interpolation
+
+ This is yet another command-line argument parser which wraps the powerful
+ Perl module Getopt::Long and with some adaptation for easier use in R. It
+ also provides a simple way for variable interpolation in R."""
homepage = "https://cloud.r-project.org/package=GetoptLong"
url = "https://cloud.r-project.org/src/contrib/GetoptLong_0.1.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/GetoptLong"
+ version('1.0.5', sha256='8c237986ed3dfb72d956ad865ef7768644eebf144675ad66140acfd1aca9d701')
version('0.1.7', sha256='b9a98881db407eae9b711c4fa9170168fd5f3be1f8485cd8f28d0a60ace083ba')
version('0.1.6', sha256='f526f006e3ed8507f1f236430ac9e97341c1ee9c207fbb68f936dd4d377b28b5')
depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r@3.3.0:', when='@1.0.5:', type=('build', 'run'))
depends_on('r-rjson', type=('build', 'run'))
depends_on('r-globaloptions@0.1.0:', type=('build', 'run'))
+ depends_on('r-crayon', when='@1.0.5:', type=('build', 'run'))
# The CRAN site lists SystemRequirments as: Perl, Getopt::Long. The
# Getop::Long package will be installed with Perl so just depend on perl.
diff --git a/var/spack/repos/builtin/packages/r-ggally/package.py b/var/spack/repos/builtin/packages/r-ggally/package.py
index 1bcc024793..19b24c68df 100644
--- a/var/spack/repos/builtin/packages/r-ggally/package.py
+++ b/var/spack/repos/builtin/packages/r-ggally/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,26 +7,35 @@ from spack import *
class RGgally(RPackage):
- """The R package 'ggplot2' is a plotting system based on the grammar of
- graphics. 'GGally' extends 'ggplot2' by adding several functions to
- reduce the complexity of combining geometric objects with transformed
- data. Some of these functions include a pairwise plot matrix, a two
- group pairwise plot matrix, a parallel coordinates plot, a survival
- plot, and several functions to plot networks."""
+ """Extension to 'ggplot2'
+
+ The R package 'ggplot2' is a plotting system based on the grammar of
+ graphics. 'GGally' extends 'ggplot2' by adding several functions to reduce
+ the complexity of combining geometric objects with transformed data. Some
+ of these functions include a pairwise plot matrix, a two group pairwise
+ plot matrix, a parallel coordinates plot, a survival plot, and several
+ functions to plot networks."""
homepage = "https://cloud.r-project.org/package=GGally"
url = "https://cloud.r-project.org/src/contrib/GGally_1.3.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/GGally"
+ version('2.1.0', sha256='7ffb86b8a4e79543cf7e6bb1e3684d738ecd8e0ba89e8ef38991898b18dd6c53')
version('1.4.0', sha256='9a47cdf004c41f5e4024327b94227707f4dad3a0ac5556d8f1fba9bf0a6355fe')
version('1.3.2', sha256='f4143f45254fed794be991180aeffe459f6756bfa08acad963707d8e843cfd0a')
depends_on('r@3.1:', type=('build', 'run'))
depends_on('r-ggplot2@2.2.0:', type=('build', 'run'))
+ depends_on('r-ggplot2@3.3.0:', when='@2.1.0:', type=('build', 'run'))
+ depends_on('r-dplyr@1.0.0:', when='@2.1.0:', type=('build', 'run'))
+ depends_on('r-forcats', when='@2.1.0:', type=('build', 'run'))
depends_on('r-gtable@0.2.0:', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@2.1.0:', type=('build', 'run'))
depends_on('r-plyr@1.8.3:', type=('build', 'run'))
depends_on('r-progress', type=('build', 'run'))
depends_on('r-rcolorbrewer', type=('build', 'run'))
depends_on('r-reshape@0.8.5:', type=('build', 'run'))
depends_on('r-rlang', when='@1.4.0:', type=('build', 'run'))
+ depends_on('r-scales@1.1.0:', when='@2.1.0:', type=('build', 'run'))
+ depends_on('r-tidyr', when='@2.1.0:', type=('build', 'run'))
depends_on('openssl', when='@1.4.0:')
diff --git a/var/spack/repos/builtin/packages/r-ggbeeswarm/package.py b/var/spack/repos/builtin/packages/r-ggbeeswarm/package.py
index 22d8e8bd5e..4c88a61a25 100644
--- a/var/spack/repos/builtin/packages/r-ggbeeswarm/package.py
+++ b/var/spack/repos/builtin/packages/r-ggbeeswarm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ggbio/package.py b/var/spack/repos/builtin/packages/r-ggbio/package.py
index 2e52e4edf4..f285243cf6 100644
--- a/var/spack/repos/builtin/packages/r-ggbio/package.py
+++ b/var/spack/repos/builtin/packages/r-ggbio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGgbio(RPackage):
- """Visualization tools for genomic data.
+ """Visualization tools for genomic data
The ggbio package extends and specializes the grammar of graphics for
biological data. The graphics are designed to answer common scientific
@@ -22,6 +22,7 @@ class RGgbio(RPackage):
homepage = "https://bioconductor.org/packages/ggbio"
git = "https://git.bioconductor.org/packages/ggbio.git"
+ version('1.38.0', commit='c39c51993f419cfc2f094e664477f25f5212a242')
version('1.32.0', commit='04bd12fbe0b1c5c6b721a5f927e1352765f9bf88')
version('1.30.0', commit='8b05258b089b06a743352e92058edda06c24cfb7')
version('1.28.5', commit='594521ca556ef7d97cf4882ecfa54d22c2a2faba')
@@ -36,11 +37,15 @@ class RGgbio(RPackage):
depends_on('r-gtable', type=('build', 'run'))
depends_on('r-hmisc', type=('build', 'run'))
depends_on('r-biovizbase@1.23.3:', type=('build', 'run'))
+ depends_on('r-biovizbase@1.28.2:', when='@1.28.5:', type=('build', 'run'))
+ depends_on('r-biovizbase@1.29.2:', when='@1.30.0:', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-s4vectors@0.13.13:', type=('build', 'run'))
depends_on('r-iranges', type=('build', 'run'))
+ depends_on('r-iranges@2.11.16:', when='@1.26.1:', type=('build', 'run'))
depends_on('r-genomeinfodb@1.1.3:', type=('build', 'run'))
depends_on('r-genomicranges@1.21.10:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.29.14:', when='@1.26.1:', type=('build', 'run'))
depends_on('r-summarizedexperiment', type=('build', 'run'))
depends_on('r-biostrings', type=('build', 'run'))
depends_on('r-rsamtools@1.17.28:', type=('build', 'run'))
@@ -49,17 +54,10 @@ class RGgbio(RPackage):
depends_on('r-variantannotation@1.11.4:', type=('build', 'run'))
depends_on('r-rtracklayer@1.25.16:', type=('build', 'run'))
depends_on('r-genomicfeatures@1.17.13:', type=('build', 'run'))
+ depends_on('r-genomicfeatures@1.29.11:', when='@1.26.1:', type=('build', 'run'))
depends_on('r-organismdbi', type=('build', 'run'))
depends_on('r-ggally', type=('build', 'run'))
depends_on('r-ensembldb@1.99.13:', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
depends_on('r-annotationfilter', type=('build', 'run'))
-
- depends_on('r-iranges@2.11.16:', when='@1.26.1:', type=('build', 'run'))
- depends_on('r-genomicranges@1.29.14:', when='@1.26.1:', type=('build', 'run'))
- depends_on('r-genomicfeatures@1.29.11:', when='@1.26.1:', type=('build', 'run'))
-
- depends_on('r-biovizbase@1.28.2:', when='@1.28.5:', type=('build', 'run'))
depends_on('r-rlang', when='@1.28.5:', type=('build', 'run'))
-
- depends_on('r-biovizbase@1.29.2:', when='@1.30.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggdendro/package.py b/var/spack/repos/builtin/packages/r-ggdendro/package.py
index 90b9b787e0..7b7a0dc06a 100644
--- a/var/spack/repos/builtin/packages/r-ggdendro/package.py
+++ b/var/spack/repos/builtin/packages/r-ggdendro/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RGgdendro(RPackage):
- """This is a set of tools for dendrograms and tree plots using
+ """Create Dendrograms and Tree Diagrams Using 'ggplot2'
+
+ This is a set of tools for dendrograms and tree plots using
'ggplot2'. The 'ggplot2' philosophy is to clearly separate data
from the presentation. Unfortunately the plot method for
dendrograms plots directly to a plot device without exposing
@@ -20,7 +22,8 @@ class RGgdendro(RPackage):
url = "https://cloud.r-project.org/src/contrib/ggdendro_0.1-20.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ggdendro"
+ version('0.1.22', sha256='f0a65f3498c1abc3076df0fb56364b63bdf5d212d8931f85bcc6997510916b6a')
version('0.1-20', sha256='125cae904fa5d426cccaf32ebe9c6297e9ef0c6fd3f19f61513834d03a0cf8ff')
- depends_on('r-ggplot2@0.9.2:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-ggplot2@0.9.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggforce/package.py b/var/spack/repos/builtin/packages/r-ggforce/package.py
index d36d2dbead..4aa2e4be79 100644
--- a/var/spack/repos/builtin/packages/r-ggforce/package.py
+++ b/var/spack/repos/builtin/packages/r-ggforce/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,23 +7,30 @@ from spack import *
class RGgforce(RPackage):
- """ggforce: Accelerating 'ggplot2'"""
+ """Accelerating 'ggplot2'
+
+ The aim of 'ggplot2' is to aid in visual data investigations. This focus
+ has led to a lack of facilities for composing specialised plots. 'ggforce'
+ aims to be a collection of mainly new stats and geoms that fills this gap.
+ All additional functionality is aimed to come through the official
+ extension system so using 'ggforce' should be a stable experience."""
homepage = "https://ggforce.data-imaginist.com"
url = "https://cloud.r-project.org/src/contrib/ggforce_0.3.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ggforce"
+ version('0.3.2', sha256='4cce8acb60ce06af44c1c76bbacd7de129eed9b51ed6a85e03a9bf55b0eff4d2')
version('0.3.1', sha256='a05271da9b226c12ae5fe6bc6eddb9ad7bfe19e1737e2bfcd6d7a89631332211')
depends_on('r@3.3.0:', type=('build', 'run'))
depends_on('r-ggplot2@3.0.0:', type=('build', 'run'))
- depends_on('r-gtable', type=('build', 'run'))
- depends_on('r-mass', type=('build', 'run'))
- depends_on('r-polyclip', type=('build', 'run'))
depends_on('r-rcpp@0.12.2:', type=('build', 'run'))
- depends_on('r-rcppeigen', type=('build', 'run'))
- depends_on('r-rlang', type=('build', 'run'))
depends_on('r-scales', type=('build', 'run'))
- depends_on('r-tidyselect', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
depends_on('r-tweenr@0.1.5:', type=('build', 'run'))
+ depends_on('r-gtable', type=('build', 'run'))
+ depends_on('r-rlang', type=('build', 'run'))
+ depends_on('r-polyclip', type=('build', 'run'))
+ depends_on('r-tidyselect', type=('build', 'run'))
depends_on('r-withr', type=('build', 'run'))
+ depends_on('r-rcppeigen', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggjoy/package.py b/var/spack/repos/builtin/packages/r-ggjoy/package.py
index 1d5390f0aa..b522deaa08 100644
--- a/var/spack/repos/builtin/packages/r-ggjoy/package.py
+++ b/var/spack/repos/builtin/packages/r-ggjoy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ggmap/package.py b/var/spack/repos/builtin/packages/r-ggmap/package.py
index fa44828b08..4a7c3edf85 100644
--- a/var/spack/repos/builtin/packages/r-ggmap/package.py
+++ b/var/spack/repos/builtin/packages/r-ggmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ggplot2/package.py b/var/spack/repos/builtin/packages/r-ggplot2/package.py
index 4c44ac0468..ec4dbc4c40 100644
--- a/var/spack/repos/builtin/packages/r-ggplot2/package.py
+++ b/var/spack/repos/builtin/packages/r-ggplot2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,18 @@ from spack import *
class RGgplot2(RPackage):
- """An implementation of the grammar of graphics in R. It combines the
- advantages of both base and lattice graphics: conditioning and shared axes
- are handled automatically, and you can still build up a plot step by step
- from multiple data sources. It also implements a sophisticated
- multidimensional conditioning system and a consistent interface to map data
- to aesthetic attributes. See http://ggplot2.org for more information,
- documentation and examples."""
+ """Create Elegant Data Visualisations Using the Grammar of Graphics
- homepage = "http://ggplot2.org/"
+ A system for 'declaratively' creating graphics, based on "The Grammar of
+ Graphics". You provide the data, tell 'ggplot2' how to map variables to
+ aesthetics, what graphical primitives to use, and it takes care of the
+ details."""
+
+ homepage = "https://ggplot2.tidyverse.org/"
url = "https://cloud.r-project.org/src/contrib/ggplot2_2.2.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ggplot2"
+ version('3.3.3', sha256='45c29e2348dbd195bbde1197a52db7764113e57f463fd3770fb899acc33423cc')
version('3.2.0', sha256='31b6897fb65acb37913ff6e2bdc1b57f652360098ae3aa660abdcf54f84d73b3')
version('3.1.1', sha256='bfde297f3b4732e7f560078f4ce131812a70877e6b5b1d41a772c394939e0c79')
version('2.2.1', sha256='5fbc89fec3160ad14ba90bd545b151c7a2e7baad021c0ab4b950ecd6043a8314')
@@ -27,14 +27,16 @@ class RGgplot2(RPackage):
depends_on('r@3.1:', when='@:3.1.1', type=('build', 'run'))
depends_on('r@3.2:', when='@3.2.0:', type=('build', 'run'))
depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-glue', when='@3.3.3:', type=('build', 'run'))
depends_on('r-gtable@0.1.1:', type=('build', 'run'))
+ depends_on('r-isoband', when='@3.3.3:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
- depends_on('r-plyr@1.7.1:', when='@:3.1.1', type=('build', 'run'))
- depends_on('r-reshape2', type=('build', 'run'))
- depends_on('r-scales@0.5.0:', type=('build', 'run'))
- depends_on('r-tibble', type=('build', 'run'))
- depends_on('r-lazyeval', type=('build', 'run'))
depends_on('r-mgcv', when='@3.2.0:', type=('build', 'run'))
depends_on('r-rlang@0.3.0:', when='@3.0.0:', type=('build', 'run'))
- depends_on('r-viridislite', when='@3.0.0:', type=('build', 'run'))
+ depends_on('r-scales@0.5.0:', type=('build', 'run'))
+ depends_on('r-tibble', type=('build', 'run'))
depends_on('r-withr@2.0.0:', when='@3.0.0:', type=('build', 'run'))
+ depends_on('r-plyr@1.7.1:', when='@:3.1.1', type=('build', 'run'))
+ depends_on('r-reshape2', when='@:3.2.0', type=('build', 'run'))
+ depends_on('r-lazyeval', when='@:3.2.0', type=('build', 'run'))
+ depends_on('r-viridislite', when='@3.0.0:3.2.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggplotify/package.py b/var/spack/repos/builtin/packages/r-ggplotify/package.py
index f1ef249a66..765c293a8b 100644
--- a/var/spack/repos/builtin/packages/r-ggplotify/package.py
+++ b/var/spack/repos/builtin/packages/r-ggplotify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,19 @@ from spack import *
class RGgplotify(RPackage):
- """ggplotify: Convert Plot to 'grob' or 'ggplot' Object"""
+ """Convert Plot to 'grob' or 'ggplot' Object
+
+ Convert plot function call (using expression or formula) to 'grob' or
+ 'ggplot' object that compatible to the 'grid' and 'ggplot2' ecosystem. With
+ this package, we are able to e.g. using 'cowplot' to align plots produced
+ by 'base' graphics, 'ComplexHeatmap', 'eulerr', 'grid', 'lattice',
+ 'magick', 'pheatmap', 'vcd' etc. by converting them to 'ggplot' objects."""
homepage = "https://github.com/GuangchuangYu/ggplotify"
url = "https://cloud.r-project.org/src/contrib/ggplotify_0.0.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ggplotify"
+ version('0.0.5', sha256='035ea6a70023c4819c8a486d0fd94c2765aa4d6df318747e104eeb9829b9d65d')
version('0.0.3', sha256='7e7953a2933aa7127a0bac54375e3e0219a0744cfc3249c3d7b76065f7a51892')
depends_on('r@3.4.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggpubr/package.py b/var/spack/repos/builtin/packages/r-ggpubr/package.py
index a746f292b3..481a70321e 100644
--- a/var/spack/repos/builtin/packages/r-ggpubr/package.py
+++ b/var/spack/repos/builtin/packages/r-ggpubr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,21 @@ from spack import *
class RGgpubr(RPackage):
- """ggpubr: 'ggplot2' Based Publication Ready Plots"""
+ """'ggplot2' Based Publication Ready Plots
+
+ The 'ggplot2' package is excellent and flexible for elegant data
+ visualization in R. However the default generated plots requires some
+ formatting before we can send them for publication. Furthermore, to
+ customize a 'ggplot', the syntax is opaque and this raises the level of
+ difficulty for researchers with no advanced R programming skills. 'ggpubr'
+ provides some easy-to-use functions for creating and customizing 'ggplot2'-
+ based publication ready plots."""
homepage = "http://www.sthda.com/english/rpkgs/ggpubr"
url = "https://cloud.r-project.org/src/contrib/ggpubr_0.1.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ggpubr"
+ version('0.4.0', sha256='abb21ec0b1ae3fa1c58eedca2d59b9b009621b30e3660f1247b3880c5fa50675')
version('0.2.2', sha256='1c93dc6d1f08680dd00a10b6842445700d1fccb11f18599fbdf51e70c6b6b364')
version('0.2.1', sha256='611e650da9bd15d7157fdcdc4e926fee3b88df3aba87410fdb1c8a7294d98d28')
version('0.2', sha256='06c3075d8c452840662f5d041c3d966494b87254a52a858c849b9e1e96647766')
@@ -20,11 +29,10 @@ class RGgpubr(RPackage):
depends_on('r@3.1.0:', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
- depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-ggrepel', type=('build', 'run'))
depends_on('r-ggsci', type=('build', 'run'))
- depends_on('r-plyr', when='@:0.1.2', type=('build', 'run'))
depends_on('r-tidyr', when='@0.2:', type=('build', 'run'))
+ depends_on('r-plyr', when='@:0.1.2', type=('build', 'run'))
depends_on('r-purrr', when='@0.2:', type=('build', 'run'))
depends_on('r-dplyr@0.7.1:', when='@0.2:', type=('build', 'run'))
depends_on('r-cowplot', when='@0.2:', type=('build', 'run'))
@@ -34,3 +42,6 @@ class RGgpubr(RPackage):
depends_on('r-glue', when='@0.2:', type=('build', 'run'))
depends_on('r-polynom', when='@0.2:', type=('build', 'run'))
depends_on('r-rlang', when='@0.2.2:', type=('build', 'run'))
+ depends_on('r-rstatix@0.6.0:', when='@0.4.0:', type=('build', 'run'))
+ depends_on('r-tibble', when='@0.4.0:', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggraph/package.py b/var/spack/repos/builtin/packages/r-ggraph/package.py
index c4cbed3c91..bc158d924b 100644
--- a/var/spack/repos/builtin/packages/r-ggraph/package.py
+++ b/var/spack/repos/builtin/packages/r-ggraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,24 @@ from spack import *
class RGgraph(RPackage):
- """ggraph: An Implementation of Grammar of Graphics for Graphs and
- Networks"""
+ """An Implementation of Grammar of Graphics for Graphs and Networks
+
+ The grammar of graphics as implemented in ggplot2 is a poor fit for graph
+ and network visualizations due to its reliance on tabular data input.
+ ggraph is an extension of the ggplot2 API tailored to graph visualizations
+ and provides the same flexible approach to building up plots layer by
+ layer."""
homepage = "https://github.com/thomasp85/ggraph"
url = "https://cloud.r-project.org/src/contrib/ggraph_2.0.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ggraph"
+ version('2.0.4', sha256='9c6092d9a98b7b116f9c765ba44de7a34ceff2f584e776ef7a2082ad1d717dc8')
version('2.0.0', sha256='4307efe85bfc6a0496797f6b86d6b174ba196538c51b1a6b6af55de0d4e04762')
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-ggplot2@3.0.0:', type=('build', 'run'))
- depends_on('r-rcpp@0.12.2', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.2:', type=('build', 'run'))
depends_on('r-dplyr', type=('build', 'run'))
depends_on('r-ggforce@0.3.1:', type=('build', 'run'))
depends_on('r-igraph@1.0.0:', type=('build', 'run'))
@@ -31,3 +37,4 @@ class RGgraph(RPackage):
depends_on('r-rlang', type=('build', 'run'))
depends_on('r-tidygraph', type=('build', 'run'))
depends_on('r-graphlayouts@0.5.0:', type=('build', 'run'))
+ depends_on('r-withr', when='@2.0.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggrepel/package.py b/var/spack/repos/builtin/packages/r-ggrepel/package.py
index affb69a321..d5b2444feb 100644
--- a/var/spack/repos/builtin/packages/r-ggrepel/package.py
+++ b/var/spack/repos/builtin/packages/r-ggrepel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,17 @@ from spack import *
class RGgrepel(RPackage):
- """ggrepel: Repulsive Text and Label Geoms for 'ggplot2'"""
+ """Repulsive Text and Label Geoms for 'ggplot2'
- homepage = "http://github.com/slowkow/ggrepel"
+ Provides text and label geoms for 'ggplot2' that help to avoid overlapping
+ text labels. Labels repel away from each other and away from the data
+ points."""
+
+ homepage = "https://github.com/slowkow/ggrepel"
url = "https://cloud.r-project.org/src/contrib/ggrepel_0.6.5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ggrepel"
+ version('0.9.0', sha256='4f7ca3da7dc08902487c961c539ef43516263c30abcc4ce303ff3c5580f42fda')
version('0.8.1', sha256='d5d03a77ab6d8c831934bc46e840cc4e3df487272ab591fa72767ad42bcb7283')
version('0.8.0', sha256='6386606e716d326354a29fcb6cd09f9b3d3b5e7c5ba0d5f7ff35416b1a4177d4')
version('0.6.5', sha256='360ae9d199755f9e260fefbd3baba3448fad3f024f20bcd9942a862b8c41a752')
@@ -20,4 +25,6 @@ class RGgrepel(RPackage):
depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r-ggplot2@2.2.0:', type=('build', 'run'))
depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-rlang@0.3.0:', when='@0.9.0:', type=('build', 'run'))
depends_on('r-scales@0.3.0:', type=('build', 'run'))
+ depends_on('r-scales@0.5.0:', when='@0.9.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggridges/package.py b/var/spack/repos/builtin/packages/r-ggridges/package.py
index 22fc773bbe..30824a95a2 100644
--- a/var/spack/repos/builtin/packages/r-ggridges/package.py
+++ b/var/spack/repos/builtin/packages/r-ggridges/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,17 @@ from spack import *
class RGgridges(RPackage):
- """Ridgeline plots provide a convenient way of visualizing changes in
- distributions over time or space."""
+ """Ridgeline Plots in 'ggplot2'
+
+ Ridgeline plots provide a convenient way of visualizing changes in
+ distributions over time or space. This package enables the creation of such
+ plots in 'ggplot2'."""
homepage = "https://cloud.r-project.org/package=ggridges"
url = "https://cloud.r-project.org/src/contrib/ggridges_0.4.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ggridges"
+ version('0.5.3', sha256='f5eafab17f2d4a8a2a83821ad3e96ae7c26b62bbce9de414484c657383c7b42e')
version('0.5.1', sha256='01f87cdcdf2052ed9c078d9352465cdeda920a41e2ca55bc154c1574fc651c36')
version('0.5.0', sha256='124bc84044e56728fa965682f8232fc868f2af7d3eb7276f6b0df53be8d2dbfe')
version('0.4.1', sha256='03d2013df6adf07c9741d4476df96865b878a88359763ac36b98aa86591cca4d')
@@ -21,6 +25,7 @@ class RGgridges(RPackage):
depends_on('r@3.2:', type=('build', 'run'))
depends_on('r-ggplot2@2.2.0:', type=('build', 'run'))
+ depends_on('r-ggplot2@3.0.0:', when='@0.5.3:', type=('build', 'run'))
depends_on('r-plyr@1.8.0:', type=('build', 'run'))
depends_on('r-scales@0.4.1:', type=('build', 'run'))
depends_on('r-withr@2.1.1:', when='@0.5.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggsci/package.py b/var/spack/repos/builtin/packages/r-ggsci/package.py
index f8dc21d11e..e2a83710a1 100644
--- a/var/spack/repos/builtin/packages/r-ggsci/package.py
+++ b/var/spack/repos/builtin/packages/r-ggsci/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ggsignif/package.py b/var/spack/repos/builtin/packages/r-ggsignif/package.py
index 142dd9e1ef..a77fca4454 100644
--- a/var/spack/repos/builtin/packages/r-ggsignif/package.py
+++ b/var/spack/repos/builtin/packages/r-ggsignif/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ggthemes/package.py b/var/spack/repos/builtin/packages/r-ggthemes/package.py
new file mode 100644
index 0000000000..386f86bb30
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-ggthemes/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 RGgthemes(RPackage):
+ """ggthemes: Extra Themes, Scales and Geoms for
+ 'ggplot2'
+
+ Some extra themes, geoms, and scales for 'ggplot2'. Provides 'ggplot2' themes
+ and scales that replicate the look of plots by Edward Tufte, Stephen Few,
+ 'Fivethirtyeight', 'The Economist', 'Stata', 'Excel', and 'The Wall Street
+ Journal', among others. Provides 'geoms' for Tufte's box plot and range
+ frame."""
+
+ homepage = "https://jrnold.github.io/ggthemes/"
+ url = "https://cloud.r-project.org/src/contrib/ggthemes_4.2.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/ggthemes"
+
+ version('4.2.4', sha256='7b35168cf5b68f6f52dd533a1b345ec87e09d1a85ca68e8dc5377cdf95718567')
+ version('4.2.0', sha256='5bb3fe94819fe2cce7865f07a6e6ea5c59d3996f78d1c0836ad406f69efb3367')
+
+ depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r-ggplot2@3.0.0:', type=('build', 'run'))
+ depends_on('r-purrr', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-tibble', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggvis/package.py b/var/spack/repos/builtin/packages/r-ggvis/package.py
index 53f26ba5ed..59027695f4 100644
--- a/var/spack/repos/builtin/packages/r-ggvis/package.py
+++ b/var/spack/repos/builtin/packages/r-ggvis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class RGgvis(RPackage):
- """An implementation of an interactive grammar of graphics, taking the best
+ """Interactive Grammar of Graphics
+
+ An implementation of an interactive grammar of graphics, taking the best
parts of 'ggplot2', combining them with the reactive framework from 'shiny'
and web graphics from 'vega'."""
- homepage = "http://ggvis.rstudio.com/"
+ homepage = "https://ggvis.rstudio.com/"
url = "https://cloud.r-project.org/src/contrib/ggvis_0.4.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ggvis"
+ version('0.4.7', sha256='9e6b067e11d497c796d42156570e2481afb554c5db265f42afbb74d2ae0865e3')
version('0.4.4', sha256='1332ea122b768688c8a407a483be80febc4576de0ec8929077738421b27cafaf')
version('0.4.3', sha256='34d517783016aaa1c4bef8972f4c06df5cd9ca0568035b647e60a8369043ecdc')
version('0.4.2', sha256='2fcc2b6ca4fbdc69fe75a2c58c12cb43096ab418160c98367e5ac0fd19fc591d')
@@ -25,5 +28,7 @@ class RGgvis(RPackage):
depends_on('r-shiny@0.11.1:', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-dplyr@0.4.0:', type=('build', 'run'))
- depends_on('r-lazyeval', type=('build', 'run'))
+ depends_on('r-dplyr@0.5.0:', when='@0.4.7:', type=('build', 'run'))
+ depends_on('r-rlang', when='@0.4.7:', type=('build', 'run'))
depends_on('r-htmltools@0.2.4:', type=('build', 'run'))
+ depends_on('r-lazyeval', when='@:0.4.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gh/package.py b/var/spack/repos/builtin/packages/r-gh/package.py
index d7d6fc6fb2..b3d39918db 100644
--- a/var/spack/repos/builtin/packages/r-gh/package.py
+++ b/var/spack/repos/builtin/packages/r-gh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,22 @@ from spack import *
class RGh(RPackage):
- """Minimal client to access the 'GitHub' 'API'."""
+ """'GitHub' 'API'
+
+ Minimal client to access the 'GitHub' 'API'."""
homepage = "https://github.com/r-lib/gh#readme"
url = "https://cloud.r-project.org/src/contrib/gh_1.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gh"
+ version('1.2.0', sha256='2988440ed2ba4b241c8ffbafbfdad29493574980a9aeba210521dadda91f7eff')
version('1.1.0', sha256='de9faf383c3fe5e87a75391d82cf71b1331b3c80cd00c4203146a303825d89ad')
version('1.0.1', sha256='f3c02b16637ae390c3599265852d94b3de3ef585818b260d00e7812595b391d2')
- depends_on('r-ini', type=('build', 'run'))
- depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-cli', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-cli@2.0.1:', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-gitcreds', when='@1.2.0:', type=('build', 'run'))
depends_on('r-httr', type=('build', 'run'))
depends_on('r-httr@1.2:', when='@1.1.0:', type=('build', 'run'))
- depends_on('r-cli', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-ini', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gistr/package.py b/var/spack/repos/builtin/packages/r-gistr/package.py
index b171fe1399..85850df0fb 100644
--- a/var/spack/repos/builtin/packages/r-gistr/package.py
+++ b/var/spack/repos/builtin/packages/r-gistr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,22 +8,31 @@ from spack import *
class RGistr(RPackage):
- """Work with 'GitHub' 'gists' from 'R'. This package allows the user to
- create new 'gists', update 'gists' with new files, rename files, delete
- files, get and delete 'gists', star and 'un-star' 'gists', fork 'gists',
- open a 'gist' in your default browser, get embed code for a 'gist', list
- 'gist' 'commits', and get rate limit information when 'authenticated'. Some
- requests require authentication and some do not."""
+ """Work with 'GitHub' 'Gists'
+
+ Work with 'GitHub' 'gists' from 'R' (e.g.,
+ <https://en.wikipedia.org/wiki/GitHub#Gist>,
+ <https://docs.github.com/en/github/writing-on-github/creating-gists/>). A
+ 'gist' is simply one or more files with code/text/images/etc. This package
+ allows the user to create new 'gists', update 'gists' with new files,
+ rename files, delete files, get and delete 'gists', star and 'un-star'
+ 'gists', fork 'gists', open a 'gist' in your default browser, get embed
+ code for a 'gist', list 'gist' 'commits', and get rate limit information
+ when 'authenticated'. Some requests require authentication and some do not.
+ 'Gists' website: <https://gist.github.com/>."""
homepage = "https://github.com/ropensci/gistr"
url = "https://cloud.r-project.org/src/contrib/gistr_0.3.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gistr"
+ version('0.9.0', sha256='170ae025151ee688e7d31b9e49112086a8ddf4fef10155e9ee289ad7f28c8929')
version('0.4.2', sha256='43c00c7f565732125f45f6c067724771ba1b337d6dd3a6e301639fe16e11032e')
version('0.4.0', sha256='51771a257379a17552d0c88ada72ca6263954bbe896997f8a66cde3bf0b83ce0')
version('0.3.6', sha256='ab22523b79510ec03be336e1d4600ec8a3a65afe57c5843621a4cf8f966b52e5')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r-jsonlite@1.4:', type=('build', 'run'))
+ depends_on('r-crul', when='@0.9.0:', type=('build', 'run'))
depends_on('r-httr@1.2.0:', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-assertthat', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-git2r/package.py b/var/spack/repos/builtin/packages/r-git2r/package.py
index dff31b8318..9819f7bc99 100644
--- a/var/spack/repos/builtin/packages/r-git2r/package.py
+++ b/var/spack/repos/builtin/packages/r-git2r/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RGit2r(RPackage):
- """Interface to the 'libgit2' library, which is a pure C implementation of
+ """Provides Access to Git Repositories
+
+ Interface to the 'libgit2' library, which is a pure C implementation of
the 'Git' core methods. Provides access to 'Git' repositories to extract
data and running some basic 'Git' commands."""
@@ -15,6 +17,7 @@ class RGit2r(RPackage):
url = "https://cloud.r-project.org/src/contrib/git2r_0.18.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/git2r"
+ version('0.28.0', sha256='ce6d148d21d2c87757e98ef4474b2d09faded9b9b866f046bd26d4ca925e55f2')
version('0.27.1', sha256='099207f180aa45ddcc443cbb22487eafd14e1cd8e5979b3476214253fd773bc0')
version('0.26.1', sha256='13d609286a0af4ef75ba76f2c2f856593603b8014e311b88896243a50b417435')
version('0.26.0', sha256='56671389c3a50591e1dae3be8c3b0112d06d291f897d7fe14db17aea175616cf')
diff --git a/var/spack/repos/builtin/packages/r-gitcreds/package.py b/var/spack/repos/builtin/packages/r-gitcreds/package.py
new file mode 100644
index 0000000000..1760cd89c5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gitcreds/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 RGitcreds(RPackage):
+ """Query 'git' Credentials from 'R'
+
+ Query, set, delete credentials from the 'git' credential store. Manage
+ 'GitHub' tokens and other 'git' credentials. This package is to be used by
+ other packages that need to authenticate to 'GitHub' and/or other 'git'
+ repositories."""
+
+ homepage = "https://github.com/r-lib/gitcreds"
+ url = "https://cloud.r-project.org/src/contrib/gitcreds_0.1.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/gitcreds"
+
+ version('0.1.1', sha256='b14aaf4e910a9d2d6c65c93e645f0b0159c00898e669f917f83c03dfedb1dfea')
+
+ depends_on('git', type='run')
diff --git a/var/spack/repos/builtin/packages/r-glimma/package.py b/var/spack/repos/builtin/packages/r-glimma/package.py
index 302afa62ae..7d59544072 100644
--- a/var/spack/repos/builtin/packages/r-glimma/package.py
+++ b/var/spack/repos/builtin/packages/r-glimma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGlimma(RPackage):
- """Interactive HTML graphics.
+ """Interactive HTML graphics
This package generates interactive visualisations for analysis of RNA-
sequencing data using output from limma, edgeR or DESeq2 packages in an
@@ -18,6 +18,7 @@ class RGlimma(RPackage):
homepage = "https://bioconductor.org/packages/Glimma"
git = "https://git.bioconductor.org/packages/Glimma.git"
+ version('2.0.0', commit='40bebaa79e8c87c5686cff7285def4461c11bca9')
version('1.12.0', commit='d02174239fe0b47983d6947ed42a1a53b24caecb')
version('1.10.1', commit='ffc7abc36190396598fadec5e9c653441e47be72')
version('1.8.2', commit='7696aca2c023f74d244b6c908a6e7ba52bfcb34b')
@@ -25,10 +26,14 @@ class RGlimma(RPackage):
version('1.4.0', commit='c613c5334ed7868f36d5716b97fdb6234fb291f8')
depends_on('r@3.3.0:', type=('build', 'run'))
- depends_on('r-biobase', when='@1.4.0:1.6.0', type=('build', 'run'))
+ depends_on('r@3.4.0:', when='@1.6.0:', type=('build', 'run'))
+ depends_on('r@4.0.0:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-htmlwidgets', when='@2.0.0:', type=('build', 'run'))
depends_on('r-edger', type=('build', 'run'))
+ depends_on('r-deseq2', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-limma', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-summarizedexperiment', when='@2.0.0:', type=('build', 'run'))
depends_on('r-jsonlite', type=('build', 'run'))
- depends_on('r-scater', when='@1.4.0', type=('build', 'run'))
depends_on('r-s4vectors', type=('build', 'run'))
-
- depends_on('r@3.4.0:', when='@1.6.0:', type=('build', 'run'))
+ depends_on('r-biobase', when='@1.4.0:1.6.0', type=('build', 'run'))
+ depends_on('r-scater', when='@1.4.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-glmnet/package.py b/var/spack/repos/builtin/packages/r-glmnet/package.py
index 0df0d76583..c0a33c48a7 100644
--- a/var/spack/repos/builtin/packages/r-glmnet/package.py
+++ b/var/spack/repos/builtin/packages/r-glmnet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RGlmnet(RPackage):
- """Extremely efficient procedures for fitting the entire lasso or
+ """Lasso and Elastic-Net Regularized Generalized Linear Models
+
+ Extremely efficient procedures for fitting the entire lasso or
elastic-net regularization path for linear regression, logistic and
multinomial regression models, Poisson regression and the Cox model. Two
recent additions are the multiple-response Gaussian, and the grouped
@@ -18,9 +20,13 @@ class RGlmnet(RPackage):
url = "https://cloud.r-project.org/src/contrib/glmnet_2.0-13.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/glmnet"
+ version('4.1', sha256='8f0af50919f488789ecf261f6e0907f367d89fca812baa2f814054fb2d0e40cb')
version('2.0-18', sha256='e8dce9d7b8105f9cc18ba981d420de64a53b09abee219660d3612915d554256b')
version('2.0-13', sha256='f3288dcaddb2f7014d42b755bede6563f73c17bc87f8292c2ef7776cb9b9b8fd')
version('2.0-5', sha256='2ca95352c8fbd93aa7800f3d972ee6c1a5fcfeabc6be8c10deee0cb457fd77b1')
+ depends_on('r@3.6.0:', when='@4.1:', type=('build', 'run'))
depends_on('r-matrix@1.0-6:', type=('build', 'run'))
depends_on('r-foreach', type=('build', 'run'))
+ depends_on('r-shape', when='@4.1:', type=('build', 'run'))
+ depends_on('r-survival', when='@4.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-globaloptions/package.py b/var/spack/repos/builtin/packages/r-globaloptions/package.py
index 3f5b8d20e0..5e81ed3e74 100644
--- a/var/spack/repos/builtin/packages/r-globaloptions/package.py
+++ b/var/spack/repos/builtin/packages/r-globaloptions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RGlobaloptions(RPackage):
- """It provides more controls on the option values such as validation and
- filtering on the values, making options invisible or private."""
+ """Generate Functions to Get or Set Global Options
+
+ It provides more controls on the option values such as validation and
+ filtering on the values, making options invisible or private."""
homepage = "https://cloud.r-project.org/package=GlobalOptions"
url = "https://cloud.r-project.org/src/contrib/GlobalOptions_0.0.12.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/GlobalOptions"
+ version('0.1.2', sha256='47890699668cfa9900a829c51f8a32e02a7a7764ad07cfac972aad66f839753e')
version('0.1.0', sha256='567a0a51f6b7b14127302f00e6e4944befd4964c069f96a9e61256e8c3c79ef2')
version('0.0.12', sha256='c09da3f9b1646d0f815056cdbeb5fff7dda29f7dd8742d245f5f6dc7066077a9')
diff --git a/var/spack/repos/builtin/packages/r-globals/package.py b/var/spack/repos/builtin/packages/r-globals/package.py
index 12b2f974cb..70fb9fa942 100644
--- a/var/spack/repos/builtin/packages/r-globals/package.py
+++ b/var/spack/repos/builtin/packages/r-globals/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RGlobals(RPackage):
- """Identifies global ("unknown" or "free") objects in R expressions by code
+ """Identify Global Objects in R Expressions
+
+ Identifies global ("unknown" or "free") objects in R expressions by code
inspection using various strategies, e.g. conservative or liberal. The
objective of this package is to make it as simple as possible to identify
global objects for the purpose of exporting them in distributed compute
@@ -17,6 +19,7 @@ class RGlobals(RPackage):
url = "https://cloud.r-project.org/src/contrib/globals_0.12.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/globals"
+ version('0.14.0', sha256='203dbccb829ca9cc6aedb6f5e79cb126ea31f8dd379dff9111ec66e3628c32f3')
version('0.12.4', sha256='7985356ad75afa1f795f8267a20dee847020c0207252dc075c614cef55d8fe6b')
depends_on('r@3.1.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-globaltest/package.py b/var/spack/repos/builtin/packages/r-globaltest/package.py
new file mode 100644
index 0000000000..3d45b6648e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-globaltest/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RGlobaltest(RPackage):
+ """Testing Groups of Covariates/Features for Association with a Response
+ Variable, with Applications to Gene Set Testing:
+
+ The global test tests groups of covariates (or features) for association
+ with a response variable. This package implements the test with diagnostic
+ plots and multiple testing utilities, along with several functions to
+ facilitate the use of this test for gene set testing of GO and KEGG
+ terms."""
+
+ bioc = "globaltest"
+
+ version('5.44.0', commit='571933d5c779a241740be913ff49ecdd59bcbc45')
+
+ depends_on('r-survival', type=('build', 'run'))
+ depends_on('r-biobase', type=('build', 'run'))
+ depends_on('r-annotationdbi', type=('build', 'run'))
+ depends_on('r-annotate', 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 20371a9740..8d25829f50 100644
--- a/var/spack/repos/builtin/packages/r-glue/package.py
+++ b/var/spack/repos/builtin/packages/r-glue/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,19 @@ from spack import *
class RGlue(RPackage):
- """An implementation of interpreted string literals, inspired by Python's
- Literal String Interpolation <https://www.python.org/dev/peps/pep-0498/>
- and Docstrings <https://www.python.org/dev/peps/pep-0257/> and Julia's
- Triple-Quoted String Literals <https://docs.julialang.org/en/stable/
- manual/strings/#triple-quoted-string-literals>."""
+ """Interpreted String Literals
+
+ An implementation of interpreted string literals, inspired by Python's
+ Literal String Interpolation <https://www.python.org/dev/peps/pep-0498/>
+ and Docstrings <https://www.python.org/dev/peps/pep-0257/> and Julia's
+ Triple-Quoted String Literals <https://docs.julialang.org/en/stable/
+ manual/strings/#triple-quoted-string-literals>."""
homepage = "https://github.com/tidyverse/glue"
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.2', sha256='9f7354132a26e9a876428fa87629b9aaddcd558f9932328e6ac065b95b8ef7ad')
version('1.4.1', sha256='f8b687d35cacb5ee7fcada6e9c26ea20c04d0bdc9d37e919a03abd1137513bc8')
version('1.4.0', sha256='ea6c409f7141754baa090deba96cff270a11b185452cf9e6fb69cb148a9069c1')
version('1.3.1', sha256='4fc1f2899d71a634e1f0adb7942772feb5ac73223891abe30ea9bd91d3633ea8')
@@ -24,3 +27,4 @@ class RGlue(RPackage):
version('1.2.0', sha256='19275b34ee6a1bcad05360b7eb996cebaa1402f189a5dfb084e695d423f2296e')
depends_on('r@3.1:', type=('build', 'run'))
+ depends_on('r@3.2:', when='@1.4.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gmodels/package.py b/var/spack/repos/builtin/packages/r-gmodels/package.py
index c11d4b2e18..6fc0f8fcd9 100644
--- a/var/spack/repos/builtin/packages/r-gmodels/package.py
+++ b/var/spack/repos/builtin/packages/r-gmodels/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class RGmodels(RPackage):
"""Various R programming tools for model fitting."""
- homepage = "http://www.sf.net/projects/r-gregmisc"
+ homepage = "https://www.sf.net/projects/r-gregmisc"
url = "https://cloud.r-project.org/src/contrib/gmodels_2.16.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gmodels"
diff --git a/var/spack/repos/builtin/packages/r-gmp/package.py b/var/spack/repos/builtin/packages/r-gmp/package.py
index 871dea5847..49d9863378 100644
--- a/var/spack/repos/builtin/packages/r-gmp/package.py
+++ b/var/spack/repos/builtin/packages/r-gmp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,21 @@ from spack import *
class RGmp(RPackage):
- """Multiple Precision Arithmetic (big integers and rationals, prime
- number tests, matrix computation), "arithmetic without limitations"
- using the C library GMP (GNU Multiple Precision Arithmetic)."""
+ """Multiple Precision Arithmetic
+
+ Multiple Precision Arithmetic (big integers and rationals, prime number
+ tests, matrix computation), "arithmetic without limitations" using the C
+ library GMP (GNU Multiple Precision Arithmetic)."""
homepage = "http://mulcyber.toulouse.inra.fr/projects/gmp"
url = "https://cloud.r-project.org/src/contrib/gmp_0.5-13.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gmp"
+ version('0.6-2', sha256='6bfcb45b3f1e7da27d8773f911027355cab371d150c3dabf7dbaf8fba85b7f0e')
version('0.5-13.5', sha256='f681ab2ff3d1e379ba8ac44a8abddd08d08170723e885abc0b469b6fa8fe5510')
version('0.5-13.4', sha256='f05605b40fc39fc589e3a4d2f526a591a649faa45eef7f95c096e1bff8775196')
version('0.5-13.1', sha256='2f805374a26742cd43f6b2054130d8670eda1940070aabb9971e9e48226d0976')
depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@0.6-2:', type=('build', 'run'))
depends_on('gmp@4.2.3:')
diff --git a/var/spack/repos/builtin/packages/r-go-db/package.py b/var/spack/repos/builtin/packages/r-go-db/package.py
index 1a91053392..e15bf99802 100644
--- a/var/spack/repos/builtin/packages/r-go-db/package.py
+++ b/var/spack/repos/builtin/packages/r-go-db/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,21 @@ from spack import *
class RGoDb(RPackage):
- """A set of annotation maps describing the entire Gene
+ """A set of annotation maps describing the entire Gene Ontology
+
+ A set of annotation maps describing the entire Gene
Ontology assembled using data from GO."""
homepage = "https://www.bioconductor.org/packages/GO.db/"
- url = "https://www.bioconductor.org/packages/3.5/data/annotation/src/contrib/GO.db_3.4.1.tar.gz"
+ url = "https://www.bioconductor.org/packages/3.5/data/annotation/src/contrib/GO.db_3.4.1.tar.gz"
+
+ version('3.12.1',
+ sha256='e0316959d3d32096f9432c897413dff74fce53e15ead7917a7724467d971dab9',
+ url='https://bioconductor.org/packages/3.12/data/annotation/src/contrib/GO.db_3.12.1.tar.gz')
+ version('3.4.1',
+ sha256='2fc2048e9d26edb98e35e4adc4d18c6df54f44836b5cc4a482d36ed99e058cc1',
+ url='https://bioconductor.org/packages/3.5/data/annotation/src/contrib/GO.db_3.4.1.tar.gz')
- version('3.4.1', sha256='2fc2048e9d26edb98e35e4adc4d18c6df54f44836b5cc4a482d36ed99e058cc1')
- depends_on('r-annotationdbi', type=('build', 'run'))
+ depends_on('r@2.7.0:', type=('build', 'run'))
+ depends_on('r-annotationdbi@1.37.4:', type=('build', 'run'))
+ depends_on('r-annotationdbi@1.51.3:', when='@3.12.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-goftest/package.py b/var/spack/repos/builtin/packages/r-goftest/package.py
index feaa0724b3..535e2b084a 100644
--- a/var/spack/repos/builtin/packages/r-goftest/package.py
+++ b/var/spack/repos/builtin/packages/r-goftest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gofuncr/package.py b/var/spack/repos/builtin/packages/r-gofuncr/package.py
index 22fdb5745f..8df9f00ff0 100644
--- a/var/spack/repos/builtin/packages/r-gofuncr/package.py
+++ b/var/spack/repos/builtin/packages/r-gofuncr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGofuncr(RPackage):
- """Gene ontology enrichment using FUNC.
+ """Gene ontology enrichment using FUNC
GOfuncR performs a gene ontology enrichment analysis based on the
ontology enrichment software FUNC. GO-annotations are obtained from
@@ -29,16 +29,17 @@ class RGofuncr(RPackage):
homepage = "https://bioconductor.org/packages/GOfuncR"
git = "https://git.bioconductor.org/packages/GOfuncR.git"
+ version('1.10.0', commit='51b01a2b9afa03fde2e1628036096cbeafaa2ef4')
version('1.4.0', commit='2f633dc28e3faeddc5346fcdcadf1c29e3fcf709')
version('1.2.0', commit='140a3cea4fe34d32fef9be756f85e337ce3deded')
version('1.0.0', commit='becd4ddde085c5477042adb856e7a4f40dbd648e')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@3.4:', type=('build', 'run'))
depends_on('r-vioplot@0.2:', type=('build', 'run'))
depends_on('r-rcpp@0.11.5:', type=('build', 'run'))
depends_on('r-mapplots@1.5:', type=('build', 'run'))
depends_on('r-gtools@3.5.0:', type=('build', 'run'))
depends_on('r-genomicranges@1.28.4:', type=('build', 'run'))
- depends_on('r-annotationdbi', type=('build', 'run'))
-
depends_on('r-iranges', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-annotationdbi', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-googlevis/package.py b/var/spack/repos/builtin/packages/r-googlevis/package.py
index dc8f3659f6..d8b746c591 100644
--- a/var/spack/repos/builtin/packages/r-googlevis/package.py
+++ b/var/spack/repos/builtin/packages/r-googlevis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RGooglevis(RPackage):
- """R interface to Google Charts API, allowing users to create interactive
+ """R Interface to Google Charts
+
+ R interface to Google Charts API, allowing users to create interactive
charts based on data frames. Charts are displayed locally via the R HTTP
help server. A modern browser with an Internet connection is required and
for some charts a Flash player. The data remains local and is not uploaded
@@ -17,6 +19,7 @@ class RGooglevis(RPackage):
url = "https://cloud.r-project.org/src/contrib/googleVis_0.6.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/googleVis"
+ version('0.6.9', sha256='0739d0a3382a73a824b5ff9a6fe329198dd05c9da5855ac051ed022d7b41b7ea')
version('0.6.4', sha256='7dcaf0e9d5e5598c17e8bd474141708de37eeb2578b09788431b9d871edb7eb8')
version('0.6.3', sha256='17d104c5d4e6ab7b984df229cd51be19681e4726077afec7c61a33f6e4c0b6ef')
version('0.6.0', sha256='862708097fbb5d4e83193777f40979d7848f9841d94d48ee8a74106266acc440')
diff --git a/var/spack/repos/builtin/packages/r-goplot/package.py b/var/spack/repos/builtin/packages/r-goplot/package.py
index d748b99af6..16ad099afe 100644
--- a/var/spack/repos/builtin/packages/r-goplot/package.py
+++ b/var/spack/repos/builtin/packages/r-goplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gosemsim/package.py b/var/spack/repos/builtin/packages/r-gosemsim/package.py
index b7468c9c84..9c5c0c7cee 100644
--- a/var/spack/repos/builtin/packages/r-gosemsim/package.py
+++ b/var/spack/repos/builtin/packages/r-gosemsim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGosemsim(RPackage):
- """GO-terms Semantic Similarity Measures.
+ """GO-terms Semantic Similarity Measures
The semantic comparisons of Gene Ontology (GO) annotations provide
quantitative ways to compute similarities between genes and gene groups,
@@ -20,6 +20,7 @@ class RGosemsim(RPackage):
homepage = "https://bioconductor.org/packages/GOSemSim"
git = "https://git.bioconductor.org/packages/GOSemSim.git"
+ version('2.16.1', commit='92f1d567f3584fe488f434abce87c2e1950081c0')
version('2.10.0', commit='5db1ecbf2f8d870430d6e587609327d05ba3ad7b')
version('2.8.0', commit='c8c985b2a814cc2365c7f05b2509205e1b6b7f58')
version('2.6.2', commit='2ffe78e89276e804306554965fc0799318ec56ed')
@@ -27,8 +28,8 @@ class RGosemsim(RPackage):
version('2.2.0', commit='247434790e6c8cf99e5643f569390362b8c87c52')
depends_on('r@3.3.2:', type=('build', 'run'))
+ depends_on('r@3.4.0:', when='@2.8.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@2.16.1:', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
depends_on('r-go-db', type=('build', 'run'))
depends_on('r-rcpp', type=('build', 'run'))
-
- depends_on('r@3.4.0:', when='@2.8.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-goseq/package.py b/var/spack/repos/builtin/packages/r-goseq/package.py
index 58f1c71711..56139b3caf 100644
--- a/var/spack/repos/builtin/packages/r-goseq/package.py
+++ b/var/spack/repos/builtin/packages/r-goseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGoseq(RPackage):
- """Gene Ontology analyser for RNA-seq and other length biased data.
+ """Gene Ontology analyser for RNA-seq and other length biased data
Detects Gene Ontology and/or other user defined categories which are
over/under represented in RNA-seq data"""
@@ -15,6 +15,7 @@ class RGoseq(RPackage):
homepage = "https://bioconductor.org/packages/goseq"
git = "https://git.bioconductor.org/packages/goseq.git"
+ version('1.42.0', commit='8164b90e7505bbc1035105fdc15219c764ef8b8d')
version('1.36.0', commit='26c9f7de18889afeee1b571ca1c4ab4d2877ab80')
version('1.34.1', commit='bad217b42cc34423698fbcf701d4e3591aac4474')
version('1.32.0', commit='32fcbe647eea17d7d0d7a262610811502c421d36')
diff --git a/var/spack/repos/builtin/packages/r-gostats/package.py b/var/spack/repos/builtin/packages/r-gostats/package.py
index 46185bcc36..e14654376d 100644
--- a/var/spack/repos/builtin/packages/r-gostats/package.py
+++ b/var/spack/repos/builtin/packages/r-gostats/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGostats(RPackage):
- """Tools for manipulating GO and microarrays.
+ """Tools for manipulating GO and microarrays
A set of tools for interacting with GO and microarray data. A variety of
basic manipulation tools for graphs, hypothesis testing and other simple
@@ -16,22 +16,23 @@ class RGostats(RPackage):
homepage = "https://bioconductor.org/packages/GOstats"
git = "https://git.bioconductor.org/packages/GOstats.git"
+ version('2.56.0', commit='8f988c3b4b1ce7e05626aae8956004c7bbdd6f3a')
version('2.50.0', commit='ee13f84341988d537a5485dcdcfb71f69e6e4930')
version('2.48.0', commit='5db7020f4bab725cd729b32bd1d5e819b31f2485')
version('2.46.0', commit='489d7a437488f77c3010f6212f3b81f4e240cd17')
version('2.44.0', commit='fc64ca2aa37c52656d396d6e46611f39d6efd48a')
version('2.42.0', commit='8b29709064a3b66cf1d963b2be0c996fb48c873e')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-biobase@1.15.29:', type=('build', 'run'))
depends_on('r-category@2.3.26:', type=('build', 'run'))
+ depends_on('r-category@2.43.2:', when='@2.44.0:', type=('build', 'run'))
depends_on('r-graph@1.15.15:', when='@2.42.0', type=('build', 'run'))
+ depends_on('r-graph', when='@2.44.0:', type=('build', 'run'))
depends_on('r-annotationdbi@0.0.89:', type=('build', 'run'))
depends_on('r-go-db@1.13.0:', type=('build', 'run'))
depends_on('r-rbgl', type=('build', 'run'))
depends_on('r-annotate@1.13.2:', type=('build', 'run'))
depends_on('r-annotationforge', type=('build', 'run'))
-
- depends_on('r-category@2.43.2:', when='@2.44.0:', type=('build', 'run'))
depends_on('r-rgraphviz', when='@2.44.0:', type=('build', 'run'))
- depends_on('r-graph', when='@2.44.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gower/package.py b/var/spack/repos/builtin/packages/r-gower/package.py
index bee0ec5ba3..eaa7d07dc2 100644
--- a/var/spack/repos/builtin/packages/r-gower/package.py
+++ b/var/spack/repos/builtin/packages/r-gower/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RGower(RPackage):
- """Compute Gower's distance (or similarity) coefficient between records.
+ """Gower's Distance
+
+ Compute Gower's distance (or similarity) coefficient between records.
Compute the top-n matches between records. Core algorithms are executed in
parallel on systems supporting OpenMP."""
@@ -15,4 +17,5 @@ class RGower(RPackage):
url = "https://cloud.r-project.org/src/contrib/gower_0.2.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gower"
+ version('0.2.2', sha256='3f022010199fafe34f6e7431730642a76893e6b4249b84e5a61012cb83483631')
version('0.2.1', sha256='af3fbe91cf818c0841b2c0ec4ddf282c182a588031228c8d88f7291b2cdff100')
diff --git a/var/spack/repos/builtin/packages/r-gparotation/package.py b/var/spack/repos/builtin/packages/r-gparotation/package.py
new file mode 100644
index 0000000000..d4364e0b8c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gparotation/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 RGparotation(RPackage):
+ """Gradient Projection Algorithm Rotation for Factor Analysis. See
+ ?GPArotation.Intro for more details."""
+
+ homepage = "https://cloud.r-project.org/package=GPArotation"
+ url = "https://cloud.r-project.org/src/contrib/GPArotation_2014.11-1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/GPArotation"
+
+ version('2014.11-1', sha256='351bc15fc8dc6c8ea5045fbba22180d1e68314fc34d267545687748e312e5096')
+
+ depends_on('r@2.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gplots/package.py b/var/spack/repos/builtin/packages/r-gplots/package.py
index dd74ebd46b..63cfedcf00 100644
--- a/var/spack/repos/builtin/packages/r-gplots/package.py
+++ b/var/spack/repos/builtin/packages/r-gplots/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,17 +9,34 @@ from spack import *
class RGplots(RPackage):
- """Various R Programming Tools for Plotting Data."""
+ """Various R Programming Tools for Plotting Data
+
+ Various R programming tools for plotting data, including: - calculating and
+ plotting locally smoothed summary function as ('bandplot', 'wapply'), -
+ enhanced versions of standard plots ('barplot2', 'boxplot2', 'heatmap.2',
+ 'smartlegend'), - manipulating colors ('col2hex', 'colorpanel', 'redgreen',
+ 'greenred', 'bluered', 'redblue', 'rich.colors'), - calculating and
+ plotting two-dimensional data summaries ('ci2d', 'hist2d'), - enhanced
+ regression diagnostic plots ('lmplot2', 'residplot'), - formula-enabled
+ interface to 'stats::lowess' function ('lowess'), - displaying textual data
+ in plots ('textplot', 'sinkplot'), - plotting a matrix where each cell
+ contains a dot whose size reflects the relative magnitude of the elements
+ ('balloonplot'), - plotting "Venn" diagrams ('venn'), - displaying
+ Open-Office style plots ('ooplot'), - plotting multiple data on same
+ region, with separate axes ('overplot'), - plotting means and confidence
+ intervals ('plotCI', 'plotmeans'), - spacing points in an x-y plot so they
+ don't overlap ('space')."""
homepage = "https://cloud.r-project.org/package=gplots"
url = "https://cloud.r-project.org/src/contrib/gplots_3.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gplots"
+ version('3.1.1', sha256='f9ae19c2574b6d41adbeccaf7bc66cf56d7b2769004daba7e0038d5fbd821339')
version('3.0.1.1', sha256='7db103f903a25d174cddcdfc7b946039b61e236c95084b90ad17f1a41da3770c')
version('3.0.1', sha256='343df84327ac3d03494992e79ee3afc78ba3bdc08af9a305ee3fb0a38745cb0a')
depends_on('r@3.0:', type=('build', 'run'))
depends_on('r-gtools', type=('build', 'run'))
- depends_on('r-gdata', type=('build', 'run'))
depends_on('r-catools', type=('build', 'run'))
depends_on('r-kernsmooth', type=('build', 'run'))
+ depends_on('r-gdata', when='@:3.0.1.1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-graph/package.py b/var/spack/repos/builtin/packages/r-graph/package.py
index 057e27a4b2..e13346800e 100644
--- a/var/spack/repos/builtin/packages/r-graph/package.py
+++ b/var/spack/repos/builtin/packages/r-graph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RGraph(RPackage):
- """graph: A package to handle graph data structures.
+ """graph: A package to handle graph data structures
A package that implements some simple graph handling capabilities."""
homepage = "https://bioconductor.org/packages/graph"
git = "https://git.bioconductor.org/packages/graph.git"
+ version('1.68.0', commit='03ad9ed088095605e317510b8234501318994e94')
version('1.62.0', commit='95223bd63ceb66cfe8d881f992a441de8b8c89a3')
version('1.60.0', commit='e2aecb0a862f32091b16e0036f53367d3edf4c1d')
version('1.58.2', commit='6455d8e7a5a45dc733915942cb71005c1016b6a0')
diff --git a/var/spack/repos/builtin/packages/r-graphlayouts/package.py b/var/spack/repos/builtin/packages/r-graphlayouts/package.py
index 382ccc8077..378eccdff0 100644
--- a/var/spack/repos/builtin/packages/r-graphlayouts/package.py
+++ b/var/spack/repos/builtin/packages/r-graphlayouts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGraphlayouts(RPackage):
- """graphlayouts: Additional Layout Algorithms for Network Visualizations.
+ """Additional Layout Algorithms for Network Visualizations.
Several new layout algorithms to visualize networks are provided which are
not part of 'igraph'. Most are based on the concept of stress majorization
@@ -19,6 +19,7 @@ class RGraphlayouts(RPackage):
url = "https://cloud.r-project.org/src/contrib/graphlayouts_0.5.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/graphlayouts"
+ version('0.7.1', sha256='380f8ccb0b08735694e83f661fd56a0d592a78448ae91b89c290ba8582d66717')
version('0.5.0', sha256='83f61ce07580c5a64c7044c12b20d98ccf138c7e78ff12855cdfc206e1fab10d')
depends_on('r@3.2.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-grbase/package.py b/var/spack/repos/builtin/packages/r-grbase/package.py
index 5d56958f23..0b1a6b9324 100644
--- a/var/spack/repos/builtin/packages/r-grbase/package.py
+++ b/var/spack/repos/builtin/packages/r-grbase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,20 +7,39 @@ from spack import *
class RGrbase(RPackage):
- """gRbase: A Package for Graphical Modelling in R"""
+ """A Package for Graphical Modelling in R
- homepage = "http://people.math.aau.dk/~sorenh/software/gR/"
+ The 'gRbase' package provides graphical modelling features used by e.g. the
+ packages 'gRain', 'gRim' and 'gRc'. 'gRbase' implements graph algorithms
+ including (i) maximum cardinality search (for marked and unmarked graphs).
+ (ii) moralization, (iii) triangulation, (iv) creation of junction tree.
+ 'gRbase' facilitates array operations, 'gRbase' implements functions for
+ testing for conditional independence. 'gRbase' illustrates how hierarchical
+ log-linear models may be implemented and describes concept of graphical
+ meta data. The facilities of the package are documented in the book by
+ Hojsgaard, Edwards and Lauritzen (2012, <doi:10.1007/978-1-4614-2299-0>)
+ and in the paper by Dethlefsen and Hojsgaard, (2005,
+ <doi:10.18637/jss.v014.i17>). Please see 'citation("gRbase")' for citation
+ details. NOTICE 'gRbase' requires that the packages graph, 'Rgraphviz'
+ and 'RBGL' are installed from 'bioconductor'; for installation instructions
+ please refer to the web page given below."""
+
+ homepage = "https://people.math.aau.dk/~sorenh/software/gR/"
url = "https://cloud.r-project.org/src/contrib/gRbase_1.8-3.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gRbase"
+ version('1.8-6.7', sha256='aaafc7e1b521de60e1a57c0175ac64d4283850c3273bd14774cf24dabc743388')
version('1.8-3.4', sha256='d35f94c2fb7cbd4ce3991570424dfe6723a849658da32e13df29f53b6ea2cc2c')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@3.0.2:', type=('build', 'run'))
+ depends_on('r@3.6.0:', when='@1.8-6.7:', type=('build', 'run'))
depends_on('r-graph', type=('build', 'run'))
+ depends_on('r-rgraphviz', when='@1.8-6.7:', type=('build', 'run'))
+ depends_on('r-rbgl', type=('build', 'run'))
depends_on('r-igraph', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
- depends_on('r-rbgl', type=('build', 'run'))
depends_on('r-rcpp@0.11.1:', type=('build', 'run'))
- depends_on('r-rcpparmadillo', type=('build', 'run'))
depends_on('r-rcppeigen', type=('build', 'run'))
+ depends_on('r-rcpparmadillo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gridbase/package.py b/var/spack/repos/builtin/packages/r-gridbase/package.py
index d32c6dd479..fee64ce69a 100644
--- a/var/spack/repos/builtin/packages/r-gridbase/package.py
+++ b/var/spack/repos/builtin/packages/r-gridbase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gridextra/package.py b/var/spack/repos/builtin/packages/r-gridextra/package.py
index 36ce99c75c..931c279044 100644
--- a/var/spack/repos/builtin/packages/r-gridextra/package.py
+++ b/var/spack/repos/builtin/packages/r-gridextra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gridgraphics/package.py b/var/spack/repos/builtin/packages/r-gridgraphics/package.py
index 7a0485d22d..23c2dcffea 100644
--- a/var/spack/repos/builtin/packages/r-gridgraphics/package.py
+++ b/var/spack/repos/builtin/packages/r-gridgraphics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,17 @@ from spack import *
class RGridgraphics(RPackage):
- """gridGraphics: Redraw Base Graphics Using 'grid' Graphics"""
+ """Redraw Base Graphics Using 'grid' Graphics
+
+ Functions to convert a page of plots drawn with the 'graphics' package into
+ identical output drawn with the 'grid' package. The result looks like the
+ original 'graphics'-based plot, but consists of 'grid' grobs and viewports
+ that can then be manipulated with 'grid' functions (e.g., edit grobs and
+ revisit viewports)."""
homepage = "https://github.com/pmur002/gridgraphics"
url = "https://cloud.r-project.org/src/contrib/gridGraphics_0.4-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gridGraphics"
+ version('0.5-1', sha256='29086e94e63891884c933b186b35511aac2a2f9c56967a72e4050e2980e7da8b')
version('0.4-1', sha256='b770127b71664bbf67f8853a2666c071f2b9920743eddc9f3a58ecb948b923cf')
diff --git a/var/spack/repos/builtin/packages/r-gsa/package.py b/var/spack/repos/builtin/packages/r-gsa/package.py
index 34721c7fc3..a3d524998b 100644
--- a/var/spack/repos/builtin/packages/r-gsa/package.py
+++ b/var/spack/repos/builtin/packages/r-gsa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class RGsa(RPackage):
"""Gene Set Analysis."""
- homepage = "http://www-stat.stanford.edu/~tibs/GSA"
+ homepage = "https://www-stat.stanford.edu/~tibs/GSA"
url = "https://cloud.r-project.org/src/contrib/GSA_1.03.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/GSA"
diff --git a/var/spack/repos/builtin/packages/r-gsalib/package.py b/var/spack/repos/builtin/packages/r-gsalib/package.py
index fe105aa14d..b77f0636fc 100644
--- a/var/spack/repos/builtin/packages/r-gsalib/package.py
+++ b/var/spack/repos/builtin/packages/r-gsalib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gseabase/package.py b/var/spack/repos/builtin/packages/r-gseabase/package.py
index 631de6ca4a..97c7dc3ac8 100644
--- a/var/spack/repos/builtin/packages/r-gseabase/package.py
+++ b/var/spack/repos/builtin/packages/r-gseabase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGseabase(RPackage):
- """Gene set enrichment data structures and methods.
+ """Gene set enrichment data structures and methods
This package provides classes and methods to support Gene Set Enrichment
Analysis (GSEA)."""
@@ -15,6 +15,7 @@ class RGseabase(RPackage):
homepage = "https://bioconductor.org/packages/GSEABase"
git = "https://git.bioconductor.org/packages/GSEABase.git"
+ version('1.52.1', commit='257dfccbc5b507d82099fac6b06bb03825e995e8')
version('1.46.0', commit='edce83a9256a0c03206c2bce7c90ada0d90f6622')
version('1.44.0', commit='7042ff64a98b05b9572231ee1b4f3ae4fc9c768e')
version('1.42.0', commit='5e40ce0fdd4dc0cff7601b169bbf6aa1430ae33e')
diff --git a/var/spack/repos/builtin/packages/r-gsl/package.py b/var/spack/repos/builtin/packages/r-gsl/package.py
index 8aa7f77859..86c6fb101f 100644
--- a/var/spack/repos/builtin/packages/r-gsl/package.py
+++ b/var/spack/repos/builtin/packages/r-gsl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gsodr/package.py b/var/spack/repos/builtin/packages/r-gsodr/package.py
index 8f1fa82e4d..f72a4f6721 100644
--- a/var/spack/repos/builtin/packages/r-gsodr/package.py
+++ b/var/spack/repos/builtin/packages/r-gsodr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,31 @@ from spack import *
class RGsodr(RPackage):
- """A Global Surface Summary of the Day (GSOD) Weather Data Client for R"""
+ """A Global Surface Summary of the Day (GSOD) Weather Data Client for R
+
+ Provides automated downloading, parsing, cleaning, unit conversion and
+ formatting of Global Surface Summary of the Day ('GSOD') weather data from
+ the from the USA National Centers for Environmental Information ('NCEI').
+ Units are converted from from United States Customary System ('USCS') units
+ to International System of Units ('SI'). Stations may be individually
+ checked for number of missing days defined by the user, where stations with
+ too many missing observations are omitted. Only stations with valid
+ reported latitude and longitude values are permitted in the final data.
+ Additional useful elements, saturation vapour pressure ('es'), actual
+ vapour pressure ('ea') and relative humidity ('RH') are calculated from the
+ original data using the improved August-Roche-Magnus approximation
+ (Alduchov & Eskridge 1996) and included in the final data set. The
+ resulting metadata include station identification information, country,
+ state, latitude, longitude, elevation, weather observations and associated
+ flags. For information on the 'GSOD' data from 'NCEI', please see the
+ 'GSOD' 'readme.txt' file available from,
+ <https://www1.ncdc.noaa.gov/pub/data/gsod/readme.txt>."""
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.2', sha256='4fc1d084b6c21055d8cc17a6a6dc412261aa0d4ef4079bcd73b580a8c16bf74e')
version('2.1.1', sha256='dba732e5bd1e367b9d710e6b8924f0c02fa4546202f049124dba02bc2e3329f5')
depends_on('r@3.5.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gss/package.py b/var/spack/repos/builtin/packages/r-gss/package.py
index 76858c9c26..5903285ba1 100644
--- a/var/spack/repos/builtin/packages/r-gss/package.py
+++ b/var/spack/repos/builtin/packages/r-gss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,18 @@ from spack import *
class RGss(RPackage):
- """A comprehensive package for structural multivariate function
+ """General Smoothing Splines
+
+ A comprehensive package for structural multivariate function
estimation using smoothing splines."""
homepage = "https://cloud.r-project.org/package=gss"
url = "https://cloud.r-project.org/src/contrib/gss_2.1-7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gss"
+ version('2.2-2', sha256='1da4da894378ee730cff9628e8b4d2a0d7dfa344b94e5bce6953e66723c21fe4')
version('2.1-10', sha256='26c47ecae6a9b7854a1b531c09f869cf8b813462bd8093e3618e1091ace61ee2')
version('2.1-7', sha256='0405bb5e4c4d60b466335e5da07be4f9570045a24aed09e7bc0640e1a00f3adb')
depends_on('r@2.14.0:', type=('build', 'run'))
+ depends_on('r@3.0.0:', when='@2.2-2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gstat/package.py b/var/spack/repos/builtin/packages/r-gstat/package.py
index 5ef91125c1..5a29741d91 100644
--- a/var/spack/repos/builtin/packages/r-gstat/package.py
+++ b/var/spack/repos/builtin/packages/r-gstat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,24 @@ from spack import *
class RGstat(RPackage):
- """gstat: Spatial and Spatio-Temporal Geostatistical Modelling,
- Predictionand Simulation"""
+ """Spatial and Spatio-Temporal Geostatistical Modelling, Predictionand
+ Simulation
+
+ Variogram modelling; simple, ordinary and universal point or block
+ (co)kriging; spatio-temporal kriging; sequential Gaussian or indicator
+ (co)simulation; variogram and variogram map plotting utility functions;
+ supports sf and stars."""
homepage = "https://github.com/r-spatial/gstat/"
url = "https://cloud.r-project.org/src/contrib/gstat_2.0-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gstat"
+ version('2.0-6', sha256='6711e68aa2444cf2927879a03a976d8caeca5eac98d806b19a6a7178b90bfcab')
version('2.0-3', sha256='20a93fe6bf89221a5888de273bddf9a98187806d507cd3cd6297c2b13e7acce1')
depends_on('r@2.10:', type=('build', 'run'))
- depends_on('r-fnn', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-sp@0.9-72:', type=('build', 'run'))
- depends_on('r-spacetime@1.0-0:', type=('build', 'run'))
depends_on('r-zoo', type=('build', 'run'))
+ depends_on('r-spacetime@1.0-0:', type=('build', 'run'))
+ depends_on('r-fnn', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gsubfn/package.py b/var/spack/repos/builtin/packages/r-gsubfn/package.py
index 080214e0d8..68cd7dc5f4 100644
--- a/var/spack/repos/builtin/packages/r-gsubfn/package.py
+++ b/var/spack/repos/builtin/packages/r-gsubfn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gtable/package.py b/var/spack/repos/builtin/packages/r-gtable/package.py
index a0a412eddb..9c31529f91 100644
--- a/var/spack/repos/builtin/packages/r-gtable/package.py
+++ b/var/spack/repos/builtin/packages/r-gtable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-gtools/package.py b/var/spack/repos/builtin/packages/r-gtools/package.py
index 905bb5dd1d..734949715d 100644
--- a/var/spack/repos/builtin/packages/r-gtools/package.py
+++ b/var/spack/repos/builtin/packages/r-gtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,42 +7,44 @@ from spack import *
class RGtools(RPackage):
- """Functions to assist in R programming.
+ """Various R Programming Tools
+ Functions to assist in R programming.
Including:
- - assist in developing, updating, and maintaining R and R packages
- ('ask', 'checkRVersion', 'getDependencies', 'keywords', 'scat')
- - calculate the logit and inverse logit transformations
- ('logit', 'inv.logit')
- - test if a value is missing, empty or contains only NA and NULL values
- ('invalid')
- - manipulate R's .Last function ('addLast')
- - define macros ('defmacro')
- - detect odd and even integers ('odd', 'even')
- - convert strings containing non-ASCII characters (like single
- quotes) to plain ASCII ('ASCIIfy')
- - perform a binary search ('binsearch')
- - sort strings containing both numeric and character components
- ('mixedsort')
- - create a factor variable from the quantiles of a continuous variable
- ('quantcut')
- - enumerate permutations and combinations ('combinations', 'permutation')
- - calculate and convert between fold-change and log-ratio
- ('foldchange', 'logratio2foldchange', 'foldchange2logratio')
- - calculate probabilities and generate random numbers from Dirichlet
- distributions ('rdirichlet', 'ddirichlet')
- - apply a function over adjacent subsets of a vector ('running')
- - modify the TCP_NODELAY ('de-Nagle') flag for socket objects
- - efficient 'rbind' of data frames, even if the column names don't
- match ('smartbind')
- - generate significance stars from p-values ('stars.pval')
- - convert characters to/from ASCII codes.
-
+ [1] assist in developing, updating, and maintaining R and R packages
+ ('ask', 'checkRVersion', 'getDependencies', 'keywords', 'scat');
+ [2] calculate the logit and inverse logit transformations ('logit',
+ 'inv.logit');
+ [3] test if a value is missing, empty or contains only NA and NULL values
+ ('invalid');
+ [4] manipulate R's .Last function ('addLast');
+ [5] define macros ('defmacro');
+ [6] detect odd and even integers ('odd', 'even');
+ [7] convert strings containing non-ASCII characters (like single
+ quotes) to plain ASCII ('ASCIIfy');
+ [8] perform a binary search ('binsearch');
+ [9] sort strings containing both numeric and character components
+ ('mixedsort');
+ [10] create a factor variable from the quantiles of a continuous variable
+ ('quantcut');
+ [11] enumerate permutations and combinations ('combinations',
+ 'permutation');
+ [12] calculate and convert between fold-change and log-ratio ('foldchange',
+ 'logratio2foldchange', 'foldchange2logratio');
+ [13] calculate probabilities and generate random numbers from Dirichlet
+ distributions ('rdirichlet', 'ddirichlet');
+ [14] apply a function over adjacent subsets of a vector ('running');
+ [15] modify the TCP_NODELAY ('de-Nagle') flag for socket objects;
+ [16] efficient 'rbind' of data frames, even if the column names don't match
+ ('smartbind');
+ [17] generate significance stars from p-values ('stars.pval');
+ [18] convert characters to/from ASCII codes;
"""
homepage = "https://cloud.r-project.org/package=gtools"
url = "https://cloud.r-project.org/src/contrib/gtools_3.5.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/gtools"
+ version('3.8.2', sha256='503ba60a41f3c61b8129c25de62c74dab29761d2e661d4addd106e2e02f1dcde')
version('3.8.1', sha256='051484459bd8ad1b03425b8843d24f6828fea18f7357cfa1c192198cc3f4ba38')
version('3.5.0', sha256='86b6a51a92ddb3c78095e0c5dc20414c67f6e28f915bf0ee11406adad3e476f6')
diff --git a/var/spack/repos/builtin/packages/r-gtrellis/package.py b/var/spack/repos/builtin/packages/r-gtrellis/package.py
index 88a7b84b33..7493244f6f 100644
--- a/var/spack/repos/builtin/packages/r-gtrellis/package.py
+++ b/var/spack/repos/builtin/packages/r-gtrellis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGtrellis(RPackage):
- """Genome Level Trellis Layout.
+ """Genome Level Trellis Layout
Genome level Trellis graph visualizes genomic data conditioned by
genomic categories (e.g. chromosomes). For each genomic category,
@@ -19,6 +19,7 @@ class RGtrellis(RPackage):
homepage = "https://bioconductor.org/packages/gtrellis"
git = "https://git.bioconductor.org/packages/gtrellis.git"
+ version('1.22.0', commit='c071c5631f3dedda212aed87d9c02954b5ed6611')
version('1.16.1', commit='a9003ededc8f2a48c78d4545e2f214023c13a7da')
version('1.14.0', commit='93935fb34211d12b250e22291712e18a31b0208d')
version('1.12.1', commit='7f3941adddbbfa17f4cf474b703568678a38272d')
@@ -29,6 +30,5 @@ class RGtrellis(RPackage):
depends_on('r-iranges', type=('build', 'run'))
depends_on('r-genomicranges', type=('build', 'run'))
depends_on('r-circlize@0.3.3:', type=('build', 'run'))
- depends_on('r-getoptlong', type=('build', 'run'))
-
depends_on('r-circlize@0.4.8:', when='@1.16.1', type=('build', 'run'))
+ depends_on('r-getoptlong', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gviz/package.py b/var/spack/repos/builtin/packages/r-gviz/package.py
index 3047086747..3e2ac772b4 100644
--- a/var/spack/repos/builtin/packages/r-gviz/package.py
+++ b/var/spack/repos/builtin/packages/r-gviz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RGviz(RPackage):
- """Plotting data and annotation information along genomic coordinates.
+ """Plotting data and annotation information along genomic coordinates
Genomic data analyses requires integrated visualization of known genomic
information and new experimental data. Gviz uses the biomaRt and the
@@ -19,6 +19,7 @@ class RGviz(RPackage):
homepage = "https://bioconductor.org/packages/Gviz"
git = "https://git.bioconductor.org/packages/Gviz.git"
+ version('1.34.0', commit='445fadff2aedd8734580fa908aa47ff1216a8182')
version('1.28.3', commit='20b9825af144cfc888629c34aa980b5bbd65bf86')
version('1.26.5', commit='430310b9d2e098f9757a71d26a2f69871071f30c')
version('1.24.0', commit='3ee1eec97a56653c07c434a97f82cfe3c4281841')
@@ -26,6 +27,7 @@ class RGviz(RPackage):
version('1.20.0', commit='299b8255e1b03932cebe287c3690d58c88f5ba5c')
depends_on('r@2.10.0:', type=('build', 'run'))
+ depends_on('r@4.0:', when='@1.34.0:', type=('build', 'run'))
depends_on('r-s4vectors@0.9.25:', type=('build', 'run'))
depends_on('r-iranges@1.99.18:', type=('build', 'run'))
depends_on('r-genomicranges@1.17.20:', type=('build', 'run'))
@@ -37,6 +39,7 @@ class RGviz(RPackage):
depends_on('r-annotationdbi@1.27.5:', type=('build', 'run'))
depends_on('r-biobase@2.15.3:', type=('build', 'run'))
depends_on('r-genomicfeatures@1.17.22:', type=('build', 'run'))
+ depends_on('r-ensembldb@2.11.3:', when='@1.34.0:', type=('build', 'run'))
depends_on('r-bsgenome@1.33.1:', type=('build', 'run'))
depends_on('r-biostrings@2.33.11:', type=('build', 'run'))
depends_on('r-biovizbase@1.13.8:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gwmodel/package.py b/var/spack/repos/builtin/packages/r-gwmodel/package.py
index e1577f8f61..8e1e81dc20 100644
--- a/var/spack/repos/builtin/packages/r-gwmodel/package.py
+++ b/var/spack/repos/builtin/packages/r-gwmodel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,23 +7,39 @@ from spack import *
class RGwmodel(RPackage):
- """GWmodel: Geographically-Weighted Models"""
+ """Geographically-Weighted Models
+
+ Techniques from a particular branch of spatial statistics,termed
+ geographically-weighted (GW) models. GW models suit situations when data
+ are not described well by some global model, but where there are spatial
+ regions where a suitably localised calibration provides a better
+ description. 'GWmodel' includes functions to calibrate: GW summary
+ statistics (Brunsdon et al., 2002) <doi:10.1016/s0198-9715(01)00009-6>, GW
+ principal components analysis (Harris et al., 2011)
+ <doi:10.1080/13658816.2011.554838>, GW discriminant analysis (Brunsdon et
+ al., 2007) <doi:10.1111/j.1538-4632.2007.00709.x> and various forms of GW
+ regression (Brunsdon et al., 1996)
+ <doi:10.1111/j.1538-4632.1996.tb00936.x>; some of which are provided in
+ basic and robust (outlier resistant) forms."""
homepage = "http://gwr.nuim.ie/"
url = "https://cloud.r-project.org/src/contrib/GWmodel_2.0-9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/GWmodel"
+ version('2.2-2', sha256='4e2b221b85fbc828ffc4f057c137ded849afcaac2a75c27d2d6d0a6db17f8a06')
version('2.1-3', sha256='3e1a36fddf8e64f61d548067bb043216f8d12069d814a4cbf07a9cae0b310af6')
version('2.1-1', sha256='91241b4e26d423a54c7c6784ef5159759058a5dafdff18a1ea8451faf979d1f3')
version('2.0-9', sha256='b479af2c19d4aec30f1883d00193d52e342c609c1badcb51cc0344e4404cffa7')
depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r-maptools@0.5-2:', type=('build', 'run'))
- depends_on('r-rcpp', type=('build', 'run'))
- depends_on('r-rcpparmadillo', type=('build', 'run'))
depends_on('r-robustbase', type=('build', 'run'))
depends_on('r-sp', type=('build', 'run'))
- depends_on('r-spacetime', type=('build', 'run'))
+ depends_on('r-sp@1.4-0:', when='@2.2-2:', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
depends_on('r-spatialreg', type=('build', 'run'))
+ depends_on('r-spacetime', type=('build', 'run'))
depends_on('r-spdep', type=('build', 'run'))
depends_on('r-fnn', when='@2.1-1:', type=('build', 'run'))
+ depends_on('r-rcpparmadillo', type=('build', 'run'))
+ depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-haven/package.py b/var/spack/repos/builtin/packages/r-haven/package.py
index 05c1bf2e65..60a11a7d1c 100644
--- a/var/spack/repos/builtin/packages/r-haven/package.py
+++ b/var/spack/repos/builtin/packages/r-haven/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,22 +7,28 @@ from spack import *
class RHaven(RPackage):
- """Import foreign statistical formats into R via the embedded 'ReadStat' C
- library, <https://github.com/WizardMac/ReadStat>."""
+ """Import and Export 'SPSS', 'Stata' and 'SAS' Files
- homepage = "http://haven.tidyverse.org/"
+ Import foreign statistical formats into R via the embedded 'ReadStat' C
+ library, <https://github.com/WizardMac/ReadStat>."""
+
+ homepage = "https://haven.tidyverse.org/"
url = "https://cloud.r-project.org/src/contrib/haven_1.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/haven"
+ version('2.3.1', sha256='6eee9f3297aab4cae2e4a4181ea65af933eacee2a2fb40af5b2ecf06f1bb9e0d')
version('2.1.1', sha256='90bcb4e7f24960e7aa3e15c06b95cd897f08de149cec43fd8ba110b14526068a')
version('2.1.0', sha256='c0a1cf1b039549fb3ad833f9644ed3f142790236ad755d2ee7bd3d8109e3ae74')
version('1.1.0', sha256='089fb4d0955f320abc48d0a3031799f96f3a20b82492474743903fdf12001d19')
depends_on('r@3.1:', when='@:2.1.0', type=('build', 'run'))
depends_on('r@3.2:', when='@2.1.1:', type=('build', 'run'))
+ depends_on('r-forcats@0.2.0:', type=('build', 'run'))
+ depends_on('r-hms', type=('build', 'run'))
depends_on('r-rcpp@0.11.4:', type=('build', 'run'))
depends_on('r-readr@0.1.0:', type=('build', 'run'))
- depends_on('r-hms', type=('build', 'run'))
+ depends_on('r-rlang@0.4.0:', when='@2.3.1:', type=('build', 'run'))
depends_on('r-tibble', type=('build', 'run'))
- depends_on('r-forcats@0.2.0:', type=('build', 'run'))
+ depends_on('r-tidyselect', when='@2.3.1:', type=('build', 'run'))
+ depends_on('r-vctrs@0.3.0:', when='@2.3.1:', type=('build', 'run'))
depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-hdf5array/package.py b/var/spack/repos/builtin/packages/r-hdf5array/package.py
index 0a7ed13742..7c2400d9a6 100644
--- a/var/spack/repos/builtin/packages/r-hdf5array/package.py
+++ b/var/spack/repos/builtin/packages/r-hdf5array/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RHdf5array(RPackage):
- """HDF5 backend for DelayedArray objects.
+ """HDF5 backend for DelayedArray objects
Implements the HDF5Array and TENxMatrix classes, 2 convenient and
memory-efficient array-like containers for on-disk representation of
@@ -21,6 +21,7 @@ class RHdf5array(RPackage):
homepage = "https://bioconductor.org/packages/HDF5Array"
git = "https://git.bioconductor.org/packages/HDF5Array.git"
+ version('1.18.0', commit='d5bd55d170cb384fdebdf60751e1e28483782caa')
version('1.12.3', commit='21c6077f3f789748a18f2e579110576c5522e975')
version('1.10.1', commit='0b8ae1dfb56e4203dd8e14781850370df46a5e2c')
version('1.8.1', commit='3c9aa23d117bf489b6341708dc80c943bd1af11a')
@@ -29,21 +30,21 @@ class RHdf5array(RPackage):
depends_on('r@3.4:', type=('build', 'run'))
depends_on('r-delayedarray@0.2.4:', type=('build', 'run'))
- depends_on('r-rhdf5', type=('build', 'run'))
- depends_on('r-biocgenerics', type=('build', 'run'))
- depends_on('r-s4vectors', type=('build', 'run'))
- depends_on('r-iranges', type=('build', 'run'))
-
depends_on('r-delayedarray@0.3.18:', when='@1.6.0:', type=('build', 'run'))
-
depends_on('r-delayedarray@0.5.32:', when='@1.8.1:', type=('build', 'run'))
- depends_on('r-biocgenerics@0.25.1:', when='@1.8.1:', type=('build', 'run'))
-
depends_on('r-delayedarray@0.7.41:', when='@1.10.1:', type=('build', 'run'))
- depends_on('r-rhdf5@2.25.6:', when='@1.10.1:', type=('build', 'run'))
-
depends_on('r-delayedarray@0.9.3:', when='@1.12.3:', type=('build', 'run'))
+ depends_on('r-delayedarray@0.15.16:', when='@1.18.0:', type=('build', 'run'))
+ depends_on('r-rhdf5', type=('build', 'run'))
+ depends_on('r-rhdf5@2.25.6:', when='@1.10.1:', type=('build', 'run'))
+ depends_on('r-rhdf5@2.31.6:', when='@1.18.0:', type=('build', 'run'))
+ depends_on('r-matrix', when='@1.18.0:', type=('build', 'run'))
+ depends_on('r-biocgenerics', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.25.1:', when='@1.8.1:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.31.5:', when='@1.18.0:', type=('build', 'run'))
+ depends_on('r-s4vectors', type=('build', 'run'))
depends_on('r-s4vectors@0.21.6:', when='@1.12.3:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.27.13:', when='@1.18.0:', type=('build', 'run'))
+ depends_on('r-iranges', type=('build', 'run'))
depends_on('r-rhdf5lib', when='@1.12.3:', type=('build', 'run'))
-
depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-hdf5r/package.py b/var/spack/repos/builtin/packages/r-hdf5r/package.py
index 29baf0193c..860270bafe 100644
--- a/var/spack/repos/builtin/packages/r-hdf5r/package.py
+++ b/var/spack/repos/builtin/packages/r-hdf5r/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RHdf5r(RPackage):
- """'HDF5' is a data model, library and file format for storing and managing
+ """Interface to the 'HDF5' Binary Data Format
+
+ 'HDF5' is a data model, library and file format for storing and managing
large amounts of data. This package provides a nearly feature complete,
object oriented wrapper for the 'HDF5' API
<https://support.hdfgroup.org/HDF5/doc/RM/RM_H5Front.html> using R6
@@ -18,6 +20,7 @@ class RHdf5r(RPackage):
url = "https://cloud.r-project.org/src/contrib/hdf5r_1.2.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/hdf5r"
+ version('1.3.3', sha256='a0f83cbf21563e81dbd1a1bd8379623ed0c9c4df4e094c75013abfd7a5271545')
version('1.2.0', sha256='58813e334fd3f9040038345a7186e5cb02090898883ac192477a76a5b8b4fe81')
depends_on('r@3.2.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-hexbin/package.py b/var/spack/repos/builtin/packages/r-hexbin/package.py
index d1534b02ea..9c252d3f56 100644
--- a/var/spack/repos/builtin/packages/r-hexbin/package.py
+++ b/var/spack/repos/builtin/packages/r-hexbin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,13 +8,16 @@ from spack import *
class RHexbin(RPackage):
- """Binning and plotting functions for hexagonal bins. Now uses and relies
+ """Hexagonal Binning Routines
+
+ Binning and plotting functions for hexagonal bins. Now uses and relies
on grid graphics and formal (S4) classes and methods."""
- homepage = "http://github.com/edzer/hexbin"
+ homepage = "https://github.com/edzer/hexbin"
url = "https://cloud.r-project.org/src/contrib/hexbin_1.27.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/hexbin"
+ version('1.28.2', sha256='6241f8d3a6c6be2c1c693c3ddb99554bc103e3c6cf602d0c2787c0ce6fd1702d')
version('1.27.3', sha256='7ea422a76542c2fc2840df601af1b7803aa96df4fee6d51dec456ac36940c191')
version('1.27.2', sha256='46d47b1efef75d6f126af686a4dd614228b60418b9a5bde9e9e5d11200a0ee52')
version('1.27.1', sha256='075935a3ae2d90e44aca6ebbd368dc6f7e59d322e36e0e0932dedbf01330ad08')
diff --git a/var/spack/repos/builtin/packages/r-hh/package.py b/var/spack/repos/builtin/packages/r-hh/package.py
index 1f455fcac1..7b7266998a 100644
--- a/var/spack/repos/builtin/packages/r-hh/package.py
+++ b/var/spack/repos/builtin/packages/r-hh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RHh(RPackage):
- """HH: Statistical Analysis and Data Display: Heiberger and Holland.
+ """Statistical Analysis and Data Display: Heiberger and Holland.
Support software for Statistical Analysis and Data Display (Second
Edition, Springer, ISBN 978-1-4939-2121-8, 2015) and (First Edition,
@@ -28,6 +28,7 @@ class RHh(RPackage):
url = "https://cloud.r-project.org/src/contrib/HH_3.1-40.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/HH"
+ version('3.1-43', sha256='2ed35c8fc97092e9d2ce3439a2ec342d5d7bd93ad8f5266995cc80d88cd2235b')
version('3.1-40', sha256='795924d900a98ae367e6697b2c951c3b4910a54931aebcad5024eda083d4a8a2')
depends_on('r@3.0.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-highr/package.py b/var/spack/repos/builtin/packages/r-highr/package.py
index c83f5a6427..ac1f676a7b 100644
--- a/var/spack/repos/builtin/packages/r-highr/package.py
+++ b/var/spack/repos/builtin/packages/r-highr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,12 +13,13 @@ class RHighr(RPackage):
Andre Simon's highlight package."""
homepage = "https://github.com/yihui/highr"
- url = "https://cloud.r-project.org/src/contrib/highr_0.6.tar.gz"
- list_url = "https://cloud.r-project.org/src/contrib/Archive/highr"
+ cran = "highr"
+ version('0.9', sha256='beff11390d936c90fdcc00e7ed0eb72220f3de403a51b56659e3d3e0b6d8ed4d')
version('0.8', sha256='4bd01fba995f68c947a99bdf9aca15327a5320151e10bd0326fad50a6d8bc657')
version('0.7', sha256='cabba5b6f2ea82024a49c5ced5f1aa476f864bc52bc129038e319e4e26b6f3b7')
version('0.6', sha256='43e152b2dea596df6e14c44398c74fcd438ece15eaae5bdb84aef8d61b213b59')
depends_on('r@3.0.2:', when='@:0.7', type=('build', 'run'))
depends_on('r@3.2.3:', when='@0.8:', type=('build', 'run'))
+ depends_on('r-xfun@0.18:', when='@0.9:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-hmisc/package.py b/var/spack/repos/builtin/packages/r-hmisc/package.py
index 678816277c..0bdfc653a0 100644
--- a/var/spack/repos/builtin/packages/r-hmisc/package.py
+++ b/var/spack/repos/builtin/packages/r-hmisc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,20 @@ from spack import *
class RHmisc(RPackage):
- """Contains many functions useful for data analysis, high-level
+ """Harrell Miscellaneous
+
+ Contains many functions useful for data analysis, high-level
graphics, utility operations, functions for computing sample size
and power, importing and annotating datasets, imputing missing
values, advanced table making, variable clustering, character
string manipulation, conversion of R objects to LaTeX and html
code, and recoding variables."""
- homepage = "http://biostat.mc.vanderbilt.edu/Hmisc"
+ homepage = "https://cran.r-project.org/web/packages/Hmisc/index.html"
url = "https://cloud.r-project.org/src/contrib/Hmisc_4.1-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Hmisc"
+ version('4.4-2', sha256='490ac64dd8558868e7c6fdd9523af102e17ea536c450d62c48b04155279bfbc8')
version('4.4-0', sha256='f16ecf4c5ee2202d51f426282a54f8000ffa8b9747c3e910205f34f878556ec7')
version('4.2-0', sha256='9e9614673288dd00295f250fa0bf96fc9e9fed692c69bf97691081c1a01411d9')
version('4.1-1', sha256='991db21cdf73ffbf5b0239a4876b2e76fd243ea33528afd88dc968792f281498')
@@ -28,15 +31,15 @@ class RHmisc(RPackage):
depends_on('r-formula', type=('build', 'run'))
depends_on('r-ggplot2@2.2:', type=('build', 'run'))
depends_on('r-latticeextra', type=('build', 'run'))
- depends_on('r-acepack', type=('build', 'run'))
- depends_on('r-gridextra', type=('build', 'run'))
- depends_on('r-data-table', type=('build', 'run'))
- depends_on('r-htmltools', type=('build', 'run'))
- depends_on('r-base64enc', type=('build', 'run'))
- depends_on('r-htmltable@1.11.0:', type=('build', 'run'))
- depends_on('r-viridis', type=('build', 'run'))
depends_on('r-cluster', type=('build', 'run'))
depends_on('r-rpart', type=('build', 'run'))
depends_on('r-nnet', type=('build', 'run'))
depends_on('r-foreign', type=('build', 'run'))
depends_on('r-gtable', type=('build', 'run'))
+ depends_on('r-gridextra', type=('build', 'run'))
+ depends_on('r-data-table', type=('build', 'run'))
+ depends_on('r-htmltable@1.11.0:', type=('build', 'run'))
+ depends_on('r-viridis', type=('build', 'run'))
+ depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-base64enc', type=('build', 'run'))
+ depends_on('r-acepack', when='@:4.4-0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-hms/package.py b/var/spack/repos/builtin/packages/r-hms/package.py
index 0ebcc5fbde..b0c24234a2 100644
--- a/var/spack/repos/builtin/packages/r-hms/package.py
+++ b/var/spack/repos/builtin/packages/r-hms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,22 @@ from spack import *
class RHms(RPackage):
- """Implements an S3 class for storing and formatting time-of-day values,
- based on the 'difftime' class."""
+ """Pretty Time of Day
+
+ Implements an S3 class for storing and formatting time-of-day values, based
+ on the 'difftime' class."""
homepage = "https://cloud.r-project.org/package=hms"
url = "https://cloud.r-project.org/src/contrib/hms_0.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/hms"
+ version('1.0.0', sha256='9704e903d724f0911d46e5ad18b469a7ed419c5b1f388bd064fd663cefa6c962')
version('0.5.0', sha256='a87872665c3bf3901f597d78c152e7805f7129e4dbe27397051de4cf1a76561b')
version('0.3', sha256='9368259cbc1094ce0e4cf61544875ec30088ef690d6667e6b0b564218ab3ff88')
+ depends_on('r-ellipsis', when='@1.0.0:', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@1.0.0:', type=('build', 'run'))
depends_on('r-pkgconfig', when='@0.5.0:', type=('build', 'run'))
depends_on('r-rlang', when='@0.5.0:', type=('build', 'run'))
depends_on('r-vctrs@0.2.0:', when='@0.5.0:', type=('build', 'run'))
+ depends_on('r-vctrs@0.2.1:', when='@1.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-hoardr/package.py b/var/spack/repos/builtin/packages/r-hoardr/package.py
index 2c6f222d64..7de77d1955 100644
--- a/var/spack/repos/builtin/packages/r-hoardr/package.py
+++ b/var/spack/repos/builtin/packages/r-hoardr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-htmltable/package.py b/var/spack/repos/builtin/packages/r-htmltable/package.py
index d3876cc174..73abf4d89c 100644
--- a/var/spack/repos/builtin/packages/r-htmltable/package.py
+++ b/var/spack/repos/builtin/packages/r-htmltable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RHtmltable(RPackage):
- """Tables with state-of-the-art layout elements such as row
+ """Advanced Tables for Markdown/HTML
+
+ Tables with state-of-the-art layout elements such as row
spanners, column spanners, table spanners, zebra striping, and
more. While allowing advanced layout, the underlying css-structure
is simple in order to maximize compatibility with word processors
@@ -19,6 +21,7 @@ class RHtmltable(RPackage):
url = "https://cloud.r-project.org/src/contrib/htmlTable_1.11.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/htmlTable"
+ version('2.1.0', sha256='4049339b317cbec1c8c7930e2e36cf0fc8b002516092dd270bb794d8db02f0bf')
version('1.13.1', sha256='689f32b65da6a57ad500e8d9ef3309d346401dca277c6b264a46c8d7c75884d0')
version('1.11.2', sha256='64a273b1cdf07a7c57b9031315ca665f95d78e70b4320d020f64a139278877d1')
version('1.9', sha256='5b487a7f33af77db7d987bf61f3ef2ba18bb629fe7b9802409f8b3485c603132')
diff --git a/var/spack/repos/builtin/packages/r-htmltools/package.py b/var/spack/repos/builtin/packages/r-htmltools/package.py
index 18786d763e..ce3ac0dd20 100644
--- a/var/spack/repos/builtin/packages/r-htmltools/package.py
+++ b/var/spack/repos/builtin/packages/r-htmltools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,20 @@ from spack import *
class RHtmltools(RPackage):
- """Tools for HTML generation and output."""
+ """Tools for HTML
+
+ Tools for HTML generation and output."""
homepage = "https://github.com/rstudio/htmltools"
- url = "https://cloud.r-project.org/src/contrib/htmltools_0.3.6.tar.gz"
- list_url = "https://cloud.r-project.org/src/contrib/Archive/htmltools"
+ cran = "htmltools"
+ version('0.5.1.1', sha256='f0bfe72ffe330f3d6c9ead5857f3a4aef80e002e32558074a3e643f2ab67a4ba')
+ version('0.5.1', sha256='6ac82e4451f9558ceb541ea659a736b2ab3245827832b44d3661e7a4d91f6307')
version('0.3.6', sha256='44affb82f9c2fd76c9e2b58f9229adb003217932b68c3fdbf1327c8d74c868a2')
version('0.3.5', sha256='29fb7e075744bbffdff8ba4fce3860076de66f39a59a100ee4cfb4fc00722b49')
depends_on('r@2.14.1:', type=('build', 'run'))
depends_on('r-digest', type=('build', 'run'))
- depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-base64enc', when='@0.5.1:', type=('build', 'run'))
+ depends_on('r-rlang', when='@0.5.1:', type=('build', 'run'))
+ depends_on('r-rcpp', when=' @:0.3.6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-htmlwidgets/package.py b/var/spack/repos/builtin/packages/r-htmlwidgets/package.py
index 9466528f4a..1867fc96dc 100644
--- a/var/spack/repos/builtin/packages/r-htmlwidgets/package.py
+++ b/var/spack/repos/builtin/packages/r-htmlwidgets/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RHtmlwidgets(RPackage):
- """A framework for creating HTML widgets that render in various contexts
+ """HTML Widgets for R
+
+ A framework for creating HTML widgets that render in various contexts
including the R console, 'R Markdown' documents, and 'Shiny' web
applications."""
@@ -15,6 +17,7 @@ class RHtmlwidgets(RPackage):
url = "https://cloud.r-project.org/src/contrib/htmlwidgets_0.9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/htmlwidgets"
+ version('1.5.3', sha256='01a5833182cc224bd100be2815e57e67b524de9f2bb1542787b6e3d1303f0f29')
version('1.3', sha256='f1e4ffabc29e6cfe857f627da095be3cfcbe0e1f02ae75e572f10b4a026c5a12')
version('0.9', sha256='1154b541ccd868e41d3cf0d7f188f7275ec99f61fe2c7de21c8a05edb19b985e')
version('0.8', sha256='9232b78727c1ecd006cd8e607ef76417d795f011b0e4a7535e6d673228bfc3b5')
diff --git a/var/spack/repos/builtin/packages/r-httpcode/package.py b/var/spack/repos/builtin/packages/r-httpcode/package.py
index 52b847fda6..d95b8ce4da 100644
--- a/var/spack/repos/builtin/packages/r-httpcode/package.py
+++ b/var/spack/repos/builtin/packages/r-httpcode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,15 @@ from spack import *
class RHttpcode(RPackage):
- """httpcode: 'HTTP' Status Code Helper"""
+ """httpcode: 'HTTP' Status Code Helper
+
+ Find and explain the meaning of 'HTTP' status codes. Functions included for
+ searching for codes by full or partial number, by message, and get
+ appropriate dog and cat images for many status codes."""
homepage = "https://github.com/sckott/httpcode"
url = "https://cloud.r-project.org/src/contrib/httpcode_0.2.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/httpcode"
+ version('0.3.0', sha256='593a030a4f94c3df8c15576837c17344701bac023ae108783d0f06c476062f76')
version('0.2.0', sha256='fbc1853db742a2cc1df11285cf27ce2ea43bc0ba5f7d393ee96c7e0ee328681a')
diff --git a/var/spack/repos/builtin/packages/r-httpuv/package.py b/var/spack/repos/builtin/packages/r-httpuv/package.py
index f910d16e2f..b4acb7550d 100644
--- a/var/spack/repos/builtin/packages/r-httpuv/package.py
+++ b/var/spack/repos/builtin/packages/r-httpuv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RHttpuv(RPackage):
- """Provides low-level socket and protocol support for handling HTTP and
+ """HTTP and WebSocket Server Library
+
+ Provides low-level socket and protocol support for handling HTTP and
WebSocket requests directly from within R. It is primarily intended as a
building block for other packages, rather than making it particularly easy
to create complete web applications using httpuv alone. httpuv is built on
@@ -19,6 +21,7 @@ class RHttpuv(RPackage):
url = "https://cloud.r-project.org/src/contrib/httpuv_1.3.5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/httpuv"
+ version('1.5.5', sha256='0be6c98927c7859d4bbfbbec8822c9f5e95352077d87640a76bc2ade07c83117')
version('1.5.1', sha256='b5bb6b3b2f1a6d792568a70f3f357d6b3a35a5e26dd0c668c61a31f2ae8f5710')
version('1.3.5', sha256='4336b993afccca2a194aca577b1975b89a35ac863423b18a11cdbb3f8470e4e9')
version('1.3.3', sha256='bb37452ddc4d9381bee84cdf524582859af6a988e291debb71c8a2e120d02b2a')
@@ -28,4 +31,5 @@ class RHttpuv(RPackage):
depends_on('r-r6', when='@1.5.0:', type=('build', 'run'))
depends_on('r-promises', when='@1.5.0:', type=('build', 'run'))
depends_on('r-later@0.8.0:', when='@1.5.0:', type=('build', 'run'))
+ depends_on('r-bh', when='@1.5.5:', type=('build', 'run'))
depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-httr/package.py b/var/spack/repos/builtin/packages/r-httr/package.py
index 3d7a2e2dbc..496b9d1465 100644
--- a/var/spack/repos/builtin/packages/r-httr/package.py
+++ b/var/spack/repos/builtin/packages/r-httr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RHttr(RPackage):
- """Useful tools for working with HTTP organised by HTTP verbs (GET(),
+ """Tools for Working with URLs and HTTP
+
+ Useful tools for working with HTTP organised by HTTP verbs (GET(),
POST(), etc). Configuration functions make it easy to control additional
request components (authenticate(), add_headers() and so on)."""
@@ -15,17 +17,18 @@ class RHttr(RPackage):
url = "https://cloud.r-project.org/src/contrib/httr_1.2.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/httr"
+ version('1.4.2', sha256='462bed6ed0d92f811d5df4d294336025f1dbff357286999d9269bfd9c20b1ef9')
version('1.4.1', sha256='675c7e07bbe82c48284ee1ab929bb14a6e653abae2860d854dc41a3c028de156')
version('1.4.0', sha256='d633f1425da514f65f3b8c034ae0a8b6911995009840c6bb9657ceedb99ddb48')
version('1.3.1', sha256='22134d7426b2eba37f0cc34b99285499b8bac9fe75a7bc3222fbad179bf8f258')
version('1.2.1', sha256='e7b90b90ee52c826e152efcfadf98e078fa75b65a6baaeb8fd25eeed2195730e')
version('1.1.0', sha256='d7c0cdc11b2ded3132544580f52ebe5dad2a426cde1a5029f2cc693b2f195823')
- depends_on('r@3.0.0:', when='@:1.3.1', type=('build', 'run'))
+ depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r@3.1:', when='@1.4.0', type=('build', 'run'))
depends_on('r@3.2:', when='@1.4.1:', type=('build', 'run'))
+ depends_on('r-curl@3.0.0:', type=('build', 'run'))
depends_on('r-jsonlite', type=('build', 'run'))
depends_on('r-mime', type=('build', 'run'))
- depends_on('r-curl@3.0.0:', type=('build', 'run'))
depends_on('r-openssl@0.8:', type=('build', 'run'))
depends_on('r-r6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-hwriter/package.py b/var/spack/repos/builtin/packages/r-hwriter/package.py
index 57d41cc87e..11c1d8b586 100644
--- a/var/spack/repos/builtin/packages/r-hwriter/package.py
+++ b/var/spack/repos/builtin/packages/r-hwriter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-hypergraph/package.py b/var/spack/repos/builtin/packages/r-hypergraph/package.py
index 3240ab0c23..5296cde4c8 100644
--- a/var/spack/repos/builtin/packages/r-hypergraph/package.py
+++ b/var/spack/repos/builtin/packages/r-hypergraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RHypergraph(RPackage):
- """A package providing hypergraph data structures.
+ """A package providing hypergraph data structures
A package that implements some simple capabilities for representing and
manipulating hypergraphs."""
@@ -15,6 +15,7 @@ class RHypergraph(RPackage):
homepage = "https://bioconductor.org/packages/hypergraph"
git = "https://git.bioconductor.org/packages/hypergraph.git"
+ version('1.62.0', commit='a286bbb70289e9f3cdf41407d52e5976bd6ed11e')
version('1.56.0', commit='f8b977fe068f15ecea49d30e77a871a35afcb97b')
version('1.54.0', commit='cf134b9221e9b5f6329a6786a366f57426c49e7c')
version('1.52.0', commit='3e28d8e8ab4c3facb79857b4e4cfffd65e064aca')
diff --git a/var/spack/repos/builtin/packages/r-ica/package.py b/var/spack/repos/builtin/packages/r-ica/package.py
index 7905de86b1..841ae34f60 100644
--- a/var/spack/repos/builtin/packages/r-ica/package.py
+++ b/var/spack/repos/builtin/packages/r-ica/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-igraph/package.py b/var/spack/repos/builtin/packages/r-igraph/package.py
index 9ceec19052..d1bce691b6 100644
--- a/var/spack/repos/builtin/packages/r-igraph/package.py
+++ b/var/spack/repos/builtin/packages/r-igraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,24 @@ from spack import *
class RIgraph(RPackage):
- """Routines for simple graphs and network analysis. It can handle large
+ """Network Analysis and Visualization
+
+ Routines for simple graphs and network analysis. It can handle large
graphs very well and provides functions for generating random and regular
graphs, graph visualization, centrality methods and much more."""
- homepage = "http://igraph.org/"
+ homepage = "https://igraph.org/"
url = "https://cloud.r-project.org/src/contrib/igraph_1.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/igraph"
+ version('1.2.6', sha256='640da72166fda84bea2c0e5eee374f1ed80cd9439c1171d056b1b1737ae6c76d')
version('1.2.4.1', sha256='891acc763b5a4a4a245358a95dee69280f4013c342f14dd6a438e7bb2bf2e480')
version('1.2.4', sha256='1048eb26ab6b592815bc269c1d91e974c86c9ab827ccb80ae0a40042019592cb')
version('1.1.2', sha256='89b16b41bc77949ea208419e52a18b78b5d418c7fedc52cd47d06a51a6e746ec')
version('1.0.1', sha256='dc64ed09b8b5f8d66ed4936cde3491974d6bc5178dd259b6eab7ef3936aa5602')
- depends_on('r-matrix', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
depends_on('r-pkgconfig@2.0.0:', type=('build', 'run'))
depends_on('r-irlba', when='@:1.1.9', type=('build', 'run'))
depends_on('gmp')
diff --git a/var/spack/repos/builtin/packages/r-illumina450probevariants-db/package.py b/var/spack/repos/builtin/packages/r-illumina450probevariants-db/package.py
new file mode 100644
index 0000000000..2df7d0a602
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-illumina450probevariants-db/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 RIllumina450probevariantsDb(RPackage):
+ """Annotation Package combining variant data from 1000 Genomes Project for
+ Illumina HumanMethylation450 Bead Chip probes:
+
+ Includes details on variants for each probe on the 450k bead chip for each
+ of the four populations (Asian, American, African and European)."""
+
+ bioc = "Illumina450ProbeVariants.db"
+
+ version('1.26.0', commit='fffe6033cc8d87354078c14de1e29976eaedd611')
+
+ depends_on('r@3.0.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-illuminahumanmethylation450kanno-ilmn12-hg19/package.py b/var/spack/repos/builtin/packages/r-illuminahumanmethylation450kanno-ilmn12-hg19/package.py
index 3442430964..e99aa99d8e 100644
--- a/var/spack/repos/builtin/packages/r-illuminahumanmethylation450kanno-ilmn12-hg19/package.py
+++ b/var/spack/repos/builtin/packages/r-illuminahumanmethylation450kanno-ilmn12-hg19/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RIlluminahumanmethylation450kannoIlmn12Hg19(RPackage):
- """Manifests and annotation for Illumina's 450k array data."""
+ """Annotation for Illumina's 450k methylation arrays
+
+ Manifests and annotation for Illumina's 450k array data."""
# This package is available via bioconductor but there is no available git
# repository.
diff --git a/var/spack/repos/builtin/packages/r-illuminahumanmethylation450kmanifest/package.py b/var/spack/repos/builtin/packages/r-illuminahumanmethylation450kmanifest/package.py
new file mode 100644
index 0000000000..1824d082f9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-illuminahumanmethylation450kmanifest/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 RIlluminahumanmethylation450kmanifest(RPackage):
+ """Annotation for Illumina's 450k methylation arrays"""
+
+ url = "https://bioconductor.org/packages/release/data/annotation/src/contrib/IlluminaHumanMethylation450kmanifest_0.4.0.tar.gz"
+ bioc = "IlluminaHumanMethylation450kmanifest"
+
+ version('0.4.0', sha256='41b2e54bac3feafc7646fe40bce3aa2b92c10871b0a13657c5736517792fa763')
+
+ depends_on('r@2.13.0:', type=('build', 'run'))
+ depends_on('r-minfi', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-illuminahumanmethylationepicanno-ilm10b4-hg19/package.py b/var/spack/repos/builtin/packages/r-illuminahumanmethylationepicanno-ilm10b4-hg19/package.py
new file mode 100644
index 0000000000..a04f1c5507
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-illuminahumanmethylationepicanno-ilm10b4-hg19/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 RIlluminahumanmethylationepicannoIlm10b4Hg19(RPackage):
+ """Annotation for Illumina's EPIC methylation arrays"""
+
+ homepage = "https://bitbucket.com/kasperdanielhansen/Illumina_EPIC"
+ url = "https://bioconductor.org/packages/release/data/annotation/src/contrib/IlluminaHumanMethylationEPICanno.ilm10b4.hg19_0.6.0.tar.gz"
+ bioc = "IlluminaHumanMethylationEPICanno.ilm10b4.hg19"
+
+ version('0.6.0', sha256='2c8128126b63e7fa805a5f3b02449367dca9c3be3eb5f6300acc718826590719')
+
+ depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r-minfi@1.19.15:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-illuminahumanmethylationepicmanifest/package.py b/var/spack/repos/builtin/packages/r-illuminahumanmethylationepicmanifest/package.py
new file mode 100644
index 0000000000..a23c17ee12
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-illuminahumanmethylationepicmanifest/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 RIlluminahumanmethylationepicmanifest(RPackage):
+ """Manifest for Illumina's EPIC methylation arrays"""
+
+ homepage = "https://bitbucket.com/kasperdanielhansen/Illumina_EPIC"
+ url = "https://bioconductor.org/packages/release/data/annotation/src/contrib/IlluminaHumanMethylationEPICmanifest_0.3.0.tar.gz"
+ bioc = "IlluminaHumanMethylationEPICmanifest"
+
+ version('0.3.0', sha256='e39a69d98486cec981e97c56f45bbe47d2ccb5bbb66a1b16fa0685575493902a')
+
+ depends_on('r@3.2.0:', type=('build', 'run'))
+ depends_on('r-minfi', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-illuminaio/package.py b/var/spack/repos/builtin/packages/r-illuminaio/package.py
index 01d0f06d20..0d2d87cfab 100644
--- a/var/spack/repos/builtin/packages/r-illuminaio/package.py
+++ b/var/spack/repos/builtin/packages/r-illuminaio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RIlluminaio(RPackage):
- """Parsing Illumina Microarray Output Files.
+ """Parsing Illumina Microarray Output Files
Tools for parsing Illumina's microarray output files, including IDAT."""
homepage = "https://bioconductor.org/packages/illuminaio"
git = "https://git.bioconductor.org/packages/illuminaio.git"
+ version('0.32.0', commit='e1322c781dd475a5e8ff6c0422bebb3deb47fa80')
version('0.26.0', commit='40c2f94df2ea64d745d25aadd2bfb33ac3e02f81')
version('0.24.0', commit='47953c77713c2da00a610f39308f86c5b44f6c59')
version('0.22.0', commit='dbd842340999569975ea593f47d70a729b3f68f2')
diff --git a/var/spack/repos/builtin/packages/r-imager/package.py b/var/spack/repos/builtin/packages/r-imager/package.py
index cd0f851054..08b97a7dc7 100644
--- a/var/spack/repos/builtin/packages/r-imager/package.py
+++ b/var/spack/repos/builtin/packages/r-imager/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,20 @@ from spack import *
class RImager(RPackage):
- """Fast image processing for images in up to 4 dimensions (two spatial
+ """Image Processing Library Based on 'CImg'
+
+ Fast image processing for images in up to 4 dimensions (two spatial
dimensions, one time/depth dimension, one colour dimension). Provides most
traditional image processing tools (filtering, morphology, transformations,
etc.) as well as various functions for easily analysing image data using R.
- The package wraps 'CImg', <http://cimg.eu>, a simple, modern C++ library
+ The package wraps 'CImg', <https://cimg.eu/>, a simple, modern C++ library
for image processing."""
- homepage = "http://dahtah.github.io/imager"
+ homepage = "https://dahtah.github.io/imager"
url = "https://cloud.r-project.org/src/contrib/imager_0.41.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/imager"
+ version('0.42.3', sha256='6fc308153df8251cef48f1e13978abd5d29ec85046fbe0b27c428801d05ebbf3')
version('0.41.2', sha256='9be8bc8b3190d469fcb2883045a404d3b496a0380f887ee3caea11f0a07cd8a5')
depends_on('r@2.10.0:', type=('build', 'run'))
@@ -28,10 +31,9 @@ class RImager(RPackage):
depends_on('r-jpeg', type=('build', 'run'))
depends_on('r-readbitmap', type=('build', 'run'))
depends_on('r-purrr', type=('build', 'run'))
- depends_on('r-cairo', type=('build', 'run'))
depends_on('r-downloader', type=('build', 'run'))
depends_on('r-igraph', type=('build', 'run'))
- depends_on('r-plyr', type=('build', 'run'))
-
+ depends_on('r-cairo', when='@:0.41.2', type=('build', 'run'))
+ depends_on('r-plyr', when='@:0.41.2', type=('build', 'run'))
depends_on('fftw')
depends_on('libtiff')
diff --git a/var/spack/repos/builtin/packages/r-impute/package.py b/var/spack/repos/builtin/packages/r-impute/package.py
index 805a552262..7629e3e406 100644
--- a/var/spack/repos/builtin/packages/r-impute/package.py
+++ b/var/spack/repos/builtin/packages/r-impute/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RImpute(RPackage):
- """impute: Imputation for microarray data.
+ """impute: Imputation for microarray data
Imputation for microarray data (currently KNN only)"""
homepage = "https://bioconductor.org/packages/impute"
git = "https://git.bioconductor.org/packages/impute.git"
+ version('1.64.0', commit='31a5636f4dfbb1fd61386738786a0de048a620c2')
version('1.58.0', commit='dc17173df08d965a0d0aac9fa4ad519bd99d127e')
version('1.56.0', commit='6c037ed4dffabafceae684265f86f2a18751b559')
version('1.54.0', commit='efc61f5197e8c4baf4ae881fb556f0312beaabd8')
diff --git a/var/spack/repos/builtin/packages/r-influencer/package.py b/var/spack/repos/builtin/packages/r-influencer/package.py
index 3fc0e7aa5e..c88e43b2e8 100644
--- a/var/spack/repos/builtin/packages/r-influencer/package.py
+++ b/var/spack/repos/builtin/packages/r-influencer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ini/package.py b/var/spack/repos/builtin/packages/r-ini/package.py
index c52e76ea7f..5f9bd41bc2 100644
--- a/var/spack/repos/builtin/packages/r-ini/package.py
+++ b/var/spack/repos/builtin/packages/r-ini/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-inline/package.py b/var/spack/repos/builtin/packages/r-inline/package.py
index 14d733c157..13d5eed74a 100644
--- a/var/spack/repos/builtin/packages/r-inline/package.py
+++ b/var/spack/repos/builtin/packages/r-inline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RInline(RPackage):
- """Functionality to dynamically define R functions and S4 methods with
+ """Functions to Inline C, C++, Fortran Function Calls from R
+
+ Functionality to dynamically define R functions and S4 methods with
inlined C, C++ or Fortran code supporting .C and .Call calling
conventions."""
@@ -15,7 +17,6 @@ class RInline(RPackage):
url = "https://cloud.r-project.org/src/contrib/inline_0.3.14.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/inline"
+ version('0.3.17', sha256='792857b2ebd408d6523424d2f6bb7297e241d4b28ab32372f6a9240c8cd554f3')
version('0.3.15', sha256='ff043fe13c1991a3b285bed256ff4a9c0ba10bee764225a34b285875b7d69c68')
version('0.3.14', sha256='fd34d6bf965148d26d983a022a0ff7bc1a5831f6ca066deee3f6139894dfc931')
-
- depends_on('r@2.4.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-insight/package.py b/var/spack/repos/builtin/packages/r-insight/package.py
new file mode 100644
index 0000000000..0a4b2439b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-insight/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RInsight(RPackage):
+ """Easy Access to Model Information for Various Model Objects
+
+ A tool to provide an easy, intuitive and consistent access to information
+ contained in various R models, like model formulas, model terms,
+ information about random effects, data that was used to fit the model or
+ data from response variables. 'insight' mainly revolves around two types of
+ functions: Functions that find (the names of) information, starting with
+ 'find_', and functions that get the underlying data, starting with 'get_'.
+ The package has a consistent syntax and works with many different model
+ objects, where otherwise functions to access these information are
+ missing."""
+
+ homepage = "https://easystats.github.io/insight/"
+ cran = "insight"
+
+ version('0.14.1', sha256='0e7761997a46ee33039cdeff1779dbc210de3644e4444c6e893e4ef2f12cc129')
+
+ depends_on('r@3.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-interactivedisplaybase/package.py b/var/spack/repos/builtin/packages/r-interactivedisplaybase/package.py
index 0d69e46c2d..ce45cce7d1 100644
--- a/var/spack/repos/builtin/packages/r-interactivedisplaybase/package.py
+++ b/var/spack/repos/builtin/packages/r-interactivedisplaybase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RInteractivedisplaybase(RPackage):
"""Base package for enabling powerful shiny web displays of Bioconductor
- objects.
+ objects
The interactiveDisplayBase package contains the the basic methods needed
to generate interactive Shiny based display methods for Bioconductor
@@ -17,6 +17,7 @@ class RInteractivedisplaybase(RPackage):
homepage = "https://bioconductor.org/packages/interactiveDisplayBase"
git = "https://git.bioconductor.org/packages/interactiveDisplayBase.git"
+ version('1.28.0', commit='a74c02c971c4f9c7086e14abd23f1a4190da4599')
version('1.22.0', commit='4ce3cde1dabc01375c153ad614d77a5e28b96916')
version('1.20.0', commit='f40912c8af7afbaaf68c003a6e148d81cbe84df6')
version('1.18.0', commit='d07ea72a595877f27bf054f664f23e8f0304def8')
@@ -26,3 +27,4 @@ class RInteractivedisplaybase(RPackage):
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-biocgenerics', type=('build', 'run'))
depends_on('r-shiny', type=('build', 'run'))
+ depends_on('r-dt', when='@1.28.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-intervals/package.py b/var/spack/repos/builtin/packages/r-intervals/package.py
index f76684b3d1..f21f94fcfc 100644
--- a/var/spack/repos/builtin/packages/r-intervals/package.py
+++ b/var/spack/repos/builtin/packages/r-intervals/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,15 @@ from spack import *
class RIntervals(RPackage):
- """intervals: Tools for Working with Points and Intervals"""
+ """Tools for Working with Points and Intervals
- homepage = "http://github.com/edzer/intervals"
+ Tools for working with and comparing sets of points and intervals."""
+
+ homepage = "https://github.com/edzer/intervals"
url = "https://cloud.r-project.org/src/contrib/intervals_0.15.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/intervals"
+ version('0.15.2', sha256='0bd23b0ce817ddd851238233d8a5420bf3a6d29e75fd361418cbc50118777c57')
version('0.15.1', sha256='9a8b3854300f2055e1492c71932cc808b02feac8c4d3dbf6cba1c7dbd09f4ae4')
depends_on('r@2.9.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-inum/package.py b/var/spack/repos/builtin/packages/r-inum/package.py
index 0b3cfead7f..a9a82acb75 100644
--- a/var/spack/repos/builtin/packages/r-inum/package.py
+++ b/var/spack/repos/builtin/packages/r-inum/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ipred/package.py b/var/spack/repos/builtin/packages/r-ipred/package.py
index ad73ee0ddb..6fb6dd1292 100644
--- a/var/spack/repos/builtin/packages/r-ipred/package.py
+++ b/var/spack/repos/builtin/packages/r-ipred/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-iranges/package.py b/var/spack/repos/builtin/packages/r-iranges/package.py
index 581d613875..3c600ed71b 100644
--- a/var/spack/repos/builtin/packages/r-iranges/package.py
+++ b/var/spack/repos/builtin/packages/r-iranges/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RIranges(RPackage):
- """Foundation of integer range manipulation in Bioconductor.
+ """Foundation of integer range manipulation in Bioconductor
Provides efficient low-level and highly reusable S4 classes for storing,
manipulating and aggregating over annotated ranges of integers.
@@ -19,6 +19,7 @@ class RIranges(RPackage):
homepage = "https://bioconductor.org/packages/IRanges"
git = "https://git.bioconductor.org/packages/IRanges.git"
+ version('2.24.1', commit='6c61fddf4c5830f69a0f7f108888c67cd0a12b19')
version('2.22.2', commit='8c5e991')
version('2.18.3', commit='c98a7ba074e72f2e5ec98252dffe9d3392711972')
version('2.16.0', commit='26834c6868d7c279dd8ac1bb9daa16e6fef273c2')
@@ -27,17 +28,15 @@ class RIranges(RPackage):
version('2.10.5', commit='b00d1d5025e3c480d17c13100f0da5a0132b1614')
depends_on('r@3.1.0:', type=('build', 'run'))
+ depends_on('r@4.0.0:', when='@2.24.1:', type=('build', 'run'))
depends_on('r-biocgenerics@0.21.1:', type=('build', 'run'))
- depends_on('r-s4vectors@0.13.17:', type=('build', 'run'))
-
depends_on('r-biocgenerics@0.23.3:', when='@2.12.0:', type=('build', 'run'))
- depends_on('r-s4vectors@0.15.5:', when='@2.12.0:', type=('build', 'run'))
-
depends_on('r-biocgenerics@0.25.3:', when='@2.14.12:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.36.0:', when='@2.24.1:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.13.17:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.15.5:', when='@2.12.0:', type=('build', 'run'))
depends_on('r-s4vectors@0.18.2:', when='@2.14.12:', type=('build', 'run'))
-
depends_on('r-s4vectors@0.19.11:', when='@2.16.0:', type=('build', 'run'))
-
depends_on('r-s4vectors@0.21.9:', when='@2.18.3:', type=('build', 'run'))
-
depends_on('r-s4vectors@0.25.14:', when='@2.22.2:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.27.12:', when='@2.24.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-irdisplay/package.py b/var/spack/repos/builtin/packages/r-irdisplay/package.py
index 2786e6bb91..30c97d0230 100644
--- a/var/spack/repos/builtin/packages/r-irdisplay/package.py
+++ b/var/spack/repos/builtin/packages/r-irdisplay/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-irkernel/package.py b/var/spack/repos/builtin/packages/r-irkernel/package.py
index 9089347e3c..0a05bd97c9 100644
--- a/var/spack/repos/builtin/packages/r-irkernel/package.py
+++ b/var/spack/repos/builtin/packages/r-irkernel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,8 @@ class RIrkernel(RPackage):
homepage = "https://irkernel.github.io/"
git = "https://github.com/IRkernel/IRkernel.git"
- version('master', tag='0.7')
+ version('1.2', commit='d7f868127b876fd490aeff2a75b4254a2898f96c')
+ version('0.7', commit='9cdd284e03eb42d03fab18544b81f486852d5fe0')
depends_on('r-repr', type=('build', 'run'))
depends_on('r-irdisplay', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-irlba/package.py b/var/spack/repos/builtin/packages/r-irlba/package.py
index 5e9711f74f..8133c70814 100644
--- a/var/spack/repos/builtin/packages/r-irlba/package.py
+++ b/var/spack/repos/builtin/packages/r-irlba/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-isdparser/package.py b/var/spack/repos/builtin/packages/r-isdparser/package.py
index cb7065ff23..5c22277f38 100644
--- a/var/spack/repos/builtin/packages/r-isdparser/package.py
+++ b/var/spack/repos/builtin/packages/r-isdparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,23 @@ from spack import *
class RIsdparser(RPackage):
- """isdparser: Parse 'NOAA' Integrated Surface Data Files"""
+ """Parse 'NOAA' Integrated Surface Data Files
+
+ Tools for parsing 'NOAA' Integrated Surface Data ('ISD') files, described
+ at <https://www.ncdc.noaa.gov/isd>. Data includes for example, wind speed
+ and direction, temperature, cloud data, sea level pressure, and more.
+ Includes data from approximately 35,000 stations worldwide, though best
+ coverage is in North America/Europe/Australia. Data is stored as variable
+ length ASCII character strings, with most fields optional. Included are
+ tools for parsing entire files, or individual lines of data."""
homepage = "https://github.com/ropensci/isdparser"
url = "https://cloud.r-project.org/src/contrib/isdparser_0.3.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/isdparser"
+ version('0.4.0', sha256='6f609e8f5ae4ce2e7904401f289d60d219b8f3a2bec9f661d10afa18ab73b317')
version('0.3.0', sha256='6c9e1d7f3661802838010d659d7c77b964423dcc9a6623402df1fe3be627b7b9')
- depends_on('r-data-table@1.10.0:', type=('build', 'run'))
depends_on('r-tibble@1.2:', type=('build', 'run'))
+ depends_on('r-data-table@1.10.0:', type=('build', 'run'))
+ depends_on('r-lubridate', when='@0.4.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-islr/package.py b/var/spack/repos/builtin/packages/r-islr/package.py
new file mode 100644
index 0000000000..e5996a98f6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-islr/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RIslr(RPackage):
+ """ISLR: Data for an Introduction to Statistical Learning with Applications
+ in R
+
+ We provide the collection of data-sets used in the book 'An Introduction to
+ Statistical Learning with Applications in R'."""
+
+ homepage = "https://cloud.r-project.org/package=ISLR"
+ url = "https://cloud.r-project.org/src/contrib/ISLR_1.2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/ISLR"
+
+ version('1.2', sha256='b00f7a06d2fb646917e629cc2dbdab71c7de3eb17a8a4d06849901a299f1caad')
+
+ depends_on('r@2.10:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-iso/package.py b/var/spack/repos/builtin/packages/r-iso/package.py
index 4d7057b871..6283e0296e 100644
--- a/var/spack/repos/builtin/packages/r-iso/package.py
+++ b/var/spack/repos/builtin/packages/r-iso/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RIso(RPackage):
- """Linear order and unimodal order (univariate) isotonic regression;
+ """Functions to Perform Isotonic Regression
+
+ Linear order and unimodal order (univariate) isotonic regression;
bivariate isotonic regression with linear order on both variables."""
homepage = "https://cloud.r-project.org/package=Iso"
url = "https://cloud.r-project.org/src/contrib/Iso_0.0-17.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Iso"
+ version('0.0-18.1', sha256='2fa5f78a7603cbae94a5e38e791938596a053d48c609a7c120a19cbb7d93c66f')
version('0.0-18', sha256='2d7e8c4452653364ee086d95cea620c50378e30acfcff129b7261e1756a99504')
version('0.0-17', sha256='c007d6eaf6335a15c1912b0804276ff39abce27b7a61539a91b8fda653629252')
diff --git a/var/spack/repos/builtin/packages/r-isoband/package.py b/var/spack/repos/builtin/packages/r-isoband/package.py
new file mode 100644
index 0000000000..e8ed5f19e9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-isoband/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RIsoband(RPackage):
+ """Generate Isolines and Isobands from Regularly Spaced Elevation Grids
+
+ A fast C++ implementation to generate contour lines (isolines) and contour
+ polygons (isobands) from regularly spaced grids containing elevation
+ data."""
+
+ homepage = "https://github.com/wilkelab/isoband"
+ url = "https://cloud.r-project.org/src/contrib/isoband_0.2.3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/isoband"
+
+ version('0.2.3', sha256='f9d3318fdf6d147dc2e2c7015ea7de42a55fa33d6232b952f982df96066b7ffe')
+
+ depends_on('r-testthat', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-isva/package.py b/var/spack/repos/builtin/packages/r-isva/package.py
new file mode 100644
index 0000000000..eb39fb2cc1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-isva/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RIsva(RPackage):
+ """Independent Surrogate Variable Analysis:
+
+ Independent Surrogate Variable Analysis is an algorithm for feature
+ selection in the presence of potential confounding factors (see
+ Teschendorff AE et al 2011, <doi:10.1093/bioinformatics/btr171>)."""
+
+ cran = "isva"
+
+ version('1.9', sha256='9fd016e0b34034d271d45f8a0d0db62780bf0187112e45f610aa9237014e1d17')
+
+ depends_on('r-qvalue', type=('build', 'run'))
+ depends_on('r-fastica', type=('build', 'run'))
+ depends_on('r-jade', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-iterators/package.py b/var/spack/repos/builtin/packages/r-iterators/package.py
index 4d59c50faa..727e20a0ea 100644
--- a/var/spack/repos/builtin/packages/r-iterators/package.py
+++ b/var/spack/repos/builtin/packages/r-iterators/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RIterators(RPackage):
- """Support for iterators, which allow a programmer to traverse through all
+ """Provides Iterator Construct
+
+ Support for iterators, which allow a programmer to traverse through all
the elements of a vector, list, or other collection of data."""
homepage = "https://cloud.r-project.org/package=iterators"
url = "https://cloud.r-project.org/src/contrib/iterators_1.0.8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/iterators"
+ version('1.0.13', sha256='778e30e4c292da9f94d62acc637cf55273dae258199d847e62658f44840f11a4')
version('1.0.12', sha256='96bf31d60ebd23aefae105d9b7790715e63327eec0deb2ddfb3d543994ea9f4b')
version('1.0.9', sha256='de001e063805fdd124953b571ccb0ed2838c55e40cca2e9d283d8a90b0645e9b')
version('1.0.8', sha256='ae4ea23385776eb0c06c992a3da6b0256a6c84558c1061034c5a1fbdd43d05b8')
diff --git a/var/spack/repos/builtin/packages/r-jade/package.py b/var/spack/repos/builtin/packages/r-jade/package.py
new file mode 100644
index 0000000000..63bd525256
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-jade/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 RJade(RPackage):
+ """Blind Source Separation Methods Based on Joint Diagonalization and Some
+ BSS Performance Criteria:
+
+ Cardoso's JADE algorithm as well as his functions for joint diagonalization
+ are ported to R. Also several other blind source separation (BSS) methods,
+ like AMUSE and SOBI, and some criteria for performance evaluation of BSS
+ algorithms, are given. The package is described in Miettinen, Nordhausen
+ and Taskinen (2017) <doi:10.18637/jss.v076.i02>."""
+
+ cran = "JADE"
+
+ version('2.0-3', sha256='56d68a993fa16fc6dec758c843960eee840814c4ca2271e97681a9d2b9e242ba')
+
+ depends_on('r-clue', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-janitor/package.py b/var/spack/repos/builtin/packages/r-janitor/package.py
index 79c92f08d4..6166db41e0 100644
--- a/var/spack/repos/builtin/packages/r-janitor/package.py
+++ b/var/spack/repos/builtin/packages/r-janitor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,30 +7,38 @@ from spack import *
class RJanitor(RPackage):
- """The main janitor functions can: perfectly format data.frame column
- names; provide quick one- and two-variable tabulations (i.e., frequency
- tables and crosstabs); and isolate duplicate records. Other janitor
- functions nicely format the tabulation results. These
- tabulate-and-report functions approximate popular features of SPSS and
- Microsoft Excel. This package follows the principles of the "tidyverse"
- and works well with the pipe function %>%. janitor was built with
- beginning-to-intermediate R users in mind and is optimized for
- user-friendliness. Advanced R users can already do everything covered
- here, but with janitor they can do it faster and save their thinking
- for the fun stuff."""
+ """Simple Tools for Examining and Cleaning Dirty Data
+
+ The main janitor functions can: perfectly format data.frame column names;
+ provide quick one- and two-variable tabulations (i.e., frequency tables and
+ crosstabs); and isolate duplicate records. Other janitor functions nicely
+ format the tabulation results. These tabulate-and-report functions
+ approximate popular features of SPSS and Microsoft Excel. This package
+ follows the principles of the "tidyverse" and works well with the pipe
+ function %>%. janitor was built with beginning-to-intermediate R users in
+ mind and is optimized for user-friendliness. Advanced R users can already
+ do everything covered here, but with janitor they can do it faster and save
+ their thinking for the fun stuff."""
homepage = "https://github.com/sfirke/janitor"
url = "https://cloud.r-project.org/src/contrib/janitor_0.3.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/janitor"
+ version('2.1.0', sha256='d60615940fbe174f67799c8abc797f27928eca4ac180418527c5897a4aaad826')
version('1.2.0', sha256='5e15a2292c65c5ddd6160289dec2604b05a813651a2be0d7854ace4548a32b8c')
version('1.1.1', sha256='404b41f56e571fab4c95ef62e79cb4f3bb34d5bb6e4ea737e748ff269536176b')
version('0.3.0', sha256='5e4d8ef895ed9c7b8fa91aeb93e25c009366b4c5faaf3d02265f64b33d4a45f4')
depends_on('r@3.1.2:', type=('build', 'run'))
depends_on('r-dplyr@0.7.0:', type=('build', 'run'))
- depends_on('r-tidyr@0.7.0:', type=('build', 'run'))
+ depends_on('r-dplyr@1.0.0:', when='@2.1.0:', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@2.1.0:', type=('build', 'run'))
+ depends_on('r-lubridate', when='@2.1.0:', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
- depends_on('r-snakecase@0.9.2:', when='@1.1.0:', type=('build', 'run'))
depends_on('r-purrr', when='@1.1.0:', type=('build', 'run'))
depends_on('r-rlang', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-stringi', when='@2.1.0:', type=('build', 'run'))
+ depends_on('r-stringr', when='@2.1.0:', type=('build', 'run'))
+ depends_on('r-snakecase@0.9.2:', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-tidyselect@1.0.0:', when='@2.1.0:', type=('build', 'run'))
+ depends_on('r-tidyr@0.7.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-jaspar2018/package.py b/var/spack/repos/builtin/packages/r-jaspar2018/package.py
index 3edc15acc1..faf07ab8bc 100644
--- a/var/spack/repos/builtin/packages/r-jaspar2018/package.py
+++ b/var/spack/repos/builtin/packages/r-jaspar2018/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-jomo/package.py b/var/spack/repos/builtin/packages/r-jomo/package.py
index 5a3a40f09e..5b47657f7e 100644
--- a/var/spack/repos/builtin/packages/r-jomo/package.py
+++ b/var/spack/repos/builtin/packages/r-jomo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,20 @@ from spack import *
class RJomo(RPackage):
- """Similarly to Schafer's package 'pan', 'jomo' is a package for multilevel
+ """Multilevel Joint Modelling Multiple Imputation
+
+ Similarly to Schafer's package 'pan', 'jomo' is a package for multilevel
joint modelling multiple imputation (Carpenter and Kenward, 2013)
<doi:10.1002/9781119942283>. Novel aspects of 'jomo' are the possibility of
handling binary and categorical data through latent normal variables, the
option to use cluster-specific covariance matrices and to impute compatibly
- with the substantive model.
- """
+ with the substantive model."""
homepage = "https://cloud.r-project.org/package=jomo"
url = "https://cloud.r-project.org/src/contrib/jomo_2.6-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/jomo"
+ version('2.7-2', sha256='3962d5cbecc60e72670329dbef0dd74303080f5ea2a79c91e27f75db99ba6ce9')
version('2.6-9', sha256='b90f47071e62b8863b00b1ae710a56ae6efbfe2baeb9963f8a91a10d6183cc9b')
version('2.6-7', sha256='6e83dab51103511038a3e9a3c762e00cc45ae7080c0a0f64e37bcea8c488db53')
version('2.6-2', sha256='67496d6d69ddbe9a796789fd8b3ac32cada09a81cf5a8e7b925a21e085e2d87f')
diff --git a/var/spack/repos/builtin/packages/r-jpeg/package.py b/var/spack/repos/builtin/packages/r-jpeg/package.py
index 4e3d78e414..d26f331fec 100644
--- a/var/spack/repos/builtin/packages/r-jpeg/package.py
+++ b/var/spack/repos/builtin/packages/r-jpeg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class RJpeg(RPackage):
- """This package provides an easy and simple way to read, write and display
+ """Read and write JPEG images
+
+ This package provides an easy and simple way to read, write and display
bitmap images stored in the JPEG format. It can read and write both files
and in-memory raw vectors."""
- homepage = "http://www.rforge.net/jpeg/"
+ homepage = "https://www.rforge.net/jpeg/"
url = "https://cloud.r-project.org/src/contrib/jpeg_0.1-8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/jpeg"
+ version('0.1-8.1', sha256='1db0a4976fd9b2ae27a37d3e856cca35bc2909323c7a40724846a5d3c18915a9')
version('0.1-8', sha256='d032befeb3a414cefdbf70ba29a6c01541c54387cc0a1a98a4022d86cbe60a16')
depends_on('r@2.9.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-jsonlite/package.py b/var/spack/repos/builtin/packages/r-jsonlite/package.py
index 590134065a..b3a74af8e3 100644
--- a/var/spack/repos/builtin/packages/r-jsonlite/package.py
+++ b/var/spack/repos/builtin/packages/r-jsonlite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RJsonlite(RPackage):
- """A fast JSON parser and generator optimized for statistical data and the
+ """A Simple and Robust JSON Parser and Generator for R
+
+ A fast JSON parser and generator optimized for statistical data and the
web. Started out as a fork of 'RJSONIO', but has been completely rewritten
in recent versions. The package offers flexible, robust, high performance
tools for working with JSON in R and is particularly powerful for building
@@ -22,6 +24,7 @@ class RJsonlite(RPackage):
url = "https://cloud.r-project.org/src/contrib/jsonlite_1.5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/jsonlite"
+ version('1.7.2', sha256='06354b50435942f67ba264f79831e577809ef89e5f9a5a2201985396fe651fd2')
version('1.6.1', sha256='74921dd249857a23afabc1ad1485a63a48828e57f240f0619deb04c60f883377')
version('1.6', sha256='88c5b425229966b7409145a6cabc72db9ed04f8c37ee95901af0146bb285db53')
version('1.5', sha256='6490371082a387cb1834048ad8cdecacb8b6b6643751b50298c741490c798e02')
diff --git a/var/spack/repos/builtin/packages/r-kegg-db/package.py b/var/spack/repos/builtin/packages/r-kegg-db/package.py
index 693fcc7f27..4b3bf9695b 100644
--- a/var/spack/repos/builtin/packages/r-kegg-db/package.py
+++ b/var/spack/repos/builtin/packages/r-kegg-db/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,21 @@ from spack import *
class RKeggDb(RPackage):
- """A set of annotation maps for KEGG assembled using data from KEGG."""
+ """A set of annotation maps for KEGG
+
+ A set of annotation maps for KEGG assembled using data from KEGG."""
+
+ # NOTE: The KEGG.db package is deprecated
homepage = "https://www.bioconductor.org/packages/KEGG.db/"
url = "https://www.bioconductor.org/packages/release/data/annotation/src/contrib/KEGG.db_3.2.3.tar.gz"
- version('3.2.3', sha256='02ea4630a3ec06a8d9a6151627c96d3f71dfc7e8857800bb5c0cdb6a838d6963')
- depends_on('r-annotationdbi', type=('build', 'run'))
+ version('3.2.4',
+ sha256='2e60d1b664cbd1491cc00ed13a22904706c5a4651150f70daca04bf3ba9ead88',
+ url='https://bioconductor.org/packages/3.12/data/annotation/src/contrib/KEGG.db_3.2.4.tar.gz')
+ version('3.2.3',
+ sha256='02ea4630a3ec06a8d9a6151627c96d3f71dfc7e8857800bb5c0cdb6a838d6963',
+ url='https://bioconductor.org/packages/3.10/data/annotation/src/contrib/KEGG.db_3.2.3.tar.gz')
+
+ depends_on('r@2.7.0:', type=('build', 'run'))
+ depends_on('r-annotationdbi@1.34.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-kegggraph/package.py b/var/spack/repos/builtin/packages/r-kegggraph/package.py
index 9feefead29..21f7c27ed3 100644
--- a/var/spack/repos/builtin/packages/r-kegggraph/package.py
+++ b/var/spack/repos/builtin/packages/r-kegggraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RKegggraph(RPackage):
- """KEGGgraph: A graph approach to KEGG PATHWAY in R and Bioconductor.
+ """KEGGgraph: A graph approach to KEGG PATHWAY in R and Bioconductor
KEGGGraph is an interface between KEGG pathway and graph object as well
as a collection of tools to analyze, dissect and visualize these graphs.
@@ -19,6 +19,7 @@ class RKegggraph(RPackage):
homepage = "https://bioconductor.org/packages/KEGGgraph"
git = "https://git.bioconductor.org/packages/KEGGgraph.git"
+ version('1.50.0', commit='3335e85cdba264c04e6e36378578cf6c83a30eb8')
version('1.44.0', commit='2c24e8ec53fe34c72ea65f34e3c09905ab2e5c62')
version('1.42.0', commit='7d907e22a3ad7b4829a7cbaba5a8f8dc8013a609')
version('1.40.0', commit='6351a1637276f71697b01a994ebda0d3d1cf6d7a')
@@ -28,5 +29,4 @@ class RKegggraph(RPackage):
depends_on('r@2.10.0:', type=('build', 'run'))
depends_on('r-xml@2.3-0:', type=('build', 'run'))
depends_on('r-graph', type=('build', 'run'))
-
depends_on('r-rcurl', when='@1.44.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-keggrest/package.py b/var/spack/repos/builtin/packages/r-keggrest/package.py
index a422dfad36..d2ff44714b 100644
--- a/var/spack/repos/builtin/packages/r-keggrest/package.py
+++ b/var/spack/repos/builtin/packages/r-keggrest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RKeggrest(RPackage):
- """Client-side REST access to KEGG.
+ """Client-side REST access to KEGG
A package that provides a client interface to the KEGG REST server.
Based on KEGGSOAP by J. Zhang, R. Gentleman, and Marc Carlson, and KEGG
@@ -16,12 +16,14 @@ class RKeggrest(RPackage):
homepage = "https://bioconductor.org/packages/KEGGREST"
git = "https://git.bioconductor.org/packages/KEGGREST.git"
+ version('1.30.1', commit='fd9970ea9df117d625257b8c6351cf85098cfbc1')
version('1.24.1', commit='bbc3ef476e02147aad8e1f33178136cc797c1b3f')
version('1.22.0', commit='4374507376be811d29416d0cbbfd9115a50494d9')
version('1.20.2', commit='62b4519367841f3548536c117e7e2bfe3fa4bf72')
version('1.18.1', commit='580c126eabc3c52145967708f67a428ca46b23b2')
version('1.16.1', commit='ed48de0def57a909894e237fa4731c4a052d8849')
+ depends_on('r@3.5.0:', when='@1.30.1:', type=('build', 'run'))
depends_on('r-httr', type=('build', 'run'))
depends_on('r-png', type=('build', 'run'))
depends_on('r-biostrings', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-kernlab/package.py b/var/spack/repos/builtin/packages/r-kernlab/package.py
index 2c7ce6bad2..c798643950 100644
--- a/var/spack/repos/builtin/packages/r-kernlab/package.py
+++ b/var/spack/repos/builtin/packages/r-kernlab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RKernlab(RPackage):
- """Kernel-based machine learning methods for classification, regression,
+ """Kernel-Based Machine Learning Lab
+
+ Kernel-based machine learning methods for classification, regression,
clustering, novelty detection, quantile regression and dimensionality
reduction. Among other methods 'kernlab' includes Support Vector Machines,
Spectral Clustering, Kernel PCA, Gaussian Processes and a QP solver."""
@@ -16,6 +18,7 @@ class RKernlab(RPackage):
url = "https://cloud.r-project.org/src/contrib/kernlab_0.9-25.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/kernlab"
+ version('0.9-29', sha256='c3da693a0041dd34f869e7b63a8d8cf7d4bc588ac601bcdddcf7d44f68b3106f')
version('0.9-27', sha256='f6add50ed4097f04d09411491625f8d46eafc4f003b1c1cff78a6fff8cc31dd4')
version('0.9-26', sha256='954940478c6fcf60433e50e43cf10d70bcb0a809848ca8b9d683bf371cd56077')
version('0.9-25', sha256='b9de072754bb03c02c4d6a5ca20f2290fd090de328b55ab334ac0b397ac2ca62')
diff --git a/var/spack/repos/builtin/packages/r-kernsmooth/package.py b/var/spack/repos/builtin/packages/r-kernsmooth/package.py
index ecbf325df0..aaff9bd348 100644
--- a/var/spack/repos/builtin/packages/r-kernsmooth/package.py
+++ b/var/spack/repos/builtin/packages/r-kernsmooth/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,16 @@ from spack import *
class RKernsmooth(RPackage):
- """Functions for kernel smoothing (and density estimation)."""
+ """Functions for kernel smoothing (and density estimation)
+
+ Functions for kernel smoothing (and density estimation) corresponding to
+ the book: Wand, M.P. and Jones, M.C. (1995) "Kernel Smoothing"."""
homepage = "https://cloud.r-project.org/package=KernSmooth"
url = "https://cloud.r-project.org/src/contrib/KernSmooth_2.23-15.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/KernSmooth"
+ version('2.23-18', sha256='8334800c5ad2305539d2731b929ea34f50fa4269ba87277b699fd5be5b03c490')
version('2.23-15', sha256='8b72d23ed121a54af188b2cda4441e3ce2646359309885f6455b82c0275210f6')
depends_on('r@2.5.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-kknn/package.py b/var/spack/repos/builtin/packages/r-kknn/package.py
index 9aa4c0af14..5b1cbf30f0 100644
--- a/var/spack/repos/builtin/packages/r-kknn/package.py
+++ b/var/spack/repos/builtin/packages/r-kknn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-knitr/package.py b/var/spack/repos/builtin/packages/r-knitr/package.py
index c3af15f155..1ee8f556d9 100644
--- a/var/spack/repos/builtin/packages/r-knitr/package.py
+++ b/var/spack/repos/builtin/packages/r-knitr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,13 +8,16 @@ from spack import *
class RKnitr(RPackage):
- """Provides a general-purpose tool for dynamic report generation in R using
+ """A General-Purpose Package for Dynamic Report Generation in R
+
+ Provides a general-purpose tool for dynamic report generation in R using
Literate Programming techniques."""
- homepage = "https://cloud.r-project.org/package=knitr"
- url = "https://cloud.r-project.org/src/contrib/knitr_1.14.tar.gz"
- list_url = "https://cloud.r-project.org/src/contrib/Archive/knitr"
+ homepage = "https://yihui.org/knitr/"
+ cran = "knitr"
+ version('1.33', sha256='2f83332b0a880de6eae522271bda7f862c97693fba45c23ab1f772028f6c0909')
+ version('1.30', sha256='3aabb13566a234131ba18b78d690104f9468a982dc711f81344a985318c7c93e')
version('1.28', sha256='05ee01da31d715bf24793efb3e4ef3bb3101ef1e1ab2d760c645fc5b9d40232a')
version('1.24', sha256='e80c2043b445a7e576b62ae8510cce89322660fe388881d799a706d35cd27b89')
version('1.23', sha256='063bfb3300fc9f3e7d223c346e19b93beced0e6784470b9bef2524868a206a99')
@@ -26,10 +29,13 @@ class RKnitr(RPackage):
depends_on('r@3.1.0:', when='@1.15:1.22', type=('build', 'run'))
depends_on('r@3.2.3:', when='@1.23:', type=('build', 'run'))
depends_on('r-evaluate@0.10:', type=('build', 'run'))
- depends_on('r-digest@:1.17', when='@:1.24', type=('build', 'run'))
- depends_on('r-formatr@:1.14', when='@:1.24', type=('build', 'run'))
depends_on('r-highr', type=('build', 'run'))
- depends_on('r-stringr@0.6:', type=('build', 'run'))
depends_on('r-markdown', type=('build', 'run'))
+ depends_on('r-stringr@0.6:', type=('build', 'run'))
depends_on('r-yaml@2.1.19:', type=('build', 'run'))
depends_on('r-xfun', when='@1.23:', type=('build', 'run'))
+ depends_on('r-xfun@0.15:', when='@1.30', type=('build', 'run'))
+ depends_on('r-xfun@0.19:', when='@1.31', type=('build', 'run'))
+ depends_on('r-xfun@0.21:', when='@1.32:', type=('build', 'run'))
+ depends_on('r-digest', when='@:1.17', type=('build', 'run'))
+ depends_on('r-formatr', when='@:1.14', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-kpmt/package.py b/var/spack/repos/builtin/packages/r-kpmt/package.py
new file mode 100644
index 0000000000..da2d416ba6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-kpmt/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 RKpmt(RPackage):
+ """Known Population Median Test:
+
+ Functions that implement the known population median test."""
+
+ cran = "kpmt"
+
+ version('0.1.0', sha256='6342ad02c93bfa7a764d028821bb6115bb8bc8c55b057a5860736cc0e034a295')
+
+ depends_on('r@2.10:', type=('build', 'run'))
+ depends_on('r-matrixstats', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ks/package.py b/var/spack/repos/builtin/packages/r-ks/package.py
index 1fef11ef52..07a4324975 100644
--- a/var/spack/repos/builtin/packages/r-ks/package.py
+++ b/var/spack/repos/builtin/packages/r-ks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,18 @@ from spack import *
class RKs(RPackage):
- """Kernel smoothers for univariate and multivariate data."""
+ """Kernel Smoothing
+
+ Kernel smoothers for univariate and multivariate data, including densities,
+ density derivatives, cumulative distributions, clustering, classification,
+ density ridges, significant modal regions, and two-sample hypothesis tests.
+ Chacon & Duong (2018) <doi:10.1201/9780429485572>."""
homepage = "https://cloud.r-project.org/package=ks"
url = "https://cloud.r-project.org/src/contrib/ks_1.11.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ks"
+ version('1.11.7', sha256='6a6d9c2366e85a4c6af39b798f3798d20a42615ddfcebcedf6cf56087cdfd2b8')
version('1.11.5', sha256='4f65565376391b8a6dcce76168ef628fd4859dba8496910cbdd54e4f88e8d51b')
version('1.11.4', sha256='0beffaf8694819fba8c93af07a8782674a15fe00a04ad1d94d31238d0a41b134')
version('1.11.2', sha256='9dfd485096e1e67abc7dfcb7b76a83de110dd15bcfeffe5c899605b3a5592961')
@@ -20,9 +26,9 @@ class RKs(RPackage):
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-fnn@1.1:', type=('build', 'run'))
depends_on('r-kernlab', type=('build', 'run'))
- depends_on('r-mclust', type=('build', 'run'))
- depends_on('r-multicool', type=('build', 'run'))
- depends_on('r-mvtnorm@1.0:', type=('build', 'run'))
depends_on('r-kernsmooth@2.22:', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-mclust', type=('build', 'run'))
depends_on('r-mgcv', type=('build', 'run'))
+ depends_on('r-multicool', type=('build', 'run'))
+ depends_on('r-mvtnorm@1.0-0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-labeling/package.py b/var/spack/repos/builtin/packages/r-labeling/package.py
index f3b5a3c45c..5b598c519f 100644
--- a/var/spack/repos/builtin/packages/r-labeling/package.py
+++ b/var/spack/repos/builtin/packages/r-labeling/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,13 @@ from spack import *
class RLabeling(RPackage):
- """Provides a range of axis labeling algorithms."""
+ """Axis Labeling
+
+ Provides a range of axis labeling algorithms."""
homepage = "https://cloud.r-project.org/package=labeling"
url = "https://cloud.r-project.org/src/contrib/labeling_0.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/labeling"
+ version('0.4.2', sha256='e022d79276173e0d62bf9e37d7574db65ab439eb2ae1833e460b1cff529bd165')
version('0.3', sha256='0d8069eb48e91f6f6d6a9148f4e2dc5026cabead15dd15fc343eff9cf33f538f')
diff --git a/var/spack/repos/builtin/packages/r-labelled/package.py b/var/spack/repos/builtin/packages/r-labelled/package.py
new file mode 100644
index 0000000000..0ee6d63807
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-labelled/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RLabelled(RPackage):
+ """Work with labelled data imported from 'SPSS' or 'Stata' with 'haven' or
+ 'foreign'. This package provides useful functions to deal with
+ "haven_labelled" and "haven_labelled_spss" classes introduced by 'haven'
+ package."""
+
+ homepage = "https://cloud.r-project.org/package=labelled"
+ url = "https://cloud.r-project.org/src/contrib/labelled_2.7.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/labelled"
+
+ version('2.7.0', sha256='b1b66b34d3ad682e492fc5bb6431780760576d29dbac40d87bef3c0960054bdb')
+
+ depends_on('r-haven@2.3.1:', type=('build', 'run'))
+ depends_on('r-dplyr', type=('build', 'run'))
+ depends_on('r-lifecycle', type=('build', 'run'))
+ depends_on('r-rlang', type=('build', 'run'))
+ depends_on('r-vctrs', type=('build', 'run'))
+ depends_on('r-pillar', type=('build', 'run'))
+ depends_on('r-tidyr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lambda-r/package.py b/var/spack/repos/builtin/packages/r-lambda-r/package.py
index 1ea85260d1..0cd4c46a4c 100644
--- a/var/spack/repos/builtin/packages/r-lambda-r/package.py
+++ b/var/spack/repos/builtin/packages/r-lambda-r/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class RLambdaR(RPackage):
- """A language extension to efficiently write functional programs in R.
- Syntax extensions include multi-part function definitions, pattern
- matching, guard statements, built-in (optional) type safety."""
+ """Modeling Data with Functional Programming
+
+ A language extension to efficiently write functional programs in R. Syntax
+ extensions include multi-part function definitions, pattern matching, guard
+ statements, built-in (optional) type safety."""
homepage = "https://cloud.r-project.org/package=lambda.r"
url = "https://cloud.r-project.org/src/contrib/lambda.r_1.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/lambda.r"
+ version('1.2.4', sha256='d252fee39065326c6d9f45ad798076522cec05e73b8905c1b30f95a61f7801d6')
version('1.2.3', sha256='0cd8e37ba1a0960888016a85d492da51a57df54bd65ff920b08c79a3bfbe8631')
version('1.2', sha256='7dc4188ce1d4a6b026a1b128719ff60234ae1e3ffa583941bbcd8473ad18146f')
diff --git a/var/spack/repos/builtin/packages/r-laplacesdemon/package.py b/var/spack/repos/builtin/packages/r-laplacesdemon/package.py
index f11f635ac1..e2360e6c5e 100644
--- a/var/spack/repos/builtin/packages/r-laplacesdemon/package.py
+++ b/var/spack/repos/builtin/packages/r-laplacesdemon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class RLaplacesdemon(RPackage):
- """Provides a complete environment for Bayesian inference using a variety
- of different samplers (see ?LaplacesDemon for an overview). The README
- describes the history of the package development process."""
+ """Complete Environment for Bayesian Inference
+
+ Provides a complete environment for Bayesian inference using a variety of
+ different samplers (see ?LaplacesDemon for an overview). The README
+ describes the history of the package development process."""
homepage = "https://github.com/LaplacesDemonR/LaplacesDemon"
url = "https://cloud.r-project.org/src/contrib/LaplacesDemon_16.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/LaplacesDemon"
+ version('16.1.4', sha256='4152a1c3c652979e97870e5c50c45a243d0ad8d4ff968091160e3d66509f61db')
version('16.1.1', sha256='779ed1dbfed523a15701b4d5d891d4f1f11ab27518826a8a7725807d4c42bd77')
version('16.1.0', sha256='41d99261e8fc33c977b43ecf66ebed8ef1c84d9bd46b271609e9aadddc2ca8bb')
version('16.0.1', sha256='be21eff3c821b4fe0b4724f03c9221c2456257f93d91f864de11e95dc35e8679')
diff --git a/var/spack/repos/builtin/packages/r-lars/package.py b/var/spack/repos/builtin/packages/r-lars/package.py
index 1eddbea773..b28a4f655d 100644
--- a/var/spack/repos/builtin/packages/r-lars/package.py
+++ b/var/spack/repos/builtin/packages/r-lars/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-later/package.py b/var/spack/repos/builtin/packages/r-later/package.py
index cca8c10739..00dd51269b 100644
--- a/var/spack/repos/builtin/packages/r-later/package.py
+++ b/var/spack/repos/builtin/packages/r-later/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RLater(RPackage):
- """Executes arbitrary R or C functions some time after the current time,
+ """Utilities for Scheduling Functions to Execute Later with Event Loops
+
+ Executes arbitrary R or C functions some time after the current time,
after the R execution stack has emptied."""
homepage = "https://github.com/r-lib/later"
url = "https://cloud.r-project.org/src/contrib/later_0.8.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/later"
+ version('1.1.0.1', sha256='71baa7beae774a35a117e01d7b95698511c3cdc5eea36e29732ff1fe8f1436cd')
version('0.8.0', sha256='6b2a28b43c619b2c7890840c62145cd3a34a7ed65b31207fdedde52efb00e521')
depends_on('r-rcpp@0.12.9:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lattice/package.py b/var/spack/repos/builtin/packages/r-lattice/package.py
index 22110c6587..dbb0ce319d 100644
--- a/var/spack/repos/builtin/packages/r-lattice/package.py
+++ b/var/spack/repos/builtin/packages/r-lattice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,19 @@ from spack import *
class RLattice(RPackage):
- """A powerful and elegant high-level data visualization system inspired by
+ """Trellis Graphics for R
+
+ A powerful and elegant high-level data visualization system inspired by
Trellis graphics, with an emphasis on multivariate data. Lattice is
sufficient for typical graphics needs, and is also flexible enough to
handle most nonstandard requirements. See ?Lattice for an introduction."""
- homepage = "http://lattice.r-forge.r-project.org/"
+ homepage = "https://lattice.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/lattice_0.20-35.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/lattice"
+ version('0.20-44', sha256='57b908e3c7ada08a38ad857ee44f44fdf9cfa59d5d9500bda2ccc9c7e96cdb9b')
+ version('0.20-41', sha256='54ca557f0cb33df60eb10b883c2ed2847e061ddd57ed9b5dd7695149609d57b5')
version('0.20-38', sha256='fdeb5e3e50dbbd9d3c5e2fa3eef865132b3eef30fbe53a10c24c7b7dfe5c0a2d')
version('0.20-35', sha256='0829ab0f4dec55aac6a73bc3411af68441ddb1b5b078d680a7c2643abeaa965d')
version('0.20-34', sha256='4a1a1cafa9c6660fb9a433b3a51898b8ec8e83abf143c80f99e3e4cf92812518')
diff --git a/var/spack/repos/builtin/packages/r-latticeextra/package.py b/var/spack/repos/builtin/packages/r-latticeextra/package.py
index ae74ac2c9b..5a7f731156 100644
--- a/var/spack/repos/builtin/packages/r-latticeextra/package.py
+++ b/var/spack/repos/builtin/packages/r-latticeextra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,23 @@ from spack import *
class RLatticeextra(RPackage):
- """Building on the infrastructure provided by the lattice package,
+ """Extra Graphical Utilities Based on Lattice
+
+ Building on the infrastructure provided by the lattice package,
this package provides several new high-level functions and methods,
as well as additional utilities such as panel and axis annotation
functions."""
- homepage = "http://latticeextra.r-forge.r-project.org/"
+ homepage = "https://latticeextra.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/latticeExtra_0.6-28.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/latticeExtra"
+ version('0.6-29', sha256='6cadc31d56f73d926e2e8d72e43ae17ac03607a4d1a374719999a4a231e3df11')
version('0.6-28', sha256='780695323dfadac108fb27000011c734e2927b1e0f069f247d65d27994c67ec2')
depends_on('r@2.10.0:', type=('build', 'run'))
+ depends_on('r@3.6.0:', when='@0.6-29:', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
+ depends_on('r-png', when='@0.6-29:', type=('build', 'run'))
+ depends_on('r-jpeg', when='@0.6-29:', type=('build', 'run'))
depends_on('r-rcolorbrewer', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lava/package.py b/var/spack/repos/builtin/packages/r-lava/package.py
index 2a7a1d2271..81d87cb156 100644
--- a/var/spack/repos/builtin/packages/r-lava/package.py
+++ b/var/spack/repos/builtin/packages/r-lava/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,23 @@ from spack import *
class RLava(RPackage):
- """Estimation and simulation of latent variable models."""
+ """Latent Variable Models
+
+ A general implementation of Structural Equation Models with latent
+ variables (MLE, 2SLS, and composite likelihood estimators) with both
+ continuous, censored, and ordinal outcomes (Holst and Budtz-Joergensen
+ (2013) <doi:10.1007/s00180-012-0344-y>). Mixture latent variable models and
+ non-linear latent variable models (Holst and Budtz-Joergensen (2019)
+ <doi:10.1093/biostatistics/kxy082>). The package also provides methods for
+ graph exploration (d-separation, back-door criterion), simulation of
+ general non-linear latent variable models, and estimation of influence
+ functions for a broad range of statistical models."""
homepage = "https://cloud.r-project.org/package=lava"
url = "https://cloud.r-project.org/src/contrib/lava_1.4.7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/lava"
+ version('1.6.8.1', sha256='6d243fc86c67c78ff4763502d84ff2f0889c2e55d1a59afefb7a762887473ffa')
version('1.6.6', sha256='7abc84dd99cce450a45ac4f232812cde3a322e432da3472f43b057fb5c59ca59')
version('1.6.4', sha256='41c6eeb96eaef9e1bfb04b31f7203e250a5ea7e7860be4d95f7f96f2a8644718')
version('1.4.7', sha256='d5cbd4835a94855478efb93051eece965db116ead203f4dd4e09d9a12d52f4bf')
diff --git a/var/spack/repos/builtin/packages/r-lavaan/package.py b/var/spack/repos/builtin/packages/r-lavaan/package.py
new file mode 100644
index 0000000000..34c24fd3b8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-lavaan/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RLavaan(RPackage):
+ """Latent Variable Analysis:
+
+ Fit a variety of latent variable models, including confirmatory factor
+ analysis, structural equation modeling and latent growth curve models."""
+
+ homepage = "https://lavaan.ugent.be/"
+ cran = "lavaan"
+
+ version('0.6-8', sha256='40e204909100b7338619ae23cd87e0a4058e581c286da2327f36dbb3834b84a2')
+
+ depends_on('r@3.4:', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-mnormt', type=('build', 'run'))
+ depends_on('r-pbivnorm', type=('build', 'run'))
+ depends_on('r-numderiv', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lazyeval/package.py b/var/spack/repos/builtin/packages/r-lazyeval/package.py
index 7555a0890d..804907f7f5 100644
--- a/var/spack/repos/builtin/packages/r-lazyeval/package.py
+++ b/var/spack/repos/builtin/packages/r-lazyeval/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ldheatmap/package.py b/var/spack/repos/builtin/packages/r-ldheatmap/package.py
index df4d181882..4f6b2a554b 100644
--- a/var/spack/repos/builtin/packages/r-ldheatmap/package.py
+++ b/var/spack/repos/builtin/packages/r-ldheatmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,26 @@ from spack import *
class RLdheatmap(RPackage):
- """LDheatmap: Graphical Display of Pairwise Linkage Disequilibria Between
- SNPs"""
+ """Graphical Display of Pairwise Linkage Disequilibria Between SNPs
+
+ Produces a graphical display, as a heat map, of measures of pairwise
+ linkage disequilibria between single nucleotide polymorphisms (SNPs). Users
+ may optionally include the physical locations or genetic map distances of
+ each SNP on the plot. The methods are described in Shin et al. (2006)
+ <doi:10.18637/jss.v016.c03>. Users should note that the imported package
+ 'snpStats' and the suggested packages 'rtracklayer', 'GenomicRanges',
+ 'GenomInfoDb' and 'IRanges' are all BioConductor packages
+ <https://bioconductor.org>."""
homepage = "https://sfustatgen.github.io/LDheatmap/"
url = "https://cloud.r-project.org/src/contrib/LDheatmap_0.99-7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/LDheatmap"
+ version('1.0-4', sha256='07eb385f19e6a195e8e4d75be0b47c57744eabbf14045e527f0c27e1183ae5ca')
version('0.99-7', sha256='aca54c839a424506d8be7153bf03b32026aeefe7ed38f534e8e19708e34212e4')
depends_on('r@2.14.0:', type=('build', 'run'))
+ depends_on('r@4.0:', when='@1.0-4:', type=('build', 'run'))
depends_on('r-genetics', type=('build', 'run'))
- depends_on('r-rcpp', type=('build', 'run'))
depends_on('r-snpstats', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-leafem/package.py b/var/spack/repos/builtin/packages/r-leafem/package.py
new file mode 100644
index 0000000000..481a4dd957
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-leafem/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 RLeafem(RPackage):
+ """'leaflet' Extensions for 'mapview'
+
+ Provides extensions for packages 'leaflet' & 'mapdeck', many of which are
+ used by package 'mapview'. Focus is on functionality readily available in
+ Geographic Information Systems such as 'Quantum GIS'. Includes functions to
+ display coordinates of mouse pointer position, query image values via mouse
+ pointer and zoom-to-layer buttons. Additionally, provides a feature type
+ agnostic function to add points, lines, polygons to a map."""
+
+ homepage = "https://github.com/r-spatial/leafem"
+ cran = "leafem"
+
+ version('0.1.3', sha256='6f123fc15efadb85d317c01003e3b7af5dc925cffe0bbe774b1b39b6bd67f304')
+
+ depends_on('r@3.1.0:', type=('build', 'run'))
+ depends_on('r-base64enc', type=('build', 'run'))
+ depends_on('r-htmltools@0.3:', type=('build', 'run'))
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-leaflet@2.0.1:', type=('build', 'run'))
+ depends_on('r-raster', type=('build', 'run'))
+ depends_on('r-sf', type=('build', 'run'))
+ depends_on('r-png', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-leaflet-providers/package.py b/var/spack/repos/builtin/packages/r-leaflet-providers/package.py
new file mode 100644
index 0000000000..e806a4ed67
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-leaflet-providers/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 RLeafletProviders(RPackage):
+ """Leaflet Providers
+
+ Contains third-party map tile provider information from 'Leaflet.js',
+ <https://github.com/leaflet-extras/leaflet-providers>, to be used with the
+ 'leaflet' R package. Additionally, 'leaflet.providers' enables users to
+ retrieve up-to-date provider information between package updates."""
+
+ homepage = "https://github.com/rstudio/leaflet.providers"
+ url = "https://cloud.r-project.org/src/contrib/leaflet.providers_1.9.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/leaflet.providers"
+
+ version('1.9.0', sha256='9e8fc75c83313ab24663c2e718135459599549ed6e7396086cacb44e36cfd67b')
+
+ depends_on('r@2.10:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-leaflet/package.py b/var/spack/repos/builtin/packages/r-leaflet/package.py
index 0a8bcdf638..802948d693 100644
--- a/var/spack/repos/builtin/packages/r-leaflet/package.py
+++ b/var/spack/repos/builtin/packages/r-leaflet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class RLeaflet(RPackage):
- """Create and customize interactive maps using the 'Leaflet' JavaScript
+ """Create Interactive Web Maps with the JavaScript 'Leaflet' Library
+
+ Create and customize interactive maps using the 'Leaflet' JavaScript
library and the 'htmlwidgets' package. These maps can be used directly from
the R console, from 'RStudio', in Shiny apps and R Markdown documents."""
- homepage = "http://rstudio.github.io/leaflet/"
+ homepage = "https://rstudio.github.io/leaflet/"
url = "https://cloud.r-project.org/src/contrib/leaflet_1.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/leaflet"
+ version('2.0.4.1', sha256='b0f038295f1de5d32d9ffa1d0dbc1562320190f2f1365f3a5e95863fff88901f')
version('2.0.2', sha256='fa448d20940e01e953e0706fc5064b0fa347e69fa967792599eb03c52b2e3114')
version('2.0.1', sha256='9876d5adf3235ea5683db79ec2435d3997c626774e8c4ec4ef14022e24dfcf06')
version('1.0.1', sha256='f25a8e10c9616ccb5504bb874c533bc44fb7e438e073d4fe4484dee0951a9bc3')
@@ -32,3 +35,4 @@ class RLeaflet(RPackage):
depends_on('r-scales@1.0.0:', type=('build', 'run'))
depends_on('r-sp', type=('build', 'run'))
depends_on('r-viridis@0.5.1:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-leaflet-providers@1.8.0:', when='@2.0.4.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-leafpop/package.py b/var/spack/repos/builtin/packages/r-leafpop/package.py
new file mode 100644
index 0000000000..853de99735
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-leafpop/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 RLeafpop(RPackage):
+ """Include Tables, Images and Graphs in Leaflet Pop-Ups
+
+ Creates 'HTML' strings to embed tables, images or graphs in pop-ups of
+ interactive maps created with packages like 'leaflet' or 'mapview'. Handles
+ local images located on the file system or via remote URL. Handles graphs
+ created with 'lattice' or 'ggplot2' as well as interactive plots created
+ with 'htmlwidgets'."""
+
+ homepage = "https://github.com/r-spatial/leafpop"
+ cran = "leafpop"
+
+ version('0.0.6', sha256='3d9ca31d081ce8540a87790786840bde5f833543af608c53a26623c7874e722f')
+
+ depends_on('r-base64enc', type=('build', 'run'))
+ depends_on('r-brew', type=('build', 'run'))
+ depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-sf', type=('build', 'run'))
+ depends_on('r-svglite', type=('build', 'run'))
+ depends_on('r-uuid', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-leaps/package.py b/var/spack/repos/builtin/packages/r-leaps/package.py
index 9697c64cd3..e42a226656 100644
--- a/var/spack/repos/builtin/packages/r-leaps/package.py
+++ b/var/spack/repos/builtin/packages/r-leaps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,14 @@ from spack import *
class RLeaps(RPackage):
- """leaps: Regression Subset Selection"""
+ """Regression Subset Selection
+
+ Regression subset selection, including exhaustive search.
+ """
homepage = "https://cloud.r-project.org/package=leaps"
url = "https://cloud.r-project.org/src/contrib/leaps_3.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/leaps"
+ version('3.1', sha256='3d7c3a102ce68433ecf167ece96a7ebb4207729e4defd0ac8fc00e7003f5c3b6')
version('3.0', sha256='55a879cdad5a4c9bc3b5697dd4d364b3a094a49d8facb6692f5ce6af82adf285')
diff --git a/var/spack/repos/builtin/packages/r-learnbayes/package.py b/var/spack/repos/builtin/packages/r-learnbayes/package.py
index 542f02585e..a0da3a3998 100644
--- a/var/spack/repos/builtin/packages/r-learnbayes/package.py
+++ b/var/spack/repos/builtin/packages/r-learnbayes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-leiden/package.py b/var/spack/repos/builtin/packages/r-leiden/package.py
index caee6431bf..48012c4a08 100644
--- a/var/spack/repos/builtin/packages/r-leiden/package.py
+++ b/var/spack/repos/builtin/packages/r-leiden/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RLeiden(RPackage):
- """Implements the 'Python leidenalg' module to be called in R. Enables
+ """R Implementation of Leiden Clustering Algorithm
+
+ Implements the 'Python leidenalg' module to be called in R. Enables
clustering using the leiden algorithm for partition a graph into
communities. See the 'Python' repository for more details:
<https://github.com/vtraag/leidenalg> Traag et al (2018) From Louvain
@@ -18,6 +20,7 @@ class RLeiden(RPackage):
url = "https://cloud.r-project.org/src/contrib/leiden_0.3.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/leiden"
+ version('0.3.6', sha256='a7096e38c4010b1f0baf6a7e1139362520b44c0e548b0b79584cb827172822cc')
version('0.3.1', sha256='17fa1e49667fdd30ef5166506181c8514ae406f68f0878a026ee111bff11f8a5')
depends_on('r-reticulate', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lfe/package.py b/var/spack/repos/builtin/packages/r-lfe/package.py
index 08d061330d..34c0d756ae 100644
--- a/var/spack/repos/builtin/packages/r-lfe/package.py
+++ b/var/spack/repos/builtin/packages/r-lfe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,13 +6,25 @@
from spack import *
-class RLfe(AutotoolsPackage):
- """Transforms away factors with many levels prior to doing an OLS"""
+class RLfe(RPackage):
+ """Linear Group Fixed Effects
+
+ Transforms away factors with many levels prior to doing an OLS. Useful for
+ estimating linear models with multiple group fixed effects, and for
+ estimating linear models which uses factors with many levels as pure
+ control variables. See Gaure (2013) <doi:10.1016/j.csda.2013.03.024>
+ Includes support for instrumental variables, conditional F statistics for
+ weak instruments, robust and multi-way clustered standard errors, as well
+ as limited mobility bias correction (Gaure 2014 <doi:10.1002/sta4.68>).
+ WARNING: This package is NOT under active development anymore, no further
+ improvements are to be expected, and the package is at risk of being
+ removed from CRAN."""
homepage = "https://cloud.r-project.org/package=lfe"
url = "https://cloud.r-project.org/src/contrib/lfe_2.8-5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/lfe"
+ version('2.8-6', sha256='bf5fd362e9722e871a5236f30da562c489ae6506b667609b9465eefa8f101612')
version('2.8-5', sha256='fd80c573d334594db933ff38f67bd4c9f899aaf648c3bd68f19477a0059723c2')
version('2.8-4', sha256='ee5f6e312214aa73e285ae84a6bdf49ba10e830f1a68ffded2fea2e532f2cd6a')
diff --git a/var/spack/repos/builtin/packages/r-lhs/package.py b/var/spack/repos/builtin/packages/r-lhs/package.py
index ac3ff14dba..dbb209e70d 100644
--- a/var/spack/repos/builtin/packages/r-lhs/package.py
+++ b/var/spack/repos/builtin/packages/r-lhs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RLhs(RPackage):
- """Provides a number of methods for creating and augmenting Latin Hypercube
- Samples."""
+ """Latin Hypercube Samples
- homepage = "http://lhs.r-forge.r-project.org/"
+ Provides a number of methods for creating and augmenting Latin Hypercube
+ Samples."""
+
+ homepage = "https://lhs.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/lhs_0.16.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/lhs"
+ version('1.1.1', sha256='903e9f2adde87f6f9ad41dd52ff83d28a645dba69934c7535142cb48f10090dc')
version('1.0.1', sha256='a4d5ac0c6f585f2880364c867fa94e6554698beb65d3678ba5938dd84fc6ea53')
version('1.0', sha256='38c53482b360bdea89ddcfadf6d45476c80b99aee8902f97c5e97975903e2745')
version('0.16', sha256='9cd199c3b5b2be1736d585ef0fd39a00e31fc015a053333a7a319668d0809425')
diff --git a/var/spack/repos/builtin/packages/r-libcoin/package.py b/var/spack/repos/builtin/packages/r-libcoin/package.py
index 7fab441ea2..8022013f5c 100644
--- a/var/spack/repos/builtin/packages/r-libcoin/package.py
+++ b/var/spack/repos/builtin/packages/r-libcoin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,9 +7,11 @@ from spack import *
class RLibcoin(RPackage):
- """Basic infrastructure for linear test statistics and permutation
+ """Linear Test Statistics for Permutation Inference
+
+ Basic infrastructure for linear test statistics and permutation
inference in the framework of Strasser and Weber (1999)
- <http://epub.wu.ac.at/102/>. This package must not be used by end-users.
+ <https://epub.wu.ac.at/102/>. This package must not be used by end-users.
CRAN package 'coin' implements all user interfaces and is ready to be used
by anyone."""
@@ -17,6 +19,7 @@ class RLibcoin(RPackage):
url = "https://cloud.r-project.org/src/contrib/libcoin_1.0-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/libcoin"
+ version('1.0-6', sha256='48afc1415fc89b29e4f2c8b6f6db3cffef1531580e5c806ad7cacf4afe6a4e5a')
version('1.0-4', sha256='91dcbaa0ab8c2109aa54c3eda29ad0acd67c870efcda208e27acce9d641c09c5')
depends_on('r@3.4.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lifecycle/package.py b/var/spack/repos/builtin/packages/r-lifecycle/package.py
new file mode 100644
index 0000000000..32cf89d8cb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-lifecycle/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 RLifecycle(RPackage):
+ """Manage the Life Cycle of your Package Functions
+
+ Manage the life cycle of your exported functions with shared conventions,
+ documentation badges, and non-invasive deprecation warnings. The
+ 'lifecycle' package defines four development stages (experimental,
+ maturing, stable, and questioning) and three deprecation stages
+ (soft-deprecated, deprecated, and defunct). It makes it easy to insert
+ badges corresponding to these stages in your documentation. Usage of
+ deprecated functions are signalled with increasing levels of non-invasive
+ verbosity."""
+
+ homepage = "https://lifecycle.r-lib.org/"
+ url = "https://cloud.r-project.org/src/contrib/lifecycle_0.2.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/lifecycle"
+
+ version('0.2.0', sha256='29746e8dee05d4e36f9c612e8c7a903a4f648a36b3b94c9776e518c38a412224')
+
+ depends_on('r@3.2:', type=('build', 'run'))
+ depends_on('r-glue', type=('build', 'run'))
+ depends_on('r-rlang@0.4.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-limma/package.py b/var/spack/repos/builtin/packages/r-limma/package.py
index fcefd3ec67..f0fe8822f4 100644
--- a/var/spack/repos/builtin/packages/r-limma/package.py
+++ b/var/spack/repos/builtin/packages/r-limma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RLimma(RPackage):
- """Linear Models for Microarray Data.
+ """Linear Models for Microarray Data
Data analysis, linear models and differential expression for microarray
data."""
@@ -15,6 +15,7 @@ class RLimma(RPackage):
homepage = "https://bioconductor.org/packages/limma"
git = "https://git.bioconductor.org/packages/limma.git"
+ version('3.46.0', commit='ff03542231827f39ebde6464cdbba0110e24364e')
version('3.40.6', commit='3ae0767ecf7a764030e7b7d0b1d0f292c0b24055')
version('3.38.3', commit='77b292eb150cdedaa1db704bcfb01f0bb29e9849')
version('3.36.5', commit='3148d1cb7eea9c6bdd60351d51abcfd665332d44')
@@ -22,5 +23,4 @@ class RLimma(RPackage):
version('3.32.10', commit='593edf28e21fe054d64137ae271b8a52ab05bc60')
depends_on('r@2.3.0:', type=('build', 'run'))
-
depends_on('r@3.6.0:', when='@3.40.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-limsolve/package.py b/var/spack/repos/builtin/packages/r-limsolve/package.py
new file mode 100644
index 0000000000..f7b6208dd0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-limsolve/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 RLimsolve(RPackage):
+ """Solving Linear Inverse Models
+
+ Functions that (1) find the minimum/maximum of a linear or quadratic
+ function: min or max (f(x)), where f(x) = ||Ax-b||^2 or f(x) = sum(a_i*x_i)
+ subject to equality constraints Ex=f and/or inequality constraints Gx>=h,
+ (2) sample an underdetermined- or overdetermined system Ex=f subject to
+ Gx>=h, and if applicable Ax~=b, (3) solve a linear system Ax=B for the
+ unknown x. It includes banded and tridiagonal linear systems."""
+
+ homepage = "https://cloud.r-project.org/package=limSolve"
+ url = "https://cloud.r-project.org/src/contrib/limSolve_1.5.6.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/limSolve"
+
+ version('1.5.6', sha256='b97ea9930383634c8112cdbc42f71c4e93fe0e7bfaa8f401921835cb44cb49a0')
+
+ depends_on('r@2.10:', type=('build', 'run'))
+ depends_on('r-quadprog', type=('build', 'run'))
+ depends_on('r-lpsolve', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-listenv/package.py b/var/spack/repos/builtin/packages/r-listenv/package.py
index 962fc1bf6a..f69f469521 100644
--- a/var/spack/repos/builtin/packages/r-listenv/package.py
+++ b/var/spack/repos/builtin/packages/r-listenv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RListenv(RPackage):
- """List environments are environments that have list-like properties. For
+ """Environments Behaving (Almost) as Lists
+
+ List environments are environments that have list-like properties. For
instance, the elements of a list environment are ordered and can be
accessed and iterated over using index subsetting."""
@@ -15,6 +17,7 @@ class RListenv(RPackage):
url = "https://cloud.r-project.org/src/contrib/listenv_0.7.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/listenv"
+ version('0.8.0', sha256='fd2aaf3ff2d8d546ce33d1cb38e68401613975117c1f9eb98a7b41facf5c485f')
version('0.7.0', sha256='6126020b111870baea08b36afa82777cd578e88c17db5435cd137f11b3964555')
depends_on('r@3.1.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lme4/package.py b/var/spack/repos/builtin/packages/r-lme4/package.py
index 32fd1565c0..fbc0f2a726 100644
--- a/var/spack/repos/builtin/packages/r-lme4/package.py
+++ b/var/spack/repos/builtin/packages/r-lme4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RLme4(RPackage):
- """Fit linear and generalized linear mixed-effects models. The models and
+ """Linear Mixed-Effects Models using 'Eigen' and S4
+
+ Fit linear and generalized linear mixed-effects models. The models and
their components are represented using S4 classes and methods. The core
computational algorithms are implemented using the 'Eigen' C++ library for
numerical linear algebra and 'RcppEigen' "glue"."""
@@ -16,6 +18,8 @@ class RLme4(RPackage):
url = "https://cloud.r-project.org/src/contrib/lme4_1.1-12.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/lme4"
+ version('1.1-27', sha256='fe0391c76c78188ac1eefb18014d0607212c909b55474d985a919b55efe5a15f')
+ version('1.1-26', sha256='364b6d6fb0a574dfed2d75cfdc79411aa53e2c1dd625b70bb1d25d026f9e4253')
version('1.1-21', sha256='7f5554b69ff8ce9bac21e8842131ea940fb7a7dfa2de03684f236d3e3114b20c')
version('1.1-20', sha256='44f45f5cd20ec6a50bf96a939b1db44b1a180dbc871a5e3042baf7a107016b2c')
version('1.1-12', sha256='2976b567a4a2144814ff9db987b0aa55c16122c78ecb51b9e09b87fe66a1c048')
@@ -25,9 +29,10 @@ class RLme4(RPackage):
depends_on('r-matrix@1.2-1:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
+ depends_on('r-boot', when='@1.1-21:', type=('build', 'run'))
depends_on('r-nlme@3.1-123:', type=('build', 'run'))
depends_on('r-minqa@1.1.15:', type=('build', 'run'))
depends_on('r-nloptr@1.0.4:', type=('build', 'run'))
+ depends_on('r-statmod', when='@1.1-26:', type=('build', 'run'))
depends_on('r-rcpp@0.10.5:', type=('build', 'run'))
depends_on('r-rcppeigen', type=('build', 'run'))
- depends_on('r-boot', when='@1.1-21:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lmertest/package.py b/var/spack/repos/builtin/packages/r-lmertest/package.py
new file mode 100644
index 0000000000..ea07fdbf59
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-lmertest/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 RLmertest(RPackage):
+ """Tests in Linear Mixed Effects Models
+
+ Provides p-values in type I, II or III anova and summary tables for lmer
+ model fits (cf. lme4) via Satterthwaite's degrees of freedom method. A
+ Kenward-Roger method is also available via the pbkrtest package. Model
+ selection methods include step, drop1 and anova-like tables for random
+ effects (ranova). Methods for Least-Square means (LS-means) and tests of
+ linear contrasts of fixed effects are also available.
+ """
+
+ homepage = "https://github.com/runehaubo/lmerTestR"
+ cran = "lmerTest"
+
+ version('3.1-3', sha256='35aa75e9f5f2871398ff56a482b013e6828135ef04916ced7d1d7e35257ea8fd')
+
+ depends_on('r@3.2.5:', type=('build', 'run'))
+ depends_on('r-lme4@1.1-10:', type=('build', 'run'))
+ depends_on('r-numderiv', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lmtest/package.py b/var/spack/repos/builtin/packages/r-lmtest/package.py
index 29bda06982..b55afed4de 100644
--- a/var/spack/repos/builtin/packages/r-lmtest/package.py
+++ b/var/spack/repos/builtin/packages/r-lmtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RLmtest(RPackage):
- """A collection of tests, data sets, and examples for diagnostic checking
+ """Testing Linear Regression Models
+
+ A collection of tests, data sets, and examples for diagnostic checking
in linear regression models. Furthermore, some generic tools for inference
in parametric models are provided."""
@@ -15,6 +17,7 @@ class RLmtest(RPackage):
url = "https://cloud.r-project.org/src/contrib/lmtest_0.9-34.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/lmtest"
+ version('0.9-38', sha256='32a22cea45398ffc5732d9f5c0391431d0cdd3a9e29cc7b77bea32c1eb4a216b')
version('0.9-37', sha256='ddc929f94bf055974832fa4a20fdd0c1eb3a84ee11f716c287936f2141d5ca0a')
version('0.9-36', sha256='be9f168d6554e9cd2be0f9d8fc3244f055dce90d1fca00f05bcbd01daa4ed56b')
version('0.9-34', sha256='86eead67ed6d6c6be3fbee97d5ce45e6ca06a981f974ce01a7754a9e33770d2e')
diff --git a/var/spack/repos/builtin/packages/r-lobstr/package.py b/var/spack/repos/builtin/packages/r-lobstr/package.py
new file mode 100644
index 0000000000..11631adf5f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-lobstr/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RLobstr(RPackage):
+ """A set of tools for inspecting and understanding R data structures
+ inspired by str(). Includes ast() for visualizing abstract syntax trees,
+ ref() for showing shared references, cst() for showing call stack trees,
+ and obj_size() for computing object sizes."""
+
+ homepage = "https://lobstr.r-lib.org"
+ url = "https://cloud.r-project.org/src/contrib/lobstr_1.1.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/lobstr"
+
+ version('1.1.1', sha256='923a384d9239d44b63dfc57f5a0309a1e59b9698ef05183f598f6f4fffb1e0fd')
+ version('1.0.1', sha256='f94d0a207f1b44097907d761c45130be386e908aec4ac472bf2fec6d36c74a69')
+ version('1.0.0', sha256='b9d5dcda36a1c1bd208ddf814f9b5a9c2c8b07730647b98505be7e296b14c883')
+
+ depends_on('r-rlang@0.3.0:', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-crayon', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-locfit/package.py b/var/spack/repos/builtin/packages/r-locfit/package.py
index 1e9b23f275..e1d0518687 100644
--- a/var/spack/repos/builtin/packages/r-locfit/package.py
+++ b/var/spack/repos/builtin/packages/r-locfit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,19 @@ from spack import *
class RLocfit(RPackage):
- """Local regression, likelihood and density estimation."""
+ """Local regression, likelihood and density estimation
+
+ Local regression, likelihood and density estimation methods as described in
+ the 1999 book by Loader.
+ """
homepage = "https://cloud.r-project.org/package=locfit"
url = "https://cloud.r-project.org/src/contrib/locfit_1.5-9.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/locfit"
+ version('1.5-9.4', sha256='d9d3665c5f3d49f698fb4675daf40a0550601e86db3dc00f296413ceb1099ced')
version('1.5-9.1', sha256='f524148fdb29aac3a178618f88718d3d4ac91283014091aa11a01f1c70cd4e51')
depends_on('r@2.0.1:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@1.5-9.4:', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-log4r/package.py b/var/spack/repos/builtin/packages/r-log4r/package.py
index 194b9c0c71..7937cb223f 100644
--- a/var/spack/repos/builtin/packages/r-log4r/package.py
+++ b/var/spack/repos/builtin/packages/r-log4r/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,15 @@ from spack import *
class RLog4r(RPackage):
- """logr4 provides an object-oriented logging system that uses an
+ """A Fast and Lightweight Logging System for R, Based on 'log4j'
+
+ logr4 provides an object-oriented logging system that uses an
API roughly equivalent to log4j and its related variants."""
homepage = "https://cloud.r-project.org/package=log4r"
url = "https://cloud.r-project.org/src/contrib/log4r_0.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/log4r"
+ version('0.3.2', sha256='14ba6b096283279f0accbde26a600771ab2df271db6c8eeb04d6f113107825a3')
version('0.3.0', sha256='8e5d0221298410e48bee9d9a983a23e1834ce88592f9d931471bfdb05f37a691')
version('0.2', sha256='321bee6babb92376b538624027a36e7d2a6c8edb360aa38ab0a6762dfea9081f')
diff --git a/var/spack/repos/builtin/packages/r-loo/package.py b/var/spack/repos/builtin/packages/r-loo/package.py
index 9bbef0ee79..dd5fb9c4e6 100644
--- a/var/spack/repos/builtin/packages/r-loo/package.py
+++ b/var/spack/repos/builtin/packages/r-loo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,28 @@ from spack import *
class RLoo(RPackage):
- """loo: Efficient Leave-One-Out Cross-Validation and WAIC for
- BayesianModels"""
+ """Efficient Leave-One-Out Cross-Validation and WAIC for BayesianModels
+
+ Efficient approximate leave-one-out cross-validation (LOO) for Bayesian
+ models fit using Markov chain Monte Carlo, as described in Vehtari,
+ Gelman, and Gabry (2017) <doi:10.1007/s11222-016-9696-4>. The
+ approximation uses Pareto smoothed importance sampling (PSIS), a new
+ procedure for regularizing importance weights. As a byproduct of the
+ calculations, we also obtain approximate standard errors for estimated
+ predictive errors and for the comparison of predictive errors between
+ models. The package also provides methods for using stacking and other
+ model weighting techniques to average Bayesian predictive
+ distributions."""
homepage = "https://mc-stan.org/loo"
url = "https://cloud.r-project.org/src/contrib/loo_2.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/loo"
+ version('2.4.1', sha256='bc21fb6b4a93a7e95ee1be57e4e787d731895fb8b4743c26b30b43adee475b50')
+ version('2.3.1', sha256='d98de21b71d9d9386131ae5ba4da051362c3ad39e0305af4f33d830f299ae08b')
version('2.1.0', sha256='1bf4a1ef85d151577ff96d4cf2a29c9ef24370b0b1eb08c70dcf45884350e87d')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@3.1.2:', type=('build', 'run'))
depends_on('r-checkmate', type=('build', 'run'))
depends_on('r-matrixstats@0.52:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lpsolve/package.py b/var/spack/repos/builtin/packages/r-lpsolve/package.py
index ec40ba1553..df8da2622e 100644
--- a/var/spack/repos/builtin/packages/r-lpsolve/package.py
+++ b/var/spack/repos/builtin/packages/r-lpsolve/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,19 @@ from spack import *
class RLpsolve(RPackage):
- """Lp_solve is freely available (under LGPL 2) software for solving
- linear, integer and mixed integer programs. In this
- implementation we supply a "wrapper" function in C and some R
- functions that solve general linear/integer problems, assignment
- problems, and transportation problems. This version calls
- lp_solve"""
+ """Interface to 'Lp_solve' v. 5.5 to Solve Linear/Integer Programs
+
+ Lp_solve is freely available (under LGPL 2) software for solving linear,
+ integer and mixed integer programs. In this implementation we supply a
+ "wrapper" function in C and some R functions that solve general
+ linear/integer problems, assignment problems, and transportation problems.
+ This version calls lp_solve"""
homepage = "https://cloud.r-project.org/package=lpSolve"
url = "https://cloud.r-project.org/src/contrib/lpSolve_5.6.13.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/lpSolve"
+ version('5.6.15', sha256='4627be4178abad34fc85a7d264c2eb5e27506f007e46687b0b8a4f8fbdf4f3ba')
version('5.6.13.2', sha256='75f0c0af5cbdc219ac29c792342ecd625903632ad86e581c408879958aa88539')
version('5.6.13.1', sha256='6ad8dc430f72a4698fc4a615bb5ecb73690b3c4520e84d9094af51a528f720b8')
version('5.6.13', sha256='d5d41c53212dead4fd8e6425a9d3c5767cdc5feb19d768a4704116d791cf498d')
diff --git a/var/spack/repos/builtin/packages/r-lsei/package.py b/var/spack/repos/builtin/packages/r-lsei/package.py
index 0b69b60b3e..83660f47d1 100644
--- a/var/spack/repos/builtin/packages/r-lsei/package.py
+++ b/var/spack/repos/builtin/packages/r-lsei/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,18 @@ from spack import *
class RLsei(RPackage):
- """It contains functions that solve least squares linear regression
- problems under linear equality/inequality constraints. Functions for
- solving quadratic programming problems are also available, which
- transform such problems into least squares ones first. It is developed
- based on the 'Fortran' program of Lawson and Hanson (1974, 1995), which
- is public domain and available at
- <http://www.netlib.org/lawson-hanson>."""
+ """Solving Least Squares or Quadratic Programming Problems under Equality/Inequality Constraints
+
+ It contains functions that solve least squares linear regression problems
+ under linear equality/inequality constraints. Functions for solving
+ quadratic programming problems are also available, which transform such
+ problems into least squares ones first. It is developed based on the
+ 'Fortran' program of Lawson and Hanson (1974, 1995), which is public domain
+ and available at <http://www.netlib.org/lawson-hanson>."""
homepage = "https://cloud.r-project.org/package=lsei"
url = "https://cloud.r-project.org/src/contrib/lsei_1.2-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/lsei"
+ version('1.3-0', sha256='6289058f652989ca8a5ad6fa324ce1762cc9e36c42559c00929b70f762066ab6')
version('1.2-0', sha256='4781ebd9ef93880260d5d5f23066580ac06061e95c1048fb25e4e838963380f6')
diff --git a/var/spack/repos/builtin/packages/r-lubridate/package.py b/var/spack/repos/builtin/packages/r-lubridate/package.py
index 3fb1f2ddd2..621945e1fb 100644
--- a/var/spack/repos/builtin/packages/r-lubridate/package.py
+++ b/var/spack/repos/builtin/packages/r-lubridate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RLubridate(RPackage):
- """Functions to work with date-times and timespans: fast and user friendly
+ """Make Dealing with Dates a Little Easier
+
+ Functions to work with date-times and timespans: fast and user friendly
parsing of date-time data, extraction and updating of components of a
date-time (years, months, days, hours, minutes, and seconds), algebraic
manipulation on date-time and timespan objects. The 'lubridate' package has
@@ -18,11 +20,14 @@ class RLubridate(RPackage):
url = "https://cloud.r-project.org/src/contrib/lubridate_1.7.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/lubridate"
+ version('1.7.9.2', sha256='ee6a2d68faca51646477acd1898ba774bf2b6fd474a0abf351b16aa5e7a3db79')
version('1.7.4', sha256='510ca87bd91631c395655ee5029b291e948b33df09e56f6be5839f43e3104891')
version('1.7.3', sha256='2cffbf54afce1d068e65241fb876a77b10ee907d5a19d2ffa84d5ba8a2c3f3df')
version('1.7.1', sha256='898c3f482ab8f5e5b415eecd13d1238769c88faed19b63fcb074ffe5ff57fb5f')
version('1.5.6', sha256='9b1627ba3212e132ce2b9a29d7513e250cc682ab9b4069f6788a22e84bf8d2c4')
depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r@3.2:', when='@1.7.9.2:', type=('build', 'run'))
+ depends_on('r-generics', when='@1.7.9.2:', type=('build', 'run'))
depends_on('r-rcpp@0.12.13:', type=('build', 'run'))
- depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-stringr', when='@:1.7.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lumi/package.py b/var/spack/repos/builtin/packages/r-lumi/package.py
index d79de8d662..d12eb1de9a 100644
--- a/var/spack/repos/builtin/packages/r-lumi/package.py
+++ b/var/spack/repos/builtin/packages/r-lumi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,10 @@ from spack import *
class RLumi(RPackage):
- """The lumi package provides an integrated solution for the Illumina
+ """BeadArray Specific Methods for Illumina Methylation and Expression
+ Microarrays
+
+ The lumi package provides an integrated solution for the Illumina
microarray data analysis. It includes functions of Illumina BeadStudio
(GenomeStudio) data input, quality control, BeadArray-specific variance
stabilization, normalization and gene annotation at the probe level. It
@@ -17,6 +20,7 @@ class RLumi(RPackage):
homepage = "https://bioconductor.org/packages/release/bioc/html/lumi.html"
git = "https://git.bioconductor.org/packages/lumi"
+ version('2.42.0', commit='a643b3ba46fee951b8566ddd8216af7e6c92f6f6')
version('2.38.0', commit='321d480d44ce9a0c02ce5af1bddc1f549abdea59')
depends_on('r@2.10:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lwgeom/package.py b/var/spack/repos/builtin/packages/r-lwgeom/package.py
new file mode 100644
index 0000000000..bca2bf2298
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-lwgeom/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RLwgeom(RPackage):
+ """Bindings to Selected 'liblwgeom' Functions for Simple Features
+
+ Access to selected functions found in 'liblwgeom'
+ <https://github.com/postgis/postgis/tree/master/liblwgeom>, the
+ light-weight geometry library used by 'PostGIS' <https://postgis.net/>."""
+
+ homepage = "https://github.com/r-spatial/lwgeom/"
+ cran = "lwgeom"
+
+ version('0.2-5', sha256='4a1d93f96c10c2aac173d8186cf7d7bef7febcb3cf066a7f45da32251496d02f')
+
+ depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-units', type=('build', 'run'))
+ depends_on('r-sf@0.9-3:', type=('build', 'run'))
+ depends_on('geos@3.5.0:')
+ depends_on('proj@4.8.0:6.999')
diff --git a/var/spack/repos/builtin/packages/r-magic/package.py b/var/spack/repos/builtin/packages/r-magic/package.py
index 58d39c239f..1f98d82853 100644
--- a/var/spack/repos/builtin/packages/r-magic/package.py
+++ b/var/spack/repos/builtin/packages/r-magic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-magick/package.py b/var/spack/repos/builtin/packages/r-magick/package.py
index 7c314ad081..5488cb463f 100644
--- a/var/spack/repos/builtin/packages/r-magick/package.py
+++ b/var/spack/repos/builtin/packages/r-magick/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RMagick(RPackage):
- """Bindings to 'ImageMagick': the most comprehensive open-source image
+ """Advanced Graphics and Image-Processing in R
+
+ Bindings to 'ImageMagick': the most comprehensive open-source image
processing library available. Supports many common formats (png, jpeg,
tiff, pdf, etc) and manipulations (rotate, scale, crop, trim, flip, blur,
etc). All operations are vectorized via the Magick++ STL meaning they
@@ -22,8 +24,10 @@ class RMagick(RPackage):
url = "https://cloud.r-project.org/src/contrib/magick_2.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/magick"
+ version('2.6.0', sha256='66585336e3ff18793ae9e2726af67a6672622f270468670ab5fe5e013bc48ecc')
version('2.1', sha256='ef4fb8fc1c5a9cfcc36b22485a0e17d622f61e55803b1e7423fd15f0550de7df')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r-rcpp@0.12.12:', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-curl', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-magrittr/package.py b/var/spack/repos/builtin/packages/r-magrittr/package.py
index 1e3c697da9..a0d2f4fecc 100644
--- a/var/spack/repos/builtin/packages/r-magrittr/package.py
+++ b/var/spack/repos/builtin/packages/r-magrittr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RMagrittr(RPackage):
- """Provides a mechanism for chaining commands with a new forward-pipe
+ """A Forward-Pipe Operator for R
+
+ Provides a mechanism for chaining commands with a new forward-pipe
operator, %>%. This operator will forward a value, or the result of an
expression, into the next function call/expression. There is flexible
support for the type of right-hand side expressions. For more information,
@@ -17,4 +19,5 @@ class RMagrittr(RPackage):
url = "https://cloud.r-project.org/src/contrib/magrittr_1.5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/magrittr"
+ version('2.0.1', sha256='75c265d51cc2b34beb27040edb09823c7b954d3990a7a931e40690b75d4aad5f')
version('1.5', sha256='05c45943ada9443134caa0ab24db4a962b629f00b755ccf039a2a2a7b2c92ae8')
diff --git a/var/spack/repos/builtin/packages/r-makecdfenv/package.py b/var/spack/repos/builtin/packages/r-makecdfenv/package.py
index 8687d61be7..1d3b968b8c 100644
--- a/var/spack/repos/builtin/packages/r-makecdfenv/package.py
+++ b/var/spack/repos/builtin/packages/r-makecdfenv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RMakecdfenv(RPackage):
- """CDF Environment Maker.
+ """CDF Environment Maker
This package has two functions. One reads a Affymetrix chip description
file (CDF) and creates a hash table environment containing the
@@ -17,6 +17,7 @@ class RMakecdfenv(RPackage):
homepage = "https://bioconductor.org/packages/makecdfenv"
git = "https://git.bioconductor.org/packages/makecdfenv.git"
+ version('1.66.0', commit='02aa975d543089f5495cb3b4e8edbcf0ff05148a')
version('1.60.0', commit='900ece3ecd7a0ade9f8a0374e5a03def4e079cb3')
version('1.58.0', commit='6f513e39c4920a6da10d22718fc3bf278fe5ffe2')
version('1.56.0', commit='f6b48e9a9f18598653d05bc0bdffeae7fefbb327')
diff --git a/var/spack/repos/builtin/packages/r-maldiquant/package.py b/var/spack/repos/builtin/packages/r-maldiquant/package.py
index c032ea5d3b..3175d8f362 100644
--- a/var/spack/repos/builtin/packages/r-maldiquant/package.py
+++ b/var/spack/repos/builtin/packages/r-maldiquant/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-manipulatewidget/package.py b/var/spack/repos/builtin/packages/r-manipulatewidget/package.py
index 225688abae..1d64cd2566 100644
--- a/var/spack/repos/builtin/packages/r-manipulatewidget/package.py
+++ b/var/spack/repos/builtin/packages/r-manipulatewidget/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,18 @@ from spack import *
class RManipulatewidget(RPackage):
- """Like package 'manipulate' does for static graphics, this package helps
- to easily add controls like sliders, pickers, checkboxes, etc. that can
- be used to modify the input data or the parameters of an interactive
- chart created with package 'htmlwidgets'."""
+ """Add Even More Interactivity to Interactive Charts
+
+ Like package 'manipulate' does for static graphics, this package helps to
+ easily add controls like sliders, pickers, checkboxes, etc. that can be
+ used to modify the input data or the parameters of an interactive chart
+ created with package 'htmlwidgets'."""
homepage = "https://github.com/rte-antares-rpackage/manipulateWidget"
url = "https://cloud.r-project.org/src/contrib/manipulateWidget_0.10.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/manipulateWidget/"
+ version('0.10.1', sha256='9d621192121f6b516bc7f1a18305995bfb7838c6683ac701422afc03a50e27ee')
version('0.10.0', sha256='3d61a3d0cedf5c8a850a3e62ed6af38c600dc3f25b44c4ff07a5093bf9ca4ffd')
version('0.9.0', sha256='5bf4bdb702263b0e156f40f3354922a06db7db544e497addcd6c98d9860bf3a3')
version('0.8.0', sha256='e7e6351b1fb8f39b9895e2536fa7c149cbc5d63d7022f67c1b25232cf0706ca7')
@@ -25,11 +28,12 @@ class RManipulatewidget(RPackage):
version('0.5.0', sha256='2599e25f78bb0d748705160e1dfe62a673f5bb388ac5f415f3d649d2511737c8')
version('0.4.0', sha256='65cc7d28c2b2efc81fda35da019ac6e6058580cf0fdf5e31458cc96386c0c599')
- depends_on('r-base64enc', type=('build', 'run'))
- depends_on('r-codetools', type=('build', 'run'))
+ depends_on('r+X', type=('build', 'run'))
+ depends_on('r-shiny@1.0.3:', type=('build', 'run'))
+ depends_on('r-miniui', type=('build', 'run'))
depends_on('r-htmltools', type=('build', 'run'))
depends_on('r-htmlwidgets', type=('build', 'run'))
depends_on('r-knitr', type=('build', 'run'))
- depends_on('r-miniui', type=('build', 'run'))
- depends_on('r-shiny@1.0.3:', type=('build', 'run'))
+ depends_on('r-base64enc', type=('build', 'run'))
+ depends_on('r-codetools', type=('build', 'run'))
depends_on('r-webshot', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mapplots/package.py b/var/spack/repos/builtin/packages/r-mapplots/package.py
index 4417d0ed14..e9e188c074 100644
--- a/var/spack/repos/builtin/packages/r-mapplots/package.py
+++ b/var/spack/repos/builtin/packages/r-mapplots/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-mapproj/package.py b/var/spack/repos/builtin/packages/r-mapproj/package.py
index 095f251306..d0213bf791 100644
--- a/var/spack/repos/builtin/packages/r-mapproj/package.py
+++ b/var/spack/repos/builtin/packages/r-mapproj/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,18 @@ from spack import *
class RMapproj(RPackage):
- """Converts latitude/longitude into projected coordinates."""
+ """Map Projections
+
+ Converts latitude/longitude into projected coordinates."""
homepage = "https://cloud.r-project.org/package=mapproj"
url = "https://cloud.r-project.org/src/contrib/mapproj_1.2-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mapproj"
+ version('1.2.7', sha256='f0081281b08bf3cc7052c4f1360d6d3c20d9063be57754448ad9b48ab0d34c5b')
version('1.2.6', sha256='62a5aa97837ae95ef9f973d95fe45fe43dbbf482dfa922e9df60f3c510e7efe5')
version('1.2-5', sha256='f3026a3a69a550c923b44c18b1ccc60d98e52670a438250d13f3c74cf2195f66')
version('1.2-4', sha256='cf8a1535f57e7cca0a71b3a551e77ad3e7a78f61a94bb19effd3de19dbe7dceb')
depends_on('r@3.0.0:', type=('build', 'run'))
- depends_on('r-maps@2.3:', type=('build', 'run'))
+ depends_on('r-maps@2.3-0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-maps/package.py b/var/spack/repos/builtin/packages/r-maps/package.py
index 2f8132ded3..bdd81fa51b 100644
--- a/var/spack/repos/builtin/packages/r-maps/package.py
+++ b/var/spack/repos/builtin/packages/r-maps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-maptools/package.py b/var/spack/repos/builtin/packages/r-maptools/package.py
index e9c930e3e4..e5f16b9748 100644
--- a/var/spack/repos/builtin/packages/r-maptools/package.py
+++ b/var/spack/repos/builtin/packages/r-maptools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,19 @@ from spack import *
class RMaptools(RPackage):
- """Set of tools for manipulating and reading geographic data, in particular
+ """Tools for Handling Spatial Objects
+
+ Set of tools for manipulating and reading geographic data, in particular
ESRI shapefiles; C code used from shapelib. It includes binary access to
GSHHG shoreline files. The package also provides interface wrappers for
exchanging spatial objects with packages such as PBSmapping, spatstat,
maps, RArcInfo, Stata tmap, WinBUGS, Mondrian, and others."""
- homepage = "http://r-forge.r-project.org/projects/maptools/"
+ homepage = "https://r-forge.r-project.org/projects/maptools/"
url = "https://cloud.r-project.org/src/contrib/maptools_0.8-39.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/maptools"
+ version('1.0-2', sha256='daac6da5817cf0cff17b9e7d4a7cdc7c329574249bd9b1bafdb6c9431e1fee49')
version('0.9-5', sha256='5d9511f09fb49d57a51f28495b02239800596a4fcfad7b03ee1074d793657bdd')
version('0.9-4', sha256='930875f598a516f0f9049fa2fae7391bc9bdf7e3e5db696059ab4ec2fc9ba39c')
version('0.8-39', sha256='4b81e313e45dbb75e0fbb180b02985d1c34aaa5669e483283b632788e6a67dd2')
diff --git a/var/spack/repos/builtin/packages/r-mapview/package.py b/var/spack/repos/builtin/packages/r-mapview/package.py
new file mode 100644
index 0000000000..1faff97e73
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mapview/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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 RMapview(RPackage):
+ """Interactive Viewing of Spatial Data in R
+
+ Quickly and conveniently create interactive visualisations of spatial data
+ with or without background maps. Attributes of displayed features are fully
+ queryable via pop-up windows. Additional functionality includes methods to
+ visualise true- and false-color raster images and bounding boxes."""
+
+ homepage = "https://github.com/r-spatial/mapview"
+ cran = "mapview"
+
+ version('2.9.0', sha256='170cb2b5e67cbeb177f87bd2eab1ecabc44a1042addbcd95a85b2ec4a00eb690')
+
+ depends_on('r+X', type=('build', 'run'))
+ depends_on('r@3.6.0:', type=('build', 'run'))
+ depends_on('r-base64enc', type=('build', 'run'))
+ depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-htmlwidgets', type=('build', 'run'))
+ depends_on('r-lattice', type=('build', 'run'))
+ depends_on('r-leafem', type=('build', 'run'))
+ depends_on('r-leaflet@2.0.0:', type=('build', 'run'))
+ depends_on('r-leafpop', type=('build', 'run'))
+ depends_on('r-png', type=('build', 'run'))
+ depends_on('r-raster', type=('build', 'run'))
+ depends_on('r-satellite', type=('build', 'run'))
+ depends_on('r-scales@0.2.5:', type=('build', 'run'))
+ depends_on('r-sf', type=('build', 'run'))
+ depends_on('r-sp', type=('build', 'run'))
+ depends_on('r-webshot', type=('build', 'run'))
+ depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-markdown/package.py b/var/spack/repos/builtin/packages/r-markdown/package.py
index ad966e7486..6168bb7e35 100644
--- a/var/spack/repos/builtin/packages/r-markdown/package.py
+++ b/var/spack/repos/builtin/packages/r-markdown/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class RMarkdown(RPackage):
"""Provides R bindings to the 'Sundown' 'Markdown' rendering library
(https://github.com/vmg/sundown). 'Markdown' is a plain-text formatting
syntax that can be converted to 'XHTML' or other formats. See
- http://en.wikipedia.org/wiki/Markdown for more information about
+ https://en.wikipedia.org/wiki/Markdown for more information about
'Markdown'."""
homepage = "https://cloud.r-project.org/package=markdown"
diff --git a/var/spack/repos/builtin/packages/r-marray/package.py b/var/spack/repos/builtin/packages/r-marray/package.py
new file mode 100644
index 0000000000..5151052c19
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-marray/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 RMarray(RPackage):
+ """Exploratory analysis for two-color spotted microarray data:
+
+ Class definitions for two-color spotted microarray data. Fuctions for data
+ input, diagnostic plots, normalization and quality checking."""
+
+ homepage = "https://www.maths.usyd.edu.au/u/jeany/"
+ bioc = "marray"
+
+ version('1.68.0', commit='67b3080486abdba7dd19fccd7fb731b0e8b5b3f9')
+
+ depends_on('r@2.10.0:', type=('build', 'run'))
+ depends_on('r-limma', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mass/package.py b/var/spack/repos/builtin/packages/r-mass/package.py
index 96cac84566..ffaac924f7 100644
--- a/var/spack/repos/builtin/packages/r-mass/package.py
+++ b/var/spack/repos/builtin/packages/r-mass/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,17 @@ from spack import *
class RMass(RPackage):
- """Functions and datasets to support Venables and Ripley, "Modern Applied
+ """Support Functions and Datasets for Venables and Ripley's MASS
+
+ Functions and datasets to support Venables and Ripley, "Modern Applied
Statistics with S" (4th edition, 2002)."""
homepage = "https://cloud.r-project.org/package=MASS"
url = "https://cloud.r-project.org/src/contrib/MASS_7.3-47.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/MASS"
+ version('7.3-54', sha256='b800ccd5b5c2709b1559cf5eab126e4935c4f8826cf7891253432bb6a056e821')
+ version('7.3-53', sha256='41824e70ada302a620226c0f17b1b2c880c6d1a3a100b53bd6df8e8c97e64b38')
version('7.3-51.5', sha256='464c0615cef01820cde2bb8457e81575d6755ae9b3ac99f3bfaaac47d43d15cc')
version('7.3-51.4', sha256='844270a2541eaed420871dfb61d681aa67ee57126645fb6b144b436c25698eeb')
version('7.3-51.3', sha256='5b0e0e7704d43a94b08dcc4b3fe600b9723d1b3e446dd393e82d39ddf66608b6')
diff --git a/var/spack/repos/builtin/packages/r-mathjaxr/package.py b/var/spack/repos/builtin/packages/r-mathjaxr/package.py
new file mode 100644
index 0000000000..455a3ef32c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mathjaxr/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 RMathjaxr(RPackage):
+ """Using 'Mathjax' in Rd Files
+
+ Provides 'MathJax' and macros to enable its use within Rd files for
+ rendering equations in the HTML help files."""
+
+ homepage = "https://github.com/wviechtb/mathjaxr"
+ url = "https://cloud.r-project.org/src/contrib/mathjaxr_1.0-1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/mathjaxr"
+
+ version('1.0-1', sha256='0d3d370c4d0c7c7c6d5541d4e0ae50170b4084ca8a66e8a43bd92c7d1c112148')
diff --git a/var/spack/repos/builtin/packages/r-matlab/package.py b/var/spack/repos/builtin/packages/r-matlab/package.py
index 221f5f7b31..86e2f5bffc 100644
--- a/var/spack/repos/builtin/packages/r-matlab/package.py
+++ b/var/spack/repos/builtin/packages/r-matlab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-matr/package.py b/var/spack/repos/builtin/packages/r-matr/package.py
index ad8bc3370a..3516e1b901 100644
--- a/var/spack/repos/builtin/packages/r-matr/package.py
+++ b/var/spack/repos/builtin/packages/r-matr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-matrix/package.py b/var/spack/repos/builtin/packages/r-matrix/package.py
index 07140d08ec..172e0687d9 100644
--- a/var/spack/repos/builtin/packages/r-matrix/package.py
+++ b/var/spack/repos/builtin/packages/r-matrix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,19 +7,26 @@ from spack import *
class RMatrix(RPackage):
- """Classes and methods for dense and sparse matrices and operations on them
- using 'LAPACK' and 'SuiteSparse'."""
+ """Sparse and Dense Matrix Classes and Methods
- homepage = "http://matrix.r-forge.r-project.org/"
+ A rich hierarchy of matrix classes, including triangular, symmetric, and
+ diagonal matrices, both dense and sparse and with pattern, logical and
+ numeric entries. Numerous methods for and operations on these matrices,
+ using 'LAPACK' and 'SuiteSparse' libraries."""
+
+ homepage = "https://matrix.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/Matrix_1.2-14.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Matrix"
+ version('1.3-3', sha256='f77ec8de43ae7bfa19dfdc7e76bfefbb21b3223dbc174423fcde70b44cf36a3b')
+ version('1.3-2', sha256='950ba5d91018e711fd2743b3486a50dc47ae9c271389fce587792f0a9aab9531')
version('1.2-17', sha256='db43e6f0196fd5dfd05a7e88cac193877352c60d771d4ec8772763e645723fcc')
version('1.2-14', sha256='49a6403547b66675cb44c1afb04bb87130c054510cb2b94971435a826ab41396')
version('1.2-11', sha256='ba8cd6565612552fe397e909721817b6cc0604a91299d56d118208006888dc0b')
version('1.2-8', sha256='3cd2a187c45fc18a0766dc148b7f83dbf6f2163c256e887c41cbaa7c9a20dbb7')
version('1.2-6', sha256='4b49b639b7bf612fa3d1c1b1c68125ec7859c8cdadae0c13f499f24099fd5f20')
- depends_on('r@3.0.1:', when='@:1.2-12', type=('build', 'run'))
+ depends_on('r@3.0.1:', type=('build', 'run'))
depends_on('r@3.2.0:', when='@1.2.13:', type=('build', 'run'))
+ depends_on('r@3.6.0:', when='@1.3-2:', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-matrixgenerics/package.py b/var/spack/repos/builtin/packages/r-matrixgenerics/package.py
new file mode 100644
index 0000000000..daf207f782
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-matrixgenerics/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RMatrixgenerics(RPackage):
+ """S4 Generic Summary Statistic Functions that Operate on Matrix-Like Objects
+
+ S4 generic functions modeled after the 'matrixStats' API for alternative
+ matrix implementations. Packages with alternative matrix implementation can
+ depend on this package and implement the generic functions that are defined
+ here for a useful set of row and column summary statistics. Other package
+ developers can import this package and handle a different matrix
+ implementations without worrying about incompatibilities."""
+
+ homepage = "https://bioconductor.org/packages/MatrixGenerics"
+ git = "https://git.bioconductor.org/packages/MatrixGenerics"
+
+ version('1.2.1', commit='abcc9ca0504e0b915cd7933a3169a8e9e5bd2fe9')
+
+ depends_on('r-matrixstats@0.57.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-matrixmodels/package.py b/var/spack/repos/builtin/packages/r-matrixmodels/package.py
index 98de8f80c3..431855d701 100644
--- a/var/spack/repos/builtin/packages/r-matrixmodels/package.py
+++ b/var/spack/repos/builtin/packages/r-matrixmodels/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class RMatrixmodels(RPackage):
"""Modelling with sparse and dense 'Matrix' matrices, using modular
prediction and response module classes."""
- homepage = "http://matrix.r-forge.r-project.org/"
+ homepage = "https://matrix.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/MatrixModels_0.4-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/MatrixModels"
diff --git a/var/spack/repos/builtin/packages/r-matrixstats/package.py b/var/spack/repos/builtin/packages/r-matrixstats/package.py
index 9bebc7ad9d..8559edd0f4 100644
--- a/var/spack/repos/builtin/packages/r-matrixstats/package.py
+++ b/var/spack/repos/builtin/packages/r-matrixstats/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,20 @@ from spack import *
class RMatrixstats(RPackage):
- """High-performing functions operating on rows and columns of matrices,
- e.g. col / rowMedians(), col / rowRanks(), and col / rowSds(). Functions
- optimized per data type and for subsetted calculations such that both
- memory usage and processing time is minimized. There are also optimized
- vector-based methods, e.g. binMeans(), madDiff() and
- weightedMedian()."""
+ """Functions that Apply to Rows and Columns of Matrices (and to Vectors)
+
+ High-performing functions operating on rows and columns of matrices, e.g.
+ col / rowMedians(), col / rowRanks(), and col / rowSds(). Functions
+ optimized per data type and for subsetted calculations such that both
+ memory usage and processing time is minimized. There are also optimized
+ vector-based methods, e.g. binMeans(), madDiff() and weightedMedian()."""
homepage = "https://cloud.r-project.org/package=matrixStats"
url = "https://cloud.r-project.org/src/contrib/matrixStats_0.52.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/matrixStats"
+ version('0.58.0', sha256='8367b4b98cd24b6e40022cb2b11e907aa0bcf5ee5b2f89fefb186f53661f4b49')
+ version('0.57.0', sha256='f9681887cd3b121762c83f55f189cae26cb8443efce91fcd212ac714fde9f343')
version('0.55.0', sha256='16d6bd90eee4cee8df4c15687de0f9b72730c03e56603c2998007d4533e8db19')
version('0.54.0', sha256='8f0db4e181300a208b9aedbebfdf522a2626e6675d2662656efb8ba71b05a06f')
version('0.52.2', sha256='39da6aa6b109f89a141dab8913d981abc4fbd3f8be9e206f92e382cc5270d2a5')
diff --git a/var/spack/repos/builtin/packages/r-mclust/package.py b/var/spack/repos/builtin/packages/r-mclust/package.py
index f0936a9e82..de7a31732d 100644
--- a/var/spack/repos/builtin/packages/r-mclust/package.py
+++ b/var/spack/repos/builtin/packages/r-mclust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,19 @@ from spack import *
class RMclust(RPackage):
- """mclust: Gaussian Mixture Modelling for Model-Based Clustering,
- Classification, and Density Estimation"""
+ """Gaussian Mixture Modelling for Model-Based Clustering, Classification,
+ and Density Estimation
+
+ Gaussian finite mixture models fitted via EM algorithm for model-based
+ clustering, classification, and density estimation, including Bayesian
+ regularization, dimension reduction for visualisation, and resampling-based
+ inference."""
homepage = "http://www.stat.washington.edu/mclust"
url = "https://cloud.r-project.org/src/contrib/mclust_5.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mclust"
+ version('5.4.7', sha256='45f5a666caee5bebd3160922b8655295a25e37f624741f6574365e4ac5a14c23')
version('5.4.5', sha256='75f2963082669485953e4306ffa93db98335ee6afdc1318b95d605d56cb30a72')
version('5.4.4', sha256='ccc31b0ad445e121a447b04988e73232a085c506fcc7ebdf11a3e0754aae3e0d')
version('5.3', sha256='2b1b6d8266ae16b0e96f118df81559f208a568744a7c105af9f9abf1eef6ba40')
diff --git a/var/spack/repos/builtin/packages/r-mcmc/package.py b/var/spack/repos/builtin/packages/r-mcmc/package.py
new file mode 100644
index 0000000000..0eabfc1491
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mcmc/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RMcmc(RPackage):
+ """Markov Chain Monte Carlo:
+
+ Simulates continuous distributions of random vectors using Markov chain
+ Monte Carlo (MCMC). Users specify the distribution by an R function that
+ evaluates the log unnormalized density. Algorithms are random walk
+ Metropolis algorithm (function metrop), simulated tempering (function
+ temper), and morphometric random walk Metropolis (Johnson and Geyer, 2012,
+ <doi:10.1214/12-AOS1048>, function morph.metrop), which achieves geometric
+ ergodicity by change of variable."""
+
+ homepage = "https://www.stat.umn.edu/geyer/mcmc/"
+ cran = "mcmc"
+
+ version('0.9-7', sha256='b7c4d3d5f9364c67a4a3cd49296a61c315ad9bd49324a22deccbacb314aa8260')
+
+ depends_on('r@3.0.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mcmcglmm/package.py b/var/spack/repos/builtin/packages/r-mcmcglmm/package.py
index 52f8104b40..7ac91659d0 100644
--- a/var/spack/repos/builtin/packages/r-mcmcglmm/package.py
+++ b/var/spack/repos/builtin/packages/r-mcmcglmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,16 @@ from spack import *
class RMcmcglmm(RPackage):
- """MCMC Generalised Linear Mixed Models."""
+ """MCMC Generalised Linear Mixed Models
+
+ Fits Multi-response Generalised Linear Mixed Models (and related models)
+ using Markov chain Monte Carlo techniques."""
homepage = "https://cloud.r-project.org/package=MCMCglmm"
url = "https://cloud.r-project.org/src/contrib/MCMCglmm_2.25.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/MCMCglmm"
+ version('2.30', sha256='714250fe6ebdd1bd3dc284f7fcb92326de1273b0c34d31e71dc825312527e042')
version('2.29', sha256='13ba7837ea2049e892c04e7ec5c83d5b599a7e4820b9d875f55ec40fc2cc67b4')
version('2.28', sha256='7d92e6d35638e5e060a590b92c3b1bfc02a11386276a8ab99bceec5d797bfc2a')
version('2.25', sha256='3072316bf5c66f6db5447cb488395ff019f6c47122813467384474f340643133')
diff --git a/var/spack/repos/builtin/packages/r-mcmcpack/package.py b/var/spack/repos/builtin/packages/r-mcmcpack/package.py
new file mode 100644
index 0000000000..08377fdcd5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mcmcpack/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 RMcmcpack(RPackage):
+ """Markov Chain Monte Carlo (MCMC) Package:
+
+ Contains functions to perform Bayesian inference using posterior simulation
+ for a number of statistical models. Most simulation is done in compiled C++
+ written in the Scythe Statistical Library Version 1.0.3. All models return
+ 'coda' mcmc objects that can then be summarized using the 'coda' package.
+ Some useful utility functions such as density functions, pseudo-random
+ number generators for statistical distributions, a general purpose
+ Metropolis sampling algorithm, and tools for visualization are provided."""
+
+ homepage = "https://cran.r-project.org/package=MCMCpack"
+ cran = "MCMCpack"
+
+ version('1.5-0', sha256='795ffd3d62bf14d3ecb3f5307bd329cd75798cf4b270ff0e768bc71a35de0ace')
+
+ depends_on('r@3.6:', type=('build', 'run'))
+ depends_on('r-coda@0.11-3:', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-lattice', type=('build', 'run'))
+ depends_on('r-mcmc', type=('build', 'run'))
+ depends_on('r-quantreg', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mco/package.py b/var/spack/repos/builtin/packages/r-mco/package.py
index ec591cd8e6..4e20993e58 100644
--- a/var/spack/repos/builtin/packages/r-mco/package.py
+++ b/var/spack/repos/builtin/packages/r-mco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,17 @@ from spack import *
class RMco(RPackage):
- """Functions for multiple criteria optimization using genetic algorithms
- and related test problems"""
+ """Multiple Criteria Optimization Algorithms and Related Functions
+
+ A collection of function to solve multiple criteria optimization problems
+ using genetic algorithms (NSGA-II). Also included is a collection of test
+ functions."""
homepage = "https://github.com/cran/mco"
url = "https://cloud.r-project.org/src/contrib/mco_1.0-15.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mco"
+ version('1.15.6', sha256='17ebe279cb9c89b7cd8054ac50d3b657d2b10dadbc584b88da7e79c3a9680582')
version('1.0-15.1', sha256='3c13ebc8c1f1bfa18f3f95b3998c57fde5259876e92456b6c6d4c59bef07c193')
version('1.0-15', sha256='a25e3effbb6dcae735fdbd6c0bfc775e9fbbcc00dc00076b69c53fe250627055')
diff --git a/var/spack/repos/builtin/packages/r-mda/package.py b/var/spack/repos/builtin/packages/r-mda/package.py
index 16dd70ee59..2e48f789df 100644
--- a/var/spack/repos/builtin/packages/r-mda/package.py
+++ b/var/spack/repos/builtin/packages/r-mda/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,19 @@ from spack import *
class RMda(RPackage):
- """Mixture and flexible discriminant analysis, multivariate adaptive
+ """Mixture and Flexible Discriminant Analysis
+
+ Mixture and flexible discriminant analysis, multivariate adaptive
regression splines (MARS), BRUTO."""
homepage = "https://cloud.r-project.org/package=mda"
url = "https://cloud.r-project.org/src/contrib/mda_0.4-9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mda"
+ version('0.5-2', sha256='344f2053215ddf535d1554b4539e9b09067dac878887cc3eb995cef421fc00c3')
version('0.4-10', sha256='7036bc622a8fea5b2de94fc19e6b64f5f0c27e5d743ae7646e116af08c9de6a5')
version('0.4-9', sha256='b72456d2fa5b49895644489735d21cf4836d3d597f5e693e6103cce1887ffd85')
depends_on('r@1.9.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@0.5-2:', type=('build', 'run'))
depends_on('r-class', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-memoise/package.py b/var/spack/repos/builtin/packages/r-memoise/package.py
index 3587dfdbfa..e68ab324de 100644
--- a/var/spack/repos/builtin/packages/r-memoise/package.py
+++ b/var/spack/repos/builtin/packages/r-memoise/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-memuse/package.py b/var/spack/repos/builtin/packages/r-memuse/package.py
new file mode 100644
index 0000000000..dfe78642c7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-memuse/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RMemuse(RPackage):
+ """Memory Estimation Utilities
+
+ How much ram do you need to store a 100,000 by 100,000 matrix? How much
+ ram is your current R session using? How much ram do you even have?
+ Learn the scintillating answer to these and many more such questions
+ with the 'memuse' package."""
+
+ homepage = "https://github.com/shinra-dev/memuse"
+ cran = "memuse"
+
+ maintainers = ['dorton21']
+
+ version('4.1-0', sha256='58d6d1ca5d6bd481f4ed299eff6a9d5660eb0f8db1abe54c49e144093cba72ad')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mergemaid/package.py b/var/spack/repos/builtin/packages/r-mergemaid/package.py
index 5d02468dcb..ef5368edee 100644
--- a/var/spack/repos/builtin/packages/r-mergemaid/package.py
+++ b/var/spack/repos/builtin/packages/r-mergemaid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-metap/package.py b/var/spack/repos/builtin/packages/r-metap/package.py
index c910da734e..3401447b9a 100644
--- a/var/spack/repos/builtin/packages/r-metap/package.py
+++ b/var/spack/repos/builtin/packages/r-metap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RMetap(RPackage):
- """The canonical way to perform meta-analysis involves using effect sizes.
+ """Meta-Analysis of Significance Values
+
+ The canonical way to perform meta-analysis involves using effect sizes.
When they are not available this package provides a number of methods for
meta-analysis of significance values including the methods of Edgington,
Fisher, Lancaster, Stouffer, Tippett, and Wilkinson; a number of data-sets
@@ -17,7 +19,12 @@ class RMetap(RPackage):
url = "https://cloud.r-project.org/src/contrib/metap_1.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/metap"
+ version('1.4', sha256='5fac23d823d0ad4eebc3f97620364e25f7b41f8d0c3579f6c09ec059940b85a5')
version('1.1', sha256='20120428672d39dc15829c7e66850fc4350a34df290d48cef0b1cc78d13f7b82')
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-rdpack', type=('build', 'run'))
+ depends_on('r-rdpack@0.7:', when='@1.4:', type=('build', 'run'))
+ depends_on('r-tfisher', when='@1.4:', type=('build', 'run'))
+ depends_on('r-mutoss', when='@1.4:', type=('build', 'run'))
+ depends_on('r-mathjaxr@0.8-3:', when='@1.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-methylumi/package.py b/var/spack/repos/builtin/packages/r-methylumi/package.py
index 55f9f42a96..9f01e66279 100644
--- a/var/spack/repos/builtin/packages/r-methylumi/package.py
+++ b/var/spack/repos/builtin/packages/r-methylumi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RMethylumi(RPackage):
- """This package provides classes for holding and manipulating Illumina
+ """Handle Illumina methylation data
+
+ This package provides classes for holding and manipulating Illumina
methylation data. Based on eSet, it can contain MIAME information, sample
information, feature information, and multiple matrices of data. An
"intelligent" import function, methylumiR can read the Illumina text files
@@ -19,6 +21,7 @@ class RMethylumi(RPackage):
homepage = "https://bioconductor.org/packages/release/bioc/html/methylumi.html"
git = "https://git.bioconductor.org/packages/methylumi"
+ version('2.36.0', commit='5fb0b609f9c9181ac99f902745958774e5489606')
version('2.32.0', commit='e2a29c1b214c0d43c7325d176f9ce41dcf8e2f9d')
depends_on('r@2.13:', type=('build', 'run'))
@@ -30,6 +33,7 @@ class RMethylumi(RPackage):
depends_on('r-fdb-infiniummethylation-hg19@2.2.0:', type=('build', 'run'))
depends_on('r-minfi', type=('build', 'run'))
depends_on('r-biocgenerics', type=('build', 'run'))
+ depends_on('r-s4vectors', when='@2.36.0:', type=('build', 'run'))
depends_on('r-iranges', type=('build', 'run'))
depends_on('r-genomeinfodb', type=('build', 'run'))
depends_on('r-genomicranges', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mgcv/package.py b/var/spack/repos/builtin/packages/r-mgcv/package.py
index 5a12096785..cfc07d7404 100644
--- a/var/spack/repos/builtin/packages/r-mgcv/package.py
+++ b/var/spack/repos/builtin/packages/r-mgcv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,21 @@ from spack import *
class RMgcv(RPackage):
- """GAMs, GAMMs and other generalized ridge regression with multiple
- smoothing parameter estimation by GCV, REML or UBRE/AIC. Includes a gam()
- function, a wide variety of smoothers, JAGS support and distributions
- beyond the exponential family."""
+ """Mixed GAM Computation Vehicle with Automatic Smoothness Estimation
+
+ Generalized additive (mixed) models, some of their extensions and other
+ generalized ridge regression with multiple smoothing parameter estimation
+ by (Restricted) Marginal Likelihood, Generalized Cross Validation and
+ similar, or using iterated nested Laplace approximation for fully Bayesian
+ inference. See Wood (2017) <doi:10.1201/9781315370279> for an overview.
+ Includes a gam() function, a wide variety of smoothers, 'JAGS' support and
+ distributions beyond the exponential family."""
homepage = "https://cloud.r-project.org/package=mgcv"
url = "https://cloud.r-project.org/src/contrib/mgcv_1.8-16.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mgcv"
+ version('1.8-33', sha256='98cb7bac928e2c9564091a9af31e5d309305c6c5fcf96e8429c08925fe6f2bf4')
version('1.8-28', sha256='b55ea8227cd5c263c266c3885fa3299aa6bd23b54186517f9299bf38a7bdd3ea')
version('1.8-27', sha256='c88b99fb518decd7e9cd17a4c267e74f98a78172f056784194b5b127ca0f7d1b')
version('1.8-22', sha256='d4af7767e097ebde91c61d5ab4c62975dcb6b4ed6f545c09f5276a44ebc585cf')
diff --git a/var/spack/repos/builtin/packages/r-mgraster/package.py b/var/spack/repos/builtin/packages/r-mgraster/package.py
index a3bcf11d7e..2d22506614 100644
--- a/var/spack/repos/builtin/packages/r-mgraster/package.py
+++ b/var/spack/repos/builtin/packages/r-mgraster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-mice/package.py b/var/spack/repos/builtin/packages/r-mice/package.py
index 583e6cae8d..b667bdaf12 100644
--- a/var/spack/repos/builtin/packages/r-mice/package.py
+++ b/var/spack/repos/builtin/packages/r-mice/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,23 +7,25 @@ from spack import *
class RMice(RPackage):
- """Multiple imputation using Fully Conditional Specification (FCS)
- implemented by the MICE algorithm as described in Van Buuren and
- Groothuis-Oudshoorn (2011) <doi:10.18637/jss.v045.i03>.
+ """Multivariate Imputation by Chained Equations
- Each variable has its own imputation model. Built-in imputation models are
- provided for continuous data (predictive mean matching, normal), binary
- data (logistic regression), unordered categorical data (polytomous logistic
- regression) and ordered categorical data (proportional odds). MICE can
- also impute continuous two-level data (normal model, pan, second-level
- variables). Passive imputation can be used to maintain consistency between
- variables. Various diagnostic plots are available to inspect the quality
- of the imputations."""
+ Multiple imputation using Fully Conditional Specification (FCS) implemented
+ by the MICE algorithm as described in Van Buuren and Groothuis-Oudshoorn
+ (2011) <doi:10.18637/jss.v045.i03>. Each variable has its own imputation
+ model. Built-in imputation models are provided for continuous data
+ (predictive mean matching, normal), binary data (logistic regression),
+ unordered categorical data (polytomous logistic regression) and ordered
+ categorical data (proportional odds). MICE can also impute continuous
+ two-level data (normal model, pan, second-level variables). Passive
+ imputation can be used to maintain consistency between variables. Various
+ diagnostic plots are available to inspect the quality of the
+ imputations."""
homepage = "https://cloud.r-project.org/package=mice"
url = "https://cloud.r-project.org/src/contrib/mice_3.0.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mice"
+ version('3.12.0', sha256='575d9e650d5fc8cd66c0b5a2f1e659605052b26d61f772fff5eed81b414ef144')
version('3.6.0', sha256='7bc72bdb631bc9f67d8f76ffb48a7bb275228d861075e20c24c09c736bebec5d')
version('3.5.0', sha256='4fccecdf9e8d8f9f63558597bfbbf054a873b2d0b0820ceefa7b6911066b9e45')
version('3.0.0', sha256='98b6bb1c5f8fb099bd0024779da8c865146edb25219cc0c9542a8254152c0add')
@@ -31,11 +33,14 @@ class RMice(RPackage):
depends_on('r@2.10.0:', type=('build', 'run'))
depends_on('r-broom', type=('build', 'run'))
depends_on('r-dplyr', type=('build', 'run'))
- depends_on('r-mass', type=('build', 'run'))
- depends_on('r-mitml', type=('build', 'run'))
- depends_on('r-nnet', type=('build', 'run'))
+ depends_on('r-generics', when='@3.12.0:', type=('build', 'run'))
+ depends_on('r-lattice', type=('build', 'run'))
depends_on('r-rcpp', type=('build', 'run'))
depends_on('r-rlang', type=('build', 'run'))
- depends_on('r-rpart', type=('build', 'run'))
- depends_on('r-survival', type=('build', 'run'))
- depends_on('r-lattice', type=('build', 'run'))
+ depends_on('r-tidyr', when='@3.12.0:', type=('build', 'run'))
+ depends_on('r-cpp11', when='@3.12.0:', type=('build', 'run'))
+ depends_on('r-mitml', when='@:3.6.0', type=('build', 'run'))
+ depends_on('r-nnet', when='@:3.6.0', type=('build', 'run'))
+ depends_on('r-rpart', when='@:3.6.0', type=('build', 'run'))
+ depends_on('r-survival', when='@:3.6.0', type=('build', 'run'))
+ depends_on('r-mass', when='@:3.6.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-microbenchmark/package.py b/var/spack/repos/builtin/packages/r-microbenchmark/package.py
new file mode 100644
index 0000000000..43c54f2978
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-microbenchmark/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 RMicrobenchmark(RPackage):
+ """Accurate Timing Functions
+
+ Provides infrastructure to accurately measure and compare the execution
+ time of R expressions."""
+
+ homepage = "https://github.com/joshuaulrich/microbenchmark/"
+ cran = "microbenchmark"
+
+ version('1.4-7', sha256='268f13c6323dd28cc2dff7e991bb78b814a8873b4a73f4a3645f40423da984f6')
diff --git a/var/spack/repos/builtin/packages/r-mime/package.py b/var/spack/repos/builtin/packages/r-mime/package.py
index 1c795c905d..429c1bd19c 100644
--- a/var/spack/repos/builtin/packages/r-mime/package.py
+++ b/var/spack/repos/builtin/packages/r-mime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RMime(RPackage):
- """Guesses the MIME type from a filename extension using the data derived
+ """Map Filenames to MIME Types
+
+ Guesses the MIME type from a filename extension using the data derived
from /etc/mime.types in UNIX-type systems."""
homepage = "https://github.com/yihui/mime"
- url = "https://cloud.r-project.org/src/contrib/mime_0.5.tar.gz"
- list_url = "https://cloud.r-project.org/src/contrib/Archive/mime"
+ cran = "mime"
+ version('0.11', sha256='215427a49f0d0b0e3ab38d419c515a35d57e3bc32535805306275d8b33f8eec0')
+ version('0.9', sha256='2ccf97d2940a09539dc051c7a9a1aee90ef04b34e9bc6c0b64b4435fb3c2fa80')
version('0.7', sha256='11083ee44c92569aadbb9baf60a2e079ab7a721c849b74d102694975cc8d778b')
version('0.6', sha256='4775b605ab0117406bee7953c8af59eea8b35e67d1bd63f4007686a7097fc401')
version('0.5', sha256='fcc72115afb0eb43237da872754464f37ae9ae097f332ec7984149b5e3a82145')
diff --git a/var/spack/repos/builtin/packages/r-minfi/package.py b/var/spack/repos/builtin/packages/r-minfi/package.py
index b786dd2129..da82288422 100644
--- a/var/spack/repos/builtin/packages/r-minfi/package.py
+++ b/var/spack/repos/builtin/packages/r-minfi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RMinfi(RPackage):
- """Analyze Illumina Infinium DNA methylation arrays.
+ """Analyze Illumina Infinium DNA methylation arrays
Tools to analyze & visualize Illumina Infinium methylation arrays."""
homepage = "https://bioconductor.org/packages/minfi"
git = "https://git.bioconductor.org/packages/minfi.git"
+ version('1.36.0', commit='94301da343226be7cd878c2a6c1bb529564785d6')
version('1.30.0', commit='a4c28e9388fe3b35e7d21a9669e39250ed6dcbcd')
version('1.28.4', commit='b5125b2f3e05d37d519eeb6fd44a60efdad388e7')
version('1.26.2', commit='ebb07b728b2453998d46e4e53d4fbf873e8e81fc')
@@ -37,7 +38,9 @@ class RMinfi(RPackage):
depends_on('r-limma', type=('build', 'run'))
depends_on('r-preprocesscore', type=('build', 'run'))
depends_on('r-illuminaio', type=('build', 'run'))
- depends_on('r-matrixstats@0.50.0:', type=('build', 'run'))
+ depends_on('r-illuminaio@0.23.2:', when='@1.28.4:', type=('build', 'run'))
+ depends_on('r-delayedmatrixstats', when='@1.26.2:', type=('build', 'run'))
+ depends_on('r-delayedmatrixstats@1.3.4:', when='@1.28.4:', type=('build', 'run'))
depends_on('r-mclust', type=('build', 'run'))
depends_on('r-genefilter', type=('build', 'run'))
depends_on('r-nlme', type=('build', 'run'))
@@ -46,14 +49,10 @@ class RMinfi(RPackage):
depends_on('r-quadprog', type=('build', 'run'))
depends_on('r-data-table', type=('build', 'run'))
depends_on('r-geoquery', type=('build', 'run'))
-
- depends_on('r-delayedmatrixstats', when='@1.26.2:', type=('build', 'run'))
depends_on('r-delayedarray@0.5.23:', when='@1.26.2:', type=('build', 'run'))
- depends_on('r-hdf5array', when='@1.26.2:', type=('build', 'run'))
- depends_on('r-biocparallel', when='@1.26.2:', type=('build', 'run'))
-
- depends_on('r-illuminaio@0.23.2:', when='@1.28.4:', type=('build', 'run'))
- depends_on('r-delayedmatrixstats@1.3.4:', when='@1.28.4:', type=('build', 'run'))
depends_on('r-delayedarray@0.7.38:', when='@1.28.4:', type=('build', 'run'))
-
depends_on('r-delayedarray@0.9.8:', when='@1.30.0:', type=('build', 'run'))
+ depends_on('r-delayedarray@0.15.16:', when='@1.36.0:', type=('build', 'run'))
+ depends_on('r-hdf5array', when='@1.26.2:', type=('build', 'run'))
+ depends_on('r-biocparallel', when='@1.26.2:', type=('build', 'run'))
+ depends_on('r-matrixstats@0.50.0:', when='@:1.30.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-miniui/package.py b/var/spack/repos/builtin/packages/r-miniui/package.py
index 71761dffd3..ef77dec552 100644
--- a/var/spack/repos/builtin/packages/r-miniui/package.py
+++ b/var/spack/repos/builtin/packages/r-miniui/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-minqa/package.py b/var/spack/repos/builtin/packages/r-minqa/package.py
index efdd719932..19059642c1 100644
--- a/var/spack/repos/builtin/packages/r-minqa/package.py
+++ b/var/spack/repos/builtin/packages/r-minqa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class RMinqa(RPackage):
"""Derivative-free optimization by quadratic approximation based on an
interface to Fortran implementations by M. J. D. Powell."""
- homepage = "http://optimizer.r-forge.r-project.org/"
+ homepage = "https://optimizer.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/minqa_1.2.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/minqa"
diff --git a/var/spack/repos/builtin/packages/r-misc3d/package.py b/var/spack/repos/builtin/packages/r-misc3d/package.py
index 7d4a1c63fa..6814f5a4b4 100644
--- a/var/spack/repos/builtin/packages/r-misc3d/package.py
+++ b/var/spack/repos/builtin/packages/r-misc3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,15 @@ from spack import *
class RMisc3d(RPackage):
- """A collection of miscellaneous 3d plots, including isosurfaces."""
+ """Miscellaneous 3D Plots
+
+ A collection of miscellaneous 3d plots, including isosurfaces."""
homepage = "https://cloud.r-project.org/package=misc3d"
url = "https://cloud.r-project.org/src/contrib/misc3d_0.8-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/misc3d"
+ version('0.9-0', sha256='a1e9291d625bd1312bae5b0e26d48b9362f66a8a0fabbf48891ba1d2432e4e82')
version('0.8-4', sha256='75de3d2237f67f9e58a36e80a6bbf7e796d43eb46789f2dd1311270007bf5f62')
+
+ depends_on('r+X', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-missmethyl/package.py b/var/spack/repos/builtin/packages/r-missmethyl/package.py
new file mode 100644
index 0000000000..1e1d244dd7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-missmethyl/package.py
@@ -0,0 +1,48 @@
+# Copyright 2013-2021 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 RMissmethyl(RPackage):
+ """Analysing Illumina HumanMethylation BeadChip Data:
+
+ Normalisation, testing for differential variability and differential
+ methylation and gene set testing for data from Illumina's Infinium
+ HumanMethylation arrays. The normalisation procedure is subset-quantile
+ within-array normalisation (SWAN), which allows Infinium I and II type
+ probes on a single array to be normalised together. The test for
+ differential variability is based on an empirical Bayes version of Levene's
+ test. Differential methylation testing is performed using RUV, which can
+ adjust for systematic errors of unknown origin in high-dimensional data by
+ using negative control probes. Gene ontology analysis is performed by
+ taking into account the number of probes per gene on the array, as well as
+ taking into account multi-gene associated probes."""
+
+ bioc = "missMethyl"
+
+ version('1.24.0', commit='f6c86048911dc0e302fb593b7d0623f6e77ac332')
+
+ depends_on('r@3.6.0:', type=('build', 'run'))
+ depends_on('r-illuminahumanmethylation450kanno-ilmn12-hg19', type=('build', 'run'))
+ depends_on('r-illuminahumanmethylationepicanno-ilm10b4-hg19', type=('build', 'run'))
+ depends_on('r-annotationdbi', type=('build', 'run'))
+ depends_on('r-biasedurn', type=('build', 'run'))
+ depends_on('r-biobase', type=('build', 'run'))
+ depends_on('r-biocgenerics', type=('build', 'run'))
+ depends_on('r-genomicranges', type=('build', 'run'))
+ depends_on('r-go-db', type=('build', 'run'))
+ depends_on('r-illuminahumanmethylation450kmanifest', type=('build', 'run'))
+ depends_on('r-illuminahumanmethylationepicmanifest', type=('build', 'run'))
+ depends_on('r-iranges', type=('build', 'run'))
+ depends_on('r-limma', type=('build', 'run'))
+ depends_on('r-methylumi', type=('build', 'run'))
+ depends_on('r-minfi', type=('build', 'run'))
+ depends_on('r-org-hs-eg-db', type=('build', 'run'))
+ depends_on('r-ruv', type=('build', 'run'))
+ depends_on('r-s4vectors', type=('build', 'run'))
+ depends_on('r-statmod', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-summarizedexperiment', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mitml/package.py b/var/spack/repos/builtin/packages/r-mitml/package.py
index f46d8a497a..cd61393d60 100644
--- a/var/spack/repos/builtin/packages/r-mitml/package.py
+++ b/var/spack/repos/builtin/packages/r-mitml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-mitools/package.py b/var/spack/repos/builtin/packages/r-mitools/package.py
index 264e20c811..0257905e3e 100644
--- a/var/spack/repos/builtin/packages/r-mitools/package.py
+++ b/var/spack/repos/builtin/packages/r-mitools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-mixtools/package.py b/var/spack/repos/builtin/packages/r-mixtools/package.py
index 7558cc02ab..6b93933deb 100644
--- a/var/spack/repos/builtin/packages/r-mixtools/package.py
+++ b/var/spack/repos/builtin/packages/r-mixtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,19 +7,33 @@ from spack import *
class RMixtools(RPackage):
- """mixtools: Tools for Analyzing Finite Mixture Models
+ """Tools for Analyzing Finite Mixture Models
Analyzes finite mixture models for various parametric and semiparametric
- settings."""
+ settings. This includes mixtures of parametric distributions (normal,
+ multivariate normal, multinomial, gamma), various Reliability Mixture
+ Models (RMMs), mixtures-of-regressions settings (linear regression,
+ logistic regression, Poisson regression, linear regression with
+ changepoints, predictor-dependent mixing proportions, random effects
+ regressions, hierarchical mixtures-of-experts), and tools for selecting the
+ number of components (bootstrapping the likelihood ratio test statistic,
+ mixturegrams, and model selection criteria). Bayesian estimation of
+ mixtures-of-linear-regressions models is available as well as a novel data
+ depth method for obtaining credible bands. This package is based upon work
+ supported by the National Science Foundation under Grant No.
+ SES-0518772."""
homepage = "https://cloud.r-project.org/package=mixtools"
url = "https://cloud.r-project.org/src/contrib/mixtools_1.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mixtools"
+ version('1.2.0', sha256='ef033ef13625209065d26767bf70d129972e6808927f755629f1d70a118b9023')
version('1.1.0', sha256='543fd8d8dc8d4b6079ebf491cf97f27d6225e1a6e65d8fd48553ada23ba88d8f')
version('1.0.4', sha256='62f4b0a17ce520c4f8ed50ab44f120e459143b461a9e420cd39056ee4fc8798c')
depends_on('r@3.2:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-kernlab', when='@1.2.0:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
depends_on('r-segmented', type=('build', 'run'))
depends_on('r-survival', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mlbench/package.py b/var/spack/repos/builtin/packages/r-mlbench/package.py
index 6b75828c71..ab0eb7620f 100644
--- a/var/spack/repos/builtin/packages/r-mlbench/package.py
+++ b/var/spack/repos/builtin/packages/r-mlbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-mlinterfaces/package.py b/var/spack/repos/builtin/packages/r-mlinterfaces/package.py
index 4a2e45585b..67465eb4b8 100644
--- a/var/spack/repos/builtin/packages/r-mlinterfaces/package.py
+++ b/var/spack/repos/builtin/packages/r-mlinterfaces/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RMlinterfaces(RPackage):
"""Uniform interfaces to R machine learning procedures for data in
- Bioconductor containers.
+ Bioconductor containers
This package provides uniform interfaces to machine learning code for
data in R and Bioconductor containers."""
@@ -16,6 +16,7 @@ class RMlinterfaces(RPackage):
homepage = "https://bioconductor.org/packages/MLInterfaces"
git = "https://git.bioconductor.org/packages/MLInterfaces.git"
+ version('1.70.0', commit='7b076c3e85314dd5fd5bd8a98e8123d08d9acd3b')
version('1.64.1', commit='0b081112d87771248bc33b3b82d5ca4685f986a1')
version('1.62.1', commit='6cf59a90b14779cf57a0b36f1087304082ae50fe')
version('1.60.1', commit='019e9ed44923e5d845a4800246aa044ddd59d548')
@@ -23,6 +24,8 @@ class RMlinterfaces(RPackage):
version('1.56.0', commit='31fe6fb20d859fcb01d5552f42bca6bab16cc67f')
depends_on('r@2.9:', type=('build', 'run'))
+ depends_on('r@3.5:', when='@1.60.1:', type=('build', 'run'))
+ depends_on('r-rcpp', when='@1.70.0:', type=('build', 'run'))
depends_on('r-biocgenerics@0.13.11:', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-annotate', type=('build', 'run'))
@@ -32,7 +35,6 @@ class RMlinterfaces(RPackage):
depends_on('r-sfsmisc', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
depends_on('r-rpart', type=('build', 'run'))
- depends_on('r-rda', type=('build', 'run'))
depends_on('r-genefilter', type=('build', 'run'))
depends_on('r-fpc', type=('build', 'run'))
depends_on('r-ggvis', type=('build', 'run'))
@@ -42,5 +44,4 @@ class RMlinterfaces(RPackage):
depends_on('r-hwriter', type=('build', 'run'))
depends_on('r-threejs@0.2.2:', type=('build', 'run'))
depends_on('r-mlbench', type=('build', 'run'))
-
- depends_on('r@3.5:', when='@1.60.1:', type=('build', 'run'))
+ depends_on('r-rda', when='@:1.64.1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mlr/package.py b/var/spack/repos/builtin/packages/r-mlr/package.py
index 306d8ff92a..986bc955db 100644
--- a/var/spack/repos/builtin/packages/r-mlr/package.py
+++ b/var/spack/repos/builtin/packages/r-mlr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,35 +7,44 @@ from spack import *
class RMlr(RPackage):
- """Interface to a large number of classification and regression techniques,
- including machine-readable parameter descriptions. There is also an
- experimental extension for survival analysis, clustering and general,
- example-specific cost-sensitive learning. Generic resampling,
- including cross-validation, bootstrapping and subsampling.
- Hyperparameter tuning with modern optimization techniques,
- for single- and multi-objective problems. Filter and wrapper methods for
- feature selection. Extension of basic learners with additional
- operations common in machine learning, also allowing for easy nested
- resampling. Most operations can be parallelized."""
+ """Machine Learning in R
+
+ Interface to a large number of classification and regression techniques,
+ including machine-readable parameter descriptions. There is also an
+ experimental extension for survival analysis, clustering and general,
+ example-specific cost-sensitive learning. Generic resampling, including
+ cross-validation, bootstrapping and subsampling. Hyperparameter tuning
+ with modern optimization techniques, for single- and multi-objective
+ problems. Filter and wrapper methods for feature selection. Extension of
+ basic learners with additional operations common in machine learning, also
+ allowing for easy nested resampling. Most operations can be
+ parallelized."""
homepage = "https://github.com/mlr-org/mlr/"
url = "https://cloud.r-project.org/src/contrib/mlr_2.12.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mlr"
+ version('2.18.0', sha256='c2fe74e90ed32e5f4cbb0c09a1742051688d87db2f12dd408ddad0f5afc7f8d3')
version('2.15.0', sha256='a3c2c2bd65a87d90b5e5e877b1ef8e7712e76b4eb1660d3f69672a1860ca5324')
version('2.14.0', sha256='1f72184400678386c7c44297c4c92a448b50148de700df5ba0438d4e486e944a')
version('2.13', sha256='e8729be7acddc1ea124c44f9493a8b903c5f54b97e09c714366553aed733011d')
version('2.12.1', sha256='9cbb98b82eb493b783fe8808a18d76f32881d941364466ef8829b852fabbc82c')
version('2.12', sha256='cfe00089ae4cd88c6d03826eda43d4fe29e467e3a7c95d103fafca8308f5c161')
+ # There are some potential variants for this.
+ # SystemRequirements: gdal (optional), geos (optional), proj (optional),
+ # udunits (optional), gsl (optional), gmp (optional), glu (optional), jags
+ # (optional)
+
depends_on('r@3.0.2:', type=('build', 'run'))
depends_on('r-paramhelpers@1.10:', type=('build', 'run'))
- depends_on('r-bbmisc@1.11:', type=('build', 'run'))
depends_on('r-backports@1.1.0:', type=('build', 'run'))
- depends_on('r-ggplot2', type=('build', 'run'))
- depends_on('r-stringi', type=('build', 'run'))
+ depends_on('r-bbmisc@1.11:', type=('build', 'run'))
depends_on('r-checkmate@1.8.2:', type=('build', 'run'))
depends_on('r-data-table', type=('build', 'run'))
+ depends_on('r-data-table@1.12.4:', when='@2.18.0:', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
depends_on('r-parallelmap@1.3:', type=('build', 'run'))
+ depends_on('r-stringi', type=('build', 'run'))
depends_on('r-survival', type=('build', 'run'))
depends_on('r-xml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mlrmbo/package.py b/var/spack/repos/builtin/packages/r-mlrmbo/package.py
index ba8cb37abf..ed5cef399e 100644
--- a/var/spack/repos/builtin/packages/r-mlrmbo/package.py
+++ b/var/spack/repos/builtin/packages/r-mlrmbo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,28 +7,31 @@ from spack import *
class RMlrmbo(RPackage):
- """Flexible and comprehensive R toolbox for model-based optimization
- ('MBO'), also known as Bayesian optimization. It is designed for both
- single- and multi-objective optimization with mixed continuous,
- categorical and conditional parameters. The machine learning toolbox
- 'mlr' provide dozens of regression learners to model the performance of
- the target algorithm with respect to the parameter settings. It provides
- many different infill criteria to guide the search process. Additional
- features include multi-point batch proposal, parallel execution as well
- as visualization and sophisticated logging mechanisms, which is
- especially useful for teaching and understanding of algorithm behavior.
- 'mlrMBO' is implemented in a modular fashion, such that single
- components can be easily replaced or adapted by the user for specific
- use cases."""
+ """Bayesian Optimization and Model-Based Optimization of Expensive Black-Box Functions
+
+ Flexible and comprehensive R toolbox for model-based optimization ('MBO'),
+ also known as Bayesian optimization. It is designed for both single- and
+ multi-objective optimization with mixed continuous, categorical and
+ conditional parameters. The machine learning toolbox 'mlr' provide dozens
+ of regression learners to model the performance of the target algorithm
+ with respect to the parameter settings. It provides many different infill
+ criteria to guide the search process. Additional features include
+ multi-point batch proposal, parallel execution as well as visualization and
+ sophisticated logging mechanisms, which is especially useful for teaching
+ and understanding of algorithm behavior. 'mlrMBO' is implemented in a
+ modular fashion, such that single components can be easily replaced or
+ adapted by the user for specific use cases."""
homepage = "https://github.com/mlr-org/mlrMBO/"
url = "https://cloud.r-project.org/src/contrib/mlrMBO_1.1.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mlrMBO"
+ version('1.1.5', sha256='7ab9d108ad06f6c5c480fa4beca69e09ac89bb162ae6c85fe7d6d25c41f359b8')
version('1.1.2', sha256='8e84caaa5d5d443d7019128f88ebb212fb095870b3a128697c9b64fe988f3efe')
version('1.1.1', sha256='e87d9912a9b4a968364584205b8ef6f7fea0b5aa043c8d31331a7b7be02dd7e4')
version('1.1.0', sha256='6ae82731a566333f06085ea2ce23ff2a1007029db46eea57d06194850350a8a0')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r-mlr@2.10:', type=('build', 'run'))
depends_on('r-paramhelpers@1.10:', type=('build', 'run'))
depends_on('r-smoof@1.5.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mmwrweek/package.py b/var/spack/repos/builtin/packages/r-mmwrweek/package.py
index 40f6bf1c77..3a632f427a 100644
--- a/var/spack/repos/builtin/packages/r-mmwrweek/package.py
+++ b/var/spack/repos/builtin/packages/r-mmwrweek/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RMmwrweek(RPackage):
- """The first day of any MMWR week is Sunday. MMWR week numbering is
+ """Convert Dates to MMWR Day, Week, and Year
+
+ The first day of any MMWR week is Sunday. MMWR week numbering is
sequential beginning with 1 and incrementing with each week to a maximum
of 52 or 53. MMWR week #1 of an MMWR year is the first week of the year
that has at least four days in the calendar year. This package provides
@@ -18,4 +20,5 @@ class RMmwrweek(RPackage):
url = "https://cloud.r-project.org/src/contrib/MMWRweek_0.1.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/MMWRweek"
+ version('0.1.3', sha256='1aa8b687dc3340c3f277689eb0ca529e0064a4a3a66868137f2f8ab209d133d0')
version('0.1.1', sha256='969fd18535f3b78dd360d62d29d5f15409fc059f4af5d345abfde711e4adbc99')
diff --git a/var/spack/repos/builtin/packages/r-mnormt/package.py b/var/spack/repos/builtin/packages/r-mnormt/package.py
index ae94319f8c..ae2e015d0a 100644
--- a/var/spack/repos/builtin/packages/r-mnormt/package.py
+++ b/var/spack/repos/builtin/packages/r-mnormt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,20 @@ from spack import *
class RMnormt(RPackage):
- """Functions are provided for computing the density and the distribution
- function of multivariate normal and "t" random variables, and for
- generating random vectors sampled from these distributions.
- Probabilities are computed via non-Monte Carlo methods; different
- routines are used in the case d=1, d=2, d>2, if d denotes the number
- of dimensions."""
+ """The Multivariate Normal and t Distributions, and Their Truncated Versions
+
+ Functions are provided for computing the density and the distribution
+ function of multivariate normal and "t" random variables, and for
+ generating random vectors sampled from these distributions. Probabilities
+ are computed via non-Monte Carlo methods; different routines are used in
+ the case d=1, d=2, d>2, if d denotes the number of dimensions."""
homepage = "http://azzalini.stat.unipd.it/SW/Pkg-mnormt"
url = "https://cloud.r-project.org/src/contrib/mnormt_1.5-5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mnormt"
+ version('2.0.2', sha256='5c6aa036d3f1035ffe8f9a8e95bb908b191b126b016591cf893c50472851f334')
version('1.5-5', sha256='ff78d5f935278935f1814a69e5a913d93d6dd2ac1b5681ba86b30c6773ef64ac')
depends_on('r@2.2.0:', type=('build', 'run'))
+ depends_on('r-tmvnsim@1.0-2:', when='@2.0.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mockery/package.py b/var/spack/repos/builtin/packages/r-mockery/package.py
new file mode 100644
index 0000000000..7f86483ac2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mockery/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RMockery(RPackage):
+ """The two main functionalities of this package are creating mock
+ objects (functions) and selectively intercepting calls to a given
+ function that originate in some other function. It can be used with
+ any testing framework available for R. Mock objects can be injected
+ with either this package's own stub() function or a similar
+ with_mock() facility present in the 'testthat' package."""
+
+ homepage = "https://github.com/r-lib/mockery"
+ url = "https://cran.r-project.org/src/contrib/mockery_0.4.2.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/mockery"
+
+ version('0.4.2', sha256='988e249c366ee7faf277de004084cf5ca24b5c8a8c6e3842f1b1362ce2f7ea9b')
+ version('0.4.1', sha256='959d83f8b21e9a89c06c73f310356790c2d63d5ba39b2b60c6777a4eb33909c1')
+ version('0.4.0', sha256='cecbd865b67d8d29b47d6c931e386189625d5885328a2931a65ade3ff9bc8e7b')
+ version('0.3.0', sha256='6d23461ce6ffdc707ac2fcef58c5942587fab4b2a794a3085ac858fe1beeaff9')
+
+ depends_on('r-testthat', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-modelmetrics/package.py b/var/spack/repos/builtin/packages/r-modelmetrics/package.py
index 67404cc234..f15d6fc6b4 100644
--- a/var/spack/repos/builtin/packages/r-modelmetrics/package.py
+++ b/var/spack/repos/builtin/packages/r-modelmetrics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,17 @@ from spack import *
class RModelmetrics(RPackage):
- """Collection of metrics for evaluating models written in C++ using
- 'Rcpp'."""
+ """Rapid Calculation of Model Metrics
+
+ Collection of metrics for evaluating models written in C++ using 'Rcpp'.
+ Popular metrics include area under the curve, log loss, root mean square
+ error, etc."""
homepage = "https://cloud.r-project.org/package=ModelMetrics"
url = "https://cloud.r-project.org/src/contrib/ModelMetrics_1.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ModelMetrics"
+ version('1.2.2.2', sha256='5e06f1926aebca5654e1329c66ef19b04058376b2277ebb16e3bf8c208d73457')
version('1.2.2', sha256='66d6fc75658287fdbae4d437b51d26781e138b8baa558345fb9e5a2df86a0d95')
version('1.2.0', sha256='3021ae88733695a35d66e279e8e61861431f14c9916a341f0a562f675cf6ede9')
version('1.1.0', sha256='487d53fda57da4b29f83a927dda8b1ae6655ab044ee3eec33c38aeb27eed3d85')
diff --git a/var/spack/repos/builtin/packages/r-modelr/package.py b/var/spack/repos/builtin/packages/r-modelr/package.py
index a3c3232e1d..3bb37c155f 100644
--- a/var/spack/repos/builtin/packages/r-modelr/package.py
+++ b/var/spack/repos/builtin/packages/r-modelr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RModelr(RPackage):
- """Functions for modelling that help you seamlessly integrate modelling
- into a pipeline of data manipulation and visualisation."""
+ """Modelling Functions that Work with the Pipe
+
+ Functions for modelling that help you seamlessly integrate modelling into a
+ pipeline of data manipulation and visualisation."""
homepage = "https://github.com/hadley/modelr"
url = "https://cloud.r-project.org/src/contrib/modelr_0.1.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/modelr"
+ version('0.1.8', sha256='825ba77d95d60cfb94920bec910872ca2ffe7790a44148b2992be2759cb361c4')
version('0.1.5', sha256='45bbee387c6ba154f9f8642e9f03ea333cce0863c324ff15d23096f33f85ce5a')
version('0.1.4', sha256='b4da77c1244bbda512ce323751c8338741eeaa195283f172a0feec2917bcfdd9')
version('0.1.3', sha256='e536b247c17d6cacf10565dd8a1b744efc90a8815c70edd54371e413e6d1b423')
@@ -21,11 +24,13 @@ class RModelr(RPackage):
depends_on('r@3.1:', when='@:0.1.4', type=('build', 'run'))
depends_on('r@3.2:', when='@0.1.5:', type=('build', 'run'))
+ depends_on('r-broom', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-purrr@0.2.2:', type=('build', 'run'))
- depends_on('r-lazyeval@0.2.0:', when='@:0.1.1', type=('build', 'run'))
+ depends_on('r-rlang@0.2.0:', when='@0.1.3:', type=('build', 'run'))
depends_on('r-tibble', type=('build', 'run'))
- depends_on('r-broom', type=('build', 'run'))
- depends_on('r-dplyr', type=('build', 'run'))
depends_on('r-tidyr@0.8.0:', type=('build', 'run'))
- depends_on('r-rlang@0.2.0:', when='@0.1.3:', type=('build', 'run'))
+ depends_on('r-tidyselect', when='@0.1.8:', type=('build', 'run'))
+ depends_on('r-vctrs', when='@0.1.8:', type=('build', 'run'))
+ depends_on('r-lazyeval@0.2.0:', when='@:0.1.1', type=('build', 'run'))
+ depends_on('r-dplyr', when='@:0.1.5', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-modeltools/package.py b/var/spack/repos/builtin/packages/r-modeltools/package.py
index 73fdd643bf..13bea471fa 100644
--- a/var/spack/repos/builtin/packages/r-modeltools/package.py
+++ b/var/spack/repos/builtin/packages/r-modeltools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,19 @@ from spack import *
class RModeltools(RPackage):
- """A collection of tools to deal with statistical models."""
+ """Tools and Classes for Statistical Models
+
+ A collection of tools to deal with statistical models. The functionality
+ is experimental and the user interface is likely to change in the future.
+ The documentation is rather terse, but packages `coin' and `party' have
+ some working examples. However, if you find the implemented ideas
+ interesting we would be very interested in a discussion of this proposal.
+ Contributions are more than welcome!"""
homepage = "https://cloud.r-project.org/package=modeltools"
url = "https://cloud.r-project.org/src/contrib/modeltools_0.2-21.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/modeltools"
+ version('0.2-23', sha256='6b3e8d5af1a039db5c178498dbf354ed1c5627a8cea9229726644053443210ef')
version('0.2-22', sha256='256a088fc80b0d9182f984f9bd3d6207fb7c1e743f72e2ecb480e6c1d4ac34e9')
version('0.2-21', sha256='07b331475625674ab00e6ddfc479cbdbf0b22d5d237e8c25d83ddf3e0ad1cd7a')
diff --git a/var/spack/repos/builtin/packages/r-mpm/package.py b/var/spack/repos/builtin/packages/r-mpm/package.py
index dd831ffd27..20f55a57da 100644
--- a/var/spack/repos/builtin/packages/r-mpm/package.py
+++ b/var/spack/repos/builtin/packages/r-mpm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-msnbase/package.py b/var/spack/repos/builtin/packages/r-msnbase/package.py
index 932372681c..ea3330b9c1 100644
--- a/var/spack/repos/builtin/packages/r-msnbase/package.py
+++ b/var/spack/repos/builtin/packages/r-msnbase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RMsnbase(RPackage):
- """Base Functions and Classes for Mass Spectrometry and Proteomics.
+ """Base Functions and Classes for Mass Spectrometry and Proteomics
MSnbase provides infrastructure for manipulation, processing and
visualisation of mass spectrometry and proteomics data, ranging from raw
@@ -16,6 +16,7 @@ class RMsnbase(RPackage):
homepage = "https://bioconductor.org/packages/MSnbase"
git = "https://git.bioconductor.org/packages/MSnbase.git"
+ version('2.16.1', commit='4d88b4edd1af59474462b1b06ad0ec5831f3a878')
version('2.10.1', commit='4d5899bc9c714f0b1a70cddd537cd4621b2b53b0')
version('2.8.3', commit='ef883752c5e92d445647bc5b5d23d5df320db415')
version('2.6.4', commit='46836860ce0281eef135303f2e2948303d67f68c')
@@ -23,35 +24,33 @@ class RMsnbase(RPackage):
version('2.2.0', commit='d6e8fb7f106d05096fa9074da0f829ac8f02c197')
depends_on('r@3.1:', type=('build', 'run'))
+ depends_on('r@3.5:', when='@2.16.1:', type=('build', 'run'))
depends_on('r-biocgenerics@0.7.1:', type=('build', 'run'))
depends_on('r-biobase@2.15.2:', type=('build', 'run'))
depends_on('r-mzr@2.7.6:', type=('build', 'run'))
- depends_on('r-biocparallel', type=('build', 'run'))
+ depends_on('r-mzr@2.11.11:', when='@2.4.2:', type=('build', 'run'))
+ depends_on('r-mzr@2.13.6:', when='@2.6.4:', type=('build', 'run'))
+ depends_on('r-mzr@2.15.1:', when='@2.8.3:', type=('build', 'run'))
+ depends_on('r-mzr@2.17.3:', when='@2.10.1:', type=('build', 'run'))
+ depends_on('r-mzr@2.19.6:', when='@2.16.1:', type=('build', 'run'))
+ depends_on('r-s4vectors', type=('build', 'run'))
depends_on('r-protgenerics@1.5.1:', type=('build', 'run'))
- depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-protgenerics@1.19.3:', when='@2.16.1:', type=('build', 'run'))
+ depends_on('r-biocparallel', type=('build', 'run'))
depends_on('r-iranges', type=('build', 'run'))
+ depends_on('r-iranges@2.13.28:', when='@2.6.4:', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
depends_on('r-preprocesscore', type=('build', 'run'))
depends_on('r-vsn', type=('build', 'run'))
depends_on('r-affy', type=('build', 'run'))
depends_on('r-impute', type=('build', 'run'))
depends_on('r-pcamethods', type=('build', 'run'))
- depends_on('r-mzid@1.5.2:', type=('build', 'run'))
depends_on('r-maldiquant@1.16:', type=('build', 'run'))
+ depends_on('r-mzid@1.5.2:', type=('build', 'run'))
depends_on('r-digest', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
- depends_on('r-s4vectors', type=('build', 'run'))
depends_on('r-xml', type=('build', 'run'))
- depends_on('r-rcpp', type=('build', 'run'))
-
- depends_on('r-mzr@2.11.11:', when='@2.4.2:', type=('build', 'run'))
- depends_on('r-protgenerics@1.9.1:', when='@2.4.2:', type=('build', 'run'))
-
- depends_on('r-mzr@2.13.6:', when='@2.6.4:', type=('build', 'run'))
- depends_on('r-iranges@2.13.28:', when='@2.6.4:', type=('build', 'run'))
depends_on('r-scales', when='@2.6.4:', type=('build', 'run'))
depends_on('r-mass', when='@2.6.4:', type=('build', 'run'))
-
- depends_on('r-mzr@2.15.1:', when='@2.8.3:', type=('build', 'run'))
-
- depends_on('r-mzr@2.17.3:', when='@2.10.1:', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-multcomp/package.py b/var/spack/repos/builtin/packages/r-multcomp/package.py
index d0566c2004..78d71603c5 100644
--- a/var/spack/repos/builtin/packages/r-multcomp/package.py
+++ b/var/spack/repos/builtin/packages/r-multcomp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,19 @@ from spack import *
class RMultcomp(RPackage):
- """Simultaneous tests and confidence intervals for general linear
+ """Simultaneous Inference in General Parametric Models
+
+ Simultaneous tests and confidence intervals for general linear
hypotheses in parametric models, including linear, generalized linear,
linear mixed effects, and survival models. The package includes demos
reproducing analyzes presented in the book "Multiple Comparisons Using R"
(Bretz, Hothorn, Westfall, 2010, CRC Press)."""
- homepage = "http://multcomp.r-forge.r-project.org/"
+ homepage = "https://multcomp.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/multcomp_1.4-6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/multcomp"
+ version('1.4-15', sha256='9927607efb3eb84ac3d25d82daf2faef6a69e05a334b163ce43fd31c14b19bce')
version('1.4-10', sha256='29bcc635c0262e304551b139cd9ee655ab25a908d9693e1cacabfc2a936df5cf')
version('1.4-8', sha256='a20876619312310e9523d67e9090af501383ce49dc6113c6b4ca30f9c943a73a')
version('1.4-6', sha256='fe9efbe671416a49819cbdb9137cc218faebcd76e0f170fd1c8d3c84c42eeda2')
diff --git a/var/spack/repos/builtin/packages/r-multicool/package.py b/var/spack/repos/builtin/packages/r-multicool/package.py
index fc87206d73..eb8f9a8190 100644
--- a/var/spack/repos/builtin/packages/r-multicool/package.py
+++ b/var/spack/repos/builtin/packages/r-multicool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,29 @@ from spack import *
class RMulticool(RPackage):
- """Permutations of multisets in cool-lex order."""
+ """Permutations of multisets in cool-lex order
+
+ A set of tools to permute multisets without loops or hash tables and to
+ generate integer partitions. The permutation functions are based on C code
+ from Aaron Williams. Cool-lex order is similar to colexicographical order.
+ The algorithm is described in Williams, A. (2009)
+ <DOI:10.1145/1496770.1496877> Loopless Generation of Multiset Permutations
+ by Prefix Shifts. Symposium on Discrete Algorithms, New York, United
+ States. The permutation code is distributed without restrictions. The code
+ for stable and efficient computation of multinomial coefficients comes from
+ Dave Barber. The code can be download from
+ <http://tamivox.org/dave/multinomial/code.html> and is distributed without
+ conditions. The package also generates the integer partitions of a
+ positive, non-zero integer n. The C++ code for this is based on Python code
+ from Jerome Kelleher which can be found here
+ <https://jeromekelleher.net/tag/integer-partitions.html>. The C++ code and
+ Python code are distributed without conditions."""
homepage = "https://cloud.r-project.org/package=multicool"
url = "https://cloud.r-project.org/src/contrib/Archive/multicool/multicool_0.1-9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/multicool/Archive/multicool"
+ version('0.1-10', sha256='5bb0cb0d9eb64420c862877247a79bb0afadacfe23262ec8c3fa26e5e34d6ff9')
version('0.1-9', sha256='bdf92571cef1b649952d155395a92b8683099ee13114f73a9d41fc5d7d49d329')
depends_on('r-rcpp@0.11.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-multitaper/package.py b/var/spack/repos/builtin/packages/r-multitaper/package.py
index 52f8a05b2c..dda558415f 100644
--- a/var/spack/repos/builtin/packages/r-multitaper/package.py
+++ b/var/spack/repos/builtin/packages/r-multitaper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,22 @@ from spack import *
class RMultitaper(RPackage):
- """multitaper: Spectral Analysis Tools using the Multitaper Method"""
+ """Spectral Analysis Tools using the Multitaper Methodi
+
+ Implements multitaper spectral analysis using discrete prolate spheroidal
+ sequences (Slepians) and sine tapers. It includes an adaptive weighted
+ multitaper spectral estimate, a coherence estimate, Thomson's Harmonic
+ F-test, and complex demodulation. The Slepians sequences are generated
+ efficiently using a tridiagonal matrix solution, and jackknifed confidence
+ intervals are available for most estimates. This package is an
+ implementation of the method described in D.J. Thomson (1982) "Spectrum
+ estimation and harmonic analysis" <doi:10.1109/PROC.1982.12433>."""
homepage = "https://github.com/krahim/multitaper/"
url = "https://cloud.r-project.org/src/contrib/multitaper_1.0-14.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/multitaper/"
+ version('1.0-15', sha256='837d71f3b46fbce2bea210449cf75e609f5363ff23b7808f5f115fdc51e6a3be')
version('1.0-14', sha256='c84c122541dc2874131446e23b212259b3b00590d701efee49e6740fd74a8d13')
depends_on('r@3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-multtest/package.py b/var/spack/repos/builtin/packages/r-multtest/package.py
index 3e8667de9f..87a021d35b 100644
--- a/var/spack/repos/builtin/packages/r-multtest/package.py
+++ b/var/spack/repos/builtin/packages/r-multtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RMulttest(RPackage):
- """Resampling-based multiple hypothesis testing.
+ """Resampling-based multiple hypothesis testing
Non-parametric bootstrap and permutation resampling-based multiple
testing procedures (including empirical Bayes methods) for controlling
@@ -30,6 +30,7 @@ class RMulttest(RPackage):
homepage = "https://bioconductor.org/packages/multtest"
git = "https://git.bioconductor.org/packages/multtest.git"
+ version('2.46.0', commit='c4dd27b333c80313a88668b59d0299988c6478a2')
version('2.40.0', commit='5f00017c2d3a31e05e1cfe06d9f7afdee19f8473')
version('2.38.0', commit='4dfe71cecfb298a94521088fb7bd83c5498d2915')
version('2.36.0', commit='babb15e8d110eb72300ad59cf7e53386237a4198')
diff --git a/var/spack/repos/builtin/packages/r-munsell/package.py b/var/spack/repos/builtin/packages/r-munsell/package.py
index 64637d9779..cfb78c60c8 100644
--- a/var/spack/repos/builtin/packages/r-munsell/package.py
+++ b/var/spack/repos/builtin/packages/r-munsell/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-mutoss/package.py b/var/spack/repos/builtin/packages/r-mutoss/package.py
new file mode 100644
index 0000000000..a4d837c338
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-mutoss/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RMutoss(RPackage):
+ """Unified Multiple Testing Procedures
+
+ Designed to ease the application and comparison of multiple hypothesis
+ testing procedures for FWER, gFWER, FDR and FDX. Methods are standardized
+ and usable by the accompanying 'mutossGUI'."""
+
+ homepage = "https://github.com/kornl/mutoss/"
+ url = "https://cloud.r-project.org/src/contrib/mutoss_0.1-12.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/mutoss"
+
+ version('0.1-12', sha256='2889ae3d502157592697124eb86adc14911e2b7fdaa7204743a376b1eeb967fa')
+
+ depends_on('r@2.10.0:', type=('build', 'run'))
+ depends_on('r-mvtnorm', type=('build', 'run'))
+ depends_on('r-plotrix', type=('build', 'run'))
+ depends_on('r-multtest@2.2.0:', type=('build', 'run'))
+ depends_on('r-multcomp@1.1-0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mvtnorm/package.py b/var/spack/repos/builtin/packages/r-mvtnorm/package.py
index b4a10009f1..1efdda0e86 100644
--- a/var/spack/repos/builtin/packages/r-mvtnorm/package.py
+++ b/var/spack/repos/builtin/packages/r-mvtnorm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RMvtnorm(RPackage):
- """Computes multivariate normal and t probabilities, quantiles, random
+ """Multivariate Normal and t Distributions
+
+ Computes multivariate normal and t probabilities, quantiles, random
deviates and densities."""
- homepage = "http://mvtnorm.r-forge.r-project.org/"
+ homepage = "https://mvtnorm.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/mvtnorm_1.0-6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/mvtnorm"
+ version('1.1-1', sha256='e965dad5e93babb7ded25b5ebdbd52332191b61f897d68853a379a07620d45de')
version('1.0-11', sha256='0321612de99aa9bc75a45c7e029d3372736014223cbdefb80d8cae600cbc7252')
version('1.0-10', sha256='31df19cd8b4cab9d9a70dba00442b7684e625d4ca143a2c023c2c5872b07ad12')
version('1.0-6', sha256='4a015b57b645b520151b213eb04b7331598c06442a3f652c7dc149425bd2e444')
diff --git a/var/spack/repos/builtin/packages/r-mzid/package.py b/var/spack/repos/builtin/packages/r-mzid/package.py
index 68f2a2c440..a96b5803b3 100644
--- a/var/spack/repos/builtin/packages/r-mzid/package.py
+++ b/var/spack/repos/builtin/packages/r-mzid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RMzid(RPackage):
- """An mzIdentML parser for R.
+ """An mzIdentML parser for R
A parser for mzIdentML files implemented using the XML package. The
parser tries to be general and able to handle all types of mzIdentML
@@ -18,6 +18,7 @@ class RMzid(RPackage):
homepage = "https://bioconductor.org/packages/mzID"
git = "https://git.bioconductor.org/packages/mzID.git"
+ version('1.28.0', commit='cd006631c8222ce5b4af0577a7401b39cc58fd9c')
version('1.22.0', commit='382d9cf11f0cba996911a9d79e193d28f3ac6042')
version('1.20.1', commit='819582646944440ddd9ed3724ae964841573e54c')
version('1.18.0', commit='7d8924ae95585eb8cf472d21619a7603d291d652')
diff --git a/var/spack/repos/builtin/packages/r-mzr/package.py b/var/spack/repos/builtin/packages/r-mzr/package.py
index 3f11e98fe3..75aad10526 100644
--- a/var/spack/repos/builtin/packages/r-mzr/package.py
+++ b/var/spack/repos/builtin/packages/r-mzr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RMzr(RPackage):
"""parser for netCDF, mzXML, mzData and mzML and mzIdentML files (mass
- spectrometry data).
+ spectrometry data)
mzR provides a unified API to the common file formats and parsers
available for mass spectrometry data. It comes with a wrapper for the
@@ -20,6 +20,7 @@ class RMzr(RPackage):
homepage = "https://bioconductor.org/packages/mzR"
git = "https://git.bioconductor.org/packages/mzR.git"
+ version('2.24.1', commit='e1d4de8761e6729fd45320d842691c8fe9116b7b')
version('2.18.1', commit='13f9f9b1149859c3e29cfce941d958cc4f680546')
version('2.16.2', commit='22d7dad98f46b5bed7f6f7b3a703dcdf5997f709')
version('2.14.0', commit='bf1154bc45101d95b5a67c66980856a779b84bd4')
@@ -30,11 +31,9 @@ class RMzr(RPackage):
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-biocgenerics@0.13.6:', type=('build', 'run'))
depends_on('r-protgenerics', type=('build', 'run'))
- depends_on('r-zlibbioc', type=('build', 'run'))
-
depends_on('r-protgenerics@1.9.1:', when='@2.12.0:', type=('build', 'run'))
- depends_on('r-rhdf5lib@1.1.4:', when='@2.14.0:', type=('build', 'run'))
-
+ depends_on('r-protgenerics@1.17.3:', when='@2.24.1:', type=('build', 'run'))
depends_on('r-ncdf4', when='@2.16.2:', type=('build', 'run'))
-
+ depends_on('r-zlibbioc', type=('build', 'run'))
+ depends_on('r-rhdf5lib@1.1.4:', when='@2.14.0:', type=('build', 'run'))
depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-nada/package.py b/var/spack/repos/builtin/packages/r-nada/package.py
new file mode 100644
index 0000000000..0aa6aad73f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-nada/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RNada(RPackage):
+ """Nondetects and Data Analysis for Environmental Data
+
+ Contains methods described by Dennis Helsel in his book "Nondetects And
+ Data Analysis: Statistics for Censored Environmental Data"."""
+
+ homepage = "https://cloud.r-project.org/package=NADA"
+ url = "https://cloud.r-project.org/src/contrib/NADA_1.6-1.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/NADA"
+
+ version('1.6-1.1', sha256='670ff6595ba074ed0a930b7a09624d5ef20616379a20e768c1a7b37332aee44a')
+
+ depends_on('r@2.10:', type=('build', 'run'))
+ depends_on('r-survival', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nanotime/package.py b/var/spack/repos/builtin/packages/r-nanotime/package.py
index 845f6dcd7a..e9c9861714 100644
--- a/var/spack/repos/builtin/packages/r-nanotime/package.py
+++ b/var/spack/repos/builtin/packages/r-nanotime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,24 @@ from spack import *
class RNanotime(RPackage):
- """Full 64-bit resolution date and time support with resolution up to
- nanosecond granularity is provided, with easy transition to and from
- the standard 'POSIXct' type."""
+ """Nanosecond-Resolution Time Support for R
+
+ Full 64-bit resolution date and time support with resolution up to
+ nanosecond granularity is provided, with easy transition to and from the
+ standard 'POSIXct' type."""
homepage = "https://cloud.r-project.org/package=nanotime"
url = "https://cloud.r-project.org/src/contrib/nanotime_0.2.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/nanotime"
+ version('0.3.2', sha256='9ef53c3bca01b605a9519190117988e170e63865327007c90b05d31fe7f22b1d')
version('0.2.4', sha256='2dfb7e7435fec59634b87563a215467e7793e2711e302749c0533901c74eb184')
version('0.2.3', sha256='7d6df69a4223ae154f610b650e24ece38ce4aa706edfa38bec27d15473229f5d')
version('0.2.0', sha256='9ce420707dc4f0cb4241763579b849d842904a3aa0d88de8ffef334d08fa188d')
depends_on('r-bit64', type=('build', 'run'))
depends_on('r-rcppcctz@0.2.3:', type=('build', 'run'))
+ depends_on('r-rcppcctz@0.2.9:', when='@0.3.2:', type=('build', 'run'))
depends_on('r-zoo', type=('build', 'run'))
+ depends_on('r-rcpp', when='@0.3.2:', type=('build', 'run'))
+ depends_on('r-rcppdate', when='@0.3.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ncbit/package.py b/var/spack/repos/builtin/packages/r-ncbit/package.py
index 021bb6cfbb..cf44c3fb9d 100644
--- a/var/spack/repos/builtin/packages/r-ncbit/package.py
+++ b/var/spack/repos/builtin/packages/r-ncbit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ncdf4/package.py b/var/spack/repos/builtin/packages/r-ncdf4/package.py
index 2e06ef22df..0b5107945d 100644
--- a/var/spack/repos/builtin/packages/r-ncdf4/package.py
+++ b/var/spack/repos/builtin/packages/r-ncdf4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RNcdf4(RPackage):
- """Provides a high-level R interface to data files written using Unidata's
+ """Interface to Unidata netCDF (Version 4 or Earlier) Format Data Files
+
+ Provides a high-level R interface to data files written using Unidata's
netCDF library (version 4 or earlier), which are binary data files that are
portable across platforms and include metadata information in addition to
the data sets. Using this package, netCDF files (either version 4 or
@@ -22,10 +24,11 @@ class RNcdf4(RPackage):
packages installed simultaneously without a problem. However, the ncdf
package does not provide an interface for netcdf version 4 files."""
- homepage = "http://cirrus.ucsd.edu/~pierce/ncdf"
+ homepage = "https://cirrus.ucsd.edu/~pierce/ncdf"
url = "https://cloud.r-project.org/src/contrib/ncdf4_1.15.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ncdf4"
+ version('1.17', sha256='db95c4729d3187d1a56dfd019958216f442be6221bd15e23cd597e6129219af6')
version('1.16.1', sha256='0dde2d6d1e8474f4abd15a61af8a2f7de564f13da00f1a01d7a479ab88587a20')
version('1.16', sha256='edd5731a805bbece3a8f6132c87c356deafc272351e1dd07256ca00574949253')
version('1.15', sha256='d58298f4317c6c80a041a70216126492fd09ba8ecde9da09d5145ae26f324d4d')
diff --git a/var/spack/repos/builtin/packages/r-network/package.py b/var/spack/repos/builtin/packages/r-network/package.py
index 82279fc8a4..3ab76f7a3c 100644
--- a/var/spack/repos/builtin/packages/r-network/package.py
+++ b/var/spack/repos/builtin/packages/r-network/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class RNetwork(RPackage):
- """Tools to create and modify network objects. The network class can
- represent a range of relational data types, and supports
- arbitrary vertex/edge/graph attributes."""
+ """Classes for Relational Data
+
+ Tools to create and modify network objects. The network class can represent
+ a range of relational data types, and supports arbitrary vertex/edge/graph
+ attributes."""
homepage = "https://statnet.org"
url = "https://cloud.r-project.org/src/contrib/network_1.13.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/network"
+ version('1.16.1', sha256='eb6435794cacc81abe1664391e8dcf1c10112bbb76fff9016dd6dbb8e83efeb1')
version('1.15', sha256='5cbe5c0369e5f8363e33a86f14fd33ce8727166106381627ecd13b7452e14cb3')
version('1.14-377', sha256='013c02f8d97f1f87f2c421760534df9353d2a8c2277f20b46b59fb79822d3e46')
version('1.13.0', sha256='7a04ea89261cdf32ccb52222810699d5fca59a849053e306b5ec9dd5c1184f87')
diff --git a/var/spack/repos/builtin/packages/r-networkd3/package.py b/var/spack/repos/builtin/packages/r-networkd3/package.py
index bcef714f11..3a5f6fbc91 100644
--- a/var/spack/repos/builtin/packages/r-networkd3/package.py
+++ b/var/spack/repos/builtin/packages/r-networkd3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-neuralnet/package.py b/var/spack/repos/builtin/packages/r-neuralnet/package.py
new file mode 100644
index 0000000000..b02110ff91
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-neuralnet/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RNeuralnet(RPackage):
+ """Training of neural networks using backpropagation, resilient
+ backpropagation with (Riedmiller, 1994) or without weight backtracking
+ (Riedmiller and Braun, 1993) or the modified globally convergent version by
+ Anastasiadis et al. (2005). The package allows flexible settings through
+ custom-choice of error and activation function. Furthermore, the calculation of
+ generalized weights (Intrator O & Intrator N, 1993) is implemented."""
+
+ homepage = "https://cloud.r-project.org/package=neuralnet"
+ url = "https://cloud.r-project.org/src/contrib/neuralnet_1.44.2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/neuralnet"
+
+ version('1.44.2', sha256='5f66cd255db633322c0bd158b9320cac5ceff2d56f93e4864a0540f936028826')
+
+ depends_on('r@2.9.0:', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-deriv', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nfactors/package.py b/var/spack/repos/builtin/packages/r-nfactors/package.py
new file mode 100644
index 0000000000..5f6f1bfc37
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-nfactors/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RNfactors(RPackage):
+ """nFactors: Parallel Analysis and Other Non Graphical Solutions to the
+ Cattell Scree Test"""
+
+ homepage = "https://cloud.r-project.org/package=nFactors"
+ url = "https://cloud.r-project.org/src/contrib/nFactors_2.4.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/nFactors"
+
+ version('2.4.1', sha256='028eb4ebd42a29f6a01297d728c7e353cabb37b46701639b4a52f17ba25a3eb6')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-lattice', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-psych', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nimble/package.py b/var/spack/repos/builtin/packages/r-nimble/package.py
index c0cd1c2b40..d72feb6097 100644
--- a/var/spack/repos/builtin/packages/r-nimble/package.py
+++ b/var/spack/repos/builtin/packages/r-nimble/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,17 +6,29 @@
from spack import *
-class RNimble(AutotoolsPackage):
- """A system for writing hierarchical statistical models largely
- compatible with 'BUGS' and 'JAGS', writing nimbleFunctions to
- operate models and do basic R-style math, and compiling both
- models and nimbleFunctions via custom- generated C++.
- """
+class RNimble(RPackage):
+ """MCMC, Particle Filtering, and Programmable Hierarchical Modeling
+
+ A system for writing hierarchical statistical models largely compatible
+ with 'BUGS' and 'JAGS', writing nimbleFunctions to operate models and do
+ basic R-style math, and compiling both models and nimbleFunctions via
+ custom-generated C++. 'NIMBLE' includes default methods for MCMC, Monte
+ Carlo Expectation Maximization, and some other tools. The nimbleFunction
+ system makes it easy to do things like implement new MCMC samplers from R,
+ customize the assignment of samplers to different parts of a model from R,
+ and compile the new samplers automatically via C++ alongside the samplers
+ 'NIMBLE' provides. 'NIMBLE' extends the 'BUGS'/'JAGS' language by making it
+ extensible: New distributions and functions can be added, including as
+ calls to external compiled code. Although most people think of MCMC as the
+ main goal of the 'BUGS'/'JAGS' language for writing models, one can use
+ 'NIMBLE' for writing arbitrary other kinds of model-generic algorithms as
+ well. A full User Manual is available at <https://r-nimble.org>."""
homepage = "https://cloud.r-project.org/package=nimble"
url = "https://cloud.r-project.org/src/contrib/nimble_0.9.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/nimble"
+ version('0.10.1', sha256='11e248fda442f233c3590640efd9381c9b4b2e6fb66dce45a3391db03b70e702')
version('0.9.1', sha256='ad5e8a171193cb0172e68bf61c4f94432c45c131a150101ad1c5c7318c335757')
version('0.9.0', sha256='ebc28fadf933143eea73900cacaf96ff81cb3c2d607405016062b7e93afa5611')
@@ -24,4 +36,4 @@ class RNimble(AutotoolsPackage):
depends_on('r-igraph', type=('build', 'run'))
depends_on('r-coda', type=('build', 'run'))
depends_on('r-r6', type=('build', 'run'))
- depends_on('automake')
+ depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-nleqslv/package.py b/var/spack/repos/builtin/packages/r-nleqslv/package.py
index 37968fe777..1d44466207 100644
--- a/var/spack/repos/builtin/packages/r-nleqslv/package.py
+++ b/var/spack/repos/builtin/packages/r-nleqslv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-nlme/package.py b/var/spack/repos/builtin/packages/r-nlme/package.py
index 483cc68a75..8e9a253e09 100644
--- a/var/spack/repos/builtin/packages/r-nlme/package.py
+++ b/var/spack/repos/builtin/packages/r-nlme/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,16 @@ from spack import *
class RNlme(RPackage):
- """Fit and compare Gaussian linear and nonlinear mixed-effects models."""
+ """Fit and compare Gaussian linear and nonlinear mixed-effects models
+
+ Fit and compare Gaussian linear and nonlinear mixed-effects models."""
homepage = "https://cloud.r-project.org/package=nlme"
url = "https://cloud.r-project.org/src/contrib/nlme_3.1-130.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/nlme"
+ version('3.1-152', sha256='5b65d1b1f121caf29e60341acf6d85e267fd94ed517748cf42d36359f74e515e')
+ version('3.1-151', sha256='a2c626bad68bf582663005170d1b9d844a10dca8efb13597f15ffb4b1fe886ca')
version('3.1-141', sha256='910046260a03d8f776ac7b0766b5adee91556829d0d8a70165b2c695ce038056')
version('3.1-139', sha256='0460fc69d85122177e7ef01bad665d56bcaf63d31bdbfdbdfdcba2c082085739')
version('3.1-131', sha256='79daa167eb9bc7d8dba506da4b24b5250665b051d4e0a51dfccbb0087fdb564c')
diff --git a/var/spack/repos/builtin/packages/r-nloptr/package.py b/var/spack/repos/builtin/packages/r-nloptr/package.py
index 2e95081b91..92e83ded04 100644
--- a/var/spack/repos/builtin/packages/r-nloptr/package.py
+++ b/var/spack/repos/builtin/packages/r-nloptr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,23 +7,27 @@ from spack import *
class RNloptr(RPackage):
- """nloptr is an R interface to NLopt. NLopt is a free/open-source
- library for nonlinear optimization, providing a common interface
- for a number of different free optimization routines available
- online as well as original implementations of various other
- algorithms. See http://ab-initio.mit.edu/wiki/index.php/NLopt
- _Introduction for more information on the available algorithms.
- During installation on Unix the NLopt code is downloaded and
- compiled from the NLopt website."""
+ """R Interface to NLopt
+
+ Solve optimization problems using an R interface to NLopt. NLopt is a
+ free/open-source library for nonlinear optimization, providing a common
+ interface for a number of different free optimization routines available
+ online as well as original implementations of various other algorithms. See
+ <http://ab-initio.mit.edu/wiki/index.php/NLopt_Introduction> for more
+ information on the available algorithms. During installation of nloptr on
+ Unix-based systems, the installer checks whether the NLopt library is
+ installed on the system. If the NLopt library cannot be found, the code is
+ compiled using the NLopt source included in the nloptr package."""
homepage = "https://cloud.r-project.org/package=nloptr"
url = "https://cloud.r-project.org/src/contrib/nloptr_1.0.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/nloptr"
+ version('1.2.2.2', sha256='e80ea9619ac18f4bfe44812198b40b9ae5c0ddf3f9cc91778f9ccc82168d1372')
version('1.2.1', sha256='1f86e33ecde6c3b0d2098c47591a9cd0fa41fb973ebf5145859677492730df97')
version('1.0.4', sha256='84225b993cb1ef7854edda9629858662cc8592b0d1344baadea4177486ece1eb')
- depends_on('nlopt')
+ depends_on('nlopt@2.4.0:')
def configure_args(self):
include_flags = self.spec['nlopt'].headers.include_flags
diff --git a/var/spack/repos/builtin/packages/r-nmf/package.py b/var/spack/repos/builtin/packages/r-nmf/package.py
index 480451367f..d100c8bb6d 100644
--- a/var/spack/repos/builtin/packages/r-nmf/package.py
+++ b/var/spack/repos/builtin/packages/r-nmf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,20 @@ from spack import *
class RNmf(RPackage):
- """Provides a framework to perform Non-negative Matrix Factorization (NMF).
+ """Algorithms and Framework for Nonnegative Matrix Factorization (NMF)
+
+ Provides a framework to perform Non-negative Matrix Factorization (NMF).
The package implements a set of already published algorithms and seeding
methods, and provides a framework to test, develop and plug new/custom
algorithms. Most of the built-in algorithms have been optimized in C++, and
the main interface function provides an easy way of performing parallel
- computations on multicore machines.."""
+ computations on multicore machines."""
- homepage = "http://renozao.github.io/NMF"
+ homepage = "https://renozao.github.io/NMF"
url = "https://cloud.r-project.org/src/contrib/NMF_0.21.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/NMF"
+ version('0.23.0', sha256='0f0cca01b37bf46fce90d2e951df609d3d377908aa607825083fd0c47cc24753')
version('0.21.0', sha256='3b30c81c66066fab4a63c5611a0313418b840d8b63414db31ef0e932872d02e3')
depends_on('r@3.0.0:', type=('build', 'run'))
@@ -34,3 +37,5 @@ class RNmf(RPackage):
depends_on('r-doparallel', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
depends_on('r-reshape2', type=('build', 'run'))
+ depends_on('r-biocmanager', when='@0.23.0', type=('build', 'run'))
+ depends_on('r-biobase', when='@0.23.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nmof/package.py b/var/spack/repos/builtin/packages/r-nmof/package.py
index 1e43a1faeb..35aefc8156 100644
--- a/var/spack/repos/builtin/packages/r-nmof/package.py
+++ b/var/spack/repos/builtin/packages/r-nmof/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RNmof(RPackage):
- """Functions, examples and data from the book "Numerical Methods and
+ """Numerical Methods and Optimization in Finance
+
+ Functions, examples and data from the book "Numerical Methods and
Optimization in Finance" by M. Gilli, D. Maringer and E. Schumann (2011),
ISBN 978-0123756626. The package provides implementations of several
optimisation heuristics, such as Differential Evolution, Genetic Algorithms
@@ -19,6 +21,7 @@ class RNmof(RPackage):
url = "https://cloud.r-project.org/src/contrib/NMOF_1.6-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/NMOF"
+ version('2.2-2', sha256='e64472f89023f0d779a35df753747d750174ce89644a9142312a1d2dc6f24642')
version('1.6-0', sha256='5484cd43c28aaf23d560c2dde8bcd8dd440a205d2214eb50e02fe0bb42ec2755')
depends_on('r@2.14:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nnet/package.py b/var/spack/repos/builtin/packages/r-nnet/package.py
index 4e03f0032f..5f5ad228d3 100644
--- a/var/spack/repos/builtin/packages/r-nnet/package.py
+++ b/var/spack/repos/builtin/packages/r-nnet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,17 @@ from spack import *
class RNnet(RPackage):
- """Software for feed-forward neural networks with a single hidden layer,
+ """Feed-Forward Neural Networks and Multinomial Log-Linear Models
+
+ Software for feed-forward neural networks with a single hidden layer,
and for multinomial log-linear models."""
- homepage = "http://www.stats.ox.ac.uk/pub/MASS4/"
+ homepage = "https://www.stats.ox.ac.uk/pub/MASS4/"
url = "https://cloud.r-project.org/src/contrib/nnet_7.3-12.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/nnet"
+ version('7.3-14', sha256='5d1b9e9764d74d16c651f18f949aa4e9e2995ba64633cbfa2c6a7355ae30f4af')
version('7.3-12', sha256='2723523e8581cc0e2215435ac773033577a16087a3f41d111757dd96b8c5559d')
depends_on('r@2.14:', type=('build', 'run'))
+ depends_on('r@3.0.0:', when='@7.3-14:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nnls/package.py b/var/spack/repos/builtin/packages/r-nnls/package.py
index fff636f8a9..f4baf999f3 100644
--- a/var/spack/repos/builtin/packages/r-nnls/package.py
+++ b/var/spack/repos/builtin/packages/r-nnls/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-nonnest2/package.py b/var/spack/repos/builtin/packages/r-nonnest2/package.py
new file mode 100644
index 0000000000..4c2df4cbc6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-nonnest2/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RNonnest2(RPackage):
+ """Tests of Non-Nested Models:
+
+ Testing non-nested models via theory supplied by Vuong (1989)
+ <doi:10.2307/1912557>. Includes tests of model distinguishability and of
+ model fit that can be applied to both nested and non-nested models. Also
+ includes functionality to obtain confidence intervals associated with AIC
+ and BIC. This material is partially based on work supported by the National
+ Science Foundation under Grant Number SES-1061334."""
+
+ cran = "nonnest2"
+
+ version('0.5-5', sha256='027f510e322122fc75c936251a95ddd392f96047ac86e0fae6cf8f883ac7aab5')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-compquadform', type=('build', 'run'))
+ depends_on('r-mvtnorm', type=('build', 'run'))
+ depends_on('r-lavaan@0.6-6:', type=('build', 'run'))
+ depends_on('r-sandwich', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nor1mix/package.py b/var/spack/repos/builtin/packages/r-nor1mix/package.py
index 8c9a234766..35b5dc33dc 100644
--- a/var/spack/repos/builtin/packages/r-nor1mix/package.py
+++ b/var/spack/repos/builtin/packages/r-nor1mix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-nortest/package.py b/var/spack/repos/builtin/packages/r-nortest/package.py
index 112071de5d..567669412b 100644
--- a/var/spack/repos/builtin/packages/r-nortest/package.py
+++ b/var/spack/repos/builtin/packages/r-nortest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-np/package.py b/var/spack/repos/builtin/packages/r-np/package.py
index 57c9b8c21c..5cb03454b5 100644
--- a/var/spack/repos/builtin/packages/r-np/package.py
+++ b/var/spack/repos/builtin/packages/r-np/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RNp(RPackage):
- """This package provides a variety of nonparametric (and semiparametric)
+ """Nonparametric Kernel Smoothing Methods for Mixed Data Types
+
+ This package provides a variety of nonparametric (and semiparametric)
kernel methods that seamlessly handle a mix of continuous, unordered, and
ordered factor data types. We would like to gratefully acknowledge support
from the Natural Sciences and Engineering Research Council of Canada
@@ -19,6 +21,7 @@ class RNp(RPackage):
url = "https://cloud.r-project.org/src/contrib/np_0.60-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/np"
+ version('0.60-10', sha256='a27b4bbca8b83a289c98920c1c8f5e9979ba9772086893252a4297dd2698081a')
version('0.60-9', sha256='fe31a8985f0b1a576a7775022b7131093b1c9a8337734136d5fcad85fa6592fc')
version('0.60-8', sha256='924c342feb2a862fa3871a45db5f8434dbbfb900cfc40c001a0872108a3a069e')
version('0.60-2', sha256='25d667fc1056899516584b9d5d933377e6f4694d8e5e868dd047db572b69417f')
diff --git a/var/spack/repos/builtin/packages/r-npsurv/package.py b/var/spack/repos/builtin/packages/r-npsurv/package.py
index 1f9d5c63c7..f1eccb250c 100644
--- a/var/spack/repos/builtin/packages/r-npsurv/package.py
+++ b/var/spack/repos/builtin/packages/r-npsurv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,20 @@ from spack import *
class RNpsurv(RPackage):
- """Contains functions for non-parametric survival analysis of exact and
- interval-censored observations."""
+ """Nonparametric Survival Analysis
+
+ Non-parametric survival analysis of exact and interval-censored
+ observations. The methods implemented are developed by Wang (2007)
+ <doi:10.1111/j.1467-9868.2007.00583.x>, Wang (2008)
+ <doi:10.1016/j.csda.2007.10.018>, Wang and Taylor (2013)
+ <doi:10.1007/s11222-012-9341-9> and Wang and Fani (2018)
+ <doi:10.1007/s11222-017-9724-z>."""
homepage = "https://www.stat.auckland.ac.nz/~yongwang"
url = "https://cloud.r-project.org/src/contrib/npsurv_0.4-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/npsurv"
+ version('0.5-0', sha256='bc87db76e7017e178c2832a684fcd49c42e20054644b21b586413d26c8821dc6')
version('0.4-0', sha256='404cf7135dc40a04e9b81224a543307057a8278e11109ba1fcaa28e87c6204f3')
depends_on('r-lsei', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-numderiv/package.py b/var/spack/repos/builtin/packages/r-numderiv/package.py
index 925987a0f1..92416670d9 100644
--- a/var/spack/repos/builtin/packages/r-numderiv/package.py
+++ b/var/spack/repos/builtin/packages/r-numderiv/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-oligoclasses/package.py b/var/spack/repos/builtin/packages/r-oligoclasses/package.py
index ff553e2a6a..7c24b1333a 100644
--- a/var/spack/repos/builtin/packages/r-oligoclasses/package.py
+++ b/var/spack/repos/builtin/packages/r-oligoclasses/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class ROligoclasses(RPackage):
- """Classes for high-throughput arrays supported by oligo and crlmm.
+ """Classes for high-throughput arrays supported by oligo and crlmm
This package contains class definitions, validity checks, and
initialization methods for classes used by the oligo and crlmm
@@ -16,6 +16,7 @@ class ROligoclasses(RPackage):
homepage = "https://bioconductor.org/packages/oligoClasses"
git = "https://git.bioconductor.org/packages/oligoClasses.git"
+ version('1.52.0', commit='7995efbd2d26b8fa950830d62db92bdaf5cbeeea')
version('1.46.0', commit='325684f66fc92f778098f24bcfbef0ce3da9717c')
version('1.44.0', commit='d3e1134cdbea5f95b83215dc66e5f7b6a1cd0638')
version('1.42.0', commit='ef125700d487b470281a9c1e985390633c4dd2bd')
@@ -24,19 +25,17 @@ class ROligoclasses(RPackage):
depends_on('r@2.14:', type=('build', 'run'))
depends_on('r-biocgenerics@0.3.2:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.27.1:', when='@1.44.0:', type=('build', 'run'))
depends_on('r-biobase@2.17.8:', type=('build', 'run'))
depends_on('r-iranges@2.5.17:', type=('build', 'run'))
depends_on('r-genomicranges@1.23.7:', type=('build', 'run'))
depends_on('r-summarizedexperiment', type=('build', 'run'))
depends_on('r-biostrings@2.23.6:', type=('build', 'run'))
depends_on('r-affyio@1.23.2:', type=('build', 'run'))
- depends_on('r-ff', type=('build', 'run'))
depends_on('r-foreach', type=('build', 'run'))
- depends_on('r-biocinstaller', when='@1.38.0:1.42.0', type=('build', 'run'))
+ depends_on('r-biocmanager', when='@1.44.0:', type=('build', 'run'))
depends_on('r-s4vectors@0.9.25:', type=('build', 'run'))
depends_on('r-rsqlite', type=('build', 'run'))
-
depends_on('r-dbi', when='@1.40.0:', type=('build', 'run'))
-
- depends_on('r-biocgenerics@0.27.1:', when='@1.44.0:', type=('build', 'run'))
- depends_on('r-biocmanager', when='@1.44.0:', type=('build', 'run'))
+ depends_on('r-ff', type=('build', 'run'))
+ depends_on('r-biocinstaller', when='@:1.42.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-openssl/package.py b/var/spack/repos/builtin/packages/r-openssl/package.py
index 71f648b480..b493fff84d 100644
--- a/var/spack/repos/builtin/packages/r-openssl/package.py
+++ b/var/spack/repos/builtin/packages/r-openssl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class ROpenssl(RPackage):
- """Bindings to OpenSSL libssl and libcrypto, plus custom SSH pubkey
+ """Toolkit for Encryption, Signatures and Certificates Based on OpenSSL
+
+ Bindings to OpenSSL libssl and libcrypto, plus custom SSH pubkey
parsers. Supports RSA, DSA and EC curves P-256, P-384 and P-521.
Cryptographic signatures can either be created and verified manually or via
x509 certificates. AES can be used in cbc, ctr or gcm mode for symmetric
@@ -22,6 +24,7 @@ class ROpenssl(RPackage):
url = "https://cloud.r-project.org/src/contrib/openssl_0.9.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/openssl"
+ version('1.4.3', sha256='342001df8ecff5df2cdf757f123d35ea4b449751045f708b91f27c1be0d48269')
version('1.4.1', sha256='f7fbecc75254fc43297a95a4338c674ab9ba2ec056b59e027d16d23122161fc6')
version('1.3', sha256='1c83f4d529adc1f5ec40e477c690a8d5b0a42422f3e542f1fc39062dcfaca4bf')
version('0.9.7', sha256='697d9e86f99270163744538dc3dc4d19d00af89a8570a1d304b110e1d2650e9d')
diff --git a/var/spack/repos/builtin/packages/r-openxlsx/package.py b/var/spack/repos/builtin/packages/r-openxlsx/package.py
index 9c7d4326e5..0901653f17 100644
--- a/var/spack/repos/builtin/packages/r-openxlsx/package.py
+++ b/var/spack/repos/builtin/packages/r-openxlsx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class ROpenxlsx(RPackage):
- """Simplifies the creation of Excel .xlsx files by providing a high level
+ """Read, Write and Edit xlsx Files
+
+ Simplifies the creation of Excel .xlsx files by providing a high level
interface to writing, styling and editing worksheets. Through the use of
'Rcpp', read/write times are comparable to the 'xlsx' and 'XLConnect'
packages with the added benefit of removing the dependency on Java."""
@@ -16,8 +18,10 @@ class ROpenxlsx(RPackage):
url = "https://cloud.r-project.org/src/contrib/openxlsx_4.1.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/openxlsx"
+ version('4.2.3', sha256='cdef89d826e50bef772af3e5eae935ca0316626a6e22f55f7631eac733b5e46f')
version('4.1.0.1', sha256='8b7011debe14714de035ef42797c8caa923162d5dc3cc3c2a299fc10eff3d4d1')
depends_on('r@3.3.0:', type=('build', 'run'))
depends_on('r-rcpp', type=('build', 'run'))
depends_on('r-zip', type=('build', 'run'))
+ depends_on('r-stringi', when='@4.2.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-optimx/package.py b/var/spack/repos/builtin/packages/r-optimx/package.py
new file mode 100644
index 0000000000..fc60567e37
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-optimx/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 ROptimx(RPackage):
+ """Expanded Replacement and Extension of the 'optim' Function:
+
+ Provides a replacement and extension of the optim() function to call to
+ several function minimization codes in R in a single statement. These
+ methods handle smooth, possibly box constrained functions of several or
+ many parameters. Note that function 'optimr()' was prepared to simplify the
+ incorporation of minimization codes going forward. Also implements some
+ utility codes and some extra solvers, including safeguarded Newton methods.
+ Many methods previously separate are now included here. This is the version
+ for CRAN."""
+
+ cran = "optimx"
+
+ version('2020-4.2', sha256='6381c25c322287fc98ab1b2965d3f68c9a92c587c76aca1d33fd6428b2167101')
+
+ depends_on('r-numderiv', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-optparse/package.py b/var/spack/repos/builtin/packages/r-optparse/package.py
index ae987142db..313cb293ec 100644
--- a/var/spack/repos/builtin/packages/r-optparse/package.py
+++ b/var/spack/repos/builtin/packages/r-optparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class ROptparse(RPackage):
- """A command line parser inspired by Python's 'optparse' library to be used
- with Rscript to write "#!" shebang scripts that accept short and long
- flag/options"""
+ """Command Line Option Parser
+
+ A command line parser inspired by Python's 'optparse' library to be used
+ with Rscript to write "#!" shebang scripts that accept short and long
+ flag/options"""
homepage = "https://cloud.r-project.org/package=optparse"
url = "https://cloud.r-project.org/src/contrib/optparse_1.6.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/optparse"
+ version('1.6.6', sha256='51779d497146e9354b1153713d939e81551e08948c2b00e4b117b1377c0b60d0')
version('1.6.2', sha256='b5a5a49ae05005f20359868329b73daac83d50f5e088981dcf5c41399534377f')
version('1.6.1', sha256='819be3eff54cb7f3f18703eed9714fc655290ab8e169f87605433d069b597e13')
version('1.6.0', sha256='10e816bb8f5b08d52cfd3a0028903a8c62ef9cf7bfd85f9dae8af442e82bfbb4')
diff --git a/var/spack/repos/builtin/packages/r-ordinal/package.py b/var/spack/repos/builtin/packages/r-ordinal/package.py
index 0345f8f040..08c933573d 100644
--- a/var/spack/repos/builtin/packages/r-ordinal/package.py
+++ b/var/spack/repos/builtin/packages/r-ordinal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class ROrdinal(RPackage):
- """Implementation of cumulative link (mixed) models also known as ordered
+ """Regression Models for Ordinal Data
+
+ Implementation of cumulative link (mixed) models also known as ordered
regression models, proportional odds models, proportional hazards models
for grouped survival times and ordered logit/probit/... models. Estimation
is via maximum likelihood and mixed models are fitted with the Laplace
@@ -23,6 +25,7 @@ class ROrdinal(RPackage):
url = "https://cloud.r-project.org/src/contrib/ordinal_2019.4-25.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ordinal"
+ version('2019.12-10', sha256='7a41e7b7e852a8fa3e911f8859d36e5709ccec5ca42ee3de14a813b7aaac7725')
version('2019.4-25', sha256='2812ad7a123cae5dbe053d1fe5f2d9935afc799314077eac185c844e3c9d79df')
depends_on('r@2.13.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-org-hs-eg-db/package.py b/var/spack/repos/builtin/packages/r-org-hs-eg-db/package.py
index d0ce1a26e0..c2668dc61b 100644
--- a/var/spack/repos/builtin/packages/r-org-hs-eg-db/package.py
+++ b/var/spack/repos/builtin/packages/r-org-hs-eg-db/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,25 @@ from spack import *
class ROrgHsEgDb(RPackage):
- """Genome wide annotation for Human, primarily based on mapping
- using Entrez Gene identifiers."""
+ """Genome wide annotation for Human
+
+ Genome wide annotation for Human, primarily based on mapping using Entrez
+ Gene identifiers."""
homepage = "https://bioconductor.org/packages/org.Hs.eg.db/"
url = "https://www.bioconductor.org/packages/3.5/data/annotation/src/contrib/org.Hs.eg.db_3.4.1.tar.gz"
- version('3.8.2', sha256='a0a16b7428f9e3d6ba54ebf4e05cd97a7bd298510ec4cf46ed2bed3e8f80db02',
+ version('3.12.0',
+ sha256='48a1ab5347ec7a8602c555d9aba233102b61ffa2765826e5c8890ff0003249bb',
+ url='https://www.bioconductor.org/packages/3.12/data/annotation/src/contrib/org.Hs.eg.db_3.12.0.tar.gz')
+ version('3.8.2',
+ sha256='a0a16b7428f9e3d6ba54ebf4e05cd97a7bd298510ec4cf46ed2bed3e8f80db02',
url='https://www.bioconductor.org/packages/3.9/data/annotation/src/contrib/org.Hs.eg.db_3.8.2.tar.gz')
- version('3.4.1', sha256='0f87b3f1925a1d7007e5ad9200bdf511788bd1d7cb76f1121feeb109889c2b00')
-
- depends_on('r@2.7.0:', when='@3.4.1:', type=('build', 'run'))
+ version('3.4.1',
+ sha256='0f87b3f1925a1d7007e5ad9200bdf511788bd1d7cb76f1121feeb109889c2b00',
+ url='https://www.bioconductor.org/packages/3.5/data/annotation/src/contrib/org.Hs.eg.db_3.4.1.tar.gz')
- depends_on('r-annotationdbi@1.37.4:', when='@3.4.1:', type=('build', 'run'))
+ depends_on('r@2.7.0:', type=('build', 'run'))
+ depends_on('r-annotationdbi@1.37.4:', type=('build', 'run'))
depends_on('r-annotationdbi@1.43.1:', when='@3.8.2:', type=('build', 'run'))
+ depends_on('r-annotationdbi@1.51.3:', when='@3.12.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-organismdbi/package.py b/var/spack/repos/builtin/packages/r-organismdbi/package.py
index 3fe6243c6a..db674d3889 100644
--- a/var/spack/repos/builtin/packages/r-organismdbi/package.py
+++ b/var/spack/repos/builtin/packages/r-organismdbi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class ROrganismdbi(RPackage):
"""Software to enable the smooth interfacing of different database
- packages.
+ packages
The package enables a simple unified interface to several annotation
packages each of which has its own schema by taking advantage of the
@@ -17,6 +17,7 @@ class ROrganismdbi(RPackage):
homepage = "https://bioconductor.org/packages/OrganismDbi"
git = "https://git.bioconductor.org/packages/OrganismDbi.git"
+ version('1.32.0', commit='c8100c4fea17bf1b10d4efacc73a7e2866d649e3')
version('1.26.0', commit='495b4a8f8264d06d827537d43b3c6cc705244bb5')
version('1.24.0', commit='3428952dc0f267a01e256a1c0873656cfbfde7f8')
version('1.22.0', commit='24e953eb3847222d8018103b79b9fc72483cc513')
@@ -27,15 +28,14 @@ class ROrganismdbi(RPackage):
depends_on('r-biocgenerics@0.15.10:', type=('build', 'run'))
depends_on('r-annotationdbi@1.33.15:', type=('build', 'run'))
depends_on('r-genomicfeatures@1.23.31:', type=('build', 'run'))
+ depends_on('r-genomicfeatures@1.39.4:', when='@1.32.0:', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
- depends_on('r-biocinstaller', when='@1.18.1:1.22.0', type=('build', 'run'))
+ depends_on('r-biocmanager', when='@1.24.0:', type=('build', 'run'))
depends_on('r-genomicranges', type=('build', 'run'))
+ depends_on('r-genomicranges@1.31.13:', when='@1.22.0:', type=('build', 'run'))
depends_on('r-graph', type=('build', 'run'))
depends_on('r-iranges', type=('build', 'run'))
depends_on('r-rbgl', type=('build', 'run'))
depends_on('r-dbi', type=('build', 'run'))
depends_on('r-s4vectors@0.9.25:', type=('build', 'run'))
-
- depends_on('r-genomicranges@1.31.13:', when='@1.22.0:', type=('build', 'run'))
-
- depends_on('r-biocmanager', when='@1.24.0:', type=('build', 'run'))
+ depends_on('r-biocinstaller', when='@:1.22.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-packrat/package.py b/var/spack/repos/builtin/packages/r-packrat/package.py
index 500de7626b..4a897ab431 100644
--- a/var/spack/repos/builtin/packages/r-packrat/package.py
+++ b/var/spack/repos/builtin/packages/r-packrat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-pacman/package.py b/var/spack/repos/builtin/packages/r-pacman/package.py
index 41e75f06ca..b4b021ce98 100644
--- a/var/spack/repos/builtin/packages/r-pacman/package.py
+++ b/var/spack/repos/builtin/packages/r-pacman/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-paleotree/package.py b/var/spack/repos/builtin/packages/r-paleotree/package.py
index 2464042e3b..030deeb29c 100644
--- a/var/spack/repos/builtin/packages/r-paleotree/package.py
+++ b/var/spack/repos/builtin/packages/r-paleotree/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,14 +8,16 @@ from spack import *
class RPaleotree(RPackage):
- """Provides tools for transforming, a posteriori
- time-scaling, and modifying phylogenies containing
- extinct (i.e. fossil) lineages"""
+ """Paleontological and Phylogenetic Analyses of Evolution
+
+ Provides tools for transforming, a posteriori time-scaling, and modifying
+ phylogenies containing extinct (i.e. fossil) lineages"""
homepage = "https://github.com/dwbapst/paleotree"
url = "https://cloud.r-project.org/src/contrib/paleotree_3.1.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/paleotree"
+ version('3.3.25', sha256='aa64b9120075581229439227a12db776d052b03eb5f9721692a16a9402ac8712')
version('3.3.0', sha256='f8f6b0228dd5290b251cad3a8626689442b5aa793d8f072c8c2c7813a063df90')
version('3.1.3', sha256='4c1cc8a5e171cbbbd88f78914f86d5e6d144ae573816fbeeff2ab54a814ec614')
diff --git a/var/spack/repos/builtin/packages/r-pamr/package.py b/var/spack/repos/builtin/packages/r-pamr/package.py
index c7cb41c6d1..699e4657bc 100644
--- a/var/spack/repos/builtin/packages/r-pamr/package.py
+++ b/var/spack/repos/builtin/packages/r-pamr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-pan/package.py b/var/spack/repos/builtin/packages/r-pan/package.py
index f39d8f9fee..c19f6b6c81 100644
--- a/var/spack/repos/builtin/packages/r-pan/package.py
+++ b/var/spack/repos/builtin/packages/r-pan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-parallelly/package.py b/var/spack/repos/builtin/packages/r-parallelly/package.py
new file mode 100644
index 0000000000..e46b79b6d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-parallelly/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RParallelly(RPackage):
+ """Enhancing the 'parallel' Package
+
+ Utility functions that enhance the 'parallel' package and support the
+ built-in parallel backends of the 'future' package. For example,
+ availableCores() gives the number of CPU cores available to your R process
+ as given by the operating system, 'cgroups' and Linux containers, R
+ options, and environment variables, including those set by job schedulers
+ on high-performance compute clusters. If none is set, it will fall back to
+ parallel::detectCores(). Another example is makeClusterPSOCK(), which is
+ backward compatible with parallel::makePSOCKcluster() while doing a better
+ job in setting up remote cluster workers without the need for configuring
+ the firewall to do port-forwarding to your local computer."""
+
+ homepage = "https://github.com/HenrikBengtsson/parallelly"
+ url = "https://cloud.r-project.org/src/contrib/parallelly_1.23.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/parallelly"
+
+ version('1.23.0', sha256='376ce2381587380a4da60f9563710d63084a605f93aa364e9349f2523e83bc08')
diff --git a/var/spack/repos/builtin/packages/r-parallelmap/package.py b/var/spack/repos/builtin/packages/r-parallelmap/package.py
index a0d047ace2..7738685c3c 100644
--- a/var/spack/repos/builtin/packages/r-parallelmap/package.py
+++ b/var/spack/repos/builtin/packages/r-parallelmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,20 @@ from spack import *
class RParallelmap(RPackage):
- """Unified parallelization framework for multiple back-end, designed for
- internal package and interactive usage. The main operation is a parallel
- "map" over lists. Supports local, multicore, mpi and BatchJobs mode.
- Allows "tagging" of the parallel operation with a level name that can be
- later selected by the user to switch on parallel execution for exactly
- this operation."""
+ """Unified Interface to Parallelization Back-Ends
+
+ Unified parallelization framework for multiple back-end, designed for
+ internal package and interactive usage. The main operation is a parallel
+ "map" over lists. Supports local, multicore, mpi and BatchJobs mode.
+ Allows "tagging" of the parallel operation with a level name that can be
+ later selected by the user to switch on parallel execution for exactly this
+ operation."""
homepage = "https://github.com/berndbischl/parallelMap"
url = "https://cloud.r-project.org/src/contrib/parallelMap_1.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/parallelMap"
+ version('1.5.0', sha256='4afa727f4786279718cc799e45e91859a46f5cbc1ee652b0f47ae3b9f9d45e4e')
version('1.4', sha256='fb6f15e325f729f1c5218768b17c20909ee857069c6cc5d8df50e1dafe26ed5b')
version('1.3', sha256='a52d93572c1b85281e41d8e3c2db97dda5fce96c222e04171b4489ec5000cd08')
diff --git a/var/spack/repos/builtin/packages/r-paramhelpers/package.py b/var/spack/repos/builtin/packages/r-paramhelpers/package.py
index 779df9f898..f4030bafea 100644
--- a/var/spack/repos/builtin/packages/r-paramhelpers/package.py
+++ b/var/spack/repos/builtin/packages/r-paramhelpers/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,24 @@ from spack import *
class RParamhelpers(RPackage):
- """Functions for parameter descriptions and operations in black-box
- optimization, tuning and machine learning. Parameters can be described
- (type, constraints, defaults, etc.), combined to parameter sets and can
- in general be programmed on. A useful OptPath object (archive) to log
- function evaluations is also provided."""
+ """Helpers for Parameters in Black-Box Optimization, Tuning and Machine Learning
+
+ Functions for parameter descriptions and operations in black-box
+ optimization, tuning and machine learning. Parameters can be described
+ (type, constraints, defaults, etc.), combined to parameter sets and can in
+ general be programmed on. A useful OptPath object (archive) to log function
+ evaluations is also provided."""
homepage = "https://github.com/berndbischl/ParamHelpers"
url = "https://cloud.r-project.org/src/contrib/ParamHelpers_1.10.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ParamHelpers"
+ version('1.14', sha256='b17652d0a69de3241a69f20be4ad1bfe02c413328a17f3c1ac7b73886a6ba2eb')
version('1.12', sha256='b54db9e6608ba530345c380c757a60cb2b78ab08992a890b1a41914ce7abcc14')
version('1.11', sha256='1614f4c0842cf822befc01228ab7263417f3423dd6a1dc24347b14f8491637a0')
version('1.10', sha256='80629ba62e93b0b706bf2e451578b94fbb9c5b95ff109ecfb5b011bfe0a0fa5b')
+ depends_on('r-backports', when='@1.11:', type=('build', 'run'))
depends_on('r-bbmisc@1.10:', type=('build', 'run'))
depends_on('r-checkmate@1.8.2:', type=('build', 'run'))
- depends_on('r-backports', when='@1.11:', type=('build', 'run'))
depends_on('r-fastmatch', when='@1.11:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-party/package.py b/var/spack/repos/builtin/packages/r-party/package.py
index 18303c3b1b..8db792c179 100644
--- a/var/spack/repos/builtin/packages/r-party/package.py
+++ b/var/spack/repos/builtin/packages/r-party/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,30 @@ from spack import *
class RParty(RPackage):
- """A computational toolbox for recursive partitioning."""
+ """A Laboratory for Recursive Partytioning
+
+ A computational toolbox for recursive partitioning. The core of the package
+ is ctree(), an implementation of conditional inference trees which embed
+ tree-structured regression models into a well defined theory of
+ conditional inference procedures. This non-parametric class of regression
+ trees is applicable to all kinds of regression problems, including nominal,
+ ordinal, numeric, censored as well as multivariate response variables and
+ arbitrary measurement scales of the covariates. Based on conditional
+ inference trees, cforest() provides an implementation of Breiman's random
+ forests. The function mob() implements an algorithm for recursive
+ partitioning based on parametric models (e.g. linear models, GLMs or
+ survival regression) employing parameter instability tests for split
+ selection. Extensible functionality for visualizing tree-structured
+ regression models is available. The methods are described in Hothorn et al.
+ (2006) <doi:10.1198/106186006X133933>, Zeileis et al. (2008)
+ <doi:10.1198/106186008X319331> and Strobl et al. (2007)
+ <doi:10.1186/1471-2105-8-25>."""
homepage = "https://cloud.r-project.org/package=party"
url = "https://cloud.r-project.org/src/contrib/party_1.1-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/party"
+ version('1.3-5', sha256='1c3a35d3fe56498361542b3782de2326561c14a8fa1b76f3c9f13beb1fd51364')
version('1.3-3', sha256='9f72eea02d43a4cee105790ae7185b0478deb6011ab049cc9d31a0df3abf7ce9')
version('1.3-2', sha256='9f350fa21114151c49bccc3d5f8536dbc5a608cfd88f60461c9805a4c630510b')
version('1.1-2', sha256='c3632b4b02dc12ec949e2ee5b24004e4a4768b0bc9737432e9a85acbc2ed0e74')
diff --git a/var/spack/repos/builtin/packages/r-partykit/package.py b/var/spack/repos/builtin/packages/r-partykit/package.py
index f6ad1cf369..317c24b107 100644
--- a/var/spack/repos/builtin/packages/r-partykit/package.py
+++ b/var/spack/repos/builtin/packages/r-partykit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,27 +8,33 @@ from spack import *
class RPartykit(RPackage):
- """A toolkit with infrastructure for representing, summarizing, and
+ """A Toolkit for Recursive Partytioning
+
+ A toolkit with infrastructure for representing, summarizing, and
visualizing tree-structured regression and classification models. This
unified infrastructure can be used for reading/coercing tree models from
different sources ('rpart', 'RWeka', 'PMML') yielding objects that share
functionality for print()/plot()/predict() methods. Furthermore, new and
improved reimplementations of conditional inference trees (ctree()) and
model-based recursive partitioning (mob()) from the 'party' package are
- provided based on the new infrastructure."""
+ provided based on the new infrastructure. A description of this package was
+ published by Hothorn and Zeileis (2015)
+ <https://jmlr.org/papers/v16/hothorn15a.html>."""
- homepage = "http://partykit.r-forge.r-project.org/partykit"
+ homepage = "https://partykit.r-forge.r-project.org/partykit"
url = "https://cloud.r-project.org/src/contrib/partykit_1.1-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/partykit"
+ version('1.2-11', sha256='3a83332d782a235cfb5ba60cc8f1c51d46ca5477b22979a614f514d1c951c602')
version('1.2-5', sha256='f48e30790f93fa5d03e68e8ce71ce33d009d107d46d45d85da2016b38b27629c')
version('1.2-3', sha256='56749b246e283f94ac2ad2cdcfc0a477e05cd44b5e8f6e462c26f4dff818da35')
version('1.1-1', sha256='d9f4762690cd85ee4e3dc44f5a14069d10a1900afdfbcdc284d2a94b4a8e8332')
depends_on('r@3.1.0:', type=('build', 'run'))
- depends_on('r-survival', type=('build', 'run'))
- depends_on('r-formula@1.2-1:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@1.2-11:', type=('build', 'run'))
depends_on('r-libcoin@1.0-0:', when='@1.2-0:', type=('build', 'run'))
depends_on('r-mvtnorm', when='@1.2-0:', type=('build', 'run'))
+ depends_on('r-survival', type=('build', 'run'))
+ depends_on('r-formula@1.2-1:', type=('build', 'run'))
depends_on('r-inum@1.0-0:', when='@1.2-0:', type=('build', 'run'))
depends_on('r-rpart@4.1-11:', when='@1.2-0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-patchwork/package.py b/var/spack/repos/builtin/packages/r-patchwork/package.py
new file mode 100644
index 0000000000..9a7a37ab22
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-patchwork/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RPatchwork(RPackage):
+ """The Composer of Plots
+
+ The 'ggplot2' package provides a strong API for sequentially building up a
+ plot, but does not concern itself with composition of multiple plots.
+ 'patchwork' is a package that expands the API to allow for arbitrarily
+ complex composition of plots by, among others, providing mathematical
+ operators for combining multiple plots. Other packages that try to address
+ this need (but with a different approach) are 'gridExtra' and 'cowplot'."""
+
+ homepage = "https://patchwork.data-imaginist.com/"
+ url = "https://cloud.r-project.org/src/contrib/patchwork_1.1.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/patchwork"
+
+ version('1.1.1', sha256='cf0d7d9f92945729b499d6e343441c55007d5b371206d5389b9e5154dc7cf481')
+
+ depends_on('r-ggplot2@3.0.0:', type=('build', 'run'))
+ depends_on('r-gtable', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pathview/package.py b/var/spack/repos/builtin/packages/r-pathview/package.py
index 80b6a1aebd..177171627d 100644
--- a/var/spack/repos/builtin/packages/r-pathview/package.py
+++ b/var/spack/repos/builtin/packages/r-pathview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RPathview(RPackage):
- """a tool set for pathway based data integration and visualization.
+ """a tool set for pathway based data integration and visualization
Pathview is a tool set for pathway based data integration and
visualization. It maps and renders a wide variety of biological data on
@@ -21,18 +21,20 @@ class RPathview(RPackage):
homepage = "https://bioconductor.org/packages/pathview"
git = "https://git.bioconductor.org/packages/pathview.git"
+ version('1.30.1', commit='a6a32395db408798cb076894678e90148bae6bf4')
version('1.24.0', commit='e4401c1425c980ce2e6e478a4602a9f6d36ccd8d')
version('1.22.3', commit='ff86f9e166a5b03bbed1a0ad276778958c3045ce')
version('1.20.0', commit='a195afa6ba6c7917af2c7f77170f0644c46880c7')
version('1.18.2', commit='d2048981696564ec75f661ed665977d3a6e09188')
version('1.16.7', commit='fc560ed15ef7393a73d35e714716cc24dc835339')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@2.10:', type=('build', 'run'))
- depends_on('r-org-hs-eg-db', type=('build', 'run'))
depends_on('r-kegggraph', type=('build', 'run'))
depends_on('r-xml', type=('build', 'run'))
depends_on('r-rgraphviz', type=('build', 'run'))
depends_on('r-graph', type=('build', 'run'))
depends_on('r-png', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
+ depends_on('r-org-hs-eg-db', type=('build', 'run'))
depends_on('r-keggrest', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pbapply/package.py b/var/spack/repos/builtin/packages/r-pbapply/package.py
index f63552328f..47a3dd5018 100644
--- a/var/spack/repos/builtin/packages/r-pbapply/package.py
+++ b/var/spack/repos/builtin/packages/r-pbapply/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,19 @@ from spack import *
class RPbapply(RPackage):
- """A lightweight package that adds progress bar to vectorized R
- apply functions."""
+ """Adding Progress Bar to '*apply' Functions
+
+ A lightweight package that adds progress bar to vectorized R functions
+ ('*apply'). The implementation can easily be added to functions where
+ showing the progress is useful (e.g. bootstrap). The type and style of the
+ progress bar (with percentages or remaining time) can be set through
+ options. Supports several parallel processing backends."""
homepage = "https://cloud.r-project.org/package=pbapply"
url = "https://cloud.r-project.org/src/contrib/pbapply_1.3-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/pbapply"
+ version('1.4-3', sha256='8fe6287535be766b5a688810e2cc1ca4e668ac6b42b6e832473fe5701133eb21')
version('1.4-1', sha256='b3633349181db944e1dfc4422b4728a6562e454117a232cbb51633906cd27cad')
version('1.3-4', sha256='cdfdaf9b8aecbe48daac858aecaf65a766b74a363d1eb7cd6ebf27c0549f6552')
version('1.3-3', sha256='7379b21d1176db5769f5cac858dd12c975736e80a600870180cec9625cf51047')
diff --git a/var/spack/repos/builtin/packages/r-pbdzmq/package.py b/var/spack/repos/builtin/packages/r-pbdzmq/package.py
index e58328adf3..08b6bb9467 100644
--- a/var/spack/repos/builtin/packages/r-pbdzmq/package.py
+++ b/var/spack/repos/builtin/packages/r-pbdzmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,9 @@ from spack import *
class RPbdzmq(RPackage):
- """'ZeroMQ' is a well-known library for high-performance asynchronous
+ """Programming with Big Data -- Interface to 'ZeroMQ'
+
+ 'ZeroMQ' is a well-known library for high-performance asynchronous
messaging in scalable, distributed applications. This package provides
high level R wrapper functions to easily utilize 'ZeroMQ'. We mainly focus
on interactive client/server programming frameworks. For convenience, a
@@ -20,11 +22,13 @@ class RPbdzmq(RPackage):
url = "https://cloud.r-project.org/src/contrib/pbdZMQ_0.2-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/pbdZMQ"
+ version('0.3-4', sha256='07794bd6858e093f8b6b879ddd5ab0195449b47a41b70cab2f60603f0a53b129')
version('0.3-3', sha256='ae26c13400e2acfb6463ff9b67156847a22ec79f3b53baf65119efaba1636eca')
version('0.3-2', sha256='ece2a2881c662f77126e4801ba4e01c991331842b0d636ce5a2b591b9de3fc37')
version('0.2-4', sha256='bfacac88b0d4156c70cf63fc4cb9969a950693996901a4fa3dcd59949ec065f6')
- depends_on('r@3.0.0:', when='@:0.2-5', type=('build', 'run'))
+ depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r@3.2.0:', when='@0.2-6:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@0.3-4:', type=('build', 'run'))
depends_on('r-r6', when='@:0.2-6', type=('build', 'run'))
depends_on('libzmq@4.0.4:')
diff --git a/var/spack/repos/builtin/packages/r-pbivnorm/package.py b/var/spack/repos/builtin/packages/r-pbivnorm/package.py
new file mode 100644
index 0000000000..1e0dea5143
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pbivnorm/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 RPbivnorm(RPackage):
+ """ Vectorized Bivariate Normal CDF:
+
+ Provides a vectorized R function for calculating probabilities from a
+ standard bivariate normal CDF."""
+
+ homepage = "https://github.com/brentonk/pbivnorm"
+ cran = "pbivnorm"
+
+ version('0.6.0', sha256='07c37d507cb8f8d2d9ae51a9a6d44dfbebd8a53e93c242c4378eaddfb1cc5f16')
diff --git a/var/spack/repos/builtin/packages/r-pbkrtest/package.py b/var/spack/repos/builtin/packages/r-pbkrtest/package.py
index c7b7be8c42..9bf5bd4d6d 100644
--- a/var/spack/repos/builtin/packages/r-pbkrtest/package.py
+++ b/var/spack/repos/builtin/packages/r-pbkrtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,22 +7,37 @@ from spack import *
class RPbkrtest(RPackage):
- """Test in mixed effects models. Attention is on mixed effects models as
- implemented in the 'lme4' package. This package implements a parametric
- bootstrap test and a Kenward Roger modification of F-tests for linear mixed
- effects models and a parametric bootstrap test for generalized linear mixed
- models."""
+ """Parametric Bootstrap, Kenward-Roger and Satterthwaite Based Methods for
+ Test in Mixed Models
- homepage = "http://people.math.aau.dk/~sorenh/software/pbkrtest/"
+ Test in mixed effects models. Attention is on mixed effects models as
+ implemented in the 'lme4' package. For linear mixed models, this package
+ implements (1) a parametric bootstrap test, (2) a Kenward-Roger-typ
+ modification of F-tests for linear mixed effects models and (3) a
+ Satterthwaite-type modification of F-tests for linear mixed effects models.
+ The package also implements a parametric bootstrap test for generalized
+ linear mixed models. The facilities of the package are documented in the
+ paper by Halehoh and Hojsgaard, (2012, <doi:10.18637/jss.v059.i09>).
+ Please see 'citation("pbkrtest")' for citation details."""
+
+ homepage = "https://cran.r-project.org/web/packages/pbkrtest/index.html"
url = "https://cloud.r-project.org/src/contrib/pbkrtest_0.4-6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/pbkrtest"
+ version('0.5.1', sha256='b2a3452003d93890f122423b3f2487dcb6925440f5b8a05578509e98b6aec7c5')
+ version('0.5-0.1', sha256='f56525488c6efe4a5cbf849bf9a82747041478605b166c29bad54e464e46f469')
version('0.4-7', sha256='5cbb03ad2b2468720a5a610a0ebda48ac08119a34fca77810a85f554225c23ea')
version('0.4-6', sha256='9d28b8916fea3ffec8d5958bb8c531279b1e273f21fdbeb2fcad6d7e300a9c01')
version('0.4-4', sha256='a685392ef3fca0ddc2254f6cc9bba6bc22b298fa823359fc4515e64e753abd31')
- depends_on('r@3.0.2:', when='@:0.4-5', type=('build', 'run'))
+ depends_on('r@3.0.2:', type=('build', 'run'))
depends_on('r@3.2.3:', when='@0.4-6:', type=('build', 'run'))
- depends_on('r-lme4@1.1.10:', type=('build', 'run'))
- depends_on('r-matrix@1.2.3:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@0.5-0.1:', type=('build', 'run'))
+ depends_on('r-lme4@1.1-10:', type=('build', 'run'))
+ depends_on('r-broom', when='@0.5-0.1:', type=('build', 'run'))
+ depends_on('r-dplyr', when='@0.5-0.1:', type=('build', 'run'))
+ depends_on('r-magrittr', when='@0.5-0.1:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-matrix@1.2.3:', type=('build', 'run'))
+ depends_on('r-numderiv', when='@0.5-0.1:', type=('build', 'run'))
+ depends_on('r-knitr', when='@0.5-0.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pcamethods/package.py b/var/spack/repos/builtin/packages/r-pcamethods/package.py
index 9981212244..7da7698eee 100644
--- a/var/spack/repos/builtin/packages/r-pcamethods/package.py
+++ b/var/spack/repos/builtin/packages/r-pcamethods/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RPcamethods(RPackage):
- """A collection of PCA methods.
+ """A collection of PCA methods
Provides Bayesian PCA, Probabilistic PCA, Nipals PCA, Inverse Non-Linear
PCA and the conventional SVD PCA. A cluster based method for missing
@@ -22,6 +22,7 @@ class RPcamethods(RPackage):
homepage = "https://bioconductor.org/packages/pcaMethods"
git = "https://git.bioconductor.org/packages/pcaMethods.git"
+ version('1.82.0', commit='d500b3363308f1f8ca70625c5cd10cce59b27641')
version('1.76.0', commit='5db995330ced37dfd5ddad6ad1d90b4815d3127a')
version('1.74.0', commit='1b8f0a5cdfe3664119d0d7e926a2e0fe7320133c')
version('1.72.0', commit='1bb8c7d056645e62ee5179f6bb30b6594ebf3bfd')
diff --git a/var/spack/repos/builtin/packages/r-pcapp/package.py b/var/spack/repos/builtin/packages/r-pcapp/package.py
index 299beee233..7fdd18ff2d 100644
--- a/var/spack/repos/builtin/packages/r-pcapp/package.py
+++ b/var/spack/repos/builtin/packages/r-pcapp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-pegas/package.py b/var/spack/repos/builtin/packages/r-pegas/package.py
new file mode 100644
index 0000000000..5c60591cf7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pegas/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 RPegas(RPackage):
+ """Population and Evolutionary Genetics Analysis System
+
+ Functions for reading, writing, plotting, analysing, and
+ manipulating allelic and haplotypic data, including from VCF files,
+ and for the analysis of population nucleotide sequences and
+ micro-satellites including coalescent analyses, linkage
+ disequilibrium, population structure (Fst, Amova) and equilibrium
+ (HWE), haplotype networks, minimum spanning tree and network, and
+ median-joining networks."""
+
+ homepage = "http://ape-package.ird.fr/pegas.html"
+ url = "https://cloud.r-project.org/src/contrib/pegas_0.14.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/pegas"
+
+ maintainers = ['dorton21']
+
+ version('0.14', sha256='7df90e6c4a69e8dbed2b3f68b18f1975182475bf6f86d4159256b52fd5332053')
+
+ depends_on('r@3.2.0:', type=('build', 'run'))
+ depends_on('r-ape@5.3-11:', type=('build', 'run'))
+ depends_on('r-adegenet', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-permute/package.py b/var/spack/repos/builtin/packages/r-permute/package.py
index b181976baa..04bb2e004e 100644
--- a/var/spack/repos/builtin/packages/r-permute/package.py
+++ b/var/spack/repos/builtin/packages/r-permute/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-pfam-db/package.py b/var/spack/repos/builtin/packages/r-pfam-db/package.py
index df7d456787..a0c945fc94 100644
--- a/var/spack/repos/builtin/packages/r-pfam-db/package.py
+++ b/var/spack/repos/builtin/packages/r-pfam-db/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,25 @@ from spack import *
class RPfamDb(RPackage):
- """A set of protein ID mappings for PFAM assembled using data from
+ """A set of protein ID mappings for PFAM
+
+ A set of protein ID mappings for PFAM assembled using data from
public repositories."""
homepage = "https://www.bioconductor.org/packages/PFAM.db/"
url = "https://www.bioconductor.org/packages/3.5/data/annotation/src/contrib/PFAM.db_3.4.1.tar.gz"
- version('3.10.0', sha256='038888f95ce69230ac0e0b08aa3bcb09965682415520d437a7fb0a031eefe158')
- version('3.4.1', sha256='fc45a0d53139daf85873f67bd3f1b68f2d883617f4447caddbd2d7dcc58a393f')
+ version('3.12.0',
+ sha256='ec42d067522baf2d7d3ca78d4f8cc0dac08a4b98f1d890f52424e5d5b16f2fe9',
+ url='https://bioconductor.org/packages/3.12/data/annotation/src/contrib/PFAM.db_3.12.0.tar.gz')
+ version('3.10.0',
+ sha256='038888f95ce69230ac0e0b08aa3bcb09965682415520d437a7fb0a031eefe158',
+ url='https://bioconductor.org/packages/3.10/data/annotation/src/contrib/PFAM.db_3.10.0.tar.gz')
+ version('3.4.1',
+ sha256='fc45a0d53139daf85873f67bd3f1b68f2d883617f4447caddbd2d7dcc58a393f',
+ url='https://bioconductor.org/packages/3.5/data/annotation/src/contrib/PFAM.db_3.4.1.tar.gz')
depends_on('r@2.7.0:', when='@3.4.1:', type=('build', 'run'))
depends_on('r-annotationdbi@1.37.4:', when='@3.4.1:', type=('build', 'run'))
-
depends_on('r-annotationdbi@1.47.1:', when='@3.10.0:', type=('build', 'run'))
+ depends_on('r-annotationdbi@1.51.3:', when='@3.12.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-phangorn/package.py b/var/spack/repos/builtin/packages/r-phangorn/package.py
index c7acba152f..76e5b9c651 100644
--- a/var/spack/repos/builtin/packages/r-phangorn/package.py
+++ b/var/spack/repos/builtin/packages/r-phangorn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-phantompeakqualtools/package.py b/var/spack/repos/builtin/packages/r-phantompeakqualtools/package.py
index dd11719596..a55abe88c0 100644
--- a/var/spack/repos/builtin/packages/r-phantompeakqualtools/package.py
+++ b/var/spack/repos/builtin/packages/r-phantompeakqualtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-pheatmap/package.py b/var/spack/repos/builtin/packages/r-pheatmap/package.py
new file mode 100644
index 0000000000..9ab1a6a852
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pheatmap/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RPheatmap(RPackage):
+ """Pretty Heatmaps
+
+ Implementation of heatmaps that offers more control over dimensions and
+ appearance."""
+
+ homepage = "https://cloud.r-project.org/package=pheatmap"
+ url = "https://cloud.r-project.org/src/contrib/pheatmap_1.0.12.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/pheatmap"
+
+ version('1.0.12', sha256='579d96ee0417203b85417780eca921969cda3acc210c859bf9dfeff11539b0c1')
+
+ depends_on('r@2.0:', type=('build', 'run'))
+ depends_on('r-rcolorbrewer', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
+ depends_on('r-gtable', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-philentropy/package.py b/var/spack/repos/builtin/packages/r-philentropy/package.py
index 2814ebc676..d4cada3fa6 100644
--- a/var/spack/repos/builtin/packages/r-philentropy/package.py
+++ b/var/spack/repos/builtin/packages/r-philentropy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-phylobase/package.py b/var/spack/repos/builtin/packages/r-phylobase/package.py
index 7cfe791b3b..f97bd4895c 100644
--- a/var/spack/repos/builtin/packages/r-phylobase/package.py
+++ b/var/spack/repos/builtin/packages/r-phylobase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-phyloseq/package.py b/var/spack/repos/builtin/packages/r-phyloseq/package.py
index 84ebc98ba4..05a380d6bf 100644
--- a/var/spack/repos/builtin/packages/r-phyloseq/package.py
+++ b/var/spack/repos/builtin/packages/r-phyloseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RPhyloseq(RPackage):
- """Handling and analysis of high-throughput microbiome census data.
+ """Handling and analysis of high-throughput microbiome census data
phyloseq provides a set of classes and tools to facilitate the import,
storage, analysis, and graphical display of microbiome census data."""
@@ -15,6 +15,7 @@ class RPhyloseq(RPackage):
homepage = "https://bioconductor.org/packages/phyloseq"
git = "https://git.bioconductor.org/packages/phyloseq.git"
+ version('1.34.0', commit='cbed93ead5528fe9024d646c597dab9fc95952d3')
version('1.28.0', commit='a86ed1e0a650fdf80bee5a0a5a82aaa5a276178d')
version('1.26.1', commit='a084072bc9e057b90adfbd59e27db2a1ecee151c')
version('1.24.2', commit='829992f88c79de48bb8749678624e2bbd3b66645')
@@ -22,13 +23,19 @@ class RPhyloseq(RPackage):
version('1.20.0', commit='107d1d5e3437a6e33982c06a548d3cc91df2a7e0')
depends_on('r@3.3.0:', type=('build', 'run'))
- depends_on('r-biocgenerics@0.18.0:', type=('build', 'run'))
+ depends_on('r@3.4.0:', when='@1.22.3', type=('build', 'run'))
depends_on('r-ade4@1.7.4:', type=('build', 'run'))
depends_on('r-ape@3.4:', type=('build', 'run'))
+ depends_on('r-ape@5.0:', when='@1.22.3:', type=('build', 'run'))
+ depends_on('r-biobase', type=('build', 'run'))
+ depends_on('r-biobase@2.36.2:', when='@1.22.3:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.18.0:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.22.0:', when='@1.22.3:', type=('build', 'run'))
depends_on('r-biomformat@1.0.0:', type=('build', 'run'))
depends_on('r-biostrings@2.40.0:', type=('build', 'run'))
depends_on('r-cluster@2.0.4:', type=('build', 'run'))
depends_on('r-data-table@1.9.6:', type=('build', 'run'))
+ depends_on('r-data-table@1.10.4:', when='@1.22.3:', type=('build', 'run'))
depends_on('r-foreach@1.4.3:', type=('build', 'run'))
depends_on('r-ggplot2@2.1.0:', type=('build', 'run'))
depends_on('r-igraph@1.0.1:', type=('build', 'run'))
@@ -37,13 +44,5 @@ class RPhyloseq(RPackage):
depends_on('r-reshape2@1.4.1:', type=('build', 'run'))
depends_on('r-scales@0.4.0:', type=('build', 'run'))
depends_on('r-vegan@2.3.5:', type=('build', 'run'))
- depends_on('r-biobase', type=('build', 'run'))
-
- depends_on('r@3.4.0:', when='@1.22.3:', type=('build', 'run'))
- depends_on('r-ape@5.0:', when='@1.22.3:', type=('build', 'run'))
- depends_on('r-biobase@2.36.2:', when='@1.22.3:', type=('build', 'run'))
- depends_on('r-biocgenerics@0.22.0:', when='@1.22.3:', type=('build', 'run'))
- depends_on('r-data-table@1.10.4:', when='@1.22.3:', type=('build', 'run'))
depends_on('r-vegan@2.4:', when='@1.22.3:', type=('build', 'run'))
-
depends_on('r-vegan@2.5:', when='@1.24.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-phylostratr/package.py b/var/spack/repos/builtin/packages/r-phylostratr/package.py
index a84c4333a9..bd518ba865 100644
--- a/var/spack/repos/builtin/packages/r-phylostratr/package.py
+++ b/var/spack/repos/builtin/packages/r-phylostratr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-phytools/package.py b/var/spack/repos/builtin/packages/r-phytools/package.py
index 6bae38dbf9..628be46e2f 100644
--- a/var/spack/repos/builtin/packages/r-phytools/package.py
+++ b/var/spack/repos/builtin/packages/r-phytools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,28 +7,49 @@ from spack import *
class RPhytools(RPackage):
- """Phylogenetic Tools for Comparative Biology (and Other Things)"""
+ """Phylogenetic Tools for Comparative Biology (and Other Things)
- homepage = "http://github.com/liamrevell/phytools"
+ A wide range of functions for phylogenetic analysis. Functionality is
+ concentrated in phylogenetic comparative biology, but also includes
+ numerous methods for visualizing, manipulating, reading or writing, and
+ even inferring phylogenetic trees and data. Included among the functions in
+ phylogenetic comparative biology are various for ancestral state
+ reconstruction, model-fitting, simulation of phylogenies and data, and
+ multivariate analysis. There are a broad range of plotting methods for
+ phylogenies and comparative data which include, but are not restricted to,
+ methods for mapping trait evolution on trees, for projecting trees into
+ phenotypic space or a geographic map, and for visualizing correlated
+ speciation between trees. Finally, there are a number of functions for
+ reading, writing, analyzing, inferring, simulating, and manipulating
+ phylogenetic trees and comparative data not covered by other packages. For
+ instance, there are functions for randomly or non-randomly attaching
+ species or clades to a phylogeny, for estimating supertrees or consensus
+ phylogenies from a set, for simulating trees and phylogenetic data under a
+ range of models, and for a wide variety of other manipulations and analyses
+ that phylogenetic biologists might find useful in their research."""
+
+ homepage = "https://github.com/liamrevell/phytools"
url = "https://cloud.r-project.org/src/contrib/phytools_0.6-60.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/phytools/"
+ version('0.7-70', sha256='e3432c3b006e5cc6f1292bebd81ebc20044edf1f56c3d27a3497f738eb99f0d3')
version('0.6-99', sha256='2ef532cba77c5f73803bd34582bef05709705311a0b50e42316e69944567390f')
version('0.6-60', sha256='55cad759510d247ebbf03a53a46caddadd3bf87584ccf7fcd6dd06d44516b377')
depends_on('r@3.2.0:', type=('build', 'run'))
- depends_on('r-animation', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@0.7-70:', type=('build', 'run'))
depends_on('r-ape@4.0:', type=('build', 'run'))
+ depends_on('r-maps', type=('build', 'run'))
depends_on('r-clustergeneration', type=('build', 'run'))
depends_on('r-coda', type=('build', 'run'))
depends_on('r-combinat', type=('build', 'run'))
depends_on('r-expm', type=('build', 'run'))
+ depends_on('r-gtools', when='@0.6-99:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
- depends_on('r-maps', type=('build', 'run'))
depends_on('r-mnormt', type=('build', 'run'))
depends_on('r-nlme', type=('build', 'run'))
depends_on('r-numderiv', type=('build', 'run'))
depends_on('r-phangorn@2.3.1:', type=('build', 'run'))
depends_on('r-plotrix', type=('build', 'run'))
depends_on('r-scatterplot3d', type=('build', 'run'))
- depends_on('r-gtools', when='@0.6-99:', type=('build', 'run'))
+ depends_on('r-animation', when='@:0.6-99', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-picante/package.py b/var/spack/repos/builtin/packages/r-picante/package.py
index 1eec2c274d..bc3e5b047e 100644
--- a/var/spack/repos/builtin/packages/r-picante/package.py
+++ b/var/spack/repos/builtin/packages/r-picante/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,27 @@ from spack import *
class RPicante(RPackage):
- """R tools for integrating phylogenies and ecology"""
+ """R tools for integrating phylogenies and ecology
+
+ Functions for phylocom integration, community analyses, null-models, traits
+ and evolution. Implements numerous ecophylogenetic approaches including
+ measures of community phylogenetic and trait diversity, phylogenetic
+ signal, estimation of trait values for unobserved taxa, null models for
+ community and phylogeny randomizations, and utility functions for data
+ input/output and phylogeny plotting. A full description of package
+ functionality and methods are provided by Kembel et al. (2010)
+ <doi:10.1093/bioinformatics/btq166>."""
homepage = "https://cloud.r-project.org/package=picante"
url = "https://cloud.r-project.org/src/contrib/picante_1.6-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/picante"
+ version('1.8.2', sha256='56565ca7f7c37f49c961372a816724967c21a4f5025cd69b8b671122bfdc4aa7')
version('1.8', sha256='81a6308dbb53c9cdab30c1f9ac727abee76314351823b3a2142c21ed8e1498ad')
version('1.7', sha256='75e4d73080db67e776562a1d58685438461cbde39af46900c7838da56aef0a62')
version('1.6-2', sha256='4db3a5a0fe5e4e9197c96245195843294fbb8d0a324edcde70c6ab01276ab7ff')
version('1.6-1', sha256='2708315b26737857a6729fd67bde06bc939930035c5b09a8bba472a593f24000')
depends_on('r-ape', type=('build', 'run'))
- depends_on('r-nlme', type=('build', 'run'))
depends_on('r-vegan', type=('build', 'run'))
+ depends_on('r-nlme', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pillar/package.py b/var/spack/repos/builtin/packages/r-pillar/package.py
index 325d40c4da..4036ce0d56 100644
--- a/var/spack/repos/builtin/packages/r-pillar/package.py
+++ b/var/spack/repos/builtin/packages/r-pillar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RPillar(RPackage):
- """Provides a 'pillar' generic designed for formatting columns of data
- using the full range of colours provided by modern terminals."""
+ """Coloured Formatting for Columns
+
+ Provides a 'pillar' generic designed for formatting columns of data using
+ the full range of colours provided by modern terminals."""
homepage = "https://cloud.r-project.org/package=pillar"
url = "https://cloud.r-project.org/src/contrib/pillar_1.3.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/pillar"
+ version('1.4.7', sha256='cdedb2b2a4854e917f43b0c6379efefda9d7ff4e58dec2a3159a80ee8288f298')
version('1.4.2', sha256='bababb76b6db06dc32ccd947dbad6c164a1749ff5b558c6783ad03570f010825')
version('1.4.1', sha256='f571ca7a3ef0927747510b972da31a26da24b9da68990fe1bbc9d4ae58028c55')
version('1.3.1', sha256='b338b55f956dd7134f379d39bb94dfb25e13cf27999d6a6e6dc9f292755acbf6')
@@ -28,7 +31,10 @@ class RPillar(RPackage):
depends_on('r-cli', type=('build', 'run'))
depends_on('r-crayon@1.3.4:', type=('build', 'run'))
+ depends_on('r-ellipsis', when='@1.4.7:', type=('build', 'run'))
depends_on('r-fansi', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@1.4.7:', type=('build', 'run'))
depends_on('r-rlang@0.3.0:', type=('build', 'run'))
depends_on('r-utf8@1.1.0:', type=('build', 'run'))
depends_on('r-vctrs', when='@1.4.0:', type=('build', 'run'))
+ depends_on('r-vctrs@0.2.0:', when='@1.4.7:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pinfsc50/package.py b/var/spack/repos/builtin/packages/r-pinfsc50/package.py
new file mode 100644
index 0000000000..0385c73369
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pinfsc50/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RPinfsc50(RPackage):
+ """Sequence ('FASTA'), Annotation ('GFF') and Variants ('VCF') for 17
+ Samples of 'P. Infestans" and 1 'P. Mirabilis'
+
+ Genomic data for the plant pathogen "Phytophthora infestans." It includes
+ a variant file ('VCF'), a sequence file ('FASTA') and an annotation file
+ ('GFF'). This package is intended to be used as example data for packages
+ that work with genomic data."""
+
+ homepage = "https://cloud.r-project.org/web/packages/pinfsc50/index.html"
+ cran = "pinfsc50"
+
+ maintainers = ['dorton21']
+
+ version('1.2.0', sha256='ed1fe214b9261feef8abfbf724c2bd9070d68e99a6ea95208aff2c57bbef8794')
+
+ depends_on('r@3.2.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pixmap/package.py b/var/spack/repos/builtin/packages/r-pixmap/package.py
new file mode 100644
index 0000000000..29b7741291
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pixmap/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 RPixmap(RPackage):
+ """Bitmap Images ("Pixel Maps")
+
+ Functions for import, export, plotting and other manipulations of bitmapped
+ images."""
+
+ homepage = "https://cloud.r-project.org/package=pixmap"
+ url = "https://cloud.r-project.org/src/contrib/pixmap_0.4-11.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/pixmap"
+
+ version('0.4-11', sha256='6fa010749a59cdf56aad9f81271473b7d55697036203f2cd5d81372bcded7412')
diff --git a/var/spack/repos/builtin/packages/r-pkgbuild/package.py b/var/spack/repos/builtin/packages/r-pkgbuild/package.py
index 5dd2a8c97e..996930935e 100644
--- a/var/spack/repos/builtin/packages/r-pkgbuild/package.py
+++ b/var/spack/repos/builtin/packages/r-pkgbuild/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,17 @@ from spack import *
class RPkgbuild(RPackage):
- """pkgbuild: Find Tools Needed to Build R Packages"""
+ """Find Tools Needed to Build R Packages
+
+ Provides functions used to build R packages. Locates compilers needed to
+ build R packages on various platforms and ensures the PATH is configured
+ appropriately so R can use them."""
homepage = "https://cloud.r-project.org/package=pkgbuild"
url = "https://cloud.r-project.org/src/contrib/pkgbuild_1.0.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/pkgbuild/"
+ version('1.2.0', sha256='2e19308d3271fefd5e118c6d132d6a2511253b903620b5417892c72d2010a963')
version('1.0.8', sha256='b149fcf3e98ef148945ff9f4272512cd03e21408c235ec6c0548167fd41219a1')
version('1.0.4', sha256='2934efa5ff9ccfe1636d360aedec36713f3bb3128a493241dbb728d842ea3b5f')
version('1.0.3', sha256='c93aceb499886e42bcd61eb7fb59e47a76c9ba5ab5349a426736d46c8ce21f4d')
diff --git a/var/spack/repos/builtin/packages/r-pkgconfig/package.py b/var/spack/repos/builtin/packages/r-pkgconfig/package.py
index 6e28f7cb15..6512c82df3 100644
--- a/var/spack/repos/builtin/packages/r-pkgconfig/package.py
+++ b/var/spack/repos/builtin/packages/r-pkgconfig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,15 @@ from spack import *
class RPkgconfig(RPackage):
- """Set configuration options on a per-package basis. Options set by a
- given package only apply to that package,
- other packages are unaffected."""
+ """Private Configuration for 'R' Packages
+
+ Set configuration options on a per-package basis. Options set by a given
+ package only apply to that package, other packages are unaffected."""
homepage = "https://cloud.r-project.org/package=pkgconfig"
url = "https://cloud.r-project.org/src/contrib/pkgconfig_2.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/pkgconfig"
+ version('2.0.3', sha256='330fef440ffeb842a7dcfffc8303743f1feae83e8d6131078b5a44ff11bc3850')
version('2.0.2', sha256='25997754d1adbe7a251e3bf9879bb52dced27dd8b84767d558f0f644ca8d69ca')
version('2.0.1', sha256='ab02b2a4b639ba94dcba882a059fe9cddae5498a4309841f764b62ec46ba5a40')
diff --git a/var/spack/repos/builtin/packages/r-pkgload/package.py b/var/spack/repos/builtin/packages/r-pkgload/package.py
index 324584a242..918dcaa752 100644
--- a/var/spack/repos/builtin/packages/r-pkgload/package.py
+++ b/var/spack/repos/builtin/packages/r-pkgload/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,21 @@ from spack import *
class RPkgload(RPackage):
- """pkgload: Simulate Package Installation and Attach"""
+ """Simulate Package Installation and Attach
+
+ Simulates the process of installing a package and then attaching it. This
+ is a key part of the 'devtools' package as it allows you to rapidly iterate
+ while developing a package."""
homepage = "https://cloud.r-project.org/package=pkgload"
url = "https://cloud.r-project.org/src/contrib/pkgload_1.0.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/pkgload/"
+ version('1.1.0', sha256='189d460dbba2b35fa15dd59ce832df252dfa654a5acee0c9a8471b4d70477b0d')
version('1.0.2', sha256='3186564e690fb05eabe76e1ac0bfd4312562c3ac8794b29f8850399515dcf27c')
+ depends_on('r-cli', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-crayon', when='@1.1.0:', type=('build', 'run'))
depends_on('r-desc', type=('build', 'run'))
depends_on('r-pkgbuild', type=('build', 'run'))
depends_on('r-rlang', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pkgmaker/package.py b/var/spack/repos/builtin/packages/r-pkgmaker/package.py
index e40752c2fd..480cec4b56 100644
--- a/var/spack/repos/builtin/packages/r-pkgmaker/package.py
+++ b/var/spack/repos/builtin/packages/r-pkgmaker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RPkgmaker(RPackage):
- """This package provides some low-level utilities to use for package
+ """Development Utilities for R Packages
+
+ This package provides some low-level utilities to use for package
development. It currently provides managers for multiple package specific
options and registries, vignette, unit test and bibtex related utilities.
It serves as a base package for packages like NMF, RcppOctave, doRNG, and
@@ -19,15 +21,17 @@ class RPkgmaker(RPackage):
url = "https://cloud.r-project.org/src/contrib/pkgmaker_0.27.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/pkgmaker"
+ version('0.32.2', sha256='ce45b22def771a9c90a414093823e6befe7e23489c500eeccee5154b44d3ef91')
version('0.27', sha256='17a289d8f596ba5637b07077b3bff22411a2c2263c0b7de59fe848666555ec6a')
depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r-registry', type=('build', 'run'))
depends_on('r-codetools', type=('build', 'run'))
depends_on('r-digest', type=('build', 'run'))
- depends_on('r-stringi', type=('build', 'run'))
- depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-stringr', type=('build', 'run'))
depends_on('r-xtable', type=('build', 'run'))
depends_on('r-withr', type=('build', 'run'))
- depends_on('r-bibtex@0.4:', type=('build', 'run'))
+ depends_on('r-assertthat', when='@0.32.2:', type=('build', 'run'))
+ depends_on('r-stringi', when='@:0.27', type=('build', 'run'))
+ depends_on('r-magrittr', when='@:0.27', type=('build', 'run'))
+ depends_on('r-bibtex@0.4:', when='@:0.27', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-plogr/package.py b/var/spack/repos/builtin/packages/r-plogr/package.py
index 7e062a210e..f9798a0d89 100644
--- a/var/spack/repos/builtin/packages/r-plogr/package.py
+++ b/var/spack/repos/builtin/packages/r-plogr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-plot3d/package.py b/var/spack/repos/builtin/packages/r-plot3d/package.py
index 4b0fc46f94..b21d171e12 100644
--- a/var/spack/repos/builtin/packages/r-plot3d/package.py
+++ b/var/spack/repos/builtin/packages/r-plot3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,19 @@ from spack import *
class RPlot3d(RPackage):
- """Functions for viewing 2-D and 3-D data, including perspective plots,
- slice plots, surface plots, scatter plots, etc. Includes data sets from
- oceanography."""
+ """Plotting Multi-Dimensional Data
+
+ Functions for viewing 2-D and 3-D data, including perspective plots, slice
+ plots, surface plots, scatter plots, etc. Includes data sets from
+ oceanography."""
homepage = "https://cloud.r-project.org/package=plot3D"
url = "https://cloud.r-project.org/src/contrib/plot3D_1.1.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/plot3D"
+ version('1.3', sha256='b9e4ec2789e34ad249318900e186868650e1a33466b385cb492a45466db3dfc9')
version('1.1.1', sha256='f6fe4a001387132626fc553ed1d5720d448b8064eb5a6917458a798e1d381632')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@2.15:', type=('build', 'run'))
depends_on('r-misc3d', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-plotly/package.py b/var/spack/repos/builtin/packages/r-plotly/package.py
index 173787f6d2..679fe67b2c 100644
--- a/var/spack/repos/builtin/packages/r-plotly/package.py
+++ b/var/spack/repos/builtin/packages/r-plotly/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,17 @@ from spack import *
class RPlotly(RPackage):
- """Easily translate 'ggplot2' graphs to an interactive web-based version
- and/or create custom web-based visualizations directly from R."""
+ """Create Interactive Web Graphics via 'plotly.js'
+
+ Create interactive web graphics from 'ggplot2' graphs and/or a custom
+ interface to the (MIT-licensed) JavaScript library 'plotly.js' inspired by
+ the grammar of graphics."""
homepage = "https://cloud.r-project.org/package=plotly"
url = "https://cloud.r-project.org/src/contrib/plotly_4.7.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/plotly"
+ version('4.9.3', sha256='d44d1a16d96de28bc2d36f1c897384215eeec44d109546c6e9c2707db0880120')
version('4.9.0', sha256='f761148338231f210fd7fe2f8325ffe9cfdaaaeddd7b933b65c44ebb4f85e2cf')
version('4.8.0', sha256='78f90282c831bbbb675ed4811fb506a98dd05e37251fabd42ebc263c80bae8a6')
version('4.7.1', sha256='7cd4b040f9bfd9356a8a2aba59ccf318cae6b5d94ded7463e2e823c10fa74972')
@@ -24,24 +28,26 @@ class RPlotly(RPackage):
depends_on('r@3.2.0:', type=('build', 'run'))
depends_on('r-ggplot2@3.0.0:', type=('build', 'run'))
- depends_on('r-httr', type=('build', 'run'))
- depends_on('r-base64enc', type=('build', 'run'))
- depends_on('r-htmltools@0.3.6:', type=('build', 'run'))
- depends_on('r-tidyr', type=('build', 'run'))
- depends_on('r-dplyr', type=('build', 'run'))
- depends_on('r-htmlwidgets@1.3:', type=('build', 'run'))
- depends_on('r-data-table', type=('build', 'run'))
- depends_on('r-hexbin', type=('build', 'run'))
- depends_on('r-purrr', type=('build', 'run'))
- depends_on('r-crosstalk', when='@4.6.0:', type=('build', 'run'))
depends_on('r-scales', type=('build', 'run'))
+ depends_on('r-httr', type=('build', 'run'))
+ depends_on('r-httr@1.3.0:', when='@4.9.3:', type=('build', 'run'))
depends_on('r-jsonlite@1.6:', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-digest', type=('build', 'run'))
depends_on('r-viridislite', type=('build', 'run'))
+ depends_on('r-base64enc', type=('build', 'run'))
+ depends_on('r-htmltools@0.3.6:', type=('build', 'run'))
+ depends_on('r-htmlwidgets@1.3:', type=('build', 'run'))
+ depends_on('r-htmlwidgets@1.5.2.9001:', when='@4.9.3:', type=('build', 'run'))
+ depends_on('r-tidyr', type=('build', 'run'))
+ depends_on('r-rcolorbrewer', when='@4.6.0:', type=('build', 'run'))
+ depends_on('r-dplyr', type=('build', 'run'))
+ depends_on('r-vctrs', when='@4.9.3:', type=('build', 'run'))
depends_on('r-tibble', type=('build', 'run'))
depends_on('r-lazyeval@0.2.0:', type=('build', 'run'))
- depends_on('r-rcolorbrewer', when='@4.6.0:', type=('build', 'run'))
- depends_on('r-data-table', when='@4.7.0:', type=('build', 'run'))
depends_on('r-rlang', when='@4.8.0:', type=('build', 'run'))
+ depends_on('r-crosstalk', when='@4.6.0:', type=('build', 'run'))
+ depends_on('r-purrr', type=('build', 'run'))
+ depends_on('r-data-table', when='@4.7.0:', type=('build', 'run'))
depends_on('r-promises', when='@4.8.0:', type=('build', 'run'))
+ depends_on('r-hexbin', when='@:4.9.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-plotmo/package.py b/var/spack/repos/builtin/packages/r-plotmo/package.py
index 8bec6e3d51..c0c0c17e50 100644
--- a/var/spack/repos/builtin/packages/r-plotmo/package.py
+++ b/var/spack/repos/builtin/packages/r-plotmo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,7 @@ from spack import *
class RPlotmo(RPackage):
- """plotmo: Plot a Model's Residuals, Response, and Partial Dependence
- Plots.
+ """Plot a Model's Residuals, Response, and Partial Dependence Plots.
Plot model surfaces for a wide variety of models using partial dependence
plots and other techniques. Also plot model residuals and other information
@@ -18,6 +17,7 @@ class RPlotmo(RPackage):
url = "https://cloud.r-project.org/src/contrib/plotmo_3.5.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/plotmo"
+ version('3.6.0', sha256='c05afcc442f9542868beea5c3c40fb93b049f9b61c42725b2a1e2bc750c241e3')
version('3.5.6', sha256='78f08dc897136d21fa8ade2acb6290351b569d29eb0592c7074c0be3cf2aa594')
depends_on('r@3.4.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-plotrix/package.py b/var/spack/repos/builtin/packages/r-plotrix/package.py
index 26da98bbf7..7cd72632e1 100644
--- a/var/spack/repos/builtin/packages/r-plotrix/package.py
+++ b/var/spack/repos/builtin/packages/r-plotrix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,15 @@ from spack import *
class RPlotrix(RPackage):
- """Lots of plots, various labeling, axis and color scaling functions."""
+ """Various Plotting Functions
+
+ Lots of plots, various labeling, axis and color scaling functions."""
homepage = "https://cloud.r-project.org/package=plotrix"
url = "https://cloud.r-project.org/src/contrib/plotrix_3.6-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/plotrix"
+ version('3.7-8', sha256='8ccd1f7e656413b9956cea614c986ce9cc61366deba356afb38cee6672a59480')
version('3.7-6', sha256='83d5f7574592953288b4fe39c4c0dd7670d097598ad7f6bddbb0687a32954e46')
version('3.7-5', sha256='b22f3f9d93961d23ad46e41597d1e45d2665ced04dcad8c40f6806a67cded14c')
version('3.6-4', sha256='883b7d0a00c1b2b418f9167c72ed9e86eca3c9865d34158a7a6ad0b9bf95bff3')
diff --git a/var/spack/repos/builtin/packages/r-pls/package.py b/var/spack/repos/builtin/packages/r-pls/package.py
index 7a82c84cd0..25437988fc 100644
--- a/var/spack/repos/builtin/packages/r-pls/package.py
+++ b/var/spack/repos/builtin/packages/r-pls/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RPls(RPackage):
- """Multivariate regression methods Partial Least Squares Regression (PLSR),
+ """Partial Least Squares and Principal Component Regression
+
+ Multivariate regression methods Partial Least Squares Regression (PLSR),
Principal Component Regression (PCR) and Canonical Powered Partial Least
Squares (CPPLS)."""
@@ -15,6 +17,7 @@ class RPls(RPackage):
url = "https://cloud.r-project.org/src/contrib/pls_2.6-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/pls"
+ version('2.7-3', sha256='8f1d960ab74f05fdd11c4c7a3d30ff9e263fc658f5690b67278ca7c045d0742c')
version('2.7-1', sha256='f8fd817fc2aa046970c49a9a481489a3a2aef8b6f09293fb1f0218f00bfd834b')
version('2.7-0', sha256='5ddc1249a14d69a7a39cc4ae81595ac8c0fbb1e46c911af67907baddeac35875')
version('2.6-0', sha256='3d8708fb7f45863d3861fd231e06955e6750bcbe717e1ccfcc6d66d0cb4d4596')
diff --git a/var/spack/repos/builtin/packages/r-plyr/package.py b/var/spack/repos/builtin/packages/r-plyr/package.py
index 041d02841a..6ecde52bcb 100644
--- a/var/spack/repos/builtin/packages/r-plyr/package.py
+++ b/var/spack/repos/builtin/packages/r-plyr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RPlyr(RPackage):
- """A set of tools that solves a common set of problems: you need to break a
+ """Tools for Splitting, Applying and Combining Data
+
+ A set of tools that solves a common set of problems: you need to break a
big problem down into manageable pieces, operate on each piece and then put
all the pieces back together. For example, you might want to fit a model to
each spatial location or time point in your study, summarise data by panels
@@ -19,6 +21,7 @@ class RPlyr(RPackage):
url = "https://cloud.r-project.org/src/contrib/plyr_1.8.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/plyr"
+ version('1.8.6', sha256='ea55d26f155443e9774769531daa5d4c20a0697bb53abd832e891b126c935287')
version('1.8.4', sha256='60b522d75961007658c9806f8394db27989f1154727cb0bb970062c96ec9eac5')
depends_on('r@3.1.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pmcmr/package.py b/var/spack/repos/builtin/packages/r-pmcmr/package.py
index 1cd813915f..bb675ee026 100644
--- a/var/spack/repos/builtin/packages/r-pmcmr/package.py
+++ b/var/spack/repos/builtin/packages/r-pmcmr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-png/package.py b/var/spack/repos/builtin/packages/r-png/package.py
index 025edb46c7..f7621512de 100644
--- a/var/spack/repos/builtin/packages/r-png/package.py
+++ b/var/spack/repos/builtin/packages/r-png/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class RPng(RPackage):
bitmap images stored in the PNG format. It can read and write both files
and in-memory raw vectors."""
- homepage = "http://www.rforge.net/png/"
+ homepage = "https://www.rforge.net/png/"
url = "https://cloud.r-project.org/src/contrib/png_0.1-7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/png"
diff --git a/var/spack/repos/builtin/packages/r-polspline/package.py b/var/spack/repos/builtin/packages/r-polspline/package.py
index 358d3e8d1a..5f06af820d 100644
--- a/var/spack/repos/builtin/packages/r-polspline/package.py
+++ b/var/spack/repos/builtin/packages/r-polspline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,17 @@ from spack import *
class RPolspline(RPackage):
- """Routines for the polynomial spline fitting routines hazard regression,
- hazard estimation with flexible tails, logspline, lspec, polyclass,
- and polymars, by C. Kooperberg and co-authors.
- """
+ """Polynomial Spline Routines
+
+ Routines for the polynomial spline fitting routines hazard regression,
+ hazard estimation with flexible tails, logspline, lspec, polyclass, and
+ polymars, by C. Kooperberg and co-authors."""
homepage = "https://cloud.r-project.org/package=polspline"
url = "https://cloud.r-project.org/src/contrib/polspline_1.1.18.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/polspline"
+ version('1.1.19', sha256='953e3c4d007c3ef86ac2af3c71b272a99e8e35b194bdd58575785558c6711f66')
version('1.1.18', sha256='df250ee144bfff154249ba50308f46863107ef3efb2333ad908e599ed0eb0102')
version('1.1.17', sha256='d67b269d01105d4a6ea774737e921e66e065a859d1931ae38a70f88b6fb7ee30')
version('1.1.16', sha256='aa3b5a1560008a1a401a65a25f19a27ba6f0a6ea185b6d093acd40e4e2818934')
diff --git a/var/spack/repos/builtin/packages/r-polyclip/package.py b/var/spack/repos/builtin/packages/r-polyclip/package.py
index 947b290bcd..9b61268b36 100644
--- a/var/spack/repos/builtin/packages/r-polyclip/package.py
+++ b/var/spack/repos/builtin/packages/r-polyclip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-polynom/package.py b/var/spack/repos/builtin/packages/r-polynom/package.py
index 3822185641..a52932716e 100644
--- a/var/spack/repos/builtin/packages/r-polynom/package.py
+++ b/var/spack/repos/builtin/packages/r-polynom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-pool/package.py b/var/spack/repos/builtin/packages/r-pool/package.py
new file mode 100644
index 0000000000..5f0fd0fd0e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pool/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RPool(RPackage):
+ """Object Pooling
+
+ Enables the creation of object pools, which make it less computationally
+ expensive to fetch a new object. Currently the only supported pooled
+ objects are 'DBI' connections."""
+
+ homepage = "https://github.com/rstudio/pool"
+ cran = "pool"
+
+ version('0.1.6', sha256='cdbe5f6c7f757c01893dc9870df0fb8d300829da0e427f6c2559b01caa52d9e1')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-dbi', type=('build', 'run'))
+ depends_on('r-r6', type=('build', 'run'))
+ depends_on('r-later@1.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-popgenome/package.py b/var/spack/repos/builtin/packages/r-popgenome/package.py
index 1db5b5fbf1..1b3dbce1bf 100644
--- a/var/spack/repos/builtin/packages/r-popgenome/package.py
+++ b/var/spack/repos/builtin/packages/r-popgenome/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,23 @@ from spack import *
class RPopgenome(RPackage):
- """PopGenome is an efficient Swiss army knife for population genetics data
- analysis, able to process individual loci, large sets of loci, or whole
- genomes."""
+ """An Efficient Swiss Army Knife for Population Genomic Analyses
+
+ Provides efficient tools for population genomics data analysis, able to
+ process individual loci, large sets of loci, or whole genomes. PopGenome
+ <DOI:10.1093/molbev/msu136> not only implements a wide range of population
+ genetics statistics, but also facilitates the easy implementation of new
+ algorithms by other researchers. PopGenome is optimized for speed via the
+ seamless integration of C code."""
homepage = "https://popgenome.weebly.com"
url = "https://cloud.r-project.org/src/contrib/PopGenome_2.6.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/PopGenome"
+ version('2.7.5', sha256='d627b8ac87b4db6038d7349b2df20648d2fcfd48e2dafcd7f4731d1b607cbc75')
version('2.7.1', sha256='a84903b151528fa026ccaba42ada22cd89babbc1824afd40269b7204e488a5fa')
version('2.6.1', sha256='7a2922ed505fa801117a153e479d246bcf4854b91c6ab0241acc620a9d779b1c')
depends_on('r@2.14.2:', type=('build', 'run'))
depends_on('r-ff', type=('build', 'run'))
+ depends_on('zlib')
diff --git a/var/spack/repos/builtin/packages/r-popvar/package.py b/var/spack/repos/builtin/packages/r-popvar/package.py
index 220b133f9f..8599337cea 100644
--- a/var/spack/repos/builtin/packages/r-popvar/package.py
+++ b/var/spack/repos/builtin/packages/r-popvar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-powerlaw/package.py b/var/spack/repos/builtin/packages/r-powerlaw/package.py
index b38b9cd1ad..a5e1eac213 100644
--- a/var/spack/repos/builtin/packages/r-powerlaw/package.py
+++ b/var/spack/repos/builtin/packages/r-powerlaw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,22 @@ from spack import *
class RPowerlaw(RPackage):
- """An implementation of maximum likelihood estimators for a variety of
- heavy tailed distributions, including both the discrete and continuous
- power law distributions. Additionally, a goodness-of-fit based approach
- is used to estimate the lower cut-off for the scaling region."""
+ """Analysis of Heavy Tailed Distributions
+
+ An implementation of maximum likelihood estimators for a variety of heavy
+ tailed distributions, including both the discrete and continuous power law
+ distributions. Additionally, a goodness-of-fit based approach is used to
+ estimate the lower cut-off for the scaling region."""
homepage = "https://github.com/csgillespie/poweRlaw"
url = "https://cloud.r-project.org/src/contrib/poweRlaw_0.70.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/poweRlaw"
+ version('0.70.6', sha256='efc091449c5c6494c1c13c85a8eb95625d1c55ffffebe86c7ea16e4abbafa191')
version('0.70.2', sha256='240f1454389b1a00ad483fb63e5b53243cc9367f21a3e7253ab2c293673459ab')
version('0.70.1', sha256='15b1b8dadeb550c01b9f1308cfa64720be6fbf56afb80f6a096987d6a0055913')
depends_on('r@3.1.0:', when='@:0.70.1', type=('build', 'run'))
depends_on('r@3.4.0:', when='@0.70.2:', type=('build', 'run'))
- depends_on('r-vgam', type=('build', 'run'))
+ depends_on('r-pracma', when='@0.70.6:', type=('build', 'run'))
+ depends_on('r-vgam', when='@:0.70.2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-prabclus/package.py b/var/spack/repos/builtin/packages/r-prabclus/package.py
index 80f90ba0ba..86e8fed0ab 100644
--- a/var/spack/repos/builtin/packages/r-prabclus/package.py
+++ b/var/spack/repos/builtin/packages/r-prabclus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,20 @@ from spack import *
class RPrabclus(RPackage):
"""prabclus: Functions for Clustering of Presence-Absence, Abundance and
- Multilocus Genetic Data"""
+ Multilocus Genetic Data
- homepage = "http://www.homepages.ucl.ac.uk/~ucakche"
+ Distance-based parametric bootstrap tests for clustering with spatial
+ neighborhood information. Some distance measures, Clustering of
+ presence-absence, abundance and multilocus genetic data for species
+ delimitation, nearest neighbor based noise detection. Genetic distances
+ between communities. Tests whether various distance-based regressions are
+ equal. Try package?prabclus for on overview."""
+
+ homepage = "https://www.homepages.ucl.ac.uk/~ucakche"
url = "https://cloud.r-project.org/src/contrib/prabclus_2.2-6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/prabclus"
+ version('2.3-2', sha256='f421bcbcb557281e0de4a06b15f9a496adb5c640e883c0f7bb12051efc69e441')
version('2.3-1', sha256='ef3294767d43bc3f72478fdaf0d1f13c8de18881bf9040c9f1add68af808b3c0')
version('2.2-7.1', sha256='2c5bf3bbb0d225e04c53bb0e11e9c2a6809f0e46d95b8f6dc14b9dd6a2452975')
version('2.2-6', sha256='41792980e40ba18204fab92d85120dcd468860e2204e52fb42636c6f7aee5a62')
diff --git a/var/spack/repos/builtin/packages/r-pracma/package.py b/var/spack/repos/builtin/packages/r-pracma/package.py
new file mode 100644
index 0000000000..bc96f8c85a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pracma/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 RPracma(RPackage):
+ """Practical Numerical Math Functions
+
+ Provides a large number of functions from numerical analysis and linear
+ algebra, numerical optimization, differential equations, time series, plus
+ some well-known special mathematical functions. Uses 'MATLAB' function
+ names where appropriate to simplify porting."""
+
+ homepage = "https://cloud.r-project.org/package=pracma"
+ url = "https://cloud.r-project.org/src/contrib/pracma_2.2.9.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/pracma"
+
+ version('2.2.9', sha256='0cea0ff5e88643df121e07b9aebfe57084c61e11801680039752f371fe87bf1e')
+
+ depends_on('r@3.1.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-praise/package.py b/var/spack/repos/builtin/packages/r-praise/package.py
index 543962196f..c437377f32 100644
--- a/var/spack/repos/builtin/packages/r-praise/package.py
+++ b/var/spack/repos/builtin/packages/r-praise/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-preprocesscore/package.py b/var/spack/repos/builtin/packages/r-preprocesscore/package.py
index 91a47310d0..2391db4cea 100644
--- a/var/spack/repos/builtin/packages/r-preprocesscore/package.py
+++ b/var/spack/repos/builtin/packages/r-preprocesscore/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RPreprocesscore(RPackage):
- """A collection of pre-processing functions.
+ """A collection of pre-processing functions
A library of core preprocessing routines."""
homepage = "https://bioconductor.org/packages/preprocessCore"
git = "https://git.bioconductor.org/packages/preprocessCore.git"
+ version('1.52.1', commit='91de4ab67315dc2af68554ae3c48823f4b1ea8ac')
version('1.46.0', commit='8cfc3938c1b08424587f437ed6cd2ec43512500e')
version('1.44.0', commit='dc1dc61fc562aaff3fd9b11ab0d48c2d6b3a5b81')
version('1.42.0', commit='2e3a8baeacfaa1526d51252642772ea951015bba')
diff --git a/var/spack/repos/builtin/packages/r-prettydoc/package.py b/var/spack/repos/builtin/packages/r-prettydoc/package.py
new file mode 100644
index 0000000000..ade056fc5b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-prettydoc/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 RPrettydoc(RPackage):
+ """Creating Pretty Documents from R Markdown:
+
+ Creating tiny yet beautiful documents and vignettes from R Markdown. The
+ package provides the 'html_pretty' output format as an alternative to the
+ 'html_document' and 'html_vignette' engines that convert R Markdown into
+ HTML pages. Various themes and syntax highlight styles are supported."""
+
+ homepage = "https://github.com/yixuan/prettydoc"
+ cran = "prettydoc"
+
+ version('0.4.1', sha256='1094a69b026238d149435472b4f41c75151c7370a1be6c6332147c88ad4c4829')
+
+ depends_on('r-markdown@1.17:', type=('build', 'run'))
+ depends_on('pandoc@1.12.3:', type='build')
diff --git a/var/spack/repos/builtin/packages/r-prettyunits/package.py b/var/spack/repos/builtin/packages/r-prettyunits/package.py
index 283a538c2c..102954be10 100644
--- a/var/spack/repos/builtin/packages/r-prettyunits/package.py
+++ b/var/spack/repos/builtin/packages/r-prettyunits/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,18 @@ from spack import *
class RPrettyunits(RPackage):
- """Pretty, human readable formatting of quantities. Time intervals:
- 1337000 -> 15d 11h 23m 20s. Vague time intervals: 2674000 -> about
- a month ago. Bytes: 1337 -> 1.34 kB."""
+ """Pretty, Human Readable Formatting of Quantities
+
+ Pretty, human readable formatting of quantities. Time intervals: 1337000 ->
+ 15d 11h 23m 20s. Vague time intervals: 2674000 -> about a month ago. Bytes:
+ 1337 -> 1.34 kB."""
homepage = "https://cloud.r-project.org/package=prettyunits"
url = "https://cloud.r-project.org/src/contrib/prettyunits_1.0.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/prettyunits"
+ version('1.1.1', sha256='9a199aa80c6d5e50fa977bc724d6e39dae1fc597a96413053609156ee7fb75c5')
version('1.0.2', sha256='35a4980586c20650538ae1e4fed4d80fdde3f212b98546fc3c7d9469a1207f5c')
- depends_on('r-magrittr', type=('build', 'run'))
- depends_on('r-assertthat', type=('build', 'run'))
+ depends_on('r-magrittr', when='@:1.0.2', type=('build', 'run'))
+ depends_on('r-assertthat', when='@:1.0.2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-proc/package.py b/var/spack/repos/builtin/packages/r-proc/package.py
new file mode 100644
index 0000000000..be5ce7acb6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-proc/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RProc(RPackage):
+ """Display and Analyze ROC Curves
+
+ Tools for visualizing, smoothing and comparing receiver operating
+ characteristic (ROC curves). (Partial) area under the curve (AUC) can be
+ compared with statistical tests based on U-statistics or bootstrap.
+ Confidence intervals can be computed for (p)AUC or ROC curves."""
+
+ homepage = "https://expasy.org/tools/pROC/"
+ url = "https://cloud.r-project.org/src/contrib/pROC_1.17.0.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/pROC"
+
+ version('1.17.0.1', sha256='221c726ffb81b04b999905effccfd3a223cd73cae70d7d86688e2dd30e51a6bd')
+
+ depends_on('r@2.14:', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-rcpp@0.11.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-processx/package.py b/var/spack/repos/builtin/packages/r-processx/package.py
index 88b4e95a38..fedf36d281 100644
--- a/var/spack/repos/builtin/packages/r-processx/package.py
+++ b/var/spack/repos/builtin/packages/r-processx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,20 @@ from spack import *
class RProcessx(RPackage):
- """Tools to run system processes in the background"""
+ """Execute and Control System Processes
+
+ Tools to run system processes in the background. It can check if a
+ background process is running; wait on a background process to finish; get
+ the exit status of finished processes; kill background processes. It can
+ read the standard output and error of the processes, using non-blocking
+ connections. 'processx' can poll a process for standard output or error,
+ with a timeout. It can also poll several processes at once."""
homepage = "https://github.com/r-lib/processx"
url = "https://cloud.r-project.org/src/contrib/processx_3.2.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/processx"
+ version('3.4.5', sha256='e368103aa6a6894bfa8e78b12a25598464bcd2c19a8b6334f24ee397db13bb14')
version('3.4.1', sha256='f1abddb48fa78f2b176552e2ec5d808d4d87d79ce72e9b3d25c9a7d715bbd1bc')
version('3.3.1', sha256='6123dbdf9f3bb6e5e8678980fb4587dcefb56d2190adf2ef494d7cd199720bae')
version('3.2.0', sha256='c4ba602fcbdc032ae9d94701b3e6b83a2dab1b53d0b4f9937b07a84eae22fddf')
@@ -21,8 +29,8 @@ class RProcessx(RPackage):
version('2.0.0.1', sha256='8f61b2952d0f2d13c74465bfba174ce11eee559475c2f7b9be6bcb9e2e1d827b')
version('2.0.0', sha256='8325b56a60a276909228756281523cda9256bc754c5f3ca03b41c5c17cc398ad')
- depends_on('r-assertthat', when='@:3.2.9', type=('build', 'run'))
- depends_on('r-crayon', when='@:3.2.9', type=('build', 'run'))
depends_on('r-ps@1.2.0:', when='@3.2.0:', type=('build', 'run'))
depends_on('r-r6', type=('build', 'run'))
+ depends_on('r-assertthat', when='@:3.2.9', type=('build', 'run'))
+ depends_on('r-crayon', when='@:3.2.9', type=('build', 'run'))
depends_on('r-debugme', when='@:3.0.9', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-prodlim/package.py b/var/spack/repos/builtin/packages/r-prodlim/package.py
index 97105f4c6c..de2292db56 100644
--- a/var/spack/repos/builtin/packages/r-prodlim/package.py
+++ b/var/spack/repos/builtin/packages/r-prodlim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RProdlim(RPackage):
- """Product-Limit Estimation for Censored Event History Analysis. Fast and
+ """Product-Limit Estimation for Censored Event History Analysis
+
+ Product-Limit Estimation for Censored Event History Analysis. Fast and
user friendly implementation of nonparametric estimators for censored event
history (survival) analysis. Kaplan-Meier and Aalen-Johansen method."""
@@ -15,6 +17,7 @@ class RProdlim(RPackage):
url = "https://cloud.r-project.org/src/contrib/prodlim_1.5.9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/prodlim"
+ version('2019.11.13', sha256='6809924f503a14681de84730489cdaf9240d7951c64f5b98ca37dc1ce7809b0f')
version('2018.04.18', sha256='4b22b54fdf712439309be0ff74f63cde9080464667b00e19823372ac0fc254ab')
version('1.6.1', sha256='3f2665257118a3db8682731a500b1ae4d669af344672dc2037f987bee3cca154')
version('1.5.9', sha256='853644886c57102e7f6dd26b6e03e54bf3f9e126f54c76f8d63a3324811f7b42')
diff --git a/var/spack/repos/builtin/packages/r-progress/package.py b/var/spack/repos/builtin/packages/r-progress/package.py
index ffe455a611..368c39c81c 100644
--- a/var/spack/repos/builtin/packages/r-progress/package.py
+++ b/var/spack/repos/builtin/packages/r-progress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-proj/package.py b/var/spack/repos/builtin/packages/r-proj/package.py
index 8a9cea0941..282cab5845 100644
--- a/var/spack/repos/builtin/packages/r-proj/package.py
+++ b/var/spack/repos/builtin/packages/r-proj/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,17 @@ from spack import *
class RProj(RPackage):
- """A wrapper around the generic coordinate transformation software 'PROJ'
- that transforms geospatial coordinates from one coordinate reference system
- ('CRS') to another. This includes cartographic projections as well as
- geodetic transformations. Version 6.0.0 or higher is required. The
- intention is for this package to be used by user-packages such as 'reproj',
- and that the older 'PROJ.4' and version 5 pathways be provided by the
- legacy package. The 'PROJ' library is available from
- <https://proj.org/>."""
+ """Generic Coordinate System Transformations Using 'PROJ'
+
+ Currently non-operational, a harmless wrapper to allow package 'reproj' to
+ install and function while relying on the 'proj4' package."""
homepage = "https://github.com/hypertidy/PROJ"
url = "https://cloud.r-project.org/src/contrib/PROJ_0.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/PROJ"
+ version('0.4.0', sha256='dde90cfeca83864e61a7422e1573d2d55bb0377c32b9a8f550f47b8631121ce7')
version('0.1.0', sha256='5186f221335e8092bbcd4d82bd323ee7e752c7c9cf83d3f94e4567e0b407aa6f')
depends_on('r@2.10:', type=('build', 'run'))
-
- depends_on('proj@6:')
+ depends_on('r@3.0.2:', when='@0.4.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-proj4/package.py b/var/spack/repos/builtin/packages/r-proj4/package.py
index ba3ad51c99..2324550d14 100644
--- a/var/spack/repos/builtin/packages/r-proj4/package.py
+++ b/var/spack/repos/builtin/packages/r-proj4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,18 @@ from spack import *
class RProj4(RPackage):
- """A simple interface to lat/long projection and datum transformation of
+ """A simple interface to the PROJ.4 cartographic projections library
+
+ A simple interface to lat/long projection and datum transformation of
the PROJ.4 cartographic projections library. It allows transformation of
geographic coordinates from one projection and/or datum to another."""
- homepage = "http://www.rforge.net/proj4/"
+ homepage = "https://www.rforge.net/proj4/"
url = "https://cloud.r-project.org/src/contrib/proj4_1.0-8.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/proj4"
+ version('1.0-10', sha256='5f396f172a17cfa9821a390f11ff7d3bff3c92ccf585572116dec459c621d1d0')
version('1.0-8.1', sha256='a3a2a8f0014fd79fa34b5957440fd38299d8e97f1a802a61a068a6c6cda10a7e')
depends_on('r@2.0.0:', type=('build', 'run'))
-
- depends_on('proj@:5')
+ depends_on('proj@4.4.6:5')
diff --git a/var/spack/repos/builtin/packages/r-projpred/package.py b/var/spack/repos/builtin/packages/r-projpred/package.py
new file mode 100644
index 0000000000..f1d22c1546
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-projpred/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2021 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 RProjpred(RPackage):
+ """Projection Predictive Feature Selection:
+
+ Performs projection predictive feature selection for generalized linear
+ models and generalized linear and additive multilevel models (see,
+ Piironen, Paasiniemi and Vehtari, 2020,
+ <https://projecteuclid.org/euclid.ejs/1589335310>, Catalina, Burkner and
+ Vehtari, 2020, <arXiv:2010.06994>). The package is compatible with the
+ 'rstanarm' and 'brms' packages, but other reference models can also be
+ used. See the package vignette for more information and examples."""
+
+ homepage = "https://mc-stan.org/projpred/"
+ cran = "projpred"
+
+ version('2.0.2', sha256='af0a9fb53f706090fe81b6381b27b0b6bd3f7ae1e1e44b0ada6f40972b09a55b')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-dplyr', type=('build', 'run'))
+ depends_on('r-loo@2.0.0:', type=('build', 'run'))
+ depends_on('r-rstantools@2.0.0:', type=('build', 'run'))
+ depends_on('r-lme4', type=('build', 'run'))
+ depends_on('r-optimx', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-rngtools@1.2.4:', type=('build', 'run'))
+ depends_on('r-tidyverse', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-mgcv', type=('build', 'run'))
+ depends_on('r-gamm4', type=('build', 'run'))
+ depends_on('r-rcpparmadillo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-promises/package.py b/var/spack/repos/builtin/packages/r-promises/package.py
index 9c21434a2f..24de999410 100644
--- a/var/spack/repos/builtin/packages/r-promises/package.py
+++ b/var/spack/repos/builtin/packages/r-promises/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RPromises(RPackage):
- """Provides fundamental abstractions for doing asynchronous programming in
+ """Abstractions for Promise-Based Asynchronous Programming
+
+ Provides fundamental abstractions for doing asynchronous programming in
R using promises. Asynchronous programming is useful for allowing a single
R process to orchestrate multiple tasks in the background while also
attending to something else. Semantics are similar to 'JavaScript'
@@ -17,6 +19,7 @@ class RPromises(RPackage):
url = "https://cloud.r-project.org/src/contrib/promises_1.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/promises"
+ version('1.1.1', sha256='3718c6eb2c3362cbe89389e613118f783f9977dbf24757f85026e661199c5800')
version('1.0.1', sha256='c2dbc7734adf009377a41e570dfe0d82afb91335c9d0ca1ef464b9bdcca65558')
depends_on('r-r6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-protgenerics/package.py b/var/spack/repos/builtin/packages/r-protgenerics/package.py
index fed08cdd6d..c439f381b6 100644
--- a/var/spack/repos/builtin/packages/r-protgenerics/package.py
+++ b/var/spack/repos/builtin/packages/r-protgenerics/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,14 @@ from spack import *
class RProtgenerics(RPackage):
- """S4 generic functions for Bioconductor proteomics infrastructure.
+ """S4 generic functions for Bioconductor proteomics infrastructure
S4 generic functions needed by Bioconductor proteomics packages."""
homepage = "https://bioconductor.org/packages/ProtGenerics"
git = "https://git.bioconductor.org/packages/ProtGenerics.git"
+ version('1.22.0', commit='2bb3011fb0d79536e1c50251084a7057004449c6')
version('1.16.0', commit='960a5fdc586898513b5ae9c48fffba5c5d703723')
version('1.14.0', commit='c85940b70a16ad69275c4facb3ef673d20a1c998')
version('1.12.0', commit='e84382a4b1730409f572fb681b5070017d00d30d')
diff --git a/var/spack/repos/builtin/packages/r-proto/package.py b/var/spack/repos/builtin/packages/r-proto/package.py
index 4c834fa39c..5a7d1896e4 100644
--- a/var/spack/repos/builtin/packages/r-proto/package.py
+++ b/var/spack/repos/builtin/packages/r-proto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class RProto(RPackage):
"""An object oriented system using object-based, also called
prototype-based, rather than class-based object oriented ideas."""
- homepage = "http://r-proto.googlecode.com/"
+ homepage = "https://cran.r-project.org/web/packages/proto/index.html"
url = "https://cloud.r-project.org/src/contrib/proto_0.3-10.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/proto"
diff --git a/var/spack/repos/builtin/packages/r-proxy/package.py b/var/spack/repos/builtin/packages/r-proxy/package.py
index 79841fc9ab..78af781534 100644
--- a/var/spack/repos/builtin/packages/r-proxy/package.py
+++ b/var/spack/repos/builtin/packages/r-proxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,18 @@ from spack import *
class RProxy(RPackage):
- """Provides an extensible framework for the efficient calculation of
- auto- and cross-proximities, along with implementations of the most
- popular ones."""
+ """Distance and Similarity Measures
+
+ Provides an extensible framework for the efficient calculation of auto- and
+ cross-proximities, along with implementations of the most popular ones."""
homepage = "https://cloud.r-project.org/package=proxy"
url = "https://cloud.r-project.org/src/contrib/proxy_0.4-19.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/proxy"
+ version('0.4-24', sha256='8cff9bf036475941a7c44ba9bb5e2f6d4777d49ab3daaeb52d23f4b2af6d9c7c')
version('0.4-23', sha256='9dd4eb0978f40e4fcb55c8a8a26266d32eff9c63ac9dfe70cf1f664ca9c3669d')
version('0.4-19', sha256='6b27e275018366e6024382704da9a9757c8878535dbcd7d450824b70e2e34d51')
- depends_on('r@3.3.2:', when='@:0.4-20', type=('build', 'run'))
+ depends_on('r@3.3.2:', type=('build', 'run'))
depends_on('r@3.4.0:', when='@0.4-21:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pryr/package.py b/var/spack/repos/builtin/packages/r-pryr/package.py
index b8666bf622..a1da51a226 100644
--- a/var/spack/repos/builtin/packages/r-pryr/package.py
+++ b/var/spack/repos/builtin/packages/r-pryr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ps/package.py b/var/spack/repos/builtin/packages/r-ps/package.py
index d5279b1afe..c3bd20c85a 100644
--- a/var/spack/repos/builtin/packages/r-ps/package.py
+++ b/var/spack/repos/builtin/packages/r-ps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,16 @@ from spack import *
class RPs(RPackage):
- """Manipulate processes on Windows, Linux and MacOS"""
+ """List, Query, Manipulate System Processes
+
+ List, query and manipulate all system processes, on 'Windows', 'Linux' and
+ 'macOS'."""
homepage = "https://github.com/r-lib/ps"
url = "https://cloud.r-project.org/src/contrib/ps_1.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ps"
+ version('1.5.0', sha256='7461a196f55557feda569a9791ad851c884f9a2dd71671655ed17cb048fafe96')
version('1.3.0', sha256='289193d0ccd2db0b6fe8702e8c5711e935219b17f90f01a6e9684982413e98d1')
version('1.2.1', sha256='bd7207164e6557a9e4213c4b00dc5dc23d7705ab290569765998640b16a3beff')
version('1.1.0', sha256='5d5240d5bf1d48c721b3fdf47cfc9dbf878e388ea1f057b764db05bffdc4a9fe')
diff --git a/var/spack/repos/builtin/packages/r-pscbs/package.py b/var/spack/repos/builtin/packages/r-pscbs/package.py
index c3197b7795..b638faa148 100644
--- a/var/spack/repos/builtin/packages/r-pscbs/package.py
+++ b/var/spack/repos/builtin/packages/r-pscbs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-pspline/package.py b/var/spack/repos/builtin/packages/r-pspline/package.py
index 7a33098c15..951b106d0a 100644
--- a/var/spack/repos/builtin/packages/r-pspline/package.py
+++ b/var/spack/repos/builtin/packages/r-pspline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-psych/package.py b/var/spack/repos/builtin/packages/r-psych/package.py
index 79c171ca9c..113652dc8a 100644
--- a/var/spack/repos/builtin/packages/r-psych/package.py
+++ b/var/spack/repos/builtin/packages/r-psych/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,33 +7,34 @@ from spack import *
class RPsych(RPackage):
- """A general purpose toolbox for personality, psychometric theory and
- experimental psychology. Functions are primarily for multivariate
- analysis and scale construction using factor analysis, principal
- component analysis, cluster analysis and reliability analysis, although
- others provide basic descriptive statistics. Item Response Theory is
- done using factor analysis of tetrachoric and polychoric correlations.
- Functions for analyzing data at multiple levels include within and
- between group statistics, including correlations and factor analysis.
- Functions for simulating and testing particular item and test structures
- are included. Several functions serve as a useful front end for
- structural equation modeling. Graphical displays of path diagrams,
- factor analysis and structural equation models are created using basic
- graphics. Some of the functions are written to support a book on
- psychometric theory as well as publications in personality research.
- For more information, see the <http://personality-project.org/r> web
- page."""
+ """Procedures for Psychological, Psychometric, and Personality Research
- homepage = "http://personality-project.org/r/psych"
+ A general purpose toolbox for personality, psychometric theory and
+ experimental psychology. Functions are primarily for multivariate analysis
+ and scale construction using factor analysis, principal component analysis,
+ cluster analysis and reliability analysis, although others provide basic
+ descriptive statistics. Item Response Theory is done using factor analysis
+ of tetrachoric and polychoric correlations. Functions for analyzing data
+ at multiple levels include within and between group statistics, including
+ correlations and factor analysis. Functions for simulating and testing
+ particular item and test structures are included. Several functions serve
+ as a useful front end for structural equation modeling. Graphical displays
+ of path diagrams, factor analysis and structural equation models are
+ created using basic graphics. Some of the functions are written to support
+ a book on psychometric theory as well as publications in personality
+ research. For more information, see the <http://personality-project.org/r>
+ web page."""
+
+ homepage = "https://personality-project.org/r/psych"
url = "https://cloud.r-project.org/src/contrib/psych_1.7.8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/psych"
+ version('2.0.12', sha256='8a71d4a1d8bc8c96703f9b4515cfb497e1947c6e017cb08270a7cfb36ce1ad4c')
version('1.8.12', sha256='6e175e049bc1ee5b79a9e51ccafb22b962b4e6c839ce5c9cfa1ad83967037743')
version('1.8.10', sha256='e8901ddab14729bfccbd82a8824fbb6523c10c2cd8fb7199b1ca56a7ffcb6e58')
version('1.7.8', sha256='f328ea602e22b0e7e5f310a8d19f305d8e0a3a86040cdfb64863b68b56d55135')
- depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-mnormt', type=('build', 'run'))
- depends_on('r-foreign', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-nlme', type=('build', 'run'))
+ depends_on('r-foreign', when='@:1.8.12', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ptw/package.py b/var/spack/repos/builtin/packages/r-ptw/package.py
index 424bb0fb10..63795cd79f 100644
--- a/var/spack/repos/builtin/packages/r-ptw/package.py
+++ b/var/spack/repos/builtin/packages/r-ptw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,25 @@ from spack import *
class RPtw(RPackage):
- """Parametric Time Warping aligns patterns, i.e. it aims to put
- corresponding features at the same locations. The algorithm
- searches for an optimal polynomial describing the warping. It is
- possible to align one sample to a reference, several samples to
- the same reference, or several samples to several references.
- One can choose between calculating individual warpings, or one
- global warping for a set of samples and one reference. Two
- optimization criteria are implemented: RMS (Root Mean Square
- error) and WCC (Weighted Cross Correlation). Both warping of
- peak profiles and of peak lists are supported."""
+ """Parametric Time Warping
+
+ Parametric Time Warping aligns patterns, i.e. it aims to put corresponding
+ features at the same locations. The algorithm searches for an optimal
+ polynomial describing the warping. It is possible to align one sample to a
+ reference, several samples to the same reference, or several samples to
+ several references. One can choose between calculating individual warpings,
+ or one global warping for a set of samples and one reference. Two
+ optimization criteria are implemented: RMS (Root Mean Square error) and WCC
+ (Weighted Cross Correlation). Both warping of peak profiles and of peak
+ lists are supported. A vignette for the latter is contained in the inst/doc
+ directory of the source package - the vignette source can be found on the
+ package github site."""
homepage = "https://cloud.r-project.org/package=ptw"
url = "https://cloud.r-project.org/src/contrib/ptw_1.9-12.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ptw"
+ version('1.9-15', sha256='22fa003f280bc000f46bca88d69bf332b29bc68435115ba8044533b70bfb7b46')
version('1.9-13', sha256='7855e74a167db3d3eba9df9d9c3daa25d7cf487cbcfe8b095f16d96eba862f46')
version('1.9-12', sha256='cdb1752e04e661e379f11867b0a17e2177e9ee647c54bbcc37d39d6b8c062b84')
diff --git a/var/spack/repos/builtin/packages/r-purrr/package.py b/var/spack/repos/builtin/packages/r-purrr/package.py
index 24e3145aac..e00513915f 100644
--- a/var/spack/repos/builtin/packages/r-purrr/package.py
+++ b/var/spack/repos/builtin/packages/r-purrr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class RPurrr(RPackage):
"""A complete and consistent functional programming toolkit for R."""
- homepage = "http://purrr.tidyverse.org/"
+ homepage = "https://purrr.tidyverse.org/"
url = "https://cloud.r-project.org/src/contrib/purrr_0.2.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/purrr"
diff --git a/var/spack/repos/builtin/packages/r-pvclust/package.py b/var/spack/repos/builtin/packages/r-pvclust/package.py
new file mode 100644
index 0000000000..415eb40922
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-pvclust/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RPvclust(RPackage):
+ """pvclust: Hierarchical Clustering with P-Values via Multiscale Bootstrap
+ Resampling
+
+ An implementation of multiscale bootstrap resampling for assessing the
+ uncertainty in hierarchical cluster analysis. It provides SI (selective
+ inference) p-value, AU (approximately unbiased) p-value and BP (bootstrap
+ probability) value for each cluster in a dendrogram."""
+
+ homepage = "https://cloud.r-project.org/package=pvclust"
+ url = "https://cloud.r-project.org/src/contrib/pvclust_2.2-0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/pvclust"
+
+ version('2.2-0', sha256='7892853bacd413b5a921006429641ad308a344ca171b3081c15e4c522a8b0201')
+
+ depends_on('r@2.10.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-qs/package.py b/var/spack/repos/builtin/packages/r-qs/package.py
new file mode 100644
index 0000000000..fe259fdf07
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-qs/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RQs(RPackage):
+ """Quick Serialization of R Objects
+
+ Provides functions for quickly writing and reading any R object
+ to and from disk."""
+
+ homepage = "https://cloud.r-project.org/web/packages/qs/index.html"
+ url = "https://cloud.r-project.org/src/contrib/qs_0.23.5.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/qs"
+
+ maintainers = ['dorton21']
+
+ version('0.23.6', sha256='c6e958e9741ee981bf2388c91b8f181718ffb0f32283cd7ebcd2d054817280e4')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-rapiserialize', type=('build', 'run'))
+ depends_on('r-stringfish@0.14.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-qtl/package.py b/var/spack/repos/builtin/packages/r-qtl/package.py
index 43db132843..f0c8323c5a 100644
--- a/var/spack/repos/builtin/packages/r-qtl/package.py
+++ b/var/spack/repos/builtin/packages/r-qtl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,17 @@ from spack import *
class RQtl(RPackage):
- """qtl: Tools for Analyzing QTL Experiments"""
+ """Tools for Analyzing QTL Experiments
- homepage = "http://rqtl.org"
+ Analysis of experimental crosses to identify genes (called quantitative
+ trait loci, QTLs) contributing to variation in quantitative traits. Broman
+ et al. (2003) <doi:10.1093/bioinformatics/btg112>."""
+
+ homepage = "https://rqtl.org"
url = "https://cloud.r-project.org/src/contrib/qtl_1.44-9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/qtl"
+ version('1.47-9', sha256='6ba4e7b40d946b3ab68d54624599284b1d352c86fb50d31b134826be758ece41')
version('1.44-9', sha256='315063f0c3fbb95cd2169eb4109ade0339e8f3c28670b38c3167214b9bdf950e')
depends_on('r@2.14.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-quadprog/package.py b/var/spack/repos/builtin/packages/r-quadprog/package.py
index 063b7a91a5..00df4d4617 100644
--- a/var/spack/repos/builtin/packages/r-quadprog/package.py
+++ b/var/spack/repos/builtin/packages/r-quadprog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RQuadprog(RPackage):
- """This package contains routines and documentation for solving
- quadratic programming problems."""
+ """Functions to Solve Quadratic Programming Problems
+
+ This package contains routines and documentation for solving quadratic
+ programming problems."""
homepage = "https://cloud.r-project.org/package=quadprog"
url = "https://cloud.r-project.org/src/contrib/quadprog_1.5-5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/quadprog"
+ version('1.5-8', sha256='22128dd6b08d3516c44ff89276719ad4fe46b36b23fdd585274fa3a93e7a49cd')
version('1.5-7', sha256='1af41e57df6f2d08ee8b72a1a5ada137beadb36c7ec9ab9bdb7c05226e8ae76d')
version('1.5-6', sha256='1443e5ffdf884b13dd454e4f6aa260fce6ec47e6845d85b62238c206ce57dcba')
version('1.5-5', sha256='d999620688354c283de5bb305203f5db70271b4dfdc23577cae8c2ba94c9e349')
diff --git a/var/spack/repos/builtin/packages/r-quantmod/package.py b/var/spack/repos/builtin/packages/r-quantmod/package.py
index c173d4a783..827a470aba 100644
--- a/var/spack/repos/builtin/packages/r-quantmod/package.py
+++ b/var/spack/repos/builtin/packages/r-quantmod/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RQuantmod(RPackage):
- """Specify, build, trade, and analyse quantitative financial trading
+ """Quantitative Financial Modelling Framework
+
+ Specify, build, trade, and analyse quantitative financial trading
strategies."""
- homepage = "http://www.quantmod.com/"
+ homepage = "https://www.quantmod.com/"
url = "https://cloud.r-project.org/src/contrib/quantmod_0.4-5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/quantmod"
+ version('0.4.18', sha256='aa40448e93a1facf399213ac691784007731e869ad243fe762381ab099cd6c35')
version('0.4-15', sha256='7ef2e798d4d8e4d2af0a5b2b9fecebec30568087afbd24bfd923cdeb8b53df53')
version('0.4-14', sha256='d95b1acf73328d675bbad18a93fa3c40faf58959e0401458ad21cf6b9f9254b3')
version('0.4-10', sha256='030040aa567adaba1ea4a1f05eb45712dbdaabbabca72733e7fb2984051f688b')
diff --git a/var/spack/repos/builtin/packages/r-quantreg/package.py b/var/spack/repos/builtin/packages/r-quantreg/package.py
index 6f1fe145a7..aab3783303 100644
--- a/var/spack/repos/builtin/packages/r-quantreg/package.py
+++ b/var/spack/repos/builtin/packages/r-quantreg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,19 @@ from spack import *
class RQuantreg(RPackage):
- """Estimation and inference methods for models of conditional quantiles:
- Linear and nonlinear parametric and non-parametric (total variation
- penalized) models for conditional quantiles of a univariate response
- and several methods for handling censored survival data. Portfolio
- selection methods based on expected shortfall risk are also
- included."""
+ """Quantile Regression
+
+ Estimation and inference methods for models of conditional quantiles:
+ Linear and nonlinear parametric and non-parametric (total variation
+ penalized) models for conditional quantiles of a univariate response and
+ several methods for handling censored survival data. Portfolio selection
+ methods based on expected shortfall risk are also now included."""
homepage = "https://cloud.r-project.org/package=quantreg"
url = "https://cloud.r-project.org/src/contrib/quantreg_5.29.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/quantreg"
+ version('5.82', sha256='eac34e1e34d00a24ed7cb6981af258a3afc561843c00501de3206b4540548c07')
version('5.51', sha256='df1330d245f66ee6d924b209bd4c15d44ff8cce52667959ec0d299975428bdb1')
version('5.42.1', sha256='4cc2b0883c52694e58fcfde83e30e4a54be9f4d9cbcf6138f6498cc8e0b3ccab')
version('5.40', sha256='86e310a235009ab85635dfb8803c175f80a35892e237db2525c4ef37a98936eb')
@@ -28,3 +30,4 @@ class RQuantreg(RPackage):
depends_on('r-sparsem', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
depends_on('r-matrixmodels', type=('build', 'run'))
+ depends_on('r-conquer', when='@5.82:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-quantro/package.py b/var/spack/repos/builtin/packages/r-quantro/package.py
index b56af1b419..26cdd7dc00 100644
--- a/var/spack/repos/builtin/packages/r-quantro/package.py
+++ b/var/spack/repos/builtin/packages/r-quantro/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RQuantro(RPackage):
- """A test for when to use quantile normalization.
+ """A test for when to use quantile normalization
A data-driven test for the assumptions of quantile normalization using
raw data such as objects that inherit eSets (e.g. ExpressionSet,
@@ -19,6 +19,7 @@ class RQuantro(RPackage):
homepage = "https://bioconductor.org/packages/quantro"
git = "https://git.bioconductor.org/packages/quantro.git"
+ version('1.24.0', commit='c7c0180292156a01722d91b353da44324e72d68f')
version('1.18.0', commit='f6553c2296289eed31e4b2f32a082e990bdb8359')
version('1.16.0', commit='cfc2e853bdc3cc90fd35e153fe243892d50d61c6')
version('1.14.0', commit='2d43264b2a95ae8ca51a69d7768fe43b9f1b77bb')
@@ -26,6 +27,7 @@ class RQuantro(RPackage):
version('1.10.0', commit='111337c0aba052aa49c3d2e2d3042794b28858c9')
depends_on('r@3.1.3:', type=('build', 'run'))
+ depends_on('r@4.0:', when='@1.24.0:', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-minfi', type=('build', 'run'))
depends_on('r-doparallel', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-quickplot/package.py b/var/spack/repos/builtin/packages/r-quickplot/package.py
new file mode 100644
index 0000000000..98310e3c93
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-quickplot/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2021 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 RQuickplot(RPackage):
+ """A System of Plotting Optimized for Speed and Modularity
+
+ A high-level plotting system, built using 'grid' graphics, that
+ is optimized for speed and modularity. This has great utility
+ for quick visualizations when testing code, with the key benefit
+ that visualizations are updated independently of one another."""
+
+ homepage = "https://quickplot.predictiveecology.org/"
+ url = "https://cloud.r-project.org/src/contrib/quickPlot_0.1.6.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/quickPlot"
+
+ maintainers = ['dorton21']
+
+ version('0.1.6', sha256='48690a77ae961ed1032130621ef06b2eaf86ee592bf1057471a8c6d6a98ace55')
+
+ depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r-backports', type=('build', 'run'))
+ depends_on('r-data-table@1.10.4:', type=('build', 'run'))
+ depends_on('r-fpcompare', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-gridbase', type=('build', 'run'))
+ depends_on('r-igraph', type=('build', 'run'))
+ depends_on('r-raster', type=('build', 'run'))
+ depends_on('r-rcolorbrewer', type=('build', 'run'))
+ depends_on('r-rgdal', type=('build', 'run'))
+ depends_on('r-rgeos', type=('build', 'run'))
+ depends_on('r-sp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-qvalue/package.py b/var/spack/repos/builtin/packages/r-qvalue/package.py
index 740a6cc996..600f210281 100644
--- a/var/spack/repos/builtin/packages/r-qvalue/package.py
+++ b/var/spack/repos/builtin/packages/r-qvalue/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RQvalue(RPackage):
- """Q-value estimation for false discovery rate control.
+ """Q-value estimation for false discovery rate control
This package takes a list of p-values resulting from the simultaneous
testing of many hypotheses and estimates their q-values and local FDR
@@ -24,6 +24,7 @@ class RQvalue(RPackage):
homepage = "https://bioconductor.org/packages/qvalue"
git = "https://git.bioconductor.org/packages/qvalue.git"
+ version('2.22.0', commit='b4bde8198252737b287fd7f9a4ed697f57fad92c')
version('2.16.0', commit='5efbe20ef522a45a7a04b681f72bb9a12e2747ae')
version('2.14.1', commit='b694e4b264f25250eb1d1115e70c07f65767c20e')
version('2.12.0', commit='7df64ebfcbe69dcbf8b88cb6ef0068bf16979673')
diff --git a/var/spack/repos/builtin/packages/r-r-cache/package.py b/var/spack/repos/builtin/packages/r-r-cache/package.py
index a27cf38bba..6831726129 100644
--- a/var/spack/repos/builtin/packages/r-r-cache/package.py
+++ b/var/spack/repos/builtin/packages/r-r-cache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-r-methodss3/package.py b/var/spack/repos/builtin/packages/r-r-methodss3/package.py
index 5dc58406cc..ba532e8dd7 100644
--- a/var/spack/repos/builtin/packages/r-r-methodss3/package.py
+++ b/var/spack/repos/builtin/packages/r-r-methodss3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRMethodss3(RPackage):
- """Methods that simplify the setup of S3 generic functions and
+ """S3 Methods Simplified
+
+ Methods that simplify the setup of S3 generic functions and
S3 methods. Major effort has been made in making definition of
methods as simple as possible with a minimum of maintenance for
package developers. For example, generic functions are created
@@ -21,6 +23,7 @@ class RRMethodss3(RPackage):
url = "https://cloud.r-project.org/src/contrib/R.methodsS3_1.7.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/R.methodsS3"
+ version('1.8.1', sha256='8a98fb81bcfa78193450f855f614f6f64e6c65daf115f301d97d1f474f5e619b')
version('1.7.1', sha256='44b840399266cd27f8f9157777b4d9d85ab7bd31bfdc143b3fc45079a2d8e687')
depends_on('r@2.13.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-r-oo/package.py b/var/spack/repos/builtin/packages/r-r-oo/package.py
index cedaafe72a..2e435f46cc 100644
--- a/var/spack/repos/builtin/packages/r-r-oo/package.py
+++ b/var/spack/repos/builtin/packages/r-r-oo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RROo(RPackage):
- """Methods and classes for object-oriented programming in R with
+ """R Object-Oriented Programming with or without References
+
+ Methods and classes for object-oriented programming in R with
or without references. Large effort has been made on making
definition of methods as simple as possible with a minimum of
maintenance for package developers. The package has been developed
@@ -19,9 +21,11 @@ class RROo(RPackage):
url = "https://cloud.r-project.org/src/contrib/R.oo_1.21.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/R.oo"
+ version('1.24.0', sha256='37a1dab8dd668ceba69a1ba36c0c60e9809e29b74bd56d1e8ed519e19c8e3bb6')
version('1.23.0', sha256='f5124ce3dbb0a62e8ef1bfce2de2d1dc2f776e8c48fd8cac358f7f5feb592ea1')
version('1.22.0', sha256='c0862e4608fb2b8f91ec4494d46c2f3ba7bc44999f9aa3d7b9625d3792e7dd4c')
version('1.21.0', sha256='645ceec2f815ed39650ca72db87fb4ece7357857875a4ec73e18bfaf647f431c')
depends_on('r@2.13.0:', type=('build', 'run'))
depends_on('r-r-methodss3@1.7.1:', type=('build', 'run'))
+ depends_on('r-r-methodss3@1.8.0:', when='@1.24.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-r-utils/package.py b/var/spack/repos/builtin/packages/r-r-utils/package.py
index a1e3743c97..8789546081 100644
--- a/var/spack/repos/builtin/packages/r-r-utils/package.py
+++ b/var/spack/repos/builtin/packages/r-r-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,21 @@ from spack import *
class RRUtils(RPackage):
- """Utility functions useful when programming and
+ """Various Programming Utilities
+
+ Utility functions useful when programming and
developing R packages."""
homepage = "https://github.com/HenrikBengtsson/R.utils"
url = "https://cloud.r-project.org/src/contrib/R.utils_2.5.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/R.utils"
+ version('2.10.1', sha256='957a4f51998c79403a50f6a46266e6553bbf08757b26bf80603a423bceb45abf')
version('2.9.0', sha256='b2aacc5a55d3ea86c41ac576d2583e446af145f4cb1103ad7b6f95b09ab09ff0')
version('2.5.0', sha256='1ae1a0f0c6a4972bb2369a2dbccd29ade87d747255ff9cb5a0bd784a5be1039f')
depends_on('r@2.14.0:', type=('build', 'run'))
depends_on('r-r-oo@1.22.0:', type=('build', 'run'))
+ depends_on('r-r-oo@1.23.0:', when='@2.10.1:', type=('build', 'run'))
depends_on('r-r-methodss3@1.7.1:', type=('build', 'run'))
+ depends_on('r-r-methodss3@1.8.0:', when='@2.10.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-r6/package.py b/var/spack/repos/builtin/packages/r-r6/package.py
index 43429dc5c4..8445c1a792 100644
--- a/var/spack/repos/builtin/packages/r-r6/package.py
+++ b/var/spack/repos/builtin/packages/r-r6/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RR6(RPackage):
- """The R6 package allows the creation of classes with reference semantics,
+ """Encapsulated Classes with Reference Semantics
+
+ The R6 package allows the creation of classes with reference semantics,
similar to R's built-in reference classes. Compared to reference classes,
R6 classes are simpler and lighter-weight, and they are not built on S4
classes so they do not require the methods package. These classes allow
@@ -18,6 +20,7 @@ class RR6(RPackage):
url = "https://cloud.r-project.org/src/contrib/R6_2.2.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/R6"
+ version('2.5.0', sha256='aec1af9626ec532cb883b544bf9eff4cb2d89c343c7ce0fa31761ec5a7882e02')
version('2.4.0', sha256='70be110174fbf5f5304049b186a6f9c05b77bfaec6d8caf980fcef5da6e0abce')
version('2.2.2', sha256='087756f471884c3b3ead80215a7cc5636a78b8a956e91675acfe2896426eae8f')
version('2.2.0', sha256='7d7bddc4303fafa99954182ccad938166d681499d4e9ae7001d21b0fd60d25c7')
diff --git a/var/spack/repos/builtin/packages/r-randomfields/package.py b/var/spack/repos/builtin/packages/r-randomfields/package.py
index 7856afa835..bce07e5956 100644
--- a/var/spack/repos/builtin/packages/r-randomfields/package.py
+++ b/var/spack/repos/builtin/packages/r-randomfields/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,27 @@ from spack import *
class RRandomfields(RPackage):
- """Methods for the inference on and the simulation of Gaussian fields
- are provided, as well as methods for the simulation of extreme
- value random fields."""
+ """Simulation and Analysis of Random Fields
+
+ Methods for the inference on and the simulation of Gaussian fields are
+ provided, as well as methods for the simulation of extreme value random
+ fields. Main geostatistical parts are based on the books by Christian
+ Lantuejoul <doi:10.1007/978-3-662-04808-5>, Jean-Paul Chiles and Pierre
+ Delfiner <doi:10.1002/9781118136188> and Noel A. Cressie
+ <doi:10.1002/9781119115151>. For the extreme value random fields see
+ Oesting, Schlather, Schillings (2019) <doi.org/10.1002/sta4.228> and
+ Schlather (2002) <doi.org/10.1023/A:1020977924878>."""
homepage = "https://cloud.r-project.org/package=RandomFields"
url = "https://cloud.r-project.org/src/contrib/RandomFields_3.1.50.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RandomFields"
+ version('3.3.8', sha256='8a08e2fdae428e354a29fb6818ae781cc56235a6849a0d29574dc756f73199d0')
version('3.3.6', sha256='51b7bfb4e5bd7fd0ce1207c77f428508a6cd3dfc9de01545a8724dfd9c050213')
version('3.3.4', sha256='a340d4f3ba7950d62acdfa19b9724c82e439d7b1a9f73340124038b7c90c73d4')
version('3.1.50', sha256='2d6a07c3a716ce20f9c685deb59e8fcc64fd52c8a50b0f04baf451b6b928e848')
depends_on('r@3.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@3.3.8:', type=('build', 'run'))
depends_on('r-sp', type=('build', 'run'))
depends_on('r-randomfieldsutils@0.5.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-randomfieldsutils/package.py b/var/spack/repos/builtin/packages/r-randomfieldsutils/package.py
index aadecfe47b..ee2289bd5e 100644
--- a/var/spack/repos/builtin/packages/r-randomfieldsutils/package.py
+++ b/var/spack/repos/builtin/packages/r-randomfieldsutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-randomforest/package.py b/var/spack/repos/builtin/packages/r-randomforest/package.py
index 78245e4aac..386dacff8b 100644
--- a/var/spack/repos/builtin/packages/r-randomforest/package.py
+++ b/var/spack/repos/builtin/packages/r-randomforest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-randomglm/package.py b/var/spack/repos/builtin/packages/r-randomglm/package.py
index 461fa43d36..33ea5d79f2 100644
--- a/var/spack/repos/builtin/packages/r-randomglm/package.py
+++ b/var/spack/repos/builtin/packages/r-randomglm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ranger/package.py b/var/spack/repos/builtin/packages/r-ranger/package.py
index eec92d0ac1..c855306df2 100644
--- a/var/spack/repos/builtin/packages/r-ranger/package.py
+++ b/var/spack/repos/builtin/packages/r-ranger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,20 @@ from spack import *
class RRanger(RPackage):
- """A fast implementation of Random Forests, particularly suited for high
- dimensional data."""
+ """A Fast Implementation of Random Forests
+
+ A fast implementation of Random Forests, particularly suited for high
+ dimensional data. Ensembles of classification, regression, survival and
+ probability prediction trees are supported. Data from genome-wide
+ association studies can be analyzed efficiently. In addition to data
+ frames, datasets of class 'gwaa.data' (R package 'GenABEL') and 'dgCMatrix'
+ (R package 'Matrix') can be directly analyzed."""
homepage = "https://cloud.r-project.org/package=ranger"
url = "https://cloud.r-project.org/src/contrib/ranger_0.8.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ranger"
+ version('0.12.1', sha256='fc308e0ac06718272799928e1a19612de16b05bde481d8f38e11a101df5425ef')
version('0.11.2', sha256='13ac8a9433fdd92f62f66de44abc52477dcbb436b2045c1947951a266bffbeeb')
version('0.11.1', sha256='999fb114602e27601ff0fe8ab461c39d667c6f5e8434e7feb3d21c7caf0dcffb')
version('0.8.0', sha256='7f0fdee2f2d553a0aec56c2a4a4ff9dd972e1c7284118d9ea570749e0eaaabb9')
@@ -23,6 +30,6 @@ class RRanger(RPackage):
version('0.4.0', sha256='d9f5761c3b07357aa586270cf7cbc97fc3db56ba731b6d0f3baf296f635f2be5')
depends_on('r@3.1:', type=('build', 'run'))
- depends_on('r-matrix', type=('build', 'run'))
depends_on('r-rcpp@0.11.2:', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
depends_on('r-rcppeigen', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rann/package.py b/var/spack/repos/builtin/packages/r-rann/package.py
index c4ee212e10..172e431e0e 100644
--- a/var/spack/repos/builtin/packages/r-rann/package.py
+++ b/var/spack/repos/builtin/packages/r-rann/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rapiserialize/package.py b/var/spack/repos/builtin/packages/r-rapiserialize/package.py
new file mode 100644
index 0000000000..9d2a5af398
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rapiserialize/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RRapiserialize(RPackage):
+ """R API Serialization
+
+ This package provides other packages with access to the internal R
+ serialization code. Access to this code is provided at the C function
+ level by using the registration of native function mechanism. Client
+ packages simply include a single header file RApiSerializeAPI.h provided
+ by this package. This packages builds on the Rhpc package by Junji Nakano
+ and Ei-ji Nakama which also includes a (partial) copy of the file
+ src/main/serialize.c from R itself. The R Core group is the original
+ author of the serialization code made available by this package."""
+
+ homepage = "https://cloud.r-project.org/web/packages/RApiSerialize/index.html"
+ url = "https://cloud.r-project.org/src/contrib/RApiSerialize_0.1.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/RApiSerialize"
+
+ maintainers = ['dorton21']
+
+ version('0.1.0', sha256='324d42c655c27b4647d194bfcd7c675da95c67ea3a74ce99853502022792a23e')
diff --git a/var/spack/repos/builtin/packages/r-rappdirs/package.py b/var/spack/repos/builtin/packages/r-rappdirs/package.py
index e00f35597f..b369179add 100644
--- a/var/spack/repos/builtin/packages/r-rappdirs/package.py
+++ b/var/spack/repos/builtin/packages/r-rappdirs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-raster/package.py b/var/spack/repos/builtin/packages/r-raster/package.py
index 58ad440060..9ad6fd8475 100644
--- a/var/spack/repos/builtin/packages/r-raster/package.py
+++ b/var/spack/repos/builtin/packages/r-raster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,24 @@ from spack import *
class RRaster(RPackage):
- """Reading, writing, manipulating, analyzing and modeling of gridded
- spatial data. The package implements basic and high-level functions.
- Processing of very large files is supported."""
+ """Geographic Data Analysis and Modeling
+
+ Reading, writing, manipulating, analyzing and modeling of spatial data. The
+ package implements basic and high-level functions for raster data and for
+ vector data operations such as intersections. See the manual and tutorials
+ on <https://rspatial.org/> to get started."""
homepage = "https://cloud.r-project.org/package=raster"
url = "https://cloud.r-project.org/src/contrib/raster_2.5-8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/raster"
+ version('3.4-5', sha256='c6620d790b3aba1b64aec31325f726e63f26a14a1b48c1a0f9167a0b1a64e4a5')
version('2.9-23', sha256='90aaec9e3b1e3e6015d9993ea7491e008f2f71990f8abb8610f979c4e28b38af')
version('2.9-22', sha256='8107d95f1aa85cea801c8101c6aa391becfef4b5b915d9bc7a323531fee26128')
version('2.5-8', sha256='47992abd783450513fbce3770298cc257030bf0eb77e42aa3a4b3924b16264cc')
depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@3.4-5:', type=('build', 'run'))
depends_on('r-sp@1.2-0:', type=('build', 'run'))
+ depends_on('r-sp@1.4.1:', when='@3.4-5:', type=('build', 'run'))
depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rbgl/package.py b/var/spack/repos/builtin/packages/r-rbgl/package.py
index b4f816d24b..d9fadb4732 100644
--- a/var/spack/repos/builtin/packages/r-rbgl/package.py
+++ b/var/spack/repos/builtin/packages/r-rbgl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RRbgl(RPackage):
- """An interface to the BOOST graph library.
+ """An interface to the BOOST graph library
A fairly extensive and comprehensive interface to the graph algorithms
contained in the BOOST library."""
@@ -15,6 +15,7 @@ class RRbgl(RPackage):
homepage = "https://bioconductor.org/packages/RBGL"
git = "https://git.bioconductor.org/packages/RBGL.git"
+ version('1.66.0', commit='bf0c111dbc231de6d3423c28e115b54fb010e1ea')
version('1.60.0', commit='ef24c17c411659b8f030602bd9781c534d6ec93b')
version('1.58.2', commit='086ad0c6bab7be29311b6ae14fd39df7a21331a6')
version('1.56.0', commit='a1fa9d89c6a3401892c5dd1493df6a14031f0912')
@@ -22,5 +23,4 @@ class RRbgl(RPackage):
version('1.52.0', commit='93e8fcfafec8f1cd5638fe30dc0f9506d15b49c0')
depends_on('r-graph', type=('build', 'run'))
-
depends_on('r-bh', when='@1.60.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rbibutils/package.py b/var/spack/repos/builtin/packages/r-rbibutils/package.py
new file mode 100644
index 0000000000..39aec9975c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rbibutils/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 RRbibutils(RPackage):
+ """Convert Between Bibliography Formats
+
+ Converts between a number of bibliography formats, including 'BibTeX',
+ 'BibLaTeX' and 'Bibentry'. Includes a port of the 'bibutils' utilities by
+ Chris Putnam <https://sourceforge.net/projects/bibutils/>. Supports all
+ bibliography formats and character encodings implemented in 'bibutils'."""
+
+ homepage = "https://geobosh.github.io/rbibutils/"
+ url = "https://cloud.r-project.org/src/contrib/rbibutils_2.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/rbibutils"
+
+ version('2.0', sha256='03d13abee321decb88bc4e7c9f27276d62a4a880fa72bb6b86be91885010cfed')
+
+ depends_on('r@2.10:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rbokeh/package.py b/var/spack/repos/builtin/packages/r-rbokeh/package.py
index 7b0c75d974..c1b81d11d7 100644
--- a/var/spack/repos/builtin/packages/r-rbokeh/package.py
+++ b/var/spack/repos/builtin/packages/r-rbokeh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,15 +8,20 @@ from spack import *
class RRbokeh(RPackage):
- """R interface for creating plots in Bokeh. Bokeh by Continuum
- Analytics."""
+ """R Interface for Bokeh
+
+ A native R plotting library that provides a flexible declarative interface
+ for creating interactive web-based graphics, backed by the Bokeh
+ visualization library <https://bokeh.pydata.org/>."""
homepage = "https://hafen.github.io/rbokeh"
url = "https://cloud.r-project.org/src/contrib/rbokeh_0.5.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rbokeh"
+ version('0.5.1', sha256='48eba3b238cea2b9aa408d8a48c663564292e76f2ab3f603bc671315a4a75a88')
version('0.5.0', sha256='499c3224a7dcaeb4bb60fd645b3ef528a20e59437747a073713941b80cbcebd2')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r-htmlwidgets@0.5:', type=('build', 'run'))
depends_on('r-maps', type=('build', 'run'))
depends_on('r-jsonlite', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rcmdcheck/package.py b/var/spack/repos/builtin/packages/r-rcmdcheck/package.py
index b1fc06071d..8fe5c05315 100644
--- a/var/spack/repos/builtin/packages/r-rcmdcheck/package.py
+++ b/var/spack/repos/builtin/packages/r-rcmdcheck/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py b/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py
index f49aaa4893..db5a5df3c9 100644
--- a/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py
+++ b/var/spack/repos/builtin/packages/r-rcolorbrewer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,9 +8,9 @@ from spack import *
class RRcolorbrewer(RPackage):
"""Provides color schemes for maps (and other graphics) designed by Cynthia
- Brewer as described at http://colorbrewer2.org"""
+ Brewer as described at https://colorbrewer2.org/"""
- homepage = "http://colorbrewer2.org"
+ homepage = "https://colorbrewer2.org"
url = "https://cloud.r-project.org/src/contrib/RColorBrewer_1.1-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RColorBrewer"
diff --git a/var/spack/repos/builtin/packages/r-rcpp/package.py b/var/spack/repos/builtin/packages/r-rcpp/package.py
index d479880153..2c6fca4b33 100644
--- a/var/spack/repos/builtin/packages/r-rcpp/package.py
+++ b/var/spack/repos/builtin/packages/r-rcpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,20 +7,25 @@ from spack import *
class RRcpp(RPackage):
- """The 'Rcpp' package provides R functions as well as C++ classes which
- offer a seamless integration of R and C++. Many R data types and objects
- can be mapped back and forth to C++ equivalents which facilitates both
- writing of new code as well as easier integration of third-party libraries.
- Documentation about 'Rcpp' is provided by several vignettes included in
- this package, via the 'Rcpp Gallery' site at <http://gallery.rcpp.org>, the
- paper by Eddelbuettel and Francois (2011, JSS), and the book by
- Eddelbuettel (2013, Springer); see 'citation("Rcpp")' for details on these
- last two."""
+ """Seamless R and C++ Integration
- homepage = "http://dirk.eddelbuettel.com/code/rcpp.html"
+ The 'Rcpp' package provides R functions as well as C++ classes which; offer
+ a seamless integration of R and C++. Many R data types and objects can be;
+ mapped back and forth to C++ equivalents which facilitates both writing of
+ new; code as well as easier integration of third-party libraries.
+ Documentation; about 'Rcpp' is provided by several vignettes included in
+ this package, via the; 'Rcpp Gallery' site at <https://gallery.rcpp.org>,
+ the paper by Eddelbuettel and; Francois (2011,
+ <doi:10.18637/jss.v040.i08>), the book by Eddelbuettel (2013,;
+ <doi:10.1007/978-1-4614-6868-4>) and the paper by Eddelbuettel and Balamuta
+ (2018,; <doi:10.1080/00031305.2017.1375990>); see 'citation("Rcpp")' for
+ details."""
+
+ homepage = "https://dirk.eddelbuettel.com/code/rcpp.html"
url = "https://cloud.r-project.org/src/contrib/Rcpp_0.12.13.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Rcpp"
+ version('1.0.6', sha256='c9f24756bc000f7a989bd4f9aa93d57f7739dcde77946703f8bb32332a35f012')
version('1.0.4.6', sha256='45af675ddbbe155e671453b2e84fe32250bb98d4ccb4342b61c1e25cff10b302')
version('1.0.2', sha256='ad9338d6fc89dd116a3e2c5ecef1956e4be63b6c6aa1b21b2e5f249d65a5129c')
version('1.0.0', sha256='b7378bf0dda17ef72aa3f2a318a9cb5667bef50b601dc1096431e17426e18bc2')
diff --git a/var/spack/repos/builtin/packages/r-rcppannoy/package.py b/var/spack/repos/builtin/packages/r-rcppannoy/package.py
index e65c96ed49..0488de3306 100644
--- a/var/spack/repos/builtin/packages/r-rcppannoy/package.py
+++ b/var/spack/repos/builtin/packages/r-rcppannoy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRcppannoy(RPackage):
- """'Annoy' is a small C++ library for Approximate Nearest Neighbors written
+ """'Rcpp' Bindings for 'Annoy', a Library for Approximate Nearest Neighbors
+
+ 'Annoy' is a small C++ library for Approximate Nearest Neighbors written
for efficient memory usage as well an ability to load from / save to disk.
This package provides an R interface by relying on the 'Rcpp' package,
exposing the same interface as the original Python wrapper to 'Annoy'. See
@@ -19,6 +21,7 @@ class RRcppannoy(RPackage):
url = "https://cloud.r-project.org/src/contrib/RcppAnnoy_0.0.12.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppAnnoy"
+ version('0.0.18', sha256='e4e7ddf071109b47b4fdf285db6d2155618ed73da829c30d8e64fc778e63c858')
version('0.0.12', sha256='8f736cbbb4a32c80cb08ba4e81df633846d725f27867e983af2012966eac0eac')
depends_on('r@3.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rcpparmadillo/package.py b/var/spack/repos/builtin/packages/r-rcpparmadillo/package.py
index 2c9dd4d30f..3482664fa2 100644
--- a/var/spack/repos/builtin/packages/r-rcpparmadillo/package.py
+++ b/var/spack/repos/builtin/packages/r-rcpparmadillo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,25 @@ from spack import *
class RRcpparmadillo(RPackage):
- """'Rcpp' Integration for the 'Armadillo' Templated Linear
- Algebra Library."""
+ """'Rcpp' Integration for the 'Armadillo' Templated Linear Algebra Library
+
+ 'Armadillo' is a templated C++ linear algebra library (by Conrad;
+ Sanderson) that aims towards a good balance between speed and ease of; use.
+ Integer, floating point and complex numbers are supported, as; well as a
+ subset of trigonometric and statistics functions. Various; matrix
+ decompositions are provided through optional integration with; LAPACK and
+ ATLAS libraries. The 'RcppArmadillo' package includes the; header files
+ from the templated 'Armadillo' library. Thus users do; not need to install
+ 'Armadillo' itself in order to use; 'RcppArmadillo'. From release 7.800.0
+ on, 'Armadillo' is licensed; under Apache License 2; previous releases were
+ under licensed as MPL; 2.0 from version 3.800.0 onwards and LGPL-3 prior to
+ that"""
homepage = "https://cloud.r-project.org/package=RcppArmadillo"
url = "https://cloud.r-project.org/src/contrib/RcppArmadillo_0.8.100.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppArmadillo"
+ version('0.10.1.2.2', sha256='38323703fcf2b61f46f2984aafdd3ddf17c3c993d1d27a8f0f4ba5012b99d069')
version('0.9.600.4.0', sha256='2057b7aa965a4c821dd734276d8e6a01cd59a1b52536b65cb815fa7e8c114f1e')
version('0.9.400.3.0', sha256='56936d501fe8e6f8796ae1a6badb9294d7dad98a0b557c3b3ce6bd4ecaad13b0')
version('0.8.100.1.0', sha256='97ca929b34d84d99d7cadc3612b544632cdd0c43ed962933a3d47caa27854fa7')
diff --git a/var/spack/repos/builtin/packages/r-rcppblaze/package.py b/var/spack/repos/builtin/packages/r-rcppblaze/package.py
index 4838083e49..34936ac2e8 100644
--- a/var/spack/repos/builtin/packages/r-rcppblaze/package.py
+++ b/var/spack/repos/builtin/packages/r-rcppblaze/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rcppcctz/package.py b/var/spack/repos/builtin/packages/r-rcppcctz/package.py
index 4acfe804ea..92299c02cd 100644
--- a/var/spack/repos/builtin/packages/r-rcppcctz/package.py
+++ b/var/spack/repos/builtin/packages/r-rcppcctz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,19 @@ from spack import *
class RRcppcctz(RPackage):
- """'Rcpp' Access to the 'CCTZ' timezone library is provided. 'CCTZ' is a
- C++ library for translating between absolute and civil times using the
- rules of a time zone. The 'CCTZ' source code, released under the
- Apache 2.0 License, is included in this package. See
- <https://github.com/google/cctz> for more details."""
+ """'Rcpp' Bindings for the 'CCTZ' Library
+
+ 'Rcpp' Access to the 'CCTZ' timezone library is provided. 'CCTZ' is a C++
+ library for translating between absolute and civil times using the rules of
+ a time zone. The 'CCTZ' source code, released under the Apache 2.0 License,
+ is included in this package. See <https://github.com/google/cctz> for more
+ details."""
homepage = "https://github.com/eddelbuettel/rcppcctz"
url = "https://cloud.r-project.org/src/contrib/RcppCCTZ_0.2.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppCCTZ"
+ version('0.2.9', sha256='723f45eca1be08903234e339523daca35748fe65c1a9d59afcb583d3a17bcaae')
version('0.2.6', sha256='0e9a76055d29da24cd4c4069c78c1f44998f3461be60c7a6c3e7a35059fb79ae')
version('0.2.4', sha256='98b6867d38abe03957fe803e88b6cc2d122b85a68ef07fa86f7e1009d6c00819')
version('0.2.3', sha256='0fefcc98387b2c1a5907e5230babb46e2cc11b603424f458f515e445a3236031')
diff --git a/var/spack/repos/builtin/packages/r-rcppcnpy/package.py b/var/spack/repos/builtin/packages/r-rcppcnpy/package.py
index e86e6c0994..d05ddad5c4 100644
--- a/var/spack/repos/builtin/packages/r-rcppcnpy/package.py
+++ b/var/spack/repos/builtin/packages/r-rcppcnpy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rcppdate/package.py b/var/spack/repos/builtin/packages/r-rcppdate/package.py
new file mode 100644
index 0000000000..95d23bfcee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rcppdate/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RRcppdate(RPackage):
+ """'date' C++ Header Library for Date and Time Functionality
+
+ 'date' is a C++ header library offering extensive date and time
+ functionality for the C++11, C++14 and C++17 standards written by Howard
+ Hinnant and released under the MIT license. A slightly modified version has
+ been accepted (along with 'tz.h') as part of C++20. This package regroups
+ all header files from the upstream repository by Howard Hinnant so that
+ other R packages can use them in their C++ code. At present, few of the
+ types have explicit 'Rcpp' wrapper though these may be added as needed."""
+
+ homepage = "https://github.com/eddelbuettel/rcppdate"
+ url = "https://cloud.r-project.org/src/contrib/RcppDate_0.0.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppDate"
+
+ version('0.0.1', sha256='117721fc677dfb4209200a7ff894fbbb8ee1b652d01b3878b11c3253733b4a5f')
diff --git a/var/spack/repos/builtin/packages/r-rcppeigen/package.py b/var/spack/repos/builtin/packages/r-rcppeigen/package.py
index 8b6ed5cc49..c538ee8ac3 100644
--- a/var/spack/repos/builtin/packages/r-rcppeigen/package.py
+++ b/var/spack/repos/builtin/packages/r-rcppeigen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRcppeigen(RPackage):
- """R and 'Eigen' integration using 'Rcpp'. 'Eigen' is a C++ template
+ """'Rcpp' Integration for the 'Eigen' Templated Linear Algebra Library
+
+ R and 'Eigen' integration using 'Rcpp'. 'Eigen' is a C++ template
library for linear algebra: matrices, vectors, numerical solvers and
related algorithms. It supports dense and sparse matrices on integer,
floating point and complex numbers, decompositions of such matrices, and
@@ -21,16 +23,16 @@ class RRcppeigen(RPackage):
'RcppEigen' (the 'Rcpp' bindings/bridge to 'Eigen') is licensed under the
GNU GPL version 2 or later, as is the rest of 'Rcpp'."""
- homepage = "http://eigen.tuxfamily.org/"
+ homepage = "https://eigen.tuxfamily.org/"
url = "https://cloud.r-project.org/src/contrib/RcppEigen_0.3.2.9.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppEigen"
+ version('0.3.3.9.1', sha256='8a0486249b778a4275a1168fc89fc7fc49c2bb031cb14b50a50089acae7fe962')
version('0.3.3.5.0', sha256='e5c6af17770c5f57b7cf2fba04ad1a519901b446e8138bfff221952458207f05')
version('0.3.3.4.0', sha256='11020c567b299b1eac95e8a4d57abf0315931286907823dc7b66c44d0dd6dad4')
version('0.3.3.3.1', sha256='14fdd2cb764d0a822e11b8f09dcf1c3c8580d416f053404732064d8f2b176f24')
version('0.3.2.9.0', sha256='25affba9065e3c12d67b1934d1ce97a928a4011a7738f7b90f0e9830409ec93b')
version('0.3.2.8.1', sha256='ceccb8785531c5c23f9232b594e5372c214a114a08ec759115e946badd08d681')
- depends_on('r@2.15.1:', type=('build', 'run'))
depends_on('r-matrix@1.1-0:', type=('build', 'run'))
depends_on('r-rcpp@0.11.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rcpphnsw/package.py b/var/spack/repos/builtin/packages/r-rcpphnsw/package.py
index 9196583bf5..bb6c67b470 100644
--- a/var/spack/repos/builtin/packages/r-rcpphnsw/package.py
+++ b/var/spack/repos/builtin/packages/r-rcpphnsw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,19 @@ from spack import *
class RRcpphnsw(RPackage):
- """RcppHNSW: 'Rcpp' Bindings for 'hnswlib', a Library for Approximate
- NearestNeighbors"""
+ """'Rcpp' Bindings for 'hnswlib', a Library for Approximate
+ NearestNeighbors
+
+ 'Hnswlib' is a C++ library for Approximate Nearest Neighbors. This ;
+ package provides a minimal R interface by relying on the 'Rcpp' package.
+ See ; <https://github.com/nmslib/hnswlib> for more on 'hnswlib'. 'hnswlib'
+ is ; released under Version 2.0 of the Apache License."""
homepage = "https://cloud.r-project.org/package=RcppHNSW"
url = "https://cloud.r-project.org/src/contrib/RcppHNSW_0.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppHNSW"
+ version('0.3.0', sha256='a0eb4eea65e28ba31e8306a1856f7e617a192bd448b148f88abe99181cbde007')
version('0.1.0', sha256='75a54c30953845dec685764c7b3b4cd7315197c91aef4ab3b4eb0a6293010a95')
depends_on('r-rcpp@0.11.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rcppparallel/package.py b/var/spack/repos/builtin/packages/r-rcppparallel/package.py
index 4f4459c990..3161a89f59 100644
--- a/var/spack/repos/builtin/packages/r-rcppparallel/package.py
+++ b/var/spack/repos/builtin/packages/r-rcppparallel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,18 @@ from spack import *
class RRcppparallel(RPackage):
- """High level functions for parallel programming with 'Rcpp'. For example,
+ """Parallel Programming Tools for 'Rcpp'
+
+ High level functions for parallel programming with 'Rcpp'. For example,
the 'parallelFor()' function can be used to convert the work of a standard
serial "for" loop into a parallel one and the 'parallelReduce()' function
can be used for accumulating aggregate or other values."""
- homepage = "http://rcppcore.github.io/RcppParallel"
+ homepage = "https://rcppcore.github.io/RcppParallel"
url = "https://cloud.r-project.org/src/contrib/RcppParallel_4.4.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppParallel"
+ version('5.0.2', sha256='8ca200908c6365aafb2063be1789f0894969adc03c0f523c6cc45434b8236f81')
version('4.4.3', sha256='7a04929ecab97e46c0b09fe5cdbac9d7bfa17ad7d111f1a9787a9997f45fa0fa')
depends_on('r@3.0.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rcppprogress/package.py b/var/spack/repos/builtin/packages/r-rcppprogress/package.py
index c0ed65f86f..633fba6737 100644
--- a/var/spack/repos/builtin/packages/r-rcppprogress/package.py
+++ b/var/spack/repos/builtin/packages/r-rcppprogress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRcppprogress(RPackage):
- """Allows to display a progress bar in the R console for long running
+ """An Interruptible Progress Bar with OpenMP Support for C++ in R Packages
+
+ Allows to display a progress bar in the R console for long running
computations taking place in c++ code, and support for interrupting
those computations even in multithreaded code, typically using OpenMP."""
@@ -15,6 +17,7 @@ class RRcppprogress(RPackage):
url = "https://cloud.r-project.org/src/contrib/RcppProgress_0.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppProgress"
+ version('0.4.2', sha256='b1624b21b7aeb1dafb30f092b2a4bef4c3504efd2d6b00b2cdf55dc9df194b48')
version('0.4.1', sha256='11764105922f763d4c75c502599ec7dcc2fd629a029964caf53f98b41d0c607a')
version('0.4', sha256='706e14360dbc5976db05c2ac6692c3279c0f8c95e72bf9d4becd9e1348025e3e')
version('0.3', sha256='3de5dc47cc2f9e839f92355c463289531e8c13806e54c7438f63c7c34378261d')
diff --git a/var/spack/repos/builtin/packages/r-rcurl/package.py b/var/spack/repos/builtin/packages/r-rcurl/package.py
index 51586cc691..23e14c0b52 100644
--- a/var/spack/repos/builtin/packages/r-rcurl/package.py
+++ b/var/spack/repos/builtin/packages/r-rcurl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rda/package.py b/var/spack/repos/builtin/packages/r-rda/package.py
index 06c40411a4..b1c36171af 100644
--- a/var/spack/repos/builtin/packages/r-rda/package.py
+++ b/var/spack/repos/builtin/packages/r-rda/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,9 @@ class RRda(RPackage):
url = "https://cloud.r-project.org/src/contrib/rda_1.0.2-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rda"
- version('1.0.2-2.1', sha256='6918b62f51252b57f2c05b99debef6136b370f594dc3ae6466268e4c35578ef8')
+ # Note: Package 'rda' was removed from the CRAN repository.
+ # The latest archived version is below
+ version('1.0.2-2.1', sha256='eea3a51a2e132a023146bfbc0c384f5373eb3ea2b61743d7658be86a5b04949e')
version('1.0.2-2', sha256='52ee41249b860af81dc692eee38cd4f8f26d3fbe34cb274f4e118de0013b58bc')
version('1.0.2-1', sha256='e5b96610ec9e82f12efe5dbb9a3ec9ecba9aaddfad1d6ab3f8c37d15fc2b42b7')
diff --git a/var/spack/repos/builtin/packages/r-rdpack/package.py b/var/spack/repos/builtin/packages/r-rdpack/package.py
index 77b290c72c..33b883716d 100644
--- a/var/spack/repos/builtin/packages/r-rdpack/package.py
+++ b/var/spack/repos/builtin/packages/r-rdpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRdpack(RPackage):
- """Functions for manipulation of R documentation objects, including
+ """Update and Manipulate Rd Documentation Objects
+
+ Functions for manipulation of R documentation objects, including
functions reprompt() and ereprompt() for updating 'Rd' documentation for
functions, methods and classes; 'Rd' macros for citations and import of
references from 'bibtex' files for use in 'Rd' files and 'roxygen2'
@@ -19,8 +21,10 @@ class RRdpack(RPackage):
url = "https://cloud.r-project.org/src/contrib/Rdpack_0.11-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Rdpack"
+ version('2.1', sha256='26e094fe3c077fb2a99e95c5bd94015a5f993a4a5f5d217829b4872ff004bfce')
version('0.11-0', sha256='8fb449c80fbe931cdce51f728fb03a1978009ccce66fd6b9edacdc6ff4118d85')
depends_on('r@2.15.0:', type=('build', 'run'))
- depends_on('r-bibtex@0.4.0:', type=('build', 'run'))
depends_on('r-gbrd', type=('build', 'run'))
+ depends_on('r-rbibutils@1.3:', when='@2.1:', type=('build', 'run'))
+ depends_on('r-bibtex@0.4.0:', when='@:0.11-0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-readbitmap/package.py b/var/spack/repos/builtin/packages/r-readbitmap/package.py
index 8773b3ff51..acf57da00f 100644
--- a/var/spack/repos/builtin/packages/r-readbitmap/package.py
+++ b/var/spack/repos/builtin/packages/r-readbitmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-readr/package.py b/var/spack/repos/builtin/packages/r-readr/package.py
index f618df980b..8a100e8c63 100644
--- a/var/spack/repos/builtin/packages/r-readr/package.py
+++ b/var/spack/repos/builtin/packages/r-readr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,25 +7,31 @@ from spack import *
class RReadr(RPackage):
- """The goal of 'readr' is to provide a fast and friendly way to read
- rectangular data (like 'csv', 'tsv', and 'fwf'). It is designed to
- flexibly parse many types of data found in the wild, while still cleanly
- failing when data unexpectedly changes."""
+ """Read Rectangular Text Data
+
+ The goal of 'readr' is to provide a fast and friendly way to read
+ rectangular data (like 'csv', 'tsv', and 'fwf'). It is designed to flexibly
+ parse many types of data found in the wild, while still cleanly failing
+ when data unexpectedly changes."""
homepage = "https://cloud.r-project.org/package=readr"
url = "https://cloud.r-project.org/src/contrib/readr_1.1.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/readr"
+ version('1.4.0', sha256='02b1188aab8b2bc3f3d2bba5b946bd299610e87f3f7660c88b60b444093c46b9')
version('1.3.1', sha256='33f94de39bb7f2a342fbb2bd4e5afcfec08798eac39672ee18042ac0b349e4f3')
version('1.1.1', sha256='1a29b99009a06f2cee18d08bc6201fd4985b6d45c76cefca65084dcc1a2f7cb3')
depends_on('r@3.0.2:', when='@:1.2.1', type=('build', 'run'))
depends_on('r@3.1:', when='@1.3.0:', type=('build', 'run'))
- depends_on('r-rcpp@0.12.0.5:', type=('build', 'run'))
- depends_on('r-tibble', type=('build', 'run'))
+ depends_on('r-cli', when='@1.4.0:', type=('build', 'run'))
+ depends_on('r-clipr', when='@1.2.0:', type=('build', 'run'))
+ depends_on('r-crayon', when='@1.3.1:', type=('build', 'run'))
depends_on('r-hms@0.4.1:', type=('build', 'run'))
+ depends_on('r-rlang', when='@1.4.0:', type=('build', 'run'))
depends_on('r-r6', type=('build', 'run'))
+ depends_on('r-tibble', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@1.4.0:', type=('build', 'run'))
depends_on('r-bh', type=('build', 'run'))
- depends_on('r-clipr', when='@1.2.0:', type=('build', 'run'))
- depends_on('r-crayon', when='@1.3.1:', type=('build', 'run'))
- depends_on('gmake', type='build')
+ depends_on('r-cpp11', when='@1.4.0:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.0.5:', when='@:1.3.1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-readxl/package.py b/var/spack/repos/builtin/packages/r-readxl/package.py
index a4dbb70c4f..e75938d85a 100644
--- a/var/spack/repos/builtin/packages/r-readxl/package.py
+++ b/var/spack/repos/builtin/packages/r-readxl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class RReadxl(RPackage):
<https://rapidxml.sourceforge.net>. Works on Windows, Mac and Linux
without external dependencies."""
- homepage = "http://readxl.tidyverse.org/"
+ homepage = "https://readxl.tidyverse.org/"
url = "https://cloud.r-project.org/src/contrib/readxl_1.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/readxl"
diff --git a/var/spack/repos/builtin/packages/r-reams/package.py b/var/spack/repos/builtin/packages/r-reams/package.py
new file mode 100644
index 0000000000..6cf6323dbb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-reams/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 RReams(RPackage):
+ """reams: Resampling-Based Adaptive Model Selection"""
+
+ homepage = "https://cloud.r-project.org/package=reams"
+ url = "https://cloud.r-project.org/src/contrib/reams_0.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/reams"
+
+ version('0.1', sha256='ac24ea875b24bd18152afd87538b1f807f442cf2bd1c6ac1a365cf543c88181e')
+
+ depends_on('r@2.9.0:', type=('build', 'run'))
+ depends_on('r-leaps', type=('build', 'run'))
+ depends_on('r-mgcv', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-recipes/package.py b/var/spack/repos/builtin/packages/r-recipes/package.py
index 2bd58e60cf..c4e83f8e51 100644
--- a/var/spack/repos/builtin/packages/r-recipes/package.py
+++ b/var/spack/repos/builtin/packages/r-recipes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRecipes(RPackage):
- """An extensible framework to create and preprocess design matrices.
+ """Preprocessing Tools to Create Design Matrices
+
+ An extensible framework to create and preprocess design matrices.
Recipes consist of one or more data manipulation and analysis "steps".
Statistical parameters for the steps can be estimated from an initial data
set and then applied to other data sets. The resulting design matrices can
@@ -17,14 +19,17 @@ class RRecipes(RPackage):
url = "https://cloud.r-project.org/src/contrib/recipes_0.1.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/recipes"
+ version('0.1.15', sha256='808ad2f4d68ae03aa27332437f037597e9c1bebd65ed4ebfab1d243ea6022e76')
version('0.1.6', sha256='51e0db72de171d58d13ad8ffcf1dea402ab8f82100d161722041b6fd014cbfd9')
depends_on('r@3.1:', type=('build', 'run'))
depends_on('r-dplyr', type=('build', 'run'))
depends_on('r-generics', type=('build', 'run'))
+ depends_on('r-generics@0.1.0:', when='@0.1.15:', type=('build', 'run'))
depends_on('r-glue', type=('build', 'run'))
depends_on('r-gower', type=('build', 'run'))
depends_on('r-ipred', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@0.1.15:', type=('build', 'run'))
depends_on('r-lubridate', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
@@ -32,6 +37,8 @@ class RRecipes(RPackage):
depends_on('r-rlang@0.4.0:', type=('build', 'run'))
depends_on('r-tibble', type=('build', 'run'))
depends_on('r-tidyr', type=('build', 'run'))
+ depends_on('r-tidyr@1.0.0:', when='@0.1.15:', type=('build', 'run'))
depends_on('r-tidyselect@0.2.5:', type=('build', 'run'))
+ depends_on('r-tidyselect@1.1.0:', when='@0.1.15:', type=('build', 'run'))
depends_on('r-timedate', type=('build', 'run'))
depends_on('r-withr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-registry/package.py b/var/spack/repos/builtin/packages/r-registry/package.py
index d2a190b7fa..04322d0238 100644
--- a/var/spack/repos/builtin/packages/r-registry/package.py
+++ b/var/spack/repos/builtin/packages/r-registry/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rematch/package.py b/var/spack/repos/builtin/packages/r-rematch/package.py
index 00117f87a9..9f57fbbd6f 100644
--- a/var/spack/repos/builtin/packages/r-rematch/package.py
+++ b/var/spack/repos/builtin/packages/r-rematch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rematch2/package.py b/var/spack/repos/builtin/packages/r-rematch2/package.py
index 2d07db3a23..48ebf9dd5e 100644
--- a/var/spack/repos/builtin/packages/r-rematch2/package.py
+++ b/var/spack/repos/builtin/packages/r-rematch2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-remotes/package.py b/var/spack/repos/builtin/packages/r-remotes/package.py
index 1c2c1fba38..6e69df79da 100644
--- a/var/spack/repos/builtin/packages/r-remotes/package.py
+++ b/var/spack/repos/builtin/packages/r-remotes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRemotes(RPackage):
- """Download and install R packages stored in 'GitHub', 'BitBucket', or
+ """R Package Installation from Remote Repositories, Including 'GitHub'
+
+ Download and install R packages stored in 'GitHub', 'BitBucket', or
plain 'subversion' or 'git' repositories. This package provides the
'install_*' functions in 'devtools'. Indeed most of the code was copied
over from 'devtools'. """
@@ -16,7 +18,10 @@ class RRemotes(RPackage):
url = "https://cloud.r-project.org/src/contrib/remotes_2.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/remotes"
+ version('2.2.0', sha256='12f234fd8c46f4ac54e06a3c60e4015ed2193a32762ca4dd6854f120136f33b8')
version('2.1.1', sha256='4e590746fce618094089372b185e1ea234b3337b23c44c44118e942d0fb5118b')
version('2.1.0', sha256='8944c8f6fc9f0cd0ca04d6cf1221b716eee08facef9f4b4c4d91d0346d6d68a7')
depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('subversion', type='run')
+ depends_on('git', type='run')
diff --git a/var/spack/repos/builtin/packages/r-renv/package.py b/var/spack/repos/builtin/packages/r-renv/package.py
new file mode 100644
index 0000000000..217262b91c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-renv/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 RRenv(RPackage):
+ """Project Environments for R packages:
+
+ A dependency management toolkit for R. Using 'renv', you can create and
+ manage project-local R libraries, save the state of these libraries to a
+ 'lockfile', and later restore your library as required. Together, these
+ tools can help make your projects more isolated, portable, and
+ reproducible."""
+
+ homepage = "https://rstudio.github.io/renv/"
+ cran = "renv"
+
+ version('0.13.2', sha256='41f208ed957e27c50cbd8b0fff77a434bad963707df85e462419e2edb6719a4a')
diff --git a/var/spack/repos/builtin/packages/r-reordercluster/package.py b/var/spack/repos/builtin/packages/r-reordercluster/package.py
index bf1951f3ca..ca4b505211 100644
--- a/var/spack/repos/builtin/packages/r-reordercluster/package.py
+++ b/var/spack/repos/builtin/packages/r-reordercluster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-reportingtools/package.py b/var/spack/repos/builtin/packages/r-reportingtools/package.py
index 17d6ef9200..251f6e3e21 100644
--- a/var/spack/repos/builtin/packages/r-reportingtools/package.py
+++ b/var/spack/repos/builtin/packages/r-reportingtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RReportingtools(RPackage):
- """Tools for making reports in various formats.
+ """Tools for making reports in various formats
The ReportingTools software package enables users to easily display
reports of analysis results generated from sources such as microarray
@@ -24,12 +24,14 @@ class RReportingtools(RPackage):
homepage = "https://bioconductor.org/packages/ReportingTools"
git = "https://git.bioconductor.org/packages/ReportingTools.git"
+ version('2.30.0', commit='fb9aee416f38cfd308d6d7264ccbcda0467642a7')
version('2.24.0', commit='d114c658affba9b682a37b4e2caf4341cf8da6cf')
version('2.22.1', commit='dce6af6c6a1cddff077fe61368f2c13e5a0e7bab')
version('2.20.0', commit='77e14ae13fdc16654300852dfd94e6cef58009da')
version('2.17.3', commit='b2e379cd5b813d8ccca37ec25f0660deec943622')
version('2.16.0', commit='b1aa0ea302da7f2993ce8087b1d09c11ddf03663')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r-knitr', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-hwriter', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-repr/package.py b/var/spack/repos/builtin/packages/r-repr/package.py
index f9dde095a7..b490335973 100644
--- a/var/spack/repos/builtin/packages/r-repr/package.py
+++ b/var/spack/repos/builtin/packages/r-repr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,19 +8,22 @@ from spack import *
class RRepr(RPackage):
- """String and binary representations of objects for several formats and
+ """Serializable Representations
+
+ String and binary representations of objects for several formats and
mime types."""
homepage = "https://github.com/IRkernel/repr"
url = "https://cloud.r-project.org/src/contrib/repr_0.9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/repr"
+ version('1.1.0', sha256='743fe018f9e3e54067a970bc38b6b8c0c0498b43f88d179ac4a959c2013a5f96')
version('1.0.1', sha256='ecde22c17fd800e1ff5c2b2962689119aa486fba40fbc6f2c50e8d4cc61bc44b')
version('1.0.0', sha256='98b2eb1058c1cb2caa8f98708b63726f5564b45de03d38b95ff6b963a8261f49')
version('0.9', sha256='24cac6e98f2a7e5483cf87aaffcb37611702099b63d3783e319441b4ecd0264b')
depends_on('r@3.0.1:', type=('build', 'run'))
depends_on('r-htmltools', when='@0.13:', type=('build', 'run'))
- depends_on('r-base64enc', when='@0.13:', type=('build', 'run'))
depends_on('r-jsonlite', when='@0.19.1:', type=('build', 'run'))
depends_on('r-pillar@1.4.0:', when='@1.0.0:', type=('build', 'run'))
+ depends_on('r-base64enc', when='@0.13:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-reprex/package.py b/var/spack/repos/builtin/packages/r-reprex/package.py
index 4c215d4f4e..91467dc258 100644
--- a/var/spack/repos/builtin/packages/r-reprex/package.py
+++ b/var/spack/repos/builtin/packages/r-reprex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class RReprex(RPackage):
snippets of code to target formats that include both code and output.
The goal is to encourage the sharing of small, reproducible, and
runnable examples on code-oriented websites, such as
- <http://stackoverflow.com> and <https://github.com>, or in email.
+ <https://stackoverflow.com/> and <https://github.com>, or in email.
'reprex' also extracts clean, runnable R code from various common
formats, such as copy/paste from an R session."""
@@ -23,7 +23,8 @@ class RReprex(RPackage):
version('0.2.1', sha256='5d234ddfbcadc5a5194a58eb88973c51581e7e2e231f146974af8f42747b45f3')
version('0.1.1', sha256='919ae93039b2d8fb8eace98da9376c031d734d9e75c237efb24d047f35b5ba4b')
- depends_on('r@3.0.2:', when='@:0.1.2', type=('build', 'run'))
+ depends_on('r+X', type=('build', 'run'))
+ depends_on('r@3.0.2:', type=('build', 'run'))
depends_on('r@3.1:', when='@0.2.0:', type=('build', 'run'))
depends_on('r-callr@2.0.0:', type=('build', 'run'))
depends_on('r-clipr@0.4.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-reproducible/package.py b/var/spack/repos/builtin/packages/r-reproducible/package.py
new file mode 100644
index 0000000000..00dfe574af
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-reproducible/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2021 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 RReproducible(RPackage):
+ """A Set of Tools that Enhance Reproducibility Beyond Package Management
+
+ Collection of high-level, machine- and OS-independent tools for
+ making deeply reproducible and reusable content in R. The two
+ workhorse functions are Cache and prepInputs; these allow for:
+ nested caching, robust to environments, and objects with
+ environments (like functions); and data retrieval and processing
+ in continuous workflow environments. In all cases, efforts are
+ made to make the first and subsequent calls of functions have
+ the same result, but vastly faster at subsequent times by way of
+ checksums and digesting. Several features are still under active
+ development, including cloud storage of cached objects, allowing
+ for sharing between users. Several advanced options are
+ available, see ?reproducibleOptions."""
+
+ homepage = "https://reproducible.predictiveecology.org/"
+ url = "https://cloud.r-project.org/src/contrib/reproducible_1.2.4.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/reproducible"
+
+ maintainers = ['dorton21']
+
+ version('1.2.4', sha256='0525deefa6a0713c3fe2da8bfc529f62d6352bebf2ef08866503b4853412f149')
+
+ depends_on('r@3.5:', type=('build', 'run'))
+ depends_on('r-data-table@1.10.4:', type=('build', 'run'))
+ depends_on('r-dbi', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-fpcompare', type=('build', 'run'))
+ depends_on('r-glue', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-require', type=('build', 'run'))
+ depends_on('r-raster', type=('build', 'run'))
+ depends_on('r-rsqlite', type=('build', 'run'))
+ depends_on('r-rlang', type=('build', 'run'))
+ depends_on('r-sp@1.4-2:', type=('build', 'run'))
+ depends_on('unrar', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-require/package.py b/var/spack/repos/builtin/packages/r-require/package.py
new file mode 100644
index 0000000000..e4da525f21
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-require/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 RRequire(RPackage):
+ """Installing and Loading R Packages for Reproducible Workflows
+
+ A single key function, 'Require' that wraps 'install.packages',
+ 'remotes::install_github', 'versions::install.versions', and
+ 'base::require' that allows for reproducible workflows. As with
+ other functions in a reproducible workflow, this package
+ emphasizes functions that return the same result whether it is
+ the first or subsequent times running the function. Maturing."""
+
+ homepage = "https://require.predictiveecology.org/"
+ url = "https://cloud.r-project.org/src/contrib/Require_0.0.10.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/Require"
+
+ maintainers = ['dorton21']
+
+ version('0.0.10', sha256='2087c3bb4d660d205962e241c1fc4a366dada5a1ed090d545c52188490567f8d')
+
+ depends_on('r@3.5:', type=('build', 'run'))
+ depends_on('r-data-table@1.10.4:', type=('build', 'run'))
+ depends_on('r-remotes', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-reshape/package.py b/var/spack/repos/builtin/packages/r-reshape/package.py
index c5b61c71bc..70bac94566 100644
--- a/var/spack/repos/builtin/packages/r-reshape/package.py
+++ b/var/spack/repos/builtin/packages/r-reshape/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-reshape2/package.py b/var/spack/repos/builtin/packages/r-reshape2/package.py
index b4b43a892f..1cd1e95012 100644
--- a/var/spack/repos/builtin/packages/r-reshape2/package.py
+++ b/var/spack/repos/builtin/packages/r-reshape2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,21 @@ from spack import *
class RReshape2(RPackage):
- """Flexibly restructure and aggregate data using just two functions: melt
+ """Flexibly Reshape Data: A Reboot of the Reshape Package
+
+ Flexibly restructure and aggregate data using just two functions: melt
and dcast (or acast)."""
homepage = "https://github.com/hadley/reshape"
url = "https://cloud.r-project.org/src/contrib/reshape2_1.4.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/reshape2"
+ version('1.4.4', sha256='d88dcf9e2530fa9695fc57d0c78adfc5e361305fe8919fe09410b17da5ca12d8')
version('1.4.3', sha256='8aff94c935e75032344b52407593392ddd4e16a88bb206984340c816d42c710e')
version('1.4.2', sha256='6d3783610379be4c5676d9236cf66276a166b5b96c18f2759e9b219758959b6b')
version('1.4.1', sha256='fbd49f75a5b0b7266378515af98db310cf6c772bf6e68bed01f38ee99b408042')
depends_on('r@3.1:', when='@1.4.3:', type=('build', 'run'))
depends_on('r-plyr@1.8.1:', type=('build', 'run'))
- depends_on('r-stringr', type=('build', 'run'))
depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-reticulate/package.py b/var/spack/repos/builtin/packages/r-reticulate/package.py
index ec301f3b0c..042904bf02 100644
--- a/var/spack/repos/builtin/packages/r-reticulate/package.py
+++ b/var/spack/repos/builtin/packages/r-reticulate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RReticulate(RPackage):
- """Interface to 'Python' modules, classes, and functions. When calling into
+ """Interface to 'Python'
+
+ Interface to 'Python' modules, classes, and functions. When calling into
'Python', R data types are automatically converted to their equivalent
'Python' types. When values are returned from 'Python' to R they are
converted back to R types. Compatible with all versions of 'Python' >=
@@ -17,12 +19,13 @@ class RReticulate(RPackage):
url = "https://cloud.r-project.org/src/contrib/reticulate_1.13.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/reticulate"
+ version('1.18', sha256='b33f855a58f446eefbe38df8a1a4865390f5d4ebd64b2c72266baaee64628513')
version('1.15', sha256='47db3e9c9424263ade15287da8e74f6ba261a936b644b197dba6772853b7b50d')
version('1.13', sha256='adbe41d556b667c4419d563680f8608a56b0f792b8bc427b3bf4c584ff819de3')
depends_on('r@3.0:', type=('build', 'run'))
depends_on('r-jsonlite', type=('build', 'run'))
- depends_on('r-rcpp@0.12.7:', type=('build', 'run', 'link'))
depends_on('r-matrix', type=('build', 'run'))
depends_on('r-rappdirs', when='@1.15:', type=('build', 'run'))
- depends_on('python@2.7.0:')
+ depends_on('r-rcpp@0.12.7:', type=('build', 'run', 'link'))
+ depends_on('python@2.7.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rex/package.py b/var/spack/repos/builtin/packages/r-rex/package.py
index 26066e8bdc..77b7574878 100644
--- a/var/spack/repos/builtin/packages/r-rex/package.py
+++ b/var/spack/repos/builtin/packages/r-rex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RRex(RPackage):
- """A friendly interface for the construction of regular expressions."""
+ """Friendly Regular Expressions
+
+ A friendly interface for the construction of regular expressions."""
homepage = "https://cloud.r-project.org/package=rex"
url = "https://cloud.r-project.org/src/contrib/rex_1.1.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rex"
+ version('1.2.0', sha256='06b491f1469078862e40543fd74e1d38b2e0fb61fdf01c8083add4b11ac2eb54')
version('1.1.2', sha256='bd3c74ceaf335336f5dd04314d0a791f6311e421a2158f321f5aab275f539a2a')
depends_on('r-lazyeval', type=('build', 'run'))
- depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-magrittr', when='@:1.1.2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rferns/package.py b/var/spack/repos/builtin/packages/r-rferns/package.py
index a10b40bdf3..995531c512 100644
--- a/var/spack/repos/builtin/packages/r-rferns/package.py
+++ b/var/spack/repos/builtin/packages/r-rferns/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,16 @@ from spack import *
class RRferns(RPackage):
- """Provides the random ferns classifier"""
+ """Random Ferns Classifier
+
+ Provides the random ferns classifier by Ozuysal, Calonder, Lepetit and Fua
+ (2009) <doi:10.1109/TPAMI.2009.23>, modified for generic and multi-label
+ classification and featuring OOB error approximation and importance measure
+ as introduced in Kursa (2014) <doi:10.18637/jss.v061.i10>."""
homepage = "https://cloud.r-project.org/package=rFerns"
url = "https://cloud.r-project.org/src/contrib/rFerns_3.0.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rFerns"
+ version('4.0.0', sha256='cc8cea0893390bf5db0fb0f59748d5bf6f29537d68bedca900268fd551489128')
version('3.0.0', sha256='35e7e31a6497e415a0fe578678cf9b2f537b21319e4c015a1e2dade00310227c')
diff --git a/var/spack/repos/builtin/packages/r-rgdal/package.py b/var/spack/repos/builtin/packages/r-rgdal/package.py
index a4dd062f19..2aa7fab4a5 100644
--- a/var/spack/repos/builtin/packages/r-rgdal/package.py
+++ b/var/spack/repos/builtin/packages/r-rgdal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,27 +7,32 @@ from spack import *
class RRgdal(RPackage):
- """Provides bindings to the 'Geospatial' Data Abstraction Library
- ('GDAL') (>= 1.6.3) and access to projection/transformation operations
- from the 'PROJ.4' library. The 'GDAL' and 'PROJ.4' libraries are
- external to the package, and, when installing the package from source,
- must be correctly installed first. Both 'GDAL' raster and 'OGR' vector
- map data can be imported into R, and 'GDAL' raster data and 'OGR'
- vector data exported. Use is made of classes defined in the 'sp' package.
- Windows and Mac Intel OS X binaries (including 'GDAL', 'PROJ.4' and
- 'Expat') are provided on 'CRAN'."""
+ """Bindings for the 'Geospatial' Data Abstraction Library
+
+ Provides bindings to the 'Geospatial' Data Abstraction Library ('GDAL') (>=
+ 1.11.4) and access to projection/transformation operations from the 'PROJ'
+ library. Use is made of classes defined in the 'sp' package. Raster and
+ vector map data can be imported into R, and raster and vector 'sp' objects
+ exported. The 'GDAL' and 'PROJ' libraries are external to the package, and,
+ when installing the package from source, must be correctly installed first;
+ it is important that 'GDAL' < 3 be matched with 'PROJ' < 6. From 'rgdal'
+ 1.5-8, installed with to 'GDAL' >=3, 'PROJ' >=6 and 'sp' >= 1.4, coordinate
+ reference systems use 'WKT2_2019' strings, not 'PROJ' strings. 'Windows'
+ and 'macOS' binaries (including 'GDAL', 'PROJ' and their dependencies) are
+ provided on 'CRAN'."""
homepage = "https://cloud.r-project.org/package=rgdal"
url = "https://cloud.r-project.org/src/contrib/rgdal_1.3-9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rgdal"
+ version('1.5-19', sha256='6fbfd71b19e7b8d9dbddc91cb1eef8890c74a1e2bf8f619da165ff51bf1231b2')
version('1.5-18', sha256='53467c19bc93d8ea311458eaa281c8c456168ab75e84d76ef5cc6c00f53122df')
version('1.4-4', sha256='2532e76e0af27d145f799d70006a5dbecb2d3be698e3d0bbf580f4c41a34c5d7')
version('1.3-9', sha256='3e44f88d09894be4c0abd8874d00b40a4a5f4542b75250d098ffbb3ba41e2654')
version('1.2-16', sha256='017fefea4f9a6d4540d128c707197b7025b55e4aff98fc763065366b025b03c9')
- depends_on('r@3.5.0:', when='@1.5:', type=('build', 'run'))
depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@1.5:', type=('build', 'run'))
depends_on('r-sp@1.1-0:', type=('build', 'run'))
depends_on('gdal@1.11.4:')
depends_on('proj@4.8.0:5', when='@:1.3-9')
diff --git a/var/spack/repos/builtin/packages/r-rgenoud/package.py b/var/spack/repos/builtin/packages/r-rgenoud/package.py
index 19e9bd26f6..cdc9c48412 100644
--- a/var/spack/repos/builtin/packages/r-rgenoud/package.py
+++ b/var/spack/repos/builtin/packages/r-rgenoud/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class RRgenoud(RPackage):
"""A genetic algorithm plus derivative optimizer."""
- homepage = "http://sekhon.berkeley.edu/rgenoud/"
+ homepage = "https://sekhon.berkeley.edu/rgenoud/"
url = "https://cloud.r-project.org/src/contrib/rgenoud_5.8-1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rgenoud"
diff --git a/var/spack/repos/builtin/packages/r-rgeos/package.py b/var/spack/repos/builtin/packages/r-rgeos/package.py
index 14b2af8a1a..a13007cda7 100644
--- a/var/spack/repos/builtin/packages/r-rgeos/package.py
+++ b/var/spack/repos/builtin/packages/r-rgeos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,32 @@ from spack import *
class RRgeos(RPackage):
- """Interface to Geometry Engine - Open Source ('GEOS') using the C
- 'API' for topology operations on geometries. The 'GEOS' library is
- external to the package, and, when installing the package from source,
- must be correctly installed first. Windows and Mac Intel OS X binaries
- are provided on 'CRAN'."""
+ """Interface to Geometry Engine - Open Source ('GEOS')
+
+ Interface to Geometry Engine - Open Source ('GEOS') using the C 'API' for
+ topology operations on geometries. The 'GEOS' library is external to the
+ package, and, when installing the package from source, must be correctly
+ installed first. Windows and Mac Intel OS X binaries are provided on
+ 'CRAN'. ('rgeos' >= 0.5-1): Up to and including 'GEOS' 3.7.1, topological
+ operations succeeded with some invalid geometries for which the same
+ operations fail from and including 'GEOS' 3.7.2. The 'checkValidity='
+ argument defaults and structure have been changed, from default FALSE to
+ integer default '0L' for 'GEOS' < 3.7.2 (no check), '1L' 'GEOS' >= 3.7.2
+ (check and warn). A value of '2L' is also provided that may be used,
+ assigned globally using 'set_RGEOS_CheckValidity(2L)', or locally using the
+ 'checkValidity=2L' argument, to attempt zero-width buffer repair if invalid
+ geometries are found. The previous default (FALSE, now '0L') is fastest and
+ used for 'GEOS' < 3.7.2, but will not warn users of possible problems
+ before the failure of topological operations that previously succeeded.
+ From 'GEOS' 3.8.0, repair of geometries may also be attempted using
+ 'gMakeValid()', which may, however, return a collection of geometries of
+ different types."""
homepage = "https://cloud.r-project.org/package=rgeos"
url = "https://cloud.r-project.org/src/contrib/rgeos_0.3-26.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rgeos"
+ version('0.5-5', sha256='4baa0dfe6ff76e87ddb67a030fc14fe963d28b518485a4d71058923b2606d420')
version('0.5-1', sha256='8408973e7fe5648e39aa53f3d4bfe800638021a146a4e06f86496c0132e05488')
version('0.3-26', sha256='98524a0b8113abe6c3d0ecc1f2f66e7ab6d40c783a76158cfc017e1ab1e3f433')
diff --git a/var/spack/repos/builtin/packages/r-rgexf/package.py b/var/spack/repos/builtin/packages/r-rgexf/package.py
index 137a4baf6a..068732b27b 100644
--- a/var/spack/repos/builtin/packages/r-rgexf/package.py
+++ b/var/spack/repos/builtin/packages/r-rgexf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRgexf(RPackage):
- """Create, read and write GEXF (Graph Exchange XML Format) graph files
+ """Build, Import and Export GEXF Graph Files
+
+ Create, read and write GEXF (Graph Exchange XML Format) graph files
(used in Gephi and others). Using the XML package, it allows the user to
easily build/read graph files including attributes, GEXF viz attributes
(such as color, size, and position), network dynamics (for both edges and
@@ -16,12 +18,14 @@ class RRgexf(RPackage):
through "sigmajs" (a javascript library) and interact with the igraph
package."""
- homepage = "http://bitbucket.org/gvegayon/rgexf"
+ homepage = "https://bitbucket.org/gvegayon/rgexf"
url = "https://cloud.r-project.org/src/contrib/rgexf_0.15.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rgexf"
+ version('0.16.0', sha256='2a671df9ac70cfefd4092754317cb28e32a33df345b80e1975bf838e838245ee')
version('0.15.3', sha256='2e8a7978d1fb977318e6310ba65b70a9c8890185c819a7951ac23425c6dc8147')
depends_on('r-xml', type=('build', 'run'))
- depends_on('r-rook', type=('build', 'run'))
depends_on('r-igraph', type=('build', 'run'))
+ depends_on('r-servr', when='@0.16.0:', type=('build', 'run'))
+ depends_on('r-rook', when='@:0.15.3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rgl/package.py b/var/spack/repos/builtin/packages/r-rgl/package.py
index c890df70d9..f4ea92ba10 100644
--- a/var/spack/repos/builtin/packages/r-rgl/package.py
+++ b/var/spack/repos/builtin/packages/r-rgl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRgl(RPackage):
- """Provides medium to high level functions for 3D interactive graphics,
+ """3D Visualization Using OpenGL
+
+ Provides medium to high level functions for 3D interactive graphics,
including functions modelled on base graphics (plot3d(), etc.) as well as
functions for constructing representations of geometric objects (cube3d(),
etc.). Output may be on screen using OpenGL, or to various standard
@@ -18,13 +20,15 @@ class RRgl(RPackage):
url = "https://cloud.r-project.org/src/contrib/rgl_0.99.16.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rgl"
+ version('0.104.16', sha256='b82d2e2b965e76d6cc55bbd15ee0f79c36913ab09ce5436d2104551563462a99')
version('0.100.26', sha256='e1889c2723ad458b39fdf9366fdaf590d7657d3762748f8534a8491ef754e740')
version('0.100.24', sha256='1233a7bdc5a2b908fc64d5f56e92a0e123e8f7c0b9bac93dfd005608b78fa35a')
version('0.100.19', sha256='50630702554e422e0603f27d499aad3b6f822de5a73da7fdf70404ac50df7025')
version('0.99.16', sha256='692a545ed2ff0f5e15289338736f0e3c092667574c43ac358d8004901d7a1a61')
version('0.98.1', sha256='5f49bed9e092e672f73c8a1a5365cdffcda06db0315ac087e95ab9c9c71a6986')
- depends_on('r@3.2:', type=('build', 'run'))
+ depends_on('r+X', type=('build', 'run'))
+ depends_on('r@3.2.0:', type=('build', 'run'))
depends_on('r-htmlwidgets', type=('build', 'run'))
depends_on('r-htmltools', type=('build', 'run'))
depends_on('r-knitr', type=('build', 'run'))
@@ -33,12 +37,12 @@ class RRgl(RPackage):
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-crosstalk', when='@0.99.16:', type=('build', 'run'))
depends_on('r-manipulatewidget@0.9.0:', when='@0.99.16:', type=('build', 'run'))
- depends_on('zlib', type='link')
- depends_on('libpng@1.2.9:', type='link')
depends_on('libx11')
- depends_on('freetype', type='link')
depends_on('gl')
depends_on('glu')
+ depends_on('zlib', type='link')
+ depends_on('libpng@1.2.9:', type='link')
+ depends_on('freetype', type='link')
depends_on('pandoc@1.14:', type='build')
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/r-rgooglemaps/package.py b/var/spack/repos/builtin/packages/r-rgooglemaps/package.py
index 1938aa41fe..177610c0d2 100644
--- a/var/spack/repos/builtin/packages/r-rgooglemaps/package.py
+++ b/var/spack/repos/builtin/packages/r-rgooglemaps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRgooglemaps(RPackage):
- """This package serves two purposes: (i) Provide a comfortable R interface
+ """Overlays on Static Maps
+
+ This package serves two purposes: (i) Provide a comfortable R interface
to query the Google server for static maps, and (ii) Use the map as a
background image to overlay plots within R. This requires proper coordinate
scaling."""
@@ -16,10 +18,12 @@ class RRgooglemaps(RPackage):
url = "https://cloud.r-project.org/src/contrib/RgoogleMaps_1.2.0.7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RgoogleMaps"
+ version('1.4.5.3', sha256='d1d5ad8db841754af175d4104a05c5c31e5cc445be314a3ac70483c31798680b')
version('1.4.3', sha256='44cb62bcd23e5b4807e91c5825352eb8d38aaaeb3b38a8271ca9f21c1e1d4b19')
version('1.4.2', sha256='b479996fcb72f067644a7ea7f00325e44e76efd202e84aaab022753c4a6d5584')
version('1.2.0.7', sha256='9c268a5a554ad6da69fb560d88dea9c86ec9e9a56b691f1b63faedfe20826712')
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-png', type=('build', 'run'))
+ depends_on('r-sp', when='@1.4.5.3:', type=('build', 'run'))
depends_on('r-rjsonio', when='@1.2.0.5:1.2.0.7', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rgraphviz/package.py b/var/spack/repos/builtin/packages/r-rgraphviz/package.py
index f0e986190e..69264ccbea 100644
--- a/var/spack/repos/builtin/packages/r-rgraphviz/package.py
+++ b/var/spack/repos/builtin/packages/r-rgraphviz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RRgraphviz(RPackage):
- """Provides plotting capabilities for R graph objects.
+ """Provides plotting capabilities for R graph objects
Interfaces R with the AT and T graphviz library for plotting R graph
objects from the graph package."""
@@ -15,13 +15,14 @@ class RRgraphviz(RPackage):
homepage = "https://bioconductor.org/packages/Rgraphviz"
git = "https://git.bioconductor.org/packages/Rgraphviz.git"
+ version('2.34.0', commit='9746623211be794226258631992dfcccccfd7487')
version('2.28.0', commit='c1f57c11f037c977f1d17f227f12a09a999e8c0b')
version('2.26.0', commit='e9b08c77121a45c65129d94a12b5c0b31c65617f')
version('2.24.0', commit='7d1fb00afed0d44e32b4a46f10137ab34f100577')
version('2.22.0', commit='5b8ebbf9b38574c08959dd4632e802b3fbccc121')
version('2.20.0', commit='eface6298150667bb22eac672f1a45e52fbf8c90')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@2.6.0:', type=('build', 'run'))
depends_on('r-graph', type=('build', 'run'))
-
depends_on('graphviz@2.16:', type='run')
diff --git a/var/spack/repos/builtin/packages/r-rhdf5/package.py b/var/spack/repos/builtin/packages/r-rhdf5/package.py
index 932d1c342c..f3312f9019 100644
--- a/var/spack/repos/builtin/packages/r-rhdf5/package.py
+++ b/var/spack/repos/builtin/packages/r-rhdf5/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RRhdf5(RPackage):
- """R Interface to HDF5.
+ """R Interface to HDF5
This package provides an interface between HDF5 and R. HDF5's main
features are the ability to store and access very large and/or complex
@@ -20,17 +20,17 @@ class RRhdf5(RPackage):
homepage = "https://bioconductor.org/packages/rhdf5"
git = "https://git.bioconductor.org/packages/rhdf5.git"
+ version('2.34.0', commit='ec861b81fc6962e844bf56b7549ba565a7e4c69c')
version('2.28.1', commit='e230fa34d6f3e97dd4e6065115675baf5e8213bb')
version('2.26.2', commit='81e11258db493661a19cf83e142b690ecac4e6cf')
version('2.24.0', commit='e926e8ce4e77082781afb943324a1e6745385b48')
version('2.22.0', commit='4431bdc0a2bcbb8086ee08a0f2300129b808d1be')
version('2.20.0', commit='37b5165325062728bbec9167f89f5f4b794f30bc')
- depends_on('r-zlibbioc', type=('build', 'run'))
-
- depends_on('r-rhdf5lib', when='@2.24.0:', type=('build', 'run'))
-
depends_on('r@3.5.0:', when='@2.26.2:', type=('build', 'run'))
+ depends_on('r-rhdf5lib', when='@2.24.0:', type=('build', 'run'))
depends_on('r-rhdf5lib@1.3.2:', when='@2.26.2:', type=('build', 'run'))
-
+ depends_on('r-rhdf5lib@1.11.0:', when='@2.34.0:', type=('build', 'run'))
+ depends_on('r-rhdf5filters', when='@2.34.0:', type=('build', 'run'))
+ depends_on('r-zlibbioc', when='@:2.28.1', type=('build', 'run'))
depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-rhdf5filters/package.py b/var/spack/repos/builtin/packages/r-rhdf5filters/package.py
new file mode 100644
index 0000000000..64d155d46c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rhdf5filters/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 RRhdf5filters(RPackage):
+ """HDF5 Compression Filters
+
+ Provides a collection of compression filters for use with HDF5 datasets."""
+
+ homepage = "https://github.com/grimbough/rhdf5filters"
+ git = "https://git.bioconductor.org/packages/rhdf5filters"
+
+ version('1.2.0', commit='25af0180f926b4b3ea11b30ec9277d26ad3d56b3')
+
+ depends_on('r-rhdf5lib', type=('build', 'run'))
+ depends_on('gmake', type='build')
+
+ def configure_args(self):
+ args = []
+ if self.spec.target.family == 'aarch64':
+ args.append("ax_cv_gcc_check_x86_cpu_init=yes")
+ args.append("ax_cv_gcc_x86_cpu_supports_sse2=no")
+ return args
diff --git a/var/spack/repos/builtin/packages/r-rhdf5lib/package.py b/var/spack/repos/builtin/packages/r-rhdf5lib/package.py
index 266bb4859f..bcee3cd524 100644
--- a/var/spack/repos/builtin/packages/r-rhdf5lib/package.py
+++ b/var/spack/repos/builtin/packages/r-rhdf5lib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,18 @@ from spack import *
class RRhdf5lib(RPackage):
- """hdf5 library as an R package.
+ """hdf5 library as an R package
Provides C and C++ hdf5 libraries."""
homepage = "https://bioconductor.org/packages/Rhdf5lib"
git = "https://git.bioconductor.org/packages/Rhdf5lib.git"
+ version('1.12.1', commit='cf464f40fd95274d0d351cf28b586c49307c4f0b')
version('1.6.3', commit='11ac3069f28b0068002db9c645817401f6c5b3c4')
version('1.4.3', commit='f6be8c2659b2daa17541506058917b7981490d65')
version('1.2.1', commit='dbf85dbedb736d5a696794d52875729c8514494e')
version('1.0.0', commit='79608038c2016a518ba747fe6a2bf02ce53a75f9')
+ depends_on('r@3.3.0:', when='@1.12.1:', type='build')
depends_on('gmake', type='build')
diff --git a/var/spack/repos/builtin/packages/r-rhmmer/package.py b/var/spack/repos/builtin/packages/r-rhmmer/package.py
index ab00ef0bad..94ce38620a 100644
--- a/var/spack/repos/builtin/packages/r-rhmmer/package.py
+++ b/var/spack/repos/builtin/packages/r-rhmmer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rhtslib/package.py b/var/spack/repos/builtin/packages/r-rhtslib/package.py
index 03539a56ba..76b95ae557 100644
--- a/var/spack/repos/builtin/packages/r-rhtslib/package.py
+++ b/var/spack/repos/builtin/packages/r-rhtslib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RRhtslib(RPackage):
- """HTSlib high-throughput sequencing library as an R package.
+ """HTSlib high-throughput sequencing library as an R package
This package provides version 1.7 of the 'HTSlib' C library for high-
throughput sequence analysis. The package is primarily useful to
@@ -18,6 +18,7 @@ class RRhtslib(RPackage):
homepage = "https://bioconductor.org/packages/Rhtslib"
git = "https://git.bioconductor.org/packages/Rhtslib.git"
+ version('1.22.0', commit='899b79faa54d42c7c9b9a2bc49972109637d367f')
version('1.18.1', commit='751a2ebaed43b7991204b27bd6c7870645001d82')
version('1.16.3', commit='3ed0b5db2ee3cf0df1c6096fde8855c8485eebd4')
version('1.14.1', commit='4be260720f845a34d0ac838278fce1363f645230')
@@ -26,7 +27,6 @@ class RRhtslib(RPackage):
version('1.8.0', commit='3b5493473bed42958614091c58c739932ffcfa79')
depends_on('r-zlibbioc', type=('build', 'run'))
-
depends_on('bzip2', type=('build', 'link', 'run'))
depends_on('xz', type=('build', 'link', 'run'))
depends_on('curl', type=('build', 'link', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rinside/package.py b/var/spack/repos/builtin/packages/r-rinside/package.py
index 5b2b99e161..09dd72bef0 100644
--- a/var/spack/repos/builtin/packages/r-rinside/package.py
+++ b/var/spack/repos/builtin/packages/r-rinside/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRinside(RPackage):
- """C++ classes to embed R in C++ applications The 'RInside' packages makes
+ """C++ Classes to Embed R in C++ (and C) Applications
+
+ C++ classes to embed R in C++ applications The 'RInside' packages makes
it easier to have "R inside" your C++ application by providing a C++
wrapperclass providing the R interpreter. As R itself is embedded into
your application, a shared library build of R is required. This works on
@@ -22,13 +24,13 @@ class RRinside(RPackage):
automatically). Doxygen-generated documentation of the C++ classes is
available at the 'RInside' website as well."""
- homepage = "http://dirk.eddelbuettel.com/code/rinside.html"
+ homepage = "https://dirk.eddelbuettel.com/code/rinside.html"
url = "https://cloud.r-project.org/src/contrib/RInside_0.2.15.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RInside"
+ version('0.2.16', sha256='7ae4ade128ea05f37068d59e610822ff0b277f9d39d8900f7eb31759ad5a2a0e')
version('0.2.15', sha256='1e1d87a3584961f3aa4ca6acd4d2f3cda26abdab027ff5be2fd5cd76a98af02b')
version('0.2.14', sha256='8de5340993fe879ca00fa559c5b1b27b408ba78bfc5f67d36d6f0b8d8e8649cf')
version('0.2.13', sha256='be1da861f4f8c1292f0691bce05978e409a081f24ad6006ae173a6a89aa4d031')
- depends_on('r@2.10.0:', type=('build', 'run'))
depends_on('r-rcpp@0.11.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rio/package.py b/var/spack/repos/builtin/packages/r-rio/package.py
index 4472501133..4c3fbe88e0 100644
--- a/var/spack/repos/builtin/packages/r-rio/package.py
+++ b/var/spack/repos/builtin/packages/r-rio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rjags/package.py b/var/spack/repos/builtin/packages/r-rjags/package.py
index 7a74f65ba3..d405e9f796 100644
--- a/var/spack/repos/builtin/packages/r-rjags/package.py
+++ b/var/spack/repos/builtin/packages/r-rjags/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,13 +8,15 @@ from spack import *
class RRjags(RPackage):
- """Interface to the JAGS MCMC library.
- Usage: $ spack load r-rjags """
+ """Bayesian Graphical Models using MCMC
+
+ Interface to the JAGS MCMC library."""
homepage = "https://cloud.r-project.org/package=rjags"
url = "https://cloud.r-project.org/src/contrib/rjags_4-8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rjags/"
+ version('4-10', sha256='bd3e0bdf50b23b63061a0caa2428be585ccbf0b3f5d28eaa690e714e508d0ada')
version('4-8', sha256='1529827ab11493fb5f05552e239d700ae2f818995d86d3c9e4c92523f594b59f')
version('4-6', sha256='cf24bb1e7c8445bafb49097089ad33e5bd5d8efbccf16fc7e32ad230f05f89ad')
diff --git a/var/spack/repos/builtin/packages/r-rjava/package.py b/var/spack/repos/builtin/packages/r-rjava/package.py
index 762836e685..250fa15ae8 100644
--- a/var/spack/repos/builtin/packages/r-rjava/package.py
+++ b/var/spack/repos/builtin/packages/r-rjava/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,31 @@ from spack import *
class RRjava(RPackage):
- """Low-level interface to Java VM very much like .C/.Call and friends.
+ """Low-Level R to Java Interface
+
+ Low-level interface to Java VM very much like .C/.Call and friends.
Allows creation of objects, calling methods and accessing fields."""
- homepage = "http://www.rforge.net/rJava/"
+ homepage = "https://www.rforge.net/rJava/"
url = "https://cloud.r-project.org/src/contrib/rJava_0.9-8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rJava"
+ version('0.9-13', sha256='5b1688f5044476b34f71d868b222ac5fce3a088f0c2b9e4591c1e48f3d8c75f4')
version('0.9-11', sha256='c28ae131456a98f4d3498aa8f6eac9d4df48727008dacff1aa561fc883972c69')
version('0.9-8', sha256='dada5e031414da54eb80b9024d51866c20b92d41d68da65789fe0130bc54bd8a')
depends_on('r@2.5:', type=('build', 'run'))
- depends_on('java@1.2:')
+ depends_on('java@2:')
depends_on('gmake', type='build')
+
+ # these are not listed as dependencies but are needed
+ depends_on('bzip2')
+ depends_on('icu4c')
+ depends_on('libiconv')
+ depends_on('pcre2')
+ depends_on('xz')
+
+ def setup_build_environment(self, env):
+ spec = self.spec
+ env.append_flags('JAVAH', '{0}/javah'.format(
+ join_path(spec['java'].prefix.bin)))
diff --git a/var/spack/repos/builtin/packages/r-rjson/package.py b/var/spack/repos/builtin/packages/r-rjson/package.py
index a2084273c4..09a3d4e266 100644
--- a/var/spack/repos/builtin/packages/r-rjson/package.py
+++ b/var/spack/repos/builtin/packages/r-rjson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rjsonio/package.py b/var/spack/repos/builtin/packages/r-rjsonio/package.py
index b38fe5c17d..bf54f80057 100644
--- a/var/spack/repos/builtin/packages/r-rjsonio/package.py
+++ b/var/spack/repos/builtin/packages/r-rjsonio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRjsonio(RPackage):
- """This is a package that allows conversion to and from data in Javascript
+ """Serialize R Objects to JSON, JavaScript Object Notation
+
+ This is a package that allows conversion to and from data in Javascript
object notation (JSON) format. This allows R objects to be inserted into
Javascript/ECMAScript/ActionScript code and allows R programmers to read
and convert JSON content to R objects. This is an alternative to rjson
@@ -27,6 +29,7 @@ class RRjsonio(RPackage):
url = "https://cloud.r-project.org/src/contrib/RJSONIO_1.3-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RJSONIO"
+ version('1.3-1.4', sha256='54142c931e15eca278a02dad5734026bb49d960471eb085008af825352953190')
version('1.3-1.2', sha256='550e18f7c04186376d67747b8258f529d205bfc929da9194fe45ec384e092d7e')
version('1.3-1.1', sha256='c72493b441758cd1e3e9d91296b9ea31068e71104649f46ad84c854a02c09693')
version('1.3-0', sha256='119334b7761c6c1c3cec52fa17dbc1b72eaebb520c53e68d873dea147cf48fb7')
diff --git a/var/spack/repos/builtin/packages/r-rlang/package.py b/var/spack/repos/builtin/packages/r-rlang/package.py
index 9b258b6565..23aaab8591 100644
--- a/var/spack/repos/builtin/packages/r-rlang/package.py
+++ b/var/spack/repos/builtin/packages/r-rlang/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RRlang(RPackage):
- """A toolbox for working with base types, core R features like the
- condition system, and core 'Tidyverse' features like tidy evaluation."""
+ """Functions for Base Types and Core R and 'Tidyverse' Features
+
+ A toolbox for working with base types, core R features like the condition
+ system, and core 'Tidyverse' features like tidy evaluation."""
homepage = "https://cloud.r-project.org/package=rlang"
url = "https://cloud.r-project.org/src/contrib/rlang_0.2.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rlang"
+ version('0.4.10', sha256='07530270c4c199f2b7efc5d57a476d99babd9d0c3388a02bb7d57fe312da3576')
version('0.4.6', sha256='3a81b107765fd6ac0ad716c428d01878775ded9208ba125d43c890c73d2533ca')
version('0.4.0', sha256='9748a4a217548bbe5631c18fd88c94811950446f798ff21fb327703aebaa150d')
version('0.3.4', sha256='4e467f7b0dcbde91b60c292137d2c69cecaa713a6e4c9b7157ef6fd5453b7ade')
@@ -27,3 +30,4 @@ class RRlang(RPackage):
depends_on('r@3.1.0:', when='@:0.3.4', type=('build', 'run'))
depends_on('r@3.2.0:', when='@0.4.0:', type=('build', 'run'))
+ depends_on('r@3.3.0:', when='@0.4.10:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rle/package.py b/var/spack/repos/builtin/packages/r-rle/package.py
new file mode 100644
index 0000000000..615cacaa3c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rle/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 RRle(RPackage):
+ """Common Functions for Run-Length Encoded Vectors
+
+ Common 'base' and 'stats' methods for 'rle' objects, aiming to make it
+ possible to treat them transparently as vectors."""
+
+ homepage = "https://cloud.r-project.org/package=rle"
+ url = "https://cloud.r-project.org/src/contrib/rle_0.9.2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/rle"
+
+ version('0.9.2', sha256='803cbe310af6e882e27be61d37d660dbe5910ac1ee1eff61a480bcf724a04f69')
+
+ depends_on('r@3.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rmariadb/package.py b/var/spack/repos/builtin/packages/r-rmariadb/package.py
index ac7ea12323..3158031c5b 100644
--- a/var/spack/repos/builtin/packages/r-rmariadb/package.py
+++ b/var/spack/repos/builtin/packages/r-rmariadb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRmariadb(RPackage):
- """Implements a 'DBI'-compliant interface to 'MariaDB'
+ """Database Interface and 'MariaDB' Driver
+
+ Implements a 'DBI'-compliant interface to 'MariaDB'
(<https://mariadb.org/>) and 'MySQL' (<https://www.mysql.com/>)
databases."""
@@ -15,15 +17,24 @@ class RRmariadb(RPackage):
url = "https://cloud.r-project.org/src/contrib/RMariaDB_1.0.8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RMariaDB"
+ version('1.1.0', sha256='9ffa63a15052876a51a7996ca4e6a5b7b937f594b5cc7ca5a86f43789e22a956')
version('1.0.8', sha256='3c8aedc519dc063ceb068535a3700bc5caf26f867078cc5a228aa8961e2d99f5')
depends_on('r@2.8.0:', type=('build', 'run'))
depends_on('r-bit64', type=('build', 'run'))
depends_on('r-dbi@1.1.0:', type=('build', 'run'))
depends_on('r-hms@0.5.0:', type=('build', 'run'))
+ depends_on('r-lubridate', when='@1.1.0:', type=('build', 'run'))
depends_on('r-rcpp@0.12.4:', type=('build', 'run'))
depends_on('r-bh', type=('build', 'run'))
depends_on('r-plogr', type=('build', 'run'))
-
- # non-R dependencies
depends_on('mariadb-client')
+
+ # Set the library explicitly to prevent configure from finding a system
+ # mysql-client
+ def configure_vars(self):
+ lib_dir = self.spec['mariadb-client'].prefix.lib.mariadb
+ inc_dir = self.spec['mariadb-client'].prefix.include.mariadb
+ args = ['LIB_DIR={0}'.format(lib_dir),
+ 'INCLUDE_DIR={0}'.format(inc_dir)]
+ return args
diff --git a/var/spack/repos/builtin/packages/r-rmarkdown/package.py b/var/spack/repos/builtin/packages/r-rmarkdown/package.py
index 52f76a7a56..7d27f56806 100644
--- a/var/spack/repos/builtin/packages/r-rmarkdown/package.py
+++ b/var/spack/repos/builtin/packages/r-rmarkdown/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,28 +8,36 @@ from spack import *
class RRmarkdown(RPackage):
- """Convert R Markdown documents into a variety of formats."""
+ """Dynamic Documents for R
- homepage = "http://rmarkdown.rstudio.com/"
- url = "https://cloud.r-project.org/src/contrib/rmarkdown_1.0.tar.gz"
- list_url = "https://cloud.r-project.org/src/contrib/Archive/rmarkdown"
+ Convert R Markdown documents into a variety of formats."""
+ homepage = "https://rmarkdown.rstudio.com/"
+ cran = "rmarkdown"
+
+ version('2.9', sha256='6ce5af8b9a7c282619f74d3999d27ec4de12d3f93cde8fd12cc4c19f02ea8668')
+ version('2.6', sha256='e6e799c472de11e079bc752cca4b4dbd6803650649457bb6ae836cb1edcdf6b0')
version('1.14', sha256='f636b1048c5be56e06aa0b2b4342ad5c8192734f1e9b27468fef62be672edc61')
version('1.13', sha256='96fb6b08d27bbb8054145e0a55721f905341941d4f6691480a2a234e2d5a63ef')
version('1.7', sha256='c3191db65b9ad41b6dbb77aff53487701032d306e92b208ef7515b747931fe63')
version('1.0', sha256='ff1ecb74ebc444b9b0b7b547adc512daefe1ee08d06bc0e3ee4eb68e58d2ef30')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@3.0:', type=('build', 'run'))
depends_on('r-knitr@1.22:', type=('build', 'run'))
depends_on('r-yaml@2.1.19:', type=('build', 'run'))
depends_on('r-htmltools@0.3.5:', type=('build', 'run'))
depends_on('r-evaluate@0.13:', type=('build', 'run'))
- depends_on('r-base64enc', type=('build', 'run'))
depends_on('r-jsonlite', type=('build', 'run'))
- depends_on('r-rprojroot', when='@1.3:1.7', type=('build', 'run'))
- depends_on('r-mime', when='@1.8:', type=('build', 'run'))
- depends_on('r-stringr@1.2.0:', when='@1.6:', type=('build', 'run'))
- depends_on('r-catools', when='@:1.7', type=('build', 'run'))
depends_on('r-tinytex@0.11:', when='@1.10:', type=('build', 'run'))
+ depends_on('r-tinytex@0.31:', when='@2.8:', type=('build', 'run'))
depends_on('r-xfun', when='@1.13:', type=('build', 'run'))
+ depends_on('r-xfun@0.15:', when='@2.6:', type=('build', 'run'))
+ depends_on('r-xfun@0.21:', when='@2.8:', type=('build', 'run'))
+ depends_on('r-stringr@1.2.0:', when='@1.6:', type=('build', 'run'))
+ depends_on('r-rprojroot', when='@1.3:1.7', type=('build', 'run'))
+ depends_on('r-mime', when='@1.8:1.14', type=('build', 'run'))
+ depends_on('r-catools', when='@:1.7', type=('build', 'run'))
+ depends_on('r-base64enc', when='@:1.14', type=('build', 'run'))
depends_on('pandoc@1.12.3:')
+ depends_on('pandoc@1.14:', when='@2.6:')
diff --git a/var/spack/repos/builtin/packages/r-rminer/package.py b/var/spack/repos/builtin/packages/r-rminer/package.py
index 5d4a97f247..5938b814a7 100644
--- a/var/spack/repos/builtin/packages/r-rminer/package.py
+++ b/var/spack/repos/builtin/packages/r-rminer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,29 @@ from spack import *
class RRminer(RPackage):
- """Facilitates the use of data mining algorithms in classification and
+ """Data Mining Classification and Regression Methods
+
+ Facilitates the use of data mining algorithms in classification and
regression (including time series forecasting) tasks by presenting a short
- and coherent set of functions."""
+ and coherent set of functions. Versions: 1.4.6 / 1.4.5 / 1.4.4 new
+ automated machine learning (AutoML) and ensembles, via improved fit(),
+ mining() and mparheuristic() functions, and new categorical preprocessing,
+ via improved delevels() function; 1.4.3 new metrics (e.g., macro precision,
+ explained variance), new "lssvm" model and improved mparheuristic()
+ function; 1.4.2 new "NMAE" metric, "xgboost" and "cv.glmnet" models (16
+ classification and 18 regression models); 1.4.1 new tutorial and more
+ robust version; 1.4 - new classification and regression models, with a
+ total of 14 classification and 15 regression methods, including: Decision
+ Trees, Neural Networks, Support Vector Machines, Random Forests, Bagging
+ and Boosting; 1.3 and 1.3.1 - new classification and regression metrics;
+ 1.2 - new input importance methods via improved Importance() function; 1.0
+ - first version."""
homepage = "http://www3.dsi.uminho.pt/pcortez/rminer.html"
url = "https://cloud.r-project.org/src/contrib/rminer_1.4.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rminer"
+ version('1.4.6', sha256='1f8bf7b3fbc887fd766568c1ec1f861021c962259354bd8967a61c1d0761cdf7')
version('1.4.2', sha256='64444dcedcd17f2f26129819d6bd2f84d4bb59c8f65328b6054ef32cb9624fc2')
depends_on('r-plotrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rmpfr/package.py b/var/spack/repos/builtin/packages/r-rmpfr/package.py
index e01eeefbd1..e0028a11d2 100644
--- a/var/spack/repos/builtin/packages/r-rmpfr/package.py
+++ b/var/spack/repos/builtin/packages/r-rmpfr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,23 +7,28 @@ from spack import *
class RRmpfr(RPackage):
- """Arithmetic (via S4 classes and methods) for arbitrary precision
- floating point numbers, including transcendental ("special")
- functions. To this end, Rmpfr interfaces to the LGPL'ed MPFR
- (Multiple Precision Floating-Point Reliable) Library which itself
- is based on the GMP (GNU Multiple Precision) Library."""
+ """R MPFR - Multiple Precision Floating-Point Reliable
- homepage = "http://rmpfr.r-forge.r-project.org"
+ Arithmetic (via S4 classes and methods) for arbitrary precision floating
+ point numbers, including transcendental ("special") functions. To this end,
+ Rmpfr interfaces to the LGPL'ed MPFR (Multiple Precision Floating-Point
+ Reliable) Library which itself is based on the GMP (GNU Multiple Precision)
+ Library."""
+
+ homepage = "https://rmpfr.r-forge.r-project.org"
url = "https://cloud.r-project.org/src/contrib/Rmpfr_0.6-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Rmpfr"
+ version('0.8-2', sha256='74f6af1738b2cd21e7f2564b4cc2c84d5473a3745ba88ec76355d07fdd61f700')
version('0.7-2', sha256='ec1da6ec5292ea6ac95495c6a299591d367e520ae324719817fb884c865603ff')
version('0.7-1', sha256='9b3021617a22b0710b0f1acc279290762317ff123fd9e8fd03f1449f4bbfe204')
version('0.6-1', sha256='bf50991055e9336cd6a110d711ae8a91a0551b96f9eaab5fef8c05f578006e1c')
- depends_on('r@3.0.1:', when='@:0.6-1', type=('build', 'run'))
+ depends_on('r@3.0.1:', type=('build', 'run'))
depends_on('r@3.1.0:', when='@0.7-0', type=('build', 'run'))
depends_on('r@3.3.0:', when='@0.7-1:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@0.8-2:', type=('build', 'run'))
depends_on('r-gmp@0.5-8:', type=('build', 'run'))
- depends_on('mpfr@3.0.0:')
+ depends_on('r-gmp@0.6-1:', when='@0.8-2:', type=('build', 'run'))
depends_on('gmp@4.2.3:')
+ depends_on('mpfr@3.0.0:')
diff --git a/var/spack/repos/builtin/packages/r-rmpi/package.py b/var/spack/repos/builtin/packages/r-rmpi/package.py
index b1e4bdccfa..f0f8924fc8 100644
--- a/var/spack/repos/builtin/packages/r-rmpi/package.py
+++ b/var/spack/repos/builtin/packages/r-rmpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class RRmpi(RPackage):
"""An interface (wrapper) to MPI APIs. It also provides interactive R
manager and worker environment."""
- homepage = "http://www.stats.uwo.ca/faculty/yu/Rmpi"
+ homepage = "https://cran.r-project.org/web/packages/Rmpi/index.html"
url = "https://cloud.r-project.org/src/contrib/Rmpi_0.6-6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Rmpi"
diff --git a/var/spack/repos/builtin/packages/r-rms/package.py b/var/spack/repos/builtin/packages/r-rms/package.py
index 1090e0e546..7542f83370 100644
--- a/var/spack/repos/builtin/packages/r-rms/package.py
+++ b/var/spack/repos/builtin/packages/r-rms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,42 +7,47 @@ from spack import *
class RRms(RPackage):
- """Regression modeling, testing, estimation, validation, graphics,
- prediction, and typesetting by storing enhanced model design
- attributes in the fit. 'rms' is a collection of functions that
- assist with and streamline modeling. It also contains functions
- for binary and ordinal logistic regression models, ordinal models
- for continuous Y with a variety of distribution families, and the
- Buckley-James multiple regression model for right-censored responses,
- and implements penalized maximum likelihood estimation for logistic
- and ordinary linear models. 'rms' works with almost any regression
- model, but it was especially written to work with binary or ordinal
- regression models, Cox regression, accelerated failure time models,
- ordinary linear models, the Buckley-James model, generalized least
- squares for serially or spatially correlated observations,
- generalized linear models, and quantile regression.
- """
+ """Regression Modeling Strategies
+
+ Regression modeling, testing, estimation, validation, graphics, prediction,
+ and typesetting by storing enhanced model design attributes in the fit.
+ 'rms' is a collection of functions that assist with and streamline
+ modeling. It also contains functions for binary and ordinal logistic
+ regression models, ordinal models for continuous Y with a variety of
+ distribution families, and the Buckley-James multiple regression model for
+ right-censored responses, and implements penalized maximum likelihood
+ estimation for logistic and ordinary linear models. 'rms' works with almost
+ any regression model, but it was especially written to work with binary or
+ ordinal regression models, Cox regression, accelerated failure time models,
+ ordinary linear models, the Buckley-James model, generalized least squares
+ for serially or spatially correlated observations, generalized linear
+ models, and quantile regression."""
homepage = "https://cloud.r-project.org/package=rms"
url = "https://cloud.r-project.org/src/contrib/rms_5.1-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rms"
+ version('6.1-0', sha256='b89ec3b9211a093bfe83a2a8107989b5ce3b7b7c323b88a5d887d99753289f52')
version('5.1-4', sha256='38f5844c4944a95b2adebea6bb1d163111270b8662399ea0349c45c0758076a6')
version('5.1-3.1', sha256='0946d9547a4e3ff020a61ab3fce38f88aa9545729683e2bfefeb960edec82b37')
version('5.1-3', sha256='5fc7120d8a93b4aa9727d82eac368c5c47ff70f467ae2b012afac688235089eb')
version('5.1-2', sha256='f1cfeef466ac436105756679353a3468027d97a600e3be755b819aef30ed9207')
version('5.1-1', sha256='c489948df5c434b40bcf5288844f5b4e08d157f36939d09230c1600f88d1bfe3')
- depends_on('r@3.5:', type=('build', 'run'))
- depends_on('r-hmisc@4.3:', type=('build', 'run'))
- depends_on('r-survival@3.1-6', type=('build', 'run'))
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-hmisc@4.3-0:', type=('build', 'run'))
+ depends_on('r-survival@3.1-6:', type=('build', 'run'))
+ depends_on('r-survival@3.1-12:', when='@6.1-0:', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
- depends_on('r-polspline', type=('build', 'run'))
depends_on('r-ggplot2@2.2:', type=('build', 'run'))
depends_on('r-sparsem', type=('build', 'run'))
depends_on('r-quantreg', type=('build', 'run'))
depends_on('r-rpart', type=('build', 'run'))
depends_on('r-nlme@3.1-123:', type=('build', 'run'))
+ depends_on('r-polspline', type=('build', 'run'))
depends_on('r-multcomp', type=('build', 'run'))
depends_on('r-htmltable@1.11.0:', type=('build', 'run'))
depends_on('r-htmltools', type=('build', 'run'))
+ depends_on('r-mass', when='@6.1-0:', type=('build', 'run'))
+ depends_on('r-cluster', when='@6.1-0:', type=('build', 'run'))
+ depends_on('r-digest', when='@6.1-0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rmutil/package.py b/var/spack/repos/builtin/packages/r-rmutil/package.py
index 202cf10571..1d429d83a4 100644
--- a/var/spack/repos/builtin/packages/r-rmutil/package.py
+++ b/var/spack/repos/builtin/packages/r-rmutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,18 @@ from spack import *
class RRmutil(RPackage):
- """rmutil: Utilities for Nonlinear Regression and Repeated
- MeasurementsModels"""
+ """Utilities for Nonlinear Regression and Repeated MeasurementsModels
- homepage = "http://www.commanster.eu/rcode.html"
+ A toolkit of functions for nonlinear regression and repeated measurements
+ not to be used by itself but called by other Lindsey packages such as
+ 'gnlm', 'stable', 'growth', 'repeated', and 'event' (available at
+ <https://www.commanster.eu/rcode.html>)."""
+
+ homepage = "https://www.commanster.eu/rcode.html"
url = "https://cloud.r-project.org/src/contrib/rmutil_1.1.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rmutil"
+ version('1.1.5', sha256='6077e643d6daeba6edcf49d928320b54cc6aa6ff59934f9e9e6071a2f9afb2f6')
version('1.1.3', sha256='7abaf41e99d1c4a0e4082c4594964ac1421c53b4268116c82fa55aa8bc0582da')
depends_on('r@1.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rmysql/package.py b/var/spack/repos/builtin/packages/r-rmysql/package.py
index 7c161a60cb..ac76721b0b 100644
--- a/var/spack/repos/builtin/packages/r-rmysql/package.py
+++ b/var/spack/repos/builtin/packages/r-rmysql/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,20 @@ from spack import *
class RRmysql(RPackage):
- """Implements 'DBI' Interface to 'MySQL' and 'MariaDB' Databases."""
+ """Database Interface and 'MySQL' Driver for R
+
+ Legacy 'DBI' interface to 'MySQL' / 'MariaDB' based on old code ported from
+ S-PLUS. A modern 'MySQL' client based on 'Rcpp' is available from the
+ 'RMariaDB' package."""
homepage = "https://github.com/rstats-db/rmysql"
url = "https://cloud.r-project.org/src/contrib/RMySQL_0.10.9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RMySQL"
+ version('0.10.21', sha256='3a6bf06d32d66c7c958d4f89ed517614171a7fd254ef6f4d40f4c5982c2d6b31')
version('0.10.17', sha256='754df4fce159078c1682ef34fc96aa5ae30981dc91f4f2bada8d1018537255f5')
version('0.10.9', sha256='41289c743dc8ee2e0dea8b8f291d65f0a7cd11e799b713d94840406ff296fd42')
- depends_on('r-dbi@0.4:', type=('build', 'run'))
- depends_on('mariadb@:5.5')
-
depends_on('r@2.8.0:', type=('build', 'run'))
+ depends_on('r-dbi@0.4:', type=('build', 'run'))
+ depends_on('mysql')
diff --git a/var/spack/repos/builtin/packages/r-rnaseqmap/package.py b/var/spack/repos/builtin/packages/r-rnaseqmap/package.py
index 361e11a8f1..73472bbda8 100644
--- a/var/spack/repos/builtin/packages/r-rnaseqmap/package.py
+++ b/var/spack/repos/builtin/packages/r-rnaseqmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RRnaseqmap(RPackage):
- """rnaSeq secondary analyses.
+ """rnaSeq secondary analyses
The rnaSeqMap library provides classes and functions to analyze the RNA-
sequencing data using the coverage profiles in multiple samples at a
@@ -16,6 +16,7 @@ class RRnaseqmap(RPackage):
homepage = "https://bioconductor.org/packages/rnaSeqMap"
git = "https://git.bioconductor.org/packages/rnaSeqMap.git"
+ version('2.48.0', commit='a8c515e518cebf571d1524c3a8a986ba7d1557db')
version('2.42.0', commit='3a3a1030cc38d79d04536e0ab16114e4fa6721cf')
version('2.40.1', commit='c122d645b3503fb1a061f5515e4f8cf2863b3ba3')
version('2.38.0', commit='5eb9583bfacd375161739a8ae6057204487f8b9e')
diff --git a/var/spack/repos/builtin/packages/r-rncl/package.py b/var/spack/repos/builtin/packages/r-rncl/package.py
index 4501e1c2f3..275c588039 100644
--- a/var/spack/repos/builtin/packages/r-rncl/package.py
+++ b/var/spack/repos/builtin/packages/r-rncl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rnexml/package.py b/var/spack/repos/builtin/packages/r-rnexml/package.py
index bffab45a28..12d5966be4 100644
--- a/var/spack/repos/builtin/packages/r-rnexml/package.py
+++ b/var/spack/repos/builtin/packages/r-rnexml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rngtools/package.py b/var/spack/repos/builtin/packages/r-rngtools/package.py
index ac7e0fd8e6..6a6a36279b 100644
--- a/var/spack/repos/builtin/packages/r-rngtools/package.py
+++ b/var/spack/repos/builtin/packages/r-rngtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,8 +7,10 @@ from spack import *
class RRngtools(RPackage):
- """This package contains a set of functions for working with Random Number
- Generators (RNGs). In particular, it defines a generic S4 framework for
+ """Utility Functions for Working with Random Number Generators
+
+ Provides a set of functions for working with Random Number Generators
+ (RNGs). In particular, a generic S4 framework is defined for
getting/setting the current RNG, or RNG data that are embedded into objects
for reproducibility. Notably, convenient default methods greatly facilitate
the way current RNG settings can be changed."""
@@ -17,13 +19,13 @@ class RRngtools(RPackage):
url = "https://cloud.r-project.org/src/contrib/rngtools_1.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rngtools"
+ version('1.5', sha256='8274873b73f7acbe0ce007e62893bf4d369d2aab8768754a60da46b3f078f575')
version('1.4', sha256='3aa92366e5d0500537964302f5754a750aff6b169a27611725e7d84552913bce')
version('1.3.1.1', sha256='99e1a8fde6b81128d0946746c1ef84ec5b6c2973ad843a080098baf73aa3364c')
version('1.3.1', sha256='763fc493cb821a4d3e514c0dc876d602a692c528e1d67f295dde70c77009e224')
- depends_on('r@3.0.0:', when='@:1.3.1', type=('build', 'run'))
- depends_on('r@3.6.0:', when='@1.3.1.1', type=('build', 'run'))
+ depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r@3.2.0:', when='@1.4:', type=('build', 'run'))
- depends_on('r-pkgmaker@0.20:', type=('build', 'run'))
- depends_on('r-stringr', type=('build', 'run'))
depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-pkgmaker@0.20:', when='@:1.4', type=('build', 'run'))
+ depends_on('r-stringr', when='@:1.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rnoaa/package.py b/var/spack/repos/builtin/packages/r-rnoaa/package.py
index bdaee96de1..923cec9a89 100644
--- a/var/spack/repos/builtin/packages/r-rnoaa/package.py
+++ b/var/spack/repos/builtin/packages/r-rnoaa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,26 +7,38 @@ from spack import *
class RRnoaa(RPackage):
- """rnoaa: 'NOAA' Weather Data from R"""
+ """'NOAA' Weather Data from R
+
+ Client for many 'NOAA' data sources including the 'NCDC' climate 'API' at
+ <https://www.ncdc.noaa.gov/cdo-web/webservices/v2>, with functions for each
+ of the 'API' 'endpoints': data, data categories, data sets, data types,
+ locations, location categories, and stations. In addition, we have an
+ interface for 'NOAA' sea ice data, the 'NOAA' severe weather inventory,
+ 'NOAA' Historical Observing 'Metadata' Repository ('HOMR') data, 'NOAA'
+ storm data via 'IBTrACS', tornado data via the 'NOAA' storm prediction
+ center, and more."""
homepage = "https://github.com/ropensci/rnoaa"
url = "https://cloud.r-project.org/src/contrib/rnoaa_0.8.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rnoaa"
+ version('1.3.0', sha256='4c421ad6e4c2b25e4dea5351c338aed70bea6e382562412d1dad825a50b0d161')
version('0.8.4', sha256='fb9ae771111dd5f638c1eff3290abad2ff9cc7e68a6678bf2414433ebed2dbbf')
depends_on('r-crul@0.7.0:', type=('build', 'run'))
+ depends_on('r-lubridate', type=('build', 'run'))
depends_on('r-dplyr', type=('build', 'run'))
- depends_on('r-geonames', type=('build', 'run'))
+ depends_on('r-tidyr', type=('build', 'run'))
+ depends_on('r-tidyselect', when='@1.3.0:', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
- depends_on('r-gridextra', type=('build', 'run'))
- depends_on('r-hoardr@0.5.2:', type=('build', 'run'))
- depends_on('r-isdparser@0.2.0:', type=('build', 'run'))
- depends_on('r-jsonlite', type=('build', 'run'))
- depends_on('r-lubridate', type=('build', 'run'))
- depends_on('r-rappdirs', type=('build', 'run'))
depends_on('r-scales', type=('build', 'run'))
- depends_on('r-tibble', type=('build', 'run'))
- depends_on('r-tidyr', type=('build', 'run'))
depends_on('r-xml', type=('build', 'run'))
depends_on('r-xml2', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-rappdirs', type=('build', 'run'))
+ depends_on('r-gridextra', type=('build', 'run'))
+ depends_on('r-tibble', type=('build', 'run'))
+ depends_on('r-isdparser@0.2.0:', type=('build', 'run'))
+ depends_on('r-geonames', type=('build', 'run'))
+ depends_on('r-hoardr@0.5.2:', type=('build', 'run'))
+ depends_on('r-data-table', when='@1.3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-robust/package.py b/var/spack/repos/builtin/packages/r-robust/package.py
index fafba06909..3f509dd7b3 100644
--- a/var/spack/repos/builtin/packages/r-robust/package.py
+++ b/var/spack/repos/builtin/packages/r-robust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,17 +8,21 @@ from spack import *
class RRobust(RPackage):
- """robust: Port of the S+ Robust Library """
+ """Port of the S+ Robust Library
+
+ Methods for robust statistics, a state of the art in the early 2000s,
+ notably for robust regression and robust multivariate analysis."""
homepage = "https://cloud.r-project.org/package=robust"
url = "https://cloud.r-project.org/src/contrib/robust_0.4-18.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/robust/"
+ version('0.5-0.0', sha256='82f0b50028938966f807a4c4da5c345a3a64ccafd9a31c64a22cda852ed345cf')
version('0.4-18.1', sha256='de31901882873ef89748bb6863caf55734431df5b3eb3c6663ed17ee2e4a4077')
version('0.4-18', sha256='e4196f01bb3b0d768759d4411d524238b627eb8dc213d84cb30014e75480f8ac')
+ depends_on('r-fit-models', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
depends_on('r-robustbase', type=('build', 'run'))
depends_on('r-rrcov', type=('build', 'run'))
- depends_on('r-fit-models', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-robustbase/package.py b/var/spack/repos/builtin/packages/r-robustbase/package.py
index 4afc35894c..692f939352 100644
--- a/var/spack/repos/builtin/packages/r-robustbase/package.py
+++ b/var/spack/repos/builtin/packages/r-robustbase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,19 @@ from spack import *
class RRobustbase(RPackage):
- """"Essential" Robust Statistics. Tools allowing to analyze data
- with robust methods. This includes regression methodology
- including model selections and multivariate statistics where we
- strive to cover the book "Robust Statistics, Theory and Methods"
- by 'Maronna, Martin and Yohai'; Wiley 2006."""
+ """Basic Robust Statistics
+
+ "Essential" Robust Statistics. Tools allowing to analyze data with robust
+ methods. This includes regression methodology including model selections
+ and multivariate statistics where we strive to cover the book "Robust
+ Statistics, Theory and Methods" by 'Maronna, Martin and Yohai'; Wiley
+ 2006."""
homepage = "https://robustbase.r-forge.r-project.org"
url = "https://cloud.r-project.org/src/contrib/robustbase_0.92-7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/robustbase"
+ version('0.93-7', sha256='8911d2d0fdca5e2627033e046279f9d106e25ce98d588f9ccc4d8e4b42680956')
version('0.93-5', sha256='bde564dbd52f04ab32f9f2f9dd09b9578f3ccd2541cf5f8ff430da42a55e7f56')
version('0.93-4', sha256='ea9e03d484ef52ea805803477ffc48881e4c8c86ffda4eea56109f8b23f0a6e0')
version('0.92-7', sha256='fcbd6ccbb0291b599fe6a674a91344511e0a691b9cadba0a9d40037faa22bf8f')
diff --git a/var/spack/repos/builtin/packages/r-roc/package.py b/var/spack/repos/builtin/packages/r-roc/package.py
index 90cb6bfb0d..023683a28a 100644
--- a/var/spack/repos/builtin/packages/r-roc/package.py
+++ b/var/spack/repos/builtin/packages/r-roc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,14 @@ from spack import *
class RRoc(RPackage):
- """Provide utilities for ROC, with microarray focus."""
+ """utilities for ROC, with microarray focus
+
+ Provide utilities for ROC, with microarray focus."""
homepage = "https://bioconductor.org/packages/release/bioc/html/ROC.html"
git = "https://git.bioconductor.org/packages/ROC"
+ version('1.66.0', commit='62701ee41f48f99d15344127384fa032db69486f')
version('1.62.0', commit='60250fdb091f6a938709b8a2cffe6442ee22a9a2')
depends_on('r@1.9.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rocr/package.py b/var/spack/repos/builtin/packages/r-rocr/package.py
index 44b95183fa..47e3fda498 100644
--- a/var/spack/repos/builtin/packages/r-rocr/package.py
+++ b/var/spack/repos/builtin/packages/r-rocr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRocr(RPackage):
- """ROC graphs, sensitivity/specificity curves, lift charts,
+ """Visualizing the Performance of Scoring Classifiers
+
+ ROC graphs, sensitivity/specificity curves, lift charts,
and precision/recall plots are popular examples of trade-off
visualizations for specific pairs of performance measures. ROCR
is a flexible tool for creating cutoff-parameterized 2D performance
@@ -23,9 +25,13 @@ class RRocr(RPackage):
mechanism. Despite its flexibility, ROCR is easy to use, with only
three commands and reasonable default values for all optional
parameters."""
+
homepage = "https://cloud.r-project.org/package=ROCR"
url = "https://cloud.r-project.org/src/contrib/ROCR_1.0-7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/ROCR"
+ version('1.0-11', sha256='57385a773220a3aaef5b221a68b2d9c2a94794d4f9e9fc3c1eb9521767debb2a')
version('1.0-7', sha256='e7ef710f847e441a48b20fdc781dbc1377f5a060a5ee635234053f7a2a435ec9')
+
+ depends_on('r@3.6:', when='@1.0-11:', type=('build', 'run'))
depends_on('r-gplots', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rodbc/package.py b/var/spack/repos/builtin/packages/r-rodbc/package.py
index 8db227f82a..0969610221 100644
--- a/var/spack/repos/builtin/packages/r-rodbc/package.py
+++ b/var/spack/repos/builtin/packages/r-rodbc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,19 @@ from spack import *
class RRodbc(RPackage):
- """An ODBC database interface."""
+ """ODBC Database Access
+
+ An ODBC database interface."""
homepage = "https://cloud.r-project.org/package=RODBC"
url = "https://cloud.r-project.org/src/contrib/RODBC_1.3-13.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RODBC/"
+ version('1.3-17', sha256='469fc835f65c344d5c3eaa097ff278ee8e9f12f845722a9aad340115faa704f7')
version('1.3-15', sha256='c43e5a2f0aa2f46607e664bfc0bb3caa230bbb779f4ff084e01727642da136e1')
version('1.3-13', sha256='e8ea7eb77a07be36fc2d824c28bb426334da7484957ffbc719140373adf1667c')
depends_on('unixodbc')
depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r@4.0.0:', when='@1.3-17:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rook/package.py b/var/spack/repos/builtin/packages/r-rook/package.py
index c440de3446..26e5f61eab 100644
--- a/var/spack/repos/builtin/packages/r-rook/package.py
+++ b/var/spack/repos/builtin/packages/r-rook/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rots/package.py b/var/spack/repos/builtin/packages/r-rots/package.py
index 339d92893c..57063ce900 100644
--- a/var/spack/repos/builtin/packages/r-rots/package.py
+++ b/var/spack/repos/builtin/packages/r-rots/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RRots(RPackage):
- """Reproducibility-Optimized Test Statistic.
+ """Reproducibility-Optimized Test Statistic
Calculates the Reproducibility-Optimized Test Statistic (ROTS) for
differential testing in omics data."""
@@ -15,6 +15,7 @@ class RRots(RPackage):
homepage = "https://bioconductor.org/packages/ROTS"
git = "https://git.bioconductor.org/packages/ROTS.git"
+ version('1.18.0', commit='1d4e206a8ce68d5a1417ff51c26174ed9d0ba7d2')
version('1.12.0', commit='7e2c96fd8fd36710321498745f24cc6b59ac02f0')
version('1.10.1', commit='1733d3f868cef4d81af6edfc102221d80793937b')
version('1.8.0', commit='02e3c6455bb1afe7c4cc59ad6d4d8bae7b01428b')
diff --git a/var/spack/repos/builtin/packages/r-roxygen2/package.py b/var/spack/repos/builtin/packages/r-roxygen2/package.py
index 66c51eb487..d9161431ed 100644
--- a/var/spack/repos/builtin/packages/r-roxygen2/package.py
+++ b/var/spack/repos/builtin/packages/r-roxygen2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,25 +7,30 @@ from spack import *
class RRoxygen2(RPackage):
- """A 'Doxygen'-like in-source documentation system for Rd, collation, and
- 'NAMESPACE' files."""
+ """In-Line Documentation for R
+
+ Generate your Rd documentation, 'NAMESPACE' file, and collation field using
+ specially formatted comments. Writing documentation in-line with code makes
+ it easier to keep your documentation up-to-date as your requirements
+ change. 'Roxygen2' is inspired by the 'Doxygen' system for C++."""
homepage = "https://github.com/klutometis/roxygen"
url = "https://cloud.r-project.org/src/contrib/roxygen2_5.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/roxygen2"
+ version('7.1.1', sha256='bdc55ded037d4366f4d25a0d69e880dacc0fa22bee20f595d45855eef8548861')
version('7.1.0', sha256='7e9b36f6e7c01a5c8c4747340b3d0c064ce2e48c93fcfbfe45139854fae74103')
version('6.1.1', sha256='ed46b7e062e0dfd8de671c7a5f6d120fb2b720982e918dbeb01e6985694c0273')
version('5.0.1', sha256='9f755ddd08358be436f08b02df398e50e7508b856131aeeed235099bb3a7eba5')
- depends_on('r@3.0.2:', when='@:6.0.1', type=('build', 'run'))
- depends_on('r@3.2:', when='@7.1.0:', type=('build', 'run'))
+ depends_on('r@3.0.2:', type=('build', 'run'))
depends_on('r@3.1:', when='@6.1.0:', type=('build', 'run'))
+ depends_on('r@3.2:', when='@7.1.0:', type=('build', 'run'))
depends_on('r-brew', type=('build', 'run'))
depends_on('r-commonmark', type=('build', 'run'))
depends_on('r-desc@1.2.0:', type=('build', 'run'))
- depends_on('r-knitr', when='@7.1.0:', type=('build', 'run'))
depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-knitr', when='@7.1.0:', type=('build', 'run'))
depends_on('r-pkgload@1.0.2:', type=('build', 'run'))
depends_on('r-purrr', type=('build', 'run'))
depends_on('r-purrr@0.3.3:', when='@7.1.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rpart-plot/package.py b/var/spack/repos/builtin/packages/r-rpart-plot/package.py
index e18f72efe8..a6fe40255a 100644
--- a/var/spack/repos/builtin/packages/r-rpart-plot/package.py
+++ b/var/spack/repos/builtin/packages/r-rpart-plot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RRpartPlot(RPackage):
- """Plot 'rpart' models. Extends plot.rpart() and text.rpart() in the
+ """Plot 'rpart' Models: An Enhanced Version of 'plot.rpart'
+
+ Plot 'rpart' models. Extends plot.rpart() and text.rpart() in the
'rpart' package."""
homepage = "https://cloud.r-project.org/package=rpart.plot"
url = "https://cloud.r-project.org/src/contrib/rpart.plot_2.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rpart.plot"
+ version('3.0.9', sha256='1150f5e9899b3b31b17160617cd99c3ad340c8361aeb229264a7a3a3a28015a4')
version('3.0.7', sha256='04e7fcadfa907507b74529c3ecfae4a0c782badf55e87d9c62dbd9a536ea9144')
version('3.0.6', sha256='1c584290c8f58ded5c3f0638790a0da63408eca3ecd5d5c4d8c46954de9f4b02')
version('2.1.0', sha256='17686da1883f97cb8f44be0d9cb915b366a3cb7313cd131b96497ab09f727436')
@@ -21,3 +24,4 @@ class RRpartPlot(RPackage):
depends_on('r@3.2.0:', when='@2.1.2:3.0.6', type=('build', 'run'))
depends_on('r@3.4.0:', when='@3.0.7:', type=('build', 'run'))
depends_on('r-rpart@4.1-10:', type=('build', 'run'))
+ depends_on('r-rpart@4.1-15:', when='@3.0.9:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rpart/package.py b/var/spack/repos/builtin/packages/r-rpart/package.py
index 8964a28517..3becf4f851 100644
--- a/var/spack/repos/builtin/packages/r-rpart/package.py
+++ b/var/spack/repos/builtin/packages/r-rpart/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rpmm/package.py b/var/spack/repos/builtin/packages/r-rpmm/package.py
new file mode 100644
index 0000000000..d66be66432
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rpmm/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RRpmm(RPackage):
+ """Recursively Partitioned Mixture Model:
+
+ Recursively Partitioned Mixture Model for Beta and Gaussian Mixtures. This
+ is a model-based clustering algorithm that returns a hierarchy of classes,
+ similar to hierarchical clustering, but also similar to finite mixture
+ models."""
+
+ cran = "RPMM"
+
+ version('1.25', sha256='f04a524b13918062616beda50c4e759ce2719ce14150a0e677d07132086c88c8')
+
+ depends_on('r@2.3.12:', type=('build', 'run'))
+ depends_on('r-cluster', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rpostgres/package.py b/var/spack/repos/builtin/packages/r-rpostgres/package.py
new file mode 100644
index 0000000000..196f4565c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rpostgres/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 RRpostgres(RPackage):
+ """'Rcpp' Interface to 'PostgreSQL'
+
+ Fully 'DBI'-compliant 'Rcpp'-backed interface to 'PostgreSQL'
+ <https://www.postgresql.org/>, an open-source relational database."""
+
+ homepage = "https://rpostgres.r-dbi.org/"
+ cran = "RPostgres"
+
+ version('1.3.1', sha256='f68ab095567317ec32d3faa10e5bcac400aee5aeca8d7132260d4e90f82158ea')
+
+ depends_on('r@3.1.0:', type=('build', 'run'))
+ depends_on('r-bit64', type=('build', 'run'))
+ depends_on('r-blob@1.2.0:', type=('build', 'run'))
+ depends_on('r-dbi@1.1.0:', type=('build', 'run'))
+ depends_on('r-hms@0.5.0:', type=('build', 'run'))
+ depends_on('r-lubridate', type=('build', 'run'))
+ depends_on('r-rcpp@0.11.4.2:', type=('build', 'run'))
+ depends_on('r-withr', type=('build', 'run'))
+ depends_on('r-bh', type=('build', 'run'))
+ depends_on('r-plogr@0.2.0:', type=('build', 'run'))
+ depends_on('postgresql@9.0:')
diff --git a/var/spack/repos/builtin/packages/r-rpostgresql/package.py b/var/spack/repos/builtin/packages/r-rpostgresql/package.py
index 01467dfac2..437748d353 100644
--- a/var/spack/repos/builtin/packages/r-rpostgresql/package.py
+++ b/var/spack/repos/builtin/packages/r-rpostgresql/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,7 +17,7 @@ class RRpostgresql(RPackage):
issue tracking system for the package are available at Google Code at
https://code.google.com/p/rpostgresql/."""
- homepage = "https://code.google.com/p/rpostgresql/"
+ homepage = "https://cran.r-project.org/web/packages/RPostgreSQL/index.html"
url = "https://cloud.r-project.org/src/contrib/RPostgreSQL_0.4-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RPostgreSQL"
@@ -27,3 +27,11 @@ class RRpostgresql(RPackage):
depends_on('r@2.9.0:', type=('build', 'run'))
depends_on('r-dbi@0.3:', type=('build', 'run'))
depends_on('postgresql')
+
+ depends_on('automake', type='build')
+
+ patch_config_files = True
+
+ @run_before('install')
+ def patch_config_guess(self):
+ AutotoolsPackage._do_patch_config_files(self)
diff --git a/var/spack/repos/builtin/packages/r-rprojroot/package.py b/var/spack/repos/builtin/packages/r-rprojroot/package.py
index 63df595741..d8b5617a22 100644
--- a/var/spack/repos/builtin/packages/r-rprojroot/package.py
+++ b/var/spack/repos/builtin/packages/r-rprojroot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRprojroot(RPackage):
- """Robust, reliable and flexible paths to files below a project root.
+ """Finding Files in Project Subdirectories
+
+ Robust, reliable and flexible paths to files below a project root.
The 'root' of a project is defined as a directory that matches a
certain criterion, e.g., it contains a certain regular file."""
@@ -15,8 +17,9 @@ class RRprojroot(RPackage):
url = "https://cloud.r-project.org/src/contrib/rprojroot_1.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rprojroot"
+ version('2.0.2', sha256='5fa161f0d4ac3b7a99dc6aa2d832251001dc92e93c828593a51fe90afd019e1f')
version('1.3-2', sha256='df5665834941d8b0e377a8810a04f98552201678300f168de5f58a587b73238b')
version('1.2', sha256='28b4d235ce67314528a0c1cc7e98faed42437b42e07fca18a59a80fdc3eefeb9')
depends_on('r@3.0.0:', type=('build', 'run'))
- depends_on('r-backports', type=('build', 'run'))
+ depends_on('r-backports', when='@:1.3-2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rrblup/package.py b/var/spack/repos/builtin/packages/r-rrblup/package.py
index 1f978f84a1..e3b51cd574 100644
--- a/var/spack/repos/builtin/packages/r-rrblup/package.py
+++ b/var/spack/repos/builtin/packages/r-rrblup/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,19 @@ from spack import *
class RRrblup(RPackage):
- """rrBLUP: Ridge Regression and Other Kernels for Genomic Selection"""
+ """Ridge Regression and Other Kernels for Genomic Selection
- homepage = "http://potatobreeding.cals.wisc.edu/software"
+ Software for genomic prediction with the RR-BLUP mixed model (Endelman
+ 2011, <doi:10.3835/plantgenome2011.08.0024>). One application is to
+ estimate marker effects by ridge regression; alternatively, BLUPs can be
+ calculated based on an additive relationship matrix or a Gaussian
+ kernel."""
+
+ homepage = "https://potatobreeding.cals.wisc.edu/software"
url = "https://cloud.r-project.org/src/contrib/rrBLUP_4.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rrBLUP"
+ version('4.6.1', sha256='e9230e74cc430a83ac5567071cb1c7f00b35c368f7d79bcc1cfde7225446c4db')
version('4.6', sha256='28b475a1466fcdc1780caace75cf34155338fda496cebd5799315598a4bc84af')
depends_on('r@2.14:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rrcov/package.py b/var/spack/repos/builtin/packages/r-rrcov/package.py
index b1843d025e..a3bb2ff25c 100644
--- a/var/spack/repos/builtin/packages/r-rrcov/package.py
+++ b/var/spack/repos/builtin/packages/r-rrcov/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,28 @@ from spack import *
class RRrcov(RPackage):
- """rrcov: Scalable Robust Estimators with High Breakdown Point"""
+ """Scalable Robust Estimators with High Breakdown Point
+
+ Robust Location and Scatter Estimation and Robust Multivariate Analysis
+ with High Breakdown Point: principal component analysis (Filzmoser and
+ Todorov (2013), <doi:10.1016/j.ins.2012.10.017>), linear and quadratic
+ discriminant analysis (Todorov and Pires (2007)), multivariate tests
+ (Todorov and Filzmoser (2010) <doi:10.1016/j.csda.2009.08.015>), outlier
+ detection (Todorov et al. (2010) <doi:10.1007/s11634-010-0075-2>). See also
+ Todorov and Filzmoser (2009) <ISBN-13:978-3838108148>, Todorov and
+ Filzmoser (2010) <doi:10.18637/jss.v032.i03> and Boudt et al. (2019)
+ <doi:10.1007/s11222-019-09869-x>."""
homepage = "https://cloud.r-project.org/package=rrcov"
url = "https://cloud.r-project.org/src/contrib/rrcov_1.4-7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rrcov"
+ version('1.5-5', sha256='1f7f07558e347e7d1f1adff68631764670bc672777a7d990901c4fa94cc0e629')
version('1.4-7', sha256='cbd08ccce8b583a2f88946a3267c8fc494ee2b44ba749b9296a6e3d818f6f293')
depends_on('r@2.10:', type=('build', 'run'))
depends_on('r-robustbase@0.92.1:', type=('build', 'run'))
depends_on('r-mvtnorm', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
- depends_on('r-cluster', type=('build', 'run'))
depends_on('r-pcapp', type=('build', 'run'))
+ depends_on('r-cluster', when='@:1.4-7', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rrpp/package.py b/var/spack/repos/builtin/packages/r-rrpp/package.py
index 629f5b2300..bb035bf842 100644
--- a/var/spack/repos/builtin/packages/r-rrpp/package.py
+++ b/var/spack/repos/builtin/packages/r-rrpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,24 +8,28 @@ from spack import *
class RRrpp(RPackage):
- """Linear model calculations are made for many random versions of data.
-
- Using residual randomization in a permutation procedure, sums of
- squares are calculated over many permutations to generate empirical
- probability distributions for evaluating model effects. This method
- is described by Collyer, Sekora, & Adams (2015)
- <doi:10.1038/hdy.2014.75>. Additionally, coefficients, statistics,
- fitted values, and residuals generated over many permutations can be
- used for various procedures including pairwise tests, prediction,
- classification, and model comparison. This package should provide
- most tools one could need for the analysis of high-dimensional data,
- especially in ecology and evolutionary biology, but certainly
- other fields, as well."""
+ """Linear Model Evaluation with Randomized Residuals in a Permutation Procedure
+
+ Linear model calculations are made for many random versions of data. Using
+ residual randomization in a permutation procedure, sums of squares are
+ calculated over many permutations to generate empirical probability
+ distributions for evaluating model effects. This packaged is described by
+ Collyer & Adams (2018) <doi:10.1111/2041-210X.13029>. Additionally,
+ coefficients, statistics, fitted values, and residuals generated over many
+ permutations can be used for various procedures including pairwise tests,
+ prediction, classification, and model comparison. This package should
+ provide most tools one could need for the analysis of high-dimensional
+ data, especially in ecology and evolutionary biology, but certainly other
+ fields, as well."""
homepage = "https://github.com/mlcollyer/RRPP"
url = "https://cloud.r-project.org/src/contrib/RRPP_0.3.0.tar.gz"
list_url = "https://cron.r-project.org/src/contrib/Archive/RRPP"
+ version('0.6.2', sha256='f8ffa318d806184c0e65929ea1b8b6a88bb9e45f77db2da5a83c6fe550b084dc')
version('0.4.2', sha256='21a4ebb549d21f66ee9107adf762eee630e478bc740f232f384ba1a6b1cd3bf4')
version('0.4.1', sha256='d7cd3b089240d7f7e13f65f0259487669a378ffae062aee33d4dc6ab0f86f899')
version('0.3.0', sha256='34fea6ce7a78e4f38398d3b99585bab11a8171bc8b9a4e461b6d984ed1373739')
+
+ depends_on('r@3.5.0:', when='@0.6.2:', type=('build', 'run'))
+ depends_on('r-ape', when='@0.6.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rsamtools/package.py b/var/spack/repos/builtin/packages/r-rsamtools/package.py
index d0046d5186..b444102992 100644
--- a/var/spack/repos/builtin/packages/r-rsamtools/package.py
+++ b/var/spack/repos/builtin/packages/r-rsamtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RRsamtools(RPackage):
"""Binary alignment (BAM), FASTA, variant call (BCF), and tabix file
- import.
+ import
This package provides an interface to the 'samtools', 'bcftools', and
'tabix' utilities for manipulating SAM (Sequence Alignment / Map),
@@ -18,6 +18,7 @@ class RRsamtools(RPackage):
homepage = "https://bioconductor.org/packages/Rsamtools"
git = "https://git.bioconductor.org/packages/Rsamtools.git"
+ version('2.6.0', commit='f2aea061517c5a55e314c039251ece9831c7fad2')
version('2.2.1', commit='f10084658b4c9744961fcacd79c0ae9a7a40cd30')
version('2.0.3', commit='17d254cc026574d20db67474260944bf60befd70')
version('1.34.1', commit='0ec1d45c7a14b51d019c3e20c4aa87c6bd2b0d0c')
@@ -27,23 +28,23 @@ class RRsamtools(RPackage):
depends_on('r-genomeinfodb@1.1.3:', type=('build', 'run'))
depends_on('r-genomicranges@1.21.6:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.31.8:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-biostrings@2.37.1:', type=('build', 'run'))
+ depends_on('r-biostrings@2.47.6:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-biocgenerics@0.1.3:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.25.1:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-s4vectors@0.13.8:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.25:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-iranges@2.3.7:', type=('build', 'run'))
+ depends_on('r-iranges@2.13.12:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-xvector@0.15.1:', type=('build', 'run'))
+ depends_on('r-xvector@0.19.7:', when='@1.32.3:', type=('build', 'run'))
depends_on('r-zlibbioc', type=('build', 'run'))
depends_on('r-bitops', type=('build', 'run'))
depends_on('r-biocparallel', type=('build', 'run'))
-
- depends_on('r-genomicranges@1.31.8:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-biostrings@2.47.6:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-biocgenerics@0.25.1:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-s4vectors@0.17.25:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-iranges@2.13.12:', when='@1.32.3:', type=('build', 'run'))
- depends_on('r-xvector@0.19.7:', when='@1.32.3:', type=('build', 'run'))
-
depends_on('r-rhtslib@1.16.3', when='@2.0.3', type=('build', 'run'))
depends_on('r-rhtslib@1.17.7:', when='@2.2.1:', type=('build', 'run'))
-
depends_on('gmake', type='build')
+
+ # this is not a listed dependency but is needed
+ depends_on('curl')
diff --git a/var/spack/repos/builtin/packages/r-rsconnect/package.py b/var/spack/repos/builtin/packages/r-rsconnect/package.py
new file mode 100644
index 0000000000..e25a4593c5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rsconnect/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 RRsconnect(RPackage):
+ """Deployment Interface for R Markdown Documents and Shiny Applications:
+
+ Programmatic deployment interface for 'RPubs', 'shinyapps.io', and 'RStudio
+ Connect'. Supported content types include R Markdown documents, Shiny
+ applications, Plumber APIs, plots, and static web content."""
+
+ homepage = "https://github.com/rstudio/rsconnect"
+ cran = "rsconnect"
+
+ version('0.8.17', sha256='64767a4d626395b7871375956a9f0455c3d64ff6e779633b0e554921d85da231')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-curl', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-openssl', type=('build', 'run'))
+ depends_on('r-packrat@0.5:', type=('build', 'run'))
+ depends_on('r-rstudioapi@0.5:', type=('build', 'run'))
+ depends_on('r-yaml@2.1.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rsnns/package.py b/var/spack/repos/builtin/packages/r-rsnns/package.py
index 094efe1729..c9522c3038 100644
--- a/var/spack/repos/builtin/packages/r-rsnns/package.py
+++ b/var/spack/repos/builtin/packages/r-rsnns/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,9 @@ from spack import *
class RRsnns(RPackage):
- """The Stuttgart Neural Network Simulator (SNNS) is a library containing
+ """Neural Networks using the Stuttgart Neural Network Simulator (SNNS)
+
+ The Stuttgart Neural Network Simulator (SNNS) is a library containing
many standard implementations of neural networks. This package wraps the
SNNS functionality to make it available from within R. Using the RSNNS
low-level interface, all of the algorithmic functionality and flexibility
@@ -16,10 +18,11 @@ class RRsnns(RPackage):
high-level interface, so that the most common neural network topologies
and learning algorithms integrate seamlessly into R."""
- homepage = "http://sci2s.ugr.es/dicits/software/RSNNS"
+ homepage = "https://sci2s.ugr.es/dicits/software/RSNNS"
url = "https://cloud.r-project.org/src/contrib/RSNNS_0.4-7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RSNNS"
+ version('0.4-12', sha256='b18dfeda71573bc92c6888af72da407651bff7571967965fd3008f0d331743b9')
version('0.4-11', sha256='87943126e98ae47f366e3025d0f3dc2f5eb0aa2924508fd9ee9a0685d7cb477c')
version('0.4-10.1', sha256='38bb3d172390bd01219332ec834744274b87b01f94d23b29a9d818c2bca04071')
version('0.4-7', sha256='ec941dddda55e4e29ed281bd8768a93d65e0d86d56ecab0f2013c64c8d1a4994')
diff --git a/var/spack/repos/builtin/packages/r-rsolnp/package.py b/var/spack/repos/builtin/packages/r-rsolnp/package.py
index 1180de0f46..85cdb1e5b9 100644
--- a/var/spack/repos/builtin/packages/r-rsolnp/package.py
+++ b/var/spack/repos/builtin/packages/r-rsolnp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-rspectra/package.py b/var/spack/repos/builtin/packages/r-rspectra/package.py
index 8d9958a424..914aa0aacf 100644
--- a/var/spack/repos/builtin/packages/r-rspectra/package.py
+++ b/var/spack/repos/builtin/packages/r-rspectra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRspectra(RPackage):
- """R interface to the 'Spectra' library <https://spectralib.org/> for
+ """Solvers for Large-Scale Eigenvalue and SVD Problems
+
+ R interface to the 'Spectra' library <https://spectralib.org/> for
large-scale eigenvalue and SVD problems. It is typically used to compute a
few eigenvalues/vectors of an n by n matrix, e.g., the k largest
eigenvalues, which is usually more efficient than eigen() if k << n. This
@@ -22,6 +24,7 @@ class RRspectra(RPackage):
url = "https://cloud.r-project.org/src/contrib/RSpectra_0.15-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RSpectra"
+ version('0.16-0', sha256='aaf1cfc9ffe3a4c6684247899924e1c18306971dfef4bae1dc596a2fb42a64a9')
version('0.15-0', sha256='1ad5698201007044a0420cb10b7c48e94312a8a1d22b9d946d5de1c6743969a9')
depends_on('r@3.0.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rsqlite/package.py b/var/spack/repos/builtin/packages/r-rsqlite/package.py
index c09613dcea..b591c0c34b 100644
--- a/var/spack/repos/builtin/packages/r-rsqlite/package.py
+++ b/var/spack/repos/builtin/packages/r-rsqlite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRsqlite(RPackage):
- """This package embeds the SQLite database engine in R and provides an
+ """'SQLite' Interface for R
+
+ This package embeds the SQLite database engine in R and provides an
interface compliant with the DBI package. The source for the SQLite engine
(version 3.8.6) is included."""
@@ -15,14 +17,15 @@ class RRsqlite(RPackage):
url = "https://cloud.r-project.org/src/contrib/RSQLite_2.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/RSQLite"
+ version('2.2.2', sha256='299ceafd4986f60dbca2d705112aa3c29ff68fcbc188d9caaa0493e63a57a873')
version('2.1.2', sha256='66dad425d22b09651c510bf84b7fc36375ce537782f02585cf1c6856ae82d9c6')
version('2.1.0', sha256='ad6081be2885be5921b1a44b1896e6a8568c8cff40789f43bfaac9f818767642')
version('2.0', sha256='7f0fe629f34641c6af1e8a34412f3089ee2d184853843209d97ffe29430ceff6')
depends_on('r@3.1.0:', type=('build', 'run'))
- depends_on('r-dbi@1.0.0:', type=('build', 'run'))
depends_on('r-bit64', type=('build', 'run'))
depends_on('r-blob@1.2.0:', type=('build', 'run'))
+ depends_on('r-dbi@1.0.0:', type=('build', 'run'))
depends_on('r-memoise', type=('build', 'run'))
depends_on('r-pkgconfig', type=('build', 'run'))
depends_on('r-rcpp@0.12.7:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rstan/package.py b/var/spack/repos/builtin/packages/r-rstan/package.py
index 5167998e1e..9b46ab6fb7 100644
--- a/var/spack/repos/builtin/packages/r-rstan/package.py
+++ b/var/spack/repos/builtin/packages/r-rstan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRstan(RPackage):
- """User-facing R functions are provided to parse, compile, test, estimate,
+ """R Interface to Stan
+
+ User-facing R functions are provided to parse, compile, test, estimate,
and analyze Stan models by accessing the header-only Stan library provided
by the 'StanHeaders' package. The Stan project develops a probabilistic
programming language that implements full Bayesian statistical inference
@@ -17,26 +19,35 @@ class RRstan(RPackage):
quickly and accurately evaluate gradients without burdening the user with
the need to derive the partial derivatives."""
- homepage = "http://mc-stan.org/"
+ homepage = "https://mc-stan.org/users/interfaces/rstan"
url = "https://cloud.r-project.org/src/contrib/rstan_2.10.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rstan"
+ version('2.21.2', sha256='e30e04d38a612e2cb3ac69b53eaa19f7ede8b3548bf82f7892a2e9991d46054a')
version('2.19.2', sha256='31e4ceb9c327cd62873225097ffa538c2ac4cb0547c52271e52e4c7652d508da')
version('2.18.2', sha256='4d75dad95610d5a1d1c89a4ddbaf4326462e4ffe0ad28aed2129f2d9292e70ff')
version('2.17.2', sha256='a7b197e6e42f8f0c302da9205afc19a0261eaf6af1425854303d2ce6cbd36729')
version('2.10.1', sha256='4d2040742607f8675633c6b8c0a2e810f2fe3077f9242b1edfd42642613a8294')
- depends_on('r@3.0.2:', when='@:2.17.3', type=('build', 'run'))
+ depends_on('r+X', type=('build', 'run'))
+ depends_on('r@3.0.2:', type=('build', 'run'))
depends_on('r@3.4.0:', when='@2.18.1:', type=('build', 'run'))
depends_on('r-stanheaders@2.18.1:', type=('build', 'run'))
+ depends_on('r-stanheaders@2.21.0:', when='@2.21.2:', type=('build', 'run'))
depends_on('r-ggplot2@2.0.0:', type=('build', 'run'))
+ depends_on('r-ggplot2@3.0.0:', when='@2.21.2:', type=('build', 'run'))
depends_on('r-inline', type=('build', 'run'))
depends_on('r-gridextra@2.0.0:', type=('build', 'run'))
depends_on('r-rcpp@0.12.0:', type=('build', 'run'))
+ depends_on('r-rcppparallel@5.0.1:', when='@2.21.2:', type=('build', 'run'))
depends_on('r-loo@2.0.0:', when='@2.18:', type=('build', 'run'))
+ depends_on('r-loo@2.3.0:', when='@2.21.2:', type=('build', 'run'))
depends_on('r-pkgbuild', when='@2.18:', type=('build', 'run'))
+ depends_on('r-withr', when='@2.21.2:', type=('build', 'run'))
+ depends_on('r-v8', when='@2.21.2:', type=('build', 'run'))
depends_on('r-rcppeigen@0.3.3.3.0:', type=('build', 'run'))
depends_on('r-bh@1.69.0:', type=('build', 'run'))
+ depends_on('r-bh@1.72.0-2:', when='@2.21.2:', type=('build', 'run'))
depends_on('gmake', type='build')
depends_on('pandoc', type='build')
diff --git a/var/spack/repos/builtin/packages/r-rstantools/package.py b/var/spack/repos/builtin/packages/r-rstantools/package.py
index 1566e05de2..cae466b487 100644
--- a/var/spack/repos/builtin/packages/r-rstantools/package.py
+++ b/var/spack/repos/builtin/packages/r-rstantools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,23 @@ from spack import *
class RRstantools(RPackage):
- """rstantools: Tools for Developing R Packages Interfacing with 'Stan'"""
+ """Tools for Developing R Packages Interfacing with 'Stan'
- homepage = "http://discourse.mc-stan.org/"
+ Provides various tools for developers of R packages interfacing with 'Stan'
+ <https://mc-stan.org>, including functions to set up the required package
+ structure, S3 generics and default methods to unify function naming across
+ 'Stan'-based R packages, and vignettes with recommendations for
+ developers."""
+
+ homepage = "https://discourse.mc-stan.org/"
url = "https://cloud.r-project.org/src/contrib/rstantools_1.5.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rstantools"
+ version('2.1.1', sha256='c95b15de8ec577eeb24bb5206e7b685d882f88b5e6902efda924b7217f463d2d')
version('1.5.1', sha256='5cab16c132c12e84bd08e18cd6ef25ba39d67a04ce61015fc4490659c7cfb485')
+ depends_on('r+X', type=('build', 'run'))
+ depends_on('r-desc', when='@2.1.1:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.16:', when='@2.1.1:', type=('build', 'run'))
+ depends_on('r-rcppparallel@5.0.1:', when='@2.1.1:', type=('build', 'run'))
depends_on('pandoc', type='build')
diff --git a/var/spack/repos/builtin/packages/r-rstatix/package.py b/var/spack/repos/builtin/packages/r-rstatix/package.py
new file mode 100644
index 0000000000..e098ce6d02
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rstatix/package.py
@@ -0,0 +1,44 @@
+# Copyright 2013-2021 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 RRstatix(RPackage):
+ """Pipe-Friendly Framework for Basic Statistical Tests
+
+ Provides a simple and intuitive pipe-friendly framework, coherent with the
+ 'tidyverse' design philosophy, for performing basic statistical tests,
+ including t-test, Wilcoxon test, ANOVA, Kruskal-Wallis and correlation
+ analyses. The output of each test is automatically transformed into a tidy
+ data frame to facilitate visualization. Additional functions are available
+ for reshaping, reordering, manipulating and visualizing correlation matrix.
+ Functions are also included to facilitate the analysis of factorial
+ experiments, including purely 'within-Ss' designs (repeated measures),
+ purely 'between-Ss' designs, and mixed 'within-and-between-Ss' designs.
+ It's also possible to compute several effect size metrics, including "eta
+ squared" for ANOVA, "Cohen's d" for t-test and 'Cramer V' for the
+ association between categorical variables. The package contains helper
+ functions for identifying univariate and multivariate outliers, assessing
+ normality and homogeneity of variances."""
+
+ homepage = "https://rpkgs.datanovia.com/rstatix/"
+ url = "https://cloud.r-project.org/src/contrib/rstatix_0.6.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/rstatix"
+
+ version('0.6.0', sha256='ebb28e20c7e28809194a2a027bc83303b17be1e3db32f49325727c9279df9c5b')
+
+ depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r-tidyr@1.0.0:', type=('build', 'run'))
+ depends_on('r-purrr', type=('build', 'run'))
+ depends_on('r-broom@0.5.6:', type=('build', 'run'))
+ depends_on('r-rlang@0.3.1:', type=('build', 'run'))
+ depends_on('r-tibble@2.1.3:', type=('build', 'run'))
+ depends_on('r-dplyr@0.7.1:', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-corrplot', type=('build', 'run'))
+ depends_on('r-tidyselect@1.0.0:', type=('build', 'run'))
+ depends_on('r-car', type=('build', 'run'))
+ depends_on('r-generics@0.0.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rstudioapi/package.py b/var/spack/repos/builtin/packages/r-rstudioapi/package.py
index 07f3919c58..3e2d364c51 100644
--- a/var/spack/repos/builtin/packages/r-rstudioapi/package.py
+++ b/var/spack/repos/builtin/packages/r-rstudioapi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RRstudioapi(RPackage):
- """Access the RStudio API (if available) and provide informative error
+ """Safely Access the RStudio API
+
+ Access the RStudio API (if available) and provide informative error
messages when it's not."""
homepage = "https://cloud.r-project.org/package=rstudioapi"
url = "https://cloud.r-project.org/src/contrib/rstudioapi_0.7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rstudioapi"
+ version('0.13', sha256='aac35bbdcb4a8e8caba943bc8a2b98120e8940b80cd1020224bb1a26ff776d8b')
version('0.11', sha256='13e07fb7e2eba8cf1d885db2721901d676d219a1042d7ef5d166125e4905306b')
version('0.10', sha256='80c5aa3063bcab649904cb92f0b164edffa2f6b0e6a8f7ea28ae317b80e1ab96')
version('0.9.0', sha256='5149a2830ae7134c396ce64764b263cf9f348d4399f53da3804f40d7d5bec13e')
diff --git a/var/spack/repos/builtin/packages/r-rsvd/package.py b/var/spack/repos/builtin/packages/r-rsvd/package.py
index 232cffdb47..aef7d36c83 100644
--- a/var/spack/repos/builtin/packages/r-rsvd/package.py
+++ b/var/spack/repos/builtin/packages/r-rsvd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RRsvd(RPackage):
- """Low-rank matrix decompositions are fundamental tools and widely used for
+ """Randomized Singular Value Decomposition
+
+ Low-rank matrix decompositions are fundamental tools and widely used for
data analysis, dimension reduction, and data compression. Classically,
highly accurate deterministic matrix algorithms are used for this task.
However, the emergence of large-scale data has severely challenged our
@@ -26,6 +28,7 @@ class RRsvd(RPackage):
url = "https://cloud.r-project.org/src/contrib/rsvd_1.0.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rsvd"
+ version('1.0.3', sha256='13560e0fc3ae6927c4cc4d5ad816b1f640a2a445b712a5a612ab17ea0ce179bb')
version('1.0.2', sha256='c8fe5c18bf7bcfe32604a897e3a7caae39b49e47e93edad9e4d07657fc392a3a')
depends_on('r@3.2.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rtracklayer/package.py b/var/spack/repos/builtin/packages/r-rtracklayer/package.py
index 0020bf75b2..fa0c07dea1 100644
--- a/var/spack/repos/builtin/packages/r-rtracklayer/package.py
+++ b/var/spack/repos/builtin/packages/r-rtracklayer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RRtracklayer(RPackage):
- """R interface to genome annotation files and the UCSC genome browser.
+ """R interface to genome annotation files and the UCSC genome browser
Extensible framework for interacting with multiple genome browsers
(currently UCSC built-in) and manipulating annotation tracks in various
@@ -19,6 +19,7 @@ class RRtracklayer(RPackage):
homepage = "https://bioconductor.org/packages/rtracklayer"
git = "https://git.bioconductor.org/packages/rtracklayer.git"
+ version('1.50.0', commit='d2e61f72ff5d5a94c2c487ba108a37f23bfcc1e6')
version('1.44.4', commit='aec96e85daf53b5c5eb2e89250d2755352be4de3')
version('1.42.2', commit='76702f671faea736807d54aeecfbadcd152d94c5')
version('1.40.6', commit='ba9a6e711504a702147383bc7abfcc36eb304df7')
@@ -27,28 +28,27 @@ class RRtracklayer(RPackage):
depends_on('r@3.3:', type=('build', 'run'))
depends_on('r-genomicranges@1.21.20:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.37.2:', when='@1.50.0:', type=('build', 'run'))
depends_on('r-xml@1.98-0:', type=('build', 'run'))
depends_on('r-biocgenerics@0.13.8:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.25.1:', when='@1.40.6:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.35.3:', when='@1.50.0:', type=('build', 'run'))
depends_on('r-s4vectors@0.13.13:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.25:', when='@1.40.6:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.19.22:', when='@1.42.2:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.23.18:', when='@1.50.0:', type=('build', 'run'))
depends_on('r-iranges@2.3.7:', type=('build', 'run'))
+ depends_on('r-iranges@2.11.12:', when='@1.38.3:', type=('build', 'run'))
+ depends_on('r-iranges@2.13.13:', when='@1.40.6:', type=('build', 'run'))
depends_on('r-xvector@0.9.4:', type=('build', 'run'))
+ depends_on('r-xvector@0.19.7:', when='@1.40.6:', type=('build', 'run'))
depends_on('r-genomeinfodb@1.3.14:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.15.2:', when='@1.40.6:', type=('build', 'run'))
depends_on('r-biostrings@2.43.7:', type=('build', 'run'))
+ depends_on('r-biostrings@2.47.6:', when='@1.40.6:', type=('build', 'run'))
depends_on('r-zlibbioc', type=('build', 'run'))
depends_on('r-rcurl@1.4-2:', type=('build', 'run'))
depends_on('r-rsamtools@1.17.8:', type=('build', 'run'))
- depends_on('r-genomicalignments@1.5.4:', type=('build', 'run'))
-
- depends_on('r-iranges@2.11.12:', when='@1.38.3:', type=('build', 'run'))
-
- depends_on('r-genomicranges@1.31.8:', when='@1.40.6:', type=('build', 'run'))
- depends_on('r-biocgenerics@0.25.1:', when='@1.40.6:', type=('build', 'run'))
- depends_on('r-s4vectors@0.17.25:', when='@1.40.6:', type=('build', 'run'))
- depends_on('r-iranges@2.13.13:', when='@1.40.6:', type=('build', 'run'))
- depends_on('r-xvector@0.19.7:', when='@1.40.6:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.15.2:', when='@1.40.6:', type=('build', 'run'))
- depends_on('r-biostrings@2.47.6:', when='@1.40.6:', type=('build', 'run'))
depends_on('r-rsamtools@1.31.2:', when='@1.40.6:', type=('build', 'run'))
+ depends_on('r-genomicalignments@1.5.4:', type=('build', 'run'))
depends_on('r-genomicalignments@1.15.6:', when='@1.40.6:', type=('build', 'run'))
-
- depends_on('r-s4vectors@0.19.22:', when='@1.42.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rtsne/package.py b/var/spack/repos/builtin/packages/r-rtsne/package.py
index f0acd005fc..8567606c69 100644
--- a/var/spack/repos/builtin/packages/r-rtsne/package.py
+++ b/var/spack/repos/builtin/packages/r-rtsne/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-runit/package.py b/var/spack/repos/builtin/packages/r-runit/package.py
index e922f74fdf..14028a5ca5 100644
--- a/var/spack/repos/builtin/packages/r-runit/package.py
+++ b/var/spack/repos/builtin/packages/r-runit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-runjags/package.py b/var/spack/repos/builtin/packages/r-runjags/package.py
new file mode 100644
index 0000000000..32ace970fb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-runjags/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 RRunjags(RPackage):
+ """Interface Utilities, Model Templates, Parallel Computing Methods and
+ Additional Distributions for MCMC Models in JAGS:
+
+ User-friendly interface utilities for MCMC models via Just Another Gibbs
+ Sampler (JAGS), facilitating the use of parallel (or distributed)
+ processors for multiple chains, automated control of convergence and sample
+ length diagnostics, and evaluation of the performance of a model using
+ drop-k validation or against simulated data. Template model specifications
+ can be generated using a standard lme4-style formula interface to assist
+ users less familiar with the BUGS syntax. A JAGS extension module provides
+ additional distributions including the Pareto family of distributions, the
+ DuMouchel prior and the half-Cauchy prior."""
+
+ homepage = "https://github.com/ku-awdc/runjags"
+ cran = "runjags"
+
+ version('2.2.0-2', sha256='e5dfeb83d36faf19ebe64429f6db64aedecf3c9a040fd5bf9c0200914bf5039a')
+
+ depends_on('r@2.14.0:', type=('build', 'run'))
+ depends_on('r-lattice@0.20-10:', type=('build', 'run'))
+ depends_on('r-coda@0.17-1:', type=('build', 'run'))
+ depends_on('jags@4.3.0:')
diff --git a/var/spack/repos/builtin/packages/r-ruv/package.py b/var/spack/repos/builtin/packages/r-ruv/package.py
new file mode 100644
index 0000000000..da1b3ddc0b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-ruv/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 RRuv(RPackage):
+ """Detect and Remove Unwanted Variation using Negative Controls:
+
+ Implements the 'RUV' (Remove Unwanted Variation) algorithms. These
+ algorithms attempt to adjust for systematic errors of unknown origin in
+ high-dimensional data. The algorithms were originally developed for use
+ with genomic data, especially microarray data, but may be useful with other
+ types of high-dimensional data as well. These algorithms were proposed in
+ Gagnon-Bartsch and Speed (2012) <doi:10.1093/nar/gkz433>, Gagnon-Bartsch,
+ Jacob and Speed (2013), and Molania, et. al. (2019)
+ <doi:10.1093/nar/gkz433>. The algorithms require the user to specify a set
+ of negative control variables, as described in the references. The
+ algorithms included in this package are 'RUV-2', 'RUV-4', 'RUV-inv',
+ 'RUV-rinv', 'RUV-I', and RUV-III', along with various supporting
+ algorithms."""
+
+ homepage = "http://www-personal.umich.edu/~johanngb/ruv/"
+ cran = "ruv"
+
+ version('0.9.7.1', sha256='a0c54e56ba3d8f6ae178ae4d0e417a79295abf5dcb68bbae26c4b874734d98d8')
+
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
+ depends_on('r-gridextra', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rvcheck/package.py b/var/spack/repos/builtin/packages/r-rvcheck/package.py
index 33bfef6de5..a9260acc34 100644
--- a/var/spack/repos/builtin/packages/r-rvcheck/package.py
+++ b/var/spack/repos/builtin/packages/r-rvcheck/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,20 @@ from spack import *
class RRvcheck(RPackage):
- """Check latest release version of R and R package (both in 'CRAN',
+ """R/Package Version Check
+
+ Check latest release version of R and R package (both in 'CRAN',
'Bioconductor' or 'Github')."""
homepage = "https://cloud.r-project.org/package=rvcheck"
url = "https://cloud.r-project.org/src/contrib/rvcheck_0.0.9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rvcheck"
+ version('0.1.8', sha256='4ca5aa48fbf543e6171696ca7e1bff81e3112d06c919e88769b5c38a115b4718')
version('0.1.3', sha256='0b59986c1ccc5b89f8aca8fa7cf62d0b875719addb40e08dbda1791cfd334fc4')
version('0.0.9', sha256='6e7be7b029d28181a1b57ebd4d25978f3459722ffdb45a3698157a7f943bea92')
depends_on('r@3.3.0:', when='@:0.1.1', type=('build', 'run'))
depends_on('r@3.4.0:', when='@0.1.3:', type=('build', 'run'))
+ depends_on('r-biocmanager', when='@0.1.8:', type=('build', 'run'))
depends_on('r-rlang', when='@0.1.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rversions/package.py b/var/spack/repos/builtin/packages/r-rversions/package.py
index 7d0224fd90..c4a7a17cf6 100644
--- a/var/spack/repos/builtin/packages/r-rversions/package.py
+++ b/var/spack/repos/builtin/packages/r-rversions/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,17 @@ from spack import *
class RRversions(RPackage):
- """Query the main 'R' 'SVN' repository to find the versions
- 'r-release' and 'r-oldrel' refer to, and also all previous 'R'
- versions and their release dates.
- """
+ """Query 'R' Versions, Including 'r-release' and 'r-oldrel'
+
+ Query the main 'R' 'SVN' repository to find the versions 'r-release' and
+ 'r-oldrel' refer to, and also all previous 'R' versions and their release
+ dates."""
homepage = "https://cloud.r-project.org/package=rversions"
url = "https://cloud.r-project.org/src/contrib/rversions_2.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rversions"
+ version('2.0.2', sha256='3523f4b7393365341d429500b01ba3a224056e89d134635b81dfb4918ba2173e')
version('2.0.1', sha256='51ec1f64e7d628e88d716a020d5d521eba71d472e3c9ae7b694428ef6dd786c5')
version('2.0.0', sha256='b50c321d9e973284ae6b1d0c89bd46a40f5174de51fb28e3c77cd12ef34f6f56')
version('1.1.0', sha256='14a5a2f06b74e332fd9cbd4d715baa6165f5269c9ba2c0b9f1d0c6540dde9c3c')
diff --git a/var/spack/repos/builtin/packages/r-rvest/package.py b/var/spack/repos/builtin/packages/r-rvest/package.py
index 96de5d7090..9e6db8fe9b 100644
--- a/var/spack/repos/builtin/packages/r-rvest/package.py
+++ b/var/spack/repos/builtin/packages/r-rvest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RRvest(RPackage):
- """Wrappers around the 'xml2' and 'httr' packages to make it easy to
- download, then manipulate, HTML and XML."""
+ """Easily Harvest (Scrape) Web Pages
+
+ Wrappers around the 'xml2' and 'httr' packages to make it easy to download,
+ then manipulate, HTML and XML."""
homepage = "https://github.com/hadley/rvest"
url = "https://cloud.r-project.org/src/contrib/rvest_0.3.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rvest"
+ version('0.3.6', sha256='6a2ee3a25d2d738031edbc1b5e2410f2a4538dfbb9705af145f9039504b902fa')
version('0.3.4', sha256='413e171b9e89b7dc4e8b41165027cf19eb97cd73e149c252237bbdf0d0a4254a')
version('0.3.3', sha256='b10a87fa2d733f7c0fc567242ef0ab10a1a77d58d51796996cc0fd81381a556f')
version('0.3.2', sha256='0d6e8837fb1df79b1c83e7b48d8f1e6245f34a10c4bb6952e7bec7867e4abb12')
@@ -23,5 +26,5 @@ class RRvest(RPackage):
depends_on('r@3.2:', when='@0.3.4:', type=('build', 'run'))
depends_on('r-xml2', type=('build', 'run'))
depends_on('r-httr@0.5:', type=('build', 'run'))
- depends_on('r-selectr', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-selectr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rviennacl/package.py b/var/spack/repos/builtin/packages/r-rviennacl/package.py
new file mode 100644
index 0000000000..79bc908625
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-rviennacl/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2021 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 RRviennacl(RPackage):
+ """RViennaCL: 'ViennaCL' C++ Header Files"""
+
+ homepage = "https://cloud.r-project.org/package=RViennaCL"
+ url = "https://cloud.r-project.org/src/contrib/RViennaCL_1.7.1.8.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/RViennaCL"
+
+ version('1.7.1.8', sha256='adcc74537337582153d5b11d281e391e91a7f3afae116aa1b9a034ffd11b0252')
diff --git a/var/spack/repos/builtin/packages/r-rzmq/package.py b/var/spack/repos/builtin/packages/r-rzmq/package.py
index 68b46c102d..f2c8657a42 100644
--- a/var/spack/repos/builtin/packages/r-rzmq/package.py
+++ b/var/spack/repos/builtin/packages/r-rzmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,12 +8,16 @@ from spack import *
class RRzmq(RPackage):
- """Interface to the ZeroMQ lightweight messaging kernel."""
+ """R Bindings for 'ZeroMQ'
- homepage = "http://github.com/armstrtw/rzmq"
+ Interface to the 'ZeroMQ' lightweight messaging kernel (see
+ <http://www.zeromq.org/> for more information)."""
+
+ homepage = "https://github.com/armstrtw/rzmq"
url = "https://cloud.r-project.org/src/contrib/rzmq_0.7.7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/rzmq"
+ version('0.9.7', sha256='5f47b67b75fd4a230780406f7a55a3708ce8c014cff755a809a6bfa1a6925a45')
version('0.9.6', sha256='80a3fc6eb6f7851224c4cd5e219ca4db0286551ad429359d4df853ccb9234316')
version('0.9.4', sha256='03fbda756d823c11fba359b94a6213c3440e61973331668eaac35779717f73ad')
version('0.7.7', sha256='bdbaf77a0e04c5b6d6ce79ab2747848a5044355eed2e2c4d39c4ba16f97dc83d')
diff --git a/var/spack/repos/builtin/packages/r-s2/package.py b/var/spack/repos/builtin/packages/r-s2/package.py
new file mode 100644
index 0000000000..55c928466b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-s2/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RS2(RPackage):
+ """Spherical Geometry Operators Using the S2 Geometry Library
+
+ Provides R bindings for Google's s2 library for geometric calculations on
+ the sphere. High-performance constructors and exporters provide high
+ compatibility with existing spatial packages, transformers construct new
+ geometries from existing geometries, predicates provide a means to select
+ geometries based on spatial relationships, and accessors extract
+ information about geometries."""
+
+ homepage = "https://r-spatial.github.io/s2/"
+ cran = "s2"
+
+ version('1.0.4', sha256='3c274ebae33aa5473f94afb3066c6f388aced17ff3b5f6add9edcc9af22b985e')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-wk', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-s4vectors/package.py b/var/spack/repos/builtin/packages/r-s4vectors/package.py
index 909b33bb2e..b15c954cfa 100644
--- a/var/spack/repos/builtin/packages/r-s4vectors/package.py
+++ b/var/spack/repos/builtin/packages/r-s4vectors/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RS4vectors(RPackage):
- """Foundation of vector-like and list-like containers in Bioconductor.
+ """Foundation of vector-like and list-like containers in Bioconductor
The S4Vectors package defines the Vector and List virtual classes and a
set of generic functions that extend the semantic of ordinary vectors
@@ -21,6 +21,7 @@ class RS4vectors(RPackage):
homepage = "https://bioconductor.org/packages/S4Vectors"
git = "https://git.bioconductor.org/packages/S4Vectors.git"
+ version('0.28.1', commit='994cb7ef830e76f8b43169cc72b553869fafb2ed')
version('0.26.1', commit='935769c')
version('0.22.1', commit='d25e517b48ca4184a4c2ee1f8223c148a55a8b8a')
version('0.20.1', commit='1878b2909086941e556c5ea953c6fd86aebe9b02')
@@ -29,7 +30,8 @@ class RS4vectors(RPackage):
version('0.14.7', commit='40af17fe0b8e93b6a72fc787540d2961773b8e23')
depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r@4.0.0:', when='@0.28.1:', type=('build', 'run'))
depends_on('r-biocgenerics@0.21.1:', type=('build', 'run'))
-
depends_on('r-biocgenerics@0.23.3:', when='@0.16.0:0.22.1', type=('build', 'run'))
depends_on('r-biocgenerics@0.31.1:', when='@0.26.1:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.36.0:', when='@0.28.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-samr/package.py b/var/spack/repos/builtin/packages/r-samr/package.py
index d776f6b10b..ac58cdf705 100644
--- a/var/spack/repos/builtin/packages/r-samr/package.py
+++ b/var/spack/repos/builtin/packages/r-samr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-sandwich/package.py b/var/spack/repos/builtin/packages/r-sandwich/package.py
index 4afd68d4a6..fac08e3587 100644
--- a/var/spack/repos/builtin/packages/r-sandwich/package.py
+++ b/var/spack/repos/builtin/packages/r-sandwich/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,31 @@ from spack import *
class RSandwich(RPackage):
- """Model-robust standard error estimators for cross-sectional, time series,
- and longitudinal data."""
+ """Robust Covariance Matrix Estimators
+
+ Object-oriented software for model-robust covariance matrix estimators.
+ Starting out from the basic robust Eicker-Huber-White sandwich covariance
+ methods include: heteroscedasticity-consistent (HC) covariances for
+ cross-section data; heteroscedasticity- and autocorrelation-consistent
+ (HAC) covariances for time series data (such as Andrews' kernel HAC,
+ Newey-West, and WEAVE estimators); clustered covariances (one-way and
+ multi-way); panel and panel-corrected covariances;
+ outer-product-of-gradients covariances; and (clustered) bootstrap
+ covariances. All methods are applicable to (generalized) linear model
+ objects fitted by lm() and glm() but can also be adapted to other classes
+ through S3 methods. Details can be found in Zeileis et al. (2020)
+ <doi:10.18637/jss.v095.i01>, Zeileis (2004) <doi:10.18637/jss.v011.i10> and
+ Zeileis (2006) <doi:10.18637/jss.v016.i09>."""
homepage = "https://cloud.r-project.org/package=sandwich"
url = "https://cloud.r-project.org/src/contrib/sandwich_2.3-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/sandwich"
+ version('3.0-0', sha256='828fe53b5e09db5015efd529b2db4dcd40251bce110fea7b0b219fa9ac36d529')
version('2.5-1', sha256='dbef6f4d12b83e166f9a2508b7c732b04493641685d6758d29f3609e564166d6')
version('2.5-0', sha256='6cc144af20739eb23e5539010d3833d7c7fc53cbca2addb583ab933167c11399')
version('2.3-4', sha256='2052f7e3d19a05c372f422c5480f1058a4107e420cd038a9bd7240c4f0746d4d')
depends_on('r@2.10.0:', type=('build', 'run'))
+ depends_on('r@3.0.0:', when='@3.0-0:', type=('build', 'run'))
depends_on('r-zoo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-satellite/package.py b/var/spack/repos/builtin/packages/r-satellite/package.py
new file mode 100644
index 0000000000..9c0e604d4c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-satellite/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 RSatellite(RPackage):
+ """Handling and Manipulating Remote Sensing Data
+
+ Herein, we provide a broad variety of functions which are useful for
+ handling, manipulating, and visualizing satellite-based remote sensing
+ data. These operations range from mere data import and layer handling (eg
+ subsetting), over Raster* typical data wrangling (eg crop, extend), to more
+ sophisticated (pre-)processing tasks typically applied to satellite imagery
+ (eg atmospheric and topographic correction). This functionality is
+ complemented by a full access to the satellite layers' metadata at any
+ stage and the documentation of performed actions in a separate log file.
+ Currently available sensors include Landsat 4-5 (TM), 7 (ETM+), and 8
+ (OLI/TIRS Combined), and additional compatibility is ensured for the
+ Landsat Global Land Survey data set."""
+
+ cran = "satellite"
+
+ version('1.0.2', sha256='6447476bd31216e5abe504221e465677954d07419b4174ab4f4e4f7a197969c5')
+
+ depends_on('r@2.10:', type=('build', 'run'))
+ depends_on('r-raster', type=('build', 'run'))
+ depends_on('r-plyr', type=('build', 'run'))
+ depends_on('r-rcpp@0.10.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-scales/package.py b/var/spack/repos/builtin/packages/r-scales/package.py
index 4949d18917..31a07fecce 100644
--- a/var/spack/repos/builtin/packages/r-scales/package.py
+++ b/var/spack/repos/builtin/packages/r-scales/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,25 +7,31 @@ from spack import *
class RScales(RPackage):
- """Graphical scales map data to aesthetics, and provide methods for
+ """Scale Functions for Visualization
+
+ Graphical scales map data to aesthetics, and provide methods for
automatically determining breaks and labels for axes and legends."""
homepage = "https://github.com/hadley/scales"
url = "https://cloud.r-project.org/src/contrib/scales_0.5.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/scales"
+ version('1.1.1', sha256='40b2b66522f1f314a20fd09426011b0cdc9d16b23ee2e765fe1930292dd03705')
version('1.0.0', sha256='0c1f4a14edd336a404da34a3cc71a6a9d0ca2040ba19360c41a79f36e06ca30c')
version('0.5.0', sha256='dbfcc0817c4ab8b8777ec7d68ebfe220177c193cfb5bd0e8ba5d365dbfe3e97d')
version('0.4.1', sha256='642b88fb1fce7bac72a0038ce532b65b8a79dffe826fec25033cf386ab630cd3')
version('0.4.0', sha256='851ef6136339b361b3f843fb73ea89f9112279b9cc126bdb38acde8d24c1c6a7')
- depends_on('r@2.13:', when='@:0.5.0', type=('build', 'run'))
+ depends_on('r@2.13:', type=('build', 'run'))
depends_on('r@3.1:', when='@1.0.0:', type=('build', 'run'))
- depends_on('r-rcolorbrewer', type=('build', 'run'))
- depends_on('r-dichromat', when='@:0.5.0', type=('build', 'run'))
- depends_on('r-plyr', when='@:0.5.0', type=('build', 'run'))
- depends_on('r-munsell@0.5:', type=('build', 'run'))
+ depends_on('r@3.2:', when='@1.1.1:', type=('build', 'run'))
+ depends_on('r-farver@2.0.3:', when='@1.1.1:', type=('build', 'run'))
depends_on('r-labeling', type=('build', 'run'))
- depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@1.1.1:', type=('build', 'run'))
+ depends_on('r-munsell@0.5:', type=('build', 'run'))
depends_on('r-r6', type=('build', 'run'))
+ depends_on('r-rcolorbrewer', type=('build', 'run'))
depends_on('r-viridislite', type=('build', 'run'))
+ depends_on('r-dichromat', when='@:0.5.0', type=('build', 'run'))
+ depends_on('r-plyr', when='@:0.5.0', type=('build', 'run'))
+ depends_on('r-rcpp', when='@:1.0.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-scater/package.py b/var/spack/repos/builtin/packages/r-scater/package.py
index ca8d49f67e..eb0dfab9a1 100644
--- a/var/spack/repos/builtin/packages/r-scater/package.py
+++ b/var/spack/repos/builtin/packages/r-scater/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RScater(RPackage):
- """Single-Cell Analysis Toolkit for Gene Expression Data in R.
+ """Single-Cell Analysis Toolkit for Gene Expression Data in R
A collection of tools for doing various analyses of single-cell RNA-seq
gene expression data, with a focus on quality control and
@@ -16,6 +16,7 @@ class RScater(RPackage):
homepage = "https://bioconductor.org/packages/scater"
git = "https://git.bioconductor.org/packages/scater.git"
+ version('1.18.3', commit='a94e7f413bf0f5f527b41b0b34e7a8e5c947ae37')
version('1.12.2', commit='1518dc27a87c79181c34107d639e95fe55e55092')
version('1.10.1', commit='2e6694af2929092f263c2b0830d48b3f9632e70c')
version('1.8.4', commit='d560a9a378541d53d17990d2aa2cd28874df3dcd')
@@ -23,16 +24,31 @@ class RScater(RPackage):
version('1.4.0', commit='90a2eab66ff82ba6dd7fbb33e41cd0ded20fa218')
depends_on('r@3.3:', when='@1.4.0', type=('build', 'run'))
- depends_on('r-biobase', when='@1.4.0:1.8.4', type=('build', 'run'))
+ depends_on('r@3.4:', when='@1.6.3', type=('build', 'run'))
+ depends_on('r@3.5:', when='@1.8.4', type=('build', 'run'))
+ depends_on('r@3.6:', when='@1.12.2', type=('build', 'run'))
+ depends_on('r-singlecellexperiment', when='@1.6.3:', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
- depends_on('r-biomart', when='@1.4.0:1.6.3', type=('build', 'run'))
+ depends_on('r-gridextra', when='@1.18.3:', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
depends_on('r-biocgenerics', type=('build', 'run'))
+ depends_on('r-s4vectors', when='@1.6.3:', type=('build', 'run'))
+ depends_on('r-summarizedexperiment', when='@1.6.3:', type=('build', 'run'))
+ depends_on('r-delayedarray', when='@1.8.4:', type=('build', 'run'))
+ depends_on('r-delayedmatrixstats', when='@1.8.4:', type=('build', 'run'))
+ depends_on('r-biocneighbors', when='@1.12.2:', type=('build', 'run'))
+ depends_on('r-biocsingular', when='@1.12.2:', type=('build', 'run'))
+ depends_on('r-biocparallel', when='@1.10.1:', type=('build', 'run'))
+ depends_on('r-scuttle', when='@1.18.3:', type=('build', 'run'))
+ depends_on('r-rlang', when='@1.18.3:', type=('build', 'run'))
+ depends_on('r-ggbeeswarm', type=('build', 'run'))
+ depends_on('r-viridis', type=('build', 'run'))
+ depends_on('r-biobase', when='@1.4.0:1.8.4', type=('build', 'run'))
+ depends_on('r-biomart', when='@1.4.0:1.6.3', type=('build', 'run'))
depends_on('r-data-table', when='@1.4.0:1.6.3', type=('build', 'run'))
depends_on('r-dplyr', when='@1.4.0:1.12.2', type=('build', 'run'))
depends_on('r-edger', when='@1.4.0:1.8.4', type=('build', 'run'))
- depends_on('r-ggbeeswarm', type=('build', 'run'))
depends_on('r-limma', when='@1.4.0:1.8.4', type=('build', 'run'))
- depends_on('r-matrix', type=('build', 'run'))
depends_on('r-matrixstats', when='@1.4.0:1.6.3', type=('build', 'run'))
depends_on('r-plyr', when='@1.4.0:1.8.4', type=('build', 'run'))
depends_on('r-reshape2', when='@1.4.0:1.10.1', type=('build', 'run'))
@@ -41,23 +57,7 @@ class RScater(RPackage):
depends_on('r-shiny', when='@1.4.0:1.8.4', type=('build', 'run'))
depends_on('r-shinydashboard', when='@1.4.0:1.8.4', type=('build', 'run'))
depends_on('r-tximport', when='@1.4.0:1.8.4', type=('build', 'run'))
- depends_on('r-viridis', type=('build', 'run'))
-
- depends_on('r@3.4:', when='@1.6.3', type=('build', 'run'))
- depends_on('r-singlecellexperiment', when='@1.6.3:', type=('build', 'run'))
- depends_on('r-summarizedexperiment', when='@1.6.3:', type=('build', 'run'))
- depends_on('r-s4vectors', when='@1.6.3:', type=('build', 'run'))
- depends_on('r-rcpp', when='@1.6.3:', type=('build', 'run'))
+ depends_on('r-rcpp', when='@1.6.3:1.12.2', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.14:', when='@1.8.4:1.12.2', type=('build', 'run'))
depends_on('r-rhdf5lib', when='@1.6.3:1.10.1', type=('build', 'run'))
- depends_on('r-beachmat', when='@1.6.3:', type=('build', 'run'))
-
- depends_on('r@3.5:', when='@1.8.4', type=('build', 'run'))
- depends_on('r-delayedmatrixstats', when='@1.8.4:', type=('build', 'run'))
- depends_on('r-rcpp@0.12.14:', when='@1.8.4:', type=('build', 'run'))
- depends_on('r-delayedarray', when='@1.8.4:', type=('build', 'run'))
-
- depends_on('r-biocparallel', when='@1.10.1:', type=('build', 'run'))
-
- depends_on('r@3.6:', when='@1.12.2', type=('build', 'run'))
- depends_on('r-biocneighbors', when='@1.12.2:', type=('build', 'run'))
- depends_on('r-biocsingular', when='@1.12.2:', type=('build', 'run'))
+ depends_on('r-beachmat', when='@1.6.3:1.12.2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-scattermore/package.py b/var/spack/repos/builtin/packages/r-scattermore/package.py
new file mode 100644
index 0000000000..f122580b21
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-scattermore/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RScattermore(RPackage):
+ """Scatterplots with More Points
+
+ C-based conversion of large scatterplot data to rasters. Speeds up plotting
+ of data with millions of points."""
+
+ homepage = "https://github.com/exaexa/scattermore"
+ url = "https://cloud.r-project.org/src/contrib/scattermore_0.7.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/scattermore"
+
+ version('0.7', sha256='f36280197b8476314d6ce81a51c4ae737180b180204043d2937bc25bf3a5dfa2')
+
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-scatterpie/package.py b/var/spack/repos/builtin/packages/r-scatterpie/package.py
new file mode 100644
index 0000000000..5b19e86cb4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-scatterpie/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 RScatterpie(RPackage):
+ """Scatter Pie Plot
+
+ Creates scatterpie plots, especially useful for plotting pies on a map."""
+
+ homepage = "https://cloud.r-project.org/package=scatterpie"
+ url = "https://cloud.r-project.org/src/contrib/scatterpie_0.1.5.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/scatterpie"
+
+ version('0.1.5', sha256='e13237b7effc302acafc1c9b520b4904e55875f4a3b804f653eed2940ca08840')
+
+ depends_on('r@3.4.0:', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-ggforce', type=('build', 'run'))
+ depends_on('r-rlang', type=('build', 'run'))
+ depends_on('r-rvcheck', type=('build', 'run'))
+ depends_on('r-tidyr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-scatterplot3d/package.py b/var/spack/repos/builtin/packages/r-scatterplot3d/package.py
index c624cc62e2..8b0bb8d3be 100644
--- a/var/spack/repos/builtin/packages/r-scatterplot3d/package.py
+++ b/var/spack/repos/builtin/packages/r-scatterplot3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-scrime/package.py b/var/spack/repos/builtin/packages/r-scrime/package.py
index 6f839435ed..4bcf65391a 100644
--- a/var/spack/repos/builtin/packages/r-scrime/package.py
+++ b/var/spack/repos/builtin/packages/r-scrime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-sctransform/package.py b/var/spack/repos/builtin/packages/r-sctransform/package.py
index 65d733fe25..eb1db61341 100644
--- a/var/spack/repos/builtin/packages/r-sctransform/package.py
+++ b/var/spack/repos/builtin/packages/r-sctransform/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RSctransform(RPackage):
- """A normalization method for single-cell UMI count data using a variance
+ """Variance Stabilizing Transformations for Single Cell UMI Data
+
+ A normalization method for single-cell UMI count data using a variance
stabilizing transformation. The transformation is based on a negative
binomial regression model with regularized parameters. As part of the same
regression framework, this package also provides functions for batch
@@ -18,15 +20,19 @@ class RSctransform(RPackage):
url = "https://cloud.r-project.org/src/contrib/sctransform_0.2.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/sctransform"
+ version('0.3.2', sha256='5dbb0a045e514c19f51bbe11c2dba0b72dca1942d6eb044c36b0538b443475dc')
version('0.2.0', sha256='d7f4c7958693823454f1426b23b0e1e9c207ad61a7a228602a1885a1318eb3e4')
depends_on('r@3.0.2:', type=('build', 'run'))
+ depends_on('r@3.1.0:', when='@0.3.2:', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
- depends_on('r-future', type=('build', 'run'))
depends_on('r-future-apply', type=('build', 'run'))
+ depends_on('r-future', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
depends_on('r-reshape2', type=('build', 'run'))
depends_on('r-gridextra', type=('build', 'run'))
+ depends_on('r-matrixstats', when='@0.3.2:', type=('build', 'run'))
+ depends_on('r-rcpparmadillo', when='@0.3.2:', type=('build', 'run'))
depends_on('r-rcpp@0.11.0:', type=('build', 'run'))
- depends_on('r-rcppeigen', type=('build', 'run'))
+ depends_on('r-rcppeigen', when='@:0.2.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-scuttle/package.py b/var/spack/repos/builtin/packages/r-scuttle/package.py
new file mode 100644
index 0000000000..5646ad08f2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-scuttle/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2021 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 RScuttle(RPackage):
+ """Single-Cell RNA-Seq Analysis Utilities
+
+ Provides basic utility functions for performing single-cell analyses,
+ focusing on simple normalization, quality control and data transformations.
+ Also provides some helper functions to assist development of other
+ packages."""
+
+ homepage = "https://bioconductor.org/packages/scuttle/"
+ git = "https://git.bioconductor.org/packages/scuttle"
+
+ version('1.0.4', commit='a827e2759d80e6c3510e2f8fd4bd680274206d9f')
+
+ depends_on('r-singlecellexperiment', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-biocgenerics', type=('build', 'run'))
+ depends_on('r-s4vectors', type=('build', 'run'))
+ depends_on('r-biocparallel', type=('build', 'run'))
+ depends_on('r-genomicranges', type=('build', 'run'))
+ depends_on('r-summarizedexperiment', type=('build', 'run'))
+ depends_on('r-delayedarray', type=('build', 'run'))
+ depends_on('r-delayedmatrixstats', type=('build', 'run'))
+ depends_on('r-beachmat', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-sdmtools/package.py b/var/spack/repos/builtin/packages/r-sdmtools/package.py
index 1d46c4961a..121ce8af19 100644
--- a/var/spack/repos/builtin/packages/r-sdmtools/package.py
+++ b/var/spack/repos/builtin/packages/r-sdmtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,12 +11,21 @@ class RSdmtools(RPackage):
associated with species distribution modelling exercises
This packages provides a set of tools for post processing the outcomes of
- species distribution modeling exercises."""
+ species distribution modeling exercises. It includes novel methods for
+ comparing models and tracking changes in distributions through time. It
+ further includes methods for visualizing outcomes, selecting thresholds,
+ calculating measures of accuracy and landscape fragmentation statistics,
+ etc.. This package was made possible in part by financial support from the
+ Australian Research Council & ARC Research Network for Earth System
+ Science."""
homepage = "https://cloud.r-project.org/package=SDMTools"
url = "https://cloud.r-project.org/src/contrib/SDMTools_1.1-221.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/SDMTools"
+ # This package was removed from CRAN on 2020-01-12
+ # The spack recipe contains the latest version available from the archives
+ version('1.1-221.2', sha256='f0dd8c5f98d2f2c012536fa56d8f7a58aaf0c11cbe3527e66d4ee3194f6a6cf7')
version('1.1-221.1', sha256='3825856263bdb648ca018b27dc6ab8ceaef24691215c197f8d5cd17718b54fbb')
version('1.1-221', sha256='a6da297a670f756ee964ffd99c3b212c55c297d385583fd0e767435dd5cd4ccd')
version('1.1-20', sha256='d6a261ce8f487d5d03b1931039f528f2eb50fb9386e7aae40045c966ff6d4182')
diff --git a/var/spack/repos/builtin/packages/r-segmented/package.py b/var/spack/repos/builtin/packages/r-segmented/package.py
index 922c779b57..9e7b4e7313 100644
--- a/var/spack/repos/builtin/packages/r-segmented/package.py
+++ b/var/spack/repos/builtin/packages/r-segmented/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,22 @@ from spack import *
class RSegmented(RPackage):
- """Given a regression model, segmented 'updates' the model by adding
- one or more segmented (i.e., piecewise-linear) relationships. Several
- variables with multiple breakpoints are allowed."""
+ """Regression Models with Break-Points / Change-Points Estimation
+
+ Given a regression model, segmented 'updates' it by adding one or more
+ segmented (i.e., piece-wise linear) relationships. Several variables with
+ multiple breakpoints are allowed. The estimation method is discussed in
+ Muggeo (2003, <doi:10.1002/sim.1545>) and illustrated in Muggeo (2008,
+ <https://www.r-project.org/doc/Rnews/Rnews_2008-1.pdf>). An approach for
+ hypothesis testing is presented in Muggeo (2016,
+ <doi:10.1080/00949655.2016.1149855>), and interval estimation for the
+ breakpoint is discussed in Muggeo (2017, <doi:10.1111/anzs.12200>)."""
homepage = "https://cloud.r-project.org/package=segmented"
url = "https://cloud.r-project.org/src/contrib/segmented_0.5-1.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/segmented"
+ version('1.3-1', sha256='b9b6e82bf72f108c69cb8fa01bd02fb99946c73ca3c8c2f8ae0abb1f460c143d')
version('1.0-0', sha256='eeadc89b4bb4744bbd1e4e6c3b6536ff96fc7ee09016228dfdc0a8ebdc74fac5')
version('0.5-4.0', sha256='7ff63a19915cbd1e190d3a4875892b4c7bd97890b0dc2909126348a19aec4071')
version('0.5-2.2', sha256='3aa7136370dd77911ba8e061b5215560d120bc71f355eeadc0856389dfecb2f1')
diff --git a/var/spack/repos/builtin/packages/r-selectr/package.py b/var/spack/repos/builtin/packages/r-selectr/package.py
index 5f306470c2..c1bdb1031d 100644
--- a/var/spack/repos/builtin/packages/r-selectr/package.py
+++ b/var/spack/repos/builtin/packages/r-selectr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,19 @@ from spack import *
class RSelectr(RPackage):
- """Translates a CSS3 selector into an equivalent XPath expression. This
- allows us to use CSS selectors when working with the XML package as it
- can only evaluate XPath expressions. Also provided are convenience
- functions useful for using CSS selectors on XML nodes. This package
- is a port of the Python package 'cssselect'
- (<https://pythonhosted.org/cssselect/>)."""
+ """Translate CSS Selectors to XPath Expressions
+
+ Translates a CSS3 selector into an equivalent XPath expression. This allows
+ us to use CSS selectors when working with the XML package as it can only
+ evaluate XPath expressions. Also provided are convenience functions useful
+ for using CSS selectors on XML nodes. This package is a port of the Python
+ package 'cssselect' (<https://cssselect.readthedocs.io/>)."""
homepage = "https://sjp.co.nz/projects/selectr"
url = "https://cloud.r-project.org/src/contrib/selectr_0.3-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/selectr"
+ version('0.4-2', sha256='5588aed05f3f5ee63c0d29953ef53da5dac7afccfdd04b7b22ef24e1e3b0c127')
version('0.4-1', sha256='8bd42f167629344e485e586f9b05fed342746132489079084d82133d7b3ee2ca')
version('0.4-0', sha256='40cd51bfe499954b300742c49f92167a68964b974268a7f47ca8864f32020ece')
version('0.3-1', sha256='db4f7ceea4b522a54c3ae7709787b0b7fcf389c5d945c5a278e3625388218949')
diff --git a/var/spack/repos/builtin/packages/r-seqinr/package.py b/var/spack/repos/builtin/packages/r-seqinr/package.py
index 5d3a46fe70..576fc1dab7 100644
--- a/var/spack/repos/builtin/packages/r-seqinr/package.py
+++ b/var/spack/repos/builtin/packages/r-seqinr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,18 @@ from spack import *
class RSeqinr(RPackage):
- """Exploratory data analysis and data visualization for biological
- sequence (DNA and protein) data. Includes also utilities for sequence
- data management under the ACNUC system."""
+ """Biological Sequences Retrieval and Analysis
- homepage = "http://seqinr.r-forge.r-project.org"
+ Exploratory data analysis and data visualization for biological sequence
+ (DNA and protein) data. Seqinr includes utilities for sequence data
+ management under the ACNUC system described in Gouy, M. et al. (1984)
+ Nucleic Acids Res. 12:121-127 <doi:10.1093/nar/12.1Part1.121>."""
+
+ homepage = "https://seqinr.r-forge.r-project.org"
url = "https://cloud.r-project.org/src/contrib/seqinr_3.3-6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/seqinr"
+ version('4.2-5', sha256='de9860759c23af2ec2f2ef03b5dd1cea72c804438eadd369b7d9269bdf8d32fc')
version('3.4-5', sha256='162a347495fd52cbb62e8187a4692e7c50b9fa62123c5ef98f2744c98a05fb9f')
version('3.3-6', sha256='42a3ae01331db744d67cc9c5432ce9ae389bed465af826687b9c10216ac7a08d')
diff --git a/var/spack/repos/builtin/packages/r-seqlogo/package.py b/var/spack/repos/builtin/packages/r-seqlogo/package.py
index bd03c3a5f4..bf1ec4c915 100644
--- a/var/spack/repos/builtin/packages/r-seqlogo/package.py
+++ b/var/spack/repos/builtin/packages/r-seqlogo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RSeqlogo(RPackage):
- """Sequence logos for DNA sequence alignments.
+ """Sequence logos for DNA sequence alignments
seqLogo takes the position weight matrix of a DNA sequence motif and
plots the corresponding sequence logo as introduced by Schneider and
@@ -16,6 +16,7 @@ class RSeqlogo(RPackage):
homepage = "https://bioconductor.org/packages/seqLogo"
git = "https://git.bioconductor.org/packages/seqLogo.git"
+ version('1.56.0', commit='169260c43fc58dc75becb3b7842cac3d0038a8d5')
version('1.50.0', commit='57986221c90c3920f9829756c4b3ee566dc1e14d')
version('1.48.0', commit='dde85582e7fd0c08c5b8bc73f9aed8f23b727d9d')
version('1.46.0', commit='e78be03db5f6a516138aeea6aa9512685633a4a2')
diff --git a/var/spack/repos/builtin/packages/r-servr/package.py b/var/spack/repos/builtin/packages/r-servr/package.py
new file mode 100644
index 0000000000..bd08b5ecdf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-servr/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RServr(RPackage):
+ """A Simple HTTP Server to Serve Static Files or Dynamic Documents
+
+ Start an HTTP server in R to serve static files, or dynamic documents that
+ can be converted to HTML files (e.g., R Markdown) under a given
+ directory."""
+
+ homepage = "https://github.com/yihui/servr"
+ url = "https://cloud.r-project.org/src/contrib/servr_0.21.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/servr"
+
+ version('0.21', sha256='3fc0da063dd04b796a49ce62bf8e69d5854679520da90cc92ee3fc0a0b2ad389')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-mime@0.2:', type=('build', 'run'))
+ depends_on('r-httpuv@1.5.2:', type=('build', 'run'))
+ depends_on('r-xfun', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-sessioninfo/package.py b/var/spack/repos/builtin/packages/r-sessioninfo/package.py
index 48f238ef25..5cadb4f675 100644
--- a/var/spack/repos/builtin/packages/r-sessioninfo/package.py
+++ b/var/spack/repos/builtin/packages/r-sessioninfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-seurat/package.py b/var/spack/repos/builtin/packages/r-seurat/package.py
index 32a66852e2..6c8986ebc4 100644
--- a/var/spack/repos/builtin/packages/r-seurat/package.py
+++ b/var/spack/repos/builtin/packages/r-seurat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,21 @@ from spack import *
class RSeurat(RPackage):
- """Seurat is an R package designed for QC, analysis, and exploration of
- single cell RNA-seq data."""
+ """Tools for Single Cell Genomics
- homepage = "http://satijalab.org/seurat/"
+ A toolkit for quality control, analysis, and exploration of single cell RNA
+ sequencing data. 'Seurat' aims to enable users to identify and interpret
+ sources of heterogeneity from single cell transcriptomic measurements, and
+ to integrate diverse types of single cell data. See Satija R, Farrell J,
+ Gennert D, et al (2015) <doi:10.1038/nbt.3192>, Macosko E, Basu A, Satija
+ R, et al (2015) <doi:10.1016/j.cell.2015.05.002>, and Stuart T, Butler A,
+ et al (2019) <doi:10.1016/j.cell.2019.05.031> for more details."""
+
+ homepage = "https://satijalab.org/seurat/"
url = "https://cloud.r-project.org/src/contrib/Seurat_2.1.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/Seurat"
+ version('3.2.3', sha256='83aa48f75c3756bee23e108a8b01028366e24f237fe990cb441f3525e0613f87')
version('3.1.0', sha256='d8d3fad2950a8f791376e3d20c72ea07c68bf8d82d800661cab5ce696db39d45')
version('3.0.2', sha256='16df5dec6b41d49320c5bf5ce30eb3b7dedeea69b054b55b77528f2f2b7bce04')
version('3.0.1', sha256='8c467bdbfdb9aff51bde6a897ff98a7389941f688639d8f1d36c71dde076a257')
@@ -22,68 +30,81 @@ class RSeurat(RPackage):
depends_on('r@3.2.0:', when='@:2.3.0', type=('build', 'run'))
depends_on('r@3.4.0:', when='@2.3.1:', type=('build', 'run'))
+ depends_on('r@3.6.0:', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-cluster', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-cowplot', type=('build', 'run'))
+ depends_on('r-fitdistrplus', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-future', when='@3.0.0:', type=('build', 'run'))
+ depends_on('r-future-apply', when='@3.0.0:', type=('build', 'run'))
depends_on('r-ggplot2@3.0.0:', type=('build', 'run'))
+ depends_on('r-ggplot2@3.3.0:', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-ggrepel', when='@3.0.0:', type=('build', 'run'))
+ depends_on('r-ggridges', when='@2.2.0:', type=('build', 'run'))
+ depends_on('r-httr', when='@2.3.4:', type=('build', 'run'))
+ depends_on('r-ica', type=('build', 'run'))
+ depends_on('r-igraph', type=('build', 'run'))
+ depends_on('r-irlba', type=('build', 'run'))
+ depends_on('r-jsonlite', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-kernsmooth', when='@3.0.0:', type=('build', 'run'))
+ depends_on('r-leiden@0.3.1:', when='@3.1.0:', type=('build', 'run'))
+ depends_on('r-lmtest', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-matrix@1.2.14:', type=('build', 'run'))
+ depends_on('r-matrixstats', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-miniui', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-patchwork', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-pbapply', type=('build', 'run'))
+ depends_on('r-plotly', type=('build', 'run'))
+ depends_on('r-plotly@4.9.0:', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-png', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-rann', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-rcolorbrewer', type=('build', 'run'))
+ depends_on('r-rcpp@0.11.0:', type=('build', 'run'))
+ depends_on('r-rcppannoy', when='@3.1.0:', type=('build', 'run'))
+ depends_on('r-reticulate', when='@2.3.1:', type=('build', 'run'))
+ depends_on('r-rlang', when='@3.0.0:', type=('build', 'run'))
+ depends_on('r-rocr', type=('build', 'run'))
+ depends_on('r-rsvd', when='@3.0.0:', type=('build', 'run'))
+ depends_on('r-rtsne', type=('build', 'run'))
+ depends_on('r-scales', when='@3.0.0:', type=('build', 'run'))
+ depends_on('r-scattermore@0.7:', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-sctransform@0.2.0:', when='@3.0.0:', type=('build', 'run'))
+ depends_on('r-sctransform@0.3.1:', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-shiny', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-spatstat', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-tibble', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-uwot', when='@3.1.0:', type=('build', 'run'))
+ depends_on('r-uwot@0.1.9:', when='@3.2.3:', type=('build', 'run'))
+ depends_on('r-rcppeigen', type=('build', 'run'))
+ depends_on('r-rcppprogress', type=('build', 'run'))
depends_on('r-gplots', when='@:2.3.4', type=('build', 'run'))
depends_on('r-reshape2', when='@:2.3.4', type=('build', 'run'))
- depends_on('r-ape', type=('build', 'run'))
+ depends_on('r-ape', when='@:3.1.0', type=('build', 'run'))
depends_on('r-tidyr', when='@:2.3.4', type=('build', 'run'))
depends_on('r-caret', when='@:2.3.2', type=('build', 'run'))
depends_on('r-gdata', when='@:2.3.2', type=('build', 'run'))
depends_on('r-gridextra', when='@:2.3.0', type=('build', 'run'))
- depends_on('r-cowplot', type=('build', 'run'))
- depends_on('r-rocr', type=('build', 'run'))
depends_on('r-hmisc', when='@:2.3.4', type=('build', 'run'))
depends_on('r-nmf', when='@:2.2.0', type=('build', 'run'))
- depends_on('r-irlba', type=('build', 'run'))
- depends_on('r-igraph', type=('build', 'run'))
depends_on('r-fpc', when='@:2.3.4', type=('build', 'run'))
- depends_on('r-rcppprogress', type=('build', 'run'))
depends_on('r-lars', when='@:2.3.4', type=('build', 'run'))
depends_on('r-dtw', when='@:2.3.4', type=('build', 'run'))
depends_on('r-mixtools', when='@:2.3.4', type=('build', 'run'))
- depends_on('r-ica', type=('build', 'run'))
depends_on('r-diffusionmap', when='@:2.3.3', type=('build', 'run'))
- depends_on('r-tsne', type=('build', 'run'))
- depends_on('r-rtsne', type=('build', 'run'))
+ depends_on('r-tsne', when='@:3.1.0', type=('build', 'run'))
depends_on('r-ranger', when='@:2.3.2', type=('build', 'run'))
- depends_on('r-pbapply', type=('build', 'run'))
depends_on('r-ggjoy', when='@:2.1.0', type=('build', 'run'))
- depends_on('r-plotly', type=('build', 'run'))
- depends_on('r-sdmtools', type=('build', 'run'))
+ depends_on('r-sdmtools', when='@:3.1.0', type=('build', 'run'))
depends_on('r-tclust', when='@:2.3.2', type=('build', 'run'))
depends_on('r-fnn', when='@:2.3.2', type=('build', 'run'))
depends_on('r-vgam', when='@:2.3.2', type=('build', 'run'))
- depends_on('r-matrix@1.2.14:', type=('build', 'run'))
- depends_on('r-rcolorbrewer', type=('build', 'run'))
- depends_on('r-mass', type=('build', 'run'))
- depends_on('r-rcpp@0.11.0:', type=('build', 'run'))
- depends_on('r-rcppeigen', type=('build', 'run'))
- depends_on('r-ggridges', when='@2.2.0:', type=('build', 'run'))
depends_on('r-e1071', when='@:2.0.1', type=('build', 'run'))
depends_on('r-compositions', when='@:2.0.1', type=('build', 'run'))
depends_on('r-nmof', when='@:2.0.1', type=('build', 'run'))
- depends_on('r-metap', when='@2.2.1:', type=('build', 'run'))
- depends_on('r-cluster', when='@2.3.0:', type=('build', 'run'))
- depends_on('r-fitdistrplus', when='@2.3.0:', type=('build', 'run'))
- depends_on('r-png', when='@2.3.0:', type=('build', 'run'))
- depends_on('r-lmtest', when='@2.3.0:', type=('build', 'run'))
- depends_on('r-rann', when='@2.3.0:', type=('build', 'run'))
- depends_on('r-reticulate', when='@2.3.1:', type=('build', 'run'))
+ depends_on('r-metap', when='@2.2.1:3.1.0', type=('build', 'run'))
depends_on('r-stringr', when='@:2.3.2', type=('build', 'run'))
depends_on('r-dplyr', when='@:2.3.4', type=('build', 'run'))
- depends_on('r-httr', when='@2.3.4:', type=('build', 'run'))
depends_on('r-dosnow', when='@2.3.0:2.3.4', type=('build', 'run'))
depends_on('r-foreach', when='@2.3.0:2.3.4', type=('build', 'run'))
depends_on('r-hdf5r', when='@2.3.2:2.3.4', type=('build', 'run'))
- depends_on('r-future', when='@3.0.0:', type=('build', 'run'))
- depends_on('r-future-apply', when='@3.0.0:', type=('build', 'run'))
- depends_on('r-ggrepel', when='@3.0.0:', type=('build', 'run'))
- depends_on('r-kernsmooth', when='@3.0.0:', type=('build', 'run'))
- depends_on('r-rlang', when='@3.0.0:', type=('build', 'run'))
- depends_on('r-rsvd', when='@3.0.0:', type=('build', 'run'))
- depends_on('r-scales', when='@3.0.0:', type=('build', 'run'))
- depends_on('r-sctransform@0.2.0:', when='@3.0.0:', type=('build', 'run'))
- depends_on('r-leiden@0.3.1:', when='@3.1.0:', type=('build', 'run'))
- depends_on('r-rcppannoy', when='@3.1.0:', type=('build', 'run'))
- depends_on('r-uwot', when='@3.1.0:', type=('build', 'run'))
depends_on('java', when='@:2.3.0')
diff --git a/var/spack/repos/builtin/packages/r-sf/package.py b/var/spack/repos/builtin/packages/r-sf/package.py
index 76c8bbfe16..6ac15a1e0f 100644
--- a/var/spack/repos/builtin/packages/r-sf/package.py
+++ b/var/spack/repos/builtin/packages/r-sf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,26 +7,32 @@ from spack import *
class RSf(RPackage):
- """Support for simple features, a standardized way to encode spatial
- vector data. Binds to GDAL for reading and writing data, to GEOS for
- geometrical operations, and to Proj.4 for projection conversions and
- datum transformations."""
+ """Simple Features for R
+
+ Support for simple features, a standardized way to encode spatial vector
+ data. Binds to 'GDAL' for reading and writing data, to 'GEOS' for
+ geometrical operations, and to 'PROJ' for projection conversions and datum
+ transformations. Optionally uses the 's2' package for spherical geometry
+ operations on geographic coordinates."""
homepage = "https://github.com/r-spatial/sf/"
url = "https://cloud.r-project.org/src/contrib/sf_0.5-5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/sf"
+ version('0.9-7', sha256='4acac2f78badf9d252da5bf377975f984927c14a56a72d9f83d285c0adadae9c')
version('0.7-7', sha256='d1780cb46a285b30c7cc41cae30af523fbc883733344e53f7291e2d045e150a4')
version('0.7-5', sha256='53ed0567f502216a116c4848f5a9262ca232810f82642df7b98e0541a2524868')
version('0.5-5', sha256='82ad31f98243b6982302fe245ee6e0d8d0546e5ff213ccc00ec3025dfec62229')
depends_on('r@3.3.0:', type=('build', 'run'))
- depends_on('r-rcpp@0.12.18:', type=('build', 'run'))
- depends_on('r-dbi@0.8:', type=('build', 'run'))
- depends_on('r-units@0.6-0:', type=('build', 'run'))
depends_on('r-classint@0.2-1:', type=('build', 'run'))
+ depends_on('r-classint@0.4-1:', when='@0.9-7:', type=('build', 'run'))
+ depends_on('r-dbi@0.8:', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-units@0.6-0:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.18:', type=('build', 'run'))
depends_on('gdal@2.0.1:')
depends_on('geos@3.4.0:')
- depends_on('proj@4.8.0:5', when='@:0.7-3')
- depends_on('proj@4.8.0:6', when='@0.7-4:')
+ depends_on('proj@4.8.0:5.999', when='@:0.7-3')
+ depends_on('proj@4.8.0:6.999', when='@0.7-4:')
+ depends_on('sqlite', when='@0.9-7')
diff --git a/var/spack/repos/builtin/packages/r-sfsmisc/package.py b/var/spack/repos/builtin/packages/r-sfsmisc/package.py
index 7cf91c64da..7456c2de03 100644
--- a/var/spack/repos/builtin/packages/r-sfsmisc/package.py
+++ b/var/spack/repos/builtin/packages/r-sfsmisc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,23 @@ from spack import *
class RSfsmisc(RPackage):
- """Useful utilities ['goodies'] from Seminar fuer Statistik
- ETH Zurich, quite a few related to graphics;
- some were ported from S-plus."""
+ """Utilities from 'Seminar fuer Statistik' ETH Zurich
+
+ Useful utilities ['goodies'] from Seminar fuer Statistik ETH Zurich, some
+ of which were ported from S-plus in the 1990s.; For graphics, have pretty
+ (Log-scale) axes, an enhanced Tukey-Anscombe plot, combining histogram and
+ boxplot, 2d-residual plots, a 'tachoPlot()', pretty arrows, etc.; For
+ robustness, have a robust F test and robust range().; For system support,
+ notably on Linux, provides 'Sys.*()' functions with more access to system
+ and CPU information.; Finally, miscellaneous utilities such as simple
+ efficient prime numbers, integer codes, Duplicated(), toLatex.numeric() and
+ is.whole()."""
homepage = "https://cloud.r-project.org/package=sfsmisc"
url = "https://cloud.r-project.org/src/contrib/sfsmisc_1.1-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/sfsmisc"
+ version('1.1-8', sha256='b6556af5f807f0769489657a676422cb0734f3d6c918543d2989ef17febc1fa5')
version('1.1-4', sha256='44b6a9c859922e86b7182e54eb781d3264f3819f310343518ebc66f54f305c7d')
version('1.1-3', sha256='58eff7d4a9c79212321858efe98d2a6153630e263ff0218a31d5e104b8b545f8')
version('1.1-0', sha256='7f430cf3ebb95bac806fbf093fb1e2112deba47416a93be8d5d1064b76bc0015')
diff --git a/var/spack/repos/builtin/packages/r-shadowtext/package.py b/var/spack/repos/builtin/packages/r-shadowtext/package.py
new file mode 100644
index 0000000000..d93ed78a7e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-shadowtext/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2021 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 RShadowtext(RPackage):
+ """Shadow Text Grob and Layer
+
+ Implement shadowtextGrob() for 'grid' and geom_shadowtext() layer for
+ 'ggplot2'. These functions create/draw text grob with background shadow."""
+
+ homepage = "https://github.com/GuangchuangYu/shadowtext/"
+ url = "https://cloud.r-project.org/src/contrib/shadowtext_0.0.7.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/shadowtext"
+
+ version('0.0.7', sha256='6e32b1dfd3d4816803848b876666185258b888286ec3d3e8500499ec3eba31e8')
+
+ depends_on('r@3.4.0:', type=('build', 'run'))
+ depends_on('r-ggplot2', type=('build', 'run'))
+ depends_on('r-scales', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-shape/package.py b/var/spack/repos/builtin/packages/r-shape/package.py
index 26142b242b..f84581f269 100644
--- a/var/spack/repos/builtin/packages/r-shape/package.py
+++ b/var/spack/repos/builtin/packages/r-shape/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RShape(RPackage):
- """Functions for plotting graphical shapes such as ellipses, circles,
- cylinders, arrows, ..."""
+ """Functions for Plotting Graphical Shapes, Colors
+
+ Functions for plotting graphical shapes such as ellipses, circles,
+ cylinders, arrows, ..."""
homepage = "https://cloud.r-project.org/package=shape"
url = "https://cloud.r-project.org/src/contrib/shape_1.4.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/shape"
+ version('1.4.5', sha256='094a79b8f42226189227fd7af71868e42106caa25a4d7f80a26977e8bc84189f')
version('1.4.4', sha256='f4cb1b7d7c84cf08d2fa97f712ea7eb53ed5fa16e5c7293b820bceabea984d41')
version('1.4.3', sha256='720f6ca9c70a39a3900af9d074bff864b18ac58013b21d48b779047481b93ded')
version('1.4.2', sha256='c6c08ba9cc2e90e5c9d3d5223529b57061a041f637886ad7665b9fa27465637a')
diff --git a/var/spack/repos/builtin/packages/r-shiny/package.py b/var/spack/repos/builtin/packages/r-shiny/package.py
index f2774ecefa..3b157c43ef 100644
--- a/var/spack/repos/builtin/packages/r-shiny/package.py
+++ b/var/spack/repos/builtin/packages/r-shiny/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,29 +7,41 @@ from spack import *
class RShiny(RPackage):
- """Makes it incredibly easy to build interactive web applications with R.
+ """Web Application Framework for R
+
+ Makes it incredibly easy to build interactive web applications with R.
Automatic "reactive" binding between inputs and outputs and extensive
pre-built widgets make it possible to build beautiful, responsive, and
powerful applications with minimal effort."""
- homepage = "http://shiny.rstudio.com/"
+ homepage = "https://shiny.rstudio.com/"
url = "https://cloud.r-project.org/src/contrib/shiny_1.0.5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/shiny"
+ version('1.5.0', sha256='23cb8bfa448389c256efdab75e7e8d3ff90e5de66264c4ab02df322fb4298e9e')
version('1.3.2', sha256='28b851ae6c196ca845f6e815c1379247595ac123a4faa10a16533d1a9ce0c24f')
version('1.0.5', sha256='20e25f3f72f3608a2151663f7836f2e0c6da32683a555d7541063ae7a935fa42')
version('0.13.2', sha256='0fe7e952f468242d7c43ae49afcc764788f7f2fd5436d18c3d20a80db7296231')
depends_on('r@3.0.2:', type=('build', 'run'))
depends_on('r-httpuv@1.5.0:', type=('build', 'run'))
+ depends_on('r-httpuv@1.5.2:', when='@1.5.0:', type=('build', 'run'))
depends_on('r-mime@0.3:', type=('build', 'run'))
depends_on('r-jsonlite@0.9.16:', type=('build', 'run'))
depends_on('r-xtable', type=('build', 'run'))
depends_on('r-digest', type=('build', 'run'))
depends_on('r-htmltools@0.3.6:', type=('build', 'run'))
+ depends_on('r-htmltools@0.4.0.9003:', when='@1.5.0:', type=('build', 'run'))
depends_on('r-r6@2.0:', type=('build', 'run'))
depends_on('r-sourcetools', type=('build', 'run'))
depends_on('r-later@0.7.2:', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-later@1.0.0:', when='@1.5.0:', type=('build', 'run'))
depends_on('r-promises@1.0.1:', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-promises@1.1.0:', when='@1.5.0:', type=('build', 'run'))
depends_on('r-crayon', when='@1.1.0:', type=('build', 'run'))
depends_on('r-rlang', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-rlang@0.4.0:', when='@1.5.0:', type=('build', 'run'))
+ depends_on('r-fastmap@1.0.0:', when='@1.5.0:', type=('build', 'run'))
+ depends_on('r-withr', when='@1.5.0:', type=('build', 'run'))
+ depends_on('r-commonmark@1.7:', when='@1.5.0:', type=('build', 'run'))
+ depends_on('r-glue@1.3.2:', when='@1.5.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-shinydashboard/package.py b/var/spack/repos/builtin/packages/r-shinydashboard/package.py
index ad63f2ade0..87f7a9e8da 100644
--- a/var/spack/repos/builtin/packages/r-shinydashboard/package.py
+++ b/var/spack/repos/builtin/packages/r-shinydashboard/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-shinyfiles/package.py b/var/spack/repos/builtin/packages/r-shinyfiles/package.py
index 7c969cd4e4..cf6161b743 100644
--- a/var/spack/repos/builtin/packages/r-shinyfiles/package.py
+++ b/var/spack/repos/builtin/packages/r-shinyfiles/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RShinyfiles(RPackage):
- """Provides functionality for client-side navigation of the server side
+ """A Server-Side File System Viewer for Shiny
+
+ Provides functionality for client-side navigation of the server side
file system in shiny apps. In case the app is running locally this gives
the user direct access to the file system without the need to "download"
files to a temporary location. Both file and folder selection as well as
@@ -17,6 +19,7 @@ class RShinyfiles(RPackage):
url = "https://cloud.r-project.org/src/contrib/shinyFiles_0.7.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/shinyFiles"
+ version('0.9.0', sha256='51ad2aad61bcae22fb2c48a79d02bf6f86e36ffc49a3b64e26a76d133a955167')
version('0.7.3', sha256='710c8a6191aaf336379bc748daff1160d0d2858e2aee0d98e2ad48e7121d5a05')
depends_on('r-htmltools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-shinyjs/package.py b/var/spack/repos/builtin/packages/r-shinyjs/package.py
new file mode 100644
index 0000000000..2d76eb3a9d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-shinyjs/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 RShinyjs(RPackage):
+ """Easily Improve the User Experience of Your Shiny Apps in Seconds
+
+ Perform common useful JavaScript operations in Shiny apps that will greatly
+ improve your apps without having to know any JavaScript. Examples include:
+ hiding an element, disabling an input, resetting an input back to its
+ original value, delaying code execution by a few seconds, and many more
+ useful functions for both the end user and the developer. 'shinyjs' can
+ also be used to easily call your own custom JavaScript functions from R."""
+
+ homepage = "https://deanattali.com/shinyjs/"
+ cran = "shinyjs"
+
+ version('2.0.0', sha256='c2cdd9fab41f6b46bb41b288cd9b3fb3a7fe9627b664e3a58a0cb5dd4c19f8ff')
+
+ depends_on('r@3.1.0:', type=('build', 'run'))
+ depends_on('r-digest@0.6.8:', type=('build', 'run'))
+ depends_on('r-htmltools@0.2.9:', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-shiny@1.0.0:', type=('build', 'run'))
+ depends_on('pandoc', type='build')
diff --git a/var/spack/repos/builtin/packages/r-shinystan/package.py b/var/spack/repos/builtin/packages/r-shinystan/package.py
new file mode 100644
index 0000000000..57167cf0e2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-shinystan/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2021 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 RShinystan(RPackage):
+ """Interactive Visual and Numerical Diagnostics and Posterior Analysis for
+ Bayesian Models:
+
+ A graphical user interface for interactive Markov chain Monte Carlo (MCMC)
+ diagnostics and plots and tables helpful for analyzing a posterior sample.
+ The interface is powered by the 'Shiny' web application framework from
+ 'RStudio' and works with the output of MCMC programs written in any
+ programming language (and has extended functionality for 'Stan' models fit
+ using the 'rstan' and 'rstanarm' packages)."""
+
+ homepage = "https://mc-stan.org/"
+ cran = "shinystan"
+
+ version('2.5.0', sha256='45f9c552a31035c5de8658bb9e5d72da7ec1f88fbddb520d15fe701c677154a1')
+
+ depends_on('r@3.1.0:', type=('build', 'run'))
+ depends_on('r-shiny@1.0.3:', type=('build', 'run'))
+ depends_on('r-bayesplot@1.5.0:', type=('build', 'run'))
+ depends_on('r-colourpicker', type=('build', 'run'))
+ depends_on('r-dt@0.2:', type=('build', 'run'))
+ depends_on('r-dygraphs@1.1.1.2:', type=('build', 'run'))
+ depends_on('r-ggplot2@2.1.1:', type=('build', 'run'))
+ depends_on('r-gridextra', type=('build', 'run'))
+ depends_on('r-gtools', type=('build', 'run'))
+ depends_on('r-markdown@0.7.4:', type=('build', 'run'))
+ depends_on('r-reshape2', type=('build', 'run'))
+ depends_on('r-rsconnect@0.4.2:', type=('build', 'run'))
+ depends_on('r-rstan@2.17.1:', type=('build', 'run'))
+ depends_on('r-shinyjs@0.6.0:', type=('build', 'run'))
+ depends_on('r-shinythemes@1.0.1:', type=('build', 'run'))
+ depends_on('r-threejs@0.2.1:', type=('build', 'run'))
+ depends_on('r-xtable', type=('build', 'run'))
+ depends_on('r-xts@0.9-7:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-shinythemes/package.py b/var/spack/repos/builtin/packages/r-shinythemes/package.py
new file mode 100644
index 0000000000..c252021809
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-shinythemes/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 RShinythemes(RPackage):
+ """Themes for Shiny:
+
+ Themes for use with Shiny. Includes several Bootstrap themes from
+ <https://bootswatch.com/>, which are packaged for use with Shiny
+ applications."""
+
+ homepage = "https://rstudio.github.io/shinythemes/"
+ cran = "shinythemes"
+
+ version('1.2.0', sha256='37d68569ce838c7da9f0ea7e2b162ecf38fba2ae448a4888b6dd29c4bb5b2963')
+
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-shiny@0.11:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-shortread/package.py b/var/spack/repos/builtin/packages/r-shortread/package.py
index 22ae509299..b67583c9d4 100644
--- a/var/spack/repos/builtin/packages/r-shortread/package.py
+++ b/var/spack/repos/builtin/packages/r-shortread/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RShortread(RPackage):
- """FASTQ input and manipulation.
+ """FASTQ input and manipulation
This package implements sampling, iteration, and input of FASTQ files.
The package includes functions for filtering and trimming reads, and for
@@ -19,6 +19,7 @@ class RShortread(RPackage):
homepage = "https://bioconductor.org/packages/ShortRead"
git = "https://git.bioconductor.org/packages/ShortRead.git"
+ version('1.48.0', commit='ba44cd2517bc0e6f46d2cfcfce393f86eec814d0')
version('1.42.0', commit='daa2576a48278460caf87f42c022c796652f4908')
version('1.40.0', commit='0cbe4b62b0be4c5f2e2670da17493423446e008f')
version('1.38.0', commit='e9498f04b7b4bf0212bbb10ec7e3de2d7699f4bf')
@@ -26,27 +27,26 @@ class RShortread(RPackage):
version('1.34.2', commit='25daac63b301df66a8ef6e98cc2977522c6786cd')
depends_on('r-biocgenerics@0.22.1:', type=('build', 'run'))
+ depends_on('r-biocgenerics@0.23.3:', when='@1.36.1:', type=('build', 'run'))
depends_on('r-biocparallel', type=('build', 'run'))
depends_on('r-biostrings@2.37.1:', type=('build', 'run'))
+ depends_on('r-biostrings@2.47.6:', when='@1.38.0:', type=('build', 'run'))
depends_on('r-rsamtools@1.21.4:', type=('build', 'run'))
+ depends_on('r-rsamtools@1.31.2:', when='@1.38.0:', type=('build', 'run'))
depends_on('r-genomicalignments@1.5.4:', type=('build', 'run'))
+ depends_on('r-genomicalignments@1.15.6:', when='@1.38.0:', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-s4vectors@0.13.8:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.25:', when='@1.38.0:', type=('build', 'run'))
depends_on('r-iranges@2.3.7:', type=('build', 'run'))
+ depends_on('r-iranges@2.13.12:', when='@1.38.0:', type=('build', 'run'))
depends_on('r-genomeinfodb@1.1.19:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.15.2:', when='@1.38.0:', type=('build', 'run'))
depends_on('r-genomicranges@1.21.6:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.31.8:', when='@1.38.0:', type=('build', 'run'))
depends_on('r-hwriter', type=('build', 'run'))
depends_on('r-zlibbioc', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-latticeextra', type=('build', 'run'))
depends_on('r-xvector', type=('build', 'run'))
-
- depends_on('r-biocgenerics@0.23.3:', when='@1.36.1:', type=('build', 'run'))
-
- depends_on('r-biostrings@2.47.6:', when='@1.38.0:', type=('build', 'run'))
- depends_on('r-rsamtools@1.31.2:', when='@1.38.0:', type=('build', 'run'))
- depends_on('r-genomicalignments@1.15.6:', when='@1.38.0:', type=('build', 'run'))
- depends_on('r-s4vectors@0.17.25:', when='@1.38.0:', type=('build', 'run'))
- depends_on('r-iranges@2.13.12:', when='@1.38.0:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.15.2:', when='@1.38.0:', type=('build', 'run'))
- depends_on('r-genomicranges@1.31.8:', when='@1.38.0:', type=('build', 'run'))
+ depends_on('r-rhtslib', when='@1.48.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-siggenes/package.py b/var/spack/repos/builtin/packages/r-siggenes/package.py
index 395a07bdb6..003e190b9f 100644
--- a/var/spack/repos/builtin/packages/r-siggenes/package.py
+++ b/var/spack/repos/builtin/packages/r-siggenes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RSiggenes(RPackage):
- """Multiple Testing using SAM and Efron's Empirical Bayes Approaches.
+ """Multiple Testing using SAM and Efron's Empirical Bayes Approaches
Identification of differentially expressed genes and estimation of the
False Discovery Rate (FDR) using both the Significance Analysis of
@@ -17,6 +17,7 @@ class RSiggenes(RPackage):
homepage = "https://bioconductor.org/packages/siggenes"
git = "https://git.bioconductor.org/packages/siggenes.git"
+ version('1.64.0', commit='3b528d37c16fc41bbc5c98165f606394313aa050')
version('1.58.0', commit='69500158d69942cf7c62f583830933cf8baf89a1')
version('1.56.0', commit='3e929feaa76311be07ff51ad807e657b0b521f6f')
version('1.54.0', commit='1630e42652192e3e4e48e9e78e53665a120cfc7f')
@@ -25,5 +26,4 @@ class RSiggenes(RPackage):
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-multtest', type=('build', 'run'))
-
depends_on('r-scrime@1.2.5:', when='@1.58.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-simpleaffy/package.py b/var/spack/repos/builtin/packages/r-simpleaffy/package.py
index 489318cde0..5910be33b9 100644
--- a/var/spack/repos/builtin/packages/r-simpleaffy/package.py
+++ b/var/spack/repos/builtin/packages/r-simpleaffy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RSimpleaffy(RPackage):
- """Very simple high level analysis of Affymetrix data.
+ """Very simple high level analysis of Affymetrix data
Provides high level functions for reading Affy .CEL files, phenotypic
data, and then computing simple things with it, such as t-tests, fold
@@ -18,6 +18,7 @@ class RSimpleaffy(RPackage):
homepage = "https://bioconductor.org/packages/simpleaffy"
git = "https://git.bioconductor.org/packages/simpleaffy.git"
+ version('2.66.0', commit='902db69e4ea4b6d306f0c744d3be600f1418ebc9')
version('2.60.0', commit='b32b5e7d5c65e43c10f98ab8684a1086a06d04f9')
version('2.58.0', commit='70cf1199bad620f60eaa288279632110bb571200')
version('2.56.0', commit='a05d768180b8713ad9e1dc46d491b7ef389b299d')
diff --git a/var/spack/repos/builtin/packages/r-singlecellexperiment/package.py b/var/spack/repos/builtin/packages/r-singlecellexperiment/package.py
index c6b4665352..67851cf21a 100644
--- a/var/spack/repos/builtin/packages/r-singlecellexperiment/package.py
+++ b/var/spack/repos/builtin/packages/r-singlecellexperiment/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RSinglecellexperiment(RPackage):
- """S4 Classes for Single Cell Data.
+ """S4 Classes for Single Cell Data
Defines a S4 class for storing data from single-cell experiments. This
includes specialized methods to store and retrieve spike-in information,
@@ -17,14 +17,14 @@ class RSinglecellexperiment(RPackage):
homepage = "https://bioconductor.org/packages/SingleCellExperiment"
git = "https://git.bioconductor.org/packages/SingleCellExperiment.git"
+ version('1.12.0', commit='66063b74c8b0bd0fd1277c7ad425ad11823ab356')
version('1.6.0', commit='baa51d77a8dacd2a22e7293095a8cffaaa3293b4')
version('1.4.1', commit='b1efcb338e9176ae6829bb897957aa37e74d4870')
version('1.2.0', commit='fe512259da79e0c660b322b5387e9bb16f2e6321')
version('1.0.0', commit='545e974aa7ca7855e039bf9e3030290cd71d9031')
depends_on('r@3.4:', type=('build', 'run'))
+ depends_on('r@3.5:', when='@1.2.0:1.6.0', type=('build', 'run'))
depends_on('r-summarizedexperiment', type=('build', 'run'))
depends_on('r-s4vectors', type=('build', 'run'))
depends_on('r-biocgenerics', type=('build', 'run'))
-
- depends_on('r@3.5:', when='@1.2.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-sitmo/package.py b/var/spack/repos/builtin/packages/r-sitmo/package.py
index fd7c1df3cc..5d18ed06f0 100644
--- a/var/spack/repos/builtin/packages/r-sitmo/package.py
+++ b/var/spack/repos/builtin/packages/r-sitmo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-sm/package.py b/var/spack/repos/builtin/packages/r-sm/package.py
index ff2e4cb335..e29cb9a398 100644
--- a/var/spack/repos/builtin/packages/r-sm/package.py
+++ b/var/spack/repos/builtin/packages/r-sm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,4 +18,5 @@ class RSm(RPackage):
version('2.2-5.6', sha256='b890cd7ebe8ed711ab4a3792c204c4ecbe9e6ca1fd5bbc3925eba5833a839c30')
version('2.2-5.5', sha256='43e212a14c364b98b10018b56fe0a619ccffe4bde1294e6c45b3eafe7caf82e7')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@3.1.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-smoof/package.py b/var/spack/repos/builtin/packages/r-smoof/package.py
index 40979fa30b..39ec3041e0 100644
--- a/var/spack/repos/builtin/packages/r-smoof/package.py
+++ b/var/spack/repos/builtin/packages/r-smoof/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,22 +7,26 @@ from spack import *
class RSmoof(RPackage):
- """Provides generators for a high number of both single- and
- multi- objective test functions which are frequently used for the
- benchmarking of (numerical) optimization algorithms. Moreover, it offers
- a set of convenient functions to generate, plot and work with objective
- functions."""
+ """Single and Multi-Objective Optimization Test Functions
- homepage = "http://github.com/jakobbossek/smoof"
+ Provides generators for a high number of both single- and multi- objective
+ test functions which are frequently used for the benchmarking of
+ (numerical) optimization algorithms. Moreover, it offers a set of
+ convenient functions to generate, plot and work with objective
+ functions."""
+
+ homepage = "https://github.com/jakobbossek/smoof"
url = "https://cloud.r-project.org/src/contrib/smoof_1.5.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/smoof"
+ version('1.6.0.2', sha256='d82dba9702eade00afb84c2c12167de6cec790be7d23ac227f8fe705bdcefc93')
version('1.5.1', sha256='cfb6f6460e9593351428656b225b5ba3867a216d35a05f2babdb20db6ba35306')
version('1.5', sha256='9b73ad5bfc8e1120c9651539ea52b1468f316cc7fc5fef8afd6d357adf01504c')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r-paramhelpers@1.8:', type=('build', 'run'))
- depends_on('r-bbmisc@1.6:', type=('build', 'run'))
depends_on('r-checkmate@1.1:', type=('build', 'run'))
+ depends_on('r-bbmisc@1.6:', type=('build', 'run'))
depends_on('r-ggplot2@2.2.1:', type=('build', 'run'))
depends_on('r-rcolorbrewer', type=('build', 'run'))
depends_on('r-plot3d', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-sn/package.py b/var/spack/repos/builtin/packages/r-sn/package.py
index 0ba4183ea0..9de39cbf9d 100644
--- a/var/spack/repos/builtin/packages/r-sn/package.py
+++ b/var/spack/repos/builtin/packages/r-sn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RSn(RPackage):
- """Build and manipulate probability distributions of the skew-normal
+ """The Skew-Normal and Related Distributions Such as the Skew-t
+
+ Build and manipulate probability distributions of the skew-normal
family and some related ones, notably the skew-t family, and provide
related statistical methods for data fitting and diagnostics, in the
univariate and the multivariate case."""
@@ -16,6 +18,7 @@ class RSn(RPackage):
url = "https://cloud.r-project.org/src/contrib/sn_1.5-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/sn"
+ version('1.6-2', sha256='2fd4730c315efc48958b47990ddb0cbc6ce075f7a27255944a292fb4fc593d9d')
version('1.5-4', sha256='46677ebc109263a68f62b5cf53ec59916cda490e5bc5bbb08276757a677f8674')
version('1.5-3', sha256='cc21b97ddd674c9b1296260f2a72ffb085cdcb877c8332f0bfa96ff028517183')
version('1.5-0', sha256='0164f7cffbf9e2a0f03f9bed3b96388b08d8a8ca476bbb686aa88be6b4ec073a')
@@ -27,3 +30,4 @@ class RSn(RPackage):
depends_on('r@2.15.3:', type=('build', 'run'))
depends_on('r-mnormt@1.5-4:', type=('build', 'run'))
depends_on('r-numderiv', type=('build', 'run'))
+ depends_on('r-quantreg', when='@1.6-2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-snakecase/package.py b/var/spack/repos/builtin/packages/r-snakecase/package.py
index 55c3592a2b..1dbf906113 100644
--- a/var/spack/repos/builtin/packages/r-snakecase/package.py
+++ b/var/spack/repos/builtin/packages/r-snakecase/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-snow/package.py b/var/spack/repos/builtin/packages/r-snow/package.py
index 9d07e4943b..6386d2b4ef 100644
--- a/var/spack/repos/builtin/packages/r-snow/package.py
+++ b/var/spack/repos/builtin/packages/r-snow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-snowfall/package.py b/var/spack/repos/builtin/packages/r-snowfall/package.py
index 57686af15e..6ee93158f0 100644
--- a/var/spack/repos/builtin/packages/r-snowfall/package.py
+++ b/var/spack/repos/builtin/packages/r-snowfall/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-snprelate/package.py b/var/spack/repos/builtin/packages/r-snprelate/package.py
index 9877ffe52b..e59bfe0ca8 100644
--- a/var/spack/repos/builtin/packages/r-snprelate/package.py
+++ b/var/spack/repos/builtin/packages/r-snprelate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RSnprelate(RPackage):
"""Parallel Computing Toolset for Relatedness and Principal Component
- Analysis of SNP Data.
+ Analysis of SNP Data
Genome-wide association studies (GWAS) are widely used to investigate
the genetic basis of diseases and traits, but they pose many
@@ -30,6 +30,7 @@ class RSnprelate(RPackage):
homepage = "https://bioconductor.org/packages/SNPRelate"
git = "https://git.bioconductor.org/packages/SNPRelate.git"
+ version('1.24.0', commit='419b13b761ea39a8b1b9bc73097fb0359c59f1c2')
version('1.18.1', commit='81c581bf76392efdc8ba237ca2e42ca1dba788ca')
version('1.16.0', commit='0e38e8df4af87dff6c27a23af2867661998c0d85')
version('1.14.0', commit='9501cbfc411aa320e58654a865fda2e9077977af')
diff --git a/var/spack/repos/builtin/packages/r-snpstats/package.py b/var/spack/repos/builtin/packages/r-snpstats/package.py
index 2705246582..dde1f1bc30 100644
--- a/var/spack/repos/builtin/packages/r-snpstats/package.py
+++ b/var/spack/repos/builtin/packages/r-snpstats/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RSnpstats(RPackage):
- """SnpMatrix and XSnpMatrix classes and methods.
+ """SnpMatrix and XSnpMatrix classes and methods
Classes and statistical methods for large SNP association studies. This
extends the earlier snpMatrix package, allowing for uncertainty in
@@ -16,6 +16,7 @@ class RSnpstats(RPackage):
homepage = "https://bioconductor.org/packages/snpStats"
git = "https://git.bioconductor.org/packages/snpStats.git"
+ version('1.40.0', commit='5fcac6f3b4bb6f45c19dff8f3089b693b74a56ce')
version('1.34.0', commit='e31cdfb18a9e12d70d6a3e8e6fbf7cf8faa3ea5b')
version('1.32.0', commit='7c31158183b4e39da6dc30c7da275acc36b2e32f')
version('1.30.0', commit='0dc1e4246f015feaf2579d60268b10ab5149ce09')
diff --git a/var/spack/repos/builtin/packages/r-som/package.py b/var/spack/repos/builtin/packages/r-som/package.py
index eed2ca8fc8..8c27f46d9b 100644
--- a/var/spack/repos/builtin/packages/r-som/package.py
+++ b/var/spack/repos/builtin/packages/r-som/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-somaticsignatures/package.py b/var/spack/repos/builtin/packages/r-somaticsignatures/package.py
index a955110c1d..fb01e47dc7 100644
--- a/var/spack/repos/builtin/packages/r-somaticsignatures/package.py
+++ b/var/spack/repos/builtin/packages/r-somaticsignatures/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RSomaticsignatures(RPackage):
- """Somatic Signatures.
+ """Somatic Signatures
The SomaticSignatures package identifies mutational signatures of single
nucleotide variants (SNVs). It provides a infrastructure related to the
@@ -17,6 +17,7 @@ class RSomaticsignatures(RPackage):
homepage = "https://bioconductor.org/packages/SomaticSignatures"
git = "https://git.bioconductor.org/packages/SomaticSignatures.git"
+ version('2.26.0', commit='9d4bed6e118ac76755ffb7abd058b09bac58a9d7')
version('2.20.0', commit='dbedc30d92b600b3a17de596ebe38d15982c70c6')
version('2.18.0', commit='facccd67eee5202fcbe6ad32e667546546e7ccff')
version('2.16.0', commit='4ae348d9fa096c0ec307df95149991edf6044977')
@@ -34,6 +35,7 @@ class RSomaticsignatures(RPackage):
depends_on('r-ggplot2', type=('build', 'run'))
depends_on('r-ggbio', type=('build', 'run'))
depends_on('r-reshape2', type=('build', 'run'))
+ depends_on('r-nmf', when='@2.26.0:', type=('build', 'run'))
depends_on('r-pcamethods', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-proxy', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-sourcetools/package.py b/var/spack/repos/builtin/packages/r-sourcetools/package.py
index 22a8c75836..29f584e597 100644
--- a/var/spack/repos/builtin/packages/r-sourcetools/package.py
+++ b/var/spack/repos/builtin/packages/r-sourcetools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-sp/package.py b/var/spack/repos/builtin/packages/r-sp/package.py
index dbcb6e8dac..7c2b1cd772 100644
--- a/var/spack/repos/builtin/packages/r-sp/package.py
+++ b/var/spack/repos/builtin/packages/r-sp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RSp(RPackage):
- """Classes and methods for spatial data; the classes document where the
+ """Classes and Methods for Spatial Data
+
+ Classes and methods for spatial data; the classes document where the
spatial location information resides, for 2D or 3D data. Utility functions
are provided, e.g. for plotting data as maps, spatial selection, as well as
methods for retrieving coordinates, for subsetting, print, summary, etc."""
@@ -16,6 +18,7 @@ class RSp(RPackage):
url = "https://cloud.r-project.org/src/contrib/sp_1.2-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/sp"
+ version('1.4-5', sha256='6beeb216d540475cdead5f2c72d6c7ee400fe2423c1882d72cf57f6df58f09da')
version('1.3-1', sha256='57988b53ba8acc35f3912d62feba4b929a0f757c6b54080c623c5d805e0cb59f')
version('1.2-7', sha256='6d60e03e1abd30a7d4afe547d157ce3dd7a8c166fc5e407fd6d62ae99ff30460')
version('1.2-3', sha256='58b3a9e395ca664ee61b20b480be4eb61576daca44c3d3f6f9a943bb0155879a')
diff --git a/var/spack/repos/builtin/packages/r-spacetime/package.py b/var/spack/repos/builtin/packages/r-spacetime/package.py
index e7fe2eefcf..e5c86d9739 100644
--- a/var/spack/repos/builtin/packages/r-spacetime/package.py
+++ b/var/spack/repos/builtin/packages/r-spacetime/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,25 @@ from spack import *
class RSpacetime(RPackage):
- """spacetime: Classes and Methods for Spatio-Temporal Data"""
+ """Classes and Methods for Spatio-Temporal Data
- homepage = "http://github.com/edzer/spacetime"
+ Classes and methods for spatio-temporal data, including space-time regular
+ lattices, sparse lattices, irregular data, and trajectories; utility
+ functions for plotting data as map sequences (lattice or animation) or
+ multiple time series; methods for spatial and temporal selection and
+ subsetting, as well as for spatial/temporal/spatio-temporal matching or
+ aggregation, retrieving coordinates, print, summary, etc."""
+
+ homepage = "https://github.com/edzer/spacetime"
url = "https://cloud.r-project.org/src/contrib/spacetime_1.2-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/spacetime"
+ version('1.2-3', sha256='ca7c0b962d5da0741f6dd85b271d693598756e0eeeb364ada828dbb6d1b9b25b')
version('1.2-2', sha256='1e9d3f92e5c4614a69c82a58bf0b5c829b4ed262bf1250bef943ae286056ea2d')
depends_on('r@3.0.0:', type=('build', 'run'))
- depends_on('r-intervals', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-sp@1.1-0:', type=('build', 'run'))
- depends_on('r-xts@0.8-8:', type=('build', 'run'))
depends_on('r-zoo@1.7-9:', type=('build', 'run'))
+ depends_on('r-xts@0.8-8:', type=('build', 'run'))
+ depends_on('r-intervals', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spades-addins/package.py b/var/spack/repos/builtin/packages/r-spades-addins/package.py
new file mode 100644
index 0000000000..be41444c3b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-spades-addins/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 RSpadesAddins(RPackage):
+ """Development Tools for 'SpaDES' and 'SpaDES' Modules
+
+ Provides 'RStudio' addins for 'SpaDES' packages and 'SpaDES' module
+ development. See '?SpaDES.addins' for an overview of the tools provided."""
+
+ homepage = "https://spades-addins.predictiveecology.org/"
+ url = "https://cloud.r-project.org/src/contrib/SpaDES.addins_0.1.2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/SpaDES.addins"
+
+ maintainers = ['dorton21']
+
+ version('0.1.2', sha256='0a16bd9423797a4b4ed66a5e669cdd7f6984a3f30aa1aadc078678ee2622367c')
+
+ depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r-devtools', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-miniui@0.1.1:', type=('build', 'run'))
+ depends_on('r-reproducible', type=('build', 'run'))
+ depends_on('r-rstudioapi@0.5:', type=('build', 'run'))
+ depends_on('r-shiny@0.13:', type=('build', 'run'))
+ depends_on('r-spades-core', type=('build', 'run'))
+ depends_on('r-stringi@1.1.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spades-core/package.py b/var/spack/repos/builtin/packages/r-spades-core/package.py
new file mode 100644
index 0000000000..9d2da0dc23
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-spades-core/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2021 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 RSpadesCore(RPackage):
+ """Utilities for Developing and Running Spatially Explicit Discrete Event Models
+
+ Provides the core framework for a discrete event system (DES) to implement
+ acomplete data-to-decisions, reproducible workflow. The core DES components
+ facilitate modularity, and easily enable the user to include additional
+ functionality by running user-built modules. Includes conditional scheduling,
+ restart after interruption, packaging of reusable modules, tools for
+ developing arbitrary automated workflows, automated interweaving of modules
+ of different temporal resolution, and tools for visualizing and understanding
+ the DES project."""
+
+ homepage = "https://spades-core.predictiveecology.org/"
+ url = "https://cloud.r-project.org/src/contrib/SpaDES.core_1.0.5.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/SpaDES.core"
+
+ maintainers = ['dorton21']
+
+ version('1.0.5', sha256='c8b18cb5f932ea57f3cb3c7f2a302cbe7e06c875da7cd3928300d6003602f0a6')
+
+ depends_on('r@3.6:', type=('build', 'run'))
+ depends_on('r-quickplot@0.1.4:', type=('build', 'run'))
+ depends_on('r-reproducible@1.2.1.9007:', type=('build', 'run'))
+ depends_on('r-crayon', type=('build', 'run'))
+ depends_on('r-data-table@1.10.4:', type=('build', 'run'))
+ depends_on('r-fastdigest', type=('build', 'run'))
+ depends_on('r-igraph@1.0.1:', type=('build', 'run'))
+ depends_on('r-qs@0.21.1:', type=('build', 'run'))
+ depends_on('r-raster@2.5-8:', type=('build', 'run'))
+ depends_on('r-require@0.0.7:', type=('build', 'run'))
+ depends_on('r-whisker', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spades-tools/package.py b/var/spack/repos/builtin/packages/r-spades-tools/package.py
new file mode 100644
index 0000000000..47369e9bd7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-spades-tools/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2021 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 RSpadesTools(RPackage):
+ """Tools for Spatially Explicit Discrete Event Simulation (SpaDES) Models
+
+ Provides GIS and map utilities, plus additional modeling tools for developing
+ cellular automata, dynamic raster models, and agent based models in 'SpaDES'.
+ Included are various methods for spatial spreading, spatial agents, GIS
+ operations, random map generation, and others. See '?SpaDES.tools' for an
+ categorized overview of these additional tools."""
+
+ homepage = "https://spades-tools.predictiveecology.org/"
+ url = "https://cloud.r-project.org/src/contrib/SpaDES.tools_0.3.6.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/SpaDES.tools"
+
+ maintainers = ['dorton21']
+
+ version('0.3.6', sha256='661f8ee792874e7447be78103775b63f18ec69e773a7b275dd977adb406dd3e5')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-backports', type=('build', 'run'))
+ depends_on('r-checkmate@1.8.2:', type=('build', 'run'))
+ depends_on('r-circstats@0.2-4:', type=('build', 'run'))
+ depends_on('r-data-table@1.10.4:', type=('build', 'run'))
+ depends_on('r-fastmatch@1.1-0:', type=('build', 'run'))
+ depends_on('r-fpcompare@0.2.1:', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-quickplot', type=('build', 'run'))
+ depends_on('r-raster@2.5-8:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.12:', type=('build', 'run'))
+ depends_on('r-reproducible@0.2.0:', type=('build', 'run'))
+ depends_on('r-rgeos', type=('build', 'run'))
+ depends_on('r-sp@1.2-4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spades/package.py b/var/spack/repos/builtin/packages/r-spades/package.py
new file mode 100644
index 0000000000..3ce072f5fd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-spades/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 RSpades(RPackage):
+ """Develop and Run Spatially Explicit Discrete Event Simulation Models
+
+ Metapackage for implementing a variety of event-based models, with a
+ focus on spatially explicit models. These include raster-based,
+ event-based, and agent-based models."""
+
+ homepage = "https://spades.predictiveecology.org/"
+ url = "https://cloud.r-project.org/src/contrib/SpaDES_2.0.6.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/SpaDES"
+
+ maintainers = ['dorton21']
+
+ version('2.0.6', sha256='0fa59d1737c67abeb04eae894939bc4700f92d6c2cc2ec3489b4650720ede5a3')
+
+ depends_on('r@3.6:', type=('build', 'run'))
+ depends_on('r-quickplot', type=('build', 'run'))
+ depends_on('r-reproducible@1.2.1.9007:', type=('build', 'run'))
+ depends_on('r-spades-addins', type=('build', 'run'))
+ depends_on('r-spades-core@1.0.4:', type=('build', 'run'))
+ depends_on('r-spades-tools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spam/package.py b/var/spack/repos/builtin/packages/r-spam/package.py
index 0d5544124b..d7c3ffac83 100644
--- a/var/spack/repos/builtin/packages/r-spam/package.py
+++ b/var/spack/repos/builtin/packages/r-spam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,21 @@ from spack import *
class RSpam(RPackage):
- """spam: SPArse Matrix"""
+ """SPArse Matrix
+
+ Set of functions for sparse matrix algebra. Differences with other sparse
+ matrix packages are: (1) we only support (essentially) one sparse matrix
+ format, (2) based on transparent and simple structure(s), (3) tailored for
+ MCMC calculations within G(M)RF. (4) and it is fast and scalable (with the
+ extension package spam64). Documentation about 'spam' is provided by
+ vignettes included in this package, see also Furrer and Sain (2010)
+ <doi:10.18637/jss.v036.i10>; see 'citation("spam")' for details."""
homepage = "https://www.math.uzh.ch/pages/spam/"
url = "https://cloud.r-project.org/src/contrib/spam_2.3-0.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/spam"
+ version('2.6-0', sha256='638fdd658e94f7544b46f6b6568b20a9f390bcd703aff572a3a5249fef66be5c')
version('2.3-0.2', sha256='848fa95c0a71ac82af6344539af7b1c33563c687f06ead42851a68b621fff533')
depends_on('r@3.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-sparsem/package.py b/var/spack/repos/builtin/packages/r-sparsem/package.py
index 18db3c27d7..bd93f48ced 100644
--- a/var/spack/repos/builtin/packages/r-sparsem/package.py
+++ b/var/spack/repos/builtin/packages/r-sparsem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class RSparsem(RPackage):
- """Some basic linear algebra functionality for sparse matrices is provided:
- including Cholesky decomposition and backsolving as well as standard R
- subsetting and Kronecker products."""
+ """Sparse Linear Algebra
+
+ Some basic linear algebra functionality for sparse matrices is provided:
+ including Cholesky decomposition and backsolving as well as standard R
+ subsetting and Kronecker products."""
homepage = "http://www.econ.uiuc.edu/~roger/research/sparse/sparse.html"
url = "https://cloud.r-project.org/src/contrib/SparseM_1.74.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/SparseM"
+ version('1.78', sha256='d6b79ec881a10c91cb03dc23e6e783080ded9db4f2cb723755aa0d7d29a8b432')
version('1.77', sha256='a9329fef14ae4fc646df1f4f6e57efb0211811599d015f7bc04c04285495d45c')
version('1.76', sha256='c2c8e44376936a5fe6f09a37f3668016e66cbc687519cc952aa346a658a2b69b')
version('1.74', sha256='4712f0c80e9f3cb204497f146ba60b15e75976cdb7798996a7c51f841a85eeba')
diff --git a/var/spack/repos/builtin/packages/r-sparsematrixstats/package.py b/var/spack/repos/builtin/packages/r-sparsematrixstats/package.py
new file mode 100644
index 0000000000..8a1c35b339
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-sparsematrixstats/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RSparsematrixstats(RPackage):
+ """Summary Statistics for Rows and Columns of Sparse Matrices
+
+ High performance functions for row and column operations on sparse
+ matrices. For example: col / rowMeans2, col / rowMedians, col / rowVars
+ etc. Currently, the optimizations are limited to data in the column sparse
+ format. This package is inspired by the matrixStats package by Henrik
+ Bengtsson."""
+
+ homepage = "https://bioconductor.org/packages/sparseMatrixStats/"
+ git = "https://git.bioconductor.org/packages/sparseMatrixStats"
+
+ version('1.2.1', commit='9726f3d5e0f03b50c332d85d5e4c339c18b0494c')
+
+ depends_on('r-matrixgenerics', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-matrixstats', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spatial/package.py b/var/spack/repos/builtin/packages/r-spatial/package.py
index b2fc45f406..bb6384eeb2 100644
--- a/var/spack/repos/builtin/packages/r-spatial/package.py
+++ b/var/spack/repos/builtin/packages/r-spatial/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RSpatial(RPackage):
- """spatial: Functions for Kriging and Point Pattern Analysis"""
+ """Functions for Kriging and Point Pattern Analysis
+
+ Functions for kriging and point pattern analysis."""
homepage = "https://cloud.r-project.org/package=spatial"
url = "https://cloud.r-project.org/src/contrib/spatial_7.3-11.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/spatial"
+ version('7.3-12', sha256='7639039ee7407bd088e1b253376b2cb4fcdf4cc9124d6b48e4119d5cda872d63')
version('7.3-11', sha256='624448d2ac22e1798097d09fc5dc4605908a33f490b8ec971fc6ea318a445c11')
depends_on('r@3.0.0:', type=('build', 'run'))
- depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-mass', when='@:7.3-11', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spatialeco/package.py b/var/spack/repos/builtin/packages/r-spatialeco/package.py
index f028ebd8d5..81247e49ee 100644
--- a/var/spack/repos/builtin/packages/r-spatialeco/package.py
+++ b/var/spack/repos/builtin/packages/r-spatialeco/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,35 +7,42 @@ from spack import *
class RSpatialeco(RPackage):
- """Utilities to support spatial data manipulation, query,
- sampling and modelling.
- """
+ """Spatial Analysis and Modelling Utilities
+
+ Utilities to support spatial data manipulation, query, sampling and
+ modelling. Functions include models for species population density,
+ download utilities for climate and global deforestation spatial products,
+ spatial smoothing, multivariate separability, point process model for
+ creating pseudo- absences and sub-sampling, polygon and point-distance
+ landscape metrics, auto-logistic model, sampling models, cluster
+ optimization, statistical exploratory tools and raster-based metrics."""
homepage = "https://cloud.r-project.org/package=spatialEco"
url = "https://cloud.r-project.org/src/contrib/spatialEco_1.3-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/spatialEco"
+ version('1.3-5', sha256='d4fb211124edf828333841c44a5af01165c53d89af460144214d81e3c13983c7')
version('1.3-2', sha256='9dfa427ee8b112446b582f6739a1c40a6e3ad3d050f522082a28ce47c675e57a')
version('1.3-1', sha256='ff12e26cc1bbf7934fbf712c99765d96ce6817e8055faa15a26d9ebade4bbf1c')
version('1.3-0', sha256='cfa09673cb3bbed30b243082fc2d63ac09f48b9f072a18d32b95c2c29979d1d0')
depends_on('r@3.6:', type=('build', 'run'))
- depends_on('r-dplyr', type=('build', 'run'))
- depends_on('r-exactextractr', type=('build', 'run'))
- depends_on('r-spatstat', type=('build', 'run'))
- depends_on('r-rcurl', type=('build', 'run'))
- depends_on('r-rms', type=('build', 'run'))
- depends_on('r-yaimpute', type=('build', 'run'))
- depends_on('r-spatialpack@0.3:', type=('build', 'run'))
- depends_on('r-mgcv', type=('build', 'run'))
- depends_on('r-envstats', type=('build', 'run'))
depends_on('r-sp', type=('build', 'run'))
- depends_on('r-raster', type=('build', 'run'))
depends_on('r-sf', type=('build', 'run'))
- depends_on('r-cluster', type=('build', 'run'))
+ depends_on('r-raster', type=('build', 'run'))
+ depends_on('r-spatstat', type=('build', 'run'))
depends_on('r-spdep', type=('build', 'run'))
- depends_on('r-readr', type=('build', 'run'))
depends_on('r-rgeos', type=('build', 'run'))
- depends_on('r-rann', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
- depends_on('r-maptools', type=('build', 'run'))
+ depends_on('r-dplyr', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-exactextractr', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-rcurl', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-rms', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-yaimpute', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-spatialpack@0.3:', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-mgcv', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-envstats', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-cluster', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-readr', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-rann', when='@:1.3-2', type=('build', 'run'))
+ depends_on('r-maptools', when='@:1.3-2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spatialpack/package.py b/var/spack/repos/builtin/packages/r-spatialpack/package.py
index afa919cd10..d68f7edbfe 100644
--- a/var/spack/repos/builtin/packages/r-spatialpack/package.py
+++ b/var/spack/repos/builtin/packages/r-spatialpack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,24 @@ from spack import *
class RSpatialpack(RPackage):
- """Tools to assess the association between two spatial processes."""
+ """Tools to assess the association between two spatial processes
+
+ Tools to assess the association between two spatial processes. Currently,
+ several methodologies are implemented: A modified t-test to perform
+ hypothesis testing about the independence between the processes, a suitable
+ nonparametric correlation coefficient, the codispersion coefficient, and an
+ F test for assessing the multiple correlation between one spatial process
+ and several others. Functions for image processing and computing the
+ spatial association between images are also provided."""
homepage = "https://cloud.r-project.org/package=SpatialPack"
url = "https://cloud.r-project.org/src/contrib/SpatialPack_0.3-8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/SpatialPack"
+ version('0.3-8196', sha256='9027e1656db97b721a12f5eda46532c6a99b4a079299b8d12fb57d445b237b4d')
version('0.3-8', sha256='a0e54b5dee3cd30a634e2d30380fe163942b672073fd909be888803332ed5151')
version('0.3', sha256='4c80fc1c77bc97fc678e6e201ecf7f0f89dcf3417b3b497a28a3639e9b30bd8a')
depends_on('r@2.10:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@0.3-8196:', type=('build', 'run'))
+ depends_on('r-fastmatrix', when='@0.3-8196:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spatialreg/package.py b/var/spack/repos/builtin/packages/r-spatialreg/package.py
index 1a0065f528..55aa9b0c99 100644
--- a/var/spack/repos/builtin/packages/r-spatialreg/package.py
+++ b/var/spack/repos/builtin/packages/r-spatialreg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,23 +7,45 @@ from spack import *
class RSpatialreg(RPackage):
- """spatialreg: Spatial Regression Analysis"""
+ """Spatial Regression Analysis
+
+ A collection of all the estimation functions for spatial cross-sectional
+ models (on lattice/areal data using spatial weights matrices) contained up
+ to now in 'spdep', 'sphet' and 'spse'. These model fitting functions
+ include maximum likelihood methods for cross-sectional models proposed by
+ 'Cliff' and 'Ord' (1973, ISBN:0850860369) and (1981, ISBN:0850860814),
+ fitting methods initially described by 'Ord' (1975)
+ <doi:10.1080/01621459.1975.10480272>. The models are further described by
+ 'Anselin' (1988) <doi:10.1007/978-94-015-7799-1>. Spatial two stage least
+ squares and spatial general method of moment models initially proposed by
+ 'Kelejian' and 'Prucha' (1998) <doi:10.1023/A:1007707430416> and (1999)
+ <doi:10.1111/1468-2354.00027> are provided. Impact methods and MCMC fitting
+ methods proposed by 'LeSage' and 'Pace' (2009) <doi:10.1201/9781420064254>
+ are implemented for the family of cross-sectional spatial regression
+ models. Methods for fitting the log determinant term in maximum likelihood
+ and MCMC fitting are compared by 'Bivand et al.' (2013)
+ <doi:10.1111/gean.12008>, and model fitting methods by 'Bivand' and 'Piras'
+ (2015) <doi:10.18637/jss.v063.i18>; both of these articles include
+ extensive lists of references. 'spatialreg' >= 1.1-* correspond to 'spdep'
+ >= 1.1-1, in which the model fitting functions are deprecated and pass
+ through to 'spatialreg', but will mask those in 'spatialreg'. From versions
+ 1.2-*, the functions will be made defunct in 'spdep'."""
homepage = "https://cloud.r-project.org/package=spatialreg"
url = "https://cloud.r-project.org/src/contrib/spatialreg_1.1-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/spatialreg"
+ version('1.1-5', sha256='ddbf0773bad2e99b306116ae99a57bf29eecf723d1735820935a6fb7f331b27d')
version('1.1-3', sha256='7609cdfcdfe427d2643a0db6b5360be3f6d60ede8229436ab52092d1c9cf0480')
depends_on('r@3.3.0:', type=('build', 'run'))
- depends_on('r-boot', type=('build', 'run'))
- depends_on('r-coda', type=('build', 'run'))
- depends_on('r-expm', type=('build', 'run'))
- depends_on('r-gmodels', type=('build', 'run'))
- depends_on('r-learnbayes', type=('build', 'run'))
- depends_on('r-mass', type=('build', 'run'))
- depends_on('r-matrix', type=('build', 'run'))
- depends_on('r-nlme', type=('build', 'run'))
depends_on('r-spdata', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
depends_on('r-spdep', type=('build', 'run'))
+ depends_on('r-expm', type=('build', 'run'))
+ depends_on('r-coda', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-boot', type=('build', 'run'))
+ depends_on('r-learnbayes', type=('build', 'run'))
+ depends_on('r-nlme', type=('build', 'run'))
+ depends_on('r-gmodels', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spatstat-data/package.py b/var/spack/repos/builtin/packages/r-spatstat-data/package.py
index 991b87559b..ff2c5196f8 100644
--- a/var/spack/repos/builtin/packages/r-spatstat-data/package.py
+++ b/var/spack/repos/builtin/packages/r-spatstat-data/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,19 @@ from spack import *
class RSpatstatData(RPackage):
- """Contains all the datasets for the 'spatstat' package."""
+ """Datasets for 'spatstat'
+
+ Contains all the datasets for the 'spatstat' package."""
homepage = "https://cloud.r-project.org/package=spatstat.data"
url = "https://cloud.r-project.org/src/contrib/spatstat.data_1.4-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/spatstat.data"
+ version('1.7-0', sha256='bbc192d43f2b37b308566694cb48ecdbbc4f20ef44b6fc7636564a717a03c12f')
version('1.4-3', sha256='8955b6ac40cc7d0d89e02334bb46f4c223ff0755e5818f132fee753e77918ea2')
version('1.4-0', sha256='121e5bb92beb7ccac920f921e760f429fd71bcfe11cb9b07a7e7326c7a72ec8c')
depends_on('r@3.3:', type=('build', 'run'))
- depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@1.7-0:', type=('build', 'run'))
depends_on('r-spatstat-utils', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spatstat-utils/package.py b/var/spack/repos/builtin/packages/r-spatstat-utils/package.py
index 1cad42c005..53878be1d5 100644
--- a/var/spack/repos/builtin/packages/r-spatstat-utils/package.py
+++ b/var/spack/repos/builtin/packages/r-spatstat-utils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,16 @@ from spack import *
class RSpatstatUtils(RPackage):
- """Contains utility functions for the 'spatstat'
- package which may also be useful for other purposes.
- """
+ """Utility Functions for 'spatstat'
+
+ Contains utility functions for the 'spatstat' package which may also be
+ useful for other purposes."""
homepage = "https://cloud.r-project.org/package=spatstat.utils"
url = "https://cloud.r-project.org/src/contrib/spatstat.utils_1.17-0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/spatstat.utils"
+ version('1.20-2', sha256='62c2413f989965a9fa6395742a605004b736a27c24304e6ffaebf2134019ce18')
version('1.17-0', sha256='39cd683ed7f41d8adc9e28af073d91b244aa1cf5ad966dfbb396ee3ee79f0922')
version('1.15-0', sha256='90e07d730b6939f47f93c939afae10874b2c82bd402960ede4133de67dca2a0c')
diff --git a/var/spack/repos/builtin/packages/r-spatstat/package.py b/var/spack/repos/builtin/packages/r-spatstat/package.py
index 490e78c61a..95ca68bdae 100644
--- a/var/spack/repos/builtin/packages/r-spatstat/package.py
+++ b/var/spack/repos/builtin/packages/r-spatstat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-spdata/package.py b/var/spack/repos/builtin/packages/r-spdata/package.py
index d541d1d253..f09d568d97 100644
--- a/var/spack/repos/builtin/packages/r-spdata/package.py
+++ b/var/spack/repos/builtin/packages/r-spdata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,24 @@ from spack import *
class RSpdata(RPackage):
- """spData: Datasets for Spatial Analysis"""
+ """Datasets for Spatial Analysis
+
+ Diverse spatial datasets for demonstrating, benchmarking and teaching
+ spatial data analysis. It includes R data of class sf (defined by the
+ package 'sf'), Spatial ('sp'), and nb ('spdep'). Unlike other spatial data
+ packages such as 'rnaturalearth' and 'maps', it also contains data stored
+ in a range of file formats including GeoJSON, ESRI Shapefile and
+ GeoPackage. Some of the datasets are designed to illustrate specific
+ analysis techniques. cycle_hire() and cycle_hire_osm(), for example, is
+ designed to illustrate point pattern analysis techniques."""
homepage = "https://github.com/Nowosad/spData"
url = "https://cloud.r-project.org/src/contrib/spData_0.3.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/spData"
+ version('0.3.8', sha256='7a61268db4fdbfb004b77d36e953cbb3fdfdac7e8bb6c500628ec6c592c79ad6')
version('0.3.0', sha256='de24ea659541a6c795cd26a1f6a213e15061af9c97a24cba1c24ce30c6c24c98')
depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r-sp', when='@0.3.8:', type=('build', 'run'))
+ depends_on('r-raster', when='@0.3.8:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spdep/package.py b/var/spack/repos/builtin/packages/r-spdep/package.py
index 159b39fedd..97c52693a2 100644
--- a/var/spack/repos/builtin/packages/r-spdep/package.py
+++ b/var/spack/repos/builtin/packages/r-spdep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,25 +7,23 @@ from spack import *
class RSpdep(RPackage):
- """A collection of functions to create spatial weights matrix objects from
- polygon contiguities, from point patterns by distance and tessellations,
- for summarizing these objects, and for permitting their use in spatial
- data analysis, including regional aggregation by minimum spanning tree;
- a collection of tests for spatial autocorrelation, including global
- Moran's I, APLE, Geary's C, Hubert/Mantel general cross product statistic,
- Empirical Bayes estimates and AssunasReis Index, Getis/Ord G and
- multicoloured join count statistics, local Moran's I and Getis/Ord G,
- saddlepoint approximations and exact tests for global and local Moran's I;
- and functions for estimating spatial simultaneous autoregressive (SAR) lag
- and error models, impact measures for lag models, weighted and unweighted
- SAR and CAR spatial regression models, semi-parametric and Moran
- eigenvector spatial filtering, GM SAR error models, and generalized spatial
- two stage least squares models."""
+ """Spatial Dependence: Weighting Schemes, Statistics
+
+ A collection of functions to create spatial weights matrix objects from
+ polygon 'contiguities', from point patterns by distance and tessellations,
+ for summarizing these objects, and for permitting their use in spatial data
+ analysis, including regional aggregation by minimum spanning tree; a
+ collection of tests for spatial 'autocorrelation', including global 'Morans
+ I' and 'Gearys C' proposed by 'Cliff' and 'Ord' (1973, ISBN: 0850860369)
+ and (1981, ISBN: 0850860814), 'Hubert/Mantel' general cross product
+ statistic, Empirical Bayes estimates and 'Assuncao/Reis' (1999)
+ <doi:10.1002/(SICI)1097-0258(19990830)18:16%3C2147::AID-SIM179%3E3.0.CO"""
homepage = "https://r-forge.r-project.org/projects/spdep"
url = "https://cloud.r-project.org/src/contrib/spdep_0.6-13.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/spdep"
+ version('1.1-5', sha256='47cb46cf5cf1f4386eb1b5e4d8541d577d7f2939e74addbdb884ecf2323f6d5d')
version('1.1-2', sha256='ba0ca3a0ad6b9cc1dc46cadd9e79259949ad38c88f738e98e482d6c06640b31a')
version('1.0-2', sha256='6f9efa4347d5c13b49922b75481ac403431c3c76a65a109af29954aa7bb138b2')
version('0.6-13', sha256='ed345f4c7ea7ba064b187eb6b25f0ac46f17616f3b56ab89978935cdc67df1c4')
@@ -33,14 +31,14 @@ class RSpdep(RPackage):
depends_on('r@3.0.0:', when='@:0.7-7', type=('build', 'run'))
depends_on('r@3.3.0:', when='@0.7-8:', type=('build', 'run'))
depends_on('r-sp@1.0:', type=('build', 'run'))
- depends_on('r-learnbayes', type=('build', 'run'))
+ depends_on('r-spdata@0.2.6.0:', when='@1.0-2:', type=('build', 'run'))
+ depends_on('r-sf', when='@1.0-2:', type=('build', 'run'))
depends_on('r-deldir', type=('build', 'run'))
- depends_on('r-coda', type=('build', 'run'))
- depends_on('r-gmodels', type=('build', 'run'))
- depends_on('r-expm', type=('build', 'run'))
+ depends_on('r-boot@1.3-1:', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-learnbayes', type=('build', 'run'))
depends_on('r-mass', type=('build', 'run'))
- depends_on('r-boot@1.3-1:', type=('build', 'run'))
+ depends_on('r-coda', type=('build', 'run'))
+ depends_on('r-expm', type=('build', 'run'))
+ depends_on('r-gmodels', type=('build', 'run'))
depends_on('r-nlme', type=('build', 'run'))
- depends_on('r-spdata@0.2.6.0:', when='@1.0-2:', type=('build', 'run'))
- depends_on('r-sf', when='@1.0-2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-speedglm/package.py b/var/spack/repos/builtin/packages/r-speedglm/package.py
index 080d7071c4..e6b5eec3fc 100644
--- a/var/spack/repos/builtin/packages/r-speedglm/package.py
+++ b/var/spack/repos/builtin/packages/r-speedglm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,17 @@ from spack import *
class RSpeedglm(RPackage):
- """Fitting linear models and generalized linear models to
+ """Fitting Linear and Generalized Linear Models to Large Data Sets
+
+ Fitting linear models and generalized linear models to
large data sets by updating algorithms."""
homepage = "https://cloud.r-project.org/package=speedglm"
url = "https://cloud.r-project.org/src/contrib/speedglm_0.3-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/speedglm"
+ version('0.3-3', sha256='d065d0ee42fb772760fca8d97ad2aa56cd76b1d9ecb4e97478ec362429e16738')
version('0.3-2', sha256='5fcaf18324dc754152f528a44894944063303f780d33e58569ea7c306bfc45ac')
- depends_on('r-mass', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-spem/package.py b/var/spack/repos/builtin/packages/r-spem/package.py
index 6abc2823a7..376c5993c3 100644
--- a/var/spack/repos/builtin/packages/r-spem/package.py
+++ b/var/spack/repos/builtin/packages/r-spem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RSpem(RPackage):
- """S-system parameter estimation method.
+ """S-system parameter estimation method
This package can optimize the parameter in S-system models given time
series data"""
@@ -15,6 +15,7 @@ class RSpem(RPackage):
homepage = "https://bioconductor.org/packages/SPEM"
git = "https://git.bioconductor.org/packages/SPEM.git"
+ version('1.30.0', commit='6b2eb64bfe6287846b1408297dd46dc772431031')
version('1.24.0', commit='537ed19e466008f2972a246479b327c95177a99e')
version('1.22.0', commit='fddb7cd1f81e47eae603724ea149c2adca5b3eb4')
version('1.20.0', commit='b0e1049c61a35da00882d21026f4c1eb03b17517')
diff --git a/var/spack/repos/builtin/packages/r-splancs/package.py b/var/spack/repos/builtin/packages/r-splancs/package.py
index 58306eee5e..98c0257c1b 100644
--- a/var/spack/repos/builtin/packages/r-splancs/package.py
+++ b/var/spack/repos/builtin/packages/r-splancs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-splitstackshape/package.py b/var/spack/repos/builtin/packages/r-splitstackshape/package.py
index f63ed5959d..0d103437d4 100644
--- a/var/spack/repos/builtin/packages/r-splitstackshape/package.py
+++ b/var/spack/repos/builtin/packages/r-splitstackshape/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class RSplitstackshape(RPackage):
and which melt and dcast from reshape2 do not easily handle.
"""
- homepage = "http://github.com/mrdwab/splitstackshape"
+ homepage = "https://github.com/mrdwab/splitstackshape"
url = "https://cloud.r-project.org/src/contrib/splitstackshape_1.4.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/splitstackshape"
diff --git a/var/spack/repos/builtin/packages/r-sqldf/package.py b/var/spack/repos/builtin/packages/r-sqldf/package.py
index 6402080162..d82b430851 100644
--- a/var/spack/repos/builtin/packages/r-sqldf/package.py
+++ b/var/spack/repos/builtin/packages/r-sqldf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-squarem/package.py b/var/spack/repos/builtin/packages/r-squarem/package.py
index 6ffebf4168..09a538fa7d 100644
--- a/var/spack/repos/builtin/packages/r-squarem/package.py
+++ b/var/spack/repos/builtin/packages/r-squarem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,17 +7,21 @@ from spack import *
class RSquarem(RPackage):
- """Algorithms for accelerating the convergence of slow, monotone sequences
+ """Squared Extrapolation Methods for Accelerating EM-Like Monotone Algorithms
+
+ Algorithms for accelerating the convergence of slow, monotone sequences
from smooth, contraction mapping such as the EM algorithm. It can be used
- to accelerate any smooth, linearly convergent acceleration scheme. A
+ to accelerate any smooth, linearly convergent acceleration scheme. A
tutorial style introduction to this package is available in a vignette on
the CRAN download page or, when the package is loaded in an R session, with
- vignette("SQUAREM")."""
+ vignette("SQUAREM"). Refer to the J Stat Software article:
+ <doi:10.18637/jss.v092.i07>."""
- homepage = "http://www.jhsph.edu/agingandhealth/People/Faculty_personal_pages/Varadhan.html"
+ homepage = "https://www.jhsph.edu/agingandhealth/People/Faculty_personal_pages/Varadhan.html"
url = "https://cloud.r-project.org/src/contrib/SQUAREM_2017.10-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/SQUAREM"
+ version('2021.1', sha256='66e5e18ca29903e4950750bbd810f0f9df85811ee4195ce0a86d939ba8183a58')
version('2017.10-1', sha256='9b89905b436f1cf3faa9e3dabc585a76299e729e85ca659bfddb4b7cba11b283')
depends_on('r@3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-squash/package.py b/var/spack/repos/builtin/packages/r-squash/package.py
index 31db085fb5..6706ce493a 100644
--- a/var/spack/repos/builtin/packages/r-squash/package.py
+++ b/var/spack/repos/builtin/packages/r-squash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,18 @@ from spack import *
class RSquash(RPackage):
- """Color-Based Plots for Multivariate Visualization"""
+ """Color-Based Plots for Multivariate Visualization
+
+ Functions for color-based visualization of multivariate data, i.e.
+ colorgrams or heatmaps. Lower-level functions map numeric values to colors,
+ display a matrix as an array of colors, and draw color keys. Higher-level
+ plotting functions generate a bivariate histogram, a dendrogram aligned
+ with a color-coded matrix, a triangular distance matrix, and more."""
homepage = "https://cloud.r-project.org/package=squash"
url = "https://cloud.r-project.org/src/contrib/squash_1.0.8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/squash"
+ version('1.0.9', sha256='ff381c85071e3407574e3db28d789657f64e7d3f9d74ac123539de22ab8ac6f4')
version('1.0.8', sha256='e6932c0a461d5c85f7180a31d18a3eb4f28afd6769efe251075a4de12de039f4')
version('1.0.7', sha256='d2d7182a72dfd93b8b65e775bea11e891c38598fa49a3ed4f92ec1159ffab6f1')
diff --git a/var/spack/repos/builtin/packages/r-sseq/package.py b/var/spack/repos/builtin/packages/r-sseq/package.py
index a5238639d5..9eea513302 100644
--- a/var/spack/repos/builtin/packages/r-sseq/package.py
+++ b/var/spack/repos/builtin/packages/r-sseq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RSseq(RPackage):
"""Shrinkage estimation of dispersion in Negative Binomial models for RNA-
- seq experiments with small sample size.
+ seq experiments with small sample size
The purpose of this package is to discover the genes that are
differentially expressed between two conditions in RNA-seq experiments.
@@ -24,6 +24,7 @@ class RSseq(RPackage):
homepage = "https://bioconductor.org/packages/sSeq"
git = "https://git.bioconductor.org/packages/sSeq.git"
+ version('1.28.0', commit='401f6805628bdf6579cc0e643b7ed54319f024be')
version('1.22.0', commit='fa3895c9578edddca17b5d13a2678ee5830b85cc')
version('1.20.1', commit='91f31440323612cb04beb44404ab0a1bcb3ad87d')
version('1.18.0', commit='1f65e5a55ce0d51672b785450031872e6db5ca0f')
diff --git a/var/spack/repos/builtin/packages/r-stabledist/package.py b/var/spack/repos/builtin/packages/r-stabledist/package.py
index c187d4771e..469403cbf7 100644
--- a/var/spack/repos/builtin/packages/r-stabledist/package.py
+++ b/var/spack/repos/builtin/packages/r-stabledist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class RStabledist(RPackage):
generation for (skew) stable distributions, using the parametrizations of
Nolan."""
- homepage = "http://www.rmetrics.org/"
+ homepage = "https://www.rmetrics.org/"
url = "https://cloud.r-project.org/src/contrib/stabledist_0.7-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/stabledist"
diff --git a/var/spack/repos/builtin/packages/r-stanheaders/package.py b/var/spack/repos/builtin/packages/r-stanheaders/package.py
index d561f2e8ff..b5a38d89c2 100644
--- a/var/spack/repos/builtin/packages/r-stanheaders/package.py
+++ b/var/spack/repos/builtin/packages/r-stanheaders/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RStanheaders(RPackage):
- """The C++ header files of the Stan project are provided by this package,
+ """C++ Header Files for Stan
+
+ The C++ header files of the Stan project are provided by this package,
but it contains no R code, vignettes, or function documentation. There is a
shared object containing part of the CVODES library, but it is not
accessible from R. StanHeaders is only useful for developers who want to
@@ -23,14 +25,19 @@ class RStanheaders(RPackage):
'rstan' package provides user-facing R functions to parse, compile, test,
estimate, and analyze Stan models."""
- homepage = "http://mc-stan.org/"
+ homepage = "https://mc-stan.org/"
url = "https://cloud.r-project.org/src/contrib/StanHeaders_2.10.0-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/StanHeaders"
+ version('2.21.0-7', sha256='27546e064f0e907e031d9185ad55245d118d82fbe3074ecb1d76fae8b9f2336b')
+ version('2.21.0-6', sha256='a0282a054d0e6ab310ec7edcffa953b77c7e4a858d9ac7028aab1b4fb4ce8cf3')
version('2.18.1-10', sha256='8a9f7e22105428e97d14f44f75395c37cf8c809de148d279c620024452b3565a')
version('2.18.1', sha256='ce0d609a7cd11725b1203bdeae92acc54da3a48b8266eb9dbdb9d95b14df9209')
version('2.17.1', sha256='4300a1910a2eb40d7a6ecabea3c1e26f0aa9421eeb3000689272a0f62cb80d97')
version('2.10.0-2', sha256='ce4e335172bc65da874699302f6ba5466cdbcf69458c11954c0f131fc78b59b7')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@3.4.0:', when='@2.18.0:', type=('build', 'run'))
+ depends_on('r-rcppparallel@5.0.1:', when='@2.21.0:', type=('build', 'run'))
+ depends_on('r-rcppeigen', when='@2.21.0:', type=('build', 'run'))
depends_on('pandoc', type='build')
diff --git a/var/spack/repos/builtin/packages/r-stargazer/package.py b/var/spack/repos/builtin/packages/r-stargazer/package.py
index fff3c6ece2..1e58388b18 100644
--- a/var/spack/repos/builtin/packages/r-stargazer/package.py
+++ b/var/spack/repos/builtin/packages/r-stargazer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-statmod/package.py b/var/spack/repos/builtin/packages/r-statmod/package.py
index f95c996a77..7da756e3c9 100644
--- a/var/spack/repos/builtin/packages/r-statmod/package.py
+++ b/var/spack/repos/builtin/packages/r-statmod/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,19 +7,21 @@ from spack import *
class RStatmod(RPackage):
- """A collection of algorithms and functions to aid statistical
- modeling. Includes growth curve comparisons, limiting dilution
- analysis (aka ELDA), mixed linear models, heteroscedastic
- regression, inverse-Gaussian probability calculations, Gauss
- quadrature and a secure convergence algorithm for nonlinear
- models. Includes advanced generalized linear model functions
- that implement secure convergence, dispersion modeling and
- Tweedie power-law families."""
+ """Statistical Modeling
+
+ A collection of algorithms and functions to aid statistical modeling.
+ Includes limiting dilution analysis (aka ELDA), growth curve comparisons,
+ mixed linear models, heteroscedastic regression, inverse-Gaussian
+ probability calculations, Gauss quadrature and a secure convergence
+ algorithm for nonlinear models. Also includes advanced generalized linear
+ model functions including Tweedie and Digamma distributional families and a
+ secure convergence algorithm."""
homepage = "https://cloud.r-project.org/package=statmod"
url = "https://cloud.r-project.org/src/contrib/statmod_1.4.30.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/statmod"
+ version('1.4.35', sha256='de5e428f81c306849af47b9ae583362855e166b1da62893734f1154cb5b3f8fe')
version('1.4.32', sha256='2f67a1cfa66126e6345f8a40564a3077d08f1748f17cb8c8fb05c94ed0f57e20')
version('1.4.30', sha256='9d2c1722a85f53623a9ee9f73d835119ae22ae2b8ec7b50d675401e314ea641f')
diff --git a/var/spack/repos/builtin/packages/r-statnet-common/package.py b/var/spack/repos/builtin/packages/r-statnet-common/package.py
index 1683197747..900a9b5f13 100644
--- a/var/spack/repos/builtin/packages/r-statnet-common/package.py
+++ b/var/spack/repos/builtin/packages/r-statnet-common/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,20 @@ from spack import *
class RStatnetCommon(RPackage):
- """Non-statistical utilities used by the software developed by the
- Statnet Project. They may also be of use to others."""
+ """Common R Scripts and Utilities Used by the Statnet Project Software
- homepage = "http://www.statnet.org"
+ Non-statistical utilities used by the software developed by the Statnet
+ Project. They may also be of use to others."""
+
+ homepage = "https://www.statnet.org"
url = "https://cloud.r-project.org/src/contrib/statnet.common_3.3.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/statnet.common"
+ version('4.4.1', sha256='4ecf2b84718d7fb60f196215b4cf6f52cd6b26cc9148a6da6981b26e885509fd')
version('4.3.0', sha256='834a3359eac967df0420eee416ae4983e3b502a3de56bb24f494a7ca4104e959')
version('4.2.0', sha256='1176c3303436ebe858d02979cf0a0c33e4e2d1f3637516b4761d573ccd132461')
version('3.3.0', sha256='d714c4e7b0cbf71b7a628af443f5be530e74ad1e21f6b04f1b1087f6d7e40fa4')
depends_on('r@3.5:', when='@4.2.0:', type=('build', 'run'))
depends_on('r-coda', when='@4.1.2:', type=('build', 'run'))
+ depends_on('r-rle', when='@4.4.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-stringfish/package.py b/var/spack/repos/builtin/packages/r-stringfish/package.py
new file mode 100644
index 0000000000..198757ad17
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-stringfish/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RStringfish(RPackage):
+ """Alt String Implementation
+
+ Provides an extendable, performant and multithreaded 'alt-string'
+ implementation backed by 'C++' vectors and strings."""
+
+ homepage = "https://github.com/traversc/stringfish"
+ url = "https://cloud.r-project.org/src/contrib/stringfish_0.14.2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/stringfish"
+
+ maintainers = ['dorton21']
+
+ version('0.14.2', sha256='9373cfc715cda1527fd20179435977b8e59e19d8c5ef82a31e519f93fb624ced')
+
+ depends_on('gmake', type='build')
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.18.3:', type=('build', 'run'))
+ depends_on('r-rcppparallel', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-stringi/package.py b/var/spack/repos/builtin/packages/r-stringi/package.py
index a02c9584bb..fe29df532a 100644
--- a/var/spack/repos/builtin/packages/r-stringi/package.py
+++ b/var/spack/repos/builtin/packages/r-stringi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,20 +7,22 @@ from spack import *
class RStringi(RPackage):
- """Allows for fast, correct, consistent, portable, as well as convenient
- character string/text processing in every locale and any native encoding.
- Owing to the use of the ICU library, the package provides R users with
- platform-independent functions known to Java, Perl, Python, PHP, and Ruby
- programmers. Among available features there are: pattern searching (e.g.,
- with ICU Java-like regular expressions or the Unicode Collation Algorithm),
- random string generation, case mapping, string transliteration,
- concatenation, Unicode normalization, date-time formatting and parsing,
- etc."""
+ """Character String Processing Facilities
- homepage = "http://www.gagolewski.com/software/stringi/"
- url = "https://cloud.r-project.org/src/contrib/stringi_1.1.2.tar.gz"
- list_url = "https://cloud.r-project.org/src/contrib/Archive/stringi"
+ A multitude of character string/text/natural language processing tools:
+ pattern searching (e.g., with 'Java'-like regular expressions or the
+ 'Unicode' collation algorithm), random string generation, case mapping,
+ string transliteration, concatenation, sorting, padding, wrapping, Unicode
+ normalisation, date-time formatting and parsing, and many more. They are
+ fast, consistent, convenient, and - owing to the use of the 'ICU'
+ (International Components for Unicode) library - portable across all
+ locales and platforms."""
+ homepage = "https://stringi.gagolewski.com/"
+ cran = "stringi"
+
+ version('1.6.2', sha256='3a151dd9b982696370ac8df3920afe462f8abbd4e41b479ff8b66cfd7b602dae')
+ version('1.5.3', sha256='224f1e8dedc962a676bc2e1f53016f6a129a0a38aa0f35daf6dece62ff714010')
version('1.4.3', sha256='13cecb396b700f81af38746e97b550a1d9fda377ca70c78f6cdfc770d33379ed')
version('1.3.1', sha256='32df663bb6e9527e1ac265eec2116d26f7b7e62ea5ae7cc5de217cbb8defc362')
version('1.1.5', sha256='651e85fc4ec6cf71ad8a4347f2bd4b00a490cf9eec20921a83bf5222740402f2')
@@ -28,5 +30,8 @@ class RStringi(RPackage):
version('1.1.2', sha256='e50b7162ceb7ebae403475f6f8a76a39532a2abc82112db88661f48aa4b9218e')
version('1.1.1', sha256='243178a138fe68c86384feb85ead8eb605e8230113d638da5650bca01e24e165')
- depends_on('r@2.14:', type=('build', 'run'))
+ depends_on('r@2.14:', when='@:1.5.3', type=('build', 'run'))
+ depends_on('r@3.1:', when='@1.6.1:', type=('build', 'run'))
depends_on('icu4c@52:')
+ depends_on('icu4c@55:', when='@1.5.3:')
+ # since version 1.6.1 there is also a SystemRequirement on C++11
diff --git a/var/spack/repos/builtin/packages/r-stringr/package.py b/var/spack/repos/builtin/packages/r-stringr/package.py
index 7ff1aad0d7..f19f6998fe 100644
--- a/var/spack/repos/builtin/packages/r-stringr/package.py
+++ b/var/spack/repos/builtin/packages/r-stringr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-strucchange/package.py b/var/spack/repos/builtin/packages/r-strucchange/package.py
index ab24deeb75..9004be8628 100644
--- a/var/spack/repos/builtin/packages/r-strucchange/package.py
+++ b/var/spack/repos/builtin/packages/r-strucchange/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,23 @@ from spack import *
class RStrucchange(RPackage):
- """Testing, monitoring and dating structural changes in (linear)
- regression models."""
+ """Testing, Monitoring, and Dating Structural Changes
+
+ Testing, monitoring and dating structural changes in (linear) regression
+ models. strucchange features tests/methods from the generalized fluctuation
+ test framework as well as from the F test (Chow test) framework. This
+ includes methods to fit, plot and test fluctuation processes (e.g., CUSUM,
+ MOSUM, recursive/moving estimates) and F statistics, respectively. It is
+ possible to monitor incoming data online using fluctuation processes.
+ Finally, the breakpoints in regression models with structural changes can
+ be estimated together with confidence intervals. Emphasis is always given
+ to methods for visualizing the data."""
homepage = "https://cloud.r-project.org/package=strucchange"
url = "https://cloud.r-project.org/src/contrib/strucchange_1.5-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/strucchange"
+ version('1.5-2', sha256='7d247c5ae6f5a63c80e478799d009c57fb8803943aa4286d05f71235cc1002f8')
version('1.5-1', sha256='740e2e20477b9fceeef767ae1002adc5ec397cb0f7daba5289a2c23b0dddaf31')
depends_on('r@2.10.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-subplex/package.py b/var/spack/repos/builtin/packages/r-subplex/package.py
index 7a28b6e60e..044d254a0e 100644
--- a/var/spack/repos/builtin/packages/r-subplex/package.py
+++ b/var/spack/repos/builtin/packages/r-subplex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,16 @@ from spack import *
class RSubplex(RPackage):
- """Unconstrained Optimization using the Subplex Algorithm"""
+ """Unconstrained Optimization using the Subplex Algorithm
+
+ The subplex algorithm for unconstrained optimization, developed by Tom
+ Rowan <https://www.netlib.org/opt/subplex.tgz>."""
homepage = "https://cloud.r-project.org/package=subplex"
url = "https://cloud.r-project.org/src/contrib/subplex_1.4-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/subplex"
+ version('1.6', sha256='0d05da1622fffcd20a01cc929fc6c2b7df40a8246e7018f7f1f3c175b774cbf9')
version('1.5-4', sha256='ff94cf6b1560f78c31712c05bc2bc1b703339e09c7fc777ee94abf15fa7a8b81')
version('1.5-2', sha256='6f8c3ccadf1ccd7f11f3eae28cec16eed3695f14e351b864d807dbaba6cd3ded')
version('1.4-1', sha256='94b7b961aaa229a6f025151191ed50272af1394be69f1c41146b9e8c786caec6')
diff --git a/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py b/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py
index 5834c170da..846e042884 100644
--- a/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py
+++ b/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RSummarizedexperiment(RPackage):
- """SummarizedExperiment container.
+ """SummarizedExperiment container
The SummarizedExperiment container contains one or more assays, each
represented by a matrix-like object of numeric or other mode. The rows
@@ -17,6 +17,7 @@ class RSummarizedexperiment(RPackage):
homepage = "https://bioconductor.org/packages/SummarizedExperiment"
git = "https://git.bioconductor.org/packages/SummarizedExperiment.git"
+ version('1.20.0', commit='874aa87a481e4076a0ec3369f55c9c0a1ab8025e')
version('1.18.2', commit='e22fafe')
version('1.14.1', commit='2c68d99e11c7345e5ed388370822ea48395c64a4')
version('1.12.0', commit='5f8416864636add121ec1d6737ebb89a42227fd7')
@@ -25,22 +26,24 @@ class RSummarizedexperiment(RPackage):
version('1.6.5', commit='ec69cd5cfbccaef148a9f6abdfb3e22e888695d0')
depends_on('r@3.2:', type=('build', 'run'))
+ depends_on('r-matrixgenerics@1.1.3:', type=('build', 'run'))
depends_on('r-genomicranges@1.27.22:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.29.14:', when='@1.8.1:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.31.17:', when='@1.10.1:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.33.6:', when='@1.12.0:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.41.5:', when='@1.20.0:', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
- depends_on('r-delayedarray@0.1.9:', type=('build', 'run'))
depends_on('r-matrix', type=('build', 'run'))
depends_on('r-biocgenerics@0.15.3:', type=('build', 'run'))
depends_on('r-s4vectors@0.13.13:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.25:', when='@1.10.1:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.27.12:', when='@1.20.0:', type=('build', 'run'))
depends_on('r-iranges@2.7.2:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.11.4:', type=('build', 'run'))
-
- depends_on('r-genomicranges@1.29.14:', when='@1.8.1:', type=('build', 'run'))
- depends_on('r-delayedarray@0.3.20:', when='@1.8.1:', type=('build', 'run'))
depends_on('r-iranges@2.11.17:', when='@1.8.1:', type=('build', 'run'))
- depends_on('r-genomeinfodb@1.13.1:', when='@1.8.1:', type=('build', 'run'))
-
- depends_on('r-genomicranges@1.31.17:', when='@1.10.1:', type=('build', 'run'))
- depends_on('r-s4vectors@0.17.25:', when='@1.10.1:', type=('build', 'run'))
depends_on('r-iranges@2.13.16:', when='@1.10.1:', type=('build', 'run'))
-
- depends_on('r-genomicranges@1.33.6:', when='@1.12.0:', type=('build', 'run'))
+ depends_on('r-iranges@2.23.9:', when='@1.20.0:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.11.4:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.13.1:', when='@1.8.1:', type=('build', 'run'))
+ depends_on('r-delayedarray@0.1.9:', type=('build', 'run'))
+ depends_on('r-delayedarray@0.3.20:', when='@1.8.1:', type=('build', 'run'))
+ depends_on('r-delayedarray@0.15.10:', when='@1.20.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-suppdists/package.py b/var/spack/repos/builtin/packages/r-suppdists/package.py
index f85ee2c0a8..683c029cee 100644
--- a/var/spack/repos/builtin/packages/r-suppdists/package.py
+++ b/var/spack/repos/builtin/packages/r-suppdists/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-survey/package.py b/var/spack/repos/builtin/packages/r-survey/package.py
index c07a9ce22c..adf6b693c8 100644
--- a/var/spack/repos/builtin/packages/r-survey/package.py
+++ b/var/spack/repos/builtin/packages/r-survey/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RSurvey(RPackage):
- """Summary statistics, two-sample tests, rank tests, generalised linear
+ """Analysis of Complex Survey Samples
+
+ Summary statistics, two-sample tests, rank tests, generalised linear
models, cumulative link models, Cox models, loglinear models, and general
maximum pseudolikelihood estimation for multistage stratified,
cluster-sampled, unequally weighted survey samples. Variances by Taylor
@@ -15,15 +17,16 @@ class RSurvey(RPackage):
calibration, and raking. Two-phase subsampling designs. Graphics. PPS
sampling without replacement. Principal components, factor analysis."""
- homepage = "http://r-survey.r-forge.r-project.org/survey/"
+ homepage = "https://r-survey.r-forge.r-project.org/survey/"
url = "https://cloud.r-project.org/src/contrib/survey_3.30-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/survey"
+ version('4.0', sha256='b053f40f4cfa90507ca524f72d3b3a4b4869def52f11f907a14f1c6d90063de1')
version('3.36', sha256='90f32e9d2b52eacf881e6717a4b5edfc5a3beb5da516f8372293549589d79475')
version('3.35-1', sha256='11e5ddde9c8c21dfaed0b1247036e068ad32782c76ff71f7937eb7585dd364db')
version('3.30-3', sha256='be45d00b22d857e66905789031f2db1037505f80ce15d4b0ea84dabb03bc9e6d')
- depends_on('r@2.14.0:', when='@:3.31-5', type=('build', 'run'))
+ depends_on('r@2.14.0:', type=('build', 'run'))
depends_on('r@2.16.0:', when='@3.32:3.34', type=('build', 'run'))
depends_on('r@3.1.0:', when='@3.35:', type=('build', 'run'))
depends_on('r-matrix', when='@3.31:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-survival/package.py b/var/spack/repos/builtin/packages/r-survival/package.py
index 8e2bfb7f37..815986ce65 100644
--- a/var/spack/repos/builtin/packages/r-survival/package.py
+++ b/var/spack/repos/builtin/packages/r-survival/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RSurvival(RPackage):
- """Contains the core survival analysis routines, including definition of
+ """Survival Analysis
+
+ Contains the core survival analysis routines, including definition of
Surv objects, Kaplan-Meier and Aalen-Johansen (multi-state) curves, Cox
models, and parametric accelerated failure time models."""
@@ -15,6 +17,7 @@ class RSurvival(RPackage):
url = "https://cloud.r-project.org/src/contrib/survival_2.41-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/survival"
+ version('3.2-7', sha256='5356cd73da7ecfda4042e8a8ae00d3531b106f7b39ca31a1843eadf288418a46')
version('3.1-12', sha256='b62ed66eb646f3df13f7e9bf6571e3bfecae128c66491e174c8833cbef1bf21f')
version('2.44-1.1', sha256='55b151e15fcd24ccb3acf60331c9a7ad82bc10f3841ab3be9bc2a37e9ee751b9')
version('2.44-1', sha256='82c44afa41fe4504295855f1da4a5940c3289dfd61bc664bf211bb67c051a909')
diff --git a/var/spack/repos/builtin/packages/r-sva/package.py b/var/spack/repos/builtin/packages/r-sva/package.py
index 79ecbaea3c..2c3b51e302 100644
--- a/var/spack/repos/builtin/packages/r-sva/package.py
+++ b/var/spack/repos/builtin/packages/r-sva/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RSva(RPackage):
- """Surrogate Variable Analysis.
+ """Surrogate Variable Analysis
The sva package contains functions for removing batch effects and other
unwanted variation in high-throughput experiment. Specifically, the sva
@@ -31,6 +31,7 @@ class RSva(RPackage):
homepage = "https://bioconductor.org/packages/sva"
git = "https://git.bioconductor.org/packages/sva.git"
+ version('3.38.0', commit='5ded8ba649200ec4829051f86a59e1a2548a7ab8')
version('3.32.1', commit='1b8286734d00533b49d9f1456b6523cc778bb744')
version('3.30.1', commit='fdb98bc2299dc5213c62d83cb7c0b1c1b4912f0c')
version('3.28.0', commit='dd4937229dbccd2f383a04d5237fe147a884728d')
@@ -43,3 +44,4 @@ class RSva(RPackage):
depends_on('r-biocparallel', type=('build', 'run'))
depends_on('r-matrixstats', type=('build', 'run'))
depends_on('r-limma', type=('build', 'run'))
+ depends_on('r-edger', when='@3.38.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-svglite/package.py b/var/spack/repos/builtin/packages/r-svglite/package.py
new file mode 100644
index 0000000000..f8804f3ed5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-svglite/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RSvglite(RPackage):
+ """An 'SVG' Graphics Device
+
+ A graphics device for R that produces 'Scalable Vector Graphics'. 'svglite'
+ is a fork of the older 'RSvgDevice' package."""
+
+ homepage = "https://svglite.r-lib.org/"
+ cran = "svglite"
+
+ version('2.0.0', sha256='76e625fe172a5b7ce99a67b6d631b037b3f7f0021cfe15f2e15e8851b89defa5')
+
+ depends_on('r+X', type=('build', 'run'))
+ depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-systemfonts@1.0.0:', type=('build', 'run'))
+ depends_on('r-cpp11', type=('build', 'run'))
+ depends_on('libpng')
diff --git a/var/spack/repos/builtin/packages/r-sys/package.py b/var/spack/repos/builtin/packages/r-sys/package.py
index 1901e54354..b6774c7e79 100644
--- a/var/spack/repos/builtin/packages/r-sys/package.py
+++ b/var/spack/repos/builtin/packages/r-sys/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RSys(RPackage):
- """Drop-in replacements for the base system2() function with fine control
+ """Powerful and Reliable Tools for Running System Commands in R
+
+ Drop-in replacements for the base system2() function with fine control
and consistent behavior across platforms. Supports clean interruption,
timeout, background tasks, and streaming STDIN / STDOUT / STDERR over
binary or text connections. Arguments on Windows automatically get encoded
@@ -17,6 +19,7 @@ class RSys(RPackage):
url = "https://cloud.r-project.org/src/contrib/sys_3.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/sys"
+ version('3.4', sha256='17f88fbaf222f1f8fd07919461093dac0e7175ae3c3b3264b88470617afd0487')
version('3.2', sha256='2819498461fe2ce83d319d1a47844e86bcea6d01d10861818dba289e7099bbcc')
def flag_handler(self, name, flags):
diff --git a/var/spack/repos/builtin/packages/r-systemfonts/package.py b/var/spack/repos/builtin/packages/r-systemfonts/package.py
new file mode 100644
index 0000000000..e07c313761
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-systemfonts/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 RSystemfonts(RPackage):
+ """System Native Font Finding
+
+ Provides system native access to the font catalogue. As font handling
+ varies between systems it is difficult to correctly locate installed fonts
+ across different operating systems. The 'systemfonts' package provides
+ bindings to the native libraries on Windows, macOS and Linux for finding
+ font files that can then be used further by e.g. graphic devices. The main
+ use is intended to be from compiled code but 'systemfonts' also provides
+ access from R."""
+
+ homepage = "https://github.com/r-lib/systemfonts"
+ cran = "systemfonts"
+
+ version('1.0.1', sha256='401db4d9e78e3a5e00b7a0b4fbad7fbb1c584734469b65fe5b7ebe1851c7a797')
+
+ depends_on('r@3.2.0:', type=('build', 'run'))
+ depends_on('r-cpp11@0.2.1:', type=('build', 'run'))
+ depends_on('fontconfig')
+ depends_on('freetype')
diff --git a/var/spack/repos/builtin/packages/r-tarifx/package.py b/var/spack/repos/builtin/packages/r-tarifx/package.py
index 2aac0efab2..569559bbb0 100644
--- a/var/spack/repos/builtin/packages/r-tarifx/package.py
+++ b/var/spack/repos/builtin/packages/r-tarifx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,15 @@ from spack import *
class RTarifx(RPackage):
- """A collection of various utility and convenience functions."""
+ """Collection of Utility and Convenience Functions
+
+ A collection of various utility and convenience functions."""
homepage = "https://cloud.r-project.org/package=taRifx"
url = "https://cloud.r-project.org/src/contrib/taRifx_1.0.6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/taRifx"
+ version('1.0.6.2', sha256='89d031db00a94ae57c7ace0d9aa39ba2f960f96fd48d2d1e4c7ebb62a2969b15')
version('1.0.6.1', sha256='d4c832b26d476a395ddf8349c42613270023c8bbf52a274d280be6284c11d7e2')
version('1.0.6', sha256='3dc70ac9c828d904cbac9fc9465918cd58cb5e9e35e92fe0cf38f436a1017782')
diff --git a/var/spack/repos/builtin/packages/r-taxizedb/package.py b/var/spack/repos/builtin/packages/r-taxizedb/package.py
index 3002e6e8f5..377b7e377b 100644
--- a/var/spack/repos/builtin/packages/r-taxizedb/package.py
+++ b/var/spack/repos/builtin/packages/r-taxizedb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,20 +7,29 @@ from spack import *
class RTaxizedb(RPackage):
- """taxizedb: Tools for Working with 'Taxonomic' Databases"""
+ """Tools for Working with 'Taxonomic' Databases
+
+ Tools for working with 'taxonomic' databases, including utilities for
+ downloading databases, loading them into various 'SQL' databases, cleaning
+ up files, and providing a 'SQL' connection that can be used to do 'SQL'
+ queries directly or used in 'dplyr'."""
homepage = "https://cloud.r-project.org/package=taxizedb"
url = "https://cloud.r-project.org/src/contrib/taxizedb_0.1.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/taxizedb/"
+ version('0.3.0', sha256='5f28338a233f0021097147e74c5f83107e5847de3413eceb308208e39af9fcb4')
version('0.1.4', sha256='5a40569a2b5abe56201f112a10220150353412df39b7e8d21ea8698f424cf295')
depends_on('r-curl@2.4:', type=('build', 'run'))
depends_on('r-dbi@0.6-1:', type=('build', 'run'))
- depends_on('r-rpostgresql@0.4.1:', type=('build', 'run'))
- depends_on('r-rmysql@0.10.11:', type=('build', 'run'))
depends_on('r-rsqlite@1.1.2:', type=('build', 'run'))
depends_on('r-dplyr@0.7.0:', type=('build', 'run'))
+ depends_on('r-tibble', when='@0.3.0:', type=('build', 'run'))
+ depends_on('r-rlang', when='@0.3.0:', type=('build', 'run'))
+ depends_on('r-readr@1.1.1:', when='@0.3.0:', type=('build', 'run'))
depends_on('r-dbplyr@1.0.0:', type=('build', 'run'))
depends_on('r-magrittr@1.5:', type=('build', 'run'))
depends_on('r-hoardr@0.1.0:', type=('build', 'run'))
+ depends_on('r-rpostgresql@0.4.1:', when='@:0.1.4', type=('build', 'run'))
+ depends_on('r-rmysql@0.10.11:', when='@:0.1.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tclust/package.py b/var/spack/repos/builtin/packages/r-tclust/package.py
index 393e56e84b..e8e48f94ae 100644
--- a/var/spack/repos/builtin/packages/r-tclust/package.py
+++ b/var/spack/repos/builtin/packages/r-tclust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,18 @@ from spack import *
class RTclust(RPackage):
- """Provides functions for robust trimmed clustering."""
+ """Robust Trimmed Clustering
+
+ Provides functions for robust trimmed clustering. The methods are described
+ in Garcia-Escudero (2008) <doi:10.1214/07-AOS515>, Fritz et al. (2012)
+ <doi:10.18637/jss.v047.i12>, Garcia-Escudero et al. (2011)
+ <doi:10.1007/s11222-010-9194-z> and others."""
homepage = "https://cloud.r-project.org/package=tclust"
url = "https://cloud.r-project.org/src/contrib/tclust_1.3-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tclust"
+ version('1.4-2', sha256='95dcd07dbd16383f07f5cea8561e7f3bf314e4a7483879841103b149fc8c65d9')
version('1.4-1', sha256='4b0be612c8ecd7b4eb19a44ab6ac8f5d40515600ae1144c55989b6b41335ad9e')
version('1.3-1', sha256='fe4479a73b947d8f6c1cc63587283a8b6223d430d39eee4e5833a06d3d1726d2')
version('1.2-7', sha256='7d2cfa35bbd44086af45be842e6c4743380c7cc8a0f985d2bb7c1a0690c878d7')
diff --git a/var/spack/repos/builtin/packages/r-teachingdemos/package.py b/var/spack/repos/builtin/packages/r-teachingdemos/package.py
index b1d5d8e3a7..a97d91e871 100644
--- a/var/spack/repos/builtin/packages/r-teachingdemos/package.py
+++ b/var/spack/repos/builtin/packages/r-teachingdemos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RTeachingdemos(RPackage):
- """TeachingDemos: Demonstrations for Teaching and Learning.
+ """Demonstrations for Teaching and Learning.
Demonstration functions that can be used in a classroom to demonstrate
statistical concepts, or on your own to better understand the concepts
@@ -17,4 +17,7 @@ class RTeachingdemos(RPackage):
url = "https://cloud.r-project.org/src/contrib/TeachingDemos_2.10.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/TeachingDemos"
+ version('2.12', sha256='3e75405ce1affa406d6df85e06f96381412bc7a2810b25d8c81bfe64c4698644')
version('2.10', sha256='2ef4c2e36ba13e32f66000e84281a3616584c86b255bca8643ff3fe4f78ed704')
+
+ depends_on('r@2.10:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tensor/package.py b/var/spack/repos/builtin/packages/r-tensor/package.py
index 6fc8ace494..ecbf1a8aa8 100644
--- a/var/spack/repos/builtin/packages/r-tensor/package.py
+++ b/var/spack/repos/builtin/packages/r-tensor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-tensora/package.py b/var/spack/repos/builtin/packages/r-tensora/package.py
index 20cc9794a4..9b478c8084 100644
--- a/var/spack/repos/builtin/packages/r-tensora/package.py
+++ b/var/spack/repos/builtin/packages/r-tensora/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,14 +7,18 @@ from spack import *
class RTensora(RPackage):
- """The package provides convenience functions for advance linear algebra
- with tensors and computation with datasets of tensors on a higher level
- abstraction."""
+ """Advanced Tensor Arithmetic with Named Indices
+
+ Provides convenience functions for advanced linear algebra with tensors and
+ computation with data sets of tensors on a higher level abstraction. It
+ includes Einstein and Riemann summing conventions, dragging, co- and
+ contravariate indices, parallel computations on sequences of tensors."""
homepage = "https://cloud.r-project.org/package=tensorA"
url = "https://cloud.r-project.org/src/contrib/tensorA_0.36.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tensorA"
+ version('0.36.2', sha256='8e8947566bd3b65a54de4269df1abaa3d49cf5bfd2a963c3274a524c8a819ca7')
version('0.36.1', sha256='c7ffe12b99867675b5e9c9f31798f9521f14305c9d9f9485b171bcbd8697d09c')
version('0.36', sha256='97b3e72f26ca3a756d045008764d787a32c68f0a276fb7a29b6e1b4592fdecf6')
diff --git a/var/spack/repos/builtin/packages/r-tester/package.py b/var/spack/repos/builtin/packages/r-tester/package.py
new file mode 100644
index 0000000000..9450dc05f6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-tester/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2021 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 RTester(RPackage):
+ """tester allows you to test characteristics of common R objects."""
+
+ homepage = "https://github.com/gastonstat/tester"
+ url = "https://cloud.r-project.org/src/contrib/tester_0.1.7.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/tester"
+
+ version('0.1.7', sha256='b9c645119c21c69450f3d366c911ed92ac7c14ef61652fd676a38fb9d420b5f4')
+
+ depends_on('r@3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-testit/package.py b/var/spack/repos/builtin/packages/r-testit/package.py
index dfc7b59d5c..b6dde8d99d 100644
--- a/var/spack/repos/builtin/packages/r-testit/package.py
+++ b/var/spack/repos/builtin/packages/r-testit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,13 +8,16 @@ from spack import *
class RTestit(RPackage):
- """Provides two convenience functions assert() and test_pkg() to facilitate
+ """A Simple Package for Testing R Packages
+
+ Provides two convenience functions assert() and test_pkg() to facilitate
testing R packages."""
homepage = "https://cloud.r-project.org/package=testit"
url = "https://cloud.r-project.org/src/contrib/testit_0.5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/testit"
+ version('0.12', sha256='9acdf912f0e7a68a5b6a7946d5ebb0c2007b3d6cd2e39075eddae2b586354e89')
version('0.9', sha256='9cf6b3df9b2c700e4e7dcbd5b8cb64fabefe674e1f40346ccaf39fe7feda5e55')
version('0.8', sha256='08a9c19c962eae60f4ab58885a23e0bc239efc39da682290be436c066f8d97f7')
version('0.7', sha256='03332889bffe8b69d36e696e3a6a1a29713cdcbccf1efced6cddbf061fb41a1f')
diff --git a/var/spack/repos/builtin/packages/r-testthat/package.py b/var/spack/repos/builtin/packages/r-testthat/package.py
index 413aa0d63b..57806ad1d4 100644
--- a/var/spack/repos/builtin/packages/r-testthat/package.py
+++ b/var/spack/repos/builtin/packages/r-testthat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,28 +7,44 @@ from spack import *
class RTestthat(RPackage):
- """A unit testing system designed to be fun, flexible and easy to set
- up."""
+ """Unit Testing for R
+
+ Software testing is important, but, in part because it is frustrating and
+ boring, many of us avoid it. 'testthat' is a testing framework for R that
+ is easy to learn and use, and integrates with your existing 'workflow'."""
homepage = "https://github.com/hadley/testthat"
url = "https://cloud.r-project.org/src/contrib/testthat_1.0.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/testthat"
+ version('3.0.1', sha256='297fc45c719684f11ddf9dc9088f5528fdf9b44625165543384eaf579f243ad0')
version('2.3.2', sha256='1a268d8df07f7cd8d282d03bb96ac2d96a24a95c9aa52f4cca5138a09dd8e06c')
version('2.2.1', sha256='67ee0512bb312695c81fd74338bb8ce9e2e58763681ddbcdfdf35f52dfdb0b78')
version('2.1.0', sha256='cf5fa7108111b32b86e70819352f86b57ab4e835221bb1e83642d52a1fdbcdd4')
version('1.0.2', sha256='0ef7df0ace1fddf821d329f9d9a5d42296085350ae0d94af62c45bd203c8415e')
depends_on('r@3.1:', type=('build', 'run'))
+ depends_on('r-brio', when='@3.0.1:', type=('build', 'run'))
+ depends_on('r-callr@3.5.1:', when='@3.0.1:', type=('build', 'run'))
+ depends_on('r-cli', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-cli@2.2.0:', when='@3.0.1:', type=('build', 'run'))
+ depends_on('r-crayon@1.3.4:', type=('build', 'run'))
+ depends_on('r-desc', when='@3.0.1:', type=('build', 'run'))
depends_on('r-digest', type=('build', 'run'))
depends_on('r-ellipsis', when='@2.3.2:', type=('build', 'run'))
+ depends_on('r-ellipsis@0.2.0:', when='@3.0.1:', type=('build', 'run'))
+ depends_on('r-evaluate', when='@2.2.0:', type=('build', 'run'))
+ depends_on('r-jsonlite', when='@3.0.1:', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@3.0.1:', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-pkgload', when='@2.3.2:', type=('build', 'run'))
- depends_on('r-crayon@1.3.4:', type=('build', 'run'))
depends_on('r-praise', type=('build', 'run'))
- depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-processx', when='@3.0.1:', type=('build', 'run'))
+ depends_on('r-ps@1.3.4:', when='@3.0.1:', type=('build', 'run'))
depends_on('r-r6@2.2.0:', type=('build', 'run'))
- depends_on('r-cli', when='@2.0.0:', type=('build', 'run'))
depends_on('r-rlang@0.3.0:', when='@2.0.0:', type=('build', 'run'))
depends_on('r-rlang@0.4.1:', when='@2.3.2:', type=('build', 'run'))
+ depends_on('r-rlang@0.4.9:', when='@3.0.1:', type=('build', 'run'))
+ depends_on('r-waldo@0.2.1:', when='@3.0.1:', type=('build', 'run'))
depends_on('r-withr@2.0.0:', when='@2.0.0:', type=('build', 'run'))
- depends_on('r-evaluate', when='@2.2.0:', type=('build', 'run'))
+ depends_on('r-withr@2.3.0:', when='@3.0.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tfbstools/package.py b/var/spack/repos/builtin/packages/r-tfbstools/package.py
index 4017c71219..d9100a3af2 100644
--- a/var/spack/repos/builtin/packages/r-tfbstools/package.py
+++ b/var/spack/repos/builtin/packages/r-tfbstools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RTfbstools(RPackage):
- """Software Package for Transcription Factor Binding Site (TFBS) Analysis.
+ """Software Package for Transcription Factor Binding Site (TFBS) Analysis
TFBSTools is a package for the analysis and manipulation of
transcription factor binding sites. It includes matrices conversion
@@ -19,6 +19,7 @@ class RTfbstools(RPackage):
homepage = "https://bioconductor.org/packages/TFBSTools"
git = "https://git.bioconductor.org/packages/TFBSTools.git"
+ version('1.28.0', commit='15e7cf76f39ee3280a27284d58f7adef1c33f193')
version('1.22.0', commit='613d3567fd662b65269bd200c5aa5f87ac6a4612')
version('1.20.0', commit='74035fc6beb1af82f171c11ef2b0a8817714c5bc')
version('1.18.0', commit='17e12b9f3dcb9059d414307ec0bc23ed1ee33294')
diff --git a/var/spack/repos/builtin/packages/r-tfisher/package.py b/var/spack/repos/builtin/packages/r-tfisher/package.py
new file mode 100644
index 0000000000..f31ac4007f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-tfisher/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 RTfisher(RPackage):
+ """Optimal Thresholding Fisher's P-Value Combination Method
+
+ We provide the cumulative distribution function (CDF), quantile, and
+ statistical power calculator for a collection of thresholding Fisher's
+ p-value combination methods, including Fisher's p-value combination method,
+ truncated product method and, in particular, soft-thresholding Fisher's
+ p-value combination method which is proven to be optimal in some context of
+ signal detection. The p-value calculator for the omnibus version of these
+ tests are also included. For reference, please see Hong Zhang and Zheyang
+ Wu. "TFisher Tests: Optimal and Adaptive Thresholding for Combining
+ p-Values", submitted."""
+
+ homepage = "https://cloud.r-project.org/package=TFisher"
+ url = "https://cloud.r-project.org/src/contrib/TFisher_0.2.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/TFisher"
+
+ version('0.2.0', sha256='bd9b7484d6fba0165841596275b446f85ba446d40e92f3b9cb37381a3827e76f')
+
+ depends_on('r-sn', type=('build', 'run'))
+ depends_on('r-mvtnorm', type=('build', 'run'))
+ depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tfmpvalue/package.py b/var/spack/repos/builtin/packages/r-tfmpvalue/package.py
index f0b354cca6..ffd1a10b42 100644
--- a/var/spack/repos/builtin/packages/r-tfmpvalue/package.py
+++ b/var/spack/repos/builtin/packages/r-tfmpvalue/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-th-data/package.py b/var/spack/repos/builtin/packages/r-th-data/package.py
index 8457465bf1..8b819624d1 100644
--- a/var/spack/repos/builtin/packages/r-th-data/package.py
+++ b/var/spack/repos/builtin/packages/r-th-data/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-threejs/package.py b/var/spack/repos/builtin/packages/r-threejs/package.py
index b73e450f51..d30d56076c 100644
--- a/var/spack/repos/builtin/packages/r-threejs/package.py
+++ b/var/spack/repos/builtin/packages/r-threejs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,20 +7,23 @@ from spack import *
class RThreejs(RPackage):
- """Create interactive 3D scatter plots, network plots, and globes using the
- 'three.js' visualization library ("http://threejs.org")."""
+ """Interactive 3D Scatter Plots, Networks and Globes
- homepage = "http://bwlewis.github.io/rthreejs"
+ Create interactive 3D scatter plots, network plots, and globes using the
+ 'three.js' visualization library ("https://threejs.org/")."""
+
+ homepage = "https://bwlewis.github.io/rthreejs"
url = "https://cloud.r-project.org/src/contrib/threejs_0.2.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/threejs"
+ version('0.3.3', sha256='76c759c8b20fb34f4f7a01cbd1b961296e1f19f4df6dded69aae7f1bca80219c')
version('0.3.1', sha256='71750b741672a435ecf749b69c72f0681aa8bb795e317f4e3056d5e33f6d79e8')
version('0.2.2', sha256='41fe949490fbe0f71e39b0a144791da427bd7361d027579cb4a002ed53520cc5')
depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r-igraph@1.0.0:', when='@0.3.1:', type=('build', 'run'))
depends_on('r-htmlwidgets@0.3.2:', type=('build', 'run'))
depends_on('r-base64enc', type=('build', 'run'))
+ depends_on('r-crosstalk', when='@0.3.1:', type=('build', 'run'))
depends_on('r-matrix', when='@0.2.2', type=('build', 'run'))
depends_on('r-jsonlite', when='@0.2.2', type=('build', 'run'))
- depends_on('r-igraph@1.0.0:', when='@0.3.1:', type=('build', 'run'))
- depends_on('r-crosstalk', when='@0.3.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tibble/package.py b/var/spack/repos/builtin/packages/r-tibble/package.py
index fe8190c219..b680c18ef2 100644
--- a/var/spack/repos/builtin/packages/r-tibble/package.py
+++ b/var/spack/repos/builtin/packages/r-tibble/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RTibble(RPackage):
- """Provides a 'tbl_df' class that offers better checking and printing
- capabilities than traditional data frames."""
+ """Simple Data Frames
+
+ Provides a 'tbl_df' class (the 'tibble') that provides stricter checking
+ and better formatting than the traditional data frame."""
homepage = "https://github.com/tidyverse/tibble"
url = "https://cloud.r-project.org/src/contrib/tibble_1.3.4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tibble"
+ version('3.0.5', sha256='1cc92d7bf5ecf8291718682fb7fcb96f6f87751f1ed101a7441cad5120195190')
version('2.1.3', sha256='9a8cea9e6b5d24a7e9bf5f67ab38c40b2b6489eddb0d0edb8a48a21ba3574e1a')
version('2.0.1', sha256='7ab2cc295eecf00a5310993c99853cd6622ad468e7a60d004b8a73957a713d13')
version('2.0.0', sha256='05ad2d62e949909548c4bb8ac596810321f11b330afa9717d0889dc35edd99ba')
@@ -23,14 +26,20 @@ class RTibble(RPackage):
version('1.2', sha256='ed8a8bd0591223f742be80fd1cd8c4a9618d0f04011ec95c272b61ea45193104')
version('1.1', sha256='10ea18890e5514faa4c2c05fa231a6e2bbb7689f3800850cead214306414c88e')
- depends_on('r@3.1.0:', when='@1.3.0:', type=('build', 'run'))
depends_on('r@3.1.2:', when='@:1.2', type=('build', 'run'))
- depends_on('r-assertthat', type=('build', 'run'), when='@:1.3.1')
- depends_on('r-lazyeval@0.1.10:', type=('build', 'run'), when='@:1.3.0')
- depends_on('r-rcpp@0.12.3:', type=('build', 'run'), when='@:1.3.4')
- depends_on('r-rlang@0.3.0:', type=('build', 'run'), when='@1.3.1:')
- depends_on('r-cli', type=('build', 'run'), when='@1.4.2:')
- depends_on('r-crayon@1.3.4:', type=('build', 'run'), when='@1.4.1:')
- depends_on('r-pillar@1.3.1:', type=('build', 'run'), when='@1.4.1:')
- depends_on('r-pkgconfig', type=('build', 'run'), when='@2.0.0:')
- depends_on('r-fansi@0.4.0:', type=('build', 'run'), when='@2.0.0:')
+ depends_on('r@3.1.0:', when='@1.3.0:', type=('build', 'run'))
+ depends_on('r-cli', when='@1.4.2:', type=('build', 'run'))
+ depends_on('r-crayon@1.3.4:', when='@1.4.1:', type=('build', 'run'))
+ depends_on('r-ellipsis@0.2.0:', when='@3.0.5:', type=('build', 'run'))
+ depends_on('r-fansi@0.4.0:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-lifecycle@0.2.0:', when='@3.0.5:', type=('build', 'run'))
+ depends_on('r-magrittr', when='@3.0.5:', type=('build', 'run'))
+ depends_on('r-pillar@1.3.1:', when='@1.4.1:', type=('build', 'run'))
+ depends_on('r-pillar@1.4.3:', when='@3.0.5:', type=('build', 'run'))
+ depends_on('r-pkgconfig', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-rlang@0.3.0:', when='@1.3.1:', type=('build', 'run'))
+ depends_on('r-rlang@0.4.3:', when='@3.0.5:', type=('build', 'run'))
+ depends_on('r-vctrs@0.3.2:', when='@3.0.5:', type=('build', 'run'))
+ depends_on('r-assertthat', when='@:1.3.1', type=('build', 'run'))
+ depends_on('r-lazyeval@0.1.10:', when='@:1.3.0', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.3:', when='@:1.3.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tictoc/package.py b/var/spack/repos/builtin/packages/r-tictoc/package.py
new file mode 100644
index 0000000000..0b56b4d08a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-tictoc/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 RTictoc(RPackage):
+ """tictoc: Functions for timing R scripts, as well as implementations of
+ Stack and List structures
+
+ This package provides the timing functions 'tic' and 'toc'
+ that can be nested. One can record all timings while a
+ complex script is running, and examine the values later. It
+ is also possible to instrument the timing calls with custom
+ callbacks. In addition, this package provides class
+ 'Stack', implemented as a vector, and class 'List',
+ implemented as a list, both of which support operations
+ 'push', 'pop', 'first', 'last' and 'clear'."""
+
+ homepage = "https://collectivemedia.github.io/tictoc/"
+ url = "https://cloud.r-project.org/src/contrib/tictoc_1.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/tictoc"
+
+ version('1.0', sha256='47da097c1822caa2d8e262381987cfa556ad901131eb96109752742526b2e2fe')
+
+ depends_on('r@3.0.3:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tidycensus/package.py b/var/spack/repos/builtin/packages/r-tidycensus/package.py
index 1d7269612b..a6ee266997 100644
--- a/var/spack/repos/builtin/packages/r-tidycensus/package.py
+++ b/var/spack/repos/builtin/packages/r-tidycensus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,19 @@ from spack import *
class RTidycensus(RPackage):
- """An integrated R interface to the decennial US Census and American
- Community Survey APIs and the US Census Bureau's geographic boundary
- files. Allows R users to return Census and ACS data as tidyverse-ready
- data frames, and optionally returns a list-column with feature
- geometry for many geographies."""
+ """Load US Census Boundary and Attribute Data as 'tidyverse' and 'sf'-Ready Data Frames
+
+ An integrated R interface to the decennial US Census and American Community
+ Survey APIs and the US Census Bureau's geographic boundary files. Allows R
+ users to return Census and ACS data as tidyverse-ready data frames, and
+ optionally returns a list-column with feature geometry for all Census
+ geographies. """
homepage = "https://cloud.r-project.org/package=tidycensus"
url = "https://cloud.r-project.org/src/contrib/tidycensus_0.3.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tidycensus"
+ version('0.11', sha256='da2fba4cd987615dedd22f64d9f38804f4e2161af31bacf1f3b5a013d71fdd43')
version('0.9.2', sha256='2454525301caff9eaaf6ebe14f58706ece1fbace6187ce8bf3fff04c842b9536')
version('0.3.1', sha256='d03cbee7abbf87bb4ce2e649726bdd143d47b549f30b5a11aaaa6c4aff78e778')
@@ -24,13 +27,16 @@ class RTidycensus(RPackage):
depends_on('r-httr', type=('build', 'run'))
depends_on('r-sf', type=('build', 'run'))
depends_on('r-dplyr@0.7.0:', type=('build', 'run'))
+ depends_on('r-dplyr@0.8.0:', when='@0.11:', type=('build', 'run'))
depends_on('r-tigris', type=('build', 'run'))
depends_on('r-stringr', type=('build', 'run'))
depends_on('r-jsonlite@1.5.0:', type=('build', 'run'))
depends_on('r-purrr', type=('build', 'run'))
depends_on('r-rvest', type=('build', 'run'))
depends_on('r-tidyr@0.7.0:', type=('build', 'run'))
+ depends_on('r-tidyr@1.0.0:', when='@0.11:', type=('build', 'run'))
depends_on('r-rappdirs', type=('build', 'run'))
depends_on('r-readr', type=('build', 'run'))
depends_on('r-xml2', type=('build', 'run'))
depends_on('r-units', type=('build', 'run'))
+ depends_on('r-rlang', when='@0.11:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tidygraph/package.py b/var/spack/repos/builtin/packages/r-tidygraph/package.py
index 07fe0442de..64dda1bbbe 100644
--- a/var/spack/repos/builtin/packages/r-tidygraph/package.py
+++ b/var/spack/repos/builtin/packages/r-tidygraph/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RTidygraph(RPackage):
- """tidygraph: A Tidy API for Graph Manipulation.
+ """A Tidy API for Graph Manipulation.
A graph, while not "tidy" in itself, can be thought of as two tidy data
frames describing node and edge data respectively. 'tidygraph' provides an
@@ -19,10 +19,12 @@ class RTidygraph(RPackage):
url = "https://cloud.r-project.org/src/contrib/tidygraph_1.1.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tidygraph"
+ version('1.2.0', sha256='057d6c42fc0144109f3ace7f5058cca7b2fe493c761daa991448b23f86b6129f')
version('1.1.2', sha256='5642001d4cccb122d66481b7c61a06c724c02007cbd356ee61cb29726a56fafe')
depends_on('r-tibble', type=('build', 'run'))
depends_on('r-dplyr@0.8:', type=('build', 'run'))
+ depends_on('r-dplyr@0.8.5:', when='@1.2.0:', type=('build', 'run'))
depends_on('r-igraph', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-rlang', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tidyr/package.py b/var/spack/repos/builtin/packages/r-tidyr/package.py
index ac089a646b..f56246f8bd 100644
--- a/var/spack/repos/builtin/packages/r-tidyr/package.py
+++ b/var/spack/repos/builtin/packages/r-tidyr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,26 +7,40 @@ from spack import *
class RTidyr(RPackage):
- """An evolution of 'reshape2'. It's designed specifically for data tidying
- (not general reshaping or aggregating) and works well with 'dplyr' data
- pipelines."""
+ """Tidy Messy Data
+
+ Tools to help to create tidy data, where each column is a variable, each
+ row is an observation, and each cell contains a single value. 'tidyr'
+ contains tools for changing the shape (pivoting) and hierarchy (nesting and
+ 'unnesting') of a dataset, turning deeply nested lists into rectangular
+ data frames ('rectangling'), and extracting values out of string columns.
+ It also includes tools for working with missing values (both implicit and
+ explicit)."""
homepage = "https://github.com/hadley/tidyr"
url = "https://cloud.r-project.org/src/contrib/tidyr_0.7.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tidyr"
+ version('1.1.2', sha256='08fccb67824515b33187886f3ca2cf2fe747a778514892dbbf5e565edf0dfd6c')
version('0.8.3', sha256='a18f54ec35124110058ab23f7e0a3c037a8d50f0405520cf5cc5443ec022cc37')
version('0.8.2', sha256='99a508d0539390364789c5f4835b36c4a383927f0ec1648e2a4636c1cc6e490f')
version('0.7.2', sha256='062cea2e2b57fffd500e4ce31cba6d593e65684fc0897ea49ea38d257c76009c')
version('0.5.1', sha256='dbab642ac7231cbfe3e2a0d4553fb4ffb3699c6d6b432be2bb5812dfbbdbdace')
depends_on('r@3.1:', type=('build', 'run'))
- depends_on('r-tibble', type=('build', 'run'))
depends_on('r-dplyr@0.7.0:', type=('build', 'run'))
- depends_on('r-stringi', type=('build', 'run'))
- depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-dplyr@0.8.2:', when='@1.1.2:', type=('build', 'run'))
+ depends_on('r-ellipsis@0.1.0:', when='@1.1.2:', type=('build', 'run'))
depends_on('r-glue', type=('build', 'run'))
- depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-purrr', type=('build', 'run'))
- depends_on('r-tidyselect@0.2.5:', type=('build', 'run'))
depends_on('r-rlang', type=('build', 'run'))
+ depends_on('r-tibble', type=('build', 'run'))
+ depends_on('r-tibble@2.1.1:', when='@1.1.2:', type=('build', 'run'))
+ depends_on('r-tidyselect@0.2.5:', type=('build', 'run'))
+ depends_on('r-tidyselect@1.1.0:', when='@1.1.2:', type=('build', 'run'))
+ depends_on('r-vctrs@0.3.0:', when='@1.1.2:', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@1.1.2:', type=('build', 'run'))
+ depends_on('r-cpp11@0.2.1:', when='@1.1.2:', type=('build', 'run'))
+ depends_on('r-stringi', when='@:0.8.3', type=('build', 'run'))
+ depends_on('r-rcpp', when='@:0.8.3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tidyselect/package.py b/var/spack/repos/builtin/packages/r-tidyselect/package.py
index eec8929ee3..ed64338c59 100644
--- a/var/spack/repos/builtin/packages/r-tidyselect/package.py
+++ b/var/spack/repos/builtin/packages/r-tidyselect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,20 +7,28 @@ from spack import *
class RTidyselect(RPackage):
- """A backend for the selecting functions of the 'tidyverse'. It makes it
- easy to implement select-like functions in your own packages in a way
- that is consistent with other 'tidyverse' interfaces for selection."""
+ """Select from a Set of Strings
+
+ A backend for the selecting functions of the 'tidyverse'. It makes it easy
+ to implement select-like functions in your own packages in a way that is
+ consistent with other 'tidyverse' interfaces for selection."""
homepage = "https://cloud.r-project.org/package=tidyselect"
url = "https://cloud.r-project.org/src/contrib/tidyselect_0.2.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tidyselect"
+ version('1.1.0', sha256='e635ed381fb53f7a53c3fa36bb33e134a3273d272367de2a8d909c821be93893')
version('0.2.5', sha256='5ce2e86230fa35cfc09aa71dcdd6e05e1554a5739c863ca354d241bfccb86c74')
version('0.2.4', sha256='5cb30e56ad5c1ac59786969edc8d542a7a1735a129a474f585a141aefe6a2295')
version('0.2.3', sha256='0c193abc8251a60e1d2a32a99c77651c336bc185e3c2a72e5f8781813d181c2c')
depends_on('r@3.1:', type=('build', 'run'))
+ depends_on('r@3.2:', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-ellipsis', when='@1.1.0:', type=('build', 'run'))
depends_on('r-glue@1.3.0:', type=('build', 'run'))
depends_on('r-purrr', type=('build', 'run'))
+ depends_on('r-purrr@0.3.2:', when='@1.1.0:', type=('build', 'run'))
depends_on('r-rlang@0.2.2:', type=('build', 'run'))
- depends_on('r-rcpp@0.12.0:', type=('build', 'run'))
+ depends_on('r-rlang@0.4.6:', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-vctrs@0.2.2:', when='@1.1.0:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.0:', when='@:0.2.5', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tidyverse/package.py b/var/spack/repos/builtin/packages/r-tidyverse/package.py
index 6b27c90934..b09b4b19f4 100644
--- a/var/spack/repos/builtin/packages/r-tidyverse/package.py
+++ b/var/spack/repos/builtin/packages/r-tidyverse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,39 +7,69 @@ from spack import *
class RTidyverse(RPackage):
- """The 'tidyverse' is a set of packages that work in harmony because they
- share common data representations and 'API' design. This package is
- designed to make it easy to install and load multiple 'tidyverse'
- packages in a single step."""
+ """Easily Install and Load the 'Tidyverse'
- homepage = "http://tidyverse.tidyverse.org/"
+ The 'tidyverse' is a set of packages that work in harmony because they
+ share common data representations and 'API' design. This package is
+ designed to make it easy to install and load multiple 'tidyverse' packages
+ in a single step. Learn more about the 'tidyverse' at
+ <https://tidyverse.org>."""
+
+ homepage = "https://tidyverse.tidyverse.org/"
url = "https://cloud.r-project.org/src/contrib/tidyverse_1.2.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tidyverse"
+ version('1.3.0', sha256='6d8acb81e994f9bef5e4dcf908bcea3786d108adcf982628235b6c8c80f6fe09')
version('1.2.1', sha256='ad67a27bb4e89417a15338fe1a40251a7b5dedba60e9b72637963d3de574c37b')
+ depends_on('r+X', type=('build', 'run'))
+ depends_on('r@3.2:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-broom@0.4.2:', type=('build', 'run'))
+ depends_on('r-broom@0.5.2:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-cli@1.0.0:', type=('build', 'run'))
+ depends_on('r-cli@1.1.0:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-crayon@1.3.4:', type=('build', 'run'))
- depends_on('r-dplyr@0.7.4:', type=('build', 'run'))
depends_on('r-dbplyr@1.1.0:', type=('build', 'run'))
+ depends_on('r-dbplyr@1.4.2:', when='@1.3.0:', type=('build', 'run'))
+ depends_on('r-dplyr@0.7.4:', type=('build', 'run'))
+ depends_on('r-dplyr@0.8.3:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-forcats@0.2.0:', type=('build', 'run'))
+ depends_on('r-forcats@0.4.0:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-ggplot2@2.2.1:', type=('build', 'run'))
+ depends_on('r-ggplot2@3.2.1:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-haven@1.1.0:', type=('build', 'run'))
+ depends_on('r-haven@2.2.0:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-hms@0.3:', type=('build', 'run'))
+ depends_on('r-hms@0.5.2:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-httr@1.3.1:', type=('build', 'run'))
+ depends_on('r-httr@1.4.1:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-jsonlite@1.5:', type=('build', 'run'))
+ depends_on('r-jsonlite@1.6:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-lubridate@1.7.1:', type=('build', 'run'))
+ depends_on('r-lubridate@1.7.4:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-magrittr@1.5:', type=('build', 'run'))
depends_on('r-modelr@0.1.1:', type=('build', 'run'))
+ depends_on('r-modelr@0.1.5:', when='@1.3.0:', type=('build', 'run'))
+ depends_on('r-pillar@1.4.2:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-purrr@0.2.4:', type=('build', 'run'))
+ depends_on('r-purrr@0.3.3:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-readr@1.1.1:', type=('build', 'run'))
+ depends_on('r-readr@1.3.1:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-readxl@1.0.0:', type=('build', 'run'))
+ depends_on('r-readxl@1.3.1:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-reprex@0.1.1:', type=('build', 'run'))
+ depends_on('r-reprex@0.3.0:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-rlang@0.1.4:', type=('build', 'run'))
+ depends_on('r-rlang@0.4.1:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-rstudioapi@0.7:', type=('build', 'run'))
+ depends_on('r-rstudioapi@0.10:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-rvest@0.3.2:', type=('build', 'run'))
+ depends_on('r-rvest@0.3.5:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-stringr@1.2.0:', type=('build', 'run'))
+ depends_on('r-stringr@1.4.0:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-tibble@1.3.4:', type=('build', 'run'))
+ depends_on('r-tibble@2.1.3:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-tidyr@0.7.2:', type=('build', 'run'))
+ depends_on('r-tidyr@1.0.0:', when='@1.3.0:', type=('build', 'run'))
depends_on('r-xml2@1.1.1:', type=('build', 'run'))
+ depends_on('r-xml2@1.2.2:', when='@1.3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tiff/package.py b/var/spack/repos/builtin/packages/r-tiff/package.py
index 91e7f261c2..711960574f 100644
--- a/var/spack/repos/builtin/packages/r-tiff/package.py
+++ b/var/spack/repos/builtin/packages/r-tiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,19 @@ from spack import *
class RTiff(RPackage):
- """This package provides an easy and simple way to read, write and
- display bitmap images stored in the TIFF format. It can read and
- write both files and in-memory raw vectors."""
+ """Read and write TIFF images
- homepage = "http://www.rforge.net/tiff/"
+ This package provides an easy and simple way to read, write and display
+ bitmap images stored in the TIFF format. It can read and write both files
+ and in-memory raw vectors."""
+
+ homepage = "https://www.rforge.net/tiff/"
url = "https://cloud.r-project.org/src/contrib/tiff_0.1-5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tiff"
+ version('0.1-6', sha256='623bd9c16a426df7e6056738c5d91da86ea9b49df375eea6b5127e4e458dc4fb')
version('0.1-5', sha256='9514e6a9926fcddc29ce1dd12b1072ad8265900373f738de687ef4a1f9124e2b')
depends_on('r@2.9.0:', type=('build', 'run'))
- depends_on("jpeg")
depends_on("libtiff")
+ depends_on("jpeg")
diff --git a/var/spack/repos/builtin/packages/r-tigris/package.py b/var/spack/repos/builtin/packages/r-tigris/package.py
index dfa9230ace..962fd6f81d 100644
--- a/var/spack/repos/builtin/packages/r-tigris/package.py
+++ b/var/spack/repos/builtin/packages/r-tigris/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RTigris(RPackage):
- """Download TIGER/Line shapefiles from the United States Census Bureau
+ """Load Census TIGER/Line Shapefiles
+
+ Download TIGER/Line shapefiles from the United States Census Bureau
and load into R as 'SpatialDataFrame' or 'sf' objects."""
homepage = "https://cloud.r-project.org/package=tigris"
url = "https://cloud.r-project.org/src/contrib/tigris_0.5.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tigris"
+ version('1.0', sha256='97c76568c7cf0615abcbf923a0b4387f6b8c1915b9eb42d0c34cb0f707654403')
version('0.8.2', sha256='ed8d6ab25332c2cc800858d58324bd8264772d8a916a3f0a8d489250a7e7140e')
version('0.5.3', sha256='6ecf76f82216798465cd9704acb432caea47469ffc4953f1aaefa4d642a28445')
@@ -22,7 +25,6 @@ class RTigris(RPackage):
depends_on('r-stringr', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-rgdal', type=('build', 'run'))
- depends_on('r-rgeos', when='@:0.5.3', type=('build', 'run'))
depends_on('r-sp', type=('build', 'run'))
depends_on('r-rappdirs', type=('build', 'run'))
depends_on('r-maptools', type=('build', 'run'))
@@ -30,3 +32,4 @@ class RTigris(RPackage):
depends_on('r-uuid', type=('build', 'run'))
depends_on('r-sf', type=('build', 'run'))
depends_on('r-dplyr', type=('build', 'run'))
+ depends_on('r-rgeos', when='@:0.5.3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-timedate/package.py b/var/spack/repos/builtin/packages/r-timedate/package.py
index 86a5d27fc1..d884c5b0ef 100644
--- a/var/spack/repos/builtin/packages/r-timedate/package.py
+++ b/var/spack/repos/builtin/packages/r-timedate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-tinytex/package.py b/var/spack/repos/builtin/packages/r-tinytex/package.py
index d17b71ef9e..a07c5dd4a9 100644
--- a/var/spack/repos/builtin/packages/r-tinytex/package.py
+++ b/var/spack/repos/builtin/packages/r-tinytex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,16 +7,21 @@ from spack import *
class RTinytex(RPackage):
- """Helper functions to install and maintain the 'LaTeX' distribution named
+ """Helper Functions to Install and Maintain TeX Live, and Compile LaTeX Documents
+
+ Helper functions to install and maintain the 'LaTeX' distribution named
'TinyTeX' (<https://yihui.name/tinytex/>), a lightweight, cross-platform,
portable, and easy-to-maintain version of 'TeX Live'. This package also
contains helper functions to compile 'LaTeX' documents, and install missing
'LaTeX' packages automatically."""
homepage = "https://github.com/yihui/tinytex"
- url = "https://cloud.r-project.org/src/contrib/tinytex_0.15.tar.gz"
- list_url = "https://cloud.r-project.org/src/contrib/Archive/tinytex"
+ cran = "tinytex"
+ version('0.32', sha256='70fa28195ae6c8b8d43790205b49745c5a062aab78e64cec39bfbe5ed604c29f')
+ version('0.28', sha256='76a0650aeab04eb252dc9cfa9ba855d88b09dfc2207c4a8ea2ea04fa0e0eea86')
version('0.15', sha256='5d0988d3b7f763dfa65c722f177452a21344e428415a4b31aeb51478f0abad90')
depends_on('r-xfun@0.5:', type=('build', 'run'))
+ depends_on('r-xfun@0.19:', when='@0.28:', type=('build', 'run'))
+ depends_on('r-xfun@0.23:', when='@0.32:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tmixclust/package.py b/var/spack/repos/builtin/packages/r-tmixclust/package.py
index 03ee54b2e0..227a4c9e33 100644
--- a/var/spack/repos/builtin/packages/r-tmixclust/package.py
+++ b/var/spack/repos/builtin/packages/r-tmixclust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RTmixclust(RPackage):
"""Time Series Clustering of Gene Expression with Gaussian Mixed-Effects
- Models and Smoothing Splines.
+ Models and Smoothing Splines
Implementation of a clustering method for time series gene expression
data based on mixed-effects models with Gaussian variables and non-
@@ -19,6 +19,7 @@ class RTmixclust(RPackage):
homepage = "https://bioconductor.org/packages/TMixClust"
git = "https://git.bioconductor.org/packages/TMixClust.git"
+ version('1.12.0', commit='982b31bd7e22a3dc638bbda0336546220444f0c2')
version('1.6.0', commit='9f5f78e52538d15f402c8f6e4c60f7212c7bc548')
version('1.4.0', commit='a52fcae6e7a5dd41e7afbe128f35397e8bc8cb12')
version('1.2.0', commit='0250c0b238f08077b5b9ff17c2f3b7633c67dc3c')
diff --git a/var/spack/repos/builtin/packages/r-tmvnsim/package.py b/var/spack/repos/builtin/packages/r-tmvnsim/package.py
new file mode 100644
index 0000000000..eee9e4e6d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-tmvnsim/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RTmvnsim(RPackage):
+ """Truncated Multivariate Normal Simulation
+
+ Importance sampling from the truncated multivariate normal using the GHK
+ (Geweke-Hajivassiliou-Keane) simulator. Unlike Gibbs sampling which can get
+ stuck in one truncation sub-region depending on initial values, this
+ package allows truncation based on disjoint regions that are created by
+ truncation of absolute values. The GHK algorithm uses simple Cholesky
+ transformation followed by recursive simulation of univariate truncated
+ normals hence there are also no convergence issues. Importance sample is
+ returned along with sampling weights, based on which, one can calculate
+ integrals over truncated regions for multivariate normals."""
+
+ homepage = "https://cloud.r-project.org/package=tmvnsim"
+ url = "https://cloud.r-project.org/src/contrib/tmvnsim_1.0-2.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/tmvnsim"
+
+ version('1.0-2', sha256='97f63d0bab3b240cc7bdbe6e6e74e90ad25a4382a345ee51a26fe3959edeba0f')
diff --git a/var/spack/repos/builtin/packages/r-topgo/package.py b/var/spack/repos/builtin/packages/r-topgo/package.py
index e1a7d922cd..d14d35f573 100644
--- a/var/spack/repos/builtin/packages/r-topgo/package.py
+++ b/var/spack/repos/builtin/packages/r-topgo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RTopgo(RPackage):
- """Enrichment Analysis for Gene Ontology.
+ """Enrichment Analysis for Gene Ontology
topGO package provides tools for testing GO terms while accounting for
the topology of the GO graph. Different test statistics and different
@@ -17,6 +17,7 @@ class RTopgo(RPackage):
homepage = "https://bioconductor.org/packages/topGO"
git = "https://git.bioconductor.org/packages/topGO.git"
+ version('2.42.0', commit='3a33cf53883de45bda506953303e1809ab982adc')
version('2.36.0', commit='c2f6c187b41c4aa44cc92ac781fdd878491a4019')
version('2.34.0', commit='44cb5eaba515b365b7b2a8c22df0a45883db6b4d')
version('2.32.0', commit='78ce3068fc06ae38d55219759fa177e2fcb3f596')
diff --git a/var/spack/repos/builtin/packages/r-triebeard/package.py b/var/spack/repos/builtin/packages/r-triebeard/package.py
index 002ee655ca..3a5c7f9923 100644
--- a/var/spack/repos/builtin/packages/r-triebeard/package.py
+++ b/var/spack/repos/builtin/packages/r-triebeard/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-trimcluster/package.py b/var/spack/repos/builtin/packages/r-trimcluster/package.py
index c23abf948d..c50636e6fd 100644
--- a/var/spack/repos/builtin/packages/r-trimcluster/package.py
+++ b/var/spack/repos/builtin/packages/r-trimcluster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,16 @@ from spack import *
class RTrimcluster(RPackage):
- """trimcluster: Cluster analysis with trimming"""
+ """Cluster analysis with trimming
- homepage = "http://www.homepages.ucl.ac.uk/~ucakche"
+ Trimmed k-means clustering. The method is described in Cuesta-Albertos et
+ al. (1997) <doi:10.1214/aos/1031833664>."""
+
+ homepage = "https://www.homepages.ucl.ac.uk/~ucakche"
url = "https://cloud.r-project.org/src/contrib/trimcluster_0.1-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/trimcluster"
+ version('0.1-5', sha256='9239f20e4a06ac2fa89e5d5d89b23a45c8c534a7264d89bede8a35d43dda518b')
version('0.1-2.1', sha256='b64a872a6c2ad677dfeecc776c9fe5aff3e8bab6bc6a8c86957b5683fd5d2300')
version('0.1-2', sha256='622fb61580cc19b9061c6ee28ffd751250a127f07904b45a0e1c5438d25b4f53')
diff --git a/var/spack/repos/builtin/packages/r-truncdist/package.py b/var/spack/repos/builtin/packages/r-truncdist/package.py
index 5ead0acf76..4e700ffdc9 100644
--- a/var/spack/repos/builtin/packages/r-truncdist/package.py
+++ b/var/spack/repos/builtin/packages/r-truncdist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-truncnorm/package.py b/var/spack/repos/builtin/packages/r-truncnorm/package.py
index 8ffad56a3f..9345027f92 100644
--- a/var/spack/repos/builtin/packages/r-truncnorm/package.py
+++ b/var/spack/repos/builtin/packages/r-truncnorm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-trust/package.py b/var/spack/repos/builtin/packages/r-trust/package.py
index 90ec0c4059..18efac1fc7 100644
--- a/var/spack/repos/builtin/packages/r-trust/package.py
+++ b/var/spack/repos/builtin/packages/r-trust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RTrust(RPackage):
- """Does local optimization using two derivatives and trust regions.
- Guaranteed to converge to local minimum of objective function."""
+ """Trust Region Optimization
- homepage = "http://www.stat.umn.edu/geyer/trust"
+ Does local optimization using two derivatives and trust regions.
+ Guaranteed to converge to local minimum of objective function."""
+
+ homepage = "https://www.stat.umn.edu/geyer/trust"
url = "https://cloud.r-project.org/src/contrib/trust_0.1-7.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/trust"
+ version('0.1-8', sha256='952e348b62aec35988b103fd152329662cb6a451538f184549252fbf49d7dcac')
version('0.1-7', sha256='e3d15aa84a71becd2824253d4a8156bdf1ab9ac3b72ced0cd53f3bb370ac6f04')
depends_on('r@2.10.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tseries/package.py b/var/spack/repos/builtin/packages/r-tseries/package.py
index 4c67387fcc..71c57c5e7d 100644
--- a/var/spack/repos/builtin/packages/r-tseries/package.py
+++ b/var/spack/repos/builtin/packages/r-tseries/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,15 @@ from spack import *
class RTseries(RPackage):
- """Time series analysis and computational finance."""
+ """Time series analysis and computational finance
+
+ Time series analysis and computational finance."""
homepage = "https://cloud.r-project.org/package=tseries"
url = "https://cloud.r-project.org/src/contrib/tseries_0.10-42.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/tseries"
+ version('0.10-48', sha256='53bd22708c936205c5f839a10f2e302524d2cc54dc309e7d885ebd081ccb4471')
version('0.10-47', sha256='202377df56806fe611c2e12c4d9732c71b71220726e2defa7e568d2b5b62fb7b')
version('0.10-46', sha256='12940afd1d466401160e46f993ed4baf28a42cef98d3757b66ee15e916e07222')
version('0.10-42', sha256='827f79858715c700e8cabd2c27853ba88ad0e05eb043bc94e126b155a75546c4')
diff --git a/var/spack/repos/builtin/packages/r-tsne/package.py b/var/spack/repos/builtin/packages/r-tsne/package.py
index 98c3e47ebe..a1ce6b5ee5 100644
--- a/var/spack/repos/builtin/packages/r-tsne/package.py
+++ b/var/spack/repos/builtin/packages/r-tsne/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-ttr/package.py b/var/spack/repos/builtin/packages/r-ttr/package.py
index 3e895bcee6..1dc8fccd82 100644
--- a/var/spack/repos/builtin/packages/r-ttr/package.py
+++ b/var/spack/repos/builtin/packages/r-ttr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,17 @@ from spack import *
class RTtr(RPackage):
- """Functions and data to construct technical trading rules with R."""
+ """Technical Trading Rules
+
+ A collection of over 50 technical indicators for creating technical trading
+ rules. The package also provides fast implementations of common
+ rolling-window functions, and several volatility calculations."""
homepage = "https://github.com/joshuaulrich/TTR"
url = "https://cloud.r-project.org/src/contrib/TTR_0.23-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/TTR"
+ version('0.24.2', sha256='2587b988d9199474a19470b9b999b99133d0d8aa45410813e05c5f0ed763711b')
version('0.23-4', sha256='eb17604da986213b3b924f0af65c3d089502a658a253ee34f6b8f6caccf6bfa2')
version('0.23-3', sha256='2136032c7a2cd2a82518a4412fc655ecb16597b123dbdebe5684caef9f15261f')
version('0.23-1', sha256='699798f06ceae9663da47b67d1bc8679fc1c0776d12afd054d6ac4d19e05b2ae')
diff --git a/var/spack/repos/builtin/packages/r-tweenr/package.py b/var/spack/repos/builtin/packages/r-tweenr/package.py
index a3838289e2..7662f47252 100644
--- a/var/spack/repos/builtin/packages/r-tweenr/package.py
+++ b/var/spack/repos/builtin/packages/r-tweenr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg18-knowngene/package.py b/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg18-knowngene/package.py
index fc1500a232..404c19aabe 100644
--- a/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg18-knowngene/package.py
+++ b/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg18-knowngene/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,14 @@ from spack import *
class RTxdbHsapiensUcscHg18Knowngene(RPackage):
- """Exposes an annotation databases generated from UCSC by exposing these as
+ """Annotation package for TxDb object(s)
+
+ Exposes an annotation databases generated from UCSC by exposing these as
TxDb objects"""
# This is a bioconductor package but ther is no available git repo
- homepage = "http://bioconductor.org/packages/release/data/annotation/html/TxDb.Hsapiens.UCSC.hg18.knownGene.html"
- url = "http://bioconductor.org/packages/release/data/annotation/src/contrib/TxDb.Hsapiens.UCSC.hg18.knownGene_3.2.2.tar.gz"
+ homepage = "https://bioconductor.org/packages/release/data/annotation/html/TxDb.Hsapiens.UCSC.hg18.knownGene.html"
+ url = "https://bioconductor.org/packages/release/data/annotation/src/contrib/TxDb.Hsapiens.UCSC.hg18.knownGene_3.2.2.tar.gz"
version('3.2.2', sha256='bc9ca40b4eab87f5ca64a4b876d42502b9b8e9f5983d745bfe0ee349d97b69fa')
diff --git a/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg19-knowngene/package.py b/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg19-knowngene/package.py
index a0d5b6ccde..9892bdd2bb 100644
--- a/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg19-knowngene/package.py
+++ b/var/spack/repos/builtin/packages/r-txdb-hsapiens-ucsc-hg19-knowngene/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RTxdbHsapiensUcscHg19Knowngene(RPackage):
- """Exposes an annotation databases generated from UCSC by exposing these as
+ """Annotation package for TxDb object(s)
+
+ Exposes an annotation databases generated from UCSC by exposing these as
TxDb objects."""
# This is a bioconductor package but there is no available git repo.
diff --git a/var/spack/repos/builtin/packages/r-tximport/package.py b/var/spack/repos/builtin/packages/r-tximport/package.py
index 8e36f5b518..ad77f1f07b 100644
--- a/var/spack/repos/builtin/packages/r-tximport/package.py
+++ b/var/spack/repos/builtin/packages/r-tximport/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RTximport(RPackage):
"""Import and summarize transcript-level estimates for transcript- and
- gene-level analysis.
+ gene-level analysis
Imports transcript-level abundance, estimated counts and transcript
lengths, and summarizes into matrices for use with downstream gene-level
@@ -20,6 +20,7 @@ class RTximport(RPackage):
homepage = "https://bioconductor.org/packages/tximport"
git = "https://git.bioconductor.org/packages/tximport.git"
+ version('1.18.0', commit='58b20cbc566648586b6990b30ebc70bef308cb05')
version('1.12.3', commit='acbdead961471c3b910d720f73bd0af1b7a07c57')
version('1.10.1', commit='cd8f81cf7140f61d4a4f25f89451fb49e2cd4bd3')
version('1.8.0', commit='cc91b8389ca4c16b0f588bdeb63d051a11e8a705')
diff --git a/var/spack/repos/builtin/packages/r-tximportdata/package.py b/var/spack/repos/builtin/packages/r-tximportdata/package.py
index 84a19036a0..2ebf3b531c 100644
--- a/var/spack/repos/builtin/packages/r-tximportdata/package.py
+++ b/var/spack/repos/builtin/packages/r-tximportdata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,16 @@ from spack import *
class RTximportdata(RPackage):
- """This packages provides the output of running various transcript abundance
- quantifiers on a set of 6 RNA-seq samples from the GEUVADIS project"""
+ """Import and summarize transcript-level estimates for transcript- and
+ gene-level analysis
- homepage = "http://bioconductor.org/packages/release/data/experiment/html/tximportData.html"
- url = "http://bioconductor.org/packages/release/data/experiment/src/contrib/tximportData_1.18.0.tar.gz"
+ Imports transcript-level abundance, estimated counts and transcript
+ lengths, and summarizes into matrices for use with downstream gene-level
+ analysis packages. Average transcript length, weighted by sample-specific
+ transcript abundance estimates, is provided as a matrix which can be used
+ as an offset for different expression of gene-level counts."""
- version('1.18.0', sha256='4edf9fdcf5b0086fc958d5ac0249668c7cf7e2fa941cd8d413620634d0cb5971')
+ homepage = "https://github.com/mikelove/tximport"
+ git = "https://git.bioconductor.org/packages/tximportData"
+
+ version('1.18.0', commit='24945f8dd1e4e441ad5145fb7a37a1630912f929')
diff --git a/var/spack/repos/builtin/packages/r-ucminf/package.py b/var/spack/repos/builtin/packages/r-ucminf/package.py
index e3a26f33e4..f5294cf85e 100644
--- a/var/spack/repos/builtin/packages/r-ucminf/package.py
+++ b/var/spack/repos/builtin/packages/r-ucminf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-udunits2/package.py b/var/spack/repos/builtin/packages/r-udunits2/package.py
index eda9137d8e..1aa728ef7c 100644
--- a/var/spack/repos/builtin/packages/r-udunits2/package.py
+++ b/var/spack/repos/builtin/packages/r-udunits2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-units/package.py b/var/spack/repos/builtin/packages/r-units/package.py
index bac5d4637a..24eaf5ddcd 100644
--- a/var/spack/repos/builtin/packages/r-units/package.py
+++ b/var/spack/repos/builtin/packages/r-units/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,22 +7,27 @@ from spack import *
class RUnits(RPackage):
- """Support for measurement units in R vectors, matrices and arrays:
- automatic propagation, conversion, derivation and simplification of
- units; raising errors in case of unit incompatibility. Compatible with
- the POSIXct, Date and difftime classes. Uses the UNIDATA udunits
- library and unit database for unit compatibility checking and
- conversion."""
+ """Measurement Units for R Vectors
+
+ Support for measurement units in R vectors, matrices and arrays: automatic
+ propagation, conversion, derivation and simplification of units; raising
+ errors in case of unit incompatibility. Compatible with the POSIXct, Date
+ and difftime classes. Uses the UNIDATA udunits library and unit database
+ for unit compatibility checking and conversion. Documentation about
+ 'units' is provided in the paper by Pebesma, Mailund & Hiebert (2016,
+ <doi:10.32614/RJ-2016-061>), included in this package as a vignette; see
+ 'citation("units")' for details."""
homepage = "https://github.com/edzer/units/"
url = "https://cloud.r-project.org/src/contrib/units_0.4-6.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/units"
+ version('0.6-7', sha256='3f73a62bafdbe0f93bbf00ac4b1adb8f919dd04649ff8f1d007f2986e35cb7e5')
version('0.6-3', sha256='03de88d9dcfe80d22dd3813413f33657c576aed24a8091dbfc7f68602020a64f')
version('0.6-2', sha256='5e286775d0712c8e15b6ae3a533d4c4349b0f6410c2d9d897ca519c3d0e5f170')
version('0.4-6', sha256='db383c9b7ec221a5da29a2ddf4f74f9064c44ea2102ea7e07cc1cc5bb30fa1ef')
depends_on('r@3.0.2:', type=('build', 'run'))
- depends_on('r-udunits2@0.13:', when='@:0.5-1', type=('build', 'run'))
depends_on('r-rcpp@0.12.10:', type=('build', 'run'))
+ depends_on('r-udunits2@0.13:', when='@:0.5-1', type=('build', 'run'))
depends_on('udunits', when='@0.6-0:')
diff --git a/var/spack/repos/builtin/packages/r-upsetr/package.py b/var/spack/repos/builtin/packages/r-upsetr/package.py
index 405bf7994a..77a4607ae4 100644
--- a/var/spack/repos/builtin/packages/r-upsetr/package.py
+++ b/var/spack/repos/builtin/packages/r-upsetr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class RUpsetr(RPackage):
"""UpSetR: A More Scalable Alternative to Venn and Euler Diagrams
forVisualizing Intersecting Sets"""
- homepage = "http://github.com/hms-dbmi/UpSetR"
+ homepage = "https://github.com/hms-dbmi/UpSetR"
url = "https://cloud.r-project.org/src/contrib/UpSetR_1.4.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/UpSetR"
diff --git a/var/spack/repos/builtin/packages/r-urca/package.py b/var/spack/repos/builtin/packages/r-urca/package.py
index 364482b5c3..761b89406f 100644
--- a/var/spack/repos/builtin/packages/r-urca/package.py
+++ b/var/spack/repos/builtin/packages/r-urca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-urltools/package.py b/var/spack/repos/builtin/packages/r-urltools/package.py
index 479e201fbb..4f1f0c2850 100644
--- a/var/spack/repos/builtin/packages/r-urltools/package.py
+++ b/var/spack/repos/builtin/packages/r-urltools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-usethis/package.py b/var/spack/repos/builtin/packages/r-usethis/package.py
index 105efb3fc9..d5bf49a8dc 100644
--- a/var/spack/repos/builtin/packages/r-usethis/package.py
+++ b/var/spack/repos/builtin/packages/r-usethis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RUsethis(RPackage):
- """Automate package and project setup tasks that are otherwise performed
+ """Automate Package and Project Setup
+
+ Automate package and project setup tasks that are otherwise performed
manually. This includes setting up unit testing, test coverage, continuous
integration, Git, 'GitHub', licenses, 'Rcpp', 'RStudio' projects, and
more."""
@@ -16,27 +18,34 @@ 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('2.0.0', sha256='22aa2b59f36a8701a4648554c7b0e010253bf917a0f431f06efac7d8a6b59854')
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', when='@:1.5', type=('build', 'run'))
depends_on('r-cli', when='@1.6.1:', type=('build', 'run'))
+ depends_on('r-clipr@0.3.0:', 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-gert@1.0.2:', when='@2.0.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-gh@1.2.0:', when='@2.0.0:', type=('build', 'run'))
depends_on('r-glue@1.3.0:', type=('build', 'run'))
+ depends_on('r-jsonlite', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-lifecycle', when='@2.0.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-rappdirs', when='@2.0.0:', 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'))
depends_on('r-withr', type=('build', 'run'))
+ depends_on('r-withr@2.3.0:', when='@2.0.0:', type=('build', 'run'))
depends_on('r-yaml', type=('build', 'run'))
+ depends_on('r-clisymbols', when='@:1.5', type=('build', 'run'))
+ depends_on('r-git2r@0.23:', when='@:1.6.1', type=('build', 'run'))
+ depends_on('r-rematch2', when='@1.6.1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-utf8/package.py b/var/spack/repos/builtin/packages/r-utf8/package.py
index f35800cb5f..ae2b7cab80 100644
--- a/var/spack/repos/builtin/packages/r-utf8/package.py
+++ b/var/spack/repos/builtin/packages/r-utf8/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-uuid/package.py b/var/spack/repos/builtin/packages/r-uuid/package.py
index f696d52f9b..3d47bc73a4 100644
--- a/var/spack/repos/builtin/packages/r-uuid/package.py
+++ b/var/spack/repos/builtin/packages/r-uuid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,13 +8,16 @@ from spack import *
class RUuid(RPackage):
- """Tools for generating and handling of UUIDs (Universally Unique
+ """Tools for Generating and Handling of UUIDs
+
+ Tools for generating and handling of UUIDs (Universally Unique
Identifiers)."""
- homepage = "http://www.rforge.net/uuid"
+ homepage = "https://www.rforge.net/uuid"
url = "https://cloud.r-project.org/src/contrib/uuid_0.1-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/uuid"
+ version('0.1-4', sha256='98e0249dda17434bfa209c2058e9911e576963d4599be9f7ea946e664f8ca93e')
version('0.1-2', sha256='dd71704dc336b0857981b92a75ed9877d4ca47780b1682def28839304cd3b1be')
depends_on('r@2.9.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-uwot/package.py b/var/spack/repos/builtin/packages/r-uwot/package.py
index 294e36b692..4daf9036a9 100644
--- a/var/spack/repos/builtin/packages/r-uwot/package.py
+++ b/var/spack/repos/builtin/packages/r-uwot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RUwot(RPackage):
- """An implementation of the Uniform Manifold Approximation and Projection
+ """The Uniform Manifold Approximation and Projection (UMAP) Method for Dimensionality Reduction
+
+ An implementation of the Uniform Manifold Approximation and Projection
dimensionality reduction by McInnes et al. (2018) <arXiv:1802.03426>. It
also provides means to transform new data and to carry out supervised
dimensionality reduction. An implementation of the related LargeVis method
@@ -21,6 +23,7 @@ class RUwot(RPackage):
url = "https://cloud.r-project.org/src/contrib/uwot_0.1.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/uwot"
+ version('0.1.10', sha256='6ee1b6027bce679cd5a35f647f516a5b327632234bcf323c7f3d5b5e10807d23')
version('0.1.3', sha256='4936e6922444cae8a71735e945b6bb0828a1012232eb94568054f78451c406d7')
depends_on('r-matrix', type=('build', 'run'))
@@ -28,8 +31,9 @@ class RUwot(RPackage):
depends_on('r-fnn', type=('build', 'run'))
depends_on('r-rspectra', type=('build', 'run'))
depends_on('r-rcppannoy@0.0.11:', type=('build', 'run'))
- depends_on('r-rcppparallel', type=('build', 'run'))
+ depends_on('r-rcppannoy@0.0.17:', when='@0.1.10:', type=('build', 'run'))
depends_on('r-irlba', type=('build', 'run'))
depends_on('r-rcppprogress', type=('build', 'run'))
depends_on('r-dqrng', type=('build', 'run'))
- depends_on('gmake', type='build')
+ depends_on('r-rcppparallel', when='@:0.1.3', type=('build', 'run'))
+ depends_on('gmake', when='@:0.1.3', type='build')
diff --git a/var/spack/repos/builtin/packages/r-v8/package.py b/var/spack/repos/builtin/packages/r-v8/package.py
new file mode 100644
index 0000000000..c57a192f61
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-v8/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 RV8(RPackage):
+ """V8: Embedded JavaScript and WebAssembly Engine for R"""
+
+ homepage = "https://github.com/jeroen/v8"
+ url = "https://cloud.r-project.org/src/contrib/V8_3.4.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/V8"
+
+ version('3.4.0', sha256='f5c8a2a03cc1be9f504f47711a0fcd1b962745139c9fb2a10fbd79c4ae103fbd')
+
+ depends_on('r-curl@1.0:', type=('build', 'run'))
+ depends_on('r-jsonlite@1.0:', type=('build', 'run'))
+ depends_on('r-rcpp@0.12.12:', type=('build', 'run'))
+
+ conflicts('@3.4.0', when='target=aarch64:')
+
+ def setup_build_environment(self, env):
+ spec = self.spec
+ if ((spec.platform == 'darwin') or
+ (spec.platform == 'linux' and spec.target.family == 'x86_64')):
+ env.append_flags('DOWNLOAD_STATIC_LIBV8', '1')
diff --git a/var/spack/repos/builtin/packages/r-variantannotation/package.py b/var/spack/repos/builtin/packages/r-variantannotation/package.py
index d1037acc7a..eb356adb52 100644
--- a/var/spack/repos/builtin/packages/r-variantannotation/package.py
+++ b/var/spack/repos/builtin/packages/r-variantannotation/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RVariantannotation(RPackage):
- """Annotation of Genetic Variants.
+ """Annotation of Genetic Variants
Annotate variants, compute amino acid coding changes, predict coding
outcomes."""
@@ -15,6 +15,7 @@ class RVariantannotation(RPackage):
homepage = "https://bioconductor.org/packages/VariantAnnotation"
git = "https://git.bioconductor.org/packages/VariantAnnotation.git"
+ version('1.36.0', commit='9918bd19a2e6f89e5edc5fe03c8812f500bb3e19')
version('1.30.1', commit='fb1ab00872570afb280522c4663e347dafc07a9e')
version('1.28.13', commit='0393347b8ce2d5edf1a61589be93e6a93eda3419')
version('1.26.1', commit='60ae67598cc3d7ed20ee6417920f8c209085faaf')
@@ -23,37 +24,42 @@ class RVariantannotation(RPackage):
depends_on('r@2.8.0:', type=('build', 'run'))
depends_on('r-biocgenerics@0.15.3:', type=('build', 'run'))
+ depends_on('r-matrixgenerics', when='@1.36.0:', type=('build', 'run'))
depends_on('r-genomeinfodb@1.11.4:', type=('build', 'run'))
+ depends_on('r-genomeinfodb@1.15.2:', when='@1.26.1:', type=('build', 'run'))
depends_on('r-genomicranges@1.27.6:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.31.8:', when='@1.26.1:', type=('build', 'run'))
+ depends_on('r-genomicranges@1.41.5:', when='@1.36.0:', type=('build', 'run'))
depends_on('r-summarizedexperiment@1.5.3:', type=('build', 'run'))
+ depends_on('r-summarizedexperiment@1.19.5:', when='@1.36.0:', type=('build', 'run'))
depends_on('r-rsamtools@1.23.10:', type=('build', 'run'))
+ depends_on('r-rsamtools@1.31.2:', when='@1.26.1:', type=('build', 'run'))
+ depends_on('r-rsamtools@1.33.6:', when='@1.28.13:', type=('build', 'run'))
+ depends_on('r-rsamtools@1.99.0:', when='@1.30.1:', type=('build', 'run'))
depends_on('r-dbi', type=('build', 'run'))
depends_on('r-zlibbioc', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-s4vectors@0.13.13:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.17.24:', when='@1.26.1:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.27.12:', when='@1.36.0:', type=('build', 'run'))
depends_on('r-iranges@2.3.25:', type=('build', 'run'))
+ depends_on('r-iranges@2.13.13:', when='@1.26.1:', type=('build', 'run'))
+ depends_on('r-iranges@2.23.9:', when='@1.36.0:', type=('build', 'run'))
depends_on('r-xvector@0.5.6:', type=('build', 'run'))
+ depends_on('r-xvector@0.19.7:', when='@1.26.1:', type=('build', 'run'))
+ depends_on('r-xvector@0.29.2:', when='@1.36.0:', type=('build', 'run'))
depends_on('r-biostrings@2.33.5:', type=('build', 'run'))
+ depends_on('r-biostrings@2.47.6:', when='@1.26.1:', type=('build', 'run'))
+ depends_on('r-biostrings@2.57.2:', when='@1.36.0:', type=('build', 'run'))
depends_on('r-annotationdbi@1.27.9:', type=('build', 'run'))
- depends_on('r-bsgenome@1.37.6:', type=('build', 'run'))
depends_on('r-rtracklayer@1.25.16:', type=('build', 'run'))
- depends_on('r-genomicfeatures@1.27.4:', type=('build', 'run'))
-
- depends_on('r-genomeinfodb@1.15.2:', when='@1.26.1:', type=('build', 'run'))
- depends_on('r-genomicranges@1.31.8:', when='@1.26.1:', type=('build', 'run'))
- depends_on('r-summarizedexperiment@1.9.9:', when='@1.26.1:', type=('build', 'run'))
- depends_on('r-rsamtools@1.31.2:', when='@1.26.1:', type=('build', 'run'))
- depends_on('r-s4vectors@0.17.24:', when='@1.26.1:', type=('build', 'run'))
- depends_on('r-iranges@2.13.13:', when='@1.26.1:', type=('build', 'run'))
- depends_on('r-xvector@0.19.7:', when='@1.26.1:', type=('build', 'run'))
- depends_on('r-biostrings@2.47.6:', when='@1.26.1:', type=('build', 'run'))
depends_on('r-rtracklayer@1.39.7:', when='@1.26.1:', type=('build', 'run'))
+ depends_on('r-bsgenome@1.37.6:', type=('build', 'run'))
depends_on('r-bsgenome@1.47.3:', when='@1.26.1:', type=('build', 'run'))
+ depends_on('r-genomicfeatures@1.27.4:', type=('build', 'run'))
depends_on('r-genomicfeatures@1.31.3:', when='@1.26.1:', type=('build', 'run'))
-
- depends_on('r-rsamtools@1.33.6:', when='@1.28.13:', type=('build', 'run'))
-
- depends_on('r-rsamtools@1.99.0:', when='@1.30.1:', type=('build', 'run'))
depends_on('r-rhtslib', when='@1.30.1:', type=('build', 'run'))
-
depends_on('gmake', type='build')
+
+ # Not listed but needed
+ depends_on('curl')
diff --git a/var/spack/repos/builtin/packages/r-varselrf/package.py b/var/spack/repos/builtin/packages/r-varselrf/package.py
index 1bc5e7b4b7..258bdb7352 100644
--- a/var/spack/repos/builtin/packages/r-varselrf/package.py
+++ b/var/spack/repos/builtin/packages/r-varselrf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class RVarselrf(RPackage):
. Main applications in high-dimensional data (e.g., microarray data,
and other genomics and proteomics applications)."""
- homepage = "http://ligarto.org/rdiaz/Software/Software.html"
+ homepage = "https://ligarto.org/rdiaz/Software/Software.html"
url = "https://cloud.r-project.org/src/contrib/varSelRF_0.7-8.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/varSelRF"
diff --git a/var/spack/repos/builtin/packages/r-vcd/package.py b/var/spack/repos/builtin/packages/r-vcd/package.py
index cb8e90e46a..1828d76853 100644
--- a/var/spack/repos/builtin/packages/r-vcd/package.py
+++ b/var/spack/repos/builtin/packages/r-vcd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RVcd(RPackage):
- """Visualization techniques, data sets, summary and inference procedures
+ """Visualizing Categorical Data
+
+ Visualization techniques, data sets, summary and inference procedures
aimed particularly at categorical data. Special emphasis is given to highly
extensible grid graphics. The package was package was originally inspired
by the book "Visualizing Categorical Data" by Michael Friendly and is now
@@ -18,6 +20,7 @@ class RVcd(RPackage):
url = "https://cloud.r-project.org/src/contrib/vcd_1.4-1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/vcd"
+ version('1.4-8', sha256='236fcb183152f6e9d131eeb3931d5a064a5ff79be91e4533df9148fd2ff41e0c')
version('1.4-4', sha256='a561adf120b5ce41b66e0c0c321542fcddc772eb12b3d7020d86e9cd014ce9d2')
version('1.4-3', sha256='17ce89927421d9cd01285b6093eeaaecb1e7252388007f66d3b9222e58cc5f15')
version('1.4-1', sha256='af4c77522efef28271afab7d90679824826132c6bc61abe17df763ed1fc24994')
diff --git a/var/spack/repos/builtin/packages/r-vcfr/package.py b/var/spack/repos/builtin/packages/r-vcfr/package.py
new file mode 100644
index 0000000000..9d1c10694d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-vcfr/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2021 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 RVcfr(RPackage):
+ """Manipulate and Visualize VCF Data
+
+ Facilitates easy manipulation of variant call format (VCF) data. Functions
+ are provided to rapidly read from and write to VCF files. Once VCF data is
+ read into R a parser function extracts matrices of data. This information
+ can then be used for quality control or other purposes. Additional
+ functions provide visualization of genomic data. Once processing is
+ complete data may be written to a VCF file (*.vcf.gz). It also may be
+ converted into other popular R objects (e.g., genlight, DNAbin). VcfR
+ provides a link between VCF data and familiar R software."""
+
+ homepage = "https://github.com/knausb/vcfR"
+ cran = "vcfR"
+
+ maintainers = ['dorton21']
+
+ version('1.12.0', sha256='dd87ff010365de363864a44ca49887c0fdad0dd18d0d9c66e44e39c2d4581d52')
+
+ depends_on('r@3.0.1:', type=('build', 'run'))
+ depends_on('r-ape', type=('build', 'run'))
+ depends_on('r-dplyr', type=('build', 'run'))
+ depends_on('r-magrittr', type=('build', 'run'))
+ depends_on('r-memuse', type=('build', 'run'))
+ depends_on('r-pinfsc50', type=('build', 'run'))
+ depends_on('r-rcpp', type=('build', 'run'))
+ depends_on('r-stringr', type=('build', 'run'))
+ depends_on('r-tibble', type=('build', 'run'))
+ depends_on('r-vegan', type=('build', 'run'))
+ depends_on('r-viridislite', type=('build', 'run'))
+ depends_on('zlib')
diff --git a/var/spack/repos/builtin/packages/r-vctrs/package.py b/var/spack/repos/builtin/packages/r-vctrs/package.py
index ad1fea5dc2..410be98f3e 100644
--- a/var/spack/repos/builtin/packages/r-vctrs/package.py
+++ b/var/spack/repos/builtin/packages/r-vctrs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,26 @@ from spack import *
class RVctrs(RPackage):
- """Defines new notions of prototype and size that are used to provide tools
+ """Vector Helpers
+
+ Defines new notions of prototype and size that are used to provide tools
for consistent and well-founded type-coercion and size-recycling, and are
in turn connected to ideas of type- and size-stability useful for analyzing
function interfaces."""
homepage = "https://github.com/r-lib/vctrs"
- url = "https://cloud.r-project.org/src/contrib/vctrs_0.2.0.tar.gz"
+ url = "https://github.com/r-lib/vctrs/archive/v0.3.5.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/vctrs"
+ version('0.3.6', sha256='5869a2cc2cb62ccb6f7ff7e8f88c02790d5ea256cccaf51aee56fb28e7ee48ce')
+ version('0.3.5', sha256='798dd19809ab99267456ebf488e7aa4e3c03f7f307f5e0abde01dc7ba1cf53ce')
version('0.2.0', sha256='5bce8f228182ecaa51230d00ad8a018de9cf2579703e82244e0931fe31f20016')
depends_on('r@3.2:', type=('build', 'run'))
- depends_on('r-backports', type=('build', 'run'))
+ depends_on('r@3.3:', when='@0.3.5:', type=('build', 'run'))
depends_on('r-ellipsis@0.2.0:', type=('build', 'run'))
depends_on('r-digest', type=('build', 'run'))
depends_on('r-glue', type=('build', 'run'))
depends_on('r-rlang@0.4.0:', type=('build', 'run'))
- depends_on('r-zeallot', type=('build', 'run'))
+ depends_on('r-rlang@0.4.7:', when='@0.3.5:', type=('build', 'run'))
+ depends_on('r-zeallot', when='@:0.2.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-vegan/package.py b/var/spack/repos/builtin/packages/r-vegan/package.py
index adbfe7869e..1dce840c9f 100644
--- a/var/spack/repos/builtin/packages/r-vegan/package.py
+++ b/var/spack/repos/builtin/packages/r-vegan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,18 +7,21 @@ from spack import *
class RVegan(RPackage):
- """Ordination methods, diversity analysis and other functions for
+ """Community Ecology Package
+
+ Ordination methods, diversity analysis and other functions for
community and vegetation ecologists."""
homepage = "https://github.com/vegandevs/vegan"
url = "https://cloud.r-project.org/src/contrib/vegan_2.4-3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/vegan"
+ version('2.5-7', sha256='e63b586951ea7d8b0118811f329c700212892ec1db3b93951603ce1d68aa462a')
version('2.5-5', sha256='876b5266f29f3034fed881020d16f476e62d145a00cb450a1a213e019e056971')
version('2.5-4', sha256='5116a440111fca49b5f95cfe888b180ff29a112e6301d5e2ac5cae0e628493e0')
version('2.4-3', sha256='2556b1281a62e53f32bb57539bc600c00a599d0699867912220535d1a3ebec97')
- depends_on('r@3.0.0:', when='@:2.4-6', type=('build', 'run'))
+ depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r@3.1.0:', when='@2.5-1', type=('build', 'run'))
depends_on('r@3.2.0:', when='@2.5-2:2.5-4', type=('build', 'run'))
depends_on('r@3.4.0:', when='@2.5-5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-vfs/package.py b/var/spack/repos/builtin/packages/r-vfs/package.py
index a43566b888..9ba672e7a2 100644
--- a/var/spack/repos/builtin/packages/r-vfs/package.py
+++ b/var/spack/repos/builtin/packages/r-vfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-vgam/package.py b/var/spack/repos/builtin/packages/r-vgam/package.py
index b0a8c9a253..c1155ce5db 100644
--- a/var/spack/repos/builtin/packages/r-vgam/package.py
+++ b/var/spack/repos/builtin/packages/r-vgam/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,30 @@ from spack import *
class RVgam(RPackage):
- """An implementation of about 6 major classes of statistical regression
- models."""
+ """Vector Generalized Linear and Additive Models
+
+ An implementation of about 6 major classes of statistical regression
+ models. The central algorithm is Fisher scoring and iterative reweighted
+ least squares. At the heart of this package are the vector generalized
+ linear and additive model (VGLM/VGAM) classes. VGLMs can be loosely thought
+ of as multivariate GLMs. VGAMs are data-driven VGLMs that use smoothing.
+ The book "Vector Generalized Linear and Additive Models: With an
+ Implementation in R" (Yee, 2015) <DOI:10.1007/978-1-4939-2818-7> gives
+ details of the statistical framework and the package. Currently only
+ fixed-effects models are implemented. Many (150+) models and distributions
+ are estimated by maximum likelihood estimation (MLE) or penalized MLE. The
+ other classes are RR-VGLMs (reduced-rank VGLMs), quadratic RR-VGLMs,
+ reduced-rank VGAMs, RCIMs (row-column interaction models)---these classes
+ perform constrained and unconstrained quadratic ordination (CQO/UQO) models
+ in ecology, as well as constrained additive ordination (CAO). Hauck-Donner
+ effect detection is implemented. Note that these functions are subject to
+ change; see the NEWS and ChangeLog files for latest changes."""
homepage = "https://cloud.r-project.org/package=VGAM"
url = "https://cloud.r-project.org/src/contrib/VGAM_1.0-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/VGAM"
+ version('1.1-5', sha256='30190b150f3e5478137d288a45f575b2654ad7c29254b0a1fe5c954ee010a1bb')
version('1.1-1', sha256='de192bd65a7e8818728008de8e60e6dd3b61a13616c887a43e0ccc8147c7da52')
version('1.0-6', sha256='121820a167411e847b41bdcb0028b55842d0ccc0c3471755c67449837e0fe3b9')
version('1.0-4', sha256='e581985f78ef8b866d0e810b2727061bb9c9bc177b2c9090aebb3a35ae87a964')
@@ -22,6 +39,7 @@ class RVgam(RPackage):
version('1.0-1', sha256='c066864e406fcee23f383a28299dba3cf83356e5b68df16324885afac87a05ea')
version('1.0-0', sha256='6acdd7db49c0987c565870afe593160ceba72a6ca4a84e6da3cf6f74d1fa02e1')
- depends_on('r@3.0.0:', when='@:1.0-1', type=('build', 'run'))
+ depends_on('r@3.0.0:', type=('build', 'run'))
depends_on('r@3.1.0:', when='@1.0-2:1.0-3', type=('build', 'run'))
depends_on('r@3.4.0:', when='@1.0-4:', type=('build', 'run'))
+ depends_on('r@3.5.0:', when='@1.1-5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-vioplot/package.py b/var/spack/repos/builtin/packages/r-vioplot/package.py
index 451e5cf5b3..f0cae082fa 100644
--- a/var/spack/repos/builtin/packages/r-vioplot/package.py
+++ b/var/spack/repos/builtin/packages/r-vioplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,18 @@ from spack import *
class RVioplot(RPackage):
- """vioplot: Violin Plot"""
+ """Violin Plot
+
+ A violin plot is a combination of a box plot and a kernel density plot.
+ This package allows extensive customisation of violin plots. """
homepage = "https://cloud.r-project.org/package=vioplot"
url = "https://cloud.r-project.org/src/contrib/vioplot_0.3.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/vioplot"
+ version('0.3.5', sha256='1b64833c1bd6851036cf1c400c7d0036a047e71def94a399c897263b4b303e2a')
version('0.3.2', sha256='7b51d0876903a3c315744cb051ac61920eeaa1f0694814959edfae43ce956e8e')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r-sm', type=('build', 'run'))
depends_on('r-zoo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-vipor/package.py b/var/spack/repos/builtin/packages/r-vipor/package.py
index 232a59cc48..7e3f1ae395 100644
--- a/var/spack/repos/builtin/packages/r-vipor/package.py
+++ b/var/spack/repos/builtin/packages/r-vipor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-viridis/package.py b/var/spack/repos/builtin/packages/r-viridis/package.py
index 42ec7cfdf0..f5df1f8032 100644
--- a/var/spack/repos/builtin/packages/r-viridis/package.py
+++ b/var/spack/repos/builtin/packages/r-viridis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-viridislite/package.py b/var/spack/repos/builtin/packages/r-viridislite/package.py
index 6b0a3fda03..352d17d971 100644
--- a/var/spack/repos/builtin/packages/r-viridislite/package.py
+++ b/var/spack/repos/builtin/packages/r-viridislite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-visnetwork/package.py b/var/spack/repos/builtin/packages/r-visnetwork/package.py
index 07b18d82d6..21ac57d29b 100644
--- a/var/spack/repos/builtin/packages/r-visnetwork/package.py
+++ b/var/spack/repos/builtin/packages/r-visnetwork/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RVisnetwork(RPackage):
- """Provides an R interface to the 'vis.js' JavaScript charting library. It
+ """Network Visualization using 'vis.js' Library
+
+ Provides an R interface to the 'vis.js' JavaScript charting library. It
allows an interactive visualization of networks."""
homepage = "https://github.com/datastorm-open/visNetwork"
url = "https://cloud.r-project.org/src/contrib/visNetwork_1.0.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/visNetwork"
+ version('2.0.9', sha256='5e0b3dc3a91e66e0a359433f03cc856d04b981b0f9ad228d8fa9c96b7fcaa420')
version('2.0.7', sha256='15ad01636a3a19e1901be6743052805a5b6a9ac1240fb3dab765252b1e865128')
version('2.0.6', sha256='ec2478e6a2af446569ef2d5210a2bc6b2600bcb7fd9908cef8f8c80b01e9c8aa')
version('1.0.1', sha256='13aacf58d3bf9e78c7fb3af180062762bf22aec1777c829715c5b00396639a70')
diff --git a/var/spack/repos/builtin/packages/r-vsn/package.py b/var/spack/repos/builtin/packages/r-vsn/package.py
index b3a45677aa..484c296ea0 100644
--- a/var/spack/repos/builtin/packages/r-vsn/package.py
+++ b/var/spack/repos/builtin/packages/r-vsn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RVsn(RPackage):
- """Variance stabilization and calibration for microarray data.
+ """Variance stabilization and calibration for microarray data
The package implements a method for normalising microarray intensities,
and works for single- and multiple-color arrays. It can also be used for
@@ -25,6 +25,7 @@ class RVsn(RPackage):
homepage = "https://bioconductor.org/packages/vsn"
git = "https://git.bioconductor.org/packages/vsn.git"
+ version('3.58.0', commit='a451e6ae989623750feacf26d99683a7955adf85')
version('3.52.0', commit='e80642d850ae93bc141654200a8970b561a94fbe')
version('3.50.0', commit='ad49fcc288c6065d0f04040acd688e7f0d7d927e')
version('3.48.1', commit='d57f64112004b1d73b3be625949830209de027eb')
@@ -32,11 +33,10 @@ class RVsn(RPackage):
version('3.44.0', commit='e54513fcdd07ccfb8094359e93cef145450f0ee0')
depends_on('r@3.0.0:', type=('build', 'run'))
+ depends_on('r@3.4.0:', when='@3.46.0:', type=('build', 'run'))
depends_on('r-biobase', type=('build', 'run'))
depends_on('r-affy', type=('build', 'run'))
depends_on('r-limma', type=('build', 'run'))
depends_on('r-lattice', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
- depends_on('r-hexbin', when='@3.44.0', type=('build', 'run'))
-
- depends_on('r@3.4.0:', when='@3.46.0:', type=('build', 'run'))
+ depends_on('r-hexbin', when='@3.44.0:3.52.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-waldo/package.py b/var/spack/repos/builtin/packages/r-waldo/package.py
new file mode 100644
index 0000000000..e8d6a1ad55
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-waldo/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 RWaldo(RPackage):
+ """Find Differences Between R Objects
+
+ Compare complex R objects and reveal the key differences. Designed
+ particularly for use in testing packages where being able to quickly
+ isolate key differences makes understanding test failures much easier."""
+
+ homepage = "https://github.com/r-lib/waldo"
+ url = "https://cloud.r-project.org/src/contrib/waldo_0.2.3.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/waldo"
+
+ version('0.2.3', sha256='1fbab22fe9be6ca8caa3df7306c763d7025d81ab6f17b85daaf8bdc8c9455c53')
+
+ depends_on('r-cli', type=('build', 'run'))
+ depends_on('r-diffobj', type=('build', 'run'))
+ depends_on('r-fansi', type=('build', 'run'))
+ depends_on('r-glue', type=('build', 'run'))
+ depends_on('r-rematch2', type=('build', 'run'))
+ depends_on('r-rlang', type=('build', 'run'))
+ depends_on('r-tibble', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-watermelon/package.py b/var/spack/repos/builtin/packages/r-watermelon/package.py
index a1d827870c..5a69451d0d 100644
--- a/var/spack/repos/builtin/packages/r-watermelon/package.py
+++ b/var/spack/repos/builtin/packages/r-watermelon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,15 @@ from spack import *
class RWatermelon(RPackage):
- """Illumina 450 methylation array normalization and metrics."""
+ """Illumina 450 methylation array normalization and metrics
+
+ 15 flavours of betas and three performance metrics, with methods for
+ objects produced by methylumi and minfi packages."""
homepage = "https://bioconductor.org/packages/release/bioc/html/wateRmelon.html"
git = "https://git.bioconductor.org/packages/wateRmelon"
+ version('1.34.0', commit='3fa2745535c22068a438747b41b9d793196098d4')
version('1.30.0', commit='66d7579fe49206d965832288df7937c3d43ed578')
depends_on('r@2.10:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-webshot/package.py b/var/spack/repos/builtin/packages/r-webshot/package.py
index bcf2997ddc..d5fe0d33f6 100644
--- a/var/spack/repos/builtin/packages/r-webshot/package.py
+++ b/var/spack/repos/builtin/packages/r-webshot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,23 @@ from spack import *
class RWebshot(RPackage):
- """webshot: Take Screenshots of Web Pages"""
+ """Take Screenshots of Web Pages
+
+ Takes screenshots of web pages, including Shiny applications and R Markdown
+ documents."""
homepage = "https://github.com/wch/webshot/"
url = "https://cloud.r-project.org/src/contrib/webshot_0.5.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/webshot/"
+ version('0.5.2', sha256='f183dc970157075b51ac543550a7a48fa3428b9c6838abb72fe987c21982043f')
version('0.5.1', sha256='b9750d206c6fa0f1f16cc212b0a34f4f4bfa916962d2c877f0ee9a33620f4b23')
+ depends_on('r+X', type=('build', 'run'))
depends_on('r@3.0:', type=('build', 'run'))
depends_on('r-magrittr', type=('build', 'run'))
depends_on('r-jsonlite', type=('build', 'run'))
depends_on('r-callr', type=('build', 'run'))
+ depends_on('imagemagick', type='run')
+
+ # need a phantomjs package to make this actually work.
diff --git a/var/spack/repos/builtin/packages/r-wgcna/package.py b/var/spack/repos/builtin/packages/r-wgcna/package.py
index 4af76c78ad..f2992a98af 100644
--- a/var/spack/repos/builtin/packages/r-wgcna/package.py
+++ b/var/spack/repos/builtin/packages/r-wgcna/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,12 +7,22 @@ from spack import *
class RWgcna(RPackage):
- """WGCNA: Weighted Correlation Network Analysis"""
+ """Weighted Correlation Network Analysis
+
+ Functions necessary to perform Weighted Correlation Network Analysis on
+ high-dimensional data as originally described in Horvath and Zhang (2005)
+ <doi:10.2202/1544-6115.1128> and Langfelder and Horvath (2008)
+ <doi:10.1186/1471-2105-9-559>. Includes functions for rudimentary data
+ cleaning, construction of correlation networks, module identification,
+ summarization, and relating of variables and modules to sample traits. Also
+ includes a number of utility functions for data manipulation and
+ visualization."""
homepage = "https://cloud.r-project.org/package=WGCNA"
url = "https://cloud.r-project.org/src/contrib/WGCNA_1.68.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/WGCNA/"
+ version('1.69', sha256='2ea152d45b2d4f0e40b4b9f7b5ea8a96e230f7744ece8be27bdba96cf39d5008')
version('1.68', sha256='0a04f15a20817f9260ae1896eda3be83a7f4855a27a348df85c7f4d376f1efe8')
version('1.67', sha256='c9cc9989763b2c80835489eabd38d9ee35b204305044d115ca7c775a103f6824')
version('1.64-1', sha256='961a890cda40676ba533cd6de2b1d4f692addd16363f874c82ba8b65dd2d0db6')
@@ -30,4 +40,4 @@ class RWgcna(RPackage):
depends_on('r-go-db', type=('build', 'run'))
depends_on('r-annotationdbi', type=('build', 'run'))
depends_on('r-rcpp@0.11.0:', type=('build', 'run'))
- depends_on('r-robust', type=('build', 'run'))
+ depends_on('r-robust', when='@:1.68', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-whisker/package.py b/var/spack/repos/builtin/packages/r-whisker/package.py
index cecb1eb2af..0eb07e19d1 100644
--- a/var/spack/repos/builtin/packages/r-whisker/package.py
+++ b/var/spack/repos/builtin/packages/r-whisker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,11 +7,13 @@ from spack import *
class RWhisker(RPackage):
- """logicless templating, reuse templates in many programming languages
- including R"""
+ """{{mustache}} for R, Logicless Templating
- homepage = "http://github.com/edwindj/whisker"
+ Implements 'Mustache' logicless templating."""
+
+ homepage = "https://github.com/edwindj/whisker"
url = "https://cloud.r-project.org/src/contrib/whisker_0.3-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/whisker"
+ version('0.4', sha256='7a86595be4f1029ec5d7152472d11b16175737e2777134e296ae97341bf8fba8')
version('0.3-2', sha256='484836510fcf123a66ddd13cdc8f32eb98e814cad82ed30c0294f55742b08c7c')
diff --git a/var/spack/repos/builtin/packages/r-withr/package.py b/var/spack/repos/builtin/packages/r-withr/package.py
index 42e2e2427f..50ba94c8a9 100644
--- a/var/spack/repos/builtin/packages/r-withr/package.py
+++ b/var/spack/repos/builtin/packages/r-withr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,18 @@ from spack import *
class RWithr(RPackage):
- """A set of functions to run code 'with' safely and temporarily modified
+ """Run Code 'With' Temporarily Modified Global State
+
+ A set of functions to run code 'with' safely and temporarily modified
global state. Many of these functions were originally a part of the
'devtools' package, this provides a simple package with limited
dependencies to provide access to these functions."""
- homepage = "http://github.com/jimhester/withr"
+ homepage = "https://github.com/jimhester/withr"
url = "https://cloud.r-project.org/src/contrib/withr_1.0.2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/withr"
+ version('2.4.0', sha256='ede4cdc7e4d17e0ad24afc9fb940cba46fac4421d3a39281e9918377d73714f8')
version('2.2.0', sha256='4c21e51cf48f8c281ddd5f5ec358ac446df3c982104fd00bfe62d9259d73b582')
version('2.1.2', sha256='41366f777d8adb83d0bdbac1392a1ab118b36217ca648d3bb9db763aa7ff4686')
version('1.0.2', sha256='2391545020adc4256ee7c2e31c30ff6f688f0b6032e355e1ce8f468cab455f10')
diff --git a/var/spack/repos/builtin/packages/r-wk/package.py b/var/spack/repos/builtin/packages/r-wk/package.py
new file mode 100644
index 0000000000..d6d9aea2d9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-wk/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 RWk(RPackage):
+ """Lightweight Well-Known Geometry Parsing
+
+ Provides a minimal R and C++ API for parsing well-known binary and
+ well-known text representation of geometries to and from R-native formats.
+ Well-known binary is compact and fast to parse; well-known text is
+ human-readable and is useful for writing tests. These formats are only
+ useful in R if the information they contain can be accessed in R, for which
+ high-performance functions are provided here."""
+
+ homepage = "https://paleolimbot.github.io/wk/"
+ cran = "wk"
+
+ version('0.4.1', sha256='daa7351af0bd657740972016906c686f335b8fa922ba10250e5000ddc2bb8950')
+
+ depends_on('r-cpp11', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xde/package.py b/var/spack/repos/builtin/packages/r-xde/package.py
index 928503c1d5..acfd509fa9 100644
--- a/var/spack/repos/builtin/packages/r-xde/package.py
+++ b/var/spack/repos/builtin/packages/r-xde/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,11 +8,15 @@ from spack import *
class RXde(RPackage):
"""XDE: a Bayesian hierarchical model for cross-study analysis of
- differential gene expression."""
+ differential gene expression
+
+ Multi-level model for cross-study detection of differential gene
+ expression."""
homepage = "https://bioconductor.org/packages/XDE"
git = "https://git.bioconductor.org/packages/XDE.git"
+ version('2.36.0', commit='0277f9dffbd7d1880be77cb8581fc614501b3293')
version('2.30.0', commit='058af6f1e431522778f970bf61f834620d3d7dd7')
version('2.28.0', commit='b8cc7d0840ce1324644e8b4a750fbb964884498b')
version('2.26.0', commit='7bf6368037937c53542447175061c2e2059ee3be')
@@ -24,9 +28,8 @@ class RXde(RPackage):
depends_on('r-biocgenerics', type=('build', 'run'))
depends_on('r-genefilter', type=('build', 'run'))
depends_on('r-gtools', type=('build', 'run'))
- depends_on('r-mergemaid', type=('build', 'run'))
depends_on('r-mvtnorm', type=('build', 'run'))
-
depends_on('r-rcolorbrewer', when='@2.24.0:', type=('build', 'run'))
depends_on('r-genemeta', when='@2.24.0:', type=('build', 'run'))
depends_on('r-siggenes', when='@2.24.0:', type=('build', 'run'))
+ depends_on('r-mergemaid', when='@:2.30.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xfun/package.py b/var/spack/repos/builtin/packages/r-xfun/package.py
index af92291d52..de9d93675e 100644
--- a/var/spack/repos/builtin/packages/r-xfun/package.py
+++ b/var/spack/repos/builtin/packages/r-xfun/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,8 @@ class RXfun(RPackage):
'Yihui Xie'."""
homepage = "https://github.com/yihui/xfun"
- url = "https://cloud.r-project.org/src/contrib/xfun_0.8.tar.gz"
- list_url = "https://cloud.r-project.org/src/contrib/Archive/xfun"
+ cran = "xfun"
+ version('0.24', sha256='e3e39a95202f6db4f6de3a8b9a344074a4944a3a8a522d44971390c905e2b583')
+ version('0.20', sha256='284239d12a3d5ea7d1ef8b1382fb0a7a4661af54c85510501279681871da7c10')
version('0.8', sha256='c2f8ecf8b57ddec02f9be7f417d9e22fc1ae2c7db8d70aa703fc62bf4a5c5416')
diff --git a/var/spack/repos/builtin/packages/r-xgboost/package.py b/var/spack/repos/builtin/packages/r-xgboost/package.py
index 825e24eef5..7ae19a77b8 100644
--- a/var/spack/repos/builtin/packages/r-xgboost/package.py
+++ b/var/spack/repos/builtin/packages/r-xgboost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,9 @@ from spack import *
class RXgboost(RPackage):
- """Extreme Gradient Boosting, which is an efficient implementation of
+ """Extreme Gradient Boosting
+
+ Extreme Gradient Boosting, which is an efficient implementation of
gradient boosting framework. This package is its R interface. The package
includes efficient linear model solver and tree learning algorithms. The
package can automatically do parallel computation on a single machine which
@@ -21,18 +23,20 @@ class RXgboost(RPackage):
url = "https://cloud.r-project.org/src/contrib/xgboost_0.6-4.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/xgboost"
+ version('1.3.2.1', sha256='2ff462b81ad51a4810bd7860cb014b9b88831a8b1d45774249a808547147f884')
version('0.90.0.2', sha256='240584c1b4d54a95b4fef9074480752fae9a5b096e8f84747457d641decfc9bf')
version('0.81.0.1', sha256='3e7ada32e66881ea5c90aeafdab948927014c76cfff60a8e3d7f9e1f8a9ed7ce')
version('0.6-4', sha256='9fc51dd1b910c70930357f617d1ac7a74c5056e8847d4188175db27c09f9d1ed')
version('0.4-4', sha256='b955fc3352fcdc4894178c82fd62fbaf5e099c9d794f1e9daa2dd7b3494b61ff')
- depends_on('r@2.10:', when='@:0.4-4', type=('build', 'run'))
+ depends_on('r@2.10:', type=('build', 'run'))
depends_on('r@2.15.1:', when='@0.6-0:0.6-2', type=('build', 'run'))
depends_on('r@3.3.0:', when='@0.6-3:', type=('build', 'run'))
depends_on('r-matrix@1.1-0:', type=('build', 'run'))
depends_on('r-data-table@1.9.6:', type=('build', 'run'))
depends_on('r-magrittr@1.5:', type=('build', 'run'))
- depends_on('r-stringi@0.5.2:', type=('build', 'run'))
+ depends_on('r-stringi@0.5.2:', when='@:0.90.0.2', type=('build', 'run'))
+ depends_on('gmake', type='build')
# This is not listed as required, but installation fails without it
# ERROR: dependency 'stringr' is not available for package 'xgboost'
diff --git a/var/spack/repos/builtin/packages/r-xlconnect/package.py b/var/spack/repos/builtin/packages/r-xlconnect/package.py
index 9d1b8732b3..206eb4420e 100644
--- a/var/spack/repos/builtin/packages/r-xlconnect/package.py
+++ b/var/spack/repos/builtin/packages/r-xlconnect/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,19 +7,26 @@ from spack import *
class RXlconnect(RPackage):
- """Provides comprehensive functionality to read, write and format Excel
+ """Excel Connector for R
+
+ Provides comprehensive functionality to read, write and format Excel
data."""
- homepage = "http://miraisolutions.wordpress.com/"
+ homepage = "https://miraisolutions.wordpress.com/"
url = "https://cloud.r-project.org/src/contrib/XLConnect_0.2-11.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/XLConnect"
+ version('1.0.1', sha256='927aa34a3c81c12bf156e55edca9e2f5186c31435cce23feda4b906d049d6e39')
version('0.2-15', sha256='26e1d8db65974719adbc25f1327c584003eb562dc1bb2121bffc2550cf3178b3')
version('0.2-14', sha256='d1013ed26947572bad97d62a3d66346f74993cf96c6408d21d5b6ee567468819')
version('0.2-12', sha256='500624f078fb27338aa91d8710daaf38633659a9b17f7cb713232a3d66f9f62c')
version('0.2-11', sha256='17c5eddd00b933fd7a2ab9d942c813046d45f0af487f8d5b11011a004db69d0b')
depends_on('r@2.10.0:', type=('build', 'run'))
- depends_on('r-xlconnectjars@0.2-15', type=('build', 'run'))
depends_on('r-rjava', type=('build', 'run'))
+ depends_on('r-xlconnectjars@0.2-9', when='@0.2-11', type=('build', 'run'))
+ depends_on('r-xlconnectjars@0.2-12', when='@0.2-12', type=('build', 'run'))
+ depends_on('r-xlconnectjars@0.2-14', when='@0.2-14', type=('build', 'run'))
+ depends_on('r-xlconnectjars@0.2-15', when='@0.2-15', type=('build', 'run'))
depends_on('java@6:')
+ depends_on('java@8:11.999', when='@1.0.1:')
diff --git a/var/spack/repos/builtin/packages/r-xlconnectjars/package.py b/var/spack/repos/builtin/packages/r-xlconnectjars/package.py
index 3c6fabd9d0..0ec679d901 100644
--- a/var/spack/repos/builtin/packages/r-xlconnectjars/package.py
+++ b/var/spack/repos/builtin/packages/r-xlconnectjars/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class RXlconnectjars(RPackage):
"""Provides external JAR dependencies for the XLConnect package."""
- homepage = "http://miraisolutions.wordpress.com/"
+ homepage = "https://miraisolutions.wordpress.com/"
url = "https://cloud.r-project.org/src/contrib/XLConnectJars_0.2-9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/XLConnectJars"
diff --git a/var/spack/repos/builtin/packages/r-xlsx/package.py b/var/spack/repos/builtin/packages/r-xlsx/package.py
index 694a347a0c..31983696f1 100644
--- a/var/spack/repos/builtin/packages/r-xlsx/package.py
+++ b/var/spack/repos/builtin/packages/r-xlsx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,18 @@ from spack import *
class RXlsx(RPackage):
- """Provide R functions to read/write/format Excel 2007 and Excel
+ """Read, Write, Format Excel 2007 and Excel 97/2000/XP/2003 Files
+
+ Provide R functions to read/write/format Excel 2007 and Excel
97/2000/XP/2003 file formats."""
- homepage = "http://code.google.com/p/rexcel/"
+ homepage = "https://github.com/colearendt/xlsx"
url = "https://cloud.r-project.org/src/contrib/xlsx_0.6.1.tar.gz"
listurl = "https://cloud.r-project.org/src/contrib/Archive/xlsx"
+ version('0.6.5', sha256='378c5ed475a3d7631ea1ea13e0a69d619c1a52260922abda42818752dbb32107')
version('0.6.1', sha256='a580bd16b5477c1c185bf681c12c1ffff4088089f97b6a37997913d93ec5a8b4')
depends_on('r-rjava', type=('build', 'run'))
depends_on('r-xlsxjars', type=('build', 'run'))
- depends_on('java@1.6:')
+ depends_on('java@6:')
diff --git a/var/spack/repos/builtin/packages/r-xlsxjars/package.py b/var/spack/repos/builtin/packages/r-xlsxjars/package.py
index 45202b1ea0..434bbe2ce6 100644
--- a/var/spack/repos/builtin/packages/r-xlsxjars/package.py
+++ b/var/spack/repos/builtin/packages/r-xlsxjars/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-xmapbridge/package.py b/var/spack/repos/builtin/packages/r-xmapbridge/package.py
index 69680fb6de..67853d415f 100644
--- a/var/spack/repos/builtin/packages/r-xmapbridge/package.py
+++ b/var/spack/repos/builtin/packages/r-xmapbridge/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RXmapbridge(RPackage):
- """Export plotting files to the xmapBridge for visualisation in X:Map.
+ """Export plotting files to the xmapBridge for visualisation in X:Map
xmapBridge can plot graphs in the X:Map genome browser. This package
exports plotting files in a suitable format."""
@@ -15,6 +15,7 @@ class RXmapbridge(RPackage):
homepage = "https://bioconductor.org/packages/xmapbridge"
git = "https://git.bioconductor.org/packages/xmapbridge.git"
+ version('1.48.0', commit='1cefe6b56c6dcb1f18028b3b7d6a67d490bc9730')
version('1.42.0', commit='d79c80dfc1a0ed3fd6d3e7a7c3a4aff778537ca9')
version('1.40.0', commit='00a2993863f28711e237bc937fa0ba2d05f81684')
version('1.38.0', commit='08138f00385fa0c669ff4cc33d7eac3d29cd615d')
diff --git a/var/spack/repos/builtin/packages/r-xml/package.py b/var/spack/repos/builtin/packages/r-xml/package.py
index 948ed81dfa..1335b38fa5 100644
--- a/var/spack/repos/builtin/packages/r-xml/package.py
+++ b/var/spack/repos/builtin/packages/r-xml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RXml(RPackage):
- """Many approaches for both reading and creating XML (and HTML) documents
+ """Tools for Parsing and Generating XML Within R and S-Plus
+
+ Many approaches for both reading and creating XML (and HTML) documents
(including DTDs), both local and accessible via HTTP or FTP. Also offers
access to an 'XPath' "interpreter"."""
@@ -15,6 +17,7 @@ class RXml(RPackage):
url = "https://cloud.r-project.org/src/contrib/XML_3.98-1.9.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/XML"
+ version('3.99-0.5', sha256='60529b7360f162eba07da455eeb9b94a732b2dd623c49e0f04328a2e97bd53a6')
version('3.98-1.20', sha256='46af86376ea9a0fb1b440cf0acdf9b89178686a05c4b77728fcff1f023aa4858')
version('3.98-1.19', sha256='81b1c4a2df24c5747fa8b8ec2d76b4e9c3649b56ca94f6c93fbd106c8a72beab')
version('3.98-1.9', sha256='a3b70169cb2fbd8d61a41ff222d27922829864807e9ecad373f55ba0df6cf3c3')
@@ -22,4 +25,5 @@ class RXml(RPackage):
version('3.98-1.4', sha256='9c0abc75312f66aac564266b6b79222259c678aedee9fc347462978354f11126')
depends_on('r@2.13.0:', type=('build', 'run'))
+ depends_on('r@4.0.0:', when='@3.99-0.5:', type=('build', 'run'))
depends_on('libxml2@2.6.3:')
diff --git a/var/spack/repos/builtin/packages/r-xml2/package.py b/var/spack/repos/builtin/packages/r-xml2/package.py
index 7e12f208bf..f5dc24906a 100644
--- a/var/spack/repos/builtin/packages/r-xml2/package.py
+++ b/var/spack/repos/builtin/packages/r-xml2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-xnomial/package.py b/var/spack/repos/builtin/packages/r-xnomial/package.py
index eb26c95c70..6adc96c873 100644
--- a/var/spack/repos/builtin/packages/r-xnomial/package.py
+++ b/var/spack/repos/builtin/packages/r-xnomial/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-xopen/package.py b/var/spack/repos/builtin/packages/r-xopen/package.py
index 362553401a..3d64bc4b5c 100644
--- a/var/spack/repos/builtin/packages/r-xopen/package.py
+++ b/var/spack/repos/builtin/packages/r-xopen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-xtable/package.py b/var/spack/repos/builtin/packages/r-xtable/package.py
index bc92f22721..69cb6371d4 100644
--- a/var/spack/repos/builtin/packages/r-xtable/package.py
+++ b/var/spack/repos/builtin/packages/r-xtable/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class RXtable(RPackage):
"""Coerce data to LaTeX and HTML tables."""
- homepage = "http://xtable.r-forge.r-project.org/"
+ homepage = "https://xtable.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/xtable_1.8-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/xtable"
diff --git a/var/spack/repos/builtin/packages/r-xts/package.py b/var/spack/repos/builtin/packages/r-xts/package.py
index 69c2ea107f..30b2176093 100644
--- a/var/spack/repos/builtin/packages/r-xts/package.py
+++ b/var/spack/repos/builtin/packages/r-xts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,15 +7,18 @@ from spack import *
class RXts(RPackage):
- """Provide for uniform handling of R's different time-based data classes by
+ """eXtensible Time Series
+
+ Provide for uniform handling of R's different time-based data classes by
extending zoo, maximizing native format information preservation and
allowing for user level customization and extension, while simplifying
cross-class interoperability."""
- homepage = "http://r-forge.r-project.org/projects/xts/"
+ homepage = "https://r-forge.r-project.org/projects/xts/"
url = "https://cloud.r-project.org/src/contrib/xts_0.11-2.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/xts"
+ version('0.12.1', sha256='d680584af946fc30be0b2046e838cff7b3a65e00df1eadba325ca5e96f3dca2c')
version('0.11-2', sha256='12772f6a66aab5b84b0665c470f11a3d8d8a992955c027261cfe8e6077ee13b8')
version('0.9-7', sha256='f11f7cb98f4b92b7f6632a2151257914130880c267736ef5a264b5dc2dfb7098')
diff --git a/var/spack/repos/builtin/packages/r-xvector/package.py b/var/spack/repos/builtin/packages/r-xvector/package.py
index 1ee264a373..7567def3f5 100644
--- a/var/spack/repos/builtin/packages/r-xvector/package.py
+++ b/var/spack/repos/builtin/packages/r-xvector/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class RXvector(RPackage):
"""Foundation of external vector representation and manipulation in
- Bioconductor.
+ Bioconductor
Provides memory efficient S4 classes for storing sequences "externally"
(e.g. behind an R external pointer, or on disk)."""
@@ -16,6 +16,7 @@ class RXvector(RPackage):
homepage = "https://bioconductor.org/packages/XVector"
git = "https://git.bioconductor.org/packages/XVector.git"
+ version('0.30.0', commit='985e963e0b1c3ff004dd0b07ad7c9ff7ed853ec0')
version('0.24.0', commit='e5109cb2687724b9fddddf296c07a82bae4c551d')
version('0.22.0', commit='b5e107a5fd719e18374eb836eb498b529afa4473')
version('0.20.0', commit='a83a7ea01f6a710f0ba7d9fb021cfa795b291cb4')
@@ -25,15 +26,14 @@ class RXvector(RPackage):
depends_on('r@2.8.0:', type=('build', 'run'))
depends_on('r-biocgenerics@0.19.2:', type=('build', 'run'))
depends_on('r-s4vectors@0.13.13:', type=('build', 'run'))
- depends_on('r-iranges@2.9.18:', type=('build', 'run'))
- depends_on('r-zlibbioc', type=('build', 'run'))
-
depends_on('r-s4vectors@0.15.14:', when='@0.18.0:', type=('build', 'run'))
-
depends_on('r-s4vectors@0.17.24:', when='@0.20.0:', type=('build', 'run'))
- depends_on('r-iranges@2.13.16:', when='@0.20.0:', type=('build', 'run'))
-
depends_on('r-s4vectors@0.19.15:', when='@0.22.0:', type=('build', 'run'))
- depends_on('r-iranges@2.15.12:', when='@0.22.0:', type=('build', 'run'))
-
depends_on('r-s4vectors@0.21.13:', when='@0.24.0:', type=('build', 'run'))
+ depends_on('r-s4vectors@0.27.12:', when='@0.30.0:', type=('build', 'run'))
+ depends_on('r-iranges@2.9.18:', type=('build', 'run'))
+ depends_on('r-iranges@2.13.16:', when='@0.20.0:', type=('build', 'run'))
+ depends_on('r-iranges@2.15.12:', when='@0.22.0:', type=('build', 'run'))
+ depends_on('r-iranges@2.23.9:', when='@0.30.0:', type=('build', 'run'))
+ depends_on('r-zlibbioc', type=('build', 'run'))
+ depends_on('zlib')
diff --git a/var/spack/repos/builtin/packages/r-yaimpute/package.py b/var/spack/repos/builtin/packages/r-yaimpute/package.py
index 6d15be6ff6..9da2563e84 100644
--- a/var/spack/repos/builtin/packages/r-yaimpute/package.py
+++ b/var/spack/repos/builtin/packages/r-yaimpute/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-yaml/package.py b/var/spack/repos/builtin/packages/r-yaml/package.py
index 60b5fab154..1f08863ff1 100644
--- a/var/spack/repos/builtin/packages/r-yaml/package.py
+++ b/var/spack/repos/builtin/packages/r-yaml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,13 +7,16 @@ from spack import *
class RYaml(RPackage):
- """This package implements the libyaml YAML 1.1 parser and emitter
- (http://pyyaml.org/wiki/LibYAML) for R."""
+ """Methods to Convert R Data to YAML and Back
+
+ Implements the 'libyaml' 'YAML' 1.1 parser and emitter
+ (<https://pyyaml.org/wiki/LibYAML>) for R."""
homepage = "https://cloud.r-project.org/package=yaml"
url = "https://cloud.r-project.org/src/contrib/yaml_2.1.13.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/yaml"
+ version('2.2.1', sha256='1115b7bc2a397fa724956eec916df5160c600c99a3be186d21558dd38d782783')
version('2.2.0', sha256='55bcac87eca360ab5904914fcff473a6981a1f5e6d2215d2634344d0ac30c546')
version('2.1.19', sha256='e5db035693ac765e4b5fe1fc2e9711f8ca73e398e3f2bf27cc60def59ccd7f11')
version('2.1.14', sha256='41a559846f6d44cc2dbcb3fc0becbc50d2766d3dc2aad7cfb97c1f9759ec0875')
diff --git a/var/spack/repos/builtin/packages/r-yapsa/package.py b/var/spack/repos/builtin/packages/r-yapsa/package.py
index a6facc807d..0f646664a4 100644
--- a/var/spack/repos/builtin/packages/r-yapsa/package.py
+++ b/var/spack/repos/builtin/packages/r-yapsa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RYapsa(RPackage):
- """Yet Another Package for Signature Analysis.
+ """Yet Another Package for Signature Analysis
This package provides functions and routines useful in the analysis of
somatic signatures (cf. L. Alexandrov et al., Nature 2013). In
@@ -19,6 +19,7 @@ class RYapsa(RPackage):
homepage = "https://bioconductor.org/packages/YAPSA"
git = "https://git.bioconductor.org/packages/YAPSA.git"
+ version('1.16.0', commit='f344cdb81bb886c633f9325f811912fb59d58eb1')
version('1.10.0', commit='06af18e424868eb0f0be6c80e90cbab1eabf3d73')
version('1.8.0', commit='402f3f7774fdf8afc7883579ad651c26df0f8fdb')
version('1.6.0', commit='2455d272b076835ddb36ad21c01ef15af66abc36')
@@ -26,9 +27,10 @@ class RYapsa(RPackage):
version('1.2.0', commit='320809b69e470e30a777a383f8341f93064ec24d')
depends_on('r@3.3.0:', type=('build', 'run'))
+ depends_on('r@3.6.0:', when='@1.16.0:', type=('build', 'run'))
depends_on('r-genomicranges', type=('build', 'run'))
depends_on('r-ggplot2', type=('build', 'run'))
- depends_on('r-lsei', type=('build', 'run'))
+ depends_on('r-limsolve', when='@1.16.0:', type=('build', 'run'))
depends_on('r-somaticsignatures', type=('build', 'run'))
depends_on('r-variantannotation', type=('build', 'run'))
depends_on('r-genomeinfodb', type=('build', 'run'))
@@ -39,6 +41,14 @@ class RYapsa(RPackage):
depends_on('r-getoptlong', type=('build', 'run'))
depends_on('r-circlize', type=('build', 'run'))
depends_on('r-gtrellis', type=('build', 'run'))
+ depends_on('r-doparallel', when='@1.16.0:', type=('build', 'run'))
depends_on('r-pmcmr', type=('build', 'run'))
+ depends_on('r-ggbeeswarm', when='@1.16.0:', type=('build', 'run'))
depends_on('r-complexheatmap', type=('build', 'run'))
depends_on('r-keggrest', type=('build', 'run'))
+ depends_on('r-biostrings', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-bsgenome-hsapiens-ucsc-hg19', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-magrittr', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-pracma', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-dplyr', when='@1.16.0:', type=('build', 'run'))
+ depends_on('r-lsei', when='@:1.10.0', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-yaqcaffy/package.py b/var/spack/repos/builtin/packages/r-yaqcaffy/package.py
index eb5ac5f82c..05f100f306 100644
--- a/var/spack/repos/builtin/packages/r-yaqcaffy/package.py
+++ b/var/spack/repos/builtin/packages/r-yaqcaffy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RYaqcaffy(RPackage):
- """Affymetrix expression data quality control and reproducibility analysis.
+ """Affymetrix expression data quality control and reproducibility analysis
Quality control of Affymetrix GeneChip expression data and
reproducibility analysis of human whole genome chips with the MAQC
@@ -16,6 +16,7 @@ class RYaqcaffy(RPackage):
homepage = "https://bioconductor.org/packages/yaqcaffy"
git = "https://git.bioconductor.org/packages/yaqcaffy.git"
+ version('1.50.0', commit='b32e6b947ca9c4ab7163cfddc084a1bc0a34780e')
version('1.44.0', commit='00898f3ec9ac0beadbcf57bda3d3c1c99fb0c3c0')
version('1.42.0', commit='a4af673774165e087499ecc35f96aab6bbfbeea1')
version('1.40.0', commit='0c78f8ff8f675305f6fa4b052d2482e9aee551bb')
diff --git a/var/spack/repos/builtin/packages/r-yarn/package.py b/var/spack/repos/builtin/packages/r-yarn/package.py
index 8cec9b3612..7329f7caeb 100644
--- a/var/spack/repos/builtin/packages/r-yarn/package.py
+++ b/var/spack/repos/builtin/packages/r-yarn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RYarn(RPackage):
- """YARN: Robust Multi-Condition RNA-Seq Preprocessing and Normalization.
+ """YARN: Robust Multi-Condition RNA-Seq Preprocessing and Normalization
Expedite large RNA-Seq analyses using a combination of previously
developed tools. YARN is meant to make it easier for the user in
@@ -19,6 +19,7 @@ class RYarn(RPackage):
homepage = "https://bioconductor.org/packages/yarn"
git = "https://git.bioconductor.org/packages/yarn.git"
+ version('1.16.0', commit='ff5a18cb946ffec3cb773fe32af401c8a72d674a')
version('1.10.0', commit='36ffe84148eb871e93bc8f9e697475319b5ea472')
version('1.8.1', commit='ee0723d4dbf082b4469ca9c22cce4f1a2ac81c04')
version('1.6.0', commit='19d1b2ef275f294bd318b86e0d237c271880117d')
diff --git a/var/spack/repos/builtin/packages/r-zcompositions/package.py b/var/spack/repos/builtin/packages/r-zcompositions/package.py
new file mode 100644
index 0000000000..1fb90f2fc0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-zcompositions/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RZcompositions(RPackage):
+ """Treatment of Zeros, Left-Censored and Missing Values in Compositional
+ Data Sets
+
+ Principled methods for the imputation of zeros, left-censored and missing
+ data in compositional data sets (Palarea-Albaladejo and Martin-Fernandez
+ (2015) <doi:10.1016/j.chemolab.2015.02.019>)."""
+
+ homepage = "https://cloud.r-project.org/package=zCompositions"
+ url = "https://cloud.r-project.org/src/contrib/zCompositions_1.3.4.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/zCompositions"
+
+ version('1.3.4', sha256='ae22c86fe92368a26265933f42eecc518b9b69e7d9b698bc31bfaabfc3c48e95')
+
+ depends_on('r@2.14.0:', type=('build', 'run'))
+ depends_on('r-mass', type=('build', 'run'))
+ depends_on('r-nada', type=('build', 'run'))
+ depends_on('r-truncnorm', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-zeallot/package.py b/var/spack/repos/builtin/packages/r-zeallot/package.py
index 67c0a8b27c..b86f7618b6 100644
--- a/var/spack/repos/builtin/packages/r-zeallot/package.py
+++ b/var/spack/repos/builtin/packages/r-zeallot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/r-zip/package.py b/var/spack/repos/builtin/packages/r-zip/package.py
index dc5a2341c9..ed56a8009c 100644
--- a/var/spack/repos/builtin/packages/r-zip/package.py
+++ b/var/spack/repos/builtin/packages/r-zip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,9 @@ from spack import *
class RZip(RPackage):
- """Cross-Platform 'zip' Compression Library. A replacement for the 'zip'
+ """Cross-Platform 'zip' Compression
+
+ Cross-Platform 'zip' Compression Library. A replacement for the 'zip'
function, that does not require any additional external tools on any
platform."""
@@ -15,4 +17,5 @@ class RZip(RPackage):
url = "https://cloud.r-project.org/src/contrib/zip_2.0.3.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/zip"
+ version('2.1.1', sha256='11dd417932296d3a25c53aa8d3b908973c4945a496cc473dd321825dfaaa7c2c')
version('2.0.3', sha256='4a8cb8e41eb630bbf448a0fd56bcaeb752b8484fef98c6419334edf46401317e')
diff --git a/var/spack/repos/builtin/packages/r-zlibbioc/package.py b/var/spack/repos/builtin/packages/r-zlibbioc/package.py
index 2e4f8175ea..ced5ec2f16 100644
--- a/var/spack/repos/builtin/packages/r-zlibbioc/package.py
+++ b/var/spack/repos/builtin/packages/r-zlibbioc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,7 +7,7 @@ from spack import *
class RZlibbioc(RPackage):
- """An R packaged zlib-1.2.5.
+ """An R packaged zlib-1.2.5
This package uses the source code of zlib-1.2.5 to create libraries for
systems that do not have these available via other means (most Linux and
@@ -17,6 +17,7 @@ class RZlibbioc(RPackage):
homepage = "https://bioconductor.org/packages/zlibbioc"
git = "https://git.bioconductor.org/packages/zlibbioc.git"
+ version('1.36.0', commit='62e888cd7fb482d512c6c31961b657e0b924e357')
version('1.30.0', commit='99eae5b05968bf6abc9b54b9031afd93517381e0')
version('1.28.0', commit='b825b042742ba45455fc284b988ff4cd2a33222c')
version('1.26.0', commit='2e3ab097caa09a5e3ddaa3469b13e19a7224da0d')
diff --git a/var/spack/repos/builtin/packages/r-zoo/package.py b/var/spack/repos/builtin/packages/r-zoo/package.py
index 6c12d29e21..d8847610c3 100644
--- a/var/spack/repos/builtin/packages/r-zoo/package.py
+++ b/var/spack/repos/builtin/packages/r-zoo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,21 +7,24 @@ from spack import *
class RZoo(RPackage):
- """An S3 class with methods for totally ordered indexed observations. It is
+ """S3 Infrastructure for Regular and Irregular Time Series (Z's Ordered Observations)
+
+ An S3 class with methods for totally ordered indexed observations. It is
particularly aimed at irregular time series of numeric vectors/matrices and
factors. zoo's key design goals are independence of a particular
index/date/time class and consistency with ts and base R by providing
methods to extend standard generics."""
- homepage = "http://zoo.r-forge.r-project.org/"
+ homepage = "https://zoo.r-forge.r-project.org/"
url = "https://cloud.r-project.org/src/contrib/zoo_1.7-14.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/zoo"
+ version('1.8-8', sha256='4e8cc4065047ba12e103b9664f3b607c770673096e9c2b694fad2b2ec3203ce7')
version('1.8-6', sha256='2217a4f362f2201443b5fdbfd9a77d9a6caeecb05f02d703ee8b3b9bf2af37cc')
version('1.8-5', sha256='8773969973d28d7d1a48f74b73be1dbd97acb3b22a4668a102e8bb585a7de826')
version('1.7-14', sha256='4858675fed056a4329c4998517cc944db386447483390bd342de719e0509f598')
version('1.7-13', sha256='0ca5264d6077c785963705e462aec3e57e0d0651379f9bf4ee32e4f3b25dc754')
- depends_on('r@2.10.0:', when='@:1.8-1', type=('build', 'run'))
+ depends_on('r@2.10.0:', type=('build', 'run'))
depends_on('r@3.1.0:', when='@1.8-2:', type=('build', 'run'))
depends_on('r-lattice@0.20-27:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py
index 6514f14d9d..b0f1dc11e9 100644
--- a/var/spack/repos/builtin/packages/r/package.py
+++ b/var/spack/repos/builtin/packages/r/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,6 +21,11 @@ class R(AutotoolsPackage):
extendable = True
+ maintainers = ['glennpj']
+
+ version('4.1.0', sha256='e8e68959d7282ca147360fc9644ada9bd161bab781bab14d33b8999a95182781')
+ version('4.0.5', sha256='0a3ee079aa772e131fe5435311ab627fcbccb5a50cabc54292e6f62046f1ffef')
+ version('4.0.4', sha256='523f27d69744a08c8f0bd5e1e6c3d89a4db29ed983388ba70963a3cd3a4a802e')
version('4.0.3', sha256='09983a8a78d5fb6bc45d27b1c55f9ba5265f78fa54a55c13ae691f87c5bb9e0d')
version('4.0.2', sha256='d3bceab364da0876625e4097808b42512395fdf41292f4915ab1fd257c1bbe75')
version('4.0.1', sha256='95fe24a4d8d8f8f888460c8f5fe4311cec656e7a1722d233218bc03861bc6f32')
@@ -53,41 +58,34 @@ class R(AutotoolsPackage):
variant('external-lapack', default=False,
description='Links to externally installed BLAS/LAPACK')
variant('X', default=False,
- description='Enable X11 support (call configure --with-x)')
+ description='Enable X11 support (TCLTK, PNG, JPEG, TIFF, CAIRO)')
variant('memory_profiling', default=False,
description='Enable memory profiling')
variant('rmath', default=False,
description='Build standalone Rmath library')
- # Virtual dependencies
depends_on('blas', when='+external-lapack')
depends_on('lapack', when='+external-lapack')
-
- # Concrete dependencies.
- depends_on('readline')
- depends_on('ncurses')
+ depends_on('bzip2')
+ depends_on('curl')
depends_on('icu4c')
- depends_on('glib')
+ depends_on('java')
+ depends_on('ncurses')
+ depends_on('pcre', when='@:3.6.3')
+ depends_on('pcre2', when='@4:')
+ depends_on('readline')
+ depends_on('xz')
depends_on('zlib@1.2.5:')
- depends_on('bzip2')
- depends_on('libtiff')
- depends_on('jpeg')
- depends_on('cairo+pdf')
- depends_on('cairo+X', when='+X')
- depends_on('cairo~X', when='~X')
- depends_on('pango')
+ depends_on('cairo+X+gobject+pdf', when='+X')
depends_on('pango+X', when='+X')
- depends_on('pango~X', when='~X')
- depends_on('freetype')
- depends_on('tcl')
- depends_on('tk', when='+X')
+ depends_on('harfbuzz+graphite2', when='+X')
+ depends_on('jpeg', when='+X')
+ depends_on('libpng', when='+X')
+ depends_on('libtiff', when='+X')
depends_on('libx11', when='+X')
- depends_on('libxt', when='+X')
depends_on('libxmu', when='+X')
- depends_on('curl')
- depends_on('pcre2', when='@4:')
- depends_on('pcre', when='@:3.6.3')
- depends_on('java')
+ depends_on('libxt', when='+X')
+ depends_on('tk', when='+X')
patch('zlib.patch', when='@:3.3.2')
@@ -111,39 +109,26 @@ class R(AutotoolsPackage):
def etcdir(self):
return join_path(prefix, 'rlib', 'R', 'etc')
- @run_after('build')
- def build_rmath(self):
- if '+rmath' in self.spec:
- with working_dir('src/nmath/standalone'):
- make()
-
@run_after('install')
def install_rmath(self):
if '+rmath' in self.spec:
with working_dir('src/nmath/standalone'):
- make('install')
+ make()
+ make('install', parallel=False)
def configure_args(self):
spec = self.spec
prefix = self.prefix
- tcl_config_path = join_path(
- spec['tcl'].libs.directories[0], 'tclConfig.sh')
-
config_args = [
'--libdir={0}'.format(join_path(prefix, 'rlib')),
'--enable-R-shlib',
'--enable-BLAS-shlib',
'--enable-R-framework=no',
'--without-recommended-packages',
- '--with-tcl-config={0}'.format(tcl_config_path),
'LDFLAGS=-L{0} -Wl,-rpath,{0}'.format(join_path(prefix, 'rlib',
'R', 'lib')),
]
- if '^tk' in spec:
- tk_config_path = join_path(
- spec['tk'].libs.directories[0], 'tkConfig.sh')
- config_args.append('--with-tk-config={0}'.format(tk_config_path))
if '+external-lapack' in spec:
if '^mkl' in spec and 'gfortran' in self.compiler.fc:
@@ -161,8 +146,26 @@ class R(AutotoolsPackage):
])
if '+X' in spec:
+ config_args.append('--with-cairo')
+ config_args.append('--with-jpeglib')
+ config_args.append('--with-libpng')
+ config_args.append('--with-libtiff')
+ config_args.append('--with-tcltk')
config_args.append('--with-x')
+
+ tcl_config_path = join_path(
+ spec['tcl'].libs.directories[0], 'tclConfig.sh')
+ config_args.append('--with-tcl-config={0}'.format(tcl_config_path))
+
+ tk_config_path = join_path(
+ spec['tk'].libs.directories[0], 'tkConfig.sh')
+ config_args.append('--with-tk-config={0}'.format(tk_config_path))
else:
+ config_args.append('--without-cairo')
+ config_args.append('--without-jpeglib')
+ config_args.append('--without-libpng')
+ config_args.append('--without-libtiff')
+ config_args.append('--without-tcltk')
config_args.append('--without-x')
if '+memory_profiling' in spec:
@@ -217,12 +220,14 @@ class R(AutotoolsPackage):
dependent_spec.prefix, self.r_lib_dir))
def setup_run_environment(self, env):
- env.prepend_path('LIBRARY_PATH',
- join_path(self.prefix, 'rlib', 'R', 'lib'))
env.prepend_path('LD_LIBRARY_PATH',
join_path(self.prefix, 'rlib', 'R', 'lib'))
- env.prepend_path('CPATH',
- join_path(self.prefix, 'rlib', 'R', 'include'))
+ env.prepend_path('PKG_CONFIG_PATH',
+ join_path(self.prefix, 'rlib', 'pkgconfig'))
+
+ if '+rmath' in self.spec:
+ env.prepend_path('LD_LIBRARY_PATH',
+ join_path(self.prefix, 'rlib'))
def setup_dependent_package(self, module, dependent_spec):
"""Called before R modules' install() methods. In most cases,
diff --git a/var/spack/repos/builtin/packages/r3d/package.py b/var/spack/repos/builtin/packages/r3d/package.py
index 228a0dbaa6..3530e90b2b 100644
--- a/var/spack/repos/builtin/packages/r3d/package.py
+++ b/var/spack/repos/builtin/packages/r3d/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,31 +6,43 @@
from spack import *
-class R3d(MakefilePackage):
+class R3d(CMakePackage):
"""Fast, robust polyhedral intersections, analytic integration, and
conservative voxelization."""
homepage = "https://github.com/devonmpowell/r3d"
git = "https://github.com/devonmpowell/r3d.git"
- version('2019-04-24', commit='86cea79c124c6a8edd8c8cdea61e3e923acb0b22')
- version('2018-12-19', commit='47308f68c782ed3227d3dab1eff24d41f6421f21')
- version('2018-01-07', commit='d6799a582256a120ef3bd7e18959e96cba0e5495')
+ maintainers = ['raovgarimella', 'gaber']
- variant("test", default=False, description="Build R3D regression tests")
+ version('master', branch='master')
+ version('2021-03-16', commit='5978a3f9cc145a52eecbf89c44d7fd2166b4c778')
+ version('2019-04-24', commit='86cea79c124c6a8edd8c8cdea61e3e923acb0b22', deprecated=True)
+ version('2018-12-19', commit='47308f68c782ed3227d3dab1eff24d41f6421f21', deprecated=True)
+ version('2018-01-07', commit='d6799a582256a120ef3bd7e18959e96cba0e5495', deprecated=True)
+ variant("r3d_max_verts", default='0', description="Maximum number of vertices allowed in a polyhedron (versions 2021-03-10 or later)")
+
+ # Bypass CMake for older builds
+ variant("test", default=False, description="Build R3D regression tests (versions 2019-04-24 or earlier)")
+
+ @when('@:2019-04-24')
+ def cmake(self, spec, prefix):
+ pass
+
+ @when('@:2019-04-24')
def build(self, spec, prefix):
make_args = [
'CC={0}'.format(spack_cc),
]
-
make('libr3d.a', *make_args)
if '+test' in spec:
with working_dir('tests'):
make('all', *make_args)
+ @when('@:2019-04-24')
def install(self, spec, prefix):
# R3D does not have an install target so create our own here.
@@ -49,3 +61,18 @@ class R3d(MakefilePackage):
install('r2d_unit_tests', prefix.test)
install('r3d_unit_tests', prefix.test)
install('rNd_unit_tests', prefix.test)
+
+ # CMake support was added in 2021-03-10
+ @when('@2021-03-10:')
+ def cmake_args(self):
+ options = []
+ r3d_max_verts = self.spec.variants['r3d_max_verts'].value
+ if (r3d_max_verts != '0'):
+ options.append('-DR3D_MAX_VERTS=' + r3d_max_verts)
+
+ if self.run_tests:
+ options.append('-DENABLE_UNIT_TESTS=ON')
+ else:
+ options.append('-DENABLE_UNIT_TESTS=OFF')
+
+ return options
diff --git a/var/spack/repos/builtin/packages/rabbitmq/package.py b/var/spack/repos/builtin/packages/rabbitmq/package.py
index e496af820c..5912df19de 100644
--- a/var/spack/repos/builtin/packages/rabbitmq/package.py
+++ b/var/spack/repos/builtin/packages/rabbitmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Rabbitmq(Package):
high-availability requirements.
"""
- homepage = "http://www.rabbitmq.com/"
+ homepage = "https://www.rabbitmq.com/"
url = "http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz"
version('3.6.15', sha256='04e6a291642f80e87fc892d5e8ea309fb3fab85ebb64a79a70dfe6c6cfde36fb')
diff --git a/var/spack/repos/builtin/packages/racon/aarch64.patch b/var/spack/repos/builtin/packages/racon/aarch64.patch
index 332be1179d..57c01876b3 100644
--- a/var/spack/repos/builtin/packages/racon/aarch64.patch
+++ b/var/spack/repos/builtin/packages/racon/aarch64.patch
@@ -1,2792 +1,3 @@
-diff --git a/vendor/spoa/include/arch/aarch64/sse2neon.h b/vendor/spoa/include/arch/aarch64/sse2neon.h
-new file mode 100644
-index 0000000..1477ae1
---- /dev/null
-+++ b/vendor/spoa/include/arch/aarch64/sse2neon.h
-@@ -0,0 +1,2783 @@
-+#ifndef SSE2NEON_H
-+#define SSE2NEON_H
-+
-+// This header file provides a simple API translation layer
-+// between SSE intrinsics to their corresponding Arm/Aarch64 NEON versions
-+//
-+// This header file does not yet translate all of the SSE intrinsics.
-+//
-+// Contributors to this work are:
-+// John W. Ratcliff <jratcliffscarab@gmail.com>
-+// Brandon Rowlett <browlett@nvidia.com>
-+// Ken Fast <kfast@gdeb.com>
-+// Eric van Beurden <evanbeurden@nvidia.com>
-+// Alexander Potylitsin <apotylitsin@nvidia.com>
-+// Hasindu Gamaarachchi <hasindu2008@gmail.com>
-+// Jim Huang <jserv@biilabs.io>
-+// Mark Cheng <marktwtn@biilabs.io>
-+// Malcolm James MacLeod <malcolm@gulden.com>
-+
-+/*
-+ * The MIT license:
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a copy
-+ * of this software and associated documentation files (the "Software"), to deal
-+ * in the Software without restriction, including without limitation the rights
-+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-+ * copies of the Software, and to permit persons to whom the Software is
-+ * furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be included in
-+ * all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-+ * SOFTWARE.
-+ */
-+
-+#if defined(__GNUC__) || defined(__clang__)
-+
-+#pragma push_macro("FORCE_INLINE")
-+#pragma push_macro("ALIGN_STRUCT")
-+#define FORCE_INLINE static inline __attribute__((always_inline))
-+#define ALIGN_STRUCT(x) __attribute__((aligned(x)))
-+
-+#else
-+
-+#error "Macro name collisions may happens with unknown compiler"
-+#ifdef FORCE_INLINE
-+#undef FORCE_INLINE
-+#endif
-+#define FORCE_INLINE static inline
-+#ifndef ALIGN_STRUCT
-+#define ALIGN_STRUCT(x) __declspec(align(x))
-+#endif
-+
-+#endif
-+
-+#include <stdint.h>
-+
-+#include "arm_neon.h"
-+
-+/**
-+ * MACRO for shuffle parameter for _mm_shuffle_ps().
-+ * Argument fp3 is a digit[0123] that represents the fp from argument "b"
-+ * of mm_shuffle_ps that will be placed in fp3 of result. fp2 is the same
-+ * for fp2 in result. fp1 is a digit[0123] that represents the fp from
-+ * argument "a" of mm_shuffle_ps that will be places in fp1 of result.
-+ * fp0 is the same for fp0 of result.
-+ */
-+#define _MM_SHUFFLE(fp3, fp2, fp1, fp0) \
-+ (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0)))
-+
-+/* indicate immediate constant argument in a given range */
-+#define __constrange(a, b) const
-+
-+typedef float32x2_t __m64;
-+typedef float32x4_t __m128;
-+typedef int32x4_t __m128i;
-+
-+// ******************************************
-+// type-safe casting between types
-+// ******************************************
-+
-+#define vreinterpretq_m128_f16(x) vreinterpretq_f32_f16(x)
-+#define vreinterpretq_m128_f32(x) (x)
-+#define vreinterpretq_m128_f64(x) vreinterpretq_f32_f64(x)
-+
-+#define vreinterpretq_m128_u8(x) vreinterpretq_f32_u8(x)
-+#define vreinterpretq_m128_u16(x) vreinterpretq_f32_u16(x)
-+#define vreinterpretq_m128_u32(x) vreinterpretq_f32_u32(x)
-+#define vreinterpretq_m128_u64(x) vreinterpretq_f32_u64(x)
-+
-+#define vreinterpretq_m128_s8(x) vreinterpretq_f32_s8(x)
-+#define vreinterpretq_m128_s16(x) vreinterpretq_f32_s16(x)
-+#define vreinterpretq_m128_s32(x) vreinterpretq_f32_s32(x)
-+#define vreinterpretq_m128_s64(x) vreinterpretq_f32_s64(x)
-+
-+#define vreinterpretq_f16_m128(x) vreinterpretq_f16_f32(x)
-+#define vreinterpretq_f32_m128(x) (x)
-+#define vreinterpretq_f64_m128(x) vreinterpretq_f64_f32(x)
-+
-+#define vreinterpretq_u8_m128(x) vreinterpretq_u8_f32(x)
-+#define vreinterpretq_u16_m128(x) vreinterpretq_u16_f32(x)
-+#define vreinterpretq_u32_m128(x) vreinterpretq_u32_f32(x)
-+#define vreinterpretq_u64_m128(x) vreinterpretq_u64_f32(x)
-+
-+#define vreinterpretq_s8_m128(x) vreinterpretq_s8_f32(x)
-+#define vreinterpretq_s16_m128(x) vreinterpretq_s16_f32(x)
-+#define vreinterpretq_s32_m128(x) vreinterpretq_s32_f32(x)
-+#define vreinterpretq_s64_m128(x) vreinterpretq_s64_f32(x)
-+
-+#define vreinterpretq_m128i_s8(x) vreinterpretq_s32_s8(x)
-+#define vreinterpretq_m128i_s16(x) vreinterpretq_s32_s16(x)
-+#define vreinterpretq_m128i_s32(x) (x)
-+#define vreinterpretq_m128i_s64(x) vreinterpretq_s32_s64(x)
-+
-+#define vreinterpretq_m128i_u8(x) vreinterpretq_s32_u8(x)
-+#define vreinterpretq_m128i_u16(x) vreinterpretq_s32_u16(x)
-+#define vreinterpretq_m128i_u32(x) vreinterpretq_s32_u32(x)
-+#define vreinterpretq_m128i_u64(x) vreinterpretq_s32_u64(x)
-+
-+#define vreinterpretq_s8_m128i(x) vreinterpretq_s8_s32(x)
-+#define vreinterpretq_s16_m128i(x) vreinterpretq_s16_s32(x)
-+#define vreinterpretq_s32_m128i(x) (x)
-+#define vreinterpretq_s64_m128i(x) vreinterpretq_s64_s32(x)
-+
-+#define vreinterpretq_u8_m128i(x) vreinterpretq_u8_s32(x)
-+#define vreinterpretq_u16_m128i(x) vreinterpretq_u16_s32(x)
-+#define vreinterpretq_u32_m128i(x) vreinterpretq_u32_s32(x)
-+#define vreinterpretq_u64_m128i(x) vreinterpretq_u64_s32(x)
-+
-+// A struct is defined in this header file called 'SIMDVec' which can be used
-+// by applications which attempt to access the contents of an _m128 struct
-+// directly. It is important to note that accessing the __m128 struct directly
-+// is bad coding practice by Microsoft: @see:
-+// https://msdn.microsoft.com/en-us/library/ayeb3ayc.aspx
-+//
-+// However, some legacy source code may try to access the contents of an __m128
-+// struct directly so the developer can use the SIMDVec as an alias for it. Any
-+// casting must be done manually by the developer, as you cannot cast or
-+// otherwise alias the base NEON data type for intrinsic operations.
-+//
-+// union intended to allow direct access to an __m128 variable using the names
-+// that the MSVC compiler provides. This union should really only be used when
-+// trying to access the members of the vector as integer values. GCC/clang
-+// allow native access to the float members through a simple array access
-+// operator (in C since 4.6, in C++ since 4.8).
-+//
-+// Ideally direct accesses to SIMD vectors should not be used since it can cause
-+// a performance hit. If it really is needed however, the original __m128
-+// variable can be aliased with a pointer to this union and used to access
-+// individual components. The use of this union should be hidden behind a macro
-+// that is used throughout the codebase to access the members instead of always
-+// declaring this type of variable.
-+typedef union ALIGN_STRUCT(16) SIMDVec {
-+ float
-+ m128_f32[4]; // as floats - do not to use this. Added for convenience.
-+ int8_t m128_i8[16]; // as signed 8-bit integers.
-+ int16_t m128_i16[8]; // as signed 16-bit integers.
-+ int32_t m128_i32[4]; // as signed 32-bit integers.
-+ int64_t m128_i64[2]; // as signed 64-bit integers.
-+ uint8_t m128_u8[16]; // as unsigned 8-bit integers.
-+ uint16_t m128_u16[8]; // as unsigned 16-bit integers.
-+ uint32_t m128_u32[4]; // as unsigned 32-bit integers.
-+ uint64_t m128_u64[2]; // as unsigned 64-bit integers.
-+} SIMDVec;
-+
-+// casting using SIMDVec
-+#define vreinterpretq_nth_u64_m128i(x, n) (((SIMDVec *) &x)->m128_u64[n])
-+#define vreinterpretq_nth_u32_m128i(x, n) (((SIMDVec *) &x)->m128_u32[n])
-+
-+
-+// ******************************************
-+// Backwards compatibility for compilers with lack of specific type support
-+// ******************************************
-+
-+// Older gcc does not define vld1q_u8_x4 type
-+#if defined(__GNUC__) && !defined(__clang__)
-+#if __GNUC__ < 9 || (__GNUC__ == 9 && (__GNUC_MINOR__ <= 2))
-+FORCE_INLINE uint8x16x4_t vld1q_u8_x4(const uint8_t *p)
-+{
-+ uint8x16x4_t ret;
-+ ret.val[0] = vld1q_u8(p + 0);
-+ ret.val[1] = vld1q_u8(p + 16);
-+ ret.val[2] = vld1q_u8(p + 32);
-+ ret.val[3] = vld1q_u8(p + 48);
-+ return ret;
-+}
-+#endif
-+#endif
-+
-+
-+// ******************************************
-+// Set/get methods
-+// ******************************************
-+
-+// Loads one cache line of data from address p to a location closer to the
-+// processor. https://msdn.microsoft.com/en-us/library/84szxsww(v=vs.100).aspx
-+FORCE_INLINE void _mm_prefetch(const void *p, int i)
-+{
-+ __builtin_prefetch(p);
-+}
-+
-+// extracts the lower order floating point value from the parameter :
-+// https://msdn.microsoft.com/en-us/library/bb514059%28v=vs.120%29.aspx?f=255&MSPPError=-2147217396
-+FORCE_INLINE float _mm_cvtss_f32(__m128 a)
-+{
-+ return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0);
-+}
-+
-+// Sets the 128-bit value to zero
-+// https://msdn.microsoft.com/en-us/library/vstudio/ys7dw0kh(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_setzero_si128(void)
-+{
-+ return vreinterpretq_m128i_s32(vdupq_n_s32(0));
-+}
-+
-+// Clears the four single-precision, floating-point values.
-+// https://msdn.microsoft.com/en-us/library/vstudio/tk1t2tbz(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_setzero_ps(void)
-+{
-+ return vreinterpretq_m128_f32(vdupq_n_f32(0));
-+}
-+
-+// Sets the four single-precision, floating-point values to w.
-+//
-+// r0 := r1 := r2 := r3 := w
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/2x1se8ha(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_set1_ps(float _w)
-+{
-+ return vreinterpretq_m128_f32(vdupq_n_f32(_w));
-+}
-+
-+// Sets the four single-precision, floating-point values to w.
-+// https://msdn.microsoft.com/en-us/library/vstudio/2x1se8ha(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_set_ps1(float _w)
-+{
-+ return vreinterpretq_m128_f32(vdupq_n_f32(_w));
-+}
-+
-+// Sets the four single-precision, floating-point values to the four inputs.
-+// https://msdn.microsoft.com/en-us/library/vstudio/afh0zf75(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x)
-+{
-+ float __attribute__((aligned(16))) data[4] = {x, y, z, w};
-+ return vreinterpretq_m128_f32(vld1q_f32(data));
-+}
-+
-+// Sets the four single-precision, floating-point values to the four inputs in
-+// reverse order.
-+// https://msdn.microsoft.com/en-us/library/vstudio/d2172ct3(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_setr_ps(float w, float z, float y, float x)
-+{
-+ float __attribute__((aligned(16))) data[4] = {w, z, y, x};
-+ return vreinterpretq_m128_f32(vld1q_f32(data));
-+}
-+
-+// Sets the 8 signed 16-bit integer values in reverse order.
-+//
-+// Return Value
-+// r0 := w0
-+// r1 := w1
-+// ...
-+// r7 := w7
-+FORCE_INLINE __m128i _mm_setr_epi16(short w0,
-+ short w1,
-+ short w2,
-+ short w3,
-+ short w4,
-+ short w5,
-+ short w6,
-+ short w7)
-+{
-+ int16_t __attribute__((aligned(16)))
-+ data[8] = {w0, w1, w2, w3, w4, w5, w6, w7};
-+ return vreinterpretq_m128i_s16(vld1q_s16((int16_t *) data));
-+}
-+
-+// Sets the 4 signed 32-bit integer values in reverse order
-+// https://technet.microsoft.com/en-us/library/security/27yb3ee5(v=vs.90).aspx
-+FORCE_INLINE __m128i _mm_setr_epi32(int i3, int i2, int i1, int i0)
-+{
-+ int32_t __attribute__((aligned(16))) data[4] = {i3, i2, i1, i0};
-+ return vreinterpretq_m128i_s32(vld1q_s32(data));
-+}
-+
-+// Sets the 16 signed 8-bit integer values to b.
-+//
-+// r0 := b
-+// r1 := b
-+// ...
-+// r15 := b
-+//
-+// https://msdn.microsoft.com/en-us/library/6e14xhyf(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_set1_epi8(char w)
-+{
-+ return vreinterpretq_m128i_s8(vdupq_n_s8(w));
-+}
-+
-+// Sets the 8 signed 16-bit integer values to w.
-+//
-+// r0 := w
-+// r1 := w
-+// ...
-+// r7 := w
-+//
-+// https://msdn.microsoft.com/en-us/library/k0ya3x0e(v=vs.90).aspx
-+FORCE_INLINE __m128i _mm_set1_epi16(short w)
-+{
-+ return vreinterpretq_m128i_s16(vdupq_n_s16(w));
-+}
-+
-+// Sets the 16 signed 8-bit integer values.
-+// https://msdn.microsoft.com/en-us/library/x0cx8zd3(v=vs.90).aspx
-+FORCE_INLINE __m128i _mm_set_epi8(char b15,
-+ char b14,
-+ char b13,
-+ char b12,
-+ char b11,
-+ char b10,
-+ char b9,
-+ char b8,
-+ char b7,
-+ char b6,
-+ char b5,
-+ char b4,
-+ char b3,
-+ char b2,
-+ char b1,
-+ char b0)
-+{
-+ int8_t __attribute__((aligned(16)))
-+ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3,
-+ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7,
-+ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11,
-+ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15};
-+ return (__m128i) vld1q_s8(data);
-+}
-+
-+// Sets the 8 signed 16-bit integer values.
-+// https://msdn.microsoft.com/en-au/library/3e0fek84(v=vs.90).aspx
-+FORCE_INLINE __m128i _mm_set_epi16(short i7,
-+ short i6,
-+ short i5,
-+ short i4,
-+ short i3,
-+ short i2,
-+ short i1,
-+ short i0)
-+{
-+ int16_t __attribute__((aligned(16)))
-+ data[8] = {i0, i1, i2, i3, i4, i5, i6, i7};
-+ return vreinterpretq_m128i_s16(vld1q_s16(data));
-+}
-+
-+// Sets the 16 signed 8-bit integer values in reverse order.
-+// https://msdn.microsoft.com/en-us/library/2khb9c7k(v=vs.90).aspx
-+FORCE_INLINE __m128i _mm_setr_epi8(char b0,
-+ char b1,
-+ char b2,
-+ char b3,
-+ char b4,
-+ char b5,
-+ char b6,
-+ char b7,
-+ char b8,
-+ char b9,
-+ char b10,
-+ char b11,
-+ char b12,
-+ char b13,
-+ char b14,
-+ char b15)
-+{
-+ int8_t __attribute__((aligned(16)))
-+ data[16] = {(int8_t) b0, (int8_t) b1, (int8_t) b2, (int8_t) b3,
-+ (int8_t) b4, (int8_t) b5, (int8_t) b6, (int8_t) b7,
-+ (int8_t) b8, (int8_t) b9, (int8_t) b10, (int8_t) b11,
-+ (int8_t) b12, (int8_t) b13, (int8_t) b14, (int8_t) b15};
-+ return (__m128i) vld1q_s8(data);
-+}
-+
-+// Sets the 4 signed 32-bit integer values to i.
-+//
-+// r0 := i
-+// r1 := i
-+// r2 := i
-+// r3 := I
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/h4xscxat(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_set1_epi32(int _i)
-+{
-+ return vreinterpretq_m128i_s32(vdupq_n_s32(_i));
-+}
-+
-+// Sets the 4 signed 64-bit integer values to i.
-+// https://msdn.microsoft.com/en-us/library/vstudio/h4xscxat(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_set1_epi64(int64_t _i)
-+{
-+ return vreinterpretq_m128i_s64(vdupq_n_s64(_i));
-+}
-+
-+// Sets the 4 signed 32-bit integer values.
-+// https://msdn.microsoft.com/en-us/library/vstudio/019beekt(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0)
-+{
-+ int32_t __attribute__((aligned(16))) data[4] = {i0, i1, i2, i3};
-+ return vreinterpretq_m128i_s32(vld1q_s32(data));
-+}
-+
-+// Returns the __m128i structure with its two 64-bit integer values
-+// initialized to the values of the two 64-bit integers passed in.
-+// https://msdn.microsoft.com/en-us/library/dk2sdw0h(v=vs.120).aspx
-+FORCE_INLINE __m128i _mm_set_epi64x(int64_t i1, int64_t i2)
-+{
-+ int64_t __attribute__((aligned(16))) data[2] = {i2, i1};
-+ return vreinterpretq_m128i_s64(vld1q_s64(data));
-+}
-+
-+// Stores four single-precision, floating-point values.
-+// https://msdn.microsoft.com/en-us/library/vstudio/s3h4ay6y(v=vs.100).aspx
-+FORCE_INLINE void _mm_store_ps(float *p, __m128 a)
-+{
-+ vst1q_f32(p, vreinterpretq_f32_m128(a));
-+}
-+
-+// Stores four single-precision, floating-point values.
-+// https://msdn.microsoft.com/en-us/library/44e30x22(v=vs.100).aspx
-+FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a)
-+{
-+ vst1q_f32(p, vreinterpretq_f32_m128(a));
-+}
-+
-+// Stores four 32-bit integer values as (as a __m128i value) at the address p.
-+// https://msdn.microsoft.com/en-us/library/vstudio/edk11s13(v=vs.100).aspx
-+FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a)
-+{
-+ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a));
-+}
-+
-+// Stores four 32-bit integer values as (as a __m128i value) at the address p.
-+// https://msdn.microsoft.com/en-us/library/vstudio/edk11s13(v=vs.100).aspx
-+FORCE_INLINE void _mm_storeu_si128(__m128i *p, __m128i a)
-+{
-+ vst1q_s32((int32_t *) p, vreinterpretq_s32_m128i(a));
-+}
-+
-+// Stores the lower single - precision, floating - point value.
-+// https://msdn.microsoft.com/en-us/library/tzz10fbx(v=vs.100).aspx
-+FORCE_INLINE void _mm_store_ss(float *p, __m128 a)
-+{
-+ vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0);
-+}
-+
-+// Reads the lower 64 bits of b and stores them into the lower 64 bits of a.
-+// https://msdn.microsoft.com/en-us/library/hhwf428f%28v=vs.90%29.aspx
-+FORCE_INLINE void _mm_storel_epi64(__m128i *a, __m128i b)
-+{
-+ uint64x1_t hi = vget_high_u64(vreinterpretq_u64_m128i(*a));
-+ uint64x1_t lo = vget_low_u64(vreinterpretq_u64_m128i(b));
-+ *a = vreinterpretq_m128i_u64(vcombine_u64(lo, hi));
-+}
-+
-+// Stores the lower two single-precision floating point values of a to the
-+// address p.
-+//
-+// *p0 := b0
-+// *p1 := b1
-+//
-+// https://msdn.microsoft.com/en-us/library/h54t98ks(v=vs.90).aspx
-+FORCE_INLINE void _mm_storel_pi(__m64 *p, __m128 a)
-+{
-+ *p = vget_low_f32(a);
-+}
-+
-+// Loads a single single-precision, floating-point value, copying it into all
-+// four words
-+// https://msdn.microsoft.com/en-us/library/vstudio/5cdkf716(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_load1_ps(const float *p)
-+{
-+ return vreinterpretq_m128_f32(vld1q_dup_f32(p));
-+}
-+#define _mm_load_ps1 _mm_load1_ps
-+
-+// Sets the lower two single-precision, floating-point values with 64
-+// bits of data loaded from the address p; the upper two values are passed
-+// through from a.
-+//
-+// Return Value
-+// r0 := *p0
-+// r1 := *p1
-+// r2 := a2
-+// r3 := a3
-+//
-+// https://msdn.microsoft.com/en-us/library/s57cyak2(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_loadl_pi(__m128 a, __m64 const *b)
-+{
-+ return vreinterpretq_m128_f32(
-+ vcombine_f32(vld1_f32((const float32_t *) b), vget_high_f32(a)));
-+}
-+
-+// Loads four single-precision, floating-point values.
-+// https://msdn.microsoft.com/en-us/library/vstudio/zzd50xxt(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_load_ps(const float *p)
-+{
-+ return vreinterpretq_m128_f32(vld1q_f32(p));
-+}
-+
-+// Loads four single-precision, floating-point values.
-+// https://msdn.microsoft.com/en-us/library/x1b16s7z%28v=vs.90%29.aspx
-+FORCE_INLINE __m128 _mm_loadu_ps(const float *p)
-+{
-+ // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are
-+ // equivalent for neon
-+ return vreinterpretq_m128_f32(vld1q_f32(p));
-+}
-+
-+// Loads an single - precision, floating - point value into the low word and
-+// clears the upper three words.
-+// https://msdn.microsoft.com/en-us/library/548bb9h4%28v=vs.90%29.aspx
-+FORCE_INLINE __m128 _mm_load_ss(const float *p)
-+{
-+ return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0));
-+}
-+
-+FORCE_INLINE __m128i _mm_loadl_epi64(__m128i const *p)
-+{
-+ /* Load the lower 64 bits of the value pointed to by p into the
-+ * lower 64 bits of the result, zeroing the upper 64 bits of the result.
-+ */
-+ return vcombine_s32(vld1_s32((int32_t const *) p), vcreate_s32(0));
-+}
-+
-+// ******************************************
-+// Logic/Binary operations
-+// ******************************************
-+
-+// Compares for inequality.
-+// https://msdn.microsoft.com/en-us/library/sf44thbx(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_u32(vmvnq_u32(
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))));
-+}
-+
-+// Computes the bitwise AND-NOT of the four single-precision, floating-point
-+// values of a and b.
-+//
-+// r0 := ~a0 & b0
-+// r1 := ~a1 & b1
-+// r2 := ~a2 & b2
-+// r3 := ~a3 & b3
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/68h7wd02(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_s32(
-+ vbicq_s32(vreinterpretq_s32_m128(b),
-+ vreinterpretq_s32_m128(a))); // *NOTE* argument swap
-+}
-+
-+// Computes the bitwise AND of the 128-bit value in b and the bitwise NOT of the
-+// 128-bit value in a.
-+//
-+// r := (~a) & b
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/1beaceh8(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s32(
-+ vbicq_s32(vreinterpretq_s32_m128i(b),
-+ vreinterpretq_s32_m128i(a))); // *NOTE* argument swap
-+}
-+
-+// Computes the bitwise AND of the 128-bit value in a and the 128-bit value in
-+// b.
-+//
-+// r := a & b
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/6d1txsa8(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s32(
-+ vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)));
-+}
-+
-+// Computes the bitwise AND of the four single-precision, floating-point values
-+// of a and b.
-+//
-+// r0 := a0 & b0
-+// r1 := a1 & b1
-+// r2 := a2 & b2
-+// r3 := a3 & b3
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/73ck1xc5(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_s32(
-+ vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b)));
-+}
-+
-+// Computes the bitwise OR of the four single-precision, floating-point values
-+// of a and b.
-+// https://msdn.microsoft.com/en-us/library/vstudio/7ctdsyy0(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_s32(
-+ vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b)));
-+}
-+
-+// Computes bitwise EXOR (exclusive-or) of the four single-precision,
-+// floating-point values of a and b.
-+// https://msdn.microsoft.com/en-us/library/ss6k3wk8(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_s32(
-+ veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b)));
-+}
-+
-+// Computes the bitwise OR of the 128-bit value in a and the 128-bit value in b.
-+//
-+// r := a | b
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/ew8ty0db(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s32(
-+ vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)));
-+}
-+
-+// Computes the bitwise XOR of the 128-bit value in a and the 128-bit value in
-+// b. https://msdn.microsoft.com/en-us/library/fzt08www(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s32(
-+ veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)));
-+}
-+
-+// Moves the upper two values of B into the lower two values of A.
-+//
-+// r3 := a3
-+// r2 := a2
-+// r1 := b3
-+// r0 := b2
-+FORCE_INLINE __m128 _mm_movehl_ps(__m128 __A, __m128 __B)
-+{
-+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(__A));
-+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(__B));
-+ return vreinterpretq_m128_f32(vcombine_f32(b32, a32));
-+}
-+
-+// Moves the lower two values of B into the upper two values of A.
-+//
-+// r3 := b1
-+// r2 := b0
-+// r1 := a1
-+// r0 := a0
-+FORCE_INLINE __m128 _mm_movelh_ps(__m128 __A, __m128 __B)
-+{
-+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(__A));
-+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(__B));
-+ return vreinterpretq_m128_f32(vcombine_f32(a10, b10));
-+}
-+
-+// NEON does not provide this method
-+// Creates a 4-bit mask from the most significant bits of the four
-+// single-precision, floating-point values.
-+// https://msdn.microsoft.com/en-us/library/vstudio/4490ys29(v=vs.100).aspx
-+FORCE_INLINE int _mm_movemask_ps(__m128 a)
-+{
-+#if 0 /* C version */
-+ uint32x4_t &ia = *(uint32x4_t *) &a;
-+ return (ia[0] >> 31) | ((ia[1] >> 30) & 2) | ((ia[2] >> 29) & 4) |
-+ ((ia[3] >> 28) & 8);
-+#endif
-+ static const uint32x4_t movemask = {1, 2, 4, 8};
-+ static const uint32x4_t highbit = {0x80000000, 0x80000000, 0x80000000,
-+ 0x80000000};
-+ uint32x4_t t0 = vreinterpretq_u32_m128(a);
-+ uint32x4_t t1 = vtstq_u32(t0, highbit);
-+ uint32x4_t t2 = vandq_u32(t1, movemask);
-+ uint32x2_t t3 = vorr_u32(vget_low_u32(t2), vget_high_u32(t2));
-+ return vget_lane_u32(t3, 0) | vget_lane_u32(t3, 1);
-+}
-+
-+FORCE_INLINE __m128i _mm_abs_epi32(__m128i a)
-+{
-+ return vqabsq_s32(a);
-+}
-+
-+FORCE_INLINE __m128i _mm_abs_epi16(__m128i a)
-+{
-+ return vreinterpretq_s32_s16(vqabsq_s16(vreinterpretq_s16_s32(a)));
-+}
-+
-+// Takes the upper 64 bits of a and places it in the low end of the result
-+// Takes the lower 64 bits of b and places it into the high end of the result.
-+FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b)
-+{
-+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a));
-+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b));
-+ return vreinterpretq_m128_f32(vcombine_f32(a32, b10));
-+}
-+
-+// takes the lower two 32-bit values from a and swaps them and places in high
-+// end of result takes the higher two 32 bit values from b and swaps them and
-+// places in low end of result.
-+FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b)
-+{
-+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a)));
-+ float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b)));
-+ return vreinterpretq_m128_f32(vcombine_f32(a01, b23));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b)
-+{
-+ float32x2_t a21 = vget_high_f32(
-+ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3));
-+ float32x2_t b03 = vget_low_f32(
-+ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3));
-+ return vreinterpretq_m128_f32(vcombine_f32(a21, b03));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b)
-+{
-+ float32x2_t a03 = vget_low_f32(
-+ vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3));
-+ float32x2_t b21 = vget_high_f32(
-+ vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3));
-+ return vreinterpretq_m128_f32(vcombine_f32(a03, b21));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b)
-+{
-+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a));
-+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b));
-+ return vreinterpretq_m128_f32(vcombine_f32(a10, b10));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b)
-+{
-+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a)));
-+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b));
-+ return vreinterpretq_m128_f32(vcombine_f32(a01, b10));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b)
-+{
-+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a)));
-+ float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b)));
-+ return vreinterpretq_m128_f32(vcombine_f32(a01, b01));
-+}
-+
-+// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the
-+// high
-+FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b)
-+{
-+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a));
-+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b));
-+ return vreinterpretq_m128_f32(vcombine_f32(a10, b32));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b)
-+{
-+ float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1);
-+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0);
-+ return vreinterpretq_m128_f32(vcombine_f32(a11, b00));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b)
-+{
-+ float32x2_t a22 =
-+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0);
-+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0);
-+ return vreinterpretq_m128_f32(vcombine_f32(a22, b00));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b)
-+{
-+ float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0);
-+ float32x2_t b22 =
-+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0);
-+ return vreinterpretq_m128_f32(vcombine_f32(a00, b22));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b)
-+{
-+ float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0);
-+ float32x2_t a22 =
-+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0);
-+ float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* TODO: use vzip ?*/
-+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b));
-+ return vreinterpretq_m128_f32(vcombine_f32(a02, b32));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b)
-+{
-+ float32x2_t a33 =
-+ vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1);
-+ float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1);
-+ return vreinterpretq_m128_f32(vcombine_f32(a33, b11));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b)
-+{
-+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a));
-+ float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2);
-+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0);
-+ float32x2_t b20 = vset_lane_f32(b2, b00, 1);
-+ return vreinterpretq_m128_f32(vcombine_f32(a10, b20));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b)
-+{
-+ float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a)));
-+ float32_t b2 = vgetq_lane_f32(b, 2);
-+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0);
-+ float32x2_t b20 = vset_lane_f32(b2, b00, 1);
-+ return vreinterpretq_m128_f32(vcombine_f32(a01, b20));
-+}
-+
-+FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b)
-+{
-+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a));
-+ float32_t b2 = vgetq_lane_f32(b, 2);
-+ float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0);
-+ float32x2_t b20 = vset_lane_f32(b2, b00, 1);
-+ return vreinterpretq_m128_f32(vcombine_f32(a32, b20));
-+}
-+
-+// NEON does not support a general purpose permute intrinsic
-+// Selects four specific single-precision, floating-point values from a and b,
-+// based on the mask i.
-+// https://msdn.microsoft.com/en-us/library/vstudio/5f0858x0(v=vs.100).aspx
-+#if 0 /* C version */
-+FORCE_INLINE __m128 _mm_shuffle_ps_default(__m128 a,
-+ __m128 b,
-+ __constrange(0, 255) int imm)
-+{
-+ __m128 ret;
-+ ret[0] = a[imm & 0x3];
-+ ret[1] = a[(imm >> 2) & 0x3];
-+ ret[2] = b[(imm >> 4) & 0x03];
-+ ret[3] = b[(imm >> 6) & 0x03];
-+ return ret;
-+}
-+#endif
-+#define _mm_shuffle_ps_default(a, b, imm) \
-+ ({ \
-+ float32x4_t ret; \
-+ ret = vmovq_n_f32( \
-+ vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) &0x3)); \
-+ ret = vsetq_lane_f32( \
-+ vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), \
-+ ret, 1); \
-+ ret = vsetq_lane_f32( \
-+ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), \
-+ ret, 2); \
-+ ret = vsetq_lane_f32( \
-+ vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), \
-+ ret, 3); \
-+ vreinterpretq_m128_f32(ret); \
-+ })
-+
-+// FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255)
-+// int imm)
-+#define _mm_shuffle_ps(a, b, imm) \
-+ ({ \
-+ __m128 ret; \
-+ switch (imm) { \
-+ case _MM_SHUFFLE(1, 0, 3, 2): \
-+ ret = _mm_shuffle_ps_1032((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(2, 3, 0, 1): \
-+ ret = _mm_shuffle_ps_2301((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(0, 3, 2, 1): \
-+ ret = _mm_shuffle_ps_0321((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(2, 1, 0, 3): \
-+ ret = _mm_shuffle_ps_2103((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(1, 0, 1, 0): \
-+ ret = _mm_movelh_ps((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(1, 0, 0, 1): \
-+ ret = _mm_shuffle_ps_1001((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(0, 1, 0, 1): \
-+ ret = _mm_shuffle_ps_0101((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(3, 2, 1, 0): \
-+ ret = _mm_shuffle_ps_3210((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(0, 0, 1, 1): \
-+ ret = _mm_shuffle_ps_0011((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(0, 0, 2, 2): \
-+ ret = _mm_shuffle_ps_0022((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(2, 2, 0, 0): \
-+ ret = _mm_shuffle_ps_2200((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(3, 2, 0, 2): \
-+ ret = _mm_shuffle_ps_3202((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(3, 2, 3, 2): \
-+ ret = _mm_movehl_ps((b), (a)); \
-+ break; \
-+ case _MM_SHUFFLE(1, 1, 3, 3): \
-+ ret = _mm_shuffle_ps_1133((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(2, 0, 1, 0): \
-+ ret = _mm_shuffle_ps_2010((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(2, 0, 0, 1): \
-+ ret = _mm_shuffle_ps_2001((a), (b)); \
-+ break; \
-+ case _MM_SHUFFLE(2, 0, 3, 2): \
-+ ret = _mm_shuffle_ps_2032((a), (b)); \
-+ break; \
-+ default: \
-+ ret = _mm_shuffle_ps_default((a), (b), (imm)); \
-+ break; \
-+ } \
-+ ret; \
-+ })
-+
-+// Takes the upper 64 bits of a and places it in the low end of the result
-+// Takes the lower 64 bits of a and places it into the high end of the result.
-+FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a)
-+{
-+ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a));
-+ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a));
-+ return vreinterpretq_m128i_s32(vcombine_s32(a32, a10));
-+}
-+
-+// takes the lower two 32-bit values from a and swaps them and places in low end
-+// of result takes the higher two 32 bit values from a and swaps them and places
-+// in high end of result.
-+FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a)
-+{
-+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a)));
-+ int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a)));
-+ return vreinterpretq_m128i_s32(vcombine_s32(a01, a23));
-+}
-+
-+// rotates the least significant 32 bits into the most signficant 32 bits, and
-+// shifts the rest down
-+FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a)
-+{
-+ return vreinterpretq_m128i_s32(
-+ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1));
-+}
-+
-+// rotates the most significant 32 bits into the least signficant 32 bits, and
-+// shifts the rest up
-+FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a)
-+{
-+ return vreinterpretq_m128i_s32(
-+ vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3));
-+}
-+
-+// gets the lower 64 bits of a, and places it in the upper 64 bits
-+// gets the lower 64 bits of a and places it in the lower 64 bits
-+FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a)
-+{
-+ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a));
-+ return vreinterpretq_m128i_s32(vcombine_s32(a10, a10));
-+}
-+
-+// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the
-+// lower 64 bits gets the lower 64 bits of a, and places it in the upper 64 bits
-+FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a)
-+{
-+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a)));
-+ int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a));
-+ return vreinterpretq_m128i_s32(vcombine_s32(a01, a10));
-+}
-+
-+// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the
-+// upper 64 bits gets the lower 64 bits of a, swaps the 0 and 1 elements, and
-+// places it in the lower 64 bits
-+FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a)
-+{
-+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a)));
-+ return vreinterpretq_m128i_s32(vcombine_s32(a01, a01));
-+}
-+
-+FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a)
-+{
-+ int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1);
-+ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0);
-+ return vreinterpretq_m128i_s32(vcombine_s32(a11, a22));
-+}
-+
-+FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a)
-+{
-+ int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0);
-+ int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a)));
-+ return vreinterpretq_m128i_s32(vcombine_s32(a22, a01));
-+}
-+
-+FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a)
-+{
-+ int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a));
-+ int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1);
-+ return vreinterpretq_m128i_s32(vcombine_s32(a32, a33));
-+}
-+
-+// Shuffle packed 8-bit integers in a according to shuffle control mask in the
-+// corresponding 8-bit element of b, and store the results in dst.
-+// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_shuffle_epi8&expand=5146
-+FORCE_INLINE __m128i _mm_shuffle_epi8(__m128i a, __m128i b)
-+{
-+#if __aarch64__
-+ int8x16_t tbl = vreinterpretq_s8_m128i(a); // input a
-+ uint8x16_t idx = vreinterpretq_u8_m128i(b); // input b
-+ uint8_t __attribute__((aligned(16)))
-+ mask[16] = {0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
-+ 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F};
-+ uint8x16_t idx_masked =
-+ vandq_u8(idx, vld1q_u8(mask)); // avoid using meaningless bits
-+
-+ return vreinterpretq_m128i_s8(vqtbl1q_s8(tbl, idx_masked));
-+#else
-+ uint8_t *tbl = (uint8_t *) &a; // input a
-+ uint8_t *idx = (uint8_t *) &b; // input b
-+ int32_t r[4];
-+
-+ r[0] = ((idx[3] & 0x80) ? 0 : tbl[idx[3] % 16]) << 24;
-+ r[0] |= ((idx[2] & 0x80) ? 0 : tbl[idx[2] % 16]) << 16;
-+ r[0] |= ((idx[1] & 0x80) ? 0 : tbl[idx[1] % 16]) << 8;
-+ r[0] |= ((idx[0] & 0x80) ? 0 : tbl[idx[0] % 16]);
-+
-+ r[1] = ((idx[7] & 0x80) ? 0 : tbl[idx[7] % 16]) << 24;
-+ r[1] |= ((idx[6] & 0x80) ? 0 : tbl[idx[6] % 16]) << 16;
-+ r[1] |= ((idx[5] & 0x80) ? 0 : tbl[idx[5] % 16]) << 8;
-+ r[1] |= ((idx[4] & 0x80) ? 0 : tbl[idx[4] % 16]);
-+
-+ r[2] = ((idx[11] & 0x80) ? 0 : tbl[idx[11] % 16]) << 24;
-+ r[2] |= ((idx[10] & 0x80) ? 0 : tbl[idx[10] % 16]) << 16;
-+ r[2] |= ((idx[9] & 0x80) ? 0 : tbl[idx[9] % 16]) << 8;
-+ r[2] |= ((idx[8] & 0x80) ? 0 : tbl[idx[8] % 16]);
-+
-+ r[3] = ((idx[15] & 0x80) ? 0 : tbl[idx[15] % 16]) << 24;
-+ r[3] |= ((idx[14] & 0x80) ? 0 : tbl[idx[14] % 16]) << 16;
-+ r[3] |= ((idx[13] & 0x80) ? 0 : tbl[idx[13] % 16]) << 8;
-+ r[3] |= ((idx[12] & 0x80) ? 0 : tbl[idx[12] % 16]);
-+
-+ return vld1q_s32(r);
-+#endif
-+}
-+
-+
-+#if 0 /* C version */
-+FORCE_INLINE __m128i _mm_shuffle_epi32_default(__m128i a,
-+ __constrange(0, 255) int imm)
-+{
-+ __m128i ret;
-+ ret[0] = a[imm & 0x3];
-+ ret[1] = a[(imm >> 2) & 0x3];
-+ ret[2] = a[(imm >> 4) & 0x03];
-+ ret[3] = a[(imm >> 6) & 0x03];
-+ return ret;
-+}
-+#endif
-+#define _mm_shuffle_epi32_default(a, imm) \
-+ ({ \
-+ int32x4_t ret; \
-+ ret = vmovq_n_s32( \
-+ vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm) &0x3)); \
-+ ret = vsetq_lane_s32( \
-+ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 2) & 0x3), \
-+ ret, 1); \
-+ ret = vsetq_lane_s32( \
-+ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), \
-+ ret, 2); \
-+ ret = vsetq_lane_s32( \
-+ vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), \
-+ ret, 3); \
-+ vreinterpretq_m128i_s32(ret); \
-+ })
-+
-+// FORCE_INLINE __m128i _mm_shuffle_epi32_splat(__m128i a, __constrange(0,255)
-+// int imm)
-+#if defined(__aarch64__)
-+#define _mm_shuffle_epi32_splat(a, imm) \
-+ ({ \
-+ vreinterpretq_m128i_s32( \
-+ vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))); \
-+ })
-+#else
-+#define _mm_shuffle_epi32_splat(a, imm) \
-+ ({ \
-+ vreinterpretq_m128i_s32( \
-+ vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))); \
-+ })
-+#endif
-+
-+// Shuffles the 4 signed or unsigned 32-bit integers in a as specified by imm.
-+// https://msdn.microsoft.com/en-us/library/56f67xbk%28v=vs.90%29.aspx
-+// FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, __constrange(0,255) int
-+// imm)
-+#define _mm_shuffle_epi32(a, imm) \
-+ ({ \
-+ __m128i ret; \
-+ switch (imm) { \
-+ case _MM_SHUFFLE(1, 0, 3, 2): \
-+ ret = _mm_shuffle_epi_1032((a)); \
-+ break; \
-+ case _MM_SHUFFLE(2, 3, 0, 1): \
-+ ret = _mm_shuffle_epi_2301((a)); \
-+ break; \
-+ case _MM_SHUFFLE(0, 3, 2, 1): \
-+ ret = _mm_shuffle_epi_0321((a)); \
-+ break; \
-+ case _MM_SHUFFLE(2, 1, 0, 3): \
-+ ret = _mm_shuffle_epi_2103((a)); \
-+ break; \
-+ case _MM_SHUFFLE(1, 0, 1, 0): \
-+ ret = _mm_shuffle_epi_1010((a)); \
-+ break; \
-+ case _MM_SHUFFLE(1, 0, 0, 1): \
-+ ret = _mm_shuffle_epi_1001((a)); \
-+ break; \
-+ case _MM_SHUFFLE(0, 1, 0, 1): \
-+ ret = _mm_shuffle_epi_0101((a)); \
-+ break; \
-+ case _MM_SHUFFLE(2, 2, 1, 1): \
-+ ret = _mm_shuffle_epi_2211((a)); \
-+ break; \
-+ case _MM_SHUFFLE(0, 1, 2, 2): \
-+ ret = _mm_shuffle_epi_0122((a)); \
-+ break; \
-+ case _MM_SHUFFLE(3, 3, 3, 2): \
-+ ret = _mm_shuffle_epi_3332((a)); \
-+ break; \
-+ case _MM_SHUFFLE(0, 0, 0, 0): \
-+ ret = _mm_shuffle_epi32_splat((a), 0); \
-+ break; \
-+ case _MM_SHUFFLE(1, 1, 1, 1): \
-+ ret = _mm_shuffle_epi32_splat((a), 1); \
-+ break; \
-+ case _MM_SHUFFLE(2, 2, 2, 2): \
-+ ret = _mm_shuffle_epi32_splat((a), 2); \
-+ break; \
-+ case _MM_SHUFFLE(3, 3, 3, 3): \
-+ ret = _mm_shuffle_epi32_splat((a), 3); \
-+ break; \
-+ default: \
-+ ret = _mm_shuffle_epi32_default((a), (imm)); \
-+ break; \
-+ } \
-+ ret; \
-+ })
-+
-+// Shuffles the upper 4 signed or unsigned 16 - bit integers in a as specified
-+// by imm. https://msdn.microsoft.com/en-us/library/13ywktbs(v=vs.100).aspx
-+// FORCE_INLINE __m128i _mm_shufflehi_epi16_function(__m128i a,
-+// __constrange(0,255) int imm)
-+#define _mm_shufflelo_epi16_function(a, imm) \
-+ ({ \
-+ int16x8_t ret = vreinterpretq_s16_s32(a); \
-+ int16x4_t lowBits = vget_low_s16(ret); \
-+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, (imm) &0x3), ret, 4); \
-+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 2) & 0x3), ret, \
-+ 5); \
-+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 4) & 0x3), ret, \
-+ 6); \
-+ ret = vsetq_lane_s16(vget_lane_s16(lowBits, ((imm) >> 6) & 0x3), ret, \
-+ 7); \
-+ vreinterpretq_s32_s16(ret); \
-+ })
-+
-+// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, __constrange(0,255) int
-+// imm)
-+#define _mm_shufflelo_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm))
-+
-+// Shuffles the upper 4 signed or unsigned 16 - bit integers in a as specified
-+// by imm. https://msdn.microsoft.com/en-us/library/13ywktbs(v=vs.100).aspx
-+// FORCE_INLINE __m128i _mm_shufflehi_epi16_function(__m128i a,
-+// __constrange(0,255) int imm)
-+#define _mm_shufflehi_epi16_function(a, imm) \
-+ ({ \
-+ int16x8_t ret = vreinterpretq_s16_s32(a); \
-+ int16x4_t highBits = vget_high_s16(ret); \
-+ ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) &0x3), ret, 4); \
-+ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, \
-+ 5); \
-+ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, \
-+ 6); \
-+ ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, \
-+ 7); \
-+ vreinterpretq_s32_s16(ret); \
-+ })
-+
-+// FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, __constrange(0,255) int
-+// imm)
-+#define _mm_shufflehi_epi16(a, imm) _mm_shufflehi_epi16_function((a), (imm))
-+
-+// Shifts the 4 signed 32-bit integers in a right by count bits while shifting
-+// in the sign bit.
-+//
-+// r0 := a0 >> count
-+// r1 := a1 >> count
-+// r2 := a2 >> count
-+// r3 := a3 >> count immediate
-+FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, int count)
-+{
-+ return vshlq_s32(a, vdupq_n_s32(-count));
-+}
-+
-+// Shifts the 8 signed 16-bit integers in a right by count bits while shifting
-+// in the sign bit.
-+//
-+// r0 := a0 >> count
-+// r1 := a1 >> count
-+// ...
-+// r7 := a7 >> count
-+FORCE_INLINE __m128i _mm_srai_epi16(__m128i a, int count)
-+{
-+ return (__m128i) vshlq_s16((int16x8_t) a, vdupq_n_s16(-count));
-+}
-+
-+// Shifts the 8 signed or unsigned 16-bit integers in a left by count bits while
-+// shifting in zeros.
-+//
-+// r0 := a0 << count
-+// r1 := a1 << count
-+// ...
-+// r7 := a7 << count
-+//
-+// https://msdn.microsoft.com/en-us/library/es73bcsy(v=vs.90).aspx
-+#define _mm_slli_epi16(a, imm) \
-+ ({ \
-+ __m128i ret; \
-+ if ((imm) <= 0) { \
-+ ret = a; \
-+ } else if ((imm) > 31) { \
-+ ret = _mm_setzero_si128(); \
-+ } else { \
-+ ret = vreinterpretq_m128i_s16( \
-+ vshlq_n_s16(vreinterpretq_s16_m128i(a), (imm))); \
-+ } \
-+ ret; \
-+ })
-+
-+// Shifts the 4 signed or unsigned 32-bit integers in a left by count bits while
-+// shifting in zeros. :
-+// https://msdn.microsoft.com/en-us/library/z2k3bbtb%28v=vs.90%29.aspx
-+// FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, __constrange(0,255) int imm)
-+#define _mm_slli_epi32(a, imm) \
-+ ({ \
-+ __m128i ret; \
-+ if ((imm) <= 0) { \
-+ ret = a; \
-+ } else if ((imm) > 31) { \
-+ ret = _mm_setzero_si128(); \
-+ } else { \
-+ ret = vreinterpretq_m128i_s32( \
-+ vshlq_n_s32(vreinterpretq_s32_m128i(a), (imm))); \
-+ } \
-+ ret; \
-+ })
-+
-+// Shift packed 64-bit integers in a left by imm8 while shifting in zeros, and
-+// store the results in dst.
-+#define _mm_slli_epi64(a, imm) \
-+ ({ \
-+ __m128i ret; \
-+ if ((imm) <= 0) { \
-+ ret = a; \
-+ } else if ((imm) > 63) { \
-+ ret = _mm_setzero_si128(); \
-+ } else { \
-+ ret = vreinterpretq_m128i_s64( \
-+ vshlq_n_s64(vreinterpretq_s64_m128i(a), (imm))); \
-+ } \
-+ ret; \
-+ })
-+
-+// Shifts the 8 signed or unsigned 16-bit integers in a right by count bits
-+// while shifting in zeros.
-+//
-+// r0 := srl(a0, count)
-+// r1 := srl(a1, count)
-+// ...
-+// r7 := srl(a7, count)
-+//
-+// https://msdn.microsoft.com/en-us/library/6tcwd38t(v=vs.90).aspx
-+#define _mm_srli_epi16(a, imm) \
-+ ({ \
-+ __m128i ret; \
-+ if ((imm) <= 0) { \
-+ ret = a; \
-+ } else if ((imm) > 31) { \
-+ ret = _mm_setzero_si128(); \
-+ } else { \
-+ ret = vreinterpretq_m128i_u16( \
-+ vshrq_n_u16(vreinterpretq_u16_m128i(a), (imm))); \
-+ } \
-+ ret; \
-+ })
-+
-+// Shifts the 4 signed or unsigned 32-bit integers in a right by count bits
-+// while shifting in zeros.
-+// https://msdn.microsoft.com/en-us/library/w486zcfa(v=vs.100).aspx FORCE_INLINE
-+// __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm)
-+#define _mm_srli_epi32(a, imm) \
-+ ({ \
-+ __m128i ret; \
-+ if ((imm) <= 0) { \
-+ ret = a; \
-+ } else if ((imm) > 31) { \
-+ ret = _mm_setzero_si128(); \
-+ } else { \
-+ ret = vreinterpretq_m128i_u32( \
-+ vshrq_n_u32(vreinterpretq_u32_m128i(a), (imm))); \
-+ } \
-+ ret; \
-+ })
-+
-+// Shift packed 64-bit integers in a right by imm8 while shifting in zeros, and
-+// store the results in dst.
-+#define _mm_srli_epi64(a, imm) \
-+ ({ \
-+ __m128i ret; \
-+ if ((imm) <= 0) { \
-+ ret = a; \
-+ } else if ((imm) > 63) { \
-+ ret = _mm_setzero_si128(); \
-+ } else { \
-+ ret = vreinterpretq_m128i_u64( \
-+ vshrq_n_u64(vreinterpretq_u64_m128i(a), (imm))); \
-+ } \
-+ ret; \
-+ })
-+
-+// Shifts the 4 signed 32 - bit integers in a right by count bits while shifting
-+// in the sign bit.
-+// https://msdn.microsoft.com/en-us/library/z1939387(v=vs.100).aspx
-+// FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm)
-+#define _mm_srai_epi32(a, imm) \
-+ ({ \
-+ __m128i ret; \
-+ if ((imm) <= 0) { \
-+ ret = a; \
-+ } else if ((imm) > 31) { \
-+ ret = vreinterpretq_m128i_s32( \
-+ vshrq_n_s32(vreinterpretq_s32_m128i(a), 16)); \
-+ ret = vreinterpretq_m128i_s32( \
-+ vshrq_n_s32(vreinterpretq_s32_m128i(ret), 16)); \
-+ } else { \
-+ ret = vreinterpretq_m128i_s32( \
-+ vshrq_n_s32(vreinterpretq_s32_m128i(a), (imm))); \
-+ } \
-+ ret; \
-+ })
-+
-+// Shifts the 128 - bit value in a right by imm bytes while shifting in
-+// zeros.imm must be an immediate.
-+//
-+// r := srl(a, imm*8)
-+//
-+// https://msdn.microsoft.com/en-us/library/305w28yz(v=vs.100).aspx
-+// FORCE_INLINE _mm_srli_si128(__m128i a, __constrange(0,255) int imm)
-+#define _mm_srli_si128(a, imm) \
-+ ({ \
-+ __m128i ret; \
-+ if ((imm) <= 0) { \
-+ ret = a; \
-+ } else if ((imm) > 15) { \
-+ ret = _mm_setzero_si128(); \
-+ } else { \
-+ ret = vreinterpretq_m128i_s8( \
-+ vextq_s8(vreinterpretq_s8_m128i(a), vdupq_n_s8(0), (imm))); \
-+ } \
-+ ret; \
-+ })
-+
-+// Shifts the 128-bit value in a left by imm bytes while shifting in zeros. imm
-+// must be an immediate.
-+//
-+// r := a << (imm * 8)
-+//
-+// https://msdn.microsoft.com/en-us/library/34d3k2kt(v=vs.100).aspx
-+// FORCE_INLINE __m128i _mm_slli_si128(__m128i a, __constrange(0,255) int imm)
-+#define _mm_slli_si128(a, imm) \
-+ ({ \
-+ __m128i ret; \
-+ if ((imm) <= 0) { \
-+ ret = a; \
-+ } else if ((imm) > 15) { \
-+ ret = _mm_setzero_si128(); \
-+ } else { \
-+ ret = vreinterpretq_m128i_s8(vextq_s8( \
-+ vdupq_n_s8(0), vreinterpretq_s8_m128i(a), 16 - (imm))); \
-+ } \
-+ ret; \
-+ })
-+
-+// NEON does not provide a version of this function, here is an article about
-+// some ways to repro the results.
-+// http://stackoverflow.com/questions/11870910/sse-mm-movemask-epi8-equivalent-method-for-arm-neon
-+// Creates a 16-bit mask from the most significant bits of the 16 signed or
-+// unsigned 8-bit integers in a and zero extends the upper bits.
-+// https://msdn.microsoft.com/en-us/library/vstudio/s090c8fk(v=vs.100).aspx
-+FORCE_INLINE int _mm_movemask_epi8(__m128i _a)
-+{
-+ uint8x16_t input = vreinterpretq_u8_m128i(_a);
-+ static const int8_t __attribute__((aligned(16)))
-+ xr[8] = {-7, -6, -5, -4, -3, -2, -1, 0};
-+ uint8x8_t mask_and = vdup_n_u8(0x80);
-+ int8x8_t mask_shift = vld1_s8(xr);
-+
-+ uint8x8_t lo = vget_low_u8(input);
-+ uint8x8_t hi = vget_high_u8(input);
-+
-+ lo = vand_u8(lo, mask_and);
-+ lo = vshl_u8(lo, mask_shift);
-+
-+ hi = vand_u8(hi, mask_and);
-+ hi = vshl_u8(hi, mask_shift);
-+
-+ lo = vpadd_u8(lo, lo);
-+ lo = vpadd_u8(lo, lo);
-+ lo = vpadd_u8(lo, lo);
-+
-+ hi = vpadd_u8(hi, hi);
-+ hi = vpadd_u8(hi, hi);
-+ hi = vpadd_u8(hi, hi);
-+
-+ return ((hi[0] << 8) | (lo[0] & 0xFF));
-+}
-+
-+// Compute the bitwise AND of 128 bits (representing integer data) in a and
-+// mask, and return 1 if the result is zero, otherwise return 0.
-+// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_test_all_zeros&expand=5871
-+FORCE_INLINE int _mm_test_all_zeros(__m128i a, __m128i mask)
-+{
-+ int64x2_t a_and_mask =
-+ vandq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(mask));
-+ return (vgetq_lane_s64(a_and_mask, 0) | vgetq_lane_s64(a_and_mask, 1)) ? 0
-+ : 1;
-+}
-+
-+// ******************************************
-+// Math operations
-+// ******************************************
-+
-+// Subtracts the four single-precision, floating-point values of a and b.
-+//
-+// r0 := a0 - b0
-+// r1 := a1 - b1
-+// r2 := a2 - b2
-+// r3 := a3 - b3
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/1zad2k61(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_f32(
-+ vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+// Subtract 2 packed 64-bit integers in b from 2 packed 64-bit integers in a,
-+// and store the results in dst.
-+// r0 := a0 - b0
-+// r1 := a1 - b1
-+FORCE_INLINE __m128i _mm_sub_epi64(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s64(
-+ vsubq_s64(vreinterpretq_s64_m128i(a), vreinterpretq_s64_m128i(b)));
-+}
-+
-+// Subtracts the 4 signed or unsigned 32-bit integers of b from the 4 signed or
-+// unsigned 32-bit integers of a.
-+//
-+// r0 := a0 - b0
-+// r1 := a1 - b1
-+// r2 := a2 - b2
-+// r3 := a3 - b3
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/fhh866h0(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128_f32(
-+ vsubq_s32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s16(
-+ vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)));
-+}
-+
-+FORCE_INLINE __m128i _mm_sub_epi8(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s8(
-+ vsubq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b)));
-+}
-+
-+// Subtracts the 8 unsigned 16-bit integers of bfrom the 8 unsigned 16-bit
-+// integers of a and saturates..
-+// https://technet.microsoft.com/en-us/subscriptions/index/f44y0s19(v=vs.90).aspx
-+FORCE_INLINE __m128i _mm_subs_epu16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u16(
-+ vqsubq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)));
-+}
-+
-+// Subtracts the 16 unsigned 8-bit integers of b from the 16 unsigned 8-bit
-+// integers of a and saturates.
-+//
-+// r0 := UnsignedSaturate(a0 - b0)
-+// r1 := UnsignedSaturate(a1 - b1)
-+// ...
-+// r15 := UnsignedSaturate(a15 - b15)
-+//
-+// https://technet.microsoft.com/en-us/subscriptions/yadkxc18(v=vs.90)
-+FORCE_INLINE __m128i _mm_subs_epu8(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u8(
-+ vqsubq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)));
-+}
-+
-+// Subtracts the 8 signed 16-bit integers of b from the 8 signed 16-bit integers
-+// of a and saturates.
-+//
-+// r0 := SignedSaturate(a0 - b0)
-+// r1 := SignedSaturate(a1 - b1)
-+// ...
-+// r7 := SignedSaturate(a7 - b7)
-+FORCE_INLINE __m128i _mm_subs_epi16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s16(
-+ vqsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)));
-+}
-+
-+FORCE_INLINE __m128i _mm_adds_epu16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u16(
-+ vqaddq_u16(vreinterpretq_u16_m128i(a), vreinterpretq_u16_m128i(b)));
-+}
-+
-+FORCE_INLINE __m128i _mm_sign_epi32(__m128i a, __m128i b)
-+{
-+ __m128i zer0 = vdupq_n_s32(0);
-+ __m128i ltMask = vreinterpretq_s32_u32(vcltq_s32(b, zer0));
-+ __m128i gtMask = vreinterpretq_s32_u32(vcgtq_s32(b, zer0));
-+ __m128i neg = vnegq_s32(a);
-+ __m128i tmp = vandq_s32(a, gtMask);
-+ return vorrq_s32(tmp, vandq_s32(neg, ltMask));
-+}
-+
-+FORCE_INLINE __m128i _mm_sign_epi16(__m128i a, __m128i b)
-+{
-+ int16x8_t zer0 = vdupq_n_s16(0);
-+ int16x8_t ltMask =
-+ vreinterpretq_s16_u16(vcltq_s16(vreinterpretq_s16_s32(b), zer0));
-+ int16x8_t gtMask =
-+ vreinterpretq_s16_u16(vcgtq_s16(vreinterpretq_s16_s32(b), zer0));
-+ int16x8_t neg = vnegq_s16(vreinterpretq_s16_s32(a));
-+ int16x8_t tmp = vandq_s16(vreinterpretq_s16_s32(a), gtMask);
-+ return vreinterpretq_s32_s16(vorrq_s16(tmp, vandq_s16(neg, ltMask)));
-+}
-+
-+// Adds the four single-precision, floating-point values of a and b.
-+//
-+// r0 := a0 + b0
-+// r1 := a1 + b1
-+// r2 := a2 + b2
-+// r3 := a3 + b3
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/c9848chc(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_f32(
-+ vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+// adds the scalar single-precision floating point values of a and b.
-+// https://msdn.microsoft.com/en-us/library/be94x2y6(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b)
-+{
-+ float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0);
-+ float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0);
-+ // the upper values in the result must be the remnants of <a>.
-+ return vreinterpretq_m128_f32(vaddq_f32(a, value));
-+}
-+
-+// Adds the 4 signed or unsigned 64-bit integers in a to the 4 signed or
-+// unsigned 32-bit integers in b.
-+// https://msdn.microsoft.com/en-us/library/vstudio/09xs4fkk(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_add_epi64(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_s32_s64(
-+ vaddq_s64(vreinterpretq_s64_s32(a), vreinterpretq_s64_s32(b)));
-+}
-+
-+// Adds the 4 signed or unsigned 32-bit integers in a to the 4 signed or
-+// unsigned 32-bit integers in b.
-+//
-+// r0 := a0 + b0
-+// r1 := a1 + b1
-+// r2 := a2 + b2
-+// r3 := a3 + b3
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/09xs4fkk(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s32(
-+ vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)));
-+}
-+
-+// Adds the 8 signed or unsigned 16-bit integers in a to the 8 signed or
-+// unsigned 16-bit integers in b.
-+// https://msdn.microsoft.com/en-us/library/fceha5k4(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s16(
-+ vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)));
-+}
-+
-+// Adds the 16 signed or unsigned 8-bit integers in a to the 16 signed or
-+// unsigned 8-bit integers in b.
-+// https://technet.microsoft.com/en-us/subscriptions/yc7tcyzs(v=vs.90)
-+FORCE_INLINE __m128i _mm_add_epi8(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s8(
-+ vaddq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b)));
-+}
-+
-+// Adds the 8 signed 16-bit integers in a to the 8 signed 16-bit integers in b
-+// and saturates.
-+//
-+// r0 := SignedSaturate(a0 + b0)
-+// r1 := SignedSaturate(a1 + b1)
-+// ...
-+// r7 := SignedSaturate(a7 + b7)
-+//
-+// https://msdn.microsoft.com/en-us/library/1a306ef8(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_adds_epi16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s16(
-+ vqaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)));
-+}
-+
-+// Adds the 16 unsigned 8-bit integers in a to the 16 unsigned 8-bit integers in
-+// b and saturates..
-+// https://msdn.microsoft.com/en-us/library/9hahyddy(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_adds_epu8(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u8(
-+ vqaddq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)));
-+}
-+
-+// Multiplies the 8 signed or unsigned 16-bit integers from a by the 8 signed or
-+// unsigned 16-bit integers from b.
-+//
-+// r0 := (a0 * b0)[15:0]
-+// r1 := (a1 * b1)[15:0]
-+// ...
-+// r7 := (a7 * b7)[15:0]
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/9ks1472s(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s16(
-+ vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)));
-+}
-+
-+// Multiplies the 4 signed or unsigned 32-bit integers from a by the 4 signed or
-+// unsigned 32-bit integers from b.
-+// https://msdn.microsoft.com/en-us/library/vstudio/bb531409(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s32(
-+ vmulq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)));
-+}
-+
-+// Multiplies the four single-precision, floating-point values of a and b.
-+//
-+// r0 := a0 * b0
-+// r1 := a1 * b1
-+// r2 := a2 * b2
-+// r3 := a3 * b3
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/22kbk6t9(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_mul_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_f32(
-+ vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+// Multiply the low unsigned 32-bit integers from each packed 64-bit element in
-+// a and b, and store the unsigned 64-bit results in dst.
-+//
-+// r0 := (uint32_t*)a0 * (uint32_t*)b0
-+// r1 := (uint32_t*)a2 * (uint32_t*)b2
-+#if 1 /* C version */
-+FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b)
-+{
-+ __m128i d;
-+ vreinterpretq_nth_u64_m128i(d, 0) =
-+ (uint64_t)(vreinterpretq_nth_u32_m128i(a, 0)) *
-+ (uint64_t)(vreinterpretq_nth_u32_m128i(b, 0));
-+ vreinterpretq_nth_u64_m128i(d, 1) =
-+ (uint64_t)(vreinterpretq_nth_u32_m128i(a, 2)) *
-+ (uint64_t)(vreinterpretq_nth_u32_m128i(b, 2));
-+ return d;
-+}
-+#else /* Neon version */
-+// Default to c version until casting can be sorted out on neon version.
-+// (Otherwise requires compiling with -fpermissive) Also unclear whether neon
-+// version actually performs better.
-+FORCE_INLINE __m128i _mm_mul_epu32(__m128i a, __m128i b)
-+{
-+ // shuffle: 0, 1, 2, 3 -> 0, 2, 1, 3 */
-+ __m128i const a_shuf =
-+ *(__m128i *) (&vzip_u32(vget_low_u32(vreinterpretq_u32_m128i(a)),
-+ vget_high_u32(vreinterpretq_u32_m128i(a))));
-+ __m128i const b_shuf =
-+ *(__m128i *) (&vzip_u32(vget_low_u32(vreinterpretq_u32_m128i(b)),
-+ vget_high_u32(vreinterpretq_u32_m128i(b))));
-+ // Multiply low word (32 bit) against low word (32 bit) and high word (32
-+ // bit) against high word (32 bit). Pack both results (64 bit) into 128 bit
-+ // register and return result.
-+ return vreinterpretq_m128i_u64(
-+ vmull_u32(vget_low_u32(vreinterpretq_u32_m128i(a_shuf)),
-+ vget_low_u32(vreinterpretq_u32_m128i(b_shuf))));
-+}
-+#endif
-+
-+// Multiplies the 8 signed 16-bit integers from a by the 8 signed 16-bit
-+// integers from b.
-+//
-+// r0 := (a0 * b0) + (a1 * b1)
-+// r1 := (a2 * b2) + (a3 * b3)
-+// r2 := (a4 * b4) + (a5 * b5)
-+// r3 := (a6 * b6) + (a7 * b7)
-+// https://msdn.microsoft.com/en-us/library/yht36sa6(v=vs.90).aspx
-+FORCE_INLINE __m128i _mm_madd_epi16(__m128i a, __m128i b)
-+{
-+ int32x4_t low = vmull_s16(vget_low_s16(vreinterpretq_s16_m128i(a)),
-+ vget_low_s16(vreinterpretq_s16_m128i(b)));
-+ int32x4_t high = vmull_s16(vget_high_s16(vreinterpretq_s16_m128i(a)),
-+ vget_high_s16(vreinterpretq_s16_m128i(b)));
-+
-+ int32x2_t low_sum = vpadd_s32(vget_low_s32(low), vget_high_s32(low));
-+ int32x2_t high_sum = vpadd_s32(vget_low_s32(high), vget_high_s32(high));
-+
-+ return vreinterpretq_s32_m128i(vcombine_s32(low_sum, high_sum));
-+}
-+
-+// Computes the absolute difference of the 16 unsigned 8-bit integers from a
-+// and the 16 unsigned 8-bit integers from b.
-+//
-+// Return Value
-+// Sums the upper 8 differences and lower 8 differences and packs the
-+// resulting 2 unsigned 16-bit integers into the upper and lower 64-bit
-+// elements.
-+//
-+// r0 := abs(a0 - b0) + abs(a1 - b1) +...+ abs(a7 - b7)
-+// r1 := 0x0
-+// r2 := 0x0
-+// r3 := 0x0
-+// r4 := abs(a8 - b8) + abs(a9 - b9) +...+ abs(a15 - b15)
-+// r5 := 0x0
-+// r6 := 0x0
-+// r7 := 0x0
-+FORCE_INLINE __m128i _mm_sad_epu8(__m128i a, __m128i b)
-+{
-+ uint16x8_t t = vpaddlq_u8(vabdq_u8((uint8x16_t) a, (uint8x16_t) b));
-+ uint16_t r0 = t[0] + t[1] + t[2] + t[3];
-+ uint16_t r4 = t[4] + t[5] + t[6] + t[7];
-+ uint16x8_t r = vsetq_lane_u16(r0, vdupq_n_u16(0), 0);
-+ return (__m128i) vsetq_lane_u16(r4, r, 4);
-+}
-+
-+// Divides the four single-precision, floating-point values of a and b.
-+//
-+// r0 := a0 / b0
-+// r1 := a1 / b1
-+// r2 := a2 / b2
-+// r3 := a3 / b3
-+//
-+// https://msdn.microsoft.com/en-us/library/edaw8147(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b)
-+{
-+ float32x4_t recip0 = vrecpeq_f32(vreinterpretq_f32_m128(b));
-+ float32x4_t recip1 =
-+ vmulq_f32(recip0, vrecpsq_f32(recip0, vreinterpretq_f32_m128(b)));
-+ return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip1));
-+}
-+
-+// Divides the scalar single-precision floating point value of a by b.
-+// https://msdn.microsoft.com/en-us/library/4y73xa49(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b)
-+{
-+ float32_t value =
-+ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0);
-+ return vreinterpretq_m128_f32(
-+ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0));
-+}
-+
-+// This version does additional iterations to improve accuracy. Between 1 and 4
-+// recommended. Computes the approximations of reciprocals of the four
-+// single-precision, floating-point values of a.
-+// https://msdn.microsoft.com/en-us/library/vstudio/796k1tty(v=vs.100).aspx
-+FORCE_INLINE __m128 recipq_newton(__m128 in, int n)
-+{
-+ int i;
-+ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in));
-+ for (i = 0; i < n; ++i) {
-+ recip =
-+ vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in)));
-+ }
-+ return vreinterpretq_m128_f32(recip);
-+}
-+
-+// Computes the approximations of reciprocals of the four single-precision,
-+// floating-point values of a.
-+// https://msdn.microsoft.com/en-us/library/vstudio/796k1tty(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_rcp_ps(__m128 in)
-+{
-+ float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in));
-+ recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in)));
-+ return vreinterpretq_m128_f32(recip);
-+}
-+
-+// Computes the approximations of square roots of the four single-precision,
-+// floating-point values of a. First computes reciprocal square roots and then
-+// reciprocals of the four values.
-+//
-+// r0 := sqrt(a0)
-+// r1 := sqrt(a1)
-+// r2 := sqrt(a2)
-+// r3 := sqrt(a3)
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/8z67bwwk(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in)
-+{
-+ float32x4_t recipsq = vrsqrteq_f32(vreinterpretq_f32_m128(in));
-+ float32x4_t sq = vrecpeq_f32(recipsq);
-+ // ??? use step versions of both sqrt and recip for better accuracy?
-+ return vreinterpretq_m128_f32(sq);
-+}
-+
-+// Computes the approximation of the square root of the scalar single-precision
-+// floating point value of in.
-+// https://msdn.microsoft.com/en-us/library/ahfsc22d(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in)
-+{
-+ float32_t value =
-+ vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0);
-+ return vreinterpretq_m128_f32(
-+ vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0));
-+}
-+
-+// Computes the approximations of the reciprocal square roots of the four
-+// single-precision floating point values of in.
-+// https://msdn.microsoft.com/en-us/library/22hfsh53(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in)
-+{
-+ return vreinterpretq_m128_f32(vrsqrteq_f32(vreinterpretq_f32_m128(in)));
-+}
-+
-+// Computes the maximums of the four single-precision, floating-point values of
-+// a and b.
-+// https://msdn.microsoft.com/en-us/library/vstudio/ff5d607a(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_f32(
-+ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+// Computes the minima of the four single-precision, floating-point values of a
-+// and b.
-+// https://msdn.microsoft.com/en-us/library/vstudio/wh13kadz(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_f32(
-+ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+// Computes the maximum of the two lower scalar single-precision floating point
-+// values of a and b.
-+// https://msdn.microsoft.com/en-us/library/s6db5esz(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b)
-+{
-+ float32_t value = vgetq_lane_f32(
-+ vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)), 0);
-+ return vreinterpretq_m128_f32(
-+ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0));
-+}
-+
-+// Computes the minimum of the two lower scalar single-precision floating point
-+// values of a and b.
-+// https://msdn.microsoft.com/en-us/library/0a9y7xaa(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b)
-+{
-+ float32_t value = vgetq_lane_f32(
-+ vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)), 0);
-+ return vreinterpretq_m128_f32(
-+ vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0));
-+}
-+
-+// Computes the pairwise maxima of the 16 unsigned 8-bit integers from a and the
-+// 16 unsigned 8-bit integers from b.
-+// https://msdn.microsoft.com/en-us/library/st6634za(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_max_epu8(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u8(
-+ vmaxq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)));
-+}
-+
-+// Computes the pairwise minima of the 16 unsigned 8-bit integers from a and the
-+// 16 unsigned 8-bit integers from b.
-+// https://msdn.microsoft.com/ko-kr/library/17k8cf58(v=vs.100).aspxx
-+FORCE_INLINE __m128i _mm_min_epu8(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u8(
-+ vminq_u8(vreinterpretq_u8_m128i(a), vreinterpretq_u8_m128i(b)));
-+}
-+
-+// Computes the pairwise minima of the 8 signed 16-bit integers from a and the 8
-+// signed 16-bit integers from b.
-+// https://msdn.microsoft.com/en-us/library/vstudio/6te997ew(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s16(
-+ vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)));
-+}
-+
-+// Computes the pairwise maxima of the 8 signed 16-bit integers from a and the 8
-+// signed 16-bit integers from b.
-+// https://msdn.microsoft.com/en-us/LIBRary/3x060h7c(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_max_epi16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s16(
-+ vmaxq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)));
-+}
-+
-+// epi versions of min/max
-+// Computes the pariwise maximums of the four signed 32-bit integer values of a
-+// and b.
-+//
-+// A 128-bit parameter that can be defined with the following equations:
-+// r0 := (a0 > b0) ? a0 : b0
-+// r1 := (a1 > b1) ? a1 : b1
-+// r2 := (a2 > b2) ? a2 : b2
-+// r3 := (a3 > b3) ? a3 : b3
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/bb514055(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s32(
-+ vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)));
-+}
-+
-+// Computes the pariwise minima of the four signed 32-bit integer values of a
-+// and b.
-+//
-+// A 128-bit parameter that can be defined with the following equations:
-+// r0 := (a0 < b0) ? a0 : b0
-+// r1 := (a1 < b1) ? a1 : b1
-+// r2 := (a2 < b2) ? a2 : b2
-+// r3 := (a3 < b3) ? a3 : b3
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/bb531476(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s32(
-+ vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)));
-+}
-+
-+// Multiplies the 8 signed 16-bit integers from a by the 8 signed 16-bit
-+// integers from b.
-+//
-+// r0 := (a0 * b0)[31:16]
-+// r1 := (a1 * b1)[31:16]
-+// ...
-+// r7 := (a7 * b7)[31:16]
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/59hddw1d(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b)
-+{
-+ /* FIXME: issue with large values because of result saturation */
-+ // int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a),
-+ // vreinterpretq_s16_m128i(b)); /* =2*a*b */ return
-+ // vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1));
-+ int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a));
-+ int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b));
-+ int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */
-+ int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a));
-+ int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b));
-+ int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */
-+ uint16x8x2_t r =
-+ vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654));
-+ return vreinterpretq_m128i_u16(r.val[1]);
-+}
-+
-+// Computes pairwise add of each argument as single-precision, floating-point
-+// values a and b.
-+// https://msdn.microsoft.com/en-us/library/yd9wecaa.aspx
-+FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b)
-+{
-+#if defined(__aarch64__)
-+ return vreinterpretq_m128_f32(vpaddq_f32(
-+ vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); // AArch64
-+#else
-+ float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a));
-+ float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a));
-+ float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b));
-+ float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b));
-+ return vreinterpretq_m128_f32(
-+ vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32)));
-+#endif
-+}
-+
-+// ******************************************
-+// Compare operations
-+// ******************************************
-+
-+// Compares for less than
-+// https://msdn.microsoft.com/en-us/library/vstudio/f330yhc8(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_u32(
-+ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+// Compares for greater than.
-+//
-+// r0 := (a0 > b0) ? 0xffffffff : 0x0
-+// r1 := (a1 > b1) ? 0xffffffff : 0x0
-+// r2 := (a2 > b2) ? 0xffffffff : 0x0
-+// r3 := (a3 > b3) ? 0xffffffff : 0x0
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/11dy102s(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_u32(
-+ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+// Compares for greater than or equal.
-+// https://msdn.microsoft.com/en-us/library/vstudio/fs813y2t(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_u32(
-+ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+// Compares for less than or equal.
-+//
-+// r0 := (a0 <= b0) ? 0xffffffff : 0x0
-+// r1 := (a1 <= b1) ? 0xffffffff : 0x0
-+// r2 := (a2 <= b2) ? 0xffffffff : 0x0
-+// r3 := (a3 <= b3) ? 0xffffffff : 0x0
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/1s75w83z(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_u32(
-+ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+// Compares for equality.
-+// https://msdn.microsoft.com/en-us/library/vstudio/36aectz5(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b)
-+{
-+ return vreinterpretq_m128_u32(
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+}
-+
-+// Compares the 16 signed or unsigned 8-bit integers in a and the 16 signed or
-+// unsigned 8-bit integers in b for equality.
-+// https://msdn.microsoft.com/en-us/library/windows/desktop/bz5xk21a(v=vs.90).aspx
-+FORCE_INLINE __m128i _mm_cmpeq_epi8(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u8(
-+ vceqq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b)));
-+}
-+
-+// Compares the 8 signed or unsigned 16-bit integers in a and the 8 signed or
-+// unsigned 16-bit integers in b for equality.
-+// https://msdn.microsoft.com/en-us/library/2ay060te(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_cmpeq_epi16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u16(
-+ vceqq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)));
-+}
-+
-+// Compare packed 32-bit integers in a and b for equality, and store the results
-+// in dst
-+FORCE_INLINE __m128i _mm_cmpeq_epi32(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u32(
-+ vceqq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)));
-+}
-+
-+// Compares the 16 signed 8-bit integers in a and the 16 signed 8-bit integers
-+// in b for lesser than.
-+// https://msdn.microsoft.com/en-us/library/windows/desktop/9s46csht(v=vs.90).aspx
-+FORCE_INLINE __m128i _mm_cmplt_epi8(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u8(
-+ vcltq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b)));
-+}
-+
-+// Compares the 16 signed 8-bit integers in a and the 16 signed 8-bit integers
-+// in b for greater than.
-+//
-+// r0 := (a0 > b0) ? 0xff : 0x0
-+// r1 := (a1 > b1) ? 0xff : 0x0
-+// ...
-+// r15 := (a15 > b15) ? 0xff : 0x0
-+//
-+// https://msdn.microsoft.com/zh-tw/library/wf45zt2b(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_cmpgt_epi8(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u8(
-+ vcgtq_s8(vreinterpretq_s8_m128i(a), vreinterpretq_s8_m128i(b)));
-+}
-+
-+// Compares the 8 signed 16-bit integers in a and the 8 signed 16-bit integers
-+// in b for greater than.
-+//
-+// r0 := (a0 > b0) ? 0xffff : 0x0
-+// r1 := (a1 > b1) ? 0xffff : 0x0
-+// ...
-+// r7 := (a7 > b7) ? 0xffff : 0x0
-+//
-+// https://technet.microsoft.com/en-us/library/xd43yfsa(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_cmpgt_epi16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u16(
-+ vcgtq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)));
-+}
-+
-+
-+// Compares the 4 signed 32-bit integers in a and the 4 signed 32-bit integers
-+// in b for less than.
-+// https://msdn.microsoft.com/en-us/library/vstudio/4ak0bf5d(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u32(
-+ vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)));
-+}
-+
-+// Compares the 4 signed 32-bit integers in a and the 4 signed 32-bit integers
-+// in b for greater than.
-+// https://msdn.microsoft.com/en-us/library/vstudio/1s9f2z0y(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_u32(
-+ vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)));
-+}
-+
-+// Compares the four 32-bit floats in a and b to check if any values are NaN.
-+// Ordered compare between each value returns true for "orderable" and false for
-+// "not orderable" (NaN).
-+// https://msdn.microsoft.com/en-us/library/vstudio/0h9w00fx(v=vs.100).aspx see
-+// also:
-+// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean
-+// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics
-+FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b)
-+{
-+ // Note: NEON does not have ordered compare builtin
-+ // Need to compare a eq a and b eq b to check for NaN
-+ // Do AND of results to get final
-+ uint32x4_t ceqaa =
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a));
-+ uint32x4_t ceqbb =
-+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b));
-+ return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb));
-+}
-+
-+// Compares the lower single-precision floating point scalar values of a and b
-+// using a less than operation. :
-+// https://msdn.microsoft.com/en-us/library/2kwe606b(v=vs.90).aspx Important
-+// note!! The documentation on MSDN is incorrect! If either of the values is a
-+// NAN the docs say you will get a one, but in fact, it will return a zero!!
-+FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b)
-+{
-+ uint32x4_t a_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a));
-+ uint32x4_t b_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b));
-+ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan);
-+ uint32x4_t a_lt_b =
-+ vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b));
-+ return (vgetq_lane_u32(vandq_u32(a_and_b_not_nan, a_lt_b), 0) != 0) ? 1 : 0;
-+}
-+
-+// Compares the lower single-precision floating point scalar values of a and b
-+// using a greater than operation. :
-+// https://msdn.microsoft.com/en-us/library/b0738e0t(v=vs.100).aspx
-+FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b)
-+{
-+ // return vgetq_lane_u32(vcgtq_f32(vreinterpretq_f32_m128(a),
-+ // vreinterpretq_f32_m128(b)), 0);
-+ uint32x4_t a_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a));
-+ uint32x4_t b_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b));
-+ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan);
-+ uint32x4_t a_gt_b =
-+ vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b));
-+ return (vgetq_lane_u32(vandq_u32(a_and_b_not_nan, a_gt_b), 0) != 0) ? 1 : 0;
-+}
-+
-+// Compares the lower single-precision floating point scalar values of a and b
-+// using a less than or equal operation. :
-+// https://msdn.microsoft.com/en-us/library/1w4t7c57(v=vs.90).aspx
-+FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b)
-+{
-+ // return vgetq_lane_u32(vcleq_f32(vreinterpretq_f32_m128(a),
-+ // vreinterpretq_f32_m128(b)), 0);
-+ uint32x4_t a_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a));
-+ uint32x4_t b_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b));
-+ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan);
-+ uint32x4_t a_le_b =
-+ vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b));
-+ return (vgetq_lane_u32(vandq_u32(a_and_b_not_nan, a_le_b), 0) != 0) ? 1 : 0;
-+}
-+
-+// Compares the lower single-precision floating point scalar values of a and b
-+// using a greater than or equal operation. :
-+// https://msdn.microsoft.com/en-us/library/8t80des6(v=vs.100).aspx
-+FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b)
-+{
-+ // return vgetq_lane_u32(vcgeq_f32(vreinterpretq_f32_m128(a),
-+ // vreinterpretq_f32_m128(b)), 0);
-+ uint32x4_t a_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a));
-+ uint32x4_t b_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b));
-+ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan);
-+ uint32x4_t a_ge_b =
-+ vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b));
-+ return (vgetq_lane_u32(vandq_u32(a_and_b_not_nan, a_ge_b), 0) != 0) ? 1 : 0;
-+}
-+
-+// Compares the lower single-precision floating point scalar values of a and b
-+// using an equality operation. :
-+// https://msdn.microsoft.com/en-us/library/93yx2h2b(v=vs.100).aspx
-+FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b)
-+{
-+ // return vgetq_lane_u32(vceqq_f32(vreinterpretq_f32_m128(a),
-+ // vreinterpretq_f32_m128(b)), 0);
-+ uint32x4_t a_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a));
-+ uint32x4_t b_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b));
-+ uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan);
-+ uint32x4_t a_eq_b =
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b));
-+ return (vgetq_lane_u32(vandq_u32(a_and_b_not_nan, a_eq_b), 0) != 0) ? 1 : 0;
-+}
-+
-+// Compares the lower single-precision floating point scalar values of a and b
-+// using an inequality operation. :
-+// https://msdn.microsoft.com/en-us/library/bafh5e0a(v=vs.90).aspx
-+FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b)
-+{
-+ // return !vgetq_lane_u32(vceqq_f32(vreinterpretq_f32_m128(a),
-+ // vreinterpretq_f32_m128(b)), 0);
-+ uint32x4_t a_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a));
-+ uint32x4_t b_not_nan =
-+ vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b));
-+ uint32x4_t a_or_b_nan = vmvnq_u32(vandq_u32(a_not_nan, b_not_nan));
-+ uint32x4_t a_neq_b = vmvnq_u32(
-+ vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)));
-+ return (vgetq_lane_u32(vorrq_u32(a_or_b_nan, a_neq_b), 0) != 0) ? 1 : 0;
-+}
-+
-+// according to the documentation, these intrinsics behave the same as the
-+// non-'u' versions. We'll just alias them here.
-+#define _mm_ucomilt_ss _mm_comilt_ss
-+#define _mm_ucomile_ss _mm_comile_ss
-+#define _mm_ucomigt_ss _mm_comigt_ss
-+#define _mm_ucomige_ss _mm_comige_ss
-+#define _mm_ucomieq_ss _mm_comieq_ss
-+#define _mm_ucomineq_ss _mm_comineq_ss
-+
-+// ******************************************
-+// Conversions
-+// ******************************************
-+
-+// Converts the four single-precision, floating-point values of a to signed
-+// 32-bit integer values using truncate.
-+// https://msdn.microsoft.com/en-us/library/vstudio/1h005y6x(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a)
-+{
-+ return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a)));
-+}
-+
-+// Converts the four signed 32-bit integer values of a to single-precision,
-+// floating-point values
-+// https://msdn.microsoft.com/en-us/library/vstudio/36bwxcx5(v=vs.100).aspx
-+FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a)
-+{
-+ return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a)));
-+}
-+
-+// Converts the four unsigned 8-bit integers in the lower 32 bits to four
-+// unsigned 32-bit integers.
-+// https://msdn.microsoft.com/en-us/library/bb531467%28v=vs.100%29.aspx
-+FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a)
-+{
-+ uint8x16_t u8x16 = vreinterpretq_u8_s32(a); /* xxxx xxxx xxxx DCBA */
-+ uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */
-+ uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */
-+ return vreinterpretq_s32_u32(u32x4);
-+}
-+
-+// Converts the four signed 16-bit integers in the lower 64 bits to four signed
-+// 32-bit integers.
-+// https://msdn.microsoft.com/en-us/library/bb514079%28v=vs.100%29.aspx
-+FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a)
-+{
-+ return vreinterpretq_m128i_s32(
-+ vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a))));
-+}
-+
-+// Converts the four single-precision, floating-point values of a to signed
-+// 32-bit integer values.
-+//
-+// r0 := (int) a0
-+// r1 := (int) a1
-+// r2 := (int) a2
-+// r3 := (int) a3
-+//
-+// https://msdn.microsoft.com/en-us/library/vstudio/xdc42k5e(v=vs.100).aspx
-+// *NOTE*. The default rounding mode on SSE is 'round to even', which ArmV7-A
-+// does not support! It is supported on ARMv8-A however.
-+FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a)
-+{
-+#if defined(__aarch64__)
-+ return vcvtnq_s32_f32(a);
-+#else
-+ uint32x4_t signmask = vdupq_n_u32(0x80000000);
-+ float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a),
-+ vdupq_n_f32(0.5f)); /* +/- 0.5 */
-+ int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32(
-+ vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/
-+ int32x4_t r_trunc =
-+ vcvtq_s32_f32(vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */
-+ int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32(
-+ vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */
-+ int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone),
-+ vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */
-+ float32x4_t delta = vsubq_f32(
-+ vreinterpretq_f32_m128(a),
-+ vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */
-+ uint32x4_t is_delta_half = vceqq_f32(delta, half); /* delta == +/- 0.5 */
-+ return vreinterpretq_m128i_s32(vbslq_s32(is_delta_half, r_even, r_normal));
-+#endif
-+}
-+
-+// Moves the least significant 32 bits of a to a 32-bit integer.
-+// https://msdn.microsoft.com/en-us/library/5z7a9642%28v=vs.90%29.aspx
-+FORCE_INLINE int _mm_cvtsi128_si32(__m128i a)
-+{
-+ return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0);
-+}
-+
-+// Extracts the low order 64-bit integer from the parameter.
-+// https://msdn.microsoft.com/en-us/library/bb531384(v=vs.120).aspx
-+FORCE_INLINE uint64_t _mm_cvtsi128_si64(__m128i a)
-+{
-+ return vgetq_lane_s64(vreinterpretq_s64_m128i(a), 0);
-+}
-+
-+// Moves 32-bit integer a to the least significant 32 bits of an __m128 object,
-+// zero extending the upper bits.
-+//
-+// r0 := a
-+// r1 := 0x0
-+// r2 := 0x0
-+// r3 := 0x0
-+//
-+// https://msdn.microsoft.com/en-us/library/ct3539ha%28v=vs.90%29.aspx
-+FORCE_INLINE __m128i _mm_cvtsi32_si128(int a)
-+{
-+ return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0));
-+}
-+
-+// Applies a type cast to reinterpret four 32-bit floating point values passed
-+// in as a 128-bit parameter as packed 32-bit integers.
-+// https://msdn.microsoft.com/en-us/library/bb514099.aspx
-+FORCE_INLINE __m128i _mm_castps_si128(__m128 a)
-+{
-+ return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a));
-+}
-+
-+// Applies a type cast to reinterpret four 32-bit integers passed in as a
-+// 128-bit parameter as packed 32-bit floating point values.
-+// https://msdn.microsoft.com/en-us/library/bb514029.aspx
-+FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a)
-+{
-+ return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a));
-+}
-+
-+// Loads 128-bit value. :
-+// https://msdn.microsoft.com/en-us/library/atzzad1h(v=vs.80).aspx
-+FORCE_INLINE __m128i _mm_load_si128(const __m128i *p)
-+{
-+ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p));
-+}
-+
-+// Loads 128-bit value. :
-+// https://msdn.microsoft.com/zh-cn/library/f4k12ae8(v=vs.90).aspx
-+FORCE_INLINE __m128i _mm_loadu_si128(const __m128i *p)
-+{
-+ return vreinterpretq_m128i_s32(vld1q_s32((const int32_t *) p));
-+}
-+
-+// ******************************************
-+// Miscellaneous Operations
-+// ******************************************
-+
-+// Packs the 16 signed 16-bit integers from a and b into 8-bit integers and
-+// saturates.
-+// https://msdn.microsoft.com/en-us/library/k4y4f7w5%28v=vs.90%29.aspx
-+FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s8(
-+ vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)),
-+ vqmovn_s16(vreinterpretq_s16_m128i(b))));
-+}
-+
-+// Packs the 16 signed 16 - bit integers from a and b into 8 - bit unsigned
-+// integers and saturates.
-+//
-+// r0 := UnsignedSaturate(a0)
-+// r1 := UnsignedSaturate(a1)
-+// ...
-+// r7 := UnsignedSaturate(a7)
-+// r8 := UnsignedSaturate(b0)
-+// r9 := UnsignedSaturate(b1)
-+// ...
-+// r15 := UnsignedSaturate(b7)
-+//
-+// https://msdn.microsoft.com/en-us/library/07ad1wx4(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b)
-+{
-+ return vreinterpretq_m128i_u8(
-+ vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)),
-+ vqmovun_s16(vreinterpretq_s16_m128i(b))));
-+}
-+
-+// Packs the 8 signed 32-bit integers from a and b into signed 16-bit integers
-+// and saturates.
-+//
-+// r0 := SignedSaturate(a0)
-+// r1 := SignedSaturate(a1)
-+// r2 := SignedSaturate(a2)
-+// r3 := SignedSaturate(a3)
-+// r4 := SignedSaturate(b0)
-+// r5 := SignedSaturate(b1)
-+// r6 := SignedSaturate(b2)
-+// r7 := SignedSaturate(b3)
-+//
-+// https://msdn.microsoft.com/en-us/library/393t56f9%28v=vs.90%29.aspx
-+FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_m128i_s16(
-+ vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)),
-+ vqmovn_s32(vreinterpretq_s32_m128i(b))));
-+}
-+
-+// Interleaves the lower 8 signed or unsigned 8-bit integers in a with the lower
-+// 8 signed or unsigned 8-bit integers in b.
-+//
-+// r0 := a0
-+// r1 := b0
-+// r2 := a1
-+// r3 := b1
-+// ...
-+// r14 := a7
-+// r15 := b7
-+//
-+// https://msdn.microsoft.com/en-us/library/xf7k860c%28v=vs.90%29.aspx
-+FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b)
-+{
-+ int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a)));
-+ int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b)));
-+ int8x8x2_t result = vzip_s8(a1, b1);
-+ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1]));
-+}
-+
-+// Interleaves the lower 4 signed or unsigned 16-bit integers in a with the
-+// lower 4 signed or unsigned 16-bit integers in b.
-+//
-+// r0 := a0
-+// r1 := b0
-+// r2 := a1
-+// r3 := b1
-+// r4 := a2
-+// r5 := b2
-+// r6 := a3
-+// r7 := b3
-+//
-+// https://msdn.microsoft.com/en-us/library/btxb17bw%28v=vs.90%29.aspx
-+FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b)
-+{
-+ int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a));
-+ int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b));
-+ int16x4x2_t result = vzip_s16(a1, b1);
-+ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1]));
-+}
-+
-+// Interleaves the lower 2 signed or unsigned 32 - bit integers in a with the
-+// lower 2 signed or unsigned 32 - bit integers in b.
-+//
-+// r0 := a0
-+// r1 := b0
-+// r2 := a1
-+// r3 := b1
-+//
-+// https://msdn.microsoft.com/en-us/library/x8atst9d(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b)
-+{
-+ int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a));
-+ int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b));
-+ int32x2x2_t result = vzip_s32(a1, b1);
-+ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1]));
-+}
-+
-+FORCE_INLINE __m128i _mm_unpacklo_epi64(__m128i a, __m128i b)
-+{
-+ int64x1_t a_l = vget_low_s64(vreinterpretq_s64_m128i(a));
-+ int64x1_t b_l = vget_low_s64(vreinterpretq_s64_m128i(b));
-+ return vreinterpretq_m128i_s64(vcombine_s64(a_l, b_l));
-+}
-+
-+// Selects and interleaves the lower two single-precision, floating-point values
-+// from a and b.
-+//
-+// r0 := a0
-+// r1 := b0
-+// r2 := a1
-+// r3 := b1
-+//
-+// https://msdn.microsoft.com/en-us/library/25st103b%28v=vs.90%29.aspx
-+FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b)
-+{
-+ float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a));
-+ float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b));
-+ float32x2x2_t result = vzip_f32(a1, b1);
-+ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1]));
-+}
-+
-+// Selects and interleaves the upper two single-precision, floating-point values
-+// from a and b.
-+//
-+// r0 := a2
-+// r1 := b2
-+// r2 := a3
-+// r3 := b3
-+//
-+// https://msdn.microsoft.com/en-us/library/skccxx7d%28v=vs.90%29.aspx
-+FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b)
-+{
-+ float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a));
-+ float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b));
-+ float32x2x2_t result = vzip_f32(a1, b1);
-+ return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1]));
-+}
-+
-+// Interleaves the upper 8 signed or unsigned 8-bit integers in a with the upper
-+// 8 signed or unsigned 8-bit integers in b.
-+//
-+// r0 := a8
-+// r1 := b8
-+// r2 := a9
-+// r3 := b9
-+// ...
-+// r14 := a15
-+// r15 := b15
-+//
-+// https://msdn.microsoft.com/en-us/library/t5h7783k(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b)
-+{
-+ int8x8_t a1 =
-+ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a)));
-+ int8x8_t b1 =
-+ vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b)));
-+ int8x8x2_t result = vzip_s8(a1, b1);
-+ return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1]));
-+}
-+
-+// Interleaves the upper 4 signed or unsigned 16-bit integers in a with the
-+// upper 4 signed or unsigned 16-bit integers in b.
-+//
-+// r0 := a4
-+// r1 := b4
-+// r2 := a5
-+// r3 := b5
-+// r4 := a6
-+// r5 := b6
-+// r6 := a7
-+// r7 := b7
-+//
-+// https://msdn.microsoft.com/en-us/library/03196cz7(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b)
-+{
-+ int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a));
-+ int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b));
-+ int16x4x2_t result = vzip_s16(a1, b1);
-+ return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1]));
-+}
-+
-+// Interleaves the upper 2 signed or unsigned 32-bit integers in a with the
-+// upper 2 signed or unsigned 32-bit integers in b.
-+// https://msdn.microsoft.com/en-us/library/65sa7cbs(v=vs.100).aspx
-+FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b)
-+{
-+ int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a));
-+ int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b));
-+ int32x2x2_t result = vzip_s32(a1, b1);
-+ return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1]));
-+}
-+
-+// Interleaves the upper signed or unsigned 64-bit integer in a with the
-+// upper signed or unsigned 64-bit integer in b.
-+//
-+// r0 := a1
-+// r1 := b1
-+FORCE_INLINE __m128i _mm_unpackhi_epi64(__m128i a, __m128i b)
-+{
-+ int64x1_t a_h = vget_high_s64(vreinterpretq_s64_m128i(a));
-+ int64x1_t b_h = vget_high_s64(vreinterpretq_s64_m128i(b));
-+ return vreinterpretq_m128i_s64(vcombine_s64(a_h, b_h));
-+}
-+
-+// shift to right
-+// https://msdn.microsoft.com/en-us/library/bb514041(v=vs.120).aspx
-+// http://blog.csdn.net/hemmingway/article/details/44828303
-+FORCE_INLINE __m128i _mm_alignr_epi8(__m128i a, __m128i b, const int c)
-+{
-+ return (__m128i) vextq_s8((int8x16_t) a, (int8x16_t) b, c);
-+}
-+
-+// Extracts the selected signed or unsigned 16-bit integer from a and zero
-+// extends. https://msdn.microsoft.com/en-us/library/6dceta0c(v=vs.100).aspx
-+// FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm)
-+#define _mm_extract_epi16(a, imm) \
-+ ({ (vgetq_lane_s16(vreinterpretq_s16_m128i(a), (imm)) & 0x0000ffffUL); })
-+
-+// Inserts the least significant 16 bits of b into the selected 16-bit integer
-+// of a. https://msdn.microsoft.com/en-us/library/kaze8hz1%28v=vs.100%29.aspx
-+// FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, const int b,
-+// __constrange(0,8) int imm)
-+#define _mm_insert_epi16(a, b, imm) \
-+ ({ \
-+ vreinterpretq_m128i_s16( \
-+ vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))); \
-+ })
-+
-+// ******************************************
-+// Crypto Extensions
-+// ******************************************
-+#if !defined(__ARM_FEATURE_CRYPTO) && defined(__aarch64__)
-+// In the absence of crypto extensions, implement aesenc using regular neon
-+// intrinsics instead. See:
-+// http://www.workofard.com/2017/01/accelerated-aes-for-the-arm64-linux-kernel/
-+// http://www.workofard.com/2017/07/ghash-for-low-end-cores/ and
-+// https://github.com/ColinIanKing/linux-next-mirror/blob/b5f466091e130caaf0735976648f72bd5e09aa84/crypto/aegis128-neon-inner.c#L52
-+// for more information Reproduced with permission of the author.
-+FORCE_INLINE __m128i _mm_aesenc_si128(__m128i EncBlock, __m128i RoundKey)
-+{
-+ static const uint8_t crypto_aes_sbox[256] = {
-+ 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,
-+ 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,
-+ 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,
-+ 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
-+ 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,
-+ 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,
-+ 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,
-+ 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
-+ 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,
-+ 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,
-+ 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,
-+ 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
-+ 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,
-+ 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,
-+ 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,
-+ 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
-+ 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,
-+ 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,
-+ 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,
-+ 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
-+ 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,
-+ 0xb0, 0x54, 0xbb, 0x16};
-+ static const uint8_t shift_rows[] = {0x0, 0x5, 0xa, 0xf, 0x4, 0x9,
-+ 0xe, 0x3, 0x8, 0xd, 0x2, 0x7,
-+ 0xc, 0x1, 0x6, 0xb};
-+ static const uint8_t ror32by8[] = {0x1, 0x2, 0x3, 0x0, 0x5, 0x6, 0x7, 0x4,
-+ 0x9, 0xa, 0xb, 0x8, 0xd, 0xe, 0xf, 0xc};
-+
-+ uint8x16_t v;
-+ uint8x16_t w = vreinterpretq_u8_m128i(EncBlock);
-+
-+ // shift rows
-+ w = vqtbl1q_u8(w, vld1q_u8(shift_rows));
-+
-+ // sub bytes
-+ v = vqtbl4q_u8(vld1q_u8_x4(crypto_aes_sbox), w);
-+ v = vqtbx4q_u8(v, vld1q_u8_x4(crypto_aes_sbox + 0x40), w - 0x40);
-+ v = vqtbx4q_u8(v, vld1q_u8_x4(crypto_aes_sbox + 0x80), w - 0x80);
-+ v = vqtbx4q_u8(v, vld1q_u8_x4(crypto_aes_sbox + 0xc0), w - 0xc0);
-+
-+ // mix columns
-+ w = (v << 1) ^ (uint8x16_t)(((int8x16_t) v >> 7) & 0x1b);
-+ w ^= (uint8x16_t) vrev32q_u16((uint16x8_t) v);
-+ w ^= vqtbl1q_u8(v ^ w, vld1q_u8(ror32by8));
-+
-+ // add round key
-+ return vreinterpretq_m128i_u8(w) ^ RoundKey;
-+}
-+#elif defined(__ARM_FEATURE_CRYPTO)
-+// Implements equivalent of 'aesenc' by combining AESE (with an empty key) and
-+// AESMC and then manually applying the real key as an xor operation This
-+// unfortunately means an additional xor op; the compiler should be able to
-+// optimise this away for repeated calls however See
-+// https://blog.michaelbrase.com/2018/05/08/emulating-x86-aes-intrinsics-on-armv8-a
-+// for more details.
-+inline __m128i _mm_aesenc_si128(__m128i a, __m128i b)
-+{
-+ return vreinterpretq_s32_u8(
-+ vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_s32(a), uint8x16_t{})) ^
-+ vreinterpretq_u8_s32(b));
-+}
-+#endif
-+
-+// ******************************************
-+// Streaming Extensions
-+// ******************************************
-+
-+// Guarantees that every preceding store is globally visible before any
-+// subsequent store.
-+// https://msdn.microsoft.com/en-us/library/5h2w73d1%28v=vs.90%29.aspx
-+FORCE_INLINE void _mm_sfence(void)
-+{
-+ __sync_synchronize();
-+}
-+
-+// Stores the data in a to the address p without polluting the caches. If the
-+// cache line containing address p is already in the cache, the cache will be
-+// updated.Address p must be 16 - byte aligned.
-+// https://msdn.microsoft.com/en-us/library/ba08y07y%28v=vs.90%29.aspx
-+FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a)
-+{
-+ vst1q_s32((int32_t *) p, a);
-+}
-+
-+// Cache line containing p is flushed and invalidated from all caches in the
-+// coherency domain. :
-+// https://msdn.microsoft.com/en-us/library/ba08y07y(v=vs.100).aspx
-+FORCE_INLINE void _mm_clflush(void const *p)
-+{
-+ // no corollary for Neon?
-+}
-+
-+#if defined(__GNUC__) || defined(__clang__)
-+#pragma pop_macro("ALIGN_STRUCT")
-+#pragma pop_macro("FORCE_INLINE")
-+#endif
-+
-+#endif
diff --git a/vendor/spoa/src/simd_alignment_engine.cpp b/vendor/spoa/src/simd_alignment_engine.cpp
index 3e5815a..2fd10d7 100644
--- a/vendor/spoa/src/simd_alignment_engine.cpp
@@ -2795,7 +6,7 @@ index 3e5815a..2fd10d7 100644
#include <algorithm>
#include <limits>
-+#include "arch/aarch64/sse2neon.h"
++#include <sse2neon.h>
+/*
extern "C" {
#include <immintrin.h> // AVX2 and lower
diff --git a/var/spack/repos/builtin/packages/racon/package.py b/var/spack/repos/builtin/packages/racon/package.py
index 1e661b4bd7..19b44719f1 100644
--- a/var/spack/repos/builtin/packages/racon/package.py
+++ b/var/spack/repos/builtin/packages/racon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -25,6 +25,7 @@ class Racon(CMakePackage):
depends_on('cmake@3.2:', type='build')
depends_on('python', type='build')
+ depends_on('sse2neon', when='target=aarch64:')
conflicts('%gcc@:4.7')
conflicts('%clang@:3.1')
diff --git a/var/spack/repos/builtin/packages/raft/package.py b/var/spack/repos/builtin/packages/raft/package.py
index d164cc9c1f..65d3666cb9 100644
--- a/var/spack/repos/builtin/packages/raft/package.py
+++ b/var/spack/repos/builtin/packages/raft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ragel/package.py b/var/spack/repos/builtin/packages/ragel/package.py
index cff731ef75..b3956c8438 100644
--- a/var/spack/repos/builtin/packages/ragel/package.py
+++ b/var/spack/repos/builtin/packages/ragel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,9 +15,9 @@ class Ragel(AutotoolsPackage):
recognition of a regular language. Code embedding is done using
inline operators that do not disrupt the regular language syntax.
"""
- homepage = "http://www.colm.net/open-source/ragel"
+ homepage = "https://www.colm.net/open-source/ragel"
git = "git://colm.net/ragel.git"
- url = "http://www.colm.net/files/ragel/ragel-6.10.tar.gz"
+ url = "https://www.colm.net/files/ragel/ragel-6.10.tar.gz"
version('6.10', sha256='5f156edb65d20b856d638dd9ee2dfb43285914d9aa2b6ec779dac0270cd56c3f')
diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py
index c2cdf5a607..2653956236 100644
--- a/var/spack/repos/builtin/packages/raja/package.py
+++ b/var/spack/repos/builtin/packages/raja/package.py
@@ -1,17 +1,25 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import socket
-class Raja(CMakePackage, CudaPackage, ROCmPackage):
+from spack import *
+
+
+class Raja(CachedCMakePackage, CudaPackage, ROCmPackage):
"""RAJA Parallel Framework."""
- homepage = "http://software.llnl.gov/RAJA/"
+ homepage = "https://software.llnl.gov/RAJA/"
git = "https://github.com/LLNL/RAJA.git"
+ maintainers = ['davidbeckingsale']
+
version('develop', branch='develop', submodules='True')
version('main', branch='main', submodules='True')
+ version('0.14.0', tag='v0.14.0', submodules='True')
+ version('0.13.0', tag='v0.13.0', submodules='True')
version('0.12.1', tag='v0.12.1', submodules="True")
version('0.12.0', tag='v0.12.0', submodules="True")
version('0.11.0', tag='v0.11.0', submodules="True")
@@ -28,64 +36,112 @@ class Raja(CMakePackage, CudaPackage, ROCmPackage):
version('0.4.1', tag='v0.4.1', submodules="True")
version('0.4.0', tag='v0.4.0', submodules="True")
+ # export targets when building pre-2.4.0 release with BLT 0.4.0+
+ patch('https://github.com/LLNL/RAJA/commit/eca1124ee4af380d6613adc6012c307d1fd4176b.patch',
+ sha256='57dd531a50ac791b4bb214d34a4bf3fca1349354927c72915b7ccd20524701a9',
+ when='@:0.13.0 ^blt@0.4:')
+
variant('openmp', default=True, description='Build OpenMP backend')
variant('shared', default=True, description='Build Shared Libs')
variant('examples', default=True, description='Build examples.')
variant('exercises', default=True, description='Build exercises.')
+ # TODO: figure out gtest dependency and then set this default True
+ # and remove the +tests conflict below.
+ variant('tests', default=False, description='Build tests')
+
+ depends_on('blt')
+ depends_on('blt@0.4.1:', type='build', when='@0.14.0:')
+ depends_on('blt@0.4.0:', type='build', when='@0.13.0')
+ depends_on('blt@0.3.6:', type='build', when='@:0.12.0')
+
+ depends_on('camp@0.2.2', when='@0.14.0:')
+ depends_on('camp@0.1.0', when='@0.12.0:0.13.0')
+
+ with when('+rocm @0.12.0:'):
+ depends_on('camp+rocm')
+ for arch in ROCmPackage.amdgpu_targets:
+ depends_on('camp+rocm amdgpu_target={0}'.format(arch),
+ when='amdgpu_target={0}'.format(arch))
+ conflicts('+openmp')
+
+ with when('+cuda @0.12.0:'):
+ depends_on('camp+cuda')
+ for sm_ in CudaPackage.cuda_arch_values:
+ depends_on('camp +cuda cuda_arch={0}'.format(sm_),
+ when='cuda_arch={0}'.format(sm_))
+
+ def _get_sys_type(self, spec):
+ sys_type = spec.architecture
+ if "SYS_TYPE" in env:
+ sys_type = env["SYS_TYPE"]
+ return sys_type
- conflicts('+openmp', when='+rocm')
-
- depends_on('cmake@3.8:', type='build')
- depends_on('cmake@3.9:', when='+cuda', type='build')
-
- def cmake_args(self):
+ @property
+ def cache_name(self):
+ hostname = socket.gethostname()
+ if "SYS_TYPE" in env:
+ hostname = hostname.rstrip('1234567890')
+ return "{0}-{1}-{2}@{3}.cmake".format(
+ hostname,
+ self._get_sys_type(self.spec),
+ self.spec.compiler.name,
+ self.spec.compiler.version
+ )
+
+ def initconfig_hardware_entries(self):
spec = self.spec
+ entries = super(Raja, self).initconfig_hardware_entries()
- options = []
- options.append('-DENABLE_OPENMP={0}'.format(
- 'ON' if '+openmp' in spec else 'OFF'))
+ entries.append(cmake_cache_option("ENABLE_OPENMP", '+openmp' in spec))
if '+cuda' in spec:
- options.extend([
- '-DENABLE_CUDA=ON',
- '-DCUDA_TOOLKIT_ROOT_DIR=%s' % (spec['cuda'].prefix)])
+ entries.append(cmake_cache_option("ENABLE_CUDA", True))
if not spec.satisfies('cuda_arch=none'):
cuda_arch = spec.variants['cuda_arch'].value
- options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0]))
+ entries.append(cmake_cache_string(
+ "CUDA_ARCH", 'sm_{0}'.format(cuda_arch[0])))
+ entries.append(cmake_cache_string(
+ "CMAKE_CUDA_ARCHITECTURES", '{0}'.format(cuda_arch[0])))
else:
- options.append('-DENABLE_CUDA=OFF')
+ entries.append(cmake_cache_option("ENABLE_CUDA", False))
if '+rocm' in spec:
- options.extend([
- '-DENABLE_HIP=ON',
- '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix)])
+ entries.append(cmake_cache_option("ENABLE_HIP", True))
+ entries.append(cmake_cache_path(
+ "HIP_ROOT_DIR", '{0}'.format(spec['hip'].prefix)))
archs = self.spec.variants['amdgpu_target'].value
if archs != 'none':
arch_str = ",".join(archs)
- options.append(
- '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch_str)
- )
+ entries.append(cmake_cache_string(
+ "HIP_HIPCC_FLAGS", '--amdgpu-target={0}'.format(arch_str)))
else:
- options.append('-DENABLE_HIP=OFF')
+ entries.append(cmake_cache_option("ENABLE_HIP", False))
- options.append('-DBUILD_SHARED_LIBS={0}'.format(
- 'ON' if '+shared' in spec else 'OFF'))
+ return entries
- options.append('-DENABLE_EXAMPLES={0}'.format(
- 'ON' if '+examples' in spec else 'OFF'))
+ def initconfig_package_entries(self):
+ spec = self.spec
+ entries = []
- options.append('-DENABLE_EXERCISES={0}'.format(
- 'ON' if '+exercises' in spec else 'OFF'))
+ entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec['blt'].prefix))
+ entries.append(cmake_cache_path("camp_DIR", spec['camp'].prefix))
+ entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec))
+ entries.append(cmake_cache_option("ENABLE_EXAMPLES", '+examples' in spec))
+ entries.append(cmake_cache_option("ENABLE_EXERCISES", '+exercises' in spec))
# 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
if self.spec.satisfies('%clang target=ppc64le:') or not self.run_tests:
- options.append('-DENABLE_TESTS=OFF')
+ entries.append(cmake_cache_option("ENABLE_TESTS", False))
else:
- options.append('-DENABLE_TESTS=ON')
+ entries.append(cmake_cache_option("ENABLE_TESTS", True))
+ return entries
+
+ def cmake_args(self):
+ options = []
return options
@property
diff --git a/var/spack/repos/builtin/packages/ramulator/package.py b/var/spack/repos/builtin/packages/ramulator/package.py
index a103d4b68d..96dc4be2c7 100644
--- a/var/spack/repos/builtin/packages/ramulator/package.py
+++ b/var/spack/repos/builtin/packages/ramulator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/randfold/package.py b/var/spack/repos/builtin/packages/randfold/package.py
index bfb1ee80a9..7dbdecca51 100644
--- a/var/spack/repos/builtin/packages/randfold/package.py
+++ b/var/spack/repos/builtin/packages/randfold/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/random123/package.py b/var/spack/repos/builtin/packages/random123/package.py
index bc958abe38..7e9a898d23 100644
--- a/var/spack/repos/builtin/packages/random123/package.py
+++ b/var/spack/repos/builtin/packages/random123/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class Random123(Package):
by applying a stateless mixing function to N instead of the
conventional approach of using N iterations of a stateful
transformation."""
- homepage = "http://www.deshawresearch.com/resources_random123.html"
- url = "http://www.deshawresearch.com/downloads/download_random123.cgi/Random123-1.09.tar.gz"
+ homepage = "https://www.deshawresearch.com/resources_random123.html"
+ url = "https://www.deshawresearch.com/downloads/download_random123.cgi/Random123-1.09.tar.gz"
version('1.13.2', sha256='74a1c6bb66b2684f03d3b1008642a2e9141909103cd09f428d2c60bcaa51cb40')
version('1.10', sha256='4afdfba4b941e33e23b5de9b7907b7e3ac326cb4d34b5fa8225edd00b5fe053b')
diff --git a/var/spack/repos/builtin/packages/random123/v1132-xl161.patch b/var/spack/repos/builtin/packages/random123/v1132-xl161.patch
index 398de3cc2a..f4c66897aa 100644
--- a/var/spack/repos/builtin/packages/random123/v1132-xl161.patch
+++ b/var/spack/repos/builtin/packages/random123/v1132-xl161.patch
@@ -1,5 +1,5 @@
diff --git a/include/Random123/features/compilerfeatures.h b/include/Random123/features/compilerfeatures.h
-index 2341a7a..3c5d999 100644
+index 2341a7a..0606dee 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.
@@ -11,3 +11,18 @@ index 2341a7a..3c5d999 100644
#include "xlcfeatures.h"
#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
#include "sunprofeatures.h"
+diff --git a/include/Random123/features/nvccfeatures.h b/include/Random123/features/nvccfeatures.h
+index d1ff8bf..179298c 100644
+--- a/include/Random123/features/nvccfeatures.h
++++ b/include/Random123/features/nvccfeatures.h
+@@ -116,7 +116,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #define R123_ULONG_LONG unsigned long long
+ #endif
+
+-#if defined(__GNUC__)
++#if defined(__xlC__) || defined(__ibmxl__)
++#include "xlcfeatures.h"
++#elif defined(__GNUC__)
+ #include "gccfeatures.h"
+ #elif defined(_MSC_FULL_VER)
+ #include "msvcfeatures.h"
diff --git a/var/spack/repos/builtin/packages/randrproto/package.py b/var/spack/repos/builtin/packages/randrproto/package.py
index a2dfed152f..b133c38913 100644
--- a/var/spack/repos/builtin/packages/randrproto/package.py
+++ b/var/spack/repos/builtin/packages/randrproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Randrproto(AutotoolsPackage, XorgPackage):
screens, so as to resize, rotate and reflect the root window of a screen.
"""
- homepage = "http://cgit.freedesktop.org/xorg/proto/randrproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/randrproto"
xorg_mirror_path = "proto/randrproto-1.5.0.tar.gz"
version('1.5.0', sha256='8f8a716d6daa6ba05df97d513960d35a39e040600bf04b313633f11679006fab')
diff --git a/var/spack/repos/builtin/packages/range-v3/package.py b/var/spack/repos/builtin/packages/range-v3/package.py
index 783c94852e..342a240bb2 100644
--- a/var/spack/repos/builtin/packages/range-v3/package.py
+++ b/var/spack/repos/builtin/packages/range-v3/package.py
@@ -1,13 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class RangeV3(CMakePackage):
"""Range v3 forms the basis of a proposal to add range support to the
@@ -48,7 +48,7 @@ class RangeV3(CMakePackage):
description='Use the specified C++ standard when building.')
variant('doc',
- default=True,
+ default=False,
description='Build and install documentation.')
variant('examples',
diff --git a/var/spack/repos/builtin/packages/rankstr/package.py b/var/spack/repos/builtin/packages/rankstr/package.py
index 98d7aea87f..6801904fd2 100644
--- a/var/spack/repos/builtin/packages/rankstr/package.py
+++ b/var/spack/repos/builtin/packages/rankstr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,12 +10,13 @@ class Rankstr(CMakePackage):
"""Assign one-to-one mapping of MPI ranks to strings"""
homepage = "https://github.com/ecp-veloc/rankstr"
- url = "https://github.com/ecp-veloc/rankstr/archive/v0.0.2.zip"
+ url = "https://github.com/ecp-veloc/rankstr/archive/v0.0.3.tar.gz"
git = "https://github.com/ecp-veloc/rankstr.git"
tags = ['ecp']
- version('master', branch='master')
+ version('main', branch='main')
+ version('0.0.3', sha256='d32052fbecd44299e13e69bf2dd7e5737c346404ccd784b8c2100ceed99d8cd3')
version('0.0.2', sha256='c16d53aa9bb79934cbe2dcd8612e2db7d59de80be500c104e39e8623d4eacd8e')
depends_on('mpi')
diff --git a/var/spack/repos/builtin/packages/rapidjson/package.py b/var/spack/repos/builtin/packages/rapidjson/package.py
index 12e2498a23..6b8987da91 100644
--- a/var/spack/repos/builtin/packages/rapidjson/package.py
+++ b/var/spack/repos/builtin/packages/rapidjson/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Rapidjson(CMakePackage):
"""A fast JSON parser/generator for C++ with both SAX/DOM style API"""
- homepage = "http://rapidjson.org"
+ homepage = "https://rapidjson.org"
url = "https://github.com/Tencent/rapidjson/archive/v1.1.0.tar.gz"
version('1.1.0', sha256='bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e')
diff --git a/var/spack/repos/builtin/packages/raptor2/package.py b/var/spack/repos/builtin/packages/raptor2/package.py
new file mode 100644
index 0000000000..161b939a38
--- /dev/null
+++ b/var/spack/repos/builtin/packages/raptor2/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2021 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 Raptor2(AutotoolsPackage):
+ """libraptor2 for parsing and serializing RDF syntaxes"""
+
+ homepage = "https://librdf.org/"
+ url = "https://download.librdf.org/source/raptor2-2.0.15.tar.gz"
+
+ version('2.0.15', sha256='ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed')
+
+ depends_on('libxml2')
diff --git a/var/spack/repos/builtin/packages/rasdaemon/package.py b/var/spack/repos/builtin/packages/rasdaemon/package.py
index 4acd6b8beb..4bcb377895 100644
--- a/var/spack/repos/builtin/packages/rasdaemon/package.py
+++ b/var/spack/repos/builtin/packages/rasdaemon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rasqal/package.py b/var/spack/repos/builtin/packages/rasqal/package.py
new file mode 100644
index 0000000000..ec2559614a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rasqal/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 Rasqal(AutotoolsPackage):
+ """Rasqal is a free software / Open Source C library that
+ handles Resource Description Framework (RDF) query language
+ syntaxes, query construction and execution of queries returning
+ results as bindings, boolean, RDF graphs/triples or syntaxes."""
+
+ homepage = "https://librdf.org/"
+ url = "https://download.librdf.org/source/rasqal-0.9.33.tar.gz"
+
+ version('0.9.33', sha256='6924c9ac6570bd241a9669f83b467c728a322470bf34f4b2da4f69492ccfd97c')
+ version('0.9.32', sha256='eeba03218e3b7dfa033934d523a1a64671a9a0f64eadc38a01e4b43367be2e8f')
+ version('0.9.31', sha256='28d743c9f1b0e5b0486ae4a945fa1e021c8495707e7adbfa0e232244b28b7fee')
+
+ depends_on('raptor2')
diff --git a/var/spack/repos/builtin/packages/ravel/package.py b/var/spack/repos/builtin/packages/ravel/package.py
index e9a3abb0e6..86c918a367 100644
--- a/var/spack/repos/builtin/packages/ravel/package.py
+++ b/var/spack/repos/builtin/packages/ravel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,13 +14,15 @@ class Ravel(CMakePackage):
url = 'https://github.com/llnl/ravel/archive/v1.0.0.tar.gz'
version('1.0.0', sha256='e1e1ac6d70c9aae915623d81a8f1258488fd26f880612fe21f2e032827aa93eb')
+ # See https://github.com/LLNL/ravel/pull/18
+ patch('qpainterpath.patch')
depends_on('cmake@2.8.9:', type='build')
depends_on('muster@1.0.1:')
depends_on('otf')
depends_on('otf2')
- depends_on('qt@5:')
+ depends_on('qt@5:+opengl')
def cmake_args(self):
return ['-Wno-dev']
diff --git a/var/spack/repos/builtin/packages/ravel/qpainterpath.patch b/var/spack/repos/builtin/packages/ravel/qpainterpath.patch
new file mode 100644
index 0000000000..208ecd67f3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ravel/qpainterpath.patch
@@ -0,0 +1,9 @@
+--- a/src/stepvis.cpp
++++ b/src/stepvis.cpp
+@@ -41,6 +41,7 @@
+ #include <QLocale>
+ #include <QMouseEvent>
+ #include <QWheelEvent>
++#include <QPainterPath>
+
+ #include "function.h" \ No newline at end of file
diff --git a/var/spack/repos/builtin/packages/raxml-ng/package.py b/var/spack/repos/builtin/packages/raxml-ng/package.py
new file mode 100644
index 0000000000..0eb57728d1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/raxml-ng/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 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 RaxmlNg(CMakePackage):
+ """RAxML-NG is a phylogenetic tree inference tool which uses
+ maximum-likelihood (ML) optimality criterion.
+
+ Its search heuristic is based on iteratively performing a series
+ of Subtree Pruning and Regrafting (SPR) moves,
+ which allows to quickly navigate to the best-known ML tree.
+ RAxML-NG is a successor of RAxML (Stamatakis 2014) and leverages
+ the highly optimized likelihood computation implemented in libpll
+ (Flouri et al. 2014)."""
+
+ homepage = "https://github.com/amkozlov/raxml-ng/wiki"
+ url = "https://github.com/amkozlov/raxml-ng/archive/1.0.1.tar.gz"
+ git = "https://github.com/amkozlov/raxml-ng.git"
+
+ version('1.0.2', submodules=True)
+ version('1.0.1', submodules=True)
+
+ variant("mpi", default=True, description="Use MPI")
+
+ depends_on('bison')
+ depends_on('flex')
+ depends_on('gmp')
+ depends_on('mpi', when='+mpi')
+
+ def cmake_args(self):
+ return [self.define_from_variant('USE_MPI', 'mpi')]
diff --git a/var/spack/repos/builtin/packages/raxml/package.py b/var/spack/repos/builtin/packages/raxml/package.py
index 7eb477dfc6..59f4fb969f 100644
--- a/var/spack/repos/builtin/packages/raxml/package.py
+++ b/var/spack/repos/builtin/packages/raxml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,9 @@ class Raxml(Package):
"""
homepage = "https://sco.h-its.org/exelixis/web/software/raxml"
- url = "https://github.com/stamatak/standard-RAxML/archive/v8.2.11.tar.gz"
+ url = "https://github.com/stamatak/standard-RAxML/archive/v8.2.12.tar.gz"
+ version('8.2.12', sha256='338f81b52b54e16090e193daf36c1d4baa9b902705cfdc7f4497e3e09718533b')
version('8.2.11', sha256='08cda74bf61b90eb09c229e39b1121c6d95caf182708e8745bd69d02848574d7')
variant('mpi', default=True, description='Enable MPI parallel support')
diff --git a/var/spack/repos/builtin/packages/ray/package.py b/var/spack/repos/builtin/packages/ray/package.py
index afa849e08d..b63328c855 100644
--- a/var/spack/repos/builtin/packages/ray/package.py
+++ b/var/spack/repos/builtin/packages/ray/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rccl/package.py b/var/spack/repos/builtin/packages/rccl/package.py
index 45b7b23090..aa3b8feb4d 100644
--- a/var/spack/repos/builtin/packages/rccl/package.py
+++ b/var/spack/repos/builtin/packages/rccl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,10 +13,17 @@ class Rccl(CMakePackage):
and reduce-scatter."""
homepage = "https://github.com/RadeonOpenCompute/rccl"
- url = "https://github.com/ROCmSoftwarePlatform/rccl/archive/rocm-3.7.0.tar.gz"
+ git = "https://github.com/RadeonOpenCompute/rccl.git"
+ url = "https://github.com/ROCmSoftwarePlatform/rccl/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='c5db71423dc654e8d2c3111e142e65c89436bc636827d95d41a09a87f44fe246')
+ version('4.3.0', sha256='b5231d8c5ab034a583feceebcef68d0cc0b05ec5a683f802fc7747c89f27d5f6')
+ version('4.2.0', sha256='2829fae40ebc1d8be201856d2193a941c87e9cf38dca0a2f4414e675c1742f20')
+ version('4.1.0', sha256='88ec9b43c31cb054fe6aa28bcc0f4b510213635268f951939d6980eee5bb3680')
+ version('4.0.0', sha256='0632a15b3d6b5981c05377cf4aeb51546f4c4901fd7c37fb0c98071851ad531a')
+ version('3.10.0', sha256='d9dd0b0d8b9d056fc5e6c7b814520800190952acd30dac3a7c462c4cb6f42bb3')
version('3.9.0', sha256='ff9d03154d668093309ff814a33788f2cc093b3c627e78e42ae246e6017408b0')
version('3.8.0', sha256='0b6676d06bdb1f65d511a95db9f842a3443def83d75759dfdf812b5e62d8c910')
version('3.7.0', sha256='8273878ff71aac2e7adf5cc8562d2933034c6c6b3652f88fbe3cd4f2691036e3')
@@ -25,14 +32,16 @@ class Rccl(CMakePackage):
patch('0001-Fix-numactl-path-issue.patch', when='@3.7.0:')
depends_on('cmake@3:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('hip@' + ver, type=('build', 'run'), when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type=('build', 'run'), when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
- if ver in ['3.7.0', '3.8.0', '3.9.0']:
- depends_on('numactl@2.0.12', type=('build', 'link'), when='@' + ver)
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('comgr@' + ver, when='@' + ver)
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
+
+ for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0',
+ '4.3.0', '4.3.1']:
+ depends_on('numactl@2:', when='@' + ver)
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
@@ -40,6 +49,12 @@ class Rccl(CMakePackage):
def cmake_args(self):
args = []
if '@3.7.0:' in self.spec:
- numactl_prefix = self.spec['numactl'].prefix
- args.append('-DNUMACTL_DIR={0}'.format(numactl_prefix))
+ args.append(self.define(
+ 'NUMACTL_DIR',
+ self.spec['numactl'].prefix
+ ))
+
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
return args
diff --git a/var/spack/repos/builtin/packages/rclone/package.py b/var/spack/repos/builtin/packages/rclone/package.py
index 8e043319f8..bd4013efb0 100644
--- a/var/spack/repos/builtin/packages/rclone/package.py
+++ b/var/spack/repos/builtin/packages/rclone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,15 @@ class Rclone(Package):
"""Rclone is a command line program to sync files and directories
to and from various cloud storage providers"""
- homepage = "http://rclone.org"
- url = "https://github.com/ncw/rclone/releases/download/v1.43/rclone-v1.43.tar.gz"
+ homepage = "https://rclone.org"
+ url = "https://github.com/ncw/rclone/releases/download/v1.56.1/rclone-v1.56.1.tar.gz"
+ maintainers = ['alecbcs']
+
+ version('1.56.1', sha256='090b4b082caa554812f341ae26ea6758b40338836122595d6283c60c39eb5a97')
+ version('1.56.0', sha256='81d2eda23ebaad0a355aab6ff030712470a42505b94c01c9bb5a9ead9168cedb')
+ version('1.55.1', sha256='25da7fc5c9269b3897f27b0d946919df595c6dda1b127085fda0fe32aa59d29d')
+ version('1.55.0', sha256='75accdaedad3b82edc185dc8824a19a59c30dc6392de7074b6cd98d1dc2c9040')
version('1.51.0', sha256='3eb5b7ffce17e56fadb29bf854666723a14c93fedc02046c7f34c792dbd227ee')
version('1.50.2', sha256='6dd8998a72514d3820d241ae46dc609c0305b742aee3db6aaf6017b46c996091')
version('1.50.1', sha256='48d6c80883427469682b4d97099d7631cf3b67aa85e652c254423bd1422ce216')
diff --git a/var/spack/repos/builtin/packages/rdc/package.py b/var/spack/repos/builtin/packages/rdc/package.py
index 86f0fc3d6a..37736b3ba6 100644
--- a/var/spack/repos/builtin/packages/rdc/package.py
+++ b/var/spack/repos/builtin/packages/rdc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,18 +11,35 @@ class Rdc(CMakePackage):
"""ROCm Data Center Tool"""
homepage = "https://github.com/RadeonOpenCompute/rdc"
- url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-3.8.0.tar.gz"
+ url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ def url_for_version(self, version):
+ if version == Version('3.9.0'):
+ return "https://github.com/RadeonOpenCompute/rdc/archive/rdc_so_ver-0.3.tar.gz"
+
+ url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-{0}.tar.gz"
+ return url.format(version)
+
+ version('4.3.1', sha256='aae028aae61eb0f4dd30708c4bbb8c5c57a426f10dae9b967b81500fb106d981')
+ version('4.3.0', sha256='d3dda2022ec1f8c7de4de64696009125a903fcb2f82c38b3ac07e4ab35bf9190')
+ version('4.2.0', sha256='ea2c7c07d55f607968f58d7e30326cae5db5b48c1ba354caa5727394d5bad258')
+ version('4.1.0', sha256='dc81ee9727c8913c05dcf20a00669ce611339ef6d6db8af34e57f42bcfa804ac')
+ version('4.0.0', sha256='e9ebfc46dfa983400909ed8a9da4fa37869ab118a8426c2e4f793e21174ca07f')
+ version('3.10.0', sha256='fdc51f9f1f756406d1e2ffaeee0e247d1b04fc4078f08e581bbaa7da79697ac1')
+ version('3.9.0', sha256='bc6339e7f41850a4a049d085a880cfafd3fd8e1610fb94c572d79753d01aa298')
version('3.8.0', sha256='d0d0a0e68a848b7a8fa2d88c1d0352ce68e1e142debf32c31d941904f03c4b2f')
- depends_on('cmake@3.15:', type='build')
+ depends_on('cmake@3.15:3.19.7', type='build')
depends_on('grpc@1.28.1+shared', type='build')
depends_on('protobuf', type=('build', 'link'))
- depends_on('rocm-smi-lib@3.8.0', type=('build', 'link'))
depends_on('libcap', type=('build', 'link'))
+ for ver in ['3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0',
+ '4.3.0', '4.3.1']:
+ depends_on('rocm-smi-lib@' + ver, type=('build', 'link'), when='@' + ver)
+
def patch(self):
filter_file(
r'\${ROCM_DIR}/rocm_smi', '${ROCM_SMI_DIR}', 'CMakeLists.txt')
diff --git a/var/spack/repos/builtin/packages/rdkit/package.py b/var/spack/repos/builtin/packages/rdkit/package.py
new file mode 100644
index 0000000000..2be3632dc7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rdkit/package.py
@@ -0,0 +1,41 @@
+# Copyright 2013-2021 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 Rdkit(CMakePackage):
+ """RDKit is a collection of cheminformatics and machine-learning
+ software written in C++ and Python."""
+
+ homepage = "https://www.rdkit.org"
+ url = "https://github.com/rdkit/rdkit/archive/refs/tags/Release_2021_03_2.tar.gz"
+
+ maintainers = ['bvanessen']
+
+ version('2021_03_2', sha256='9907a745405cc915c65504046e446199f8ad03d870714de57c27d3738f330fe4')
+ version('2021_03_1b1', sha256='2cd0673b289ba756c76a1bf57cf19e147ac4a9f6ecf9e79cc3dd86c8d39be414')
+ version('2021_03_1', sha256='9495f797a54ac70b3b6e12776de7d82acd7f7b5d5f0cc1f168c763215545610b')
+ version('2020_09_5', sha256='85cec9618e7ef6365b9b908ed674c073d898b6627521cc7fd8c2e05fea8a5def')
+ version('2020_09_4', sha256='9e734ca8f99d8be1ef2ac51efb67c393c62e88b98cfa550d6173ce3eaa87b559')
+ version('2020_09_3', sha256='aa95bf3cbeef287eeb6d9759ff0992d2f92f2171b1758af71b7c9a0ec97a0660')
+ version('2020_09_2', sha256='44663970859c0ec993f94a56b692231557df02c267853a2ee3c1f609cef93ae9')
+ version('2020_09_1b1', sha256='d9d836dc38cc45db44698e33325901452c94df9add10dd2675674594af1b73c2')
+ version('2020_09_1', sha256='ac105498be52ff77f7e9328c41d0e61a2318cac0789d6efc30f5f50dc78a992c')
+ version('2020_03_6', sha256='a3663295a149aa0307ace6d1995094d0334180bc8f892fa325558a110154272b')
+
+ depends_on('python@3:')
+ depends_on('boost@1.53.0: +python +serialization')
+
+ depends_on('py-numpy')
+ depends_on('sqlite')
+
+ extends("python")
+
+ def cmake_args(self):
+ args = ['-DCMAKE_CXX_STANDARD=14',
+ '-DRDK_INSTALL_INTREE=OFF']
+ return args
diff --git a/var/spack/repos/builtin/packages/rdma-core/package.py b/var/spack/repos/builtin/packages/rdma-core/package.py
index 0e09e7d210..dbce0ca1a0 100644
--- a/var/spack/repos/builtin/packages/rdma-core/package.py
+++ b/var/spack/repos/builtin/packages/rdma-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,8 @@ class RdmaCore(CMakePackage):
homepage = "https://github.com/linux-rdma/rdma-core"
url = "https://github.com/linux-rdma/rdma-core/releases/download/v17.1/rdma-core-17.1.tar.gz"
+ version('34.0', sha256='3d9ccf66468cf78f4c39bebb8bd0c5eb39150ded75f4a88a3455c4f625408be8')
+ version('33.1', sha256='d179b102bec551ce62265ed463d1095fb2ae9baff604261ad63327fcd20650e5')
version('32.0', sha256='8197e20a59990b9b06a2e4c83f4a96802fc080ec1669392b643b59b6023931fc')
version('31.0', sha256='51ae9a3ab81cd6834436813fafc310c8b7007feae9d09a53fdd5c169e648d50b')
version('30.0', sha256='23e1bd2d7b38149a1621ee577a3428ac652e305adb8e0eee923cbe71356a9bf9')
@@ -36,7 +38,11 @@ class RdmaCore(CMakePackage):
# system path) as a component in compile-time static strings such as
# IBACM_SERVER_PATH.
def cmake_args(self):
- cmake_args = ["-DCMAKE_INSTALL_SYSCONFDIR=" +
- self.spec.prefix.etc,
- "-DCMAKE_INSTALL_RUNDIR=/var/run"]
+ cmake_args = [
+ '-DCMAKE_INSTALL_SYSCONFDIR={0}'.format(self.spec.prefix.etc),
+ '-DCMAKE_INSTALL_RUNDIR=/var/run',
+ '-DPYTHON_LIBRARY={0}'.format(self.spec['python'].libs[0]),
+ '-DPYTHON_INCLUDE_DIR={0}'
+ .format(self.spec['python'].headers.directories[0])
+ ]
return cmake_args
diff --git a/var/spack/repos/builtin/packages/rdp-classifier/package.py b/var/spack/repos/builtin/packages/rdp-classifier/package.py
index 2895010cd7..c5afc4ea6c 100644
--- a/var/spack/repos/builtin/packages/rdp-classifier/package.py
+++ b/var/spack/repos/builtin/packages/rdp-classifier/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rdptools/package.py b/var/spack/repos/builtin/packages/rdptools/package.py
index 5f5957c8b1..2c47980921 100644
--- a/var/spack/repos/builtin/packages/rdptools/package.py
+++ b/var/spack/repos/builtin/packages/rdptools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/re2/package.py b/var/spack/repos/builtin/packages/re2/package.py
index 0ffd9096ca..61a5d595ef 100644
--- a/var/spack/repos/builtin/packages/re2/package.py
+++ b/var/spack/repos/builtin/packages/re2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,5 +13,15 @@ class Re2(CMakePackage):
homepage = "https://github.com/google/re2"
url = "https://github.com/google/re2/archive/2020-08-01.tar.gz"
+ version('2021-06-01', sha256='26155e050b10b5969e986dab35654247a3b1b295e0532880b5a9c13c0a700ceb')
version('2020-08-01', sha256='6f4c8514249cd65b9e85d3e6f4c35595809a63ad71c5d93083e4d1dcdf9e0cd6')
version('2020-04-01', sha256='98794bc5416326817498384a9c43cbb5a406bab8da9f84f83c39ecad43ed5cea')
+
+ variant('shared', default=False,
+ description='Build shared instead of static libraries')
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared')
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/re2c/package.py b/var/spack/repos/builtin/packages/re2c/package.py
index 976fc17d39..7cf713c4ce 100644
--- a/var/spack/repos/builtin/packages/re2c/package.py
+++ b/var/spack/repos/builtin/packages/re2c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,11 +10,26 @@ from spack import *
class Re2c(AutotoolsPackage):
"""re2c: a free and open-source lexer generator for C and C++"""
- homepage = "http://re2c.org/index.html"
+ homepage = "https://re2c.org/index.html"
url = "https://github.com/skvadrik/re2c/releases/download/1.2.1/re2c-1.2.1.tar.xz"
+ version('2.2', sha256='0fc45e4130a8a555d68e230d1795de0216dfe99096b61b28e67c86dfd7d86bda')
+ version('2.1.1', sha256='036ee264fafd5423141ebd628890775aa9447a4c4068a6307385d7366fe711f8')
+ version('2.1', sha256='8cba0d95c246c670de8f97f57def83a9c0f2113eaa6f7e4867a941f48f633540')
+ version('2.0.3', sha256='b2bc1eb8aaaa21ff2fcd26507b7e6e72c5e3d887e58aa515c2155fb17d744278')
+ version('2.0.2', sha256='6cddbb558dbfd697a729cb4fd3f095524480283b89911ca5221835d8a67ae5e0')
+ version('2.0.1', sha256='aef8b50bb75905b2d55a7236380c0efdc756fa077fe16d808aaacbb10fb53531')
+ version('2.0', sha256='89a9d7ee14be10e3779ea7b2c8ea4a964afce6e76b8dbcd5479940681db46d20')
+ version('1.3', sha256='f37f25ff760e90088e7d03d1232002c2c2672646d5844fdf8e0d51a5cd75a503')
version('1.2.1', sha256='1a4cd706b5b966aeffd78e3cf8b24239470ded30551e813610f9cd1a4e01b817')
def configure_args(self):
- args = ['--disable-dependency-tracking']
- return args
+ return [
+ '--disable-benchmarks',
+ '--disable-debug',
+ '--disable-dependency-tracking',
+ '--disable-docs',
+ '--disable-lexers', # requires existing system re2c
+ '--disable-libs', # experimental
+ '--enable-golang',
+ ]
diff --git a/var/spack/repos/builtin/packages/readfq/package.py b/var/spack/repos/builtin/packages/readfq/package.py
index ce06114ba2..69ebb9e667 100644
--- a/var/spack/repos/builtin/packages/readfq/package.py
+++ b/var/spack/repos/builtin/packages/readfq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/readline/package.py b/var/spack/repos/builtin/packages/readline/package.py
index d4e95c8037..ed0800c3ae 100644
--- a/var/spack/repos/builtin/packages/readline/package.py
+++ b/var/spack/repos/builtin/packages/readline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,14 +18,23 @@ class Readline(AutotoolsPackage, GNUMirrorPackage):
# URL must remain http:// so Spack can bootstrap curl
gnu_mirror_path = "readline/readline-8.0.tar.gz"
+ version('8.1', sha256='f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02')
version('8.0', sha256='e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461')
version('7.0', sha256='750d437185286f40a369e1e4f4764eda932b9459b5ec9a731628393dd3d32334')
version('6.3', sha256='56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43')
depends_on('ncurses')
- # from url=http://www.linuxfromscratch.org/patches/downloads/readline/readline-6.3-upstream_fixes-1.patch
+ # from url=https://www.linuxfromscratch.org/patches/downloads/readline/readline-6.3-upstream_fixes-1.patch
# this fixes a bug that could lead to seg faults in ipython
patch('readline-6.3-upstream_fixes-1.patch', when='@6.3')
def build(self, spec, prefix):
make('SHLIB_LIBS=' + spec['ncurses'].libs.ld_flags)
+
+ def patch(self):
+ # Remove flags not recognized by the NVIDIA compiler
+ if self.spec.satisfies('%nvhpc'):
+ filter_file('${GCC+-Wno-parentheses}', '', 'configure',
+ string=True)
+ filter_file('${GCC+-Wno-format-security}', '', 'configure',
+ string=True)
diff --git a/var/spack/repos/builtin/packages/recola-sm/package.py b/var/spack/repos/builtin/packages/recola-sm/package.py
new file mode 100644
index 0000000000..04113ca8af
--- /dev/null
+++ b/var/spack/repos/builtin/packages/recola-sm/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 RecolaSm(CMakePackage):
+ """Standard Model files for the Recola generator."""
+
+ tags = ['hep']
+
+ homepage = "https://recola.gitlab.io/recola2/modelfiles/modelfiles.html"
+ url = "https://recola.hepforge.org/downloads/?f=SM_2.2.3.tar.gz"
+
+ maintainers = ['vvolkl']
+
+ version('2.2.3', sha256='9ebdc4fd8ca48789de0b6bbb2ab7e4845c92d19dfe0c3f67866cbf114d6242a5')
+
+ depends_on('collier')
+
+ def cmake_args(self):
+ args = ['-Dstatic=ON']
+ return args
diff --git a/var/spack/repos/builtin/packages/recola/package.py b/var/spack/repos/builtin/packages/recola/package.py
new file mode 100644
index 0000000000..549563ed0b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/recola/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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 Recola(CMakePackage):
+ """REcursive Computation of One-Loop Amplitudes:
+ a fortran library for the perturbative computation of
+ next-to-leading-order transition amplitudes in the
+ Standard Model of particle physics."""
+
+ tags = ['hep']
+
+ homepage = "https://recola.hepforge.org"
+ url = "https://recola.hepforge.org/downloads/?f=recola2-2.2.3.tar.gz"
+
+ maintainers = ['vvolkl']
+
+ variant('python', default=True,
+ description="Build py-recola python bindings.")
+
+ version('2.2.3', sha256='db0f5e448ed603ac4073d4bbf36fd74f401a22876ad390c0d02c815a78106c5f')
+
+ depends_on('collier')
+ depends_on('recola-sm')
+ depends_on('python@3:', when='+python')
+
+ def cmake_args(self):
+ args = [
+ '-DCMAKE_VERBOSE_MAKEFILE=ON',
+ self.define_from_variant("with_python3", 'python'),
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/recon/package.py b/var/spack/repos/builtin/packages/recon/package.py
index 68f3c37f98..1baa549933 100644
--- a/var/spack/repos/builtin/packages/recon/package.py
+++ b/var/spack/repos/builtin/packages/recon/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 symlink
+from spack import *
+
class Recon(MakefilePackage):
"""RECON: a package for automated de novo identification of repeat families
diff --git a/var/spack/repos/builtin/packages/recorder/package.py b/var/spack/repos/builtin/packages/recorder/package.py
index c4abc67977..1fe0a722e4 100644
--- a/var/spack/repos/builtin/packages/recorder/package.py
+++ b/var/spack/repos/builtin/packages/recorder/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,14 @@ class Recorder(AutotoolsPackage):
homepage = "https://github.com/uiuc-hpc/Recorder"
url = "https://github.com/uiuc-hpc/Recorder/archive/v2.1.4.tar.gz"
+ git = "https://github.com/uiuc-hpc/Recorder.git"
maintainers = ['wangvsa']
+ version('master', branch='master')
+ version('pilgrim', branch='pilgrim')
+ version('2.2.1', sha256='90634a580f075e9773cab4e46eb56459e917df1676b01655dec5f61e9d6b9bea')
+ version('2.2.0', sha256='b47c208c18e615e0087486cc448f904d8ce7dbcc2535d06e185b5d28ad6e80f8')
version('2.1.6', sha256='35985a0cb456d806952bf68f05127026f0dd8e26f70d725ae5cc37f109600889')
version('2.1.5', sha256='6d2f8b942f61da498e25327e79c1a25b2244f4f78a9cf5482fb4aaa32d7332a1')
version('2.1.4', sha256='f66756595a7f310929c247ae03fd08a18d9843f578fffa1e3072f557bf5a158e')
diff --git a/var/spack/repos/builtin/packages/recordproto/package.py b/var/spack/repos/builtin/packages/recordproto/package.py
index 4067ddaacb..6fd63c79f0 100644
--- a/var/spack/repos/builtin/packages/recordproto/package.py
+++ b/var/spack/repos/builtin/packages/recordproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Recordproto(AutotoolsPackage, XorgPackage):
This extension defines a protocol for the recording and playback of user
actions in the X Window System."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/recordproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/recordproto"
xorg_mirror_path = "proto/recordproto-1.14.2.tar.gz"
version('1.14.2', sha256='485f792570dd7afe49144227f325bf2827bc7d87aae6a8ab6c1de2b06b1c68c5')
diff --git a/var/spack/repos/builtin/packages/redis/package.py b/var/spack/repos/builtin/packages/redis/package.py
index d7375066fd..28c78b9dda 100644
--- a/var/spack/repos/builtin/packages/redis/package.py
+++ b/var/spack/repos/builtin/packages/redis/package.py
@@ -1,13 +1,11 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Redis(MakefilePackage):
"""Redis is an open source (BSD licensed), in-memory data structure store,
used as a database, cache and message broker.
-
It supports data structures such as strings, hashes, lists, sets, sorted
sets with range queries, bitmaps, hyperloglogs, geospatial indexes with
radius queries and streams. Redis has built-in replication, Lua scripting,
@@ -15,10 +13,17 @@ class Redis(MakefilePackage):
and provides high availability via Redis Sentinel and automatic
partitioning with Redis Cluster
"""
-
homepage = "https://redis.io"
- url = "http://download.redis.io/releases/redis-5.0.3.tar.gz"
+ url = "https://download.redis.io/releases/redis-6.2.5.tar.gz"
+ version('6.2.5', sha256='4b9a75709a1b74b3785e20a6c158cab94cf52298aa381eea947a678a60d551ae')
+ version('6.2.4', sha256='ba32c406a10fc2c09426e2be2787d74ff204eb3a2e496d87cff76a476b6ae16e')
+ version('6.2.3', sha256='98ed7d532b5e9671f5df0825bb71f0f37483a16546364049384c63db8764512b')
+ version('6.2.2', sha256='7a260bb74860f1b88c3d5942bf8ba60ca59f121c6dce42d3017bed6add0b9535')
+ version('6.2.1', sha256='cd222505012cce20b25682fca931ec93bd21ae92cb4abfe742cf7b76aa907520')
+ version('6.2.0', sha256='67d624c25d962bd68aff8812a135df85bad07556b8825f3bcd5b522a9932dbca')
+ version('6.0.15', sha256='4bc295264a95bc94423c162a9eee66135a24a51eefe5f53f18fc9bde5c3a9f74')
+ version('6.0.5', sha256='42cf86a114d2a451b898fcda96acd4d01062a7dbaaad2801d9164a36f898f596')
version('5.0.3', sha256='e290b4ddf817b26254a74d5d564095b11f9cd20d8f165459efa53eb63cd93e02')
version('5.0.2', sha256='937dde6164001c083e87316aa20dad2f8542af089dfcb1cbb64f9c8300cd00ed')
version('5.0.1', sha256='82a67c0eec97f9ad379384c30ec391b269e17a3e4596393c808f02db7595abcb')
diff --git a/var/spack/repos/builtin/packages/reditools/REDItoolDenovo.py.patch b/var/spack/repos/builtin/packages/reditools/REDItoolDenovo.py.patch
deleted file mode 100644
index a88358829c..0000000000
--- a/var/spack/repos/builtin/packages/reditools/REDItoolDenovo.py.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/main/REDItoolDenovo.py 2020-07-16 17:35:46.008030346 -0500
-+++ b/main/REDItoolDenovo.py 2020-07-16 17:38:39.700035490 -0500
-@@ -768,7 +768,7 @@
- for j in ridxinfo.split('\n'): #MOD
- l=(j.strip()).split('\t')
- if l[0] in ['*', '']: continue #MOD
-- if int(l[2])+int(l[3]) > 0: rrefs[l[0]]=int(l[1])
-+ if int(l[2])+int(l[3]) > 0: rrefs[l[0]]=int(l[1])
- frefs=[]
- fidxinfo=open(fastafile+'.fai')
- for j in fidxinfo:
diff --git a/var/spack/repos/builtin/packages/reditools/batch_sort.patch b/var/spack/repos/builtin/packages/reditools/batch_sort.patch
new file mode 100644
index 0000000000..a319d9619e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/reditools/batch_sort.patch
@@ -0,0 +1,168 @@
+diff -ru a/accessory/GFFtoTabix.py b/accessory/GFFtoTabix.py
+--- a/accessory/GFFtoTabix.py 2021-05-19 15:28:02.000000000 -0500
++++ b/accessory/GFFtoTabix.py 2021-05-20 16:06:25.187316573 -0500
+@@ -102,7 +102,7 @@
+ chunks = []
+ xx=0
+ try:
+- with open(input,'rb',64*1024) as input_file:
++ with open(input,'r',64*1024) as input_file:
+ input_iterator = iter(input_file)
+ for tempdir in cycle(tempdirs):
+ current_chunk2=[]
+@@ -119,13 +119,13 @@
+ xx+=len(current_chunk3)
+ if not current_chunk3: break
+ sys.stdout.write("Loaded and sorted %i lines.\n"%(xx))
+- output_chunk = open(os.path.join(tempdir,'%06i_%s'%(len(chunks),pid)),'w+b',64*1024)
++ output_chunk = open(os.path.join(tempdir,'%06i_%s'%(len(chunks),pid)),'w+',64*1024)
+ chunks.append(output_chunk)
+ output_chunk.writelines(current_chunk3)
+ output_chunk.flush()
+ output_chunk.seek(0)
+ sys.stdout.write("Merging from %i files.\n"%(len(chunks)))
+- with open(output,'wb',64*1024) as output_file:
++ with open(output,'w',64*1024) as output_file:
+ output_file.writelines(merge(key, *chunks))
+ finally:
+ for chunk in chunks:
+@@ -150,4 +150,4 @@
+ sys.stdout.write("Tabix file saved on %s.\n" %(GFFfile))
+ sys.stdout.write("Indices saved on %s.tbi.\n" %(GFFfile))
+ script_time=time.strftime("%d/%m/%Y %H:%M:%S", time.localtime(time.time()))
+-sys.stdout.write("Script time --> END: %s\n"%(script_time))
+\ No newline at end of file
++sys.stdout.write("Script time --> END: %s\n"%(script_time))
+diff -ru a/accessory/SortGFF.py b/accessory/SortGFF.py
+--- a/accessory/SortGFF.py 2021-05-19 15:28:02.000000000 -0500
++++ b/accessory/SortGFF.py 2021-05-20 16:06:01.023238792 -0500
+@@ -102,7 +102,7 @@
+ chunks = []
+ xx=0
+ try:
+- with open(input,'rb',64*1024) as input_file:
++ with open(input,'r',64*1024) as input_file:
+ input_iterator = iter(input_file)
+ for tempdir in cycle(tempdirs):
+ current_chunk2=[]
+@@ -119,13 +119,13 @@
+ xx+=len(current_chunk3)
+ if not current_chunk3: break
+ sys.stdout.write("Loaded and sorted %i lines.\n"%(xx))
+- output_chunk = open(os.path.join(tempdir,'%06i_%s'%(len(chunks),pid)),'w+b',64*1024)
++ output_chunk = open(os.path.join(tempdir,'%06i_%s'%(len(chunks),pid)),'w+',64*1024)
+ chunks.append(output_chunk)
+ output_chunk.writelines(current_chunk3)
+ output_chunk.flush()
+ output_chunk.seek(0)
+ sys.stdout.write("Merging from %i files.\n"%(len(chunks)))
+- with open(output,'wb',64*1024) as output_file:
++ with open(output,'w',64*1024) as output_file:
+ output_file.writelines(merge(key, *chunks))
+ finally:
+ for chunk in chunks:
+@@ -140,4 +140,4 @@
+ batch_sort(GFFfile,outfile,key_,buffer_size,tempdirs)
+ sys.stdout.write("Sorted GFF saved on %s\n"%(outfile))
+ script_time=time.strftime("%d/%m/%Y %H:%M:%S", time.localtime(time.time()))
+-sys.stdout.write("Script time --> END: %s\n"%(script_time))
+\ No newline at end of file
++sys.stdout.write("Script time --> END: %s\n"%(script_time))
+diff -ru a/accessory/SortTable.py b/accessory/SortTable.py
+--- a/accessory/SortTable.py 2021-05-19 15:28:02.000000000 -0500
++++ b/accessory/SortTable.py 2021-05-20 16:05:35.857157751 -0500
+@@ -122,7 +122,7 @@
+ chunks = []
+ xx=0
+ try:
+- with open(input,'rb',64*1024) as input_file:
++ with open(input,'r',64*1024) as input_file:
+ input_iterator = iter(input_file)
+ for tempdir in cycle(tempdirs):
+ current_chunk2=[]
+@@ -142,13 +142,13 @@
+ xx+=len(current_chunk3)
+ if not current_chunk3: break
+ sys.stdout.write("Loaded and sorted %i lines.\n"%(xx))
+- output_chunk = open(os.path.join(tempdir,'%06i_%s'%(len(chunks),pid)),'w+b',64*1024)
++ output_chunk = open(os.path.join(tempdir,'%06i_%s'%(len(chunks),pid)),'w+',64*1024)
+ chunks.append(output_chunk)
+ output_chunk.writelines(current_chunk3)
+ output_chunk.flush()
+ output_chunk.seek(0)
+ sys.stdout.write("Merging from %i files.\n"%(len(chunks)))
+- with open(output,'wb',64*1024) as output_file:
++ with open(output,'w',64*1024) as output_file:
+ output_file.writelines(merge(key, *chunks))
+ finally:
+ for chunk in chunks:
+@@ -163,4 +163,4 @@
+ batch_sort(GFFfile,outfile,key_,buffer_size,tempdirs)
+ sys.stdout.write("Sorted GFF saved on %s\n"%(outfile))
+ script_time=time.strftime("%d/%m/%Y %H:%M:%S", time.localtime(time.time()))
+-sys.stdout.write("Script time --> END: %s\n"%(script_time))
+\ No newline at end of file
++sys.stdout.write("Script time --> END: %s\n"%(script_time))
+diff -ru a/accessory/TableToGFF.py b/accessory/TableToGFF.py
+--- a/accessory/TableToGFF.py 2021-05-19 15:28:02.000000000 -0500
++++ b/accessory/TableToGFF.py 2021-05-20 16:05:11.309078667 -0500
+@@ -104,7 +104,7 @@
+ chunks = []
+ xx=0
+ try:
+- with open(input,'rb',64*1024) as input_file:
++ with open(input,'r',64*1024) as input_file:
+ input_iterator = iter(input_file)
+ for tempdir in cycle(tempdirs):
+ current_chunk2=[]
+@@ -121,13 +121,13 @@
+ xx+=len(current_chunk3)
+ if not current_chunk3: break
+ sys.stdout.write("Loaded and sorted %i lines.\n"%(xx))
+- output_chunk = open(os.path.join(tempdir,'%06i_%s'%(len(chunks),pid)),'w+b',64*1024)
++ output_chunk = open(os.path.join(tempdir,'%06i_%s'%(len(chunks),pid)),'w+',64*1024)
+ chunks.append(output_chunk)
+ output_chunk.writelines(current_chunk3)
+ output_chunk.flush()
+ output_chunk.seek(0)
+ sys.stdout.write("Merging from %i files.\n"%(len(chunks)))
+- with open(output,'wb',64*1024) as output_file:
++ with open(output,'w',64*1024) as output_file:
+ output_file.writelines(merge(key, *chunks))
+ finally:
+ for chunk in chunks:
+diff -ru a/accessory/tableToTabix.py b/accessory/tableToTabix.py
+--- a/accessory/tableToTabix.py 2021-05-19 15:28:02.000000000 -0500
++++ b/accessory/tableToTabix.py 2021-05-20 16:04:45.468995382 -0500
+@@ -117,7 +117,7 @@
+ chunks = []
+ xx=0
+ try:
+- with open(input,'rb',64*1024) as input_file:
++ with open(input,'r',64*1024) as input_file:
+ input_iterator = iter(input_file)
+ for tempdir in cycle(tempdirs):
+ current_chunk2=[]
+@@ -136,13 +136,13 @@
+ xx+=len(current_chunk3)
+ if not current_chunk3: break
+ sys.stdout.write("Loaded and sorted %i lines.\n"%(xx))
+- output_chunk = open(os.path.join(tempdir,'%06i_%s'%(len(chunks),pid)),'w+b',64*1024)
++ output_chunk = open(os.path.join(tempdir,'%06i_%s'%(len(chunks),pid)),'w+',64*1024)
+ chunks.append(output_chunk)
+ output_chunk.writelines(current_chunk3)
+ output_chunk.flush()
+ output_chunk.seek(0)
+ sys.stdout.write("Merging from %i files.\n"%(len(chunks)))
+- with open(output,'wb',64*1024) as output_file:
++ with open(output,'w',64*1024) as output_file:
+ output_file.writelines(merge(key, *chunks))
+ finally:
+ for chunk in chunks:
+@@ -167,4 +167,4 @@
+ sys.stdout.write("Tabix file saved on %s.\n" %(GFFfile))
+ sys.stdout.write("Indices saved on %s.tbi.\n" %(GFFfile))
+ script_time=time.strftime("%d/%m/%Y %H:%M:%S", time.localtime(time.time()))
+-sys.stdout.write("Script time --> END: %s\n"%(script_time))
+\ No newline at end of file
++sys.stdout.write("Script time --> END: %s\n"%(script_time))
diff --git a/var/spack/repos/builtin/packages/reditools/package.py b/var/spack/repos/builtin/packages/reditools/package.py
index 7dd0197a51..64df6ffce8 100644
--- a/var/spack/repos/builtin/packages/reditools/package.py
+++ b/var/spack/repos/builtin/packages/reditools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,14 +19,65 @@ class Reditools(PythonPackage):
homepage = "https://github.com/BioinfoUNIBA/REDItools"
git = "https://github.com/BioinfoUNIBA/REDItools.git"
+ maintainers = ['glennpj']
+
+ version('1.3_2020-08-03', commit='2dc71277a25e667797c363d1fca22726249774a3')
version('1.3_2020-03-20', commit='cf47f3d54f324aeb9650bcf8bfacf5a967762a55')
- depends_on('py-pysam', type=('build', 'run'))
- depends_on('py-fisher', type=('build', 'run'))
+ variant('nature_protocol', default=False,
+ description='Install the Nature Protocol scripts and files')
+
+ depends_on('py-reindent', type='build', when='^python@3:')
depends_on('blat', type='run')
+ depends_on('py-fisher', type='run')
+ depends_on('py-numpy', type='run')
+ depends_on('py-pandas', type='run')
+ depends_on('py-pysam', type='run')
+ depends_on('py-scipy', type='run')
depends_on('tabix', type='run')
- patch('REDItoolDenovo.py.patch')
+ # Nature Protocol
+ depends_on('bcftools', type='run', when='+nature_protocol')
+ depends_on('bedtools2', type='run', when='+nature_protocol')
+ depends_on('bwa', type='run', when='+nature_protocol')
+ depends_on('bzip2', type='run', when='+nature_protocol')
+ depends_on('fastp', type='run', when='+nature_protocol')
+ depends_on('fastqc', type='run', when='+nature_protocol')
+ depends_on('git', type='run', when='+nature_protocol')
+ depends_on('gmap-gsnap', type='run', when='+nature_protocol')
+ depends_on('htslib', type='run', when='+nature_protocol')
+ depends_on('libdeflate', type='run', when='+nature_protocol')
+ depends_on('py-bx-python', type='run', when='+nature_protocol')
+ depends_on('py-rseqc', type='run', when='+nature_protocol')
+ depends_on('samtools', type='run', when='+nature_protocol')
+ depends_on('star', type='run', when='+nature_protocol')
+ depends_on('wget', type='run', when='+nature_protocol')
+
patch('interpreter.patch')
patch('setup.py.patch')
- patch('python2to3.patch', when='^python@3:')
+ patch('batch_sort.patch', when='^python@3:')
+
+ @run_before('build')
+ def p2_to_p3(self):
+ if '^python@3:' in self.spec:
+ # clean up space/tab mixing
+ reindent = which('reindent')
+ reindent('--nobackup', '--recurse', '.')
+
+ # convert to be python3 compatible
+ p2_to_p3 = which('2to3')
+ p2_to_p3('--nobackups', '--write', '.')
+
+ @run_after('install')
+ def nature_protocol(self):
+ if '+nature_protocol' in self.spec:
+ mkdirp(prefix.NPfiles)
+ install_tree('NPfiles', prefix.NPfiles)
+
+ ignore_files = [
+ 'conda_pckg_installer_docker.py',
+ 'conda_pckgs_installer.py',
+ 'download-prepare-data-NP_docker.py',
+ ]
+ docker_conda = lambda p: p in ignore_files
+ install_tree('NPscripts', prefix.bin, ignore=docker_conda)
diff --git a/var/spack/repos/builtin/packages/reditools/python2to3.patch b/var/spack/repos/builtin/packages/reditools/python2to3.patch
deleted file mode 100644
index 94937d175d..0000000000
--- a/var/spack/repos/builtin/packages/reditools/python2to3.patch
+++ /dev/null
@@ -1,926 +0,0 @@
-diff -ru a/accessory/AnnotateTable.py b/accessory/AnnotateTable.py
---- a/accessory/AnnotateTable.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/AnnotateTable.py 2020-07-16 16:17:22.159013630 -0500
-@@ -28,7 +28,7 @@
- sys.stderr.write('Pysam version used: %s\n' %(pysamVersion))
-
- def usage():
-- print """
-+ print("""
- USAGE: python AnnotateTable.py [options]
- Options:
- -a Sorted Annotation file
-@@ -44,12 +44,12 @@
- -C Columns with base distribution [7,12] (in combination with -S)
- -o Save lines to a file
- -h Print this help
--"""
-+""")
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], 'i:a:o:hs:c:n:SC:uk:r:',["help"])
--except getopt.GetoptError, err:
-- print str(err)
-+except getopt.GetoptError as err:
-+ print(str(err))
- usage()
- sys.exit()
-
-@@ -101,7 +101,7 @@
- a={'A':'T','T':'A','C':'G','G':'C'}
- ss=''
- for i in s.upper():
-- if a.has_key(i): ss+=a[i]
-+ if i in a: ss+=a[i]
- elif i==' ': ss+=' '
- elif i=='-': ss+='-'
- else: ss+='N'
-@@ -125,23 +125,23 @@
- anns='+'
- for i in res:
- if i[3]=='+':
-- if d['+'].has_key(i[1]):
-+ if i[1] in d['+']:
- if i[0] not in d['+'][i[1]][0]: d['+'][i[1]][0]=d['+'][i[1]][0]+','+i[0]
- if i[2]+'-'+i[0] not in d['+'][i[1]][1]: d['+'][i[1]][1]=d['+'][i[1]][1]+','+i[2]+'-'+i[0]
- else:
- d['+'][i[1]]=[i[0],i[2]+'-'+i[0]]
- elif i[3]=='-':
-- if d['-'].has_key(i[1]):
-+ if i[1] in d['-']:
- if i[0] not in d['-'][i[1]][0]: d['-'][i[1]][0]=d['-'][i[1]][0]+','+i[0]
- if i[2]+'-'+i[0] not in d['-'][i[1]][1]: d['-'][i[1]][1]=d['-'][i[1]][1]+','+i[2]+'-'+i[0]
- else:
- d['-'][i[1]]=[i[0],i[2]+'-'+i[0]]
-- gip='$'.join(d['+'].keys())
-- featp='$'.join([d['+'][x][0] for x in d['+'].keys()])
-- tip='$'.join([d['+'][x][1] for x in d['+'].keys()])
-- gim='$'.join(d['-'].keys())
-- featm='$'.join([d['-'][x][0] for x in d['-'].keys()])
-- tim='$'.join([d['-'][x][1] for x in d['-'].keys()])
-+ gip='$'.join(list(d['+'].keys()))
-+ featp='$'.join([d['+'][x][0] for x in list(d['+'].keys())])
-+ tip='$'.join([d['+'][x][1] for x in list(d['+'].keys())])
-+ gim='$'.join(list(d['-'].keys()))
-+ featm='$'.join([d['-'][x][0] for x in list(d['-'].keys())])
-+ tim='$'.join([d['-'][x][1] for x in list(d['-'].keys())])
- p=[featp,gip,tip]
- m=[featm,gim,tim]
- pm=[(featp+'&'+featm).strip('&'),(gip+'&'+gim).strip('&'),(tip+'&'+tim).strip('&')]
-@@ -187,7 +187,7 @@
- elif strand=='-': res=ann[1]
- else: res=ann[2]
- for i in addc:
-- print prinfo[i]+ res[i]
-+ print(prinfo[i]+ res[i])
- except: sys.exit('Error: not correct position.')
-
- if af:
-@@ -200,7 +200,7 @@
- h=[i.strip()]
- for k in addc: h.append(hinfo[k])
- if save: o.write('\t'.join(h)+'\n')
-- else: print '\t'.join(h)
-+ else: print('\t'.join(h))
- continue
- if i.startswith(skip): continue
- l=(i.strip()).split('\t')
-@@ -230,7 +230,7 @@
- else: res=ann[2]
- for j in addc: l.append(res[j])
- if save: o.write('\t'.join(l)+'\n')
-- else: print '\t'.join(l)
-+ else: print('\t'.join(l))
- tabix.close()
- if save:
- o.close()
-diff -ru a/accessory/FilterTable.py b/accessory/FilterTable.py
---- a/accessory/FilterTable.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/FilterTable.py 2020-07-16 16:17:22.209013627 -0500
-@@ -30,7 +30,7 @@
- pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python FilterTable.py [options]
- Options:
- -i Table file
-@@ -43,12 +43,12 @@
- -p Print simple statistics
- -h Print this help
-
--"""
-+""")
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], 'i:o:f:hs:F:S:Ep',["help"])
--except getopt.GetoptError, err:
-- print str(err)
-+except getopt.GetoptError as err:
-+ print(str(err))
- usage()
- sys.exit()
-
-diff -ru a/accessory/get_DE_events.py b/accessory/get_DE_events.py
---- a/accessory/get_DE_events.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/get_DE_events.py 2020-07-16 16:17:22.646013607 -0500
-@@ -104,7 +104,7 @@
- #WARNING those are np arrays.
-
- for i in range(0,edit_level_table.shape[0]):
-- print i #keep track of progress
-+ print(i) #keep track of progress
- disease_edit_row = edit_level_table.loc[i, disease_people]
- control_edit_row = edit_level_table.loc[i, control_people]
- disease_cov_row = cov_table.loc[i, disease_people]
-@@ -206,7 +206,7 @@
- #write the full_table to output
- full_table.to_csv(output_file, sep='\t', index=False)
-
-- print "job completed\n"
-+ print("job completed\n")
-
-
-
-@@ -225,12 +225,12 @@
-
- def Sample_percentage(row):
- """Percentage of samples from each type"""
-- percentage = (len(filter(lambda x: x!= '-', row))/float(len(row)))*100
-+ percentage = (len([x for x in row if x!= '-'])/float(len(row)))*100
- return round(percentage)
-
- def Sample_count(row):
- """Number of samples from each type"""
-- count = len(filter(lambda x: x!= '-', row))
-+ count = len([x for x in row if x!= '-'])
- return count
-
- def get_bh(pvalue,siglevel):
-@@ -269,7 +269,7 @@
- if(row_a[-1] != '-' and row_a[-1] != 0.0 and row_a[-1] <= 0.05):
- row = row[0].split('_') + row[2:]
- row.insert(2, 'A.to.G')
-- print '\t'.join(map(str,row))
-+ print('\t'.join(map(str,row)))
-
- def tuple_replace(i):
- if type(i) == tuple:
-@@ -292,11 +292,11 @@
- with open(samples_informations_file, 'r') as f:
- for line in f:
- if line.startswith('SRR'):
-- line = map(str.strip, line.split(','))
-+ line = list(map(str.strip, line.split(',')))
- sample_informations.setdefault(line[0], line[1])
-
-
--cwd = filter(os.path.isdir, os.listdir(os.getcwd()))
-+cwd = list(filter(os.path.isdir, os.listdir(os.getcwd())))
- all_available_sites = []
- sample_edited_sites = {}
- for directory in cwd:
-@@ -306,7 +306,7 @@
- with open(table,'r') as a:
- for line in a:
- if line.startswith('chr'):
-- s = map(str.strip, line.split("\t"))
-+ s = list(map(str.strip, line.split("\t")))
- if s[7] == 'AG':
- site, freq, coverage = s[0] + "_" + s[1], s[8], s[4]
- freq_gnum_cov = '%s^%s^%s' %(s[8],eval(s[6])[2],s[4])
-@@ -314,14 +314,14 @@
- if (int(coverage) >= min_coverage) and (float(freq) >= min_edit_frequency):
- sample_edited_sites.setdefault((directory, site), []).append((freq, freq_gnum_cov))
-
--table_columns = map(lambda x: x + '_' + sample_informations[x], sorted(sample_informations.keys()))
-+table_columns = [x + '_' + sample_informations[x] for x in sorted(sample_informations.keys())]
-
- disease = [i for i in table_columns if i.upper().find('DIS') != -1]
- controls = [i for i in table_columns if i.upper().find('CTRL') != -1]
-
- if enable_linear_model:
- outtable=''
-- header = ['chromosome', 'position', 'type_editing'] + map(remove_underscore, controls) + map(remove_underscore, disease)
-+ header = ['chromosome', 'position', 'type_editing'] + list(map(remove_underscore, controls)) + list(map(remove_underscore, disease))
- outtable += '\t'.join(header)
- outtable += '\n'
- #print '\t'.join(header)
-@@ -329,13 +329,13 @@
- row = [chrom]
- for col in header[2:]:#header.index('[num_controls/num_disease]')]:
- row.append(sample_edited_sites.get((col.split('_')[0],chrom), ['-'])[0])
-- ctrls = zip(*(zip(controls,row[1:])))[1]
-- dss = zip(*(zip(disease,row[len(ctrls)+1:])))[1]
-- ctrls_freq = map(tuple_replace, ctrls)
-- dss_freq = map(tuple_replace, dss)
-+ ctrls = list(zip(*(list(zip(controls,row[1:])))))[1]
-+ dss = list(zip(*(list(zip(disease,row[len(ctrls)+1:])))))[1]
-+ ctrls_freq = list(map(tuple_replace, ctrls))
-+ dss_freq = list(map(tuple_replace, dss))
- row.append(str([Sample_count(ctrls), Sample_count(dss)]))
-
-- row_b = map(tuple_replace_bis, row)
-+ row_b = list(map(tuple_replace_bis, row))
- row_b = row_b[0].split('_') + row_b[2:]
- row_b.insert(2, 'A.to.G')
- final_list = row_b[:-1]
-@@ -359,20 +359,20 @@
- if pvalue_correction == 2:
- header += ['pvalue BH corrected']
-
-- print '\t'.join(header)
-+ print('\t'.join(header))
-
- for chrom in sorted(all_available_sites, key = lambda x: Set_Chr_Nr(x)):
- row = [chrom]
- for col in header[3:header.index('[num_controls/num_disease]')]:
- row.append(sample_edited_sites.get((col.split('_')[0],chrom), ['-'])[0])
-- ctrls = zip(*(zip(controls,row[1:])))[1]
-- dss = zip(*(zip(disease,row[len(ctrls)+1:])))[1]
-- ctrls_freq = map(tuple_replace, ctrls)
-- dss_freq = map(tuple_replace, dss)
-+ ctrls = list(zip(*(list(zip(controls,row[1:])))))[1]
-+ dss = list(zip(*(list(zip(disease,row[len(ctrls)+1:])))))[1]
-+ ctrls_freq = list(map(tuple_replace, ctrls))
-+ dss_freq = list(map(tuple_replace, dss))
- row.append(str([Sample_count(ctrls), Sample_count(dss)]))
- if (Sample_percentage(ctrls) >= min_sample_testing) and (Sample_percentage(dss) >= min_sample_testing):
-- ctrls_mean = sum(map(float, filter(lambda x: x!= '-', ctrls_freq)))/len(filter(lambda x: x!= '-', ctrls_freq))
-- dss_mean = sum(map(float, filter(lambda x: x!= '-', dss_freq)))/len(filter(lambda x : x!= '-', dss_freq))
-+ ctrls_mean = sum(map(float, [x for x in ctrls_freq if x!= '-']))/len([x for x in ctrls_freq if x!= '-'])
-+ dss_mean = sum(map(float, [x for x in dss_freq if x!= '-']))/len([x for x in dss_freq if x!= '-'])
- delta_diff = abs(ctrls_mean - dss_mean)
- pvalue=stats.mannwhitneyu(ctrls_freq, dss_freq, alternative='two-sided')
- row.append(round(delta_diff, 3))
-@@ -388,12 +388,12 @@
- row += ['-', '-']
- else:
- row += ['-', '-', '-']
-- row_a = map(tuple_replace, row)
-- row_b = map(tuple_replace_bis, row)
-+ row_a = list(map(tuple_replace, row))
-+ row_b = list(map(tuple_replace_bis, row))
- if pvalue_correction != 0 and only_significants == 'yes':
- only_sig(row_a,row_b)
- else:
- row_b = row_b[0].split('_') + row_b[2:]
- row_b.insert(2, 'A.to.G')
-- print '\t'.join(map(str,row_b))
-+ print('\t'.join(map(str,row_b)))
-
-diff -ru a/accessory/GFFtoTabix.py b/accessory/GFFtoTabix.py
---- a/accessory/GFFtoTabix.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/GFFtoTabix.py 2020-07-16 16:17:22.264013625 -0500
-@@ -31,7 +31,7 @@
- pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python GFFtoTabix.py [options]
- Options:
- -i GFF file
-@@ -41,7 +41,7 @@
- -u Save an uncompressed GFF copy (add _copy suffix)
- -h Print this help
-
--"""
-+""")
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], "i:Sb:t:hu",["help"])
-@@ -49,7 +49,7 @@
- usage()
- sys.exit(2)
- except getopt.GetoptError as err:
-- print str(err) # will print something like "option -a not recognized"
-+ print(str(err)) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-
-diff -ru a/accessory/rediportal2recoding.py b/accessory/rediportal2recoding.py
---- a/accessory/rediportal2recoding.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/rediportal2recoding.py 2020-07-16 16:17:22.709013604 -0500
-@@ -41,4 +41,4 @@
- gff_row = line[0] + '\t'+ valore + '\t' + 'ed' + '\t' + line[1] + \
- '\t' + line[1] + '\t' + '.' + '\t' + line[4] + '\t' + '.' + '\t' + \
- 'gene_id' + ' ' + '"ed_%s";' %(i) + ' ' + 'transcript_id' + ' ' + '"ed_%s";' %(i)
-- print gff_row
-+ print(gff_row)
-diff -ru a/accessory/SearchInTable.py b/accessory/SearchInTable.py
---- a/accessory/SearchInTable.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/SearchInTable.py 2020-07-16 16:17:22.309013623 -0500
-@@ -25,7 +25,7 @@
- #pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python SearchInTable.py [options]
- Options:
- -i Sorted table file (first col=reference; second col=coordinate 1 based)
-@@ -42,7 +42,7 @@
- -o Save found/not found positions on file
- -h Print this help
-
--"""
-+""")
- #-k skip first INT lines [0]
-
- try:
-@@ -51,7 +51,7 @@
- usage()
- sys.exit(2)
- except getopt.GetoptError as err:
-- print str(err) # will print something like "option -a not recognized"
-+ print(str(err)) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-
-diff -ru a/accessory/selectPositions.py b/accessory/selectPositions.py
---- a/accessory/selectPositions.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/selectPositions.py 2020-07-16 16:17:22.833013598 -0500
-@@ -25,7 +25,7 @@
- pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python selectPositions.py [options]
- Options:
- -i Table file from REDItools
-@@ -44,7 +44,7 @@
- -o Save selected positions on outTable_%s
- -h Print this help
-
--"""%(pid)
-+"""%(pid))
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], "i:c:C:v:s:f:F:euo:hrd:RV:",["help"])
-@@ -52,7 +52,7 @@
- usage()
- sys.exit(2)
- except getopt.GetoptError as err:
-- print str(err) # will print something like "option -a not recognized"
-+ print(str(err)) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-
-diff -ru a/accessory/SortGFF.py b/accessory/SortGFF.py
---- a/accessory/SortGFF.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/SortGFF.py 2020-07-16 16:17:22.357013620 -0500
-@@ -35,7 +35,7 @@
- pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python SortGFF.py [options]
- Options:
- -i GFF file
-@@ -44,7 +44,7 @@
- -t Temporary directory to use (multiple -t may be used)
- -h Print this help
-
--"""%(pid)
-+"""%(pid))
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], "i:o:b:t:h",["help"])
-@@ -52,7 +52,7 @@
- usage()
- sys.exit(2)
- except getopt.GetoptError as err:
-- print str(err) # will print something like "option -a not recognized"
-+ print(str(err)) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-
-diff -ru a/accessory/SortTable.py b/accessory/SortTable.py
---- a/accessory/SortTable.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/SortTable.py 2020-07-16 16:17:22.411013618 -0500
-@@ -35,7 +35,7 @@
- pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python SortTable.py [options]
- Options:
- -i Table file
-@@ -50,7 +50,7 @@
- -t Temporary directory to use (multiple -t may be used)
- -h Print this help
-
--"""%(pid)
-+"""%(pid))
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], "i:o:b:t:hd:s:c:e:m:O",["help"])
-@@ -58,7 +58,7 @@
- usage()
- sys.exit(2)
- except getopt.GetoptError as err:
-- print str(err) # will print something like "option -a not recognized"
-+ print(str(err)) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-
-diff -ru a/accessory/subCount2.py b/accessory/subCount2.py
---- a/accessory/subCount2.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/subCount2.py 2020-07-16 16:17:22.854013597 -0500
-@@ -28,5 +28,5 @@
- for i in s:
- try: v=(s[i]/float(all))*100
- except: v=0.0
-- print i,s[i],all,v
-+ print(i,s[i],all,v)
-
-diff -ru a/accessory/subCount.py b/accessory/subCount.py
---- a/accessory/subCount.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/subCount.py 2020-07-16 16:17:22.844013597 -0500
-@@ -30,5 +30,5 @@
- for i in s:
- try: v=(s[i]/float(all))*100
- except: v=0.0
-- print i,s[i],all,v
-+ print(i,s[i],all,v)
-
-diff -ru a/accessory/TableToGFF.py b/accessory/TableToGFF.py
---- a/accessory/TableToGFF.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/TableToGFF.py 2020-07-16 16:17:22.474013615 -0500
-@@ -29,7 +29,7 @@
- pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python TableToGFF.py [options]
- Options:
- -i Table file from REDItools
-@@ -40,7 +40,7 @@
- -o Outfile [outTable_%s.gff]
- -h Print this help
-
--"""%(pid)
-+"""%(pid))
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], "i:o:sthT:b:",["help"])
-@@ -48,7 +48,7 @@
- usage()
- sys.exit(2)
- except getopt.GetoptError as err:
-- print str(err) # will print something like "option -a not recognized"
-+ print(str(err)) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-
-diff -ru a/accessory/tableToTabix.py b/accessory/tableToTabix.py
---- a/accessory/tableToTabix.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/accessory/tableToTabix.py 2020-07-16 16:17:22.913013594 -0500
-@@ -31,7 +31,7 @@
- pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python tableToTabix.py [options]
- Options:
- -i TAB-delimited file
-@@ -46,7 +46,7 @@
- -u Save an uncompressed GFF copy (add _copy suffix)
- -h Print this help
-
--"""
-+""")
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], "i:Sb:t:hus:c:e:m:0",["help"])
-@@ -54,7 +54,7 @@
- usage()
- sys.exit(2)
- except getopt.GetoptError as err:
-- print str(err) # will print something like "option -a not recognized"
-+ print(str(err)) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-
-diff -ru a/main/REDItoolDenovo.py b/main/REDItoolDenovo.py
---- a/main/REDItoolDenovo.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/main/REDItoolDenovo.py 2020-07-16 16:17:21.265013672 -0500
-@@ -75,7 +75,7 @@
- return 1
- numerator = 1
- denominator = 1
-- for i in xrange(s+1, population + 1):
-+ for i in range(s+1, population + 1):
- numerator *= i
- denominator *= (i - s)
- return numerator/denominator
-@@ -275,7 +275,7 @@
- try: import pysam
- except: sys.exit('Pysam module not found.')
- from multiprocessing import Process, Queue
--from Queue import Empty
-+from queue import Empty
- try:
- from fisher import pvalue
- exfisher=1
-@@ -292,7 +292,7 @@
- pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python REDItoolDenovo.py [options]
- Options:
- -i BAM file
-@@ -343,12 +343,12 @@
- - For Tophat2 use 50
- - For GSNAP use 30
-
--"""%(pid)
-+"""%(pid))
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], "b:f:k:t:o:c:q:m:O:s:edpuT:B:v:n:EP:r:hHa:i:lIU:V:w:XG:K:F:g:x:W")
- except getopt.GetoptError as err:
-- print str(err) # will print something like "option -a not recognized"
-+ print(str(err)) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-
-@@ -474,7 +474,7 @@
- annfile=a
- uann=1
- else:
-- print o
-+ print(o)
- assert False, "Unhandled Option"
-
- #######
-@@ -532,7 +532,7 @@
- return False
- try:
- os.kill(pid, 0)
-- except OSError, e:
-+ except OSError as e:
- return e.errno == errno.EPERM
- else:
- return True
-@@ -637,9 +637,9 @@
- subs=[]
- subv=[]
- for i in seq.upper():
-- if b.has_key(i): b[i]+=1
-+ if i in b: b[i]+=1
- for i in b:
-- if not b.has_key(ref): continue
-+ if ref not in b: continue
- if b[i]!=0 and i!=ref:
- vv=float(b[i])/(b[i]+b[ref])
- subv.append((b[i],vv,ref+i))
-@@ -690,7 +690,7 @@
- a={'A':'T','T':'A','C':'G','G':'C'}
- ss=''
- for i in s.upper():
-- if a.has_key(i): ss+=a[i]
-+ if i in a: ss+=a[i]
- else: ss+='N'
- return ss
-
-@@ -777,7 +777,7 @@
- frefs.append(l[0])
- fidxinfo.close()
- rnof=[]
--for i in rrefs.keys():
-+for i in list(rrefs.keys()):
- if i not in frefs: sys.stderr.write('WARNING: Region %s in RNA-Seq not found in reference file.\n' %(i))
- #####################
-
-@@ -817,8 +817,8 @@
- #mainbam=pysam.Samfile(bamfile,"rb")
- #regions=mainbam.references
- #mainbam.close()
--dicregions=dict(rrefs.items())
--chrs=[x for x in dicregions.keys() if x not in nochrs]
-+dicregions=dict(list(rrefs.items()))
-+chrs=[x for x in list(dicregions.keys()) if x not in nochrs]
- sys.stderr.write('Analysis on %i regions.\n' %(len(chrs)))
-
- if infolder!='': outfolder=os.path.join(outfolder_,'denovo_%s_%s' %(infolder,pid))
-@@ -906,7 +906,7 @@
- if pileupread.alignment.has_tag('SA'): continue
- #s,q,t,qq=pileupread.alignment.seq[pileupread.qpos].upper(),ord(pileupread.alignment.qual[pileupread.qpos])-QVAL,'*',pileupread.alignment.qual[pileupread.qpos]
- # escludi posizioni introniche nei pressi di splice sites
-- if exss and di.has_key(pileupcolumn.reference_pos+1): continue #MOD
-+ if exss and pileupcolumn.reference_pos+1 in di: continue #MOD
- # multiple hit
- if exh: #MOD
- if pileupread.alignment.is_secondary: continue #MOD
-@@ -998,7 +998,7 @@
- elif pileupread.alignment.is_read2: rt=2
- else: rt=0
- rname=pileupread.alignment.query_name+'_%i'%(rt) #MOD
-- if d.has_key(rname): blatc+='0' #continue
-+ if rname in d: blatc+='0' #continue
- else: blatc+='1'
- # se la base e' diversa dal reference
- # se in regione omopolimerica scarta
-@@ -1032,7 +1032,7 @@
- if not custsub:
- ni='ACGT'
- for b in range(4):
-- if dsubs.has_key(ref.upper()+ni[b]):
-+ if ref.upper()+ni[b] in dsubs:
- dsubs[ref.upper()+ni[b]]+=bcomp[b]
- if expos:
- if chr in extabix.contigs:
-diff -ru a/main/REDItoolDnaRna.py b/main/REDItoolDnaRna.py
---- a/main/REDItoolDnaRna.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/main/REDItoolDnaRna.py 2020-07-16 16:17:21.757013649 -0500
-@@ -23,7 +23,7 @@
- try: import pysam
- except: sys.exit('Pysam module not found.')
- from multiprocessing import Process, Queue
--from Queue import Empty
-+from queue import Empty
- import gzip
-
- pysamVersion=pysam.__version__
-@@ -34,7 +34,7 @@
- pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python REDItoolDnaRNA.py [options]
- Options:
- -i RNA-Seq BAM file
-@@ -103,7 +103,7 @@
- - For Tophat2 use 50
- - For GSNAP use 30
-
--"""%(pid)
-+"""%(pid))
-
- #option --fastq Fastq to get reads [requires --reads], separated by comma [if paired] NOT IMPLEMENTED
- #option --rmOver Remove overlapping reads NOT IMPLEMENTED
-@@ -111,7 +111,7 @@
- try:
- opts, args = getopt.getopt(sys.argv[1:], "i:f:k:t:o:c:q:m:O:s:edpuA:a:B:b:lLv:n:EPr:hHIXG:K:j:C:JDUzw:N:ZW:RVMT:F:x:g:SY:",["help","gzip","reads","addP","rmIndels"])
- except getopt.GetoptError as err:
-- print str(err) # will print something like "option -a not recognized"
-+ print(str(err)) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-
-@@ -325,7 +325,7 @@
- params.append('Analysis ID: %s\n' %(pid))
- params.append('Analysis time: %s\n' %(script_time))
- params.append('-i --> RNA-Seq BAM file: %s\n' %(bamfile))
--params.append('-j --> DNA-Seq BAM file(s): %s\n' %(','.join(dgbamfile.keys())))
-+params.append('-j --> DNA-Seq BAM file(s): %s\n' %(','.join(list(dgbamfile.keys()))))
- params.append('-I --> Sort RNA-Seq BAM file: %i\n' %(sortbam))
- params.append('-J --> Sort DNA-Seq BAM file: %i\n' %(sortgbam))
- params.append('-f --> Reference file: %s\n' %(fastafile))
-@@ -483,9 +483,9 @@
- subs=[]
- subv=[]
- for i in seq.upper():
-- if b.has_key(i): b[i]+=1
-+ if i in b: b[i]+=1
- for i in b:
-- if not b.has_key(ref): continue
-+ if ref not in b: continue
- if b[i]!=0 and i!=ref:
- vv=float(b[i])/(b[i]+b[ref])
- subv.append((b[i],vv,ref+i))
-@@ -537,7 +537,7 @@
- a={'A':'T','T':'A','C':'G','G':'C'}
- ss=''
- for i in s.upper():
-- if a.has_key(i): ss+=a[i]
-+ if i in a: ss+=a[i]
- elif i==' ': ss+=' '
- elif i=='-': ss+='-'
- else: ss+='N'
-@@ -682,7 +682,7 @@
- if l.count(i[0])==2:
- s='='
- if i[1]!=i[2]: s='!'
-- if us.has_key(i[0]): us[i[0]].append((x,s))
-+ if i[0] in us: us[i[0]].append((x,s))
- else: us[i[0]]=[(x,s)]
- x+=1
- for i in us:
-@@ -753,7 +753,7 @@
- pysam.faidx(fastafile)
- ###########################################################
- # Check reference for name consistency
--grefs=dgdic.keys()
-+grefs=list(dgdic.keys())
- rrefs={}
- ridxinfo=pysam.idxstats(bamfile)
- for j in ridxinfo.split('\n'): #MOD
-@@ -769,7 +769,7 @@
- fidxinfo.close()
- # in rna-seq
- rnof=[]
--for i in rrefs.keys():
-+for i in list(rrefs.keys()):
- if i not in frefs: sys.stderr.write('WARNING: Region %s in RNA-Seq not found in reference file.\n' %(i))
- if len(gbamfile)!=0:
- for i in grefs:
-@@ -833,9 +833,9 @@
- #regions=mainbam.references
- #regionslens=mainbam.lengths
- #mainbam.close()
--dicregions=dict(rrefs.items())
-+dicregions=dict(list(rrefs.items()))
- #dicregions=dict([(regions[x],regionslens[x]) for x in range(len(regions))])
--chrs=[x for x in dicregions.keys() if x not in nochrs]
-+chrs=[x for x in list(dicregions.keys()) if x not in nochrs]
- if fworkR: sys.stderr.write('Analysis on region %s:%i-%i.\n' %(workR[0],workR[1][0],workR[1][1]))
- else: sys.stderr.write('Analysis on %i regions.\n' %(len(chrs)))
- ###########################################################
-@@ -883,7 +883,7 @@
- isgbam=1
- inputs=myinput.split('$')
- chr,bamfile,start_region,lenregion,suff_=inputs[0],inputs[1],int(inputs[2]),int(inputs[3]),inputs[4]
-- if not dgdic.has_key(chr): isgbam=0
-+ if chr not in dgdic: isgbam=0
- outfile=os.path.join(outfolder,'table_%s'%(suff_))
- if slist:
- if gziptab: outrna=gzip.open(os.path.join(outfolder,'pileupRNA_%s.gz'%(suff)),'wb')
-@@ -1024,7 +1024,7 @@
- if pileupread.alignment.is_read1: rt=1
- elif pileupread.alignment.is_read2: rt=2
- rname=pileupread.alignment.query_name+'_%i'%(rt)
-- if gd.has_key(rname): gblatc+='0' #continue
-+ if rname in gd: gblatc+='0' #continue
- else: gblatc+='1'
- # se la base e' diversa dal reference
- # se in regione omopolimerica scarta
-@@ -1079,7 +1079,7 @@
- #s,q,t,qq=pileupread.alignment.query_sequence[pileupread.query_position].upper(),pileupread.alignment.query_qualities[pileupread.query_position],'*',pileupread.alignment.qual[pileupread.query_position]
- #s,q,t,qq=pileupread.alignment.seq[pileupread.qpos].upper(),ord(pileupread.alignment.qual[pileupread.qpos])-QVAL,'*',pileupread.alignment.qual[pileupread.qpos]
- # escludi posizioni introniche nei pressi di splice sites
-- if exss and di.has_key(pileupcolumn.reference_pos+1): continue
-+ if exss and pileupcolumn.reference_pos+1 in di: continue
- # multiple hit
- if exh:
- if pileupread.alignment.is_secondary: continue
-@@ -1179,7 +1179,7 @@
- elif pileupread.alignment.is_read2: rt=2
- else: rt=0
- rname=pileupread.alignment.query_name+'_%i'%(rt)
-- if d.has_key(rname): blatc+='0' #continue
-+ if rname in d: blatc+='0' #continue
- else: blatc+='1'
- # se la base e' diversa dal reference
- # se in regione omopolimerica scarta
-@@ -1213,7 +1213,7 @@
- else: addpos=(pileupread.alignment.query_name,'-',pileupread.alignment.reference_name,'-',pileupread.alignment.reference_start,pileupread.alignment.reference_end,0 , 0)
- rqname_comp=rqname+'$'+pileupread.alignment.reference_name+'$'+str(pileupcolumn.reference_pos+1)
- #addpos=(chr+'_'+str(pileupcolumn.reference_pos+1),pileupcolumn.reference_pos+1)
-- if not grdb.has_key(rqname):
-+ if rqname not in grdb:
- #print rqname reference_start
- outreads.write('>'+rqname_comp+'\n'+rseqname+'\n')
- #grdb[rqname]=[addpos]
-@@ -1221,7 +1221,7 @@
- # if addpos not in grdb[rqname]:
- # grdb[rqname].append(addpos)
- if addP:
-- if not grdb2.has_key(rname): grdb2[rname]=addpos
-+ if rname not in grdb2: grdb2[rname]=addpos
- if seq.strip()!='':
- #print seq,qual,squal
- if rmIndel:
-@@ -1268,7 +1268,7 @@
- if exinv and subs=='-': continue
- if not checkSubs(subs): continue
- #print out rna-seq info + dna-seq
-- if gdic.has_key(pileupcolumn.reference_pos): # abbiamo l'informazione genomica
-+ if pileupcolumn.reference_pos in gdic: # abbiamo l'informazione genomica
- if exnonh and not gdic[pileupcolumn.reference_pos][1]: continue
- if mystrand=='0':
- gdic[pileupcolumn.reference_pos][0][2]=comp2(eval(gdic[pileupcolumn.reference_pos][0][2]))
-diff -ru a/main/REDItoolKnown.py b/main/REDItoolKnown.py
---- a/main/REDItoolKnown.py 2020-07-16 16:16:59.360014702 -0500
-+++ b/main/REDItoolKnown.py 2020-07-16 16:17:22.063013634 -0500
-@@ -23,7 +23,7 @@
- try: import pysam
- except: sys.exit('Pysam module not found.')
- from multiprocessing import Process, Queue
--from Queue import Empty
-+from queue import Empty
-
- pysamVersion=pysam.__version__
-
-@@ -34,7 +34,7 @@
- pid=str(os.getpid()+random.randint(0,999999999))
-
- def usage():
-- print """
-+ print("""
- USAGE: python REDItoolKnown.py [options]
- Options:
- -i BAM file
-@@ -82,12 +82,12 @@
- - For Tophat2 use 50
- - For GSNAP use 30
-
--"""%(pid)
-+"""%(pid))
-
- try:
- opts, args = getopt.getopt(sys.argv[1:], "i:f:k:t:o:c:q:m:O:s:edpuT:B:Sv:n:EP:r:hHIXG:K:l:C:F:x:g:U")
- except getopt.GetoptError as err:
-- print str(err) # will print something like "option -a not recognized"
-+ print(str(err)) # will print something like "option -a not recognized"
- usage()
- sys.exit(2)
-
-@@ -257,7 +257,7 @@
- return False
- try:
- os.kill(pid, 0)
-- except OSError, e:
-+ except OSError as e:
- return e.errno == errno.EPERM
- else:
- return True
-@@ -361,9 +361,9 @@
- subs=[]
- subv=[]
- for i in seq.upper():
-- if b.has_key(i): b[i]+=1
-+ if i in b: b[i]+=1
- for i in b:
-- if not b.has_key(ref): continue
-+ if ref not in b: continue
- if b[i]!=0 and i!=ref:
- vv=float(b[i])/(b[i]+b[ref])
- subv.append((b[i],vv,ref+i))
-@@ -414,7 +414,7 @@
- a={'A':'T','T':'A','C':'G','G':'C'}
- ss=''
- for i in s.upper():
-- if a.has_key(i): ss+=a[i]
-+ if i in a: ss+=a[i]
- else: ss+='N'
- return ss
-
-@@ -524,7 +524,7 @@
- fidxinfo.close()
- # in rna-seq
- rnof=[]
--for i in rrefs.keys():
-+for i in list(rrefs.keys()):
- if i not in frefs: sys.stderr.write('WARNING: Region %s in RNA-Seq not found in reference file.\n' %(i))
- ##################################
-
-@@ -568,8 +568,8 @@
- #mainbam.close()
- #dicregions=dict([(regions[x],regionslens[x]) for x in range(len(regions))])
- #chrs=[x for x in regions if x not in nochrs]
--dicregions=dict(rrefs.items())
--chrs=[x for x in dicregions.keys() if x not in nochrs]
-+dicregions=dict(list(rrefs.items()))
-+chrs=[x for x in list(dicregions.keys()) if x not in nochrs]
- sys.stderr.write('Analysis on %i regions.\n' %(len(chrs)))
-
- if infolder!='': outfolder=os.path.join(outfolder_,'known_%s_%s' %(infolder,pid))
-@@ -654,7 +654,7 @@
- # else explore bam to find exact positions
- for pileupcolumn in bam.pileup(chr,startk,endk,stepper='nofilter', max_depth=MAX_DEPTH):
- if not startk<=pileupcolumn.reference_pos<=endk: continue
-- if not kdic.has_key(pileupcolumn.reference_pos+1): continue
-+ if pileupcolumn.reference_pos+1 not in kdic: continue
- ref=fasta.fetch(chr,pileupcolumn.reference_pos,pileupcolumn.reference_pos+1).upper()
- seq,qual,strand,squal,blatc='',0,'',[],''
- if rmsh:
-@@ -668,7 +668,7 @@
- if pileupread.alignment.is_supplementary: continue
- if pileupread.alignment.has_tag('SA'): continue
- # escludi posizioni introniche nei pressi di splice sites
-- if exss and di.has_key(pileupcolumn.reference_pos+1): continue
-+ if exss and pileupcolumn.reference_pos+1 in di: continue
- # multiple hit
- if exh:
- if pileupread.alignment.is_secondary: continue
-@@ -754,7 +754,7 @@
- elif pileupread.alignment.is_read2: rt=2
- else: rt=0
- rname=pileupread.alignment.query_name+'_%i'%(rt)
-- if d.has_key(rname): blatc+='0' #continue
-+ if rname in d: blatc+='0' #continue
- else: blatc+='1'
- # se la base e' diversa dal reference
- # se in regione omopolimerica scarta
diff --git a/var/spack/repos/builtin/packages/reditools/setup.py.patch b/var/spack/repos/builtin/packages/reditools/setup.py.patch
index f65345ad92..bde2bb579c 100644
--- a/var/spack/repos/builtin/packages/reditools/setup.py.patch
+++ b/var/spack/repos/builtin/packages/reditools/setup.py.patch
@@ -1,6 +1,16 @@
---- a/setup.py 2020-07-16 14:01:48.601449013 -0500
-+++ b/setup.py 2020-07-16 14:02:31.547441668 -0500
-@@ -33,7 +33,7 @@
+--- a/setup.py 2021-05-20 16:22:44.832444514 -0500
++++ b/setup.py 2021-05-20 16:23:43.127629214 -0500
+@@ -23,7 +23,8 @@
+ 'accessory/readPsl.py',
+ 'accessory/subCount.py',
+ 'accessory/subCount2.py',
+- 'accessory/rediportal2recoding.py'
++ 'accessory/rediportal2recoding.py',
++ 'accessory/get_DE_events.py'
+ ],
+ license='LICENSE.txt',
+ classifiers=[
+@@ -33,7 +34,7 @@
'Operating System :: POSIX',
'Programming Language :: Python',
],
diff --git a/var/spack/repos/builtin/packages/redland-bindings/package.py b/var/spack/repos/builtin/packages/redland-bindings/package.py
new file mode 100644
index 0000000000..934a787149
--- /dev/null
+++ b/var/spack/repos/builtin/packages/redland-bindings/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class RedlandBindings(AutotoolsPackage):
+ """Redland Language Bindings for language APIs to Redland"""
+
+ homepage = "https://librdf.org/"
+ url = "https://download.librdf.org/source/redland-bindings-1.0.17.1.tar.gz"
+
+ version('1.0.17.1', sha256='ff72b587ab55f09daf81799cb3f9d263708fad5df7a5458f0c28566a2563b7f5')
+ version('1.0.16.1', sha256='065037ef61e9b78f642e75b9c2a42700eb1a87d903f2f9963d86591c7d916826')
+ version('1.0.14.1', sha256='a8cc365fccf292c56d53341ecae57fe8727e5002e048ca25f6251b5e595aec40')
+
+ depends_on('swig', type='build')
+ depends_on('redland')
+ depends_on('krb5')
+ depends_on('libssh')
+ extends('python')
+
+ def configure_args(self):
+ plib = self.spec['python'].prefix.lib
+ plib64 = self.spec['python'].prefix.lib64
+ mybase = self.prefix.lib
+ if os.path.isdir(plib64) and not os.path.isdir(plib):
+ mybase = self.prefix.lib64
+ pver = 'python{0}'.format(self.spec['python'].version.up_to(2))
+ myplib = join_path(mybase, pver, 'site-packages')
+ return ['--with-python', 'PYTHON_LIB={0}'.format(myplib)]
diff --git a/var/spack/repos/builtin/packages/redland/package.py b/var/spack/repos/builtin/packages/redland/package.py
new file mode 100644
index 0000000000..bd3969efec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/redland/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 Redland(AutotoolsPackage):
+ """Redland RDF Library - librdf providing the RDF API and triple stores"""
+
+ homepage = "https://librdf.org/"
+ url = "https://download.librdf.org/source/redland-1.0.17.tar.gz"
+
+ version('1.0.17', sha256='de1847f7b59021c16bdc72abb4d8e2d9187cd6124d69156f3326dd34ee043681')
+ version('1.0.16', sha256='d9a274fc086e61119d5c9beafb8d05527e040ec86f4c0961276ca8de0a049dbd')
+ version('1.0.15', sha256='0e1f5825b6357c9b490da866c95ae1d895dbb5f445013d2511c37df822ee9ec6')
+
+ depends_on('raptor2')
+ depends_on('rasqal')
diff --git a/var/spack/repos/builtin/packages/redset/package.py b/var/spack/repos/builtin/packages/redset/package.py
index 88ea8b92d4..8da845c680 100644
--- a/var/spack/repos/builtin/packages/redset/package.py
+++ b/var/spack/repos/builtin/packages/redset/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,15 @@ class Redset(CMakePackage):
"""Create MPI communicators for disparate redundancy sets"""
homepage = "https://github.com/ecp-veloc/redset"
- url = "https://github.com/ecp-veloc/redset/archive/v0.0.3.zip"
+ url = "https://github.com/ecp-veloc/redset/archive/v0.0.5.tar.gz"
git = "https://github.com/ecp-veloc/redset.git"
tags = ['ecp']
- version('master', branch='master')
- version('0.0.3', sha256='f110c9b42209d65f84a8478b919b27ebe2d566839cb0cd0c86ccbdb1f51598f4')
+ version('main', branch='main')
+ version('0.0.5', sha256='4db4ae59ab9d333a6d1d80678dedf917d23ad461c88b6d39466fc4bf6467d1ee')
+ version('0.0.4', sha256='c33fce458d5582f01ad632c6fae8eb0a03eaef00e3c240c713b03bb95e2787ad')
+ version('0.0.3', sha256='30ac1a960f842ae23a960a88b312af3fddc4795f2053eeeec3433a61e4666a76')
depends_on('mpi')
depends_on('rankstr')
diff --git a/var/spack/repos/builtin/packages/redundans/package.py b/var/spack/repos/builtin/packages/redundans/package.py
index 25a0a64d22..334e36850f 100644
--- a/var/spack/repos/builtin/packages/redundans/package.py
+++ b/var/spack/repos/builtin/packages/redundans/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/reframe/package.py b/var/spack/repos/builtin/packages/reframe/package.py
index 5c1f19659b..5d4a680674 100644
--- a/var/spack/repos/builtin/packages/reframe/package.py
+++ b/var/spack/repos/builtin/packages/reframe/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 shutil
+from spack import *
+
class Reframe(Package):
"""ReFrame is a framework for writing regression tests for HPC systems.
@@ -22,38 +23,87 @@ class Reframe(Package):
# notify when the package is updated.
maintainers = ['victorusu', 'vkarak']
- version('master', branch='master')
- version('3.1', sha256='a9f6ac1ae8fdc51be8032d5cc79c117ff602f57b57aace2e195b2cfe1bd3a16f')
- version('3.0', sha256='fb76b4513c03b84f5b3bbbc988f7747e5b58f04c983b3935bab1f2e81adccb82')
- version('2.21', sha256='f35d4fda2f9672c87d3ef664d9a2d6eb0c01c88218a31772a6645c32c8934c4d')
- version('2.20', sha256='310c18d705858bbe6bd9a2dc4d382b254c1f093b0671d72363f2111e8c162ba4')
- version('2.17.3', sha256='dc8dfb2ccb9a966303879b7cdcd188c47063e9b7999cbd5d6255223b066bf357')
- version('2.17.2', sha256='092241cdc15918040aacb922c806aecb59c5bdc3ff7db034a4f355d39aecc101')
- version('2.17.1', sha256='0b0d32a892607840a7d668f5dcea6f03f7022a26b23e5042a0faf5b8c41cb146')
+ version('master', branch='master')
+ version('3.8.1', sha256='aa8ba4fb862de8ff333add73fd0fbb706a4d4f1381432b094bcdd7acbdcb80d4')
+ version('3.8.0', sha256='b8a0486fd78786606586364968d1e2a4e7fc424d523b12b2c0ea8a227b485e30')
+ version('3.7.3', sha256='52427fbbaa558082b71f73b2b8aea37340584d14dc3b1aca1e9bdd8923fa4c65')
+ version('3.7.2', sha256='b4ba0f0a8788ee43471202d40be43157ec2687ad510c3b02c0869af6c48bb7d0')
+ version('3.7.1', sha256='fb2efc3ad31056156e797f1d4fe705c79d20ebf66472b2144e84d4e2f4b2b125')
+ version('3.7.0', sha256='aa2513fafef44ce31120c7d0e3e3788b6c8a57535499e646086bd01af88f2013')
+ version('3.6.3', sha256='3616478c886c89385385d04f5bce625a690eec6bdca603cd5ac3a6f443168ac2')
+ version('3.6.2', sha256='b4725e434f4cd721ca825a56a652e67aa77e7af5ed7ca00f281747585827060d')
+ version('3.6.1', sha256='1ee35a2de42cdd2476c17cc15caf6a7795d976ba7b058d518da7d314e7af2136')
+ version('3.6.0', sha256='de1e0ea2677f2a49af4b64544379579515db36c2164f6dc647c3fbaab5f78462')
+ version('3.5.3', sha256='5e7f8b93cd672dcb702c657ec2f595d34d3335b1d16484a596a083b5ef81d7ec')
+ version('3.5.2', sha256='50d461811f6bba7c9b897866a290063e1bd229e7055f5acc2de1f749b99bfce7')
+ version('3.5.1', sha256='656ac4c5cddd2af3fc358a7782b0a57c86d61adaeec99181ab7e1ddc630427b7')
+ version('3.5.0', sha256='81b501be4252c99f12043cb21b0b7b8059207a340fc94173b180444599773f1a')
+ version('3.4.2', sha256='0c5c6dbd234b8007be929be2ccbe6a00d9a5ec75cc86e129557590b83f71acca')
+ version('3.4.1', sha256='aed5752a2f687002839923c5432784d3a25d3a29d43b69122dcbf72befa0fdbf')
+ version('3.4', sha256='7e74b1c7468b94e89cff4cd4a91934645ab227ad61d57a9ddf6a7d3d0726010e')
+ version('3.3', sha256='9da150a051e9fa4ffea1361f30e8593261e7f6ebc71ec91ed32143539f871ad7')
+ version('3.2', sha256='dc7f72e31386e549a874699067666607a72835914fef18c38ae6032ab5e5ed51')
+ version('3.1', sha256='a9f6ac1ae8fdc51be8032d5cc79c117ff602f57b57aace2e195b2cfe1bd3a16f')
+ version('3.0', sha256='fb76b4513c03b84f5b3bbbc988f7747e5b58f04c983b3935bab1f2e81adccb82')
+ version('2.21', sha256='f35d4fda2f9672c87d3ef664d9a2d6eb0c01c88218a31772a6645c32c8934c4d')
+ version('2.20', sha256='310c18d705858bbe6bd9a2dc4d382b254c1f093b0671d72363f2111e8c162ba4')
+ version('2.17.3', sha256='dc8dfb2ccb9a966303879b7cdcd188c47063e9b7999cbd5d6255223b066bf357')
+ version('2.17.2', sha256='092241cdc15918040aacb922c806aecb59c5bdc3ff7db034a4f355d39aecc101')
+ version('2.17.1', sha256='0b0d32a892607840a7d668f5dcea6f03f7022a26b23e5042a0faf5b8c41cb146')
+
+ variant('docs', default=False,
+ description='Build ReFrame\'s man page documentation')
+ variant('gelf', default=False,
+ description='Add graylog handler support')
- variant("docs", default=False,
- description="Build ReFrame's man page documentation")
- variant("gelf", default=False,
- description="Add graylog handler support")
+ # ReFrame requires git up to version 3.1, see:
+ # https://github.com/eth-cscs/reframe/issues/1464
+ depends_on('git', when='@2.0:3.1', type='run')
+ # supported python versions
depends_on('python@3.5:', when='@2.0:2.999', type='run')
depends_on('python@3.6:', when='@3.0:', type='run')
- depends_on('py-jsonschema', type='run')
+
+ # build dependencies
depends_on('py-setuptools', type='build')
- depends_on("py-pygelf", when="+gelf", type="run")
- depends_on("py-sphinx", when="+docs", type="build")
- depends_on("py-sphinx-rtd-theme", when="+docs", type="build")
- # ReFrame requires git up to version 3.1, see:
- # https://github.com/eth-cscs/reframe/issues/1464
- depends_on("git", when="@2.0:3.1", type="run")
+
+ # runtime dependencies
+ depends_on('py-archspec', when='@3.7.0:', type='run')
+ depends_on('py-argcomplete', when='@3.4.1:', type='run')
+ depends_on('py-importlib-metadata', when='^python@:3.7', type='run')
+ depends_on('py-jsonschema', type='run')
+ depends_on('py-lxml', when='@3.6.0:', type='run')
+ depends_on('py-pyyaml', when='@3.4.1:', type='run')
+ depends_on('py-requests', when='@3.4.1:', type='run')
+ depends_on('py-semver', when='@3.4.2:', type='run')
+
+ # extension dependencies
+ depends_on('py-pygelf', when='+gelf', type='run')
+
+ # documentation dependencies
+ depends_on('py-sphinx', when='+docs', type='build')
+ depends_on('py-sphinx-rtd-theme', when='+docs', type='build')
+
+ # sanity check
+ sanity_check_is_file = ['bin/reframe']
+ sanity_check_is_dir = ['bin', 'config', 'docs', 'reframe', 'tutorials',
+ 'unittests', 'cscs-checks']
+
+ # check if we can run reframe
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
+ def check_list(self):
+ with working_dir(self.stage.source_path):
+ reframe = Executable(self.prefix + '/bin/reframe')
+ reframe('-l')
def install(self, spec, prefix):
if spec.version >= Version('3.0'):
- if "+docs" in spec:
- with working_dir("docs"):
- make("man")
- make("html")
- with working_dir("man"):
+ if '+docs' in spec:
+ with working_dir('docs'):
+ make('man')
+ make('html')
+ with working_dir('man'):
mkdir('man1')
shutil.move('reframe.1', 'man1')
mkdir('man8')
@@ -61,6 +111,7 @@ class Reframe(Package):
install_tree(self.stage.source_path, self.prefix)
def setup_run_environment(self, env):
+ env.prepend_path('PYTHONPATH', self.prefix)
if self.spec.version >= Version('3.0'):
- if "+docs" in self.spec:
+ if '+docs' in self.spec:
env.prepend_path('MANPATH', self.prefix.docs.man)
diff --git a/var/spack/repos/builtin/packages/regcm/package.py b/var/spack/repos/builtin/packages/regcm/package.py
index 05625de77b..cf496e9b9c 100644
--- a/var/spack/repos/builtin/packages/regcm/package.py
+++ b/var/spack/repos/builtin/packages/regcm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/relax/package.py b/var/spack/repos/builtin/packages/relax/package.py
index d2ac4aa1c8..7ef85fb96c 100644
--- a/var/spack/repos/builtin/packages/relax/package.py
+++ b/var/spack/repos/builtin/packages/relax/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,8 @@ class Relax(CMakePackage):
homepage = "https://twiki.cern.ch/twiki/bin/view/LCG/RELAX"
url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/RELAX-1.tar.gz"
+ tags = ['hep']
+
# The RELAX project stopped using a fixed release model since it moved to
# ROOT 6, so any package checksum is a lie...
version('root6')
diff --git a/var/spack/repos/builtin/packages/relion/0002-Simple-patch-to-fix-intel-mkl-linking.patch b/var/spack/repos/builtin/packages/relion/0002-Simple-patch-to-fix-intel-mkl-linking.patch
new file mode 100644
index 0000000000..6c2e036e4b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/relion/0002-Simple-patch-to-fix-intel-mkl-linking.patch
@@ -0,0 +1,31 @@
+From 0448e229d5c38d00e8a4b9f7081a862e966f8c17 Mon Sep 17 00:00:00 2001
+From: Evan Bollig <ebbollig@amazon.com>
+Date: Tue, 9 Feb 2021 09:48:13 -0600
+Subject: [PATCH] Simple patch to fix intel mkl linking
+
+---
+ src/apps/CMakeLists.txt | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/apps/CMakeLists.txt b/src/apps/CMakeLists.txt
+index 9f23f797..b26d373d 100644
+--- a/src/apps/CMakeLists.txt
++++ b/src/apps/CMakeLists.txt
+@@ -212,6 +212,14 @@ foreach (_target ${RELION_TARGETS})
+ target_link_libraries(${_target} ${LIB} ${EXTRA_LIBS} ${MPI_LIBRARIES} ${CMAKE_DL_LIBS})
+ else()
+ target_link_libraries(${_target} ${LIB} ${FFTW_LIBRARIES} ${EXTRA_LIBS} ${MPI_LIBRARIES} ${CMAKE_DL_LIBS})
++ # Intel MKL needs to be last in the list
++ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
++ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fopenmp -mkl -limf ")
++ #target_link_libraries(${_target} "fopenmp" "mkl" "imf")
++ else()
++ #SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lmkl_intel_ilp64 -lmkl_core -lmkl_sequential ")
++ target_link_libraries(${_target} "mkl_intel_ilp64" "mkl_core" "mkl_sequential")
++ endif()
+ endif(NOT MKLFFT)
+
+ if(CUDA_FOUND)
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/relion/package.py b/var/spack/repos/builtin/packages/relion/package.py
index 73244fcb65..5407c42be2 100644
--- a/var/spack/repos/builtin/packages/relion/package.py
+++ b/var/spack/repos/builtin/packages/relion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,17 +12,18 @@ class Relion(CMakePackage, CudaPackage):
refinement of (multiple) 3D reconstructions or 2D class averages in
electron cryo-microscopy (cryo-EM)."""
- homepage = "http://http://www2.mrc-lmb.cam.ac.uk/relion"
+ homepage = "http://www2.mrc-lmb.cam.ac.uk/relion"
git = "https://github.com/3dem/relion.git"
+ url = "https://github.com/3dem/relion/archive/3.1.0.zip"
- # 3.1 is beta but referenced in published papers
- # prefer stable 3.0 until no longer beta
- version('3.1_beta', branch='ver3.1')
+ version('3.1.3', sha256='e67277200b54d1814045cfe02c678a58d88eb8f988091573453c8568bfde90fc')
+ version('3.1.2', sha256='dcdf6f214f79a03d29f0fed2de58054efa35a9d8401543bdc52bfb177987931f')
+ version('3.1.1', sha256='63e9b77e1ba9ec239375020ad6ff631424d1a5803cba5c608c09fd44d20b1618')
+ version('3.1.0', sha256='8a7e751fa6ebcdf9f36046499b3d88e170c4da86d5ff9ad1914b5f3d178867a8')
# 3.0.8 latest release in 3.0 branch
- # prefer for now
- version('3.0.8', tag='3.0.8', preferred=True)
- version('3.0.7', tag='3.0.7')
+ version('3.0.8', sha256='18cdd58e3a612d32413eb37e473fe8fbf06262d2ed72e42da20356f459260973')
+ version('3.0.7', sha256='a6d37248fc4d0bfc18f4badb7986dc1b6d6849baa2128b0b4dade13cb6991a99')
# relion master contains development code
# contains 3.0 branch code
@@ -40,15 +41,21 @@ class Relion(CMakePackage, CudaPackage):
description='The build type to build',
values=('Debug', 'Release', 'RelWithDebInfo',
'Profiling', 'Benchmarking'))
+ variant('mklfft', default=True, description='Use MKL rather than FFTW for FFT')
+ variant('allow_ctf_in_sagd', default=True, description='Allow CTF-modulation in SAGD, as specified in Claim 1 of patent US10,282,513B2')
depends_on('mpi')
depends_on('cmake@3:', type='build')
- depends_on('fftw precision=float,double')
+ depends_on('fftw precision=float,double', when='~mklfft')
depends_on('fltk', when='+gui')
depends_on('libtiff')
depends_on('cuda', when='+cuda')
depends_on('cuda@9:', when='@3: +cuda')
+ depends_on('tbb', when='~cuda')
+ depends_on('mkl', when='~cuda +mklfft')
+
+ patch('0002-Simple-patch-to-fix-intel-mkl-linking.patch', when='@:3.1.1 os=ubuntu18.04')
def cmake_args(self):
@@ -60,6 +67,7 @@ class Relion(CMakePackage, CudaPackage):
'-DGUI=%s' % ('+gui' in self.spec),
'-DDoublePrec_CPU=%s' % ('+double' in self.spec),
'-DDoublePrec_GPU=%s' % ('+double-gpu' in self.spec),
+ '-DALLOW_CTF_IN_SAGD=%s' % ('+allow_ctf_in_sagd' in self.spec),
]
if '+cuda' in self.spec:
@@ -73,7 +81,7 @@ class Relion(CMakePackage, CudaPackage):
# these new values were added in relion 3
# do not seem to cause problems with < 3
else:
- args += ['-DMKLFFT=ON', '-DFORCE_OWN_TBB=ON', '-DALTCPU=ON']
+ args += ['-DMKLFFT=%s' % ('+mklfft' in self.spec), '-DALTCPU=ON']
return args
diff --git a/var/spack/repos/builtin/packages/remhos/package.py b/var/spack/repos/builtin/packages/remhos/package.py
index 337c0056dd..15ad1355f2 100644
--- a/var/spack/repos/builtin/packages/remhos/package.py
+++ b/var/spack/repos/builtin/packages/remhos/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rempi/package.py b/var/spack/repos/builtin/packages/rempi/package.py
index a7c394f1ab..5ad3dcc0fb 100644
--- a/var/spack/repos/builtin/packages/rempi/package.py
+++ b/var/spack/repos/builtin/packages/rempi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,3 +19,10 @@ class Rempi(AutotoolsPackage):
depends_on("autoconf", type='build')
depends_on("automake", type='build')
depends_on("libtool", type='build')
+ depends_on("libpciaccess", type='link')
+
+ def setup_build_environment(self, env):
+ if self.spec.satisfies('%cce'):
+ env.set('MPICC', 'mpicc')
+ env.set('MPICXX', 'mpicxx')
+ env.set('MPICH_CC', 'cc')
diff --git a/var/spack/repos/builtin/packages/rename/package.py b/var/spack/repos/builtin/packages/rename/package.py
index 6cf3c49278..1d1e1bbe40 100644
--- a/var/spack/repos/builtin/packages/rename/package.py
+++ b/var/spack/repos/builtin/packages/rename/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rendercheck/package.py b/var/spack/repos/builtin/packages/rendercheck/package.py
index b6f4d90438..8a85a40bf5 100644
--- a/var/spack/repos/builtin/packages/rendercheck/package.py
+++ b/var/spack/repos/builtin/packages/rendercheck/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Rendercheck(AutotoolsPackage, XorgPackage):
"""rendercheck is a program to test a Render extension implementation
against separate calculations of expected output."""
- homepage = "http://cgit.freedesktop.org/xorg/app/rendercheck"
+ homepage = "https://cgit.freedesktop.org/xorg/app/rendercheck"
xorg_mirror_path = "app/rendercheck-1.5.tar.gz"
version('1.5', sha256='1553fef61c30f2524b597c3758cc8d3f8dc1f52eb8137417fa0667b0adc8a604')
@@ -18,6 +18,6 @@ class Rendercheck(AutotoolsPackage, XorgPackage):
depends_on('libxrender')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/renderproto/package.py b/var/spack/repos/builtin/packages/renderproto/package.py
index 87f1a6708a..7d1ea7c017 100644
--- a/var/spack/repos/builtin/packages/renderproto/package.py
+++ b/var/spack/repos/builtin/packages/renderproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Renderproto(AutotoolsPackage, XorgPackage):
This extension defines the protcol for a digital image composition as
the foundation of a new rendering model within the X Window System."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/renderproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/renderproto"
xorg_mirror_path = "proto/renderproto-0.11.1.tar.gz"
version('0.11.1', sha256='a0a4be3cad9381ae28279ba5582e679491fc2bec9aab8a65993108bf8dbce5fe')
diff --git a/var/spack/repos/builtin/packages/repeatmasker/package.py b/var/spack/repos/builtin/packages/repeatmasker/package.py
index 15aa062b35..e6483c5666 100644
--- a/var/spack/repos/builtin/packages/repeatmasker/package.py
+++ b/var/spack/repos/builtin/packages/repeatmasker/package.py
@@ -1,19 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+from spack import *
+
class Repeatmasker(Package):
"""RepeatMasker is a program that screens DNA sequences for interspersed
repeats and low complexity DNA sequences."""
- homepage = "http://www.repeatmasker.org"
- url = "http://www.repeatmasker.org/RepeatMasker-open-4-0-7.tar.gz"
+ homepage = "https://www.repeatmasker.org"
+ version('4.1.2-p1', sha256='4be54bf6c050422b211e24a797feb06fd7954c8b4ee6f3ece94cb6faaf6b0e96')
version('4.0.9', sha256='8d67415d89ed301670b7632ea411f794c6e30d8ed0f007a726c4b0a39c8638e5')
version('4.0.7', sha256='16faf40e5e2f521146f6692f09561ebef5f6a022feb17031f2ddb3e3aabcf166')
@@ -25,15 +26,21 @@ class Repeatmasker(Package):
depends_on('hmmer')
depends_on('ncbi-rmblastn')
depends_on('trf')
+ depends_on('python', when='@4.1:', type=('build', 'run'))
+ depends_on('py-h5py', when='@4.1:', type=('build', 'run'))
depends_on('phrap-crossmatch-swat', type=('build', 'run'),
when='+crossmatch')
- patch('utf8.patch')
+ patch('utf8.patch', when='@:4.0')
def url_for_version(self, version):
- url = 'http://www.repeatmasker.org/RepeatMasker-open-{0}.tar.gz'
- return url.format(version.dashed)
+ if version >= Version('4.1.0'):
+ url = 'http://www.repeatmasker.org/RepeatMasker/RepeatMasker-{0}.tar.gz'
+ return url.format(version)
+ else:
+ url = 'http://www.repeatmasker.org/RepeatMasker/RepeatMasker-open-{0}.tar.gz'
+ return url.format(version.dashed)
def install(self, spec, prefix):
# Config questions consist of:
@@ -55,14 +62,14 @@ class Repeatmasker(Package):
config_answers = []
- if spec.satisfies('@4.0.9:'):
+ if spec.satisfies('@:4.0.7'):
# 4.0.9 removes a bunch of the interactive options
- config_answers.append('')
- else:
config_answers.extend(['',
self.spec['perl'].command.path,
- self.stage.source_path,
- self.spec['trf'].prefix.bin.trf])
+ self.stage.source_path])
+
+ # set path to trf
+ config_answers.append(self.spec['trf'].prefix.bin.trf)
# add crossmatch search
if '+crossmatch' in spec:
@@ -75,9 +82,14 @@ class Repeatmasker(Package):
'Y'])
# set non-default HMMER search
- config_answers.extend(['3',
- self.spec['hmmer'].prefix,
- 'N'])
+ if spec.satisfies('@4.0.9:'):
+ config_answers.extend(['3',
+ self.spec['hmmer'].prefix.bin,
+ 'N'])
+ else:
+ config_answers.extend(['4',
+ self.spec['hmmer'].prefix.bin,
+ 'N'])
# end configuration
config_answers.append('5')
diff --git a/var/spack/repos/builtin/packages/repeatmodeler/package.py b/var/spack/repos/builtin/packages/repeatmodeler/package.py
index 3231dd18e8..c40b288f95 100644
--- a/var/spack/repos/builtin/packages/repeatmodeler/package.py
+++ b/var/spack/repos/builtin/packages/repeatmodeler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Repeatmodeler(Package):
"""RepeatModeler is a de-novo repeat family identification and modeling
package."""
- homepage = "http://www.repeatmasker.org/RepeatModeler/"
- url = "http://www.repeatmasker.org/RepeatModeler/RepeatModeler-open-1.0.11.tar.gz"
+ homepage = "https://www.repeatmasker.org/RepeatModeler/"
+ url = "https://www.repeatmasker.org/RepeatModeler/RepeatModeler-open-1.0.11.tar.gz"
version('1.0.11', sha256='7ff0d588b40f9ad5ce78876f3ab8d2332a20f5128f6357413f741bb7fa172193')
diff --git a/var/spack/repos/builtin/packages/repeatscout/package.py b/var/spack/repos/builtin/packages/repeatscout/package.py
index 78a7a54093..b330420f4a 100644
--- a/var/spack/repos/builtin/packages/repeatscout/package.py
+++ b/var/spack/repos/builtin/packages/repeatscout/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class Repeatscout(MakefilePackage):
"""RepeatScout - De Novo Repeat Finder, Price A.L., Jones N.C. and Pevzner
P.A."""
- homepage = "http://www.repeatmasker.org/RepeatModeler/"
- url = "http://www.repeatmasker.org/RepeatScout-1.0.5.tar.gz"
+ homepage = "https://www.repeatmasker.org/RepeatModeler/"
+ url = "https://www.repeatmasker.org/RepeatScout-1.0.5.tar.gz"
version('1.0.5', sha256='bda6f782382f2b7dcb6a004b7da586d5046b3c12429b158e24787be62de6199c')
diff --git a/var/spack/repos/builtin/packages/reprimand/include.patch b/var/spack/repos/builtin/packages/reprimand/include.patch
new file mode 100644
index 0000000000..11d390d154
--- /dev/null
+++ b/var/spack/repos/builtin/packages/reprimand/include.patch
@@ -0,0 +1,32 @@
+--- a/library/EOS_Barotropic/eos_barotr_poly.cc
++++ b/library/EOS_Barotropic/eos_barotr_poly.cc
+@@ -1,6 +1,7 @@
+ #include "eos_barotr_poly.h"
+ #include "eos_barotr_poly_impl.h"
+ #include <cmath>
++#include <limits>
+ #include <stdexcept>
+
+ using namespace std;
+--- a/library/EOS_Barotropic/eos_barotr_pwpoly.cc
++++ b/library/EOS_Barotropic/eos_barotr_pwpoly.cc
+@@ -1,6 +1,7 @@
+ #include "eos_barotr_pwpoly.h"
+ #include "eos_barotr_pwpoly_impl.h"
+-#include <stdexcept>
+-#include <cmath>
++#include <cmath>
++#include <limits>
++#include <stdexcept>
+
+ using namespace std;
+--- a/tests/benchmarks/src/accuracy_con2prim_mhd.cc
++++ b/tests/benchmarks/src/accuracy_con2prim_mhd.cc
+@@ -9,6 +9,7 @@
+ #include <fstream>
+ #include <iomanip>
+ #include <string>
++#include <limits>
+ #include "con2prim_imhd.h"
+ #include "eos_thermal_file.h"
+ #include "eos_hybrid.h"
diff --git a/var/spack/repos/builtin/packages/reprimand/package.py b/var/spack/repos/builtin/packages/reprimand/package.py
new file mode 100644
index 0000000000..d57c60b3e2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/reprimand/package.py
@@ -0,0 +1,57 @@
+# Copyright 2013-2021 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 Reprimand(MesonPackage):
+ """RePrimAnd is a support library for numerical simulations of general
+ relativistic magnetohydrodynamics. If provides methods for recovering
+ primitive variables like pressure and velocity from the variables evolved
+ in quasi-conservative formulations. Further, it provides a general
+ framework for handling matter equations of state."""
+
+ homepage = "https://www.atlas.aei.uni-hannover.de/holohome/wolfgang.kastaun/doc/reprimand/latest/index.html"
+ url = "https://github.com/wokast/RePrimAnd/archive/refs/tags/v1.3.tar.gz"
+
+ maintainers = ['eschnett']
+
+ version('develop', git='https://github.com/wokast/RePrimAnd', branch='public')
+ version('1.3', sha256='8e9f05b1f065a876d1405562285a9f64d1b31c4a436d5a6bb1f023212b40314e')
+
+ # Add missing #include statments; see
+ # <https://github.com/wokast/RePrimAnd/issues/3>
+ patch('include.patch', when='@1.3')
+
+ variant('python', default=False, description='Enable Python bindings')
+ variant('shared', default=True, description='Build shared library')
+
+ depends_on('boost')
+ depends_on('gsl')
+ depends_on('hdf5')
+ depends_on('python', when='+python')
+ depends_on('py-matplotlib', when='+python')
+ depends_on('py-pybind11 @2.6.0:', when='+python')
+
+ extends('python', when='+python')
+
+ def setup_build_environment(self, env):
+ env.set('CXXFLAGS', self.compiler.cxx11_flag)
+ env.set('BOOST_ROOT', self.spec['boost'].prefix)
+
+ def meson_args(self):
+ args = [
+ '-Dbuild_documentation=false',
+ '-Dbuild_python_api={0}'.format(
+ str('+python' in self.spec).lower()),
+ ]
+ return args
+
+ @property
+ def libs(self):
+ shared = "+shared" in self.spec
+ return find_libraries(
+ "libRePrimAnd*", root=self.prefix, shared=shared, recursive=True
+ )
diff --git a/var/spack/repos/builtin/packages/resourceproto/package.py b/var/spack/repos/builtin/packages/resourceproto/package.py
index 3c5f74eddc..a251770403 100644
--- a/var/spack/repos/builtin/packages/resourceproto/package.py
+++ b/var/spack/repos/builtin/packages/resourceproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Resourceproto(AutotoolsPackage, XorgPackage):
This extension defines a protocol that allows a client to query the
X server about its usage of various resources."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/resourceproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/resourceproto"
xorg_mirror_path = "proto/resourceproto-1.2.0.tar.gz"
version('1.2.0', sha256='469029d14fdeeaa7eed1be585998ff4cb92cf664f872d1d69c04140815b78734')
diff --git a/var/spack/repos/builtin/packages/revbayes/package.py b/var/spack/repos/builtin/packages/revbayes/package.py
index e3703b2e52..9fd795856e 100644
--- a/var/spack/repos/builtin/packages/revbayes/package.py
+++ b/var/spack/repos/builtin/packages/revbayes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,7 @@ class Revbayes(CMakePackage):
git = "https://github.com/revbayes/revbayes.git"
version('develop', branch='development')
+ version('1.1.1', sha256='d61293fceac817d8203ed1e828661d76c73fa16bf04458a50a37057e99fd40c0')
version('1.1.0', sha256='a9f35178d8289d0dd32c9d936f6384f260e8e81e7b80a5155169064a24666012')
version('1.0.13', sha256='e85e2e1fe182fe9f504900150d936a06d252a362c591b9d3d8272dd085aa85d9')
version('1.0.12', sha256='80c926bb6b37288d02e36e07b44e4663841cd1fe541e2cc0b0e44c89ca929759')
diff --git a/var/spack/repos/builtin/packages/revocap-coupler/package.py b/var/spack/repos/builtin/packages/revocap-coupler/package.py
index 6bc128152d..1869573714 100644
--- a/var/spack/repos/builtin/packages/revocap-coupler/package.py
+++ b/var/spack/repos/builtin/packages/revocap-coupler/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
@@ -14,6 +15,8 @@ class RevocapCoupler(AutotoolsPackage):
homepage = "http://www.ciss.iis.u-tokyo.ac.jp/dl/index.php"
url = "file://{0}/REVOCAP_Coupler-2.1.tar.gz".format(os.getcwd())
+ manual_download = True
+
version('2.1', sha256='9e7612d5c508ccdce23bff9ccbf62aeb635877bc2276cdc05c109de40f609f49')
depends_on('mpi')
diff --git a/var/spack/repos/builtin/packages/revocap-refiner/package.py b/var/spack/repos/builtin/packages/revocap-refiner/package.py
index f95e8f6e1d..36ae876599 100644
--- a/var/spack/repos/builtin/packages/revocap-refiner/package.py
+++ b/var/spack/repos/builtin/packages/revocap-refiner/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rgb/package.py b/var/spack/repos/builtin/packages/rgb/package.py
index 416aef769c..648abe4158 100644
--- a/var/spack/repos/builtin/packages/rgb/package.py
+++ b/var/spack/repos/builtin/packages/rgb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,11 +15,11 @@ class Rgb(AutotoolsPackage, XorgPackage):
The "others" subdirectory contains some alternate color databases."""
- homepage = "http://cgit.freedesktop.org/xorg/app/rgb"
+ homepage = "https://cgit.freedesktop.org/xorg/app/rgb"
xorg_mirror_path = "app/rgb-1.0.6.tar.gz"
version('1.0.6', sha256='cb998035e08b9f58ad3150cab60461c3225bdd075238cffc665e24da40718933')
depends_on('xorg-server')
- depends_on('xproto', type='build')
+ depends_on('xproto')
diff --git a/var/spack/repos/builtin/packages/rhash/package.py b/var/spack/repos/builtin/packages/rhash/package.py
index e5e12eaa93..eee6a50b03 100644
--- a/var/spack/repos/builtin/packages/rhash/package.py
+++ b/var/spack/repos/builtin/packages/rhash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rinetd/package.py b/var/spack/repos/builtin/packages/rinetd/package.py
index bc02248539..91c0c4ea19 100644
--- a/var/spack/repos/builtin/packages/rinetd/package.py
+++ b/var/spack/repos/builtin/packages/rinetd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ripgrep/package.py b/var/spack/repos/builtin/packages/ripgrep/package.py
index eadaa6df79..6fc73655a1 100644
--- a/var/spack/repos/builtin/packages/ripgrep/package.py
+++ b/var/spack/repos/builtin/packages/ripgrep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rivet/package.py b/var/spack/repos/builtin/packages/rivet/package.py
index 3d28b81632..e9f394474f 100644
--- a/var/spack/repos/builtin/packages/rivet/package.py
+++ b/var/spack/repos/builtin/packages/rivet/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Rivet(AutotoolsPackage):
"""Rivet - the particle-physics MC analysis toolkit"""
@@ -13,51 +14,59 @@ class Rivet(AutotoolsPackage):
homepage = "https://rivet.hepforge.org/"
url = "https://rivet.hepforge.org/downloads/?f=Rivet-3.1.2.tar.bz2"
+ tags = ['hep']
+
+ version('3.1.3', sha256='53ddce41705b9c22b2eaa90603f6659aa9bf46c466d8772ca9dbe4430972e021')
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')
+ version('2.7.2b', sha256='e9f0a709f8226cde54f9406d36efab1e1b8ed0c6574fbcb1d72a186b09188106', deprecated=True)
+ version('2.7.2', sha256='a6634537c005660e56514b70ab9efb9d466c50685d6fb45ed03e9e1988479f02', deprecated=True)
+ version('2.7.1', sha256='b4145d8369b8a9fa0ada7ba2e5a2e9992d8e4a12ca4874d835246d2e708cbdef', deprecated=True)
+ version('2.7.0', sha256='34ad6a0b47dc4736feac8580a275e8b3a46df8fbeefd91e813add0a1525aacaf', deprecated=True)
+ version('2.6.2', sha256='9dde49d5c02038a295f03d2972f85be8746205bdb5ca1eab868b2c9129ade37a', deprecated=True)
+ version('2.6.1', sha256='e490d1f35aafa3e175690ae92f862c07a5fe2c51f693c88c87789f0441c89022', deprecated=True)
+ version('2.6.0', sha256='fb3229dccd31ea40b0af09974253073f6ad0a3a97e9a0cf44b53748ea8e2f900', deprecated=True)
+ version('2.5.4', sha256='772252193698d994fd111f790e72a4024df7572d492e3d5a9e840a074c5527e2', deprecated=True)
+ version('2.5.3', sha256='99e10330564ac479c6637d317c08882889a272db8ee204ad45a6ee1dcb291de4', deprecated=True)
+ version('2.5.2', sha256='70aa27764a14159c94c0b753a0c3d3600ac669def398cb2d8a6c63ae17704f05', deprecated=True)
+ version('2.5.1', sha256='14ee5828de217e96a30e666192515a2083afee030d81d36fc6bea948e9f7810a', deprecated=True)
+ version('2.5.0', sha256='c59ff35715be0caf65d6ba808b3badad0f6f7e7758f2049fb6ba43ed579bd4af', deprecated=True)
+ version('2.4.3', sha256='18aafecab6c3baeac871a9743946433c2dc01825d8fe291b157719a15c342682', deprecated=True)
+ version('2.4.2', sha256='accb146f3082719781a51eec879427c31401577c44f60b27ec8450102fe68aff', deprecated=True)
+ version('2.4.1', sha256='c14f0f58d1792d84d62c62b44ebb94db004776feba83fd8186bba898d55123cf', deprecated=True)
+ version('2.4.0', sha256='5ee2f34a277ed058b8aef750d946b40d4cf781023b9adab03ca95e803a39fb06', deprecated=True)
+ version('2.3.0', sha256='dd07702981d586e4b97b0fa56ae08cd08a631a952322a9b52e7622a46a7741ab', deprecated=True)
+ version('2.2.1', sha256='9e64ba19d567bdf4d0cc42b435491c4363b5fec90170d034445a99a1e752b691', deprecated=True)
+ version('2.2.0', sha256='3bdafe2007ff54c4734e0c8bc6ba9dc97028d4c41d538201b9582a869af8ae1a', deprecated=True)
+ version('2.1.2', sha256='40a20c1ee186326e5bfd906e0bc88f16dc740551be9cc274e9a826873d9c1eed', deprecated=True)
+ version('2.1.1', sha256='eefa936de6f6c34a6bab39899841f3189d7621c8ba227032f0f32e6e20dfcf85', deprecated=True)
+ version('2.1.0', sha256='58a1ca7b5a47719933782c050e67d0eb3823a7384cfc3c434fece41724c307e6', deprecated=True)
+ version('2.0.0', sha256='038f81f92fbba001ed23b56c1229a4f3b41e0c32e00bc92ea58d042909e3855a', deprecated=True)
+ version('1.9.0', sha256='55ef552b351328c287194aa99fa2b797e6632dc3fa88dfccd58264602012e044', deprecated=True)
+ version('1.8.3', sha256='aa82742fd4d7c68bfbef1367c4c605e06f9fed479a753db96aa6659407fcc4fd', deprecated=True)
+ version('1.8.2', sha256='56be98d31693253543f3e657c8f8edc7979c89fdb0ede1bdddfb3a9f5d4cfc3a', deprecated=True)
+ version('1.8.1', sha256='7e06d22350bec30220186e796caa93e9bfebd8d771a7efd35673897248437c61', deprecated=True)
+ version('1.8.0', sha256='7b28f9163f74583b1542b87c48f28a3ad1338da6136d8e3ca0aeba21095f5fe0', deprecated=True)
+ version('1.7.0', sha256='180741f590f210474b686d60241ad59e008221751ead21f0950c59aff93e54fd', deprecated=True)
+ version('1.6.0', sha256='1affd9e779f48477402e4150f315b3179204cbbc920db2d0129cd9c38bd18b26', deprecated=True)
+ version('1.5.1', sha256='9f24e9824286d5b0302c7e440f4803a8e3b8da50e1260e78c3b3c2eb587b317a', deprecated=True)
+ version('1.5.0', sha256='b7fe63e8caacc5c038ab567fe505d275288eedaa1aed6c379057629eef126006', deprecated=True)
+ version('1.4.0', sha256='067c94659bb7859904e20e72a676f94f103e6e012b7dba8071f51e8a6e624dbb', deprecated=True)
+ version('1.3.0', sha256='5ce41c8492c2fcf809a7135bf8335a01a98ea85fb556b3d00bd4260151efd12f', deprecated=True)
+ version('1.2.1', sha256='2d0380b819f778d8d9c2a462af90bd6a6188121e4edcc6202d936130b59bab17', deprecated=True)
+ version('1.2.0', sha256='ff5869f6dc9465f429e54686e12c39becac57a83273542179a59bac7561b6404', deprecated=True)
+ version('1.1.3', sha256='4be3cd9e6f808cdc5511991be2756f5fa838b6ecd01806fdbe7aec0aa382f946', deprecated=True)
+ version('1.1.2', sha256='a15b5d3339481446dec1b719d7d531a87a2e9d11c9fe8044e270ea69611b07c8', deprecated=True)
+ version('1.1.1', sha256='bd87fefee6bb8368216755342dc80ab3f8f3c813732dd03c6f94135d45f7036b', deprecated=True)
+
+ variant('hepmc', default='2', values=('2', '3'),
+ description="HepMC version to link against")
+
+ conflicts('hepmc=3', when='@:2.99', msg='HepMC support was added in 3.0')
# According to A. Buckley (main Rivet developer):
# "typically a given Rivet version will work with
@@ -89,18 +98,21 @@ class Rivet(AutotoolsPackage):
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')
+ depends_on('yoda@1.8.5:', when='@3.1.3:')
# 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.7.0:1.7.999', when='@2.6.0,2.7.0,2.7.1,3.0.0,3.0.2')
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('hepmc', type=('build', 'run'), when='hepmc=2')
+ depends_on('hepmc3', type=('build', 'run'), when='hepmc=3')
+ depends_on('boost', when='@:2.5.0', 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('gsl', type=('build', 'run'), when='@:2.6.0,2.6.2:2.99.99')
depends_on('python', type=('build', 'run'))
+ depends_on('py-cython@0.24.0:', type='build')
depends_on('swig', type=('build', 'run'))
depends_on('yaml-cpp', when='@2.0.0:2.1.2', type=('build', 'run'))
@@ -141,30 +153,44 @@ class Rivet(AutotoolsPackage):
def setup_build_environment(self, env):
# this avoids an "import site" error in the build
env.unset('PYTHONHOME')
+ fjcontrib_home = self.spec['fjcontrib'].prefix
+ env.prepend_path('LD_LIBRARY_PATH', fjcontrib_home.lib)
+
+ def flag_handler(self, name, flags):
+ if self.spec.satisfies('@3.1.2:') and name == 'cxxflags':
+ flags.append('-faligned-new')
+ return (None, None, flags)
+ return (flags, None, None)
def configure_args(self):
args = []
- args += ['--with-hepmc=' + self.spec['hepmc'].prefix]
+ if self.spec.variants['hepmc'].value == '2':
+ args += ['--with-hepmc=' + self.spec['hepmc'].prefix]
+ else:
+ args += ['--with-hepmc3=' + 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:'):
+ if self.spec.satisfies('@:2.5.0'):
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:'):
+ if self.spec.satisfies('@:2.6.0,2.6.2:2.99.99'):
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.5.1'):
+ args += ['--enable-unvalidated']
- if self.spec.satisfies('@2:'):
+ if self.spec.satisfies('@2:2.4.99'):
args += ['--enable-stdcxx11']
+ args += ['--disable-pdfmanual']
+
return args
diff --git a/var/spack/repos/builtin/packages/rlwrap/package.py b/var/spack/repos/builtin/packages/rlwrap/package.py
index a3d0e4c41a..1a5e6ce1f7 100644
--- a/var/spack/repos/builtin/packages/rlwrap/package.py
+++ b/var/spack/repos/builtin/packages/rlwrap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rmats/package.py b/var/spack/repos/builtin/packages/rmats/package.py
index 0563c5ddfd..6e6b2ffad7 100644
--- a/var/spack/repos/builtin/packages/rmats/package.py
+++ b/var/spack/repos/builtin/packages/rmats/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 symlink
+from spack import *
+
class Rmats(Package):
"""MATS is a computational tool to detect differential alternative
diff --git a/var/spack/repos/builtin/packages/rmgdft/package.py b/var/spack/repos/builtin/packages/rmgdft/package.py
new file mode 100644
index 0000000000..b251fe4539
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rmgdft/package.py
@@ -0,0 +1,96 @@
+# Copyright 2013-2021 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 Rmgdft(CMakePackage):
+ """RMGDFT is a high performance real-space density functional code
+ designed for large scale electronic structure calculations."""
+
+ homepage = "http://www.rmgdft.org/"
+ git = "https://github.com/RMGDFT/rmgdft.git"
+ maintainers = ['elbriggs']
+ tags = ['ecp', 'ecp-apps']
+ version('master', branch='master')
+ version('4.2.2', tag='v4.2.2')
+ version('4.2.1', tag='v4.2.1')
+
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo'))
+
+ variant('qmcpack', default=True,
+ description='Build with qmcpack interface.')
+
+ variant('local_orbitals', default=True,
+ description='Build O(N) variant.')
+
+ # Normally we want this but some compilers (e.g. IBM) are
+ # very slow when this is on so provide the option to disable
+ variant('internal_pp', default=True,
+ description='Include built-in pseudopotentials. Normally '
+ 'enabled but some compilers are slow when '
+ 'this is on so provide a disable option.')
+
+ # RMGDFT 4.0.0 or later requires compiler support for C++14
+ compiler_warning = 'RMGDFT 4.0.0 or later requires a ' \
+ 'compiler with support for C++14'
+ conflicts('%gcc@:4', when='@3.6.0:', msg=compiler_warning)
+ conflicts('%intel@:17', when='@3.6.0:', msg=compiler_warning)
+ conflicts('%pgi@:17', when='@3.6.0:', msg=compiler_warning)
+ conflicts('%llvm@:3.4', when='@3.6.0:', msg=compiler_warning)
+
+ depends_on('cmake', type='build')
+ depends_on('boost@1.66.0:')
+ depends_on('fftw-api@3')
+ depends_on('mpi')
+ depends_on('hdf5')
+
+ # RMG is a hybrid MPI/threads code and performance is
+ # highly dependent on the threading model of the blas
+ # libraries. Openblas-openmp is known to work well
+ # so if spack yields a non-performant build you can
+ # try to adjust your system config to use it.
+ depends_on('blas')
+ conflicts('^atlas',
+ msg='The atlas threading model is incompatible with RMG')
+
+ @property
+ def build_targets(self):
+ spec = self.spec
+ targets = ['rmg-cpu']
+ if '+local_orbitals' in spec:
+ targets.append('rmg-on-cpu')
+ return targets
+
+ def cmake_args(self):
+ spec = self.spec
+ args = []
+ if '+qmcpack' in spec:
+ args.append('-DQMCPACK=1')
+ else:
+ args.append('-DQMCPACK=0')
+ if '+internal_pp' in spec:
+ args.append('-DUSE_INTERNAL_PSEUDOPOTENTIALS=1')
+ else:
+ args.append('-DUSE_INTERNAL_PSEUDOPOTENTIALS=0')
+ return args
+
+ def install(self, spec, prefix):
+
+ # create top-level directories
+ mkdirp(prefix.bin)
+ mkdirp(prefix.share.tests.RMG)
+
+ with working_dir(self.build_directory):
+ install('rmg-cpu', prefix.bin)
+ if '+local_orbitals' in spec:
+ install('rmg-on-cpu', prefix.bin)
+
+ # install tests
+ with working_dir(self.build_directory):
+ install_tree('tests/RMG', prefix.share.tests.RMG)
diff --git a/var/spack/repos/builtin/packages/rmlab/package.py b/var/spack/repos/builtin/packages/rmlab/package.py
index 21e96c51c4..58ed4f4a3f 100644
--- a/var/spack/repos/builtin/packages/rmlab/package.py
+++ b/var/spack/repos/builtin/packages/rmlab/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -29,10 +29,7 @@ class Rmlab(CMakePackage):
depends_on('pngwriter@0.6.0:', when='+png')
def cmake_args(self):
- spec = self.spec
-
args = [
- '-DRmlab_USE_PNG={0}'.format(
- 'ON' if '+png' in spec else 'OFF')
+ self.define_from_variant('Rmlab_USE_PNG', 'png')
]
return args
diff --git a/var/spack/repos/builtin/packages/rna-seqc/package.py b/var/spack/repos/builtin/packages/rna-seqc/package.py
index 0f357ae0c0..0ff7d38900 100644
--- a/var/spack/repos/builtin/packages/rna-seqc/package.py
+++ b/var/spack/repos/builtin/packages/rna-seqc/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class RnaSeqc(Package):
"""RNA-SeQC is a java program which computes a series of quality control
diff --git a/var/spack/repos/builtin/packages/rnaquast/package.py b/var/spack/repos/builtin/packages/rnaquast/package.py
new file mode 100644
index 0000000000..edc3ab0d8c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rnaquast/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Rnaquast(Package):
+ """Quality assessment of de novo transcriptome assemblies from RNA-Seq data
+
+ rnaQUAST is a tool for evaluating RNA-Seq assemblies using reference genome
+ and gene database. In addition, rnaQUAST is also capable of estimating gene
+ database coverage by raw reads and de novo quality assessment
+ using third-party software."""
+
+ homepage = "https://github.com/ablab/rnaquast"
+ url = "https://github.com/ablab/rnaquast/archive/refs/tags/v2.2.0.tar.gz"
+
+ maintainers = ['dorton21']
+
+ version('2.2.0', sha256='117dff9d9c382ba74b7b0ff24bc7b95b9ca6aa701ebf8afd22943aa54e382334')
+
+ depends_on('python@2.5:', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-joblib', type=('build', 'run'))
+ depends_on('py-gffutils', type=('build', 'run'))
+ depends_on('gmap-gsnap', type=('build', 'run'))
+ depends_on('blast-plus', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ install_tree('.', prefix.bin)
+ os.rename('%s/rnaQUAST.py' % prefix.bin, '%s/rnaQUAST' % prefix.bin)
+
+ def setup_run_environment(self, env):
+ env.prepend_path('PATH', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/rnaz/package.py b/var/spack/repos/builtin/packages/rnaz/package.py
index 89679aa4ef..fc52e583c6 100644
--- a/var/spack/repos/builtin/packages/rnaz/package.py
+++ b/var/spack/repos/builtin/packages/rnaz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rng-tools/package.py b/var/spack/repos/builtin/packages/rng-tools/package.py
index c2a3a41bf3..f0a8726f9e 100644
--- a/var/spack/repos/builtin/packages/rng-tools/package.py
+++ b/var/spack/repos/builtin/packages/rng-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rngstreams/package.py b/var/spack/repos/builtin/packages/rngstreams/package.py
index 4c6483d30e..f3f84a683c 100644
--- a/var/spack/repos/builtin/packages/rngstreams/package.py
+++ b/var/spack/repos/builtin/packages/rngstreams/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Rngstreams(AutotoolsPackage):
"""Multiple independent streams of pseudo-random numbers."""
- homepage = "http://statmath.wu.ac.at/software/RngStreams"
- url = "http://statmath.wu.ac.at/software/RngStreams/rngstreams-1.0.1.tar.gz"
+ homepage = "https://statmath.wu.ac.at/software/RngStreams"
+ url = "https://statmath.wu.ac.at/software/RngStreams/rngstreams-1.0.1.tar.gz"
version('1.0.1', sha256='966195febb9fb9417e4e361948843425aee12efc8b4e85332acbcd011ff2d9b0')
diff --git a/var/spack/repos/builtin/packages/rnpletal/corrections.diff b/var/spack/repos/builtin/packages/rnpletal/corrections.diff
new file mode 100644
index 0000000000..1df2a3c71e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rnpletal/corrections.diff
@@ -0,0 +1,863 @@
+diff -ru rnpletal.orig/aclocal.m4 rnpletal/aclocal.m4
+--- rnpletal.orig/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/cliser/aclocal.m4 rnpletal/cliser/aclocal.m4
+--- rnpletal.orig/cliser/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/cliser/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/cvtestsdf/aclocal.m4 rnpletal/cvtestsdf/aclocal.m4
+--- rnpletal.orig/cvtestsdf/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/cvtestsdf/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/netlib_fftpack/aclocal.m4 rnpletal/netlib_fftpack/aclocal.m4
+--- rnpletal.orig/netlib_fftpack/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/netlib_fftpack/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/netlib_lapack3.0/aclocal.m4 rnpletal/netlib_lapack3.0/aclocal.m4
+--- rnpletal.orig/netlib_lapack3.0/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/netlib_lapack3.0/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/netlib_linpack/aclocal.m4 rnpletal/netlib_linpack/aclocal.m4
+--- rnpletal.orig/netlib_linpack/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/netlib_linpack/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/netlib_odepack/aclocal.m4 rnpletal/netlib_odepack/aclocal.m4
+--- rnpletal.orig/netlib_odepack/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/netlib_odepack/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+Only in rnpletal.orig/rnpl: .#configure.1.8
+diff -ru rnpletal.orig/rnpl/aclocal.m4 rnpletal/rnpl/aclocal.m4
+--- rnpletal.orig/rnpl/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/rnpl/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/rnpl/configure rnpletal/rnpl/configure
+--- rnpletal.orig/rnpl/configure 2021-06-03 19:30:51.000000000 -0400
++++ rnpletal/rnpl/configure 2021-07-29 14:55:34.000000000 -0400
+@@ -3353,7 +3353,7 @@
+ CXXFLAGS="$CXXFLAGS -DLINUX -DPORT_GROUP -DWant_c_files"
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -3484,11 +3484,11 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+@@ -4988,7 +4988,7 @@
+ CXXFLAGS="$CXXFLAGS -DLINUX -DPORT_GROUP -DWant_c_files"
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -5119,11 +5119,11 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+@@ -5887,7 +5887,7 @@
+ CXXFLAGS="$CXXFLAGS -DLINUX -DPORT_GROUP -DWant_c_files"
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -6018,11 +6018,11 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+@@ -6902,7 +6902,7 @@
+ CXXFLAGS="$CXXFLAGS -DLINUX -DPORT_GROUP -DWant_c_files"
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -7033,11 +7033,11 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+@@ -7867,7 +7867,7 @@
+ CXXFLAGS="$CXXFLAGS -DLINUX -DPORT_GROUP -DWant_c_files"
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -7998,11 +7998,11 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/rnpl/etc/sdfdump.c rnpletal/rnpl/etc/sdfdump.c
+--- rnpletal.orig/rnpl/etc/sdfdump.c 2019-05-04 15:12:04.000000000 -0400
++++ rnpletal/rnpl/etc/sdfdump.c 2021-07-29 14:29:12.000000000 -0400
+@@ -5,6 +5,7 @@
+ Copyright 2003- Matthew W. Choptuik, (main/1d) Frank Loeffler (2d)
+ */
+
++#include <math.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+diff -ru rnpletal.orig/rnpl/etc/sdffilter.c rnpletal/rnpl/etc/sdffilter.c
+--- rnpletal.orig/rnpl/etc/sdffilter.c 2013-07-09 00:30:15.000000000 -0400
++++ rnpletal/rnpl/etc/sdffilter.c 2021-07-29 14:28:40.000000000 -0400
+@@ -7,6 +7,7 @@
+ #include <sdf_priv.h>
+ #include <sdf.h>
+ #include "sdffilter.h"
++#include "../src/bbhutil_f.h"
+
+ #define ON 1
+ #define OFF 0
+diff -ru rnpletal.orig/rnpl/etc/sdfinfo.c rnpletal/rnpl/etc/sdfinfo.c
+--- rnpletal.orig/rnpl/etc/sdfinfo.c 2013-07-09 00:30:15.000000000 -0400
++++ rnpletal/rnpl/etc/sdfinfo.c 2021-07-29 14:53:58.000000000 -0400
+@@ -28,7 +28,7 @@
+ return dm;
+ }
+
+-main(int argc, char **argv)
++int main(int argc, char **argv)
+ {
+ int rank,csize,dsize,version,*shape=NULL;
+ int i;
+diff -ru rnpletal.orig/rnpl/etc/sdfslice_util.c rnpletal/rnpl/etc/sdfslice_util.c
+--- rnpletal.orig/rnpl/etc/sdfslice_util.c 2013-07-08 20:38:27.000000000 -0400
++++ rnpletal/rnpl/etc/sdfslice_util.c 2021-07-29 14:31:10.000000000 -0400
+@@ -1,5 +1,9 @@
+ #include "sdfslice_util.h"
+
++void d3dump_(double*a,int*d1,int*d2,int*d3,char*label,int*unit,long);
++void d3slice_(double*ain,double*aout,int*d1in,int*d2in,int*d3in,int*d1out,int*d2out,int*d3out,
++ int*d1sl,int*d2sl,int*d3sl);
++
+ /*----------------------------------------------------------------------
+ * Slices data in 'in' according to ivec and/or fvec specificiations
+ * and returns pointer to sliced data.
+diff -ru rnpletal.orig/rnpl/etc/sdftosv.c rnpletal/rnpl/etc/sdftosv.c
+--- rnpletal.orig/rnpl/etc/sdftosv.c 2013-07-08 20:38:27.000000000 -0400
++++ rnpletal/rnpl/etc/sdftosv.c 2021-07-29 14:20:34.000000000 -0400
+@@ -6,12 +6,16 @@
+
+ #include <stdlib.h>
+ #include <stdio.h>
++#include <string.h>
++#include <unistd.h>
+ #include <bbhutil.h>
+ #include <sdf_priv.h>
+
+ #define VERSION "1.0"
+ #define CHUNK_SIZE (32 * (1024*1024))
+
++int dump_mser(char *nm,int nlvls,double *tv,double *x,double *y,int *nx);
++
+ int rjava_ser(char *nm, double time, double *cds, double *data, int size)
+ {
+ #ifdef HAVE_LIBSV
+@@ -98,7 +102,7 @@
+ return s;
+ }
+
+-main(int argc, char **argv)
++int main(int argc, char **argv)
+ {
+ int rank,*shape,nlvls,ntlevs,res,n,unam=0,single=0;
+ double time,*data,*coords;
+diff -ru rnpletal.orig/rnpl/etc/sdftranspose.c rnpletal/rnpl/etc/sdftranspose.c
+--- rnpletal.orig/rnpl/etc/sdftranspose.c 2013-07-08 20:38:27.000000000 -0400
++++ rnpletal/rnpl/etc/sdftranspose.c 2021-07-29 14:21:50.000000000 -0400
+@@ -7,6 +7,7 @@
+ #include <sdf_priv.h>
+ #include <sdf.h>
+ #include "sdftranspose.h"
++#include "../src/bbhutil.h"
+
+ int main(int argc, char **argv) {
+ static char P[] = "sdftranspose";
+diff -ru rnpletal.orig/rnpl/examples/get_param/t_get_param.c rnpletal/rnpl/examples/get_param/t_get_param.c
+--- rnpletal.orig/rnpl/examples/get_param/t_get_param.c 2014-10-18 00:06:17.000000000 -0400
++++ rnpletal/rnpl/examples/get_param/t_get_param.c 2021-07-29 15:16:26.000000000 -0400
+@@ -1,5 +1,6 @@
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <bbhutil.h>
+
+ /*
+diff -ru rnpletal.orig/rnpl/examples/get_param/t_get_param_v.c rnpletal/rnpl/examples/get_param/t_get_param_v.c
+--- rnpletal.orig/rnpl/examples/get_param/t_get_param_v.c 2013-07-08 20:38:27.000000000 -0400
++++ rnpletal/rnpl/examples/get_param/t_get_param_v.c 2021-07-29 15:16:41.000000000 -0400
+@@ -1,6 +1,5 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <malloc.h>
+ #include <bbhutil.h>
+
+ /* ----------------------------------------------------
+diff -ru rnpletal.orig/rnpl/examples/get_param/t_get_str_param.c rnpletal/rnpl/examples/get_param/t_get_str_param.c
+--- rnpletal.orig/rnpl/examples/get_param/t_get_str_param.c 2013-07-08 20:38:27.000000000 -0400
++++ rnpletal/rnpl/examples/get_param/t_get_str_param.c 2021-07-29 15:17:01.000000000 -0400
+@@ -1,4 +1,5 @@
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <bbhutil.h>
+
+ int main(int argc, char **argv) {
+diff -ru rnpletal.orig/rnpl/examples/get_param/t_is_param_assigned.c rnpletal/rnpl/examples/get_param/t_is_param_assigned.c
+--- rnpletal.orig/rnpl/examples/get_param/t_is_param_assigned.c 2013-07-08 20:38:27.000000000 -0400
++++ rnpletal/rnpl/examples/get_param/t_is_param_assigned.c 2021-07-29 15:38:39.000000000 -0400
+@@ -1,4 +1,5 @@
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <bbhutil.h>
+
+ /*
+diff -ru rnpletal.orig/rnpl/examples/get_param/t_regex.c rnpletal/rnpl/examples/get_param/t_regex.c
+--- rnpletal.orig/rnpl/examples/get_param/t_regex.c 2013-07-08 20:38:27.000000000 -0400
++++ rnpletal/rnpl/examples/get_param/t_regex.c 2021-07-29 15:38:39.000000000 -0400
+@@ -1,4 +1,5 @@
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <regex.h>
+
+diff -ru rnpletal.orig/rnpl/src/bbhutil.c rnpletal/rnpl/src/bbhutil.c
+--- rnpletal.orig/rnpl/src/bbhutil.c 2014-06-12 14:13:01.000000000 -0400
++++ rnpletal/rnpl/src/bbhutil.c 2021-07-29 14:16:59.000000000 -0400
+@@ -16,6 +16,8 @@
+ /* to minimize amount of file open/closes, particularly in context */
+ /* of massively parallel execution. */
+
++#include <ctype.h>
++#include <math.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff -ru rnpletal.orig/rnpl/src/bbhutil.h rnpletal/rnpl/src/bbhutil.h
+--- rnpletal.orig/rnpl/src/bbhutil.h 2019-10-13 19:53:48.000000000 -0400
++++ rnpletal/rnpl/src/bbhutil.h 2021-07-28 23:04:33.000000000 -0400
+@@ -6,7 +6,6 @@
+
+ #include <sdf.h>
+ #include <sys/types.h>
+-#include <sys/sysmacros.h>
+
+ #define MAXRANK 5
+
+diff -ru rnpletal.orig/rnpl/src/genf77extern.c rnpletal/rnpl/src/genf77extern.c
+--- rnpletal.orig/rnpl/src/genf77extern.c 2014-10-18 00:06:36.000000000 -0400
++++ rnpletal/rnpl/src/genf77extern.c 2021-07-29 14:53:30.000000000 -0400
+@@ -1,3 +1,4 @@
++#include <ctype.h>
+ #include <string.h>
+
+ void fort_call(char *s)
+diff -ru rnpletal.orig/rnpl/src/librnplf77.f rnpletal/rnpl/src/librnplf77.f
+--- rnpletal.orig/rnpl/src/librnplf77.f 2013-07-08 20:38:27.000000000 -0400
++++ rnpletal/rnpl/src/librnplf77.f 2021-07-29 15:16:01.000000000 -0400
+@@ -289,7 +289,7 @@
+ integer ixspan, makind
+ c
+ character*(*) prstr
+- integer iv(1)
++ integer iv(*)
+ integer liv, mxliv, prunit, sup
+ c
+ integer rdunit
+@@ -479,7 +479,7 @@
+ subroutine psexpr(s,curs,st,fin,inc,ngroup,sucess)
+ c
+ character*(*) s
+- integer inc(1), fin(1), st(1), curs, ngroup
++ integer inc(*), fin(*), st(*), curs, ngroup
+ logical sucess
+ c
+ character*80 tok
+@@ -525,7 +525,7 @@
+ c
+ integer makind
+ c
+- integer iv(1)
++ integer iv(*)
+ integer inf, liv, mxliv, rdunit, sup
+ c
+ character*80 cline
+@@ -571,7 +571,7 @@
+ c
+ integer makind
+ c
+- integer iv(1)
++ integer iv(*)
+ integer inf, liv, mxliv, rdunit, sup
+ c
+ character*80 cline
+@@ -617,7 +617,7 @@
+ c
+ integer makind
+ c
+- integer iv(1)
++ integer iv(*)
+ integer inf, liv, mxliv, sup
+ c
+ character*(*) cline
+@@ -661,7 +661,7 @@
+ c
+ integer makind
+ c
+- integer iv(1)
++ integer iv(*)
+ integer inf, liv, mxliv, sup
+ c
+ character*(*) cline
+@@ -833,7 +833,7 @@
+ c
+ subroutine livrmp(v,v0,vinc,n)
+ c
+- integer v(1)
++ integer v(*)
+ integer v0, vinc
+ integer i, n
+ c
+@@ -856,7 +856,7 @@
+ c
+ subroutine locivramp(v,v0,vinc,n)
+ c
+- integer v(1)
++ integer v(*)
+ integer v0, vinc
+ integer i, n
+ c
+@@ -913,7 +913,7 @@
+ subroutine l_ivls(v1,s1,n)
+ implicit none
+
+- integer v1(1)
++ integer v1(*)
+ integer s1
+ integer i, n
+
+diff -ru rnpletal.orig/rnpl/src/rnpl.y rnpletal/rnpl/src/rnpl.y
+--- rnpletal.orig/rnpl/src/rnpl.y 2013-07-08 20:38:27.000000000 -0400
++++ rnpletal/rnpl/src/rnpl.y 2021-07-29 14:52:48.000000000 -0400
+@@ -6,6 +6,7 @@
+ #define VERSION "0.995"
+
+ #include <stdlib.h>
++#include <unistd.h>
+ #include "rnpl.h"
+
+ param_dec *pd;
+@@ -1360,7 +1361,7 @@
+
+ %%
+
+-main(int argc, char **argv)
++int main(int argc, char **argv)
+ {
+ int fn,rn,gn,i,err;
+ char *fnm,ch,line[1024],oname[100],iname[50],ifile[100],*ev;
+diff -ru rnpletal.orig/rnpl/src/rnpl_sup.c rnpletal/rnpl/src/rnpl_sup.c
+--- rnpletal.orig/rnpl/src/rnpl_sup.c 2013-07-08 20:38:27.000000000 -0400
++++ rnpletal/rnpl/src/rnpl_sup.c 2021-07-29 15:13:44.000000000 -0400
+@@ -12,7 +12,9 @@
+
+ #define _SUPPORT_
+ #define _SUPPORT_
++#include <math.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include "rnpl.h"
+ #include "rnpl.tab.h"
+ #ifdef __POWERPC__
+@@ -30,6 +32,8 @@
+ static int f77_coord_flag=0;
+ static int f77_gfunc_flag=0;
+
++int coordsys_to_index(const coord_table *cd);
++
+ int fort_out_const(char *s, const double d)
+ {
+ int i;
+diff -ru rnpletal.orig/rnpl/src/sdf.c rnpletal/rnpl/src/sdf.c
+--- rnpletal.orig/rnpl/src/sdf.c 2014-07-14 19:01:47.000000000 -0400
++++ rnpletal/rnpl/src/sdf.c 2021-07-29 14:52:18.000000000 -0400
+@@ -8,6 +8,7 @@
+ /* 2012-04-02: Modified by MWC gft_make_sdf_name() so that '+' is a valid character in name. */
+ /* 2012-04-19: Added utility function 'gft_is_sdf_file' */
+
++#include <ctype.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff -ru rnpletal.orig/rvs/aclocal.m4 rnpletal/rvs/aclocal.m4
+--- rnpletal.orig/rvs/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/rvs/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/rvs/src/v1.c rnpletal/rvs/src/v1.c
+--- rnpletal.orig/rvs/src/v1.c 2001-05-15 20:18:51.000000000 -0400
++++ rnpletal/rvs/src/v1.c 2021-07-28 22:51:25.000000000 -0400
+@@ -1,6 +1,7 @@
+ /* Remote version of v1 ... */
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <libgen.h>
+ #include "rvs_cli.h"
+diff -ru rnpletal.orig/rvs/src/vn.c rnpletal/rvs/src/vn.c
+--- rnpletal.orig/rvs/src/vn.c 2001-05-15 20:19:53.000000000 -0400
++++ rnpletal/rvs/src/vn.c 2021-07-28 22:51:36.000000000 -0400
+@@ -4,6 +4,7 @@
+ /* Queries vs for window tag by name, optional time argument ... */
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <libgen.h>
+ #include "rvs_cli.h"
+diff -ru rnpletal.orig/svs/aclocal.m4 rnpletal/svs/aclocal.m4
+--- rnpletal.orig/svs/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/svs/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/utilio/aclocal.m4 rnpletal/utilio/aclocal.m4
+--- rnpletal.orig/utilio/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/utilio/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/utilmath/aclocal.m4 rnpletal/utilmath/aclocal.m4
+--- rnpletal.orig/utilmath/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/utilmath/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/visutil/aclocal.m4 rnpletal/visutil/aclocal.m4
+--- rnpletal.orig/visutil/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/visutil/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
+diff -ru rnpletal.orig/vutil/aclocal.m4 rnpletal/vutil/aclocal.m4
+--- rnpletal.orig/vutil/aclocal.m4 2021-06-03 19:30:17.000000000 -0400
++++ rnpletal/vutil/aclocal.m4 2021-07-29 14:55:40.000000000 -0400
+@@ -632,7 +632,7 @@
+ dnl----------------------------------------------------------------------
+ if test "X$CCF77LIBS" = "X"; then
+ if $F77 --version | grep g77 > /dev/null 2>&1; then
+- CCF77LIBS='-lg2c -lm';
++ CCF77LIBS='-lgfortran -lm';
+ else
+ CCF77LIBS='-lgfortran -lm'
+ fi
+@@ -689,7 +689,7 @@
+ if test "X$CCF77LIBS" = "X"; then
+ case $F77 in
+ gfortran*|g77*) CCF77LIBS='-lgfortran -lm';;
+- *) CCF77LIBS='-lg2c -lm';;
++ *) CCF77LIBS='-lgfortran -lm';;
+ esac
+ fi
+ RPCGEN_CPPFLAGS="-U__STDC__"
+@@ -697,7 +697,7 @@
+ dnl Various locations that Darwin software gets installed
+ dnl by various and sundry packages.
+ dnl ----------------------------------------------------------------------
+- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -L/sw/lib -L/usr/local/gfortran/lib -L/opt/local/lib"
++ LDFLAGS="$LDFLAGS"
+ if test "X$LIBGL" = "X"; then
+ LIBGL="-lXpm -lGLU -lGL -lXext -lX11 -lm"
+ LIBGLUT="-lXpm -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm"
diff --git a/var/spack/repos/builtin/packages/rnpletal/package.py b/var/spack/repos/builtin/packages/rnpletal/package.py
new file mode 100644
index 0000000000..b8f5e17084
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rnpletal/package.py
@@ -0,0 +1,83 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Rnpletal(AutotoolsPackage):
+ """The acronym RNPL stands for Rapid Numerical Prototyping Language. It is
+ a language for expressing time-dependent systems of partial differential
+ equations and the information necessary for solving them using
+ finite-difference techniques. It has advantages over traditional
+ programming languages such as C and FORTRAN because it only requires the
+ user to enter the essential structure of the program while it fills in the
+ details."""
+
+ homepage = "http://laplace.physics.ubc.ca/People/matt/Rnpl/index.html"
+ url = "ftp://laplace.physics.ubc.ca/pub/rnpletal/rnpletal.tar.gz"
+
+ # RNPL is distributed via tarballs that are updated from time to time, but
+ # which carry no version number.
+ version('develop', sha256='2886f96393b64703fccf61b3dbc34e0fa45a79297232be76352f29cb83863d4d')
+
+ maintainers = ['eschnett']
+
+ variant('packages', multi=True,
+ description="Packages to enable",
+ values=(
+ # "rvs",
+ # "cliser",
+ "rnpl",
+ # "svs",
+ # "vutil",
+ # "utilmath",
+ # "visutil",
+ # "utilio",
+ # "cvtestsdf",
+ # "netlib_linpack",
+ # "netlib_odepack",
+ # "netlib_fftpack",
+ # "netlib_lapack3.0",
+ ), default="rnpl")
+
+ patch("corrections.diff")
+
+ depends_on('bison', type='build')
+ depends_on('flex', type='build')
+
+ parallel = False
+
+ # This is only one of the configure scripts. (We will use other scripts as
+ # well, depending on which packages will be installed.) We define this so
+ # that Spack does not try to create a configure script.
+ @property
+ def configure_abs_path(self):
+ return os.path.join(
+ os.path.abspath(self.configure_directory), 'rnpl', 'configure')
+
+ def configure(self, spec, prefix):
+ options = ['--prefix={0}'.format(prefix)]
+ for package in self.spec.variants['packages'].value:
+ with working_dir(package):
+ configure(*options)
+
+ def build(self, spec, prefix):
+ for package in self.spec.variants['packages'].value:
+ with working_dir(package):
+ make()
+
+ def install(self, spec, prefix):
+ for package in self.spec.variants['packages'].value:
+ with working_dir(package):
+ make("install")
+
+ @property
+ def libs(self):
+ return find_libraries(
+ ["libbbhutil", "librnpl"],
+ root=self.prefix, shared=False, recursive=True
+ )
diff --git a/var/spack/repos/builtin/packages/rocalution/0001-fix-hip-build-error.patch b/var/spack/repos/builtin/packages/rocalution/0001-fix-hip-build-error.patch
deleted file mode 100644
index 9be3e0895d..0000000000
--- a/var/spack/repos/builtin/packages/rocalution/0001-fix-hip-build-error.patch
+++ /dev/null
@@ -1,926 +0,0 @@
-From 91a08e1a412e60a718641b1a43cd88da23ff2d49 Mon Sep 17 00:00:00 2001
-From: sreenivasaMurthy Kolam <sreenivasamurthy.kolam@amd.com>
-Date: Tue, 18 Aug 2020 12:27:32 -0700
-Subject: [PATCH] fix spack error
-
----
- cmake/FindHIP.cmake | 659 +++++++++++++++++++++++++++++
- cmake/FindHIP/run_hipcc.cmake | 182 ++++++++
- cmake/FindHIP/run_make2cmake.cmake | 50 +++
- 3 files changed, 891 insertions(+)
- create mode 100644 cmake/FindHIP.cmake
- create mode 100644 cmake/FindHIP/run_hipcc.cmake
- create mode 100644 cmake/FindHIP/run_make2cmake.cmake
-
-diff --git a/cmake/FindHIP.cmake b/cmake/FindHIP.cmake
-new file mode 100644
-index 0000000..498b5e4
---- /dev/null
-+++ b/cmake/FindHIP.cmake
-@@ -0,0 +1,659 @@
-+###############################################################################
-+# FindHIP.cmake
-+###############################################################################
-+include(CheckCXXCompilerFlag)
-+###############################################################################
-+# SET: Variable defaults
-+###############################################################################
-+# User defined flags
-+set(HIP_HIPCC_FLAGS "" CACHE STRING "Semicolon delimited flags for HIPCC")
-+set(HIP_HCC_FLAGS "" CACHE STRING "Semicolon delimited flags for HCC")
-+set(HIP_CLANG_FLAGS "" CACHE STRING "Semicolon delimited flags for CLANG")
-+set(HIP_NVCC_FLAGS "" CACHE STRING "Semicolon delimted flags for NVCC")
-+mark_as_advanced(HIP_HIPCC_FLAGS HIP_HCC_FLAGS HIP_CLANG_FLAGS HIP_NVCC_FLAGS)
-+set(_hip_configuration_types ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE} Debug MinSizeRel Release RelWithDebInfo)
-+list(REMOVE_DUPLICATES _hip_configuration_types)
-+foreach(config ${_hip_configuration_types})
-+ string(TOUPPER ${config} config_upper)
-+ set(HIP_HIPCC_FLAGS_${config_upper} "" CACHE STRING "Semicolon delimited flags for HIPCC")
-+ set(HIP_HCC_FLAGS_${config_upper} "" CACHE STRING "Semicolon delimited flags for HCC")
-+ set(HIP_CLANG_FLAGS_${config_upper} "" CACHE STRING "Semicolon delimited flags for CLANG")
-+ set(HIP_NVCC_FLAGS_${config_upper} "" CACHE STRING "Semicolon delimited flags for NVCC")
-+ mark_as_advanced(HIP_HIPCC_FLAGS_${config_upper} HIP_HCC_FLAGS_${config_upper} HIP_CLANG_FLAGS_${config_upper} HIP_NVCC_FLAGS_${config_upper})
-+endforeach()
-+option(HIP_HOST_COMPILATION_CPP "Host code compilation mode" ON)
-+option(HIP_VERBOSE_BUILD "Print out the commands run while compiling the HIP source file. With the Makefile generator this defaults to VERBOSE variable specified on the command line, but can be forced on with this option." OFF)
-+mark_as_advanced(HIP_HOST_COMPILATION_CPP)
-+
-+###############################################################################
-+# FIND: HIP and associated helper binaries
-+###############################################################################
-+
-+get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../" REALPATH)
-+
-+# HIP is supported on Linux only
-+if(UNIX AND NOT APPLE AND NOT CYGWIN)
-+ # Search for HIP installation
-+ if(NOT HIP_ROOT_DIR)
-+ # Search in user specified path first
-+ find_path(
-+ HIP_ROOT_DIR
-+ NAMES bin/hipconfig
-+ PATHS
-+ "$ENV{ROCM_PATH}/hip"
-+ ENV HIP_PATH
-+ ${_IMPORT_PREFIX}
-+ /opt/rocm/hip
-+ DOC "HIP installed location"
-+ NO_DEFAULT_PATH
-+ )
-+ if(NOT EXISTS ${HIP_ROOT_DIR})
-+ if(HIP_FIND_REQUIRED)
-+ message(FATAL_ERROR "Specify HIP_ROOT_DIR")
-+ elseif(NOT HIP_FIND_QUIETLY)
-+ message("HIP_ROOT_DIR not found or specified")
-+ endif()
-+ endif()
-+ # And push it back to the cache
-+ set(HIP_ROOT_DIR ${HIP_ROOT_DIR} CACHE PATH "HIP installed location" FORCE)
-+ endif()
-+
-+ # Find HIPCC executable
-+ find_program(
-+ HIP_HIPCC_EXECUTABLE
-+ NAMES hipcc
-+ PATHS
-+ "${HIP_ROOT_DIR}"
-+ ENV ROCM_PATH
-+ ENV HIP_PATH
-+ /opt/rocm
-+ /opt/rocm/hip
-+ PATH_SUFFIXES bin
-+ NO_DEFAULT_PATH
-+ )
-+ if(NOT HIP_HIPCC_EXECUTABLE)
-+ # Now search in default paths
-+ find_program(HIP_HIPCC_EXECUTABLE hipcc)
-+ endif()
-+ mark_as_advanced(HIP_HIPCC_EXECUTABLE)
-+
-+ # Find HIPCONFIG executable
-+ find_program(
-+ HIP_HIPCONFIG_EXECUTABLE
-+ NAMES hipconfig
-+ PATHS
-+ "${HIP_ROOT_DIR}"
-+ ENV ROCM_PATH
-+ ENV HIP_PATH
-+ /opt/rocm
-+ /opt/rocm/hip
-+ PATH_SUFFIXES bin
-+ NO_DEFAULT_PATH
-+ )
-+ if(NOT HIP_HIPCONFIG_EXECUTABLE)
-+ # Now search in default paths
-+ find_program(HIP_HIPCONFIG_EXECUTABLE hipconfig)
-+ endif()
-+ mark_as_advanced(HIP_HIPCONFIG_EXECUTABLE)
-+
-+ # Find HIPCC_CMAKE_LINKER_HELPER executable
-+ find_program(
-+ HIP_HIPCC_CMAKE_LINKER_HELPER
-+ NAMES hipcc_cmake_linker_helper
-+ PATHS
-+ "${HIP_ROOT_DIR}"
-+ ENV ROCM_PATH
-+ ENV HIP_PATH
-+ /opt/rocm
-+ /opt/rocm/hip
-+ PATH_SUFFIXES bin
-+ NO_DEFAULT_PATH
-+ )
-+ if(NOT HIP_HIPCC_CMAKE_LINKER_HELPER)
-+ # Now search in default paths
-+ find_program(HIP_HIPCC_CMAKE_LINKER_HELPER hipcc_cmake_linker_helper)
-+ endif()
-+ mark_as_advanced(HIP_HIPCC_CMAKE_LINKER_HELPER)
-+
-+ if(HIP_HIPCONFIG_EXECUTABLE AND NOT HIP_VERSION)
-+ # Compute the version
-+ execute_process(
-+ COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --version
-+ OUTPUT_VARIABLE _hip_version
-+ ERROR_VARIABLE _hip_error
-+ OUTPUT_STRIP_TRAILING_WHITESPACE
-+ ERROR_STRIP_TRAILING_WHITESPACE
-+ )
-+ if(NOT _hip_error)
-+ set(HIP_VERSION ${_hip_version} CACHE STRING "Version of HIP as computed from hipcc")
-+ else()
-+ set(HIP_VERSION "0.0.0" CACHE STRING "Version of HIP as computed by FindHIP()")
-+ endif()
-+ mark_as_advanced(HIP_VERSION)
-+ endif()
-+ if(HIP_VERSION)
-+ string(REPLACE "." ";" _hip_version_list "${HIP_VERSION}")
-+ list(GET _hip_version_list 0 HIP_VERSION_MAJOR)
-+ list(GET _hip_version_list 1 HIP_VERSION_MINOR)
-+ list(GET _hip_version_list 2 HIP_VERSION_PATCH)
-+ set(HIP_VERSION_STRING "${HIP_VERSION}")
-+ endif()
-+
-+ if(HIP_HIPCONFIG_EXECUTABLE AND NOT HIP_PLATFORM)
-+ # Compute the platform
-+ execute_process(
-+ COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --platform
-+ OUTPUT_VARIABLE _hip_platform
-+ OUTPUT_STRIP_TRAILING_WHITESPACE
-+ )
-+ set(HIP_PLATFORM ${_hip_platform} CACHE STRING "HIP platform as computed by hipconfig")
-+ mark_as_advanced(HIP_PLATFORM)
-+ endif()
-+
-+ if(HIP_HIPCONFIG_EXECUTABLE AND NOT HIP_COMPILER)
-+ # Compute the compiler
-+ execute_process(
-+ COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --compiler
-+ OUTPUT_VARIABLE _hip_compiler
-+ OUTPUT_STRIP_TRAILING_WHITESPACE
-+ )
-+ set(HIP_COMPILER ${_hip_compiler} CACHE STRING "HIP compiler as computed by hipconfig")
-+ mark_as_advanced(HIP_COMPILER)
-+ endif()
-+
-+ if(HIP_HIPCONFIG_EXECUTABLE AND NOT HIP_RUNTIME)
-+ # Compute the runtime
-+ execute_process(
-+ COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --runtime
-+ OUTPUT_VARIABLE _hip_runtime
-+ OUTPUT_STRIP_TRAILING_WHITESPACE
-+ )
-+ set(HIP_RUNTIME ${_hip_runtime} CACHE STRING "HIP runtime as computed by hipconfig")
-+ mark_as_advanced(HIP_RUNTIME)
-+ endif()
-+endif()
-+
-+include(FindPackageHandleStandardArgs)
-+find_package_handle_standard_args(
-+ HIP
-+ REQUIRED_VARS
-+ HIP_ROOT_DIR
-+ HIP_HIPCC_EXECUTABLE
-+ HIP_HIPCONFIG_EXECUTABLE
-+ HIP_PLATFORM
-+ HIP_COMPILER
-+ HIP_RUNTIME
-+ VERSION_VAR HIP_VERSION
-+ )
-+
-+###############################################################################
-+# Set HIP CMAKE Flags
-+###############################################################################
-+# Copy the invocation styles from CXX to HIP
-+set(CMAKE_HIP_ARCHIVE_CREATE ${CMAKE_CXX_ARCHIVE_CREATE})
-+set(CMAKE_HIP_ARCHIVE_APPEND ${CMAKE_CXX_ARCHIVE_APPEND})
-+set(CMAKE_HIP_ARCHIVE_FINISH ${CMAKE_CXX_ARCHIVE_FINISH})
-+set(CMAKE_SHARED_LIBRARY_SONAME_HIP_FLAG ${CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG})
-+set(CMAKE_SHARED_LIBRARY_CREATE_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS})
-+set(CMAKE_SHARED_LIBRARY_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS})
-+#set(CMAKE_SHARED_LIBRARY_LINK_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS})
-+set(CMAKE_SHARED_LIBRARY_RUNTIME_HIP_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG})
-+set(CMAKE_SHARED_LIBRARY_RUNTIME_HIP_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP})
-+set(CMAKE_SHARED_LIBRARY_LINK_STATIC_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_STATIC_CXX_FLAGS})
-+set(CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_CXX_FLAGS})
-+
-+set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "")
-+set(HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS "")
-+
-+if("${HIP_COMPILER}" STREQUAL "hcc")
-+ # Set the CMake Flags to use the HCC Compiler.
-+ set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
-+ set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <LINK_LIBRARIES> -shared" )
-+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-+elseif("${HIP_COMPILER}" STREQUAL "clang")
-+ #Number of parallel jobs by default is 1
-+ if(NOT DEFINED HIP_CLANG_NUM_PARALLEL_JOBS)
-+ set(HIP_CLANG_NUM_PARALLEL_JOBS 1)
-+ endif()
-+ #Add support for parallel build and link
-+ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
-+ check_cxx_compiler_flag("-parallel-jobs=1" HIP_CLANG_SUPPORTS_PARALLEL_JOBS)
-+ endif()
-+ if(HIP_CLANG_NUM_PARALLEL_JOBS GREATER 1)
-+ if(${HIP_CLANG_SUPPORTS_PARALLEL_JOBS})
-+ set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "-parallel-jobs=${HIP_CLANG_NUM_PARALLEL_JOBS} -Wno-format-nonliteral")
-+ set(HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS "-parallel-jobs=${HIP_CLANG_NUM_PARALLEL_JOBS}")
-+ else()
-+ message("clang compiler doesn't support parallel jobs")
-+ endif()
-+ endif()
-+
-+ # Set the CMake Flags to use the HIP-Clang Compiler.
-+ set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
-+ set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <LINK_LIBRARIES> -shared" )
-+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-+endif()
-+
-+###############################################################################
-+# MACRO: Locate helper files
-+###############################################################################
-+macro(HIP_FIND_HELPER_FILE _name _extension)
-+ set(_hip_full_name "${_name}.${_extension}")
-+ get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-+ set(HIP_${_name} "${CMAKE_CURRENT_LIST_DIR}/FindHIP/${_hip_full_name}")
-+ if(NOT EXISTS "${HIP_${_name}}")
-+ set(error_message "${_hip_full_name} not found in ${CMAKE_CURRENT_LIST_DIR}/FindHIP")
-+ if(HIP_FIND_REQUIRED)
-+ message(FATAL_ERROR "${error_message}")
-+ else()
-+ if(NOT HIP_FIND_QUIETLY)
-+ message(STATUS "${error_message}")
-+ endif()
-+ endif()
-+ endif()
-+ # Set this variable as internal, so the user isn't bugged with it.
-+ set(HIP_${_name} ${HIP_${_name}} CACHE INTERNAL "Location of ${_full_name}" FORCE)
-+endmacro()
-+
-+###############################################################################
-+hip_find_helper_file(run_make2cmake cmake)
-+hip_find_helper_file(run_hipcc cmake)
-+###############################################################################
-+
-+###############################################################################
-+# MACRO: Reset compiler flags
-+###############################################################################
-+macro(HIP_RESET_FLAGS)
-+ unset(HIP_HIPCC_FLAGS)
-+ unset(HIP_HCC_FLAGS)
-+ unset(HIP_CLANG_FLAGS)
-+ unset(HIP_NVCC_FLAGS)
-+ foreach(config ${_hip_configuration_types})
-+ string(TOUPPER ${config} config_upper)
-+ unset(HIP_HIPCC_FLAGS_${config_upper})
-+ unset(HIP_HCC_FLAGS_${config_upper})
-+ unset(HIP_CLANG_FLAGS_${config_upper})
-+ unset(HIP_NVCC_FLAGS_${config_upper})
-+ endforeach()
-+endmacro()
-+
-+###############################################################################
-+# MACRO: Separate the options from the sources
-+###############################################################################
-+macro(HIP_GET_SOURCES_AND_OPTIONS _sources _cmake_options _hipcc_options _hcc_options _clang_options _nvcc_options)
-+ set(${_sources})
-+ set(${_cmake_options})
-+ set(${_hipcc_options})
-+ set(${_hcc_options})
-+ set(${_clang_options})
-+ set(${_nvcc_options})
-+ set(_hipcc_found_options FALSE)
-+ set(_hcc_found_options FALSE)
-+ set(_clang_found_options FALSE)
-+ set(_nvcc_found_options FALSE)
-+ foreach(arg ${ARGN})
-+ if("x${arg}" STREQUAL "xHIPCC_OPTIONS")
-+ set(_hipcc_found_options TRUE)
-+ set(_hcc_found_options FALSE)
-+ set(_clang_found_options FALSE)
-+ set(_nvcc_found_options FALSE)
-+ elseif("x${arg}" STREQUAL "xHCC_OPTIONS")
-+ set(_hipcc_found_options FALSE)
-+ set(_hcc_found_options TRUE)
-+ set(_clang_found_options FALSE)
-+ set(_nvcc_found_options FALSE)
-+ elseif("x${arg}" STREQUAL "xCLANG_OPTIONS")
-+ set(_hipcc_found_options FALSE)
-+ set(_hcc_found_options FALSE)
-+ set(_clang_found_options TRUE)
-+ set(_nvcc_found_options FALSE)
-+ elseif("x${arg}" STREQUAL "xNVCC_OPTIONS")
-+ set(_hipcc_found_options FALSE)
-+ set(_hcc_found_options FALSE)
-+ set(_clang_found_options FALSE)
-+ set(_nvcc_found_options TRUE)
-+ elseif(
-+ "x${arg}" STREQUAL "xEXCLUDE_FROM_ALL" OR
-+ "x${arg}" STREQUAL "xSTATIC" OR
-+ "x${arg}" STREQUAL "xSHARED" OR
-+ "x${arg}" STREQUAL "xMODULE"
-+ )
-+ list(APPEND ${_cmake_options} ${arg})
-+ else()
-+ if(_hipcc_found_options)
-+ list(APPEND ${_hipcc_options} ${arg})
-+ elseif(_hcc_found_options)
-+ list(APPEND ${_hcc_options} ${arg})
-+ elseif(_clang_found_options)
-+ list(APPEND ${_clang_options} ${arg})
-+ elseif(_nvcc_found_options)
-+ list(APPEND ${_nvcc_options} ${arg})
-+ else()
-+ # Assume this is a file
-+ list(APPEND ${_sources} ${arg})
-+ endif()
-+ endif()
-+ endforeach()
-+endmacro()
-+
-+###############################################################################
-+# MACRO: Add include directories to pass to the hipcc command
-+###############################################################################
-+set(HIP_HIPCC_INCLUDE_ARGS_USER "")
-+macro(HIP_INCLUDE_DIRECTORIES)
-+ foreach(dir ${ARGN})
-+ list(APPEND HIP_HIPCC_INCLUDE_ARGS_USER $<$<BOOL:${dir}>:-I${dir}>)
-+ endforeach()
-+endmacro()
-+
-+###############################################################################
-+# FUNCTION: Helper to avoid clashes of files with the same basename but different paths
-+###############################################################################
-+function(HIP_COMPUTE_BUILD_PATH path build_path)
-+ # Convert to cmake style paths
-+ file(TO_CMAKE_PATH "${path}" bpath)
-+ if(IS_ABSOLUTE "${bpath}")
-+ string(FIND "${bpath}" "${CMAKE_CURRENT_BINARY_DIR}" _binary_dir_pos)
-+ if(_binary_dir_pos EQUAL 0)
-+ file(RELATIVE_PATH bpath "${CMAKE_CURRENT_BINARY_DIR}" "${bpath}")
-+ else()
-+ file(RELATIVE_PATH bpath "${CMAKE_CURRENT_SOURCE_DIR}" "${bpath}")
-+ endif()
-+ endif()
-+
-+ # Remove leading /
-+ string(REGEX REPLACE "^[/]+" "" bpath "${bpath}")
-+ # Avoid absolute paths by removing ':'
-+ string(REPLACE ":" "_" bpath "${bpath}")
-+ # Avoid relative paths that go up the tree
-+ string(REPLACE "../" "__/" bpath "${bpath}")
-+ # Avoid spaces
-+ string(REPLACE " " "_" bpath "${bpath}")
-+ # Strip off the filename
-+ get_filename_component(bpath "${bpath}" PATH)
-+
-+ set(${build_path} "${bpath}" PARENT_SCOPE)
-+endfunction()
-+
-+###############################################################################
-+# MACRO: Parse OPTIONS from ARGN & set variables prefixed by _option_prefix
-+###############################################################################
-+macro(HIP_PARSE_HIPCC_OPTIONS _option_prefix)
-+ set(_hip_found_config)
-+ foreach(arg ${ARGN})
-+ # Determine if we are dealing with a per-configuration flag
-+ foreach(config ${_hip_configuration_types})
-+ string(TOUPPER ${config} config_upper)
-+ if(arg STREQUAL "${config_upper}")
-+ set(_hip_found_config _${arg})
-+ # Clear arg to prevent it from being processed anymore
-+ set(arg)
-+ endif()
-+ endforeach()
-+ if(arg)
-+ list(APPEND ${_option_prefix}${_hip_found_config} "${arg}")
-+ endif()
-+ endforeach()
-+endmacro()
-+
-+###############################################################################
-+# MACRO: Try and include dependency file if it exists
-+###############################################################################
-+macro(HIP_INCLUDE_HIPCC_DEPENDENCIES dependency_file)
-+ set(HIP_HIPCC_DEPEND)
-+ set(HIP_HIPCC_DEPEND_REGENERATE FALSE)
-+
-+ # Create the dependency file if it doesn't exist
-+ if(NOT EXISTS ${dependency_file})
-+ file(WRITE ${dependency_file} "# Generated by: FindHIP.cmake. Do not edit.\n")
-+ endif()
-+ # Include the dependency file
-+ include(${dependency_file})
-+
-+ # Verify the existence of all the included files
-+ if(HIP_HIPCC_DEPEND)
-+ foreach(f ${HIP_HIPCC_DEPEND})
-+ if(NOT EXISTS ${f})
-+ # If they aren't there, regenerate the file again
-+ set(HIP_HIPCC_DEPEND_REGENERATE TRUE)
-+ endif()
-+ endforeach()
-+ else()
-+ # No dependencies, so regenerate the file
-+ set(HIP_HIPCC_DEPEND_REGENERATE TRUE)
-+ endif()
-+
-+ # Regenerate the dependency file if needed
-+ if(HIP_HIPCC_DEPEND_REGENERATE)
-+ set(HIP_HIPCC_DEPEND ${dependency_file})
-+ file(WRITE ${dependency_file} "# Generated by: FindHIP.cmake. Do not edit.\n")
-+ endif()
-+endmacro()
-+
-+###############################################################################
-+# MACRO: Prepare cmake commands for the target
-+###############################################################################
-+macro(HIP_PREPARE_TARGET_COMMANDS _target _format _generated_files _source_files)
-+ set(_hip_flags "")
-+ string(TOUPPER "${CMAKE_BUILD_TYPE}" _hip_build_configuration)
-+ if(HIP_HOST_COMPILATION_CPP)
-+ set(HIP_C_OR_CXX CXX)
-+ else()
-+ set(HIP_C_OR_CXX C)
-+ endif()
-+ set(generated_extension ${CMAKE_${HIP_C_OR_CXX}_OUTPUT_EXTENSION})
-+
-+ # Initialize list of includes with those specified by the user. Append with
-+ # ones specified to cmake directly.
-+ set(HIP_HIPCC_INCLUDE_ARGS ${HIP_HIPCC_INCLUDE_ARGS_USER})
-+
-+ # Add the include directories
-+ set(include_directories_generator "$<TARGET_PROPERTY:${_target},INCLUDE_DIRECTORIES>")
-+ list(APPEND HIP_HIPCC_INCLUDE_ARGS "$<$<BOOL:${include_directories_generator}>:-I$<JOIN:${include_directories_generator}, -I>>")
-+
-+ get_directory_property(_hip_include_directories INCLUDE_DIRECTORIES)
-+ list(REMOVE_DUPLICATES _hip_include_directories)
-+ if(_hip_include_directories)
-+ foreach(dir ${_hip_include_directories})
-+ list(APPEND HIP_HIPCC_INCLUDE_ARGS $<$<BOOL:${dir}>:-I${dir}>)
-+ endforeach()
-+ endif()
-+
-+ HIP_GET_SOURCES_AND_OPTIONS(_hip_sources _hip_cmake_options _hipcc_options _hcc_options _clang_options _nvcc_options ${ARGN})
-+ HIP_PARSE_HIPCC_OPTIONS(HIP_HIPCC_FLAGS ${_hipcc_options})
-+ HIP_PARSE_HIPCC_OPTIONS(HIP_HCC_FLAGS ${_hcc_options})
-+ HIP_PARSE_HIPCC_OPTIONS(HIP_CLANG_FLAGS ${_clang_options})
-+ HIP_PARSE_HIPCC_OPTIONS(HIP_NVCC_FLAGS ${_nvcc_options})
-+
-+ # Add the compile definitions
-+ set(compile_definition_generator "$<TARGET_PROPERTY:${_target},COMPILE_DEFINITIONS>")
-+ list(APPEND HIP_HIPCC_FLAGS "$<$<BOOL:${compile_definition_generator}>:-D$<JOIN:${compile_definition_generator}, -D>>")
-+
-+ # Check if we are building shared library.
-+ set(_hip_build_shared_libs FALSE)
-+ list(FIND _hip_cmake_options SHARED _hip_found_SHARED)
-+ list(FIND _hip_cmake_options MODULE _hip_found_MODULE)
-+ if(_hip_found_SHARED GREATER -1 OR _hip_found_MODULE GREATER -1)
-+ set(_hip_build_shared_libs TRUE)
-+ endif()
-+ list(FIND _hip_cmake_options STATIC _hip_found_STATIC)
-+ if(_hip_found_STATIC GREATER -1)
-+ set(_hip_build_shared_libs FALSE)
-+ endif()
-+
-+ # If we are building a shared library, add extra flags to HIP_HIPCC_FLAGS
-+ if(_hip_build_shared_libs)
-+ list(APPEND HIP_HCC_FLAGS "-fPIC")
-+ list(APPEND HIP_CLANG_FLAGS "-fPIC")
-+ list(APPEND HIP_NVCC_FLAGS "--shared -Xcompiler '-fPIC'")
-+ endif()
-+
-+ # Set host compiler
-+ set(HIP_HOST_COMPILER "${CMAKE_${HIP_C_OR_CXX}_COMPILER}")
-+
-+ # Set compiler flags
-+ set(_HIP_HOST_FLAGS "set(CMAKE_HOST_FLAGS ${CMAKE_${HIP_C_OR_CXX}_FLAGS})")
-+ set(_HIP_HIPCC_FLAGS "set(HIP_HIPCC_FLAGS ${HIP_HIPCC_FLAGS})")
-+ set(_HIP_HCC_FLAGS "set(HIP_HCC_FLAGS ${HIP_HCC_FLAGS})")
-+ set(_HIP_CLANG_FLAGS "set(HIP_CLANG_FLAGS ${HIP_CLANG_FLAGS})")
-+ set(_HIP_NVCC_FLAGS "set(HIP_NVCC_FLAGS ${HIP_NVCC_FLAGS})")
-+ foreach(config ${_hip_configuration_types})
-+ string(TOUPPER ${config} config_upper)
-+ set(_HIP_HOST_FLAGS "${_HIP_HOST_FLAGS}\nset(CMAKE_HOST_FLAGS_${config_upper} ${CMAKE_${HIP_C_OR_CXX}_FLAGS_${config_upper}})")
-+ set(_HIP_HIPCC_FLAGS "${_HIP_HIPCC_FLAGS}\nset(HIP_HIPCC_FLAGS_${config_upper} ${HIP_HIPCC_FLAGS_${config_upper}})")
-+ set(_HIP_HCC_FLAGS "${_HIP_HCC_FLAGS}\nset(HIP_HCC_FLAGS_${config_upper} ${HIP_HCC_FLAGS_${config_upper}})")
-+ set(_HIP_CLANG_FLAGS "${_HIP_CLANG_FLAGS}\nset(HIP_CLANG_FLAGS_${config_upper} ${HIP_CLANG_FLAGS_${config_upper}})")
-+ set(_HIP_NVCC_FLAGS "${_HIP_NVCC_FLAGS}\nset(HIP_NVCC_FLAGS_${config_upper} ${HIP_NVCC_FLAGS_${config_upper}})")
-+ endforeach()
-+
-+ # Reset the output variable
-+ set(_hip_generated_files "")
-+ set(_hip_source_files "")
-+
-+ # Iterate over all arguments and create custom commands for all source files
-+ foreach(file ${ARGN})
-+ # Ignore any file marked as a HEADER_FILE_ONLY
-+ get_source_file_property(_is_header ${file} HEADER_FILE_ONLY)
-+ # Allow per source file overrides of the format. Also allows compiling non .cu files.
-+ get_source_file_property(_hip_source_format ${file} HIP_SOURCE_PROPERTY_FORMAT)
-+ if((${file} MATCHES "\\.cu$" OR _hip_source_format) AND NOT _is_header)
-+ set(host_flag FALSE)
-+ else()
-+ set(host_flag TRUE)
-+ endif()
-+
-+ if(NOT host_flag)
-+ # Determine output directory
-+ HIP_COMPUTE_BUILD_PATH("${file}" hip_build_path)
-+ set(hip_compile_output_dir "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${_target}.dir/${hip_build_path}")
-+
-+ get_filename_component(basename ${file} NAME)
-+ set(generated_file_path "${hip_compile_output_dir}/${CMAKE_CFG_INTDIR}")
-+ set(generated_file_basename "${_target}_generated_${basename}${generated_extension}")
-+
-+ # Set file names
-+ set(generated_file "${generated_file_path}/${generated_file_basename}")
-+ set(cmake_dependency_file "${hip_compile_output_dir}/${generated_file_basename}.depend")
-+ set(custom_target_script_pregen "${hip_compile_output_dir}/${generated_file_basename}.cmake.pre-gen")
-+ set(custom_target_script "${hip_compile_output_dir}/${generated_file_basename}.cmake")
-+
-+ # Set properties for object files
-+ set_source_files_properties("${generated_file}"
-+ PROPERTIES
-+ EXTERNAL_OBJECT true # This is an object file not to be compiled, but only be linked
-+ )
-+
-+ # Don't add CMAKE_CURRENT_SOURCE_DIR if the path is already an absolute path
-+ get_filename_component(file_path "${file}" PATH)
-+ if(IS_ABSOLUTE "${file_path}")
-+ set(source_file "${file}")
-+ else()
-+ set(source_file "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
-+ endif()
-+
-+ # Bring in the dependencies
-+ HIP_INCLUDE_HIPCC_DEPENDENCIES(${cmake_dependency_file})
-+
-+ # Configure the build script
-+ configure_file("${HIP_run_hipcc}" "${custom_target_script_pregen}" @ONLY)
-+ file(GENERATE
-+ OUTPUT "${custom_target_script}"
-+ INPUT "${custom_target_script_pregen}"
-+ )
-+ set(main_dep DEPENDS ${source_file})
-+ if(CMAKE_GENERATOR MATCHES "Makefiles")
-+ set(verbose_output "$(VERBOSE)")
-+ elseif(HIP_VERBOSE_BUILD)
-+ set(verbose_output ON)
-+ else()
-+ set(verbose_output OFF)
-+ endif()
-+
-+ # Create up the comment string
-+ file(RELATIVE_PATH generated_file_relative_path "${CMAKE_BINARY_DIR}" "${generated_file}")
-+ set(hip_build_comment_string "Building HIPCC object ${generated_file_relative_path}")
-+
-+ # Build the generated file and dependency file
-+ add_custom_command(
-+ OUTPUT ${generated_file}
-+ # These output files depend on the source_file and the contents of cmake_dependency_file
-+ ${main_dep}
-+ DEPENDS ${HIP_HIPCC_DEPEND}
-+ DEPENDS ${custom_target_script}
-+ # Make sure the output directory exists before trying to write to it.
-+ COMMAND ${CMAKE_COMMAND} -E make_directory "${generated_file_path}"
-+ COMMAND ${CMAKE_COMMAND} ARGS
-+ -D verbose:BOOL=${verbose_output}
-+ -D build_configuration:STRING=${_hip_build_configuration}
-+ -D "generated_file:STRING=${generated_file}"
-+ -P "${custom_target_script}"
-+ WORKING_DIRECTORY "${hip_compile_output_dir}"
-+ COMMENT "${hip_build_comment_string}"
-+ )
-+
-+ # Make sure the build system knows the file is generated
-+ set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE)
-+ list(APPEND _hip_generated_files ${generated_file})
-+ list(APPEND _hip_source_files ${file})
-+ endif()
-+ endforeach()
-+
-+ # Set the return parameter
-+ set(${_generated_files} ${_hip_generated_files})
-+ set(${_source_files} ${_hip_source_files})
-+endmacro()
-+
-+###############################################################################
-+# HIP_ADD_EXECUTABLE
-+###############################################################################
-+macro(HIP_ADD_EXECUTABLE hip_target)
-+ # Separate the sources from the options
-+ HIP_GET_SOURCES_AND_OPTIONS(_sources _cmake_options _hipcc_options _hcc_options _clang_options _nvcc_options ${ARGN})
-+ HIP_PREPARE_TARGET_COMMANDS(${hip_target} OBJ _generated_files _source_files ${_sources} HIPCC_OPTIONS ${_hipcc_options} HCC_OPTIONS ${_hcc_options} CLANG_OPTIONS ${_clang_options} NVCC_OPTIONS ${_nvcc_options})
-+ if(_source_files)
-+ list(REMOVE_ITEM _sources ${_source_files})
-+ endif()
-+ if("${HIP_COMPILER}" STREQUAL "hcc")
-+ if("x${HCC_HOME}" STREQUAL "x")
-+ if (DEFINED ENV{ROCM_PATH})
-+ set(HCC_HOME "$ENV{ROCM_PATH}/hcc")
-+ elseif(DEFINED ENV{HIP_PATH})
-+ set(HCC_HOME "$ENV{HIP_PATH}/../hcc")
-+ else()
-+ set(HCC_HOME "/opt/rocm/hcc")
-+ endif()
-+ endif()
-+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-+ elseif("${HIP_COMPILER}" STREQUAL "clang")
-+ if("x${HIP_CLANG_PATH}" STREQUAL "x")
-+ if(DEFINED ENV{HIP_CLANG_PATH})
-+ set(HIP_CLANG_PATH $ENV{HIP_CLANG_PATH})
-+ elseif(DEFINED ENV{ROCM_PATH})
-+ set(HIP_CLANG_PATH "$ENV{ROCM_PATH}/llvm/bin")
-+ elseif(DEFINED ENV{HIP_PATH})
-+ set(HIP_CLANG_PATH "$ENV{HIP_PATH}/../llvm/bin")
-+ else()
-+ set(HIP_CLANG_PATH "/opt/rocm/llvm/bin")
-+ endif()
-+ endif()
-+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-+ endif()
-+ add_executable(${hip_target} ${_cmake_options} ${_generated_files} ${_sources})
-+ set_target_properties(${hip_target} PROPERTIES LINKER_LANGUAGE HIP)
-+endmacro()
-+
-+###############################################################################
-+# HIP_ADD_LIBRARY
-+###############################################################################
-+macro(HIP_ADD_LIBRARY hip_target)
-+ # Separate the sources from the options
-+ HIP_GET_SOURCES_AND_OPTIONS(_sources _cmake_options _hipcc_options _hcc_options _clang_options _nvcc_options ${ARGN})
-+ HIP_PREPARE_TARGET_COMMANDS(${hip_target} OBJ _generated_files _source_files ${_sources} ${_cmake_options} HIPCC_OPTIONS ${_hipcc_options} HCC_OPTIONS ${_hcc_options} CLANG_OPTIONS ${_clang_options} NVCC_OPTIONS ${_nvcc_options})
-+ if(_source_files)
-+ list(REMOVE_ITEM _sources ${_source_files})
-+ endif()
-+ add_library(${hip_target} ${_cmake_options} ${_generated_files} ${_sources})
-+ set_target_properties(${hip_target} PROPERTIES LINKER_LANGUAGE ${HIP_C_OR_CXX})
-+endmacro()
-+
-+# vim: ts=4:sw=4:expandtab:smartindent
-diff --git a/cmake/FindHIP/run_hipcc.cmake b/cmake/FindHIP/run_hipcc.cmake
-new file mode 100644
-index 0000000..63c7bb3
---- /dev/null
-+++ b/cmake/FindHIP/run_hipcc.cmake
-@@ -0,0 +1,182 @@
-+###############################################################################
-+# Runs commands using HIPCC
-+###############################################################################
-+
-+###############################################################################
-+# This file runs the hipcc commands to produce the desired output file
-+# along with the dependency file needed by CMake to compute dependencies.
-+#
-+# Input variables:
-+#
-+# verbose:BOOL=<> OFF: Be as quiet as possible (default)
-+# ON : Describe each step
-+# build_configuration:STRING=<> Build configuration. Defaults to Debug.
-+# generated_file:STRING=<> File to generate. Mandatory argument.
-+
-+if(NOT build_configuration)
-+ set(build_configuration Debug)
-+endif()
-+if(NOT generated_file)
-+ message(FATAL_ERROR "You must specify generated_file on the command line")
-+endif()
-+
-+# Set these up as variables to make reading the generated file easier
-+set(HIP_HIPCC_EXECUTABLE "@HIP_HIPCC_EXECUTABLE@") # path
-+set(HIP_HIPCONFIG_EXECUTABLE "@HIP_HIPCONFIG_EXECUTABLE@") #path
-+set(HIP_HOST_COMPILER "@HIP_HOST_COMPILER@") # path
-+set(CMAKE_COMMAND "@CMAKE_COMMAND@") # path
-+set(HIP_run_make2cmake "@HIP_run_make2cmake@") # path
-+set(HCC_HOME "@HCC_HOME@") #path
-+set(HIP_CLANG_PATH "@HIP_CLANG_PATH@") #path
-+set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "@HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS@")
-+
-+@HIP_HOST_FLAGS@
-+@_HIP_HIPCC_FLAGS@
-+@_HIP_HCC_FLAGS@
-+@_HIP_CLANG_FLAGS@
-+@_HIP_NVCC_FLAGS@
-+#Needed to bring the HIP_HIPCC_INCLUDE_ARGS variable in scope
-+set(HIP_HIPCC_INCLUDE_ARGS @HIP_HIPCC_INCLUDE_ARGS@) # list
-+
-+set(cmake_dependency_file "@cmake_dependency_file@") # path
-+set(source_file "@source_file@") # path
-+set(host_flag "@host_flag@") # bool
-+
-+# Determine compiler and compiler flags
-+execute_process(COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --platform OUTPUT_VARIABLE HIP_PLATFORM OUTPUT_STRIP_TRAILING_WHITESPACE)
-+execute_process(COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --compiler OUTPUT_VARIABLE HIP_COMPILER OUTPUT_STRIP_TRAILING_WHITESPACE)
-+execute_process(COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --runtime OUTPUT_VARIABLE HIP_RUNTIME OUTPUT_STRIP_TRAILING_WHITESPACE)
-+if(NOT host_flag)
-+ set(__CC ${HIP_HIPCC_EXECUTABLE})
-+ if("${HIP_PLATFORM}" STREQUAL "hcc")
-+ if("${HIP_COMPILER}" STREQUAL "hcc")
-+ if(NOT "x${HCC_HOME}" STREQUAL "x")
-+ set(ENV{HCC_HOME} ${HCC_HOME})
-+ endif()
-+ set(__CC_FLAGS ${HIP_HIPCC_FLAGS} ${HIP_HCC_FLAGS} ${HIP_HIPCC_FLAGS_${build_configuration}} ${HIP_HCC_FLAGS_${build_configuration}})
-+ elseif("${HIP_COMPILER}" STREQUAL "clang")
-+ if(NOT "x${HIP_CLANG_PATH}" STREQUAL "x")
-+ set(ENV{HIP_CLANG_PATH} ${HIP_CLANG_PATH})
-+ endif()
-+ # Temporarily include HIP_HCC_FLAGS for HIP-Clang for PyTorch builds
-+ set(__CC_FLAGS ${HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS} ${HIP_HIPCC_FLAGS} ${HIP_HCC_FLAGS} ${HIP_CLANG_FLAGS} ${HIP_HIPCC_FLAGS_${build_configuration}} ${HIP_HCC_FLAGS_${build_configuration}} ${HIP_CLANG_FLAGS_${build_configuration}})
-+ endif()
-+ else()
-+ set(__CC_FLAGS ${HIP_HIPCC_FLAGS} ${HIP_NVCC_FLAGS} ${HIP_HIPCC_FLAGS_${build_configuration}} ${HIP_NVCC_FLAGS_${build_configuration}})
-+ endif()
-+else()
-+ set(__CC ${HIP_HOST_COMPILER})
-+ set(__CC_FLAGS ${CMAKE_HOST_FLAGS} ${CMAKE_HOST_FLAGS_${build_configuration}})
-+endif()
-+set(__CC_INCLUDES ${HIP_HIPCC_INCLUDE_ARGS})
-+
-+# hip_execute_process - Executes a command with optional command echo and status message.
-+# status - Status message to print if verbose is true
-+# command - COMMAND argument from the usual execute_process argument structure
-+# ARGN - Remaining arguments are the command with arguments
-+# HIP_result - Return value from running the command
-+macro(hip_execute_process status command)
-+ set(_command ${command})
-+ if(NOT "x${_command}" STREQUAL "xCOMMAND")
-+ message(FATAL_ERROR "Malformed call to hip_execute_process. Missing COMMAND as second argument. (command = ${command})")
-+ endif()
-+ if(verbose)
-+ execute_process(COMMAND "${CMAKE_COMMAND}" -E echo -- ${status})
-+ # Build command string to print
-+ set(hip_execute_process_string)
-+ foreach(arg ${ARGN})
-+ # Escape quotes if any
-+ string(REPLACE "\"" "\\\"" arg ${arg})
-+ # Surround args with spaces with quotes
-+ if(arg MATCHES " ")
-+ list(APPEND hip_execute_process_string "\"${arg}\"")
-+ else()
-+ list(APPEND hip_execute_process_string ${arg})
-+ endif()
-+ endforeach()
-+ # Echo the command
-+ execute_process(COMMAND ${CMAKE_COMMAND} -E echo ${hip_execute_process_string})
-+ endif()
-+ # Run the command
-+ execute_process(COMMAND ${ARGN} RESULT_VARIABLE HIP_result)
-+endmacro()
-+
-+# Delete the target file
-+hip_execute_process(
-+ "Removing ${generated_file}"
-+ COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
-+ )
-+
-+# Generate the dependency file
-+hip_execute_process(
-+ "Generating dependency file: ${cmake_dependency_file}.pre"
-+ COMMAND "${__CC}"
-+ -M
-+ "${source_file}"
-+ -o "${cmake_dependency_file}.pre"
-+ ${__CC_FLAGS}
-+ ${__CC_INCLUDES}
-+ )
-+
-+if(HIP_result)
-+ message(FATAL_ERROR "Error generating ${generated_file}")
-+endif()
-+
-+# Generate the cmake readable dependency file to a temp file
-+hip_execute_process(
-+ "Generating temporary cmake readable file: ${cmake_dependency_file}.tmp"
-+ COMMAND "${CMAKE_COMMAND}"
-+ -D "input_file:FILEPATH=${cmake_dependency_file}.pre"
-+ -D "output_file:FILEPATH=${cmake_dependency_file}.tmp"
-+ -D "verbose=${verbose}"
-+ -P "${HIP_run_make2cmake}"
-+ )
-+
-+if(HIP_result)
-+ message(FATAL_ERROR "Error generating ${generated_file}")
-+endif()
-+
-+# Copy the file if it is different
-+hip_execute_process(
-+ "Copy if different ${cmake_dependency_file}.tmp to ${cmake_dependency_file}"
-+ COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${cmake_dependency_file}.tmp" "${cmake_dependency_file}"
-+ )
-+
-+if(HIP_result)
-+ message(FATAL_ERROR "Error generating ${generated_file}")
-+endif()
-+
-+# Delete the temporary file
-+hip_execute_process(
-+ "Removing ${cmake_dependency_file}.tmp and ${cmake_dependency_file}.pre"
-+ COMMAND "${CMAKE_COMMAND}" -E remove "${cmake_dependency_file}.tmp" "${cmake_dependency_file}.pre"
-+ )
-+
-+if(HIP_result)
-+ message(FATAL_ERROR "Error generating ${generated_file}")
-+endif()
-+
-+# Generate the output file
-+hip_execute_process(
-+ "Generating ${generated_file}"
-+ COMMAND "${__CC}"
-+ -c
-+ "${source_file}"
-+ -o "${generated_file}"
-+ ${__CC_FLAGS}
-+ ${__CC_INCLUDES}
-+ )
-+
-+if(HIP_result)
-+ # Make sure that we delete the output file
-+ hip_execute_process(
-+ "Removing ${generated_file}"
-+ COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}"
-+ )
-+ message(FATAL_ERROR "Error generating file ${generated_file}")
-+else()
-+ if(verbose)
-+ message("Generated ${generated_file} successfully.")
-+ endif()
-+endif()
-+# vim: ts=4:sw=4:expandtab:smartindent
-diff --git a/cmake/FindHIP/run_make2cmake.cmake b/cmake/FindHIP/run_make2cmake.cmake
-new file mode 100644
-index 0000000..d2e3eb5
---- /dev/null
-+++ b/cmake/FindHIP/run_make2cmake.cmake
-@@ -0,0 +1,50 @@
-+###############################################################################
-+# Computes dependencies using HIPCC
-+###############################################################################
-+
-+###############################################################################
-+# This file converts dependency files generated using hipcc to a format that
-+# cmake can understand.
-+
-+# Input variables:
-+#
-+# input_file:STRING=<> Dependency file to parse. Required argument
-+# output_file:STRING=<> Output file to generate. Required argument
-+
-+if(NOT input_file OR NOT output_file)
-+ message(FATAL_ERROR "You must specify input_file and output_file on the command line")
-+endif()
-+
-+file(READ ${input_file} depend_text)
-+
-+if (NOT "${depend_text}" STREQUAL "")
-+ string(REPLACE " /" "\n/" depend_text ${depend_text})
-+ string(REGEX REPLACE "^.*:" "" depend_text ${depend_text})
-+ string(REGEX REPLACE "[ \\\\]*\n" ";" depend_text ${depend_text})
-+
-+ set(dependency_list "")
-+
-+ foreach(file ${depend_text})
-+ string(REGEX REPLACE "^ +" "" file ${file})
-+ if(NOT EXISTS "${file}")
-+ message(WARNING " Removing non-existent dependency file: ${file}")
-+ set(file "")
-+ endif()
-+
-+ if(NOT IS_DIRECTORY "${file}")
-+ get_filename_component(file_absolute "${file}" ABSOLUTE)
-+ list(APPEND dependency_list "${file_absolute}")
-+ endif()
-+ endforeach()
-+endif()
-+
-+# Remove the duplicate entries and sort them.
-+list(REMOVE_DUPLICATES dependency_list)
-+list(SORT dependency_list)
-+
-+foreach(file ${dependency_list})
-+ set(hip_hipcc_depend "${hip_hipcc_depend} \"${file}\"\n")
-+endforeach()
-+
-+file(WRITE ${output_file} "# Generated by: FindHIP.cmake. Do not edit.\nSET(HIP_HIPCC_DEPEND\n ${hip_hipcc_depend})\n\n")
-+# vim: ts=4:sw=4:expandtab:smartindent
---
-2.22.0
-
diff --git a/var/spack/repos/builtin/packages/rocalution/package.py b/var/spack/repos/builtin/packages/rocalution/package.py
index 93b729c7c5..eeee35768e 100644
--- a/var/spack/repos/builtin/packages/rocalution/package.py
+++ b/var/spack/repos/builtin/packages/rocalution/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,33 +16,58 @@ class Rocalution(CMakePackage):
other scientific software packages."""
homepage = "https://github.com/ROCmSoftwarePlatform/rocALUTION"
- url = "https://github.com/ROCmSoftwarePlatform/rocALUTION/archive/rocm-3.7.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/rocALUTION.git"
+ url = "https://github.com/ROCmSoftwarePlatform/rocALUTION/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='d3a7b9290f99bdc7382d1d5259c3f5e0e66a43aef4d05b7c2cd78b0e4a5c59bc')
+ version('4.3.0', sha256='f064b96f9f04cf22b89f95f72147fcfef28e2c56ecd764008c060f869c74c144')
+ version('4.2.0', sha256='0424adf522ded41de5b77666e04464a25c73c92e34025762f30837f90a797445')
+ version('4.1.0', sha256='3f61be18a02dff0c152a0ad7eb4779c43dd744b0ba172aa6a4267fc596d582e4')
+ version('4.0.0', sha256='80a224a5c19dea290e6edc0e170c3dff2e726c2b3105d599ec6858cc66f076a9')
+ version('3.10.0', sha256='c24cb9d1a8a1a3118040b8b16dec7c06268bcf157424d3378256cc9eb93f1b58')
+ version('3.9.0', sha256='1ce36801fe1d44f743b46b43345c0cd90d76b73911b2ec97be763f93a35396fb')
version('3.8.0', sha256='39e64a29e75c4276163a93596436064c6338770ca72ce7f43711ed8285ed2de5')
version('3.7.0', sha256='4d6b20aaaac3bafb7ec084d684417bf578349203b0f9f54168f669e3ec5699f8')
version('3.5.0', sha256='be2f78c10c100d7fd9df5dd2403a44700219c2cbabaacf2ea50a6e2241df7bfe')
depends_on('cmake@3.5:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0']:
- depends_on('hip@' + ver, when='@' + ver)
- depends_on('rocblas@' + ver, type='link', when='@' + ver)
- depends_on('rocprim@' + ver, type='link', when='@' + ver)
- depends_on('rocsparse@' + ver, type='link', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('rocblas@' + ver, when='@' + ver)
+ depends_on('rocprim@' + ver, when='@' + ver)
+ depends_on('rocsparse@' + ver, when='@' + ver)
+ depends_on('comgr@' + ver, when='@' + ver)
depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- patch('0001-fix-hip-build-error.patch')
+ for ver in ['3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('rocrand@' + ver, when='@' + ver)
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
+ def patch(self):
+ if '@3.9.0:' in self.spec:
+ kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
+
+ with working_dir('src/base/hip'):
+ match = '^#include <rocrand/rocrand.hpp>'
+ substitute = "#include <rocrand.hpp>"
+ files = ['hip_rand_normal.hpp', 'hip_rand_uniform.hpp']
+ filter_file(match, substitute, *files, **kwargs)
+
def cmake_args(self):
args = [
- '-DSUPPORT_HIP=ON',
- '-DSUPPORT_MPI=OFF',
- '-DBUILD_CLIENTS_SAMPLES=OFF'
+ self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake),
+ self.define('SUPPORT_HIP', 'ON'),
+ self.define('SUPPORT_MPI', 'OFF'),
+ self.define('BUILD_CLIENTS_SAMPLES', 'OFF')
]
+
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
return args
diff --git a/var/spack/repos/builtin/packages/rocblas/package.py b/var/spack/repos/builtin/packages/rocblas/package.py
index 66c63ce9ab..f289d4b3e9 100644
--- a/var/spack/repos/builtin/packages/rocblas/package.py
+++ b/var/spack/repos/builtin/packages/rocblas/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,16 @@ class Rocblas(CMakePackage):
"""Radeon Open Compute BLAS library"""
homepage = "https://github.com/ROCmSoftwarePlatform/rocBLAS/"
- url = "https://github.com/ROCmSoftwarePlatform/rocBLAS/archive/rocm-3.5.0.tar.gz"
-
- maintainers = ['srekolam', 'arjun-raj-kuppala']
-
+ git = "https://github.com/ROCmSoftwarePlatform/rocBLAS.git"
+ url = "https://github.com/ROCmSoftwarePlatform/rocBLAS/archive/rocm-4.3.0.tar.gz"
+
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+ version('4.3.1', sha256='ad3c09573cb2bcfdb12bfb5a05e85f9c95073993fd610981df24dda792727b4b')
+ version('4.3.0', sha256='b15a66c861b3394cb83c56b64530b2c7e57b2b4c50f55d0e66bb3d1483b50ec4')
+ version('4.2.0', sha256='547f6d5d38a41786839f01c5bfa46ffe9937b389193a8891f251e276a1a47fb0')
+ version('4.1.0', sha256='8be20c722bab169bc4badd79a9eab9a1aa338e0e5ff58ad85ba6bf09e8ac60f4')
+ version('4.0.0', sha256='78e37a7597b581d90a29e4b956fa65d0f8d1c8fb51667906b5fe2a223338d401')
+ version('3.10.0', sha256='9bfd0cf99662192b1ac105ab387531cfa9338ae615db80ed690c6a14d987e0e8')
version('3.9.0', sha256='3ecd2d9fd2be0e1697a191d143a2d447b53a91ae01afb50231d591136ad5e2fe')
version('3.8.0', sha256='568a9da0360349b1b134d74cc67cbb69b43c06eeca7c33b50072cd26cd3d8900')
version('3.7.0', sha256='9425db5f8e8b6f7fb172d09e2a360025b63a4e54414607709efc5acb28819642')
@@ -26,14 +32,18 @@ class Rocblas(CMakePackage):
depends_on('cmake@3:', type='build')
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('llvm-amdgpu@' + ver, when='@' + ver)
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
+ depends_on('rocminfo@' + ver, type='build', when='@' + ver)
+
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('hip@' + ver, when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
- # used in Tensile
depends_on('rocm-smi@' + ver, type='build', when='@' + ver)
- depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
+
+ for ver in ['4.0.0', '4.1.0', '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('rocm-smi-lib@' + ver, type='build', when='@' + ver)
# This is the default library format since 3.7.0
depends_on('msgpack-c@3:', when='@3.7:')
@@ -44,26 +54,24 @@ class Rocblas(CMakePackage):
depends_on('py-pyyaml', type='build')
depends_on('py-wheel', type='build')
depends_on('py-msgpack', type='build')
-
- resource(name='Tensile',
- git='https://github.com/ROCmSoftwarePlatform/Tensile.git',
- commit='f842a1a4427624eff6cbddb2405c36dec9a210cd',
- when='@3.5.0')
-
- resource(name='Tensile',
- git='https://github.com/ROCmSoftwarePlatform/Tensile.git',
- commit='af71ea890a893e647bf2cf4571a90297d65689ca',
- when='@3.7.0')
-
- resource(name='Tensile',
- git='https://github.com/ROCmSoftwarePlatform/Tensile.git',
- commit='9123205f9b5f95c96ff955695e942d2c3b321cbf',
- when='@3.8.0')
-
- resource(name='Tensile',
- git='https://github.com/ROCmSoftwarePlatform/Tensile.git',
- commit='b68edc65aaeed08c71b2b8622f69f83498b57d7a',
- when='@3.9.0')
+ depends_on('py-pip', type='build')
+
+ for t_version, t_commit in [
+ ('@3.5.0', 'f842a1a4427624eff6cbddb2405c36dec9a210cd'),
+ ('@3.7.0', 'af71ea890a893e647bf2cf4571a90297d65689ca'),
+ ('@3.8.0', '9123205f9b5f95c96ff955695e942d2c3b321cbf'),
+ ('@3.9.0', 'b68edc65aaeed08c71b2b8622f69f83498b57d7a'),
+ ('@3.10.0', 'ab44bf46b609b5a40053f310bef2ab7511f726ae'),
+ ('@4.0.0', 'ab44bf46b609b5a40053f310bef2ab7511f726ae'),
+ ('@4.1.0', 'd175277084d3253401583aa030aba121e8875bfd'),
+ ('@4.2.0', '3438af228dc812768b20a068b0285122f327fa5b'),
+ ('@4.3.0', '9cbabb07f81e932b9c98bf5ae48fbd7fcef615cf'),
+ ('@4.3.1', '9cbabb07f81e932b9c98bf5ae48fbd7fcef615cf')
+ ]:
+ resource(name='Tensile',
+ git='https://github.com/ROCmSoftwarePlatform/Tensile.git',
+ commit=t_commit,
+ when=t_version)
# Status: https://github.com/ROCmSoftwarePlatform/Tensile/commit/a488f7dadba34f84b9658ba92ce9ec5a0615a087
# Not yet landed in 3.7.0, nor 3.8.0.
@@ -74,27 +82,39 @@ class Rocblas(CMakePackage):
def cmake_args(self):
arch = self.spec.variants['tensile_architecture'].value
+ if self.spec.satisfies('@4.1.0:'):
+ if arch == 'gfx906' or arch == 'gfx908':
+ arch = arch + ':xnack-'
tensile = join_path(self.stage.source_path, 'Tensile')
args = [
- '-Damd_comgr_DIR={0}'.format(self.spec['comgr'].prefix),
- '-DBUILD_CLIENTS_TESTS=OFF',
- '-DBUILD_CLIENTS_BENCHMARKS=OFF',
- '-DBUILD_CLIENTS_SAMPLES=OFF',
- '-DRUN_HEADER_TESTING=OFF',
- '-DBUILD_WITH_TENSILE=ON',
- '-DTensile_TEST_LOCAL_PATH={0}'.format(tensile),
- '-DTensile_COMPILER=hipcc',
- '-DTensile_ARCHITECTURE={0}'.format(arch),
- '-DTensile_LOGIC=asm_full',
- '-DTensile_CODE_OBJECT_VERSION=V3',
- '-DBUILD_WITH_TENSILE_HOST={0}'.format(
+ self.define('BUILD_CLIENTS_TESTS', 'OFF'),
+ self.define('BUILD_CLIENTS_BENCHMARKS', 'OFF'),
+ self.define('BUILD_CLIENTS_SAMPLES', 'OFF'),
+ self.define('RUN_HEADER_TESTING', 'OFF'),
+ self.define('BUILD_WITH_TENSILE', 'ON'),
+ self.define('Tensile_TEST_LOCAL_PATH', tensile),
+ self.define('Tensile_COMPILER', 'hipcc'),
+ self.define('Tensile_LOGIC', 'asm_full'),
+ self.define('Tensile_CODE_OBJECT_VERSION', 'V3'),
+ self.define(
+ 'BUILD_WITH_TENSILE_HOST',
'ON' if '@3.7.0:' in self.spec else 'OFF'
)
]
if '@3.7.0:' in self.spec:
- args.append('-DTensile_LIBRARY_FORMAT=msgpack')
+ args.append(self.define('Tensile_LIBRARY_FORMAT', 'msgpack'))
+
+ # See https://github.com/ROCmSoftwarePlatform/rocBLAS/commit/c1895ba4bb3f4f5947f3818ebd155cf71a27b634
+ if self.spec.satisfies('@:4.2.0'):
+ args.append(self.define('Tensile_ARCHITECTURE', arch))
+ else:
+ args.append(self.define('AMDGPU_TARGETS', arch))
+
+ # See https://github.com/ROCmSoftwarePlatform/rocBLAS/issues/1196
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
return args
diff --git a/var/spack/repos/builtin/packages/rocfft/package.py b/var/spack/repos/builtin/packages/rocfft/package.py
index c43aaa2c1a..1785bcad5c 100644
--- a/var/spack/repos/builtin/packages/rocfft/package.py
+++ b/var/spack/repos/builtin/packages/rocfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,39 +11,62 @@ class Rocfft(CMakePackage):
"""Radeon Open Compute FFT library"""
homepage = "https://github.com/ROCmSoftwarePlatform/rocFFT/"
- url = "https://github.com/ROCmSoftwarePlatform/rocfft/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/rocFFT.git"
+ url = "https://github.com/ROCmSoftwarePlatform/rocfft/archive/rocm-4.3.0.tar.gz"
- maintainers = ['srekolam', 'arjun-raj-kuppala']
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+ version('4.3.1', sha256='fcdc4d12b93d967b6f992b4045da98433eabf2ee0ba84fc6b6f81e380584fbc9')
+ version('4.3.0', sha256='cb5b8f62330bc61b17a3a2fd1500068ee05d48cb51797901dd259dbc84610478')
+ version('4.2.0', sha256='db29c9067f0cfa98bddd3574f6aa7200cfc790cc6da352d19e4696c3f3982163')
+ version('4.1.0', sha256='df23fcb05aae72557461ae3687be7e3b8b78be4132daf1aa9dc07339f4eba0cc')
+ version('4.0.0', sha256='d1d10d270f822e0bab64307313ef163ba449b058bf3352962bbb26d4f4db89d0')
+ version('3.10.0', sha256='9f57226aac7d9a0515e14a5a5b08a85e727de72b3f9c2177daf56749ac2c76ae')
version('3.9.0', sha256='9c9c0b7f09bab17250f5101d1605e7a61218eae828a3eb8fe048d607181294ce')
version('3.8.0', sha256='ed23009796e2ee7c43dcc24527f2d6b1d7a73dceac06c30384460098d2fe1556')
version('3.7.0', sha256='94462e4bd19c2c749fcf6903adbee66d4d3bd345c0246861ff8f40b9d08a6ead')
version('3.5.0', sha256='629f02cfecb7de5ad2517b6a8aac6ed4de60d3a9c620413c4d9db46081ac2c88')
amdgpu_targets = (
- 'gfx701', 'gfx801', 'gfx802', 'gfx803',
+ 'none', 'gfx701', 'gfx801', 'gfx802', 'gfx803',
'gfx900', 'gfx906', 'gfx908', 'gfx1010',
'gfx1011', 'gfx1012'
)
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
variant('amdgpu_target', default='gfx701', multi=True, values=amdgpu_targets)
+ variant('amdgpu_target_sram_ecc', default='none', multi=True, values=amdgpu_targets)
depends_on('cmake@3:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hip@' + ver, when='@' + ver)
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('hip@' + ver, when='@' + ver)
- depends_on('comgr@' + ver, type=('build', 'link'), when='@' + ver)
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
def cmake_args(self):
- archs = ",".join(self.spec.variants['amdgpu_target'].value)
+ args = []
+
+ tgt = self.spec.variants['amdgpu_target'].value
+
+ if tgt[0] != 'none':
+ if '@:3.8.0' in self.spec:
+ args.append(self.define('CMAKE_CXX_FLAGS',
+ '--amdgpu-target={0}'.format(",".join(tgt))))
+ else:
+ args.append(self.define('AMDGPU_TARGETS', ";".join(tgt)))
+
+ # From version 3.9 and above we have AMDGPU_TARGETS_SRAM_ECC
+ tgt_sram = self.spec.variants['amdgpu_target_sram_ecc'].value
+
+ if tgt_sram[0] != 'none' and '@3.9.0:' in self.spec:
+ args.append(self.define('AMDGPU_TARGETS_SRAM_ECC', ";".join(tgt_sram)))
+
+ # See https://github.com/ROCmSoftwarePlatform/rocFFT/issues/322
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
- args = [
- '-DCMAKE_CXX_FLAGS=--amdgpu-target={0}'.format(archs),
- ]
return args
diff --git a/var/spack/repos/builtin/packages/rocketmq/package.py b/var/spack/repos/builtin/packages/rocketmq/package.py
index b3630b06ea..1d1aebe41c 100644
--- a/var/spack/repos/builtin/packages/rocketmq/package.py
+++ b/var/spack/repos/builtin/packages/rocketmq/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rocksdb/package.py b/var/spack/repos/builtin/packages/rocksdb/package.py
index a31a9af5cc..cdc4ac4c07 100644
--- a/var/spack/repos/builtin/packages/rocksdb/package.py
+++ b/var/spack/repos/builtin/packages/rocksdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,8 @@ class Rocksdb(MakefilePackage):
git = 'https://github.com/facebook/rocksdb.git'
version('master', git=git, branch='master', submodules=True)
+ version('6.20.3', sha256='c6502c7aae641b7e20fafa6c2b92273d935d2b7b2707135ebd9a67b092169dca')
+ version('6.19.3', sha256='5c19ffefea2bbe4c275d0c60194220865f508f371c64f42e802b4a85f065af5b')
version('6.11.4', sha256='6793ef000a933af4a834b59b0cd45d3a03a3aac452a68ae669fb916ddd270532')
version('6.7.3', sha256='c4d1397b58e4801b5fd7c3dd9175e6ae84541119cbebb739fe17d998f1829e81')
version('6.5.3', sha256='6dc023a11d61d00c8391bd44f26ba7db06c44be228c10b552edc84e02d7fbde2')
@@ -31,7 +33,7 @@ class Rocksdb(MakefilePackage):
variant('zstd', default=False, description='Enable zstandard compression support')
variant('tbb', default=False, description='Enable Intel TBB support')
- depends_on('bzip2', when='+bzip2')
+ depends_on('bzip2', when='+bz2')
depends_on('gflags')
depends_on('lz4', when='+lz4')
depends_on('snappy', when='+snappy')
@@ -39,6 +41,9 @@ class Rocksdb(MakefilePackage):
depends_on('zstd', when='+zstd')
depends_on('tbb', when='+tbb')
+ # https://github.com/facebook/rocksdb/issues/8286
+ patch('pkg-config.patch', when='@6.13.2:')
+
conflicts('~shared~static', msg='have to build one type of library')
phases = ['install']
@@ -88,16 +93,28 @@ class Rocksdb(MakefilePackage):
env['CFLAGS'] = ' '.join(cflags)
env['PLATFORM_FLAGS'] = ' '.join(ldflags)
- env['INSTALL_PATH'] = self.spec.prefix
+
+ if self.spec.satisfies('@6.13.2:'):
+ env['PREFIX'] = self.spec.prefix
+ else:
+ env['INSTALL_PATH'] = self.spec.prefix
if '+static' in spec:
make('install-static')
+ # We need to clean before building the shared library, otherwise
+ # we might end up with errors regarding missing -fPIC.
+ if '+static+shared' in spec:
+ make('clean')
+
if '+shared' in spec:
make('install-shared')
@run_after('install')
def install_pkgconfig(self):
+ if self.spec.satisfies('@6.13.2:'):
+ return
+
libdir = self.spec['rocksdb'].libs.directories[0]
pkg_path = join_path(libdir, 'pkgconfig')
mkdirp(pkg_path)
diff --git a/var/spack/repos/builtin/packages/rocksdb/pkg-config.patch b/var/spack/repos/builtin/packages/rocksdb/pkg-config.patch
new file mode 100644
index 0000000000..8266f73060
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rocksdb/pkg-config.patch
@@ -0,0 +1,14 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1917,9 +1917,9 @@ gen-pc:
+ -echo 'Name: rocksdb' >> rocksdb.pc
+ -echo 'Description: An embeddable persistent key-value store for fast storage' >> rocksdb.pc
+ -echo Version: $(shell ./build_tools/version.sh full) >> rocksdb.pc
+- -echo 'Libs: -L$${libdir} $(EXEC_LDFLAGS) -lrocksdb' >> rocksdb.pc
++ -echo 'Libs: -L$${libdir} $(subst ','\'',$(EXEC_LDFLAGS)) -lrocksdb' >> rocksdb.pc
+ -echo 'Libs.private: $(PLATFORM_LDFLAGS)' >> rocksdb.pc
+- -echo 'Cflags: -I$${includedir} $(PLATFORM_CXXFLAGS)' >> rocksdb.pc
++ -echo 'Cflags: -I$${includedir}' >> rocksdb.pc
+
+ #-------------------------------------------------
+
diff --git a/var/spack/repos/builtin/packages/rockstar/package.py b/var/spack/repos/builtin/packages/rockstar/package.py
index 80d9138f5f..33f6000f64 100644
--- a/var/spack/repos/builtin/packages/rockstar/package.py
+++ b/var/spack/repos/builtin/packages/rockstar/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
diff --git a/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py b/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py
index 26a30322bc..8985ef63a7 100644
--- a/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py
+++ b/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,18 @@ class RocmBandwidthTest(CMakePackage):
"""Test to measure PciE bandwidth on ROCm platforms"""
homepage = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test"
- url = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test.git"
+ url = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('master', branch='master')
+ version('4.3.1', sha256='a4804c28586457c231594b4e7689872eaf91972119d892325468f3fe8fdbe5ef')
+ version('4.3.0', sha256='c6eb406cd2836af61dd5987f6b761340a1be20f66a9325f480423d10b9d3ec1b')
+ version('4.2.0', sha256='d268365e3bb8031c1201c05e705074d1fd794d236843f80064855cf31e4412f5')
+ version('4.1.0', sha256='4e34b60a7e4090d6475f0cdd86594b1b9a7b85d4e343999b9e148e196f0c2f4c')
+ version('4.0.0', sha256='bde2aa743979eac195dd13ec8d0fcb7da183fff489da32c28b872eed7f6681b3')
+ version('3.10.0', sha256='ad1dedad9023ccb050082c866fa5131665d9c3b50de0b78e4618730c29a07773')
version('3.9.0', sha256='f366299b48a29b419febb2ba398d1abe4cd01425d33254777e426966b722d3b1')
version('3.8.0', sha256='7de71a2ba17bbeea9107f2e9e65729f507234d6cbbb44f251240d64683027497')
version('3.7.0', sha256='9aa1d4b7b01ee4d443effc76ed5f6f43a051fd815692b59dfccf0ecbfeaeed03')
@@ -24,8 +32,9 @@ class RocmBandwidthTest(CMakePackage):
depends_on('cmake@3:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
- depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1', 'master']:
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
+ depends_on('hsakmt-roct@' + ver, when='@' + ver)
build_targets = ['package']
diff --git a/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py b/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py
index f9fcb06444..230dde7e80 100644
--- a/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py
+++ b/var/spack/repos/builtin/packages/rocm-clang-ocl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,17 @@ class RocmClangOcl(CMakePackage):
""" OpenCL compilation with clang compiler """
homepage = "https://github.com/RadeonOpenCompute/clang-ocl"
- url = "https://github.com/RadeonOpenCompute/clang-ocl/archive/rocm-3.9.0.tar.gz"
+ git = "https://github.com/RadeonOpenCompute/clang-ocl.git"
+ url = "https://github.com/RadeonOpenCompute/clang-ocl/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
-
+ version('master', branch='master')
+ version('4.3.1', sha256='12461d4fd4f3f40710d2c041cfee37da83ccda9d2761d7708335349e7ec5ad87')
+ version('4.3.0', sha256='bc5650f2f105b10a1e22d8e5cc9464b0f960252a08e5e1fdee222af1fc5c022c')
+ version('4.2.0', sha256='702796f4e31f6119173d915db9bee13c060a75d9eb5b1f8e3d20779d6702dfdc')
+ version('4.1.0', sha256='c6e65da5541df9ee940caeeffe1b87c92547edc1770538fd2010c9c998a593b5')
+ version('4.0.0', sha256='c8f9091396ee0096f6d7c1cd13d80532c424e838bec1e4cebf903ebaf649e82e')
+ version('3.10.0', sha256='17fc8fb8c38b18f9f0cac339dda6cea3e9e66805f7a92ec2456072fc1e72fa85')
version('3.9.0', sha256='3d63c7ac259ba8b0bfd5e4a94df1490c2b6cbac4d43dc7bbc210a536251268fe')
version('3.8.0', sha256='a829aa2efb6e3bc00d8a08a96404f937f3c8adf3b4922b5ac35050d6e08b912d')
version('3.7.0', sha256='9c00c7e7dd3ac8326ae6772a43866b44ae049d5960ea6993d14a2370db74d326')
@@ -23,8 +30,10 @@ class RocmClangOcl(CMakePackage):
depends_on('cmake@3:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1', 'master']:
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
- for ver in ['3.7.0', '3.8.0', '3.9.0']:
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
+ depends_on('llvm-amdgpu@' + ver, when='@' + ver)
+
+ # support both builtin and standalone device libs
+ depends_on('rocm-device-libs@' + ver, when='@{0} ^llvm-amdgpu ~rocm-device-libs'.format(ver))
diff --git a/var/spack/repos/builtin/packages/rocm-cmake/package.py b/var/spack/repos/builtin/packages/rocm-cmake/package.py
index 86593f4b5d..259b6f0a10 100644
--- a/var/spack/repos/builtin/packages/rocm-cmake/package.py
+++ b/var/spack/repos/builtin/packages/rocm-cmake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,18 +12,29 @@ class RocmCmake(CMakePackage):
needed for the ROCM software stack"""
homepage = "https://github.com/RadeonOpenCompute/rocm-cmake"
- url = "https://github.com/RadeonOpenCompute/rocm-cmake/archive/rocm-3.9.0.tar.gz"
+ git = "https://github.com/RadeonOpenCompute/rocm-cmake.git"
+ url = "https://github.com/RadeonOpenCompute/rocm-cmake/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('master', branch='master')
+ version('4.3.1', sha256='acf2a58e2cd486f473194bf01247c52dbf20bd5f6465810fb221470298f2557f')
+ version('4.3.0', sha256='bb752d8d2727b7ef2754838e389075dd4212cf5439d099392141f93d05391415')
+ version('4.2.0', sha256='299e190ec3d38c2279d9aec762469628f0b2b1867adc082edc5708d1ac785c3b')
+ version('4.1.0', sha256='a4521d119fa07954e529d5e717ad1b338992c0694690dbce00fee26c01129c8c')
+ version('4.0.0', sha256='4577487acaa6e041a1316145867584f31caaf0d4aa2dd8fd7f82f81c269cada6')
+ version('3.10.0', sha256='751be4484efdcf0d5fa675480db6e2cddab897de4708c7c7b9fa7adb430b52d7')
version('3.9.0', sha256='e0a8db85bb55acb549f360eb9b04f55104aa93e4c3db33f9ba11d9adae2a07eb')
version('3.8.0', sha256='9e4be93c76631224eb49b2fa30b0d14c1b3311a6519c8b393da96ac0649d9f30')
version('3.7.0', sha256='51abfb06124c2e0677c4d6f7fe83c22fe855cb21386f0053ace09f8ab297058b')
version('3.5.0', sha256='5fc09e168879823160f5fdf4fd1ace2702d36545bf733e8005ed4ca18c3e910f')
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
+ variant('ldconfig', default=True, description='ROCm ldconfig')
depends_on('cmake@3:', type='build')
def cmake_args(self):
- return ['-DROCM_DISABLE_LDCONFIG=ON']
+ return [
+ self.define_from_variant('ROCM_DISABLE_LDCONFIG', 'ldconfig')
+ ]
diff --git a/var/spack/repos/builtin/packages/rocm-dbgapi/package.py b/var/spack/repos/builtin/packages/rocm-dbgapi/package.py
index a4d06d612a..5e42e28294 100644
--- a/var/spack/repos/builtin/packages/rocm-dbgapi/package.py
+++ b/var/spack/repos/builtin/packages/rocm-dbgapi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,10 +14,18 @@ class RocmDbgapi(CMakePackage):
AMD's commercially available GPU architectures."""
homepage = "https://github.com/ROCm-Developer-Tools/ROCdbgapi"
- url = "https://github.com/ROCm-Developer-Tools/ROCdbgapi/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCm-Developer-Tools/ROCdbgapi.git"
+ url = "https://github.com/ROCm-Developer-Tools/ROCdbgapi/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('master', branch='amd-master')
+ version('4.3.1', sha256='dddf2549ad6bb806f7e5d5a5336f5a00fe87a124f2a778be18ec4dc41f891912')
+ version('4.3.0', sha256='4255d83d218bb0db8be9fef18e03a955ea1c6de1c635c31685ee5fc1540ddde6')
+ version('4.2.0', sha256='fcdee5aaf5ed40c0377ce007a2947da9e718eeee86ca3e13192ff9e96a1b7373')
+ version('4.1.0', sha256='d04fd9b2005691313547c4134b027b56b0ec6089f67d3bccbdb8fb1c92cde9bd')
+ version('4.0.0', sha256='e87f31b3a22861397eb62d8363dd1e153596097ccfe68c6eefc1a83a2432ae18')
+ version('3.10.0', sha256='89a8d352d59e4c0dc13160b1bf1f4bc3bfec5af544050030aa619b1ff88f1850')
version('3.9.0', sha256='d1553f89d2b0419304ea82ed2b97abdc323c2fed183f0e119da1a72416a48136')
version('3.8.0', sha256='760ff77c6578f3548f367a8bd3dda8680b7519f6b20216755105b87785d1e3f8')
version('3.7.0', sha256='bdeaf81ea8a0ac861a697e435c72cbe767c291638be43f0d09116ad605dfee4f')
@@ -25,7 +33,8 @@ class RocmDbgapi(CMakePackage):
depends_on('cmake@3:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1', 'master']:
depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
depends_on('comgr@' + ver, type=('build', 'link'), when='@' + ver)
diff --git a/var/spack/repos/builtin/packages/rocm-debug-agent/0002-add-hip-architecture.patch b/var/spack/repos/builtin/packages/rocm-debug-agent/0002-add-hip-architecture.patch
new file mode 100644
index 0000000000..b136132157
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rocm-debug-agent/0002-add-hip-architecture.patch
@@ -0,0 +1,12 @@
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 62ee104..e1dd0d5 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -42,6 +42,7 @@ find_package(HIP REQUIRED MODULE)
+ file(GLOB SOURCES "*.cpp")
+
+ set_source_files_properties(${SOURCES} PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)
++set(CMAKE_HIP_ARCHITECTURES gfx900 gfx906 gfx908 gfx90a )
+ hip_add_executable(rocm-debug-agent-test ${SOURCES}
+ HIPCC_OPTIONS --amdgpu-target=gfx900 --amdgpu-target=gfx906
+ --amdgpu-target=gfx908 --amdgpu-target=gfx90a
diff --git a/var/spack/repos/builtin/packages/rocm-debug-agent/package.py b/var/spack/repos/builtin/packages/rocm-debug-agent/package.py
index 07fbab2397..8857d47c1b 100644
--- a/var/spack/repos/builtin/packages/rocm-debug-agent/package.py
+++ b/var/spack/repos/builtin/packages/rocm-debug-agent/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,16 @@ class RocmDebugAgent(CMakePackage):
"""Radeon Open Compute (ROCm) debug agent"""
homepage = "https://github.com/ROCm-Developer-Tools/rocr_debug_agent"
- url = "https://github.com/ROCm-Developer-Tools/rocr_debug_agent/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCm-Developer-Tools/rocr_debug_agent.git"
+ url = "https://github.com/ROCm-Developer-Tools/rocr_debug_agent/archive/rocm-4.3.1.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
-
+ version('4.3.1', sha256='7bee6be6c29883f03f47a8944c0d50b7cf43a6b5eeed734602f521c3c40a18d0')
+ version('4.3.0', sha256='0cdee5792b808e03b839070da0d1b08dc4078a7d1fc295f0c99c6a5ae7d636a6')
+ version('4.2.0', sha256='ce02a5b752291882daa0a2befa23944e59087ce9fe65a91061476c3c399e4a0c')
+ version('4.1.0', sha256='b1ae874887e5ee037070f1dd46b145ad02ec9fd8a724c6b6ae194b534f01acdb')
+ version('4.0.0', sha256='a9e64834d56a9221c242e71aa110c2cef0087aa8f86f50428dd618e5e623cc3c')
+ version('3.10.0', sha256='675b8d3cc4aecc4428a93553abf664bbe6a2cb153f1f480e6cadeeb4d24ef4b1')
version('3.9.0', sha256='3e56bf8b2b53d9102e8709b6259deea52257dc6210df16996b71a7d677952b1b')
version('3.8.0', sha256='55243331ac4b0d90e88882eb29fd06fad354e278f8a34ac7f0680b2c895ca2ac')
version('3.7.0', sha256='d0f442a2b224a734b0080c906f0fc3066a698e5cde9ff97ffeb485b36d2caba1')
@@ -32,17 +38,21 @@ class RocmDebugAgent(CMakePackage):
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
depends_on('cmake@3:', type='build')
- depends_on("elfutils", type='link')
+ depends_on('elfutils@:0.168', type='link')
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
+ depends_on('hsakmt-roct@' + ver, when='@' + ver)
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
- depends_on('hsakmt-roct@' + ver, type='link', when='@' + ver)
- if ver in ['3.7.0', '3.8.0', '3.9.0']:
- depends_on('rocm-dbgapi@' + ver, type='link', when='@' + ver)
- depends_on('hip@' + ver, when='@' + ver)
+ for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0',
+ '4.3.0', '4.3.1']:
+ depends_on('rocm-dbgapi@' + ver, when='@' + ver)
+ depends_on('hip@' + ver, when='@' + ver)
# https://github.com/ROCm-Developer-Tools/rocr_debug_agent/pull/4
patch('0001-Drop-overly-strict-Werror-flag.patch', when='@3.7.0:')
+ patch('0002-add-hip-architecture.patch', when='@3.9.0:')
@property
def root_cmakelists_dir(self):
diff --git a/var/spack/repos/builtin/packages/rocm-device-libs/package.py b/var/spack/repos/builtin/packages/rocm-device-libs/package.py
index 17f13b04db..e75eeaf4a2 100644
--- a/var/spack/repos/builtin/packages/rocm-device-libs/package.py
+++ b/var/spack/repos/builtin/packages/rocm-device-libs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,18 @@ class RocmDeviceLibs(CMakePackage):
"""set of AMD specific device-side language runtime libraries"""
homepage = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs"
- url = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs/archive/rocm-3.9.0.tar.gz"
-
- maintainers = ['srekolam', 'arjun-raj-kuppala']
-
+ git = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs.git"
+ url = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs/archive/rocm-4.3.1.tar.gz"
+
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+
+ version('master', branch='amd-stg-open')
+ version('4.3.1', sha256='a7291813168e500bfa8aaa5d1dccf5250764ddfe27535def01b51eb5021d4592')
+ version('4.3.0', sha256='055a67e63da6491c84cd45865500043553fb33c44d538313dd87040a6f3826f2')
+ version('4.2.0', sha256='34a2ac39b9bb7cfa8175cbab05d30e7f3c06aaffce99eed5f79c616d0f910f5f')
+ version('4.1.0', sha256='f5f5aa6bfbd83ff80a968fa332f80220256447c4ccb71c36f1fbd2b4a8e9fc1b')
+ version('4.0.0', sha256='d0aa495f9b63f6d8cf8ac668f4dc61831d996e9ae3f15280052a37b9d7670d2a')
+ version('3.10.0', sha256='bca9291385d6bdc91a8b39a46f0fd816157d38abb1725ff5222e6a0daa0834cc')
version('3.9.0', sha256='c99f45dacf5967aef9a31e3731011b9c142446d4a12bac69774998976f2576d7')
version('3.8.0', sha256='e82cc9a8eb7d92de02cabb856583e28f17a05c8cf9c97aec5275608ef1a38574')
version('3.7.0', sha256='b3a114180bf184b3b829c356067bc6a98021d52c1c6f9db6bc57272ebafc5f1d')
@@ -25,14 +33,19 @@ class RocmDeviceLibs(CMakePackage):
depends_on('cmake@3:', type='build')
depends_on('zlib', type='link', when='@3.9.0:')
depends_on('texinfo', type='link', when='@3.9.0:')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
+
+ # Make sure llvm is not built with rocm-device-libs (that is, it's already
+ # built with rocm-device-libs as an external project).
+ depends_on('llvm-amdgpu ~rocm-device-libs')
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1', 'master']:
depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
+ depends_on('llvm-amdgpu@' + ver, when='@' + ver)
def cmake_args(self):
spec = self.spec
- args = ['-DLLVM_DIR={0}'.format(spec['llvm-amdgpu'].prefix),
- '-DCMAKE_C_COMPILER={0}/bin/clang'.format(
- spec['llvm-amdgpu'].prefix),
- ]
- return args
+ return [
+ self.define('LLVM_DIR', spec['llvm-amdgpu'].prefix),
+ self.define('CMAKE_C_COMPILER', spec['llvm-amdgpu'].prefix.bin.clang)
+ ]
diff --git a/var/spack/repos/builtin/packages/rocm-gdb/package.py b/var/spack/repos/builtin/packages/rocm-gdb/package.py
index 4bda8ef75b..9b031706a4 100644
--- a/var/spack/repos/builtin/packages/rocm-gdb/package.py
+++ b/var/spack/repos/builtin/packages/rocm-gdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,15 @@ class RocmGdb(AutotoolsPackage):
based on GDB, the GNU source-level debugger."""
homepage = "https://github.com/ROCm-Developer-Tools/ROCgdb/"
- url = "https://github.com/ROCm-Developer-Tools/ROCgdb/archive/rocm-3.9.0.tar.gz"
+ url = "https://github.com/ROCm-Developer-Tools/ROCgdb/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
-
+ version('4.3.1', sha256='995756a24b1e1510647dac1476a3a9a8e3af8e9fd9f4af1d00dd2db28e7a4ef2')
+ version('4.3.0', sha256='8ee0667ab2cd91b2cc41d3a7af046d36a6b4e2007f050265aa65e0aedec83fd7')
+ version('4.2.0', sha256='4bc579584a1f8614111e7e44d8aa1c6d5d06be3f5db055aba2cf1abc140122ac')
+ version('4.1.0', sha256='28dc806e48695d654d52fb1a634df6d4c1243f00846ae90161e7a5e9f4d88b24')
+ version('4.0.0', sha256='b90291b0a8409fe66d8a65d2731dcb87b9f5a22bac9ce3ffbab726eb129ba13d')
+ version('3.10.0', sha256='05455cb47dd42404ee8bba047def6a6846a7e877e7a7db8dcffc7100d5ba16f0')
version('3.9.0', sha256='0765c96439c0efa145418d210d865b9faed463466d7522274959cc4476a37097')
version('3.8.0', sha256='a7c11dc30c952587c616bf7769bad603c3bf80522afc8b73ccda5b78d27bed41')
version('3.7.0', sha256='7a29ef584fd7b6c66bb03aaf8ec2f5a8c758370672a28a4d0d95066e5f6fbdc1')
@@ -24,14 +29,15 @@ class RocmGdb(AutotoolsPackage):
depends_on('cmake@3:', type='build')
depends_on('texinfo', type='build')
depends_on('bison', type='build')
- depends_on('flex', type='build')
+ depends_on('flex@2.6.4:', type='build')
depends_on('libunwind', type='build')
- depends_on('expat', type='build')
- depends_on('python', type='build')
+ depends_on('expat', type=('build', 'link'))
+ depends_on('python', type=('build', 'link'))
depends_on('zlib', type='link')
depends_on('babeltrace@1.2.4', type='link')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('rocm-dbgapi@' + ver, type='link', when='@' + ver)
depends_on('comgr@' + ver, type='link', when='@' + ver)
diff --git a/var/spack/repos/builtin/packages/rocm-opencl/package.py b/var/spack/repos/builtin/packages/rocm-opencl/package.py
index d2112db14c..8e60d96667 100644
--- a/var/spack/repos/builtin/packages/rocm-opencl/package.py
+++ b/var/spack/repos/builtin/packages/rocm-opencl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,6 +10,7 @@ class RocmOpencl(CMakePackage):
"""OpenCL: Open Computing Language on ROCclr"""
homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime"
+ git = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime.git"
maintainers = ['srekolam', 'arjun-raj-kuppala']
@@ -19,17 +20,24 @@ class RocmOpencl(CMakePackage):
url = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/rocm-{0}.tar.gz"
return url.format(version)
-
+ version('master', branch='main')
+ version('4.3.1', sha256='7f98f7d4707b4392f8aa7017aaca9e27cb20263428a1a81fb7ec7c552e60c4ca')
+ version('4.3.0', sha256='d37bddcc6835b6c0fecdf4d02c204ac1d312076f3eef2b1faded1c4c1bc651e9')
+ version('4.2.0', sha256='18133451948a83055ca5ebfb5ba1bd536ed0bcb611df98829f1251a98a38f730')
+ version('4.1.0', sha256='0729e6c2adf1e3cf649dc6e679f9cb936f4f423f4954ad9852857c0a53ef799c')
+ version('4.0.0', sha256='d43ea5898c6b9e730b5efabe8367cc136a9260afeac5d0fe85b481d625dd7df1')
+ version('3.10.0', sha256='3aa9dc5a5f570320b04b35ee129ce9ff21062d2770df934c6c307913f975e93d')
version('3.9.0', sha256='286ff64304905384ce524cd8794c28aee216befd6c9267d4187a12e5a21e2daf')
version('3.8.0', sha256='7f75dd1abf3d771d554b0e7b0a7d915ab5f11a74962c92b013ee044a23c1270a')
version('3.7.0', sha256='283e1dfe4c3d2e8af4d677ed3c20e975393cdb0856e3ccd77b9c7ed2a151650b')
version('3.5.0', sha256='511b617d5192f2d4893603c1a02402b2ac9556e9806ff09dd2a91d398abf39a0')
depends_on('cmake@3:', type='build')
- depends_on('mesa~llvm@18.3:', type='link')
- depends_on('numactl', type='link', when='@3.7.0')
+ depends_on('mesa18~llvm@18.3:', type='link')
+ depends_on('numactl', type='link', when='@3.7.0:')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1', 'master']:
depends_on('hip-rocclr@' + ver, type='build', when='@' + ver)
depends_on('comgr@' + ver, type='build', when='@' + ver)
depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
diff --git a/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py b/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py
new file mode 100644
index 0000000000..32af84d329
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py
@@ -0,0 +1,396 @@
+# Copyright 2013-2021 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)
+
+import os
+import re
+
+from spack import *
+
+tools_url = 'https://github.com/ROCm-Developer-Tools'
+compute_url = 'https://github.com/RadeonOpenCompute'
+
+# Arrays of hashes are in order of the versions array below
+# For example array[0] = 3.9.0, array[1] = 3.10.0, etc.
+
+aomp = [
+ "377ab59b685a73b3f95fba95f5e028678ec5aafabc4177b7f0ffb78da095d679",
+ "808fca9bdefb109d5bcbbc9f5b59c564a6d422488869e986516f2a7233eda235",
+ "aa75455cf1d333419e5310117678e5789c5222f7cb05b05e3dfacef855c55d84",
+ "9e6ed2c7bdc3b4af069751b5d3e92913fd5ac318ae844f68bd78c5def990a8f7",
+ "c368d39ba9c1bc8b0edbe66edaa3f2a4ff5649c2bd16f499ac19dfd1591dec5a"
+]
+
+devlib = [
+ "c99f45dacf5967aef9a31e3731011b9c142446d4a12bac69774998976f2576d7",
+ "bca9291385d6bdc91a8b39a46f0fd816157d38abb1725ff5222e6a0daa0834cc",
+ "d0aa495f9b63f6d8cf8ac668f4dc61831d996e9ae3f15280052a37b9d7670d2a",
+ "f5f5aa6bfbd83ff80a968fa332f80220256447c4ccb71c36f1fbd2b4a8e9fc1b",
+ "34a2ac39b9bb7cfa8175cbab05d30e7f3c06aaffce99eed5f79c616d0f910f5f"
+]
+
+llvm = [
+ "1ff14b56d10c2c44d36c3c412b190d3d8cd1bb12cfc7cd58af004c16fd9987d1",
+ "8262aff88c1ff6c4deb4da5a4f8cda1bf90668950e2b911f93f73edaee53b370",
+ "aa1f80f429fded465e86bcfaef72255da1af1c5c52d58a4c979bc2f6c2da5a69",
+ "244e38d824fa7dfa8d0edf3c036b3c84e9c17a16791828e4b745a8d31eb374ae",
+ "751eca1d18595b565cfafa01c3cb43efb9107874865a60c80d6760ba83edb661"
+]
+
+flang = [
+ "5d113f44fb173bd0d5704b282c5cebbb2aa642c7c29f188764bfa1daa58374c9",
+ "3990d39ff1c908b150f464f0653a123d94be30802f9cad6af18fbb560c4b412e",
+ "f3e19699ce4ac404f41ffe08ef4546e31e2e741d8deb403b5477659e054275d5",
+ "f41f661425534b5cfb20e2c0efd9d0800609dc3876ee9c3f76f026d36abbfa35",
+ "d6c3f3aaa289251a433d99d1cffe432812093089ae876a6863295a15066c1eaf"
+]
+
+extras = [
+ "830a37cf1c6700f81fc00749206a37e7cda4d2867bbdf489e9e2d81f52d06b3d",
+ "5d98d34aff97416d8b5b9e16e7cf474580f8de8a73bd0e549c4440a3c5df4ef5",
+ "51cc8a7c5943e1d9bc657fc9b9797f45e3ce6a4e544d3d3a967c7cd0185a0510",
+ "91fdfadb94aa6afc1942124d0953ddc80c297fa75de1897fb42ac8e7dea51ab9",
+ "31bbe70b51c259a54370d021ae63528a1740b5477a22412685afd14150fff6f4"
+]
+
+versions = ['3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']
+versions_dict = dict()
+components = ['aomp', 'devlib', 'llvm', 'flang', 'extras']
+component_hashes = [aomp, devlib, llvm, flang, extras]
+
+# Loop through versions and create necessary dictionaries of components
+for outer_index, item in enumerate(versions):
+ for inner_index, component in enumerate(component_hashes):
+ versions_dict.setdefault(item, {})[components[inner_index]] = \
+ component_hashes[inner_index][outer_index]
+
+
+class RocmOpenmpExtras(Package):
+ """OpenMP support for ROCm LLVM."""
+
+ homepage = tools_url + "/aomp"
+ url = tools_url + "/aomp/archive/rocm-4.2.0.tar.gz"
+
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'estewart08']
+ version('4.2.0', sha256=versions_dict['4.2.0']['aomp'])
+ version('4.1.0', sha256=versions_dict['4.1.0']['aomp'])
+ version('4.0.0', sha256=versions_dict['4.0.0']['aomp'])
+ version('3.10.0', sha256=versions_dict['3.10.0']['aomp'])
+ version('3.9.0', sha256=versions_dict['3.9.0']['aomp'])
+
+ depends_on('cmake@3:', type='build')
+ depends_on('mesa18~llvm@18.3:', type=('build', 'link'))
+ depends_on('py-setuptools', type='build')
+ depends_on('python@3:', type='build')
+ depends_on('perl-data-dumper', type='build')
+ depends_on('awk', type='build')
+ depends_on('elfutils', type=('build', 'link'))
+ depends_on('libffi', type=('build', 'link'))
+
+ for ver in ['3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']:
+ depends_on('hsakmt-roct@' + ver, when='@' + ver)
+ depends_on('comgr@' + ver, when='@' + ver)
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
+ # standalone rocm-device-libs
+ depends_on('rocm-device-libs@' + ver, when='@' + ver)
+ depends_on('llvm-amdgpu@{0} ~rocm-device-libs ~openmp'.format(ver),
+ when='@' + ver)
+
+ # tag changed to 'rocm-' in 4.0.0
+ if ver == '3.9.0' or ver == '3.10.0':
+ tag = 'rocm-uc-'
+ else:
+ tag = 'rocm-'
+
+ resource(
+ name='rocm-device-libs',
+ url=compute_url +
+ '/ROCm-Device-Libs/archive/' + tag + ver + '.tar.gz',
+ sha256=versions_dict[ver]['devlib'],
+ expand=True,
+ destination='rocm-openmp-extras',
+ placement='rocm-device-libs',
+ when='@' + ver)
+
+ resource(
+ name='flang',
+ url=tools_url + '/flang/archive/' + tag + ver + '.tar.gz',
+ sha256=versions_dict[ver]['flang'],
+ expand=True,
+ destination='rocm-openmp-extras',
+ placement='flang',
+ when='@' + ver)
+
+ resource(
+ name='aomp-extras',
+ url=tools_url + '/aomp-extras/archive/' + tag + ver + '.tar.gz',
+ sha256=versions_dict[ver]['extras'],
+ expand=True,
+ destination='rocm-openmp-extras',
+ placement='aomp-extras',
+ when='@' + ver)
+
+ resource(
+ name='llvm-project',
+ url=compute_url + '/llvm-project/archive/rocm-' + ver + '.tar.gz',
+ sha256=versions_dict[ver]['llvm'],
+ expand=True,
+ destination='rocm-openmp-extras',
+ placement='llvm-project',
+ when='@' + ver)
+
+ def setup_run_environment(self, env):
+ devlibs_prefix = self.spec['rocm-device-libs'].prefix
+ openmp_extras_prefix = self.spec['rocm-openmp-extras'].prefix
+ llvm_prefix = self.spec['llvm-amdgpu'].prefix
+ env.set('AOMP', '{0}'.format(llvm_prefix))
+ env.set('HIP_DEVICE_LIB_PATH',
+ '{0}/amdgcn/bitcode'.format(devlibs_prefix))
+ env.prepend_path('CPATH',
+ '{0}/include'.format(openmp_extras_prefix))
+ env.prepend_path('LIBRARY_PATH',
+ '{0}/lib'.format(openmp_extras_prefix))
+ if self.spec.version < Version('4.1.0'):
+ env.set('AOMP_GPU',
+ '`{0}/rocm-bin/mygpu`'.format(openmp_extras_prefix))
+ else:
+ env.set('AOMP_GPU',
+ '`{0}/bin/mygpu`'.format(openmp_extras_prefix))
+
+ def setup_build_environment(self, env):
+ openmp_extras_prefix = self.spec['rocm-openmp-extras'].prefix
+ llvm_prefix = self.spec['llvm-amdgpu'].prefix
+ env.set('AOMP', '{0}'.format(llvm_prefix))
+ env.set('FC', '{0}/bin/flang'.format(openmp_extras_prefix))
+ env.set(
+ 'GFXLIST',
+ 'gfx700 gfx701 gfx801 gfx803 gfx900 gfx902 gfx906 gfx908')
+
+ def patch(self):
+ src = self.stage.source_path
+ flang_warning = '-Wno-incompatible-pointer-types-discards-qualifiers)'
+ aomp_extras = '{0}/rocm-openmp-extras/aomp-extras/aomp-device-libs'
+ libomptarget = \
+ '{0}/rocm-openmp-extras/llvm-project/openmp/libomptarget'
+ flang = '{0}/rocm-openmp-extras/flang/'
+
+ if self.spec.version < Version('4.1.0'):
+ plugin = '/plugins/hsa/CMakeLists.txt'
+ else:
+ # Spack thinks some warnings from the flang build are errors.
+ # Disable those warnings.
+ filter_file('PRIVATE -fPIC)',
+ 'PRIVATE -fPIC PRIVATE ' + flang_warning,
+ flang.format(src) + 'runtime/flang/CMakeLists.txt',
+ string=True)
+ plugin = '/plugins/amdgpu/CMakeLists.txt'
+ filter_file(
+ '{ROCM_DIR}/amdgcn/bitcode', '{DEVICE_LIBS_DIR}',
+ aomp_extras.format(src) + '/aompextras/CMakeLists.txt',
+ aomp_extras.format(src) + '/libm/CMakeLists.txt',
+ libomptarget.format(src) + '/deviceRTLs/amdgcn/CMakeLists.txt')
+
+ # Openmp adjustments
+ filter_file(
+ '-nogpulib', '-nogpulib -nogpuinc',
+ libomptarget.format(src) + '/deviceRTLs/amdgcn/CMakeLists.txt')
+
+ filter_file(
+ '-x hip', '-x hip -nogpulib -nogpuinc',
+ libomptarget.format(src) + '/deviceRTLs/amdgcn/CMakeLists.txt')
+
+ filter_file(
+ '-c ', '-c -nogpulib -nogpuinc -I{LIMIT}',
+ libomptarget.format(src) + '/hostrpc/CMakeLists.txt')
+
+ filter_file(
+ r'${ROCM_DIR}/hsa/include ${ROCM_DIR}/hsa/include/hsa',
+ '${HSA_INCLUDE}/hsa/include ${HSA_INCLUDE}/hsa/include/hsa',
+ libomptarget.format(src) + plugin,
+ string=True)
+
+ filter_file(
+ '{ROCM_DIR}/hsa/lib', '{HSA_LIB}',
+ libomptarget.format(src) + plugin)
+
+ filter_file(
+ r'{ROCM_DIR}/lib\)',
+ '{HSAKMT_LIB})\nset(HSAKMT_LIB64 ${HSAKMT_LIB64})',
+ libomptarget.format(src) + plugin)
+
+ filter_file(
+ r'-L${LIBOMPTARGET_DEP_LIBHSAKMT_LIBRARIES_DIRS}',
+ '-L${LIBOMPTARGET_DEP_LIBHSAKMT_LIBRARIES_DIRS} -L${HSAKMT_LIB64}',
+ libomptarget.format(src) + plugin,
+ string=True)
+
+ filter_file(
+ r'-rpath,${LIBOMPTARGET_DEP_LIBHSAKMT_LIBRARIES_DIRS}',
+ '-rpath,${LIBOMPTARGET_DEP_LIBHSAKMT_LIBRARIES_DIRS}' +
+ ',-rpath,${HSAKMT_LIB64}',
+ libomptarget.format(src) + plugin,
+ string=True)
+
+ filter_file(
+ '{ROCM_DIR}/include', '{COMGR_INCLUDE}',
+ libomptarget.format(src) + plugin)
+
+ filter_file(
+ r'-L${LLVM_LIBDIR}${OPENMP_LIBDIR_SUFFIX}',
+ '-L${LLVM_LIBDIR}${OPENMP_LIBDIR_SUFFIX} -L${COMGR_LIB}',
+ libomptarget.format(src) + plugin,
+ string=True)
+
+ filter_file(
+ r'rpath,${LLVM_LIBDIR}${OPENMP_LIBDIR_SUFFIX}',
+ 'rpath,${LLVM_LIBDIR}${OPENMP_LIBDIR_SUFFIX}' +
+ '-Wl,-rpath,${COMGR_LIB}',
+ libomptarget.format(src) + plugin,
+ string=True)
+
+ filter_file(
+ 'ADDITIONAL_VERSIONS 2.7', 'ADDITIONAL_VERSIONS 3',
+ flang.format(src) + 'CMakeLists.txt')
+
+ def install(self, spec, prefix):
+ src = self.stage.source_path
+ gfx_list = "gfx700;gfx701;gfx801;gfx803;gfx900;gfx902;gfx906;gfx908"
+ openmp_extras_prefix = self.spec['rocm-openmp-extras'].prefix
+ devlibs_prefix = self.spec['rocm-device-libs'].prefix
+ devlibs_src = '{0}/rocm-openmp-extras/rocm-device-libs'.format(src)
+ hsa_prefix = self.spec['hsa-rocr-dev'].prefix
+ hsakmt_prefix = self.spec['hsakmt-roct'].prefix
+ comgr_prefix = self.spec['comgr'].prefix
+ llvm_inc = '/rocm-openmp-extras/llvm-project/llvm/include'
+ llvm_prefix = self.spec['llvm-amdgpu'].prefix
+ omp_bin_dir = '{0}/bin'.format(openmp_extras_prefix)
+ omp_lib_dir = '{0}/lib'.format(openmp_extras_prefix)
+ bin_dir = '{0}/bin'.format(llvm_prefix)
+ lib_dir = '{0}/lib'.format(llvm_prefix)
+
+ # flang1 and flang2 symlink needed for build of flang-runtime
+ # libdevice symlink to rocm-openmp-extras for runtime
+ # libdebug symlink to rocm-openmp-extras for runtime
+ if not (os.path.islink((os.path.join(bin_dir, 'flang1')))):
+ os.symlink(os.path.join(omp_bin_dir, 'flang1'),
+ os.path.join(bin_dir, 'flang1'))
+ if not (os.path.islink((os.path.join(bin_dir, 'flang2')))):
+ os.symlink(os.path.join(omp_bin_dir, 'flang2'),
+ os.path.join(bin_dir, 'flang2'))
+ if not (os.path.islink((os.path.join(lib_dir, 'libdevice')))):
+ os.symlink(os.path.join(omp_lib_dir, 'libdevice'),
+ os.path.join(lib_dir, 'libdevice'))
+ if not (os.path.islink((os.path.join(llvm_prefix, 'lib-debug')))):
+ os.symlink(os.path.join(openmp_extras_prefix, 'lib-debug'),
+ os.path.join(llvm_prefix, 'lib-debug'))
+
+ # Set cmake args
+ components = dict()
+
+ components['aomp-extras'] = [
+ '../rocm-openmp-extras/aomp-extras',
+ '-DLLVM_DIR={0}'.format(llvm_prefix),
+ '-DDEVICE_LIBS_DIR={0}/amdgcn/bitcode'.format(devlibs_prefix),
+ '-DAOMP_STANDALONE_BUILD=0',
+ '-DDEVICELIBS_ROOT={0}'.format(devlibs_src),
+ '-DNEW_BC_PATH=1',
+ '-DAOMP={0}'.format(llvm_prefix)
+ ]
+
+ # Shared cmake configuration for openmp, openmp-debug
+ openmp_common_args = [
+ '-DROCM_DIR={0}'.format(hsa_prefix),
+ '-DDEVICE_LIBS_DIR={0}/amdgcn/bitcode'.format(devlibs_prefix),
+ '-DAOMP_STANDALONE_BUILD=0',
+ '-DDEVICELIBS_ROOT={0}'.format(devlibs_src),
+ '-DOPENMP_TEST_C_COMPILER={0}/clang'.format(bin_dir),
+ '-DOPENMP_TEST_CXX_COMPILER={0}/clang++'.format(bin_dir),
+ '-DLIBOMPTARGET_AMDGCN_GFXLIST={0}'.format(gfx_list),
+ '-DLIBOMP_COPY_EXPORTS=OFF',
+ '-DHSA_LIB={0}/lib'.format(hsa_prefix),
+ '-DHSAKMT_LIB={0}/lib'.format(hsakmt_prefix),
+ '-DHSAKMT_LIB64={0}/lib64'.format(hsakmt_prefix),
+ '-DCOMGR_INCLUDE={0}/include'.format(comgr_prefix),
+ '-DCOMGR_LIB={0}/lib'.format(comgr_prefix),
+ '-DOPENMP_ENABLE_LIBOMPTARGET=1',
+ '-DOPENMP_ENABLE_LIBOMPTARGET_HSA=1',
+ '-DLLVM_MAIN_INCLUDE_DIR={0}{1}'.format(src, llvm_inc),
+ '-DLLVM_INSTALL_PREFIX={0}'.format(llvm_prefix)
+ ]
+
+ if self.spec.version < Version('4.1.0'):
+ openmp_common_args += [
+ '-DHSA_INCLUDE={0}'.format(hsa_prefix)
+ ]
+ else:
+ openmp_common_args += [
+ '-DHSA_INCLUDE={0}/include/hsa'.format(hsa_prefix)
+ ]
+
+ components['openmp'] = ['../rocm-openmp-extras/llvm-project/openmp']
+ components['openmp'] += openmp_common_args
+
+ components['openmp-debug'] = [
+ '../rocm-openmp-extras/llvm-project/openmp',
+ '-DLIBOMPTARGET_NVPTX_DEBUG=ON',
+ '-DCMAKE_CXX_FLAGS=-g',
+ '-DCMAKE_C_FLAGS=-g'
+ ]
+
+ components['openmp-debug'] += openmp_common_args
+
+ # Shared cmake configuration for pgmath, flang, flang-runtime
+ flang_common_args = [
+ '-DLLVM_ENABLE_ASSERTIONS=ON',
+ '-DLLVM_CONFIG={0}/llvm-config'.format(bin_dir),
+ '-DCMAKE_CXX_COMPILER={0}/clang++'.format(bin_dir),
+ '-DCMAKE_C_COMPILER={0}/clang'.format(bin_dir),
+ '-DCMAKE_Fortran_COMPILER={0}/flang'.format(bin_dir),
+ '-DLLVM_TARGETS_TO_BUILD=AMDGPU;x86'
+ ]
+
+ components['pgmath'] = [
+ '../rocm-openmp-extras/flang/runtime/libpgmath'
+ ]
+
+ components['pgmath'] += flang_common_args
+
+ components['flang'] = [
+ '../rocm-openmp-extras/flang',
+ '-DFLANG_OPENMP_GPU_AMD=ON',
+ '-DFLANG_OPENMP_GPU_NVIDIA=ON'
+ ]
+
+ components['flang'] += flang_common_args
+
+ components['flang-runtime'] = [
+ '../rocm-openmp-extras/flang',
+ '-DLLVM_INSTALL_RUNTIME=ON',
+ '-DFLANG_BUILD_RUNTIME=ON',
+ '-DOPENMP_BUILD_DIR={0}/spack-build-openmp/runtime/src'.format(src)
+ ]
+ components['flang-runtime'] += flang_common_args
+
+ build_order = [
+ "aomp-extras", "openmp", "openmp-debug", "pgmath",
+ "flang", "flang-runtime"
+ ]
+
+ # Override standard CMAKE_BUILD_TYPE
+ for arg in std_cmake_args:
+ found = re.search("CMAKE_BUILD_TYPE", arg)
+ if found:
+ std_cmake_args.remove(arg)
+ for component in build_order:
+ with working_dir('spack-build-{0}'.format(component), create=True):
+ cmake_args = components[component]
+ cmake_args.extend(std_cmake_args)
+ # OpenMP build needs to be run twice(Release, Debug)
+ if component == "openmp-debug":
+ cmake_args.append("-DCMAKE_BUILD_TYPE=Debug")
+ else:
+ cmake_args.append("-DCMAKE_BUILD_TYPE=Release")
+ cmake(*cmake_args)
+ make()
+ make("install")
diff --git a/var/spack/repos/builtin/packages/rocm-smi-lib/package.py b/var/spack/repos/builtin/packages/rocm-smi-lib/package.py
index a33130dcdd..e5306e9c8b 100644
--- a/var/spack/repos/builtin/packages/rocm-smi-lib/package.py
+++ b/var/spack/repos/builtin/packages/rocm-smi-lib/package.py
@@ -1,33 +1,53 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class RocmSmiLib(CMakePackage):
"""It is a C library for Linux that provides a user space interface
for applications to monitor and control GPU applications."""
homepage = "https://github.com/RadeonOpenCompute/rocm_smi_lib"
- url = "https://github.com/RadeonOpenCompute/rocm_smi_lib/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/RadeonOpenCompute/rocm_smi_lib.git"
+ url = "https://github.com/RadeonOpenCompute/rocm_smi_lib/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('master', branch='master')
+ version('4.3.1', sha256='ea2f9d8a9999e4aac1cb969e6bf2a9f0b6d02f29d0c319b36cce26412ab8a8b0')
+ version('4.3.0', sha256='c3ff56a14d334cb688a2e9a748dac46d9c2f7f576fe1f53416b1a0edbe842f8b')
+ version('4.2.0', sha256='c31bf91c492f00d0c5ab21e45afbd7baa990e4a8d7ce9b01e3b988e5fdd53f50')
+ version('4.1.0', sha256='0c1d2152e40e14bb385071ae16e7573290fb9f74afa5ab887c54f4dd75849a6b')
+ version('4.0.0', sha256='93d19229b5a511021bf836ddc2a9922e744bf8ee52ee0e2829645064301320f4')
+ version('3.10.0', sha256='8bb2142640d1c6bf141f19accf809e61377a6e0c0222e47ac4daa5da2c85ddac')
version('3.9.0', sha256='b2934b112542af56de2dc1d5bffff59957e21050db6e3e5abd4c99e46d4a0ffe')
version('3.8.0', sha256='86250c9ae9dfb18d4f7259a5f2f09b21574d4996fe5034a739ce63a27acd0082')
version('3.7.0', sha256='72d2a3deda0b55a2d92833cd648f50c7cb64f8341b254a0badac0152b26f1391')
version('3.5.0', sha256='a5d2ec3570d018b60524f0e589c4917f03d26578443f94bde27a170c7bb21e6e')
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
+ variant('shared', default=True, description='Build shared or static library')
depends_on('cmake@3:', type='build')
+ depends_on('python@3:', type=('build', 'run'), when='@3.9.0:')
+
+ def cmake_args(self):
+ return [
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared')
+ ]
@run_after('install')
def post_install(self):
shutil.rmtree(self.prefix.lib)
install_tree(self.prefix.rocm_smi, self.prefix)
shutil.rmtree(self.prefix.rocm_smi)
+ os.remove(join_path(self.prefix.bin, 'rsmiBindings.py'))
+ symlink('../bindings/rsmiBindings.py',
+ join_path(self.prefix.bin, 'rsmiBindings.py'))
diff --git a/var/spack/repos/builtin/packages/rocm-smi/package.py b/var/spack/repos/builtin/packages/rocm-smi/package.py
index 121f037e54..0445b08382 100644
--- a/var/spack/repos/builtin/packages/rocm-smi/package.py
+++ b/var/spack/repos/builtin/packages/rocm-smi/package.py
@@ -1,22 +1,26 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class RocmSmi(MakefilePackage):
"""This tool exposes functionality for clock and temperature
management of your ROCm enabled system"""
homepage = "https://github.com/RadeonOpenCompute/ROC-smi"
- url = "https://github.com/RadeonOpenCompute/ROC-smi/archive/rocm-3.9.0.tar.gz"
+ url = "https://github.com/RadeonOpenCompute/ROC-smi/archive/rocm-4.1.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.1.0', sha256='5f9f551f93f673f4b508f47a7f24bce903288ffb08fa9e4c8e0956a4a57865c2')
+ version('4.0.0', sha256='bf8738ae81c0a02d83eb9437b93dc153fb63f659f3b04d454024e30678b43575')
+ version('3.10.0', sha256='b1c7e529e8fcc53fb6b40a4126651da0ab07bcb91faac99519ba9660412ea4ed')
version('3.9.0', sha256='af3cc6d5e2296f47b1873339faad2d27cf2f24725771bf34c7f644d20cc6ef3b')
version('3.8.0', sha256='248d9bddc3353c74defd57f203df0648278a4613f2af7fb838d92a4bc8de575d')
version('3.7.0', sha256='4e34b3b4e409bb89677882f47d9988d56bc2d9bb9893f0712c22a4b73789e06a')
diff --git a/var/spack/repos/builtin/packages/rocm-tensile/0002-require-openmp-when-tensile-use-openmp-is-on.patch b/var/spack/repos/builtin/packages/rocm-tensile/0002-require-openmp-when-tensile-use-openmp-is-on.patch
new file mode 100644
index 0000000000..4c616d47f2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rocm-tensile/0002-require-openmp-when-tensile-use-openmp-is-on.patch
@@ -0,0 +1,90 @@
+diff --git a/HostLibraryTests/CMakeLists.txt b/HostLibraryTests/CMakeLists.txt
+index 79e1529..034f8bb 100644
+--- a/HostLibraryTests/CMakeLists.txt
++++ b/HostLibraryTests/CMakeLists.txt
+@@ -19,7 +19,7 @@
+ # CTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ ################################################################################
+
+-cmake_minimum_required(VERSION 3.5)
++cmake_minimum_required(VERSION 3.9)
+
+ project(TensileHostLibraryTest)
+
+@@ -78,21 +78,7 @@ if(TENSILE_USE_HIP)
+ endif()
+
+ if(TENSILE_USE_OPENMP)
+- #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_OPENMP")
+- find_package(OpenMP QUIET)
+- if (OPENMP_FOUND)
+- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
+- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
+- else()
+- if(EXISTS /etc/redhat-release)
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp=libgomp")
+- else()
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
+- set(OPENMP_LIBRARY /usr/lib/x86_64-linux-gnu/libomp.so)
+- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OPENMP_LIBRARY}")
+- endif()
+- endif()
++ find_package(OpenMP REQUIRED)
+ endif()
+
+ add_subdirectory(configs)
+@@ -187,6 +173,6 @@ if(TENSILE_USE_HIP)
+ endif()
+
+ if(TENSILE_USE_OPENMP)
+- target_link_libraries(TensileTests PRIVATE "${OpenMP_EXE_LINKER_FLAGS}")
++ target_link_libraries(TensileTests PRIVATE OpenMP::OpenMP_CXX)
+ endif()
+
+diff --git a/Tensile/Source/CMakeLists.txt b/Tensile/Source/CMakeLists.txt
+index 821fd53..fe65c9e 100644
+--- a/Tensile/Source/CMakeLists.txt
++++ b/Tensile/Source/CMakeLists.txt
+@@ -61,21 +61,7 @@ if(TENSILE_NEW_CLIENT)
+ endif()
+
+ if(TENSILE_USE_OPENMP)
+- #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_OPENMP")
+- find_package(OpenMP QUIET)
+- if (OPENMP_FOUND)
+- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
+- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
+- else ()
+- if(EXISTS /etc/redhat-release)
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp=libgomp")
+- else()
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
+- set(OPENMP_LIBRARY /usr/lib/x86_64-linux-gnu/libomp.so)
+- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OPENMP_LIBRARY}")
+- endif()
+- endif()
++ find_package(OpenMP REQUIRED)
+ endif()
+
+ #set(TENSILE_CXX_COMPILER "${CMAKE_CXX_COMPILER}")
+diff --git a/Tensile/Source/client/CMakeLists.txt b/Tensile/Source/client/CMakeLists.txt
+index 9ccba86..081280b 100644
+--- a/Tensile/Source/client/CMakeLists.txt
++++ b/Tensile/Source/client/CMakeLists.txt
+@@ -52,12 +52,8 @@ target_link_libraries(TensileClient TensileHost ${Boost_LIBRARIES} rocm_smi)
+ add_executable(tensile_client main.cpp)
+
+ target_link_libraries(tensile_client PRIVATE TensileHost TensileClient ${Boost_LIBRARIES})
+-if(OpenMP_FOUND)
+- target_link_libraries(tensile_client PRIVATE "${OpenMP_EXE_LINKER_FLAGS}")
+-else()
+- set(OPENMP_LIBRARY /usr/lib/x86_64-linux-gnu/libomp.so)
+- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OPENMP_LIBRARY}")
+- target_link_libraries(tensile_client PRIVATE "${OpenMP_EXE_LINKER_FLAGS}")
++if(TENSILE_USE_OPENMP)
++ target_link_libraries(tensile_client PRIVATE OpenMP::OpenMP_CXX)
+ endif()
+
+ foreach(arch IN LISTS TENSILE_GPU_ARCHS)
diff --git a/var/spack/repos/builtin/packages/rocm-tensile/package.py b/var/spack/repos/builtin/packages/rocm-tensile/package.py
index 18dcd9f4bd..212bf99053 100644
--- a/var/spack/repos/builtin/packages/rocm-tensile/package.py
+++ b/var/spack/repos/builtin/packages/rocm-tensile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,57 +11,85 @@ class RocmTensile(CMakePackage):
"""Radeon Open Compute Tensile library"""
homepage = "https://github.com/ROCmSoftwarePlatform/Tensile/"
- url = "https://github.com/ROCmSoftwarePlatform/Tensile/archive/rocm-3.8.0.tar.gz"
- maintainers = ['srekolam', 'arjun-raj-kuppala']
-
+ git = "https://github.com/ROCmSoftwarePlatform/Tensile.git"
+ url = "https://github.com/ROCmSoftwarePlatform/Tensile/archive/rocm-4.3.0.tar.gz"
+
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+
+ version('4.3.1', sha256='6fce0ac22051a454fe984283766eb473dc50752cd30bad05acb3dbde6ef4f8b1')
+ version('4.3.0', sha256='911c0cdb0146d43a2a59170e6a803f414a2b68df7d9ff369ab784d11a08d7264')
+ version('4.2.0', sha256='198e357a14a79366b27b1097856d4821996bc36163be0cd2668910b253721060')
+ version('4.1.0', sha256='92b8ee13dfc11a67d5136227ee985622685790fd3f0f0e1ec6db411d4e9a3419')
+ version('4.0.0', sha256='cf105ce8c3e352d19713b3bf8bda77f25c1a692c4f2ca82d631ba15523ecc1cd')
+ version('3.10.0', sha256='8d5b50aadfa56a9195e4c387b8eb351c9b9b7671b136b624e07fe28db24bd330')
+ version('3.9.0', sha256='17a011f8c3433d4f8c2dddabd5854cf96c406d24592b3942deb51672c570882e')
version('3.8.0', sha256='c78a11db85fdf54bfd26533ee6fa98f6a6e789fa423537993061497ac5f22ed6')
version('3.7.0', sha256='488a7f76ea42a7601d0557f53068ec4832a2c7c06bb1b511470a4e35599a5a4d')
version('3.5.0', sha256='71eb3eed6625b08a4cedb539dd9b596e3d4cc82a1a8063d37d94c0765b6f8257')
- amdgpu_targets = ('all', 'gfx803', 'gfx900', 'gfx906', 'gfx908')
+ tensile_architecture = ('all', 'gfx803', 'gfx900', 'gfx906', 'gfx908')
- variant('amdgpu_target', default='all', multi=True, values=amdgpu_targets)
+ variant('tensile_architecture', default='all', values=tensile_architecture, multi=False)
+ variant('openmp', default=True, description='Enable OpenMP')
depends_on('cmake@3:', type='build')
-
- for ver in ['3.5.0', '3.7.0', '3.8.0']:
- depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('hip@' + ver, when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
- # used in Tensile
- depends_on('rocm-smi@' + ver, type='build', when='@' + ver)
- depends_on('rocm-smi-lib@' + ver, type='build', when='@' + ver)
- depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
-
# This is the default library format since 3.7.0
depends_on('msgpack-c@3:', when='@3.7:')
- depends_on('boost@1.58.0', type=('build', 'link'))
+ depends_on('boost', type=('build', 'link'))
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('comgr@' + ver, when='@' + ver)
+ depends_on('llvm-amdgpu@' + ver, when='@' + ver + '+openmp')
+ depends_on('llvm-amdgpu@' + ver + '~openmp', when='@' + ver + '~openmp')
+ depends_on('rocminfo@' + ver, type='build', when='@' + ver)
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ depends_on('rocm-smi@' + ver, type='build', when='@' + ver)
+
+ for ver in ['4.0.0', '4.1.0', '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('rocm-smi-lib@' + ver, type='build', when='@' + ver)
root_cmakelists_dir = 'Tensile/Source'
# Status: https://github.com/ROCmSoftwarePlatform/Tensile/commit/a488f7dadba34f84b9658ba92ce9ec5a0615a087
# Not yet landed in 3.7.0, nor 3.8.0.
- patch('0001-fix-compile-error.patch')
+ patch('0001-fix-compile-error.patch', when='@3.7.0:3.8.0')
+ patch('0002-require-openmp-when-tensile-use-openmp-is-on.patch', when='@3.9.0:4.0.0')
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
def cmake_args(self):
- archs = ",".join(self.spec.variants['amdgpu_target'].value)
-
+ arch = self.spec.variants['tensile_architecture'].value
args = [
- '-Damd_comgr_DIR={0}'.format(self.spec['comgr'].prefix),
- '-DTensile_COMPILER=hipcc',
- '-DTensile_ARCHITECTURE={0}'.format(archs),
- '-DTensile_LOGIC=asm_full',
- '-DTensile_CODE_OBJECT_VERSION=V3',
- '-DBoost_USE_STATIC_LIBS=Off',
- '-DBUILD_WITH_TENSILE_HOST={0}'.format(
+ self.define('amd_comgr_DIR', self.spec['comgr'].prefix),
+ self.define('Tensile_COMPILER', 'hipcc'),
+ self.define('Tensile_LOGIC', 'asm_full'),
+ self.define('Tensile_CODE_OBJECT_VERSION', 'V3'),
+ self.define('Boost_USE_STATIC_LIBS', 'OFF'),
+ self.define('TENSILE_USE_OPENMP', 'ON'),
+ self.define(
+ 'BUILD_WITH_TENSILE_HOST',
'ON' if '@3.7.0:' in self.spec else 'OFF'
)
]
if '@3.7.0:' in self.spec:
- args.append('-DTensile_LIBRARY_FORMAT=msgpack')
+ args.append(self.define('Tensile_LIBRARY_FORMAT', 'msgpack'))
+
+ if self.spec.satisfies('@4.1.0:'):
+ if arch == 'gfx906' or arch == 'gfx908':
+ arch = arch + ':xnack-'
+ args.append(self.define('Tensile_ARCHITECTURE', arch))
+
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
return args
+
+ def install(self, spec, prefix):
+ with working_dir(self.build_directory):
+ install_tree('./client', prefix.client)
+ install_tree('./lib', prefix.lib)
diff --git a/var/spack/repos/builtin/packages/rocm-validation-suite/002-remove-force-setting-hip-inc-path.patch b/var/spack/repos/builtin/packages/rocm-validation-suite/002-remove-force-setting-hip-inc-path.patch
new file mode 100644
index 0000000000..e1a40ac16d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rocm-validation-suite/002-remove-force-setting-hip-inc-path.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 07048b8..2bfb6c2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,8 +32,7 @@ set(ROCM_PATH "/opt/rocm" CACHE PATH "ROCM install path")
+ set(CMAKE_INSTALL_PREFIX "/opt/rocm" CACHE PATH "CMAKE installation directory")
+ set(ROCR_INC_DIR "${ROCM_PATH}/include" CACHE PATH "Contains header files exported by ROC Runtime" FORCE)
+ set(ROCR_LIB_DIR "${ROCM_PATH}/lib" CACHE PATH "Contains library files exported by ROC Runtime" FORCE)
+-set(HIP_INC_DIR "${ROCM_PATH}/hip" )
+-set(HIP_INC_DIR "${ROCM_PATH}/hip" CACHE PATH "Contains header files exported by ROC Runtime" FORCE)
++set(HIP_INC_DIR "${ROCM_PATH}/hip" CACHE PATH "Contains header files exported by ROC Runtime")
+ set(ROCT_INC_DIR "${ROCM_PATH}/include" CACHE PATH "Contains header files exported by ROC Trunk" FORCE)
+
+ execute_process(COMMAND ln -s /usr/bin/python3 /usr/bin/python)
diff --git a/var/spack/repos/builtin/packages/rocm-validation-suite/003-cmake-change-to-remove-installs-and-sudo.patch b/var/spack/repos/builtin/packages/rocm-validation-suite/003-cmake-change-to-remove-installs-and-sudo.patch
new file mode 100644
index 0000000000..edd9507673
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rocm-validation-suite/003-cmake-change-to-remove-installs-and-sudo.patch
@@ -0,0 +1,88 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 780e1f17..35a2b391 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -24,10 +24,21 @@
+ ################################################################################
+
+ cmake_minimum_required ( VERSION 3.5.0 )
++project ("rocm-validation-suite")
+ if ( ${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
+ message(FATAL "In-source build is not allowed")
+ endif ()
+
++enable_testing()
++
++# Prerequisite - Check if rocblas was already installed
++find_package (rocblas)
++if(rocblas_FOUND)
++ message(STATUS "rocblas found")
++else()
++ message(FATAL_ERROR "rocblas not found !!! Install rocblas to proceed ...")
++endif(rocblas_FOUND)
++
+ set(ROCM_PATH "/opt/rocm" CACHE PATH "ROCM install path")
+ set(CMAKE_INSTALL_PREFIX "/opt/rocm" CACHE PATH "CMAKE installation directory")
+ set(ROCR_INC_DIR "${ROCM_PATH}/include" CACHE PATH "Contains header files exported by ROC Runtime" FORCE)
+@@ -36,7 +47,6 @@ set(HIP_INC_DIR "${ROCM_PATH}/hip" )
+ set(HIP_INC_DIR "${ROCM_PATH}/hip" CACHE PATH "Contains header files exported by ROC Runtime" FORCE)
+ set(ROCT_INC_DIR "${ROCM_PATH}/include" CACHE PATH "Contains header files exported by ROC Trunk" FORCE)
+
+-execute_process(COMMAND ln -s /usr/bin/python3 /usr/bin/python)
+
+ #
+ # If the user specifies -DCMAKE_BUILD_TYPE on the command line, take their
+@@ -45,20 +55,17 @@ execute_process(COMMAND ln -s /usr/bin/python3 /usr/bin/python)
+ #
+ if(DEFINED CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Choose the type of
+-build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug
+-Release RelWithDebInfo MinSizeRel.")
++ build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug
++ Release RelWithDebInfo MinSizeRel.")
+ else()
+ set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build,
+-options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release
+-RelWithDebInfo MinSizeRel.")
++ options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release
++ RelWithDebInfo MinSizeRel.")
+ endif()
+
+-project ("rocm-validation-suite")
+-enable_testing()
+ #include ( CTest )
+
+-if (NOT CMAKE_CONFIGURATION_TYPES)
+-# message( "CMAKE_CONFIGURATION_TYPES not set")
++if(NOT CMAKE_CONFIGURATION_TYPES)
+ # Set the possible values of build type for cmake-gui
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
+ "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
+@@ -70,17 +77,15 @@ execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/rvs_os_helper.sh
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+-if(result)
++if (result)
+ message(FATAL_ERROR "Could not obtain OS type: ${result}")
+ endif()
+ message(STATUS "RVS_OS_TYPE: ${RVS_OS_TYPE}")
+ if (${RVS_OS_TYPE} STREQUAL "ubuntu")
+ set(RVS_OS_TYPE_NUM 1)
+- execute_process(COMMAND sudo apt-get install rocblas --assume-yes)
+ elseif ((${RVS_OS_TYPE} STREQUAL "centos") OR (${RVS_OS_TYPE} STREQUAL "rhel")
+ OR (${RVS_OS_TYPE} STREQUAL "sles"))
+ set(RVS_OS_TYPE_NUM 2)
+- execute_process(COMMAND sudo yum -y install rocblas )
+ else()
+ set(RVS_OS_TYPE_NUM 0)
+ endif()
+@@ -89,7 +94,7 @@ message(STATUS "RVS_OS_TYPE_NUM: ${RVS_OS_TYPE_NUM}")
+ ## Set default module path if not already set
+ if ( NOT DEFINED CMAKE_MODULE_PATH )
+ set ( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/" )
+-endif ()
++endif()
+
+ ## Include common cmake modules
+ include ( utils )
diff --git a/var/spack/repos/builtin/packages/rocm-validation-suite/package.py b/var/spack/repos/builtin/packages/rocm-validation-suite/package.py
index 5b7800cd78..4e170270c3 100644
--- a/var/spack/repos/builtin/packages/rocm-validation-suite/package.py
+++ b/var/spack/repos/builtin/packages/rocm-validation-suite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,10 +15,16 @@ class RocmValidationSuite(CMakePackage):
compatible platform."""
homepage = "https://github.com/ROCm-Developer-Tools/ROCmValidationSuite"
- url = "https://github.com/ROCm-Developer-Tools/ROCmValidationSuite/archive/rocm-3.8.0.tar.gz"
+ url = "https://github.com/ROCm-Developer-Tools/ROCmValidationSuite/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='779a3b0afb53277e41cf863185e87f95d9b2bbb748fcb062cbb428d0b510fb69')
+ version('4.3.0', sha256='f7a918b513c51dd5eadce3f2e091679b2dfe6544a913960ac483567792a06a4c')
+ version('4.2.0', sha256='b25e58a842a8eb90bfd6c4ae426ca5cfdd5de2f8a091761f83597f7cfc2cd0f3')
+ version('4.1.0', sha256='f9618f89384daa0ae897b36638a3737bcfa47e98778e360338267cd1fe2bbc66')
+ version('4.0.0', sha256='04743ca8901b94a801759a3c13c8caf3e6ea950ffcda6408173e6f9ef7b86e74')
+ version('3.10.0', sha256='9f9a530f7850770663e0b0ec0c786367f2e22500a472ac6652c4fd9fb4df4f64')
version('3.9.0', sha256='17662028a4485b97e3ccaad5e94d20aaa2c3e9e3f741c7ebbf0f8b4cdebcc555')
version('3.8.0', sha256='68f1c5102e5cbed205a0ecf5a01efbdccf480f7e484ab1e58cbc6bc03e428122')
version('3.7.0', sha256='bb42d7fb7ee877b80ce53b0cd1f04b0c8301197b6777d2edddcb44732bf8c9e2')
@@ -27,6 +33,8 @@ class RocmValidationSuite(CMakePackage):
variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type')
patch('001-fixes-for-rocblas-rocm-smi-install-prefix-path.patch')
+ patch('002-remove-force-setting-hip-inc-path.patch', when='@4.1.0:')
+ patch('003-cmake-change-to-remove-installs-and-sudo.patch', when='@4.1.0:')
depends_on('cmake@3.5:', type='build')
depends_on('zlib', type='link')
@@ -35,20 +43,17 @@ class RocmValidationSuite(CMakePackage):
spec = self.spec
build_env.set("HIPCC_PATH", spec['hip'].prefix)
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hip@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
- depends_on('hip-rocclr@' + ver, type='build', when='@' + ver)
- depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
- depends_on('rocminfo@' + ver, type='build', when='@' + ver)
- depends_on('rocblas@' + ver, type='link', when='@' + ver)
- depends_on('rocm-smi-lib@' + ver, type='build', when='@' + ver)
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('hip-rocclr@' + ver, when='@' + ver)
+ depends_on('rocminfo@' + ver, when='@' + ver)
+ depends_on('rocblas@' + ver, when='@' + ver)
+ depends_on('rocm-smi-lib@' + ver, when='@' + ver)
def cmake_args(self):
- spec = self.spec
- args = ['-DHIP_INC_DIR={0}'.format(spec['hip'].prefix),
- '-DROCM_SMI_DIR={0}'.format(spec['rocm-smi-lib'].prefix),
- '-DROCBLAS_DIR={0}'.format(spec['rocblas'].prefix)]
- return args
+ return [
+ self.define('HIP_INC_DIR', self.spec['hip'].prefix),
+ self.define('ROCM_SMI_DIR', self.spec['rocm-smi-lib'].prefix),
+ self.define('ROCBLAS_DIR', self.spec['rocblas'].prefix)
+ ]
diff --git a/var/spack/repos/builtin/packages/rocminfo/package.py b/var/spack/repos/builtin/packages/rocminfo/package.py
index 70ea8ddedb..8408ccf08f 100644
--- a/var/spack/repos/builtin/packages/rocminfo/package.py
+++ b/var/spack/repos/builtin/packages/rocminfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,18 @@ class Rocminfo(CMakePackage):
"""Radeon Open Compute (ROCm) Runtime rocminfo tool"""
homepage = "https://github.com/RadeonOpenCompute/rocminfo"
- url = "https://github.com/RadeonOpenCompute/rocminfo/archive/rocm-3.9.0.tar.gz"
-
- maintainers = ['srekolam', 'arjun-raj-kuppala']
-
+ git = "https://github.com/RadeonOpenCompute/rocminfo.git"
+ url = "https://github.com/RadeonOpenCompute/rocminfo/archive/rocm-4.3.1.tar.gz"
+
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+
+ version('master', branch='master')
+ version('4.3.1', sha256='d042947d3f29e943a2e3294a2a2d759ca436cebe31151ce048e49bc4f02d6993')
+ version('4.3.0', sha256='2cc1f251c0ed9c3ea413cc15cb5ce11559e4497540eebbf5e8dcfd52b03e53d1')
+ version('4.2.0', sha256='6952b6e28128ab9f93641f5ccb66201339bb4177bb575b135b27b69e2e241996')
+ version('4.1.0', sha256='5b994ad02b6d250160770f6f7730835f3a52127193ac9a8dee40c53aec911f4f')
+ version('4.0.0', sha256='0b3d692959dd4bc2d1665ab3a838592fcd08d2b5e373593b9192ca369e2c4aa7')
+ version('3.10.0', sha256='ed02375be3be518b83aea7309ef5ca62dc9b6dbad0aae33e92995102d6d660be')
version('3.9.0', sha256='9592781e0c62b910c4adc5c7f4c27c7a0cddbed13111a19dd91a2ff43720e43d')
version('3.8.0', sha256='c135dc98ecb5f420e22a6efd2f461ba9ed90be3f42e2ac29356e05c6a0706f8f')
version('3.7.0', sha256='86a8e3ce7d91fb2d79688a22a2805757c83922d9f17ea7ea1cb41bf9516197ea')
@@ -22,10 +30,10 @@ class Rocminfo(CMakePackage):
depends_on('cmake@3:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1', 'master']:
+ depends_on('hsakmt-roct@' + ver, when='@' + ver)
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
def cmake_args(self):
- args = ['-DROCM_DIR={0}'.format(self.spec['hsa-rocr-dev'].prefix)]
- return args
+ return [self.define('ROCM_DIR', self.spec['hsa-rocr-dev'].prefix)]
diff --git a/var/spack/repos/builtin/packages/rocprim/package.py b/var/spack/repos/builtin/packages/rocprim/package.py
index 95032c3d66..66ce5679af 100644
--- a/var/spack/repos/builtin/packages/rocprim/package.py
+++ b/var/spack/repos/builtin/packages/rocprim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,10 +10,17 @@ class Rocprim(CMakePackage):
""" Radeon Open Compute Parallel Primitives Library"""
homepage = "https://github.com/ROCmSoftwarePlatform/rocPRIM"
- url = "https://github.com/ROCmSoftwarePlatform/rocPRIM/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/rocPRIM.git"
+ url = "https://github.com/ROCmSoftwarePlatform/rocPRIM/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='d29ffcb5dd1c6155c586b9952fa4c11b717d90073feb083db6b03ea74746194b')
+ version('4.3.0', sha256='f6cf53b5fa07a0d6f508e39c7da5b11f562c0cac4b041ec5c41a8fc733f707c7')
+ version('4.2.0', sha256='3932cd3a532eea0d227186febc56747dd95841732734d9c751c656de9dd770c8')
+ version('4.1.0', sha256='c46d789f85d15f8ec97f90d67b9d49fb87239912fe8d5f60a7b4c59f9d0e3da8')
+ version('4.0.0', sha256='61abf4d51853ae71e54258f43936bbbb096bf06f5891d224d359bfe3104015d0')
+ version('3.10.0', sha256='b406956b27d1c06b749e991a250d4ad3eb26e20c6bebf121e2ca6051597b4fa4')
version('3.9.0', sha256='ace6b4ee4b641280807028375cb0e6fa7b296edba9e9fc09177a5d8d075a716e')
version('3.8.0', sha256='4d37320d174eaada99dd796d81fa97d5dcc65a6dff8e8ff1c21e8e68acb4ea74')
version('3.7.0', sha256='225209a0cbd003c241821c8a9192cec5c07c7f1a6ab7da296305fc69f5f6d365')
@@ -23,24 +30,28 @@ class Rocprim(CMakePackage):
depends_on('cmake@3:', type='build')
depends_on('numactl', type='link', when='@3.7.0:')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hip@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('comgr@' + ver, when='@' + ver)
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
+ depends_on('llvm-amdgpu@' + ver, when='@' + ver)
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
def cmake_args(self):
- spec = self.spec
-
args = [
- '-DCMAKE_MODULE_PATH={0}/cmake'.format(spec['hip'].prefix),
- '-DONLY_INSTALL=ON',
- '-DBUILD_TEST=OFF',
- '-DBUILD_BENCHMARK=OFF',
- '-DBUILD_EXAMPLE=OFF'
+ self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake),
+ self.define('ONLY_INSTALL', 'ON'),
+ self.define('BUILD_TEST', 'OFF'),
+ self.define('BUILD_BENCHMARK', 'OFF'),
+ self.define('BUILD_EXAMPLE', 'OFF')
]
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
return args
diff --git a/var/spack/repos/builtin/packages/rocprofiler-dev/fix-includes.patch b/var/spack/repos/builtin/packages/rocprofiler-dev/fix-includes.patch
new file mode 100644
index 0000000000..c4a9dc1097
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rocprofiler-dev/fix-includes.patch
@@ -0,0 +1,25 @@
+From 9b7edb39207cb040093ffdd7d99c9d6e56807c95 Mon Sep 17 00:00:00 2001
+From: Harmen Stoppels <harmenstoppels@gmail.com>
+Date: Wed, 21 Jul 2021 12:00:52 +0200
+Subject: [PATCH] C to C++ includes, fix build issue with gcc 9
+
+---
+ test/ctrl/test_kernel.h | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/test/ctrl/test_kernel.h b/test/ctrl/test_kernel.h
+index 95da162..596d029 100644
+--- a/test/ctrl/test_kernel.h
++++ b/test/ctrl/test_kernel.h
+@@ -23,8 +23,9 @@ THE SOFTWARE.
+ #ifndef TEST_CTRL_TEST_KERNEL_H_
+ #define TEST_CTRL_TEST_KERNEL_H_
+
+-#include <string.h>
+-#include <stdint.h>
++#include <string>
++#include <cstdlib>
++#include <cstdint>
+ #include <map>
+
+ // Class implements kernel test
diff --git a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py
index e14eb4c031..6ee224dafb 100644
--- a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py
+++ b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,52 +11,32 @@ class RocprofilerDev(CMakePackage):
"""ROCPROFILER library for AMD HSA runtime API extension support"""
homepage = "https://github.com/ROCm-Developer-Tools/rocprofiler"
- url = "https://github.com/ROCm-Developer-Tools/rocprofiler/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCm-Developer-Tools/rocprofiler.git"
+ url = "https://github.com/ROCm-Developer-Tools/rocprofiler/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='c6f5fa192c9cdb32553d24ed5c847107d312042e39fa3dd17c83e237c9542a2d')
+ version('4.3.0', sha256='3b876a0e601d2c6ae56ddf2a6027afe45b3533f4445b0c2da748d020b6b00cf2')
+ version('4.2.0', sha256='c5888eda1404010f88219055778cfeb00d9c21901e172709708720008b1af80f')
+ version('4.1.0', sha256='2eead5707016da606d636b97f3af1c98cb471da78659067d5a77d4a2aa43ef4c')
+ version('4.0.0', sha256='e9960940d1ec925814a0e55ee31f5fc2fb23fa839d1c6a909f72dd83f657fb25')
+ version('3.10.0', sha256='fbf5ce9fbc13ba2b3f9489838e00b54885aba92336f055e8b03fef3e3347071e')
version('3.9.0', sha256='f07ddd9bf2f86550c8d243f887e9bde9d4f2ceec81ecc6393012aaf2a45999e8')
version('3.8.0', sha256='38ad3ac20f60f3290ce750c34f0aad442354b1d0a56b81167a018e44ecdf7fff')
version('3.7.0', sha256='d3f03bf850cbd86ca9dfe6e6cc6f559d8083b0f3ea4711d8260b232cb6fdd1cc')
version('3.5.0', sha256='c42548dd467b7138be94ad68c715254eb56a9d3b670ccf993c43cd4d43659937')
depends_on('cmake@3:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
- depends_on('rocminfo@' + ver, type='build', when='@' + ver)
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hsakmt-roct@' + ver, when='@' + ver)
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
+ depends_on('rocminfo@' + ver, when='@' + ver)
+ depends_on('roctracer-dev-api@' + ver, when='@' + ver)
- resource(name='roctracer-dev',
- url='https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-3.5.0.tar.gz',
- sha256='7af5326c9ca695642b4265232ec12864a61fd6b6056aa7c4ecd9e19c817f209e',
- expand=True,
- destination='',
- placement='roctracer',
- when='@3.5.0')
-
- resource(name='roctracer-dev',
- url='https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-3.7.0.tar.gz',
- sha256='6fa5b771e990f09c242237ab334b9f01039ec7d54ccde993e719c5d6577d1518',
- expand=True,
- destination='',
- placement='roctracer',
- when='@3.7.0')
-
- resource(name='roctracer-dev',
- url='https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-3.8.0.tar.gz',
- sha256='5154a84ce7568cd5dba756e9508c34ae9fc62f4b0b5731f93c2ad68b21537ed1',
- expand=True,
- destination='',
- placement='roctracer',
- when='@3.8.0')
-
- resource(name='roctracer-dev',
- url='https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-3.9.0.tar.gz',
- sha256='0678f9faf45058b16923948c66d77ba2c072283c975d167899caef969169b292',
- expand=True,
- destination='',
- placement='roctracer',
- when='@3.9.0')
+ # See https://github.com/ROCm-Developer-Tools/rocprofiler/pull/50
+ patch('fix-includes.patch')
def patch(self):
filter_file('${HSA_RUNTIME_LIB_PATH}/../include',
@@ -64,9 +44,10 @@ class RocprofilerDev(CMakePackage):
/include', 'test/CMakeLists.txt', string=True)
def cmake_args(self):
- args = ['-DPROF_API_HEADER_PATH={0}/roctracer/inc/ext'.format(
- self.stage.source_path),
- '-DROCM_ROOT_DIR:STRING={0}/include'.format(
- self.spec['hsakmt-roct'].prefix)
- ]
- return args
+ return [
+ self.define(
+ 'PROF_API_HEADER_PATH',
+ self.spec['roctracer-dev-api'].prefix.roctracer.inc.ext
+ ),
+ self.define('ROCM_ROOT_DIR', self.spec['hsakmt-roct'].prefix.include)
+ ]
diff --git a/var/spack/repos/builtin/packages/rocrand/package.py b/var/spack/repos/builtin/packages/rocrand/package.py
index cd0bbf950b..b8d5dd87be 100644
--- a/var/spack/repos/builtin/packages/rocrand/package.py
+++ b/var/spack/repos/builtin/packages/rocrand/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import glob
+import os
from spack import *
@@ -12,10 +14,17 @@ class Rocrand(CMakePackage):
pseudo-random and quasi-random numbers."""
homepage = "https://github.com/ROCmSoftwarePlatform/rocRAND"
- url = "https://github.com/ROCmSoftwarePlatform/rocRAND/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/rocRAND.git"
+ url = "https://github.com/ROCmSoftwarePlatform/rocRAND/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='b3d6ae0cdbbdfb56a73035690f8cb9e173fec1ccaaf9a4c5fdbe5e562e50c901')
+ version('4.3.0', sha256='a85ced6c155befb7df8d58365518f4d9afc4407ee4e01d4640b5fd94604ca3e0')
+ version('4.2.0', sha256='15725c89e9cc9cc76bd30415fd2c0c5b354078831394ab8b23fe6633497b92c8')
+ version('4.1.0', sha256='94327e38739030ab6719a257f5a928a35842694750c7f46d9e11ff2164c2baed')
+ version('4.0.0', sha256='1cafdbfa15cde635bd424d2a858dc5cc94d668f9a211ff39606ee01ed1715f41')
+ version('3.10.0', sha256='f55e2b49b4dfd887e46eea049f3359ae03c60bae366ffc979667d364205bc99c')
version('3.9.0', sha256='a500a3a83be36b6c91aa062dc6eef1f9fc1d9ee62422d541cc279513d98efa91')
version('3.8.0', sha256='79eb84d41363a46ed9bb18d9757cf6a419d2f48bb6a71b8e4db616a5007a6560')
version('3.7.0', sha256='5e43fe07afe2c7327a692b3b580875bae6e6ee790e044c053fffafbfcbc14860')
@@ -23,18 +32,48 @@ class Rocrand(CMakePackage):
depends_on('cmake@3.5.1:', type='build')
depends_on('numactl', when='@3.7.0:')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('hip@' + ver, type='build', when='@' + ver)
depends_on('comgr@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
depends_on('rocminfo@' + ver, type='build', when='@' + ver)
depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
+ for ver in ['4.1.0', '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hip-rocclr@' + ver, when='@' + ver)
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
+ @run_after('install')
+ def fix_library_locations(self):
+ """Fix the rocRAND and hipRAND libraries location"""
+ # rocRAND installs librocrand.so* and libhiprand.so* to rocrand/lib and
+ # hiprand/lib, respectively. This confuses spack's RPATH management. We
+ # fix it by adding a symlink to the libraries.
+ hiprand_lib_path = join_path(self.prefix, 'hiprand', 'lib')
+ rocrand_lib_path = join_path(self.prefix, 'rocrand', 'lib')
+ mkdirp(self.prefix.lib)
+ with working_dir(hiprand_lib_path):
+ hiprand_libs = glob.glob('*.so*')
+ for lib in hiprand_libs:
+ os.symlink(join_path(hiprand_lib_path, lib),
+ join_path(self.prefix.lib, lib))
+ with working_dir(rocrand_lib_path):
+ rocrand_libs = glob.glob('*.so*')
+ for lib in rocrand_libs:
+ os.symlink(join_path(rocrand_lib_path, lib),
+ join_path(self.prefix.lib, lib))
+
def cmake_args(self):
- args = ['-DBUILD_BENCHMARK=OFF',
- '-DBUILD_TEST=OFF']
+ args = [
+ self.define('BUILD_BENCHMARK', 'OFF'),
+ self.define('BUILD_TEST', 'OFF')
+ ]
+
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
return args
diff --git a/var/spack/repos/builtin/packages/rocsolver/package.py b/var/spack/repos/builtin/packages/rocsolver/package.py
index 33a95a4253..2867fad8e8 100644
--- a/var/spack/repos/builtin/packages/rocsolver/package.py
+++ b/var/spack/repos/builtin/packages/rocsolver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,26 @@ class Rocsolver(CMakePackage):
homepage = "https://github.com/ROCmSoftwarePlatform/rocSOLVER"
git = "https://github.com/ROCmSoftwarePlatform/rocSOLVER.git"
- url = "https://github.com/ROCmSoftwarePlatform/rocSOLVER/archive/rocm-3.8.0.tar.gz"
+ url = "https://github.com/ROCmSoftwarePlatform/rocSOLVER/archive/rocm-4.3.0.tar.gz"
- maintainers = ['srekolam', 'arjun-raj-kuppala']
+ maintainers = ['srekolam', 'arjun-raj-kuppala', 'haampie']
+ amdgpu_targets = (
+ 'none', 'gfx803', 'gfx900', 'gfx906:xnack-', 'gfx908:xnack-',
+ 'gfx90a:xnack-', 'gfx90a:xnack+', 'gfx1010', 'gfx1011', 'gfx1012', 'gfx1030'
+ )
+ variant('amdgpu_target', default='gfx906:xnack-', multi=True, values=amdgpu_targets)
+ variant('optimal', default=True,
+ description='This option improves performance at the cost of increased binary \
+ size and compile time by adding specialized kernels \
+ for small matrix sizes')
+
+ version('4.3.1', sha256='c6e7468d7041718ce6e1c7f50ec80a552439ac9cfed2dc3f753ae417dda5724f')
+ version('4.3.0', sha256='63cc88dd285c0fe01ec2394321ec3b4e1e59bb98ce05b06e4b4d8fadcf1ff028')
+ version('4.2.0', sha256='e9ef72d7c29e7c36bf02be63a64ca23b444e1ca71751749f7d66647873d9fdea')
+ version('4.1.0', sha256='da5cc800dabf7367b02b73c93780b2967f112bb45232e4b06e5fd07b4d5b8d88')
+ version('4.0.0', sha256='be9a52644c276813f76d78f2c11eddaf8c2d7f9dd04f4570f23d328ad30d5880')
+ version('3.10.0', sha256='bc72483656b6b23a1e321913a580ca460da3bc5976404647536a01857f178dd2')
version('3.9.0', sha256='85fd77fe5acf5af518d11e90e2c03ee0c5abd61071cea86ef5df09f944879648')
version('3.8.0', sha256='72aa74284944d8b454088e8c8d74cf05464a4e2e46d33a57017ddd009113025e')
version('3.7.0', sha256='8c1c630595952806e658c539fd0f3056bd45bafc22b57f0dd10141abefbe4595')
@@ -24,21 +40,44 @@ class Rocsolver(CMakePackage):
depends_on('cmake@3:', type='build')
depends_on('numactl', type='link', when='@3.7.0:')
- for ver in ['3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0',
+ '4.3.0', '4.3.1']:
depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('hip@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
depends_on('comgr@' + ver, type='build', when='@' + ver)
depends_on('rocblas@' + ver, type='link', when='@' + ver)
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
def cmake_args(self):
+ tgt = self.spec.variants['amdgpu_target'].value
args = [
- '-DBUILD_CLIENTS_SAMPLES=OFF',
- '-DBUILD_CLIENTS_TESTS=OFF',
- '-DBUILD_CLIENTS_BENCHMARKS=OFF'
+ self.define('BUILD_CLIENTS_SAMPLES', 'OFF'),
+ self.define('BUILD_CLIENTS_TESTS', 'OFF'),
+ self.define('BUILD_CLIENTS_BENCHMARKS', 'OFF')
]
+ if self.spec.satisfies('@4.1.0:'):
+ incl = self.spec['rocblas'].prefix
+ args.append(self.define(
+ 'CMAKE_CXX_FLAGS',
+ '-I{0}/rocblas/include'.format(incl)
+ ))
+
+ if self.spec.satisfies('@3.7.0:'):
+ args.append(self.define_from_variant('OPTIMAL', 'optimal'))
+
+ if tgt[0] != 'none':
+ if '@:3.8.0' in self.spec:
+ args.append(self.define('CMAKE_CXX_FLAGS',
+ '--amdgpu-target={0}'.format(",".join(tgt))))
+ else:
+ args.append(self.define('AMDGPU_TARGETS', ";".join(tgt)))
+
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
return args
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/rocsparse/package.py b/var/spack/repos/builtin/packages/rocsparse/package.py
index 63826b8499..f1aa7529e7 100644
--- a/var/spack/repos/builtin/packages/rocsparse/package.py
+++ b/var/spack/repos/builtin/packages/rocsparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,10 +14,17 @@ class Rocsparse(CMakePackage):
language and optimized for AMD's latest discrete GPUs."""
homepage = "https://github.com/ROCmSoftwarePlatform/rocSPARSE"
- url = "https://github.com/ROCmSoftwarePlatform/rocSPARSE/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/rocSPARSE.git"
+ url = "https://github.com/ROCmSoftwarePlatform/rocSPARSE/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='fa5ea64f71e1cfbebe41618cc183f501b387824a6dc58486ab1214d7af5cbef2')
+ version('4.3.0', sha256='1a8109bdc8863b3acfe991449360c9361cae7cabdbe753c553bc57872cd0ad5e')
+ version('4.2.0', sha256='8a86ed49d278e234c82e406a1430dc28f50d416f8f1065cf5bdf25cc5721129c')
+ version('4.1.0', sha256='7514968ed2342dc274acce8b269c128a6aa96cce769a37fd3880b5269c2ed17f')
+ version('4.0.0', sha256='2b41bc6623d204ad7f351a902810f34cd32b762d1bf59081dbb00f83e689a794')
+ version('3.10.0', sha256='8325828c5d7818dfb45e03b5f1572a573cc21964d596aaaa33b7469817b03abd')
version('3.9.0', sha256='7b8f952d0c7f8ac2f3bb60879ab420fabbfafb0885a3d8464d5b4c191e97dec6')
version('3.8.0', sha256='a5d085fffe05a7ac7f5658075d9782b9b02d0c5c3e2c1807dad266c3a61141fd')
version('3.7.0', sha256='db561ae5e8ee117f7c539a9ef6ee49c13b82ba9f702b22c76e741cca245386a9')
@@ -25,13 +32,22 @@ class Rocsparse(CMakePackage):
depends_on('cmake@3:', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
depends_on('hip@' + ver, when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
- depends_on('rocprim@' + ver, type='build', when='@' + ver)
- depends_on('hsakmt-roct@' + ver, type='link', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
+ depends_on('rocprim@' + ver, when='@' + ver)
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
+
+ def cmake_args(self):
+ args = [
+ self.define('BUILD_CLIENTS_SAMPLES', 'OFF'),
+ self.define('BUILD_CLIENTS_TESTS', 'OFF'),
+ self.define('BUILD_CLIENTS_BENCHMARKS', 'OFF')
+ ]
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/rocthrust/package.py b/var/spack/repos/builtin/packages/rocthrust/package.py
index 3e9117d8d9..00f8014218 100644
--- a/var/spack/repos/builtin/packages/rocthrust/package.py
+++ b/var/spack/repos/builtin/packages/rocthrust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,10 +13,17 @@ class Rocthrust(CMakePackage):
library works on HIP/ROCm platforms"""
homepage = "https://github.com/ROCmSoftwarePlatform/rocThrust"
- url = "https://github.com/ROCmSoftwarePlatform/rocThrust/archive/rocm-3.8.0.tar.gz"
+ git = "https://github.com/ROCmSoftwarePlatform/rocThrust.git"
+ url = "https://github.com/ROCmSoftwarePlatform/rocThrust/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
+ version('4.3.1', sha256='86fcd3bc275efe9a485aed48afdc6d3351804c076caee43e3fb8bd69752865e9')
+ version('4.3.0', sha256='a50eb6500687b4ea9e0b3affb1daff8bbc56199d39fbed3ee61d2d5bfc1a0271')
+ version('4.2.0', sha256='da2b6c831c26c26058218b0c5b7b2e43fd7f0dac3b2e3a8e39a839145592c727')
+ version('4.1.0', sha256='e3d06c0387a2a6880776c7423b1acf0808fb8833bc822be75793da8c2f521efd')
+ version('4.0.0', sha256='120c87316f44ce8e8975e57c9b9bf1246b1ffc00879d31d744289ba9438a976c')
+ version('3.10.0', sha256='31bea6cd19a0ffa15e4ab50ecde2402ea5aaa182149cfab98242357e41f1805b')
version('3.9.0', sha256='65f5e74d72c5aaee90459468d693b212af7d56e31098ee8237b18d1b4d620eb0')
version('3.8.0', sha256='39350aeb8bfbcd09e387717b2a05c7e3a19e0fa85ff4284b967bb8fae12f9013')
version('3.7.0', sha256='4cb923dde5eec150a566cb10d23ee5c7ce3aa892c4dea94886a89d95b90f3bdd')
@@ -26,22 +33,26 @@ class Rocthrust(CMakePackage):
description='CMake build type')
depends_on('cmake@3:', type='build')
- depends_on('numactl', when='@3.7.0')
- for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
- depends_on('hip@' + ver, type='build', when='@' + ver)
- depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
- depends_on('comgr@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
- depends_on('rocprim@' + ver, type='build', when='@' + ver)
+ depends_on('numactl', when='@3.7.0:')
+
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hip@' + ver, when='@' + ver)
+ depends_on('rocprim@' + ver, when='@' + ver)
+ depends_on('rocm-cmake@' + ver, type='build', when='@' + ver)
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
def cmake_args(self):
- spec = self.spec
-
args = [
- '-DCMAKE_MODULE_PATH={0}/cmake'.format(spec['hip'].prefix)
+ self.define(
+ 'CMAKE_MODULE_PATH',
+ '{0}/cmake'.format(self.spec['hip'].prefix)
+ )
]
+ if self.spec.satisfies('^cmake@3.21:'):
+ args.append(self.define('__skip_rocmclang', 'ON'))
+
return args
diff --git a/var/spack/repos/builtin/packages/roctracer-dev-api/package.py b/var/spack/repos/builtin/packages/roctracer-dev-api/package.py
new file mode 100644
index 0000000000..7388d869bd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/roctracer-dev-api/package.py
@@ -0,0 +1,41 @@
+# Copyright 2013-2021 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 RoctracerDevApi(Package):
+ """ROC-tracer API. Installs the API header files of the roctracer-dev
+ package, mainly to avoid circular dependencies in the ROCm ecosystem.
+ For the ROC-tracer library, please check out roctracer-dev."""
+
+ homepage = "https://github.com/ROCm-Developer-Tools/roctracer"
+ git = "https://github.com/ROCm-Developer-Tools/roctracer.git"
+ url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-4.3.0.tar.gz"
+
+ maintainers = ['srekolam', 'arjun-raj-kuppala']
+
+ version('4.3.1', sha256='88ada5f256a570792d1326a305663e94cf2c3b0cbd99f7e745326923882dafd2')
+ version('4.3.0', sha256='c3d9f408df8d4dc0e9c0026217b8c684f68e775da80b215fecb3cd24419ee6d3')
+ version('4.2.0', sha256='62a9c0cb1ba50b1c39a0636c886ac86e75a1a71cbf5fec05801517ceb0e67a37')
+ version('4.1.0', sha256='5d93de4e92895b6eb5f9d098f5dbd182d33923bd9b2ab69cf5a1abbf91d70695')
+ version('4.0.0', sha256='f47859a46173228b597c463eda850b870e810534af5efd5f2a746067ef04edee')
+ version('3.10.0', sha256='ac4a1d059fc34377e906071fd0e56f5434a7e0e4ded9db8faf9217a115239dec')
+ version('3.9.0', sha256='0678f9faf45058b16923948c66d77ba2c072283c975d167899caef969169b292')
+ version('3.8.0', sha256='5154a84ce7568cd5dba756e9508c34ae9fc62f4b0b5731f93c2ad68b21537ed1')
+ version('3.7.0', sha256='6fa5b771e990f09c242237ab334b9f01039ec7d54ccde993e719c5d6577d1518')
+ version('3.5.0', sha256='7af5326c9ca695642b4265232ec12864a61fd6b6056aa7c4ecd9e19c817f209e')
+
+ def install(self, spec, prefix):
+ source_directory = self.stage.source_path
+ include = join_path(source_directory, 'inc')
+
+ def only_headers(p):
+ return (p.endswith('CMakeLists.txt') or
+ p.endswith('RPM') or
+ p.endswith('DEBIAN'))
+
+ mkdirp(prefix.roctracer.inc)
+ install_tree(include, prefix.roctracer.inc, ignore=only_headers)
diff --git a/var/spack/repos/builtin/packages/roctracer-dev/package.py b/var/spack/repos/builtin/packages/roctracer-dev/package.py
index 36f22a1f30..fc57cd63a5 100644
--- a/var/spack/repos/builtin/packages/roctracer-dev/package.py
+++ b/var/spack/repos/builtin/packages/roctracer-dev/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,24 +13,35 @@ class RoctracerDev(CMakePackage):
specific runtime profiler to trace API and asyncronous activity."""
homepage = "https://github.com/ROCm-Developer-Tools/roctracer"
- url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-3.5.0.tar.gz"
+ git = "https://github.com/ROCm-Developer-Tools/roctracer.git"
+ url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-4.3.0.tar.gz"
maintainers = ['srekolam', 'arjun-raj-kuppala']
-
+ version('4.3.1', sha256='88ada5f256a570792d1326a305663e94cf2c3b0cbd99f7e745326923882dafd2')
+ version('4.3.0', sha256='c3d9f408df8d4dc0e9c0026217b8c684f68e775da80b215fecb3cd24419ee6d3')
+ version('4.2.0', sha256='62a9c0cb1ba50b1c39a0636c886ac86e75a1a71cbf5fec05801517ceb0e67a37')
+ version('4.1.0', sha256='5d93de4e92895b6eb5f9d098f5dbd182d33923bd9b2ab69cf5a1abbf91d70695')
+ version('4.0.0', sha256='f47859a46173228b597c463eda850b870e810534af5efd5f2a746067ef04edee')
+ version('3.10.0', sha256='ac4a1d059fc34377e906071fd0e56f5434a7e0e4ded9db8faf9217a115239dec')
+ version('3.9.0', sha256='0678f9faf45058b16923948c66d77ba2c072283c975d167899caef969169b292')
version('3.8.0', sha256='5154a84ce7568cd5dba756e9508c34ae9fc62f4b0b5731f93c2ad68b21537ed1')
version('3.7.0', sha256='6fa5b771e990f09c242237ab334b9f01039ec7d54ccde993e719c5d6577d1518')
version('3.5.0', sha256='7af5326c9ca695642b4265232ec12864a61fd6b6056aa7c4ecd9e19c817f209e')
depends_on('cmake@3:', type='build')
- depends_on('py-setuptools@:44', type='build')
- depends_on('python@:2', type='build')
+ depends_on('python@:2', type='build', when='@:4.1.0')
+ depends_on('python@3:', type='build', when='@4.2.0:')
depends_on('py-cppheaderparser', type='build')
- for ver in ['3.5.0', '3.7.0', '3.8.0']:
- depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
- depends_on('rocminfo@' + ver, type='build', when='@' + ver)
- depends_on('hip@' + ver, type='build', when='@' + ver)
+ for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0',
+ '4.2.0', '4.3.0', '4.3.1']:
+ depends_on('hsakmt-roct@' + ver, when='@' + ver)
+ depends_on('hsa-rocr-dev@' + ver, when='@' + ver)
+ depends_on('rocminfo@' + ver, when='@' + ver)
+ depends_on('hip@' + ver, when='@' + ver)
+
+ for ver in ['4.2.0', '4.3.0', '4.3.1']:
+ depends_on('rocprofiler-dev@' + ver, when='@' + ver)
def setup_build_environment(self, build_env):
spec = self.spec
@@ -42,7 +53,7 @@ class RoctracerDev(CMakePackage):
string=True)
kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
with working_dir('script'):
- match = '^#!/usr/bin/python'
+ match = '^#!/usr/bin/python[23]'
python = self.spec['python'].command.path
substitute = "#!{python}".format(python=python)
files = [
diff --git a/var/spack/repos/builtin/packages/rodinia/package.py b/var/spack/repos/builtin/packages/rodinia/package.py
index 6310dc5444..8222b875d6 100644
--- a/var/spack/repos/builtin/packages/rodinia/package.py
+++ b/var/spack/repos/builtin/packages/rodinia/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Rodinia(MakefilePackage, CudaPackage):
Accelerators"""
homepage = "https://rodinia.cs.virginia.edu/doku.php"
- url = "http://www.cs.virginia.edu/~kw5na/lava/Rodinia/Packages/Current/rodinia_3.1.tar.bz2"
+ url = "https://www.cs.virginia.edu/~kw5na/lava/Rodinia/Packages/Current/rodinia_3.1.tar.bz2"
version('3.1', sha256='faebac7c11ed8f8fcf6bf2d7e85c3086fc2d11f72204d6dfc28dc5b2e8f2acfd')
diff --git a/var/spack/repos/builtin/packages/roms/package.py b/var/spack/repos/builtin/packages/roms/package.py
new file mode 100644
index 0000000000..0492e9a492
--- /dev/null
+++ b/var/spack/repos/builtin/packages/roms/package.py
@@ -0,0 +1,141 @@
+# Copyright 2013-2021 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)
+
+import os
+import sys
+
+from spack import *
+
+
+class Roms(MakefilePackage):
+ """ROMS is a free-surface, terrain-following,
+ primitive equations ocean model widely used by
+ the scientific community for a diverse range of applications"""
+
+ homepage = "https://www.myroms.org/"
+ url = "file://{0}/roms_3.8_source.tar.gz".format(os.getcwd())
+ manual_download = True
+
+ # TODO: ROMS v3.8 (svn version 986) require credentials to download and use
+ # Spack recipe expects ROMS source code in .tar.gz format
+ # checksum may differ from what is provided here.
+ # user can skip checksum verification by placing "--no-checksum"
+ # next to "spack install"
+ version('3.8', sha256='5da7a61b69bd3e1f84f33f894a9f418971f3ba61cf9f5ef0a806a722161e2c9a')
+
+ variant("openmp", default=False, description="Turn on shared-memory parallelization in ROMS")
+ variant("mpi", default=True, description="Turn on distributed-memory parallelization in ROMS")
+ variant(
+ 'roms_application', default='benchmark',
+ description='Makefile to include its associated header file',
+ values=('upwelling', 'benchmark'), multi=False
+ )
+ variant("debug", default=False, description="Turn on symbolic debug information with no optimization")
+
+ depends_on("mpi", when="+mpi")
+ depends_on("netcdf-fortran")
+ depends_on("netcdf-c")
+ depends_on("hdf5+fortran")
+ depends_on("zlib")
+ depends_on("curl")
+ depends_on("amdlibm", when="%aocc")
+
+ # Note: you cannot set USE_OpenMP and USE_MPI at the same time
+ conflicts("+mpi+openmp")
+
+ def _copy_arch_file(self, lib):
+ """AOCC compiler takes gfortran's makefile as reference"""
+ copy(
+ join_path('Compilers', 'Linux-gfortran.mk'),
+ join_path('Compilers', '{0}-{1}.mk'.format(self.arch, lib))
+ )
+
+ @property
+ def selected_roms_application(self):
+ """
+ Application type that have been selected in this build
+ """
+ return self.spec.variants['roms_application'].value
+
+ @property
+ def arch(self):
+ """return target platform"""
+ plat = sys.platform
+ if plat.startswith("linux"):
+ plat = "Linux"
+ return plat
+
+ def _edit_arch(self, spec, prefix, lib):
+ """
+ Edit Linux-flang.mk makefile to support AOCC compiler
+ """
+ fflags = ['-fveclib=AMDLIBM', '-O3', '-ffast-math']
+ make_aocc = join_path('Compilers',
+ '{0}-{1}.mk'.format(self.arch, lib))
+
+ filter_file(r'\sFC := gfortran*$', 'FC := {0}'.format(lib), make_aocc)
+ filter_file(r'\sFFLAGS\s:=.*$',
+ 'FFLAGS := {0}'.format(' '.join(fflags)),
+ make_aocc)
+ filter_file(r'\sLIBS\s:= [$]',
+ 'LIBS := {0} $'.format(spec['amdlibm'].libs.ld_flags),
+ make_aocc)
+ filter_file(r'\sFREEFLAGS\s:=.*',
+ 'FREEFLAGS := -ffree-form',
+ make_aocc)
+
+ def edit(self, spec, prefix):
+
+ # ROMS doesn't have support for AOCC out of the box
+ # Support extended to AOCC from below steps
+ if '%aocc' in self.spec:
+ lib_info = os.path.basename(spack_fc)
+ self._copy_arch_file(lib_info)
+ self._edit_arch(spec, prefix, lib_info)
+
+ makefile = FileFilter('makefile')
+
+ app_type = self.selected_roms_application
+
+ makefile.filter(r'ROMS_APPLICATION.*?=.*',
+ 'ROMS_APPLICATION = {0}'.format(app_type.upper()))
+ makefile.filter(r'\sFORT\s[?]=.*',
+ 'FORT = {0}'.format(os.path.basename(spack_fc)))
+ makefile.filter(r'\sUSE_NETCDF4\s[?]=.*', 'USE_NETCDF4 = on')
+
+ # Build MPI variant of ROMS
+ if "+mpi" in self.spec:
+ makefile.filter(r'\sUSE_MPI\s[?]=.*', 'USE_MPI = on')
+ makefile.filter(r'\sUSE_MPIF90\s[?]=.*', 'USE_MPIF90 = on')
+ makefile.filter(r'\sUSE_OpenMP\s[?]=.*', 'USE_OpenMP =')
+
+ # Build OpenMP variant of ROMS
+ if "+openmp" in self.spec:
+ makefile.filter(r'\sUSE_OpenMP\s[?]=.*', 'USE_OpenMP = on')
+ makefile.filter(r'\sUSE_MPI\s[?]=.*', 'USE_MPI =')
+ makefile.filter(r'\sUSE_MPIF90\s[?]=.*', 'USE_MPIF90 =')
+
+ # Build Debug variant of ROMS
+ if "+debug" in self.spec:
+ makefile.filter(r'\sUSE_DEBUG\s[?]=.*', 'USE_DEBUG = on')
+
+ def setup_build_environment(self, spack_env):
+
+ spec = self.spec
+
+ netcdf_include = spec['netcdf-fortran'].prefix.include
+ nf_config = join_path(spec['netcdf-fortran'].prefix.bin, 'nf-config')
+
+ spack_env.set('NF_CONFIG', nf_config)
+ spack_env.set('NETCDF_INCDIR', netcdf_include)
+ spack_env.set('HDF5_INCDIR', spec['hdf5'].prefix.include)
+ spack_env.set('HDF5_LIBDIR', spec['hdf5'].prefix.libs)
+
+ def build(self, spec, prefix):
+ make(parallel=False)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('roms*', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/root/README.md b/var/spack/repos/builtin/packages/root/README.md
index 5f9180dc95..d0e7674484 100644
--- a/var/spack/repos/builtin/packages/root/README.md
+++ b/var/spack/repos/builtin/packages/root/README.md
@@ -12,10 +12,6 @@ The following configuration options are unsupported (set to `OFF`) due to missin
Requires `libgapiUI` from ALICE.
-#### `dcache`
-
-DCache support depends on `libdcap` from DESY.
-
#### `gfal`
#### `http`
@@ -28,12 +24,8 @@ Monitoring with Monalisa depends on `libapmoncpp`.
#### `odbc`
-#### `oracle`
-
#### `tcmalloc`
-#### `veccore`
-
#### `xinetd`
### Discontinued options
diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py
index 859840a525..d14320adcc 100644
--- a/var/spack/repos/builtin/packages/root/package.py
+++ b/var/spack/repos/builtin/packages/root/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import sys
+
from spack import *
from spack.util.environment import is_system_path
-import sys
class Root(CMakePackage):
@@ -14,21 +15,30 @@ class Root(CMakePackage):
homepage = "https://root.cern.ch"
url = "https://root.cern/download/root_v6.16.00.source.tar.gz"
+ git = "https://github.com/root-project/root.git"
+
+ executables = ['^root$', '^root-config$']
+
+ tags = ['hep']
maintainers = ['chissg', 'HadrienG2', 'drbenmorgan', 'vvolkl']
# ###################### Versions ##########################
# Master branch
- version('master', git="https://github.com/root-project/root.git",
- branch='master')
+ version('master', branch='master')
# Development version (when more recent than production).
# Production version
+ version('6.24.06', sha256='907f69f4baca1e4f30eeb4979598ca7599b6aa803ca046e80e25b6bbaa0ef522')
+ version('6.24.02', sha256='0507e1095e279ccc7240f651d25966024325179fa85a1259b694b56723ad7c1c')
+ version('6.24.00', sha256='9da30548a289211c3122d47dacb07e85d35e61067fac2be6c5a5ff7bda979989')
+ version('6.22.08', sha256='6f061ff6ef8f5ec218a12c4c9ea92665eea116b16e1cd4df4f96f00c078a2f6f')
+ version('6.22.06', sha256='c4688784a7e946cd10b311040b6cf0b2f75125a7520e04d1af0b746505911b57')
+ version('6.22.02', sha256='89784afa9c9047e9da25afa72a724f32fa8aa646df267b7731e4527cc8a0c340')
version('6.22.00', sha256='efd961211c0f9cd76cf4a486e4f89badbcf1d08e7535bba556862b3c1a80beed')
- version('6.20.08', sha256='d02f224b4908c814a99648782b927c353d44db79dea2cadea86138c1afc23ae9',
- preferred=True)
+ version('6.20.08', sha256='d02f224b4908c814a99648782b927c353d44db79dea2cadea86138c1afc23ae9')
version('6.20.06', sha256='9a734758a91598d8a58a3d64d7d606aeb17bdf6fd8214e33f5c4d9947d391951')
version('6.20.04', sha256='1f8c76ccdb550e64e6ddb092b4a7e9d0a10655ef80044828cba12d5e7c874472')
version('6.20.02', sha256='0997586bf097c0afbc6f08edbffcebf5eb6a4237262216114ba3f5c8087dcba6')
@@ -85,6 +95,8 @@ class Root(CMakePackage):
description='Enable Aqua interface')
variant('davix', default=True,
description='Compile with external Davix')
+ variant('dcache', default=False,
+ description='Enable support for dCache')
variant('emacs', default=False,
description='Enable Emacs support')
variant('examples', default=True,
@@ -122,6 +134,8 @@ class Root(CMakePackage):
variant('mysql', default=False)
variant('opengl', default=True,
description='Enable OpenGL support')
+ variant('oracle', default=False,
+ description='Enable support for Oracle databases')
variant('postgres', default=False,
description='Enable postgres support')
variant('pythia6', default=False,
@@ -136,12 +150,14 @@ class Root(CMakePackage):
description='Enable R ROOT bindings')
variant('rpath', default=True,
description='Enable RPATH')
- variant('rootfit', default=True,
+ variant('roofit', default=True,
description='Build the libRooFit advanced fitting package')
variant('root7', default=False,
description='Enable ROOT 7 support')
variant('shadow', default=False,
description='Enable shadow password support')
+ variant('spectrum', default=False,
+ description='Enable support for TSpectrum')
variant('sqlite', default=False,
description='Enable SQLite support')
variant('ssl', default=False,
@@ -160,6 +176,8 @@ class Root(CMakePackage):
description='Enable Vc for adding new types for SIMD programming')
variant('vdt', default=True,
description='Enable set of fast and vectorisable math functions')
+ variant('veccore', default=False,
+ description='Enable support for VecCore SIMD abstraction library')
variant('vmc', default=False,
description='Enable the Virtual Monte Carlo interface')
variant('x', default=True,
@@ -190,6 +208,7 @@ class Root(CMakePackage):
depends_on('libpng')
depends_on('lz4', when='@6.13.02:') # See cmake_args, below.
depends_on('ncurses')
+ depends_on('nlohmann-json', when='@6.24:')
depends_on('pcre')
depends_on('xxhash', when='@6.13.02:') # See cmake_args, below.
depends_on('xz')
@@ -224,6 +243,7 @@ class Root(CMakePackage):
# Optional dependencies
depends_on('davix @0.7.1:', when='+davix')
+ depends_on('dcap', when='+dcache')
depends_on('cfitsio', when='+fits')
depends_on('fftw', when='+fftw')
depends_on('graphviz', when='+graphviz')
@@ -232,6 +252,7 @@ class Root(CMakePackage):
depends_on('mysql-client', when='+mysql')
depends_on('openssl', when='+ssl')
depends_on('openssl', when='+davix') # Also with davix
+ depends_on('oracle-instant-client@19.10.0.0.0', when='+oracle @:6.24.01')
depends_on('postgresql', when='+postgres')
depends_on('pythia6+root', when='+pythia6')
depends_on('pythia8', when='+pythia8')
@@ -242,11 +263,19 @@ class Root(CMakePackage):
depends_on('shadow', when='+shadow')
depends_on('sqlite', when='+sqlite')
depends_on('tbb', when='+tbb')
+ # See: https://github.com/root-project/root/issues/6933
+ conflicts('^intel-tbb@2021.1:', when='@:6.22',
+ msg='Please use an older intel-tbb version')
+ conflicts('^intel-oneapi-tbb@2021.1:', when='@:6.22',
+ msg='Please use an older intel-tbb/intel-oneapi-tbb version')
+ # depends_on('intel-tbb@:2021.0', when='@:6.22 ^intel-tbb')
depends_on('unuran', when='+unuran')
depends_on('vc', when='+vc')
depends_on('vdt', when='+vdt')
+ depends_on('veccore', when='+veccore')
depends_on('libxml2', when='+xml')
- depends_on('xrootd@:4.99.99', when='+xrootd')
+ depends_on('xrootd', when='+xrootd')
+ depends_on('xrootd@:4.99.99', when='@:6.22.03 +xrootd')
# ###################### Conflicts ######################
@@ -279,6 +308,98 @@ class Root(CMakePackage):
conflicts('+' + pkg, when='@6.18.00:',
msg='Obsolete option +{0} selected.'.format(pkg))
+ @classmethod
+ def filter_detected_exes(cls, prefix, exes_in_prefix):
+ result = []
+ for exe in exes_in_prefix:
+ # no need to check the root executable itself
+ # we can get all information from root-config
+ if exe.endswith('root'):
+ continue
+ result.append(exe)
+ return result
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ # turn the output of root-config --version
+ # (something like 6.22/06)
+ # into the format used in this recipe (6.22.06)
+ return output.strip().replace('/', '.')
+
+ @classmethod
+ def determine_variants(cls, exes, version_str):
+ v = [] # list of determined variants
+ # there is a fairly direct mapping between build options ( which
+ # root-config helpfully outputs) and variants
+ output = Executable(exes[0])('--features', output=str, error=str)
+ f = set(output.strip().split()) # features as reported by root-config
+ # only multivalued variant: cxxstd
+ if "cxx11" in f:
+ v.append("cxxstd=11")
+ elif "cxx14" in f:
+ v.append("cxxstd=14")
+ elif "cxx17" in f:
+ v.append("cxxstd=17")
+
+ # helper function: check if featurename is in features, and if it is,
+ # append variantname to variants. featurename may be a list/tuple, in
+ # which case the variant is only added if all of them are present
+ def _add_variant(variants, features, featurename, variantname):
+ if isinstance(featurename, str):
+ if featurename in features:
+ variants.append('%s' % variantname)
+ else:
+ variants.append('~%s' % variantname[1:])
+ else:
+ if set(featurename).issubset(features):
+ variants.append('%s' % variantname)
+ else:
+ variants.append('~%s' % variantname[1:])
+
+ _add_variant(v, f, 'cocoa', '+aqua')
+ _add_variant(v, f, 'davix', '+davix')
+ _add_variant(v, f, 'dcache', '+dcache')
+ _add_variant(v, f, 'fftw3', '+fftw')
+ _add_variant(v, f, 'fitsio', '+fits')
+ _add_variant(v, f, ('ftgl', 'opengl'), '+opengl')
+ _add_variant(v, f, 'gdml', '+gdml')
+ _add_variant(v, f, 'mathmore', '+math')
+ _add_variant(v, f, 'gviz', '+graphviz')
+ _add_variant(v, f, 'http', '+http')
+ _add_variant(v, f, ('imt', 'tbb'), '+tbb')
+ _add_variant(v, f, 'jemalloc', '+jemalloc')
+ _add_variant(v, f, 'memstat', '+memstat')
+ _add_variant(v, f, ('minuit', 'minuit2'), '+minuit')
+ _add_variant(v, f, 'mlp', '+mlp')
+ _add_variant(v, f, 'mysql', '+mysql')
+ _add_variant(v, f, 'oracle', '+oracle')
+ _add_variant(v, f, 'pgsql', '+postgres')
+ _add_variant(v, f, 'pythia6', '+pythia6')
+ _add_variant(v, f, 'pythia8', '+pythia8')
+ _add_variant(v, f, 'pyroot', '+python')
+ _add_variant(v, f, ('qt', 'qtgsi'), '+qt4')
+ _add_variant(v, f, 'r', '+r')
+ _add_variant(v, f, 'roofit', '+roofit')
+ _add_variant(v, f, ('root7', 'webui'), '+root7')
+ _add_variant(v, f, 'rpath', '+rpath')
+ _add_variant(v, f, 'shadowpw', '+shadow')
+ _add_variant(v, f, 'spectrum', '+spectrum')
+ _add_variant(v, f, 'sqlite', '+sqlite')
+ _add_variant(v, f, 'ssl', '+ssl')
+ _add_variant(v, f, 'table', '+table')
+ _add_variant(v, f, 'thread', '+threads')
+ _add_variant(v, f, 'tmva', '+tmva')
+ _add_variant(v, f, 'unuran', '+unuran')
+ _add_variant(v, f, 'vc', '+vc')
+ _add_variant(v, f, 'vdt', '+vdt')
+ _add_variant(v, f, 'veccore', '+veccore')
+ _add_variant(v, f, 'vmc', '+vmc')
+ _add_variant(v, f, ('x11', 'xft'), '+x')
+ _add_variant(v, f, 'xml', '+xml')
+ _add_variant(v, f, 'xrootd', '+xrootd')
+ return " ".join(v)
+
def cmake_args(self):
spec = self.spec
define = self.define
@@ -305,13 +426,16 @@ class Root(CMakePackage):
define('shared', True),
define('soversion', True),
define('testing', self.run_tests),
- define_from_variant('thread', 'threads')
+ define_from_variant('thread', 'threads'),
+ # The following option makes sure that Cling will call the compiler
+ # it was compiled with at run time; see #17488, #18078 and #23886
+ define('CLING_CXX_PATH', self.compiler.cxx),
]
# Options related to ROOT's ability to download and build its own
# dependencies. Per Spack convention, this should generally be avoided.
options += [
- define('builtin_afterimage', True),
+ define_from_variant('builtin_afterimage', 'x'),
define('builtin_cfitsio', False),
define('builtin_davix', False),
define('builtin_fftw3', False),
@@ -323,6 +447,7 @@ class Root(CMakePackage):
define('builtin_llvm', True),
define('builtin_lz4', self.spec.satisfies('@6.12.02:6.12.99')),
define('builtin_lzma', False),
+ define('builtin_nlohmannjson', False),
define('builtin_openssl', False),
define('builtin_pcre', False),
define('builtin_tbb', False),
@@ -351,7 +476,7 @@ class Root(CMakePackage):
define_from_variant('cocoa', 'aqua'),
define('dataframe', True),
define_from_variant('davix'),
- define('dcache', False),
+ define_from_variant('dcache'),
define_from_variant('fftw3', 'fftw'),
define_from_variant('fitsio', 'fits'),
define_from_variant('ftgl', 'opengl'),
@@ -380,7 +505,7 @@ class Root(CMakePackage):
define_from_variant('mysql'),
define('odbc', False),
define_from_variant('opengl'),
- define('oracle', False),
+ define_from_variant('oracle'),
define_from_variant('pgsql', 'postgres'),
define_from_variant('pythia6'),
define_from_variant('pythia8'),
@@ -388,11 +513,12 @@ class Root(CMakePackage):
define_from_variant('qtgsi', 'qt4'), # See conflicts
define_from_variant('r'),
define('rfio', False),
- define('roofit', False),
+ define_from_variant('roofit'),
define_from_variant('root7'), # See conflicts
define('ruby', False),
define('sapdb', False),
define_from_variant('shadowpw', 'shadow'),
+ define_from_variant('spectrum'),
define_from_variant('sqlite'),
define('srp', False),
define_from_variant('ssl'),
@@ -403,7 +529,7 @@ class Root(CMakePackage):
define_from_variant('unuran'),
define_from_variant('vc'),
define_from_variant('vdt'),
- define('veccore', False),
+ define_from_variant('veccore'),
define_from_variant('vmc'),
define_from_variant('webui', 'root7'), # requires root7
define_from_variant('x11', 'x'),
@@ -413,7 +539,7 @@ class Root(CMakePackage):
]
# Some special features
- if self.spec.satisfies('@6.20:'):
+ if self.spec.satisfies('@6.20.02:'):
options.append(define_from_variant('pyroot', 'python'))
else:
options.append(define_from_variant('python'))
diff --git a/var/spack/repos/builtin/packages/rose/package.py b/var/spack/repos/builtin/packages/rose/package.py
index 0255230da1..ac2b9f0baf 100644
--- a/var/spack/repos/builtin/packages/rose/package.py
+++ b/var/spack/repos/builtin/packages/rose/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ross/package.py b/var/spack/repos/builtin/packages/ross/package.py
index 7c33fef84a..215942284a 100644
--- a/var/spack/repos/builtin/packages/ross/package.py
+++ b/var/spack/repos/builtin/packages/ross/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Ross(CMakePackage):
"""Rensselaer Optimistic Simulation System"""
- homepage = "http://ross-org.github.io"
+ homepage = "https://ross-org.github.io"
git = "https://github.com/ROSS-org/ROSS.git"
url = "https://github.com/ROSS-org/ROSS/archive/v7.0.0.tar.gz"
diff --git a/var/spack/repos/builtin/packages/routino/package.py b/var/spack/repos/builtin/packages/routino/package.py
index b1b7fafccc..edcf34cb48 100644
--- a/var/spack/repos/builtin/packages/routino/package.py
+++ b/var/spack/repos/builtin/packages/routino/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Routino(MakefilePackage):
"""Routino is an application for finding a route between two points using
the dataset of topographical information collected by
- http://www.OpenStreetMap.org."""
+ https://www.OpenStreetMap.org/."""
homepage = "https://www.routino.org"
url = "https://www.routino.org/download/routino-3.2.tgz"
diff --git a/var/spack/repos/builtin/packages/rpcsvc-proto/package.py b/var/spack/repos/builtin/packages/rpcsvc-proto/package.py
index fd89714027..10d4221abc 100644
--- a/var/spack/repos/builtin/packages/rpcsvc-proto/package.py
+++ b/var/spack/repos/builtin/packages/rpcsvc-proto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rpm/package.py b/var/spack/repos/builtin/packages/rpm/package.py
new file mode 100644
index 0000000000..562b749b86
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rpm/package.py
@@ -0,0 +1,151 @@
+# Copyright 2013-2021 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)
+
+import llnl.util.tty as tty
+
+from spack import *
+
+
+class Rpm(AutotoolsPackage):
+ """
+ The RPM package manager
+ https://github.com/rpm-software-management/rpm/blob/master/INSTALL
+ Note that debugedit is an additional tool that *should* compile with
+ adding libdw and elfutils, but the library (as of 4.16.1.2) is being
+ removed from rpm and will be put somewhere else.
+ """
+
+ homepage = "https://github.com/rpm-software-management/rpm"
+ url = "https://github.com/rpm-software-management/rpm/archive/rpm-4.16.0-release.tar.gz"
+ git = "https://github.com/rpm-software-management/rpm.git"
+
+ maintainers = ['haampie']
+
+ version('master', branch='master')
+ version('4.16.1.2', sha256='3d2807807a8ccaa92a8ced74e09b5bf5b2417a5bbf9bee4abc7c6aa497547bf3')
+ version('4.16.0', sha256='a62b744e3404b107e8467e1a36ff0f2bf9e5c1b748dbfeb36db54bbb859446ea')
+
+ variant('crypto', values=('openssl', 'libgcrypt'), default='libgcrypt',
+ multi=False, description='What cryptographic library to use')
+ variant('sqlite', default=False, description='Use sqlite instead of ndb')
+ variant('berkeley-db', values=('full', 'readonly', 'none'), default='none',
+ multi=False, description='Type of support for Berkeley DB')
+ variant('selinux', default=False, description="Enable support for SELinux")
+ variant('python', default=False, description="Build Python bindings to RPM library")
+ variant('lua', default=True, description='Build with lua support')
+ variant('zstd', default=False, description='Build with zstd suport')
+ variant('posix', default=False, description="Enable POSIX.1e draft 15 file capabilities support")
+ variant('gpg', default=False, description="Install gpg for using cryptographic signatures")
+ variant('openmp', default=True, description="OpenMP multithreading support")
+ variant('nls', default=False, description='Enable native language support')
+
+ # Always required
+ depends_on('popt')
+
+ # Without this file patch, we don't detect lua
+ depends_on('lua+pcfile@5.3.5:', when='+lua')
+
+ # Enable POSIX.1e draft 15 file capabilities support
+ depends_on('libcap', when="+posix")
+ depends_on('berkeley-db@4.5:', when='berkeley-db=full')
+ depends_on('berkeley-db@4.5:', when='berkeley-db=readonly')
+
+ depends_on('gettext', when='+nls')
+ depends_on('gettext', type='build')
+ depends_on('iconv')
+ depends_on('file') # provides magic.h
+ depends_on('libarchive')
+
+ # support for cryptographic signatures
+ depends_on('gnupg', when='+gpg')
+
+ # cryptographic library to support digests and signatures
+ depends_on('libgcrypt', when='crypto=libgcrypt')
+ depends_on('openssl@1.0.2:', when='crypto=openssl')
+
+ # RPM needs some database, ndb requires no extra dependencies but sqlite does
+ depends_on('sqlite@3.22.0:', when='+sqlite')
+
+ # Python 2.x support is being deprecated
+ depends_on('python@3.1:', when='+sqlite')
+
+ # compression support -- there is no configure option for many of these
+ # and they autodetect the libraries, so it's better to just make them
+ # hard requirements to avoid linking against system libraries.
+ depends_on('zlib')
+ depends_on('bzip2')
+ depends_on('gzip')
+ depends_on('xz')
+ depends_on('lzma')
+ depends_on('zstd', when='+zstd')
+
+ # java jar dependency analysis (already requirement for lua)
+ depends_on('unzip', type='run')
+
+ # Build dependencies
+ depends_on('doxygen', type='build')
+ depends_on('pkgconfig', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ # Lua is about to become a hard requirement
+ conflicts('~lua', when='@4.17:')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./autogen.sh', '--noconfigure')
+
+ def configure_args(self):
+ spec = self.spec
+
+ args = [
+ '--enable-ndb',
+ '--disable-inhibit-plugin',
+ '--with-crypto={0}'.format(spec.variants['crypto'].value)
+ ]
+
+ args += self.enable_or_disable('nls')
+ args += self.enable_or_disable('sqlite')
+ args += self.with_or_without('selinux')
+ args += self.with_or_without('python')
+ # OpenMP multithreading support automatically enabled if C compiler has
+ # support for OpenMP version 4.5 or higher
+ args += self.enable_or_disable('openmp')
+
+ # Option got removed in 4.17
+ if self.spec.satisfies('@:4.16'):
+ args += self.with_or_without('lua')
+
+ # Legacy berkely db support
+ if 'berkeley-db=full' in spec:
+ args.extend(['--enable-bdb', '--disable-bdb-ro'])
+ elif 'berkeley-db=readonly' in spec:
+ args.extend(['--disable-bdb', '--enable-bdb-ro'])
+ else:
+ args.extend(['--disable-bdb', '--disable-bdb-ro'])
+
+ # enable POSIX.1e draft 15 file capabilities support
+ if '+posix' in spec:
+ args.append('--with-cap')
+
+ if 'crypto=openssl' in spec:
+ tty.warn(openssl_warning)
+
+ return args
+
+
+# This warning is from the INSTALL about licensing when using openssl.
+# We need to show it to the user if they choose the openssl variant.
+
+openssl_warning = """
+When compiling against OpenSSL, there is a possible license incompatibility.
+For more details on this, see https://people.gnome.org/~markmc/openssl-and-the-gpl.html
+Some Linux distributions have different legal interpretations of this
+possible incompatibility. It is recommended to consult with a lawyer before
+building RPM against OpenSSL.
+Fedora: https://fedoraproject.org/wiki/Licensing:FAQ#What.27s_the_deal_with_the_OpenSSL_license.3F
+Debian: https://lists.debian.org/debian-legal/2002/10/msg00113.html"""
diff --git a/var/spack/repos/builtin/packages/rr/package.py b/var/spack/repos/builtin/packages/rr/package.py
index f96d336533..6a0865923f 100644
--- a/var/spack/repos/builtin/packages/rr/package.py
+++ b/var/spack/repos/builtin/packages/rr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ from spack import *
class Rr(CMakePackage):
"""Application execution recorder, player and debugger"""
- homepage = "http://rr-project.org/"
+ homepage = "https://rr-project.org/"
url = "https://github.com/mozilla/rr/archive/4.5.0.tar.gz"
version('4.5.0', sha256='19f28259c0aa562c9518ae51207377fa93071a7dc270a0738d8d39e45ae2b1c0')
diff --git a/var/spack/repos/builtin/packages/rrdtool/package.py b/var/spack/repos/builtin/packages/rrdtool/package.py
index b3f22b0be0..5c615127d9 100644
--- a/var/spack/repos/builtin/packages/rrdtool/package.py
+++ b/var/spack/repos/builtin/packages/rrdtool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Rrdtool(AutotoolsPackage):
"""RA tool for data logging and analysis."""
- homepage = "http://oss.oetiker.ch/rrdtool"
+ homepage = "https://oss.oetiker.ch/rrdtool"
url = "http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.7.0.tar.gz"
version('1.7.2', sha256='a199faeb7eff7cafc46fac253e682d833d08932f3db93a550a4a5af180ca58db')
@@ -22,5 +22,7 @@ class Rrdtool(AutotoolsPackage):
depends_on('perl-extutils-makemaker')
def configure_args(self):
- args = ['LDFLAGS=-lintl']
+ args = ['LDFLAGS=-lintl',
+ "--with-systemdsystemunitdir=" +
+ self.spec['rrdtool'].prefix.lib.systemd.system]
return args
diff --git a/var/spack/repos/builtin/packages/rsbench/package.py b/var/spack/repos/builtin/packages/rsbench/package.py
index 08ca35a20f..b3b5f852ed 100644
--- a/var/spack/repos/builtin/packages/rsbench/package.py
+++ b/var/spack/repos/builtin/packages/rsbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,26 +14,36 @@ class Rsbench(MakefilePackage):
homepage = "https://github.com/ANL-CESAR/RSBench"
url = "https://github.com/ANL-CESAR/RSBench/archive/v2.tar.gz"
+ version('12', sha256='2e437dbdaf7bf12bb9ade429d46a9e74fd519fc4686777a452770790d0546499')
version('2', sha256='1e97a38a863836e98cedc5cc669f8fdcaed905fafdc921d2bce32319b3e157ff')
version('0', sha256='95c06cf4cb6f396f9964d5e4b58a477bf9d7131cd39804480f1cb74e9310b271')
tags = ['proxy-app']
- build_directory = 'src'
+ # To-Do: Add build support for other parallelism versions in v12:
+ # CUDA, Sycl, OpenCL, OpenMP Offload
+
+ @property
+ def build_directory(self):
+ if self.spec.satisfies('@:2'):
+ return 'src'
+ return 'openmp-threading'
@property
def build_targets(self):
targets = []
- cflags = '-std=gnu99'
+ cflags = '-std=gnu99 -O3'
ldflags = '-lm'
if self.compiler.name == 'gcc':
cflags += ' -ffast-math '
elif self.compiler.name == 'intel':
cflags += ' -xhost -ansi-alias -no-prec-div '
- elif self.compiler.name == 'pgi':
+ elif self.compiler.name == 'pgi' or self.compiler.name == 'nvhpc':
cflags += ' -fastsse '
+ elif self.compiler.name == 'arm':
+ cflags += ' -ffast-math '
cflags += self.compiler.openmp_flag
@@ -44,4 +54,4 @@ class Rsbench(MakefilePackage):
def install(self, spec, prefix):
mkdir(prefix.bin)
- install('src/rsbench', prefix.bin)
+ install(join_path(self.build_directory, 'rsbench'), prefix.bin)
diff --git a/var/spack/repos/builtin/packages/rsem/package.py b/var/spack/repos/builtin/packages/rsem/package.py
index 8e24f7bfcd..dfad6f33d1 100644
--- a/var/spack/repos/builtin/packages/rsem/package.py
+++ b/var/spack/repos/builtin/packages/rsem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Rsem(MakefilePackage):
"""RSEM is a software package for estimating gene and isoform expression
levels from RNA-Seq data."""
- homepage = "http://deweylab.github.io/RSEM/"
+ homepage = "https://deweylab.github.io/RSEM/"
url = "https://github.com/deweylab/RSEM/archive/v1.3.0.tar.gz"
version('1.3.1', sha256='93c749a03ac16e94b1aab94d032d4fd5687d3261316ce943ecb89d3ae3ec2e11')
diff --git a/var/spack/repos/builtin/packages/rstart/package.py b/var/spack/repos/builtin/packages/rstart/package.py
index aa49ddbfe9..33fcb09f21 100644
--- a/var/spack/repos/builtin/packages/rstart/package.py
+++ b/var/spack/repos/builtin/packages/rstart/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,11 +14,11 @@ class Rstart(AutotoolsPackage, XorgPackage):
This software has been deprecated in favor of the X11 forwarding
provided in common ssh implementations."""
- homepage = "http://cgit.freedesktop.org/xorg/app/rstart"
+ homepage = "https://cgit.freedesktop.org/xorg/app/rstart"
xorg_mirror_path = "app/rstart-1.0.5.tar.gz"
version('1.0.5', sha256='5271c0c2675b4ad09aace7edddfdd137af10fc754afa6260d8eb5d0bba7098c7')
- depends_on('xproto', type='build')
+ depends_on('xproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/rstudio/package.py b/var/spack/repos/builtin/packages/rstudio/package.py
new file mode 100644
index 0000000000..fabfe23a56
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rstudio/package.py
@@ -0,0 +1,124 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Rstudio(CMakePackage):
+ """RStudio is an integrated development environment (IDE) for R."""
+
+ homepage = "www.rstudio.com/products/rstudio/"
+ url = "https://github.com/rstudio/rstudio/archive/refs/tags/v1.4.1717.tar.gz"
+
+ version('1.4.1717', sha256='3af234180fd7cef451aef40faac2c7b52860f14a322244c1c7aede029814d261')
+
+ variant('notebook', default=False, description='Enable notebook support.')
+
+ depends_on('r@3.0.1:', type=('build', 'run'))
+ depends_on('cmake@3.4.3:', type='build')
+ depends_on('pkgconfig', type='build')
+ depends_on('ant', type='build')
+ depends_on('boost+pic@1.69:')
+ depends_on('qt+webkit@5.12:')
+ depends_on('patchelf@0.9:')
+ depends_on('yaml-cpp@:0.6.3') # find_package fails with newest version
+ depends_on('node-js')
+ depends_on('yarn')
+ depends_on('pandoc@2.11.4:')
+ depends_on('icu4c')
+ depends_on('soci~static+boost+postgresql+sqlite')
+ depends_on('java@8:')
+
+ with when('+notebook'):
+ depends_on('r-base64enc')
+ depends_on('r-digest')
+ depends_on('r-evaluate')
+ depends_on('r-glue')
+ depends_on('r-highr')
+ depends_on('r-htmltools')
+ depends_on('r-jsonlite')
+ depends_on('r-knitr')
+ depends_on('r-magrittr')
+ depends_on('r-markdown')
+ depends_on('r-mime')
+ depends_on('r-rmarkdown')
+ depends_on('r-stringi')
+ depends_on('r-stringr')
+ depends_on('r-tinytex')
+ depends_on('r-xfun')
+ depends_on('r-yaml')
+
+ # to use node-js provided by spack
+ patch('https://src.fedoraproject.org/rpms/rstudio/raw/5bda2e290c9e72305582f2011040938d3e356906/f/0004-use-system-node.patch',
+ sha256='4a6aff2b586ddfceb7c59215e5f4a03f25b08fcc55687acaa6ae23c11d75d0e8')
+
+ def cmake_args(self):
+ args = [
+ '-DRSTUDIO_TARGET=Desktop',
+ '-DRSTUDIO_PACKAGE_BUILD=Yes',
+ '-DRSTUDIO_USE_SYSTEM_YAML_CPP=Yes',
+ '-DRSTUDIO_USE_SYSTEM_BOOST=Yes',
+ '-DRSTUDIO_USE_SYSTEM_SOCI=Yes',
+ '-DQT_QMAKE_EXECUTABLE="{0}"'.format(self.spec['qt'].prefix.bin.qmake),
+ ]
+
+ return args
+
+ def setup_build_environment(self, env):
+ env.set('RSTUDIO_TOOLS_ROOT', self.prefix.tools)
+
+ def patch(self):
+ # fix hardcoded path for node-js in use_system_node patch
+ filter_file('<property name="node.bin" value="/usr/bin/node"/>',
+ '<property name="node.bin" value="{0}"/>'.format(
+ self.spec['node-js'].prefix.bin.node),
+ 'src/gwt/build.xml',
+ string=True)
+
+ # remove hardcoded soci path to use spack soci
+ if self.spec['soci'].version <= Version('4.0.0'):
+ soci_lib = self.spec['soci'].prefix.lib64
+ else:
+ soci_lib = self.spec['soci'].prefix.lib
+ filter_file('set(SOCI_LIBRARY_DIR "/usr/lib")',
+ 'set(SOCI_LIBRARY_DIR "{0}")'.format(soci_lib),
+ 'src/cpp/CMakeLists.txt',
+ string=True)
+
+ # unbundle icu libraries
+ filter_file('${QT_LIBRARY_DIR}/${ICU_LIBRARY}.so',
+ join_path(self.spec['icu4c'].prefix.lib, '${ICU_LIBRARY}.so'),
+ 'src/cpp/desktop/CMakeLists.txt',
+ string=True)
+
+ @run_before('cmake')
+ def install_deps(self):
+ deps = Executable('./dependencies/common/install-dictionaries')
+ deps()
+ deps = Executable('./dependencies/common/install-mathjax')
+ deps()
+
+ # two methods for pandoc
+ # 1) replace install-pandoc:
+ # - link pandoc into tools/pandoc/$PANDOC_VERSION
+ # (this is what install-pandoc would do)
+ # - cmake then installs pandoc files from there into bin
+ # 2) remove install-pandoc and cmake install step + link directly into bin
+
+ # method 1)
+ filter_file('set(PANDOC_VERSION "2.11.4" CACHE INTERNAL "Pandoc version")',
+ 'set(PANDOC_VERSION "{0}" CACHE INTERNAL "Pandoc version")'.format(
+ self.spec['pandoc'].version),
+ 'src/cpp/session/CMakeLists.txt',
+ string=True)
+
+ pandoc_dir = join_path(self.prefix.tools, 'pandoc', self.spec['pandoc'].version)
+ os.makedirs(pandoc_dir)
+ with working_dir(pandoc_dir):
+ os.symlink(self.spec['pandoc'].prefix.bin.pandoc, 'pandoc')
+ os.symlink(os.path.join(self.spec['pandoc'].prefix.bin, 'pandoc-citeproc'),
+ 'pandoc-citeproc')
diff --git a/var/spack/repos/builtin/packages/rsync/package.py b/var/spack/repos/builtin/packages/rsync/package.py
index d9a59ed7bd..b899aed17d 100644
--- a/var/spack/repos/builtin/packages/rsync/package.py
+++ b/var/spack/repos/builtin/packages/rsync/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import re
+
from spack import *
@@ -11,6 +13,7 @@ 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.3', sha256='becc3c504ceea499f4167a260040ccf4d9f2ef9499ad5683c179a697146ce50e')
version('3.2.2', sha256='644bd3841779507665211fd7db8359c8a10670c57e305b4aab61b4e40037afa8')
version('3.1.3', sha256='55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0')
version('3.1.2', sha256='ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2')
@@ -25,5 +28,13 @@ class Rsync(AutotoolsPackage):
conflicts('%nvhpc')
+ executables = ['^rsync$']
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ match = re.search(r'rsync\s+version\s+(\S+)', output)
+ return match.group(1) if match else None
+
def configure_args(self):
return ['--with-included-zlib=no']
diff --git a/var/spack/repos/builtin/packages/rsyslog/package.py b/var/spack/repos/builtin/packages/rsyslog/package.py
index 5bc81968a0..0e89cd88ef 100644
--- a/var/spack/repos/builtin/packages/rsyslog/package.py
+++ b/var/spack/repos/builtin/packages/rsyslog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,7 +23,7 @@ class Rsyslog(AutotoolsPackage):
depends_on('libestr')
depends_on('libfastjson')
depends_on('zlib')
- depends_on('libuuid')
+ depends_on('uuid')
depends_on('libgcrypt')
depends_on('curl')
depends_on('byacc', type='build')
@@ -31,3 +31,8 @@ class Rsyslog(AutotoolsPackage):
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix.sbin)
+
+ def configure_args(self):
+ args = ["--with-systemdsystemunitdir=" +
+ self.spec['rsyslog'].prefix.lib.systemd.system]
+ return args
diff --git a/var/spack/repos/builtin/packages/rt-tests/package.py b/var/spack/repos/builtin/packages/rt-tests/package.py
index ba5975e518..8484e5af19 100644
--- a/var/spack/repos/builtin/packages/rt-tests/package.py
+++ b/var/spack/repos/builtin/packages/rt-tests/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/rtags/package.py b/var/spack/repos/builtin/packages/rtags/package.py
index 6ae39013aa..d89759891b 100644
--- a/var/spack/repos/builtin/packages/rtags/package.py
+++ b/var/spack/repos/builtin/packages/rtags/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,7 @@ class Rtags(CMakePackage):
homepage = "https://github.com/Andersbakken/rtags/"
url = "https://andersbakken.github.io/rtags-releases/rtags-2.17.tar.gz"
+ version('2.20', sha256='dceab009194bcfa4265950dac16832bae7883e95d3bc41b215e90bc888db9cb1')
version('2.17', sha256='cde8882aceb09d65690007e214cc1979e0105842beb7747d49f79e33ed37d383')
depends_on("llvm@3.3: +clang")
diff --git a/var/spack/repos/builtin/packages/rtax/package.py b/var/spack/repos/builtin/packages/rtax/package.py
index 830e9b8073..24c06ed2e5 100644
--- a/var/spack/repos/builtin/packages/rtax/package.py
+++ b/var/spack/repos/builtin/packages/rtax/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-asciidoctor/package.py b/var/spack/repos/builtin/packages/ruby-asciidoctor/package.py
index e83abed536..8768e76da2 100644
--- a/var/spack/repos/builtin/packages/ruby-asciidoctor/package.py
+++ b/var/spack/repos/builtin/packages/ruby-asciidoctor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-erubis/package.py b/var/spack/repos/builtin/packages/ruby-erubis/package.py
index 764f2f342c..58862c43a1 100644
--- a/var/spack/repos/builtin/packages/ruby-erubis/package.py
+++ b/var/spack/repos/builtin/packages/ruby-erubis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-gnuplot/package.py b/var/spack/repos/builtin/packages/ruby-gnuplot/package.py
index 56509c40ea..dac530f4c2 100644
--- a/var/spack/repos/builtin/packages/ruby-gnuplot/package.py
+++ b/var/spack/repos/builtin/packages/ruby-gnuplot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-hpricot/package.py b/var/spack/repos/builtin/packages/ruby-hpricot/package.py
index 92edad8281..0b824913e4 100644
--- a/var/spack/repos/builtin/packages/ruby-hpricot/package.py
+++ b/var/spack/repos/builtin/packages/ruby-hpricot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-mustache/package.py b/var/spack/repos/builtin/packages/ruby-mustache/package.py
index 494bd4c8fc..c81f99fdcd 100644
--- a/var/spack/repos/builtin/packages/ruby-mustache/package.py
+++ b/var/spack/repos/builtin/packages/ruby-mustache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-narray/package.py b/var/spack/repos/builtin/packages/ruby-narray/package.py
index 0f38c039f7..00af435e33 100644
--- a/var/spack/repos/builtin/packages/ruby-narray/package.py
+++ b/var/spack/repos/builtin/packages/ruby-narray/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-rake/package.py b/var/spack/repos/builtin/packages/ruby-rake/package.py
index b9b59c0b22..ceda5924b7 100644
--- a/var/spack/repos/builtin/packages/ruby-rake/package.py
+++ b/var/spack/repos/builtin/packages/ruby-rake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-rdiscount/package.py b/var/spack/repos/builtin/packages/ruby-rdiscount/package.py
index 40a3ae1499..5eee5c4c73 100644
--- a/var/spack/repos/builtin/packages/ruby-rdiscount/package.py
+++ b/var/spack/repos/builtin/packages/ruby-rdiscount/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-ronn/package.py b/var/spack/repos/builtin/packages/ruby-ronn/package.py
index 5571ff6d64..b335ad0d4c 100644
--- a/var/spack/repos/builtin/packages/ruby-ronn/package.py
+++ b/var/spack/repos/builtin/packages/ruby-ronn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-rubyinline/package.py b/var/spack/repos/builtin/packages/ruby-rubyinline/package.py
index cb26205355..0abd0f6bb6 100644
--- a/var/spack/repos/builtin/packages/ruby-rubyinline/package.py
+++ b/var/spack/repos/builtin/packages/ruby-rubyinline/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-svn2git/package.py b/var/spack/repos/builtin/packages/ruby-svn2git/package.py
index 5715a9d922..3926a759c1 100644
--- a/var/spack/repos/builtin/packages/ruby-svn2git/package.py
+++ b/var/spack/repos/builtin/packages/ruby-svn2git/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-terminal-table/package.py b/var/spack/repos/builtin/packages/ruby-terminal-table/package.py
index b2384ab225..7523aa42ec 100644
--- a/var/spack/repos/builtin/packages/ruby-terminal-table/package.py
+++ b/var/spack/repos/builtin/packages/ruby-terminal-table/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-thor/package.py b/var/spack/repos/builtin/packages/ruby-thor/package.py
index e514ea5066..135976a702 100644
--- a/var/spack/repos/builtin/packages/ruby-thor/package.py
+++ b/var/spack/repos/builtin/packages/ruby-thor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-tmuxinator/package.py b/var/spack/repos/builtin/packages/ruby-tmuxinator/package.py
index 31e1fa8580..d5066fe027 100644
--- a/var/spack/repos/builtin/packages/ruby-tmuxinator/package.py
+++ b/var/spack/repos/builtin/packages/ruby-tmuxinator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-unicode-display-width/package.py b/var/spack/repos/builtin/packages/ruby-unicode-display-width/package.py
index 6f4073e097..9a5d845c44 100644
--- a/var/spack/repos/builtin/packages/ruby-unicode-display-width/package.py
+++ b/var/spack/repos/builtin/packages/ruby-unicode-display-width/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-xdg/package.py b/var/spack/repos/builtin/packages/ruby-xdg/package.py
index 6c86522cc9..0ee2902b58 100644
--- a/var/spack/repos/builtin/packages/ruby-xdg/package.py
+++ b/var/spack/repos/builtin/packages/ruby-xdg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby-zentest/package.py b/var/spack/repos/builtin/packages/ruby-zentest/package.py
index 64960072b3..e5a6ba7b44 100644
--- a/var/spack/repos/builtin/packages/ruby-zentest/package.py
+++ b/var/spack/repos/builtin/packages/ruby-zentest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ruby/package.py b/var/spack/repos/builtin/packages/ruby/package.py
index 132e1c83fb..8d8243b497 100644
--- a/var/spack/repos/builtin/packages/ruby/package.py
+++ b/var/spack/repos/builtin/packages/ruby/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,14 @@ class Ruby(AutotoolsPackage):
simplicity and productivity."""
homepage = "https://www.ruby-lang.org/"
- url = "http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz"
- list_url = "http://cache.ruby-lang.org/pub/ruby/"
+ url = "https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz"
+ list_url = "https://cache.ruby-lang.org/pub/ruby/"
list_depth = 1
+ version('3.0.2', sha256='5085dee0ad9f06996a8acec7ebea4a8735e6fac22f22e2d98c3f2bc3bef7e6f1')
+ version('3.0.1', sha256='369825db2199f6aeef16b408df6a04ebaddb664fb9af0ec8c686b0ce7ab77727')
+ version('3.0.0', sha256='a13ed141a1c18eb967aac1e33f4d6ad5f21be1ac543c344e0d6feeee54af8e28')
+ version('2.7.2', sha256='6e5706d0d4ee4e1e2f883db9d768586b4d06567debea353c796ec45e8321c3d4')
version('2.7.1', sha256='d418483bdd0000576c1370571121a6eb24582116db0b7bb2005e90e250eae418')
version('2.6.2', sha256='a0405d2bf2c2d2f332033b70dff354d224a864ab0edd462b7a413420453b49ab')
version('2.5.3', sha256='9828d03852c37c20fa333a0264f2490f07338576734d910ee3fd538c9520846c')
@@ -28,9 +32,9 @@ class Ruby(AutotoolsPackage):
depends_on('pkgconfig', type=('build'))
depends_on('libffi')
depends_on('zlib')
- depends_on('libx11')
- depends_on('tcl')
- depends_on('tk')
+ depends_on('libx11', when='@:2.3')
+ depends_on('tcl', when='@:2.3')
+ depends_on('tk', when='@:2.3')
depends_on('openssl@:1.0', when='@:2.3+openssl')
depends_on('openssl', when='+openssl')
depends_on('readline', when='+readline')
@@ -63,7 +67,7 @@ class Ruby(AutotoolsPackage):
return match.group(1) if match else None
def url_for_version(self, version):
- url = "http://cache.ruby-lang.org/pub/ruby/{0}/ruby-{1}.tar.gz"
+ url = "https://cache.ruby-lang.org/pub/ruby/{0}/ruby-{1}.tar.gz"
return url.format(version.up_to(2), version)
def configure_args(self):
@@ -73,7 +77,8 @@ class Ruby(AutotoolsPackage):
if '+readline' in self.spec:
args.append("--with-readline-dir=%s"
% self.spec['readline'].prefix)
- args.append('--with-tk=%s' % self.spec['tk'].prefix)
+ if '^tk' in self.spec:
+ args.append('--with-tk=%s' % self.spec['tk'].prefix)
if self.spec.satisfies("%fj"):
args.append('--disable-dtrace')
return args
@@ -109,7 +114,7 @@ class Ruby(AutotoolsPackage):
""" RubyGems updated their SSL certificates at some point, so
new certificates must be installed after Ruby is installed
in order to download gems; see
- http://guides.rubygems.org/ssl-certificate-update/
+ https://guides.rubygems.org/ssl-certificate-update/
for details.
"""
if self.spec.satisfies("+openssl"):
diff --git a/var/spack/repos/builtin/packages/rust-bindgen/package.py b/var/spack/repos/builtin/packages/rust-bindgen/package.py
index 47563a9064..1993a2d0ad 100644
--- a/var/spack/repos/builtin/packages/rust-bindgen/package.py
+++ b/var/spack/repos/builtin/packages/rust-bindgen/package.py
@@ -1,15 +1,16 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class RustBindgen(Package):
"""The rust programming language toolchain"""
- homepage = "http://www.rust-lang.org"
+ homepage = "https://www.rust-lang.org"
url = "https://github.com/servo/rust-bindgen/archive/v0.20.5.tar.gz"
version('0.20.5', sha256='4f5236e7979d262c43267afba365612b1008b91b8f81d1efc6a8a2199d52bb37')
diff --git a/var/spack/repos/builtin/packages/rust/package.py b/var/spack/repos/builtin/packages/rust/package.py
index 60e1bec023..ca3f6f3394 100644
--- a/var/spack/repos/builtin/packages/rust/package.py
+++ b/var/spack/repos/builtin/packages/rust/package.py
@@ -1,7 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+
+import re
+
from six import iteritems
@@ -62,6 +65,7 @@ class Rust(Package):
depends_on('python@2.7:2.8', when='@:1.43', type='build')
depends_on('gmake@3.81:', type='build')
depends_on('cmake@3.4.3:', type='build')
+ depends_on('ninja', when='@1.48.0:', type='build')
depends_on('pkgconfig', type='build')
depends_on('openssl')
depends_on('libssh2')
@@ -87,6 +91,8 @@ class Rust(Package):
# The `x.py` bootstrapping script did not exist prior to Rust 1.17. It
# would be possible to support both, but for simplicitly, we only support
# Rust 1.17 and newer
+ version('1.51.0', sha256='7a6b9bafc8b3d81bbc566e7c0d1f17c9f499fd22b95142f7ea3a8e4d1f9eb847')
+ version('1.48.0', sha256='0e763e6db47d5d6f91583284d2f989eacc49b84794d1443355b85c58d67ae43b')
version('1.47.0', sha256='3185df064c4747f2c8b9bb8c4468edd58ff4ad6d07880c879ac1b173b768d81d')
version('1.46.0', sha256='2d6a3b7196db474ba3f37b8f5d50a1ecedff00738d7846840605b42bfc922728')
version('1.45.1', sha256='ea53e6424e3d1fe56c6d77a00e72c5d594b509ec920c5a779a7b8e1dbd74219b')
@@ -133,6 +139,18 @@ class Rust(Package):
# This dictionary contains a version: hash dictionary for each supported
# Rust target.
rust_releases = {
+ '1.51.0': {
+ 'x86_64-unknown-linux-gnu': '9e125977aa13f012a68fdc6663629c685745091ae244f0587dd55ea4e3a3e42f',
+ 'powerpc64le-unknown-linux-gnu': '7362f561104d7be4836507d3a53cd39444efcdf065813d559beb1f54ce9f7680',
+ 'aarch64-unknown-linux-gnu': 'fd31c78fffad52c03cac5a7c1ee5db3f34b2a77d7bc862707c0f71e209180a84',
+ 'x86_64-apple-darwin': '765212098a415996b767d1e372ce266caf94027402b269fec33291fffc085ca4'
+ },
+ '1.48.0': {
+ 'x86_64-unknown-linux-gnu': '950420a35b2dd9091f1b93a9ccd5abc026ca7112e667f246b1deb79204e2038b',
+ 'powerpc64le-unknown-linux-gnu': 'e6457a0214f3b1b04bd5b2618bba7e3826e254216420dede2971b571a1c13bb1',
+ 'aarch64-unknown-linux-gnu': 'c4769418d8d89f432e4a3a21ad60f99629e4b13bbfc29aef7d9d51c4e8ee8a8a',
+ 'x86_64-apple-darwin': 'f30ce0162b39dc7cf877020cec64d4826cad50467af493d180b5b28cf5eb50b3'
+ },
'1.47.0': {
'x86_64-unknown-linux-gnu': 'd0e11e1756a072e8e246b05d54593402813d047d12e44df281fbabda91035d96',
'powerpc64le-unknown-linux-gnu': '5760c3b1897ea70791320c2565f3eef700a3d54059027b84bbe6b8d6157f81c8',
@@ -437,14 +455,21 @@ class Rust(Package):
),
sha256=rust_sha256,
destination='spack_bootstrap_stage',
- when='@{version} platform={platform} target={target}'\
- .format(
- version=rust_version,
+ when='@{ver} platform={platform} target={target}'.format(
+ ver=rust_version,
platform=rust_arch['platform'],
target=rust_arch['target']
)
)
+ executables = ['^rustc$']
+
+ @classmethod
+ def determine_version(csl, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ match = re.match(r'rustc (\S+)', output)
+ return match.group(1) if match else None
+
# This routine returns the target architecture we intend to build for.
def get_rust_target(self):
if 'platform=linux' in self.spec or 'platform=cray' in self.spec:
@@ -469,6 +494,14 @@ class Rust(Package):
return '@{0}:'.format(version) in self.spec
+ def patch(self):
+ if self.spec.satisfies('@1.51.0'):
+ # see 31c93397bde7 upstream
+ filter_file('panic!(out);',
+ 'panic!("{}", out);',
+ 'src/bootstrap/builder.rs',
+ string=True)
+
def configure(self, spec, prefix):
target = self.get_rust_target()
@@ -513,7 +546,7 @@ class Rust(Package):
ar = which('ar', required=True)
extra_targets = []
- if self.spec.variants['extra_targets'].value != 'none':
+ if not self.spec.satisfies('extra_targets=none'):
extra_targets = list(self.spec.variants['extra_targets'].value)
targets = [self.get_rust_target()] + extra_targets
diff --git a/var/spack/repos/builtin/packages/sabre/package.py b/var/spack/repos/builtin/packages/sabre/package.py
index 6f7a647154..51911d2940 100644
--- a/var/spack/repos/builtin/packages/sabre/package.py
+++ b/var/spack/repos/builtin/packages/sabre/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/saga-gis/package.py b/var/spack/repos/builtin/packages/saga-gis/package.py
index bb867da786..c659a44e6c 100644
--- a/var/spack/repos/builtin/packages/saga-gis/package.py
+++ b/var/spack/repos/builtin/packages/saga-gis/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sailfish/package.py b/var/spack/repos/builtin/packages/sailfish/package.py
index ea202bb58f..dfd4f40b64 100644
--- a/var/spack/repos/builtin/packages/sailfish/package.py
+++ b/var/spack/repos/builtin/packages/sailfish/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Sailfish(CMakePackage):
"""Sailfish is a tool for transcript quantification from RNA-seq data."""
- homepage = "http://www.cs.cmu.edu/~ckingsf/software/sailfish"
+ homepage = "https://www.cs.cmu.edu/~ckingsf/software/sailfish"
url = "https://github.com/kingsfordgroup/sailfish/archive/v0.10.1.tar.gz"
version('0.10.1', sha256='a0d6d944382f2e07ffbfd0371132588e2f22bb846ecfc3d3435ff3d81b30d6c6')
diff --git a/var/spack/repos/builtin/packages/salmon-tddft/cmakefix.patch b/var/spack/repos/builtin/packages/salmon-tddft/cmakefix.patch
new file mode 100755
index 0000000000..65ff24bdb4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/salmon-tddft/cmakefix.patch
@@ -0,0 +1,108 @@
+diff -ru spack-src.org/cmakefiles/Modules/FindBLACS.cmake spack-src/cmakefiles/Modules/FindBLACS.cmake
+--- spack-src.org/cmakefiles/Modules/FindBLACS.cmake 2020-12-22 17:37:19.960178408 +0900
++++ spack-src/cmakefiles/Modules/FindBLACS.cmake 2020-12-22 17:32:55.395622085 +0900
+@@ -29,7 +29,7 @@
+ # ## List of vendors (BLA_VENDOR) valid in this module
+ # Generic, Intel (MKL)
+
+-set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
++set(_salmon_blacks_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+
+ # Check the language being used
+ if( NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED) )
+@@ -55,7 +55,7 @@
+
+ # TODO: move this stuff to separate module
+
+-macro(Check_Lapack_Libraries LIBRARIES _prefix _name _flags _list _blas _threads)
++macro(salmon_Check_Lapack_Libraries LIBRARIES _prefix _name _flags _list _blas _threads)
+ # This macro checks for the existence of the combination of fortran libraries
+ # given by _list. If the combination is found, this macro checks (using the
+ # Check_Fortran_Function_Exists macro) whether can link against that library
+@@ -170,7 +170,7 @@
+ if (BLA_VENDOR STREQUAL "Generic" OR
+ BLA_VENDOR STREQUAL "All")
+ if ( NOT BLACS_LIBRARIES )
+- check_lapack_libraries(
++ salmon_check_lapack_libraries(
+ BLACS_LIBRARIES
+ BLACS
+ pcheevx
+@@ -215,7 +215,7 @@
+
+ # First try empty lapack libs
+ if (NOT ${_LIBRARIES})
+- check_lapack_libraries(
++ salmon_check_lapack_libraries(
+ ${_LIBRARIES}
+ BLACS
+ ${BLACS_mkl_SEARCH_SYMBOL}
+@@ -228,7 +228,7 @@
+ # Then try the search libs
+ foreach (IT ${BLACS_SEARCH_LIBS})
+ if (NOT ${_LIBRARIES})
+- check_lapack_libraries(
++ salmon_check_lapack_libraries(
+ ${_LIBRARIES}
+ BLACS
+ ${BLACS_mkl_SEARCH_SYMBOL}
+@@ -268,4 +268,4 @@
+ endif()
+
+ cmake_pop_check_state()
+-set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
++set(CMAKE_FIND_LIBRARY_SUFFIXES ${_salmon_blacks_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
+diff -ru spack-src.org/cmakefiles/Modules/FindScaLAPACK.cmake spack-src/cmakefiles/Modules/FindScaLAPACK.cmake
+--- spack-src.org/cmakefiles/Modules/FindScaLAPACK.cmake 2020-12-22 17:37:19.965178229 +0900
++++ spack-src/cmakefiles/Modules/FindScaLAPACK.cmake 2020-12-22 17:33:39.365051770 +0900
+@@ -29,7 +29,7 @@
+ # ## List of vendors (BLA_VENDOR) valid in this module
+ # Generic, Intel (MKL)
+
+-set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
++set(_salmon_scalapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
+
+ # Check the language being used
+ if( NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED) )
+@@ -55,7 +55,7 @@
+
+ # TODO: move this stuff to separate module
+
+-macro(Check_Lapack_Libraries LIBRARIES _prefix _name _flags _list _blas _threads)
++macro(salmon_Check_Lapack_Libraries LIBRARIES _prefix _name _flags _list _blas _threads)
+ # This macro checks for the existence of the combination of fortran libraries
+ # given by _list. If the combination is found, this macro checks (using the
+ # Check_Fortran_Function_Exists macro) whether can link against that library
+@@ -161,7 +161,7 @@
+ if (BLA_VENDOR STREQUAL "Generic" OR
+ BLA_VENDOR STREQUAL "All")
+ if ( NOT ScaLAPACK_LIBRARIES )
+- check_lapack_libraries(
++ salmon_check_lapack_libraries(
+ ScaLAPACK_LIBRARIES
+ ScaLAPACK
+ pcheevx
+@@ -202,7 +202,7 @@
+
+ # First try empty lapack libs
+ if (NOT ${_LIBRARIES})
+- check_lapack_libraries(
++ salmon_check_lapack_libraries(
+ ${_LIBRARIES}
+ ScaLAPACK
+ ${ScaLAPACK_mkl_SEARCH_SYMBOL}
+@@ -215,7 +215,7 @@
+ # Then try the search libs
+ foreach (IT ${ScaLAPACK_SEARCH_LIBS})
+ if (NOT ${_LIBRARIES})
+- check_lapack_libraries(
++ salmon_check_lapack_libraries(
+ ${_LIBRARIES}
+ ScaLAPACK
+ ${ScaLAPACK_mkl_SEARCH_SYMBOL}
+@@ -255,4 +255,4 @@
+ endif()
+
+ cmake_pop_check_state()
+-set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
++set(CMAKE_FIND_LIBRARY_SUFFIXES ${_salmon_scalapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/var/spack/repos/builtin/packages/salmon-tddft/fjmpi.patch b/var/spack/repos/builtin/packages/salmon-tddft/fjmpi.patch
new file mode 100755
index 0000000000..3208d150e8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/salmon-tddft/fjmpi.patch
@@ -0,0 +1,67 @@
+--- spack-src.org/CMakeLists.txt 2020-07-21 12:08:53.000000000 +0900
++++ spack-src/CMakeLists.txt 2020-12-23 11:32:57.147128677 +0900
+@@ -38,6 +38,7 @@
+ option_set(USE_SCALAPACK "Use ScaLAPACK Library" OFF)
+ option_set(USE_EIGENEXA "Use EigenExa Library" OFF)
+ option_set(USE_LIBXC "Use Libxc library" OFF)
++option_set(USE_FJMPI "Use FUJITSU MPI" OFF)
+
+ ## Optimization for stencil compitations
+ option_set(USE_OPT_DOMAIN_IS_POW2 "Enable whether the opimization assumes that a stencil domain size is power of two" OFF)
+--- spack-src.org/src/config.h.in 2020-07-21 12:08:53.000000000 +0900
++++ spack-src/src/config.h.in 2020-12-23 11:48:48.384061907 +0900
+@@ -15,6 +15,7 @@
+ #cmakedefine SYSTEM_HAS_PATH_MAX_IN_LINUX_LIMITS_H
+
+ #cmakedefine USE_MPI
++#cmakedefine USE_FJMPI
+ #cmakedefine USE_SCALAPACK
+ #cmakedefine USE_EIGENEXA
+ #cmakedefine USE_LIBXC
+diff -ru spack-src.org/src/parallel/init_communicator.f90 spack-src/src/parallel/init_communicator.f90
+--- spack-src.org/src/parallel/init_communicator.f90 2020-07-21 12:08:53.000000000 +0900
++++ spack-src/src/parallel/init_communicator.f90 2020-12-23 11:50:58.997384260 +0900
+@@ -13,6 +13,7 @@
+ ! See the License for the specific language governing permissions and
+ ! limitations under the License.
+ !
++#include "config.h"
+ MODULE init_communicator
+ implicit none
+
+@@ -35,7 +36,7 @@
+ integer :: i1,i2,i3,i4,i5,ix,iy,iz,nl
+ integer,allocatable :: iranklists(:)
+
+-#ifdef __FUJITSU
++#ifdef USE_FJMPI
+ integer :: iret
+ #endif
+
+@@ -59,7 +60,7 @@
+ 0:nproc_k-1))
+
+ ! communicator r,o,k,ro,ko
+-#ifdef __FUJITSU
++#ifdef USE_FJMPI
+ call tofu_network_oriented_mapping(iret)
+ if (iret < 0) then
+ if (comm_is_root(info%id_rko)) then
+@@ -106,7 +107,7 @@
+
+ if (nl /= info%isize_rko-1) &
+ stop '[FATAL ERROR] init_communicator_dft'
+-#ifdef __FUJITSU
++#ifdef USE_FJMPI
+ end if
+ #endif
+
+@@ -234,7 +235,7 @@
+ info%icomm_xy = comm_create_group_byid(comm, iranklists(1:nl))
+ call comm_get_groupinfo(info%icomm_xy, info%id_xy, info%isize_xy)
+
+-#ifdef __FUJITSU
++#ifdef USE_FJMPI
+ contains
+ subroutine tofu_network_oriented_mapping(iret)
+ use mpi_ext
diff --git a/var/spack/repos/builtin/packages/salmon-tddft/package.py b/var/spack/repos/builtin/packages/salmon-tddft/package.py
new file mode 100755
index 0000000000..ea5e887bb2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/salmon-tddft/package.py
@@ -0,0 +1,98 @@
+# Copyright 2013-2021 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 SalmonTddft(CMakePackage):
+ """SALMON is an open-source computer program for ab-initio
+ quantum-mechanical calculations of electron dynamics at the nanoscale
+ that takes place in various situations of light-matter interactions.
+ It is based on time-dependent density functional theory, solving
+ time-dependent Kohn-Sham equation in real time and real space
+ with norm-conserving pseudopotentials."""
+
+ homepage = "https://salmon-tddft.jp"
+ url = "https://salmon-tddft.jp/download/SALMON-v.2.0.0.tar.gz"
+
+ version('2.0.0', sha256='c3bb80bc5d338cba21cd8f345acbf2f2d81ef75af069a0a0ddbdc0acf358456c')
+ version('1.2.1', sha256='a5045149e49abe9dd9edefe00cd1508a1323081bc3d034632176b728effdbaeb')
+
+ variant('mpi', default=False, description='Enable MPI')
+ variant('libxc', default=False, description='Enable libxc')
+ variant('scalapack', default=False, description='Enable scalapack')
+ variant('eigenexa', default=False, description='Enable eigenexa')
+ variant(
+ 'manycore', default=False,
+ description='Enable optimization of reduction for many-core processor'
+ )
+ variant(
+ 'current_processing', default=False,
+ description='Enable preprocessing of the current computation in RT'
+ )
+
+ depends_on('cmake@3.14:', type='build')
+ depends_on('mpi', type='link', when='+mpi')
+ depends_on('scalapack', type='link', when='+scalapack')
+ depends_on('eigenexa', type='link', when='+eigenexa')
+ depends_on('lapack', type='link')
+ depends_on('libxc', type='link', when='+libxc')
+ depends_on('libxc@:4.9', type='link', when='@:1.9.9 +libxc')
+
+ conflicts('+scalapack', when='~mpi')
+ conflicts('+eigenexa', when='@:1.9.9')
+ conflicts('+eigenexa', when='~scalapack')
+ conflicts('+manycore', when='@2.0.0:')
+ conflicts('+current_processing', when='@2.0.0:')
+
+ patch('fjmpi.patch', when='@2.0.0: %fj')
+ patch('v2.0.libxc-5.0.patch', when='@2.0.0 +libxc')
+ patch('cmakefix.patch', when='+scalapack')
+
+ def cmake_args(self):
+ define_from_variant = self.define_from_variant
+ spec = self.spec
+ define = self.define
+ args = [
+ define_from_variant('USE_SCALAPACK', 'scalapack'),
+ define_from_variant('USE_EIGENEXA', 'eigenexa'),
+ define_from_variant('USE_MPI', 'mpi'),
+ define_from_variant('USE_LIBXC', 'libxc'),
+ define_from_variant('REDUCE_FOR_MANYCORE', 'manycore'),
+ define_from_variant('CURRENT_PREPROCESSING', 'current_processing')
+ ]
+ if spec.satisfies('+mpi'):
+ args.extend([
+ define('CMAKE_C_COMPILER', spec['mpi'].mpicc),
+ define('CMAKE_Fortran_COMPILER', spec['mpi'].mpifc),
+ ])
+ if spec.satisfies('+scalapack'):
+ math_libs = spec['scalapack'].libs + \
+ spec['lapack'].libs + spec['blas'].libs
+ if spec.satisfies('@2.0:'):
+ args.append(define('ScaLAPACK_VENDOR_FLAGS',
+ math_libs.ld_flags))
+ else:
+ args.extend([
+ define('BLACS_LINKER_FLAGS', math_libs.ld_flags),
+ define('BLACS_LIBRARIES', math_libs.libraries),
+ define('ScaLAPACK_LINKER_FLAGS', math_libs.ld_flags),
+ define('ScaLAPACK_LIBRARIES', math_libs.libraries)
+ ])
+ if spec.satisfies('^fujitsu-mpi'):
+ args.append(define('USE_FJMPI', True))
+ else:
+ args.append(define('USE_FJMPI', False))
+ if spec.satisfies('%fj'):
+ args.append(self.define('CMAKE_Fortran_MODDIR_FLAG', '-M'))
+ return args
+
+ def flag_handler(self, name, flags):
+ flags = list(flags)
+ if name == 'fflags':
+ if self.spec.satisfies('%gcc'):
+ flags.append('-ffree-line-length-none')
+ return (None, None, flags)
diff --git a/var/spack/repos/builtin/packages/salmon-tddft/v2.0.libxc-5.0.patch b/var/spack/repos/builtin/packages/salmon-tddft/v2.0.libxc-5.0.patch
new file mode 100755
index 0000000000..956eb93da4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/salmon-tddft/v2.0.libxc-5.0.patch
@@ -0,0 +1,312 @@
+diff -ru spack-src.org/src/common/structures.f90 spack-src/src/common/structures.f90
+--- spack-src.org/src/common/structures.f90 2020-07-21 12:08:53.000000000 +0900
++++ spack-src/src/common/structures.f90 2020-12-23 09:15:16.693976332 +0900
+@@ -26,6 +26,8 @@
+ #ifdef USE_LIBXC
+ #if XC_MAJOR_VERSION <= 4
+ use xc_f90_types_m
++#else
++ use iso_c_binding
+ #endif
+ use xc_f90_lib_m
+ #endif
+diff -ru spack-src.org/src/xc/builtin_pbe.f90 spack-src/src/xc/builtin_pbe.f90
+--- spack-src.org/src/xc/builtin_pbe.f90 2020-07-21 12:08:53.000000000 +0900
++++ spack-src/src/xc/builtin_pbe.f90 2020-12-23 09:15:16.701976046 +0900
+@@ -14,17 +14,34 @@
+ ! limitations under the License.
+ !
+ !-----------------------------------------------------------------------------------------
++#include "config.h"
++#ifdef USE_LIBXC
++#include "xc_version.h"
++#endif
+ module builtin_pbe
+ use salmon_math, only: erfc_salmon
++#ifdef USE_LIBXC
++#if XC_MAJOR_VERSION >= 5
++ use iso_c_binding
++#endif
++#endif
+ implicit none
+-
++
+ real(8),parameter :: Pi=3.141592653589793d0
+
+ contains
+
+ subroutine exc_cor_pbe(nl, rho, grho_s, exc, eexc, vexc, nd, ifdx, ifdy, ifdz, nabx, naby, nabz)
+ implicit none
++#ifdef USE_LIBXC
++#if XC_MAJOR_VERSION >= 5
++ integer(c_size_t), intent(in) :: nl
++#else
++ integer, intent(in) :: nl
++#endif
++#else
+ integer, intent(in) :: nl
++#endif
+ real(8), intent(in) :: rho(nl), grho_s(nl, 3)
+ real(8), intent(out) :: exc(nl), eexc(nl), vexc(nl)
+ integer, intent(in) :: nd
+diff -ru spack-src.org/src/xc/builtin_pz.f90 spack-src/src/xc/builtin_pz.f90
+--- spack-src.org/src/xc/builtin_pz.f90 2020-07-21 12:08:53.000000000 +0900
++++ spack-src/src/xc/builtin_pz.f90 2020-12-23 09:15:16.709975759 +0900
+@@ -14,15 +14,28 @@
+ ! limitations under the License.
+ !
+ !-----------------------------------------------------------------------------------------
++#include "config.h"
++#ifdef USE_LIBXC
++#include "xc_version.h"
++#endif
++
+ module builtin_pz
++#if XC_MAJOR_VERSION >= 5
++ use iso_c_binding
++#endif
+ implicit none
++
+
+ contains
+
+
+ subroutine exc_cor_pz(nl, rho_s, exc, eexc, vexc)
+ implicit none
++#if XC_MAJOR_VERSION >= 5
++ integer(c_size_t), intent(in) :: nl
++#else
+ integer, intent(in) :: nl
++#endif
+ real(8), intent(in) :: rho_s(nl)
+ real(8), intent(out) :: exc(nl), eexc(nl), vexc(nl)
+ integer :: i
+diff -ru spack-src.org/src/xc/builtin_pz_sp.f90 spack-src/src/xc/builtin_pz_sp.f90
+--- spack-src.org/src/xc/builtin_pz_sp.f90 2020-07-21 12:08:53.000000000 +0900
++++ spack-src/src/xc/builtin_pz_sp.f90 2020-12-23 09:15:16.717975473 +0900
+@@ -14,7 +14,16 @@
+ ! limitations under the License.
+ !
+ !-----------------------------------------------------------------------------------------
++#include "config.h"
++#ifdef USE_LIBXC
++#include "xc_version.h"
++#endif
+ module builtin_pz_sp
++#ifdef USE_LIBXC
++#if XC_MAJOR_VERSION >= 5
++ use iso_c_binding
++#endif
++#endif
+ implicit none
+
+ contains
+@@ -22,7 +31,15 @@
+
+ subroutine exc_cor_pz_sp(nl, rho_s, exc, eexc, vexc_s)
+ implicit none
++#ifdef USE_LIBXC
++#if XC_MAJOR_VERSION >= 5
++ integer(c_size_t), intent(in) :: nl
++#else
+ integer, intent(in) :: nl
++#endif
++#else
++ integer, intent(in) :: nl
++#endif
+ real(8), intent(in) :: rho_s(nl,2)
+ real(8), intent(out) :: exc(nl), eexc(nl), vexc_s(nl,2)
+ integer :: i
+diff -ru spack-src.org/src/xc/builtin_pzm.f90 spack-src/src/xc/builtin_pzm.f90
+--- spack-src.org/src/xc/builtin_pzm.f90 2020-07-21 12:08:53.000000000 +0900
++++ spack-src/src/xc/builtin_pzm.f90 2020-12-23 09:15:16.722975294 +0900
+@@ -14,14 +14,31 @@
+ ! limitations under the License.
+ !
+ !-----------------------------------------------------------------------------------------
++#include "config.h"
++#ifdef USE_LIBXC
++#include "xc_version.h"
++#endif
+ module builtin_pzm
++#ifdef USE_LIBXC
++#if XC_MAJOR_VERSION >= 5
++ use iso_c_binding
++#endif
++#endif
+ implicit none
+
+ contains
+
+ subroutine exc_cor_pzm(nl, rho_s, exc, eexc, vexc)
+ implicit none
++#ifdef USE_LIBXC
++#if XC_MAJOR_VERSION >= 5
++ integer(c_size_t), intent(in) :: nl
++#else
+ integer, intent(in) :: nl
++#endif
++#else
++ integer, intent(in) :: nl
++#endif
+ real(8), intent(in) :: rho_s(nl)
+ real(8), intent(out) :: exc(nl), eexc(nl), vexc(nl)
+ integer :: i
+diff -ru spack-src.org/src/xc/builtin_tbmbj.f90 spack-src/src/xc/builtin_tbmbj.f90
+--- spack-src.org/src/xc/builtin_tbmbj.f90 2020-07-21 12:08:53.000000000 +0900
++++ spack-src/src/xc/builtin_tbmbj.f90 2020-12-23 09:15:16.725975186 +0900
+@@ -14,7 +14,15 @@
+ ! limitations under the License.
+ !
+ !-----------------------------------------------------------------------------------------
++#include "config.h"
++#ifdef USE_LIBXC
++#include "xc_version.h"
++#endif
++
+ module builtin_tbmbj
++#if XC_MAJOR_VERSION >= 5
++ use iso_c_binding
++#endif
+ use salmon_math, only: erfc_salmon
+ implicit none
+
+@@ -27,7 +35,12 @@
+ subroutine exc_cor_tbmbj(nl, rho, rho_s, grho_s, lrho_s, tau_s, j_s, cval, eexc, vexc)
+ !subroutine exc_cor_tbmbj(nl, rho, rho_s, grho_s, lrho_s, tau_s, j_s, cval, eexc, vexc, Hxyz, aLxyz)
+ implicit none
++
++#if XC_MAJOR_VERSION >= 5
++ integer(c_size_t), intent(in) :: nl
++#else
+ integer, intent(in) :: nl
++#endif
+ real(8), intent(in) :: rho(nl), rho_s(nl)
+ real(8), intent(in) :: grho_s(nl, 3), lrho_s(nl), tau_s(nl), j_s(nl, 3)
+ real(8), intent(in) :: cval
+diff -ru spack-src.org/src/xc/salmon_xc.f90 spack-src/src/xc/salmon_xc.f90
+--- spack-src.org/src/xc/salmon_xc.f90 2020-07-21 12:08:53.000000000 +0900
++++ spack-src/src/xc/salmon_xc.f90 2020-12-23 09:29:58.603384238 +0900
+@@ -32,6 +32,8 @@
+ #ifdef USE_LIBXC
+ #if XC_MAJOR_VERSION <= 4
+ use xc_f90_types_m
++#else
++ use iso_c_binding
+ #endif
+ use xc_f90_lib_m
+ #endif
+@@ -631,7 +633,15 @@
+ ! real(8), intent(in), optional :: aLxyz
+ !===============================================================
+
++#ifdef USE_LIBXC
++#if XC_MAJOR_VERSION <= 4
++ integer :: nx, ny, nz, nl
++#else
++ integer(c_size_t) :: nx, ny, nz, nl
++#endif
++#else
+ integer :: nx, ny, nz, nl
++#endif
+
+ ! Detect size of 3-dimensional grid
+ if (xc%ispin == 0) then
+@@ -699,9 +709,9 @@
+ real(8) :: vexc_sp_1d(nl,2)
+
+ if (xc%ispin == 0) then
+- rho_s_1d = reshape(rho, (/nl/)) * 0.5
++ rho_s_1d = reshape(rho, (/int(nl)/)) * 0.5
+ else if (xc%ispin == 1) then
+- rho_s_sp_1d = reshape(rho_s, (/nl,2/))
++ rho_s_sp_1d = reshape(rho_s, (/int(nl),2/))
+ end if
+
+ #ifndef SALMON_DEBUG_NEGLECT_NLCC
+@@ -723,20 +733,20 @@
+
+ if (xc%ispin == 0) then
+ if (present(vxc)) then
+- vxc = vxc + reshape(vexc_1d, (/nx, ny, nz/))
++ vxc = vxc + reshape(vexc_1d, (/int(nx), int(ny), int(nz)/))
+ endif
+ else if(xc%ispin == 1) then
+ if (present(vxc_s)) then
+- vxc_s = vxc_s + reshape(vexc_sp_1d, (/nx, ny, nz,2/))
++ vxc_s = vxc_s + reshape(vexc_sp_1d, (/int(nx), int(ny), int(nz),2/))
+ endif
+ end if
+
+ if (present(exc)) then
+- exc = exc + reshape(exc_1d, (/nx, ny, nz/))
++ exc = exc + reshape(exc_1d, (/int(nx), int(ny), int(nz)/))
+ endif
+
+ if (present(eexc)) then
+- eexc = eexc + reshape(eexc_1d, (/nx, ny, nz/))
++ eexc = eexc + reshape(eexc_1d, (/int(nx), int(ny), int(nz)/))
+ endif
+
+ return
+@@ -786,22 +796,22 @@
+ real(8) :: eexc_1d(nl)
+ real(8) :: vexc_1d(nl)
+
+- rho_1d = reshape(rho, (/nl/))
+- grho_s_1d = reshape(grho(:, :, :, :), (/nl, 3/)) * 0.5
++ rho_1d = reshape(rho, (/int(nl)/))
++ grho_s_1d = reshape(grho(:, :, :, :), (/int(nl), 3/)) * 0.5
+
+ call exc_cor_pbe(nl, rho_1d, grho_s_1d, exc_1d, eexc_1d, vexc_1d, &
+ & nd, ifdx, ifdy, ifdz, nabx, naby, nabz)
+
+ if (present(vxc)) then
+- vxc = vxc + reshape(vexc_1d, (/nx, ny, nz/))
++ vxc = vxc + reshape(vexc_1d, (/int(nx), int(ny), int(nz)/))
+ endif
+
+ if (present(exc)) then
+- exc = exc + reshape(exc_1d, (/nx, ny, nz/))
++ exc = exc + reshape(exc_1d, (/int(nx), int(ny), int(nz)/))
+ endif
+
+ if (present(eexc)) then
+- eexc = eexc + reshape(eexc_1d, (/nx, ny, nz/))
++ eexc = eexc + reshape(eexc_1d, (/int(nx), int(ny), int(nz)/))
+ endif
+
+ return
+@@ -828,25 +838,25 @@
+ endif
+ #endif
+
+- grho_s_1d = reshape(grho(:, :, :, :), (/nl, 3/)) * 0.5
+- rlrho_s_1d = reshape(rlrho(:, :, :), (/nl/)) * 0.5
+- tau_s_1d = reshape(tau(:, :, :), (/nl/)) * 0.5
+- j_s_1d = reshape(rj(:, :, :, :), (/nl, 3/)) * 0.5
++ grho_s_1d = reshape(grho(:, :, :, :), (/int(nl), 3/)) * 0.5
++ rlrho_s_1d = reshape(rlrho(:, :, :), (/int(nl)/)) * 0.5
++ tau_s_1d = reshape(tau(:, :, :), (/int(nl)/)) * 0.5
++ j_s_1d = reshape(rj(:, :, :, :), (/int(nl), 3/)) * 0.5
+
+ !call exc_cor_tbmbj(nl, rho_1d, rho_s_1d, grho_s_1d, rlrho_s_1d, tau_s_1d, j_s_1d, xc%cval, eexc_1d, vexc_1d, Hxyz, aLxyz)
+ call exc_cor_tbmbj(nl, rho_1d, rho_s_1d, grho_s_1d, rlrho_s_1d, tau_s_1d, j_s_1d, xc%cval, eexc_1d, vexc_1d)
+
+ if (present(vxc)) then
+- vxc = vxc + reshape(vexc_1d, (/nx, ny, nz/))
++ vxc = vxc + reshape(vexc_1d, (/int(nx), int(ny), int(nz)/))
+ endif
+
+ if (present(exc)) then
+ ! NOTE: Take care for "zero-division error"
+- exc = exc + reshape(eexc_1d, (/nx, ny, nz/)) / rho
++ exc = exc + reshape(eexc_1d, (/int(nx), int(ny), int(nz)/)) / rho
+ endif
+
+ if (present(eexc)) then
+- eexc = eexc + reshape(eexc_1d, (/nx, ny, nz/))
++ eexc = eexc + reshape(eexc_1d, (/int(nx), int(ny), int(nz)/))
+ endif
+
+ return
diff --git a/var/spack/repos/builtin/packages/salmon/package.py b/var/spack/repos/builtin/packages/salmon/package.py
index c75450eb4a..0a6388b34a 100644
--- a/var/spack/repos/builtin/packages/salmon/package.py
+++ b/var/spack/repos/builtin/packages/salmon/package.py
@@ -1,34 +1,90 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Salmon(CMakePackage):
"""Salmon is a tool for quantifying the expression of transcripts using
RNA-seq data."""
- homepage = "http://combine-lab.github.io/salmon/"
+ homepage = "https://combine-lab.github.io/salmon/"
url = "https://github.com/COMBINE-lab/salmon/archive/v0.8.2.tar.gz"
+ version('1.4.0', sha256='6d3e25387450710f0aa779a1e9aaa9b4dec842324ff8551d66962d7c7606e71d')
version('0.14.1', sha256='05289170e69b5f291a8403b40d6b9bff54cc38825e9f721c210192b51a19273e')
version('0.12.0', sha256='91ebd1efc5b0b4c12ec6babecf3c0b79f7102e42b8895ca07c8c8fea869fefa3')
version('0.9.1', sha256='3a32c28d217f8f0af411c77c04144b1fa4e6fd3c2f676661cc875123e4f53520')
version('0.8.2', sha256='299168e873e71e9b07d63a84ae0b0c41b0876d1ad1d434b326a5be2dce7c4b91')
- depends_on('tbb')
- depends_on('boost@:1.66.0')
+ variant('build_type', default='RELEASE',
+ description='CMake build type',
+ values=('DEBUG', 'RELEASE'))
+ depends_on('tbb')
+ depends_on('boost@:1.66.0', when='@:0.14.1')
+ depends_on('boost@1.72.0:', when='@1.4.0:')
+ depends_on('cereal')
+ depends_on('jemalloc')
+ depends_on('xz')
+ depends_on('zlib')
+ depends_on('bzip2')
+ depends_on('libdivsufsort')
+ depends_on('staden-io-lib~curl')
+ depends_on('libgff')
+ depends_on('pkgconfig')
depends_on('curl', when='@0.14.1:')
conflicts('%gcc@:5.1', when='@0.14.1:')
+ resources = [
+ ('1.4.0', 'pufferfish', '059207e8d3134060ed70595e53f4189954c9e5edfaa6361b46304f55d1b71bc7'),
+ ('0.14.1', 'RapMap', 'fabac2f360513b803aa3567415eddcd97261ab8a23d4f600af5f98ee8ffd944b'),
+ ('0.12.0', 'RapMap', '05102c0bbc8a0c0056a01cd0e8788fa5b504aee58ac226ab8c0e3ffec8019790'),
+ ('0.9.1', 'RapMap', '8975e5a1ed61ed9354ba776272927545f417ecdce95823e71ba1e7b61de7d380'),
+ ('0.8.2', 'RapMap', '1691f4bca2b604f05f36772ae45faf0842ab4809843df770bd10366a5cfd6822'),
+ ]
+
+ for ver, repo, checksum in resources:
+ resource(name='rapmap',
+ url='https://github.com/COMBINE-lab/{0}/archive/salmon-v{1}.zip'.format(repo, ver),
+ sha256=checksum,
+ placement='external',
+ expand=False,
+ when='@{0}'.format(ver))
+
def patch(self):
# remove static linking to libstdc++
filter_file('-static-libstdc++', '', 'CMakeLists.txt', string=True)
+ if self.spec.satisfies('@0.8.2:0.9.1'):
+ filter_file('${FAST_MALLOC_LIB}',
+ '${FAST_MALLOC_LIB}\n'
+ '${CMAKE_DL_LIBS}',
+ 'src/CMakeLists.txt',
+ string=True)
+
+ if self.spec.satisfies('@:0.14.1'):
+ filter_file('curl -k.*',
+ '',
+ 'scripts/fetchRapMap.sh')
+ symlink('./salmon-v{0}.zip'.format(self.version),
+ './external/rapmap.zip')
+
+ if self.spec.satisfies('@1.4.0:'):
+ filter_file('curl -k.*',
+ '',
+ 'scripts/fetchPufferfish.sh')
+ symlink('./salmon-v{0}.zip'.format(self.version),
+ './external/pufferfish.zip')
+ # Fix issues related to lto-wrapper during install
+ filter_file('INTERPROCEDURAL_OPTIMIZATION True',
+ 'INTERPROCEDURAL_OPTIMIZATION False',
+ 'src/CMakeLists.txt', string=True)
+ filter_file('curl -k.*', '', 'scripts/fetchPufferfish.sh')
def cmake_args(self):
- args = ['-DBOOST_ROOT=%s' % self.spec['boost'].prefix]
+ args = [
+ '-DBOOST_ROOT=%s' % self.spec['boost'].prefix,
+ ]
+
return args
diff --git a/var/spack/repos/builtin/packages/sambamba/package.py b/var/spack/repos/builtin/packages/sambamba/package.py
index 72e318baf6..a337cddd90 100644
--- a/var/spack/repos/builtin/packages/sambamba/package.py
+++ b/var/spack/repos/builtin/packages/sambamba/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Sambamba(Package):
"""Sambamba: process your BAM data faster (bioinformatics)"""
- homepage = "http://lomereiter.github.io/sambamba/"
+ homepage = "https://lomereiter.github.io/sambamba/"
git = "https://github.com/lomereiter/sambamba.git"
version('0.6.6', tag='v0.6.6', submodules=True)
diff --git a/var/spack/repos/builtin/packages/samblaster/package.py b/var/spack/repos/builtin/packages/samblaster/package.py
index 9c87c4b7b9..3dcb2bd1fe 100644
--- a/var/spack/repos/builtin/packages/samblaster/package.py
+++ b/var/spack/repos/builtin/packages/samblaster/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/samrai/package.py b/var/spack/repos/builtin/packages/samrai/package.py
index 358aa884f0..44ea581fd7 100644
--- a/var/spack/repos/builtin/packages/samrai/package.py
+++ b/var/spack/repos/builtin/packages/samrai/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/samtools/package.py b/var/spack/repos/builtin/packages/samtools/package.py
index 54a171cac5..58bf1823f8 100644
--- a/var/spack/repos/builtin/packages/samtools/package.py
+++ b/var/spack/repos/builtin/packages/samtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,11 @@ class Samtools(Package):
the SAM format, including sorting, merging, indexing and generating
alignments in a per-position format"""
- homepage = "http://www.htslib.org"
- url = "https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2"
+ homepage = "https://www.htslib.org"
+ url = "https://github.com/samtools/samtools/releases/download/1.13/samtools-1.13.tar.bz2"
+ version('1.13', sha256='616ca2e051cc8009a1e9c01cfd8c7caf8b70916ddff66f3b76914079465f8c60')
+ version('1.12', sha256='6da3770563b1c545ca8bdf78cf535e6d1753d6383983c7929245d5dba2902dcb')
version('1.10', sha256='7b9ec5f05d61ec17bd9a82927e45d8ef37f813f79eb03fe06c88377f1bd03585')
version('1.9', sha256='083f688d7070082411c72c27372104ed472ed7a620591d06f928e653ebc23482')
version('1.8', sha256='c942bc1d9b85fd1b05ea79c5afd2805d489cd36b2c2d8517462682a4d779be16')
@@ -32,6 +34,9 @@ class Samtools(Package):
depends_on('python', type='run')
# htslib became standalone @1.3.1, must use corresponding version
+ depends_on('htslib@1.13', when='@1.13')
+ depends_on('htslib@1.12', when='@1.12')
+ depends_on('htslib@1.11', when='@1.11')
depends_on('htslib@1.10.2', when='@1.10')
depends_on('htslib@1.9', when='@1.9')
depends_on('htslib@1.8', when='@1.8')
diff --git a/var/spack/repos/builtin/packages/sandbox/package.py b/var/spack/repos/builtin/packages/sandbox/package.py
index b512e9fae9..bdedde0827 100644
--- a/var/spack/repos/builtin/packages/sandbox/package.py
+++ b/var/spack/repos/builtin/packages/sandbox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,3 +13,5 @@ class Sandbox(AutotoolsPackage):
url = "https://dev.gentoo.org/~mgorny/dist/sandbox-2.12.tar.xz"
version('2.12', sha256='265a490a8c528237c55ad26dfd7f62336fa5727c82358fc9cfbaa2e52c47fc50')
+
+ depends_on('gawk', type='build')
diff --git a/var/spack/repos/builtin/packages/satsuma2/package.py b/var/spack/repos/builtin/packages/satsuma2/package.py
index 8d1e0eea29..9216e0f3bc 100644
--- a/var/spack/repos/builtin/packages/satsuma2/package.py
+++ b/var/spack/repos/builtin/packages/satsuma2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,4 +19,4 @@ class Satsuma2(CMakePackage):
version('2016-11-22', commit='da694aeecf352e344b790bea4a7aaa529f5b69e6')
def install(self, spec, prefix):
- install_tree(join_path('spack-build', 'bin'), prefix.bin)
+ install_tree(join_path(self.build_directory, 'bin'), prefix.bin)
diff --git a/var/spack/repos/builtin/packages/savanna/package.py b/var/spack/repos/builtin/packages/savanna/package.py
index 37da8bd766..b71eba4238 100644
--- a/var/spack/repos/builtin/packages/savanna/package.py
+++ b/var/spack/repos/builtin/packages/savanna/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/saws/package.py b/var/spack/repos/builtin/packages/saws/package.py
index 41a117227f..22441d4b95 100644
--- a/var/spack/repos/builtin/packages/saws/package.py
+++ b/var/spack/repos/builtin/packages/saws/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sblim-sfcc/package.py b/var/spack/repos/builtin/packages/sblim-sfcc/package.py
index e8eb78a2ea..79cc3ae7fd 100644
--- a/var/spack/repos/builtin/packages/sblim-sfcc/package.py
+++ b/var/spack/repos/builtin/packages/sblim-sfcc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class SblimSfcc(AutotoolsPackage):
"""Small Footprint CIM Client Library"""
- homepage = "http://sourceforge.net/projects/sblim"
+ homepage = "https://sourceforge.net/projects/sblim"
url = "https://github.com/kkaempf/sblim-sfcc/archive/SFCC_2_2_1.tar.gz"
version('2_2_8', sha256='d8d0bf06a487483df507f512ddf0c7b2c1b878a1c9b039bf5c2357c4ba13b882')
diff --git a/var/spack/repos/builtin/packages/sbml/package.py b/var/spack/repos/builtin/packages/sbml/package.py
index e1cae0af23..c44a5dd4a6 100644
--- a/var/spack/repos/builtin/packages/sbml/package.py
+++ b/var/spack/repos/builtin/packages/sbml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sbp/package.py b/var/spack/repos/builtin/packages/sbp/package.py
new file mode 100644
index 0000000000..cc031f7f99
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sbp/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 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 Sbp(CMakePackage):
+ """Library providing an API for Piksi GNSS devices."""
+
+ homepage = 'https://github.com/swift-nav/libsbp'
+ git = 'https://github.com/swift-nav/libsbp'
+
+ maintainers = ['jayvdb']
+
+ version('3.4.10', tag='v3.4.10', submodules=True)
+
+ root_cmakelists_dir = 'c'
+
+ def cmake_args(self):
+ args = [
+ self.define('BUILD_SHARED_LIBS', 'ON'),
+ self.define('libsbp_ENABLE_TESTS', 'OFF'),
+ self.define('libsbp_ENABLE_DOCS', 'OFF'),
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/sbt/package.py b/var/spack/repos/builtin/packages/sbt/package.py
index 63484249da..9b68d95e62 100644
--- a/var/spack/repos/builtin/packages/sbt/package.py
+++ b/var/spack/repos/builtin/packages/sbt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Sbt(Package):
"""Scala Build Tool"""
- homepage = 'http://www.scala-sbt.org'
+ homepage = 'https://www.scala-sbt.org'
url = "https://github.com/sbt/sbt/releases/download/v1.1.4/sbt-1.1.4.tgz"
version('1.1.6', sha256='f545b530884e3abbca026df08df33d5a15892e6d98da5b8c2297413d1c7b68c1')
diff --git a/var/spack/repos/builtin/packages/scala/package.py b/var/spack/repos/builtin/packages/scala/package.py
index a5226af1cf..a87a3683f0 100644
--- a/var/spack/repos/builtin/packages/scala/package.py
+++ b/var/spack/repos/builtin/packages/scala/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,6 +19,7 @@ class Scala(Package):
version('2.13.1', sha256='6918ccc494e34810a7254ad2c4e6f0e1183784c22e7b4801b7dbc8d1994a04db')
version('2.12.10', sha256='3b12bda3300fedd91f64fc7f9165fd45c58328b1b760af24ca6ffe92e3b0656a')
+ version('2.12.6', sha256='1ac7444c5a85ed1ea45db4a268ee9ea43adf80e7f5724222863afb5492883416')
version('2.12.5', sha256='b261ffe9a495b12e9dda2ed37331e579547e4d1b8b5810161b6c3b39ac806aa1')
version('2.12.1', sha256='4db068884532a3e27010df17befaca0f06ea50f69433d58e06a5e63c7a3cc359')
version('2.11.11', sha256='12037ca64c68468e717e950f47fc77d5ceae5e74e3bdca56f6d02fd5bfd6900b')
diff --git a/var/spack/repos/builtin/packages/scalasca/package.py b/var/spack/repos/builtin/packages/scalasca/package.py
index f4fbeb0fec..248c44f0d1 100644
--- a/var/spack/repos/builtin/packages/scalasca/package.py
+++ b/var/spack/repos/builtin/packages/scalasca/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,10 +16,11 @@ class Scalasca(AutotoolsPackage):
"""
- homepage = "http://www.scalasca.org"
- url = "http://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz"
+ homepage = "https://www.scalasca.org"
+ url = "https://apps.fz-juelich.de/scalasca/releases/scalasca/2.1/dist/scalasca-2.1.tar.gz"
list_url = "https://scalasca.org/scalasca/front_content.php?idart=1072"
+ version('2.6', sha256='b3f9cb1d58f3e25090a39da777bae8ca2769fd10cbd6dfb9a4887d873ee2441e')
version('2.5', sha256='7dfa01e383bfb8a4fd3771c9ea98ff43772e415009d9f3c5f63b9e05f2dde0f6')
version('2.4', sha256='4a895868258030f700a635eac93d36764f60c8c63673c7db419ea4bcc6b0b760')
version('2.3.1', sha256='8ff485d03ab2c02a5852d346ae041a191c60b4295f8f9b87fe58cd36977ba558')
@@ -30,7 +31,7 @@ class Scalasca(AutotoolsPackage):
# version 2.4+
depends_on('cubew@4.4:', when='@2.4:')
- depends_on('scorep@6.0:', when='@2.4:')
+ depends_on('scorep@6.0:', when='@2.4:', type=('run'))
# version 2.3+
depends_on('otf2@2:', when='@2.3:')
diff --git a/var/spack/repos/builtin/packages/scallop/package.py b/var/spack/repos/builtin/packages/scallop/package.py
index a05aa44a5d..ff3180769a 100644
--- a/var/spack/repos/builtin/packages/scallop/package.py
+++ b/var/spack/repos/builtin/packages/scallop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/scalpel/package.py b/var/spack/repos/builtin/packages/scalpel/package.py
index 1634fe11f4..5a8b2bd659 100644
--- a/var/spack/repos/builtin/packages/scalpel/package.py
+++ b/var/spack/repos/builtin/packages/scalpel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/scan-for-matches/package.py b/var/spack/repos/builtin/packages/scan-for-matches/package.py
index c4abe6d7d0..90ea5756f8 100644
--- a/var/spack/repos/builtin/packages/scan-for-matches/package.py
+++ b/var/spack/repos/builtin/packages/scan-for-matches/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class ScanForMatches(Package):
"""scan_for_matches is a utility written in C for locating patterns in DNA
or protein FASTA files."""
- homepage = "http://blog.theseed.org/servers/2010/07/scan-for-matches.html"
- url = "http://www.theseed.org/servers/downloads/scan_for_matches.tgz"
+ homepage = "https://blog.theseed.org/servers/2010/07/scan-for-matches.html"
+ url = "https://www.theseed.org/servers/downloads/scan_for_matches.tgz"
version('2010-7-16', sha256='c6b17930efbdfbac28b57c3a0b4f8c26effb36c48988d82e41c81c6962e2d68f')
diff --git a/var/spack/repos/builtin/packages/scantailor/package.py b/var/spack/repos/builtin/packages/scantailor/package.py
index 26d250a11a..86cb133972 100644
--- a/var/spack/repos/builtin/packages/scantailor/package.py
+++ b/var/spack/repos/builtin/packages/scantailor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Scantailor(CMakePackage):
recognition, and assembling multi-page documents are out of scope of this
project."""
- homepage = "http://www.scantailor.org"
+ homepage = "https://www.scantailor.org"
url = "https://github.com/trufanov-nok/scantailor/archive/0.2.7.tar.gz"
version(
diff --git a/var/spack/repos/builtin/packages/scipoptsuite/package.py b/var/spack/repos/builtin/packages/scipoptsuite/package.py
index 6521808f21..744edf0970 100644
--- a/var/spack/repos/builtin/packages/scipoptsuite/package.py
+++ b/var/spack/repos/builtin/packages/scipoptsuite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class Scipoptsuite(CMakePackage):
your current directory for the download file. Alternatively,
add this file to a mirror so that Spack can find it. For
instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://scipopt.org"
url = "file://{0}/scipoptsuite-7.0.1.tgz".format(os.getcwd())
diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py
index b4505385e6..9c62b56606 100644
--- a/var/spack/repos/builtin/packages/scons/package.py
+++ b/var/spack/repos/builtin/packages/scons/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Scons(PythonPackage):
"""SCons is a software construction tool"""
- homepage = "http://scons.org"
- url = "https://pypi.io/packages/source/s/scons/scons-3.1.1.tar.gz"
+ homepage = "https://scons.org"
+ pypi = "scons/scons-3.1.1.tar.gz"
version('3.1.2', sha256='8aaa483c303efeb678e6f7c776c8444a482f8ddc3ad891f8b6cdd35264da9a1f')
version('3.1.1', sha256='fd44f8f2a4562e7e5bc8c63c82b01e469e8115805a3e9c2923ee54cdcd6678b3')
@@ -26,6 +26,7 @@ class Scons(PythonPackage):
depends_on('py-setuptools', when='@3.0.2:', type=('build', 'run'))
patch('fjcompiler.patch', when='%fj')
+ patch('py3-hashbang.patch', when='^python@3:')
# Prevent passing --single-version-externally-managed to
# setup.py, which it does not support.
diff --git a/var/spack/repos/builtin/packages/scons/py3-hashbang.patch b/var/spack/repos/builtin/packages/scons/py3-hashbang.patch
new file mode 100644
index 0000000000..2a15189519
--- /dev/null
+++ b/var/spack/repos/builtin/packages/scons/py3-hashbang.patch
@@ -0,0 +1,40 @@
+diff --git a/script/scons b/script/scons
+index d889e74..f1b5105 100755
+--- a/script/scons
++++ b/script/scons
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ #
+ # SCons - a Software Constructor
+ #
+diff --git a/script/scons-configure-cache b/script/scons-configure-cache
+index ee11943..898dbef 100644
+--- a/script/scons-configure-cache
++++ b/script/scons-configure-cache
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ #
+ # SCons - a Software Constructor
+ #
+diff --git a/script/sconsign b/script/sconsign
+index b1f7cd0..cc5c018 100644
+--- a/script/sconsign
++++ b/script/sconsign
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ #
+ # SCons - a Software Constructor
+ #
+diff --git a/script/scons-time b/script/scons-time
+index c371d59..8d17718 100644
+--- a/script/scons-time
++++ b/script/scons-time
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # scons-time - run SCons timings and collect statistics
+ #
diff --git a/var/spack/repos/builtin/packages/scorec-core/package.py b/var/spack/repos/builtin/packages/scorec-core/package.py
index 4ff96cae85..29a85f35e3 100644
--- a/var/spack/repos/builtin/packages/scorec-core/package.py
+++ b/var/spack/repos/builtin/packages/scorec-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py
index 61586ac43c..4ea8337b0c 100644
--- a/var/spack/repos/builtin/packages/scorep/package.py
+++ b/var/spack/repos/builtin/packages/scorep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,10 @@ class Scorep(AutotoolsPackage):
of HPC applications.
"""
- homepage = "http://www.vi-hps.org/projects/score-p"
+ homepage = "https://www.vi-hps.org/projects/score-p"
url = "https://www.vi-hps.org/cms/upload/packages/scorep/scorep-4.1.tar.gz"
+ version('7.0', sha256='68f24a68eb6f94eaecf500e17448f566031946deab74f2cba072ee8368af0996', url='https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-7.0/scorep-7.0.tar.gz')
version('6.0', sha256='5dc1023eb766ba5407f0b5e0845ec786e0021f1da757da737db1fb71fc4236b8')
version('5.0', sha256='0651614eacfc92ffbe5264a3efebd0803527ae6e8b11f7df99a56a02c37633e1')
version('4.1', sha256='7bb6c1eecdd699b4a3207caf202866778ee01f15ff39a9ec198fcd872578fe63')
@@ -26,7 +27,7 @@ class Scorep(AutotoolsPackage):
version('1.3', sha256='dcfd42bd05f387748eeefbdf421cb3cd98ed905e009303d70b5f75b217fd1254')
patch('gcc7.patch', when='@1.4:3')
- patch('gcc10.patch', when='@3.1:')
+ patch('gcc10.patch', when='@3.1:6.0')
variant('mpi', default=True, description="Enable MPI support")
variant('papi', default=True, description="Enable PAPI")
@@ -39,25 +40,29 @@ class Scorep(AutotoolsPackage):
# information. Starting with scorep 4.0 / cube 4.4, Score-P only depends on
# two components of cube -- cubew and cubelib.
+ # SCOREP 7
+ depends_on('otf2@2.3:', when='@7:')
+ depends_on('cubew@4.6:', when='@7:')
+ depends_on('cubelib@4.6:', when='@7:')
+ depends_on('opari2@2.0.6:', when='@7:')
# SCOREP 6
depends_on('otf2@2.2:', when='@6:')
# SCOREP 4 and 5
depends_on('otf2@2.1:', when='@4:')
- depends_on('opari2@2.0:', when='@4:')
- depends_on('cubew@4.4:', when='@4:')
- depends_on('cubelib@4.4:', when='@4:')
+ depends_on('cubew@4.4:4.5', when='@4:6.99')
+ depends_on('cubelib@4.4:4.5', when='@4:6.99')
# SCOREP 3
depends_on('otf2@2:', when='@3:3.99')
- depends_on('opari2@2:', when='@3:3.99')
- depends_on('cube@4.3:', when='@3:3.99')
+ depends_on('opari2@2.0:2.0.5', when='@3:6.99')
+ depends_on('cube@4.3:4.3.5', when='@3:3.99')
# SCOREP 2.0.2
depends_on('otf2@2.0', when='@2.0.2')
depends_on('opari2@2.0', when='@2.0.2')
- depends_on('cube@4.3:4.4', when='@2.0.2')
+ depends_on('cube@4.3:4.3.5', when='@2.0.2')
# SCOREP 1.4.2
depends_on('otf2@1.5:1.6', when='@1.4.2')
depends_on('opari2@1.1.4', when='@1.4.2')
- depends_on('cube@4.3:4.4', when='@1.4.2')
+ depends_on('cube@4.2.3:4.3.5', when='@1.4.2')
# SCOREP 1.3
depends_on("otf2@1.4", when='@1.3')
depends_on("opari2@1.1.4", when='@1.3')
diff --git a/var/spack/repos/builtin/packages/scotch/package.py b/var/spack/repos/builtin/packages/scotch/package.py
index f9ec64ca13..7aa55290c9 100644
--- a/var/spack/repos/builtin/packages/scotch/package.py
+++ b/var/spack/repos/builtin/packages/scotch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,11 +10,13 @@ class Scotch(Package):
"""Scotch is a software package for graph and mesh/hypergraph
partitioning, graph clustering, and sparse matrix ordering."""
- homepage = "http://scotch.gforge.inria.fr/"
+ homepage = "https://gitlab.inria.fr/scotch/scotch"
git = "https://gitlab.inria.fr/scotch/scotch.git"
- url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.4.tar.gz"
- list_url = "http://gforge.inria.fr/frs/?group_id=248"
+ url = "https://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.4.tar.gz"
+ list_url = "https://gforge.inria.fr/frs/?group_id=248"
+ version('6.1.1', sha256='39052f59ff474a4a69cefc25cf3caf8429400889deba010ee6403ca188f8b311')
+ version('6.1.0', sha256='a3bc3fa3b243fcb52f8d68de4272562a0328afb18a96f535724d284e36730485')
version('6.0.10', sha256='fd8b707b8200823312a1571d97d3776ff3dfd3280cfa4b6e38987153cea5dbda')
version('6.0.9', sha256='622b4143cf01c480bb15708b3651b29c25e4aeb00c8c6447ff196aca2eca5c93')
version('6.0.8', sha256='0ba3f145026174304f910c8770a3cbb034f213c91d939573751cfbb4fd46d45e')
@@ -33,8 +35,8 @@ class Scotch(Package):
description='Activate the compilation of esmumps needed by mumps')
variant('shared', default=True,
description='Build a shared version of the library')
- variant('metis', default=True,
- description='Build metis and parmetis wrapper libraries')
+ variant('metis', default=False,
+ description='Expose vendored METIS/ParMETIS libraries and wrappers')
variant('int64', default=False,
description='Use int64_t for SCOTCH_Num typedef')
@@ -51,6 +53,11 @@ class Scotch(Package):
patch('libscotchmetis-return-6.0.5a.patch', when='@6.0.5a')
+ # Vendored dependency of METIS/ParMETIS conflicts with standard
+ # installations
+ conflicts('^metis', when='+metis')
+ conflicts('^parmetis', when='+metis')
+
# NOTE: In cross-compiling environment parallel build
# produces weird linker errors.
parallel = False
@@ -63,7 +70,7 @@ class Scotch(Package):
# always grab these versions for older Scotch versions for simplicity.
@when('@:6.0.0')
def url_for_version(self, version):
- url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_{0}_esmumps.tar.gz"
+ url = "https://gforge.inria.fr/frs/download.php/latestfile/298/scotch_{0}_esmumps.tar.gz"
return url.format(version)
@property
@@ -102,18 +109,26 @@ class Scotch(Package):
'-DCOMMON_RANDOM_FIXED_SEED',
'-DSCOTCH_DETERMINISTIC',
'-DSCOTCH_RENAME',
- '-DIDXSIZE64', # SCOTCH_Idx typedef: indices for addressing
]
- # SCOTCH_Num typedef: size of integers in arguments
if '+int64' in self.spec:
+ # SCOTCH_Num typedef: size of integers in arguments
cflags.append('-DINTSIZE64')
+ cflags.append('-DIDXSIZE64') # SCOTCH_Idx typedef: indices for addressing
+ else:
+ cflags.append('-DIDXSIZE32') # SCOTCH_Idx typedef: indices for addressing
if self.spec.satisfies('platform=darwin'):
cflags.extend([
'-Drestrict=__restrict'
])
+ if '~metis' in self.spec:
+ # Scotch requires METIS to build, but includes its own patched,
+ # vendored dependency. Prefix its internal symbols so they won't
+ # conflict with another installation.
+ cflags.append('-DSCOTCH_METIS_PREFIX')
+
# Library Build Type #
if '+shared' in self.spec:
if self.spec.satisfies('platform=darwin'):
@@ -213,7 +228,7 @@ class Scotch(Package):
with working_dir('src'):
for target in targets:
- # It seams that building ptesmumps in parallel fails, for
+ # It seems that building ptesmumps in parallel fails, for
# version prior to 6.0.0 there is no separated targets force
# ptesmumps, this library is built by the ptscotch target. This
# should explain the test for the can_make_parallel variable
@@ -224,7 +239,7 @@ class Scotch(Package):
make(target, parallel=can_make_parallel)
lib_ext = dso_suffix if '+shared' in self.spec else 'a'
- # It seams easier to remove metis wrappers from the folder that will be
+ # It seems easier to remove metis wrappers from the folder that will be
# installed than to tweak the Makefiles
if '+metis' not in self.spec:
with working_dir('lib'):
diff --git a/var/spack/repos/builtin/packages/scr/package.py b/var/spack/repos/builtin/packages/scr/package.py
index 5175bf6dc1..d77d6bca63 100644
--- a/var/spack/repos/builtin/packages/scr/package.py
+++ b/var/spack/repos/builtin/packages/scr/package.py
@@ -1,11 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+import sys
+
from spack import *
-import os
+
+def detect_scheduler():
+ if which('aprun'):
+ return 'APRUN'
+ if which('jsrun'):
+ return 'LSF'
+ return 'SLURM'
class Scr(CMakePackage):
@@ -13,46 +22,59 @@ class Scr(CMakePackage):
Linux cluster to provide a fast, scalable checkpoint/restart
capability for MPI codes"""
- homepage = "http://computing.llnl.gov/projects/scalable-checkpoint-restart-for-mpi"
+ homepage = "https://computing.llnl.gov/projects/scalable-checkpoint-restart-for-mpi"
url = "https://github.com/LLNL/scr/archive/v1.2.0.tar.gz"
git = "https://github.com/llnl/scr.git"
version('develop', branch='develop')
- version('legacy', branch='legacy')
+ version('legacy', branch='legacy', deprecated=True)
- version('2.0.0', sha256='471978ae0afb56a20847d3989b994fbd680d1dea21e77a5a46a964b6e3deed6b')
- version('1.2.2', sha256='764a85638a9e8762667ec1f39fa5f7da7496fca78de379a22198607b3e027847')
- version('1.2.1', sha256='23acab2dc7203e9514455a5168f2fd57bc590affb7a1876912b58201513628fe')
- version('1.2.0', sha256='e3338ab2fa6e9332d2326c59092b584949a083a876adf5a19d4d5c7a1bbae047')
+ version('3.0rc1', sha256='bd31548a986f050024429d8ee3644eb135f047f98a3d503a40c5bd4a85291308')
+ version('2.0.0', sha256='471978ae0afb56a20847d3989b994fbd680d1dea21e77a5a46a964b6e3deed6b', deprecated=True)
+ version('1.2.2', sha256='764a85638a9e8762667ec1f39fa5f7da7496fca78de379a22198607b3e027847', deprecated=True)
+ version('1.2.1', sha256='23acab2dc7203e9514455a5168f2fd57bc590affb7a1876912b58201513628fe', deprecated=True)
+ version('1.2.0', sha256='e3338ab2fa6e9332d2326c59092b584949a083a876adf5a19d4d5c7a1bbae047', deprecated=True)
depends_on('pdsh+static_modules', type=('build', 'run'))
depends_on('zlib')
depends_on('mpi')
- # As of mid-2020, develop requires the "master" branch
- # of a few component libraries
- depends_on('axl@master', when="@develop")
- depends_on('kvtree@master', when="@develop")
- depends_on('redset@master', when="@develop")
+ # Use the latest iteration of the components when installing scr@develop
+ depends_on('axl@main', when="@develop")
+ depends_on('er@main', when="@develop")
+ depends_on('kvtree@main', when="@develop")
+ depends_on('rankstr@main', when="@develop")
+ depends_on('redset@main', when="@develop")
+ depends_on('shuffile@main', when="@develop")
+ depends_on('spath@main', when="@develop")
# SCR legacy is anything 2.x.x or earlier
# SCR components is anything 3.x.x or later
- depends_on('er', when="@3:")
- depends_on('kvtree', when="@3:")
- depends_on('rankstr', when="@3:")
- depends_on('filo', when="@3:")
- depends_on('spath', when="@3:")
-
+ depends_on('axl@0.4.0:', when="@3:")
+ depends_on('er@0.0.4:', when="@3:")
+ depends_on('kvtree@1.1.1:', when="@3:")
+ depends_on('rankstr@0.0.3:', when="@3:")
+ depends_on('redset@0.0.5:', when="@3:")
+ depends_on('shuffile@0.0.4:', when="@3:")
+ depends_on('spath@0.0.2:', when="@3:")
+
+ # DTCMP is an optional dependency up until 3.x
variant('dtcmp', default=True,
description="Build with DTCMP. "
"Necessary to enable user directory naming at runtime")
- depends_on('dtcmp', when="+dtcmp")
+ depends_on('dtcmp', when="@:2.999 +dtcmp")
+
+ # DTCMP is a required dependency with 3.x and later
+ conflicts('~dtcmp', when="@3:", msg="<SCR> DTCMP required for versions >=3")
+ depends_on('dtcmp', when="@3:")
variant('libyogrt', default=True,
description="Build SCR with libyogrt for get_time_remaining.")
+ depends_on('libyogrt scheduler=slurm', when="+libyogrt resource_manager=SLURM")
+ depends_on('libyogrt scheduler=lsf', when="+libyogrt resource_manager=LSF")
depends_on('libyogrt', when="+libyogrt")
- # MySQL not yet in spack
+ # Enabling SCR logging is a WIP, for which this will be needed
# variant('mysql', default=True, decription="MySQL database for logging")
# depends_on('mysql', when="+mysql")
@@ -66,26 +88,47 @@ class Scr(CMakePackage):
variant('fortran', default=True,
description="Build SCR with fortran bindings")
- variant('resource_manager', default='SLURM',
+ variant('resource_manager', default=detect_scheduler(),
values=('SLURM', 'APRUN', 'PMIX', 'LSF', 'NONE'),
multi=False,
description="Resource manager for which to configure SCR.")
+ # SCR_ASYNC_API in process of being automated. Only applying this to :2.x.x
variant('async_api', default='NONE',
values=('NONE', 'CRAY_DW', 'IBM_BBAPI', 'INTEL_CPPR'),
multi=False,
description="Asynchronous data transfer API to use with SCR.")
+ variant('bbapi_fallback', default='False',
+ description='Using BBAPI, if source or destination don\'t support \
+ file extents then fallback to pthreads')
+ depends_on('axl+bbapi_fallback', when="@3: +bbapi_fallback")
+
variant('file_lock', default='FLOCK',
values=('FLOCK', 'FNCTL', 'NONE'),
multi=False,
description='File locking style for SCR.')
-
- variant('cache_base', default='/tmp',
- description='Compile time default location for checkpoint cache.')
- variant('cntl_base', default='/tmp',
+ depends_on('kvtree file_lock=FLOCK', when='@3: file_lock=FLOCK')
+ depends_on('kvtree file_lock=FNCTL', when='@3: file_lock=FNCTL')
+ depends_on('kvtree file_lock=NONE', when='@3: file_lock=NONE')
+
+ # The default cache and control directories should be placed in tmpfs if available.
+ # On Linux, /dev/shm is a common tmpfs location. Other platforms, like macOS,
+ # do not define a common tmpfs location, so /tmp is the next best option.
+ platform_tmp_default = '/dev/shm' if sys.platform == 'linux' else '/tmp'
+ variant('cache_base', default=platform_tmp_default,
+ description='Compile time default location for cache directory.')
+ variant('cntl_base', default=platform_tmp_default,
description='Compile time default location for control directory.')
+ def flag_handler(self, name, flags):
+ if self.spec.satisfies('%cce'):
+ if name in ['cflags', 'cxxflags', 'cppflags']:
+ return (None, flags, None)
+ elif name == 'ldflags':
+ flags.append('-ldl')
+ return (flags, None, None)
+
def get_abs_path_rel_prefix(self, path):
# Return path if absolute, otherwise prepend prefix
if os.path.isabs(path):
@@ -98,20 +141,21 @@ class Scr(CMakePackage):
args = []
if 'platform=cray' in spec:
- args.append('-DSCR_LINK_STATIC=ON')
+ args.append('-DSCR_LINK_STATIC=OFF')
args.append('-DENABLE_FORTRAN={0}'.format('+fortran' in spec))
conf_path = self.get_abs_path_rel_prefix(
self.spec.variants['scr_config'].value)
- args.append('-DCMAKE_SCR_CONFIG_FILE={0}'.format(conf_path))
+ args.append('-DSCR_CONFIG_FILE={0}'.format(conf_path))
# We uppercase the values for these to avoid unnecessary user error.
args.append('-DSCR_RESOURCE_MANAGER={0}'.format(
spec.variants['resource_manager'].value.upper()))
- args.append('-DSCR_ASYNC_API={0}'.format(
- spec.variants['async_api'].value.upper()))
+ if spec.satisfies('@:2.999'):
+ args.append('-DSCR_ASYNC_API={0}'.format(
+ spec.variants['async_api'].value.upper()))
args.append('-DSCR_FILE_LOCK={0}'.format(
spec.variants['file_lock'].value.upper()))
diff --git a/var/spack/repos/builtin/packages/screen/package.py b/var/spack/repos/builtin/packages/screen/package.py
index e2ac6fc7d9..b0690e8069 100644
--- a/var/spack/repos/builtin/packages/screen/package.py
+++ b/var/spack/repos/builtin/packages/screen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/scripts/package.py b/var/spack/repos/builtin/packages/scripts/package.py
index 6ecfe9fae1..756c93aa55 100644
--- a/var/spack/repos/builtin/packages/scripts/package.py
+++ b/var/spack/repos/builtin/packages/scripts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Scripts(AutotoolsPackage, XorgPackage):
"""Various X related scripts."""
- homepage = "http://cgit.freedesktop.org/xorg/app/scripts"
+ homepage = "https://cgit.freedesktop.org/xorg/app/scripts"
xorg_mirror_path = "app/scripts-1.0.1.tar.gz"
version('1.0.1', sha256='0ed6dabdbe821944d61830489ad5f21bd934550456b9157a1cd8a32f76e08279')
diff --git a/var/spack/repos/builtin/packages/scrnsaverproto/package.py b/var/spack/repos/builtin/packages/scrnsaverproto/package.py
index f4239e2cd7..3894926f5d 100644
--- a/var/spack/repos/builtin/packages/scrnsaverproto/package.py
+++ b/var/spack/repos/builtin/packages/scrnsaverproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Scrnsaverproto(AutotoolsPackage, XorgPackage):
This extension defines a protocol to control screensaver features
and also to query screensaver info on specific windows."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/scrnsaverproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/scrnsaverproto"
xorg_mirror_path = "proto/scrnsaverproto-1.2.2.tar.gz"
version('1.2.2', sha256='d8dee19c52977f65af08fad6aa237bacee11bc5a33e1b9b064e8ac1fd99d6e79')
diff --git a/var/spack/repos/builtin/packages/scrot/package.py b/var/spack/repos/builtin/packages/scrot/package.py
new file mode 100644
index 0000000000..7e511db543
--- /dev/null
+++ b/var/spack/repos/builtin/packages/scrot/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Scrot(AutotoolsPackage):
+ """scrot (SCReenshOT) is a simple command line screen
+ capture utility that uses imlib2 to grab and save images.
+ Multiple image formats are supported through imlib2's
+ dynamic saver modules."""
+
+ homepage = "https://github.com/resurrecting-open-source-projects/scrot"
+ url = "https://github.com/resurrecting-open-source-projects/scrot/releases/download/1.5/scrot-1.5.tar.gz"
+
+ version('1.6', sha256='42f64d38f04ec530c8b4ebdae04cce8b6893b2f8d30627391d390edcba917090')
+ version('1.5', sha256='42fcf1c97940f4b4e34ca69990a0fc9b98991357bd6a4b67f30ebe0ccc10f093')
+
+ depends_on('giblib', when='@:1.5')
+ depends_on('imlib2')
+ depends_on('libtool')
+ depends_on('libxcomposite')
+ depends_on('libxfixes')
diff --git a/var/spack/repos/builtin/packages/scs/package.py b/var/spack/repos/builtin/packages/scs/package.py
index 5d783d0dc4..55b213b87a 100644
--- a/var/spack/repos/builtin/packages/scs/package.py
+++ b/var/spack/repos/builtin/packages/scs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sctk/package.py b/var/spack/repos/builtin/packages/sctk/package.py
index c81dda0e3c..e3b9f272ef 100644
--- a/var/spack/repos/builtin/packages/sctk/package.py
+++ b/var/spack/repos/builtin/packages/sctk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,16 +14,16 @@ class Sctk(Package):
common scoring engine."""
homepage = "https://www.nist.gov/itl/iad/mig/tools"
- url = "http://www.openslr.org/resources/4/sctk-2.4.10-20151007-1312Z.tar.bz2"
+ url = "https://www.openslr.org/resources/4/sctk-2.4.10-20151007-1312Z.tar.bz2"
version('2.4.10', sha256='9cef424ce3a899f83b9527dc6fa83badf1bb14151529a78580301dd248bd2bf9',
- url='http://www.openslr.org/resources/4/sctk-2.4.10-20151007-1312Z.tar.bz2')
+ url='https://www.openslr.org/resources/4/sctk-2.4.10-20151007-1312Z.tar.bz2')
version('2.4.9', sha256='262c92cca47755539dfa28add6120aa3ec4983b44b51f053f601e601c064617c',
- url='http://www.openslr.org/resources/4/sctk-2.4.9-20141015-1634Z.tar.bz2')
+ url='https://www.openslr.org/resources/4/sctk-2.4.9-20141015-1634Z.tar.bz2')
version('2.4.8', sha256='ca9c5164cd06439ff85e681bc94a02a67139c7111591c628667151d386a02d5b',
- url='http://www.openslr.org/resources/4/sctk-2.4.8-20130429-2145.tar.bz2')
+ url='https://www.openslr.org/resources/4/sctk-2.4.8-20130429-2145.tar.bz2')
version('2.4.0', sha256='73886bf3b879882a132141967ffe6b365178a2226390d2212f51a63e5df066e2',
- url='http://www.openslr.org/resources/4/sctk-2.4.0-20091110-0958.tar.bz2')
+ url='https://www.openslr.org/resources/4/sctk-2.4.0-20091110-0958.tar.bz2')
def install(self, spec, prefix):
make('config')
diff --git a/var/spack/repos/builtin/packages/sdl2-image/package.py b/var/spack/repos/builtin/packages/sdl2-image/package.py
index 83541f234d..4cdc8d11e1 100644
--- a/var/spack/repos/builtin/packages/sdl2-image/package.py
+++ b/var/spack/repos/builtin/packages/sdl2-image/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sdl2/package.py b/var/spack/repos/builtin/packages/sdl2/package.py
index 0ea1b2441c..d81a5802ad 100644
--- a/var/spack/repos/builtin/packages/sdl2/package.py
+++ b/var/spack/repos/builtin/packages/sdl2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Sdl2(CMakePackage):
homepage = "https://wiki.libsdl.org/FrontPage"
url = "https://libsdl.org/release/SDL2-2.0.5.tar.gz"
+ version('2.0.14', sha256='d8215b571a581be1332d2106f8036fcb03d12a70bae01e20f424976d275432bc')
version('2.0.5', sha256='442038cf55965969f2ff06d976031813de643af9c9edc9e331bd761c242e8785')
depends_on('cmake@2.8.5:', type='build')
diff --git a/var/spack/repos/builtin/packages/sdsl-lite/package.py b/var/spack/repos/builtin/packages/sdsl-lite/package.py
index ba2485c6b7..dd7cbb8f67 100644
--- a/var/spack/repos/builtin/packages/sdsl-lite/package.py
+++ b/var/spack/repos/builtin/packages/sdsl-lite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/seacas/package.py b/var/spack/repos/builtin/packages/seacas/package.py
index 862cba1b87..c52595d8e9 100644
--- a/var/spack/repos/builtin/packages/seacas/package.py
+++ b/var/spack/repos/builtin/packages/seacas/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import sys
+
from spack import *
from spack.operating_systems.mac_os import macos_version
@@ -19,13 +20,17 @@ class Seacas(CMakePackage):
translate exodus databases. Default is to build the exodus and
IOSS libraries and the io_shell, io_info, struc_to_unstruc apps.
"""
- homepage = "http://gsjaardema.github.io/seacas/"
+ homepage = "https://gsjaardema.github.io/seacas/"
git = "https://github.com/gsjaardema/seacas.git"
url = "https://github.com/gsjaardema/seacas/archive/v2019-08-20.tar.gz"
maintainers = ['gsjaardema']
# ###################### Versions ##########################
version('master', branch='master')
+ version('2021-05-12', sha256='92663767f0317018d6f6e422e8c687e49f6f7eb2b92e49e837eb7dc0ca0ac33d')
+ version('2021-04-05', sha256='76f66eec1fec7aba30092c94c7609495e6b90d9dcb6f35b3ee188304d02c6e04')
+ version('2021-01-20', sha256='7814e81981d03009b6816be3eb4ed3845fd02cc69e006ee008a2cbc85d508246')
+ version('2021-01-06', sha256='b233502a7dc3e5ab69466054cf358eb033e593b8679c6721bf630b03999bd7e5')
version('2020-08-13', sha256='e5eaf203eb2dbfb33c61ccde26deea459d058aaea79b0847e2f4bdb0cef1ddcb')
version('2020-05-12', sha256='7fc6915f60568b36e052ba07a77d691c99abe42eaba6ae8a6dc74bb33490ed60')
version('2020-03-16', sha256='2eb404f3dcb17c3e7eacf66978372830d40ef3722788207741fcd48417807af6')
@@ -77,11 +82,11 @@ class Seacas(CMakePackage):
# Everything should be compiled position independent (-fpic)
- depends_on('netcdf-c@4.6.2:+mpi+parallel-netcdf', when='+mpi')
- depends_on('netcdf-c@4.6.2:~mpi', when='~mpi')
+ depends_on('netcdf-c@4.8.0:+mpi+parallel-netcdf', when='+mpi')
+ depends_on('netcdf-c@4.8.0:~mpi', when='~mpi')
depends_on('hdf5+hl~mpi', when='~mpi')
- depends_on('cgns@develop+mpi+scoping', when='+cgns +mpi')
- depends_on('cgns@develop~mpi+scoping', when='+cgns ~mpi')
+ depends_on('cgns@4.2.0:+mpi+scoping', when='+cgns +mpi')
+ depends_on('cgns@4.2.0:~mpi+scoping', when='+cgns ~mpi')
depends_on('adios2@develop~mpi', when='+adios2 ~mpi')
depends_on('adios2@develop+mpi', when='+adios2 +mpi')
depends_on('matio', when='+matio')
@@ -93,8 +98,12 @@ class Seacas(CMakePackage):
depends_on('cmake@3.1:', type='build')
+ def setup_run_environment(self, env):
+ env.prepend_path('PYTHONPATH', self.prefix.lib)
+
def cmake_args(self):
spec = self.spec
+ from_variant = self.define_from_variant
options = []
@@ -112,20 +121,14 @@ class Seacas(CMakePackage):
options.extend([
'-DSEACASProj_ENABLE_TESTS:BOOL=ON',
'-DSEACASProj_ENABLE_CXX11:BOOL=ON',
- '-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
+ from_variant('CMAKE_INSTALL_RPATH_USE_LINK_PATH', 'shared'),
+ from_variant('BUILD_SHARED_LIBS', 'shared'),
'-DSEACASProj_ENABLE_Kokkos:BOOL=OFF',
'-DSEACASProj_HIDE_DEPRECATED_CODE:BOOL=OFF',
- '-DSEACASExodus_ENABLE_THREADSAFE:BOOL=%s' % (
- 'ON' if '+thread_safe' in spec else 'OFF'),
- '-DSEACASIoss_ENABLE_THREADSAFE:BOOL=%s' % (
- 'ON' if '+thread_safe' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_Fortran:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DTPL_ENABLE_X11:BOOL=%s' % (
- 'ON' if '+x11' in spec else 'OFF'),
+ from_variant('SEACASExodus_ENABLE_THREADSAFE', 'thread_safe'),
+ from_variant('SEACASIoss_ENABLE_THREADSAFE', 'thread_safe'),
+ from_variant('SEACASProj_ENABLE_Fortran', 'fortran'),
+ from_variant('TPL_ENABLE_X11', 'x11'),
])
# ########## What applications should be built #############
@@ -144,10 +147,8 @@ class Seacas(CMakePackage):
'-DSEACASProj_ENABLE_SECONDARY_TESTED_CODE:BOOL=OFF',
'-DSEACASProj_ENABLE_SEACASIoss:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASExodus:BOOL=ON',
- '-DSEACASProj_ENABLE_SEACASExodus_for:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASExoIIv2for32:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
+ from_variant('SEACASProj_ENABLE_SEACASExodus_for', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASExoIIv2for32', 'fortran'),
])
if '+applications' in spec:
@@ -160,48 +161,34 @@ class Seacas(CMakePackage):
'-DSEACASProj_ENABLE_SEACASExo2mat:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASExo_format:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASExodiff:BOOL=ON',
- '-DSEACASProj_ENABLE_SEACASExplore:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASGrepos:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
+ from_variant('SEACASProj_ENABLE_SEACASExplore', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASGrepos', 'fortran'),
'-DSEACASProj_ENABLE_SEACASMat2exo:BOOL=ON',
+ '-DSEACASProj_ENABLE_SEACASNas2exo:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASNemslice:BOOL=ON',
'-DSEACASProj_ENABLE_SEACASNemspread:BOOL=ON',
+ '-DSEACASProj_ENABLE_SEACASSlice:BOOL=ON',
])
if '+legacy' in spec:
options.extend([
- '-DSEACASProj_ENABLE_SEACASAlgebra:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASBlot:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASEx1ex2v2:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASEx2ex1v2:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASExomatlab:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASExotec2:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASExotxt:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASFastq:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASGen3D:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASGenshell:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASGjoin:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASMapvar:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
+ from_variant('SEACASProj_ENABLE_SEACASAlgebra', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASBlot', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASEx1ex2v2', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASEx2ex1v2', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASExomatlab', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASExotec2', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASExotxt', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASFastq', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASGen3D', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASGenshell', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASGjoin', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASMapvar', 'fortran'),
'-DSEACASProj_ENABLE_SEACASMapvar-kd:BOOL=%s' % (
'ON' if '+fortran' in spec else 'OFF'),
'-DSEACASProj_ENABLE_SEACASNemesis:BOOL=ON',
- '-DSEACASProj_ENABLE_SEACASNumbers:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
- '-DSEACASProj_ENABLE_SEACASTxtexo:BOOL=%s' % (
- 'ON' if '+fortran' in spec else 'OFF'),
+ from_variant('SEACASProj_ENABLE_SEACASNumbers', 'fortran'),
+ from_variant('SEACASProj_ENABLE_SEACASTxtexo', 'fortran'),
])
# ##################### Dependencies ##########################
diff --git a/var/spack/repos/builtin/packages/sed/package.py b/var/spack/repos/builtin/packages/sed/package.py
index 3565c3c9ef..836c86c71f 100644
--- a/var/spack/repos/builtin/packages/sed/package.py
+++ b/var/spack/repos/builtin/packages/sed/package.py
@@ -1,14 +1,25 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import re
+
from spack import *
class Sed(AutotoolsPackage, GNUMirrorPackage):
"""GNU implementation of the famous stream editor."""
- homepage = "http://www.gnu.org/software/sed/"
+ homepage = "https://www.gnu.org/software/sed/"
gnu_mirror_path = "sed/sed-4.2.2.tar.bz2"
version('4.2.2', sha256='f048d1838da284c8bc9753e4506b85a1e0cc1ea8999d36f6995bcb9460cddbd7')
+
+ executables = ['^sed$']
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ version_regexp = r'{:s} \(GNU sed\) (\S+)'.format(exe)
+ match = re.search(version_regexp, output)
+ return match.group(1) if match else None
diff --git a/var/spack/repos/builtin/packages/sensei/package.py b/var/spack/repos/builtin/packages/sensei/package.py
index fa2e534166..d4ab68964a 100644
--- a/var/spack/repos/builtin/packages/sensei/package.py
+++ b/var/spack/repos/builtin/packages/sensei/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,25 +14,30 @@ class Sensei(CMakePackage):
Visit/Libsim, ADIOS, Python scripts, and so on."""
homepage = "https://sensei-insitu.org"
- url = "https://gitlab.kitware.com/sensei/sensei/-/archive/v3.1.0/sensei-v3.1.0.tar.gz"
- git = "https://gitlab.kitware.com/sensei/sensei.git"
- maintainers = ['sshudler']
-
- version('master', branch='master')
- version('3.1.0', sha256='9a3e6d0d5bb6170ee666586435434da1708b3876fd448b9d41142571ed9da939')
- version('3.0.0', sha256='0aabbea03ade9947c88fc0aa6d3cbaf3c8267e8504e384a041445678a95e58eb')
- version('2.1.1', sha256='8a27ebf133fef00a59e4b29433762e6560bf20214072de7808836eb668bb5687')
- version('2.1.0', sha256='b7af21a25523cf6cd8934d797471b75ca32881166625d71f24b5c8b6d727ca99')
- version('2.0.0', sha256='df48eab035e1acdd8edf5159955c05306f9ca48117effacc4a6b77c3fb24f62b')
- version('1.1.0', sha256='e5a4ba691573ff6c7b0d4793665e218ee5868ebcc0198915d1f16a4b7b92a368')
- version('1.0.0', sha256='bdcb03c56b51f2795ec5a7e85a5abb01d473d192fac50f2a8bf2608cc3564ff8')
-
+ url = "https://github.com/SENSEI-insitu/SENSEI/releases/download/v3.2.1/SENSEI-3.2.1.tar.gz"
+ git = "https://github.com/SENSEI-insitu/SENSEI.git"
+ maintainers = ['sshudler', 'kwryankrattiger']
+
+ version('develop', branch='develop')
+ version('3.2.1', sha256='7438fb4b148e4d1eb888c619366d0d8639122ecbbf1767e19549d6ca0c8698ca')
+ version('3.2.0', sha256='fd1a69134d9f8151d85a7f84a67d6a648aef5580585b39f74a56367cff433c82')
+ version('3.1.0', sha256='813075e033904835afa74231a841ab46424d4567157ee7366f3b785357ffc0ea')
+ version('3.0.0', sha256='e9b4d7531bbe8848a7fb182f1d2706b397d18e1a580a51f79b4bf6793be195e5')
+ version('2.1.1', sha256='7e211b3d9ce8576d33dbb39ea367c971bb8863e1cf53b9c0e13f00b53bd16526')
+ version('2.1.0', sha256='3de667523d5a8e5576e29ff9528f7f341fcc799b55c9cd824dc61c7ca1a2a910')
+ version('2.0.0', sha256='e985778ebbf0b9a103d11e069e58f8975f98a63dc2861b7cde34ea12a23fee20')
+ version('1.1.0', sha256='769e0b5db50be25666c0d13176a7e4f89cbffe19cdc12349437d0efff615b200')
+ version('1.0.0', sha256='5b8609352048e048e065a7b99f615a602f84b3329085e40274341488ef1b9522')
+
+ variant('shared', default=True, description='Enables shared libraries')
variant('sencore', default=True, description='Enables the SENSEI core library')
- variant('catalyst', default=True, description='Build with ParaView-Catalyst support')
+ variant('ascent', default=False, description='Build with ParaView-Catalyst support')
+ variant('catalyst', default=False, description='Build with ParaView-Catalyst support')
variant('libsim', default=False, description='Build with VisIt-Libsim support')
- variant('vtkio', default=True, description='Enable adaptors to write to VTK XML format')
- variant('adios', default=False, description='Enable ADIOS adaptors and endpoints')
+ variant('vtkio', default=False, description='Enable adaptors to write to VTK XML format')
+ variant('adios2', default=False, description='Enable ADIOS2 adaptors and endpoints')
variant('hdf5', default=False, description='Enables HDF5 adaptors and endpoints')
+ variant('vtkm', default=False, description='Enable VTKm adaptors and endpoints')
variant('python', default=False, description='Enable Python bindings')
variant('miniapps', default=True, description='Enable the parallel 3D and oscillators miniapps')
variant('cxxstd', default='11', values=('11', '14', '17'), multi=False, description='Use the specified C++ standard when building.')
@@ -40,20 +45,34 @@ class Sensei(CMakePackage):
# All SENSEI versions up to 2.1.1 support only Python 2, so in this case
# Paraview 6 cannot be used since it requires Python 3. Starting from
# version 3, SENSEI supports Python 3.
- depends_on("paraview@5.5.0:5.5.2+python+mpi+hdf5", when="@:2.1.1 +catalyst")
- depends_on("paraview@5.6:+python3+mpi+hdf5", when="@3: +catalyst")
- depends_on("visit", when="+libsim")
- depends_on("vtk", when="+libsim")
+ depends_on("paraview@5.5.0:5.5.2+mpi+hdf5", when="@:2.1.1 +catalyst")
+ depends_on("paraview@5.5.0:5.5.2+python+mpi+hdf5", when="@:2.1.1 +catalyst+python")
+ depends_on("paraview@5.6:5.7+mpi+hdf5", when="@3:3.2.1 +catalyst")
+ depends_on("paraview@5.6:5.7+python3+mpi+hdf5", when="@3:3.2.1 +catalyst+python")
+ depends_on("paraview+mpi+hdf5", when="+catalyst")
+ depends_on("paraview+python3+mpi+hdf5", when="+catalyst+python")
+ depends_on("visit~gui~python", when="+libsim")
+ depends_on("vtk@8.1.0:8.1.2", when="+libsim")
depends_on("vtk", when="~libsim ~catalyst")
- depends_on("adios", when="+adios")
- depends_on("hdf5", when="+hdf5")
+ depends_on("vtk+python", when="~libsim ~catalyst+python")
+ depends_on("adios2", when="+adios2")
+ depends_on("ascent", when="+ascent")
+
+ # VTK needs +hl and currently spack cannot resolve +hl and ~hl
+ depends_on("hdf5+hl", when="+hdf5")
# SENSEI 3 supports Python 3, earlier versions upport only Python 2
depends_on("python@:2.7.16", when="@:2.1.1 +python", type=('build', 'run'))
depends_on("python@3:", when="@3: +python", type=('build', 'run'))
+ extends('python', when='+python')
depends_on("py-numpy", when="+python", type=('build', 'run'))
depends_on("py-mpi4py", when="+python", type=('build', 'run'))
depends_on("swig", when="+python", type='build')
depends_on('cmake@3.6:', when="@3:", type='build')
+ depends_on('pugixml')
+
+ # Since sensei always has a VTK dependency, either directly or indirectly,
+ # VTKm will also always be available via VTK so there's no scenario to
+ # have a directl dependency on VTK,
# Can have either LibSim or Catalyst, but not both
conflicts('+libsim', when='+catalyst')
@@ -65,70 +84,34 @@ class Sensei(CMakePackage):
# -Ox flags are set by default in CMake based on the build type
args = [
- '-DCMAKE_CXX_STANDARD={0}'.format(spec.variants['cxxstd'].value),
- '-DCMAKE_C_STANDARD=11',
- '-DCMAKE_POSITION_INDEPENDENT_CODE=ON',
- '-DENABLE_SENSEI:BOOL={0}'.format(
- 'ON' if '+sencore' in spec else 'OFF')
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'),
+ self.define('CMAKE_C_STANDARD', 11),
+ self.define('SENSEI_USE_EXTERNAL_pugixml', True),
+ self.define('CMAKE_POSITION_INDEPENDENT_CODE', True),
+ self.define_from_variant('ENABLE_SENSEI', 'sencore'),
+ self.define_from_variant('ENABLE_ASCENT', 'ascent'),
+ self.define_from_variant('ENABLE_VTKM', 'vtkm'),
+ self.define_from_variant('ENABLE_CATALYST', 'catalyst'),
+ self.define_from_variant('ENABLE_LIBSIM', 'libsim'),
+ self.define_from_variant('ENABLE_VTK_IO', 'vtkio'),
+ self.define_from_variant('ENABLE_PYTHON', 'python'),
+ self.define_from_variant('ENABLE_ADIOS2', 'adios2'),
+ self.define_from_variant('ENABLE_HDF5', 'hdf5'),
+ self.define_from_variant('ENABLE_PARALLEL3D', 'miniapps'),
+ self.define_from_variant('ENABLE_OSCILLATORS', 'miniapps')
]
- vtk_dir_needed = True
-
- if '+catalyst' in spec:
- args.extend([
- '-DENABLE_CATALYST:BOOL=ON',
- '-DENABLE_CATALYST_PYTHON:BOOL=ON',
- '-DParaView_DIR:PATH={0}'.format(spec['paraview'].prefix)
- ])
- vtk_dir_needed = False
- else:
- args.append('-DENABLE_CATALYST:BOOL=OFF')
-
if '+libsim' in spec:
- args.extend([
- '-DENABLE_LIBSIM:BOOL=ON',
- '-DVISIT_DIR:PATH={0}'.format(spec['visit'].prefix),
- '-DVTK_DIR:PATH={0}'.format(spec['vtk'].prefix)
- ])
- vtk_dir_needed = False
- else:
- args.append('-DENABLE_LIBSIM:BOOL=OFF')
+ args.append(
+ '-DVISIT_DIR:PATH={0}/current/{1}-{2}'.format(
+ spec['visit'].prefix, spec.platform, spec.target.family)
+ )
- vtkio_switch = 'ON' if '+vtkio' in spec else 'OFF'
- args.append('-DENABLE_VTK_IO:BOOL={0}'.format(vtkio_switch))
-
- python_switch = 'OFF'
if '+python' in spec:
- python_switch = 'ON'
- python_path = spec['python'].command.path
- args.append('-DPYTHON_EXECUTABLE:FILEPATH={0}'.format(python_path))
- if spec.satisfies('@3:'):
- args.append('-DSENSEI_PYTHON_VERSION=3')
- args.append('-DENABLE_PYTHON:BOOL={0}'.format(python_switch))
-
- if '+adios' in spec:
+ args.append(self.define('PYTHON_EXECUTABLE', spec['python'].command.path))
if spec.satisfies('@3:'):
- args.append('-DENABLE_ADIOS1:BOOL=ON')
- else:
- args.append('-DENABLE_ADIOS:BOOL=ON')
- args.append('-DADIOS_DIR:PATH={0}'.format(spec['adios'].prefix))
- else:
- args.append('-DENABLE_ADIOS:BOOL=OFF')
-
- if '+hdf5' in spec:
- args.extend([
- '-DENABLE_HDF5:BOOL=ON',
- '-DHDF5_DIR:PATH={0}'.format(spec['hdf5'].prefix)
- ])
-
- if vtk_dir_needed:
- args.append('-DVTK_DIR:PATH={0}'.format(spec['vtk'].prefix))
-
- args.extend([
- '-DENABLE_PARALLEL3D:BOOL={0}'.format(
- 'ON' if '+miniapps' in spec else 'OFF'),
- '-DENABLE_OSCILLATORS:BOOL={0}'.format(
- 'ON' if '+miniapps' in spec else 'OFF')
- ])
+ args.append(self.define('SENSEI_PYTHON_VERSION', 3))
+ args.append(self.define_from_variant('ENABLE_CATALYST_PYTHON', 'catalyst'))
return args
diff --git a/var/spack/repos/builtin/packages/sentencepiece/package.py b/var/spack/repos/builtin/packages/sentencepiece/package.py
index f3b168db66..0cf364e661 100644
--- a/var/spack/repos/builtin/packages/sentencepiece/package.py
+++ b/var/spack/repos/builtin/packages/sentencepiece/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Sentencepiece(CMakePackage):
maintainers = ['adamjstewart']
+ version('0.1.91', sha256='acbc7ea12713cd2a8d64892f8d2033c7fd2bb4faecab39452496120ace9a4b1b')
version('0.1.85', sha256='dd4956287a1b6af3cbdbbd499b7227a859a4e3f41c9882de5e6bdd929e219ae6')
depends_on('cmake@3.1:', type='build')
diff --git a/var/spack/repos/builtin/packages/sentieon-genomics/package.py b/var/spack/repos/builtin/packages/sentieon-genomics/package.py
index e58877abbc..abfd2dd437 100644
--- a/var/spack/repos/builtin/packages/sentieon-genomics/package.py
+++ b/var/spack/repos/builtin/packages/sentieon-genomics/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os.path
+
from spack import *
@@ -19,10 +20,11 @@ class SentieonGenomics(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://www.sentieon.com/"
url = "file://{0}/sentieon-genomics-201808.01.tar.gz".format(os.getcwd())
+ manual_download = True
version('201808.07', sha256='fb66b18a7b99e44968eb2c3a6a5b761d6b1e70fba9f7dfc4e5db3a74ab3d3dd9')
version('201808.01', sha256='6d77bcd5a35539549b28eccae07b19a3b353d027720536e68f46dcf4b980d5f7')
diff --git a/var/spack/repos/builtin/packages/seqan/package.py b/var/spack/repos/builtin/packages/seqan/package.py
index f70a6a7d52..bb970b7d10 100644
--- a/var/spack/repos/builtin/packages/seqan/package.py
+++ b/var/spack/repos/builtin/packages/seqan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/seqkit/package.py b/var/spack/repos/builtin/packages/seqkit/package.py
index 7ac7e979d9..bb85b1e03b 100644
--- a/var/spack/repos/builtin/packages/seqkit/package.py
+++ b/var/spack/repos/builtin/packages/seqkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Seqkit(Package):
"""A cross-platform and ultrafast toolkit for FASTA/Q file manipulation
in Golang."""
- homepage = "http://bioinf.shenwei.me/seqkit"
+ homepage = "https://bioinf.shenwei.me/seqkit"
url = "https://github.com/shenwei356/seqkit/releases/download/v0.10.1/seqkit_linux_amd64.tar.gz"
version('0.10.1', sha256='82f1c86dc4bd196403a56c2bf3ec063e5674a71777e68d940c4cc3d8411d2e9d')
diff --git a/var/spack/repos/builtin/packages/seqprep/package.py b/var/spack/repos/builtin/packages/seqprep/package.py
index 06ce717785..f595b1a38a 100644
--- a/var/spack/repos/builtin/packages/seqprep/package.py
+++ b/var/spack/repos/builtin/packages/seqprep/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/seqtk/package.py b/var/spack/repos/builtin/packages/seqtk/package.py
index eab48389bb..b3c4a0a31c 100644
--- a/var/spack/repos/builtin/packages/seqtk/package.py
+++ b/var/spack/repos/builtin/packages/seqtk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/serf/package.py b/var/spack/repos/builtin/packages/serf/package.py
index 96df6f7579..f89417b5a8 100644
--- a/var/spack/repos/builtin/packages/serf/package.py
+++ b/var/spack/repos/builtin/packages/serf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,55 +13,57 @@ class Serf(SConsPackage):
homepage = 'https://serf.apache.org/'
url = 'https://archive.apache.org/dist/serf/serf-1.3.9.tar.bz2'
+ maintainers = ['cosmicexplorer']
+
version('1.3.9', sha256='549c2d21c577a8a9c0450facb5cca809f26591f048e466552240947bdf7a87cc')
version('1.3.8', sha256='e0500be065dbbce490449837bb2ab624e46d64fc0b090474d9acaa87c82b2590')
variant('debug', default=False,
description='Enable debugging info and strict compile warnings')
- depends_on('scons@2.3.0:', type='build')
-
depends_on('apr')
depends_on('apr-util')
depends_on('openssl')
+ depends_on('python+pythoncmd', type='build')
+ depends_on('scons@2.3.0:', type='build')
+ depends_on('uuid')
depends_on('zlib')
patch('py3syntax.patch')
+ patch('py3-hashbang.patch')
def build_args(self, spec, prefix):
- args = [
- 'PREFIX={0}'.format(prefix),
- 'APR={0}'.format(spec['apr'].prefix),
- 'APU={0}'.format(spec['apr-util'].prefix),
- 'OPENSSL={0}'.format(spec['openssl'].prefix),
- 'ZLIB={0}'.format(spec['zlib'].prefix),
- ]
-
- # ZLIB variable is ignored on non-Windows platforms before and
- # including the version 1.3.9:
- # https://www.mail-archive.com/dev@serf.apache.org/msg01359.html
- # The issue is fixed in the trunk. Hopefully, the next stable version
- # will work properly.
- if '@:1.3.9' in self.spec:
- zlib_spec = self.spec['zlib']
- link_flags = [zlib_spec.libs.search_flags]
- link_flags.extend([self.compiler.cc_rpath_arg + d
- for d in zlib_spec.libs.directories])
- args.append('LINKFLAGS=' + ' '.join(link_flags))
- args.append('CPPFLAGS=' + zlib_spec.headers.cpp_flags)
-
- if '+debug' in spec:
- args.append('DEBUG=yes')
- else:
- args.append('DEBUG=no')
+ args = {
+ 'PREFIX': prefix,
+ 'APR': spec['apr'].prefix,
+ 'APU': spec['apr-util'].prefix,
+ 'OPENSSL': spec['openssl'].prefix,
+ 'ZLIB': spec['zlib'].prefix,
+ 'DEBUG': 'yes' if '+debug' in spec else 'no',
+ }
# SCons doesn't pass Spack environment variables to the
# execution environment. Therefore, we can't use Spack's compiler
# wrappers. Use the actual compilers. SCons seems to RPATH things
# on its own anyway.
- args.append('CC={0}'.format(self.compiler.cc))
+ args['CC'] = self.compiler.cc
+
+ # Old versions of serf ignore the ZLIB variable on non-Windows platforms.
+ # Also, there is no UUID variable to specify its installation location.
+ # Pass explicit link flags for both.
+ library_dirs = []
+ include_dirs = []
+ for dep in spec.dependencies(deptype='link'):
+ query = self.spec[dep.name]
+ library_dirs.extend(query.libs.directories)
+ include_dirs.extend(query.headers.directories)
+
+ rpath = self.compiler.cc_rpath_arg
+ args['LINKFLAGS'] = '-L' + ' -L'.join(library_dirs)
+ args['LINKFLAGS'] += ' ' + rpath + (' ' + rpath).join(library_dirs)
+ args['CPPFLAGS'] = '-I' + ' -I'.join(include_dirs)
- return args
+ return [key + '=' + value for key, value in args.items()]
def build_test(self):
# FIXME: Several test failures:
diff --git a/var/spack/repos/builtin/packages/serf/py3-hashbang.patch b/var/spack/repos/builtin/packages/serf/py3-hashbang.patch
new file mode 100644
index 0000000000..ac89d058c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/serf/py3-hashbang.patch
@@ -0,0 +1,20 @@
+diff --git a/build/gen_def.py b/build/gen_def.py
+index a2222d0..926b813 100755
+--- a/build/gen_def.py
++++ b/build/gen_def.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # gen_def.py : Generate the .DEF file for Windows builds
+ #
+diff --git a/build/check.py b/build/check.py
+index 2dacb4c..c44eb5a 100755
+--- a/build/check.py
++++ b/build/check.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # check.py : Run all the test cases.
+ #
diff --git a/var/spack/repos/builtin/packages/sessreg/package.py b/var/spack/repos/builtin/packages/sessreg/package.py
index dbed54afcd..2eb69fa164 100644
--- a/var/spack/repos/builtin/packages/sessreg/package.py
+++ b/var/spack/repos/builtin/packages/sessreg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,12 +11,12 @@ class Sessreg(AutotoolsPackage, XorgPackage):
sessions. It was originally written for use with xdm, but may also be
used with other display managers such as gdm or kdm."""
- homepage = "http://cgit.freedesktop.org/xorg/app/sessreg"
+ homepage = "https://cgit.freedesktop.org/xorg/app/sessreg"
xorg_mirror_path = "app/sessreg-1.1.0.tar.gz"
version('1.1.0', sha256='e561edb48dfc3b0624554169c15f9dd2c3139e83084cb323b0c712724f2b6043')
- depends_on('xproto@7.0.25:', type='build')
+ depends_on('xproto@7.0.25:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/setserial/package.py b/var/spack/repos/builtin/packages/setserial/package.py
index 01b9695a88..8209915439 100644
--- a/var/spack/repos/builtin/packages/setserial/package.py
+++ b/var/spack/repos/builtin/packages/setserial/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Setserial(AutotoolsPackage):
"""A utility for configuring serial ports."""
- homepage = "https://setserial.sourceforge.net"
+ homepage = "http://setserial.sourceforge.net"
url = "https://udomain.dl.sourceforge.net/project/setserial/setserial/2.17/setserial-2.17.tar.gz"
version('2.17', sha256='7e4487d320ac31558563424189435d396ddf77953bb23111a17a3d1487b5794a')
diff --git a/var/spack/repos/builtin/packages/setxkbmap/package.py b/var/spack/repos/builtin/packages/setxkbmap/package.py
index 2c3ebba00b..df4c3302fa 100644
--- a/var/spack/repos/builtin/packages/setxkbmap/package.py
+++ b/var/spack/repos/builtin/packages/setxkbmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Setxkbmap(AutotoolsPackage, XorgPackage):
specified keyboard to use the layout determined by the options listed
on the command line."""
- homepage = "http://cgit.freedesktop.org/xorg/app/setxkbmap"
+ homepage = "https://cgit.freedesktop.org/xorg/app/setxkbmap"
xorg_mirror_path = "app/setxkbmap-1.3.1.tar.gz"
version('1.3.1', sha256='e24a73669007fa3b280eba4bdc7f75715aeb2e394bf2d63f5cc872502ddde264')
diff --git a/var/spack/repos/builtin/packages/sfcgal/package.py b/var/spack/repos/builtin/packages/sfcgal/package.py
index c1e80174e0..fb864b45be 100644
--- a/var/spack/repos/builtin/packages/sfcgal/package.py
+++ b/var/spack/repos/builtin/packages/sfcgal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,7 +19,7 @@ class Sfcgal(CMakePackage):
version('1.3.7', sha256='30ea1af26cb2f572c628aae08dd1953d80a69d15e1cac225390904d91fce031b')
- # Ref: http://oslandia.github.io/SFCGAL/installation.html
+ # Ref: https://oslandia.github.io/SFCGAL/installation.html
depends_on('cgal@4.3: +core')
depends_on('boost@1.54.0:')
depends_on('mpfr@2.2.1:')
diff --git a/var/spack/repos/builtin/packages/sfcio/package.py b/var/spack/repos/builtin/packages/sfcio/package.py
new file mode 100644
index 0000000000..ed9d65ebbe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sfcio/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 Sfcio(CMakePackage):
+ """The SFCIO library provides an API to read the NCEP Spectral model surface
+ files.
+
+ This is part of the NCEPLIBS project."""
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS-sfcio"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-sfcio/archive/refs/tags/v1.4.1.tar.gz"
+
+ maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett']
+
+ version('1.4.1', sha256='d9f900cf18ec1a839b4128c069b1336317ffc682086283443354896746b89c59')
diff --git a/var/spack/repos/builtin/packages/sga/package.py b/var/spack/repos/builtin/packages/sga/package.py
index 5114f38cf4..dc6d0cffc2 100644
--- a/var/spack/repos/builtin/packages/sga/package.py
+++ b/var/spack/repos/builtin/packages/sga/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sgpp/package.py b/var/spack/repos/builtin/packages/sgpp/package.py
index 7afddd732c..d5b18472f2 100644
--- a/var/spack/repos/builtin/packages/sgpp/package.py
+++ b/var/spack/repos/builtin/packages/sgpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,6 +19,7 @@ class Sgpp(SConsPackage):
# Versions with Python 3 bindings:
version('master', branch='master')
+ version('3.4.0', sha256='450d4002850b0a48c561abe221b634261ca44eee111ca605c3e80797182f40b3')
version('3.3.0', sha256='ca4d5b79f315b425ce69b04940c141451a76848bf1bd7b96067217304c68e2d4')
version('3.2.0', sha256='dab83587fd447f92ed8546eacaac6b8cbe65b8db5e860218c0fa2e42f776962d')
# Versions with Python 2 bindings:
@@ -34,7 +35,7 @@ class Sgpp(SConsPackage):
# be copied into prefix/lib upon installation
# (otherwise it would be prefix/lib/sgpp)
# Fixed in SGpp in PR https://github.com/SGpp/SGpp/pull/222
- patch('directory.patch', when='@:3.2.0')
+ patch('directory.patch', when='@1.0.0:3.2.0')
# Fix faulty setup.py introduced in 3.2.0
# Fixed in SGpp in version 3.3.0
patch('fix-setup-py.patch', when='@3.2.0')
@@ -73,20 +74,23 @@ class Sgpp(SConsPackage):
# extends('openjdk', when='+java')
# Mandatory dependencies
- depends_on('scons@2.5.1', when='@:3.1.0', type=('build'))
+ depends_on('scons', type=('build'))
+ depends_on('scons@2.5.1', when='@1.0.0:3.1.0', type=('build'))
depends_on('scons@3:', when='@3.2.0:', type=('build'))
depends_on('zlib', type=('link'))
# Python dependencies
extends('python', when='+python')
depends_on('py-setuptools', when='+python', type=('build'))
# Python 3 support was added in version 3.2.0
- depends_on('python@2.7:2.8', when='@:3.1.0+python', type=('build', 'run'))
- depends_on('python@3:', when='@3.2.0:+python', type=('build', 'run'))
+ depends_on('python@2.7:2.8', when='@1.0.0:3.1.0+python', type=('build', 'run'))
+ depends_on('python@3.7:', when='@3.2.0:+python', type=('build', 'run'))
depends_on('swig@3:', when='+python', type=('build'))
# Python libraries (version depends on whether we use Python 2 or 3)
- depends_on('py-numpy@:1.16', when='@:3.1.0+python', type=('build', 'run'))
+ depends_on('py-numpy', when='+python', type=('build', 'run'))
+ depends_on('py-numpy@:1.16', when='@1.0.0:3.1.0+python', type=('build', 'run'))
depends_on('py-numpy@1.17:', when='@3.2.0:+python', type=('build', 'run'))
- depends_on('py-scipy@:1.2.3', when='@:3.1.0+python', type=('build', 'run'))
+ depends_on('py-scipy', when='+python', type=('build', 'run'))
+ depends_on('py-scipy@:1.2.3', when='@1.0.0:3.1.0+python', type=('build', 'run'))
depends_on('py-scipy@1.3.0:', when='@3.2.0:+python', type=('build', 'run'))
# OpenCL dependency
depends_on('opencl@1.1:', when='+opencl', type=('build', 'run'))
@@ -113,14 +117,14 @@ class Sgpp(SConsPackage):
conflicts('+misc', when='-solver')
conflicts('+misc', when='-optimization')
conflicts('+misc', when='-pde')
- conflicts('+misc', when='@:3.1.0',
+ conflicts('+misc', when='@1.0.0:3.1.0',
msg='The misc module was introduced in version 3.2.0')
# Combigrid module requirements (for 3.2.0 or older)
# newer combigrids have no dependencies
- conflicts('+combigrid', when='@:3.2.0~optimization')
- conflicts('+combigrid', when='@:3.2.0~pde')
- conflicts('+combigrid', when='@:3.2.0~solver')
- conflicts('+combigrid', when='@:3.2.0~quadrature')
+ conflicts('+combigrid', when='@1.0.0:3.2.0~optimization')
+ conflicts('+combigrid', when='@1.0.0:3.2.0~pde')
+ conflicts('+combigrid', when='@1.0.0:3.2.0~solver')
+ conflicts('+combigrid', when='@1.0.0:3.2.0~quadrature')
patch('for_aarch64.patch', when='target=aarch64:')
@@ -131,7 +135,7 @@ class Sgpp(SConsPackage):
'RUN_BOOST_TESTS=1']
if ('+python' in spec):
self.args.append('RUN_PYTHON_TESTS=1')
- if spec.satisfies('@:3.2.0'):
+ if spec.satisfies('@1.0.0:3.2.0'):
self.args.append('RUN_CPPLINT=1')
else: # argument was renamed after 3.2.0
self.args.append('CHECK_STYLE=1')
@@ -139,7 +143,7 @@ class Sgpp(SConsPackage):
self.args = ['COMPILE_BOOST_TESTS=0',
'RUN_BOOST_TESTS=0',
'RUN_PYTHON_TESTS=0']
- if spec.satisfies('@:3.2.0'):
+ if spec.satisfies('@1.0.0:3.2.0'):
self.args.append('RUN_CPPLINT=0')
else: # argument was renamed after 3.2.0
self.args.append('CHECK_STYLE=0')
@@ -171,7 +175,7 @@ class Sgpp(SConsPackage):
'1' if '+solver' in spec else '0'))
# Misc flag did not exist in older versions
- if spec.satisfies('@3.2.0:'):
+ if not spec.satisfies('@1.0.0:3.2.0'):
self.args.append('SG_MISC={0}'.format(
'1' if '+misc' in spec else '0'))
@@ -198,6 +202,8 @@ class Sgpp(SConsPackage):
if ('+mpi' in spec):
self.args.append('CXX={0}'.format(
self.spec['mpi'].mpicxx))
+ else:
+ self.args.append('CXX={0}'.format(self.compiler.cxx))
return self.args
diff --git a/var/spack/repos/builtin/packages/shadow/package.py b/var/spack/repos/builtin/packages/shadow/package.py
index 99cef1fa47..26260b8468 100644
--- a/var/spack/repos/builtin/packages/shadow/package.py
+++ b/var/spack/repos/builtin/packages/shadow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,5 +14,6 @@ class Shadow(AutotoolsPackage):
url = "https://github.com/shadow-maint/shadow/releases/download/4.7/shadow-4.7.tar.gz"
git = "https://github.com/shadow-maint/shadow.git"
- version('4.7', sha256='5135b0ca2a361a218fab59e63d9c1720d2a8fc1faa520c819a654b638017286f')
- version('4.6', sha256='4668f99bd087399c4a586084dc3b046b75f560720d83e92fd23bf7a89dda4d31')
+ version('4.8.1', sha256='3ee3081fbbcbcfea5c8916419e46bc724807bab271072104f23e7a29e9668f3a')
+ version('4.7', sha256='5135b0ca2a361a218fab59e63d9c1720d2a8fc1faa520c819a654b638017286f')
+ version('4.6', sha256='4668f99bd087399c4a586084dc3b046b75f560720d83e92fd23bf7a89dda4d31')
diff --git a/var/spack/repos/builtin/packages/shapeit/package.py b/var/spack/repos/builtin/packages/shapeit/package.py
index d0fa2e6d02..bbd6bab2a0 100644
--- a/var/spack/repos/builtin/packages/shapeit/package.py
+++ b/var/spack/repos/builtin/packages/shapeit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/shapeit4/package.py b/var/spack/repos/builtin/packages/shapeit4/package.py
index 009e5084bf..864365894f 100644
--- a/var/spack/repos/builtin/packages/shapeit4/package.py
+++ b/var/spack/repos/builtin/packages/shapeit4/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/shapelib/package.py b/var/spack/repos/builtin/packages/shapelib/package.py
index 47be5cdaa1..8f331c0f7f 100644
--- a/var/spack/repos/builtin/packages/shapelib/package.py
+++ b/var/spack/repos/builtin/packages/shapelib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/shared-mime-info/package.py b/var/spack/repos/builtin/packages/shared-mime-info/package.py
index 25cfe11182..600fa8ffab 100644
--- a/var/spack/repos/builtin/packages/shared-mime-info/package.py
+++ b/var/spack/repos/builtin/packages/shared-mime-info/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/shark/package.py b/var/spack/repos/builtin/packages/shark/package.py
index 6c6fa433a4..71b11ae611 100644
--- a/var/spack/repos/builtin/packages/shark/package.py
+++ b/var/spack/repos/builtin/packages/shark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Shark(CMakePackage):
"""Shark is a fast, modular, general open-source C++ machine
learning library. """
- homepage = "http://www.shark-ml.org/"
+ homepage = "https://www.shark-ml.org/"
url = "https://github.com/Shark-ML/Shark/archive/v4.0.1.tar.gz"
version('4.0.1', sha256='1caf9c73c5ebf54f9543a090e2b05ac646f95559aa1de483cd7662c378c1ec21')
diff --git a/var/spack/repos/builtin/packages/shc/package.py b/var/spack/repos/builtin/packages/shc/package.py
index e8ca1c18fd..a6c6484447 100644
--- a/var/spack/repos/builtin/packages/shc/package.py
+++ b/var/spack/repos/builtin/packages/shc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/shengbte/package.py b/var/spack/repos/builtin/packages/shengbte/package.py
index 59697a51ce..b76cc2c6c5 100644
--- a/var/spack/repos/builtin/packages/shengbte/package.py
+++ b/var/spack/repos/builtin/packages/shengbte/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/shiny-server/package.py b/var/spack/repos/builtin/packages/shiny-server/package.py
index 87cefed936..0f575c53a1 100644
--- a/var/spack/repos/builtin/packages/shiny-server/package.py
+++ b/var/spack/repos/builtin/packages/shiny-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -26,7 +26,7 @@ class ShinyServer(CMakePackage):
version('1.5.3.838', sha256='6fd1b12cd1cbe5c64cacbec4accefe955353f9c675e5feff809c0e911a382141')
depends_on('python@:2.8') # docs say: "Really. 3.x will not work"
- depends_on('cmake@2.8.10:')
+ depends_on('cmake@2.8.10:', type='build')
depends_on('git')
depends_on('r+X')
depends_on('openssl')
diff --git a/var/spack/repos/builtin/packages/shiro/package.py b/var/spack/repos/builtin/packages/shiro/package.py
index a97e5ca87d..863c77c1b7 100644
--- a/var/spack/repos/builtin/packages/shiro/package.py
+++ b/var/spack/repos/builtin/packages/shiro/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/shocklibs/package.py b/var/spack/repos/builtin/packages/shocklibs/package.py
index 49e9b76828..983ff6e192 100644
--- a/var/spack/repos/builtin/packages/shocklibs/package.py
+++ b/var/spack/repos/builtin/packages/shocklibs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/shoremap/package.py b/var/spack/repos/builtin/packages/shoremap/package.py
index c03aa6e186..34693da379 100644
--- a/var/spack/repos/builtin/packages/shoremap/package.py
+++ b/var/spack/repos/builtin/packages/shoremap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/shortbred/package.py b/var/spack/repos/builtin/packages/shortbred/package.py
index e64fb340e9..11ae21c8be 100644
--- a/var/spack/repos/builtin/packages/shortbred/package.py
+++ b/var/spack/repos/builtin/packages/shortbred/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/shortstack/package.py b/var/spack/repos/builtin/packages/shortstack/package.py
index 22de260298..ced100a5e9 100644
--- a/var/spack/repos/builtin/packages/shortstack/package.py
+++ b/var/spack/repos/builtin/packages/shortstack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Shortstack(Package):
with respect to a reference genome, and output a comprehensive and
informative annotation of all discovered small RNA genes."""
- homepage = "http://sites.psu.edu/axtell/software/shortstack/"
+ homepage = "https://sites.psu.edu/axtell/software/shortstack/"
url = "https://github.com/MikeAxtell/ShortStack/archive/v3.8.3.tar.gz"
version('3.8.3', sha256='7c76f51ed949ca95ec5df7cb54803ae2350658fd64c75909351d5a856abb0dbe')
diff --git a/var/spack/repos/builtin/packages/showfont/package.py b/var/spack/repos/builtin/packages/showfont/package.py
index ae06e94365..e6d1822d4d 100644
--- a/var/spack/repos/builtin/packages/showfont/package.py
+++ b/var/spack/repos/builtin/packages/showfont/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Showfont(AutotoolsPackage, XorgPackage):
The information shown includes font information, font properties,
character metrics, and character bitmaps."""
- homepage = "http://cgit.freedesktop.org/xorg/app/showfont"
+ homepage = "https://cgit.freedesktop.org/xorg/app/showfont"
xorg_mirror_path = "app/showfont-1.0.5.tar.gz"
version('1.0.5', sha256='566e34a145ea73397724d46e84f6a9b3691cf55d0fcb96ec7f917b2b39265ebb')
diff --git a/var/spack/repos/builtin/packages/shtools/package.py b/var/spack/repos/builtin/packages/shtools/package.py
index dc0388939f..6b90a5156a 100644
--- a/var/spack/repos/builtin/packages/shtools/package.py
+++ b/var/spack/repos/builtin/packages/shtools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,7 @@ class Shtools(MakefilePackage):
maintainers = ['eschnett']
+ version('4.8', sha256='c36fc86810017e544abbfb12f8ddf6f101a1ac8b89856a76d7d9801ffc8dac44')
version('4.5', sha256='1975a2a2bcef8c527d321be08c13c2bc479e0d6b81c468a3203f95df59be4f89')
# Note: This package also provides Python wrappers. We do not
@@ -30,18 +31,23 @@ class Shtools(MakefilePackage):
def makeopts(self, spec, prefix):
return [
"F95={0}".format(self.compiler.fc),
- ("F95FLAGS={0} -O3 -std=f2003 -ffast-math".
- format(self.compiler.fc_pic_flag)),
+ "F95FLAGS={0} -O3 -std=gnu -ffast-math".
+ format(self.compiler.fc_pic_flag),
"OPENMPFLAGS={0}".format(self.compiler.openmp_flag),
"BLAS={0}".format(spec['blas'].libs),
"FFTW={0}".format(spec['fftw'].libs),
"LAPACK={0}".format(spec['lapack'].libs),
"PREFIX={0}".format(prefix),
+ "PWD={0}".format(self.build_directory),
]
def build(self, spec, prefix):
- target = 'fortran-mp' if spec.satisfies('+openmp') else 'fortran'
- make(target, *self.makeopts(self, spec, prefix))
+ with working_dir(self.build_directory):
+ # The 'fortran' and 'fortran-mp' targets must be built separately
+ make('fortran', *self.makeopts(spec, prefix))
+ if spec.satisfies('+openmp'):
+ make('fortran-mp', *self.makeopts(spec, prefix))
def install(self, spec, prefix):
- make('install', *self.makeopts(self, spec, prefix))
+ with working_dir(self.build_directory):
+ make('install', *self.makeopts(spec, prefix))
diff --git a/var/spack/repos/builtin/packages/shuffile/package.py b/var/spack/repos/builtin/packages/shuffile/package.py
index e7a8da2c0e..737d535273 100644
--- a/var/spack/repos/builtin/packages/shuffile/package.py
+++ b/var/spack/repos/builtin/packages/shuffile/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,16 +10,17 @@ class Shuffile(CMakePackage):
"""Shuffle files between MPI ranks"""
homepage = "https://github.com/ecp-veloc/shuffile"
- url = "https://github.com/ecp-veloc/shuffile/archive/v0.0.3.zip"
+ url = "https://github.com/ecp-veloc/shuffile/archive/v0.0.4.tar.gz"
git = "https://github.com/ecp-veloc/shuffile.git"
tags = ['ecp']
- version('master', branch='master')
- version('0.0.3', sha256='6debdd9d6e6f1c4ec31015d7956e8b556acd61ce31f757e4d1fa5002029c75e2')
+ version('main', branch='main')
+ version('0.0.4', sha256='f0249ab31fc6123103ad67b1eaf799277c72adcf0dfcddf8c3a18bad2d45031d')
+ version('0.0.3', sha256='a3f685526a1146a5ad8dbacdc5f9c2e1152d9761a1a179c1db34f55afc8372f6')
depends_on('mpi')
- depends_on('kvtree')
+ depends_on('kvtree+mpi')
def cmake_args(self):
args = []
diff --git a/var/spack/repos/builtin/packages/sickle/package.py b/var/spack/repos/builtin/packages/sickle/package.py
index 5b61aea14e..260614c800 100644
--- a/var/spack/repos/builtin/packages/sickle/package.py
+++ b/var/spack/repos/builtin/packages/sickle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/siesta/package.py b/var/spack/repos/builtin/packages/siesta/package.py
index 17b8e5ec74..00d647b2c6 100644
--- a/var/spack/repos/builtin/packages/siesta/package.py
+++ b/var/spack/repos/builtin/packages/siesta/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Siesta(Package):
"""SIESTA performs electronic structure calculations and ab initio molecular
@@ -14,8 +15,11 @@ class Siesta(Package):
homepage = "https://departments.icmab.es/leem/siesta/"
- version('4.0.1', sha256='bfb9e4335ae1d1639a749ce7e679e739fdead5ee5766b5356ea1d259a6b1e6d1', url='https://launchpad.net/siesta/4.0/4.0.1/+download/siesta-4.0.1.tar.gz')
- version('3.2-pl-5', sha256='e438bb007608e54c650e14de7fa0b5c72562abb09cbd92dcfb5275becd929a23', url='http://departments.icmab.es/leem/siesta/CodeAccess/Code/siesta-3.2-pl-5.tgz')
+ version('4.0.2', sha256='bafbda19358f0c1dd39bb1253c92ee548791a1c0f648977051d2657216874f7e')
+ version('4.0.1', sha256='bfb9e4335ae1d1639a749ce7e679e739fdead5ee5766b5356ea1d259a6b1e6d1',
+ url='https://launchpad.net/siesta/4.0/4.0.1/+download/siesta-4.0.1.tar.gz')
+ version('3.2-pl-5', sha256='e438bb007608e54c650e14de7fa0b5c72562abb09cbd92dcfb5275becd929a23',
+ url='http://departments.icmab.es/leem/siesta/CodeAccess/Code/siesta-3.2-pl-5.tgz')
patch('configure.patch', when='@:4.0')
@@ -28,6 +32,11 @@ class Siesta(Package):
phases = ['configure', 'build', 'install']
+ def flag_handler(self, name, flags):
+ if '%gcc@10:' in self.spec and name == 'fflags':
+ flags.append('-fallow-argument-mismatch')
+ return (flags, None, None)
+
def configure(self, spec, prefix):
sh = which('sh')
configure_args = ['--enable-mpi',
@@ -45,6 +54,8 @@ class Siesta(Package):
# Intel's mpiifort is not found
'MPIFC=%s' % spec['mpi'].mpifc
]
+ if self.spec.satisfies('%gcc'):
+ configure_args.append('FCFLAGS=-ffree-line-length-0')
for d in ['Obj', 'Obj_trans']:
with working_dir(d, create=True):
sh('../Src/configure', *configure_args)
diff --git a/var/spack/repos/builtin/packages/sigio/package.py b/var/spack/repos/builtin/packages/sigio/package.py
new file mode 100644
index 0000000000..ba63a5a013
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sigio/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 Sigio(CMakePackage):
+ """The SIGIO library provides an Application Program Interface for performing
+ I/O on the sigma restart file of the NOAA global spectral model.
+
+ This is part of the NCEPLIBS project."""
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS-sigio"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-sigio/archive/refs/tags/v2.3.2.tar.gz"
+
+ maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett']
+
+ version('2.3.2', sha256='333f3cf3a97f97103cbafcafc2ad89b24faa55b1332a98adc1637855e8a5b613')
diff --git a/var/spack/repos/builtin/packages/signalp/package.py b/var/spack/repos/builtin/packages/signalp/package.py
index 4ed3336763..28ace7ef89 100644
--- a/var/spack/repos/builtin/packages/signalp/package.py
+++ b/var/spack/repos/builtin/packages/signalp/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Signalp(Package):
"""SignalP predicts the presence and location of signal peptide cleavage
@@ -15,9 +16,9 @@ class Signalp(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
- homepage = "http://www.cbs.dtu.dk/services/SignalP/"
+ homepage = "https://www.cbs.dtu.dk/services/SignalP/"
url = "file://{0}/signalp-4.1f.Linux.tar.gz".format(os.getcwd())
manual_download = True
diff --git a/var/spack/repos/builtin/packages/signify/package.py b/var/spack/repos/builtin/packages/signify/package.py
index 519556aa32..f2e7309dc2 100644
--- a/var/spack/repos/builtin/packages/signify/package.py
+++ b/var/spack/repos/builtin/packages/signify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/silo/H5FD_class_t-terminate.patch b/var/spack/repos/builtin/packages/silo/H5FD_class_t-terminate.patch
new file mode 100644
index 0000000000..02df290b5b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/silo/H5FD_class_t-terminate.patch
@@ -0,0 +1,12 @@
+diff --git a/src/hdf5_drv/H5FDsilo.c b/src/hdf5_drv/H5FDsilo.c
+index 840dfd0..0d09147 100644
+--- a/src/hdf5_drv/H5FDsilo.c
++++ b/src/hdf5_drv/H5FDsilo.c
+@@ -500,6 +500,7 @@ static const H5FD_class_t H5FD_silo_g = {
+ "silo", /*name */
+ MAXADDR, /*maxaddr */
+ H5F_CLOSE_WEAK, /* fc_degree */
++ NULL, /*terminate */
+ H5FD_silo_sb_size, /*sb_size */
+ H5FD_silo_sb_encode, /*sb_encode */
+ H5FD_silo_sb_decode, /*sb_decode */
diff --git a/var/spack/repos/builtin/packages/silo/package.py b/var/spack/repos/builtin/packages/silo/package.py
index 3d9ef4e16c..1c8576bf96 100644
--- a/var/spack/repos/builtin/packages/silo/package.py
+++ b/var/spack/repos/builtin/packages/silo/package.py
@@ -1,21 +1,22 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack.util.environment import is_system_path
class Silo(AutotoolsPackage):
"""Silo is a library for reading and writing a wide variety of scientific
data to binary, disk files."""
- homepage = "http://wci.llnl.gov/simulation/computer-codes/silo"
- url = "https://wci.llnl.gov/content/assets/docs/simulation/computer-codes/silo/silo-4.10.2/silo-4.10.2.tar.gz"
+ homepage = "https://wci.llnl.gov/simulation/computer-codes/silo"
+ url = "https://wci.llnl.gov/sites/wci/files/2021-01/silo-4.10.2.tgz"
version('4.10.2', sha256='3af87e5f0608a69849c00eb7c73b11f8422fa36903dd14610584506e7f68e638', preferred=True)
version('4.10.2-bsd', sha256='4b901dfc1eb4656e83419a6fde15a2f6c6a31df84edfad7f1dc296e01b20140e',
- url="https://wci.llnl.gov/content/assets/docs/simulation/computer-codes/silo/silo-4.10.2/silo-4.10.2-bsd.tar.gz")
+ url="https://wci.llnl.gov/sites/wci/files/2021-01/silo-4.10.2-bsd.tgz")
version('4.9', sha256='90f3d069963d859c142809cfcb034bc83eb951f61ac02ccb967fc8e8d0409854')
version('4.8', sha256='c430c1d33fcb9bc136a99ad473d535d6763bd1357b704a915ba7b1081d58fb21')
@@ -27,23 +28,36 @@ class Silo(AutotoolsPackage):
description='Produce position-independent code (for shared libs)')
variant('mpi', default=True,
description='Compile with MPI Compatibility')
-
- depends_on('hdf5@:1.10.999', when='@:4.10.2')
- depends_on('hdf5~mpi', when='~mpi')
+ variant('hdf5', default=True,
+ description='Use the HDF5 for database')
+ variant('hzip', default=True,
+ description='Enable hzip support')
+ variant('fpzip', default=True,
+ description='Enable fpzip support')
+
+ depends_on('m4', type='build', when='+shared')
+ depends_on('autoconf', type='build', when='+shared')
+ depends_on('automake', type='build', when='+shared')
+ depends_on('libtool', type='build', when='+shared')
depends_on('mpi', when='+mpi')
- depends_on('hdf5+mpi', when='+mpi')
- depends_on('qt~framework@4.8:4.9', when='+silex')
+ depends_on('hdf5@:1.10.999', when='@:4.10.2+hdf5')
+ depends_on('hdf5', when='+hdf5')
+ depends_on('qt+gui~framework@4.8:4.9', when='+silex')
depends_on('libx11', when='+silex')
+ # Xmu dependency is required on Ubuntu 18-20
+ depends_on('libxmu', when='+silex')
depends_on('readline')
depends_on('zlib')
patch('remove-mpiposix.patch', when='@4.8:4.10.2')
+ patch('H5FD_class_t-terminate.patch', when='^hdf5@1.10.0:')
def flag_handler(self, name, flags):
spec = self.spec
if name == 'ldflags':
- if spec['hdf5'].satisfies('~shared'):
- flags.append('-ldl')
+ if '+hdf5' in spec:
+ if spec['hdf5'].satisfies('~shared'):
+ flags.append('-ldl')
flags.append(spec['readline'].libs.search_flags)
if '+pic' in spec:
@@ -70,6 +84,10 @@ class Silo(AutotoolsPackage):
# hasn't yet made it into silo.
# https://github.com/LLNL/fpzip/blob/master/src/pcmap.h
+ if self.spec.satisfies('@4.10.2-bsd'):
+ # The files below don't exist in the BSD licenced version
+ return
+
def repl(match):
# Change macro-like uppercase to title-case.
return match.group(1).title()
@@ -88,19 +106,40 @@ class Silo(AutotoolsPackage):
filter_file(r'\b(DOMAIN|RANGE|UNION)\b', repl, *files_to_filter)
+ @property
+ def force_autoreconf(self):
+ # Update autoconf's tests whether libtool supports shared libraries.
+ # (Otherwise, shared libraries are always disabled on Darwin.)
+ return self.spec.satisfies('+shared')
+
def configure_args(self):
spec = self.spec
config_args = [
- '--with-hdf5=%s,%s' % (spec['hdf5'].prefix.include,
- spec['hdf5'].prefix.lib),
- '--with-zlib=%s,%s' % (spec['zlib'].prefix.include,
- spec['zlib'].prefix.lib),
'--enable-install-lite-headers',
'--enable-fortran' if '+fortran' in spec else '--disable-fortran',
'--enable-silex' if '+silex' in spec else '--disable-silex',
'--enable-shared' if '+shared' in spec else '--disable-shared',
+ '--enable-hzip' if '+hzip' in spec else '--disable-hzip',
+ '--enable-fpzip' if '+fpzip' in spec else '--disable-fpzip',
]
+ # Do not specify the prefix of zlib if it is in a system directory
+ # (see https://github.com/spack/spack/pull/21900).
+ zlib_prefix = self.spec['zlib'].prefix
+ if is_system_path(zlib_prefix):
+ config_args.append('--with-zlib=yes')
+ else:
+ config_args.append(
+ '--with-zlib=%s,%s' % (zlib_prefix.include,
+ zlib_prefix.lib),
+ )
+
+ if '+hdf5' in spec:
+ config_args.append(
+ '--with-hdf5=%s,%s' % (spec['hdf5'].prefix.include,
+ spec['hdf5'].prefix.lib),
+ )
+
if '+silex' in spec:
x = spec['libx11']
config_args.extend([
@@ -116,3 +155,10 @@ class Silo(AutotoolsPackage):
config_args.append('FC=%s' % spec['mpi'].mpifc)
return config_args
+
+ @property
+ def libs(self):
+ shared = "+shared" in self.spec
+ return find_libraries(
+ "libsilo*", root=self.prefix, shared=shared, recursive=True
+ )
diff --git a/var/spack/repos/builtin/packages/simde/package.py b/var/spack/repos/builtin/packages/simde/package.py
new file mode 100644
index 0000000000..173054460f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/simde/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Simde(MesonPackage):
+ """The SIMDe header-only library provides fast, portable
+ implementations of SIMD intrinsics on hardware which doesn't
+ natively support them, such as calling SSE functions on ARM.
+ There is no performance penalty if the hardware supports the
+ native implementation (e.g., SSE/AVX runs at full speed on x86,
+ NEON on ARM, etc.)."""
+
+ homepage = "https://github.com/simd-everywhere/simde"
+ url = "https://github.com/simd-everywhere/simde/archive/v0.6.0.tar.gz"
+ git = "https://github.com/simd-everywhere/simde.git"
+
+ version('0.6.0', sha256='25a8b8c69c17ddc2f6209e86caa6b12d4ed91c0f841617efc56e5675eea84915')
+
+ patch('sve-gcc.patch', when='@0.6.0 %gcc')
+ conflicts('%gcc@8', when='target=a64fx',
+ msg='Internal compiler error with gcc8 and a64fx')
diff --git a/var/spack/repos/builtin/packages/simde/sve-gcc.patch b/var/spack/repos/builtin/packages/simde/sve-gcc.patch
new file mode 100644
index 0000000000..ea690e49de
--- /dev/null
+++ b/var/spack/repos/builtin/packages/simde/sve-gcc.patch
@@ -0,0 +1,18 @@
+diff --git a/simde/simde-features.h b/simde/simde-features.h
+index 2a3ce9c..5cfcf48 100644
+--- a/simde/simde-features.h
++++ b/simde/simde-features.h
+@@ -252,8 +252,10 @@
+
+ #if !defined(SIMDE_ARM_SVE_NATIVE) && !defined(SIMDE_ARM_SVE_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
+ #if defined(SIMDE_ARCH_ARM_SVE)
+- #define SIMDE_ARM_SVE_NATIVE
+- #include <arm_sve.h>
++ #if !defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(10,0,0)
++ #define SIMDE_ARM_SVE_NATIVE
++ #include <arm_sve.h>
++ #endif
+ #endif
+ #endif
+
+
diff --git a/var/spack/repos/builtin/packages/simgrid/package.py b/var/spack/repos/builtin/packages/simgrid/package.py
index b62ed1923c..cbcbfb44f4 100644
--- a/var/spack/repos/builtin/packages/simgrid/package.py
+++ b/var/spack/repos/builtin/packages/simgrid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,33 +10,55 @@ class Simgrid(CMakePackage):
"""To study the behavior of large-scale distributed systems such as Grids,
Clouds, HPC or P2P systems."""
- homepage = "http://simgrid.org/"
- url = "https://gforge.inria.fr/frs/download.php/file/37758/SimGrid-3.21.tar.gz"
- git = 'https://scm.gforge.inria.fr/anonscm/git/simgrid/simgrid.git'
+ homepage = "https://simgrid.org/"
+ url = "https://github.com/simgrid/simgrid/releases/download/v3.27/simgrid-3.27.tar.gz"
+ git = 'https://framagit.org/simgrid/simgrid.git'
+ version('3.27', sha256='51aeb9de0434066e5fec40e785f5ea9fa934afe7f6bfb4aa627246e765f1d6d7')
+ version('3.26', sha256='ac50da1eacc5a53b094a988a8ecde09962c29320f346b45e74dd32ab9d9f3e96')
+ version('3.25', sha256='0b5dcdde64f1246f3daa7673eb1b5bd87663c0a37a2c5dcd43f976885c6d0b46',
+ url='https://github.com/simgrid/simgrid/releases/download/v3.25/SimGrid-3.25.tar.gz')
+ version('3.24', sha256='c976ed1cbcc7ff136f6d1a8eda7d9ccf090e0e16d5239e6e631047ae9e592921',
+ url='https://github.com/simgrid/simgrid/releases/download/v3.24/SimGrid-3.24.tar.gz')
+ version('3.23', sha256='c3c86673abf0a2685337f1f520a7782d9611cd18d0374f35e1d98652fdbbaf86',
+ url='https://github.com/simgrid/simgrid/releases/download/v3.23/SimGrid-3.23.tar.gz')
+ version('3.22', sha256='4fdff0a8e4c81f8edf6f7eedfa32e19748abe688d156ea9240178c558c8bad33',
+ url='https://github.com/simgrid/simgrid/releases/download/v3_22/SimGrid-3.22.tar.gz')
version('3.21', sha256='d2a6e9021016dd39a2b6f8d5d18c8223f6885746c5269550d19ba29c47c0c6a0',
- url='https://gforge.inria.fr/frs/download.php/file/37758/SimGrid-3.21.tar.gz')
+ url='https://github.com/simgrid/simgrid/releases/download/v3_21/SimGrid-3.21.tar.gz')
version('3.20', sha256='4d4757eb45d87cf18d990d589c31d223b0ea8cf6fcd8c94fca4d38162193cef6',
- url='https://gforge.inria.fr/frs/download.php/file/37602/SimGrid-3.20.tar.gz')
+ url='https://github.com/simgrid/simgrid/releases/download/v3.20/SimGrid-3.20.tar.gz')
+
+ # gforge.inria.fr end of life https://gforge.inria.fr/forum/forum.php?forum_id=11543
version('3.19', sha256='64a3b82fdf0a65bb8b7c8e9feb01694360edaf38070097bf28aa181eccb86ea7',
+ deprecated=True,
url='https://gforge.inria.fr/frs/download.php/file/37452/SimGrid-3.19.tar.gz')
version('3.18', sha256='dc8f6223d89326b6a21c99eabc90598fa153d6b0818a63ff5c3ec8726e2257b2',
+ deprecated=True,
url='https://gforge.inria.fr/frs/download.php/file/37294/SimGrid-3.18.tar.gz')
version('3.17', sha256='f5e44f41983e83f65261598ab0de1909d3a8a3feb77f28e37d38f04631dbb908',
+ deprecated=True,
url='https://gforge.inria.fr/frs/download.php/file/37148/SimGrid-3.17.tar.gz')
version('3.16', sha256='51782534fec87eed9da345319ead699b13d7dad4be7ac89984a0446cb385d3fa',
+ deprecated=True,
url='https://gforge.inria.fr/frs/download.php/file/36900/SimGrid-3.16.tar.gz')
version('3.15', sha256='d1e411cdbfa953c018411b842727339ede6b82efcd5d3f6adc13a24f182fa9e8',
+ deprecated=True,
url='https://gforge.inria.fr/frs/download.php/file/36621/SimGrid-3.15.tar.gz')
version('3.14.159', sha256='2d93db245c6ec8039ffe332a77531b836ad093d57f18ec3f7920fe98e3719f48',
- url='http://gforge.inria.fr/frs/download.php/file/36384/SimGrid-3.14.159.tar.gz')
+ deprecated=True,
+ url='https://gforge.inria.fr/frs/download.php/file/36384/SimGrid-3.14.159.tar.gz')
version('3.13', sha256='7bcedd19492f9a32cc431840ad2688d0d6e4121982d6d26e0174b5c92b086121',
- url='http://gforge.inria.fr/frs/download.php/file/35817/SimGrid-3.13.tar.gz')
+ deprecated=True,
+ url='https://gforge.inria.fr/frs/download.php/file/35817/SimGrid-3.13.tar.gz')
version('3.12', sha256='d397ee0273395dc687fbcd2601515e7142559801a3db387454d77e0e18cd7878',
- url='http://gforge.inria.fr/frs/download.php/file/35215/SimGrid-3.12.tar.gz')
+ deprecated=True,
+ url='https://gforge.inria.fr/frs/download.php/file/35215/SimGrid-3.12.tar.gz')
version('3.11', sha256='6efb006e028e37f74a34fc37d585a8cb296720020cabad361d65662533f1600b',
- url='http://gforge.inria.fr/frs/download.php/file/33683/SimGrid-3.11.tar.gz')
- version('git', branch='master')
+ deprecated=True,
+ url='https://gforge.inria.fr/frs/download.php/file/33683/SimGrid-3.11.tar.gz')
+
+ version('develop', branch='master')
variant('doc', default=False, description='Build documentation')
variant('smpi', default=True, description='SMPI provides MPI')
@@ -45,6 +67,11 @@ class Simgrid(CMakePackage):
# does not build correctly with some old compilers -> rely on packages
depends_on('boost')
+ depends_on('boost@:1.69.0', when='@:3.21')
+
+ conflicts('%gcc@10:', when='@:3.23',
+ msg='simgrid <= v3.23 cannot be built with gcc >= 10,'
+ ' please use an older release (e.g., %gcc@:9.99).')
def setup_dependent_package(self, module, dep_spec):
diff --git a/var/spack/repos/builtin/packages/simmetrix-simmodsuite/package.py b/var/spack/repos/builtin/packages/simmetrix-simmodsuite/package.py
index 7d38e267d7..801f95f15e 100644
--- a/var/spack/repos/builtin/packages/simmetrix-simmodsuite/package.py
+++ b/var/spack/repos/builtin/packages/simmetrix-simmodsuite/package.py
@@ -1,88 +1,125 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
def simmodsuite_releases():
releases = [
- {
- 'version': '14.0-191122',
- 'components': {
- 'gmadv': ['01cea5f7aff5e442ea544df054969740ad33e2ff4097cf02de31874d16a0c7c2', 'advmodel'],
- 'msadapt': ['69839698f24969f97963869fd212bdcff0b5d52dd40ec3fdc710d878e43b527a', 'base'],
- 'gmvoxel': ['bfea15e1fc5d258ed9db69132042a848ca81995e92bf265215e4b88d08a308a8', 'voxel'],
- 'gmabstract': ['dccdcd4b71758e4110cd69b0befa7875e5c1f3871f87478410c6676da3f39092', 'abstract'],
- 'fdcore': ['6981b2eb0c0143e6abc3ec29918fc3552f81018755770bf922d2491275984e1a', 'base'],
- 'msparallelmesh': ['1e1a431ec9dd85354ff42c6a2a41df7fbe3dfe5d296f40105c4d3aa372639dc3', 'parallelmesh'],
- 'mscore': ['bca80fcb2c86e7b6dc0259681ccd73197ce85c47f00f1910bd6b518fa0b3a092', 'base'],
- 'discrete': ['430e5f2270864b1ab9c8dff75d2510147a0c5cde8af0828975d9e38661be3a35', 'discrete'],
- 'gmimport': ['e83b3c43b7c695fa96ed42253a4b317a2882bcb8987fd3225c09492e353e49aa', 'import'],
- 'pskrnl': ['31455cfce746b2339b3644f3890d4444014fb839654a9f576ec747d28ff6c1c4', 'parasolid'],
- 'gmcore': ['af5d89b9ce266cac5b45f2bf96e1324e87e54c6e2f568bd5b6a85c41122d39e4', 'base'],
- 'aciskrnl': ['764e5633e6d502951788accfb8c34ed59430a4779a44d1775fd67f9aab8a654a', 'acis'],
- 'msparalleladapt': ['8ae607112958f6b9d319736c71a6597cf99a8a59ceed733f2a939cb9cfa6dd67', 'paralleladapt'],
- 'psint': ['f6c90b2fe87e690b2cba20f357d03c5962fed91541d6b79e01dc25cb8f01d1e0', 'parasolid'],
- 'msadv': ['f18a8285d539cb07b00fde06fe970d958eceabf2a10182bcca6c8ad1c074c395', 'adv'],
+ {
+ 'version': '16.0-210623',
+ 'components': {
+ 'gmadv': ['c40dac44695db6e97c4d4c06d1eb6eac93518c93d7860c77a69f3ea30fea3b90', 'advmodel'],
+ 'msparallelmesh': ['57d710b74887731ea0e664a154489747033af433852809181c11e8065752eaf4', 'parallelmesh'],
+ 'gmcore': ['5bd04f175fdf5a088140af5ca3fa03934251c097044b47fdf3ea2cd0afc28547', 'base'],
+ 'pskrnl': ['87957818b20839d3835a343894c396f7c591d1f0bfd728d33ad21b1adb4e887c', 'parasolid'],
+ 'msadapt': ['5ba66819bb2c56eb1e07e6c2659afc8c971005b08ed059f8c62a185236e45dac', 'base'],
+ 'gmvoxel': ['15dfc389665086ea37b9835fecd6b46070572878308796afa960077cc2bf7e0a', 'voxel'],
+ 'msparalleladapt': ['1db2c34a398c5965a2a675006c96a3603e0124188b52159776b7c616efa48457', 'paralleladapt'],
+ 'mscore': ['7029871c52d6c3bb782ae2acb7360130105649cd9cf63815ae95cf4089cb786d', 'base'],
+ 'psint': ['c8a3dbacafa70b13bc9fb8322699a1cfc812b2cfd3ea05cba9135623eae761d8', 'parasolid'],
+ 'fdcore': ['75f9bcd7cb9ab9dedb73166539c08b53bd8e91c5619d3dce605ba19c63d1ee5c', 'base'],
+ 'msadv': ['0018e0a6b9d7724867f7379bc619269481c318ee4dfd0724511c032534ae04a1', 'adv'],
+ 'aciskrnl': ['2a9b9da9b0c09857de7fef0dea0e96222bd30e297bd37bea962751dab6762500', 'acis'],
+ 'discrete': ['f17cd198f8749c763cc8e200cfd6734604e1d316a48d7d0e537a9a890d884904', 'discrete'],
+ 'gmabstract': ['068d0309d5ff9668fc0474edf7f4e20503827400e34492e2ed55b46a0c9e1858', 'abstract'],
+ },
+ 'docs': {
+ 'GeomSimAdvanced': ['02e4566042ae4de10c4acb577142e82d15f32caa296fe1b578c62a38da707066', 'advmodel'],
+ 'MeshSim': ['cc1dc77cece7aac6ded003c872c651ad8321bc9ce931ad141b17d2de7bf513c5', 'base'],
+ 'GeomSimVoxel': ['49b8f85f59acc8c973bf46c1f999a0ae64cdf129371587879de056c0ac3500d8', 'voxel'],
+ 'MeshSimAdvanced': ['2d2689979104414d91d804ca3c34a69104e572b8f231c4e324b09e57675b61cc', 'adv'],
+ 'GeomSimGranite': ['17f18831a12b06c0e085486d94d3a4275d7ed94ad53fec689e8877217856c750', 'granite'],
+ 'GeomSimParasolid': ['492bd311cc42dadd1f76064c57d35e886b9a7da4c48576ec4d34844fcdaddb8d', 'parasolid'],
+ 'GeomSimAcis': ['341c6aeda7f9189f4e886cb75c5989cb9ece6ecba1b1c9d5273b94f74a3dd40b', 'acis'],
+ 'GeomSimDiscrete': ['e9d42da613a3acadbcdee5d8d6fc3b093f58b51d158f2a392b7da0e5f74e0388', 'discrete'],
+ 'MeshSimAdapt': ['e27510e588105bdb0ca62c2629dfd41dfca6039b7b2ff0298ef83d3a48d7dd23', 'base'],
+ 'GeomSimAbstract': ['398c1a15efcddd3b86a7b0334af6f8b529710f815f73f5655d3c7271e92b194e', 'abstract'],
+ 'GeomSimDiscreteModeling': ['f444aed59569731f65eea920322adcc224c67b715ecba85a1898cf418de58237', 'discrete'],
+ 'FieldSim': ['bac947998d4de1c4edba271645310d4784290bec30bf0cf41d00ae6ea8b27c97', 'base'],
+ 'GeomSim': ['95cb24165d47701daa8da7131ca1173d38f4dab80c1ca0d75843b464fed92097', 'base'],
+ 'ParallelMeshSim': ['fb1e3ac0ab7208d771057880c693e529e7c821772265b89125d371a1b34fa651', 'parallelmesh'],
+ 'ParallelMeshSimAdapt': ['246c5c8b30194239f41a79f2ffd205fd9ae69bcb8127d19a94f12c278a27f106', 'paralleladapt'],
+ }
},
- 'docs': {
- 'MeshSim': ['f3c475072f270ff49ac2f6639ca1cddb0642889648cbea7df1a3f1b85f7cac36', 'base'],
- 'GeomSimVoxel': ['9f4ee5a8204fee1d899cb912e0379f8be7a826e81ca0a0d8a670a4b804ca1276', 'voxel'],
- 'MeshSimAdvanced': ['8c8bc3709238e600e8938c7c345588f8947d89eae98a228b0d0e3d46f5f4c0d9', 'adv'],
- 'GeomSimDiscreteModeling': ['4e8e26a88e8a5ad396a637597a52f5973d8f77abc0a5b99fa737caf37226d6cc', 'discrete'],
- 'GeomSimAdvanced': ['5efb38317d6be7862ce34024922ca372b30691a30af820474e2e26e4c3055278', 'advmodel'],
- 'GeomSimParasolid': ['6851bdaf6d96e7b2335fce3394825e9876800f0aba0a42644758dc1bd06f60fe', 'parasolid'],
- 'GeomSimImport': ['d931ecfc332460c825b473c0950c7ae8ff9f845e0d1565f85bfd7698da5e6d26', 'import'],
- 'ParallelMeshSim': ['0f0d235b25a660271e401488e412220f574b341dadb827f7b82f0e93172b5cdb', 'parallelmesh'],
- 'ParallelMeshSimAdapt': ['7964ebbd7e8d971ea85fc5260e44f7e876da5ad474dc67d8d6fc939bfa5ba454', 'paralleladapt'],
- 'GeomSimAcis': ['dea82efbc4e3043ecda163be792ef295057e08be17654a7783ce7ca5e786f950', 'acis'],
- 'MeshSimAdapt': ['ee4d5595572c1fe1a0d78bd9b85c774a55e994c48170450d6c5f34b05fcf2411', 'base'],
- 'FieldSim': ['6b09b4ab278911d3e9229fd4cd8dc92ba188f151d42d9d7b96d542aad2af1fac', 'base'],
- 'GeomSim': ['0673823d649998367c0e427055911eae971bb6e8c76625882e7a7901f4d18c44', 'base'],
- 'GeomSimDiscrete': ['58dfd33fc5cdd2ab24e9084377943f28d5ba68b8c017b11b71cde64c5e4f2113', 'discrete'],
- 'GeomSimAbstract': ['16248cd2a0d133029eb4b79d61397da008e4d5b5c3eaf0161a0a44148b0bc519', 'abstract'],
- }
- },
- {
- 'version': '12.0-191027',
- 'components': {
- 'gmadv': ['1a133523062974c4d9acb1d52baa3893dc891482aebaaeb79a7dc907461d5dbc', 'advmodel'],
- 'fdcore': ['c3a89093f811cb489698d203dbe68ca910e6c67ea75c0a7aba73dd369508b9ec', 'base'],
- 'mscore': ['a2f043278d45d8729020b663c66c57960fcec33dafd3d90db55f0a9e32723bce', 'base'],
- 'msparallelmesh': ['2f6fd47d3c5c2f1ece4634985a522ac599d3cee20ad8a4623f252cc75aa32c4c', 'parallelmesh'],
- 'msparalleladapt': ['8d288730b1300215a32f3b21624bd2e0e2d8a684fe928459757fcec7e0aeb7d3', 'paralleladapt'],
- 'gmabstract': ['3b608f21e6c11db5bb48e49f9cd7e9d88aeec4feadebd778529a5c9d506d08c6', 'abstract'],
- 'gmimport': ['fc1626c7b1522b90eaa3926e1253b84d28440c7df8634decdedb79b5229be800', 'import'],
- 'discrete': ['a15ead08138f0c59c7ee46cd0d348d4f26e1b021d2580a134cf2b84a7337bcf9', 'discrete'],
- 'aciskrnl': ['8773f00e08d237052c877e79d1a869214f59891e812d70df938b2a5e5423a96f', 'acis'],
- 'msadv': ['41bdb9555ab9feb0891f0832a49fc29777d40957473f315e1c33e1c0077cba7d', 'adv'],
- 'psint': ['b040ab48833eb2a748f757e2de6929f3002aa98db459ba92bd9a88e443e5cb07', 'parasolid'],
- 'gmvoxel': ['19fba83c9c7eac20d9613236530fbae652dc8edef35233214f0f92b81c91a877', 'voxel'],
- 'msadapt': ['1a752adb6724c3328fffb26f1aebed007d3c2a5df725cd29aa0cf0fdfda1f39a', 'base'],
- 'gmcore': ['ec95bae84b36644e6e04cf0a6b4e813a51990d0a30519176ebb8a05f681af7f2', 'base'],
- 'pskrnl': ['7b7b4952513e06c8c23aa8f7c1748f5c199d9af70ea06c4a359412237ed8ac1d', 'parasolid'],
+ {
+ 'version': '14.0-191122',
+ 'components': {
+ 'gmadv': ['01cea5f7aff5e442ea544df054969740ad33e2ff4097cf02de31874d16a0c7c2', 'advmodel'],
+ 'msadapt': ['69839698f24969f97963869fd212bdcff0b5d52dd40ec3fdc710d878e43b527a', 'base'],
+ 'gmvoxel': ['bfea15e1fc5d258ed9db69132042a848ca81995e92bf265215e4b88d08a308a8', 'voxel'],
+ 'gmabstract': ['dccdcd4b71758e4110cd69b0befa7875e5c1f3871f87478410c6676da3f39092', 'abstract'],
+ 'fdcore': ['6981b2eb0c0143e6abc3ec29918fc3552f81018755770bf922d2491275984e1a', 'base'],
+ 'msparallelmesh': ['1e1a431ec9dd85354ff42c6a2a41df7fbe3dfe5d296f40105c4d3aa372639dc3', 'parallelmesh'],
+ 'mscore': ['bca80fcb2c86e7b6dc0259681ccd73197ce85c47f00f1910bd6b518fa0b3a092', 'base'],
+ 'discrete': ['430e5f2270864b1ab9c8dff75d2510147a0c5cde8af0828975d9e38661be3a35', 'discrete'],
+ 'gmimport': ['e83b3c43b7c695fa96ed42253a4b317a2882bcb8987fd3225c09492e353e49aa', 'import'],
+ 'pskrnl': ['31455cfce746b2339b3644f3890d4444014fb839654a9f576ec747d28ff6c1c4', 'parasolid'],
+ 'gmcore': ['af5d89b9ce266cac5b45f2bf96e1324e87e54c6e2f568bd5b6a85c41122d39e4', 'base'],
+ 'aciskrnl': ['764e5633e6d502951788accfb8c34ed59430a4779a44d1775fd67f9aab8a654a', 'acis'],
+ 'msparalleladapt': ['8ae607112958f6b9d319736c71a6597cf99a8a59ceed733f2a939cb9cfa6dd67', 'paralleladapt'],
+ 'psint': ['f6c90b2fe87e690b2cba20f357d03c5962fed91541d6b79e01dc25cb8f01d1e0', 'parasolid'],
+ 'msadv': ['f18a8285d539cb07b00fde06fe970d958eceabf2a10182bcca6c8ad1c074c395', 'adv'],
+ },
+ 'docs': {
+ 'MeshSim': ['f3c475072f270ff49ac2f6639ca1cddb0642889648cbea7df1a3f1b85f7cac36', 'base'],
+ 'GeomSimVoxel': ['9f4ee5a8204fee1d899cb912e0379f8be7a826e81ca0a0d8a670a4b804ca1276', 'voxel'],
+ 'MeshSimAdvanced': ['8c8bc3709238e600e8938c7c345588f8947d89eae98a228b0d0e3d46f5f4c0d9', 'adv'],
+ 'GeomSimDiscreteModeling': ['4e8e26a88e8a5ad396a637597a52f5973d8f77abc0a5b99fa737caf37226d6cc', 'discrete'],
+ 'GeomSimAdvanced': ['5efb38317d6be7862ce34024922ca372b30691a30af820474e2e26e4c3055278', 'advmodel'],
+ 'GeomSimParasolid': ['6851bdaf6d96e7b2335fce3394825e9876800f0aba0a42644758dc1bd06f60fe', 'parasolid'],
+ 'GeomSimImport': ['d931ecfc332460c825b473c0950c7ae8ff9f845e0d1565f85bfd7698da5e6d26', 'import'],
+ 'ParallelMeshSim': ['0f0d235b25a660271e401488e412220f574b341dadb827f7b82f0e93172b5cdb', 'parallelmesh'],
+ 'ParallelMeshSimAdapt': ['7964ebbd7e8d971ea85fc5260e44f7e876da5ad474dc67d8d6fc939bfa5ba454', 'paralleladapt'],
+ 'GeomSimAcis': ['dea82efbc4e3043ecda163be792ef295057e08be17654a7783ce7ca5e786f950', 'acis'],
+ 'MeshSimAdapt': ['ee4d5595572c1fe1a0d78bd9b85c774a55e994c48170450d6c5f34b05fcf2411', 'base'],
+ 'FieldSim': ['6b09b4ab278911d3e9229fd4cd8dc92ba188f151d42d9d7b96d542aad2af1fac', 'base'],
+ 'GeomSim': ['0673823d649998367c0e427055911eae971bb6e8c76625882e7a7901f4d18c44', 'base'],
+ 'GeomSimDiscrete': ['58dfd33fc5cdd2ab24e9084377943f28d5ba68b8c017b11b71cde64c5e4f2113', 'discrete'],
+ 'GeomSimAbstract': ['16248cd2a0d133029eb4b79d61397da008e4d5b5c3eaf0161a0a44148b0bc519', 'abstract'],
+ }
},
- 'docs': {
- 'FieldSim': ['5109d91fe61ccdaf0af5aa869aea9c38ec98760746ec3983d100f870cbb1cb63', 'base'],
- 'ParallelMeshSim': ['a1e6618a77022a9580beac4c698dd4b9aa70f617a27db9ce13ab1f2388475290', 'parallelmesh'],
- 'GeomSimAcis': ['f0319b32eb417fa9b237575d9b2dc1c061848888c36fd4da97d97cdbb3cf19c3', 'acis'],
- 'GeomSimAbstract': ['c44023e6944522057c47925db49089031c7de9b67938ca6a987e04fadfeda9b7', 'abstract'],
- 'GeomSimDiscrete': ['ad648752fa7d2dc1ce234a612e28ce84eb1f064a1decadf17b42e9fe56967350', 'discrete'],
- 'MeshSimAdapt': ['dcb7d6ec74c910b41b5ae707d9fd4664fcb3a0fdb2c876caaa28a6f1cf701024', 'base'],
- 'MeshSim': ['e5a8cb300b1e13b9f2733bf8b738872ffb37d9df15836a6ab264483c10000696', 'base'],
- 'GeomSimParasolid': ['2bf33cc5b3879716437d45fde0a02caaa165e37d248d05b4b00708e76573a15e', 'parasolid'],
- 'GeomSimImport': ['5309433dcdce660e062412f070719eefcc6299764e9b0169533ff343c9c9c406', 'import'],
- 'ParallelMeshSimAdapt': ['2e8e0ceede3107b85dba9536f3bbf5e6959793073a5147548cfb01ca568c8da2', 'paralleladapt'],
- 'GeomSimDiscreteModeling': ['ff88ec234b890315cc36539e3f73f4f977dab94160860950e7b7ee0303c9b55e', 'discrete'],
- 'GeomSim': ['62ae33372f999d5e62a1b7b161ddd7de04c055adc85cfd258e088c95b76d5fef', 'base'],
- 'GeomSimVoxel': ['7a624ddaebd833077511acac3efd4b4c1dab09bd9feff40aba0813182eeb262f', 'voxel'],
- 'GeomSimAdvanced': ['f0ab801ddf3d701a4ac3f8c47900cc858a4488eb0fe2f663504ba260cd270d20', 'advmodel'],
- 'MeshSimAdvanced': ['bb532027e4fcc311a7c376383da010aed5ee133a9122b186a4e5c7d0cf1d976b', 'adv'],
+ {
+ 'version': '12.0-191027',
+ 'components': {
+ 'gmadv': ['1a133523062974c4d9acb1d52baa3893dc891482aebaaeb79a7dc907461d5dbc', 'advmodel'],
+ 'fdcore': ['c3a89093f811cb489698d203dbe68ca910e6c67ea75c0a7aba73dd369508b9ec', 'base'],
+ 'mscore': ['a2f043278d45d8729020b663c66c57960fcec33dafd3d90db55f0a9e32723bce', 'base'],
+ 'msparallelmesh': ['2f6fd47d3c5c2f1ece4634985a522ac599d3cee20ad8a4623f252cc75aa32c4c', 'parallelmesh'],
+ 'msparalleladapt': ['8d288730b1300215a32f3b21624bd2e0e2d8a684fe928459757fcec7e0aeb7d3', 'paralleladapt'],
+ 'gmabstract': ['3b608f21e6c11db5bb48e49f9cd7e9d88aeec4feadebd778529a5c9d506d08c6', 'abstract'],
+ 'gmimport': ['fc1626c7b1522b90eaa3926e1253b84d28440c7df8634decdedb79b5229be800', 'import'],
+ 'discrete': ['a15ead08138f0c59c7ee46cd0d348d4f26e1b021d2580a134cf2b84a7337bcf9', 'discrete'],
+ 'aciskrnl': ['8773f00e08d237052c877e79d1a869214f59891e812d70df938b2a5e5423a96f', 'acis'],
+ 'msadv': ['41bdb9555ab9feb0891f0832a49fc29777d40957473f315e1c33e1c0077cba7d', 'adv'],
+ 'psint': ['b040ab48833eb2a748f757e2de6929f3002aa98db459ba92bd9a88e443e5cb07', 'parasolid'],
+ 'gmvoxel': ['19fba83c9c7eac20d9613236530fbae652dc8edef35233214f0f92b81c91a877', 'voxel'],
+ 'msadapt': ['1a752adb6724c3328fffb26f1aebed007d3c2a5df725cd29aa0cf0fdfda1f39a', 'base'],
+ 'gmcore': ['ec95bae84b36644e6e04cf0a6b4e813a51990d0a30519176ebb8a05f681af7f2', 'base'],
+ 'pskrnl': ['7b7b4952513e06c8c23aa8f7c1748f5c199d9af70ea06c4a359412237ed8ac1d', 'parasolid'],
+ },
+ 'docs': {
+ 'FieldSim': ['5109d91fe61ccdaf0af5aa869aea9c38ec98760746ec3983d100f870cbb1cb63', 'base'],
+ 'ParallelMeshSim': ['a1e6618a77022a9580beac4c698dd4b9aa70f617a27db9ce13ab1f2388475290', 'parallelmesh'],
+ 'GeomSimAcis': ['f0319b32eb417fa9b237575d9b2dc1c061848888c36fd4da97d97cdbb3cf19c3', 'acis'],
+ 'GeomSimAbstract': ['c44023e6944522057c47925db49089031c7de9b67938ca6a987e04fadfeda9b7', 'abstract'],
+ 'GeomSimDiscrete': ['ad648752fa7d2dc1ce234a612e28ce84eb1f064a1decadf17b42e9fe56967350', 'discrete'],
+ 'MeshSimAdapt': ['dcb7d6ec74c910b41b5ae707d9fd4664fcb3a0fdb2c876caaa28a6f1cf701024', 'base'],
+ 'MeshSim': ['e5a8cb300b1e13b9f2733bf8b738872ffb37d9df15836a6ab264483c10000696', 'base'],
+ 'GeomSimParasolid': ['2bf33cc5b3879716437d45fde0a02caaa165e37d248d05b4b00708e76573a15e', 'parasolid'],
+ 'GeomSimImport': ['5309433dcdce660e062412f070719eefcc6299764e9b0169533ff343c9c9c406', 'import'],
+ 'ParallelMeshSimAdapt': ['2e8e0ceede3107b85dba9536f3bbf5e6959793073a5147548cfb01ca568c8da2', 'paralleladapt'],
+ 'GeomSimDiscreteModeling': ['ff88ec234b890315cc36539e3f73f4f977dab94160860950e7b7ee0303c9b55e', 'discrete'],
+ 'GeomSim': ['62ae33372f999d5e62a1b7b161ddd7de04c055adc85cfd258e088c95b76d5fef', 'base'],
+ 'GeomSimVoxel': ['7a624ddaebd833077511acac3efd4b4c1dab09bd9feff40aba0813182eeb262f', 'voxel'],
+ 'GeomSimAdvanced': ['f0ab801ddf3d701a4ac3f8c47900cc858a4488eb0fe2f663504ba260cd270d20', 'advmodel'],
+ 'MeshSimAdvanced': ['bb532027e4fcc311a7c376383da010aed5ee133a9122b186a4e5c7d0cf1d976b', 'adv'],
+ }
}
- }
]
return releases
@@ -137,7 +174,9 @@ class SimmetrixSimmodsuite(Package):
of sources
"""
+ maintainers = ['cwsmith']
homepage = "http://www.simmetrix.com/products/SimulationModelingSuite/main.html"
+ manual_download = True
license_required = True
license_vars = ['SIM_LICENSE_FILE']
diff --git a/var/spack/repos/builtin/packages/simplemoc/package.py b/var/spack/repos/builtin/packages/simplemoc/package.py
index 0745910d9c..e522dabada 100644
--- a/var/spack/repos/builtin/packages/simplemoc/package.py
+++ b/var/spack/repos/builtin/packages/simplemoc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/simsipm/package.py b/var/spack/repos/builtin/packages/simsipm/package.py
new file mode 100644
index 0000000000..9db1d87c82
--- /dev/null
+++ b/var/spack/repos/builtin/packages/simsipm/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2021 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 Simsipm(CMakePackage):
+ """SimSiPM is a simple and easy to use C++ library providing a set of
+ object-oriented tools with all the functionality needed to describe
+ and simulate Silicon PhotonMultipliers (SiPM) sensors."""
+
+ url = "https://github.com/EdoPro98/SimSiPM/archive/refs/tags/v1.2.4.tar.gz"
+ homepage = "https://github.com/EdoPro98/SimSiPM/"
+ git = "https://github.com/EdoPro98/SimSiPM.git"
+
+ tags = ['hep']
+
+ maintainers = ['vvolkl']
+
+ version('1.2.4', sha256='1c633bebb19c490b5e6dfa5ada4a6bc7ec36348237c2626d57843a25af923211')
+
+ variant('python', default=False, description="Build pybind11-based python bindings")
+ variant('openmp', default=False, description="Use OpenMP")
+
+ extends('python', when='+python')
+ depends_on('python@3.6:', when="+python", type=('build', 'run'))
+ depends_on('py-pybind11', when="+python", type=('build', 'link'))
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant("SIPM_BUILD_PYTHON", "python"),
+ self.define_from_variant("SIPM_ENABLE_OPENMP", "openmp"),
+ self.define("SIPM_ENABLE_TEST", self.run_tests),
+
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/simul/package.py b/var/spack/repos/builtin/packages/simul/package.py
index 90f5922403..3c22f1c195 100644
--- a/var/spack/repos/builtin/packages/simul/package.py
+++ b/var/spack/repos/builtin/packages/simul/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/simulationio/package.py b/var/spack/repos/builtin/packages/simulationio/package.py
index a6d45d1d93..81f0331571 100644
--- a/var/spack/repos/builtin/packages/simulationio/package.py
+++ b/var/spack/repos/builtin/packages/simulationio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sina/package.py b/var/spack/repos/builtin/packages/sina/package.py
new file mode 100644
index 0000000000..b33daf40ec
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sina/package.py
@@ -0,0 +1,78 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Sina(CachedCMakePackage):
+ """Sina C++ Library"""
+
+ homepage = 'https://github.com/LLNL/Sina'
+ url = 'https://github.com/LLNL/Sina/releases/download/v1.10.0/sina-cpp-1.10.0.tar.gz'
+
+ maintainers = [
+ 'estebanpauli',
+ 'HaluskaR',
+ 'murray55',
+ ]
+
+ version('1.10.0', sha256='b34379ce8cc5eca5a0f16893053fac75be14c2109d1beed4c6d48e11f9b281c7')
+
+ variant('docs', default=False,
+ description='Allow generating documentation')
+ variant('adiak', default=False,
+ description='Create interface for calling Sina through Adiak')
+ variant('test', default=False,
+ description='Build tests')
+
+ depends_on('cmake@3.8.0:', type='build')
+ depends_on('adiak', when='+adiak')
+ depends_on('doxygen', type='build', when='+docs')
+ depends_on('conduit')
+
+ def cmake_args(self):
+ return [
+ self.define_from_variant('-DSINA_BUILD_ADIAK_BINDINGS', 'adiak'),
+ self.define_from_variant('-DSINA_BUILD_TESTS', 'test'),
+ self.define_from_variant('-DSINA_BUILD_DOCS', 'docs'),
+ ]
+
+ def initconfig_package_entries(self):
+ entries = [
+ '#' + 78 * '-',
+ '# Library Dependencies',
+ '#' + 78 * '-'
+ ]
+
+ conduit_dir = self.spec['conduit'].prefix
+ entries.append(cmake_cache_path(
+ 'Conduit_DIR',
+ '%s/lib/cmake/conduit' % conduit_dir))
+
+ use_adiak = self.spec.satisfies('^adiak')
+ entries.append(cmake_cache_option('SINA_BUILD_ADIAK_BINDINGS', use_adiak))
+ if use_adiak:
+ adiak_dir = self.spec['adiak'].prefix
+ entries.append(cmake_cache_path(
+ 'adiak_DIR',
+ '%s/lib/cmake/adiak/' % adiak_dir))
+
+ entries.append('#' + 78 * '-')
+ entries.append('# Devtools')
+ entries.append('#' + 78 * '-')
+
+ build_tests = self.spec.satisfies('+test')
+ entries.append(cmake_cache_option('SINA_BUILD_TESTS', build_tests))
+
+ build_docs = self.spec.satisfies('+docs')
+ entries.append(cmake_cache_option('SINA_BUILD_DOCS', build_docs))
+ if build_docs:
+ doxygen_bin_dir = self.spec['doxygen'].prefix.bin
+ entries.append(cmake_cache_path(
+ 'DOXYGEN_EXECUTABLE', os.path.join(doxygen_bin_dir, 'doxygen')))
+
+ return entries
diff --git a/var/spack/repos/builtin/packages/singularity-legacy/package.py b/var/spack/repos/builtin/packages/singularity-legacy/package.py
index d70eff6b10..8e0dab09b4 100644
--- a/var/spack/repos/builtin/packages/singularity-legacy/package.py
+++ b/var/spack/repos/builtin/packages/singularity-legacy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,16 +13,16 @@ class SingularityLegacy(AutotoolsPackage):
legacy package is pre-version 3.0.0
"""
- homepage = "https://www.sylabs.io/singularity/"
- url = "https://github.com/sylabs/singularity/releases/download/2.5.2/singularity-2.5.2.tar.gz"
- git = "https://github.com/sylabs/singularity.git"
+ homepage = "https://sylabs.io/singularity/"
+ url = "https://github.com/hpcng/singularity/releases/download/2.5.2/singularity-2.5.2.tar.gz"
+ git = "https://github.com/hpcng/singularity.git"
# Versions before 2.5.2 suffer from a serious security problem.
# https://nvd.nist.gov/vuln/detail/CVE-2018-12021
- version('2.6-release', branch='vault/2.6-release')
- version('2.6.1', sha256='f38d46a225e8368eb4693137806d2dc96e925a50bdf7f6983662848831041df2')
- version('2.6.0', sha256='7c425211a099f6fa6f74037e6e17be58fb5923b0bd11aea745e48ef83c488b49')
- version('2.5.2', sha256='eca09dbf4de5e971404a31f24d6c90081aef77075f51be8b3eb15b8715d6805e')
+ version('2.6-release', branch='vault/2.6-release', deprecated=True)
+ version('2.6.1', sha256='f38d46a225e8368eb4693137806d2dc96e925a50bdf7f6983662848831041df2', deprecated=True)
+ version('2.6.0', sha256='7c425211a099f6fa6f74037e6e17be58fb5923b0bd11aea745e48ef83c488b49', deprecated=True)
+ version('2.5.2', sha256='eca09dbf4de5e971404a31f24d6c90081aef77075f51be8b3eb15b8715d6805e', deprecated=True)
depends_on('libarchive', when='@2.5.2:')
# these are only needed if we're grabbing the unreleased tree
diff --git a/var/spack/repos/builtin/packages/singularity/package.py b/var/spack/repos/builtin/packages/singularity/package.py
index cf06bd20b2..a53605b968 100644
--- a/var/spack/repos/builtin/packages/singularity/package.py
+++ b/var/spack/repos/builtin/packages/singularity/package.py
@@ -1,16 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack.pkg.builtin.singularityce import SingularityBase
-import llnl.util.tty as tty
-import os
-import shutil
-
-class Singularity(MakefilePackage):
+class Singularity(SingularityBase):
'''Singularity is a container technology focused on building portable
encapsulated environments to support "Mobility of Compute" For older
versions of Singularity (pre 3.0) you should use singularity-legacy,
@@ -22,14 +19,20 @@ class Singularity(MakefilePackage):
tail -15 $(spack location -i singularity)/.spack/spack-build-out.txt
'''
-
- homepage = "https://www.sylabs.io/singularity/"
- url = "https://github.com/sylabs/singularity/releases/download/v3.6.4/singularity-3.6.4.tar.gz"
- git = "https://github.com/sylabs/singularity.git"
+ homepage = "https://singularity.hpcng.org/"
+ git = "https://github.com/hpcng/singularity.git"
+ url = "https://github.com/hpcng/singularity/releases/download/v3.8.3/singularity-3.8.3.tar.gz"
maintainers = ['alalazo']
- version('master', branch='master')
+ version('master', branch='master')
+ version('3.8.3', sha256='2e22eb9ee1b73fdd51b8783149f0e4d83c0d2d8a0c1edf6034157d50eeefb835')
+ version('3.8.0', sha256='e9608b0e0a8c805218bbe795e9176484837b2f7fcb95e5469b853b3809a2412e')
+ version('3.7.4', sha256='c266369a8bf2747f44e0759858c3fc3b2325b975a8818b2668f0b97b124d0164')
+ version('3.7.3', sha256='6667eb8875d2b66d73504f40c956b42b1351744f488d164204376215d885da5c')
+ version('3.7.2', sha256='36916222e26fb934404f0766e0ff368edac36d7fc31ca571f5f609466609066b')
+ version('3.7.1', sha256='82d2c65063560195ec34551931be3c325b95e8e2009e92755fd7daad346e083c')
+ version('3.7.0', sha256='fb96aaf5f462a56a4a5bd2951287bcbbefe8cf543e228e4e955428f386a8d478')
version('3.6.4', sha256='71233a81d6bb4d686d8dc636b3e3e962a372f54001921c89a12b062cefd9e79f')
version('3.6.3', sha256='b1a985757a9907d8db0f102fc170a25387e715f7ff31957be964bf47914ea2fd')
version('3.6.2', sha256='dfd7ec7376ca0321c47787388fb3e781034edf99068f66efc36109e516024d9b')
@@ -42,137 +45,4 @@ class Singularity(MakefilePackage):
version('3.2.1', sha256='d4388fb5f7e0083f0c344354c9ad3b5b823e2f3f27980e56efa7785140c9b616')
version('3.1.1', sha256='7f0df46458d8894ba0c2071b0848895304ae6b1137d3d4630f1600ed8eddf1a4')
- variant('suid', default=True, description='install SUID binary')
- variant('network', default=True, description='install network plugins')
-
- depends_on('pkgconfig', type='build')
- depends_on('go')
- depends_on('libuuid')
- depends_on('libgpg-error')
- depends_on('libseccomp')
- depends_on('squashfs', type='run')
- depends_on('git', when='@develop') # mconfig uses it for version info
- depends_on('shadow', type='run', when='@3.3:')
- depends_on('cryptsetup', type=('build', 'run'), when='@3.4:')
-
patch('singularity_v3.4.0_remove_root_check.patch', level=0, when='@3.4.0:3.4.1')
-
- # Go has novel ideas about how projects should be organized.
- # We'll point GOPATH at the stage dir, and move the unpacked src
- # tree into the proper subdir in our overridden do_stage below.
- @property
- def gopath(self):
- return self.stage.path
-
- @property
- def sylabs_gopath_dir(self):
- return join_path(self.gopath, 'src/github.com/sylabs/')
-
- @property
- def singularity_gopath_dir(self):
- return join_path(self.sylabs_gopath_dir, 'singularity')
-
- # Unpack the tarball as usual, then move the src dir into
- # its home within GOPATH.
- def do_stage(self, mirror_only=False):
- super(Singularity, self).do_stage(mirror_only)
- if not os.path.exists(self.singularity_gopath_dir):
- # Move the expanded source to its destination
- tty.debug("Moving {0} to {1}".format(
- self.stage.source_path, self.singularity_gopath_dir))
- shutil.move(self.stage.source_path, self.singularity_gopath_dir)
-
- # The build process still needs access to the source path,
- # so create a symlink.
- force_symlink(self.singularity_gopath_dir, self.stage.source_path)
-
- # MakefilePackage's stages use this via working_dir()
- @property
- def build_directory(self):
- return self.singularity_gopath_dir
-
- # Hijack the edit stage to run mconfig.
- def edit(self, spec, prefix):
- with working_dir(self.build_directory):
- confstring = './mconfig --prefix=%s' % prefix
- if '~suid' in spec:
- confstring += ' --without-suid'
- if '~network' in spec:
- confstring += ' --without-network'
- configure = Executable(confstring)
- configure()
-
- # Set these for use by MakefilePackage's default build/install methods.
- build_targets = ['-C', 'builddir', 'parallel=False']
- install_targets = ['install', '-C', 'builddir', 'parallel=False']
-
- def setup_build_environment(self, env):
- # Point GOPATH at the top of the staging dir for the build step.
- env.prepend_path('GOPATH', self.gopath)
-
- # `singularity` has a fixed path where it will look for
- # mksquashfs. If it lives somewhere else you need to specify the
- # full path in the config file. This bit uses filter_file to edit
- # the config file, uncommenting and setting the mksquashfs path.
- @run_after('install')
- def fix_mksquashfs_path(self):
- prefix = self.spec.prefix
- squash_path = join_path(self.spec['squashfs'].prefix.bin, 'mksquashfs')
- filter_file(r'^# mksquashfs path =',
- 'mksquashfs path = {0}'.format(squash_path),
- join_path(prefix.etc, 'singularity', 'singularity.conf'))
-
- #
- # Assemble a script that fixes the ownership and permissions of several
- # key files, install it, and tty.warn() the user.
- # HEADSUP: https://github.com/spack/spack/pull/10412.
- #
- def perm_script(self):
- return 'spack_perms_fix.sh'
-
- def perm_script_tmpl(self):
- return "{0}.j2".format(self.perm_script())
-
- def perm_script_path(self):
- return join_path(self.spec.prefix.bin, self.perm_script())
-
- def _build_script(self, filename, variable_data):
- with open(filename, 'w') as f:
- env = spack.tengine.make_environment(dirs=self.package_dir)
- t = env.get_template(self.perm_script_tmpl())
- f.write(t.render(variable_data))
-
- @run_after('install')
- def build_perms_script(self):
- if self.spec.satisfies('+suid'):
- script = self.perm_script_path()
- chown_files = ['libexec/singularity/bin/starter-suid',
- 'etc/singularity/singularity.conf',
- 'etc/singularity/capability.json',
- 'etc/singularity/ecl.toml']
- setuid_files = ['libexec/singularity/bin/starter-suid']
- self._build_script(script, {'prefix': self.spec.prefix,
- 'chown_files': chown_files,
- 'setuid_files': setuid_files})
- chmod = which('chmod')
- chmod('555', script)
-
- # Until tty output works better from build steps, this ends up in
- # the build log. See https://github.com/spack/spack/pull/10412.
- @run_after('install')
- def caveats(self):
- if self.spec.satisfies('+suid'):
- tty.warn("""
- For full functionality, you'll need to chown and chmod some files
- after installing the package. This has security implications.
- For details, see:
- https://sylabs.io/guides/2.6/admin-guide/security.html
- https://sylabs.io/guides/3.2/admin-guide/admin_quickstart.html#singularity-security
-
- We've installed a script that will make the necessary changes;
- read through it and then execute it as root (e.g. via sudo).
-
- The script is named:
-
- {0}
- """.format(self.perm_script_path()))
diff --git a/var/spack/repos/builtin/packages/singularityce/package.py b/var/spack/repos/builtin/packages/singularityce/package.py
new file mode 100644
index 0000000000..8b4fea32ff
--- /dev/null
+++ b/var/spack/repos/builtin/packages/singularityce/package.py
@@ -0,0 +1,169 @@
+# Copyright 2013-2021 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)
+
+import os
+import shutil
+
+import llnl.util.tty as tty
+
+from spack import *
+
+
+class SingularityBase(MakefilePackage):
+ variant('suid', default=True, description='install SUID binary')
+ variant('network', default=True, description='install network plugins')
+
+ depends_on('pkgconfig', type='build')
+ depends_on('go')
+ depends_on('uuid')
+ depends_on('libgpg-error')
+ depends_on('libseccomp')
+ depends_on('squashfs', type='run')
+ depends_on('git', when='@develop') # mconfig uses it for version info
+ depends_on('shadow', type='run', when='@3.3:')
+ depends_on('cryptsetup', type=('build', 'run'), when='@3.4:')
+
+ # Go has novel ideas about how projects should be organized.
+ # We'll point GOPATH at the stage dir, and move the unpacked src
+ # tree into the proper subdir in our overridden do_stage below.
+ @property
+ def gopath(self):
+ return self.stage.path
+
+ @property
+ def sylabs_gopath_dir(self):
+ return join_path(self.gopath, 'src/github.com/sylabs/')
+
+ @property
+ def singularity_gopath_dir(self):
+ return join_path(self.sylabs_gopath_dir, 'singularity')
+
+ # Unpack the tarball as usual, then move the src dir into
+ # its home within GOPATH.
+ def do_stage(self, mirror_only=False):
+ super(SingularityBase, self).do_stage(mirror_only)
+ if not os.path.exists(self.singularity_gopath_dir):
+ # Move the expanded source to its destination
+ tty.debug("Moving {0} to {1}".format(
+ self.stage.source_path, self.singularity_gopath_dir))
+ shutil.move(self.stage.source_path, self.singularity_gopath_dir)
+
+ # The build process still needs access to the source path,
+ # so create a symlink.
+ force_symlink(self.singularity_gopath_dir, self.stage.source_path)
+
+ # MakefilePackage's stages use this via working_dir()
+ @property
+ def build_directory(self):
+ return self.singularity_gopath_dir
+
+ # Hijack the edit stage to run mconfig.
+ def edit(self, spec, prefix):
+ with working_dir(self.build_directory):
+ confstring = './mconfig --prefix=%s' % prefix
+ if '~suid' in spec:
+ confstring += ' --without-suid'
+ if '~network' in spec:
+ confstring += ' --without-network'
+ configure = Executable(confstring)
+ configure()
+
+ # Set these for use by MakefilePackage's default build/install methods.
+ build_targets = ['-C', 'builddir', 'parallel=False']
+ install_targets = ['install', '-C', 'builddir', 'parallel=False']
+
+ def setup_build_environment(self, env):
+ # Point GOPATH at the top of the staging dir for the build step.
+ env.prepend_path('GOPATH', self.gopath)
+
+ # `singularity` has a fixed path where it will look for
+ # mksquashfs. If it lives somewhere else you need to specify the
+ # full path in the config file. This bit uses filter_file to edit
+ # the config file, uncommenting and setting the mksquashfs path.
+ @run_after('install')
+ def fix_mksquashfs_path(self):
+ prefix = self.spec.prefix
+ squash_path = join_path(self.spec['squashfs'].prefix.bin, 'mksquashfs')
+ filter_file(r'^# mksquashfs path =',
+ 'mksquashfs path = {0}'.format(squash_path),
+ join_path(prefix.etc, 'singularity', 'singularity.conf'))
+
+ #
+ # Assemble a script that fixes the ownership and permissions of several
+ # key files, install it, and tty.warn() the user.
+ # HEADSUP: https://github.com/spack/spack/pull/10412.
+ #
+ def perm_script(self):
+ return 'spack_perms_fix.sh'
+
+ def perm_script_tmpl(self):
+ return "{0}.j2".format(self.perm_script())
+
+ def perm_script_path(self):
+ return join_path(self.spec.prefix.bin, self.perm_script())
+
+ def _build_script(self, filename, variable_data):
+ with open(filename, 'w') as f:
+ env = spack.tengine.make_environment(dirs=self.package_dir)
+ t = env.get_template(self.perm_script_tmpl())
+ f.write(t.render(variable_data))
+
+ @run_after('install')
+ def build_perms_script(self):
+ if self.spec.satisfies('+suid'):
+ script = self.perm_script_path()
+ chown_files = ['libexec/singularity/bin/starter-suid',
+ 'etc/singularity/singularity.conf',
+ 'etc/singularity/capability.json',
+ 'etc/singularity/ecl.toml']
+ setuid_files = ['libexec/singularity/bin/starter-suid']
+ self._build_script(script, {'prefix': self.spec.prefix,
+ 'chown_files': chown_files,
+ 'setuid_files': setuid_files})
+ chmod = which('chmod')
+ chmod('555', script)
+
+ # Until tty output works better from build steps, this ends up in
+ # the build log. See https://github.com/spack/spack/pull/10412.
+ @run_after('install')
+ def caveats(self):
+ if self.spec.satisfies('+suid'):
+ tty.warn("""
+ For full functionality, you'll need to chown and chmod some files
+ after installing the package. This has security implications.
+ For details, see:
+ https://sylabs.io/guides/2.6/admin-guide/security.html
+ https://sylabs.io/guides/3.2/admin-guide/admin_quickstart.html#singularity-security
+
+ We've installed a script that will make the necessary changes;
+ read through it and then execute it as root (e.g. via sudo).
+
+ The script is named:
+
+ {0}
+ """.format(self.perm_script_path()))
+
+
+class Singularityce(SingularityBase):
+ '''Singularity is a container technology focused on building portable
+ encapsulated environments to support "Mobility of Compute" For older
+ versions of Singularity (pre 3.0) you should use singularity-legacy,
+ which has a different install base (Autotools).
+
+ Needs post-install chmod/chown steps to enable full functionality.
+ See package definition or `spack-build-out.txt` build log for details,
+ e.g.
+
+ tail -15 $(spack location -i singularity)/.spack/spack-build-out.txt
+ '''
+
+ homepage = "https://sylabs.io/singularity/"
+ url = "https://github.com/sylabs/singularity/releases/download/v3.8.0/singularity-ce-3.8.0.tar.gz"
+ git = "https://github.com/sylabs/singularity.git"
+
+ maintainers = ['alalazo']
+ version('master', branch='master')
+
+ version('3.8.0', sha256='5fa2c0e7ef2b814d8aa170826b833f91e5031a85d85cd1292a234e6c55da1be1')
diff --git a/var/spack/repos/builtin/packages/singularityce/spack_perms_fix.sh.j2 b/var/spack/repos/builtin/packages/singularityce/spack_perms_fix.sh.j2
new file mode 100644
index 0000000000..32baa21203
--- /dev/null
+++ b/var/spack/repos/builtin/packages/singularityce/spack_perms_fix.sh.j2
@@ -0,0 +1,11 @@
+#!/bin/sh -eu
+
+{% for cf in chown_files %}
+chown root {{ prefix }}/{{ cf }}
+{% endfor %}
+
+{% for sf in setuid_files %}
+chmod 4555 {{ prefix }}/{{ sf }}
+{% endfor %}
+
+# end
diff --git a/var/spack/repos/builtin/packages/sio/package.py b/var/spack/repos/builtin/packages/sio/package.py
index 0bcffaad44..ff9f559cfc 100644
--- a/var/spack/repos/builtin/packages/sio/package.py
+++ b/var/spack/repos/builtin/packages/sio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,9 +19,29 @@ class Sio(CMakePackage):
maintainers = ['vvolkl', 'tmadlener']
version('master', branch='master')
+ version('0.1', sha256='0407c0daeae53660c0562f9302a220f72ab51547050cd9fe9113b995804ab4b4')
+ version('0.0.4', sha256='72e96e6a1cc8dd3641d3e2bb9876e75bf6af8074e1617220da9e52df522ef5c0')
version('0.0.3', sha256='4c8b9c08480fb53cd10abb0e1260071a8c3f68d06a8acfd373f6560a916155cc')
version('0.0.2', sha256='e4cd2aeaeaa23c1da2c20c5c08a9b72a31b16b7a8f5aa6d480dcd561ef667657')
+ variant('builtin_zlib', default=True,
+ description='Use and statically link against a builtin version of zlib')
+ variant('cxxstd', default='17',
+ values=('11', '14', '17', '20'),
+ multi=False,
+ description='Use the specified C++ standard when building.')
+
+ depends_on('zlib', when='~builtin_zlib')
+
+ def cmake_args(self):
+ return [
+ self.define('CMAKE_CXX_STANDARD', self.spec.variants['cxxstd'].value),
+ # Examples are built this way, but if the examples are built they
+ # are also used for tests
+ self.define('SIO_EXAMPLES', self.run_tests),
+ self.define_from_variant('SIO_BUILTIN_ZLIB', 'builtin_zlib')
+ ]
+
def url_for_version(self, version):
"""Translate version numbers to ilcsoft conventions.
in spack, the convention is: 0.1 (or 0.1.0) 0.1.1, 0.2, 0.2.1 ...
diff --git a/var/spack/repos/builtin/packages/sionlib/for_aarch64.patch b/var/spack/repos/builtin/packages/sionlib/for_aarch64.patch
new file mode 100644
index 0000000000..19f1fe475f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sionlib/for_aarch64.patch
@@ -0,0 +1,11 @@
+--- spack-src/mf/Makefile.defs.linux-gomp.bak 2019-11-20 20:03:44.000000000 +0900
++++ spack-src/mf/Makefile.defs.linux-gomp 2020-12-22 17:23:16.857881412 +0900
+@@ -11,7 +11,7 @@
+ # Platform Settings
+ #------------------------------------------------------------------------------
+ PREC = 64
+-PFLAG = -m$(PREC)
++PFLAG =
+ AFLAG =
+
+ PLAT = linux
diff --git a/var/spack/repos/builtin/packages/sionlib/package.py b/var/spack/repos/builtin/packages/sionlib/package.py
new file mode 100644
index 0000000000..6a94116ba4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sionlib/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2021 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 Sionlib(AutotoolsPackage):
+ """Scalable I/O library for parallel access to task-local files"""
+
+ homepage = "https://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/SIONlib/_node.html"
+ url = "https://apps.fz-juelich.de/jsc/sionlib/download.php?version=1.7.6"
+
+ maintainers = ['pramodk']
+
+ version('1.7.6', sha256='e85253ed3cd17a3b1c124ccd704caea3ad3c200abfcca9cc0851cb14f5a60691', extension='tar.gz')
+
+ depends_on('mpi')
+ patch('for_aarch64.patch', when='target=aarch64:')
+
+ def configure_args(self):
+ args = []
+ spec = self.spec
+
+ if spec.satisfies('^intel-mpi'):
+ args.append('--mpi=intel2')
+ elif spec.satisfies('^mpich') or spec.satisfies('^mvapich2'):
+ args.append('--mpi=mpich2')
+ elif spec.satisfies('^openmpi'):
+ args.append('--mpi=openmpi')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/sirius/package.py b/var/spack/repos/builtin/packages/sirius/package.py
index 26163fbcfa..a5231fe065 100644
--- a/var/spack/repos/builtin/packages/sirius/package.py
+++ b/var/spack/repos/builtin/packages/sirius/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,13 +16,22 @@ class Sirius(CMakePackage, CudaPackage):
list_url = "https://github.com/electronic-structure/SIRIUS/releases"
git = "https://github.com/electronic-structure/SIRIUS.git"
- maintainers = ['simonpintarelli', 'haampie', 'dev-zero', 'AdhocMan']
+ maintainers = ['simonpintarelli', 'haampie', 'dev-zero', 'AdhocMan', 'toxa81']
version('develop', branch='develop')
-
+ version('master', branch='master')
+
+ version('7.2.7', sha256='929bf7f131a4847624858b9c4295532c24b0c06f6dcef5453c0dfc33fb78eb03')
+ version('7.2.6', sha256='e751fd46cdc7c481ab23b0839d3f27fb00b75dc61dc22a650c92fe8e35336e3a')
+ version('7.2.5', sha256='794e03d4da91025f77542d3d593d87a8c74e980394f658a0210a4fd91c011f22')
+ version('7.2.4', sha256='aeed0e83b80c3a79a9469e7f3fe10d80ad331795e38dbc3c49cb0308e2bd084d')
+ version('7.2.3', sha256='6c10f0e87e50fcc7cdb4d1b2d35e91dba6144de8f111e36c7d08912e5942a906')
+ version('7.2.1', sha256='01bf6c9893ff471473e13351ca7fdc2ed6c1f4b1bb7afa151909ea7cd6fa0de7')
+ version('7.2.0', sha256='537800459db8a7553d7aa251c19f3a31f911930194b068bc5bca2dfb2c9b71db')
+ version('7.0.2', sha256='ee613607ce3be0b2c3f69b560b2415ce1b0e015179002aa90739430dbfaa0389')
+ version('7.0.1', sha256='cca11433f86e7f4921f7956d6589f27bf0fd5539f3e8f96e66a3a6f274888595')
version('7.0.0', sha256='da783df11e7b65668e29ba8d55c8a6827e2216ad6d88040f84f42ac20fd1bb99')
- version('6.5.7', sha256='d886c3066163c43666ebac2ea50351df03907b5686671e514a75f131ba51b43c',
- preferred=True)
+ version('6.5.7', sha256='d886c3066163c43666ebac2ea50351df03907b5686671e514a75f131ba51b43c')
version('6.5.6', sha256='c8120100bde4477545eae489ea7f9140d264a3f88696ec92728616d78f214cae')
version('6.5.5', sha256='0b23d3a8512682eea67aec57271031c65f465b61853a165015b38f7477651dd1')
version('6.5.4', sha256='5f731926b882a567d117afa5e0ed33291f1db887fce52f371ba51f014209b85d')
@@ -48,6 +57,10 @@ class Sirius(CMakePackage, CudaPackage):
variant('shared', default=True, description="Build shared libraries")
variant('openmp', default=True, description="Build with OpenMP support")
+ variant('boost_filesystem', default=False,
+ description="Use Boost filesystem for self-consistent field method "
+ "mini-app. Only required when the compiler does not "
+ "support std::experimental::filesystem nor std::filesystem")
variant('fortran', default=False, description="Build Fortran bindings")
variant('python', default=False, description="Build Python bindings")
variant('memory_pool', default=True, description="Build with memory pool")
@@ -61,13 +74,18 @@ class Sirius(CMakePackage, CudaPackage):
variant('build_type', default='Release',
description='CMake build type',
values=('Debug', 'Release', 'RelWithDebInfo'))
+ variant('apps', default=True, description="Build applications")
+ variant('tests', default=False, description="Build tests")
+ variant('single_precision', default=False, description="Use single precision arithmetics")
+ variant('profiler', default=True, description="Use internal profiler to measure execution time")
depends_on('python', type=('build', 'run'))
depends_on('mpi')
depends_on('gsl')
depends_on('lapack')
depends_on('fftw-api@3')
- depends_on('libxc')
+ depends_on('libxc@3.0.0:')
+ depends_on('libxc@4.0.0:', when='@7.2.0:')
depends_on('spglib')
depends_on('hdf5+hl')
depends_on('pkgconfig', type='build')
@@ -80,36 +98,48 @@ class Sirius(CMakePackage, CudaPackage):
depends_on('py-voluptuous', when='+python', type=('build', 'run'))
depends_on('py-pybind11', when='+python', type=('build', 'run'))
depends_on('magma', when='+magma')
+ depends_on('boost cxxstd=14 +filesystem', when='+boost_filesystem')
- depends_on('spfft', when='@6.4.0:')
- depends_on('spfft', when='@develop')
- depends_on('spfft+cuda', when='@6.4.0:+cuda')
- depends_on('spfft+cuda', when='@develop+cuda')
- depends_on('spfft+rocm', when='@6.4.0:+rocm')
- depends_on('spfft+rocm', when='@develop+rocm')
-
- depends_on('spla@1.1.0:', when='@develop')
- depends_on('spla@1.1.0:+cuda', when='@develop+cuda')
- depends_on('spla@1.1.0:+rocm', when='@develop+rocm')
+ depends_on('spfft@0.9.6: +mpi', when='@6.4.0:')
+ depends_on('spfft@0.9.13:', when='@7.0.1:')
+ depends_on('spfft+single_precision', when='+single_precision ^spfft')
+ depends_on('spfft+cuda', when='+cuda ^spfft')
+ depends_on('spfft+rocm', when='+rocm ^spfft')
+ depends_on('spfft+openmp', when='+openmp ^spfft')
- depends_on('elpa+openmp', when='+elpa+openmp')
- depends_on('elpa~openmp', when='+elpa~openmp')
+ depends_on('spla@1.1.0:', when='@7.0.2:')
+ depends_on('spla+cuda', when='+cuda ^spla')
+ depends_on('spla+rocm', when='+rocm ^spla')
+ depends_on('spla+openmp', when='+openmp ^spla')
depends_on('nlcglib', when='+nlcglib')
- depends_on('libvdwxc+mpi', when='+vdwxc')
+ depends_on('libvdwxc@0.3.0:+mpi', when='+vdwxc')
depends_on('scalapack', when='+scalapack')
# rocm
depends_on('hip', when='+rocm')
- depends_on('hsakmt-roct', when='+rocm', type='link')
- depends_on('hsa-rocr-dev', when='+rocm', type='link')
depends_on('rocblas', when='+rocm')
+ # FindHIP cmake script only works for < 4.1
+ depends_on('hip@:4.0', when='@:7.2.0 +rocm')
+
extends('python', when='+python')
conflicts('+shared', when='@6.3.0:6.4.999')
+ conflicts('+boost_filesystem', when='~apps')
+ conflicts('^libxc@5.0.0') # known to produce incorrect results
+ conflicts('+single_precision', when='@:7.2.4')
+
+ # Propagate openmp to blas
+ depends_on('openblas threads=openmp', when='+openmp ^openblas')
+ depends_on('amdblis threads=openmp', when='+openmp ^amdblis')
+ depends_on('blis threads=openmp', when='+openmp ^blis')
+ depends_on('intel-mkl threads=openmp', when='+openmp ^intel-mkl')
+
+ depends_on('elpa+openmp', when='+elpa+openmp')
+ depends_on('elpa~openmp', when='+elpa~openmp')
# TODO:
# add support for CRAY_LIBSCI, testing
@@ -144,78 +174,74 @@ class Sirius(CMakePackage, CudaPackage):
def cmake_args(self):
spec = self.spec
- def _def(variant, flag=None):
- """Returns "-DUSE_VARIANT:BOOL={ON,OFF}" depending on whether
- +variant is set. If the CMake flag differs from the variant
- name, pass the flag name explicitly.
- """
-
- return "-D{0}:BOOL={1}".format(
- flag if flag else "USE_{0}".format(
- variant.strip('+~').upper()
- ),
- "ON" if variant in spec else "OFF"
- )
-
args = [
- _def('+openmp'),
- _def('+elpa'),
- _def('+magma'),
- _def('+nlcglib'),
- _def('+vdwxc'),
- _def('+memory_pool'),
- _def('+scalapack'),
- _def('+fortran', 'CREATE_FORTRAN_BINDINGS'),
- _def('+python', 'CREATE_PYTHON_MODULE'),
- _def('+cuda'),
- _def('+rocm')
+ self.define_from_variant('USE_OPENMP', 'openmp'),
+ self.define_from_variant('USE_ELPA', 'elpa'),
+ self.define_from_variant('USE_MAGMA', 'magma'),
+ self.define_from_variant('USE_NLCGLIB', 'nlcglib'),
+ self.define_from_variant('USE_VDWXC', 'vdwxc'),
+ self.define_from_variant('USE_MEMORY_POOL', 'memory_pool'),
+ self.define_from_variant('USE_SCALAPACK', 'scalapack'),
+ self.define_from_variant('CREATE_FORTRAN_BINDINGS', 'fortran'),
+ self.define_from_variant('CREATE_PYTHON_MODULE', 'python'),
+ self.define_from_variant('USE_CUDA', 'cuda'),
+ self.define_from_variant('USE_ROCM', 'rocm'),
+ self.define_from_variant('BUILD_TESTING', 'tests'),
+ self.define_from_variant('BUILD_APPS', 'apps'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('USE_FP32', 'single_precision'),
+ self.define_from_variant('USE_PROFILER', 'profiler')
]
- args += [_def('+shared', 'BUILD_SHARED_LIBS')]
-
lapack = spec['lapack']
blas = spec['blas']
- args += [
- '-DLAPACK_FOUND=true',
- '-DLAPACK_LIBRARIES={0}'.format(lapack.libs.joined(';')),
- '-DBLAS_FOUND=true',
- '-DBLAS_LIBRARIES={0}'.format(blas.libs.joined(';')),
- ]
+ args.extend([
+ self.define('LAPACK_FOUND', 'true'),
+ self.define('LAPACK_LIBRARIES', lapack.libs.joined(';')),
+ self.define('BLAS_FOUND', 'true'),
+ self.define('BLAS_LIBRARIES', blas.libs.joined(';'))
+ ])
if '+scalapack' in spec:
- args += [
- '-DSCALAPACK_FOUND=true',
- '-DSCALAPACK_INCLUDE_DIRS={0}'.format(
- spec['scalapack'].prefix.include),
- '-DSCALAPACK_LIBRARIES={0}'.format(
- spec['scalapack'].libs.joined(';')),
- ]
+ args.extend([
+ self.define('SCALAPACK_FOUND', 'true'),
+ self.define('SCALAPACK_INCLUDE_DIRS',
+ spec['scalapack'].prefix.include),
+ self.define('SCALAPACK_LIBRARIES',
+ spec['scalapack'].libs.joined(';'))
+ ])
if spec['blas'].name in ['intel-mkl', 'intel-parallel-studio']:
- args += ['-DUSE_MKL=ON']
+ args.append(self.define('USE_MKL', 'ON'))
if '+elpa' in spec:
elpa_incdir = os.path.join(
spec['elpa'].headers.directories[0],
'elpa'
)
- args += ["-DELPA_INCLUDE_DIR={0}".format(elpa_incdir)]
-
- cuda_arch = spec.variants['cuda_arch'].value
- cuda_arch_selected = cuda_arch[0] != 'none'
- if '+cuda' in spec and cuda_arch_selected:
- cuda_args = '-DCUDA_ARCH={0}'.format(cuda_arch[0])
- if spec.satisfies('@:6.999'):
- cuda_args = '-DCMAKE_CUDA_FLAGS=-arch=sm_{0}'.format(
- cuda_arch[0])
- args.append(cuda_args)
+ args.append(self.define('ELPA_INCLUDE_DIR', elpa_incdir))
+
+ if '+cuda' in spec:
+ cuda_arch = spec.variants['cuda_arch'].value
+ if cuda_arch[0] != 'none':
+ # Specify a single arch directly
+ if '@:6' in spec:
+ args.append(self.define(
+ 'CMAKE_CUDA_FLAGS',
+ '-arch=sm_{0}'.format(cuda_arch[0]))
+ )
+
+ # Make SIRIUS handle it
+ else:
+ args.append(self.define('CUDA_ARCH', ';'.join(cuda_arch)))
if '+rocm' in spec:
archs = ",".join(self.spec.variants['amdgpu_target'].value)
args.extend([
- '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
- '-DHIP_HCC_FLAGS=--amdgpu-target={0}'.format(archs)
+ self.define('HIP_ROOT_DIR', spec['hip'].prefix),
+ self.define('HIP_HCC_FLAGS', '--amdgpu-target={0}'.format(archs)),
+ self.define('HIP_CXX_COMPILER', self.spec['hip'].hipcc)
])
return args
diff --git a/var/spack/repos/builtin/packages/skilion-onedrive/package.py b/var/spack/repos/builtin/packages/skilion-onedrive/package.py
index 5349544227..fc5ad8d873 100644
--- a/var/spack/repos/builtin/packages/skilion-onedrive/package.py
+++ b/var/spack/repos/builtin/packages/skilion-onedrive/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/skopeo/package.py b/var/spack/repos/builtin/packages/skopeo/package.py
index 4f0372639c..637dd7d2ed 100644
--- a/var/spack/repos/builtin/packages/skopeo/package.py
+++ b/var/spack/repos/builtin/packages/skopeo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sl/package.py b/var/spack/repos/builtin/packages/sl/package.py
index 2b3e9bb16a..4a8c2410ed 100644
--- a/var/spack/repos/builtin/packages/sl/package.py
+++ b/var/spack/repos/builtin/packages/sl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/slang/package.py b/var/spack/repos/builtin/packages/slang/package.py
index c3ba78103d..2f2ab10dc5 100644
--- a/var/spack/repos/builtin/packages/slang/package.py
+++ b/var/spack/repos/builtin/packages/slang/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/slate/package.py b/var/spack/repos/builtin/packages/slate/package.py
index 730322ec52..08378ff7a9 100644
--- a/var/spack/repos/builtin/packages/slate/package.py
+++ b/var/spack/repos/builtin/packages/slate/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
from spack import *
-class Slate(CMakePackage):
+class Slate(CMakePackage, CudaPackage, ROCmPackage):
"""The Software for Linear Algebra Targeting Exascale (SLATE) project is
to provide fundamental dense linear algebra capabilities to the US
Department of Energy and to the high-performance computing (HPC) community
@@ -20,21 +20,26 @@ class Slate(CMakePackage):
url = 'https://bitbucket.org/icl/slate/downloads/slate-2020.10.00.tar.gz'
maintainers = ['G-Ragghianti', 'mgates3']
+ test_requires_compiler = True
+
version('master', branch='master')
+ version('2021.05.02', sha256='29667a9e869e41fbc22af1ae2bcd425d79b4094bbb3f21c411888e7adc5d12e3')
+ version('2021.05.01', sha256='d9db2595f305eb5b1b49a77cc8e8c8e43c3faab94ed910d8387c221183654218')
version('2020.10.00', sha256='ff58840cdbae2991d100dfbaf3ef2f133fc2f43fc05f207dc5e38a41137882ab')
- variant('cuda', default=True, description='Build with CUDA support.')
- variant('mpi', default=True, description='Build with MPI support.')
+ variant('mpi', default=True, description='Build with MPI support (without MPI is experimental).')
variant('openmp', default=True, description='Build with OpenMP support.')
variant('shared', default=True, description='Build shared library')
- depends_on('cuda', when='+cuda')
depends_on('mpi', when='+mpi')
depends_on('blas')
depends_on('blaspp ~cuda', when='~cuda')
depends_on('blaspp +cuda', when='+cuda')
- depends_on('lapackpp')
- depends_on('lapackpp@2020.10.02:', when='@2020.10.00')
+ depends_on('blaspp ~rocm', when='~rocm')
+ for val in ROCmPackage.amdgpu_targets:
+ depends_on('blaspp +rocm amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+ depends_on('lapackpp@2021.04.00:', when='@2021.05.01:')
+ depends_on('lapackpp@2020.10.02', when='@2020.10.00')
depends_on('lapackpp@master', when='@master')
depends_on('scalapack')
@@ -43,14 +48,51 @@ class Slate(CMakePackage):
conflicts('%xl', msg=cpp_17_msg)
conflicts('%xl_r', msg=cpp_17_msg)
conflicts('%intel@19:', msg='Does not currently build with icpc >= 2019')
+ conflicts('+rocm', when='@:2020.10.00', msg='ROCm support requires SLATE 2021.05.01 or greater')
+ conflicts('+rocm', when='+cuda', msg='SLATE only supports one GPU backend at a time')
def cmake_args(self):
spec = self.spec
+ backend_config = '-Duse_cuda=%s' % ('+cuda' in spec)
+ if self.version >= Version('2021.05.01'):
+ backend = 'none'
+ if '+cuda' in spec:
+ backend = 'cuda'
+ if '+rocm' in spec:
+ backend = 'hip'
+ backend_config = '-Dgpu_backend=%s' % backend
+
return [
'-Dbuild_tests=%s' % self.run_tests,
'-Duse_openmp=%s' % ('+openmp' in spec),
'-DBUILD_SHARED_LIBS=%s' % ('+shared' in spec),
- '-Duse_cuda=%s' % ('+cuda' in spec),
+ backend_config,
'-Duse_mpi=%s' % ('+mpi' in spec),
'-DSCALAPACK_LIBRARIES=%s' % spec['scalapack'].libs.joined(';')
]
+
+ examples_src_dir = 'examples'
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ if self.spec.satisfies('@master'):
+ self.cache_extra_test_sources([self.examples_src_dir])
+
+ def test(self):
+ if not self.spec.satisfies('@master') or '+mpi' not in self.spec:
+ print('Skipping: stand-alone tests only run on master with +mpi')
+ return
+
+ test_dir = join_path(self.install_test_root, self.examples_src_dir)
+ test_bld_dir = join_path(test_dir, 'build')
+ with working_dir(test_bld_dir, create=True):
+ cmake('..')
+ make()
+ test_args = ['-n', '4', './ex05_blas']
+ mpiexe_f = which('srun', 'mpirun', 'mpiexec')
+ if mpiexe_f:
+ self.run_test(mpiexe_f.command, test_args,
+ purpose='SLATE smoke test')
+ make('clean')
diff --git a/var/spack/repos/builtin/packages/sleef/package.py b/var/spack/repos/builtin/packages/sleef/package.py
index 4573e8f196..ba8210a13d 100644
--- a/var/spack/repos/builtin/packages/sleef/package.py
+++ b/var/spack/repos/builtin/packages/sleef/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,10 +7,39 @@ from spack import *
class Sleef(CMakePackage):
- """SIMD Library for Evaluating Elementary Functions,
- vectorized libm and DFT."""
+ """SIMD Library for Evaluating Elementary Functions, vectorized libm and DFT."""
- homepage = "http://sleef.org"
+ homepage = "https://sleef.org"
url = "https://github.com/shibatch/sleef/archive/3.2.tar.gz"
+ git = "https://github.com/shibatch/sleef.git"
+ version('master', branch='master')
+ version('3.5.1_2020-12-22', commit='e0a003ee838b75d11763aa9c3ef17bf71a725bff') # py-torch@1.8:1.9
+ version('3.5.1', sha256='415ee9b1bcc5816989d3d4d92afd0cd3f9ee89cbd5a33eb008e69751e40438ab', preferred=True)
+ version('3.4.0_2019-07-30', commit='7f523de651585fe25cade462efccca647dcc8d02') # py-torch@1.3:1.7
+ version('3.4.0_2019-05-13', commit='9b249c53a80343cc1a394ca961d7d5696ea76409', # py-torch@1.2
+ git='https://github.com/zdevito/sleef.git')
+ version('3.3.1_2018-12-09', commit='191f655caa25526ae226cf88dd2529265176014a', # py-torch@1.1
+ git='https://github.com/zdevito/sleef.git')
+ version('3.2_2018-05-09', commit='6ff7a135a1e31979d1e1844a2e7171dfbd34f54f') # py-torch@0.4.1:1.0
version('3.2', sha256='3130c5966e204e6d6a3ace81e543d12b5b21f60897f1c185bfa587c1bd77bee2')
+
+ # Some versions have ICE when building RelWithDebInfo with GCC 7
+ # See https://github.com/shibatch/sleef/issues/234
+ # See https://github.com/pytorch/pytorch/issues/26892
+ # See https://github.com/pytorch/pytorch/pull/26993
+ variant('build_type', default='Release',
+ description='CMake build type',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
+
+ depends_on('cmake@3.4.3:', type='build')
+ depends_on('ninja', type='build')
+
+ generator = 'Ninja'
+
+ def cmake_args(self):
+ return [
+ self.define('DISABLE_FFTW', True),
+ self.define('DISABLE_MPFR', True),
+ self.define('DISABLE_SSL', True),
+ ]
diff --git a/var/spack/repos/builtin/packages/slepc/package.py b/var/spack/repos/builtin/packages/slepc/package.py
index 47223be224..d6ab39e013 100644
--- a/var/spack/repos/builtin/packages/slepc/package.py
+++ b/var/spack/repos/builtin/packages/slepc/package.py
@@ -1,23 +1,31 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import sys
+
from spack import *
-class Slepc(Package):
+class Slepc(Package, CudaPackage, ROCmPackage):
"""Scalable Library for Eigenvalue Problem Computations."""
homepage = "https://slepc.upv.es"
- url = "https://slepc.upv.es/download/distrib/slepc-3.6.2.tar.gz"
+ url = "https://slepc.upv.es/download/distrib/slepc-3.15.2.tar.gz"
git = "https://gitlab.com/slepc/slepc.git"
maintainers = ['joseeroman', 'balay']
- version('master', branch='master')
+ test_requires_compiler = True
+
+ version('main', branch='main')
+ version('3.15.2', sha256='15fd317c4dd07bb41a994ad4c27271a6675af5f2abe40b82a64a27eaae2e632a')
+ version('3.15.1', sha256='9c7c3a45f0d9df51decf357abe090ef05114c38a69b7836386a19a96fb203aea')
+ version('3.15.0', sha256='e53783ae13acadce274ea65c67186b5ab12332cf17125a694e21d598aa6b5f00')
+ version('3.14.2', sha256='3e54578dda1f4c54d35ac27d02f70a43f6837906cb7604dbcec0e033cfb264c8')
+ version('3.14.1', sha256='cc78a15e34d26b3e6dde003d4a30064e595225f6185c1975bbd460cb5edd99c7')
version('3.14.0', sha256='37f8bb270169d1d3f5d43756ac8929d56204e596bd7a78a7daff707513472e46')
version('3.13.4', sha256='ddc9d58e1a4413218f4e67ea3b255b330bd389d67f394403a27caedf45afa496')
version('3.13.3', sha256='23d179c22b4b2f22d29fa0ac0a62f5355a964d3bc245a667e9332347c5aa8f81')
@@ -52,7 +60,8 @@ class Slepc(Package):
depends_on('python@2.6:2.8,3.4:', type='build', when='@3.11:')
# Cannot mix release and development versions of SLEPc and PETSc:
- depends_on('petsc@develop', when='@develop')
+ depends_on('petsc@main', when='@main')
+ depends_on('petsc@3.15:3.15.99', when='@3.15:3.15.99')
depends_on('petsc@3.14:3.14.99', when='@3.14:3.14.99')
depends_on('petsc@3.13:3.13.99', when='@3.13:3.13.99')
depends_on('petsc@3.12:3.12.99', when='@3.12:3.12.99')
@@ -62,6 +71,8 @@ class Slepc(Package):
depends_on('petsc@3.8:3.8.99', when='@3.8:3.8.99')
depends_on('petsc@3.7:3.7.7', when='@3.7.1:3.7.4')
depends_on('petsc@3.6.3:3.6.4', when='@3.6.2:3.6.3')
+ depends_on('petsc+cuda', when='+cuda')
+ depends_on('petsc+rocm', when='+rocm')
depends_on('arpack-ng~mpi', when='+arpack^petsc~mpi~int64')
depends_on('arpack-ng+mpi', when='+arpack^petsc+mpi~int64')
@@ -72,7 +83,7 @@ class Slepc(Package):
conflicts('+blopex', when='^petsc+int64')
resource(name='blopex',
- url='http://slepc.upv.es/download/external/blopex-1.1.2.tar.gz',
+ url='https://slepc.upv.es/download/external/blopex-1.1.2.tar.gz',
sha256='0081ee4c4242e635a8113b32f655910ada057c59043f29af4b613508a762f3ac',
destination=join_path('installed-arch-' + sys.platform + '-c-opt',
'externalpackages'),
@@ -91,11 +102,15 @@ class Slepc(Package):
# its symlink in spack/stage/ !
os.environ['SLEPC_DIR'] = os.getcwd()
- options = []
+ if self.spec.satisfies('%cce'):
+ filter_file(' flags = l',
+ ' flags = l\n flags += ["-fuse-ld=gold"]',
+ 'config/package.py')
+ options = []
if '+arpack' in spec:
options.extend([
- '--with-arpack-dir=%s' % spec['arpack-ng'].prefix.lib,
+ '--with-arpack-dir=%s' % spec['arpack-ng'].prefix,
])
if spec.satisfies('@:3.12.99'):
arpackopt = '--with-arpack-flags'
@@ -124,6 +139,36 @@ class Slepc(Package):
make('install', parallel=False)
- def setup_dependent_build_environment(self, env, dependent_spec):
- # set up SLEPC_DIR for everyone using SLEPc package
+ def setup_run_environment(self, env):
+ # set SLEPC_DIR & PETSC_DIR in the module file
env.set('SLEPC_DIR', self.prefix)
+ env.set('PETSC_DIR', self.spec['petsc'].prefix)
+
+ def run_hello_test(self):
+ """Run stand alone test: hello"""
+ test_dir = self.test_suite.current_test_data_dir
+
+ if not os.path.exists(test_dir):
+ print('Skipping slepc test')
+ return
+
+ exe = 'hello'
+ cc_exe = os.environ['CC']
+
+ self.run_test(exe=cc_exe,
+ options=['-I{0}'.format(self.prefix.include),
+ '-L', self.prefix.lib, '-l', 'slepc',
+ '-L', self.spec['petsc'].prefix.lib, '-l', 'petsc',
+ '-L', self.spec['mpi'].prefix.lib, '-l', 'mpi',
+ '-o', exe, join_path(test_dir, 'hello.c')],
+ purpose='test: compile {0} example'.format(exe),
+ work_dir=test_dir)
+
+ self.run_test(exe=exe,
+ options=[],
+ expected=['Hello world'],
+ purpose='test: run {0} example'.format(exe),
+ work_dir=test_dir)
+
+ def test(self):
+ self.run_hello_test()
diff --git a/var/spack/repos/builtin/packages/slepc/test/hello.c b/var/spack/repos/builtin/packages/slepc/test/hello.c
new file mode 100644
index 0000000000..8a9ca8674a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/slepc/test/hello.c
@@ -0,0 +1,14 @@
+static char help[] = "Hello World example program\n";
+
+#include "slepcsys.h"
+
+int main( int argc, char **argv )
+{
+ int ierr;
+
+ SlepcInitialize(&argc,&argv,(char*)0,help);
+ ierr = PetscPrintf(PETSC_COMM_WORLD,"Hello world\n");
+
+ return ierr;
+}
+
diff --git a/var/spack/repos/builtin/packages/slf4j/package.py b/var/spack/repos/builtin/packages/slf4j/package.py
index 0dc6fa40b1..5eeec60958 100644
--- a/var/spack/repos/builtin/packages/slf4j/package.py
+++ b/var/spack/repos/builtin/packages/slf4j/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/slider/package.py b/var/spack/repos/builtin/packages/slider/package.py
index 18695a3151..824f2292f0 100644
--- a/var/spack/repos/builtin/packages/slider/package.py
+++ b/var/spack/repos/builtin/packages/slider/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class Slider(MavenPackage):
long-running data access applications in Hadoop."""
homepage = "https://www.cloudera.com/products/open-source/apache-hadoop/apache-slider.html"
- url = "http://archive.apache.org/dist/incubator/slider/0.92.0-incubating/apache-slider-0.92.0-incubating-source-release.tar.gz"
+ url = "https://archive.apache.org/dist/incubator/slider/0.92.0-incubating/apache-slider-0.92.0-incubating-source-release.tar.gz"
list_url = "http://archive.apache.org/dist/incubator/slider"
list_depth = 1
diff --git a/var/spack/repos/builtin/packages/sloccount/package.py b/var/spack/repos/builtin/packages/sloccount/package.py
index c580a043d1..5beda2a1de 100644
--- a/var/spack/repos/builtin/packages/sloccount/package.py
+++ b/var/spack/repos/builtin/packages/sloccount/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/slurm/package.py b/var/spack/repos/builtin/packages/slurm/package.py
index de89d80544..88ba0d5f29 100644
--- a/var/spack/repos/builtin/packages/slurm/package.py
+++ b/var/spack/repos/builtin/packages/slurm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,6 +24,9 @@ class Slurm(AutotoolsPackage):
homepage = 'https://slurm.schedmd.com'
url = 'https://github.com/SchedMD/slurm/archive/slurm-19-05-6-1.tar.gz'
+ version('20-11-5-1', sha256='d0634c6c6cc79bde38d19f0ef0de0de3b07907830f5e45be6f4a9ca4259f8f67')
+ version('20-11-4-1', sha256='06c5333e85f531730bf1c6eb48a8d48a551d9090540ce37b78181024273fb6bd')
+ version('20-11-0-1', sha256='404f72c287c5aad887a5b141304e4962548c12f79b04fc9c88550bc024604228')
version('20-02-4-1', sha256='d32a39df20a99430973de6692870269f38443d8b963c32b4d6475c9d5e92cd73')
version('19-05-6-1', sha256='1b83bce4260af06d644253b1f2ec2979b80b4418c631e9c9f48c2729ae2c95ba')
version('19-05-5-1', sha256='e53e67bd0bb4c37a9c481998764a746467a96bc41d6527569080514f36452c07')
diff --git a/var/spack/repos/builtin/packages/smalt/package.py b/var/spack/repos/builtin/packages/smalt/package.py
index 47d5c99329..47d5cde7f0 100644
--- a/var/spack/repos/builtin/packages/smalt/package.py
+++ b/var/spack/repos/builtin/packages/smalt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Smalt(AutotoolsPackage, SourceforgePackage):
"""SMALT aligns DNA sequencing reads with a reference genome."""
- homepage = "http://www.sanger.ac.uk/science/tools/smalt-0"
+ homepage = "https://www.sanger.ac.uk/science/tools/smalt-0"
sourceforge_mirror_path = "smalt/smalt-0.7.6.tar.gz"
version('0.7.6', sha256='89ccdfe471edba3577b43de9ebfdaedb5cd6e26b02bf4000c554253433796b31')
diff --git a/var/spack/repos/builtin/packages/smartdenovo/aarch64.patch b/var/spack/repos/builtin/packages/smartdenovo/aarch64.patch
index 998c9b2cdf..f734dee41b 100644
--- a/var/spack/repos/builtin/packages/smartdenovo/aarch64.patch
+++ b/var/spack/repos/builtin/packages/smartdenovo/aarch64.patch
@@ -23,7 +23,7 @@ index 15dd0f2..22641ed 100644
#include <stdlib.h>
#include <stdint.h>
-#include <emmintrin.h>
-+#include "SSE2NEON.h"
++#include "sse2neon.h"
#include "ksw.h"
#ifdef USE_MALLOC_WRAPPERS
diff --git a/var/spack/repos/builtin/packages/smartdenovo/package.py b/var/spack/repos/builtin/packages/smartdenovo/package.py
index 48109ea9e4..8c1096e681 100644
--- a/var/spack/repos/builtin/packages/smartdenovo/package.py
+++ b/var/spack/repos/builtin/packages/smartdenovo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/smartmontools/package.py b/var/spack/repos/builtin/packages/smartmontools/package.py
index a3c555bd1a..f4c01277c1 100644
--- a/var/spack/repos/builtin/packages/smartmontools/package.py
+++ b/var/spack/repos/builtin/packages/smartmontools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Smartmontools(AutotoolsPackage):
"""S.M.A.R.T. utility toolset."""
- homepage = "http://smartmontools.sourceforge.net"
+ homepage = "https://smartmontools.sourceforge.net"
url = "https://nchc.dl.sourceforge.net/project/smartmontools/smartmontools/6.6/smartmontools-6.6.tar.gz"
version('6.6', sha256='51f43d0fb064fccaf823bbe68cf0d317d0895ff895aa353b3339a3b316a53054')
diff --git a/var/spack/repos/builtin/packages/smof/package.py b/var/spack/repos/builtin/packages/smof/package.py
index 41d41aeac0..0564605b94 100644
--- a/var/spack/repos/builtin/packages/smof/package.py
+++ b/var/spack/repos/builtin/packages/smof/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
# See the Spack documentation for more information on packaging.
-from spack import *
from os import symlink
+from spack import *
+
class Smof(Package):
"""Explore and analyze biological sequence data"""
diff --git a/var/spack/repos/builtin/packages/smproxy/package.py b/var/spack/repos/builtin/packages/smproxy/package.py
index 5e05f134e5..e2aed9086a 100644
--- a/var/spack/repos/builtin/packages/smproxy/package.py
+++ b/var/spack/repos/builtin/packages/smproxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Smproxy(AutotoolsPackage, XorgPackage):
"""smproxy allows X applications that do not support X11R6 session
management to participate in an X11R6 session."""
- homepage = "http://cgit.freedesktop.org/xorg/app/smproxy"
+ homepage = "https://cgit.freedesktop.org/xorg/app/smproxy"
xorg_mirror_path = "app/smproxy-1.0.6.tar.gz"
version('1.0.6', sha256='a01374763426a5fdcbc7a65edc54e2070cdbca4df41dddd3051c7586e4c814c9')
diff --git a/var/spack/repos/builtin/packages/snakemake/package.py b/var/spack/repos/builtin/packages/snakemake/package.py
index 2b670192b0..8e8fbb7756 100644
--- a/var/spack/repos/builtin/packages/snakemake/package.py
+++ b/var/spack/repos/builtin/packages/snakemake/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Snakemake(PythonPackage):
"""Snakemake is an MIT-licensed workflow management system."""
homepage = "https://snakemake.readthedocs.io/en/stable/"
- url = "https://pypi.io/packages/source/s/snakemake/snakemake-3.11.2.tar.gz"
+ pypi = "snakemake/snakemake-3.11.2.tar.gz"
version('3.11.2', sha256='f7a3b586bc2195f2dce4a4817b7ec828b6d2a0cff74a04e0f7566dcd923f9761')
diff --git a/var/spack/repos/builtin/packages/snap-berkeley/package.py b/var/spack/repos/builtin/packages/snap-berkeley/package.py
index de9928e0c3..c120e4d9e0 100644
--- a/var/spack/repos/builtin/packages/snap-berkeley/package.py
+++ b/var/spack/repos/builtin/packages/snap-berkeley/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class SnapBerkeley(MakefilePackage):
advantage of these reads to align data quickly through a hash-based
indexing scheme."""
- homepage = "http://snap.cs.berkeley.edu/"
+ homepage = "https://snap.cs.berkeley.edu/"
url = "https://github.com/amplab/snap/archive/v1.0beta.18.tar.gz"
version('1.0beta.18', sha256='9e8a8dc3f17e3f533d34011afe98316c19cbd70cc8b4830375611e003697daee')
diff --git a/var/spack/repos/builtin/packages/snap-korf/package.py b/var/spack/repos/builtin/packages/snap-korf/package.py
index dc10171052..511c9895dc 100644
--- a/var/spack/repos/builtin/packages/snap-korf/package.py
+++ b/var/spack/repos/builtin/packages/snap-korf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/snap/package.py b/var/spack/repos/builtin/packages/snap/package.py
index 3815d3ac64..eee20dab51 100644
--- a/var/spack/repos/builtin/packages/snap/package.py
+++ b/var/spack/repos/builtin/packages/snap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/snappy/package.py b/var/spack/repos/builtin/packages/snappy/package.py
index 2e0154aa6f..3929f4caaf 100644
--- a/var/spack/repos/builtin/packages/snappy/package.py
+++ b/var/spack/repos/builtin/packages/snappy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,19 +23,12 @@ class Snappy(CMakePackage):
patch('link_gtest.patch')
def cmake_args(self):
- spec = self.spec
-
- args = [
- '-DCMAKE_INSTALL_LIBDIR:PATH={0}'.format(
- self.prefix.lib),
- '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
- 'ON' if '+shared' in spec else 'OFF'),
- '-DSNAPPY_BUILD_TESTS:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF')
+ return [
+ self.define('CMAKE_INSTALL_LIBDIR', self.prefix.lib),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define('SNAPPY_BUILD_TESTS', self.run_tests),
]
- return args
-
def flag_handler(self, name, flags):
flags = list(flags)
if '+pic' in self.spec:
diff --git a/var/spack/repos/builtin/packages/snbone/package.py b/var/spack/repos/builtin/packages/snbone/package.py
index a349593b5a..835634a8f0 100644
--- a/var/spack/repos/builtin/packages/snbone/package.py
+++ b/var/spack/repos/builtin/packages/snbone/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sniffles/package.py b/var/spack/repos/builtin/packages/sniffles/package.py
index fafa8a1f9d..806d4835f9 100644
--- a/var/spack/repos/builtin/packages/sniffles/package.py
+++ b/var/spack/repos/builtin/packages/sniffles/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/snpeff/package.py b/var/spack/repos/builtin/packages/snpeff/package.py
index b8f23c5b68..c898ec1127 100644
--- a/var/spack/repos/builtin/packages/snpeff/package.py
+++ b/var/spack/repos/builtin/packages/snpeff/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Snpeff(Package, SourceforgePackage):
"""SnpEff is a variant annotation and effect prediction tool. It
diff --git a/var/spack/repos/builtin/packages/snphylo/package.py b/var/spack/repos/builtin/packages/snphylo/package.py
index 04eaf44d0e..e06bf65911 100644
--- a/var/spack/repos/builtin/packages/snphylo/package.py
+++ b/var/spack/repos/builtin/packages/snphylo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/snptest/package.py b/var/spack/repos/builtin/packages/snptest/package.py
index eb47242a29..91a8d07377 100644
--- a/var/spack/repos/builtin/packages/snptest/package.py
+++ b/var/spack/repos/builtin/packages/snptest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Snptest(Package):
genome-wide studies."""
homepage = "https://mathgen.stats.ox.ac.uk/genetics_software/snptest/snptest.html"
- url = "http://www.well.ox.ac.uk/~gav/resources/snptest_v2.5.2_linux_x86_64_dynamic.tgz"
+ url = "https://www.well.ox.ac.uk/~gav/resources/snptest_v2.5.2_linux_x86_64_dynamic.tgz"
version('2.5.2', sha256='1ffa3ebafa2c5db4866a38e01bb09f43df7973d053423ce67221cb3f8acb30f6')
diff --git a/var/spack/repos/builtin/packages/soapdenovo-trans/package.py b/var/spack/repos/builtin/packages/soapdenovo-trans/package.py
index 88c4cff038..93e0d61cd0 100644
--- a/var/spack/repos/builtin/packages/soapdenovo-trans/package.py
+++ b/var/spack/repos/builtin/packages/soapdenovo-trans/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class SoapdenovoTrans(MakefilePackage):
SOAPdenovo framework, adapt to alternative splicing and different
expression level among transcripts."""
- homepage = "http://soap.genomics.org.cn/SOAPdenovo-Trans.html"
+ homepage = "https://github.com/aquaskyline/SOAPdenovo-Trans"
url = "https://github.com/aquaskyline/SOAPdenovo-Trans/archive/1.0.4.tar.gz"
version('1.0.4', sha256='378a54cde0ebe240fb515ba67197c053cf95393645c1ae1399b3a611be2a9795')
diff --git a/var/spack/repos/builtin/packages/soapdenovo2/package.py b/var/spack/repos/builtin/packages/soapdenovo2/package.py
index 1045ba56a7..82e0172ab0 100644
--- a/var/spack/repos/builtin/packages/soapdenovo2/package.py
+++ b/var/spack/repos/builtin/packages/soapdenovo2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/soci/package.py b/var/spack/repos/builtin/packages/soci/package.py
index 2c8bae12c5..88a6a47b9d 100644
--- a/var/spack/repos/builtin/packages/soci/package.py
+++ b/var/spack/repos/builtin/packages/soci/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,42 @@ class Soci(CMakePackage):
"""Official repository of the SOCI - The C++ Database Access Library"""
homepage = "https://github.com/SOCI/soci"
- url = "https://github.com/SOCI/soci/archive/4.0.0.tar.gz"
+ url = "https://github.com/SOCI/soci/archive/v4.0.2.tar.gz"
+ version('4.0.2', sha256='f293192a412ed82693d17dfe46e2734b140bff835bc3259e3cbd7c315e5e2d74')
version('4.0.0', sha256='359b988d8cbe81357835317821919f7e270c0705e41951a92ac1627cb9fe8faf')
- version('3.2.3', sha256='1166664d5d7c4552c4c2abf173f98fa4427fbb454930fd04de3a39782553199e')
- version('3.2.2', sha256='cf1a6130ebdf0b84d246da948874ab1312c317e2ec659ede732b688667c355f4')
+ version('3.2.3', sha256='1166664d5d7c4552c4c2abf173f98fa4427fbb454930fd04de3a39782553199e',
+ url="https://github.com/SOCI/soci/archive/3.2.3.tar.gz")
+ version('3.2.2', sha256='cf1a6130ebdf0b84d246da948874ab1312c317e2ec659ede732b688667c355f4',
+ url="https://github.com/SOCI/soci/archive/3.2.2.tar.gz")
+
+ variant('cxxstd', default=11, values=('98', '11', '14', '17', '20'),
+ multi=False, description='Use the specified C++ standard when building')
+
+ variant('static', default=True, description='Enable build of static libraries')
+ variant('boost', default=False, description='Build with Boost support')
+ variant('sqlite', default=False, description='Build with SQLite support')
+ variant('postgresql', default=False, description='Build with PostgreSQL support')
+
+ depends_on('boost', when='+boost')
+ depends_on('sqlite', when='+sqlite')
+ depends_on('postgresql+client_only', when='+postgresql')
+
+ @property
+ def root_cmakelists_dir(self):
+ if self.spec.satisfies('@:3'):
+ return 'src'
+ else:
+ return self.stage.source_path
+
+ def cmake_args(self):
+ args = [
+ # SOCI_STATIC does not work with BOOL:OFF
+ '-DSOCI_STATIC=' + ('ON' if '+static' in self.spec else 'OFF'),
+ self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'),
+ self.define_from_variant('WITH_BOOST', 'boost'),
+ self.define_from_variant('WITH_SQLITE3', 'sqlite'),
+ self.define_from_variant('WITH_POSTGRESQL', 'postgresql'),
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/sofa-c/package.py b/var/spack/repos/builtin/packages/sofa-c/package.py
index f953033781..b653342f5c 100644
--- a/var/spack/repos/builtin/packages/sofa-c/package.py
+++ b/var/spack/repos/builtin/packages/sofa-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class SofaC(MakefilePackage):
"""Standards of Fundamental Astronomy (SOFA) library for ANSI C."""
homepage = "http://www.iausofa.org/current_C.html"
- url = "http://www.iausofa.org/2018_0130_C/sofa_c-20180130.tar.gz"
+ url = "https://www.iausofa.org/2018_0130_C/sofa_c-20180130.tar.gz"
version('20180130', sha256='de09807198c977e1c58ea1d0c79c40bdafef84f2072eab586a7ac246334796db')
diff --git a/var/spack/repos/builtin/packages/sollve/package.py b/var/spack/repos/builtin/packages/sollve/package.py
index c50eb85d7f..93462b031c 100644
--- a/var/spack/repos/builtin/packages/sollve/package.py
+++ b/var/spack/repos/builtin/packages/sollve/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -72,7 +72,7 @@ class Sollve(CMakePackage):
depends_on('binutils+gold', when='+gold')
# develop version.
- version("develop")
+ version("develop", deprecated=True)
resource(name='compiler-rt',
svn='http://llvm.org/svn/llvm-project/compiler-rt/trunk',
destination='projects', when='@develop+compiler-rt',
@@ -99,7 +99,8 @@ class Sollve(CMakePackage):
placement='libunwind')
# 1.0a2 based on LLVM 9.0+
- version("1.0a2", commit="cb4343bda9e57076a74dee23236ac9737e07594f")
+ version("1.0a2", commit="cb4343bda9e57076a74dee23236ac9737e07594f",
+ deprecated=True)
resource(name='compiler-rt',
svn='https://llvm.org/svn/llvm-project/compiler-rt/trunk',
revision=373130, destination='projects',
diff --git a/var/spack/repos/builtin/packages/sollya/package.py b/var/spack/repos/builtin/packages/sollya/package.py
new file mode 100644
index 0000000000..6d3fdad7de
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sollya/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 Sollya(AutotoolsPackage):
+ """Sollya is both a tool environment and a library for safe floating-point code
+ development. It is particularily targeted to the automatized implementation of
+ mathematical floating-point libraries (libm). Amongst other features, it offers
+ a certified infinity (supremum) norm and a fast Remez algorithm."""
+
+ homepage = "https://www.sollya.org"
+ url = "https://www.sollya.org/releases/sollya-7.0/sollya-7.0.tar.bz2"
+
+ version('7.0', sha256='15745871f7dd3e96e12915098dd6df2078b815853a38143b2bc6c01477044984')
+
+ depends_on('gmp')
+ depends_on('mpfi')
+ depends_on('mpfr')
+ depends_on('libxml2')
+ depends_on('fplll')
+
+ def configure_args(self):
+ args = ['--with-gmp=' + self.spec['gmp'].prefix,
+ '--with-mpfr=' + self.spec['mpfr'].prefix,
+ '--with-mpfi=' + self.spec['mpfi'].prefix,
+ '--with-xml2=' + self.spec['libxml2'].prefix,
+ '--with-fplll=' + self.spec['fplll'].prefix
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/solr/package.py b/var/spack/repos/builtin/packages/solr/package.py
index 84158c2ae4..16ef667bdd 100644
--- a/var/spack/repos/builtin/packages/solr/package.py
+++ b/var/spack/repos/builtin/packages/solr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,8 @@ class Solr(Package):
list_url = "https://archive.apache.org/dist/lucene/solr"
list_depth = 1
+ depends_on('java', type='run')
+
version('8.6.0', sha256='4519ccdb531619df770f1065db6adcedc052c7aa94b42806d541966550956aa5')
version('8.5.2', sha256='c457d6c7243241cad141e1df34c6f669d58a6c60e537f4217d032616dd066dcf')
version('8.5.1', sha256='47b68073b37bbcc0517a355ef722f20827c3f1416537ebbccf5239dda8064a0b')
diff --git a/var/spack/repos/builtin/packages/somatic-sniper/package.py b/var/spack/repos/builtin/packages/somatic-sniper/package.py
index 792c8551cb..37548e856c 100644
--- a/var/spack/repos/builtin/packages/somatic-sniper/package.py
+++ b/var/spack/repos/builtin/packages/somatic-sniper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class SomaticSniper(CMakePackage):
"""A tool to call somatic single nucleotide variants."""
- homepage = "http://gmt.genome.wustl.edu/packages/somatic-sniper"
+ homepage = "https://gmt.genome.wustl.edu/packages/somatic-sniper"
url = "https://github.com/genome/somatic-sniper/archive/v1.0.5.0.tar.gz"
version('1.0.5.0', sha256='fc41e90237b059fcc591e404830c4b1be678642dd5afd76ce545b97b4b7b3de1')
diff --git a/var/spack/repos/builtin/packages/sombrero/package.py b/var/spack/repos/builtin/packages/sombrero/package.py
new file mode 100644
index 0000000000..84459c4a41
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sombrero/package.py
@@ -0,0 +1,52 @@
+# Copyright 2013-2021 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 os import symlink
+
+from llnl.util.filesystem import join_path
+
+from spack import *
+
+
+class Sombrero(MakefilePackage):
+ "A next-generation conjugate gradient benchmark from computational particle physics"
+
+ homepage = "https://github.com/sa2c/sombrero"
+ url = "https://github.com/sa2c/sombrero/archive/refs/tags/1.0.tar.gz"
+
+ version('2021-07-31',
+ sha256='9c59693f330904b1f444187d1974a179c61d801f063581acb94a7a77955151e0')
+ version('2021-07-14',
+ sha256='d2801a4efea312a14fc34775b0dea862e958ccb9b7721a63b6c29e1224e12257')
+ version('2021-07-08',
+ sha256='816b0f0a684a421fa620f11c21649ac162e85d1febd6a7e10cfd07604760c0d6')
+ # Version 1 is incompatible with spack
+ # as CFLAGS and the like are hardcoded in the makefile.
+ version('1.0',
+ sha256='423a631c86f0e5f14dea186228871099ca0374dc07bf1bb24b6be17f79784682',
+ deprecated=True)
+
+ depends_on('mpi')
+
+ maintainers = ['mmesiti', 'edbennett']
+
+ def edit(self, spec, prefix):
+ # Make the `sombrero.sh` driver relocatable
+ sombrero_sh = FileFilter(
+ join_path(self.stage.source_path, 'sombrero.sh'))
+ sombrero_dir = join_path(prefix.bin, 'sombrero')
+ sombrero_sh.filter('sombrero/', '{0}/'.format(sombrero_dir))
+
+ def install(self, spec, prefix):
+ sombrero_dir = join_path(prefix.bin, 'sombrero')
+ mkdirp(sombrero_dir)
+ # Install the shell driver
+ install('sombrero.sh', prefix.bin)
+ # Install all executables
+ for i in range(1, 7):
+ src = join_path('sombrero', 'sombrero{0}'.format(i))
+ install(src, sombrero_dir)
+ symlink(join_path(sombrero_dir, 'sombrero{0}'.format(i)),
+ join_path(prefix.bin, 'sombrero{0}'.format(i)))
diff --git a/var/spack/repos/builtin/packages/sonlib/package.py b/var/spack/repos/builtin/packages/sonlib/package.py
index c071e8a7b0..8a0e8cd435 100644
--- a/var/spack/repos/builtin/packages/sonlib/package.py
+++ b/var/spack/repos/builtin/packages/sonlib/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Sonlib(MakefilePackage):
"""sonLib is a compact C/Python library for
diff --git a/var/spack/repos/builtin/packages/sortmerna/for_aarch64.patch b/var/spack/repos/builtin/packages/sortmerna/for_aarch64.patch
new file mode 100644
index 0000000000..a1a279a1de
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sortmerna/for_aarch64.patch
@@ -0,0 +1,22 @@
+--- spack-src/src/sortmerna/ssw.c.bak 2021-01-15 15:52:23.000000000 +0900
++++ spack-src/src/sortmerna/ssw.c 2021-01-15 16:20:53.863003152 +0900
+@@ -42,7 +42,7 @@
+ * July 10, 2013
+ */
+
+-#include <emmintrin.h>
++#include <sse2neon.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+--- spack-src/include/ssw.h.bak 2021-01-15 15:52:22.000000000 +0900
++++ spack-src/include/ssw.h 2021-01-15 16:16:51.383025096 +0900
+@@ -21,7 +21,7 @@
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <string.h>
+-#include <emmintrin.h>
++#include <sse2neon.h>
+
+ extern const char map_nt[122];
+ /*! @typedef structure of the query profile */
diff --git a/var/spack/repos/builtin/packages/sortmerna/package.py b/var/spack/repos/builtin/packages/sortmerna/package.py
index 3369f9b3a8..a5537da9b2 100644
--- a/var/spack/repos/builtin/packages/sortmerna/package.py
+++ b/var/spack/repos/builtin/packages/sortmerna/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,10 +16,13 @@ class Sortmerna(CMakePackage):
version('2017-07-13', commit='8bde6fa113a5d99a23ae81b48eeea6760e966094')
depends_on('zlib')
+ depends_on('sse2neon', when='target=aarch64:')
+
+ patch('for_aarch64.patch', when='target=aarch64:')
def install(self, spec, prefix):
mkdirp(prefix.bin)
- with working_dir(join_path('spack-build', 'src', 'indexdb')):
+ with working_dir(join_path(self.build_directory, 'src', 'indexdb')):
install('indexdb', prefix.bin)
- with working_dir(join_path('spack-build', 'src', 'sortmerna')):
+ with working_dir(join_path(self.build_directory, 'src', 'sortmerna')):
install('sortmerna', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/sos/package.py b/var/spack/repos/builtin/packages/sos/package.py
new file mode 100644
index 0000000000..9663da0528
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sos/package.py
@@ -0,0 +1,59 @@
+# Copyright 2013-2021 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 Sos(AutotoolsPackage):
+ """Sandia OpenSHMEM."""
+
+ homepage = "https://github.com/Sandia-OpenSHMEM/SOS"
+ url = "https://github.com/Sandia-OpenSHMEM/SOS/archive/refs/tags/v1.5.0.zip"
+
+ # notify when the package is updated.
+ maintainers = ['rscohn2']
+
+ version('1.5.0', sha256='02679da6085cca2919f900022c46bad48479690586cb4e7f971ec3a735bab4d4')
+ version('1.4.5', sha256='42778ba3cedb632ac3fbbf8917f415a804f8ca3b67fb3da6d636e6c50c501906')
+
+ variant('xpmem', default=False, description='Enable xpmem for transport')
+ variant('ofi', default=True, description='Enable ofi for transport')
+ variant('shr-atomics', default=False, description='Enable shared memory atomic operations')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('libfabric', type='link', when='+ofi')
+ depends_on('xpmem', type='link', when='+xpmem')
+
+ # Enable use of the OSH wrappers outside of Spack by preventing
+ # them from using the spack wrappers
+ filter_compiler_wrappers(
+ 'oshcc', 'oshc++', 'oshcc', 'oshfort', relative_root='bin'
+ )
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ self.setup_compiler_environment(env)
+
+ # Enable the osh wrappers to use spack wrappers when inside spack
+ # with env variables
+ env.set('SHMEM_CC', spack_cc)
+ env.set('SHMEM_CXX', spack_cxx)
+ env.set('SHMEM_FC', spack_fc)
+
+ def autoreconf(self, spec, prefix):
+ bash = Executable('bash')
+ bash('./autogen.sh')
+
+ def configure_args(self):
+ args = []
+ args.extend(self.with_or_without('xpmem'))
+ args.extend(self.with_or_without('ofi'))
+ # This option is not compatiable with remote atomics
+ args.extend(self.enable_or_disable('shr-atomics'))
+ args.append('--enable-pmi-simple')
+ return args
diff --git a/var/spack/repos/builtin/packages/sosflow/package.py b/var/spack/repos/builtin/packages/sosflow/package.py
index 161eed24dc..450034a351 100644
--- a/var/spack/repos/builtin/packages/sosflow/package.py
+++ b/var/spack/repos/builtin/packages/sosflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/source-highlight/package.py b/var/spack/repos/builtin/packages/source-highlight/package.py
index 67d3b36881..addb69cfed 100644
--- a/var/spack/repos/builtin/packages/source-highlight/package.py
+++ b/var/spack/repos/builtin/packages/source-highlight/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sowing/package.py b/var/spack/repos/builtin/packages/sowing/package.py
index 8039dcb5b4..29d25b9050 100644
--- a/var/spack/repos/builtin/packages/sowing/package.py
+++ b/var/spack/repos/builtin/packages/sowing/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class Sowing(AutotoolsPackage):
and MPICH.
"""
- homepage = "http://www.mcs.anl.gov/petsc/index.html"
- url = "http://ftp.mcs.anl.gov/pub/petsc/externalpackages/sowing-1.1.23-p1.tar.gz"
+ homepage = "https://www.mcs.anl.gov/petsc/index.html"
+ url = "https://ftp.mcs.anl.gov/pub/petsc/externalpackages/sowing-1.1.23-p1.tar.gz"
version('1.1.26-p1', sha256='fa0bd07295e5d768f2c33c8ab32205cc6411d42cb40bde0700fb57f9ee31c3d9')
version('1.1.25-p1', sha256='c3a5bb170fffeeb1405ec4c3a048744a528d2bef24de29b6ac5e970cfeaddab5')
diff --git a/var/spack/repos/builtin/packages/sox/package.py b/var/spack/repos/builtin/packages/sox/package.py
index db936cf60f..edd3ae1ead 100644
--- a/var/spack/repos/builtin/packages/sox/package.py
+++ b/var/spack/repos/builtin/packages/sox/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sp/package.py b/var/spack/repos/builtin/packages/sp/package.py
new file mode 100644
index 0000000000..c374df97c9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sp/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 Sp(CMakePackage):
+ """The spectral transform library splib contains FORTRAN subprograms
+ to be used for a variety of spectral transform functions. This is
+ part of the NCEPLIBS project."""
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS-sp"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-sp/archive/refs/tags/v2.3.3.tar.gz"
+
+ maintainers = ['t-brown', 'kgerheiser', 'edwardhartnett', 'Hang-Lei-NOAA']
+
+ version('2.3.3', sha256='c0d465209e599de3c0193e65671e290e9f422f659f1da928505489a3edeab99f')
diff --git a/var/spack/repos/builtin/packages/spades/package.py b/var/spack/repos/builtin/packages/spades/package.py
index 47c0fcbcfd..55e8a2e9ea 100644
--- a/var/spack/repos/builtin/packages/spades/package.py
+++ b/var/spack/repos/builtin/packages/spades/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,11 @@ class Spades(CMakePackage):
"""SPAdes - St. Petersburg genome assembler - is intended for both
standard isolates and single-cell MDA bacteria assemblies."""
- homepage = "http://cab.spbu.ru/software/spades/"
- url = "http://cab.spbu.ru/files/release3.10.1/SPAdes-3.10.1.tar.gz"
+ homepage = "https://cab.spbu.ru/software/spades/"
+ url = "https://github.com/ablab/spades/releases/download/v3.15.3/SPAdes-3.15.3.tar.gz"
+ version('3.15.3', sha256='b2e5a9fd7a65aee5ab886222d6af4f7b7bc7f755da7a03941571fabd6b9e1499')
+ version('3.15.0', sha256='6719489fa4bed6dd96d78bdd4001a30806d5469170289085836711d1ffb8b28b')
version('3.14.1', sha256='d629b78f7e74c82534ac20f5b3c2eb367f245e6840a67b9ef6a76f6fac5323ca')
version('3.13.0', sha256='c63442248c4c712603979fa70503c2bff82354f005acda2abc42dd5598427040')
version('3.12.0', sha256='15b48a3bcbbe6a8ad58fd04ba5d3f1015990fbfd9bdf4913042803b171853ac7')
diff --git a/var/spack/repos/builtin/packages/span-lite/package.py b/var/spack/repos/builtin/packages/span-lite/package.py
index ea22806822..c5a25c9000 100644
--- a/var/spack/repos/builtin/packages/span-lite/package.py
+++ b/var/spack/repos/builtin/packages/span-lite/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 shutil import copytree
+from spack import *
+
class SpanLite(CMakePackage):
"""
diff --git a/var/spack/repos/builtin/packages/spark/package.py b/var/spack/repos/builtin/packages/spark/package.py
index 7458a82068..be6bbf2d71 100644
--- a/var/spack/repos/builtin/packages/spark/package.py
+++ b/var/spack/repos/builtin/packages/spark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class Spark(Package):
for large-scale data processing.
"""
- homepage = "http://spark.apache.org"
- url = "http://archive.apache.org/dist/spark/spark-2.0.0/spark-2.0.0-bin-without-hadoop.tgz"
+ homepage = "https://spark.apache.org"
+ url = "https://archive.apache.org/dist/spark/spark-2.0.0/spark-2.0.0-bin-without-hadoop.tgz"
variant('hadoop', default=False,
description='Build with Hadoop')
@@ -22,6 +22,10 @@ class Spark(Package):
depends_on('java', type=('build', 'run'))
depends_on('hadoop', when='+hadoop', type=('build', 'run'))
+ version('3.1.1', sha256='2d16f527016993e69a7c801233e661a170e3099ae2d9b950f7457729d63062f4')
+ version('3.0.2', sha256='1a904f9bfa44a1218cb440c99800dd2ae729249a73c63b3bb10e431ed5b58406')
+ version('3.0.1', sha256='ddda310ac09e3f2da9c33ad278b1665fbad2411d8da127d0de86b90019e962dc')
+ version('2.4.7', sha256='f68f6a63814078ba3246dbf755f597b814a228122b239b07efb3909f017ddf8b')
version('2.3.0', sha256='a7e29e78bd43aa6d137f0bb0afd54a3017865d471456c6d436ae79475bbeb161')
version('2.1.0', sha256='3ca4ecb0eb9a00de5099cc2564ed957433a2d15d9d645a60470324621853c5ae')
version('2.0.2', sha256='122ec1af0fcb23c0345f20f77d33cf378422ffe966efe4b9ef90e55cf7a46a3c')
diff --git a/var/spack/repos/builtin/packages/sparse/package.py b/var/spack/repos/builtin/packages/sparse/package.py
index b6db13039b..049a087e9a 100644
--- a/var/spack/repos/builtin/packages/sparse/package.py
+++ b/var/spack/repos/builtin/packages/sparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sparsehash/package.py b/var/spack/repos/builtin/packages/sparsehash/package.py
index 0591029f36..bcc4aa81f8 100644
--- a/var/spack/repos/builtin/packages/sparsehash/package.py
+++ b/var/spack/repos/builtin/packages/sparsehash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,6 +9,7 @@ from spack import *
class Sparsehash(AutotoolsPackage):
"""Sparse and dense hash-tables for C++ by Google"""
homepage = "https://github.com/sparsehash/sparsehash"
- url = "https://github.com/sparsehash/sparsehash/archive/sparsehash-2.0.3.tar.gz"
+ url = "https://github.com/sparsehash/sparsehash/archive/sparsehash-2.0.4.tar.gz"
+ version('2.0.4', sha256='8cd1a95827dfd8270927894eb77f62b4087735cbede953884647f16c521c7e58')
version('2.0.3', sha256='05e986a5c7327796dad742182b2d10805a8d4f511ad090da0490f146c1ff7a8c')
diff --git a/var/spack/repos/builtin/packages/sparskit/package.py b/var/spack/repos/builtin/packages/sparskit/package.py
new file mode 100644
index 0000000000..5b2e737d9e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sparskit/package.py
@@ -0,0 +1,77 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class Sparskit(MakefilePackage):
+ """SPARSKIT: A basic tool-kit for sparse matrix computations (Version 2).
+
+ Made by Yousef Saad, University of Minnesota.
+ """
+
+ homepage = "https://www-users.cse.umn.edu/~saad/software/SPARSKIT/"
+
+ version('develop', sha256='ecdd0a9968d6b45153a328710a42fe87600f0bba0e3c53896090b8ae1c113b7a',
+ url='http://www-users.cs.umn.edu/~saad/software/SPARSKIT/SPARSKIT2.tar.gz')
+
+ # The library uses blas routine which needs to be known when the lib is used.
+ # A dependent package should add self.spec['blas'].libs.ld_flags
+ # at the end of its link line.
+ # But, asis, this packages compiles without needing to know about it.
+ # depends_on('blas', type='run')
+
+ variant('pic', default=True,
+ description='Compile with position independent code.')
+ variant('debug', default=False,
+ description='Builds a debug version of the library')
+
+ # We provide the standard Make flags here:
+ # https://spack.readthedocs.io/en/latest/packaging_guide.html?highlight=flag_handler#compiler-flags
+ def flag_handler(self, name, flags):
+ spec = self.spec
+ if '+pic' in spec:
+ if name == 'fflags':
+ flags.append(self.compiler.fc_pic_flag)
+ if name == 'fflags':
+ if 'gfortran' in self.compiler.fc:
+ flags.append('-std=legacy')
+ flags.append('-Wall')
+ if '+debug' in spec:
+ if '-g' in self.compiler.debug_flags:
+ flags.append('-g')
+ if '-O0' in self.compiler.opt_flags:
+ flags.append('-O0')
+ elif '-O' in self.compiler.opt_flags:
+ flags.append('-O')
+ else:
+ if '-O3' in self.compiler.opt_flags:
+ flags.append('-O3')
+ elif '-O2' in self.compiler.opt_flags:
+ flags.append('-O2')
+
+ return (None, flags, None)
+
+ def edit(self, spec, prefix):
+ mkfile = FileFilter('makefile')
+ mkfile.filter(r'^(OPT).*=.+', r'\1= -c $(FFLAGS)')
+ if os.path.exists('libskit.a'):
+ os.unlink('libskit.a')
+
+ def build(self, spec, prefix):
+ make('clean')
+ make('F77={0}'.format(spack_fc))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.lib)
+ install('libskit.*', prefix.lib)
+
+ @property
+ def libs(self):
+ return find_libraries(
+ "libskit*", root=self.prefix, shared=False, recursive=True
+ )
diff --git a/var/spack/repos/builtin/packages/sparta/package.py b/var/spack/repos/builtin/packages/sparta/package.py
index ab1460aae4..c03d5fe96c 100644
--- a/var/spack/repos/builtin/packages/sparta/package.py
+++ b/var/spack/repos/builtin/packages/sparta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/spath/package.py b/var/spack/repos/builtin/packages/spath/package.py
index 5ccd259f48..a1554e16da 100644
--- a/var/spack/repos/builtin/packages/spath/package.py
+++ b/var/spack/repos/builtin/packages/spath/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,14 +10,18 @@ class Spath(CMakePackage):
"""Represent and manipulate file system paths"""
homepage = "https://github.com/ecp-veloc/spath"
+ url = "https://github.com/ECP-VeloC/spath/archive/v0.0.2.tar.gz"
git = "https://github.com/ecp-veloc/spath.git"
tags = ['ecp']
- version('master', branch='master')
+ version('main', branch='main')
+ version('0.0.2', sha256='7a65be59c3d27e92ed4718fba1a97a4a1c68e0a552b54de13d58afe3d8199cf7')
+ version('0.0.1', sha256='f41c0ac74e6fb8acfd0c072d756db0fc9c00441f22be492cc4ad25f7fb596a24')
variant('mpi', default=True, description="Build with MPI support.")
depends_on('mpi', when='+mpi')
+ depends_on('zlib', type='link')
def cmake_args(self):
args = []
diff --git a/var/spack/repos/builtin/packages/spdlog/package.py b/var/spack/repos/builtin/packages/spdlog/package.py
index 15a0cc1d9d..0a5adc2f00 100644
--- a/var/spack/repos/builtin/packages/spdlog/package.py
+++ b/var/spack/repos/builtin/packages/spdlog/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,15 @@ class Spdlog(CMakePackage):
homepage = "https://github.com/gabime/spdlog"
url = "https://github.com/gabime/spdlog/archive/v0.9.0.tar.gz"
+ version('1.8.5', sha256='944d0bd7c763ac721398dca2bb0f3b5ed16f67cef36810ede5061f35a543b4b8')
+ version('1.8.4', sha256='d19cff06a3d235efcb451e04193a925bebc6ef7e7bd4a56ca27096acbab3cf3b')
+ version('1.8.3', sha256='6f5b88ca4c9b96264e6c961716fec6f1a7b94c80a5edce667c3e42507caa8a82')
+ version('1.8.2', sha256='e20e6bd8f57e866eaf25a5417f0a38a116e537f1a77ac7b5409ca2b180cec0d5')
+ version('1.8.1', sha256='5197b3147cfcfaa67dd564db7b878e4a4b3d9f3443801722b3915cdeced656cb')
+ version('1.8.0', sha256='1e68e9b40cf63bb022a4b18cdc1c9d88eb5d97e4fd64fa981950a9cacf57a4bf')
+ version('1.7.0', sha256='f0114a4d3c88be9e696762f37a7c379619443ce9d668546c61b21d41affe5b62')
+ version('1.6.1', sha256='378a040d91f787aec96d269b0c39189f58a6b852e4cbf9150ccfacbe85ebbbfc')
+ version('1.6.0', sha256='0421667c9f2fc78e6548d44f7bc5921be0f03e612df384294c16cedb93d967f8')
version('1.5.0', sha256='b38e0bbef7faac2b82fed550a0c19b0d4e7f6737d5321d4fd8f216b80f8aee8a')
version('1.4.2', sha256='821c85b120ad15d87ca2bc44185fa9091409777c756029125a02f81354072157')
version('1.4.1', sha256='3291958eb54ed942d1bd3aef1b4f8ccf70566cbc04d34296ec61eb96ceb73cff')
@@ -34,22 +43,18 @@ class Spdlog(CMakePackage):
variant('shared', default=True,
description='Build shared libraries (v1.4.0+)')
- depends_on('cmake@3.2:', type='build')
+ depends_on('cmake@3.2:', when='@:1.7.0', type='build')
+ depends_on('cmake@3.10:', when='@1.8.0:', type='build')
def cmake_args(self):
- spec = self.spec
-
args = []
if self.spec.version >= Version('1.4.0'):
args.extend([
- '-DSPDLOG_BUILD_SHARED:BOOL={0}'.format(
- 'ON' if '+shared' in spec else 'OFF'),
+ self.define_from_variant('SPDLOG_BUILD_SHARED', 'shared'),
# tests and examples
- '-DSPDLOG_BUILD_TESTS:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF'),
- '-DSPDLOG_BUILD_EXAMPLE:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF')
+ self.define('SPDLOG_BUILD_TESTS', self.run_tests),
+ self.define('SPDLOG_BUILD_EXAMPLE', self.run_tests)
])
return args
diff --git a/var/spack/repos/builtin/packages/specfem3d-globe/gcc_rm_werror.patch b/var/spack/repos/builtin/packages/specfem3d-globe/gcc_rm_werror.patch
new file mode 100644
index 0000000000..f53c4661b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/specfem3d-globe/gcc_rm_werror.patch
@@ -0,0 +1,11 @@
+--- spack-src/flags.guess.org 2021-01-07 14:37:33.000000000 +0900
++++ spack-src/flags.guess 2021-01-07 14:38:07.000000000 +0900
+@@ -115,7 +115,7 @@
+ # with some versions of gfortran/gcc you make get errors about unused functions when compiling with the options below;
+ # if so, either change -Wunused to -Wunused -Werror=no-unused-function, or remove -Wunused, or remove -Werror
+ #
+- DEF_FFLAGS="-std=gnu -fimplicit-none -frange-check -fmax-errors=10 -pedantic -pedantic-errors -Waliasing -Wampersand -Wcharacter-truncation -Wline-truncation -Wsurprising -Wno-tabs -Wunderflow -ffpe-trap=invalid,zero,overflow -Wunused -Werror" # -mcmodel=medium
++ DEF_FFLAGS="-std=gnu -fimplicit-none -frange-check -fmax-errors=10 -pedantic -pedantic-errors -Waliasing -Wampersand -Wcharacter-truncation -Wline-truncation -Wsurprising -Wno-tabs -Wunderflow -ffpe-trap=invalid,zero,overflow -Wunused" # -mcmodel=medium
+ OPT_FFLAGS="-O3 -finline-functions"
+ DEBUG_FFLAGS="-g -O0 -ggdb -fbacktrace -fbounds-check"
+ # useful to track loss of accuracy because of automatic double to single precision conversion: -Wconversion (this may generate many warnings...)
diff --git a/var/spack/repos/builtin/packages/specfem3d-globe/package.py b/var/spack/repos/builtin/packages/specfem3d-globe/package.py
new file mode 100644
index 0000000000..e331a2e8c8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/specfem3d-globe/package.py
@@ -0,0 +1,63 @@
+# Copyright 2013-2021 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 Specfem3dGlobe(AutotoolsPackage, CudaPackage):
+ """Program specfem3D from SPECFEM3D_GLOBE is
+ a 3-D spectral-element solver for the Earth.
+ It uses a mesh generated by program meshfem3D."""
+
+ homepage = "https://github.com/geodynamics/specfem3d_globe"
+ url = "https://github.com/geodynamics/specfem3d_globe/archive/v7.0.2.tar.gz"
+
+ version('7.0.2', sha256='78b4cfbe4e5121927ab82a8c2e821b65cdfff3e94d017303bf21af7805186d9b')
+
+ variant('opencl', default=False,
+ description="Build with OpenCL code generator")
+ variant('openmp', default=True,
+ description="Build with OpenMP code generator")
+ variant('double-precision', default=False,
+ description="Treat REAL as double precision")
+
+ depends_on('mpi')
+ depends_on('opencl', when='+opencl')
+
+ # When building with the gcc compiler,'Werror' is added to FFLAGS.
+ # In the case of using the gcc compiler and the default simulation
+ # settings, there is the process which always causes
+ # array out-of-bounds reference error.
+ # This issue will be fixed in version 8.0.0,
+ # so, remove '-Werror' when building with gcc compiler
+ # in versions up to 7.0.2 of specfem3d-globe.
+ # https://github.com/geodynamics/specfem3d_globe/issues/717
+ patch('gcc_rm_werror.patch', when='@:7.0.2%gcc')
+
+ def configure_args(self):
+ args = []
+
+ if '+cuda' in self.spec:
+ args.append('--with-cuda')
+ args.append('CUDA_LIB={0}'
+ .format(spec['cuda'].libs.directories[0]))
+ args.append('CUDA_INC={0}'
+ .format(spec['cuda'].prefix.include))
+ args.append('MPI_INC={0}'
+ .format(spec['mpi'].prefix.include))
+ if '+opencl' in self.spec:
+ args.append('--with-opencl')
+ args.append('OCL_LIB={0}'
+ .format(spec['opencl'].libs.directories[0]))
+ args.append('OCL_INC={0}'
+ .format(spec['opencl'].prefix.include))
+
+ args.extend(self.enable_or_disable('openmp'))
+ args.extend(self.enable_or_disable('double-precision'))
+
+ return args
+
+ def install(self, spec, prefix):
+ install_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/spectrum-mpi/package.py b/var/spack/repos/builtin/packages/spectrum-mpi/package.py
index 4efd7a0dd9..ceca784288 100644
--- a/var/spack/repos/builtin/packages/spectrum-mpi/package.py
+++ b/var/spack/repos/builtin/packages/spectrum-mpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class SpectrumMpi(Package):
has_code = False
- homepage = "http://www-03.ibm.com/systems/spectrum-computing/products/mpi"
+ homepage = "https://www-03.ibm.com/systems/spectrum-computing/products/mpi"
provides('mpi')
diff --git a/var/spack/repos/builtin/packages/speex/package.py b/var/spack/repos/builtin/packages/speex/package.py
index 734d811f7f..3b5608b7f4 100644
--- a/var/spack/repos/builtin/packages/speex/package.py
+++ b/var/spack/repos/builtin/packages/speex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/speexdsp/package.py b/var/spack/repos/builtin/packages/speexdsp/package.py
index 1031bb5eb7..3f47ee17e2 100644
--- a/var/spack/repos/builtin/packages/speexdsp/package.py
+++ b/var/spack/repos/builtin/packages/speexdsp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/spfft/0001-fix-missing-limits-include.patch b/var/spack/repos/builtin/packages/spfft/0001-fix-missing-limits-include.patch
new file mode 100644
index 0000000000..da61a2b6ee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/spfft/0001-fix-missing-limits-include.patch
@@ -0,0 +1,37 @@
+From 237ed848e8cca208334c352f09caa85101a634c6 Mon Sep 17 00:00:00 2001
+From: Simon Frasch <simon.frasch@cscs.ch>
+Date: Tue, 11 May 2021 11:53:13 +0200
+Subject: [PATCH] fix missing <limits> include
+
+---
+ src/memory/array_view_utility.hpp | 1 +
+ src/spfft/grid_internal.cpp | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/memory/array_view_utility.hpp b/src/memory/array_view_utility.hpp
+index 51ccef0..0095842 100644
+--- a/src/memory/array_view_utility.hpp
++++ b/src/memory/array_view_utility.hpp
+@@ -34,6 +34,7 @@
+ #include <complex>
+ #include <cstdint>
+ #include <utility>
++#include <limits>
+ #include "memory/gpu_array_view.hpp"
+ #include "memory/host_array_view.hpp"
+ #include "memory/memory_type_trait.hpp"
+diff --git a/src/spfft/grid_internal.cpp b/src/spfft/grid_internal.cpp
+index e95e7f6..4a1483a 100644
+--- a/src/spfft/grid_internal.cpp
++++ b/src/spfft/grid_internal.cpp
+@@ -29,6 +29,7 @@
+
+ #include <complex>
+ #include <memory>
++#include <limits>
+ #include "spfft/grid_internal.hpp"
+
+ #ifdef SPFFT_MPI
+--
+2.24.3 (Apple Git-128)
+
diff --git a/var/spack/repos/builtin/packages/spfft/package.py b/var/spack/repos/builtin/packages/spfft/package.py
index 2068f46537..a5e6448e82 100644
--- a/var/spack/repos/builtin/packages/spfft/package.py
+++ b/var/spack/repos/builtin/packages/spfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,11 @@ class Spfft(CMakePackage, CudaPackage):
version('develop', branch='develop')
version('master', branch='master')
+ version('1.0.4', sha256='41e63880d95343da0d8c3dbe5bfb3d46a1d612199cc9cc13a936f1628a7fdb8e')
+ version('1.0.3', sha256='4f87734e3582ef96ddc0402d0db78cfc173bed9cab3e0d9c6a6bf8b660d69559')
+ version('1.0.2', sha256='9b1296bda0b9ec3d37c74fd64354a01ebc6e2da7cb026c1f821882160b03c692')
+ version('1.0.1', sha256='f8ab706309776cfbd2bfd8e29a6a9ffb5c8f3cd62399bf82db1e416ae5c490c8')
+ version('1.0.0', sha256='bd98897aa6734563ec63cd84168e731ef2e2bbc01a574c6dc59b74475742b6ee')
version('0.9.13', sha256='5ccc93c9362bec14cfb6e31dd0e7ae7e48db0453ab49ebc9722041b69db759ef')
version('0.9.12', sha256='1f7bf5164dcceb0e3bbce7d6ff9faef3145ad17cf3430149d40a98c43c010acc')
version('0.9.11', sha256='36542a60378e8672654188dee006975ef9e10f502791459ff7ebf4b38451cb9b')
@@ -47,35 +52,43 @@ class Spfft(CMakePackage, CudaPackage):
depends_on('rocfft', when='+rocm')
depends_on('hip', when='+rocm')
- depends_on('hsakmt-roct', when='+rocm', type='link')
- depends_on('hsa-rocr-dev', when='+rocm', type='link')
variant('amdgpu_target', default='gfx803,gfx900,gfx906', multi=True, values=amdgpu_targets)
depends_on('cuda@:10', when='@:0.9.11 +cuda')
+ # FindHIP cmake script only works for < 4.1
+ depends_on('hip@:4.0', when='@:1.0.1 +rocm')
+
+ # Fix compilation error in some cases due to missing include statement
+ # before version 1.0.3
+ patch('0001-fix-missing-limits-include.patch', when='@:1.0.2')
+
def cmake_args(self):
spec = self.spec
- args = []
- if spec.satisfies('+openmp'):
- args += ["-DSPFFT_OMP=On"]
- if spec.satisfies('+mpi'):
- args += ["-DSPFFT_MPI=On"]
- if spec.satisfies('+single_precision'):
- args += ["-DSPFFT_SINGLE_PRECISION=On"]
- if spec.satisfies('+gpu_direct'):
- args += ["-DSPFFT_GPU_DIRECT=On"]
+ args = [
+ self.define_from_variant('SPFFT_OMP', 'openmp'),
+ self.define_from_variant('SPFFT_MPI', 'mpi'),
+ self.define_from_variant('SPFFT_SINGLE_PRECISION', 'single_precision'),
+ self.define_from_variant('SPFFT_GPU_DIRECT', 'gpu_direct'),
+ self.define_from_variant('SPFFT_FORTRAN', 'fortran'),
+ self.define_from_variant('SPFFT_STATIC', 'static')
+ ]
+
if spec.satisfies('+cuda'):
args += ["-DSPFFT_GPU_BACKEND=CUDA"]
+
if spec.satisfies('+rocm'):
archs = ",".join(self.spec.variants['amdgpu_target'].value)
args += [
'-DSPFFT_GPU_BACKEND=ROCM',
'-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
- '-DHIP_HCC_FLAGS=--amdgpu-target={0}'.format(archs)
+ '-DHIP_HCC_FLAGS=--amdgpu-target={0}'.format(archs),
+ '-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc)
]
- if spec.satisfies('+fortran'):
- args += ["-DSPFFT_FORTAN=On"]
- if spec.satisfies('+static'):
- args += ["-DSPFFT_STATIC=On"]
+
+ if 'fftw' in spec:
+ args += ["-DSPFFT_FFTW_LIB=FFTW"]
+ elif 'intel-mkl' in spec:
+ args += ["-DSPFFT_FFTW_LIB=MKL"]
return args
diff --git a/var/spack/repos/builtin/packages/spglib/package.py b/var/spack/repos/builtin/packages/spglib/package.py
index dff137ef03..11ef48ba5b 100644
--- a/var/spack/repos/builtin/packages/spglib/package.py
+++ b/var/spack/repos/builtin/packages/spglib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,10 +16,28 @@ class Spglib(CMakePackage):
# patch by Krishnendu Ghosh
patch('fix_cpp.patch', when='@:1.10.3')
- version('1.10.3', sha256='43776b5fb220b746d53c1aa39d0230f304687ec05984671392bccaf850d9d696')
- version('1.10.0', sha256='117fff308731784bea2ddaf3d076f0ecbf3981b31ea1c1bfd5ce4f057a5325b1')
+ version('1.16.1', sha256='e90682239e4ef63b492fa4e44f7dbcde2e2fe2e688579d96b01f2730dfdf5b2e')
+ version('1.16.0', sha256='969311a2942fef77ee79ac9faab089b68e256f21713194969197e7f2bdb14772')
+ version('1.15.1', sha256='b6dc2c8adcc7d0edee7a076e765c28b2941b2aeba590d213a0b4893c8af0c026')
+ version('1.15.0', sha256='2e217beff6840a22ab2149598eb2f40616b2eeb9e155edab52761d3301412f98')
+ version('1.14.1', sha256='9803b0648d9c2d99377f3e1c4cecf712320488403cd674192ec5cbe956bb3c78')
+ version('1.14.0', sha256='0a5e518c3dc221386d2219cbd260d08b032b0d2a31bccc32e1a8cb7874e7e9e9')
+ version('1.13.0', sha256='ed72ae7bdd129487c45ff7bebb8e2ac03074657060e068b015e7741c0271e16b')
+ version('1.12.2', sha256='d92f5e4fa0f54cc0abd0209b81c4d5c647dae9d25b774c2296f44b8558b17976')
+ version('1.12.1', sha256='1765e68982425de6d30029d50d200f20425b8ed1deff52b8e73a4a1457ac9ab6')
+ version('1.12.0', sha256='79361ef230b4fd55d5eb7521c23430acc3f11ab527125dc324ffb315783ebdfa')
+ version('1.11.2.1', sha256='f6795523a04871e012e7f5f5ab97b249fa36657b73cdc9b4ea53ef023cfcaac4')
+ version('1.11.2', sha256='aae61218dd0cca1fda245d4ad906c2eed5e8d30e28b575d74eab9a6be26bbd5d')
+ version('1.11.1.2', sha256='d99dab24accd269df65c01febd05cb5dd1094a89d7279f8390871f0432df2b56')
+ version('1.11.1', sha256='3b5a859f3fe2c9b096fc0754ffbd9341c568bc8003d2eeb74c958c1cacb480f5')
+ version('1.11.0', sha256='e4befe27473a69b7982597760d6838cc48d9ef7b624a439436a17f5487f78f51')
+ version('1.10.4', sha256='6a15a324a821ad9d3e615e120d9c5e704e284d8eb1f076aa21741a23fbcf08df')
+ version('1.10.3', sha256='43776b5fb220b746d53c1aa39d0230f304687ec05984671392bccaf850d9d696')
+ version('1.10.2', sha256='5907d0d29563689146512ef24aa8960d9475c5de326501f277bb58b3de21b07d')
+ version('1.10.1', sha256='8ed979cda82f6d440567197ec191bffcb82ee83c5bfe8a484c5a008dd00273f0')
+ version('1.10.0', sha256='117fff308731784bea2ddaf3d076f0ecbf3981b31ea1c1bfd5ce4f057a5325b1')
@property
def libs(self):
- return find_libraries(['libsymspg'], root=self.prefix.lib,
- recursive=False)
+ return find_libraries('libsymspg', root=self.prefix,
+ shared=True, recursive=True)
diff --git a/var/spack/repos/builtin/packages/sph2pipe/package.py b/var/spack/repos/builtin/packages/sph2pipe/package.py
index c6b2f7a1f1..24aec38165 100644
--- a/var/spack/repos/builtin/packages/sph2pipe/package.py
+++ b/var/spack/repos/builtin/packages/sph2pipe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Sph2pipe(CMakePackage):
converting SPHERE files to other formats."""
homepage = "https://www.ldc.upenn.edu/language-resources/tools/sphere-conversion-tools"
- url = "https://www.ldc.upenn.edu/sites/www.ldc.upenn.edu/files/ctools/sph2pipe_v2.5.tar.gz"
+ url = "https://www.ldc.upenn.edu/sites/default/files/sph2pipe_v2.5.tar.gz"
version('2.5', sha256='5be236dc94ed0a301c5c8a369f849f76799ec7e70f25dfc0521068d9d1d4d3e3')
diff --git a/var/spack/repos/builtin/packages/spherepack/package.py b/var/spack/repos/builtin/packages/spherepack/package.py
index 8ef671f0a7..715d932417 100644
--- a/var/spack/repos/builtin/packages/spherepack/package.py
+++ b/var/spack/repos/builtin/packages/spherepack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/spindle/package.py b/var/spack/repos/builtin/packages/spindle/package.py
index 2b7296e6d3..1ebbc29fb2 100644
--- a/var/spack/repos/builtin/packages/spindle/package.py
+++ b/var/spack/repos/builtin/packages/spindle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/spiral/package.py b/var/spack/repos/builtin/packages/spiral/package.py
index da6a364ccd..9eb89c4bbf 100644
--- a/var/spack/repos/builtin/packages/spiral/package.py
+++ b/var/spack/repos/builtin/packages/spiral/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/spla/0001-amd_blis.patch b/var/spack/repos/builtin/packages/spla/0001-amd_blis.patch
new file mode 100644
index 0000000000..1bcc417b2b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/spla/0001-amd_blis.patch
@@ -0,0 +1,13 @@
+diff --git a/cmake/modules/FindBLIS.cmake b/cmake/modules/FindBLIS.cmake
+index 3d6fb5d..2577598 100644
+--- a/cmake/modules/FindBLIS.cmake
++++ b/cmake/modules/FindBLIS.cmake
+@@ -52,7 +52,7 @@ endif()
+
+ find_library(
+ BLIS_LIBRARIES
+- NAMES "blis"
++ NAMES "blis-mt" "blis"
+ HINTS ${_BLIS_PATHS}
+ PATH_SUFFIXES "blis/lib" "blis/lib64" "blis"
+ )
diff --git a/var/spack/repos/builtin/packages/spla/package.py b/var/spack/repos/builtin/packages/spla/package.py
index 467814fc40..544cf974cd 100644
--- a/var/spack/repos/builtin/packages/spla/package.py
+++ b/var/spack/repos/builtin/packages/spla/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,10 @@ class Spla(CMakePackage):
url = "https://github.com/eth-cscs/spla/archive/v1.0.0.tar.gz"
git = 'https://github.com/eth-cscs/spla.git'
+ version('1.5.1', sha256='2021a30b7cbb10bd660e5d94e1cc7bc6a428c87ea507e09d1e57e455685da421')
+ version('1.5.0', sha256='bea782d46ce615e1c40efc2bfb19d95e3b59f332fc9ca83ac7e6684b8ac2dd93')
+ version('1.4.0', sha256='364a9fe759fddec8a0839cf79f1cf0619fc36f4d4c15f1c2b1f437249d7840c6')
+ version('1.3.0', sha256='ff05a22bd655607ff941f3228ac8605a813e1eec6eaa49fbcf7b58a3a4cf5f00')
version('1.2.1', sha256='4d7237f752dc6257778c84ee19c9635072b1cb8ce8d9ab6e34a047f63a736b29')
version('1.2.0', sha256='96ddd13c155ef3d7e40f87a982cdb439cf9e720523e66b6d20125d346ffe8fca')
version('1.1.1', sha256='907c374d9c53b21b9f67ce648e7b2b09c320db234a1013d3f05919cd93c95a4b')
@@ -27,6 +31,7 @@ class Spla(CMakePackage):
variant('static', default=False, description="Build as static library")
variant('cuda', default=False, description="CUDA backend")
variant('rocm', default=False, description="ROCm backend")
+ variant('fortran', default=False, description="Build fortran module")
conflicts("+cuda", when="+rocm", msg="+cuda and +rocm are mutually exclusive")
@@ -37,16 +42,23 @@ class Spla(CMakePackage):
depends_on('cuda', when='+cuda')
depends_on('rocblas', when='+rocm')
depends_on('hip', when='+rocm')
- depends_on('hsakmt-roct', when='+rocm', type='link')
- depends_on('hsa-rocr-dev', when='+rocm', type='link')
- def cmake_args(self):
- args = []
+ # Propagate openmp to blas
+ depends_on('openblas threads=openmp', when='+openmp ^openblas')
+ depends_on('amdblis threads=openmp', when='+openmp ^amdblis')
+ depends_on('blis threads=openmp', when='+openmp ^blis')
+ depends_on('intel-mkl threads=openmp', when='+openmp ^intel-mkl')
- if '+openmp' in self.spec:
- args += ["-DSPLA_OMP=ON"]
- else:
- args += ["-DSPLA_OMP=OFF"]
+ # Fix CMake find module for AMD BLIS,
+ # which uses a different library name for the multi-threaded version
+ patch('0001-amd_blis.patch', when='@1.3.0:1.4.0 ^amdblis')
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('SPLA_OMP', 'openmp'),
+ self.define_from_variant('SPLA_FORTRAN', 'fortran'),
+ self.define_from_variant('SPLA_STATIC', 'static')
+ ]
if '+cuda' in self.spec:
args += ["-DSPLA_GPU_BACKEND=CUDA"]
@@ -55,11 +67,6 @@ class Spla(CMakePackage):
else:
args += ["-DSPLA_GPU_BACKEND=OFF"]
- if '+static' in self.spec:
- args += ["-DSPLA_STATIC=ON"]
- else:
- args += ["-DSPLA_STATIC=OFF"]
-
if self.spec['blas'].name == 'openblas':
args += ["-DSPLA_HOST_BLAS=OPENBLAS"]
elif self.spec['blas'].name in ['amdblis', 'blis']:
diff --git a/var/spack/repos/builtin/packages/spm/package.py b/var/spack/repos/builtin/packages/spm/package.py
index 1545c3d2dd..aabd89a7c5 100644
--- a/var/spack/repos/builtin/packages/spm/package.py
+++ b/var/spack/repos/builtin/packages/spm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/spot/package.py b/var/spack/repos/builtin/packages/spot/package.py
index 428a6bf439..de874ab565 100644
--- a/var/spack/repos/builtin/packages/spot/package.py
+++ b/var/spack/repos/builtin/packages/spot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Spot(AutotoolsPackage):
"""Spot is a C++11 library for omega-automata manipulation and model
checking."""
homepage = "https://spot.lrde.epita.fr/"
- url = "http://www.lrde.epita.fr/dload/spot/spot-1.99.3.tar.gz"
+ url = "https://www.lrde.epita.fr/dload/spot/spot-1.99.3.tar.gz"
version('2.9.4', sha256='e11208323baabe9b5f98098d4b9bb39803fb102a68abbbaf900f1fcd578f0f85')
version('1.99.3', sha256='86964af559994af4451a8dca663a9e1db6e869ed60e747ab60ce72dddc31b61b')
diff --git a/var/spack/repos/builtin/packages/sprng/package.py b/var/spack/repos/builtin/packages/sprng/package.py
index eb85db87e0..0dbf067c89 100644
--- a/var/spack/repos/builtin/packages/sprng/package.py
+++ b/var/spack/repos/builtin/packages/sprng/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sqlcipher/package.py b/var/spack/repos/builtin/packages/sqlcipher/package.py
new file mode 100644
index 0000000000..2d6f6970b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sqlcipher/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 Sqlcipher(AutotoolsPackage):
+ """SQLCipher is an SQLite extension that provides 256 bit AES encryption
+ of database files.
+ """
+
+ homepage = "https://www.zetetic.net/sqlcipher/"
+ url = "https://github.com/sqlcipher/sqlcipher/archive/v4.4.1.tar.gz"
+ git = "https://github.com/sqlcipher/sqlcipher.git"
+
+ maintainers = ['rmsds']
+
+ version('4.4.1', sha256='a36ed7c879a5e9af1054942201c75fc56f1db22e46bf6c2bbae3975dfeb6782d')
+ version('4.4.0', sha256='0924b2ae1079717954498bda78a30de20ce2a6083076b16214a711567821d148')
+ version('4.3.0', sha256='fccb37e440ada898902b294d02cde7af9e8706b185d77ed9f6f4d5b18b4c305f')
+ version('4.2.0', sha256='105c1b813f848da038c03647a8bfc9d42fb46865e6aaf4edfd46ff3b18cdccfc')
+ version('4.1.0', sha256='65144ca3ba4c0f9cd4bae8c20bb42f2b84424bf29d1ebcf04c44a728903b1faa')
+ version('4.0.1', sha256='2f803017378c7479cb791be59b7bad8392a15acddbcc094e4433581fe421f4ca')
+ version('4.0.0', sha256='c8f5fc6d800aae6107bf23900144804db5510c2676c93fbb269e4a0700837d68')
+ version('3.4.2', sha256='69897a5167f34e8a84c7069f1b283aba88cdfa8ec183165c4a5da2c816cfaadb')
+
+ depends_on('openssl')
+ depends_on('tcl', type=['build', ])
+ depends_on('zlib')
+
+ def configure_args(self):
+ args = []
+ args.append('--enable-tempstore=yes')
+ args.append('CFLAGS=-DSQLITE_HAS_CODEC')
+ return args
diff --git a/var/spack/repos/builtin/packages/sqlite-jdbc/package.py b/var/spack/repos/builtin/packages/sqlite-jdbc/package.py
index bea64a30dd..b4cfb3100f 100644
--- a/var/spack/repos/builtin/packages/sqlite-jdbc/package.py
+++ b/var/spack/repos/builtin/packages/sqlite-jdbc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sqlite/package.py b/var/spack/repos/builtin/packages/sqlite/package.py
index db456cb0d7..68f22494bd 100644
--- a/var/spack/repos/builtin/packages/sqlite/package.py
+++ b/var/spack/repos/builtin/packages/sqlite/package.py
@@ -1,8 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import re
+
from spack import architecture
@@ -13,7 +15,13 @@ class Sqlite(AutotoolsPackage):
"""
homepage = "https://www.sqlite.org"
+ version('3.36.0', sha256='bd90c3eb96bee996206b83be7065c9ce19aef38c3f4fb53073ada0d0b69bbce3')
+ version('3.35.5', sha256='f52b72a5c319c3e516ed7a92e123139a6e87af08a2dc43d7757724f6132e6db0')
+ version('3.35.4', sha256='7771525dff0185bfe9638ccce23faa0e1451757ddbda5a6c853bb80b923a512d')
+ version('3.35.3', sha256='ecbccdd440bdf32c0e1bb3611d635239e3b5af268248d130d0445a32daf0274b')
+ version('3.34.0', sha256='bf6db7fae37d51754737747aaaf413b4d6b3b5fbacd52bdb2d0d6e5b2edd9aee')
version('3.33.0', sha256='106a2c48c7f75a298a7557bcc0d5f4f454e5b43811cc738b7ca294d6956bbb15')
+ version('3.32.03', sha256='a31507123c1c2e3a210afec19525fd7b5bb1e19a6a34ae5b998fbd7302568b66')
version('3.31.1', sha256='62284efebc05a76f909c580ffa5c008a7d22a1287285d68b7825a2b6b51949ae')
version('3.30.1', sha256='8c5a50db089bd2a1b08dbc5b00d2027602ca7ff238ba7658fabca454d4298e60')
version('3.30.0', sha256='e0a8cf4c7a87455e55e10413d16f358ca121ccec687fe1301eac95e2d340fc58')
@@ -65,6 +73,18 @@ class Sqlite(AutotoolsPackage):
# compiler is used.
patch('remove_overflow_builtins.patch', when='@3.17.0:3.20%intel')
+ executables = ['^sqlite3$']
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ # `sqlite3 --version` prints only the version number, timestamp, commit
+ # hash(?) but not the program name. As a basic sanity check, the code
+ # calls re.match() and attempts to match the ISO 8601 date following the
+ # version number as well.
+ match = re.match(r'(\S+) \d{4}-\d{2}-\d{2}', output)
+ return match.group(1) if match else None
+
def url_for_version(self, version):
full_version = list(version.version) + [0 * (4 - len(version.version))]
version_string\
@@ -72,7 +92,9 @@ class Sqlite(AutotoolsPackage):
''.join(['%02d' % v for v in full_version[1:]])
# See https://sqlite.org/chronology.html for version -> year
# correspondence.
- if version >= Version('3.31.0'):
+ if version >= Version('3.34.1'):
+ year = '2021'
+ elif version >= Version('3.31.0'):
year = '2020'
elif version >= Version('3.27.0'):
year = '2019'
@@ -111,8 +133,7 @@ class Sqlite(AutotoolsPackage):
args.extend(['--disable-fts4', '--disable-fts5'])
# Ref: https://sqlite.org/rtree.html
- if '+rtree' in self.spec:
- args.append('CPPFLAGS=-DSQLITE_ENABLE_RTREE=1')
+ args.extend(self.enable_or_disable('rtree'))
# Ref: https://sqlite.org/compile.html
if '+column_metadata' in self.spec:
diff --git a/var/spack/repos/builtin/packages/sqlitebrowser/package.py b/var/spack/repos/builtin/packages/sqlitebrowser/package.py
index b92d65348e..64c083e8ba 100644
--- a/var/spack/repos/builtin/packages/sqlitebrowser/package.py
+++ b/var/spack/repos/builtin/packages/sqlitebrowser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sqoop/package.py b/var/spack/repos/builtin/packages/sqoop/package.py
index bd83d0c907..2dad3cc266 100644
--- a/var/spack/repos/builtin/packages/sqoop/package.py
+++ b/var/spack/repos/builtin/packages/sqoop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ class Sqoop(MavenPackage):
data between Apache Hadoop and structured datastores such as relational
databases."""
- homepage = "http://sqoop.apache.org/"
+ homepage = "https://sqoop.apache.org/"
url = "https://downloads.apache.org/sqoop/1.99.7/sqoop-1.99.7.tar.gz"
list_url = "https://downloads.apache.org/sqoop/"
list_depth = 1
diff --git a/var/spack/repos/builtin/packages/squashfs/gcc-10.patch b/var/spack/repos/builtin/packages/squashfs/gcc-10.patch
new file mode 100644
index 0000000000..e7f4a721c7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/squashfs/gcc-10.patch
@@ -0,0 +1,13 @@
+diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h
+index 1beefef7..b6503063 100644
+--- a/squashfs-tools/mksquashfs.h
++++ b/squashfs-tools/mksquashfs.h
+@@ -143,7 +143,7 @@ struct append_file {
+ #endif
+
+ extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache;
+-struct cache *bwriter_buffer, *fwriter_buffer;
++extern struct cache *bwriter_buffer, *fwriter_buffer;
+ extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer,
+ *to_frag, *locked_fragment, *to_process_frag;
+ extern struct append_file **file_mapping;
diff --git a/var/spack/repos/builtin/packages/squashfs/package.py b/var/spack/repos/builtin/packages/squashfs/package.py
index 4d203e3d15..03d01dca30 100644
--- a/var/spack/repos/builtin/packages/squashfs/package.py
+++ b/var/spack/repos/builtin/packages/squashfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -24,7 +24,7 @@ class Squashfs(MakefilePackage):
variant('lzo', default=False, description='Enable LZO compression support')
variant('xz', default=False, description='Enable xz compression support')
variant('zstd', default=False, description='Enable Zstandard/zstd support')
- variant('default_compression', default='gzip', values=('gzip', 'lz4', 'lzo', 'xz', 'zstd'),
+ variant('default_compression', default='gzip', values=('gzip', 'lz4', 'lzo', 'xz', 'zstd'),
multi=False, description='Default compression algorithm')
conflicts('squashfs~gzip default_compression=gzip', msg='Cannot set default compression to missing algorithm')
@@ -44,19 +44,28 @@ class Squashfs(MakefilePackage):
depends_on('xz', when='+xz')
depends_on('zstd', when='+zstd')
+ # patch from
+ # https://github.com/plougher/squashfs-tools/commit/fe2f5da4b0f8994169c53e84b7cb8a0feefc97b5.patch
+ patch('gcc-10.patch', when="%gcc@10:")
+ patch('gcc-10.patch', when="%clang@11:")
+
+ def make_options(self, spec):
+ default = spec.variants['default_compression'].value
+ return [
+ 'GZIP_SUPPORT={0}'.format(1 if '+gzip' in spec else 0),
+ 'LZ4_SUPPORT={0}' .format(1 if '+lz4' in spec else 0),
+ 'LZO_SUPPORT={0}' .format(1 if '+lzo' in spec else 0),
+ 'XZ_SUPPORT={0}' .format(1 if '+xz' in spec else 0),
+ 'ZSTD_SUPPORT={0}'.format(1 if '+zstd' in spec else 0),
+ 'COMP_DEFAULT={0}'.format(default),
+ ]
+
def build(self, spec, prefix):
+ options = self.make_options(spec)
with working_dir('squashfs-tools'):
- default = spec.variants['default_compression'].value
- make(
- 'GZIP_SUPPORT={0}'.format(1 if '+gzip' in spec else 0),
- 'LZ4_SUPPORT={0}' .format(1 if '+lz4' in spec else 0),
- 'LZO_SUPPORT={0}' .format(1 if '+lzo' in spec else 0),
- 'XZ_SUPPORT={0}' .format(1 if '+xz' in spec else 0),
- 'ZSTD_SUPPORT={0}'.format(1 if '+zstd' in spec else 0),
- 'COMP_DEFAULT={0}'.format(default),
- parallel=False
- )
+ make(*options, parallel=False)
def install(self, spec, prefix):
+ options = self.make_options(spec)
with working_dir('squashfs-tools'):
- make('install', 'INSTALL_DIR=%s' % prefix.bin, parallel=False)
+ make('install', 'INSTALL_DIR=%s' % prefix.bin, *options, parallel=False)
diff --git a/var/spack/repos/builtin/packages/squashfuse/package.py b/var/spack/repos/builtin/packages/squashfuse/package.py
new file mode 100644
index 0000000000..7a4e995b82
--- /dev/null
+++ b/var/spack/repos/builtin/packages/squashfuse/package.py
@@ -0,0 +1,71 @@
+# Copyright 2013-2021 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 Squashfuse(AutotoolsPackage):
+ """squashfuse - Mount SquashFS archives using FUSE"""
+
+ homepage = "https://github.com/vasi/squashfuse"
+ url = "https://github.com/vasi/squashfuse/releases/download/0.1.104/squashfuse-0.1.104.tar.gz"
+ git = "https://github.com/vasi/squashfuse.git"
+
+ maintainers = ['haampie']
+
+ version('master', branch='master')
+ version('0.1.104', sha256='aa52460559e0d0b1753f6b1af5c68cfb777ca5a13913285e93f4f9b7aa894b3a')
+ version('0.1.103', sha256='42d4dfd17ed186745117cfd427023eb81effff3832bab09067823492b6b982e7')
+
+ variant('shared', default=True, description='Enable shared libraries')
+ variant('static', default=True, description='Enable static libraries')
+ variant('min_size', default=False, description='Build small binaries')
+
+ variant('zlib', default=True, description='Enable zlib/gzip compression support')
+ variant('lz4', default=True, description='Enable LZ4 compression support')
+ variant('lzo', default=True, description='Enable LZO compression support')
+ variant('xz', default=True, description='Enable xz compression support')
+ variant('zstd', default=True, description='Enable Zstandard/zstd support')
+
+ conflicts('~shared', when='~static', msg="Enable shared, static or both")
+
+ depends_on('fuse@2.5:')
+ depends_on('fuse@:2.99', when='@:0.1.103')
+
+ # Note: typically libfuse is external, but this implies that you have to make
+ # pkg-config external too, because spack's pkg-config doesn't know how to
+ # locate system pkg-config's fuse.pc/fuse3.pc
+ depends_on('pkgconfig', type='build')
+
+ # compression libs
+ depends_on('zlib', when='+zlib')
+ depends_on('lz4', when='+lz4')
+ depends_on('lzo', when='+lzo')
+ depends_on('xz', when='+xz')
+ depends_on('zstd', when='+zstd')
+
+ depends_on('m4', type='build', when='@master')
+ depends_on('autoconf', type='build', when='@master')
+ depends_on('automake', type='build', when='@master')
+ depends_on('libtool', type='build', when='@master')
+
+ def flag_handler(self, name, flags):
+ if name == 'cflags' and '+min_size' in self.spec:
+ if '-Os' in self.compiler.opt_flags:
+ flags.append('-Os')
+ return (None, None, flags)
+
+ return (flags, None, None)
+
+ def configure_args(self):
+ args = ['--disable-demo']
+ args += self.enable_or_disable('shared')
+ args += self.enable_or_disable('static')
+ args += self.with_or_without('zlib', activation_value='prefix')
+ args += self.with_or_without('lz4', activation_value='prefix')
+ args += self.with_or_without('lzo', activation_value='prefix')
+ args += self.with_or_without('xz', activation_value='prefix')
+ args += self.with_or_without('zstd', activation_value='prefix')
+ return args
diff --git a/var/spack/repos/builtin/packages/squid/package.py b/var/spack/repos/builtin/packages/squid/package.py
index dd944edbad..82f7b3d6d8 100644
--- a/var/spack/repos/builtin/packages/squid/package.py
+++ b/var/spack/repos/builtin/packages/squid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sratoolkit/package.py b/var/spack/repos/builtin/packages/sratoolkit/package.py
index d38de8eead..299d49de0e 100644
--- a/var/spack/repos/builtin/packages/sratoolkit/package.py
+++ b/var/spack/repos/builtin/packages/sratoolkit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,11 @@ class Sratoolkit(Package):
format."""
homepage = "https://trace.ncbi.nlm.nih.gov/Traces/sra"
- url = "https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.8.2-1/sratoolkit.2.8.2-1-centos_linux64.tar.gz"
+ url = "https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.10.9/sratoolkit.2.10.9-centos_linux64.tar.gz"
maintainers = ['robqiao']
+ version('2.10.9', sha256='2c849b4b9865737ff17732e3befa70718616ce31cac98e8a61b1c5ed5a6514c5')
version('2.10.7', sha256='b3f319974f0c7a318554d6383a13dd30f7d447533d92b6fd3bd057d3524e0140')
version('2.9.6', sha256='faab687c822d0c02956f73f35e04875dde420ce9f602b88bbf3f2e8d79a17155')
version('2.9.2', sha256='17dbe13aa1ed7955d31e1e76e8b62786e80a77e9ed9d396631162dc3ad8b716d')
diff --git a/var/spack/repos/builtin/packages/srilm/package.py b/var/spack/repos/builtin/packages/srilm/package.py
new file mode 100644
index 0000000000..16cfff9c3e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/srilm/package.py
@@ -0,0 +1,93 @@
+# Copyright 2013-2021 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)
+
+import glob
+import os
+
+from spack import *
+
+
+class Srilm(MakefilePackage):
+ """SRILM (SRI Language Modeling Toolkit) is a toolkit for building
+ and applying statistical language models (LMs), primarily for
+ use in speech recognition, statistical tagging and segmentation,
+ and machine translation."""
+
+ homepage = "http://www.speech.sri.com/projects/srilm/"
+ url = "file://{0}/srilm-1.7.3.tar.gz".format(os.getcwd())
+ manual_download = True
+
+ maintainers = ['RemiLacroix-IDRIS']
+
+ version('1.7.3', sha256='01eaf12d0f35b96d2b28ad0d41c9f915dd22b534a7abde3fbb9e35fb6c19200e')
+
+ variant('openmp', default=False, description='Enable OpenMP')
+ variant('pic', default=False, description='Build position independent code')
+ variant('liblbfgs', default=False, description='Enable libLBFGS')
+
+ depends_on('iconv')
+ depends_on('liblbfgs', when='+liblbfgs')
+ depends_on('gawk', type=('build', 'run'))
+ depends_on('perl', type=('build', 'run'))
+ depends_on('binutils', type='build') # for c++filt
+
+ @property
+ def machine_type(self):
+ return Executable('sbin/machine-type')(output=str, error=str).strip()
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('Makefile')
+ makefile.filter(r'# SRILM\s*=.*', 'SRILM = {0}'.format(self.build_directory))
+
+ makefile_common = FileFilter('common/Makefile.common.variables')
+ makefile_common.filter(r'GAWK\s*=.*', 'GAWK = {0}'.format(which('gawk')))
+ makefile_common.filter(r'PERL\s*=.*', 'PERL = {0}'.format(which('perl')))
+ makefile_common.filter(r'PIC_FLAG\s*=.*',
+ 'PIC_FLAG = {0}'.format(self.compiler.cc_pic_flag))
+
+ makefile_machine_fn = 'common/Makefile.machine.{0}'.format(self.machine_type)
+
+ makefile_machine = FileFilter(makefile_machine_fn)
+ makefile_machine.filter(r'CC\s*=.*', 'CC = {0}'.format(spack_cc))
+ makefile_machine.filter(r'CXX\s*=.*',
+ 'CXX = {0} -DINSTANTIATE_TEMPLATES'.format(spack_cxx))
+
+ omp_flag = self.compiler.openmp_flag if '+openmp' in spec else ''
+ makefile_machine.filter(r'ADDITIONAL_CFLAGS\s*=.*',
+ 'ADDITIONAL_CFLAGS = {0}'.format(omp_flag))
+ makefile_machine.filter(r'ADDITIONAL_CXXFLAGS\s*=.*',
+ 'ADDITIONAL_CXXFLAGS = {0}'.format(omp_flag))
+ makefile_machine.filter(r'(SYS_LIBRARIES\s*=.*)', r'\1 -liconv')
+
+ # Make sure the machine specific Makefile doesn't override those
+ makefile_machine.filter(r'GAWK\s*=.*', '')
+ makefile_machine.filter(r'PERL\s*=.*', '')
+ makefile_machine.filter(r'PIC_FLAG\s*=.*', '')
+
+ with open(makefile_machine_fn, 'a') as makefile_machine:
+ # TCL is only needed for tests so disable it
+ makefile_machine.write('\nNO_TCL = 1\n')
+ if '+pic' in spec:
+ makefile_machine.write('MAKE_PIC = 1\n')
+ if '+liblbfgs' in spec:
+ makefile_machine.write('HAVE_LIBLBFGS = 1\n')
+
+ @property
+ def build_targets(self):
+ return ['MACHINE_TYPE={0}'.format(self.machine_type)]
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
+ install_tree('lib', prefix.lib)
+ install_tree('include', prefix.include)
+ install_tree('man', prefix.man)
+
+ def setup_run_environment(self, env):
+ # Most executable files are in a subfolder named based on
+ # the detected machine type. Unfortunately we cannot use
+ # `machine_type` at this point but we can just guess as
+ # there is only one subfolder.
+ env.prepend_path('PATH',
+ glob.glob(join_path(self.prefix.bin, '*', ''))[0])
diff --git a/var/spack/repos/builtin/packages/sse2neon/package.py b/var/spack/repos/builtin/packages/sse2neon/package.py
index 32f0b69c04..a0c6ef585a 100644
--- a/var/spack/repos/builtin/packages/sse2neon/package.py
+++ b/var/spack/repos/builtin/packages/sse2neon/package.py
@@ -1,15 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Sse2neon(Package):
- """A C/C++ header file that converts Intel SSE intrinsics to ARN NEON
- intrinsics."""
+ """A C/C++ header file that converts Intel SSE intrinsics to Arm/Aarch64
+ NEON intrinsics."""
- homepage = "https://github.com/jratcliff63367/sse2neon"
- git = "https://github.com/jratcliff63367/sse2neon.git"
+ homepage = "https://github.com/DLTcollab/sse2neon"
+ git = "https://github.com/DLTcollab/sse2neon.git"
version('master', branch='master')
diff --git a/var/spack/repos/builtin/packages/sshfs/package.py b/var/spack/repos/builtin/packages/sshfs/package.py
new file mode 100644
index 0000000000..400c1604c4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sshfs/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Sshfs(MesonPackage):
+ """SSHFS allows you to mount a remote filesystem using SFTP."""
+
+ homepage = "https://github.com/libfuse/sshfs"
+ url = "https://github.com/libfuse/sshfs/releases/download/sshfs-3.7.1/sshfs-3.7.1.tar.xz"
+ git = "https://github.com/libfuse/sshfs.git"
+
+ maintainers = ['haampie']
+
+ version('3.7.1', sha256='fe5d3436d61b46974889e0c4515899c21a9d67851e3793c209989f72353d7750')
+
+ depends_on('glib')
+ depends_on('fuse@3.1.0:')
+
+ # used for libfuse; when libfuse is external, make sure that pkgconfig is
+ # external too, since spack's pkgconfig might not be able to locate libfuse.
+ depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/sshpass/package.py b/var/spack/repos/builtin/packages/sshpass/package.py
index 499761a867..97a5e14728 100644
--- a/var/spack/repos/builtin/packages/sshpass/package.py
+++ b/var/spack/repos/builtin/packages/sshpass/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ssht/package.py b/var/spack/repos/builtin/packages/ssht/package.py
index 1500871e62..b76e1c2c8c 100644
--- a/var/spack/repos/builtin/packages/ssht/package.py
+++ b/var/spack/repos/builtin/packages/ssht/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,7 +6,7 @@
from spack import *
-class Ssht(Package):
+class Ssht(CMakePackage):
"""ssht: Spin spherical harmonic transforms
The SSHT code provides functionality to perform fast and exact
@@ -16,32 +16,20 @@ class Ssht(Package):
"""
homepage = "https://astro-informatics.github.io/ssht/"
+ url = "https://github.com/astro-informatics/ssht/archive/v1.3.4.tar.gz"
git = "https://github.com/astro-informatics/ssht.git"
maintainers = ['eschnett']
- version('1.2b1', commit='7378ce8853897cbd1b08adebf7ec088c1e40f860')
-
- depends_on('fftw')
-
- patch('float_conversion.patch')
-
- def install(self, spec, prefix):
- make('default', 'SSHTDIR=.')
- mkdirp(join_path(prefix, 'include', 'ssht'))
- install('src/c/ssht.h',
- join_path(prefix, 'include', 'ssht', 'ssht.h'))
- install('src/c/ssht_adjoint.h',
- join_path(prefix, 'include', 'ssht', 'ssht_adjoint.h'))
- install('src/c/ssht_core.h',
- join_path(prefix, 'include', 'ssht', 'ssht_core.h'))
- install('src/c/ssht_dl.h',
- join_path(prefix, 'include', 'ssht', 'ssht_dl.h'))
- install('src/c/ssht_error.h',
- join_path(prefix, 'include', 'ssht', 'ssht_error.h'))
- install('src/c/ssht_sampling.h',
- join_path(prefix, 'include', 'ssht', 'ssht_sampling.h'))
- install('src/c/ssht_types.h',
- join_path(prefix, 'include', 'ssht', 'ssht_types.h'))
- install_tree('doc/c', join_path(prefix, 'doc'))
- install_tree('lib/c', join_path(prefix, 'lib'))
+ version('1.5.0', sha256='ff42103463c973a11da84b757d2a6661679c8a60745e44f0ccf697f88593083a')
+ version('1.4.0', sha256='b33f1b763a240df773a1900139aad6f6b5c676bb2b64a8c1062077fd95c08769')
+ version('1.3.7', sha256='947c11b104734acb124171ff5115d14279b4d09bc297ac989204633919df422e')
+ version('1.3.6', sha256='db652e0f550229a630643bbf4bdb270def25c158be5ccdcf594a24fd8054430d')
+ version('1.3.5', sha256='2f71690cbd00f4969d7377e586022397bfb8efb107f7b13bf849a65e61362350')
+ version('1.3.4', sha256='dfcceca9a4ffe8973a45e213e8d5331dcee6a504a42601f50fdfa4fd022cce7b')
+ version('1.3.3', sha256='1f3b89e29d89fa79170b9979046a55c81b588d9dd563fd36f37887495b71dd28')
+ version('1.3.2', sha256='6cb3b6f94fb90dff45ba59da30a8ccd9667d8e319bed437f19d2287f59e35dd1')
+ version('1.3.0', sha256='9e2c220a70d662714ff601a121b674c8423866058279e000cbbee532d31dd3c9')
+ # version('1.2b1', commit='7378ce8853897cbd1b08adebf7ec088c1e40f860')
+
+ depends_on('fftw @3.0.0:')
diff --git a/var/spack/repos/builtin/packages/ssmtp/package.py b/var/spack/repos/builtin/packages/ssmtp/package.py
index c1ed9055f2..4f0c18b65e 100644
--- a/var/spack/repos/builtin/packages/ssmtp/package.py
+++ b/var/spack/repos/builtin/packages/ssmtp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Ssmtp(AutotoolsPackage):
mail via the departmental mailhub from which they pick up their mail."""
homepage = "https://salsa.debian.org/debian/ssmtp"
- url = "http://deb.debian.org/debian/pool/main/s/ssmtp/ssmtp_2.64.orig.tar.bz2"
+ url = "https://deb.debian.org/debian/pool/main/s/ssmtp/ssmtp_2.64.orig.tar.bz2"
version('2.64', sha256='22c37dc90c871e8e052b2cab0ad219d010fa938608cd66b21c8f3c759046fa36')
diff --git a/var/spack/repos/builtin/packages/sspace-longread/package.py b/var/spack/repos/builtin/packages/sspace-longread/package.py
index d96f6faded..c0d7f84718 100644
--- a/var/spack/repos/builtin/packages/sspace-longread/package.py
+++ b/var/spack/repos/builtin/packages/sspace-longread/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class SspaceLongread(Package):
"""SSPACE-LongRead is a stand-alone program for scaffolding pre-assembled
@@ -15,7 +16,7 @@ class SspaceLongread(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://www.baseclear.com/genomics/bioinformatics/basetools/SSPACE-longread"
manual_download = True
diff --git a/var/spack/repos/builtin/packages/sspace-standard/package.py b/var/spack/repos/builtin/packages/sspace-standard/package.py
index 5ce8febf46..27c8a8bef6 100644
--- a/var/spack/repos/builtin/packages/sspace-standard/package.py
+++ b/var/spack/repos/builtin/packages/sspace-standard/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+import os
+
+from spack import *
class SspaceStandard(Package):
@@ -16,7 +17,7 @@ class SspaceStandard(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://www.baseclear.com/genomics/bioinformatics/basetools/SSPACE"
url = "file://{0}/41SSPACE-STANDARD-3.0_linux-x86_64.tar.gz".format(os.getcwd())
diff --git a/var/spack/repos/builtin/packages/sst-core/package.py b/var/spack/repos/builtin/packages/sst-core/package.py
index 5b214d11bd..09d7dce40d 100644
--- a/var/spack/repos/builtin/packages/sst-core/package.py
+++ b/var/spack/repos/builtin/packages/sst-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,10 +14,11 @@ class SstCore(AutotoolsPackage):
homepage = "https://github.com/sstsimulator"
git = "https://github.com/sstsimulator/sst-core.git"
- url = "https://github.com/sstsimulator/sst-core/releases/download/v10.0.0_Final/sstcore-10.0.0.tar.gz"
+ url = "https://github.com/sstsimulator/sst-core/releases/download/v11.0.0_Final/sstcore-11.0.0.tar.gz"
- maintainers = ['jjwilke']
+ maintainers = ['sknigh']
+ version('11.0.0', sha256="25d17c35d1121330ad74375b6d27fe5c5592d1add3edf0bbb356aa3b5f59f401")
version('10.1.0', sha256="e464213a81c7b3ccec994fdba2b56992b52fb9a6db089ef7c3445b54306d4b87")
version('10.0.0', sha256="64cf93a46dfab011fba49244bf0e0efe25ef928c6fbde1d49003220d0eb7735a")
version('9.1.0', sha256="cfeda39bb2ce9f32032480427517df62e852c0b3713797255e3b838075f3614d")
@@ -41,9 +42,9 @@ class SstCore(AutotoolsPackage):
depends_on("hdf5", when="+hdf5")
depends_on("zlib", when="+zlib")
- depends_on('autoconf@1.68:', type='build', when='@master:')
- depends_on('automake@1.11.1:', type='build', when='@master:')
- depends_on('libtool@1.2.4:', type='build', when='@master:')
+ depends_on('autoconf@1.68:', type='build')
+ depends_on('automake@1.11.1:', type='build')
+ depends_on('libtool@1.2.4:', type='build')
depends_on('m4', type='build', when='@master:')
depends_on('gettext')
diff --git a/var/spack/repos/builtin/packages/sst-dumpi/package.py b/var/spack/repos/builtin/packages/sst-dumpi/package.py
index 0710c5607e..bc62971190 100644
--- a/var/spack/repos/builtin/packages/sst-dumpi/package.py
+++ b/var/spack/repos/builtin/packages/sst-dumpi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,7 +22,10 @@ class SstDumpi(AutotoolsPackage):
url = "https://github.com/sstsimulator/sst-dumpi/archive/6.1.0.tar.gz"
git = "https://github.com/sstsimulator/sst-dumpi.git"
+ maintainers = ['sknigh', 'jpkenny', 'calewis']
+
version('master', branch='master')
+ version('7.1.0', sha256='628eb3f7c2d0975461d45065f91c723d3abac756fa36af93c09f4fed195794bf')
version('6.1.0', sha256='d4f6afcff5ba67fcc3a29f461afbb59855053840f5f320552a77b4e14c687bb6')
depends_on('autoconf@1.68:', type='build')
diff --git a/var/spack/repos/builtin/packages/sst-elements/package.py b/var/spack/repos/builtin/packages/sst-elements/package.py
index e314df6a58..cf301fac35 100644
--- a/var/spack/repos/builtin/packages/sst-elements/package.py
+++ b/var/spack/repos/builtin/packages/sst-elements/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,15 +9,16 @@ from spack import *
class SstElements(AutotoolsPackage):
"""SST Elements implements a range of components for performing
architecture simulation from node-level to system-level using
- the SST discrete event core
+ the SST discrete event core.
"""
homepage = "https://github.com/sstsimulator"
git = "https://github.com/sstsimulator/sst-elements.git"
- url = "https://github.com/sstsimulator/sst-elements/releases/download/v10.0.0_Final/sstelements-10.0.0.tar.gz"
+ url = "https://github.com/sstsimulator/sst-elements/releases/download/v11.0.0_Final/sstelements-11.0.0.tar.gz"
- maintainers = ['jjwilke']
+ maintainers = ['sknigh']
+ version('11.0.0', sha256="bf265cb25afc041b74422cc5cddc8e3ae1e7c3efa3e37e699dac4e3f7629be6e")
version('10.1.0', sha256="a790561449795dac48a84c525b8e0b09f05d0b0bff1a0da1aa2e903279a03c4a")
version('10.0.0', sha256="ecf28ef97b27ea75be7e64cb0acb99d36773a888c1b32ba16034c62174b02693")
version('9.1.0', sha256="e19b05aa6e59728995fc059840c79e476ba866b67887ccde7eaf52a18a1f52ca")
@@ -25,20 +26,36 @@ class SstElements(AutotoolsPackage):
version('develop', branch='devel')
version('master', branch='master')
- variant("pin", default=False,
+ # Contact SST developers (https://github.com/sstsimulator)
+ # if your use case requires support for:
+ # - balar
+ # - OTF2
+ # - stake (riscv simulator)
+
+ variant("pin", default=False,
description="Enable the Ariel CPU model")
- variant("dramsim2", default=False,
+ variant("dramsim2", default=False,
description="Build with DRAMSim2 support")
- variant("nvdimmsim", default=False,
+ variant("dramsim3", default=False,
+ description="Build with DRAMSim3 support")
+ variant("dumpi", default=False,
+ description="Build with Dumpi support")
+ variant("flashdimmsim", default=False,
+ description="Build with FlashDIMMSim support")
+ variant("nvdimmsim", default=False,
description="Build with NVDimmSim support")
- variant("hybridsim", default=False,
+ variant("hybridsim", default=False,
description="Build with HybridSim support")
- variant("goblin", default=False,
+ variant("goblin", default=False,
description="Build with GoblinHMCSim support")
- variant("hbm", default=False,
+ variant("hbm", default=False,
description="Build with HBM DRAMSim2 support")
- variant("ramulator", default=False,
+ variant("ramulator", default=False,
description="Build with Ramulator support")
+ variant("otf", default=False,
+ description="Build with OTF")
+ variant("otf2", default=False,
+ description="Build with OTF2")
depends_on("python", type=('build', 'run'))
depends_on("sst-core")
@@ -47,18 +64,31 @@ class SstElements(AutotoolsPackage):
depends_on("intel-pin", when="+pin")
depends_on("dramsim2@2:", when="+dramsim2")
+ depends_on("dramsim3@master", when="+dramsim3")
+ depends_on("sst-dumpi@master", when="+dumpi")
+ depends_on("flashdimmsim", when="+flashdimmsim")
depends_on("hybridsim@2.0.1", when="+hybridsim")
+ depends_on("dramsim3@master", when="+hybridsim")
+ depends_on("nvdimmsim@2.0.0", when="+hybridsim")
depends_on("nvdimmsim@2.0.0", when="+nvdimmsim")
depends_on("goblin-hmc-sim", when="+goblin")
depends_on("ramulator@sst", when="+ramulator")
depends_on("hbm-dramsim2", when="+hbm")
- depends_on("nvdimmsim@2.0.0", when="+hybridsim")
+ depends_on("otf", when="+otf")
+ depends_on("otf2", when="+otf2")
depends_on("gettext")
+ depends_on("zlib")
- depends_on('autoconf@1.68:', type='build', when='@master:')
- depends_on('automake@1.11.1:', type='build', when='@master:')
- depends_on('libtool@1.2.4:', type='build', when='@master:')
- depends_on('m4', type='build', when='@master:')
+ depends_on('autoconf@1.68:', type='build')
+ depends_on('automake@1.11.1:', type='build')
+ depends_on('libtool@1.2.4:', type='build')
+ depends_on('m4', type='build')
+
+ conflicts('+dumpi', msg='Dumpi not currently supported, contact SST Developers for help')
+ conflicts('+otf', msg='OTF not currently supported, contact SST Developers for help')
+ conflicts('+otf2', msg='OTF2 not currently supported, contact SST Developers for help')
+ conflicts('~dramsim2', when='+hybridsim', msg='hybridsim requires dramsim2, spec should include +dramsim2')
+ conflicts('~nvdimmsim', when='+hybridsim', msg='hybridsim requires nvdimmsim, spec should include +nvdimmsim')
# force out-of-source builds
build_directory = 'spack-build'
@@ -68,35 +98,52 @@ class SstElements(AutotoolsPackage):
bash('autogen.sh')
def configure_args(self):
+ spec = self.spec
args = []
- if '+pdes_mpi' in self.spec["sst-core"]:
- env['CC'] = self.spec['mpi'].mpicc
- env['CXX'] = self.spec['mpi'].mpicxx
- env['F77'] = self.spec['mpi'].mpif77
- env['FC'] = self.spec['mpi'].mpifc
- if "+pin" in self.spec:
- args.append("--with-pin=%s" % self.spec["intel-pin"].prefix)
+ if '+pdes_mpi' in spec["sst-core"]:
+ env['CC'] = spec['mpi'].mpicc
+ env['CXX'] = spec['mpi'].mpicxx
+ env['F77'] = spec['mpi'].mpif77
+ env['FC'] = spec['mpi'].mpifc
+
+ if "+pin" in spec:
+ args.append("--with-pin=%s" % spec["intel-pin"].prefix)
- if "+dramsim2" in self.spec or "+hybridsim" in self.spec:
- args.append("--with-dramsim=%s" % self.spec["dramsim2"].prefix)
+ if "+dramsim2" in spec or "+hybridsim" in spec:
+ args.append("--with-dramsim=%s" % spec["dramsim2"].prefix)
- if "+nvdimmsim" in self.spec or "+hybridsim" in self.spec:
- args.append("--with-nvdimmsim=%s" % self.spec["nvdimmsim"].prefix)
+ if "+dramsim3" in spec:
+ args.append("--with-dramsim3=%s" % spec["dramsim3"].prefix)
- if "+hybridsim" in self.spec:
- args.append("--with-hybridsim=%s" % self.spec["hybridsim"].prefix)
+ if "+dumpi" in spec:
+ args.append("--with-dumpi=%s" % spec["sst-dumpi"].prefix)
- if "+goblin" in self.spec:
+ if "+flashdimmsim" in spec:
+ args.append("--with-fdsim=%s" % spec["flashdimmsim"].prefix)
+
+ if "+nvdimmsim" in spec or "+hybridsim" in spec:
+ args.append("--with-nvdimmsim=%s" % spec["nvdimmsim"].prefix)
+
+ if "+hybridsim" in spec:
+ args.append("--with-hybridsim=%s" % spec["hybridsim"].prefix)
+
+ if "+goblin" in spec:
args.append("--with-goblin-hmcsim=%s" %
- self.spec["goblin-hmc-sim"].prefix)
+ spec["goblin-hmc-sim"].prefix)
- if "+hbm" in self.spec:
+ if "+hbm" in spec:
args.append("--with-hbmdramsim=%s" %
- self.spec["hbm-dramsim2"].prefix)
+ spec["hbm-dramsim2"].prefix)
+
+ if "+ramulator" in spec:
+ args.append("--with-ramulator=%s" % spec["ramulator"].prefix)
+
+ if "+otf2" in spec:
+ args.append("--with-otf2=%s" % spec["otf2"].prefix)
- if "+ramulator" in self.spec:
- args.append("--with-ramulator=%s" % self.spec["ramulator"].prefix)
+ if "+otf" in spec:
+ args.append("--with-otf=%s" % spec["otf"].prefix)
- args.append("--with-sst-core=%s" % self.spec["sst-core"].prefix)
+ args.append("--with-sst-core=%s" % spec["sst-core"].prefix)
return args
diff --git a/var/spack/repos/builtin/packages/sst-macro/package.py b/var/spack/repos/builtin/packages/sst-macro/package.py
index 59911ba3ab..bcb1c6fbaa 100644
--- a/var/spack/repos/builtin/packages/sst-macro/package.py
+++ b/var/spack/repos/builtin/packages/sst-macro/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,10 +17,11 @@ class SstMacro(AutotoolsPackage):
homepage = "http://sst.sandia.gov/about_sstmacro.html"
git = "https://github.com/sstsimulator/sst-macro.git"
- url = "https://github.com/sstsimulator/sst-macro/releases/download/v10.0.0_Final/sstmacro-10.0.0.tar.gz"
+ url = "https://github.com/sstsimulator/sst-macro/releases/download/v11.0.0_Final/sstmacro-11.0.0.tar.gz"
maintainers = ['jjwilke']
+ version('11.0.0', sha256='30367baed670b5b501320a068671556c9071286a0f0c478f9994a30d8fe5bdea')
version('10.1.0', sha256='e15d99ce58d282fdff849af6de267746a4c89f3b8c5ab6c1e1e7b53a01127e73')
version('10.0.0', sha256='064b732256f3bec9b553e00bcbc9a1d82172ec194f2b69c8797f585200b12566')
version('master', branch='master')
diff --git a/var/spack/repos/builtin/packages/sst-transports/package.py b/var/spack/repos/builtin/packages/sst-transports/package.py
index 39a6e99d05..8c2cbbf74b 100644
--- a/var/spack/repos/builtin/packages/sst-transports/package.py
+++ b/var/spack/repos/builtin/packages/sst-transports/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/stacks/package.py b/var/spack/repos/builtin/packages/stacks/package.py
index 81fb81a047..7a90e42cfc 100644
--- a/var/spack/repos/builtin/packages/stacks/package.py
+++ b/var/spack/repos/builtin/packages/stacks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Stacks(AutotoolsPackage):
"""Stacks is a software pipeline for building loci from short-read
sequences, such as those generated on the Illumina platform."""
- homepage = "http://catchenlab.life.illinois.edu/stacks/"
- url = "http://catchenlab.life.illinois.edu/stacks/source/stacks-1.46.tar.gz"
+ homepage = "https://catchenlab.life.illinois.edu/stacks/"
+ url = "https://catchenlab.life.illinois.edu/stacks/source/stacks-1.46.tar.gz"
version('2.53', sha256='ee1efceaeeeb7a39f0c2e804ad7c0a003094db28c9101120c38ddb02846e90fd')
version('2.3b', sha256='a46786d8811a730ebcdc17891e89f50d4f4ae196734439dac86091f45c92ac72')
diff --git a/var/spack/repos/builtin/packages/staden-io-lib/package.py b/var/spack/repos/builtin/packages/staden-io-lib/package.py
index 21c0fee40f..2208932e8c 100644
--- a/var/spack/repos/builtin/packages/staden-io-lib/package.py
+++ b/var/spack/repos/builtin/packages/staden-io-lib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,4 +15,15 @@ class StadenIoLib(AutotoolsPackage):
version('1.14.8', sha256='3bd560309fd6d70b14bbb8230e1baf8706b804eb6201220bb6c3d6db72003d1b')
+ variant('curl', default=False, description='Build with curl support')
+
depends_on('zlib')
+ depends_on('curl', when='+curl')
+
+ def configure_args(self):
+ args = []
+
+ if self.spec.satisfies('~curl'):
+ args.append('--without-libcurl')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/star-ccm-plus/package.py b/var/spack/repos/builtin/packages/star-ccm-plus/package.py
index ec7d503fcd..8067199485 100644
--- a/var/spack/repos/builtin/packages/star-ccm-plus/package.py
+++ b/var/spack/repos/builtin/packages/star-ccm-plus/package.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+from spack import *
+
class StarCcmPlus(Package):
"""STAR-CCM+ (Computational Continuum Mechanics) CFD solver."""
- homepage = "http://mdx.plm.automation.siemens.com/star-ccm-plus"
+ homepage = "https://mdx.plm.automation.siemens.com/star-ccm-plus"
url = "file://{0}/STAR-CCM+11.06.010_02_linux-x86_64.tar.gz".format(os.getcwd())
manual_download = True
diff --git a/var/spack/repos/builtin/packages/star/package.py b/var/spack/repos/builtin/packages/star/package.py
index 80dcaac241..a801a9ea57 100644
--- a/var/spack/repos/builtin/packages/star/package.py
+++ b/var/spack/repos/builtin/packages/star/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/startup-notification/package.py b/var/spack/repos/builtin/packages/startup-notification/package.py
index 448fe1e05a..5b54b42c2b 100644
--- a/var/spack/repos/builtin/packages/startup-notification/package.py
+++ b/var/spack/repos/builtin/packages/startup-notification/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class StartupNotification(AutotoolsPackage):
freedesktop startup notification protocol."""
homepage = "https://www.freedesktop.org/wiki/Software/startup-notification/"
- url = "http://www.freedesktop.org/software/startup-notification/releases/startup-notification-0.12.tar.gz"
+ url = "https://www.freedesktop.org/software/startup-notification/releases/startup-notification-0.12.tar.gz"
version('0.12', sha256='3c391f7e930c583095045cd2d10eb73a64f085c7fde9d260f2652c7cb3cfbe4a')
diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py
index 2db8a33ab8..0027cfd1ea 100644
--- a/var/spack/repos/builtin/packages/stat/package.py
+++ b/var/spack/repos/builtin/packages/stat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,11 +9,14 @@ from spack import *
class Stat(AutotoolsPackage):
"""Library to create, manipulate, and export graphs Graphlib."""
- homepage = "http://paradyn.org/STAT/STAT.html"
+ homepage = "https://paradyn.org/STAT/STAT.html"
url = "https://github.com/LLNL/STAT/archive/v2.0.0.tar.gz"
git = "https://github.com/llnl/stat.git"
+ maintainers = ['lee218llnl']
version('develop', branch='develop')
+ version('4.1.0', sha256='1d5b00afd563cf3bd9dd40818c44a03d7d4b13356216881513c058566c3b0080',
+ url='https://github.com/LLNL/STAT/files/6193568/stat-4.1.0.tar.gz')
version('4.0.2', sha256='9ece10dde8e1579c9db469ac8d2391b26e59498c0947dbb271c2d01d7ef0a65d',
url='https://github.com/LLNL/STAT/releases/download/v4.0.2/stat-4.0.2.tar.gz')
version('4.0.1', sha256='ae3fbd6946003fb16233d82d40285780a9a802da5fe30d09adb8a8b2a2cc4ad6',
@@ -21,17 +24,23 @@ class Stat(AutotoolsPackage):
version('4.0.0', sha256='1c4f62686645f6dc1d9ef890acc9c2839c150789dc220718775878feb41bdabf',
url='https://github.com/LLNL/STAT/releases/download/v4.0.0/stat-4.0.0.tar.gz')
version('3.0.1', sha256='540916ffb92026ca7aa825a2320095a89b9b4fd3426ee7657b44ac710618947e',
- url='https://github.com/LLNL/STAT/files/911503/stat-3.0.1.zip')
+ url='https://github.com/LLNL/STAT/files/911503/stat-3.0.1.zip',
+ deprecated=True)
version('3.0.0', sha256='b95cac82989e273e566f16ba17a75526374ee8e0ef066a411977e1935967df57',
- url='https://github.com/LLNL/STAT/releases/download/v3.0.0/STAT-3.0.0.tar.gz')
- version('2.2.0', sha256='ed4732bfbe942ca8e29342f24f48e0c295989b0639a548febe7a1c1390ae1993')
- version('2.1.0', sha256='497ed2bd1127cb2e97b32a30a4f62b6b298d18f3313c0278dd908c6ecba64f43')
- version('2.0.0', sha256='b19587c2166b5d4d3a89a0ec5433ac61335aa7ad5cfa5a3b4406f5ea6c0bf0ac')
+ url='https://github.com/LLNL/STAT/releases/download/v3.0.0/STAT-3.0.0.tar.gz',
+ deprecated=True)
+ version('2.2.0', sha256='ed4732bfbe942ca8e29342f24f48e0c295989b0639a548febe7a1c1390ae1993',
+ deprecated=True)
+ version('2.1.0', sha256='497ed2bd1127cb2e97b32a30a4f62b6b298d18f3313c0278dd908c6ecba64f43',
+ deprecated=True)
+ version('2.0.0', sha256='b19587c2166b5d4d3a89a0ec5433ac61335aa7ad5cfa5a3b4406f5ea6c0bf0ac',
+ deprecated=True)
# TODO: dysect requires Dyninst patch for version 3.0.0b
variant('dysect', default=False, description="enable DySectAPI")
variant('examples', default=False, description="enable examples")
variant('fgfs', default=True, description="enable file broadcasting")
+ variant('gui', default=True, description="enable GUI")
depends_on('autoconf', type='build')
depends_on('automake', type='build')
@@ -39,22 +48,28 @@ class Stat(AutotoolsPackage):
depends_on('dyninst', when='~dysect')
depends_on('dyninst@:9.99', when='@:4.0.1')
depends_on('dyninst@8.2.1+stat_dysect', when='+dysect')
- depends_on('fast-global-file-status', when='+fgfs')
+ # we depend on fgfs@master to avoid seg faults with fgfs 1.1
+ depends_on('fast-global-file-status@master', when='+fgfs')
depends_on('graphlib@2.0.0', when='@2.0.0:2.2.0')
depends_on('graphlib@3.0.0', when='@3:')
depends_on('graphviz', type=('build', 'link', 'run'))
- depends_on('launchmon')
+ # we depend on mpa@master for bug fixes since launchmon 1.0.2
+ depends_on('launchmon@master')
depends_on('mrnet')
+ depends_on('python')
depends_on('python@:2.8', when='@:4.0.0')
- depends_on('py-pygtk', type=('build', 'run'), when='@:4.0.0')
+ depends_on('py-pygtk', type=('build', 'run'), when='@:4.0.0 +gui')
depends_on('py-enum34', type=('run'), when='@:4.0.0')
- depends_on('py-xdot', when='@4.0.1:')
+ depends_on('py-xdot@1.0', when='@4.0.1: +gui')
depends_on('swig')
depends_on('mpi', when='+examples')
depends_on('boost')
patch('configure_mpicxx.patch', when='@2.1.0')
+ # No Mac support due to dependencies like dyninst, elf etc.
+ conflicts('platform=darwin', msg='macOS is not supported')
+
def configure_args(self):
spec = self.spec
args = [
@@ -70,6 +85,8 @@ class Stat(AutotoolsPackage):
% spec['fast-global-file-status'].prefix)
if '+dysect' in spec:
args.append('--enable-dysectapi')
+ if '~gui' in spec:
+ args.append('--disable-gui')
if '~examples' in spec:
args.append('--disable-examples')
return args
diff --git a/var/spack/repos/builtin/packages/stata/package.py b/var/spack/repos/builtin/packages/stata/package.py
index 263fc60cd0..0c5ae83576 100644
--- a/var/spack/repos/builtin/packages/stata/package.py
+++ b/var/spack/repos/builtin/packages/stata/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
from datetime import datetime
+from spack import *
+
class Stata(Package):
"""STATA is a general-purpose statistical software package developed
@@ -25,6 +26,7 @@ class Stata(Package):
# * I haven't tested any installer version but 15.
homepage = "https://www.stata.com/"
+ manual_download = True
# url = "stata"
version('16', 'a13a6a92558eeb3c6cb3013c458a6777e54c21af43599df6b0a924f5f5c2d5d2')
diff --git a/var/spack/repos/builtin/packages/static-analysis-suite/package.py b/var/spack/repos/builtin/packages/static-analysis-suite/package.py
index fe6d82cc4a..af2606ddae 100644
--- a/var/spack/repos/builtin/packages/static-analysis-suite/package.py
+++ b/var/spack/repos/builtin/packages/static-analysis-suite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/stc/package.py b/var/spack/repos/builtin/packages/stc/package.py
index 790f1b66c3..0d9e8d452a 100644
--- a/var/spack/repos/builtin/packages/stc/package.py
+++ b/var/spack/repos/builtin/packages/stc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,10 +11,11 @@ class Stc(AutotoolsPackage):
"""STC: The Swift-Turbine Compiler"""
homepage = 'http://swift-lang.org/Swift-T'
- url = 'http://swift-lang.github.io/swift-t-downloads/spack/stc-0.8.3.tar.gz'
+ url = 'https://swift-lang.github.io/swift-t-downloads/spack/stc-0.9.0.tar.gz'
git = "https://github.com/swift-lang/swift-t.git"
version('master', branch='master')
+ version('0.9.0', sha256='edf187344ce860476473ab6599f042cd22ed029aa186d512135990accb9d260f')
version('0.8.3', sha256='d61ca80137a955b12e84e41cb8a78ce1a58289241a2665076f12f835cf68d798')
version('0.8.2', sha256='13f0f03fdfcca3e63d2d58d7e7dbdddc113d5b9826c9357ab0713b63e8e42c5e')
diff --git a/var/spack/repos/builtin/packages/steps/package.py b/var/spack/repos/builtin/packages/steps/package.py
index dd074f188a..0f33dd87c1 100644
--- a/var/spack/repos/builtin/packages/steps/package.py
+++ b/var/spack/repos/builtin/packages/steps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/stinger/package.py b/var/spack/repos/builtin/packages/stinger/package.py
index fe78dc015c..406a8b575e 100644
--- a/var/spack/repos/builtin/packages/stinger/package.py
+++ b/var/spack/repos/builtin/packages/stinger/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/storm/package.py b/var/spack/repos/builtin/packages/storm/package.py
index d9a2ad2ece..3f63eab08c 100644
--- a/var/spack/repos/builtin/packages/storm/package.py
+++ b/var/spack/repos/builtin/packages/storm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/stow/package.py b/var/spack/repos/builtin/packages/stow/package.py
index 2ce4c91b3e..83edbe07e0 100644
--- a/var/spack/repos/builtin/packages/stow/package.py
+++ b/var/spack/repos/builtin/packages/stow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/strace/package.py b/var/spack/repos/builtin/packages/strace/package.py
index a46a98b2bc..d47a2f5e06 100644
--- a/var/spack/repos/builtin/packages/strace/package.py
+++ b/var/spack/repos/builtin/packages/strace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,11 @@ class Strace(AutotoolsPackage):
conflicts('platform=darwin', msg='strace runs only on Linux.')
+ version('5.12', sha256='29171edf9d252f89c988a4c340dfdec662f458cb8c63d85431d64bab5911e7c4')
+ version('5.11', sha256='ffe340b10c145a0f85734271e9cce56457d23f21a7ea5931ab32f8cf4e793879')
+ version('5.10', sha256='fe3982ea4cd9aeb3b4ba35f6279f0b577a37175d3282be24b9a5537b56b8f01c')
+ version('5.9', sha256='39473eb8465546c3e940fb663cb381eba5613160c7302794699d194a4d5d66d9')
+ version('5.8', sha256='df4a669f7fff9cc302784085bd4b72fab216a426a3f72c892b28a537b71e7aa9')
version('5.7', sha256='b284b59f9bcd95b9728cea5bd5c0edc5ebe360af73dc76fbf6334f11c777ccd8')
version('5.6', sha256='189968eeae06ed9e20166ec55a830943c84374676a457c9fe010edc7541f1b01')
version('5.5', sha256='9f58958c8e59ea62293d907d10572e352b582bd7948ed21aa28ebb47e5bf30ff')
diff --git a/var/spack/repos/builtin/packages/stream/package.py b/var/spack/repos/builtin/packages/stream/package.py
index e7c937ce26..8dca2665e8 100644
--- a/var/spack/repos/builtin/packages/stream/package.py
+++ b/var/spack/repos/builtin/packages/stream/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/strelka/package.py b/var/spack/repos/builtin/packages/strelka/package.py
index d1d2e0d9ec..3b1806c8d5 100644
--- a/var/spack/repos/builtin/packages/strelka/package.py
+++ b/var/spack/repos/builtin/packages/strelka/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -31,5 +31,5 @@ class Strelka(CMakePackage):
depends_on('python@2.4:2.7')
depends_on('zlib')
depends_on('bzip2')
- depends_on('cmake@2.8.5:')
+ depends_on('cmake@2.8.5:', type='build')
depends_on('boost@1.56.0:')
diff --git a/var/spack/repos/builtin/packages/stress-ng/package.py b/var/spack/repos/builtin/packages/stress-ng/package.py
new file mode 100644
index 0000000000..006b722ad8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/stress-ng/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2021 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 StressNg(MakefilePackage):
+ """stress-ng will stress test a computer system in various
+ selectable ways. It was designed to exercise various physical
+ subsystems of a computer as well as the various operating system
+ kernel interfaces."""
+
+ homepage = "https://kernel.ubuntu.com/~cking/stress-ng/"
+ url = "https://kernel.ubuntu.com/~cking/tarballs/stress-ng/stress-ng-0.12.06.tar.xz"
+
+ version('0.12.06', sha256='75eb340266b1bbae944d8f9281af978bd5bc2c8085df97a098d5500d6f177296')
+
+ depends_on('libaio')
+ depends_on('libbsd')
+ depends_on('judy')
+ depends_on('libatomic-ops')
+ depends_on('zlib')
+ depends_on('keyutils')
+ depends_on('libgcrypt')
+ depends_on('libcap')
+
+ conflicts('platform=darwin', msg='stress-ng is linux-only')
+
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ mkdirp(prefix.man.man1)
+ mkdirp(join_path(prefix.share,
+ 'stress-ng',
+ 'example-jobs'))
+ mkdirp(join_path(prefix.share,
+ 'bash-completion',
+ 'completions'))
+ install('stress-ng', prefix.bin)
+ install('stress-ng.1', prefix.man.man1)
+ install_tree('example-jobs',
+ join_path(prefix.share,
+ 'stress-ng'))
+ install('bash-completion/stress-ng',
+ join_path(prefix.share,
+ 'bash-completion',
+ 'completions'))
diff --git a/var/spack/repos/builtin/packages/stress/package.py b/var/spack/repos/builtin/packages/stress/package.py
index b407eede15..bafed9bc5c 100644
--- a/var/spack/repos/builtin/packages/stress/package.py
+++ b/var/spack/repos/builtin/packages/stress/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/string-view-lite/package.py b/var/spack/repos/builtin/packages/string-view-lite/package.py
index d2dbd7ad39..467e2df4a2 100644
--- a/var/spack/repos/builtin/packages/string-view-lite/package.py
+++ b/var/spack/repos/builtin/packages/string-view-lite/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 shutil import copytree
+from spack import *
+
class StringViewLite(CMakePackage):
"""
diff --git a/var/spack/repos/builtin/packages/stringtie/package.py b/var/spack/repos/builtin/packages/stringtie/package.py
index afbca1b813..5fa249de46 100644
--- a/var/spack/repos/builtin/packages/stringtie/package.py
+++ b/var/spack/repos/builtin/packages/stringtie/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/stripack/package.py b/var/spack/repos/builtin/packages/stripack/package.py
new file mode 100644
index 0000000000..406697b4e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/stripack/package.py
@@ -0,0 +1,69 @@
+# Copyright 2013-2021 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 Stripack(MakefilePackage):
+ """STRIPACK:
+ Delaunay Triangulation rewritten in Fortran 90 by John Burkardt at
+ https://people.sc.fsu.edu/~jburkardt/f_src/stripack/stripack.html
+
+ The original Fortran 77 package STRIPACK is available from netlib as algorithm number 772 at
+ https://www.netlib.org/toms/772.gz
+ Dr. Renka's articles were published in the ACM Transactions on Mathematical Software, Vol. 23, No 3, September 1997
+ https://dl.acm.org/doi/10.1145/275323.275329
+ """
+
+ homepage = "https://people.sc.fsu.edu/~jburkardt/f_src/stripack/stripack.html"
+ version('develop', sha256='26c074bc46fb8549d7a42ec713636798297d7327c8f3ce0ba2d3348a501ffa7c', expand=False, url='https://people.sc.fsu.edu/~jburkardt/f_src/stripack/stripack.f90')
+
+ @run_before('build')
+ def run_mkmake(self):
+ config = [
+ 'BUILDIR ?= ' + join_path(self.build_directory, 'build'),
+ 'DYLIB=' + dso_suffix,
+ 'F90=' + self.compiler.fc,
+ 'LD=' + self.compiler.fc,
+ 'FFLAGS=' + self.compiler.fc_pic_flag,
+ 'LDFLAGS=' + self.compiler.fc_pic_flag,
+ '.SUFFIXES: .f .f90 .F90',
+ '$(BUILDIR)/%.o: %.f90',
+ '\t$(F90) $(FFLAGS) -c $< -o $@',
+ 'all: $(BUILDIR)/stripack.o',
+ '\t$(LD) -shared $(LDFLAGS) -o $(BUILDIR)/libstripack.$(DYLIB)'
+ + ' $(BUILDIR)/stripack.o $(LIBS)',
+ ]
+ with open('Makefile', 'w') as fh:
+ fh.write('\n'.join(config))
+ mkdirp(join_path(self.build_directory, 'build'))
+
+ def setup_run_environment(self, env):
+ # This is smartly used by VisIt
+ env.set('VISIT_FFP_STRIPACK_PATH',
+ join_path(self.spec.prefix.lib, 'libstripack.' + dso_suffix))
+
+ def build(self, spec, prefix):
+ fflags = spec.compiler_flags['fflags']
+ # Setting the double precision mode
+ # needed for the original Fortran 77 version
+ satisfies = spec.satisfies
+ if satisfies('%gcc') or satisfies('%clang') or satisfies('%flang'):
+ fflags += ['-fdefault-real-8', '-fdefault-double-8']
+ elif satisfies('%intel') or satisfies('%oneapi') or satisfies('%aocc'):
+ fflags += ['-r8']
+ elif satisfies('%xl') or satisfies('%xl_r'):
+ fflags += ['-qrealsize=8']
+ elif satisfies('%fj'):
+ fflags += ['-CcdRR8']
+ elif satisfies('%pgi') or satisfies('%nvhpc'):
+ fflags += ['-r8']
+ fflags += [self.compiler.fc_pic_flag]
+ make('all', 'FFLAGS={0}'.format(' '.join(fflags)))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.lib)
+ install(join_path(self.build_directory, 'build', 'libstripack.' + dso_suffix),
+ prefix.lib)
diff --git a/var/spack/repos/builtin/packages/structure/package.py b/var/spack/repos/builtin/packages/structure/package.py
index 646530bc3a..a5880171eb 100644
--- a/var/spack/repos/builtin/packages/structure/package.py
+++ b/var/spack/repos/builtin/packages/structure/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Structure(MakefilePackage):
"""Structure is a free software package for using multi-locus genotype
data to investigate population structure."""
- homepage = "http://web.stanford.edu/group/pritchardlab/structure.html"
- url = "http://web.stanford.edu/group/pritchardlab/structure_software/release_versions/v2.3.4/structure_kernel_source.tar.gz"
+ homepage = "https://web.stanford.edu/group/pritchardlab/structure.html"
+ url = "https://web.stanford.edu/group/pritchardlab/structure_software/release_versions/v2.3.4/structure_kernel_source.tar.gz"
version('2.3.4', sha256='f2b72b9189a514f53e921bbdc1aa3dbaca7ac34a8467af1f972c7e4fc9c0bb37')
diff --git a/var/spack/repos/builtin/packages/strumpack/package.py b/var/spack/repos/builtin/packages/strumpack/package.py
index be00d24937..c761f5b922 100644
--- a/var/spack/repos/builtin/packages/strumpack/package.py
+++ b/var/spack/repos/builtin/packages/strumpack/package.py
@@ -1,12 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack.util.environment import set_env
+from spack.util.executable import which
-class Strumpack(CMakePackage, CudaPackage):
+class Strumpack(CMakePackage, CudaPackage, ROCmPackage):
"""STRUMPACK -- STRUctured Matrix PACKage - provides linear solvers
for sparse matrices and for dense rank-structured matrices, i.e.,
matrices that exhibit some kind of low-rank property. It provides a
@@ -18,24 +20,25 @@ class Strumpack(CMakePackage, CudaPackage):
iterative solvers."""
homepage = "http://portal.nersc.gov/project/sparse/strumpack"
- url = "https://github.com/pghysels/STRUMPACK/archive/v4.0.0.tar.gz"
+ url = "https://github.com/pghysels/STRUMPACK/archive/v5.1.0.tar.gz"
git = "https://github.com/pghysels/STRUMPACK.git"
maintainers = ['pghysels']
+ test_requires_compiler = True
+
version('master', branch='master')
+ version('5.1.1', sha256='6cf4eaae5beb9bd377f2abce9e4da9fd3e95bf086ae2f04554fad6dd561c28b9')
version('5.0.0', sha256='bdfd1620ff7158d96055059be04ee49466ebaca8213a2fdab33e2d4571019a49')
version('4.0.0', sha256='a3629f1f139865c74916f8f69318f53af6319e7f8ec54e85c16466fd7d256938')
version('3.3.0', sha256='499fd3b58656b4b6495496920e5372895861ebf15328be8a7a9354e06c734bc7')
version('3.2.0', sha256='34d93e1b2a3b8908ef89804b7e08c5a884cbbc0b2c9f139061627c0d2de282c1')
version('3.1.1', sha256='c1c3446ee023f7b24baa97b24907735e89ce4ae9f5ef516645dfe390165d1778')
- variant('shared', default=False, description='Build shared libraries')
+ variant('shared', default=True, description='Build shared libraries')
variant('mpi', default=True, description='Use MPI')
variant('openmp', default=True,
description='Enable thread parallellism via tasking with OpenMP')
- variant('cuda', default=True,
- description='Enable CUDA support')
variant('parmetis', default=True,
description='Enable use of ParMetis')
variant('scotch', default=False,
@@ -54,8 +57,8 @@ class Strumpack(CMakePackage, CudaPackage):
description='Build developer test routines')
variant('build_tests', default=False,
description='Build test routines')
-
- # TODO: add a slate variant
+ variant('slate', default=True,
+ description="Build with SLATE support")
depends_on('cmake@3.11:', type='build')
depends_on('mpi', when='+mpi')
@@ -70,37 +73,53 @@ class Strumpack(CMakePackage, CudaPackage):
depends_on('butterflypack@1.2.0:', when='@4.0.0: +butterflypack+mpi')
depends_on('cuda', when='@4.0.0: +cuda')
depends_on('zfp', when='+zfp')
+ depends_on('hipblas', when='+rocm')
+ depends_on('rocsolver', when='+rocm')
+ depends_on('slate', when='+slate')
+ depends_on('slate+cuda', when='+cuda+slate')
conflicts('+parmetis', when='~mpi')
conflicts('+butterflypack', when='~mpi')
conflicts('+butterflypack', when='@:3.2.0')
- conflicts('+cuda', when='@:3.9.999')
conflicts('+zfp', when='@:3.9.999')
+ conflicts('+cuda', when='@:3.9.999')
+ conflicts('+rocm', when='@:5.0.999')
+ conflicts('+rocm', when='+cuda')
+ conflicts('+slate', when='@:5.1.1')
+ conflicts('+slate', when='~mpi')
+ conflicts('^openblas@0.3.6: threads=none', when='+openmp',
+ msg='STRUMPACK requires openblas with OpenMP threading support')
+ conflicts('^openblas@0.3.6: threads=pthreads', when='+openmp',
+ msg='STRUMPACK requires openblas with OpenMP threading support')
patch('intel-19-compile.patch', when='@3.1.1')
+ patch('shared-rocm.patch', when='@5.1.1')
def cmake_args(self):
spec = self.spec
- def on_off(varstr):
- return 'ON' if varstr in spec else 'OFF'
-
args = [
- '-DSTRUMPACK_USE_MPI=%s' % on_off('+mpi'),
- '-DSTRUMPACK_USE_OPENMP=%s' % on_off('+openmp'),
- '-DTPL_ENABLE_PARMETIS=%s' % on_off('+parmetis'),
- '-DTPL_ENABLE_SCOTCH=%s' % on_off('+scotch'),
- '-DTPL_ENABLE_BPACK=%s' % on_off('+butterflypack'),
- '-DSTRUMPACK_COUNT_FLOPS=%s' % on_off('+count_flops'),
- '-DSTRUMPACK_TASK_TIMERS=%s' % on_off('+task_timers'),
- '-DSTRUMPACK_DEV_TESTING=%s' % on_off('+build_dev_tests'),
- '-DSTRUMPACK_BUILD_TESTS=%s' % on_off('+build_tests'),
+ self.define_from_variant('STRUMPACK_USE_MPI', 'mpi'),
+ self.define_from_variant('STRUMPACK_USE_OPENMP', 'openmp'),
+ self.define_from_variant('STRUMPACK_USE_CUDA', 'cuda'),
+ self.define_from_variant('STRUMPACK_USE_HIP', 'rocm'),
+ self.define_from_variant('TPL_ENABLE_PARMETIS', 'parmetis'),
+ self.define_from_variant('TPL_ENABLE_SCOTCH', 'scotch'),
+ self.define_from_variant('TPL_ENABLE_BPACK', 'butterflypack'),
+ self.define_from_variant('STRUMPACK_COUNT_FLOPS', 'count_flops'),
+ self.define_from_variant('STRUMPACK_TASK_TIMERS', 'task_timers'),
+ self.define_from_variant('STRUMPACK_DEV_TESTING', 'build_dev_tests'),
+ self.define_from_variant('STRUMPACK_BUILD_TESTS', 'build_tests'),
'-DTPL_BLAS_LIBRARIES=%s' % spec['blas'].libs.joined(";"),
'-DTPL_LAPACK_LIBRARIES=%s' % spec['lapack'].libs.joined(";"),
- '-DTPL_SCALAPACK_LIBRARIES=%s' % spec['scalapack'].
- libs.joined(";"),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared')
]
+ if '+mpi' in spec:
+ args.append(
+ '-DTPL_SCALAPACK_LIBRARIES=%s' % spec['scalapack'].
+ libs.joined(";"))
+
if spec.satisfies('@:3.9.999'):
if '+mpi' in spec:
args.extend([
@@ -109,16 +128,102 @@ class Strumpack(CMakePackage, CudaPackage):
'-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc
])
args.extend([
- '-DSTRUMPACK_C_INTERFACE=%s' % on_off('+c_interface'),
+ self.define_from_variant('STRUMPACK_C_INTERFACE', 'c_interface'),
])
- if spec.satisfies('@4.0.0:'):
+ if '+cuda' in spec:
args.extend([
- '-DSTRUMPACK_USE_CUDA=%s' % on_off('+cuda')
- ])
-
- args.extend([
- '-DBUILD_SHARED_LIBS=%s' % on_off('+shared')
- ])
+ '-DCUDA_TOOLKIT_ROOT_DIR={0}'.format(spec['cuda'].prefix),
+ '-DCMAKE_CUDA_HOST_COMPILER={0}'.format(env["SPACK_CXX"])])
+ cuda_archs = spec.variants['cuda_arch'].value
+ if 'none' not in cuda_archs:
+ args.append('-DCUDA_NVCC_FLAGS={0}'.
+ format(' '.join(self.cuda_flags(cuda_archs))))
+
+ if '+rocm' in spec:
+ args.append(
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix))
+ rocm_archs = spec.variants['amdgpu_target'].value
+ if 'none' not in rocm_archs:
+ args.append('-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.
+ format(",".join(rocm_archs)))
return args
+
+ test_src_dir = 'test'
+
+ @property
+ def test_data_dir(self):
+ """Return the stand-alone test data directory."""
+ add_sparse = not self.spec.satisfies('@:5.1.1')
+ return join_path('examples', 'sparse' if add_sparse else '', 'data')
+
+ # TODO: Replace this method and its 'get' use for cmake path with
+ # join_path(self.spec['cmake'].prefix.bin, 'cmake') once stand-alone
+ # tests can access build dependencies through self.spec['cmake'].
+ def cmake_bin(self, set=True):
+ """(Hack) Set/get cmake dependency path."""
+ filepath = join_path(self.install_test_root, 'cmake_bin_path.txt')
+ if set:
+ with open(filepath, 'w') as out_file:
+ cmake_bin = join_path(self.spec['cmake'].prefix.bin, 'cmake')
+ out_file.write('{0}\n'.format(cmake_bin))
+ else:
+ with open(filepath, 'r') as in_file:
+ return in_file.read().strip()
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.test_data_dir, self.test_src_dir])
+
+ # TODO: Remove once self.spec['cmake'] is available here
+ self.cmake_bin(set=True)
+
+ def _test_example(self, test_prog, test_dir, test_cmd, test_args):
+ cmake_filename = join_path(test_dir, 'CMakeLists.txt')
+ with open(cmake_filename, 'w') as mkfile:
+ mkfile.write('cmake_minimum_required(VERSION 3.15)\n')
+ mkfile.write('project(StrumpackSmokeTest LANGUAGES CXX)\n')
+ mkfile.write('find_package(STRUMPACK REQUIRED)\n')
+ mkfile.write('add_executable({0} {0}.cpp)\n'.format(test_prog))
+ mkfile.write('target_link_libraries({0} '.format(test_prog) +
+ 'PRIVATE STRUMPACK::strumpack)\n')
+
+ # TODO: Remove/replace once self.spec['cmake'] is available here
+ cmake_bin = self.cmake_bin(set=False)
+
+ opts = self.std_cmake_args
+ opts += self.cmake_args()
+ opts += ['.']
+
+ self.run_test(cmake_bin, opts, [], installed=False,
+ purpose='test: generating makefile', work_dir=test_dir)
+ self.run_test('make', test_prog,
+ purpose='test: building {0}'.format(test_prog),
+ work_dir=test_dir)
+ with set_env(OMP_NUM_THREADS='1'):
+ self.run_test(test_cmd, test_args, installed=False,
+ purpose='test: running {0}'.format(test_prog),
+ skip_missing=False, work_dir=test_dir)
+
+ def test(self):
+ """Run the stand-alone tests for the installed software."""
+ test_dir = join_path(
+ self.test_suite.current_test_cache_dir, self.test_src_dir
+ )
+ test_exe = 'test_sparse_seq'
+ test_exe_mpi = 'test_sparse_mpi'
+ exe_arg = [join_path('..', self.test_data_dir, 'pde900.mtx')]
+ if '+mpi' in self.spec:
+ test_args = ['-n', '1', test_exe_mpi]
+ test_args.extend(exe_arg)
+ mpiexe_list = ['srun', 'mpirun', 'mpiexec']
+ for mpiexe in mpiexe_list:
+ if which(mpiexe) is not None:
+ self._test_example(test_exe_mpi, test_dir,
+ mpiexe, test_args)
+ break
+ else:
+ self._test_example(test_exe, test_dir, test_exe, exe_arg)
diff --git a/var/spack/repos/builtin/packages/strumpack/shared-rocm.patch b/var/spack/repos/builtin/packages/strumpack/shared-rocm.patch
new file mode 100644
index 0000000000..a7ebba24ad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/strumpack/shared-rocm.patch
@@ -0,0 +1,141 @@
+From dea93a02299c9c2ac6143d7f6f170310316d5989 Mon Sep 17 00:00:00 2001
+From: Pieter Ghysels <pghysels@lbl.gov>
+Date: Wed, 4 Aug 2021 15:15:21 -0700
+Subject: [PATCH 1/2] patch for building shared lib with ROCm
+
+---
+ CMakeLists.txt | 7 ++++++-
+ cmake/Modules/FindHIP.cmake | 31 ++++++++++++++++++++++++++++---
+ 2 files changed, 34 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c63e8f0..e362d4c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -439,7 +439,12 @@ if(STRUMPACK_USE_HIP)
+ set_source_files_properties(
+ src/sparse/fronts/FrontalMatrixHIP.hip.cpp
+ PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)
+- hip_add_library(strumpack "src/sparse/fronts/FrontalMatrixHIP.hip.cpp")
++ if (BUILD_SHARED_LIBS)
++ set(STATIC_OR_SHARED SHARED)
++ else()
++ set(STATIC_OR_SHARED STATIC)
++ endif()
++ hip_add_library(strumpack "src/sparse/fronts/FrontalMatrixHIP.hip.cpp" ${STATIC_OR_SHARED})
+ else()
+ add_library(strumpack "")
+ endif()
+diff --git a/cmake/Modules/FindHIP.cmake b/cmake/Modules/FindHIP.cmake
+index b4a5cb2..6b69837 100644
+--- a/cmake/Modules/FindHIP.cmake
++++ b/cmake/Modules/FindHIP.cmake
+@@ -11,6 +11,7 @@ set(HIP_HCC_FLAGS "" CACHE STRING "Semicolon delimited flags for HCC")
+ set(HIP_CLANG_FLAGS "" CACHE STRING "Semicolon delimited flags for CLANG")
+ set(HIP_NVCC_FLAGS "" CACHE STRING "Semicolon delimted flags for NVCC")
+ mark_as_advanced(HIP_HIPCC_FLAGS HIP_HCC_FLAGS HIP_CLANG_FLAGS HIP_NVCC_FLAGS)
++
+ set(_hip_configuration_types ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE} Debug MinSizeRel Release RelWithDebInfo)
+ list(REMOVE_DUPLICATES _hip_configuration_types)
+ foreach(config ${_hip_configuration_types})
+@@ -205,8 +206,13 @@ set(CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_HIP_FLAGS ${CMAKE_SHARED_LIBRARY_LINK_DYNA
+ set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "")
+ set(HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS "")
+
+-if("${HIP_COMPILER}" STREQUAL "hcc")
+- # Set the CMake Flags to use the HCC Compiler.
++if("${HIP_COMPILER}" STREQUAL "nvcc")
++ # Set the CMake Flags to use the nvcc Compiler.
++ set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
++ set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <LINK_LIBRARIES> -shared" )
++ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
++elseif("${HIP_COMPILER}" STREQUAL "hcc")
++ # Set the CMake Flags to use the hcc Compiler.
+ set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+ set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <LINK_LIBRARIES> -shared" )
+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HCC_HOME} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+@@ -221,7 +227,7 @@ elseif("${HIP_COMPILER}" STREQUAL "clang")
+ endif()
+ if(HIP_CLANG_NUM_PARALLEL_JOBS GREATER 1)
+ if(${HIP_CLANG_SUPPORTS_PARALLEL_JOBS})
+- set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "-parallel-jobs=${HIP_CLANG_NUM_PARALLEL_JOBS} -Wno-format-nonliteral")
++ set(HIP_CLANG_PARALLEL_BUILD_COMPILE_OPTIONS "-Wno-format-nonliteral -parallel-jobs=${HIP_CLANG_NUM_PARALLEL_JOBS}")
+ set(HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS "-parallel-jobs=${HIP_CLANG_NUM_PARALLEL_JOBS}")
+ else()
+ message("clang compiler doesn't support parallel jobs")
+@@ -232,6 +238,13 @@ elseif("${HIP_COMPILER}" STREQUAL "clang")
+ set(CMAKE_HIP_CREATE_SHARED_LIBRARY "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+ set(CMAKE_HIP_CREATE_SHARED_MODULE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <LINK_LIBRARIES> -shared" )
+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
++
++ if("${HIP_RUNTIME}" STREQUAL "rocclr")
++ if(TARGET host)
++ message(STATUS "host interface - found")
++ set(HIP_HOST_INTERFACE host)
++ endif()
++ endif()
+ endif()
+
+ ###############################################################################
+@@ -637,6 +650,8 @@ macro(HIP_ADD_EXECUTABLE hip_target)
+ endif()
+ endif()
+ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} ${HIP_CLANG_PATH} ${HIP_CLANG_PARALLEL_BUILD_LINK_OPTIONS} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
++ else()
++ set(CMAKE_HIP_LINK_EXECUTABLE "${HIP_HIPCC_CMAKE_LINKER_HELPER} <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+ endif()
+ if ("${_sources}" STREQUAL "")
+ add_executable(${hip_target} ${_cmake_options} ${_generated_files} "")
+@@ -644,6 +659,11 @@ macro(HIP_ADD_EXECUTABLE hip_target)
+ add_executable(${hip_target} ${_cmake_options} ${_generated_files} ${_sources})
+ endif()
+ set_target_properties(${hip_target} PROPERTIES LINKER_LANGUAGE HIP)
++ # Link with host
++ if (HIP_HOST_INTERFACE)
++ # hip rt should be rocclr, compiler should be clang
++ target_link_libraries(${hip_target} ${HIP_HOST_INTERFACE})
++ endif()
+ endmacro()
+
+ ###############################################################################
+@@ -662,6 +682,11 @@ macro(HIP_ADD_LIBRARY hip_target)
+ add_library(${hip_target} ${_cmake_options} ${_generated_files} ${_sources})
+ endif()
+ set_target_properties(${hip_target} PROPERTIES LINKER_LANGUAGE ${HIP_C_OR_CXX})
++ # Link with host
++ if (HIP_HOST_INTERFACE)
++ # hip rt should be rocclr, compiler should be clang
++ target_link_libraries(${hip_target} ${HIP_HOST_INTERFACE})
++ endif()
+ endmacro()
+
+ # vim: ts=4:sw=4:expandtab:smartindent
+--
+2.30.2
+
+
+From 66c79092ee9aabd8b76f2c510d6ac1310cf3646b Mon Sep 17 00:00:00 2001
+From: Pieter Ghysels <pghysels@lbl.gov>
+Date: Wed, 11 Aug 2021 15:45:04 -0700
+Subject: [PATCH 2/2] extra fix for HIP
+
+---
+ cmake/Modules/FindHIP/run_hipcc.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/Modules/FindHIP/run_hipcc.cmake b/cmake/Modules/FindHIP/run_hipcc.cmake
+index 63c7bb3..ce0b406 100644
+--- a/cmake/Modules/FindHIP/run_hipcc.cmake
++++ b/cmake/Modules/FindHIP/run_hipcc.cmake
+@@ -48,7 +48,7 @@ execute_process(COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --compiler OUTPUT_VARIABLE H
+ execute_process(COMMAND ${HIP_HIPCONFIG_EXECUTABLE} --runtime OUTPUT_VARIABLE HIP_RUNTIME OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT host_flag)
+ set(__CC ${HIP_HIPCC_EXECUTABLE})
+- if("${HIP_PLATFORM}" STREQUAL "hcc")
++ if("${HIP_PLATFORM}" STREQUAL "amd")
+ if("${HIP_COMPILER}" STREQUAL "hcc")
+ if(NOT "x${HCC_HOME}" STREQUAL "x")
+ set(ENV{HCC_HOME} ${HCC_HOME})
+--
+2.30.2
+
diff --git a/var/spack/repos/builtin/packages/su2/package.py b/var/spack/repos/builtin/packages/su2/package.py
index 3aa51e5828..fbb907262c 100644
--- a/var/spack/repos/builtin/packages/su2/package.py
+++ b/var/spack/repos/builtin/packages/su2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,18 @@ class Su2(MesonPackage):
the numerical solution of partial differential equations (PDE) and
performing PDE constrained optimization."""
+ maintainers = ['kjrstory']
homepage = "https://su2code.github.io"
url = "https://github.com/su2code/SU2/archive/v7.0.3.tar.gz"
+ version('7.2.0', sha256='e929f25dcafc93684df2fe0827e456118d24b8b12b0fb74444bffa9b3d0baca8')
+ version('7.1.1', sha256='6ed3d791209317d5916fd8bae54c288f02d6fe765062a4e3c73a1e1c7ea43542')
+ version('7.1.0', sha256='deb0abcb10e23a6a41a46c1a2117c4331d68cf97c2fa9c02e10e918973e1c0e7')
+ version('7.0.8', sha256='53b6d417e17ff4290a871257b2739a3d9bcd701d37c69e85397efedac93ba17f')
+ version('7.0.7', sha256='123c42f097c583a3d7b53123d79bf470f67a6481851fddb010ff590837da61d4')
+ version('7.0.6', sha256='5be22a992952b08f16bb80658f6cbe29c62a27e20236eccd175ca58dbc4ed27d')
+ version('7.0.5', sha256='3cb2b87ef6ad3d31011756ca1da068fc8172c0d2d1be902fbbd4800b50da28bd')
+ version('7.0.4', sha256='abeba82ff922e3b5980944d98eb3ee3fef51ce663c39224a52105798542ef29b')
version('7.0.3', sha256='7fc01deaad9baabbe0ccd162a4b565172d49e573e79abcb65433b51ff29bda06')
version('7.0.2', sha256='69e51d52c5a84fb572bd6a83faf8f9fd04471fbf7d5b70d967c7306c1d4e17d9')
version('7.0.1', sha256='eb0550c82ccaef8cb71e4a8775aa71d2020ef085ec3dd19dfafff5d301034f6f')
diff --git a/var/spack/repos/builtin/packages/sublime-text/package.py b/var/spack/repos/builtin/packages/sublime-text/package.py
index 942e62d311..52e6a0ad04 100644
--- a/var/spack/repos/builtin/packages/sublime-text/package.py
+++ b/var/spack/repos/builtin/packages/sublime-text/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class SublimeText(Package):
"""Sublime Text is a sophisticated text editor for code, markup and
prose."""
- homepage = "http://www.sublimetext.com/"
+ homepage = "https://www.sublimetext.com/"
url = "https://download.sublimetext.com/sublime_text_3_build_3211_x64.tar.bz2"
version('3.2.2.3211', sha256='0b3c8ca5e6df376c3c24a4b9ac2e3b391333f73b229bc6e87d0b4a5f636d74ee')
diff --git a/var/spack/repos/builtin/packages/subread/package.py b/var/spack/repos/builtin/packages/subread/package.py
index 5bd51ad889..bacc0295c4 100644
--- a/var/spack/repos/builtin/packages/subread/package.py
+++ b/var/spack/repos/builtin/packages/subread/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Subread(MakefilePackage):
"""The Subread software package is a tool kit for processing next-gen
@@ -14,6 +15,7 @@ class Subread(MakefilePackage):
homepage = "http://subread.sourceforge.net/"
url = "https://iweb.dl.sourceforge.net/project/subread/subread-1.5.2/subread-1.5.2-source.tar.gz"
+ version('2.0.2', sha256='0b64bd51f39f8d322c4594697fa5f0f64fbe60283113eadadff9f4268f897079')
version('2.0.0', sha256='bd7b45f7d8872b0f5db5d23a385059f21d18b49e432bcb6e3e4a879fe51b41a8')
version('1.6.4', sha256='b7bd0ee3b0942d791aecce6454d2f3271c95a010beeeff2daf1ff71162e43969')
version('1.6.2', sha256='77b4896c1c242967c5883a06c0a5576a5ff220008a12aa60af9669d2f9a87d7a')
diff --git a/var/spack/repos/builtin/packages/subversion/package.py b/var/spack/repos/builtin/packages/subversion/package.py
index 98874ee2bd..df9af3a49b 100644
--- a/var/spack/repos/builtin/packages/subversion/package.py
+++ b/var/spack/repos/builtin/packages/subversion/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -44,7 +44,7 @@ class Subversion(AutotoolsPackage):
# Installation has race cases.
parallel = False
- # http://www.linuxfromscratch.org/blfs/view/svn/general/subversion.html
+ # https://www.linuxfromscratch.org/blfs/view/svn/general/subversion.html
def configure_args(self):
spec = self.spec
args = [
diff --git a/var/spack/repos/builtin/packages/suite-sparse/fix_cuda11.patch b/var/spack/repos/builtin/packages/suite-sparse/fix_cuda11.patch
new file mode 100644
index 0000000000..4d9e0fc1e1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/suite-sparse/fix_cuda11.patch
@@ -0,0 +1,10 @@
+--- spack-src.orig/SuiteSparse_config/SuiteSparse_config.mk 2021-03-03 22:04:33.000000000 +0000
++++ spack-src/SuiteSparse_config/SuiteSparse_config.mk 2021-04-13 16:21:57.426166357 +0000
+@@ -259,7 +259,6 @@
+ MAGMA_LIB = -L/opt/magma-2.4.0/lib/ -lmagma
+ NVCC = $(CUDA_PATH)/bin/nvcc
+ NVCCFLAGS = -Xcompiler -fPIC -O3 \
+- -gencode=arch=compute_30,code=sm_30 \
+ -gencode=arch=compute_35,code=sm_35 \
+ -gencode=arch=compute_50,code=sm_50 \
+ -gencode=arch=compute_53,code=sm_53 \
diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py
index 0c75d8394f..0182658afc 100644
--- a/var/spack/repos/builtin/packages/suite-sparse/package.py
+++ b/var/spack/repos/builtin/packages/suite-sparse/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,9 @@ class SuiteSparse(Package):
url = 'https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v4.5.3.tar.gz'
git = 'https://github.com/DrTimothyAldenDavis/SuiteSparse.git'
+ version('5.10.1', sha256='acb4d1045f48a237e70294b950153e48dce5b5f9ca8190e86c2b8c54ce00a7ee')
+ version('5.10.0', sha256='4bcc974901c0173acf80c41ee0fd779eb7dce2871d4afa24a5d15b1a468f93e5')
+ version('5.9.0', sha256='7bdd4811f1cf0767c5fdb5e435817fdadee50b0acdb598f4882ae7b8291a7f24')
version('5.8.1', sha256='06726e471fbaa55f792578f9b4ab282ea9d008cf39ddcc3b42b73400acddef40')
version('5.8.0', sha256='94a9b7134eb4dd82b97f1a22a6b464feb81e73af2dcdf683c6f252285191df1d')
version('5.7.2', sha256='fe3bc7c3bd1efdfa5cffffb5cebf021ff024c83b5daf0ab445429d3d741bd3ad')
@@ -35,7 +38,7 @@ class SuiteSparse(Package):
variant('cuda', default=False, description='Build with CUDA')
variant('openmp', default=False, description='Build with OpenMP')
- depends_on('mpfr', type=('build', 'link'), when='@5.8.0:')
+ depends_on('mpfr@4.0.0:', type=('build', 'link'), when='@5.8.0:')
depends_on('gmp', type=('build', 'link'), when='@5.8.0:')
depends_on('blas')
depends_on('lapack')
@@ -59,6 +62,11 @@ class SuiteSparse(Package):
# Fixes 'libgraphblas.so.2.0.1: undefined reference to `__fpclassify''
patch('graphblas_libm_dep.patch', when='@5.2.0:5.2.99%clang')
+ # CUDA-11 dropped sm_30 code generation, remove hardcoded sm_30 from makefile
+ # open issue: https://github.com/DrTimothyAldenDavis/SuiteSparse/issues/56
+ # Tested only with 5.9.0, previous versions probably work too
+ patch('fix_cuda11.patch', when='@5.9.0:+cuda ^cuda@11:')
+
conflicts('%gcc@:4.8', when='@5.2.0:', msg='gcc version must be at least 4.9 for suite-sparse@5.2.0:')
def install(self, spec, prefix):
@@ -119,8 +127,8 @@ class SuiteSparse(Package):
# SuiteSparse defaults to using '-fno-common -fexceptions' in
# CFLAGS, but not all compilers use the same flags for these
# optimizations
- if any([x in spec
- for x in ('%apple-clang', '%clang', '%gcc', '%intel')]):
+ if any([x in spec for x in
+ ('%apple-clang', '%clang', '%gcc', '%intel', '%fj')]):
make_args += ['CFLAGS+=-fno-common -fexceptions']
elif '%pgi' in spec:
make_args += ['CFLAGS+=--exceptions']
diff --git a/var/spack/repos/builtin/packages/sumaclust/package.py b/var/spack/repos/builtin/packages/sumaclust/package.py
index fe23e8ecfe..eeabf61936 100644
--- a/var/spack/repos/builtin/packages/sumaclust/package.py
+++ b/var/spack/repos/builtin/packages/sumaclust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sumo/package.py b/var/spack/repos/builtin/packages/sumo/package.py
index 0fbd58303d..3d67eaeddd 100644
--- a/var/spack/repos/builtin/packages/sumo/package.py
+++ b/var/spack/repos/builtin/packages/sumo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Sumo(CMakePackage):
networks. It allows for intermodal simulation including pedestrians and
comes with a large set of tools for scenario creation."""
- homepage = "http://projects.eclipse.org/projects/technology.sumo"
+ homepage = "https://projects.eclipse.org/projects/technology.sumo"
url = "https://github.com/eclipse/sumo/archive/v1_5_0.tar.gz"
version('1.5.0', sha256='be6ba0361b487a5e71c81e60b4c07a67826d5e170500c10c37374c1086ac2cb6')
diff --git a/var/spack/repos/builtin/packages/sundials/0001-add-missing-README-to-examples-cvode-hip.patch b/var/spack/repos/builtin/packages/sundials/0001-add-missing-README-to-examples-cvode-hip.patch
new file mode 100644
index 0000000000..3825d85712
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sundials/0001-add-missing-README-to-examples-cvode-hip.patch
@@ -0,0 +1,22 @@
+From 5466501b51cc329aeea234f562aa85bedf870321 Mon Sep 17 00:00:00 2001
+From: "Cody J. Balos" <balos1@llnl.gov>
+Date: Mon, 8 Mar 2021 13:28:11 -0800
+Subject: [PATCH] add missing README to examples/cvode/hip
+
+---
+ examples/cvode/hip/README | 3 +++
+ 1 file changed, 3 insertions(+)
+ create mode 100644 examples/cvode/hip/README
+
+diff --git a/examples/cvode/hip/README b/examples/cvode/hip/README
+new file mode 100644
+index 000000000..8480fbf7d
+--- /dev/null
++++ b/examples/cvode/hip/README
+@@ -0,0 +1,3 @@
++List of Hip CVODE examples
++
++ cvAdvDiff_kry_hip : 2-D advection-diffusion (nonstiff)
+--
+2.29.1
+
diff --git a/var/spack/repos/builtin/packages/sundials/package.py b/var/spack/repos/builtin/packages/sundials/package.py
index d00bda0c03..cd65d6ac8c 100644
--- a/var/spack/repos/builtin/packages/sundials/package.py
+++ b/var/spack/repos/builtin/packages/sundials/package.py
@@ -1,14 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
-class Sundials(CMakePackage):
+class Sundials(CMakePackage, CudaPackage, ROCmPackage):
"""SUNDIALS (SUite of Nonlinear and DIfferential/ALgebraic equation
Solvers)"""
@@ -22,6 +23,9 @@ class Sundials(CMakePackage):
# Versions
# ==========================================================================
version('develop', branch='develop')
+ version('5.7.0', sha256='8d6dd094feccbb8d6ecc41340ec16a65fabac82ed4415023f6d7c1c2390ea2f3')
+ version('5.6.1', sha256='16b77999ec7e7f2157aa1d04ca1de4a2371ca8150e056d24951d0c58966f2a83')
+ version('5.6.0', sha256='95e4201912e150f29c6f6f7625de763385e2073dae7f929c4a544561ea29915d')
version('5.5.0', sha256='2a755e89aab96d2ff096a4e30bf00bb162e80be20e9e99f424dccfb249098237')
version('5.4.0', sha256='04d8a2ebe02cdaeef5a9e22ff7e3146bb563d8400f65772b6c7af80001413ffa')
version('5.3.0', sha256='88dff7e11a366853d8afd5de05bf197a8129a804d9d4461fb64297f1ef89bca7')
@@ -70,8 +74,6 @@ class Sundials(CMakePackage):
description='Enable OpenMP parallel vector')
variant('pthread', default=False,
description='Enable Pthreads parallel vector')
- variant('cuda', default=False,
- description='Enable CUDA vector and solvers')
variant('raja', default=False,
description='Enable RAJA vector')
@@ -104,18 +106,8 @@ class Sundials(CMakePackage):
description='Enable Fortran 2003 interface')
# Examples
- variant('examples-c', default=True,
- description='Enable C examples')
- variant('examples-cxx', default=False,
- description='Enable C++ examples')
- variant('examples-f77', default=True,
- description='Enable Fortran 77 examples')
- variant('examples-f90', default=False,
- description='Enable Fortran 90 examples')
- variant('examples-f2003', default=False,
- description='Enable Fortran 2003 examples')
- variant('examples-cuda', default=False,
- description='Enable CUDA examples')
+ variant('examples', default=True,
+ description='Enable examples')
variant('examples-install', default=True,
description='Install examples')
@@ -123,22 +115,24 @@ class Sundials(CMakePackage):
variant('generic-math', default=True,
description='Use generic (std-c) math libraries on unix systems')
+ # Monitoring
+ variant('monitoring', default=False,
+ description='Build with simulation monitoring capabilities')
+
# ==========================================================================
# Conflicts
# ==========================================================================
- # Options added after v2.6.2
- conflicts('+hypre', when='@:2.6.2')
- conflicts('+petsc', when='@:2.6.2')
-
- # Options added after v2.7.0
+ conflicts('+hypre', when='@:2.6.2')
+ conflicts('+petsc', when='@:2.6.2')
conflicts('+cuda', when='@:2.7.0')
conflicts('+raja', when='@:2.7.0')
conflicts('~int64', when='@:2.7.0')
- conflicts('+examples-cuda', when='@:2.7.0')
conflicts('+superlu-dist', when='@:4.1.0')
conflicts('+f2003', when='@:4.1.0')
conflicts('+trilinos', when='@:4.1.0')
+ conflicts('+monitoring', when='@:5.5.0')
+ conflicts('+rocm', when='@:5.6.0')
# External libraries incompatible with 64-bit indices
conflicts('+lapack', when='@3.0.0: +int64')
@@ -164,7 +158,7 @@ class Sundials(CMakePackage):
# ==========================================================================
# Build dependencies
- depends_on('cmake@3.5:', type='build')
+ depends_on('cmake@3.12:', type='build')
# MPI related dependencies
depends_on('mpi', when='+mpi')
@@ -173,14 +167,15 @@ class Sundials(CMakePackage):
depends_on('mpi', when='+superlu-dist')
# Other parallelism dependencies
- depends_on('cuda', when='+cuda')
- depends_on('raja +cuda ~openmp', when='+raja')
+ depends_on('raja', when='+raja')
+ depends_on('raja+cuda', when='+raja +cuda')
+ depends_on('raja+rocm', when='+raja +rocm')
# External libraries
depends_on('lapack', when='+lapack')
depends_on('suite-sparse', when='+klu')
- depends_on('petsc +mpi', when='+petsc')
- depends_on('hypre +mpi', when='+hypre')
+ depends_on('petsc+mpi', when='+petsc')
+ depends_on('hypre+mpi', when='+hypre')
depends_on('superlu-dist@6.1.1:', when='@:5.4.0 +superlu-dist')
depends_on('superlu-dist@6.3.0:', when='@5.5.0: +superlu-dist')
depends_on('trilinos+tpetra', when='+trilinos')
@@ -207,6 +202,9 @@ class Sundials(CMakePackage):
patch('test_nvector_parhyp.patch', when='@2.7.0:3.0.0')
patch('FindPackageMultipass.cmake.patch', when='@5.0.0')
patch('5.5.0-xsdk-patches.patch', when='@5.5.0')
+ patch('0001-add-missing-README-to-examples-cvode-hip.patch', when='@5.6.0:5.7.0')
+ # remove sundials_nvecopenmp target from ARKODE SuperLU_DIST example
+ patch('remove-links-to-OpenMP-vector.patch', when='@5.5.0:5.7.0')
# ==========================================================================
# SUNDIALS Settings
@@ -231,7 +229,7 @@ class Sundials(CMakePackage):
# SUNDIALS solvers
for pkg in self.sun_solvers:
- args.extend(['-DBUILD_%s=%s' % (pkg, on_off('+' + pkg))])
+ args.append(self.define_from_variant('BUILD_' + pkg, pkg))
# precision
args.extend([
@@ -248,13 +246,13 @@ class Sundials(CMakePackage):
args.extend(['-DSUNDIALS_INDEX_TYPE=int32_t'])
# Fortran interface
- args.extend(['-DF77_INTERFACE_ENABLE=%s' % on_off('+fcmix')])
- args.extend(['-DF2003_INTERFACE_ENABLE=%s' % on_off('+f2003')])
+ args.extend([self.define_from_variant('F77_INTERFACE_ENABLE', 'fcmix')])
+ args.extend([self.define_from_variant('F2003_INTERFACE_ENABLE', 'f2003')])
# library type
args.extend([
- '-DBUILD_SHARED_LIBS=%s' % on_off('+shared'),
- '-DBUILD_STATIC_LIBS=%s' % on_off('+static')
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('BUILD_STATIC_LIBS', 'static')
])
# generic (std-c) math libraries
@@ -262,23 +260,50 @@ class Sundials(CMakePackage):
'-DUSE_GENERIC_MATH=%s' % on_off('+generic-math')
])
+ # Monitoring
+ args.extend([
+ self.define_from_variant('SUNDIALS_BUILD_WITH_MONITORING', 'monitoring')
+ ])
+
# parallelism
args.extend([
- '-DMPI_ENABLE=%s' % on_off('+mpi'),
- '-DOPENMP_ENABLE=%s' % on_off('+openmp'),
- '-DPTHREAD_ENABLE=%s' % on_off('+pthread'),
- '-DCUDA_ENABLE=%s' % on_off('+cuda')
+ self.define_from_variant('MPI_ENABLE', 'mpi'),
+ self.define_from_variant('OPENMP_ENABLE', 'openmp'),
+ self.define_from_variant('PTHREAD_ENABLE', 'pthread')
])
+ if '+cuda' in spec:
+ args.append('-DCUDA_ENABLE=ON')
+ archs = spec.variants['cuda_arch'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ args.append('-DCMAKE_CUDA_ARCHITECTURES=%s' % arch_str)
+ else:
+ args.append('-DCUDA_ENABLE=OFF')
+
+ if '+rocm' in spec:
+ args.extend([
+ '-DCMAKE_CXX_COMPILER=%s' % spec['hip'].hipcc,
+ '-DENABLE_HIP=ON',
+ '-DHIP_PATH=%s' % spec['hip'].prefix,
+ '-DHIP_CLANG_INCLUDE_PATH=%s/include' % spec['llvm-amdgpu'].prefix,
+ '-DROCM_PATH=%s' % spec['llvm-amdgpu'].prefix
+ ])
+ archs = spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ args.append('-DAMDGPU_TARGETS=%s' % arch_str)
+ else:
+ args.append('-DENABLE_HIP=OFF')
+
# MPI support
if '+mpi' in spec:
- args.extend(['-DMPI_MPICC=%s' % spec['mpi'].mpicc])
- if 'examples-cxx' in spec:
- args.extend(['-DMPI_MPICXX=%s' % spec['mpi'].mpicxx])
- if ('+fcmix' in spec) and ('+examples-f77' in spec):
- args.extend(['-DMPI_MPIF77=%s' % spec['mpi'].mpif77])
- if ('+fcmix' in spec) and ('+examples-f90' in spec):
- args.extend(['-DMPI_MPIF90=%s' % spec['mpi'].mpifc])
+ args.extend([
+ '-DMPI_MPICC=%s' % spec['mpi'].mpicc,
+ '-DMPI_MPICXX=%s' % spec['mpi'].mpicxx,
+ '-DMPI_MPIF77=%s' % spec['mpi'].mpif77,
+ '-DMPI_MPIF90=%s' % spec['mpi'].mpifc
+ ])
# Building with Hypre
if '+hypre' in spec:
@@ -336,7 +361,7 @@ class Sundials(CMakePackage):
if '+raja' in spec:
args.extend([
'-DRAJA_ENABLE=ON',
- '-DRAJA_DIR=%s' % spec['raja'].prefix.share.raja.cmake
+ '-DRAJA_DIR=%s' % spec['raja'].prefix
])
else:
args.extend([
@@ -401,20 +426,18 @@ class Sundials(CMakePackage):
# Examples
if spec.satisfies('@3.0.0:'):
args.extend([
- '-DEXAMPLES_ENABLE_C=%s' % on_off('+examples-c'),
- '-DEXAMPLES_ENABLE_CXX=%s' % on_off('+examples-cxx'),
- '-DEXAMPLES_ENABLE_F77=%s' % on_off('+examples-f77'),
- '-DEXAMPLES_ENABLE_F90=%s' % on_off('+examples-f90'),
- '-DEXAMPLES_ENABLE_F2003=%s' % on_off('+examples-f2003'),
- '-DEXAMPLES_ENABLE_CUDA=%s' % on_off('+examples-cuda'),
- # option removed in 5.0.0
- '-DEXAMPLES_ENABLE_RAJA=%s' % on_off('+raja')
+ self.define_from_variant('EXAMPLES_ENABLE_C', 'examples'),
+ self.define_from_variant('EXAMPLES_ENABLE_CXX', 'examples'),
+ '-DEXAMPLES_ENABLE_CUDA=%s' % on_off('+examples+cuda'),
+ '-DEXAMPLES_ENABLE_F77=%s' % on_off('+examples+fcmix'),
+ '-DEXAMPLES_ENABLE_F90=%s' % on_off('+examples+fcmix'),
+ '-DEXAMPLES_ENABLE_F2003=%s' % on_off('+examples+f2003'),
])
else:
args.extend([
- '-DEXAMPLES_ENABLE=%s' % on_off('+examples-c'),
- '-DCXX_ENABLE=%s' % on_off('+examples-cxx'),
- '-DF90_ENABLE=%s' % on_off('+examples-f90')
+ self.define_from_variant('EXAMPLES_ENABLE', 'examples'),
+ self.define_from_variant('CXX_ENABLE', 'examples'),
+ '-DF90_ENABLE=%s' % on_off('+examples+fcmix')
])
args.extend([
@@ -558,17 +581,17 @@ class Sundials(CMakePackage):
filter_file(r'^CPP\s*=.*', self.compiler.cc,
os.path.join(dirname, filename), **kwargs)
- if ('+fcmix' in spec) and ('+examples-f77' in spec):
+ if ('+fcmix' in spec) and ('+examples' in spec):
for filename in f77_files:
filter_file(os.environ['F77'], self.compiler.f77,
os.path.join(dirname, filename), **kwargs)
- if ('+fcmix' in spec) and ('+examples-f90' in spec):
+ if ('+fcmix' in spec) and ('+examples' in spec):
for filename in f90_files:
filter_file(os.environ['FC'], self.compiler.fc,
os.path.join(dirname, filename), **kwargs)
- if ('+f2003' in spec) and ('+examples-f2003' in spec):
+ if ('+f2003' in spec) and ('+examples' in spec):
for filename in f2003_files:
filter_file(os.environ['FC'], self.compiler.fc,
os.path.join(dirname, filename), **kwargs)
@@ -603,3 +626,54 @@ class Sundials(CMakePackage):
recursive=True)
return libs or None # Raise an error if no libs are found
+
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
+ def test_install(self):
+ """Perform make test_install.
+ """
+ with working_dir(self.build_directory):
+ make("test_install")
+
+ @run_after('install')
+ def setup_build_tests(self):
+ """Copy the build test files after the package is installed to a
+ relative install test subdirectory for use during `spack test run`."""
+ # Now copy the relative files
+ self.cache_extra_test_sources(self.build_relpath)
+
+ # Ensure the path exists since relying on a relative path at the
+ # same level as the normal stage source path.
+ mkdirp(self.install_test_root)
+
+ @property
+ def build_relpath(self):
+ """Relative path to the cmake build subdirectory."""
+ return join_path('..', self.build_dirname)
+
+ @property
+ def _extra_tests_path(self):
+ return join_path(self.install_test_root, self.build_relpath)
+
+ def test(self):
+ """Run the smoke tests."""
+ if '+examples' not in self.spec:
+ print('Smoke tests were skipped: install with examples enabled')
+ return
+
+ self.run_test('examples/nvector/serial/test_nvector_serial',
+ options=['10', '0'],
+ work_dir=self._extra_tests_path)
+ if '+cuda' in self.spec:
+ self.run_test('examples/cvode/cuda/cvAdvDiff_ky_cuda',
+ work_dir=self._extra_tests_path)
+ self.run_test('examples/nvector/cuda/test_nvector_cuda',
+ options=['10', '0', '0'],
+ work_dir=self._extra_tests_path)
+ if '+rocm' in self.spec:
+ self.run_test('examples/cvode/hip/cvAdvDiff_kry_hip',
+ work_dir=self._extra_tests_path)
+ self.run_test('examples/nvector/hip/test_nvector_hip',
+ options=['10', '0', '0'],
+ work_dir=self._extra_tests_path)
+ return
diff --git a/var/spack/repos/builtin/packages/sundials/remove-links-to-OpenMP-vector.patch b/var/spack/repos/builtin/packages/sundials/remove-links-to-OpenMP-vector.patch
new file mode 100644
index 0000000000..5792fde936
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sundials/remove-links-to-OpenMP-vector.patch
@@ -0,0 +1,34 @@
+From 93f2a963e4c23c0acbcdbb349f157cf8c640ce14 Mon Sep 17 00:00:00 2001
+From: "David J. Gardner" <gardner48@llnl.gov>
+Date: Wed, 31 Mar 2021 20:59:30 -0700
+Subject: [PATCH] remove links to OpenMP vector
+
+---
+ examples/arkode/CXX_superludist/CMakeLists.txt | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/examples/arkode/CXX_superludist/CMakeLists.txt b/examples/arkode/CXX_superludist/CMakeLists.txt
+index 9c486b1cd..6de445851 100644
+--- a/examples/arkode/CXX_superludist/CMakeLists.txt
++++ b/examples/arkode/CXX_superludist/CMakeLists.txt
+@@ -45,7 +45,6 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+ set(ARKODE_LIB sundials_arkode)
+ set(SUNMAT_LIB sundials_sunmatrixslunrloc)
+ set(SUNLS_LIB sundials_sunlinsolsuperludist)
+-set(NVECP_LIB sundials_nvecopenmp)
+
+ # Set-up linker flags and link libraries
+ set(SUNDIALS_LIBS ${ARKODE_LIB} ${NVECP_LIB} ${SUNMAT_LIB} ${SUNLS_LIB} ${EXTRA_LINK_LIBS})
+@@ -102,8 +101,7 @@ if(EXAMPLES_INSTALL)
+ set(SOLVER "ARKODE")
+ string(CONCAT SUNDIALS_LIBS "-lsundials_arkode "
+ "-lsundials_sunmatrixslunrloc "
+- "-lsundials_sunlinsolsuperludist "
+- "-lsundials_nvecopenmp")
++ "-lsundials_sunlinsolsuperludist")
+
+ examples2string(ARKODE_examples EXAMPLES)
+
+--
+2.24.3 (Apple Git-128)
+
diff --git a/var/spack/repos/builtin/packages/superchic/package.py b/var/spack/repos/builtin/packages/superchic/package.py
new file mode 100644
index 0000000000..ad78f5a3cb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/superchic/package.py
@@ -0,0 +1,51 @@
+# Copyright 2013-2021 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 Superchic(MakefilePackage):
+ """SuperChic is a Fortran based Monte Carlo event generator for exclusive and
+ photon-initiated production in proton and heavy ion collisions.
+
+ A range of Standard Model final states are implemented, in most cases with
+ spin correlations where relevant, and a fully differential treatment of the soft
+ survival factor is given. Arbitrary user-defined histograms and cuts may be
+ made, as well as unweighted events in the HEPEVT, HEPMC and LHE formats.
+ """
+
+ homepage = "https://superchic.hepforge.org/"
+ url = "https://superchic.hepforge.org/superchic4.01.tar.gz"
+
+ version('4.01', sha256='2d690e1cdb0fd0ee345028b0d823a76c8d93156aaa0c9cd1ecb5f18cde75acd6')
+ version('3.06', sha256='17b4f56e85634f3c9708d5263772d7035fe4d7fb91a11bbffe889e0860efbd02')
+ version('3.05', sha256='032f5c784f284ca02003a990234b099f61cd125791d56715680cd342e55c7da1')
+
+ depends_on('lhapdf')
+ depends_on('apfel', when='@4.01:')
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('makefile')
+ makefile.filter('LHAPDFLIB = .*',
+ 'LHAPDFLIB = ' + self.spec['lhapdf'].prefix.lib)
+ if self.spec.satisfies('@4.01:'):
+ makefile.filter('APFELLIB = .*',
+ 'APFELLIB = ' + self.spec['apfel'].prefix.lib)
+
+ def build(self, spec, prefix):
+ make('PWD=' + self.build_directory)
+
+ def install(self, spec, prefix):
+ mkdirp(self.prefix.bin)
+ install_tree('bin', self.prefix.bin)
+
+ mkdirp(self.prefix.lib)
+ install_tree('lib', self.prefix.lib)
+
+ if self.spec.satisfies('@3.05:'):
+ mkdirp(join_path(self.prefix, 'src', 'inc'))
+ install_tree(join_path('src', 'inc'), join_path(self.prefix, 'src', 'inc'))
+ mkdirp(join_path(self.prefix, 'obj'))
+ install_tree('obj', join_path(self.prefix, 'obj'))
diff --git a/var/spack/repos/builtin/packages/superlu-dist/package.py b/var/spack/repos/builtin/packages/superlu-dist/package.py
index 0450347301..8f4a9dc260 100644
--- a/var/spack/repos/builtin/packages/superlu-dist/package.py
+++ b/var/spack/repos/builtin/packages/superlu-dist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,14 +10,13 @@ class SuperluDist(CMakePackage, CudaPackage):
"""A general purpose library for the direct solution of large, sparse,
nonsymmetric systems of linear equations on high performance machines."""
- homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/"
+ homepage = "https://crd-legacy.lbl.gov/~xiaoye/SuperLU/"
url = "https://github.com/xiaoyeli/superlu_dist/archive/v6.0.0.tar.gz"
git = "https://github.com/xiaoyeli/superlu_dist.git"
maintainers = ['xiaoye', 'gchavez2', 'balay', 'pghysels']
version('develop', branch='master')
- version('xsdk-0.2.0', tag='xsdk-0.2.0')
version('6.4.0', sha256='cb9c0b2ba4c28e5ed5817718ba19ae1dd63ccd30bc44c8b8252b54f5f04a44cc')
version('6.3.1', sha256='3787c2755acd6aadbb4d9029138c293a7570a2ed228806676edcc7e1d3f5a1d3')
version('6.3.0', sha256='daf3264706caccae2b8fd5a572e40275f1e128fa235cb7c21ee2f8051c11af95')
@@ -102,3 +101,53 @@ class SuperluDist(CMakePackage, CudaPackage):
if name == 'cflags' and '%pgi' not in self.spec:
flags.append('-std=c99')
return (None, None, flags)
+
+ examples_src_dir = 'EXAMPLE'
+ mk_hdr = 'make.inc'
+ mk_hdr_in = mk_hdr + '.in'
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.examples_src_dir, self.mk_hdr])
+
+ def test(self):
+ mk_file = join_path(self.install_test_root, self.mk_hdr)
+ # Replace 'SRC' with 'lib' in the library's path
+ filter_file(r'^(DSUPERLULIB.+)SRC(.+)', '\\1lib\\2', mk_file)
+ # Set library flags for all libraries superlu-dist depends on
+ filter_file(r'^LIBS.+\+=.+', '', mk_file)
+ filter_file(r'^LIBS[^\+]+=.+', 'LIBS = $(DSUPERLULIB)' +
+ ' {0}'.format(self.spec['blas'].libs.ld_flags) +
+ ' {0}'.format(self.spec['lapack'].libs.ld_flags) +
+ ' {0}'.format(self.spec['parmetis'].libs.ld_flags) +
+ ' {0}'.format(self.spec['metis'].libs.ld_flags) +
+ ' $(CUDALIBS)',
+ mk_file)
+ cuda_lib_opts = ''
+ if '+cuda' in self.spec:
+ cuda_lib_opts = ',-rpath,{0}'.format(
+ self.spec['cuda'].libs.directories[0])
+ # Set the rpath for all the libs
+ filter_file(r'^LOADOPTS.+', 'LOADOPTS = -Wl' +
+ ',-rpath,{0}'.format(self.prefix.lib) +
+ ',-rpath,{0}'.format(self.spec['blas'].prefix.lib) +
+ ',-rpath,{0}'.format(self.spec['lapack'].prefix.lib) +
+ ',-rpath,{0}'.format(self.spec['parmetis'].prefix.lib) +
+ ',-rpath,{0}'.format(self.spec['metis'].prefix.lib) +
+ cuda_lib_opts,
+ mk_file)
+
+ test_dir = join_path(self.install_test_root, self.examples_src_dir)
+ test_exe = 'pddrive'
+ with working_dir(test_dir, create=False):
+ make(test_exe)
+ # Smoke test input parameters: -r 2 -c 2 g20.rua
+ test_args = ['-n', '4', test_exe, '-r', '2', '-c', '2', 'g20.rua']
+ # Find the correct mpirun command
+ mpiexe_f = which('srun', 'mpirun', 'mpiexec')
+ if mpiexe_f:
+ self.run_test(mpiexe_f.command, test_args, work_dir='.',
+ purpose='superlu-dist smoke test')
+ make('clean')
diff --git a/var/spack/repos/builtin/packages/superlu-mt/package.py b/var/spack/repos/builtin/packages/superlu-mt/package.py
index b3595428ab..e82d1416cf 100644
--- a/var/spack/repos/builtin/packages/superlu-mt/package.py
+++ b/var/spack/repos/builtin/packages/superlu-mt/package.py
@@ -1,19 +1,20 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+from spack import *
+
class SuperluMt(Package):
"""SuperLU is a general purpose library for the direct solution of large,
sparse, nonsymmetric systems of linear equations on high performance
machines. SuperLU_MT is designed for shared memory parallel machines."""
- homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu_mt"
+ homepage = "https://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu_mt"
url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_mt_3.1.tar.gz"
version('3.1', sha256='407b544b9a92b2ed536b1e713e80f986824cf3016657a4bfc2f3e7d2a76ecab6')
diff --git a/var/spack/repos/builtin/packages/superlu/package.py b/var/spack/repos/builtin/packages/superlu/package.py
index fb41b4faf4..58081298be 100644
--- a/var/spack/repos/builtin/packages/superlu/package.py
+++ b/var/spack/repos/builtin/packages/superlu/package.py
@@ -1,48 +1,55 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 Superlu(Package):
+class Superlu(CMakePackage):
"""SuperLU is a general purpose library for the direct solution of large,
sparse, nonsymmetric systems of linear equations on high performance
machines. SuperLU is designed for sequential machines."""
- homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu"
- url = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_5.2.1.tar.gz"
+ homepage = "https://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu"
+ url = "https://github.com/xiaoyeli/superlu/archive/refs/tags/v5.2.2.tar.gz"
+ version('5.2.2', sha256='470334a72ba637578e34057f46948495e601a5988a602604f5576367e606a28c')
version('5.2.1', sha256='28fb66d6107ee66248d5cf508c79de03d0621852a0ddeba7301801d3d859f463')
- version('4.3', sha256='169920322eb9b9c6a334674231479d04df72440257c17870aaa0139d74416781')
+ version('4.3', sha256='169920322eb9b9c6a334674231479d04df72440257c17870aaa0139d74416781',
+ deprecated=True,
+ url='https://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_4.3.tar.gz')
+ version('4.2', sha256='5a06e19bf5a597405dfeea39fe92aa8c5dd41da73c72c7187755a75f581efb28',
+ deprecated=True,
+ url='https://crd-legacy.lbl.gov/~xiaoye/SuperLU/superlu_4.2.tar.gz')
variant('pic', default=True,
description='Build with position independent code')
- depends_on('cmake', when='@5.2.1:', type='build')
+ depends_on('cmake', when='@5:', type='build')
depends_on('blas')
+ conflicts('@:5.2.1', when='%apple-clang@12:',
+ msg='Older SuperLU is incompatible with newer compilers')
+
+ test_requires_compiler = True
# CMake installation method
- def install(self, spec, prefix):
- cmake_args = [
- '-Denable_blaslib=OFF',
- '-DBLAS_blas_LIBRARY={0}'.format(spec['blas'].libs.joined())
+ def cmake_args(self):
+ if self.version > Version('5.2.1'):
+ _blaslib_key = 'enable_internal_blaslib'
+ else:
+ _blaslib_key = 'enable_blaslib'
+ args = [
+ self.define(_blaslib_key, False),
+ self.define('CMAKE_INSTALL_LIBDIR', self.prefix.lib),
+ self.define_from_variant('CMAKE_POSITION_INDEPENDENT_CODE', 'pic'),
+ self.define('enable_tests', self.run_tests),
]
- if '+pic' in spec:
- cmake_args.extend([
- '-DCMAKE_POSITION_INDEPENDENT_CODE=ON'
- ])
-
- cmake_args.extend(std_cmake_args)
-
- with working_dir('spack-build', create=True):
- cmake('..', *cmake_args)
- make()
- make('install')
+ return args
# Pre-cmake installation method
- @when('@4.3')
- def install(self, spec, prefix):
+ @when("@:4.999")
+ def cmake(self, spec, prefix):
+ """Use autotools before version 5"""
config = []
# Define make.inc file
@@ -93,3 +100,87 @@ class Superlu(Package):
install_tree('lib', prefix.lib)
mkdir(prefix.include)
install(join_path('SRC', '*.h'), prefix.include)
+
+ examples_src_dir = 'EXAMPLE'
+ make_hdr_file = 'make.inc'
+
+ @run_after('install')
+ def cache_test_sources(self):
+ """Copy the example source files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ if self.version == Version('5.2.2'):
+ # Include dir was hardcoded in 5.2.2
+ filter_file(r'INCLUDEDIR = -I\.\./SRC',
+ 'INCLUDEDIR = -I' + self.prefix.include,
+ join_path(self.examples_src_dir, 'Makefile'))
+
+ self.cache_extra_test_sources(self.examples_src_dir)
+
+ def _generate_make_hdr_for_test(self):
+ config_args = []
+
+ # Define make.inc file
+ config_args.extend([
+ 'SuperLUroot = {0}'.format(self.prefix),
+ 'SUPERLULIB = {0}/libsuperlu.a'.format(self.prefix.lib),
+ 'BLASLIB = {0}'.format(self.spec['blas'].libs.ld_flags),
+ 'TMGLIB = libtmglib.a',
+ 'LIBS = $(SUPERLULIB) $(BLASLIB)',
+ 'ARCH = ar',
+ 'ARCHFLAGS = cr',
+ 'RANLIB = {0}'.format('ranlib' if which('ranlib') else 'echo'),
+ 'CC = {0}'.format(self.compiler.cc),
+ 'FORTRAN = {0}'.format(self.compiler.fc),
+ 'LOADER = {0}'.format(self.compiler.cc),
+ 'CFLAGS = -O3 -DNDEBUG -DUSE_VENDOR_BLAS -DPRNTlevel=0 -DAdd_',
+ 'NOOPTS = -O0'
+ ])
+
+ return config_args
+
+ # Pre-cmake configuration
+ @when('@:4.999')
+ def _generate_make_hdr_for_test(self):
+ config_args = []
+
+ # Define make.inc file
+ config_args.extend([
+ 'PLAT = _x86_64',
+ 'SuperLUroot = {0}'.format(self.prefix),
+ 'SUPERLULIB = {0}/libsuperlu_{1}.a'.format(self.prefix.lib,
+ self.spec.version),
+ 'BLASLIB = {0}'.format(self.spec['blas'].libs.ld_flags),
+ 'TMGLIB = libtmglib.a',
+ 'LIBS = $(SUPERLULIB) $(BLASLIB)',
+ 'ARCH = ar',
+ 'ARCHFLAGS = cr',
+ 'RANLIB = {0}'.format('ranlib' if which('ranlib') else 'echo'),
+ 'CC = {0}'.format(self.compiler.cc),
+ 'FORTRAN = {0}'.format(self.compiler.fc),
+ 'LOADER = {0}'.format(self.compiler.cc),
+ 'CFLAGS = -O3 -DNDEBUG -DUSE_VENDOR_BLAS -DPRNTlevel=0 -DAdd_',
+ 'NOOPTS = -O0'
+ ])
+
+ return config_args
+
+ def test(self):
+ config_args = self._generate_make_hdr_for_test()
+
+ # Write configuration options to make.inc file
+ make_file_inc = join_path(self.install_test_root, self.make_hdr_file)
+ with open(make_file_inc, 'w') as inc:
+ for option in config_args:
+ inc.write('{0}\n'.format(option))
+
+ args = []
+ if self.version < Version('5.2.2'):
+ args.append('HEADER=' + self.prefix.include)
+ args.append('superlu')
+
+ test_dir = join_path(self.install_test_root, self.examples_src_dir)
+ with working_dir(test_dir, create=False):
+ make(*args, parallel=False)
+ self.run_test('./superlu', purpose='Smoke test for superlu',
+ work_dir='.')
+ make('clean')
diff --git a/var/spack/repos/builtin/packages/supernova/package.py b/var/spack/repos/builtin/packages/supernova/package.py
index a83a14dfab..7e259c62af 100644
--- a/var/spack/repos/builtin/packages/supernova/package.py
+++ b/var/spack/repos/builtin/packages/supernova/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Supernova(Package):
"""Supernova is a software package for de novo assembly from Chromium
@@ -23,7 +24,7 @@ class Supernova(Package):
supernova yourself. Spack will search your current directory for the
download file. Alternatively, add this file yo a mirror so that Spack
can find it. For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://support.10xgenomics.com/de-novo-assembly/software/overview/latest/welcome"
manual_download = True
diff --git a/var/spack/repos/builtin/packages/sw4lite/package.py b/var/spack/repos/builtin/packages/sw4lite/package.py
index 815360c259..21a2a271e7 100644
--- a/var/spack/repos/builtin/packages/sw4lite/package.py
+++ b/var/spack/repos/builtin/packages/sw4lite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -81,9 +81,9 @@ class Sw4lite(MakefilePackage, CudaPackage):
def build(self, spec, prefix):
if '+cuda' in spec:
- make('-f', 'Makefile.cuda')
+ make('-f', 'Makefile.cuda', *self.build_targets)
else:
- make('-f', 'Makefile')
+ make('-f', 'Makefile', *self.build_targets)
def install(self, spec, prefix):
mkdir(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/swap-assembler/package.py b/var/spack/repos/builtin/packages/swap-assembler/package.py
index 04a6a63f9c..c5f9a53946 100644
--- a/var/spack/repos/builtin/packages/swap-assembler/package.py
+++ b/var/spack/repos/builtin/packages/swap-assembler/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/swarm/package.py b/var/spack/repos/builtin/packages/swarm/package.py
index 4f38c7522e..e41640f916 100644
--- a/var/spack/repos/builtin/packages/swarm/package.py
+++ b/var/spack/repos/builtin/packages/swarm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,11 @@ class Swarm(MakefilePackage):
homepage = "https://github.com/torognes/swarm"
url = "https://github.com/torognes/swarm/archive/v2.1.13.tar.gz"
+ version('3.0.0', sha256='b63761a9914ebf1fee14befaffd93af9c795b692c006c644d049a6d985b55810')
version('2.1.13', sha256='ec4b22cc1874ec6d2c89fe98e23a2fb713aec500bc4a784f0556389d22c02650')
+ conflicts('@2.1.13', when='target=aarch64:')
+
build_directory = 'src'
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/swfft/package.py b/var/spack/repos/builtin/packages/swfft/package.py
index ada58c5f19..40ec43c506 100644
--- a/var/spack/repos/builtin/packages/swfft/package.py
+++ b/var/spack/repos/builtin/packages/swfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/swftools/package.py b/var/spack/repos/builtin/packages/swftools/package.py
index 02a658599d..8e300554a8 100644
--- a/var/spack/repos/builtin/packages/swftools/package.py
+++ b/var/spack/repos/builtin/packages/swftools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/swiftsim/package.py b/var/spack/repos/builtin/packages/swiftsim/package.py
index c3c594f07e..8f61e35a45 100644
--- a/var/spack/repos/builtin/packages/swiftsim/package.py
+++ b/var/spack/repos/builtin/packages/swiftsim/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 llnl.util.tty as tty
+from spack import *
+
class Swiftsim(AutotoolsPackage):
"""SPH With Inter-dependent Fine-grained Tasking (SWIFT) provides
diff --git a/var/spack/repos/builtin/packages/swig/package.py b/var/spack/repos/builtin/packages/swig/package.py
index 87c92f483f..f8cc55ea46 100644
--- a/var/spack/repos/builtin/packages/swig/package.py
+++ b/var/spack/repos/builtin/packages/swig/package.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
-
from spack import *
@@ -21,6 +20,7 @@ class Swig(AutotoolsPackage, SourceforgePackage):
homepage = "http://www.swig.org"
sourceforge_mirror_path = "swig/swig-3.0.12.tar.gz"
+ maintainers = ['sethrj']
version('master', git='https://github.com/swig/swig.git')
version('4.0.2', sha256='d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc',
@@ -57,6 +57,8 @@ class Swig(AutotoolsPackage, SourceforgePackage):
build_directory = 'spack-build'
+ conflicts('%nvhpc', when='@:4.0.2')
+
@run_after('install')
def create_symlink(self):
# CMake compatibility: see https://github.com/spack/spack/pull/6240
@@ -67,3 +69,45 @@ class Swig(AutotoolsPackage, SourceforgePackage):
@when(_version)
def autoreconf(self, spec, prefix):
which('sh')('./autogen.sh')
+
+ @property
+ def _installed_exe(self):
+ return join_path(self.prefix, 'bin', 'swig')
+
+ def _test_version(self):
+ version = str(self.version)
+ if version.endswith('-fortran'):
+ version = version.replace('-', r'\+')
+ elif version in ('fortran', 'master'):
+ version = r'.*'
+
+ self.run_test(self._installed_exe,
+ '-version',
+ expected=[r'SWIG Version {0}'.format(version)],
+ purpose="test: version")
+
+ def _test_swiglib(self):
+ # Get SWIG's alleged path to library files
+ swig = Executable(self._installed_exe)
+ swiglib = swig('-swiglib', output=str).strip()
+
+ # Check that the lib dir exists
+ if not os.path.isdir(swiglib):
+ msg = "SWIG library does not exist at '{0}'".format(swiglib)
+ self.test_failures.append([None, msg])
+
+ # Check for existence of other critical SWIG library files
+ swigfile = join_path(swiglib, 'swig.swg')
+ if not os.path.exists(swigfile):
+ msg = "SWIG runtime does not exist at '{0}'".format(swigfile)
+ self.test_failures.append([None, msg])
+ if 'fortran' in str(self.version):
+ swigfile = join_path(swiglib, 'fortran', 'fortran.swg')
+ if not os.path.exists(swigfile):
+ msg = "SWIG+Fortran runtime does not exist at '{0}'".format(
+ swigfile)
+ self.test_failures.append([None, msg])
+
+ def test(self):
+ self._test_version()
+ self._test_swiglib()
diff --git a/var/spack/repos/builtin/packages/swipl/package.py b/var/spack/repos/builtin/packages/swipl/package.py
index da3e161c2c..ffe2258eae 100644
--- a/var/spack/repos/builtin/packages/swipl/package.py
+++ b/var/spack/repos/builtin/packages/swipl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/symengine/package.py b/var/spack/repos/builtin/packages/symengine/package.py
index a9c866edb7..6163feee43 100644
--- a/var/spack/repos/builtin/packages/symengine/package.py
+++ b/var/spack/repos/builtin/packages/symengine/package.py
@@ -1,20 +1,23 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Symengine(CMakePackage):
"""SymEngine is a fast symbolic manipulation library, written in C++."""
- homepage = "https://github.com/symengine/symengine"
+ homepage = "https://symengine.org"
url = "https://github.com/symengine/symengine/archive/v0.2.0.tar.gz"
git = "https://github.com/symengine/symengine.git"
+ maintainers = ['HaoZeke']
version('master', branch='master')
+ version('0.7.0', sha256='8b865bb72b71539d9cd2488a0468c6c3ea90cc606062a7880c3ff5af6abd74b1')
version('0.6.0', sha256='4d2caa86c03eaaa8ed004084d02f87b5c51b6229f8ba70d161227e22d6302f0a')
version('0.5.0', sha256='5d02002f00d16a0928d1056e6ecb8f34fd59f3bfd8ed0009a55700334dbae29b')
version('0.4.0', sha256='dd755901a9e2a49e53ba3bbe3f565f94265af05299e57a7b592186dd35916a1b')
@@ -64,15 +67,11 @@ class Symengine(CMakePackage):
'-DWITH_SYMENGINE_RCP:BOOL=ON',
'-DWITH_SYMENGINE_THREAD_SAFE:BOOL=%s' % (
'ON' if ('+thread_safe' or '+openmp') in spec else 'OFF'),
- '-DBUILD_TESTS:BOOL=%s' % (
- 'ON' if self.run_tests else 'OFF'),
+ self.define('BUILD_TESTS', self.run_tests),
'-DBUILD_BENCHMARKS:BOOL=ON',
- '-DWITH_LLVM:BOOL=%s' % (
- 'ON' if '+llvm' in spec else 'OFF'),
- '-DWITH_OPENMP:BOOL=%s' % (
- 'ON' if '+openmp' in spec else 'OFF'),
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
+ self.define_from_variant('WITH_LLVM', 'llvm'),
+ self.define_from_variant('WITH_OPENMP', 'openmp'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
])
if sys.platform == 'darwin':
@@ -89,10 +88,8 @@ class Symengine(CMakePackage):
])
else:
options.extend([
- '-DWITH_MPC:BOOL=%s' % (
- 'ON' if '+mpc' in spec else 'OFF'),
- '-DWITH_MPFR:BOOL=%s' % (
- 'ON' if '+mpfr' in spec else 'OFF'),
+ self.define_from_variant('WITH_MPC', 'mpc'),
+ self.define_from_variant('WITH_MPFR', 'mpfr'),
])
if '+flint' in spec:
options.extend([
diff --git a/var/spack/repos/builtin/packages/symlinks/package.py b/var/spack/repos/builtin/packages/symlinks/package.py
index f6e5ca4f2e..1893a3008f 100644
--- a/var/spack/repos/builtin/packages/symlinks/package.py
+++ b/var/spack/repos/builtin/packages/symlinks/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,14 @@ from spack import *
class Symlinks(MakefilePackage):
"""Scan or change symbolic links."""
- homepage = "http://ibiblio.org/pub/Linux/utils/file"
- url = "http://ibiblio.org/pub/Linux/utils/file/symlinks-1.4.tar.gz"
+ homepage = "https://ibiblio.org/pub/Linux/utils/file"
+ url = "https://ibiblio.org/pub/Linux/utils/file/symlinks-1.4.tar.gz"
- version('1.4', sha256='4818a3be253b53f2547fe51349652c87301794fc2ff4e3104850301ffe9843a0')
+ version('1.4', sha256='b0bb689dd0a2c46d9a7dd111b053707aba7b9cf29c4f0bad32984b14bdbe0399')
def edit(self, spec, prefix):
filter_file('/usr/local', prefix, 'Makefile', string=True)
+ filter_file('-o root -g root', '', 'Makefile')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/sympol/package.py b/var/spack/repos/builtin/packages/sympol/package.py
index 70e860953a..fda7f43aaa 100644
--- a/var/spack/repos/builtin/packages/sympol/package.py
+++ b/var/spack/repos/builtin/packages/sympol/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Sympol(CMakePackage):
"""SymPol is a C++ tool to work with symmetric polyhedra"""
- homepage = "http://www.math.uni-rostock.de/~rehn/software/sympol.html"
- url = "http://www.math.uni-rostock.de/~rehn/software/sympol-0.1.8.tar.gz"
+ homepage = "https://www.math.uni-rostock.de/~rehn/software/sympol.html"
+ url = "https://www.math.uni-rostock.de/~rehn/software/sympol-0.1.8.tar.gz"
version('0.1.8', sha256='8f4c013fa563e696fc8c27c408fd1f3d47783639815e8141e3a99826f1f3d54f')
diff --git a/var/spack/repos/builtin/packages/sysbench/package.py b/var/spack/repos/builtin/packages/sysbench/package.py
index 062d4fcf9b..a5e248b9ba 100644
--- a/var/spack/repos/builtin/packages/sysbench/package.py
+++ b/var/spack/repos/builtin/packages/sysbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/syscalc/package.py b/var/spack/repos/builtin/packages/syscalc/package.py
index 86a4cf75b6..a3c41aae41 100644
--- a/var/spack/repos/builtin/packages/syscalc/package.py
+++ b/var/spack/repos/builtin/packages/syscalc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,10 @@ class Syscalc(MakefilePackage):
url = "https://bazaar.launchpad.net/~mgtools/mg5amcnlo/SysCalc/tarball/17"
version('1.1.7', sha256='ac73df0f9f195eb62601fafc2eede3db17a562750f7971616870d6df4abd1b6c',
- url='https://bazaar.launchpad.net/~mgtools/mg5amcnlo/SysCalc/tarball/17')
+ url='https://bazaar.launchpad.net/~mgtools/mg5amcnlo/SysCalc/tarball/17',
+ extension='.tgz')
+
+ tags = ['hep']
depends_on('lhapdf@6:')
@@ -24,7 +27,12 @@ class Syscalc(MakefilePackage):
url = url.format(version)
return url
+ def build(self, spec, prefix):
+ with working_dir('mg5amcnlo/SysCalc'):
+ make('all')
+
def install(self, spec, prefix):
mkdirp(prefix.bin)
- install('sys_calc', prefix.bin)
- install_tree('include', prefix.include)
+ with working_dir('mg5amcnlo/SysCalc'):
+ install('sys_calc', prefix.bin)
+ install_tree('include', prefix.include)
diff --git a/var/spack/repos/builtin/packages/sysfsutils/package.py b/var/spack/repos/builtin/packages/sysfsutils/package.py
index 515294cdab..4c4f6df9a7 100644
--- a/var/spack/repos/builtin/packages/sysfsutils/package.py
+++ b/var/spack/repos/builtin/packages/sysfsutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/sysget/package.py b/var/spack/repos/builtin/packages/sysget/package.py
index d2af862f53..79331502b2 100644
--- a/var/spack/repos/builtin/packages/sysget/package.py
+++ b/var/spack/repos/builtin/packages/sysget/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Sysget(MakefilePackage):
"""sysget is a bridge that lets you use one syntax to every
diff --git a/var/spack/repos/builtin/packages/sysstat/package.py b/var/spack/repos/builtin/packages/sysstat/package.py
index 4d6ec48bc2..e66fb0580b 100644
--- a/var/spack/repos/builtin/packages/sysstat/package.py
+++ b/var/spack/repos/builtin/packages/sysstat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/systemc/package.py b/var/spack/repos/builtin/packages/systemc/package.py
new file mode 100644
index 0000000000..fdde362bb2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/systemc/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 Systemc(CMakePackage):
+ """SystemC: System level modeling, design exploration, performance modeling,
+ and more."""
+
+ homepage = "https://www.accellera.org/downloads/standards/systemc"
+ url = "https://accellera.org/images/downloads/standards/systemc/systemc-2.3.3.tar.gz"
+
+ maintainers = ['nicmcd']
+
+ version('2.3.3', sha256='5781b9a351e5afedabc37d145e5f7edec08f3fd5de00ffeb8fa1f3086b1f7b3f')
+
+ variant('cxxstd', values=('11', '14', '17', '20'), default='11',
+ description="C++ standard used during compilation")
+
+ def cmake_args(self):
+ cxxstd = self.spec.variants['cxxstd'].value
+ return [
+ self.define('CMAKE_CXX_STANDARD', cxxstd),
+ self.define('CMAKE_CXX_STANDARD_REQUIRED', 'TRUE'),
+ ]
diff --git a/var/spack/repos/builtin/packages/systemtap/package.py b/var/spack/repos/builtin/packages/systemtap/package.py
index 00491e8dc4..72cb6cd24f 100644
--- a/var/spack/repos/builtin/packages/systemtap/package.py
+++ b/var/spack/repos/builtin/packages/systemtap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,7 +23,10 @@ class Systemtap(AutotoolsPackage):
version('4.1', sha256='8efa1ee2b34f1c6b2f33a25313287d59c8ed1b00265e900aea874da8baca1e1d')
depends_on('gettext')
- depends_on('elfutils')
+ depends_on('elfutils@0.151:')
+ depends_on('sqlite')
+ depends_on('py-setuptools', type='build')
+ depends_on('python', type=('build', 'run'))
def configure_args(self):
args = ['LDFLAGS=-lintl']
diff --git a/var/spack/repos/builtin/packages/sz/package.py b/var/spack/repos/builtin/packages/sz/package.py
index c9cb86604f..9972aafbbe 100644
--- a/var/spack/repos/builtin/packages/sz/package.py
+++ b/var/spack/repos/builtin/packages/sz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,17 +10,13 @@ class Sz(CMakePackage):
"""Error-bounded Lossy Compressor for HPC Data"""
homepage = "https://szcompressor.org"
- url = "https://github.com/szcompressor/SZ/archive/v2.1.10.tar.gz"
+ url = "https://github.com/szcompressor/SZ/releases/download/v2.1.11/SZ-2.1.11.tar.gz"
git = "https://github.com/szcompressor/sz"
maintainers = ['disheng222', 'robertu94']
- def url_for_version(self, version):
- """provide url to ensure that download counting via github releases
- works accurately"""
- url = "https://github.com/szcompressor/SZ/releases/download/v{0}/SZ-{0}.tar.gz"
- return url.format(version)
-
version('master', branch='master')
+ version('2.1.12', sha256='3712b2cd7170d1511569e48a208f02dfb72ecd7ad053c321e2880b9083e150de')
+ version('2.1.11.1', sha256='e6fa5c969b012782b1e5e9fbd1cd7d1c0ace908d9ec982e78b2910ec5c2161ac')
version('2.1.11', sha256='85b8ef99344a3317ba9ee63ca4b9d99a51d1832d4d8880e01c7c56b3a69cacc9')
version('2.1.10', sha256='3aba7619bdb5412218f162696f946c9d3a3df5acf128ddc685b21e45c11f6ae3',
url="https://github.com/szcompressor/SZ/releases/download/v2.1.10/sz-2.1.10.tar.gz")
diff --git a/var/spack/repos/builtin/packages/tabix/package.py b/var/spack/repos/builtin/packages/tabix/package.py
index 2e358da82d..1d729a019e 100644
--- a/var/spack/repos/builtin/packages/tabix/package.py
+++ b/var/spack/repos/builtin/packages/tabix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tajo/package.py b/var/spack/repos/builtin/packages/tajo/package.py
index 5fb12d6bd3..6c25df2261 100644
--- a/var/spack/repos/builtin/packages/tajo/package.py
+++ b/var/spack/repos/builtin/packages/tajo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,7 +18,7 @@ class Tajo(Package):
and and its optimizer.
"""
- homepage = "http://tajo.apache.org/"
+ homepage = "https://tajo.apache.org/"
url = "https://www-eu.apache.org/dist/tajo/tajo-0.11.3/tajo-0.11.3.tar.gz"
list_url = "https://www-eu.apache.org/dist/tajo/"
list_depth = 1
diff --git a/var/spack/repos/builtin/packages/talass/package.py b/var/spack/repos/builtin/packages/talass/package.py
index 4633eb9cf5..b7a0315472 100644
--- a/var/spack/repos/builtin/packages/talass/package.py
+++ b/var/spack/repos/builtin/packages/talass/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -35,9 +35,10 @@ class Talass(CMakePackage):
args = []
if int(variants['local'].value) > int(variants['global'].value):
- raise InstallError('The global index space (%d bits) must be at least as large\
- as the local index space (% bits)' % (variants['global'].value,
- variants['local'].value))
+ msg = ('The global index space (%d bits) must be at least as '
+ 'large as the local index space (% bits)')
+ raise InstallError(
+ msg % (variants['global'].value, variants['local'].value))
if variants['precision'].value == '32':
args.append('-DFUNCTION_TYPE=float')
diff --git a/var/spack/repos/builtin/packages/talloc/package.py b/var/spack/repos/builtin/packages/talloc/package.py
index df28b55527..dd05b19f3f 100644
--- a/var/spack/repos/builtin/packages/talloc/package.py
+++ b/var/spack/repos/builtin/packages/talloc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tangram/package.py b/var/spack/repos/builtin/packages/tangram/package.py
index 6f65dba55f..265cc11574 100644
--- a/var/spack/repos/builtin/packages/tangram/package.py
+++ b/var/spack/repos/builtin/packages/tangram/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,10 +14,11 @@ class Tangram(CMakePackage):
homepage = "https://portage.lanl.gov"
git = "https://github.com/laristra/tangram.git"
- url = "https://github.com/laristra/tangram/releases/download/1.0.1/tangram-1.0.1.tar.gz"
+ url = "https://github.com/laristra/tangram/releases/download/1.0.5/tangram-1.0.5.tar.gz"
maintainers = ['raovgarimella']
+ version('1.0.5', sha256='4fa61d5fecd67215237ab3df8fe64bc6c4d018b22313f2174923486026e93e53')
version('1.0.1', sha256='8f2f8c01bb2d726b0f64e5a5bc3aa2bd8057ccaee7a29c68f1439d16e39aaa90')
version('master', branch='master', submodules=True)
@@ -54,7 +55,6 @@ class Tangram(CMakePackage):
depends_on('wonton+kokkos', when='+kokkos')
depends_on('wonton+cuda', when='+cuda')
depends_on('wonton+openmp', when='+openmp')
- depends_on('wonton+cuda', when='+cuda')
def cmake_args(self):
options = []
diff --git a/var/spack/repos/builtin/packages/tantan/package.py b/var/spack/repos/builtin/packages/tantan/package.py
index d9a8847635..c24550a532 100644
--- a/var/spack/repos/builtin/packages/tantan/package.py
+++ b/var/spack/repos/builtin/packages/tantan/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tar/nvhpc.patch b/var/spack/repos/builtin/packages/tar/nvhpc-1.30.patch
index ecd56b72e1..ecd56b72e1 100644
--- a/var/spack/repos/builtin/packages/tar/nvhpc.patch
+++ b/var/spack/repos/builtin/packages/tar/nvhpc-1.30.patch
diff --git a/var/spack/repos/builtin/packages/tar/nvhpc-1.34.patch b/var/spack/repos/builtin/packages/tar/nvhpc-1.34.patch
new file mode 100644
index 0000000000..9f8d037d3c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tar/nvhpc-1.34.patch
@@ -0,0 +1,35 @@
+--- a/gnu/xalloc-oversized.h
++++ b/gnu/xalloc-oversized.h
+@@ -41,10 +41,10 @@
+ positive and N must be nonnegative. This is a macro, not a
+ function, so that it works correctly even when SIZE_MAX < N. */
+
+-#if 7 <= __GNUC__ && !defined __clang__
++#if 7 <= __GNUC__ && !defined __clang__ && !defined __NVCOMPILER
+ # define xalloc_oversized(n, s) \
+ __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1)
+-#elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__
++#elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ && !defined __NVCOMPILER
+ # define xalloc_oversized(n, s) \
+ (__builtin_constant_p (n) && __builtin_constant_p (s) \
+ ? __xalloc_oversized (n, s) \
+--- a/gnu/intprops.h
++++ b/gnu/intprops.h
+@@ -228,7 +228,7 @@
+ (A, B, P) work when P is non-null. */
+ /* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x,
+ see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98269>. */
+-#if 7 <= __GNUC__ && !defined __ICC
++#if 7 <= __GNUC__ && !defined __ICC && !defined __NVCOMPILER
+ # define _GL_HAS_BUILTIN_ADD_OVERFLOW 1
+ #elif defined __has_builtin
+ # define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow)
+@@ -246,7 +246,7 @@
+
+ /* True if __builtin_add_overflow_p (A, B, C) works, and similarly for
+ __builtin_sub_overflow_p and __builtin_mul_overflow_p. */
+-#if defined __clang__ || defined __ICC
++#if defined __clang__ || defined __ICC || defined __NVCOMPILER
+ /* Clang 11 lacks __builtin_mul_overflow_p, and even if it did it
+ would presumably run afoul of Clang bug 16404. ICC 2021.1's
+ __builtin_add_overflow_p etc. are not treated as integral constant
diff --git a/var/spack/repos/builtin/packages/tar/nvhpc-long-width.patch b/var/spack/repos/builtin/packages/tar/nvhpc-long-width.patch
new file mode 100644
index 0000000000..9e7378a2f4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tar/nvhpc-long-width.patch
@@ -0,0 +1,17 @@
+--- a/gnu/regex_internal.h 2020-08-21 09:14:20.039942370 -0700
++++ b/gnu/regex_internal.h 2020-08-21 10:06:57.840331452 -0700
+@@ -35,6 +35,14 @@
+ #include <intprops.h>
+ #include <verify.h>
+
++#ifndef __LONG_WIDTH__
++#if LONG_WIDTH
++#define __LONG_WIDTH__ LONG_WIDTH
++#else
++#define __LONG_WIDTH__ __WORDSIZE
++#endif
++#endif
++
+ #if defined DEBUG && DEBUG != 0
+ # include <assert.h>
+ # define DEBUG_ASSERT(x) assert (x)
diff --git a/var/spack/repos/builtin/packages/tar/package.py b/var/spack/repos/builtin/packages/tar/package.py
index 156476ccd4..58e4de1877 100644
--- a/var/spack/repos/builtin/packages/tar/package.py
+++ b/var/spack/repos/builtin/packages/tar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,7 @@ class Tar(AutotoolsPackage, GNUMirrorPackage):
executables = [r'^tar$']
+ version('1.34', sha256='03d908cf5768cfe6b7ad588c921c6ed21acabfb2b79b788d1330453507647aed')
version('1.32', sha256='b59549594d91d84ee00c99cf2541a3330fed3a42c440503326dab767f2fbb96c')
version('1.31', sha256='b471be6cb68fd13c4878297d856aebd50551646f4e3074906b1a74549c40d5a2')
version('1.30', sha256='4725cc2c2f5a274b12b39d1f78b3545ec9ebb06a6e48e8845e1995ac8513b088')
@@ -30,7 +31,12 @@ class Tar(AutotoolsPackage, GNUMirrorPackage):
patch('se-selinux.patch', when='@:1.29')
patch('argp-pgi.patch', when='@:1.29')
patch('gnutar-configure-xattrs.patch', when='@1.28')
- patch('nvhpc.patch', when='%nvhpc')
+ # The NVIDIA compilers do not currently support some GNU builtins.
+ # Detect this case and use the fallback path.
+ patch('nvhpc-1.30.patch', when='@1.30:1.32 %nvhpc')
+ patch('nvhpc-1.34.patch', when='@1.34 %nvhpc')
+ # Workaround bug where __LONG_WIDTH__ is not defined
+ patch('nvhpc-long-width.patch', when='@1.34 %nvhpc')
@classmethod
def determine_version(cls, exe):
diff --git a/var/spack/repos/builtin/packages/targetp/package.py b/var/spack/repos/builtin/packages/targetp/package.py
index 7d691f2fc7..c82c69d5ce 100644
--- a/var/spack/repos/builtin/packages/targetp/package.py
+++ b/var/spack/repos/builtin/packages/targetp/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Targetp(Package):
"""TargetP predicts the subcellular location of eukaryotic protein sequences.
@@ -14,9 +15,9 @@ class Targetp(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
- homepage = "http://www.cbs.dtu.dk/services/TargetP/"
+ homepage = "https://www.cbs.dtu.dk/services/TargetP/"
url = "file://{0}/targetp-1.1b.Linux.tar.gz".format(os.getcwd())
manual_download = True
diff --git a/var/spack/repos/builtin/packages/task/package.py b/var/spack/repos/builtin/packages/task/package.py
index 4d1d54565c..bfd2f24f51 100644
--- a/var/spack/repos/builtin/packages/task/package.py
+++ b/var/spack/repos/builtin/packages/task/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,14 +8,14 @@ from spack import *
class Task(CMakePackage):
"""Feature-rich console based todo list manager"""
- homepage = "http://www.taskwarrior.org"
- url = "http://taskwarrior.org/download/task-2.4.4.tar.gz"
+ homepage = "https://www.taskwarrior.org"
+ url = "https://taskwarrior.org/download/task-2.4.4.tar.gz"
version('2.5.1', sha256='d87bcee58106eb8a79b850e9abc153d98b79e00d50eade0d63917154984f2a15')
version('2.4.4', sha256='7ff406414e0be480f91981831507ac255297aab33d8246f98dbfd2b1b2df8e3b')
depends_on('cmake@2.8:', type='build')
depends_on('gnutls')
- depends_on('libuuid')
+ depends_on('uuid')
conflicts('%gcc@:4.7')
diff --git a/var/spack/repos/builtin/packages/taskd/package.py b/var/spack/repos/builtin/packages/taskd/package.py
index 1456d4cabb..1493e89199 100644
--- a/var/spack/repos/builtin/packages/taskd/package.py
+++ b/var/spack/repos/builtin/packages/taskd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,12 @@ from spack import *
class Taskd(CMakePackage):
"""TaskWarrior task synchronization daemon"""
- homepage = "http://www.taskwarrior.org"
- url = "http://taskwarrior.org/download/taskd-1.1.0.tar.gz"
+ homepage = "https://www.taskwarrior.org"
+ url = "https://taskwarrior.org/download/taskd-1.1.0.tar.gz"
version('1.1.0', sha256='7b8488e687971ae56729ff4e2e5209ff8806cf8cd57718bfd7e521be130621b4')
- depends_on('libuuid')
+ depends_on('uuid')
depends_on('gnutls')
depends_on('cmake@2.8:', type='build')
diff --git a/var/spack/repos/builtin/packages/taskflow/package.py b/var/spack/repos/builtin/packages/taskflow/package.py
index 5ebc0434da..53862cc6ab 100644
--- a/var/spack/repos/builtin/packages/taskflow/package.py
+++ b/var/spack/repos/builtin/packages/taskflow/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tasmanian/package.py b/var/spack/repos/builtin/packages/tasmanian/package.py
index a4aa94056a..c57b80bdad 100644
--- a/var/spack/repos/builtin/packages/tasmanian/package.py
+++ b/var/spack/repos/builtin/packages/tasmanian/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,19 +6,20 @@
from spack import *
-class Tasmanian(CMakePackage):
+class Tasmanian(CMakePackage, CudaPackage, ROCmPackage):
"""The Toolkit for Adaptive Stochastic Modeling and Non-Intrusive
ApproximatioN is a robust library for high dimensional integration and
interpolation as well as parameter calibration."""
homepage = 'http://tasmanian.ornl.gov'
- url = 'https://github.com/ORNL/TASMANIAN/archive/v7.1.tar.gz'
+ url = 'https://github.com/ORNL/TASMANIAN/archive/v7.5.tar.gz'
git = 'https://github.com/ORNL/TASMANIAN.git'
maintainers = ['mkstoyanov']
version('develop', branch='master')
+ version('7.5', sha256='d621bd36dced4db86ef638693ba89b336762e7a3d7fedb3b5bcefb03390712b3')
version('7.3', sha256='5bd1dd89cc5c84506f6900b6569b17e50becd73eb31ec85cfa11d6f1f912c4fa')
version('7.1', sha256='9c24a591506a478745b802f1fa5c557da7bc80b12d8070855de6bc7aaca7547a')
version('7.0', sha256='4094ba4ee2f1831c575d00368c8471d3038f813398be2e500739cef5c7c4a47b') # use for xsdk-0.5.0
@@ -26,7 +27,7 @@ class Tasmanian(CMakePackage):
version('5.1', sha256='b0c1be505ce5f8041984c63edca9100d81df655733681858f5cc10e8c0c72711')
version('5.0', sha256='2540bb63dea987ab205f7b375aff41f320b1de9bd7f1d1064ef96b22eeda1251',
- url='http://tasmanian.ornl.gov/documents/Tasmanian_v5.0.zip')
+ url='https://tasmanian.ornl.gov/documents/Tasmanian_v5.0.zip')
variant('xsdkflags', default=False,
description='enable XSDK defaults for Tasmanian')
@@ -44,6 +45,9 @@ class Tasmanian(CMakePackage):
variant('cuda', default=False,
description='add CUDA support to Tasmanian')
+ variant('rocm', default=False,
+ description='add ROCm support to Tasmanian')
+
variant('magma', default=False,
description='add UTK MAGMA support to Tasmanian')
@@ -74,12 +78,19 @@ class Tasmanian(CMakePackage):
depends_on('cuda@8.0.61:', when='+cuda', type=('build', 'run'))
depends_on('cuda@8.0.61:', when='+magma', type=('build', 'run'))
+ depends_on('hip@3.8:', when='+rocm', type=('build', 'run'))
+ depends_on('rocblas@3.8:', when='+rocm', type=('build', 'run'))
+ depends_on('rocsparse@3.8:', when='+rocm', type=('build', 'run'))
+ depends_on('rocsolver@3.8:', when='+rocm', type=('build', 'run'))
+
depends_on('magma@2.4.0:', when='+magma @6.0:', type=('build', 'run'))
depends_on('magma@2.5.0:', when='+magma @7.0:', type=('build', 'run'))
conflicts('-cuda', when='+magma') # currently MAGMA only works with CUDA
+ conflicts('+cuda', when='+rocm') # can pick CUDA or ROCm, not both
# old versions
+ conflicts('+rocm', when='@:7.3') # ROCm was added in 7.3, tested in 7.5
conflicts('+magma', when='@:5.1') # magma does not work prior to 6.0
conflicts('+mpi', when='@:5.1') # MPI is broken prior to 6.0
conflicts('+xsdkflags', when='@:5.1') # 6.0 is the first version included in xSDK
@@ -88,6 +99,11 @@ class Tasmanian(CMakePackage):
patch('addons70.patch', when='@7.0')
patch('packageconf70.patch', when='@7.0')
+ def setup_build_environment(self, env):
+ # needed for the hipcc compiler
+ if "+rocm" in self.spec:
+ env.set('CXX', self.spec['hip'].hipcc)
+
def cmake_args(self):
spec = self.spec
@@ -95,20 +111,13 @@ class Tasmanian(CMakePackage):
if '+xsdkflags' in spec and spec.satisfies('@:7.1'):
args = [
'-DUSE_XSDK_DEFAULTS:BOOL=ON',
- '-DXSDK_ENABLE_PYTHON:BOOL={0}'.format(
- 'ON' if '+python' in spec else 'OFF'),
- '-DTPL_ENABLE_MPI:BOOL={0}'.format(
- 'ON' if '+mpi' in spec else 'OFF'),
- '-DXSDK_ENABLE_OPENMP:BOOL={0}'.format(
- 'ON' if '+openmp' in spec else 'OFF'),
- '-DTPL_ENABLE_BLAS:BOOL={0}'.format(
- 'ON' if '+blas' in spec else 'OFF'),
- '-DXSDK_ENABLE_CUDA:BOOL={0}'.format(
- 'ON' if '+cuda' in spec else 'OFF'),
- '-DTPL_ENABLE_MAGMA:BOOL={0}'.format(
- 'ON' if '+magma' in spec else 'OFF'),
- '-DXSDK_ENABLE_FORTRAN:BOOL={0}'.format(
- 'ON' if '+fortran' in spec else 'OFF'), ]
+ self.define_from_variant('XSDK_ENABLE_PYTHON', 'python'),
+ self.define_from_variant('TPL_ENABLE_MPI', 'mpi'),
+ self.define_from_variant('XSDK_ENABLE_OPENMP', 'openmp'),
+ self.define_from_variant('TPL_ENABLE_BLAS', 'blas'),
+ self.define_from_variant('XSDK_ENABLE_CUDA', 'cuda'),
+ self.define_from_variant('TPL_ENABLE_MAGMA', 'magma'),
+ self.define_from_variant('XSDK_ENABLE_FORTRAN', 'fortran'), ]
else:
args = [
self.define_from_variant('Tasmanian_ENABLE_OPENMP', 'openmp'),
@@ -116,10 +125,17 @@ class Tasmanian(CMakePackage):
self.define_from_variant('Tasmanian_ENABLE_PYTHON', 'python'),
self.define_from_variant('Tasmanian_ENABLE_MPI', 'mpi'),
self.define_from_variant('Tasmanian_ENABLE_CUDA', 'cuda'),
+ self.define_from_variant('Tasmanian_ENABLE_HIP', 'rocm'),
self.define_from_variant('Tasmanian_ENABLE_MAGMA', 'magma'),
self.define_from_variant('Tasmanian_ENABLE_FORTRAN',
'fortran'), ]
+ if spec.satisfies('+blas'):
+ args.append('-DBLAS_LIBRARIES={0}'.format(spec['blas'].libs.joined(';')))
+ args.append(
+ '-DLAPACK_LIBRARIES={0}'.format(spec['lapack'].libs.joined(';'))
+ )
+
if spec.satisfies('+python'):
args.append('-DPYTHON_EXECUTABLE:FILEPATH={0}'.format(
self.spec['python'].command.path))
@@ -127,7 +143,6 @@ class Tasmanian(CMakePackage):
# _CUBLAS and _CUDA were separate options prior to 6.0
# skipping _CUBLAS leads to peformance regression
if spec.satisfies('@:5.1'):
- args.append('-DTasmanian_ENABLE_CUBLAS={0}'.format(
- 'ON' if '+cuda' in spec else 'OFF'))
+ args.append(self.define_from_variant('Tasmanian_ENABLE_CUBLAS', 'cuda'))
return args
diff --git a/var/spack/repos/builtin/packages/tassel/package.py b/var/spack/repos/builtin/packages/tassel/package.py
index 7de1648af4..51d788934a 100644
--- a/var/spack/repos/builtin/packages/tassel/package.py
+++ b/var/spack/repos/builtin/packages/tassel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Tassel(Package):
"""TASSEL is a software package to evaluate traits associations,
evolutionary patterns, and linkage disequilibrium."""
- homepage = "http://www.maizegenetics.net/tassel"
+ homepage = "https://www.maizegenetics.net/tassel"
git = "https://bitbucket.org/tasseladmin/tassel-5-standalone.git"
version('2017-07-22', commit='ae96ae75c3c9a9e8026140b6c775fa4685bdf531')
diff --git a/var/spack/repos/builtin/packages/tau/package.py b/var/spack/repos/builtin/packages/tau/package.py
index 331f88861c..b9da99973b 100644
--- a/var/spack/repos/builtin/packages/tau/package.py
+++ b/var/spack/repos/builtin/packages/tau/package.py
@@ -1,16 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 fnmatch
import glob
+import os
import platform
import sys
+
from llnl.util.filesystem import join_path
+from spack import *
+
class Tau(Package):
"""A portable profiling and tracing toolkit for performance
@@ -19,11 +21,12 @@ class Tau(Package):
"""
maintainers = ['wspear', 'eugeneswalker', 'khuck', 'sameershende']
- homepage = "http://www.cs.uoregon.edu/research/tau"
+ homepage = "https://www.cs.uoregon.edu/research/tau"
url = "https://www.cs.uoregon.edu/research/tau/tau_releases/tau-2.30.tar.gz"
git = "https://github.com/UO-OACISS/tau2"
version('master', branch='master')
+ version('2.30.1', sha256='9c20ca1b4f4e80d885f24491cee598068871f0e9dd67906a5e47e4b4147d08fc')
version('2.30', sha256='e581c33e21488d69839a00d97fd4451ea579f47249b2750d5c36bea773041eaf')
version('2.29.1', sha256='4195a0a236bba510ab50a93e13c7f00d9472e8bc46c91de3f0696112a34e34e2')
version('2.29', sha256='146be769a23c869a7935e8fa5ba79f40ba36b9057a96dda3be6730fc9ca86086')
@@ -56,7 +59,7 @@ class Tau(Package):
variant('papi', default=darwin_default, description='Activates Performance API')
variant('binutils', default=True, description='Activates support of BFD GNU Binutils')
variant('libdwarf', default=darwin_default, description='Activates support of libdwarf')
- variant('libelf', default=darwin_default, description='Activates support of libelf')
+ variant('elf', default=darwin_default, description='Activates support of elf')
variant('libunwind', default=darwin_default, description='Activates support of libunwind')
variant('otf2', default=True, description='Activates support of Open Trace Format (OTF)')
variant('pdt', default=True, description='Use PDT for source code instrumentation')
@@ -92,9 +95,9 @@ class Tau(Package):
depends_on('likwid', when='+likwid')
depends_on('papi', when='+papi')
depends_on('libdwarf', when='+libdwarf')
- depends_on('libelf', when='+libdwarf')
+ depends_on('elf', when='+elf')
# TAU requires the ELF header support, libiberty and demangle.
- depends_on('binutils@:2.33.1+libiberty+headers', when='+binutils')
+ depends_on('binutils@:2.33.1+libiberty+headers+plugins', when='+binutils')
depends_on('python@2.7:', when='+python')
depends_on('libunwind', when='+libunwind')
depends_on('mpi', when='+mpi', type=('build', 'run', 'link'))
@@ -105,7 +108,7 @@ class Tau(Package):
depends_on('hwloc')
# Elf only required from 2.28.1 on
- conflicts('+libelf', when='@:2.28.0')
+ conflicts('+elf', when='@:2.28.0')
conflicts('+libdwarf', when='@:2.28.0')
# ADIOS2, SQLite only available from 2.29.1 on
@@ -114,6 +117,10 @@ class Tau(Package):
patch('unwind.patch', when="@2.29.0")
+ filter_compiler_wrappers('Makefile', relative_root='include')
+ filter_compiler_wrappers('Makefile.tau*', relative_root='lib')
+ filter_compiler_wrappers('Makefile.tau*', relative_root='lib64')
+
def set_compiler_options(self, spec):
useropt = ["-O2 -g", self.rpath_args]
@@ -134,8 +141,8 @@ class Tau(Package):
compiler_path = os.path.dirname(self.compiler.cc)
os.environ['PATH'] = ':'.join([compiler_path, os.environ['PATH']])
- compiler_options = ['-c++=%s' % os.path.basename(self.compiler.cxx),
- '-cc=%s' % os.path.basename(self.compiler.cc)]
+ compiler_options = ['-c++=%s' % self.compiler.cxx_names[0],
+ '-cc=%s' % self.compiler.cc_names[0]]
if '+fortran' in spec and self.compiler.fc:
compiler_options.append('-fortran=%s' % self.compiler.fc_names[0])
@@ -178,6 +185,8 @@ class Tau(Package):
if '+pdt' in spec:
options.append("-pdt=%s" % spec['pdt'].prefix)
+ if spec['pdt'].satisfies("%intel"):
+ options.append("-pdt_c++=icpc")
if '+scorep' in spec:
options.append("-scorep=%s" % spec['scorep'].prefix)
@@ -209,8 +218,8 @@ class Tau(Package):
if '+libdwarf' in spec:
options.append("-dwarf=%s" % spec['libdwarf'].prefix)
- if '+libelf' in spec:
- options.append("-elf=%s" % spec['libelf'].prefix)
+ if '+elf' in spec:
+ options.append("-elf=%s" % spec['elf'].prefix)
if '+libunwind' in spec:
options.append("-unwind=%s" % spec['libunwind'].prefix)
@@ -223,6 +232,8 @@ class Tau(Package):
env['CXX'] = spec['mpi'].mpicxx
env['F77'] = spec['mpi'].mpif77
env['FC'] = spec['mpi'].mpifc
+ options.append("-mpiinc=%s" % spec['mpi'].prefix.include)
+ options.append("-mpilib=%s" % spec['mpi'].prefix.lib)
options.append('-mpi')
if '+comm' in spec:
@@ -300,7 +311,6 @@ class Tau(Package):
self.link_tau_arch_dirs()
# TAU may capture Spack's internal compiler wrapper. Replace
# it with the correct compiler.
- self.fix_tau_compilers()
def link_tau_arch_dirs(self):
for subdir in os.listdir(self.prefix):
@@ -310,22 +320,6 @@ class Tau(Package):
if os.path.isdir(src) and not os.path.exists(dest):
os.symlink(join_path(subdir, d), dest)
- def fix_tau_compilers(self):
- filter_file('FULL_CC=' + spack_cc, 'FULL_CC=' + self.compiler.cc,
- self.prefix + '/include/Makefile', backup=False,
- string=True)
- filter_file('FULL_CXX=' + spack_cxx, 'FULL_CXX=' +
- self.compiler.cxx, self.prefix + '/include/Makefile',
- backup=False, string=True)
- for makefile in os.listdir(self.prefix.lib):
- if makefile.startswith('Makefile.tau'):
- filter_file('FULL_CC=' + spack_cc, 'FULL_CC=' +
- self.compiler.cc, self.prefix.lib + "/" +
- makefile, backup=False, string=True)
- filter_file('FULL_CXX=' + spack_cxx, 'FULL_CXX=' +
- self.compiler.cxx, self.prefix.lib +
- "/" + makefile, backup=False, string=True)
-
def setup_run_environment(self, env):
pattern = join_path(self.prefix.lib, 'Makefile.*')
files = glob.glob(pattern)
@@ -337,3 +331,36 @@ class Tau(Package):
# in the latter case.
if files:
env.set('TAU_MAKEFILE', files[0])
+
+ matmult_test = join_path('examples', 'mm')
+
+ @run_after('install')
+ def setup_build_tests(self):
+ """Copy the build test files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources(self.matmult_test)
+
+ def _run_matmult_test(self):
+ mm_dir = join_path(self.test_suite.current_test_cache_dir, self.matmult_test)
+ self.run_test('make', ['all'], [], 0, False,
+ 'Instrument and build matrix multiplication test code',
+ False, mm_dir)
+ test_exe = 'matmult'
+ if '+mpi' in self.spec:
+ test_args = ['-n', '4', test_exe]
+ mpiexe_list = ['mpirun', 'mpiexec', 'srun']
+ for mpiexe in mpiexe_list:
+ if which(mpiexe) is not None:
+ self.run_test(mpiexe, test_args, [], 0, False,
+ 'Run matmult test with mpi', False, mm_dir)
+ break
+ else:
+ self.run_test(test_exe, [], [], 0, False,
+ 'Run sequential matmult test', False, mm_dir)
+ self.run_test('pprof', [], [], 0, False,
+ 'Run pprof profile analysis tool on profile output',
+ False, mm_dir)
+
+ def test(self):
+ # Run mm test program pulled from the build
+ self._run_matmult_test()
diff --git a/var/spack/repos/builtin/packages/tauola/package.py b/var/spack/repos/builtin/packages/tauola/package.py
index e850ce4dcc..5122aef89b 100644
--- a/var/spack/repos/builtin/packages/tauola/package.py
+++ b/var/spack/repos/builtin/packages/tauola/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,15 +12,39 @@ class Tauola(AutotoolsPackage):
homepage = "https://tauolapp.web.cern.ch/tauolapp/"
url = "https://tauolapp.web.cern.ch/tauolapp/resources/TAUOLA.1.1.8/TAUOLA.1.1.8-LHC.tar.gz"
+ tags = ['hep']
+
version('1.1.8', sha256='3f734e8a967682869cca2c1ffebd3e055562613c40853cc81820d8b666805ed5')
+ variant('hepmc', default=True, description="Enable hepmc 2.x support")
+ variant('hepmc3', default=False, description="Enable hepmc3 support")
+ variant('lhapdf', default=False, description="Enable lhapdf support")
+ variant('cxxstd',
+ default='11',
+ values=('11', '14', '17', '20'),
+ multi=False,
+ description='Use the specified C++ standard when building.')
+
maintainers = ['vvolkl']
- depends_on('hepmc@:2.99.99')
+ depends_on('hepmc', when='+hepmc')
+ depends_on('hepmc3', when='+hepmc3')
+ depends_on('lhapdf', when='+lhapdf')
+
+ def flag_handler(self, name, flags):
+ if name == 'cflags':
+ flags.append('-O2')
+ elif name == 'cxxflags':
+ flags.append('-O2')
+ flags.append('-std=c++{0}'.format(self.spec.variants['cxxstd'].value))
+ elif name == 'fflags':
+ flags.append('-O2')
+ return (None, None, flags)
def configure_args(self):
- args = []
+ args = ['--with-pic']
- args.append('--with-hepmc=%s' % self.spec["hepmc"].prefix)
- args.append('--without-hepmc3')
+ args.extend(self.with_or_without('hepmc', 'prefix'))
+ args.extend(self.with_or_without('hepmc3', 'prefix'))
+ args.extend(self.with_or_without('lhapdf', 'prefix'))
return args
diff --git a/var/spack/repos/builtin/packages/tbl2asn/package.py b/var/spack/repos/builtin/packages/tbl2asn/package.py
index 8f1c0ba74c..acf4d2ecdf 100644
--- a/var/spack/repos/builtin/packages/tbl2asn/package.py
+++ b/var/spack/repos/builtin/packages/tbl2asn/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 chmod
+from spack import *
+
class Tbl2asn(Package):
"""Tbl2asn is a command-line program that automates the creation of
diff --git a/var/spack/repos/builtin/packages/tcl-itcl/package.py b/var/spack/repos/builtin/packages/tcl-itcl/package.py
index c39e18df8e..d0bdba2862 100644
--- a/var/spack/repos/builtin/packages/tcl-itcl/package.py
+++ b/var/spack/repos/builtin/packages/tcl-itcl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tcl-tcllib/package.py b/var/spack/repos/builtin/packages/tcl-tcllib/package.py
index 4f372e7aa3..864395a502 100644
--- a/var/spack/repos/builtin/packages/tcl-tcllib/package.py
+++ b/var/spack/repos/builtin/packages/tcl-tcllib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tcl-tclxml/package.py b/var/spack/repos/builtin/packages/tcl-tclxml/package.py
index eb70996f11..72c09e2ddd 100644
--- a/var/spack/repos/builtin/packages/tcl-tclxml/package.py
+++ b/var/spack/repos/builtin/packages/tcl-tclxml/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tcl/package.py b/var/spack/repos/builtin/packages/tcl/package.py
index 05cd896435..74ea8815ab 100644
--- a/var/spack/repos/builtin/packages/tcl/package.py
+++ b/var/spack/repos/builtin/packages/tcl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,16 +9,16 @@ from spack.util.environment import is_system_path
class Tcl(AutotoolsPackage, SourceforgePackage):
- """Tcl (Tool Command Language) is a very powerful but easy to
- learn dynamic programming language, suitable for a very wide
- range of uses, including web and desktop applications,
- networking, administration, testing and many more. Open source
- and business-friendly, Tcl is a mature yet evolving language
- that is truly cross platform, easily deployed and highly
- extensible."""
- homepage = "http://www.tcl.tk"
- sourceforge_mirror_path = "tcl/tcl8.6.5-src.tar.gz"
+ """Tcl (Tool Command Language) is a very powerful but easy to learn dynamic
+ programming language, suitable for a very wide range of uses, including web and
+ desktop applications, networking, administration, testing and many more. Open source
+ and business-friendly, Tcl is a mature yet evolving language that is truly cross
+ platform, easily deployed and highly extensible."""
+ homepage = "https://www.tcl.tk/"
+ sourceforge_mirror_path = "tcl/tcl8.6.11-src.tar.gz"
+
+ version('8.6.11', sha256='8c0486668586672c5693d7d95817cb05a18c5ecca2f40e2836b9578064088258')
version('8.6.10', sha256='5196dbf6638e3df8d5c87b5815c8c2b758496eb6f0e41446596c9a4e638d87ed')
version('8.6.8', sha256='c43cb0c1518ce42b00e7c8f6eaddd5195c53a98f94adc717234a65cbcfd3f96a')
version('8.6.6', sha256='a265409781e4b3edcc4ef822533071b34c3dc6790b893963809b9fe221befe07')
@@ -37,7 +37,7 @@ class Tcl(AutotoolsPackage, SourceforgePackage):
with working_dir(self.build_directory):
make('install')
- # http://wiki.tcl.tk/17463
+ # https://wiki.tcl-lang.org/page/kitgen
if self.spec.satisfies('@8.6:'):
make('install-headers')
@@ -80,22 +80,39 @@ class Tcl(AutotoolsPackage, SourceforgePackage):
def command(self):
"""Returns the tclsh command.
- :returns: The tclsh command
- :rtype: Executable
+ Returns:
+ Executable: the tclsh command
"""
- return Executable(os.path.realpath(self.prefix.bin.tclsh))
+ # Although we symlink tclshX.Y to tclsh, we also need to support external
+ # installations that may not have this symlink, or may have multiple versions
+ # of Tcl installed in the same directory.
+ return Executable(os.path.realpath(self.prefix.bin.join(
+ 'tclsh{0}'.format(self.version.up_to(2)))))
def setup_run_environment(self, env):
- # When using Tkinter from within spack provided python+tkinter, python
- # will not be able to find Tcl/Tk unless TCL_LIBRARY is set.
- env.set('TCL_LIBRARY', self.spec['tcl'].libs.directories[0])
+ """Set TCL_LIBRARY to the directory containing init.tcl.
+
+ For further info see:
+
+ * https://wiki.tcl-lang.org/page/TCL_LIBRARY
+ """
+ # When using tkinter from within spack provided python+tkinter,
+ # python will not be able to find Tcl unless TCL_LIBRARY is set.
+ env.set('TCL_LIBRARY', os.path.dirname(
+ sorted(find(self.prefix, 'init.tcl'))[0]))
def setup_dependent_build_environment(self, env, dependent_spec):
- """Set TCLLIBPATH to include the tcl-shipped directory for
+ """Set TCL_LIBRARY to the directory containing init.tcl.
+ Set TCLLIBPATH to include the tcl-shipped directory for
extensions and any other tcl extension it depends on.
- For further info see: https://wiki.tcl.tk/1787"""
- env.set('TCL_LIBRARY', self.spec['tcl'].libs.directories[0])
+ For further info see:
+
+ * https://wiki.tcl-lang.org/page/TCL_LIBRARY
+ * https://wiki.tcl-lang.org/page/TCLLIBPATH
+ """
+ env.set('TCL_LIBRARY', os.path.dirname(
+ sorted(find(self.prefix, 'init.tcl'))[0]))
# If we set TCLLIBPATH, we must also ensure that the corresponding
# tcl is found in the build environment. This to prevent cases
@@ -105,35 +122,40 @@ class Tcl(AutotoolsPackage, SourceforgePackage):
if not is_system_path(self.prefix.bin):
env.prepend_path('PATH', self.prefix.bin)
- tcl_paths = [join_path(self.spec['tcl'].libs.directories[0],
- 'tcl{0}'.format(self.version.up_to(2)))]
+ # WARNING: paths in $TCLLIBPATH must be *space* separated,
+ # its value is meant to be a Tcl list, *not* an env list
+ # as explained here: https://wiki.tcl-lang.org/page/TCLLIBPATH:
+ # "TCLLIBPATH is a Tcl list, not some platform-specific
+ # colon-separated or semi-colon separated format"
+
+ # WARNING: Tcl and Tcl extensions like Tk install their configuration files
+ # in subdirectories like `<prefix>/lib/tcl8.6`. However, Tcl is aware of this,
+ # and $TCLLIBPATH should only contain `<prefix>/lib`. $TCLLIBPATH is only needed
+ # because we install Tcl extensions to different directories than Tcl. See:
+ # https://core.tcl-lang.org/tk/tktview/447bd3e4abe17452d19a80e6840dcc8a2603fcbc
+ env.prepend_path(
+ 'TCLLIBPATH', self.spec['tcl'].libs.directories[0], separator=' ')
for d in dependent_spec.traverse(deptype=('build', 'run', 'test')):
if d.package.extends(self.spec):
# Tcl libraries may be installed in lib or lib64, see #19546
for lib in ['lib', 'lib64']:
- tcl_paths.append(join_path(
- d.prefix, lib, 'tcl{0}'.format(self.version.up_to(2))))
-
- # WARNING: paths in $TCLLIBPATH must be *space* separated,
- # its value is meant to be a Tcl list, *not* an env list
- # as explained here: https://wiki.tcl.tk/1787:
- # "TCLLIBPATH is a Tcl list, not some platform-specific
- # colon-separated or semi-colon separated format"
- tcllibpath = ' '.join(tcl_paths)
- env.set('TCLLIBPATH', tcllibpath)
+ tcllibpath = join_path(d.prefix, lib)
+ if os.path.exists(tcllibpath):
+ env.prepend_path('TCLLIBPATH', tcllibpath, separator=' ')
def setup_dependent_run_environment(self, env, dependent_spec):
"""Set TCLLIBPATH to include the tcl-shipped directory for
extensions and any other tcl extension it depends on.
- For further info see: https://wiki.tcl.tk/1787"""
-
- # For run time environment set only the path for
- # dependent_spec and prepend it to TCLLIBPATH
- if dependent_spec.package.extends(self.spec):
- # Tcl libraries may be installed in lib or lib64, see #19546
- for lib in ['lib', 'lib64']:
- tcllibpath = join_path(
- self.prefix, lib, 'tcl{0}'.format(self.version.up_to(2)))
- if os.path.exists(tcllibpath):
- env.prepend_path('TCLLIBPATH', tcllibpath, separator=' ')
+
+ For further info see:
+
+ * https://wiki.tcl-lang.org/page/TCLLIBPATH
+ """
+ for d in dependent_spec.traverse(deptype=('build', 'run', 'test')):
+ if d.package.extends(self.spec):
+ # Tcl libraries may be installed in lib or lib64, see #19546
+ for lib in ['lib', 'lib64']:
+ tcllibpath = join_path(d.prefix, lib)
+ if os.path.exists(tcllibpath):
+ env.prepend_path('TCLLIBPATH', tcllibpath, separator=' ')
diff --git a/var/spack/repos/builtin/packages/tclap/package.py b/var/spack/repos/builtin/packages/tclap/package.py
index f8d8ce800d..5599fd469b 100644
--- a/var/spack/repos/builtin/packages/tclap/package.py
+++ b/var/spack/repos/builtin/packages/tclap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tcoffee/package.py b/var/spack/repos/builtin/packages/tcoffee/package.py
index 36cf8a6389..49c2c11d47 100644
--- a/var/spack/repos/builtin/packages/tcoffee/package.py
+++ b/var/spack/repos/builtin/packages/tcoffee/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tcpdump/package.py b/var/spack/repos/builtin/packages/tcpdump/package.py
index 53507d5bda..78602def11 100644
--- a/var/spack/repos/builtin/packages/tcpdump/package.py
+++ b/var/spack/repos/builtin/packages/tcpdump/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,8 +16,10 @@ class Tcpdump(AutotoolsPackage):
homepage = "https://www.tcpdump.org/"
url = "https://www.tcpdump.org/release/tcpdump-4.9.3.tar.gz"
- version('4.9.3', sha256='2cd47cb3d460b6ff75f4a9940f594317ad456cfbf2bd2c8e5151e16559db6410')
- version('4.9.2', sha256='798b3536a29832ce0cbb07fafb1ce5097c95e308a6f592d14052e1ef1505fe79')
- version('4.9.1', sha256='f9448cf4deb2049acf713655c736342662e652ef40dbe0a8f6f8d5b9ce5bd8f3')
+ version('4.99.0', sha256='8cf2f17a9528774a7b41060323be8b73f76024f7778f59c34efa65d49d80b842')
+ version('4.9.3', sha256='2cd47cb3d460b6ff75f4a9940f594317ad456cfbf2bd2c8e5151e16559db6410')
+ version('4.9.2', sha256='798b3536a29832ce0cbb07fafb1ce5097c95e308a6f592d14052e1ef1505fe79')
+ version('4.9.1', sha256='f9448cf4deb2049acf713655c736342662e652ef40dbe0a8f6f8d5b9ce5bd8f3')
depends_on('libpcap')
+ depends_on('libpcap@1.10.0:', when='@4.99.0:')
diff --git a/var/spack/repos/builtin/packages/tcptrace/package.py b/var/spack/repos/builtin/packages/tcptrace/package.py
index b2e41e8d26..a70ac19c30 100644
--- a/var/spack/repos/builtin/packages/tcptrace/package.py
+++ b/var/spack/repos/builtin/packages/tcptrace/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path import join
+from spack import *
+
class Tcptrace(AutotoolsPackage):
"""tcptrace is a tool written by Shawn Ostermann at Ohio University for
diff --git a/var/spack/repos/builtin/packages/tcsh/package.py b/var/spack/repos/builtin/packages/tcsh/package.py
index 7cdd8bb412..662eabc62d 100644
--- a/var/spack/repos/builtin/packages/tcsh/package.py
+++ b/var/spack/repos/builtin/packages/tcsh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,9 @@ class Tcsh(AutotoolsPackage):
correction, a history mechanism, job control and a C language like
syntax."""
- homepage = "http://www.tcsh.org/"
+ homepage = "https://www.tcsh.org/"
url = "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/tcsh-6.20.00.tar.gz"
- list_url = "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/old/"
+ list_url = "https://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/old/"
version('6.22.02', sha256='ed287158ca1b00ba477e8ea57bac53609838ebcfd05fcb05ca95021b7ebe885b')
version('6.21.00', sha256='c438325448371f59b12a4c93bfd3f6982e6f79f8c5aef4bc83aac8f62766e972')
diff --git a/var/spack/repos/builtin/packages/tdengine/package.py b/var/spack/repos/builtin/packages/tdengine/package.py
index 4a31e8a4ab..b17e7cd3ed 100644
--- a/var/spack/repos/builtin/packages/tdengine/package.py
+++ b/var/spack/repos/builtin/packages/tdengine/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tealeaf/package.py b/var/spack/repos/builtin/packages/tealeaf/package.py
index 807d9565fe..d4b338be81 100644
--- a/var/spack/repos/builtin/packages/tealeaf/package.py
+++ b/var/spack/repos/builtin/packages/tealeaf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,8 +15,8 @@ class Tealeaf(MakefilePackage):
regularly grid using a 5 point stencil with implicit solvers.
"""
- homepage = "http://uk-mac.github.io/TeaLeaf/"
- url = "http://downloads.mantevo.org/releaseTarballs/miniapps/TeaLeaf/TeaLeaf-1.0.tar.gz"
+ homepage = "https://uk-mac.github.io/TeaLeaf/"
+ url = "https://downloads.mantevo.org/releaseTarballs/miniapps/TeaLeaf/TeaLeaf-1.0.tar.gz"
tags = ['proxy-app']
diff --git a/var/spack/repos/builtin/packages/teckit/package.py b/var/spack/repos/builtin/packages/teckit/package.py
index f8ac04816a..e01e0100c3 100644
--- a/var/spack/repos/builtin/packages/teckit/package.py
+++ b/var/spack/repos/builtin/packages/teckit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tecplot/package.py b/var/spack/repos/builtin/packages/tecplot/package.py
index d741cb7df7..ee881ab8d1 100644
--- a/var/spack/repos/builtin/packages/tecplot/package.py
+++ b/var/spack/repos/builtin/packages/tecplot/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Tecplot(Package):
"""Tecplot 360 is a Computational Fluid Dynamics (CFD) and numerical
diff --git a/var/spack/repos/builtin/packages/tempestremap/package.py b/var/spack/repos/builtin/packages/tempestremap/package.py
new file mode 100644
index 0000000000..7704e00d5e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tempestremap/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2021 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 Tempestremap(AutotoolsPackage):
+ """ TempestRemap is a conservative, consistent and monotone remapping
+ package for arbitrary grid geometry with support for finite volumes
+ and finite elements.
+
+ There is still quite a bit of work to be done, but any feedback is
+ appreciated on the software in its current form
+ """
+
+ homepage = "https://github.com/ClimateGlobalChange/tempestremap"
+ url = "https://github.com/ClimateGlobalChange/tempestremap/archive/v2.0.5.tar.gz"
+
+ maintainers = ['iulian787', 'vijaysm', 'paullric']
+
+ version('2.0.5', sha256='8618f5cbde450922efa1d77e67b062c557788b0cf4304adca30237afe3ade887')
+ version('2.0.4', sha256='8349eeb604e97b13d2ecde8626a69e579a7af70ad0e8a6925a8bb4306a4963a4')
+ version('2.0.3', sha256='b4578c2cb101ba091a10dc914e15ac968257f5db27ca78bc9fb5dbd70bce191f')
+ version('2.0.2', sha256='2347bf804d19d515cb630a76b87e6dc6edcc1a828ff8c0f2a8a28e77794bad13')
+ version('2.0.1', sha256='a3f1bef8cc413a689d429ac56f2bcc2e1d282d99797c3375233de792a7448ece')
+ version('2.0.0', sha256='5850e251a4ad04fc924452f49183e5e12c38725832a568e57fa424a844b8a000')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('netcdf-c')
+ depends_on('blas')
+ depends_on('lapack')
+
+ def configure_args(self):
+ spec = self.spec
+ options = []
+ options.append('--with-netcdf=%s' % spec['netcdf-c'].prefix)
+ options.append('--with-blas=%s' % spec['blas'].libs.ld_flags)
+ options.append('--with-lapack=%s' % spec['lapack'].libs.ld_flags)
+ return options
diff --git a/var/spack/repos/builtin/packages/templight-tools/package.py b/var/spack/repos/builtin/packages/templight-tools/package.py
index debc9e82ce..1fd53d112e 100644
--- a/var/spack/repos/builtin/packages/templight-tools/package.py
+++ b/var/spack/repos/builtin/packages/templight-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/templight/package.py b/var/spack/repos/builtin/packages/templight/package.py
index 371999266d..bb6a11171d 100644
--- a/var/spack/repos/builtin/packages/templight/package.py
+++ b/var/spack/repos/builtin/packages/templight/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Templight(CMakePackage):
"""Templight is a Clang-based tool to profile the time and memory
diff --git a/var/spack/repos/builtin/packages/tengine/package.py b/var/spack/repos/builtin/packages/tengine/package.py
index 4296c18758..a5ae78a45f 100644
--- a/var/spack/repos/builtin/packages/tengine/package.py
+++ b/var/spack/repos/builtin/packages/tengine/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Tengine(AutotoolsPackage):
"""A distribution of Nginx with some advanced features."""
- homepage = "http://tengine.taobao.org/"
+ homepage = "https://tengine.taobao.org/"
url = "https://github.com/alibaba/tengine/archive/2.3.2.tar.gz"
version('2.3.2', sha256='a65998a35739a59f8a16ec4c6090a59e569ba5a1a3f68fecad952057c1a18fea')
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 58976df975..8e8ca09be4 100644
--- a/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py
+++ b/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,12 @@ class TensorflowServingClient(CMakePackage):
"""A prebuilt tensorflow serving client from the tensorflow serving
proto files"""
+ maintainers = ['figroc']
+
homepage = "https://github.com/figroc/tensorflow-serving-client"
- url = "https://github.com/figroc/tensorflow-serving-client/archive/v2.2.0.tar.gz"
+ url = "https://github.com/figroc/tensorflow-serving-client/archive/v2.3.0.tar.gz"
+ version('2.3.0', sha256='621b1df1da521fe1ba873b4b5546c1b794cfa8a13bca91608783acc4c8748fb1')
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/tensorpipe/package.py b/var/spack/repos/builtin/packages/tensorpipe/package.py
new file mode 100644
index 0000000000..4129054c06
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tensorpipe/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 Tensorpipe(CMakePackage):
+ """A tensor-aware point-to-point communication primitive for machine learning."""
+
+ homepage = "https://github.com/pytorch/tensorpipe"
+ git = "https://github.com/pytorch/tensorpipe.git"
+
+ version('master', branch='master', submodules=True)
+ version('2021-05-13', commit='05e4c890d4bd5f8ac9a4ba8f3c21e2eba3f66eda', submodules=True) # py-torch@1.9
+ version('2021-03-04', commit='369e855ea82fc71f45cfab277863b86747202c92', submodules=True) # py-torch@1.8.1
+ version('2021-02-09', commit='05467ba9bc164f06722986b615c4495901747c58', submodules=True) # py-torch@1.8.0
+ version('2020-09-28', commit='95ff9319161fcdb3c674d2bb63fac3e94095b343', submodules=True) # py-torch@1.7
+ version('2020-06-26', commit='3b8089c9c6717038cff44b70b881d0ad6c93e679', submodules=True) # py-torch@1.6
+
+ depends_on('cmake@3.5:', type='build')
+ depends_on('ninja', type='build')
+ depends_on('libuv@1.26:')
+
+ generator = 'Ninja'
diff --git a/var/spack/repos/builtin/packages/termcap/package.py b/var/spack/repos/builtin/packages/termcap/package.py
index b873f2969a..0e8b00b092 100644
--- a/var/spack/repos/builtin/packages/termcap/package.py
+++ b/var/spack/repos/builtin/packages/termcap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,8 @@ class Termcap(AutotoolsPackage):
enable programs to send control strings to terminals in a way
independent of the terminal type."""
- homepage = "http://www.gnu.org/software/termutils/manual/termcap-1.3/html_mono/termcap.html"
- url = "http://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz"
+ homepage = "https://www.gnu.org/software/termutils/manual/termcap-1.3/html_mono/termcap.html"
+ url = "https://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz"
version('1.3.1', sha256='91a0e22e5387ca4467b5bcb18edf1c51b930262fd466d5fda396dd9d26719100')
version('1.3', sha256='3eb4b98ae08408ca65dd9275f3c8e56e2feac1261fae914a9b21273db51cf000')
diff --git a/var/spack/repos/builtin/packages/tesseract/java_Makefile.patch b/var/spack/repos/builtin/packages/tesseract/java_Makefile.patch
new file mode 100644
index 0000000000..aed17e854c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tesseract/java_Makefile.patch
@@ -0,0 +1,28 @@
+--- a/java/Makefile.am 2019-12-26 08:21:51.000000000 -0600
++++ b/java/Makefile.am 2021-06-11 17:30:44.522469994 -0500
+@@ -36,11 +36,11 @@
+ com/google/scrollview/ScrollView.class
+
+ SCROLLVIEW_LIBS = \
+- piccolo2d-core-3.0.jar \
+- piccolo2d-extras-3.0.jar \
++ piccolo2d-core-3.0.1.jar \
++ piccolo2d-extras-3.0.1.jar \
+ jaxb-api-2.3.1.jar
+
+-CLASSPATH = piccolo2d-core-3.0.jar:piccolo2d-extras-3.0.jar:jaxb-api-2.3.1.jar
++CLASSPATH = piccolo2d-core-3.0.1.jar:piccolo2d-extras-3.0.1.jar:jaxb-api-2.3.1.jar
+
+ ScrollView.jar : $(SCROLLVIEW_CLASSES)
+ $(JAR) cfm $@ $(srcdir)/Manifest.txt com/google/scrollview/*.class \
+@@ -51,8 +51,8 @@
+
+ .PHONY: fetch-jars
+ fetch-jars $(SCROLLVIEW_LIBS):
+- curl -L http://search.maven.org/remotecontent?filepath=org/piccolo2d/piccolo2d-core/3.0/piccolo2d-core-3.0.jar > piccolo2d-core-3.0.jar
+- curl -L http://search.maven.org/remotecontent?filepath=org/piccolo2d/piccolo2d-extras/3.0/piccolo2d-extras-3.0.jar > piccolo2d-extras-3.0.jar
++ curl -L http://search.maven.org/remotecontent?filepath=org/piccolo2d/piccolo2d-core/3.0.1/piccolo2d-core-3.0.1.jar > piccolo2d-core-3.0.1.jar
++ curl -L http://search.maven.org/remotecontent?filepath=org/piccolo2d/piccolo2d-extras/3.0.1/piccolo2d-extras-3.0.1.jar > piccolo2d-extras-3.0.1.jar
+ curl -L http://search.maven.org/remotecontent?filepath=javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar > jaxb-api-2.3.1.jar
+
+ .PHONY: install-jars
diff --git a/var/spack/repos/builtin/packages/tesseract/package.py b/var/spack/repos/builtin/packages/tesseract/package.py
index a03be72f4e..88b0accdaf 100644
--- a/var/spack/repos/builtin/packages/tesseract/package.py
+++ b/var/spack/repos/builtin/packages/tesseract/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,14 +16,69 @@ class Tesseract(AutotoolsPackage):
version('4.1.0', sha256='5c5ed5f1a76888dc57a83704f24ae02f8319849f5c4cf19d254296978a1a1961')
version('4.0.0', sha256='a1f5422ca49a32e5f35c54dee5112b11b99928fc9f4ee6695cdc6768d69f61dd')
+ # do not fetch the jar files from Makefile
+ patch('java_Makefile.patch')
+
+ jars = [
+ 'piccolo2d-core-3.0.1',
+ 'piccolo2d-extras-3.0.1',
+ 'jaxb-api-2.3.1'
+ ]
+ resource(
+ name=jars[0],
+ url='https://search.maven.org/remotecontent?filepath=org/piccolo2d/piccolo2d-core/3.0.1/piccolo2d-core-3.0.1.jar',
+ sha256='9acad723136ddb996e96f5d488b9b046753a1d4c60ea639d5e3f9701deaf60ad',
+ placement=jars[0],
+ expand=False,
+ )
+ resource(
+ name=jars[1],
+ url='https://search.maven.org/remotecontent?filepath=org/piccolo2d/piccolo2d-extras/3.0.1/piccolo2d-extras-3.0.1.jar',
+ sha256='ba45f343e9ebc06c9b4ce165c8bb539b11cbf59e93d1df48489ab173f74375a8',
+ placement=jars[1],
+ expand=False,
+ )
+ resource(
+ name=jars[2],
+ url='https://search.maven.org/remotecontent?filepath=javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar',
+ sha256='88b955a0df57880a26a74708bc34f74dcaf8ebf4e78843a28b50eae945732b06',
+ placement=jars[2],
+ expand=False,
+ )
+
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ depends_on('doxygen', type='build')
+ depends_on('asciidoc', type='build')
+ depends_on('libxslt', type='build')
+ depends_on('pkgconfig', type='build')
depends_on('leptonica')
depends_on('libarchive')
+ depends_on('curl')
+ depends_on('icu4c')
+ depends_on('cairo')
+ depends_on('pango')
+ depends_on('java')
+
+ def autoreconf(self, spec, prefix):
+ autogen = Executable(join_path('.', 'autogen.sh'))
+ autogen()
+
+ def setup_run_environment(self, env):
+ env.set('SCROLLVIEW_PATH', prefix.share.tessdata)
+
+ @run_after('install')
+ def training(self):
+ make('training')
+ make('training-install')
+
+ # move the jar files to the java directory
+ for jar in self.jars:
+ src = '{0}/{1}/{2}.jar'.format(self.stage.source_path, jar, jar)
+ dest = '{0}/java/{1}.jar'.format(self.stage.source_path, jar)
+ copy(src, dest)
- @when('@:4.0.0')
- def configure_args(self):
- args = ['LDFLAGS=-lz']
- return args
+ with working_dir('java'):
+ make('install-jars')
diff --git a/var/spack/repos/builtin/packages/testdfsio/package.py b/var/spack/repos/builtin/packages/testdfsio/package.py
index 27b96a3015..9d83f0f610 100644
--- a/var/spack/repos/builtin/packages/testdfsio/package.py
+++ b/var/spack/repos/builtin/packages/testdfsio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tetgen/package.py b/var/spack/repos/builtin/packages/tetgen/package.py
index 6d434c6e14..a3bb57569a 100644
--- a/var/spack/repos/builtin/packages/tetgen/package.py
+++ b/var/spack/repos/builtin/packages/tetgen/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+from spack import *
+
class Tetgen(Package):
"""TetGen is a program and library that can be used to generate
@@ -15,11 +16,12 @@ class Tetgen(Package):
boundary conforming Delaunay meshes, and Voronoi paritions.
"""
- homepage = "http://wias-berlin.de/software/tetgen/"
+ homepage = "https://wias-berlin.de/software/tetgen/"
version('1.5.0', sha256='4d114861d5ef2063afd06ef38885ec46822e90e7b4ea38c864f76493451f9cf3', url='http://www.tetgen.org/1.5/src/tetgen1.5.0.tar.gz')
version('1.4.3', sha256='952711bb06b7f64fd855eb24c33f08e3faf40bdd54764de10bbe5ed5b0dce034', url='http://www.tetgen.org/files/tetgen1.4.3.tar.gz')
+ variant('pic', default=True, description='Builds the library in pic mode.')
variant('debug', default=False, description='Builds the library in debug mode.')
variant('except', default=False, description='Replaces asserts with exceptions for better C++ compatibility.')
@@ -27,9 +29,12 @@ class Tetgen(Package):
def patch(self):
cflags = '-g -O0' if '+debug' in self.spec else '-g0 -O3'
+ cflags = cflags + ' -fPIC' if '+pic' in self.spec else cflags
+ predcflags = '-fPIC' if '+pic' in self.spec else ''
mff = FileFilter('makefile')
mff.filter(r'^(C(XX)?FLAGS\s*=)(.*)$', r'\1 {0}'.format(cflags))
+ mff.filter(r'^(PREDC(XX)?FLAGS\s*=.*)$', r'\1 {0}'.format(predcflags))
if '+except' in self.spec:
hff = FileFilter('tetgen.h')
diff --git a/var/spack/repos/builtin/packages/tethex/package.py b/var/spack/repos/builtin/packages/tethex/package.py
index 88c3412b66..0ac1857b63 100644
--- a/var/spack/repos/builtin/packages/tethex/package.py
+++ b/var/spack/repos/builtin/packages/tethex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/texinfo/package.py b/var/spack/repos/builtin/packages/texinfo/package.py
index b33a07eb46..a978181cb0 100644
--- a/var/spack/repos/builtin/packages/texinfo/package.py
+++ b/var/spack/repos/builtin/packages/texinfo/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 re
+from spack import *
+
class Texinfo(AutotoolsPackage, GNUMirrorPackage):
"""Texinfo is the official documentation format of the GNU project.
diff --git a/var/spack/repos/builtin/packages/texlive/package.py b/var/spack/repos/builtin/packages/texlive/package.py
index 1687af6bed..07ea816aae 100644
--- a/var/spack/repos/builtin/packages/texlive/package.py
+++ b/var/spack/repos/builtin/packages/texlive/package.py
@@ -1,13 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+import re
import tempfile
+from spack import *
+
class Texlive(AutotoolsPackage):
"""TeX Live is an easy (we hope) way to get up and running with the TeX
@@ -17,8 +19,8 @@ class Texlive(AutotoolsPackage):
and fonts that are free software, including support for many languages
around the world."""
- homepage = "http://www.tug.org/texlive"
- url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2020/texlive-20200406-source.tar.xz'
+ homepage = "https://www.tug.org/texlive"
+ url = 'https://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 +31,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='7c90a50e55533d57170cbc7c0370a010019946eb18570282948e1af6f809382d',
- url='ftp://tug.org/historic/systems/texlive/2020/install-tl-unx.tar.gz')
+ version('live', sha256='74eac0855e1e40c8db4f28b24ef354bd7263c1f76031bdc02b52156b572b7a1d',
+ url='ftp://tug.org/historic/systems/texlive/2021/install-tl-unx.tar.gz')
# Add information for new versions below.
releases = [
{
+ 'version': '20210325',
+ 'year': '2021',
+ 'sha256_source': '7aefd96608d72061970f2d73f275be5648ea8ae815af073016d3106acc0d584b',
+ 'sha256_texmf': 'ff12d436c23e99fb30aad55924266104356847eb0238c193e839c150d9670f1c',
+ },
+ {
'version': '20200406',
'year': '2020',
'sha256_source': 'e32f3d08cbbbcf21d8d3f96f2143b64a1f5e4cb01b06b761d6249c8785249078',
@@ -107,7 +115,7 @@ class Texlive(AutotoolsPackage):
depends_on('mpfr', when='@2019:')
depends_on('perl', when='@2019:')
depends_on('pixman', when='@2019:')
- depends_on('poppler', when='@2019:')
+ depends_on('poppler@:0.84', when='@2019:')
depends_on('teckit', when='@2019:')
depends_on('zlib', when='@2019:')
depends_on('zziplib', when='@2019:')
@@ -180,6 +188,9 @@ class Texlive(AutotoolsPackage):
def setup_run_environment(self, env):
env.prepend_path('PATH', join_path(self.prefix.bin, self.tex_arch()))
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ self.setup_run_environment(env)
+
@when('@live')
def autoreconf(self, spec, prefix):
touch('configure')
@@ -202,7 +213,7 @@ class Texlive(AutotoolsPackage):
# Using texlive's mirror system leads to mysterious problems,
# in lieu of being able to specify a repository as a variant, hardwire
# a particular (slow, but central) one for now.
- _repository = 'http://ctan.math.washington.edu/tex-archive/systems/texlive/tlnet/'
+ _repository = 'https://ctan.math.washington.edu/tex-archive/systems/texlive/tlnet/'
env = os.environ
env['TEXLIVE_INSTALL_PREFIX'] = prefix
perl = which('perl')
@@ -212,3 +223,39 @@ class Texlive(AutotoolsPackage):
'-portable', '-profile', tmp_profile.name)
tmp_profile.close()
+
+ executables = [r'^tex$']
+
+ @classmethod
+ def determine_version(cls, exe):
+ # https://askubuntu.com/questions/100406/finding-the-tex-live-version
+ # Thanks to @michaelkuhn that told how to reuse the package releases
+ # variable.
+ # Added 3 older releases: 2018 (CentOS-8), 2017 (Ubuntu-18.04), 2013 (CentOS-7).
+ releases = cls.releases
+ releases.extend([
+ {
+ 'version': '20180414',
+ 'year': '2018',
+ },
+ {
+ 'version': '20170524',
+ 'year': '2017',
+ },
+ {
+ 'version': '20130530',
+ 'year': '2013',
+ },
+ ])
+ # tex indicates the year only
+ output = Executable(exe)('--version', output=str, error=str)
+ match = re.search(r'TeX Live (\d+)', output)
+ ver = match.group(1) if match else None
+ # We search for the repo actual release
+ if ver is not None:
+ for release in releases:
+ year = release['year']
+ if year == ver:
+ ver = release['version']
+ break
+ return ver
diff --git a/var/spack/repos/builtin/packages/texstudio/package.py b/var/spack/repos/builtin/packages/texstudio/package.py
index babfaa078c..b47b0e11af 100644
--- a/var/spack/repos/builtin/packages/texstudio/package.py
+++ b/var/spack/repos/builtin/packages/texstudio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Texstudio(QMakePackage):
"""TeXstudio is a fully featured LaTeX editor, whose goal is to make
writing LaTeX documents as easy and comfortable as possible."""
- homepage = "http://www.texstudio.org"
+ homepage = "https://www.texstudio.org"
url = "https://github.com/texstudio-org/texstudio/archive/2.12.16.tar.gz"
git = "https://github.com/texstudio-org/texstudio.git"
diff --git a/var/spack/repos/builtin/packages/textparser/package.py b/var/spack/repos/builtin/packages/textparser/package.py
index 85252633a0..035f3339be 100644
--- a/var/spack/repos/builtin/packages/textparser/package.py
+++ b/var/spack/repos/builtin/packages/textparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tfel/package.py b/var/spack/repos/builtin/packages/tfel/package.py
index 86305d69f8..f03ea3f616 100644
--- a/var/spack/repos/builtin/packages/tfel/package.py
+++ b/var/spack/repos/builtin/packages/tfel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -29,12 +29,13 @@ class Tfel(CMakePackage):
"""
homepage = "http://tfel.sourceforge.net"
- url = "https://github.com/thelfer/tfel/archive/TFEL-3.3.0.tar.gz"
+ url = "https://github.com/thelfer/tfel/archive/TFEL-3.4.0.tar.gz"
git = "https://github.com/thelfer/tfel.git"
maintainers = ['thelfer']
# development branches
version("master", branch="master")
+ version("rliv-3.4", branch="rliv-3.4")
version("rliv-3.3", branch="rliv-3.3")
version("rliv-3.2", branch="rliv-3.2")
version("rliv-3.1", branch="rliv-3.1")
@@ -43,6 +44,8 @@ class Tfel(CMakePackage):
version("rliv-1.2", branch="rliv-1.2")
# released version
+ version('3.4.0', sha256='176feb4c1726d0f21f4c656b20620dce6f99ab7f5f09a66905aeb643a316bbc1')
+ version('3.3.1', sha256='ad07329c25874832fbacc999b5f88d9b9ab84415bc897a6f3cae5b4afcd7661f')
version('3.3.0', sha256='884ad68b0fbbededc3a602d559433c24114ae4534dc9f0a759d31ca3589dace0')
version('3.2.2', sha256='69b01ae0d1f9140b619aaa9135948284ff40d4654672c335e55ab4934c02eb43')
version('3.2.1', sha256='12786480524a7fe86889120fb334fa00211dfd44ad5ec71e2279e7adf1ddc807')
@@ -69,6 +72,8 @@ class Tfel(CMakePackage):
variant('abaqus', default=True,
description='Enables Abaqus/Standard and ' +
'Abaqus/Explicit interfaces')
+ variant('calculix', default=True,
+ description='Enables CalculiX interfaces')
variant('ansys', default=True,
description='Enables Ansys APDL interface')
variant('europlexus', default=True,
@@ -101,7 +106,7 @@ class Tfel(CMakePackage):
type=('build', 'link', 'run'))
depends_on('python', when='+python_bindings',
type=('build', 'link', 'run'))
- depends_on('boost+python', when='+python_bindings')
+ depends_on('boost+python+numpy', when='+python_bindings')
extends('python', when='+python_bindings')
@@ -109,6 +114,8 @@ class Tfel(CMakePackage):
args = []
+ args.append("-DUSE_EXTERNAL_COMPILER_FLAGS=ON")
+
for i in ['fortran', 'java', 'aster', 'abaqus', 'calculix',
'ansys', 'europlexus', 'cyrano', 'lsdyna', 'python',
'comsol', 'diana-fea']:
diff --git a/var/spack/repos/builtin/packages/the-platinum-searcher/package.py b/var/spack/repos/builtin/packages/the-platinum-searcher/package.py
index 9c7c6a68a0..e5be2ec6ba 100644
--- a/var/spack/repos/builtin/packages/the-platinum-searcher/package.py
+++ b/var/spack/repos/builtin/packages/the-platinum-searcher/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class ThePlatinumSearcher(Package):
version('head')
- extends("go", deptypes='build')
+ extends("go", type='build')
def install(self, spec, prefix):
env['GOPATH'] = self.stage.source_path + ':' + env['GOPATH']
diff --git a/var/spack/repos/builtin/packages/the-silver-searcher/package.py b/var/spack/repos/builtin/packages/the-silver-searcher/package.py
index 516e744247..7320b86b7d 100644
--- a/var/spack/repos/builtin/packages/the-silver-searcher/package.py
+++ b/var/spack/repos/builtin/packages/the-silver-searcher/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class TheSilverSearcher(AutotoolsPackage):
"""Fast recursive grep alternative"""
- homepage = "http://geoff.greer.fm/ag/"
- url = "http://geoff.greer.fm/ag/releases/the_silver_searcher-0.32.0.tar.gz"
+ homepage = "https://geoff.greer.fm/ag/"
+ url = "https://geoff.greer.fm/ag/releases/the_silver_searcher-0.32.0.tar.gz"
version('2.2.0', sha256='d9621a878542f3733b5c6e71c849b9d1a830ed77cb1a1f6c2ea441d4b0643170')
version('2.1.0', sha256='d4652bd91c3a05e87a15809c5f3f14ad2e5e1f80185af510e3fa4ad2038c15d4')
diff --git a/var/spack/repos/builtin/packages/thepeg/package.py b/var/spack/repos/builtin/packages/thepeg/package.py
index 766586acf4..59d07b97d2 100644
--- a/var/spack/repos/builtin/packages/thepeg/package.py
+++ b/var/spack/repos/builtin/packages/thepeg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,8 @@ class Thepeg(AutotoolsPackage):
homepage = "http://home.thep.lu.se/~leif/ThePEG/"
url = "https://thepeg.hepforge.org/downloads/?f=ThePEG-2.2.1.tar.bz2"
+ tags = ['hep']
+
# The commented out versions exist, but may need patches
# and/or recipe changes
version('2.2.1', sha256='63abc7215e6ad45c11cf9dac013738e194cc38556a8368b850b70ab1b57ea58f')
diff --git a/var/spack/repos/builtin/packages/thornado-mini/package.py b/var/spack/repos/builtin/packages/thornado-mini/package.py
index 34e40e8233..bea92c42c1 100644
--- a/var/spack/repos/builtin/packages/thornado-mini/package.py
+++ b/var/spack/repos/builtin/packages/thornado-mini/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class ThornadoMini(MakefilePackage):
"""Code to solve the equation of radiative transfer in the
diff --git a/var/spack/repos/builtin/packages/thrift/package.py b/var/spack/repos/builtin/packages/thrift/package.py
index da7d9e6809..1919a08529 100644
--- a/var/spack/repos/builtin/packages/thrift/package.py
+++ b/var/spack/repos/builtin/packages/thrift/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class Thrift(Package):
"""
- homepage = "http://thrift.apache.org"
+ homepage = "https://thrift.apache.org"
url = "http://apache.mirrors.ionfish.org/thrift/0.11.0/thrift-0.11.0.tar.gz"
version('0.13.0', sha256='7ad348b88033af46ce49148097afe354d513c1fca7c607b59c33ebb6064b5179')
diff --git a/var/spack/repos/builtin/packages/thrust/package.py b/var/spack/repos/builtin/packages/thrust/package.py
index e82737189d..4e2d63f25c 100644
--- a/var/spack/repos/builtin/packages/thrust/package.py
+++ b/var/spack/repos/builtin/packages/thrust/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,8 +11,22 @@ class Thrust(Package):
which resembles the C++ Standard Template Library (STL)."""
homepage = "https://thrust.github.io"
- url = "https://github.com/thrust/thrust/archive/1.9.4.tar.gz"
+ url = "https://github.com/NVIDIA/thrust/archive/1.12.0.tar.gz"
+ version('1.12.0', sha256='d68f89937ed1a0dadafd4f77d3e65ab9a5baa48dd5fa5698f8d3f7e3d6749da2')
+ version('1.12.0-rc0', sha256='458c5ccc8572af00b3176af0f45f5f7eeb5af737bcc0a853982b55afcbe4cef6')
+ version('1.11.0', sha256='c65211a66fe0dce9f5470cc8fcb80ae6b04da12fd94707ed63ddddbd82fa9444')
+ version('1.10.0', sha256='8149b30eabbc9a2af5f038fb2b7f91070d4e01266377e0cd12e3af3feda93f8f')
+ version('1.9.10-1', sha256='9aed4adf97e3fcb2627a5f62bf4b0669af074475fe717952c29254eee413d98a')
+ version('1.9.10', sha256='5071c995a03e97e2bcfe0c5cc265330160316733336bb87dfcea3fc381065316')
+ version('1.9.9', sha256='74740b94e0c62e1e54f9880cf1eeb2d0bfb2203ae35fd72ece608f9b8e073ef7')
+ version('1.9.8-1', sha256='7d8d927e610272ff59a2afc5d90d69cf6ad886dbf9eb7d7ab25bc86f15f8ed52')
+ version('1.9.8', sha256='d014396a2128417bd1421ba80d2601422577094c0ff727c60bd3c6eb4856af9b')
+ version('1.9.7-1', sha256='c3c433c04a420afd351de44c0e40711d5813092b76f0cfa901a3119b75ab8118')
+ version('1.9.7', sha256='72519f7f6b5d28953e5086253bbcf5b10decde913ddeb93872dc51522bdfad2b')
+ version('1.9.6-1', sha256='66261f0272082f1752fe66b0ed5907cf292946b7276fc777d21bc86bd16460fe')
+ version('1.9.6', sha256='67e937c31d279cec9ad2c54a4f66e479dfbe506ceb0253f611a54323fb4c1cfb')
+ version('1.9.5', sha256='d155dc2a260fe0c75c63c185fa4c4b4c6c5b7c444fcdac7109bb71941c9603f1')
version('1.9.4', sha256='41931a7d73331fc39c6bea56d1eb8d4d8bbf7c73688979bbdab0e55772f538d1')
version('1.9.3', sha256='92482ad0219cd2d727766f42a4fc952d7c5fd0183c5e201d9a117568387b4fd1')
version('1.9.2', sha256='1fb1272be9e8c28973f5c39eb230d1914375ef38bcaacf09a3fa51c6b710b756')
diff --git a/var/spack/repos/builtin/packages/tidy-html5/package.py b/var/spack/repos/builtin/packages/tidy-html5/package.py
new file mode 100644
index 0000000000..6f4d5ef05a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tidy-html5/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 TidyHtml5(CMakePackage):
+ """Tidy is a console application for Mac OS X, Linux, Windows, UNIX, and more.
+ It corrects and cleans up HTML and XML documents by fixing markup errors and
+ upgrading legacy code to modern standards."""
+
+ homepage = "https://www.html-tidy.org/"
+ url = "https://github.com/htacg/tidy-html5/archive/5.6.0.tar.gz"
+
+ version('5.7.28', sha256='5caa2c769204f506e24ea4986a45abe23f71d14f0fe968314f20065f342ffdba')
+ version('5.6.0', sha256='08a63bba3d9e7618d1570b4ecd6a7daa83c8e18a41c82455b6308bc11fe34958')
+
+ depends_on('cmake@2.8.12:', type='build')
diff --git a/var/spack/repos/builtin/packages/tig/package.py b/var/spack/repos/builtin/packages/tig/package.py
index 68e54bc05d..e264badd2b 100644
--- a/var/spack/repos/builtin/packages/tig/package.py
+++ b/var/spack/repos/builtin/packages/tig/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/time/package.py b/var/spack/repos/builtin/packages/time/package.py
index 0744b22509..de561b1c87 100644
--- a/var/spack/repos/builtin/packages/time/package.py
+++ b/var/spack/repos/builtin/packages/time/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/timedatex/package.py b/var/spack/repos/builtin/packages/timedatex/package.py
index 5ee5ef9d1c..b5966a6953 100644
--- a/var/spack/repos/builtin/packages/timedatex/package.py
+++ b/var/spack/repos/builtin/packages/timedatex/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/timemory/package.py b/var/spack/repos/builtin/packages/timemory/package.py
index 7add541617..4eeb39efc3 100644
--- a/var/spack/repos/builtin/packages/timemory/package.py
+++ b/var/spack/repos/builtin/packages/timemory/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,8 +8,9 @@
from spack import *
-class Timemory(CMakePackage):
- """Timing + Memory + Hardware Counter Utilities for C/C++/CUDA/Python"""
+class Timemory(CMakePackage, PythonPackage):
+ '''Modular profiling toolkit and suite of libraries and tools
+ for C/C++/Fortran/CUDA/Python'''
homepage = 'https://timemory.readthedocs.io/en/latest/'
git = 'https://github.com/NERSC/timemory.git'
@@ -17,21 +18,46 @@ class Timemory(CMakePackage):
version('master', branch='master', submodules=True)
version('develop', branch='develop', submodules=True)
- version('3.0.1', commit='ef638e1cde90275ce7c0e12fc4902c27bcbdeefd',
- submodules=True)
- version('3.0.0', commit='b36b1673b2c6b7ff3126d8261bef0f8f176c7beb',
- submodules=True)
+ version('3.2.3', commit='d535e478646e331a4c65cfd8c8f759c9a363ccc9', submodules=True)
+ version('3.2.2', commit='4725f4e4a3eea3b80b50a01ea088b5d5a1cf40ab', submodules=True)
+ version('3.2.1', commit='76ff978d9b1568b7f88a3de82bb84a2042003630', submodules=True)
+ version('3.2.0', commit='2bdd28e87224558060e27da90f9b6fcfb20dd324', submodules=True)
+ version('3.1.0', commit='b12de7eeed699d820693fecd6136daff744f21b6', submodules=True)
+ version('3.0.1', commit='ef638e1cde90275ce7c0e12fc4902c27bcbdeefd', submodules=True)
+ version('3.0.0', commit='b36b1673b2c6b7ff3126d8261bef0f8f176c7beb', submodules=True)
variant('shared', default=True, description='Build shared libraries')
variant('static', default=False, description='Build static libraries')
+ variant('pic', default=True, description='Build position independent code')
+ variant('install_headers', default=True, description='Install headers')
+ variant(
+ 'install_config', default=True, description='Install cmake configuration files'
+ )
variant('python', default=False, description='Enable Python support')
- variant('python_deps', default=False,
- description='Install non-critical python dependencies '
- '(may significantly increase spack install time)')
- variant('mpi', default=False,
- description='Enable support for MPI aggregation')
- variant('nccl', default=False,
- description='Enable support for wrapping NCCL functions')
+ variant(
+ 'python_hatchet',
+ default=False,
+ description='Build Python hatchet submodule '
+ '(does not conflict with py-hatchet)',
+ )
+ variant(
+ 'python_line_profiler',
+ default=False,
+ description=(
+ 'Build timemorys extended version of py-line-profiler '
+ '(does not conflict with py-line-profiler)'
+ ),
+ )
+ variant(
+ 'python_deps',
+ default=False,
+ description='Install non-critical python dependencies '
+ '(may significantly increase spack install time)',
+ )
+ variant('mpi', default=False, description='Enable support for MPI aggregation')
+ variant(
+ 'nccl', default=False, description='Enable support for wrapping NCCL functions'
+ )
variant('tau', default=False, description='Enable TAU support')
variant('papi', default=False, description='Enable PAPI support')
variant('cuda', default=False, description='Enable CUDA support')
@@ -40,67 +66,157 @@ class Timemory(CMakePackage):
variant('vtune', default=False, description='Enable VTune support')
variant('upcxx', default=False, description='Enable UPC++ support')
variant('gotcha', default=False, description='Enable GOTCHA support')
- variant('likwid', default=False, description='Enable LIKWID support')
+ variant(
+ 'likwid',
+ default=False,
+ description='Enable LIKWID CPU marker API support (perfmon)',
+ )
+ variant(
+ 'likwid_nvmon',
+ default=False,
+ description='Enable LIKWID GPU marker API support (nvmon)',
+ )
variant('caliper', default=False, description='Enable Caliper support')
- variant('dyninst', default=False,
- description='Build dynamic instrumentation tools')
+ variant('dyninst', default=False, description='Build dynamic instrumentation tools')
variant('examples', default=False, description='Build/install examples')
- variant('gperftools', default=False,
- description='Enable gperftools support')
- variant('kokkos_tools', default=False,
- description=('Build generic kokkos-tools libraries, e.g. '
- 'kp_timemory, kp_timemory_filter'))
- variant('kokkos_build_config', default=False,
- description=('Build pre-configured (i.e. dedicated) kokkos-tools '
- 'libraries, e.g. kp_timemory_cpu_flops'))
- variant('cuda_arch', default='auto', description='CUDA architecture name',
- values=('auto', 'kepler', 'tesla', 'maxwell', 'pascal',
- 'volta', 'turing'), multi=False)
- variant('cpu_target', default='auto',
- description=('Build for specific cpu architecture (specify '
- 'cpu-model)'))
- variant('use_arch', default=False,
- description=('Build all of timemory w/ cpu_target architecture '
- 'flags (default: roofline toolkit only)'))
- variant('tls_model', default='global-dynamic',
- description='Thread-local static model', multi=False,
- values=('global-dynamic', 'local-dynamic', 'initial-exec',
- 'local-exec'))
- variant('lto', default=False,
- description='Build w/ link-time optimization')
- variant('statistics', default=True,
- description=('Build components w/ support for statistics '
- '(min/max/stddev)'))
- variant('extra_optimizations', default=True,
- description='Build timemory with extra optimization flags')
- variant('cxxstd', default='14', description='C++ language standard',
- values=('14', '17', '20'), multi=False)
- variant('mpip_library', default=False,
- description='Build stand-alone timemory-mpip GOTCHA library')
+ variant('gperftools', default=False, description='Enable gperftools support')
+ variant(
+ 'kokkos_tools',
+ default=False,
+ description=(
+ 'Build generic kokkos-tools libraries, e.g. '
+ 'kp_timemory, kp_timemory_filter'
+ ),
+ )
+ variant(
+ 'kokkos_build_config',
+ default=False,
+ description=(
+ 'Build pre-configured (i.e. dedicated) kokkos-tools '
+ 'libraries, e.g. kp_timemory_cpu_flops'
+ ),
+ )
+ variant(
+ 'cuda_arch',
+ default='auto',
+ description='CUDA architecture name',
+ values=(
+ 'auto',
+ 'kepler',
+ 'kepler30',
+ 'kepler32',
+ 'kepler35',
+ 'kepler37',
+ 'tesla',
+ 'maxwell',
+ 'maxwell50',
+ 'maxwell52',
+ 'maxwell53',
+ 'pascal',
+ 'pascal60',
+ 'pascal61',
+ 'volta',
+ 'volta70',
+ 'volta72',
+ 'turing',
+ 'turing75',
+ 'ampere',
+ 'ampere80',
+ 'ampere86',
+ ),
+ multi=True,
+ )
+ variant(
+ 'cpu_target',
+ default='auto',
+ description=('Build for specific cpu architecture (specify ' 'cpu-model)'),
+ )
+ variant(
+ 'use_arch',
+ default=False,
+ description=(
+ 'Build all of timemory w/ cpu_target architecture '
+ 'flags (default: roofline toolkit only)'
+ ),
+ )
+ variant(
+ 'tls_model',
+ default='global-dynamic',
+ description='Thread-local static model',
+ multi=False,
+ values=('global-dynamic', 'local-dynamic', 'initial-exec', 'local-exec'),
+ )
+ variant('lto', default=False, description='Build with link-time optimization')
+ variant(
+ 'statistics',
+ default=True,
+ description=('Build components w/ support for statistics ' '(min/max/stddev)'),
+ )
+ variant(
+ 'extra_optimizations',
+ default=True,
+ description='Build timemory with extra optimization flags',
+ )
+ variant(
+ 'cxxstd',
+ default='14',
+ description='C++ language standard',
+ values=('14', '17', '20'),
+ multi=False,
+ )
+ variant(
+ 'cudastd',
+ default='14',
+ description='CUDA language standard',
+ values=('14', '17'),
+ multi=False,
+ )
+ variant(
+ 'unity_build',
+ default=True,
+ description='Build with CMAKE_UNITY_BUILD=ON for faster builds '
+ 'but larger memory consumption',
+ )
+ variant(
+ 'mpip_library',
+ default=False,
+ description='Build stand-alone timemory-mpip GOTCHA library',
+ )
variant('ompt', default=False, description=('Enable OpenMP tools support'))
- variant('ompt_standalone', default=False,
- description=('Enable OpenMP tools support via drop-in '
- 'replacement of libomp/libgomp/libiomp5'))
- variant('ompt_llvm', default=False,
- description='Enable OpenMP tools support as part of llvm build')
- variant('ompt_library', default=False,
- description='Build stand-alone timemory-ompt library')
- variant('allinea_map', default=False,
- description='Enable Allinea ARM-MAP support')
- variant('require_packages', default=True,
- description=('find_package(...) resulting in NOTFOUND '
- 'generates error'))
-
- depends_on('cmake@3.11:', type='build')
+ variant(
+ 'ompt_library',
+ default=False,
+ description='Build stand-alone timemory-ompt library',
+ )
+ variant('allinea_map', default=False, description='Enable Allinea ARM-MAP support')
+ variant(
+ 'require_packages',
+ default=True,
+ description=('find_package(...) resulting in NOTFOUND ' 'generates error'),
+ )
+ variant(
+ 'compiler', default=True, description='Enable compiler instrumentation support'
+ )
+ variant(
+ 'ert',
+ default=True,
+ description='Enable extern templates for empirical roofline toolkit (ERT)',
+ )
extends('python', when='+python')
+ depends_on('cmake@3.15:', type='build')
depends_on('python@3:', when='+python', type=('build', 'run'))
- depends_on('py-cython', when='+python', type=('build'))
+ depends_on('py-cython', when='+python_hatchet', type=('build'))
+ depends_on('py-cython', when='+python_line_profiler', type=('build'))
depends_on('pil', when='+python+python_deps', type=('run'))
depends_on('py-numpy', when='+python+python_deps', type=('run'))
+ depends_on('py-hatchet', when='+python+python_deps', type=('run'))
depends_on('py-matplotlib', when='+python+python_deps', type=('run'))
- depends_on('py-ipython', when='+python+python_deps', type=('run'))
depends_on('py-mpi4py', when='+python+mpi+python_deps', type=('run'))
+ depends_on('py-pandas', when='+python_deps+python_hatchet', type=('run'))
+ depends_on('py-pydot', when='+python_deps+python_hatchet', type=('run'))
+ depends_on('py-pyyaml', when='+python_deps+python_hatchet', type=('run'))
+ depends_on('py-multiprocess', when='+python_deps+python_hatchet', type=('run'))
depends_on('mpi', when='+mpi')
depends_on('nccl', when='+nccl')
depends_on('tau', when='+tau')
@@ -108,117 +224,149 @@ class Timemory(CMakePackage):
depends_on('cuda', when='+cuda')
depends_on('cuda', when='+cupti')
depends_on('upcxx', when='+upcxx')
- depends_on('likwid', when='+likwid')
+ depends_on('likwid', when='+likwid~likwid_nvmon')
+ depends_on('likwid+cuda', when='+likwid+likwid_nvmon')
depends_on('gotcha', when='+gotcha')
depends_on('caliper', when='+caliper')
depends_on('dyninst', when='+dyninst')
depends_on('gperftools', when='+gperftools')
depends_on('intel-parallel-studio', when='+vtune')
- depends_on('llvm-openmp-ompt+standalone', when='+ompt_standalone')
- depends_on('llvm-openmp-ompt~standalone', when='+ompt_llvm')
depends_on('arm-forge', when='+allinea_map')
- conflicts('+python', when='~shared',
- msg='+python requires building shared libraries')
+ conflicts(
+ '+python',
+ when='~shared~static',
+ msg='+python requires building shared or static libraries',
+ )
+ conflicts(
+ '~pic',
+ '~shared+static+python',
+ msg='Python bindings cannot be be linked to static libs w/o +pic',
+ )
conflicts('+python_deps', when='~python')
conflicts('+cupti', when='~cuda', msg='CUPTI requires CUDA')
- conflicts('+kokkos_tools', when='~tools',
- msg='+kokkos_tools requires +tools')
- conflicts('+kokkos_build_config', when='~tools',
- msg='+kokkos_build_config requires +tools')
- conflicts('+kokkos_build_config', when='~kokkos_tools',
- msg='+kokkos_build_config requires +kokkos_tools')
- conflicts('tls_model=local-dynamic', when='+python',
- msg='+python require tls_model=global-dynamic')
- conflicts('tls_model=initial-exec', when='+python',
- msg='+python require tls_model=global-dynamic')
- conflicts('tls_model=local-exec', when='+python',
- msg='+python require tls_model=global-dynamic')
- conflicts('+nccl', when='~gotcha',
- msg='+nccl requires +gotcha')
+ conflicts('+kokkos_tools', when='~tools', msg='+kokkos_tools requires +tools')
+ conflicts(
+ '+kokkos_build_config',
+ when='~tools~kokkos_tools',
+ msg='+kokkos_build_config requires +tools+kokkos_tools',
+ )
+ conflicts(
+ 'tls_model=local-dynamic',
+ when='+python',
+ msg='+python require tls_model=global-dynamic',
+ )
+ conflicts(
+ 'tls_model=initial-exec',
+ when='+python',
+ msg='+python require tls_model=global-dynamic',
+ )
+ conflicts(
+ 'tls_model=local-exec',
+ when='+python',
+ msg='+python require tls_model=global-dynamic',
+ )
+ conflicts('+nccl', when='~gotcha', msg='+nccl requires +gotcha')
+ conflicts(
+ '+nccl',
+ when='~shared~static',
+ msg='+nccl requires building shared or static libraries',
+ )
conflicts('+mpip_library', when='~mpi', msg='+mpip_library requires +mpi')
- conflicts('+mpip_library', when='~gotcha',
- msg='+mpip_library requires +gotcha')
- conflicts('+mpip_library', when='~shared',
- msg='+mpip_library requires building shared libraries')
- conflicts('+ompt_standalone', when='~ompt',
- msg='+ompt_standalone requires +ompt')
- conflicts('+ompt_llvm', when='~ompt',
- msg='+ompt_llvm requires +ompt')
- conflicts('+ompt_library', when='~ompt',
- msg='+ompt_library requires +ompt')
- conflicts('+ompt_library', when='~shared~static',
- msg='+ompt_library requires building shared or static libraries')
- conflicts('+ompt_standalone+ompt_llvm',
- msg=('+ompt_standalone and +ompt_llvm are not compatible. Use '
- '+ompt_llvm~ompt_standalone if building LLVM, use '
- '~ompt_llvm+ompt_standalone if ompt.h is not provided by '
- 'the compiler'))
+ conflicts('+mpip_library', when='~gotcha', msg='+mpip_library requires +gotcha')
+ conflicts(
+ '+mpip_library',
+ when='~shared~static',
+ msg='+mpip_library requires building shared or static libraries',
+ )
+ conflicts('+ompt_library', when='~ompt', msg='+ompt_library requires +ompt')
+ conflicts(
+ '+ompt_library',
+ when='~shared~static',
+ msg='+ompt_library requires building shared or static libraries',
+ )
+ conflicts('+likwid_nvmon', when='~likwid', msg='+likwid_nvmon requires +likwid')
def cmake_args(self):
spec = self.spec
args = [
- '-DTIMEMORY_BUILD_PYTHON=ON',
- '-DTIMEMORY_BUILD_TESTING=OFF',
- '-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON',
+ self.define('SPACK_BUILD', True),
+ self.define('TIMEMORY_BUILD_OMPT', False), # disable submodule
+ self.define('TIMEMORY_BUILD_PYTHON', True),
+ self.define('TIMEMORY_BUILD_GOTCHA', False), # disable submodule
+ self.define('TIMEMORY_BUILD_CALIPER', False), # disable submodule
+ self.define('TIMEMORY_BUILD_TESTING', False),
+ self.define('TIMEMORY_USE_MPI_LINK_FLAGS', False),
+ self.define('CMAKE_INSTALL_RPATH_USE_LINK_PATH', True),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('BUILD_STATIC_LIBS', 'static'),
+ self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'),
+ self.define_from_variant('CMAKE_CUDA_STANDARD', 'cudastd'),
+ self.define_from_variant('CMAKE_POSITION_INDEPENDENT_CODE', 'pic'),
+ self.define_from_variant('CpuArch_TARGET', 'cpu_target'),
+ self.define_from_variant('TIMEMORY_TLS_MODEL', 'tls_model'),
+ self.define_from_variant('TIMEMORY_UNITY_BUILD', 'unity_build'),
+ self.define_from_variant('TIMEMORY_REQUIRE_PACKAGES', 'require_packages'),
+ self.define_from_variant('TIMEMORY_INSTALL_HEADERS', 'install_headers'),
+ self.define_from_variant('TIMEMORY_INSTALL_CONFIG', 'install_config'),
+ self.define_from_variant('TIMEMORY_BUILD_ERT', 'ert'),
+ self.define_from_variant(
+ 'TIMEMORY_BUILD_COMPILER_INSTRUMENTATION', 'compiler'
+ ),
+ self.define_from_variant('TIMEMORY_BUILD_LTO', 'lto'),
+ self.define_from_variant('TIMEMORY_BUILD_TOOLS', 'tools'),
+ self.define_from_variant('TIMEMORY_BUILD_EXAMPLES', 'examples'),
+ self.define_from_variant('TIMEMORY_BUILD_NCCLP_LIBRARY', 'nccl'),
+ self.define_from_variant('TIMEMORY_BUILD_MALLOCP_LIBRARY', 'gotcha'),
+ self.define_from_variant('TIMEMORY_BUILD_MPIP_LIBRARY', 'mpip_library'),
+ self.define_from_variant('TIMEMORY_BUILD_OMPT_LIBRARY', 'ompt_library'),
+ self.define_from_variant('TIMEMORY_BUILD_KOKKOS_TOOLS', 'kokkos_tools'),
+ self.define_from_variant(
+ 'TIMEMORY_BUILD_KOKKOS_CONFIG', 'kokkos_build_config'
+ ),
+ self.define_from_variant(
+ 'TIMEMORY_BUILD_EXTRA_OPTIMIZATIONS', 'extra_optimizations'
+ ),
+ self.define_from_variant('TIMEMORY_BUILD_PYTHON_HATCHET', 'python_hatchet'),
+ self.define_from_variant(
+ 'TIMEMORY_BUILD_PYTHON_LINE_PROFILER', 'python_line_profiler'
+ ),
+ self.define_from_variant('TIMEMORY_USE_MPI', 'mpi'),
+ self.define_from_variant('TIMEMORY_USE_TAU', 'tau'),
+ self.define_from_variant('TIMEMORY_USE_ARCH', 'use_arch'),
+ self.define_from_variant('TIMEMORY_USE_PAPI', 'papi'),
+ self.define_from_variant('TIMEMORY_USE_OMPT', 'ompt'),
+ self.define_from_variant('TIMEMORY_USE_CUDA', 'cuda'),
+ self.define_from_variant('TIMEMORY_USE_NCCL', 'nccl'),
+ self.define_from_variant('TIMEMORY_USE_CUPTI', 'cupti'),
+ self.define_from_variant('TIMEMORY_USE_VTUNE', 'vtune'),
+ self.define_from_variant('TIMEMORY_USE_UPCXX', 'upcxx'),
+ self.define_from_variant('TIMEMORY_USE_PYTHON', 'python'),
+ self.define_from_variant('TIMEMORY_USE_GOTCHA', 'gotcha'),
+ self.define_from_variant('TIMEMORY_USE_LIKWID', 'likwid'),
+ self.define_from_variant('TIMEMORY_USE_LIKWID_PERFMON', 'likwid'),
+ self.define_from_variant('TIMEMORY_USE_LIKWID_NVMON', 'likwid_nvmon'),
+ self.define_from_variant('TIMEMORY_USE_DYNINST', 'dyninst'),
+ self.define_from_variant('TIMEMORY_USE_CALIPER', 'caliper'),
+ self.define_from_variant('TIMEMORY_USE_GPERFTOOLS', 'gperftools'),
+ self.define_from_variant('TIMEMORY_USE_STATISTICS', 'statistics'),
+ self.define_from_variant('TIMEMORY_USE_ALLINEA_MAP', 'allinea_map'),
]
- cxxstd = spec.variants['cxxstd'].value
- args.append('-DCMAKE_CXX_STANDARD={0}'.format(cxxstd))
-
- tls = spec.variants['tls_model'].value
- args.append('-DTIMEMORY_TLS_MODEL={0}'.format(tls))
-
if '+python' in spec:
- args.append('-DPYTHON_EXECUTABLE={0}'.format(
- spec['python'].command.path))
-
- if '+nccl' in spec:
- args.append('-DTIMEMORY_USE_NCCL=ON')
- args.append('-DTIMEMORY_BUILD_NCCLP_LIBRARY=ON')
+ pyexe = spec['python'].command.path
+ args.append(self.define('PYTHON_EXECUTABLE=', pyexe))
+ args.append(self.define('Python3_EXECUTABLE', pyexe))
if '+mpi' in spec:
- args.append('-DTIMEMORY_USE_MPI_LINK_FLAGS=OFF')
- args.append('-DMPI_C_COMPILER={0}'.format(spec['mpi'].mpicc))
- args.append('-DMPI_CXX_COMPILER={0}'.format(spec['mpi'].mpicxx))
+ args.append(self.define('MPI_C_COMPILER', spec['mpi'].mpicc))
+ args.append(self.define('MPI_CXX_COMPILER', spec['mpi'].mpicxx))
if '+cuda' in spec:
- targ = spec.variants['cuda_arch'].value
- key = '' if spec.satisfies('@:3.0.1') else 'TIMEMORY_'
# newer versions use 'TIMEMORY_CUDA_ARCH'
- args.append('-D{0}CUDA_ARCH={1}'.format(key, targ))
-
- cpu_target = spec.variants['cpu_target'].value
- if cpu_target == 'auto':
- args.append('-DCpuArch_TARGET={0}'.format(cpu_target))
-
- # forced disabling of submodule builds
- for dep in ('caliper', 'gotcha', 'ompt'):
- args.append('-DTIMEMORY_BUILD_{0}=OFF'.format(dep.upper()))
-
- # spack options which translate to TIMEMORY_<OPTION>
- for dep in ('require_packages', 'kokkos_build_config', 'use_arch'):
- args.append('-DTIMEMORY_{0}={1}'.format(
- dep.upper(), 'ON' if '+{0}'.format(dep) in spec else 'OFF'))
-
- # spack options which translate to BUILD_<OPTION>_LIBS
- for dep in ('shared', 'static'):
- args.append('-DBUILD_{0}_LIBS={1}'.format(
- dep.upper(), 'ON' if '+{0}'.format(dep) in spec else 'OFF'))
-
- # spack options which translate to TIMEMORY_BUILD_<OPTION>
- for dep in ('tools', 'examples', 'kokkos_tools', 'lto',
- 'extra_optimizations', 'mpip_library', 'ompt_library'):
- args.append('-DTIMEMORY_BUILD_{0}={1}'.format(
- dep.upper(), 'ON' if '+{0}'.format(dep) in spec else 'OFF'))
-
- # spack options which translate to TIMEMORY_USE_<OPTION>
- for dep in ('allinea_map', 'python', 'mpi', 'tau', 'papi', 'ompt',
- 'cuda', 'cupti', 'cupti', 'vtune', 'upcxx', 'gotcha',
- 'likwid', 'caliper', 'dyninst', 'gperftools',
- 'statistics'):
- args.append('-DTIMEMORY_USE_{0}={1}'.format(
- dep.upper(), 'ON' if '+{0}'.format(dep) in spec else 'OFF'))
+ key = 'CUDA_ARCH' if spec.satisfies('@:3.0.1') else 'TIMEMORY_CUDA_ARCH'
+ args.append(self.define_from_variant(key, 'cuda_arch'))
+ args.append(self.define_from_variant('CMAKE_CUDA_STANDARD', 'cudastd'))
return args
diff --git a/var/spack/repos/builtin/packages/tinker/package.py b/var/spack/repos/builtin/packages/tinker/package.py
index 7a15b81107..91d8909768 100644
--- a/var/spack/repos/builtin/packages/tinker/package.py
+++ b/var/spack/repos/builtin/packages/tinker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tinyxml/package.py b/var/spack/repos/builtin/packages/tinyxml/package.py
index 3e924e3a9f..d4d381fd5b 100644
--- a/var/spack/repos/builtin/packages/tinyxml/package.py
+++ b/var/spack/repos/builtin/packages/tinyxml/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Tinyxml(CMakePackage):
"""Simple, small, efficient, C++ XML parser"""
@@ -26,6 +27,4 @@ class Tinyxml(CMakePackage):
"CMakeLists.txt"), "CMakeLists.txt")
def cmake_args(self):
- spec = self.spec
- return [
- '-DBUILD_SHARED_LIBS=%s' % ('YES' if '+shared' in spec else 'NO')]
+ return [self.define_from_variant('BUILD_SHARED_LIBS', 'shared')]
diff --git a/var/spack/repos/builtin/packages/tinyxml2/package.py b/var/spack/repos/builtin/packages/tinyxml2/package.py
index 1cca1b4c30..ab3492bae0 100644
--- a/var/spack/repos/builtin/packages/tinyxml2/package.py
+++ b/var/spack/repos/builtin/packages/tinyxml2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tioga/package.py b/var/spack/repos/builtin/packages/tioga/package.py
index 602e5823ef..11c96a1aa1 100644
--- a/var/spack/repos/builtin/packages/tioga/package.py
+++ b/var/spack/repos/builtin/packages/tioga/package.py
@@ -1,25 +1,39 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import sys
from spack import *
-class Tioga(CMakePackage):
+class Tioga(CMakePackage, CudaPackage):
"""Topology Independent Overset Grid Assembly (TIOGA)"""
homepage = "https://github.com/jsitaraman/tioga"
git = "https://github.com/jsitaraman/tioga.git"
+ maintainers = ['jsitaraman', 'sayerhs']
+
+ version('develop', branch='exawind')
version('master', branch='master')
- variant('shared', default=True,
- description="Enable building shared libraries")
+ variant('shared', default=sys.platform != 'darwin',
+ description="Build shared libraries")
variant('pic', default=True,
description="Position independent code")
+ variant('nodegid', default=True,
+ description="Enable support for global Node IDs")
+ variant('timers', default=False,
+ description="Enable timers")
+ variant('stats', default=False,
+ description="Enable output of holecut stats")
+ variant('cxxstd', default='11',
+ values=('11', '14'), multi=False,
+ description="C++ standard to use")
depends_on('mpi')
+ depends_on('cuda@9.0.0:', when='+cuda')
# Tioga has the fortran module file problem with parallel builds
parallel = False
@@ -27,20 +41,26 @@ class Tioga(CMakePackage):
def cmake_args(self):
spec = self.spec
- options = [
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
- '-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=%s' % (
- 'ON' if '+pic' in spec else 'OFF'),
- '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
- '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
- '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
- '-DMPI_CXX_COMPILER:PATH=%s' % spec['mpi'].mpicxx,
- '-DMPI_C_COMPILER:PATH=%s' % spec['mpi'].mpicc,
- '-DMPI_Fortran_COMPILER:PATH=%s' % spec['mpi'].mpifc
+ args = [
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('CMAKE_POSITION_INDEPENDENT_CODE', 'pic'),
+ self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'),
+ self.define_from_variant('TIOGA_HAS_NODEGID', 'nodegid'),
+ self.define_from_variant('TIOGA_ENABLE_TIMERS', 'timers'),
+ self.define_from_variant('TIOGA_OUTPUT_STATS', 'stats'),
+ self.define_from_variant('TIOGA_ENABLE_CUDA', 'cuda'),
]
+ if '+cuda' in self.spec:
+ args.append(self.define('CMAKE_CUDA_SEPARABLE_COMPILATION', True))
+
+ # Currently TIOGA only supports one device arch during specialization
+ cuda_arch = self.spec.variants['cuda_arch'].value
+ if cuda_arch:
+ arch_sorted = list(sorted(cuda_arch, reverse=True))
+ args.append(self.define('TIOGA_CUDA_SM', arch_sorted[0]))
+
if 'darwin' in spec.architecture:
- options.append('-DCMAKE_MACOSX_RPATH:BOOL=ON')
+ args.append(self.define('CMAKE_MACOSX_RPATH', True))
- return options
+ return args
diff --git a/var/spack/repos/builtin/packages/tippecanoe/package.py b/var/spack/repos/builtin/packages/tippecanoe/package.py
index 4bf4b70125..0d8f792ae3 100644
--- a/var/spack/repos/builtin/packages/tippecanoe/package.py
+++ b/var/spack/repos/builtin/packages/tippecanoe/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tiptop/package.py b/var/spack/repos/builtin/packages/tiptop/package.py
index 2fb46c678c..2ce95777b9 100644
--- a/var/spack/repos/builtin/packages/tiptop/package.py
+++ b/var/spack/repos/builtin/packages/tiptop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tix/package.py b/var/spack/repos/builtin/packages/tix/package.py
index c3d3651ee0..237c3fad3f 100644
--- a/var/spack/repos/builtin/packages/tix/package.py
+++ b/var/spack/repos/builtin/packages/tix/package.py
@@ -1,22 +1,48 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
from spack import *
class Tix(AutotoolsPackage):
- """Tix is a powerful high-level widget set that expands the capabilities
- of your Tk/Tcl and Python applications."""
+ """Tix, the Tk Interface eXtension, is a powerful set of user interface components
+ that expands the capabilities of your Tcl/Tk and Python applications. Using Tix
+ together with Tk will greatly enhance the appearance and functionality of your
+ application."""
homepage = "https://sourceforge.net/projects/tix/"
url = "https://sourceforge.net/projects/tix/files/tix/8.4.3/Tix8.4.3-src.tar.gz/download"
+
version('8.4.3', sha256='562f040ff7657e10b5cffc2c41935f1a53c6402eb3d5f3189113d734fd6c03cb')
- extends('tcl')
- depends_on('tk@:8.5.99')
- depends_on('tcl@:8.5.99')
+ extends('tcl', type=('build', 'link', 'run'))
+ depends_on('tk', type=('build', 'link', 'run'))
+
+ patch('https://raw.githubusercontent.com/macports/macports-ports/master/x11/tix/files/panic.patch',
+ sha256='1be1a1c7453f6ab8771f90d7e7c0f8959490104752a16a8755bbb7287a841a96',
+ level=0)
+ patch('https://raw.githubusercontent.com/macports/macports-ports/master/x11/tix/files/implicit.patch',
+ sha256='8a2720368c7757896814684147029d8318b9aa3b0914b3f37dd5e8a8603a61d3',
+ level=0)
+ patch('https://raw.githubusercontent.com/macports/macports-ports/master/x11/tix/files/patch-generic-tixGrSort.c.diff',
+ sha256='99b33cc307f71bcf9cc6f5a44b588f22956884ce3f1e4c716ad64c79cf9c5f41',
+ level=0)
+ patch('https://raw.githubusercontent.com/macports/macports-ports/master/x11/tix/files/patch-missing-headers.diff',
+ sha256='d9f789dcfe5f4c5ee4589a18f9f410cdf162e41d35d00648c1ef37831f4a2b2b',
+ level=0)
+ patch('https://raw.githubusercontent.com/macports/macports-ports/master/x11/tix/files/patch-tk_x11.diff',
+ sha256='1e28d8eee1aaa956a00571cf495a4775e72a993958dff1cabfbc5f102e327a6f',
+ level=0)
+ patch('https://raw.githubusercontent.com/macports/macports-ports/master/x11/tix/files/patch-tk_aqua.diff',
+ sha256='41a717f5d95f61b4b8196ca6f14ece8f4764d4ba58fb2e1ae15e3240ee5ac534',
+ level=0, when='platform=darwin')
+ patch('https://raw.githubusercontent.com/macports/macports-ports/master/x11/tix/files/patch-dyld_variable.diff',
+ sha256='719eb2e4d8c5d6aae897e5f676cf5ed1a0005c1bd07fd9b18705d81a005f592b',
+ level=0, when='platform=darwin')
def configure_args(self):
spec = self.spec
@@ -27,7 +53,39 @@ class Tix(AutotoolsPackage):
]
return args
+ @run_after('install')
+ def darwin_fix(self):
+ # The shared library is not installed correctly on Darwin; fix this
+ if 'platform=darwin' in self.spec:
+ fix_darwin_install_name(self.prefix.lib.Tix + str(self.version))
+
+ def test(self):
+ test_data_dir = self.test_suite.current_test_data_dir
+ test_file = test_data_dir.join('test.tcl')
+ self.run_test(self.spec['tcl'].command.path, test_file,
+ purpose='test that tix can be loaded')
+
@property
def libs(self):
return find_libraries(['libTix{0}'.format(self.version)],
root=self.prefix, recursive=True)
+
+ def setup_run_environment(self, env):
+ """Set TIX_LIBRARY to the directory containing Tix.tcl.
+
+ For further info, see:
+
+ * http://tix.sourceforge.net/docs/pdf/TixUser.pdf
+ """
+ # When using tkinter.tix from within spack provided python+tkinter+tix,
+ # python will not be able to find Tix unless TIX_LIBRARY is set.
+ env.set('TIX_LIBRARY', os.path.dirname(find(self.prefix, 'Tix.tcl')[0]))
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ """Set TIX_LIBRARY to the directory containing Tix.tcl.
+
+ For further info, see:
+
+ * http://tix.sourceforge.net/docs/pdf/TixUser.pdf
+ """
+ env.set('TIX_LIBRARY', os.path.dirname(find(self.prefix, 'Tix.tcl')[0]))
diff --git a/var/spack/repos/builtin/packages/tix/test/test.tcl b/var/spack/repos/builtin/packages/tix/test/test.tcl
new file mode 100644
index 0000000000..02b3ab986f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tix/test/test.tcl
@@ -0,0 +1,5 @@
+#!/usr/bin/env tclsh
+
+package require Tix
+
+exit
diff --git a/var/spack/repos/builtin/packages/tixi/package.py b/var/spack/repos/builtin/packages/tixi/package.py
index 74a7ed7c65..0521f01f78 100644
--- a/var/spack/repos/builtin/packages/tixi/package.py
+++ b/var/spack/repos/builtin/packages/tixi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tk/package.py b/var/spack/repos/builtin/packages/tk/package.py
index ff2e08875c..a96d2564a5 100644
--- a/var/spack/repos/builtin/packages/tk/package.py
+++ b/var/spack/repos/builtin/packages/tk/package.py
@@ -1,22 +1,23 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Tk(AutotoolsPackage, SourceforgePackage):
- """Tk is a graphical user interface toolkit that takes developing
- desktop applications to a higher level than conventional
- approaches. Tk is the standard GUI not only for Tcl, but for
- many other dynamic languages, and can produce rich, native
- applications that run unchanged across Windows, Mac OS X, Linux
- and more."""
- homepage = "http://www.tcl.tk"
+ """Tk is a graphical user interface toolkit that takes developing desktop
+ applications to a higher level than conventional approaches. Tk is the standard GUI
+ not only for Tcl, but for many other dynamic languages, and can produce rich, native
+ applications that run unchanged across Windows, Mac OS X, Linux and more."""
+
+ homepage = "https://www.tcl.tk"
sourceforge_mirror_path = "tcl/tk8.6.5-src.tar.gz"
+ version('8.6.11', sha256='5228a8187a7f70fa0791ef0f975270f068ba9557f57456f51eb02d9d4ea31282')
version('8.6.10', sha256='63df418a859d0a463347f95ded5cd88a3dd3aaa1ceecaeee362194bc30f3e386')
version('8.6.8', sha256='49e7bca08dde95195a27f594f7c850b088be357a7c7096e44e1158c7a5fd7b33')
version('8.6.6', sha256='d62c371a71b4744ed830e3c21d27968c31dba74dd2c45f36b9b071e6d88eb19d')
@@ -24,20 +25,40 @@ class Tk(AutotoolsPackage, SourceforgePackage):
version('8.6.3', sha256='ba15d56ac27d8c0a7b1a983915a47e0f635199b9473cf6e10fbce1fc73fd8333')
version('8.5.19', sha256='407af1de167477d598bd6166d84459a3bdccc2fb349360706154e646a9620ffa')
- variant('xft', default=True,
- description='Enable X FreeType')
- variant('xss', default=True,
- description='Enable X Screen Saver')
+ variant('xft', default=True, description='Enable X FreeType')
+ variant('xss', default=True, description='Enable X Screen Saver')
- extends('tcl')
+ extends('tcl', type=('build', 'link', 'run'))
- depends_on('tcl@8.6:', when='@8.6:')
+ depends_on('tcl@8.6:', type=('build', 'link', 'run'), when='@8.6:')
depends_on('libx11')
depends_on('libxft', when='+xft')
depends_on('libxscrnsaver', when='+xss')
configure_directory = 'unix'
+ # https://core.tcl-lang.org/tk/tktview/3598664fffffffffffff
+ # https://core.tcl-lang.org/tk/info/8b679f597b1d17ad
+ # https://core.tcl-lang.org/tk/info/997b17c343444e48
+ patch('https://raw.githubusercontent.com/macports/macports-ports/master/x11/tk/files/patch-unix-Makefile.in.diff',
+ sha256='54bba3d2b3550b7e2c636881c1a3acaf6e1eb743f314449a132864ff47fd0010',
+ level=0, when='@:8.6.11 platform=darwin')
+ patch('https://raw.githubusercontent.com/macports/macports-ports/master/x11/tk/files/patch-dyld_fallback_library_path.diff',
+ sha256='9ce6512f1928db9987986f4d3540207c39429395d5234bd6489ba9d86a6d9c31',
+ level=0, when='platform=darwin')
+
+ def configure_args(self):
+ spec = self.spec
+ config_args = [
+ '--with-tcl={0}'.format(spec['tcl'].libs.directories[0]),
+ '--x-includes={0}'.format(spec['libx11'].headers.directories[0]),
+ '--x-libraries={0}'.format(spec['libx11'].libs.directories[0])
+ ]
+ config_args += self.enable_or_disable('xft')
+ config_args += self.enable_or_disable('xss')
+
+ return config_args
+
def install(self, spec, prefix):
with working_dir(self.build_directory):
make('install')
@@ -56,32 +77,54 @@ class Tk(AutotoolsPackage, SourceforgePackage):
stage_src, installed_src,
join_path(self.spec['tk'].libs.directories[0], 'tkConfig.sh'))
+ @run_after('install')
+ def symlink_wish(self):
+ with working_dir(self.prefix.bin):
+ symlink('wish{0}'.format(self.version.up_to(2)), 'wish')
+
+ def test(self):
+ self.run_test(self.spec['tk'].command.path, ['-h'],
+ purpose='test wish command')
+
+ test_data_dir = self.test_suite.current_test_data_dir
+ test_file = test_data_dir.join('test.tcl')
+ self.run_test(self.spec['tcl'].command.path, test_file,
+ purpose='test that tk can be loaded')
+
+ @property
+ def command(self):
+ """Returns the wish command.
+
+ Returns:
+ Executable: the wish command
+ """
+ # Although we symlink wishX.Y to wish, we also need to support external
+ # installations that may not have this symlink, or may have multiple versions
+ # of Tk installed in the same directory.
+ return Executable(os.path.realpath(self.prefix.bin.join(
+ 'wish{0}'.format(self.version.up_to(2)))))
+
@property
def libs(self):
return find_libraries(['libtk{0}'.format(self.version.up_to(2))],
root=self.prefix, recursive=True)
def setup_run_environment(self, env):
- # When using Tkinter from within spack provided python+tkinter, python
- # will not be able to find Tcl/Tk unless TK_LIBRARY is set.
- env.set('TK_LIBRARY', self.spec['tk'].libs.directories[0])
+ """Set TK_LIBRARY to the directory containing tk.tcl.
- def setup_dependent_build_environment(self, env, dependent_spec):
- env.set('TK_LIBRARY', self.spec['tk'].libs.directories[0])
+ For further info, see:
- def configure_args(self):
- spec = self.spec
- config_args = [
- '--with-tcl={0}'.format(spec['tcl'].libs.directories[0]),
- '--x-includes={0}'.format(spec['libx11'].headers.directories[0]),
- '--x-libraries={0}'.format(spec['libx11'].libs.directories[0])
- ]
- config_args += self.enable_or_disable('xft')
- config_args += self.enable_or_disable('xss')
+ * https://www.tcl-lang.org/man/tcl/TkCmd/tkvars.htm
+ """
+ # When using tkinter from within spack provided python+tkinter,
+ # python will not be able to find Tk unless TK_LIBRARY is set.
+ env.set('TK_LIBRARY', os.path.dirname(sorted(find(self.prefix, 'tk.tcl'))[0]))
- return config_args
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ """Set TK_LIBRARY to the directory containing tk.tcl.
- @run_after('install')
- def symlink_wish(self):
- with working_dir(self.prefix.bin):
- symlink('wish{0}'.format(self.version.up_to(2)), 'wish')
+ For further info, see:
+
+ * https://www.tcl-lang.org/man/tcl/TkCmd/tkvars.htm
+ """
+ env.set('TK_LIBRARY', os.path.dirname(sorted(find(self.prefix, 'tk.tcl'))[0]))
diff --git a/var/spack/repos/builtin/packages/tk/test/test.tcl b/var/spack/repos/builtin/packages/tk/test/test.tcl
new file mode 100644
index 0000000000..b52c3b8b9f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tk/test/test.tcl
@@ -0,0 +1,5 @@
+#!/usr/bin/env tclsh
+
+package require Tk
+
+exit
diff --git a/var/spack/repos/builtin/packages/tkrzw/package.py b/var/spack/repos/builtin/packages/tkrzw/package.py
new file mode 100644
index 0000000000..2cd87b5a94
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tkrzw/package.py
@@ -0,0 +1,88 @@
+# Copyright 2013-2021 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 Tkrzw(AutotoolsPackage):
+ """Tkrzw is a C++ library implementing database managers with various algorithms."""
+
+ homepage = "https://dbmx.net/tkrzw/"
+ url = "https://dbmx.net/tkrzw/pkg/tkrzw-0.9.22.tar.gz"
+ git = "https://github.com/estraier/tkrzw.git"
+
+ version('master', branch='master')
+ version('0.9.44', sha256='088ac619fbf7fc22c110674b3f8fe8d8573a1d7088e5616b268fd9f68ba25650')
+ version('0.9.43', sha256='60f7b579edb4f911ecaf35ff6c07f53b3d566424d8bf179b1991ade5071f0bbc')
+ version('0.9.42', sha256='135fb404d5a1b0bcee717f8e648a6f5ff140ec30069fecfde3b380f611356535')
+ version('0.9.41', sha256='76e68fb9a7c34eb927224a4a2b755ba4040e7066a42cf930c4f7bc2656c11d83')
+ version('0.9.40', sha256='3da034215aabeb371f7553a3e54d2b20ec63d3aa391cef3cef36ba40da7f4bb4')
+ version('0.9.39', sha256='a64eea9b05305877c936fb3b231f8924264319ee187545771c56fd08f67af6a8')
+ version('0.9.38', sha256='8036a40e2f4d13312ce33ed6bef0121525f1e7acf96900a5540ef3c633cfcf64')
+ version('0.9.37', sha256='cf1f1cd5d5e8826f44560ede56b135d396236d843fcf485f2c9feb5ca27e373b')
+ version('0.9.36', sha256='370e41b0b10c8b50f8dbe686a2fcb4efad53cfe26dd72739bc8f72ec3f480829')
+ version('0.9.35', sha256='5a1703a895f51948a3648ddbe7944dc28593c6746e93eadcd52bf0acd9ad5490')
+ version('0.9.34', sha256='0e236e5381400855f678154b794e9e7c33db7677f40e5241dd39e56fcfa640a7')
+ version('0.9.33', sha256='ea78e1a0042af8fa447184752e0ee0476a6074ffb77c880337b38d580b734abb')
+ version('0.9.32', sha256='be70ad680e5807406e1962133c97da5fdda7ed62df0b2e8d2446bd1daf728f03')
+ version('0.9.31', sha256='624f8c03282cd06f46fa4270eb4717680f4779a2b4338c1bbe8b2ea8fb2b48cb')
+ version('0.9.30', sha256='fea33337f0115f600afaedf872a828a4f516f4d86e6f6db7a648b03682b2499f')
+ version('0.9.29', sha256='120e5d471cd60f9f6c1b7eb25391dd055c4be12b8332124032b0489ad13c6989')
+ version('0.9.28', sha256='b2d363c7fa12a44d8f8d38cf97fbeb1bc068b2fcc1de7b628b2c20a22256fce3')
+ version('0.9.27', sha256='69d8e7cc998c7f33d6208df721bd5449f2bbf15b1af79186a17864ea36c522f0')
+ version('0.9.26', sha256='ee33d48b6aa071db37e4297b478bf5731d9a1289e83ca6c61afaafea78e13387')
+ version('0.9.25', sha256='6e2ba961d6963d1d0c572a3a3493dee655202007b133efc25f10b85dfc5f182d')
+ version('0.9.24', sha256='23ee06d5d1e359d7c40c834850751a55e5b19c34a4c086e90df1c7bfac7bd4ea')
+ version('0.9.23', sha256='43ba9e79b19fe782adf9abfaef7aa40811379ec98c3682313913d07cc9eb29c6')
+ version('0.9.22', sha256='f892dcabc87d53086a7c1db129d05dda9c1e6b341d94d438daa8bf6a9e55407c')
+ version('0.9.21', sha256='47211285fe41b5697d67eb4c22e850109acb4c657ebbaaf7eb815d3aac5bcc99')
+ version('0.9.20', sha256='6750c8539a0c874c2ae673f852b47373f3d688365bd0ef97abb857b02a84095f')
+ version('0.9.19', sha256='77c456368c0a0e241a87075bfe6f24a945fd603be5b5c63f6ae8af6f3aa87b3a')
+ version('0.9.18', sha256='f1b4151aa932b413380290ab63117ff824006aef6812a6f854a5112969de52c8')
+ version('0.9.17', sha256='aa2d40babf275a0b97d81706defaaa5c974724b3c8ffa028b9b46367fe151522')
+ version('0.9.16', sha256='2380b3de12ffea78d59249fb3ac3a2b16a4422b3a3282d0afcf450286dc3622d')
+ version('0.9.15', sha256='1e0e858c625804ae77c9386d5ded42c62211a356406d9264a4a37473d2f958cd')
+ version('0.9.14', sha256='57671a539bb9c0a223e8117c83053aa43fa9050e9231ebef7c6411f65cdaeaa6')
+ version('0.9.13', sha256='a6806fd30443cc2bed4539437bd8858b14a38fc81825fe4c49e754b7c133c866')
+ version('0.9.12', sha256='6d45a28015012763e55e959a71e6a0a31f808f4f2867784c750f96e16aa50c8b')
+ version('0.9.11', sha256='1d93a6966f9ab1f15568ee3d53ac54809f4b73230d0062b4ad65ebb6578f302e')
+ version('0.9.10', sha256='6956a33d1ccfca1c290851dc74c625dd6a3c8dc246264c8d686ad89d58f58b25')
+ version('0.9.9', sha256='e16cd6b10ce4d97a59958a205ffce7b0db09f49f1b18c437a869fa0ae1279b81')
+ version('0.9.8', sha256='5ee485c12060963b49963242545eb28524f8917e27db02def220d35edbba4fa5')
+ version('0.9.7', sha256='90e0244b5b67d6142cbe3186564e39676d06024203c34a492b73b17561067a95')
+ version('0.9.6', sha256='6194d9fb4c9cb565e05d1fdd0569bd25ba26a987f037aeee226d35145a54d0c2')
+ version('0.9.5', sha256='02da0da3f43cc4932851b1b00174acd0835becfda966d5a9f874dc2205e1fb52')
+ version('0.9.4', sha256='727a52fc706ee28ef45a0fd6bce8c08911365dd016ccdb4cce7ad3a595b7c0ed')
+ version('0.9.3', sha256='945b978402425de6f4cb156544ddf34d928b28100ff93d931816eec3b51be9aa')
+ version('0.9.2', sha256='9040af148ab3f35c6f1d4c83f2eba8b68625dbd760f2c0537a9981dbc9bbc661')
+ version('0.9.1', sha256='1062502f93d4a9b387372d89265a9ede1704c6bcadd9aac23f5fc8383e26045a')
+
+ variant('compression',
+ values=any_combination_of('zlib', 'lz4', 'lzma', 'zstd'),
+ description='List of supported compression backends')
+
+ depends_on('zlib', when='compression=zlib')
+ depends_on('lz4', when='compression=lz4')
+ depends_on('xz', when='compression=lzma') # lzma.h is in the xz package, not in lzma
+ depends_on('zstd', when='compression=zstd')
+
+ conflicts('compression=zlib', when='@:0.9.29')
+ conflicts('compression=lz4', when='@:0.9.29')
+ conflicts('compression=lzma', when='@:0.9.29')
+ conflicts('compression=zstd', when='@:0.9.29')
+ conflicts('%gcc@:7.2.0') # need C++17 standard
+
+ def configure_args(self):
+ spec = self.spec
+ args = []
+ if 'compression=zlib' in spec:
+ args.append('--enable-zlib')
+ if 'compression=lz4' in spec:
+ args.append('--enable-lz4')
+ if 'compression=lzma' in spec:
+ args.append('--enable-lzma')
+ if 'compression=zstd' in spec:
+ args.append('--enable-zstd')
+ return args
diff --git a/var/spack/repos/builtin/packages/tldd/package.py b/var/spack/repos/builtin/packages/tldd/package.py
index bd3d0f4f2a..0036a6601a 100644
--- a/var/spack/repos/builtin/packages/tldd/package.py
+++ b/var/spack/repos/builtin/packages/tldd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tmalign/package.py b/var/spack/repos/builtin/packages/tmalign/package.py
index 5ee2493c60..0635d7a70c 100644
--- a/var/spack/repos/builtin/packages/tmalign/package.py
+++ b/var/spack/repos/builtin/packages/tmalign/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Tmalign(Package):
"""TM-align is an algorithm for sequence-order independent protein
structure comparisons."""
- homepage = "http://zhanglab.ccmb.med.umich.edu/TM-align"
+ homepage = "https://zhanglab.ccmb.med.umich.edu/TM-align"
url = "http://zhanglab.ccmb.med.umich.edu/TM-align/TM-align-C/TMalignc.tar.gz"
version('2016-05-25', sha256='ce7f68289f3766d525afb0a58e3acfc28ae05f538d152bd33d57f8708c60e2af')
diff --git a/var/spack/repos/builtin/packages/tmhmm/package.py b/var/spack/repos/builtin/packages/tmhmm/package.py
index 9758f58510..4f87f0c85c 100644
--- a/var/spack/repos/builtin/packages/tmhmm/package.py
+++ b/var/spack/repos/builtin/packages/tmhmm/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Tmhmm(Package):
"""Transmembrane helices in proteins
@@ -14,7 +15,7 @@ class Tmhmm(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "http://www.cbs.dtu.dk/cgi-bin/nph-sw_request?tmhmm"
url = "file://{0}/tmhmm-2.0c.Linux.tar.gz".format(os.getcwd())
diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py
index 8a50e2ebe9..f073df0fde 100644
--- a/var/spack/repos/builtin/packages/tmux/package.py
+++ b/var/spack/repos/builtin/packages/tmux/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,11 +14,18 @@ class Tmux(AutotoolsPackage):
background) and reattach them to a different terminal. And do a lot more.
"""
- homepage = "http://tmux.github.io"
+ homepage = "https://tmux.github.io"
url = "https://github.com/tmux/tmux/releases/download/2.6/tmux-2.6.tar.gz"
+ version('3.2a', sha256='551553a4f82beaa8dadc9256800bcc284d7c000081e47aa6ecbb6ff36eacd05f')
+ version('3.2', sha256='664d345338c11cbe429d7ff939b92a5191e231a7c1ef42f381cebacb1e08a399')
+ version('3.1c', sha256='918f7220447bef33a1902d4faff05317afd9db4ae1c9971bef5c787ac6c88386')
version('3.1b', sha256='d93f351d50af05a75fe6681085670c786d9504a5da2608e481c47cf5e1486db9')
+ version('3.1a', sha256='10687cbb02082b8b9e076cf122f1b783acc2157be73021b4bedb47e958f4e484')
+ version('3.1', sha256='979bf38db2c36193de49149aaea5c540d18e01ccc27cf76e2aff5606bd186722')
version('3.0a', sha256='4ad1df28b4afa969e59c08061b45082fdc49ff512f30fc8e43217d7b0e5f8db9')
+ version('3.0', sha256='9edcd78df80962ee2e6471a8f647602be5ded62bb41c574172bb3dc3d0b9b4b4')
+ version('2.9a', sha256='839d167a4517a6bffa6b6074e89a9a8630547b2dea2086f1fad15af12ab23b25')
version('2.9', sha256='34901232f486fd99f3a39e864575e658b5d49f43289ccc6ee57c365f2e2c2980')
version('2.8', sha256='7f6bf335634fafecff878d78de389562ea7f73a7367f268b66d37ea13617a2ba')
version('2.7', sha256='9ded7d100313f6bc5a87404a4048b3745d61f2332f99ec1400a7c4ed9485d452')
diff --git a/var/spack/repos/builtin/packages/tomcat/package.py b/var/spack/repos/builtin/packages/tomcat/package.py
index 8821f482f6..374b03eb82 100644
--- a/var/spack/repos/builtin/packages/tomcat/package.py
+++ b/var/spack/repos/builtin/packages/tomcat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/toml11/package.py b/var/spack/repos/builtin/packages/toml11/package.py
new file mode 100644
index 0000000000..200e833e3c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/toml11/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 Toml11(CMakePackage):
+ """toml11 is a C++11 (or later) header-only toml parser/encoder depending
+ only on C++ standard library."""
+
+ homepage = "https://github.com/ToruNiina/toml11"
+ url = "https://github.com/ToruNiina/toml11/archive/refs/tags/v3.7.0.tar.gz"
+
+ maintainers = ['ashermancinelli', 'ToruNiina']
+
+ version('3.7.0', sha256='a0b6bec77c0e418eea7d270a4437510884f2fe8f61e7ab121729624f04c4b58e')
+ version('3.6.1', sha256='ca4c390ed8da0d77ae6eca30e70ab0bf5cc92adfc1bc2f71a2066bc5656d8d96')
+ version('3.6.0', sha256='39e8d651db346ae8c7e3b39d6338a37232b9af3bba36ade45b241bf105c2226c')
+ version('3.5.0', sha256='fc613874c6e80dc740134a7353cf23c7f834b59cd601af84ab535ee16a53b1c3')
+ version('3.4.0', sha256='bc6d733efd9216af8c119d8ac64a805578c79cc82b813e4d1d880ca128bd154d')
+ version('3.3.1', sha256='0c1b29e1a2873a1b1f6d0865a2966a2d3fd9155aeccb6139cd5af22f70b0b08f')
+ version('3.3.0', sha256='b29995475922fae3095445219d36733ef18976abdc85685d0804ee3ea04f09c0')
+ version('3.2.1', sha256='370f17409cfcbf3f629728ed7ec2e1573544058615fb5d066f4f7c14693143a9')
+ version('3.2.0', sha256='3d54cac38ea24477190e0535377e824bf06562970ef4d35b59aa9729437e1019')
+ version('3.1.0', sha256='3a118f32e5343998f37be9807c72fd11c3168fe12a5b1abfdc0f1e60de6380a4')
diff --git a/var/spack/repos/builtin/packages/tophat/package.py b/var/spack/repos/builtin/packages/tophat/package.py
index f54df7eca4..4ff94d4a24 100644
--- a/var/spack/repos/builtin/packages/tophat/package.py
+++ b/var/spack/repos/builtin/packages/tophat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Tophat(AutotoolsPackage):
"""Spliced read mapper for RNA-Seq."""
- homepage = "http://ccb.jhu.edu/software/tophat/index.shtml"
+ homepage = "https://ccb.jhu.edu/software/tophat/index.shtml"
url = "https://github.com/infphilo/tophat/archive/v2.1.1.tar.gz"
version('2.1.2', sha256='15016b82255dad085d4ee7d970e50f0e53a280d466335553d47790d8344ff4b1')
@@ -29,5 +29,8 @@ class Tophat(AutotoolsPackage):
parallel = False
+ def setup_build_environment(self, env):
+ env.append_flags("CFLAGS", self.compiler.cxx98_flag)
+
def configure_args(self):
return ["--with-boost={0}".format(self.spec['boost'].prefix)]
diff --git a/var/spack/repos/builtin/packages/torque/package.py b/var/spack/repos/builtin/packages/torque/package.py
new file mode 100644
index 0000000000..297944d0d8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/torque/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2021 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 Torque(Package):
+ """TORQUE (Terascale Open-source Resource and QUEue Manager) is an open
+ source project based on the original PBS resource manager developed by NASA,
+ LLNL, and MRJ."""
+
+ homepage = "https://github.com/abarbu/torque"
+ has_code = False
+
+ maintainers = ['sethrj']
+
+ version('3.0.4')
+ version('3.0.2')
+
+ provides('pbs')
+
+ # TORQUE needs to be added as an external package to SPACK. For this, the
+ # config file packages.yaml needs to be adjusted:
+ #
+ # packages:
+ # torque:
+ # buildable: False
+ # externals:
+ # - spec: torque@3.0.2
+ # prefix: /opt/torque (path to your TORQUE installation)
+
+ def install(self, spec, prefix):
+ raise InstallError(
+ self.spec.format('{name} is not installable, you need to specify '
+ 'it as an external package in packages.yaml'))
diff --git a/var/spack/repos/builtin/packages/totalview/package.py b/var/spack/repos/builtin/packages/totalview/package.py
index 50553aaeea..21fb52b4df 100644
--- a/var/spack/repos/builtin/packages/totalview/package.py
+++ b/var/spack/repos/builtin/packages/totalview/package.py
@@ -1,12 +1,12 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Totalview(Package):
"""Totalview parallel debugger.
diff --git a/var/spack/repos/builtin/packages/tpm2-tss/package.py b/var/spack/repos/builtin/packages/tpm2-tss/package.py
index f06f4a0378..31d49e3d8e 100644
--- a/var/spack/repos/builtin/packages/tpm2-tss/package.py
+++ b/var/spack/repos/builtin/packages/tpm2-tss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tppred/package.py b/var/spack/repos/builtin/packages/tppred/package.py
index d672f9e776..00606e0303 100644
--- a/var/spack/repos/builtin/packages/tppred/package.py
+++ b/var/spack/repos/builtin/packages/tppred/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tracer/package.py b/var/spack/repos/builtin/packages/tracer/package.py
index 400078f1ff..4694ef632a 100644
--- a/var/spack/repos/builtin/packages/tracer/package.py
+++ b/var/spack/repos/builtin/packages/tracer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/transabyss/package.py b/var/spack/repos/builtin/packages/transabyss/package.py
index 3ae4936857..b0638427c7 100644
--- a/var/spack/repos/builtin/packages/transabyss/package.py
+++ b/var/spack/repos/builtin/packages/transabyss/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Transabyss(Package):
"""De novo assembly of RNAseq data using ABySS"""
- homepage = "http://www.bcgsc.ca/platform/bioinfo/software/trans-abyss"
- url = "http://www.bcgsc.ca/platform/bioinfo/software/trans-abyss/releases/1.5.5/transabyss-1.5.5.zip"
+ homepage = "https://www.bcgsc.ca/platform/bioinfo/software/trans-abyss"
+ url = "https://www.bcgsc.ca/platform/bioinfo/software/trans-abyss/releases/1.5.5/transabyss-1.5.5.zip"
version('1.5.5', sha256='7804961c13296c587a1b22180dd3f02091a4494cbbd04fc33c2060599caadb0b')
diff --git a/var/spack/repos/builtin/packages/transdecoder/package.py b/var/spack/repos/builtin/packages/transdecoder/package.py
index 9e621a2152..0d8d064110 100644
--- a/var/spack/repos/builtin/packages/transdecoder/package.py
+++ b/var/spack/repos/builtin/packages/transdecoder/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Transdecoder(MakefilePackage):
assembly using Trinity, or constructed based on RNA-Seq alignments to
the genome using Tophat and Cufflinks."""
- homepage = "http://transdecoder.github.io/"
+ homepage = "https://transdecoder.github.io/"
url = "https://github.com/TransDecoder/TransDecoder/archive/TransDecoder-v5.5.0.tar.gz"
version('5.5.0', sha256='c800d9226350817471e9f51267c91f7cab99dbc9b26c980527fc1019e7d90a76')
diff --git a/var/spack/repos/builtin/packages/transposome/package.py b/var/spack/repos/builtin/packages/transposome/package.py
index 434e1307d4..a4a46d503a 100644
--- a/var/spack/repos/builtin/packages/transposome/package.py
+++ b/var/spack/repos/builtin/packages/transposome/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/transrate/package.py b/var/spack/repos/builtin/packages/transrate/package.py
index 2cb551bdd8..9db7a278db 100644
--- a/var/spack/repos/builtin/packages/transrate/package.py
+++ b/var/spack/repos/builtin/packages/transrate/package.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Transrate(Package):
"""Transrate is software for de-novo transcriptome assembly quality
analysis."""
- homepage = "http://hibberdlab.com/transrate/"
+ homepage = "https://hibberdlab.com/transrate/"
if sys.platform == 'darwin':
version('1.0.3', sha256='039eba81747dd53f65a99a61923369aae4ba341891215d31a2babe574ac99ca8',
diff --git a/var/spack/repos/builtin/packages/transset/package.py b/var/spack/repos/builtin/packages/transset/package.py
index 089ab2aecf..69de59dc8e 100644
--- a/var/spack/repos/builtin/packages/transset/package.py
+++ b/var/spack/repos/builtin/packages/transset/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,13 @@ from spack import *
class Transset(AutotoolsPackage, XorgPackage):
"""transset is an utility for setting opacity property."""
- homepage = "http://cgit.freedesktop.org/xorg/app/transset"
+ homepage = "https://cgit.freedesktop.org/xorg/app/transset"
xorg_mirror_path = "app/transset-1.0.1.tar.gz"
version('1.0.1', sha256='87c560e69e05ae8a5bad17ff62ac31cda43a5065508205b109c756c0ab857d55')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/trapproto/package.py b/var/spack/repos/builtin/packages/trapproto/package.py
index 4945caa50a..a63ad2d064 100644
--- a/var/spack/repos/builtin/packages/trapproto/package.py
+++ b/var/spack/repos/builtin/packages/trapproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tree/package.py b/var/spack/repos/builtin/packages/tree/package.py
index 3f3e480969..1b1c176368 100644
--- a/var/spack/repos/builtin/packages/tree/package.py
+++ b/var/spack/repos/builtin/packages/tree/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Tree(Package):
"""Tree is a recursive directory listing command that produces a depth
diff --git a/var/spack/repos/builtin/packages/treelite/package.py b/var/spack/repos/builtin/packages/treelite/package.py
index c602f9623d..dbd717880a 100644
--- a/var/spack/repos/builtin/packages/treelite/package.py
+++ b/var/spack/repos/builtin/packages/treelite/package.py
@@ -1,9 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
+
from spack import *
diff --git a/var/spack/repos/builtin/packages/treesub/package.py b/var/spack/repos/builtin/packages/treesub/package.py
index 0a4dad25d6..94e0168714 100644
--- a/var/spack/repos/builtin/packages/treesub/package.py
+++ b/var/spack/repos/builtin/packages/treesub/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Treesub(Package):
"""A small program (which glues together other programs) that
diff --git a/var/spack/repos/builtin/packages/trf/package.py b/var/spack/repos/builtin/packages/trf/package.py
index 635b7e2830..9a2a912856 100644
--- a/var/spack/repos/builtin/packages/trf/package.py
+++ b/var/spack/repos/builtin/packages/trf/package.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
-class Trf(Package):
+class Trf(AutotoolsPackage):
"""Tandem Repeats Finder is a program to locate and display tandem repeats
in DNA sequences.
@@ -15,16 +16,37 @@ class Trf(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://tandem.bu.edu/trf/trf.html"
+ url = "https://github.com/Benson-Genomics-Lab/TRF/archive/refs/tags/v4.09.1.tar.gz"
+
+ version('4.09.1', sha256='516015b625473350c3d1c9b83cac86baea620c8418498ab64c0a67029c3fb28a')
+ version('4.09', sha256='9332155384bef82f6c7c449c038d27f1a14b984b2e93000bfcf125f4d44d6aca')
+
+ # Beginning with version 4.09, trf is open source and available via github.
+ # Only version 4.07b needs to be installed as a binary.
manual_download = True
- version('4.09', '0c594fe666e0332db1df9d160d7fabc8', expand=False,
- url='file://{0}/trf409.linux64'.format(os.getcwd()))
- version('4.07b', sha256='a3a760c7b74c9603fbc08d95e8fa696c00f35a2f179b0bd63b2b13757ad3b471', expand=False,
- url='file://{0}/trf407b.linux64'.format(os.getcwd()))
+ version('4.07b',
+ sha256='a3a760c7b74c9603fbc08d95e8fa696c00f35a2f179b0bd63b2b13757ad3b471',
+ expand=False,
+ url='file://{0}/trf407b.linux64'.format(os.getcwd()),
+ deprecated=True)
+
+ @when('@4.07b')
+ def autoreconf(self, spec, prefix):
+ touch('configure')
+
+ @when('@4.07b')
+ def configure(self, spec, prefix):
+ pass
+
+ @when('@4.07b')
+ def build(self, spec, prefix):
+ pass
+ @when('@4.07b')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/triangle/package.py b/var/spack/repos/builtin/packages/triangle/package.py
index f8703f33b3..3b32018b41 100644
--- a/var/spack/repos/builtin/packages/triangle/package.py
+++ b/var/spack/repos/builtin/packages/triangle/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,8 @@ class Triangle(Package):
triangulations, Voronoi diagrams, and high-quality triangular
meshes."""
- homepage = "http://www.cs.cmu.edu/~quake/triangle.html"
- url = "http://www.netlib.org/voronoi/triangle.zip"
+ homepage = "https://www.cs.cmu.edu/~quake/triangle.html"
+ url = "https://www.netlib.org/voronoi/triangle.zip"
version('1.6', sha256='1766327add038495fa3499e9b7cc642179229750f7201b94f8e1b7bee76f8480')
diff --git a/var/spack/repos/builtin/packages/trident/package.py b/var/spack/repos/builtin/packages/trident/package.py
index 6e13a864dc..e2ff7de95a 100644
--- a/var/spack/repos/builtin/packages/trident/package.py
+++ b/var/spack/repos/builtin/packages/trident/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/trilinos-catalyst-ioss-adapter/package.py b/var/spack/repos/builtin/packages/trilinos-catalyst-ioss-adapter/package.py
index f0393510e1..a90f08511e 100644
--- a/var/spack/repos/builtin/packages/trilinos-catalyst-ioss-adapter/package.py
+++ b/var/spack/repos/builtin/packages/trilinos-catalyst-ioss-adapter/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/trilinos/fix_cxx14_cuda11.patch b/var/spack/repos/builtin/packages/trilinos/fix_cxx14_cuda11.patch
new file mode 100644
index 0000000000..ae174d3524
--- /dev/null
+++ b/var/spack/repos/builtin/packages/trilinos/fix_cxx14_cuda11.patch
@@ -0,0 +1,110 @@
+diff -ur spack-src.orig/packages/tpetra/core/src/Tpetra_Details_checkPointer.cpp spack-src/packages/tpetra/core/src/Tpetra_Details_checkPointer.cpp
+--- spack-src.orig/packages/tpetra/core/src/Tpetra_Details_checkPointer.cpp 2021-04-13 05:21:37.000000000 +0000
++++ spack-src/packages/tpetra/core/src/Tpetra_Details_checkPointer.cpp 2021-04-13 12:01:46.976127920 +0000
+@@ -74,7 +74,7 @@
+ return EMemoryType::ERROR;
+ }
+
+-# if 1
++# if CUDA_VERSION < 11000
+ // cudaPointerAttributes::type doesn't exist yet in CUDA 9.2. We
+ // must use memoryType, which does not distinguish between types of
+ // device memory.
+@@ -101,7 +101,7 @@
+ return EMemoryType::ERROR;
+ }
+
+-# else
++# else // >=CUDA-11
+
+ const enum cudaMemoryType theType = attr.type;
+ if (theType == cudaMemoryTypeManaged) {
+@@ -117,7 +117,7 @@
+ return EMemoryType::HOST;
+ }
+
+-# endif // 1
++# endif // < CUDA-11
+ #else // NOT HAVE_TPETRACORE_CUDA
+ return EMemoryType::HOST;
+ #endif // HAVE_TPETRACORE_CUDA
+diff -ur spack-src.orig/packages/tpetra/core/src/Tpetra_withLocalAccess.hpp spack-src/packages/tpetra/core/src/Tpetra_withLocalAccess.hpp
+--- spack-src.orig/packages/tpetra/core/src/Tpetra_withLocalAccess.hpp 2021-04-13 05:21:37.000000000 +0000
++++ spack-src/packages/tpetra/core/src/Tpetra_withLocalAccess.hpp 2021-04-13 12:37:34.557170771 +0000
+@@ -820,6 +820,58 @@
+ }
+ };
+
++
++ /// \brief Specialization of WithLocalAccess that implements the
++ /// "base class" of the user providing one GlobalObject
++ /// arguments, and a function that takes one arguments.
++ /// Required to workaround a compile error with intel-19 in c++14 mode.
++ template<class FirstLocalAccessType>
++ struct WithLocalAccess<FirstLocalAccessType> {
++ using current_user_function_type =
++ typename ArgsToFunction<FirstLocalAccessType>::type;
++
++ static void
++ withLocalAccess (current_user_function_type userFunction,
++ FirstLocalAccessType first)
++ {
++ // The "master" local object is the scope guard for local
++ // data. Its constructor may allocate temporary storage, copy
++ // data to the desired memory space, etc. Its destructor will
++ // put everything back. "Put everything back" could be a
++ // no-op, or it could copy data back so where they need to go
++ // and/or free temporary storage.
++ //
++ // Users define this function and the type it returns by
++ // specializing GetMasterLocalObject for LocalAccess
++ // specializations.
++ auto first_lcl_master = getMasterLocalObject (first);
++
++ // The "nonowning" local object is a nonowning view of the
++ // "master" local object. This is the only local object that
++ // users see, and they see it as input to their function.
++ // Subsequent slices / subviews view this nonowning local
++ // object. All such nonowning views must have lifetime
++ // contained within the lifetime of the master local object.
++ //
++ // Users define this function and the type it returns by
++ // specializing GetNonowningLocalObject (see above).
++ //
++ // Constraining the nonowning views' lifetime to this scope
++ // means that master local object types may use low-cost
++ // ownership models, like that of std::unique_ptr. There
++ // should be no need for reference counting (in the manner of
++ // std::shared_ptr) or Herb Sutter's deferred_heap.
++ auto first_lcl_view = getNonowningLocalObject (first, first_lcl_master);
++
++ // Curry the user's function by fixing the first argument.
++
++ WithLocalAccess<>::withLocalAccess
++ ([=] () {
++ userFunction (first_lcl_view);
++ });
++ }
++ };
++
+ /// \brief Specialization of WithLocalAccess that implements the
+ /// "recursion case."
+ ///
+@@ -867,17 +919,6 @@
+
+ // Curry the user's function by fixing the first argument.
+
+- // The commented-out implementation requires C++14, because it
+- // uses a generic lambda (the special case where parameters
+- // are "auto"). We do have the types of the arguments,
+- // though, from ArgsToFunction, so we don't need this feature.
+-
+- // WithLocalAccess<Rest...>::withLocalAccess
+- // (rest...,
+- // [=] (auto ... args) {
+- // userFunction (first_lcl_view, args...);
+- // });
+-
+ WithLocalAccess<Rest...>::withLocalAccess
+ ([=] (with_local_access_function_argument_type<Rest>... args) {
+ userFunction (first_lcl_view, args...);
diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py
index 2d341b245a..efed5c8543 100644
--- a/var/spack/repos/builtin/packages/trilinos/package.py
+++ b/var/spack/repos/builtin/packages/trilinos/package.py
@@ -1,11 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
import os
import sys
+
from spack import *
+from spack.build_environment import dso_suffix
from spack.operating_systems.mac_os import macos_version
from spack.pkg.builtin.kokkos import Kokkos
@@ -29,13 +31,12 @@ class Trilinos(CMakePackage, CudaPackage):
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-12-12-1.tar.gz"
git = "https://github.com/trilinos/Trilinos.git"
- maintainers = ['keitat']
+ maintainers = ['keitat', 'sethrj', 'kuberry']
# ###################### Versions ##########################
- version('xsdk-0.2.0', tag='xsdk-0.2.0')
- version('develop', branch='develop')
version('master', branch='master')
+ version('develop', branch='develop')
version('13.0.1', commit='4796b92fb0644ba8c531dd9953e7a4878b05c62d') # tag trilinos-release-13-0-1
version('13.0.0', commit='9fec35276d846a667bc668ff4cbdfd8be0dfea08') # tag trilinos-release-13-0-0
version('12.18.1', commit='55a75997332636a28afc9db1aee4ae46fe8d93e7') # tag trilinos-release-12-8-1
@@ -56,159 +57,84 @@ class Trilinos(CMakePackage, CudaPackage):
# ###################### Variants ##########################
- # Other
- # not everyone has py-numpy activated, keep it disabled by default to avoid
- # configure errors
- variant('python', default=False,
- description='Build python wrappers')
-
# Build options
- variant('complex', default=False,
- description='Enable complex numbers in Trilinos')
- variant('explicit_template_instantiation', default=True,
- description='Enable explicit template instantiation (ETI)')
- variant('float', default=False,
- description='Enable single precision (float) numbers in Trilinos')
+ variant('complex', default=False, description='Enable complex numbers in Trilinos')
+ variant('cuda_rdc', default=False, description='turn on RDC for CUDA build')
+ variant('cxxstd', default='11', values=['11', '14', '17'], multi=False)
+ variant('debug', default=False, description='Enable runtime safety and debug checks')
+ variant('explicit_template_instantiation', default=True, description='Enable explicit template instantiation (ETI)')
+ variant('float', default=False, description='Enable single precision (float) numbers in Trilinos')
+ variant('fortran', default=True, description='Compile with Fortran support')
variant('gotype', default='long',
- values=('int', 'long', 'long_long'),
+ values=('int', 'long', 'long_long', 'all'),
multi=False,
description='global ordinal type for Tpetra')
- variant('fortran', default=True,
- description='Compile with Fortran support')
- variant('wrapper', default=False,
- description="Use nvcc-wrapper for CUDA build")
- variant('cxxstd', default='11', values=['11', '14', '17'], multi=False)
- variant('hwloc', default=False,
- description='Enable hwloc')
- variant('openmp', default=False,
- description='Enable OpenMP')
- variant('shared', default=True,
- description='Enables the build of shared libraries')
- variant('debug', default=False,
- description='Enable runtime safety and debug checks')
- variant('xsdkflags', default=False,
- description='Compile using the default xSDK configuration')
+ variant('openmp', default=False, description='Enable OpenMP')
+ variant('python', default=False, description='Build PyTrilinos wrappers')
+ variant('shared', default=True, description='Enables the build of shared libraries')
+ variant('wrapper', default=False, description="Use nvcc-wrapper for CUDA build")
# TPLs (alphabet order)
- variant('boost', default=True,
- description='Compile with Boost')
- variant('cgns', default=False,
- description='Enable CGNS')
- variant('adios2', default=False,
- description='Enable ADIOS2')
- variant('glm', default=True,
- description='Compile with GLM')
- variant('gtest', default=True,
- description='Compile with Gtest')
- variant('hdf5', default=True,
- description='Compile with HDF5')
- variant('hypre', default=True,
- description='Compile with Hypre preconditioner')
- variant('matio', default=True,
- description='Compile with Matio')
- variant('metis', default=True,
- description='Compile with METIS and ParMETIS')
- variant('mpi', default=True,
- description='Compile with MPI parallelism')
- variant('mumps', default=True,
- description='Compile with support for MUMPS solvers')
- variant('netcdf', default=True,
- description='Compile with netcdf')
- variant('pnetcdf', default=False,
- description='Compile with parallel-netcdf')
- variant('suite-sparse', default=True,
- description='Compile with SuiteSparse solvers')
- variant('superlu-dist', default=False,
- description='Compile with SuperluDist solvers')
- variant('superlu', default=False,
- description='Compile with SuperLU solvers')
- variant('strumpack', default=False,
- description='Compile with STRUMPACK solvers')
- variant('x11', default=False,
- description='Compile with X11')
- variant('zlib', default=False,
- description='Compile with zlib')
+ variant('boost', default=False, description='Compile with Boost')
+ variant('adios2', default=False, description='Enable ADIOS2')
+ variant('hdf5', default=False, description='Compile with HDF5')
+ variant('hypre', default=False, description='Compile with Hypre preconditioner')
+ variant('mpi', default=True, description='Compile with MPI parallelism')
+ variant('mumps', default=False, description='Compile with support for MUMPS solvers')
+ variant('suite-sparse', default=False, description='Compile with SuiteSparse solvers')
+ variant('superlu-dist', default=False, description='Compile with SuperluDist solvers')
+ variant('superlu', default=False, description='Compile with SuperLU solvers')
+ variant('strumpack', default=False, description='Compile with STRUMPACK solvers')
+ variant('x11', default=False, description='Compile with X11 when +exodus')
+ variant('zlib', default=False, description='Compile with zlib')
# Package options (alphabet order)
- variant('alloptpkgs', default=False,
- description='Compile with all optional packages')
- variant('amesos', default=True,
- description='Compile with Amesos')
- variant('amesos2', default=True,
- description='Compile with Amesos2')
- variant('anasazi', default=True,
- description='Compile with Anasazi')
- variant('aztec', default=True,
- description='Compile with Aztec')
- variant('belos', default=True,
- description='Compile with Belos')
- # chaco is disabled by default. As of 12.14.1 libchaco.so
- # has the global symbol divide (and maybe others) that can
- # lead to symbol clash.
- variant('chaco', default=False,
- description='Compile with Chaco from SEACAS')
- variant('epetra', default=True,
- description='Compile with Epetra')
- variant('epetraext', default=True,
- description='Compile with EpetraExt')
- variant('exodus', default=True,
- description='Compile with Exodus from SEACAS')
- variant('ifpack', default=True,
- description='Compile with Ifpack')
- variant('ifpack2', default=True,
- description='Compile with Ifpack2')
- variant('intrepid', default=False,
- description='Enable Intrepid')
- variant('intrepid2', default=False,
- description='Enable Intrepid2')
- variant('isorropia', default=False,
- description='Compile with Isorropia')
- variant('kokkos', default=True,
- description='Compile with Kokkos')
- variant('ml', default=True,
- description='Compile with ML')
- variant('minitensor', default=False,
- description='Compile with MiniTensor')
- variant('muelu', default=True,
- description='Compile with Muelu')
- variant('nox', default=False,
- description='Compile with NOX')
- variant('piro', default=False,
- description='Compile with Piro')
- variant('phalanx', default=False,
- description='Compile with Phalanx')
- variant('rol', default=False,
- description='Compile with ROL')
- variant('rythmos', default=False,
- description='Compile with Rythmos')
- variant('sacado', default=True,
- description='Compile with Sacado')
- variant('stk', default=False,
- description='Compile with STK')
- variant('shards', default=False,
- description='Compile with Shards')
- variant('shylu', default=False,
- description='Compile with ShyLU')
- variant('stratimikos', default=False,
- description='Compile with Stratimikos')
- variant('teko', default=False,
- description='Compile with Teko')
- variant('tempus', default=False,
- description='Compile with Tempus')
- variant('teuchos', default=True,
- description='Compile with Teuchos')
- variant('tpetra', default=True,
- description='Compile with Tpetra')
- variant('zoltan', default=True,
- description='Compile with Zoltan')
- variant('zoltan2', default=True,
- description='Compile with Zoltan2')
+ variant('amesos', default=True, description='Compile with Amesos')
+ variant('amesos2', default=True, description='Compile with Amesos2')
+ variant('anasazi', default=True, description='Compile with Anasazi')
+ variant('aztec', default=True, description='Compile with Aztec')
+ variant('belos', default=True, description='Compile with Belos')
+ variant('chaco', default=False, description='Compile with Chaco from SEACAS')
+ variant('epetra', default=True, description='Compile with Epetra')
+ variant('epetraext', default=True, description='Compile with EpetraExt')
+ variant('exodus', default=False, description='Compile with Exodus from SEACAS')
+ variant('ifpack', default=True, description='Compile with Ifpack')
+ variant('ifpack2', default=True, description='Compile with Ifpack2')
+ variant('intrepid', default=False, description='Enable Intrepid')
+ variant('intrepid2', default=False, description='Enable Intrepid2')
+ variant('isorropia', default=False, description='Compile with Isorropia')
+ variant('kokkos', default=True, description='Compile with Kokkos')
+ variant('ml', default=True, description='Compile with ML')
+ variant('minitensor', default=False, description='Compile with MiniTensor')
+ variant('muelu', default=True, description='Compile with Muelu')
+ variant('nox', default=False, description='Compile with NOX')
+ variant('piro', default=False, description='Compile with Piro')
+ variant('phalanx', default=False, description='Compile with Phalanx')
+ variant('rol', default=False, description='Compile with ROL')
+ variant('rythmos', default=False, description='Compile with Rythmos')
+ variant('sacado', default=True, description='Compile with Sacado')
+ variant('stk', default=False, description='Compile with STK')
+ variant('shards', default=False, description='Compile with Shards')
+ variant('shylu', default=False, description='Compile with ShyLU')
+ variant('stokhos', default=False, description='Compile with Stokhos')
+ variant('stratimikos', default=False, description='Compile with Stratimikos')
+ variant('teko', default=False, description='Compile with Teko')
+ variant('tempus', default=False, description='Compile with Tempus')
+ variant('tpetra', default=True, description='Compile with Tpetra')
+ variant('trilinoscouplings', default=False, description='Compile with TrilinosCouplings')
+ variant('zoltan', default=False, description='Compile with Zoltan')
+ variant('zoltan2', default=False, description='Compile with Zoltan2')
+
+ # Internal package options (alphabetical order)
+ variant('basker', default=False, description='Compile with the Basker solver in Amesos2')
+ variant('epetraextbtf', default=False, description='Compile with BTF in EpetraExt')
+ variant('epetraextexperimental', default=False, description='Compile with experimental in EpetraExt')
+ variant('epetraextgraphreorderings', default=False, description='Compile with graph reorderings in EpetraExt')
# External package options
- variant('dtk', default=False,
- description='Enable DataTransferKit')
- variant('mesquite', default=False,
- description='Enable Mesquite')
+ variant('dtk', default=False, description='Enable DataTransferKit (deprecated)')
+ variant('scorec', default=False, description='Enable SCOREC')
+ variant('mesquite', default=False, description='Enable Mesquite (deprecated)')
resource(name='dtk',
git='https://github.com/ornl-cees/DataTransferKit.git',
@@ -221,12 +147,11 @@ class Trilinos(CMakePackage, CudaPackage):
placement='DataTransferKit',
submodules=True,
when='+dtk @12.18:12.18.99')
- resource(name='dtk',
- git='https://github.com/ornl-cees/DataTransferKit.git',
- branch='master',
- placement='DataTransferKit',
- submodules=True,
- when='+dtk @develop')
+ resource(name='scorec',
+ git='https://github.com/SCOREC/core.git',
+ commit='73c16eae073b179e45ec625a5abe4915bc589af2', # tag v2.2.5
+ placement='SCOREC',
+ when='+scorec')
resource(name='mesquite',
url='https://github.com/trilinos/mesquite/archive/trilinos-release-12-12-1.tar.gz',
sha256='e0d09b0939dbd461822477449dca611417316e8e8d8268fd795debb068edcbb5',
@@ -241,67 +166,65 @@ class Trilinos(CMakePackage, CudaPackage):
git='https://github.com/trilinos/mesquite.git',
tag='develop',
placement='packages/mesquite',
- when='+mesquite @develop')
-
- conflicts('+amesos2', when='~teuchos')
- conflicts('+amesos2', when='~tpetra')
- conflicts('+amesos', when='~epetra')
- conflicts('+amesos', when='~teuchos')
- conflicts('+anasazi', when='~teuchos')
- conflicts('+aztec', when='~epetra')
- conflicts('+belos', when='~teuchos')
- conflicts('+epetraext', when='~epetra')
- conflicts('+epetraext', when='~teuchos')
- conflicts('+exodus', when='~netcdf')
+ when='+mesquite @master')
+
+ # ###################### Conflicts ##########################
+
+ # Epetra packages
+ with when('~epetra'):
+ conflicts('+amesos')
+ conflicts('+aztec')
+ conflicts('+epetraext')
+ conflicts('+ifpack')
+ conflicts('+isorropia')
+ with when('~epetraext'):
+ conflicts('+isorropia')
+ conflicts('+teko')
+ conflicts('+epetraextbtf')
+ conflicts('+epetraextexperimental')
+ conflicts('+epetraextgraphreorderings')
+
+ # Tpetra packages
+ with when('~kokkos'):
+ conflicts('+cuda')
+ conflicts('+tpetra')
+ conflicts('+intrepid2')
+ conflicts('+phalanx')
+ with when('~tpetra'):
+ conflicts('+amesos2')
+ conflicts('+dtk')
+ conflicts('+ifpack2')
+ conflicts('+teko')
+ conflicts('+zoltan2')
+
+ with when('+teko'):
+ conflicts('~amesos')
+ conflicts('~anasazi')
+ conflicts('~aztec')
+ conflicts('~ifpack')
+ conflicts('~ml')
+ conflicts('~stratimikos')
+ conflicts('@:12 gotype=long')
+
+ conflicts('+aztec', when='~fortran')
+ conflicts('+basker', when='~amesos2')
conflicts('+ifpack2', when='~belos')
- conflicts('+ifpack2', when='~teuchos')
- conflicts('+ifpack2', when='~tpetra')
- conflicts('+ifpack', when='~epetra')
- conflicts('+ifpack', when='~teuchos')
- conflicts('+intrepid2', when='~kokkos')
- conflicts('+intrepid2', when='~shards')
- conflicts('+intrepid2', when='~teuchos')
conflicts('+intrepid', when='~sacado')
conflicts('+intrepid', when='~shards')
- conflicts('+intrepid', when='~teuchos')
- conflicts('+isorropia', when='~epetra')
- conflicts('+isorropia', when='~epetraext')
- conflicts('+isorropia', when='~teuchos')
+ conflicts('+intrepid2', when='~shards')
conflicts('+isorropia', when='~zoltan')
- conflicts('+muelu', when='~teuchos')
- conflicts('+muelu', when='~xpetra')
- conflicts('+nox', when='~teuchos')
- conflicts('+phalanx', when='~kokkos')
+ conflicts('+muelu', when='~tpetra')
conflicts('+phalanx', when='~sacado')
- conflicts('+phalanx', when='~teuchos')
- conflicts('+piro', when='~teuchos')
- conflicts('+rol', when='~teuchos')
- conflicts('+rythmos', when='~teuchos')
- conflicts('+teko', when='~amesos')
- conflicts('+teko', when='~anasazi')
- conflicts('+teko', when='~aztec')
- conflicts('+teko', when='~ifpack')
- conflicts('+teko', when='~ml')
- conflicts('+teko', when='~teuchos')
- conflicts('+teko', when='~tpetra')
conflicts('+tempus', when='~nox')
- conflicts('+tempus', when='~teuchos')
- conflicts('+tpetra', when='~kokkos')
- conflicts('+tpetra', when='~teuchos')
- conflicts('+zoltan2', when='~teuchos')
- conflicts('+zoltan2', when='~tpetra')
- conflicts('+zoltan2', when='~xpetra')
conflicts('+zoltan2', when='~zoltan')
+ # Only allow DTK with Trilinos 12.14, 12.18
conflicts('+dtk', when='~boost')
conflicts('+dtk', when='~intrepid2')
- conflicts('+dtk', when='~kokkos')
- conflicts('+dtk', when='~teuchos')
- conflicts('+dtk', when='~tpetra')
- # Only allow DTK with Trilinos 12.14 and develop
- conflicts('+dtk', when='@0:12.12.99,master')
- # Only allow Mesquite with Trilinos 12.12 and up, and develop
- conflicts('+mesquite', when='@0:12.10.99,master')
+ conflicts('+dtk', when='@:12.12,13:')
+
+ # Only allow Mesquite with Trilinos 12.12 and up, and master
+ conflicts('+mesquite', when='@:12.10.99,master')
# Can only use one type of SuperLU
conflicts('+superlu-dist', when='+superlu')
# For Trilinos v11 we need to force SuperLUDist=OFF, since only the
@@ -316,53 +239,61 @@ class Trilinos(CMakePackage, CudaPackage):
# https://trilinos.org/pipermail/trilinos-users/2015-March/004802.html
conflicts('+superlu-dist', when='+complex+amesos2')
conflicts('+strumpack', when='@:13.0.99')
- conflicts('+strumpack', when='~metis')
- # PnetCDF was only added after v12.10.1
- conflicts('+pnetcdf', when='@0:12.10.1')
# https://github.com/trilinos/Trilinos/issues/2994
conflicts(
'+shared', when='+stk platform=darwin',
msg='Cannot build Trilinos with STK as a shared library on Darwin.'
)
- # ADIOS2 was only added after v12.14.1
conflicts('+adios2', when='@:12.14.1')
- conflicts('+adios2', when='@xsdk-0.2.0')
- conflicts('+pnetcdf', when='~netcdf')
+ conflicts('+cuda_rdc', when='~cuda')
conflicts('+wrapper', when='~cuda')
conflicts('+wrapper', when='%clang')
+ conflicts('cxxstd=11', when='@master:')
conflicts('cxxstd=11', when='+wrapper ^cuda@6.5.14')
conflicts('cxxstd=14', when='+wrapper ^cuda@6.5.14:8.0.61')
conflicts('cxxstd=17', when='+wrapper ^cuda@6.5.14:10.2.89')
- # All compilers except for pgi are in conflict:
- for __compiler in spack.compilers.supported_compilers():
- if __compiler != 'clang':
- conflicts('+cuda', when='~wrapper %{0}'.format(__compiler),
- msg='trilinos~wrapper+cuda can only be built with the\
- Clang compiler')
+ # Boost requires minitensor
+ conflicts('~boost', when='+minitensor')
+
+ # SCOREC requires shards, stk, and zoltan
+ conflicts('+scorec', when='~mpi')
+ conflicts('+scorec', when='~shards')
+ conflicts('+scorec', when='~stk')
+ conflicts('+scorec', when='~zoltan')
+
+ # Multi-value gotype only applies to trilinos through 12.14
+ conflicts('gotype=all', when='@12.15:')
+
+ # CUDA without wrapper requires clang
+ for _compiler in spack.compilers.supported_compilers():
+ if _compiler != 'clang':
+ conflicts('+cuda', when='~wrapper %' + _compiler,
+ msg='trilinos~wrapper+cuda can only be built with the '
+ 'Clang compiler')
+
+ # stokhos fails on xl/xl_r
+ conflicts('+stokhos', when='%xl')
+ conflicts('+stokhos', when='%xl_r')
+
+ # Fortran mangling fails on Apple M1 (see spack/spack#25900)
+ conflicts('@:13.0.1 +fortran', when='target=m1')
# ###################### Dependencies ##########################
- # Everything should be compiled position independent (-fpic)
+ # Explicit dependency variants
+ depends_on('adios2', when='+adios2')
depends_on('blas')
- depends_on('lapack')
depends_on('boost', when='+boost')
- depends_on('glm', when='+glm')
+ depends_on('cgns', when='+exodus')
depends_on('hdf5+hl', when='+hdf5')
- depends_on('matio', when='+matio')
- depends_on('metis@5:', when='+metis')
+ depends_on('hdf5~mpi', when='+hdf5~mpi')
+ depends_on('hdf5+mpi', when="+hdf5+mpi")
+ depends_on('lapack')
+ depends_on('mpi', when='+mpi')
depends_on('suite-sparse', when='+suite-sparse')
depends_on('zlib', when="+zlib")
- # MPI related dependencies
- depends_on('mpi', when='+mpi')
- depends_on('hdf5+mpi', when="+hdf5+mpi")
- depends_on('netcdf-c+mpi', when="+netcdf~pnetcdf+mpi")
- depends_on('netcdf-c+mpi+parallel-netcdf', when="+netcdf+pnetcdf@master,12.12.1:")
- depends_on('parallel-netcdf', when="+netcdf+pnetcdf@master,12.12.1:")
- depends_on('parmetis', when='+metis+mpi')
- depends_on('cgns', when='+cgns')
- depends_on('adios2', when='+adios2')
# Trilinos' Tribits config system is limited which makes it very tricky to
# link Amesos with static MUMPS, see
# https://trilinos.org/docs/dev/packages/amesos2/doc/html/classAmesos2_1_1MUMPS.html
@@ -370,44 +301,75 @@ class Trilinos(CMakePackage, CudaPackage):
# (or alike) and adding results to -DTrilinos_EXTRA_LINK_FLAGS together
# with Blas and Lapack and ScaLAPACK and Blacs and -lgfortran and it may
# work at the end. But let's avoid all this by simply using shared libs
- depends_on('mumps@5.0:+mpi+shared', when='+mumps')
+ depends_on('mumps@5.0:+mpi+shared+openmp', when='+mumps+openmp')
+ depends_on('mumps@5.0:+mpi+shared~openmp', when='+mumps~openmp')
depends_on('scalapack', when='+mumps')
depends_on('superlu-dist', when='+superlu-dist')
depends_on('superlu-dist@:4.3', when='@11.14.1:12.6.1+superlu-dist')
depends_on('superlu-dist@4.4:5.3', when='@12.6.2:12.12.1+superlu-dist')
depends_on('superlu-dist@5.4:6.2.0', when='@12.12.2:13.0.0+superlu-dist')
- depends_on('superlu-dist@6.3.0:', when='@13.0.1:+superlu-dist')
- depends_on('superlu-dist@develop', when='@develop+superlu-dist')
- depends_on('superlu-dist@xsdk-0.2.0', when='@xsdk-0.2.0+superlu-dist')
+ depends_on('superlu-dist@6.3.0:', when='@13.0.1:99 +superlu-dist')
+ depends_on('superlu-dist@develop', when='@master: +superlu-dist')
depends_on('superlu+pic@4.3', when='+superlu')
depends_on('strumpack+shared', when='+strumpack')
depends_on('scalapack', when='+strumpack+mpi')
# Trilinos can not be built against 64bit int hypre
depends_on('hypre~internal-superlu~int64', when='+hypre')
- depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0+hypre')
- depends_on('hypre@develop~internal-superlu', when='@develop+hypre')
+ depends_on('hypre@develop', when='@master: +hypre')
depends_on('python', when='+python')
+ depends_on('py-mpi4py', when='+mpi +python', type=('build', 'run'))
depends_on('py-numpy', when='+python', type=('build', 'run'))
depends_on('swig', when='+python')
depends_on('kokkos-nvcc-wrapper', when='+wrapper')
- depends_on('hwloc', when='+hwloc')
- depends_on('hwloc +cuda', when='+hwloc+cuda')
+ depends_on('hwloc', when='@13: +kokkos')
+ depends_on('hwloc+cuda', when='@13: +kokkos+cuda')
- # Dependencies/conflicts when MPI is disabled
- depends_on('hdf5~mpi', when='+hdf5~mpi')
- conflicts('+parmetis', when='~mpi')
- conflicts('+pnetcdf', when='~mpi')
+ # Variant requirements from packages
+ depends_on('metis', when='+zoltan')
+ depends_on('libx11', when='+x11')
+ depends_on('matio', when='+exodus')
+ depends_on('netcdf-c', when="+exodus")
+ depends_on('netcdf-c+mpi+parallel-netcdf', when="+exodus+mpi@12.12.1:")
+ depends_on('parallel-netcdf', when='+exodus+mpi')
+ depends_on('parmetis', when='+mpi +zoltan')
+ depends_on('parmetis', when='+scorec')
+
+ # ###################### Patches ##########################
patch('umfpack_from_suitesparse.patch', when='@11.14.1:12.8.1')
- patch('xlf_seacas.patch', when='@12.10.1:12.12.1 %xl')
- patch('xlf_seacas.patch', when='@12.10.1:12.12.1 %xl_r')
- patch('xlf_seacas.patch', when='@12.10.1:12.12.1 %clang')
- patch('xlf_tpetra.patch', when='@12.12.1%xl')
- patch('xlf_tpetra.patch', when='@12.12.1%xl_r')
- patch('xlf_tpetra.patch', when='@12.12.1%clang')
+ for _compiler in ['xl', 'xl_r', 'clang']:
+ patch('xlf_seacas.patch', when='@12.10.1:12.12.1 %' + _compiler)
+ patch('xlf_tpetra.patch', when='@12.12.1 %' + _compiler)
patch('fix_clang_errors_12_18_1.patch', when='@12.18.1%clang')
patch('cray_secas_12_12_1.patch', when='@12.12.1%cce')
- patch('cray_secas.patch', when='@12.14.1:12.18.1%cce')
+ patch('cray_secas.patch', when='@12.14.1:%cce')
+
+ # workaround an NVCC bug with c++14 (https://github.com/trilinos/Trilinos/issues/6954)
+ # avoid calling deprecated functions with CUDA-11
+ patch('fix_cxx14_cuda11.patch', when='@13.0.0:13.0.1 cxxstd=14 ^cuda@11:')
+ # Allow building with +teko gotype=long
+ patch('https://github.com/trilinos/Trilinos/commit/b17f20a0b91e0b9fc5b1b0af3c8a34e2a4874f3f.patch',
+ sha256='dee6c55fe38eb7f6367e1896d6bc7483f6f9ab8fa252503050cc0c68c6340610',
+ when='@13.0.0:13.0.1 +teko gotype=long')
+
+ def flag_handler(self, name, flags):
+ is_cce = self.spec.satisfies('%cce')
+
+ if name == 'cxxflags':
+ spec = self.spec
+ if '+mumps' in spec:
+ # see https://github.com/trilinos/Trilinos/blob/master/packages/amesos/README-MUMPS
+ flags.append('-DMUMPS_5_0')
+ if '+stk platform=darwin' in spec:
+ flags.append('-DSTK_NO_BOOST_STACKTRACE')
+ if '+wrapper' in spec:
+ flags.append('--expt-extended-lambda')
+ elif name == 'ldflags' and is_cce:
+ flags.append('-fuse-ld=gold')
+
+ if is_cce:
+ return (None, None, flags)
+ return (flags, None, None)
def url_for_version(self, version):
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz"
@@ -435,59 +397,53 @@ class Trilinos(CMakePackage, CudaPackage):
env.set('CXX', spec["kokkos-nvcc-wrapper"].kokkos_cxx)
def cmake_args(self):
+ options = []
+
spec = self.spec
define = CMakePackage.define
-
- def define_trilinos_enable(cmake_var, spec_var=None):
- if spec_var is None:
- spec_var = cmake_var.lower()
- return self.define_from_variant(
- 'Trilinos_ENABLE_' + cmake_var, spec_var)
-
- def define_tpl_enable(cmake_var, spec_var=None):
- if spec_var is None:
- spec_var = cmake_var.lower()
- return self.define_from_variant('TPL_ENABLE_' + cmake_var,
- spec_var)
-
- cxx_flags = []
- options = []
+ define_from_variant = self.define_from_variant
+
+ def _make_definer(prefix):
+ def define_enable(suffix, value=None):
+ key = prefix + suffix
+ if value is None:
+ # Default to lower-case spec
+ value = suffix.lower()
+ elif isinstance(value, bool):
+ # Explicit true/false
+ return define(key, value)
+ return define_from_variant(key, value)
+ return define_enable
+
+ # Return "Trilinos_ENABLE_XXX" for spec "+xxx" or boolean value
+ define_trilinos_enable = _make_definer("Trilinos_ENABLE_")
+ # Same but for TPLs
+ define_tpl_enable = _make_definer("TPL_ENABLE_")
# #################### Base Settings #######################
options.extend([
define('Trilinos_VERBOSE_CONFIGURE', False),
- define('Trilinos_ENABLE_TESTS', False),
- define('Trilinos_ENABLE_EXAMPLES', False),
- define('Trilinos_ENABLE_CXX11', True),
- self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"),
+ define_trilinos_enable('TESTS', False),
+ define_trilinos_enable('EXAMPLES', False),
+ define_trilinos_enable('CXX11', True),
define_trilinos_enable('DEBUG', 'debug'),
+ define_trilinos_enable('Fortran'),
+ define_trilinos_enable('OpenMP'),
+ define_trilinos_enable('EXPLICIT_INSTANTIATION',
+ 'explicit_template_instantiation')
# The following can cause problems on systems that don't have
# static libraries available for things like dl and pthreads
# for example when trying to build static libs
- # define('TPL_FIND_SHARED_LIBS', (
- # 'ON' if '+shared' in spec else 'OFF'))
- # define('Trilinos_LINK_SEARCH_START_STATIC', (
- # 'OFF' if '+shared' in spec else 'ON'))
+ # define_from_variant('TPL_FIND_SHARED_LIBS', 'shared')
+ # define('Trilinos_LINK_SEARCH_START_STATIC', '+shared' not in spec)
])
- # MPI settings
- options.append(define_tpl_enable('MPI'))
- if '+mpi' in spec:
- # Force Trilinos to use the MPI wrappers instead of raw compilers
- # this is needed on Apple systems that require full resolution of
- # all symbols when linking shared libraries
- options.extend([
- define('CMAKE_C_COMPILER', spec['mpi'].mpicc),
- define('CMAKE_CXX_COMPILER', spec['mpi'].mpicxx),
- define('CMAKE_Fortran_COMPILER', spec['mpi'].mpifc),
- define('MPI_BASE_DIR', spec['mpi'].prefix),
- ])
-
# ################## Trilinos Packages #####################
options.extend([
- define_trilinos_enable('ALL_OPTIONAL_PACKAGES', 'alloptpkgs'),
define_trilinos_enable('Amesos'),
define_trilinos_enable('Amesos2'),
define_trilinos_enable('Anasazi'),
@@ -495,6 +451,8 @@ class Trilinos(CMakePackage, CudaPackage):
define_trilinos_enable('Belos'),
define_trilinos_enable('Epetra'),
define_trilinos_enable('EpetraExt'),
+ define_trilinos_enable('FEI', False),
+ define_trilinos_enable('Gtest', False),
define_trilinos_enable('Ifpack'),
define_trilinos_enable('Ifpack2'),
define_trilinos_enable('Intrepid'),
@@ -506,59 +464,68 @@ class Trilinos(CMakePackage, CudaPackage):
define_trilinos_enable('ML'),
define_trilinos_enable('MueLu'),
define_trilinos_enable('NOX'),
+ define_trilinos_enable('Pamgen', False),
+ define_trilinos_enable('Panzer', False),
+ define_trilinos_enable('Pike', False),
define_trilinos_enable('Piro'),
define_trilinos_enable('Phalanx'),
define_trilinos_enable('PyTrilinos', 'python'),
define_trilinos_enable('ROL'),
define_trilinos_enable('Rythmos'),
define_trilinos_enable('Sacado'),
+ define_trilinos_enable('SCOREC'),
define_trilinos_enable('Shards'),
define_trilinos_enable('ShyLU'),
define_trilinos_enable('STK'),
+ define_trilinos_enable('Stokhos'),
define_trilinos_enable('Stratimikos'),
define_trilinos_enable('Teko'),
define_trilinos_enable('Tempus'),
- define_trilinos_enable('Teuchos'),
define_trilinos_enable('Tpetra'),
+ define_trilinos_enable('TrilinosCouplings'),
define_trilinos_enable('Zoltan'),
define_trilinos_enable('Zoltan2'),
+ define_tpl_enable('Cholmod', False),
+ define_from_variant('EpetraExt_BUILD_BTF', 'epetraextbtf'),
+ define_from_variant('EpetraExt_BUILD_EXPERIMENTAL',
+ 'epetraextexperimental'),
+ define_from_variant('EpetraExt_BUILD_GRAPH_REORDERINGS',
+ 'epetraextgraphreorderings'),
+ define_from_variant('Amesos2_ENABLE_Basker', 'basker'),
])
- options.append(self.define_from_variant('USE_XSDK_DEFAULTS',
- 'xsdkflags'))
-
if '+dtk' in spec:
options.extend([
define('Trilinos_EXTRA_REPOSITORIES', 'DataTransferKit'),
- define('Trilinos_ENABLE_DataTransferKit', True),
+ define_trilinos_enable('DataTransferKit', True),
])
if '+exodus' in spec:
options.extend([
- define('Trilinos_ENABLE_SEACAS', True),
- define('Trilinos_ENABLE_SEACASExodus', True),
- define('Trilinos_ENABLE_SEACASIoss', True),
- define('Trilinos_ENABLE_SEACASEpu', True),
- define('Trilinos_ENABLE_SEACASExodiff', True),
- define('Trilinos_ENABLE_SEACASNemspread', True),
- define('Trilinos_ENABLE_SEACASNemslice', True),
+ define_trilinos_enable('SEACAS', True),
+ define_trilinos_enable('SEACASExodus', True),
+ define_trilinos_enable('SEACASIoss', True),
+ define_trilinos_enable('SEACASEpu', True),
+ define_trilinos_enable('SEACASExodiff', True),
+ define_trilinos_enable('SEACASNemspread', True),
+ define_trilinos_enable('SEACASNemslice', True),
])
else:
options.extend([
- define('Trilinos_ENABLE_SEACASExodus', False),
- define('Trilinos_ENABLE_SEACASIoss', False),
+ define_trilinos_enable('SEACASExodus', False),
+ define_trilinos_enable('SEACASIoss', False),
])
if '+chaco' in spec:
options.extend([
- define('Trilinos_ENABLE_SEACAS', True),
- define('Trilinos_ENABLE_SEACASChaco', True),
+ define_trilinos_enable('SEACAS', True),
+ define_trilinos_enable('SEACASChaco', True),
])
else:
# don't disable SEACAS, could be needed elsewhere
options.extend([
- define('Trilinos_ENABLE_SEACASChaco', False),
- define('Trilinos_ENABLE_SEACASNemslice', False)
+ define_trilinos_enable('SEACASChaco', False),
+ define_trilinos_enable('SEACASNemslice', False)
])
if '+stratimikos' in spec:
@@ -567,7 +534,7 @@ class Trilinos(CMakePackage, CudaPackage):
# Thyra is NOT enabled at this point!" leading to eventual build
# errors if using MueLu because `Xpetra_ENABLE_Thyra` is set to
# off.
- options.append(define('Trilinos_ENABLE_Thyra', True))
+ options.append(define_trilinos_enable('Thyra', True))
# Add thyra adapters based on package enables
options.extend(
@@ -576,82 +543,67 @@ class Trilinos(CMakePackage, CudaPackage):
# ######################### TPLs #############################
- blas = spec['blas'].libs
- lapack = spec['lapack'].libs
- options.extend([
- define('TPL_ENABLE_BLAS', True),
- define('BLAS_LIBRARY_NAMES', blas.names),
- define('BLAS_LIBRARY_DIRS', blas.directories),
- define('TPL_ENABLE_LAPACK', True),
- define('LAPACK_LIBRARY_NAMES', lapack.names),
- define('LAPACK_LIBRARY_DIRS', lapack.directories),
- define_tpl_enable('GLM'),
- define_tpl_enable('Matio'),
- define_tpl_enable('X11'),
- define_trilinos_enable('Gtest', 'gtest'),
- ])
-
- if '+hwloc' in spec:
- options.append(define_tpl_enable('hwloc'))
-
- options.append(define_tpl_enable('Netcdf'))
- if '+netcdf' in spec:
- options.append(define('NetCDF_ROOT', spec['netcdf-c'].prefix))
-
- options.append(define_tpl_enable('HYPRE'))
- if '+hypre' in spec:
- options.extend([
- define('HYPRE_INCLUDE_DIRS', spec['hypre'].prefix.include),
- define('HYPRE_LIBRARY_DIRS', spec['hypre'].prefix.lib),
- ])
-
- options.append(define_tpl_enable('Boost'))
- if '+boost' in spec:
+ # Enable TPLs based on whether they're in our spec, not whether they're
+ # variant names: packages/features should disable availability
+ tpl_dep_map = [
+ ('ADIOS2', 'adios2'),
+ ('BLAS', 'blas'),
+ ('Boost', 'boost'),
+ ('CGNS', 'cgns'),
+ ('HDF5', 'hdf5'),
+ ('HYPRE', 'hypre'),
+ ('LAPACK', 'lapack'),
+ ('Matio', 'matio'),
+ ('METIS', 'metis'),
+ ('MUMPS', 'mumps'),
+ ('Netcdf', 'netcdf-c'),
+ ('SCALAPACK', 'scalapack'),
+ ('SuperLU', 'superlu'),
+ ('SuperLUDist', 'superlu-dist'),
+ ('UMFPACK', 'suite-sparse'),
+ ('X11', 'libx11'),
+ ('Zlib', 'zlib'),
+ ]
+ if spec.satisfies('@12.12.1:'):
+ tpl_dep_map.append(('Pnetcdf', 'parallel-netcdf'))
+ if spec.satisfies('@13:'):
+ tpl_dep_map.append(('HWLOC', 'hwloc'))
+ if spec.satisfies('@13.0.2:'):
+ tpl_dep_map.append(('STRUMPACK', 'strumpack'))
+
+ for tpl_name, dep_name in tpl_dep_map:
+ have_dep = (dep_name in spec)
+ options.append(define('TPL_ENABLE_' + tpl_name, have_dep))
+ if not have_dep:
+ continue
+ depspec = spec[dep_name]
+ libs = depspec.libs
options.extend([
- define('Boost_INCLUDE_DIRS', spec['boost'].prefix.include),
- define('Boost_LIBRARY_DIRS', spec['boost'].prefix.lib),
+ define(tpl_name + '_INCLUDE_DIRS', depspec.prefix.include),
+ define(tpl_name + '_ROOT', depspec.prefix),
+ define(tpl_name + '_LIBRARY_NAMES', libs.names),
+ define(tpl_name + '_LIBRARY_DIRS', libs.directories),
])
- options.append(define_tpl_enable('HDF5'))
- if '+hdf5' in spec:
- options.extend([
- define('HDF5_INCLUDE_DIRS', spec['hdf5'].prefix.include),
- define('HDF5_LIBRARY_DIRS', spec['hdf5'].prefix.lib),
- ])
-
- if '+suite-sparse' in spec:
- options.extend([
- # FIXME: Trilinos seems to be looking for static libs only,
- # patch CMake TPL file?
- define('TPL_ENABLE_Cholmod', False),
- # define('TPL_ENABLE_Cholmod', True),
- # define('Cholmod_LIBRARY_DIRS', (
- # spec['suite-sparse'].prefix.lib)
- # define('Cholmod_INCLUDE_DIRS', (
- # spec['suite-sparse'].prefix.include)
- define('TPL_ENABLE_UMFPACK', True),
- define('UMFPACK_LIBRARY_DIRS',
- spec['suite-sparse'].prefix.lib),
- define('UMFPACK_INCLUDE_DIRS',
- spec['suite-sparse'].prefix.include),
- define('UMFPACK_LIBRARY_NAMES', [
- 'umfpack', 'amd', 'colamd', 'cholmod', 'suitesparseconfig'
- ]),
- ])
- else:
+ # MPI settings
+ options.append(define_tpl_enable('MPI'))
+ if '+mpi' in spec:
+ # Force Trilinos to use the MPI wrappers instead of raw compilers
+ # to propagate library link flags for linkers that require fully
+ # resolved symbols in shared libs (such as macOS and some newer
+ # Ubuntu)
options.extend([
- define('TPL_ENABLE_Cholmod', False),
- define('TPL_ENABLE_UMFPACK', False),
+ define('CMAKE_C_COMPILER', spec['mpi'].mpicc),
+ define('CMAKE_CXX_COMPILER', spec['mpi'].mpicxx),
+ define('CMAKE_Fortran_COMPILER', spec['mpi'].mpifc),
+ define('MPI_BASE_DIR', spec['mpi'].prefix),
])
- options.append(define_tpl_enable('METIS'))
- options.append(define_tpl_enable('ParMETIS', 'metis'))
- if '+metis' in spec:
+ # ParMETIS dependencies have to be transitive explicitly
+ have_parmetis = 'parmetis' in spec
+ options.append(define_tpl_enable('ParMETIS', have_parmetis))
+ if have_parmetis:
options.extend([
- define('METIS_LIBRARY_DIRS', spec['metis'].prefix.lib),
- define('METIS_LIBRARY_NAMES', 'metis'),
- define('TPL_METIS_INCLUDE_DIRS', spec['metis'].prefix.include),
- define('TPL_ENABLE_ParMETIS', True),
define('ParMETIS_LIBRARY_DIRS', [
spec['parmetis'].prefix.lib, spec['metis'].prefix.lib
]),
@@ -662,146 +614,30 @@ class Trilinos(CMakePackage, CudaPackage):
]),
])
- options.append(define_tpl_enable('MUMPS'))
- options.append(define_tpl_enable('SCALAPACK', 'mumps'))
- if '+mumps' in spec:
- scalapack = spec['scalapack'].libs
+ if spec.satisfies('^superlu-dist@4.0:'):
options.extend([
- define('MUMPS_LIBRARY_DIRS', spec['mumps'].prefix.lib),
- # order is important!
- define('MUMPS_LIBRARY_NAMES', [
- 'dmumps', 'mumps_common', 'pord'
- ]),
- define('SCALAPACK_LIBRARY_NAMES', scalapack.names),
- define('SCALAPACK_LIBRARY_DIRS', scalapack.directories),
- ])
- # see
- # https://github.com/trilinos/Trilinos/blob/master/packages/amesos/README-MUMPS
- cxx_flags.extend([
- '-DMUMPS_5_0'
- ])
-
- options.append(define_tpl_enable('SuperLUDist', 'superlu-dist'))
- if '+superlu-dist' in spec:
- options.extend([
- define('KokkosTSQR_ENABLE_Complex', False),
- define('TPL_ENABLE_SuperLUDist', True),
- define('SuperLUDist_LIBRARY_DIRS',
- spec['superlu-dist'].prefix.lib),
- define('SuperLUDist_INCLUDE_DIRS',
- spec['superlu-dist'].prefix.include),
- ])
- if spec.satisfies('^superlu-dist@4.0:'):
- options.extend([
- define('HAVE_SUPERLUDIST_LUSTRUCTINIT_2ARG', True),
- ])
-
- options.append(define_tpl_enable('SuperLU'))
- if '+superlu' in spec:
- options.extend([
- define('SuperLU_LIBRARY_DIRS', spec['superlu'].prefix.lib),
- define('SuperLU_INCLUDE_DIRS', spec['superlu'].prefix.include),
+ define('HAVE_SUPERLUDIST_LUSTRUCTINIT_2ARG', True),
])
- options.append(define_tpl_enable('STRUMPACK'))
- if '+strumpack' in spec:
- options.extend([
- define('TPL_ENABLE_STRUMPACK', True),
- define('Amesos2_ENABLE_STRUMPACK', True),
- define('STRUMPACK_LIBRARY_DIRS',
- spec['strumpack'].libs.directories[0]),
- define('STRUMPACK_INCLUDE_DIRS',
- spec['strumpack'].headers.directories[0]),
- ])
-
- options.append(define_tpl_enable('Pnetcdf'))
- if '+pnetcdf' in spec:
+ if spec.satisfies('^parallel-netcdf'):
options.extend([
define('TPL_Netcdf_Enables_Netcdf4', True),
define('TPL_Netcdf_PARALLEL', True),
define('PNetCDF_ROOT', spec['parallel-netcdf'].prefix),
])
- options.append(define_tpl_enable('Zlib'))
- if '+zlib' in spec:
- options.extend([
- define('TPL_ENABLE_Zlib', True),
- define('Zlib_ROOT', spec['zlib'].prefix),
- ])
-
- options.append(define_tpl_enable('CGNS'))
- if '+cgns' in spec:
- options.extend([
- define('TPL_ENABLE_CGNS', True),
- define('CGNS_INCLUDE_DIRS', spec['cgns'].prefix.include),
- define('CGNS_LIBRARY_DIRS', spec['cgns'].prefix.lib),
- ])
-
- options.append(self.define_from_variant('TPL_ENABLE_ADIOS2', 'adios2'))
-
- options.append(define(
- "Kokkos_ARCH_" +
- Kokkos.spack_micro_arch_map[spec.target.name].upper(),
- True))
-
- # ################# Miscellaneous Stuff ######################
- # CUDA
- options.append(define_tpl_enable('CUDA'))
- if '+cuda' in spec:
- options.extend([
- define('Kokkos_ENABLE_CUDA', True),
- define('Kokkos_ENABLE_CUDA_UVM', True),
- define('Kokkos_ENABLE_CUDA_LAMBDA', True)])
- for iArchCC in spec.variants['cuda_arch'].value:
- options.append(define(
- "Kokkos_ARCH_" +
- Kokkos.spack_cuda_arch_map[iArchCC].upper(),
- True))
- if '+wrapper' in spec:
- cxx_flags.extend(['--expt-extended-lambda'])
-
- # Set the C++ standard to use
- options.append(self.define_from_variant(
- "CMAKE_CXX_STANDARD", "cxxstd"))
-
- # OpenMP
- options.append(define_trilinos_enable('OpenMP'))
- if '+openmp' in spec:
- options.append(define('Kokkos_ENABLE_OpenMP', True))
- if '+tpetra' in spec:
- options.append(define('Tpetra_INST_OPENMP', True))
+ # ################# Explicit template instantiation #################
- # Fortran lib (assumes clang is built with gfortran!)
- if '+fortran' in spec and (
- spec.satisfies('%gcc') or spec.satisfies('%clang') or
- spec.satisfies('%apple-clang')
- ):
- options.append(define('Trilinos_ENABLE_Fortran', True))
- if '+mpi' in spec:
- libgfortran = os.path.dirname(os.popen(
- '%s --print-file-name libgfortran.a' %
- spec['mpi'].mpifc).read())
- options.append(define(
- 'Trilinos_EXTRA_LINK_FLAGS',
- '-L%s/ -lgfortran' % (libgfortran),
- ))
-
- float_s = '+float' in spec
- complex_s = '+complex' in spec
- if '+teuchos' in spec:
- options.extend([
- define('Teuchos_ENABLE_COMPLEX', complex_s),
- define('Teuchos_ENABLE_FLOAT', float_s),
- ])
+ complex_s = spec.variants['complex'].value
+ float_s = spec.variants['float'].value
- # Explicit Template Instantiation (ETI) in Tpetra
- # NOTE: Trilinos will soon move to fixed std::uint64_t for GO and
- # std::int32_t or std::int64_t for local.
- options.append(self.define_from_variant(
- 'Trilinos_ENABLE_EXPLICIT_INSTANTIATION',
- 'explicit_template_instantiation'))
+ options.extend([
+ define('Teuchos_ENABLE_COMPLEX', complex_s),
+ define('Teuchos_ENABLE_FLOAT', float_s),
+ ])
- if '+explicit_template_instantiation' in spec and '+tpetra' in spec:
+ if '+tpetra +explicit_template_instantiation' in spec:
+ options.append(define_from_variant('Tpetra_INST_OPENMP', 'openmp'))
options.extend([
define('Tpetra_INST_DOUBLE', True),
define('Tpetra_INST_COMPLEX_DOUBLE', complex_s),
@@ -811,21 +647,13 @@ class Trilinos(CMakePackage, CudaPackage):
])
gotype = spec.variants['gotype'].value
- # default in older Trilinos versions to enable multiple GOs
- if ((gotype == 'none') and spec.satisfies('@:12.14.1')):
+ if gotype == 'all':
+ # default in older Trilinos versions to enable multiple GOs
options.extend([
- '-DTpetra_INST_INT_INT:BOOL=ON',
- '-DTpetra_INST_INT_LONG:BOOL=ON',
- '-DTpetra_INST_INT_LONG_LONG:BOOL=ON'
+ define('Tpetra_INST_INT_INT', True),
+ define('Tpetra_INST_INT_LONG', True),
+ define('Tpetra_INST_INT_LONG_LONG', True),
])
- # set default GO in newer versions to long
- elif (gotype == 'none'):
- options.extend([
- '-DTpetra_INST_INT_INT:BOOL=OFF',
- '-DTpetra_INST_INT_LONG:BOOL=ON',
- '-DTpetra_INST_INT_LONG_LONG:BOOL=OFF'
- ])
- # if another GO is specified, use this
else:
options.extend([
define('Tpetra_INST_INT_INT', gotype == 'int'),
@@ -833,15 +661,52 @@ class Trilinos(CMakePackage, CudaPackage):
define('Tpetra_INST_INT_LONG_LONG', gotype == 'long_long'),
])
- # disable due to compiler / config errors:
- if spec.satisfies('%xl') or spec.satisfies('%xl_r'):
+ # ################# Kokkos ######################
+
+ if '+kokkos' in spec:
+ arch = Kokkos.get_microarch(spec.target)
+ if arch:
+ options.append(define("Kokkos_ARCH_" + arch.upper(), True))
+
+ define_kok_enable = _make_definer("Kokkos_ENABLE_")
options.extend([
- define('Trilinos_ENABLE_Pamgen', False),
- define('Trilinos_ENABLE_Stokhos', False),
+ define_kok_enable('CUDA'),
+ define_kok_enable('OPENMP' if spec.version >= Version('13')
+ else 'OpenMP'),
])
+ if '+cuda' in spec:
+ options.extend([
+ define_kok_enable('CUDA_UVM', True),
+ define_kok_enable('CUDA_LAMBDA', True),
+ define_kok_enable('CUDA_RELOCATABLE_DEVICE_CODE', 'cuda_rdc')
+ ])
+ arch_map = Kokkos.spack_cuda_arch_map
+ options.extend(
+ define("Kokkos_ARCH_" + arch_map[arch].upper(), True)
+ for arch in spec.variants['cuda_arch'].value
+ )
- if sys.platform == 'darwin':
- options.append(define('Trilinos_ENABLE_FEI', False))
+ # ################# System-specific ######################
+
+ # Fortran lib (assumes clang is built with gfortran!)
+ if ('+fortran' in spec
+ and spec.compiler.name in ['gcc', 'clang', 'apple-clang']):
+ fc = Executable(spec['mpi'].mpifc) if (
+ '+mpi' in spec) else Executable(spack_fc)
+ libgfortran = fc('--print-file-name',
+ 'libgfortran.' + dso_suffix,
+ output=str).strip()
+ # if libgfortran is equal to "libgfortran.<dso_suffix>" then
+ # print-file-name failed, use static library instead
+ if libgfortran == 'libgfortran.' + dso_suffix:
+ libgfortran = fc('--print-file-name',
+ 'libgfortran.a',
+ output=str).strip()
+ # -L<libdir> -lgfortran required for OSX
+ # https://github.com/spack/spack/pull/25823#issuecomment-917231118
+ options.append(
+ define('Trilinos_EXTRA_LINK_FLAGS',
+ '-L%s/ -lgfortran' % os.path.dirname(libgfortran)))
if sys.platform == 'darwin' and macos_version() >= Version('10.12'):
# use @rpath on Sierra due to limit of dynamic loader
@@ -849,18 +714,6 @@ class Trilinos(CMakePackage, CudaPackage):
else:
options.append(define('CMAKE_INSTALL_NAME_DIR', self.prefix.lib))
- if spec.satisfies('%intel') and spec.satisfies('@12.6.2'):
- # Panzer uses some std:chrono that is not recognized by Intel
- # Don't know which (maybe all) Trilinos versions this applies to
- # Don't know which (maybe all) Intel versions this applies to
- options.append(define('Trilinos_ENABLE_Panzer', False))
-
- # collect CXX flags:
- options.append(define('CMAKE_CXX_FLAGS', (' '.join(cxx_flags))))
-
- # disable due to compiler / config errors:
- options.append(define('Trilinos_ENABLE_Pike', False))
-
return options
@run_after('install')
@@ -881,8 +734,7 @@ class Trilinos(CMakePackage, CudaPackage):
def setup_run_environment(self, env):
if '+exodus' in self.spec:
- env.prepend_path('PYTHONPATH',
- self.prefix.lib)
+ env.prepend_path('PYTHONPATH', self.prefix.lib)
if '+cuda' in self.spec:
# currently Trilinos doesn't perform the memory fence so
diff --git a/var/spack/repos/builtin/packages/trimal/package.py b/var/spack/repos/builtin/packages/trimal/package.py
index dce8604c50..106a1723b2 100644
--- a/var/spack/repos/builtin/packages/trimal/package.py
+++ b/var/spack/repos/builtin/packages/trimal/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/trimgalore/package.py b/var/spack/repos/builtin/packages/trimgalore/package.py
index 9c431073cb..93be5a19e4 100644
--- a/var/spack/repos/builtin/packages/trimgalore/package.py
+++ b/var/spack/repos/builtin/packages/trimgalore/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/trimmomatic/package.py b/var/spack/repos/builtin/packages/trimmomatic/package.py
index 99a24fc8f1..91e9cf7e27 100644
--- a/var/spack/repos/builtin/packages/trimmomatic/package.py
+++ b/var/spack/repos/builtin/packages/trimmomatic/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Trimmomatic(Package):
"""A flexible read trimming tool for Illumina NGS data."""
diff --git a/var/spack/repos/builtin/packages/trinity/package.py b/var/spack/repos/builtin/packages/trinity/package.py
index 8bdc10dd79..5562a135e8 100644
--- a/var/spack/repos/builtin/packages/trinity/package.py
+++ b/var/spack/repos/builtin/packages/trinity/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -19,11 +19,14 @@ class Trinity(MakefilePackage):
derived from paralogous genes.
"""
- homepage = "http://trinityrnaseq.github.io/"
+ homepage = "https://trinityrnaseq.github.io/"
url = "https://github.com/trinityrnaseq/trinityrnaseq/archive/Trinity-v2.6.6.tar.gz"
+ version('2.12.0.FULL', sha256='0d47dc433cc3003e1c732b97da605e29c6ccafa38cd52cdb8ecc42399a9195d0',
+ url="https://github.com/trinityrnaseq/trinityrnaseq/releases/download/v2.12.0/trinityrnaseq-v2.12.0.FULL.tar.gz")
version('2.6.6', sha256='868dfadeefaf2d3c6150a88d5e86fbc09466d69bbf4a65f70b4f5a7485668984')
+ depends_on("cmake", type="build")
depends_on("java@8:", type=("build", "run"))
depends_on("bowtie2")
depends_on("jellyfish")
@@ -36,6 +39,14 @@ class Trinity(MakefilePackage):
# There is no documented list of these deps, but they're in the Dockerfile
# and we have runtime errors without them
# https://github.com/trinityrnaseq/trinityrnaseq/blob/master/Docker/Dockerfile
+ depends_on("r-dexseq", type="run", when="@2.12")
+ depends_on("star", type="run", when="@2.12")
+ depends_on("picard", type="run", when="@2.12")
+ depends_on("subread", type="run", when="@2.12")
+ depends_on("gatk", type="run", when="@2.12")
+ depends_on("gmap-gsnap", type="run", when="@2.12")
+ depends_on("r-tximport", type="run", when="@2.12")
+ depends_on("r-tximportdata", type="run", when="@2.12")
depends_on("blast-plus", type="run")
depends_on("bowtie", type="run")
depends_on("r", type="run")
diff --git a/var/spack/repos/builtin/packages/trinotate/package.py b/var/spack/repos/builtin/packages/trinotate/package.py
index 00c0ad3953..8aca2fb4ef 100644
--- a/var/spack/repos/builtin/packages/trinotate/package.py
+++ b/var/spack/repos/builtin/packages/trinotate/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
+import os
+
+from spack import *
class Trinotate(Package):
diff --git a/var/spack/repos/builtin/packages/trnascan-se/package.py b/var/spack/repos/builtin/packages/trnascan-se/package.py
index cad1a15e90..091d88a266 100644
--- a/var/spack/repos/builtin/packages/trnascan-se/package.py
+++ b/var/spack/repos/builtin/packages/trnascan-se/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tskit/package.py b/var/spack/repos/builtin/packages/tskit/package.py
index 387405259c..00daac3d3f 100644
--- a/var/spack/repos/builtin/packages/tskit/package.py
+++ b/var/spack/repos/builtin/packages/tskit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Tskit(PythonPackage):
examine, and manipulate tree sequences"""
homepage = "https://tskit.readthedocs.io/en/latest/"
- url = "https://pypi.io/packages/source/t/tskit/tskit-0.3.1.tar.gz"
+ pypi = "tskit/tskit-0.3.1.tar.gz"
version('0.3.1', sha256='b9c5a9b2fb62a615e389036946345ef8a35b09f1ffee541995b16f97fedb3d36')
diff --git a/var/spack/repos/builtin/packages/tulip/package.py b/var/spack/repos/builtin/packages/tulip/package.py
index 77d010222d..29263afe8e 100644
--- a/var/spack/repos/builtin/packages/tulip/package.py
+++ b/var/spack/repos/builtin/packages/tulip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/turbine/package.py b/var/spack/repos/builtin/packages/turbine/package.py
index c180037304..160b2b8886 100644
--- a/var/spack/repos/builtin/packages/turbine/package.py
+++ b/var/spack/repos/builtin/packages/turbine/package.py
@@ -1,23 +1,24 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Turbine(AutotoolsPackage):
"""Turbine: The Swift/T runtime"""
homepage = 'http://swift-lang.org/Swift-T'
- url = 'http://swift-lang.github.io/swift-t-downloads/spack/turbine-1.2.3.tar.gz'
+ url = 'https://swift-lang.github.io/swift-t-downloads/spack/turbine-1.3.0.tar.gz'
git = "https://github.com/swift-lang/swift-t.git"
configure_directory = 'turbine/code'
version('master', branch='master')
+ version('1.3.0', sha256='9709e5dada91a7dce958a7967d6ff2bd39ccc9e7da62d05a875324b5089da393')
version('1.2.3', sha256='a3156c7e0b39e166da3de8892f55fa5d535b0c99c87a9add067c801098fe51ba')
version('1.1.0', sha256='98fad47597935a04d15072e42bf85411d55ef00cb6f953e9f14d6de902e33209')
@@ -28,6 +29,7 @@ class Turbine(AutotoolsPackage):
variant('hdf5', default=False,
description='Enable HDF5 support')
depends_on('adlbx@master', when='@master')
+ depends_on('adlbx@:0.9.2', when='@:1.2.3')
depends_on('adlbx@:0.8.0', when='@:1.1.0')
depends_on('adlbx', when='@1.2.1:')
depends_on('adlbx')
diff --git a/var/spack/repos/builtin/packages/turbomole/package.py b/var/spack/repos/builtin/packages/turbomole/package.py
index 501f06d3ca..ee7e14a6a4 100644
--- a/var/spack/repos/builtin/packages/turbomole/package.py
+++ b/var/spack/repos/builtin/packages/turbomole/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 subprocess
+from spack import *
+
class Turbomole(Package):
"""TURBOMOLE: Program Package for ab initio Electronic Structure
@@ -17,7 +18,7 @@ class Turbomole(Package):
Spack will search the current directory for this file. It is
probably best to add this file to a Spack mirror so that it can be
found from anywhere. For information on setting up a Spack mirror
- see http://spack.readthedocs.io/en/latest/mirrors.html"""
+ see https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "http://www.turbomole-gmbh.com/"
manual_download = True
diff --git a/var/spack/repos/builtin/packages/turnserver/package.py b/var/spack/repos/builtin/packages/turnserver/package.py
index fe1024b95c..6134d84b22 100644
--- a/var/spack/repos/builtin/packages/turnserver/package.py
+++ b/var/spack/repos/builtin/packages/turnserver/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/tut/package.py b/var/spack/repos/builtin/packages/tut/package.py
index 621fd4c072..00b2b76fed 100644
--- a/var/spack/repos/builtin/packages/tut/package.py
+++ b/var/spack/repos/builtin/packages/tut/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Tut(WafPackage):
"""TUT is a small and portable unit test framework for C++."""
- homepage = "http://mrzechonek.github.io/tut-framework/"
+ homepage = "https://mrzechonek.github.io/tut-framework/"
url = "https://github.com/mrzechonek/tut-framework/tarball/2016-12-19"
version('2016-12-19', sha256='9fc0325d6db9709cc5213773bf4fd84f2a95154f18f7f8a553e1e52392e15691')
@@ -20,6 +20,10 @@ class Tut(WafPackage):
# https://github.com/mrzechonek/tut-framework/issues/18
depends_on('python@:3.6', type='build')
+ # Tut is used for smoke build tests in CI, and started failing as
+ # soon as gcc@11 was introduced in the environment
+ conflicts('%gcc@11:')
+
def build_args(self):
args = []
diff --git a/var/spack/repos/builtin/packages/twm/package.py b/var/spack/repos/builtin/packages/twm/package.py
index 45dae87541..b44a71dfbc 100644
--- a/var/spack/repos/builtin/packages/twm/package.py
+++ b/var/spack/repos/builtin/packages/twm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Twm(AutotoolsPackage, XorgPackage):
user-defined macro functions, click-to-type and pointer-driven
keyboard focus, and user-specified key and pointer button bindings."""
- homepage = "http://cgit.freedesktop.org/xorg/app/twm"
+ homepage = "https://cgit.freedesktop.org/xorg/app/twm"
xorg_mirror_path = "app/twm-1.0.9.tar.gz"
version('1.0.9', sha256='1c325e8456a200693c816baa27ceca9c5e5e0f36af63d98f70a335853a0039e8')
@@ -24,7 +24,7 @@ class Twm(AutotoolsPackage, XorgPackage):
depends_on('libice')
depends_on('libsm')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('bison', type='build')
depends_on('flex', type='build')
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/tycho2/package.py b/var/spack/repos/builtin/packages/tycho2/package.py
index a7c22ec56d..0f02b49227 100644
--- a/var/spack/repos/builtin/packages/tycho2/package.py
+++ b/var/spack/repos/builtin/packages/tycho2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/typhon/package.py b/var/spack/repos/builtin/packages/typhon/package.py
index 621b2479e4..8a7d1f0d96 100644
--- a/var/spack/repos/builtin/packages/typhon/package.py
+++ b/var/spack/repos/builtin/packages/typhon/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/typhonio/package.py b/var/spack/repos/builtin/packages/typhonio/package.py
index ac15cf9625..b70655b677 100644
--- a/var/spack/repos/builtin/packages/typhonio/package.py
+++ b/var/spack/repos/builtin/packages/typhonio/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,15 +10,15 @@ class Typhonio(CMakePackage):
"""TyphonIO is a library of routines that perform input/output (I/O)
of scientific data within application codes"""
- homepage = "http://uk-mac.github.io/typhonio/"
+ homepage = "https://uk-mac.github.io/typhonio/"
url = "https://github.com/UK-MAC/typhonio/archive/v1.6_CMake.tar.gz"
git = "https://github.com/UK-MAC/typhonio.git"
version('develop', branch='cmake_build')
version('1.6_CMake', sha256='c9b7b2a7f4fa0b786f6b69c6426b67f42efc4ea6871323139d52cd44f4d0ff7c')
- variant('build_type', default='Release', description='The build type to build',
- values=('Debug', 'Release'))
+ variant('build_type', default='Release', values=('Debug', 'Release'),
+ description='The build type to build')
variant('fortran', default=False, description='Enable Fortran support')
variant('shared', default=False, description='Build shared libraries')
variant('doc', default=False, description='Build user guide and doxygen documentation')
diff --git a/var/spack/repos/builtin/packages/uchardet/package.py b/var/spack/repos/builtin/packages/uchardet/package.py
index 1e09e08e62..e264445756 100644
--- a/var/spack/repos/builtin/packages/uchardet/package.py
+++ b/var/spack/repos/builtin/packages/uchardet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,10 @@ class Uchardet(CMakePackage):
homepage = "https://www.freedesktop.org/wiki/Software/uchardet/"
url = "https://www.freedesktop.org/software/uchardet/releases/uchardet-0.0.6.tar.xz"
+ git = "https://gitlab.freedesktop.org/uchardet/uchardet.git"
+ version('master', branch='master')
+ version('0.0.7', sha256='8351328cdfbcb2432e63938721dd781eb8c11ebc56e3a89d0f84576b96002c61')
version('0.0.6', sha256='8351328cdfbcb2432e63938721dd781eb8c11ebc56e3a89d0f84576b96002c61')
version('0.0.5', sha256='7c5569c8ee1a129959347f5340655897e6a8f81ec3344de0012a243f868eabd1')
version('0.0.4', sha256='9dbe41fc73ba6a70676c04b1f0dd812914c0bbb65940283f2d54c5a2338a2acd')
@@ -27,3 +30,14 @@ class Uchardet(CMakePackage):
else:
url = "https://github.com/BYVoid/uchardet/archive/v0.0.5.tar.gz"
return url
+
+ def cmake_args(self):
+ args = []
+ if self.spec.satisfies('platform=darwin'):
+ args += [
+ # From https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/uchardet.rb
+ self.define('CMAKE_INSTALL_NAME_DIR', self.prefix.lib),
+ # From https://github.com/mutationpp/Mutationpp/issues/26
+ self.define('CMAKE_MACOSX_RPATH', 'ON')
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/ucx/package.py b/var/spack/repos/builtin/packages/ucx/package.py
index c428a5bbd8..b9e7f2d765 100644
--- a/var/spack/repos/builtin/packages/ucx/package.py
+++ b/var/spack/repos/builtin/packages/ucx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,11 +16,13 @@ class Ucx(AutotoolsPackage, CudaPackage):
maintainers = ['hppritcha']
- # Development
- version('1.9-dev', branch='v1.9.x')
-
# Current
- version('1.9.0', sha256='a7a2c8841dc0d5444088a4373dc9b9cc68dbffcd917c1eba92ca8ed8e5e635fb', preferred=True)
+ version('1.11.1', sha256='29338cad18858517f96b46ff83bdd259a5899e274792cebd269717c660aa86fd')
+ version('1.11.0', sha256='b7189b69fe0e16e3c03784ef674e45687a9c520750bd74a45125c460ede37647')
+ version('1.10.1', sha256='ae9a108af6842ca135e7ec9b6131469adf9f1e50f899349fafcc69a215368bc9')
+ version('1.10.0', sha256='b885e24b1b94724c03cb213c355381e98df1e2d1fd7f633cf8055b6dd05db92d')
+ version('1.9-dev', branch='v1.9.x')
+ version('1.9.0', sha256='a7a2c8841dc0d5444088a4373dc9b9cc68dbffcd917c1eba92ca8ed8e5e635fb')
version('1.8.1', sha256='a48820cb8d0761b5ccf3e7ba03a7c8c1dde6276017657178829e07ffc35b556a')
version('1.8.0', sha256='e400f7aa5354971c8f5ac6b881dc2846143851df868088c37d432c076445628d')
version('1.7.0', sha256='6ab81ee187bfd554fe7e549da93a11bfac420df87d99ee61ffab7bb19bdd3371')
@@ -60,6 +62,22 @@ class Ucx(AutotoolsPackage, CudaPackage):
description='Enable KNEM support')
variant('xpmem', default=False,
description='Enable XPMEM support')
+ variant('cma', default=False,
+ description="nable Cross Memory Attach")
+ variant('rc', default=False,
+ description="Compile with IB Reliable Connection support")
+ variant('dc', default=False,
+ description="Compile with IB Dynamic Connection support")
+ variant('ud', default=False,
+ description="Compile with IB Unreliable Datagram support")
+ variant('mlx5-dv', default=False,
+ description="Compile with mlx5 Direct Verbs support")
+ variant('ib-hw-tm', default=False,
+ description="Compile with IB Tag Matching support")
+ variant('dm', default=False,
+ description="Compile with Device Memory support")
+ variant('cm', default=False,
+ description="Compile with IB Connection Manager support")
depends_on('numactl')
depends_on('rdma-core')
@@ -88,16 +106,34 @@ class Ucx(AutotoolsPackage, CudaPackage):
else:
config_args.append('--disable-mt')
+ if '+cma' in spec:
+ config_args.append('--enable-cma')
+ else:
+ config_args.append('--disable-cma')
+
if '+paramter_checking' in spec:
config_args.append('--enable-params-check')
else:
config_args.append('--disable-params-check')
+ # Activate SIMD based on properties of the target
+ if 'avx' in self.spec.target:
+ config_args.append('--with-avx')
+ else:
+ config_args.append('--without-avx')
+
config_args.extend(self.enable_or_disable('optimizations'))
config_args.extend(self.enable_or_disable('assertions'))
config_args.extend(self.enable_or_disable('logging'))
config_args.extend(self.with_or_without('pic'))
+ config_args.extend(self.with_or_without('rc'))
+ config_args.extend(self.with_or_without('ud'))
+ config_args.extend(self.with_or_without('dc'))
+ config_args.extend(self.with_or_without('mlx5-dv'))
+ config_args.extend(self.with_or_without('ib-hw-tm'))
+ config_args.extend(self.with_or_without('dm'))
+ config_args.extend(self.with_or_without('cm'))
config_args.extend(self.with_or_without('java',
activation_value='prefix'))
config_args.extend(self.with_or_without('cuda',
diff --git a/var/spack/repos/builtin/packages/udunits/package.py b/var/spack/repos/builtin/packages/udunits/package.py
index e20f2b6ccd..6da4e90d24 100644
--- a/var/spack/repos/builtin/packages/udunits/package.py
+++ b/var/spack/repos/builtin/packages/udunits/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,9 +9,10 @@ from spack import *
class Udunits(AutotoolsPackage):
"""Automated units conversion"""
- homepage = "http://www.unidata.ucar.edu/software/udunits"
- url = "https://www.gfd-dennou.org/arch/ucar/unidata/pub/udunits/udunits-2.2.24.tar.gz"
+ homepage = "https://www.unidata.ucar.edu/software/udunits"
+ url = "https://artifacts.unidata.ucar.edu/repository/downloads-udunits/udunits-2.2.28.tar.gz"
+ version('2.2.28', sha256='590baec83161a3fd62c00efa66f6113cec8a7c461e3f61a5182167e0cc5d579e')
version('2.2.24', sha256='20bac512f2656f056385429a0e44902fdf02fc7fe01c14d56f3c724336177f95')
version('2.2.23', sha256='b745ae10753fe82cdc7cc834e6ce471ca7c25ba2662e6ff93be147cb3d4fd380')
version('2.2.21', sha256='a154d1f8428c24e92723f9e50bdb5cc00827e3f5ff9cba64d33e5409f5c03455')
diff --git a/var/spack/repos/builtin/packages/ufo-core/package.py b/var/spack/repos/builtin/packages/ufo-core/package.py
index 23ce2bf3a2..2b2d5583f5 100644
--- a/var/spack/repos/builtin/packages/ufo-core/package.py
+++ b/var/spack/repos/builtin/packages/ufo-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ufo-filters/package.py b/var/spack/repos/builtin/packages/ufo-filters/package.py
index 6b2da72352..524c414100 100644
--- a/var/spack/repos/builtin/packages/ufo-filters/package.py
+++ b/var/spack/repos/builtin/packages/ufo-filters/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/ufs-utils/package.py b/var/spack/repos/builtin/packages/ufs-utils/package.py
new file mode 100644
index 0000000000..f430687c46
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ufs-utils/package.py
@@ -0,0 +1,43 @@
+# Copyright 2013-2021 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 UfsUtils(CMakePackage):
+ """The UFS Utilities package contains programs set up the model grid and
+ create coldstart initial conditions.
+ """
+
+ homepage = "https://noaa-emcufs-utils.readthedocs.io/en/latest/"
+ url = "https://github.com/NOAA-EMC/UFS_UTILS/archive/refs/tags/ufs_utils_1_6_0.tar.gz"
+
+ maintainers = ['t-brown']
+
+ version('1_6_0', sha256='829ba4b50162e4202f96ec92a65b9fa824f71db65d2b63b70822db07d061cd92')
+
+ depends_on('bacio')
+ depends_on('esmf')
+ depends_on('g2')
+ depends_on('hdf5')
+ depends_on('ip')
+ depends_on('jasper')
+ depends_on('libpng')
+ depends_on('nemsio')
+ depends_on('netcdf-c')
+ depends_on('netcdf-fortran')
+ depends_on('sfcio')
+ depends_on('sigio')
+ depends_on('sp')
+ depends_on('w3nco')
+ depends_on('wgrib2')
+ depends_on('zlib')
+
+ def cmake_args(self):
+ return ['-DMPI_C_COMPILER=%s' % self.spec['mpi'].mpicc,
+ '-DMPI_Fortran_COMPILER=%s' % self.spec['mpi'].mpifc]
+
+ def setup_build_environment(self, env):
+ env.set('ESMFMKFILE', join_path(self.spec['esmf'].prefix.lib, 'esmf.mk'))
diff --git a/var/spack/repos/builtin/packages/ufs-weather-model/package.py b/var/spack/repos/builtin/packages/ufs-weather-model/package.py
new file mode 100644
index 0000000000..e1148f7eea
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ufs-weather-model/package.py
@@ -0,0 +1,94 @@
+# Copyright 2013-2021 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 UfsWeatherModel(CMakePackage):
+ """The Unified Forecast System (UFS) Weather Model (WM) is a prognostic
+ model that can be used for short- and medium-range research and
+ operational forecasts, as exemplified by its use in the operational Global
+ Forecast System (GFS) of the National Oceanic and Atmospheric
+ Administration (NOAA)."""
+
+ homepage = "https://ufs-weather-model.readthedocs.io/en/latest/"
+ url = "https://github.com/ufs-community/ufs-weather-model/archive/refs/tags/ufs-v1.1.0.tar.gz"
+ git = "https://github.com/ufs-community/ufs-weather-model.git"
+
+ maintainers = ['t-brown']
+
+ version('2.0.0', tag='ufs-v2.0.0', submodules=True)
+ version('1.1.0', tag='ufs-v1.1.0', submodules=True)
+
+ variant('32bit', default=True, description='Enable 32-bit single precision arithmetic in dycore')
+ variant('avx2', default=False, description='Enable AVX2 instructions')
+ variant('ccpp', default=True, description='Enable the Common Community Physics Package (CCPP))')
+ variant('ccpp_suites', default='FV3_GFS_v15p2,FV3_RRFS_v1alpha',
+ description='CCPP suites to compile',
+ values=('FV3_GFS_v15p2',
+ 'FV3_RRFS_v1alpha',
+ 'FV3_GFS_v15p2,FV3_RRFS_v1alpha'),
+ multi=True)
+ variant('inline_post', default=False, description='Compile post processing inline')
+ variant('multi_gases', default=False, description='Enable multi gases in physics routines')
+ variant('openmp', default=True, description='Enable OpenMP')
+ variant('parallel_netcdf', default=True, description='Enable parallel I/O in netCDF')
+ variant('quad_precision', default=False,
+ description='Enable quad precision for certain grid metric terms in dycore')
+ variant('simdmultiarch', default=False, description='Enable multi-target SIMD instruction sets')
+
+ depends_on('bacio')
+ depends_on('esmf@:8.0.0')
+ depends_on('mpi')
+ depends_on('nemsio')
+ depends_on('netcdf-c')
+ depends_on('netcdf-fortran')
+ depends_on('sp')
+ depends_on('w3emc')
+ depends_on('w3nco')
+
+ def setup_build_environment(self, env):
+ spec = self.spec
+ env.set('CMAKE_C_COMPILER', spec['mpi'].mpicc)
+ env.set('CMAKE_CXX_COMPILER', spec['mpi'].mpicxx)
+ env.set('CMAKE_Fortran_COMPILER', spec['mpi'].mpifc)
+ env.set('ESMFMKFILE', join_path(spec['esmf'].prefix.lib, 'esmf.mk'))
+
+ env.set('CCPP_SUITES', ','.join(
+ [x for x in spec.variants['ccpp_suites'].value if x]))
+
+ if spec.platform == 'linux' and spec.satisfies('%intel'):
+ env.set('CMAKE_Platform', 'linux.intel')
+ elif spec.platform == 'linux' and spec.satisfies('%gcc'):
+ env.set('CMAKE_Platform', 'linux.gnu')
+ elif spec.platform == 'darwin' and spec.satisfies('%gcc'):
+ env.set('CMAKE_Platform', 'macosx.gnu')
+ else:
+ msg = "The host system {0} and compiler {0} "
+ msg += "are not supported by UFS."
+ raise InstallError(msg.format(spec.platform, self.compiler.name))
+
+ def cmake_args(self):
+ from_variant = self.define_from_variant
+ args = [from_variant('32BIT', '32bit'),
+ from_variant('AVX2', 'avx2'),
+ from_variant('CCPP', 'ccpp'),
+ from_variant('INLINE_POST', 'inline_post'),
+ from_variant('MULTI_GASES', 'multi_gases'),
+ from_variant('OPENMP', 'openmp'),
+ from_variant('PARALLEL_NETCDF', 'parallel_netcdf'),
+ from_variant('QUAD_PRECISION', 'quad_precision'),
+ from_variant('SIMDMULTIARCH', 'simdmultiarch'),
+ ]
+
+ return args
+
+ @run_after('install')
+ def install_additional_files(self):
+ mkdirp(prefix.bin)
+ ufs_src = join_path(self.build_directory, 'NEMS.exe')
+ ufs_dst = join_path(prefix.bin, "ufs_weather_model")
+ install(ufs_src, ufs_dst)
+ set_executable(ufs_dst)
diff --git a/var/spack/repos/builtin/packages/uftrace/package.py b/var/spack/repos/builtin/packages/uftrace/package.py
new file mode 100644
index 0000000000..b5c264d138
--- /dev/null
+++ b/var/spack/repos/builtin/packages/uftrace/package.py
@@ -0,0 +1,71 @@
+# Copyright 2013-2021 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)
+
+import os
+import re
+
+from spack import *
+
+
+class Uftrace(AutotoolsPackage):
+ """Dynamic function graph tracer for Linux which demangles C, C++ and Rust calls"""
+
+ homepage = 'https://uftrace.github.io/slide/'
+ url = 'https://github.com/namhyung/uftrace/archive/v0.10.tar.gz'
+ git = 'https://github.com/namhyung/uftrace.git'
+ executables = ['^uftrace$']
+ maintainers = ['bernhardkaindl']
+ tags = ['trace-tools']
+
+ # The build process uses 'git describe --tags' to get the package version
+ version('master', branch='master', get_full_repo=True)
+ version('0.10', sha256='b8b56d540ea95c3eafe56440d6a998e0a140d53ca2584916b6ca82702795bbd9')
+ variant("doc", default=False, description="Build uftrace's documentation")
+ variant("python2", default=False, description="Build uftrace with python2 support")
+ variant("python3", default=True, description="Build uftrace with python3 support")
+
+ depends_on('pandoc', when="+doc", type='build')
+ depends_on('capstone')
+ depends_on('elfutils')
+ depends_on('lsof', type='test')
+ depends_on('pkg-config', type='build')
+ depends_on('libunwind')
+ depends_on('ncurses')
+ depends_on('python@2.7:', when='+python2')
+ depends_on('python@3.5:', when='+python3')
+ depends_on('lua-luajit')
+
+ def check(self):
+ make('test', *['V=1', '-j{0}'.format(max(int(make_jobs), 20))])
+ # In certain cases, tests using TCP/IP can hang. Ensure that spack can continue:
+ os.system("kill -9 `lsof -t ./uftrace` 2>/dev/null")
+
+ def install(self, spec, prefix):
+ make('install', *['V=1'])
+
+ def installcheck(self):
+ pass
+
+ def test(self):
+ """Perform stand-alone/smoke tests using the installed package."""
+ uftrace = self.prefix.bin.uftrace
+ self.run_test(uftrace,
+ ['-A', '.', '-R', '.', '-P', 'main', uftrace, '-V'],
+ [r'dwarf',
+ r'luajit',
+ r'tui',
+ r'sched',
+ r'dynamic',
+ r'main\(2, ',
+ r' getopt_long\(2, ',
+ r' .*printf.*\(',
+ r'} = 0; /\* main \*/'], installed=True,
+ purpose='test: testing the installation')
+
+ @classmethod
+ def determine_version(cls, exe):
+ output = Executable(exe)('--version', output=str, error=str)
+ match = re.search(r'uftrace v(\S+)', output)
+ return match.group(1) if match else 'None'
diff --git a/var/spack/repos/builtin/packages/umap/package.py b/var/spack/repos/builtin/packages/umap/package.py
index 030e51287e..4d4fe5ed51 100644
--- a/var/spack/repos/builtin/packages/umap/package.py
+++ b/var/spack/repos/builtin/packages/umap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -28,9 +28,8 @@ class Umap(CMakePackage):
variant('tests', default=False, description='Build test programs.')
def cmake_args(self):
- spec = self.spec
args = [
- "-DENABLE_LOGGING=%s" % ('On' if '+logging' in spec else 'Off'),
- "-DENABLE_TESTS=%s" % ('On' if '+tests' in spec else 'Off'),
+ self.define_from_variant('ENABLE_LOGGING', 'logging'),
+ self.define_from_variant('ENABLE_TESTS', 'tests'),
]
return args
diff --git a/var/spack/repos/builtin/packages/umesimd/package.py b/var/spack/repos/builtin/packages/umesimd/package.py
new file mode 100644
index 0000000000..7832a4a2dc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/umesimd/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Umesimd(CMakePackage):
+ """UME::SIMD is an explicit vectorization library. The library defines
+ homogeneous interface for accessing functionality of SIMD registers of
+ AVX, AVX2, AVX512 and IMCI (KNCNI, k1om) instruction set."""
+
+ homepage = "https://github.com/edanor/umesimd"
+ url = "https://github.com/edanor/umesimd/archive/v0.8.1.tar.gz"
+
+ version('0.8.1', sha256='78f457634ee593495083cf8eb6ec1cf7f274db5ff7210c37b3a954f1a712d357')
+ version('0.7.1', sha256='c5377f8223fbf93ad79412e4b40fd14e88a86e08aa573f49df38a159d451023d')
+ version('0.6.1', sha256='15d9fde1a5c89f3c77c42550c2b55d25a581971002157a338e01104079cdf843')
+ version('0.5.2', sha256='8a02c0322b38f1e1757675bb781e190b2458fb8bc508a6bd03356da248362daf')
+ version('0.5.1', sha256='6b7bc62548170e15e98d9e4c57c2980d2cd46593167d6d4b83765aa57175e5ad')
+ version('0.4.2', sha256='a5dd2ec7ecf781af01f7e3336975870f34bfc8c79ef4bba90ec90e43b5f5969f')
+ version('0.4.1', sha256='e05b9f886164826005c8db5d2240f22cb88593c05b4fe45c81aba4d1d57a9bfa')
+ version('0.3.2', sha256='90399fa64489ca4d492a57a49582f5b827d4710a691f533822fd61edc346e8f6')
+ version('0.3.1', sha256='9bab8b4c70e11dbdd864a09053225c74cfabb801739e09a314ddeb1d84a43f0a')
diff --git a/var/spack/repos/builtin/packages/umoci/package.py b/var/spack/repos/builtin/packages/umoci/package.py
index 476e06dd66..6f25be1b1d 100644
--- a/var/spack/repos/builtin/packages/umoci/package.py
+++ b/var/spack/repos/builtin/packages/umoci/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/umpire/missing_header_for_numeric_limits.patch b/var/spack/repos/builtin/packages/umpire/missing_header_for_numeric_limits.patch
new file mode 100644
index 0000000000..6e89e37070
--- /dev/null
+++ b/var/spack/repos/builtin/packages/umpire/missing_header_for_numeric_limits.patch
@@ -0,0 +1,12 @@
+diff --git a/src/umpire/util/allocation_statistics.cpp b/src/umpire/util/allocation_statistics.cpp
+index 597ae61f..0c3f7865 100644
+--- a/src/umpire/util/allocation_statistics.cpp
++++ b/src/umpire/util/allocation_statistics.cpp
+@@ -8,6 +8,7 @@
+ #include "umpire/util/allocation_statistics.hpp"
+
+ #include <algorithm>
++#include <limits>
+
+ namespace umpire {
+ namespace util {
diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py
index 8b035e59df..37bf64cb70 100644
--- a/var/spack/repos/builtin/packages/umpire/package.py
+++ b/var/spack/repos/builtin/packages/umpire/package.py
@@ -1,13 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
-import llnl.util.lang as lang
+import os
+import socket
+
import llnl.util.tty as tty
+from spack import *
+
-class Umpire(CMakePackage, CudaPackage, ROCmPackage):
+class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage):
"""An application-focused API for memory management on NUMA & GPU
architectures"""
@@ -16,35 +20,44 @@ class Umpire(CMakePackage, CudaPackage, ROCmPackage):
maintainers = ['davidbeckingsale']
- version('develop', branch='develop', submodules='True')
- version('main', branch='main', submodules='True')
- version('4.1.2', tag='v4.1.2', submodules='True')
- version('4.1.1', tag='v4.1.1', submodules='True')
- version('4.1.0', tag='v4.1.0', submodules='True')
- version('4.0.1', tag='v4.0.1', submodules='True')
- version('4.0.0', tag='v4.0.0', submodules='True')
- version('3.0.0', tag='v3.0.0', submodules='True')
- version('2.1.0', tag='v2.1.0', submodules='True')
- version('2.0.0', tag='v2.0.0', submodules='True')
- version('1.1.0', tag='v1.1.0', submodules='True')
- version('1.0.1', tag='v1.0.1', submodules='True')
- version('1.0.0', tag='v1.0.0', submodules='True')
- version('0.3.5', tag='v0.3.5', submodules='True')
- version('0.3.4', tag='v0.3.4', submodules='True')
- version('0.3.3', tag='v0.3.3', submodules='True')
- version('0.3.2', tag='v0.3.2', submodules='True')
- version('0.3.1', tag='v0.3.1', submodules='True')
- version('0.3.0', tag='v0.3.0', submodules='True')
- version('0.2.4', tag='v0.2.4', submodules='True')
- version('0.2.3', tag='v0.2.3', submodules='True')
- version('0.2.2', tag='v0.2.2', submodules='True')
- version('0.2.1', tag='v0.2.1', submodules='True')
- version('0.2.0', tag='v0.2.0', submodules='True')
- version('0.1.4', tag='v0.1.4', submodules='True')
- version('0.1.3', tag='v0.1.3', submodules='True')
+ version('develop', branch='develop', submodules=True)
+ version('main', branch='main', submodules=True)
+ version('6.0.0', tag='v6.0.0', submodules=True)
+ version('5.0.1', tag='v5.0.1', submodules=True)
+ version('5.0.0', tag='v5.0.0', submodules=True)
+ version('4.1.2', tag='v4.1.2', submodules=True)
+ version('4.1.1', tag='v4.1.1', submodules=True)
+ version('4.1.0', tag='v4.1.0', submodules=True)
+ version('4.0.1', tag='v4.0.1', submodules=True)
+ version('4.0.0', tag='v4.0.0', submodules=True)
+ version('3.0.0', tag='v3.0.0', submodules=True)
+ version('2.1.0', tag='v2.1.0', submodules=True)
+ version('2.0.0', tag='v2.0.0', submodules=True)
+ version('1.1.0', tag='v1.1.0', submodules=True)
+ version('1.0.1', tag='v1.0.1', submodules=True)
+ version('1.0.0', tag='v1.0.0', submodules=True)
+ version('0.3.5', tag='v0.3.5', submodules=True)
+ version('0.3.4', tag='v0.3.4', submodules=True)
+ version('0.3.3', tag='v0.3.3', submodules=True)
+ version('0.3.2', tag='v0.3.2', submodules=True)
+ version('0.3.1', tag='v0.3.1', submodules=True)
+ version('0.3.0', tag='v0.3.0', submodules=True)
+ version('0.2.4', tag='v0.2.4', submodules=True)
+ version('0.2.3', tag='v0.2.3', submodules=True)
+ version('0.2.2', tag='v0.2.2', submodules=True)
+ version('0.2.1', tag='v0.2.1', submodules=True)
+ version('0.2.0', tag='v0.2.0', submodules=True)
+ version('0.1.4', tag='v0.1.4', submodules=True)
+ version('0.1.3', tag='v0.1.3', submodules=True)
patch('camp_target_umpire_3.0.0.patch', when='@3.0.0')
- patch('cmake_version_check.patch', when='@4.1.0:main')
+ patch('cmake_version_check.patch', when='@4.1')
+ patch('missing_header_for_numeric_limits.patch', when='@4.1:5.0.1')
+
+ # export targets when building pre-6.0.0 release with BLT 0.4.0+
+ patch('https://github.com/LLNL/Umpire/commit/5773ce9af88952c8d23f9bcdcb2e503ceda40763.patch',
+ sha256='f5c691752e4833a936bce224bbe0fe884d3afa84c5e5a4a481f59a12840159c9',
+ when='@:5.0.1 ^blt@0.4:')
variant('fortran', default=False, description='Build C/Fortran API')
variant('c', default=True, description='Build C API')
@@ -60,264 +73,157 @@ class Umpire(CMakePackage, CudaPackage, ROCmPackage):
depends_on('cmake@3.8:', type='build')
depends_on('cmake@3.9:', when='+cuda', type='build')
- depends_on('blt', type='build')
+ depends_on('blt@0.4.1:', type='build', when='@6.0.0:')
+ depends_on('blt@0.4.0:', type='build', when='@4.1.3:5.0.1')
+ depends_on('blt@0.3.6:', type='build', when='@:4.1.2')
+
+ depends_on('camp', when='@5.0.0:')
+ depends_on('camp@0.2.2', when='@6.0.0:')
+ depends_on('camp@0.1.0', when='@5.0.0:5.0.1')
- # variants +rocm and amdgpu_targets are not automatically passed to
- # dependencies, so do it manually.
- depends_on('camp+rocm', when='+rocm')
- for val in ROCmPackage.amdgpu_targets:
- depends_on('camp amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+ with when('@5.0.0:'):
+ with when('+cuda'):
+ depends_on('camp+cuda')
+ for sm_ in CudaPackage.cuda_arch_values:
+ depends_on('camp+cuda cuda_arch={0}'.format(sm_),
+ when='cuda_arch={0}'.format(sm_))
- depends_on('camp')
+ with when('+rocm'):
+ depends_on('camp+rocm')
+ for arch_ in ROCmPackage.amdgpu_targets:
+ depends_on('camp+rocm amdgpu_target={0}'.format(arch_),
+ when='amdgpu_target={0}'.format(arch_))
conflicts('+numa', when='@:0.3.2')
conflicts('~c', when='+fortran', msg='Fortran API requires C API')
- def cmake_args(self):
+ # device allocator exports device code, which requires static libs
+ # currently only available for cuda.
+ conflicts('+shared', when='+cuda')
+
+ # https://github.com/LLNL/Umpire/issues/653
+ conflicts('%gcc@10.3.0', when='+cuda')
+
+ def _get_sys_type(self, spec):
+ sys_type = spec.architecture
+ if "SYS_TYPE" in env:
+ sys_type = env["SYS_TYPE"]
+ return sys_type
+
+ @property
+ def cache_name(self):
+ hostname = socket.gethostname()
+ if "SYS_TYPE" in env:
+ hostname = hostname.rstrip('1234567890')
+ return "{0}-{1}-{2}@{3}.cmake".format(
+ hostname,
+ self._get_sys_type(self.spec),
+ self.spec.compiler.name,
+ self.spec.compiler.version
+ )
+
+ def initconfig_compiler_entries(self):
spec = self.spec
+ entries = super(Umpire, self).initconfig_compiler_entries()
- options = []
- options.append("-DBLT_SOURCE_DIR={0}".format(spec['blt'].prefix))
- options.append("-Dcamp_DIR={0}".format(spec['camp'].prefix))
+ if '+fortran' in spec and self.compiler.fc is not None:
+ entries.append(cmake_cache_option("ENABLE_FORTRAN", True))
+ else:
+ entries.append(cmake_cache_option("ENABLE_FORTRAN", False))
+
+ entries.append(cmake_cache_option("ENABLE_C", '+c' in spec))
+
+ return entries
+
+ def initconfig_hardware_entries(self):
+ spec = self.spec
+ entries = super(Umpire, self).initconfig_hardware_entries()
if '+cuda' in spec:
- options.extend([
- '-DENABLE_CUDA=On',
- '-DCUDA_TOOLKIT_ROOT_DIR=%s' % (spec['cuda'].prefix)])
+ entries.append(cmake_cache_option("ENABLE_CUDA", True))
if not spec.satisfies('cuda_arch=none'):
cuda_arch = spec.variants['cuda_arch'].value
- options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0]))
+ entries.append(cmake_cache_string(
+ "CUDA_ARCH", 'sm_{0}'.format(cuda_arch[0])))
+ entries.append(cmake_cache_string(
+ "CMAKE_CUDA_ARCHITECTURES", '{0}'.format(cuda_arch[0])))
flag = '-arch sm_{0}'.format(cuda_arch[0])
- options.append('-DCMAKE_CUDA_FLAGS:STRING={0}'.format(flag))
+ entries.append(cmake_cache_string(
+ "CMAKE_CUDA_FLAGS", '{0}'.format(flag)))
- if '+deviceconst' in spec:
- options.append('-DENABLE_DEVICE_CONST=On')
+ entries.append(cmake_cache_option(
+ "ENABLE_DEVICE_CONST", spec.satisfies('+deviceconst')))
else:
- options.append('-DENABLE_CUDA=Off')
+ entries.append(cmake_cache_option("ENABLE_CUDA", False))
if '+rocm' in spec:
- options.extend([
- '-DENABLE_HIP=ON',
- '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix)
- ])
+ entries.append(cmake_cache_option("ENABLE_HIP", True))
+ entries.append(cmake_cache_path(
+ "HIP_ROOT_DIR", '{0}'.format(spec['hip'].prefix)))
archs = self.spec.variants['amdgpu_target'].value
if archs != 'none':
arch_str = ",".join(archs)
- options.append(
- '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch_str)
- )
+ entries.append(cmake_cache_string(
+ "HIP_HIPCC_FLAGS", '--amdgpu-target={0}'.format(arch_str)))
else:
- options.append('-DENABLE_HIP=OFF')
-
- options.append('-DENABLE_C={0}'.format(
- 'On' if '+c' in spec else 'Off'))
-
- options.append('-DENABLE_FORTRAN={0}'.format(
- 'On' if '+fortran' in spec else 'Off'))
-
- options.append('-DENABLE_NUMA={0}'.format(
- 'On' if '+numa' in spec else 'Off'))
-
- 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_BENCHMARKS={0}'.format(
- 'On' if 'tests=benchmarks' in spec else 'Off'))
+ entries.append(cmake_cache_option("ENABLE_HIP", False))
- options.append('-DENABLE_EXAMPLES={0}'.format(
- 'On' if '+examples' in spec else 'Off'))
+ return entries
- options.append('-DENABLE_TESTS={0}'.format(
- 'Off' if 'tests=none' in spec else 'On'))
+ def initconfig_package_entries(self):
+ spec = self.spec
+ entries = []
+
+ # TPL locations
+ entries.append("#------------------{0}".format("-" * 60))
+ entries.append("# TPLs")
+ entries.append("#------------------{0}\n".format("-" * 60))
+
+ entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec['blt'].prefix))
+ if spec.satisfies('@5.0.0:'):
+ entries.append(cmake_cache_path("camp_DIR", spec['camp'].prefix))
+ entries.append(cmake_cache_option("ENABLE_NUMA", '+numa' in spec))
+ entries.append(cmake_cache_option("ENABLE_OPENMP", '+openmp' in spec))
+ entries.append(cmake_cache_option(
+ "ENABLE_BENCHMARKS", 'tests=benchmarks' in spec))
+ entries.append(cmake_cache_option("ENABLE_EXAMPLES", '+examples' in spec))
+ entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec))
+ entries.append(cmake_cache_option("ENABLE_TESTS", 'tests=none' not in spec))
+
+ return entries
+ def cmake_args(self):
+ options = []
return options
- @property
- def build_relpath(self):
- """Relative path to the cmake build subdirectory."""
- return join_path('..', self.build_dirname)
-
- @run_after('install')
- def setup_build_tests(self):
- """Copy the build test files after the package is installed to an
- install test subdirectory for use during `spack test run`."""
- # Now copy the relative files
- self.cache_extra_test_sources(self.build_relpath)
-
- # Ensure the path exists since relying on a relative path at the
- # same level as the normal stage source path.
- mkdirp(self.install_test_root)
-
- @property
- @lang.memoized
- def _extra_tests_path(self):
- # TODO: The tests should be converted to re-build and run examples
- # TODO: using the installed libraries.
- return join_path(self.install_test_root, self.build_relpath)
-
- @property
- @lang.memoized
- def _has_bad_strategy(self):
- return self.spec.satisfies('@0.2.0:0.2.3')
-
- def _run_checks(self, dirs, checks):
- """Run the specified checks in the provided directories."""
-
- if not dirs or not checks:
+ def test(self):
+ """Perform stand-alone checks on the installed package."""
+ if self.spec.satisfies('@:1') or \
+ not os.path.isdir(self.prefix.bin):
+ tty.info('Skipping: checks not installed in bin for v{0}'.
+ format(self.version))
return
- for exe in checks:
- if exe == 'strategy_example' and self._has_bad_strategy:
- # Skip this test until install testing can properly capture
- # the abort associated with this version.
- # (An umpire::util::Exception is thrown; status value is -6.)
- tty.warn('Skipping {0} test until Spack can handle core dump'
- .format(exe))
- continue
-
- expected, status = checks[exe]
- for work_dir in dirs:
- src = 'from build ' if 'spack-build' in work_dir else ''
- reason = 'test {0} {1}output'.format(exe, src)
- self.run_test(exe, [], expected, status, installed=False,
- purpose=reason, skip_missing=True,
- work_dir=work_dir)
-
- def _run_bench_checks(self):
- """Run the benchmark smoke test checks."""
- tty.info('Running benchmark checks')
-
- dirs = []
- if self.spec.satisfies('@0.3.3:1.0.1'):
- dirs.append(join_path(self._extra_tests_path, 'benchmarks'))
- elif self.spec.satisfies('@1.1.0:'):
- dirs.append(self.prefix.bin)
-
- checks = {
- # Versions 0.3.3:1.0.1 (spack-build/bin/benchmarks)
- # Versions 1.1.0:2.1.0 (spack-build/bin)
- 'allocator_benchmarks': (
- ['Malloc/malloc', 'Malloc/free', 'ns',
- 'Host/allocate', 'Host/deallocate',
- 'FixedPoolHost/allocate',
- 'FixedPoolHost/deallocate'], 0),
- 'copy_benchmarks': (['benchmark_copy/host_host', 'ns'], 0),
- 'debuglog_benchmarks': (['benchmark_DebugLogger', 'ns'], 0),
- }
- self._run_checks(dirs, checks)
-
- def _run_cookbook_checks(self):
- """Run the cookbook smoke test checks."""
- tty.info('Running cookbook checks')
-
- dirs = []
- cb_subdir = join_path('examples', 'cookbook')
- if self.spec.satisfies('@0.3.3:1.0.1'):
- dirs.append(join_path(self._extra_tests_path, cb_subdir))
- elif self.spec.satisfies('@1.1.0'):
- dirs.append(join_path(self.prefix.bin, cb_subdir))
- elif self.spec.satisfies('@2.0.0:'):
- dirs.append(self.prefix.bin)
-
- checks = {
- # Versions 0.3.3:1.0.1 (spack-build/bin/examples/cookbook)
- # Versions 2.0.0:2.1.0 (spack-build/bin)
- # Versions 1.1.0 (prefix.bin/examples/cookbook)
- # Versions 2.0.0:2.1.0 (prefix.bin)
- 'recipe_dynamic_pool_heuristic': (['in the pool', 'releas'], 0),
- 'recipe_no_introspection': (['has allocated', 'used'], 0),
- }
- self._run_checks(dirs, checks)
-
- def _run_example_checks(self):
- """Run the example smoke test checks."""
- tty.info('Running example checks')
-
- dirs = []
- if self.spec.satisfies('@0.1.3:0.3.1'):
- dirs.append(self._extra_tests_path)
- elif self.spec.satisfies('@0.3.3:1.0.1'):
- dirs.append(join_path(self._extra_tests_path, 'examples'))
- elif self.spec.satisfies('@1.1.0'):
- dirs.append(join_path(self.prefix.bin, 'examples'))
- elif self.spec.satisfies('@2.0.0:'):
- dirs.append(self.prefix.bin)
-
- # Check the results from a subset of the (potentially) available
- # executables
- checks = {
- # Versions 0.1.3:0.3.1 (spack-build/bin)
- # Versions 0.3.3:1.0.1 (spack-build/bin/examples)
- # Versions 2.0.0:2.1.0 (spack-build/bin)
- # Version 1.1.0 (prefix.bin/examples)
- # Versions 2.0.0:2.1.0 (prefix.bin)
- 'malloc': (['99 should be 99'], 0),
- 'strategy_example': (['Available allocators', 'HOST'], 0),
- 'vector_allocator': ([''], 0),
- }
- self._run_checks(dirs, checks)
-
- def _run_plots_checks(self):
- """Run the plots smoke test checks."""
- tty.info('Running plots checks')
-
- dirs = [self.prefix.bin] if self.spec.satisfies('@0.3.3:0.3.5') else []
- checks = {
- # Versions 0.3.3:0.3.5 (prefix.bin)
- 'plot_allocations': ([''], 0),
- }
- self._run_checks(dirs, checks)
-
- def _run_tools_checks(self):
- """Run the tools smoke test checks."""
- tty.info('Running tools checks')
-
- dirs = [self.prefix.bin] if self.spec.satisfies('@0.3.3:0.3.5') else []
+ # Run a subset of examples PROVIDED installed
+ # tutorials with readily checkable outputs.
checks = {
- # Versions 0.3.3:0.3.5 (spack-build/bin/tools)
- 'replay': (['No input file'], 0),
+ 'malloc': ['99 should be 99'],
+ 'recipe_dynamic_pool_heuristic': ['in the pool', 'releas'],
+ 'recipe_no_introspection': ['has allocated', 'used'],
+ 'strategy_example': ['Available allocators', 'HOST'],
+ 'tut_copy': ['Copied source data'],
+ 'tut_introspection':
+ ['Allocator used is HOST', 'size of the allocation'],
+ 'tut_memset': ['Set data from HOST'],
+ 'tut_move': ['Moved source data', 'HOST'],
+ 'tut_reallocate': ['Reallocated data'],
+ 'vector_allocator': [''],
}
- self._run_checks(dirs, checks)
-
- def _run_tut_checks(self):
- """Run the tutorial smoke test checks."""
- tty.info('Running tutorials checks')
-
- dirs = []
- tut_subdir = join_path('examples', 'tutorial')
- if self.spec.satisfies('@0.2.4:0.3.1'):
- dirs.append(self._extra_tests_path)
- elif self.spec.satisfies('@0.3.3:1.0.1'):
- dirs.append(join_path(self._extra_tests_path, tut_subdir))
- elif self.spec.satisfies('@1.1.0'):
- dirs.append(join_path(self.prefix.bin, tut_subdir))
- elif self.spec.satisfies('@2.0.0:'):
- dirs.append(self.prefix.bin)
- checks = {
- # Versions 0.2.4:0.3.1 (spack-build/bin)
- # Versions 0.3.3:1.0.1 (spack-build/bin/examples/tutorial)
- # Versions 2.0.0:2.1.0 (spack-build/bin)
- # Version 1.1.0 (prefix.bin/examples/tutorial)
- # Versions 2.0.0:2.1.0 (prefix.bin)
- 'tut_copy': (['Copied source data'], 0),
- 'tut_introspection': (
- ['Allocator used is HOST', 'size of the allocation'], 0),
- 'tut_memset': (['Set data from HOST'], 0),
- 'tut_move': (['Moved source data', 'HOST'], 0),
- 'tut_reallocate': (['Reallocated data'], 0),
- }
- self._run_checks(dirs, checks)
-
- def test(self):
- """Perform smoke tests on the installed package."""
- self._run_bench_checks()
- self._run_cookbook_checks()
- self._run_example_checks()
- self._run_plots_checks()
- self._run_tools_checks()
- self._run_tut_checks()
+ for exe in checks:
+ expected = checks[exe]
+ reason = 'test: checking output from {0}'.format(exe)
+ self.run_test(exe, [], expected, 0, installed=False,
+ purpose=reason, skip_missing=True,
+ work_dir=self.prefix.bin)
diff --git a/var/spack/repos/builtin/packages/unblur/package.py b/var/spack/repos/builtin/packages/unblur/package.py
index 7366ad836a..bbbbe381cf 100644
--- a/var/spack/repos/builtin/packages/unblur/package.py
+++ b/var/spack/repos/builtin/packages/unblur/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Unblur(AutotoolsPackage):
"""Unblur is used to align the frames of movies recorded on an electron
microscope to reduce image blurring due to beam-induced motion."""
- homepage = "http://grigoriefflab.janelia.org/unblur"
+ homepage = "https://grigoriefflab.janelia.org/unblur"
url = "http://grigoriefflab.janelia.org/sites/default/files/unblur_1.0.2.tar.gz"
version('1.0.2', sha256='1aa72b1f944114987ede644e1866eaebc08e191ecc566b3461409449360931e2')
diff --git a/var/spack/repos/builtin/packages/uncrustify/package.py b/var/spack/repos/builtin/packages/uncrustify/package.py
index 99aeaeaab3..a04ed20731 100644
--- a/var/spack/repos/builtin/packages/uncrustify/package.py
+++ b/var/spack/repos/builtin/packages/uncrustify/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/unibilium/package.py b/var/spack/repos/builtin/packages/unibilium/package.py
index 862eee9325..e401f3069e 100644
--- a/var/spack/repos/builtin/packages/unibilium/package.py
+++ b/var/spack/repos/builtin/packages/unibilium/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/unifdef/package.py b/var/spack/repos/builtin/packages/unifdef/package.py
index 7b38686d93..4379fd9e18 100644
--- a/var/spack/repos/builtin/packages/unifdef/package.py
+++ b/var/spack/repos/builtin/packages/unifdef/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/unifyfs/auto-mount.patch b/var/spack/repos/builtin/packages/unifyfs/auto-mount.patch
deleted file mode 100644
index a621f7dd11..0000000000
--- a/var/spack/repos/builtin/packages/unifyfs/auto-mount.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/client/src/pmpi_wrappers.c b/client/src/pmpi_wrappers.c
-index ac86d39..38755f5 100644
---- a/client/src/pmpi_wrappers.c
-+++ b/client/src/pmpi_wrappers.c
-@@ -14,7 +14,6 @@
-
- #include "pmpi_wrappers.h"
- #include "unifyfs.h"
--#include <mpi.h>
- #include <stdio.h>
-
- int unifyfs_mpi_init(int* argc, char*** argv)
-diff --git a/client/src/pmpi_wrappers.h b/client/src/pmpi_wrappers.h
-index b90057c..995e44b 100644
---- a/client/src/pmpi_wrappers.h
-+++ b/client/src/pmpi_wrappers.h
-@@ -15,6 +15,8 @@
- #ifndef UNIFYFS_PMPI_WRAPPERS_H
- #define UNIFYFS_PMPI_WRAPPERS_H
-
-+#include <mpi.h>
-+
- /* MPI_Init PMPI wrapper */
- int unifyfs_mpi_init(int* argc, char*** argv);
- int MPI_Init(int* argc, char*** argv);
diff --git a/var/spack/repos/builtin/packages/unifyfs/include-sys-sysmacros.h.patch b/var/spack/repos/builtin/packages/unifyfs/include-sys-sysmacros.h.patch
new file mode 100644
index 0000000000..f3076cfd54
--- /dev/null
+++ b/var/spack/repos/builtin/packages/unifyfs/include-sys-sysmacros.h.patch
@@ -0,0 +1,43 @@
+Commit: ef1b4caa70beb0a7ae03fc0ef1250b80efe33afc
+Date: Fri, 14 May 2021 15:30:09 -0400
+Subject: [PATCH] Include sys/sysmacros.h in testlib.h
+
+In recent Linux systems, major() and minor() are defined in
+sys/sysmacros.h and sys/types.h no longer includes sys/sysmacros.h. So,
+we need to include sys/sysmacros.h in testlib.h.
+
+Also adds a check for the existence of sys/sysmacros.h in configure.ac.
+
+Include sys/sysmacros.h in testlib.h
+---
+ configure.ac | 1 +
+ examples/src/testlib.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 681cdb7..77719eb 100755
+--- a/configure.ac
++++ b/configure.ac
+@@ -65,6 +65,7 @@ AC_CHECK_HEADERS([fcntl.h inttypes.h libgen.h limits.h mntent.h strings.h syslog
+ AC_CHECK_HEADERS([wchar.h wctype.h])
+ AC_CHECK_HEADERS([sys/mount.h sys/socket.h sys/statfs.h sys/time.h])
+ AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h])
++AC_CHECK_HEADER([sys/sysmacros.h], [], AC_MSG_ERROR([cannot find required header sys/sysmacros.h]))
+
+ # Checks for library functions.
+ AC_FUNC_MALLOC
+diff --git a/examples/src/testlib.h b/examples/src/testlib.h
+index 2b0a698..41c9900 100644
+--- a/examples/src/testlib.h
++++ b/examples/src/testlib.h
+@@ -24,6 +24,7 @@
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <unistd.h>
+ #include <time.h>
+ #include <mpi.h>
+--
+2.25.1
+
diff --git a/var/spack/repos/builtin/packages/unifyfs/package.py b/var/spack/repos/builtin/packages/unifyfs/package.py
index c1038d7c68..4fd7e192d8 100644
--- a/var/spack/repos/builtin/packages/unifyfs/package.py
+++ b/var/spack/repos/builtin/packages/unifyfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,11 +16,12 @@ class Unifyfs(AutotoolsPackage):
homepage = "https://github.com/LLNL/UnifyFS"
git = "https://github.com/LLNL/UnifyFS.git"
- url = "https://github.com/LLNL/UnifyFS/releases/download/v0.9.0/unifyfs-0.9.0.tar.gz"
+ url = "https://github.com/LLNL/UnifyFS/releases/download/v0.9.2/unifyfs-0.9.2.tar.gz"
maintainers = ['CamStan']
version('develop', branch='dev')
- version('0.9.0', sha256='e6c73e22ef1c23f3141646aa17058b69c1c4e526886771f8fe982da924265b0f')
+ version('0.9.2', sha256='7046625dc0677535f5d960187cb2e2d58a6f8cfb4dc6a3604f825257eb0891aa')
+ version('0.9.1', sha256='2498a859cfa4961356fdf5c4c17e3afc3de7e034ad013b8c7145a622ef6199a0')
variant('auto-mount', default='True', description='Enable automatic mount/unmount in MPI_Init/Finalize')
variant('hdf5', default='False', description='Build with parallel HDF5 (install with `^hdf5~mpi` for serial)')
@@ -29,35 +30,34 @@ class Unifyfs(AutotoolsPackage):
variant('pmix', default='False', description='Enable PMIx build options')
variant('spath', default='True', description='Use spath library to normalize relative paths')
- depends_on('autoconf', type='build')
- depends_on('automake', type='build')
- depends_on('libtool', type='build')
- depends_on('m4', type='build')
- depends_on('pkgconfig', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('automake@1.15:', type='build', when='@0.9.2:')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('pkgconfig', type='build')
# Required dependencies
- depends_on('flatcc', when='@:0.9.0')
- depends_on('gotcha@0.0.2', when='@:0.9.0')
- depends_on('gotcha@1.0.3:', when='@0.9.1:')
- depends_on('leveldb')
- depends_on('margo')
- depends_on('mercury+bmi+sm')
+ depends_on('gotcha@1.0.3:')
+ depends_on('mercury@1.0.1+bmi', when='@:0.9.1')
+ depends_on('mochi-margo@0.4.3', when='@:0.9.1')
+ depends_on('mochi-margo', when='@0.9.2:')
depends_on('mpi')
depends_on('openssl')
# Optional dependencies
depends_on('hdf5', when='+hdf5')
- depends_on('spath', when='@0.9.1:+spath')
+ depends_on('libfabric fabrics=rxm,sockets,tcp', when="^mercury@2:+ofi")
+ depends_on('spath~mpi', when='+spath')
- conflicts('^mercury~bmi')
+ conflicts('^mercury~bmi~ofi')
conflicts('^mercury~sm')
# Known compatibility issues with ifort and xlf. Fixes coming.
conflicts('%intel', when='+fortran')
- conflicts('%xl', when='+fortran')
+ conflicts('%xl', when='+fortran')
- # Fix broken --enable-mpi-mount config option for version 0.9.0
- # See https://github.com/LLNL/UnifyFS/issues/467
- patch('auto-mount.patch', when='@0.9.0')
+ patch('unifyfs-sysio.c.patch', when='@0.9.1')
+ patch('include-sys-sysmacros.h.patch', when='@0.9.1:0.9.2')
# Parallel disabled to prevent tests from being run out-of-order when
# installed with the --test={root, all} option.
@@ -111,3 +111,8 @@ class Unifyfs(AutotoolsPackage):
def autoreconf(self, spec, prefix):
bash = which('bash')
bash('./autogen.sh')
+
+ @when('%cce@11.0.3:')
+ def patch(self):
+ filter_file('-Werror', '', 'client/src/Makefile.in')
+ filter_file('-Werror', '', 'client/src/Makefile.am')
diff --git a/var/spack/repos/builtin/packages/unifyfs/unifyfs-sysio.c.patch b/var/spack/repos/builtin/packages/unifyfs/unifyfs-sysio.c.patch
new file mode 100644
index 0000000000..99e2086b51
--- /dev/null
+++ b/var/spack/repos/builtin/packages/unifyfs/unifyfs-sysio.c.patch
@@ -0,0 +1,11 @@
+--- spack-src/client/src/unifyfs-sysio.c.bak 2020-12-03 09:04:41.197202000 +0900
++++ spack-src/client/src/unifyfs-sysio.c 2021-03-04 10:06:32.626989637 +0900
+@@ -245,7 +245,7 @@
+ * that is big enough */
+ buf = (char*) malloc(len);
+ if (buf != NULL) {
+- strncpy(buf, unifyfs_cwd, len);
++ memcpy(buf, unifyfs_cwd, strlen(unifyfs_cwd));
+ } else {
+ errno = ENOMEM;
+ }
diff --git a/var/spack/repos/builtin/packages/unigen/package.py b/var/spack/repos/builtin/packages/unigen/package.py
new file mode 100644
index 0000000000..ace8b6b4ab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/unigen/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 Unigen(MakefilePackage):
+ """The United Generators project was launched by the Virtual Institute 146
+ VI-SIM in September 2005 following a proposal of Herbert Strobele.
+ The goal was to facilitate comparison between various models (see below)
+ and/or various experiments (HADES, FOPI, CERES, NA49, CBM). The package
+ at present allows to convert output of various event generators to a
+ generic root format."""
+
+ homepage = "https://www.gsi.de/work/wissenschaftliche_netzwerke/helmholtz_virtuelle_institute/unigen.htm"
+ url = "https://github.com/FairRootGroup/UniGen/archive/v2.3.tar.gz"
+
+ tags = ['hep']
+
+ version('2.3', sha256='8783bcabbdf8c50dab6e93153cff9cfb267a9a9e61aef51bf1e17679ba42a717')
+ patch('unigen-2.3.patch', level=0)
+
+ depends_on('root', type=('build', 'link'))
+
+ def build(self, spec, prefix):
+ mkdirp(join_path(self.build_directory, 'lib'))
+ make('TOPDIR=' + self.build_directory, 'all')
+
+ def install(self, spec, prefix):
+ make('DESTDIR=' + prefix, 'TOPDIR=' + self.build_directory, 'install')
diff --git a/var/spack/repos/builtin/packages/unigen/unigen-2.3.patch b/var/spack/repos/builtin/packages/unigen/unigen-2.3.patch
new file mode 100644
index 0000000000..2cb58628df
--- /dev/null
+++ b/var/spack/repos/builtin/packages/unigen/unigen-2.3.patch
@@ -0,0 +1,127 @@
+--- config/Makelib.orig 2019-10-29 01:07:48.000000000 +0100
++++ config/Makelib 2021-01-27 15:09:05.473365100 +0100
+@@ -3,7 +3,7 @@
+
+
+ # Default target
+-all : obj dict lib
++all : lib
+
+
+ # ----- Rules for source compilation ----------
+@@ -20,7 +20,14 @@
+
+ $(TARGET)Dict.cxx : $(incl) include/$(TARGET)LinkDef.h
+ @echo 'Generating dictionary' $@ '...'
++ifneq ($(strip $(RLIBMAP)),)
++# ROOTv5
+ @rootcint -f $@ -c $(INCDIR) $^
++else
++#ROOT v6
++ @rootcling -f $@ -rmf $(TOPDIR)/lib/lib$(TARGET).rootmap -rml lib$(TARGET) -s lib$(TARGET) $(INCDIR) $^
++ @mv lib$(TARGET)_rdict.pcm $(TOPDIR)/lib/lib$(TARGET)_rdict.pcm
++endif
+ # -----------------------------------------------
+
+
+@@ -96,6 +103,7 @@
+ @rm -f $(TOPDIR)/lib/lib$(TARGET).so
+ @rm -f $(TOPDIR)/lib/lib$(TARGET).a
+ @rm -f $(TOPDIR)/lib/lib$(TARGET).rootmap
++ @rm -f $(TOPDIR)/lib/lib$(TARGET)_rdict.pcm
+
+ htmldoc :
+ @echo 'Building class documentation...'
+@@ -106,8 +114,10 @@
+ install_lib : lib
+ @echo 'Installing library ...'
+ mkdir -p -m 0755 $(DESTDIR)/lib
++ mkdir -p -m 0755 $(DESTDIR)/include/unigen
+ install -m 0755 $(TOPDIR)/lib/lib$(TARGET).so $(DESTDIR)/lib
+-ifneq ($(strip $(RLIBMAP)),)
+ install -m 0644 $(TOPDIR)/lib/lib$(TARGET).rootmap $(DESTDIR)/lib
++ifeq ($(strip $(RLIBMAP)),)
++ install -m 0644 $(TOPDIR)/lib/lib$(TARGET)_rdict.pcm $(DESTDIR)/lib
+ endif
+-
++ install -m 0644 include/*.h $(DESTDIR)/include/unigen
+--- converters/urqmd2u.cpp.orig 2019-10-29 01:07:48.000000000 +0100
++++ converters/urqmd2u.cpp 2021-01-27 15:04:37.547010300 +0100
+@@ -93,7 +93,6 @@
+ char *inpfile;
+ char *outfile;
+ char c;
+- int nevents;
+ string dust;
+
+ URun *ru = 0;
+@@ -101,7 +100,7 @@
+ int filetype, eos, aproj, zproj, atarg, ztarg, nr;
+ double beta, b, bmin, bmax, sigma, elab, plab, sqrts, time, dtime;
+
+- if (argc != 4) {
++ if (argc < 3 || argc > 4) {
+ cout << "usage: " << argv[0] << " inpfile outfile nevents\n";
+ cout << "example: " << argv[0] << " ftn14 ftn14.root 10\n";
+ exit(0);
+@@ -109,7 +108,7 @@
+
+ inpfile = argv[1];
+ outfile = argv[2];
+- nevents = atoi(argv[3]);
++ const int nevents = (argc == 4) ? atoi(argv[3]) : 1e8;
+
+ int nout=0;
+ in.open(inpfile);
+@@ -141,15 +140,14 @@
+ in.ignore(777,'\n'); // ignore the rest of the line
+
+ comment.clear();
+- // read 3 lines of options and 4 lines of params
+- for (int i=0; i<100; i++) {
+- getline(in,line);
+- if(0 == line.substr(0, 4).compare("pvec"))
+- {
+- break;
+- }
+- comment.append(line);
+- comment.append("\n");
++ // read options and parameters
++ while (true) {
++ getline(in, line);
++ if (TString(line).BeginsWith("op") || TString(line).BeginsWith("pa")) {
++ comment.append(line);
++ comment.append("\n");
++ } else
++ break;
+ }
+ //in.ignore(777,'\n');
+
+@@ -207,9 +205,15 @@
+ double m = 0.938271998;
+ double ecm = sqrts/2; // energy per nucleon in cm
+ double pcm = sqrt(ecm*ecm-m*m); // momentum per nucleon in cm
+- double gamma = 1.0/sqrt(1-beta*beta);
+- double pproj = gamma*(+pcm-beta*ecm);
+- double ptarg = gamma*(-pcm-beta*ecm);
++ double pproj = 0.0;
++ double ptarg = 0.0;
++ if (fabs(beta) < 1e-8) { // we are in CM
++ pproj = pcm;
++ ptarg = -pcm;
++ } else {
++ pproj = plab;
++ ptarg = 0.0;
++ }
+ ru = new URun(generator.data(), comment.data(),
+ aproj, zproj, pproj,
+ atarg, ztarg, ptarg,
+@@ -217,7 +221,7 @@
+ ru->Write();
+ fi->Write();
+ fi->Close();
+- return nout;
++
+ return 0;
+ }
+ /*****************************************************************************/
diff --git a/var/spack/repos/builtin/packages/unison/package.py b/var/spack/repos/builtin/packages/unison/package.py
index d0894419a6..fbc8d75c41 100644
--- a/var/spack/repos/builtin/packages/unison/package.py
+++ b/var/spack/repos/builtin/packages/unison/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/units/package.py b/var/spack/repos/builtin/packages/units/package.py
index 7ee1ecd2e1..56c2bbe2d4 100644
--- a/var/spack/repos/builtin/packages/units/package.py
+++ b/var/spack/repos/builtin/packages/units/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/unittest-cpp/package.py b/var/spack/repos/builtin/packages/unittest-cpp/package.py
index ffd5b92ec7..326cfaca33 100644
--- a/var/spack/repos/builtin/packages/unittest-cpp/package.py
+++ b/var/spack/repos/builtin/packages/unittest-cpp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/universal-ctags/package.py b/var/spack/repos/builtin/packages/universal-ctags/package.py
index 4027e589ec..01925e034a 100644
--- a/var/spack/repos/builtin/packages/universal-ctags/package.py
+++ b/var/spack/repos/builtin/packages/universal-ctags/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,11 +13,16 @@ class UniversalCtags(AutotoolsPackage):
the indexed items."""
homepage = "https://ctags.io/"
+ url = "https://github.com/universal-ctags/ctags/archive/p5.9.20210912.0.tar.gz"
git = "https://github.com/universal-ctags/ctags.git"
version('master', branch='master')
+ version('5.9.20210912.0', sha256='5082d4f7e5695be3d697c46e2232d76c6d8adff51d22ba7a4b869362f444ee21')
+ version('5.9.20210808.0', sha256='7f5f88d20750dfa2437ca9d163972b8684e3cf16de022a5177f322be92f528cc')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
+ depends_on('libiconv', type='link')
+ depends_on('pkg-config', type='build')
diff --git a/var/spack/repos/builtin/packages/unixodbc/package.py b/var/spack/repos/builtin/packages/unixodbc/package.py
index b93e7eb166..595478a6e0 100644
--- a/var/spack/repos/builtin/packages/unixodbc/package.py
+++ b/var/spack/repos/builtin/packages/unixodbc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/unqlite/package.py b/var/spack/repos/builtin/packages/unqlite/package.py
index ff746cc75a..1b3112ec5b 100644
--- a/var/spack/repos/builtin/packages/unqlite/package.py
+++ b/var/spack/repos/builtin/packages/unqlite/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/unrar/package.py b/var/spack/repos/builtin/packages/unrar/package.py
index 09ffea40e6..1cf3a84b88 100644
--- a/var/spack/repos/builtin/packages/unrar/package.py
+++ b/var/spack/repos/builtin/packages/unrar/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/unuran/package.py b/var/spack/repos/builtin/packages/unuran/package.py
index 0bd35ee562..a3635f71cb 100644
--- a/var/spack/repos/builtin/packages/unuran/package.py
+++ b/var/spack/repos/builtin/packages/unuran/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,8 +9,8 @@ from spack import *
class Unuran(AutotoolsPackage):
"""Universal Non-Uniform Random number generator."""
- homepage = "http://statmath.wu.ac.at/unuran"
- url = "http://statmath.wu.ac.at/unuran/unuran-1.8.1.tar.gz"
+ homepage = "https://statmath.wu.ac.at/unuran"
+ url = "https://statmath.wu.ac.at/unuran/unuran-1.8.1.tar.gz"
version('1.8.1', sha256='c270ae96857857dbac6450043df865e0517f52856ddbe5202fd35583b13c5193')
diff --git a/var/spack/repos/builtin/packages/unzip/package.py b/var/spack/repos/builtin/packages/unzip/package.py
index 986bf60705..111164e9a2 100644
--- a/var/spack/repos/builtin/packages/unzip/package.py
+++ b/var/spack/repos/builtin/packages/unzip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/upcxx/package.py b/var/spack/repos/builtin/packages/upcxx/package.py
index d5c74bebb9..5eadf1596d 100644
--- a/var/spack/repos/builtin/packages/upcxx/package.py
+++ b/var/spack/repos/builtin/packages/upcxx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -25,10 +25,14 @@ class Upcxx(Package):
homepage = "https://upcxx.lbl.gov"
maintainers = ['bonachea']
- git = 'https://bonachea@bitbucket.org/berkeleylab/upcxx.git'
+ git = 'https://bitbucket.org/berkeleylab/upcxx.git'
version('develop', branch='develop')
version('master', branch='master')
+ version('2021.3.0', sha256='3433714cd4162ffd8aad9a727c12dbf1c207b7d6664879fc41259a4b351595b7')
+ version('2020.11.0', sha256='f6f212760a485a9f346ca11bb4751e7095bbe748b8e5b2389ff9238e9e321317',
+ url='https://bitbucket.org/berkeleylab/upcxx/downloads/upcxx-2020.11.0-memory_kinds_prototype.tar.gz')
+ version('2020.10.0', sha256='623e074b512bf8cad770a04040272e1cc660d2749760398b311f9bcc9d381a37')
version('2020.3.0', sha256='01be35bef4c0cfd24e9b3d50c88866521b9cac3ad4cbb5b1fc97aea55078810f')
version('2019.9.0', sha256='7d67ccbeeefb59de9f403acc719f52127a30801a2c2b9774a1df03f850f8f1d4')
version('2019.3.2', sha256='dcb0b337c05a0feb2ed5386f5da6c60342412b49cab10f282f461e74411018ad')
@@ -46,6 +50,13 @@ class Upcxx(Package):
msg='cross=none is unacceptable on Cray.' +
'Please specify an appropriate "cross" value')
+ # UPC++ always relies on GASNet-EX.
+ # The default (and recommendation) is to use the implicit, embedded version.
+ # This variant allows overriding with a particular version of GASNet-EX sources.
+ variant('gasnet', default=False,
+ description="Override embedded GASNet-EX version")
+ depends_on('gasnet conduits=none', when='+gasnet')
+
depends_on('mpi', when='+mpi')
depends_on('cuda', when='+cuda')
# Require Python2 2.7.5+ up to v2019.9.0
@@ -116,6 +127,8 @@ class Upcxx(Package):
env['CXX'] = spec['mpi'].mpicxx
else:
env['CXX'] = self.compiler.cxx
+ if '+gasnet' in self.spec:
+ env['GASNET'] = spec['gasnet'].prefix.src
installsh = Executable("./install")
installsh(prefix)
else:
@@ -146,13 +159,19 @@ class Upcxx(Package):
env['CC'] = real_cc
env['CXX'] = real_cxx
- installsh = Executable("./configure")
- installsh('--prefix=' + prefix)
+ options = ["--prefix=%s" % prefix]
+
+ if '+gasnet' in self.spec:
+ options.append('--with-gasnet=' + spec['gasnet'].prefix.src)
+
+ configure(*options)
make()
make('install')
+ install_tree('example', prefix.example)
+
@run_after('install')
@on_package_attributes(run_tests=True)
def test_install(self):
@@ -171,3 +190,15 @@ class Upcxx(Package):
if 'cross=none' in self.spec:
make('run-tests', 'NETWORKS=smp') # runs tests for smp backend
make('tests-clean') # cleanup
+
+ def test(self):
+ if self.spec.version <= Version('2019.9.0'):
+ spack.main.send_warning_to_tty(
+ "post-install tests not supported in UPC++ version " +
+ self.spec.version.string + " -- SKIPPED")
+ else: # run post-install smoke test:
+ test_install = join_path(self.prefix.bin, 'test-upcxx-install.sh')
+ self.run_test(test_install, expected=['SUCCESS'], status=0,
+ installed=True,
+ purpose='Checking UPC++ compile+link ' +
+ 'for all installed backends')
diff --git a/var/spack/repos/builtin/packages/uqtk/package.py b/var/spack/repos/builtin/packages/uqtk/package.py
index 46db9462a5..43b0749811 100644
--- a/var/spack/repos/builtin/packages/uqtk/package.py
+++ b/var/spack/repos/builtin/packages/uqtk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,11 +18,21 @@ class Uqtk(CMakePackage):
version('3.1.0', sha256='56ecd3d13bdd908d568e9560dc52cc0f66d7bdcdbe64ab2dd0147a7cf1734f97')
version('3.0.4', sha256='0a72856438134bb571fd328d1d30ce3d0d7aead32eda9b7fb6e436a27d546d2e')
+ variant('pyuqtk', default=True,
+ description='Compile Python scripts and interface to C++ libraries')
+
depends_on('expat')
depends_on('sundials', when='@3.1.0:')
depends_on('blas', when='@3.1.0:')
depends_on('lapack', when='@3.1.0:')
+ extends('python', when='+pyuqtk')
+ depends_on('py-numpy', when='+pyuqtk')
+ depends_on('py-scipy', when='+pyuqtk')
+ depends_on('py-matplotlib', when='+pyuqtk')
+ depends_on('py-pymc3', when='+pyuqtk')
+ depends_on('swig', when='+pyuqtk')
+
# Modify the process of directly specifying blas/lapack
# as the library name.
patch('remove_unique_libname.patch', when='@3.1.0:')
@@ -38,8 +48,19 @@ class Uqtk(CMakePackage):
lapack_libs = spec['lapack'].libs.joined(';')
blas_libs = spec['blas'].libs.joined(';')
- return [
- '-DCMAKE_SUNDIALS_DIR={0}'.format(spec['sundials'].prefix),
- '-DLAPACK_LIBRARIES={0}'.format(lapack_libs),
- '-DBLAS_LIBRARIES={0}'.format(blas_libs)
+ args = [
+ self.define('CMAKE_SUNDIALS_DIR', spec['sundials'].prefix),
+ self.define('LAPACK_LIBRARIES', lapack_libs),
+ self.define('BLAS_LIBRARIES', blas_libs),
+ self.define_from_variant('PyUQTk', 'pyuqtk')
]
+
+ return args
+
+ def setup_run_environment(self, env):
+ if '+pyuqtk' in self.spec:
+ env.prepend_path('PYTHONPATH', self.prefix)
+ env.prepend_path('PYTHONPATH', '{0}/PyUQTk'.format(self.prefix))
+ env.prepend_path('LD_LIBRARY_PATH', '{0}/PyUQTk/'.format(self.prefix))
+ env.set('UQTK_SRC', self.prefix)
+ env.set('UQTK_INS', self.prefix)
diff --git a/var/spack/repos/builtin/packages/uriparser/package.py b/var/spack/repos/builtin/packages/uriparser/package.py
index e2a6536e9f..2c169c91c8 100644
--- a/var/spack/repos/builtin/packages/uriparser/package.py
+++ b/var/spack/repos/builtin/packages/uriparser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,6 +13,7 @@ class Uriparser(CMakePackage):
homepage = "https://uriparser.github.io/"
url = "https://github.com/uriparser/uriparser/releases/download/uriparser-0.9.3/uriparser-0.9.3.tar.gz"
+ version('0.9.5', sha256='1987466a798becb5441a491d29e762ab1a4817a525f82ef239e3d38f85605a77')
version('0.9.3', sha256='6cef39d6eaf1a48504ee0264ce85f078758057dafb1edd0a898183b55ff76014')
variant('docs', default=False, description='Build API documentation')
diff --git a/var/spack/repos/builtin/packages/usbutils/package.py b/var/spack/repos/builtin/packages/usbutils/package.py
index 11f104b2e8..1db8646555 100644
--- a/var/spack/repos/builtin/packages/usbutils/package.py
+++ b/var/spack/repos/builtin/packages/usbutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/usearch/package.py b/var/spack/repos/builtin/packages/usearch/package.py
index e9aa3921d8..753c88b789 100644
--- a/var/spack/repos/builtin/packages/usearch/package.py
+++ b/var/spack/repos/builtin/packages/usearch/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Usearch(Package):
"""USEARCH is a unique sequence analysis tool with thousands of users
@@ -15,9 +16,9 @@ class Usearch(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
- homepage = "http://www.drive5.com/usearch/"
+ homepage = "https://www.drive5.com/usearch/"
manual_download = True
version('10.0.240', '05192b6d5e291530c190a19a3cc82b53', expand=False)
diff --git a/var/spack/repos/builtin/packages/userspace-rcu/package.py b/var/spack/repos/builtin/packages/userspace-rcu/package.py
index be03459d34..9bb673f957 100644
--- a/var/spack/repos/builtin/packages/userspace-rcu/package.py
+++ b/var/spack/repos/builtin/packages/userspace-rcu/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class UserspaceRcu(AutotoolsPackage):
data synchronization library provides read-side access which scales
linearly with the number of cores."""
- homepage = "http://liburcu.org/"
+ homepage = "https://liburcu.org/"
url = "https://github.com/urcu/userspace-rcu/archive/v0.11.1.tar.gz"
version('0.11.1', sha256='a0ed8995edfbeac5f5eb2f152a8f3654040ecfc99a746bfe3da3bccf435b7d5d')
diff --git a/var/spack/repos/builtin/packages/utf8proc/package.py b/var/spack/repos/builtin/packages/utf8proc/package.py
index 55e7e114c6..1ec1f0425d 100644
--- a/var/spack/repos/builtin/packages/utf8proc/package.py
+++ b/var/spack/repos/builtin/packages/utf8proc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/util-linux-uuid/package.py b/var/spack/repos/builtin/packages/util-linux-uuid/package.py
new file mode 100644
index 0000000000..82fabd67d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/util-linux-uuid/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2021 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 UtilLinuxUuid(AutotoolsPackage):
+ """Util-linux is a suite of essential utilities for any Linux system."""
+
+ homepage = "https://github.com/karelzak/util-linux"
+ url = "https://www.kernel.org/pub/linux/utils/util-linux/v2.29/util-linux-2.29.2.tar.gz"
+ list_url = "https://www.kernel.org/pub/linux/utils/util-linux"
+ list_depth = 1
+
+ version('2.36.2', sha256='f5dbe79057e7d68e1a46fc04083fc558b26a49499b1b3f50e4f4893150970463')
+ version('2.36', sha256='82942cd877a989f6d12d4ce2c757fb67ec53d8c5cd9af0537141ec5f84a2eea3')
+
+ depends_on('pkgconfig', type='build')
+
+ provides('uuid')
+
+ def url_for_version(self, version):
+ url = "https://www.kernel.org/pub/linux/utils/util-linux/v{0}/util-linux-{1}.tar.gz"
+ return url.format(version.up_to(2), version)
+
+ @property
+ def libs(self):
+ return find_libraries('libuuid', self.prefix, recursive=True)
+
+ @property
+ def headers(self):
+ return find_headers('uuid', self.prefix, recursive=True)
+
+ def configure_args(self):
+ config_args = [
+ '--disable-use-tty-group',
+ '--disable-makeinstall-chown',
+ '--without-systemd',
+ '--disable-all-programs',
+ '--without-python',
+ '--enable-libuuid',
+ '--disable-bash-completion',
+ ]
+ return config_args
diff --git a/var/spack/repos/builtin/packages/util-linux/package.py b/var/spack/repos/builtin/packages/util-linux/package.py
index bfd1e40163..878a9a18b8 100644
--- a/var/spack/repos/builtin/packages/util-linux/package.py
+++ b/var/spack/repos/builtin/packages/util-linux/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class UtilLinux(AutotoolsPackage):
"""Util-linux is a suite of essential utilities for any Linux system."""
@@ -15,6 +16,11 @@ class UtilLinux(AutotoolsPackage):
list_url = "https://www.kernel.org/pub/linux/utils/util-linux"
list_depth = 1
+ version('2.37.2', sha256='15db966474e459b33fa390a6b892190a92079a73ca45384cde4c86e6ed265a86')
+ version('2.37.1', sha256='0fe9ee8ee7f157be8abcfc2902ec8de9fe30b39173b84e4c458675cef4709b35')
+ version('2.37', sha256='faa8b46d080faa6f32c57da81eda871e38e1e27ba4e9b61cb2589334671aba50')
+ version('2.36.2', sha256='f5dbe79057e7d68e1a46fc04083fc558b26a49499b1b3f50e4f4893150970463')
+ version('2.36', sha256='82942cd877a989f6d12d4ce2c757fb67ec53d8c5cd9af0537141ec5f84a2eea3')
version('2.35.1', sha256='37ac05d82c6410d89bc05d43cee101fefc8fe6cf6090b3ce7a1409a6f35db606')
version('2.35', sha256='98acab129a8490265052e6c1e033ca96d68758a13bb7fcd232c06bf16cc96238')
version('2.34', sha256='b62c92e5e1629642113cd41cec1ee86d1ee7e36b8ffe8ec3ac89c11797e9ac25')
@@ -24,12 +30,10 @@ class UtilLinux(AutotoolsPackage):
version('2.29.1', sha256='a6a7adba65a368e6dad9582d9fbedee43126d990df51266eaee089a73c893653')
version('2.25', sha256='7e43273a9e2ab99b5a54ac914fddf5d08ba7ab9b114c550e9f03474672bd23a1')
- depends_on('python@2.7:')
- depends_on('pkgconfig')
+ depends_on('python@2.7:', type='build')
+ depends_on('pkgconfig', type='build')
+ depends_on('ncurses', type='link')
- # Make it possible to disable util-linux's libuuid so that you may
- # reliably depend_on(`libuuid`).
- variant('libuuid', default=True, description='Build libuuid')
variant('bash', default=False, description='Install bash completion scripts')
depends_on('bash', when="+bash", type='run')
@@ -43,6 +47,7 @@ class UtilLinux(AutotoolsPackage):
'--disable-use-tty-group',
'--disable-makeinstall-chown',
'--without-systemd',
+ '--disable-libuuid',
]
if "+bash" in self.spec:
config_args.extend(
@@ -52,7 +57,6 @@ class UtilLinux(AutotoolsPackage):
"share", "bash-completion", "completions")])
else:
config_args.append('--disable-bash-completion')
- config_args.extend(self.enable_or_disable('libuuid'))
return config_args
diff --git a/var/spack/repos/builtin/packages/util-macros/package.py b/var/spack/repos/builtin/packages/util-macros/package.py
index aed09613bf..1bbf3d6ce4 100644
--- a/var/spack/repos/builtin/packages/util-macros/package.py
+++ b/var/spack/repos/builtin/packages/util-macros/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,13 @@ class UtilMacros(AutotoolsPackage, XorgPackage):
other Xorg modular packages, and is needed to generate new versions
of their configure scripts with autoconf."""
- homepage = "http://cgit.freedesktop.org/xorg/util/macros/"
+ homepage = "https://cgit.freedesktop.org/xorg/util/macros/"
xorg_mirror_path = "util/util-macros-1.19.1.tar.bz2"
+ maintainers = ['robert-mijakovic']
+
+ version('1.19.3', sha256='0f812e6e9d2786ba8f54b960ee563c0663ddbe2434bf24ff193f5feab1f31971')
+ version('1.19.2', sha256='d7e43376ad220411499a79735020f9d145fdc159284867e99467e0d771f3e712')
version('1.19.1', sha256='18d459400558f4ea99527bc9786c033965a3db45bf4c6a32eefdc07aa9e306a6')
version('1.19.0', sha256='2835b11829ee634e19fa56517b4cfc52ef39acea0cd82e15f68096e27cbed0ba')
diff --git a/var/spack/repos/builtin/packages/uvw/package.py b/var/spack/repos/builtin/packages/uvw/package.py
index cf6a96ee9c..534795727b 100644
--- a/var/spack/repos/builtin/packages/uvw/package.py
+++ b/var/spack/repos/builtin/packages/uvw/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/valgrind/package.py b/var/spack/repos/builtin/packages/valgrind/package.py
index 20d8791f4e..fc36453d1a 100644
--- a/var/spack/repos/builtin/packages/valgrind/package.py
+++ b/var/spack/repos/builtin/packages/valgrind/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import sys
+from spack import *
+
class Valgrind(AutotoolsPackage, SourcewarePackage):
"""An instrumentation framework for building dynamic analysis.
@@ -18,11 +19,13 @@ class Valgrind(AutotoolsPackage, SourcewarePackage):
Valgrind is Open Source / Free Software, and is freely available
under the GNU General Public License, version 2.
"""
- homepage = "http://valgrind.org/"
+ homepage = "https://valgrind.org/"
sourceware_mirror_path = "valgrind/valgrind-3.13.0.tar.bz2"
git = "git://sourceware.org/git/valgrind.git"
version('develop', branch='master')
+ version('3.17.0', sha256='ad3aec668e813e40f238995f60796d9590eee64a16dff88421430630e69285a2')
+ version('3.16.1', sha256='c91f3a2f7b02db0f3bc99479861656154d241d2fdb265614ba918cc6720a33ca')
version('3.15.0', sha256='417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1')
version('3.14.0', sha256='037c11bfefd477cc6e9ebe8f193bb237fe397f7ce791b4a4ce3fa1c6a520baa5')
version('3.13.0', sha256='d76680ef03f00cd5e970bbdcd4e57fb1f6df7d2e2c071635ef2be74790190c3b')
diff --git a/var/spack/repos/builtin/packages/vampirtrace/package.py b/var/spack/repos/builtin/packages/vampirtrace/package.py
index da22aeb391..93262285a1 100644
--- a/var/spack/repos/builtin/packages/vampirtrace/package.py
+++ b/var/spack/repos/builtin/packages/vampirtrace/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Vampirtrace(AutotoolsPackage):
and threads (OpenMP, Pthreads)."""
homepage = "https://tu-dresden.de/zih/forschung/projekte/vampirtrace"
- url = "http://wwwpub.zih.tu-dresden.de/~mlieber/dcount/dcount.php?package=vampirtrace&get=VampirTrace-5.14.4.tar.gz"
+ url = "https://wwwpub.zih.tu-dresden.de/~mlieber/dcount/dcount.php?package=vampirtrace&get=VampirTrace-5.14.4.tar.gz"
version('5.14.4', sha256='1719a1666dd274c221b781631958cae56aa8bcb3f22861fb4ba6526c1b465a30')
diff --git a/var/spack/repos/builtin/packages/vapor/package.py b/var/spack/repos/builtin/packages/vapor/package.py
new file mode 100644
index 0000000000..e171c1950d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vapor/package.py
@@ -0,0 +1,50 @@
+# Copyright 2013-2021 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 Vapor(CMakePackage):
+ """VAPOR is the Visualization and Analysis Platform for Ocean, Atmosphere,
+ and Solar Researchers.
+
+ VAPOR provides an interactive 3D visualization environment that can also
+ produce animations and still frame images."""
+
+ homepage = "https://www.vapor.ucar.edu/"
+ url = "https://github.com/NCAR/VAPOR/archive/3.3.0.tar.gz"
+
+ maintainers = ['RemiLacroix-IDRIS']
+
+ version('3.3.0', sha256='508f93db9f6d9307be260820b878d054553aeb1719087a14770889f9e50a18ac')
+
+ depends_on('gl') # GUI
+ depends_on('qt@5:+opengl+dbus') # GUI
+ depends_on('netcdf-c')
+ depends_on('udunits')
+ depends_on('freetype')
+ depends_on('libgeotiff')
+ depends_on('jpeg')
+ depends_on('glew') # GUI
+ depends_on('assimp')
+ depends_on('libtiff')
+ depends_on('proj')
+ depends_on('glm@0.9.9.1:')
+ depends_on('python@3.6.0:3.6.99')
+ depends_on('py-numpy')
+
+ def cmake_args(self):
+ with open('site.local', 'w') as f:
+ python = self.spec['python']
+ f.write('set (PYTHONVERSION {0})\n'.format(python.version.up_to(2)))
+ f.write('set (PYTHONDIR {0})\n'.format(python.home))
+ f.write('set (PYTHONPATH {0})\n'.format(python.package.site_packages_dir))
+
+ args = ['-DBUILD_OSP=OFF']
+ return args
+
+ def setup_run_environment(self, env):
+ # set VAPOR_HOME in the module file
+ env.set('VAPOR_HOME', self.prefix)
diff --git a/var/spack/repos/builtin/packages/vardictjava/package.py b/var/spack/repos/builtin/packages/vardictjava/package.py
index fa07b90db1..9f7cf57177 100644
--- a/var/spack/repos/builtin/packages/vardictjava/package.py
+++ b/var/spack/repos/builtin/packages/vardictjava/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/variorum/package.py b/var/spack/repos/builtin/packages/variorum/package.py
index d12efe20cc..c1d5f0c5ab 100644
--- a/var/spack/repos/builtin/packages/variorum/package.py
+++ b/var/spack/repos/builtin/packages/variorum/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,6 +17,10 @@ class Variorum(CMakePackage):
maintainers = ["slabasan", "rountree"]
+ version('0.4.1', sha256='be7407b856bc2239ecaa27d3df80aee2f541bb721fbfa183612bd9c0ce061f28')
+ version('0.4.0', sha256='70ff1c5a3ae15d0bd07d409ab6f3c128e69528703a829cb18ecb4a50adeaea34')
+ version('0.3.0', sha256='f79563f09b8fe796283c879b05f7730c36d79ca0346c12995b7bccc823653f42')
+ version('0.2.0', sha256='b8c010b26aad8acc75d146c4461532cf5d9d3d24d6fc30ee68f6330a68e65744')
version("0.1.0", tag="v0.1.0")
############
@@ -34,7 +38,7 @@ class Variorum(CMakePackage):
# Package dependencies #
########################
depends_on("cmake@2.8:", type="build")
- depends_on("hwloc@1.11.9")
+ depends_on("hwloc")
#########################
# Documentation related #
diff --git a/var/spack/repos/builtin/packages/varnish-cache/package.py b/var/spack/repos/builtin/packages/varnish-cache/package.py
index 8d5c02f6cc..3e64e27106 100644
--- a/var/spack/repos/builtin/packages/varnish-cache/package.py
+++ b/var/spack/repos/builtin/packages/varnish-cache/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/varscan/package.py b/var/spack/repos/builtin/packages/varscan/package.py
index ecf83a1e5e..45addad46e 100644
--- a/var/spack/repos/builtin/packages/varscan/package.py
+++ b/var/spack/repos/builtin/packages/varscan/package.py
@@ -1,17 +1,18 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.path
+from spack import *
+
class Varscan(Package):
"""Variant calling and somatic mutation/CNV detection for next-generation
sequencing data"""
- homepage = "http://dkoboldt.github.io/varscan/"
+ homepage = "https://dkoboldt.github.io/varscan/"
url = "https://github.com/dkoboldt/varscan/releases/download/2.4.2/VarScan.v2.4.2.jar"
version('2.4.2', sha256='34ff6462f91fb6ed3f11e867ab4a179efae5dd8214b97fa261fc616f23d4d031', expand=False)
diff --git a/var/spack/repos/builtin/packages/vasp/package.py b/var/spack/repos/builtin/packages/vasp/package.py
index 68bf03bf99..b1a671117f 100644
--- a/var/spack/repos/builtin/packages/vasp/package.py
+++ b/var/spack/repos/builtin/packages/vasp/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Vasp(MakefilePackage):
"""
@@ -15,9 +16,11 @@ class Vasp(MakefilePackage):
and quantum-mechanical molecular dynamics, from first principles.
"""
- homepage = "http://vasp.at"
+ homepage = "https://vasp.at"
url = "file://{0}/vasp.5.4.4.pl2.tgz".format(os.getcwd())
+ manual_download = True
+ version('6.1.1', sha256='e37a4dfad09d3ad0410833bcd55af6b599179a085299026992c2d8e319bf6927')
version('5.4.4.pl2', sha256='98f75fd75399a23d76d060a6155f4416b340a1704f256a00146f89024035bc8e')
version('5.4.4', sha256='5bd2449462386f01e575f9adf629c08cb03a13142806ffb6a71309ca4431cfb3')
@@ -56,6 +59,7 @@ class Vasp(MakefilePackage):
make_include = join_path('arch', 'makefile.include.linux_gnu')
elif '%nvhpc' in spec:
make_include = join_path('arch', 'makefile.include.linux_pgi')
+ filter_file('-pgc++libs', '-c++libs', make_include, string=True)
filter_file('pgcc', spack_cc, make_include)
filter_file('pgc++', spack_cxx, make_include, string=True)
filter_file('pgfortran', spack_fc, make_include)
@@ -76,6 +80,9 @@ class Vasp(MakefilePackage):
filter_file('^CPP_OPTIONS[ ]{0,}=[ ]{0,}',
'CPP_OPTIONS ?= ',
'makefile.include')
+ filter_file('^FFLAGS[ ]{0,}=[ ]{0,}',
+ 'FFLAGS ?= ',
+ 'makefile.include')
filter_file('^LIBDIR[ ]{0,}=.*$', '', 'makefile.include')
filter_file('^BLAS[ ]{0,}=.*$', 'BLAS ?=', 'makefile.include')
@@ -113,14 +120,24 @@ class Vasp(MakefilePackage):
'-Dqd_emulate'])
else:
cpp_options.append('-DHOST=\\"LinuxGNU\\"')
+ if self.spec.satisfies('@6:'):
+ cpp_options.append('-Dvasp6')
cflags = ['-fPIC', '-DADD_']
+ fflags = []
+ if '%gcc' in spec or '%intel' in spec:
+ fflags.append('-w')
+ elif '%nvhpc' in spec:
+ fflags.extend(['-Mnoupcase', '-Mbackslash', '-Mlarge_arrays'])
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 '%nvhpc' in spec:
+ spack_env.set('QD', spec['qd'].prefix)
+
if '+scalapack' in spec:
cpp_options.append('-DscaLAPACK')
spack_env.set('SCALAPACK', spec['netlib-scalapack'].libs.ld_flags)
@@ -141,15 +158,19 @@ class Vasp(MakefilePackage):
if '+vaspsol' in spec:
cpp_options.append('-Dsol_compat')
+ if spec.satisfies('%gcc@10:'):
+ fflags.append('-fallow-argument-mismatch')
+
# Finally
spack_env.set('CPP_OPTIONS', ' '.join(cpp_options))
spack_env.set('CFLAGS', ' '.join(cflags))
+ spack_env.set('FFLAGS', ' '.join(fflags))
def build(self, spec, prefix):
if '+cuda' in self.spec:
make('gpu', 'gpu_ncl')
else:
- make()
+ make('std', 'gam', 'ncl')
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
index 99a9b53f3b..4ef7aa6433 100644
--- a/var/spack/repos/builtin/packages/vbfnlo/package.py
+++ b/var/spack/repos/builtin/packages/vbfnlo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,8 @@ class Vbfnlo(AutotoolsPackage):
homepage = "https://www.itp.kit.edu/vbfnlo/wiki/doku.php?id=overview"
url = "https://github.com/vbfnlo/vbfnlo/archive/v3.0.0beta5.tar.gz"
+ tags = ["hep"]
+
# The commented out versions exist, but are not tested
version('3.0.0beta5', sha256='777a3dedb365ea9abc38848a60f30d325da3799cbad69fa308664b94a8c31a90')
version('3.0.0beta4', sha256='511e84765e9634a75766a160eae1925812dacbb3943e7e3b4dc90e2eacac8a2c')
@@ -28,6 +30,10 @@ class Vbfnlo(AutotoolsPackage):
depends_on('gsl')
depends_on('lhapdf')
depends_on('looptools')
+ depends_on('automake', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('m4', type='build')
+ depends_on('libtool', type='build')
@when('@2.7.1')
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/vc/package.py b/var/spack/repos/builtin/packages/vc/package.py
index 7d975c352b..fd05baf441 100644
--- a/var/spack/repos/builtin/packages/vc/package.py
+++ b/var/spack/repos/builtin/packages/vc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vcftools/package.py b/var/spack/repos/builtin/packages/vcftools/package.py
index 92d49392c5..197287a8d2 100644
--- a/var/spack/repos/builtin/packages/vcftools/package.py
+++ b/var/spack/repos/builtin/packages/vcftools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vcsh/package.py b/var/spack/repos/builtin/packages/vcsh/package.py
index 3368c596df..6454c2f3f3 100644
--- a/var/spack/repos/builtin/packages/vcsh/package.py
+++ b/var/spack/repos/builtin/packages/vcsh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,4 +22,5 @@ class Vcsh(Package):
# vcsh provides a makefile, if needed the install method should be adapted
def install(self, spec, prefix):
+ mkdirp(prefix.bin)
install('vcsh', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/vdt/package.py b/var/spack/repos/builtin/packages/vdt/package.py
index 77c78e7f27..cc7bc06274 100644
--- a/var/spack/repos/builtin/packages/vdt/package.py
+++ b/var/spack/repos/builtin/packages/vdt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/veccore/package.py b/var/spack/repos/builtin/packages/veccore/package.py
index a339358a08..e04f71e219 100644
--- a/var/spack/repos/builtin/packages/veccore/package.py
+++ b/var/spack/repos/builtin/packages/veccore/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vecgeom/package.py b/var/spack/repos/builtin/packages/vecgeom/package.py
index 1df60770f5..7d56d574b5 100644
--- a/var/spack/repos/builtin/packages/vecgeom/package.py
+++ b/var/spack/repos/builtin/packages/vecgeom/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,9 +15,17 @@ class Vecgeom(CMakePackage, CudaPackage):
url = "https://gitlab.cern.ch/VecGeom/VecGeom/-/archive/v1.1.6/VecGeom-v1.1.6.tar.gz"
git = "https://gitlab.cern.ch/VecGeom/VecGeom.git"
+ tags = ['hep']
+
maintainers = ['drbenmorgan', 'sethrj']
version('master', branch='master')
+ version('1.1.16', sha256='2fa636993156d9d06750586e8a1ac1701ae2be62dea07964e2369698ae521d02')
+ version('1.1.15', sha256='0ee9897eb12d8d560dc0c9e56e8fdb78d0111f651a984df24e983da035bd1c70')
+ version('1.1.13', sha256='6bb364cc74bdab2e64e2fe132debd7f1e192da0a103f5149df7ab25b7c19a205')
+ version('1.1.12', sha256='fec4495aac4a9d583f076551da61a68b956bba1dd1ebe1cd48c00ef95c962049')
+ version('1.1.9', sha256='a90e11bf83724300d1d7206e5fe89a7915c4ec6aae881587f18e282ac0f6ee8e')
+ version('1.1.8', sha256='9c42206d788ec4b791571882f5ea8d2c591c938abe61c21cc5ec37bfea6bf768')
version('1.1.7', sha256='cc79a0baa783b21ecc399c4e7cca925ca340e6aeb96e3b2cad45c141557519bf')
version('1.1.6', sha256='c4806a6b67d01b40074b8cc6865d78574a6a1c573be51696f2ecdf98b9cb954a')
version('1.1.5', sha256='da674f3bbc75c30f56c1a2d251fa8930c899f27fa64b03a36569924030d87b95')
diff --git a/var/spack/repos/builtin/packages/veclibfort/package.py b/var/spack/repos/builtin/packages/veclibfort/package.py
index bfd3fc2d32..2f8b11f456 100644
--- a/var/spack/repos/builtin/packages/veclibfort/package.py
+++ b/var/spack/repos/builtin/packages/veclibfort/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Veclibfort(Package):
"""Lightweight but flexible shim designed to rectify the incompatibilities
diff --git a/var/spack/repos/builtin/packages/vegas2/package.py b/var/spack/repos/builtin/packages/vegas2/package.py
index dff83b2adf..a4dfb1cbb1 100644
--- a/var/spack/repos/builtin/packages/vegas2/package.py
+++ b/var/spack/repos/builtin/packages/vegas2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/veloc/package.py b/var/spack/repos/builtin/packages/veloc/package.py
index f6b6d4b8b1..f9f5cf95dd 100644
--- a/var/spack/repos/builtin/packages/veloc/package.py
+++ b/var/spack/repos/builtin/packages/veloc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,22 +11,24 @@ class Veloc(CMakePackage):
checkpoint-restart runtime for HPC supercomputing infrastructures"""
homepage = "https://github.com/ECP-VeloC/VELOC"
- url = "https://github.com/ECP-VeloC/VELOC/archive/veloc-1.0rc1.zip"
+ url = "https://github.com/ECP-VeloC/VELOC/archive/1.5.tar.gz"
git = "https://github.com/ecp-veloc/veloc.git"
tags = ['ecp']
version('master', branch='master')
- version('1.4', sha256='d5d12aedb9e97f079c4428aaa486bfa4e31fe1db547e103c52e76c8ec906d0a8')
- version('1.1', sha256='2bbdacf3e0ce4e7c9e360874d8d85b405525bdc7bd992bdb1f1ba49218072160')
- version('1.0', sha256='d594b73d6549a61fce8e67b8984a17cebc3e766fc520ed1636ae3683cdde77cb')
- version('1.0rc1', sha256='81686ca0994a22475911d38d21c7c74b64ffef4ca872fd01f76d155c5124b0bc')
+ version('1.5', sha256='892f3623c73254d40fbbb8cbc3056219a31510e37aae2ede4100c04743701a5c')
+ version('1.4', sha256='d5d12aedb9e97f079c4428aaa486bfa4e31fe1db547e103c52e76c8ec906d0a8')
+ version('1.3', sha256='3817ea57045443c1a9a819560911db1175dbe4153e317adaa1492437f3f13f3b')
+ version('1.2', sha256='126a7e01d79458807a6545a8e5f92f8d62a23187dee70be0913b60a1393780e0')
+ version('1.1', sha256='2bbdacf3e0ce4e7c9e360874d8d85b405525bdc7bd992bdb1f1ba49218072160')
+ version('1.0', sha256='d594b73d6549a61fce8e67b8984a17cebc3e766fc520ed1636ae3683cdde77cb')
depends_on('boost')
depends_on('libpthread-stubs')
depends_on('mpi')
depends_on('er')
- depends_on('axl')
+ depends_on('axl@:0.3.0')
depends_on('openssl') # Relies on the OpenSSL crypto library for checksums
depends_on('pdsh', when='@master')
depends_on('cmake@3.9:', type='build')
diff --git a/var/spack/repos/builtin/packages/velvet/package.py b/var/spack/repos/builtin/packages/velvet/package.py
index f205c8034f..026233c109 100644
--- a/var/spack/repos/builtin/packages/velvet/package.py
+++ b/var/spack/repos/builtin/packages/velvet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,8 +10,8 @@ class Velvet(MakefilePackage):
"""Velvet is a de novo genomic assembler specially designed for short read
sequencing technologies."""
- homepage = "http://www.ebi.ac.uk/~zerbino/velvet/"
- url = "http://www.ebi.ac.uk/~zerbino/velvet/velvet_1.2.10.tgz"
+ homepage = "https://www.ebi.ac.uk/~zerbino/velvet/"
+ url = "https://www.ebi.ac.uk/~zerbino/velvet/velvet_1.2.10.tgz"
version('1.2.10', sha256='884dd488c2d12f1f89cdc530a266af5d3106965f21ab9149e8cb5c633c977640')
diff --git a/var/spack/repos/builtin/packages/velvetoptimiser/package.py b/var/spack/repos/builtin/packages/velvetoptimiser/package.py
index 8a71bb6ad0..d143b2b949 100644
--- a/var/spack/repos/builtin/packages/velvetoptimiser/package.py
+++ b/var/spack/repos/builtin/packages/velvetoptimiser/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/verilator/package.py b/var/spack/repos/builtin/packages/verilator/package.py
index c662ab1b62..690dc1aee6 100644
--- a/var/spack/repos/builtin/packages/verilator/package.py
+++ b/var/spack/repos/builtin/packages/verilator/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -35,6 +35,8 @@ class Verilator(AutotoolsPackage):
homepage = "https://www.veripool.org/projects/verilator"
url = "https://www.veripool.org/ftp/verilator-3.920.tgz"
+ version('4.108', sha256='8e8ec1de0bf200b6206035214f9071a5acc64bd2e7134361d564271e48552702')
+ version('4.020', sha256='abd79fc2a54cab9da33dfccd669bda3baa71e79060abec17517f0b7374dbc31a')
version('3.920', sha256='2b5c38aa432d0766a38475219f9548d64d18104ce8bdcb5d29e42f5da06943ff')
version('3.904', sha256='ea95e08b2d70682ad42e6c2f5ba99f59b2e7b220791214076099cdf6b7a8c1cb')
diff --git a/var/spack/repos/builtin/packages/verrou/package.py b/var/spack/repos/builtin/packages/verrou/package.py
index f92443d144..273c1ba6a2 100644
--- a/var/spack/repos/builtin/packages/verrou/package.py
+++ b/var/spack/repos/builtin/packages/verrou/package.py
@@ -1,13 +1,14 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
import sys
+from spack import *
+
class Verrou(AutotoolsPackage):
"""A floating-point error checker.
diff --git a/var/spack/repos/builtin/packages/vesta/package.py b/var/spack/repos/builtin/packages/vesta/package.py
index 65a9a0fa12..9599eabdf8 100644
--- a/var/spack/repos/builtin/packages/vesta/package.py
+++ b/var/spack/repos/builtin/packages/vesta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Vesta(Package):
"""VESTA is a 3D visualization program for structural models, volumetric data
such as electron/nuclear densities, and crystal morphologies."""
- homepage = "http://jp-minerals.org/vesta"
+ homepage = "https://jp-minerals.org/vesta"
url = "https://jp-minerals.org/vesta/archives/3.4.6/VESTA-x86_64.tar.bz2"
version('3.4.6', sha256='fb00ac9a7bf46a3d9a1d745859c5e8757ba30f017a46470eb2c123b9afcf66ee')
diff --git a/var/spack/repos/builtin/packages/vgm/package.py b/var/spack/repos/builtin/packages/vgm/package.py
index 2ae62bdff1..71624929e7 100644
--- a/var/spack/repos/builtin/packages/vgm/package.py
+++ b/var/spack/repos/builtin/packages/vgm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,6 +14,8 @@ class Vgm(CMakePackage):
url = "https://github.com/vmc-project/vgm/archive/v4-8.tar.gz"
git = "https://github.com/vmc-project/vgm.git"
+ tags = ['hep']
+
maintainer = ['wdconinc']
version('master', branch='master')
diff --git a/var/spack/repos/builtin/packages/videoproto/package.py b/var/spack/repos/builtin/packages/videoproto/package.py
index 8aa1fea213..b4bc2667fa 100644
--- a/var/spack/repos/builtin/packages/videoproto/package.py
+++ b/var/spack/repos/builtin/packages/videoproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Videoproto(AutotoolsPackage, XorgPackage):
This extension provides a protocol for a video output mechanism,
mainly to rescale video playback in the video controller hardware."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/videoproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/videoproto"
xorg_mirror_path = "proto/videoproto-2.3.3.tar.gz"
version('2.3.3', sha256='df8dfeb158767f843054248d020e291a2c40f7f5e0ac6d8706966686fee7c5c0')
diff --git a/var/spack/repos/builtin/packages/viennarna/package.py b/var/spack/repos/builtin/packages/viennarna/package.py
index f06629f098..3d0dffc87a 100644
--- a/var/spack/repos/builtin/packages/viennarna/package.py
+++ b/var/spack/repos/builtin/packages/viennarna/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/viewres/package.py b/var/spack/repos/builtin/packages/viewres/package.py
index 7294e2ab0c..996dfb157c 100644
--- a/var/spack/repos/builtin/packages/viewres/package.py
+++ b/var/spack/repos/builtin/packages/viewres/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Viewres(AutotoolsPackage, XorgPackage):
"""viewres displays a tree showing the widget class hierarchy of the
Athena Widget Set (libXaw)."""
- homepage = "http://cgit.freedesktop.org/xorg/app/viewres"
+ homepage = "https://cgit.freedesktop.org/xorg/app/viewres"
xorg_mirror_path = "app/viewres-1.0.4.tar.gz"
version('1.0.4', sha256='fd2aaec85c952fd6984fe14d0fcbda4d2ab9849a9183e4787b0ef552a10a87a1')
diff --git a/var/spack/repos/builtin/packages/vifi/package.py b/var/spack/repos/builtin/packages/vifi/package.py
index e2c0bfa472..2a165e4505 100644
--- a/var/spack/repos/builtin/packages/vifi/package.py
+++ b/var/spack/repos/builtin/packages/vifi/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vigra/package.py b/var/spack/repos/builtin/packages/vigra/package.py
index 217f55a9bd..94b5a21e5a 100644
--- a/var/spack/repos/builtin/packages/vigra/package.py
+++ b/var/spack/repos/builtin/packages/vigra/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,10 @@ class Vigra(CMakePackage):
customizable algorithms and data structures"""
homepage = "https://ukoethe.github.io/vigra/"
+ git = "https://github.com/ukoethe/vigra.git"
url = "https://github.com/ukoethe/vigra/releases/download/Version-1-11-1/vigra-1.11.1-src.tar.gz"
+ version('master', branch='master')
version('1.11.1', sha256='a5564e1083f6af6a885431c1ee718bad77d11f117198b277557f8558fa461aaf')
variant('png', default=False, description='Include support for PNG images')
diff --git a/var/spack/repos/builtin/packages/vim/package.py b/var/spack/repos/builtin/packages/vim/package.py
index 722fe46a67..62af8abb71 100644
--- a/var/spack/repos/builtin/packages/vim/package.py
+++ b/var/spack/repos/builtin/packages/vim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,10 +15,13 @@ class Vim(AutotoolsPackage):
composing email to editing configuration files.
"""
- homepage = "http://www.vim.org"
+ homepage = "https://www.vim.org"
url = "https://github.com/vim/vim/archive/v8.1.0338.tar.gz"
+ maintainers = ['sethrj']
+ version('8.2.2541', sha256='2699dfe87b524169e7390f0b383c406cb77a9fde7431665d3b9b80964d8d5daf')
version('8.2.1201', sha256='39032fe866f44724b104468038dc9ac4ff2c00a4b18c9a1e2c27064ab1f1143d')
+ version('8.2.0752', sha256='d616945810dac5a1fab2f23b003d22bdecd34861b31f208d5d0012a609821c0f')
version('8.1.2141', sha256='7be3c3d88a6c871121230ffb9b7371b1d2ab462118dedb967c7265473af1144b')
version('8.1.0338', sha256='3febcc4e49eaca458be1a1e8055a3a52887aa2054b03e24d5f38d192c3de51a0')
version('8.1.0001', sha256='c342acaa26589f371fa34a5ca213b95811f26185c12443f8f48ad2868dee2935')
@@ -28,108 +31,76 @@ class Vim(AutotoolsPackage):
version('8.0.0134', sha256='1b3e3e7d187eed55cbdb0a1dae6b8f3b885005fbae84222420877d7afa3b2310')
version('7.4.2367', sha256='a9ae4031ccd73cc60e771e8bf9b3c8b7f10f63a67efce7f61cd694cd8d7cda5c')
- feature_sets = ('huge', 'big', 'normal', 'small', 'tiny')
- for fs in feature_sets:
- variant(fs, default=False, description="Use '%s' feature set" % fs)
+ _features = ('huge', 'big', 'normal', 'small', 'tiny')
+ variant('cscope', default=False, description="build with cscope support")
+ variant('features', default='normal', description="feature set",
+ values=_features, multi=False)
+ variant('gui', default=False, description="build with gui (gvim)")
+ variant('lua', default=False, description="build with Lua")
+ variant('perl', default=False, description="build with Perl")
variant('python', default=False, description="build with Python")
- depends_on('python', when='+python')
-
variant('ruby', default=False, description="build with Ruby")
- depends_on('ruby', when='+ruby')
+ variant('x', default=False, description="use the X Window System")
- variant('lua', default=False, description="build with Lua")
- depends_on('lua', when='+lua')
+ for _f in _features[1:]:
+ conflicts('+gui', when='features=' + _f,
+ msg='+gui requires features=huge')
- variant('perl', default=False, description="build with Perl")
- depends_on('perl', when='+perl')
+ depends_on('findutils', type='build')
+ depends_on('ncurses', when='@7.4:')
- variant('cscope', default=False, description="build with cscope support")
depends_on('cscope', when='+cscope', type='run')
-
- # TODO: Once better support for multi-valued variants is added, add
- # support for auto/no/gtk2/gnome2/gtk3/motif/athena/neXtaw/photon/carbon
- variant('gui', default=False, description="build with gui (gvim)")
- variant('x', default=False, description="use the X Window System")
+ depends_on('lua', when='+lua')
+ depends_on('perl', when='+perl')
+ depends_on('python', when='+python')
+ depends_on('ruby', when='+ruby')
+ depends_on('fontconfig', when="+gui")
depends_on('libx11', when="+x")
depends_on('libsm', when="+x")
depends_on('libxpm', when="+x")
depends_on('libxt', when="+x")
depends_on('libxtst', when="+x")
- depends_on('ncurses', when="@7.4:")
- depends_on('findutils', type='build')
- depends_on('fontconfig', when="+gui")
+ provides('xxd')
def configure_args(self):
spec = self.spec
- feature_set = None
- for fs in self.feature_sets:
- if "+" + fs in spec:
- if feature_set is not None:
- raise InstallError(
- "Only one feature set allowed, specified %s and %s"
- % (feature_set, fs))
- feature_set = fs
- if '+gui' in spec:
- if feature_set is not None:
- if feature_set != 'huge':
- raise InstallError(
- "+gui variant requires 'huge' feature set, "
- "%s was specified" % feature_set)
- feature_set = 'huge'
- if feature_set is None:
- feature_set = 'normal'
-
- configure_args = ["--enable-fail-if-missing"]
+ args = ["--enable-fail-if-missing"]
+
+ def yes_or_no(variant):
+ return 'yes' if spec.variants[variant].value else 'no'
if '+termlib' in spec['ncurses']:
- configure_args.append("--with-tlib=tinfow")
+ args.append("--with-tlib=tinfow")
else:
- configure_args.append("--with-tlib=ncursesw")
+ args.append("--with-tlib=ncursesw")
- configure_args.append("--with-features=" + feature_set)
+ args.append("--with-features=" + spec.variants['features'].value)
if '+python' in spec:
- if 'python@3:' in self.spec:
- configure_args.append("--enable-python3interp=dynamic")
- configure_args.append("--enable-pythoninterp=no")
+ if spec['python'].version >= Version('3'):
+ args.append("--enable-python3interp=dynamic")
+ args.append("--enable-pythoninterp=no")
else:
- configure_args.append("--enable-python3interp=no")
- configure_args.append("--enable-pythoninterp=dynamic")
+ args.append("--enable-python3interp=no")
+ args.append("--enable-pythoninterp=dynamic")
else:
- configure_args.append("--enable-python3interp=no")
+ args.append("--enable-python3interp=no")
- if '+ruby' in spec:
- configure_args.append("--enable-rubyinterp=yes")
- else:
- configure_args.append("--enable-rubyinterp=no")
+ args.extend([
+ "--enable-gui=" + ('auto' if '+gui' in spec else 'no'),
+ "--enable-luainterp=" + yes_or_no('lua'),
+ "--enable-perlinterp=" + yes_or_no('perl'),
+ "--enable-rubyinterp=" + yes_or_no('ruby'),
+ ])
+ args.extend(self.enable_or_disable('cscope'))
+ args.extend(self.with_or_without('x'))
if '+lua' in spec:
- configure_args.append("--enable-luainterp=yes")
- configure_args.append("--with-lua-prefix=%s" % spec['lua'].prefix)
- else:
- configure_args.append("--enable-luainterp=no")
-
- if '+perl' in spec:
- configure_args.append("--enable-perlinterp=yes")
- else:
- configure_args.append("--enable-perlinterp=no")
-
- if '+gui' in spec:
- configure_args.append("--enable-gui=auto")
- else:
- configure_args.append("--enable-gui=no")
-
- if '+x' in spec:
- configure_args.append("--with-x")
- else:
- configure_args.append("--without-x")
-
- if '+cscope' in spec:
- configure_args.append("--enable-cscope")
+ args.append("--with-lua-prefix=" + spec['lua'].prefix)
- return configure_args
+ return args
# Tests must be run in serial
def check(self):
diff --git a/var/spack/repos/builtin/packages/virtualgl/package.py b/var/spack/repos/builtin/packages/virtualgl/package.py
index 9ac87f3609..5d4f0cff45 100644
--- a/var/spack/repos/builtin/packages/virtualgl/package.py
+++ b/var/spack/repos/builtin/packages/virtualgl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Virtualgl(CMakePackage):
stream with which remote clients can interact to view and control the
3D application in real time."""
- homepage = "http://www.virtualgl.org/Main/HomePage"
+ homepage = "https://www.virtualgl.org/Main/HomePage"
url = "http://downloads.sourceforge.net/project/virtualgl/2.5.2/VirtualGL-2.5.2.tar.gz"
version('2.5.2', sha256='4f43387678b289a24139c5b7c3699740ca555a9f10011c979e51aa4df2b93238')
diff --git a/var/spack/repos/builtin/packages/virtuoso/package.py b/var/spack/repos/builtin/packages/virtuoso/package.py
new file mode 100644
index 0000000000..f23626411a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/virtuoso/package.py
@@ -0,0 +1,58 @@
+# Copyright 2013-2021 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 Virtuoso(AutotoolsPackage):
+ """Virtuoso is a high-performance and scalable Multi-Model RDBMS,
+ Data Integration Middleware, Linked Data Deployment, and HTTP
+ Application Server Platform"""
+
+ homepage = "https://github.com/openlink/virtuoso-opensource"
+ git = "https://github.com/openlink/virtuoso-opensource.git"
+
+ version('7.2.5.1-dev', commit='3ff1d4b3de3977337baf909c264968b9f70b7d2c')
+
+ variant('dbpedia-vad', default=False, description='DBpedia vad package')
+ variant('demo-vad', default=False, description='Demo vad package')
+ variant('fct-vad', default=True, description='Facet Browser vad package')
+ variant('ods-vad', default=True, description='ODS vad package')
+ variant('sparqldemo-vad', default=False, description='Sparql Demo vad package')
+ variant('tutorial-vad', default=False, description='Tutorial vad package')
+ variant('isparql-vad', default=True, description='iSPARQL vad package')
+ variant('rdfmappers-vad', default=True, description='RDF Mappers vad package')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('bison', type='build')
+ depends_on('flex', type='build')
+ depends_on('gperf')
+ depends_on('readline')
+ depends_on('openssl@0.9.8:1.1.99')
+
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./autogen.sh')
+
+ def configure_args(self):
+ readlinep = self.spec['readline'].prefix.lib
+ args = ['--with-layout=opt',
+ '--program-transform-name=s/isql/isql-v/',
+ '--with-readline={0}'.format(readlinep)
+ ]
+ args.extend(self.enable_or_disable('dbpedia-vad'))
+ args.extend(self.enable_or_disable('demo-vad'))
+ args.extend(self.enable_or_disable('fct-vad'))
+ args.extend(self.enable_or_disable('ods-vad'))
+ args.extend(self.enable_or_disable('sparqldemo-vad'))
+ args.extend(self.enable_or_disable('tutorial-vad'))
+ args.extend(self.enable_or_disable('isparql-vad'))
+ args.extend(self.enable_or_disable('rdfmappers-vad'))
+ return args
diff --git a/var/spack/repos/builtin/packages/visit-cgns/package.py b/var/spack/repos/builtin/packages/visit-cgns/package.py
new file mode 100644
index 0000000000..414b446228
--- /dev/null
+++ b/var/spack/repos/builtin/packages/visit-cgns/package.py
@@ -0,0 +1,99 @@
+# Copyright 2013-2021 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)
+
+import os
+
+# Import re module to use regular expression
+import re
+
+from spack import *
+
+
+class VisitCgns(CMakePackage):
+ """This is the CGNS Plug-In for VisIt.
+ It can be installed after VisIt is installed along CGNS library.
+ """
+
+ # These settings are exactly those of VisIt
+ homepage = "https://wci.llnl.gov/simulation/computer-codes/visit/"
+ git = "https://github.com/visit-dav/visit.git"
+ url = "https://github.com/visit-dav/visit/releases/download/v3.1.1/visit3.1.1.tar.gz"
+
+ maintainers = ['cyrush', 'cessenat']
+
+ # Here we provide a local file that contains only the plugin in a flat directory
+ version('local', url='file://{0}/visit-CGNS.tgz'.format(os.getcwd()))
+ # Below we copy the VisIt paths:
+ version('develop', branch='develop')
+ version('3.2.0', sha256='7328fd8592f9aaf17bf79ffcffd7eaec77773926b0843d9053f39c2190dbe1c0')
+ version('3.1.4', sha256='be20d9acf56f0599e3c511709f48d8d3b232a57425f69d2bd1e2df1eccb84c93')
+ version('3.1.1', sha256='0b60ac52fd00aff3cf212a310e36e32e13ae3ca0ddd1ea3f54f75e4d9b6c6cf0')
+ version('3.0.1', sha256='a506d4d83b8973829e68787d8d721199523ce7ec73e7594e93333c214c2c12bd')
+ version('2.13.3', sha256='cf0b3d2e39e1cd102dd886d3ef6da892733445e362fc28f24d9682012cccf2e5')
+ version('2.13.0', sha256='716644b8e78a00ff82691619d4d1e7a914965b6535884890b667b97ba08d6a0f')
+ version('2.12.3', sha256='2dd351a291ee3e79926bc00391ca89b202cfa4751331b0fdee1b960c7922161f')
+ version('2.12.2', sha256='55897d656ac2ea4eb87a30118b2e3963d6c8a391dda0790268426a73e4b06943')
+ version('2.10.3', sha256='05018215c4727eb42d47bb5cc4ff937b2a2ccaca90d141bc7fa426a0843a5dbc')
+ version('2.10.2', sha256='89ecdfaf197ef431685e31b75628774deb6cd75d3e332ef26505774403e8beff')
+ version('2.10.1', sha256='6b53dea89a241fd03300a7a3a50c0f773e2fb8458cd3ad06816e9bd2f0337cd8')
+
+ depends_on('cmake', type='build')
+ depends_on('cgns@3.3.1+int64~scoping~legacy', when='@2.10.1:3.1.4')
+ depends_on('cgns+int64~scoping~legacy')
+ depends_on('visit@3.2.0:', when='@3.2.0:')
+ depends_on('visit')
+
+ extends('visit')
+
+ build_targets = ['VERBOSE=1']
+ phases = ['cmake', 'build']
+ extname = 'CGNS'
+
+ @property
+ def root_cmakelists_dir(self):
+ if '@local' not in self.spec:
+ return join_path('src', 'databases', self.extname)
+ else:
+ return '.'
+
+ @property
+ def build_directory(self):
+ return self.root_cmakelists_dir
+
+ @run_before('cmake')
+ def run_xml2cmake(self):
+ visit = self.spec['visit']
+ args = ['-v', str(visit.version), '-clobber', '-public', self.extname + '.xml']
+ with working_dir(self.root_cmakelists_dir):
+ # Regenerate the public cmake files
+ if os.path.exists("CMakeLists.txt"):
+ os.unlink('CMakeLists.txt')
+ which("xml2cmake")(*args)
+ # spack extension activate : alter VISIT_PLUGIN_DIR ;
+ # xml2cmake should have set it to visit prefix but it can
+ # happen the directory is an alias.
+ # In that case we match version/smth/plugins.
+ mstr = None
+ mstr1 = r'^SET[(]VISIT_PLUGIN_DIR\s+\"{0}(.+)\"[)]'.format(visit.prefix)
+ mstr2 = r'^SET[(]VISIT_PLUGIN_DIR\s+\".+({0}.+?{1})\"[)]'.format(
+ join_path(os.sep, visit.version, ''), join_path(os.sep, 'plugins'))
+ with open('CMakeLists.txt', 'r') as file:
+ for line in file:
+ if re.search(mstr1, line):
+ mstr = mstr1
+ elif re.search(mstr2, line):
+ mstr = mstr2
+ if mstr is not None:
+ filter_file(mstr, r'SET(VISIT_PLUGIN_DIR "{0}\1")'.format(prefix),
+ 'CMakeLists.txt')
+
+ def cmake_args(self):
+ cgns = self.spec['cgns']
+ args = [
+ '-DCGNS_INCLUDE_DIR=' + cgns.prefix.include,
+ '-DCGNS_LIBRARY_DIR=' + cgns.prefix.lib,
+ '-DCGNS_LIB=' + cgns.libs.link_flags,
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/visit-ffp/package.py b/var/spack/repos/builtin/packages/visit-ffp/package.py
new file mode 100644
index 0000000000..7d5f9213ef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/visit-ffp/package.py
@@ -0,0 +1,82 @@
+# Copyright 2013-2021 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)
+
+import os
+import re
+
+from spack import *
+
+
+class VisitFfp(CMakePackage):
+ """This is the FFP Plug-In for VisIt.
+ Can be installed after VisIt is installed with/without the STRIPACK library.
+ """
+
+ # These settings are exactly those of VisIt
+ homepage = "https://wci.llnl.gov/simulation/computer-codes/visit/"
+ git = "https://github.com/visit-dav/visit.git"
+ url = "https://github.com/visit-dav/visit/releases/download/v3.1.1/visit3.1.1.tar.gz"
+
+ maintainers = ['cyrush', 'cessenat']
+
+ # Here we provide a local file that contains only the plugin in a flat directory
+ version('local', url='file://{0}/visit-ffp.tgz'.format(os.getcwd()))
+ # Below we copy the VisIt paths, ffp first shipment is with VisIt 3
+ version('develop', branch='develop')
+ version('3.2.0', sha256='7328fd8592f9aaf17bf79ffcffd7eaec77773926b0843d9053f39c2190dbe1c0')
+ version('3.1.4', sha256='be20d9acf56f0599e3c511709f48d8d3b232a57425f69d2bd1e2df1eccb84c93')
+ version('3.1.1', sha256='0b60ac52fd00aff3cf212a310e36e32e13ae3ca0ddd1ea3f54f75e4d9b6c6cf0')
+ version('3.0.1', sha256='a506d4d83b8973829e68787d8d721199523ce7ec73e7594e93333c214c2c12bd')
+
+ variant('stripack', default=True,
+ description='Enable STRIPACK unit sphere Delaunay meshing')
+
+ depends_on('cmake', type='build')
+ depends_on('stripack', when='+stripack')
+ depends_on('visit')
+
+ extends('visit')
+
+ build_targets = ['VERBOSE=1']
+ phases = ['cmake', 'build']
+ extname = 'ffp'
+
+ @property
+ def root_cmakelists_dir(self):
+ if '@local' not in self.spec:
+ return join_path('src', 'databases', self.extname)
+ else:
+ return '.'
+
+ @property
+ def build_directory(self):
+ return self.root_cmakelists_dir
+
+ @run_before('cmake')
+ def run_xml2cmake(self):
+ visit = self.spec['visit']
+ args = ['-v', str(visit.version), '-clobber', '-public', self.extname + '.xml']
+ with working_dir(self.root_cmakelists_dir):
+ # Regenerate the public cmake files
+ if os.path.exists("CMakeLists.txt"):
+ os.unlink('CMakeLists.txt')
+ which("xml2cmake")(*args)
+ # spack extension activate : alter VISIT_PLUGIN_DIR ;
+ # xml2cmake should have set it to visit prefix but it can
+ # happen the directory is an alias.
+ # In that case we match version/smth/plugins.
+ mstr = None
+ mstr1 = r'^SET[(]VISIT_PLUGIN_DIR\s+\"{0}(.+)\"[)]'.format(visit.prefix)
+ mstr2 = r'^SET[(]VISIT_PLUGIN_DIR\s+\".+({0}.+?{1})\"[)]'.format(
+ join_path(os.sep, visit.version, ''), join_path(os.sep, 'plugins'))
+ with open('CMakeLists.txt', 'r') as file:
+ for line in file:
+ if re.search(mstr1, line):
+ mstr = mstr1
+ elif re.search(mstr2, line):
+ mstr = mstr2
+ if mstr is not None:
+ filter_file(mstr, r'SET(VISIT_PLUGIN_DIR "{0}\1")'.format(prefix),
+ 'CMakeLists.txt')
diff --git a/var/spack/repos/builtin/packages/visit-mfem/package.py b/var/spack/repos/builtin/packages/visit-mfem/package.py
new file mode 100644
index 0000000000..ca59e5a022
--- /dev/null
+++ b/var/spack/repos/builtin/packages/visit-mfem/package.py
@@ -0,0 +1,97 @@
+# Copyright 2013-2021 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)
+
+import os
+
+# Import re module to use regular expression
+import re
+
+from spack import *
+
+
+class VisitMfem(CMakePackage):
+ """This is the MFEM Plug-In for VisIt.
+ It can be installed after VisIt is installed along MFEM library.
+ """
+
+ # These settings are exactly those of VisIt
+ homepage = "https://wci.llnl.gov/simulation/computer-codes/visit/"
+ git = "https://github.com/visit-dav/visit.git"
+ url = "https://github.com/visit-dav/visit/releases/download/v3.1.1/visit3.1.1.tar.gz"
+
+ maintainers = ['cyrush', 'cessenat']
+
+ # Here we provide a local file that contains only the plugin in a flat directory
+ version('local', url='file://{0}/visit-MFEM.tgz'.format(os.getcwd()))
+ # Below we copy the VisIt paths:
+ version('develop', branch='develop')
+ version('3.2.0', sha256='7328fd8592f9aaf17bf79ffcffd7eaec77773926b0843d9053f39c2190dbe1c0')
+ version('3.1.4', sha256='be20d9acf56f0599e3c511709f48d8d3b232a57425f69d2bd1e2df1eccb84c93')
+ version('3.1.1', sha256='0b60ac52fd00aff3cf212a310e36e32e13ae3ca0ddd1ea3f54f75e4d9b6c6cf0')
+ version('3.0.1', sha256='a506d4d83b8973829e68787d8d721199523ce7ec73e7594e93333c214c2c12bd')
+ version('2.13.3', sha256='cf0b3d2e39e1cd102dd886d3ef6da892733445e362fc28f24d9682012cccf2e5')
+ version('2.13.0', sha256='716644b8e78a00ff82691619d4d1e7a914965b6535884890b667b97ba08d6a0f')
+ version('2.12.3', sha256='2dd351a291ee3e79926bc00391ca89b202cfa4751331b0fdee1b960c7922161f')
+ version('2.12.2', sha256='55897d656ac2ea4eb87a30118b2e3963d6c8a391dda0790268426a73e4b06943')
+ version('2.10.3', sha256='05018215c4727eb42d47bb5cc4ff937b2a2ccaca90d141bc7fa426a0843a5dbc')
+ version('2.10.2', sha256='89ecdfaf197ef431685e31b75628774deb6cd75d3e332ef26505774403e8beff')
+ version('2.10.1', sha256='6b53dea89a241fd03300a7a3a50c0f773e2fb8458cd3ad06816e9bd2f0337cd8')
+
+ depends_on('cmake', type='build')
+ depends_on('mfem')
+ depends_on('visit')
+
+ extends('visit')
+
+ build_targets = ['VERBOSE=1']
+ phases = ['cmake', 'build']
+ extname = 'MFEM'
+
+ @property
+ def root_cmakelists_dir(self):
+ if '@local' not in self.spec:
+ return join_path('src', 'databases', self.extname)
+ else:
+ return '.'
+
+ @property
+ def build_directory(self):
+ return self.root_cmakelists_dir
+
+ @run_before('cmake')
+ def run_xml2cmake(self):
+ visit = self.spec['visit']
+ args = ['-v', str(visit.version), '-clobber', '-public', self.extname + '.xml']
+ with working_dir(self.root_cmakelists_dir):
+ # Regenerate the public cmake files
+ if os.path.exists("CMakeLists.txt"):
+ os.unlink('CMakeLists.txt')
+ which("xml2cmake")(*args)
+ # spack extension activate : alter VISIT_PLUGIN_DIR ;
+ # xml2cmake should have set it to visit prefix but it can
+ # happen the directory is an alias.
+ # In that case we match version/smth/plugins.
+ mstr = None
+ mstr1 = r'^SET[(]VISIT_PLUGIN_DIR\s+\"{0}(.+)\"[)]'.format(visit.prefix)
+ mstr2 = r'^SET[(]VISIT_PLUGIN_DIR\s+\".+({0}.+?{1})\"[)]'.format(
+ join_path(os.sep, visit.version, ''), join_path(os.sep, 'plugins'))
+ with open('CMakeLists.txt', 'r') as file:
+ for line in file:
+ if re.search(mstr1, line):
+ mstr = mstr1
+ elif re.search(mstr2, line):
+ mstr = mstr2
+ if mstr is not None:
+ filter_file(mstr, r'SET(VISIT_PLUGIN_DIR "{0}\1")'.format(prefix),
+ 'CMakeLists.txt')
+
+ def cmake_args(self):
+ mfem = self.spec['mfem']
+ args = [
+ '-DMFEM_INCLUDE_DIR=' + mfem.prefix.include,
+ '-DMFEM_LIBRARY_DIR=' + mfem.prefix.lib,
+ '-DMFEM_LIB=' + mfem.libs.link_flags,
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/visit-silo/package.py b/var/spack/repos/builtin/packages/visit-silo/package.py
new file mode 100644
index 0000000000..db70b9b66e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/visit-silo/package.py
@@ -0,0 +1,102 @@
+# Copyright 2013-2021 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)
+
+import os
+
+# Import re module to use regular expression
+import re
+
+from spack import *
+
+
+class VisitSilo(CMakePackage):
+ """This is the Silo Plug-In for VisIt.
+ It can be installed after VisIt is installed along SILO library.
+ It is made as an extension to VisIt that can be activated or as an environment
+ with a view: ~/.visit
+ Complete explanation at:
+ https://github.com/spack/spack/pull/22907#issuecomment-824218296
+ """
+
+ # These settings are exactly those of VisIt
+ homepage = "https://wci.llnl.gov/simulation/computer-codes/visit/"
+ git = "https://github.com/visit-dav/visit.git"
+ url = "https://github.com/visit-dav/visit/releases/download/v3.1.1/visit3.1.1.tar.gz"
+
+ maintainers = ['cyrush', 'cessenat']
+
+ # Here we provide a local file that contains only the plugin in a flat directory
+ version('local', url='file://{0}/visit-Silo.tgz'.format(os.getcwd()))
+ # Below we copy the VisIt paths:
+ version('develop', branch='develop')
+ version('3.1.4', sha256='be20d9acf56f0599e3c511709f48d8d3b232a57425f69d2bd1e2df1eccb84c93')
+ version('3.1.3', sha256='fb8c133dd2feabe9a70fa5574fdefc0f2dc4ec6d5ed8b08bfb19b3d610eed43e')
+ version('3.1.2', sha256='cbe3864bd9a3025a643de3a218ad59b5501c8a4331af7b055a22d69cce9ca076')
+ version('3.1.1', sha256='0b60ac52fd00aff3cf212a310e36e32e13ae3ca0ddd1ea3f54f75e4d9b6c6cf0')
+ version('3.0.1', sha256='a506d4d83b8973829e68787d8d721199523ce7ec73e7594e93333c214c2c12bd')
+ version('2.13.3', sha256='cf0b3d2e39e1cd102dd886d3ef6da892733445e362fc28f24d9682012cccf2e5')
+ version('2.13.0', sha256='716644b8e78a00ff82691619d4d1e7a914965b6535884890b667b97ba08d6a0f')
+ version('2.12.3', sha256='2dd351a291ee3e79926bc00391ca89b202cfa4751331b0fdee1b960c7922161f')
+ version('2.12.2', sha256='55897d656ac2ea4eb87a30118b2e3963d6c8a391dda0790268426a73e4b06943')
+ version('2.10.3', sha256='05018215c4727eb42d47bb5cc4ff937b2a2ccaca90d141bc7fa426a0843a5dbc')
+ version('2.10.2', sha256='89ecdfaf197ef431685e31b75628774deb6cd75d3e332ef26505774403e8beff')
+ version('2.10.1', sha256='6b53dea89a241fd03300a7a3a50c0f773e2fb8458cd3ad06816e9bd2f0337cd8')
+
+ depends_on('cmake', type='build')
+ depends_on('silo')
+ depends_on('visit')
+
+ extends('visit')
+
+ build_targets = ['VERBOSE=1']
+ phases = ['cmake', 'build']
+ extname = 'Silo'
+
+ @property
+ def root_cmakelists_dir(self):
+ if '@local' not in self.spec:
+ return join_path('src', 'databases', self.extname)
+ else:
+ return '.'
+
+ @property
+ def build_directory(self):
+ return self.root_cmakelists_dir
+
+ @run_before('cmake')
+ def run_xml2cmake(self):
+ visit = self.spec['visit']
+ args = ['-v', str(visit.version), '-clobber', '-public', self.extname + '.xml']
+ with working_dir(self.root_cmakelists_dir):
+ # Regenerate the public cmake files
+ if os.path.exists("CMakeLists.txt"):
+ os.unlink('CMakeLists.txt')
+ which("xml2cmake")(*args)
+ # spack extension activate : alter VISIT_PLUGIN_DIR ;
+ # xml2cmake should have set it to visit prefix but it can
+ # happen the directory is an alias.
+ # In that case we match version/smth/plugins.
+ mstr = None
+ mstr1 = r'^SET[(]VISIT_PLUGIN_DIR\s+\"{0}(.+)\"[)]'.format(visit.prefix)
+ mstr2 = r'^SET[(]VISIT_PLUGIN_DIR\s+\".+({0}.+?{1})\"[)]'.format(
+ join_path(os.sep, visit.version, ''), join_path(os.sep, 'plugins'))
+ with open('CMakeLists.txt', 'r') as file:
+ for line in file:
+ if re.search(mstr1, line):
+ mstr = mstr1
+ elif re.search(mstr2, line):
+ mstr = mstr2
+ if mstr is not None:
+ filter_file(mstr, r'SET(VISIT_PLUGIN_DIR "{0}\1")'.format(prefix),
+ 'CMakeLists.txt')
+
+ def cmake_args(self):
+ silo = self.spec['silo']
+ args = [
+ '-DSILO_INCLUDE_DIR=' + silo.prefix.include,
+ '-DSILO_LIBRARY_DIR=' + silo.prefix.lib,
+ '-DSILO_LIB=' + silo.libs.link_flags,
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/visit-unv/package.py b/var/spack/repos/builtin/packages/visit-unv/package.py
new file mode 100644
index 0000000000..6bcac12964
--- /dev/null
+++ b/var/spack/repos/builtin/packages/visit-unv/package.py
@@ -0,0 +1,83 @@
+# Copyright 2013-2021 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)
+
+import os
+import re
+
+from spack import *
+
+
+class VisitUnv(CMakePackage):
+ """This is the UNV Plug-In for VisIt."""
+
+ # These settings are exactly those of VisIt
+ homepage = "https://wci.llnl.gov/simulation/computer-codes/visit/"
+ git = "https://github.com/visit-dav/visit.git"
+ url = "https://github.com/visit-dav/visit/releases/download/v3.1.1/visit3.1.1.tar.gz"
+
+ maintainers = ['cyrush', 'cessenat']
+
+ # Here we provide a local file that contains only the plugin in a flat directory
+ version('local', url='file://{0}/visit-unv.tgz'.format(os.getcwd()))
+ # Below we copy the VisIt paths:
+ version('develop', branch='develop')
+ version('3.2.0', sha256='7328fd8592f9aaf17bf79ffcffd7eaec77773926b0843d9053f39c2190dbe1c0')
+ version('3.1.4', sha256='be20d9acf56f0599e3c511709f48d8d3b232a57425f69d2bd1e2df1eccb84c93')
+ version('3.1.1', sha256='0b60ac52fd00aff3cf212a310e36e32e13ae3ca0ddd1ea3f54f75e4d9b6c6cf0')
+ version('3.0.1', sha256='a506d4d83b8973829e68787d8d721199523ce7ec73e7594e93333c214c2c12bd')
+ version('2.13.3', sha256='cf0b3d2e39e1cd102dd886d3ef6da892733445e362fc28f24d9682012cccf2e5')
+ version('2.13.0', sha256='716644b8e78a00ff82691619d4d1e7a914965b6535884890b667b97ba08d6a0f')
+ version('2.12.3', sha256='2dd351a291ee3e79926bc00391ca89b202cfa4751331b0fdee1b960c7922161f')
+ version('2.12.2', sha256='55897d656ac2ea4eb87a30118b2e3963d6c8a391dda0790268426a73e4b06943')
+ version('2.10.3', sha256='05018215c4727eb42d47bb5cc4ff937b2a2ccaca90d141bc7fa426a0843a5dbc')
+ version('2.10.2', sha256='89ecdfaf197ef431685e31b75628774deb6cd75d3e332ef26505774403e8beff')
+ version('2.10.1', sha256='6b53dea89a241fd03300a7a3a50c0f773e2fb8458cd3ad06816e9bd2f0337cd8')
+
+ depends_on('cmake', type='build')
+ depends_on('visit')
+
+ extends('visit')
+
+ build_targets = ['VERBOSE=1']
+ phases = ['cmake', 'build']
+ extname = 'unv'
+
+ @property
+ def root_cmakelists_dir(self):
+ if '@local' not in self.spec:
+ return join_path('src', 'databases', self.extname)
+ else:
+ return '.'
+
+ @property
+ def build_directory(self):
+ return self.root_cmakelists_dir
+
+ @run_before('cmake')
+ def run_xml2cmake(self):
+ visit = self.spec['visit']
+ args = ['-v', str(visit.version), '-clobber', '-public', self.extname + '.xml']
+ with working_dir(self.root_cmakelists_dir):
+ # Regenerate the public cmake files
+ if os.path.exists("CMakeLists.txt"):
+ os.unlink('CMakeLists.txt')
+ which("xml2cmake")(*args)
+ # spack extension activate : alter VISIT_PLUGIN_DIR ;
+ # xml2cmake should have set it to visit prefix but it can
+ # happen the directory is an alias.
+ # In that case we match version/smth/plugins.
+ mstr = None
+ mstr1 = r'^SET[(]VISIT_PLUGIN_DIR\s+\"{0}(.+)\"[)]'.format(visit.prefix)
+ mstr2 = r'^SET[(]VISIT_PLUGIN_DIR\s+\".+({0}.+?{1})\"[)]'.format(
+ join_path(os.sep, visit.version, ''), join_path(os.sep, 'plugins'))
+ with open('CMakeLists.txt', 'r') as file:
+ for line in file:
+ if re.search(mstr1, line):
+ mstr = mstr1
+ elif re.search(mstr2, line):
+ mstr = mstr2
+ if mstr is not None:
+ filter_file(mstr, r'SET(VISIT_PLUGIN_DIR "{0}\1")'.format(prefix),
+ 'CMakeLists.txt')
diff --git a/var/spack/repos/builtin/packages/visit/package.py b/var/spack/repos/builtin/packages/visit/package.py
index 2bdb274273..d9e3ee0a5d 100644
--- a/var/spack/repos/builtin/packages/visit/package.py
+++ b/var/spack/repos/builtin/packages/visit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -60,6 +60,8 @@ class Visit(CMakePackage):
maintainers = ['cyrush']
+ extendable = True
+
version('develop', branch='develop')
version('3.1.1', sha256='0b60ac52fd00aff3cf212a310e36e32e13ae3ca0ddd1ea3f54f75e4d9b6c6cf0')
version('3.0.1', sha256='a506d4d83b8973829e68787d8d721199523ce7ec73e7594e93333c214c2c12bd')
@@ -180,8 +182,8 @@ class Visit(CMakePackage):
depends_on('vtk+python', when='+python @3.0:,develop')
depends_on('vtk~mpi', when='~mpi')
depends_on('vtk+qt', when='+gui')
- depends_on('qt@4.8.6:4.999', when='+gui @:2.999')
- depends_on('qt@5.10:', when='+gui @3.0:,develop')
+ depends_on('qt+gui@4.8.6:4.999', when='+gui @:2.999')
+ depends_on('qt+gui@5.10:', when='+gui @3.0:,develop')
depends_on('qwt', when='+gui')
depends_on('python@2.6:2.8', when='+python')
# VisIt uses Silo's 'ghost zone' data structures, which are only available
@@ -231,6 +233,9 @@ class Visit(CMakePackage):
'-DCMAKE_C_FLAGS=' + ' '.join(cc_flags),
]
+ # Provide the plugin compilation environment so as to extend VisIt
+ args.append('-DVISIT_INSTALL_THIRD_PARTY=ON')
+
if spec.satisfies('@3.1:'):
args.append('-DFIXUP_OSX=OFF')
diff --git a/var/spack/repos/builtin/packages/vizglow/package.py b/var/spack/repos/builtin/packages/vizglow/package.py
index 41118b5f89..a37a781588 100644
--- a/var/spack/repos/builtin/packages/vizglow/package.py
+++ b/var/spack/repos/builtin/packages/vizglow/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import os
+from spack import *
+
class Vizglow(Package):
"""VizGlow software tool is used for high-fidelity multi-dimensional
@@ -16,9 +17,9 @@ class Vizglow(Package):
the EsgeeTech homepage and download VizGlow yourself. Spack will search
your current directory for a file of this format. Alternatively, add this
file to a mirror so that Spack can find it. For instructions on how to
- set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+ set up a mirror, see https://spack.readthedocs.io/en/latest/mirrors.html"""
- homepage = "http://esgeetech.com/products/vizglow-plasma-modeling/"
+ homepage = "https://esgeetech.com/products/vizglow-plasma-modeling/"
manual_download = True
version('2.2alpha20', '2bef890c66f3a44aaf96f7c96788c89e', expand=False,
diff --git a/var/spack/repos/builtin/packages/vmatch/package.py b/var/spack/repos/builtin/packages/vmatch/package.py
index 60e1bfb66f..a2192a6ad2 100644
--- a/var/spack/repos/builtin/packages/vmatch/package.py
+++ b/var/spack/repos/builtin/packages/vmatch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vmc/package.py b/var/spack/repos/builtin/packages/vmc/package.py
index 93282c4469..5e1889ddfc 100644
--- a/var/spack/repos/builtin/packages/vmc/package.py
+++ b/var/spack/repos/builtin/packages/vmc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vmd/package.py b/var/spack/repos/builtin/packages/vmd/package.py
index 18dc9a9e43..fa9969cc21 100644
--- a/var/spack/repos/builtin/packages/vmd/package.py
+++ b/var/spack/repos/builtin/packages/vmd/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Vmd(Package):
"""VMD provides user-editable materials which can be applied
@@ -23,9 +24,16 @@ class Vmd(Package):
homepage = "https://www.ks.uiuc.edu/Research/vmd/"
version('1.9.3', sha256='145b4d0cc10b56cadeb71e16c54ab8be713e268f11491714cd617422758ec643',
url='file://{0}/vmd-1.9.3.bin.LINUXAMD64-CUDA8-OptiX4-OSPRay111p1.opengl.tar.gz'.format(os.getcwd()))
+ manual_download = True
phases = ['configure', 'install']
+ depends_on('libx11', type=('run', 'link'))
+ depends_on('libxi', type=('run', 'link'))
+ depends_on('libxinerama', type=('run', 'link'))
+ depends_on('gl@3:', type=('run', 'link'))
+ depends_on('patchelf', type='build')
+
def setup_build_environment(self, env):
env.set('VMDINSTALLBINDIR', self.prefix.bin)
env.set('VMDINSTALLLIBRARYDIR', self.prefix.lib64)
@@ -38,5 +46,15 @@ class Vmd(Package):
with working_dir(join_path(self.stage.source_path, 'src')):
make('install')
+ # make sure the executable finds and uses the Spack-provided
+ # libraries, otherwise the executable may or may not run depending
+ # on what is installed on the host
+ patchelf = which('patchelf')
+ rpath = ':'.join(
+ self.spec[dep].libs.directories[0]
+ for dep in ['libx11', 'libxi', 'libxinerama', 'gl'])
+ patchelf('--set-rpath', rpath,
+ join_path(self.prefix, 'lib64', 'vmd_LINUXAMD64'))
+
def setup_run_environment(self, env):
env.set('PLUGINDIR', self.spec.prefix.lib64.plugins)
diff --git a/var/spack/repos/builtin/packages/volk/package.py b/var/spack/repos/builtin/packages/volk/package.py
index 846948f87a..bd96d7ad31 100644
--- a/var/spack/repos/builtin/packages/volk/package.py
+++ b/var/spack/repos/builtin/packages/volk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/voropp/package.py b/var/spack/repos/builtin/packages/voropp/package.py
index 5dc7406afc..4a1172064d 100644
--- a/var/spack/repos/builtin/packages/voropp/package.py
+++ b/var/spack/repos/builtin/packages/voropp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py b/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py
index 80b9291eb4..d544770e9c 100644
--- a/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py
+++ b/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,13 +15,18 @@ class VotcaCsgTutorials(CMakePackage):
This package contains the VOTCA coarse-graining tutorials.
"""
- homepage = "http://www.votca.org"
+ homepage = "https://www.votca.org"
url = "https://github.com/votca/csg-tutorials/tarball/v1.4"
git = "https://github.com/votca/csg-tutorials.git"
maintainers = ['junghans']
version('master', branch='master')
version('stable', branch='stable')
+ version('2021.2', sha256='156c5ec55a288e3013d393e66a1d2f09ebf4f14056d50d081535004696e7f5ba')
+ version('2021.1', sha256='5ea1e6ca370e6e7845f9195495f5fb8bbd72d601980e123ae7852f491f03949a')
+ version('2021', sha256='2b85c69007bb7d773529020e55fd82fed65651ee21eedccca9a801ab248ece97')
+ version('1.6.4', sha256='34ef40db6b178a7f513f8a6f43e7caff6ecb498d66d7bf8bc44900bc7aea31dc')
+ version('1.6.3', sha256='709582b978d84f9de09ae6c3ba4ed28daec886d4e0431bc7d19c7246bd65f0b1')
version('1.6.2', sha256='7c25e76391f3ffdd15f8a91aeed2d3ce7377591f128ed4ae34b36eca20e5af8f')
version('1.6.1', sha256='d8428c4a03ce42d88317045ec555af3defa022fd9a61f05e07b57c5577288c8c')
version('1.6', sha256='54946c647724f1beb95942d47ec7f4cf7a95a59ec7268522693d5ec723585daf')
@@ -31,6 +36,7 @@ class VotcaCsgTutorials(CMakePackage):
version('1.4', sha256='27d50acd68a9d8557fef18ec2b0c62841ae91c22275ab9afbd65c35e4dd5f719')
for v in ["1.4", "1.4.1", "1.5", "1.5.1", "1.6", "1.6.1", "1.6.2",
- "master", "stable"]:
+ "1.6.3", "1.6.4", "2021", "2021.1", "2021.2", "master",
+ "stable"]:
depends_on('votca-csg@%s' % v, when="@%s:%s.0" % (v, v))
depends_on("boost")
diff --git a/var/spack/repos/builtin/packages/votca-csg/package.py b/var/spack/repos/builtin/packages/votca-csg/package.py
index 871154f2ba..dcc9da5fa4 100644
--- a/var/spack/repos/builtin/packages/votca-csg/package.py
+++ b/var/spack/repos/builtin/packages/votca-csg/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,13 +15,18 @@ class VotcaCsg(CMakePackage):
This package contains the VOTCA coarse-graining engine.
"""
- homepage = "http://www.votca.org"
+ homepage = "https://www.votca.org"
url = "https://github.com/votca/csg/tarball/v1.4"
git = "https://github.com/votca/csg.git"
maintainers = ['junghans']
version('master', branch='master')
version('stable', branch='stable')
+ version('2021.2', sha256='4c58ea90cc1b7fe95f7bc00634faadba945316417e741192d715cea6aa83f4ac')
+ version('2021.1', sha256='1e9cf90ddd7539e711e795292b721a4ee130a2089e659fa068a12960b77fff14')
+ version('2021', sha256='d66c9b30ce2a56d630d5db281444447d398be643005ebea70d3735fb60357305')
+ version('1.6.4', sha256='eae771b623f3c3edb09744030d053f10c75d64bad919df26c4f9bf3bfaa1cf86')
+ version('1.6.3', sha256='35456b1f3116364b10ada37d99798294bd2d3df2e670cef3936251f88036ef88')
version('1.6.2', sha256='96b244b282005259832ed6ec0dc22dafe132dcfc3d73dcd8e53b62f40befb545')
version('1.6.1', sha256='ed12bcb1ccdf71f54e21cdcc9803add4b8ebdc6b8263cb5b0034f5db01e31dbb')
version('1.6', sha256='8cf6a4ac3ef7347c720a44d8a676f8cbd1462e162f6113de39f27b89354465ea')
@@ -32,7 +37,8 @@ class VotcaCsg(CMakePackage):
depends_on("cmake@2.8:", type='build')
for v in ["1.4", "1.4.1", "1.5", "1.5.1", "1.6", "1.6.1", "1.6.2",
- "master", "stable"]:
+ "1.6.3", "1.6.4", "2021", "2021.1", "2021.2", "master",
+ "stable"]:
depends_on('votca-tools@%s' % v, when="@%s:%s.0" % (v, v))
depends_on("boost")
depends_on("gromacs~mpi@5.1:2019.9999")
diff --git a/var/spack/repos/builtin/packages/votca-csgapps/package.py b/var/spack/repos/builtin/packages/votca-csgapps/package.py
index 9661335595..8b90e7ba8a 100644
--- a/var/spack/repos/builtin/packages/votca-csgapps/package.py
+++ b/var/spack/repos/builtin/packages/votca-csgapps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,13 +15,13 @@ class VotcaCsgapps(CMakePackage):
This package contains the VOTCA coarse-graining extra apps.
"""
- homepage = "http://www.votca.org"
+ homepage = "https://www.votca.org"
url = "https://github.com/votca/csgapps/tarball/v1.4"
git = "https://github.com/votca/csgapps.git"
maintainers = ['junghans']
- version('master', branch='master')
- version('stable', branch='stable')
+ version('1.6.4', sha256='ef3d6fbc7f2ff2f29af7d170a5351ae3c37f52ca4c2b1697b1d2e30c26ff4eb1')
+ version('1.6.3', sha256='fdb6a94eabdfe1bfae6002da16e364086d036c2dc24700a941b73d5bb1afc422')
version('1.6.2', sha256='f7db0bda27d4419c570f44dc60d04b1fd7b4cdcf10db6301005fca70111fcfe3')
version('1.6.1', sha256='03c7cef2a76e73cf953b2b5ea2cdca765ec1a2627d0a9d8869d46166e63d197c')
version('1.6', sha256='084bbc5b179bb7eb8f6671d2d5fa13e69e68946570c9120a7e4b10aff1866e2e')
@@ -31,6 +31,6 @@ class VotcaCsgapps(CMakePackage):
version('1.4', sha256='4ea8348c2f7de3cc488f48fbd8652e69b52515441952766c06ff67ed1aaf69a0')
for v in ["1.4", "1.4.1", "1.5", "1.5.1", "1.6", "1.6.1", "1.6.2",
- "master", "stable"]:
+ "1.6.3", "1.6.4"]:
depends_on('votca-csg@%s' % v, when="@%s:%s.0" % (v, v))
depends_on("boost")
diff --git a/var/spack/repos/builtin/packages/votca-ctp/package.py b/var/spack/repos/builtin/packages/votca-ctp/package.py
index 15648f5d50..74c2819810 100644
--- a/var/spack/repos/builtin/packages/votca-ctp/package.py
+++ b/var/spack/repos/builtin/packages/votca-ctp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class VotcaCtp(CMakePackage):
This package contains the VOTCA charge transport engine.
"""
- homepage = "http://www.votca.org"
+ homepage = "https://www.votca.org"
url = "https://github.com/votca/ctp/tarball/v1.5"
git = "https://github.com/votca/ctp.git"
diff --git a/var/spack/repos/builtin/packages/votca-tools/package.py b/var/spack/repos/builtin/packages/votca-tools/package.py
index 55f080e579..199919bf3a 100644
--- a/var/spack/repos/builtin/packages/votca-tools/package.py
+++ b/var/spack/repos/builtin/packages/votca-tools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,13 +15,18 @@ class VotcaTools(CMakePackage):
This package contains the basic tools library of VOTCA.
"""
- homepage = "http://www.votca.org"
+ homepage = "https://www.votca.org"
url = "https://github.com/votca/tools/tarball/v1.4"
git = "https://github.com/votca/tools.git"
maintainers = ['junghans']
version('master', branch='master')
version('stable', branch='stable')
+ version('2021.2', sha256='2cd3175b65924803aff90dce49f60e1dda9015988a453d60358e51f0dbb4292d')
+ version('2021.1', sha256='c2fdf5ab72fc75580fb3623182fa88dd0eed856388bdc862aff42148bb0a16e7')
+ version('2021', sha256='b84f68ba4a8bfae7b06b61e1e078dcbfb3b340c516da3be39ef545152da00ccd')
+ version('1.6.4', sha256='aa79ef4617a80ba3ca063932d5ee0d5767c0285b4b613abd373ad3c986ab9f4c')
+ version('1.6.3', sha256='b4ba63861f4342070d81309992f76c4cc798dffeab894bff64799881e75b3cc2')
version('1.6.2', sha256='1b31e0dd7550b80b963e6714d671f3516d68ebc1e75068a5d827a6e8b4f1759a')
version('1.6.1', sha256='3e8f51d484cb3fdfbeb851aab387807ba4c40aecef8317c90182da68ad282dcc')
version('1.6', sha256='cfd0fedc80fecd009f743b5df47777508d76bf3ef294a508a9f11fbb42efe9a5')
@@ -32,13 +37,15 @@ class VotcaTools(CMakePackage):
# 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:1.6.0+mkl")
+ # https://github.com/votca/tools/pull/361, fix build with newer glibc/gcc, fixed in stable and 2021.1
+ patch("https://github.com/votca/tools/commit/6bb7e35ba7d1a31247eafb323be2777ec0439cfe.patch", sha256="3c9fa5ac9cf45c54ac475bcb22350793efaccd6b5154e3d30c24b8aa754fe47b", when="@2021:2021.0")
variant('mkl', default=False, description='Build with MKL support')
conflicts('+mkl', when='@1.4:1.5.9999')
depends_on("cmake@2.8:", type='build')
depends_on("expat")
- depends_on("fftw")
+ depends_on("fftw-api@3")
depends_on("gsl", when="@1.4:1.4.9999")
depends_on("eigen@3.3:", when="@stable,1.5:")
depends_on("boost")
diff --git a/var/spack/repos/builtin/packages/votca-xtp/package.py b/var/spack/repos/builtin/packages/votca-xtp/package.py
index 21b40cee92..c9b24f784f 100644
--- a/var/spack/repos/builtin/packages/votca-xtp/package.py
+++ b/var/spack/repos/builtin/packages/votca-xtp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,13 +15,18 @@ class VotcaXtp(CMakePackage):
This package contains the VOTCA exciton transport engine.
"""
- homepage = "http://www.votca.org"
+ homepage = "https://www.votca.org"
url = "https://github.com/votca/xtp/tarball/v1.4.1"
git = "https://github.com/votca/xtp.git"
maintainers = ['junghans']
version('master', branch='master')
version('stable', branch='stable')
+ version('2021.2', sha256='a13180cc05a24c441326a2b209e4d1cc6b176f1b8d7aec1aea46b627e230ff8c')
+ version('2021.1', sha256='8ce112fc40676690369133188848dfeb3875d57351286cad4c312057a4dd767b')
+ version('2021', sha256='43bb5a52fec675738f4b5896f0833a1c1090bd7e74f97769697495abf4652e40')
+ version('1.6.4', sha256='699a835954556cf6b2f20dac7942c1761c6dd6c6c3fbdde62c8bfcfd71ee075b')
+ version('1.6.3', sha256='757b9a6a470b3c356f638d62269c5b72b8ace374f006658aef8bb6afd1ad1413')
version('1.6.2', sha256='b51a28cddceca6998b981ad61466617ad624d577ce424c0653d92a680f460061')
version('1.6.1', sha256='886af50bc12457bbafb06dc927b7fd4cadc3db1b4615b24a08953f6b358debef')
version('1.6', sha256='695c2d9d3f924103481529f992e3723bdce10b8edfc294421a849cdf51dbbb6e')
@@ -31,10 +36,11 @@ class VotcaXtp(CMakePackage):
depends_on("cmake@2.8:", type='build')
for v in ["1.4.1", "1.5", "1.5.1", "1.6", "1.6.1", "1.6.2",
+ "1.6.3", "1.6.4", "2021", "2021.1", "2021.2",
"master", "stable"]:
depends_on('votca-tools@%s' % v, when="@%s:%s.0" % (v, v))
depends_on('votca-csg@%s' % v, when="@%s:%s.0" % (v, v))
depends_on("libxc", when='@stable,1.5:')
depends_on("ceres-solver", when='@1.5:1.5.9999')
depends_on("hdf5+cxx~mpi")
- depends_on("libint@2.6.0:", when="@1.7:")
+ depends_on("libint@2.6.0:", when="@2021:")
diff --git a/var/spack/repos/builtin/packages/vpfft/package.py b/var/spack/repos/builtin/packages/vpfft/package.py
index 2851288052..49e598fcec 100644
--- a/var/spack/repos/builtin/packages/vpfft/package.py
+++ b/var/spack/repos/builtin/packages/vpfft/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vpic/package.py b/var/spack/repos/builtin/packages/vpic/package.py
index 846b09650b..483f72c676 100644
--- a/var/spack/repos/builtin/packages/vpic/package.py
+++ b/var/spack/repos/builtin/packages/vpic/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vsearch/package.py b/var/spack/repos/builtin/packages/vsearch/package.py
index 4448edaf4b..49be73c180 100644
--- a/var/spack/repos/builtin/packages/vsearch/package.py
+++ b/var/spack/repos/builtin/packages/vsearch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vsftpd/package.py b/var/spack/repos/builtin/packages/vsftpd/package.py
index 29f0bc7839..90a937db8f 100644
--- a/var/spack/repos/builtin/packages/vsftpd/package.py
+++ b/var/spack/repos/builtin/packages/vsftpd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vt/package.py b/var/spack/repos/builtin/packages/vt/package.py
index 9fabcaf4bf..7ad58d1052 100644
--- a/var/spack/repos/builtin/packages/vt/package.py
+++ b/var/spack/repos/builtin/packages/vt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Vt(MakefilePackage):
"""A tool set for short variant discovery in genetic sequence data."""
- homepage = "http://genome.sph.umich.edu/wiki/vt"
+ homepage = "https://genome.sph.umich.edu/wiki/vt"
url = "https://github.com/atks/vt/archive/0.577.tar.gz"
version('0.5772', sha256='b147520478a2f7c536524511e48133d0360e88282c7159821813738ccbda97e7')
diff --git a/var/spack/repos/builtin/packages/vtable-dumper/package.py b/var/spack/repos/builtin/packages/vtable-dumper/package.py
index e01aaf0ffe..a72b75d62e 100644
--- a/var/spack/repos/builtin/packages/vtable-dumper/package.py
+++ b/var/spack/repos/builtin/packages/vtable-dumper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/vtk-h/package.py b/var/spack/repos/builtin/packages/vtk-h/package.py
index 0ac45e15e5..66ccee6c32 100644
--- a/var/spack/repos/builtin/packages/vtk-h/package.py
+++ b/var/spack/repos/builtin/packages/vtk-h/package.py
@@ -1,18 +1,17 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
import os
import socket
-
+import sys
+from os import environ as env
import llnl.util.tty as tty
-from os import environ as env
+
+from spack import *
def cmake_cache_entry(name, value, vtype=None):
@@ -40,6 +39,12 @@ class VtkH(Package, CudaPackage):
maintainers = ['cyrush']
version('develop', branch='develop', submodules=True)
+ version('0.7.1', sha256="f28f7e6fb0f854a2293265b67cbdfb350b42c13ac08ffffe9cd246f3fe9fb77a")
+ version('0.7.0', sha256="1b3c15c1340c5f66edcc2962ffe2f0d86e155f45a4932cf9c407261c203fbc19")
+ version('0.6.9', sha256="8111f59c3528f02cb3c5083c17a1737dff9472266b156732794612471f3393c7")
+ version('0.6.8', sha256="0a37468ca65fdc12509b9fd53c74d5afb090630280e1161415d7377cad7d45f1")
+ version('0.6.7', sha256="aff3ab94cf137fbc3019149363d5d8a39d052b02ecef42c6bf6d076e538af3f2")
+ version('0.6.6', sha256="5fe8bae5f55dbeb3047a37499cc41f3b548e4d86f0058993069f1df57f7915a1")
version('0.6.5', sha256="3e566ee06150edece8a61711d9347de216c1ae45f3b4585784b2252ee9ff2a9b")
version('0.6.4', sha256="c1345679fa4110cba449a9e27d40774d53c1f0bbddd41e52f5eb395cec1ee2d0")
version('0.6.3', sha256="388ad05110efac45df6ae0d565a7d16bd05ff83c95b8b2b8daa206360ab73eec")
@@ -62,24 +67,23 @@ class VtkH(Package, CudaPackage):
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
- depends_on("cmake@3.14.1:3.14.99", type='build')
+ # Certain CMake versions have been found to break for our use cases
+ depends_on("cmake@3.14.1:3.14.99,3.18.2:", type='build')
depends_on("mpi", when="+mpi")
depends_on("cuda", when="+cuda")
- depends_on("vtk-m@ascent_ver~tbb+openmp", when="+openmp")
- depends_on("vtk-m@ascent_ver~tbb~openmp", when="~openmp")
+ depends_on("vtk-m~tbb+openmp", when="+openmp")
+ depends_on("vtk-m~tbb~openmp", when="~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+cuda~tbb+openmp", when="+cuda+openmp")
+ depends_on("vtk-m+cuda~tbb~openmp", when="+cuda~openmp")
- 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~tbb+openmp~shared", when="+openmp~shared")
+ depends_on("vtk-m~tbb~openmp~shared", when="~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")
+ depends_on("vtk-m+cuda~tbb+openmp~shared", when="+cuda+openmp~shared")
+ depends_on("vtk-m+cuda~tbb~openmp~shared", when="+cuda~openmp~shared")
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
diff --git a/var/spack/repos/builtin/packages/vtk-m/package.py b/var/spack/repos/builtin/packages/vtk-m/package.py
index 06d38cfc28..c08f464455 100644
--- a/var/spack/repos/builtin/packages/vtk-m/package.py
+++ b/var/spack/repos/builtin/packages/vtk-m/package.py
@@ -1,13 +1,15 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
import sys
+from spack import *
+
class VtkM(CMakePackage, CudaPackage):
"""VTK-m is a toolkit of scientific visualization algorithms for emerging
@@ -24,17 +26,18 @@ class VtkM(CMakePackage, CudaPackage):
git = "https://gitlab.kitware.com/vtk/vtk-m.git"
version('master', branch='master')
+ version('release', branch='release')
+ version('1.6.0', sha256="14e62d306dd33f82eb9ddb1d5cee987b7a0b91bf08a7a02ca3bce3968c95fd76", preferred=True)
+ version('1.5.5', commit="d2d1c854adc8c0518802f153b48afd17646b6252")
+ version('1.5.4', commit="bbba2a1967b271cc393abd043716d957bca97972")
+ version('1.5.3', commit="a3b8525ef97d94996ae843db0dd4f675c38e8b1e")
+ version('1.5.2', commit="c49390f2537c5ba8cf25bd39aa5c212d6eafcf61")
version('1.5.1', sha256="64c19e66c0d579cfb21bb0df10d649b523b470b0c9a6c2ea5fd979dfeda2c25e")
version('1.5.0', sha256="b1b13715c7fcc8d17f5c7166ff5b3e9025f6865dc33eb9b06a63471c21349aa8")
version('1.4.0', sha256="8d83cca7cd5e204d10da151ce4f1846c1f7414c7c1e579173d15c5ea0631555a")
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',
@@ -44,6 +47,8 @@ class VtkM(CMakePackage, CudaPackage):
variant("doubleprecision", default=True,
description='enable double precision')
variant("logging", default=False, description="build logging support")
+ variant("ascent_types", default=True, description="build support for ascent types")
+ variant("virtuals", default=False, description="enable support for deprecated virtual functions")
variant("mpi", default=False, description="build mpi support")
variant("rendering", default=True, description="build rendering support")
variant("64bitids", default=False,
@@ -60,30 +65,27 @@ class VtkM(CMakePackage, CudaPackage):
amdgpu_targets = (
'gfx900', 'gfx906', 'gfx908'
)
- kokkos_amd_gpu_map = {
- 'gfx900': 'vega900',
- 'gfx906': 'vega906',
- 'gfx908': 'vega908'
- }
variant('amdgpu_target', default='none', multi=True, values=('none',) + amdgpu_targets)
conflicts("+hip", when="amdgpu_target=none")
- depends_on("cmake@3.12:", type="build") # CMake >= 3.12
- depends_on("cmake@3.18:", when="+hip") # CMake >= 3.18
+ depends_on("cmake@3.12:", type="build") # CMake >= 3.12
+ depends_on("cmake@3.18:", when="+hip", type="build") # CMake >= 3.18
+
+ conflicts('%gcc@:4.10',
+ msg='vtk-m requires gcc >= 5. Please install a newer version')
- depends_on('cuda@10.2.0:', when='+cuda')
+ depends_on('cuda@10.1.0:', when='+cuda')
depends_on("tbb", when="+tbb")
depends_on("mpi", when="+mpi")
- for kokkos_value in kokkos_amd_gpu_map:
- depends_on("kokkos@develop +hip amd_gpu_arch=%s" % kokkos_amd_gpu_map[kokkos_value], when="amdgpu_target=%s" % kokkos_value)
+ for amdgpu_value in amdgpu_targets:
+ depends_on("kokkos@develop +rocm amdgpu_target=%s" % amdgpu_value, when="amdgpu_target=%s" % amdgpu_value)
depends_on("rocm-cmake@3.7:", when="+hip")
depends_on("hip@3.7:", when="+hip")
conflicts("+hip", when="+cuda")
- conflicts("~shared", when="~pic")
def cmake_args(self):
spec = self.spec
@@ -113,7 +115,7 @@ class VtkM(CMakePackage, CudaPackage):
# logging support
if "+logging" in spec:
- if not spec.satisfies('@1.3.0:,ascent_ver'):
+ if not spec.satisfies('@1.3.0:'):
raise InstallError('logging is not supported for\
vtkm version lower than 1.3')
options.append("-DVTKm_ENABLE_LOGGING:BOOL=ON")
@@ -122,7 +124,7 @@ class VtkM(CMakePackage, CudaPackage):
# mpi support
if "+mpi" in spec:
- if not spec.satisfies('@1.3.0:,ascent_ver'):
+ if not spec.satisfies('@1.3.0:'):
raise InstallError('mpi is not supported for\
vtkm version lower than 1.3')
options.append("-DVTKm_ENABLE_MPI:BOOL=ON")
@@ -135,6 +137,18 @@ class VtkM(CMakePackage, CudaPackage):
else:
options.append("-DVTKm_ENABLE_RENDERING:BOOL=OFF")
+ # Support for ascent types
+ if "+ascent_types" in spec:
+ options.append("-DVTKm_USE_DEFAULT_TYPES_FOR_ASCENT:BOOL=ON")
+ else:
+ options.append("-DVTKm_USE_DEFAULT_TYPES_FOR_ASCENT:BOOL=OFF")
+
+ # Support for deprecated virtual functions
+ if "+virtuals" in spec:
+ options.append("-DVTKm_NO_DEPRECATED_VIRTUAL:BOOL=OFF")
+ else:
+ options.append("-DVTKm_NO_DEPRECATED_VIRTUAL:BOOL=ON")
+
# 64 bit ids
if "+64bitids" in spec:
options.append("-DVTKm_USE_64BIT_IDS:BOOL=ON")
@@ -179,7 +193,7 @@ class VtkM(CMakePackage, CudaPackage):
# openmp support
if "+openmp" in spec:
# openmp is added since version 1.3.0
- if not spec.satisfies('@1.3.0:,ascent_ver'):
+ if not spec.satisfies('@1.3.0:'):
raise InstallError('OpenMP is not supported for\
vtkm version lower than 1.3')
options.append("-DVTKm_ENABLE_OPENMP:BOOL=ON")
@@ -195,3 +209,171 @@ class VtkM(CMakePackage, CudaPackage):
options.append("-DVTKm_ENABLE_TBB:BOOL=OFF")
return options
+
+ def smoke_test(self):
+ print("Checking VTK-m installation...")
+ spec = self.spec
+ checkdir = "spack-check"
+ with working_dir(checkdir, create=True):
+ source = r"""
+#include <vtkm/cont/Algorithm.h>
+#include <vtkm/cont/ArrayHandle.h>
+#include <vtkm/cont/Initialize.h>
+
+#include <iostream>
+#include <vector>
+
+struct NoArgKernel {
+ VTKM_EXEC void operator()(vtkm::Id) const {}
+
+ void SetErrorMessageBuffer(
+ const vtkm::exec::internal::ErrorMessageBuffer &errorMessage) {
+ this->ErrorMessage = errorMessage;
+ }
+
+ vtkm::exec::internal::ErrorMessageBuffer ErrorMessage;
+};
+
+template <typename PortalType> struct FillArrayKernel {
+ using ValueType = typename PortalType::ValueType;
+
+ FillArrayKernel(const PortalType &array, ValueType fill)
+ : Array(array), FillValue(fill) {}
+
+ VTKM_EXEC void operator()(vtkm::Id index) const {
+ this->Array.Set(index, this->FillValue);
+ }
+ void SetErrorMessageBuffer(
+ const vtkm::exec::internal::ErrorMessageBuffer &) {
+ }
+
+ PortalType Array;
+ ValueType FillValue;
+};
+
+
+int main() {
+ vtkm::cont::Initialize();
+
+ constexpr vtkm::Id size = 1000000;
+#if defined(VTKM_ENABLE_KOKKOS)
+ constexpr vtkm::cont::DeviceAdapterTagKokkos desired_device;
+#elif defined(VTKM_ENABLE_CUDA)
+ constexpr vtkm::cont::DeviceAdapterTagCuda desired_device;
+#elif defined(VTKM_ENABLE_TBB)
+ constexpr vtkm::cont::DeviceAdapterTagTBB desired_device;
+#elif defined(VTKM_ENABLE_OPENMP)
+ constexpr vtkm::cont::DeviceAdapterTagOpenMP desired_device;
+#else
+ #error "No VTK-m Device Adapter enabled"
+#endif
+
+ std::cout << "-------------------------------------------\n";
+ std::cout << "Testing No Argument Kernel" << std::endl;
+ vtkm::cont::Algorithm::Schedule(desired_device, NoArgKernel(), size);
+
+ vtkm::cont::ArrayHandle<vtkm::Id> handle;
+ {
+ std::cout << "-------------------------------------------\n";
+ std::cout << "Testing Kernel + ArrayHandle PrepareForOutput" << std::endl;
+ vtkm::cont::Token token;
+ auto portal = handle.PrepareForOutput(size, desired_device, token);
+ vtkm::cont::Algorithm::Schedule(desired_device,
+ FillArrayKernel<decltype(portal)>{portal, 1}, size);
+ }
+
+ {
+ std::cout << "-------------------------------------------\n";
+ std::cout << "Testing Kernel + ArrayHandle PrepareForInPlace" << std::endl;
+ vtkm::cont::Token token;
+ auto portal = handle.PrepareForInPlace(desired_device, token);
+ vtkm::cont::Algorithm::Schedule(desired_device,
+ FillArrayKernel<decltype(portal)>{portal, 2}, size);
+ }
+
+ std::cout << "-------------------------------------------\n";
+ std::cout << "Ran tests on: " << desired_device.GetName() << std::endl;
+
+ return 0;
+}
+"""
+
+ cmakelists = r"""
+##============================================================================
+## Copyright (c) Kitware, Inc.
+## All rights reserved.
+## See LICENSE.txt for details.
+##
+## This software is distributed WITHOUT ANY WARRANTY; without even
+## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+## PURPOSE. See the above copyright notice for more information.
+##============================================================================
+cmake_minimum_required(VERSION 3.12...3.18 FATAL_ERROR)
+project(VTKmSmokeTest CXX)
+
+#Find the VTK-m package
+find_package(VTKm REQUIRED QUIET)
+
+add_executable(VTKmSmokeTest main.cxx)
+target_link_libraries(VTKmSmokeTest PRIVATE vtkm_cont)
+vtkm_add_target_information(VTKmSmokeTest
+ DROP_UNUSED_SYMBOLS MODIFY_CUDA_FLAGS
+ DEVICE_SOURCES main.cxx)
+"""
+
+ with open("main.cxx", 'w') as f:
+ f.write(source)
+ with open("CMakeLists.txt", 'w') as f:
+ f.write(cmakelists)
+ builddir = "build"
+ with working_dir(builddir, create=True):
+ cmake = Executable(spec['cmake'].prefix.bin + "/cmake")
+ cmakefiledir = spec['vtk-m'].prefix.lib + "/cmake"
+ cmakefiledir = cmakefiledir + "/" + os.listdir(cmakefiledir)[0]
+ cmake(*(["..", "-DVTKm_DIR=" + cmakefiledir]))
+ cmake(*(["--build", "."]))
+ try:
+ test = Executable('./VTKmSmokeTest')
+ output = test(output=str)
+ except ProcessError:
+ output = ""
+ print(output)
+ if "+hip" in spec:
+ expected_device = 'Kokkos'
+ elif "+cuda" in spec:
+ expected_device = 'Cuda'
+ elif "+tbb" in spec:
+ expected_device = 'TBB'
+ elif "+openmp" in spec:
+ expected_device = 'OpenMP'
+ expected = """\
+-------------------------------------------
+Testing No Argument Kernel
+-------------------------------------------
+Testing Kernel + ArrayHandle PrepareForOutput
+-------------------------------------------
+Testing Kernel + ArrayHandle PrepareForInPlace
+-------------------------------------------
+Ran tests on: """ + expected_device + "\n"
+ success = output == expected
+ if success:
+ print("Test success")
+ if not success:
+ print("Produced output does not match expected output.")
+ print("Expected output:")
+ print('-' * 80)
+ print(expected)
+ print('-' * 80)
+ print("Produced output:")
+ print('-' * 80)
+ print(output)
+ print('-' * 80)
+ raise RuntimeError("VTK-m install check failed")
+ shutil.rmtree(checkdir)
+
+ @run_after('install')
+ @on_package_attributes(run_tests=True)
+ def check_install(self):
+ spec = self.spec
+ if "@master" in spec:
+ self.smoke_test()
diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py
index 19640c4222..eefd034be8 100644
--- a/var/spack/repos/builtin/packages/vtk/package.py
+++ b/var/spack/repos/builtin/packages/vtk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,6 +6,7 @@
import os
import sys
+
from spack import *
@@ -20,6 +21,8 @@ class Vtk(CMakePackage):
maintainers = ['chuckatkins', 'danlipsa']
+ version('9.0.3', sha256='bc3eb9625b2b8dbfecb6052a2ab091fc91405de4333b0ec68f3323815154ed8a')
+ version('9.0.1', sha256='1b39a5e191c282861e7af4101eaa8585969a2de05f5646c9199a161213a622c7')
version('9.0.0', sha256='15def4e6f84d72f82386617fe595ec124dda3cbd13ea19a0dcd91583197d8715')
version('8.2.0', sha256='34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb')
version('8.1.2', sha256='0995fb36857dd76ccfb8bb07350c214d9f9099e80b1e66b4a8909311f24ff0db')
@@ -41,6 +44,11 @@ class Vtk(CMakePackage):
variant('mpi', default=True, description='Enable MPI support')
patch('gcc.patch', when='@6.1.0')
+ # patch to fix some missing stl includes
+ # which lead to build errors on newer compilers
+ # version range to be updated once the linked patch is released
+ patch('https://gitlab.kitware.com/vtk/vtk/-/commit/e066c3f4fbbfe7470c6207db0fc3f3952db633c.diff',
+ when="@9:", sha256='0546696bd02f3a99fccb9b7c49533377bf8179df16d901cefe5abf251173716d')
# At the moment, we cannot build with both osmesa and qt, but as of
# VTK 8.1, that should change
@@ -52,7 +60,7 @@ class Vtk(CMakePackage):
# We need vtk at least 8.0.1 for python@3,
# and at least 9.0 for python@3.8
depends_on('python@2.7:2.9', when='@:8.0 +python', type=('build', 'run'))
- depends_on('python@2.7:3.7.9', when='@8.0.1:8.9 +python',
+ depends_on('python@2.7:3.7.99', when='@8.0.1:8.9 +python',
type=('build', 'run'))
depends_on('python@2.7:', when='@9.0: +python', type=('build', 'run'))
@@ -63,6 +71,9 @@ class Vtk(CMakePackage):
# https://gitlab.kitware.com/vtk/vtk/commit/706f1b397df09a27ab8981ab9464547028d0c322
patch('python3.7-const-char.patch', when='@7.0.0:8.1.1 ^python@3.7:')
+ # Broken downstream FindMPI
+ patch('vtkm-findmpi-downstream.patch', when='@9.0.0')
+
# The use of the OpenGL2 backend requires at least OpenGL Core Profile
# version 3.2 or higher.
depends_on('gl@3.2:', when='+opengl2')
@@ -85,6 +96,9 @@ class Vtk(CMakePackage):
depends_on('mpi', when='+mpi')
depends_on('expat')
+ # See <https://gitlab.kitware.com/vtk/vtk/-/issues/18033> for why vtk doesn't
+ # work yet with freetype 2.10.3 (including possible patches)
+ depends_on('freetype @:2.10.2')
depends_on('freetype')
depends_on('glew')
# set hl variant explicitly, similar to issue #7145
@@ -105,6 +119,12 @@ class Vtk(CMakePackage):
# For finding Fujitsu-MPI wrapper commands
patch('find_fujitsu_mpi.patch', when='@:8.2.0%fj')
+ # Freetype@2.10.3 no longer exports FT_CALLBACK_DEF, this
+ # patch replaces FT_CALLBACK_DEF with simple extern "C"
+ # See https://gitlab.kitware.com/vtk/vtk/-/issues/18033
+ patch('https://gitlab.kitware.com/vtk/vtk/uploads/c6fa799a1a028b8f8a728a40d26d3fec/vtk-freetype-2.10.3-replace-FT_CALLBACK_DEF.patch',
+ sha256='eefda851f844e8a1dfb4ebd8a9ff92d2b78efc57f205774052c5f4c049cc886a',
+ when='^freetype@2.10.3:')
def url_for_version(self, version):
url = "http://www.vtk.org/files/release/{0}/VTK-{1}.tar.gz"
@@ -265,11 +285,10 @@ class Vtk(CMakePackage):
'-DVTK_USE_X:BOOL=ON',
'-DVTK_USE_COCOA:BOOL=OFF'])
+ compile_flags = []
+
if spec.satisfies('@:6.1.0'):
- cmake_args.extend([
- '-DCMAKE_C_FLAGS=-DGLX_GLXEXT_LEGACY',
- '-DCMAKE_CXX_FLAGS=-DGLX_GLXEXT_LEGACY'
- ])
+ compile_flags.append('-DGLX_GLXEXT_LEGACY')
# VTK 6.1.0 (and possibly earlier) does not use
# NETCDF_CXX_ROOT to detect NetCDF C++ bindings, so
@@ -298,4 +317,16 @@ class Vtk(CMakePackage):
cmake_args.append(
'-DVTK_MODULE_ENABLE_VTK_IOMotionFX:BOOL=OFF')
+ # -no-ipo prevents an internal compiler error from multi-file
+ # optimization (https://github.com/spack/spack/issues/20471)
+ if '%intel' in spec:
+ compile_flags.append('-no-ipo')
+
+ if compile_flags:
+ compile_flags = ' '.join(compile_flags)
+ cmake_args.extend([
+ '-DCMAKE_C_FLAGS={0}'.format(compile_flags),
+ '-DCMAKE_CXX_FLAGS={0}'.format(compile_flags)
+ ])
+
return cmake_args
diff --git a/var/spack/repos/builtin/packages/vtk/vtkm-findmpi-downstream.patch b/var/spack/repos/builtin/packages/vtk/vtkm-findmpi-downstream.patch
new file mode 100644
index 0000000000..de36d9e099
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vtk/vtkm-findmpi-downstream.patch
@@ -0,0 +1,185 @@
+From 0510b87018815781da34566a57f35caaf01fc822 Mon Sep 17 00:00:00 2001
+From: Robert Maynard <robert.maynard@kitware.com>
+Date: Thu, 18 Jun 2020 15:48:48 -0400
+Subject: [PATCH] Make sure we don't leak our findmpi module
+
+Consumers of VTK-m shouldn't use VTK-m find mpi module unless
+they explicitly want to. This makes sure that by default only
+VTK-m uses it.
+---
+ CMake/VTKmCMakeBackports.cmake | 23 +++++++++++++++++++++++
+ CMake/VTKmMPI.cmake | 24 ------------------------
+ CMake/VTKmWrappers.cmake | 6 +++++-
+ CMake/{ => patches/3.15}/FindMPI.cmake | 0
+ CMake/patches/FindMPI.cmake | 18 ++++++++++++++++++
+ CMake/patches/README.md | 7 +++++++
+ CMakeLists.txt | 11 ++++++++---
+ 7 files changed, 61 insertions(+), 28 deletions(-)
+ create mode 100644 CMake/VTKmCMakeBackports.cmake
+ delete mode 100644 CMake/VTKmMPI.cmake
+ rename CMake/{ => patches/3.15}/FindMPI.cmake (100%)
+ create mode 100644 CMake/patches/FindMPI.cmake
+ create mode 100644 CMake/patches/README.md
+
+diff --git a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmCMakeBackports.cmake b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmCMakeBackports.cmake
+new file mode 100644
+index 000000000..2d286fb16
+--- /dev/null
++++ b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmCMakeBackports.cmake
+@@ -0,0 +1,23 @@
++##============================================================================
++## Copyright (c) Kitware, Inc.
++## All rights reserved.
++## See LICENSE.txt for details.
++##
++## This software is distributed WITHOUT ANY WARRANTY; without even
++## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
++## PURPOSE. See the above copyright notice for more information.
++##============================================================================
++
++file(GLOB cmake_version_backports
++ LIST_DIRECTORIES true
++ RELATIVE "${CMAKE_CURRENT_LIST_DIR}/patches"
++ "${CMAKE_CURRENT_LIST_DIR}/patches/*")
++
++foreach (cmake_version_backport IN LISTS cmake_version_backports)
++ if (NOT IS_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/patches/${cmake_version_backport}")
++ continue ()
++ endif ()
++ if (CMAKE_VERSION VERSION_LESS "${cmake_version_backport}")
++ list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_LIST_DIR}/patches/${cmake_version_backport}")
++ endif ()
++endforeach ()
+diff --git a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmMPI.cmake b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmMPI.cmake
+deleted file mode 100644
+index 4c06369ec..000000000
+--- a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmMPI.cmake
++++ /dev/null
+@@ -1,24 +0,0 @@
+-##============================================================================
+-## Copyright (c) Kitware, Inc.
+-## All rights reserved.
+-## See LICENSE.txt for details.
+-##
+-## This software is distributed WITHOUT ANY WARRANTY; without even
+-## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+-## PURPOSE. See the above copyright notice for more information.
+-##============================================================================
+-
+-if(VTKm_ENABLE_MPI AND NOT TARGET MPI::MPI_CXX)
+- if(CMAKE_VERSION VERSION_LESS 3.15)
+- #While CMake 3.10 introduced the new MPI module.
+- #Fixes related to MPI+CUDA that VTK-m needs are
+- #only found in CMake 3.15+.
+- find_package(MPI REQUIRED MODULE)
+- else()
+- #clunky but we need to make sure we use the upstream module if it exists
+- set(orig_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
+- set(CMAKE_MODULE_PATH "")
+- find_package(MPI REQUIRED MODULE)
+- set(CMAKE_MODULE_PATH ${orig_CMAKE_MODULE_PATH})
+- endif()
+-endif()
+diff --git a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmWrappers.cmake b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmWrappers.cmake
+index 08c359053..a79b72338 100644
+--- a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmWrappers.cmake
++++ b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmWrappers.cmake
+@@ -10,9 +10,13 @@
+
+ include(CMakeParseArguments)
+
++include(VTKmCMakeBackports)
+ include(VTKmDeviceAdapters)
+ include(VTKmCPUVectorization)
+-include(VTKmMPI)
++
++if(VTKm_ENABLE_MPI AND NOT TARGET MPI::MPI_CXX)
++ find_package(MPI REQUIRED MODULE)
++endif()
+
+ #-----------------------------------------------------------------------------
+ # INTERNAL FUNCTIONS
+diff --git a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/FindMPI.cmake b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/patches/3.15/FindMPI.cmake
+similarity index 100%
+rename from CMake/FindMPI.cmake
+rename to CMake/patches/3.15/FindMPI.cmake
+diff --git a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/patches/FindMPI.cmake b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/patches/FindMPI.cmake
+new file mode 100644
+index 000000000..192c280fd
+--- /dev/null
++++ b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/patches/FindMPI.cmake
+@@ -0,0 +1,18 @@
++##=============================================================================
++##
++## Copyright (c) Kitware, Inc.
++## All rights reserved.
++## See LICENSE.txt for details.
++##
++## This software is distributed WITHOUT ANY WARRANTY; without even
++## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
++## PURPOSE. See the above copyright notice for more information.
++##
++##=============================================================================
++
++# This module is already included in new versions of CMake
++if(CMAKE_VERSION VERSION_LESS 3.15)
++ include(${CMAKE_CURRENT_LIST_DIR}/3.15/FindMPI.cmake)
++else()
++ include(${CMAKE_ROOT}/Modules/FindMPI.cmake)
++endif()
+diff --git a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/patches/README.md b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/patches/README.md
+new file mode 100644
+index 000000000..405016904
+--- /dev/null
++++ b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/patches/README.md
+@@ -0,0 +1,7 @@
++# CMake backports
++
++This directory contains backports from newer CMake versions to help support
++actually using older CMake versions for building VTK-m. The directory name is the
++minimum version of CMake for which the contained files are no longer necessary.
++For example, the files under the `3.15` directory are not needed for 3.15 or
++3.16, but are for 3.14.
+diff --git a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt
+index 7695384d4..e40063b3d 100644
+--- a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt
++++ b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMakeLists.txt
+@@ -247,11 +247,17 @@ if(NOT VTKm_INSTALL_ONLY_LIBRARIES)
+ # Install helper configure files.
+ install(
+ FILES
++ ${VTKm_SOURCE_DIR}/CMake/VTKmCMakeBackports.cmake
+ ${VTKm_SOURCE_DIR}/CMake/FindTBB.cmake
+- ${VTKm_SOURCE_DIR}/CMake/FindMPI.cmake
+ ${VTKm_SOURCE_DIR}/CMake/FindOpenGL.cmake
++ ${VTKm_SOURCE_DIR}/CMake/patches/FindMPI.cmake
+ DESTINATION ${VTKm_INSTALL_CMAKE_MODULE_DIR}
+ )
++ install(
++ FILES
++ ${VTKm_SOURCE_DIR}/CMake/patches/3.15/FindMPI.cmake
++ DESTINATION ${VTKm_INSTALL_CMAKE_MODULE_DIR}/3.15
++ )
+
+ # Install support files.
+ install(
+@@ -260,7 +266,6 @@ if(NOT VTKm_INSTALL_ONLY_LIBRARIES)
+ ${VTKm_SOURCE_DIR}/CMake/VTKmDetectCUDAVersion.cu
+ ${VTKm_SOURCE_DIR}/CMake/VTKmDeviceAdapters.cmake
+ ${VTKm_SOURCE_DIR}/CMake/VTKmExportHeaderTemplate.h.in
+- ${VTKm_SOURCE_DIR}/CMake/VTKmMPI.cmake
+ ${VTKm_SOURCE_DIR}/CMake/VTKmRenderingContexts.cmake
+ ${VTKm_SOURCE_DIR}/CMake/VTKmWrappers.cmake
+ DESTINATION ${VTKm_INSTALL_CMAKE_MODULE_DIR}
+@@ -294,7 +299,7 @@ endif ()
+ #-----------------------------------------------------------------------------
+ #add the benchmarking folder
+ if(VTKm_ENABLE_BENCHMARKS)
+- add_subdirectory(benchmarking)
++ add_subdirectory(benchmarking)
+ endif()
+
+ #-----------------------------------------------------------------------------
+--
+2.24.2
+
diff --git a/var/spack/repos/builtin/packages/vvtest/package.py b/var/spack/repos/builtin/packages/vvtest/package.py
index 271b8d20b9..3b98602f23 100755
--- a/var/spack/repos/builtin/packages/vvtest/package.py
+++ b/var/spack/repos/builtin/packages/vvtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/w3emc/package.py b/var/spack/repos/builtin/packages/w3emc/package.py
new file mode 100644
index 0000000000..491a05c0ad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/w3emc/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 W3emc(CMakePackage):
+ """This library contains Fortran 90 decoder/encoder routines for GRIB
+ edition 1 with EMC changes.
+
+ This is part of the NCEPLIBS project."""
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS-w3emc/"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-w3emc/archive/refs/tags/v2.9.0.tar.gz"
+
+ maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett']
+
+ version('2.9.0', sha256='994f59635ab91e34e96cab5fbaf8de54389d09461c7bac33b3104a1187e6c98a')
diff --git a/var/spack/repos/builtin/packages/w3m/fix_gc.patch b/var/spack/repos/builtin/packages/w3m/fix_gc.patch
new file mode 100644
index 0000000000..b49bc349ce
--- /dev/null
+++ b/var/spack/repos/builtin/packages/w3m/fix_gc.patch
@@ -0,0 +1,20 @@
+--- w3m-0.5.3/main.c.orig 2011-01-04 18:42:19.000000000 +0900
++++ w3m-0.5.3/main.c 2021-02-05 12:59:06.251334053 +0900
+@@ -311,7 +311,7 @@ wrap_GC_warn_proc(char *msg, GC_word arg
+ lock = 0;
+ }
+ }
+- else if (orig_GC_warn_proc)
++ else if (orig_GC_warn_proc = GC_get_warn_proc())
+ orig_GC_warn_proc(msg, arg);
+ else
+ fprintf(stderr, msg, (unsigned long)arg);
+@@ -833,7 +833,7 @@ main(int argc, char **argv, char **envp)
+ mySignal(SIGPIPE, SigPipe);
+ #endif
+
+- orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
++ GC_set_warn_proc(wrap_GC_warn_proc);
+ err_msg = Strnew();
+ if (load_argc == 0) {
+ /* no URL specified */
diff --git a/var/spack/repos/builtin/packages/w3m/fix_redef.patch b/var/spack/repos/builtin/packages/w3m/fix_redef.patch
new file mode 100644
index 0000000000..19ca721fe2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/w3m/fix_redef.patch
@@ -0,0 +1,58 @@
+--- w3m-0.5.3/istream.c.orig 2021-02-05 13:19:44.023053158 +0900
++++ w3m-0.5.3/istream.c 2021-02-05 13:19:53.380179220 +0900
+@@ -22,8 +22,8 @@
+ static void basic_close(int *handle);
+ static int basic_read(int *handle, char *buf, int len);
+
+-static void file_close(struct file_handle *handle);
+-static int file_read(struct file_handle *handle, char *buf, int len);
++static void file_close(struct w3m_file_handle *handle);
++static int file_read(struct w3m_file_handle *handle, char *buf, int len);
+
+ static int str_read(Str handle, char *buf, int len);
+
+@@ -114,7 +114,7 @@ newFileStream(FILE * f, void (*closep) (
+ stream = New(union input_stream);
+ init_base_stream(&stream->base, STREAM_BUF_SIZE);
+ stream->file.type = IST_FILE;
+- stream->file.handle = New(struct file_handle);
++ stream->file.handle = New(struct w3m_file_handle);
+ stream->file.handle->f = f;
+ if (closep)
+ stream->file.handle->close = closep;
+@@ -658,13 +658,13 @@ basic_read(int *handle, char *buf, int l
+ }
+
+ static void
+-file_close(struct file_handle *handle)
++file_close(struct w3m_file_handle *handle)
+ {
+ handle->close(handle->f);
+ }
+
+ static int
+-file_read(struct file_handle *handle, char *buf, int len)
++file_read(struct w3m_file_handle *handle, char *buf, int len)
+ {
+ return fread(buf, 1, len, handle->f);
+ }
+--- w3m-0.5.3/istream.h.orig 2021-02-05 13:19:44.023053158 +0900
++++ w3m-0.5.3/istream.h 2021-02-05 13:19:53.380179220 +0900
+@@ -20,7 +20,7 @@ struct stream_buffer {
+
+ typedef struct stream_buffer *StreamBuffer;
+
+-struct file_handle {
++struct w3m_file_handle {
+ FILE *f;
+ void (*close) ();
+ };
+@@ -53,7 +53,7 @@ struct base_stream {
+
+ struct file_stream {
+ struct stream_buffer stream;
+- struct file_handle *handle;
++ struct w3m_file_handle *handle;
+ char type;
+ char iseos;
+ int (*read) ();
diff --git a/var/spack/repos/builtin/packages/w3m/package.py b/var/spack/repos/builtin/packages/w3m/package.py
new file mode 100644
index 0000000000..f72d93705d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/w3m/package.py
@@ -0,0 +1,76 @@
+# Copyright 2013-2021 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 W3m(AutotoolsPackage):
+ """
+ w3m is a text-based web browser as well as a pager like `more' or `less'.
+ With w3m you can browse web pages through a terminal emulator window (xterm,
+ rxvt or something like that). Moreover, w3m can be used as a text formatting
+ tool which typesets HTML into plain text.
+ """
+
+ homepage = "http://w3m.sourceforge.net/index.en.html"
+ url = "https://downloads.sourceforge.net/project/w3m/w3m/w3m-0.5.3/w3m-0.5.3.tar.gz"
+
+ maintainers = ['ronin_gw']
+
+ version('0.5.3', sha256='e994d263f2fd2c22febfbe45103526e00145a7674a0fda79c822b97c2770a9e3')
+
+ # mandatory dependency
+ depends_on('bdw-gc')
+
+ # termlib
+ variant('termlib', default='ncurses', description='select termlib',
+ values=('ncurses', 'termcap', 'none'), multi=False)
+ depends_on('termcap', when='termlib=termcap')
+ depends_on('ncurses+termlib', when='termlib=ncurses')
+
+ # https support
+ variant('https', default=True, description='support https protocol')
+ depends_on('openssl@:1.0.2u', when='+https')
+
+ # X11 support
+ variant('image', default=True, description='enable image')
+ depends_on('libx11', when='+image')
+
+ # inline image support
+ variant('imagelib', default='imlib2', description='select imagelib',
+ values=('gdk-pixbuf', 'imlib2'), multi=False)
+ depends_on('gdk-pixbuf@2:+x11', when='imagelib=gdk-pixbuf +image')
+ depends_on('imlib2@1.0.5:', when='imagelib=imlib2 +image')
+
+ # fix for modern libraries
+ patch('fix_redef.patch')
+ patch('fix_gc.patch')
+
+ def _add_arg_for_variant(self, args, variant, choices):
+ for avail_lib in choices:
+ if self.spec.variants[variant].value == avail_lib:
+ args.append('--with-{0}={1}'.format(variant, avail_lib))
+ return
+
+ def configure_args(self):
+ args = []
+
+ self._add_arg_for_variant(args, 'termlib', ('termcap', 'ncurses'))
+ if '+image' in self.spec:
+ args.append('--enable-image')
+ self._add_arg_for_variant(args, 'imagelib', ('gdk-pixbuf', 'imlib2'))
+
+ return args
+
+ def setup_build_environment(self, env):
+ if self.spec.variants['termlib'].value == 'ncurses':
+ env.append_flags('LDFLAGS', '-ltinfo')
+ env.append_flags('LDFLAGS', '-lncurses')
+ if '+image' in self.spec:
+ env.append_flags('LDFLAGS', '-lX11')
+
+ # parallel build causes build failure
+ def build(self, spec, prefix):
+ make(parallel=False)
diff --git a/var/spack/repos/builtin/packages/w3nco/package.py b/var/spack/repos/builtin/packages/w3nco/package.py
new file mode 100644
index 0000000000..e04858e118
--- /dev/null
+++ b/var/spack/repos/builtin/packages/w3nco/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2021 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 W3nco(CMakePackage):
+ """This library contains Fortran 90 decoder/encoder routines for GRIB
+ edition 1 with NCO changes. This library is deprecated; all
+ functionality has been moved to the w3emc library.
+
+ This is part of the NCEPLIBS project."""
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS/NCEPLIBS-w3nco/"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-w3nco/archive/refs/tags/v2.4.1.tar.gz"
+
+ maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett']
+
+ version('2.4.1', sha256='48b06e0ea21d3d0fd5d5c4e7eb50b081402567c1bff6c4abf4fd4f3669070139')
diff --git a/var/spack/repos/builtin/packages/wannier90/package.py b/var/spack/repos/builtin/packages/wannier90/package.py
index e4aa1017c7..71833fa835 100644
--- a/var/spack/repos/builtin/packages/wannier90/package.py
+++ b/var/spack/repos/builtin/packages/wannier90/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/warpx/package.py b/var/spack/repos/builtin/packages/warpx/package.py
index 9cabbc4d73..180c89bd6d 100644
--- a/var/spack/repos/builtin/packages/warpx/package.py
+++ b/var/spack/repos/builtin/packages/warpx/package.py
@@ -1,123 +1,193 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 spack.compiler import UnsupportedCompilerFlag
-class Warpx(MakefilePackage):
+class Warpx(CMakePackage):
"""WarpX is an advanced electromagnetic Particle-In-Cell code. It supports
many features including Perfectly-Matched Layers (PML) and mesh refinement.
In addition, WarpX is a highly-parallel and highly-optimized code and
features hybrid OpenMP/MPI parallelization, advanced vectorization
techniques and load balancing capabilities.
+
+ For WarpX' Python bindings and PICMI input support, see the 'py-warpx' package.
"""
- homepage = "https://ecp-warpx.github.io/index.html"
+ homepage = "https://ecp-warpx.github.io"
+ url = "https://github.com/ECP-WarpX/WarpX/archive/refs/tags/21.07.tar.gz"
git = "https://github.com/ECP-WarpX/WarpX.git"
maintainers = ['ax3l', 'dpgrote', 'MaxThevenet', 'RemiLehe']
- version('develop', tag='development')
-
+ # NOTE: if you update the versions here, also see py-warpx
+ version('develop', branch='development')
+ version('21.09', sha256='861a65f11846541c803564db133c8678b9e8779e69902ef1637b21399d257eab')
+ version('21.08', sha256='6128a32cfd075bc63d08eebea6d4f62d33ce0570f4fd72330a71023ceacccc86')
+ version('21.07', sha256='a8740316d813c365715f7471201499905798b50bd94950d33f1bd91478d49561')
+ version('21.06', sha256='a26039dc4061da45e779dd5002467c67a533fc08d30841e01e7abb3a890fbe30')
+ version('21.05', sha256='f835f0ae6c5702550d23191aa0bb0722f981abb1460410e3d8952bc3d945a9fc')
+ version('21.04', sha256='51d2d8b4542eada96216e8b128c0545c4b7527addc2038efebe586c32c4020a0')
+
+ variant('app', default=True,
+ description='Build the WarpX executable application')
+ variant('ascent', default=False,
+ description='Enable Ascent in situ vis')
+ variant('compute',
+ default='omp',
+ values=('omp', 'cuda', 'hip', 'sycl', 'noacc'),
+ multi=False,
+ description='On-node, accelerated computing backend')
variant('dims',
default='3',
values=('2', '3', 'rz'),
multi=False,
description='Number of spatial dimensions')
- variant('backend',
- default='openmp',
- values=('openmp', 'cuda', 'hip'),
- multi=True,
- description='Programming model for compute kernels')
- variant('mpi', default=True, description='Enable MPI support')
- variant('psatd', default=False, description='Enable PSATD solver')
- variant('debug', default=False, description='Enable debugging features')
- variant('tprof', default=True, description='Enable tiny profiling features')
- variant('openpmd', default=True, description='Enable openPMD I/O')
- variant('ascent', default=False, description='Enable Ascent in situ vis')
-
- depends_on('cuda@9.2.88:', when='backend=cuda')
- depends_on('mpi', when='+mpi')
- depends_on('fftw@3:', when='+psatd')
- depends_on('fftw +mpi', when='+psatd +mpi')
- depends_on('blaspp', when='+psatd dims=rz')
- depends_on('lapackpp', when='+psatd dims=rz')
- depends_on('pkgconfig', type='build', when='+openpmd')
- depends_on('python', type='build') # AMReX' build system info
- depends_on('openpmd-api@0.11.0:,dev', when='+openpmd')
- depends_on('openpmd-api +mpi', when='+openpmd +mpi')
+ variant('eb', default=False,
+ description='Embedded boundary support (in development)')
+ variant('lib', default=True,
+ description='Build WarpX as a shared library')
+ variant('mpi', default=True,
+ description='Enable MPI support')
+ variant('mpithreadmultiple', default=True,
+ description='MPI thread-multiple support, i.e. for async_io')
+ variant('openpmd', default=True,
+ description='Enable openPMD I/O')
+ variant('precision',
+ default='double',
+ values=('single', 'double'),
+ multi=False,
+ description='Floating point precision (single/double)')
+ variant('psatd', default=True,
+ description='Enable PSATD solver support')
+ variant('qed', default=True,
+ description='Enable QED support')
+ variant('qedtablegen', default=False,
+ description='QED table generation support')
+ variant('shared', default=True,
+ description='Build a shared version of the library')
+ variant('tprof', default=True,
+ description='Enable tiny profiling features')
+
depends_on('ascent', when='+ascent')
- depends_on('ascent +cuda', when='+ascent backend=cuda')
+ # note: ~shared is only needed until the new concretizer is in and
+ # honors the conflict inside the Ascent package to find this
+ # automatically
+ depends_on('ascent +cuda ~shared', when='+ascent compute=cuda')
depends_on('ascent +mpi', when='+ascent +mpi')
-
- resource(name='amrex',
- git='https://github.com/AMReX-Codes/amrex.git',
- when='@develop',
- tag='development')
-
- resource(name='picsar',
- git='https://bitbucket.org/berkeleylab/picsar.git',
- tag='master')
-
- conflicts('backend=cuda', when='backend=hip',
- msg='WarpX can be compiled with either CUDA or HIP backend')
- conflicts('backend=hip', msg='WarpX\' HIP backend is not yet implemented')
-
- def edit(self, spec, prefix):
- comp = 'gcc'
- vendors = {'%gcc': 'gcc', '%intel': 'intel',
- '%apple-clang': 'llvm', '%clang': 'llvm'}
- for key, value in vendors.items():
- if self.spec.satisfies(key):
- comp = value
-
- # Returns the string TRUE or FALSE
- torf = lambda s: repr(s in spec).upper()
-
- try:
- self.compiler.openmp_flag
- except UnsupportedCompilerFlag:
- use_omp = 'FALSE'
- else:
- use_omp = torf('backend=openmp')
-
- makefile = FileFilter('GNUmakefile')
- makefile.filter('AMREX_HOME .*', 'AMREX_HOME = amrex')
- makefile.filter('PICSAR_HOME .*', 'PICSAR_HOME = picsar')
- makefile.filter('COMP .*', 'COMP = {0}'.format(comp))
- makefile.filter('USE_MPI .*',
- 'USE_MPI = {0}'.format(torf('+mpi')))
- if 'dims=rz' in spec:
- makefile.filter('USE_RZ .*', 'USE_RZ = TRUE')
- else:
- makefile.filter('DIM .*', 'DIM = {0}'.format(
- int(spec.variants['dims'].value)))
- makefile.filter('USE_PSATD .*',
- 'USE_PSATD = {0}'.format(torf('+psatd')))
- makefile.filter('USE_OMP .*',
- 'USE_OMP = {0}'.format(use_omp))
- makefile.filter('USE_GPU .*',
- 'USE_GPU = {0}'.format(torf('backend=cuda')))
- makefile.filter('USE_HIP .*',
- 'USE_HIP = {0}'.format(torf('backend=hip')))
- makefile.filter('USE_OPENPMD .*',
- 'USE_OPENPMD = {0}'.format(torf('+openpmd')))
- makefile.filter('USE_ASCENT_INSITU .*',
- 'USE_ASCENT_INSITU = {0}'.format(torf('+ascent')))
- makefile.filter('DEBUG .*',
- 'DEBUG = {0}'.format(torf('+debug')))
- makefile.filter('TINY_PROFILE .*',
- 'TINY_PROFILE = {0}'.format(torf('+tprof')))
- makefile.filter('EBASE .*', 'EBASE = warpx')
-
- def setup_build_environment(self, env):
- # --- Fool the compiler into using the "unknown" configuration.
- # --- With this, it will use the spack provided mpi.
- env.set('HOSTNAME', 'unknown')
- env.set('NERSC_HOST', 'unknown')
-
- def install(self, spec, prefix):
- make('WarpxBinDir = {0}'.format(prefix.bin), 'all')
+ depends_on('boost@1.66.0: +math', when='+qedtablegen')
+ depends_on('cmake@3.15.0:', type='build')
+ depends_on('cuda@9.2.88:', when='compute=cuda')
+ depends_on('llvm-openmp', when='%apple-clang compute=omp')
+ depends_on('mpi', when='+mpi')
+ with when('+psatd dims=rz'):
+ depends_on('lapackpp')
+ depends_on('blaspp')
+ depends_on('blaspp +cuda', when='compute=cuda')
+ with when('+psatd compute=omp'):
+ depends_on('fftw@3: +openmp')
+ depends_on('fftw +mpi', when='+mpi')
+ depends_on('pkgconfig', type='build')
+ with when('+openpmd'):
+ depends_on('openpmd-api@0.13.1:')
+ depends_on('openpmd-api@0.14.2:', when='@21.09:')
+ depends_on('openpmd-api ~mpi', when='~mpi')
+ depends_on('openpmd-api +mpi', when='+mpi')
+ with when('compute=hip'):
+ depends_on('rocfft', when='+psatd')
+ depends_on('rocprim')
+ depends_on('rocrand')
+
+ conflicts('~qed +qedtablegen',
+ msg='WarpX PICSAR QED table generation needs +qed')
+ conflicts('compute=sycl', when='+psatd',
+ msg='WarpX spectral solvers are not yet tested with SYCL '
+ '(use "warpx ~psatd")')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ '-DCMAKE_INSTALL_LIBDIR=lib',
+ # variants
+ self.define_from_variant('WarpX_APP', 'app'),
+ self.define_from_variant('WarpX_ASCENT', 'ascent'),
+ '-DWarpX_COMPUTE={0}'.format(
+ spec.variants['compute'].value.upper()),
+ '-DWarpX_DIMS={0}'.format(
+ spec.variants['dims'].value.upper()),
+ self.define_from_variant('WarpX_EB', 'eb'),
+ self.define_from_variant('WarpX_LIB', 'lib'),
+ self.define_from_variant('WarpX_MPI', 'mpi'),
+ self.define_from_variant('WarpX_MPI_THREAD_MULTIPLE', 'mpithreadmultiple'),
+ self.define_from_variant('WarpX_OPENPMD', 'openpmd'),
+ '-DWarpX_PRECISION={0}'.format(
+ spec.variants['precision'].value.upper()),
+ self.define_from_variant('WarpX_PSATD', 'psatd'),
+ self.define_from_variant('WarpX_QED', 'qed'),
+ self.define_from_variant('WarpX_QED_TABLE_GEN', 'qedtablegen'),
+ ]
+
+ return args
+
+ @property
+ def libs(self):
+ libsuffix = {'2': '2d', '3': '3d', 'rz': 'rz'}
+ dims = self.spec.variants['dims'].value
+ return find_libraries(
+ ['libwarpx.' + libsuffix[dims]], root=self.prefix, recursive=True,
+ shared=True
+ )
+
+ # WarpX has many examples to serve as a suitable smoke check. One
+ # that is typical was chosen here
+ examples_src_dir = 'Examples/Physics_applications/laser_acceleration/'
+
+ def _get_input_options(self, post_install):
+ examples_dir = join_path(
+ self.install_test_root if post_install else self.stage.source_path,
+ self.examples_src_dir)
+ dims = self.spec.variants['dims'].value
+ inputs_nD = {'2': 'inputs_2d', '3': 'inputs_3d', 'rz': 'inputs_2d_rz'}
+ inputs = join_path(examples_dir, inputs_nD[dims])
+
+ cli_args = [inputs, "max_step=50", "diag1.intervals=10"]
+ # test openPMD output if compiled in
+ if '+openpmd' in self.spec:
+ cli_args.append('diag1.format=openpmd')
+ return cli_args
+
+ def check(self):
+ """Checks after the build phase"""
+ if '+app' not in self.spec:
+ print("WarpX check skipped: requires variant +app")
+ return
+
+ with working_dir("spack-check", create=True):
+ cli_args = self._get_input_options(False)
+ warpx = Executable(join_path(self.build_directory, 'bin/warpx'))
+ warpx(*cli_args)
+
+ @run_after('install')
+ def copy_test_sources(self):
+ """Copy the example input files after the package is installed to an
+ install test subdirectory for use during `spack test run`."""
+ self.cache_extra_test_sources([self.examples_src_dir])
+
+ def test(self):
+ """Perform smoke tests on the installed package."""
+ if '+app' not in self.spec:
+ print("WarpX smoke tests skipped: requires variant +app")
+ return
+
+ # our executable names are a variant-dependent and naming evolves
+ exe = find(self.prefix.bin, 'warpx.*', recursive=False)[0]
+
+ cli_args = self._get_input_options(True)
+ self.run_test(exe,
+ cli_args,
+ [], installed=True, purpose='Smoke test for WarpX',
+ skip_missing=False)
diff --git a/var/spack/repos/builtin/packages/watch/package.py b/var/spack/repos/builtin/packages/watch/package.py
index 0416cff450..cf62fdab35 100644
--- a/var/spack/repos/builtin/packages/watch/package.py
+++ b/var/spack/repos/builtin/packages/watch/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/wayland-protocols/package.py b/var/spack/repos/builtin/packages/wayland-protocols/package.py
new file mode 100644
index 0000000000..10016191f1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wayland-protocols/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 WaylandProtocols(AutotoolsPackage):
+ """wayland-protocols contains Wayland protocols that add functionality not
+ available in the Wayland core protocol. Such protocols either add
+ completely new functionality, or extend the functionality of some other
+ protocol either in Wayland core, or some other protocol i
+ n wayland-protocols."""
+
+ homepage = "https://wayland.freedesktop.org/"
+ url = "https://github.com/wayland-project/wayland-protocols/archive/1.20.tar.gz"
+
+ version('1.20', sha256='b59cf0949aeb1f71f7db46b63b1c5a6705ffde8cb5bd194f843fbd9b41308dda')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('pkgconfig', type='build')
+ depends_on('doxygen', type='build')
+ depends_on('xmlto', type='build')
+ depends_on('libxslt', type='build')
+ depends_on('wayland')
diff --git a/var/spack/repos/builtin/packages/wayland/package.py b/var/spack/repos/builtin/packages/wayland/package.py
index daece1a824..b28a69aadc 100644
--- a/var/spack/repos/builtin/packages/wayland/package.py
+++ b/var/spack/repos/builtin/packages/wayland/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Wayland(AutotoolsPackage):
wayland client itself. The clients can be traditional applications,
X servers(rootless or fullscreen) or other display servers."""
- homepage = "http://wayland.freedesktop.org/"
+ homepage = "https://wayland.freedesktop.org/"
url = "https://github.com/wayland-project/wayland/archive/1.18.0.tar.gz"
version('1.18.0', sha256='8d375719ebfa36b6f2968096fdf0bfa7d39ba110b7956c0032e395e7e012f332')
diff --git a/var/spack/repos/builtin/packages/wcs/package.py b/var/spack/repos/builtin/packages/wcs/package.py
index 44a39cccbe..8aded12fe6 100644
--- a/var/spack/repos/builtin/packages/wcs/package.py
+++ b/var/spack/repos/builtin/packages/wcs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/wcslib/package.py b/var/spack/repos/builtin/packages/wcslib/package.py
index 0c336592d0..d8413f4c6b 100644
--- a/var/spack/repos/builtin/packages/wcslib/package.py
+++ b/var/spack/repos/builtin/packages/wcslib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Wcslib(AutotoolsPackage):
"""WCSLIB a C implementation of the coordinate transformations
defined in the FITS WCS papers."""
- homepage = "http://www.atnf.csiro.au/people/mcalabre/WCS/wcslib/"
+ homepage = "https://www.atnf.csiro.au/people/mcalabre/WCS/wcslib/"
url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-7.3.tar.bz2"
version('7.3', sha256='4b01cf425382a26ca4f955ed6841a5f50c55952a2994367f8e067e4183992961')
diff --git a/var/spack/repos/builtin/packages/webbench/package.py b/var/spack/repos/builtin/packages/webbench/package.py
index 8681d283df..d1eb8e6a70 100644
--- a/var/spack/repos/builtin/packages/webbench/package.py
+++ b/var/spack/repos/builtin/packages/webbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/weechat/package.py b/var/spack/repos/builtin/packages/weechat/package.py
index ddee20bf1f..60950f3315 100644
--- a/var/spack/repos/builtin/packages/weechat/package.py
+++ b/var/spack/repos/builtin/packages/weechat/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/weighttp/package.py b/var/spack/repos/builtin/packages/weighttp/package.py
index f7b1c5adda..67e7590714 100644
--- a/var/spack/repos/builtin/packages/weighttp/package.py
+++ b/var/spack/repos/builtin/packages/weighttp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Weighttp(AutotoolsPackage):
"""A lightweight and simple webserver benchmarking tool"""
- homepage = "http://weighttp.lighttpd.net/"
+ homepage = "https://weighttp.lighttpd.net/"
url = "https://github.com/lighttpd/weighttp/archive/weighttp-0.4.tar.gz"
version('0.4', sha256='b4954f2a1eca118260ffd503a8e3504dd32942e2e61d0fa18ccb6b8166594447')
diff --git a/var/spack/repos/builtin/packages/wget/package.py b/var/spack/repos/builtin/packages/wget/package.py
index c9ef5e9dd8..297f8338a6 100644
--- a/var/spack/repos/builtin/packages/wget/package.py
+++ b/var/spack/repos/builtin/packages/wget/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,9 +12,11 @@ class Wget(AutotoolsPackage, GNUMirrorPackage):
non-interactive commandline tool, so it may easily be called from scripts,
cron jobs, terminals without X-Windows support, etc."""
- homepage = "http://www.gnu.org/software/wget/"
+ homepage = "https://www.gnu.org/software/wget/"
gnu_mirror_path = "wget/wget-1.19.1.tar.gz"
+ version('1.21.1', sha256='59ba0bdade9ad135eda581ae4e59a7a9f25e3a4bde6a5419632b31906120e26e')
+ version('1.21', sha256='b3bc1a9bd0c19836c9709c318d41c19c11215a07514f49f89b40b9d50ab49325')
version('1.20.3', sha256='31cccfc6630528db1c8e3a06f6decf2a370060b982841cfab2b8677400a5092e')
version('1.19.1', sha256='9e4f12da38cc6167d0752d934abe27c7b1599a9af294e73829be7ac7b5b4da40')
version('1.17', sha256='3e04ad027c5b6ebd67c616eec13e66fbedb3d4d8cbe19cc29dadde44b92bda55')
@@ -54,6 +56,7 @@ class Wget(AutotoolsPackage, GNUMirrorPackage):
args = [
'--with-ssl={0}'.format(spec.variants['ssl'].value),
+ '--without-included-regex',
]
if '+zlib' in spec:
diff --git a/var/spack/repos/builtin/packages/wgrib2/package.py b/var/spack/repos/builtin/packages/wgrib2/package.py
new file mode 100644
index 0000000000..ccda892744
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wgrib2/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2021 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 Wgrib2(CMakePackage):
+ """The wgrib2 package functionality for interacting with, reading,
+ writing, and manipulating GRIB2 files."""
+
+ homepage = "https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-wgrib2/archive/refs/tags/v2.0.8-cmake-v6.tar.gz"
+
+ maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett']
+
+ version('2.0.8-cmake-v6', sha256='745cd008b4ce0245ea44247733e57e2b9ec6c5205d171d457e18d0ff8f87172d')
+
+ depends_on('ip2')
+ depends_on('jasper')
+ depends_on('libpng')
+ depends_on('netcdf-c')
+ depends_on('netcdf-fortran')
+ depends_on('sp')
+
+ def cmake_args(self):
+ args = ['-DUSE_IPOLATES=3', '-DUSE_SPECTRAL=BOOL:ON']
+ return args
diff --git a/var/spack/repos/builtin/packages/wgsim/package.py b/var/spack/repos/builtin/packages/wgsim/package.py
index fe6b25ef4a..d38be06377 100644
--- a/var/spack/repos/builtin/packages/wgsim/package.py
+++ b/var/spack/repos/builtin/packages/wgsim/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/which/package.py b/var/spack/repos/builtin/packages/which/package.py
index c95315ee7f..8784b77754 100644
--- a/var/spack/repos/builtin/packages/which/package.py
+++ b/var/spack/repos/builtin/packages/which/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/whizard/package.py b/var/spack/repos/builtin/packages/whizard/package.py
index f7aee3ceb9..093916b851 100644
--- a/var/spack/repos/builtin/packages/whizard/package.py
+++ b/var/spack/repos/builtin/packages/whizard/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,11 +15,14 @@ class Whizard(AutotoolsPackage):
url = "https://whizard.hepforge.org/downloads/?f=whizard-2.8.3.tar.gz"
git = "https://gitlab.tp.nt.uni-siegen.de/whizard/public.git"
+ tags = ['hep']
+
maintainers = ['vvolkl']
version('master', branch="master")
+ version('3.0.1', sha256='1463abd6c50ffe72029abc6f5a7d28ec63013852bfe5914cb464b58202c1437c')
version('3.0.0_alpha', sha256='4636e5a10350bb67ccc98cd105bc891ea04f3393c2420f81be3d21240be20009')
- version('2.8.5', sha256='0f633e5620aa7dd50336b492e8a76bfae15b15943ea842010346ad7610818ecd', preferred=True)
+ version('2.8.5', sha256='0f633e5620aa7dd50336b492e8a76bfae15b15943ea842010346ad7610818ecd')
version('2.8.4', sha256='49893f077484470934a9d6e1545bbda7d398076568bceda00880d58132f26432')
version('2.8.3', sha256='96a9046682d4b992b477eb96d561c3db789207e1049b60c9bd140db40eb1e5d7')
version('2.8.2', sha256='32c9be342d01b3fc6f947fddce74bf2d81ece37fb39bca1f37778fb0c07e2568')
diff --git a/var/spack/repos/builtin/packages/windowswmproto/package.py b/var/spack/repos/builtin/packages/windowswmproto/package.py
index 12f8e783d2..2f5afd7e61 100644
--- a/var/spack/repos/builtin/packages/windowswmproto/package.py
+++ b/var/spack/repos/builtin/packages/windowswmproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Windowswmproto(AutotoolsPackage, XorgPackage):
WindowsWM is only intended to be used on Cygwin when running a
rootless XWin server."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/windowswmproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/windowswmproto"
xorg_mirror_path = "proto/windowswmproto-1.0.4.tar.gz"
version('1.0.4', sha256='2dccf510cf18a1b5cfd3a277c678d88303efc85478b479fec46228a861956eb7')
diff --git a/var/spack/repos/builtin/packages/wireshark/package.py b/var/spack/repos/builtin/packages/wireshark/package.py
index e6a98b43d0..d6c72ac1a2 100644
--- a/var/spack/repos/builtin/packages/wireshark/package.py
+++ b/var/spack/repos/builtin/packages/wireshark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/wonton/package.py b/var/spack/repos/builtin/packages/wonton/package.py
index 468b80c74c..9dd5492488 100644
--- a/var/spack/repos/builtin/packages/wonton/package.py
+++ b/var/spack/repos/builtin/packages/wonton/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,10 +17,12 @@ class Wonton(CMakePackage):
homepage = "https://portage.lanl.gov"
git = "https://github.com/laristra/wonton.git"
- url = "https://github.com/laristra/wonton/releases/download/1.2.1/wonton-1.2.1.tar.gz"
+ url = "https://github.com/laristra/wonton/releases/download/1.2.11/wonton-1.2.11.tar.gz"
maintainers = ['raovgarimella']
+ version('1.2.11', sha256='613436c799b392a99355db1cbf1062f1da39f3287eed665a5cd43bb65364d926')
+ version('1.2.10', sha256='c5c2c99f040f1fa5a8da21ac5ccbbc5b226d1fd43ce3eb14c76d211601b65a72')
version('1.2.1', sha256='4f00513d1abe86f256214d2b5171b1575b2cd464df8609307c24cbc4c595c305')
variant('lapacke', default=True, description='Use LAPACKE solvers')
diff --git a/var/spack/repos/builtin/packages/wordnet/package.py b/var/spack/repos/builtin/packages/wordnet/package.py
index 416c626ff2..ef0fd9b0b6 100644
--- a/var/spack/repos/builtin/packages/wordnet/package.py
+++ b/var/spack/repos/builtin/packages/wordnet/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Wordnet(AutotoolsPackage):
expressing a distinct concept. """
homepage = "https://wordnet.princeton.edu/"
- url = "http://wordnetcode.princeton.edu/3.0/WordNet-3.0.tar.gz"
+ url = "https://wordnetcode.princeton.edu/3.0/WordNet-3.0.tar.gz"
version('3.0', sha256='640db279c949a88f61f851dd54ebbb22d003f8b90b85267042ef85a3781d3a52')
diff --git a/var/spack/repos/builtin/packages/workrave/package.py b/var/spack/repos/builtin/packages/workrave/package.py
index 85b74f7aff..310e96a5b2 100644
--- a/var/spack/repos/builtin/packages/workrave/package.py
+++ b/var/spack/repos/builtin/packages/workrave/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Workrave(AutotoolsPackage):
The program runs on GNU/Linux and Microsoft Windows.
"""
- homepage = "http://www.workrave.org/"
+ homepage = "https://www.workrave.org/"
url = "https://github.com/rcaelers/workrave/archive/v1_10_20.tar.gz"
version('1_10_20', sha256='a89c6e82d5bbbaae5e171100b87c4efd8316ab8a18d82b83714035e1116983ec')
@@ -55,13 +55,13 @@ class Workrave(AutotoolsPackage):
# https://github.com/rcaelers/workrave/issues/95
m4files = ['ax_cxx_compile_stdcxx_11', 'ax_cxx_compile_stdcxx']
resource(name=m4files[0],
- url='http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_cxx_compile_stdcxx_11.m4',
+ url='https://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_cxx_compile_stdcxx_11.m4',
sha256='d75fc9fe4502eea02e8c5bfb61b88a04cd08aa6d5bd757fe66e9a9a1e4781b46',
expand=False,
destination='',
placement=m4files[0])
resource(name=m4files[1],
- url='http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_cxx_compile_stdcxx.m4',
+ url='https://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_cxx_compile_stdcxx.m4',
sha256='0c08d2f64147f65eb7e255019102c1042ab695c60fd49add19793951a1279a1a',
expand=False,
destination='',
diff --git a/var/spack/repos/builtin/packages/wps/for_aarch64.patch b/var/spack/repos/builtin/packages/wps/for_aarch64.patch
new file mode 100644
index 0000000000..fc71d97a1f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wps/for_aarch64.patch
@@ -0,0 +1,11 @@
+--- spack-src/arch/configure.defaults.bak 2020-04-24 04:31:06.000000000 +0900
++++ spack-src/arch/configure.defaults 2020-12-11 15:33:51.215405970 +0900
+@@ -168,7 +168,7 @@
+ RANLIB = ranlib
+
+ ########################################################################################################################
+-#ARCH Linux x86_64, gfortran # serial serial_NO_GRIB2 dmpar dmpar_NO_GRIB2
++#ARCH Linux aarch64, gfortran # serial serial_NO_GRIB2 dmpar dmpar_NO_GRIB2
+ #
+ COMPRESSION_LIBS = CONFIGURE_COMP_L
+ COMPRESSION_INC = CONFIGURE_COMP_I
diff --git a/var/spack/repos/builtin/packages/wps/package.py b/var/spack/repos/builtin/packages/wps/package.py
index 70cbc030ad..f35b514b83 100644
--- a/var/spack/repos/builtin/packages/wps/package.py
+++ b/var/spack/repos/builtin/packages/wps/package.py
@@ -1,13 +1,13 @@
-# Copyright 2013-2018 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 glob
import tempfile
+from spack import *
+
class Wps(Package):
"""The Weather Research and Forecasting Pre-Processing System (WPS)
@@ -45,6 +45,8 @@ class Wps(Package):
depends_on('jasper')
phases = ['configure', 'build', 'install']
+ patch('for_aarch64.patch', when='target=aarch64:')
+
def setup_build_environment(self, env):
env.set('WRF_DIR', self.spec['wrf'].prefix)
env.set('NETCDF', self.spec['netcdf-c'].prefix)
diff --git a/var/spack/repos/builtin/packages/wrf-io/package.py b/var/spack/repos/builtin/packages/wrf-io/package.py
new file mode 100644
index 0000000000..f67507587d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf-io/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 WrfIo(CMakePackage):
+ """The WRFIO package is a lightweight WRF-IO API library for Unified
+ Post Processor (UPP). It reads wrf forecasts (WRF state plus
+ diagnostics)."""
+
+ homepage = "https://noaa-emc.github.io/NCEPLIBS-wrf_io"
+ url = "https://github.com/NOAA-EMC/NCEPLIBS-wrf_io/archive/refs/tags/v1.2.0.tar.gz"
+
+ maintainers = ['t-brown']
+
+ version('1.2.0', sha256='000cf5294a2c68460085258186e1f36c86d3d0d9c433aa969a0f92736b745617')
+
+ depends_on('netcdf-c')
+ depends_on('netcdf-fortran')
diff --git a/var/spack/repos/builtin/packages/wrf/package.py b/var/spack/repos/builtin/packages/wrf/package.py
index 4841bd2a12..609dadde12 100644
--- a/var/spack/repos/builtin/packages/wrf/package.py
+++ b/var/spack/repos/builtin/packages/wrf/package.py
@@ -1,19 +1,20 @@
-# Copyright 2013-2018 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys import stdout
import glob
+import re
+import time
+from fcntl import F_GETFL, F_SETFL, fcntl
from os import O_NONBLOCK, rename
from os.path import basename
-from fcntl import fcntl, F_GETFL, F_SETFL
-from subprocess import Popen, PIPE
-import time
+from subprocess import PIPE, Popen
+from sys import stdout
+
from llnl.util import tty
-import re
+
+from spack import *
re_optline = re.compile(r'\s+[0-9]+\..*\((serial|smpar|dmpar|dm\+sm)\)\s+')
re_paroptname = re.compile(r'\((serial|smpar|dmpar|dm\+sm)\)')
@@ -105,6 +106,9 @@ class Wrf(Package):
patch("patches/3.9/netcdf_backport.patch", when="@3.9.1.1")
patch("patches/3.9/tirpc_detect.patch", when="@3.9.1.1")
patch("patches/3.9/add_aarch64.patch", when="@3.9.1.1")
+ patch("patches/3.9/configure_aocc_2.3.patch", when="@3.9.1.1 %aocc@:2.4.0")
+ patch("patches/3.9/configure_aocc_3.0.patch", when="@3.9.1.1 %aocc@3.0.0")
+ patch("patches/3.9/configure_aocc_3.1.patch", when="@3.9.1.1 %aocc@3.1.0")
# These patches deal with netcdf & netcdf-fortran being two diff things
# Patches are based on:
@@ -129,6 +133,10 @@ class Wrf(Package):
patch("patches/4.2/Makefile.patch", when="@4.2")
patch("patches/4.2/tirpc_detect.patch", when="@4.2")
patch("patches/4.2/add_aarch64.patch", when="@4.2")
+ patch("patches/4.2/configure_aocc_2.3.patch", when="@4.2 %aocc@:2.4.0")
+ patch("patches/4.2/configure_aocc_3.0.patch", when="@4.2 %aocc@3.0.0:3.2.0")
+ patch("patches/4.2/hdf5_fix.patch", when="@4.2 %aocc")
+ patch("patches/4.2/derf_fix.patch", when="@4.2 %aocc")
depends_on("pkgconfig", type=("build"))
depends_on("libtirpc")
@@ -144,6 +152,7 @@ class Wrf(Package):
depends_on("libpng")
depends_on("zlib")
depends_on("perl")
+ depends_on("jemalloc", when="%aocc")
# not sure if +fortran is required, but seems like a good idea
depends_on("hdf5+fortran+hl+mpi")
# build script use csh
@@ -170,6 +179,11 @@ class Wrf(Package):
env.set("FCFLAGS", args)
env.set("FFLAGS", args)
+ if self.spec.satisfies("%aocc"):
+ env.set("WRFIO_NCD_LARGE_FILE_SUPPORT", 1)
+ env.set("HDF5", self.spec["hdf5"].prefix)
+ env.prepend_path('PATH', ancestor(self.compiler.cc))
+
def patch(self):
# Let's not assume csh is intalled in bin
files = glob.glob("*.csh")
@@ -232,12 +246,53 @@ class Wrf(Package):
)
ofh.write(line)
+ if self.spec.satisfies("@3.9.1.1 %aocc"):
+ rename(
+ "./arch/configure_new.defaults",
+ "./arch/configure_new.defaults.bak",
+ )
+ with open("./arch/configure_new.defaults.bak", "rt") as ifh:
+ with open("./arch/configure_new.defaults", "wt") as ofh:
+ for line in ifh:
+ if line.startswith("DM_"):
+ line = line.replace(
+ "mpif90 -DMPI2_SUPPORT",
+ self.spec['mpi'].mpifc + " -DMPI2_SUPPORT"
+ )
+ line = line.replace(
+ "mpicc -DMPI2_SUPPORT",
+ self.spec['mpi'].mpicc + " -DMPI2_SUPPORT"
+ )
+ ofh.write(line)
+
+ if self.spec.satisfies("@4.2 %aocc"):
+ # In version 4.2 the file to be patched is called
+ # configure.defaults, while in earlier versions
+ # it's configure_new.defaults
+ rename(
+ "./arch/configure.defaults",
+ "./arch/configure.defaults.bak",
+ )
+ with open("./arch/configure.defaults.bak", "rt") as ifh:
+ with open("./arch/configure.defaults", "wt") as ofh:
+ for line in ifh:
+ if line.startswith("DM_"):
+ line = line.replace(
+ "mpif90 -DMPI2_SUPPORT",
+ self.spec['mpi'].mpifc + " -DMPI2_SUPPORT"
+ )
+ line = line.replace(
+ "mpicc -DMPI2_SUPPORT",
+ self.spec['mpi'].mpicc + " -DMPI2_SUPPORT"
+ )
+ ofh.write(line)
+
def configure(self, spec, prefix):
# Remove broken default options...
self.do_configure_fixup()
- if self.spec.compiler.name not in ["intel", "gcc"]:
+ if self.spec.compiler.name not in ["intel", "gcc", "aocc"]:
raise InstallError(
"Compiler %s not currently supported for WRF build."
% self.spec.compiler.name
@@ -284,6 +339,12 @@ class Wrf(Package):
if returncode != 0:
raise InstallError("Configure failed - unknown error")
+ @run_after("configure")
+ def patch_for_libmvec(self):
+ if self.spec.satisfies("@3.9.1.1 %aocc"):
+ fp = self.package_dir + "/patches/3.9/aocc_lmvec.patch"
+ which('patch')('-s', '-p1', '-i', '{0}'.format(fp), '-d', '.')
+
def run_compile_script(self):
csh_bin = self.spec["tcsh"].prefix.bin.csh
csh = Executable(csh_bin)
diff --git a/var/spack/repos/builtin/packages/wrf/patches/3.9/aocc_lmvec.patch b/var/spack/repos/builtin/packages/wrf/patches/3.9/aocc_lmvec.patch
new file mode 100644
index 0000000000..6d67b04612
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/3.9/aocc_lmvec.patch
@@ -0,0 +1,130 @@
+diff --git a/configure.wrf b/configure_libm.wrf
+index b0e306c..41a6cba 100644
+--- a/configure.wrf
++++ b/configure_libm.wrf
+@@ -263,56 +263,56 @@ wrfio_nf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
+ make $(J) NETCDFPATH="$(NETCDFPATH)" NETCDFFPATH="$(NETCDFFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+ CC="$(SCC)" CFLAGS="$(CFLAGS)" \
+- FC="$(SFC) $(PROMOTION) $(OMP) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
++ FC="$(SFC) $(PROMOTION) $(OMP) $(LIBMVEC) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
+
+ wrfio_pnf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_pnetcdf ; \
+ make $(J) NETCDFPATH="$(PNETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP) $(ARCHFLAGS)" \
+- FC="$(FC) $(PROMOTION) $(OMP) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
++ FC="$(FC) $(PROMOTION) $(OMP) $(LIBMVEC) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
+
+ wrfio_grib_share :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
+ make $(J) CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+- FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" archive)
++ FC="$(SFC) $(PROMOTION) -I. $(LIBMVEC) $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" archive)
+
+ wrfio_grib1 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
+ make $(J) CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+- FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" archive)
++ FC="$(SFC) $(PROMOTION) -I. $(LIBMVEC) $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" archive)
+
+ wrfio_grib2 :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
+ make $(J) CC="$(SCC)" CFLAGS="$(CFLAGS) " RM="$(RM)" RANLIB="$(RANLIB)" \
+ CPP="$(CPP)" \
+- FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="-traditional" AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
++ FC="$(SFC) $(PROMOTION) -I. $(LIBMVEC) $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="-traditional" AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
+ FIXED="$(FORMAT_FIXED)" archive)
+
+ wrfio_int :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
+ make $(J) CC="$(CC)" CFLAGS_LOCAL="$(CFLAGS_LOCAL)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
+- FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) $(OMP)" FGREP="$(FGREP)" \
++ FC="$(FC) $(PROMOTION) $(LIBMVEC) $(FCDEBUG) $(FCBASEOPTS) $(OMP)" FGREP="$(FGREP)" \
+ TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" ARCHFLAGS="$(ARCHFLAGS)" all )
+
+ esmf_time :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
+- make $(J) FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \
++ make $(J) FC="$(SFC) $(PROMOTION) $(LIBMVEC) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \
+ CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(ARCHFLAGS) $(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
+
+ fftpack :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
+- make $(J) FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" AR="$(AR)" \
++ make $(J) FC="$(SFC)" FFLAGS="$(PROMOTION) $(LIBMVEC) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" AR="$(AR)" \
+ ARFLAGS="$(ARFLAGS)" CPP="$(CPP)" CPPFLAGS="$(CPPFLAGS)" RM="$(RM)" )
+
+ atm_ocn :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/atm_ocn ; \
+ make $(J) CC="$(SCC)" CFLAGS="$(CFLAGS) " RM="$(RM)" RANLIB="$(RANLIB)" \
+ CPP="$(CPP)" CPPFLAGS="$(CPPFLAGS)" \
+- FC="$(DM_FC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="-traditional" AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
++ FC="$(DM_FC) $(PROMOTION) -I. $(LIBMVEC) $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="-traditional" AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
+ FIXED="$(FORMAT_FIXED)" )
+
+ $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make $(J) CC="$(CC) $(CFLAGS)" \
+- FC="$(FC) $(FCFLAGS) $(OMP) $(PROMOTION) $(BYTESWAPIO)" \
++ FC="$(FC) $(FCFLAGS) $(LIBMVEC) $(OMP) $(PROMOTION) $(BYTESWAPIO)" \
+ CPP="$(CPP) -I. $(ARCHFLAGS) $(OMPCPP) $(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" ;\
+ $(RANLIB) $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a )
+
+@@ -332,7 +332,7 @@ wrf_ioapi_includes :
+
+ wrfio_esmf :
+ ( cd $(WRF_SRC_ROOT_DIR)/external/io_esmf ; \
+- make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) $(ESMF_MOD_INC)" \
++ make FC="$(FC) $(PROMOTION) $(LIBMVEC) $(FCDEBUG) $(FCBASEOPTS) $(ESMF_MOD_INC)" \
+ RANLIB="$(RANLIB)" CPP="$(CPP) $(POUND_DEF) " AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
+
+ # There is probably no reason to modify these rules
+@@ -357,7 +357,7 @@ wrfio_esmf :
+ $(WRF_SRC_ROOT_DIR)/var/build/da_name_space.pl $*.f90 > $*.f90.tmp ; \
+ mv $*.f90.tmp $*.f90 ; \
+ fi
+- $(FC) -o $@ -c $(FCFLAGS) $(OMP) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $*.f90
++ $(FC) -o $@ -c $(FCFLAGS) $(LIBMVEC) $(OMP) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $*.f90
+
+
+ .F.f90:
+@@ -370,7 +370,7 @@ wrfio_esmf :
+
+ .f90.o:
+ $(RM) $@
+- $(FC) -o $@ -c $(FCFLAGS) $(PROMOTION) $(FCSUFFIX) $*.f90
++ $(FC) -o $@ -c $(FCFLAGS) $(LIBMVEC) $(PROMOTION) $(FCSUFFIX) $*.f90
+
+ setfeenv.o : setfeenv.c
+ $(RM) $@
+@@ -474,10 +474,10 @@ wrf_tsin.o :
+ fi
+ if $(FGREP) '!$$OMP' $*.f90 ; then \
+ if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITH OMP ; fi ; \
+- $(FC) -c $(PROMOTION) $(FCNOOPT) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $(OMP) $*.f90 ; \
++ $(FC) -c $(PROMOTION) $(FCNOOPT) $(LIBMVEC) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $(OMP) $*.f90 ; \
+ else \
+ if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITHOUT OMP ; fi ; \
+- $(FC) -c $(PROMOTION) $(FCNOOPT) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90 ; \
++ $(FC) -c $(PROMOTION) $(FCNOOPT) $(LIBMVEC) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90 ; \
+ fi
+
+ #solve_em.o :
+@@ -497,10 +497,10 @@ module_sf_ruclsm.o :
+ if $(FGREP) '!$$OMP' $*.f90 ; then \
+ echo COMPILING $*.F WITH OMP ; \
+ if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITH OMP ; fi ; \
+- $(FC) -c $(PROMOTION) $(FCREDUCEDOPT) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $(OMP) $*.f90 ; \
++ $(FC) -c $(PROMOTION) $(FCREDUCEDOPT) $(LIBMVEC) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $(OMP) $*.f90 ; \
+ else \
+ if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITHOUT OMP ; fi ; \
+- $(FC) -c $(PROMOTION) $(FCREDUCEDOPT) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90 ; \
++ $(FC) -c $(PROMOTION) $(FCREDUCEDOPT) $(LIBMVEC) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90 ; \
+ fi
+
+ # compile without OMP
+@@ -547,4 +547,4 @@ module_configure.o :
+ mv $*.f90.tmp $*.f90 ; \
+ fi
+ $(RM) $*.b $*.bb
+- $(FC) -c $(PROMOTION) $(FCSUFFIX) $(FCNOOPT) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
++ $(FC) -c $(PROMOTION) $(FCSUFFIX) $(LIBMVEC) $(FCNOOPT) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90
diff --git a/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_2.3.patch b/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_2.3.patch
new file mode 100644
index 0000000000..2daa9f588e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_2.3.patch
@@ -0,0 +1,53 @@
+--- WRF-3.9.1.1/arch/configure_new.defaults 2021-03-10 10:08:07.885236847 +0530
++++ WRF-3.9.1.1/arch/configure_new_aocc.defaults 2021-04-12 13:24:05.880139431 +0530
+@@ -1917,6 +1917,50 @@
+ CC_TOOLS = $(SCC)
+
+ #insert new stanza here
++#############################################################
++#ARCH AMD EPYC Linux x86_64 AOCC Compilers #dm+sm
++#
++DESCRIPTION = AMD AOCC ($SFC/$SCC): EPYC
++DMPARALLEL = 1
++OMPCPP = -D_OPENMP
++OMP = -fopenmp
++OMPCC = -fopenmp -Mpreprocess
++SFC = flang
++SCC = clang
++CCOMP = clang
++DM_FC = mpif90 -DMPI2_SUPPORT
++DM_CC = mpicc -DMPI2_SUPPORT
++FC = $(DM_FC)
++CC = $(DM_CC) -DFSEEKO64_OK
++LD = $(FC)
++RWORDSIZE = $(NATIVE_RWORDSIZE)
++PROMOTION =
++ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
++LIBMVEC = -mllvm -vector-library=LIBMVEC -Mstack_arrays
++AOCCOPT = -O3 -m64 -Ofast -ffast-math
++CFLAGS_LOCAL = -w $(AOCCOPT)
++LDFLAGS_LOCAL = -lm -ltirpc -lamdlibm -ljemalloc -lmvec $(AOCCOPT)
++CPLUSPLUSLIB =
++ESMF_LDFLAG = $(CPLUSPLUSLIB)
++FCOPTIM = $(AOCCOPT) -fopenmp
++FCREDUCEDOPT = -O2 -Ofast -ffast-math
++FCNOOPT = -O0 -DFCNOOPT -fopenmp
++FCDEBUG = #-g
++FORMAT_FIXED = -Mfixed
++FORMAT_FREE = -Mfreeform
++FCSUFFIX =
++BYTESWAPIO = -Mbyteswapio
++FCBASEOPTS_NO_G = $(FORMAT_FREE) $(BYTESWAPIO) -fopenmp
++FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -DBASEOPTS -fopenmp
++MODULE_SRCH_FLAG =
++TRADFLAG = -traditional
++CPP = /lib/cpp -P
++AR = llvm-ar
++ARFLAGS = ru
++M4 = m4
++RANLIB = llvm-ranlib
++RLFLAGS =
++CC_TOOLS = $(SCC)
+
+ ###########################################################
+ #ARCH Fujitsu FX10/FX100 Linux x86_64 SPARC64IXfx/SPARC64Xlfx, mpifrtpx and mpifccpx compilers #serial smpar dmpar dm+sm
diff --git a/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.0.patch b/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.0.patch
new file mode 100644
index 0000000000..28d43e2e09
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.0.patch
@@ -0,0 +1,53 @@
+--- WRF-3.9.1.1/arch/configure_new.defaults 2021-03-10 10:08:07.885236847 +0530
++++ WRF-3.9.1.1/arch/configure_new_aocc.defaults 2021-03-13 18:30:42.191344515 +0530
+@@ -1917,6 +1917,50 @@
+ CC_TOOLS = $(SCC)
+
+ #insert new stanza here
++#############################################################
++#ARCH AMD EPYC Linux x86_64 AOCC Compilers #dm+sm
++#
++DESCRIPTION = AMD AOCC ($SFC/$SCC): EPYC
++DMPARALLEL = 1
++OMPCPP = -D_OPENMP
++OMP = -fopenmp
++OMPCC = -fopenmp -Mpreprocess
++SFC = flang
++SCC = clang
++CCOMP = clang
++DM_FC = mpif90 -DMPI2_SUPPORT
++DM_CC = mpicc -DMPI2_SUPPORT
++FC = $(DM_FC)
++CC = $(DM_CC) -DFSEEKO64_OK
++LD = $(FC)
++RWORDSIZE = $(NATIVE_RWORDSIZE)
++PROMOTION =
++ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
++LIBMVEC = -mllvm -vector-library=LIBMVEC-X86 -mllvm -enable-boscc -Mstack_arrays
++AOCCOPT = -O3 -m64 -Ofast -ffast-math
++CFLAGS_LOCAL = -w $(AOCCOPT)
++LDFLAGS_LOCAL = -lm -ltirpc -lamdlibm -ljemalloc -lmvec $(AOCCOPT)
++CPLUSPLUSLIB =
++ESMF_LDFLAG = $(CPLUSPLUSLIB)
++FCOPTIM = $(AOCCOPT) -fopenmp
++FCREDUCEDOPT = -O2 -Ofast -ffast-math
++FCNOOPT = -O0 -DFCNOOPT -fopenmp
++FCDEBUG = #-g
++FORMAT_FIXED = -Mfixed
++FORMAT_FREE = -Mfreeform
++FCSUFFIX =
++BYTESWAPIO = -Mbyteswapio
++FCBASEOPTS_NO_G = $(FORMAT_FREE) $(BYTESWAPIO) -fopenmp
++FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -DBASEOPTS -fopenmp
++MODULE_SRCH_FLAG =
++TRADFLAG = -traditional
++CPP = /lib/cpp -P
++AR = llvm-ar
++ARFLAGS = ru
++M4 = m4
++RANLIB = llvm-ranlib
++RLFLAGS =
++CC_TOOLS = $(SCC)
+
+ ###########################################################
+ #ARCH Fujitsu FX10/FX100 Linux x86_64 SPARC64IXfx/SPARC64Xlfx, mpifrtpx and mpifccpx compilers #serial smpar dmpar dm+sm
diff --git a/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.1.patch b/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.1.patch
new file mode 100644
index 0000000000..4d6a0ae90c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/3.9/configure_aocc_3.1.patch
@@ -0,0 +1,53 @@
+--- WRF-3.9.1.1/arch/configure_new.defaults 2021-03-10 10:08:07.885236847 +0530
++++ WRF-3.9.1.1/arch/configure_new_aocc.defaults 2021-08-12 08:58:35.442165745 +0530
+@@ -1917,6 +1917,50 @@
+ CC_TOOLS = $(SCC)
+
+ #insert new stanza here
++##############################################################
++#ARCH AMD EPYC Linux x86_64 AOCC Compilers #dm+sm
++#
++DESCRIPTION = AMD AOCC ($SFC/$SCC): EPYC
++DMPARALLEL = 1
++OMPCPP = -D_OPENMP
++OMP = -fopenmp
++OMPCC = -fopenmp -Mpreprocess
++SFC = flang
++SCC = clang
++CCOMP = clang
++DM_FC = mpif90 -DMPI2_SUPPORT
++DM_CC = mpicc -DMPI2_SUPPORT
++FC = $(DM_FC)
++CC = $(DM_CC) -DFSEEKO64_OK
++LD = $(FC)
++RWORDSIZE = $(NATIVE_RWORDSIZE)
++PROMOTION =
++ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
++LIBMVEC = -mllvm -vector-library=LIBMVEC-X86 -mllvm -enable-loop-vectorization-with-conditions -Mstack_arrays
++AOCCOPT = -O3 -m64 -Ofast -ffast-math
++CFLAGS_LOCAL = -w $(AOCCOPT)
++LDFLAGS_LOCAL = -lm -ltirpc -lamdlibm -ljemalloc -lmvec $(AOCCOPT)
++CPLUSPLUSLIB =
++ESMF_LDFLAG = $(CPLUSPLUSLIB)
++FCOPTIM = $(AOCCOPT) -fopenmp
++FCREDUCEDOPT = -O2 -Ofast -ffast-math
++FCNOOPT = -O0 -DFCNOOPT -fopenmp
++FCDEBUG = #-g
++FORMAT_FIXED = -Mfixed
++FORMAT_FREE = -Mfreeform
++FCSUFFIX =
++BYTESWAPIO = -Mbyteswapio
++FCBASEOPTS_NO_G = $(FORMAT_FREE) $(BYTESWAPIO) -fopenmp
++FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -DBASEOPTS -fopenmp
++MODULE_SRCH_FLAG =
++TRADFLAG = -traditional
++CPP = /lib/cpp -P
++AR = llvm-ar
++ARFLAGS = ru
++M4 = m4
++RANLIB = llvm-ranlib
++RLFLAGS =
++CC_TOOLS = $(SCC)
+
+ ###########################################################
+ #ARCH Fujitsu FX10/FX100 Linux x86_64 SPARC64IXfx/SPARC64Xlfx, mpifrtpx and mpifccpx compilers #serial smpar dmpar dm+sm
diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.2/configure_aocc_2.3.patch b/var/spack/repos/builtin/packages/wrf/patches/4.2/configure_aocc_2.3.patch
new file mode 100644
index 0000000000..75a87db895
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/4.2/configure_aocc_2.3.patch
@@ -0,0 +1,53 @@
+--- WRF-4.2/arch/configure.defaults 2020-04-23 22:38:37.000000000 +0530
++++ WRF-4.2/arch/configure_aocc.defaults 2021-03-13 19:13:26.626442958 +0530
+@@ -1975,6 +1975,50 @@
+ $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o
+
+ #insert new stanza here
++##############################################################
++#ARCH AMD EPYC Linux x86_64 AOCC Compilers #dm+sm
++#
++DESCRIPTION = AMD AOCC ($SFC/$SCC): EPYC
++DMPARALLEL = 1
++OMPCPP = -D_OPENMP
++OMP = -fopenmp
++OMPCC = -fopenmp -Mpreprocess
++SFC = flang
++SCC = clang
++CCOMP = clang
++DM_FC = mpif90 -DMPI2_SUPPORT
++DM_CC = mpicc -DMPI2_SUPPORT
++FC = time $(DM_FC)
++CC = $(DM_CC) -DFSEEKO64_OK
++LD = $(FC)
++RWORDSIZE = $(NATIVE_RWORDSIZE)
++PROMOTION =
++ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
++LIBMVEC = -mllvm -vector-library=LIBMVEC
++AOCCOPT = -O3 -m64 -Ofast -ffast-math -g
++CFLAGS_LOCAL = -w $(AOCCOPT)
++LDFLAGS_LOCAL = -lm -ltirpc -lamdlibm -ljemalloc -lmvec $(AOCCOPT)
++CPLUSPLUSLIB =
++ESMF_LDFLAG = $(CPLUSPLUSLIB)
++FCOPTIM = $(AOCCOPT) -fopenmp
++FCREDUCEDOPT = -O2 -Ofast -ffast-math
++FCNOOPT = -O0 -ffast-math
++FCDEBUG = #-g
++FORMAT_FIXED = -Mfixed
++FORMAT_FREE = -Mfreeform
++FCSUFFIX =
++BYTESWAPIO = -Mbyteswapio
++FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) -ffast-math
++FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
++MODULE_SRCH_FLAG =
++TRADFLAG = -traditional
++CPP = /lib/cpp -P
++AR = llvm-ar
++ARFLAGS = ru
++M4 = m4
++RANLIB = llvm-ranlib
++RLFLAGS =
++CC_TOOLS = $(SCC)
+
+ ###########################################################
+ #ARCH Fujitsu FX10/FX100 Linux x86_64 SPARC64IXfx/SPARC64Xlfx, mpifrtpx and mpifccpx compilers #serial smpar dmpar dm+sm
diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.2/configure_aocc_3.0.patch b/var/spack/repos/builtin/packages/wrf/patches/4.2/configure_aocc_3.0.patch
new file mode 100644
index 0000000000..2b08f1775b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/4.2/configure_aocc_3.0.patch
@@ -0,0 +1,53 @@
+--- WRF-4.2/arch/configure.defaults 2020-04-23 22:38:37.000000000 +0530
++++ WRF-4.2/arch/configure_aocc.defaults 2021-03-13 19:16:59.115451115 +0530
+@@ -1975,6 +1975,50 @@
+ $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o
+
+ #insert new stanza here
++##############################################################
++#ARCH AMD EPYC Linux x86_64 AOCC Compilers #dm+sm
++#
++DESCRIPTION = AMD AOCC ($SFC/$SCC): EPYC
++DMPARALLEL = 1
++OMPCPP = -D_OPENMP
++OMP = -fopenmp
++OMPCC = -fopenmp -Mpreprocess
++SFC = flang
++SCC = clang
++CCOMP = clang
++DM_FC = mpif90 -DMPI2_SUPPORT
++DM_CC = mpicc -DMPI2_SUPPORT
++FC = time $(DM_FC)
++CC = $(DM_CC) -DFSEEKO64_OK
++LD = $(FC)
++RWORDSIZE = $(NATIVE_RWORDSIZE)
++PROMOTION =
++ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
++LIBMVEC = -mllvm -vector-library=LIBMVEC-X86
++AOCCOPT = -O3 -m64 -Ofast -ffast-math -g
++CFLAGS_LOCAL = -w $(AOCCOPT)
++LDFLAGS_LOCAL = -lm -ltirpc -lamdlibm -ljemalloc -lmvec $(AOCCOPT)
++CPLUSPLUSLIB =
++ESMF_LDFLAG = $(CPLUSPLUSLIB)
++FCOPTIM = $(AOCCOPT) -fopenmp
++FCREDUCEDOPT = -O2 -Ofast -ffast-math
++FCNOOPT = -O0 -ffast-math
++FCDEBUG = #-g
++FORMAT_FIXED = -Mfixed
++FORMAT_FREE = -Mfreeform
++FCSUFFIX =
++BYTESWAPIO = -Mbyteswapio
++FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) -ffast-math
++FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
++MODULE_SRCH_FLAG =
++TRADFLAG = -traditional
++CPP = /lib/cpp -P
++AR = llvm-ar
++ARFLAGS = ru
++M4 = m4
++RANLIB = llvm-ranlib
++RLFLAGS =
++CC_TOOLS = $(SCC)
+
+ ###########################################################
+ #ARCH Fujitsu FX10/FX100 Linux x86_64 SPARC64IXfx/SPARC64Xlfx, mpifrtpx and mpifccpx compilers #serial smpar dmpar dm+sm
diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.2/derf_fix.patch b/var/spack/repos/builtin/packages/wrf/patches/4.2/derf_fix.patch
new file mode 100644
index 0000000000..227c467352
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/4.2/derf_fix.patch
@@ -0,0 +1,11 @@
+--- WRF-4.2/phys/module_mp_SBM_polar_radar.F 2020-04-23 22:38:37.000000000 +0530
++++ WRF-4.2/phys/module_mp_SBM_polar_radar_aocc.F 2020-12-29 11:45:52.329495585 +0530
+@@ -1534,7 +1534,7 @@
+ (1.0d0-(1.0d0-fract_volume_water)*ratc))
+ ! new change 18.01.09 (start)
+ if(fract_volume_water.gt.1.0d-10) then
+- t=derf((1.0d0-fract_volume_water)/fract_volume_water-0.2d0)
++ t=erf((1.0d0-fract_volume_water)/fract_volume_water-0.2d0)
+ else
+ t=1.0d0
+ endif
diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.2/hdf5_fix.patch b/var/spack/repos/builtin/packages/wrf/patches/4.2/hdf5_fix.patch
new file mode 100644
index 0000000000..d3206fe951
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/4.2/hdf5_fix.patch
@@ -0,0 +1,20 @@
+--- WRF-4.2/arch/Config.pl 2021-08-12 16:39:02.339226280 +0530
++++ WRF-4.2/arch/Config_hdf5.pl 2021-08-12 18:17:17.362452577 +0530
+@@ -514,7 +514,7 @@
+ }
+
+ if ( $sw_hdf5_path )
+- { $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz: ;
++ { $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5_hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz: ;
+ $_ =~ s:CONFIGURE_HDF5_FLAG:-DHDF5: ;
+ }
+ else
+@@ -836,7 +836,7 @@
+ }
+
+ if ( $sw_hdf5_path )
+- { $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz: ;
++ { $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5_hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz: ;
+ $_ =~ s:CONFIGURE_HDF5_FLAG:-DHDF5: ;
+ }
+ else
diff --git a/var/spack/repos/builtin/packages/wrk/package.py b/var/spack/repos/builtin/packages/wrk/package.py
index 0eaddbd82e..9eb4eb30e3 100644
--- a/var/spack/repos/builtin/packages/wrk/package.py
+++ b/var/spack/repos/builtin/packages/wrk/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/wsmancli/package.py b/var/spack/repos/builtin/packages/wsmancli/package.py
index 0a28a1c539..d2769dbeec 100644
--- a/var/spack/repos/builtin/packages/wsmancli/package.py
+++ b/var/spack/repos/builtin/packages/wsmancli/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/wt/package.py b/var/spack/repos/builtin/packages/wt/package.py
index dcc08ca12d..3eaf6d52a5 100644
--- a/var/spack/repos/builtin/packages/wt/package.py
+++ b/var/spack/repos/builtin/packages/wt/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Wt(CMakePackage):
Wt is a C++ library for developing web applications."""
- homepage = "http://www.webtoolkit.eu/wt"
+ homepage = "https://www.webtoolkit.eu/wt"
url = "https://github.com/emweb/wt/archive/3.3.7.tar.gz"
git = "https://github.com/emweb/wt.git"
@@ -52,8 +52,6 @@ class Wt(CMakePackage):
depends_on('zlib', when='+zlib')
def cmake_args(self):
- spec = self.spec
-
cmake_args = [
'-DBUILD_EXAMPLES:BOOL=OFF',
'-DCONNECTOR_FCGI:BOOL=OFF',
@@ -61,17 +59,11 @@ class Wt(CMakePackage):
'-DENABLE_QT4:BOOL=OFF'
]
cmake_args.extend([
- '-DENABLE_SSL:BOOL={0}'.format((
- 'ON' if '+openssl' in spec else 'OFF')),
- '-DENABLE_HARU:BOOL={0}'.format((
- 'ON' if '+libharu' in spec else 'OFF')),
- '-DENABLE_PANGO:BOOL={0}'.format((
- 'ON' if '+pango' in spec else 'OFF')),
- '-DENABLE_SQLITE:BOOL={0}'.format((
- 'ON' if '+sqlite' in spec else 'OFF')),
- '-DENABLE_MYSQL:BOOL={0}'.format((
- 'ON' if '+mariadb' in spec else 'OFF')),
- '-DENABLE_POSTGRES:BOOL={0}'.format((
- 'ON' if '+postgres' in spec else 'OFF'))
+ self.define_from_variant('ENABLE_SSL', 'openssl'),
+ self.define_from_variant('ENABLE_HARU', 'libharu'),
+ self.define_from_variant('ENABLE_PANGO', 'pango'),
+ self.define_from_variant('ENABLE_SQLITE', 'sqlite'),
+ self.define_from_variant('ENABLE_MYSQL', 'mariadb'),
+ self.define_from_variant('ENABLE_POSTGRES', 'postgresql')
])
return cmake_args
diff --git a/var/spack/repos/builtin/packages/wtdbg2/for_aarch64.patch b/var/spack/repos/builtin/packages/wtdbg2/for_aarch64.patch
new file mode 100644
index 0000000000..425edc927f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wtdbg2/for_aarch64.patch
@@ -0,0 +1,23 @@
+--- spack-src/ksw.c.bak 2019-01-21 10:35:00.000000000 +0900
++++ spack-src/ksw.c 2021-01-29 16:24:06.281952856 +0900
+@@ -25,7 +25,7 @@
+
+ #include <stdlib.h>
+ #include <stdint.h>
+-#include <emmintrin.h>
++#include <sse2neon.h>
+ #include "ksw.h"
+
+ #ifdef USE_MALLOC_WRAPPERS
+--- spack-src/poacns.h.bak 2019-01-21 10:35:00.000000000 +0900
++++ spack-src/poacns.h 2021-01-29 16:23:27.631956791 +0900
+@@ -25,8 +25,7 @@
+ #include "chararray.h"
+ #include "list.h"
+ #include "hashset.h"
+-#include <emmintrin.h>
+-#include <tmmintrin.h>
++#include <sse2neon.h>
+
+ #if __BYTE_ORDER == 1234
+ //#pragma message(" ** " __FILE__ " has been tested in LITTLE_ENDIAN **\n")
diff --git a/var/spack/repos/builtin/packages/wtdbg2/package.py b/var/spack/repos/builtin/packages/wtdbg2/package.py
index 255ea90560..299ad7f34c 100644
--- a/var/spack/repos/builtin/packages/wtdbg2/package.py
+++ b/var/spack/repos/builtin/packages/wtdbg2/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,6 +15,14 @@ class Wtdbg2(MakefilePackage):
version('2.3', sha256='fb61d38a4c60a39b3b194e63b855141c05ddcbe71cf244ae613766a9b0a56621')
depends_on('zlib')
+ depends_on('sse2neon', when='target=aarch64:')
+
+ patch('for_aarch64.patch', when='target=aarch64:')
+
+ def edit(self, spec, prefix):
+ if spec.target.family == 'aarch64':
+ makefile = FileFilter('Makefile')
+ makefile.filter('-mpopcnt -msse4.2', '')
def install(self, spec, prefix):
make('install', 'BIN=%s' % prefix.bin)
diff --git a/var/spack/repos/builtin/packages/wxparaver/package.py b/var/spack/repos/builtin/packages/wxparaver/package.py
new file mode 100644
index 0000000000..1aa9eb9665
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wxparaver/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2021 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 Wxparaver(AutotoolsPackage):
+ """"A very powerful performance visualization and analysis tool
+ based on traces that can be used to analyse any information that
+ is expressed on its input trace format. Traces for parallel MPI,
+ OpenMP and other programs can be genereated with Extrae."""
+ homepage = "https://tools.bsc.es/paraver"
+ url = "https://ftp.tools.bsc.es/wxparaver/wxparaver-4.9.2-src.tar.bz2"
+
+ version('4.9.2', sha256='83289584040bcedf8cab1b2ae3545191c8bdef0e11ab62b06e54cbf111f2127a')
+ version('4.9.1', sha256='e89fdf563d1fc73ed0018cf0e25b458b6617ec33325ed3fdbf06397c556f3a8e')
+ version('4.9.0', sha256='1f9964d7987032d01a354327845bf53ae369be5d8acf7d4e85bec81699a6ddf6')
+ version('4.8.2', sha256='0d22ec362e4798d7ed21b15b607859e9bda9579e3d5b23af3812c1e32ccc192d')
+ version('4.8.1', sha256='d03b04254bd3015d61374b95aeda6888f593be67286c5268849623baa2ae6e2e')
+ version('4.8.0', sha256='780af8fff7cb40d1325260fb9f79210f6676f07357bc9b95b1b838862f2d1e5b')
+ version('4.7.2', sha256='90107797d6af6fc3ebd9505445bb518d673edecbe5d08d1b7af01695d53241ae')
+ version('4.7.1', sha256='8cbec0c5e0f8a849820f6682cbb0920ea234bb7f20d1483e38ea5d0b0ee045cd')
+ version('4.7.0', sha256='81e02bcc1853455b13435172a4336ba85ba05020887d322c9678c97def03d76f')
+
+ depends_on('boost@1.36: +serialization')
+ depends_on('wxwidgets@2.8:') # NOTE: using external for this one is usually simpler
+ depends_on('wxpropgrid@1.4:')
+ depends_on('libxml2')
+ depends_on('zlib')
+
+ def configure_args(self):
+ spec = self.spec
+ args = []
+
+ args.append('--with-boost=%s' % spec['boost'].prefix)
+ args.append('--with-wx-config=%s/wx-config' % spec['wxwidgets'].prefix.bin)
+ if spec['wxwidgets'].satisfies('@:2.999'):
+ args.append('--with-wxpropgrid=%s' % spec['wxpropgrid'].prefix)
+
+ return args
+
+ # use make install directly as expected by Paraver (See README)
+ def build(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin/packages/wxpropgrid/package.py b/var/spack/repos/builtin/packages/wxpropgrid/package.py
index c288d0d533..aa73bfef83 100644
--- a/var/spack/repos/builtin/packages/wxpropgrid/package.py
+++ b/var/spack/repos/builtin/packages/wxpropgrid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/wxwidgets/package.py b/var/spack/repos/builtin/packages/wxwidgets/package.py
index 5b31c4e59b..828538f159 100644
--- a/var/spack/repos/builtin/packages/wxwidgets/package.py
+++ b/var/spack/repos/builtin/packages/wxwidgets/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Wxwidgets(AutotoolsPackage):
"""wxWidgets is a C++ library that lets developers create
@@ -17,7 +18,7 @@ class Wxwidgets(AutotoolsPackage):
rather than emulating the GUI. It's also extensive, free,
open-source and mature."""
- homepage = "http://www.wxwidgets.org/"
+ homepage = "https://www.wxwidgets.org/"
url = "https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.0/wxWidgets-3.1.0.tar.bz2"
git = "https://github.com/wxWidgets/wxWidgets.git"
@@ -42,7 +43,7 @@ class Wxwidgets(AutotoolsPackage):
'--disable-precomp-headers'
]
- # see http://trac.wxwidgets.org/ticket/17639
+ # see https://trac.wxwidgets.org/ticket/17639
if spec.satisfies('@:3.1.0') and sys.platform == 'darwin':
options.extend([
'--disable-qtkit',
diff --git a/var/spack/repos/builtin/packages/x11perf/package.py b/var/spack/repos/builtin/packages/x11perf/package.py
index bdd58e64c9..24bbb99960 100644
--- a/var/spack/repos/builtin/packages/x11perf/package.py
+++ b/var/spack/repos/builtin/packages/x11perf/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class X11perf(AutotoolsPackage, XorgPackage):
"""Simple X server performance benchmarker."""
- homepage = "http://cgit.freedesktop.org/xorg/app/x11perf"
+ homepage = "https://cgit.freedesktop.org/xorg/app/x11perf"
xorg_mirror_path = "app/x11perf-1.6.0.tar.gz"
version('1.6.0', sha256='d33051c4e93100ab60609aee14ff889bb2460f28945063d793e21eda19381abb')
@@ -19,6 +19,6 @@ class X11perf(AutotoolsPackage, XorgPackage):
depends_on('libxrender')
depends_on('libxft')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xabclib/package.py b/var/spack/repos/builtin/packages/xabclib/package.py
index 80f691d31b..c9338c0340 100644
--- a/var/spack/repos/builtin/packages/xabclib/package.py
+++ b/var/spack/repos/builtin/packages/xabclib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xapian-core/package.py b/var/spack/repos/builtin/packages/xapian-core/package.py
index 5e1bc5d244..53867017c3 100644
--- a/var/spack/repos/builtin/packages/xapian-core/package.py
+++ b/var/spack/repos/builtin/packages/xapian-core/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class XapianCore(AutotoolsPackage):
supports a rich set of boolean query operators."""
homepage = "https://xapian.org"
- url = "http://oligarchy.co.uk/xapian/1.4.3/xapian-core-1.4.3.tar.xz"
+ url = "https://oligarchy.co.uk/xapian/1.4.3/xapian-core-1.4.3.tar.xz"
version('1.4.11', sha256='9f16b2f3e2351a24034d7636f73566ab74c3f0729e9e0492934e956b25c5bc07')
version('1.4.3', sha256='7d5295511ca2de70463a29e75f6a2393df5dc1485bf33074b778c66e1721e475')
diff --git a/var/spack/repos/builtin/packages/xauth/package.py b/var/spack/repos/builtin/packages/xauth/package.py
index aefbf692c7..5c111a77b5 100644
--- a/var/spack/repos/builtin/packages/xauth/package.py
+++ b/var/spack/repos/builtin/packages/xauth/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xauth(AutotoolsPackage, XorgPackage):
"""The xauth program is used to edit and display the authorization
information used in connecting to the X server."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xauth"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xauth"
xorg_mirror_path = "app/xauth-1.0.9.tar.gz"
version('1.0.9', sha256='0709070caf23ba2fb99536907b75be1fe31853999c62d3e87a6a8d26ba8a8cdb')
diff --git a/var/spack/repos/builtin/packages/xbacklight/package.py b/var/spack/repos/builtin/packages/xbacklight/package.py
index 5fd7d6b4e3..f9f855b929 100644
--- a/var/spack/repos/builtin/packages/xbacklight/package.py
+++ b/var/spack/repos/builtin/packages/xbacklight/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Xbacklight(AutotoolsPackage, XorgPackage):
supporting backlight brightness control and changes them all in the
same way."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xbacklight"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xbacklight"
xorg_mirror_path = "app/xbacklight-1.2.1.tar.gz"
version('1.2.1', sha256='82c80cd851e3eb6d7a216d92465fcf6d5e456c2d5ac12c63cd2757b39fb65b10')
diff --git a/var/spack/repos/builtin/packages/xbiff/package.py b/var/spack/repos/builtin/packages/xbiff/package.py
index 3305eebd83..78fa478107 100644
--- a/var/spack/repos/builtin/packages/xbiff/package.py
+++ b/var/spack/repos/builtin/packages/xbiff/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Xbiff(AutotoolsPackage, XorgPackage):
It only handles mail stored in a filesystem accessible file,
not via IMAP, POP or other remote access protocols."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xbiff"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xbiff"
xorg_mirror_path = "app/xbiff-1.0.3.tar.gz"
version('1.0.3', sha256='b4b702348674985741685e3ec7fcb5640ffb7bf20e753fc2d708f70f2e4c304d')
@@ -21,6 +21,6 @@ class Xbiff(AutotoolsPackage, XorgPackage):
depends_on('libxext')
depends_on('libx11')
- depends_on('xbitmaps', type='build')
+ depends_on('xbitmaps')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xbitmaps/package.py b/var/spack/repos/builtin/packages/xbitmaps/package.py
index 0b61b98e2c..7f681b5925 100644
--- a/var/spack/repos/builtin/packages/xbitmaps/package.py
+++ b/var/spack/repos/builtin/packages/xbitmaps/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xbraid/package.py b/var/spack/repos/builtin/packages/xbraid/package.py
index 530390c100..cffe634d76 100644
--- a/var/spack/repos/builtin/packages/xbraid/package.py
+++ b/var/spack/repos/builtin/packages/xbraid/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xcalc/package.py b/var/spack/repos/builtin/packages/xcalc/package.py
index 85078d3860..6f7ef79db7 100644
--- a/var/spack/repos/builtin/packages/xcalc/package.py
+++ b/var/spack/repos/builtin/packages/xcalc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xcalc(AutotoolsPackage, XorgPackage):
"""xcalc is a scientific calculator X11 client that can emulate a TI-30
or an HP-10C."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xcalc"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xcalc"
xorg_mirror_path = "app/xcalc-1.0.6.tar.gz"
version('1.0.6', sha256='7fd5cd9a35160925c41cbadfb1ea23599fa20fd26cd873dab20a650b24efe8d1')
@@ -19,6 +19,6 @@ class Xcalc(AutotoolsPackage, XorgPackage):
depends_on('libxt')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xcb-demo/package.py b/var/spack/repos/builtin/packages/xcb-demo/package.py
index 83e7eb2666..6336a7eeac 100644
--- a/var/spack/repos/builtin/packages/xcb-demo/package.py
+++ b/var/spack/repos/builtin/packages/xcb-demo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xcb-proto/package.py b/var/spack/repos/builtin/packages/xcb-proto/package.py
index 7bf70df0e5..6a8508cdc5 100644
--- a/var/spack/repos/builtin/packages/xcb-proto/package.py
+++ b/var/spack/repos/builtin/packages/xcb-proto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,9 +10,11 @@ class XcbProto(AutotoolsPackage):
"""xcb-proto provides the XML-XCB protocol descriptions that libxcb uses to
generate the majority of its code and API."""
- homepage = "http://xcb.freedesktop.org/"
- url = "http://xcb.freedesktop.org/dist/xcb-proto-1.13.tar.gz"
+ homepage = "https://xcb.freedesktop.org/"
+ url = "https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-1.14.1.tar.xz"
+ version('1.14.1', sha256='f04add9a972ac334ea11d9d7eb4fc7f8883835da3e4859c9afa971efdf57fcc3')
+ version('1.14', sha256='186a3ceb26f9b4a015f5a44dcc814c93033a5fc39684f36f1ecc79834416a605')
version('1.13', sha256='0698e8f596e4c0dbad71d3dc754d95eb0edbb42df5464e0f782621216fa33ba7')
version('1.12', sha256='cfa49e65dd390233d560ce4476575e4b76e505a0e0bacdfb5ba6f8d0af53fd59')
version('1.11', sha256='d12152193bd71aabbdbb97b029717ae6d5d0477ab239614e3d6193cc0385d906')
@@ -22,3 +24,11 @@ class XcbProto(AutotoolsPackage):
# extends('python')
patch('xcb-proto-1.12-schema-1.patch', when='@1.12')
+
+ def url_for_version(self, version):
+ if version >= Version('1.14'):
+ url = 'https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-{0}.tar.xz'
+ else:
+ url = 'http://xcb.freedesktop.org/dist/xcb-proto-{0}.tar.gz'
+
+ return url.format(version)
diff --git a/var/spack/repos/builtin/packages/xcb-util-cursor/package.py b/var/spack/repos/builtin/packages/xcb-util-cursor/package.py
index 6b241c46c7..85d5203e5d 100644
--- a/var/spack/repos/builtin/packages/xcb-util-cursor/package.py
+++ b/var/spack/repos/builtin/packages/xcb-util-cursor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,4 +23,5 @@ class XcbUtilCursor(AutotoolsPackage):
depends_on('xcb-util-renderutil')
depends_on('xcb-util-image')
+ depends_on('m4', type='build')
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/xcb-util-errors/package.py b/var/spack/repos/builtin/packages/xcb-util-errors/package.py
index e861511d33..da09925c43 100644
--- a/var/spack/repos/builtin/packages/xcb-util-errors/package.py
+++ b/var/spack/repos/builtin/packages/xcb-util-errors/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,5 +21,5 @@ class XcbUtilErrors(AutotoolsPackage):
depends_on('libxcb@1.4:')
- depends_on('xcb-proto', type='build')
+ depends_on('xcb-proto')
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/xcb-util-image/package.py b/var/spack/repos/builtin/packages/xcb-util-image/package.py
index e9b341e259..46442ba19f 100644
--- a/var/spack/repos/builtin/packages/xcb-util-image/package.py
+++ b/var/spack/repos/builtin/packages/xcb-util-image/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -22,5 +22,5 @@ class XcbUtilImage(AutotoolsPackage):
depends_on('libxcb@1.4:')
depends_on('xcb-util')
- depends_on('xproto@7.0.8:', type='build')
+ depends_on('xproto@7.0.8:')
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/xcb-util-keysyms/package.py b/var/spack/repos/builtin/packages/xcb-util-keysyms/package.py
index 5b51fe0fe5..e214fcaad4 100644
--- a/var/spack/repos/builtin/packages/xcb-util-keysyms/package.py
+++ b/var/spack/repos/builtin/packages/xcb-util-keysyms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,5 +21,5 @@ class XcbUtilKeysyms(AutotoolsPackage):
depends_on('libxcb@1.4:')
- depends_on('xproto@7.0.8:', type='build')
+ depends_on('xproto@7.0.8:')
depends_on('pkgconfig', type='build')
diff --git a/var/spack/repos/builtin/packages/xcb-util-renderutil/package.py b/var/spack/repos/builtin/packages/xcb-util-renderutil/package.py
index 864fa51989..c72bb75f1e 100644
--- a/var/spack/repos/builtin/packages/xcb-util-renderutil/package.py
+++ b/var/spack/repos/builtin/packages/xcb-util-renderutil/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xcb-util-wm/package.py b/var/spack/repos/builtin/packages/xcb-util-wm/package.py
index 8e1f8d764f..c19caa0831 100644
--- a/var/spack/repos/builtin/packages/xcb-util-wm/package.py
+++ b/var/spack/repos/builtin/packages/xcb-util-wm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xcb-util-xrm/package.py b/var/spack/repos/builtin/packages/xcb-util-xrm/package.py
index 0c0185f142..4ae58ac3ea 100644
--- a/var/spack/repos/builtin/packages/xcb-util-xrm/package.py
+++ b/var/spack/repos/builtin/packages/xcb-util-xrm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xcb-util/package.py b/var/spack/repos/builtin/packages/xcb-util/package.py
index 7b3f1b4a4a..470a8d74e8 100644
--- a/var/spack/repos/builtin/packages/xcb-util/package.py
+++ b/var/spack/repos/builtin/packages/xcb-util/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xcfun/package.py b/var/spack/repos/builtin/packages/xcfun/package.py
index 2e07c72819..fbb8f03e0d 100644
--- a/var/spack/repos/builtin/packages/xcfun/package.py
+++ b/var/spack/repos/builtin/packages/xcfun/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xclip/package.py b/var/spack/repos/builtin/packages/xclip/package.py
index 167ab66255..f3aff9f53b 100644
--- a/var/spack/repos/builtin/packages/xclip/package.py
+++ b/var/spack/repos/builtin/packages/xclip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xclipboard/package.py b/var/spack/repos/builtin/packages/xclipboard/package.py
index 7caf75a319..b1630ed5bd 100644
--- a/var/spack/repos/builtin/packages/xclipboard/package.py
+++ b/var/spack/repos/builtin/packages/xclipboard/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Xclipboard(AutotoolsPackage, XorgPackage):
CLIPBOARD selections for later use. It stores each CLIPBOARD
selection as a separate string, each of which can be selected."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xclipboard"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xclipboard"
xorg_mirror_path = "app/xclipboard-1.1.3.tar.gz"
version('1.1.3', sha256='a8c335cf166cbb27ff86569503db7e639f85741ad199bfb3ba45dd0cfda3da7f')
@@ -23,6 +23,6 @@ class Xclipboard(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxkbfile')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xclock/package.py b/var/spack/repos/builtin/packages/xclock/package.py
index 2e79e2f874..edcdf8df09 100644
--- a/var/spack/repos/builtin/packages/xclock/package.py
+++ b/var/spack/repos/builtin/packages/xclock/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Xclock(AutotoolsPackage, XorgPackage):
the time in analog or digital form, continuously updated at a
frequency which may be specified by the user."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xclock"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xclock"
xorg_mirror_path = "app/xclock-1.0.7.tar.gz"
version('1.0.7', sha256='e730bd575938d5628ef47003a9d4d41b882621798227f5d0c12f4a26365ed1b5')
@@ -24,6 +24,6 @@ class Xclock(AutotoolsPackage, XorgPackage):
depends_on('libxkbfile')
depends_on('libxt')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xcmiscproto/package.py b/var/spack/repos/builtin/packages/xcmiscproto/package.py
index 312b144e9b..87f9145188 100644
--- a/var/spack/repos/builtin/packages/xcmiscproto/package.py
+++ b/var/spack/repos/builtin/packages/xcmiscproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Xcmiscproto(AutotoolsPackage, XorgPackage):
This extension defines a protocol that provides Xlib two ways to query
the server for available resource IDs."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/xcmiscproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/xcmiscproto"
xorg_mirror_path = "proto/xcmiscproto-1.2.2.tar.gz"
version('1.2.2', sha256='48013cfbe4bd5580925a854a43e2bccbb4c7a5a31128070644617b6dc7f8ef85')
diff --git a/var/spack/repos/builtin/packages/xcmsdb/package.py b/var/spack/repos/builtin/packages/xcmsdb/package.py
index 98c8711766..b3a0d5b3aa 100644
--- a/var/spack/repos/builtin/packages/xcmsdb/package.py
+++ b/var/spack/repos/builtin/packages/xcmsdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Xcmsdb(AutotoolsPackage, XorgPackage):
specified in section 7, Device Color Characterization, of the
X11 Inter-Client Communication Conventions Manual (ICCCM)."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xcmsdb"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xcmsdb"
xorg_mirror_path = "app/xcmsdb-1.0.5.tar.gz"
version('1.0.5', sha256='8442352ee5eb3ea0d3a489c26d734e784ef6964150c2a173401d0dc6638ca236')
diff --git a/var/spack/repos/builtin/packages/xcompmgr/package.py b/var/spack/repos/builtin/packages/xcompmgr/package.py
index c2574230fa..1776227dcc 100644
--- a/var/spack/repos/builtin/packages/xcompmgr/package.py
+++ b/var/spack/repos/builtin/packages/xcompmgr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Xcompmgr(AutotoolsPackage, XorgPackage):
XFIXES, DAMAGE, RENDER, and COMPOSITE extensions. It enables basic
eye-candy effects."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xcompmgr"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xcompmgr"
xorg_mirror_path = "app/xcompmgr-1.1.7.tar.gz"
version('1.1.7', sha256='ef4b23c370f99403bbd9b6227f8aa4edc3bc83fc6d57ee71f6f442397cef505a')
diff --git a/var/spack/repos/builtin/packages/xconsole/package.py b/var/spack/repos/builtin/packages/xconsole/package.py
index 1e20f7d5f4..64d5dab629 100644
--- a/var/spack/repos/builtin/packages/xconsole/package.py
+++ b/var/spack/repos/builtin/packages/xconsole/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xconsole(AutotoolsPackage, XorgPackage):
"""xconsole displays in a X11 window the messages which are usually sent
to /dev/console."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xconsole"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xconsole"
xorg_mirror_path = "app/xconsole-1.0.6.tar.gz"
version('1.0.6', sha256='28151453a0a687462516de133bac0287b488a2ff56da78331fee34bc1bf3e7d5')
diff --git a/var/spack/repos/builtin/packages/xcursor-themes/package.py b/var/spack/repos/builtin/packages/xcursor-themes/package.py
index f5767be36c..bce2792562 100644
--- a/var/spack/repos/builtin/packages/xcursor-themes/package.py
+++ b/var/spack/repos/builtin/packages/xcursor-themes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class XcursorThemes(Package, XorgPackage):
originally created for the XFree86 Project, and now shipped as part
of the X.Org software distribution."""
- homepage = "http://cgit.freedesktop.org/xorg/data/cursors"
+ homepage = "https://cgit.freedesktop.org/xorg/data/cursors"
xorg_mirror_path = "data/xcursor-themes-1.0.4.tar.gz"
version('1.0.4', sha256='8ed23bab13a4010fe4e95b37eefb634e31ac7cb8240b8b3b7d919c3a2db09503')
diff --git a/var/spack/repos/builtin/packages/xcursorgen/package.py b/var/spack/repos/builtin/packages/xcursorgen/package.py
index e9c1d9a499..a562972077 100644
--- a/var/spack/repos/builtin/packages/xcursorgen/package.py
+++ b/var/spack/repos/builtin/packages/xcursorgen/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xcursorgen(AutotoolsPackage, XorgPackage):
"""xcursorgen prepares X11 cursor sets for use with libXcursor."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xcursorgen"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xcursorgen"
xorg_mirror_path = "app/xcursorgen-1.0.6.tar.gz"
version('1.0.6', sha256='4559f2b6eaa93de4cb6968679cf40e39bcbe969b62ebf3ff84f6780f8048ef8c')
diff --git a/var/spack/repos/builtin/packages/xdbedizzy/package.py b/var/spack/repos/builtin/packages/xdbedizzy/package.py
index 3928dbb781..2781ac25ee 100644
--- a/var/spack/repos/builtin/packages/xdbedizzy/package.py
+++ b/var/spack/repos/builtin/packages/xdbedizzy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xdbedizzy(AutotoolsPackage, XorgPackage):
"""xdbedizzy is a demo of the X11 Double Buffer Extension (DBE)
creating a double buffered spinning scene."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xdbedizzy"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xdbedizzy"
xorg_mirror_path = "app/xdbedizzy-1.1.0.tar.gz"
version('1.1.0', sha256='810e88b087b76f8b5993db4fc5165de3e5d29b0d4bf0e893750ee408fc7a5c0a')
diff --git a/var/spack/repos/builtin/packages/xdelta/package.py b/var/spack/repos/builtin/packages/xdelta/package.py
index 43adf75c72..3d22858868 100644
--- a/var/spack/repos/builtin/packages/xdelta/package.py
+++ b/var/spack/repos/builtin/packages/xdelta/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xditview/package.py b/var/spack/repos/builtin/packages/xditview/package.py
index 2d45fe2a24..fcadbd360b 100644
--- a/var/spack/repos/builtin/packages/xditview/package.py
+++ b/var/spack/repos/builtin/packages/xditview/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xditview(AutotoolsPackage, XorgPackage):
"""xditview displays ditroff output on an X display."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xditview"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xditview"
xorg_mirror_path = "app/xditview-1.0.4.tar.gz"
version('1.0.4', sha256='73ad88cfc879edcc6ede65999c11d670da27575388126795d71f3ad60286d379')
diff --git a/var/spack/repos/builtin/packages/xdm/package.py b/var/spack/repos/builtin/packages/xdm/package.py
index d68445c02d..c7dc9b1183 100644
--- a/var/spack/repos/builtin/packages/xdm/package.py
+++ b/var/spack/repos/builtin/packages/xdm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xdm(AutotoolsPackage, XorgPackage):
"""X Display Manager / XDMCP server."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xdm"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xdm"
xorg_mirror_path = "app/xdm-1.1.11.tar.gz"
version('1.1.11', sha256='38c544a986143b1f24566c1a0111486b339b92224b927be78714eeeedca12a14')
diff --git a/var/spack/repos/builtin/packages/xdmf3/package.py b/var/spack/repos/builtin/packages/xdmf3/package.py
index 33c9e802b9..17b2084d0c 100644
--- a/var/spack/repos/builtin/packages/xdmf3/package.py
+++ b/var/spack/repos/builtin/packages/xdmf3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Xdmf3(CMakePackage):
codes and tools.
"""
- homepage = "http://xdmf.org"
+ homepage = "https://xdmf.org"
git = "https://gitlab.kitware.com/xdmf/xdmf.git"
# There is no official release of XDMF and development has largely ceased,
diff --git a/var/spack/repos/builtin/packages/xdotool/package.py b/var/spack/repos/builtin/packages/xdotool/package.py
index da918c32a7..539c332cd1 100644
--- a/var/spack/repos/builtin/packages/xdotool/package.py
+++ b/var/spack/repos/builtin/packages/xdotool/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xdpyinfo/package.py b/var/spack/repos/builtin/packages/xdpyinfo/package.py
index 6b16fed4e2..e9cc84dcdc 100644
--- a/var/spack/repos/builtin/packages/xdpyinfo/package.py
+++ b/var/spack/repos/builtin/packages/xdpyinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Xdpyinfo(AutotoolsPackage, XorgPackage):
and the server, and the different types of screens, visuals, and X11
protocol extensions that are available."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xdpyinfo"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xdpyinfo"
xorg_mirror_path = "app/xdpyinfo-1.3.2.tar.gz"
version('1.3.2', sha256='ef39935e8e9b328e54a85d6218d410d6939482da6058db1ee1b39749d98cbcf2')
@@ -24,9 +24,9 @@ class Xdpyinfo(AutotoolsPackage, XorgPackage):
depends_on('libxtst')
depends_on('libxcb')
- depends_on('xproto@7.0.22:', type='build')
- depends_on('recordproto', type='build')
- depends_on('inputproto', type='build')
- depends_on('fixesproto', type='build')
+ depends_on('xproto@7.0.22:')
+ depends_on('recordproto')
+ depends_on('inputproto')
+ depends_on('fixesproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xdriinfo/package.py b/var/spack/repos/builtin/packages/xdriinfo/package.py
index ce44860d61..c1d471ba22 100644
--- a/var/spack/repos/builtin/packages/xdriinfo/package.py
+++ b/var/spack/repos/builtin/packages/xdriinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xdriinfo(AutotoolsPackage, XorgPackage):
"""xdriinfo - query configuration information of X11 DRI drivers."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xdriinfo"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xdriinfo"
xorg_mirror_path = "app/xdriinfo-1.0.5.tar.gz"
version('1.0.5', sha256='e4e6abaa4591c540ab63133927a6cebf0a5f4d27dcd978878ab4a422d62a838e')
@@ -22,6 +22,6 @@ class Xdriinfo(AutotoolsPackage, XorgPackage):
depends_on('libxfixes')
depends_on('pcre')
- depends_on('glproto', type='build')
+ depends_on('glproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xedit/package.py b/var/spack/repos/builtin/packages/xedit/package.py
index be32863f04..967d144675 100644
--- a/var/spack/repos/builtin/packages/xedit/package.py
+++ b/var/spack/repos/builtin/packages/xedit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xerces-c/package.py b/var/spack/repos/builtin/packages/xerces-c/package.py
index d24ef904de..ba4a80a22b 100644
--- a/var/spack/repos/builtin/packages/xerces-c/package.py
+++ b/var/spack/repos/builtin/packages/xerces-c/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class XercesC(AutotoolsPackage):
"""Xerces-C++ is a validating XML parser written in a portable subset of
diff --git a/var/spack/repos/builtin/packages/xeus/package.py b/var/spack/repos/builtin/packages/xeus/package.py
index 756a130aa4..8f3c899a05 100644
--- a/var/spack/repos/builtin/packages/xeus/package.py
+++ b/var/spack/repos/builtin/packages/xeus/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,32 +13,52 @@ class Xeus(CMakePackage):
url = "https://github.com/QuantStack/xeus/archive/0.14.1.tar.gz"
git = "https://github.com/QuantStack/xeus.git"
+ maintainers = ['tomstitt']
+
version('develop', branch='master')
+ version('1.0.4', sha256='7324ff013eb97d579fd3b6f9770a13f8863d6046c8bbcdbe2fc7d2ac02f0161f')
version('0.15.0', sha256='bc99235b24d5757dc129f3ed531501fb0d0667913927ed39ee24281952649183')
version('0.14.1', sha256='a6815845d4522ec279f142d3b4e92ef52cd80847b512146a65f256a77e058cfe')
variant('examples', default=False, description="Build examples")
+ variant('shared', default=True, description="Build shared libraries")
conflicts('%gcc@:4.8')
conflicts('%clang@:3.6')
conflicts('%intel@:17')
depends_on('libzmq@4.2.5:-libsodium')
- depends_on('cppzmq@4.3.0:')
- depends_on('cryptopp@7.0.0:')
- depends_on('xtl@0.4.0:')
- depends_on('nlohmann-json@3.2.0', when='@develop,0.15.0:')
+ depends_on('cppzmq@4.7.1:', when='@1.0.4:')
+ depends_on('cppzmq@4.3.0:', when='@:0.15.0')
+
+ depends_on('cryptopp@7.0.0:', when='@:0.15.0')
+
+ depends_on('openssl@1.0.1:', when='@1.0.4:')
+
+ depends_on('xtl@0.4.0:', when='@:0.15.0')
+ depends_on('xtl@0.7.0:0.7.999', when='@1.0.4:')
+
+ depends_on('nlohmann-json@3.4.0:', when='@1.0.4:')
+ depends_on('nlohmann-json@3.2.0', when='@0.15.0')
depends_on('nlohmann-json@3.1.1', when='@0.14.1')
- depends_on('libuuid')
+
+ depends_on('uuid', when='platform=linux')
# finds cryptopp not built with cmake, removes c++17 attribute
# in check_cxx_source_compiles
- patch('cmake_find_cryptopp_and_check_cxx_compatibility.patch')
+ patch('cmake_find_cryptopp_and_check_cxx_compatibility.patch', when='@:0.15.0')
def cmake_args(self):
- args = [
- '-DBUILD_EXAMPLES:BOOL=%s' % (
- 'ON' if '+examples' in self.spec else 'OFF')
- ]
+ args = []
+
+ if "@:0.15.0" in self.spec:
+ args.append(self.define_from_variant('BUILD_EXAMPLES', 'examples'))
+
+ elif "@1.0.4:" in self.spec:
+ args.extend([
+ self.define_from_variant('XEUS_BUILD_SHARED_LIBS', 'shared'),
+ self.define('XEUS_BUILD_TESTS', self.run_tests),
+ self.define('XEUS_DOWNLOAD_GTEST', self.run_tests)
+ ])
return args
diff --git a/var/spack/repos/builtin/packages/xev/package.py b/var/spack/repos/builtin/packages/xev/package.py
index 462efcf883..c4dba1e4db 100644
--- a/var/spack/repos/builtin/packages/xev/package.py
+++ b/var/spack/repos/builtin/packages/xev/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,7 +15,7 @@ class Xev(AutotoolsPackage, XorgPackage):
debugging and development tool, and should not be needed in normal
usage."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xev"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xev"
xorg_mirror_path = "app/xev-1.2.2.tar.gz"
version('1.2.2', sha256='e4c0c7b6f411e8b9731f2bb10d729d167bd00480d172c28b62607a6ea9e45c57')
@@ -23,6 +23,6 @@ class Xev(AutotoolsPackage, XorgPackage):
depends_on('libxrandr@1.2:')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xextproto/package.py b/var/spack/repos/builtin/packages/xextproto/package.py
index e0a187d2d2..f7af7b1391 100644
--- a/var/spack/repos/builtin/packages/xextproto/package.py
+++ b/var/spack/repos/builtin/packages/xextproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xextproto(AutotoolsPackage, XorgPackage):
"""X Protocol Extensions."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/xextproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/xextproto"
xorg_mirror_path = "proto/xextproto-7.3.0.tar.gz"
version('7.3.0', sha256='1b1bcdf91221e78c6c33738667a57bd9aaa63d5953174ad8ed9929296741c9f5')
diff --git a/var/spack/repos/builtin/packages/xeyes/package.py b/var/spack/repos/builtin/packages/xeyes/package.py
index 0d7e94fb28..af7c005038 100644
--- a/var/spack/repos/builtin/packages/xeyes/package.py
+++ b/var/spack/repos/builtin/packages/xeyes/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xeyes(AutotoolsPackage, XorgPackage):
"""xeyes - a follow the mouse X demo, using the X SHAPE extension"""
- homepage = "http://cgit.freedesktop.org/xorg/app/xeyes"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xeyes"
xorg_mirror_path = "app/xeyes-1.1.1.tar.gz"
version('1.1.1', sha256='3a1871a560ab87c72a2e2ecb7fd582474448faec3e254c9bd8bead428ab1bca3')
diff --git a/var/spack/repos/builtin/packages/xf86bigfontproto/package.py b/var/spack/repos/builtin/packages/xf86bigfontproto/package.py
index c1dff58458..547f95da5e 100644
--- a/var/spack/repos/builtin/packages/xf86bigfontproto/package.py
+++ b/var/spack/repos/builtin/packages/xf86bigfontproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xf86dga/package.py b/var/spack/repos/builtin/packages/xf86dga/package.py
index 1d2ba4f5c0..928743163c 100644
--- a/var/spack/repos/builtin/packages/xf86dga/package.py
+++ b/var/spack/repos/builtin/packages/xf86dga/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xf86dga(AutotoolsPackage, XorgPackage):
"""dga is a simple test client for the XFree86-DGA extension."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xf86dga"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xf86dga"
xorg_mirror_path = "app/xf86dga-1.0.3.tar.gz"
version('1.0.3', sha256='acbf89f60a99b18c161d2beb0e4145a0fdf6c516f7f45fa52e547d88491f75c9')
diff --git a/var/spack/repos/builtin/packages/xf86dgaproto/package.py b/var/spack/repos/builtin/packages/xf86dgaproto/package.py
index 18c1b7d205..afac3a85ec 100644
--- a/var/spack/repos/builtin/packages/xf86dgaproto/package.py
+++ b/var/spack/repos/builtin/packages/xf86dgaproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xf86driproto/package.py b/var/spack/repos/builtin/packages/xf86driproto/package.py
index 45124af03a..de9d15b685 100644
--- a/var/spack/repos/builtin/packages/xf86driproto/package.py
+++ b/var/spack/repos/builtin/packages/xf86driproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,7 +13,7 @@ class Xf86driproto(AutotoolsPackage, XorgPackage):
the video hardware without requiring data to be passed through the X
server."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/xf86driproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/xf86driproto"
xorg_mirror_path = "proto/xf86driproto-2.1.1.tar.gz"
version('2.1.1', sha256='18ff8de129b89fa24a412a1ec1799f8687f96c186c655b44b1a714a3a5d15d6c')
diff --git a/var/spack/repos/builtin/packages/xf86miscproto/package.py b/var/spack/repos/builtin/packages/xf86miscproto/package.py
index da62b39064..9ffe00442f 100644
--- a/var/spack/repos/builtin/packages/xf86miscproto/package.py
+++ b/var/spack/repos/builtin/packages/xf86miscproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Xf86miscproto(AutotoolsPackage, XorgPackage):
supported by the XFree86 X server and versions of the Xorg X server
prior to Xorg 1.6."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/xf86miscproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/xf86miscproto"
xorg_mirror_path = "proto/xf86miscproto-0.9.3.tar.gz"
version('0.9.3', sha256='1b05cb76ac165c703b82bdd270b86ebbc4d42a7d04d299050b07ba2099c31352')
diff --git a/var/spack/repos/builtin/packages/xf86rushproto/package.py b/var/spack/repos/builtin/packages/xf86rushproto/package.py
index 5ace6998b1..2b34016963 100644
--- a/var/spack/repos/builtin/packages/xf86rushproto/package.py
+++ b/var/spack/repos/builtin/packages/xf86rushproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py b/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py
index 74c0fc06bd..7d5712a745 100644
--- a/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py
+++ b/var/spack/repos/builtin/packages/xf86vidmodeproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Xf86vidmodeproto(AutotoolsPackage, XorgPackage):
This extension defines a protocol for dynamically configuring modelines
and gamma."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/xf86vidmodeproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/xf86vidmodeproto"
xorg_mirror_path = "proto/xf86vidmodeproto-2.3.1.tar.gz"
version('2.3.1', sha256='c3512b11cefa7558576551f8582c6e7071c8a24d78176059d94b84b48b262979')
diff --git a/var/spack/repos/builtin/packages/xfd/package.py b/var/spack/repos/builtin/packages/xfd/package.py
index 3760f44ae9..a29cd05bc3 100644
--- a/var/spack/repos/builtin/packages/xfd/package.py
+++ b/var/spack/repos/builtin/packages/xfd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xfd(AutotoolsPackage, XorgPackage):
"""xfd - display all the characters in a font using either the
X11 core protocol or libXft2."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xfd"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xfd"
xorg_mirror_path = "app/xfd-1.1.2.tar.gz"
version('1.1.3', sha256='4a1bd18f324c239b1a807ed4ccaeb172ba771d65a7307fb492d8dd8d27f01527')
@@ -24,7 +24,7 @@ class Xfd(AutotoolsPackage, XorgPackage):
depends_on('libxmu')
depends_on('libxt')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xfindproxy/package.py b/var/spack/repos/builtin/packages/xfindproxy/package.py
index 68b4847a39..a0a49bde36 100644
--- a/var/spack/repos/builtin/packages/xfindproxy/package.py
+++ b/var/spack/repos/builtin/packages/xfindproxy/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Xfindproxy(AutotoolsPackage, XorgPackage):
services, starts new proxies when necessary, and makes sure that
proxies are shared whenever possible."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xfindproxy"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xfindproxy"
xorg_mirror_path = "app/xfindproxy-1.0.4.tar.gz"
version('1.0.4', sha256='fa6152fcf9c16fbb2ef52259731df5df899a39a86894b0508456613f26ff924a')
@@ -22,7 +22,7 @@ class Xfindproxy(AutotoolsPackage, XorgPackage):
depends_on('libice')
depends_on('libxt')
- depends_on('xproto', type='build')
- depends_on('xproxymanagementprotocol', type='build')
+ depends_on('xproto')
+ depends_on('xproxymanagementprotocol')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xfontsel/package.py b/var/spack/repos/builtin/packages/xfontsel/package.py
index 758631f82b..4cc6360663 100644
--- a/var/spack/repos/builtin/packages/xfontsel/package.py
+++ b/var/spack/repos/builtin/packages/xfontsel/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Xfontsel(AutotoolsPackage, XorgPackage):
protocol fonts known to your X server, examine samples of each, and
retrieve the X Logical Font Description ("XLFD") full name for a font."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xfontsel"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xfontsel"
xorg_mirror_path = "app/xfontsel-1.0.5.tar.gz"
version('1.0.5', sha256='9b3ad0cc274398d22be9fa7efe930f4e3749fd4b1b61d9c31a7fb6c1f1ff766e')
diff --git a/var/spack/repos/builtin/packages/xforms/package.py b/var/spack/repos/builtin/packages/xforms/package.py
new file mode 100644
index 0000000000..ad2a48df93
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xforms/package.py
@@ -0,0 +1,26 @@
+# Copyright 2013-2021 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 Xforms(AutotoolsPackage):
+ """This is the Free Software distribution of the XForms Library, a
+ graphical user interface toolkit for X Window Systems."""
+
+ homepage = "https://www.nongnu.org/xforms/"
+ url = "http://download.savannah.gnu.org/releases/xforms/xforms-1.0.91.tar.gz"
+
+ version('1.2.4', sha256='78cc6b07071bbeaa1f906e0a22d5e9980e48f8913577bc082d661afe5cb75696')
+ version('1.2.3', sha256='7989b39598c769820ad451ad91e5cb0de29946940c8240aac94ca8238c2def61')
+ version('1.0.91', sha256='88684237c77489bcb1fbc9a794621a2919aa800e1c0a6d83d679b97980e3441d')
+
+ depends_on('libx11', type='link')
+ depends_on('libxpm', type='link')
+ depends_on('jpeg', type='link')
+
+ def configure_args(self):
+ args = ['--enable-static']
+ return args
diff --git a/var/spack/repos/builtin/packages/xfs/package.py b/var/spack/repos/builtin/packages/xfs/package.py
index ead61d320b..a783143bcc 100644
--- a/var/spack/repos/builtin/packages/xfs/package.py
+++ b/var/spack/repos/builtin/packages/xfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xfs(AutotoolsPackage, XorgPackage):
"""X Font Server."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xfs"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xfs"
xorg_mirror_path = "app/xfs-1.1.4.tar.gz"
version('1.1.4', sha256='28f89b854d1ff14fa1efa5b408e5e1c4f6a145420310073c4e44705feeb6d23b')
@@ -17,8 +17,8 @@ class Xfs(AutotoolsPackage, XorgPackage):
depends_on('libxfont@1.4.5:')
depends_on('font-util')
- depends_on('xproto@7.0.17:', type='build')
- depends_on('fontsproto', type='build')
- depends_on('xtrans', type='build')
+ depends_on('xproto@7.0.17:')
+ depends_on('fontsproto')
+ depends_on('xtrans')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xfsdump/package.py b/var/spack/repos/builtin/packages/xfsdump/package.py
new file mode 100644
index 0000000000..ea2fd28f6c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xfsdump/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2021 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 Xfsdump(MakefilePackage):
+ """XFS Dump Tools."""
+
+ homepage = "https://github.com/pcacjr/xfsdump"
+ url = "https://github.com/pcacjr/xfsdump/archive/v3.1.6.tar.gz"
+
+ version('3.1.6', sha256='bbf659758107cad9b41cf3001df121e6428485b341109a1f1a952fd477a7010b')
+ version('3.1.5', sha256='ba5bb91413ccb5a0eaffaa84f242baa08520a09f7b990b28bbd0d33a4390f7b6')
+ version('3.1.4', sha256='a75d5c7dabd3dd4184008efcfd30d0c96b6ab318edaad9659ce180dfb9652b01')
+
+ depends_on('gettext')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+ depends_on('util-linux')
+ depends_on('attr')
+ depends_on('xfsprogs@:4.20.0')
+
+ def setup_build_environment(self, env):
+ env.append_flags('LDFLAGS', '-lintl')
+
+ def build(self, spec, prefix):
+ make('prefix={0}'.format(self.prefix),
+ 'MSGFMT={0}'.format(self.spec['gettext'].prefix.bin.msgfmt),
+ 'MSGMERGE={0}'.format(self.spec['gettext'].prefix.bin.msgmerge),
+ 'XGETTEXT={0}'.format(self.spec['gettext'].prefix.bin.xgettext))
+
+ def install(self, spec, prefix):
+ make('prefix={0}'.format(self.prefix),
+ 'MSGFMT={0}'.format(self.spec['gettext'].prefix.bin.msgfmt),
+ 'MSGMERGE={0}'.format(self.spec['gettext'].prefix.bin.msgmerge),
+ 'XGETTEXT={0}'.format(self.spec['gettext'].prefix.bin.xgettext),
+ 'install')
+
+ def setup_run_environment(self, env):
+ env.prepend_path('PATH', self.prefix.sbin)
diff --git a/var/spack/repos/builtin/packages/xfsinfo/package.py b/var/spack/repos/builtin/packages/xfsinfo/package.py
index 72235c2c98..ce21c9a231 100644
--- a/var/spack/repos/builtin/packages/xfsinfo/package.py
+++ b/var/spack/repos/builtin/packages/xfsinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,13 +13,13 @@ class Xfsinfo(AutotoolsPackage, XorgPackage):
clients and the server, and the font catalogues and alternate servers
that are available."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xfsinfo"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xfsinfo"
xorg_mirror_path = "app/xfsinfo-1.0.5.tar.gz"
version('1.0.5', sha256='56a0492ed2cde272dc8f4cff4ba0970ccb900e51c10bb8ec62747483d095fd69')
depends_on('libfs')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xfsprogs/package.py b/var/spack/repos/builtin/packages/xfsprogs/package.py
index 8d9b290e63..b35860a8d0 100644
--- a/var/spack/repos/builtin/packages/xfsprogs/package.py
+++ b/var/spack/repos/builtin/packages/xfsprogs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,24 +9,36 @@ from spack import *
class Xfsprogs(AutotoolsPackage):
"""XFS User Tools."""
- homepage = "http://oss.sgi.com/projects/xfs/"
+ homepage = "https://github.com/mtanski/xfsprogs"
url = "http://kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-4.17.0.tar.xz"
- version('5.8.0', sha256='8ef46ed9e6bb927f407f541dc4324857c908ddf1374265edc910d23724048c6b')
- version('5.7.0', sha256='8f2348a68a686a3f4491dda5d62dd32d885fbc52d32875edd41e2c296e7b4f35')
- version('5.6.0', sha256='0aba2aac5d80d07646dde868437fc337af2c7326edadcc6d6a7c0bfd3190c1e6')
+ version('5.11.0', sha256='0e9c390fcdbb8a79e1b8f5e6e25fd529fc9f9c2ef8f2d5e647b3556b82d1b353')
+ version('5.8.0', sha256='8ef46ed9e6bb927f407f541dc4324857c908ddf1374265edc910d23724048c6b')
+ version('5.7.0', sha256='8f2348a68a686a3f4491dda5d62dd32d885fbc52d32875edd41e2c296e7b4f35')
+ version('5.6.0', sha256='0aba2aac5d80d07646dde868437fc337af2c7326edadcc6d6a7c0bfd3190c1e6')
version('4.20.0', sha256='beafdfd080352a8c9d543491e0874d0e8809cb643a3b9d352d5feed38d77022a')
+ depends_on('libinih')
depends_on('gettext')
+ depends_on('uuid')
depends_on('util-linux')
+ def flag_handler(self, name, flags):
+ iflags = []
+ if name == 'cflags':
+ if self.spec.satisfies('@:5.4.0 %gcc@10:'):
+ iflags.append('-fcommon')
+ return (iflags, None, flags)
+
def setup_build_environment(self, env):
env.append_path('C_INCLUDE_PATH',
self.spec['util-linux'].prefix.include.blkid)
def configure_args(self):
- args = ['LDFLAGS=-lintl']
+ args = ['LDFLAGS=-lintl',
+ "--with-systemd-unit-dir=" +
+ self.spec['xfsprogs'].prefix.lib.systemd.system]
return args
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/xfwp/package.py b/var/spack/repos/builtin/packages/xfwp/package.py
index 7f57aa91c4..0f8493c077 100644
--- a/var/spack/repos/builtin/packages/xfwp/package.py
+++ b/var/spack/repos/builtin/packages/xfwp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,15 +9,15 @@ from spack import *
class Xfwp(AutotoolsPackage, XorgPackage):
"""xfwp proxies X11 protocol connections, such as through a firewall."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xfwp"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xfwp"
xorg_mirror_path = "app/xfwp-1.0.3.tar.gz"
version('1.0.3', sha256='6fe243bde0374637e271a3f038b5d6d79a04621fc18162727782392069c5c04d')
depends_on('libice')
- depends_on('xproto', type='build')
- depends_on('xproxymanagementprotocol', type='build')
+ depends_on('xproto')
+ depends_on('xproxymanagementprotocol')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xgamma/package.py b/var/spack/repos/builtin/packages/xgamma/package.py
index c5971fccfd..d80412b142 100644
--- a/var/spack/repos/builtin/packages/xgamma/package.py
+++ b/var/spack/repos/builtin/packages/xgamma/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xgamma(AutotoolsPackage, XorgPackage):
"""xgamma allows X users to query and alter the gamma correction of a
monitor via the X video mode extension (XFree86-VidModeExtension)."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xgamma"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xgamma"
xorg_mirror_path = "app/xgamma-1.0.6.tar.gz"
version('1.0.6', sha256='66da1d67e84146518b69481c6283c5d8f1027ace9ff7e214d3f81954842e796a')
@@ -18,6 +18,6 @@ class Xgamma(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxxf86vm')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xgboost/package.py b/var/spack/repos/builtin/packages/xgboost/package.py
index 15cdbb763e..5b9476faf6 100644
--- a/var/spack/repos/builtin/packages/xgboost/package.py
+++ b/var/spack/repos/builtin/packages/xgboost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,25 +7,49 @@ from spack import *
class Xgboost(CMakePackage, CudaPackage):
- """Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM)
- Library, for Python, R, Java, Scala, C++ and more. Runs on single
- machine, Hadoop, Spark, Flink and DataFlow"""
+ """XGBoost is an optimized distributed gradient boosting library designed to be
+ highly efficient, flexible and portable. It implements machine learning algorithms
+ under the Gradient Boosting framework. XGBoost provides a parallel tree boosting
+ (also known as GBDT, GBM) that solve many data science problems in a fast and
+ accurate way. The same code runs on major distributed environment (Hadoop, SGE, MPI)
+ and can solve problems beyond billions of examples."""
homepage = "https://xgboost.ai/"
- url = "https://github.com/dmlc/xgboost/releases/download/v0.81/xgboost-0.81.tar.bz2"
git = "https://github.com/dmlc/xgboost.git"
- version('0.90', tag='v0.90', submodules=True)
- version('0.81', sha256='9d8ff161699111d45c96bd15229aa6d80eb1cab7cbbef7e8eaa60ccfb5a4f806')
+ maintainers = ['adamjstewart']
+
+ version('master', branch='master', submodules=True)
+ version('1.3.3', tag='v1.3.3', submodules=True)
+ version('0.90', tag='v0.90', submodules=True, deprecated=True)
+ version('0.81', tag='v0.81', submodules=True, deprecated=True)
+
+ variant('nccl', default=False, description='Build with NCCL to enable distributed GPU support')
+ variant('openmp', default=True, description='Build with OpenMP support')
+
+ depends_on('cmake@3.13:', type='build')
+ depends_on('cmake@3.16:', when='platform=darwin', type='build')
+ depends_on('ninja', type='build')
+ depends_on('cuda@10:', when='+cuda')
+ depends_on('nccl', when='+nccl')
+ depends_on('llvm-openmp', when='%apple-clang +openmp')
+
+ conflicts('%gcc@:4.999', msg='GCC version must be at least 5.0!')
+ conflicts('+nccl', when='~cuda', msg='NCCL requires CUDA')
+ conflicts('+cuda', when='~openmp', msg='CUDA requires OpenMP')
+
+ generator = 'Ninja'
def cmake_args(self):
- return [
- '-DUSE_CUDA={0}'.format('YES' if '+cuda' in self.spec else 'NO')
+ # https://xgboost.readthedocs.io/en/latest/build.html
+ args = [
+ self.define_from_variant('USE_CUDA', 'cuda'),
+ self.define_from_variant('USE_NCCL', 'nccl'),
+ self.define_from_variant('USE_OPENMP', 'openmp'),
]
- def install(self, spec, prefix):
- install_tree(str(self.stage.source_path), prefix)
- # create a bin directory for executable "xgboost" which is possibly
- # used in functional testing of the compilation target "libxgboost"
- mkdirp(prefix.bin)
- install('xgboost', prefix.bin)
+ if '+cuda' in self.spec and 'cuda_arch=none' not in self.spec:
+ args.append(self.define(
+ 'GPU_COMPUTE_VER', self.spec.variants['cuda_arch'].value))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/xgc/package.py b/var/spack/repos/builtin/packages/xgc/package.py
index 9516216a38..754d21c846 100644
--- a/var/spack/repos/builtin/packages/xgc/package.py
+++ b/var/spack/repos/builtin/packages/xgc/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xgc(AutotoolsPackage, XorgPackage):
"""xgc is an X11 graphics demo that shows various features of the X11
core protocol graphics primitives."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xgc"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xgc"
xorg_mirror_path = "app/xgc-1.0.5.tar.gz"
version('1.0.5', sha256='16645fb437699bad2360f36f54f42320e33fce5a0ab9a086f6e0965963205b02')
diff --git a/var/spack/repos/builtin/packages/xhmm/package.py b/var/spack/repos/builtin/packages/xhmm/package.py
index bff123a68a..0043311129 100644
--- a/var/spack/repos/builtin/packages/xhmm/package.py
+++ b/var/spack/repos/builtin/packages/xhmm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xhost/package.py b/var/spack/repos/builtin/packages/xhost/package.py
index 20fd613407..588331c9f4 100644
--- a/var/spack/repos/builtin/packages/xhost/package.py
+++ b/var/spack/repos/builtin/packages/xhost/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xhost(AutotoolsPackage, XorgPackage):
"""xhost is used to manage the list of host names or user names
allowed to make connections to the X server."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xhost"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xhost"
xorg_mirror_path = "app/xhost-1.0.7.tar.gz"
version('1.0.7', sha256='8dd1b6245dfbdef45a64a18ea618f233f77432c2f30881b1db9dc40d510d9490')
@@ -19,6 +19,6 @@ class Xhost(AutotoolsPackage, XorgPackage):
depends_on('libxmu')
depends_on('libxau')
- depends_on('xproto@7.0.22:', type='build')
+ depends_on('xproto@7.0.22:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xineramaproto/package.py b/var/spack/repos/builtin/packages/xineramaproto/package.py
index 85e73cadbc..b3daa1b24f 100644
--- a/var/spack/repos/builtin/packages/xineramaproto/package.py
+++ b/var/spack/repos/builtin/packages/xineramaproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Xineramaproto(AutotoolsPackage, XorgPackage):
This is an X extension that allows multiple physical screens controlled
by a single X server to appear as a single screen."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/xineramaproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/xineramaproto"
xorg_mirror_path = "proto/xineramaproto-1.2.1.tar.gz"
version('1.2.1', sha256='d99e121edf7b310008d7371ac5dbe3aa2810996d476b754dc78477cc26e5e7c1')
diff --git a/var/spack/repos/builtin/packages/xinit/package.py b/var/spack/repos/builtin/packages/xinit/package.py
index 92536ee22a..086351e250 100644
--- a/var/spack/repos/builtin/packages/xinit/package.py
+++ b/var/spack/repos/builtin/packages/xinit/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,13 +11,13 @@ class Xinit(AutotoolsPackage, XorgPackage):
first client program on systems that are not using a display manager
such as xdm."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xinit"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xinit"
xorg_mirror_path = "app/xinit-1.3.4.tar.gz"
version('1.3.4', sha256='754c284875defa588951c1d3d2b20897d3b84918d0a97cb5a4724b00c0da0746')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xinput/package.py b/var/spack/repos/builtin/packages/xinput/package.py
index 09c1263377..3003be5582 100644
--- a/var/spack/repos/builtin/packages/xinput/package.py
+++ b/var/spack/repos/builtin/packages/xinput/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xinput(AutotoolsPackage, XorgPackage):
"""xinput is a utility to configure and test XInput devices."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xinput"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xinput"
xorg_mirror_path = "app/xinput-1.6.2.tar.gz"
version('1.6.2', sha256='2c8ca5ff2a8703cb7d898629a4311db720dbd30d0c162bfe37f18849a727bd42')
@@ -20,9 +20,9 @@ class Xinput(AutotoolsPackage, XorgPackage):
depends_on('libxrandr')
depends_on('libxinerama')
- depends_on('inputproto@2.1.99.1:', type='build')
- depends_on('fixesproto', type='build')
- depends_on('randrproto', type='build')
- depends_on('xineramaproto', type='build')
+ depends_on('inputproto@2.1.99.1:')
+ depends_on('fixesproto')
+ depends_on('randrproto')
+ depends_on('xineramaproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xios/package.py b/var/spack/repos/builtin/packages/xios/package.py
index 2b5c6f9dae..4670588ae8 100644
--- a/var/spack/repos/builtin/packages/xios/package.py
+++ b/var/spack/repos/builtin/packages/xios/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
+
#
from spack import *
-import os
class Xios(Package):
@@ -113,7 +114,7 @@ OASIS_LIB=""
param['LIBCXX'] = '-lstdc++'
if any(map(spec.satisfies,
- ('%gcc', '%intel', '%apple-clang', '%clang'))):
+ ('%gcc', '%intel', '%apple-clang', '%clang', '%fj'))):
text = r"""
%CCOMPILER {MPICXX}
%FCOMPILER {MPIFC}
diff --git a/var/spack/repos/builtin/packages/xkbcomp/package.py b/var/spack/repos/builtin/packages/xkbcomp/package.py
index ef994a8cac..be3b9237d3 100644
--- a/var/spack/repos/builtin/packages/xkbcomp/package.py
+++ b/var/spack/repos/builtin/packages/xkbcomp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -17,12 +17,13 @@ class Xkbcomp(AutotoolsPackage, XorgPackage):
homepage = "https://www.x.org/wiki/XKB/"
xorg_mirror_path = "app/xkbcomp-1.3.1.tar.gz"
+ version('1.4.4', sha256='159fba6b62ef4a3fb16ef7fc4eb4fc26f3888652471ceb604c495783dda020bc')
version('1.3.1', sha256='018e83a922430652d4bc3f3db610d2296e618c76c9b3fbcdccde975aeb655749')
depends_on('libx11')
depends_on('libxkbfile')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('bison', type='build')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xkbdata/package.py b/var/spack/repos/builtin/packages/xkbdata/package.py
index 980e65a6b5..a0722dc996 100644
--- a/var/spack/repos/builtin/packages/xkbdata/package.py
+++ b/var/spack/repos/builtin/packages/xkbdata/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xkbevd/package.py b/var/spack/repos/builtin/packages/xkbevd/package.py
index 16cc0a7f60..8a4c6aaa37 100644
--- a/var/spack/repos/builtin/packages/xkbevd/package.py
+++ b/var/spack/repos/builtin/packages/xkbevd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xkbevd(AutotoolsPackage, XorgPackage):
"""XKB event daemon demo."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xkbevd"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xkbevd"
xorg_mirror_path = "app/xkbevd-1.1.4.tar.gz"
version('1.1.4', sha256='97dc2c19617da115c3d1183807338fa78c3fd074d8355d10a484f7b1c5b18459')
diff --git a/var/spack/repos/builtin/packages/xkbprint/package.py b/var/spack/repos/builtin/packages/xkbprint/package.py
index 207f56cea4..c54fd16f96 100644
--- a/var/spack/repos/builtin/packages/xkbprint/package.py
+++ b/var/spack/repos/builtin/packages/xkbprint/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xkbprint(AutotoolsPackage, XorgPackage):
"""xkbprint generates a printable or encapsulated PostScript description
of an XKB keyboard description."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xkbprint"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xkbprint"
xorg_mirror_path = "app/xkbprint-1.0.4.tar.gz"
version('1.0.4', sha256='169ebbf57fc8b7685c577c73a435998a38c27e0d135ce0a55fccc64cbebec768')
@@ -18,6 +18,6 @@ class Xkbprint(AutotoolsPackage, XorgPackage):
depends_on('libxkbfile')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xkbutils/package.py b/var/spack/repos/builtin/packages/xkbutils/package.py
index dad36cbdc1..effd9e0c15 100644
--- a/var/spack/repos/builtin/packages/xkbutils/package.py
+++ b/var/spack/repos/builtin/packages/xkbutils/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xkbutils(AutotoolsPackage, XorgPackage):
"""xkbutils is a collection of small utilities utilizing the XKeyboard
(XKB) extension to the X11 protocol."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xkbutils"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xkbutils"
xorg_mirror_path = "app/xkbutils-1.0.4.tar.gz"
version('1.0.4', sha256='cf31303cbdd6a86c34cab46f4b6e0c7acd2e84578593b334a146142894529bca')
@@ -19,7 +19,7 @@ class Xkbutils(AutotoolsPackage, XorgPackage):
depends_on('libxt')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
- depends_on('inputproto', type='build')
+ depends_on('xproto@7.0.17:')
+ depends_on('inputproto')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xkeyboard-config/package.py b/var/spack/repos/builtin/packages/xkeyboard-config/package.py
index 4db99a63b4..f8622e7067 100644
--- a/var/spack/repos/builtin/packages/xkeyboard-config/package.py
+++ b/var/spack/repos/builtin/packages/xkeyboard-config/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,7 +21,7 @@ class XkeyboardConfig(AutotoolsPackage, XorgPackage):
depends_on('libxslt', type='build')
depends_on('pkgconfig', type='build')
depends_on('intltool@0.30:', type='build')
- depends_on('xproto@7.0.20:', type='build')
+ depends_on('xproto@7.0.20:')
# TODO: missing dependencies
# xgettext
diff --git a/var/spack/repos/builtin/packages/xkill/package.py b/var/spack/repos/builtin/packages/xkill/package.py
index 4a80023038..69cb307d28 100644
--- a/var/spack/repos/builtin/packages/xkill/package.py
+++ b/var/spack/repos/builtin/packages/xkill/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Xkill(AutotoolsPackage, XorgPackage):
clients. This program is very dangerous, but is useful for aborting
programs that have displayed undesired windows on a user's screen."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xkill"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xkill"
xorg_mirror_path = "app/xkill-1.0.4.tar.gz"
version('1.0.4', sha256='f80115f2dcca3d4b61f3c28188752c21ca7b2718b54b6e0274c0497a7f827da0')
@@ -19,6 +19,6 @@ class Xkill(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxmu')
- depends_on('xproto@7.0.22:', type='build')
+ depends_on('xproto@7.0.22:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xlc/package.py b/var/spack/repos/builtin/packages/xlc/package.py
new file mode 100644
index 0000000000..59d65fe521
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xlc/package.py
@@ -0,0 +1,82 @@
+# Copyright 2013-2021 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)
+import collections
+import re
+
+import llnl.util.tty as tty
+
+import spack.compiler
+
+
+class Xlc(Package):
+ """IBM XL C/C++ is an advanced, high-performance compiler that can be
+ used for developing complex, computationally intensive programs, including
+ interlanguage calls with C and Fortran programs.
+ """
+
+ homepage = "https://www.ibm.com/support/knowledgecenter/SSXVZZ_16.1.1/com.ibm.compilers.linux.doc/welcome.html"
+
+ variant('r', default=True, description='The _r version of compilers')
+
+ def install(self, spec, prefix):
+ raise InstallError(
+ 'XL compilers are not installable yet, but can be '
+ 'detected on a system where they are supplied by vendor'
+ )
+
+ executables = [r'xlc', r'xlC', r'xlc\+\+']
+
+ @classmethod
+ def determine_version(cls, exe):
+ version_regex = re.compile(r'([0-9]?[0-9]\.[0-9])')
+ try:
+ output = spack.compiler.get_compiler_version_output(
+ exe, '-qversion'
+ )
+ # Exclude spurious Fortran compilers
+ if 'Fortran' in output:
+ return None
+
+ match = version_regex.search(output)
+ if match:
+ return match.group(1)
+ except spack.util.executable.ProcessError:
+ pass
+ except Exception as e:
+ tty.debug(str(e))
+
+ @classmethod
+ def determine_variants(cls, exes, version_str):
+ variants = collections.defaultdict(dict)
+ for exe in exes:
+ # Determine the variant of the spec
+ variant_str = '+r' if '_r' in exe else '~r'
+ if 'xlc++' in exe:
+ variants[variant_str]['cxx'] = exe
+ continue
+
+ if 'xlc' in exe:
+ variants[variant_str]['c'] = exe
+ continue
+
+ results = []
+ for variant_str, compilers in variants.items():
+ results.append((variant_str, {'compilers': compilers}))
+
+ return results
+
+ @property
+ def cc(self):
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers']['c']
+ msg = "cannot retrieve C compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
+
+ @property
+ def cxx(self):
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers']['cxx']
+ msg = "cannot retrieve C compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
diff --git a/var/spack/repos/builtin/packages/xlf/package.py b/var/spack/repos/builtin/packages/xlf/package.py
new file mode 100644
index 0000000000..6650b0487d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xlf/package.py
@@ -0,0 +1,70 @@
+# Copyright 2013-2021 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)
+import collections
+import os.path
+import re
+
+import llnl.util.tty as tty
+
+import spack.compiler
+
+
+class Xlf(Package):
+ """IBM XL Fortran is an advanced, high-performance compiler that can be
+ used for developing complex, computationally intensive programs, including
+ interlanguage calls with C and Fortran programs.
+ """
+
+ homepage = "https://www.ibm.com/support/knowledgecenter/SSXVZZ_16.1.1/com.ibm.compilers.linux.doc/welcome.html"
+
+ variant('r', default=True, description='The _r version of compilers')
+
+ def install(self, spec, prefix):
+ raise InstallError(
+ 'XL compilers are not installable yet, but can be '
+ 'detected on a system where they are supplied by vendor'
+ )
+
+ executables = [r'xlf']
+
+ @classmethod
+ def determine_version(cls, exe):
+ version_regex = re.compile(r'([0-9]?[0-9]\.[0-9])')
+ try:
+ output = spack.compiler.get_compiler_version_output(
+ exe, '-qversion'
+ )
+ match = version_regex.search(output)
+ if match:
+ return match.group(1)
+ except spack.util.executable.ProcessError:
+ pass
+ except Exception as e:
+ tty.debug(e)
+
+ @classmethod
+ def determine_variants(cls, exes, version_str):
+ variants = collections.defaultdict(dict)
+ for exe in exes:
+ if os.path.basename(exe) == 'xlf':
+ variants['~r']['fortran'] = exe
+ continue
+
+ if os.path.basename(exe) == 'xlf_r':
+ variants['+r']['fortran'] = exe
+ continue
+
+ results = []
+ for variant_str, compilers in variants.items():
+ results.append((variant_str, {'compilers': compilers}))
+
+ return results
+
+ @property
+ def fortran(self):
+ if self.spec.external:
+ return self.spec.extra_attributes['compilers']['fortran']
+ msg = "cannot retrieve C compiler [spec is not concrete]"
+ assert self.spec.concrete, msg
diff --git a/var/spack/repos/builtin/packages/xload/package.py b/var/spack/repos/builtin/packages/xload/package.py
index a898bb2dd7..33d881b143 100644
--- a/var/spack/repos/builtin/packages/xload/package.py
+++ b/var/spack/repos/builtin/packages/xload/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xload(AutotoolsPackage, XorgPackage):
"""xload displays a periodically updating histogram of the
system load average."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xload"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xload"
xorg_mirror_path = "app/xload-1.1.2.tar.gz"
version('1.1.2', sha256='4863ad339d22c41a0ca030dc5886404f5ae8b8c47cd5e09f0e36407edbdbe769')
@@ -20,6 +20,6 @@ class Xload(AutotoolsPackage, XorgPackage):
depends_on('libxt')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xlogo/package.py b/var/spack/repos/builtin/packages/xlogo/package.py
index 1f0b7528e4..d74cfb9e41 100644
--- a/var/spack/repos/builtin/packages/xlogo/package.py
+++ b/var/spack/repos/builtin/packages/xlogo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xlogo(AutotoolsPackage, XorgPackage):
"""The xlogo program simply displays the X Window System logo."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xlogo"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xlogo"
xorg_mirror_path = "app/xlogo-1.0.4.tar.gz"
version('1.0.4', sha256='0072eb3b41af77d5edfafb12998c7dd875f2795dc94735a998fd2ed8fc246e57')
diff --git a/var/spack/repos/builtin/packages/xlsatoms/package.py b/var/spack/repos/builtin/packages/xlsatoms/package.py
index 08439aae3d..d317731586 100644
--- a/var/spack/repos/builtin/packages/xlsatoms/package.py
+++ b/var/spack/repos/builtin/packages/xlsatoms/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xlsatoms(AutotoolsPackage, XorgPackage):
"""xlsatoms lists the interned atoms defined on an X11 server."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xlsatoms"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xlsatoms"
xorg_mirror_path = "app/xlsatoms-1.1.2.tar.gz"
version('1.1.2', sha256='5400e22211795e40c4c4d28a048250f92bfb8c373004f0e654a2ad3138c2b36d')
diff --git a/var/spack/repos/builtin/packages/xlsclients/package.py b/var/spack/repos/builtin/packages/xlsclients/package.py
index 930c628275..2542dcbb50 100644
--- a/var/spack/repos/builtin/packages/xlsclients/package.py
+++ b/var/spack/repos/builtin/packages/xlsclients/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xlsclients(AutotoolsPackage, XorgPackage):
"""xlsclients is a utility for listing information about the client
applications running on a X11 server."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xlsclients"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xlsclients"
xorg_mirror_path = "app/xlsclients-1.1.3.tar.gz"
version('1.1.3', sha256='4670a4003aae01e9172efb969246c3d8f33481f290aa8726ff50398c838e6994')
diff --git a/var/spack/repos/builtin/packages/xlsfonts/package.py b/var/spack/repos/builtin/packages/xlsfonts/package.py
index 5d01efe003..28de0bce59 100644
--- a/var/spack/repos/builtin/packages/xlsfonts/package.py
+++ b/var/spack/repos/builtin/packages/xlsfonts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,13 @@ class Xlsfonts(AutotoolsPackage, XorgPackage):
"""xlsfonts lists fonts available from an X server via the X11
core protocol."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xlsfonts"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xlsfonts"
xorg_mirror_path = "app/xlsfonts-1.0.5.tar.gz"
version('1.0.5', sha256='2a7aeca1023a3918ad2a1af2258ed63d8f8b6c48e53841b3a3f15fb9a0c008ce')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xmag/package.py b/var/spack/repos/builtin/packages/xmag/package.py
index fcda514cbb..4f96c14547 100644
--- a/var/spack/repos/builtin/packages/xmag/package.py
+++ b/var/spack/repos/builtin/packages/xmag/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xmag(AutotoolsPackage, XorgPackage):
"""xmag displays a magnified snapshot of a portion of an X11 screen."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xmag"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xmag"
xorg_mirror_path = "app/xmag-1.0.6.tar.gz"
version('1.0.6', sha256='07c5ec9114376dcd9a3303a38779e79b949d486f3b832d4a438550357d797aa5')
diff --git a/var/spack/repos/builtin/packages/xman/package.py b/var/spack/repos/builtin/packages/xman/package.py
index 4c963ec69c..ae8f927c10 100644
--- a/var/spack/repos/builtin/packages/xman/package.py
+++ b/var/spack/repos/builtin/packages/xman/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xman(AutotoolsPackage, XorgPackage):
"""xman is a graphical manual page browser using the Athena Widgets (Xaw)
toolkit."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xman"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xman"
xorg_mirror_path = "app/xman-1.1.4.tar.gz"
version('1.1.4', sha256='72fd0d479624a31d9a7330e5fdd220b7aa144744781f8e78aa12deece86e05c7')
@@ -18,6 +18,6 @@ class Xman(AutotoolsPackage, XorgPackage):
depends_on('libxaw')
depends_on('libxt')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xmessage/package.py b/var/spack/repos/builtin/packages/xmessage/package.py
index f810f03c25..d4075ad521 100644
--- a/var/spack/repos/builtin/packages/xmessage/package.py
+++ b/var/spack/repos/builtin/packages/xmessage/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Xmessage(AutotoolsPackage, XorgPackage):
on an "okay" button to dismiss it or can select one of several buttons
to answer a question. xmessage can also exit after a specified time."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xmessage"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xmessage"
xorg_mirror_path = "app/xmessage-1.0.4.tar.gz"
version('1.0.4', sha256='883099c3952c8cace5bd11d3df2e9ca143fc07375997435d5ff4f2d50353acca')
diff --git a/var/spack/repos/builtin/packages/xmh/package.py b/var/spack/repos/builtin/packages/xmh/package.py
index c88e29d193..b2688c2eac 100644
--- a/var/spack/repos/builtin/packages/xmh/package.py
+++ b/var/spack/repos/builtin/packages/xmh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Xmh(AutotoolsPackage, XorgPackage):
MH Message Handling System. To actually do things with your
mail, it makes calls to the MH package."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xmh"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xmh"
xorg_mirror_path = "app/xmh-1.0.3.tar.gz"
version('1.0.3', sha256='f90baf2615a4e1e01232c50cfd36ee4d50ad2fb2f76b8b5831fb796661f194d2')
@@ -21,6 +21,6 @@ class Xmh(AutotoolsPackage, XorgPackage):
depends_on('libxt')
depends_on('libx11')
- depends_on('xbitmaps@1.1.0:', type='build')
+ depends_on('xbitmaps@1.1.0:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xmlf90/package.py b/var/spack/repos/builtin/packages/xmlf90/package.py
index ff2a2a622b..63abdfa453 100644
--- a/var/spack/repos/builtin/packages/xmlf90/package.py
+++ b/var/spack/repos/builtin/packages/xmlf90/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xmlrpc-c/package.py b/var/spack/repos/builtin/packages/xmlrpc-c/package.py
index 758be25f76..d990e7b086 100644
--- a/var/spack/repos/builtin/packages/xmlrpc-c/package.py
+++ b/var/spack/repos/builtin/packages/xmlrpc-c/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xmlto/package.py b/var/spack/repos/builtin/packages/xmlto/package.py
index e7dc54f598..ef82b5b254 100644
--- a/var/spack/repos/builtin/packages/xmlto/package.py
+++ b/var/spack/repos/builtin/packages/xmlto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xmodmap/package.py b/var/spack/repos/builtin/packages/xmodmap/package.py
index bfffca335a..0176baae3d 100644
--- a/var/spack/repos/builtin/packages/xmodmap/package.py
+++ b/var/spack/repos/builtin/packages/xmodmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,13 +13,13 @@ class Xmodmap(AutotoolsPackage, XorgPackage):
session startup script to configure the keyboard according to personal
tastes."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xmodmap"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xmodmap"
xorg_mirror_path = "app/xmodmap-1.0.9.tar.gz"
version('1.0.9', sha256='73427a996f0fcda2a2c7ac96cfc4edd5985aeb13b48053f55ae7f63a668fadef')
depends_on('libx11')
- depends_on('xproto@7.0.25:', type='build')
+ depends_on('xproto@7.0.25:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xmore/package.py b/var/spack/repos/builtin/packages/xmore/package.py
index b6b4d6c360..0b8faa8cae 100644
--- a/var/spack/repos/builtin/packages/xmore/package.py
+++ b/var/spack/repos/builtin/packages/xmore/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xmore(AutotoolsPackage, XorgPackage):
"""xmore - plain text display program for the X Window System."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xmore"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xmore"
xorg_mirror_path = "app/xmore-1.0.2.tar.gz"
version('1.0.2', sha256='7371631d05986f1111f2026a77e43e048519738cfcc493c6222b66e7b0f309c0')
diff --git a/var/spack/repos/builtin/packages/xnnpack/package.py b/var/spack/repos/builtin/packages/xnnpack/package.py
new file mode 100644
index 0000000000..1abd154ccf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xnnpack/package.py
@@ -0,0 +1,104 @@
+# Copyright 2013-2021 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 Xnnpack(CMakePackage):
+ """High-efficiency floating-point neural network inference operators for
+ mobile, server, and Web"""
+
+ homepage = "https://github.com/google/XNNPACK"
+ git = "https://github.com/google/XNNPACK.git"
+
+ version('master', branch='master')
+ version('2021-02-22', commit='55d53a4e7079d38e90acd75dd9e4f9e781d2da35') # py-torch@1.8:1.9
+ version('2020-03-23', commit='1b354636b5942826547055252f3b359b54acff95') # py-torch@1.6:1.7
+ version('2020-02-24', commit='7493bfb9d412e59529bcbced6a902d44cfa8ea1c') # py-torch@1.5
+
+ depends_on('cmake@3.5:', type='build')
+ depends_on('ninja', type='build')
+ depends_on('python', type='build')
+
+ generator = 'Ninja'
+
+ resource(
+ name='clog',
+ url='https://github.com/pytorch/cpuinfo/archive/d5e37adf1406cf899d7d9ec1d317c47506ccb970.tar.gz',
+ sha256='3f2dc1970f397a0e59db72f9fca6ff144b216895c1d606f6c94a507c1e53a025',
+ destination='deps',
+ placement='clog',
+ )
+ resource(
+ name='cpuinfo',
+ url='https://github.com/pytorch/cpuinfo/archive/5916273f79a21551890fd3d56fc5375a78d1598d.zip',
+ sha256='2a160c527d3c58085ce260f34f9e2b161adc009b34186a2baf24e74376e89e6d',
+ destination='deps',
+ placement='cpuinfo',
+ )
+ resource(
+ name='fp16',
+ url='https://github.com/Maratyszcza/FP16/archive/3c54eacb74f6f5e39077300c5564156c424d77ba.zip',
+ sha256='0d56bb92f649ec294dbccb13e04865e3c82933b6f6735d1d7145de45da700156',
+ destination='deps',
+ placement='fp16',
+ )
+ resource(
+ name='fxdiv',
+ url='https://github.com/Maratyszcza/FXdiv/archive/b408327ac2a15ec3e43352421954f5b1967701d1.zip',
+ sha256='ab7dfb08829bee33dca38405d647868fb214ac685e379ec7ef2bebcd234cd44d',
+ destination='deps',
+ placement='fxdiv',
+ )
+ resource(
+ name='pthreadpool',
+ url='https://github.com/Maratyszcza/pthreadpool/archive/545ebe9f225aec6dca49109516fac02e973a3de2.zip',
+ sha256='8461f6540ae9f777ce20d1c0d1d249e5e61c438744fb390c0c6f91940aa69ea3',
+ destination='deps',
+ placement='pthreadpool',
+ )
+ resource(
+ name='googletest',
+ url='https://github.com/google/googletest/archive/5a509dbd2e5a6c694116e329c5a20dc190653724.zip',
+ sha256='fcfac631041fce253eba4fc014c28fd620e33e3758f64f8ed5487cc3e1840e3d',
+ destination='deps',
+ placement='googletest',
+ )
+ resource(
+ name='googlebenchmark',
+ url='https://github.com/google/benchmark/archive/v1.4.1.zip',
+ sha256='61ae07eb5d4a0b02753419eb17a82b7d322786bb36ab62bd3df331a4d47c00a7',
+ destination='deps',
+ placement='googlebenchmark',
+ )
+ resource(
+ name='psimd',
+ git='https://github.com/Maratyszcza/psimd.git',
+ branch='master',
+ destination='deps',
+ placement='psimd',
+ )
+
+ def cmake_args(self):
+ # TODO: XNNPACK has a XNNPACK_USE_SYSTEM_LIBS option, but it seems to be broken
+ # See https://github.com/google/XNNPACK/issues/1543
+ return [
+ self.define('CLOG_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'clog')),
+ self.define('CPUINFO_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'cpuinfo')),
+ self.define('FP16_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'fp16')),
+ self.define('FXDIV_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'fxdiv')),
+ self.define('PTHREADPOOL_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'pthreadpool')),
+ self.define('GOOGLETEST_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googletest')),
+ self.define('GOOGLEBENCHMARK_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'googlebenchmark')),
+ self.define('PSIMD_SOURCE_DIR',
+ join_path(self.stage.source_path, 'deps', 'psimd')),
+ ]
diff --git a/var/spack/repos/builtin/packages/xorg-cf-files/package.py b/var/spack/repos/builtin/packages/xorg-cf-files/package.py
index 1ac58c5b09..83bac90d75 100644
--- a/var/spack/repos/builtin/packages/xorg-cf-files/package.py
+++ b/var/spack/repos/builtin/packages/xorg-cf-files/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class XorgCfFiles(AutotoolsPackage, XorgPackage):
have not been verified or tested in over a decade), and for many of the
libraries formerly delivered in the X.Org monolithic releases."""
- homepage = "http://cgit.freedesktop.org/xorg/util/cf"
+ homepage = "https://cgit.freedesktop.org/xorg/util/cf"
xorg_mirror_path = "util/xorg-cf-files-1.0.6.tar.gz"
version('1.0.6', sha256='6d56094e5d1a6c7d7a9576ac3a0fc2c042344509ea900d59f4b23df668b96c7a')
diff --git a/var/spack/repos/builtin/packages/xorg-docs/package.py b/var/spack/repos/builtin/packages/xorg-docs/package.py
index cdded0a96f..6e2b1422c7 100644
--- a/var/spack/repos/builtin/packages/xorg-docs/package.py
+++ b/var/spack/repos/builtin/packages/xorg-docs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class XorgDocs(AutotoolsPackage, XorgPackage):
The preferred documentation format for these documents is DocBook XML."""
- homepage = "http://cgit.freedesktop.org/xorg/doc/xorg-docs"
+ homepage = "https://cgit.freedesktop.org/xorg/doc/xorg-docs"
xorg_mirror_path = "doc/xorg-docs-1.7.1.tar.gz"
version('1.7.1', sha256='360707db2ba48f6deeb53d570deca9fa98218af48ead4a726a67f63e3ef63816')
diff --git a/var/spack/repos/builtin/packages/xorg-gtest/package.py b/var/spack/repos/builtin/packages/xorg-gtest/package.py
index 1d7bb7bcbe..909177d9c1 100644
--- a/var/spack/repos/builtin/packages/xorg-gtest/package.py
+++ b/var/spack/repos/builtin/packages/xorg-gtest/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xorg-server/package.py b/var/spack/repos/builtin/packages/xorg-server/package.py
index 079b9cd129..632e38b362 100644
--- a/var/spack/repos/builtin/packages/xorg-server/package.py
+++ b/var/spack/repos/builtin/packages/xorg-server/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class XorgServer(AutotoolsPackage, XorgPackage):
"""X.Org Server is the free and open source implementation of the display
server for the X Window System stewarded by the X.Org Foundation."""
- homepage = "http://cgit.freedesktop.org/xorg/xserver"
+ homepage = "https://cgit.freedesktop.org/xorg/xserver"
xorg_mirror_path = "xserver/xorg-server-1.18.99.901.tar.gz"
version('1.18.99.901', sha256='c8425163b588de2ee7e5c8e65b0749f2710f55a7e02a8d1dc83b3630868ceb21')
@@ -21,9 +21,9 @@ class XorgServer(AutotoolsPackage, XorgPackage):
depends_on('libdrm@2.3.0:')
depends_on('libx11')
- depends_on('dri2proto@2.8:', type='build')
- depends_on('dri3proto@1.0:', type='build')
- depends_on('glproto@1.4.17:', type='build')
+ depends_on('dri2proto@2.8:')
+ depends_on('dri3proto@1.0:')
+ depends_on('glproto@1.4.17:')
depends_on('flex', type='build')
depends_on('bison', type='build')
diff --git a/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py b/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py
index 9b57524b47..e4b63c57ab 100644
--- a/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py
+++ b/var/spack/repos/builtin/packages/xorg-sgml-doctools/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class XorgSgmlDoctools(AutotoolsPackage, XorgPackage):
sheets used in building/formatting the documentation provided in other
X.Org packages."""
- homepage = "http://cgit.freedesktop.org/xorg/doc/xorg-sgml-doctools"
+ homepage = "https://cgit.freedesktop.org/xorg/doc/xorg-sgml-doctools"
xorg_mirror_path = "doc/xorg-sgml-doctools-1.11.tar.gz"
version('1.11', sha256='986326d7b4dd2ad298f61d8d41fe3929ac6191c6000d6d7e47a8ffc0c34e7426')
diff --git a/var/spack/repos/builtin/packages/xphelloworld/package.py b/var/spack/repos/builtin/packages/xphelloworld/package.py
index f3e6e47be9..14ffa23d69 100644
--- a/var/spack/repos/builtin/packages/xphelloworld/package.py
+++ b/var/spack/repos/builtin/packages/xphelloworld/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xphelloworld(AutotoolsPackage, XorgPackage):
"""Xprint sample applications."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xphelloworld"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xphelloworld"
xorg_mirror_path = "app/xphelloworld-1.0.1.tar.gz"
version('1.0.1', sha256='ead6437c4dc9540698a41e174c9d1ac792de07baeead81935d72cb123196f866')
diff --git a/var/spack/repos/builtin/packages/xplor-nih/package.py b/var/spack/repos/builtin/packages/xplor-nih/package.py
index 94ad11836a..c750e9e09e 100644
--- a/var/spack/repos/builtin/packages/xplor-nih/package.py
+++ b/var/spack/repos/builtin/packages/xplor-nih/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class XplorNih(Package):
"""XPLOR-NIH is a structure determination program.
@@ -14,7 +15,7 @@ class XplorNih(Package):
Spack will search your current directory for the download file.
Alternatively, add this file to a mirror so that Spack can find it.
For instructions on how to set up a mirror, see
- http://spack.readthedocs.io/en/latest/mirrors.html"""
+ https://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "https://nmr.cit.nih.gov/xplor-nih/"
manual_download = True
diff --git a/var/spack/repos/builtin/packages/xplsprinters/package.py b/var/spack/repos/builtin/packages/xplsprinters/package.py
index 729ee62893..d2c9a6945a 100644
--- a/var/spack/repos/builtin/packages/xplsprinters/package.py
+++ b/var/spack/repos/builtin/packages/xplsprinters/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xplsprinters(AutotoolsPackage, XorgPackage):
"""List Xprint printers."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xplsprinters"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xplsprinters"
xorg_mirror_path = "app/xplsprinters-1.0.1.tar.gz"
version('1.0.1', sha256='33377e499429ce3e100fbd7b59153c87ad79bf55872561db08419f69cac4fbfd')
diff --git a/var/spack/repos/builtin/packages/xpmem/package.py b/var/spack/repos/builtin/packages/xpmem/package.py
index 90fa58df06..adddcc3e82 100644
--- a/var/spack/repos/builtin/packages/xpmem/package.py
+++ b/var/spack/repos/builtin/packages/xpmem/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Xpmem(AutotoolsPackage):
of another process into its virtual address space."""
# The README file of the repository says that the development was
- # transferred to a new repository on GitLab: http://gitlab.com/hjelmn/xpmem
+ # transferred to a new repository on GitLab: https://gitlab.com/hjelmn/xpmem
# However, it looks like that the repository on GitHub has a more recent
# version of the codebase.
homepage = "https://github.com/hjelmn/xpmem"
@@ -25,6 +25,7 @@ class Xpmem(AutotoolsPackage):
# Versions starting 2.6.4 are neither tagged nor released in the repo
# (the choice of commits is based on the commit history of
# 'kernel/xpmem_private.h'):
+ version('2.6.5-36', commit='0d0bad4e1d07b38d53ecc8f20786bb1328c446da')
version('2.6.5', commit='4efeed9cbaabe971f3766d67cb108e2c3316d4b8')
version('2.6.4', commit='522054850e4d1479d69f50f7190d1548bf9749fd')
@@ -35,6 +36,10 @@ class Xpmem(AutotoolsPackage):
variant('kernel-module', default=True,
description='Enable building the kernel module')
+ # Added RHEL 8.3 kernel support
+ # Here 2.6.5-36 referes to 2.6.5 version and 36th commit id
+ patch('xpmem_v2.6.5-36.patch', when="@2.6.5-36", level=1)
+
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
diff --git a/var/spack/repos/builtin/packages/xpmem/xpmem_v2.6.5-36.patch b/var/spack/repos/builtin/packages/xpmem/xpmem_v2.6.5-36.patch
new file mode 100644
index 0000000000..a17fba4ad1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xpmem/xpmem_v2.6.5-36.patch
@@ -0,0 +1,15 @@
+--- xpmem/kernel/xpmem_pfn.c 2021-02-08 22:49:05.321501753 -0800
++++ xpmem.patch/kernel/xpmem_pfn.c 2021-02-08 23:30:30.875309634 -0800
+@@ -251,6 +251,12 @@
+ cpu_to_node(task_cpu(current)) != cpu_to_node(task_cpu(src_task))) {
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)
+ saved_mask = current->cpus_mask;
++#elif LINUX_VERSION_CODE == KERNEL_VERSION(4,18, 0)
++ #ifdef RHEL_RELEASE_CODE
++ #if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8,3)
++ saved_mask = current->cpus_mask;
++ #endif
++ #endif
+ #else
+ saved_mask = current->cpus_allowed;
+ #endif
diff --git a/var/spack/repos/builtin/packages/xpr/package.py b/var/spack/repos/builtin/packages/xpr/package.py
index ca57b0c95b..75206ce083 100644
--- a/var/spack/repos/builtin/packages/xpr/package.py
+++ b/var/spack/repos/builtin/packages/xpr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xpr(AutotoolsPackage, XorgPackage):
"""xpr takes as input a window dump file produced by xwd
and formats it for output on various types of printers."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xpr"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xpr"
xorg_mirror_path = "app/xpr-1.0.4.tar.gz"
version('1.0.4', sha256='9ec355388ae363fd40239a3fa56908bb2f3e53b5bfc872cf0182d14d730c6207')
@@ -18,6 +18,6 @@ class Xpr(AutotoolsPackage, XorgPackage):
depends_on('libxmu')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xprehashprinterlist/package.py b/var/spack/repos/builtin/packages/xprehashprinterlist/package.py
index 2f03d06f40..c71b218a43 100644
--- a/var/spack/repos/builtin/packages/xprehashprinterlist/package.py
+++ b/var/spack/repos/builtin/packages/xprehashprinterlist/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xprehashprinterlist(AutotoolsPackage, XorgPackage):
"""Rehash list of Xprint printers."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xprehashprinterlist"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xprehashprinterlist"
xorg_mirror_path = "app/xprehashprinterlist-1.0.1.tar.gz"
version('1.0.1', sha256='396986da064b584138cfcff79a8aed12590a9dab24f1cd2d80b08bc1cb896a43')
diff --git a/var/spack/repos/builtin/packages/xprop/package.py b/var/spack/repos/builtin/packages/xprop/package.py
index a0d11ae17f..d97033c815 100644
--- a/var/spack/repos/builtin/packages/xprop/package.py
+++ b/var/spack/repos/builtin/packages/xprop/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,13 @@ class Xprop(AutotoolsPackage, XorgPackage):
"""xprop is a command line tool to display and/or set window and font
properties of an X server."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xprop"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xprop"
xorg_mirror_path = "app/xprop-1.2.2.tar.gz"
version('1.2.2', sha256='3db78771ce8fb8954fb242ed9d4030372523649c5e9c1a9420340020dd0afbc2')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xproperty/package.py b/var/spack/repos/builtin/packages/xproperty/package.py
new file mode 100644
index 0000000000..80b7e8c14b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xproperty/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2021 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 Xproperty(CMakePackage):
+ """C++ library providing traitlets-style properties"""
+
+ homepage = "https://github.com/jupyter-xeus/xproperty"
+ url = "https://github.com/jupyter-xeus/xproperty/archive/0.11.0.tar.gz"
+ git = "https://github.com/jupyter-xeus/xproperty.git"
+
+ maintainers = ['tomstitt']
+
+ version('master', branch='master')
+ version('0.11.0', sha256='bf86a11c6758308aa0aa0f64d8dd24cd3e9d78378467b74002f552bfb75fc0eb')
+
+ depends_on('xtl@0.7.0:0.7.999', when='@0.11.0:')
+
+ # C++14 support
+ conflicts('%gcc@:4.8')
+ conflicts('%clang@:3.3')
diff --git a/var/spack/repos/builtin/packages/xproto/package.py b/var/spack/repos/builtin/packages/xproto/package.py
index 7414ba1f5e..7169870a75 100644
--- a/var/spack/repos/builtin/packages/xproto/package.py
+++ b/var/spack/repos/builtin/packages/xproto/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class Xproto(AutotoolsPackage, XorgPackage):
but are depended upon by many other X Window System packages to provide
common definitions and porting layer."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/x11proto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/x11proto"
xorg_mirror_path = "proto/xproto-7.0.31.tar.gz"
version('7.0.31', sha256='6d755eaae27b45c5cc75529a12855fed5de5969b367ed05003944cf901ed43c7')
diff --git a/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py b/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py
index cc9b421887..b479dbc5a8 100644
--- a/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py
+++ b/var/spack/repos/builtin/packages/xproxymanagementprotocol/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Xproxymanagementprotocol(AutotoolsPackage, XorgPackage):
way for application servers to easily locate proxy services available to
them."""
- homepage = "http://cgit.freedesktop.org/xorg/proto/pmproto"
+ homepage = "https://cgit.freedesktop.org/xorg/proto/pmproto"
xorg_mirror_path = "proto/xproxymanagementprotocol-1.0.3.tar.gz"
version('1.0.3', sha256='c1501045ec781f36b6f867611ab2b4e81be542f5c669b2fd0cc4ec1340c42bcf')
diff --git a/var/spack/repos/builtin/packages/xqilla/package.py b/var/spack/repos/builtin/packages/xqilla/package.py
index 645edc19e5..5296c36a5f 100644
--- a/var/spack/repos/builtin/packages/xqilla/package.py
+++ b/var/spack/repos/builtin/packages/xqilla/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -18,6 +18,10 @@ class Xqilla(AutotoolsPackage, SourceforgePackage):
variant('debug', default=False, description='Build a debugging version.')
variant('shared', default=True, description='Build shared libraries.')
+ # see https://sourceforge.net/p/xqilla/bugs/48/
+ patch('https://src.fedoraproject.org/rpms/xqilla/raw/1f2f53305f429aa3db2ab078d9613fbc367b402d/f/0004-xerces-3.2.0-casts.patch', sha256='78997e098f041bf41def6fab436ea406b2dceaa15ae3ec8a8d2aa7ed356a0bb9', when='@:2.3.3')
+ patch('https://src.fedoraproject.org/rpms/xqilla/raw/1f2f53305f429aa3db2ab078d9613fbc367b402d/f/0005-xqilla-gcc11.patch', sha256='52e5f03012fe9ae5b0f90d04eff042fb2082aa8f366a47d9e6be0d452de87b73', when='%gcc@11:')
+
depends_on('xerces-c')
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/xrandr/package.py b/var/spack/repos/builtin/packages/xrandr/package.py
index 544e05d173..cfd42f9c4b 100644
--- a/var/spack/repos/builtin/packages/xrandr/package.py
+++ b/var/spack/repos/builtin/packages/xrandr/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xrandr(AutotoolsPackage, XorgPackage):
"""xrandr - primitive command line interface to X11 Resize, Rotate, and
Reflect (RandR) extension."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xrandr"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xrandr"
xorg_mirror_path = "app/xrandr-1.5.0.tar.gz"
version('1.5.0', sha256='ddfe8e7866149c24ccce8e6aaa0623218ae19130c2859cadcaa4228d8bb4a46d')
@@ -20,6 +20,6 @@ class Xrandr(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('randrproto')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xrdb/package.py b/var/spack/repos/builtin/packages/xrdb/package.py
index 3455f33740..69601aa06b 100644
--- a/var/spack/repos/builtin/packages/xrdb/package.py
+++ b/var/spack/repos/builtin/packages/xrdb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xrdb(AutotoolsPackage, XorgPackage):
"""xrdb - X server resource database utility."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xrdb"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xrdb"
xorg_mirror_path = "app/xrdb-1.1.0.tar.gz"
version('1.1.0', sha256='44b0b6b7b7eb80b83486dfea67c880f6b0059052386c7ddec4d58fd2ad9ae8e9')
@@ -17,6 +17,6 @@ class Xrdb(AutotoolsPackage, XorgPackage):
depends_on('libxmu')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xrefresh/package.py b/var/spack/repos/builtin/packages/xrefresh/package.py
index fa6e4ec074..d2174ad3dd 100644
--- a/var/spack/repos/builtin/packages/xrefresh/package.py
+++ b/var/spack/repos/builtin/packages/xrefresh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,13 @@ from spack import *
class Xrefresh(AutotoolsPackage, XorgPackage):
"""xrefresh - refresh all or part of an X screen."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xrefresh"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xrefresh"
xorg_mirror_path = "app/xrefresh-1.0.5.tar.gz"
version('1.0.5', sha256='b373cc1ecd37c3d787e7074ce89a8a06ea173d7ba9e73fa48de973c759fbcf38')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xrootd/package.py b/var/spack/repos/builtin/packages/xrootd/package.py
index 70292848d6..72a4f60663 100644
--- a/var/spack/repos/builtin/packages/xrootd/package.py
+++ b/var/spack/repos/builtin/packages/xrootd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -13,8 +13,11 @@ class Xrootd(CMakePackage):
homepage = "http://xrootd.org"
url = "http://xrootd.org/download/v5.0.1/xrootd-5.0.1.tar.gz"
+ version('5.1.0', sha256='c639536f1bdc5b6b365e807f3337ed2d41012cd3df608d40e91ed05f1c568b6d')
+ version('5.0.3', sha256='be40a1897d6c1f153d3e23c39fe96e45063bfafc3cc073db88a1a9531db79ac5')
version('5.0.1', sha256='ff4462b0b61db4cc01dda0e26abdd78e43649ee7ac5e90f7a05b74328ff5ac83')
- version('4.12.3', sha256='6f2ca1accc8d49d605706bb556777c753860bf46d845b1ee11393a5cb5987f15', preferred=True)
+ version('4.12.6', sha256='1a9056ab7aeeaafa586ea77e442960c71d233c9ba60c7f9db9262c1410954ac4')
+ version('4.12.3', sha256='6f2ca1accc8d49d605706bb556777c753860bf46d845b1ee11393a5cb5987f15')
version('4.12.2', sha256='29f7bc3ea51b9d5d310eabd177152245d4160223325933c67f938ed5120f67bb')
version('4.12.1', sha256='7350d9196a26d17719b839fd242849e3995692fda25f242e67ac6ec907218d13')
version('4.12.0', sha256='69ef4732256d9a88127de4bfdf96bbf73348e0c70ce1d756264871a0ffadd2fc')
@@ -56,7 +59,7 @@ class Xrootd(CMakePackage):
depends_on('bzip2')
depends_on('cmake@2.6:', type='build')
depends_on('libxml2', when='+http')
- depends_on('libuuid', when="@4.11.0:")
+ depends_on('uuid', when="@4.11.0:")
depends_on('openssl')
depends_on('python', when='+python')
depends_on('readline', when='+readline')
diff --git a/var/spack/repos/builtin/packages/xrx/package.py b/var/spack/repos/builtin/packages/xrx/package.py
index 5abc2911eb..80bf722705 100644
--- a/var/spack/repos/builtin/packages/xrx/package.py
+++ b/var/spack/repos/builtin/packages/xrx/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,7 +14,7 @@ class Xrx(AutotoolsPackage, XorgPackage):
browser must identify specific instances of the services in the request
to invoke the application."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xrx"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xrx"
xorg_mirror_path = "app/xrx-1.0.4.tar.gz"
version('1.0.4', sha256='1ffa1c2af28587c6ed7ded3af2e62e93bad8f9900423d09c45b1d59449d15134')
@@ -26,7 +26,7 @@ class Xrx(AutotoolsPackage, XorgPackage):
depends_on('libice')
depends_on('libxaw')
- depends_on('xtrans', type='build')
- depends_on('xproxymanagementprotocol', type='build')
+ depends_on('xtrans')
+ depends_on('xproxymanagementprotocol')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xsbench/package.py b/var/spack/repos/builtin/packages/xsbench/package.py
index 3b2215553d..bccd05786d 100644
--- a/var/spack/repos/builtin/packages/xsbench/package.py
+++ b/var/spack/repos/builtin/packages/xsbench/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -41,13 +41,15 @@ class Xsbench(MakefilePackage):
targets = []
cflags = ''
- if not self.spec.satisfies('%nvhpc'):
+ if not self.spec.satisfies('%nvhpc@:20.11'):
cflags = '-std=gnu99'
if '+mpi' in self.spec:
targets.append('CC={0}'.format(self.spec['mpi'].mpicc))
+ targets.append('MPI=yes')
else:
- targets.append('CC={0}'.format(self.compiler.cxx))
+ targets.append('CC={0}'.format(self.compiler.cc))
+ targets.append('MPI=no')
if '+openmp' in self.spec:
cflags += ' ' + self.compiler.openmp_flag
diff --git a/var/spack/repos/builtin/packages/xscope/package.py b/var/spack/repos/builtin/packages/xscope/package.py
index 27d108ab6e..9ea08cc098 100644
--- a/var/spack/repos/builtin/packages/xscope/package.py
+++ b/var/spack/repos/builtin/packages/xscope/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,12 +9,12 @@ from spack import *
class Xscope(AutotoolsPackage, XorgPackage):
"""XSCOPE -- a program to monitor X11/Client conversations."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xscope"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xscope"
xorg_mirror_path = "app/xscope-1.4.1.tar.gz"
version('1.4.1', sha256='f99558a64e828cd2c352091ed362ad2ef42b1c55ef5c01cbf782be9735bb6de3')
- depends_on('xproto@7.0.17:', type='build')
- depends_on('xtrans', type='build')
+ depends_on('xproto@7.0.17:')
+ depends_on('xtrans')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xsd/package.py b/var/spack/repos/builtin/packages/xsd/package.py
index 17127eb784..0c6b87b97f 100644
--- a/var/spack/repos/builtin/packages/xsd/package.py
+++ b/var/spack/repos/builtin/packages/xsd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -21,6 +21,12 @@ class Xsd(MakefilePackage):
depends_on('xerces-c')
depends_on('libtool', type='build')
+ patch(
+ 'https://git.codesynthesis.com/cgit/libxsd-frontend/libxsd-frontend/patch/?id=5029f8665190879285787a9dcdaf5f997cadd2e2',
+ sha256='d57e0aed8784d2b947983209b6513c81ac593c9936c3d7b809b4cd60d4c28607',
+ working_dir='libxsd-frontend'
+ )
+
def install(self, spec, prefix):
make('install', 'install_prefix=' + prefix)
diff --git a/var/spack/repos/builtin/packages/xsdk-examples/package.py b/var/spack/repos/builtin/packages/xsdk-examples/package.py
index 418651ec72..9847e3267a 100644
--- a/var/spack/repos/builtin/packages/xsdk-examples/package.py
+++ b/var/spack/repos/builtin/packages/xsdk-examples/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,28 +12,57 @@ class XsdkExamples(CMakePackage):
homepage = 'http://xsdk.info'
url = 'https://github.com/xsdk-project/xsdk-examples/archive/v0.1.0.tar.gz'
+ git = "https://github.com/xsdk-project/xsdk-examples"
maintainers = ['acfisher', 'balay', 'balos1', 'luszczek']
+ version('develop', branch='master')
+ version('0.2.0', sha256='cf26e3a16a83eba6fb297fb106b0934046f17cf978f96243b44d9d17ad186db6')
version('0.1.0', sha256='d24cab1db7c0872b6474d69e598df9c8e25d254d09c425fb0a6a8d6469b8018f')
+ variant('cuda', default=False, description='Compile CUDA examples')
+
+ depends_on('xsdk+cuda', when='+cuda')
+ depends_on('xsdk@0.6.0', when='@0.2.0')
depends_on('xsdk@0.5.0', when='@0.1.0')
def cmake_args(self):
spec = self.spec
args = [
'-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
+ '-DMETIS_INCLUDE_DIRS=%s' % spec['metis'].prefix.include,
+ '-DMETIS_LIBRARY=%s' % spec['metis'].libs,
'-DMPI_DIR=%s' % spec['mpi'].prefix,
- '-DSUNDIALS_DIR=%s' % spec['sundials'].prefix,
+ '-DSUNDIALS_DIR=%s' % spec['sundials'].prefix,
+ '-DHYPRE_DIR=%s' % spec['hypre'].prefix,
+ '-DHYPRE_INCLUDE_DIR=%s' % spec['hypre'].prefix.include,
'-DPETSC_DIR=%s' % spec['petsc'].prefix,
'-DPETSC_INCLUDE_DIR=%s' % spec['petsc'].prefix.include,
'-DPETSC_LIBRARY_DIR=%s' % spec['petsc'].prefix.lib,
+ '-DSUPERLUDIST_DIR=%s' % spec['superlu-dist'].prefix,
'-DSUPERLUDIST_INCLUDE_DIR=%s' %
spec['superlu-dist'].prefix.include,
'-DSUPERLUDIST_LIBRARY_DIR=%s' % spec['superlu-dist'].prefix.lib,
+ '-DSUPERLUDIST_LIBRARY=%s' % spec['superlu-dist'].libs,
+ '-DMFEM_DIR=%s' % spec['mfem'].prefix,
+ '-DMFEM_INCLUDE_DIR=%s' % spec['mfem'].prefix.include,
+ '-DMFEM_LIBRARY_DIR=%s' % spec['mfem'].prefix.include.lib,
+ '-DGINKGO_DIR=%s' % spec['ginkgo'].prefix,
+ '-DGINKGO_INCLUDE_DIR=%s' % spec['ginkgo'].prefix.include,
+ '-DGINKGO_LIBRARY_DIR=%s' % spec['ginkgo'].prefix.include.lib,
+ # allow use of default `find_package(Ginkgo)`
+ '-DCMAKE_PREFIX_PATH=%s/cmake' % spec['ginkgo'].prefix.include.lib
]
- if 'trilinos' in spec:
+ if '+cuda' in spec:
+ args.extend([
+ '-DENABLE_CUDA=ON'
+ ])
+ if 'trilinos' in spec: # if trilinos variant was activated for xsdk
+ args.extend([
+ '-DTRILINOS_DIR_PATH=%s' % spec['trilinos'].prefix,
+ ])
+ if 'zlib' in spec: # if zlib variant was activated for MFEM
args.extend([
- '-DTRILINOS_DIR:PATH=%s' % spec['trilinos'].prefix,
+ '-DZLIB_LIBRARY_DIR=%s' % spec['zlib'].prefix.lib,
])
return args
diff --git a/var/spack/repos/builtin/packages/xsdk/package.py b/var/spack/repos/builtin/packages/xsdk/package.py
index e99952c655..0ee4c05161 100644
--- a/var/spack/repos/builtin/packages/xsdk/package.py
+++ b/var/spack/repos/builtin/packages/xsdk/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 sys
+from spack import *
+
class Xsdk(BundlePackage):
"""Xsdk is a suite of Department of Energy (DOE) packages for numerical
@@ -14,16 +15,15 @@ class Xsdk(BundlePackage):
packages
"""
- homepage = "http://xsdk.info"
+ homepage = "https://xsdk.info"
maintainers = ['balay', 'luszczek']
version('develop')
version('0.6.0')
version('0.5.0')
- version('0.4.0')
- version('0.3.0')
- version('xsdk-0.2.0')
+ version('0.4.0', deprecated=True)
+ version('0.3.0', deprecated=True)
variant('debug', default=False, description='Compile in debug mode')
variant('cuda', default=False, description='Enable CUDA dependent packages')
@@ -32,6 +32,7 @@ class Xsdk(BundlePackage):
variant('omega-h', default=True, description='Enable omega-h package build')
variant('strumpack', default=True, description='Enable strumpack package build')
variant('dealii', default=True, description='Enable dealii package build')
+ variant('alquimia', default=True, description='Enable alquimia package build')
variant('phist', default=True, description='Enable phist package build')
variant('ginkgo', default=True, description='Enable ginkgo package build')
variant('libensemble', default=True, description='Enable py-libensemble package build')
@@ -40,13 +41,13 @@ class Xsdk(BundlePackage):
variant('butterflypack', default=True, description='Enable butterflypack package build')
variant('heffte', default=True, description='Enable heffte package build')
variant('slate', default=True, description='Enable slate package build')
+ variant('arborx', default=True, description='Enable ArborX build')
depends_on('hypre@develop+superlu-dist+shared', when='@develop')
depends_on('hypre@2.20.0+superlu-dist+shared', when='@0.6.0')
depends_on('hypre@2.18.2+superlu-dist+shared', when='@0.5.0')
depends_on('hypre@2.15.1~internal-superlu', when='@0.4.0')
depends_on('hypre@2.12.1~internal-superlu', when='@0.3.0')
- depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0')
depends_on('mfem@develop+mpi+superlu-dist+petsc+sundials+examples+miniapps', when='@develop')
depends_on('mfem@4.2.0+mpi+superlu-dist+petsc+sundials+examples+miniapps', when='@0.6.0')
@@ -59,27 +60,25 @@ class Xsdk(BundlePackage):
depends_on('superlu-dist@6.1.1', when='@0.5.0')
depends_on('superlu-dist@6.1.0', when='@0.4.0')
depends_on('superlu-dist@5.2.2', when='@0.3.0')
- depends_on('superlu-dist@xsdk-0.2.0', when='@xsdk-0.2.0')
- depends_on('trilinos@develop+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan2+amesos2~exodus+dtk+intrepid2+shards gotype=int',
+ depends_on('trilinos@develop+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2~exodus~dtk+intrepid2+shards+stratimikos gotype=int cxxstd=14',
when='@develop +trilinos')
- depends_on('trilinos@13.0.1+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan2+amesos2~exodus~dtk+intrepid2+shards gotype=int',
+ depends_on('trilinos@13.0.1+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2~exodus~dtk+intrepid2+shards gotype=int',
when='@0.6.0 +trilinos')
- depends_on('trilinos@12.18.1+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan2+amesos2~exodus+dtk+intrepid2+shards',
+ depends_on('trilinos@12.18.1+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2~exodus+dtk+intrepid2+shards',
when='@0.5.0 +trilinos')
- depends_on('trilinos@12.14.1+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan2+amesos2~exodus+dtk+intrepid2+shards',
+ depends_on('trilinos@12.14.1+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2~exodus+dtk+intrepid2+shards',
when='@0.4.0 +trilinos')
- depends_on('trilinos@12.12.1+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan2~amesos2~exodus',
+ depends_on('trilinos@12.12.1+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan~zoltan2~amesos2~exodus',
when='@0.3.0 +trilinos')
- depends_on('trilinos@xsdk-0.2.0+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan2~amesos2~exodus',
- when='@xsdk-0.2.0 +trilinos')
+ depends_on('datatransferkit@master', when='@develop +trilinos +datatransferkit')
depends_on('datatransferkit@3.1-rc2', when='@0.6.0 +trilinos +datatransferkit')
depends_on('petsc +trilinos', when='+trilinos')
depends_on('petsc +cuda', when='+cuda @0.6.0:')
depends_on('petsc +batch', when='platform=cray @0.5.0:')
- depends_on('petsc@develop+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
+ depends_on('petsc@main+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
when='@develop')
depends_on('petsc@3.14.1+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
when='@0.6.0')
@@ -89,13 +88,11 @@ class Xsdk(BundlePackage):
when='@0.4.0')
depends_on('petsc@3.8.2+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
when='@0.3.0')
- depends_on('petsc@xsdk-0.2.0+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64',
- when='@xsdk-0.2.0')
depends_on('dealii +trilinos~adol-c', when='+trilinos +dealii')
depends_on('dealii ~trilinos', when='~trilinos +dealii')
- depends_on('dealii@develop~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine', when='@develop +dealii')
- depends_on('dealii@9.2.0~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine', when='@0.6.0 +dealii')
+ depends_on('dealii@master~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine~nanoflann', when='@develop +dealii')
+ depends_on('dealii@9.2.0~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine~simplex~arborx', when='@0.6.0 +dealii')
depends_on('dealii@9.1.1~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine', when='@0.5.0 +dealii')
depends_on('dealii@9.0.1~assimp~python~doc~gmsh+petsc~slepc+mpi~int64+hdf5~netcdf+metis~ginkgo~symengine', when='@0.4.0 +dealii')
@@ -104,14 +101,12 @@ class Xsdk(BundlePackage):
depends_on('pflotran@xsdk-0.5.0', when='@0.5.0')
depends_on('pflotran@xsdk-0.4.0', when='@0.4.0')
depends_on('pflotran@xsdk-0.3.0', when='@0.3.0')
- depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0')
- depends_on('alquimia@develop', when='@develop')
- depends_on('alquimia@xsdk-0.6.0', when='@0.6.0')
- depends_on('alquimia@xsdk-0.5.0', when='@0.5.0')
- depends_on('alquimia@xsdk-0.4.0', when='@0.4.0')
- depends_on('alquimia@xsdk-0.3.0', when='@0.3.0')
- depends_on('alquimia@xsdk-0.2.0', when='@xsdk-0.2.0')
+ depends_on('alquimia@develop', when='@develop +alquimia')
+ depends_on('alquimia@xsdk-0.6.0', when='@0.6.0 +alquimia')
+ depends_on('alquimia@xsdk-0.5.0', when='@0.5.0 +alquimia ')
+ depends_on('alquimia@xsdk-0.4.0', when='@0.4.0 +alquimia')
+ depends_on('alquimia@xsdk-0.3.0', when='@0.3.0 +alquimia')
depends_on('sundials +cuda', when='+cuda @0.6.0:')
depends_on('sundials +trilinos', when='+trilinos @0.6.0:')
@@ -141,25 +136,25 @@ class Xsdk(BundlePackage):
depends_on('amrex@18.10.1', when='@0.4.0 %intel')
depends_on('amrex@18.10.1', when='@0.4.0 %gcc')
- depends_on('slepc@develop', when='@develop')
+ depends_on('slepc@main', when='@develop')
depends_on('slepc@3.14.0', when='@0.6.0')
depends_on('slepc@3.12.0', when='@0.5.0')
depends_on('slepc@3.10.1', when='@0.4.0')
depends_on('omega-h +trilinos', when='+trilinos +omega-h')
depends_on('omega-h ~trilinos', when='~trilinos +omega-h')
- depends_on('omega-h@develop', when='@develop +omega-h')
+ depends_on('omega-h@main', when='@develop +omega-h')
depends_on('omega-h@9.32.5', when='@0.6.0 +omega-h')
depends_on('omega-h@9.29.0', when='@0.5.0 +omega-h')
depends_on('omega-h@9.19.1', when='@0.4.0 +omega-h')
- depends_on('strumpack ~cuda', when='~cuda @0.6.0:')
- depends_on('strumpack@master', when='@develop +strumpack')
- depends_on('strumpack@5.0.0', when='@0.6.0 +strumpack')
- depends_on('strumpack@3.3.0', when='@0.5.0 +strumpack')
- depends_on('strumpack@3.1.1', when='@0.4.0 +strumpack')
+ depends_on('strumpack ~cuda', when='~cuda @0.6.0: +strumpack')
+ depends_on('strumpack@master~slate~openmp', when='@develop +strumpack')
+ depends_on('strumpack@5.0.0~slate~openmp', when='@0.6.0 +strumpack')
+ depends_on('strumpack@3.3.0~slate~openmp', when='@0.5.0 +strumpack')
+ depends_on('strumpack@3.1.1~slate~openmp', when='@0.4.0 +strumpack')
- depends_on('pumi@develop', when='@develop')
+ depends_on('pumi@master', when='@develop')
depends_on('pumi@2.2.5', when='@0.6.0')
depends_on('pumi@2.2.1', when='@0.5.0')
depends_on('pumi@2.2.0', when='@0.4.0')
@@ -174,15 +169,17 @@ class Xsdk(BundlePackage):
depends_on('tasmanian@6.0+xsdkflags+blas~openmp', when='@0.4.0')
depends_on('tasmanian@6.0+xsdkflags+blas+cuda+magma~openmp', when='@0.4.0 +cuda')
+ depends_on('arborx@1.0', when='@develop +arborx')
+
# the Fortran 2003 bindings of phist require python@3:, but this
- # creates a conflict with other packages like petsc@develop. Actually
+ # creates a conflict with other packages like petsc@main. Actually
# these are type='build' dependencies, but spack reports a conflict anyway.
# This will be fixed once the new concretizer becomes available
# (says @adamjstewart)
depends_on('phist kernel_lib=tpetra', when='+trilinos +phist')
depends_on('phist kernel_lib=petsc', when='~trilinos +phist')
- depends_on('phist@develop ~fortran ~scamac ~host', when='@develop +phist')
+ depends_on('phist@develop ~fortran ~scamac ~openmp ~host ~int64', when='@develop +phist')
depends_on('phist@1.9.3 ~fortran ~scamac ~openmp ~host ~int64', when='@0.6.0 +phist')
depends_on('phist@1.8.0 ~fortran ~scamac ~openmp ~host ~int64', when='@0.5.0 +phist')
depends_on('phist@1.7.5 ~fortran ~scamac ~openmp ~host ~int64', when='@0.4.0 +phist')
@@ -195,7 +192,9 @@ class Xsdk(BundlePackage):
depends_on('ginkgo@1.1.0 ~openmp+cuda', when='@0.5.0 +cuda +ginkgo')
depends_on('py-libensemble@develop+petsc4py', type='run', when='@develop +libensemble')
+ depends_on('py-petsc4py@main', type='run', when='@develop +libensemble')
depends_on('py-libensemble@0.7.1+petsc4py', type='run', when='@0.6.0 +libensemble')
+ depends_on('py-petsc4py@3.14.0', type='run', when='@0.6.0 +libensemble')
depends_on('py-libensemble@0.5.2+petsc4py', type='run', when='@0.5.0 +libensemble')
depends_on('py-petsc4py@3.12.0', type='run', when='@0.5.0 +libensemble')
@@ -213,13 +212,10 @@ class Xsdk(BundlePackage):
depends_on('heffte@develop+fftw', when='@develop +heffte')
depends_on('heffte@2.0.0+fftw', when='@0.6.0 +heffte')
- depends_on('slate@2020.10.00 ~cuda', when='~cuda +slate %gcc@6.0:')
- depends_on('slate@2020.10.00 +cuda', when='+cuda +slate %gcc@6.0:')
-
- # xSDKTrilinos depends on the version of Trilinos built with
- # +tpetra which is turned off for faster xSDK
- # depends_on('xsdktrilinos@xsdk-0.2.0', when='@xsdk-0.2.0')
- # depends_on('xsdktrilinos@develop', when='@develop')
+ depends_on('slate@master ~cuda', when='@develop ~cuda +slate %gcc@6.0:')
+ depends_on('slate@master +cuda', when='@develop +cuda +slate %gcc@6.0:')
+ depends_on('slate@2020.10.00 ~cuda', when='@0.6.0 ~cuda +slate %gcc@6.0:')
+ depends_on('slate@2020.10.00 +cuda', when='@0.6.0 +cuda +slate %gcc@6.0:')
# How do we propagate debug flag to all depends on packages ?
# If I just do spack install xsdk+debug will that propogate it down?
diff --git a/var/spack/repos/builtin/packages/xsdktrilinos/package.py b/var/spack/repos/builtin/packages/xsdktrilinos/package.py
deleted file mode 100644
index effb4404b0..0000000000
--- a/var/spack/repos/builtin/packages/xsdktrilinos/package.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# 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 Xsdktrilinos(CMakePackage):
- """xSDKTrilinos contains the portions of Trilinos that depend on PETSc
- because they would cause a circular dependency if built as part of
- Trilinos.
- """
- homepage = "https://trilinos.org/"
- url = "https://github.com/trilinos/xSDKTrilinos/archive/trilinos-release-12-8-1.tar.gz"
- git = "https://github.com/trilinos/xSDKTrilinos.git"
-
- version('develop', tag='master')
- version('xsdk-0.2.0', tag='xsdk-0.2.0')
- version('12.8.1', sha256='f545c0821743f23af3b48f242c66bbc4593e3804436336db4eb3bb08622ad794')
- version('12.6.4', sha256='a7664afeab37ccfcbb5aae0bb03cb73ca8e511e0fecc365b9ccd32ba208318e3')
-
- variant('hypre', default=True, description='Compile with Hypre preconditioner')
- variant('petsc', default=True, description='Compile with PETSc solvers')
- variant('shared', default=True, description='Enables the build of shared libraries')
-
- # MPI related dependencies
- depends_on('mpi')
- depends_on('hypre~internal-superlu', when='+hypre')
- depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0+hypre')
- depends_on('hypre@develop~internal-superlu', when='@develop+hypre')
- depends_on('petsc@xsdk-0.2.0+mpi~complex', when='@xsdk-0.2.0+petsc')
- depends_on('petsc@develop+mpi~complex', when='@develop+petsc')
- depends_on('trilinos@12.6.4', when='@12.6.4')
- depends_on('trilinos@12.8.1', when='@12.8.1')
- depends_on('trilinos@xsdk-0.2.0', when='@xsdk-0.2.0')
- depends_on('trilinos@develop', when='@develop')
-
- def url_for_version(self, version):
- url = "https://github.com/trilinos/xSDKTrilinos/archive/trilinos-release-{0}.tar.gz"
- return url.format(version.dashed)
-
- def cmake_args(self):
- spec = self.spec
-
- options = []
-
- mpi_bin = spec['mpi'].prefix.bin
- options.extend([
- '-DxSDKTrilinos_VERBOSE_CONFIGURE:BOOL=OFF',
- '-DxSDKTrilinos_ENABLE_TESTS:BOOL=ON',
- '-DxSDKTrilinos_ENABLE_EXAMPLES:BOOL=ON',
- '-DTrilinos_INSTALL_DIR=%s' % spec['trilinos'].prefix,
- '-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF'),
- '-DTPL_ENABLE_MPI:BOOL=ON',
- '-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix,
- '-DxSDKTrilinos_ENABLE_CXX11:BOOL=ON',
- '-DTPL_ENABLE_HYPRE:BOOL=%s' % (
- 'ON' if '+hypre' in spec else 'OFF'),
- '-DTPL_ENABLE_PETSC:BOOL=%s' % (
- 'ON' if '+petsc' in spec else 'OFF'),
- '-DCMAKE_INSTALL_NAME_DIR:PATH=%s/lib' % self.prefix
- ])
-
- # Fortran lib
- if (spec.satisfies('%gcc') or
- spec.satisfies('%clang') or
- spec.satisfies('%apple-clang')):
- libgfortran = os.path.dirname(os.popen(
- '%s --print-file-name libgfortran.a' %
- join_path(mpi_bin, 'mpif90')).read())
- options.extend([
- '-DxSDKTrilinos_EXTRA_LINK_FLAGS:STRING=-L%s/ -lgfortran' % (
- libgfortran),
- '-DxSDKTrilinos_ENABLE_Fortran=ON'
- ])
-
- return options
diff --git a/var/spack/repos/builtin/packages/xset/package.py b/var/spack/repos/builtin/packages/xset/package.py
index b113bb7cef..ddb0c8cde4 100644
--- a/var/spack/repos/builtin/packages/xset/package.py
+++ b/var/spack/repos/builtin/packages/xset/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xset(AutotoolsPackage, XorgPackage):
"""User preference utility for X."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xset"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xset"
xorg_mirror_path = "app/xset-1.2.3.tar.gz"
version('1.2.3', sha256='5ecb2bb2cbf3c9349b735080b155a08c97b314dacedfc558c7f5a611ee1297f7')
@@ -17,6 +17,6 @@ class Xset(AutotoolsPackage, XorgPackage):
depends_on('libxmu')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xsetmode/package.py b/var/spack/repos/builtin/packages/xsetmode/package.py
index d2da4f613b..dd1281f0c2 100644
--- a/var/spack/repos/builtin/packages/xsetmode/package.py
+++ b/var/spack/repos/builtin/packages/xsetmode/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xsetmode(AutotoolsPackage, XorgPackage):
"""Set the mode for an X Input device."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xsetmode"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xsetmode"
xorg_mirror_path = "app/xsetmode-1.0.0.tar.gz"
version('1.0.0', sha256='9ee0d6cf72dfaacb997f9570779dcbc42f5395ae102180cb19382860b4b02ef3')
diff --git a/var/spack/repos/builtin/packages/xsetpointer/package.py b/var/spack/repos/builtin/packages/xsetpointer/package.py
index ba400c0dc6..6ece3d7b4a 100644
--- a/var/spack/repos/builtin/packages/xsetpointer/package.py
+++ b/var/spack/repos/builtin/packages/xsetpointer/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,14 +9,14 @@ from spack import *
class Xsetpointer(AutotoolsPackage, XorgPackage):
"""Set an X Input device as the main pointer."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xsetpointer"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xsetpointer"
xorg_mirror_path = "app/xsetpointer-1.0.1.tar.gz"
version('1.0.1', sha256='54be93b20fd6f1deac67246d6e214a60b02dcfbf05295e43751f7a04edb986ac')
depends_on('libxi', type='link')
depends_on('libx11', type='link')
- depends_on('inputproto@1.4:', type='link')
+ depends_on('inputproto@1.4:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xsetroot/package.py b/var/spack/repos/builtin/packages/xsetroot/package.py
index 60fc05f912..c8569da50a 100644
--- a/var/spack/repos/builtin/packages/xsetroot/package.py
+++ b/var/spack/repos/builtin/packages/xsetroot/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xsetroot(AutotoolsPackage, XorgPackage):
"""xsetroot - root window parameter setting utility for X."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xsetroot"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xsetroot"
xorg_mirror_path = "app/xsetroot-1.1.1.tar.gz"
version('1.1.1', sha256='6cdd48757d18835251124138b4a8e4008c3bbc51cf92533aa39c6ed03277168b')
@@ -18,7 +18,7 @@ class Xsetroot(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxcursor')
- depends_on('xbitmaps', type='build')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xbitmaps')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xsimd/package.py b/var/spack/repos/builtin/packages/xsimd/package.py
index fcb9d90a11..1ac0073628 100644
--- a/var/spack/repos/builtin/packages/xsimd/package.py
+++ b/var/spack/repos/builtin/packages/xsimd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,16 @@ from spack import *
class Xsimd(CMakePackage):
"""C++ wrappers for SIMD intrinsics"""
- homepage = "http://quantstack.net/xsimd"
+ homepage = "https://quantstack.net/xsimd"
url = "https://github.com/QuantStack/xsimd/archive/3.1.0.tar.gz"
git = "https://github.com/QuantStack/xsimd.git"
maintainers = ['ax3l']
version('develop', branch='master')
+ version('7.5.0', sha256='45337317c7f238fe0d64bb5d5418d264a427efc53400ddf8e6a964b6bcb31ce9')
+ version('7.4.10', sha256='df00f476dea0c52ffebad60924e3f0db2a016b80d508f8d5a2399a74c0d134cd')
+ version('7.4.9', sha256='f6601ffb002864ec0dc6013efd9f7a72d756418857c2d893be0644a2f041874e')
version('7.2.3', sha256='bbc673ad3e9d4523503a4222da05886e086b0e0bd6bd93d03ea3b663c74297b9')
version('4.0.0', sha256='67b818601c15ef15ea4d611a8cd7382588c340ebd9146c799a0210d212540455')
version('3.1.0', sha256='d56288826f6b82fd9583f83ace6aa2306ba2ae82cec003de1d04ce17fbb1e91f')
@@ -30,8 +33,7 @@ class Xsimd(CMakePackage):
def cmake_args(self):
args = [
- '-DBUILD_TESTS:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF')
+ self.define('BUILD_TESTS', self.run_tests)
]
return args
diff --git a/var/spack/repos/builtin/packages/xsm/package.py b/var/spack/repos/builtin/packages/xsm/package.py
index 312223216f..7f0e8c998b 100644
--- a/var/spack/repos/builtin/packages/xsm/package.py
+++ b/var/spack/repos/builtin/packages/xsm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xsm(AutotoolsPackage, XorgPackage):
"""X Session Manager."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xsm"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xsm"
xorg_mirror_path = "app/xsm-1.0.3.tar.gz"
version('1.0.3', sha256='f70815139d62416dbec5915ec37db66f325932a69f6350bb1a74c0940cdc796a')
diff --git a/var/spack/repos/builtin/packages/xstdcmap/package.py b/var/spack/repos/builtin/packages/xstdcmap/package.py
index 23cab1c4ec..2be0f1f7ec 100644
--- a/var/spack/repos/builtin/packages/xstdcmap/package.py
+++ b/var/spack/repos/builtin/packages/xstdcmap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Xstdcmap(AutotoolsPackage, XorgPackage):
create standard colormap definitions in order to facilitate sharing of
scarce colormap resources among clients using PseudoColor visuals."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xstdcmap"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xstdcmap"
xorg_mirror_path = "app/xstdcmap-1.0.3.tar.gz"
version('1.0.3', sha256='b97aaa883a9eedf9c3056ea1a7e818e3d93b63aa1f54193ef481d392bdef5711')
@@ -20,6 +20,6 @@ class Xstdcmap(AutotoolsPackage, XorgPackage):
depends_on('libxmu')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xtensor-python/package.py b/var/spack/repos/builtin/packages/xtensor-python/package.py
index 781e8307bc..16d558af14 100644
--- a/var/spack/repos/builtin/packages/xtensor-python/package.py
+++ b/var/spack/repos/builtin/packages/xtensor-python/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/xtensor/package.py b/var/spack/repos/builtin/packages/xtensor/package.py
index 740f17d4e3..1a82663763 100644
--- a/var/spack/repos/builtin/packages/xtensor/package.py
+++ b/var/spack/repos/builtin/packages/xtensor/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,13 +9,16 @@ from spack import *
class Xtensor(CMakePackage):
"""Multi-dimensional arrays with broadcasting and lazy computing"""
- homepage = "http://quantstack.net/xtensor"
+ homepage = "https://github.com/xtensor-stack/xtensor-io"
url = "https://github.com/QuantStack/xtensor/archive/0.13.1.tar.gz"
git = "https://github.com/QuantStack/xtensor.git"
maintainers = ['ax3l']
version('develop', branch='master')
+ version('0.23.10', sha256='2e770a6d636962eedc868fef4930b919e26efe783cd5d8732c11e14cf72d871c')
+ version('0.23.4', sha256='c8377f8ec995762c89dea2fdf4ac06b53ba491a6f0df3421c4719355e42425d2')
+ version('0.23.2', sha256='fde26dcf93f5d95996b8cc7e556b84930af41ff699492b7b20b2e3335e12f862')
version('0.20.7', sha256='b45290d1bb0d6cef44771e7482f1553b2aa54dbf99ef9406fec3eb1e4d01d52b')
version('0.15.1', sha256='2f4ac632f7aa8c8e9da99ebbfc949d9129b4d644f715ef16c27658bf4fddcdd3')
version('0.13.1', sha256='f9ce4cd2110386d49e3f36bbab62da731c557b6289be19bc172bd7209b92a6bc')
@@ -26,10 +29,13 @@ class Xtensor(CMakePackage):
description='Enable TBB parallelization')
depends_on('xtl', when='@develop')
+ depends_on('xtl@0.7.2:0.7.99', when='@0.23.2:')
depends_on('xtl@0.6.4:0.6.99', when='@0.20.7')
depends_on('xtl@0.4.0:0.4.99', when='@0.15.1')
depends_on('xtl@0.3.3:0.3.99', when='@0.13.1')
depends_on('xsimd', when='@develop')
+ depends_on('xsimd@7.4.10:7.99', when='@0.23.4: +xsimd')
+ depends_on('xsimd@7.4.9:7.99', when='@0.23.2 +xsimd')
depends_on('xsimd@7.2.3:7.99', when='@0.20.7 +xsimd')
depends_on('xsimd@4.0.0:4.99', when='@0.15.1 +xsimd')
depends_on('xsimd@3.1.0:3.99', when='@0.13.1 +xsimd')
@@ -42,15 +48,10 @@ class Xtensor(CMakePackage):
# untested: conflicts('%pgi@:14')
def cmake_args(self):
- spec = self.spec
-
args = [
- '-DBUILD_TESTS:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF'),
- '-DXTENSOR_USE_XSIMD:BOOL={0}'.format(
- 'ON' if '+xsimd' in spec else 'OFF'),
- '-DXTENSOR_USE_TBB:BOOL={0}'.format(
- 'ON' if '+tbb' in spec else 'OFF')
+ self.define('BUILD_TESTS', self.run_tests),
+ self.define_from_variant('XTENSOR_USE_XSIMD', 'xsimd'),
+ self.define_from_variant('XTENSOR_USE_TBB', 'tbb')
]
return args
diff --git a/var/spack/repos/builtin/packages/xterm/package.py b/var/spack/repos/builtin/packages/xterm/package.py
index e72da49f0c..e9509f9bd1 100644
--- a/var/spack/repos/builtin/packages/xterm/package.py
+++ b/var/spack/repos/builtin/packages/xterm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,7 +11,7 @@ class Xterm(AutotoolsPackage):
provides DEC VT102 and Tektronix 4014 compatible terminals for programs
that can't use the window system directly."""
- homepage = "http://invisible-island.net/xterm/"
+ homepage = "https://invisible-island.net/xterm/"
url = "ftp://ftp.invisible-island.net/xterm/xterm-327.tgz"
version('353', sha256='e521d3ee9def61f5d5c911afc74dd5c3a56ce147c7071c74023ea24cac9bb768')
@@ -38,3 +38,4 @@ class Xterm(AutotoolsPackage):
depends_on('bzip2')
depends_on('pkgconfig', type='build')
+ depends_on('termcap', type='link')
diff --git a/var/spack/repos/builtin/packages/xtl/package.py b/var/spack/repos/builtin/packages/xtl/package.py
index 15aa530a82..0ddfc65590 100644
--- a/var/spack/repos/builtin/packages/xtl/package.py
+++ b/var/spack/repos/builtin/packages/xtl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,6 +16,7 @@ class Xtl(CMakePackage):
maintainers = ['ax3l']
version('develop', branch='master')
+ version('0.7.2', sha256='95c221bdc6eaba592878090916383e5b9390a076828552256693d5d97f78357c')
version('0.6.4', sha256='5db5087c37daab3e1d35337782f79972aaaf19218a0de786a0515f247244e390')
version('0.4.0', sha256='2cfe9acbcc4e484f3aa33a98892a09ffe79bb9c0dfd3ffc57b3561f44c591e7c')
version('0.3.4', sha256='618536c3998091b0bdd7f8202e8bec9c34e82409c8ee0ea179a2759bdea426e2')
diff --git a/var/spack/repos/builtin/packages/xtrans/package.py b/var/spack/repos/builtin/packages/xtrans/package.py
index ff7f902661..9c25db8679 100644
--- a/var/spack/repos/builtin/packages/xtrans/package.py
+++ b/var/spack/repos/builtin/packages/xtrans/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Xtrans(AutotoolsPackage, XorgPackage):
single place to add new transport types. It is used by the X server,
libX11, libICE, the X font server, and related components."""
- homepage = "http://cgit.freedesktop.org/xorg/lib/libxtrans"
+ homepage = "https://cgit.freedesktop.org/xorg/lib/libxtrans"
xorg_mirror_path = "lib/xtrans-1.3.5.tar.gz"
version('1.3.5', sha256='b7a577c1b6c75030145e53b4793db9c88f9359ac49e7d771d4385d21b3e5945d')
diff --git a/var/spack/repos/builtin/packages/xtrap/package.py b/var/spack/repos/builtin/packages/xtrap/package.py
index ff6a074b52..dddeab19c3 100644
--- a/var/spack/repos/builtin/packages/xtrap/package.py
+++ b/var/spack/repos/builtin/packages/xtrap/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xtrap(AutotoolsPackage, XorgPackage):
"""XTrap sample clients."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xtrap"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xtrap"
xorg_mirror_path = "app/xtrap-1.0.2.tar.gz"
version('1.0.2', sha256='e8916e05bfb0d72a088aaaac0feaf4ad7671d0f509d1037fb3c0c9ea131b93d2')
diff --git a/var/spack/repos/builtin/packages/xts/package.py b/var/spack/repos/builtin/packages/xts/package.py
index 8c44ffbedf..667a695c93 100644
--- a/var/spack/repos/builtin/packages/xts/package.py
+++ b/var/spack/repos/builtin/packages/xts/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -23,11 +23,11 @@ class Xts(AutotoolsPackage, XorgPackage):
depends_on('libxt', type='link')
depends_on('libxmu', type='link')
depends_on('libxaw', type='link')
- depends_on('inputproto', type='link')
- depends_on('recordproto', type='link')
- depends_on('fixesproto', type='link')
+ depends_on('inputproto')
+ depends_on('recordproto')
+ depends_on('fixesproto')
- depends_on('xtrans', type='build')
+ depends_on('xtrans')
depends_on('bdftopcf', type='build')
depends_on('mkfontdir', type='build')
depends_on('perl', type='build')
diff --git a/var/spack/repos/builtin/packages/xvidtune/package.py b/var/spack/repos/builtin/packages/xvidtune/package.py
index 3d3daa996d..7ee7ee844b 100644
--- a/var/spack/repos/builtin/packages/xvidtune/package.py
+++ b/var/spack/repos/builtin/packages/xvidtune/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xvidtune(AutotoolsPackage, XorgPackage):
"""xvidtune is a client interface to the X server video mode
extension (XFree86-VidModeExtension)."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xvidtune"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xvidtune"
xorg_mirror_path = "app/xvidtune-1.0.3.tar.gz"
version('1.0.3', sha256='c0e158388d60e1ce054ce462958a46894604bd95e13093f3476ec6d9bbd786d4')
diff --git a/var/spack/repos/builtin/packages/xvinfo/package.py b/var/spack/repos/builtin/packages/xvinfo/package.py
index 4be8a63fb0..df3f2e635e 100644
--- a/var/spack/repos/builtin/packages/xvinfo/package.py
+++ b/var/spack/repos/builtin/packages/xvinfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xvinfo(AutotoolsPackage, XorgPackage):
"""xvinfo prints out the capabilities of any video adaptors associated
with the display that are accessible through the X-Video extension."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xvinfo"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xvinfo"
xorg_mirror_path = "app/xvinfo-1.1.3.tar.gz"
version('1.1.3', sha256='1c1c2f97abfe114389e94399cc7bf3dfd802ed30ad41ba23921d005bd8a6c39f')
@@ -18,6 +18,6 @@ class Xvinfo(AutotoolsPackage, XorgPackage):
depends_on('libxv')
depends_on('libx11')
- depends_on('xproto@7.0.25:', type='build')
+ depends_on('xproto@7.0.25:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xwd/package.py b/var/spack/repos/builtin/packages/xwd/package.py
index de2c43c852..5f5b8c8739 100644
--- a/var/spack/repos/builtin/packages/xwd/package.py
+++ b/var/spack/repos/builtin/packages/xwd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Xwd(AutotoolsPackage, XorgPackage):
"""xwd - dump an image of an X window."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xwd"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xwd"
xorg_mirror_path = "app/xwd-1.0.6.tar.gz"
version('1.0.6', sha256='ff01f0a4b736f955aaf7c8c3942211bc52f9fb75d96f2b19777f33fff5dc5b83')
@@ -17,6 +17,6 @@ class Xwd(AutotoolsPackage, XorgPackage):
depends_on('libx11')
depends_on('libxkbfile')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xwidgets/package.py b/var/spack/repos/builtin/packages/xwidgets/package.py
new file mode 100644
index 0000000000..836f2b2fc7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xwidgets/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2021 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 Xwidgets(CMakePackage):
+ """A C++ backend for Jupyter interactive widgets"""
+
+ homepage = "https://github.com/jupyter-xeus/xwidgets"
+ url = "https://github.com/jupyter-xeus/xwidgets/archive/0.25.0.tar.gz"
+ git = "https://github.com/jupyter-xeus/xwidgets.git"
+
+ maintainers = ['tomstitt']
+
+ version('master', branch='master')
+ version('0.25.0', sha256='7b6d36999e3b926c40389167c48b33f234a075365f089f89571b33a160421d8e')
+
+ depends_on('xtl@0.7.0:0.7.999', when='@0.25.0:')
+ depends_on('xproperty@0.11.0:0.11.999', when='@0.25.0:')
+ depends_on('xeus@1.0:1.999', when='@0.25.0:')
+ depends_on('nlohmann-json@3.6.1:3.999.999', when='@0.25.0:')
diff --git a/var/spack/repos/builtin/packages/xwininfo/package.py b/var/spack/repos/builtin/packages/xwininfo/package.py
index 58c25cf4be..198a3da86b 100644
--- a/var/spack/repos/builtin/packages/xwininfo/package.py
+++ b/var/spack/repos/builtin/packages/xwininfo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Xwininfo(AutotoolsPackage, XorgPackage):
"""xwininfo prints information about windows on an X server. Various
information is displayed depending on which options are selected."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xwininfo"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xwininfo"
xorg_mirror_path = "app/xwininfo-1.1.3.tar.gz"
version('1.1.3', sha256='784f8b9c9ddab24ce4faa65fde6430a8d7cf3c0564573582452cc99c599bd941')
@@ -18,6 +18,6 @@ class Xwininfo(AutotoolsPackage, XorgPackage):
depends_on('libxcb@1.6:')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xwud/package.py b/var/spack/repos/builtin/packages/xwud/package.py
index 15dc45a848..3f9a82db5a 100644
--- a/var/spack/repos/builtin/packages/xwud/package.py
+++ b/var/spack/repos/builtin/packages/xwud/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,13 +10,13 @@ class Xwud(AutotoolsPackage, XorgPackage):
"""xwud allows X users to display in a window an image saved in a
specially formatted dump file, such as produced by xwd."""
- homepage = "http://cgit.freedesktop.org/xorg/app/xwud"
+ homepage = "https://cgit.freedesktop.org/xorg/app/xwud"
xorg_mirror_path = "app/xwud-1.0.4.tar.gz"
version('1.0.4', sha256='b7c124ccd87f529daedb7ef01c670ce6049fe141fd9ba7f444361de34510cd6c')
depends_on('libx11')
- depends_on('xproto@7.0.17:', type='build')
+ depends_on('xproto@7.0.17:')
depends_on('pkgconfig', type='build')
depends_on('util-macros', type='build')
diff --git a/var/spack/repos/builtin/packages/xxd-standalone/package.py b/var/spack/repos/builtin/packages/xxd-standalone/package.py
new file mode 100644
index 0000000000..f74253e858
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xxd-standalone/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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)
+
+import os
+
+from spack import *
+
+
+class XxdStandalone(MakefilePackage):
+ """xxd creates a hex dump of a given file or standard input.
+ It is bundled with vim, but as xxd is used in build scripts,
+ it makes sense to have it available as a standalone package."""
+
+ homepage = "https://www.vim.org/"
+ url = "https://github.com/vim/vim/archive/v8.2.1201.tar.gz"
+
+ maintainers = ['haampie']
+ build_targets = ['-C', os.path.join('src', 'xxd')]
+
+ provides('xxd')
+
+ version('8.2.1201', sha256='39032fe866f44724b104468038dc9ac4ff2c00a4b18c9a1e2c27064ab1f1143d')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install(os.path.join(self.build_directory, 'src', 'xxd', 'xxd'), prefix.bin)
diff --git a/var/spack/repos/builtin/packages/xxhash/package.py b/var/spack/repos/builtin/packages/xxhash/package.py
index 3ef3a16f24..34c165cc7a 100644
--- a/var/spack/repos/builtin/packages/xxhash/package.py
+++ b/var/spack/repos/builtin/packages/xxhash/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -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.8.0', sha256='7054c3ebd169c97b64a92d7b994ab63c70dd53a06974f1f630ab782c28db0f4f')
version('0.7.4', sha256='4d9706c9da4fbdf901598f5e3b71db0eddd4ac962e827a73ebf75d66dfd820fe')
version('0.6.5', sha256='19030315f4fc1b4b2cdb9d7a317069a109f90e39d1fe4c9159b7aaa39030eb95')
version('0.6.4', sha256='4570ccd111df6b6386502791397906bf69b7371eb209af7d41debc2f074cdb22')
@@ -32,7 +33,8 @@ class Xxhash(MakefilePackage):
targets = []
if '%nvhpc' in self.spec:
- targets.append('CFLAGS=-O1')
+ if self.spec.satisfies('%nvhpc@:20.11'):
+ targets.append('CFLAGS=-O1')
if 'avx512' in self.spec.target:
# Workaround AVX512 compiler issue
diff --git a/var/spack/repos/builtin/packages/xyce/package.py b/var/spack/repos/builtin/packages/xyce/package.py
new file mode 100644
index 0000000000..494d8780f3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xyce/package.py
@@ -0,0 +1,94 @@
+# Copyright 2013-2021 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 Xyce(CMakePackage):
+ """Xyce (rhymes with 'spice') is an open source, SPICE-compatible,
+ high-performance analog circuit simulator, capable of solving extremely
+ large circuit problems by supporting large-scale parallel computing
+ platforms.
+ Xyce also supports serial execution on all common desktop platforms,
+ and small-scale parallel runs on Unix-like systems. In addition to analog
+ electronic simulation, Xyce has also been used to investigate more general
+ network systems, such as neural networks and power grids.
+ """
+
+ homepage = 'https://xyce.sandia.gov'
+ git = 'https://github.com/Xyce/Xyce.git'
+ url = 'https://github.com/Xyce/Xyce/archive/Release-7.2.0.tar.gz'
+ maintainers = ['kuberry']
+
+ version('github.master', branch='master', preferred=True)
+ version('7.3.0', '43869a70967f573ff6f00451db3f4642684834bdad1fd3926380e3789016b446')
+ version('7.2.0', 'cf49705278ecda46373784bb24925cb97f9017b6adff49e4416de146bdd6a4b5')
+
+ depends_on('cmake@3.13:', type='build')
+ depends_on('flex')
+ depends_on('bison')
+
+ variant('build_type', default='Release',
+ description='CMake build type',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
+
+ variant('mpi', default=True, description='Enable MPI support')
+ depends_on('mpi', when='+mpi')
+
+ variant('pymi', default=False, description='Enable Python Model Interpreter for Xyce')
+ depends_on('python@3:', type=('build', 'link', 'run'), when='+pymi')
+ depends_on('py-pip', type='run', when='+pymi')
+ depends_on('py-pybind11@2.6.1:', when='+pymi')
+
+ # Xyce is built against an older version of Trilinos unlikely to be
+ # used for any other purpose.
+ depends_on('trilinos@12.12.1 +amesos+amesos2+anasazi+aztec+basker+belos+complex+epetra+epetraext+explicit_template_instantiation+fortran+hdf5+ifpack+isorropia+kokkos+nox+sacado+suite-sparse+trilinoscouplings+zoltan+stokhos+epetraextbtf+epetraextexperimental+epetraextgraphreorderings gotype=all')
+
+ # Propagate variants to trilinos:
+ for _variant in ('mpi',):
+ depends_on('trilinos~' + _variant, when='~' + _variant)
+ depends_on('trilinos+' + _variant, when='+' + _variant)
+
+ # The default settings for various Trilinos variants would require the
+ # installation of many more packages than are needed for Xyce.
+ depends_on('trilinos~float~ifpack2~ml~muelu~zoltan2')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ trilinos = spec['trilinos']
+
+ cxx_flags = [self.compiler.cxx_pic_flag]
+ try:
+ cxx_flags.append(self.compiler.cxx11_flag)
+ except ValueError:
+ pass
+ cxx_flags.append("-DXyce_INTRUSIVE_PCE -Wreorder -O3")
+
+ options = []
+ options.extend([
+ '-DTrilinos_DIR:PATH={0}'.format(trilinos.prefix),
+ '-DCMAKE_CXX_FLAGS:STRING={0}'.format(' '.join(cxx_flags)),
+ ])
+
+ if '+mpi' in spec:
+ options.append('-DCMAKE_CXX_COMPILER:STRING={0}'.format(spec['mpi'].mpicxx))
+ else:
+ options.append('-DCMAKE_CXX_COMPILER:STRING={0}'.format(self.compiler.cxx))
+
+ if '+shared' in spec:
+ options.append('-DBUILD_SHARED_LIBS:BOOL=ON')
+ else:
+ options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
+
+ if '+pymi' in spec:
+ pybind11 = spec['py-pybind11']
+ python = spec['python']
+ options.append('-DXyce_PYMI:BOOL=ON')
+ options.append('-Dpybind11_DIR:PATH={0}'.format(pybind11.prefix))
+ options.append('-DPython_ROOT_DIR:FILEPATH={0}'.format(python.prefix))
+ options.append('-DPython_FIND_STRATEGY=LOCATION')
+
+ return options
diff --git a/var/spack/repos/builtin/packages/xz/package.py b/var/spack/repos/builtin/packages/xz/package.py
index 6f8a24848c..6eced02bda 100644
--- a/var/spack/repos/builtin/packages/xz/package.py
+++ b/var/spack/repos/builtin/packages/xz/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -14,9 +14,9 @@ class Xz(AutotoolsPackage, SourceforgePackage):
but also work on some not-so-POSIX systems. XZ Utils are the successor
to LZMA Utils."""
- homepage = "http://tukaani.org/xz/"
+ homepage = "https://tukaani.org/xz/"
sourceforge_mirror_path = "lzmautils/files/xz-5.2.5.tar.bz2"
- list_url = "http://tukaani.org/xz/old.html"
+ list_url = "https://tukaani.org/xz/old.html"
executables = [r'^xz$']
@@ -29,6 +29,12 @@ class Xz(AutotoolsPackage, SourceforgePackage):
variant('pic', default=False,
description='Compile with position independent code.')
+ variant('libs', default='shared,static', values=('shared', 'static'),
+ multi=True, description='Build shared libs, static libs or both')
+
+ def configure_args(self):
+ return self.enable_or_disable('libs')
+
def flag_handler(self, name, flags):
if name == 'cflags' and '+pic' in self.spec:
flags.append(self.compiler.cc_pic_flag)
diff --git a/var/spack/repos/builtin/packages/yajl/package.py b/var/spack/repos/builtin/packages/yajl/package.py
index ff7ed9ffef..49b84f9c89 100644
--- a/var/spack/repos/builtin/packages/yajl/package.py
+++ b/var/spack/repos/builtin/packages/yajl/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -9,7 +9,7 @@ from spack import *
class Yajl(CMakePackage):
"""Yet Another JSON Library (YAJL)"""
- homepage = "http://lloyd.github.io/yajl/"
+ homepage = "https://lloyd.github.io/yajl/"
url = "https://github.com/lloyd/yajl/archive/2.1.0.zip"
git = "https://github.com/lloyd/yajl.git"
diff --git a/var/spack/repos/builtin/packages/yambo/package.py b/var/spack/repos/builtin/packages/yambo/package.py
index df6d585557..9ca26bb7d2 100644
--- a/var/spack/repos/builtin/packages/yambo/package.py
+++ b/var/spack/repos/builtin/packages/yambo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/yaml-cpp/package.py b/var/spack/repos/builtin/packages/yaml-cpp/package.py
index bbaef0f329..63d293ef98 100644
--- a/var/spack/repos/builtin/packages/yaml-cpp/package.py
+++ b/var/spack/repos/builtin/packages/yaml-cpp/package.py
@@ -1,11 +1,10 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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.spec import ConflictsInSpecError
-
yaml_cpp_tests_libcxx_error_msg = 'yaml-cpp tests incompatible with libc++'
@@ -15,8 +14,10 @@ class YamlCpp(CMakePackage):
homepage = "https://github.com/jbeder/yaml-cpp"
url = "https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.5.3.tar.gz"
git = "https://github.com/jbeder/yaml-cpp.git"
+ maintainers = ['eschnett']
version('develop', branch='master')
+ version('0.7.0', sha256='43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3')
version('0.6.3', sha256='77ea1b90b3718aa0c324207cb29418f5bced2354c2e483a9523d98c3460af1ed')
version('0.6.2', sha256='e4d8560e163c3d875fd5d9e5542b5fd5bec810febdcba61481fe5fc4e6b1fd05')
version('0.5.3', sha256='decc5beabb86e8ed9ebeb04358d5363a5c4f72d458b2c788cb2f3ac9c19467b2')
diff --git a/var/spack/repos/builtin/packages/yara/package.py b/var/spack/repos/builtin/packages/yara/package.py
index 92fe48da0d..8e016db6d0 100644
--- a/var/spack/repos/builtin/packages/yara/package.py
+++ b/var/spack/repos/builtin/packages/yara/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Yara(AutotoolsPackage):
"""YARA is a tool aimed at (but not limited to) helping malware researchers
to identify and classify malware samples"""
- homepage = "http://virustotal.github.io/yara/"
+ homepage = "https://virustotal.github.io/yara/"
url = "https://github.com/VirusTotal/yara/archive/v3.9.0.tar.gz"
version('3.9.0', sha256='ebe7fab0abadb90449a62afbd24e196e18b177efe71ffd8bf22df95c5386f64d')
diff --git a/var/spack/repos/builtin/packages/yarn/package.py b/var/spack/repos/builtin/packages/yarn/package.py
index c9a5299a10..65f275e338 100644
--- a/var/spack/repos/builtin/packages/yarn/package.py
+++ b/var/spack/repos/builtin/packages/yarn/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/yasm/package.py b/var/spack/repos/builtin/packages/yasm/package.py
index c6f757b453..e9278e325c 100644
--- a/var/spack/repos/builtin/packages/yasm/package.py
+++ b/var/spack/repos/builtin/packages/yasm/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,8 +12,8 @@ class Yasm(AutotoolsPackage):
GAS assembler syntaxes and outputs binary, ELF32 and ELF64
object formats."""
- homepage = "http://yasm.tortall.net"
- url = "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz"
+ homepage = "https://yasm.tortall.net"
+ url = "https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz"
git = "https://github.com/yasm/yasm.git"
version('develop', branch='master')
diff --git a/var/spack/repos/builtin/packages/ycsb/package.py b/var/spack/repos/builtin/packages/ycsb/package.py
index dafe8311cc..1fa2ab79ae 100644
--- a/var/spack/repos/builtin/packages/ycsb/package.py
+++ b/var/spack/repos/builtin/packages/ycsb/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/yoda/package.py b/var/spack/repos/builtin/packages/yoda/package.py
index 4da424c2a8..45ae109040 100644
--- a/var/spack/repos/builtin/packages/yoda/package.py
+++ b/var/spack/repos/builtin/packages/yoda/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,6 +12,11 @@ class Yoda(AutotoolsPackage):
homepage = "https://yoda.hepforge.org/"
url = "https://yoda.hepforge.org/downloads/?f=YODA-1.8.3.tar.bz2"
+ tags = ['hep']
+
+ version('1.9.0', sha256='9a55de12ffebbe41d1704459c5c9289eeaf0f0eb6a4d0104ea222d7ab889fdf4')
+ version('1.8.5', sha256='4c2e6b8571fc176271515a309b45687a2981af1b07ff3f00d0b035a597aa32fd')
+ version('1.8.4', sha256='9d24a41c9b7cc6eb14cab0a48f65d2fca7ec9d794afe0922ceb158d0153c150e')
version('1.8.3', sha256='d9dd0ea5e0f630cdf4893c09a40c78bd44455777c2125385ecc26fa9a2acba8a')
version('1.8.2', sha256='89558c11cf9b88b0899713e5b4bf8781fdcecc480ff155985ebbf148c6d80bdb')
version('1.8.1', sha256='51472e12065b9469f13906f0dc609e036d0c1dbd2a8e445e7d654aba73660112')
@@ -59,9 +64,12 @@ class Yoda(AutotoolsPackage):
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-cython@0.18:', type='build', when='@:1.4.0')
+ depends_on('py-cython@0.20:', type='build', when='@1.4.0:1.6.5')
+ depends_on('py-cython@0.23.5:', type='build', when='@1.6.5:1.8.0')
+ depends_on('py-cython@0.24:', type='build', when='@1.8.0:')
depends_on('py-matplotlib', when='@1.3.0:', type=('build', 'run'))
- depends_on('root', type=('build', 'run'), when='+root')
+ depends_on('root', type=('build', 'link', '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')
@@ -73,12 +81,15 @@ class Yoda(AutotoolsPackage):
patch('yoda-1.6.6.patch', level=0, when='@1.6.6')
patch('yoda-1.6.7.patch', level=0, when='@1.6.7')
+ conflicts("%gcc@10:", when="@:1.8.5",
+ msg="yoda up to 1.8.5 is missing a <limits> include in AnalysisObject.h."
+ "Use version 1.9.0 or later, or patch earlier versions if needed.")
+
def configure_args(self):
args = []
if self.spec.satisfies('@:1.6.0'):
- args += '--with-boost=' + self.spec['boost'].prefix
+ args.append('--with-boost=' + self.spec['boost'].prefix)
- if '+root' in self.spec:
- args += '--enable-root'
+ args.extend(self.enable_or_disable('root'))
return args
diff --git a/var/spack/repos/builtin/packages/yorick/package.py b/var/spack/repos/builtin/packages/yorick/package.py
index eb3e2a3698..72fe5d8c32 100644
--- a/var/spack/repos/builtin/packages/yorick/package.py
+++ b/var/spack/repos/builtin/packages/yorick/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -16,7 +16,7 @@ class Yorick(Package):
most operating systems (*nix systems, MacOS X, Windows).
"""
- homepage = "http://dhmunro.github.io/yorick-doc/"
+ homepage = "https://dhmunro.github.io/yorick-doc/"
url = "https://github.com/dhmunro/yorick/archive/y_2_2_04.tar.gz"
git = "https://github.com/dhmunro/yorick.git"
diff --git a/var/spack/repos/builtin/packages/z-checker/package.py b/var/spack/repos/builtin/packages/z-checker/package.py
index 215cfbff66..f6f170fa3b 100644
--- a/var/spack/repos/builtin/packages/z-checker/package.py
+++ b/var/spack/repos/builtin/packages/z-checker/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,10 +12,12 @@ class ZChecker(AutotoolsPackage):
"""a library to perform the compression assessment for lossy compressors"""
homepage = "https://github.com/CODARcode/Z-checker"
- url = "https://github.com/CODARcode/Z-checker/releases/download/0.5.0/Z-checker-0.5.0.tar.gz"
+ url = "https://github.com/CODARcode/Z-checker/releases/download/0.7.0/Z-checker-0.7.0.tar.gz"
maintainers = ['disheng222']
+ version('0.7.0', sha256='02caf3af2dc59d116496f877da888dd2c2dffb9375c413b1d74401927963df3f')
+ version('0.6.0', sha256='b01c2c78157234a734c2f4c10a7ab82c329d3cd1a8389d597e09386fa33a3117')
version('0.5.0', sha256='ad5e68472c511b393ee1ae67d2e3072a22004001cf19a14bd99a2e322a6ce7f9')
variant('mpi', default=False,
diff --git a/var/spack/repos/builtin/packages/z3/package.py b/var/spack/repos/builtin/packages/z3/package.py
index 462316cbdf..7995f9491f 100644
--- a/var/spack/repos/builtin/packages/z3/package.py
+++ b/var/spack/repos/builtin/packages/z3/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -7,46 +7,48 @@
from spack import *
-class Z3(MakefilePackage):
+class Z3(CMakePackage):
"""Z3 is a theorem prover from Microsoft Research.
It is licensed under the MIT license."""
homepage = "https://github.com/Z3Prover/z3/wiki"
url = "https://github.com/Z3Prover/z3/archive/z3-4.5.0.tar.gz"
+ version('4.8.9', sha256='c9fd04b9b33be74fffaac3ec2bc2c320d1a4cc32e395203c55126b12a14ff3f4')
+ version('4.8.8', sha256='6962facdcdea287c5eeb1583debe33ee23043144d0e5308344e6a8ee4503bcff')
version('4.8.7', sha256='8c1c49a1eccf5d8b952dadadba3552b0eac67482b8a29eaad62aa7343a0732c3')
version('4.5.0', sha256='aeae1d239c5e06ac183be7dd853775b84698db1265cb2258e5918a28372d4a0c')
- version('4.4.1', sha256='50967cca12c5c6e1612d0ccf8b6ebf5f99840a783d6cf5216336a2b59c37c0ce')
- version('4.4.0', sha256='65b72f9eb0af50949e504b47080fb3fc95f11c435633041d9a534473f3142cba')
- phases = ['bootstrap', 'build', 'install']
-
- variant('python', default=True, description='Enable python binding')
- depends_on('python', type=('build', 'run'))
+ variant('python', default=False, description='Enable python binding')
+ depends_on('python', type='build', when='~python')
+ depends_on('python', type=('build', 'run'), when='+python')
depends_on('py-setuptools', type=('run'), when='+python')
extends('python', when='+python')
+ variant('gmp', default=False, description='GNU multiple precision library support')
+ depends_on('cmake@3.4:', type='build')
+ depends_on('gmp', when='+gmp', type=('build', 'link'))
+
# Referenced: https://github.com/Z3Prover/z3/issues/1016
- patch('fix_1016_1.patch', when='@:4.4.1')
patch('fix_1016_2.patch', when='@4.5.0')
build_directory = 'build'
- def configure_args(self):
+ def cmake_args(self):
spec = self.spec
- args = []
+ args = [
+ self.define_from_variant('Z3_USE_LIB_GMP', 'gmp'),
+ self.define_from_variant('Z3_BUILD_PYTHON_BINDINGS', 'python'),
+ self.define_from_variant('Z3_INSTALL_PYTHON_BINDINGS', 'python')
+ ]
if spec.satisfies('+python'):
- args.append('--python')
args.append(
- '--pypkgdir=%s' % join_path(
+ self.define('CMAKE_INSTALL_PYTHON_PKG_DIR', join_path(
prefix.lib,
'python%s' % spec['python'].version.up_to(2),
'site-packages'))
+ )
return args
-
- def bootstrap(self, spec, prefix):
- options = ['--prefix={0}'.format(prefix)] + self.configure_args()
- spec['python'].command('scripts/mk_make.py', *options)
diff --git a/var/spack/repos/builtin/packages/zabbix/package.py b/var/spack/repos/builtin/packages/zabbix/package.py
index 6c1f96f362..c8a423b922 100644
--- a/var/spack/repos/builtin/packages/zabbix/package.py
+++ b/var/spack/repos/builtin/packages/zabbix/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -10,7 +10,7 @@ class Zabbix(AutotoolsPackage):
"""Real-time monitoring of IT components and services,
such as networks, servers, VMs, applications and the cloud."""
- homepage = "http://www.zabbix.com"
+ homepage = "https://www.zabbix.com"
url = "https://github.com/zabbix/zabbix/archive/5.0.3.tar.gz"
version('5.0.3', sha256='d579c5fa4e9065e8041396ace24d7132521ef5054ce30dfd9d151cbb7f0694ec')
diff --git a/var/spack/repos/builtin/packages/zfp/package.py b/var/spack/repos/builtin/packages/zfp/package.py
index 44a659c193..e3416ab76c 100644
--- a/var/spack/repos/builtin/packages/zfp/package.py
+++ b/var/spack/repos/builtin/packages/zfp/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -6,26 +6,48 @@
from spack import *
-class Zfp(CMakePackage):
- """zfp is an open source C/C++ library for high-fidelity, high-throughput
- lossy compression of floating-point and integer multi-dimensional
+class Zfp(CMakePackage, CudaPackage):
+ """zfp is a compressed number format for multidimensional floating-point
+ and integer arrays.
+
+ zfp provides compressed-array classes that support high throughput
+ read and write random access to individual array elements. zfp also
+ supports serial and parallel (OpenMP and CUDA) compression of whole
arrays.
"""
- homepage = 'http://computing.llnl.gov/projects/floating-point-compression'
- url = 'http://computing.llnl.gov/projects/floating-point-compression/download/zfp-0.5.2.tar.gz'
+ # Package info
+ homepage = 'https://zfp.llnl.gov'
+ url = 'https://github.com/LLNL/zfp/releases/download/0.5.5/zfp-0.5.5.tar.gz'
+ git = 'https://github.com/LLNL/zfp.git'
+ maintainers = ['lindstro', 'GarrettDMorrison']
+ # Versions
+ version('develop', branch='develop')
version('0.5.5', sha256='fdf7b948bab1f4e5dccfe2c2048fd98c24e417ad8fb8a51ed3463d04147393c5')
- version('0.5.4', sha256='768a05ed9bf10e54ac306f90b81dd17b0e7b13782f01823d7da4394fd2da8adb')
- version('0.5.2', sha256='89e718edb966422b5898b5c37b1b0a781d4effacb511520558469e3ff7f65d7c')
- version('0.5.1', sha256='867c04cf965f1c70d9725b396c6e1b5d29db55b0d69b8e87a995aaebd221b830')
-
- variant('bsws',
- default='64',
- values=('8', '16', '32', '64'),
- multi=False,
- description='Bit stream word size: use smaller for finer '
- 'rate granularity. Use 8 for H5Z-ZFP filter.')
+ version('0.5.4', sha256='746e17aaa401c67dcffd273d6e6f95c76adfbbd5cf523dcad56d09e9d3b71196')
+ version('0.5.3', sha256='a5d2f8e5b47a7c92e2a5775b82cbfb3a76c87d0ac83d25abb4ac10ea75a2856e')
+ version('0.5.2', sha256='9c738ec525cc76b4bb80b2b3f7c9f07507eeda3a341470e5942cda97efbe9a4f', url='https://github.com/LLNL/zfp/archive/0.5.2/zfp-0.5.2.tar.gz')
+ version('0.5.1', sha256='f255dd1708c9ae4dc6a56dd2614e8b47a10d833c87fd349cbd47545a19c2b779', url='https://github.com/LLNL/zfp/archive/0.5.1/zfp-0.5.1.tar.gz')
+
+ # Build targets
+ # TODO: variant('utilities', default=True, description='Build utilities')
+ variant('shared', default=True, description='Build shared libraries')
+
+ # Language bindings
+ variant('c', default=False, description='Enable C bindings')
+ variant('python', default=False, description='Enable Python bindings')
+ variant('fortran', default=False, description='Enable Fortran bindings')
+
+ # Execution policies
+ variant('openmp', default=False, description='Enable OpenMP execution')
+ variant('cuda', default=False, description='Enable CUDA execution')
+
+ # Advanced options
+ variant('bsws', default='64', values=('8', '16', '32', '64'), multi=False,
+ description='Bit stream word size: '
+ 'use smaller for finer rate granularity. '
+ 'Use 8 for H5Z-ZFP filter.')
variant('strided', default=False,
description='Enable strided access for progressive zfp streams')
variant('aligned', default=False,
@@ -36,32 +58,57 @@ class Zfp(CMakePackage):
description='Use a faster but more collision prone hash function')
variant('profile', default=False,
description='Count cache misses')
- variant('shared', default=True,
- description='Build shared versions of the library')
+ # Conflicts
+ conflicts('+c', when='@:0.5.3',
+ msg='+c requires zfp 0.5.4 or later')
+ conflicts('+python', when='@:0.5.4',
+ msg='+python requires zfp 0.5.5 or later')
+ conflicts('+fortran', when='@:0.5.4',
+ msg='+fortran requires zfp 0.5.5 or later')
+ conflicts('+openmp', when='@:0.5.2',
+ msg='+openmp requires zfp 0.5.3 or later')
+ conflicts('+cuda', when='@:0.5.3',
+ msg='+cuda requires zfp 0.5.4 or later')
+ conflicts('+fasthash', when='@:0.5.1',
+ msg='+fasthash requires zfp 0.5.2 or later')
+ conflicts('+profile', when='@:0.5.1',
+ msg='+profile requires zfp 0.5.2 or later')
+
+ # Dependencies
depends_on('cmake@3.4.0:', type='build')
+ depends_on('cuda@7:', type=('build', 'test', 'run'), when='+cuda')
+ depends_on('python', type=('build', 'test', 'run'), when='+python')
+ depends_on('py-numpy', type=('build', 'test', 'run'), when='+python')
+ depends_on('py-cython', type='build', when='+python')
def cmake_args(self):
spec = self.spec
+ # CMake options
args = [
- '-DZFP_BIT_STREAM_WORD_SIZE:STRING={0}'.format(
- spec.variants['bsws'].value),
- '-DZFP_WITH_BIT_STREAM_STRIDED:BOOL={0}'.format(
- 'ON' if '+strided' in spec else 'OFF'),
- '-DZFP_WITH_ALIGNED_ALLOC:BOOL={0}'.format(
- 'ON' if '+aligned' in spec else 'OFF'),
- '-DZFP_WITH_CACHE_TWOWAY:BOOL={0}'.format(
- 'ON' if '+twoway' in spec else 'OFF'),
- '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
- 'ON' if '+shared' in spec else 'OFF'),
- '-DBUILD_TESTING:BOOL={0}'.format(
- 'ON' if self.run_tests else 'OFF')
+ # TODO: self.define_from_variant('BUILD_UTILITIES', 'utilities'),
+ self.define('BUILD_TESTING', self.run_tests),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define_from_variant('BUILD_CFP', 'c'),
+ self.define_from_variant('BUILD_ZFPY', 'python'),
+ self.define_from_variant('BUILD_ZFORP', 'fortran'),
+ self.define_from_variant('ZFP_WITH_OPENMP', 'openmp'),
+ self.define_from_variant('ZFP_WITH_CUDA', 'cuda'),
+ self.define('ZFP_BIT_STREAM_WORD_SIZE',
+ spec.variants['bsws'].value),
+ self.define_from_variant('ZFP_WITH_BIT_STREAM_STRIDED', 'strided'),
+ self.define_from_variant('ZFP_WITH_ALIGNED_ALLOC', 'aligned'),
+ self.define_from_variant('ZFP_WITH_CACHE_TWOWAY', 'twoway'),
+ self.define_from_variant('ZFP_WITH_CACHE_FAST_HASH', 'fasthash'),
+ self.define_from_variant('ZFP_WITH_CACHE_PROFILE', 'profile'),
]
- if spec.version >= Version('0.5.2'):
- args.append('-DZFP_WITH_CACHE_FAST_HASH:BOOL={0}'.format(
- 'ON' if '+fasthash' in spec else 'OFF'))
- args.append('-DZFP_WITH_CACHE_PROFILE:BOOL={0}'.format(
- 'ON' if '+profile' in spec else 'OFF'))
+
+ if '+cuda' in spec:
+ args.append('-DCUDA_BIN_DIR={0}'.format(spec['cuda'].prefix.bin))
+
+ if not spec.satisfies('cuda_arch=none'):
+ cuda_arch = spec.variants['cuda_arch'].value
+ args.append('-DCMAKE_CUDA_FLAGS=-arch sm_{0}'.format(cuda_arch[0]))
return args
diff --git a/var/spack/repos/builtin/packages/zfs/package.py b/var/spack/repos/builtin/packages/zfs/package.py
index 819dc2d755..d8fe42004e 100644
--- a/var/spack/repos/builtin/packages/zfs/package.py
+++ b/var/spack/repos/builtin/packages/zfs/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -20,7 +20,7 @@ class Zfs(AutotoolsPackage):
version('0.8.1', sha256='0af79fde44b7b8ecb94d5166ce2e4fff7409c20ed874c2d759db92909e6c2799')
version('0.8.0', sha256='0fd92e87f4b9df9686f18e2ac707c16b2eeaf00f682d41c20ea519f3a0fe4705')
- depends_on('libuuid')
+ depends_on('uuid')
depends_on('libtirpc')
depends_on('util-linux')
diff --git a/var/spack/repos/builtin/packages/zig/package.py b/var/spack/repos/builtin/packages/zig/package.py
new file mode 100644
index 0000000000..c29f71ba28
--- /dev/null
+++ b/var/spack/repos/builtin/packages/zig/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2021 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 Zig(CMakePackage):
+ """A general-purpose programming language and toolchain for maintaining
+ robust, optimal, and reusable software.
+ """
+
+ homepage = "https://ziglang.org/"
+ git = "https://github.com/ziglang/zig.git"
+
+ version('0.7.1', tag='0.7.1')
+
+ variant(
+ 'build_type', values=('Release', 'RelWithDebInfo', 'MinSizeRel'),
+ default='Release', description='CMake build type'
+ )
+
+ depends_on('llvm@11.0.0: +all_targets')
+
+ provides('ziglang')
diff --git a/var/spack/repos/builtin/packages/zip/package.py b/var/spack/repos/builtin/packages/zip/package.py
index a7ae19af67..5e4e951235 100644
--- a/var/spack/repos/builtin/packages/zip/package.py
+++ b/var/spack/repos/builtin/packages/zip/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/zipkin/package.py b/var/spack/repos/builtin/packages/zipkin/package.py
index 8a584c4ece..f13a24eb74 100644
--- a/var/spack/repos/builtin/packages/zipkin/package.py
+++ b/var/spack/repos/builtin/packages/zipkin/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/zlib-ng/package.py b/var/spack/repos/builtin/packages/zlib-ng/package.py
new file mode 100644
index 0000000000..da60c4d697
--- /dev/null
+++ b/var/spack/repos/builtin/packages/zlib-ng/package.py
@@ -0,0 +1,28 @@
+# Copyright 2013-2021 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 ZlibNg(CMakePackage):
+ """zlib replacement with optimizations for next generation systems."""
+
+ homepage = "https://github.com/zlib-ng/zlib-ng"
+ url = "https://github.com/zlib-ng/zlib-ng/archive/2.0.0.tar.gz"
+
+ version('2.0.0', sha256='86993903527d9b12fc543335c19c1d33a93797b3d4d37648b5addae83679ecd8')
+
+ variant('compat', default=False, description='Enable compatibility API')
+ variant('opt', default=True, description='Enable optimizations')
+
+ depends_on('cmake@3.5.1:', type='build')
+
+ def cmake_args(self):
+ args = [
+ self.define_from_variant('ZLIB_COMPAT', 'compat'),
+ self.define_from_variant('WITH_OPTIM', 'opt'),
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/zlib/package.py b/var/spack/repos/builtin/packages/zlib/package.py
index 0d30f2d67c..7ca45d4215 100644
--- a/var/spack/repos/builtin/packages/zlib/package.py
+++ b/var/spack/repos/builtin/packages/zlib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,9 @@ class Zlib(Package):
data-compression library.
"""
- homepage = "http://zlib.net"
+ homepage = "https://zlib.net"
# URL must remain http:// so Spack can bootstrap curl
- url = "http://zlib.net/fossils/zlib-1.2.11.tar.gz"
+ url = "https://zlib.net/fossils/zlib-1.2.11.tar.gz"
version('1.2.11', sha256='c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1')
# Due to the bug fixes, any installations of 1.2.9 or 1.2.10 should be
diff --git a/var/spack/repos/builtin/packages/zoltan/package.py b/var/spack/repos/builtin/packages/zoltan/package.py
index 6c91069e59..1ea4aee31c 100644
--- a/var/spack/repos/builtin/packages/zoltan/package.py
+++ b/var/spack/repos/builtin/packages/zoltan/package.py
@@ -1,12 +1,13 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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 re
+from spack import *
+
class Zoltan(AutotoolsPackage):
"""The Zoltan library is a toolkit of parallel combinatorial algorithms
@@ -20,12 +21,9 @@ class Zoltan(AutotoolsPackage):
"""
homepage = "http://www.cs.sandia.gov/zoltan"
- url = "http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions/zoltan_distrib_v3.83.tar.gz"
+ url = "https://github.com/sandialabs/Zoltan/archive/v3.83.tar.gz"
- version('3.83', sha256='d0d78fdeab7a385c87d3666b8a8dc748994ff04d3fd846872a4845e12d79c1bb')
- version('3.8', sha256='5bdd46548fb9c73b225bbcf3d206c558c318cb292f0b19645e536315d14aafb7')
- version('3.6', sha256='d2cb41e5fb72ca564b24bc5f21d82d9f7992f2c977bc82b243a01a8a8ee4eb9c')
- version('3.3', sha256='8a90585674ab1bbd011dab29f778b9816519712c78d0aab4cdde9c68f02b30dc')
+ version('3.83', sha256='17320a9f08e47f30f6f3846a74d15bfea6f3c1b937ca93c0ab759ca02c40e56c')
patch('notparallel.patch', when='@3.8')
@@ -39,6 +37,7 @@ class Zoltan(AutotoolsPackage):
depends_on('mpi', when='+mpi')
+ depends_on('parmetis@4: +int64', when='+parmetis+int64')
depends_on('parmetis@4:', when='+parmetis')
depends_on('metis+int64', when='+parmetis+int64')
depends_on('metis', when='+parmetis')
@@ -90,6 +89,13 @@ class Zoltan(AutotoolsPackage):
'-g' if '+debug' in spec else '',
]
+ config_ldflags = []
+ # PGI runtime libraries
+ if '%pgi' in spec:
+ config_ldflags.append('-pgf90libs')
+ # NVHPC runtime libraries
+ if '%nvhpc' in spec:
+ config_ldflags.append('-fortranlibs')
if '+shared' in spec:
config_args.extend([
'RANLIB=echo',
@@ -142,7 +148,8 @@ class Zoltan(AutotoolsPackage):
config_args.extend([
'--with-cflags={0}'.format(' '.join(config_cflags)),
'--with-cxxflags={0}'.format(' '.join(config_cflags)),
- '--with-fcflags={0}'.format(' '.join(config_fcflags))
+ '--with-fcflags={0}'.format(' '.join(config_fcflags)),
+ '--with-ldflags={0}'.format(' '.join(config_ldflags))
])
return config_args
diff --git a/var/spack/repos/builtin/packages/zookeeper-benchmark/package.py b/var/spack/repos/builtin/packages/zookeeper-benchmark/package.py
index 7cb8f74068..ec9decccaf 100644
--- a/var/spack/repos/builtin/packages/zookeeper-benchmark/package.py
+++ b/var/spack/repos/builtin/packages/zookeeper-benchmark/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -8,7 +8,7 @@ class ZookeeperBenchmark(MavenPackage):
"""It is designed to measure the per-request latency of a ZooKeeper
ensemble for a predetermined length of time"""
- homepage = "http://zookeeper.apache.org"
+ homepage = "https://zookeeper.apache.org"
git = "https://github.com/brownsys/zookeeper-benchmark.git"
version('master', branch='master')
diff --git a/var/spack/repos/builtin/packages/zookeeper/package.py b/var/spack/repos/builtin/packages/zookeeper/package.py
index bd4e09efd4..df0950b596 100644
--- a/var/spack/repos/builtin/packages/zookeeper/package.py
+++ b/var/spack/repos/builtin/packages/zookeeper/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/builtin/packages/zsh/package.py b/var/spack/repos/builtin/packages/zsh/package.py
index 1288eddbad..85e5ca03d6 100644
--- a/var/spack/repos/builtin/packages/zsh/package.py
+++ b/var/spack/repos/builtin/packages/zsh/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -12,7 +12,7 @@ class Zsh(AutotoolsPackage):
tcsh were incorporated into zsh; many original features were added.
"""
- homepage = "http://www.zsh.org"
+ homepage = "https://www.zsh.org"
url = "http://downloads.sourceforge.net/project/zsh/zsh/5.4.2/zsh-5.4.2.tar.xz"
version('5.8', sha256='dcc4b54cc5565670a65581760261c163d720991f0d06486da61f8d839b52de27')
diff --git a/var/spack/repos/builtin/packages/zstd/package.py b/var/spack/repos/builtin/packages/zstd/package.py
index 9589a6ff78..bbee22d7b5 100644
--- a/var/spack/repos/builtin/packages/zstd/package.py
+++ b/var/spack/repos/builtin/packages/zstd/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -11,9 +11,17 @@ class Zstd(MakefilePackage):
algorithm, targeting real-time compression scenarios at zlib-level and
better compression ratios."""
- homepage = "http://facebook.github.io/zstd/"
+ homepage = "https://facebook.github.io/zstd/"
url = "https://github.com/facebook/zstd/archive/v1.4.3.tar.gz"
+ git = "https://github.com/facebook/zstd.git"
+ maintainers = ['haampie']
+
+ version('develop', branch='dev')
+ version('1.5.0', sha256='0d9ade222c64e912d6957b11c923e214e2e010a18f39bec102f572e693ba2867')
+ version('1.4.9', sha256='acf714d98e3db7b876e5b540cbf6dee298f60eb3c0723104f6d3f065cd60d6a8')
+ version('1.4.8', sha256='f176f0626cb797022fbf257c3c644d71c1c747bb74c32201f9203654da35e9fa')
+ version('1.4.7', sha256='085500c8d0b9c83afbc1dc0d8b4889336ad019eba930c5d6a9c6c86c20c769c8')
version('1.4.5', sha256='734d1f565c42f691f8420c8d06783ad818060fc390dee43ae0a89f86d0a4f8c2')
version('1.4.4', sha256='a364f5162c7d1a455cc915e8e3cf5f4bd8b75d09bc0f53965b0c9ca1383c52c8')
version('1.4.3', sha256='5eda3502ecc285c3c92ee0cc8cd002234dee39d539b3f692997a0e80de1d33de')
@@ -23,39 +31,18 @@ class Zstd(MakefilePackage):
version('1.3.0', sha256='0fdba643b438b7cbce700dcc0e7b3e3da6d829088c63757a5984930e2f70b348')
version('1.1.2', sha256='980b8febb0118e22f6ed70d23b5b3e600995dbf7489c1f6d6122c1411cdda8d8')
- variant('pic', default=True, description='Build position independent code')
-
- depends_on('zlib')
+ variant('programs', default=False, description='Build executables')
- def setup_build_environment(self, env):
- if '+pic' in self.spec:
- env.append_flags('CFLAGS', self.compiler.cc_pic_flag)
+ depends_on('zlib', when='+programs')
+ depends_on('lzma', when='+programs')
+ depends_on('lz4', when='+programs')
def build(self, spec, prefix):
- make('PREFIX={0}'.format(prefix))
+ make('-C', 'lib')
+ if spec.variants['programs'].value:
+ make('-C', 'programs')
def install(self, spec, prefix):
- make('install', 'PREFIX={0}'.format(prefix))
-
- def patch(self):
- # Remove flags not understood by the NVIDIA compilers
- if self.spec.satisfies('%nvhpc'):
- filter_file('-fvisibility=hidden', '', 'lib/Makefile')
- filter_file('-Wc++-compat', '', 'lib/Makefile', string=True)
- filter_file('-Wcast-align', '', 'lib/Makefile')
- filter_file('-Wcast-qual', '', 'lib/Makefile')
- filter_file('-Wdeclaration-after-statement', '', 'lib/Makefile')
- filter_file('-Wextra', '', 'lib/Makefile')
- filter_file('-Wfloat-equal', '', 'lib/Makefile')
- filter_file('-Wformat=2', '', 'lib/Makefile')
- filter_file('-Winit-self', '', 'lib/Makefile')
- filter_file('-Wmissing-prototypes', '', 'lib/Makefile')
- filter_file('-Wpointer-arith', '', 'lib/Makefile')
- filter_file('-Wredundant-decls', '', 'lib/Makefile')
- filter_file('-Wshadow', '', 'lib/Makefile')
- filter_file('-Wstrict-aliasing=1', '', 'lib/Makefile')
- filter_file('-Wstrict-prototypes', '', 'lib/Makefile')
- filter_file('-Wswitch-enum', '', 'lib/Makefile')
- filter_file('-Wundef', '', 'lib/Makefile')
- filter_file('-Wvla', '', 'lib/Makefile')
- filter_file('-Wwrite-strings', '', 'lib/Makefile')
+ make('-C', 'lib', 'install', 'PREFIX={0}'.format(prefix))
+ if spec.variants['programs'].value:
+ make('-C', 'programs', 'install', 'PREFIX={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/zstr/package.py b/var/spack/repos/builtin/packages/zstr/package.py
new file mode 100644
index 0000000000..6883f9a6a6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/zstr/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2021 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 Zstr(Package):
+ """This C++ header-only library enables the use of C++ standard
+ iostreams to access ZLib-compressed streams."""
+
+ homepage = "https://github.com/mateidavid/zstr"
+ url = "https://github.com/mateidavid/zstr/archive/v1.0.4.tar.gz"
+
+ maintainers = ['bvanessen']
+
+ version('1.0.4', sha256='a594a3a9c192a6d9e93f9585910d41f7ee6791eb7c454d40c922656324b3058e')
+ version('1.0.3', sha256='d42f1b08e4c3a26e3b42433691d32765015cf89f089ae075b1acb819ccba585f')
+ version('1.0.2', sha256='b4c2d72f0f222b72985fc6c2bd2bd9c1fc353d2e4c8c12186fd87229107a442b')
+ version('1.0.1', sha256='e17e67e00ede182504b3165cebd802420770541465d4ba41df1a15bf4c2a63b7')
+ version('1.0.0', sha256='9f4fa8cb0d2cbba03dfe67900c48b6e75c8380d9263a0ac71d795f11e0224b96')
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ """Make the install targets - Note that this package
+ keeps it's headers in the src directory"""
+ install_tree(join_path(self.stage.source_path, 'src'),
+ prefix.include)
diff --git a/var/spack/repos/builtin/packages/zziplib/package.py b/var/spack/repos/builtin/packages/zziplib/package.py
index c8f96738d3..8e7ecaea51 100644
--- a/var/spack/repos/builtin/packages/zziplib/package.py
+++ b/var/spack/repos/builtin/packages/zziplib/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
@@ -15,15 +15,48 @@ class Zziplib(AutotoolsPackage):
homepage = "https://github.com/gdraheim/zziplib"
url = "https://github.com/gdraheim/zziplib/archive/v0.13.69.tar.gz"
+ # Switch to CMake from 0.13.70, first working release is 0.13.71
+ version('0.13.72', sha256='93ef44bf1f1ea24fc66080426a469df82fa631d13ca3b2e4abaeab89538518dc')
version('0.13.69', sha256='846246d7cdeee405d8d21e2922c6e97f55f24ecbe3b6dcf5778073a88f120544')
- patch('python2to3.patch')
+ patch('python2to3.patch', when='@:0.13.69')
build_directory = 'spack-build'
+ depends_on('python@3.5:', type='build', when='@0.13.71:')
+ depends_on('cmake', type='build', when='@0.13.71:')
depends_on('python', type='build')
depends_on('zlib')
+ # see zzip/CMakeLists.txt
+ depends_on('coreutils', type='build', when='@0.13.71:')
+ depends_on('pkgconfig', type='build', when='@0.13.71:')
+
+ @when('@0.13.71:')
+ def autoreconf(self, spec, prefix):
+ touch('configure')
+
+ @when('@0.13.71:')
+ def _cmake_args(self):
+ spec = self.spec
+ args = []
+ zlib = spec['zlib']
+ # Do not use self.define('VAR', path) unless a CMakePackage
+ args.extend([
+ '-DZLIB_LIBRARY:FILEPATH={0}'.format(zlib.libs[0]),
+ '-DZLIB_INCLUDE_DIR:FILEPATH={0}'.format(zlib.headers.directories[0])
+ ])
+ args.append('-DPYTHON_EXECUTABLE:FILEPATH={0}'.format(
+ spec['python'].command.path))
+ args.append('-DCMAKE_INSTALL_PREFIX:PATH={0}'.format(spec.prefix))
+
+ return args
def configure_args(self):
args = ['--with-zlib={0}'.format(self.spec['zlib'].prefix)]
return args
+
+ @when('@0.13.71:')
+ def configure(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake_args = self._cmake_args()
+ cmake('..', *cmake_args)
diff --git a/var/spack/repos/tutorial/packages/armadillo/package.py b/var/spack/repos/tutorial/packages/armadillo/package.py
index 13fabc20b3..77be3376c1 100644
--- a/var/spack/repos/tutorial/packages/armadillo/package.py
+++ b/var/spack/repos/tutorial/packages/armadillo/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/tutorial/packages/elpa/package.py b/var/spack/repos/tutorial/packages/elpa/package.py
index 7fc10ef8fa..ad483ed0b7 100644
--- a/var/spack/repos/tutorial/packages/elpa/package.py
+++ b/var/spack/repos/tutorial/packages/elpa/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
diff --git a/var/spack/repos/tutorial/packages/hdf5/h5public-skip-mpicxx.patch b/var/spack/repos/tutorial/packages/hdf5/h5public-skip-mpicxx.patch
new file mode 100644
index 0000000000..d609345527
--- /dev/null
+++ b/var/spack/repos/tutorial/packages/hdf5/h5public-skip-mpicxx.patch
@@ -0,0 +1,11 @@
+--- a/src/H5public.h 2019-08-28 18:51:39.393781356 -0400
++++ b/src/H5public.h 2019-08-28 20:59:50.315181711 -0400
+@@ -57,6 +57,8 @@
+ # include <stddef.h>
+ #endif
+ #ifdef H5_HAVE_PARALLEL
++# define MPICH_SKIP_MPICXX 1
++# define OMPI_SKIP_MPICXX 1
+ # include <mpi.h>
+ #ifndef MPI_FILE_NULL /*MPIO may be defined in mpi.h already */
+ # include <mpio.h>
diff --git a/var/spack/repos/tutorial/packages/hdf5/hdf5_1.8_gcc10.patch b/var/spack/repos/tutorial/packages/hdf5/hdf5_1.8_gcc10.patch
new file mode 100644
index 0000000000..0de8c33c09
--- /dev/null
+++ b/var/spack/repos/tutorial/packages/hdf5/hdf5_1.8_gcc10.patch
@@ -0,0 +1,12 @@
+diff -Naur hdf5.orig/fortran/test/tH5T_F03.f90 hdf5/fortran/test/tH5T_F03.f90
+--- hdf5.orig/fortran/test/tH5T_F03.f90 2021-01-19 13:23:11.298000000 +0100
++++ hdf5/fortran/test/tH5T_F03.f90 2021-01-19 13:19:17.637000000 +0100
+@@ -1541,7 +1541,7 @@
+ INTEGER :: A, B, C, D
+ INTEGER :: Aw, Bw, Cw, Dw
+ INTEGER :: i, j
+- INTEGER, PARAMETER :: hex = Z'00000003'
++ INTEGER, PARAMETER :: hex = INT(Z'00000003')
+ TYPE(C_PTR) :: f_ptr
+ INTEGER :: error ! Error flag
+ !
diff --git a/var/spack/repos/tutorial/packages/hdf5/package.py b/var/spack/repos/tutorial/packages/hdf5/package.py
index 9b0c683013..e188bb94b1 100644
--- a/var/spack/repos/tutorial/packages/hdf5/package.py
+++ b/var/spack/repos/tutorial/packages/hdf5/package.py
@@ -1,64 +1,111 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)
+import os
import shutil
import sys
-from spack import *
+import llnl.util.tty as tty
-class Hdf5(AutotoolsPackage):
+class Hdf5(CMakePackage):
"""HDF5 is a data model, library, and file format for storing and managing
data. It supports an unlimited variety of datatypes, and is designed for
flexible and efficient I/O and for high volume and complex data.
"""
- homepage = "https://support.hdfgroup.org/HDF5/"
- url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.1/src/hdf5-1.10.1.tar.gz"
+ homepage = "https://portal.hdfgroup.org"
+ url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz"
list_url = "https://support.hdfgroup.org/ftp/HDF5/releases"
list_depth = 3
+ git = "https://github.com/HDFGroup/hdf5.git"
+ maintainers = ['lrknox', 'brtnfld', 'byrnHDF', 'ChristopherHogan', 'epourmal',
+ 'gheber', 'hyoklee', 'lkurz', 'soumagne']
+
+ test_requires_compiler = True
+
+ # The 'develop' version is renamed so that we could uninstall (or patch) it
+ # without affecting other develop version.
+ version('develop-1.13', branch='develop')
+ version('develop-1.12', branch='hdf5_1_12')
+ version('develop-1.10', branch='hdf5_1_10')
+ version('develop-1.8', branch='hdf5_1_8')
+
+ version('1.12.1', sha256='79c66ff67e666665369396e9c90b32e238e501f345afd2234186bfb8331081ca')
+ version('1.12.0', sha256='a62dcb276658cb78e6795dd29bf926ed7a9bc4edf6e77025cd2c689a8f97c17a')
+ # HDF5 1.12 broke API compatibility, so we currently prefer the latest
+ # 1.10 release. packages that want later versions of HDF5 should specify,
+ # e.g., depends_on("hdf5@1.12:") to get 1.12 or higher.
+ version('1.10.7', sha256='7a1a0a54371275ce2dfc5cd093775bb025c365846512961e7e5ceaecb437ef15', preferred=True)
+ version('1.10.6', sha256='5f9a3ee85db4ea1d3b1fa9159352aebc2af72732fc2f58c96a3f0768dba0e9aa')
+ version('1.10.5', sha256='6d4ce8bf902a97b050f6f491f4268634e252a63dadd6656a1a9be5b7b7726fa8')
+ version('1.10.4', sha256='8f60dc4dd6ab5fcd23c750d1dc5bca3d0453bdce5c8cdaf0a4a61a9d1122adb2')
+ version('1.10.3', sha256='b600d7c914cfa80ae127cd1a1539981213fee9994ac22ebec9e3845e951d9b39')
+ version('1.10.2', sha256='bfec1be8c366965a99812cf02ddc97e4b708c1754fccba5414d4adccdc073866')
+ version('1.10.1', sha256='048a9d149fb99aaa1680a712963f5a78e9c43b588d0e79d55e06760ec377c172')
+ version('1.10.0-patch1', sha256='6e78cfe32a10e6e0629393cdfddf6cfa536571efdaf85f08e35326e1b4e9eff0')
+ version('1.10.0', sha256='81f6201aba5c30dced5dcd62f5d5477a2790fd5850e02ac514ca8bf3e2bb375a')
+
+ version('1.8.22', sha256='8406d96d9355ef8961d2739fb8fd5474ad4cdf52f3cfac657733defd9709bfaa')
+ version('1.8.21', sha256='87d8c82eba5cf766d97cd06c054f4639c1049c4adeaa3a79f77f8bd374f80f37')
+ version('1.8.19', sha256='a4335849f19fae88c264fd0df046bc321a78c536b2548fc508627a790564dc38')
+ version('1.8.18', sha256='cdb195ad8d9e6782acf24b2488061289f615628c2ccda8457b0a0c3fb7a8a063')
+ version('1.8.17', sha256='d9cda297ee76ade9881c4208987939250d397bae6252d0ccb66fa7d24d67e263')
+ version('1.8.16', sha256='ed17178abd9928a7237f30370189ba767b9e39e0db45917c2ac4665eb9cb4771')
+ version('1.8.15', sha256='4e963216b7d32469596bc1321a8c3f6e0c278dcbbdb7be6414c63c081b34c275')
+ version('1.8.14', sha256='1dbefeeef7f591897c632b2b090db96bb8d35ad035beaa36bc39cb2bc67e0639')
+ version('1.8.13', sha256='82f6b38eec103b4fccfbf14892786e0c27a8135d3252d8601cf5bf20066d38c1')
+ version('1.8.12', sha256='b5cccea850096962b5fd9e96f22c4f47d2379224bb41130d9bc038bb6c37dfcb')
+ version('1.8.10', sha256='4813b79c5fb8701a625b9924b8203bc7154a77f9b826ad4e034144b4056a160a')
- version('1.10.4', '8f60dc4dd6ab5fcd23c750d1dc5bca3d0453bdce5c8cdaf0a4a61a9d1122adb2')
- version('1.10.3', 'b600d7c914cfa80ae127cd1a1539981213fee9994ac22ebec9e3845e951d9b39')
- version('1.10.2', '8d4eae84e533efa57496638fd0dca8c3')
- version('1.10.1', '43a2f9466702fb1db31df98ae6677f15')
- version('1.10.0-patch1', '9180ff0ef8dc2ef3f61bd37a7404f295')
- version('1.10.0', 'bdc935337ee8282579cd6bc4270ad199')
- version('1.8.19', '7f568e2464d4ab0a74d16b23956d900b')
- version('1.8.18', 'dd2148b740713ca0295442ec683d7b1c')
- version('1.8.17', '7d572f8f3b798a628b8245af0391a0ca')
- version('1.8.16', 'b8ed9a36ae142317f88b0c7ef4b9c618')
- version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24')
- version('1.8.14', 'a482686e733514a51cde12d6fe5c5d95')
- version('1.8.13', 'c03426e9e77d7766944654280b467289')
- version('1.8.12', 'd804802feb99b87fc668a90e6fa34411')
- version('1.8.10', '710aa9fb61a51d61a7e2c09bf0052157')
-
- variant('debug', default=False,
- description='Builds a debug version of the library')
variant('shared', default=True,
description='Builds a shared version of the library')
variant('hl', default=False, description='Enable the high-level library')
variant('cxx', default=False, description='Enable C++ support')
variant('fortran', default=False, description='Enable Fortran support')
+ variant('java', default=False, description='Enable Java support')
variant('threadsafe', default=False,
description='Enable thread-safe capabilities')
-
+ variant('tools', default=True, description='Enable building tools')
variant('mpi', default=True, description='Enable MPI support')
variant('szip', default=False, description='Enable szip support')
- variant('pic', default=True,
- description='Produce position-independent code (for shared libs)')
+ # Build HDF5 with API compatibility.
+ variant('api', default='default',
+ description='Choose api compatibility for earlier version',
+ values=('default', 'v114', 'v112', 'v110', 'v18', 'v16'),
+ multi=False)
+
+ depends_on('cmake@3.12:', type='build')
depends_on('mpi', when='+mpi')
+ depends_on('java', type=('build', 'run'), when='+java')
# numactl does not currently build on darwin
if sys.platform != 'darwin':
depends_on('numactl', when='+mpi+fortran')
depends_on('szip', when='+szip')
depends_on('zlib@1.1.2:')
+ # The compiler wrappers (h5cc, h5fc, etc.) run 'pkg-config'.
+ depends_on('pkgconfig', type='run')
+
+ conflicts('api=v114', when='@1.6:1.12.99',
+ msg='v114 is not compatible with this release')
+ conflicts('api=v112', when='@1.6:1.10.99',
+ msg='v112 is not compatible with this release')
+ conflicts('api=v110', when='@1.6:1.8.99',
+ msg='v110 is not compatible with this release')
+ conflicts('api=v18', when='@1.6:1.6.99',
+ msg='v18 is not compatible with this release')
+
+ # The Java wrappers and associated libhdf5_java library
+ # were first available in 1.10
+ conflicts('+java', when='@:1.9')
+ # The Java wrappers cannot be built without shared libs.
+ conflicts('+java', when='~shared')
+
# There are several officially unsupported combinations of the features:
# 1. Thread safety is not guaranteed via high-level C-API but in some cases
# it works.
@@ -96,14 +143,74 @@ class Hdf5(AutotoolsPackage):
# There are build errors with GCC 8, see
# https://forum.hdfgroup.org/t/1-10-2-h5detect-compile-error-gcc-8-1-0-on-centos-7-2-solved/4441
- patch('https://salsa.debian.org/debian-gis-team/hdf5/raw/bf94804af5f80f662cad80a5527535b3c6537df6/debian/patches/gcc-8.patch', sha256='57cee5ff1992b4098eda079815c36fc2da9b10e00a9056df054f2384c4fc7523', when='@1.10.2%gcc@8:')
-
- filter_compiler_wrappers('h5cc', 'h5c++', 'h5fc', relative_root='bin')
+ patch('https://salsa.debian.org/debian-gis-team/hdf5/raw/bf94804af5f80f662cad80a5527535b3c6537df6/debian/patches/gcc-8.patch',
+ sha256='57cee5ff1992b4098eda079815c36fc2da9b10e00a9056df054f2384c4fc7523',
+ when='@1.10.2%gcc@8:')
+
+ # Disable MPI C++ interface when C++ is disabled, otherwise downstream
+ # libraries fail to link; see https://github.com/spack/spack/issues/12586
+ patch('h5public-skip-mpicxx.patch', when='@1.8.10:1.8.21,1.10.0:1.10.5+mpi~cxx',
+ sha256='b61e2f058964ad85be6ee5ecea10080bf79e73f83ff88d1fa4b602d00209da9c')
+
+ # Fixes BOZ literal constant error when compiled with GCC 10.
+ # The issue is described here: https://github.com/spack/spack/issues/18625
+ patch('hdf5_1.8_gcc10.patch', when='@:1.8.21',
+ sha256='0e20187cda3980a4fdff410da92358b63de7ebef2df1d7a425371af78e50f666')
+
+ # The argument 'buf_size' of the C function 'h5fget_file_image_c' is
+ # declared as intent(in) though it is modified by the invocation. As a
+ # result, aggressive compilers such as Fujitsu's may do a wrong
+ # optimization to cause an error.
+ def patch(self):
+ filter_file(
+ 'INTEGER(SIZE_T), INTENT(IN) :: buf_size',
+ 'INTEGER(SIZE_T), INTENT(OUT) :: buf_size',
+ 'fortran/src/H5Fff.F90',
+ string=True, ignore_absent=True)
+ filter_file(
+ 'INTEGER(SIZE_T), INTENT(IN) :: buf_size',
+ 'INTEGER(SIZE_T), INTENT(OUT) :: buf_size',
+ 'fortran/src/H5Fff_F03.f90',
+ string=True, ignore_absent=True)
+
+ # The parallel compiler wrappers (i.e. h5pcc, h5pfc, etc.) reference MPI
+ # compiler wrappers and do not need to be changed.
+ filter_compiler_wrappers('h5cc', 'h5hlcc',
+ 'h5fc', 'h5hlfc',
+ 'h5c++', 'h5hlc++',
+ relative_root='bin')
def url_for_version(self, version):
url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-{0}/hdf5-{1}/src/hdf5-{1}.tar.gz"
return url.format(version.up_to(2), version)
+ def flag_handler(self, name, flags):
+ cmake_flags = []
+
+ if name == "cflags":
+ if self.spec.satisfies('%gcc') \
+ or self.spec.satisfies('%clang'):
+ # Quiet warnings/errors about implicit declaration of functions
+ # in C99:
+ cmake_flags.append("-Wno-implicit-function-declaration")
+ # Note that this flag will cause an error if building %nvhpc.
+ if self.spec.satisfies('@:1.8.12~shared'):
+ # More recent versions set CMAKE_POSITION_INDEPENDENT_CODE to
+ # True and build with PIC flags.
+ cmake_flags.append(self.compiler.cc_pic_flag)
+ elif name == 'cxxflags':
+ if self.spec.satisfies('@:1.8.12+cxx~shared'):
+ cmake_flags.append(self.compiler.cxx_pic_flag)
+ elif name == "fflags":
+ if self.spec.satisfies('@:1.8.12+fortran~shared'):
+ cmake_flags.append(self.compiler.fc_pic_flag)
+ elif name == "ldlibs":
+ if '+fortran %fj' in self.spec:
+ cmake_flags.extend(['-lfj90i', '-lfj90f',
+ '-lfjsrcinfo', '-lelf'])
+
+ return flags, None, (cmake_flags or None)
+
@property
def libs(self):
"""HDF5 can be queried for the following parameters:
@@ -111,18 +218,46 @@ class Hdf5(AutotoolsPackage):
- "hl": high-level interface
- "cxx": C++ APIs
- "fortran": Fortran APIs
+ - "java": Java APIs
:return: list of matching libraries
"""
+ query_parameters = self.spec.last_query.extra_parameters
+
+ shared = '+shared' in self.spec
+
# This map contains a translation from query_parameters
# to the libraries needed
- query2libraries = { # noqa: F841
+ query2libraries = {
tuple(): ['libhdf5'],
- ('cxx', 'fortran', 'hl'): [
- 'libhdf5hl_fortran',
+ ('cxx', 'fortran', 'hl', 'java'): [
+ # When installed with Autotools, the basename of the real
+ # library file implementing the High-level Fortran interface is
+ # 'libhdf5hl_fortran'. Starting versions 1.8.22, 1.10.5 and
+ # 1.12.0, the Autotools installation also produces a symbolic
+ # link 'libhdf5_hl_fortran.<so/a>' to
+ # 'libhdf5hl_fortran.<so/a>'. Note that in the case of the
+ # dynamic library, the latter is a symlink to the real sonamed
+ # file 'libhdf5_fortran.so.<abi-version>'. This means that all
+ # dynamically linked executables/libraries of the dependent
+ # packages need 'libhdf5_fortran.so.<abi-version>' with the same
+ # DT_SONAME entry. However, the CMake installation (at least
+ # starting version 1.8.10) does not produce it. Instead, the
+ # basename of the library file is 'libhdf5_hl_fortran'. Which
+ # means that switching to CMake requires rebuilding of all
+ # dependant packages that use the High-level Fortran interface.
+ # Therefore, we do not try to preserve backward compatibility
+ # with Autotools installations by creating symlinks. The only
+ # packages that could benefit from it would be those that
+ # hardcode the library name in their building systems. Such
+ # packages should simply be patched.
+ 'libhdf5_hl_fortran',
+ 'libhdf5_hl_f90cstub',
'libhdf5_hl_cpp',
'libhdf5_hl',
'libhdf5_fortran',
+ 'libhdf5_f90cstub',
+ 'libhdf5_java',
'libhdf5',
],
('cxx', 'hl'): [
@@ -131,9 +266,11 @@ class Hdf5(AutotoolsPackage):
'libhdf5',
],
('fortran', 'hl'): [
- 'libhdf5hl_fortran',
+ 'libhdf5_hl_fortran',
+ 'libhdf5_hl_f90cstub',
'libhdf5_hl',
'libhdf5_fortran',
+ 'libhdf5_f90cstub',
'libhdf5',
],
('hl',): [
@@ -142,6 +279,7 @@ class Hdf5(AutotoolsPackage):
],
('cxx', 'fortran'): [
'libhdf5_fortran',
+ 'libhdf5_f90cstub',
'libhdf5_cpp',
'libhdf5',
],
@@ -151,112 +289,155 @@ class Hdf5(AutotoolsPackage):
],
('fortran',): [
'libhdf5_fortran',
+ 'libhdf5_f90cstub',
+ 'libhdf5',
+ ],
+ ('java',): [
+ 'libhdf5_java',
'libhdf5',
]
}
- # TUTORIAL: you need to fix the implementation below, and
- # return the correct list of libraries according to the
- # query parameters your dependency has used.
- #
- # You can retrieve the query parameters by doing
- #
- # query_parameters = self.spec.last_query.extra_parameters
- #
- # and use the map above to query the list of libraries you need
- # to search.
- #
- # Finally uncomment the lines below to return a LibraryList
- #
- # shared = '+shared' in self.spec
- # return find_libraries(
- # libraries, root=self.prefix, shared=shared, recursive=True
- # )
- return []
-
- @run_before('configure')
+ # Turn the query into the appropriate key
+ key = tuple(sorted(query_parameters))
+ libraries = query2libraries[key]
+
+ return find_libraries(
+ libraries, root=self.prefix, shared=shared, recursive=True
+ )
+
+ @when('@:1.8.21,1.10.0:1.10.5+szip')
+ def setup_build_environment(self, env):
+ env.set('SZIP_INSTALL', self.spec['szip'].prefix)
+
+ @run_before('cmake')
def fortran_check(self):
if '+fortran' in self.spec and not self.compiler.fc:
msg = 'cannot build a Fortran variant without a Fortran compiler'
raise RuntimeError(msg)
- def configure_args(self):
- # Always enable this option. This does not actually enable any
- # features: it only *allows* the user to specify certain
- # combinations of other arguments. Enabling it just skips a
- # sanity check in configure, so this doesn't merit a variant.
- extra_args = ['--enable-unsupported']
- extra_args += self.enable_or_disable('threadsafe')
- extra_args += self.enable_or_disable('cxx')
- extra_args += self.enable_or_disable('hl')
- extra_args += self.enable_or_disable('fortran')
-
- if '+szip' in self.spec:
- extra_args.append('--with-szlib=%s' % self.spec['szip'].prefix)
- else:
- extra_args.append('--without-szlib')
-
- if self.spec.satisfies('@1.10:'):
- if '+debug' in self.spec:
- extra_args.append('--enable-build-mode=debug')
- else:
- extra_args.append('--enable-build-mode=production')
- else:
- if '+debug' in self.spec:
- extra_args.append('--enable-debug=all')
- else:
- extra_args.append('--enable-production')
+ def cmake_args(self):
+ spec = self.spec
- # '--enable-fortran2003' no longer exists as of version 1.10.0
- if '+fortran' in self.spec:
- extra_args.append('--enable-fortran2003')
- else:
- extra_args.append('--disable-fortran2003')
-
- if '+shared' in self.spec:
- extra_args.append('--enable-shared')
- else:
- extra_args.append('--disable-shared')
- extra_args.append('--enable-static-exec')
-
- if '+pic' in self.spec:
- extra_args += ['%s=%s' % (f, self.compiler.pic_flag)
- for f in ['CFLAGS', 'CXXFLAGS', 'FCFLAGS']]
-
- if '+mpi' in self.spec:
- # The HDF5 configure script warns if cxx and mpi are enabled
- # together. There doesn't seem to be a real reason for this, except
- # that parts of the MPI interface are not accessible via the C++
- # interface. Since they are still accessible via the C interface,
- # this is not actually a problem.
- extra_args += ['--enable-parallel',
- 'CC=%s' % self.spec['mpi'].mpicc]
+ if spec.satisfies('@:1.8.15+shared'):
+ tty.warn('hdf5@:1.8.15+shared does not produce static libraries')
+
+ args = [
+ # Always enable this option. This does not actually enable any
+ # features: it only *allows* the user to specify certain
+ # combinations of other arguments.
+ self.define('ALLOW_UNSUPPORTED', True),
+ # Speed-up the building by skipping the examples:
+ self.define('HDF5_BUILD_EXAMPLES', False),
+ self.define(
+ 'BUILD_TESTING',
+ self.run_tests or
+ # Version 1.8.22 fails to build the tools when shared libraries
+ # are enabled but the tests are disabled.
+ spec.satisfies('@1.8.22+shared+tools')),
+ self.define('HDF5_ENABLE_Z_LIB_SUPPORT', True),
+ self.define_from_variant('HDF5_ENABLE_SZIP_SUPPORT', 'szip'),
+ self.define_from_variant('HDF5_ENABLE_SZIP_ENCODING', 'szip'),
+ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+ self.define('ONLY_SHARED_LIBS', False),
+ self.define_from_variant('HDF5_ENABLE_PARALLEL', 'mpi'),
+ self.define_from_variant('HDF5_ENABLE_THREADSAFE', 'threadsafe'),
+ self.define_from_variant('HDF5_BUILD_HL_LIB', 'hl'),
+ self.define_from_variant('HDF5_BUILD_CPP_LIB', 'cxx'),
+ self.define_from_variant('HDF5_BUILD_FORTRAN', 'fortran'),
+ self.define_from_variant('HDF5_BUILD_JAVA', 'java'),
+ self.define_from_variant('HDF5_BUILD_TOOLS', 'tools')
+ ]
+
+ api = spec.variants['api'].value
+ if api != 'default':
+ args.append(self.define('DEFAULT_API_VERSION', api))
+
+ if '+mpi' in spec:
+ args.append(self.define('CMAKE_C_COMPILER', spec['mpi'].mpicc))
if '+cxx' in self.spec:
- extra_args.append('CXX=%s' % self.spec['mpi'].mpicxx)
+ args.append(self.define('CMAKE_CXX_COMPILER',
+ spec['mpi'].mpicxx))
if '+fortran' in self.spec:
- extra_args.append('FC=%s' % self.spec['mpi'].mpifc)
+ args.append(self.define('CMAKE_Fortran_COMPILER',
+ spec['mpi'].mpifc))
- extra_args.append('--with-zlib=%s' % self.spec['zlib'].prefix)
+ return args
- return extra_args
+ @run_after('install')
+ def ensure_parallel_compiler_wrappers(self):
+ # When installed with Autotools and starting at least version 1.8.10,
+ # the package produces C compiler wrapper called either 'h5cc' (when MPI
+ # support is disabled) or 'h5pcc' (when MPI support is enabled). The
+ # CMake installation produces the wrapper called 'h5cc' (regardless of
+ # whether MPI support is enabled) only starting versions 1.8.21, 1.10.2
+ # and 1.12.0. The current develop versions also produce 'h5pcc' when MPI
+ # support is enabled and the file is identical to 'h5cc'. Here, we make
+ # sure that 'h5pcc' is available when MPI support is enabled (only for
+ # versions that generate 'h5cc').
+ if self.spec.satisfies('@1.8.21:1.8.22,1.10.2:1.10.7,1.12.0+mpi'):
+ with working_dir(self.prefix.bin):
+ # No try/except here, fix the condition above instead:
+ symlink('h5cc', 'h5pcc')
+
+ # The same as for 'h5pcc'. However, the CMake installation produces the
+ # Fortran compiler wrapper called 'h5fc' only starting versions 1.8.22,
+ # 1.10.6 and 1.12.0. The current develop versions do not produce 'h5pfc'
+ # at all. Here, we make sure that 'h5pfc' is available when Fortran and
+ # MPI support are enabled (only for versions that generate 'h5fc').
+ if self.spec.satisfies('@1.8.22:1.8.999,'
+ '1.10.6:1.10.999,'
+ '1.12.0:1.12.999,'
+ 'develop:'
+ '+fortran+mpi'):
+ with working_dir(self.prefix.bin):
+ # No try/except here, fix the condition above instead:
+ symlink('h5fc', 'h5pfc')
- @run_after('configure')
- def patch_postdeps(self):
- if '@:1.8.14' in self.spec:
- # On Ubuntu14, HDF5 1.8.12 (and maybe other versions)
- # mysteriously end up with "-l -l" in the postdeps in the
- # libtool script. Patch this by removing the spurious -l's.
- filter_file(
- r'postdeps="([^"]*)"',
- lambda m: 'postdeps="%s"' % ' '.join(
- arg for arg in m.group(1).split(' ') if arg != '-l'),
- 'libtool')
+ @run_after('install')
+ def fix_package_config(self):
+ # We need to fix the pkg-config files, which are also used by the
+ # compiler wrappers. The files are created starting versions 1.8.21,
+ # 1.10.2 and 1.12.0. However, they are broken (except for the version
+ # 1.8.22): the files are named <name>-<version>.pc but reference <name>
+ # packages. This was fixed in the develop versions at some point: the
+ # files started referencing <name>-<version> packages but got broken
+ # again: the files got names <name>.pc but references had not been
+ # updated accordingly. Another issue, which we address here, is that
+ # some Linux distributions install pkg-config files named hdf5.pc and we
+ # want to override them. Therefore, the following solution makes sure
+ # that each <name>-<version>.pc file is symlinked by <name>.pc and all
+ # references to <name>-<version> packages in the original files are
+ # replaced with references to <name> packages.
+ pc_files = find(self.prefix.lib.pkgconfig, 'hdf5*.pc', recursive=False)
+
+ if not pc_files:
+ # This also tells us that the pkgconfig directory does not exist.
+ return
+
+ # Replace versioned references in all pkg-config files:
+ filter_file(
+ r'(Requires(?:\.private)?:.*)(hdf5[^\s,]*)(?:-[^\s,]*)(.*)',
+ r'\1\2\3', *pc_files, backup=False)
+
+ # Create non-versioned symlinks to the versioned pkg-config files:
+ with working_dir(self.prefix.lib.pkgconfig):
+ for f in pc_files:
+ src_filename = os.path.basename(f)
+ version_sep_idx = src_filename.find('-')
+ if version_sep_idx > -1:
+ tgt_filename = src_filename[:version_sep_idx] + '.pc'
+ if not os.path.exists(tgt_filename):
+ symlink(src_filename, tgt_filename)
@run_after('install')
@on_package_attributes(run_tests=True)
def check_install(self):
+ self._check_install()
+
+ def _check_install(self):
# Build and run a small program to test the installed HDF5 library
spec = self.spec
print("Checking HDF5 installation...")
@@ -305,3 +486,54 @@ HDF5 version {version} {version}
print('-' * 80)
raise RuntimeError("HDF5 install check failed")
shutil.rmtree(checkdir)
+
+ def _test_check_versions(self):
+ """Perform version checks on selected installed package binaries."""
+ spec_vers_str = 'Version {0}'.format(self.spec.version)
+
+ exes = [
+ 'h5copy', 'h5diff', 'h5dump', 'h5format_convert', 'h5ls',
+ 'h5mkgrp', 'h5repack', 'h5stat', 'h5unjam',
+ ]
+ use_short_opt = ['h52gif', 'h5repart', 'h5unjam']
+ for exe in exes:
+ reason = 'test: ensuring version of {0} is {1}' \
+ .format(exe, spec_vers_str)
+ option = '-V' if exe in use_short_opt else '--version'
+ self.run_test(exe, option, spec_vers_str, installed=True,
+ purpose=reason, skip_missing=True)
+
+ def _test_example(self):
+ """This test performs copy, dump, and diff on an example hdf5 file."""
+ test_data_dir = self.test_suite.current_test_data_dir
+
+ filename = 'spack.h5'
+ h5_file = test_data_dir.join(filename)
+
+ reason = 'test: ensuring h5dump produces expected output'
+ expected = get_escaped_text_output(test_data_dir.join('dump.out'))
+ self.run_test('h5dump', filename, expected, installed=True,
+ purpose=reason, skip_missing=True,
+ work_dir=test_data_dir)
+
+ reason = 'test: ensuring h5copy runs'
+ options = ['-i', h5_file, '-s', 'Spack', '-o', 'test.h5', '-d',
+ 'Spack']
+ self.run_test('h5copy', options, [], installed=True,
+ purpose=reason, skip_missing=True, work_dir='.')
+
+ reason = ('test: ensuring h5diff shows no differences between orig and'
+ ' copy')
+ self.run_test('h5diff', [h5_file, 'test.h5'], [], installed=True,
+ purpose=reason, skip_missing=True, work_dir='.')
+
+ def test(self):
+ """Perform smoke tests on the installed package."""
+ # Simple version check tests on known binaries
+ self._test_check_versions()
+
+ # Run sequence of commands on an hdf5 file
+ self._test_example()
+
+ # Run existing install check
+ self._check_install()
diff --git a/var/spack/repos/tutorial/packages/hdf5/test/dump.out b/var/spack/repos/tutorial/packages/hdf5/test/dump.out
new file mode 100644
index 0000000000..58decefc12
--- /dev/null
+++ b/var/spack/repos/tutorial/packages/hdf5/test/dump.out
@@ -0,0 +1,45 @@
+HDF5 "spack.h5" {
+GROUP "/" {
+ GROUP "Spack" {
+ GROUP "Software" {
+ ATTRIBUTE "Distribution" {
+ DATATYPE H5T_STRING {
+ STRSIZE H5T_VARIABLE;
+ STRPAD H5T_STR_NULLTERM;
+ CSET H5T_CSET_UTF8;
+ CTYPE H5T_C_S1;
+ }
+ DATASPACE SCALAR
+ DATA {
+ (0): "Open Source"
+ }
+ }
+ DATASET "data" {
+ DATATYPE H5T_IEEE_F64LE
+ DATASPACE SIMPLE { ( 7, 11 ) / ( 7, 11 ) }
+ DATA {
+ (0,0): 0.371141, 0.508482, 0.585975, 0.0944911, 0.684849,
+ (0,5): 0.580396, 0.720271, 0.693561, 0.340432, 0.217145,
+ (0,10): 0.636083,
+ (1,0): 0.686996, 0.773501, 0.656767, 0.617543, 0.226132,
+ (1,5): 0.768632, 0.0548711, 0.54572, 0.355544, 0.591548,
+ (1,10): 0.233007,
+ (2,0): 0.230032, 0.192087, 0.293845, 0.0369338, 0.038727,
+ (2,5): 0.0977931, 0.966522, 0.0821391, 0.857921, 0.495703,
+ (2,10): 0.746006,
+ (3,0): 0.598494, 0.990266, 0.993009, 0.187481, 0.746391,
+ (3,5): 0.140095, 0.122661, 0.929242, 0.542415, 0.802758,
+ (3,10): 0.757941,
+ (4,0): 0.372124, 0.411982, 0.270479, 0.950033, 0.329948,
+ (4,5): 0.936704, 0.105097, 0.742285, 0.556565, 0.18988, 0.72797,
+ (5,0): 0.801669, 0.271807, 0.910649, 0.186251, 0.868865,
+ (5,5): 0.191484, 0.788371, 0.920173, 0.582249, 0.682022,
+ (5,10): 0.146883,
+ (6,0): 0.826824, 0.0886705, 0.402606, 0.0532444, 0.72509,
+ (6,5): 0.964683, 0.330362, 0.833284, 0.630456, 0.411489, 0.247806
+ }
+ }
+ }
+ }
+}
+}
diff --git a/var/spack/repos/tutorial/packages/hdf5/test/spack.h5 b/var/spack/repos/tutorial/packages/hdf5/test/spack.h5
new file mode 100644
index 0000000000..c2f3a6f39d
--- /dev/null
+++ b/var/spack/repos/tutorial/packages/hdf5/test/spack.h5
Binary files differ
diff --git a/var/spack/repos/tutorial/packages/mpich/package.py b/var/spack/repos/tutorial/packages/mpich/package.py
index 0acb31c217..fdd2feed0d 100644
--- a/var/spack/repos/tutorial/packages/mpich/package.py
+++ b/var/spack/repos/tutorial/packages/mpich/package.py
@@ -1,11 +1,12 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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
+from spack import *
+
class Mpich(AutotoolsPackage):
"""MPICH is a high performance and widely portable implementation of
diff --git a/var/spack/repos/tutorial/packages/netlib-lapack/package.py b/var/spack/repos/tutorial/packages/netlib-lapack/package.py
index e7edd9e23a..6f1d83de13 100644
--- a/var/spack/repos/tutorial/packages/netlib-lapack/package.py
+++ b/var/spack/repos/tutorial/packages/netlib-lapack/package.py
@@ -1,4 +1,4 @@
-# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Copyright 2013-2021 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)